{"version":3,"file":"app-e5dfbd8cdb9024ee518c.js","mappings":"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ACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,IACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KAER,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,I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","sources":["webpack://wisr-quote-form/./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack://wisr-quote-form/./node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack://wisr-quote-form/./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack://wisr-quote-form/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://wisr-quote-form/./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://wisr-quote-form/./node_modules/@babel/runtime/helpers/createClass.js","webpack://wisr-quote-form/./node_modules/@babel/runtime/helpers/defineProperty.js","webpack://wisr-quote-form/./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://wisr-quote-form/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://wisr-quote-form/./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack://wisr-quote-form/./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack://wisr-quote-form/./node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack://wisr-quote-form/./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack://wisr-quote-form/./node_modules/@babel/runtime/helpers/objectWithoutProperties.js","webpack://wisr-quote-form/./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://wisr-quote-form/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://wisr-quote-form/./node_modules/@babel/runtime/helpers/slicedToArray.js","webpack://wisr-quote-form/./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack://wisr-quote-form/./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack://wisr-quote-form/./node_modules/@babel/runtime/regenerator/index.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-shims/dist-esm/Constants.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-shims/dist-esm/Helpers.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-shims/dist-esm/TsLibShims.js","webpack://wisr-quote-form/./node_modules/@microsoft/dynamicproto-js/lib/dist/esm/dynamicproto-js.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK.Enums/LoggingEnums.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/HelperFuncs.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/EnvUtils.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/DbgExtensionUtils.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/DiagnosticLogger.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/PerfManager.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/TelemetryPluginChain.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/ProcessTelemetryContext.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/Constants.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/BaseTelemetryPlugin.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/TelemetryHelpers.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/ChannelController.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/CookieMgr.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/BaseCore.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK.Enums/EventsDiscardedReason.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/NotificationManager.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/AppInsightsCore.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/RandomHelper.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/CoreUtils.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-common/dist-esm/applicationinsights-common.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/DataSanitizer.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/DataPointType.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-common/dist-esm/Constants.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-common/dist-esm/TelemetryItemCreator.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/EventData.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Event.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Trace.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/MessageData.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/MetricData.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/DataPoint.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/DataPoint.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Metric.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/PageViewData.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-common/dist-esm/HelperFuncs.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/PageView.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/PageViewPerformance.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/PageViewPerfData.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/StackFrame.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/ExceptionDetails.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Exception.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/SeverityLevel.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-common/dist-esm/Enums.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/ExceptionData.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-common/dist-esm/StorageHelperFuncs.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-common/dist-esm/DomHelperFuncs.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-common/dist-esm/RequestResponseHeaders.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-common/dist-esm/UrlHelperFuncs.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-common/dist-esm/Util.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/RemoteDependencyData.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/RemoteDependencyData.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/Telemetry/PageViewManager.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/Telemetry/PageVisitTimeManager.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/Telemetry/PageViewPerformanceManager.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/ApplicationInsights.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/SendBuffer.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/ContextTagKeys.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/PartAExtensions.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/Envelope.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/Envelope.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/Base.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/Data.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/Data.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/EnvelopeCreator.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/Serializer.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/Sender.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/Offline.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/TelemetryProcessors/SamplingScoreGenerators/HashCodeScoreGenerator.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/TelemetryProcessors/SamplingScoreGenerators/SamplingScoreGenerator.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/TelemetryProcessors/Sample.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Session.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Application.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Device.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Internal.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/User.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Location.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/TelemetryTrace.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/TelemetryContext.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/PropertiesPlugin.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/InstrumentHooks.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-dependencies-js/dist-esm/ajaxRecord.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-dependencies-js/dist-esm/TraceParent.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-dependencies-js/dist-esm/ajax.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-common/dist-esm/ConnectionStringParser.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-web/dist-esm/Initialization.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/IConfig.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-web/dist-esm/ApplicationInsightsDeprecated.js","webpack://wisr-quote-form/./node_modules/@microsoft/applicationinsights-web/dist-esm/ApplicationInsightsContainer.js","webpack://wisr-quote-form/./node_modules/@wisr/common/dist/analytics/amplitude-helper.js","webpack://wisr-quote-form/./node_modules/@wisr/common/dist/async-lib/async-lib.js","webpack://wisr-quote-form/./node_modules/@wisr/common/dist/common.js","webpack://wisr-quote-form/./node_modules/@wisr/common/dist/common/common.js","webpack://wisr-quote-form/./node_modules/@wisr/common/dist/date/date.js","webpack://wisr-quote-form/./node_modules/@wisr/common/dist/finance/fees.js","webpack://wisr-quote-form/./node_modules/@wisr/common/dist/finance/repayments.js","webpack://wisr-quote-form/./node_modules/@wisr/common/dist/forms/use-form.js","webpack://wisr-quote-form/./node_modules/@wisr/common/dist/loading/index.js","webpack://wisr-quote-form/./node_modules/@wisr/common/dist/loading/loading.actions.js","webpack://wisr-quote-form/./node_modules/@wisr/common/dist/loading/loading.hooks.js","webpack://wisr-quote-form/./node_modules/@wisr/common/dist/loading/loading.reducer.js","webpack://wisr-quote-form/./node_modules/@wisr/common/dist/loading/loading.utils.js","webpack://wisr-quote-form/./node_modules/@wisr/common/dist/loggers/application-insights.js","webpack://wisr-quote-form/./node_modules/@wisr/common/dist/notifications/index.js","webpack://wisr-quote-form/./node_modules/@wisr/common/dist/notifications/notification-container.js","webpack://wisr-quote-form/./node_modules/@wisr/common/dist/notifications/notification-middleware.js","webpack://wisr-quote-form/./node_modules/@wisr/common/dist/notifications/notification.actions.js","webpack://wisr-quote-form/./node_modules/@wisr/common/dist/notifications/notification.hooks.js","webpack://wisr-quote-form/./node_modules/@wisr/common/dist/notifications/notification.reducer.js","webpack://wisr-quote-form/./node_modules/@wisr/common/dist/test-utils/dispatch-helper.js","webpack://wisr-quote-form/./node_modules/@wisr/common/dist/test-utils/epic-helper.js","webpack://wisr-quote-form/./node_modules/@wisr/common/dist/test-utils/mock-events.js","webpack://wisr-quote-form/./node_modules/@wisr/common/dist/test-utils/mock-hooks.js","webpack://wisr-quote-form/./node_modules/@wisr/common/dist/test-utils/promise.mocks.js","webpack://wisr-quote-form/./node_modules/@wisr/common/dist/test-utils/react-helper.js","webpack://wisr-quote-form/./node_modules/@wisr/common/dist/test-utils/react-hook.mocks.js","webpack://wisr-quote-form/./node_modules/@wisr/common/dist/test-utils/use-form-helper.js","webpack://wisr-quote-form/./node_modules/@wisr/react-ui/index.js","webpack://wisr-quote-form/./node_modules/axios/index.js","webpack://wisr-quote-form/./node_modules/axios/lib/adapters/xhr.js","webpack://wisr-quote-form/./node_modules/axios/lib/axios.js","webpack://wisr-quote-form/./node_modules/axios/lib/cancel/Cancel.js","webpack://wisr-quote-form/./node_modules/axios/lib/cancel/CancelToken.js","webpack://wisr-quote-form/./node_modules/axios/lib/cancel/isCancel.js","webpack://wisr-quote-form/./node_modules/axios/lib/core/Axios.js","webpack://wisr-quote-form/./node_modules/axios/lib/core/InterceptorManager.js","webpack://wisr-quote-form/./node_modules/axios/lib/core/buildFullPath.js","webpack://wisr-quote-form/./node_modules/axios/lib/core/createError.js","webpack://wisr-quote-form/./node_modules/axios/lib/core/dispatchRequest.js","webpack://wisr-quote-form/./node_modules/axios/lib/core/enhanceError.js","webpack://wisr-quote-form/./node_modules/axios/lib/core/mergeConfig.js","webpack://wisr-quote-form/./node_modules/axios/lib/core/settle.js","webpack://wisr-quote-form/./node_modules/axios/lib/core/transformData.js","webpack://wisr-quote-form/./node_modules/axios/lib/defaults.js","webpack://wisr-quote-form/./node_modules/axios/lib/helpers/bind.js","webpack://wisr-quote-form/./node_modules/axios/lib/helpers/buildURL.js","webpack://wisr-quote-form/./node_modules/axios/lib/helpers/combineURLs.js","webpack://wisr-quote-form/./node_modules/axios/lib/helpers/cookies.js","webpack://wisr-quote-form/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://wisr-quote-form/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://wisr-quote-form/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://wisr-quote-form/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://wisr-quote-form/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://wisr-quote-form/./node_modules/axios/lib/helpers/spread.js","webpack://wisr-quote-form/./node_modules/axios/lib/helpers/validator.js","webpack://wisr-quote-form/./node_modules/axios/lib/utils.js","webpack://wisr-quote-form/./node_modules/dayjs/dayjs.min.js","webpack://wisr-quote-form/./node_modules/dayjs/plugin/customParseFormat.js","webpack://wisr-quote-form/./node_modules/dayjs/plugin/duration.js","webpack://wisr-quote-form/./node_modules/decode-uri-component/index.js","webpack://wisr-quote-form/./node_modules/filter-obj/index.js","webpack://wisr-quote-form/./node_modules/financejs/finance.js","webpack://wisr-quote-form/./node_modules/gatsby-page-utils/dist/apply-trailing-slash-option.js","webpack://wisr-quote-form/./node_modules/gatsby/dist/internal-plugins/bundle-optimisations/polyfills/object-assign.js","webpack://wisr-quote-form/./node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js","webpack://wisr-quote-form/./node_modules/gatsby/dist/internal-plugins/partytown/utils/get-forwards.js","webpack://wisr-quote-form/./node_modules/gatsby/dist/internal-plugins/partytown/utils/inject-partytown-snippet.js","webpack://wisr-quote-form/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://wisr-quote-form/./node_modules/launchdarkly-js-client-sdk/dist/ldclient.es.js","webpack://wisr-quote-form/./node_modules/launchdarkly-react-client-sdk/lib/asyncWithLDProvider.js","webpack://wisr-quote-form/./node_modules/launchdarkly-react-client-sdk/lib/context.js","webpack://wisr-quote-form/./node_modules/launchdarkly-react-client-sdk/lib/index.js","webpack://wisr-quote-form/./node_modules/launchdarkly-react-client-sdk/lib/initLDClient.js","webpack://wisr-quote-form/./node_modules/launchdarkly-react-client-sdk/lib/provider.js","webpack://wisr-quote-form/./node_modules/launchdarkly-react-client-sdk/lib/types.js","webpack://wisr-quote-form/./node_modules/launchdarkly-react-client-sdk/lib/useFlags.js","webpack://wisr-quote-form/./node_modules/launchdarkly-react-client-sdk/lib/useLDClient.js","webpack://wisr-quote-form/./node_modules/launchdarkly-react-client-sdk/lib/utils.js","webpack://wisr-quote-form/./node_modules/launchdarkly-react-client-sdk/lib/withLDConsumer.js","webpack://wisr-quote-form/./node_modules/launchdarkly-react-client-sdk/lib/withLDProvider.js","webpack://wisr-quote-form/./node_modules/lodash.camelcase/index.js","webpack://wisr-quote-form/./node_modules/moment/moment.js","webpack://wisr-quote-form/./node_modules/query-string/index.js","webpack://wisr-quote-form/./node_modules/react-is/cjs/react-is.production.min.js","webpack://wisr-quote-form/./node_modules/react-is/index.js","webpack://wisr-quote-form/./node_modules/react-redux/es/components/Context.js","webpack://wisr-quote-form/./node_modules/react-redux/es/utils/batch.js","webpack://wisr-quote-form/./node_modules/react-redux/es/utils/Subscription.js","webpack://wisr-quote-form/./node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","webpack://wisr-quote-form/./node_modules/react-redux/es/components/Provider.js","webpack://wisr-quote-form/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://wisr-quote-form/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://wisr-quote-form/./node_modules/react-redux/es/components/connectAdvanced.js","webpack://wisr-quote-form/./node_modules/react-redux/es/utils/shallowEqual.js","webpack://wisr-quote-form/./node_modules/react-redux/es/connect/wrapMapToProps.js","webpack://wisr-quote-form/./node_modules/react-redux/es/connect/mapDispatchToProps.js","webpack://wisr-quote-form/./node_modules/react-redux/es/utils/bindActionCreators.js","webpack://wisr-quote-form/./node_modules/react-redux/es/connect/mapStateToProps.js","webpack://wisr-quote-form/./node_modules/react-redux/es/connect/mergeProps.js","webpack://wisr-quote-form/./node_modules/react-redux/es/connect/selectorFactory.js","webpack://wisr-quote-form/./node_modules/react-redux/es/connect/connect.js","webpack://wisr-quote-form/./node_modules/react-redux/es/hooks/useReduxContext.js","webpack://wisr-quote-form/./node_modules/react-redux/es/hooks/useStore.js","webpack://wisr-quote-form/./node_modules/react-redux/es/hooks/useDispatch.js","webpack://wisr-quote-form/./node_modules/react-redux/es/hooks/useSelector.js","webpack://wisr-quote-form/./node_modules/react-redux/es/index.js","webpack://wisr-quote-form/./node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js","webpack://wisr-quote-form/./node_modules/react-redux/node_modules/react-is/index.js","webpack://wisr-quote-form/./node_modules/redux-observable/lib/esm/ActionsObservable.js","webpack://wisr-quote-form/./node_modules/redux-observable/lib/esm/StateObservable.js","webpack://wisr-quote-form/./node_modules/redux-observable/lib/esm/combineEpics.js","webpack://wisr-quote-form/./node_modules/redux-observable/lib/esm/createEpicMiddleware.js","webpack://wisr-quote-form/./node_modules/redux-observable/lib/esm/operators.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameAction.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameScheduler.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/scheduler/animationFrame.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/scheduler/VirtualTimeScheduler.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/util/isObservable.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/observable/bindCallback.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/observable/bindNodeCallback.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/observable/forkJoin.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/observable/fromEvent.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/observable/fromEventPattern.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/observable/generate.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/observable/iif.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/observable/interval.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/observable/never.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/observable/onErrorResumeNext.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/observable/pairs.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/observable/partition.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/observable/range.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/observable/using.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/AsyncSubject.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/BehaviorSubject.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/Notification.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/Observable.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/util/toSubscriber.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/Observer.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/OuterSubscriber.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/ReplaySubject.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/Scheduler.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/Subject.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/SubjectSubscription.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/Subscriber.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/Subscription.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/config.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/innerSubscribe.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/observable/ConnectableObservable.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/observable/combineLatest.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/observable/concat.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/observable/defer.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/observable/empty.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/observable/from.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/observable/fromArray.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/observable/merge.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/observable/of.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/observable/race.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/observable/throwError.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/observable/timer.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/observable/zip.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/catchError.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/concatAll.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/concatMap.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/filter.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/groupBy.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/map.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/mapTo.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/mergeAll.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/mergeMap.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/observeOn.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/refCount.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/observable/SubscribeOnObservable.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/subscribeOn.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/tap.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/withLatestFrom.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/scheduled/scheduleArray.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/scheduled/scheduled.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/util/isInteropObservable.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/scheduled/scheduleObservable.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/scheduled/schedulePromise.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/util/isIterable.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/scheduled/scheduleIterable.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/scheduler/AsyncAction.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/scheduler/Action.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/scheduler/AsyncScheduler.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/util/Immediate.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/scheduler/AsapAction.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/scheduler/AsapScheduler.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/scheduler/asap.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/scheduler/async.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/scheduler/QueueAction.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/scheduler/QueueScheduler.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/scheduler/queue.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/symbol/iterator.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/symbol/observable.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/util/ArgumentOutOfRangeError.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/util/EmptyError.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/util/ObjectUnsubscribedError.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/util/TimeoutError.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/util/UnsubscriptionError.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/util/canReportError.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/util/hostReportError.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/util/identity.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/util/isArray.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/util/isArrayLike.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/util/isFunction.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/util/isNumeric.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/util/isObject.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/util/isPromise.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/util/isScheduler.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/util/noop.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/util/not.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/util/pipe.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/util/subscribeTo.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/util/subscribeToObservable.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/util/subscribeToPromise.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/util/subscribeToIterable.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/util/subscribeToArray.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/InnerSubscriber.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/util/subscribeToResult.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/audit.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/auditTime.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/buffer.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/bufferCount.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/bufferTime.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/bufferToggle.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/bufferWhen.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/combineAll.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/combineLatest.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/concat.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/concatMapTo.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/count.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/debounce.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/debounceTime.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/defaultIfEmpty.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/util/isDate.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/delay.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/delayWhen.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/dematerialize.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/distinct.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/distinctUntilChanged.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/distinctUntilKeyChanged.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/throwIfEmpty.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/take.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/elementAt.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/endWith.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/every.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/exhaust.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/exhaustMap.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/expand.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/finalize.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/find.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/findIndex.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/first.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/ignoreElements.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/isEmpty.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/takeLast.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/last.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/materialize.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/scan.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/reduce.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/max.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/merge.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/mergeMapTo.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/mergeScan.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/min.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/multicast.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/onErrorResumeNext.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/pairwise.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/partition.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/pluck.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/publish.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/publishBehavior.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/publishLast.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/publishReplay.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/race.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/repeat.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/repeatWhen.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/retry.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/retryWhen.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/sample.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/sampleTime.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/sequenceEqual.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/share.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/shareReplay.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/single.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/skip.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/skipLast.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/skipUntil.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/skipWhile.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/startWith.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/switchMap.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/switchAll.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/switchMapTo.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/takeUntil.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/takeWhile.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/throttle.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/throttleTime.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/timeInterval.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/timeoutWith.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/timeout.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/timestamp.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/toArray.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/window.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/windowCount.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/windowTime.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/windowToggle.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/windowWhen.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/zip.js","webpack://wisr-quote-form/./node_modules/rxjs/_esm5/internal/operators/zipAll.js","webpack://wisr-quote-form/./node_modules/rxjs/internal/Observable.js","webpack://wisr-quote-form/./node_modules/rxjs/internal/Observer.js","webpack://wisr-quote-form/./node_modules/rxjs/internal/Subject.js","webpack://wisr-quote-form/./node_modules/rxjs/internal/SubjectSubscription.js","webpack://wisr-quote-form/./node_modules/rxjs/internal/Subscriber.js","webpack://wisr-quote-form/./node_modules/rxjs/internal/Subscription.js","webpack://wisr-quote-form/./node_modules/rxjs/internal/config.js","webpack://wisr-quote-form/./node_modules/rxjs/internal/symbol/observable.js","webpack://wisr-quote-form/./node_modules/rxjs/internal/symbol/rxSubscriber.js","webpack://wisr-quote-form/./node_modules/rxjs/internal/util/ObjectUnsubscribedError.js","webpack://wisr-quote-form/./node_modules/rxjs/internal/util/UnsubscriptionError.js","webpack://wisr-quote-form/./node_modules/rxjs/internal/util/canReportError.js","webpack://wisr-quote-form/./node_modules/rxjs/internal/util/hostReportError.js","webpack://wisr-quote-form/./node_modules/rxjs/internal/util/identity.js","webpack://wisr-quote-form/./node_modules/rxjs/internal/util/isArray.js","webpack://wisr-quote-form/./node_modules/rxjs/internal/util/isFunction.js","webpack://wisr-quote-form/./node_modules/rxjs/internal/util/isObject.js","webpack://wisr-quote-form/./node_modules/rxjs/internal/util/pipe.js","webpack://wisr-quote-form/./node_modules/rxjs/internal/util/toSubscriber.js","webpack://wisr-quote-form/./node_modules/rxjs/node_modules/tslib/tslib.es6.js","webpack://wisr-quote-form/./node_modules/split-on-first/index.js","webpack://wisr-quote-form/./node_modules/strict-uri-encode/index.js","webpack://wisr-quote-form/./node_modules/string-hash/index.js","webpack://wisr-quote-form/./node_modules/styled-jsx/dist/lib/stylesheet.js","webpack://wisr-quote-form/./node_modules/styled-jsx/dist/style.js","webpack://wisr-quote-form/./node_modules/styled-jsx/dist/stylesheet-registry.js","webpack://wisr-quote-form/./node_modules/styled-jsx/style.js","webpack://wisr-quote-form/./node_modules/core-js/internals/a-callable.js","webpack://wisr-quote-form/./node_modules/core-js/internals/add-to-unscopables.js","webpack://wisr-quote-form/./node_modules/core-js/internals/an-object.js","webpack://wisr-quote-form/./node_modules/core-js/internals/array-includes.js","webpack://wisr-quote-form/./node_modules/core-js/internals/array-species-constructor.js","webpack://wisr-quote-form/./node_modules/core-js/internals/array-species-create.js","webpack://wisr-quote-form/./node_modules/core-js/internals/classof-raw.js","webpack://wisr-quote-form/./node_modules/core-js/internals/classof.js","webpack://wisr-quote-form/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://wisr-quote-form/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://wisr-quote-form/./node_modules/core-js/internals/create-property-descriptor.js","webpack://wisr-quote-form/./node_modules/core-js/internals/define-built-in.js","webpack://wisr-quote-form/./node_modules/core-js/internals/define-global-property.js","webpack://wisr-quote-form/./node_modules/core-js/internals/descriptors.js","webpack://wisr-quote-form/./node_modules/core-js/internals/document-all.js","webpack://wisr-quote-form/./node_modules/core-js/internals/document-create-element.js","webpack://wisr-quote-form/./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://wisr-quote-form/./node_modules/core-js/internals/engine-user-agent.js","webpack://wisr-quote-form/./node_modules/core-js/internals/engine-v8-version.js","webpack://wisr-quote-form/./node_modules/core-js/internals/enum-bug-keys.js","webpack://wisr-quote-form/./node_modules/core-js/internals/export.js","webpack://wisr-quote-form/./node_modules/core-js/internals/fails.js","webpack://wisr-quote-form/./node_modules/core-js/internals/flatten-into-array.js","webpack://wisr-quote-form/./node_modules/core-js/internals/function-bind-context.js","webpack://wisr-quote-form/./node_modules/core-js/internals/function-bind-native.js","webpack://wisr-quote-form/./node_modules/core-js/internals/function-call.js","webpack://wisr-quote-form/./node_modules/core-js/internals/function-name.js","webpack://wisr-quote-form/./node_modules/core-js/internals/function-uncurry-this.js","webpack://wisr-quote-form/./node_modules/core-js/internals/get-built-in.js","webpack://wisr-quote-form/./node_modules/core-js/internals/get-method.js","webpack://wisr-quote-form/./node_modules/core-js/internals/global.js","webpack://wisr-quote-form/./node_modules/core-js/internals/has-own-property.js","webpack://wisr-quote-form/./node_modules/core-js/internals/hidden-keys.js","webpack://wisr-quote-form/./node_modules/core-js/internals/html.js","webpack://wisr-quote-form/./node_modules/core-js/internals/ie8-dom-define.js","webpack://wisr-quote-form/./node_modules/core-js/internals/indexed-object.js","webpack://wisr-quote-form/./node_modules/core-js/internals/inspect-source.js","webpack://wisr-quote-form/./node_modules/core-js/internals/internal-state.js","webpack://wisr-quote-form/./node_modules/core-js/internals/is-array.js","webpack://wisr-quote-form/./node_modules/core-js/internals/is-callable.js","webpack://wisr-quote-form/./node_modules/core-js/internals/is-constructor.js","webpack://wisr-quote-form/./node_modules/core-js/internals/is-forced.js","webpack://wisr-quote-form/./node_modules/core-js/internals/is-null-or-undefined.js","webpack://wisr-quote-form/./node_modules/core-js/internals/is-object.js","webpack://wisr-quote-form/./node_modules/core-js/internals/is-pure.js","webpack://wisr-quote-form/./node_modules/core-js/internals/is-symbol.js","webpack://wisr-quote-form/./node_modules/core-js/internals/length-of-array-like.js","webpack://wisr-quote-form/./node_modules/core-js/internals/make-built-in.js","webpack://wisr-quote-form/./node_modules/core-js/internals/math-trunc.js","webpack://wisr-quote-form/./node_modules/core-js/internals/object-create.js","webpack://wisr-quote-form/./node_modules/core-js/internals/object-define-properties.js","webpack://wisr-quote-form/./node_modules/core-js/internals/object-define-property.js","webpack://wisr-quote-form/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://wisr-quote-form/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://wisr-quote-form/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://wisr-quote-form/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://wisr-quote-form/./node_modules/core-js/internals/object-keys-internal.js","webpack://wisr-quote-form/./node_modules/core-js/internals/object-keys.js","webpack://wisr-quote-form/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://wisr-quote-form/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://wisr-quote-form/./node_modules/core-js/internals/own-keys.js","webpack://wisr-quote-form/./node_modules/core-js/internals/require-object-coercible.js","webpack://wisr-quote-form/./node_modules/core-js/internals/shared-key.js","webpack://wisr-quote-form/./node_modules/core-js/internals/shared-store.js","webpack://wisr-quote-form/./node_modules/core-js/internals/shared.js","webpack://wisr-quote-form/./node_modules/core-js/internals/symbol-constructor-detection.js","webpack://wisr-quote-form/./node_modules/core-js/internals/to-absolute-index.js","webpack://wisr-quote-form/./node_modules/core-js/internals/to-indexed-object.js","webpack://wisr-quote-form/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://wisr-quote-form/./node_modules/core-js/internals/to-length.js","webpack://wisr-quote-form/./node_modules/core-js/internals/to-object.js","webpack://wisr-quote-form/./node_modules/core-js/internals/to-primitive.js","webpack://wisr-quote-form/./node_modules/core-js/internals/to-property-key.js","webpack://wisr-quote-form/./node_modules/core-js/internals/to-string-tag-support.js","webpack://wisr-quote-form/./node_modules/core-js/internals/try-to-string.js","webpack://wisr-quote-form/./node_modules/core-js/internals/uid.js","webpack://wisr-quote-form/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://wisr-quote-form/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://wisr-quote-form/./node_modules/core-js/internals/weak-map-basic-detection.js","webpack://wisr-quote-form/./node_modules/core-js/internals/well-known-symbol.js","webpack://wisr-quote-form/./node_modules/core-js/modules/es.array.flat-map.js","webpack://wisr-quote-form/./node_modules/core-js/modules/es.array.unscopables.flat-map.js","webpack://wisr-quote-form/./node_modules/core-js/modules/es.global-this.js","webpack://wisr-quote-form/./node_modules/core-js/modules/esnext.global-this.js","webpack://wisr-quote-form/./node_modules/gatsby-react-router-scroll/index.js","webpack://wisr-quote-form/./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack://wisr-quote-form/./node_modules/gatsby-react-router-scroll/session-storage.js","webpack://wisr-quote-form/./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack://wisr-quote-form/./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack://wisr-quote-form/./.cache/api-runner-browser-plugins.js","webpack://wisr-quote-form/./.cache/api-runner-browser.js","webpack://wisr-quote-form/./node_modules/mitt/dist/mitt.es.js","webpack://wisr-quote-form/./.cache/emitter.js","webpack://wisr-quote-form/./.cache/normalize-page-path.js","webpack://wisr-quote-form/./.cache/find-path.js","webpack://wisr-quote-form/./.cache/static-query.js","webpack://wisr-quote-form/./.cache/gatsby-browser-entry.js","webpack://wisr-quote-form/./.cache/prefetch.js","webpack://wisr-quote-form/./.cache/loader.js","webpack://wisr-quote-form/./.cache/head/components/fire-callback-in-effect.js","webpack://wisr-quote-form/./.cache/head/constants.js","webpack://wisr-quote-form/./.cache/head/utils.js","webpack://wisr-quote-form/./.cache/head/head-export-handler-for-browser.js","webpack://wisr-quote-form/./.cache/page-renderer.js","webpack://wisr-quote-form/./.cache/route-announcer-props.js","webpack://wisr-quote-form/./.cache/navigation.js","webpack://wisr-quote-form/./node_modules/shallow-compare/es/index.js","webpack://wisr-quote-form/./.cache/ensure-resources.js","webpack://wisr-quote-form/./.cache/production-app.js","webpack://wisr-quote-form/./.cache/public-page-renderer-prod.js","webpack://wisr-quote-form/./.cache/public-page-renderer.js","webpack://wisr-quote-form/./.cache/react-dom-utils.js","webpack://wisr-quote-form/./.cache/react-lifecycles-compat.js","webpack://wisr-quote-form/./.cache/redirect-utils.js","webpack://wisr-quote-form/./.cache/register-service-worker.js","webpack://wisr-quote-form/./.cache/strip-prefix.js","webpack://wisr-quote-form/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://wisr-quote-form/./node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack://wisr-quote-form/./node_modules/redux/es/redux.js","webpack://wisr-quote-form/./src/aggregator/aggregator.epic.ts","webpack://wisr-quote-form/./src/application/application.reducer.ts","webpack://wisr-quote-form/./src/estimate/estimate.reducer.ts","webpack://wisr-quote-form/./src/quote/terms/terms.epic.ts","webpack://wisr-quote-form/./src/quote/terms/terms.reducer.ts","webpack://wisr-quote-form/./src/store.ts","webpack://wisr-quote-form/./src/customer/customer.reducer.ts","webpack://wisr-quote-form/./src/quote/quote-form.reducer.ts","webpack://wisr-quote-form/./src/aggregator/aggregator.reducer.ts","webpack://wisr-quote-form/./src/partner-referral/partner-referral.reducer.ts","webpack://wisr-quote-form/./gatsby-browser.js","webpack://wisr-quote-form/./src/attach-store.tsx","webpack://wisr-quote-form/./node_modules/@gatsbyjs/reach-router/lib/history.js","webpack://wisr-quote-form/./node_modules/@gatsbyjs/reach-router/lib/utils.js","webpack://wisr-quote-form/./node_modules/gatsby-plugin-launchdarkly/gatsby-browser.js","webpack://wisr-quote-form/./src/aggregator/aggregator.actions.ts","webpack://wisr-quote-form/./src/application/application.actions.ts","webpack://wisr-quote-form/./src/application/application.service.ts","webpack://wisr-quote-form/./src/application/application.epic.ts","webpack://wisr-quote-form/./src/application/application.ts","webpack://wisr-quote-form/./src/application/application.utils.ts","webpack://wisr-quote-form/./src/application/income/form-card.scss","webpack://wisr-quote-form/./src/application/income/income.component.tsx","webpack://wisr-quote-form/./src/application/owing/owing.component.tsx","webpack://wisr-quote-form/./src/customer/customer.actions.ts","webpack://wisr-quote-form/./src/estimate/estimate-status.ts","webpack://wisr-quote-form/./src/estimate/estimate.actions.ts","webpack://wisr-quote-form/./src/shared/common.actions.ts","webpack://wisr-quote-form/./src/estimate/estimate.service.ts","webpack://wisr-quote-form/./src/estimate/estimate.epic.ts","webpack://wisr-quote-form/./src/shared/maths.utils.ts","webpack://wisr-quote-form/./src/partner-referral/partner-referral.actions.ts","webpack://wisr-quote-form/./src/partner-referral/partner-referral.epic.ts","webpack://wisr-quote-form/./src/quote/quote-form.actions.ts","webpack://wisr-quote-form/./src/quote/terms/terms.actions.ts","webpack://wisr-quote-form/./src/shared/analytics/analytics.constants.ts","webpack://wisr-quote-form/./src/shared/analytics/analytics.utils.ts","webpack://wisr-quote-form/./src/shared/browser.utils.ts","webpack://wisr-quote-form/./src/shared/config.utils.ts","webpack://wisr-quote-form/./src/shared/gatsby.utils.ts","webpack://wisr-quote-form/./src/shared/remove-button/remove-button.scss","webpack://wisr-quote-form/./src/shared/remove-button/remove-button.component.tsx","webpack://wisr-quote-form/./src/shared/url.constants.ts","webpack://wisr-quote-form/./node_modules/@gatsbyjs/reach-router/es/lib/utils.js","webpack://wisr-quote-form/./node_modules/@gatsbyjs/reach-router/es/lib/history.js","webpack://wisr-quote-form/./node_modules/@gatsbyjs/reach-router/es/index.js","webpack://wisr-quote-form/./node_modules/invariant/browser.js","webpack://wisr-quote-form/./node_modules/regenerator-runtime/runtime.js","webpack://wisr-quote-form/./node_modules/@builder.io/partytown/integration/index.cjs","webpack://wisr-quote-form/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://wisr-quote-form/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://wisr-quote-form/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://wisr-quote-form/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://wisr-quote-form/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://wisr-quote-form/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://wisr-quote-form/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://wisr-quote-form/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://wisr-quote-form/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://wisr-quote-form/./node_modules/gatsby-link/dist/index.modern.mjs","webpack://wisr-quote-form/./node_modules/gatsby-script/dist/index.modern.mjs"],"sourcesContent":["function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _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}\n\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inheritsLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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}\n\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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}\n\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose.js\");\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\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\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableRest = require(\"./nonIterableRest.js\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\n\nvar iterableToArray = require(\"./iterableToArray.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _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\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","module.exports = require(\"regenerator-runtime\");\n","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\nexport var strShimFunction = \"function\";\nexport var strShimObject = \"object\";\nexport var strShimUndefined = \"undefined\";\nexport var strShimPrototype = \"prototype\";\nexport var strShimHasOwnProperty = \"hasOwnProperty\";\nexport var strDefault = \"default\";\nexport var ObjClass = Object;\nexport var ObjProto = ObjClass[strShimPrototype];\nexport var ObjAssign = ObjClass[\"assign\"];\nexport var ObjCreate = ObjClass[\"create\"];\nexport var ObjDefineProperty = ObjClass[\"defineProperty\"];\nexport var ObjHasOwnProperty = ObjProto[strShimHasOwnProperty];","import \"core-js/modules/esnext.global-this.js\";\n// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\nimport { ObjCreate, strShimFunction, strShimObject, strShimPrototype, strShimUndefined } from \"./Constants\";\nvar _cachedGlobal = null;\n/**\r\n * Returns the current global scope object, for a normal web page this will be the current\r\n * window, for a Web Worker this will be current worker global scope via \"self\". The internal\r\n * implementation returns the first available instance object in the following order\r\n * - globalThis (New standard)\r\n * - self (Will return the current window instance for supported browsers)\r\n * - window (fallback for older browser implementations)\r\n * - global (NodeJS standard)\r\n * - (When all else fails)\r\n * While the return type is a Window for the normal case, not all environments will support all\r\n * of the properties or functions.\r\n */\n\nexport function getGlobal(useCached) {\n if (useCached === void 0) {\n useCached = true;\n }\n\n if (!_cachedGlobal || !useCached) {\n if (typeof globalThis !== strShimUndefined && globalThis) {\n _cachedGlobal = globalThis;\n }\n\n if (typeof self !== strShimUndefined && self) {\n _cachedGlobal = self;\n }\n\n if (typeof window !== strShimUndefined && window) {\n _cachedGlobal = window;\n }\n\n if (typeof global !== strShimUndefined && global) {\n _cachedGlobal = global;\n }\n }\n\n return _cachedGlobal;\n}\nexport function throwTypeError(message) {\n throw new TypeError(message);\n}\n/**\r\n * Creates an object that has the specified prototype, and that optionally contains specified properties. This helper exists to avoid adding a polyfil\r\n * for older browsers that do not define Object.create eg. ES3 only, IE8 just in case any page checks for presence/absence of the prototype implementation.\r\n * Note: For consistency this will not use the Object.create implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @param obj Object to use as a prototype. May be null\r\n */\n\nexport function objCreateFn(obj) {\n var func = ObjCreate; // Use build in Object.create\n\n if (func) {\n // Use Object create method if it exists\n return func(obj);\n }\n\n if (obj == null) {\n return {};\n }\n\n var type = typeof obj;\n\n if (type !== strShimObject && type !== strShimFunction) {\n throwTypeError(\"Object prototype may only be an Object:\" + obj);\n }\n\n function tmpFunc() {}\n\n tmpFunc[strShimPrototype] = obj;\n return new tmpFunc();\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT License.\nimport { ObjAssign, ObjClass, ObjCreate, ObjDefineProperty, ObjHasOwnProperty, ObjProto, strDefault, strShimFunction, strShimHasOwnProperty, strShimPrototype } from \"./Constants\";\nimport { getGlobal, objCreateFn, throwTypeError } from \"./Helpers\"; // Most of these functions have been directly shamelessly \"lifted\" from the https://github.com/@microsoft/tslib and\n// modified to be ES3 compatible and applying several minification and tree-shaking techniques so that Application Insights\n// can successfully use TypeScript \"importHelpers\" which imports tslib during compilation but it will use these at runtime\n// Which is also why all of the functions have not been included as Application Insights currently doesn't use or require\n// them.\n\nexport var SymbolObj = (getGlobal() || {})[\"Symbol\"];\nexport var ReflectObj = (getGlobal() || {})[\"Reflect\"];\nexport var __hasSymbol = !!SymbolObj;\nexport var __hasReflect = !!ReflectObj;\nvar strDecorate = \"decorate\";\nvar strMetadata = \"metadata\";\nvar strGetOwnPropertySymbols = \"getOwnPropertySymbols\";\nvar strIterator = \"iterator\";\nexport var __objAssignFnImpl = function __objAssignFnImpl(t) {\n // tslint:disable-next-line: ban-comma-operator\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (ObjProto[strShimHasOwnProperty].call(s, p)) {\n t[p] = s[p];\n }\n }\n }\n\n return t;\n};\nexport var __assignFn = ObjAssign || __objAssignFnImpl; // tslint:disable-next-line: only-arrow-functions\n\nvar _extendStaticsFn = function extendStaticsFn(d, b) {\n _extendStaticsFn = ObjClass[\"setPrototypeOf\"] || // tslint:disable-next-line: only-arrow-functions\n {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || // tslint:disable-next-line: only-arrow-functions\n function (d, b) {\n for (var p in b) {\n if (b[strShimHasOwnProperty](p)) {\n d[p] = b[p];\n }\n }\n };\n\n return _extendStaticsFn(d, b);\n};\n\nexport function __extendsFn(d, b) {\n if (typeof b !== strShimFunction && b !== null) {\n throwTypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n }\n\n _extendStaticsFn(d, b);\n\n function __() {\n this.constructor = d;\n } // tslint:disable-next-line: ban-comma-operator\n\n\n d[strShimPrototype] = b === null ? objCreateFn(b) : (__[strShimPrototype] = b[strShimPrototype], new __());\n}\nexport function __restFn(s, e) {\n var t = {};\n\n for (var k in s) {\n if (ObjHasOwnProperty.call(s, k) && e.indexOf(k) < 0) {\n t[k] = s[k];\n }\n }\n\n if (s != null && typeof ObjClass[strGetOwnPropertySymbols] === strShimFunction) {\n for (var i = 0, p = ObjClass[strGetOwnPropertySymbols](s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && ObjProto[\"propertyIsEnumerable\"].call(s, p[i])) {\n t[p[i]] = s[p[i]];\n }\n }\n }\n\n return t;\n}\nexport function __decorateFn(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = ObjClass[\"getOwnPropertyDescriptor\"](target, key) : desc,\n d;\n\n if (__hasReflect && typeof ReflectObj[strDecorate] === strShimFunction) {\n r = ReflectObj[strDecorate](decorators, target, key, desc);\n } else {\n for (var i = decorators.length - 1; i >= 0; i--) {\n // eslint-disable-next-line no-cond-assign\n if (d = decorators[i]) {\n r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n }\n } // tslint:disable-next-line:ban-comma-operator\n\n\n return c > 3 && r && ObjDefineProperty(target, key, r), r;\n}\nexport function __paramFn(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadataFn(metadataKey, metadataValue) {\n if (__hasReflect && ReflectObj[strMetadata] === strShimFunction) {\n return ReflectObj[strMetadata](metadataKey, metadataValue);\n }\n}\nexport function __exportStarFn(m, o) {\n for (var p in m) {\n if (p !== strDefault && !ObjHasOwnProperty.call(o, p)) {\n __createBindingFn(o, m, p);\n }\n }\n}\nexport function __createBindingFn(o, m, k, k2) {\n if (k2 === undefined) {\n k2 = k;\n }\n\n if (ObjCreate) {\n ObjDefineProperty(o, k2, {\n enumerable: true,\n get: function get() {\n return m[k];\n }\n });\n } else {\n o[k2] = m[k];\n }\n}\nexport function __valuesFn(o) {\n var s = typeof SymbolObj === strShimFunction && SymbolObj[strIterator],\n m = s && o[s],\n i = 0;\n\n if (m) {\n return m.call(o);\n }\n\n if (o && typeof o.length === \"number\") {\n return {\n next: function next() {\n if (o && i >= o.length) {\n o = void 0;\n }\n\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n }\n\n throwTypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __readFn(o, n) {\n var m = typeof SymbolObj === strShimFunction && o[SymbolObj[strIterator]];\n\n if (!m) {\n return o;\n }\n\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n // tslint:disable-next-line:no-conditional-assignment\n if (r && !r.done && (m = i[\"return\"])) {\n m.call(i);\n }\n } finally {\n if (e) {\n // eslint-disable-next-line no-unsafe-finally\n throw e.error;\n }\n }\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spreadArraysFn() {\n var theArgs = arguments; // Calculate new total size\n\n for (var s = 0, i = 0, il = theArgs.length; i < il; i++) {\n s += theArgs[i].length;\n } // Create new full array\n\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = theArgs[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\nexport function __spreadArrayFn(to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) {\n to[j] = from[i];\n }\n\n return to;\n}\nexport function __makeTemplateObjectFn(cooked, raw) {\n if (ObjDefineProperty) {\n ObjDefineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\nexport function __importStarFn(mod) {\n if (mod && mod.__esModule) {\n return mod;\n }\n\n var result = {};\n\n if (mod != null) {\n for (var k in mod) {\n if (k !== strDefault && Object.prototype.hasOwnProperty.call(mod, k)) {\n __createBindingFn(result, mod, k);\n }\n }\n } // Set default module\n\n\n if (ObjCreate) {\n ObjDefineProperty(result, strDefault, {\n enumerable: true,\n value: mod\n });\n } else {\n result[strDefault] = mod;\n }\n\n return result;\n}\nexport function __importDefaultFn(mod) {\n return mod && mod.__esModule ? mod : {\n strDefault: mod\n };\n}","/*!\n * Microsoft Dynamic Proto Utility, 1.1.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\nvar Constructor = 'constructor';\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\n\nvar Prototype = 'prototype';\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\n\nvar strFunction = 'function';\n/**\r\n * Used to define the name of the instance function lookup table\r\n * @ignore\r\n */\n\nvar DynInstFuncTable = '_dynInstFuncs';\n/**\r\n * Name used to tag the dynamic prototype function\r\n * @ignore\r\n */\n\nvar DynProxyTag = '_isDynProxy';\n/**\r\n * Name added to a prototype to define the dynamic prototype \"class\" name used to lookup the function table\r\n * @ignore\r\n */\n\nvar DynClassName = '_dynClass';\n/**\r\n * Prefix added to the classname to avoid any name clashes with other instance level properties\r\n * @ignore\r\n */\n\nvar DynClassNamePrefix = '_dynCls$';\n/**\r\n * A tag which is used to check if we have already to attempted to set the instance function if one is not present\r\n * @ignore\r\n */\n\nvar DynInstChkTag = '_dynInstChk';\n/**\r\n * A tag which is used to check if we are allows to try and set an instance function is one is not present. Using the same\r\n * tag name as the function level but a different const name for readability only.\r\n */\n\nvar DynAllowInstChkTag = DynInstChkTag;\n/**\r\n * The global (imported) instances where the global performance options are stored\r\n */\n\nvar DynProtoDefaultOptions = '_dfOpts';\n/**\r\n * Value used as the name of a class when it cannot be determined\r\n * @ignore\r\n */\n\nvar UnknownValue = '_unknown_';\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\n\nvar str__Proto = \"__proto__\";\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\n\nvar strUseBaseInst = 'useBaseInst';\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\n\nvar strSetInstFuncs = 'setInstFuncs';\nvar Obj = Object;\n/**\r\n * Pre-lookup to check if we are running on a modern browser (i.e. not IE8)\r\n * @ignore\r\n */\n\nvar _objGetPrototypeOf = Obj[\"getPrototypeOf\"];\n/**\r\n * Internal Global used to generate a unique dynamic class name, every new class will increase this value\r\n * @ignore\r\n */\n\nvar _dynamicNames = 0;\n/**\r\n * Helper to check if the object contains a property of the name\r\n * @ignore\r\n */\n\nfunction _hasOwnProperty(obj, prop) {\n return obj && Obj[Prototype].hasOwnProperty.call(obj, prop);\n}\n/**\r\n * Helper used to check whether the target is an Object prototype or Array prototype\r\n * @ignore\r\n */\n\n\nfunction _isObjectOrArrayPrototype(target) {\n return target && (target === Obj[Prototype] || target === Array[Prototype]);\n}\n/**\r\n * Helper used to check whether the target is an Object prototype, Array prototype or Function prototype\r\n * @ignore\r\n */\n\n\nfunction _isObjectArrayOrFunctionPrototype(target) {\n return _isObjectOrArrayPrototype(target) || target === Function[Prototype];\n}\n/**\r\n * Helper used to get the prototype of the target object as getPrototypeOf is not available in an ES3 environment.\r\n * @ignore\r\n */\n\n\nfunction _getObjProto(target) {\n if (target) {\n // This method doesn't existing in older browsers (e.g. IE8)\n if (_objGetPrototypeOf) {\n return _objGetPrototypeOf(target);\n } // target[Constructor] May break if the constructor has been changed or removed\n\n\n var newProto = target[str__Proto] || target[Prototype] || (target[Constructor] ? target[Constructor][Prototype] : null);\n\n if (newProto) {\n return newProto;\n }\n }\n\n return null;\n}\n/**\r\n * Helper to get the properties of an object, including none enumerable ones as functions on a prototype in ES6\r\n * are not enumerable.\r\n * @param target\r\n */\n\n\nfunction _forEachProp(target, func) {\n var props = [];\n var getOwnProps = Obj[\"getOwnPropertyNames\"];\n\n if (getOwnProps) {\n props = getOwnProps(target);\n } else {\n for (var name_1 in target) {\n if (typeof name_1 === \"string\" && _hasOwnProperty(target, name_1)) {\n props.push(name_1);\n }\n }\n }\n\n if (props && props.length > 0) {\n for (var lp = 0; lp < props.length; lp++) {\n func(props[lp]);\n }\n }\n}\n/**\r\n * Helper function to check whether the provided function name is a potential candidate for dynamic\r\n * callback and prototype generation.\r\n * @param target The target object, may be a prototype or class object\r\n * @param funcName The function name\r\n * @param skipOwn Skips the check for own property\r\n * @ignore\r\n */\n\n\nfunction _isDynamicCandidate(target, funcName, skipOwn) {\n return funcName !== Constructor && typeof target[funcName] === strFunction && (skipOwn || _hasOwnProperty(target, funcName));\n}\n/**\r\n * Helper to throw a TypeError exception\r\n * @param message the message\r\n * @ignore\r\n */\n\n\nfunction _throwTypeError(message) {\n throw new TypeError(\"DynamicProto: \" + message);\n}\n/**\r\n * Returns a collection of the instance functions that are defined directly on the thisTarget object, it does\r\n * not return any inherited functions\r\n * @param thisTarget The object to get the instance functions from\r\n * @ignore\r\n */\n\n\nfunction _getInstanceFuncs(thisTarget) {\n // Get the base proto\n var instFuncs = {}; // Save any existing instance functions\n\n _forEachProp(thisTarget, function (name) {\n // Don't include any dynamic prototype instances - as we only want the real functions\n if (!instFuncs[name] && _isDynamicCandidate(thisTarget, name, false)) {\n // Create an instance callback for passing the base function to the caller\n instFuncs[name] = thisTarget[name];\n }\n });\n\n return instFuncs;\n}\n/**\r\n * Returns whether the value is included in the array\r\n * @param values The array of values\r\n * @param value The value\r\n */\n\n\nfunction _hasVisited(values, value) {\n for (var lp = values.length - 1; lp >= 0; lp--) {\n if (values[lp] === value) {\n return true;\n }\n }\n\n return false;\n}\n/**\r\n * Returns an object that contains callback functions for all \"base/super\" functions, this is used to \"save\"\r\n * enabling calling super.xxx() functions without requiring that the base \"class\" has defined a prototype references\r\n * @param target The current instance\r\n * @ignore\r\n */\n\n\nfunction _getBaseFuncs(classProto, thisTarget, instFuncs, useBaseInst) {\n function _instFuncProxy(target, funcHost, funcName) {\n var theFunc = funcHost[funcName];\n\n if (theFunc[DynProxyTag] && useBaseInst) {\n // grab and reuse the hosted looking function (if available) otherwise the original passed function\n var instFuncTable = target[DynInstFuncTable] || {};\n\n if (instFuncTable[DynAllowInstChkTag] !== false) {\n theFunc = (instFuncTable[funcHost[DynClassName]] || {})[funcName] || theFunc;\n }\n }\n\n return function () {\n return theFunc.apply(target, arguments);\n };\n } // Start creating a new baseFuncs by creating proxies for the instance functions (as they may get replaced)\n\n\n var baseFuncs = {};\n\n _forEachProp(instFuncs, function (name) {\n // Create an instance callback for passing the base function to the caller\n baseFuncs[name] = _instFuncProxy(thisTarget, instFuncs, name);\n }); // Get the base prototype functions\n\n\n var baseProto = _getObjProto(classProto);\n\n var visited = []; // Don't include base object functions for Object, Array or Function\n\n while (baseProto && !_isObjectArrayOrFunctionPrototype(baseProto) && !_hasVisited(visited, baseProto)) {\n // look for prototype functions\n _forEachProp(baseProto, function (name) {\n // Don't include any dynamic prototype instances - as we only want the real functions\n // For IE 7/8 the prototype lookup doesn't provide the full chain so we need to bypass the \n // hasOwnProperty check we get all of the methods, main difference is that IE7/8 doesn't return\n // the Object prototype methods while bypassing the check\n if (!baseFuncs[name] && _isDynamicCandidate(baseProto, name, !_objGetPrototypeOf)) {\n // Create an instance callback for passing the base function to the caller\n baseFuncs[name] = _instFuncProxy(thisTarget, baseProto, name);\n }\n }); // We need to find all possible functions that might be overloaded by walking the entire prototype chain\n // This avoids the caller from needing to check whether it's direct base class implements the function or not\n // by walking the entire chain it simplifies the usage and issues from upgrading any of the base classes.\n\n\n visited.push(baseProto);\n baseProto = _getObjProto(baseProto);\n }\n\n return baseFuncs;\n}\n\nfunction _getInstFunc(target, funcName, proto, currentDynProtoProxy) {\n var instFunc = null; // We need to check whether the class name is defined directly on this prototype otherwise\n // it will walk the proto chain and return any parent proto classname.\n\n if (target && _hasOwnProperty(proto, DynClassName)) {\n var instFuncTable = target[DynInstFuncTable] || {};\n instFunc = (instFuncTable[proto[DynClassName]] || {})[funcName];\n\n if (!instFunc) {\n // Avoid stack overflow from recursive calling the same function\n _throwTypeError(\"Missing [\" + funcName + \"] \" + strFunction);\n } // We have the instance function, lets check it we can speed up further calls\n // by adding the instance function back directly on the instance (avoiding the dynamic func lookup)\n\n\n if (!instFunc[DynInstChkTag] && instFuncTable[DynAllowInstChkTag] !== false) {\n // If the instance already has an instance function we can't replace it\n var canAddInst = !_hasOwnProperty(target, funcName); // Get current prototype\n\n var objProto = _getObjProto(target);\n\n var visited = []; // Lookup the function starting at the top (instance level prototype) and traverse down, if the first matching function\n // if nothing is found or if the first hit is a dynamic proto instance then we can safely add an instance shortcut\n\n while (canAddInst && objProto && !_isObjectArrayOrFunctionPrototype(objProto) && !_hasVisited(visited, objProto)) {\n var protoFunc = objProto[funcName];\n\n if (protoFunc) {\n canAddInst = protoFunc === currentDynProtoProxy;\n break;\n } // We need to find all possible initial functions to ensure that we don't bypass a valid override function\n\n\n visited.push(objProto);\n objProto = _getObjProto(objProto);\n }\n\n try {\n if (canAddInst) {\n // This instance doesn't have an instance func and the class hierarchy does have a higher level prototype version\n // so it's safe to directly assign for any subsequent calls (for better performance)\n target[funcName] = instFunc;\n } // Block further attempts to set the instance function for any\n\n\n instFunc[DynInstChkTag] = 1;\n } catch (e) {\n // Don't crash if the object is readonly or the runtime doesn't allow changing this\n // And set a flag so we don't try again for any function\n instFuncTable[DynAllowInstChkTag] = false;\n }\n }\n }\n\n return instFunc;\n}\n\nfunction _getProtoFunc(funcName, proto, currentDynProtoProxy) {\n var protoFunc = proto[funcName]; // Check that the prototype function is not a self reference -- try to avoid stack overflow!\n\n if (protoFunc === currentDynProtoProxy) {\n // It is so lookup the base prototype\n protoFunc = _getObjProto(proto)[funcName];\n }\n\n if (typeof protoFunc !== strFunction) {\n _throwTypeError(\"[\" + funcName + \"] is not a \" + strFunction);\n }\n\n return protoFunc;\n}\n/**\r\n * Add the required dynamic prototype methods to the the class prototype\r\n * @param proto - The class prototype\r\n * @param className - The instance classname\r\n * @param target - The target instance\r\n * @param baseInstFuncs - The base instance functions\r\n * @param setInstanceFunc - Flag to allow prototype function to reset the instance function if one does not exist\r\n * @ignore\r\n */\n\n\nfunction _populatePrototype(proto, className, target, baseInstFuncs, setInstanceFunc) {\n function _createDynamicPrototype(proto, funcName) {\n var dynProtoProxy = function dynProtoProxy() {\n // Use the instance or prototype function\n var instFunc = _getInstFunc(this, funcName, proto, dynProtoProxy) || _getProtoFunc(funcName, proto, dynProtoProxy);\n\n return instFunc.apply(this, arguments);\n }; // Tag this function as a proxy to support replacing dynamic proxy elements (primary use case is for unit testing\n // via which can dynamically replace the prototype function reference)\n\n\n dynProtoProxy[DynProxyTag] = 1;\n return dynProtoProxy;\n }\n\n if (!_isObjectOrArrayPrototype(proto)) {\n var instFuncTable = target[DynInstFuncTable] = target[DynInstFuncTable] || {};\n var instFuncs_1 = instFuncTable[className] = instFuncTable[className] || {}; // fetch and assign if as it may not exist yet\n // Set whether we are allow to lookup instances, if someone has set to false then do not re-enable\n\n if (instFuncTable[DynAllowInstChkTag] !== false) {\n instFuncTable[DynAllowInstChkTag] = !!setInstanceFunc;\n }\n\n _forEachProp(target, function (name) {\n // Only add overridden functions\n if (_isDynamicCandidate(target, name, false) && target[name] !== baseInstFuncs[name]) {\n // Save the instance Function to the lookup table and remove it from the instance as it's not a dynamic proto function\n instFuncs_1[name] = target[name];\n delete target[name]; // Add a dynamic proto if one doesn't exist or if a prototype function exists and it's not a dynamic one\n\n if (!_hasOwnProperty(proto, name) || proto[name] && !proto[name][DynProxyTag]) {\n proto[name] = _createDynamicPrototype(proto, name);\n }\n }\n });\n }\n}\n/**\r\n * Checks whether the passed prototype object appears to be correct by walking the prototype hierarchy of the instance\r\n * @param classProto The class prototype instance\r\n * @param thisTarget The current instance that will be checked whether the passed prototype instance is in the hierarchy\r\n * @ignore\r\n */\n\n\nfunction _checkPrototype(classProto, thisTarget) {\n // This method doesn't existing in older browsers (e.g. IE8)\n if (_objGetPrototypeOf) {\n // As this is primarily a coding time check, don't bother checking if running in IE8 or lower\n var visited = [];\n\n var thisProto = _getObjProto(thisTarget);\n\n while (thisProto && !_isObjectArrayOrFunctionPrototype(thisProto) && !_hasVisited(visited, thisProto)) {\n if (thisProto === classProto) {\n return true;\n } // This avoids the caller from needing to check whether it's direct base class implements the function or not\n // by walking the entire chain it simplifies the usage and issues from upgrading any of the base classes.\n\n\n visited.push(thisProto);\n thisProto = _getObjProto(thisProto);\n }\n }\n\n return false;\n}\n/**\r\n * Gets the current prototype name using the ES6 name if available otherwise falling back to a use unknown as the name.\r\n * It's not critical for this to return a name, it's used to decorate the generated unique name for easier debugging only.\r\n * @param target\r\n * @param unknownValue\r\n * @ignore\r\n */\n\n\nfunction _getObjName(target, unknownValue) {\n if (_hasOwnProperty(target, Prototype)) {\n // Look like a prototype\n return target.name || unknownValue || UnknownValue;\n }\n\n return ((target || {})[Constructor] || {}).name || unknownValue || UnknownValue;\n}\n/**\r\n * Helper function when creating dynamic (inline) functions for classes, this helper performs the following tasks :-\r\n * - Saves references to all defined base class functions\r\n * - Calls the delegateFunc with the current target (this) and a base object reference that can be used to call all \"super\" functions.\r\n * - Will populate the class prototype for all overridden functions to support class extension that call the prototype instance.\r\n * Callers should use this helper when declaring all function within the constructor of a class, as mentioned above the delegateFunc is\r\n * passed both the target \"this\" and an object that can be used to call any base (super) functions, using this based object in place of\r\n * super.XXX() (which gets expanded to _super.prototype.XXX()) provides a better minification outcome and also ensures the correct \"this\"\r\n * context is maintained as TypeScript creates incorrect references using super.XXXX() for dynamically defined functions i.e. Functions\r\n * defined in the constructor or some other function (rather than declared as complete typescript functions).\r\n * ### Usage\r\n * ```typescript\r\n * import dynamicProto from \"@microsoft/dynamicproto-js\";\r\n * class ExampleClass extends BaseClass {\r\n * constructor() {\r\n * dynamicProto(ExampleClass, this, (_self, base) => {\r\n * // This will define a function that will be converted to a prototype function\r\n * _self.newFunc = () => {\r\n * // Access any \"this\" instance property\r\n * if (_self.someProperty) {\r\n * ...\r\n * }\r\n * }\r\n * // This will define a function that will be converted to a prototype function\r\n * _self.myFunction = () => {\r\n * // Access any \"this\" instance property\r\n * if (_self.someProperty) {\r\n * // Call the base version of the function that we are overriding\r\n * base.myFunction();\r\n * }\r\n * ...\r\n * }\r\n * _self.initialize = () => {\r\n * ...\r\n * }\r\n * // Warnings: While the following will work as _self is simply a reference to\r\n * // this, if anyone overrides myFunction() the overridden will be called first\r\n * // as the normal JavaScript method resolution will occur and the defined\r\n * // _self.initialize() function is actually gets removed from the instance and\r\n * // a proxy prototype version is created to reference the created method.\r\n * _self.initialize();\r\n * });\r\n * }\r\n * }\r\n * ```\r\n * @typeparam DPType This is the generic type of the class, used to keep intellisense valid\r\n * @typeparam DPCls The type that contains the prototype of the current class\r\n * @param theClass - This is the current class instance which contains the prototype for the current class\r\n * @param target - The current \"this\" (target) reference, when the class has been extended this.prototype will not be the 'theClass' value.\r\n * @param delegateFunc - The callback function (closure) that will create the dynamic function\r\n * @param options - Additional options to configure how the dynamic prototype operates\r\n */\n\n\nfunction dynamicProto(theClass, target, delegateFunc, options) {\n // Make sure that the passed theClass argument looks correct\n if (!_hasOwnProperty(theClass, Prototype)) {\n _throwTypeError(\"theClass is an invalid class definition.\");\n } // Quick check to make sure that the passed theClass argument looks correct (this is a common copy/paste error)\n\n\n var classProto = theClass[Prototype];\n\n if (!_checkPrototype(classProto, target)) {\n _throwTypeError(\"[\" + _getObjName(theClass) + \"] is not in class hierarchy of [\" + _getObjName(target) + \"]\");\n }\n\n var className = null;\n\n if (_hasOwnProperty(classProto, DynClassName)) {\n // Only grab the class name if it's defined on this prototype (i.e. don't walk the prototype chain)\n className = classProto[DynClassName];\n } else {\n // As not all browser support name on the prototype creating a unique dynamic one if we have not already\n // assigned one, so we can use a simple string as the lookup rather than an object for the dynamic instance\n // function table lookup.\n className = DynClassNamePrefix + _getObjName(theClass, \"_\") + \"$\" + _dynamicNames;\n _dynamicNames++;\n classProto[DynClassName] = className;\n }\n\n var perfOptions = dynamicProto[DynProtoDefaultOptions];\n var useBaseInst = !!perfOptions[strUseBaseInst];\n\n if (useBaseInst && options && options[strUseBaseInst] !== undefined) {\n useBaseInst = !!options[strUseBaseInst];\n } // Get the current instance functions\n\n\n var instFuncs = _getInstanceFuncs(target); // Get all of the functions for any base instance (before they are potentially overridden)\n\n\n var baseFuncs = _getBaseFuncs(classProto, target, instFuncs, useBaseInst); // Execute the delegate passing in both the current target \"this\" and \"base\" function references\n // Note casting the same type as we don't actually have the base class here and this will provide some intellisense support\n\n\n delegateFunc(target, baseFuncs); // Don't allow setting instance functions for older IE instances\n\n var setInstanceFunc = !!_objGetPrototypeOf && !!perfOptions[strSetInstFuncs];\n\n if (setInstanceFunc && options) {\n setInstanceFunc = !!options[strSetInstFuncs];\n } // Populate the Prototype for any overridden instance functions\n\n\n _populatePrototype(classProto, className, target, instFuncs, setInstanceFunc !== false);\n}\n/**\r\n * Exposes the default global options to allow global configuration, if the global values are disabled these will override\r\n * any passed values. This is primarily exposed to support unit-testing without the need for individual classes to expose\r\n * their internal usage of dynamic proto.\r\n */\n\n\nvar perfDefaults = {\n setInstFuncs: true,\n useBaseInst: true\n}; // And expose for testing\n\ndynamicProto[DynProtoDefaultOptions] = perfDefaults;\nexport default dynamicProto;","/*\n * Application Insights JavaScript SDK - Core, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nexport var LoggingSeverity;\n\n(function (LoggingSeverity) {\n /**\r\n * Error will be sent as internal telemetry\r\n */\n LoggingSeverity[LoggingSeverity[\"CRITICAL\"] = 1] = \"CRITICAL\";\n /**\r\n * Error will NOT be sent as internal telemetry, and will only be shown in browser console\r\n */\n\n LoggingSeverity[LoggingSeverity[\"WARNING\"] = 2] = \"WARNING\";\n})(LoggingSeverity || (LoggingSeverity = {}));\n/**\r\n * Internal message ID. Please create a new one for every conceptually different message. Please keep alphabetically ordered\r\n */\n\n\nexport var _InternalMessageId = {\n // Non user actionable\n BrowserDoesNotSupportLocalStorage: 0,\n BrowserCannotReadLocalStorage: 1,\n BrowserCannotReadSessionStorage: 2,\n BrowserCannotWriteLocalStorage: 3,\n BrowserCannotWriteSessionStorage: 4,\n BrowserFailedRemovalFromLocalStorage: 5,\n BrowserFailedRemovalFromSessionStorage: 6,\n CannotSendEmptyTelemetry: 7,\n ClientPerformanceMathError: 8,\n ErrorParsingAISessionCookie: 9,\n ErrorPVCalc: 10,\n ExceptionWhileLoggingError: 11,\n FailedAddingTelemetryToBuffer: 12,\n FailedMonitorAjaxAbort: 13,\n FailedMonitorAjaxDur: 14,\n FailedMonitorAjaxOpen: 15,\n FailedMonitorAjaxRSC: 16,\n FailedMonitorAjaxSend: 17,\n FailedMonitorAjaxGetCorrelationHeader: 18,\n FailedToAddHandlerForOnBeforeUnload: 19,\n FailedToSendQueuedTelemetry: 20,\n FailedToReportDataLoss: 21,\n FlushFailed: 22,\n MessageLimitPerPVExceeded: 23,\n MissingRequiredFieldSpecification: 24,\n NavigationTimingNotSupported: 25,\n OnError: 26,\n SessionRenewalDateIsZero: 27,\n SenderNotInitialized: 28,\n StartTrackEventFailed: 29,\n StopTrackEventFailed: 30,\n StartTrackFailed: 31,\n StopTrackFailed: 32,\n TelemetrySampledAndNotSent: 33,\n TrackEventFailed: 34,\n TrackExceptionFailed: 35,\n TrackMetricFailed: 36,\n TrackPVFailed: 37,\n TrackPVFailedCalc: 38,\n TrackTraceFailed: 39,\n TransmissionFailed: 40,\n FailedToSetStorageBuffer: 41,\n FailedToRestoreStorageBuffer: 42,\n InvalidBackendResponse: 43,\n FailedToFixDepricatedValues: 44,\n InvalidDurationValue: 45,\n TelemetryEnvelopeInvalid: 46,\n CreateEnvelopeError: 47,\n // User actionable\n CannotSerializeObject: 48,\n CannotSerializeObjectNonSerializable: 49,\n CircularReferenceDetected: 50,\n ClearAuthContextFailed: 51,\n ExceptionTruncated: 52,\n IllegalCharsInName: 53,\n ItemNotInArray: 54,\n MaxAjaxPerPVExceeded: 55,\n MessageTruncated: 56,\n NameTooLong: 57,\n SampleRateOutOfRange: 58,\n SetAuthContextFailed: 59,\n SetAuthContextFailedAccountName: 60,\n StringValueTooLong: 61,\n StartCalledMoreThanOnce: 62,\n StopCalledWithoutStart: 63,\n TelemetryInitializerFailed: 64,\n TrackArgumentsNotSpecified: 65,\n UrlTooLong: 66,\n SessionStorageBufferFull: 67,\n CannotAccessCookie: 68,\n IdTooLong: 69,\n InvalidEvent: 70,\n FailedMonitorAjaxSetRequestHeader: 71,\n SendBrowserInfoOnUserInit: 72,\n PluginException: 73,\n NotificationException: 74,\n SnippetScriptLoadFailure: 99,\n InvalidInstrumentationKey: 100,\n CannotParseAiBlobValue: 101,\n InvalidContentBlob: 102,\n TrackPageActionEventFailed: 103,\n FailedAddingCustomDefinedRequestContext: 104,\n InMemoryStorageBufferFull: 105\n};","/*\n * Application Insights JavaScript SDK - Core, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { strShimUndefined, strShimObject, strShimFunction, throwTypeError, ObjClass, ObjProto, ObjAssign, ObjHasOwnProperty, ObjDefineProperty, strShimPrototype } from \"@microsoft/applicationinsights-shims\"; // RESTRICT and AVOID circular dependencies you should not import other contained modules or export the contents of this file directly\n// Added to help with minfication\n\nvar strOnPrefix = \"on\";\nvar strAttachEvent = \"attachEvent\";\nvar strAddEventHelper = \"addEventListener\";\nvar strDetachEvent = \"detachEvent\";\nvar strRemoveEventListener = \"removeEventListener\";\nvar strToISOString = \"toISOString\";\nvar cStrEndsWith = \"endsWith\";\nvar cStrStartsWith = \"startsWith\";\nvar strIndexOf = \"indexOf\";\nvar strMap = \"map\";\nvar strReduce = \"reduce\";\nvar cStrTrim = \"trim\";\nvar strToString = \"toString\";\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\n\nvar str__Proto = \"__proto__\";\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\n\nvar strConstructor = \"constructor\";\nvar _objDefineProperty = ObjDefineProperty;\nvar _objFreeze = ObjClass.freeze;\nvar _objSeal = ObjClass.seal;\nvar _objKeys = ObjClass.keys;\nvar StringProto = String[strShimPrototype];\nvar _strTrim = StringProto[cStrTrim];\nvar _strEndsWith = StringProto[cStrEndsWith];\nvar _strStartsWith = StringProto[cStrStartsWith];\nvar DateProto = Date[strShimPrototype];\nvar _dataToISOString = DateProto[strToISOString];\nvar _isArray = Array.isArray;\nvar _objToString = ObjProto[strToString];\nvar _fnToString = ObjHasOwnProperty[strToString]; // Cache what this browser reports as the object function constructor (as a string)\n\nvar _objFunctionString = _fnToString.call(ObjClass);\n\nvar rCamelCase = /-([a-z])/g;\nvar rNormalizeInvalid = /([^\\w\\d_$])/g;\nvar rLeadingNumeric = /^(\\d+[\\w\\d_$])/;\n/**\r\n * Pre-lookup to check if we are running on a modern browser (i.e. not IE8)\r\n * @ignore\r\n */\n\nvar _objGetPrototypeOf = Object[\"getPrototypeOf\"];\n/**\r\n * Helper used to get the prototype of the target object as getPrototypeOf is not available in an ES3 environment.\r\n * @ignore\r\n */\n\nexport function _getObjProto(target) {\n if (target) {\n // This method doesn't existing in older browsers (e.g. IE8)\n if (_objGetPrototypeOf) {\n return _objGetPrototypeOf(target);\n } // target[Constructor] May break if the constructor has been changed or removed\n\n\n var newProto = target[str__Proto] || target[strShimPrototype] || target[strConstructor];\n\n if (newProto) {\n return newProto;\n }\n }\n\n return null;\n}\nexport function objToString(obj) {\n return _objToString.call(obj);\n}\nexport function isTypeof(value, theType) {\n return typeof value === theType;\n}\nexport function isUndefined(value) {\n return value === undefined || typeof value === strShimUndefined;\n}\nexport function isNotUndefined(value) {\n return !isUndefined(value);\n}\nexport function isNullOrUndefined(value) {\n return value === null || isUndefined(value);\n}\nexport function isNotNullOrUndefined(value) {\n return !isNullOrUndefined(value);\n}\nexport function hasOwnProperty(obj, prop) {\n return !!(obj && ObjHasOwnProperty.call(obj, prop));\n}\nexport function isObject(value) {\n // Changing to inline for performance\n return !!(value && typeof value === strShimObject);\n}\nexport function isFunction(value) {\n // Changing to inline for performance\n return !!(value && typeof value === strShimFunction);\n}\n/**\r\n * Binds the specified function to an event, so that the function gets called whenever the event fires on the object\r\n * @param obj Object to add the event too.\r\n * @param eventNameWithoutOn String that specifies any of the standard DHTML Events without \"on\" prefix\r\n * @param handlerRef Pointer that specifies the function to call when event fires\r\n * @param useCapture [Optional] Defaults to false\r\n * @returns True if the function was bound successfully to the event, otherwise false\r\n */\n\nexport function attachEvent(obj, eventNameWithoutOn, handlerRef, useCapture) {\n if (useCapture === void 0) {\n useCapture = false;\n }\n\n var result = false;\n\n if (!isNullOrUndefined(obj)) {\n try {\n if (!isNullOrUndefined(obj[strAddEventHelper])) {\n // all browsers except IE before version 9\n obj[strAddEventHelper](eventNameWithoutOn, handlerRef, useCapture);\n result = true;\n } else if (!isNullOrUndefined(obj[strAttachEvent])) {\n // IE before version 9\n obj[strAttachEvent](strOnPrefix + eventNameWithoutOn, handlerRef);\n result = true;\n }\n } catch (e) {// Just Ignore any error so that we don't break any execution path\n }\n }\n\n return result;\n}\n/**\r\n * Removes an event handler for the specified event\r\n * @param Object to remove the event from\r\n * @param eventNameWithoutOn {string} - The name of the event\r\n * @param handlerRef {any} - The callback function that needs to be executed for the given event\r\n * @param useCapture [Optional] Defaults to false\r\n */\n\nexport function detachEvent(obj, eventNameWithoutOn, handlerRef, useCapture) {\n if (useCapture === void 0) {\n useCapture = false;\n }\n\n if (!isNullOrUndefined(obj)) {\n try {\n if (!isNullOrUndefined(obj[strRemoveEventListener])) {\n obj[strRemoveEventListener](eventNameWithoutOn, handlerRef, useCapture);\n } else if (!isNullOrUndefined(obj[strDetachEvent])) {\n obj[strDetachEvent](strOnPrefix + eventNameWithoutOn, handlerRef);\n }\n } catch (e) {// Just Ignore any error so that we don't break any execution path\n }\n }\n}\n/**\r\n * Validates that the string name conforms to the JS IdentifierName specification and if not\r\n * normalizes the name so that it would. This method does not identify or change any keywords\r\n * meaning that if you pass in a known keyword the same value will be returned.\r\n * This is a simplified version\r\n * @param name The name to validate\r\n */\n\nexport function normalizeJsName(name) {\n var value = name;\n\n if (value && isString(value)) {\n // CamelCase everything after the \"-\" and remove the dash\n value = value.replace(rCamelCase, function (_all, letter) {\n return letter.toUpperCase();\n });\n value = value.replace(rNormalizeInvalid, \"_\");\n value = value.replace(rLeadingNumeric, function (_all, match) {\n return \"_\" + match;\n });\n }\n\n return value;\n}\n/**\r\n * This is a helper function for the equivalent of arForEach(objKeys(target), callbackFn), this is a\r\n * performance optimization to avoid the creation of a new array for large objects\r\n * @param target The target object to find and process the keys\r\n * @param callbackfn The function to call with the details\r\n */\n\nexport function objForEachKey(target, callbackfn) {\n if (target) {\n for (var prop in target) {\n if (ObjHasOwnProperty.call(target, prop)) {\n callbackfn.call(target, prop, target[prop]);\n }\n }\n }\n}\n/**\r\n * The strEndsWith() method determines whether a string ends with the characters of a specified string, returning true or false as appropriate.\r\n * @param value - The value to check whether it ends with the search value.\r\n * @param search - The characters to be searched for at the end of the value.\r\n * @returns true if the given search value is found at the end of the string, otherwise false.\r\n */\n\nexport function strEndsWith(value, search) {\n var result = false;\n\n if (value && search && !(result = value === search)) {\n // For Performance try and use the native instance, using string lookup of the function to easily pass the ES3 build checks and minification\n result = _strEndsWith ? value[cStrEndsWith](search) : _strEndsWithPoly(value, search);\n }\n\n return result;\n}\n/**\r\n * The _strEndsWith() method determines whether a string ends with the characters of a specified string, returning true or false as appropriate.\r\n * @param value - The value to check whether it ends with the search value.\r\n * @param search - The characters to be searched for at the end of the value.\r\n * @returns true if the given search value is found at the end of the string, otherwise false.\r\n */\n\nexport function _strEndsWithPoly(value, search) {\n var result = false;\n var searchLen = search ? search.length : 0;\n var valLen = value ? value.length : 0;\n\n if (searchLen && valLen && valLen >= searchLen && !(result = value === search)) {\n var pos = valLen - 1;\n\n for (var lp = searchLen - 1; lp >= 0; lp--) {\n if (value[pos] != search[lp]) {\n return false;\n }\n\n pos--;\n }\n\n result = true;\n }\n\n return result;\n}\n/**\r\n * The strStartsWith() method determines whether a string starts with the characters of the specified string, returning true or false as appropriate.\r\n * @param value - The value to check whether it ends with the search value.\r\n * @param checkValue - The characters to be searched for at the start of the value.\r\n * @returns true if the given search value is found at the start of the string, otherwise false.\r\n */\n\nexport function strStartsWith(value, checkValue) {\n var result = false;\n\n if (value && checkValue && !(result = value === checkValue)) {\n // For Performance try and use the native instance, using string lookup of the function to easily pass the ES3 build checks and minification\n result = _strStartsWith ? value[cStrStartsWith](checkValue) : _strStartsWithPoly(value, checkValue);\n }\n\n return result;\n}\n/**\r\n * The strStartsWith() method determines whether a string starts with the characters of the specified string, returning true or false as appropriate.\r\n * @param value - The value to check whether it ends with the search value.\r\n * @param checkValue - The characters to be searched for at the start of the value.\r\n * @returns true if the given search value is found at the start of the string, otherwise false.\r\n */\n\nexport function _strStartsWithPoly(value, checkValue) {\n // Using helper for performance and because string startsWith() is not available on IE\n var result = false;\n var chkLen = checkValue ? checkValue.length : 0;\n\n if (value && chkLen && value.length >= chkLen && !(result = value === checkValue)) {\n for (var lp = 0; lp < chkLen; lp++) {\n if (value[lp] !== checkValue[lp]) {\n return false;\n }\n }\n\n result = true;\n }\n\n return result;\n}\n/**\r\n * A simple wrapper (for minification support) to check if the value contains the search string.\r\n * @param value - The string value to check for the existence of the search value\r\n * @param search - The value search within the value\r\n */\n\nexport function strContains(value, search) {\n if (value && search) {\n return value.indexOf(search) !== -1;\n }\n\n return false;\n}\n/**\r\n * Check if an object is of type Date\r\n */\n\nexport function isDate(obj) {\n return !!(obj && _objToString.call(obj) === \"[object Date]\");\n}\n/**\r\n * Check if an object is of type Array\r\n */\n\nexport var isArray = _isArray || _isArrayPoly;\n\nfunction _isArrayPoly(obj) {\n return !!(obj && _objToString.call(obj) === \"[object Array]\");\n}\n/**\r\n * Check if an object is of type Error\r\n */\n\n\nexport function isError(obj) {\n return !!(obj && _objToString.call(obj) === \"[object Error]\");\n}\n/**\r\n * Checks if the type of value is a string.\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a string, false otherwise.\r\n */\n\nexport function isString(value) {\n // Changing to inline for performance\n return typeof value === \"string\";\n}\n/**\r\n * Checks if the type of value is a number.\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a number, false otherwise.\r\n */\n\nexport function isNumber(value) {\n // Changing to inline for performance\n return typeof value === \"number\";\n}\n/**\r\n * Checks if the type of value is a boolean.\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a boolean, false otherwise.\r\n */\n\nexport function isBoolean(value) {\n // Changing to inline for performance\n return typeof value === \"boolean\";\n}\n/**\r\n * Checks if the type of value is a Symbol.\r\n * This only returns a boolean as returning value is Symbol will cause issues for older TypeScript consumers\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a Symbol, false otherwise.\r\n */\n\nexport function isSymbol(value) {\n return typeof value === \"symbol\";\n}\n/**\r\n * Checks if the type of the value is a normal plain object (not a null or data)\r\n * @param value\r\n */\n\nexport function isPlainObject(value) {\n var result = false;\n\n if (value && typeof value === \"object\") {\n // Inlining _objGetPrototypeOf for performance to avoid an additional function call\n var proto = _objGetPrototypeOf ? _objGetPrototypeOf(value) : _getObjProto(value);\n\n if (!proto) {\n // No prototype found so this is a plain Object eg. 'Object.create(null)'\n result = true;\n } else {\n // Objects that have a prototype are plain only if they were created using the Object global (native) function\n if (proto[strConstructor] && ObjHasOwnProperty.call(proto, strConstructor)) {\n proto = proto[strConstructor];\n }\n\n result = typeof proto === strShimFunction && _fnToString.call(proto) === _objFunctionString;\n }\n }\n\n return result;\n}\n/**\r\n * Convert a date to I.S.O. format in IE8\r\n */\n\nexport function toISOString(date) {\n if (date) {\n // For Performance try and use the native instance, using string lookup of the function to easily pass the ES3 build checks and minification\n return _dataToISOString ? date[strToISOString]() : _toISOStringPoly(date);\n }\n}\n/**\r\n * Convert a date to I.S.O. format in IE8\r\n */\n\nexport function _toISOStringPoly(date) {\n if (date && date.getUTCFullYear) {\n var pad = function pad(num) {\n var r = String(num);\n\n if (r.length === 1) {\n r = \"0\" + r;\n }\n\n return r;\n };\n\n return date.getUTCFullYear() + \"-\" + pad(date.getUTCMonth() + 1) + \"-\" + pad(date.getUTCDate()) + \"T\" + pad(date.getUTCHours()) + \":\" + pad(date.getUTCMinutes()) + \":\" + pad(date.getUTCSeconds()) + \".\" + String((date.getUTCMilliseconds() / 1000).toFixed(3)).slice(2, 5) + \"Z\";\n }\n}\n/**\r\n * Performs the specified action for each element in an array. This helper exists to avoid adding a polyfil for older browsers\r\n * that do not define Array.prototype.xxxx (eg. ES3 only, IE8) just in case any page checks for presence/absence of the prototype\r\n * implementation. Note: For consistency this will not use the Array.prototype.xxxx implementation if it exists as this would\r\n * cause a testing requirement to test with and without the implementations\r\n * @param callbackfn A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the array. It can return -1 to break out of the loop\r\n * @param thisArg [Optional] An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\r\n */\n\nexport function arrForEach(arr, callbackfn, thisArg) {\n var len = arr.length;\n\n try {\n for (var idx = 0; idx < len; idx++) {\n if (idx in arr) {\n if (callbackfn.call(thisArg || arr, arr[idx], idx, arr) === -1) {\n break;\n }\n }\n }\n } catch (e) {// This can happen with some native browser objects, but should not happen for the type we are checking for\n }\n}\n/**\r\n * Returns the index of the first occurrence of a value in an array. This helper exists to avoid adding a polyfil for older browsers\r\n * that do not define Array.prototype.xxxx (eg. ES3 only, IE8) just in case any page checks for presence/absence of the prototype\r\n * implementation. Note: For consistency this will not use the Array.prototype.xxxx implementation if it exists as this would\r\n * cause a testing requirement to test with and without the implementations\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0.\r\n */\n\nexport function arrIndexOf(arr, searchElement, fromIndex) {\n if (arr) {\n // For Performance try and use the native instance, using string lookup of the function to easily pass the ES3 build checks and minification\n if (arr[strIndexOf]) {\n return arr[strIndexOf](searchElement, fromIndex);\n }\n\n var len = arr.length;\n var from = fromIndex || 0;\n\n try {\n for (var lp = Math.max(from >= 0 ? from : len - Math.abs(from), 0); lp < len; lp++) {\n if (lp in arr && arr[lp] === searchElement) {\n return lp;\n }\n }\n } catch (e) {// This can happen with some native browser objects, but should not happen for the type we are checking for\n }\n }\n\n return -1;\n}\n/**\r\n * Calls a defined callback function on each element of an array, and returns an array that contains the results. This helper exists\r\n * to avoid adding a polyfil for older browsers that do not define Array.prototype.xxxx (eg. ES3 only, IE8) just in case any page\r\n * checks for presence/absence of the prototype implementation. Note: For consistency this will not use the Array.prototype.xxxx\r\n * implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @param callbackfn A function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\r\n */\n\nexport function arrMap(arr, callbackfn, thisArg) {\n var results;\n\n if (arr) {\n // For Performance try and use the native instance, using string lookup of the function to easily pass the ES3 build checks and minification\n if (arr[strMap]) {\n return arr[strMap](callbackfn, thisArg);\n }\n\n var len = arr.length;\n\n var _this = thisArg || arr;\n\n results = new Array(len);\n\n try {\n for (var lp = 0; lp < len; lp++) {\n if (lp in arr) {\n results[lp] = callbackfn.call(_this, arr[lp], arr);\n }\n }\n } catch (e) {// This can happen with some native browser objects, but should not happen for the type we are checking for\n }\n }\n\n return results;\n}\n/**\r\n * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is\r\n * provided as an argument in the next call to the callback function. This helper exists to avoid adding a polyfil for older browsers that do not define\r\n * Array.prototype.xxxx (eg. ES3 only, IE8) just in case any page checks for presence/absence of the prototype implementation. Note: For consistency\r\n * this will not use the Array.prototype.xxxx implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\r\n */\n\nexport function arrReduce(arr, callbackfn, initialValue) {\n var value;\n\n if (arr) {\n // For Performance try and use the native instance, using string lookup of the function to easily pass the ES3 build checks and minification\n if (arr[strReduce]) {\n return arr[strReduce](callbackfn, initialValue);\n }\n\n var len = arr.length;\n var lp = 0; // Specifically checking the number of passed arguments as the value could be anything\n\n if (arguments.length >= 3) {\n value = arguments[2];\n } else {\n while (lp < len && !(lp in arr)) {\n lp++;\n }\n\n value = arr[lp++];\n }\n\n while (lp < len) {\n if (lp in arr) {\n value = callbackfn(value, arr[lp], lp, arr);\n }\n\n lp++;\n }\n }\n\n return value;\n}\n/**\r\n * helper method to trim strings (IE8 does not implement String.prototype.trim)\r\n */\n\nexport function strTrim(str) {\n if (str) {\n // For Performance try and use the native instance, using string lookup of the function to easily pass the ES3 build checks and minification\n str = _strTrim && str[cStrTrim] ? str[cStrTrim]() : str.replace ? str.replace(/^\\s+|\\s+$/g, \"\") : str;\n }\n\n return str;\n}\n\nvar _objKeysHasDontEnumBug = !{\n toString: null\n}.propertyIsEnumerable(\"toString\");\n\nvar _objKeysDontEnums = [\"toString\", \"toLocaleString\", \"valueOf\", \"hasOwnProperty\", \"isPrototypeOf\", \"propertyIsEnumerable\", \"constructor\"];\n/**\r\n * Returns the names of the enumerable string properties and methods of an object. This helper exists to avoid adding a polyfil for older browsers\r\n * that do not define Object.keys eg. ES3 only, IE8 just in case any page checks for presence/absence of the prototype implementation.\r\n * Note: For consistency this will not use the Object.keys implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @param obj Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.\r\n */\n\nexport function objKeys(obj) {\n var objType = typeof obj;\n\n if (objType !== strShimFunction && (objType !== strShimObject || obj === null)) {\n throwTypeError(\"objKeys called on non-object\");\n } // For Performance try and use the native instance, using string lookup of the function to easily pass the ES3 build checks and minification\n\n\n if (!_objKeysHasDontEnumBug && _objKeys) {\n return _objKeys(obj);\n }\n\n var result = [];\n\n for (var prop in obj) {\n if (obj && ObjHasOwnProperty.call(obj, prop)) {\n result.push(prop);\n }\n }\n\n if (_objKeysHasDontEnumBug) {\n var dontEnumsLength = _objKeysDontEnums.length;\n\n for (var lp = 0; lp < dontEnumsLength; lp++) {\n if (obj && ObjHasOwnProperty.call(obj, _objKeysDontEnums[lp])) {\n result.push(_objKeysDontEnums[lp]);\n }\n }\n }\n\n return result;\n}\n/**\r\n * Try to define get/set object property accessors for the target object/prototype, this will provide compatibility with\r\n * existing API definition when run within an ES5+ container that supports accessors but still enable the code to be loaded\r\n * and executed in an ES3 container, providing basic IE8 compatibility.\r\n * @param target The object on which to define the property.\r\n * @param prop The name of the property to be defined or modified.\r\n * @param getProp The getter function to wire against the getter.\r\n * @param setProp The setter function to wire against the setter.\r\n * @returns True if it was able to create the accessors otherwise false\r\n */\n\nexport function objDefineAccessors(target, prop, getProp, setProp) {\n if (_objDefineProperty) {\n try {\n var descriptor = {\n enumerable: true,\n configurable: true\n };\n\n if (getProp) {\n descriptor.get = getProp;\n }\n\n if (setProp) {\n descriptor.set = setProp;\n }\n\n _objDefineProperty(target, prop, descriptor);\n\n return true;\n } catch (e) {// IE8 Defines a defineProperty on Object but it's only supported for DOM elements so it will throw\n // We will just ignore this here.\n }\n }\n\n return false;\n}\n\nfunction _doNothing(value) {\n return value;\n}\n\nexport var objFreeze = _objFreeze || _doNothing;\nexport var objSeal = _objSeal || _doNothing;\n/**\r\n * Return the current time via the Date now() function (if available) and falls back to (new Date()).getTime() if now() is unavailable (IE8 or less)\r\n * https://caniuse.com/#search=Date.now\r\n */\n\nexport function dateNow() {\n var dt = Date;\n return dt.now ? dt.now() : new dt().getTime();\n}\n/**\r\n * Returns the name of object if it's an Error. Otherwise, returns empty string.\r\n */\n\nexport function getExceptionName(object) {\n if (isError(object)) {\n return object.name;\n }\n\n return \"\";\n}\n/**\r\n * Sets the provided value on the target instance using the field name when the provided chk function returns true, the chk\r\n * function will only be called if the new value is no equal to the original value.\r\n * @param target - The target object\r\n * @param field - The key of the target\r\n * @param value - The value to set\r\n * @param valChk - [Optional] Callback to check the value that if supplied will be called check if the new value can be set\r\n * @param srcChk - [Optional] Callback to check to original value that if supplied will be called if the new value should be set (if allowed)\r\n * @returns The existing or new value, depending what was set\r\n */\n\nexport function setValue(target, field, value, valChk, srcChk) {\n var theValue = value;\n\n if (target) {\n theValue = target[field];\n\n if (theValue !== value && (!srcChk || srcChk(theValue)) && (!valChk || valChk(value))) {\n theValue = value;\n target[field] = theValue;\n }\n }\n\n return theValue;\n}\n/**\r\n * Returns the current value from the target object if not null or undefined otherwise sets the new value and returns it\r\n * @param target - The target object to return or set the default value\r\n * @param field - The key for the field to set on the target\r\n * @param defValue - [Optional] The value to set if not already present, when not provided a empty object will be added\r\n */\n\nexport function getSetValue(target, field, defValue) {\n var theValue;\n\n if (target) {\n theValue = target[field];\n\n if (!theValue && isNullOrUndefined(theValue)) {\n // Supports having the default as null\n theValue = !isUndefined(defValue) ? defValue : {};\n target[field] = theValue;\n }\n } else {\n // Expanded for performance so we only check defValue if required\n theValue = !isUndefined(defValue) ? defValue : {};\n }\n\n return theValue;\n}\nexport function isNotTruthy(value) {\n return !value;\n}\nexport function isTruthy(value) {\n return !!value;\n}\nexport function throwError(message) {\n throw new Error(message);\n}\n/**\r\n * Effectively assigns all enumerable properties (not just own properties) and functions (including inherited prototype) from\r\n * the source object to the target, it attempts to use proxy getters / setters (if possible) and proxy functions to avoid potential\r\n * implementation issues by assigning prototype functions as instance ones\r\n *\r\n * This method is the primary method used to \"update\" the snippet proxy with the ultimate implementations.\r\n *\r\n * Special ES3 Notes:\r\n * Updates (setting) of direct property values on the target or indirectly on the source object WILL NOT WORK PROPERLY, updates to the\r\n * properties of \"referenced\" object will work (target.context.newValue = 10 => will be reflected in the source.context as it's the\r\n * same object). ES3 Failures: assigning target.myProp = 3 -> Won't change source.myProp = 3, likewise the reverse would also fail.\r\n * @param target - The target object to be assigned with the source properties and functions\r\n * @param source - The source object which will be assigned / called by setting / calling the targets proxies\r\n * @param chkSet - An optional callback to determine whether a specific property/function should be proxied\r\n * @memberof Initialization\r\n */\n\nexport function proxyAssign(target, source, chkSet) {\n if (target && source && target !== source && isObject(target) && isObject(source)) {\n var _loop_1 = function _loop_1(field) {\n if (isString(field)) {\n var value = source[field];\n\n if (isFunction(value)) {\n if (!chkSet || chkSet(field, true, source, target)) {\n // Create a proxy function rather than just copying the (possible) prototype to the new object as an instance function\n target[field] = function (funcName) {\n return function () {\n // Capture the original arguments passed to the method\n var originalArguments = arguments;\n return source[funcName].apply(source, originalArguments);\n };\n }(field);\n }\n } else if (!chkSet || chkSet(field, false, source, target)) {\n if (hasOwnProperty(target, field)) {\n // Remove any previous instance property\n delete target[field];\n }\n\n if (!objDefineAccessors(target, field, function () {\n return source[field];\n }, function (theValue) {\n source[field] = theValue;\n })) {\n // Unable to create an accessor, so just assign the values as a fallback\n // -- this will (mostly) work for objects\n // -- but will fail for accessing primitives (if the source changes it) and all types of \"setters\" as the source won't be modified\n target[field] = value;\n }\n }\n }\n }; // effectively apply/proxy full source to the target instance\n\n\n for (var field in source) {\n _loop_1(field);\n }\n }\n\n return target;\n}\n/**\r\n * Simpler helper to create a dynamic class that implements the interface and populates the values with the defaults.\r\n * Only instance properties (hasOwnProperty) values are copied from the defaults to the new instance\r\n * @param defaults Simple helper\r\n */\n\nexport function createClassFromInterface(defaults) {\n return (\n /** @class */\n function () {\n function class_1() {\n var _this_1 = this;\n\n if (defaults) {\n objForEachKey(defaults, function (field, value) {\n _this_1[field] = value;\n });\n }\n }\n\n return class_1;\n }()\n );\n}\n/**\r\n * A helper function to assist with JIT performance for objects that have properties added / removed dynamically\r\n * this is primarily for chromium based browsers and has limited effects on Firefox and none of IE. Only call this\r\n * function after you have finished \"updating\" the object, calling this within loops reduces or defeats the benefits.\r\n * This helps when iterating using for..in, objKeys() and objForEach()\r\n * @param theObject - The object to be optimized if possible\r\n */\n\nexport function optimizeObject(theObject) {\n // V8 Optimization to cause the JIT compiler to create a new optimized object for looking up the own properties\n // primarily for object with <= 19 properties for >= 20 the effect is reduced or non-existent\n if (theObject && ObjAssign) {\n theObject = ObjClass(ObjAssign({}, theObject));\n }\n\n return theObject;\n}\n/**\r\n * Pass in the objects to merge as arguments, this will only \"merge\" (extend) properties that are owned by the object.\r\n * It will NOT merge inherited or non-enumerable properties.\r\n * @param obj1 - object to merge. Set this argument to 'true' for a deep extend.\r\n * @param obj2 - object to merge.\r\n * @param obj3 - object to merge.\r\n * @param obj4 - object to merge.\r\n * @param obj5 - object to merge.\r\n * @returns The extended first object.\r\n */\n\nexport function objExtend(obj, obj2, obj3, obj4, obj5, obj6) {\n // Variables\n var theArgs = arguments;\n var extended = theArgs[0] || {};\n var argLen = theArgs.length;\n var deep = false;\n var idx = 1; // Check for \"Deep\" flag\n\n if (argLen > 0 && isBoolean(extended)) {\n deep = extended;\n extended = theArgs[idx] || {};\n idx++;\n } // Handle case when target is a string or something (possible in deep copy)\n\n\n if (!isObject(extended)) {\n extended = {};\n } // Loop through each remaining object and conduct a merge\n\n\n for (; idx < argLen; idx++) {\n var arg = theArgs[idx];\n var isArgArray = isArray(arg);\n var isArgObj = isObject(arg);\n\n for (var prop in arg) {\n var propOk = isArgArray && prop in arg || isArgObj && ObjHasOwnProperty.call(arg, prop);\n\n if (!propOk) {\n continue;\n }\n\n var newValue = arg[prop];\n var isNewArray = void 0; // If deep merge and property is an object, merge properties\n\n if (deep && newValue && ((isNewArray = isArray(newValue)) || isPlainObject(newValue))) {\n // Grab the current value of the extended object\n var clone = extended[prop];\n\n if (isNewArray) {\n if (!isArray(clone)) {\n // We can't \"merge\" an array with a non-array so overwrite the original\n clone = [];\n }\n } else if (!isPlainObject(clone)) {\n // We can't \"merge\" an object with a non-object\n clone = {};\n } // Never move the original objects always clone them\n\n\n newValue = objExtend(deep, clone, newValue);\n } // Assign the new (or previous) value (unless undefined)\n\n\n if (newValue !== undefined) {\n extended[prop] = newValue;\n }\n }\n }\n\n return extended;\n}","/*\n * Application Insights JavaScript SDK - Core, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\"use strict\";\n\nimport { getGlobal, strShimUndefined, strShimObject, strShimPrototype } from \"@microsoft/applicationinsights-shims\";\nimport { isString, isUndefined, strContains } from \"./HelperFuncs\";\n/**\r\n * This file exists to hold environment utilities that are required to check and\r\n * validate the current operating environment. Unless otherwise required, please\r\n * only use defined methods (functions) in this class so that users of these\r\n * functions/properties only need to include those that are used within their own modules.\r\n */\n\nvar strWindow = \"window\";\nvar strDocument = \"document\";\nvar strDocumentMode = \"documentMode\";\nvar strNavigator = \"navigator\";\nvar strHistory = \"history\";\nvar strLocation = \"location\";\nvar strConsole = \"console\";\nvar strPerformance = \"performance\";\nvar strJSON = \"JSON\";\nvar strCrypto = \"crypto\";\nvar strMsCrypto = \"msCrypto\";\nvar strReactNative = \"ReactNative\";\nvar strMsie = \"msie\";\nvar strTrident = \"trident/\";\nvar _isTrident = null;\nvar _navUserAgentCheck = null;\nvar _enableMocks = false;\nvar _useXDomainRequest = null;\nvar _beaconsSupported = null;\n\nfunction _hasProperty(theClass, property) {\n var supported = false;\n\n if (theClass) {\n try {\n supported = property in theClass;\n\n if (!supported) {\n var proto = theClass[strShimPrototype];\n\n if (proto) {\n supported = property in proto;\n }\n }\n } catch (e) {// Do Nothing\n }\n\n if (!supported) {\n try {\n var tmp = new theClass();\n supported = !isUndefined(tmp[property]);\n } catch (e) {// Do Nothing\n }\n }\n }\n\n return supported;\n}\n/**\r\n * Enable the lookup of test mock objects if requested\r\n * @param enabled\r\n */\n\n\nexport function setEnableEnvMocks(enabled) {\n _enableMocks = enabled;\n}\n/**\r\n * Return the named global object if available, will return null if the object is not available.\r\n * @param name The globally named object\r\n */\n\nexport function getGlobalInst(name) {\n var gbl = getGlobal();\n\n if (gbl && gbl[name]) {\n return gbl[name];\n } // Test workaround, for environments where .window (when global == window) doesn't return the base window\n\n\n if (name === strWindow && hasWindow()) {\n // tslint:disable-next-line: no-angle-bracket-type-assertion\n return window;\n }\n\n return null;\n}\n/**\r\n * Checks if window object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a window\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: window is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\n\nexport function hasWindow() {\n return Boolean(typeof window === strShimObject && window);\n}\n/**\r\n * Returns the global window object if it is present otherwise null.\r\n * This helper is used to access the window object without causing an exception\r\n * \"Uncaught ReferenceError: window is not defined\"\r\n */\n\nexport function getWindow() {\n if (hasWindow()) {\n return window;\n } // Return the global instance or null\n\n\n return getGlobalInst(strWindow);\n}\n/**\r\n * Checks if document object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a document\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: document is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\n\nexport function hasDocument() {\n return Boolean(typeof document === strShimObject && document);\n}\n/**\r\n * Returns the global document object if it is present otherwise null.\r\n * This helper is used to access the document object without causing an exception\r\n * \"Uncaught ReferenceError: document is not defined\"\r\n */\n\nexport function getDocument() {\n if (hasDocument()) {\n return document;\n }\n\n return getGlobalInst(strDocument);\n}\n/**\r\n * Checks if navigator object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a navigator\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: navigator is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\n\nexport function hasNavigator() {\n return Boolean(typeof navigator === strShimObject && navigator);\n}\n/**\r\n * Returns the global navigator object if it is present otherwise null.\r\n * This helper is used to access the navigator object without causing an exception\r\n * \"Uncaught ReferenceError: navigator is not defined\"\r\n */\n\nexport function getNavigator() {\n if (hasNavigator()) {\n return navigator;\n }\n\n return getGlobalInst(strNavigator);\n}\n/**\r\n * Checks if history object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a history\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: history is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\n\nexport function hasHistory() {\n return Boolean(typeof history === strShimObject && history);\n}\n/**\r\n * Returns the global history object if it is present otherwise null.\r\n * This helper is used to access the history object without causing an exception\r\n * \"Uncaught ReferenceError: history is not defined\"\r\n */\n\nexport function getHistory() {\n if (hasHistory()) {\n return history;\n }\n\n return getGlobalInst(strHistory);\n}\n/**\r\n * Returns the global location object if it is present otherwise null.\r\n * This helper is used to access the location object without causing an exception\r\n * \"Uncaught ReferenceError: location is not defined\"\r\n */\n\nexport function getLocation(checkForMock) {\n if (checkForMock && _enableMocks) {\n var mockLocation = getGlobalInst(\"__mockLocation\");\n\n if (mockLocation) {\n return mockLocation;\n }\n }\n\n if (typeof location === strShimObject && location) {\n return location;\n }\n\n return getGlobalInst(strLocation);\n}\n/**\r\n * Returns the global console object\r\n */\n\nexport function getConsole() {\n if (typeof console !== strShimUndefined) {\n return console;\n }\n\n return getGlobalInst(strConsole);\n}\n/**\r\n * Returns the performance object if it is present otherwise null.\r\n * This helper is used to access the performance object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\n\nexport function getPerformance() {\n return getGlobalInst(strPerformance);\n}\n/**\r\n * Checks if JSON object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a history\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: JSON is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\n\nexport function hasJSON() {\n return Boolean(typeof JSON === strShimObject && JSON || getGlobalInst(strJSON) !== null);\n}\n/**\r\n * Returns the global JSON object if it is present otherwise null.\r\n * This helper is used to access the JSON object without causing an exception\r\n * \"Uncaught ReferenceError: JSON is not defined\"\r\n */\n\nexport function getJSON() {\n if (hasJSON()) {\n return JSON || getGlobalInst(strJSON);\n }\n\n return null;\n}\n/**\r\n * Returns the crypto object if it is present otherwise null.\r\n * This helper is used to access the crypto object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\n\nexport function getCrypto() {\n return getGlobalInst(strCrypto);\n}\n/**\r\n * Returns the crypto object if it is present otherwise null.\r\n * This helper is used to access the crypto object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\n\nexport function getMsCrypto() {\n return getGlobalInst(strMsCrypto);\n}\n/**\r\n * Returns whether the environment is reporting that we are running in a React Native Environment\r\n */\n\nexport function isReactNative() {\n // If running in React Native, navigator.product will be populated\n var nav = getNavigator();\n\n if (nav && nav.product) {\n return nav.product === strReactNative;\n }\n\n return false;\n}\n/**\r\n * Identifies whether the current environment appears to be IE\r\n */\n\nexport function isIE() {\n var nav = getNavigator();\n\n if (nav && (nav.userAgent !== _navUserAgentCheck || _isTrident === null)) {\n // Added to support test mocking of the user agent\n _navUserAgentCheck = nav.userAgent;\n\n var userAgent = (_navUserAgentCheck || \"\").toLowerCase();\n\n _isTrident = strContains(userAgent, strMsie) || strContains(userAgent, strTrident);\n }\n\n return _isTrident;\n}\n/**\r\n * Gets IE version returning the document emulation mode if we are running on IE, or null otherwise\r\n */\n\nexport function getIEVersion(userAgentStr) {\n if (userAgentStr === void 0) {\n userAgentStr = null;\n }\n\n if (!userAgentStr) {\n var navigator_1 = getNavigator() || {};\n userAgentStr = navigator_1 ? (navigator_1.userAgent || \"\").toLowerCase() : \"\";\n }\n\n var ua = (userAgentStr || \"\").toLowerCase(); // Also check for documentMode in case X-UA-Compatible meta tag was included in HTML.\n\n if (strContains(ua, strMsie)) {\n var doc = getDocument() || {};\n return Math.max(parseInt(ua.split(strMsie)[1]), doc[strDocumentMode] || 0);\n } else if (strContains(ua, strTrident)) {\n var tridentVer = parseInt(ua.split(strTrident)[1]);\n\n if (tridentVer) {\n return tridentVer + 4;\n }\n }\n\n return null;\n}\n/**\r\n * Returns string representation of an object suitable for diagnostics logging.\r\n */\n\nexport function dumpObj(object) {\n var objectTypeDump = Object[strShimPrototype].toString.call(object);\n var propertyValueDump = \"\";\n\n if (objectTypeDump === \"[object Error]\") {\n propertyValueDump = \"{ stack: '\" + object.stack + \"', message: '\" + object.message + \"', name: '\" + object.name + \"'\";\n } else if (hasJSON()) {\n propertyValueDump = getJSON().stringify(object);\n }\n\n return objectTypeDump + propertyValueDump;\n}\nexport function isSafari(userAgentStr) {\n if (!userAgentStr || !isString(userAgentStr)) {\n var navigator_2 = getNavigator() || {};\n userAgentStr = navigator_2 ? (navigator_2.userAgent || \"\").toLowerCase() : \"\";\n }\n\n var ua = (userAgentStr || \"\").toLowerCase();\n return ua.indexOf(\"safari\") >= 0;\n}\n/**\r\n * Checks if HTML5 Beacons are supported in the current environment.\r\n * @returns True if supported, false otherwise.\r\n */\n\nexport function isBeaconsSupported() {\n if (_beaconsSupported === null) {\n _beaconsSupported = hasNavigator() && Boolean(getNavigator().sendBeacon);\n }\n\n return _beaconsSupported;\n}\n/**\r\n * Checks if the Fetch API is supported in the current environment.\r\n * @param withKeepAlive - [Optional] If True, check if fetch is available and it supports the keepalive feature, otherwise only check if fetch is supported\r\n * @returns True if supported, otherwise false\r\n */\n\nexport function isFetchSupported(withKeepAlive) {\n var isSupported = false;\n\n try {\n var fetchApi = getGlobalInst(\"fetch\");\n isSupported = !!fetchApi;\n var request = getGlobalInst(\"Request\");\n\n if (isSupported && withKeepAlive && request) {\n isSupported = _hasProperty(request, \"keepalive\");\n }\n } catch (e) {// Just Swallow any failure during availability checks\n }\n\n return isSupported;\n}\nexport function useXDomainRequest() {\n if (_useXDomainRequest === null) {\n _useXDomainRequest = typeof XDomainRequest !== \"undefined\";\n\n if (_useXDomainRequest && isXhrSupported()) {\n _useXDomainRequest = _useXDomainRequest && !_hasProperty(getGlobalInst(\"XMLHttpRequest\"), \"withCredentials\");\n }\n }\n\n return _useXDomainRequest;\n}\n/**\r\n * Checks if XMLHttpRequest is supported\r\n * @returns True if supported, otherwise false\r\n */\n\nexport function isXhrSupported() {\n var isSupported = false;\n\n try {\n var xmlHttpRequest = getGlobalInst(\"XMLHttpRequest\");\n isSupported = !!xmlHttpRequest;\n } catch (e) {// Just Swallow any failure during availability checks\n }\n\n return isSupported;\n}","/*\n * Application Insights JavaScript SDK - Core, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { getGlobalInst } from \"./EnvUtils\";\nvar listenerFuncs = [\"eventsSent\", \"eventsDiscarded\", \"eventsSendRequest\", \"perfEvent\"];\nvar _aiNamespace = null;\n\nvar _debugListener;\n\nfunction _listenerProxyFunc(name, config) {\n return function () {\n var args = arguments;\n var dbgExt = getDebugExt(config);\n\n if (dbgExt) {\n var listener = dbgExt.listener;\n\n if (listener && listener[name]) {\n listener[name].apply(listener, args);\n }\n }\n };\n}\n\nfunction _getExtensionNamespace() {\n // Cache the lookup of the global namespace object\n var target = getGlobalInst(\"Microsoft\");\n\n if (target) {\n _aiNamespace = target[\"ApplicationInsights\"];\n }\n\n return _aiNamespace;\n}\n\nexport function getDebugExt(config) {\n var ns = _aiNamespace;\n\n if (!ns && config.disableDbgExt !== true) {\n ns = _aiNamespace || _getExtensionNamespace();\n }\n\n return ns ? ns[\"ChromeDbgExt\"] : null;\n}\nexport function getDebugListener(config) {\n if (!_debugListener) {\n _debugListener = {};\n\n for (var lp = 0; lp < listenerFuncs.length; lp++) {\n _debugListener[listenerFuncs[lp]] = _listenerProxyFunc(listenerFuncs[lp], config);\n }\n }\n\n return _debugListener;\n}","/*\n * Application Insights JavaScript SDK - Core, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\"use strict\";\n\nimport { _InternalMessageId, LoggingSeverity } from \"../JavaScriptSDK.Enums/LoggingEnums\";\nimport { hasJSON, getJSON, getConsole } from \"./EnvUtils\";\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\nimport { isFunction, isNullOrUndefined, isUndefined } from \"./HelperFuncs\";\nimport { getDebugExt } from \"./DbgExtensionUtils\";\n/**\r\n * For user non actionable traces use AI Internal prefix.\r\n */\n\nvar AiNonUserActionablePrefix = \"AI (Internal): \";\n/**\r\n * Prefix of the traces in portal.\r\n */\n\nvar AiUserActionablePrefix = \"AI: \";\n/**\r\n * Session storage key for the prefix for the key indicating message type already logged\r\n */\n\nvar AIInternalMessagePrefix = \"AITR_\";\nvar strErrorToConsole = \"errorToConsole\";\nvar strWarnToConsole = \"warnToConsole\";\n\nfunction _sanitizeDiagnosticText(text) {\n if (text) {\n return \"\\\"\" + text.replace(/\\\"/g, \"\") + \"\\\"\";\n }\n\n return \"\";\n}\n\nfunction _logToConsole(func, message) {\n var theConsole = getConsole();\n\n if (!!theConsole) {\n var logFunc = \"log\";\n\n if (theConsole[func]) {\n logFunc = func;\n }\n\n if (isFunction(theConsole[logFunc])) {\n theConsole[logFunc](message);\n }\n }\n}\n\nvar _InternalLogMessage =\n/** @class */\nfunction () {\n function _InternalLogMessage(msgId, msg, isUserAct, properties) {\n if (isUserAct === void 0) {\n isUserAct = false;\n }\n\n var _self = this;\n\n _self.messageId = msgId;\n _self.message = (isUserAct ? AiUserActionablePrefix : AiNonUserActionablePrefix) + msgId;\n var strProps = \"\";\n\n if (hasJSON()) {\n strProps = getJSON().stringify(properties);\n }\n\n var diagnosticText = (msg ? \" message:\" + _sanitizeDiagnosticText(msg) : \"\") + (properties ? \" props:\" + _sanitizeDiagnosticText(strProps) : \"\");\n _self.message += diagnosticText;\n }\n\n _InternalLogMessage.dataType = \"MessageData\";\n return _InternalLogMessage;\n}();\n\nexport { _InternalLogMessage };\nexport function safeGetLogger(core, config) {\n return (core || {}).logger || new DiagnosticLogger(config);\n}\n\nvar DiagnosticLogger =\n/** @class */\nfunction () {\n function DiagnosticLogger(config) {\n this.identifier = \"DiagnosticLogger\";\n /**\r\n * The internal logging queue\r\n */\n\n this.queue = [];\n /**\r\n * Count of internal messages sent\r\n */\n\n var _messageCount = 0;\n /**\r\n * Holds information about what message types were already logged to console or sent to server.\r\n */\n\n var _messageLogged = {};\n dynamicProto(DiagnosticLogger, this, function (_self) {\n if (isNullOrUndefined(config)) {\n config = {};\n }\n\n _self.consoleLoggingLevel = function () {\n return _getConfigValue(\"loggingLevelConsole\", 0);\n };\n\n _self.telemetryLoggingLevel = function () {\n return _getConfigValue(\"loggingLevelTelemetry\", 1);\n };\n\n _self.maxInternalMessageLimit = function () {\n return _getConfigValue(\"maxMessageLimit\", 25);\n };\n\n _self.enableDebugExceptions = function () {\n return _getConfigValue(\"enableDebugExceptions\", false);\n };\n /**\r\n * This method will throw exceptions in debug mode or attempt to log the error as a console warning.\r\n * @param severity {LoggingSeverity} - The severity of the log message\r\n * @param message {_InternalLogMessage} - The log message.\r\n */\n\n\n _self.throwInternal = function (severity, msgId, msg, properties, isUserAct) {\n if (isUserAct === void 0) {\n isUserAct = false;\n }\n\n var message = new _InternalLogMessage(msgId, msg, isUserAct, properties);\n\n if (_self.enableDebugExceptions()) {\n throw message;\n } else {\n // Get the logging function and fallback to warnToConsole of for some reason errorToConsole doesn't exist\n var logFunc = severity === LoggingSeverity.CRITICAL ? strErrorToConsole : strWarnToConsole;\n\n if (!isUndefined(message.message)) {\n var logLevel = _self.consoleLoggingLevel();\n\n if (isUserAct) {\n // check if this message type was already logged to console for this page view and if so, don't log it again\n var messageKey = +message.messageId;\n\n if (!_messageLogged[messageKey] && logLevel >= severity) {\n _self[logFunc](message.message);\n\n _messageLogged[messageKey] = true;\n }\n } else {\n // Only log traces if the console Logging Level is >= the throwInternal severity level\n if (logLevel >= severity) {\n _self[logFunc](message.message);\n }\n }\n\n _self.logInternalMessage(severity, message);\n } else {\n _debugExtMsg(\"throw\" + (severity === LoggingSeverity.CRITICAL ? \"Critical\" : \"Warning\"), message);\n }\n }\n };\n /**\r\n * This will write a warning to the console if possible\r\n * @param message {string} - The warning message\r\n */\n\n\n _self.warnToConsole = function (message) {\n _logToConsole(\"warn\", message);\n\n _debugExtMsg(\"warning\", message);\n };\n /**\r\n * This will write an error to the console if possible\r\n * @param message {string} - The error message\r\n */\n\n\n _self.errorToConsole = function (message) {\n _logToConsole(\"error\", message);\n\n _debugExtMsg(\"error\", message);\n };\n /**\r\n * Resets the internal message count\r\n */\n\n\n _self.resetInternalMessageCount = function () {\n _messageCount = 0;\n _messageLogged = {};\n };\n /**\r\n * Logs a message to the internal queue.\r\n * @param severity {LoggingSeverity} - The severity of the log message\r\n * @param message {_InternalLogMessage} - The message to log.\r\n */\n\n\n _self.logInternalMessage = function (severity, message) {\n if (_areInternalMessagesThrottled()) {\n return;\n } // check if this message type was already logged for this session and if so, don't log it again\n\n\n var logMessage = true;\n var messageKey = AIInternalMessagePrefix + message.messageId; // if the session storage is not available, limit to only one message type per page view\n\n if (_messageLogged[messageKey]) {\n logMessage = false;\n } else {\n _messageLogged[messageKey] = true;\n }\n\n if (logMessage) {\n // Push the event in the internal queue\n if (severity <= _self.telemetryLoggingLevel()) {\n _self.queue.push(message);\n\n _messageCount++;\n\n _debugExtMsg(severity === LoggingSeverity.CRITICAL ? \"error\" : \"warn\", message);\n } // When throttle limit reached, send a special event\n\n\n if (_messageCount === _self.maxInternalMessageLimit()) {\n var throttleLimitMessage = \"Internal events throttle limit per PageView reached for this app.\";\n var throttleMessage = new _InternalLogMessage(_InternalMessageId.MessageLimitPerPVExceeded, throttleLimitMessage, false);\n\n _self.queue.push(throttleMessage);\n\n if (severity === LoggingSeverity.CRITICAL) {\n _self.errorToConsole(throttleLimitMessage);\n } else {\n _self.warnToConsole(throttleLimitMessage);\n }\n }\n }\n };\n\n function _getConfigValue(name, defValue) {\n var value = config[name];\n\n if (!isNullOrUndefined(value)) {\n return value;\n }\n\n return defValue;\n }\n\n function _areInternalMessagesThrottled() {\n return _messageCount >= _self.maxInternalMessageLimit();\n }\n\n function _debugExtMsg(name, data) {\n var dbgExt = getDebugExt(config);\n\n if (dbgExt && dbgExt.diagLog) {\n dbgExt.diagLog(name, data);\n }\n }\n });\n } // Removed Stub for DiagnosticLogger.prototype.enableDebugExceptions.\n // Removed Stub for DiagnosticLogger.prototype.consoleLoggingLevel.\n // Removed Stub for DiagnosticLogger.prototype.telemetryLoggingLevel.\n // Removed Stub for DiagnosticLogger.prototype.maxInternalMessageLimit.\n // Removed Stub for DiagnosticLogger.prototype.throwInternal.\n // Removed Stub for DiagnosticLogger.prototype.warnToConsole.\n // Removed Stub for DiagnosticLogger.prototype.errorToConsole.\n // Removed Stub for DiagnosticLogger.prototype.resetInternalMessageCount.\n // Removed Stub for DiagnosticLogger.prototype.logInternalMessage.\n\n\n return DiagnosticLogger;\n}();\n\nexport { DiagnosticLogger };","/*\n * Application Insights JavaScript SDK - Core, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\nimport { dateNow, isArray, isFunction, objDefineAccessors } from \"./HelperFuncs\";\nvar strExecutionContextKey = \"ctx\";\nvar _defaultPerfManager = null;\n\nvar PerfEvent =\n/** @class */\nfunction () {\n function PerfEvent(name, payloadDetails, isAsync) {\n var _self = this;\n\n var accessorDefined = false;\n _self.start = dateNow();\n _self.name = name;\n _self.isAsync = isAsync;\n\n _self.isChildEvt = function () {\n return false;\n };\n\n if (isFunction(payloadDetails)) {\n // Create an accessor to minimize the potential performance impact of executing the payloadDetails callback\n var theDetails_1;\n accessorDefined = objDefineAccessors(_self, \"payload\", function () {\n // Delay the execution of the payloadDetails until needed\n if (!theDetails_1 && isFunction(payloadDetails)) {\n theDetails_1 = payloadDetails(); // clear it out now so the referenced objects can be garbage collected\n\n payloadDetails = null;\n }\n\n return theDetails_1;\n });\n }\n\n _self.getCtx = function (key) {\n if (key) {\n // The parent and child links are located directly on the object (for better viewing in the DebugPlugin)\n if (key === PerfEvent.ParentContextKey || key === PerfEvent.ChildrenContextKey) {\n return _self[key];\n }\n\n return (_self[strExecutionContextKey] || {})[key];\n }\n\n return null;\n };\n\n _self.setCtx = function (key, value) {\n if (key) {\n // Put the parent and child links directly on the object (for better viewing in the DebugPlugin)\n if (key === PerfEvent.ParentContextKey) {\n // Simple assumption, if we are setting a parent then we must be a child\n if (!_self[key]) {\n _self.isChildEvt = function () {\n return true;\n };\n }\n\n _self[key] = value;\n } else if (key === PerfEvent.ChildrenContextKey) {\n _self[key] = value;\n } else {\n var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};\n ctx[key] = value;\n }\n }\n };\n\n _self.complete = function () {\n var childTime = 0;\n\n var childEvts = _self.getCtx(PerfEvent.ChildrenContextKey);\n\n if (isArray(childEvts)) {\n for (var lp = 0; lp < childEvts.length; lp++) {\n var childEvt = childEvts[lp];\n\n if (childEvt) {\n childTime += childEvt.time;\n }\n }\n }\n\n _self.time = dateNow() - _self.start;\n _self.exTime = _self.time - childTime;\n\n _self.complete = function () {};\n\n if (!accessorDefined && isFunction(payloadDetails)) {\n // If we couldn't define the property set during complete -- to minimize the perf impact until after the time\n _self.payload = payloadDetails();\n }\n };\n }\n\n PerfEvent.ParentContextKey = \"parent\";\n PerfEvent.ChildrenContextKey = \"childEvts\";\n return PerfEvent;\n}();\n\nexport { PerfEvent };\n\nvar PerfManager =\n/** @class */\nfunction () {\n function PerfManager(manager) {\n /**\r\n * General bucket used for execution context set and retrieved via setCtx() and getCtx.\r\n * Defined as private so it can be visualized via the DebugPlugin\r\n */\n this.ctx = {};\n dynamicProto(PerfManager, this, function (_self) {\n _self.create = function (src, payloadDetails, isAsync) {\n // TODO (@MSNev): at some point we will want to add additional configuration to \"select\" which events to instrument\n // for now this is just a simple do everything.\n return new PerfEvent(src, payloadDetails, isAsync);\n };\n\n _self.fire = function (perfEvent) {\n if (perfEvent) {\n perfEvent.complete();\n\n if (manager && isFunction(manager.perfEvent)) {\n manager.perfEvent(perfEvent);\n }\n }\n };\n\n _self.setCtx = function (key, value) {\n if (key) {\n var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};\n ctx[key] = value;\n }\n };\n\n _self.getCtx = function (key) {\n return (_self[strExecutionContextKey] || {})[key];\n };\n });\n } // Removed Stub for PerfManager.prototype.create.\n // Removed Stub for PerfManager.prototype.fire.\n // Removed Stub for PerfManager.prototype.setCtx.\n // Removed Stub for PerfManager.prototype.getCtx.\n\n\n return PerfManager;\n}();\n\nexport { PerfManager };\nvar doPerfActiveKey = \"CoreUtils.doPerf\";\n/**\r\n * Helper function to wrap a function with a perf event\r\n * @param mgrSource - The Performance Manager or a Performance provider source (may be null)\r\n * @param getSource - The callback to create the source name for the event (if perf monitoring is enabled)\r\n * @param func - The function to call and measure\r\n * @param details - A function to return the payload details\r\n * @param isAsync - Is the event / function being call asynchronously or synchronously\r\n */\n\nexport function doPerf(mgrSource, getSource, func, details, isAsync) {\n if (mgrSource) {\n var perfMgr = mgrSource;\n\n if (isFunction(perfMgr[\"getPerfMgr\"])) {\n // Looks like a perf manager provider object\n perfMgr = perfMgr[\"getPerfMgr\"]();\n }\n\n if (perfMgr) {\n var perfEvt = void 0;\n var currentActive = perfMgr.getCtx(doPerfActiveKey);\n\n try {\n perfEvt = perfMgr.create(getSource(), details, isAsync);\n\n if (perfEvt) {\n if (currentActive && perfEvt.setCtx) {\n perfEvt.setCtx(PerfEvent.ParentContextKey, currentActive);\n\n if (currentActive.getCtx && currentActive.setCtx) {\n var children = currentActive.getCtx(PerfEvent.ChildrenContextKey);\n\n if (!children) {\n children = [];\n currentActive.setCtx(PerfEvent.ChildrenContextKey, children);\n }\n\n children.push(perfEvt);\n }\n } // Set this event as the active event now\n\n\n perfMgr.setCtx(doPerfActiveKey, perfEvt);\n return func(perfEvt);\n }\n } catch (ex) {\n if (perfEvt && perfEvt.setCtx) {\n perfEvt.setCtx(\"exception\", ex);\n }\n } finally {\n // fire the perf event\n if (perfEvt) {\n perfMgr.fire(perfEvt);\n } // Reset the active event to the previous value\n\n\n perfMgr.setCtx(doPerfActiveKey, currentActive);\n }\n }\n }\n\n return func();\n}\n/**\r\n * Set the global performance manager to use when there is no core instance or it has not been initialized yet.\r\n * @param perfManager - The IPerfManager instance to use when no performance manager is supplied.\r\n */\n\nexport function setGblPerfMgr(perfManager) {\n _defaultPerfManager = perfManager;\n}\n/**\r\n * Get the current global performance manager that will be used with no performance manager is supplied.\r\n * @returns - The current default manager\r\n */\n\nexport function getGblPerfMgr() {\n return _defaultPerfManager;\n}","/*\n * Application Insights JavaScript SDK - Core, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\"use strict\";\n\nimport { doPerf } from \"./PerfManager\";\nimport { LoggingSeverity, _InternalMessageId } from \"../JavaScriptSDK.Enums/LoggingEnums\";\nimport { isFunction } from \"./HelperFuncs\";\nimport { dumpObj } from \"./EnvUtils\";\n\nvar TelemetryPluginChain =\n/** @class */\nfunction () {\n function TelemetryPluginChain(plugin, defItemCtx) {\n var _self = this;\n\n var _nextProxy = null;\n\n var _hasProcessTelemetry = isFunction(plugin.processTelemetry);\n\n var _hasSetNext = isFunction(plugin.setNextPlugin);\n\n _self._hasRun = false;\n\n _self.getPlugin = function () {\n return plugin;\n };\n\n _self.getNext = function () {\n return _nextProxy;\n };\n\n _self.setNext = function (nextPlugin) {\n _nextProxy = nextPlugin;\n };\n\n _self.processTelemetry = function (env, itemCtx) {\n if (!itemCtx) {\n // Looks like a plugin didn't pass the (optional) context, so restore to the default\n itemCtx = defItemCtx;\n }\n\n var identifier = plugin ? plugin.identifier : \"TelemetryPluginChain\";\n doPerf(itemCtx ? itemCtx.core() : null, function () {\n return identifier + \":processTelemetry\";\n }, function () {\n if (plugin && _hasProcessTelemetry) {\n _self._hasRun = true;\n\n try {\n // Ensure that we keep the context in sync (for processNext()), just in case a plugin\n // doesn't calls processTelemetry() instead of itemContext.processNext() or some\n // other form of error occurred\n itemCtx.setNext(_nextProxy);\n\n if (_hasSetNext) {\n // Backward compatibility setting the next plugin on the instance\n plugin.setNextPlugin(_nextProxy);\n } // Set a flag on the next plugin so we know if it was attempted to be executed\n\n\n _nextProxy && (_nextProxy._hasRun = false);\n plugin.processTelemetry(env, itemCtx);\n } catch (error) {\n var hasRun = _nextProxy && _nextProxy._hasRun;\n\n if (!_nextProxy || !hasRun) {\n // Either we have no next plugin or the current one did not attempt to call the next plugin\n // Which means the current one is the root of the failure so log/report this failure\n itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.PluginException, \"Plugin [\" + plugin.identifier + \"] failed during processTelemetry - \" + dumpObj(error));\n }\n\n if (_nextProxy && !hasRun) {\n // As part of the failure the current plugin did not attempt to call the next plugin in the cahin\n // So rather than leave the pipeline dead in the water we call the next plugin\n _nextProxy.processTelemetry(env, itemCtx);\n }\n }\n } else if (_nextProxy) {\n _self._hasRun = true; // The underlying plugin is either not defined or does not have a processTelemetry implementation\n // so we still want the next plugin to be executed.\n\n _nextProxy.processTelemetry(env, itemCtx);\n }\n }, function () {\n return {\n item: env\n };\n }, !env.sync);\n };\n }\n\n return TelemetryPluginChain;\n}();\n\nexport { TelemetryPluginChain };","/*\n * Application Insights JavaScript SDK - Core, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\"use strict\";\n\nimport { safeGetLogger } from \"./DiagnosticLogger\";\nimport { TelemetryPluginChain } from \"./TelemetryPluginChain\";\nimport { arrForEach, isFunction, isNullOrUndefined, isUndefined } from \"./HelperFuncs\";\n/**\r\n * Creates the instance execution chain for the plugins\r\n */\n\nfunction _createProxyChain(plugins, itemCtx) {\n var proxies = [];\n\n if (plugins && plugins.length > 0) {\n // Create the proxies and wire up the next plugin chain\n var lastProxy = null;\n\n for (var idx = 0; idx < plugins.length; idx++) {\n var thePlugin = plugins[idx];\n\n if (thePlugin && isFunction(thePlugin.processTelemetry)) {\n // Only add plugins that are processors\n var newProxy = new TelemetryPluginChain(thePlugin, itemCtx);\n proxies.push(newProxy);\n\n if (lastProxy) {\n // Set this new proxy as the next for the previous one\n lastProxy.setNext(newProxy);\n }\n\n lastProxy = newProxy;\n }\n }\n }\n\n return proxies.length > 0 ? proxies[0] : null;\n}\n\nfunction _copyProxyChain(proxy, itemCtx, startAt) {\n var plugins = [];\n var add = startAt ? false : true;\n\n if (proxy) {\n while (proxy) {\n var thePlugin = proxy.getPlugin();\n\n if (add || thePlugin === startAt) {\n add = true;\n plugins.push(thePlugin);\n }\n\n proxy = proxy.getNext();\n }\n }\n\n if (!add) {\n plugins.push(startAt);\n }\n\n return _createProxyChain(plugins, itemCtx);\n}\n\nfunction _copyPluginChain(srcPlugins, itemCtx, startAt) {\n var plugins = srcPlugins;\n var add = false;\n\n if (startAt && srcPlugins) {\n plugins = [];\n arrForEach(srcPlugins, function (thePlugin) {\n if (add || thePlugin === startAt) {\n add = true;\n plugins.push(thePlugin);\n }\n });\n }\n\n if (startAt && !add) {\n if (!plugins) {\n plugins = [];\n }\n\n plugins.push(startAt);\n }\n\n return _createProxyChain(plugins, itemCtx);\n}\n\nvar ProcessTelemetryContext =\n/** @class */\nfunction () {\n /**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n */\n function ProcessTelemetryContext(plugins, config, core, startAt) {\n var _self = this;\n\n var _nextProxy = null; // Null == No next plugin\n // There is no next element (null) vs not defined (undefined)\n\n if (startAt !== null) {\n if (plugins && isFunction(plugins.getPlugin)) {\n // We have a proxy chain object\n _nextProxy = _copyProxyChain(plugins, _self, startAt || plugins.getPlugin());\n } else {\n // We just have an array\n if (startAt) {\n _nextProxy = _copyPluginChain(plugins, _self, startAt);\n } else if (isUndefined(startAt)) {\n // Undefined means copy the existing chain\n _nextProxy = _createProxyChain(plugins, _self);\n }\n }\n }\n\n _self.core = function () {\n return core;\n };\n\n _self.diagLog = function () {\n return safeGetLogger(core, config);\n };\n\n _self.getCfg = function () {\n return config;\n };\n\n _self.getExtCfg = function (identifier, defaultValue) {\n if (defaultValue === void 0) {\n defaultValue = {};\n }\n\n var theConfig;\n\n if (config) {\n var extConfig = config.extensionConfig;\n\n if (extConfig && identifier) {\n theConfig = extConfig[identifier];\n }\n }\n\n return theConfig ? theConfig : defaultValue;\n };\n\n _self.getConfig = function (identifier, field, defaultValue) {\n if (defaultValue === void 0) {\n defaultValue = false;\n }\n\n var theValue;\n\n var extConfig = _self.getExtCfg(identifier, null);\n\n if (extConfig && !isNullOrUndefined(extConfig[field])) {\n theValue = extConfig[field];\n } else if (config && !isNullOrUndefined(config[field])) {\n theValue = config[field];\n }\n\n return !isNullOrUndefined(theValue) ? theValue : defaultValue;\n };\n\n _self.hasNext = function () {\n return _nextProxy != null;\n };\n\n _self.getNext = function () {\n return _nextProxy;\n };\n\n _self.setNext = function (nextPlugin) {\n _nextProxy = nextPlugin;\n };\n\n _self.processNext = function (env) {\n var nextPlugin = _nextProxy;\n\n if (nextPlugin) {\n // Automatically move to the next plugin\n _nextProxy = nextPlugin.getNext();\n nextPlugin.processTelemetry(env, _self);\n }\n };\n\n _self.createNew = function (plugins, startAt) {\n if (plugins === void 0) {\n plugins = null;\n }\n\n return new ProcessTelemetryContext(plugins || _nextProxy, config, core, startAt);\n };\n }\n\n return ProcessTelemetryContext;\n}();\n\nexport { ProcessTelemetryContext };","/*\n * Application Insights JavaScript SDK - Core, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nexport var strIKey = \"iKey\";\nexport var strExtensionConfig = \"extensionConfig\";","/*\n * Application Insights JavaScript SDK - Core, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\"use strict\";\n\nimport { ProcessTelemetryContext } from \"./ProcessTelemetryContext\";\nimport { isFunction, isNullOrUndefined, setValue } from \"./HelperFuncs\";\nimport { strExtensionConfig } from \"./Constants\";\nvar strGetPlugin = \"getPlugin\";\n/**\r\n * BaseTelemetryPlugin provides a basic implementation of the ITelemetryPlugin interface so that plugins\r\n * can avoid implementation the same set of boiler plate code as well as provide a base\r\n * implementation so that new default implementations can be added without breaking all plugins.\r\n */\n\nvar BaseTelemetryPlugin =\n/** @class */\nfunction () {\n function BaseTelemetryPlugin() {\n var _self = this;\n\n var _isinitialized = false;\n var _rootCtx = null; // Used as the root context, holding the current config and initialized core\n\n var _nextPlugin = null; // Used for backward compatibility where plugins don't call the main pipeline\n\n _self.core = null;\n\n _self.diagLog = function (itemCtx) {\n return _self._getTelCtx(itemCtx).diagLog();\n };\n\n _self.isInitialized = function () {\n return _isinitialized;\n };\n\n _self.setInitialized = function (isInitialized) {\n _isinitialized = isInitialized;\n }; // _self.getNextPlugin = () => DO NOT IMPLEMENT\n // Sub-classes of this base class *should* not be relying on this value and instead\n // should use processNext() function. If you require access to the plugin use the\n // IProcessTelemetryContext.getNext().getPlugin() while in the pipeline, Note getNext() may return null.\n\n\n _self.setNextPlugin = function (next) {\n _nextPlugin = next;\n };\n\n _self.processNext = function (env, itemCtx) {\n if (itemCtx) {\n // Normal core execution sequence\n itemCtx.processNext(env);\n } else if (_nextPlugin && isFunction(_nextPlugin.processTelemetry)) {\n // Looks like backward compatibility or out of band processing. And as it looks\n // like a ITelemetryPlugin or ITelemetryPluginChain, just call processTelemetry\n _nextPlugin.processTelemetry(env, null);\n }\n };\n\n _self._getTelCtx = function (currentCtx) {\n if (currentCtx === void 0) {\n currentCtx = null;\n }\n\n var itemCtx = currentCtx;\n\n if (!itemCtx) {\n var rootCtx = _rootCtx || new ProcessTelemetryContext(null, {}, _self.core); // tslint:disable-next-line: prefer-conditional-expression\n\n if (_nextPlugin && _nextPlugin[strGetPlugin]) {\n // Looks like a chain object\n itemCtx = rootCtx.createNew(null, _nextPlugin[strGetPlugin]);\n } else {\n itemCtx = rootCtx.createNew(null, _nextPlugin);\n }\n }\n\n return itemCtx;\n };\n\n _self._baseTelInit = function (config, core, extensions, pluginChain) {\n if (config) {\n // Make sure the extensionConfig exists\n setValue(config, strExtensionConfig, [], null, isNullOrUndefined);\n }\n\n if (!pluginChain && core) {\n // Get the first plugin from the core\n pluginChain = core.getProcessTelContext().getNext();\n }\n\n var nextPlugin = _nextPlugin;\n\n if (_nextPlugin && _nextPlugin[strGetPlugin]) {\n // If it looks like a proxy/chain then get the plugin\n nextPlugin = _nextPlugin[strGetPlugin]();\n } // Support legacy plugins where core was defined as a property\n\n\n _self.core = core;\n _rootCtx = new ProcessTelemetryContext(pluginChain, config, core, nextPlugin);\n _isinitialized = true;\n };\n }\n\n BaseTelemetryPlugin.prototype.initialize = function (config, core, extensions, pluginChain) {\n this._baseTelInit(config, core, extensions, pluginChain);\n };\n\n return BaseTelemetryPlugin;\n}();\n\nexport { BaseTelemetryPlugin };","/*\n * Application Insights JavaScript SDK - Core, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\"use strict\";\n\nimport { arrForEach, isFunction } from \"./HelperFuncs\";\nvar processTelemetry = \"processTelemetry\";\nvar priority = \"priority\";\nvar setNextPlugin = \"setNextPlugin\";\nvar isInitialized = \"isInitialized\";\n/**\r\n * Initialize the queue of plugins\r\n * @param plugins - The array of plugins to initialize and setting of the next plugin\r\n * @param config The current config for the instance\r\n * @param core THe current core instance\r\n * @param extensions The extensions\r\n */\n\nexport function initializePlugins(processContext, extensions) {\n // Set the next plugin and identified the uninitialized plugins\n var initPlugins = [];\n var lastPlugin = null;\n var proxy = processContext.getNext();\n\n while (proxy) {\n var thePlugin = proxy.getPlugin();\n\n if (thePlugin) {\n if (lastPlugin && isFunction(lastPlugin[setNextPlugin]) && isFunction(thePlugin[processTelemetry])) {\n // Set this plugin as the next for the previous one\n lastPlugin[setNextPlugin](thePlugin);\n }\n\n if (!isFunction(thePlugin[isInitialized]) || !thePlugin[isInitialized]()) {\n initPlugins.push(thePlugin);\n }\n\n lastPlugin = thePlugin;\n proxy = proxy.getNext();\n }\n } // Now initiatilize the plugins\n\n\n arrForEach(initPlugins, function (thePlugin) {\n thePlugin.initialize(processContext.getCfg(), processContext.core(), extensions, processContext.getNext());\n });\n}\nexport function sortPlugins(plugins) {\n // Sort by priority\n return plugins.sort(function (extA, extB) {\n var result = 0;\n var bHasProcess = isFunction(extB[processTelemetry]);\n\n if (isFunction(extA[processTelemetry])) {\n result = bHasProcess ? extA[priority] - extB[priority] : 1;\n } else if (bHasProcess) {\n result = -1;\n }\n\n return result;\n }); // sort complete\n}","/*\n * Application Insights JavaScript SDK - Core, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\"use strict\";\n\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\nimport { BaseTelemetryPlugin } from \"./BaseTelemetryPlugin\";\nimport { ProcessTelemetryContext } from \"./ProcessTelemetryContext\";\nimport { initializePlugins } from \"./TelemetryHelpers\";\nimport { arrForEach, objDefineAccessors, throwError } from \"./HelperFuncs\";\nvar ChannelControllerPriority = 500;\nvar ChannelValidationMessage = \"Channel has invalid priority\";\n\nvar ChannelController =\n/** @class */\nfunction (_super) {\n __extends(ChannelController, _super);\n\n function ChannelController() {\n var _this = _super.call(this) || this;\n\n _this.identifier = \"ChannelControllerPlugin\";\n _this.priority = ChannelControllerPriority; // in reserved range 100 to 200\n\n var _channelQueue;\n\n dynamicProto(ChannelController, _this, function (_self, _base) {\n _self.setNextPlugin = function (next) {// The Channel controller is last in pipeline\n };\n\n _self.processTelemetry = function (item, itemCtx) {\n if (_channelQueue) {\n arrForEach(_channelQueue, function (queues) {\n // pass on to first item in queue\n if (queues.length > 0) {\n // Copying the item context as we could have mutiple chains that are executing asynchronously\n // and calling _getDefTelCtx as it's possible that the caller doesn't pass any context\n var chainCtx = _this._getTelCtx(itemCtx).createNew(queues);\n\n chainCtx.processNext(item);\n }\n });\n }\n };\n\n _self.getChannelControls = function () {\n return _channelQueue;\n };\n\n _self.initialize = function (config, core, extensions) {\n if (_self.isInitialized()) {\n // already initialized\n return;\n }\n\n _base.initialize(config, core, extensions);\n\n _createChannelQueues((config || {}).channels, extensions); // Initialize the Queues\n\n\n arrForEach(_channelQueue, function (queue) {\n return initializePlugins(new ProcessTelemetryContext(queue, config, core), extensions);\n });\n };\n });\n\n function _checkQueuePriority(queue) {\n arrForEach(queue, function (queueItem) {\n if (queueItem.priority < ChannelControllerPriority) {\n throwError(ChannelValidationMessage + queueItem.identifier);\n }\n });\n }\n\n function _addChannelQueue(queue) {\n if (queue && queue.length > 0) {\n queue = queue.sort(function (a, b) {\n return a.priority - b.priority;\n });\n\n _checkQueuePriority(queue);\n\n _channelQueue.push(queue);\n }\n }\n\n function _createChannelQueues(channels, extensions) {\n _channelQueue = [];\n\n if (channels) {\n // Add and sort the configuration channel queues\n arrForEach(channels, function (queue) {\n return _addChannelQueue(queue);\n });\n }\n\n if (extensions) {\n // Create a new channel queue for any extensions with a priority > the ChannelControllerPriority\n var extensionQueue_1 = [];\n arrForEach(extensions, function (plugin) {\n if (plugin.priority > ChannelControllerPriority) {\n extensionQueue_1.push(plugin);\n }\n });\n\n _addChannelQueue(extensionQueue_1);\n }\n }\n\n return _this;\n } // Removed Stub for ChannelController.prototype.processTelemetry.\n // Removed Stub for ChannelController.prototype.getChannelControls.\n // Removed Stub for ChannelController.prototype.initialize.\n\n /**\r\n * Static constructor, attempt to create accessors\r\n */\n // tslint:disable-next-line\n\n\n ChannelController._staticInit = function () {\n var proto = ChannelController.prototype; // Dynamically create get/set property accessors\n\n objDefineAccessors(proto, \"ChannelControls\", proto.getChannelControls);\n objDefineAccessors(proto, \"channelQueue\", proto.getChannelControls);\n }();\n\n return ChannelController;\n}(BaseTelemetryPlugin);\n\nexport { ChannelController };","/*\n * Application Insights JavaScript SDK - Core, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { _InternalMessageId, LoggingSeverity } from \"../JavaScriptSDK.Enums/LoggingEnums\";\nimport { dumpObj, getDocument, getLocation, getNavigator, isIE } from \"./EnvUtils\";\nimport { arrForEach, dateNow, getExceptionName, isFunction, isNotNullOrUndefined, isNullOrUndefined, isString, isTruthy, isUndefined, objForEachKey, setValue, strContains, strEndsWith, strTrim } from \"./HelperFuncs\";\nvar strToGMTString = \"toGMTString\";\nvar strToUTCString = \"toUTCString\";\nvar strCookie = \"cookie\";\nvar strExpires = \"expires\";\nvar strEnabled = \"enabled\";\nvar strIsCookieUseDisabled = \"isCookieUseDisabled\";\nvar strDisableCookiesUsage = \"disableCookiesUsage\";\nvar strConfigCookieMgr = \"_ckMgr\";\nvar strEmpty = \"\";\nvar _supportsCookies = null;\nvar _allowUaSameSite = null;\nvar _parsedCookieValue = null;\n\nvar _doc = getDocument();\n\nvar _cookieCache = {};\nvar _globalCookieConfig = {};\n/**\r\n * @ignore\r\n * DO NOT USE or export from the module, this is exposed as public to support backward compatibility of previous static utility methods only.\r\n * If you want to manager cookies either use the ICookieMgr available from the core instance via getCookieMgr() or create\r\n * your own instance of the CookieMgr and use that.\r\n * Using this directly for enabling / disabling cookie handling will not only affect your usage but EVERY user of cookies.\r\n * Example, if you are using a shared component that is also using Application Insights you will affect their cookie handling.\r\n * @param logger - The DiagnosticLogger to use for reporting errors.\r\n */\n\nexport function _gblCookieMgr(config, logger) {\n // Stash the global instance against the BaseCookieMgr class\n var inst = createCookieMgr[strConfigCookieMgr] || _globalCookieConfig[strConfigCookieMgr];\n\n if (!inst) {\n // Note: not using the getSetValue() helper as that would require always creating a temporary cookieMgr\n // that ultimately is never used\n inst = createCookieMgr[strConfigCookieMgr] = createCookieMgr(config, logger);\n _globalCookieConfig[strConfigCookieMgr] = inst;\n }\n\n return inst;\n}\n\nfunction _isMgrEnabled(cookieMgr) {\n if (cookieMgr) {\n return cookieMgr.isEnabled();\n }\n\n return true;\n}\n\nfunction _createCookieMgrConfig(rootConfig) {\n var cookieMgrCfg = rootConfig.cookieCfg = rootConfig.cookieCfg || {}; // Sets the values from the root config if not already present on the cookieMgrCfg\n\n setValue(cookieMgrCfg, \"domain\", rootConfig.cookieDomain, isNotNullOrUndefined, isNullOrUndefined);\n setValue(cookieMgrCfg, \"path\", rootConfig.cookiePath || \"/\", null, isNullOrUndefined);\n\n if (isNullOrUndefined(cookieMgrCfg[strEnabled])) {\n // Set the enabled from the provided setting or the legacy root values\n var cookieEnabled = void 0;\n\n if (!isUndefined(rootConfig[strIsCookieUseDisabled])) {\n cookieEnabled = !rootConfig[strIsCookieUseDisabled];\n }\n\n if (!isUndefined(rootConfig[strDisableCookiesUsage])) {\n cookieEnabled = !rootConfig[strDisableCookiesUsage];\n }\n\n cookieMgrCfg[strEnabled] = cookieEnabled;\n }\n\n return cookieMgrCfg;\n}\n/**\r\n * Helper to return the ICookieMgr from the core (if not null/undefined) or a default implementation\r\n * associated with the configuration or a legacy default.\r\n * @param core\r\n * @param config\r\n * @returns\r\n */\n\n\nexport function safeGetCookieMgr(core, config) {\n var cookieMgr;\n\n if (core) {\n // Always returns an instance\n cookieMgr = core.getCookieMgr();\n } else if (config) {\n var cookieCfg = config.cookieCfg;\n\n if (cookieCfg[strConfigCookieMgr]) {\n cookieMgr = cookieCfg[strConfigCookieMgr];\n } else {\n cookieMgr = createCookieMgr(config);\n }\n }\n\n if (!cookieMgr) {\n // Get or initialize the default global (legacy) cookie manager if we couldn't find one\n cookieMgr = _gblCookieMgr(config, (core || {}).logger);\n }\n\n return cookieMgr;\n}\nexport function createCookieMgr(rootConfig, logger) {\n var cookieMgrConfig = _createCookieMgrConfig(rootConfig || _globalCookieConfig);\n\n var _path = cookieMgrConfig.path || \"/\";\n\n var _domain = cookieMgrConfig.domain; // Explicitly checking against false, so that setting to undefined will === true\n\n var _enabled = cookieMgrConfig[strEnabled] !== false;\n\n var cookieMgr = {\n isEnabled: function isEnabled() {\n var enabled = _enabled && areCookiesSupported(logger); // Using an indirect lookup for any global cookie manager to support tree shaking for SDK's\n // that don't use the \"applicationinsights-core\" version of the default cookie function\n\n\n var gblManager = _globalCookieConfig[strConfigCookieMgr];\n\n if (enabled && gblManager && cookieMgr !== gblManager) {\n // Make sure the GlobalCookie Manager instance (if not this instance) is also enabled.\n // As the global (deprecated) functions may have been called (for backward compatibility)\n enabled = _isMgrEnabled(gblManager);\n }\n\n return enabled;\n },\n setEnabled: function setEnabled(value) {\n // Explicitly checking against false, so that setting to undefined will === true\n _enabled = value !== false;\n },\n set: function set(name, value, maxAgeSec, domain, path) {\n var result = false;\n\n if (_isMgrEnabled(cookieMgr)) {\n var values = {};\n var theValue = strTrim(value || strEmpty);\n var idx = theValue.indexOf(\";\");\n\n if (idx !== -1) {\n theValue = strTrim(value.substring(0, idx));\n values = _extractParts(value.substring(idx + 1));\n } // Only update domain if not already present (isUndefined) and the value is truthy (not null, undefined or empty string)\n\n\n setValue(values, \"domain\", domain || _domain, isTruthy, isUndefined);\n\n if (!isNullOrUndefined(maxAgeSec)) {\n var _isIE = isIE();\n\n if (isUndefined(values[strExpires])) {\n var nowMs = dateNow(); // Only add expires if not already present\n\n var expireMs = nowMs + maxAgeSec * 1000; // Sanity check, if zero or -ve then ignore\n\n if (expireMs > 0) {\n var expiry = new Date();\n expiry.setTime(expireMs);\n setValue(values, strExpires, _formatDate(expiry, !_isIE ? strToUTCString : strToGMTString) || _formatDate(expiry, _isIE ? strToGMTString : strToUTCString) || strEmpty, isTruthy);\n }\n }\n\n if (!_isIE) {\n // Only replace if not already present\n setValue(values, \"max-age\", strEmpty + maxAgeSec, null, isUndefined);\n }\n }\n\n var location_1 = getLocation();\n\n if (location_1 && location_1.protocol === \"https:\") {\n setValue(values, \"secure\", null, null, isUndefined); // Only set same site if not also secure\n\n if (_allowUaSameSite === null) {\n _allowUaSameSite = !uaDisallowsSameSiteNone((getNavigator() || {}).userAgent);\n }\n\n if (_allowUaSameSite) {\n setValue(values, \"SameSite\", \"None\", null, isUndefined);\n }\n }\n\n setValue(values, \"path\", path || _path, null, isUndefined);\n var setCookieFn = cookieMgrConfig.setCookie || _setCookieValue;\n setCookieFn(name, _formatCookieValue(theValue, values));\n result = true;\n }\n\n return result;\n },\n get: function get(name) {\n var value = strEmpty;\n\n if (_isMgrEnabled(cookieMgr)) {\n value = (cookieMgrConfig.getCookie || _getCookieValue)(name);\n }\n\n return value;\n },\n del: function del(name, path) {\n var result = false;\n\n if (_isMgrEnabled(cookieMgr)) {\n // Only remove the cookie if the manager and cookie support has not been disabled\n result = cookieMgr.purge(name, path);\n }\n\n return result;\n },\n purge: function purge(name, path) {\n var _a;\n\n var result = false;\n\n if (areCookiesSupported(logger)) {\n // Setting the expiration date in the past immediately removes the cookie\n var values = (_a = {}, _a[\"path\"] = path ? path : \"/\", _a[strExpires] = \"Thu, 01 Jan 1970 00:00:01 GMT\", _a);\n\n if (!isIE()) {\n // Set max age to expire now\n values[\"max-age\"] = \"0\";\n }\n\n var delCookie = cookieMgrConfig.delCookie || _setCookieValue;\n delCookie(name, _formatCookieValue(strEmpty, values));\n result = true;\n }\n\n return result;\n }\n }; // Associated this cookie manager with the config\n\n cookieMgr[strConfigCookieMgr] = cookieMgr;\n return cookieMgr;\n}\n/*\r\n* Helper method to tell if document.cookie object is supported by the runtime\r\n*/\n\nexport function areCookiesSupported(logger) {\n if (_supportsCookies === null) {\n _supportsCookies = false;\n\n try {\n var doc = _doc || {};\n _supportsCookies = doc[strCookie] !== undefined;\n } catch (e) {\n logger && logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.CannotAccessCookie, \"Cannot access document.cookie - \" + getExceptionName(e), {\n exception: dumpObj(e)\n });\n }\n }\n\n return _supportsCookies;\n}\n\nfunction _extractParts(theValue) {\n var values = {};\n\n if (theValue && theValue.length) {\n var parts = strTrim(theValue).split(\";\");\n arrForEach(parts, function (thePart) {\n thePart = strTrim(thePart || strEmpty);\n\n if (thePart) {\n var idx = thePart.indexOf(\"=\");\n\n if (idx === -1) {\n values[thePart] = null;\n } else {\n values[strTrim(thePart.substring(0, idx))] = strTrim(thePart.substring(idx + 1));\n }\n }\n });\n }\n\n return values;\n}\n\nfunction _formatDate(theDate, func) {\n if (isFunction(theDate[func])) {\n return theDate[func]();\n }\n\n return null;\n}\n\nfunction _formatCookieValue(value, values) {\n var cookieValue = value || strEmpty;\n objForEachKey(values, function (name, theValue) {\n cookieValue += \"; \" + name + (!isNullOrUndefined(theValue) ? \"=\" + theValue : strEmpty);\n });\n return cookieValue;\n}\n\nfunction _getCookieValue(name) {\n var cookieValue = strEmpty;\n\n if (_doc) {\n var theCookie = _doc[strCookie] || strEmpty;\n\n if (_parsedCookieValue !== theCookie) {\n _cookieCache = _extractParts(theCookie);\n _parsedCookieValue = theCookie;\n }\n\n cookieValue = strTrim(_cookieCache[name] || strEmpty);\n }\n\n return cookieValue;\n}\n\nfunction _setCookieValue(name, cookieValue) {\n if (_doc) {\n _doc[strCookie] = name + \"=\" + cookieValue;\n }\n}\n\nexport function uaDisallowsSameSiteNone(userAgent) {\n if (!isString(userAgent)) {\n return false;\n } // Cover all iOS based browsers here. This includes:\n // - Safari on iOS 12 for iPhone, iPod Touch, iPad\n // - WkWebview on iOS 12 for iPhone, iPod Touch, iPad\n // - Chrome on iOS 12 for iPhone, iPod Touch, iPad\n // All of which are broken by SameSite=None, because they use the iOS networking stack\n\n\n if (strContains(userAgent, \"CPU iPhone OS 12\") || strContains(userAgent, \"iPad; CPU OS 12\")) {\n return true;\n } // Cover Mac OS X based browsers that use the Mac OS networking stack. This includes:\n // - Safari on Mac OS X\n // This does not include:\n // - Internal browser on Mac OS X\n // - Chrome on Mac OS X\n // - Chromium on Mac OS X\n // Because they do not use the Mac OS networking stack.\n\n\n if (strContains(userAgent, \"Macintosh; Intel Mac OS X 10_14\") && strContains(userAgent, \"Version/\") && strContains(userAgent, \"Safari\")) {\n return true;\n } // Cover Mac OS X internal browsers that use the Mac OS networking stack. This includes:\n // - Internal browser on Mac OS X\n // This does not include:\n // - Safari on Mac OS X\n // - Chrome on Mac OS X\n // - Chromium on Mac OS X\n // Because they do not use the Mac OS networking stack.\n\n\n if (strContains(userAgent, \"Macintosh; Intel Mac OS X 10_14\") && strEndsWith(userAgent, \"AppleWebKit/605.1.15 (KHTML, like Gecko)\")) {\n return true;\n } // Cover Chrome 50-69, because some versions are broken by SameSite=None, and none in this range require it.\n // Note: this covers some pre-Chromium Edge versions, but pre-Chromim Edge does not require SameSite=None, so this is fine.\n // Note: this regex applies to Windows, Mac OS X, and Linux, deliberately.\n\n\n if (strContains(userAgent, \"Chrome/5\") || strContains(userAgent, \"Chrome/6\")) {\n return true;\n } // Unreal Engine runs Chromium 59, but does not advertise as Chrome until 4.23. Treat versions of Unreal\n // that don't specify their Chrome version as lacking support for SameSite=None.\n\n\n if (strContains(userAgent, \"UnrealEngine\") && !strContains(userAgent, \"Chrome\")) {\n return true;\n } // UCBrowser < 12.13.2 ignores Set-Cookie headers with SameSite=None\n // NB: this rule isn't complete - you need regex to make a complete rule.\n // See: https://www.chromium.org/updates/same-site/incompatible-clients\n\n\n if (strContains(userAgent, \"UCBrowser/12\") || strContains(userAgent, \"UCBrowser/11\")) {\n return true;\n }\n\n return false;\n}","/*\n * Application Insights JavaScript SDK - Core, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\"use strict\";\n\nimport { __spreadArrayFn as __spreadArray } from \"@microsoft/applicationinsights-shims\";\nimport { objCreateFn } from \"@microsoft/applicationinsights-shims\";\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\nimport { ChannelController } from \"./ChannelController\";\nimport { ProcessTelemetryContext } from \"./ProcessTelemetryContext\";\nimport { initializePlugins, sortPlugins } from \"./TelemetryHelpers\";\nimport { LoggingSeverity } from \"../JavaScriptSDK.Enums/LoggingEnums\";\nimport { getGblPerfMgr, PerfManager } from \"./PerfManager\";\nimport { createCookieMgr } from \"./CookieMgr\";\nimport { arrForEach, isNullOrUndefined, toISOString, getSetValue, setValue, throwError, isNotTruthy, isFunction } from \"./HelperFuncs\";\nimport { strExtensionConfig, strIKey } from \"./Constants\";\nimport { DiagnosticLogger } from \"./DiagnosticLogger\";\nimport { getDebugListener } from \"./DbgExtensionUtils\";\nvar validationError = \"Extensions must provide callback to initialize\";\nvar strNotificationManager = \"_notificationManager\";\n/**\r\n * Helper to create the default performance manager\r\n * @param core\r\n * @param notificationMgr\r\n */\n\nfunction _createPerfManager(core, notificationMgr) {\n return new PerfManager(notificationMgr);\n}\n\nvar BaseCore =\n/** @class */\nfunction () {\n function BaseCore() {\n var _isInitialized = false;\n\n var _eventQueue;\n\n var _channelController;\n\n var _notificationManager;\n\n var _perfManager;\n\n var _cookieManager;\n\n dynamicProto(BaseCore, this, function (_self) {\n _self._extensions = new Array();\n _channelController = new ChannelController(); // Use a default logger so initialization errors are not dropped on the floor with full logging\n\n _self.logger = new DiagnosticLogger({\n loggingLevelConsole: LoggingSeverity.CRITICAL\n });\n _eventQueue = [];\n\n _self.isInitialized = function () {\n return _isInitialized;\n };\n\n _self.initialize = function (config, extensions, logger, notificationManager) {\n // Make sure core is only initialized once\n if (_self.isInitialized()) {\n throwError(\"Core should not be initialized more than once\");\n }\n\n if (!config || isNullOrUndefined(config.instrumentationKey)) {\n throwError(\"Please provide instrumentation key\");\n }\n\n _notificationManager = notificationManager; // For backward compatibility only\n\n _self[strNotificationManager] = notificationManager;\n _self.config = config || {};\n\n if (notificationManager && _self.config.disableDbgExt !== true) {\n notificationManager.addNotificationListener(getDebugListener(config));\n }\n\n if (_self.config.enablePerfMgr) {\n // Set the performance manager creation function if not defined\n setValue(_self.config, \"createPerfMgr\", _createPerfManager);\n }\n\n config.extensions = isNullOrUndefined(config.extensions) ? [] : config.extensions; // add notification to the extensions in the config so other plugins can access it\n\n var extConfig = getSetValue(config, strExtensionConfig);\n extConfig.NotificationManager = notificationManager;\n\n if (logger) {\n _self.logger = logger;\n } // Concat all available extensions\n\n\n var allExtensions = [];\n allExtensions.push.apply(allExtensions, __spreadArray(__spreadArray([], extensions, false), config.extensions, false));\n allExtensions = sortPlugins(allExtensions);\n var coreExtensions = [];\n var channelExtensions = []; // Check if any two extensions have the same priority, then warn to console\n // And extract the local extensions from the\n\n var extPriorities = {}; // Extension validation\n\n arrForEach(allExtensions, function (ext) {\n if (isNullOrUndefined(ext) || isNullOrUndefined(ext.initialize)) {\n throwError(validationError);\n }\n\n var extPriority = ext.priority;\n var identifier = ext.identifier;\n\n if (ext && extPriority) {\n if (!isNullOrUndefined(extPriorities[extPriority])) {\n logger.warnToConsole(\"Two extensions have same priority #\" + extPriority + \" - \" + extPriorities[extPriority] + \", \" + identifier);\n } else {\n // set a value\n extPriorities[extPriority] = identifier;\n }\n } // Split extensions to core and channelController\n\n\n if (!extPriority || extPriority < _channelController.priority) {\n // Add to core extension that will be managed by BaseCore\n coreExtensions.push(ext);\n } else {\n // Add all other extensions to be managed by the channel controller\n channelExtensions.push(ext);\n }\n }); // Validation complete\n // Add the channelController to the complete extension collection and\n // to the end of the core extensions\n\n allExtensions.push(_channelController);\n coreExtensions.push(_channelController); // Sort the complete set of extensions by priority\n\n allExtensions = sortPlugins(allExtensions);\n _self._extensions = allExtensions; // initialize channel controller first, this will initialize all channel plugins\n\n initializePlugins(new ProcessTelemetryContext([_channelController], config, _self), allExtensions);\n initializePlugins(new ProcessTelemetryContext(coreExtensions, config, _self), allExtensions); // Now reset the extensions to just those being managed by Basecore\n\n _self._extensions = coreExtensions;\n\n if (_self.getTransmissionControls().length === 0) {\n throwError(\"No channels available\");\n }\n\n _isInitialized = true;\n\n _self.releaseQueue();\n };\n\n _self.getTransmissionControls = function () {\n return _channelController.getChannelControls();\n };\n\n _self.track = function (telemetryItem) {\n // setup default iKey if not passed in\n setValue(telemetryItem, strIKey, _self.config.instrumentationKey, null, isNotTruthy); // add default timestamp if not passed in\n\n setValue(telemetryItem, \"time\", toISOString(new Date()), null, isNotTruthy); // Common Schema 4.0\n\n setValue(telemetryItem, \"ver\", \"4.0\", null, isNullOrUndefined);\n\n if (_self.isInitialized()) {\n // Process the telemetry plugin chain\n _self.getProcessTelContext().processNext(telemetryItem);\n } else {\n // Queue events until all extensions are initialized\n _eventQueue.push(telemetryItem);\n }\n };\n\n _self.getProcessTelContext = function () {\n var extensions = _self._extensions;\n var thePlugins = extensions; // invoke any common telemetry processors before sending through pipeline\n\n if (!extensions || extensions.length === 0) {\n // Pass to Channel controller so data is sent to correct channel queues\n thePlugins = [_channelController];\n }\n\n return new ProcessTelemetryContext(thePlugins, _self.config, _self);\n };\n\n _self.getNotifyMgr = function () {\n if (!_notificationManager) {\n // Create Dummy notification manager\n _notificationManager = objCreateFn({\n addNotificationListener: function addNotificationListener(listener) {},\n removeNotificationListener: function removeNotificationListener(listener) {},\n eventsSent: function eventsSent(events) {},\n eventsDiscarded: function eventsDiscarded(events, reason) {},\n eventsSendRequest: function eventsSendRequest(sendReason, isAsync) {}\n }); // For backward compatibility only\n\n _self[strNotificationManager] = _notificationManager;\n }\n\n return _notificationManager;\n };\n\n _self.getCookieMgr = function () {\n if (!_cookieManager) {\n _cookieManager = createCookieMgr(_self.config, _self.logger);\n }\n\n return _cookieManager;\n };\n\n _self.setCookieMgr = function (cookieMgr) {\n _cookieManager = cookieMgr;\n };\n\n _self.getPerfMgr = function () {\n if (!_perfManager) {\n if (_self.config && _self.config.enablePerfMgr && isFunction(_self.config.createPerfMgr)) {\n _perfManager = _self.config.createPerfMgr(_self, _self.getNotifyMgr());\n }\n }\n\n return _perfManager || getGblPerfMgr();\n };\n\n _self.setPerfMgr = function (perfMgr) {\n _perfManager = perfMgr;\n };\n\n _self.eventCnt = function () {\n return _eventQueue.length;\n };\n\n _self.releaseQueue = function () {\n if (_eventQueue.length > 0) {\n arrForEach(_eventQueue, function (event) {\n _self.getProcessTelContext().processNext(event);\n });\n _eventQueue = [];\n }\n };\n });\n } // Removed Stub for BaseCore.prototype.initialize.\n // Removed Stub for BaseCore.prototype.getTransmissionControls.\n // Removed Stub for BaseCore.prototype.track.\n // Removed Stub for BaseCore.prototype.getProcessTelContext.\n // Removed Stub for BaseCore.prototype.getNotifyMgr.\n // Removed Stub for BaseCore.prototype.getCookieMgr.\n // Removed Stub for BaseCore.prototype.setCookieMgr.\n // Removed Stub for BaseCore.prototype.getPerfMgr.\n // Removed Stub for BaseCore.prototype.setPerfMgr.\n // Removed Stub for BaseCore.prototype.eventCnt.\n // Removed Stub for BaseCore.prototype.releaseQueue.\n\n\n return BaseCore;\n}();\n\nexport { BaseCore };","/*\n * Application Insights JavaScript SDK - Core, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\n/**\r\n * The EventsDiscardedReason enumeration contains a set of values that specify the reason for discarding an event.\r\n */\nexport var EventsDiscardedReason = {\n /**\r\n * Unknown.\r\n */\n Unknown: 0,\n\n /**\r\n * Status set to non-retryable.\r\n */\n NonRetryableStatus: 1,\n\n /**\r\n * The event is invalid.\r\n */\n InvalidEvent: 2,\n\n /**\r\n * The size of the event is too large.\r\n */\n SizeLimitExceeded: 3,\n\n /**\r\n * The server is not accepting events from this instrumentation key.\r\n */\n KillSwitch: 4,\n\n /**\r\n * The event queue is full.\r\n */\n QueueFull: 5\n};","/*\n * Application Insights JavaScript SDK - Core, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\nimport { arrForEach, arrIndexOf } from \"./HelperFuncs\";\n/**\r\n * Class to manage sending notifications to all the listeners.\r\n */\n\nvar NotificationManager =\n/** @class */\nfunction () {\n function NotificationManager(config) {\n this.listeners = [];\n var perfEvtsSendAll = !!(config || {}).perfEvtsSendAll;\n dynamicProto(NotificationManager, this, function (_self) {\n _self.addNotificationListener = function (listener) {\n _self.listeners.push(listener);\n };\n /**\r\n * Removes all instances of the listener.\r\n * @param {INotificationListener} listener - AWTNotificationListener to remove.\r\n */\n\n\n _self.removeNotificationListener = function (listener) {\n var index = arrIndexOf(_self.listeners, listener);\n\n while (index > -1) {\n _self.listeners.splice(index, 1);\n\n index = arrIndexOf(_self.listeners, listener);\n }\n };\n /**\r\n * Notification for events sent.\r\n * @param {ITelemetryItem[]} events - The array of events that have been sent.\r\n */\n\n\n _self.eventsSent = function (events) {\n arrForEach(_self.listeners, function (listener) {\n if (listener && listener.eventsSent) {\n setTimeout(function () {\n return listener.eventsSent(events);\n }, 0);\n }\n });\n };\n /**\r\n * Notification for events being discarded.\r\n * @param {ITelemetryItem[]} events - The array of events that have been discarded by the SDK.\r\n * @param {number} reason - The reason for which the SDK discarded the events. The EventsDiscardedReason\r\n * constant should be used to check the different values.\r\n */\n\n\n _self.eventsDiscarded = function (events, reason) {\n arrForEach(_self.listeners, function (listener) {\n if (listener && listener.eventsDiscarded) {\n setTimeout(function () {\n return listener.eventsDiscarded(events, reason);\n }, 0);\n }\n });\n };\n /**\r\n * [Optional] A function called when the events have been requested to be sent to the sever.\r\n * @param {number} sendReason - The reason why the event batch is being sent.\r\n * @param {boolean} isAsync - A flag which identifies whether the requests are being sent in an async or sync manner.\r\n */\n\n\n _self.eventsSendRequest = function (sendReason, isAsync) {\n arrForEach(_self.listeners, function (listener) {\n if (listener && listener.eventsSendRequest) {\n if (isAsync) {\n setTimeout(function () {\n return listener.eventsSendRequest(sendReason, isAsync);\n }, 0);\n } else {\n try {\n listener.eventsSendRequest(sendReason, isAsync);\n } catch (e) {// Catch errors to ensure we don't block sending the requests\n }\n }\n }\n });\n };\n\n _self.perfEvent = function (perfEvent) {\n if (perfEvent) {\n // Send all events or only parent events\n if (perfEvtsSendAll || !perfEvent.isChildEvt()) {\n arrForEach(_self.listeners, function (listener) {\n if (listener && listener.perfEvent) {\n if (perfEvent.isAsync) {\n setTimeout(function () {\n return listener.perfEvent(perfEvent);\n }, 0);\n } else {\n try {\n listener.perfEvent(perfEvent);\n } catch (e) {// Catch errors to ensure we don't block sending the requests\n }\n }\n }\n });\n }\n }\n };\n });\n } // Removed Stub for NotificationManager.prototype.addNotificationListener.\n // Removed Stub for NotificationManager.prototype.removeNotificationListener.\n // Removed Stub for NotificationManager.prototype.eventsSent.\n // Removed Stub for NotificationManager.prototype.eventsDiscarded.\n // Removed Stub for NotificationManager.prototype.eventsSendRequest.\n\n\n return NotificationManager;\n}();\n\nexport { NotificationManager };","/*\n * Application Insights JavaScript SDK - Core, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\nimport { BaseCore } from \"./BaseCore\";\nimport { EventsDiscardedReason } from \"../JavaScriptSDK.Enums/EventsDiscardedReason\";\nimport { NotificationManager } from \"./NotificationManager\";\nimport { doPerf } from \"./PerfManager\";\nimport { _InternalLogMessage, DiagnosticLogger } from \"./DiagnosticLogger\";\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\nimport { arrForEach, isNullOrUndefined, toISOString, throwError } from \"./HelperFuncs\";\n\"use strict\";\n\nvar AppInsightsCore =\n/** @class */\nfunction (_super) {\n __extends(AppInsightsCore, _super);\n\n function AppInsightsCore() {\n var _this = _super.call(this) || this;\n /**\r\n * Internal log poller\r\n */\n\n\n var _internalLogPoller = 0;\n dynamicProto(AppInsightsCore, _this, function (_self, _base) {\n _self.initialize = function (config, extensions, logger, notificationManager) {\n _base.initialize(config, extensions, logger || new DiagnosticLogger(config), notificationManager || new NotificationManager(config));\n };\n\n _self.track = function (telemetryItem) {\n doPerf(_self.getPerfMgr(), function () {\n return \"AppInsightsCore:track\";\n }, function () {\n if (telemetryItem === null) {\n _notifyInvalidEvent(telemetryItem); // throw error\n\n\n throwError(\"Invalid telemetry item\");\n } // do basic validation before sending it through the pipeline\n\n\n _validateTelemetryItem(telemetryItem);\n\n _base.track(telemetryItem);\n }, function () {\n return {\n item: telemetryItem\n };\n }, !telemetryItem.sync);\n };\n /**\r\n * Adds a notification listener. The SDK calls methods on the listener when an appropriate notification is raised.\r\n * The added plugins must raise notifications. If the plugins do not implement the notifications, then no methods will be\r\n * called.\r\n * @param {INotificationListener} listener - An INotificationListener object.\r\n */\n\n\n _self.addNotificationListener = function (listener) {\n var manager = _self.getNotifyMgr();\n\n if (manager) {\n manager.addNotificationListener(listener);\n }\n };\n /**\r\n * Removes all instances of the listener.\r\n * @param {INotificationListener} listener - INotificationListener to remove.\r\n */\n\n\n _self.removeNotificationListener = function (listener) {\n var manager = _self.getNotifyMgr();\n\n if (manager) {\n manager.removeNotificationListener(listener);\n }\n };\n /**\r\n * Periodically check logger.queue for log messages to be flushed\r\n */\n\n\n _self.pollInternalLogs = function (eventName) {\n var interval = _self.config.diagnosticLogInterval;\n\n if (!interval || !(interval > 0)) {\n interval = 10000;\n }\n\n if (_internalLogPoller) {\n _self.stopPollingInternalLogs();\n }\n\n _internalLogPoller = setInterval(function () {\n var queue = _self.logger ? _self.logger.queue : [];\n arrForEach(queue, function (logMessage) {\n var item = {\n name: eventName ? eventName : \"InternalMessageId: \" + logMessage.messageId,\n iKey: _self.config.instrumentationKey,\n time: toISOString(new Date()),\n baseType: _InternalLogMessage.dataType,\n baseData: {\n message: logMessage.message\n }\n };\n\n _self.track(item);\n });\n queue.length = 0;\n }, interval);\n return _internalLogPoller;\n };\n /**\r\n * Stop polling log messages from logger.queue\r\n */\n\n\n _self.stopPollingInternalLogs = function () {\n if (!_internalLogPoller) return;\n clearInterval(_internalLogPoller);\n _internalLogPoller = 0;\n };\n\n function _validateTelemetryItem(telemetryItem) {\n if (isNullOrUndefined(telemetryItem.name)) {\n _notifyInvalidEvent(telemetryItem);\n\n throw Error(\"telemetry name required\");\n }\n }\n\n function _notifyInvalidEvent(telemetryItem) {\n var manager = _self.getNotifyMgr();\n\n if (manager) {\n manager.eventsDiscarded([telemetryItem], EventsDiscardedReason.InvalidEvent);\n }\n }\n });\n return _this;\n } // Removed Stub for AppInsightsCore.prototype.initialize.\n // Removed Stub for AppInsightsCore.prototype.track.\n // Removed Stub for AppInsightsCore.prototype.addNotificationListener.\n // Removed Stub for AppInsightsCore.prototype.removeNotificationListener.\n // Removed Stub for AppInsightsCore.prototype.pollInternalLogs.\n // Removed Stub for AppInsightsCore.prototype.stopPollingInternalLogs.\n\n\n return AppInsightsCore;\n}(BaseCore);\n\nexport { AppInsightsCore };","/*\n * Application Insights JavaScript SDK - Core, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { getCrypto, getMsCrypto, isIE } from \"./EnvUtils\";\nimport { dateNow } from \"./HelperFuncs\";\nvar UInt32Mask = 0x100000000;\nvar MaxUInt32 = 0xffffffff; // MWC based Random generator (for IE)\n\nvar _mwcSeeded = false;\nvar _mwcW = 123456789;\nvar _mwcZ = 987654321; // Takes any integer\n\nfunction _mwcSeed(seedValue) {\n if (seedValue < 0) {\n // Make sure we end up with a positive number and not -ve one.\n seedValue >>>= 0;\n }\n\n _mwcW = 123456789 + seedValue & MaxUInt32;\n _mwcZ = 987654321 - seedValue & MaxUInt32;\n _mwcSeeded = true;\n}\n\nfunction _autoSeedMwc() {\n // Simple initialization using default Math.random() - So we inherit any entropy from the browser\n // and bitwise XOR with the current milliseconds\n try {\n var now = dateNow() & 0x7fffffff;\n\n _mwcSeed((Math.random() * UInt32Mask ^ now) + now);\n } catch (e) {// Don't crash if something goes wrong\n }\n}\n/**\r\n * Generate a random value between 0 and maxValue, max value should be limited to a 32-bit maximum.\r\n * So maxValue(16) will produce a number from 0..16 (range of 17)\r\n * @param maxValue\r\n */\n\n\nexport function randomValue(maxValue) {\n if (maxValue > 0) {\n return Math.floor(random32() / MaxUInt32 * (maxValue + 1)) >>> 0;\n }\n\n return 0;\n}\n/**\r\n * generate a random 32-bit number (0x000000..0xFFFFFFFF) or (-0x80000000..0x7FFFFFFF), defaults un-unsigned.\r\n * @param signed - True to return a signed 32-bit number (-0x80000000..0x7FFFFFFF) otherwise an unsigned one (0x000000..0xFFFFFFFF)\r\n */\n\nexport function random32(signed) {\n var value;\n var c = getCrypto() || getMsCrypto();\n\n if (c && c.getRandomValues) {\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\n value = c.getRandomValues(new Uint32Array(1))[0] & MaxUInt32;\n } else if (isIE()) {\n // For IE 6, 7, 8 (especially on XP) Math.random is not very random\n if (!_mwcSeeded) {\n // Set the seed for the Mwc algorithm\n _autoSeedMwc();\n } // Don't use Math.random for IE\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\n\n\n value = mwcRandom32() & MaxUInt32;\n } else {\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\n value = Math.floor(UInt32Mask * Math.random() | 0);\n }\n\n if (!signed) {\n // Make sure we end up with a positive number and not -ve one.\n value >>>= 0;\n }\n\n return value;\n}\n/**\r\n * Seed the MWC random number generator with the specified seed or a random value\r\n * @param value - optional the number to used as the seed, if undefined, null or zero a random value will be chosen\r\n */\n\nexport function mwcRandomSeed(value) {\n if (!value) {\n _autoSeedMwc();\n } else {\n _mwcSeed(value);\n }\n}\n/**\r\n * Generate a random 32-bit number between (0x000000..0xFFFFFFFF) or (-0x80000000..0x7FFFFFFF), using MWC (Multiply with carry)\r\n * instead of Math.random() defaults to un-signed.\r\n * Used as a replacement random generator for IE to avoid issues with older IE instances.\r\n * @param signed - True to return a signed 32-bit number (-0x80000000..0x7FFFFFFF) otherwise an unsigned one (0x000000..0xFFFFFFFF)\r\n */\n\nexport function mwcRandom32(signed) {\n _mwcZ = 36969 * (_mwcZ & 0xFFFF) + (_mwcZ >> 16) & MaxUInt32;\n _mwcW = 18000 * (_mwcW & 0xFFFF) + (_mwcW >> 16) & MaxUInt32;\n var value = (_mwcZ << 16) + (_mwcW & 0xFFFF) >>> 0 & MaxUInt32 | 0;\n\n if (!signed) {\n // Make sure we end up with a positive number and not -ve one.\n value >>>= 0;\n }\n\n return value;\n}","/*\n * Application Insights JavaScript SDK - Core, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\"use strict\";\n\nimport { objCreateFn, strShimUndefined } from \"@microsoft/applicationinsights-shims\";\nimport { _gblCookieMgr } from \"./CookieMgr\";\nimport { getWindow, getDocument, getPerformance, isIE } from \"./EnvUtils\";\nimport { arrForEach, arrIndexOf, arrMap, arrReduce, attachEvent, dateNow, detachEvent, hasOwnProperty, isArray, isBoolean, isDate, isError, isFunction, isNullOrUndefined, isNumber, isObject, isString, isTypeof, isUndefined, objDefineAccessors, objKeys, strTrim, toISOString } from \"./HelperFuncs\";\nimport { randomValue, random32, mwcRandomSeed, mwcRandom32 } from \"./RandomHelper\";\nvar strVisibilityChangeEvt = \"visibilitychange\";\nvar strPageHide = \"pagehide\";\nvar strPageShow = \"pageshow\";\nvar _cookieMgrs = null;\n\nvar _canUseCookies; // legacy supported config\n// Added to help with minfication\n\n\nexport var Undefined = strShimUndefined;\n/**\r\n * Trys to add an event handler for the specified event to the window, body and document\r\n * @param eventName {string} - The name of the event\r\n * @param callback {any} - The callback function that needs to be executed for the given event\r\n * @return {boolean} - true if the handler was successfully added\r\n */\n\nexport function addEventHandler(eventName, callback) {\n var result = false;\n var w = getWindow();\n\n if (w) {\n result = attachEvent(w, eventName, callback);\n result = attachEvent(w[\"body\"], eventName, callback) || result;\n }\n\n var doc = getDocument();\n\n if (doc) {\n result = attachEvent(doc, eventName, callback) || result;\n }\n\n return result;\n}\n/**\r\n * Bind the listener to the array of events\r\n * @param events An string array of event names to bind the listener to\r\n * @param listener The event callback to call when the event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\n\nexport function addEventListeners(events, listener, excludeEvents) {\n var added = false;\n\n if (listener && events && isArray(events)) {\n var excluded_1 = [];\n arrForEach(events, function (name) {\n if (isString(name)) {\n if (!excludeEvents || arrIndexOf(excludeEvents, name) === -1) {\n added = addEventHandler(name, listener) || added;\n } else {\n excluded_1.push(name);\n }\n }\n });\n\n if (!added && excluded_1.length > 0) {\n // Failed to add any listeners and we excluded some, so just attempt to add the excluded events\n added = addEventListeners(excluded_1, listener);\n }\n }\n\n return added;\n}\n/**\r\n * Listen to the 'beforeunload', 'unload' and 'pagehide' events which indicates a page unload is occurring,\r\n * this does NOT listen to the 'visibilitychange' event as while it does indicate that the page is being hidden\r\n * it does not *necessarily* mean that the page is being completely unloaded, it can mean that the user is\r\n * just navigating to a different Tab and may come back (without unloading the page). As such you may also\r\n * need to listen to the 'addPageHideEventListener' and 'addPageShowEventListener' events.\r\n * @param listener - The event callback to call when a page unload event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked, unless no other events can be.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\n\nexport function addPageUnloadEventListener(listener, excludeEvents) {\n // Hook the unload event for the document, window and body to ensure that the client events are flushed to the server\n // As just hooking the window does not always fire (on chrome) for page navigation's.\n return addEventListeners([\"beforeunload\", \"unload\", \"pagehide\"], listener, excludeEvents);\n}\n/**\r\n * Listen to the pagehide and visibility changing to 'hidden' events\r\n * @param listener - The event callback to call when a page hide event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * Suggestion: pass as true if you are also calling addPageUnloadEventListener as that also hooks pagehide\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\n\nexport function addPageHideEventListener(listener, excludeEvents) {\n function _handlePageVisibility(evt) {\n var doc = getDocument();\n\n if (listener && doc && doc.visibilityState === \"hidden\") {\n listener(evt);\n }\n }\n\n var pageUnloadAdded = false;\n\n if (!excludeEvents || arrIndexOf(excludeEvents, strPageHide) === -1) {\n pageUnloadAdded = addEventHandler(strPageHide, listener);\n }\n\n if (!excludeEvents || arrIndexOf(excludeEvents, strVisibilityChangeEvt) === -1) {\n pageUnloadAdded = addEventHandler(strVisibilityChangeEvt, _handlePageVisibility) || pageUnloadAdded;\n }\n\n if (!pageUnloadAdded && excludeEvents) {\n // Failed to add any listeners and we where requested to exclude some, so just call again without excluding anything\n pageUnloadAdded = addPageHideEventListener(listener);\n }\n\n return pageUnloadAdded;\n}\n/**\r\n * Listen to the pageshow and visibility changing to 'visible' events\r\n * @param listener - The event callback to call when a page is show event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\n\nexport function addPageShowEventListener(listener, excludeEvents) {\n function _handlePageVisibility(evt) {\n var doc = getDocument();\n\n if (listener && doc && doc.visibilityState === \"visible\") {\n listener(evt);\n }\n }\n\n var pageShowAdded = false;\n\n if (!excludeEvents || arrIndexOf(excludeEvents, strPageShow) === -1) {\n pageShowAdded = addEventHandler(strPageShow, listener);\n }\n\n if (!excludeEvents || arrIndexOf(excludeEvents, strVisibilityChangeEvt) === -1) {\n pageShowAdded = addEventHandler(strVisibilityChangeEvt, _handlePageVisibility) || pageShowAdded;\n }\n\n if (!pageShowAdded && excludeEvents) {\n // Failed to add any listeners and we where requested to exclude some, so just call again without excluding anything\n pageShowAdded = addPageShowEventListener(listener);\n }\n\n return pageShowAdded;\n}\nexport function newGuid() {\n function randomHexDigit() {\n return randomValue(15); // Get a random value from 0..15\n }\n\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(GuidRegex, function (c) {\n var r = randomHexDigit() | 0,\n v = c === \"x\" ? r : r & 0x3 | 0x8;\n return v.toString(16);\n });\n}\n/**\r\n * Return the current value of the Performance Api now() function (if available) and fallback to dateNow() if it is unavailable (IE9 or less)\r\n * https://caniuse.com/#search=performance.now\r\n */\n\nexport function perfNow() {\n var perf = getPerformance();\n\n if (perf && perf.now) {\n return perf.now();\n }\n\n return dateNow();\n}\n/**\r\n * Generate random base64 id string.\r\n * The default length is 22 which is 132-bits so almost the same as a GUID but as base64 (the previous default was 5)\r\n * @param maxLength - Optional value to specify the length of the id to be generated, defaults to 22\r\n */\n\nexport function newId(maxLength) {\n if (maxLength === void 0) {\n maxLength = 22;\n }\n\n var base64chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\"; // Start with an initial random number, consuming the value in reverse byte order\n\n var number = random32() >>> 0; // Make sure it's a +ve number\n\n var chars = 0;\n var result = \"\";\n\n while (result.length < maxLength) {\n chars++;\n result += base64chars.charAt(number & 0x3F);\n number >>>= 6; // Zero fill with right shift\n\n if (chars === 5) {\n // 5 base64 characters === 30 bits so we don't have enough bits for another base64 char\n // So add on another 30 bits and make sure it's +ve\n number = (random32() << 2 & 0xFFFFFFFF | number & 0x03) >>> 0;\n chars = 0; // We need to reset the number every 5 chars (30 bits)\n }\n }\n\n return result;\n}\n/**\r\n * The strEndsWith() method determines whether a string ends with the characters of a specified string, returning true or false as appropriate.\r\n * @param value - The value to check whether it ends with the search value.\r\n * @param search - The characters to be searched for at the end of the value.\r\n * @returns true if the given search value is found at the end of the string, otherwise false.\r\n */\n\nexport function strEndsWith(value, search) {\n if (value && search) {\n var len = value.length;\n var start = len - search.length;\n return value.substring(start >= 0 ? start : 0, len) === search;\n }\n\n return false;\n}\n/**\r\n * generate W3C trace id\r\n */\n\nexport function generateW3CId() {\n var hexValues = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"]; // rfc4122 version 4 UUID without dashes and with lowercase letters\n\n var oct = \"\",\n tmp;\n\n for (var a = 0; a < 4; a++) {\n tmp = random32();\n oct += hexValues[tmp & 0xF] + hexValues[tmp >> 4 & 0xF] + hexValues[tmp >> 8 & 0xF] + hexValues[tmp >> 12 & 0xF] + hexValues[tmp >> 16 & 0xF] + hexValues[tmp >> 20 & 0xF] + hexValues[tmp >> 24 & 0xF] + hexValues[tmp >> 28 & 0xF];\n } // \"Set the two most significant bits (bits 6 and 7) of the clock_seq_hi_and_reserved to zero and one, respectively\"\n\n\n var clockSequenceHi = hexValues[8 + (random32() & 0x03) | 0];\n return oct.substr(0, 8) + oct.substr(9, 4) + \"4\" + oct.substr(13, 3) + clockSequenceHi + oct.substr(16, 3) + oct.substr(19, 12);\n}\n/**\r\n * Provides a collection of utility functions, included for backward compatibility with previous releases.\r\n * @deprecated Marking this instance as deprecated in favor of direct usage of the helper functions\r\n * as direct usage provides better tree-shaking and minification by avoiding the inclusion of the unused items\r\n * in your resulting code.\r\n */\n\nexport var CoreUtils = {\n _canUseCookies: undefined,\n isTypeof: isTypeof,\n isUndefined: isUndefined,\n isNullOrUndefined: isNullOrUndefined,\n hasOwnProperty: hasOwnProperty,\n isFunction: isFunction,\n isObject: isObject,\n isDate: isDate,\n isArray: isArray,\n isError: isError,\n isString: isString,\n isNumber: isNumber,\n isBoolean: isBoolean,\n toISOString: toISOString,\n arrForEach: arrForEach,\n arrIndexOf: arrIndexOf,\n arrMap: arrMap,\n arrReduce: arrReduce,\n strTrim: strTrim,\n objCreate: objCreateFn,\n objKeys: objKeys,\n objDefineAccessors: objDefineAccessors,\n addEventHandler: addEventHandler,\n dateNow: dateNow,\n isIE: isIE,\n disableCookies: disableCookies,\n newGuid: newGuid,\n perfNow: perfNow,\n newId: newId,\n randomValue: randomValue,\n random32: random32,\n mwcRandomSeed: mwcRandomSeed,\n mwcRandom32: mwcRandom32,\n generateW3CId: generateW3CId\n};\nvar GuidRegex = /[xy]/g;\nexport var EventHelper = {\n Attach: attachEvent,\n AttachEvent: attachEvent,\n Detach: detachEvent,\n DetachEvent: detachEvent\n};\n/**\r\n * Helper to support backward compatibility for users that use the legacy cookie handling functions and the use the internal\r\n * CoreUtils._canUseCookies global flag to enable/disable cookies usage.\r\n * Note: This has the following deliberate side-effects\r\n * - Creates the global (legacy) cookie manager if it does not already exist\r\n * - Attempts to add \"listeners\" to the CoreUtils._canUseCookies property to support the legacy usage\r\n * @param config\r\n * @param logger\r\n * @returns\r\n */\n\nexport function _legacyCookieMgr(config, logger) {\n var cookieMgr = _gblCookieMgr(config, logger);\n\n var legacyCanUseCookies = CoreUtils._canUseCookies;\n\n if (_cookieMgrs === null) {\n _cookieMgrs = [];\n _canUseCookies = legacyCanUseCookies; // Dynamically create get/set property accessors for backward compatibility for enabling / disabling cookies\n // this WILL NOT work for ES3 browsers (< IE8)\n\n objDefineAccessors(CoreUtils, \"_canUseCookies\", function () {\n return _canUseCookies;\n }, function (value) {\n _canUseCookies = value;\n arrForEach(_cookieMgrs, function (mgr) {\n mgr.setEnabled(value);\n });\n });\n }\n\n if (arrIndexOf(_cookieMgrs, cookieMgr) === -1) {\n _cookieMgrs.push(cookieMgr);\n }\n\n if (isBoolean(legacyCanUseCookies)) {\n cookieMgr.setEnabled(legacyCanUseCookies);\n }\n\n if (isBoolean(_canUseCookies)) {\n cookieMgr.setEnabled(_canUseCookies);\n }\n\n return cookieMgr;\n}\n/**\r\n * @deprecated - Use the core.getCookieMgr().disable()\r\n * Force the SDK not to store and read any data from cookies.\r\n */\n\nexport function disableCookies() {\n _legacyCookieMgr().setEnabled(false);\n}\n/**\r\n * @deprecated - Use the core.getCookieMgr().isEnabled()\r\n * Helper method to tell if document.cookie object is available and whether it can be used.\r\n */\n\nexport function canUseCookies(logger) {\n return _legacyCookieMgr(null, logger).isEnabled();\n}\n/**\r\n * @deprecated - Use the core.getCookieMgr().get()\r\n * helper method to access userId and sessionId cookie\r\n */\n\nexport function getCookie(logger, name) {\n return _legacyCookieMgr(null, logger).get(name);\n}\n/**\r\n * @deprecated - Use the core.getCookieMgr().set()\r\n * helper method to set userId and sessionId cookie\r\n */\n\nexport function setCookie(logger, name, value, domain) {\n _legacyCookieMgr(null, logger).set(name, value, null, domain);\n}\n/**\r\n * @deprecated - Use the core.getCookieMgr().del()\r\n * Deletes a cookie by setting it's expiration time in the past.\r\n * @param name - The name of the cookie to delete.\r\n */\n\nexport function deleteCookie(logger, name) {\n return _legacyCookieMgr(null, logger).del(name);\n}","/*\n * Application Insights JavaScript SDK - Common, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n// Licensed under the\nexport { Util, CorrelationIdHelper, DateTimeUtils, dateTimeUtilsNow, dateTimeUtilsDuration, UrlHelper, isInternalApplicationInsightsEndpoint } from \"./Util\";\nexport { parseConnectionString, ConnectionStringParser } from \"./ConnectionStringParser\";\nexport { RequestHeaders } from \"./RequestResponseHeaders\";\nexport { DisabledPropertyName, ProcessLegacy, SampleRate, HttpMethod, DEFAULT_BREEZE_ENDPOINT, strNotSpecified } from \"./Constants\";\nexport { Data as AIData } from \"./Interfaces/Contracts/Generated/Data\";\nexport { Base as AIBase } from \"./Interfaces/Contracts/Generated/Base\";\nexport { Envelope } from \"./Telemetry/Common/Envelope\";\nexport { Event } from \"./Telemetry/Event\";\nexport { Exception } from \"./Telemetry/Exception\";\nexport { Metric } from \"./Telemetry/Metric\";\nexport { PageView } from \"./Telemetry/PageView\";\nexport { PageViewData } from \"./Interfaces/Contracts/Generated/PageViewData\";\nexport { RemoteDependencyData } from \"./Telemetry/RemoteDependencyData\";\nexport { Trace } from \"./Telemetry/Trace\";\nexport { PageViewPerformance } from \"./Telemetry/PageViewPerformance\";\nexport { Data } from \"./Telemetry/Common/Data\";\nexport { SeverityLevel } from \"./Interfaces/Contracts/Generated/SeverityLevel\";\nexport { ConfigurationManager } from \"./Interfaces/IConfig\";\nexport { ContextTagKeys } from \"./Interfaces/Contracts/Generated/ContextTagKeys\";\nexport { DataSanitizer, dataSanitizeKeyAndAddUniqueness, dataSanitizeKey, dataSanitizeString, dataSanitizeUrl, dataSanitizeMessage, dataSanitizeException, dataSanitizeProperties, dataSanitizeMeasurements, dataSanitizeId, dataSanitizeInput, dsPadNumber } from \"./Telemetry/Common/DataSanitizer\";\nexport { TelemetryItemCreator } from \"./TelemetryItemCreator\";\nexport { CtxTagKeys, Extensions } from \"./Interfaces/PartAExtensions\";\nexport { DistributedTracingModes } from \"./Enums\";\nexport { stringToBoolOrDefault, msToTimeSpan, getExtensionByName, isCrossOriginError } from \"./HelperFuncs\";\nexport { isBeaconsSupported as isBeaconApiSupported } from \"@microsoft/applicationinsights-core-js\";\nexport { createDomEvent } from \"./DomHelperFuncs\";\nexport { utlDisableStorage, utlCanUseLocalStorage, utlGetLocalStorage, utlSetLocalStorage, utlRemoveStorage, utlCanUseSessionStorage, utlGetSessionStorageKeys, utlGetSessionStorage, utlSetSessionStorage, utlRemoveSessionStorage } from \"./StorageHelperFuncs\";\nexport { urlParseUrl, urlGetAbsoluteUrl, urlGetPathName, urlGetCompleteUrl, urlParseHost, urlParseFullHost } from \"./UrlHelperFuncs\";\nexport var PropertiesPluginIdentifier = \"AppInsightsPropertiesPlugin\";\nexport var BreezeChannelIdentifier = \"AppInsightsChannelPlugin\";\nexport var AnalyticsPluginIdentifier = \"ApplicationInsightsAnalytics\";","/*\n * Application Insights JavaScript SDK - Common, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { LoggingSeverity, _InternalMessageId, hasJSON, getJSON, objForEachKey, isObject, strTrim } from \"@microsoft/applicationinsights-core-js\";\nexport function dataSanitizeKeyAndAddUniqueness(logger, key, map) {\n var origLength = key.length;\n var field = dataSanitizeKey(logger, key); // validation truncated the length. We need to add uniqueness\n\n if (field.length !== origLength) {\n var i = 0;\n var uniqueField = field;\n\n while (map[uniqueField] !== undefined) {\n i++;\n uniqueField = field.substring(0, 150\n /* MAX_NAME_LENGTH */\n - 3) + dsPadNumber(i);\n }\n\n field = uniqueField;\n }\n\n return field;\n}\nexport function dataSanitizeKey(logger, name) {\n var nameTrunc;\n\n if (name) {\n // Remove any leading or trailing whitespace\n name = strTrim(name.toString()); // truncate the string to 150 chars\n\n if (name.length > 150\n /* MAX_NAME_LENGTH */\n ) {\n nameTrunc = name.substring(0, 150\n /* MAX_NAME_LENGTH */\n );\n logger && logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.NameTooLong, \"name is too long. It has been truncated to \" + 150\n /* MAX_NAME_LENGTH */\n + \" characters.\", {\n name: name\n }, true);\n }\n }\n\n return nameTrunc || name;\n}\nexport function dataSanitizeString(logger, value, maxLength) {\n if (maxLength === void 0) {\n maxLength = 1024\n /* MAX_STRING_LENGTH */\n ;\n }\n\n var valueTrunc;\n\n if (value) {\n maxLength = maxLength ? maxLength : 1024\n /* MAX_STRING_LENGTH */\n ; // in case default parameters dont work\n\n value = strTrim(value);\n\n if (value.toString().length > maxLength) {\n valueTrunc = value.toString().substring(0, maxLength);\n logger && logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.StringValueTooLong, \"string value is too long. It has been truncated to \" + maxLength + \" characters.\", {\n value: value\n }, true);\n }\n }\n\n return valueTrunc || value;\n}\nexport function dataSanitizeUrl(logger, url) {\n return dataSanitizeInput(logger, url, 2048\n /* MAX_URL_LENGTH */\n , _InternalMessageId.UrlTooLong);\n}\nexport function dataSanitizeMessage(logger, message) {\n var messageTrunc;\n\n if (message) {\n if (message.length > 32768\n /* MAX_MESSAGE_LENGTH */\n ) {\n messageTrunc = message.substring(0, 32768\n /* MAX_MESSAGE_LENGTH */\n );\n logger && logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.MessageTruncated, \"message is too long, it has been truncated to \" + 32768\n /* MAX_MESSAGE_LENGTH */\n + \" characters.\", {\n message: message\n }, true);\n }\n }\n\n return messageTrunc || message;\n}\nexport function dataSanitizeException(logger, exception) {\n var exceptionTrunc;\n\n if (exception) {\n // Make surte its a string\n var value = \"\" + exception;\n\n if (value.length > 32768\n /* MAX_EXCEPTION_LENGTH */\n ) {\n exceptionTrunc = value.substring(0, 32768\n /* MAX_EXCEPTION_LENGTH */\n );\n logger && logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.ExceptionTruncated, \"exception is too long, it has been truncated to \" + 32768\n /* MAX_EXCEPTION_LENGTH */\n + \" characters.\", {\n exception: exception\n }, true);\n }\n }\n\n return exceptionTrunc || exception;\n}\nexport function dataSanitizeProperties(logger, properties) {\n if (properties) {\n var tempProps_1 = {};\n objForEachKey(properties, function (prop, value) {\n if (isObject(value) && hasJSON()) {\n // Stringify any part C properties\n try {\n value = getJSON().stringify(value);\n } catch (e) {\n logger && logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.CannotSerializeObjectNonSerializable, \"custom property is not valid\", {\n exception: e\n }, true);\n }\n }\n\n value = dataSanitizeString(logger, value, 8192\n /* MAX_PROPERTY_LENGTH */\n );\n prop = dataSanitizeKeyAndAddUniqueness(logger, prop, tempProps_1);\n tempProps_1[prop] = value;\n });\n properties = tempProps_1;\n }\n\n return properties;\n}\nexport function dataSanitizeMeasurements(logger, measurements) {\n if (measurements) {\n var tempMeasurements_1 = {};\n objForEachKey(measurements, function (measure, value) {\n measure = dataSanitizeKeyAndAddUniqueness(logger, measure, tempMeasurements_1);\n tempMeasurements_1[measure] = value;\n });\n measurements = tempMeasurements_1;\n }\n\n return measurements;\n}\nexport function dataSanitizeId(logger, id) {\n return id ? dataSanitizeInput(logger, id, 128\n /* MAX_ID_LENGTH */\n , _InternalMessageId.IdTooLong).toString() : id;\n}\nexport function dataSanitizeInput(logger, input, maxLength, _msgId) {\n var inputTrunc;\n\n if (input) {\n input = strTrim(input);\n\n if (input.length > maxLength) {\n inputTrunc = input.substring(0, maxLength);\n logger && logger.throwInternal(LoggingSeverity.WARNING, _msgId, \"input is too long, it has been truncated to \" + maxLength + \" characters.\", {\n data: input\n }, true);\n }\n }\n\n return inputTrunc || input;\n}\nexport function dsPadNumber(num) {\n var s = \"00\" + num;\n return s.substr(s.length - 3);\n}\n/**\r\n * Provides the DataSanitizer functions within the previous namespace.\r\n */\n\nexport var DataSanitizer = {\n MAX_NAME_LENGTH: 150\n /* MAX_NAME_LENGTH */\n ,\n MAX_ID_LENGTH: 128\n /* MAX_ID_LENGTH */\n ,\n MAX_PROPERTY_LENGTH: 8192\n /* MAX_PROPERTY_LENGTH */\n ,\n MAX_STRING_LENGTH: 1024\n /* MAX_STRING_LENGTH */\n ,\n MAX_URL_LENGTH: 2048\n /* MAX_URL_LENGTH */\n ,\n MAX_MESSAGE_LENGTH: 32768\n /* MAX_MESSAGE_LENGTH */\n ,\n MAX_EXCEPTION_LENGTH: 32768\n /* MAX_EXCEPTION_LENGTH */\n ,\n sanitizeKeyAndAddUniqueness: dataSanitizeKeyAndAddUniqueness,\n sanitizeKey: dataSanitizeKey,\n sanitizeString: dataSanitizeString,\n sanitizeUrl: dataSanitizeUrl,\n sanitizeMessage: dataSanitizeMessage,\n sanitizeException: dataSanitizeException,\n sanitizeProperties: dataSanitizeProperties,\n sanitizeMeasurements: dataSanitizeMeasurements,\n sanitizeId: dataSanitizeId,\n sanitizeInput: dataSanitizeInput,\n padNumber: dsPadNumber,\n trim: strTrim\n};","/*\n * Application Insights JavaScript SDK - Common, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n// THIS FILE WAS AUTOGENERATED\n\n/**\r\n * Type of the metric data measurement.\r\n */\nexport var DataPointType;\n\n(function (DataPointType) {\n DataPointType[DataPointType[\"Measurement\"] = 0] = \"Measurement\";\n DataPointType[DataPointType[\"Aggregation\"] = 1] = \"Aggregation\";\n})(DataPointType || (DataPointType = {}));","/*\n * Application Insights JavaScript SDK - Common, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\n/**\r\n * This is an internal property used to cause internal (reporting) requests to be ignored from reporting\r\n * additional telemetry, to handle polyfil implementations ALL urls used with a disabled request will\r\n * also be ignored for future requests even when this property is not provided.\r\n * Tagging as Ignore as this is an internal value and is not expected to be used outside of the SDK\r\n * @ignore\r\n */\nexport var DisabledPropertyName = \"Microsoft_ApplicationInsights_BypassAjaxInstrumentation\";\nexport var SampleRate = \"sampleRate\";\nexport var ProcessLegacy = \"ProcessLegacy\";\nexport var HttpMethod = \"http.method\";\nexport var DEFAULT_BREEZE_ENDPOINT = \"https://dc.services.visualstudio.com\";\nexport var strNotSpecified = \"not_specified\";\nexport var strIkey = \"iKey\";","/*\n * Application Insights JavaScript SDK - Common, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { dataSanitizeString } from \"./Telemetry/Common/DataSanitizer\";\nimport { objForEachKey, isNullOrUndefined, toISOString } from \"@microsoft/applicationinsights-core-js\";\nimport { strNotSpecified, strIkey } from \"./Constants\";\n\nvar TelemetryItemCreator =\n/** @class */\nfunction () {\n function TelemetryItemCreator() {}\n /**\r\n * Create a telemetry item that the 1DS channel understands\r\n * @param item domain specific properties; part B\r\n * @param baseType telemetry item type. ie PageViewData\r\n * @param envelopeName name of the envelope. ie Microsoft.ApplicationInsights..PageView\r\n * @param customProperties user defined custom properties; part C\r\n * @param systemProperties system properties that are added to the context; part A\r\n * @returns ITelemetryItem that is sent to channel\r\n */\n\n\n TelemetryItemCreator.create = function (item, baseType, envelopeName, logger, customProperties, systemProperties) {\n envelopeName = dataSanitizeString(logger, envelopeName) || strNotSpecified;\n\n if (isNullOrUndefined(item) || isNullOrUndefined(baseType) || isNullOrUndefined(envelopeName)) {\n throw Error(\"Input doesn't contain all required fields\");\n }\n\n var iKey = \"\";\n\n if (item[strIkey]) {\n iKey = item[strIkey];\n delete item[strIkey];\n }\n\n var telemetryItem = {\n name: envelopeName,\n time: toISOString(new Date()),\n iKey: iKey,\n ext: systemProperties ? systemProperties : {},\n tags: [],\n data: {},\n baseType: baseType,\n baseData: item // Part B\n\n }; // Part C\n\n if (!isNullOrUndefined(customProperties)) {\n objForEachKey(customProperties, function (prop, value) {\n telemetryItem.data[prop] = value;\n });\n }\n\n return telemetryItem;\n };\n\n return TelemetryItemCreator;\n}();\n\nexport { TelemetryItemCreator };","/*\n * Application Insights JavaScript SDK - Common, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\n/**\r\n * Instances of Event represent structured event records that can be grouped and searched by their properties. Event data item also creates a metric of event count by name.\r\n */\nvar EventData =\n/** @class */\nfunction () {\n function EventData() {\n /**\r\n * Schema version\r\n */\n this.ver = 2;\n /**\r\n * Collection of custom properties.\r\n */\n\n this.properties = {};\n /**\r\n * Collection of custom measurements.\r\n */\n\n this.measurements = {};\n }\n\n return EventData;\n}();\n\nexport { EventData };","/*\n * Application Insights JavaScript SDK - Common, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\nimport { EventData } from \"../Interfaces/Contracts/Generated/EventData\";\nimport { dataSanitizeString, dataSanitizeProperties, dataSanitizeMeasurements } from \"./Common/DataSanitizer\";\nimport { strNotSpecified } from \"../Constants\";\n\nvar Event =\n/** @class */\nfunction (_super) {\n __extends(Event, _super);\n /**\r\n * Constructs a new instance of the EventTelemetry object\r\n */\n\n\n function Event(logger, name, properties, measurements) {\n var _this = _super.call(this) || this;\n\n _this.aiDataContract = {\n ver: 1\n /* Required */\n ,\n name: 1\n /* Required */\n ,\n properties: 0\n /* Default */\n ,\n measurements: 0\n /* Default */\n\n };\n _this.name = dataSanitizeString(logger, name) || strNotSpecified;\n _this.properties = dataSanitizeProperties(logger, properties);\n _this.measurements = dataSanitizeMeasurements(logger, measurements);\n return _this;\n }\n\n Event.envelopeType = \"Microsoft.ApplicationInsights.{0}.Event\";\n Event.dataType = \"EventData\";\n return Event;\n}(EventData);\n\nexport { Event };","/*\n * Application Insights JavaScript SDK - Common, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\nimport { MessageData } from \"../Interfaces/Contracts/Generated/MessageData\";\nimport { dataSanitizeMessage, dataSanitizeProperties, dataSanitizeMeasurements } from \"./Common/DataSanitizer\";\nimport { strNotSpecified } from \"../Constants\";\n\nvar Trace =\n/** @class */\nfunction (_super) {\n __extends(Trace, _super);\n /**\r\n * Constructs a new instance of the TraceTelemetry object\r\n */\n\n\n function Trace(logger, message, severityLevel, properties, measurements) {\n var _this = _super.call(this) || this;\n\n _this.aiDataContract = {\n ver: 1\n /* Required */\n ,\n message: 1\n /* Required */\n ,\n severityLevel: 0\n /* Default */\n ,\n properties: 0\n /* Default */\n\n };\n message = message || strNotSpecified;\n _this.message = dataSanitizeMessage(logger, message);\n _this.properties = dataSanitizeProperties(logger, properties);\n _this.measurements = dataSanitizeMeasurements(logger, measurements);\n\n if (severityLevel) {\n _this.severityLevel = severityLevel;\n }\n\n return _this;\n }\n\n Trace.envelopeType = \"Microsoft.ApplicationInsights.{0}.Message\";\n Trace.dataType = \"MessageData\";\n return Trace;\n}(MessageData);\n\nexport { Trace };","/*\n * Application Insights JavaScript SDK - Common, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\n/**\r\n * Instances of Message represent printf-like trace statements that are text-searched. Log4Net, NLog and other text-based log file entries are translated into intances of this type. The message does not have measurements.\r\n */\nvar MessageData =\n/** @class */\nfunction () {\n function MessageData() {\n /**\r\n * Schema version\r\n */\n this.ver = 2;\n /**\r\n * Collection of custom properties.\r\n */\n\n this.properties = {};\n /**\r\n * Collection of custom measurements.\r\n */\n\n this.measurements = {};\n }\n\n return MessageData;\n}();\n\nexport { MessageData };","/*\n * Application Insights JavaScript SDK - Common, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\n/**\r\n * An instance of the Metric item is a list of measurements (single data points) and/or aggregations.\r\n */\nvar MetricData =\n/** @class */\nfunction () {\n function MetricData() {\n /**\r\n * Schema version\r\n */\n this.ver = 2;\n /**\r\n * List of metrics. Only one metric in the list is currently supported by Application Insights storage. If multiple data points were sent only the first one will be used.\r\n */\n\n this.metrics = [];\n /**\r\n * Collection of custom properties.\r\n */\n\n this.properties = {};\n /**\r\n * Collection of custom measurements.\r\n */\n\n this.measurements = {};\n }\n\n return MetricData;\n}();\n\nexport { MetricData };","/*\n * Application Insights JavaScript SDK - Common, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { DataPointType } from \"./DataPointType\";\n/**\r\n * Metric data single measurement.\r\n */\n\nvar DataPoint =\n/** @class */\nfunction () {\n function DataPoint() {\n /**\r\n * Metric type. Single measurement or the aggregated value.\r\n */\n this.kind = DataPointType.Measurement;\n }\n\n return DataPoint;\n}();\n\nexport { DataPoint };","/*\n * Application Insights JavaScript SDK - Common, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\nimport { DataPoint as AIDataPoint } from \"../../Interfaces/Contracts/Generated/DataPoint\";\n\nvar DataPoint =\n/** @class */\nfunction (_super) {\n __extends(DataPoint, _super);\n\n function DataPoint() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\r\n * The data contract for serializing this object.\r\n */\n\n\n _this.aiDataContract = {\n name: 1\n /* Required */\n ,\n kind: 0\n /* Default */\n ,\n value: 1\n /* Required */\n ,\n count: 0\n /* Default */\n ,\n min: 0\n /* Default */\n ,\n max: 0\n /* Default */\n ,\n stdDev: 0\n /* Default */\n\n };\n return _this;\n }\n\n return DataPoint;\n}(AIDataPoint);\n\nexport { DataPoint };","/*\n * Application Insights JavaScript SDK - Common, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\nimport { MetricData } from \"../Interfaces/Contracts/Generated/MetricData\";\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\nimport { DataPoint } from \"./Common/DataPoint\";\nimport { strNotSpecified } from \"../Constants\";\n\nvar Metric =\n/** @class */\nfunction (_super) {\n __extends(Metric, _super);\n /**\r\n * Constructs a new instance of the MetricTelemetry object\r\n */\n\n\n function Metric(logger, name, value, count, min, max, stdDev, properties, measurements) {\n var _this = _super.call(this) || this;\n\n _this.aiDataContract = {\n ver: 1\n /* Required */\n ,\n metrics: 1\n /* Required */\n ,\n properties: 0\n /* Default */\n\n };\n var dataPoint = new DataPoint();\n dataPoint.count = count > 0 ? count : undefined;\n dataPoint.max = isNaN(max) || max === null ? undefined : max;\n dataPoint.min = isNaN(min) || min === null ? undefined : min;\n dataPoint.name = dataSanitizeString(logger, name) || strNotSpecified;\n dataPoint.value = value;\n dataPoint.stdDev = isNaN(stdDev) || stdDev === null ? undefined : stdDev;\n _this.metrics = [dataPoint];\n _this.properties = dataSanitizeProperties(logger, properties);\n _this.measurements = dataSanitizeMeasurements(logger, measurements);\n return _this;\n }\n\n Metric.envelopeType = \"Microsoft.ApplicationInsights.{0}.Metric\";\n Metric.dataType = \"MetricData\";\n return Metric;\n}(MetricData);\n\nexport { Metric };","/*\n * Application Insights JavaScript SDK - Common, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\"; // THIS FILE WAS AUTOGENERATED\n\nimport { EventData } from \"./EventData\";\n/**\r\n * An instance of PageView represents a generic action on a page like a button click. It is also the base type for PageView.\r\n */\n\nvar PageViewData =\n/** @class */\nfunction (_super) {\n __extends(PageViewData, _super);\n\n function PageViewData() {\n var _this = _super.call(this) || this;\n /**\r\n * Schema version\r\n */\n\n\n _this.ver = 2;\n /**\r\n * Collection of custom properties.\r\n */\n\n _this.properties = {};\n /**\r\n * Collection of custom measurements.\r\n */\n\n _this.measurements = {};\n return _this;\n }\n\n return PageViewData;\n}(EventData);\n\nexport { PageViewData };","/*\n * Application Insights JavaScript SDK - Common, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { arrForEach, isString } from \"@microsoft/applicationinsights-core-js\";\nexport function stringToBoolOrDefault(str, defaultValue) {\n if (defaultValue === void 0) {\n defaultValue = false;\n }\n\n if (str === undefined || str === null) {\n return defaultValue;\n }\n\n return str.toString().toLowerCase() === \"true\";\n}\n/**\r\n * Convert ms to c# time span format\r\n */\n\nexport function msToTimeSpan(totalms) {\n if (isNaN(totalms) || totalms < 0) {\n totalms = 0;\n }\n\n totalms = Math.round(totalms);\n var ms = \"\" + totalms % 1000;\n var sec = \"\" + Math.floor(totalms / 1000) % 60;\n var min = \"\" + Math.floor(totalms / (1000 * 60)) % 60;\n var hour = \"\" + Math.floor(totalms / (1000 * 60 * 60)) % 24;\n var days = Math.floor(totalms / (1000 * 60 * 60 * 24));\n ms = ms.length === 1 ? \"00\" + ms : ms.length === 2 ? \"0\" + ms : ms;\n sec = sec.length < 2 ? \"0\" + sec : sec;\n min = min.length < 2 ? \"0\" + min : min;\n hour = hour.length < 2 ? \"0\" + hour : hour;\n return (days > 0 ? days + \".\" : \"\") + hour + \":\" + min + \":\" + sec + \".\" + ms;\n}\nexport function getExtensionByName(extensions, identifier) {\n var extension = null;\n arrForEach(extensions, function (value) {\n if (value.identifier === identifier) {\n extension = value;\n return -1;\n }\n });\n return extension;\n}\nexport function isCrossOriginError(message, url, lineNumber, columnNumber, error) {\n return !error && isString(message) && (message === \"Script error.\" || message === \"Script error\");\n}","/*\n * Application Insights JavaScript SDK - Common, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\nimport { PageViewData } from \"../Interfaces/Contracts/Generated/PageViewData\";\nimport { dataSanitizeId, dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\nimport { msToTimeSpan } from \"../HelperFuncs\";\nimport { strNotSpecified } from \"../Constants\";\n\nvar PageView =\n/** @class */\nfunction (_super) {\n __extends(PageView, _super);\n /**\r\n * Constructs a new instance of the PageEventTelemetry object\r\n */\n\n\n function PageView(logger, name, url, durationMs, properties, measurements, id) {\n var _this = _super.call(this) || this;\n\n _this.aiDataContract = {\n ver: 1\n /* Required */\n ,\n name: 0\n /* Default */\n ,\n url: 0\n /* Default */\n ,\n duration: 0\n /* Default */\n ,\n properties: 0\n /* Default */\n ,\n measurements: 0\n /* Default */\n ,\n id: 0\n /* Default */\n\n };\n _this.id = dataSanitizeId(logger, id);\n _this.url = dataSanitizeUrl(logger, url);\n _this.name = dataSanitizeString(logger, name) || strNotSpecified;\n\n if (!isNaN(durationMs)) {\n _this.duration = msToTimeSpan(durationMs);\n }\n\n _this.properties = dataSanitizeProperties(logger, properties);\n _this.measurements = dataSanitizeMeasurements(logger, measurements);\n return _this;\n }\n\n PageView.envelopeType = \"Microsoft.ApplicationInsights.{0}.Pageview\";\n PageView.dataType = \"PageviewData\";\n return PageView;\n}(PageViewData);\n\nexport { PageView };","/*\n * Application Insights JavaScript SDK - Common, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\nimport { PageViewPerfData } from \"../Interfaces/Contracts/Generated/PageViewPerfData\";\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\nimport { strNotSpecified } from \"../Constants\";\n\nvar PageViewPerformance =\n/** @class */\nfunction (_super) {\n __extends(PageViewPerformance, _super);\n /**\r\n * Constructs a new instance of the PageEventTelemetry object\r\n */\n\n\n function PageViewPerformance(logger, name, url, unused, properties, measurements, cs4BaseData) {\n var _this = _super.call(this) || this;\n\n _this.aiDataContract = {\n ver: 1\n /* Required */\n ,\n name: 0\n /* Default */\n ,\n url: 0\n /* Default */\n ,\n duration: 0\n /* Default */\n ,\n perfTotal: 0\n /* Default */\n ,\n networkConnect: 0\n /* Default */\n ,\n sentRequest: 0\n /* Default */\n ,\n receivedResponse: 0\n /* Default */\n ,\n domProcessing: 0\n /* Default */\n ,\n properties: 0\n /* Default */\n ,\n measurements: 0\n /* Default */\n\n };\n _this.url = dataSanitizeUrl(logger, url);\n _this.name = dataSanitizeString(logger, name) || strNotSpecified;\n _this.properties = dataSanitizeProperties(logger, properties);\n _this.measurements = dataSanitizeMeasurements(logger, measurements);\n\n if (cs4BaseData) {\n _this.domProcessing = cs4BaseData.domProcessing;\n _this.duration = cs4BaseData.duration;\n _this.networkConnect = cs4BaseData.networkConnect;\n _this.perfTotal = cs4BaseData.perfTotal;\n _this.receivedResponse = cs4BaseData.receivedResponse;\n _this.sentRequest = cs4BaseData.sentRequest;\n }\n\n return _this;\n }\n\n PageViewPerformance.envelopeType = \"Microsoft.ApplicationInsights.{0}.PageviewPerformance\";\n PageViewPerformance.dataType = \"PageviewPerformanceData\";\n return PageViewPerformance;\n}(PageViewPerfData);\n\nexport { PageViewPerformance };","/*\n * Application Insights JavaScript SDK - Common, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\"; // THIS FILE WAS AUTOGENERATED\n\nimport { PageViewData } from \"./PageViewData\";\n/**\r\n * An instance of PageViewPerf represents: a page view with no performance data, a page view with performance data, or just the performance data of an earlier page request.\r\n */\n\nvar PageViewPerfData =\n/** @class */\nfunction (_super) {\n __extends(PageViewPerfData, _super);\n\n function PageViewPerfData() {\n var _this = _super.call(this) || this;\n /**\r\n * Schema version\r\n */\n\n\n _this.ver = 2;\n /**\r\n * Collection of custom properties.\r\n */\n\n _this.properties = {};\n /**\r\n * Collection of custom measurements.\r\n */\n\n _this.measurements = {};\n return _this;\n }\n\n return PageViewPerfData;\n}(PageViewData);\n\nexport { PageViewPerfData };","/*\n * Application Insights JavaScript SDK - Common, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n// THIS FILE WAS AUTOGENERATED\n\n/**\r\n * Stack frame information.\r\n */\nvar StackFrame =\n/** @class */\nfunction () {\n function StackFrame() {}\n\n return StackFrame;\n}();\n\nexport { StackFrame };","/*\n * Application Insights JavaScript SDK - Common, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\n/**\r\n * Exception details of the exception in a chain.\r\n */\nvar ExceptionDetails =\n/** @class */\nfunction () {\n function ExceptionDetails() {\n /**\r\n * Indicates if full exception stack is provided in the exception. The stack may be trimmed, such as in the case of a StackOverflow exception.\r\n */\n this.hasFullStack = true;\n /**\r\n * List of stack frames. Either stack or parsedStack should have a value.\r\n */\n\n this.parsedStack = [];\n }\n\n return ExceptionDetails;\n}();\n\nexport { ExceptionDetails };","/*\n * Application Insights JavaScript SDK - Common, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { __assignFn as __assign, __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\nimport { StackFrame } from \"../Interfaces/Contracts/Generated/StackFrame\";\nimport { ExceptionData } from \"../Interfaces/Contracts/Generated/ExceptionData\";\nimport { ExceptionDetails } from \"../Interfaces/Contracts/Generated/ExceptionDetails\";\nimport { dataSanitizeException, dataSanitizeMeasurements, dataSanitizeMessage, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\nimport { isNullOrUndefined, arrMap, isString, strTrim, isArray, isError, arrForEach, isObject, isFunction } from \"@microsoft/applicationinsights-core-js\";\nimport { strNotSpecified } from \"../Constants\";\nvar NoMethod = \"\";\nvar strError = \"error\";\nvar strStack = \"stack\";\nvar strStackDetails = \"stackDetails\";\nvar strErrorSrc = \"errorSrc\";\nvar strMessage = \"message\";\nvar strDescription = \"description\";\n\nfunction _stringify(value, convertToString) {\n var result = value;\n\n if (result && !isString(result)) {\n if (JSON && JSON.stringify) {\n result = JSON.stringify(value);\n\n if (convertToString && (!result || result === \"{}\")) {\n if (isFunction(value.toString)) {\n result = value.toString();\n } else {\n result = \"\" + value;\n }\n }\n } else {\n result = \"\" + value + \" - (Missing JSON.stringify)\";\n }\n }\n\n return result || \"\";\n}\n\nfunction _formatMessage(theEvent, errorType) {\n var evtMessage = theEvent;\n\n if (theEvent) {\n if (evtMessage && !isString(evtMessage)) {\n evtMessage = theEvent[strMessage] || theEvent[strDescription] || evtMessage;\n } // Make sure the message is a string\n\n\n if (evtMessage && !isString(evtMessage)) {\n // tslint:disable-next-line: prefer-conditional-expression\n evtMessage = _stringify(evtMessage, true);\n }\n\n if (theEvent[\"filename\"]) {\n // Looks like an event object with filename\n evtMessage = evtMessage + \" @\" + (theEvent[\"filename\"] || \"\") + \":\" + (theEvent[\"lineno\"] || \"?\") + \":\" + (theEvent[\"colno\"] || \"?\");\n }\n } // Automatically add the error type to the message if it does already appear to be present\n\n\n if (errorType && errorType !== \"String\" && errorType !== \"Object\" && errorType !== \"Error\" && (evtMessage || \"\").indexOf(errorType) === -1) {\n evtMessage = errorType + \": \" + evtMessage;\n }\n\n return evtMessage || \"\";\n}\n\nfunction _isExceptionDetailsInternal(value) {\n try {\n if (isObject(value)) {\n return \"hasFullStack\" in value && \"typeName\" in value;\n }\n } catch (e) {// This can happen with some native browser objects, but should not happen for the type we are checking for\n }\n\n return false;\n}\n\nfunction _isExceptionInternal(value) {\n try {\n if (isObject(value)) {\n return \"ver\" in value && \"exceptions\" in value && \"properties\" in value;\n }\n } catch (e) {// This can happen with some native browser objects, but should not happen for the type we are checking for\n }\n\n return false;\n}\n\nfunction _isStackDetails(details) {\n return details && details.src && isString(details.src) && details.obj && isArray(details.obj);\n}\n\nfunction _convertStackObj(errorStack) {\n var src = errorStack || \"\";\n\n if (!isString(src)) {\n if (isString(src[strStack])) {\n src = src[strStack];\n } else {\n src = \"\" + src;\n }\n }\n\n var items = src.split(\"\\n\");\n return {\n src: src,\n obj: items\n };\n}\n\nfunction _getOperaStack(errorMessage) {\n var stack = [];\n var lines = errorMessage.split(\"\\n\");\n\n for (var lp = 0; lp < lines.length; lp++) {\n var entry = lines[lp];\n\n if (lines[lp + 1]) {\n entry += \"@\" + lines[lp + 1];\n lp++;\n }\n\n stack.push(entry);\n }\n\n return {\n src: errorMessage,\n obj: stack\n };\n}\n\nfunction _getStackFromErrorObj(errorObj) {\n var details = null;\n\n if (errorObj) {\n try {\n /* Using bracket notation is support older browsers (IE 7/8 -- dont remember the version) that throw when using dot\r\n notation for undefined objects and we don't want to loose the error from being reported */\n if (errorObj[strStack]) {\n // Chrome/Firefox\n details = _convertStackObj(errorObj[strStack]);\n } else if (errorObj[strError] && errorObj[strError][strStack]) {\n // Edge error event provides the stack and error object\n details = _convertStackObj(errorObj[strError][strStack]);\n } else if (errorObj[\"exception\"] && errorObj.exception[strStack]) {\n details = _convertStackObj(errorObj.exception[strStack]);\n } else if (_isStackDetails(errorObj)) {\n details = errorObj;\n } else if (_isStackDetails(errorObj[strStackDetails])) {\n details = errorObj[strStackDetails];\n } else if (window && window[\"opera\"] && errorObj[strMessage]) {\n // Opera\n details = _getOperaStack(errorObj.message);\n } else if (isString(errorObj)) {\n details = _convertStackObj(errorObj);\n } else {\n var evtMessage = errorObj[strMessage] || errorObj[strDescription] || \"\";\n\n if (isString(errorObj[strErrorSrc])) {\n if (evtMessage) {\n evtMessage += \"\\n\";\n }\n\n evtMessage += \" from \" + errorObj[strErrorSrc];\n }\n\n if (evtMessage) {\n details = _convertStackObj(evtMessage);\n }\n }\n } catch (e) {\n // something unexpected happened so to avoid failing to report any error lets swallow the exception\n // and fallback to the callee/caller method\n details = _convertStackObj(e);\n }\n }\n\n return details || {\n src: \"\",\n obj: null\n };\n}\n\nfunction _formatStackTrace(stackDetails) {\n var stack = \"\";\n\n if (stackDetails) {\n if (stackDetails.obj) {\n arrForEach(stackDetails.obj, function (entry) {\n stack += entry + \"\\n\";\n });\n } else {\n stack = stackDetails.src || \"\";\n }\n }\n\n return stack;\n}\n\nfunction _parseStack(stack) {\n var parsedStack;\n var frames = stack.obj;\n\n if (frames && frames.length > 0) {\n parsedStack = [];\n var level_1 = 0;\n var totalSizeInBytes_1 = 0;\n arrForEach(frames, function (frame) {\n var theFrame = frame.toString();\n\n if (_StackFrame.regex.test(theFrame)) {\n var parsedFrame = new _StackFrame(theFrame, level_1++);\n totalSizeInBytes_1 += parsedFrame.sizeInBytes;\n parsedStack.push(parsedFrame);\n }\n }); // DP Constraint - exception parsed stack must be < 32KB\n // remove frames from the middle to meet the threshold\n\n var exceptionParsedStackThreshold = 32 * 1024;\n\n if (totalSizeInBytes_1 > exceptionParsedStackThreshold) {\n var left = 0;\n var right = parsedStack.length - 1;\n var size = 0;\n var acceptedLeft = left;\n var acceptedRight = right;\n\n while (left < right) {\n // check size\n var lSize = parsedStack[left].sizeInBytes;\n var rSize = parsedStack[right].sizeInBytes;\n size += lSize + rSize;\n\n if (size > exceptionParsedStackThreshold) {\n // remove extra frames from the middle\n var howMany = acceptedRight - acceptedLeft + 1;\n parsedStack.splice(acceptedLeft, howMany);\n break;\n } // update pointers\n\n\n acceptedLeft = left;\n acceptedRight = right;\n left++;\n right--;\n }\n }\n }\n\n return parsedStack;\n}\n\nfunction _getErrorType(errorType) {\n // Gets the Error Type by passing the constructor (used to get the true type of native error object).\n var typeName = \"\";\n\n if (errorType) {\n typeName = errorType.typeName || errorType.name || \"\";\n\n if (!typeName) {\n try {\n var funcNameRegex = /function (.{1,200})\\(/;\n var results = funcNameRegex.exec(errorType.constructor.toString());\n typeName = results && results.length > 1 ? results[1] : \"\";\n } catch (e) {// eslint-disable-next-line no-empty -- Ignoring any failures as nothing we can do\n }\n }\n }\n\n return typeName;\n}\n/**\r\n * Formats the provided errorObj for display and reporting, it may be a String, Object, integer or undefined depending on the browser.\r\n * @param errorObj The supplied errorObj\r\n */\n\n\nexport function _formatErrorCode(errorObj) {\n if (errorObj) {\n try {\n if (!isString(errorObj)) {\n var errorType = _getErrorType(errorObj);\n\n var result = _stringify(errorObj, false);\n\n if (!result || result === \"{}\") {\n if (errorObj[strError]) {\n // Looks like an MS Error Event\n errorObj = errorObj[strError];\n errorType = _getErrorType(errorObj);\n }\n\n result = _stringify(errorObj, true);\n }\n\n if (result.indexOf(errorType) !== 0 && errorType !== \"String\") {\n return errorType + \":\" + result;\n }\n\n return result;\n }\n } catch (e) {// eslint-disable-next-line no-empty -- Ignoring any failures as nothing we can do\n }\n } // Fallback to just letting the object format itself into a string\n\n\n return \"\" + (errorObj || \"\");\n}\n\nvar Exception =\n/** @class */\nfunction (_super) {\n __extends(Exception, _super);\n /**\r\n * Constructs a new instance of the ExceptionTelemetry object\r\n */\n\n\n function Exception(logger, exception, properties, measurements, severityLevel, id) {\n var _this = _super.call(this) || this;\n\n _this.aiDataContract = {\n ver: 1\n /* Required */\n ,\n exceptions: 1\n /* Required */\n ,\n severityLevel: 0\n /* Default */\n ,\n properties: 0\n /* Default */\n ,\n measurements: 0\n /* Default */\n\n };\n\n if (!_isExceptionInternal(exception)) {\n if (!properties) {\n properties = {};\n }\n\n _this.exceptions = [new _ExceptionDetails(logger, exception, properties)];\n _this.properties = dataSanitizeProperties(logger, properties);\n _this.measurements = dataSanitizeMeasurements(logger, measurements);\n\n if (severityLevel) {\n _this.severityLevel = severityLevel;\n }\n\n if (id) {\n _this.id = id;\n }\n } else {\n _this.exceptions = exception.exceptions;\n _this.properties = exception.properties;\n _this.measurements = exception.measurements;\n\n if (exception.severityLevel) {\n _this.severityLevel = exception.severityLevel;\n }\n\n if (exception.id) {\n _this.id = exception.id;\n }\n\n if (exception.problemGroup) {\n _this.problemGroup = exception.problemGroup;\n } // bool/int types, use isNullOrUndefined\n\n\n _this.ver = 2; // TODO: handle the CS\"4.0\" ==> breeze 2 conversion in a better way\n\n if (!isNullOrUndefined(exception.isManual)) {\n _this.isManual = exception.isManual;\n }\n }\n\n return _this;\n }\n\n Exception.CreateAutoException = function (message, url, lineNumber, columnNumber, error, evt, stack, errorSrc) {\n var errorType = _getErrorType(error || evt || message);\n\n return {\n message: _formatMessage(message, errorType),\n url: url,\n lineNumber: lineNumber,\n columnNumber: columnNumber,\n error: _formatErrorCode(error || evt || message),\n evt: _formatErrorCode(evt || message),\n typeName: errorType,\n stackDetails: _getStackFromErrorObj(stack || error || evt),\n errorSrc: errorSrc\n };\n };\n\n Exception.CreateFromInterface = function (logger, exception, properties, measurements) {\n var exceptions = exception.exceptions && arrMap(exception.exceptions, function (ex) {\n return _ExceptionDetails.CreateFromInterface(logger, ex);\n });\n var exceptionData = new Exception(logger, __assign(__assign({}, exception), {\n exceptions: exceptions\n }), properties, measurements);\n return exceptionData;\n };\n\n Exception.prototype.toInterface = function () {\n var _a = this,\n exceptions = _a.exceptions,\n properties = _a.properties,\n measurements = _a.measurements,\n severityLevel = _a.severityLevel,\n problemGroup = _a.problemGroup,\n id = _a.id,\n isManual = _a.isManual;\n\n var exceptionDetailsInterface = exceptions instanceof Array && arrMap(exceptions, function (exception) {\n return exception.toInterface();\n }) || undefined;\n return {\n ver: \"4.0\",\n exceptions: exceptionDetailsInterface,\n severityLevel: severityLevel,\n properties: properties,\n measurements: measurements,\n problemGroup: problemGroup,\n id: id,\n isManual: isManual\n };\n };\n /**\r\n * Creates a simple exception with 1 stack frame. Useful for manual constracting of exception.\r\n */\n\n\n Exception.CreateSimpleException = function (message, typeName, assembly, fileName, details, line) {\n return {\n exceptions: [{\n hasFullStack: true,\n message: message,\n stack: details,\n typeName: typeName\n }]\n };\n };\n\n Exception.envelopeType = \"Microsoft.ApplicationInsights.{0}.Exception\";\n Exception.dataType = \"ExceptionData\";\n Exception.formatError = _formatErrorCode;\n return Exception;\n}(ExceptionData);\n\nexport { Exception };\n\nvar _ExceptionDetails =\n/** @class */\nfunction (_super) {\n __extends(_ExceptionDetails, _super);\n\n function _ExceptionDetails(logger, exception, properties) {\n var _this = _super.call(this) || this;\n\n _this.aiDataContract = {\n id: 0\n /* Default */\n ,\n outerId: 0\n /* Default */\n ,\n typeName: 1\n /* Required */\n ,\n message: 1\n /* Required */\n ,\n hasFullStack: 0\n /* Default */\n ,\n stack: 0\n /* Default */\n ,\n parsedStack: 2\n /* Array */\n\n };\n\n if (!_isExceptionDetailsInternal(exception)) {\n var error = exception;\n var evt = error && error.evt;\n\n if (!isError(error)) {\n error = error[strError] || evt || error;\n }\n\n _this.typeName = dataSanitizeString(logger, _getErrorType(error)) || strNotSpecified;\n _this.message = dataSanitizeMessage(logger, _formatMessage(exception || error, _this.typeName)) || strNotSpecified;\n\n var stack = exception[strStackDetails] || _getStackFromErrorObj(exception);\n\n _this.parsedStack = _parseStack(stack);\n _this[strStack] = dataSanitizeException(logger, _formatStackTrace(stack));\n _this.hasFullStack = isArray(_this.parsedStack) && _this.parsedStack.length > 0;\n\n if (properties) {\n properties.typeName = properties.typeName || _this.typeName;\n }\n } else {\n _this.typeName = exception.typeName;\n _this.message = exception.message;\n _this[strStack] = exception[strStack];\n _this.parsedStack = exception.parsedStack;\n _this.hasFullStack = exception.hasFullStack;\n }\n\n return _this;\n }\n\n _ExceptionDetails.prototype.toInterface = function () {\n var parsedStack = this.parsedStack instanceof Array && arrMap(this.parsedStack, function (frame) {\n return frame.toInterface();\n });\n var exceptionDetailsInterface = {\n id: this.id,\n outerId: this.outerId,\n typeName: this.typeName,\n message: this.message,\n hasFullStack: this.hasFullStack,\n stack: this[strStack],\n parsedStack: parsedStack || undefined\n };\n return exceptionDetailsInterface;\n };\n\n _ExceptionDetails.CreateFromInterface = function (logger, exception) {\n var parsedStack = exception.parsedStack instanceof Array && arrMap(exception.parsedStack, function (frame) {\n return _StackFrame.CreateFromInterface(frame);\n }) || exception.parsedStack;\n var exceptionDetails = new _ExceptionDetails(logger, __assign(__assign({}, exception), {\n parsedStack: parsedStack\n }));\n return exceptionDetails;\n };\n\n return _ExceptionDetails;\n}(ExceptionDetails);\n\nexport { _ExceptionDetails };\n\nvar _StackFrame =\n/** @class */\nfunction (_super) {\n __extends(_StackFrame, _super);\n\n function _StackFrame(sourceFrame, level) {\n var _this = _super.call(this) || this;\n\n _this.sizeInBytes = 0;\n _this.aiDataContract = {\n level: 1\n /* Required */\n ,\n method: 1\n /* Required */\n ,\n assembly: 0\n /* Default */\n ,\n fileName: 0\n /* Default */\n ,\n line: 0\n /* Default */\n\n }; // Not converting this to isString() as typescript uses this logic to \"understand\" the different\n // types for the 2 different code paths\n\n if (typeof sourceFrame === \"string\") {\n var frame = sourceFrame;\n _this.level = level;\n _this.method = NoMethod;\n _this.assembly = strTrim(frame);\n _this.fileName = \"\";\n _this.line = 0;\n var matches = frame.match(_StackFrame.regex);\n\n if (matches && matches.length >= 5) {\n _this.method = strTrim(matches[2]) || _this.method;\n _this.fileName = strTrim(matches[4]);\n _this.line = parseInt(matches[5]) || 0;\n }\n } else {\n _this.level = sourceFrame.level;\n _this.method = sourceFrame.method;\n _this.assembly = sourceFrame.assembly;\n _this.fileName = sourceFrame.fileName;\n _this.line = sourceFrame.line;\n _this.sizeInBytes = 0;\n }\n\n _this.sizeInBytes += _this.method.length;\n _this.sizeInBytes += _this.fileName.length;\n _this.sizeInBytes += _this.assembly.length; // todo: these might need to be removed depending on how the back-end settles on their size calculation\n\n _this.sizeInBytes += _StackFrame.baseSize;\n _this.sizeInBytes += _this.level.toString().length;\n _this.sizeInBytes += _this.line.toString().length;\n return _this;\n }\n\n _StackFrame.CreateFromInterface = function (frame) {\n return new _StackFrame(frame, null\n /* level is available in frame interface */\n );\n };\n\n _StackFrame.prototype.toInterface = function () {\n return {\n level: this.level,\n method: this.method,\n assembly: this.assembly,\n fileName: this.fileName,\n line: this.line\n };\n }; // regex to match stack frames from ie/chrome/ff\n // methodName=$2, fileName=$4, lineNo=$5, column=$6\n\n\n _StackFrame.regex = /^([\\s]+at)?[\\s]{0,50}([^\\@\\()]+?)[\\s]{0,50}(\\@|\\()([^\\(\\n]+):([0-9]+):([0-9]+)(\\)?)$/;\n _StackFrame.baseSize = 58; // '{\"method\":\"\",\"level\":,\"assembly\":\"\",\"fileName\":\"\",\"line\":}'.length\n\n return _StackFrame;\n}(StackFrame);\n\nexport { _StackFrame };","/*\n * Application Insights JavaScript SDK - Common, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n// THIS FILE WAS AUTOGENERATED\n\n/**\r\n * Defines the level of severity for the event.\r\n */\nexport var SeverityLevel;\n\n(function (SeverityLevel) {\n SeverityLevel[SeverityLevel[\"Verbose\"] = 0] = \"Verbose\";\n SeverityLevel[SeverityLevel[\"Information\"] = 1] = \"Information\";\n SeverityLevel[SeverityLevel[\"Warning\"] = 2] = \"Warning\";\n SeverityLevel[SeverityLevel[\"Error\"] = 3] = \"Error\";\n SeverityLevel[SeverityLevel[\"Critical\"] = 4] = \"Critical\";\n})(SeverityLevel || (SeverityLevel = {}));","/*\n * Application Insights JavaScript SDK - Common, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\n/**\r\n * Type of storage to differentiate between local storage and session storage\r\n */\nexport var StorageType;\n\n(function (StorageType) {\n StorageType[StorageType[\"LocalStorage\"] = 0] = \"LocalStorage\";\n StorageType[StorageType[\"SessionStorage\"] = 1] = \"SessionStorage\";\n})(StorageType || (StorageType = {}));\n\nexport var DistributedTracingModes;\n\n(function (DistributedTracingModes) {\n /**\r\n * (Default) Send Application Insights correlation headers\r\n */\n DistributedTracingModes[DistributedTracingModes[\"AI\"] = 0] = \"AI\";\n /**\r\n * Send both W3C Trace Context headers and back-compatibility Application Insights headers\r\n */\n\n DistributedTracingModes[DistributedTracingModes[\"AI_AND_W3C\"] = 1] = \"AI_AND_W3C\";\n /**\r\n * Send W3C Trace Context headers\r\n */\n\n DistributedTracingModes[DistributedTracingModes[\"W3C\"] = 2] = \"W3C\";\n})(DistributedTracingModes || (DistributedTracingModes = {}));","/*\n * Application Insights JavaScript SDK - Common, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\n/**\r\n * An instance of Exception represents a handled or unhandled exception that occurred during execution of the monitored application.\r\n */\nvar ExceptionData =\n/** @class */\nfunction () {\n function ExceptionData() {\n /**\r\n * Schema version\r\n */\n this.ver = 2;\n /**\r\n * Exception chain - list of inner exceptions.\r\n */\n\n this.exceptions = [];\n /**\r\n * Collection of custom properties.\r\n */\n\n this.properties = {};\n /**\r\n * Collection of custom measurements.\r\n */\n\n this.measurements = {};\n }\n\n return ExceptionData;\n}();\n\nexport { ExceptionData };","/*\n * Application Insights JavaScript SDK - Common, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { dumpObj, getExceptionName, getGlobal, getGlobalInst, isNullOrUndefined, LoggingSeverity, objForEachKey, _InternalMessageId } from \"@microsoft/applicationinsights-core-js\";\nimport { StorageType } from \"./Enums\";\nvar _canUseLocalStorage = undefined;\nvar _canUseSessionStorage = undefined;\n/**\r\n * Gets the localStorage object if available\r\n * @return {Storage} - Returns the storage object if available else returns null\r\n */\n\nfunction _getLocalStorageObject() {\n if (utlCanUseLocalStorage()) {\n return _getVerifiedStorageObject(StorageType.LocalStorage);\n }\n\n return null;\n}\n/**\r\n * Tests storage object (localStorage or sessionStorage) to verify that it is usable\r\n * More details here: https://mathiasbynens.be/notes/localstorage-pattern\r\n * @param storageType Type of storage\r\n * @return {Storage} Returns storage object verified that it is usable\r\n */\n\n\nfunction _getVerifiedStorageObject(storageType) {\n try {\n if (isNullOrUndefined(getGlobal())) {\n return null;\n }\n\n var uid = new Date();\n var storage = getGlobalInst(storageType === StorageType.LocalStorage ? \"localStorage\" : \"sessionStorage\");\n storage.setItem(uid.toString(), uid.toString());\n var fail = storage.getItem(uid.toString()) !== uid.toString();\n storage.removeItem(uid.toString());\n\n if (!fail) {\n return storage;\n }\n } catch (exception) {// eslint-disable-next-line no-empty\n }\n\n return null;\n}\n/**\r\n * Gets the sessionStorage object if available\r\n * @return {Storage} - Returns the storage object if available else returns null\r\n */\n\n\nfunction _getSessionStorageObject() {\n if (utlCanUseSessionStorage()) {\n return _getVerifiedStorageObject(StorageType.SessionStorage);\n }\n\n return null;\n}\n\nexport function utlDisableStorage() {\n _canUseLocalStorage = false;\n _canUseSessionStorage = false;\n}\nexport function utlCanUseLocalStorage() {\n if (_canUseLocalStorage === undefined) {\n _canUseLocalStorage = !!_getVerifiedStorageObject(StorageType.LocalStorage);\n }\n\n return _canUseLocalStorage;\n}\nexport function utlGetLocalStorage(logger, name) {\n var storage = _getLocalStorageObject();\n\n if (storage !== null) {\n try {\n return storage.getItem(name);\n } catch (e) {\n _canUseLocalStorage = false;\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.BrowserCannotReadLocalStorage, \"Browser failed read of local storage. \" + getExceptionName(e), {\n exception: dumpObj(e)\n });\n }\n }\n\n return null;\n}\nexport function utlSetLocalStorage(logger, name, data) {\n var storage = _getLocalStorageObject();\n\n if (storage !== null) {\n try {\n storage.setItem(name, data);\n return true;\n } catch (e) {\n _canUseLocalStorage = false;\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.BrowserCannotWriteLocalStorage, \"Browser failed write to local storage. \" + getExceptionName(e), {\n exception: dumpObj(e)\n });\n }\n }\n\n return false;\n}\nexport function utlRemoveStorage(logger, name) {\n var storage = _getLocalStorageObject();\n\n if (storage !== null) {\n try {\n storage.removeItem(name);\n return true;\n } catch (e) {\n _canUseLocalStorage = false;\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.BrowserFailedRemovalFromLocalStorage, \"Browser failed removal of local storage item. \" + getExceptionName(e), {\n exception: dumpObj(e)\n });\n }\n }\n\n return false;\n}\nexport function utlCanUseSessionStorage() {\n if (_canUseSessionStorage === undefined) {\n _canUseSessionStorage = !!_getVerifiedStorageObject(StorageType.SessionStorage);\n }\n\n return _canUseSessionStorage;\n}\nexport function utlGetSessionStorageKeys() {\n var keys = [];\n\n if (utlCanUseSessionStorage()) {\n objForEachKey(getGlobalInst(\"sessionStorage\"), function (key) {\n keys.push(key);\n });\n }\n\n return keys;\n}\nexport function utlGetSessionStorage(logger, name) {\n var storage = _getSessionStorageObject();\n\n if (storage !== null) {\n try {\n return storage.getItem(name);\n } catch (e) {\n _canUseSessionStorage = false;\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.BrowserCannotReadSessionStorage, \"Browser failed read of session storage. \" + getExceptionName(e), {\n exception: dumpObj(e)\n });\n }\n }\n\n return null;\n}\nexport function utlSetSessionStorage(logger, name, data) {\n var storage = _getSessionStorageObject();\n\n if (storage !== null) {\n try {\n storage.setItem(name, data);\n return true;\n } catch (e) {\n _canUseSessionStorage = false;\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.BrowserCannotWriteSessionStorage, \"Browser failed write to session storage. \" + getExceptionName(e), {\n exception: dumpObj(e)\n });\n }\n }\n\n return false;\n}\nexport function utlRemoveSessionStorage(logger, name) {\n var storage = _getSessionStorageObject();\n\n if (storage !== null) {\n try {\n storage.removeItem(name);\n return true;\n } catch (e) {\n _canUseSessionStorage = false;\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.BrowserFailedRemovalFromSessionStorage, \"Browser failed removal of session storage item. \" + getExceptionName(e), {\n exception: dumpObj(e)\n });\n }\n }\n\n return false;\n}","/*\n * Application Insights JavaScript SDK - Common, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { isFunction, getDocument } from \"@microsoft/applicationinsights-core-js\";\nexport function createDomEvent(eventName) {\n var event = null;\n\n if (isFunction(Event)) {\n // Use Event constructor when available\n event = new Event(eventName);\n } else {\n // Event has no constructor in IE\n var doc = getDocument();\n\n if (doc && doc.createEvent) {\n event = doc.createEvent(\"Event\");\n event.initEvent(eventName, true, true);\n }\n }\n\n return event;\n}","/*\n * Application Insights JavaScript SDK - Common, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nexport var RequestHeaders = {\n requestContextHeader: \"Request-Context\",\n requestContextTargetKey: \"appId\",\n requestContextAppIdFormat: \"appId=cid-v1:\",\n requestIdHeader: \"Request-Id\",\n traceParentHeader: \"traceparent\",\n traceStateHeader: \"tracestate\",\n sdkContextHeader: \"Sdk-Context\",\n sdkContextHeaderAppIdRequest: \"appId\",\n requestContextHeaderLowerCase: \"request-context\"\n};","/*\n * Application Insights JavaScript SDK - Common, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { getDocument, isString } from \"@microsoft/applicationinsights-core-js\";\n\nvar _document = getDocument() || {};\n\nvar _htmlAnchorIdx = 0; // Use an array of temporary values as it's possible for multiple calls to parseUrl() will be called with different URLs\n// Using a cache size of 5 for now as it current depth usage is at least 2, so adding a minor buffer to handle future updates\n\nvar _htmlAnchorElement = [null, null, null, null, null];\nexport function urlParseUrl(url) {\n var anchorIdx = _htmlAnchorIdx;\n var anchorCache = _htmlAnchorElement;\n var tempAnchor = anchorCache[anchorIdx];\n\n if (!_document.createElement) {\n // Always create the temp instance if createElement is not available\n tempAnchor = {\n host: urlParseHost(url, true)\n };\n } else if (!anchorCache[anchorIdx]) {\n // Create and cache the unattached anchor instance\n tempAnchor = anchorCache[anchorIdx] = _document.createElement(\"a\");\n }\n\n tempAnchor.href = url; // Move the cache index forward\n\n anchorIdx++;\n\n if (anchorIdx >= anchorCache.length) {\n anchorIdx = 0;\n }\n\n _htmlAnchorIdx = anchorIdx;\n return tempAnchor;\n}\nexport function urlGetAbsoluteUrl(url) {\n var result;\n var a = urlParseUrl(url);\n\n if (a) {\n result = a.href;\n }\n\n return result;\n}\nexport function urlGetPathName(url) {\n var result;\n var a = urlParseUrl(url);\n\n if (a) {\n result = a.pathname;\n }\n\n return result;\n}\nexport function urlGetCompleteUrl(method, absoluteUrl) {\n if (method) {\n return method.toUpperCase() + \" \" + absoluteUrl;\n }\n\n return absoluteUrl;\n} // Fallback method to grab host from url if document.createElement method is not available\n\nexport function urlParseHost(url, inclPort) {\n var fullHost = urlParseFullHost(url, inclPort) || \"\";\n\n if (fullHost) {\n var match = fullHost.match(/(www[0-9]?\\.)?(.[^/:]+)(\\:[\\d]+)?/i);\n\n if (match != null && match.length > 3 && isString(match[2]) && match[2].length > 0) {\n return match[2] + (match[3] || \"\");\n }\n }\n\n return fullHost;\n}\nexport function urlParseFullHost(url, inclPort) {\n var result = null;\n\n if (url) {\n var match = url.match(/(\\w*):\\/\\/(.[^/:]+)(\\:[\\d]+)?/i);\n\n if (match != null && match.length > 2 && isString(match[2]) && match[2].length > 0) {\n result = match[2] || \"\";\n\n if (inclPort && match.length > 2) {\n var protocol = (match[1] || \"\").toLowerCase();\n var port = match[3] || \"\"; // IE includes the standard port so pass it off if it's the same as the protocol\n\n if (protocol === \"http\" && port === \":80\") {\n port = \"\";\n } else if (protocol === \"https\" && port === \":443\") {\n port = \"\";\n }\n\n result += port;\n }\n }\n }\n\n return result;\n}","/*\n * Application Insights JavaScript SDK - Common, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { getPerformance, getExceptionName as coreGetExceptionName, dumpObj, isNullOrUndefined, strTrim, random32 as _random, isArray, isError, isDate, newId, generateW3CId, toISOString, arrForEach, getIEVersion, attachEvent, dateNow, uaDisallowsSameSiteNone, disableCookies as coreDisableCookies, canUseCookies as coreCanUseCookies, getCookie as coreGetCookie, setCookie as coreSetCookie, deleteCookie as coreDeleteCookie, isBeaconsSupported } from \"@microsoft/applicationinsights-core-js\";\nimport { RequestHeaders } from \"./RequestResponseHeaders\";\nimport { dataSanitizeString } from \"./Telemetry/Common/DataSanitizer\";\nimport { createDomEvent } from \"./DomHelperFuncs\";\nimport { stringToBoolOrDefault, msToTimeSpan, isCrossOriginError, getExtensionByName } from \"./HelperFuncs\";\nimport { strNotSpecified } from \"./Constants\";\nimport { utlCanUseLocalStorage, utlCanUseSessionStorage, utlDisableStorage, utlGetSessionStorage, utlGetSessionStorageKeys, utlGetLocalStorage, utlRemoveSessionStorage, utlRemoveStorage, utlSetSessionStorage, utlSetLocalStorage } from \"./StorageHelperFuncs\";\nimport { urlGetAbsoluteUrl, urlGetCompleteUrl, urlGetPathName, urlParseFullHost, urlParseHost, urlParseUrl } from \"./UrlHelperFuncs\"; // listing only non-geo specific locations\n\nvar _internalEndpoints = [\"https://dc.services.visualstudio.com/v2/track\", \"https://breeze.aimon.applicationinsights.io/v2/track\", \"https://dc-int.services.visualstudio.com/v2/track\"];\nexport function isInternalApplicationInsightsEndpoint(endpointUrl) {\n return _internalEndpoints.indexOf(endpointUrl.toLowerCase()) !== -1;\n}\nexport var Util = {\n NotSpecified: strNotSpecified,\n createDomEvent: createDomEvent,\n disableStorage: utlDisableStorage,\n isInternalApplicationInsightsEndpoint: isInternalApplicationInsightsEndpoint,\n canUseLocalStorage: utlCanUseLocalStorage,\n getStorage: utlGetLocalStorage,\n setStorage: utlSetLocalStorage,\n removeStorage: utlRemoveStorage,\n canUseSessionStorage: utlCanUseSessionStorage,\n getSessionStorageKeys: utlGetSessionStorageKeys,\n getSessionStorage: utlGetSessionStorage,\n setSessionStorage: utlSetSessionStorage,\n removeSessionStorage: utlRemoveSessionStorage,\n disableCookies: coreDisableCookies,\n canUseCookies: coreCanUseCookies,\n disallowsSameSiteNone: uaDisallowsSameSiteNone,\n setCookie: coreSetCookie,\n stringToBoolOrDefault: stringToBoolOrDefault,\n getCookie: coreGetCookie,\n deleteCookie: coreDeleteCookie,\n trim: strTrim,\n newId: newId,\n random32: function random32() {\n return _random(true);\n },\n generateW3CId: generateW3CId,\n isArray: isArray,\n isError: isError,\n isDate: isDate,\n toISOStringForIE8: toISOString,\n getIEVersion: getIEVersion,\n msToTimeSpan: msToTimeSpan,\n isCrossOriginError: isCrossOriginError,\n dump: dumpObj,\n getExceptionName: coreGetExceptionName,\n addEventHandler: attachEvent,\n IsBeaconApiSupported: isBeaconsSupported,\n getExtension: getExtensionByName\n};\nexport var UrlHelper = {\n parseUrl: urlParseUrl,\n getAbsoluteUrl: urlGetAbsoluteUrl,\n getPathName: urlGetPathName,\n getCompleteUrl: urlGetCompleteUrl,\n parseHost: urlParseHost,\n parseFullHost: urlParseFullHost\n};\nexport var CorrelationIdHelper = {\n correlationIdPrefix: \"cid-v1:\",\n\n /**\r\n * Checks if a request url is not on a excluded domain list and if it is safe to add correlation headers.\r\n * Headers are always included if the current domain matches the request domain. If they do not match (CORS),\r\n * they are regex-ed across correlationHeaderDomains and correlationHeaderExcludedDomains to determine if headers are included.\r\n * Some environments don't give information on currentHost via window.location.host (e.g. Cordova). In these cases, the user must\r\n * manually supply domains to include correlation headers on. Else, no headers will be included at all.\r\n */\n canIncludeCorrelationHeader: function canIncludeCorrelationHeader(config, requestUrl, currentHost) {\n if (!requestUrl || config && config.disableCorrelationHeaders) {\n return false;\n }\n\n if (config && config.correlationHeaderExcludePatterns) {\n for (var i = 0; i < config.correlationHeaderExcludePatterns.length; i++) {\n if (config.correlationHeaderExcludePatterns[i].test(requestUrl)) {\n return false;\n }\n }\n }\n\n var requestHost = urlParseUrl(requestUrl).host.toLowerCase();\n\n if (requestHost && (requestHost.indexOf(\":443\") !== -1 || requestHost.indexOf(\":80\") !== -1)) {\n // [Bug #1260] IE can include the port even for http and https URLs so if present\n // try and parse it to remove if it matches the default protocol port\n requestHost = (urlParseFullHost(requestUrl, true) || \"\").toLowerCase();\n }\n\n if ((!config || !config.enableCorsCorrelation) && requestHost && requestHost !== currentHost) {\n return false;\n }\n\n var includedDomains = config && config.correlationHeaderDomains;\n\n if (includedDomains) {\n var matchExists_1;\n arrForEach(includedDomains, function (domain) {\n var regex = new RegExp(domain.toLowerCase().replace(/\\\\/g, \"\\\\\\\\\").replace(/\\./g, \"\\\\.\").replace(/\\*/g, \".*\"));\n matchExists_1 = matchExists_1 || regex.test(requestHost);\n });\n\n if (!matchExists_1) {\n return false;\n }\n }\n\n var excludedDomains = config && config.correlationHeaderExcludedDomains;\n\n if (!excludedDomains || excludedDomains.length === 0) {\n return true;\n }\n\n for (var i = 0; i < excludedDomains.length; i++) {\n var regex = new RegExp(excludedDomains[i].toLowerCase().replace(/\\\\/g, \"\\\\\\\\\").replace(/\\./g, \"\\\\.\").replace(/\\*/g, \".*\"));\n\n if (regex.test(requestHost)) {\n return false;\n }\n } // if we don't know anything about the requestHost, require the user to use included/excludedDomains.\n // Previously we always returned false for a falsy requestHost\n\n\n return requestHost && requestHost.length > 0;\n },\n\n /**\r\n * Combines target appId and target role name from response header.\r\n */\n getCorrelationContext: function getCorrelationContext(responseHeader) {\n if (responseHeader) {\n var correlationId = CorrelationIdHelper.getCorrelationContextValue(responseHeader, RequestHeaders.requestContextTargetKey);\n\n if (correlationId && correlationId !== CorrelationIdHelper.correlationIdPrefix) {\n return correlationId;\n }\n }\n },\n\n /**\r\n * Gets key from correlation response header\r\n */\n getCorrelationContextValue: function getCorrelationContextValue(responseHeader, key) {\n if (responseHeader) {\n var keyValues = responseHeader.split(\",\");\n\n for (var i = 0; i < keyValues.length; ++i) {\n var keyValue = keyValues[i].split(\"=\");\n\n if (keyValue.length === 2 && keyValue[0] === key) {\n return keyValue[1];\n }\n }\n }\n }\n};\nexport function AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName) {\n var target,\n name = commandName,\n data = commandName;\n\n if (absoluteUrl && absoluteUrl.length > 0) {\n var parsedUrl = urlParseUrl(absoluteUrl);\n target = parsedUrl.host;\n\n if (!name) {\n if (parsedUrl.pathname != null) {\n var pathName = parsedUrl.pathname.length === 0 ? \"/\" : parsedUrl.pathname;\n\n if (pathName.charAt(0) !== \"/\") {\n pathName = \"/\" + pathName;\n }\n\n data = parsedUrl.pathname;\n name = dataSanitizeString(logger, method ? method + \" \" + pathName : pathName);\n } else {\n name = dataSanitizeString(logger, absoluteUrl);\n }\n }\n } else {\n target = commandName;\n name = commandName;\n }\n\n return {\n target: target,\n name: name,\n data: data\n };\n}\nexport function dateTimeUtilsNow() {\n // returns the window or webworker performance object\n var perf = getPerformance();\n\n if (perf && perf.now && perf.timing) {\n var now = perf.now() + perf.timing.navigationStart; // Known issue with IE where this calculation can be negative, so if it is then ignore and fallback\n\n if (now > 0) {\n return now;\n }\n }\n\n return dateNow();\n}\nexport function dateTimeUtilsDuration(start, end) {\n var result = null;\n\n if (start !== 0 && end !== 0 && !isNullOrUndefined(start) && !isNullOrUndefined(end)) {\n result = end - start;\n }\n\n return result;\n}\n/**\r\n * A utility class that helps getting time related parameters\r\n */\n\nexport var DateTimeUtils = {\n Now: dateTimeUtilsNow,\n GetDuration: dateTimeUtilsDuration\n};","/*\n * Application Insights JavaScript SDK - Common, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\nimport { AjaxHelperParseDependencyPath } from \"../Util\";\nimport { RemoteDependencyData as GeneratedRemoteDependencyData } from \"../Interfaces/Contracts/Generated/RemoteDependencyData\";\nimport { msToTimeSpan } from \"../HelperFuncs\";\n\nvar RemoteDependencyData =\n/** @class */\nfunction (_super) {\n __extends(RemoteDependencyData, _super);\n /**\r\n * Constructs a new instance of the RemoteDependencyData object\r\n */\n\n\n function RemoteDependencyData(logger, id, absoluteUrl, commandName, value, success, resultCode, method, requestAPI, correlationContext, properties, measurements) {\n if (requestAPI === void 0) {\n requestAPI = \"Ajax\";\n }\n\n var _this = _super.call(this) || this;\n\n _this.aiDataContract = {\n id: 1\n /* Required */\n ,\n ver: 1\n /* Required */\n ,\n name: 0\n /* Default */\n ,\n resultCode: 0\n /* Default */\n ,\n duration: 0\n /* Default */\n ,\n success: 0\n /* Default */\n ,\n data: 0\n /* Default */\n ,\n target: 0\n /* Default */\n ,\n type: 0\n /* Default */\n ,\n properties: 0\n /* Default */\n ,\n measurements: 0\n /* Default */\n ,\n kind: 0\n /* Default */\n ,\n value: 0\n /* Default */\n ,\n count: 0\n /* Default */\n ,\n min: 0\n /* Default */\n ,\n max: 0\n /* Default */\n ,\n stdDev: 0\n /* Default */\n ,\n dependencyKind: 0\n /* Default */\n ,\n dependencySource: 0\n /* Default */\n ,\n commandName: 0\n /* Default */\n ,\n dependencyTypeName: 0\n /* Default */\n\n };\n _this.id = id;\n _this.duration = msToTimeSpan(value);\n _this.success = success;\n _this.resultCode = resultCode + \"\";\n _this.type = dataSanitizeString(logger, requestAPI);\n var dependencyFields = AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName);\n _this.data = dataSanitizeUrl(logger, commandName) || dependencyFields.data; // get a value from hosturl if commandName not available\n\n _this.target = dataSanitizeString(logger, dependencyFields.target);\n\n if (correlationContext) {\n _this.target = \"\".concat(_this.target, \" | \").concat(correlationContext);\n }\n\n _this.name = dataSanitizeString(logger, dependencyFields.name);\n _this.properties = dataSanitizeProperties(logger, properties);\n _this.measurements = dataSanitizeMeasurements(logger, measurements);\n return _this;\n }\n\n RemoteDependencyData.envelopeType = \"Microsoft.ApplicationInsights.{0}.RemoteDependency\";\n RemoteDependencyData.dataType = \"RemoteDependencyData\";\n return RemoteDependencyData;\n}(GeneratedRemoteDependencyData);\n\nexport { RemoteDependencyData };","/*\n * Application Insights JavaScript SDK - Common, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\n/**\r\n * An instance of Remote Dependency represents an interaction of the monitored component with a remote component/service like SQL or an HTTP endpoint.\r\n */\nvar RemoteDependencyData =\n/** @class */\nfunction () {\n function RemoteDependencyData() {\n /**\r\n * Schema version\r\n */\n this.ver = 2;\n /**\r\n * Indication of successful or unsuccessful call.\r\n */\n\n this.success = true;\n /**\r\n * Collection of custom properties.\r\n */\n\n this.properties = {};\n /**\r\n * Collection of custom measurements.\r\n */\n\n this.measurements = {};\n }\n\n return RemoteDependencyData;\n}();\n\nexport { RemoteDependencyData };","/*\n * Application Insights JavaScript SDK - Web Analytics, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { dateTimeUtilsDuration } from \"@microsoft/applicationinsights-common\";\nimport { LoggingSeverity, _InternalMessageId, getDocument, getLocation, arrForEach, isNullOrUndefined, getExceptionName, dumpObj } from \"@microsoft/applicationinsights-core-js\";\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\n/**\r\n * Class encapsulates sending page views and page view performance telemetry.\r\n */\n\nvar PageViewManager =\n/** @class */\nfunction () {\n function PageViewManager(appInsights, overridePageViewDuration, core, pageViewPerformanceManager) {\n dynamicProto(PageViewManager, this, function (_self) {\n var intervalHandle = null;\n var itemQueue = [];\n var pageViewPerformanceSent = false;\n\n var _logger;\n\n if (core) {\n _logger = core.logger;\n }\n\n function _flushChannels() {\n if (core) {\n arrForEach(core.getTransmissionControls(), function (queues) {\n arrForEach(queues, function (q) {\n return q.flush(true);\n });\n });\n }\n }\n\n function _addQueue(cb) {\n itemQueue.push(cb);\n\n if (!intervalHandle) {\n intervalHandle = setInterval(function () {\n var allItems = itemQueue.slice(0);\n var doFlush = false;\n itemQueue = [];\n arrForEach(allItems, function (item) {\n if (!item()) {\n // Not processed so rescheduled\n itemQueue.push(item);\n } else {\n doFlush = true;\n }\n });\n\n if (itemQueue.length === 0) {\n clearInterval(intervalHandle);\n intervalHandle = null;\n }\n\n if (doFlush) {\n // We process at least one item so flush the queue\n _flushChannels();\n }\n }, 100);\n }\n }\n\n _self.trackPageView = function (pageView, customProperties) {\n var name = pageView.name;\n\n if (isNullOrUndefined(name) || typeof name !== \"string\") {\n var doc = getDocument();\n name = pageView.name = doc && doc.title || \"\";\n }\n\n var uri = pageView.uri;\n\n if (isNullOrUndefined(uri) || typeof uri !== \"string\") {\n var location_1 = getLocation();\n uri = pageView.uri = location_1 && location_1.href || \"\";\n } // case 1a. if performance timing is not supported by the browser, send the page view telemetry with the duration provided by the user. If the user\n // do not provide the duration, set duration to undefined\n // Also this is case 4\n\n\n if (!pageViewPerformanceManager.isPerformanceTimingSupported()) {\n appInsights.sendPageViewInternal(pageView, customProperties);\n\n _flushChannels(); // no navigation timing (IE 8, iOS Safari 8.4, Opera Mini 8 - see http://caniuse.com/#feat=nav-timing)\n\n\n _logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.NavigationTimingNotSupported, \"trackPageView: navigation timing API used for calculation of page duration is not supported in this browser. This page view will be collected without duration and timing info.\");\n\n return;\n }\n\n var pageViewSent = false;\n var customDuration; // if the performance timing is supported by the browser, calculate the custom duration\n\n var start = pageViewPerformanceManager.getPerformanceTiming().navigationStart;\n\n if (start > 0) {\n customDuration = dateTimeUtilsDuration(start, +new Date());\n\n if (!pageViewPerformanceManager.shouldCollectDuration(customDuration)) {\n customDuration = undefined;\n }\n } // if the user has provided duration, send a page view telemetry with the provided duration. Otherwise, if\n // overridePageViewDuration is set to true, send a page view telemetry with the custom duration calculated earlier\n\n\n var duration;\n\n if (!isNullOrUndefined(customProperties) && !isNullOrUndefined(customProperties.duration)) {\n duration = customProperties.duration;\n }\n\n if (overridePageViewDuration || !isNaN(duration)) {\n if (isNaN(duration)) {\n // case 3\n if (!customProperties) {\n customProperties = {};\n }\n\n customProperties[\"duration\"] = customDuration;\n } // case 2\n\n\n appInsights.sendPageViewInternal(pageView, customProperties);\n\n _flushChannels();\n\n pageViewSent = true;\n } // now try to send the page view performance telemetry\n\n\n var maxDurationLimit = 60000;\n\n if (!customProperties) {\n customProperties = {};\n } // Queue the event for processing\n\n\n _addQueue(function () {\n var processed = false;\n\n try {\n if (pageViewPerformanceManager.isPerformanceTimingDataReady()) {\n processed = true;\n var pageViewPerformance = {\n name: name,\n uri: uri\n };\n pageViewPerformanceManager.populatePageViewPerformanceEvent(pageViewPerformance);\n\n if (!pageViewPerformance.isValid && !pageViewSent) {\n // If navigation timing gives invalid numbers, then go back to \"override page view duration\" mode.\n // That's the best value we can get that makes sense.\n customProperties[\"duration\"] = customDuration;\n appInsights.sendPageViewInternal(pageView, customProperties);\n } else {\n if (!pageViewSent) {\n customProperties[\"duration\"] = pageViewPerformance.durationMs;\n appInsights.sendPageViewInternal(pageView, customProperties);\n }\n\n if (!pageViewPerformanceSent) {\n appInsights.sendPageViewPerformanceInternal(pageViewPerformance, customProperties);\n pageViewPerformanceSent = true;\n }\n }\n } else if (start > 0 && dateTimeUtilsDuration(start, +new Date()) > maxDurationLimit) {\n // if performance timings are not ready but we exceeded the maximum duration limit, just log a page view telemetry\n // with the maximum duration limit. Otherwise, keep waiting until performance timings are ready\n processed = true;\n\n if (!pageViewSent) {\n customProperties[\"duration\"] = maxDurationLimit;\n appInsights.sendPageViewInternal(pageView, customProperties);\n }\n }\n } catch (e) {\n _logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackPVFailedCalc, \"trackPageView failed on page load calculation: \" + getExceptionName(e), {\n exception: dumpObj(e)\n });\n }\n\n return processed;\n });\n };\n });\n } // Removed Stub for PageViewManager.prototype.trackPageView.\n\n\n return PageViewManager;\n}();\n\nexport { PageViewManager };","/*\n * Application Insights JavaScript SDK - Web Analytics, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { utlCanUseSessionStorage, utlGetSessionStorage, utlRemoveSessionStorage, utlSetSessionStorage } from \"@microsoft/applicationinsights-common\";\nimport { hasJSON, getJSON, dateNow, dumpObj, throwError } from \"@microsoft/applicationinsights-core-js\";\n/**\r\n * Used to track page visit durations\r\n */\n\nvar PageVisitTimeManager =\n/** @class */\nfunction () {\n /**\r\n * Creates a new instance of PageVisitTimeManager\r\n * @param pageVisitTimeTrackingHandler Delegate that will be called to send telemetry data to AI (when trackPreviousPageVisit is called)\r\n * @returns {}\r\n */\n function PageVisitTimeManager(logger, pageVisitTimeTrackingHandler) {\n this.prevPageVisitDataKeyName = \"prevPageVisitData\";\n this.pageVisitTimeTrackingHandler = pageVisitTimeTrackingHandler;\n this._logger = logger;\n }\n /**\r\n * Tracks the previous page visit time telemetry (if exists) and starts timing of new page visit time\r\n * @param currentPageName Name of page to begin timing for visit duration\r\n * @param currentPageUrl Url of page to begin timing for visit duration\r\n */\n\n\n PageVisitTimeManager.prototype.trackPreviousPageVisit = function (currentPageName, currentPageUrl) {\n try {\n // Restart timer for new page view\n var prevPageVisitTimeData = this.restartPageVisitTimer(currentPageName, currentPageUrl); // If there was a page already being timed, track the visit time for it now.\n\n if (prevPageVisitTimeData) {\n this.pageVisitTimeTrackingHandler(prevPageVisitTimeData.pageName, prevPageVisitTimeData.pageUrl, prevPageVisitTimeData.pageVisitTime);\n }\n } catch (e) {\n this._logger.warnToConsole(\"Auto track page visit time failed, metric will not be collected: \" + dumpObj(e));\n }\n };\n /**\r\n * Stops timing of current page (if exists) and starts timing for duration of visit to pageName\r\n * @param pageName Name of page to begin timing visit duration\r\n * @returns {PageVisitData} Page visit data (including duration) of pageName from last call to start or restart, if exists. Null if not.\r\n */\n\n\n PageVisitTimeManager.prototype.restartPageVisitTimer = function (pageName, pageUrl) {\n try {\n var prevPageVisitData = this.stopPageVisitTimer();\n this.startPageVisitTimer(pageName, pageUrl);\n return prevPageVisitData;\n } catch (e) {\n this._logger.warnToConsole(\"Call to restart failed: \" + dumpObj(e));\n\n return null;\n }\n };\n /**\r\n * Starts timing visit duration of pageName\r\n * @param pageName\r\n * @returns {}\r\n */\n\n\n PageVisitTimeManager.prototype.startPageVisitTimer = function (pageName, pageUrl) {\n try {\n if (utlCanUseSessionStorage()) {\n if (utlGetSessionStorage(this._logger, this.prevPageVisitDataKeyName) != null) {\n throwError(\"Cannot call startPageVisit consecutively without first calling stopPageVisit\");\n }\n\n var currPageVisitData = new PageVisitData(pageName, pageUrl);\n var currPageVisitDataStr = getJSON().stringify(currPageVisitData);\n utlSetSessionStorage(this._logger, this.prevPageVisitDataKeyName, currPageVisitDataStr);\n }\n } catch (e) {\n // TODO: Remove this catch in next phase, since if start is called twice in a row the exception needs to be propagated out\n this._logger.warnToConsole(\"Call to start failed: \" + dumpObj(e));\n }\n };\n /**\r\n * Stops timing of current page, if exists.\r\n * @returns {PageVisitData} Page visit data (including duration) of pageName from call to start, if exists. Null if not.\r\n */\n\n\n PageVisitTimeManager.prototype.stopPageVisitTimer = function () {\n try {\n if (utlCanUseSessionStorage()) {\n // Define end time of page's visit\n var pageVisitEndTime = dateNow(); // Try to retrieve page name and start time from session storage\n\n var pageVisitDataJsonStr = utlGetSessionStorage(this._logger, this.prevPageVisitDataKeyName);\n\n if (pageVisitDataJsonStr && hasJSON()) {\n // if previous page data exists, set end time of visit\n var prevPageVisitData = getJSON().parse(pageVisitDataJsonStr);\n prevPageVisitData.pageVisitTime = pageVisitEndTime - prevPageVisitData.pageVisitStartTime; // Remove data from storage since we already used it\n\n utlRemoveSessionStorage(this._logger, this.prevPageVisitDataKeyName); // Return page visit data\n\n return prevPageVisitData;\n } else {\n return null;\n }\n }\n\n return null;\n } catch (e) {\n this._logger.warnToConsole(\"Stop page visit timer failed: \" + dumpObj(e));\n\n return null;\n }\n };\n\n return PageVisitTimeManager;\n}();\n\nexport { PageVisitTimeManager };\n\nvar PageVisitData =\n/** @class */\nfunction () {\n function PageVisitData(pageName, pageUrl) {\n this.pageVisitStartTime = dateNow();\n this.pageName = pageName;\n this.pageUrl = pageUrl;\n }\n\n return PageVisitData;\n}();\n\nexport { PageVisitData };","/*\n * Application Insights JavaScript SDK - Web Analytics, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { dateTimeUtilsDuration, msToTimeSpan } from \"@microsoft/applicationinsights-common\";\nimport { LoggingSeverity, _InternalMessageId, getNavigator, getPerformance } from \"@microsoft/applicationinsights-core-js\";\n/**\r\n * Class encapsulates sending page view performance telemetry.\r\n */\n\nvar PageViewPerformanceManager =\n/** @class */\nfunction () {\n function PageViewPerformanceManager(core) {\n this.MAX_DURATION_ALLOWED = 3600000; // 1h\n\n if (core) {\n this._logger = core.logger;\n }\n }\n\n PageViewPerformanceManager.prototype.populatePageViewPerformanceEvent = function (pageViewPerformance) {\n pageViewPerformance.isValid = false;\n /*\r\n * http://www.w3.org/TR/navigation-timing/#processing-model\r\n * |-navigationStart\r\n * | |-connectEnd\r\n * | ||-requestStart\r\n * | || |-responseStart\r\n * | || | |-responseEnd\r\n * | || | |\r\n * | || | | |-loadEventEnd\r\n * |---network---||---request---|---response---|---dom---|\r\n * |--------------------------total----------------------|\r\n *\r\n * total = The difference between the load event of the current document is completed and the first recorded timestamp of the performance entry : https://developer.mozilla.org/en-US/docs/Web/Performance/Navigation_and_resource_timings#duration\r\n * network = Redirect time + App Cache + DNS lookup time + TCP connection time\r\n * request = Request time : https://developer.mozilla.org/en-US/docs/Web/Performance/Navigation_and_resource_timings#request_time\r\n * response = Response time\r\n * dom = Document load time : https://html.spec.whatwg.org/multipage/dom.html#document-load-timing-info\r\n * = Document processing time : https://developers.google.com/web/fundamentals/performance/navigation-and-resource-timing/#document_processing\r\n * + Loading time : https://developers.google.com/web/fundamentals/performance/navigation-and-resource-timing/#loading\r\n */\n\n var navigationTiming = this.getPerformanceNavigationTiming();\n var timing = this.getPerformanceTiming();\n var total = 0;\n var network = 0;\n var request = 0;\n var response = 0;\n var dom = 0;\n\n if (navigationTiming || timing) {\n if (navigationTiming) {\n total = navigationTiming.duration;\n /**\r\n * support both cases:\r\n * - startTime is always zero: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigationTiming\r\n * - for older browsers where the startTime is not zero\r\n */\n\n network = navigationTiming.startTime === 0 ? navigationTiming.connectEnd : dateTimeUtilsDuration(navigationTiming.startTime, navigationTiming.connectEnd);\n request = dateTimeUtilsDuration(navigationTiming.requestStart, navigationTiming.responseStart);\n response = dateTimeUtilsDuration(navigationTiming.responseStart, navigationTiming.responseEnd);\n dom = dateTimeUtilsDuration(navigationTiming.responseEnd, navigationTiming.loadEventEnd);\n } else {\n total = dateTimeUtilsDuration(timing.navigationStart, timing.loadEventEnd);\n network = dateTimeUtilsDuration(timing.navigationStart, timing.connectEnd);\n request = dateTimeUtilsDuration(timing.requestStart, timing.responseStart);\n response = dateTimeUtilsDuration(timing.responseStart, timing.responseEnd);\n dom = dateTimeUtilsDuration(timing.responseEnd, timing.loadEventEnd);\n }\n\n if (total === 0) {\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.ErrorPVCalc, \"error calculating page view performance.\", {\n total: total,\n network: network,\n request: request,\n response: response,\n dom: dom\n });\n } else if (!this.shouldCollectDuration(total, network, request, response, dom)) {\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.InvalidDurationValue, \"Invalid page load duration value. Browser perf data won't be sent.\", {\n total: total,\n network: network,\n request: request,\n response: response,\n dom: dom\n });\n } else if (total < Math.floor(network) + Math.floor(request) + Math.floor(response) + Math.floor(dom)) {\n // some browsers may report individual components incorrectly so that the sum of the parts will be bigger than total PLT\n // in this case, don't report client performance from this page\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.ClientPerformanceMathError, \"client performance math error.\", {\n total: total,\n network: network,\n request: request,\n response: response,\n dom: dom\n });\n } else {\n pageViewPerformance.durationMs = total; // // convert to timespans\n\n pageViewPerformance.perfTotal = pageViewPerformance.duration = msToTimeSpan(total);\n pageViewPerformance.networkConnect = msToTimeSpan(network);\n pageViewPerformance.sentRequest = msToTimeSpan(request);\n pageViewPerformance.receivedResponse = msToTimeSpan(response);\n pageViewPerformance.domProcessing = msToTimeSpan(dom);\n pageViewPerformance.isValid = true;\n }\n }\n };\n\n PageViewPerformanceManager.prototype.getPerformanceTiming = function () {\n if (this.isPerformanceTimingSupported()) {\n return getPerformance().timing;\n }\n\n return null;\n };\n\n PageViewPerformanceManager.prototype.getPerformanceNavigationTiming = function () {\n if (this.isPerformanceNavigationTimingSupported()) {\n return getPerformance().getEntriesByType(\"navigation\")[0];\n }\n\n return null;\n };\n /**\r\n * Returns true is window PerformanceNavigationTiming API is supported, false otherwise.\r\n */\n\n\n PageViewPerformanceManager.prototype.isPerformanceNavigationTimingSupported = function () {\n var perf = getPerformance();\n return perf && perf.getEntriesByType && perf.getEntriesByType(\"navigation\").length > 0;\n };\n /**\r\n * Returns true is window performance timing API is supported, false otherwise.\r\n */\n\n\n PageViewPerformanceManager.prototype.isPerformanceTimingSupported = function () {\n var perf = getPerformance();\n return perf && perf.timing;\n };\n /**\r\n * As page loads different parts of performance timing numbers get set. When all of them are set we can report it.\r\n * Returns true if ready, false otherwise.\r\n */\n\n\n PageViewPerformanceManager.prototype.isPerformanceTimingDataReady = function () {\n var perf = getPerformance();\n var timing = perf ? perf.timing : 0;\n return timing && timing.domainLookupStart > 0 && timing.navigationStart > 0 && timing.responseStart > 0 && timing.requestStart > 0 && timing.loadEventEnd > 0 && timing.responseEnd > 0 && timing.connectEnd > 0 && timing.domLoading > 0;\n };\n /**\r\n * This method tells if given durations should be excluded from collection.\r\n */\n\n\n PageViewPerformanceManager.prototype.shouldCollectDuration = function () {\n var durations = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n durations[_i] = arguments[_i];\n }\n\n var _navigator = getNavigator() || {}; // a full list of Google crawlers user agent strings - https://support.google.com/webmasters/answer/1061943?hl=en\n\n\n var botAgentNames = [\"googlebot\", \"adsbot-google\", \"apis-google\", \"mediapartners-google\"];\n var userAgent = _navigator.userAgent;\n var isGoogleBot = false;\n\n if (userAgent) {\n for (var i = 0; i < botAgentNames.length; i++) {\n isGoogleBot = isGoogleBot || userAgent.toLowerCase().indexOf(botAgentNames[i]) !== -1;\n }\n }\n\n if (isGoogleBot) {\n // Don't report durations for GoogleBot, it is returning invalid values in performance.timing API.\n return false;\n } else {\n // for other page views, don't report if it's outside of a reasonable range\n for (var i = 0; i < durations.length; i++) {\n if (durations[i] < 0 || durations[i] >= this.MAX_DURATION_ALLOWED) {\n return false;\n }\n }\n }\n\n return true;\n };\n\n return PageViewPerformanceManager;\n}();\n\nexport { PageViewPerformanceManager };","/*\n * Application Insights JavaScript SDK - Web Analytics, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\n/**\r\n * ApplicationInsights.ts\r\n * @copyright Microsoft 2018\r\n */\nimport { __assignFn as __assign, __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\nimport { PageViewPerformance, PageView, RemoteDependencyData, Event as EventTelemetry, TelemetryItemCreator, Metric, Exception, SeverityLevel, Trace, dateTimeUtilsDuration, PropertiesPluginIdentifier, AnalyticsPluginIdentifier, stringToBoolOrDefault, createDomEvent, strNotSpecified, isCrossOriginError, utlDisableStorage, dataSanitizeString } from \"@microsoft/applicationinsights-common\";\nimport { BaseTelemetryPlugin, LoggingSeverity, _InternalMessageId, getWindow, getDocument, getHistory, getLocation, doPerf, objForEachKey, isString, isFunction, isNullOrUndefined, arrForEach, generateW3CId, dumpObj, getExceptionName, safeGetCookieMgr } from \"@microsoft/applicationinsights-core-js\";\nimport { PageViewManager } from \"./Telemetry/PageViewManager\";\nimport { PageVisitTimeManager } from \"./Telemetry/PageVisitTimeManager\";\nimport { PageViewPerformanceManager } from \"./Telemetry/PageViewPerformanceManager\";\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\n\"use strict\";\n\nvar durationProperty = \"duration\";\nvar strEvent = \"event\";\n\nfunction _dispatchEvent(target, evnt) {\n if (target && target.dispatchEvent && evnt) {\n target.dispatchEvent(evnt);\n }\n}\n\nfunction _getReason(error) {\n if (error && error.reason) {\n var reason = error.reason;\n\n if (!isString(reason) && isFunction(reason.toString)) {\n return reason.toString();\n }\n\n return dumpObj(reason);\n } // Pass the original object down which will eventually get evaluated for any message or description\n\n\n return error || \"\";\n}\n\nvar ApplicationInsights =\n/** @class */\nfunction (_super) {\n __extends(ApplicationInsights, _super);\n\n function ApplicationInsights() {\n var _this = _super.call(this) || this;\n\n _this.identifier = AnalyticsPluginIdentifier; // do not change name or priority\n\n _this.priority = 180; // take from reserved priority range 100- 200\n\n _this.autoRoutePVDelay = 500; // ms; Time to wait after a route change before triggering a pageview to allow DOM changes to take place\n\n var _eventTracking;\n\n var _pageTracking;\n\n var _properties; // Counts number of trackAjax invocations.\n // By default we only monitor X ajax call per view to avoid too much load.\n // Default value is set in config.\n // This counter keeps increasing even after the limit is reached.\n\n\n var _trackAjaxAttempts = 0; // array with max length of 2 that store current url and previous url for SPA page route change trackPageview use.\n\n var _prevUri; // Assigned in the constructor\n\n\n var _currUri;\n\n dynamicProto(ApplicationInsights, _this, function (_self, _base) {\n var location = getLocation(true);\n _prevUri = location && location.href || \"\";\n\n _self.getCookieMgr = function () {\n return safeGetCookieMgr(_self.core);\n };\n\n _self.processTelemetry = function (env, itemCtx) {\n doPerf(_self.core, function () {\n return _self.identifier + \":processTelemetry\";\n }, function () {\n var doNotSendItem = false;\n var telemetryInitializersCount = _self._telemetryInitializers.length;\n itemCtx = _self._getTelCtx(itemCtx);\n\n for (var i = 0; i < telemetryInitializersCount; ++i) {\n var telemetryInitializer = _self._telemetryInitializers[i];\n\n if (telemetryInitializer) {\n try {\n if (telemetryInitializer.apply(null, [env]) === false) {\n doNotSendItem = true;\n break;\n }\n } catch (e) {\n // log error but dont stop executing rest of the telemetry initializers\n // doNotSendItem = true;\n itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryInitializerFailed, \"One of telemetry initializers failed, telemetry item will not be sent: \" + getExceptionName(e), {\n exception: dumpObj(e)\n }, true);\n }\n }\n }\n\n if (!doNotSendItem) {\n _self.processNext(env, itemCtx);\n }\n }, function () {\n return {\n item: env\n };\n }, !env.sync);\n };\n\n _self.trackEvent = function (event, customProperties) {\n try {\n var telemetryItem = TelemetryItemCreator.create(event, EventTelemetry.dataType, EventTelemetry.envelopeType, _self.diagLog(), customProperties);\n\n _self.core.track(telemetryItem);\n } catch (e) {\n _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TrackTraceFailed, \"trackTrace failed, trace will not be collected: \" + getExceptionName(e), {\n exception: dumpObj(e)\n });\n }\n };\n /**\r\n * Start timing an extended event. Call `stopTrackEvent` to log the event when it ends.\r\n * @param name A string that identifies this event uniquely within the document.\r\n */\n\n\n _self.startTrackEvent = function (name) {\n try {\n _eventTracking.start(name);\n } catch (e) {\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StartTrackEventFailed, \"startTrackEvent failed, event will not be collected: \" + getExceptionName(e), {\n exception: dumpObj(e)\n });\n }\n };\n /**\r\n * Log an extended event that you started timing with `startTrackEvent`.\r\n * @param name The string you used to identify this event in `startTrackEvent`.\r\n * @param properties map[string, string] - additional data used to filter events and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this event, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\n\n\n _self.stopTrackEvent = function (name, properties, measurements) {\n try {\n _eventTracking.stop(name, undefined, properties); // Todo: Fix to pass measurements once type is updated\n\n } catch (e) {\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StopTrackEventFailed, \"stopTrackEvent failed, event will not be collected: \" + getExceptionName(e), {\n exception: dumpObj(e)\n });\n }\n };\n /**\r\n * @description Log a diagnostic message\r\n * @param {ITraceTelemetry} trace\r\n * @param ICustomProperties.\r\n * @memberof ApplicationInsights\r\n */\n\n\n _self.trackTrace = function (trace, customProperties) {\n try {\n var telemetryItem = TelemetryItemCreator.create(trace, Trace.dataType, Trace.envelopeType, _self.diagLog(), customProperties);\n\n _self.core.track(telemetryItem);\n } catch (e) {\n _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TrackTraceFailed, \"trackTrace failed, trace will not be collected: \" + getExceptionName(e), {\n exception: dumpObj(e)\n });\n }\n };\n /**\r\n * @description Log a numeric value that is not associated with a specific event. Typically\r\n * used to send regular reports of performance indicators. To send single measurement, just\r\n * use the name and average fields of {@link IMetricTelemetry}. If you take measurements\r\n * frequently, you can reduce the telemetry bandwidth by aggregating multiple measurements\r\n * and sending the resulting average at intervals\r\n * @param {IMetricTelemetry} metric input object argument. Only name and average are mandatory.\r\n * @param {{[key: string]: any}} customProperties additional data used to filter metrics in the\r\n * portal. Defaults to empty.\r\n * @memberof ApplicationInsights\r\n */\n\n\n _self.trackMetric = function (metric, customProperties) {\n try {\n var telemetryItem = TelemetryItemCreator.create(metric, Metric.dataType, Metric.envelopeType, _self.diagLog(), customProperties);\n\n _self.core.track(telemetryItem);\n } catch (e) {\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackMetricFailed, \"trackMetric failed, metric will not be collected: \" + getExceptionName(e), {\n exception: dumpObj(e)\n });\n }\n };\n /**\r\n * Logs that a page or other item was viewed.\r\n * @param IPageViewTelemetry The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param customProperties Additional data used to filter events and metrics. Defaults to empty.\r\n * If a user wants to provide duration for pageLoad, it'll have to be in pageView.properties.duration\r\n */\n\n\n _self.trackPageView = function (pageView, customProperties) {\n try {\n var inPv = pageView || {};\n\n _self._pageViewManager.trackPageView(inPv, __assign(__assign(__assign({}, inPv.properties), inPv.measurements), customProperties));\n\n if (_self.config.autoTrackPageVisitTime) {\n _self._pageVisitTimeManager.trackPreviousPageVisit(inPv.name, inPv.uri);\n }\n } catch (e) {\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackPVFailed, \"trackPageView failed, page view will not be collected: \" + getExceptionName(e), {\n exception: dumpObj(e)\n });\n }\n };\n /**\r\n * Create a page view telemetry item and send it to the SDK pipeline through the core.track API\r\n * @param pageView Page view item to be sent\r\n * @param properties Custom properties (Part C) that a user can add to the telemetry item\r\n * @param systemProperties System level properties (Part A) that a user can add to the telemetry item\r\n */\n\n\n _self.sendPageViewInternal = function (pageView, properties, systemProperties) {\n var doc = getDocument();\n\n if (doc) {\n pageView.refUri = pageView.refUri === undefined ? doc.referrer : pageView.refUri;\n }\n\n var telemetryItem = TelemetryItemCreator.create(pageView, PageView.dataType, PageView.envelopeType, _self.diagLog(), properties, systemProperties);\n\n _self.core.track(telemetryItem); // reset ajaxes counter\n\n\n _trackAjaxAttempts = 0;\n };\n /**\r\n * @ignore INTERNAL ONLY\r\n * @param pageViewPerformance\r\n * @param properties\r\n */\n\n\n _self.sendPageViewPerformanceInternal = function (pageViewPerformance, properties, systemProperties) {\n var telemetryItem = TelemetryItemCreator.create(pageViewPerformance, PageViewPerformance.dataType, PageViewPerformance.envelopeType, _self.diagLog(), properties, systemProperties);\n\n _self.core.track(telemetryItem);\n };\n /**\r\n * Send browser performance metrics.\r\n * @param pageViewPerformance\r\n * @param customProperties\r\n */\n\n\n _self.trackPageViewPerformance = function (pageViewPerformance, customProperties) {\n try {\n _self._pageViewPerformanceManager.populatePageViewPerformanceEvent(pageViewPerformance);\n\n _self.sendPageViewPerformanceInternal(pageViewPerformance, customProperties);\n } catch (e) {\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackPVFailed, \"trackPageViewPerformance failed, page view will not be collected: \" + getExceptionName(e), {\n exception: dumpObj(e)\n });\n }\n };\n /**\r\n * Starts the timer for tracking a page load time. Use this instead of `trackPageView` if you want to control when the page view timer starts and stops,\r\n * but don't want to calculate the duration yourself. This method doesn't send any telemetry. Call `stopTrackPage` to log the end of the page view\r\n * and send the event.\r\n * @param name A string that idenfities this item, unique within this HTML document. Defaults to the document title.\r\n */\n\n\n _self.startTrackPage = function (name) {\n try {\n if (typeof name !== \"string\") {\n var doc = getDocument();\n name = doc && doc.title || \"\";\n }\n\n _pageTracking.start(name);\n } catch (e) {\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StartTrackFailed, \"startTrackPage failed, page view may not be collected: \" + getExceptionName(e), {\n exception: dumpObj(e)\n });\n }\n };\n /**\r\n * Stops the timer that was started by calling `startTrackPage` and sends the pageview load time telemetry with the specified properties and measurements.\r\n * The duration of the page view will be the time between calling `startTrackPage` and `stopTrackPage`.\r\n * @param name The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param url String - a relative or absolute URL that identifies the page or other item. Defaults to the window location.\r\n * @param properties map[string, string] - additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this page, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\n\n\n _self.stopTrackPage = function (name, url, properties, measurement) {\n try {\n if (typeof name !== \"string\") {\n var doc = getDocument();\n name = doc && doc.title || \"\";\n }\n\n if (typeof url !== \"string\") {\n var loc = getLocation();\n url = loc && loc.href || \"\";\n }\n\n _pageTracking.stop(name, url, properties, measurement);\n\n if (_self.config.autoTrackPageVisitTime) {\n _self._pageVisitTimeManager.trackPreviousPageVisit(name, url);\n }\n } catch (e) {\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StopTrackFailed, \"stopTrackPage failed, page view will not be collected: \" + getExceptionName(e), {\n exception: dumpObj(e)\n });\n }\n };\n /**\r\n * @ignore INTERNAL ONLY\r\n * @param exception\r\n * @param properties\r\n * @param systemProperties\r\n */\n\n\n _self.sendExceptionInternal = function (exception, customProperties, systemProperties) {\n var theError = exception.exception || exception.error || new Error(strNotSpecified);\n var exceptionPartB = new Exception(_self.diagLog(), theError, exception.properties || customProperties, exception.measurements, exception.severityLevel, exception.id).toInterface();\n var telemetryItem = TelemetryItemCreator.create(exceptionPartB, Exception.dataType, Exception.envelopeType, _self.diagLog(), customProperties, systemProperties);\n\n _self.core.track(telemetryItem);\n };\n /**\r\n * Log an exception you have caught.\r\n *\r\n * @param {IExceptionTelemetry} exception Object which contains exception to be sent\r\n * @param {{[key: string]: any}} customProperties Additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n *\r\n * Any property of type double will be considered a measurement, and will be treated by Application Insights as a metric.\r\n * @memberof ApplicationInsights\r\n */\n\n\n _self.trackException = function (exception, customProperties) {\n try {\n _self.sendExceptionInternal(exception, customProperties);\n } catch (e) {\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackExceptionFailed, \"trackException failed, exception will not be collected: \" + getExceptionName(e), {\n exception: dumpObj(e)\n });\n }\n };\n /**\r\n * @description Custom error handler for Application Insights Analytics\r\n * @param {IAutoExceptionTelemetry} exception\r\n * @memberof ApplicationInsights\r\n */\n\n\n _self._onerror = function (exception) {\n var error = exception && exception.error;\n var evt = exception && exception.evt;\n\n try {\n if (!evt) {\n var _window = getWindow();\n\n if (_window) {\n evt = _window[strEvent];\n }\n }\n\n var url = exception && exception.url || (getDocument() || {}).URL; // If no error source is provided assume the default window.onerror handler\n\n var errorSrc = exception.errorSrc || \"window.onerror@\" + url + \":\" + (exception.lineNumber || 0) + \":\" + (exception.columnNumber || 0);\n var properties = {\n errorSrc: errorSrc,\n url: url,\n lineNumber: exception.lineNumber || 0,\n columnNumber: exception.columnNumber || 0,\n message: exception.message\n };\n\n if (isCrossOriginError(exception.message, exception.url, exception.lineNumber, exception.columnNumber, exception.error)) {\n _sendCORSException(Exception.CreateAutoException(\"Script error: The browser's same-origin policy prevents us from getting the details of this exception. Consider using the 'crossorigin' attribute.\", url, exception.lineNumber || 0, exception.columnNumber || 0, error, evt, null, errorSrc), properties);\n } else {\n if (!exception.errorSrc) {\n exception.errorSrc = errorSrc;\n }\n\n _self.trackException({\n exception: exception,\n severityLevel: SeverityLevel.Error\n }, properties);\n }\n } catch (e) {\n var errorString = error ? error.name + \", \" + error.message : \"null\";\n\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.ExceptionWhileLoggingError, \"_onError threw exception while logging error, error will not be collected: \" + getExceptionName(e), {\n exception: dumpObj(e),\n errorString: errorString\n });\n }\n };\n\n _self.addTelemetryInitializer = function (telemetryInitializer) {\n _self._telemetryInitializers.push(telemetryInitializer);\n };\n\n _self.initialize = function (config, core, extensions, pluginChain) {\n if (_self.isInitialized()) {\n return;\n }\n\n if (isNullOrUndefined(core)) {\n throw Error(\"Error initializing\");\n }\n\n _base.initialize(config, core, extensions, pluginChain);\n\n _self.setInitialized(false); // resetting the initialized state, just in case the following fails\n\n\n var ctx = _self._getTelCtx();\n\n var identifier = _self.identifier;\n _self.config = ctx.getExtCfg(identifier); // load default values if specified\n\n var defaults = ApplicationInsights.getDefaultConfig(config);\n\n if (defaults !== undefined) {\n objForEachKey(defaults, function (field, value) {\n // for each unspecified field, set the default value\n _self.config[field] = ctx.getConfig(identifier, field, value);\n\n if (_self.config[field] === undefined) {\n _self.config[field] = value;\n }\n });\n } // Todo: move this out of static state\n\n\n if (_self.config.isStorageUseDisabled) {\n utlDisableStorage();\n }\n\n var configGetters = {\n instrumentationKey: function instrumentationKey() {\n return config.instrumentationKey;\n },\n accountId: function accountId() {\n return _self.config.accountId || config.accountId;\n },\n sessionRenewalMs: function sessionRenewalMs() {\n return _self.config.sessionRenewalMs || config.sessionRenewalMs;\n },\n sessionExpirationMs: function sessionExpirationMs() {\n return _self.config.sessionExpirationMs || config.sessionExpirationMs;\n },\n sampleRate: function sampleRate() {\n return _self.config.samplingPercentage || config.samplingPercentage;\n },\n sdkExtension: function sdkExtension() {\n return _self.config.sdkExtension || config.sdkExtension;\n },\n isBrowserLinkTrackingEnabled: function isBrowserLinkTrackingEnabled() {\n return _self.config.isBrowserLinkTrackingEnabled || config.isBrowserLinkTrackingEnabled;\n },\n appId: function appId() {\n return _self.config.appId || config.appId;\n }\n };\n _self._pageViewPerformanceManager = new PageViewPerformanceManager(_self.core);\n _self._pageViewManager = new PageViewManager(_this, _self.config.overridePageViewDuration, _self.core, _self._pageViewPerformanceManager);\n _self._pageVisitTimeManager = new PageVisitTimeManager(_self.diagLog(), function (pageName, pageUrl, pageVisitTime) {\n return trackPageVisitTime(pageName, pageUrl, pageVisitTime);\n });\n _self._telemetryInitializers = _self._telemetryInitializers || [];\n\n _addDefaultTelemetryInitializers(configGetters);\n\n _eventTracking = new Timing(_self.diagLog(), \"trackEvent\");\n\n _eventTracking.action = function (name, url, duration, properties) {\n if (!properties) {\n properties = {};\n }\n\n properties[durationProperty] = duration.toString();\n\n _self.trackEvent({\n name: name,\n properties: properties\n });\n }; // initialize page view timing\n\n\n _pageTracking = new Timing(_self.diagLog(), \"trackPageView\");\n\n _pageTracking.action = function (name, url, duration, properties, measurements) {\n // duration must be a custom property in order for the collector to extract it\n if (isNullOrUndefined(properties)) {\n properties = {};\n }\n\n properties[durationProperty] = duration.toString();\n var pageViewItem = {\n name: name,\n uri: url,\n properties: properties,\n measurements: measurements\n };\n\n _self.sendPageViewInternal(pageViewItem, properties);\n };\n\n var _window = getWindow();\n\n var _history = getHistory();\n\n var _location = getLocation(true);\n\n var instance = _this;\n\n if (_self.config.disableExceptionTracking === false && !_self.config.autoExceptionInstrumented && _window) {\n // We want to enable exception auto collection and it has not been done so yet\n var onerror_1 = \"onerror\";\n var originalOnError_1 = _window[onerror_1];\n\n _window.onerror = function (message, url, lineNumber, columnNumber, error) {\n var evt = _window[strEvent];\n var handled = originalOnError_1 && originalOnError_1(message, url, lineNumber, columnNumber, error);\n\n if (handled !== true) {\n // handled could be typeof function\n instance._onerror(Exception.CreateAutoException(message, url, lineNumber, columnNumber, error, evt));\n }\n\n return handled;\n };\n\n _self.config.autoExceptionInstrumented = true;\n }\n\n if (_self.config.disableExceptionTracking === false && _self.config.enableUnhandledPromiseRejectionTracking === true && !_self.config.autoUnhandledPromiseInstrumented && _window) {\n // We want to enable exception auto collection and it has not been done so yet\n var onunhandledrejection_1 = \"onunhandledrejection\";\n var originalOnUnhandledRejection_1 = _window[onunhandledrejection_1];\n\n _window[onunhandledrejection_1] = function (error) {\n var evt = _window[strEvent];\n var handled = originalOnUnhandledRejection_1 && originalOnUnhandledRejection_1.call(_window, error);\n\n if (handled !== true) {\n // handled could be typeof function\n instance._onerror(Exception.CreateAutoException(_getReason(error), _location ? _location.href : \"\", 0, 0, error, evt));\n }\n\n return handled;\n };\n\n _self.config.autoUnhandledPromiseInstrumented = true;\n }\n /**\r\n * Create a custom \"locationchange\" event which is triggered each time the history object is changed\r\n */\n\n\n if (_self.config.enableAutoRouteTracking === true && _history && isFunction(_history.pushState) && isFunction(_history.replaceState) && _window && typeof Event !== \"undefined\") {\n var _self_1 = _this; // Find the properties plugin\n\n arrForEach(extensions, function (extension) {\n if (extension.identifier === PropertiesPluginIdentifier) {\n _properties = extension;\n }\n });\n\n _history.pushState = function (f) {\n return function pushState() {\n var ret = f.apply(this, arguments);\n\n _dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + \"pushState\"));\n\n _dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + \"locationchange\"));\n\n return ret;\n };\n }(_history.pushState);\n\n _history.replaceState = function (f) {\n return function replaceState() {\n var ret = f.apply(this, arguments);\n\n _dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + \"replaceState\"));\n\n _dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + \"locationchange\"));\n\n return ret;\n };\n }(_history.replaceState);\n\n if (_window.addEventListener) {\n _window.addEventListener(_self_1.config.namePrefix + \"popstate\", function () {\n _dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + \"locationchange\"));\n });\n\n _window.addEventListener(_self_1.config.namePrefix + \"locationchange\", function () {\n if (_properties && _properties.context && _properties.context.telemetryTrace) {\n _properties.context.telemetryTrace.traceID = generateW3CId();\n var traceLocationName = \"_unknown_\";\n\n if (_location && _location.pathname) {\n traceLocationName = _location.pathname + (_location.hash || \"\");\n } // This populates the ai.operation.name which has a maximum size of 1024 so we need to sanitize it\n\n\n _properties.context.telemetryTrace.name = dataSanitizeString(_self_1.diagLog(), traceLocationName);\n }\n\n if (_currUri) {\n _prevUri = _currUri;\n _currUri = _location && _location.href || \"\";\n } else {\n _currUri = _location && _location.href || \"\";\n }\n\n setTimeout(function (uri) {\n // todo: override start time so that it is not affected by autoRoutePVDelay\n _self_1.trackPageView({\n refUri: uri,\n properties: {\n duration: 0\n }\n }); // SPA route change loading durations are undefined, so send 0\n\n }.bind(_this, _prevUri), _self_1.autoRoutePVDelay);\n });\n }\n }\n\n _self.setInitialized(true);\n };\n /**\r\n * Log a page visit time\r\n * @param pageName Name of page\r\n * @param pageVisitDuration Duration of visit to the page in milleseconds\r\n */\n\n\n function trackPageVisitTime(pageName, pageUrl, pageVisitTime) {\n var properties = {\n PageName: pageName,\n PageUrl: pageUrl\n };\n\n _self.trackMetric({\n name: \"PageVisitTime\",\n average: pageVisitTime,\n max: pageVisitTime,\n min: pageVisitTime,\n sampleCount: 1\n }, properties);\n }\n\n function _addDefaultTelemetryInitializers(configGetters) {\n if (!configGetters.isBrowserLinkTrackingEnabled()) {\n var browserLinkPaths_1 = [\"/browserLinkSignalR/\", \"/__browserLink/\"];\n\n var dropBrowserLinkRequests = function dropBrowserLinkRequests(envelope) {\n if (envelope.baseType === RemoteDependencyData.dataType) {\n var remoteData = envelope.baseData;\n\n if (remoteData) {\n for (var i = 0; i < browserLinkPaths_1.length; i++) {\n if (remoteData.target && remoteData.target.indexOf(browserLinkPaths_1[i]) >= 0) {\n return false;\n }\n }\n }\n }\n\n return true;\n };\n\n _addTelemetryInitializer(dropBrowserLinkRequests);\n }\n }\n\n function _addTelemetryInitializer(telemetryInitializer) {\n _self._telemetryInitializers.push(telemetryInitializer);\n }\n\n function _sendCORSException(exception, properties) {\n var telemetryItem = TelemetryItemCreator.create(exception, Exception.dataType, Exception.envelopeType, _self.diagLog(), properties);\n\n _self.core.track(telemetryItem);\n }\n });\n return _this;\n }\n\n ApplicationInsights.getDefaultConfig = function (config) {\n if (!config) {\n config = {};\n } // set default values\n\n\n config.sessionRenewalMs = 30 * 60 * 1000;\n config.sessionExpirationMs = 24 * 60 * 60 * 1000;\n config.disableExceptionTracking = stringToBoolOrDefault(config.disableExceptionTracking);\n config.autoTrackPageVisitTime = stringToBoolOrDefault(config.autoTrackPageVisitTime);\n config.overridePageViewDuration = stringToBoolOrDefault(config.overridePageViewDuration);\n config.enableUnhandledPromiseRejectionTracking = stringToBoolOrDefault(config.enableUnhandledPromiseRejectionTracking);\n\n if (isNaN(config.samplingPercentage) || config.samplingPercentage <= 0 || config.samplingPercentage >= 100) {\n config.samplingPercentage = 100;\n }\n\n config.isStorageUseDisabled = stringToBoolOrDefault(config.isStorageUseDisabled);\n config.isBrowserLinkTrackingEnabled = stringToBoolOrDefault(config.isBrowserLinkTrackingEnabled);\n config.enableAutoRouteTracking = stringToBoolOrDefault(config.enableAutoRouteTracking);\n config.namePrefix = config.namePrefix || \"\";\n config.enableDebug = stringToBoolOrDefault(config.enableDebug);\n config.disableFlushOnBeforeUnload = stringToBoolOrDefault(config.disableFlushOnBeforeUnload);\n config.disableFlushOnUnload = stringToBoolOrDefault(config.disableFlushOnUnload, config.disableFlushOnBeforeUnload);\n return config;\n }; // Removed Stub for ApplicationInsights.prototype.getCookieMgr.\n // Removed Stub for ApplicationInsights.prototype.processTelemetry.\n // Removed Stub for ApplicationInsights.prototype.trackEvent.\n // Removed Stub for ApplicationInsights.prototype.startTrackEvent.\n // Removed Stub for ApplicationInsights.prototype.stopTrackEvent.\n // Removed Stub for ApplicationInsights.prototype.trackTrace.\n // Removed Stub for ApplicationInsights.prototype.trackMetric.\n // Removed Stub for ApplicationInsights.prototype.trackPageView.\n // Removed Stub for ApplicationInsights.prototype.sendPageViewInternal.\n // Removed Stub for ApplicationInsights.prototype.sendPageViewPerformanceInternal.\n // Removed Stub for ApplicationInsights.prototype.trackPageViewPerformance.\n // Removed Stub for ApplicationInsights.prototype.startTrackPage.\n // Removed Stub for ApplicationInsights.prototype.stopTrackPage.\n // Removed Stub for ApplicationInsights.prototype.sendExceptionInternal.\n // Removed Stub for ApplicationInsights.prototype.trackException.\n // Removed Stub for ApplicationInsights.prototype._onerror.\n // Removed Stub for ApplicationInsights.prototype.addTelemetryInitializer.\n // Removed Stub for ApplicationInsights.prototype.initialize.\n\n\n ApplicationInsights.Version = \"2.7.4\"; // Not currently used anywhere\n\n return ApplicationInsights;\n}(BaseTelemetryPlugin);\n\nexport { ApplicationInsights };\n/**\r\n * Used to record timed events and page views.\r\n */\n\nvar Timing =\n/** @class */\nfunction () {\n function Timing(logger, name) {\n var _self = this;\n\n var _events = {};\n\n _self.start = function (name) {\n if (typeof _events[name] !== \"undefined\") {\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.StartCalledMoreThanOnce, \"start was called more than once for this event without calling stop.\", {\n name: name,\n key: name\n }, true);\n }\n\n _events[name] = +new Date();\n };\n\n _self.stop = function (name, url, properties, measurements) {\n var start = _events[name];\n\n if (isNaN(start)) {\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.StopCalledWithoutStart, \"stop was called without a corresponding start.\", {\n name: name,\n key: name\n }, true);\n } else {\n var end = +new Date();\n var duration = dateTimeUtilsDuration(start, end);\n\n _self.action(name, url, duration, properties, measurements);\n }\n\n delete _events[name];\n _events[name] = undefined;\n };\n }\n\n return Timing;\n}();","/*\n * Application Insights JavaScript SDK - Channel, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\nimport { utlGetSessionStorage, utlSetSessionStorage } from \"@microsoft/applicationinsights-common\";\nimport { LoggingSeverity, _InternalMessageId, getJSON, arrForEach, isFunction, arrIndexOf, isString, dumpObj, isArray, getExceptionName } from \"@microsoft/applicationinsights-core-js\";\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\n\nvar BaseSendBuffer =\n/** @class */\nfunction () {\n function BaseSendBuffer(logger, config) {\n var _buffer = [];\n var _bufferFullMessageSent = false;\n\n this._get = function () {\n return _buffer;\n };\n\n this._set = function (buffer) {\n _buffer = buffer;\n return _buffer;\n };\n\n dynamicProto(BaseSendBuffer, this, function (_self) {\n _self.enqueue = function (payload) {\n if (_self.count() >= config.eventsLimitInMem()) {\n // sent internal log only once per page view\n if (!_bufferFullMessageSent) {\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.InMemoryStorageBufferFull, \"Maximum in-memory buffer size reached: \" + _self.count(), true);\n _bufferFullMessageSent = true;\n }\n\n return;\n }\n\n _buffer.push(payload);\n };\n\n _self.count = function () {\n return _buffer.length;\n };\n\n _self.size = function () {\n var size = _buffer.length;\n\n for (var lp = 0; lp < _buffer.length; lp++) {\n size += _buffer[lp].length;\n }\n\n if (!config.emitLineDelimitedJson()) {\n size += 2;\n }\n\n return size;\n };\n\n _self.clear = function () {\n _buffer = [];\n _bufferFullMessageSent = false;\n };\n\n _self.getItems = function () {\n return _buffer.slice(0);\n };\n\n _self.batchPayloads = function (payload) {\n if (payload && payload.length > 0) {\n var batch = config.emitLineDelimitedJson() ? payload.join(\"\\n\") : \"[\" + payload.join(\",\") + \"]\";\n return batch;\n }\n\n return null;\n };\n });\n } // Removed Stub for BaseSendBuffer.prototype.enqueue.\n // Removed Stub for BaseSendBuffer.prototype.count.\n // Removed Stub for BaseSendBuffer.prototype.size.\n // Removed Stub for BaseSendBuffer.prototype.clear.\n // Removed Stub for BaseSendBuffer.prototype.getItems.\n // Removed Stub for BaseSendBuffer.prototype.batchPayloads.\n\n\n return BaseSendBuffer;\n}();\n/*\r\n * An array based send buffer.\r\n */\n\n\nvar ArraySendBuffer =\n/** @class */\nfunction (_super) {\n __extends(ArraySendBuffer, _super);\n\n function ArraySendBuffer(logger, config) {\n var _this = _super.call(this, logger, config) || this;\n\n dynamicProto(ArraySendBuffer, _this, function (_self, _base) {\n _self.markAsSent = function (payload) {\n _base.clear();\n };\n\n _self.clearSent = function (payload) {// not supported\n };\n });\n return _this;\n } // Removed Stub for ArraySendBuffer.prototype.markAsSent.\n // Removed Stub for ArraySendBuffer.prototype.clearSent.\n\n\n return ArraySendBuffer;\n}(BaseSendBuffer);\n\nexport { ArraySendBuffer };\n/*\r\n * Session storage buffer holds a copy of all unsent items in the browser session storage.\r\n */\n\nvar SessionStorageSendBuffer =\n/** @class */\nfunction (_super) {\n __extends(SessionStorageSendBuffer, _super);\n\n function SessionStorageSendBuffer(logger, config) {\n var _this = _super.call(this, logger, config) || this;\n\n var _bufferFullMessageSent = false;\n dynamicProto(SessionStorageSendBuffer, _this, function (_self, _base) {\n var bufferItems = _getBuffer(SessionStorageSendBuffer.BUFFER_KEY);\n\n var notDeliveredItems = _getBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY);\n\n var buffer = _self._set(bufferItems.concat(notDeliveredItems)); // If the buffer has too many items, drop items from the end.\n\n\n if (buffer.length > SessionStorageSendBuffer.MAX_BUFFER_SIZE) {\n buffer.length = SessionStorageSendBuffer.MAX_BUFFER_SIZE;\n }\n\n _setBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY, []);\n\n _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, buffer);\n\n _self.enqueue = function (payload) {\n if (_self.count() >= SessionStorageSendBuffer.MAX_BUFFER_SIZE) {\n // sent internal log only once per page view\n if (!_bufferFullMessageSent) {\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.SessionStorageBufferFull, \"Maximum buffer size reached: \" + _self.count(), true);\n _bufferFullMessageSent = true;\n }\n\n return;\n }\n\n _base.enqueue(payload);\n\n _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self._get());\n };\n\n _self.clear = function () {\n _base.clear();\n\n _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self._get());\n\n _setBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY, []);\n\n _bufferFullMessageSent = false;\n };\n\n _self.markAsSent = function (payload) {\n _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self._set(_removePayloadsFromBuffer(payload, _self._get())));\n\n var sentElements = _getBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY);\n\n if (sentElements instanceof Array && payload instanceof Array) {\n sentElements = sentElements.concat(payload);\n\n if (sentElements.length > SessionStorageSendBuffer.MAX_BUFFER_SIZE) {\n // We send telemetry normally. If the SENT_BUFFER is too big we don't add new elements\n // until we receive a response from the backend and the buffer has free space again (see clearSent method)\n logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.SessionStorageBufferFull, \"Sent buffer reached its maximum size: \" + sentElements.length, true);\n sentElements.length = SessionStorageSendBuffer.MAX_BUFFER_SIZE;\n }\n\n _setBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY, sentElements);\n }\n };\n\n _self.clearSent = function (payload) {\n var sentElements = _getBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY);\n\n sentElements = _removePayloadsFromBuffer(payload, sentElements);\n\n _setBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY, sentElements);\n };\n\n function _removePayloadsFromBuffer(payloads, buffer) {\n var remaining = [];\n arrForEach(buffer, function (value) {\n if (!isFunction(value) && arrIndexOf(payloads, value) === -1) {\n remaining.push(value);\n }\n });\n return remaining;\n }\n\n function _getBuffer(key) {\n var prefixedKey = key;\n\n try {\n prefixedKey = config.namePrefix && config.namePrefix() ? config.namePrefix() + \"_\" + prefixedKey : prefixedKey;\n var bufferJson = utlGetSessionStorage(logger, prefixedKey);\n\n if (bufferJson) {\n var buffer_1 = getJSON().parse(bufferJson);\n\n if (isString(buffer_1)) {\n // When using some version prototype.js the stringify / parse cycle does not decode array's correctly\n buffer_1 = getJSON().parse(buffer_1);\n }\n\n if (buffer_1 && isArray(buffer_1)) {\n return buffer_1;\n }\n }\n } catch (e) {\n logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.FailedToRestoreStorageBuffer, \" storage key: \" + prefixedKey + \", \" + getExceptionName(e), {\n exception: dumpObj(e)\n });\n }\n\n return [];\n }\n\n function _setBuffer(key, buffer) {\n var prefixedKey = key;\n\n try {\n prefixedKey = config.namePrefix && config.namePrefix() ? config.namePrefix() + \"_\" + prefixedKey : prefixedKey;\n var bufferJson = JSON.stringify(buffer);\n utlSetSessionStorage(logger, prefixedKey, bufferJson);\n } catch (e) {\n // if there was an error, clear the buffer\n // telemetry is stored in the _buffer array so we won't loose any items\n utlSetSessionStorage(logger, prefixedKey, JSON.stringify([]));\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.FailedToSetStorageBuffer, \" storage key: \" + prefixedKey + \", \" + getExceptionName(e) + \". Buffer cleared\", {\n exception: dumpObj(e)\n });\n }\n }\n });\n return _this;\n } // Removed Stub for SessionStorageSendBuffer.prototype.enqueue.\n // Removed Stub for SessionStorageSendBuffer.prototype.clear.\n // Removed Stub for SessionStorageSendBuffer.prototype.markAsSent.\n // Removed Stub for SessionStorageSendBuffer.prototype.clearSent.\n\n\n SessionStorageSendBuffer.BUFFER_KEY = \"AI_buffer\";\n SessionStorageSendBuffer.SENT_BUFFER_KEY = \"AI_sentBuffer\"; // Maximum number of payloads stored in the buffer. If the buffer is full, new elements will be dropped.\n\n SessionStorageSendBuffer.MAX_BUFFER_SIZE = 2000;\n return SessionStorageSendBuffer;\n}(BaseSendBuffer);\n\nexport { SessionStorageSendBuffer };","/*\n * Application Insights JavaScript SDK - Common, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\nimport { createClassFromInterface } from \"@microsoft/applicationinsights-core-js\";\n\nfunction _aiNameFunc(baseName) {\n var aiName = \"ai.\" + baseName + \".\";\n return function (name) {\n return aiName + name;\n };\n}\n\nvar _aiApplication = _aiNameFunc(\"application\");\n\nvar _aiDevice = _aiNameFunc(\"device\");\n\nvar _aiLocation = _aiNameFunc(\"location\");\n\nvar _aiOperation = _aiNameFunc(\"operation\");\n\nvar _aiSession = _aiNameFunc(\"session\");\n\nvar _aiUser = _aiNameFunc(\"user\");\n\nvar _aiCloud = _aiNameFunc(\"cloud\");\n\nvar _aiInternal = _aiNameFunc(\"internal\");\n\nvar ContextTagKeys =\n/** @class */\nfunction (_super) {\n __extends(ContextTagKeys, _super);\n\n function ContextTagKeys() {\n return _super.call(this) || this;\n }\n\n return ContextTagKeys;\n}(createClassFromInterface({\n applicationVersion: _aiApplication(\"ver\"),\n applicationBuild: _aiApplication(\"build\"),\n applicationTypeId: _aiApplication(\"typeId\"),\n applicationId: _aiApplication(\"applicationId\"),\n applicationLayer: _aiApplication(\"layer\"),\n deviceId: _aiDevice(\"id\"),\n deviceIp: _aiDevice(\"ip\"),\n deviceLanguage: _aiDevice(\"language\"),\n deviceLocale: _aiDevice(\"locale\"),\n deviceModel: _aiDevice(\"model\"),\n deviceFriendlyName: _aiDevice(\"friendlyName\"),\n deviceNetwork: _aiDevice(\"network\"),\n deviceNetworkName: _aiDevice(\"networkName\"),\n deviceOEMName: _aiDevice(\"oemName\"),\n deviceOS: _aiDevice(\"os\"),\n deviceOSVersion: _aiDevice(\"osVersion\"),\n deviceRoleInstance: _aiDevice(\"roleInstance\"),\n deviceRoleName: _aiDevice(\"roleName\"),\n deviceScreenResolution: _aiDevice(\"screenResolution\"),\n deviceType: _aiDevice(\"type\"),\n deviceMachineName: _aiDevice(\"machineName\"),\n deviceVMName: _aiDevice(\"vmName\"),\n deviceBrowser: _aiDevice(\"browser\"),\n deviceBrowserVersion: _aiDevice(\"browserVersion\"),\n locationIp: _aiLocation(\"ip\"),\n locationCountry: _aiLocation(\"country\"),\n locationProvince: _aiLocation(\"province\"),\n locationCity: _aiLocation(\"city\"),\n operationId: _aiOperation(\"id\"),\n operationName: _aiOperation(\"name\"),\n operationParentId: _aiOperation(\"parentId\"),\n operationRootId: _aiOperation(\"rootId\"),\n operationSyntheticSource: _aiOperation(\"syntheticSource\"),\n operationCorrelationVector: _aiOperation(\"correlationVector\"),\n sessionId: _aiSession(\"id\"),\n sessionIsFirst: _aiSession(\"isFirst\"),\n sessionIsNew: _aiSession(\"isNew\"),\n userAccountAcquisitionDate: _aiUser(\"accountAcquisitionDate\"),\n userAccountId: _aiUser(\"accountId\"),\n userAgent: _aiUser(\"userAgent\"),\n userId: _aiUser(\"id\"),\n userStoreRegion: _aiUser(\"storeRegion\"),\n userAuthUserId: _aiUser(\"authUserId\"),\n userAnonymousUserAcquisitionDate: _aiUser(\"anonUserAcquisitionDate\"),\n userAuthenticatedUserAcquisitionDate: _aiUser(\"authUserAcquisitionDate\"),\n cloudName: _aiCloud(\"name\"),\n cloudRole: _aiCloud(\"role\"),\n cloudRoleVer: _aiCloud(\"roleVer\"),\n cloudRoleInstance: _aiCloud(\"roleInstance\"),\n cloudEnvironment: _aiCloud(\"environment\"),\n cloudLocation: _aiCloud(\"location\"),\n cloudDeploymentUnit: _aiCloud(\"deploymentUnit\"),\n internalNodeName: _aiInternal(\"nodeName\"),\n internalSdkVersion: _aiInternal(\"sdkVersion\"),\n internalAgentVersion: _aiInternal(\"agentVersion\"),\n internalSnippet: _aiInternal(\"snippet\"),\n internalSdkSrc: _aiInternal(\"sdkSrc\")\n}));\n\nexport { ContextTagKeys };","/*\n * Application Insights JavaScript SDK - Common, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { ContextTagKeys } from \"./Contracts/Generated/ContextTagKeys\";\nexport var Extensions = {\n UserExt: \"user\",\n DeviceExt: \"device\",\n TraceExt: \"trace\",\n WebExt: \"web\",\n AppExt: \"app\",\n OSExt: \"os\",\n SessionExt: \"ses\",\n SDKExt: \"sdk\"\n};\nexport var CtxTagKeys = new ContextTagKeys();","/*\n * Application Insights JavaScript SDK - Common, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\nimport { Envelope as AIEnvelope } from \"../../Interfaces/Contracts/Generated/Envelope\";\nimport { dataSanitizeString } from \"./DataSanitizer\";\nimport { toISOString } from \"@microsoft/applicationinsights-core-js\";\nimport { strNotSpecified } from \"../../Constants\";\n\nvar Envelope =\n/** @class */\nfunction (_super) {\n __extends(Envelope, _super);\n /**\r\n * Constructs a new instance of telemetry data.\r\n */\n\n\n function Envelope(logger, data, name) {\n var _this = _super.call(this) || this;\n\n _this.name = dataSanitizeString(logger, name) || strNotSpecified;\n _this.data = data;\n _this.time = toISOString(new Date());\n _this.aiDataContract = {\n time: 1\n /* Required */\n ,\n iKey: 1\n /* Required */\n ,\n name: 1\n /* Required */\n ,\n sampleRate: function sampleRate() {\n return _this.sampleRate === 100 ? 4\n /* Hidden */\n : 1\n /* Required */\n ;\n },\n tags: 1\n /* Required */\n ,\n data: 1\n /* Required */\n\n };\n return _this;\n }\n\n return Envelope;\n}(AIEnvelope);\n\nexport { Envelope };","/*\n * Application Insights JavaScript SDK - Common, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\n/**\r\n * System variables for a telemetry item.\r\n */\nvar Envelope =\n/** @class */\nfunction () {\n function Envelope() {\n /**\r\n * Envelope version. For internal use only. By assigning this the default, it will not be serialized within the payload unless changed to a value other than #1.\r\n */\n this.ver = 1;\n /**\r\n * Sampling rate used in application. This telemetry item represents 1 / sampleRate actual telemetry items.\r\n */\n\n this.sampleRate = 100.0;\n /**\r\n * Key/value collection of context properties. See ContextTagKeys for information on available properties.\r\n */\n\n this.tags = {};\n }\n\n return Envelope;\n}();\n\nexport { Envelope };","/*\n * Application Insights JavaScript SDK - Common, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n// THIS FILE WAS AUTOGENERATED\n\n/**\r\n * Data struct to contain only C section with custom fields.\r\n */\nvar Base =\n/** @class */\nfunction () {\n function Base() {}\n\n return Base;\n}();\n\nexport { Base };","/*\n * Application Insights JavaScript SDK - Common, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\"; // THIS FILE WAS AUTOGENERATED\n\nimport { Base } from \"./Base\";\n/**\r\n * Data struct to contain both B and C sections.\r\n */\n\nvar Data =\n/** @class */\nfunction (_super) {\n __extends(Data, _super);\n\n function Data() {\n return _super.call(this) || this;\n }\n\n return Data;\n}(Base);\n\nexport { Data };","/*\n * Application Insights JavaScript SDK - Common, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\nimport { Data as AIData } from \"../../Interfaces/Contracts/Generated/Data\";\n\nvar Data =\n/** @class */\nfunction (_super) {\n __extends(Data, _super);\n /**\r\n * Constructs a new instance of telemetry data.\r\n */\n\n\n function Data(baseType, data) {\n var _this = _super.call(this) || this;\n /**\r\n * The data contract for serializing this object.\r\n */\n\n\n _this.aiDataContract = {\n baseType: 1\n /* Required */\n ,\n baseData: 1\n /* Required */\n\n };\n _this.baseType = baseType;\n _this.baseData = data;\n return _this;\n }\n\n return Data;\n}(AIData);\n\nexport { Data };","/*\n * Application Insights JavaScript SDK - Channel, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { __assignFn as __assign } from \"@microsoft/applicationinsights-shims\";\nimport { Data, Envelope, RemoteDependencyData, Event, Exception, Metric, PageView, Trace, PageViewPerformance, CtxTagKeys, HttpMethod, SampleRate, dataSanitizeString } from \"@microsoft/applicationinsights-common\";\nimport { LoggingSeverity, _InternalMessageId, hasJSON, getJSON, objForEachKey, isNullOrUndefined, isNumber, isString, toISOString, setValue, isTruthy, optimizeObject } from \"@microsoft/applicationinsights-core-js\"; // these two constants are used to filter out properties not needed when trying to extract custom properties and measurements from the incoming payload\n\nvar strBaseType = \"baseType\";\nvar strBaseData = \"baseData\";\nvar strProperties = \"properties\";\nvar strTrue = \"true\";\n\nfunction _setValueIf(target, field, value) {\n return setValue(target, field, value, isTruthy);\n}\n/*\r\n * Maps Part A data from CS 4.0\r\n */\n\n\nfunction _extractPartAExtensions(logger, item, env) {\n // todo: switch to keys from common in this method\n var envTags = env.tags = env.tags || {};\n var itmExt = item.ext = item.ext || {};\n var itmTags = item.tags = item.tags || [];\n var extUser = itmExt.user;\n\n if (extUser) {\n _setValueIf(envTags, CtxTagKeys.userAuthUserId, extUser.authId);\n\n _setValueIf(envTags, CtxTagKeys.userId, extUser.id || extUser.localId);\n }\n\n var extApp = itmExt.app;\n\n if (extApp) {\n _setValueIf(envTags, CtxTagKeys.sessionId, extApp.sesId);\n }\n\n var extDevice = itmExt.device;\n\n if (extDevice) {\n _setValueIf(envTags, CtxTagKeys.deviceId, extDevice.id || extDevice.localId);\n\n _setValueIf(envTags, CtxTagKeys.deviceType, extDevice.deviceClass);\n\n _setValueIf(envTags, CtxTagKeys.deviceIp, extDevice.ip);\n\n _setValueIf(envTags, CtxTagKeys.deviceModel, extDevice.model);\n\n _setValueIf(envTags, CtxTagKeys.deviceType, extDevice.deviceType);\n }\n\n var web = item.ext.web;\n\n if (web) {\n _setValueIf(envTags, CtxTagKeys.deviceLanguage, web.browserLang);\n\n _setValueIf(envTags, CtxTagKeys.deviceBrowserVersion, web.browserVer);\n\n _setValueIf(envTags, CtxTagKeys.deviceBrowser, web.browser);\n\n var envData = env.data = env.data || {};\n var envBaseData = envData[strBaseData] = envData[strBaseData] || {};\n var envProps = envBaseData[strProperties] = envBaseData[strProperties] || {};\n\n _setValueIf(envProps, \"domain\", web.domain);\n\n _setValueIf(envProps, \"isManual\", web.isManual ? strTrue : null);\n\n _setValueIf(envProps, \"screenRes\", web.screenRes);\n\n _setValueIf(envProps, \"userConsent\", web.userConsent ? strTrue : null);\n }\n\n var extOs = itmExt.os;\n\n if (extOs) {\n _setValueIf(envTags, CtxTagKeys.deviceOS, extOs.name);\n } // No support for mapping Trace.traceState to 2.0 as it is currently empty\n\n\n var extTrace = itmExt.trace;\n\n if (extTrace) {\n _setValueIf(envTags, CtxTagKeys.operationParentId, extTrace.parentID);\n\n _setValueIf(envTags, CtxTagKeys.operationName, dataSanitizeString(logger, extTrace.name));\n\n _setValueIf(envTags, CtxTagKeys.operationId, extTrace.traceID);\n } // Sample 4.0 schema\n // {\n // \"time\" : \"2018-09-05T22:51:22.4936Z\",\n // \"name\" : \"MetricWithNamespace\",\n // \"iKey\" : \"ABC-5a4cbd20-e601-4ef5-a3c6-5d6577e4398e\",\n // \"ext\": { \"cloud\": {\n // \"role\": \"WATSON3\",\n // \"roleInstance\": \"CO4AEAP00000260\"\n // },\n // \"device\": {}, \"correlation\": {} },\n // \"tags\": [\n // { \"amazon.region\" : \"east2\" },\n // { \"os.expid\" : \"wp:02df239\" }\n // ]\n // }\n\n\n var tgs = {}; // deals with tags.push({object})\n\n for (var i = itmTags.length - 1; i >= 0; i--) {\n var tg = itmTags[i];\n objForEachKey(tg, function (key, value) {\n tgs[key] = value;\n });\n itmTags.splice(i, 1);\n } // deals with tags[key]=value (and handles hasOwnProperty)\n\n\n objForEachKey(itmTags, function (tg, value) {\n tgs[tg] = value;\n });\n\n var theTags = __assign(__assign({}, envTags), tgs);\n\n if (!theTags[CtxTagKeys.internalSdkVersion]) {\n // Append a version in case it is not already set\n theTags[CtxTagKeys.internalSdkVersion] = \"javascript:\".concat(EnvelopeCreator.Version);\n }\n\n env.tags = optimizeObject(theTags);\n}\n\nfunction _extractPropsAndMeasurements(data, properties, measurements) {\n if (!isNullOrUndefined(data)) {\n objForEachKey(data, function (key, value) {\n if (isNumber(value)) {\n measurements[key] = value;\n } else if (isString(value)) {\n properties[key] = value;\n } else if (hasJSON()) {\n properties[key] = getJSON().stringify(value);\n }\n });\n }\n}\n\nfunction _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue) {\n if (!isNullOrUndefined(properties)) {\n objForEachKey(properties, function (key, value) {\n properties[key] = value || customUndefinedValue;\n });\n }\n} // TODO: Do we want this to take logger as arg or use this._logger as nonstatic?\n\n\nfunction _createEnvelope(logger, envelopeType, telemetryItem, data) {\n var envelope = new Envelope(logger, data, envelopeType);\n\n _setValueIf(envelope, \"sampleRate\", telemetryItem[SampleRate]);\n\n if ((telemetryItem[strBaseData] || {}).startTime) {\n envelope.time = toISOString(telemetryItem[strBaseData].startTime);\n }\n\n envelope.iKey = telemetryItem.iKey;\n var iKeyNoDashes = telemetryItem.iKey.replace(/-/g, \"\");\n envelope.name = envelope.name.replace(\"{0}\", iKeyNoDashes); // extract all extensions from ctx\n\n _extractPartAExtensions(logger, telemetryItem, envelope); // loop through the envelope tags (extension of Part A) and pick out the ones that should go in outgoing envelope tags\n\n\n telemetryItem.tags = telemetryItem.tags || [];\n return optimizeObject(envelope);\n}\n\nfunction EnvelopeCreatorInit(logger, telemetryItem) {\n if (isNullOrUndefined(telemetryItem[strBaseData])) {\n logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryEnvelopeInvalid, \"telemetryItem.baseData cannot be null.\");\n }\n}\n\nexport var EnvelopeCreator = {\n Version: \"2.7.4\"\n};\nexport function DependencyEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\n EnvelopeCreatorInit(logger, telemetryItem);\n var customMeasurements = telemetryItem[strBaseData].measurements || {};\n var customProperties = telemetryItem[strBaseData][strProperties] || {};\n\n _extractPropsAndMeasurements(telemetryItem.data, customProperties, customMeasurements);\n\n if (!isNullOrUndefined(customUndefinedValue)) {\n _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\n }\n\n var bd = telemetryItem[strBaseData];\n\n if (isNullOrUndefined(bd)) {\n logger.warnToConsole(\"Invalid input for dependency data\");\n return null;\n }\n\n var method = bd[strProperties] && bd[strProperties][HttpMethod] ? bd[strProperties][HttpMethod] : \"GET\";\n var remoteDepData = new RemoteDependencyData(logger, bd.id, bd.target, bd.name, bd.duration, bd.success, bd.responseCode, method, bd.type, bd.correlationContext, customProperties, customMeasurements);\n var data = new Data(RemoteDependencyData.dataType, remoteDepData);\n return _createEnvelope(logger, RemoteDependencyData.envelopeType, telemetryItem, data);\n}\nexport function EventEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\n EnvelopeCreatorInit(logger, telemetryItem);\n var customProperties = {};\n var customMeasurements = {};\n\n if (telemetryItem[strBaseType] !== Event.dataType) {\n customProperties[\"baseTypeSource\"] = telemetryItem[strBaseType]; // save the passed in base type as a property\n }\n\n if (telemetryItem[strBaseType] === Event.dataType) {\n // take collection\n customProperties = telemetryItem[strBaseData][strProperties] || {};\n customMeasurements = telemetryItem[strBaseData].measurements || {};\n } else {\n // if its not a known type, convert to custom event\n if (telemetryItem[strBaseData]) {\n _extractPropsAndMeasurements(telemetryItem[strBaseData], customProperties, customMeasurements);\n }\n } // Extract root level properties from part C telemetryItem.data\n\n\n _extractPropsAndMeasurements(telemetryItem.data, customProperties, customMeasurements);\n\n if (!isNullOrUndefined(customUndefinedValue)) {\n _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\n }\n\n var eventName = telemetryItem[strBaseData].name;\n var eventData = new Event(logger, eventName, customProperties, customMeasurements);\n var data = new Data(Event.dataType, eventData);\n return _createEnvelope(logger, Event.envelopeType, telemetryItem, data);\n}\nexport function ExceptionEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\n EnvelopeCreatorInit(logger, telemetryItem); // Extract root level properties from part C telemetryItem.data\n\n var customMeasurements = telemetryItem[strBaseData].measurements || {};\n var customProperties = telemetryItem[strBaseData][strProperties] || {};\n\n _extractPropsAndMeasurements(telemetryItem.data, customProperties, customMeasurements);\n\n if (!isNullOrUndefined(customUndefinedValue)) {\n _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\n }\n\n var bd = telemetryItem[strBaseData];\n var exData = Exception.CreateFromInterface(logger, bd, customProperties, customMeasurements);\n var data = new Data(Exception.dataType, exData);\n return _createEnvelope(logger, Exception.envelopeType, telemetryItem, data);\n}\nexport function MetricEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\n EnvelopeCreatorInit(logger, telemetryItem);\n var baseData = telemetryItem[strBaseData];\n var props = baseData[strProperties] || {};\n var measurements = baseData.measurements || {};\n\n _extractPropsAndMeasurements(telemetryItem.data, props, measurements);\n\n if (!isNullOrUndefined(customUndefinedValue)) {\n _convertPropsUndefinedToCustomDefinedValue(props, customUndefinedValue);\n }\n\n var baseMetricData = new Metric(logger, baseData.name, baseData.average, baseData.sampleCount, baseData.min, baseData.max, baseData.stdDev, props, measurements);\n var data = new Data(Metric.dataType, baseMetricData);\n return _createEnvelope(logger, Metric.envelopeType, telemetryItem, data);\n}\nexport function PageViewEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\n EnvelopeCreatorInit(logger, telemetryItem); // Since duration is not part of the domain properties in Common Schema, extract it from part C\n\n var strDuration = \"duration\";\n var duration;\n var baseData = telemetryItem[strBaseData];\n\n if (!isNullOrUndefined(baseData) && !isNullOrUndefined(baseData[strProperties]) && !isNullOrUndefined(baseData[strProperties][strDuration])) {\n // from part B properties\n duration = baseData[strProperties][strDuration];\n delete baseData[strProperties][strDuration];\n } else if (!isNullOrUndefined(telemetryItem.data) && !isNullOrUndefined(telemetryItem.data[strDuration])) {\n // from custom properties\n duration = telemetryItem.data[strDuration];\n delete telemetryItem.data[strDuration];\n }\n\n var bd = telemetryItem[strBaseData]; // special case: pageview.id is grabbed from current operation id. Analytics plugin is decoupled from properties plugin, so this is done here instead. This can be made a default telemetry intializer instead if needed to be decoupled from channel\n\n var currentContextId;\n\n if (((telemetryItem.ext || {}).trace || {}).traceID) {\n currentContextId = telemetryItem.ext.trace.traceID;\n }\n\n var id = bd.id || currentContextId;\n var name = bd.name;\n var url = bd.uri;\n var properties = bd[strProperties] || {};\n var measurements = bd.measurements || {}; // refUri is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\n\n if (!isNullOrUndefined(bd.refUri)) {\n properties[\"refUri\"] = bd.refUri;\n } // pageType is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\n\n\n if (!isNullOrUndefined(bd.pageType)) {\n properties[\"pageType\"] = bd.pageType;\n } // isLoggedIn is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\n\n\n if (!isNullOrUndefined(bd.isLoggedIn)) {\n properties[\"isLoggedIn\"] = bd.isLoggedIn.toString();\n } // pageTags is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\n\n\n if (!isNullOrUndefined(bd[strProperties])) {\n var pageTags = bd[strProperties];\n objForEachKey(pageTags, function (key, value) {\n properties[key] = value;\n });\n }\n\n _extractPropsAndMeasurements(telemetryItem.data, properties, measurements);\n\n if (!isNullOrUndefined(customUndefinedValue)) {\n _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue);\n }\n\n var pageViewData = new PageView(logger, name, url, duration, properties, measurements, id);\n var data = new Data(PageView.dataType, pageViewData);\n return _createEnvelope(logger, PageView.envelopeType, telemetryItem, data);\n}\nexport function PageViewPerformanceEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\n EnvelopeCreatorInit(logger, telemetryItem);\n var bd = telemetryItem[strBaseData];\n var name = bd.name;\n var url = bd.uri || bd.url;\n var properties = bd[strProperties] || {};\n var measurements = bd.measurements || {};\n\n _extractPropsAndMeasurements(telemetryItem.data, properties, measurements);\n\n if (!isNullOrUndefined(customUndefinedValue)) {\n _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue);\n }\n\n var baseData = new PageViewPerformance(logger, name, url, undefined, properties, measurements, bd);\n var data = new Data(PageViewPerformance.dataType, baseData);\n return _createEnvelope(logger, PageViewPerformance.envelopeType, telemetryItem, data);\n}\nexport function TraceEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\n EnvelopeCreatorInit(logger, telemetryItem);\n var message = telemetryItem[strBaseData].message;\n var severityLevel = telemetryItem[strBaseData].severityLevel;\n var props = telemetryItem[strBaseData][strProperties] || {};\n var measurements = telemetryItem[strBaseData].measurements || {};\n\n _extractPropsAndMeasurements(telemetryItem.data, props, measurements);\n\n if (!isNullOrUndefined(customUndefinedValue)) {\n _convertPropsUndefinedToCustomDefinedValue(props, customUndefinedValue);\n }\n\n var baseData = new Trace(logger, message, severityLevel, props, measurements);\n var data = new Data(Trace.dataType, baseData);\n return _createEnvelope(logger, Trace.envelopeType, telemetryItem, data);\n}","/*\n * Application Insights JavaScript SDK - Channel, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { LoggingSeverity, _InternalMessageId, getJSON, objForEachKey, isFunction, isObject, isArray } from \"@microsoft/applicationinsights-core-js\";\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\n\nvar Serializer =\n/** @class */\nfunction () {\n function Serializer(logger) {\n dynamicProto(Serializer, this, function (_self) {\n /**\r\n * Serializes the current object to a JSON string.\r\n */\n _self.serialize = function (input) {\n var output = _serializeObject(input, \"root\");\n\n try {\n return getJSON().stringify(output);\n } catch (e) {\n // if serialization fails return an empty string\n logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.CannotSerializeObject, e && isFunction(e.toString) ? e.toString() : \"Error serializing object\", null, true);\n }\n };\n\n function _serializeObject(source, name) {\n var circularReferenceCheck = \"__aiCircularRefCheck\";\n var output = {};\n\n if (!source) {\n logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.CannotSerializeObject, \"cannot serialize object because it is null or undefined\", {\n name: name\n }, true);\n return output;\n }\n\n if (source[circularReferenceCheck]) {\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.CircularReferenceDetected, \"Circular reference detected while serializing object\", {\n name: name\n }, true);\n return output;\n }\n\n if (!source.aiDataContract) {\n // special case for measurements/properties/tags\n if (name === \"measurements\") {\n output = _serializeStringMap(source, \"number\", name);\n } else if (name === \"properties\") {\n output = _serializeStringMap(source, \"string\", name);\n } else if (name === \"tags\") {\n output = _serializeStringMap(source, \"string\", name);\n } else if (isArray(source)) {\n output = _serializeArray(source, name);\n } else {\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.CannotSerializeObjectNonSerializable, \"Attempting to serialize an object which does not implement ISerializable\", {\n name: name\n }, true);\n\n try {\n // verify that the object can be stringified\n getJSON().stringify(source);\n output = source;\n } catch (e) {\n // if serialization fails return an empty string\n logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.CannotSerializeObject, e && isFunction(e.toString) ? e.toString() : \"Error serializing object\", null, true);\n }\n }\n\n return output;\n }\n\n source[circularReferenceCheck] = true;\n objForEachKey(source.aiDataContract, function (field, contract) {\n var isRequired = isFunction(contract) ? contract() & 1\n /* Required */\n : contract & 1\n /* Required */\n ;\n var isHidden = isFunction(contract) ? contract() & 4\n /* Hidden */\n : contract & 4\n /* Hidden */\n ;\n var isArray = contract & 2\n /* Array */\n ;\n var isPresent = source[field] !== undefined;\n var isObj = isObject(source[field]) && source[field] !== null;\n\n if (isRequired && !isPresent && !isArray) {\n logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.MissingRequiredFieldSpecification, \"Missing required field specification. The field is required but not present on source\", {\n field: field,\n name: name\n }); // If not in debug mode, continue and hope the error is permissible\n } else if (!isHidden) {\n // Don't serialize hidden fields\n var value = void 0;\n\n if (isObj) {\n if (isArray) {\n // special case; recurse on each object in the source array\n value = _serializeArray(source[field], field);\n } else {\n // recurse on the source object in this field\n value = _serializeObject(source[field], field);\n }\n } else {\n // assign the source field to the output even if undefined or required\n value = source[field];\n } // only emit this field if the value is defined\n\n\n if (value !== undefined) {\n output[field] = value;\n }\n }\n });\n delete source[circularReferenceCheck];\n return output;\n }\n\n function _serializeArray(sources, name) {\n var output;\n\n if (!!sources) {\n if (!isArray(sources)) {\n logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.ItemNotInArray, \"This field was specified as an array in the contract but the item is not an array.\\r\\n\", {\n name: name\n }, true);\n } else {\n output = [];\n\n for (var i = 0; i < sources.length; i++) {\n var source = sources[i];\n\n var item = _serializeObject(source, name + \"[\" + i + \"]\");\n\n output.push(item);\n }\n }\n }\n\n return output;\n }\n\n function _serializeStringMap(map, expectedType, name) {\n var output;\n\n if (map) {\n output = {};\n objForEachKey(map, function (field, value) {\n if (expectedType === \"string\") {\n if (value === undefined) {\n output[field] = \"undefined\";\n } else if (value === null) {\n output[field] = \"null\";\n } else if (!value.toString) {\n output[field] = \"invalid field: toString() is not defined.\";\n } else {\n output[field] = value.toString();\n }\n } else if (expectedType === \"number\") {\n if (value === undefined) {\n output[field] = \"undefined\";\n } else if (value === null) {\n output[field] = \"null\";\n } else {\n var num = parseFloat(value);\n\n if (isNaN(num)) {\n output[field] = \"NaN\";\n } else {\n output[field] = num;\n }\n }\n } else {\n output[field] = \"invalid field: \" + name + \" is of unknown type.\";\n logger.throwInternal(LoggingSeverity.CRITICAL, output[field], null, true);\n }\n });\n }\n\n return output;\n }\n });\n } // Removed Stub for Serializer.prototype.serialize.\n\n\n return Serializer;\n}();\n\nexport { Serializer };","/*\n * Application Insights JavaScript SDK - Channel, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nvar _a;\n\nimport { __assignFn as __assign, __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\nimport { SessionStorageSendBuffer, ArraySendBuffer } from \"./SendBuffer\";\nimport { DependencyEnvelopeCreator, EventEnvelopeCreator, ExceptionEnvelopeCreator, MetricEnvelopeCreator, PageViewEnvelopeCreator, PageViewPerformanceEnvelopeCreator, TraceEnvelopeCreator } from \"./EnvelopeCreator\";\nimport { Serializer } from \"./Serializer\"; // todo move to channel\n\nimport { DisabledPropertyName, RequestHeaders, PageView, Event, Trace, Exception, Metric, PageViewPerformance, RemoteDependencyData, ProcessLegacy, BreezeChannelIdentifier, SampleRate, isInternalApplicationInsightsEndpoint, utlCanUseSessionStorage } from \"@microsoft/applicationinsights-common\";\nimport { _InternalMessageId, LoggingSeverity, getWindow, getNavigator, getJSON, BaseTelemetryPlugin, objForEachKey, isNullOrUndefined, arrForEach, dateNow, dumpObj, getExceptionName, getIEVersion, throwError, objKeys, isBeaconsSupported, isFetchSupported, useXDomainRequest, isXhrSupported, isArray } from \"@microsoft/applicationinsights-core-js\";\nimport { Offline } from \"./Offline\";\nimport { Sample } from \"./TelemetryProcessors/Sample\";\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\nvar FetchSyncRequestSizeLimitBytes = 65000; // approx 64kb (the current Edge, Firefox and Chrome max limit)\n\nfunction _getResponseText(xhr) {\n try {\n return xhr.responseText;\n } catch (e) {// Best effort, as XHR may throw while XDR wont so just ignore\n }\n\n return null;\n}\n\nfunction _getDefaultAppInsightsChannelConfig() {\n // set default values\n return {\n endpointUrl: function endpointUrl() {\n return \"https://dc.services.visualstudio.com/v2/track\";\n },\n emitLineDelimitedJson: function emitLineDelimitedJson() {\n return false;\n },\n maxBatchInterval: function maxBatchInterval() {\n return 15000;\n },\n maxBatchSizeInBytes: function maxBatchSizeInBytes() {\n return 102400;\n },\n disableTelemetry: function disableTelemetry() {\n return false;\n },\n enableSessionStorageBuffer: function enableSessionStorageBuffer() {\n return true;\n },\n isRetryDisabled: function isRetryDisabled() {\n return false;\n },\n isBeaconApiDisabled: function isBeaconApiDisabled() {\n return true;\n },\n disableXhr: function disableXhr() {\n return false;\n },\n onunloadDisableFetch: function onunloadDisableFetch() {\n return false;\n },\n onunloadDisableBeacon: function onunloadDisableBeacon() {\n return false;\n },\n instrumentationKey: function instrumentationKey() {\n return undefined;\n },\n namePrefix: function namePrefix() {\n return undefined;\n },\n samplingPercentage: function samplingPercentage() {\n return 100;\n },\n customHeaders: function customHeaders() {\n return undefined;\n },\n convertUndefined: function convertUndefined() {\n return undefined;\n },\n eventsLimitInMem: function eventsLimitInMem() {\n return 10000;\n }\n };\n}\n\nvar EnvelopeTypeCreator = (_a = {}, _a[Event.dataType] = EventEnvelopeCreator, _a[Trace.dataType] = TraceEnvelopeCreator, _a[PageView.dataType] = PageViewEnvelopeCreator, _a[PageViewPerformance.dataType] = PageViewPerformanceEnvelopeCreator, _a[Exception.dataType] = ExceptionEnvelopeCreator, _a[Metric.dataType] = MetricEnvelopeCreator, _a[RemoteDependencyData.dataType] = DependencyEnvelopeCreator, _a);\n\nvar Sender =\n/** @class */\nfunction (_super) {\n __extends(Sender, _super);\n\n function Sender() {\n var _this = _super.call(this) || this;\n\n _this.priority = 1001;\n _this.identifier = BreezeChannelIdentifier;\n /**\r\n * How many times in a row a retryable error condition has occurred.\r\n */\n\n var _consecutiveErrors;\n /**\r\n * The time to retry at in milliseconds from 1970/01/01 (this makes the timer calculation easy).\r\n */\n\n\n var _retryAt;\n /**\r\n * The time of the last send operation.\r\n */\n\n\n var _lastSend;\n /**\r\n * Flag indicating that the sending should be paused\r\n */\n\n\n var _paused = false;\n /**\r\n * Handle to the timer for delayed sending of batches of data.\r\n */\n\n var _timeoutHandle;\n\n var _serializer;\n\n var _stamp_specific_redirects;\n\n var _headers = {}; // Keep track of the outstanding sync fetch payload total (as sync fetch has limits)\n\n var _syncFetchPayload = 0;\n /**\r\n * The sender to use if the payload size is too large\r\n */\n\n var _fallbackSender;\n /**\r\n * The identified sender to use for the synchronous unload stage\r\n */\n\n\n var _syncUnloadSender;\n\n _this._senderConfig = _getDefaultAppInsightsChannelConfig();\n dynamicProto(Sender, _this, function (_self, _base) {\n function _notImplemented() {\n throwError(\"Method not implemented.\");\n }\n\n _self.pause = function () {\n _clearScheduledTimer();\n\n _paused = true;\n };\n\n _self.resume = function () {\n if (_paused) {\n _paused = false;\n _retryAt = null; // flush if we have exceeded the max-size already\n\n if (_self._buffer.size() > _self._senderConfig.maxBatchSizeInBytes()) {\n _self.triggerSend(true, null, 10\n /* MaxBatchSize */\n );\n }\n\n _setupTimer();\n }\n };\n\n _self.flush = function () {\n if (!_paused) {\n // Clear the normal schedule timer as we are going to try and flush ASAP\n _clearScheduledTimer();\n\n try {\n _self.triggerSend(true, null, 1\n /* ManualFlush */\n );\n } catch (e) {\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.FlushFailed, \"flush failed, telemetry will not be collected: \" + getExceptionName(e), {\n exception: dumpObj(e)\n });\n }\n }\n };\n\n _self.onunloadFlush = function () {\n if (!_paused) {\n if ((_self._senderConfig.onunloadDisableBeacon() === false || _self._senderConfig.isBeaconApiDisabled() === false) && isBeaconsSupported()) {\n try {\n _self.triggerSend(true, _doUnloadSend, 2\n /* Unload */\n );\n } catch (e) {\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.FailedToSendQueuedTelemetry, \"failed to flush with beacon sender on page unload, telemetry will not be collected: \" + getExceptionName(e), {\n exception: dumpObj(e)\n });\n }\n } else {\n _self.flush();\n }\n }\n };\n\n _self.teardown = _notImplemented;\n\n _self.addHeader = function (name, value) {\n _headers[name] = value;\n };\n\n _self.initialize = function (config, core, extensions, pluginChain) {\n _base.initialize(config, core, extensions, pluginChain);\n\n var ctx = _self._getTelCtx();\n\n var identifier = _self.identifier;\n _serializer = new Serializer(core.logger);\n _consecutiveErrors = 0;\n _retryAt = null;\n _lastSend = 0;\n _self._sender = null;\n _stamp_specific_redirects = 0;\n\n var diagLog = _self.diagLog();\n\n var defaultConfig = _getDefaultAppInsightsChannelConfig();\n\n objForEachKey(defaultConfig, function (field, value) {\n _self._senderConfig[field] = function () {\n return ctx.getConfig(identifier, field, value());\n };\n });\n _self._buffer = _self._senderConfig.enableSessionStorageBuffer() && utlCanUseSessionStorage() ? new SessionStorageSendBuffer(diagLog, _self._senderConfig) : new ArraySendBuffer(diagLog, _self._senderConfig);\n _self._sample = new Sample(_self._senderConfig.samplingPercentage(), diagLog);\n\n if (!_validateInstrumentationKey(config)) {\n diagLog.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.InvalidInstrumentationKey, \"Invalid Instrumentation key \" + config.instrumentationKey);\n }\n\n if (!isInternalApplicationInsightsEndpoint(_self._senderConfig.endpointUrl()) && _self._senderConfig.customHeaders() && _self._senderConfig.customHeaders().length > 0) {\n arrForEach(_self._senderConfig.customHeaders(), function (customHeader) {\n _this.addHeader(customHeader.header, customHeader.value);\n });\n }\n\n var senderConfig = _self._senderConfig;\n var sendPostFunc = null;\n\n if (!senderConfig.disableXhr() && useXDomainRequest()) {\n sendPostFunc = _xdrSender; // IE 8 and 9\n } else if (!senderConfig.disableXhr() && isXhrSupported()) {\n sendPostFunc = _xhrSender;\n }\n\n if (!sendPostFunc && isFetchSupported()) {\n sendPostFunc = _fetchSender;\n } // always fallback to XHR\n\n\n _fallbackSender = sendPostFunc || _xhrSender;\n\n if (!senderConfig.isBeaconApiDisabled() && isBeaconsSupported()) {\n // Config is set to always used beacon sending\n sendPostFunc = _beaconSender;\n }\n\n _self._sender = sendPostFunc || _xhrSender;\n\n if (!senderConfig.onunloadDisableFetch() && isFetchSupported(true)) {\n // Try and use the fetch with keepalive\n _syncUnloadSender = _fetchKeepAliveSender;\n } else if (isBeaconsSupported()) {\n // Try and use sendBeacon\n _syncUnloadSender = _beaconSender;\n } else if (!senderConfig.disableXhr() && useXDomainRequest()) {\n _syncUnloadSender = _xdrSender; // IE 8 and 9\n } else if (!senderConfig.disableXhr() && isXhrSupported()) {\n _syncUnloadSender = _xhrSender;\n } else {\n _syncUnloadSender = _fallbackSender;\n }\n };\n\n _self.processTelemetry = function (telemetryItem, itemCtx) {\n itemCtx = _self._getTelCtx(itemCtx);\n\n try {\n // if master off switch is set, don't send any data\n if (_self._senderConfig.disableTelemetry()) {\n // Do not send/save data\n return;\n } // validate input\n\n\n if (!telemetryItem) {\n itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.CannotSendEmptyTelemetry, \"Cannot send empty telemetry\");\n return;\n } // validate event\n\n\n if (telemetryItem.baseData && !telemetryItem.baseType) {\n itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.InvalidEvent, \"Cannot send telemetry without baseData and baseType\");\n return;\n }\n\n if (!telemetryItem.baseType) {\n // Default\n telemetryItem.baseType = \"EventData\";\n } // ensure a sender was constructed\n\n\n if (!_self._sender) {\n itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.SenderNotInitialized, \"Sender was not initialized\");\n return;\n } // check if this item should be sampled in, else add sampleRate tag\n\n\n if (!_isSampledIn(telemetryItem)) {\n // Item is sampled out, do not send it\n itemCtx.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TelemetrySampledAndNotSent, \"Telemetry item was sampled out and not sent\", {\n SampleRate: _self._sample.sampleRate\n });\n return;\n } else {\n telemetryItem[SampleRate] = _self._sample.sampleRate;\n }\n\n var convertUndefined = _self._senderConfig.convertUndefined() || undefined; // construct an envelope that Application Insights endpoint can understand\n // if ikey of telemetry is provided and not empty, envelope will use this iKey instead of senderConfig iKey\n\n var defaultEnvelopeIkey = telemetryItem.iKey || _self._senderConfig.instrumentationKey();\n\n var aiEnvelope_1 = Sender.constructEnvelope(telemetryItem, defaultEnvelopeIkey, itemCtx.diagLog(), convertUndefined);\n\n if (!aiEnvelope_1) {\n itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.CreateEnvelopeError, \"Unable to create an AppInsights envelope\");\n return;\n }\n\n var doNotSendItem_1 = false; // this is for running in legacy mode, where customer may already have a custom initializer present\n\n if (telemetryItem.tags && telemetryItem.tags[ProcessLegacy]) {\n arrForEach(telemetryItem.tags[ProcessLegacy], function (callBack) {\n try {\n if (callBack && callBack(aiEnvelope_1) === false) {\n doNotSendItem_1 = true;\n itemCtx.diagLog().warnToConsole(\"Telemetry processor check returns false\");\n }\n } catch (e) {\n // log error but dont stop executing rest of the telemetry initializers\n // doNotSendItem = true;\n itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryInitializerFailed, \"One of telemetry initializers failed, telemetry item will not be sent: \" + getExceptionName(e), {\n exception: dumpObj(e)\n }, true);\n }\n });\n delete telemetryItem.tags[ProcessLegacy];\n }\n\n if (doNotSendItem_1) {\n return; // do not send, no need to execute next plugin\n } // check if the incoming payload is too large, truncate if necessary\n\n\n var payload = _serializer.serialize(aiEnvelope_1); // flush if we would exceed the max-size limit by adding this item\n\n\n var buffer = _self._buffer;\n var bufferSize = buffer.size();\n\n if (bufferSize + payload.length > _self._senderConfig.maxBatchSizeInBytes()) {\n _self.triggerSend(true, null, 10\n /* MaxBatchSize */\n );\n } // enqueue the payload\n\n\n buffer.enqueue(payload); // ensure an invocation timeout is set\n\n _setupTimer();\n } catch (e) {\n itemCtx.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.FailedAddingTelemetryToBuffer, \"Failed adding telemetry to the sender's buffer, some telemetry will be lost: \" + getExceptionName(e), {\n exception: dumpObj(e)\n });\n } // hand off the telemetry item to the next plugin\n\n\n _self.processNext(telemetryItem, itemCtx);\n };\n /**\r\n * xhr state changes\r\n */\n\n\n _self._xhrReadyStateChange = function (xhr, payload, countOfItemsInPayload) {\n if (xhr.readyState === 4) {\n _checkResponsStatus(xhr.status, payload, xhr.responseURL, countOfItemsInPayload, _formatErrorMessageXhr(xhr), _getResponseText(xhr) || xhr.response);\n }\n };\n /**\r\n * Immediately send buffered data\r\n * @param async {boolean} - Indicates if the events should be sent asynchronously\r\n * @param forcedSender {SenderFunction} - Indicates the forcedSender, undefined if not passed\r\n */\n\n\n _self.triggerSend = function (async, forcedSender, sendReason) {\n if (async === void 0) {\n async = true;\n }\n\n if (!_paused) {\n try {\n var buffer = _self._buffer; // Send data only if disableTelemetry is false\n\n if (!_self._senderConfig.disableTelemetry()) {\n if (buffer.count() > 0) {\n var payload = buffer.getItems();\n\n _notifySendRequest(sendReason || 0\n /* Undefined */\n , async); // invoke send\n\n\n if (forcedSender) {\n forcedSender.call(_this, payload, async);\n } else {\n _self._sender(payload, async);\n }\n } // update lastSend time to enable throttling\n\n\n _lastSend = +new Date();\n } else {\n buffer.clear();\n }\n\n _clearScheduledTimer();\n } catch (e) {\n /* Ignore this error for IE under v10 */\n var ieVer = getIEVersion();\n\n if (!ieVer || ieVer > 9) {\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TransmissionFailed, \"Telemetry transmission failed, some telemetry will be lost: \" + getExceptionName(e), {\n exception: dumpObj(e)\n });\n }\n }\n }\n };\n /**\r\n * error handler\r\n */\n\n\n _self._onError = function (payload, message, event) {\n _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.OnError, \"Failed to send telemetry.\", {\n message: message\n });\n\n _self._buffer.clearSent(payload);\n };\n /**\r\n * partial success handler\r\n */\n\n\n _self._onPartialSuccess = function (payload, results) {\n var failed = [];\n var retry = []; // Iterate through the reversed array of errors so that splicing doesn't have invalid indexes after the first item.\n\n var errors = results.errors.reverse();\n\n for (var _i = 0, errors_1 = errors; _i < errors_1.length; _i++) {\n var error = errors_1[_i];\n var extracted = payload.splice(error.index, 1)[0];\n\n if (_isRetriable(error.statusCode)) {\n retry.push(extracted);\n } else {\n // All other errors, including: 402 (Monthly quota exceeded) and 439 (Too many requests and refresh cache).\n failed.push(extracted);\n }\n }\n\n if (payload.length > 0) {\n _self._onSuccess(payload, results.itemsAccepted);\n }\n\n if (failed.length > 0) {\n _self._onError(failed, _formatErrorMessageXhr(null, [\"partial success\", results.itemsAccepted, \"of\", results.itemsReceived].join(\" \")));\n }\n\n if (retry.length > 0) {\n _resendPayload(retry);\n\n _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, \"Partial success. \" + \"Delivered: \" + payload.length + \", Failed: \" + failed.length + \". Will retry to send \" + retry.length + \" our of \" + results.itemsReceived + \" items\");\n }\n };\n /**\r\n * success handler\r\n */\n\n\n _self._onSuccess = function (payload, countOfItemsInPayload) {\n _self._buffer.clearSent(payload);\n };\n /**\r\n * xdr state changes\r\n */\n\n\n _self._xdrOnLoad = function (xdr, payload) {\n var responseText = _getResponseText(xdr);\n\n if (xdr && (responseText + \"\" === \"200\" || responseText === \"\")) {\n _consecutiveErrors = 0;\n\n _self._onSuccess(payload, 0);\n } else {\n var results = _parseResponse(responseText);\n\n if (results && results.itemsReceived && results.itemsReceived > results.itemsAccepted && !_self._senderConfig.isRetryDisabled()) {\n _self._onPartialSuccess(payload, results);\n } else {\n _self._onError(payload, _formatErrorMessageXdr(xdr));\n }\n }\n };\n\n function _isSampledIn(envelope) {\n return _self._sample.isSampledIn(envelope);\n }\n\n function _checkResponsStatus(status, payload, responseUrl, countOfItemsInPayload, errorMessage, res) {\n var response = null;\n\n if (!_self._appId) {\n response = _parseResponse(res);\n\n if (response && response.appId) {\n _self._appId = response.appId;\n }\n }\n\n if ((status < 200 || status >= 300) && status !== 0) {\n // Update End Point url if permanent redirect or moved permanently\n // Updates the end point url before retry\n if (status === 301 || status === 307 || status === 308) {\n if (!_checkAndUpdateEndPointUrl(responseUrl)) {\n _self._onError(payload, errorMessage);\n\n return;\n }\n }\n\n if (!_self._senderConfig.isRetryDisabled() && _isRetriable(status)) {\n _resendPayload(payload);\n\n _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, \". \" + \"Response code \" + status + \". Will retry to send \" + payload.length + \" items.\");\n } else {\n _self._onError(payload, errorMessage);\n }\n } else if (Offline.isOffline()) {\n // offline\n // Note: Don't check for status == 0, since adblock gives this code\n if (!_self._senderConfig.isRetryDisabled()) {\n var offlineBackOffMultiplier = 10; // arbritrary number\n\n _resendPayload(payload, offlineBackOffMultiplier);\n\n _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, \". Offline - Response Code: \".concat(status, \". Offline status: \").concat(Offline.isOffline(), \". Will retry to send \").concat(payload.length, \" items.\"));\n }\n } else {\n // check if the xhr's responseURL or fetch's response.url is same as endpoint url\n // TODO after 10 redirects force send telemetry with 'redirect=false' as query parameter.\n _checkAndUpdateEndPointUrl(responseUrl);\n\n if (status === 206) {\n if (!response) {\n response = _parseResponse(res);\n }\n\n if (response && !_self._senderConfig.isRetryDisabled()) {\n _self._onPartialSuccess(payload, response);\n } else {\n _self._onError(payload, errorMessage);\n }\n } else {\n _consecutiveErrors = 0;\n\n _self._onSuccess(payload, countOfItemsInPayload);\n }\n }\n }\n\n function _checkAndUpdateEndPointUrl(responseUrl) {\n // Maximum stamp specific redirects allowed(uncomment this when breeze is ready with not allowing redirects feature)\n if (_stamp_specific_redirects >= 10) {\n // _self._senderConfig.endpointUrl = () => Sender._getDefaultAppInsightsChannelConfig().endpointUrl()+\"/?redirect=false\";\n // _stamp_specific_redirects = 0;\n return false;\n }\n\n if (!isNullOrUndefined(responseUrl) && responseUrl !== \"\") {\n if (responseUrl !== _self._senderConfig.endpointUrl()) {\n _self._senderConfig.endpointUrl = function () {\n return responseUrl;\n };\n\n ++_stamp_specific_redirects;\n return true;\n }\n }\n\n return false;\n }\n\n function _doUnloadSend(payload, isAsync) {\n if (_syncUnloadSender) {\n // We are unloading so always call the sender with sync set to false\n _syncUnloadSender(payload, false);\n } else {\n // Fallback to the previous beacon Sender (which causes a CORB warning on chrome now)\n _beaconSender(payload, isAsync);\n }\n }\n\n function _doBeaconSend(payload) {\n var nav = getNavigator();\n var buffer = _self._buffer;\n\n var url = _self._senderConfig.endpointUrl();\n\n var batch = _self._buffer.batchPayloads(payload); // Chrome only allows CORS-safelisted values for the sendBeacon data argument\n // see: https://bugs.chromium.org/p/chromium/issues/detail?id=720283\n\n\n var plainTextBatch = new Blob([batch], {\n type: \"text/plain;charset=UTF-8\"\n }); // The sendBeacon method returns true if the user agent is able to successfully queue the data for transfer. Otherwise it returns false.\n\n var queued = nav.sendBeacon(url, plainTextBatch);\n\n if (queued) {\n buffer.markAsSent(payload); // no response from beaconSender, clear buffer\n\n _self._onSuccess(payload, payload.length);\n }\n\n return queued;\n }\n /**\r\n * Send Beacon API request\r\n * @param payload {string} - The data payload to be sent.\r\n * @param isAsync {boolean} - not used\r\n * Note: Beacon API does not support custom headers and we are not able to get\r\n * appId from the backend for the correct correlation.\r\n */\n\n\n function _beaconSender(payload, isAsync) {\n if (isArray(payload) && payload.length > 0) {\n // The sendBeacon method returns true if the user agent is able to successfully queue the data for transfer. Otherwise it returns false.\n if (!_doBeaconSend(payload)) {\n // Failed to send entire payload so try and split data and try to send as much events as possible\n var droppedPayload = [];\n\n for (var lp = 0; lp < payload.length; lp++) {\n var thePayload = payload[lp];\n\n if (!_doBeaconSend([thePayload])) {\n // Can't send anymore, so split the batch and drop the rest\n droppedPayload.push(thePayload);\n }\n }\n\n if (droppedPayload.length > 0) {\n _fallbackSender(droppedPayload, true);\n\n _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, \". \" + \"Failed to send telemetry with Beacon API, retried with normal sender.\");\n }\n }\n }\n }\n /**\r\n * Send XMLHttpRequest\r\n * @param payload {string} - The data payload to be sent.\r\n * @param isAsync {boolean} - Indicates if the request should be sent asynchronously\r\n */\n\n\n function _xhrSender(payload, isAsync) {\n var xhr = new XMLHttpRequest();\n\n var endPointUrl = _self._senderConfig.endpointUrl();\n\n try {\n xhr[DisabledPropertyName] = true;\n } catch (e) {// If the environment has locked down the XMLHttpRequest (preventExtensions and/or freeze), this would\n // cause the request to fail and we no telemetry would be sent\n }\n\n xhr.open(\"POST\", endPointUrl, isAsync);\n xhr.setRequestHeader(\"Content-type\", \"application/json\"); // append Sdk-Context request header only in case of breeze endpoint\n\n if (isInternalApplicationInsightsEndpoint(endPointUrl)) {\n xhr.setRequestHeader(RequestHeaders.sdkContextHeader, RequestHeaders.sdkContextHeaderAppIdRequest);\n }\n\n arrForEach(objKeys(_headers), function (headerName) {\n xhr.setRequestHeader(headerName, _headers[headerName]);\n });\n\n xhr.onreadystatechange = function () {\n return _self._xhrReadyStateChange(xhr, payload, payload.length);\n };\n\n xhr.onerror = function (event) {\n return _self._onError(payload, _formatErrorMessageXhr(xhr), event);\n }; // compose an array of payloads\n\n\n var batch = _self._buffer.batchPayloads(payload);\n\n xhr.send(batch);\n\n _self._buffer.markAsSent(payload);\n }\n\n function _fetchKeepAliveSender(payload, isAsync) {\n if (isArray(payload)) {\n var payloadSize = payload.length;\n\n for (var lp = 0; lp < payload.length; lp++) {\n payloadSize += payload[lp].length;\n }\n\n if (_syncFetchPayload + payloadSize <= FetchSyncRequestSizeLimitBytes) {\n _doFetchSender(payload, false);\n } else if (isBeaconsSupported()) {\n // Fallback to beacon sender as we at least get told which events can't be scheduled\n _beaconSender(payload, isAsync);\n } else {\n // Payload is going to be too big so just try and send via XHR\n _fallbackSender && _fallbackSender(payload, true);\n\n _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, \". \" + \"Failed to send telemetry with Beacon API, retried with xhrSender.\");\n }\n }\n }\n /**\r\n * Send fetch API request\r\n * @param payload {string} - The data payload to be sent.\r\n * @param isAsync {boolean} - not used\r\n */\n\n\n function _fetchSender(payload, isAsync) {\n _doFetchSender(payload, true);\n }\n /**\r\n * Send fetch API request\r\n * @param payload {string} - The data payload to be sent.\r\n * @param isAsync {boolean} - For fetch this identifies whether we are \"unloading\" (false) or a normal request\r\n */\n\n\n function _doFetchSender(payload, isAsync) {\n var _a;\n\n var endPointUrl = _self._senderConfig.endpointUrl();\n\n var batch = _self._buffer.batchPayloads(payload);\n\n var plainTextBatch = new Blob([batch], {\n type: \"application/json\"\n });\n var requestHeaders = new Headers();\n var batchLength = batch.length;\n var ignoreResponse = false;\n var responseHandled = false; // append Sdk-Context request header only in case of breeze endpoint\n\n if (isInternalApplicationInsightsEndpoint(endPointUrl)) {\n requestHeaders.append(RequestHeaders.sdkContextHeader, RequestHeaders.sdkContextHeaderAppIdRequest);\n }\n\n arrForEach(objKeys(_headers), function (headerName) {\n requestHeaders.append(headerName, _headers[headerName]);\n });\n var init = (_a = {\n method: \"POST\",\n headers: requestHeaders,\n body: plainTextBatch\n }, _a[DisabledPropertyName] = true // Mark so we don't attempt to track this request\n , _a);\n\n if (!isAsync) {\n init.keepalive = true; // As a sync request (during unload), it is unlikely that we will get a chance to process the response so\n // just like beacon send assume that the events have been accepted and processed\n\n ignoreResponse = true;\n _syncFetchPayload += batchLength;\n }\n\n var request = new Request(endPointUrl, init);\n\n try {\n // Also try and tag the request (just in case the value in init is not copied over)\n request[DisabledPropertyName] = true;\n } catch (e) {// If the environment has locked down the XMLHttpRequest (preventExtensions and/or freeze), this would\n // cause the request to fail and we no telemetry would be sent\n }\n\n _self._buffer.markAsSent(payload);\n\n try {\n fetch(request).then(function (response) {\n if (!isAsync) {\n _syncFetchPayload -= batchLength;\n batchLength = 0;\n }\n\n if (!responseHandled) {\n responseHandled = true;\n /**\r\n * The Promise returned from fetch() won’t reject on HTTP error status even if the response is an HTTP 404 or 500.\r\n * Instead, it will resolve normally (with ok status set to false), and it will only reject on network failure\r\n * or if anything prevented the request from completing.\r\n */\n\n if (!response.ok) {\n _self._onError(payload, response.statusText);\n } else {\n response.text().then(function (text) {\n _checkResponsStatus(response.status, payload, response.url, payload.length, response.statusText, text);\n });\n }\n }\n })[\"catch\"](function (error) {\n if (!isAsync) {\n _syncFetchPayload -= batchLength;\n batchLength = 0;\n }\n\n if (!responseHandled) {\n responseHandled = true;\n\n _self._onError(payload, error.message);\n }\n });\n } catch (e) {\n if (!responseHandled) {\n _self._onError(payload, dumpObj(e));\n }\n }\n\n if (ignoreResponse && !responseHandled) {\n // Assume success during unload processing as we most likely won't get the response\n responseHandled = true;\n\n _self._onSuccess(payload, payload.length);\n }\n }\n /**\r\n * Parses the response from the backend.\r\n * @param response - XMLHttpRequest or XDomainRequest response\r\n */\n\n\n function _parseResponse(response) {\n try {\n if (response && response !== \"\") {\n var result = getJSON().parse(response);\n\n if (result && result.itemsReceived && result.itemsReceived >= result.itemsAccepted && result.itemsReceived - result.itemsAccepted === result.errors.length) {\n return result;\n }\n }\n } catch (e) {\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.InvalidBackendResponse, \"Cannot parse the response. \" + getExceptionName(e), {\n response: response\n });\n }\n\n return null;\n }\n /**\r\n * Resend payload. Adds payload back to the send buffer and setup a send timer (with exponential backoff).\r\n * @param payload\r\n */\n\n\n function _resendPayload(payload, linearFactor) {\n if (linearFactor === void 0) {\n linearFactor = 1;\n }\n\n if (!payload || payload.length === 0) {\n return;\n }\n\n var buffer = _self._buffer;\n buffer.clearSent(payload);\n _consecutiveErrors++;\n\n for (var _i = 0, payload_1 = payload; _i < payload_1.length; _i++) {\n var item = payload_1[_i];\n buffer.enqueue(item);\n } // setup timer\n\n\n _setRetryTime(linearFactor);\n\n _setupTimer();\n }\n /**\r\n * Calculates the time to wait before retrying in case of an error based on\r\n * http://en.wikipedia.org/wiki/Exponential_backoff\r\n */\n\n\n function _setRetryTime(linearFactor) {\n var SlotDelayInSeconds = 10;\n var delayInSeconds;\n\n if (_consecutiveErrors <= 1) {\n delayInSeconds = SlotDelayInSeconds;\n } else {\n var backOffSlot = (Math.pow(2, _consecutiveErrors) - 1) / 2; // tslint:disable-next-line:insecure-random\n\n var backOffDelay = Math.floor(Math.random() * backOffSlot * SlotDelayInSeconds) + 1;\n backOffDelay = linearFactor * backOffDelay;\n delayInSeconds = Math.max(Math.min(backOffDelay, 3600), SlotDelayInSeconds);\n } // TODO: Log the backoff time like the C# version does.\n\n\n var retryAfterTimeSpan = dateNow() + delayInSeconds * 1000; // TODO: Log the retry at time like the C# version does.\n\n _retryAt = retryAfterTimeSpan;\n }\n /**\r\n * Sets up the timer which triggers actually sending the data.\r\n */\n\n\n function _setupTimer() {\n if (!_timeoutHandle && !_paused) {\n var retryInterval = _retryAt ? Math.max(0, _retryAt - dateNow()) : 0;\n var timerValue = Math.max(_self._senderConfig.maxBatchInterval(), retryInterval);\n _timeoutHandle = setTimeout(function () {\n _timeoutHandle = null;\n\n _self.triggerSend(true, null, 1\n /* NormalSchedule */\n );\n }, timerValue);\n }\n }\n\n function _clearScheduledTimer() {\n clearTimeout(_timeoutHandle);\n _timeoutHandle = null;\n _retryAt = null;\n }\n /**\r\n * Checks if the SDK should resend the payload after receiving this status code from the backend.\r\n * @param statusCode\r\n */\n\n\n function _isRetriable(statusCode) {\n return statusCode === 408 // Timeout\n || statusCode === 429 // Too many requests.\n || statusCode === 500 // Internal server error.\n || statusCode === 503; // Service unavailable.\n }\n\n function _formatErrorMessageXhr(xhr, message) {\n if (xhr) {\n return \"XMLHttpRequest,Status:\" + xhr.status + \",Response:\" + _getResponseText(xhr) || xhr.response || \"\";\n }\n\n return message;\n }\n /**\r\n * Send XDomainRequest\r\n * @param payload {string} - The data payload to be sent.\r\n * @param isAsync {boolean} - Indicates if the request should be sent asynchronously\r\n *\r\n * Note: XDomainRequest does not support sync requests. This 'isAsync' parameter is added\r\n * to maintain consistency with the xhrSender's contract\r\n * Note: XDomainRequest does not support custom headers and we are not able to get\r\n * appId from the backend for the correct correlation.\r\n */\n\n\n function _xdrSender(payload, isAsync) {\n var buffer = _self._buffer;\n\n var _window = getWindow();\n\n var xdr = new XDomainRequest();\n\n xdr.onload = function () {\n return _self._xdrOnLoad(xdr, payload);\n };\n\n xdr.onerror = function (event) {\n return _self._onError(payload, _formatErrorMessageXdr(xdr), event);\n }; // XDomainRequest requires the same protocol as the hosting page.\n // If the protocol doesn't match, we can't send the telemetry :(.\n\n\n var hostingProtocol = _window && _window.location && _window.location.protocol || \"\";\n\n if (_self._senderConfig.endpointUrl().lastIndexOf(hostingProtocol, 0) !== 0) {\n _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, \". \" + \"Cannot send XDomain request. The endpoint URL protocol doesn't match the hosting page protocol.\");\n\n buffer.clear();\n return;\n }\n\n var endpointUrl = _self._senderConfig.endpointUrl().replace(/^(https?:)/, \"\");\n\n xdr.open(\"POST\", endpointUrl); // compose an array of payloads\n\n var batch = buffer.batchPayloads(payload);\n xdr.send(batch);\n buffer.markAsSent(payload);\n }\n\n function _formatErrorMessageXdr(xdr, message) {\n if (xdr) {\n return \"XDomainRequest,Response:\" + _getResponseText(xdr) || \"\";\n }\n\n return message;\n } // Using function lookups for backward compatibility as the getNotifyMgr() did not exist until after v2.5.6\n\n\n function _getNotifyMgr() {\n var func = \"getNotifyMgr\";\n\n if (_self.core[func]) {\n return _self.core[func]();\n } // using _self.core['_notificationManager'] for backward compatibility\n\n\n return _self.core[\"_notificationManager\"];\n }\n\n function _notifySendRequest(sendRequest, isAsync) {\n var manager = _getNotifyMgr();\n\n if (manager && manager.eventsSendRequest) {\n try {\n manager.eventsSendRequest(sendRequest, isAsync);\n } catch (e) {\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.NotificationException, \"send request notification failed: \" + getExceptionName(e), {\n exception: dumpObj(e)\n });\n }\n }\n }\n /**\r\n * Validate UUID Format\r\n * Specs taken from https://tools.ietf.org/html/rfc4122 and breeze repo\r\n */\n\n\n function _validateInstrumentationKey(config) {\n var disableIKeyValidationFlag = isNullOrUndefined(config.disableInstrumentationKeyValidation) ? false : config.disableInstrumentationKeyValidation;\n\n if (disableIKeyValidationFlag) {\n return true;\n }\n\n var UUID_Regex = \"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$\";\n var regexp = new RegExp(UUID_Regex);\n return regexp.test(config.instrumentationKey);\n }\n });\n return _this;\n }\n\n Sender.constructEnvelope = function (orig, iKey, logger, convertUndefined) {\n var envelope;\n\n if (iKey !== orig.iKey && !isNullOrUndefined(iKey)) {\n envelope = __assign(__assign({}, orig), {\n iKey: iKey\n });\n } else {\n envelope = orig;\n }\n\n var creator = EnvelopeTypeCreator[envelope.baseType] || EventEnvelopeCreator;\n return creator(logger, envelope, convertUndefined);\n }; // Removed Stub for Sender.prototype.pause.\n // Removed Stub for Sender.prototype.resume.\n // Removed Stub for Sender.prototype.flush.\n // Removed Stub for Sender.prototype.onunloadFlush.\n // Removed Stub for Sender.prototype.teardown.\n // Removed Stub for Sender.prototype.initialize.\n // Removed Stub for Sender.prototype.processTelemetry.\n // Removed Stub for Sender.prototype._xhrReadyStateChange.\n // Removed Stub for Sender.prototype.triggerSend.\n // Removed Stub for Sender.prototype._onError.\n // Removed Stub for Sender.prototype._onPartialSuccess.\n // Removed Stub for Sender.prototype._onSuccess.\n // Removed Stub for Sender.prototype._xdrOnLoad.\n // Removed Stub for Sender.prototype.addHeader.\n\n\n return Sender;\n}(BaseTelemetryPlugin);\n\nexport { Sender };","/*\n * Application Insights JavaScript SDK - Channel, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { getWindow, getDocument, getNavigator, isUndefined, isNullOrUndefined, attachEvent } from \"@microsoft/applicationinsights-core-js\";\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\n/**\r\n * @description Monitors browser for offline events\r\n * @export default - Offline: Static instance of OfflineListener\r\n * @class OfflineListener\r\n */\n\nvar OfflineListener =\n/** @class */\nfunction () {\n function OfflineListener() {\n var _window = getWindow();\n\n var _document = getDocument();\n\n var isListening = false;\n var _onlineStatus = true;\n dynamicProto(OfflineListener, this, function (_self) {\n try {\n if (_window) {\n if (attachEvent(_window, \"online\", _setOnline)) {\n attachEvent(_window, \"offline\", _setOffline);\n isListening = true;\n }\n }\n\n if (_document) {\n // Also attach to the document.body or document\n var target = _document.body || _document;\n\n if (!isUndefined(target.ononline)) {\n target.ononline = _setOnline;\n target.onoffline = _setOffline;\n isListening = true;\n }\n }\n\n if (isListening) {\n // We are listening to events so lets set the current status rather than assuming we are online #1538\n var _navigator = getNavigator(); // Gets the window.navigator or workerNavigator depending on the global\n\n\n if (_navigator && !isNullOrUndefined(_navigator.onLine)) {\n // navigator.onLine is undefined in react-native\n _onlineStatus = _navigator.onLine;\n }\n }\n } catch (e) {\n // this makes react-native less angry\n isListening = false;\n }\n\n _self.isListening = isListening;\n\n _self.isOnline = function () {\n var result = true;\n\n var _navigator = getNavigator();\n\n if (isListening) {\n result = _onlineStatus;\n } else if (_navigator && !isNullOrUndefined(_navigator.onLine)) {\n // navigator.onLine is undefined in react-native\n result = _navigator.onLine;\n }\n\n return result;\n };\n\n _self.isOffline = function () {\n return !_self.isOnline();\n };\n\n function _setOnline() {\n _onlineStatus = true;\n }\n\n function _setOffline() {\n _onlineStatus = false;\n }\n });\n } // Removed Stub for OfflineListener.prototype.isOnline.\n // Removed Stub for OfflineListener.prototype.isOffline.\n\n\n OfflineListener.Offline = new OfflineListener();\n return OfflineListener;\n}();\n\nexport { OfflineListener };\nexport var Offline = OfflineListener.Offline;","/*\n * Application Insights JavaScript SDK - Channel, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n// (Magic number) DJB algorithm can't work on shorter strings (results in poor distribution\nvar MIN_INPUT_LENGTH = 8;\n\nvar HashCodeScoreGenerator =\n/** @class */\nfunction () {\n function HashCodeScoreGenerator() {}\n\n HashCodeScoreGenerator.prototype.getHashCodeScore = function (key) {\n var score = this.getHashCode(key) / HashCodeScoreGenerator.INT_MAX_VALUE;\n return score * 100;\n };\n\n HashCodeScoreGenerator.prototype.getHashCode = function (input) {\n if (input === \"\") {\n return 0;\n }\n\n while (input.length < MIN_INPUT_LENGTH) {\n input = input.concat(input);\n } // 5381 is a magic number: http://stackoverflow.com/questions/10696223/reason-for-5381-number-in-djb-hash-function\n\n\n var hash = 5381;\n\n for (var i = 0; i < input.length; ++i) {\n hash = (hash << 5) + hash + input.charCodeAt(i); // 'hash' is of number type which means 53 bit integer (http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types-number-type)\n // 'hash & hash' will keep it 32 bit integer - just to make it clearer what the result is.\n\n hash = hash & hash;\n }\n\n return Math.abs(hash);\n }; // We're using 32 bit math, hence max value is (2^31 - 1)\n\n\n HashCodeScoreGenerator.INT_MAX_VALUE = 2147483647;\n return HashCodeScoreGenerator;\n}();\n\nexport { HashCodeScoreGenerator };","/*\n * Application Insights JavaScript SDK - Channel, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { HashCodeScoreGenerator } from \"./HashCodeScoreGenerator\";\nimport { ContextTagKeys } from \"@microsoft/applicationinsights-common\";\n\nvar SamplingScoreGenerator =\n/** @class */\nfunction () {\n function SamplingScoreGenerator() {\n var _self = this;\n\n var hashCodeGenerator = new HashCodeScoreGenerator();\n var keys = new ContextTagKeys();\n\n _self.getSamplingScore = function (item) {\n var score = 0;\n\n if (item.tags && item.tags[keys.userId]) {\n // search in tags first, then ext\n score = hashCodeGenerator.getHashCodeScore(item.tags[keys.userId]);\n } else if (item.ext && item.ext.user && item.ext.user.id) {\n score = hashCodeGenerator.getHashCodeScore(item.ext.user.id);\n } else if (item.tags && item.tags[keys.operationId]) {\n // search in tags first, then ext\n score = hashCodeGenerator.getHashCodeScore(item.tags[keys.operationId]);\n } else if (item.ext && item.ext.telemetryTrace && item.ext.telemetryTrace.traceID) {\n score = hashCodeGenerator.getHashCodeScore(item.ext.telemetryTrace.traceID);\n } else {\n // tslint:disable-next-line:insecure-random\n score = Math.random() * 100;\n }\n\n return score;\n };\n }\n\n return SamplingScoreGenerator;\n}();\n\nexport { SamplingScoreGenerator };","/*\n * Application Insights JavaScript SDK - Channel, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { SamplingScoreGenerator } from \"./SamplingScoreGenerators/SamplingScoreGenerator\";\nimport { Metric } from \"@microsoft/applicationinsights-common\";\nimport { _InternalMessageId, LoggingSeverity, safeGetLogger } from \"@microsoft/applicationinsights-core-js\";\n\nvar Sample =\n/** @class */\nfunction () {\n function Sample(sampleRate, logger) {\n // We're using 32 bit math, hence max value is (2^31 - 1)\n this.INT_MAX_VALUE = 2147483647;\n\n var _logger = logger || safeGetLogger(null);\n\n if (sampleRate > 100 || sampleRate < 0) {\n _logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.SampleRateOutOfRange, \"Sampling rate is out of range (0..100). Sampling will be disabled, you may be sending too much data which may affect your AI service level.\", {\n samplingRate: sampleRate\n }, true);\n\n sampleRate = 100;\n }\n\n this.sampleRate = sampleRate;\n this.samplingScoreGenerator = new SamplingScoreGenerator();\n }\n /**\r\n * Determines if an envelope is sampled in (i.e. will be sent) or not (i.e. will be dropped).\r\n */\n\n\n Sample.prototype.isSampledIn = function (envelope) {\n var samplingPercentage = this.sampleRate; // 0 - 100\n\n var isSampledIn = false;\n\n if (samplingPercentage === null || samplingPercentage === undefined || samplingPercentage >= 100) {\n return true;\n } else if (envelope.baseType === Metric.dataType) {\n // exclude MetricData telemetry from sampling\n return true;\n }\n\n isSampledIn = this.samplingScoreGenerator.getSamplingScore(envelope) < samplingPercentage;\n return isSampledIn;\n };\n\n return Sample;\n}();\n\nexport { Sample };","/*\n * Application Insights JavaScript SDK - Properties Plugin, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\nimport { utlCanUseLocalStorage, utlGetLocalStorage, utlSetLocalStorage } from \"@microsoft/applicationinsights-common\";\nimport { _InternalMessageId, LoggingSeverity, safeGetCookieMgr, isFunction, newId, dumpObj, getExceptionName, dateNow, safeGetLogger } from \"@microsoft/applicationinsights-core-js\";\nvar cookieNameConst = \"ai_session\";\n\nvar Session =\n/** @class */\nfunction () {\n function Session() {}\n\n return Session;\n}();\n\nexport { Session };\n\nvar _SessionManager =\n/** @class */\nfunction () {\n function _SessionManager(config, core) {\n var self = this;\n\n var _storageNamePrefix;\n\n var _cookieUpdatedTimestamp;\n\n var _logger = safeGetLogger(core);\n\n var _cookieManager = safeGetCookieMgr(core);\n\n dynamicProto(_SessionManager, self, function (_self) {\n if (!config) {\n config = {};\n }\n\n if (!isFunction(config.sessionExpirationMs)) {\n config.sessionExpirationMs = function () {\n return _SessionManager.acquisitionSpan;\n };\n }\n\n if (!isFunction(config.sessionRenewalMs)) {\n config.sessionRenewalMs = function () {\n return _SessionManager.renewalSpan;\n };\n }\n\n _self.config = config; // sessionCookiePostfix takes the preference if it is configured, otherwise takes namePrefix if configured.\n\n var sessionCookiePostfix = _self.config.sessionCookiePostfix && _self.config.sessionCookiePostfix() ? _self.config.sessionCookiePostfix() : _self.config.namePrefix && _self.config.namePrefix() ? _self.config.namePrefix() : \"\";\n\n _storageNamePrefix = function _storageNamePrefix() {\n return cookieNameConst + sessionCookiePostfix;\n };\n\n _self.automaticSession = new Session();\n\n _self.update = function () {\n // Always using Date getTime() as there is a bug in older IE instances that causes the performance timings to have the hi-bit set eg 0x800000000 causing\n // the number to be incorrect.\n var nowMs = dateNow();\n var isExpired = false;\n var session = _self.automaticSession;\n\n if (!session.id) {\n isExpired = !_initializeAutomaticSession(session, nowMs);\n }\n\n var sessionExpirationMs = _self.config.sessionExpirationMs();\n\n if (!isExpired && sessionExpirationMs > 0) {\n var sessionRenewalMs = _self.config.sessionRenewalMs();\n\n var timeSinceAcqMs = nowMs - session.acquisitionDate;\n var timeSinceRenewalMs = nowMs - session.renewalDate;\n isExpired = timeSinceAcqMs < 0 || timeSinceRenewalMs < 0; // expired if the acquisition or last renewal are in the future\n\n isExpired = isExpired || timeSinceAcqMs > sessionExpirationMs; // expired if the time since acquisition is more than session Expiration\n\n isExpired = isExpired || timeSinceRenewalMs > sessionRenewalMs; // expired if the time since last renewal is more than renewal period\n } // renew if acquisitionSpan or renewalSpan has elapsed\n\n\n if (isExpired) {\n // update automaticSession so session state has correct id\n _renew(nowMs);\n } else {\n // do not update the cookie more often than cookieUpdateInterval\n if (!_cookieUpdatedTimestamp || nowMs - _cookieUpdatedTimestamp > _SessionManager.cookieUpdateInterval) {\n _setCookie(session, nowMs);\n }\n }\n };\n /**\r\n * Record the current state of the automatic session and store it in our cookie string format\r\n * into the browser's local storage. This is used to restore the session data when the cookie\r\n * expires.\r\n */\n\n\n _self.backup = function () {\n var session = _self.automaticSession;\n\n _setStorage(session.id, session.acquisitionDate, session.renewalDate);\n };\n /**\r\n * Use config.namePrefix + ai_session cookie data or local storage data (when the cookie is unavailable) to\r\n * initialize the automatic session.\r\n * @returns true if values set otherwise false\r\n */\n\n\n function _initializeAutomaticSession(session, now) {\n var isValid = false;\n\n var cookieValue = _cookieManager.get(_storageNamePrefix());\n\n if (cookieValue && isFunction(cookieValue.split)) {\n isValid = _initializeAutomaticSessionWithData(session, cookieValue);\n } else {\n // There's no cookie, but we might have session data in local storage\n // This can happen if the session expired or the user actively deleted the cookie\n // We only want to recover data if the cookie is missing from expiry. We should respect the user's wishes if the cookie was deleted actively.\n // The User class handles this for us and deletes our local storage object if the persistent user cookie was removed.\n var storageValue = utlGetLocalStorage(_logger, _storageNamePrefix());\n\n if (storageValue) {\n isValid = _initializeAutomaticSessionWithData(session, storageValue);\n }\n }\n\n return isValid || !!session.id;\n }\n /**\r\n * Extract id, acquisitionDate, and renewalDate from an ai_session payload string and\r\n * use this data to initialize automaticSession.\r\n *\r\n * @param {string} sessionData - The string stored in an ai_session cookie or local storage backup\r\n * @returns true if values set otherwise false\r\n */\n\n\n function _initializeAutomaticSessionWithData(session, sessionData) {\n var isValid = false;\n var sessionReset = \", session will be reset\";\n var tokens = sessionData.split(\"|\");\n\n if (tokens.length >= 2) {\n try {\n var acqMs = +tokens[1] || 0;\n var renewalMs = +tokens[2] || 0;\n\n if (isNaN(acqMs) || acqMs <= 0) {\n _logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.SessionRenewalDateIsZero, \"AI session acquisition date is 0\" + sessionReset);\n } else if (isNaN(renewalMs) || renewalMs <= 0) {\n _logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.SessionRenewalDateIsZero, \"AI session renewal date is 0\" + sessionReset);\n } else if (tokens[0]) {\n // Everything looks valid so set the values\n session.id = tokens[0];\n session.acquisitionDate = acqMs;\n session.renewalDate = renewalMs;\n isValid = true;\n }\n } catch (e) {\n _logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.ErrorParsingAISessionCookie, \"Error parsing ai_session value [\" + (sessionData || \"\") + \"]\" + sessionReset + \" - \" + getExceptionName(e), {\n exception: dumpObj(e)\n });\n }\n }\n\n return isValid;\n }\n\n function _renew(nowMs) {\n var theConfig = _self.config || {};\n var getNewId = (theConfig.getNewId ? theConfig.getNewId() : null) || newId;\n _self.automaticSession.id = getNewId(theConfig.idLength ? theConfig.idLength() : 22);\n _self.automaticSession.acquisitionDate = nowMs;\n\n _setCookie(_self.automaticSession, nowMs); // If this browser does not support local storage, fire an internal log to keep track of it at this point\n\n\n if (!utlCanUseLocalStorage()) {\n _logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.BrowserDoesNotSupportLocalStorage, \"Browser does not support local storage. Session durations will be inaccurate.\");\n }\n }\n\n function _setCookie(session, nowMs) {\n var acq = session.acquisitionDate;\n session.renewalDate = nowMs;\n var config = _self.config;\n var renewalPeriodMs = config.sessionRenewalMs(); // Set cookie to expire after the session expiry time passes or the session renewal deadline, whichever is sooner\n // Expiring the cookie will cause the session to expire even if the user isn't on the page\n\n var acqTimeLeftMs = acq + config.sessionExpirationMs() - nowMs;\n var cookie = [session.id, acq, nowMs];\n var maxAgeSec = 0;\n\n if (acqTimeLeftMs < renewalPeriodMs) {\n maxAgeSec = acqTimeLeftMs / 1000;\n } else {\n maxAgeSec = renewalPeriodMs / 1000;\n }\n\n var cookieDomain = config.cookieDomain ? config.cookieDomain() : null; // if sessionExpirationMs is set to 0, it means the expiry is set to 0 for this session cookie\n // A cookie with 0 expiry in the session cookie will never expire for that browser session. If the browser is closed the cookie expires.\n // Depending on the browser, another instance does not inherit this cookie, however, another tab will\n\n _cookieManager.set(_storageNamePrefix(), cookie.join(\"|\"), config.sessionExpirationMs() > 0 ? maxAgeSec : null, cookieDomain);\n\n _cookieUpdatedTimestamp = nowMs;\n }\n\n function _setStorage(guid, acq, renewal) {\n // Keep data in local storage to retain the last session id, allowing us to cleanly end the session when it expires\n // Browsers that don't support local storage won't be able to end sessions cleanly from the client\n // The server will notice this and end the sessions itself, with loss of accurate session duration\n utlSetLocalStorage(_logger, _storageNamePrefix(), [guid, acq, renewal].join(\"|\"));\n }\n });\n } // Removed Stub for _SessionManager.prototype.update.\n // Removed Stub for _SessionManager.prototype.backup.\n\n\n _SessionManager.acquisitionSpan = 86400000; // 24 hours in ms\n\n _SessionManager.renewalSpan = 1800000; // 30 minutes in ms\n\n _SessionManager.cookieUpdateInterval = 60000; // 1 minute in ms\n\n return _SessionManager;\n}();\n\nexport { _SessionManager };","/*\n * Application Insights JavaScript SDK - Properties Plugin, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nvar Application =\n/** @class */\nfunction () {\n function Application() {}\n\n return Application;\n}();\n\nexport { Application };","/*\n * Application Insights JavaScript SDK - Properties Plugin, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nvar Device =\n/** @class */\nfunction () {\n /**\r\n * Constructs a new instance of the Device class\r\n */\n function Device() {\n // don't attempt to fingerprint browsers\n this.id = \"browser\"; // Device type is a dimension in our data platform\n // Setting it to 'Browser' allows to separate client and server dependencies/exceptions\n\n this.deviceClass = \"Browser\";\n }\n\n return Device;\n}();\n\nexport { Device };","/*\n * Application Insights JavaScript SDK - Properties Plugin, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nvar Version = \"2.7.4\";\n\nvar Internal =\n/** @class */\nfunction () {\n /**\r\n * Constructs a new instance of the internal telemetry data class.\r\n */\n function Internal(config) {\n this.sdkVersion = (config.sdkExtension && config.sdkExtension() ? config.sdkExtension() + \"_\" : \"\") + \"javascript:\" + Version;\n }\n\n return Internal;\n}();\n\nexport { Internal };","/*\n * Application Insights JavaScript SDK - Properties Plugin, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\nimport { utlRemoveStorage } from \"@microsoft/applicationinsights-common\";\nimport { _InternalMessageId, LoggingSeverity, safeGetCookieMgr, safeGetLogger, newId, toISOString } from \"@microsoft/applicationinsights-core-js\";\n\nfunction _validateUserInput(id) {\n // Validate:\n // 1. Id is a non-empty string.\n // 2. It does not contain special characters for cookies.\n if (typeof id !== \"string\" || !id || id.match(/,|;|=| |\\|/)) {\n return false;\n }\n\n return true;\n}\n\nvar User =\n/** @class */\nfunction () {\n function User(config, core) {\n /**\r\n * A flag indicating whether this represents a new user\r\n */\n this.isNewUser = false;\n /**\r\n * A flag indicating whether the user cookie has been set\r\n */\n\n this.isUserCookieSet = false;\n\n var _logger = safeGetLogger(core);\n\n var _cookieManager = safeGetCookieMgr(core);\n\n var _storageNamePrefix;\n\n dynamicProto(User, this, function (_self) {\n _self.config = config;\n var userCookiePostfix = _self.config.userCookiePostfix && _self.config.userCookiePostfix() ? _self.config.userCookiePostfix() : \"\";\n\n _storageNamePrefix = function _storageNamePrefix() {\n return User.userCookieName + userCookiePostfix;\n }; // get userId or create new one if none exists\n\n\n var cookie = _cookieManager.get(_storageNamePrefix());\n\n if (cookie) {\n _self.isNewUser = false;\n var params = cookie.split(User.cookieSeparator);\n\n if (params.length > 0) {\n _self.id = params[0]; // we already have a cookie\n\n _self.isUserCookieSet = !!_self.id;\n }\n }\n\n function _generateNewId() {\n var theConfig = config || {};\n var getNewId = (theConfig.getNewId ? theConfig.getNewId() : null) || newId;\n var id = getNewId(theConfig.idLength ? config.idLength() : 22);\n return id;\n }\n\n function _generateNewCookie(userId) {\n var acqStr = toISOString(new Date());\n _self.accountAcquisitionDate = acqStr;\n _self.isNewUser = true;\n var newCookie = [userId, acqStr];\n return newCookie;\n }\n\n function _setUserCookie(cookie) {\n // without expiration, cookies expire at the end of the session\n // set it to 365 days from now\n // 365 * 24 * 60 * 60 = 31536000\n var oneYear = 31536000;\n _self.isUserCookieSet = _cookieManager.set(_storageNamePrefix(), cookie, oneYear);\n }\n\n if (!_self.id) {\n _self.id = _generateNewId();\n\n var newCookie = _generateNewCookie(_self.id);\n\n _setUserCookie(newCookie.join(User.cookieSeparator)); // If we have an config.namePrefix() + ai_session in local storage this means the user actively removed our cookies.\n // We should respect their wishes and clear ourselves from local storage\n\n\n var name_1 = config.namePrefix && config.namePrefix() ? config.namePrefix() + \"ai_session\" : \"ai_session\";\n utlRemoveStorage(_logger, name_1);\n } // We still take the account id from the ctor param for backward compatibility.\n // But if the the customer set the accountId through the newer setAuthenticatedUserContext API, we will override it.\n\n\n _self.accountId = config.accountId ? config.accountId() : undefined; // Get the auth user id and account id from the cookie if exists\n // Cookie is in the pattern: |\n\n var authCookie = _cookieManager.get(User.authUserCookieName);\n\n if (authCookie) {\n authCookie = decodeURI(authCookie);\n var authCookieString = authCookie.split(User.cookieSeparator);\n\n if (authCookieString[0]) {\n _self.authenticatedId = authCookieString[0];\n }\n\n if (authCookieString.length > 1 && authCookieString[1]) {\n _self.accountId = authCookieString[1];\n }\n }\n\n _self.setAuthenticatedUserContext = function (authenticatedUserId, accountId, storeInCookie) {\n if (storeInCookie === void 0) {\n storeInCookie = false;\n } // Validate inputs to ensure no cookie control characters.\n\n\n var isInvalidInput = !_validateUserInput(authenticatedUserId) || accountId && !_validateUserInput(accountId);\n\n if (isInvalidInput) {\n _logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.SetAuthContextFailedAccountName, \"Setting auth user context failed. \" + \"User auth/account id should be of type string, and not contain commas, semi-colons, equal signs, spaces, or vertical-bars.\", true);\n\n return;\n } // Create cookie string.\n\n\n _self.authenticatedId = authenticatedUserId;\n var authCookie = _self.authenticatedId;\n\n if (accountId) {\n _self.accountId = accountId;\n authCookie = [_self.authenticatedId, _self.accountId].join(User.cookieSeparator);\n }\n\n if (storeInCookie) {\n // Set the cookie. No expiration date because this is a session cookie (expires when browser closed).\n // Encoding the cookie to handle unexpected unicode characters.\n _cookieManager.set(User.authUserCookieName, encodeURI(authCookie));\n }\n };\n /**\r\n * Clears the authenticated user id and the account id from the user context.\r\n * @returns {}\r\n */\n\n\n _self.clearAuthenticatedUserContext = function () {\n _self.authenticatedId = null;\n _self.accountId = null;\n\n _cookieManager.del(User.authUserCookieName);\n };\n\n _self.update = function (userId) {\n // Optimizations to avoid setting and processing the cookie when not needed\n if (_self.id !== userId || !_self.isUserCookieSet) {\n var user_id = userId ? userId : _generateNewId();\n\n var user_cookie = _generateNewCookie(user_id);\n\n _setUserCookie(user_cookie.join(User.cookieSeparator));\n }\n };\n });\n } // Removed Stub for User.prototype.setAuthenticatedUserContext.\n // Removed Stub for User.prototype.clearAuthenticatedUserContext.\n // Removed Stub for User.prototype.update.\n\n\n User.cookieSeparator = \"|\";\n User.userCookieName = \"ai_user\";\n User.authUserCookieName = \"ai_authUser\";\n return User;\n}();\n\nexport { User };","/*\n * Application Insights JavaScript SDK - Properties Plugin, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nvar Location =\n/** @class */\nfunction () {\n function Location() {}\n\n return Location;\n}();\n\nexport { Location };","/*\n * Application Insights JavaScript SDK - Properties Plugin, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { dataSanitizeString } from \"@microsoft/applicationinsights-common\";\nimport { generateW3CId, getLocation } from \"@microsoft/applicationinsights-core-js\";\n\nvar TelemetryTrace =\n/** @class */\nfunction () {\n function TelemetryTrace(id, parentId, name, logger) {\n var _self = this;\n\n _self.traceID = id || generateW3CId();\n _self.parentID = parentId;\n _self.name = name;\n var location = getLocation();\n\n if (!name && location && location.pathname) {\n _self.name = location.pathname;\n }\n\n _self.name = dataSanitizeString(logger, _self.name);\n }\n\n return TelemetryTrace;\n}();\n\nexport { TelemetryTrace };","/*\n * Application Insights JavaScript SDK - Properties Plugin, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\n/**\r\n * TelemetryContext.ts\r\n * @copyright Microsoft 2018\r\n */\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\nimport { isString, objKeys, hasWindow, _InternalLogMessage, setValue, getSetValue } from \"@microsoft/applicationinsights-core-js\";\nimport { Session, _SessionManager } from \"./Context/Session\";\nimport { Extensions, CtxTagKeys, PageView } from \"@microsoft/applicationinsights-common\";\nimport { Application } from \"./Context/Application\";\nimport { Device } from \"./Context/Device\";\nimport { Internal } from \"./Context/Internal\";\nimport { User } from \"./Context/User\";\nimport { Location } from \"./Context/Location\";\nimport { TelemetryTrace } from \"./Context/TelemetryTrace\";\nvar strExt = \"ext\";\nvar strTags = \"tags\";\n\nfunction _removeEmpty(target, name) {\n if (target && target[name] && objKeys(target[name]).length === 0) {\n delete target[name];\n }\n}\n\nvar TelemetryContext =\n/** @class */\nfunction () {\n function TelemetryContext(core, defaultConfig) {\n var _this = this;\n\n var logger = core.logger;\n\n this.appId = function () {\n return null;\n };\n\n this.getSessionId = function () {\n return null;\n };\n\n dynamicProto(TelemetryContext, this, function (_self) {\n _self.application = new Application();\n _self.internal = new Internal(defaultConfig);\n\n if (hasWindow()) {\n _self.sessionManager = new _SessionManager(defaultConfig, core);\n _self.device = new Device();\n _self.location = new Location();\n _self.user = new User(defaultConfig, core);\n _self.telemetryTrace = new TelemetryTrace(undefined, undefined, undefined, logger);\n _self.session = new Session();\n }\n\n _self.getSessionId = function () {\n var session = _self.session;\n var sesId = null; // If customer set session info, apply their context; otherwise apply context automatically generated\n\n if (session && isString(session.id)) {\n sesId = session.id;\n } else {\n // Gets the automatic session if it exists or an empty object\n var autoSession = (_self.sessionManager || {}).automaticSession;\n sesId = autoSession && isString(autoSession.id) ? autoSession.id : null;\n }\n\n return sesId;\n };\n\n _self.applySessionContext = function (evt, itemCtx) {\n setValue(getSetValue(evt.ext, Extensions.AppExt), \"sesId\", _self.getSessionId(), isString);\n };\n\n _self.applyOperatingSystemContxt = function (evt, itemCtx) {\n setValue(evt.ext, Extensions.OSExt, _self.os);\n };\n\n _self.applyApplicationContext = function (evt, itemCtx) {\n var application = _self.application;\n\n if (application) {\n // evt.ext.app\n var tags = getSetValue(evt, strTags);\n setValue(tags, CtxTagKeys.applicationVersion, application.ver, isString);\n setValue(tags, CtxTagKeys.applicationBuild, application.build, isString);\n }\n };\n\n _self.applyDeviceContext = function (evt, itemCtx) {\n var device = _self.device;\n\n if (device) {\n // evt.ext.device\n var extDevice = getSetValue(getSetValue(evt, strExt), Extensions.DeviceExt);\n setValue(extDevice, \"localId\", device.id, isString);\n setValue(extDevice, \"ip\", device.ip, isString);\n setValue(extDevice, \"model\", device.model, isString);\n setValue(extDevice, \"deviceClass\", device.deviceClass, isString);\n }\n };\n\n _self.applyInternalContext = function (evt, itemCtx) {\n var internal = _self.internal;\n\n if (internal) {\n var tags = getSetValue(evt, strTags);\n setValue(tags, CtxTagKeys.internalAgentVersion, internal.agentVersion, isString); // not mapped in CS 4.0\n\n setValue(tags, CtxTagKeys.internalSdkVersion, internal.sdkVersion, isString);\n\n if (evt.baseType === _InternalLogMessage.dataType || evt.baseType === PageView.dataType) {\n setValue(tags, CtxTagKeys.internalSnippet, internal.snippetVer, isString);\n setValue(tags, CtxTagKeys.internalSdkSrc, internal.sdkSrc, isString);\n }\n }\n };\n\n _self.applyLocationContext = function (evt, itemCtx) {\n var location = _this.location;\n\n if (location) {\n setValue(getSetValue(evt, strTags, []), CtxTagKeys.locationIp, location.ip, isString);\n }\n };\n\n _self.applyOperationContext = function (evt, itemCtx) {\n var telemetryTrace = _self.telemetryTrace;\n\n if (telemetryTrace) {\n var extTrace = getSetValue(getSetValue(evt, strExt), Extensions.TraceExt, {\n traceID: undefined,\n parentID: undefined\n });\n setValue(extTrace, \"traceID\", telemetryTrace.traceID, isString);\n setValue(extTrace, \"name\", telemetryTrace.name, isString);\n setValue(extTrace, \"parentID\", telemetryTrace.parentID, isString);\n }\n };\n\n _self.applyWebContext = function (evt, itemCtx) {\n var web = _this.web;\n\n if (web) {\n setValue(getSetValue(evt, strExt), Extensions.WebExt, web);\n }\n };\n\n _self.applyUserContext = function (evt, itemCtx) {\n var user = _self.user;\n\n if (user) {\n var tags = getSetValue(evt, strTags, []); // stays in tags\n\n setValue(tags, CtxTagKeys.userAccountId, user.accountId, isString); // CS 4.0\n\n var extUser = getSetValue(getSetValue(evt, strExt), Extensions.UserExt);\n setValue(extUser, \"id\", user.id, isString);\n setValue(extUser, \"authId\", user.authenticatedId, isString);\n }\n };\n\n _self.cleanUp = function (evt, itemCtx) {\n var ext = evt.ext;\n\n if (ext) {\n _removeEmpty(ext, Extensions.DeviceExt);\n\n _removeEmpty(ext, Extensions.UserExt);\n\n _removeEmpty(ext, Extensions.WebExt);\n\n _removeEmpty(ext, Extensions.OSExt);\n\n _removeEmpty(ext, Extensions.AppExt);\n\n _removeEmpty(ext, Extensions.TraceExt);\n }\n };\n });\n } // Removed Stub for TelemetryContext.prototype.applySessionContext.\n // Removed Stub for TelemetryContext.prototype.applyOperatingSystemContxt.\n // Removed Stub for TelemetryContext.prototype.applyApplicationContext.\n // Removed Stub for TelemetryContext.prototype.applyDeviceContext.\n // Removed Stub for TelemetryContext.prototype.applyInternalContext.\n // Removed Stub for TelemetryContext.prototype.applyLocationContext.\n // Removed Stub for TelemetryContext.prototype.applyOperationContext.\n // Removed Stub for TelemetryContext.prototype.applyWebContext.\n // Removed Stub for TelemetryContext.prototype.applyUserContext.\n // Removed Stub for TelemetryContext.prototype.cleanUp.\n\n\n return TelemetryContext;\n}();\n\nexport { TelemetryContext };","/*\n * Application Insights JavaScript SDK - Properties Plugin, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\n/**\r\n * PropertiesPlugin.ts\r\n * @copyright Microsoft 2018\r\n */\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\nimport { BaseTelemetryPlugin, isNullOrUndefined, _InternalLogMessage, LoggingSeverity, _InternalMessageId, getNavigator, objForEachKey, getSetValue } from \"@microsoft/applicationinsights-core-js\";\nimport { TelemetryContext } from \"./TelemetryContext\";\nimport { PageView, BreezeChannelIdentifier, PropertiesPluginIdentifier, getExtensionByName } from \"@microsoft/applicationinsights-common\";\n\nvar PropertiesPlugin =\n/** @class */\nfunction (_super) {\n __extends(PropertiesPlugin, _super);\n\n function PropertiesPlugin() {\n var _this = _super.call(this) || this;\n\n _this.priority = 110;\n _this.identifier = PropertiesPluginIdentifier;\n\n var _breezeChannel; // optional. If exists, grab appId from it\n\n\n var _extensionConfig;\n\n dynamicProto(PropertiesPlugin, _this, function (_self, _base) {\n _self.initialize = function (config, core, extensions, pluginChain) {\n _base.initialize(config, core, extensions, pluginChain);\n\n var ctx = _self._getTelCtx();\n\n var identifier = _self.identifier;\n var defaultConfig = PropertiesPlugin.getDefaultConfig();\n _extensionConfig = _extensionConfig || {};\n objForEachKey(defaultConfig, function (field, value) {\n _extensionConfig[field] = function () {\n return ctx.getConfig(identifier, field, value());\n };\n });\n _self.context = new TelemetryContext(core, _extensionConfig);\n _breezeChannel = getExtensionByName(extensions, BreezeChannelIdentifier);\n\n _self.context.appId = function () {\n return _breezeChannel ? _breezeChannel[\"_appId\"] : null;\n }; // Test hook to allow accessing the internal values -- explicitly not defined as an available property on the class\n\n\n _self[\"_extConfig\"] = _extensionConfig;\n };\n /**\r\n * Add Part A fields to the event\r\n * @param event The event that needs to be processed\r\n */\n\n\n _self.processTelemetry = function (event, itemCtx) {\n if (isNullOrUndefined(event)) {// TODO(barustum): throw an internal event once we have support for internal logging\n } else {\n itemCtx = _self._getTelCtx(itemCtx); // If the envelope is PageView, reset the internal message count so that we can send internal telemetry for the new page.\n\n if (event.name === PageView.envelopeType) {\n itemCtx.diagLog().resetInternalMessageCount();\n }\n\n var theContext = _self.context || {};\n\n if (theContext.session) {\n // If customer did not provide custom session id update the session manager\n if (typeof _self.context.session.id !== \"string\" && theContext.sessionManager) {\n theContext.sessionManager.update();\n }\n }\n\n var userCtx = theContext.user;\n\n if (userCtx && !userCtx.isUserCookieSet) {\n userCtx.update(theContext.user.id);\n }\n\n _processTelemetryInternal(event, itemCtx);\n\n if (userCtx && userCtx.isNewUser) {\n userCtx.isNewUser = false;\n var message = new _InternalLogMessage(_InternalMessageId.SendBrowserInfoOnUserInit, (getNavigator() || {}).userAgent || \"\");\n itemCtx.diagLog().logInternalMessage(LoggingSeverity.CRITICAL, message);\n }\n\n _self.processNext(event, itemCtx);\n }\n };\n\n function _processTelemetryInternal(evt, itemCtx) {\n // Set Part A fields\n getSetValue(evt, \"tags\", []);\n getSetValue(evt, \"ext\", {});\n var ctx = _self.context;\n ctx.applySessionContext(evt, itemCtx);\n ctx.applyApplicationContext(evt, itemCtx);\n ctx.applyDeviceContext(evt, itemCtx);\n ctx.applyOperationContext(evt, itemCtx);\n ctx.applyUserContext(evt, itemCtx);\n ctx.applyOperatingSystemContxt(evt, itemCtx);\n ctx.applyWebContext(evt, itemCtx);\n ctx.applyLocationContext(evt, itemCtx); // legacy tags\n\n ctx.applyInternalContext(evt, itemCtx); // legacy tags\n\n ctx.cleanUp(evt, itemCtx);\n }\n });\n return _this;\n }\n\n PropertiesPlugin.getDefaultConfig = function () {\n var defaultConfig = {\n instrumentationKey: function instrumentationKey() {\n return undefined;\n },\n accountId: function accountId() {\n return null;\n },\n sessionRenewalMs: function sessionRenewalMs() {\n return 30 * 60 * 1000;\n },\n samplingPercentage: function samplingPercentage() {\n return 100;\n },\n sessionExpirationMs: function sessionExpirationMs() {\n return 24 * 60 * 60 * 1000;\n },\n cookieDomain: function cookieDomain() {\n return null;\n },\n sdkExtension: function sdkExtension() {\n return null;\n },\n isBrowserLinkTrackingEnabled: function isBrowserLinkTrackingEnabled() {\n return false;\n },\n appId: function appId() {\n return null;\n },\n getSessionId: function getSessionId() {\n return null;\n },\n namePrefix: function namePrefix() {\n return undefined;\n },\n sessionCookiePostfix: function sessionCookiePostfix() {\n return undefined;\n },\n userCookiePostfix: function userCookiePostfix() {\n return undefined;\n },\n idLength: function idLength() {\n return 22;\n },\n getNewId: function getNewId() {\n return null;\n }\n };\n return defaultConfig;\n }; // Removed Stub for PropertiesPlugin.prototype.initialize.\n // Removed Stub for PropertiesPlugin.prototype.processTelemetry.\n\n\n return PropertiesPlugin;\n}(BaseTelemetryPlugin);\n\nexport default PropertiesPlugin;","/*\n * Application Insights JavaScript SDK - Core, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { strShimFunction, strShimPrototype } from \"@microsoft/applicationinsights-shims\";\nimport { hasOwnProperty, _getObjProto } from \"./HelperFuncs\";\nvar aiInstrumentHooks = \"_aiHooks\";\nvar cbNames = [\"req\", \"rsp\", \"hkErr\", \"fnErr\"];\n/** @ignore */\n\nfunction _arrLoop(arr, fn) {\n if (arr) {\n for (var lp = 0; lp < arr.length; lp++) {\n if (fn(arr[lp], lp)) {\n break;\n }\n }\n }\n}\n/** @ignore */\n\n\nfunction _doCallbacks(hooks, callDetails, cbArgs, hookCtx, type) {\n if (type >= 0\n /* Request */\n && type <= 2\n /* HookError */\n ) {\n _arrLoop(hooks, function (hook, idx) {\n var cbks = hook.cbks;\n var cb = cbks[cbNames[type]];\n\n if (cb) {\n // Set the specific hook context implementation using a lazy creation pattern\n callDetails.ctx = function () {\n var ctx = hookCtx[idx] = hookCtx[idx] || {};\n return ctx;\n };\n\n try {\n cb.apply(callDetails.inst, cbArgs);\n } catch (err) {\n var orgEx = callDetails.err;\n\n try {\n // Report Hook error via the callback\n var hookErrorCb = cbks[cbNames[2\n /* HookError */\n ]];\n\n if (hookErrorCb) {\n callDetails.err = err;\n hookErrorCb.apply(callDetails.inst, cbArgs);\n }\n } catch (e) {// Not much we can do here -- swallowing the exception to avoid crashing the hosting app\n } finally {\n // restore the original exception (if any)\n callDetails.err = orgEx;\n }\n }\n }\n });\n }\n}\n/** @ignore */\n\n\nfunction _createFunctionHook(aiHook) {\n // Define a temporary method that queues-up a the real method call\n return function () {\n var funcThis = this; // Capture the original arguments passed to the method\n\n var orgArgs = arguments;\n var hooks = aiHook.h;\n var funcArgs = {\n name: aiHook.n,\n inst: funcThis,\n ctx: null,\n set: _replaceArg\n };\n var hookCtx = [];\n\n var cbArgs = _createArgs([funcArgs], orgArgs);\n\n function _createArgs(target, theArgs) {\n _arrLoop(theArgs, function (arg) {\n target.push(arg);\n });\n\n return target;\n }\n\n function _replaceArg(idx, value) {\n orgArgs = _createArgs([], orgArgs);\n orgArgs[idx] = value;\n cbArgs = _createArgs([funcArgs], orgArgs);\n } // Call the pre-request hooks\n\n\n _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 0\n /* Request */\n ); // Call the original function was called\n\n\n var theFunc = aiHook.f;\n\n try {\n funcArgs.rslt = theFunc.apply(funcThis, orgArgs);\n } catch (err) {\n // Report the request callback\n funcArgs.err = err;\n\n _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 3\n /* FunctionError */\n ); // rethrow the original exception so anyone listening for it can catch the exception\n\n\n throw err;\n } // Call the post-request hooks\n\n\n _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 1\n /* Response */\n );\n\n return funcArgs.rslt;\n };\n}\n/** @ignore */\n\n\nfunction _getOwner(target, name, checkPrototype) {\n var owner = null;\n\n if (target) {\n if (hasOwnProperty(target, name)) {\n owner = target;\n } else if (checkPrototype) {\n owner = _getOwner(_getObjProto(target), name, false);\n }\n }\n\n return owner;\n}\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcName - The function name\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n */\n\n\nexport function InstrumentProto(target, funcName, callbacks) {\n if (target) {\n return InstrumentFunc(target[strShimPrototype], funcName, callbacks, false);\n }\n\n return null;\n}\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcNames - The function names to intercept and call\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n */\n\nexport function InstrumentProtos(target, funcNames, callbacks) {\n if (target) {\n return InstrumentFuncs(target[strShimPrototype], funcNames, callbacks, false);\n }\n\n return null;\n}\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcName - The function name\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n * @param checkPrototype - If the function doesn't exist on the target should it attempt to hook the prototype function\r\n */\n\nexport function InstrumentFunc(target, funcName, callbacks, checkPrototype) {\n if (checkPrototype === void 0) {\n checkPrototype = true;\n }\n\n if (target && funcName && callbacks) {\n var owner = _getOwner(target, funcName, checkPrototype);\n\n if (owner) {\n var fn = owner[funcName];\n\n if (typeof fn === strShimFunction) {\n var aiHook_1 = fn[aiInstrumentHooks];\n\n if (!aiHook_1) {\n // Only hook the function once\n aiHook_1 = {\n i: 0,\n n: funcName,\n f: fn,\n h: []\n }; // Override (hook) the original function\n\n var newFunc = _createFunctionHook(aiHook_1);\n\n newFunc[aiInstrumentHooks] = aiHook_1; // Tag and store the function hooks\n\n owner[funcName] = newFunc;\n }\n\n var theHook = {\n // tslint:disable:object-literal-shorthand\n id: aiHook_1.i,\n cbks: callbacks,\n rm: function rm() {\n // DO NOT Use () => { shorthand for the function as the this gets replaced\n // with the outer this and not the this for theHook instance.\n var id = this.id;\n\n _arrLoop(aiHook_1.h, function (hook, idx) {\n if (hook.id === id) {\n aiHook_1.h.splice(idx, 1);\n return 1;\n }\n });\n } // tslint:enable:object-literal-shorthand\n\n };\n aiHook_1.i++;\n aiHook_1.h.push(theHook);\n return theHook;\n }\n }\n }\n\n return null;\n}\n/**\r\n * Intercept the named functions for the target class / object\r\n * @param target - The target object\r\n * @param funcNames - The function names to intercept and call\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n * @param checkPrototype - If the function doesn't exist on the target should it attempt to hook the prototype function\r\n */\n\nexport function InstrumentFuncs(target, funcNames, callbacks, checkPrototype) {\n if (checkPrototype === void 0) {\n checkPrototype = true;\n }\n\n var hooks = null;\n\n _arrLoop(funcNames, function (funcName) {\n var hook = InstrumentFunc(target, funcName, callbacks, checkPrototype);\n\n if (hook) {\n if (!hooks) {\n hooks = [];\n }\n\n hooks.push(hook);\n }\n });\n\n return hooks;\n}","/*\n * Application Insights JavaScript SDK - Dependencies Plugin, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { dataSanitizeUrl, dateTimeUtilsDuration, urlGetAbsoluteUrl, urlGetCompleteUrl, msToTimeSpan } from \"@microsoft/applicationinsights-common\";\nimport { objKeys, arrForEach, isNumber, isString, normalizeJsName, objForEachKey } from \"@microsoft/applicationinsights-core-js\";\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\nvar strProperties = \"properties\";\n/** @ignore */\n\nfunction _calcPerfDuration(resourceEntry, start, end) {\n var result = 0;\n var from = resourceEntry[start];\n var to = resourceEntry[end];\n\n if (from && to) {\n result = dateTimeUtilsDuration(from, to);\n }\n\n return result;\n}\n/** @ignore */\n\n\nfunction _setPerfDuration(props, name, resourceEntry, start, end) {\n var result = 0;\n\n var value = _calcPerfDuration(resourceEntry, start, end);\n\n if (value) {\n result = _setPerfValue(props, name, msToTimeSpan(value));\n }\n\n return result;\n}\n/** @ignore */\n\n\nfunction _setPerfValue(props, name, value) {\n var strPerf = \"ajaxPerf\";\n var result = 0;\n\n if (props && name && value) {\n var perfData = props[strPerf] = props[strPerf] || {};\n perfData[name] = value;\n result = 1;\n }\n\n return result;\n}\n/** @ignore */\n\n\nfunction _populatePerfData(ajaxData, dependency) {\n /*\r\n * https://developer.mozilla.org/en-US/docs/Web/API/Resource_Timing_API/Using_the_Resource_Timing_API\r\n * | -startTime\r\n * | -redirectStart\r\n * | | -redirectEnd\r\n * | | | -fetchStart\r\n * | | | | -domainLookupStart\r\n * | | | | |- domainLookupEnd\r\n * | | | | | | -connectStart\r\n * | | | | | | | -secureConnectionStart\r\n * | | | | | | | | -connectEnd\r\n * | | | | | | | | | -requestStart\r\n * | | | | | | | | | | | -responseStart\r\n * | | | | | | | | | | | | | -responseEnd\r\n * +------------+-+---+----------------+-+--+--------+-+-----------+-+------------+-+\r\n * |--redirect--| |---|--domainLookup--| |--connect--| |--request--| |--response--| |\r\n * |-------------------networkConnect----------------|\r\n * | |---------sentRequest--------|\r\n * |------------------------------------perfTotal-----------------------------------|\r\n */\n var resourceEntry = ajaxData.perfTiming;\n var props = dependency[strProperties] || {};\n var propsSet = 0;\n var strName = \"name\";\n var strStart = \"Start\";\n var strEnd = \"End\";\n var strDomainLookup = \"domainLookup\";\n var strConnect = \"connect\";\n var strRedirect = \"redirect\";\n var strRequest = \"request\";\n var strResponse = \"response\";\n var strDuration = \"duration\";\n var strStartTime = \"startTime\";\n var strDomainLookupStart = strDomainLookup + strStart;\n var strDomainLookupEnd = strDomainLookup + strEnd;\n var strConnectStart = strConnect + strStart;\n var strConnectEnd = strConnect + strEnd;\n var strRequestStart = strRequest + strStart;\n var strRequestEnd = strRequest + strEnd;\n var strResponseStart = strResponse + strStart;\n var strResponseEnd = strResponse + strEnd;\n var strRedirectStart = strRedirect + strStart;\n var strRedirectEnd = strRedirect = strEnd;\n var strTransferSize = \"transferSize\";\n var strEncodedBodySize = \"encodedBodySize\";\n var strDecodedBodySize = \"decodedBodySize\";\n var strServerTiming = \"serverTiming\";\n\n if (resourceEntry) {\n // redirect\n propsSet |= _setPerfDuration(props, strRedirect, resourceEntry, strRedirectStart, strRedirectEnd); // domainLookup\n\n propsSet |= _setPerfDuration(props, strDomainLookup, resourceEntry, strDomainLookupStart, strDomainLookupEnd); // connect\n\n propsSet |= _setPerfDuration(props, strConnect, resourceEntry, strConnectStart, strConnectEnd); // request\n\n propsSet |= _setPerfDuration(props, strRequest, resourceEntry, strRequestStart, strRequestEnd); // response\n\n propsSet |= _setPerfDuration(props, strResponse, resourceEntry, strResponseStart, strResponseEnd); // Network connection time\n\n propsSet |= _setPerfDuration(props, \"networkConnect\", resourceEntry, strStartTime, strConnectEnd); // Sent Request\n\n propsSet |= _setPerfDuration(props, \"sentRequest\", resourceEntry, strRequestStart, strResponseEnd); // PerfTotal / Duration\n\n var duration = resourceEntry[strDuration];\n\n if (!duration) {\n duration = _calcPerfDuration(resourceEntry, strStartTime, strResponseEnd) || 0;\n }\n\n propsSet |= _setPerfValue(props, strDuration, duration);\n propsSet |= _setPerfValue(props, \"perfTotal\", duration);\n var serverTiming = resourceEntry[strServerTiming];\n\n if (serverTiming) {\n var server_1 = {};\n arrForEach(serverTiming, function (value, idx) {\n var name = normalizeJsName(value[strName] || \"\" + idx);\n var newValue = server_1[name] || {};\n objForEachKey(value, function (key, val) {\n if (key !== strName && isString(val) || isNumber(val)) {\n if (newValue[key]) {\n val = newValue[key] + \";\" + val;\n }\n\n if (val || !isString(val)) {\n // Only set the value if it has a value and it's not an empty string\n newValue[key] = val;\n }\n }\n });\n server_1[name] = newValue;\n });\n propsSet |= _setPerfValue(props, strServerTiming, server_1);\n }\n\n propsSet |= _setPerfValue(props, strTransferSize, resourceEntry[strTransferSize]);\n propsSet |= _setPerfValue(props, strEncodedBodySize, resourceEntry[strEncodedBodySize]);\n propsSet |= _setPerfValue(props, strDecodedBodySize, resourceEntry[strDecodedBodySize]);\n } else {\n if (ajaxData.perfMark) {\n propsSet |= _setPerfValue(props, \"missing\", ajaxData.perfAttempts);\n }\n }\n\n if (propsSet) {\n dependency[strProperties] = props;\n }\n}\n\nvar XHRMonitoringState =\n/** @class */\nfunction () {\n function XHRMonitoringState() {\n var self = this;\n self.openDone = false;\n self.setRequestHeaderDone = false;\n self.sendDone = false;\n self.abortDone = false; // True, if onreadyStateChangeCallback function attached to xhr, otherwise false\n\n self.stateChangeAttached = false;\n }\n\n return XHRMonitoringState;\n}();\n\nexport { XHRMonitoringState };\n\nvar ajaxRecord =\n/** @class */\nfunction () {\n function ajaxRecord(traceID, spanID, logger) {\n var self = this;\n var _logger = logger;\n var strResponseText = \"responseText\"; // Assigning the initial/default values within the constructor to avoid typescript from creating a bunch of\n // this.XXXX = null\n\n self.perfMark = null;\n self.completed = false;\n self.requestHeadersSize = null;\n self.requestHeaders = null;\n self.responseReceivingDuration = null;\n self.callbackDuration = null;\n self.ajaxTotalDuration = null;\n self.aborted = 0;\n self.pageUrl = null;\n self.requestUrl = null;\n self.requestSize = 0;\n self.method = null;\n self.status = null;\n self.requestSentTime = null;\n self.responseStartedTime = null;\n self.responseFinishedTime = null;\n self.callbackFinishedTime = null;\n self.endTime = null;\n self.xhrMonitoringState = new XHRMonitoringState();\n self.clientFailure = 0;\n self.traceID = traceID;\n self.spanID = spanID;\n dynamicProto(ajaxRecord, self, function (self) {\n self.getAbsoluteUrl = function () {\n return self.requestUrl ? urlGetAbsoluteUrl(self.requestUrl) : null;\n };\n\n self.getPathName = function () {\n return self.requestUrl ? dataSanitizeUrl(_logger, urlGetCompleteUrl(self.method, self.requestUrl)) : null;\n };\n\n self.CreateTrackItem = function (ajaxType, enableRequestHeaderTracking, getResponse) {\n var _a; // round to 3 decimal points\n\n\n self.ajaxTotalDuration = Math.round(dateTimeUtilsDuration(self.requestSentTime, self.responseFinishedTime) * 1000) / 1000;\n\n if (self.ajaxTotalDuration < 0) {\n return null;\n }\n\n var dependency = (_a = {\n id: \"|\" + self.traceID + \".\" + self.spanID,\n target: self.getAbsoluteUrl(),\n name: self.getPathName(),\n type: ajaxType,\n startTime: null,\n duration: self.ajaxTotalDuration,\n success: +self.status >= 200 && +self.status < 400,\n responseCode: +self.status,\n method: self.method\n }, _a[strProperties] = {\n HttpMethod: self.method\n }, _a);\n\n if (self.requestSentTime) {\n // Set the correct dependency start time\n dependency.startTime = new Date();\n dependency.startTime.setTime(self.requestSentTime);\n } // Add Ajax perf details if available\n\n\n _populatePerfData(self, dependency);\n\n if (enableRequestHeaderTracking) {\n if (objKeys(self.requestHeaders).length > 0) {\n dependency[strProperties] = dependency[strProperties] || {};\n dependency[strProperties].requestHeaders = self.requestHeaders;\n }\n }\n\n if (getResponse) {\n var response = getResponse();\n\n if (response) {\n // enrich dependency target with correlation context from the server\n var correlationContext = response.correlationContext;\n\n if (correlationContext) {\n dependency.correlationContext =\n /* dependency.target + \" | \" + */\n correlationContext;\n }\n\n if (response.headerMap) {\n if (objKeys(response.headerMap).length > 0) {\n dependency[strProperties] = dependency[strProperties] || {};\n dependency[strProperties].responseHeaders = response.headerMap;\n }\n }\n\n if (self.errorStatusText && self.status >= 400) {\n var responseType = response.type;\n dependency[strProperties] = dependency[strProperties] || {};\n\n if (responseType === \"\" || responseType === \"text\") {\n dependency[strProperties][strResponseText] = response[strResponseText] ? response.statusText + \" - \" + response[strResponseText] : response.statusText;\n }\n\n if (responseType === \"json\") {\n dependency[strProperties][strResponseText] = response.response ? response.statusText + \" - \" + JSON.stringify(response.response) : response.statusText;\n }\n }\n }\n }\n\n return dependency;\n };\n });\n } // Removed Stub for ajaxRecord.prototype.getAbsoluteUrl.\n // Removed Stub for ajaxRecord.prototype.getPathName.\n // Removed Stub for ajaxRecord.prototype.CreateTrackItem.\n\n\n return ajaxRecord;\n}();\n\nexport { ajaxRecord };","/*\n * Application Insights JavaScript SDK - Dependencies Plugin, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { generateW3CId } from \"@microsoft/applicationinsights-core-js\";\n\nvar Traceparent =\n/** @class */\nfunction () {\n function Traceparent(traceId, spanId) {\n var self = this;\n self.traceFlag = Traceparent.DEFAULT_TRACE_FLAG;\n self.version = Traceparent.DEFAULT_VERSION;\n\n if (traceId && Traceparent.isValidTraceId(traceId)) {\n self.traceId = traceId;\n } else {\n self.traceId = generateW3CId();\n }\n\n if (spanId && Traceparent.isValidSpanId(spanId)) {\n self.spanId = spanId;\n } else {\n self.spanId = generateW3CId().substr(0, 16);\n }\n }\n\n Traceparent.isValidTraceId = function (id) {\n return id.match(/^[0-9a-f]{32}$/) && id !== \"00000000000000000000000000000000\";\n };\n\n Traceparent.isValidSpanId = function (id) {\n return id.match(/^[0-9a-f]{16}$/) && id !== \"0000000000000000\";\n };\n\n Traceparent.prototype.toString = function () {\n var self = this;\n return \"\".concat(self.version, \"-\").concat(self.traceId, \"-\").concat(self.spanId, \"-\").concat(self.traceFlag);\n };\n\n Traceparent.DEFAULT_TRACE_FLAG = \"01\";\n Traceparent.DEFAULT_VERSION = \"00\";\n return Traceparent;\n}();\n\nexport { Traceparent };","/*\n * Application Insights JavaScript SDK - Dependencies Plugin, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { __assignFn as __assign, __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\nimport { RequestHeaders, CorrelationIdHelper, TelemetryItemCreator, RemoteDependencyData, dateTimeUtilsNow, DisabledPropertyName, PropertiesPluginIdentifier, DistributedTracingModes, isInternalApplicationInsightsEndpoint } from \"@microsoft/applicationinsights-common\";\nimport { isNullOrUndefined, arrForEach, isString, strTrim, isFunction, LoggingSeverity, _InternalMessageId, BaseTelemetryPlugin, getLocation, getGlobal, strPrototype, InstrumentFunc, InstrumentProto, getPerformance, objForEachKey, generateW3CId, getIEVersion, dumpObj, isXhrSupported, attachEvent } from \"@microsoft/applicationinsights-core-js\";\nimport { ajaxRecord } from \"./ajaxRecord\";\nimport { Traceparent } from \"./TraceParent\";\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\nvar AJAX_MONITOR_PREFIX = \"ai.ajxmn.\";\nvar strDiagLog = \"diagLog\";\nvar strAjaxData = \"ajaxData\";\nvar strThrowInternal = \"throwInternal\";\nvar strFetch = \"fetch\"; // Using a global value so that to handle same iKey with multiple app insights instances (mostly for testing)\n\nvar _markCount = 0;\n/** @Ignore */\n\nfunction _supportsFetch() {\n var _global = getGlobal();\n\n if (!_global || isNullOrUndefined(_global.Request) || isNullOrUndefined(_global.Request[strPrototype]) || isNullOrUndefined(_global[strFetch])) {\n return null;\n }\n\n return _global[strFetch];\n}\n/**\r\n * Determines whether ajax monitoring can be enabled on this document\r\n * @returns True if Ajax monitoring is supported on this page, otherwise false\r\n * @ignore\r\n */\n\n\nfunction _supportsAjaxMonitoring(ajaxMonitorInstance) {\n var result = false;\n\n if (isXhrSupported()) {\n var proto = XMLHttpRequest[strPrototype];\n result = !isNullOrUndefined(proto) && !isNullOrUndefined(proto.open) && // eslint-disable-line security/detect-non-literal-fs-filename -- false positive\n !isNullOrUndefined(proto.send) && !isNullOrUndefined(proto.abort);\n }\n\n var ieVer = getIEVersion();\n\n if (ieVer && ieVer < 9) {\n result = false;\n }\n\n if (result) {\n // Disable if the XmlHttpRequest can't be extended or hooked\n try {\n var xhr = new XMLHttpRequest();\n xhr[strAjaxData] = {}; // Check that we can update the prototype\n\n var theOpen = XMLHttpRequest[strPrototype].open;\n XMLHttpRequest[strPrototype].open = theOpen;\n } catch (e) {\n // We can't decorate the xhr object so disable monitoring\n result = false;\n\n _throwInternalCritical(ajaxMonitorInstance, _InternalMessageId.FailedMonitorAjaxOpen, \"Failed to enable XMLHttpRequest monitoring, extension is not supported\", {\n exception: dumpObj(e)\n });\n }\n }\n\n return result;\n}\n/** @Ignore */\n\n\nfunction _getFailedAjaxDiagnosticsMessage(xhr) {\n var result = \"\";\n\n try {\n if (!isNullOrUndefined(xhr) && !isNullOrUndefined(xhr[strAjaxData]) && !isNullOrUndefined(xhr[strAjaxData].requestUrl)) {\n result += \"(url: '\" + xhr[strAjaxData].requestUrl + \"')\";\n }\n } catch (e) {// eslint-disable-next-line no-empty\n }\n\n return result;\n}\n/** @ignore */\n\n\nfunction _throwInternalCritical(ajaxMonitorInstance, msgId, message, properties, isUserAct) {\n ajaxMonitorInstance[strDiagLog]()[strThrowInternal](LoggingSeverity.CRITICAL, msgId, message, properties, isUserAct);\n}\n/** @ignore */\n\n\nfunction _throwInternalWarning(ajaxMonitorInstance, msgId, message, properties, isUserAct) {\n ajaxMonitorInstance[strDiagLog]()[strThrowInternal](LoggingSeverity.WARNING, msgId, message, properties, isUserAct);\n}\n/** @Ignore */\n\n\nfunction _createErrorCallbackFunc(ajaxMonitorInstance, internalMessage, message) {\n // tslint:disable-next-line\n return function (args) {\n _throwInternalCritical(ajaxMonitorInstance, internalMessage, message, {\n ajaxDiagnosticsMessage: _getFailedAjaxDiagnosticsMessage(args.inst),\n exception: dumpObj(args.err)\n });\n };\n}\n\nfunction _indexOf(value, match) {\n if (value && match) {\n return value.indexOf(match);\n }\n\n return -1;\n}\n\nvar AjaxMonitor =\n/** @class */\nfunction (_super) {\n __extends(AjaxMonitor, _super);\n\n function AjaxMonitor() {\n var _this = _super.call(this) || this;\n\n _this.identifier = AjaxMonitor.identifier;\n _this.priority = 120;\n var strTrackDependencyDataInternal = \"trackDependencyDataInternal\"; // Using string to help with minification\n\n var location = getLocation();\n var _fetchInitialized = false; // fetch monitoring initialized\n\n var _xhrInitialized = false; // XHR monitoring initialized\n\n var _currentWindowHost = location && location.host && location.host.toLowerCase();\n\n var _config = AjaxMonitor.getEmptyConfig();\n\n var _enableRequestHeaderTracking = false;\n var _enableAjaxErrorStatusText = false;\n var _trackAjaxAttempts = 0;\n\n var _context;\n\n var _isUsingW3CHeaders;\n\n var _isUsingAIHeaders;\n\n var _markPrefix;\n\n var _enableAjaxPerfTracking = false;\n var _maxAjaxCallsPerView = 0;\n var _enableResponseHeaderTracking = false;\n var _hooks = [];\n var _disabledUrls = {};\n\n var _excludeRequestFromAutoTrackingPatterns;\n\n var _addRequestContext;\n\n dynamicProto(AjaxMonitor, _this, function (_self, base) {\n _self.initialize = function (config, core, extensions, pluginChain) {\n if (!_self.isInitialized()) {\n base.initialize(config, core, extensions, pluginChain);\n\n var ctx_1 = _self._getTelCtx();\n\n var defaultConfig = AjaxMonitor.getDefaultConfig();\n objForEachKey(defaultConfig, function (field, value) {\n _config[field] = ctx_1.getConfig(AjaxMonitor.identifier, field, value);\n });\n var distributedTracingMode = _config.distributedTracingMode;\n _enableRequestHeaderTracking = _config.enableRequestHeaderTracking;\n _enableAjaxErrorStatusText = _config.enableAjaxErrorStatusText;\n _enableAjaxPerfTracking = _config.enableAjaxPerfTracking;\n _maxAjaxCallsPerView = _config.maxAjaxCallsPerView;\n _enableResponseHeaderTracking = _config.enableResponseHeaderTracking;\n _excludeRequestFromAutoTrackingPatterns = _config.excludeRequestFromAutoTrackingPatterns;\n _addRequestContext = _config.addRequestContext;\n _isUsingAIHeaders = distributedTracingMode === DistributedTracingModes.AI || distributedTracingMode === DistributedTracingModes.AI_AND_W3C;\n _isUsingW3CHeaders = distributedTracingMode === DistributedTracingModes.AI_AND_W3C || distributedTracingMode === DistributedTracingModes.W3C;\n\n if (_enableAjaxPerfTracking) {\n var iKey = config.instrumentationKey || \"unkwn\";\n\n if (iKey.length > 5) {\n _markPrefix = AJAX_MONITOR_PREFIX + iKey.substring(iKey.length - 5) + \".\";\n } else {\n _markPrefix = AJAX_MONITOR_PREFIX + iKey + \".\";\n }\n }\n\n if (_config.disableAjaxTracking === false) {\n _instrumentXhr();\n }\n\n _instrumentFetch();\n\n if (extensions.length > 0 && extensions) {\n var propExt = void 0,\n extIx = 0;\n\n while (!propExt && extIx < extensions.length) {\n if (extensions[extIx] && extensions[extIx].identifier === PropertiesPluginIdentifier) {\n propExt = extensions[extIx];\n }\n\n extIx++;\n }\n\n if (propExt) {\n _context = propExt.context; // we could move IPropertiesPlugin to common as well\n }\n }\n }\n };\n\n _self.teardown = function () {\n // Remove all instrumentation hooks\n arrForEach(_hooks, function (fn) {\n fn.rm();\n });\n _hooks = [];\n _fetchInitialized = false;\n _xhrInitialized = false;\n\n _self.setInitialized(false);\n };\n\n _self.trackDependencyData = function (dependency, properties) {\n _self[strTrackDependencyDataInternal](dependency, properties);\n };\n\n _self.includeCorrelationHeaders = function (ajaxData, input, init, xhr) {\n // Test Hook to allow the overriding of the location host\n var currentWindowHost = _self[\"_currentWindowHost\"] || _currentWindowHost;\n\n if (input) {\n // Fetch\n if (CorrelationIdHelper.canIncludeCorrelationHeader(_config, ajaxData.getAbsoluteUrl(), currentWindowHost)) {\n if (!init) {\n init = {};\n } // init headers override original request headers\n // so, if they exist use only them, otherwise use request's because they should have been applied in the first place\n // not using original request headers will result in them being lost\n\n\n init.headers = new Headers(init.headers || (input instanceof Request ? input.headers || {} : {}));\n\n if (_isUsingAIHeaders) {\n var id = \"|\" + ajaxData.traceID + \".\" + ajaxData.spanID;\n init.headers.set(RequestHeaders.requestIdHeader, id);\n\n if (_enableRequestHeaderTracking) {\n ajaxData.requestHeaders[RequestHeaders.requestIdHeader] = id;\n }\n }\n\n var appId = _config.appId || _context && _context.appId();\n\n if (appId) {\n init.headers.set(RequestHeaders.requestContextHeader, RequestHeaders.requestContextAppIdFormat + appId);\n\n if (_enableRequestHeaderTracking) {\n ajaxData.requestHeaders[RequestHeaders.requestContextHeader] = RequestHeaders.requestContextAppIdFormat + appId;\n }\n }\n\n if (_isUsingW3CHeaders) {\n var traceparent = new Traceparent(ajaxData.traceID, ajaxData.spanID);\n init.headers.set(RequestHeaders.traceParentHeader, traceparent.toString());\n\n if (_enableRequestHeaderTracking) {\n ajaxData.requestHeaders[RequestHeaders.traceParentHeader] = traceparent.toString();\n }\n }\n }\n\n return init;\n } else if (xhr) {\n // XHR\n if (CorrelationIdHelper.canIncludeCorrelationHeader(_config, ajaxData.getAbsoluteUrl(), currentWindowHost)) {\n if (_isUsingAIHeaders) {\n var id = \"|\" + ajaxData.traceID + \".\" + ajaxData.spanID;\n xhr.setRequestHeader(RequestHeaders.requestIdHeader, id);\n\n if (_enableRequestHeaderTracking) {\n ajaxData.requestHeaders[RequestHeaders.requestIdHeader] = id;\n }\n }\n\n var appId = _config.appId || _context && _context.appId();\n\n if (appId) {\n xhr.setRequestHeader(RequestHeaders.requestContextHeader, RequestHeaders.requestContextAppIdFormat + appId);\n\n if (_enableRequestHeaderTracking) {\n ajaxData.requestHeaders[RequestHeaders.requestContextHeader] = RequestHeaders.requestContextAppIdFormat + appId;\n }\n }\n\n if (_isUsingW3CHeaders) {\n var traceparent = new Traceparent(ajaxData.traceID, ajaxData.spanID);\n xhr.setRequestHeader(RequestHeaders.traceParentHeader, traceparent.toString());\n\n if (_enableRequestHeaderTracking) {\n ajaxData.requestHeaders[RequestHeaders.traceParentHeader] = traceparent.toString();\n }\n }\n }\n\n return xhr;\n }\n\n return undefined;\n };\n\n _self[strTrackDependencyDataInternal] = function (dependency, properties, systemProperties) {\n if (_maxAjaxCallsPerView === -1 || _trackAjaxAttempts < _maxAjaxCallsPerView) {\n // Hack since expected format in w3c mode is |abc.def.\n // Non-w3c format is |abc.def\n // @todo Remove if better solution is available, e.g. handle in portal\n if ((_config.distributedTracingMode === DistributedTracingModes.W3C || _config.distributedTracingMode === DistributedTracingModes.AI_AND_W3C) && typeof dependency.id === \"string\" && dependency.id[dependency.id.length - 1] !== \".\") {\n dependency.id += \".\";\n }\n\n if (isNullOrUndefined(dependency.startTime)) {\n dependency.startTime = new Date();\n }\n\n var item = TelemetryItemCreator.create(dependency, RemoteDependencyData.dataType, RemoteDependencyData.envelopeType, _self[strDiagLog](), properties, systemProperties);\n\n _self.core.track(item);\n } else if (_trackAjaxAttempts === _maxAjaxCallsPerView) {\n _throwInternalCritical(_self, _InternalMessageId.MaxAjaxPerPVExceeded, \"Maximum ajax per page view limit reached, ajax monitoring is paused until the next trackPageView(). In order to increase the limit set the maxAjaxCallsPerView configuration parameter.\", true);\n }\n\n ++_trackAjaxAttempts;\n }; // discard the header if it's defined as ignoreHeaders in ICorrelationConfig\n\n\n function _canIncludeHeaders(header) {\n var rlt = true;\n\n if (header || _config.ignoreHeaders) {\n arrForEach(_config.ignoreHeaders, function (key) {\n if (key.toLowerCase() === header.toLowerCase()) {\n rlt = false;\n return -1;\n }\n });\n }\n\n return rlt;\n } // Fetch Stuff\n\n\n function _instrumentFetch() {\n var fetch = _supportsFetch();\n\n if (!fetch) {\n return;\n }\n\n var global = getGlobal();\n var isPolyfill = fetch.polyfill;\n\n if (_config.disableFetchTracking === false) {\n _hooks.push(InstrumentFunc(global, strFetch, {\n // Add request hook\n req: function req(callDetails, input, init) {\n var fetchData;\n\n if (_fetchInitialized && !_isDisabledRequest(null, input, init) && // If we have a polyfil and XHR instrumented then let XHR report otherwise we get duplicates\n !(isPolyfill && _xhrInitialized)) {\n var ctx = callDetails.ctx();\n fetchData = _createFetchRecord(input, init);\n\n var newInit = _self.includeCorrelationHeaders(fetchData, input, init);\n\n if (newInit !== init) {\n callDetails.set(1, newInit);\n }\n\n ctx.data = fetchData;\n }\n },\n rsp: function rsp(callDetails, input) {\n var fetchData = callDetails.ctx().data;\n\n if (fetchData) {\n // Replace the result with the new promise from this code\n callDetails.rslt = callDetails.rslt.then(function (response) {\n _reportFetchMetrics(callDetails, (response || {}).status, input, response, fetchData, function () {\n var ajaxResponse = {\n statusText: response.statusText,\n headerMap: null,\n correlationContext: _getFetchCorrelationContext(response)\n };\n\n if (_enableResponseHeaderTracking) {\n var responseHeaderMap_1 = {};\n response.headers.forEach(function (value, name) {\n if (_canIncludeHeaders(name)) {\n responseHeaderMap_1[name] = value;\n }\n });\n ajaxResponse.headerMap = responseHeaderMap_1;\n }\n\n return ajaxResponse;\n });\n\n return response;\n })[\"catch\"](function (reason) {\n _reportFetchMetrics(callDetails, 0, input, null, fetchData, null, {\n error: reason.message\n });\n\n throw reason;\n });\n }\n },\n // Create an error callback to report any hook errors\n hkErr: _createErrorCallbackFunc(_self, _InternalMessageId.FailedMonitorAjaxOpen, \"Failed to monitor Window.fetch, monitoring data for this fetch call may be incorrect.\")\n }));\n\n _fetchInitialized = true;\n } else if (isPolyfill) {\n // If fetch is a polyfill we need to capture the request to ensure that we correctly track\n // disabled request URLS (i.e. internal urls) to ensure we don't end up in a constant loop\n // of reporting ourselves, for example React Native uses a polyfill for fetch\n // Note: Polyfill implementations that don't support the \"poyyfill\" tag are not supported\n // the workaround is to add a polyfill property to your fetch implementation before initializing\n // App Insights\n _hooks.push(InstrumentFunc(global, strFetch, {\n req: function req(callDetails, input, init) {\n // Just call so that we record any disabled URL\n _isDisabledRequest(null, input, init);\n }\n }));\n }\n\n if (isPolyfill) {\n // retag the instrumented fetch with the same polyfill settings this is mostly for testing\n // But also supports multiple App Insights usages\n global[strFetch].polyfill = isPolyfill;\n }\n }\n\n function _hookProto(target, funcName, callbacks) {\n _hooks.push(InstrumentProto(target, funcName, callbacks));\n }\n\n function _instrumentXhr() {\n if (_supportsAjaxMonitoring(_self) && !_xhrInitialized) {\n // Instrument open\n _hookProto(XMLHttpRequest, \"open\", {\n req: function req(args, method, url, async) {\n var xhr = args.inst;\n var ajaxData = xhr[strAjaxData];\n\n if (!_isDisabledRequest(xhr, url) && _isMonitoredXhrInstance(xhr, true)) {\n if (!ajaxData || !ajaxData.xhrMonitoringState.openDone) {\n // Only create a single ajaxData (even when multiple AI instances are running)\n _openHandler(xhr, method, url, async);\n } // always attach to the on ready state change (required for handling multiple instances)\n\n\n _attachToOnReadyStateChange(xhr);\n }\n },\n hkErr: _createErrorCallbackFunc(_self, _InternalMessageId.FailedMonitorAjaxOpen, \"Failed to monitor XMLHttpRequest.open, monitoring data for this ajax call may be incorrect.\")\n }); // Instrument send\n\n\n _hookProto(XMLHttpRequest, \"send\", {\n req: function req(args, context) {\n var xhr = args.inst;\n var ajaxData = xhr[strAjaxData];\n\n if (_isMonitoredXhrInstance(xhr) && !ajaxData.xhrMonitoringState.sendDone) {\n _createMarkId(\"xhr\", ajaxData);\n\n ajaxData.requestSentTime = dateTimeUtilsNow();\n\n _self.includeCorrelationHeaders(ajaxData, undefined, undefined, xhr);\n\n ajaxData.xhrMonitoringState.sendDone = true;\n }\n },\n hkErr: _createErrorCallbackFunc(_self, _InternalMessageId.FailedMonitorAjaxSend, \"Failed to monitor XMLHttpRequest, monitoring data for this ajax call may be incorrect.\")\n }); // Instrument abort\n\n\n _hookProto(XMLHttpRequest, \"abort\", {\n req: function req(args) {\n var xhr = args.inst;\n var ajaxData = xhr[strAjaxData];\n\n if (_isMonitoredXhrInstance(xhr) && !ajaxData.xhrMonitoringState.abortDone) {\n ajaxData.aborted = 1;\n ajaxData.xhrMonitoringState.abortDone = true;\n }\n },\n hkErr: _createErrorCallbackFunc(_self, _InternalMessageId.FailedMonitorAjaxAbort, \"Failed to monitor XMLHttpRequest.abort, monitoring data for this ajax call may be incorrect.\")\n }); // Instrument setRequestHeader\n\n\n if (_enableRequestHeaderTracking) {\n _hookProto(XMLHttpRequest, \"setRequestHeader\", {\n req: function req(args, header, value) {\n var xhr = args.inst;\n\n if (_isMonitoredXhrInstance(xhr) && _canIncludeHeaders(header)) {\n xhr[strAjaxData].requestHeaders[header] = value;\n }\n },\n hkErr: _createErrorCallbackFunc(_self, _InternalMessageId.FailedMonitorAjaxSetRequestHeader, \"Failed to monitor XMLHttpRequest.setRequestHeader, monitoring data for this ajax call may be incorrect.\")\n });\n }\n\n _xhrInitialized = true;\n }\n }\n\n function _isDisabledRequest(xhr, request, init) {\n var isDisabled = false;\n var theUrl = ((!isString(request) ? (request || {}).url || \"\" : request) || \"\").toLowerCase(); // check excludeRequestFromAutoTrackingPatterns before stripping off any query string\n\n arrForEach(_excludeRequestFromAutoTrackingPatterns, function (regex) {\n var theRegex = regex;\n\n if (isString(regex)) {\n theRegex = new RegExp(regex);\n }\n\n if (!isDisabled) {\n isDisabled = theRegex.test(theUrl);\n }\n }); // if request url matches with exclude regex pattern, return true and no need to check for headers\n\n if (isDisabled) {\n return isDisabled;\n }\n\n var idx = _indexOf(theUrl, \"?\");\n\n var idx2 = _indexOf(theUrl, \"#\");\n\n if (idx === -1 || idx2 !== -1 && idx2 < idx) {\n idx = idx2;\n }\n\n if (idx !== -1) {\n // Strip off any Query string\n theUrl = theUrl.substring(0, idx);\n } // check that this instance is not not used by ajax call performed inside client side monitoring to send data to collector\n\n\n if (!isNullOrUndefined(xhr)) {\n // Look on the XMLHttpRequest of the URL string value\n isDisabled = xhr[DisabledPropertyName] === true || theUrl[DisabledPropertyName] === true;\n } else if (!isNullOrUndefined(request)) {\n // fetch\n // Look for DisabledPropertyName in either Request or RequestInit\n isDisabled = (typeof request === \"object\" ? request[DisabledPropertyName] === true : false) || (init ? init[DisabledPropertyName] === true : false);\n } // Also add extra check just in case the XHR or fetch objects where not decorated with the DisableProperty due to sealing or freezing\n\n\n if (!isDisabled && theUrl && isInternalApplicationInsightsEndpoint(theUrl)) {\n isDisabled = true;\n }\n\n if (isDisabled) {\n // Add the disabled url if not present\n if (!_disabledUrls[theUrl]) {\n _disabledUrls[theUrl] = 1;\n }\n } else {\n // Check to see if the url is listed as disabled\n if (_disabledUrls[theUrl]) {\n isDisabled = true;\n }\n }\n\n return isDisabled;\n } /// Verifies that particalar instance of XMLHttpRequest needs to be monitored\n /// Optional parameter. True if ajaxData must be excluded from verification\n /// True if instance needs to be monitored, otherwise false\n\n\n function _isMonitoredXhrInstance(xhr, excludeAjaxDataValidation) {\n var ajaxValidation = true;\n var initialized = _xhrInitialized;\n\n if (!isNullOrUndefined(xhr)) {\n ajaxValidation = excludeAjaxDataValidation === true || !isNullOrUndefined(xhr[strAjaxData]);\n } // checking to see that all interested functions on xhr were instrumented\n\n\n return initialized // checking on ajaxData to see that it was not removed in user code\n && ajaxValidation;\n }\n\n function _openHandler(xhr, method, url, async) {\n var traceID = _context && _context.telemetryTrace && _context.telemetryTrace.traceID || generateW3CId();\n var spanID = generateW3CId().substr(0, 16);\n var ajaxData = new ajaxRecord(traceID, spanID, _self[strDiagLog]());\n ajaxData.method = method;\n ajaxData.requestUrl = url;\n ajaxData.xhrMonitoringState.openDone = true;\n ajaxData.requestHeaders = {};\n ajaxData.async = async;\n ajaxData.errorStatusText = _enableAjaxErrorStatusText;\n xhr[strAjaxData] = ajaxData;\n }\n\n function _attachToOnReadyStateChange(xhr) {\n xhr[strAjaxData].xhrMonitoringState.stateChangeAttached = attachEvent(xhr, \"readystatechange\", function () {\n try {\n if (xhr && xhr.readyState === 4 && _isMonitoredXhrInstance(xhr)) {\n _onAjaxComplete(xhr);\n }\n } catch (e) {\n var exceptionText = dumpObj(e); // ignore messages with c00c023f, as this a known IE9 XHR abort issue\n\n if (!exceptionText || _indexOf(exceptionText.toLowerCase(), \"c00c023f\") === -1) {\n _throwInternalCritical(_self, _InternalMessageId.FailedMonitorAjaxRSC, \"Failed to monitor XMLHttpRequest 'readystatechange' event handler, monitoring data for this ajax call may be incorrect.\", {\n ajaxDiagnosticsMessage: _getFailedAjaxDiagnosticsMessage(xhr),\n exception: exceptionText\n });\n }\n }\n });\n }\n\n function _getResponseText(xhr) {\n try {\n var responseType = xhr.responseType;\n\n if (responseType === \"\" || responseType === \"text\") {\n // As per the specification responseText is only valid if the type is an empty string or \"text\"\n return xhr.responseText;\n }\n } catch (e) {// This shouldn't happen because of the above check -- but just in case, so just ignore\n }\n\n return null;\n }\n\n function _onAjaxComplete(xhr) {\n var ajaxData = xhr[strAjaxData];\n ajaxData.responseFinishedTime = dateTimeUtilsNow();\n ajaxData.status = xhr.status;\n\n function _reportXhrError(e, failedProps) {\n var errorProps = failedProps || {};\n errorProps[\"ajaxDiagnosticsMessage\"] = _getFailedAjaxDiagnosticsMessage(xhr);\n\n if (e) {\n errorProps[\"exception\"] = dumpObj(e);\n }\n\n _throwInternalWarning(_self, _InternalMessageId.FailedMonitorAjaxDur, \"Failed to calculate the duration of the ajax call, monitoring data for this ajax call won't be sent.\", errorProps);\n }\n\n _findPerfResourceEntry(\"xmlhttprequest\", ajaxData, function () {\n try {\n var dependency = ajaxData.CreateTrackItem(\"Ajax\", _enableRequestHeaderTracking, function () {\n var ajaxResponse = {\n statusText: xhr.statusText,\n headerMap: null,\n correlationContext: _getAjaxCorrelationContext(xhr),\n type: xhr.responseType,\n responseText: _getResponseText(xhr),\n response: xhr.response\n };\n\n if (_enableResponseHeaderTracking) {\n var headers = xhr.getAllResponseHeaders();\n\n if (headers) {\n // xhr.getAllResponseHeaders() method returns all the response headers, separated by CRLF, as a string or null\n // the regex converts the header string into an array of individual headers\n var arr = strTrim(headers).split(/[\\r\\n]+/);\n var responseHeaderMap_2 = {};\n arrForEach(arr, function (line) {\n var parts = line.split(\": \");\n var header = parts.shift();\n var value = parts.join(\": \");\n\n if (_canIncludeHeaders(header)) {\n responseHeaderMap_2[header] = value;\n }\n });\n ajaxResponse.headerMap = responseHeaderMap_2;\n }\n }\n\n return ajaxResponse;\n });\n var properties = void 0;\n\n try {\n if (!!_addRequestContext) {\n properties = _addRequestContext({\n status: xhr.status,\n xhr: xhr\n });\n }\n } catch (e) {\n _throwInternalWarning(_self, _InternalMessageId.FailedAddingCustomDefinedRequestContext, \"Failed to add custom defined request context as configured call back may missing a null check.\");\n }\n\n if (dependency) {\n if (properties !== undefined) {\n dependency.properties = __assign(__assign({}, dependency.properties), properties);\n }\n\n _self[strTrackDependencyDataInternal](dependency);\n } else {\n _reportXhrError(null, {\n requestSentTime: ajaxData.requestSentTime,\n responseFinishedTime: ajaxData.responseFinishedTime\n });\n }\n } finally {\n // cleanup telemetry data\n try {\n xhr[strAjaxData] = null;\n } catch (e) {// May throw in environments that prevent extension or freeze xhr\n }\n }\n }, function (e) {\n _reportXhrError(e, null);\n });\n }\n\n function _getAjaxCorrelationContext(xhr) {\n try {\n var responseHeadersString = xhr.getAllResponseHeaders();\n\n if (responseHeadersString !== null) {\n var index = _indexOf(responseHeadersString.toLowerCase(), RequestHeaders.requestContextHeaderLowerCase);\n\n if (index !== -1) {\n var responseHeader = xhr.getResponseHeader(RequestHeaders.requestContextHeader);\n return CorrelationIdHelper.getCorrelationContext(responseHeader);\n }\n }\n } catch (e) {\n _throwInternalWarning(_self, _InternalMessageId.FailedMonitorAjaxGetCorrelationHeader, \"Failed to get Request-Context correlation header as it may be not included in the response or not accessible.\", {\n ajaxDiagnosticsMessage: _getFailedAjaxDiagnosticsMessage(xhr),\n exception: dumpObj(e)\n });\n }\n }\n\n function _createMarkId(type, ajaxData) {\n if (ajaxData.requestUrl && _markPrefix && _enableAjaxPerfTracking) {\n var performance_1 = getPerformance();\n\n if (performance_1 && isFunction(performance_1.mark)) {\n _markCount++;\n var markId = _markPrefix + type + \"#\" + _markCount;\n performance_1.mark(markId);\n var entries = performance_1.getEntriesByName(markId);\n\n if (entries && entries.length === 1) {\n ajaxData.perfMark = entries[0];\n }\n }\n }\n }\n\n function _findPerfResourceEntry(initiatorType, ajaxData, trackCallback, reportError) {\n var perfMark = ajaxData.perfMark;\n var performance = getPerformance();\n var maxAttempts = _config.maxAjaxPerfLookupAttempts;\n var retryDelay = _config.ajaxPerfLookupDelay;\n var requestUrl = ajaxData.requestUrl;\n var attempt = 0;\n\n (function locateResourceTiming() {\n try {\n if (performance && perfMark) {\n attempt++;\n var perfTiming = null;\n var entries = performance.getEntries();\n\n for (var lp = entries.length - 1; lp >= 0; lp--) {\n var entry = entries[lp];\n\n if (entry) {\n if (entry.entryType === \"resource\") {\n if (entry.initiatorType === initiatorType && (_indexOf(entry.name, requestUrl) !== -1 || _indexOf(requestUrl, entry.name) !== -1)) {\n perfTiming = entry;\n }\n } else if (entry.entryType === \"mark\" && entry.name === perfMark.name) {\n // We hit the start event\n ajaxData.perfTiming = perfTiming;\n break;\n }\n\n if (entry.startTime < perfMark.startTime - 1000) {\n // Fallback to try and reduce the time spent looking for the perf entry\n break;\n }\n }\n }\n }\n\n if (!perfMark || // - we don't have a perfMark or\n ajaxData.perfTiming || // - we have not found the perf entry or\n attempt >= maxAttempts || // - we have tried too many attempts or\n ajaxData.async === false) {\n // - this is a sync request\n if (perfMark && isFunction(performance.clearMarks)) {\n // Remove the mark so we don't fill up the performance resources too much\n performance.clearMarks(perfMark.name);\n }\n\n ajaxData.perfAttempts = attempt; // just continue and report the track event\n\n trackCallback();\n } else {\n // We need to wait for the browser to populate the window.performance entry\n // This needs to be at least 1ms as waiting <= 1 (on firefox) is not enough time for fetch or xhr,\n // this is a scheduling issue for the browser implementation\n setTimeout(locateResourceTiming, retryDelay);\n }\n } catch (e) {\n reportError(e);\n }\n })();\n }\n\n function _createFetchRecord(input, init) {\n var traceID = _context && _context.telemetryTrace && _context.telemetryTrace.traceID || generateW3CId();\n var spanID = generateW3CId().substr(0, 16);\n var ajaxData = new ajaxRecord(traceID, spanID, _self[strDiagLog]());\n ajaxData.requestSentTime = dateTimeUtilsNow();\n ajaxData.errorStatusText = _enableAjaxErrorStatusText;\n\n if (input instanceof Request) {\n ajaxData.requestUrl = input ? input.url : \"\";\n } else {\n ajaxData.requestUrl = input;\n }\n\n var method = \"GET\";\n\n if (init && init.method) {\n method = init.method;\n } else if (input && input instanceof Request) {\n method = input.method;\n }\n\n ajaxData.method = method;\n var requestHeaders = {};\n\n if (_enableRequestHeaderTracking) {\n var headers = new Headers((init ? init.headers : 0) || (input instanceof Request ? input.headers || {} : {}));\n headers.forEach(function (value, key) {\n if (_canIncludeHeaders(key)) {\n requestHeaders[key] = value;\n }\n });\n }\n\n ajaxData.requestHeaders = requestHeaders;\n\n _createMarkId(\"fetch\", ajaxData);\n\n return ajaxData;\n }\n\n function _getFailedFetchDiagnosticsMessage(input) {\n var result = \"\";\n\n try {\n if (!isNullOrUndefined(input)) {\n if (typeof input === \"string\") {\n result += \"(url: '\".concat(input, \"')\");\n } else {\n result += \"(url: '\".concat(input.url, \"')\");\n }\n }\n } catch (e) {\n _throwInternalCritical(_self, _InternalMessageId.FailedMonitorAjaxOpen, \"Failed to grab failed fetch diagnostics message\", {\n exception: dumpObj(e)\n });\n }\n\n return result;\n }\n\n function _reportFetchMetrics(callDetails, status, input, response, ajaxData, getResponse, properties) {\n if (!ajaxData) {\n return;\n }\n\n function _reportFetchError(msgId, e, failedProps) {\n var errorProps = failedProps || {};\n errorProps[\"fetchDiagnosticsMessage\"] = _getFailedFetchDiagnosticsMessage(input);\n\n if (e) {\n errorProps[\"exception\"] = dumpObj(e);\n }\n\n _throwInternalWarning(_self, msgId, \"Failed to calculate the duration of the fetch call, monitoring data for this fetch call won't be sent.\", errorProps);\n }\n\n ajaxData.responseFinishedTime = dateTimeUtilsNow();\n ajaxData.status = status;\n\n _findPerfResourceEntry(\"fetch\", ajaxData, function () {\n var dependency = ajaxData.CreateTrackItem(\"Fetch\", _enableRequestHeaderTracking, getResponse);\n var properties;\n\n try {\n if (!!_addRequestContext) {\n properties = _addRequestContext({\n status: status,\n request: input,\n response: response\n });\n }\n } catch (e) {\n _throwInternalWarning(_self, _InternalMessageId.FailedAddingCustomDefinedRequestContext, \"Failed to add custom defined request context as configured call back may missing a null check.\");\n }\n\n if (dependency) {\n if (properties !== undefined) {\n dependency.properties = __assign(__assign({}, dependency.properties), properties);\n }\n\n _self[strTrackDependencyDataInternal](dependency);\n } else {\n _reportFetchError(_InternalMessageId.FailedMonitorAjaxDur, null, {\n requestSentTime: ajaxData.requestSentTime,\n responseFinishedTime: ajaxData.responseFinishedTime\n });\n }\n }, function (e) {\n _reportFetchError(_InternalMessageId.FailedMonitorAjaxGetCorrelationHeader, e, null);\n });\n }\n\n function _getFetchCorrelationContext(response) {\n if (response && response.headers) {\n try {\n var responseHeader = response.headers.get(RequestHeaders.requestContextHeader);\n return CorrelationIdHelper.getCorrelationContext(responseHeader);\n } catch (e) {\n _throwInternalWarning(_self, _InternalMessageId.FailedMonitorAjaxGetCorrelationHeader, \"Failed to get Request-Context correlation header as it may be not included in the response or not accessible.\", {\n fetchDiagnosticsMessage: _getFailedFetchDiagnosticsMessage(response),\n exception: dumpObj(e)\n });\n }\n }\n }\n });\n return _this;\n }\n\n AjaxMonitor.getDefaultConfig = function () {\n var config = {\n maxAjaxCallsPerView: 500,\n disableAjaxTracking: false,\n disableFetchTracking: true,\n excludeRequestFromAutoTrackingPatterns: undefined,\n disableCorrelationHeaders: false,\n distributedTracingMode: DistributedTracingModes.AI_AND_W3C,\n correlationHeaderExcludedDomains: [\"*.blob.core.windows.net\", \"*.blob.core.chinacloudapi.cn\", \"*.blob.core.cloudapi.de\", \"*.blob.core.usgovcloudapi.net\"],\n correlationHeaderDomains: undefined,\n correlationHeaderExcludePatterns: undefined,\n appId: undefined,\n enableCorsCorrelation: false,\n enableRequestHeaderTracking: false,\n enableResponseHeaderTracking: false,\n enableAjaxErrorStatusText: false,\n enableAjaxPerfTracking: false,\n maxAjaxPerfLookupAttempts: 3,\n ajaxPerfLookupDelay: 25,\n ignoreHeaders: [\"Authorization\", \"X-API-Key\", \"WWW-Authenticate\"],\n addRequestContext: undefined\n };\n return config;\n };\n\n AjaxMonitor.getEmptyConfig = function () {\n var emptyConfig = this.getDefaultConfig();\n objForEachKey(emptyConfig, function (value) {\n emptyConfig[value] = undefined;\n });\n return emptyConfig;\n }; // Removed Stub for AjaxMonitor.prototype.initialize.\n // Removed Stub for AjaxMonitor.prototype.teardown.\n\n\n AjaxMonitor.prototype.processTelemetry = function (item, itemCtx) {\n this.processNext(item, itemCtx);\n }; // Removed Stub for AjaxMonitor.prototype.trackDependencyData.\n // Removed Stub for AjaxMonitor.prototype.includeCorrelationHeaders.\n // Removed Stub for AjaxMonitor.prototype.trackDependencyDataInternal.\n\n\n AjaxMonitor.identifier = \"AjaxDependencyPlugin\";\n return AjaxMonitor;\n}(BaseTelemetryPlugin);\n\nexport { AjaxMonitor };","/*\n * Application Insights JavaScript SDK - Common, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { DEFAULT_BREEZE_ENDPOINT } from \"./Constants\";\nimport { arrReduce, objKeys } from \"@microsoft/applicationinsights-core-js\";\nvar _FIELDS_SEPARATOR = \";\";\nvar _FIELD_KEY_VALUE_SEPARATOR = \"=\";\nexport function parseConnectionString(connectionString) {\n if (!connectionString) {\n return {};\n }\n\n var kvPairs = connectionString.split(_FIELDS_SEPARATOR);\n var result = arrReduce(kvPairs, function (fields, kv) {\n var kvParts = kv.split(_FIELD_KEY_VALUE_SEPARATOR);\n\n if (kvParts.length === 2) {\n // only save fields with valid formats\n var key = kvParts[0].toLowerCase();\n var value = kvParts[1];\n fields[key] = value;\n }\n\n return fields;\n }, {});\n\n if (objKeys(result).length > 0) {\n // this is a valid connection string, so parse the results\n if (result.endpointsuffix) {\n // use endpoint suffix where overrides are not provided\n var locationPrefix = result.location ? result.location + \".\" : \"\";\n result.ingestionendpoint = result.ingestionendpoint || \"https://\" + locationPrefix + \"dc.\" + result.endpointsuffix;\n } // apply the default endpoints\n\n\n result.ingestionendpoint = result.ingestionendpoint || DEFAULT_BREEZE_ENDPOINT;\n }\n\n return result;\n}\nexport var ConnectionStringParser = {\n parse: parseConnectionString\n};","/*\n * Application Insights JavaScript SDK - Web, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { AppInsightsCore, LoggingSeverity, _InternalMessageId, hasWindow, hasDocument, isReactNative, doPerf, objForEachKey, proxyAssign, arrForEach, isString, isFunction, isNullOrUndefined, isArray, throwError, addPageUnloadEventListener, addPageHideEventListener } from \"@microsoft/applicationinsights-core-js\";\nimport { ApplicationInsights } from \"@microsoft/applicationinsights-analytics-js\";\nimport { Sender } from \"@microsoft/applicationinsights-channel-js\";\nimport { PropertiesPlugin } from \"@microsoft/applicationinsights-properties-js\";\nimport { AjaxPlugin as DependenciesPlugin } from \"@microsoft/applicationinsights-dependencies-js\";\nimport { Util, CorrelationIdHelper, UrlHelper, DateTimeUtils, ConnectionStringParser, RequestHeaders, DisabledPropertyName, ProcessLegacy, SampleRate, HttpMethod, DEFAULT_BREEZE_ENDPOINT, AIData, AIBase, Envelope, Event, Exception, Metric, PageView, PageViewData, RemoteDependencyData, Trace, PageViewPerformance, Data, SeverityLevel, ConfigurationManager, ContextTagKeys, DataSanitizer, TelemetryItemCreator, CtxTagKeys, Extensions, DistributedTracingModes, PropertiesPluginIdentifier, BreezeChannelIdentifier, AnalyticsPluginIdentifier, parseConnectionString } from \"@microsoft/applicationinsights-common\";\n\"use strict\";\n\nvar _internalSdkSrc; // This is an exclude list of properties that should not be updated during initialization\n// They include a combination of private and internal property names\n\n\nvar _ignoreUpdateSnippetProperties = [\"snippet\", \"dependencies\", \"properties\", \"_snippetVersion\", \"appInsightsNew\", \"getSKUDefaults\"]; // Re-exposing the Common classes as Telemetry, the list was taken by reviewing the generated code for the build while using\n// the previous configuration :-\n// import * as Common from \"@microsoft/applicationinsights-common\"\n// export const Telemetry = Common;\n\nvar fieldType = {\n Default: 0\n /* Default */\n ,\n Required: 1\n /* Required */\n ,\n Array: 2\n /* Array */\n ,\n Hidden: 4\n /* Hidden */\n\n};\n/**\r\n * Telemetry type classes, e.g. PageView, Exception, etc\r\n */\n\nexport var Telemetry = {\n __proto__: null,\n PropertiesPluginIdentifier: PropertiesPluginIdentifier,\n BreezeChannelIdentifier: BreezeChannelIdentifier,\n AnalyticsPluginIdentifier: AnalyticsPluginIdentifier,\n Util: Util,\n CorrelationIdHelper: CorrelationIdHelper,\n UrlHelper: UrlHelper,\n DateTimeUtils: DateTimeUtils,\n ConnectionStringParser: ConnectionStringParser,\n FieldType: fieldType,\n RequestHeaders: RequestHeaders,\n DisabledPropertyName: DisabledPropertyName,\n ProcessLegacy: ProcessLegacy,\n SampleRate: SampleRate,\n HttpMethod: HttpMethod,\n DEFAULT_BREEZE_ENDPOINT: DEFAULT_BREEZE_ENDPOINT,\n AIData: AIData,\n AIBase: AIBase,\n Envelope: Envelope,\n Event: Event,\n Exception: Exception,\n Metric: Metric,\n PageView: PageView,\n PageViewData: PageViewData,\n RemoteDependencyData: RemoteDependencyData,\n Trace: Trace,\n PageViewPerformance: PageViewPerformance,\n Data: Data,\n SeverityLevel: SeverityLevel,\n ConfigurationManager: ConfigurationManager,\n ContextTagKeys: ContextTagKeys,\n DataSanitizer: DataSanitizer,\n TelemetryItemCreator: TelemetryItemCreator,\n CtxTagKeys: CtxTagKeys,\n Extensions: Extensions,\n DistributedTracingModes: DistributedTracingModes\n};\n/**\r\n * Application Insights API\r\n * @class Initialization\r\n * @implements {IApplicationInsights}\r\n */\n\nvar Initialization =\n/** @class */\nfunction () {\n function Initialization(snippet) {\n var _self = this; // initialize the queue and config in case they are undefined\n\n\n _self._snippetVersion = \"\" + (snippet.sv || snippet.version || \"\");\n snippet.queue = snippet.queue || [];\n snippet.version = snippet.version || 2.0; // Default to new version\n\n var config = snippet.config || {};\n\n if (config.connectionString) {\n var cs = parseConnectionString(config.connectionString);\n var ingest = cs.ingestionendpoint;\n config.endpointUrl = ingest ? \"\".concat(ingest, \"/v2/track\") : config.endpointUrl; // only add /v2/track when from connectionstring\n\n config.instrumentationKey = cs.instrumentationkey || config.instrumentationKey;\n }\n\n _self.appInsights = new ApplicationInsights();\n _self.properties = new PropertiesPlugin();\n _self.dependencies = new DependenciesPlugin();\n _self.core = new AppInsightsCore();\n _self._sender = new Sender();\n _self.snippet = snippet;\n _self.config = config;\n\n _self.getSKUDefaults();\n } // Analytics Plugin\n\n /**\r\n * Get the current cookie manager for this instance\r\n */\n\n\n Initialization.prototype.getCookieMgr = function () {\n return this.appInsights.getCookieMgr();\n };\n /**\r\n * Log a user action or other occurrence.\r\n * @param {IEventTelemetry} event\r\n * @param {ICustomProperties} [customProperties]\r\n * @memberof Initialization\r\n */\n\n\n Initialization.prototype.trackEvent = function (event, customProperties) {\n this.appInsights.trackEvent(event, customProperties);\n };\n /**\r\n * Logs that a page, or similar container was displayed to the user.\r\n * @param {IPageViewTelemetry} pageView\r\n * @memberof Initialization\r\n */\n\n\n Initialization.prototype.trackPageView = function (pageView) {\n var inPv = pageView || {};\n this.appInsights.trackPageView(inPv);\n };\n /**\r\n * Log a bag of performance information via the customProperties field.\r\n * @param {IPageViewPerformanceTelemetry} pageViewPerformance\r\n * @memberof Initialization\r\n */\n\n\n Initialization.prototype.trackPageViewPerformance = function (pageViewPerformance) {\n var inPvp = pageViewPerformance || {};\n this.appInsights.trackPageViewPerformance(inPvp);\n };\n /**\r\n * Log an exception that you have caught.\r\n * @param {IExceptionTelemetry} exception\r\n * @param {{[key: string]: any}} customProperties Additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n * @memberof Initialization\r\n */\n\n\n Initialization.prototype.trackException = function (exception, customProperties) {\n if (exception && !exception.exception && exception.error) {\n exception.exception = exception.error;\n }\n\n this.appInsights.trackException(exception, customProperties);\n };\n /**\r\n * Manually send uncaught exception telemetry. This method is automatically triggered\r\n * on a window.onerror event.\r\n * @param {IAutoExceptionTelemetry} exception\r\n * @memberof Initialization\r\n */\n\n\n Initialization.prototype._onerror = function (exception) {\n this.appInsights._onerror(exception);\n };\n /**\r\n * Log a diagnostic scenario such entering or leaving a function.\r\n * @param {ITraceTelemetry} trace\r\n * @param {ICustomProperties} [customProperties]\r\n * @memberof Initialization\r\n */\n\n\n Initialization.prototype.trackTrace = function (trace, customProperties) {\n this.appInsights.trackTrace(trace, customProperties);\n };\n /**\r\n * Log a numeric value that is not associated with a specific event. Typically used\r\n * to send regular reports of performance indicators.\r\n *\r\n * To send a single measurement, just use the `name` and `average` fields\r\n * of {@link IMetricTelemetry}.\r\n *\r\n * If you take measurements frequently, you can reduce the telemetry bandwidth by\r\n * aggregating multiple measurements and sending the resulting average and modifying\r\n * the `sampleCount` field of {@link IMetricTelemetry}.\r\n * @param {IMetricTelemetry} metric input object argument. Only `name` and `average` are mandatory.\r\n * @param {ICustomProperties} [customProperties]\r\n * @memberof Initialization\r\n */\n\n\n Initialization.prototype.trackMetric = function (metric, customProperties) {\n this.appInsights.trackMetric(metric, customProperties);\n };\n /**\r\n * Starts the timer for tracking a page load time. Use this instead of `trackPageView` if you want to control when the page view timer starts and stops,\r\n * but don't want to calculate the duration yourself. This method doesn't send any telemetry. Call `stopTrackPage` to log the end of the page view\r\n * and send the event.\r\n * @param name A string that idenfities this item, unique within this HTML document. Defaults to the document title.\r\n */\n\n\n Initialization.prototype.startTrackPage = function (name) {\n this.appInsights.startTrackPage(name);\n };\n /**\r\n * Stops the timer that was started by calling `startTrackPage` and sends the pageview load time telemetry with the specified properties and measurements.\r\n * The duration of the page view will be the time between calling `startTrackPage` and `stopTrackPage`.\r\n * @param name The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param url String - a relative or absolute URL that identifies the page or other item. Defaults to the window location.\r\n * @param properties map[string, string] - additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this page, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\n\n\n Initialization.prototype.stopTrackPage = function (name, url, customProperties, measurements) {\n this.appInsights.stopTrackPage(name, url, customProperties, measurements);\n };\n\n Initialization.prototype.startTrackEvent = function (name) {\n this.appInsights.startTrackEvent(name);\n };\n /**\r\n * Log an extended event that you started timing with `startTrackEvent`.\r\n * @param name The string you used to identify this event in `startTrackEvent`.\r\n * @param properties map[string, string] - additional data used to filter events and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this event, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\n\n\n Initialization.prototype.stopTrackEvent = function (name, properties, measurements) {\n this.appInsights.stopTrackEvent(name, properties, measurements); // Todo: Fix to pass measurements once type is updated\n };\n\n Initialization.prototype.addTelemetryInitializer = function (telemetryInitializer) {\n return this.appInsights.addTelemetryInitializer(telemetryInitializer);\n }; // Properties Plugin\n\n /**\r\n * Set the authenticated user id and the account id. Used for identifying a specific signed-in user. Parameters must not contain whitespace or ,;=|\r\n *\r\n * The method will only set the `authenticatedUserId` and `accountId` in the current page view. To set them for the whole session, you should set `storeInCookie = true`\r\n * @param {string} authenticatedUserId\r\n * @param {string} [accountId]\r\n * @param {boolean} [storeInCookie=false]\r\n * @memberof Initialization\r\n */\n\n\n Initialization.prototype.setAuthenticatedUserContext = function (authenticatedUserId, accountId, storeInCookie) {\n if (storeInCookie === void 0) {\n storeInCookie = false;\n }\n\n this.properties.context.user.setAuthenticatedUserContext(authenticatedUserId, accountId, storeInCookie);\n };\n /**\r\n * Clears the authenticated user id and account id. The associated cookie is cleared, if present.\r\n * @memberof Initialization\r\n */\n\n\n Initialization.prototype.clearAuthenticatedUserContext = function () {\n this.properties.context.user.clearAuthenticatedUserContext();\n }; // Dependencies Plugin\n\n /**\r\n * Log a dependency call (e.g. ajax)\r\n * @param {IDependencyTelemetry} dependency\r\n * @memberof Initialization\r\n */\n\n\n Initialization.prototype.trackDependencyData = function (dependency) {\n this.dependencies.trackDependencyData(dependency);\n }; // Misc\n\n /**\r\n * Manually trigger an immediate send of all telemetry still in the buffer.\r\n * @param {boolean} [async=true]\r\n * @memberof Initialization\r\n */\n\n\n Initialization.prototype.flush = function (async) {\n var _this = this;\n\n if (async === void 0) {\n async = true;\n }\n\n doPerf(this.core, function () {\n return \"AISKU.flush\";\n }, function () {\n arrForEach(_this.core.getTransmissionControls(), function (channels) {\n arrForEach(channels, function (channel) {\n channel.flush(async);\n });\n });\n }, null, async);\n };\n /**\r\n * Manually trigger an immediate send of all telemetry still in the buffer using beacon Sender.\r\n * Fall back to xhr sender if beacon is not supported.\r\n * @param {boolean} [async=true]\r\n * @memberof Initialization\r\n */\n\n\n Initialization.prototype.onunloadFlush = function (async) {\n if (async === void 0) {\n async = true;\n }\n\n arrForEach(this.core.getTransmissionControls(), function (channels) {\n arrForEach(channels, function (channel) {\n if (channel.onunloadFlush) {\n channel.onunloadFlush();\n } else {\n channel.flush(async);\n }\n });\n });\n };\n /**\r\n * Initialize this instance of ApplicationInsights\r\n * @returns {IApplicationInsights}\r\n * @memberof Initialization\r\n */\n\n\n Initialization.prototype.loadAppInsights = function (legacyMode, logger, notificationManager) {\n var _this = this;\n\n if (legacyMode === void 0) {\n legacyMode = false;\n }\n\n var _self = this;\n\n function _updateSnippetProperties(snippet) {\n if (snippet) {\n var snippetVer = \"\";\n\n if (!isNullOrUndefined(_self._snippetVersion)) {\n snippetVer += _self._snippetVersion;\n }\n\n if (legacyMode) {\n snippetVer += \".lg\";\n }\n\n if (_self.context && _self.context.internal) {\n _self.context.internal.snippetVer = snippetVer || \"-\";\n } // apply updated properties to the global instance (snippet)\n\n\n objForEachKey(_self, function (field, value) {\n if (isString(field) && !isFunction(value) && field && field[0] !== \"_\" && // Don't copy \"internal\" values\n _ignoreUpdateSnippetProperties.indexOf(field) === -1) {\n snippet[field] = value;\n }\n });\n }\n } // dont allow additional channels/other extensions for legacy mode; legacy mode is only to allow users to switch with no code changes!\n\n\n if (legacyMode && _self.config.extensions && _self.config.extensions.length > 0) {\n throwError(\"Extensions not allowed in legacy mode\");\n }\n\n doPerf(_self.core, function () {\n return \"AISKU.loadAppInsights\";\n }, function () {\n var extensions = [];\n extensions.push(_self._sender);\n extensions.push(_self.properties);\n extensions.push(_self.dependencies);\n extensions.push(_self.appInsights); // initialize core\n\n _self.core.initialize(_self.config, extensions, logger, notificationManager);\n\n _self.context = _self.properties.context;\n\n if (_internalSdkSrc && _self.context) {\n _self.context.internal.sdkSrc = _internalSdkSrc;\n }\n\n _updateSnippetProperties(_self.snippet); // Empty queue of all api calls logged prior to sdk download\n\n\n _self.emptyQueue();\n\n _self.pollInternalLogs();\n\n _self.addHousekeepingBeforeUnload(_this);\n });\n return _self;\n };\n /**\r\n * Overwrite the lazy loaded fields of global window snippet to contain the\r\n * actual initialized API methods\r\n * @param {Snippet} snippet\r\n * @memberof Initialization\r\n */\n\n\n Initialization.prototype.updateSnippetDefinitions = function (snippet) {\n // apply full appInsights to the global instance\n // Note: This must be called before loadAppInsights is called\n proxyAssign(snippet, this, function (name) {\n // Not excluding names prefixed with \"_\" as we need to proxy some functions like _onError\n return name && _ignoreUpdateSnippetProperties.indexOf(name) === -1;\n });\n };\n /**\r\n * Call any functions that were queued before the main script was loaded\r\n * @memberof Initialization\r\n */\n\n\n Initialization.prototype.emptyQueue = function () {\n var _self = this; // call functions that were queued before the main script was loaded\n\n\n try {\n if (isArray(_self.snippet.queue)) {\n // note: do not check length in the for-loop conditional in case something goes wrong and the stub methods are not overridden.\n var length_1 = _self.snippet.queue.length;\n\n for (var i = 0; i < length_1; i++) {\n var call = _self.snippet.queue[i];\n call();\n }\n\n _self.snippet.queue = undefined;\n delete _self.snippet.queue;\n }\n } catch (exception) {\n var properties = {};\n\n if (exception && isFunction(exception.toString)) {\n properties.exception = exception.toString();\n } // need from core\n // Microsoft.ApplicationInsights._InternalLogging.throwInternal(\n // LoggingSeverity.WARNING,\n // _InternalMessageId.FailedToSendQueuedTelemetry,\n // \"Failed to send queued telemetry\",\n // properties);\n\n }\n };\n\n Initialization.prototype.pollInternalLogs = function () {\n this.core.pollInternalLogs();\n };\n\n Initialization.prototype.stopPollingInternalLogs = function () {\n this.core.stopPollingInternalLogs();\n };\n\n Initialization.prototype.addHousekeepingBeforeUnload = function (appInsightsInstance) {\n // Add callback to push events when the user navigates away\n if (hasWindow() || hasDocument()) {\n var performHousekeeping = function performHousekeeping() {\n // Adds the ability to flush all data before the page unloads.\n // Note: This approach tries to push a sync request with all the pending events onbeforeunload.\n // Firefox does not respect this.Other browsers DO push out the call with < 100% hit rate.\n // Telemetry here will help us analyze how effective this approach is.\n // Another approach would be to make this call sync with a acceptable timeout to reduce the\n // impact on user experience.\n // appInsightsInstance.context._sender.triggerSend();\n appInsightsInstance.onunloadFlush(false); // Back up the current session to local storage\n // This lets us close expired sessions after the cookies themselves expire\n\n arrForEach(appInsightsInstance.appInsights.core[\"_extensions\"], function (ext) {\n if (ext.identifier === PropertiesPluginIdentifier) {\n if (ext && ext.context && ext.context._sessionManager) {\n ext.context._sessionManager.backup();\n }\n\n return -1;\n }\n });\n };\n\n var added = false;\n var excludePageUnloadEvents = appInsightsInstance.appInsights.config.disablePageUnloadEvents;\n\n if (!appInsightsInstance.appInsights.config.disableFlushOnBeforeUnload) {\n // Hook the unload event for the document, window and body to ensure that the client events are flushed to the server\n // As just hooking the window does not always fire (on chrome) for page navigation's.\n added = addPageUnloadEventListener(performHousekeeping, excludePageUnloadEvents); // We also need to hook the pagehide and visibilitychange events as not all versions of Safari support load/unload events.\n\n added = addPageHideEventListener(performHousekeeping, excludePageUnloadEvents) || added; // A reactNative app may not have a window and therefore the beforeunload/pagehide events -- so don't\n // log the failure in this case\n\n if (!added && !isReactNative()) {\n appInsightsInstance.appInsights.core.logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.FailedToAddHandlerForOnBeforeUnload, \"Could not add handler for beforeunload and pagehide\");\n }\n }\n\n if (!added && !appInsightsInstance.appInsights.config.disableFlushOnUnload) {\n // If we didn't add the normal set then attempt to add the pagehide and visibilitychange only\n addPageHideEventListener(performHousekeeping, excludePageUnloadEvents);\n }\n }\n };\n\n Initialization.prototype.getSender = function () {\n return this._sender;\n };\n\n Initialization.prototype.getSKUDefaults = function () {\n var _self = this;\n\n _self.config.diagnosticLogInterval = _self.config.diagnosticLogInterval && _self.config.diagnosticLogInterval > 0 ? _self.config.diagnosticLogInterval : 10000;\n };\n\n return Initialization;\n}();\n\nexport { Initialization }; // tslint:disable-next-line\n\n(function () {\n var sdkSrc = null;\n var isModule = false;\n var cdns = [\"://js.monitor.azure.com/\", \"://az416426.vo.msecnd.net/\"];\n\n try {\n // Try and determine whether the sdk is being loaded from the CDN\n // currentScript is only valid during initial processing\n var scrpt = (document || {}).currentScript;\n\n if (scrpt) {\n sdkSrc = scrpt.src; // } else {\n // // We need to update to at least typescript 2.9 for this to work :-(\n // // Leaving as a stub for now so after we upgrade this breadcrumb is available\n // let meta = import.meta;\n // sdkSrc = (meta || {}).url;\n // isModule = true;\n }\n } catch (e) {// eslint-disable-next-line no-empty\n }\n\n if (sdkSrc) {\n try {\n var url = sdkSrc.toLowerCase();\n\n if (url) {\n var src = \"\";\n\n for (var idx = 0; idx < cdns.length; idx++) {\n if (url.indexOf(cdns[idx]) !== -1) {\n src = \"cdn\" + (idx + 1);\n\n if (url.indexOf(\"/scripts/\") === -1) {\n if (url.indexOf(\"/next/\") !== -1) {\n src += \"-next\";\n } else if (url.indexOf(\"/beta/\") !== -1) {\n src += \"-beta\";\n }\n }\n\n _internalSdkSrc = src + (isModule ? \".mod\" : \"\");\n break;\n }\n }\n }\n } catch (e) {// eslint-disable-next-line no-empty\n }\n }\n})();","/*\n * Application Insights JavaScript SDK - Common, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { isNullOrUndefined } from \"@microsoft/applicationinsights-core-js\";\n\nvar ConfigurationManager =\n/** @class */\nfunction () {\n function ConfigurationManager() {}\n\n ConfigurationManager.getConfig = function (config, field, identifier, defaultValue) {\n if (defaultValue === void 0) {\n defaultValue = false;\n }\n\n var configValue;\n\n if (identifier && config.extensionConfig && config.extensionConfig[identifier] && !isNullOrUndefined(config.extensionConfig[identifier][field])) {\n configValue = config.extensionConfig[identifier][field];\n } else {\n configValue = config[field];\n }\n\n return !isNullOrUndefined(configValue) ? configValue : defaultValue;\n };\n\n return ConfigurationManager;\n}();\n\nexport { ConfigurationManager };","/*\n * Application Insights JavaScript SDK - Web, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { stringToBoolOrDefault, ProcessLegacy } from \"@microsoft/applicationinsights-common\";\nimport { proxyAssign, throwError } from \"@microsoft/applicationinsights-core-js\"; // This is an exclude list of properties that should not be updated during initialization\n// They include a combination of private and internal property names\n\nvar _ignoreUpdateSnippetProperties = [\"snippet\", \"getDefaultConfig\", \"_hasLegacyInitializers\", \"_queue\", \"_processLegacyInitializers\"]; // ToDo: fix properties and measurements once updates are done to common\n\nvar AppInsightsDeprecated =\n/** @class */\nfunction () {\n function AppInsightsDeprecated(snippet, appInsightsNew) {\n this._hasLegacyInitializers = false;\n this._queue = [];\n this.config = AppInsightsDeprecated.getDefaultConfig(snippet.config);\n this.appInsightsNew = appInsightsNew;\n this.context = {\n addTelemetryInitializer: this.addTelemetryInitializers.bind(this)\n };\n }\n\n AppInsightsDeprecated.getDefaultConfig = function (config) {\n if (!config) {\n config = {};\n } // set default values\n\n\n config.endpointUrl = config.endpointUrl || \"https://dc.services.visualstudio.com/v2/track\";\n config.sessionRenewalMs = 30 * 60 * 1000;\n config.sessionExpirationMs = 24 * 60 * 60 * 1000;\n config.maxBatchSizeInBytes = config.maxBatchSizeInBytes > 0 ? config.maxBatchSizeInBytes : 102400; // 100kb\n\n config.maxBatchInterval = !isNaN(config.maxBatchInterval) ? config.maxBatchInterval : 15000;\n config.enableDebug = stringToBoolOrDefault(config.enableDebug);\n config.disableExceptionTracking = stringToBoolOrDefault(config.disableExceptionTracking);\n config.disableTelemetry = stringToBoolOrDefault(config.disableTelemetry);\n config.verboseLogging = stringToBoolOrDefault(config.verboseLogging);\n config.emitLineDelimitedJson = stringToBoolOrDefault(config.emitLineDelimitedJson);\n config.diagnosticLogInterval = config.diagnosticLogInterval || 10000;\n config.autoTrackPageVisitTime = stringToBoolOrDefault(config.autoTrackPageVisitTime);\n\n if (isNaN(config.samplingPercentage) || config.samplingPercentage <= 0 || config.samplingPercentage >= 100) {\n config.samplingPercentage = 100;\n }\n\n config.disableAjaxTracking = stringToBoolOrDefault(config.disableAjaxTracking);\n config.maxAjaxCallsPerView = !isNaN(config.maxAjaxCallsPerView) ? config.maxAjaxCallsPerView : 500;\n config.isBeaconApiDisabled = stringToBoolOrDefault(config.isBeaconApiDisabled, true);\n config.disableCorrelationHeaders = stringToBoolOrDefault(config.disableCorrelationHeaders);\n config.correlationHeaderExcludedDomains = config.correlationHeaderExcludedDomains || [\"*.blob.core.windows.net\", \"*.blob.core.chinacloudapi.cn\", \"*.blob.core.cloudapi.de\", \"*.blob.core.usgovcloudapi.net\"];\n config.disableFlushOnBeforeUnload = stringToBoolOrDefault(config.disableFlushOnBeforeUnload);\n config.disableFlushOnUnload = stringToBoolOrDefault(config.disableFlushOnUnload, config.disableFlushOnBeforeUnload);\n config.enableSessionStorageBuffer = stringToBoolOrDefault(config.enableSessionStorageBuffer, true);\n config.isRetryDisabled = stringToBoolOrDefault(config.isRetryDisabled);\n config.isCookieUseDisabled = stringToBoolOrDefault(config.isCookieUseDisabled);\n config.isStorageUseDisabled = stringToBoolOrDefault(config.isStorageUseDisabled);\n config.isBrowserLinkTrackingEnabled = stringToBoolOrDefault(config.isBrowserLinkTrackingEnabled);\n config.enableCorsCorrelation = stringToBoolOrDefault(config.enableCorsCorrelation);\n return config;\n };\n /**\r\n * The array of telemetry initializers to call before sending each telemetry item.\r\n */\n\n\n AppInsightsDeprecated.prototype.addTelemetryInitializers = function (callBack) {\n var _this = this; // Add initializer to current processing only if there is any old telemetry initializer\n\n\n if (!this._hasLegacyInitializers) {\n this.appInsightsNew.addTelemetryInitializer(function (item) {\n _this._processLegacyInitializers(item); // setup call back for each legacy processor\n\n });\n this._hasLegacyInitializers = true;\n }\n\n this._queue.push(callBack);\n };\n /**\r\n * Get the current cookie manager for this instance\r\n */\n\n\n AppInsightsDeprecated.prototype.getCookieMgr = function () {\n return this.appInsightsNew.getCookieMgr();\n };\n\n AppInsightsDeprecated.prototype.startTrackPage = function (name) {\n this.appInsightsNew.startTrackPage(name);\n };\n\n AppInsightsDeprecated.prototype.stopTrackPage = function (name, url, properties, measurements) {\n this.appInsightsNew.stopTrackPage(name, url, properties); // update\n };\n\n AppInsightsDeprecated.prototype.trackPageView = function (name, url, properties, measurements, duration) {\n var telemetry = {\n name: name,\n uri: url,\n properties: properties,\n measurements: measurements\n }; // fix for props, measurements, duration\n\n this.appInsightsNew.trackPageView(telemetry);\n };\n\n AppInsightsDeprecated.prototype.trackEvent = function (name, properties, measurements) {\n this.appInsightsNew.trackEvent({\n name: name\n });\n };\n\n AppInsightsDeprecated.prototype.trackDependency = function (id, method, absoluteUrl, pathName, totalTime, success, resultCode) {\n this.appInsightsNew.trackDependencyData({\n id: id,\n target: absoluteUrl,\n type: pathName,\n duration: totalTime,\n properties: {\n HttpMethod: method\n },\n success: success,\n responseCode: resultCode\n });\n };\n\n AppInsightsDeprecated.prototype.trackException = function (exception, handledAt, properties, measurements, severityLevel) {\n this.appInsightsNew.trackException({\n exception: exception\n });\n };\n\n AppInsightsDeprecated.prototype.trackMetric = function (name, average, sampleCount, min, max, properties) {\n this.appInsightsNew.trackMetric({\n name: name,\n average: average,\n sampleCount: sampleCount,\n min: min,\n max: max\n });\n };\n\n AppInsightsDeprecated.prototype.trackTrace = function (message, properties, severityLevel) {\n this.appInsightsNew.trackTrace({\n message: message,\n severityLevel: severityLevel\n });\n };\n\n AppInsightsDeprecated.prototype.flush = function (async) {\n this.appInsightsNew.flush(async);\n };\n\n AppInsightsDeprecated.prototype.setAuthenticatedUserContext = function (authenticatedUserId, accountId, storeInCookie) {\n this.appInsightsNew.context.user.setAuthenticatedUserContext(authenticatedUserId, accountId, storeInCookie);\n };\n\n AppInsightsDeprecated.prototype.clearAuthenticatedUserContext = function () {\n this.appInsightsNew.context.user.clearAuthenticatedUserContext();\n };\n\n AppInsightsDeprecated.prototype._onerror = function (message, url, lineNumber, columnNumber, error) {\n this.appInsightsNew._onerror({\n message: message,\n url: url,\n lineNumber: lineNumber,\n columnNumber: columnNumber,\n error: error\n });\n };\n\n AppInsightsDeprecated.prototype.startTrackEvent = function (name) {\n this.appInsightsNew.startTrackEvent(name);\n };\n\n AppInsightsDeprecated.prototype.stopTrackEvent = function (name, properties, measurements) {\n this.appInsightsNew.stopTrackEvent(name, properties, measurements);\n };\n\n AppInsightsDeprecated.prototype.downloadAndSetup = function (config) {\n throwError(\"downloadAndSetup not implemented in web SKU\");\n };\n\n AppInsightsDeprecated.prototype.updateSnippetDefinitions = function (snippet) {\n // apply full appInsights to the global instance\n // Note: This must be called before loadAppInsights is called\n proxyAssign(snippet, this, function (name) {\n // Not excluding names prefixed with \"_\" as we need to proxy some functions like _onError\n return name && _ignoreUpdateSnippetProperties.indexOf(name) === -1;\n });\n }; // note: these are split into methods to enable unit tests\n\n\n AppInsightsDeprecated.prototype.loadAppInsights = function () {\n // initialize global instance of appInsights\n // var appInsights = new Microsoft.ApplicationInsights.AppInsights(this.config);\n var _this = this; // implement legacy version of trackPageView for 0.10<\n\n\n if (this.config[\"iKey\"]) {\n var originalTrackPageView_1 = this.trackPageView;\n\n this.trackPageView = function (pagePath, properties, measurements) {\n originalTrackPageView_1.apply(_this, [null, pagePath, properties, measurements]);\n };\n } // implement legacy pageView interface if it is present in the snippet\n\n\n var legacyPageView = \"logPageView\";\n\n if (typeof this.snippet[legacyPageView] === \"function\") {\n this[legacyPageView] = function (pagePath, properties, measurements) {\n _this.trackPageView(null, pagePath, properties, measurements);\n };\n } // implement legacy event interface if it is present in the snippet\n\n\n var legacyEvent = \"logEvent\";\n\n if (typeof this.snippet[legacyEvent] === \"function\") {\n this[legacyEvent] = function (name, props, measurements) {\n _this.trackEvent(name, props, measurements);\n };\n }\n\n return this;\n };\n\n AppInsightsDeprecated.prototype._processLegacyInitializers = function (item) {\n // instead of mapping new to legacy and then back again and repeating in channel, attach callback for channel to call\n item.tags[ProcessLegacy] = this._queue;\n return item;\n };\n\n return AppInsightsDeprecated;\n}();\n\nexport { AppInsightsDeprecated };","/*\n * Application Insights JavaScript SDK - Web, 2.7.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { AppInsightsDeprecated } from \"./ApplicationInsightsDeprecated\";\nimport { Initialization as ApplicationInsights } from \"./Initialization\";\nimport { _legacyCookieMgr } from \"@microsoft/applicationinsights-core-js\";\n\nvar ApplicationInsightsContainer =\n/** @class */\nfunction () {\n function ApplicationInsightsContainer() {}\n\n ApplicationInsightsContainer.getAppInsights = function (snippet, version) {\n var initialization = new ApplicationInsights(snippet);\n var legacyMode = version !== 2.0 ? true : false; // Side effect is to create, initialize and listen to the CoreUtils._canUseCookies changes\n // Called here to support backward compatibility\n\n _legacyCookieMgr(); // Two target scenarios:\n // 1. Customer runs v1 snippet + runtime. If customer updates just cdn location to new SDK, it will run in compat mode so old apis work\n // 2. Customer updates to new snippet (that uses cdn location to new SDK. This is same as a new customer onboarding\n // and all api signatures are expected to map to new SDK. Note new snippet specifies version\n\n\n if (version === 2.0) {\n initialization.updateSnippetDefinitions(snippet);\n initialization.loadAppInsights(legacyMode);\n return initialization; // default behavior with new snippet\n } else {\n var legacy = new AppInsightsDeprecated(snippet, initialization); // target scenario old snippet + updated endpoint\n\n legacy.updateSnippetDefinitions(snippet);\n initialization.loadAppInsights(legacyMode);\n return legacy;\n }\n };\n\n return ApplicationInsightsContainer;\n}();\n\nexport { ApplicationInsightsContainer };","\"use strict\";\n\nvar _slicedToArray = require(\"C:/a/4/s/node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nvar _regeneratorRuntime = require(\"C:\\\\a\\\\4\\\\s\\\\node_modules\\\\@babel\\\\runtime\\\\regenerator\\\\index.js\");\n\nvar _classCallCheck = require(\"C:/a/4/s/node_modules/@babel/runtime/helpers/classCallCheck.js\");\n\nvar _createClass = require(\"C:/a/4/s/node_modules/@babel/runtime/helpers/createClass.js\");\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar async_lib_1 = require(\"../async-lib/async-lib\");\n\nvar common_1 = require(\"../common/common\");\n\nvar AmplitudeHelper = /*#__PURE__*/function () {\n function AmplitudeHelper(applicationName) {\n _classCallCheck(this, AmplitudeHelper);\n\n this.applicationName = applicationName;\n\n if (common_1.isBrowser()) {\n this.asyncAmplitude = new async_lib_1.AsyncLib(\"amplitude\", window);\n }\n }\n\n _createClass(AmplitudeHelper, [{\n key: \"sendEvent\",\n value: function sendEvent(name) {\n var _this = this;\n\n var event = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var user = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (this.asyncAmplitude) {\n return this.asyncAmplitude.get().then(function (ampApi) {\n return ampApi.getInstance();\n }).then(function (instance) {\n return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return this.dispatchUserProperties(instance, user);\n\n case 2:\n _context.next = 4;\n return this.dispatchEvent(instance, name, event);\n\n case 4:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n }).catch(function (e) {\n console.error(\"Unable to send event\", name, user, event, e);\n });\n }\n\n return Promise.resolve();\n }\n }, {\n key: \"setUser\",\n value: function setUser(userId) {\n if (this.asyncAmplitude) {\n return this.asyncAmplitude.get().then(function (ampApi) {\n return ampApi.getInstance();\n }).then(function (instance) {\n instance.setUserId(userId);\n }).catch(function (e) {\n console.error(\"Unable to set user\", userId, e);\n });\n }\n\n return Promise.resolve();\n }\n }, {\n key: \"dispatchEvent\",\n value: function dispatchEvent(instance, name, event) {\n var _this2 = this;\n\n return new Promise(function (resolve) {\n instance.logEvent(name, Object.assign({\n Application: _this2.applicationName\n }, event), function () {\n return resolve();\n });\n });\n }\n }, {\n key: \"dispatchUserProperties\",\n value: function dispatchUserProperties(instance, user) {\n return new Promise(function (resolve) {\n var identity = new instance.Identify();\n Object.entries(user).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n\n if (value) {\n identity.set(key, value);\n }\n });\n instance.identify(identity, function () {\n return resolve();\n });\n });\n }\n }]);\n\n return AmplitudeHelper;\n}();\n\nexports.AmplitudeHelper = AmplitudeHelper;","\"use strict\";\n\nvar _classCallCheck = require(\"C:/a/4/s/node_modules/@babel/runtime/helpers/classCallCheck.js\");\n\nvar _createClass = require(\"C:/a/4/s/node_modules/@babel/runtime/helpers/createClass.js\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar AsyncLib = /*#__PURE__*/function () {\n function AsyncLib(asyncKey, scope) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n _classCallCheck(this, AsyncLib);\n\n this.asyncKey = asyncKey;\n this.scope = scope;\n this.retryCount = 0;\n this.timeout = options.timeout || 1000;\n this.retryLimit = options.retryLimit || 30;\n this.customTest = options.customTest;\n }\n\n _createClass(AsyncLib, [{\n key: \"get\",\n value: function get() {\n var _this = this;\n\n var lib = this.scope[this.asyncKey];\n\n if (this.libTest(lib)) {\n return Promise.resolve(lib);\n } else if (!this.pendingDataLayer) {\n this.pendingDataLayer = new Promise(function (resolve, reject) {\n _this.timer = setInterval(function () {\n var lib = _this.scope[_this.asyncKey];\n _this.retryCount++;\n\n if (_this.libTest(lib)) {\n if (_this.timer) clearInterval(_this.timer);\n return resolve(lib);\n }\n\n if (_this.retryCount > _this.retryLimit) {\n if (_this.timer) clearInterval(_this.timer);\n var error = Error(\"Unable to connect to \\\"\".concat(_this.asyncKey, \"\\\" after \").concat(_this.retryLimit, \" attempts\"));\n reject(error);\n }\n }, _this.timeout);\n });\n }\n\n return this.pendingDataLayer;\n }\n }, {\n key: \"libTest\",\n value: function libTest(lib) {\n return lib && (!this.customTest || this.customTest(lib));\n }\n }]);\n\n return AsyncLib;\n}();\n\nexports.AsyncLib = AsyncLib;","\"use strict\";\n\nfunction __export(m) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n__export(require(\"./async-lib/async-lib\"));\n\n__export(require(\"./analytics/amplitude-helper\"));\n\n__export(require(\"./common/common\"));\n\n__export(require(\"./date/date\"));\n\n__export(require(\"./forms/use-form\"));\n\n__export(require(\"./finance/fees\"));\n\n__export(require(\"./finance/repayments\"));\n\n__export(require(\"./loggers/application-insights\"));\n\n__export(require(\"./test-utils/mock-events\"));\n\n__export(require(\"./test-utils/epic-helper\"));\n\n__export(require(\"./test-utils/mock-hooks\"));\n\n__export(require(\"./test-utils/react-hook.mocks\"));\n\n__export(require(\"./test-utils/use-form-helper\"));\n\n__export(require(\"./test-utils/dispatch-helper\"));\n\n__export(require(\"./test-utils/react-helper\"));\n\n__export(require(\"./test-utils/promise.mocks\"));\n\n__export(require(\"./loading\"));\n\n__export(require(\"./notifications\"));","\"use strict\";\n\nvar _toConsumableArray = require(\"C:/a/4/s/node_modules/@babel/runtime/helpers/toConsumableArray.js\");\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar idna_uts46_hx_1 = __importDefault(require(\"idna-uts46-hx\"));\n\nfunction toCurrency(amount) {\n var showCents = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var value = amount.toLocaleString(\"en-AU\", {\n maximumFractionDigits: showCents ? 2 : 0,\n minimumFractionDigits: showCents ? 2 : 0\n });\n return amount < 0 ? \"-$\".concat(value.slice(1)) : \"$\".concat(value);\n}\n\nexports.toCurrency = toCurrency;\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n\nexports.isDefined = isDefined;\n\nexports.amountAllowedValidator = function (min, max) {\n return createValidator(function (amount) {\n return +amount >= min && +amount <= max;\n }, \"Loan amount must be between \".concat(toCurrency(min, false), \" and \").concat(toCurrency(max, false)));\n};\n\nexports.wholeDollarAmountValidator = createValidator(function (val) {\n return /^[0-9]*$/.test(val);\n}, \"Please enter a whole dollar amount, without cents\");\nexports.currencyValidator = createValidator(function (val) {\n return /^\\d*(\\.\\d{0,2})?$/.test(val);\n}, \"Please enter a valid amount\");\n\nfunction isValidEmail(email) {\n if (!email) {\n return false;\n }\n\n try {\n email = email.replace(/(@)(.+)$/i, function (_match, _p1, p2) {\n var idn = idna_uts46_hx_1.default.toAscii(p2);\n return \"@\".concat(idn);\n });\n } catch (e) {\n return false;\n }\n\n var quotedEmail = /^((\".+?\"@))((\\[(\\d{1,3}\\.){3}\\d{1,3}\\])|(([0-9a-z][-0-9a-z]*[0-9a-z]*\\.)+[a-z0-9][\\-a-z0-9]{0,22}[a-z0-9]))$/i;\n var escapedQuote = /\\\\\"@/i;\n var standardEmail = /^((([0-9a-z_]((\\.(?!\\.))|[-!#\\$%&'\\*\\+/=\\?\\^`\\{\\}\\|~\\w])*)@))((\\[(\\d{1,3}\\.){3}\\d{1,3}\\])|(([0-9a-z][-0-9a-z]*[0-9a-z]*\\.)+[a-z0-9][\\-a-z0-9]{0,22}[a-z0-9]))$/i;\n var plainCharacterBeforeAt = /([0-9a-z_])@/i;\n return standardEmail.test(email) && plainCharacterBeforeAt.test(email) || quotedEmail.test(email) && !escapedQuote.test(email);\n}\n\nexports.isValidEmail = isValidEmail;\n\nfunction createValidator(predicate, msg) {\n return function (val) {\n return predicate(val) || msg;\n };\n}\n\nexports.createValidator = createValidator;\n\nfunction combineValidators(val) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return args.reduce(function (acc, curr) {\n return acc === true ? curr(val) : acc;\n }, true);\n}\n\nexports.combineValidators = combineValidators;\n\nexports.classFormat = function (text) {\n return text.replace(/[^a-zA-Z0-9\\s_-]/g, \"\").toLowerCase().split(\" \").join(\"-\");\n};\n\nexports.capitalise = function (text) {\n return text.charAt(0).toUpperCase() + text.slice(1);\n};\n\nexports.toRate = function (value) {\n return isNaN(value) ? \"\" : \"\".concat(value.toFixed(2), \"%\");\n};\n\nexports.monthsToYears = function (months, yearsOnly) {\n var yearsNumber = Math.floor(months / 12);\n var monthsNumber = months % 12;\n return yearsOnly ? \"\".concat(yearsNumber, \"+ years\") : \"\".concat(yearsNumber, \" \").concat(yearsNumber === 1 ? \"year\" : \"years\", \" and \").concat(monthsNumber, \" \").concat(monthsNumber === 1 ? \"month\" : \"months\");\n};\n\nexports.mergeArrays = function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n // Once we support node 11 we can use array.flat instead\n return _toConsumableArray(args.reduce(function (acc, val) {\n return [].concat(_toConsumableArray(acc), _toConsumableArray(val));\n }));\n};\n\nexports.isNotEmpty = function (object) {\n return object != null && Object.keys(object).length !== 0;\n};\n\nexports.isBrowser = function () {\n return typeof window !== \"undefined\";\n};\n\nvar DESKTOP_WIDTH = 992;\nvar TABLET_WIDTH = 768;\n\nvar windowWidth = function windowWidth() {\n return exports.isBrowser() && window.innerWidth || DESKTOP_WIDTH;\n};\n\nexports.isBrowserMobile = function () {\n return windowWidth() < TABLET_WIDTH;\n};\n\nexports.isBrowserTablet = function () {\n return windowWidth() >= TABLET_WIDTH && windowWidth() < DESKTOP_WIDTH;\n};\n\nexports.isBrowserDesktop = function () {\n return windowWidth() >= DESKTOP_WIDTH;\n};","\"use strict\";\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar dayjs_1 = __importDefault(require(\"dayjs\"));\n\nvar customParseFormat_1 = __importDefault(require(\"dayjs/plugin/customParseFormat\"));\n\nvar duration_1 = __importDefault(require(\"dayjs/plugin/duration\"));\n\nexports.FULL_FORM_DATE_FORMAT = \"DD / MM / YYYY\";\nexports.MOVED_IN_FORM_DATE_FORMAT = \"MM / YYYY\";\ndayjs_1.default.extend(customParseFormat_1.default);\ndayjs_1.default.extend(duration_1.default);\n\nfunction isValidDate(dateString) {\n return dayjs_1.default(dateString, exports.FULL_FORM_DATE_FORMAT, true).isValid();\n}\n\nexports.isValidDate = isValidDate;\n\nfunction isHistoricDate(inputDate) {\n var granularity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"day\";\n return dayjs_1.default(inputDate).isBefore(dayjs_1.default(), granularity);\n}\n\nexports.isHistoricDate = isHistoricDate;\n\nfunction isBeforeNowMovedInDate(dateString) {\n return typeof dateString === \"string\" && dayjs_1.default(dateString, exports.MOVED_IN_FORM_DATE_FORMAT, true).isValid() && dayjs_1.default(dateString, exports.MOVED_IN_FORM_DATE_FORMAT, true).isBefore(dayjs_1.default()) || \"Please enter a valid date\";\n}\n\nexports.isBeforeNowMovedInDate = isBeforeNowMovedInDate;\n\nfunction isValidMovedInDate(dateString) {\n return dayjs_1.default(dateString, exports.MOVED_IN_FORM_DATE_FORMAT, true).isValid();\n}\n\nexports.isValidMovedInDate = isValidMovedInDate;\n\nfunction olderThan18(dateString) {\n return dayjs_1.default().diff(dayjs_1.default(dateString, exports.FULL_FORM_DATE_FORMAT), \"years\", false) > 17;\n}\n\nexports.olderThan18 = olderThan18; // Should change name to timeFromToday\n\nexports.daysFromToday = function (dateString, format) {\n var today = dayjs_1.default();\n var testDate = dayjs_1.default(dateString);\n return dayjs_1.default(dateString).isValid() ? Math.round(testDate.diff(today, format)) : undefined;\n};\n\nexports.stringToDate = function (date) {\n var format = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"YYYY-MM-DD\";\n return dayjs_1.default(date, format).toDate();\n};\n\nexports.formDateStringToDate = function (formDate) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n includesDay: false,\n appendCurrentTime: false\n };\n var format = options.includesDay ? exports.FULL_FORM_DATE_FORMAT : exports.MOVED_IN_FORM_DATE_FORMAT;\n var result = dayjs_1.default(formDate, format, true);\n\n if (result.isValid()) {\n return result.toDate();\n }\n\n return null;\n};\n\nexports.formDateStringToDateString = function (formDate) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n includesDay: false,\n appendCurrentTime: false\n };\n var format = options.includesDay ? exports.FULL_FORM_DATE_FORMAT : exports.MOVED_IN_FORM_DATE_FORMAT;\n var result = dayjs_1.default(formDate, format, true);\n if (!result.isValid()) return \"\";\n\n if (options.appendCurrentTime) {\n var now = dayjs_1.default();\n result = result.set(\"h\", now.hour()).set(\"m\", now.minute()).set(\"s\", now.second());\n }\n\n return result.toISOString();\n};\n\nexports.calcFromDate = function (date, format) {\n if (!isValidMovedInDate(date)) {\n return undefined;\n }\n\n var dateDuration = dayjs_1.default.duration(dayjs_1.default().diff(dayjs_1.default(date, exports.MOVED_IN_FORM_DATE_FORMAT)));\n return format === \"year\" ? dateDuration.years() : dateDuration.months() + 1;\n};\n\nexports.calcToDate = function (month, year) {\n return !Number.isNaN(month) && !Number.isNaN(year) ? dayjs_1.default().subtract(year, \"year\").subtract(month - 1, \"month\").format(exports.MOVED_IN_FORM_DATE_FORMAT) : \"\";\n};\n\nexports.movedInToDateString = function (formDate) {\n var result = dayjs_1.default(formDate, exports.MOVED_IN_FORM_DATE_FORMAT, true);\n\n if (result.isValid()) {\n return result.add(15, \"day\").toISOString();\n }\n\n return \"\";\n};\n\nexports.dateToMovedIn = function (dateString) {\n var date = dayjs_1.default(dateString);\n return date.isValid() ? date.format(exports.MOVED_IN_FORM_DATE_FORMAT) : \"\";\n};\n\nexports.formatTodaysDate = function (format) {\n return dayjs_1.default().format(format);\n};\n\nexports.formatDate = function (date, format) {\n return dayjs_1.default(date).format(format);\n};\n\nvar isDateExcluded = function isDateExcluded(date, excludedDates) {\n return excludedDates.some(function (excludedDate) {\n return dayjs_1.default(excludedDate).isSame(date, \"day\");\n });\n};\n\nexports.addDays = function (startDate, numDays) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n excludeWeekends: true,\n excludedDates: []\n };\n var date = dayjs_1.default(startDate);\n\n while (numDays > 0) {\n date = date.add(1, \"day\");\n var isWeekend = [0, 6].includes(date.day());\n\n if (options.excludeWeekends && isWeekend) {\n continue;\n }\n\n if (options.excludedDates && isDateExcluded(date, options.excludedDates)) {\n continue;\n }\n\n numDays--;\n }\n\n return date.toDate();\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.calculateTotalFees = function (loanAmount, isSecured, isPrivateSale, establishmentFeesByMaximumLoanAmount, ppsrFee, privateSaleFee) {\n var _a;\n\n var establishmentFee = ((_a = establishmentFeesByMaximumLoanAmount === null || establishmentFeesByMaximumLoanAmount === void 0 ? void 0 : establishmentFeesByMaximumLoanAmount.sort(function (a, b) {\n return a.maximumLoanAmount - b.maximumLoanAmount;\n }).find(function (fee) {\n return loanAmount <= fee.maximumLoanAmount;\n })) === null || _a === void 0 ? void 0 : _a.establishmentFee) || 0;\n return establishmentFee + (isSecured && ppsrFee || 0) + (isSecured && isPrivateSale && privateSaleFee || 0);\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar financejs_1 = require(\"financejs\");\n\nvar finance = new financejs_1.Finance();\n\nfunction calculateMonthlyRepayment(annualRate, termInYears, loanAmount, fees) {\n var rate = convertDecimalRateToFraction(annualRate, 2);\n var repayment = finance.PMT(rate / 12, termInYears * 12, -Math.abs(loanAmount + fees));\n return roundToTwoDecimals(repayment);\n}\n\nexports.calculateMonthlyRepayment = calculateMonthlyRepayment;\n\nfunction convertDecimalRateToFraction(value, decimals) {\n return Number((value / 100).toExponential(decimals + 1));\n}\n\nexports.convertDecimalRateToFraction = convertDecimalRateToFraction;\n\nfunction roundToTwoDecimals(num) {\n return parseFloat(num.toFixed(2));\n}\n\nexports.roundToTwoDecimals = roundToTwoDecimals;","\"use strict\";\n\nvar _slicedToArray = require(\"C:/a/4/s/node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nvar _defineProperty = require(\"C:/a/4/s/node_modules/@babel/runtime/helpers/defineProperty.js\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar react_1 = require(\"react\");\n\nfunction stateFromInitialForm(initialForm) {\n return Object.keys(initialForm).reduce(function (state, key) {\n return Object.assign(Object.assign({}, state), _defineProperty({}, key, {\n enabled: true,\n touched: false,\n dirty: false,\n errors: []\n }));\n }, {});\n}\n\nexports.stateFromInitialForm = stateFromInitialForm;\n\nfunction useForceUpdate() {\n var _react_1$useState = react_1.useState(),\n _react_1$useState2 = _slicedToArray(_react_1$useState, 2),\n updateState = _react_1$useState2[1];\n\n return react_1.useCallback(function () {\n return updateState({});\n }, []);\n}\n\nfunction getDraft(draftName) {\n var serializedFormDraft = window.localStorage.getItem(draftName);\n\n if (serializedFormDraft) {\n return JSON.parse(serializedFormDraft);\n }\n\n return null;\n}\n\nfunction isDraftExpired(addedAtSinceEpoch, expireInMin, nowSinceEpoch) {\n var expireInMiliSeconds = expireInMin * 60 * 1000;\n return nowSinceEpoch - addedAtSinceEpoch > expireInMiliSeconds;\n}\n\nfunction purgeExpiredDrafts(expireInMin, nowSinceEpoch) {\n var expiredDraftKeys = Object.keys(window.localStorage).filter(function (keyName) {\n try {\n var value = JSON.parse(window.localStorage.getItem(keyName) || \"{}\");\n return value.addedAtSinceEpoch != undefined && isDraftExpired(value.addedAtSinceEpoch, expireInMin, nowSinceEpoch);\n } catch (_a) {\n return false;\n }\n });\n expiredDraftKeys.forEach(function (keyName) {\n return window.localStorage.removeItem(keyName);\n });\n}\n\nfunction compareFormField(original, latest) {\n if (Array.isArray(original) && Array.isArray(latest)) {\n if (original.length !== latest.length) {\n return \"different\";\n }\n\n var aa = original.map(function (field) {\n return field;\n }).sort();\n var bb = latest.map(function (field) {\n return field;\n }).sort();\n return aa.every(function (val, i) {\n return val === bb[i];\n }) ? \"same\" : \"different\";\n } else if (typeof original === \"string\" && typeof latest === \"string\") {\n return original === latest ? \"same\" : \"different\";\n } else if (original === undefined && (typeof latest === \"string\" || Array.isArray(latest))) {\n return \"newFieldAdded\";\n } else {\n return \"different\";\n }\n}\n\nexports.compareFormField = compareFormField;\n\nfunction useForm(initialForm, draftInfo) {\n if (draftInfo) {\n purgeExpiredDrafts(draftInfo.draftExpireInMin, new Date().getTime());\n }\n\n var initialFormRef = react_1.useRef(initialForm);\n initialFormRef.current = initialForm;\n var updateForm = useForceUpdate();\n var formState = react_1.useRef(stateFromInitialForm(getFormData(initialFormRef.current)));\n var formData = react_1.useRef(getFormData(initialFormRef.current));\n var validators = react_1.useRef({});\n react_1.useEffect(function () {\n formData.current = getFormData(initialFormRef.current, draftInfo, deleteFormDraft);\n setTimeout(function () {\n return validateForm();\n });\n }, []);\n var formHasErrors = react_1.useCallback(function () {\n return !!Object.values(formState.current).find(function (state) {\n return state.errors.length > 0;\n });\n }, []);\n var setValidator = react_1.useCallback(function (name, validator) {\n validators.current[name] = validator;\n }, []);\n var setFieldValue = react_1.useCallback(function (field, value) {\n formData.current = Object.assign(Object.assign({}, formData.current), _defineProperty({}, field, value));\n }, []);\n var setMultipleFieldValues = react_1.useCallback(function (values) {\n formData.current = Object.assign(Object.assign({}, formData.current), values);\n }, []);\n var getFieldValue = react_1.useCallback(function (field) {\n return formData.current[field];\n }, []);\n var getFieldState = react_1.useCallback(function (field) {\n return formState.current[field];\n }, []);\n var setFieldState = react_1.useCallback(function (field, changes) {\n var state = getFieldState(field);\n formState.current[field] = Object.assign(Object.assign({}, state), changes);\n }, []);\n var setValue = react_1.useCallback(function (field, value, makeDirty) {\n var different = !areFieldValuesEqual(value, formData.current[field]);\n\n if (makeDirty && different) {\n setFieldState(field, {\n dirty: true\n });\n }\n\n setFieldValue(field, value);\n validateForm();\n saveFormDraft();\n }, []);\n var setMultipleValues = react_1.useCallback(function (values) {\n setMultipleFieldValues(values);\n validateForm();\n saveFormDraft();\n }, []);\n var saveFormDraft = react_1.useCallback(function () {\n if (!draftInfo) {\n return;\n }\n\n window.localStorage.setItem(draftInfo.draftName, JSON.stringify({\n formData: formData.current,\n addedAtSinceEpoch: new Date().getTime(),\n baseFormData: getFormData(initialFormRef.current)\n }));\n draftInfo.onDraftSaved && draftInfo.onDraftSaved();\n }, [draftInfo, formData, initialFormRef.current]);\n var deleteFormDraft = react_1.useCallback(function () {\n if (!draftInfo) {\n return;\n }\n\n window.localStorage.removeItem(draftInfo.draftName);\n }, []);\n var validateForm = react_1.useCallback(function () {\n for (var field in validators.current) {\n // Using a `!` here as if the key exists we can be certain the validator also exists\n var validator = validators.current[field];\n setFieldState(field, {\n errors: validator(formData.current, formState.current)\n });\n }\n\n updateForm();\n }, []);\n var fieldAdapter = react_1.useCallback(function (options) {\n var name = options.name,\n condition = options.condition,\n max = options.max,\n min = options.min,\n _onChange = options.onChange,\n _onBlur = options.onBlur,\n required = options.required;\n var validator = buildFieldValidator(options);\n setFieldState(name, {\n enabled: condition === undefined ? true : condition,\n errors: validator(formData.current, formState.current)\n });\n\n var _getFieldState = getFieldState(name),\n touched = _getFieldState.touched,\n dirty = _getFieldState.dirty,\n errors = _getFieldState.errors;\n\n var value = getFieldValue(name);\n setValidator(name, validator);\n return {\n name: name,\n value: value,\n required: required ? true : false,\n touched: touched,\n dirty: dirty,\n error: errors.length > 0 ? errors[0] : undefined,\n hide: condition === undefined ? false : !condition,\n min: min ? min[0] : undefined,\n max: max ? max[0] : undefined,\n onChange: function onChange(e) {\n var fieldValue = deriveInputValue(e.currentTarget, value);\n\n if (_onChange) {\n _onChange(fieldValue);\n }\n\n setFieldValue(name, fieldValue);\n\n if (!areFieldValuesEqual(value, fieldValue)) {\n setFieldState(name, {\n dirty: true\n });\n }\n\n validateForm();\n },\n onBlur: function onBlur(e) {\n var fieldValue = deriveInputValue(e.currentTarget, value);\n\n if (_onBlur) {\n _onBlur(fieldValue);\n }\n\n setFieldState(name, {\n touched: true\n });\n validateForm();\n saveFormDraft();\n }\n };\n }, []);\n var submitAdapter = react_1.useCallback(function (callback) {\n return function (e) {\n e === null || e === void 0 ? void 0 : e.preventDefault();\n var errorKeys = Object.keys(formState.current).filter(function (k) {\n var state = formState.current[k];\n return state && state.errors.length > 0;\n });\n var hasErrors = formHasErrors();\n var conditionalFormData = Object.keys(formData.current).reduce(function (result, field) {\n var enabled = formState.current[field].enabled;\n var value = formData.current[field];\n return Object.assign(Object.assign({}, result), _defineProperty({}, field, enabled ? value : Array.isArray(value) ? [] : \"\"));\n }, formData.current);\n\n if (hasErrors) {\n Object.keys(formState.current).forEach(function (field) {\n return setFieldState(field, {\n touched: true\n });\n });\n validateForm();\n setTimeout(function () {\n var firstField = document.querySelector(\"[name=\".concat(errorKeys[0], \"]\"));\n\n if (firstField) {\n firstField.focus();\n }\n });\n }\n\n return callback(!hasErrors, conditionalFormData, formState.current);\n };\n }, []);\n var resetForm = react_1.useCallback(function () {\n formData.current = getFormData(initialFormRef.current, draftInfo, deleteFormDraft);\n Object.keys(formState.current).forEach(function (field) {\n return setFieldState(field, {\n touched: false\n });\n });\n updateForm();\n }, []);\n return {\n fieldAdapter: fieldAdapter,\n formData: formData.current,\n formState: formState.current,\n setValue: setValue,\n setMultipleValues: setMultipleValues,\n submitAdapter: submitAdapter,\n formHasErrors: formHasErrors,\n resetForm: resetForm,\n deleteFormDraft: deleteFormDraft\n };\n}\n\nexports.useForm = useForm;\n\nfunction getFormData(initialForm, draftInfo, onDiscardDraftCallback) {\n var serverFormData = typeof initialForm !== \"function\" ? initialForm : initialForm();\n var resultFormData = Object.assign({}, serverFormData);\n\n if (draftInfo) {\n var formDraft = getDraft(draftInfo.draftName);\n\n if (formDraft && formDraft.baseFormData) {\n for (var fieldKey in serverFormData) {\n var comparisonResult = compareFormField(formDraft.baseFormData[fieldKey], serverFormData[fieldKey]);\n\n switch (comparisonResult) {\n case \"same\":\n resultFormData[fieldKey] = formDraft.formData[fieldKey];\n break;\n\n case \"different\":\n alert(\"Your draft is out of date, and it will not be used\");\n onDiscardDraftCallback && onDiscardDraftCallback();\n return serverFormData;\n\n case \"newFieldAdded\":\n break;\n }\n }\n }\n }\n\n return resultFormData;\n}\n\nfunction buildFieldValidator(_ref) {\n var name = _ref.name,\n condition = _ref.condition,\n required = _ref.required,\n min = _ref.min,\n max = _ref.max,\n minLength = _ref.minLength,\n maxLength = _ref.maxLength,\n pattern = _ref.pattern,\n validate = _ref.validate;\n return function (formData, formState) {\n if (condition === false) {\n return [];\n }\n\n var value = formData[name];\n var errors = [];\n\n if (!isSingleValue(value)) {\n if (required && value.length === 0) {\n errors.push(required === true ? \"\" : required);\n }\n } else {\n if (value) {\n if (min && +value < min[0]) {\n errors.push(min[1] || \"\");\n }\n\n if (max && +value > max[0]) {\n errors.push(max[1] || \"\");\n }\n\n if (minLength && value.length < minLength[0]) {\n errors.push(minLength[1] || \"\");\n }\n\n if (maxLength && value.length > maxLength[0]) {\n errors.push(maxLength[1] || \"\");\n }\n\n if (pattern && !value.match(pattern[0])) {\n errors.push(pattern[1] || \"\");\n }\n } else if (required) {\n errors.push(required === true ? \"\" : required);\n }\n\n if (validate) {\n var isValid = validate(value, formData, formState);\n\n if (isValid !== true) {\n errors.push(isValid);\n }\n }\n }\n\n return errors;\n };\n}\n\nfunction deriveInputValue(input, value) {\n if (Array.isArray(value)) {\n var result = value.filter(function (v) {\n return v !== input.value;\n });\n\n if (input.checked) {\n result.push(input.value);\n }\n\n return result;\n }\n\n return input.value;\n}\n\nfunction areFieldValuesEqual(values, fieldValues) {\n if (isSingleValue(values) && isSingleValue(fieldValues)) {\n return values === fieldValues;\n }\n\n if (!isSingleValue(values) && !isSingleValue(fieldValues)) {\n return values.length === fieldValues.length && values.every(function (element, index) {\n return element === fieldValues[index];\n });\n }\n\n return false;\n}\n\nfunction isSingleValue(value) {\n return !Array.isArray(value);\n}","\"use strict\";\n\nfunction __export(m) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n__export(require(\"./loading.actions\"));\n\n__export(require(\"./loading.hooks\"));\n\n__export(require(\"./loading.reducer\"));\n\n__export(require(\"./loading.utils\"));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LoadingClearActionType = \"loading/clear\";\n\nfunction loadingClearAction(key) {\n return {\n type: exports.LoadingClearActionType,\n key: key\n };\n}\n\nexports.loadingClearAction = loadingClearAction;\nexports.LoadingStartActionType = \"loading/start\";\n\nfunction loadingStartAction(key) {\n return {\n type: exports.LoadingStartActionType,\n key: key\n };\n}\n\nexports.loadingStartAction = loadingStartAction;\nexports.LoadingSuccessActionType = \"loading/success\";\n\nfunction loadingSuccessAction(key) {\n return {\n type: exports.LoadingSuccessActionType,\n key: key\n };\n}\n\nexports.loadingSuccessAction = loadingSuccessAction;\nexports.LoadingFailActionType = \"loading/fail\";\n\nfunction loadingFailAction(key, message) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n _ref$reasons = _ref.reasons,\n reasons = _ref$reasons === void 0 ? [] : _ref$reasons,\n _ref$traceId = _ref.traceId,\n traceId = _ref$traceId === void 0 ? undefined : _ref$traceId,\n _ref$originalError = _ref.originalError,\n originalError = _ref$originalError === void 0 ? undefined : _ref$originalError;\n\n return {\n type: exports.LoadingFailActionType,\n key: key,\n error: {\n message: message,\n reasons: reasons,\n traceId: traceId,\n originalError: originalError\n }\n };\n}\n\nexports.loadingFailAction = loadingFailAction;","\"use strict\";\n\nvar _slicedToArray = require(\"C:/a/4/s/node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar react_redux_1 = require(\"react-redux\");\n\nvar loading_reducer_1 = require(\"./loading.reducer\");\n\nexports.useLoadingStatus = function (key) {\n var defaultStatus = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : loading_reducer_1.LOADING;\n var status = react_redux_1.useSelector(function (state) {\n return state.loadingState[key];\n }) || defaultStatus;\n var loading = status === loading_reducer_1.LOADING;\n var error = isLoadingError(status) ? status : undefined;\n return [loading, error];\n};\n\nexports.useGlobalLoadingStatus = function () {\n var statuses = react_redux_1.useSelector(function (state) {\n return state.loadingState;\n });\n return !!Object.entries(statuses).find(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n status = _ref2[1];\n\n return status === loading_reducer_1.LOADING;\n });\n};\n\nfunction isLoadingError(status) {\n return typeof status === \"object\";\n}","\"use strict\";\n\nvar _defineProperty = require(\"C:/a/4/s/node_modules/@babel/runtime/helpers/defineProperty.js\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar loading_actions_1 = require(\"./loading.actions\");\n\nexports.LOADED = \"LOADED\";\nexports.LOADING = \"LOADING\";\n\nfunction loadingReducer() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments.length > 1 ? arguments[1] : undefined;\n\n switch (action.type) {\n case loading_actions_1.LoadingClearActionType:\n delete state[action.key];\n return Object.assign({}, state);\n\n case loading_actions_1.LoadingStartActionType:\n return Object.assign(Object.assign({}, state), _defineProperty({}, action.key, exports.LOADING));\n\n case loading_actions_1.LoadingSuccessActionType:\n return Object.assign(Object.assign({}, state), _defineProperty({}, action.key, exports.LOADED));\n\n case loading_actions_1.LoadingFailActionType:\n return Object.assign(Object.assign({}, state), _defineProperty({}, action.key, action.error));\n\n default:\n return state;\n }\n}\n\nexports.loadingReducer = loadingReducer;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar rxjs_1 = require(\"rxjs\");\n\nvar operators_1 = require(\"rxjs/operators\");\n\nvar loading_actions_1 = require(\"./loading.actions\");\n\nfunction loadDataThen(loadingKey, then, error) {\n return function (source) {\n return source.pipe(operators_1.concatMap(function (action) {\n return rxjs_1.concat(rxjs_1.of(loading_actions_1.loadingStartAction(loadingKey)), then(action), rxjs_1.of(loading_actions_1.loadingSuccessAction(loadingKey))).pipe(operators_1.catchError(function (e) {\n var _a, _b, _c, _d;\n\n var axiosProblemResponse = (_a = e === null || e === void 0 ? void 0 : e.response) === null || _a === void 0 ? void 0 : _a.data;\n var axiosProblemTraceId = (_b = axiosProblemResponse === null || axiosProblemResponse === void 0 ? void 0 : axiosProblemResponse.extensions) === null || _b === void 0 ? void 0 : _b.traceId;\n var axiosProblemError = (_d = (_c = e === null || e === void 0 ? void 0 : e.response) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d.errors;\n return error ? rxjs_1.concat(rxjs_1.of(loading_actions_1.loadingFailAction(loadingKey, e.message, {\n reasons: axiosProblemError,\n traceId: axiosProblemTraceId,\n originalError: e\n })), error(action, e)) : rxjs_1.of(loading_actions_1.loadingFailAction(loadingKey, e.message, {\n reasons: axiosProblemError,\n traceId: axiosProblemTraceId,\n originalError: e\n }));\n }));\n }));\n };\n}\n\nexports.loadDataThen = loadDataThen;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar applicationinsights_web_1 = require(\"@microsoft/applicationinsights-web\");\n\nfunction installApplicationInsights(options) {\n if (process.env.NODE_ENV === \"development\") {\n console.warn(\"Application insights has been disabled for local development environments\");\n return;\n }\n\n if (!options.instrumentationKey) {\n console.warn(\"Application insights has not started because no instrumentationKey was provided\");\n return;\n }\n\n var appInsights = new applicationinsights_web_1.ApplicationInsights({\n config: {\n instrumentationKey: options.instrumentationKey,\n enableAutoRouteTracking: true,\n enableCorsCorrelation: true,\n correlationHeaderDomains: [\"*.wisr.tech\", \"*.wisr.com.au\"],\n enableRequestHeaderTracking: true,\n enableResponseHeaderTracking: true\n }\n });\n appInsights.loadAppInsights(); // Manually track the initial page view, to establish the current user/session/pageview\n // Subsequent navigation should be detected by `enableAutoRouteTracking: true`\n\n appInsights.trackPageView();\n var nativeConsole = console; // Allowing global assign over console to implement our custom logger which publishes to app insights\n // eslint-disable-next-line no-global-assign\n\n console = buildConsole(nativeConsole, appInsights);\n return function () {\n console = nativeConsole;\n };\n}\n\nexports.installApplicationInsights = installApplicationInsights;\n\nfunction buildConsole(native, appi) {\n return Object.assign(Object.assign({}, native), {\n debug: getLogger(native, \"debug\", appi, applicationinsights_web_1.SeverityLevel.Verbose),\n info: getLogger(native, \"log\", appi, applicationinsights_web_1.SeverityLevel.Information),\n log: getLogger(native, \"log\", appi, applicationinsights_web_1.SeverityLevel.Information),\n warn: getLogger(native, \"warn\", appi, applicationinsights_web_1.SeverityLevel.Warning),\n error: getLogger(native, \"error\", appi, applicationinsights_web_1.SeverityLevel.Error)\n });\n}\n\nfunction getLogger(nativeConsole, nativeLevel, appInsights, level) {\n function logger(originalMessage) {\n for (var _len = arguments.length, optionalParameters = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n optionalParameters[_key - 1] = arguments[_key];\n }\n\n appInsights.trackTrace({\n message: replaceParams(originalMessage, optionalParameters),\n severityLevel: level\n });\n nativeConsole[nativeLevel].apply(nativeConsole, [originalMessage].concat(optionalParameters));\n }\n\n return logger;\n}\n\nfunction replaceParams(message, params) {\n if (params.length === 0) {\n return message;\n }\n\n var stringParam = stringifyValue(params[0]);\n var remainingParams = params.slice(1);\n var loggerTemplateVariableMatcher = /(^.*?)%([oOdisf])(.*?$)/g;\n var match = loggerTemplateVariableMatcher.exec(message);\n var mergedMessage = match ? match[1] + stringParam + match[3] : \"\".concat(message, \" \").concat(stringParam);\n return replaceParams(mergedMessage, remainingParams);\n}\n\nfunction stringifyValue(value) {\n if (typeof value === \"object\") {\n try {\n return JSON.stringify(value);\n } catch (e) {}\n }\n\n return \"\".concat(value);\n}","\"use strict\";\n\nfunction __export(m) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n__export(require(\"./notification.actions\"));\n\n__export(require(\"./notification.hooks\"));\n\n__export(require(\"./notification.reducer\"));\n\n__export(require(\"./notification-middleware\"));\n\n__export(require(\"./notification-container\"));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.NotificationLifecycle = {\n NEW: \"new\",\n ACTIVE: \"active\",\n OLD: \"old\",\n EXPIRED: \"expired\"\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar notification_container_1 = require(\"./notification-container\");\n\nvar notification_actions_1 = require(\"./notification.actions\");\n\nvar activeTimers = {};\n\nexports.NotificationMiddleware = function (api) {\n return function (dispatchNext) {\n return function (action) {\n var previousNotificationState = \"payload\" in action && action.payload !== undefined ? getNotificationById(action.payload.id) : undefined;\n dispatchNext(action);\n\n if (notification_actions_1.notificationAddActionMatcher(action)) {\n setTimeout(function () {\n return api.dispatch(notification_actions_1.notificationLifecycleAction(action.payload.id, notification_container_1.NotificationLifecycle.ACTIVE));\n });\n }\n\n if (notification_actions_1.notificationUpdateActionMatcher(action)) {\n var currentNotificationState = getNotificationById(action.payload.id);\n\n if (currentNotificationState && previousNotificationState && previousNotificationState.type !== currentNotificationState.type) {\n setTimeout(function () {\n return api.dispatch(notification_actions_1.notificationLifecycleAction(action.payload.id, notification_container_1.NotificationLifecycle.ACTIVE));\n });\n }\n }\n\n if (notification_actions_1.notificationLifecycleActionMatcher(action)) {\n var _currentNotificationState = getNotificationById(action.payload.id);\n\n if (!_currentNotificationState) {\n return;\n }\n\n var nextLifecycleStage = getNextLifecycleStage(_currentNotificationState.lifecycle, _currentNotificationState.type);\n\n if (nextLifecycleStage) {\n if (activeTimers[action.payload.id]) {\n clearTimeout(activeTimers[action.payload.id]);\n }\n\n activeTimers[action.payload.id] = setTimeout(function () {\n return api.dispatch(notification_actions_1.notificationLifecycleAction(action.payload.id, nextLifecycleStage.stage));\n }, nextLifecycleStage.duration);\n return;\n }\n }\n\n function getNotificationById(id) {\n return api.getState().notificationState.notifications.find(function (n) {\n return n.id === id;\n });\n }\n };\n };\n};\n\nfunction getNextLifecycleStage(lifecycle, type) {\n var duration = getDurationForType(type);\n\n switch (lifecycle) {\n case undefined:\n case notification_container_1.NotificationLifecycle.ACTIVE:\n if (!duration) {\n return;\n }\n\n return {\n stage: notification_container_1.NotificationLifecycle.OLD,\n duration: duration\n };\n\n case notification_container_1.NotificationLifecycle.OLD:\n return {\n stage: notification_container_1.NotificationLifecycle.EXPIRED,\n duration: getDurationForType(\"expired\")\n };\n }\n}\n\nfunction getDurationForType(type) {\n switch (type) {\n case \"expired\":\n return 300;\n\n case \"success\":\n return 4000;\n\n case \"error\":\n case \"inProgress\":\n case \"warning\":\n case \"info\":\n return;\n\n default:\n return 3000;\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar notification_container_1 = require(\"./notification-container\");\n\nexports.notificationAddActionType = \"notification/add\";\n\nfunction notificationAddAction(notification) {\n var _a;\n\n var id = getNotificationId();\n var type = (_a = notification.type) !== null && _a !== void 0 ? _a : \"default\";\n return {\n type: exports.notificationAddActionType,\n payload: Object.assign(Object.assign({}, notification), {\n id: id,\n type: type\n })\n };\n}\n\nexports.notificationAddAction = notificationAddAction;\n\nfunction notificationAddActionMatcher(a) {\n return a.type === exports.notificationAddActionType;\n}\n\nexports.notificationAddActionMatcher = notificationAddActionMatcher;\nexports.notificationUpdateActionType = \"notification/update\";\n\nfunction notificationUpdateAction(id, notification) {\n return {\n type: exports.notificationUpdateActionType,\n payload: {\n id: id,\n notification: notification\n }\n };\n}\n\nexports.notificationUpdateAction = notificationUpdateAction;\n\nfunction notificationUpdateActionMatcher(a) {\n return a.type === exports.notificationUpdateActionType;\n}\n\nexports.notificationUpdateActionMatcher = notificationUpdateActionMatcher;\nexports.notificationLifecycleActionType = \"notification/lifecycle\";\n\nfunction notificationLifecycleAction(id, lifecycle) {\n return {\n type: exports.notificationLifecycleActionType,\n payload: {\n id: id,\n lifecycle: lifecycle\n }\n };\n}\n\nexports.notificationLifecycleAction = notificationLifecycleAction;\n\nfunction notificationLifecycleActionMatcher(a) {\n return a.type === exports.notificationLifecycleActionType;\n}\n\nexports.notificationLifecycleActionMatcher = notificationLifecycleActionMatcher; // Lifecycle helpers\n\nfunction notificationDismissAction(id) {\n return notificationLifecycleAction(id, notification_container_1.NotificationLifecycle.OLD);\n}\n\nexports.notificationDismissAction = notificationDismissAction; // Generate a unique ID for every notification.\n// These will only be unique to the current browser window\n\nvar notificationId = 0;\n\nfunction getNotificationId() {\n notificationId++;\n return notificationId.toString();\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar react_redux_1 = require(\"react-redux\");\n\nexports.useNotifications = function () {\n return react_redux_1.useSelector(function (store) {\n return store.notificationState.notifications;\n });\n};","\"use strict\";\n\nvar _toConsumableArray = require(\"C:/a/4/s/node_modules/@babel/runtime/helpers/toConsumableArray.js\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar notification_container_1 = require(\"./notification-container\");\n\nvar notification_actions_1 = require(\"./notification.actions\");\n\nfunction notificationReducer() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n notifications: []\n };\n var action = arguments.length > 1 ? arguments[1] : undefined;\n\n switch (action.type) {\n case notification_actions_1.notificationAddActionType:\n {\n var lifecycle = notification_container_1.NotificationLifecycle.NEW;\n return {\n notifications: [].concat(_toConsumableArray(state.notifications), [Object.assign(Object.assign({}, action.payload), {\n lifecycle: lifecycle\n })])\n };\n }\n\n case notification_actions_1.notificationUpdateActionType:\n {\n var _action$payload = action.payload,\n id = _action$payload.id,\n notification = _action$payload.notification;\n return {\n notifications: state.notifications.map(function (n) {\n if (n.id === id) {\n return Object.assign(Object.assign({}, n), notification);\n }\n\n return n;\n })\n };\n }\n\n case notification_actions_1.notificationLifecycleActionType:\n {\n var _action$payload2 = action.payload,\n _id = _action$payload2.id,\n _lifecycle = _action$payload2.lifecycle;\n return {\n notifications: state.notifications.filter(notificationHasExpired(_id, _lifecycle)).map(function (n) {\n return n.id === _id ? Object.assign(Object.assign({}, n), {\n lifecycle: _lifecycle\n }) : n;\n })\n };\n }\n\n default:\n return state;\n }\n}\n\nexports.notificationReducer = notificationReducer;\n\nfunction notificationHasExpired(id, lifecycle) {\n return function (n) {\n return !(n.id === id && lifecycle === notification_container_1.NotificationLifecycle.EXPIRED);\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction stubUseDispatch(sandbox, scope) {\n var dispatchStub = sandbox.stub();\n sandbox.stub(scope, \"useDispatch\").returns(dispatchStub);\n return dispatchStub;\n}\n\nexports.stubUseDispatch = stubUseDispatch;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar redux_observable_1 = require(\"redux-observable\");\n\nvar Subject_1 = require(\"rxjs/internal/Subject\");\n\nfunction runEpic(epic, action, state) {\n var dependencies = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n return epic(redux_observable_1.ActionsObservable.of(action), new redux_observable_1.StateObservable(new Subject_1.Subject(), state), dependencies);\n}\n\nexports.runEpic = runEpic;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction mockFormEvent() {\n var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n return {\n target: mockInputTarget(value)\n };\n}\n\nexports.mockFormEvent = mockFormEvent;\n\nfunction mockInputTarget() {\n var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n var input = document.createElement(\"input\");\n input.value = value;\n return input;\n}\n\nexports.mockInputTarget = mockInputTarget;\n\nfunction mockMouseEvent(sandbox) {\n var preventDefault = sandbox.stub();\n return {\n preventDefault: preventDefault\n };\n}\n\nexports.mockMouseEvent = mockMouseEvent;","\"use strict\";\n\nvar _toConsumableArray = require(\"C:/a/4/s/node_modules/@babel/runtime/helpers/toConsumableArray.js\");\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar react_1 = __importDefault(require(\"react\"));\n\nexports.Hook = function (props) {\n return null;\n};\n\nexports.HookTester = function (props) {\n var data = props.hook.apply(props, _toConsumableArray(props.args));\n return react_1.default.createElement(exports.Hook, {\n data: data\n });\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction mockPromise(value, success) {\n return {\n then: function then(resolve, reject) {\n if (success && !!resolve) resolve(value);else if (!success && reject) reject(value);\n return mockPromise(undefined, true);\n }\n };\n}\n\nexports.mockPromise = mockPromise;","\"use strict\";\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar react_1 = __importDefault(require(\"react\"));\n\nfunction replaceNbsps(str) {\n return str.replace(/\\u00a0/g, \" \");\n}\n\nexports.replaceNbsps = replaceNbsps;\n\nfunction getTextContent(element) {\n if (react_1.default.isValidElement(element)) {\n // to exclude \n if (element.type === \"style\") {\n return \"\";\n } else {\n return react_1.default.Children.toArray(element.props.children).reduce(function (prevChild, currChild) {\n return prevChild + getTextContent(currChild);\n }, \"\");\n }\n } else {\n return \"\" + element;\n }\n}\n\nexports.getTextContent = getTextContent;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar common_1 = require(\"../common/common\");\n\nfunction mockUseEffect(sandbox, reactLibrary, effectCount) {\n var currentEffect = 0;\n var renderCount = 0;\n var allEffectDeps = [];\n var tidyUpCallbacks = [];\n\n var cleanUpAll = function cleanUpAll() {\n return tidyUpCallbacks.forEach(function (tidyUpCallback) {\n return tidyUpCallback && tidyUpCallback();\n });\n };\n\n var cleanUp = function cleanUp(index) {\n var tidyUpCallback = tidyUpCallbacks[index];\n\n if (tidyUpCallback) {\n tidyUpCallback();\n }\n };\n\n var effectStub = sandbox.stub(reactLibrary, \"useEffect\").callsFake(function (setupCallback, deps) {\n var previousDeps = allEffectDeps[currentEffect];\n var tidyUpCallback = tidyUpCallbacks[currentEffect];\n var changedDep = previousDeps ? (deps === null || deps === void 0 ? void 0 : deps.find(function (dep, i) {\n return previousDeps[i] !== dep;\n })) !== undefined : true;\n\n if (changedDep) {\n allEffectDeps[currentEffect] = deps || [];\n tidyUpCallbacks[currentEffect] = setupCallback();\n\n if (tidyUpCallback) {\n tidyUpCallback();\n }\n }\n\n currentEffect++;\n\n if (currentEffect === effectCount) {\n renderCount++;\n currentEffect = 0;\n }\n });\n effectStub.cleanUpAll = cleanUpAll;\n effectStub.cleanUp = cleanUp;\n return effectStub;\n}\n\nexports.mockUseEffect = mockUseEffect;\n\nfunction mockUseRef(sandbox, reactLibrary, refCount) {\n var generatedValue = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];\n var allRefs = [];\n var i = 0;\n var renderCount = 0;\n return sandbox.stub(reactLibrary, \"useRef\").callsFake(function (initialValue) {\n var currentRef = allRefs[i];\n\n if (!currentRef) {\n var current = common_1.isDefined(initialValue) ? initialValue : generatedValue[i];\n currentRef = {\n current: current\n };\n allRefs[i] = currentRef;\n }\n\n i++;\n\n if (i === refCount) {\n renderCount++;\n i = 0;\n }\n\n return currentRef;\n });\n}\n\nexports.mockUseRef = mockUseRef;","\"use strict\";\n\nvar _defineProperty = require(\"C:/a/4/s/node_modules/@babel/runtime/helpers/defineProperty.js\");\n\nvar _toConsumableArray = require(\"C:/a/4/s/node_modules/@babel/runtime/helpers/toConsumableArray.js\");\n\nvar _slicedToArray = require(\"C:/a/4/s/node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nvar __importStar = this && this.__importStar || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }\n result[\"default\"] = mod;\n return result;\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar Hook = __importStar(require(\"../forms/use-form\"));\n\nfunction createUseFormHelper(sandbox, UseFormWrapper, initialData) {\n var fieldAdapter = sandbox.stub();\n var formData = Object.assign({}, initialData);\n var formState = Hook.stateFromInitialForm(formData);\n var valueQueue = [];\n var errorQueue = [];\n var formIsValid = false;\n\n var submitAdapter = function submitAdapter(cb) {\n return function () {\n return cb(formIsValid, formData, formState);\n };\n };\n\n var attachedWrapper;\n fieldAdapter.callsFake(function (props) {\n return {\n value: formData[props.name],\n name: props.name,\n onChange: props.onChange,\n onBlur: props.onBlur\n };\n });\n var resetForm = sandbox.stub();\n var deleteFormDraft = sandbox.stub();\n var useForm = sandbox.stub(UseFormWrapper, \"useForm\").returns({\n formState: formState,\n formData: formData,\n fieldAdapter: fieldAdapter,\n submitAdapter: submitAdapter,\n formHasErrors: formHasErrors,\n setValue: setValue,\n setMultipleValues: setMultipleValues,\n resetForm: resetForm,\n deleteFormDraft: deleteFormDraft\n });\n return {\n useForm: useForm,\n getAdapterArgs: getAdapterArgs,\n validateOn: validateOn,\n getConditionalFields: getConditionalFields,\n getRequiredFields: getRequiredFields,\n setValue: setValue,\n setMultipleValues: setMultipleValues,\n resetForm: resetForm,\n setError: setError,\n attachShallowWrapper: attachShallowWrapper,\n setFormValid: setFormValid,\n deleteFormDraft: deleteFormDraft,\n triggerOnDraftSaved: triggerOnDraftSaved\n };\n\n function setFormValid(status) {\n formIsValid = status;\n }\n\n function formHasErrors() {\n return !formIsValid;\n }\n\n function attachShallowWrapper(wrapper) {\n attachedWrapper = wrapper;\n\n if (valueQueue.length) {\n valueQueue.forEach(function (value) {\n formData[value.name] = value.value;\n });\n valueQueue = [];\n }\n\n if (errorQueue.length) {\n errorQueue.forEach(function (value) {\n formState[value.name].errors = value.error;\n });\n errorQueue = [];\n }\n\n attachedWrapper.setProps(Object.assign({}, attachedWrapper.props()));\n attachedWrapper.update();\n }\n\n function setError(name, error) {\n if (attachedWrapper) {\n formState[name].errors = error;\n attachedWrapper.setProps(Object.assign({}, attachedWrapper.props()));\n attachedWrapper.update();\n } else {\n errorQueue.push({\n name: name,\n error: error\n });\n }\n }\n\n function triggerOnDraftSaved() {\n var draftInfo = useForm.lastCall.args[1];\n draftInfo && draftInfo.onDraftSaved && draftInfo.onDraftSaved();\n }\n\n function setMultipleValues(values) {\n if (attachedWrapper) {\n Object.entries(values).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n\n formData[key] = value;\n });\n attachedWrapper.setProps(Object.assign({}, attachedWrapper.props()));\n attachedWrapper.update();\n } else {\n var _valueQueue;\n\n var temp = Object.entries(values).map(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n name = _ref4[0],\n value = _ref4[1];\n\n return {\n name: name,\n value: value\n };\n });\n\n (_valueQueue = valueQueue).push.apply(_valueQueue, _toConsumableArray(temp));\n }\n }\n\n function setValue(name, value) {\n if (attachedWrapper) {\n formData[name] = value;\n attachedWrapper.setProps(Object.assign({}, attachedWrapper.props()));\n attachedWrapper.update();\n } else {\n valueQueue.push({\n name: name,\n value: value\n });\n }\n }\n\n function getAdapterArgs(name) {\n var call = fieldAdapter.getCalls().reverse().find(function (call) {\n return call.args[0].name === name;\n });\n\n if (!call) {\n throw Error(\"No field adapter for field named \\\"\".concat(name));\n }\n\n return call.args[0];\n }\n\n function validateOn(name, value) {\n var validate = getAdapterArgs(name).validate;\n\n if (!validate) {\n throw Error(\"No validate function exists for \\\"\".concat(name, \"\\\"\"));\n }\n\n return validate(value, formData, formState);\n }\n\n function getConditionalFields() {\n return fieldAdapter.getCalls().map(function (call) {\n return call.args[0];\n }).filter(function (options) {\n return options.condition !== undefined;\n }).reduce(function (fields, options) {\n return Object.assign(Object.assign({}, fields), _defineProperty({}, options.name, options.condition));\n }, {});\n }\n\n function getRequiredFields() {\n return fieldAdapter.getCalls().map(function (call) {\n return call.args[0];\n }).filter(function (options) {\n return options.required !== undefined;\n }).reduce(function (fields, options) {\n return Object.assign(Object.assign({}, fields), _defineProperty({}, options.name, options.required));\n }, {});\n }\n}\n\nexports.createUseFormHelper = createUseFormHelper;","if (process.env.NODE_ENV === \"production\") {\n module.exports = require(\"./dist/react-ui.production\");\n} else {\n module.exports = require(\"./dist/react-ui.development\");\n}","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\n\nvar settle = require('./../core/settle');\n\nvar cookies = require('./../helpers/cookies');\n\nvar buildURL = require('./../helpers/buildURL');\n\nvar buildFullPath = require('../core/buildFullPath');\n\nvar parseHeaders = require('./../helpers/parseHeaders');\n\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\n\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest(); // HTTP basic authentication\n\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true); // Set the request timeout in MS\n\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n } // Prepare the response\n\n\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n settle(resolve, reject, response); // Clean up request\n\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n } // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n\n\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n } // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n\n\n setTimeout(onloadend);\n };\n } // Handle browser request cancellation (as opposed to a manual cancellation)\n\n\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Handle low level network errors\n\n\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request)); // Clean up request\n\n request = null;\n }; // Handle timeout\n\n\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n\n reject(createError(timeoutErrorMessage, config, config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ? cookies.read(config.xsrfCookieName) : undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n } // Add headers to the request\n\n\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n } // Add withCredentials to request if needed\n\n\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n } // Add responseType to request if needed\n\n\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n } // Handle progress if needed\n\n\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n } // Not all browsers support upload events\n\n\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel); // Clean up request\n\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n } // Send the request\n\n\n request.send(requestData);\n });\n};","'use strict';\n\nvar utils = require('./utils');\n\nvar bind = require('./helpers/bind');\n\nvar Axios = require('./core/Axios');\n\nvar mergeConfig = require('./core/mergeConfig');\n\nvar defaults = require('./defaults');\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\n\n\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context); // Copy axios.prototype to instance\n\n utils.extend(instance, Axios.prototype, context); // Copy context to instance\n\n utils.extend(instance, context);\n return instance;\n} // Create the default instance to be exported\n\n\nvar axios = createInstance(defaults); // Expose Axios class to allow class inheritance\n\naxios.Axios = Axios; // Factory for creating new instances\n\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n}; // Expose Cancel & CancelToken\n\n\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel'); // Expose all/spread\n\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = require('./helpers/spread'); // Expose isAxiosError\n\naxios.isAxiosError = require('./helpers/isAxiosError');\nmodule.exports = axios; // Allow use of default import syntax in TypeScript\n\nmodule.exports.default = axios;","'use strict';\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\n\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\nmodule.exports = Cancel;","'use strict';\n\nvar Cancel = require('./Cancel');\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\n\n\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n\n\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};","'use strict';\n\nvar utils = require('./../utils');\n\nvar buildURL = require('../helpers/buildURL');\n\nvar InterceptorManager = require('./InterceptorManager');\n\nvar dispatchRequest = require('./dispatchRequest');\n\nvar mergeConfig = require('./mergeConfig');\n\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\n\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\n\n\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config); // Set config.method\n\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n forcedJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n clarifyTimeoutError: validators.transitional(validators.boolean, '1.0.0')\n }, false);\n } // filter out skipped interceptors\n\n\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n promise = Promise.resolve(config);\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n var newConfig = config;\n\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n}; // Provide aliases for supported request methods\n\n\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\nmodule.exports = Axios;","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n\n\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\n\n\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\n\n\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\n\nvar combineURLs = require('../helpers/combineURLs');\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\n\n\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n\n return requestedURL;\n};","'use strict';\n\nvar enhanceError = require('./enhanceError');\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\n\n\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};","'use strict';\n\nvar utils = require('./../utils');\n\nvar transformData = require('./transformData');\n\nvar isCancel = require('../cancel/isCancel');\n\nvar defaults = require('../defaults');\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\n\n\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config); // Ensure headers exist\n\n config.headers = config.headers || {}; // Transform request data\n\n config.data = transformData.call(config, config.data, config.headers, config.transformRequest); // Flatten headers\n\n config.headers = utils.merge(config.headers.common || {}, config.headers[config.method] || {}, config.headers);\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], function cleanHeaderConfig(method) {\n delete config.headers[method];\n });\n var adapter = config.adapter || defaults.adapter;\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config); // Transform response data\n\n response.data = transformData.call(config, response.data, response.headers, config.transformResponse);\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config); // Transform response data\n\n if (reason && reason.response) {\n reason.response.data = transformData.call(config, reason.response.data, reason.response.headers, config.transformResponse);\n }\n }\n\n return Promise.reject(reason);\n });\n};","'use strict';\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\n\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n\n return error;\n};","'use strict';\n\nvar utils = require('../utils');\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\n\n\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = ['baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer', 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName', 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress', 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent', 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n var axiosKeys = valueFromConfig2Keys.concat(mergeDeepPropertiesKeys).concat(defaultToConfig2Keys).concat(directMergeKeys);\n var otherKeys = Object.keys(config1).concat(Object.keys(config2)).filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n utils.forEach(otherKeys, mergeDeepProperties);\n return config;\n};","'use strict';\n\nvar createError = require('./createError');\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\n\n\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError('Request failed with status code ' + response.status, response.config, null, response.request, response));\n }\n};","'use strict';\n\nvar utils = require('./../utils');\n\nvar defaults = require('./../defaults');\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\n\n\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n return data;\n};","'use strict';\n\nvar utils = require('./utils');\n\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n adapter: getDefaultAdapter(),\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) || utils.isArrayBuffer(data) || utils.isBuffer(data) || utils.isStream(data) || utils.isFile(data) || utils.isBlob(data)) {\n return data;\n }\n\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n if (utils.isObject(data) || headers && headers['Content-Type'] === 'application/json') {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n\n return data;\n }],\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || forcedJSONParsing && utils.isString(data) && data.length) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n maxContentLength: -1,\n maxBodyLength: -1,\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\nmodule.exports = defaults;","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n return fn.apply(thisArg, args);\n };\n};","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+').replace(/%5B/gi, '[').replace(/%5D/gi, ']');\n}\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\n\n\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};","'use strict';\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\n\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '') : baseURL;\n};","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs support document.cookie\nfunction standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return match ? decodeURIComponent(match[3]) : null;\n },\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n}() : // Non standard browser env (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() {\n return null;\n },\n remove: function remove() {}\n };\n}();","'use strict';\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\n\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};","'use strict';\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\n\nmodule.exports = function isAxiosError(payload) {\n return typeof payload === 'object' && payload.isAxiosError === true;\n};","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\nfunction standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href); // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: urlParsingNode.pathname.charAt(0) === '/' ? urlParsingNode.pathname : '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n\n return function isURLSameOrigin(requestURL) {\n var parsed = utils.isString(requestURL) ? resolveURL(requestURL) : requestURL;\n return parsed.protocol === originURL.protocol && parsed.host === originURL.host;\n };\n}() : // Non standard browser envs (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n}();","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};","'use strict';\n\nvar utils = require('./../utils'); // Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\n\n\nvar ignoreDuplicateOf = ['age', 'authorization', 'content-length', 'content-type', 'etag', 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', 'last-modified', 'location', 'max-forwards', 'proxy-authorization', 'referer', 'retry-after', 'user-agent'];\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\n\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) {\n return parsed;\n }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n return parsed;\n};","'use strict';\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\n\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};","'use strict';\n\nvar pkg = require('./../../package.json');\n\nvar validators = {}; // eslint-disable-next-line func-names\n\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function (type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\nvar deprecatedWarnings = {};\nvar currentVerArr = pkg.version.split('.');\n/**\n * Compare package versions\n * @param {string} version\n * @param {string?} thanVersion\n * @returns {boolean}\n */\n\nfunction isOlderVersion(version, thanVersion) {\n var pkgVersionArr = thanVersion ? thanVersion.split('.') : currentVerArr;\n var destVer = version.split('.');\n\n for (var i = 0; i < 3; i++) {\n if (pkgVersionArr[i] > destVer[i]) {\n return true;\n } else if (pkgVersionArr[i] < destVer[i]) {\n return false;\n }\n }\n\n return false;\n}\n/**\n * Transitional option validator\n * @param {function|boolean?} validator\n * @param {string?} version\n * @param {string} message\n * @returns {function}\n */\n\n\nvalidators.transitional = function transitional(validator, version, message) {\n var isDeprecated = version && isOlderVersion(version);\n\n function formatMessage(opt, desc) {\n return '[Axios v' + pkg.version + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n } // eslint-disable-next-line func-names\n\n\n return function (value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed in ' + version));\n }\n\n if (isDeprecated && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true; // eslint-disable-next-line no-console\n\n console.warn(formatMessage(opt, ' has been deprecated since v' + version + ' and will be removed in the near future'));\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n\n var keys = Object.keys(options);\n var i = keys.length;\n\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n\n continue;\n }\n\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n isOlderVersion: isOlderVersion,\n assertOptions: assertOptions,\n validators: validators\n};","'use strict';\n\nvar bind = require('./helpers/bind'); // utils is a library of generic helper functions non-specific to axios\n\n\nvar toString = Object.prototype.toString;\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\n\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\n\n\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\n\n\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\n\n\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\n\n\nfunction isFormData(val) {\n return typeof FormData !== 'undefined' && val instanceof FormData;\n}\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\n\n\nfunction isArrayBufferView(val) {\n var result;\n\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && val.buffer instanceof ArrayBuffer;\n }\n\n return result;\n}\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\n\n\nfunction isString(val) {\n return typeof val === 'string';\n}\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\n\n\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\n\n\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\n\n\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\n\n\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\n\n\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\n\n\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\n\n\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\n\n\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\n\n\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\n\n\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\n\n\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || navigator.product === 'NativeScript' || navigator.product === 'NS')) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\n\n\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n } // Force an array if not already something iterable\n\n\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\n\n\nfunction\n /* obj1, obj2, obj3, ... */\nmerge() {\n var result = {};\n\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n\n return result;\n}\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\n\n\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\n\n\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};","require(\"core-js/modules/esnext.global-this.js\");\n\n!function (t, e) {\n \"object\" == typeof exports && \"undefined\" != typeof module ? module.exports = e() : \"function\" == typeof define && define.amd ? define(e) : (t = \"undefined\" != typeof globalThis ? globalThis : t || self).dayjs = e();\n}(this, function () {\n \"use strict\";\n\n var t = 1e3,\n e = 6e4,\n n = 36e5,\n r = \"millisecond\",\n i = \"second\",\n s = \"minute\",\n u = \"hour\",\n a = \"day\",\n o = \"week\",\n f = \"month\",\n h = \"quarter\",\n c = \"year\",\n d = \"date\",\n $ = \"Invalid Date\",\n l = /^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,\n y = /\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,\n M = {\n name: \"en\",\n weekdays: \"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),\n months: \"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\")\n },\n m = function m(t, e, n) {\n var r = String(t);\n return !r || r.length >= e ? t : \"\" + Array(e + 1 - r.length).join(n) + t;\n },\n g = {\n s: m,\n z: function z(t) {\n var e = -t.utcOffset(),\n n = Math.abs(e),\n r = Math.floor(n / 60),\n i = n % 60;\n return (e <= 0 ? \"+\" : \"-\") + m(r, 2, \"0\") + \":\" + m(i, 2, \"0\");\n },\n m: function t(e, n) {\n if (e.date() < n.date()) return -t(n, e);\n var r = 12 * (n.year() - e.year()) + (n.month() - e.month()),\n i = e.clone().add(r, f),\n s = n - i < 0,\n u = e.clone().add(r + (s ? -1 : 1), f);\n return +(-(r + (n - i) / (s ? i - u : u - i)) || 0);\n },\n a: function a(t) {\n return t < 0 ? Math.ceil(t) || 0 : Math.floor(t);\n },\n p: function p(t) {\n return {\n M: f,\n y: c,\n w: o,\n d: a,\n D: d,\n h: u,\n m: s,\n s: i,\n ms: r,\n Q: h\n }[t] || String(t || \"\").toLowerCase().replace(/s$/, \"\");\n },\n u: function u(t) {\n return void 0 === t;\n }\n },\n v = \"en\",\n D = {};\n\n D[v] = M;\n\n var p = function p(t) {\n return t instanceof _;\n },\n S = function t(e, n, r) {\n var i;\n if (!e) return v;\n\n if (\"string\" == typeof e) {\n var s = e.toLowerCase();\n D[s] && (i = s), n && (D[s] = n, i = s);\n var u = e.split(\"-\");\n if (!i && u.length > 1) return t(u[0]);\n } else {\n var a = e.name;\n D[a] = e, i = a;\n }\n\n return !r && i && (v = i), i || !r && v;\n },\n w = function w(t, e) {\n if (p(t)) return t.clone();\n var n = \"object\" == typeof e ? e : {};\n return n.date = t, n.args = arguments, new _(n);\n },\n O = g;\n\n O.l = S, O.i = p, O.w = function (t, e) {\n return w(t, {\n locale: e.$L,\n utc: e.$u,\n x: e.$x,\n $offset: e.$offset\n });\n };\n\n var _ = function () {\n function M(t) {\n this.$L = S(t.locale, null, !0), this.parse(t);\n }\n\n var m = M.prototype;\n return m.parse = function (t) {\n this.$d = function (t) {\n var e = t.date,\n n = t.utc;\n if (null === e) return new Date(NaN);\n if (O.u(e)) return new Date();\n if (e instanceof Date) return new Date(e);\n\n if (\"string\" == typeof e && !/Z$/i.test(e)) {\n var r = e.match(l);\n\n if (r) {\n var i = r[2] - 1 || 0,\n s = (r[7] || \"0\").substring(0, 3);\n return n ? new Date(Date.UTC(r[1], i, r[3] || 1, r[4] || 0, r[5] || 0, r[6] || 0, s)) : new Date(r[1], i, r[3] || 1, r[4] || 0, r[5] || 0, r[6] || 0, s);\n }\n }\n\n return new Date(e);\n }(t), this.$x = t.x || {}, this.init();\n }, m.init = function () {\n var t = this.$d;\n this.$y = t.getFullYear(), this.$M = t.getMonth(), this.$D = t.getDate(), this.$W = t.getDay(), this.$H = t.getHours(), this.$m = t.getMinutes(), this.$s = t.getSeconds(), this.$ms = t.getMilliseconds();\n }, m.$utils = function () {\n return O;\n }, m.isValid = function () {\n return !(this.$d.toString() === $);\n }, m.isSame = function (t, e) {\n var n = w(t);\n return this.startOf(e) <= n && n <= this.endOf(e);\n }, m.isAfter = function (t, e) {\n return w(t) < this.startOf(e);\n }, m.isBefore = function (t, e) {\n return this.endOf(e) < w(t);\n }, m.$g = function (t, e, n) {\n return O.u(t) ? this[e] : this.set(n, t);\n }, m.unix = function () {\n return Math.floor(this.valueOf() / 1e3);\n }, m.valueOf = function () {\n return this.$d.getTime();\n }, m.startOf = function (t, e) {\n var n = this,\n r = !!O.u(e) || e,\n h = O.p(t),\n $ = function $(t, e) {\n var i = O.w(n.$u ? Date.UTC(n.$y, e, t) : new Date(n.$y, e, t), n);\n return r ? i : i.endOf(a);\n },\n l = function l(t, e) {\n return O.w(n.toDate()[t].apply(n.toDate(\"s\"), (r ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(e)), n);\n },\n y = this.$W,\n M = this.$M,\n m = this.$D,\n g = \"set\" + (this.$u ? \"UTC\" : \"\");\n\n switch (h) {\n case c:\n return r ? $(1, 0) : $(31, 11);\n\n case f:\n return r ? $(1, M) : $(0, M + 1);\n\n case o:\n var v = this.$locale().weekStart || 0,\n D = (y < v ? y + 7 : y) - v;\n return $(r ? m - D : m + (6 - D), M);\n\n case a:\n case d:\n return l(g + \"Hours\", 0);\n\n case u:\n return l(g + \"Minutes\", 1);\n\n case s:\n return l(g + \"Seconds\", 2);\n\n case i:\n return l(g + \"Milliseconds\", 3);\n\n default:\n return this.clone();\n }\n }, m.endOf = function (t) {\n return this.startOf(t, !1);\n }, m.$set = function (t, e) {\n var n,\n o = O.p(t),\n h = \"set\" + (this.$u ? \"UTC\" : \"\"),\n $ = (n = {}, n[a] = h + \"Date\", n[d] = h + \"Date\", n[f] = h + \"Month\", n[c] = h + \"FullYear\", n[u] = h + \"Hours\", n[s] = h + \"Minutes\", n[i] = h + \"Seconds\", n[r] = h + \"Milliseconds\", n)[o],\n l = o === a ? this.$D + (e - this.$W) : e;\n\n if (o === f || o === c) {\n var y = this.clone().set(d, 1);\n y.$d[$](l), y.init(), this.$d = y.set(d, Math.min(this.$D, y.daysInMonth())).$d;\n } else $ && this.$d[$](l);\n\n return this.init(), this;\n }, m.set = function (t, e) {\n return this.clone().$set(t, e);\n }, m.get = function (t) {\n return this[O.p(t)]();\n }, m.add = function (r, h) {\n var d,\n $ = this;\n r = Number(r);\n\n var l = O.p(h),\n y = function y(t) {\n var e = w($);\n return O.w(e.date(e.date() + Math.round(t * r)), $);\n };\n\n if (l === f) return this.set(f, this.$M + r);\n if (l === c) return this.set(c, this.$y + r);\n if (l === a) return y(1);\n if (l === o) return y(7);\n var M = (d = {}, d[s] = e, d[u] = n, d[i] = t, d)[l] || 1,\n m = this.$d.getTime() + r * M;\n return O.w(m, this);\n }, m.subtract = function (t, e) {\n return this.add(-1 * t, e);\n }, m.format = function (t) {\n var e = this,\n n = this.$locale();\n if (!this.isValid()) return n.invalidDate || $;\n\n var r = t || \"YYYY-MM-DDTHH:mm:ssZ\",\n i = O.z(this),\n s = this.$H,\n u = this.$m,\n a = this.$M,\n o = n.weekdays,\n f = n.months,\n h = function h(t, n, i, s) {\n return t && (t[n] || t(e, r)) || i[n].substr(0, s);\n },\n c = function c(t) {\n return O.s(s % 12 || 12, t, \"0\");\n },\n d = n.meridiem || function (t, e, n) {\n var r = t < 12 ? \"AM\" : \"PM\";\n return n ? r.toLowerCase() : r;\n },\n l = {\n YY: String(this.$y).slice(-2),\n YYYY: this.$y,\n M: a + 1,\n MM: O.s(a + 1, 2, \"0\"),\n MMM: h(n.monthsShort, a, f, 3),\n MMMM: h(f, a),\n D: this.$D,\n DD: O.s(this.$D, 2, \"0\"),\n d: String(this.$W),\n dd: h(n.weekdaysMin, this.$W, o, 2),\n ddd: h(n.weekdaysShort, this.$W, o, 3),\n dddd: o[this.$W],\n H: String(s),\n HH: O.s(s, 2, \"0\"),\n h: c(1),\n hh: c(2),\n a: d(s, u, !0),\n A: d(s, u, !1),\n m: String(u),\n mm: O.s(u, 2, \"0\"),\n s: String(this.$s),\n ss: O.s(this.$s, 2, \"0\"),\n SSS: O.s(this.$ms, 3, \"0\"),\n Z: i\n };\n\n return r.replace(y, function (t, e) {\n return e || l[t] || i.replace(\":\", \"\");\n });\n }, m.utcOffset = function () {\n return 15 * -Math.round(this.$d.getTimezoneOffset() / 15);\n }, m.diff = function (r, d, $) {\n var l,\n y = O.p(d),\n M = w(r),\n m = (M.utcOffset() - this.utcOffset()) * e,\n g = this - M,\n v = O.m(this, M);\n return v = (l = {}, l[c] = v / 12, l[f] = v, l[h] = v / 3, l[o] = (g - m) / 6048e5, l[a] = (g - m) / 864e5, l[u] = g / n, l[s] = g / e, l[i] = g / t, l)[y] || g, $ ? v : O.a(v);\n }, m.daysInMonth = function () {\n return this.endOf(f).$D;\n }, m.$locale = function () {\n return D[this.$L];\n }, m.locale = function (t, e) {\n if (!t) return this.$L;\n var n = this.clone(),\n r = S(t, e, !0);\n return r && (n.$L = r), n;\n }, m.clone = function () {\n return O.w(this.$d, this);\n }, m.toDate = function () {\n return new Date(this.valueOf());\n }, m.toJSON = function () {\n return this.isValid() ? this.toISOString() : null;\n }, m.toISOString = function () {\n return this.$d.toISOString();\n }, m.toString = function () {\n return this.$d.toUTCString();\n }, M;\n }(),\n b = _.prototype;\n\n return w.prototype = b, [[\"$ms\", r], [\"$s\", i], [\"$m\", s], [\"$H\", u], [\"$W\", a], [\"$M\", f], [\"$y\", c], [\"$D\", d]].forEach(function (t) {\n b[t[1]] = function (e) {\n return this.$g(e, t[0], t[1]);\n };\n }), w.extend = function (t, e) {\n return t.$i || (t(e, _, w), t.$i = !0), w;\n }, w.locale = S, w.isDayjs = p, w.unix = function (t) {\n return w(1e3 * t);\n }, w.en = D[v], w.Ls = D, w.p = {}, w;\n});","require(\"core-js/modules/esnext.global-this.js\");\n\n!function (t, e) {\n \"object\" == typeof exports && \"undefined\" != typeof module ? module.exports = e() : \"function\" == typeof define && define.amd ? define(e) : (t = \"undefined\" != typeof globalThis ? globalThis : t || self).dayjs_plugin_customParseFormat = e();\n}(this, function () {\n \"use strict\";\n\n var t = {\n LTS: \"h:mm:ss A\",\n LT: \"h:mm A\",\n L: \"MM/DD/YYYY\",\n LL: \"MMMM D, YYYY\",\n LLL: \"MMMM D, YYYY h:mm A\",\n LLLL: \"dddd, MMMM D, YYYY h:mm A\"\n },\n e = /(\\[[^[]*\\])|([-:/.()\\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,\n n = /\\d\\d/,\n r = /\\d\\d?/,\n i = /\\d*[^\\s\\d-_:/()]+/,\n o = {},\n s = function s(t) {\n return (t = +t) + (t > 68 ? 1900 : 2e3);\n };\n\n var a = function a(t) {\n return function (e) {\n this[t] = +e;\n };\n },\n f = [/[+-]\\d\\d:?(\\d\\d)?|Z/, function (t) {\n (this.zone || (this.zone = {})).offset = function (t) {\n if (!t) return 0;\n if (\"Z\" === t) return 0;\n var e = t.match(/([+-]|\\d\\d)/g),\n n = 60 * e[1] + (+e[2] || 0);\n return 0 === n ? 0 : \"+\" === e[0] ? -n : n;\n }(t);\n }],\n u = function u(t) {\n var e = o[t];\n return e && (e.indexOf ? e : e.s.concat(e.f));\n },\n h = function h(t, e) {\n var n,\n r = o.meridiem;\n\n if (r) {\n for (var i = 1; i <= 24; i += 1) {\n if (t.indexOf(r(i, 0, e)) > -1) {\n n = i > 12;\n break;\n }\n }\n } else n = t === (e ? \"pm\" : \"PM\");\n\n return n;\n },\n d = {\n A: [i, function (t) {\n this.afternoon = h(t, !1);\n }],\n a: [i, function (t) {\n this.afternoon = h(t, !0);\n }],\n S: [/\\d/, function (t) {\n this.milliseconds = 100 * +t;\n }],\n SS: [n, function (t) {\n this.milliseconds = 10 * +t;\n }],\n SSS: [/\\d{3}/, function (t) {\n this.milliseconds = +t;\n }],\n s: [r, a(\"seconds\")],\n ss: [r, a(\"seconds\")],\n m: [r, a(\"minutes\")],\n mm: [r, a(\"minutes\")],\n H: [r, a(\"hours\")],\n h: [r, a(\"hours\")],\n HH: [r, a(\"hours\")],\n hh: [r, a(\"hours\")],\n D: [r, a(\"day\")],\n DD: [n, a(\"day\")],\n Do: [i, function (t) {\n var e = o.ordinal,\n n = t.match(/\\d+/);\n if (this.day = n[0], e) for (var r = 1; r <= 31; r += 1) {\n e(r).replace(/\\[|\\]/g, \"\") === t && (this.day = r);\n }\n }],\n M: [r, a(\"month\")],\n MM: [n, a(\"month\")],\n MMM: [i, function (t) {\n var e = u(\"months\"),\n n = (u(\"monthsShort\") || e.map(function (t) {\n return t.substr(0, 3);\n })).indexOf(t) + 1;\n if (n < 1) throw new Error();\n this.month = n % 12 || n;\n }],\n MMMM: [i, function (t) {\n var e = u(\"months\").indexOf(t) + 1;\n if (e < 1) throw new Error();\n this.month = e % 12 || e;\n }],\n Y: [/[+-]?\\d+/, a(\"year\")],\n YY: [n, function (t) {\n this.year = s(t);\n }],\n YYYY: [/\\d{4}/, a(\"year\")],\n Z: f,\n ZZ: f\n };\n\n function c(n) {\n var r, i;\n r = n, i = o && o.formats;\n\n for (var s = (n = r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g, function (e, n, r) {\n var o = r && r.toUpperCase();\n return n || i[r] || t[r] || i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g, function (t, e, n) {\n return e || n.slice(1);\n });\n })).match(e), a = s.length, f = 0; f < a; f += 1) {\n var u = s[f],\n h = d[u],\n c = h && h[0],\n l = h && h[1];\n s[f] = l ? {\n regex: c,\n parser: l\n } : u.replace(/^\\[|\\]$/g, \"\");\n }\n\n return function (t) {\n for (var e = {}, n = 0, r = 0; n < a; n += 1) {\n var i = s[n];\n if (\"string\" == typeof i) r += i.length;else {\n var o = i.regex,\n f = i.parser,\n u = t.substr(r),\n h = o.exec(u)[0];\n f.call(e, h), t = t.replace(h, \"\");\n }\n }\n\n return function (t) {\n var e = t.afternoon;\n\n if (void 0 !== e) {\n var n = t.hours;\n e ? n < 12 && (t.hours += 12) : 12 === n && (t.hours = 0), delete t.afternoon;\n }\n }(e), e;\n };\n }\n\n return function (t, e, n) {\n n.p.customParseFormat = !0, t && t.parseTwoDigitYear && (s = t.parseTwoDigitYear);\n var r = e.prototype,\n i = r.parse;\n\n r.parse = function (t) {\n var e = t.date,\n r = t.utc,\n s = t.args;\n this.$u = r;\n var a = s[1];\n\n if (\"string\" == typeof a) {\n var f = !0 === s[2],\n u = !0 === s[3],\n h = f || u,\n d = s[2];\n u && (d = s[2]), o = this.$locale(), !f && d && (o = n.Ls[d]), this.$d = function (t, e, n) {\n try {\n if ([\"x\", \"X\"].indexOf(e) > -1) return new Date((\"X\" === e ? 1e3 : 1) * t);\n var r = c(e)(t),\n i = r.year,\n o = r.month,\n s = r.day,\n a = r.hours,\n f = r.minutes,\n u = r.seconds,\n h = r.milliseconds,\n d = r.zone,\n l = new Date(),\n m = s || (i || o ? 1 : l.getDate()),\n M = i || l.getFullYear(),\n Y = 0;\n i && !o || (Y = o > 0 ? o - 1 : l.getMonth());\n var p = a || 0,\n v = f || 0,\n D = u || 0,\n g = h || 0;\n return d ? new Date(Date.UTC(M, Y, m, p, v, D, g + 60 * d.offset * 1e3)) : n ? new Date(Date.UTC(M, Y, m, p, v, D, g)) : new Date(M, Y, m, p, v, D, g);\n } catch (t) {\n return new Date(\"\");\n }\n }(e, a, r), this.init(), d && !0 !== d && (this.$L = this.locale(d).$L), h && e != this.format(a) && (this.$d = new Date(\"\")), o = {};\n } else if (a instanceof Array) for (var l = a.length, m = 1; m <= l; m += 1) {\n s[1] = a[m - 1];\n var M = n.apply(this, s);\n\n if (M.isValid()) {\n this.$d = M.$d, this.$L = M.$L, this.init();\n break;\n }\n\n m === l && (this.$d = new Date(\"\"));\n } else i.call(this, t);\n };\n };\n});","require(\"core-js/modules/esnext.global-this.js\");\n\n!function (t, s) {\n \"object\" == typeof exports && \"undefined\" != typeof module ? module.exports = s() : \"function\" == typeof define && define.amd ? define(s) : (t = \"undefined\" != typeof globalThis ? globalThis : t || self).dayjs_plugin_duration = s();\n}(this, function () {\n \"use strict\";\n\n var t,\n s,\n n = 1e3,\n i = 6e4,\n e = 36e5,\n r = 864e5,\n o = /\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,\n u = 31536e6,\n h = 2592e6,\n a = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/,\n d = {\n years: u,\n months: h,\n days: r,\n hours: e,\n minutes: i,\n seconds: n,\n milliseconds: 1,\n weeks: 6048e5\n },\n c = function c(t) {\n return t instanceof p;\n },\n f = function f(t, s, n) {\n return new p(t, n, s.$l);\n },\n m = function m(t) {\n return s.p(t) + \"s\";\n },\n l = function l(t) {\n return t < 0;\n },\n $ = function $(t) {\n return l(t) ? Math.ceil(t) : Math.floor(t);\n },\n y = function y(t) {\n return Math.abs(t);\n },\n g = function g(t, s) {\n return t ? l(t) ? {\n negative: !0,\n format: \"\" + y(t) + s\n } : {\n negative: !1,\n format: \"\" + t + s\n } : {\n negative: !1,\n format: \"\"\n };\n },\n p = function () {\n function l(t, s, n) {\n var i = this;\n if (this.$d = {}, this.$l = n, void 0 === t && (this.$ms = 0, this.parseFromMilliseconds()), s) return f(t * d[m(s)], this);\n if (\"number\" == typeof t) return this.$ms = t, this.parseFromMilliseconds(), this;\n if (\"object\" == typeof t) return Object.keys(t).forEach(function (s) {\n i.$d[m(s)] = t[s];\n }), this.calMilliseconds(), this;\n\n if (\"string\" == typeof t) {\n var e = t.match(a);\n\n if (e) {\n var r = e.slice(2).map(function (t) {\n return null != t ? Number(t) : 0;\n });\n return this.$d.years = r[0], this.$d.months = r[1], this.$d.weeks = r[2], this.$d.days = r[3], this.$d.hours = r[4], this.$d.minutes = r[5], this.$d.seconds = r[6], this.calMilliseconds(), this;\n }\n }\n\n return this;\n }\n\n var y = l.prototype;\n return y.calMilliseconds = function () {\n var t = this;\n this.$ms = Object.keys(this.$d).reduce(function (s, n) {\n return s + (t.$d[n] || 0) * d[n];\n }, 0);\n }, y.parseFromMilliseconds = function () {\n var t = this.$ms;\n this.$d.years = $(t / u), t %= u, this.$d.months = $(t / h), t %= h, this.$d.days = $(t / r), t %= r, this.$d.hours = $(t / e), t %= e, this.$d.minutes = $(t / i), t %= i, this.$d.seconds = $(t / n), t %= n, this.$d.milliseconds = t;\n }, y.toISOString = function () {\n var t = g(this.$d.years, \"Y\"),\n s = g(this.$d.months, \"M\"),\n n = +this.$d.days || 0;\n this.$d.weeks && (n += 7 * this.$d.weeks);\n var i = g(n, \"D\"),\n e = g(this.$d.hours, \"H\"),\n r = g(this.$d.minutes, \"M\"),\n o = this.$d.seconds || 0;\n this.$d.milliseconds && (o += this.$d.milliseconds / 1e3);\n var u = g(o, \"S\"),\n h = t.negative || s.negative || i.negative || e.negative || r.negative || u.negative,\n a = e.format || r.format || u.format ? \"T\" : \"\",\n d = (h ? \"-\" : \"\") + \"P\" + t.format + s.format + i.format + a + e.format + r.format + u.format;\n return \"P\" === d || \"-P\" === d ? \"P0D\" : d;\n }, y.toJSON = function () {\n return this.toISOString();\n }, y.format = function (t) {\n var n = t || \"YYYY-MM-DDTHH:mm:ss\",\n i = {\n Y: this.$d.years,\n YY: s.s(this.$d.years, 2, \"0\"),\n YYYY: s.s(this.$d.years, 4, \"0\"),\n M: this.$d.months,\n MM: s.s(this.$d.months, 2, \"0\"),\n D: this.$d.days,\n DD: s.s(this.$d.days, 2, \"0\"),\n H: this.$d.hours,\n HH: s.s(this.$d.hours, 2, \"0\"),\n m: this.$d.minutes,\n mm: s.s(this.$d.minutes, 2, \"0\"),\n s: this.$d.seconds,\n ss: s.s(this.$d.seconds, 2, \"0\"),\n SSS: s.s(this.$d.milliseconds, 3, \"0\")\n };\n return n.replace(o, function (t, s) {\n return s || String(i[t]);\n });\n }, y.as = function (t) {\n return this.$ms / d[m(t)];\n }, y.get = function (t) {\n var s = this.$ms,\n n = m(t);\n return \"milliseconds\" === n ? s %= 1e3 : s = \"weeks\" === n ? $(s / d[n]) : this.$d[n], 0 === s ? 0 : s;\n }, y.add = function (t, s, n) {\n var i;\n return i = s ? t * d[m(s)] : c(t) ? t.$ms : f(t, this).$ms, f(this.$ms + i * (n ? -1 : 1), this);\n }, y.subtract = function (t, s) {\n return this.add(t, s, !0);\n }, y.locale = function (t) {\n var s = this.clone();\n return s.$l = t, s;\n }, y.clone = function () {\n return f(this.$ms, this);\n }, y.humanize = function (s) {\n return t().add(this.$ms, \"ms\").locale(this.$l).fromNow(!s);\n }, y.milliseconds = function () {\n return this.get(\"milliseconds\");\n }, y.asMilliseconds = function () {\n return this.as(\"milliseconds\");\n }, y.seconds = function () {\n return this.get(\"seconds\");\n }, y.asSeconds = function () {\n return this.as(\"seconds\");\n }, y.minutes = function () {\n return this.get(\"minutes\");\n }, y.asMinutes = function () {\n return this.as(\"minutes\");\n }, y.hours = function () {\n return this.get(\"hours\");\n }, y.asHours = function () {\n return this.as(\"hours\");\n }, y.days = function () {\n return this.get(\"days\");\n }, y.asDays = function () {\n return this.as(\"days\");\n }, y.weeks = function () {\n return this.get(\"weeks\");\n }, y.asWeeks = function () {\n return this.as(\"weeks\");\n }, y.months = function () {\n return this.get(\"months\");\n }, y.asMonths = function () {\n return this.as(\"months\");\n }, y.years = function () {\n return this.get(\"years\");\n }, y.asYears = function () {\n return this.as(\"years\");\n }, l;\n }();\n\n return function (n, i, e) {\n t = e, s = e().$utils(), e.duration = function (t, s) {\n var n = e.locale();\n return f(t, {\n $l: n\n }, s);\n }, e.isDuration = c;\n var r = i.prototype.add,\n o = i.prototype.subtract;\n i.prototype.add = function (t, s) {\n return c(t) && (t = t.asMilliseconds()), r.bind(this)(t, s);\n }, i.prototype.subtract = function (t, s) {\n return c(t) && (t = t.asMilliseconds()), o.bind(this)(t, s);\n };\n };\n});","'use strict';\n\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp(token, 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n try {\n // Try to decode the entire string first\n return decodeURIComponent(components.join(''));\n } catch (err) {// Do nothing\n }\n\n if (components.length === 1) {\n return components;\n }\n\n split = split || 1; // Split the array in 2 parts\n\n var left = components.slice(0, split);\n var right = components.slice(split);\n return Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n try {\n return decodeURIComponent(input);\n } catch (err) {\n var tokens = input.match(singleMatcher);\n\n for (var i = 1; i < tokens.length; i++) {\n input = decodeComponents(tokens, i).join('');\n tokens = input.match(singleMatcher);\n }\n\n return input;\n }\n}\n\nfunction customDecodeURIComponent(input) {\n // Keep track of all the replacements and prefill the map with the `BOM`\n var replaceMap = {\n '%FE%FF': \"\\uFFFD\\uFFFD\",\n '%FF%FE': \"\\uFFFD\\uFFFD\"\n };\n var match = multiMatcher.exec(input);\n\n while (match) {\n try {\n // Decode as big chunks as possible\n replaceMap[match[0]] = decodeURIComponent(match[0]);\n } catch (err) {\n var result = decode(match[0]);\n\n if (result !== match[0]) {\n replaceMap[match[0]] = result;\n }\n }\n\n match = multiMatcher.exec(input);\n } // Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\n\n replaceMap['%C2'] = \"\\uFFFD\";\n var entries = Object.keys(replaceMap);\n\n for (var i = 0; i < entries.length; i++) {\n // Replace all decoded components\n var key = entries[i];\n input = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n }\n\n return input;\n}\n\nmodule.exports = function (encodedURI) {\n if (typeof encodedURI !== 'string') {\n throw new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n }\n\n try {\n encodedURI = encodedURI.replace(/\\+/g, ' '); // Try the built in decoder first\n\n return decodeURIComponent(encodedURI);\n } catch (err) {\n // Fallback to a more advanced decoder\n return customDecodeURIComponent(encodedURI);\n }\n};","'use strict';\n\nmodule.exports = function (obj, predicate) {\n var ret = {};\n var keys = Object.keys(obj);\n var isArr = Array.isArray(predicate);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var val = obj[key];\n\n if (isArr ? predicate.indexOf(key) !== -1 : predicate(key, val, obj)) {\n ret[key] = val;\n }\n }\n\n return ret;\n};","//Finance.js\n//For more information, visit http://financejs.org\n//Copyright 2014 - 2015 Essam Al Joubori, MIT license\n// Instantiate a Finance class\nvar Finance = function Finance() {}; // Present Value (PV)\n\n\nFinance.prototype.PV = function (rate, cf1, numOfPeriod) {\n numOfPeriod = typeof numOfPeriod !== 'undefined' ? numOfPeriod : 1;\n var rate = rate / 100,\n pv;\n pv = cf1 / Math.pow(1 + rate, numOfPeriod);\n return Math.round(pv * 100) / 100;\n}; // Future Value (FV)\n\n\nFinance.prototype.FV = function (rate, cf0, numOfPeriod) {\n var rate = rate / 100,\n fv;\n fv = cf0 * Math.pow(1 + rate, numOfPeriod);\n return Math.round(fv * 100) / 100;\n}; // Net Present Value (NPV)\n\n\nFinance.prototype.NPV = function (rate) {\n var rate = rate / 100,\n npv = arguments[1];\n\n for (var i = 2; i < arguments.length; i++) {\n npv += arguments[i] / Math.pow(1 + rate, i - 1);\n }\n\n return Math.round(npv * 100) / 100;\n}; // seekZero seeks the zero point of the function fn(x), accurate to within x \\pm 0.01. fn(x) must be decreasing with x.\n\n\nfunction seekZero(fn) {\n var x = 1;\n\n while (fn(x) > 0) {\n x += 1;\n }\n\n while (fn(x) < 0) {\n x -= 0.01;\n }\n\n return x + 0.01;\n} // Internal Rate of Return (IRR)\n\n\nFinance.prototype.IRR = function (cfs) {\n var args = arguments;\n var numberOfTries = 1; // Cash flow values must contain at least one positive value and one negative value\n\n var positive, negative;\n Array.prototype.slice.call(args).forEach(function (value) {\n if (value > 0) positive = true;\n if (value < 0) negative = true;\n });\n if (!positive || !negative) throw new Error('IRR requires at least one positive value and one negative value');\n\n function npv(rate) {\n numberOfTries++;\n\n if (numberOfTries > 1000) {\n throw new Error('IRR can\\'t find a result');\n }\n\n var rrate = 1 + rate / 100;\n var npv = args[0];\n\n for (var i = 1; i < args.length; i++) {\n npv += args[i] / Math.pow(rrate, i);\n }\n\n return npv;\n }\n\n return Math.round(seekZero(npv) * 100) / 100;\n}; // Payback Period (PP)\n\n\nFinance.prototype.PP = function (numOfPeriods, cfs) {\n // for even cash flows\n if (numOfPeriods === 0) {\n return Math.abs(arguments[1]) / arguments[2];\n } // for uneven cash flows\n\n\n var cumulativeCashFlow = arguments[1];\n var yearsCounter = 1;\n\n for (i = 2; i < arguments.length; i++) {\n cumulativeCashFlow += arguments[i];\n\n if (cumulativeCashFlow > 0) {\n yearsCounter += (cumulativeCashFlow - arguments[i]) / arguments[i];\n return yearsCounter;\n } else {\n yearsCounter++;\n }\n }\n}; // Return on Investment (ROI)\n\n\nFinance.prototype.ROI = function (cf0, earnings) {\n var roi = (earnings - Math.abs(cf0)) / Math.abs(cf0) * 100;\n return Math.round(roi * 100) / 100;\n}; // Amortization\n\n\nFinance.prototype.AM = function (principal, rate, period, yearOrMonth, payAtBeginning) {\n var numerator, denominator, am;\n var ratePerPeriod = rate / 12 / 100; // for inputs in years\n\n if (!yearOrMonth) {\n numerator = buildNumerator(period * 12);\n denominator = Math.pow(1 + ratePerPeriod, period * 12) - 1; // for inputs in months\n } else if (yearOrMonth === 1) {\n numerator = buildNumerator(period);\n denominator = Math.pow(1 + ratePerPeriod, period) - 1;\n } else {\n console.log('not defined');\n }\n\n am = principal * (numerator / denominator);\n return Math.round(am * 100) / 100;\n\n function buildNumerator(numInterestAccruals) {\n if (payAtBeginning) {\n //if payments are made in the beginning of the period, then interest shouldn't be calculated for first period\n numInterestAccruals -= 1;\n }\n\n return ratePerPeriod * Math.pow(1 + ratePerPeriod, numInterestAccruals);\n }\n}; // Profitability Index (PI)\n\n\nFinance.prototype.PI = function (rate, cfs) {\n var totalOfPVs = 0,\n PI;\n\n for (var i = 2; i < arguments.length; i++) {\n var discountFactor; // calculate discount factor\n\n discountFactor = 1 / Math.pow(1 + rate / 100, i - 1);\n totalOfPVs += arguments[i] * discountFactor;\n }\n\n PI = totalOfPVs / Math.abs(arguments[1]);\n return Math.round(PI * 100) / 100;\n}; // Discount Factor (DF)\n\n\nFinance.prototype.DF = function (rate, numOfPeriods) {\n var dfs = [],\n discountFactor;\n\n for (var i = 1; i < numOfPeriods; i++) {\n discountFactor = 1 / Math.pow(1 + rate / 100, i - 1);\n roundedDiscountFactor = Math.ceil(discountFactor * 1000) / 1000;\n dfs.push(roundedDiscountFactor);\n }\n\n return dfs;\n}; // Compound Interest (CI)\n\n\nFinance.prototype.CI = function (rate, numOfCompoundings, principal, numOfPeriods) {\n var CI = principal * Math.pow(1 + rate / 100 / numOfCompoundings, numOfCompoundings * numOfPeriods);\n return Math.round(CI * 100) / 100;\n}; // Compound Annual Growth Rate (CAGR)\n\n\nFinance.prototype.CAGR = function (beginningValue, endingValue, numOfPeriods) {\n var CAGR = Math.pow(endingValue / beginningValue, 1 / numOfPeriods) - 1;\n return Math.round(CAGR * 10000) / 100;\n}; // Leverage Ratio (LR)\n\n\nFinance.prototype.LR = function (totalLiabilities, totalDebts, totalIncome) {\n return (totalLiabilities + totalDebts) / totalIncome;\n}; // Rule of 72\n\n\nFinance.prototype.R72 = function (rate) {\n return 72 / rate;\n}; // Weighted Average Cost of Capital (WACC)\n\n\nFinance.prototype.WACC = function (marketValueOfEquity, marketValueOfDebt, costOfEquity, costOfDebt, taxRate) {\n E = marketValueOfEquity;\n D = marketValueOfDebt;\n V = marketValueOfEquity + marketValueOfDebt;\n Re = costOfEquity;\n Rd = costOfDebt;\n T = taxRate;\n var WACC = E / V * Re / 100 + D / V * Rd / 100 * (1 - T / 100);\n return Math.round(WACC * 1000) / 10;\n}; // PMT calculates the payment for a loan based on constant payments and a constant interest rate\n\n\nFinance.prototype.PMT = function (fractionalRate, numOfPayments, principal) {\n return -principal * fractionalRate / (1 - Math.pow(1 + fractionalRate, -numOfPayments));\n}; // IAR calculates the Inflation-adjusted return\n\n\nFinance.prototype.IAR = function (investmentReturn, inflationRate) {\n return 100 * ((1 + investmentReturn) / (1 + inflationRate) - 1);\n}; // XIRR - IRR for irregular intervals\n\n\nFinance.prototype.XIRR = function (cfs, dts, guess) {\n if (cfs.length != dts.length) throw new Error('Number of cash flows and dates should match');\n var positive, negative;\n Array.prototype.slice.call(cfs).forEach(function (value) {\n if (value > 0) positive = true;\n if (value < 0) negative = true;\n });\n if (!positive || !negative) throw new Error('XIRR requires at least one positive value and one negative value');\n guess = !!guess ? guess : 0;\n var limit = 100; //loop limit\n\n var guess_last;\n var durs = [];\n durs.push(0); //Create Array of durations from First date\n\n for (var i = 1; i < dts.length; i++) {\n durs.push(durYear(dts[0], dts[i]));\n }\n\n do {\n guess_last = guess;\n guess = guess_last - sumEq(cfs, durs, guess_last);\n limit--;\n } while (guess_last.toFixed(5) != guess.toFixed(5) && limit > 0);\n\n var xirr = guess_last.toFixed(5) != guess.toFixed(5) ? null : guess * 100;\n return Math.round(xirr * 100) / 100;\n}; //Returns Sum of f(x)/f'(x)\n\n\nfunction sumEq(cfs, durs, guess) {\n var sum_fx = 0;\n var sum_fdx = 0;\n\n for (var i = 0; i < cfs.length; i++) {\n sum_fx = sum_fx + cfs[i] / Math.pow(1 + guess, durs[i]);\n }\n\n for (i = 0; i < cfs.length; i++) {\n sum_fdx = sum_fdx + -cfs[i] * durs[i] * Math.pow(1 + guess, -1 - durs[i]);\n }\n\n return sum_fx / sum_fdx;\n} //Returns duration in years between two dates\n\n\nfunction durYear(first, last) {\n return Math.abs(last.getTime() - first.getTime()) / (1000 * 3600 * 24 * 365);\n}\n\nif (typeof exports !== 'undefined') {\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = Finance;\n module.exports.Finance = Finance;\n }\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.applyTrailingSlashOption = void 0; // TODO(v5): Remove legacy setting and default to \"always\"\n\nvar applyTrailingSlashOption = function applyTrailingSlashOption(input) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"legacy\";\n var hasHtmlSuffix = input.endsWith(\".html\");\n var hasXmlSuffix = input.endsWith(\".xml\");\n var hasPdfSuffix = input.endsWith(\".pdf\");\n if (input === \"/\") return input;\n\n if (hasHtmlSuffix || hasXmlSuffix || hasPdfSuffix) {\n option = \"never\";\n }\n\n if (option === \"always\") {\n return input.endsWith(\"/\") ? input : \"\".concat(input, \"/\");\n }\n\n if (option === \"never\") {\n return input.endsWith(\"/\") ? input.slice(0, -1) : input;\n }\n\n return input;\n};\n\nexports.applyTrailingSlashOption = applyTrailingSlashOption;","\"use strict\";\n\nmodule.exports = Object.assign;","\"use strict\";\n\nexports.__esModule = true;\nexports.onInitialClientRender = void 0;\n\nvar _gatsbyScript = require(\"gatsby-script\");\n\nvar _injectPartytownSnippet = require(\"./utils/inject-partytown-snippet\"); // Makes sure off-main-thread scripts are loaded in `gatsby develop`\n\n\nvar onInitialClientRender = function onInitialClientRender() {\n if (process.env.NODE_ENV !== \"development\") {\n return;\n }\n\n (0, _injectPartytownSnippet.injectPartytownSnippet)(_gatsbyScript.collectedScriptsByPage.get(window.location.pathname)); // Clear scripts after we've used them to avoid leaky behavior\n\n _gatsbyScript.collectedScriptsByPage.delete(window.location.pathname);\n}; // Client-side navigation (CSR, e.g. Gatsby Link navigations) are broken upstream in Partytown.\n// We need an official API from Partytown for handling re-configuration and on-demand script loading.\n// Until then, `off-main-thread` scripts load only on server-side navigation (SSR).\n// See https://github.com/BuilderIO/partytown/issues/74 for more details.\n\n\nexports.onInitialClientRender = onInitialClientRender;","\"use strict\";\n\nrequire(\"core-js/modules/es.array.flat-map.js\");\n\nrequire(\"core-js/modules/es.array.unscopables.flat-map.js\");\n\nexports.__esModule = true;\nexports.getForwards = getForwards;\n\nfunction getForwards(collectedScripts) {\n return collectedScripts === null || collectedScripts === void 0 ? void 0 : collectedScripts.flatMap(function (script) {\n return (script === null || script === void 0 ? void 0 : script.forward) || [];\n });\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.injectPartytownSnippet = injectPartytownSnippet;\n\nvar _integration = require(\"@builder.io/partytown/integration\");\n\nvar _getForwards = require(\"./get-forwards\"); // Adapted from https://github.com/BuilderIO/partytown/blob/main/src/react/snippet.tsx to only include CSR logic\n\n\nfunction injectPartytownSnippet(collectedScripts) {\n if (!collectedScripts.length) {\n return;\n }\n\n var existingSnippet = document.querySelector(\"script[data-partytown]\");\n var existingSandbox = document.querySelector(\"iframe[src*=\\\"~partytown/partytown-sandbox-sw\\\"]\");\n\n if (existingSnippet) {\n existingSnippet.remove();\n }\n\n if (existingSandbox) {\n existingSandbox.remove();\n }\n\n var forwards = (0, _getForwards.getForwards)(collectedScripts);\n var snippet = document.createElement(\"script\");\n snippet.dataset.partytown = \"\";\n snippet.innerHTML = (0, _integration.partytownSnippet)({\n forward: forwards\n });\n document.head.appendChild(snippet);\n}","'use strict';\n\nvar reactIs = require('react-is');\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n\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;\n\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;","function e(n) {\n return (e = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (e) {\n return typeof e;\n } : function (e) {\n return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n })(n);\n}\n\nfunction n(e, n, t) {\n return n in e ? Object.defineProperty(e, n, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[n] = t, e;\n}\n\nfunction t(e, n) {\n var t = Object.keys(e);\n\n if (Object.getOwnPropertySymbols) {\n var r = Object.getOwnPropertySymbols(e);\n n && (r = r.filter(function (n) {\n return Object.getOwnPropertyDescriptor(e, n).enumerable;\n })), t.push.apply(t, r);\n }\n\n return t;\n}\n\nfunction r(e) {\n for (var r = 1; r < arguments.length; r++) {\n var o = null != arguments[r] ? arguments[r] : {};\n r % 2 ? t(o, !0).forEach(function (t) {\n n(e, t, o[t]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(o)) : t(o).forEach(function (n) {\n Object.defineProperty(e, n, Object.getOwnPropertyDescriptor(o, n));\n });\n }\n\n return e;\n}\n\nfunction o(e) {\n return function (e) {\n if (Array.isArray(e)) {\n for (var n = 0, t = new Array(e.length); n < e.length; n++) {\n t[n] = e[n];\n }\n\n return t;\n }\n }(e) || function (e) {\n if (Symbol.iterator in Object(e) || \"[object Arguments]\" === Object.prototype.toString.call(e)) return Array.from(e);\n }(e) || function () {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n }();\n}\n\nfunction i(e) {\n function n(e, n) {\n Error.captureStackTrace && Error.captureStackTrace(this, this.constructor), this.message = e, this.code = n;\n }\n\n return n.prototype = new Error(), n.prototype.name = e, n.prototype.constructor = n, n;\n}\n\nvar a = i(\"LaunchDarklyUnexpectedResponseError\"),\n u = i(\"LaunchDarklyInvalidEnvironmentIdError\"),\n s = i(\"LaunchDarklyInvalidUserError\"),\n c = i(\"LaunchDarklyInvalidEventKeyError\"),\n l = i(\"LaunchDarklyInvalidArgumentError\"),\n f = i(\"LaunchDarklyFlagFetchError\"),\n d = i(\"LaunchDarklyInvalidDataError\");\n\nfunction v(e) {\n return !(e >= 400 && e < 500) || 400 === e || 408 === e || 429 === e;\n}\n\nfor (var g = Object.freeze({\n __proto__: null,\n LDUnexpectedResponseError: a,\n LDInvalidEnvironmentIdError: u,\n LDInvalidUserError: s,\n LDInvalidEventKeyError: c,\n LDInvalidArgumentError: l,\n LDFlagFetchError: f,\n LDInvalidDataError: d,\n isHttpErrorRecoverable: v\n}), p = [], m = [], h = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\", y = 0, w = h.length; y < w; ++y) {\n p[y] = h[y], m[h.charCodeAt(y)] = y;\n}\n\nfunction b(e, n, t) {\n for (var r, o, i = [], a = n; a < t; a += 3) {\n r = (e[a] << 16 & 16711680) + (e[a + 1] << 8 & 65280) + (255 & e[a + 2]), i.push(p[(o = r) >> 18 & 63] + p[o >> 12 & 63] + p[o >> 6 & 63] + p[63 & o]);\n }\n\n return i.join(\"\");\n}\n\nm[\"-\".charCodeAt(0)] = 62, m[\"_\".charCodeAt(0)] = 63;\nvar k = Array.isArray,\n E = Object.keys,\n D = Object.prototype.hasOwnProperty,\n S = [\"key\", \"secondary\", \"ip\", \"country\", \"email\", \"firstName\", \"lastName\", \"avatar\", \"name\"];\n\nfunction O(e) {\n return function (e) {\n for (var n, t = e.length, r = t % 3, o = [], i = 0, a = t - r; i < a; i += 16383) {\n o.push(b(e, i, i + 16383 > a ? a : i + 16383));\n }\n\n return 1 === r ? (n = e[t - 1], o.push(p[n >> 2] + p[n << 4 & 63] + \"==\")) : 2 === r && (n = (e[t - 2] << 8) + e[t - 1], o.push(p[n >> 10] + p[n >> 4 & 63] + p[n << 2 & 63] + \"=\")), o.join(\"\");\n }(function (e) {\n for (var n = [], t = 0; t < e.length; t++) {\n n.push(e.charCodeAt(t));\n }\n\n return n;\n }(unescape(encodeURIComponent(e))));\n}\n\nfunction P(e) {\n return O(e).replace(/=/g, \"\").replace(/\\+/g, \"-\").replace(/\\//g, \"_\");\n}\n\nfunction U(e) {\n return JSON.parse(JSON.stringify(e));\n}\n\nfunction R(e, n) {\n return function e(n, t) {\n if (n === t) return !0;\n\n if (n && t && \"object\" == typeof n && \"object\" == typeof t) {\n var r,\n o,\n i,\n a = k(n),\n u = k(t);\n\n if (a && u) {\n if ((o = n.length) != t.length) return !1;\n\n for (r = o; 0 != r--;) {\n if (!e(n[r], t[r])) return !1;\n }\n\n return !0;\n }\n\n if (a != u) return !1;\n var s = n instanceof Date,\n c = t instanceof Date;\n if (s != c) return !1;\n if (s && c) return n.getTime() == t.getTime();\n var l = n instanceof RegExp,\n f = t instanceof RegExp;\n if (l != f) return !1;\n if (l && f) return n.toString() == t.toString();\n var d = E(n);\n if ((o = d.length) !== E(t).length) return !1;\n\n for (r = o; 0 != r--;) {\n if (!D.call(t, d[r])) return !1;\n }\n\n for (r = o; 0 != r--;) {\n if (!e(n[i = d[r]], t[i])) return !1;\n }\n\n return !0;\n }\n\n return n != n && t != t;\n }(e, n);\n}\n\nfunction j(e) {\n setTimeout(e, 0);\n}\n\nfunction I(e, n) {\n var t = e.then(function (e) {\n return n && setTimeout(function () {\n n(null, e);\n }, 0), e;\n }, function (e) {\n if (!n) return Promise.reject(e);\n setTimeout(function () {\n n(e, null);\n }, 0);\n });\n return n ? void 0 : t;\n}\n\nfunction T(e) {\n var n = {};\n\n for (var t in e) {\n q(e, t) && (n[t] = {\n value: e[t],\n version: 0\n });\n }\n\n return n;\n}\n\nfunction L(e) {\n var n = {};\n\n for (var t in e) {\n q(e, t) && (n[t] = e[t].value);\n }\n\n return n;\n}\n\nfunction N(e, n) {\n for (var t, r = n.slice(0), o = [], i = e; r.length > 0;) {\n for (t = []; i > 0;) {\n var a = r.shift();\n if (!a) break;\n (i -= P(JSON.stringify(a)).length) < 0 && t.length > 0 ? r.unshift(a) : t.push(a);\n }\n\n i = e, o.push(t);\n }\n\n return o;\n}\n\nfunction x(e) {\n var n = e.version || \"3.5.1\";\n return e.userAgent + \"/\" + n;\n}\n\nfunction F(e, n) {\n if (n && !n.sendLDHeaders) return {};\n var t = {\n \"X-LaunchDarkly-User-Agent\": x(e)\n };\n return n && n.wrapperName && (t[\"X-LaunchDarkly-Wrapper\"] = n.wrapperVersion ? n.wrapperName + \"/\" + n.wrapperVersion : n.wrapperName), t;\n}\n\nfunction A(e, n) {\n return n && n.requestHeaderTransform ? n.requestHeaderTransform(r({}, e)) : e;\n}\n\nfunction C() {\n for (var e = arguments.length, n = new Array(e), t = 0; t < e; t++) {\n n[t] = arguments[t];\n }\n\n return n.reduce(function (e, n) {\n return r({}, e, {}, n);\n }, {});\n}\n\nfunction q(e, n) {\n return Object.prototype.hasOwnProperty.call(e, n);\n}\n\nfunction V(e) {\n if (!e) return e;\n var n;\n\n for (var t in S) {\n var o = S[t],\n i = e[o];\n void 0 !== i && \"string\" != typeof i && ((n = n || r({}, e))[o] = String(i));\n }\n\n return n || e;\n}\n\nObject.freeze({\n __proto__: null,\n btoa: O,\n base64URLEncode: P,\n clone: U,\n deepEquals: R,\n onNextTick: j,\n wrapPromiseCallback: I,\n transformValuesToVersionedValues: T,\n transformVersionedValuesToValues: L,\n chunkUserEventsForUrl: N,\n getLDUserAgentString: x,\n getLDHeaders: F,\n transformHeaders: A,\n extend: C,\n objectHasOwnProperty: q,\n sanitizeUser: V\n});\n\nfor (var _ = function (e, n) {\n return function (e) {\n var n = \"undefined\" != typeof crypto && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || \"undefined\" != typeof msCrypto && \"function\" == typeof window.msCrypto.getRandomValues && msCrypto.getRandomValues.bind(msCrypto);\n\n if (n) {\n var t = new Uint8Array(16);\n\n e.exports = function () {\n return n(t), t;\n };\n } else {\n var r = new Array(16);\n\n e.exports = function () {\n for (var e, n = 0; n < 16; n++) {\n 0 == (3 & n) && (e = 4294967296 * Math.random()), r[n] = e >>> ((3 & n) << 3) & 255;\n }\n\n return r;\n };\n }\n }(n = {\n exports: {}\n }), n.exports;\n}(), J = [], z = 0; z < 256; ++z) {\n J[z] = (z + 256).toString(16).substr(1);\n}\n\nvar M,\n H,\n K = 0,\n $ = 0,\n B = function B(e, n, t) {\n var r = n && t || 0,\n o = n || [],\n i = (e = e || {}).node || M,\n a = void 0 !== e.clockseq ? e.clockseq : H;\n\n if (null == i || null == a) {\n var u = _();\n\n null == i && (i = M = [1 | u[0], u[1], u[2], u[3], u[4], u[5]]), null == a && (a = H = 16383 & (u[6] << 8 | u[7]));\n }\n\n var s = void 0 !== e.msecs ? e.msecs : new Date().getTime(),\n c = void 0 !== e.nsecs ? e.nsecs : $ + 1,\n l = s - K + (c - $) / 1e4;\n if (l < 0 && void 0 === e.clockseq && (a = a + 1 & 16383), (l < 0 || s > K) && void 0 === e.nsecs && (c = 0), c >= 1e4) throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n K = s, $ = c, H = a;\n var f = (1e4 * (268435455 & (s += 122192928e5)) + c) % 4294967296;\n o[r++] = f >>> 24 & 255, o[r++] = f >>> 16 & 255, o[r++] = f >>> 8 & 255, o[r++] = 255 & f;\n var d = s / 4294967296 * 1e4 & 268435455;\n o[r++] = d >>> 8 & 255, o[r++] = 255 & d, o[r++] = d >>> 24 & 15 | 16, o[r++] = d >>> 16 & 255, o[r++] = a >>> 8 | 128, o[r++] = 255 & a;\n\n for (var v = 0; v < 6; ++v) {\n o[r + v] = i[v];\n }\n\n return n || function (e, n) {\n var t = n || 0,\n r = J;\n return [r[e[t++]], r[e[t++]], r[e[t++]], r[e[t++]], \"-\", r[e[t++]], r[e[t++]], \"-\", r[e[t++]], r[e[t++]], \"-\", r[e[t++]], r[e[t++]], \"-\", r[e[t++]], r[e[t++]], r[e[t++]], r[e[t++]], r[e[t++]], r[e[t++]]].join(\"\");\n }(o);\n};\n\nfunction G(e, n, t) {\n var r = \"/a/\" + n + \".gif\",\n o = C({\n \"Content-Type\": \"application/json\"\n }, F(e, t)),\n i = e.httpFallbackPing,\n a = {\n sendChunk: function sendChunk(n, a, u, s) {\n var c = JSON.stringify(n),\n l = u ? null : B();\n return s ? function n(r) {\n var i = u ? o : C({}, o, {\n \"X-LaunchDarkly-Event-Schema\": \"3\",\n \"X-LaunchDarkly-Payload-ID\": l\n });\n return e.httpRequest(\"POST\", a, A(i, t), c).promise.then(function (e) {\n if (e) return e.status >= 400 && v(e.status) && r ? n(!1) : function (e) {\n var n = {\n status: e.status\n },\n t = e.header(\"date\");\n\n if (t) {\n var r = Date.parse(t);\n r && (n.serverTime = r);\n }\n\n return n;\n }(e);\n }).catch(function () {\n return r ? n(!1) : Promise.reject();\n });\n }(!0).catch(function () {}) : (i && i(a + r + \"?d=\" + P(c)), Promise.resolve());\n },\n sendEvents: function sendEvents(n, t, r) {\n if (!e.httpRequest) return Promise.resolve();\n var o,\n i = e.httpAllowsPost();\n o = i ? [n] : N(2e3 - t.length, n);\n\n for (var u = [], s = 0; s < o.length; s++) {\n u.push(a.sendChunk(o[s], t, r, i));\n }\n\n return Promise.all(u);\n }\n };\n return a;\n}\n\nfunction X() {\n var e = {},\n n = 0,\n t = 0,\n r = {};\n return e.summarizeEvent = function (e) {\n if (\"feature\" === e.kind) {\n var o = e.key + \":\" + (null !== e.variation && void 0 !== e.variation ? e.variation : \"\") + \":\" + (null !== e.version && void 0 !== e.version ? e.version : \"\"),\n i = r[o];\n i ? i.count = i.count + 1 : r[o] = {\n count: 1,\n key: e.key,\n variation: e.variation,\n version: e.version,\n value: e.value,\n default: e.default\n }, (0 === n || e.creationDate < n) && (n = e.creationDate), e.creationDate > t && (t = e.creationDate);\n }\n }, e.getSummary = function () {\n var e = {},\n o = !0;\n\n for (var i in r) {\n var a = r[i],\n u = e[a.key];\n u || (u = {\n default: a.default,\n counters: []\n }, e[a.key] = u);\n var s = {\n value: a.value,\n count: a.count\n };\n void 0 !== a.variation && null !== a.variation && (s.variation = a.variation), a.version ? s.version = a.version : s.unknown = !0, u.counters.push(s), o = !1;\n }\n\n return o ? null : {\n startDate: n,\n endDate: t,\n features: e\n };\n }, e.clearSummary = function () {\n n = 0, t = 0, r = {};\n }, e;\n}\n\nfunction W(e) {\n var n = {},\n t = e.allAttributesPrivate,\n r = e.privateAttributeNames || [],\n o = {\n key: !0,\n custom: !0,\n anonymous: !0\n },\n i = {\n key: !0,\n secondary: !0,\n ip: !0,\n country: !0,\n email: !0,\n firstName: !0,\n lastName: !0,\n avatar: !0,\n name: !0,\n anonymous: !0,\n custom: !0\n };\n return n.filterUser = function (e) {\n if (!e) return null;\n\n var n = e.privateAttributeNames || [],\n a = function a(e, i) {\n return Object.keys(e).reduce(function (a, u) {\n var s = a;\n return i(u) && (function (e) {\n return !o[e] && (t || -1 !== n.indexOf(e) || -1 !== r.indexOf(e));\n }(u) ? s[1][u] = !0 : s[0][u] = e[u]), s;\n }, [{}, {}]);\n },\n u = a(e, function (e) {\n return i[e];\n }),\n s = u[0],\n c = u[1];\n\n if (e.custom) {\n var l = a(e.custom, function () {\n return !0;\n });\n s.custom = l[0], c = C({}, c, l[1]);\n }\n\n var f = Object.keys(c);\n return f.length && (f.sort(), s.privateAttrs = f), s;\n }, n;\n}\n\nfunction Q(e) {\n return e && e.message ? e.message : \"string\" == typeof e || e instanceof String ? e : JSON.stringify(e);\n}\n\nvar Y = \" Please see https://docs.launchdarkly.com/sdk/client-side/javascript#initializing-the-client for instructions on SDK initialization.\",\n Z = function Z(e) {\n return 'Expected application/json content type but got \"' + e + '\"';\n},\n ee = function ee(e) {\n return \"local storage is unavailable: \" + Q(e);\n},\n ne = function ne(e) {\n return \"network error\" + (e ? \" (\" + e + \")\" : \"\");\n},\n te = function te(e) {\n return 'Custom event \"' + e + '\" does not exist';\n},\n re = function re() {\n return \"Environment not found. Double check that you specified a valid environment/client-side ID.\" + Y;\n},\n oe = function oe() {\n return \"No environment/client-side ID was specified.\" + Y;\n},\n ie = function ie(e) {\n return \"Error fetching flag settings: \" + Q(e);\n},\n ae = function ae() {\n return \"No user specified.\" + Y;\n},\n ue = function ue() {\n return \"Invalid user specified.\" + Y;\n},\n se = function se() {\n return \"LaunchDarkly client was initialized with bootstrap data that did not include flag metadata. Events may not be sent correctly.\" + Y;\n},\n ce = function ce(e, n) {\n return n ? '\"' + e + '\" is deprecated, please use \"' + n + '\"' : '\"' + e + '\" is deprecated';\n},\n le = function le(e, n, t) {\n return \"Received error \" + e + (401 === e ? \" (invalid SDK key)\" : \"\") + \" for \" + n + \" - \" + (v(e) ? t : \"giving up permanently\");\n},\n fe = function fe() {\n return \"Cannot make HTTP requests in this environment.\" + Y;\n},\n de = function de(e) {\n return \"Opening stream connection to \" + e;\n},\n ve = function ve(e, n) {\n return \"Error on stream connection: \" + Q(e) + \", will continue retrying every \" + n + \" milliseconds.\";\n},\n ge = function ge(e) {\n return 'Ignoring unknown config option \"' + e + '\"';\n},\n pe = function pe(e, n, t) {\n return 'Config option \"' + e + '\" should be of type ' + n + \", got \" + t + \", using default value\";\n},\n me = function me(e, n) {\n return 'Config option \"' + e + '\" should be a boolean, got ' + n + \", converting to boolean\";\n},\n he = function he(e, n, t) {\n return 'Config option \"' + e + '\" was set to ' + n + \", changing to minimum value of \" + t;\n},\n ye = function ye(e) {\n return \"polling for feature flags at \" + e;\n},\n we = function we(e) {\n return 'received streaming update for flag \"' + e + '\"';\n},\n be = function be(e) {\n return 'received streaming update for flag \"' + e + '\" but ignored due to version check';\n},\n ke = function ke(e) {\n return 'received streaming deletion for flag \"' + e + '\"';\n},\n Ee = function Ee(e) {\n return 'received streaming deletion for flag \"' + e + '\" but ignored due to version check';\n},\n De = function De(e) {\n return 'enqueueing \"' + e + '\" event';\n},\n Se = function Se(e) {\n return \"sending \" + e + \" events\";\n},\n Oe = Object.freeze({\n __proto__: null,\n clientInitialized: function clientInitialized() {\n return \"LaunchDarkly client initialized\";\n },\n clientNotReady: function clientNotReady() {\n return \"LaunchDarkly client is not ready\";\n },\n eventCapacityExceeded: function eventCapacityExceeded() {\n return \"Exceeded event queue capacity. Increase capacity to avoid dropping events.\";\n },\n eventWithoutUser: function eventWithoutUser() {\n return \"Be sure to call `identify` in the LaunchDarkly client: https://docs.launchdarkly.com/sdk/features/identify#javascript\";\n },\n invalidContentType: Z,\n invalidKey: function invalidKey() {\n return \"Event key must be a string\";\n },\n localStorageUnavailable: ee,\n networkError: ne,\n unknownCustomEventKey: te,\n environmentNotFound: re,\n environmentNotSpecified: oe,\n errorFetchingFlags: ie,\n userNotSpecified: ae,\n invalidUser: ue,\n invalidData: function invalidData() {\n return \"Invalid data received from LaunchDarkly; connection may have been interrupted\";\n },\n bootstrapOldFormat: se,\n bootstrapInvalid: function bootstrapInvalid() {\n return \"LaunchDarkly bootstrap data is not available because the back end could not read the flags.\";\n },\n deprecated: ce,\n httpErrorMessage: le,\n httpUnavailable: fe,\n identifyDisabled: function identifyDisabled() {\n return \"identify() has no effect here; it must be called on the main client instance\";\n },\n streamClosing: function streamClosing() {\n return \"Closing stream connection\";\n },\n streamConnecting: de,\n streamError: ve,\n unknownOption: ge,\n wrongOptionType: pe,\n wrongOptionTypeBoolean: me,\n optionBelowMinimum: he,\n debugPolling: ye,\n debugStreamPing: function debugStreamPing() {\n return \"received ping message from stream\";\n },\n debugStreamPut: function debugStreamPut() {\n return \"received streaming update for all flags\";\n },\n debugStreamPatch: we,\n debugStreamPatchIgnored: be,\n debugStreamDelete: ke,\n debugStreamDeleteIgnored: Ee,\n debugEnqueueingEvent: De,\n debugPostingEvents: Se,\n debugPostingDiagnosticEvent: function debugPostingDiagnosticEvent(e) {\n return \"sending diagnostic event (\" + e.kind + \")\";\n }\n});\n\nfunction Pe(e, n, t, r) {\n var o = {};\n\n function i() {\n var e = \"\",\n o = r.getUser();\n return o && (e = t || O(JSON.stringify(o))), \"ld:\" + n + \":\" + e;\n }\n\n return o.loadFlags = function () {\n return e.get(i()).then(function (e) {\n if (null == e) return null;\n\n try {\n var n = JSON.parse(e);\n\n if (n) {\n var t = n.$schema;\n void 0 === t || t < 1 ? n = T(n) : delete n.$schema;\n }\n\n return n;\n } catch (e) {\n return o.clearFlags().then(function () {\n return null;\n });\n }\n });\n }, o.saveFlags = function (n) {\n var t = C({}, n, {\n $schema: 1\n });\n return e.set(i(), JSON.stringify(t));\n }, o.clearFlags = function () {\n return e.clear(i());\n }, o;\n}\n\nfunction Ue(e, n, t, r) {\n var o,\n i = n.streamUrl,\n a = n.logger,\n u = {},\n s = i + \"/eval/\" + t,\n c = n.useReport,\n l = n.evaluationReasons,\n f = n.streamReconnectDelay,\n d = F(e, n),\n v = !1,\n g = null,\n p = null,\n m = null,\n h = null,\n y = null;\n\n function w(e) {\n v || (a.warn(ve(e, f)), v = !0), D(!1), E(), b(f);\n }\n\n function b(e) {\n p || (e ? p = setTimeout(k, e) : k());\n }\n\n function k() {\n var r;\n p = null;\n var u = \"\",\n f = {\n headers: d,\n readTimeoutMillis: 3e5\n };\n\n if (e.eventSourceFactory) {\n for (var v in null != h && (u = \"h=\" + h), c ? e.eventSourceAllowsReport ? (r = s, f.method = \"REPORT\", f.headers[\"Content-Type\"] = \"application/json\", f.body = JSON.stringify(m)) : (r = i + \"/ping/\" + t, u = \"\") : r = s + \"/\" + P(JSON.stringify(m)), f.headers = A(f.headers, n), l && (u = u + (u ? \"&\" : \"\") + \"withReasons=true\"), r = r + (u ? \"?\" : \"\") + u, E(), a.info(de(r)), o = new Date().getTime(), g = e.eventSourceFactory(r, f), y) {\n q(y, v) && g.addEventListener(v, y[v]);\n }\n\n g.onerror = w;\n }\n }\n\n function E() {\n g && (a.info(\"Closing stream connection\"), g.close(), g = null);\n }\n\n function D(e) {\n o && r && r.recordStreamInit(o, !e, new Date().getTime() - o), o = null;\n }\n\n return u.connect = function (e, n, t) {\n m = e, h = n, y = {};\n\n var r = function r(e) {\n y[e] = function (n) {\n v = !1, D(!0), t[e] && t[e](n);\n };\n };\n\n for (var o in t || {}) {\n r(o);\n }\n\n b();\n }, u.disconnect = function () {\n clearTimeout(p), p = null, E();\n }, u.isConnected = function () {\n return !!(g && e.eventSourceIsActive && e.eventSourceIsActive(g));\n }, u;\n}\n\nfunction Re(e, n, t) {\n var r = n.baseUrl,\n o = n.useReport,\n i = n.evaluationReasons,\n a = n.logger,\n s = {},\n c = {};\n\n function l(t, r) {\n if (!e.httpRequest) return new Promise(function (e, n) {\n n(new f(fe()));\n });\n var o = r ? \"REPORT\" : \"GET\",\n i = F(e, n);\n r && (i[\"Content-Type\"] = \"application/json\");\n var a = c[t];\n a || (a = function (e) {\n var n,\n t,\n r,\n o,\n i = {\n addPromise: function addPromise(i, a) {\n n = i, t && t(), t = a, i.then(function (t) {\n n === i && (r(t), e && e());\n }, function (t) {\n n === i && (o(t), e && e());\n });\n }\n };\n return i.resultPromise = new Promise(function (e, n) {\n r = e, o = n;\n }), i;\n }(function () {\n delete c[t];\n }), c[t] = a);\n var s = e.httpRequest(o, t, A(i, n), r),\n l = s.promise.then(function (e) {\n if (200 === e.status) {\n if (e.header(\"content-type\") && \"application/json\" === e.header(\"content-type\").substring(0, \"application/json\".length)) return JSON.parse(e.body);\n var n = Z(e.header(\"content-type\") || \"\");\n return Promise.reject(new f(n));\n }\n\n return Promise.reject(function (e) {\n return 404 === e.status ? new u(re()) : new f(ie(e.statusText || String(e.status)));\n }(e));\n }, function (e) {\n return Promise.reject(new f(ne(e)));\n });\n return a.addPromise(l, function () {\n s.cancel && s.cancel();\n }), a.resultPromise;\n }\n\n return s.fetchJSON = function (e) {\n return l(r + e, null);\n }, s.fetchFlagSettings = function (e, n) {\n var u,\n s,\n c,\n f = \"\";\n return o ? (s = [r, \"/sdk/evalx/\", t, \"/user\"].join(\"\"), c = JSON.stringify(e)) : (u = P(JSON.stringify(e)), s = [r, \"/sdk/evalx/\", t, \"/users/\", u].join(\"\")), n && (f = \"h=\" + n), i && (f = f + (f ? \"&\" : \"\") + \"withReasons=true\"), s = s + (f ? \"?\" : \"\") + f, a.debug(ye(s)), l(s, c);\n }, s;\n}\n\nfunction je(e) {\n var n = {\n validateUser: function validateUser(n) {\n if (!n) return Promise.reject(new s(ae()));\n var t = U(n);\n return null !== t.key && void 0 !== t.key ? (t.key = t.key.toString(), Promise.resolve(t)) : t.anonymous ? e.get(\"ld:$anonUserId\").then(function (n) {\n if (n) return t.key = n, t;\n var r = B();\n return t.key = r, function (n) {\n return e.set(\"ld:$anonUserId\", n);\n }(r).then(function () {\n return t;\n });\n }) : Promise.reject(new s(ue()));\n }\n };\n return n;\n}\n\nvar Ie = [\"debug\", \"info\", \"warn\", \"error\", \"none\"];\n\nfunction Te(e, n) {\n return function (e, n) {\n if (e && e.destination && \"function\" != typeof e.destination) throw new Error(\"destination for basicLogger was set to a non-function\");\n\n function t(e) {\n return function (n) {\n console && console[e] && console[e].call(console, n);\n };\n }\n\n var r = e && e.destination ? [e.destination, e.destination, e.destination, e.destination] : [t(\"log\"), t(\"info\"), t(\"warn\"), t(\"error\")],\n i = !(!e || !e.destination),\n a = e && void 0 !== e.prefix && null !== e.prefix ? e.prefix : \"[LaunchDarkly] \",\n u = 1;\n if (e && e.level) for (var s = 0; s < Ie.length; s++) {\n Ie[s] === e.level && (u = s);\n }\n\n function c(e, t, u) {\n if (!(u.length < 1)) {\n var s,\n c = i ? t + \": \" + a : a;\n\n if (1 !== u.length && n) {\n var l = o(u);\n l[0] = c + l[0], s = n.apply(void 0, o(l));\n } else s = c + u[0];\n\n try {\n r[e](s);\n } catch (e) {\n console && console.log && console.log(\"[LaunchDarkly] Configured logger's \" + t + \" method threw an exception: \" + e);\n }\n }\n }\n\n for (var l = {}, f = function f(e) {\n var n = Ie[e];\n if (\"none\" !== n) if (e < u) l[n] = function () {};else {\n var t = e;\n\n l[n] = function () {\n c(t, n, arguments);\n };\n }\n }, d = 0; d < Ie.length; d++) {\n f(d);\n }\n\n return l;\n }({\n level: e,\n prefix: n\n });\n}\n\nvar Le = {\n baseUrl: {\n default: \"https://app.launchdarkly.com\"\n },\n streamUrl: {\n default: \"https://clientstream.launchdarkly.com\"\n },\n eventsUrl: {\n default: \"https://events.launchdarkly.com\"\n },\n sendEvents: {\n default: !0\n },\n streaming: {\n type: \"boolean\"\n },\n sendLDHeaders: {\n default: !0\n },\n requestHeaderTransform: {\n type: \"function\"\n },\n inlineUsersInEvents: {\n default: !1\n },\n allowFrequentDuplicateEvents: {\n default: !1\n },\n sendEventsOnlyForVariation: {\n default: !1\n },\n useReport: {\n default: !1\n },\n evaluationReasons: {\n default: !1\n },\n eventCapacity: {\n default: 100,\n minimum: 1\n },\n flushInterval: {\n default: 2e3,\n minimum: 2e3\n },\n samplingInterval: {\n default: 0,\n minimum: 0\n },\n streamReconnectDelay: {\n default: 1e3,\n minimum: 0\n },\n allAttributesPrivate: {\n default: !1\n },\n privateAttributeNames: {\n default: []\n },\n bootstrap: {\n type: \"string|object\"\n },\n diagnosticRecordingInterval: {\n default: 9e5,\n minimum: 2e3\n },\n diagnosticOptOut: {\n default: !1\n },\n wrapperName: {\n type: \"string\"\n },\n wrapperVersion: {\n type: \"string\"\n },\n stateProvider: {\n type: \"object\"\n },\n autoAliasingOptOut: {\n default: !1\n }\n};\n\nfunction Ne(n, t, r, o) {\n var i = C({\n logger: {\n default: o\n }\n }, Le, r),\n a = {\n all_attributes_private: \"allAttributesPrivate\",\n private_attribute_names: \"privateAttributeNames\",\n samplingInterval: null\n };\n\n function u(e) {\n j(function () {\n t && t.maybeReportError(new l(e));\n });\n }\n\n var s = C({}, n || {});\n return function (e) {\n var n = e;\n Object.keys(a).forEach(function (e) {\n if (void 0 !== n[e]) {\n var t = a[e];\n o && o.warn(ce(e, t)), t && (void 0 === n[t] && (n[t] = n[e]), delete n[e]);\n }\n });\n }(s), function (e) {\n Ie.forEach(function (n) {\n if (\"none\" !== n && (!e[n] || \"function\" != typeof e[n])) throw new Error(\"Provided logger instance must support logger.\" + n + \"(...) method\");\n });\n }((s = function (n) {\n var t = C({}, n),\n r = function r(n) {\n if (null === n) return \"any\";\n\n if (void 0 !== n) {\n if (Array.isArray(n)) return \"array\";\n var t = e(n);\n return \"boolean\" === t || \"string\" === t || \"number\" === t || \"function\" === t ? t : \"object\";\n }\n };\n\n return Object.keys(n).forEach(function (e) {\n var o = n[e];\n\n if (null != o) {\n var a = i[e];\n if (void 0 === a) u(ge(e));else {\n var s = a.type || r(a.default);\n\n if (\"any\" !== s) {\n var c = s.split(\"|\"),\n l = r(o);\n c.indexOf(l) < 0 ? \"boolean\" === s ? (t[e] = !!o, u(me(e, l))) : (u(pe(e, s, l)), t[e] = a.default) : \"number\" === l && void 0 !== a.minimum && o < a.minimum && (u(he(e, o, a.minimum)), t[e] = a.minimum);\n }\n }\n }\n }), t;\n }(s = function (e) {\n var n = C({}, e);\n return Object.keys(i).forEach(function (e) {\n void 0 !== n[e] && null !== n[e] || (n[e] = i[e] && i[e].default);\n }), n;\n }(s))).logger), s;\n}\n\nvar xe = Object.freeze({\n __proto__: null,\n baseOptionDefs: Le,\n validate: Ne\n}).baseOptionDefs,\n Fe = function Fe(e) {\n var n = {\n diagnosticId: B()\n };\n return e && (n.sdkKeySuffix = e.length > 6 ? e.substring(e.length - 6) : e), n;\n};\n\nfunction Ae(n, t, o, i, s) {\n var l,\n g,\n p,\n m = o && o.logger ? o.logger : s && s.logger && s.logger.default || Te(\"warn\"),\n h = function (e) {\n var n = {},\n t = {};\n return n.on = function (e, n, r) {\n t[e] = t[e] || [], t[e] = t[e].concat({\n handler: n,\n context: r\n });\n }, n.off = function (e, n, r) {\n if (t[e]) for (var o = 0; o < t[e].length; o++) {\n t[e][o].handler === n && t[e][o].context === r && (t[e] = t[e].slice(0, o).concat(t[e].slice(o + 1)));\n }\n }, n.emit = function (e) {\n if (t[e]) for (var n = t[e].slice(0), r = 0; r < n.length; r++) {\n n[r].handler.apply(n[r].context, Array.prototype.slice.call(arguments, 1));\n }\n }, n.getEvents = function () {\n return Object.keys(t);\n }, n.getEventListenerCount = function (e) {\n return t[e] ? t[e].length : 0;\n }, n.maybeReportError = function (n) {\n n && (t.error ? this.emit(\"error\", n) : (e || console).error(n.message));\n }, n;\n }(m),\n y = function (e) {\n var n = !1,\n t = !1,\n r = null,\n o = null,\n i = new Promise(function (n) {\n e.on(\"ready\", function t() {\n e.off(\"ready\", t), n();\n });\n }).catch(function () {});\n return {\n getInitializationPromise: function getInitializationPromise() {\n return o || (n ? Promise.resolve() : t ? Promise.reject(r) : o = new Promise(function (n, t) {\n e.on(\"initialized\", function t() {\n e.off(\"initialized\", t), n();\n }), e.on(\"failed\", function n(r) {\n e.off(\"failed\", n), t(r);\n });\n }));\n },\n getReadyPromise: function getReadyPromise() {\n return i;\n },\n signalSuccess: function signalSuccess() {\n n || t || (n = !0, e.emit(\"initialized\"), e.emit(\"ready\"));\n },\n signalFailure: function signalFailure(o) {\n n || t || (t = !0, r = o, e.emit(\"failed\", o), e.emit(\"ready\")), e.maybeReportError(o);\n }\n };\n }(h),\n w = Ne(o, h, s, m),\n b = w.sendEvents,\n k = n,\n E = w.hash,\n D = function (e, n) {\n var t = {},\n r = !1,\n o = function o(e) {\n r || (r = !0, n.warn(ee(e)));\n };\n\n return t.isEnabled = function () {\n return !!e;\n }, t.get = function (n) {\n return new Promise(function (t) {\n e ? e.get(n).then(t).catch(function (e) {\n o(e), t(void 0);\n }) : t(void 0);\n });\n }, t.set = function (n, t) {\n return new Promise(function (r) {\n e ? e.set(n, t).then(function () {\n return r(!0);\n }).catch(function (e) {\n o(e), r(!1);\n }) : r(!1);\n });\n }, t.clear = function (n) {\n return new Promise(function (t) {\n e ? e.clear(n).then(function () {\n return t(!0);\n }).catch(function (e) {\n o(e), t(!1);\n }) : t(!1);\n });\n }, t;\n }(i.localStorage, m),\n S = G(i, k, w),\n O = w.sendEvents && !w.diagnosticOptOut,\n P = O ? Fe(k) : null,\n T = O ? function (e) {\n var n, t, r, o;\n\n function i(e) {\n n = e, t = 0, r = 0, o = [];\n }\n\n return i(e), {\n getProps: function getProps() {\n return {\n dataSinceDate: n,\n droppedEvents: t,\n eventsInLastBatch: r,\n streamInits: o\n };\n },\n setProps: function setProps(e) {\n n = e.dataSinceDate, t = e.droppedEvents || 0, r = e.eventsInLastBatch || 0, o = e.streamInits || [];\n },\n incrementDroppedEvents: function incrementDroppedEvents() {\n t++;\n },\n setEventsInLastBatch: function setEventsInLastBatch(e) {\n r = e;\n },\n recordStreamInit: function recordStreamInit(e, n, t) {\n var r = {\n timestamp: e,\n failed: n,\n durationMillis: t\n };\n o.push(r);\n },\n reset: i\n };\n }(new Date().getTime()) : null,\n N = O ? function (e, n, t, o, i, a, u) {\n var s,\n c,\n l = !!e.diagnosticUseCombinedEvent,\n f = \"ld:\" + i + \":$diagnostics\",\n d = a.eventsUrl + \"/events/diagnostic/\" + i,\n v = a.diagnosticRecordingInterval,\n g = t,\n p = !!a.streaming,\n m = {};\n\n function h() {\n return {\n sdk: b(),\n configuration: (n = {\n customBaseURI: a.baseUrl !== xe.baseUrl.default,\n customStreamURI: a.streamUrl !== xe.streamUrl.default,\n customEventsURI: a.eventsUrl !== xe.eventsUrl.default,\n eventsCapacity: a.eventCapacity,\n eventsFlushIntervalMillis: a.flushInterval,\n reconnectTimeMillis: a.streamReconnectDelay,\n streamingDisabled: !p,\n allAttributesPrivate: !!a.allAttributesPrivate,\n inlineUsersInEvents: !!a.inlineUsersInEvents,\n diagnosticRecordingIntervalMillis: a.diagnosticRecordingInterval,\n usingSecureMode: !!a.hash,\n bootstrapMode: !!a.bootstrap,\n fetchGoalsDisabled: !a.fetchGoals,\n allowFrequentDuplicateEvents: !!a.allowFrequentDuplicateEvents,\n sendEventsOnlyForVariation: !!a.sendEventsOnlyForVariation,\n autoAliasingOptOut: !!a.autoAliasingOptOut\n }, n),\n platform: e.diagnosticPlatformData\n };\n var n;\n }\n\n function y(e) {\n a.logger && a.logger.debug(Oe.debugPostingDiagnosticEvent(e)), o.sendEvents(e, d, !0).then(function () {}).catch(function () {});\n }\n\n function w() {\n var e, t;\n y((e = new Date().getTime(), t = r({\n kind: l ? \"diagnostic-combined\" : \"diagnostic\",\n id: u,\n creationDate: e\n }, g.getProps()), l && (t = r({}, t, {}, h())), g.reset(e), t)), c = setTimeout(w, v), s = new Date().getTime(), l && function () {\n if (n.isEnabled()) {\n var e = r({}, g.getProps());\n n.set(f, JSON.stringify(e));\n }\n }();\n }\n\n function b() {\n var n = r({}, e.diagnosticSdkData);\n return a.wrapperName && (n.wrapperName = a.wrapperName), a.wrapperVersion && (n.wrapperVersion = a.wrapperVersion), n;\n }\n\n return m.start = function () {\n l ? function (e) {\n if (!n.isEnabled()) return e(!1);\n n.get(f).then(function (n) {\n if (n) try {\n var t = JSON.parse(n);\n g.setProps(t), s = t.dataSinceDate;\n } catch (e) {}\n e(!0);\n }).catch(function () {\n e(!1);\n });\n }(function (e) {\n if (e) {\n var n = (s || 0) + v,\n t = new Date().getTime();\n t >= n ? w() : c = setTimeout(w, n - t);\n } else 0 === Math.floor(4 * Math.random()) ? w() : c = setTimeout(w, v);\n }) : (y(r({\n kind: \"diagnostic-init\",\n id: u,\n creationDate: g.getProps().dataSinceDate\n }, h())), c = setTimeout(w, v));\n }, m.stop = function () {\n c && clearTimeout(c);\n }, m.setStreaming = function (e) {\n p = e;\n }, m;\n }(i, D, T, S, k, w, P) : null,\n x = Ue(i, w, k, T),\n F = w.eventProcessor || function (e, n, t) {\n var r,\n o = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : null,\n i = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : null,\n u = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : null,\n s = {},\n c = u || G(e, t, n),\n l = n.eventsUrl + \"/events/bulk/\" + t,\n f = X(),\n d = W(n),\n g = n.inlineUsersInEvents,\n p = n.samplingInterval,\n m = n.eventCapacity,\n h = n.flushInterval,\n y = n.logger,\n w = [],\n b = 0,\n k = !1,\n E = !1;\n\n function D() {\n return 0 === p || 0 === Math.floor(Math.random() * p);\n }\n\n function S(e) {\n return !!e.debugEventsUntilDate && e.debugEventsUntilDate > b && e.debugEventsUntilDate > new Date().getTime();\n }\n\n function O(e) {\n var n = C({}, e);\n return \"alias\" === e.kind || (g || \"identify\" === e.kind ? n.user = d.filterUser(e.user) : (n.userKey = e.user.key, delete n.user), \"feature\" === e.kind && (delete n.trackEvents, delete n.debugEventsUntilDate)), n;\n }\n\n function P(e) {\n w.length < m ? (w.push(e), E = !1) : (E || (E = !0, y.warn(\"Exceeded event queue capacity. Increase capacity to avoid dropping events.\")), o && o.incrementDroppedEvents());\n }\n\n return s.enqueue = function (e) {\n if (!k) {\n var n = !1,\n t = !1;\n\n if (f.summarizeEvent(e), \"feature\" === e.kind ? D() && (n = !!e.trackEvents, t = S(e)) : n = D(), n && P(O(e)), t) {\n var r = C({}, e, {\n kind: \"debug\"\n });\n r.user = d.filterUser(r.user), delete r.trackEvents, delete r.debugEventsUntilDate, P(r);\n }\n }\n }, s.flush = function () {\n if (k) return Promise.resolve();\n var e = w,\n n = f.getSummary();\n return f.clearSummary(), n && (n.kind = \"summary\", e.push(n)), o && o.setEventsInLastBatch(e.length), 0 === e.length ? Promise.resolve() : (w = [], y.debug(Se(e.length)), c.sendEvents(e, l).then(function (e) {\n e && (e.serverTime && (b = e.serverTime), v(e.status) || (k = !0), e.status >= 400 && j(function () {\n i.maybeReportError(new a(le(e.status, \"event posting\", \"some events were dropped\")));\n }));\n }));\n }, s.start = function () {\n r = setTimeout(function e() {\n s.flush(), r = setTimeout(e, h);\n }, h);\n }, s.stop = function () {\n clearTimeout(r);\n }, s;\n }(i, w, k, T, h, S),\n A = Re(i, w, k),\n _ = {},\n J = {},\n z = w.streaming,\n M = !1,\n H = !1,\n K = !0,\n $ = w.stateProvider,\n B = function (e, n) {\n var t,\n r = {\n setUser: function setUser(e) {\n var r = t && U(t);\n (t = V(e)) && n && n(U(t), r);\n },\n getUser: function getUser() {\n return t ? U(t) : null;\n }\n };\n return r;\n }(0, function (e, n) {\n (function (e) {\n $ || e && Z({\n kind: \"identify\",\n key: e.key,\n user: e,\n creationDate: new Date().getTime()\n });\n })(e), !w.autoAliasingOptOut && n && n.anonymous && e && !e.anonymous && ce(e, n);\n }),\n Q = je(D),\n Y = D.isEnabled() ? new Pe(D, k, E, B, m) : null;\n\n function Z(e) {\n if (k && !($ && $.enqueueEvent && $.enqueueEvent(e))) {\n if (\"alias\" !== e.kind) {\n if (!e.user) return void (K && (m.warn(\"Be sure to call `identify` in the LaunchDarkly client: https://docs.launchdarkly.com/sdk/features/identify#javascript\"), K = !1));\n K = !1;\n }\n\n !b || H || i.isDoNotTrack() || (m.debug(De(e.kind)), F.enqueue(e));\n }\n }\n\n function ne(e, n, t, r) {\n var o = B.getUser(),\n i = new Date(),\n a = n ? n.value : null;\n\n if (!w.allowFrequentDuplicateEvents) {\n var u = JSON.stringify(a) + (o && o.key ? o.key : \"\") + e,\n s = _[u];\n if (s && i - s < 3e5) return;\n _[u] = i;\n }\n\n var c = {\n kind: \"feature\",\n key: e,\n user: o,\n value: a,\n variation: n ? n.variationIndex : null,\n default: t,\n creationDate: i.getTime()\n };\n o && o.anonymous && (c.contextKind = ue(o));\n var l = J[e];\n l && (c.version = l.flagVersion ? l.flagVersion : l.version, c.trackEvents = l.trackEvents, c.debugEventsUntilDate = l.debugEventsUntilDate), (r || l && l.trackReason) && n && (c.reason = n.reason), Z(c);\n }\n\n function re(e, n, t, r) {\n var o;\n\n if (J && q(J, e) && J[e] && !J[e].deleted) {\n var i = J[e];\n o = ae(i), null !== i.value && void 0 !== i.value || (o.value = n);\n } else o = {\n value: n,\n variationIndex: null,\n reason: {\n kind: \"ERROR\",\n errorKind: \"FLAG_NOT_FOUND\"\n }\n };\n\n return t && ne(e, o, n, r), o;\n }\n\n function ae(e) {\n return {\n value: e.value,\n variationIndex: void 0 === e.variation ? null : e.variation,\n reason: e.reason || null\n };\n }\n\n function ue(e) {\n return e.anonymous ? \"anonymousUser\" : \"user\";\n }\n\n function ce(e, n) {\n $ || e && n && Z({\n kind: \"alias\",\n key: e.key,\n contextKind: ue(e),\n previousKey: n.key,\n previousContextKind: ue(n),\n creationDate: new Date().getTime()\n });\n }\n\n function fe() {\n if (g = !0, B.getUser()) {\n var e = function e(_e2) {\n try {\n return JSON.parse(_e2);\n } catch (e) {\n return void h.maybeReportError(new d(\"Invalid data received from LaunchDarkly; connection may have been interrupted\"));\n }\n };\n\n x.connect(B.getUser(), E, {\n ping: function ping() {\n m.debug(\"received ping message from stream\");\n var e = B.getUser();\n A.fetchFlagSettings(e, E).then(function (n) {\n R(e, B.getUser()) && ve(n || {});\n }).catch(function (e) {\n h.maybeReportError(new f(ie(e)));\n });\n },\n put: function put(n) {\n var t = e(n.data);\n t && (m.debug(\"received streaming update for all flags\"), ve(t));\n },\n patch: function patch(n) {\n var t = e(n.data);\n\n if (t) {\n var r = J[t.key];\n\n if (!r || !r.version || !t.version || r.version < t.version) {\n m.debug(we(t.key));\n var o = {},\n i = C({}, t);\n delete i.key, J[t.key] = i;\n var a = ae(i);\n o[t.key] = r ? {\n previous: r.value,\n current: a\n } : {\n current: a\n }, ge(o);\n } else m.debug(be(t.key));\n }\n },\n delete: function _delete(n) {\n var t = e(n.data);\n if (t) if (!J[t.key] || J[t.key].version < t.version) {\n m.debug(ke(t.key));\n var r = {};\n J[t.key] && !J[t.key].deleted && (r[t.key] = {\n previous: J[t.key].value\n }), J[t.key] = {\n version: t.version,\n deleted: !0\n }, ge(r);\n } else m.debug(Ee(t.key));\n }\n });\n }\n }\n\n function de() {\n g && (x.disconnect(), g = !1);\n }\n\n function ve(e) {\n var n = {};\n if (!e) return Promise.resolve();\n\n for (var t in J) {\n q(J, t) && J[t] && (e[t] && !R(e[t].value, J[t].value) ? n[t] = {\n previous: J[t].value,\n current: ae(e[t])\n } : e[t] && !e[t].deleted || (n[t] = {\n previous: J[t].value\n }));\n }\n\n for (var o in e) {\n q(e, o) && e[o] && (!J[o] || J[o].deleted) && (n[o] = {\n current: ae(e[o])\n });\n }\n\n return J = r({}, e), ge(n).catch(function () {});\n }\n\n function ge(e) {\n var n = Object.keys(e);\n\n if (n.length > 0) {\n var t = {};\n n.forEach(function (n) {\n var r = e[n].current,\n o = r ? r.value : void 0,\n i = e[n].previous;\n h.emit(\"change:\" + n, o, i), t[n] = r ? {\n current: o,\n previous: i\n } : {\n previous: i\n };\n }), h.emit(\"change\", t), h.emit(\"internal-change\", J), w.sendEventsOnlyForVariation || $ || n.forEach(function (n) {\n ne(n, e[n].current);\n });\n }\n\n return l && Y ? Y.saveFlags(J) : Promise.resolve();\n }\n\n function pe() {\n var e = z || p && void 0 === z;\n e && !g ? fe() : !e && g && de(), N && N.setStreaming(e);\n }\n\n function me(e) {\n return \"change\" === e || \"change:\" === e.substr(0, \"change\".length + 1);\n }\n\n if (\"string\" == typeof w.bootstrap && \"LOCALSTORAGE\" === w.bootstrap.toUpperCase() && (Y ? l = !0 : m.warn(ee())), \"object\" === e(w.bootstrap) && (J = function (e) {\n var n = Object.keys(e),\n t = e.$flagsState;\n !t && n.length && m.warn(se()), !1 === e.$valid && m.warn(\"LaunchDarkly bootstrap data is not available because the back end could not read the flags.\");\n var r = {};\n return n.forEach(function (n) {\n if (\"$flagsState\" !== n && \"$valid\" !== n) {\n var o = {\n value: e[n]\n };\n t && t[n] ? o = C(o, t[n]) : o.version = 0, r[n] = o;\n }\n }), r;\n }(w.bootstrap)), $) {\n var he = $.getInitialState();\n he ? ye(he) : $.on(\"init\", ye), $.on(\"update\", function (e) {\n e.user && B.setUser(e.user), e.flags && ve(e.flags);\n });\n } else (n ? Q.validateUser(t).then(function (n) {\n return B.setUser(n), \"object\" === e(w.bootstrap) ? Ie() : l ? Y.loadFlags().then(function (e) {\n return null == e ? (J = {}, A.fetchFlagSettings(B.getUser(), E).then(function (e) {\n return ve(e || {});\n }).then(Ie).catch(function (e) {\n Le(new f(ie(e)));\n })) : (J = e, j(Ie), A.fetchFlagSettings(B.getUser(), E).then(function (e) {\n return ve(e);\n }).catch(function (e) {\n return h.maybeReportError(e);\n }));\n }) : A.fetchFlagSettings(B.getUser(), E).then(function (e) {\n J = e || {}, Ie();\n }).catch(function (e) {\n J = {}, Le(e);\n });\n }) : Promise.reject(new u(oe()))).catch(Le);\n\n function ye(e) {\n k = e.environment, B.setUser(e.user), J = r({}, e.flags), j(Ie);\n }\n\n function Ie() {\n m.info(\"LaunchDarkly client initialized\"), M = !0, pe(), y.signalSuccess();\n }\n\n function Le(e) {\n y.signalFailure(e);\n }\n\n return {\n client: {\n waitForInitialization: function waitForInitialization() {\n return y.getInitializationPromise();\n },\n waitUntilReady: function waitUntilReady() {\n return y.getReadyPromise();\n },\n identify: function identify(e, n, t) {\n return H ? I(Promise.resolve({}), t) : $ ? (m.warn(\"identify() has no effect here; it must be called on the main client instance\"), I(Promise.resolve(L(J)), t)) : I((l && Y ? Y.clearFlags() : Promise.resolve()).then(function () {\n return Q.validateUser(e);\n }).then(function (e) {\n return A.fetchFlagSettings(e, n).then(function (t) {\n var r = L(t);\n return B.setUser(e), E = n, t ? ve(t).then(function () {\n return r;\n }) : r;\n });\n }).then(function (e) {\n return g && fe(), e;\n }).catch(function (e) {\n return h.maybeReportError(e), Promise.reject(e);\n }), t);\n },\n getUser: function getUser() {\n return B.getUser();\n },\n variation: function variation(e, n) {\n return re(e, n, !0, !1).value;\n },\n variationDetail: function variationDetail(e, n) {\n return re(e, n, !0, !0);\n },\n track: function track(e, n, t) {\n if (\"string\" == typeof e) {\n i.customEventFilter && !i.customEventFilter(e) && m.warn(te(e));\n var r = B.getUser(),\n o = {\n kind: \"custom\",\n key: e,\n user: r,\n url: i.getCurrentUrl(),\n creationDate: new Date().getTime()\n };\n r && r.anonymous && (o.contextKind = ue(r)), null != n && (o.data = n), null != t && (o.metricValue = t), Z(o);\n } else h.maybeReportError(new c(te(e)));\n },\n alias: ce,\n on: function on(e, n, t) {\n me(e) ? (p = !0, M && pe(), h.on(e, n, t)) : h.on.apply(h, arguments);\n },\n off: function off(e) {\n if (h.off.apply(h, arguments), me(e)) {\n var n = !1;\n h.getEvents().forEach(function (e) {\n me(e) && h.getEventListenerCount(e) > 0 && (n = !0);\n }), n || (p = !1, g && void 0 === z && de());\n }\n },\n setStreaming: function setStreaming(e) {\n var n = null === e ? void 0 : e;\n n !== z && (z = n, pe());\n },\n flush: function flush(e) {\n return I(b ? F.flush() : Promise.resolve(), e);\n },\n allFlags: function allFlags() {\n var e = {};\n if (!J) return e;\n\n for (var n in J) {\n q(J, n) && (e[n] = re(n, null, !w.sendEventsOnlyForVariation).value);\n }\n\n return e;\n },\n close: function close(e) {\n if (H) return I(Promise.resolve(), e);\n\n var n = function n() {\n H = !0, J = {};\n };\n\n return I(Promise.resolve().then(function () {\n if (de(), N && N.stop(), b) return F.stop(), F.flush();\n }).then(n).catch(n), e);\n }\n },\n options: w,\n emitter: h,\n ident: B,\n logger: m,\n requestor: A,\n start: function start() {\n b && (N && N.start(), F.start());\n },\n enqueueEvent: Z,\n getFlagsInternal: function getFlagsInternal() {\n return J;\n },\n getEnvironmentId: function getEnvironmentId() {\n return k;\n },\n internalChangeEventName: \"internal-change\"\n };\n}\n\nfunction Ce(e, n, t) {\n return n in e ? Object.defineProperty(e, n, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[n] = t, e;\n}\n\nfunction qe(e, n) {\n var t = Object.keys(e);\n\n if (Object.getOwnPropertySymbols) {\n var r = Object.getOwnPropertySymbols(e);\n n && (r = r.filter(function (n) {\n return Object.getOwnPropertyDescriptor(e, n).enumerable;\n })), t.push.apply(t, r);\n }\n\n return t;\n}\n\nfunction Ve(e) {\n for (var n = 1; n < arguments.length; n++) {\n var t = null != arguments[n] ? arguments[n] : {};\n n % 2 ? qe(Object(t), !0).forEach(function (n) {\n Ce(e, n, t[n]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : qe(Object(t)).forEach(function (n) {\n Object.defineProperty(e, n, Object.getOwnPropertyDescriptor(t, n));\n });\n }\n\n return e;\n}\n\nvar _e = {\n promise: Promise.resolve({\n status: 200,\n header: function header() {\n return null;\n },\n body: null\n })\n};\n\nfunction Je(e, n, t, r, o) {\n if (o && !function () {\n var e = window.navigator && window.navigator.userAgent;\n\n if (e) {\n var n = e.match(/Chrom(e|ium)\\/([0-9]+)\\./);\n if (n) return parseInt(n[2], 10) < 73;\n }\n\n return !0;\n }()) return _e;\n var i = new window.XMLHttpRequest();\n\n for (var a in i.open(e, n, !o), t || {}) {\n Object.prototype.hasOwnProperty.call(t, a) && i.setRequestHeader(a, t[a]);\n }\n\n if (o) return i.send(r), _e;\n var u;\n return {\n promise: new Promise(function (e, n) {\n i.addEventListener(\"load\", function () {\n u || e({\n status: i.status,\n header: function header(e) {\n return i.getResponseHeader(e);\n },\n body: i.responseText\n });\n }), i.addEventListener(\"error\", function () {\n u || n(new Error());\n }), i.send(r);\n }),\n cancel: function cancel() {\n u = !0, i.abort();\n }\n };\n}\n\nfunction ze(e) {\n var n,\n t = {\n synchronousFlush: !1\n };\n\n if (window.XMLHttpRequest) {\n var r = e && e.disableSyncEventPost;\n\n t.httpRequest = function (e, n, o, i) {\n var a = t.synchronousFlush & !r;\n return t.synchronousFlush = !1, Je(e, n, o, i, a);\n };\n }\n\n t.httpAllowsPost = function () {\n return void 0 === n && (n = !!window.XMLHttpRequest && \"withCredentials\" in new window.XMLHttpRequest()), n;\n }, t.httpFallbackPing = function (e) {\n new window.Image().src = e;\n };\n var o,\n i = e && e.eventUrlTransformer;\n t.getCurrentUrl = function () {\n return i ? i(window.location.href) : window.location.href;\n }, t.isDoNotTrack = function () {\n var e;\n return 1 === (e = window.navigator && void 0 !== window.navigator.doNotTrack ? window.navigator.doNotTrack : window.navigator && void 0 !== window.navigator.msDoNotTrack ? window.navigator.msDoNotTrack : window.doNotTrack) || !0 === e || \"1\" === e || \"yes\" === e;\n };\n\n try {\n window.localStorage && (t.localStorage = {\n get: function get(e) {\n return new Promise(function (n) {\n n(window.localStorage.getItem(e));\n });\n },\n set: function set(e, n) {\n return new Promise(function (t) {\n window.localStorage.setItem(e, n), t();\n });\n },\n clear: function clear(e) {\n return new Promise(function (n) {\n window.localStorage.removeItem(e), n();\n });\n }\n });\n } catch (e) {\n t.localStorage = null;\n }\n\n if (e && e.useReport && \"function\" == typeof window.EventSourcePolyfill && window.EventSourcePolyfill.supportedOptions && window.EventSourcePolyfill.supportedOptions.method ? (t.eventSourceAllowsReport = !0, o = window.EventSourcePolyfill) : (t.eventSourceAllowsReport = !1, o = window.EventSource), window.EventSource) {\n var a = 3e5;\n t.eventSourceFactory = function (e, n) {\n var t = Ve(Ve({}, {\n heartbeatTimeout: a,\n silentTimeout: a,\n skipDefaultHeaders: !0\n }), n);\n return new o(e, t);\n }, t.eventSourceIsActive = function (e) {\n return e.readyState === window.EventSource.OPEN || e.readyState === window.EventSource.CONNECTING;\n };\n }\n\n return t.userAgent = \"JSClient\", t.version = \"2.20.2\", t.diagnosticSdkData = {\n name: \"js-client-sdk\",\n version: \"2.20.2\"\n }, t.diagnosticPlatformData = {\n name: \"JS\"\n }, t.diagnosticUseCombinedEvent = !0, t;\n}\n\nvar Me = /[|\\\\{}()[\\]^$+*?.]/g,\n He = function He(e) {\n if (\"string\" != typeof e) throw new TypeError(\"Expected a string\");\n return e.replace(Me, \"\\\\$&\");\n};\n\nfunction Ke(e, n, t, r) {\n var o,\n i,\n a = ((\"substring\" === e.kind || \"regex\" === e.kind) && r.includes(\"/\") ? n : n.replace(r, \"\")).replace(t, \"\");\n\n switch (e.kind) {\n case \"exact\":\n i = n, o = new RegExp(\"^\" + He(e.url) + \"/?$\");\n break;\n\n case \"canonical\":\n i = a, o = new RegExp(\"^\" + He(e.url) + \"/?$\");\n break;\n\n case \"substring\":\n i = a, o = new RegExp(\".*\" + He(e.substring) + \".*$\");\n break;\n\n case \"regex\":\n i = a, o = new RegExp(e.pattern);\n break;\n\n default:\n return !1;\n }\n\n return o.test(i);\n}\n\nfunction $e(e, n) {\n for (var t = {}, r = null, o = [], i = 0; i < e.length; i++) {\n for (var a = e[i], u = a.urls || [], s = 0; s < u.length; s++) {\n if (Ke(u[s], window.location.href, window.location.search, window.location.hash)) {\n \"pageview\" === a.kind ? n(\"pageview\", a) : (o.push(a), n(\"click_pageview\", a));\n break;\n }\n }\n }\n\n return o.length > 0 && (r = function r(e) {\n for (var t = function (e, n) {\n for (var t = [], r = 0; r < n.length; r++) {\n for (var o = e.target, i = n[r], a = i.selector, u = document.querySelectorAll(a); o && u.length > 0;) {\n for (var s = 0; s < u.length; s++) {\n o === u[s] && t.push(i);\n }\n\n o = o.parentNode;\n }\n }\n\n return t;\n }(e, o), r = 0; r < t.length; r++) {\n n(\"click\", t[r]);\n }\n }, document.addEventListener(\"click\", r)), t.dispose = function () {\n document.removeEventListener(\"click\", r);\n }, t;\n}\n\nfunction Be(e, n) {\n var t, r;\n\n function o() {\n r && r.dispose(), t && t.length && (r = $e(t, i));\n }\n\n function i(n, t) {\n var r = e.ident.getUser(),\n o = {\n kind: n,\n key: t.key,\n data: null,\n url: window.location.href,\n user: r,\n creationDate: new Date().getTime()\n };\n return r && r.anonymous && (o.contextKind = \"anonymousUser\"), \"click\" === n && (o.selector = t.selector), e.enqueueEvent(o);\n }\n\n return e.requestor.fetchJSON(\"/sdk/goals/\" + e.getEnvironmentId()).then(function (e) {\n e && e.length > 0 && (r = $e(t = e, i), function (e, n) {\n var t,\n r = window.location.href;\n\n function o() {\n (t = window.location.href) !== r && (r = t, n());\n }\n\n !function e(n, t) {\n n(), setTimeout(function () {\n e(n, t);\n }, t);\n }(o, e), window.history && window.history.pushState ? window.addEventListener(\"popstate\", o) : window.addEventListener(\"hashchange\", o);\n }(300, o)), n();\n }).catch(function (t) {\n e.emitter.maybeReportError(new g.LDUnexpectedResponseError((t && t.message, t.message))), n();\n }), {};\n}\n\nvar Ge = {\n fetchGoals: {\n default: !0\n },\n hash: {\n type: \"string\"\n },\n eventProcessor: {\n type: \"object\"\n },\n eventUrlTransformer: {\n type: \"function\"\n },\n disableSyncEventPost: {\n default: !1\n }\n};\n\nfunction Xe(e, n) {\n var t = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {},\n r = ze(t),\n o = Ae(e, n, t, r, Ge),\n i = o.client,\n a = o.options,\n u = o.emitter,\n s = new Promise(function (e) {\n var n = u.on(\"goalsReady\", function () {\n u.off(\"goalsReady\", n), e();\n });\n });\n i.waitUntilGoalsReady = function () {\n return s;\n }, a.fetchGoals ? Be(o, function () {\n return u.emit(\"goalsReady\");\n }) : u.emit(\"goalsReady\"), \"complete\" !== document.readyState ? window.addEventListener(\"load\", o.start) : o.start();\n\n var c = function c() {\n r.synchronousFlush = !0, i.flush().catch(function () {}), r.synchronousFlush = !1;\n };\n\n return window.addEventListener(\"beforeunload\", c), window.addEventListener(\"unload\", c), i;\n}\n\nvar We = Te,\n Qe = \"2.20.2\";\nvar Ye = {\n initialize: function initialize(e, n) {\n var t = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\n return console && console.warn && console.warn(Oe.deprecated(\"default export\", \"named LDClient export\")), Xe(e, n, t);\n },\n version: \"2.20.2\"\n};\nexport default Ye;\nexport { We as createConsoleLogger, Xe as initialize, Qe as version };","\"use strict\";\n\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function get() {\n return m[k];\n }\n });\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nvar __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function (o, v) {\n o[\"default\"] = v;\n});\n\nvar __importStar = this && this.__importStar || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n }\n\n __setModuleDefault(result, mod);\n\n return result;\n};\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar react_1 = __importStar(require(\"react\"));\n\nvar types_1 = require(\"./types\");\n\nvar context_1 = require(\"./context\");\n\nvar initLDClient_1 = __importDefault(require(\"./initLDClient\"));\n\nvar utils_1 = require(\"./utils\");\n/**\n * This is an async function which initializes LaunchDarkly's JS SDK (`launchdarkly-js-client-sdk`)\n * and awaits it so all flags and the ldClient are ready before the consumer app is rendered.\n *\n * The difference between `withLDProvider` and `asyncWithLDProvider` is that `withLDProvider` initializes\n * `launchdarkly-js-client-sdk` at componentDidMount. This means your flags and the ldClient are only available after\n * your app has mounted. This can result in a flicker due to flag changes at startup time.\n *\n * `asyncWithLDProvider` initializes `launchdarkly-js-client-sdk` at the entry point of your app prior to render.\n * This means that your flags and the ldClient are ready at the beginning of your app. This ensures your app does not\n * flicker due to flag changes at startup time.\n *\n * `asyncWithLDProvider` accepts a config object which is used to initialize `launchdarkly-js-client-sdk`.\n *\n * `asyncWithLDProvider` does not support the `deferInitialization` config option because `asyncWithLDProvider` needs\n * to be initialized at the entry point prior to render to ensure your flags and the ldClient are ready at the beginning\n * of your app.\n *\n * It returns a provider which is a React FunctionComponent which:\n * - saves all flags and the ldClient instance in the context API\n * - subscribes to flag changes and propagate them through the context API\n *\n * @param config - The configuration used to initialize LaunchDarkly's JS SDK\n */\n\n\nfunction asyncWithLDProvider(config) {\n return __awaiter(this, void 0, void 0, function () {\n var clientSideID, user, targetFlags, options, userReactOptions, reactOptions, ldClient, LDProvider;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n clientSideID = config.clientSideID, user = config.user, targetFlags = config.flags, options = config.options, userReactOptions = config.reactOptions;\n reactOptions = __assign(__assign({}, types_1.defaultReactOptions), userReactOptions);\n return [4\n /*yield*/\n , (0, initLDClient_1.default)(clientSideID, user, reactOptions, options, targetFlags)];\n\n case 1:\n ldClient = _a.sent().ldClient;\n\n LDProvider = function LDProvider(_a) {\n var children = _a.children;\n\n var _b = (0, react_1.useState)({\n flags: (0, utils_1.fetchFlags)(ldClient, reactOptions, targetFlags),\n ldClient: ldClient\n }),\n ldData = _b[0],\n setLDData = _b[1];\n\n (0, react_1.useEffect)(function () {\n if (options) {\n var bootstrap = options.bootstrap;\n\n if (bootstrap && bootstrap !== 'localStorage') {\n var bootstrappedFlags_1 = reactOptions.useCamelCaseFlagKeys ? (0, utils_1.camelCaseKeys)(bootstrap) : bootstrap;\n setLDData(function (prev) {\n return __assign(__assign({}, prev), {\n flags: bootstrappedFlags_1\n });\n });\n }\n }\n\n ldClient.on('change', function (changes) {\n var flattened = (0, utils_1.getFlattenedFlagsFromChangeset)(changes, targetFlags, reactOptions);\n\n if (Object.keys(flattened).length > 0) {\n setLDData(function (prev) {\n return __assign(__assign({}, prev), {\n flags: __assign(__assign({}, prev.flags), flattened)\n });\n });\n }\n });\n }, []);\n return react_1.default.createElement(context_1.Provider, {\n value: ldData\n }, children);\n };\n\n return [2\n /*return*/\n , LDProvider];\n }\n });\n });\n}\n\nexports.default = asyncWithLDProvider;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Consumer = exports.Provider = void 0;\n\nvar react_1 = require(\"react\");\n/**\n * @ignore\n */\n\n\nvar context = (0, react_1.createContext)({\n flags: {},\n ldClient: undefined\n});\nvar\n/**\n * @ignore\n */\nProvider = context.Provider,\n\n/**\n * @ignore\n */\nConsumer = context.Consumer;\nexports.Provider = Provider;\nexports.Consumer = Consumer;\nexports.default = context;","\"use strict\";\n\nvar __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function get() {\n return m[k];\n }\n });\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nvar __exportStar = this && this.__exportStar || function (m, exports) {\n for (var p in m) {\n if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n }\n};\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.withLDConsumer = exports.withLDProvider = exports.useLDClient = exports.useFlags = exports.camelCaseKeys = exports.asyncWithLDProvider = exports.LDProvider = void 0;\n\nvar provider_1 = __importDefault(require(\"./provider\"));\n\nexports.LDProvider = provider_1.default;\n\nvar withLDProvider_1 = __importDefault(require(\"./withLDProvider\"));\n\nexports.withLDProvider = withLDProvider_1.default;\n\nvar asyncWithLDProvider_1 = __importDefault(require(\"./asyncWithLDProvider\"));\n\nexports.asyncWithLDProvider = asyncWithLDProvider_1.default;\n\nvar withLDConsumer_1 = __importDefault(require(\"./withLDConsumer\"));\n\nexports.withLDConsumer = withLDConsumer_1.default;\n\nvar useFlags_1 = __importDefault(require(\"./useFlags\"));\n\nexports.useFlags = useFlags_1.default;\n\nvar useLDClient_1 = __importDefault(require(\"./useLDClient\"));\n\nexports.useLDClient = useLDClient_1.default;\n\nvar utils_1 = require(\"./utils\");\n\nObject.defineProperty(exports, \"camelCaseKeys\", {\n enumerable: true,\n get: function get() {\n return utils_1.camelCaseKeys;\n }\n});\n\n__exportStar(require(\"./types\"), exports);","\"use strict\";\n\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar launchdarkly_js_client_sdk_1 = require(\"launchdarkly-js-client-sdk\");\n\nvar types_1 = require(\"./types\");\n\nvar utils_1 = require(\"./utils\");\n\nvar package_json_1 = require(\"../package.json\");\n/**\n * Internal function to initialize the `LDClient`.\n *\n * @param clientSideID Your project and environment specific client side ID\n * @param user A LaunchDarkly user object\n * @param reactOptions Initialization options for the LaunchDarkly React SDK\n * @param options LaunchDarkly initialization options\n * @param targetFlags If specified, `launchdarkly-react-client-sdk` will only request and listen to these flags.\n *\n * @see `ProviderConfig` for more details about the parameters\n * @return An initialized client and flags\n */\n\n\nvar initLDClient = function initLDClient(clientSideID, user, reactOptions, options, targetFlags) {\n if (user === void 0) {\n user = {\n anonymous: true\n };\n }\n\n if (reactOptions === void 0) {\n reactOptions = types_1.defaultReactOptions;\n }\n\n return __awaiter(void 0, void 0, void 0, function () {\n var allOptions, ldClient;\n return __generator(this, function (_a) {\n allOptions = __assign({\n wrapperName: 'react-client-sdk',\n wrapperVersion: package_json_1.version\n }, options);\n ldClient = (0, launchdarkly_js_client_sdk_1.initialize)(clientSideID, user, allOptions);\n return [2\n /*return*/\n , new Promise(function (resolve) {\n ldClient.on('ready', function () {\n var flags = (0, utils_1.fetchFlags)(ldClient, reactOptions, targetFlags);\n resolve({\n flags: flags,\n ldClient: ldClient\n });\n });\n })];\n });\n });\n};\n\nexports.default = initLDClient;","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function get() {\n return m[k];\n }\n });\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nvar __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function (o, v) {\n o[\"default\"] = v;\n});\n\nvar __importStar = this && this.__importStar || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n }\n\n __setModuleDefault(result, mod);\n\n return result;\n};\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar React = __importStar(require(\"react\"));\n\nvar types_1 = require(\"./types\");\n\nvar context_1 = require(\"./context\");\n\nvar initLDClient_1 = __importDefault(require(\"./initLDClient\"));\n\nvar utils_1 = require(\"./utils\");\n/**\n * The `LDProvider` is a component which accepts a config object which is used to\n * initialize `launchdarkly-js-client-sdk`.\n *\n * This Provider does three things:\n * - It initializes the ldClient instance by calling `launchdarkly-js-client-sdk` initialize on `componentDidMount`\n * - It saves all flags and the ldClient instance in the context API\n * - It subscribes to flag changes and propagate them through the context API\n *\n * Because the `launchdarkly-js-client-sdk` in only initialized on `componentDidMount`, your flags and the\n * ldClient are only available after your app has mounted. This can result in a flicker due to flag changes at\n * startup time.\n *\n * This component can be used as a standalone provider. However, be mindful to only include the component once\n * within your application. This provider is used inside the `withLDProviderHOC` and can be used instead to initialize\n * the `launchdarkly-js-client-sdk`. For async initialization, check out the `asyncWithLDProvider` function\n */\n\n\nvar LDProvider =\n/** @class */\nfunction (_super) {\n __extends(LDProvider, _super);\n\n function LDProvider(props) {\n var _this = _super.call(this, props) || this;\n\n _this.getReactOptions = function () {\n return __assign(__assign({}, types_1.defaultReactOptions), _this.props.reactOptions);\n };\n\n _this.subscribeToChanges = function (ldClient) {\n var targetFlags = _this.props.flags;\n ldClient.on('change', function (changes) {\n var flattened = (0, utils_1.getFlattenedFlagsFromChangeset)(changes, targetFlags, _this.getReactOptions());\n\n if (Object.keys(flattened).length > 0) {\n _this.setState(function (_a) {\n var flags = _a.flags;\n return {\n flags: __assign(__assign({}, flags), flattened)\n };\n });\n }\n });\n };\n\n _this.initLDClient = function () {\n return __awaiter(_this, void 0, void 0, function () {\n var _a, clientSideID, flags, options, user, ldClient, reactOptions, fetchedFlags, initialisedOutput;\n\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = this.props, clientSideID = _a.clientSideID, flags = _a.flags, options = _a.options, user = _a.user;\n return [4\n /*yield*/\n , this.props.ldClient];\n\n case 1:\n ldClient = _b.sent();\n reactOptions = this.getReactOptions();\n if (!ldClient) return [3\n /*break*/\n , 2];\n fetchedFlags = (0, utils_1.fetchFlags)(ldClient, reactOptions, flags);\n return [3\n /*break*/\n , 4];\n\n case 2:\n return [4\n /*yield*/\n , (0, initLDClient_1.default)(clientSideID, user, reactOptions, options, flags)];\n\n case 3:\n initialisedOutput = _b.sent();\n fetchedFlags = initialisedOutput.flags;\n ldClient = initialisedOutput.ldClient;\n _b.label = 4;\n\n case 4:\n this.setState({\n flags: fetchedFlags,\n ldClient: ldClient\n });\n this.subscribeToChanges(ldClient);\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n var options = props.options;\n _this.state = {\n flags: {},\n ldClient: undefined\n };\n\n if (options) {\n var bootstrap = options.bootstrap;\n\n if (bootstrap && bootstrap !== 'localStorage') {\n var useCamelCaseFlagKeys = _this.getReactOptions().useCamelCaseFlagKeys;\n\n var flags = useCamelCaseFlagKeys ? (0, utils_1.camelCaseKeys)(bootstrap) : bootstrap;\n _this.state = {\n flags: flags,\n ldClient: undefined\n };\n }\n }\n\n return _this;\n }\n\n LDProvider.prototype.componentDidMount = function () {\n return __awaiter(this, void 0, void 0, function () {\n var _a, user, deferInitialization;\n\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = this.props, user = _a.user, deferInitialization = _a.deferInitialization;\n\n if (deferInitialization && !user) {\n return [2\n /*return*/\n ];\n }\n\n return [4\n /*yield*/\n , this.initLDClient()];\n\n case 1:\n _b.sent();\n\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n LDProvider.prototype.componentDidUpdate = function (prevProps) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, user, deferInitialization, userJustLoaded;\n\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = this.props, user = _a.user, deferInitialization = _a.deferInitialization;\n userJustLoaded = !prevProps.user && user;\n if (!(deferInitialization && userJustLoaded)) return [3\n /*break*/\n , 2];\n return [4\n /*yield*/\n , this.initLDClient()];\n\n case 1:\n _b.sent();\n\n _b.label = 2;\n\n case 2:\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n LDProvider.prototype.render = function () {\n return React.createElement(context_1.Provider, {\n value: this.state\n }, this.props.children);\n };\n\n return LDProvider;\n}(React.Component);\n\nexports.default = LDProvider;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.defaultReactOptions = void 0;\n/**\n * Contains default values for the `reactOptions` object.\n */\n\nexports.defaultReactOptions = {\n useCamelCaseFlagKeys: true\n};","\"use strict\";\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar react_1 = require(\"react\");\n\nvar context_1 = __importDefault(require(\"./context\"));\n/**\n * `useFlags` is a custom hook which returns all feature flags. It uses the `useContext` primitive\n * to access the LaunchDarkly context set up by `withLDProvider`. As such you will still need to\n * use the `withLDProvider` HOC at the root of your app to initialize the React SDK and populate the\n * context with `ldClient` and your flags.\n *\n * @return All the feature flags configured in your LaunchDarkly project\n */\n\n\nvar useFlags = function useFlags() {\n var flags = (0, react_1.useContext)(context_1.default).flags;\n return flags;\n};\n\nexports.default = useFlags;","\"use strict\";\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar react_1 = require(\"react\");\n\nvar context_1 = __importDefault(require(\"./context\")); // tslint:disable:max-line-length\n\n/**\n * `useLDClient` is a custom hook which returns the underlying [LaunchDarkly JavaScript SDK client object](https://launchdarkly.github.io/js-client-sdk/interfaces/_launchdarkly_js_client_sdk_.ldclient.html).\n * Like the `useFlags` custom hook, `useLDClient` also uses the `useContext` primitive to access the LaunchDarkly\n * context set up by `withLDProvider`. You will still need to use the `withLDProvider` HOC\n * to initialise the react sdk to use this custom hook.\n *\n * @return The `launchdarkly-js-client-sdk` `LDClient` object\n */\n// tslint:enable:max-line-length\n\n\nvar useLDClient = function useLDClient() {\n var ldClient = (0, react_1.useContext)(context_1.default).ldClient;\n return ldClient;\n};\n\nexports.default = useLDClient;","\"use strict\";\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.fetchFlags = exports.getFlattenedFlagsFromChangeset = exports.camelCaseKeys = void 0;\n\nvar lodash_camelcase_1 = __importDefault(require(\"lodash.camelcase\"));\n\nvar types_1 = require(\"./types\");\n/**\n * Transforms a set of flags so that their keys are camelCased. This function ignores\n * flag keys which start with `$`.\n *\n * @param rawFlags A mapping of flag keys and their values\n * @return A transformed `LDFlagSet` with camelCased flag keys\n */\n\n\nvar camelCaseKeys = function camelCaseKeys(rawFlags) {\n var flags = {};\n\n for (var rawFlag in rawFlags) {\n // Exclude system keys\n if (rawFlag.indexOf('$') !== 0) {\n flags[(0, lodash_camelcase_1.default)(rawFlag)] = rawFlags[rawFlag]; // tslint:disable-line:no-unsafe-any\n }\n }\n\n return flags;\n};\n\nexports.camelCaseKeys = camelCaseKeys;\n/**\n * Gets the flags to pass to the provider from the changeset.\n *\n * @param changes the `LDFlagChangeset` from the ldClient onchange handler.\n * @param targetFlags if targetFlags are specified, changes to other flags are ignored and not returned in the\n * flattened `LDFlagSet`\n * @param reactOptions reactOptions.useCamelCaseFlagKeys determines whether to change the flag keys to camelCase\n * @return an `LDFlagSet` with the current flag values from the LDFlagChangeset filtered by `targetFlags`. The returned\n * object may be empty `{}` if none of the targetFlags were changed.\n */\n\nvar getFlattenedFlagsFromChangeset = function getFlattenedFlagsFromChangeset(changes, targetFlags, reactOptions) {\n var flattened = {};\n\n for (var key in changes) {\n if (!targetFlags || targetFlags[key] !== undefined) {\n // tslint:disable-next-line:no-unsafe-any\n var flagKey = reactOptions.useCamelCaseFlagKeys ? (0, lodash_camelcase_1.default)(key) : key;\n flattened[flagKey] = changes[key].current;\n }\n }\n\n return flattened;\n};\n\nexports.getFlattenedFlagsFromChangeset = getFlattenedFlagsFromChangeset;\n/**\n * Retrieves flag values.\n *\n * @param ldClient LaunchDarkly client\n * @param reactOptions Initialization options for the LaunchDarkly React SDK\n * @param targetFlags If specified, `launchdarkly-react-client-sdk` will only request and listen to these flags.\n *\n * @returns an `LDFlagSet` with the current flag values from LaunchDarkly filtered by `targetFlags`.\n */\n\nvar fetchFlags = function fetchFlags(ldClient, reactOptions, targetFlags) {\n if (reactOptions === void 0) {\n reactOptions = types_1.defaultReactOptions;\n }\n\n var rawFlags = {};\n\n if (targetFlags) {\n for (var flag in targetFlags) {\n rawFlags[flag] = ldClient.variation(flag, targetFlags[flag]);\n }\n } else {\n rawFlags = ldClient.allFlags();\n }\n\n return reactOptions.useCamelCaseFlagKeys ? (0, exports.camelCaseKeys)(rawFlags) : rawFlags;\n};\n\nexports.fetchFlags = fetchFlags;\n/**\n * @deprecated The `camelCaseKeys.camelCaseKeys` property will be removed in a future version,\n * please update your code to use the `camelCaseKeys` function directly.\n */\n// tslint:disable-next-line deprecation\n\nexports.camelCaseKeys.camelCaseKeys = exports.camelCaseKeys;\nexports.default = {\n camelCaseKeys: exports.camelCaseKeys,\n getFlattenedFlagsFromChangeset: exports.getFlattenedFlagsFromChangeset,\n fetchFlags: exports.fetchFlags\n};","\"use strict\";\n\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function get() {\n return m[k];\n }\n });\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nvar __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function (o, v) {\n o[\"default\"] = v;\n});\n\nvar __importStar = this && this.__importStar || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n }\n\n __setModuleDefault(result, mod);\n\n return result;\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar React = __importStar(require(\"react\"));\n\nvar context_1 = require(\"./context\");\n/**\n * withLDConsumer is a function which accepts an optional options object and returns a function\n * which accepts your React component. This function returns a HOC with flags\n * and the ldClient instance injected via props.\n *\n * @param options - If you need only the `ldClient` instance and not flags, then set `{ clientOnly: true }`\n * to only pass the ldClient prop to your component. Defaults to `{ clientOnly: false }`.\n * @return A HOC with flags and the `ldClient` instance injected via props\n */\n\n\nfunction withLDConsumer(options) {\n if (options === void 0) {\n options = {\n clientOnly: false\n };\n }\n\n return function withLDConsumerHoc(WrappedComponent) {\n return function (props) {\n return React.createElement(context_1.Consumer, null, function (_a) {\n var flags = _a.flags,\n ldClient = _a.ldClient;\n\n if (options.clientOnly) {\n return React.createElement(WrappedComponent, __assign({\n ldClient: ldClient\n }, props));\n }\n\n return React.createElement(WrappedComponent, __assign({\n flags: flags,\n ldClient: ldClient\n }, props));\n });\n };\n };\n}\n\nexports.default = withLDConsumer;","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function get() {\n return m[k];\n }\n });\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nvar __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function (o, v) {\n o[\"default\"] = v;\n});\n\nvar __importStar = this && this.__importStar || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n }\n\n __setModuleDefault(result, mod);\n\n return result;\n};\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.withLDProvider = void 0;\n\nvar React = __importStar(require(\"react\"));\n\nvar types_1 = require(\"./types\");\n\nvar provider_1 = __importDefault(require(\"./provider\"));\n\nvar hoist_non_react_statics_1 = __importDefault(require(\"hoist-non-react-statics\"));\n/**\n * `withLDProvider` is a function which accepts a config object which is used to\n * initialize `launchdarkly-js-client-sdk`.\n *\n * This HOC handles passing configuration to the `LDProvider`, which does the following:\n * - It initializes the ldClient instance by calling `launchdarkly-js-client-sdk` initialize on `componentDidMount`\n * - It saves all flags and the ldClient instance in the context API\n * - It subscribes to flag changes and propagate them through the context API\n *\n * The difference between `withLDProvider` and `asyncWithLDProvider` is that `withLDProvider` initializes\n * `launchdarkly-js-client-sdk` at `componentDidMount`. This means your flags and the ldClient are only available after\n * your app has mounted. This can result in a flicker due to flag changes at startup time.\n *\n * `asyncWithLDProvider` initializes `launchdarkly-js-client-sdk` at the entry point of your app prior to render.\n * This means that your flags and the ldClient are ready at the beginning of your app. This ensures your app does not\n * flicker due to flag changes at startup time.\n *\n * @param config - The configuration used to initialize LaunchDarkly's JS SDK\n * @return A function which accepts your root React component and returns a HOC\n */\n\n\nfunction withLDProvider(config) {\n return function withLDProviderHoc(WrappedComponent) {\n var userReactOptions = config.reactOptions;\n\n var reactOptions = __assign(__assign({}, types_1.defaultReactOptions), userReactOptions);\n\n var providerProps = __assign(__assign({}, config), {\n reactOptions: reactOptions\n });\n\n var HoistedComponent =\n /** @class */\n function (_super) {\n __extends(HoistedComponent, _super);\n\n function HoistedComponent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n HoistedComponent.prototype.render = function () {\n return React.createElement(provider_1.default, __assign({}, providerProps), React.createElement(WrappedComponent, __assign({}, this.props)));\n };\n\n return HoistedComponent;\n }(React.Component);\n\n (0, hoist_non_react_statics_1.default)(HoistedComponent, WrappedComponent);\n return HoistedComponent;\n };\n}\n\nexports.withLDProvider = withLDProvider;\nexports.default = withLDProvider;","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n/** `Object#toString` result references. */\n\nvar symbolTag = '[object Symbol]';\n/** Used to match words composed of alphanumeric characters. */\n\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\n\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n/** Used to compose unicode character classes. */\n\nvar rsAstralRange = \"\\\\ud800-\\\\udfff\",\n rsComboMarksRange = \"\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe23\",\n rsComboSymbolsRange = \"\\\\u20d0-\\\\u20f0\",\n rsDingbatRange = \"\\\\u2700-\\\\u27bf\",\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = \"\\\\u2000-\\\\u206f\",\n rsSpaceRange = \" \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\",\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = \"\\\\ufe0e\\\\ufe0f\",\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n/** Used to compose unicode capture groups. */\n\nvar rsApos = \"['\\u2019]\",\n rsAstral = '[' + rsAstralRange + ']',\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboMarksRange + rsComboSymbolsRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = \"\\\\ud83c[\\\\udffb-\\\\udfff]\",\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = \"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\",\n rsSurrPair = \"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\",\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = \"\\\\u200d\";\n/** Used to compose unicode regexes. */\n\nvar rsLowerMisc = '(?:' + rsLower + '|' + rsMisc + ')',\n rsUpperMisc = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptLowerContr = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptUpperContr = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n/** Used to match apostrophes. */\n\nvar reApos = RegExp(rsApos, 'g');\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\n\nvar reComboMark = RegExp(rsCombo, 'g');\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\n\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n/** Used to match complex or compound words. */\n\nvar reUnicodeWord = RegExp([rsUpper + '?' + rsLower + '+' + rsOptLowerContr + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')', rsUpperMisc + '+' + rsOptUpperContr + '(?=' + [rsBreak, rsUpper + rsLowerMisc, '$'].join('|') + ')', rsUpper + '?' + rsLowerMisc + '+' + rsOptLowerContr, rsUpper + '+' + rsOptUpperContr, rsDigits, rsEmoji].join('|'), 'g');\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\n\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboMarksRange + rsComboSymbolsRange + rsVarRange + ']');\n/** Used to detect strings that need a more robust regexp to match words. */\n\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n/** Used to map Latin Unicode letters to basic Latin letters. */\n\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A',\n '\\xc1': 'A',\n '\\xc2': 'A',\n '\\xc3': 'A',\n '\\xc4': 'A',\n '\\xc5': 'A',\n '\\xe0': 'a',\n '\\xe1': 'a',\n '\\xe2': 'a',\n '\\xe3': 'a',\n '\\xe4': 'a',\n '\\xe5': 'a',\n '\\xc7': 'C',\n '\\xe7': 'c',\n '\\xd0': 'D',\n '\\xf0': 'd',\n '\\xc8': 'E',\n '\\xc9': 'E',\n '\\xca': 'E',\n '\\xcb': 'E',\n '\\xe8': 'e',\n '\\xe9': 'e',\n '\\xea': 'e',\n '\\xeb': 'e',\n '\\xcc': 'I',\n '\\xcd': 'I',\n '\\xce': 'I',\n '\\xcf': 'I',\n '\\xec': 'i',\n '\\xed': 'i',\n '\\xee': 'i',\n '\\xef': 'i',\n '\\xd1': 'N',\n '\\xf1': 'n',\n '\\xd2': 'O',\n '\\xd3': 'O',\n '\\xd4': 'O',\n '\\xd5': 'O',\n '\\xd6': 'O',\n '\\xd8': 'O',\n '\\xf2': 'o',\n '\\xf3': 'o',\n '\\xf4': 'o',\n '\\xf5': 'o',\n '\\xf6': 'o',\n '\\xf8': 'o',\n '\\xd9': 'U',\n '\\xda': 'U',\n '\\xdb': 'U',\n '\\xdc': 'U',\n '\\xf9': 'u',\n '\\xfa': 'u',\n '\\xfb': 'u',\n '\\xfc': 'u',\n '\\xdd': 'Y',\n '\\xfd': 'y',\n '\\xff': 'y',\n '\\xc6': 'Ae',\n '\\xe6': 'ae',\n '\\xde': 'Th',\n '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n \"\\u0100\": 'A',\n \"\\u0102\": 'A',\n \"\\u0104\": 'A',\n \"\\u0101\": 'a',\n \"\\u0103\": 'a',\n \"\\u0105\": 'a',\n \"\\u0106\": 'C',\n \"\\u0108\": 'C',\n \"\\u010A\": 'C',\n \"\\u010C\": 'C',\n \"\\u0107\": 'c',\n \"\\u0109\": 'c',\n \"\\u010B\": 'c',\n \"\\u010D\": 'c',\n \"\\u010E\": 'D',\n \"\\u0110\": 'D',\n \"\\u010F\": 'd',\n \"\\u0111\": 'd',\n \"\\u0112\": 'E',\n \"\\u0114\": 'E',\n \"\\u0116\": 'E',\n \"\\u0118\": 'E',\n \"\\u011A\": 'E',\n \"\\u0113\": 'e',\n \"\\u0115\": 'e',\n \"\\u0117\": 'e',\n \"\\u0119\": 'e',\n \"\\u011B\": 'e',\n \"\\u011C\": 'G',\n \"\\u011E\": 'G',\n \"\\u0120\": 'G',\n \"\\u0122\": 'G',\n \"\\u011D\": 'g',\n \"\\u011F\": 'g',\n \"\\u0121\": 'g',\n \"\\u0123\": 'g',\n \"\\u0124\": 'H',\n \"\\u0126\": 'H',\n \"\\u0125\": 'h',\n \"\\u0127\": 'h',\n \"\\u0128\": 'I',\n \"\\u012A\": 'I',\n \"\\u012C\": 'I',\n \"\\u012E\": 'I',\n \"\\u0130\": 'I',\n \"\\u0129\": 'i',\n \"\\u012B\": 'i',\n \"\\u012D\": 'i',\n \"\\u012F\": 'i',\n \"\\u0131\": 'i',\n \"\\u0134\": 'J',\n \"\\u0135\": 'j',\n \"\\u0136\": 'K',\n \"\\u0137\": 'k',\n \"\\u0138\": 'k',\n \"\\u0139\": 'L',\n \"\\u013B\": 'L',\n \"\\u013D\": 'L',\n \"\\u013F\": 'L',\n \"\\u0141\": 'L',\n \"\\u013A\": 'l',\n \"\\u013C\": 'l',\n \"\\u013E\": 'l',\n \"\\u0140\": 'l',\n \"\\u0142\": 'l',\n \"\\u0143\": 'N',\n \"\\u0145\": 'N',\n \"\\u0147\": 'N',\n \"\\u014A\": 'N',\n \"\\u0144\": 'n',\n \"\\u0146\": 'n',\n \"\\u0148\": 'n',\n \"\\u014B\": 'n',\n \"\\u014C\": 'O',\n \"\\u014E\": 'O',\n \"\\u0150\": 'O',\n \"\\u014D\": 'o',\n \"\\u014F\": 'o',\n \"\\u0151\": 'o',\n \"\\u0154\": 'R',\n \"\\u0156\": 'R',\n \"\\u0158\": 'R',\n \"\\u0155\": 'r',\n \"\\u0157\": 'r',\n \"\\u0159\": 'r',\n \"\\u015A\": 'S',\n \"\\u015C\": 'S',\n \"\\u015E\": 'S',\n \"\\u0160\": 'S',\n \"\\u015B\": 's',\n \"\\u015D\": 's',\n \"\\u015F\": 's',\n \"\\u0161\": 's',\n \"\\u0162\": 'T',\n \"\\u0164\": 'T',\n \"\\u0166\": 'T',\n \"\\u0163\": 't',\n \"\\u0165\": 't',\n \"\\u0167\": 't',\n \"\\u0168\": 'U',\n \"\\u016A\": 'U',\n \"\\u016C\": 'U',\n \"\\u016E\": 'U',\n \"\\u0170\": 'U',\n \"\\u0172\": 'U',\n \"\\u0169\": 'u',\n \"\\u016B\": 'u',\n \"\\u016D\": 'u',\n \"\\u016F\": 'u',\n \"\\u0171\": 'u',\n \"\\u0173\": 'u',\n \"\\u0174\": 'W',\n \"\\u0175\": 'w',\n \"\\u0176\": 'Y',\n \"\\u0177\": 'y',\n \"\\u0178\": 'Y',\n \"\\u0179\": 'Z',\n \"\\u017B\": 'Z',\n \"\\u017D\": 'Z',\n \"\\u017A\": 'z',\n \"\\u017C\": 'z',\n \"\\u017E\": 'z',\n \"\\u0132\": 'IJ',\n \"\\u0133\": 'ij',\n \"\\u0152\": 'Oe',\n \"\\u0153\": 'oe',\n \"\\u0149\": \"'n\",\n \"\\u017F\": 'ss'\n};\n/** Detect free variable `global` from Node.js. */\n\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n/** Detect free variable `self`. */\n\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n/** Used as a reference to the global object. */\n\nvar root = freeGlobal || freeSelf || Function('return this')();\n/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array ? array.length : 0;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n\n return accumulator;\n}\n/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n\n\nfunction asciiToArray(string) {\n return string.split('');\n}\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n\n\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\n\n\nfunction basePropertyOf(object) {\n return function (key) {\n return object == null ? undefined : object[key];\n };\n}\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\n\n\nvar deburrLetter = basePropertyOf(deburredLetters);\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\n\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\n\n\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n\n\nfunction stringToArray(string) {\n return hasUnicode(string) ? unicodeToArray(string) : asciiToArray(string);\n}\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n\n\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n\n\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n/** Used for built-in method references. */\n\n\nvar objectProto = Object.prototype;\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n\nvar objectToString = objectProto.toString;\n/** Built-in value references. */\n\nvar Symbol = root.Symbol;\n/** Used to convert symbols to primitives and strings. */\n\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : length + start;\n }\n\n end = end > length ? length : end;\n\n if (end < 0) {\n end += length;\n }\n\n length = start > end ? 0 : end - start >>> 0;\n start >>>= 0;\n var result = Array(length);\n\n while (++index < length) {\n result[index] = array[index + start];\n }\n\n return result;\n}\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\n\n\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n\n var result = value + '';\n return result == '0' && 1 / value == -INFINITY ? '-0' : result;\n}\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\n\n\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return !start && end >= length ? array : baseSlice(array, start, end);\n}\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\n\n\nfunction createCaseFirst(methodName) {\n return function (string) {\n string = toString(string);\n var strSymbols = hasUnicode(string) ? stringToArray(string) : undefined;\n var chr = strSymbols ? strSymbols[0] : string.charAt(0);\n var trailing = strSymbols ? castSlice(strSymbols, 1).join('') : string.slice(1);\n return chr[methodName]() + trailing;\n };\n}\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\n\n\nfunction createCompounder(callback) {\n return function (string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\n\n\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\n\n\nfunction isSymbol(value) {\n return typeof value == 'symbol' || isObjectLike(value) && objectToString.call(value) == symbolTag;\n}\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\n\n\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n/**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\n\n\nvar camelCase = createCompounder(function (result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n});\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\n\nfunction capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n}\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\n\n\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\n\n\nvar upperFirst = createCaseFirst('toUpperCase');\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\n\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n\n return string.match(pattern) || [];\n}\n\nmodule.exports = camelCase;","//! moment.js\n//! version : 2.29.4\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : global.moment = factory();\n})(this, function () {\n 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n } // This is done to register the method called with moment()\n // without creating circular dependencies.\n\n\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return input != null && Object.prototype.toString.call(input) === '[object Object]';\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';\n }\n\n function isDate(input) {\n return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n\n return m._pf;\n }\n\n var some;\n\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function some(fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid = !isNaN(m._d.getTime()) && flags.overflow < 0 && !flags.empty && !flags.invalidEra && !flags.invalidMonth && !flags.invalidWeekday && !flags.weekdayMismatch && !flags.nullInput && !flags.invalidFormat && !flags.userInvalidated && (!flags.meridiem || flags.meridiem && parsedParts);\n\n if (m._strict) {\n isNowValid = isNowValid && flags.charsLeftOver === 0 && flags.unusedTokens.length === 0 && flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n } // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n\n\n var momentProperties = hooks.momentProperties = [],\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n } // Moment prototype object\n\n\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n\n if (!this.isValid()) {\n this._d = new Date(NaN);\n } // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n\n\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return obj instanceof Moment || obj != null && obj._isAMomentObject != null;\n }\n\n function warn(msg) {\n if (hooks.suppressDeprecationWarnings === false && typeof console !== 'undefined' && console.warn) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n\n for (i = 0; i < argLen; i++) {\n arg = '';\n\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n\n args.push(arg);\n }\n\n warn(msg + '\\nArguments: ' + Array.prototype.slice.call(args).join('') + '\\n' + new Error().stack);\n firstTime = false;\n }\n\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return typeof Function !== 'undefined' && input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n }\n\n function set(config) {\n var prop, i;\n\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n\n this._config = config; // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n\n this._dayOfMonthOrdinalParseLenient = new RegExp((this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + '|' + /\\d{1,2}/.source);\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n\n for (prop in parentConfig) {\n if (hasOwnProp(parentConfig, prop) && !hasOwnProp(childConfig, prop) && isObject(parentConfig[prop])) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function keys(obj) {\n var i,\n res = [];\n\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (sign ? forceSign ? '+' : '' : '-') + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {}; // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n\n if (typeof callback === 'string') {\n func = function func() {\n return this[callback]();\n };\n }\n\n if (token) {\n formatTokenFunctions[token] = func;\n }\n\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(func.apply(this, arguments), token);\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n\n for (i = 0; i < length; i++) {\n output += isFunction(array[i]) ? array[i].call(mom, format) : array[i];\n }\n\n return output;\n };\n } // format date using native date object\n\n\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A'\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper.match(formattingTokens).map(function (tok) {\n if (tok === 'MMMM' || tok === 'MM' || tok === 'DD' || tok === 'dddd') {\n return tok.slice(1);\n }\n\n return tok;\n }).join('');\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output) ? output(number, withoutSuffix, string, isFuture) : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({\n unit: u,\n priority: priorities[u]\n });\n }\n }\n\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid() ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) {\n value = toInt(value);\n\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month()));\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n } // MOMENTS\n\n\n function stringGet(units) {\n units = normalizeUnits(units);\n\n if (isFunction(this[units])) {\n return this[units]();\n }\n\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n\n return this;\n }\n\n var match1 = /\\d/,\n // 0 - 9\n match2 = /\\d\\d/,\n // 00 - 99\n match3 = /\\d{3}/,\n // 000 - 999\n match4 = /\\d{4}/,\n // 0000 - 9999\n match6 = /[+-]?\\d{6}/,\n // -999999 - 999999\n match1to2 = /\\d\\d?/,\n // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/,\n // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/,\n // 99999 - 999999\n match1to3 = /\\d{1,3}/,\n // 0 - 999\n match1to4 = /\\d{1,4}/,\n // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/,\n // -999999 - 999999\n matchUnsigned = /\\d+/,\n // 0 - inf\n matchSigned = /[+-]?\\d+/,\n // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi,\n // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi,\n // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/,\n // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n } // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n\n\n function unescapeFormat(s) {\n return regexEscape(s.replace('\\\\', '').replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }));\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n\n if (typeof token === 'string') {\n token = [token];\n }\n\n if (isNumber(callback)) {\n func = function func(input, array) {\n array[callback] = toInt(input);\n };\n }\n\n tokenLen = token.length;\n\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return (n % x + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function indexOf(o) {\n // I know\n var i;\n\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1 ? isLeapYear(year) ? 29 : 28 : 31 - modMonth % 7 % 2;\n } // FORMATTING\n\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n }); // ALIASES\n\n addUnitAlias('month', 'M'); // PRIORITY\n\n addUnitPriority('month', 8); // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict); // if we didn't find a month name, mark the date as invalid.\n\n\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n }); // LOCALES\n\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months) ? this._months : this._months['standalone'];\n }\n\n return isArray(this._months) ? this._months[m.month()] : this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort) ? this._monthsShort : this._monthsShort['standalone'];\n }\n\n return isArray(this._monthsShort) ? this._monthsShort[m.month()] : this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n } // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n\n\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');\n this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');\n }\n\n if (!strict && !this._monthsParse[i]) {\n regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n } // test the regex\n\n\n if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {\n return i;\n } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n } // MOMENTS\n\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value); // TODO: Another silent failure?\n\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n\n return this._monthsShortStrictRegex && isStrict ? this._monthsShortStrictRegex : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n\n return this._monthsStrictRegex && isStrict ? this._monthsStrictRegex : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n } // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n\n\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n } // FORMATTING\n\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); // ALIASES\n\n addUnitAlias('year', 'y'); // PRIORITIES\n\n addUnitPriority('year', 1); // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n }); // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n } // HOOKS\n\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n }; // MOMENTS\n\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date; // the date constructor remaps years 0-99 to 1900-1999\n\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args; // the Date.UTC function remaps years 0-99 to 1900-1999\n\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments); // preserve leap years using a full 400 year cycle, then reset\n\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n } // start-of-first-week - start-of-year\n\n\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n return -fwdlw + fwd - 1;\n } // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n\n\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n } // FORMATTING\n\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W'); // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5); // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }); // HELPERS\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n } // MOMENTS\n\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n } // FORMATTING\n\n\n addFormatToken('d', 0, 'do', 'day');\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday'); // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E'); // PRIORITY\n\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11); // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict); // if we didn't get a weekday name, mark the date as invalid\n\n\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n }); // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n\n return isNaN(input) ? null : input;\n } // LOCALES\n\n\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays) ? this._weekdays : this._weekdays[m && m !== true && this._weekdays.isFormat.test(format) ? 'format' : 'standalone'];\n return m === true ? shiftWeekdays(weekdays, this._week.dow) : m ? weekdays[m.day()] : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true ? shiftWeekdays(this._weekdaysShort, this._week.dow) : m ? this._weekdaysShort[m.day()] : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true ? shiftWeekdays(this._weekdaysMin, this._week.dow) : m ? this._weekdaysMin[m.day()] : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._weekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._weekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$', 'i');\n }\n\n if (!this._weekdaysParse[i]) {\n regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n } // test the regex\n\n\n if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n } // MOMENTS\n\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n } // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n\n return this._weekdaysStrictRegex && isStrict ? this._weekdaysStrictRegex : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n\n return this._weekdaysShortStrictRegex && isStrict ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n\n return this._weekdaysMinStrictRegex && isStrict ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n } // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n\n\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');\n } // FORMATTING\n\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n addFormatToken('hmmss', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2);\n });\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n addFormatToken('Hmmss', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2);\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);\n });\n }\n\n meridiem('a', true);\n meridiem('A', false); // ALIASES\n\n addUnitAlias('hour', 'h'); // PRIORITY\n\n addUnitPriority('hour', 13); // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n }); // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n week: defaultLocaleWeek,\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n meridiemParse: defaultLocaleMeridiemParse\n }; // internal storage for locale config files\n\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n } // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n\n\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n\n if (locale) {\n return locale;\n }\n\n if (next && next.length >= j && commonPrefix(split, next) >= j - 1) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n\n j--;\n }\n\n i++;\n }\n\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire; // TODO: Find a better way to register and load all the locales in Node\n\n if (locales[name] === undefined && typeof module !== 'undefined' && module && module.exports && isLocaleNameSane(name)) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n\n return locales[name];\n } // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n\n\n function getSetGlobalLocale(key, values) {\n var data;\n\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn('Locale ' + key + ' not found. Did you forget to load it?');\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n\n if (locales[name] != null) {\n deprecateSimple('defineLocaleOverride', 'use moment.updateLocale(localeName, config) to change ' + 'an existing locale. moment.defineLocale(localeName, ' + 'config) should only be used for creating a new locale ' + 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config\n });\n return null;\n }\n }\n }\n\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n } // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n\n\n getSetGlobalLocale(name);\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n\n config = mergeConfigs(parentConfig, config);\n\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n } // backwards compat for now: also set the locale\n\n\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n\n return locales[name];\n } // returns locale data\n\n\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n\n if (locale) {\n return locale;\n }\n\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow = a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : a[HOUR] < 0 || a[HOUR] > 24 || a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0) ? HOUR : a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : -1;\n\n if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {\n overflow = DATE;\n }\n\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n } // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n\n\n var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/], ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/], ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/], ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false], ['YYYY-DDD', /\\d{4}-\\d{3}/], ['YYYY-MM', /\\d{4}-\\d\\d/, false], ['YYYYYYMMDD', /[+-]\\d{10}/], ['YYYYMMDD', /\\d{8}/], ['GGGG[W]WWE', /\\d{4}W\\d{3}/], ['GGGG[W]WW', /\\d{4}W\\d{2}/, false], ['YYYYDDD', /\\d{7}/], ['YYYYMM', /\\d{6}/, false], ['YYYY', /\\d{4}/, false]],\n // iso time formats and regexes\n isoTimes = [['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/], ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/], ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/], ['HH:mm', /\\d\\d:\\d\\d/], ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/], ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/], ['HHmmss', /\\d\\d\\d\\d\\d\\d/], ['HHmm', /\\d\\d\\d\\d/], ['HH', /\\d\\d/]],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n }; // date from iso format\n\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n var result = [untruncateYear(yearStr), defaultLocaleMonthsShort.indexOf(monthStr), parseInt(dayStr, 10), parseInt(hourStr, 10), parseInt(minuteStr, 10)];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s.replace(/\\([^()]*\\)|[\\n\\t]/g, ' ').replace(/(\\s\\s+)/g, ' ').replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();\n\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n } // date and time from ref 2822 format\n\n\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n\n if (match) {\n parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);\n\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n config._d = createUTCDate.apply(null, config._a);\n\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n } // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n\n\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate('value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.', function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }); // Pick the first defined of two or three arguments.\n\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n\n if (b != null) {\n return b;\n }\n\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n\n if (config._useUTC) {\n return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];\n }\n\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n } // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n\n\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config); //compute day of the year from weeks and weekdays\n\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n } //if the day of the year is set, figure out what it is\n\n\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n } // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n\n\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n } // Zero out whatever was not defaulted, including time\n\n\n for (; i < 7; i++) {\n config._a[i] = input[i] = config._a[i] == null ? i === 2 ? 1 : 0 : config._a[i];\n } // Check for 24:00:00.000\n\n\n if (config._a[HOUR] === 24 && config._a[MINUTE] === 0 && config._a[SECOND] === 0 && config._a[MILLISECOND] === 0) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);\n expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay(); // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n } // check for mismatching day of week\n\n\n if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n w = config._w;\n\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4; // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n\n weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n curWeek = weekOfYear(createLocal(), dow, doy);\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); // Default to current week.\n\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n } // constant that refers to the ISO standard\n\n\n hooks.ISO_8601 = function () {}; // constant that refers to the RFC 2822 form\n\n\n hooks.RFC_2822 = function () {}; // date from string and format string\n\n\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n\n config._a = [];\n getParsingFlags(config).empty = true; // This array is used to make a Date, either with `new Date` or `Date.UTC`\n\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];\n\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n\n string = string.slice(string.indexOf(parsedInput) + parsedInput.length);\n totalParsedInputLength += parsedInput.length;\n } // don't parse if it's not a known token\n\n\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n } // add remaining unparsed input length to the string\n\n\n getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;\n\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n } // clear _12h flag if hour is <= 12\n\n\n if (config._a[HOUR] <= 12 && getParsingFlags(config).bigHour === true && config._a[HOUR] > 0) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem; // handle meridiem\n\n config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem); // handle era\n\n era = getParsingFlags(config).era;\n\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n\n if (isPm && hour < 12) {\n hour += 12;\n }\n\n if (!isPm && hour === 12) {\n hour = 0;\n }\n\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n } // date from string and array of format strings\n\n\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n } // if there is any input that was not parsed add a penalty for that format\n\n\n currentScore += getParsingFlags(tempConfig).charsLeftOver; //or tokens\n\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (scoreToBeat == null || currentScore < scoreToBeat || validFormatFound) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map([i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond], function (obj) {\n return obj && parseInt(obj, 10);\n });\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || format === undefined && input === '') {\n return createInvalid({\n nullInput: true\n });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (isObject(input) && isObjectEmpty(input) || isArray(input) && input.length === 0) {\n input = undefined;\n } // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n\n\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate('moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', function () {\n var other = createLocal.apply(null, arguments);\n\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }),\n prototypeMax = deprecate('moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', function () {\n var other = createLocal.apply(null, arguments);\n\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }); // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n\n function pickBy(fn, moments) {\n var res, i;\n\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n\n if (!moments.length) {\n return createLocal();\n }\n\n res = moments[0];\n\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n\n return res;\n } // TODO: Use [].sort instead?\n\n\n function min() {\n var args = [].slice.call(arguments, 0);\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n return pickBy('isAfter', args);\n }\n\n var now = function now() {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n\n for (key in m) {\n if (hasOwnProp(m, key) && !(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n this._isValid = isDurationValid(normalizedInput); // representation for dateAddRemove\n\n this._milliseconds = +milliseconds + seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n\n this._days = +days + weeks * 7; // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n\n this._months = +months + quarters * 3 + years * 12;\n this._data = {};\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n } // compare two arrays, return the number of differences\n\n\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (dontConvert && array1[i] !== array2[i] || !dontConvert && toInt(array1[i]) !== toInt(array2[i])) {\n diffs++;\n }\n }\n\n return diffs + lengthDiff;\n } // FORMATTING\n\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n\n return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~offset % 60, 2);\n });\n }\n\n offset('Z', ':');\n offset('ZZ', ''); // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n }); // HELPERS\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n } // Return a moment from input, that is local/utc/zone equivalent to model.\n\n\n function cloneWithOffset(input, model) {\n var res, diff;\n\n if (model._isUTC) {\n res = model.clone();\n diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf(); // Use low-level api, because this fn is low-level api.\n\n res._d.setTime(res._d.valueOf() + diff);\n\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n } // HOOKS\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n\n\n hooks.updateOffset = function () {}; // MOMENTS\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n\n\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n\n this._offset = input;\n this._isUTC = true;\n\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(this, createDuration(input - offset, 'm'), 1, false);\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n\n input = input ? createLocal(input).utcOffset() : 0;\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset();\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted = this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n } // ASP.NET json date format regex\n\n\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if (match = aspNetRegex.exec(input)) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match\n\n };\n } else if (match = isoRegex.exec(input)) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign)\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {\n diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.')); // apply sign while we're at it\n\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n res.months = other.month() - base.month() + (other.year() - base.year()) * 12;\n\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n\n if (!(base.isValid() && other.isValid())) {\n return {\n milliseconds: 0,\n months: 0\n };\n }\n\n other = cloneWithOffset(other, base);\n\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n } // TODO: remove 'name' arg after deprecation is removed\n\n\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp; //invert the arguments, but complain about it\n\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' + 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n } // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n\n\n function isMomentInput(input) {\n return isMoment(input) || isDate(input) || isString(input) || isNumber(input) || isNumberOrStringArray(input) || isMomentInputObject(input) || input === null || input === undefined;\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = ['years', 'year', 'y', 'months', 'month', 'M', 'days', 'day', 'd', 'dates', 'date', 'D', 'hours', 'hour', 'h', 'minutes', 'minute', 'm', 'seconds', 'second', 's', 'milliseconds', 'millisecond', 'ms'],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n\n if (arrayTest) {\n dataTypeTest = input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = ['sameDay', 'nextDay', 'lastDay', 'nextWeek', 'lastWeek', 'sameElse'],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6 ? 'sameElse' : diff < -1 ? 'lastWeek' : diff < 0 ? 'lastDay' : diff < 1 ? 'sameDay' : diff < 2 ? 'nextDay' : diff < 7 ? 'nextWeek' : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n } // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n\n\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);\n return this.format(output || this.localeData().calendar(format, this, createLocal(now)));\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n\n units = normalizeUnits(units) || 'millisecond';\n\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n\n units = normalizeUnits(units) || 'millisecond';\n\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n\n inclusivity = inclusivity || '()';\n return (inclusivity[0] === '(' ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) && (inclusivity[1] === ')' ? this.isBefore(localTo, units) : !this.isAfter(localTo, units));\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n\n units = normalizeUnits(units) || 'millisecond';\n\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n\n case 'month':\n output = monthDiff(this, that);\n break;\n\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n\n case 'second':\n output = (this - that) / 1e3;\n break;\n // 1000\n\n case 'minute':\n output = (this - that) / 6e4;\n break;\n // 1000 * 60\n\n case 'hour':\n output = (this - that) / 36e5;\n break;\n // 1000 * 60 * 60\n\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break;\n // 1000 * 60 * 60 * 24, negate dst\n\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break;\n // 1000 * 60 * 60 * 24 * 7, negate dst\n\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n } // difference in months\n\n\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); // linear across the month\n\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); // linear across the month\n\n adjust = (b - anchor) / (anchor2 - anchor);\n } //check for negative zero, return zero if negative zero\n\n\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z'));\n }\n }\n\n return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n\n\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;\n }\n\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) {\n return createDuration({\n to: this,\n from: time\n }).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) {\n return createDuration({\n from: this,\n to: time\n }).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n } // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n\n\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n\n return this;\n }\n }\n\n var lang = deprecate('moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n });\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR; // actual modulo - handles negative numbers (for dates before 1970):\n\n function mod$1(dividend, divisor) {\n return (dividend % divisor + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3, 1);\n break;\n\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday());\n break;\n\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1));\n break;\n\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR);\n break;\n\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3 + 3, 1) - 1;\n break;\n\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday() + 7) - 1;\n break;\n\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 1;\n break;\n\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n\n case 'hour':\n time = this._d.valueOf();\n time += MS_PER_HOUR - mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR) - 1;\n break;\n\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds()\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n addParseToken(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n });\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1; // truncate time\n\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until || eras[i].until <= val && val <= eras[i].since) {\n return (this.year() - hooks(eras[i].since).year()) * dir + eras[i].offset;\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp('^(' + narrowPieces.join('|') + ')', 'i');\n } // FORMATTING\n\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear'); // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG'); // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1); // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n });\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n }); // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(this, input, this.week(), this.weekday(), this.localeData()._week.dow, this.localeData()._week.doy);\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(this, input, this.isoWeek(), this.isoWeekday(), 1, 4);\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n } // FORMATTING\n\n\n addFormatToken('Q', 0, 'Qo', 'quarter'); // ALIASES\n\n addUnitAlias('quarter', 'Q'); // PRIORITY\n\n addUnitPriority('quarter', 7); // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n }); // MOMENTS\n\n function getSetQuarter(input) {\n return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);\n } // FORMATTING\n\n\n addFormatToken('D', ['DD', 2], 'Do', 'date'); // ALIASES\n\n addUnitAlias('date', 'D'); // PRIORITY\n\n addUnitPriority('date', 9); // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict ? locale._dayOfMonthOrdinalParse || locale._ordinalParse : locale._dayOfMonthOrdinalParseLenient;\n });\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n }); // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true); // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD'); // PRIORITY\n\n addUnitPriority('dayOfYear', 4); // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n }); // HELPERS\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n } // FORMATTING\n\n\n addFormatToken('m', ['mm', 2], 0, 'minute'); // ALIASES\n\n addUnitAlias('minute', 'm'); // PRIORITY\n\n addUnitPriority('minute', 14); // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE); // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false); // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second'); // ALIASES\n\n addUnitAlias('second', 's'); // PRIORITY\n\n addUnitPriority('second', 15); // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND); // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false); // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n }); // ALIASES\n\n addUnitAlias('millisecond', 'ms'); // PRIORITY\n\n addUnitPriority('millisecond', 16); // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n var token, getSetMillisecond;\n\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false); // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName'); // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);\n proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);\n proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);\n proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);\n proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n\n return out;\n } // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n\n\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [{\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD'\n }, {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC'\n }],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function ordinal(number) {\n var b = number % 10,\n output = toInt(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n }\n }); // Side effect imports\n\n hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);\n hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n return duration._bubble();\n } // supports only 2.0-style add(1, 's') or add(duration)\n\n\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n } // supports only 2.0-style subtract(1, 's') or subtract(duration)\n\n\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays; // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n\n if (!(milliseconds >= 0 && days >= 0 && months >= 0 || milliseconds <= 0 && days <= 0 && months <= 0)) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n } // The following code bubbles up values, see the tests for\n // examples of what that means.\n\n\n data.milliseconds = milliseconds % 1000;\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n days += absFloor(hours / 24); // convert days to months\n\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays)); // 12 months -> 1 year\n\n years = absFloor(months / 12);\n months %= 12;\n data.days = days;\n data.months = months;\n data.years = years;\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return days * 4800 / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return months * 146097 / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n\n var days,\n months,\n milliseconds = this._milliseconds;\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n\n switch (units) {\n case 'month':\n return months;\n\n case 'quarter':\n return months / 3;\n\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n\n case 'day':\n return days + milliseconds / 864e5;\n\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n } // TODO: Use this.as('ms')?\n\n\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n\n return this._milliseconds + this._days * 864e5 + this._months % 12 * 2592e6 + toInt(this._months / 12) * 31536e6;\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44,\n // a few seconds to seconds\n s: 45,\n // seconds to minute\n m: 45,\n // minutes to hour\n h: 22,\n // hours to day\n d: 26,\n // days to month/week\n w: null,\n // weeks to month\n M: 11 // months to year\n\n }; // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a = seconds <= thresholds.ss && ['s', seconds] || seconds < thresholds.s && ['ss', seconds] || minutes <= 1 && ['m'] || minutes < thresholds.m && ['mm', minutes] || hours <= 1 && ['h'] || hours < thresholds.h && ['hh', hours] || days <= 1 && ['d'] || days < thresholds.d && ['dd', days];\n\n if (thresholds.w != null) {\n a = a || weeks <= 1 && ['w'] || weeks < thresholds.w && ['ww', weeks];\n }\n\n a = a || months <= 1 && ['M'] || months < thresholds.M && ['MM', months] || years <= 1 && ['y'] || ['yy', years];\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n } // This function allows you to set the rounding function for relative time strings\n\n\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n\n return false;\n } // This function allows you to set a threshold for relative time strings\n\n\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n\n if (limit === undefined) {\n return thresholds[threshold];\n }\n\n thresholds[threshold] = limit;\n\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n } // 3600 seconds -> 60 minutes -> 1 hour\n\n\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60; // 12 months -> 1 year\n\n years = absFloor(months / 12);\n months %= 12; // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n return totalSign + 'P' + (years ? ymSign + years + 'Y' : '') + (months ? ymSign + months + 'M' : '') + (days ? daysSign + days + 'D' : '') + (hours || minutes || seconds ? 'T' : '') + (hours ? hmsSign + hours + 'H' : '') + (minutes ? hmsSign + minutes + 'M' : '') + (seconds ? hmsSign + s + 'S' : '');\n }\n\n var proto$2 = Duration.prototype;\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);\n proto$2.lang = lang; // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf'); // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n }); //! moment.js\n\n hooks.version = '2.29.4';\n setHookCallback(createLocal);\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto; // currently HTML5 input type only supports 24-hour formats\n\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm',\n // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss',\n // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS',\n // \n DATE: 'YYYY-MM-DD',\n // \n TIME: 'HH:mm',\n // \n TIME_SECONDS: 'HH:mm:ss',\n // \n TIME_MS: 'HH:mm:ss.SSS',\n // \n WEEK: 'GGGG-[W]WW',\n // \n MONTH: 'YYYY-MM' // \n\n };\n return hooks;\n});","'use strict';\n\nvar _slicedToArray = require(\"C:/a/4/s/node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nvar _toConsumableArray = require(\"C:/a/4/s/node_modules/@babel/runtime/helpers/toConsumableArray.js\");\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\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\nvar strictUriEncode = require('strict-uri-encode');\n\nvar decodeComponent = require('decode-uri-component');\n\nvar splitOnFirst = require('split-on-first');\n\nvar filterObject = require('filter-obj');\n\nvar isNullOrUndefined = function isNullOrUndefined(value) {\n return value === null || value === undefined;\n};\n\nfunction encoderForArrayFormat(options) {\n switch (options.arrayFormat) {\n case 'index':\n return function (key) {\n return function (result, value) {\n var index = result.length;\n\n if (value === undefined || options.skipNull && value === null || options.skipEmptyString && value === '') {\n return result;\n }\n\n if (value === null) {\n return [].concat(_toConsumableArray(result), [[encode(key, options), '[', index, ']'].join('')]);\n }\n\n return [].concat(_toConsumableArray(result), [[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')]);\n };\n };\n\n case 'bracket':\n return function (key) {\n return function (result, value) {\n if (value === undefined || options.skipNull && value === null || options.skipEmptyString && value === '') {\n return result;\n }\n\n if (value === null) {\n return [].concat(_toConsumableArray(result), [[encode(key, options), '[]'].join('')]);\n }\n\n return [].concat(_toConsumableArray(result), [[encode(key, options), '[]=', encode(value, options)].join('')]);\n };\n };\n\n case 'comma':\n case 'separator':\n return function (key) {\n return function (result, value) {\n if (value === null || value === undefined || value.length === 0) {\n return result;\n }\n\n if (result.length === 0) {\n return [[encode(key, options), '=', encode(value, options)].join('')];\n }\n\n return [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n };\n };\n\n default:\n return function (key) {\n return function (result, value) {\n if (value === undefined || options.skipNull && value === null || options.skipEmptyString && value === '') {\n return result;\n }\n\n if (value === null) {\n return [].concat(_toConsumableArray(result), [encode(key, options)]);\n }\n\n return [].concat(_toConsumableArray(result), [[encode(key, options), '=', encode(value, options)].join('')]);\n };\n };\n }\n}\n\nfunction parserForArrayFormat(options) {\n var result;\n\n switch (options.arrayFormat) {\n case 'index':\n return function (key, value, accumulator) {\n result = /\\[(\\d*)\\]$/.exec(key);\n key = key.replace(/\\[\\d*\\]$/, '');\n\n if (!result) {\n accumulator[key] = value;\n return;\n }\n\n if (accumulator[key] === undefined) {\n accumulator[key] = {};\n }\n\n accumulator[key][result[1]] = value;\n };\n\n case 'bracket':\n return function (key, value, accumulator) {\n result = /(\\[\\])$/.exec(key);\n key = key.replace(/\\[\\]$/, '');\n\n if (!result) {\n accumulator[key] = value;\n return;\n }\n\n if (accumulator[key] === undefined) {\n accumulator[key] = [value];\n return;\n }\n\n accumulator[key] = [].concat(accumulator[key], value);\n };\n\n case 'comma':\n case 'separator':\n return function (key, value, accumulator) {\n var isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n var isEncodedArray = typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator);\n value = isEncodedArray ? decode(value, options) : value;\n var newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(function (item) {\n return decode(item, options);\n }) : value === null ? value : decode(value, options);\n accumulator[key] = newValue;\n };\n\n default:\n return function (key, value, accumulator) {\n if (accumulator[key] === undefined) {\n accumulator[key] = value;\n return;\n }\n\n accumulator[key] = [].concat(accumulator[key], value);\n };\n }\n}\n\nfunction validateArrayFormatSeparator(value) {\n if (typeof value !== 'string' || value.length !== 1) {\n throw new TypeError('arrayFormatSeparator must be single character string');\n }\n}\n\nfunction encode(value, options) {\n if (options.encode) {\n return options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n }\n\n return value;\n}\n\nfunction decode(value, options) {\n if (options.decode) {\n return decodeComponent(value);\n }\n\n return value;\n}\n\nfunction keysSorter(input) {\n if (Array.isArray(input)) {\n return input.sort();\n }\n\n if (typeof input === 'object') {\n return keysSorter(Object.keys(input)).sort(function (a, b) {\n return Number(a) - Number(b);\n }).map(function (key) {\n return input[key];\n });\n }\n\n return input;\n}\n\nfunction removeHash(input) {\n var hashStart = input.indexOf('#');\n\n if (hashStart !== -1) {\n input = input.slice(0, hashStart);\n }\n\n return input;\n}\n\nfunction getHash(url) {\n var hash = '';\n var hashStart = url.indexOf('#');\n\n if (hashStart !== -1) {\n hash = url.slice(hashStart);\n }\n\n return hash;\n}\n\nfunction extract(input) {\n input = removeHash(input);\n var queryStart = input.indexOf('?');\n\n if (queryStart === -1) {\n return '';\n }\n\n return input.slice(queryStart + 1);\n}\n\nfunction parseValue(value, options) {\n if (options.parseNumbers && !Number.isNaN(Number(value)) && typeof value === 'string' && value.trim() !== '') {\n value = Number(value);\n } else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n value = value.toLowerCase() === 'true';\n }\n\n return value;\n}\n\nfunction parse(query, options) {\n options = Object.assign({\n decode: true,\n sort: true,\n arrayFormat: 'none',\n arrayFormatSeparator: ',',\n parseNumbers: false,\n parseBooleans: false\n }, options);\n validateArrayFormatSeparator(options.arrayFormatSeparator);\n var formatter = parserForArrayFormat(options); // Create an object with no prototype\n\n var ret = Object.create(null);\n\n if (typeof query !== 'string') {\n return ret;\n }\n\n query = query.trim().replace(/^[?#&]/, '');\n\n if (!query) {\n return ret;\n }\n\n var _iterator = _createForOfIteratorHelper(query.split('&')),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var param = _step.value;\n\n if (param === '') {\n continue;\n }\n\n var _splitOnFirst = splitOnFirst(options.decode ? param.replace(/\\+/g, ' ') : param, '='),\n _splitOnFirst2 = _slicedToArray(_splitOnFirst, 2),\n _key = _splitOnFirst2[0],\n _value = _splitOnFirst2[1]; // Missing `=` should be `null`:\n // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\n\n _value = _value === undefined ? null : ['comma', 'separator'].includes(options.arrayFormat) ? _value : decode(_value, options);\n formatter(decode(_key, options), _value, ret);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n for (var _i = 0, _Object$keys = Object.keys(ret); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n var value = ret[key];\n\n if (typeof value === 'object' && value !== null) {\n for (var _i2 = 0, _Object$keys2 = Object.keys(value); _i2 < _Object$keys2.length; _i2++) {\n var k = _Object$keys2[_i2];\n value[k] = parseValue(value[k], options);\n }\n } else {\n ret[key] = parseValue(value, options);\n }\n }\n\n if (options.sort === false) {\n return ret;\n }\n\n return (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce(function (result, key) {\n var value = ret[key];\n\n if (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n // Sort object keys, not values\n result[key] = keysSorter(value);\n } else {\n result[key] = value;\n }\n\n return result;\n }, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = function (object, options) {\n if (!object) {\n return '';\n }\n\n options = Object.assign({\n encode: true,\n strict: true,\n arrayFormat: 'none',\n arrayFormatSeparator: ','\n }, options);\n validateArrayFormatSeparator(options.arrayFormatSeparator);\n\n var shouldFilter = function shouldFilter(key) {\n return options.skipNull && isNullOrUndefined(object[key]) || options.skipEmptyString && object[key] === '';\n };\n\n var formatter = encoderForArrayFormat(options);\n var objectCopy = {};\n\n for (var _i3 = 0, _Object$keys3 = Object.keys(object); _i3 < _Object$keys3.length; _i3++) {\n var key = _Object$keys3[_i3];\n\n if (!shouldFilter(key)) {\n objectCopy[key] = object[key];\n }\n }\n\n var keys = Object.keys(objectCopy);\n\n if (options.sort !== false) {\n keys.sort(options.sort);\n }\n\n return keys.map(function (key) {\n var value = object[key];\n\n if (value === undefined) {\n return '';\n }\n\n if (value === null) {\n return encode(key, options);\n }\n\n if (Array.isArray(value)) {\n return value.reduce(formatter(key), []).join('&');\n }\n\n return encode(key, options) + '=' + encode(value, options);\n }).filter(function (x) {\n return x.length > 0;\n }).join('&');\n};\n\nexports.parseUrl = function (url, options) {\n options = Object.assign({\n decode: true\n }, options);\n\n var _splitOnFirst3 = splitOnFirst(url, '#'),\n _splitOnFirst4 = _slicedToArray(_splitOnFirst3, 2),\n url_ = _splitOnFirst4[0],\n hash = _splitOnFirst4[1];\n\n return Object.assign({\n url: url_.split('?')[0] || '',\n query: parse(extract(url), options)\n }, options && options.parseFragmentIdentifier && hash ? {\n fragmentIdentifier: decode(hash, options)\n } : {});\n};\n\nexports.stringifyUrl = function (object, options) {\n options = Object.assign({\n encode: true,\n strict: true\n }, options);\n var url = removeHash(object.url).split('?')[0] || '';\n var queryFromUrl = exports.extract(object.url);\n var parsedQueryFromUrl = exports.parse(queryFromUrl, {\n sort: false\n });\n var query = Object.assign(parsedQueryFromUrl, object.query);\n var queryString = exports.stringify(query, options);\n\n if (queryString) {\n queryString = \"?\".concat(queryString);\n }\n\n var hash = getHash(object.url);\n\n if (object.fragmentIdentifier) {\n hash = \"#\".concat(encode(object.fragmentIdentifier, options));\n }\n\n return \"\".concat(url).concat(queryString).concat(hash);\n};\n\nexports.pick = function (input, filter, options) {\n options = Object.assign({\n parseFragmentIdentifier: true\n }, options);\n\n var _exports$parseUrl = exports.parseUrl(input, options),\n url = _exports$parseUrl.url,\n query = _exports$parseUrl.query,\n fragmentIdentifier = _exports$parseUrl.fragmentIdentifier;\n\n return exports.stringifyUrl({\n url: url,\n query: filterObject(query, filter),\n fragmentIdentifier: fragmentIdentifier\n }, options);\n};\n\nexports.exclude = function (input, filter, options) {\n var exclusionFilter = Array.isArray(filter) ? function (key) {\n return !filter.includes(key);\n } : function (key, value) {\n return !filter(key, value);\n };\n return exports.pick(input, exclusionFilter, options);\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'use strict';\n\nvar b = \"function\" === typeof Symbol && Symbol.for,\n c = b ? Symbol.for(\"react.element\") : 60103,\n d = b ? Symbol.for(\"react.portal\") : 60106,\n e = b ? Symbol.for(\"react.fragment\") : 60107,\n f = b ? Symbol.for(\"react.strict_mode\") : 60108,\n g = b ? Symbol.for(\"react.profiler\") : 60114,\n h = b ? Symbol.for(\"react.provider\") : 60109,\n k = b ? Symbol.for(\"react.context\") : 60110,\n l = b ? Symbol.for(\"react.async_mode\") : 60111,\n m = b ? Symbol.for(\"react.concurrent_mode\") : 60111,\n n = b ? Symbol.for(\"react.forward_ref\") : 60112,\n p = b ? Symbol.for(\"react.suspense\") : 60113,\n q = b ? Symbol.for(\"react.suspense_list\") : 60120,\n r = b ? Symbol.for(\"react.memo\") : 60115,\n t = b ? Symbol.for(\"react.lazy\") : 60116,\n v = b ? Symbol.for(\"react.block\") : 60121,\n w = b ? Symbol.for(\"react.fundamental\") : 60117,\n x = b ? Symbol.for(\"react.responder\") : 60118,\n y = b ? Symbol.for(\"react.scope\") : 60119;\n\nfunction z(a) {\n if (\"object\" === typeof a && null !== a) {\n var u = a.$$typeof;\n\n switch (u) {\n case c:\n switch (a = a.type, a) {\n case l:\n case m:\n case e:\n case g:\n case f:\n case p:\n return a;\n\n default:\n switch (a = a && a.$$typeof, a) {\n case k:\n case n:\n case t:\n case r:\n case h:\n return a;\n\n default:\n return u;\n }\n\n }\n\n case d:\n return u;\n }\n }\n}\n\nfunction A(a) {\n return z(a) === m;\n}\n\nexports.AsyncMode = l;\nexports.ConcurrentMode = m;\nexports.ContextConsumer = k;\nexports.ContextProvider = h;\nexports.Element = c;\nexports.ForwardRef = n;\nexports.Fragment = e;\nexports.Lazy = t;\nexports.Memo = r;\nexports.Portal = d;\nexports.Profiler = g;\nexports.StrictMode = f;\nexports.Suspense = p;\n\nexports.isAsyncMode = function (a) {\n return A(a) || z(a) === l;\n};\n\nexports.isConcurrentMode = A;\n\nexports.isContextConsumer = function (a) {\n return z(a) === k;\n};\n\nexports.isContextProvider = function (a) {\n return z(a) === h;\n};\n\nexports.isElement = function (a) {\n return \"object\" === typeof a && null !== a && a.$$typeof === c;\n};\n\nexports.isForwardRef = function (a) {\n return z(a) === n;\n};\n\nexports.isFragment = function (a) {\n return z(a) === e;\n};\n\nexports.isLazy = function (a) {\n return z(a) === t;\n};\n\nexports.isMemo = function (a) {\n return z(a) === r;\n};\n\nexports.isPortal = function (a) {\n return z(a) === d;\n};\n\nexports.isProfiler = function (a) {\n return z(a) === g;\n};\n\nexports.isStrictMode = function (a) {\n return z(a) === f;\n};\n\nexports.isSuspense = function (a) {\n return z(a) === p;\n};\n\nexports.isValidElementType = function (a) {\n 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);\n};\n\nexports.typeOf = z;","'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}","import React from 'react';\nexport var ReactReduxContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n ReactReduxContext.displayName = 'ReactRedux';\n}\n\nexport default ReactReduxContext;","// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\nvar batch = defaultNoopBatch; // Allow injecting another batching function later\n\nexport var setBatch = function setBatch(newBatch) {\n return batch = newBatch;\n}; // Supply a getter just to skip dealing with ESM bindings\n\nexport var getBatch = function getBatch() {\n return batch;\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 var batch = getBatch();\n var first = null;\n var last = null;\n return {\n clear: function clear() {\n first = null;\n last = null;\n },\n notify: function notify() {\n batch(function () {\n var listener = first;\n\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n get: function get() {\n var listeners = [];\n var listener = first;\n\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n\n return listeners;\n },\n subscribe: function subscribe(callback) {\n var isSubscribed = true;\n var listener = last = {\n callback: 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\nvar nullListeners = {\n notify: function notify() {},\n get: function get() {\n return [];\n }\n};\nexport function createSubscription(store, parentSub) {\n var unsubscribe;\n var listeners = nullListeners;\n\n function addNestedSub(listener) {\n trySubscribe();\n return listeners.subscribe(listener);\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 Boolean(unsubscribe);\n }\n\n function trySubscribe() {\n if (!unsubscribe) {\n unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper);\n listeners = createListenerCollection();\n }\n }\n\n function tryUnsubscribe() {\n if (unsubscribe) {\n unsubscribe();\n unsubscribe = undefined;\n listeners.clear();\n listeners = nullListeners;\n }\n }\n\n var subscription = {\n addNestedSub: addNestedSub,\n notifyNestedSubs: notifyNestedSubs,\n handleChangeWrapper: handleChangeWrapper,\n isSubscribed: isSubscribed,\n trySubscribe: trySubscribe,\n tryUnsubscribe: tryUnsubscribe,\n getListeners: function getListeners() {\n return listeners;\n }\n };\n return subscription;\n}","import { useEffect, useLayoutEffect } 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\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;","import React, { useMemo } from 'react';\nimport { ReactReduxContext } from './Context';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\n\nfunction Provider(_ref) {\n var store = _ref.store,\n context = _ref.context,\n children = _ref.children;\n var contextValue = useMemo(function () {\n var subscription = createSubscription(store);\n subscription.onStateChange = subscription.notifyNestedSubs;\n return {\n store: store,\n subscription: subscription\n };\n }, [store]);\n var previousState = useMemo(function () {\n return store.getState();\n }, [store]);\n useIsomorphicLayoutEffect(function () {\n var subscription = contextValue.subscription;\n subscription.trySubscribe();\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n\n return function () {\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n };\n }, [contextValue, previousState]);\n var Context = context || ReactReduxContext;\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nif (process.env.NODE_ENV !== 'production') {}\n\nexport default Provider;","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","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\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\n return target;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"getDisplayName\", \"methodName\", \"renderCountProp\", \"shouldHandleStateChanges\", \"storeKey\", \"withRef\", \"forwardRef\", \"context\"],\n _excluded2 = [\"reactReduxForwardedRef\"];\nimport hoistStatics from 'hoist-non-react-statics';\nimport React, { useContext, useMemo, useRef, useReducer } from 'react';\nimport { isValidElementType, isContextConsumer } from 'react-is';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from './Context'; // Define some constant arrays just to avoid re-creating these\n\nvar EMPTY_ARRAY = [];\nvar NO_SUBSCRIPTION_ARRAY = [null, null];\n\nvar stringifyComponent = function stringifyComponent(Comp) {\n try {\n return JSON.stringify(Comp);\n } catch (err) {\n return String(Comp);\n }\n};\n\nfunction storeStateUpdatesReducer(state, action) {\n var updateCount = state[1];\n return [action.payload, updateCount + 1];\n}\n\nfunction useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) {\n useIsomorphicLayoutEffect(function () {\n return effectFunc.apply(void 0, effectArgs);\n }, dependencies);\n}\n\nfunction captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs) {\n // We want to capture the wrapper props and child props we used for later comparisons\n lastWrapperProps.current = wrapperProps;\n lastChildProps.current = actualChildProps;\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}\n\nfunction subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch) {\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 var didUnsubscribe = false;\n var lastThrownError = null; // We'll run this callback every time a store subscription update propagates to this component\n\n var checkForUpdates = function checkForUpdates() {\n if (didUnsubscribe) {\n // Don't run stale listeners.\n // Redux doesn't guarantee unsubscriptions happen until next dispatch.\n return;\n }\n\n var latestStoreState = store.getState();\n var 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; // If the child props _did_ change (or we caught an error), this wrapper component needs to re-render\n\n forceComponentUpdateDispatch({\n type: 'STORE_UPDATED',\n payload: {\n error: error\n }\n });\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 var unsubscribeWrapper = function 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}\n\nvar initStateUpdates = function initStateUpdates() {\n return [null, 0];\n};\n\nexport default function connectAdvanced(\n/*\n selectorFactory is a func that is responsible for returning the selector function used to\n compute new props from state, props, and dispatch. For example:\n export default connectAdvanced((dispatch, options) => (state, props) => ({\n thing: state.things[props.thingId],\n saveThing: fields => dispatch(actionCreators.saveThing(props.thingId, fields)),\n }))(YourComponent)\n Access to dispatch is provided to the factory so selectorFactories can bind actionCreators\n outside of their selector as an optimization. Options passed to connectAdvanced are passed to\n the selectorFactory, along with displayName and WrappedComponent, as the second argument.\n Note that selectorFactory is responsible for all caching/memoization of inbound and outbound\n props. Do not use connectAdvanced directly without memoizing results between calls to your\n selector, otherwise the Connect component will re-render on every state or props change.\n*/\nselectorFactory, // options object:\n_ref) {\n if (_ref === void 0) {\n _ref = {};\n }\n\n var _ref2 = _ref,\n _ref2$getDisplayName = _ref2.getDisplayName,\n getDisplayName = _ref2$getDisplayName === void 0 ? function (name) {\n return \"ConnectAdvanced(\" + name + \")\";\n } : _ref2$getDisplayName,\n _ref2$methodName = _ref2.methodName,\n methodName = _ref2$methodName === void 0 ? 'connectAdvanced' : _ref2$methodName,\n _ref2$renderCountProp = _ref2.renderCountProp,\n renderCountProp = _ref2$renderCountProp === void 0 ? undefined : _ref2$renderCountProp,\n _ref2$shouldHandleSta = _ref2.shouldHandleStateChanges,\n shouldHandleStateChanges = _ref2$shouldHandleSta === void 0 ? true : _ref2$shouldHandleSta,\n _ref2$storeKey = _ref2.storeKey,\n storeKey = _ref2$storeKey === void 0 ? 'store' : _ref2$storeKey,\n _ref2$withRef = _ref2.withRef,\n withRef = _ref2$withRef === void 0 ? false : _ref2$withRef,\n _ref2$forwardRef = _ref2.forwardRef,\n forwardRef = _ref2$forwardRef === void 0 ? false : _ref2$forwardRef,\n _ref2$context = _ref2.context,\n context = _ref2$context === void 0 ? ReactReduxContext : _ref2$context,\n connectOptions = _objectWithoutPropertiesLoose(_ref2, _excluded);\n\n if (process.env.NODE_ENV !== 'production') {\n if (renderCountProp !== undefined) {\n throw new Error(\"renderCountProp is removed. render counting is built into the latest React Dev Tools profiling extension\");\n }\n\n if (withRef) {\n throw new Error('withRef is removed. To access the wrapped instance, use a ref on the connected component');\n }\n\n var customStoreWarningMessage = 'To use a custom Redux store for specific components, create a custom React context with ' + \"React.createContext(), and pass the context object to React Redux's Provider and specific components\" + ' like: . ' + 'You may also pass a {context : MyContext} option to connect';\n\n if (storeKey !== 'store') {\n throw new Error('storeKey has been removed and does not do anything. ' + customStoreWarningMessage);\n }\n }\n\n var Context = context;\n return function 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 \" + (methodName + \". Instead received \" + stringifyComponent(WrappedComponent)));\n }\n\n var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n var displayName = getDisplayName(wrappedComponentName);\n\n var selectorFactoryOptions = _extends({}, connectOptions, {\n getDisplayName: getDisplayName,\n methodName: methodName,\n renderCountProp: renderCountProp,\n shouldHandleStateChanges: shouldHandleStateChanges,\n storeKey: storeKey,\n displayName: displayName,\n wrappedComponentName: wrappedComponentName,\n WrappedComponent: WrappedComponent\n });\n\n var pure = connectOptions.pure;\n\n function createChildSelector(store) {\n return selectorFactory(store.dispatch, selectorFactoryOptions);\n } // If we aren't running in \"pure\" mode, we don't want to memoize values.\n // To avoid conditionally calling hooks, we fall back to a tiny wrapper\n // that just executes the given callback immediately.\n\n\n var usePureOnlyMemo = pure ? useMemo : function (callback) {\n return callback();\n };\n\n function ConnectFunction(props) {\n var _useMemo = useMemo(function () {\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 var reactReduxForwardedRef = props.reactReduxForwardedRef,\n wrapperProps = _objectWithoutPropertiesLoose(props, _excluded2);\n\n return [props.context, reactReduxForwardedRef, wrapperProps];\n }, [props]),\n propsContext = _useMemo[0],\n reactReduxForwardedRef = _useMemo[1],\n wrapperProps = _useMemo[2];\n\n var ContextToUse = useMemo(function () {\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 && isContextConsumer( /*#__PURE__*/React.createElement(propsContext.Consumer, null)) ? propsContext : Context;\n }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available\n\n var contextValue = 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 var didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);\n var 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 var store = didStoreComeFromProps ? props.store : contextValue.store;\n var childPropsSelector = useMemo(function () {\n // The child props selector needs the store reference as an input.\n // Re-create this selector whenever the store changes.\n return createChildSelector(store);\n }, [store]);\n\n var _useMemo2 = useMemo(function () {\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 // 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 var subscription = createSubscription(store, didStoreComeFromProps ? null : 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 // `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 var notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription);\n return [subscription, notifyNestedSubs];\n }, [store, didStoreComeFromProps, contextValue]),\n subscription = _useMemo2[0],\n notifyNestedSubs = _useMemo2[1]; // 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\n var overriddenContextValue = useMemo(function () {\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: subscription\n });\n }, [didStoreComeFromProps, contextValue, subscription]); // We need to force this wrapper component to re-render whenever a Redux store update\n // causes a change to the calculated child component props (or we caught an error in mapState)\n\n var _useReducer = useReducer(storeStateUpdatesReducer, EMPTY_ARRAY, initStateUpdates),\n _useReducer$ = _useReducer[0],\n previousStateUpdateResult = _useReducer$[0],\n forceComponentUpdateDispatch = _useReducer[1]; // Propagate any mapState/mapDispatch errors upwards\n\n\n if (previousStateUpdateResult && previousStateUpdateResult.error) {\n throw previousStateUpdateResult.error;\n } // Set up refs to coordinate values between the subscription effect and the render logic\n\n\n var lastChildProps = useRef();\n var lastWrapperProps = useRef(wrapperProps);\n var childPropsFromStoreUpdate = useRef();\n var renderIsScheduled = useRef(false);\n var actualChildProps = usePureOnlyMemo(function () {\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 }, [store, previousStateUpdateResult, 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 useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs]); // Our re-subscribe logic only runs when the store/subscription setup changes\n\n useIsomorphicLayoutEffectWithArgs(subscribeUpdates, [shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch], [store, subscription, childPropsSelector]); // 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 var renderedWrappedComponent = useMemo(function () {\n return /*#__PURE__*/React.createElement(WrappedComponent, _extends({}, actualChildProps, {\n ref: reactReduxForwardedRef\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 var renderedChild = useMemo(function () {\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 } // If we're in \"pure\" mode, ensure our wrapper component only re-renders when incoming props have changed.\n\n\n var Connect = pure ? React.memo(ConnectFunction) : ConnectFunction;\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = ConnectFunction.displayName = displayName;\n\n if (forwardRef) {\n var forwarded = React.forwardRef(function forwardConnectRef(props, ref) {\n return /*#__PURE__*/React.createElement(Connect, _extends({}, props, {\n reactReduxForwardedRef: ref\n }));\n });\n forwarded.displayName = displayName;\n forwarded.WrappedComponent = WrappedComponent;\n return hoistStatics(forwarded, WrappedComponent);\n }\n\n return hoistStatics(Connect, WrappedComponent);\n };\n}","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 var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return false;\n\n for (var 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}","import verifyPlainObject from '../utils/verifyPlainObject';\nexport function wrapMapToPropsConstant(getConstant) {\n return function initConstantSelector(dispatch, options) {\n var constant = getConstant(dispatch, options);\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\nexport function getDependsOnOwnProps(mapToProps) {\n return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? 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, _ref) {\n var displayName = _ref.displayName;\n\n var proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {\n return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch);\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 var 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}","import bindActionCreators from '../utils/bindActionCreators';\nimport { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapDispatchToPropsIsFunction(mapDispatchToProps) {\n return typeof mapDispatchToProps === 'function' ? wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps') : undefined;\n}\nexport function whenMapDispatchToPropsIsMissing(mapDispatchToProps) {\n return !mapDispatchToProps ? wrapMapToPropsConstant(function (dispatch) {\n return {\n dispatch: dispatch\n };\n }) : undefined;\n}\nexport function whenMapDispatchToPropsIsObject(mapDispatchToProps) {\n return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? wrapMapToPropsConstant(function (dispatch) {\n return bindActionCreators(mapDispatchToProps, dispatch);\n }) : undefined;\n}\nexport default [whenMapDispatchToPropsIsFunction, whenMapDispatchToPropsIsMissing, whenMapDispatchToPropsIsObject];","export default function bindActionCreators(actionCreators, dispatch) {\n var boundActionCreators = {};\n\n var _loop = function _loop(key) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = function () {\n return dispatch(actionCreator.apply(void 0, arguments));\n };\n }\n };\n\n for (var key in actionCreators) {\n _loop(key);\n }\n\n return boundActionCreators;\n}","import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapStateToPropsIsFunction(mapStateToProps) {\n return typeof mapStateToProps === 'function' ? wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps') : undefined;\n}\nexport function whenMapStateToPropsIsMissing(mapStateToProps) {\n return !mapStateToProps ? wrapMapToPropsConstant(function () {\n return {};\n }) : undefined;\n}\nexport default [whenMapStateToPropsIsFunction, whenMapStateToPropsIsMissing];","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport verifyPlainObject from '../utils/verifyPlainObject';\nexport function defaultMergeProps(stateProps, dispatchProps, ownProps) {\n return _extends({}, ownProps, stateProps, dispatchProps);\n}\nexport function wrapMergePropsFunc(mergeProps) {\n return function initMergePropsProxy(dispatch, _ref) {\n var displayName = _ref.displayName,\n pure = _ref.pure,\n areMergedPropsEqual = _ref.areMergedPropsEqual;\n var hasRunOnce = false;\n var mergedProps;\n return function mergePropsProxy(stateProps, dispatchProps, ownProps) {\n var nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n\n if (hasRunOnce) {\n if (!pure || !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 whenMergePropsIsFunction(mergeProps) {\n return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined;\n}\nexport function whenMergePropsIsOmitted(mergeProps) {\n return !mergeProps ? function () {\n return defaultMergeProps;\n } : undefined;\n}\nexport default [whenMergePropsIsFunction, whenMergePropsIsOmitted];","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"initMapStateToProps\", \"initMapDispatchToProps\", \"initMergeProps\"];\nimport verifySubselectors from './verifySubselectors';\nexport function impureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch) {\n return function impureFinalPropsSelector(state, ownProps) {\n return mergeProps(mapStateToProps(state, ownProps), mapDispatchToProps(dispatch, ownProps), ownProps);\n };\n}\nexport function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, _ref) {\n var areStatesEqual = _ref.areStatesEqual,\n areOwnPropsEqual = _ref.areOwnPropsEqual,\n areStatePropsEqual = _ref.areStatePropsEqual;\n var hasRunAtLeastOnce = false;\n var state;\n var ownProps;\n var stateProps;\n var dispatchProps;\n var 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 var nextStateProps = mapStateToProps(state, ownProps);\n var 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 var propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);\n var stateChanged = !areStatesEqual(nextState, state);\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} // TODO: Add more comments\n// If pure is true, the selector returned by selectorFactory will memoize its results,\n// allowing connectAdvanced's shouldComponentUpdate to return false if final\n// props have not changed. If false, the selector will always return a new\n// object and shouldComponentUpdate will always return true.\n\nexport default function finalPropsSelectorFactory(dispatch, _ref2) {\n var initMapStateToProps = _ref2.initMapStateToProps,\n initMapDispatchToProps = _ref2.initMapDispatchToProps,\n initMergeProps = _ref2.initMergeProps,\n options = _objectWithoutPropertiesLoose(_ref2, _excluded);\n\n var mapStateToProps = initMapStateToProps(dispatch, options);\n var mapDispatchToProps = initMapDispatchToProps(dispatch, options);\n var mergeProps = initMergeProps(dispatch, options);\n\n if (process.env.NODE_ENV !== 'production') {\n verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps, options.displayName);\n }\n\n var selectorFactory = options.pure ? pureFinalPropsSelectorFactory : impureFinalPropsSelectorFactory;\n return selectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"pure\", \"areStatesEqual\", \"areOwnPropsEqual\", \"areStatePropsEqual\", \"areMergedPropsEqual\"];\nimport connectAdvanced from '../components/connectAdvanced';\nimport shallowEqual from '../utils/shallowEqual';\nimport defaultMapDispatchToPropsFactories from './mapDispatchToProps';\nimport defaultMapStateToPropsFactories from './mapStateToProps';\nimport defaultMergePropsFactories from './mergeProps';\nimport defaultSelectorFactory from './selectorFactory';\n/*\n connect is a facade over connectAdvanced. It turns its args into a compatible\n selectorFactory, which has the signature:\n\n (dispatch, options) => (nextState, nextOwnProps) => nextFinalProps\n \n connect passes its args to connectAdvanced as options, which will in turn pass them to\n selectorFactory each time a Connect component instance is instantiated or hot reloaded.\n\n selectorFactory returns a final props selector from its mapStateToProps,\n mapStateToPropsFactories, mapDispatchToProps, mapDispatchToPropsFactories, mergeProps,\n mergePropsFactories, and pure args.\n\n The resulting final props selector is called by the Connect component instance whenever\n it receives new props or store state.\n */\n\nfunction match(arg, factories, name) {\n for (var i = factories.length - 1; i >= 0; i--) {\n var result = factories[i](arg);\n if (result) return result;\n }\n\n return function (dispatch, options) {\n throw new Error(\"Invalid value of type \" + typeof arg + \" for \" + name + \" argument when connecting component \" + options.wrappedComponentName + \".\");\n };\n}\n\nfunction strictEqual(a, b) {\n return a === b;\n} // createConnect with default args builds the 'official' connect behavior. Calling it with\n// different options opens up some testing and extensibility scenarios\n\n\nexport function createConnect(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$connectHOC = _ref.connectHOC,\n connectHOC = _ref$connectHOC === void 0 ? connectAdvanced : _ref$connectHOC,\n _ref$mapStateToPropsF = _ref.mapStateToPropsFactories,\n mapStateToPropsFactories = _ref$mapStateToPropsF === void 0 ? defaultMapStateToPropsFactories : _ref$mapStateToPropsF,\n _ref$mapDispatchToPro = _ref.mapDispatchToPropsFactories,\n mapDispatchToPropsFactories = _ref$mapDispatchToPro === void 0 ? defaultMapDispatchToPropsFactories : _ref$mapDispatchToPro,\n _ref$mergePropsFactor = _ref.mergePropsFactories,\n mergePropsFactories = _ref$mergePropsFactor === void 0 ? defaultMergePropsFactories : _ref$mergePropsFactor,\n _ref$selectorFactory = _ref.selectorFactory,\n selectorFactory = _ref$selectorFactory === void 0 ? defaultSelectorFactory : _ref$selectorFactory;\n\n return function connect(mapStateToProps, mapDispatchToProps, mergeProps, _ref2) {\n if (_ref2 === void 0) {\n _ref2 = {};\n }\n\n var _ref3 = _ref2,\n _ref3$pure = _ref3.pure,\n pure = _ref3$pure === void 0 ? true : _ref3$pure,\n _ref3$areStatesEqual = _ref3.areStatesEqual,\n areStatesEqual = _ref3$areStatesEqual === void 0 ? strictEqual : _ref3$areStatesEqual,\n _ref3$areOwnPropsEqua = _ref3.areOwnPropsEqual,\n areOwnPropsEqual = _ref3$areOwnPropsEqua === void 0 ? shallowEqual : _ref3$areOwnPropsEqua,\n _ref3$areStatePropsEq = _ref3.areStatePropsEqual,\n areStatePropsEqual = _ref3$areStatePropsEq === void 0 ? shallowEqual : _ref3$areStatePropsEq,\n _ref3$areMergedPropsE = _ref3.areMergedPropsEqual,\n areMergedPropsEqual = _ref3$areMergedPropsE === void 0 ? shallowEqual : _ref3$areMergedPropsE,\n extraOptions = _objectWithoutPropertiesLoose(_ref3, _excluded);\n\n var initMapStateToProps = match(mapStateToProps, mapStateToPropsFactories, 'mapStateToProps');\n var initMapDispatchToProps = match(mapDispatchToProps, mapDispatchToPropsFactories, 'mapDispatchToProps');\n var initMergeProps = match(mergeProps, mergePropsFactories, 'mergeProps');\n return connectHOC(selectorFactory, _extends({\n // used in error messages\n methodName: 'connect',\n // used to compute Connect's displayName from the wrapped component's displayName.\n getDisplayName: function getDisplayName(name) {\n return \"Connect(\" + name + \")\";\n },\n // if mapStateToProps is falsy, the Connect component doesn't subscribe to store state changes\n shouldHandleStateChanges: Boolean(mapStateToProps),\n // passed through to selectorFactory\n initMapStateToProps: initMapStateToProps,\n initMapDispatchToProps: initMapDispatchToProps,\n initMergeProps: initMergeProps,\n pure: pure,\n areStatesEqual: areStatesEqual,\n areOwnPropsEqual: areOwnPropsEqual,\n areStatePropsEqual: areStatePropsEqual,\n areMergedPropsEqual: areMergedPropsEqual\n }, extraOptions));\n };\n}\nexport default /*#__PURE__*/createConnect();","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\n/**\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\n * hook that you should usually not need to call directly.\n *\n * @returns {any} the value of the `ReactReduxContext`\n *\n * @example\n *\n * import React from 'react'\n * import { useReduxContext } from 'react-redux'\n *\n * export const CounterComponent = ({ value }) => {\n * const { store } = useReduxContext()\n * return
{store.getState()}
\n * }\n */\n\nexport function useReduxContext() {\n var contextValue = useContext(ReactReduxContext);\n\n if (process.env.NODE_ENV !== 'production' && !contextValue) {\n throw new Error('could not find react-redux context value; please ensure the component is wrapped in a ');\n }\n\n return contextValue;\n}","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\n/**\n * Hook factory, which creates a `useStore` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\n * @returns {Function} A `useStore` hook bound to the specified context.\n */\n\nexport function createStoreHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useStore() {\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store;\n\n return store;\n };\n}\n/**\n * A hook to access the redux store.\n *\n * @returns {any} the redux store\n *\n * @example\n *\n * import React from 'react'\n * import { useStore } from 'react-redux'\n *\n * export const ExampleComponent = () => {\n * const store = useStore()\n * return
{store.getState()}
\n * }\n */\n\nexport var useStore = /*#__PURE__*/createStoreHook();","import { ReactReduxContext } from '../components/Context';\nimport { useStore as useDefaultStore, createStoreHook } from './useStore';\n/**\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\n * @returns {Function} A `useDispatch` hook bound to the specified context.\n */\n\nexport function createDispatchHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useStore = context === ReactReduxContext ? useDefaultStore : createStoreHook(context);\n return function useDispatch() {\n var store = useStore();\n return store.dispatch;\n };\n}\n/**\n * A hook to access the redux `dispatch` function.\n *\n * @returns {any|function} redux store's `dispatch` function\n *\n * @example\n *\n * import React, { useCallback } from 'react'\n * import { useDispatch } from 'react-redux'\n *\n * export const CounterComponent = ({ value }) => {\n * const dispatch = useDispatch()\n * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\n * return (\n *
\n * {value}\n * \n *
\n * )\n * }\n */\n\nexport var useDispatch = /*#__PURE__*/createDispatchHook();","import { useReducer, useRef, useMemo, useContext, useDebugValue } from 'react';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from '../components/Context';\n\nvar refEquality = function refEquality(a, b) {\n return a === b;\n};\n\nfunction useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub) {\n var _useReducer = useReducer(function (s) {\n return s + 1;\n }, 0),\n forceRender = _useReducer[1];\n\n var subscription = useMemo(function () {\n return createSubscription(store, contextSub);\n }, [store, contextSub]);\n var latestSubscriptionCallbackError = useRef();\n var latestSelector = useRef();\n var latestStoreState = useRef();\n var latestSelectedState = useRef();\n var storeState = store.getState();\n var selectedState;\n\n try {\n if (selector !== latestSelector.current || storeState !== latestStoreState.current || latestSubscriptionCallbackError.current) {\n var newSelectedState = selector(storeState); // ensure latest selected state is reused so that a custom equality function can result in identical references\n\n if (latestSelectedState.current === undefined || !equalityFn(newSelectedState, latestSelectedState.current)) {\n selectedState = newSelectedState;\n } else {\n selectedState = latestSelectedState.current;\n }\n } else {\n selectedState = latestSelectedState.current;\n }\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\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(function () {\n latestSelector.current = selector;\n latestStoreState.current = storeState;\n latestSelectedState.current = selectedState;\n latestSubscriptionCallbackError.current = undefined;\n });\n useIsomorphicLayoutEffect(function () {\n function checkForUpdates() {\n try {\n var newStoreState = store.getState(); // Avoid calling selector multiple times if the store's state has not changed\n\n if (newStoreState === latestStoreState.current) {\n return;\n }\n\n var _newSelectedState = latestSelector.current(newStoreState);\n\n if (equalityFn(_newSelectedState, latestSelectedState.current)) {\n return;\n }\n\n latestSelectedState.current = _newSelectedState;\n latestStoreState.current = newStoreState;\n } catch (err) {\n // we ignore all errors here, since when the component\n // is re-rendered, the selectors are called again, and\n // will throw again, if neither props nor store state\n // changed\n latestSubscriptionCallbackError.current = err;\n }\n\n forceRender();\n }\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe();\n checkForUpdates();\n return function () {\n return subscription.tryUnsubscribe();\n };\n }, [store, subscription]);\n return selectedState;\n}\n/**\n * Hook factory, which creates a `useSelector` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\n * @returns {Function} A `useSelector` hook bound to the specified context.\n */\n\n\nexport function createSelectorHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useSelector(selector, equalityFn) {\n if (equalityFn === void 0) {\n equalityFn = refEquality;\n }\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 var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store,\n contextSub = _useReduxContext.subscription;\n\n var selectedState = useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);\n useDebugValue(selectedState);\n return selectedState;\n };\n}\n/**\n * A hook to access the redux store's state. This hook takes a selector function\n * as an argument. The selector is called with the store state.\n *\n * This hook takes an optional equality comparison function as the second parameter\n * that allows you to customize the way the selected state is compared to determine\n * whether the component needs to be re-rendered.\n *\n * @param {Function} selector the selector function\n * @param {Function=} equalityFn the function that will be used to determine equality\n *\n * @returns {any} the selected state\n *\n * @example\n *\n * import React from 'react'\n * import { useSelector } from 'react-redux'\n *\n * export const CounterComponent = () => {\n * const counter = useSelector(state => state.counter)\n * return
{counter}
\n * }\n */\n\nexport var useSelector = /*#__PURE__*/createSelectorHook();","export * from './exports';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport { setBatch } from './utils/batch'; // Enable batched updates in our subscriptions for use\n// with standard React renderers (ReactDOM, React Native)\n\nsetBatch(batch);\nexport { batch };","/** @license React v17.0.2\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';\n\nvar b = 60103,\n c = 60106,\n d = 60107,\n e = 60108,\n f = 60114,\n g = 60109,\n h = 60110,\n k = 60112,\n l = 60113,\n m = 60120,\n n = 60115,\n p = 60116,\n q = 60121,\n r = 60122,\n u = 60117,\n v = 60129,\n w = 60131;\n\nif (\"function\" === typeof Symbol && Symbol.for) {\n var x = Symbol.for;\n b = x(\"react.element\");\n c = x(\"react.portal\");\n d = x(\"react.fragment\");\n e = x(\"react.strict_mode\");\n f = x(\"react.profiler\");\n g = x(\"react.provider\");\n h = x(\"react.context\");\n k = x(\"react.forward_ref\");\n l = x(\"react.suspense\");\n m = x(\"react.suspense_list\");\n n = x(\"react.memo\");\n p = x(\"react.lazy\");\n q = x(\"react.block\");\n r = x(\"react.server.block\");\n u = x(\"react.fundamental\");\n v = x(\"react.debug_trace_mode\");\n w = x(\"react.legacy_hidden\");\n}\n\nfunction y(a) {\n if (\"object\" === typeof a && null !== a) {\n var t = a.$$typeof;\n\n switch (t) {\n case b:\n switch (a = a.type, a) {\n case d:\n case f:\n case e:\n case l:\n case m:\n return a;\n\n default:\n switch (a = a && a.$$typeof, a) {\n case h:\n case k:\n case p:\n case n:\n case g:\n return a;\n\n default:\n return t;\n }\n\n }\n\n case c:\n return t;\n }\n }\n}\n\nvar z = g,\n A = b,\n B = k,\n C = d,\n D = p,\n E = n,\n F = c,\n G = f,\n H = e,\n I = l;\nexports.ContextConsumer = h;\nexports.ContextProvider = z;\nexports.Element = A;\nexports.ForwardRef = B;\nexports.Fragment = C;\nexports.Lazy = D;\nexports.Memo = E;\nexports.Portal = F;\nexports.Profiler = G;\nexports.StrictMode = H;\nexports.Suspense = I;\n\nexports.isAsyncMode = function () {\n return !1;\n};\n\nexports.isConcurrentMode = function () {\n return !1;\n};\n\nexports.isContextConsumer = function (a) {\n return y(a) === h;\n};\n\nexports.isContextProvider = function (a) {\n return y(a) === g;\n};\n\nexports.isElement = function (a) {\n return \"object\" === typeof a && null !== a && a.$$typeof === b;\n};\n\nexports.isForwardRef = function (a) {\n return y(a) === k;\n};\n\nexports.isFragment = function (a) {\n return y(a) === d;\n};\n\nexports.isLazy = function (a) {\n return y(a) === p;\n};\n\nexports.isMemo = function (a) {\n return y(a) === n;\n};\n\nexports.isPortal = function (a) {\n return y(a) === c;\n};\n\nexports.isProfiler = function (a) {\n return y(a) === f;\n};\n\nexports.isStrictMode = function (a) {\n return y(a) === e;\n};\n\nexports.isSuspense = function (a) {\n return y(a) === l;\n};\n\nexports.isValidElementType = function (a) {\n return \"string\" === typeof a || \"function\" === typeof a || a === d || a === f || a === v || a === e || a === l || a === m || a === w || \"object\" === typeof a && null !== a && (a.$$typeof === p || a.$$typeof === n || a.$$typeof === g || a.$$typeof === h || a.$$typeof === k || a.$$typeof === u || a.$$typeof === q || a[0] === r) ? !0 : !1;\n};\n\nexports.typeOf = y;","'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}","var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nimport { Observable, of as _of, from as _from } from 'rxjs';\nimport { ofType as _ofType } from './operators';\nexport var ActionsObservable = function (_Observable) {\n _inherits(ActionsObservable, _Observable);\n\n _createClass(ActionsObservable, null, [{\n key: 'of',\n value: function of() {\n return new this(_of.apply(undefined, arguments));\n }\n }, {\n key: 'from',\n value: function from(actions, scheduler) {\n return new this(_from(actions, scheduler));\n }\n }]);\n\n function ActionsObservable(actionsSubject) {\n _classCallCheck(this, ActionsObservable);\n\n var _this = _possibleConstructorReturn(this, (ActionsObservable.__proto__ || Object.getPrototypeOf(ActionsObservable)).call(this));\n\n _this.source = actionsSubject;\n return _this;\n }\n\n _createClass(ActionsObservable, [{\n key: 'lift',\n value: function lift(operator) {\n var observable = new ActionsObservable(this);\n observable.operator = operator;\n return observable;\n }\n }, {\n key: 'ofType',\n value: function ofType() {\n return _ofType.apply(undefined, arguments)(this);\n }\n }]);\n\n return ActionsObservable;\n}(Observable);","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nimport { Observable, Subject } from 'rxjs';\nexport var StateObservable = function (_Observable) {\n _inherits(StateObservable, _Observable);\n\n function StateObservable(stateSubject, initialState) {\n _classCallCheck(this, StateObservable);\n\n var _this = _possibleConstructorReturn(this, (StateObservable.__proto__ || Object.getPrototypeOf(StateObservable)).call(this, function (subscriber) {\n var subscription = _this.__notifier.subscribe(subscriber);\n\n if (subscription && !subscription.closed) {\n subscriber.next(_this.value);\n }\n\n return subscription;\n }));\n\n _this.value = initialState;\n _this.__notifier = new Subject();\n _this.__subscription = stateSubject.subscribe(function (value) {\n // We only want to update state$ if it has actually changed since\n // redux requires reducers use immutability patterns.\n // This is basically what distinctUntilChanged() does but it's so simple\n // we don't need to pull that code in\n if (value !== _this.value) {\n _this.value = value;\n\n _this.__notifier.next(value);\n }\n });\n return _this;\n }\n\n return StateObservable;\n}(Observable);","function _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n}\n\nimport { merge } from 'rxjs';\n/**\n Merges all epics into a single one.\n */\n\nexport var combineEpics = function combineEpics() {\n for (var _len = arguments.length, epics = Array(_len), _key = 0; _key < _len; _key++) {\n epics[_key] = arguments[_key];\n }\n\n var merger = function merger() {\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge.apply(undefined, _toConsumableArray(epics.map(function (epic) {\n var output$ = epic.apply(undefined, args);\n\n if (!output$) {\n throw new TypeError('combineEpics: one of the provided Epics \"' + (epic.name || '') + '\" does not return a stream. Double check you\\'re not missing a return statement!');\n }\n\n return output$;\n })));\n }; // Technically the `name` property on Function's are supposed to be read-only.\n // While some JS runtimes allow it anyway (so this is useful in debugging)\n // some actually throw an exception when you attempt to do so.\n\n\n try {\n Object.defineProperty(merger, 'name', {\n value: 'combineEpics(' + epics.map(function (epic) {\n return epic.name || '';\n }).join(', ') + ')'\n });\n } catch (e) {}\n\n return merger;\n};","import { Subject, from, queueScheduler } from 'rxjs';\nimport { map, mergeMap, observeOn, subscribeOn } from 'rxjs/operators';\nimport { ActionsObservable } from './ActionsObservable';\nimport { StateObservable } from './StateObservable';\nimport { warn } from './utils/console';\nexport function createEpicMiddleware() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; // This isn't great. RxJS doesn't publicly export the constructor for\n // QueueScheduler nor QueueAction, so we reach in. We need to do this because\n // we don't want our internal queuing mechanism to be on the same queue as any\n // other RxJS code outside of redux-observable internals.\n\n var QueueScheduler = queueScheduler.constructor;\n var uniqueQueueScheduler = new QueueScheduler(queueScheduler.SchedulerAction);\n\n if (process.env.NODE_ENV !== 'production' && typeof options === 'function') {\n throw new TypeError('Providing your root Epic to `createEpicMiddleware(rootEpic)` is no longer supported, instead use `epicMiddleware.run(rootEpic)`\\n\\nLearn more: https://redux-observable.js.org/MIGRATION.html#setting-up-the-middleware');\n }\n\n var epic$ = new Subject();\n var store = void 0;\n\n var epicMiddleware = function epicMiddleware(_store) {\n if (process.env.NODE_ENV !== 'production' && store) {\n // https://github.com/redux-observable/redux-observable/issues/389\n warn('this middleware is already associated with a store. createEpicMiddleware should be called for every store.\\n\\nLearn more: https://goo.gl/2GQ7Da');\n }\n\n store = _store;\n var actionSubject$ = new Subject().pipe(observeOn(uniqueQueueScheduler));\n var stateSubject$ = new Subject().pipe(observeOn(uniqueQueueScheduler));\n var action$ = new ActionsObservable(actionSubject$);\n var state$ = new StateObservable(stateSubject$, store.getState());\n var result$ = epic$.pipe(map(function (epic) {\n var output$ = 'dependencies' in options ? epic(action$, state$, options.dependencies) : epic(action$, state$);\n\n if (!output$) {\n throw new TypeError('Your root Epic \"' + (epic.name || '') + '\" does not return a stream. Double check you\\'re not missing a return statement!');\n }\n\n return output$;\n }), mergeMap(function (output$) {\n return from(output$).pipe(subscribeOn(uniqueQueueScheduler), observeOn(uniqueQueueScheduler));\n }));\n result$.subscribe(store.dispatch);\n return function (next) {\n return function (action) {\n // Downstream middleware gets the action first,\n // which includes their reducers, so state is\n // updated before epics receive the action\n var result = next(action); // It's important to update the state$ before we emit\n // the action because otherwise it would be stale\n\n stateSubject$.next(store.getState());\n actionSubject$.next(action);\n return result;\n };\n };\n };\n\n epicMiddleware.run = function (rootEpic) {\n if (process.env.NODE_ENV !== 'production' && !store) {\n warn('epicMiddleware.run(rootEpic) called before the middleware has been setup by redux. Provide the epicMiddleware instance to createStore() first.');\n }\n\n epic$.next(rootEpic);\n };\n\n return epicMiddleware;\n}","import { filter } from 'rxjs/operators';\n\nvar keyHasType = function keyHasType(type, key) {\n return type === key || typeof key === 'function' && type === key.toString();\n};\n\nexport var ofType = function ofType() {\n for (var _len = arguments.length, keys = Array(_len), _key = 0; _key < _len; _key++) {\n keys[_key] = arguments[_key];\n }\n\n return function (source) {\n return source.pipe(filter(function (_ref) {\n var type = _ref.type;\n var len = keys.length;\n\n if (len === 1) {\n return keyHasType(type, keys[0]);\n } else {\n for (var i = 0; i < len; i++) {\n if (keyHasType(type, keys[i])) {\n return true;\n }\n }\n }\n\n return false;\n }));\n };\n};","/** PURE_IMPORTS_START tslib,_AsyncAction PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\n\nvar AnimationFrameAction = /*@__PURE__*/function (_super) {\n tslib_1.__extends(AnimationFrameAction, _super);\n\n function AnimationFrameAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n\n AnimationFrameAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n\n if (delay !== null && delay > 0) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n\n scheduler.actions.push(this);\n return scheduler.scheduled || (scheduler.scheduled = requestAnimationFrame(function () {\n return scheduler.flush(null);\n }));\n };\n\n AnimationFrameAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n\n if (delay !== null && delay > 0 || delay === null && this.delay > 0) {\n return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n }\n\n if (scheduler.actions.length === 0) {\n cancelAnimationFrame(id);\n scheduler.scheduled = undefined;\n }\n\n return undefined;\n };\n\n return AnimationFrameAction;\n}(AsyncAction);\n\nexport { AnimationFrameAction };","/** PURE_IMPORTS_START tslib,_AsyncScheduler PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\n\nvar AnimationFrameScheduler = /*@__PURE__*/function (_super) {\n tslib_1.__extends(AnimationFrameScheduler, _super);\n\n function AnimationFrameScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n AnimationFrameScheduler.prototype.flush = function (action) {\n this.active = true;\n this.scheduled = undefined;\n var actions = this.actions;\n var error;\n var index = -1;\n var count = actions.length;\n action = action || actions.shift();\n\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (++index < count && (action = actions.shift()));\n\n this.active = false;\n\n if (error) {\n while (++index < count && (action = actions.shift())) {\n action.unsubscribe();\n }\n\n throw error;\n }\n };\n\n return AnimationFrameScheduler;\n}(AsyncScheduler);\n\nexport { AnimationFrameScheduler };","/** PURE_IMPORTS_START _AnimationFrameAction,_AnimationFrameScheduler PURE_IMPORTS_END */\nimport { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nexport var animationFrameScheduler = /*@__PURE__*/new AnimationFrameScheduler(AnimationFrameAction);\nexport var animationFrame = animationFrameScheduler;","/** PURE_IMPORTS_START tslib,_AsyncAction,_AsyncScheduler PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\nvar VirtualTimeScheduler = /*@__PURE__*/function (_super) {\n tslib_1.__extends(VirtualTimeScheduler, _super);\n\n function VirtualTimeScheduler(SchedulerAction, maxFrames) {\n if (SchedulerAction === void 0) {\n SchedulerAction = VirtualAction;\n }\n\n if (maxFrames === void 0) {\n maxFrames = Number.POSITIVE_INFINITY;\n }\n\n var _this = _super.call(this, SchedulerAction, function () {\n return _this.frame;\n }) || this;\n\n _this.maxFrames = maxFrames;\n _this.frame = 0;\n _this.index = -1;\n return _this;\n }\n\n VirtualTimeScheduler.prototype.flush = function () {\n var _a = this,\n actions = _a.actions,\n maxFrames = _a.maxFrames;\n\n var error, action;\n\n while ((action = actions[0]) && action.delay <= maxFrames) {\n actions.shift();\n this.frame = action.delay;\n\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n }\n\n if (error) {\n while (action = actions.shift()) {\n action.unsubscribe();\n }\n\n throw error;\n }\n };\n\n VirtualTimeScheduler.frameTimeFactor = 10;\n return VirtualTimeScheduler;\n}(AsyncScheduler);\n\nexport { VirtualTimeScheduler };\n\nvar VirtualAction = /*@__PURE__*/function (_super) {\n tslib_1.__extends(VirtualAction, _super);\n\n function VirtualAction(scheduler, work, index) {\n if (index === void 0) {\n index = scheduler.index += 1;\n }\n\n var _this = _super.call(this, scheduler, work) || this;\n\n _this.scheduler = scheduler;\n _this.work = work;\n _this.index = index;\n _this.active = true;\n _this.index = scheduler.index = index;\n return _this;\n }\n\n VirtualAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n\n if (!this.id) {\n return _super.prototype.schedule.call(this, state, delay);\n }\n\n this.active = false;\n var action = new VirtualAction(this.scheduler, this.work);\n this.add(action);\n return action.schedule(state, delay);\n };\n\n VirtualAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n\n this.delay = scheduler.frame + delay;\n var actions = scheduler.actions;\n actions.push(this);\n actions.sort(VirtualAction.sortActions);\n return true;\n };\n\n VirtualAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n\n return undefined;\n };\n\n VirtualAction.prototype._execute = function (state, delay) {\n if (this.active === true) {\n return _super.prototype._execute.call(this, state, delay);\n }\n };\n\n VirtualAction.sortActions = function (a, b) {\n if (a.delay === b.delay) {\n if (a.index === b.index) {\n return 0;\n } else if (a.index > b.index) {\n return 1;\n } else {\n return -1;\n }\n } else if (a.delay > b.delay) {\n return 1;\n } else {\n return -1;\n }\n };\n\n return VirtualAction;\n}(AsyncAction);\n\nexport { VirtualAction };","/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nexport function isObservable(obj) {\n return !!obj && (obj instanceof Observable || typeof obj.lift === 'function' && typeof obj.subscribe === 'function');\n}","/** PURE_IMPORTS_START _Observable,_AsyncSubject,_operators_map,_util_canReportError,_util_isArray,_util_isScheduler PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { AsyncSubject } from '../AsyncSubject';\nimport { map } from '../operators/map';\nimport { canReportError } from '../util/canReportError';\nimport { isArray } from '../util/isArray';\nimport { isScheduler } from '../util/isScheduler';\nexport function bindCallback(callbackFunc, resultSelector, scheduler) {\n if (resultSelector) {\n if (isScheduler(resultSelector)) {\n scheduler = resultSelector;\n } else {\n return function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return bindCallback(callbackFunc, scheduler).apply(void 0, args).pipe(map(function (args) {\n return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args);\n }));\n };\n }\n }\n\n return function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n var context = this;\n var subject;\n var params = {\n context: context,\n subject: subject,\n callbackFunc: callbackFunc,\n scheduler: scheduler\n };\n return new Observable(function (subscriber) {\n if (!scheduler) {\n if (!subject) {\n subject = new AsyncSubject();\n\n var handler = function handler() {\n var innerArgs = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n innerArgs[_i] = arguments[_i];\n }\n\n subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);\n subject.complete();\n };\n\n try {\n callbackFunc.apply(context, args.concat([handler]));\n } catch (err) {\n if (canReportError(subject)) {\n subject.error(err);\n } else {\n console.warn(err);\n }\n }\n }\n\n return subject.subscribe(subscriber);\n } else {\n var state = {\n args: args,\n subscriber: subscriber,\n params: params\n };\n return scheduler.schedule(dispatch, 0, state);\n }\n });\n };\n}\n\nfunction dispatch(state) {\n var _this = this;\n\n var self = this;\n var args = state.args,\n subscriber = state.subscriber,\n params = state.params;\n var callbackFunc = params.callbackFunc,\n context = params.context,\n scheduler = params.scheduler;\n var subject = params.subject;\n\n if (!subject) {\n subject = params.subject = new AsyncSubject();\n\n var handler = function handler() {\n var innerArgs = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n innerArgs[_i] = arguments[_i];\n }\n\n var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;\n\n _this.add(scheduler.schedule(dispatchNext, 0, {\n value: value,\n subject: subject\n }));\n };\n\n try {\n callbackFunc.apply(context, args.concat([handler]));\n } catch (err) {\n subject.error(err);\n }\n }\n\n this.add(subject.subscribe(subscriber));\n}\n\nfunction dispatchNext(state) {\n var value = state.value,\n subject = state.subject;\n subject.next(value);\n subject.complete();\n}\n\nfunction dispatchError(state) {\n var err = state.err,\n subject = state.subject;\n subject.error(err);\n}","/** PURE_IMPORTS_START _Observable,_AsyncSubject,_operators_map,_util_canReportError,_util_isScheduler,_util_isArray PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { AsyncSubject } from '../AsyncSubject';\nimport { map } from '../operators/map';\nimport { canReportError } from '../util/canReportError';\nimport { isScheduler } from '../util/isScheduler';\nimport { isArray } from '../util/isArray';\nexport function bindNodeCallback(callbackFunc, resultSelector, scheduler) {\n if (resultSelector) {\n if (isScheduler(resultSelector)) {\n scheduler = resultSelector;\n } else {\n return function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return bindNodeCallback(callbackFunc, scheduler).apply(void 0, args).pipe(map(function (args) {\n return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args);\n }));\n };\n }\n }\n\n return function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n var params = {\n subject: undefined,\n args: args,\n callbackFunc: callbackFunc,\n scheduler: scheduler,\n context: this\n };\n return new Observable(function (subscriber) {\n var context = params.context;\n var subject = params.subject;\n\n if (!scheduler) {\n if (!subject) {\n subject = params.subject = new AsyncSubject();\n\n var handler = function handler() {\n var innerArgs = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n innerArgs[_i] = arguments[_i];\n }\n\n var err = innerArgs.shift();\n\n if (err) {\n subject.error(err);\n return;\n }\n\n subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);\n subject.complete();\n };\n\n try {\n callbackFunc.apply(context, args.concat([handler]));\n } catch (err) {\n if (canReportError(subject)) {\n subject.error(err);\n } else {\n console.warn(err);\n }\n }\n }\n\n return subject.subscribe(subscriber);\n } else {\n return scheduler.schedule(dispatch, 0, {\n params: params,\n subscriber: subscriber,\n context: context\n });\n }\n });\n };\n}\n\nfunction dispatch(state) {\n var _this = this;\n\n var params = state.params,\n subscriber = state.subscriber,\n context = state.context;\n var callbackFunc = params.callbackFunc,\n args = params.args,\n scheduler = params.scheduler;\n var subject = params.subject;\n\n if (!subject) {\n subject = params.subject = new AsyncSubject();\n\n var handler = function handler() {\n var innerArgs = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n innerArgs[_i] = arguments[_i];\n }\n\n var err = innerArgs.shift();\n\n if (err) {\n _this.add(scheduler.schedule(dispatchError, 0, {\n err: err,\n subject: subject\n }));\n } else {\n var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;\n\n _this.add(scheduler.schedule(dispatchNext, 0, {\n value: value,\n subject: subject\n }));\n }\n };\n\n try {\n callbackFunc.apply(context, args.concat([handler]));\n } catch (err) {\n this.add(scheduler.schedule(dispatchError, 0, {\n err: err,\n subject: subject\n }));\n }\n }\n\n this.add(subject.subscribe(subscriber));\n}\n\nfunction dispatchNext(arg) {\n var value = arg.value,\n subject = arg.subject;\n subject.next(value);\n subject.complete();\n}\n\nfunction dispatchError(arg) {\n var err = arg.err,\n subject = arg.subject;\n subject.error(err);\n}","/** PURE_IMPORTS_START _Observable,_util_isArray,_operators_map,_util_isObject,_from PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { map } from '../operators/map';\nimport { isObject } from '../util/isObject';\nimport { from } from './from';\nexport function forkJoin() {\n var sources = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n\n if (sources.length === 1) {\n var first_1 = sources[0];\n\n if (isArray(first_1)) {\n return forkJoinInternal(first_1, null);\n }\n\n if (isObject(first_1) && Object.getPrototypeOf(first_1) === Object.prototype) {\n var keys = Object.keys(first_1);\n return forkJoinInternal(keys.map(function (key) {\n return first_1[key];\n }), keys);\n }\n }\n\n if (typeof sources[sources.length - 1] === 'function') {\n var resultSelector_1 = sources.pop();\n sources = sources.length === 1 && isArray(sources[0]) ? sources[0] : sources;\n return forkJoinInternal(sources, null).pipe(map(function (args) {\n return resultSelector_1.apply(void 0, args);\n }));\n }\n\n return forkJoinInternal(sources, null);\n}\n\nfunction forkJoinInternal(sources, keys) {\n return new Observable(function (subscriber) {\n var len = sources.length;\n\n if (len === 0) {\n subscriber.complete();\n return;\n }\n\n var values = new Array(len);\n var completed = 0;\n var emitted = 0;\n\n var _loop_1 = function _loop_1(i) {\n var source = from(sources[i]);\n var hasValue = false;\n subscriber.add(source.subscribe({\n next: function next(value) {\n if (!hasValue) {\n hasValue = true;\n emitted++;\n }\n\n values[i] = value;\n },\n error: function error(err) {\n return subscriber.error(err);\n },\n complete: function complete() {\n completed++;\n\n if (completed === len || !hasValue) {\n if (emitted === len) {\n subscriber.next(keys ? keys.reduce(function (result, key, i) {\n return result[key] = values[i], result;\n }, {}) : values);\n }\n\n subscriber.complete();\n }\n }\n }));\n };\n\n for (var i = 0; i < len; i++) {\n _loop_1(i);\n }\n });\n}","/** PURE_IMPORTS_START _Observable,_util_isArray,_util_isFunction,_operators_map PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { map } from '../operators/map';\n\nvar toString = /*@__PURE__*/function () {\n return Object.prototype.toString;\n}();\n\nexport function fromEvent(target, eventName, options, resultSelector) {\n if (isFunction(options)) {\n resultSelector = options;\n options = undefined;\n }\n\n if (resultSelector) {\n return fromEvent(target, eventName, options).pipe(map(function (args) {\n return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args);\n }));\n }\n\n return new Observable(function (subscriber) {\n function handler(e) {\n if (arguments.length > 1) {\n subscriber.next(Array.prototype.slice.call(arguments));\n } else {\n subscriber.next(e);\n }\n }\n\n setupSubscription(target, eventName, handler, subscriber, options);\n });\n}\n\nfunction setupSubscription(sourceObj, eventName, handler, subscriber, options) {\n var unsubscribe;\n\n if (isEventTarget(sourceObj)) {\n var source_1 = sourceObj;\n sourceObj.addEventListener(eventName, handler, options);\n\n unsubscribe = function unsubscribe() {\n return source_1.removeEventListener(eventName, handler, options);\n };\n } else if (isJQueryStyleEventEmitter(sourceObj)) {\n var source_2 = sourceObj;\n sourceObj.on(eventName, handler);\n\n unsubscribe = function unsubscribe() {\n return source_2.off(eventName, handler);\n };\n } else if (isNodeStyleEventEmitter(sourceObj)) {\n var source_3 = sourceObj;\n sourceObj.addListener(eventName, handler);\n\n unsubscribe = function unsubscribe() {\n return source_3.removeListener(eventName, handler);\n };\n } else if (sourceObj && sourceObj.length) {\n for (var i = 0, len = sourceObj.length; i < len; i++) {\n setupSubscription(sourceObj[i], eventName, handler, subscriber, options);\n }\n } else {\n throw new TypeError('Invalid event target');\n }\n\n subscriber.add(unsubscribe);\n}\n\nfunction isNodeStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function';\n}\n\nfunction isJQueryStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function';\n}\n\nfunction isEventTarget(sourceObj) {\n return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function';\n}","/** PURE_IMPORTS_START _Observable,_util_isArray,_util_isFunction,_operators_map PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { map } from '../operators/map';\nexport function fromEventPattern(addHandler, removeHandler, resultSelector) {\n if (resultSelector) {\n return fromEventPattern(addHandler, removeHandler).pipe(map(function (args) {\n return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args);\n }));\n }\n\n return new Observable(function (subscriber) {\n var handler = function handler() {\n var e = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n e[_i] = arguments[_i];\n }\n\n return subscriber.next(e.length === 1 ? e[0] : e);\n };\n\n var retValue;\n\n try {\n retValue = addHandler(handler);\n } catch (err) {\n subscriber.error(err);\n return undefined;\n }\n\n if (!isFunction(removeHandler)) {\n return undefined;\n }\n\n return function () {\n return removeHandler(handler, retValue);\n };\n });\n}","/** PURE_IMPORTS_START _Observable,_util_identity,_util_isScheduler PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { identity } from '../util/identity';\nimport { isScheduler } from '../util/isScheduler';\nexport function generate(initialStateOrOptions, condition, iterate, resultSelectorOrObservable, scheduler) {\n var resultSelector;\n var initialState;\n\n if (arguments.length == 1) {\n var options = initialStateOrOptions;\n initialState = options.initialState;\n condition = options.condition;\n iterate = options.iterate;\n resultSelector = options.resultSelector || identity;\n scheduler = options.scheduler;\n } else if (resultSelectorOrObservable === undefined || isScheduler(resultSelectorOrObservable)) {\n initialState = initialStateOrOptions;\n resultSelector = identity;\n scheduler = resultSelectorOrObservable;\n } else {\n initialState = initialStateOrOptions;\n resultSelector = resultSelectorOrObservable;\n }\n\n return new Observable(function (subscriber) {\n var state = initialState;\n\n if (scheduler) {\n return scheduler.schedule(dispatch, 0, {\n subscriber: subscriber,\n iterate: iterate,\n condition: condition,\n resultSelector: resultSelector,\n state: state\n });\n }\n\n do {\n if (condition) {\n var conditionResult = void 0;\n\n try {\n conditionResult = condition(state);\n } catch (err) {\n subscriber.error(err);\n return undefined;\n }\n\n if (!conditionResult) {\n subscriber.complete();\n break;\n }\n }\n\n var value = void 0;\n\n try {\n value = resultSelector(state);\n } catch (err) {\n subscriber.error(err);\n return undefined;\n }\n\n subscriber.next(value);\n\n if (subscriber.closed) {\n break;\n }\n\n try {\n state = iterate(state);\n } catch (err) {\n subscriber.error(err);\n return undefined;\n }\n } while (true);\n\n return undefined;\n });\n}\n\nfunction dispatch(state) {\n var subscriber = state.subscriber,\n condition = state.condition;\n\n if (subscriber.closed) {\n return undefined;\n }\n\n if (state.needIterate) {\n try {\n state.state = state.iterate(state.state);\n } catch (err) {\n subscriber.error(err);\n return undefined;\n }\n } else {\n state.needIterate = true;\n }\n\n if (condition) {\n var conditionResult = void 0;\n\n try {\n conditionResult = condition(state.state);\n } catch (err) {\n subscriber.error(err);\n return undefined;\n }\n\n if (!conditionResult) {\n subscriber.complete();\n return undefined;\n }\n\n if (subscriber.closed) {\n return undefined;\n }\n }\n\n var value;\n\n try {\n value = state.resultSelector(state.state);\n } catch (err) {\n subscriber.error(err);\n return undefined;\n }\n\n if (subscriber.closed) {\n return undefined;\n }\n\n subscriber.next(value);\n\n if (subscriber.closed) {\n return undefined;\n }\n\n return this.schedule(state);\n}","/** PURE_IMPORTS_START _defer,_empty PURE_IMPORTS_END */\nimport { defer } from './defer';\nimport { EMPTY } from './empty';\nexport function iif(condition, trueResult, falseResult) {\n if (trueResult === void 0) {\n trueResult = EMPTY;\n }\n\n if (falseResult === void 0) {\n falseResult = EMPTY;\n }\n\n return defer(function () {\n return condition() ? trueResult : falseResult;\n });\n}","/** PURE_IMPORTS_START _Observable,_scheduler_async,_util_isNumeric PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { async } from '../scheduler/async';\nimport { isNumeric } from '../util/isNumeric';\nexport function interval(period, scheduler) {\n if (period === void 0) {\n period = 0;\n }\n\n if (scheduler === void 0) {\n scheduler = async;\n }\n\n if (!isNumeric(period) || period < 0) {\n period = 0;\n }\n\n if (!scheduler || typeof scheduler.schedule !== 'function') {\n scheduler = async;\n }\n\n return new Observable(function (subscriber) {\n subscriber.add(scheduler.schedule(dispatch, period, {\n subscriber: subscriber,\n counter: 0,\n period: period\n }));\n return subscriber;\n });\n}\n\nfunction dispatch(state) {\n var subscriber = state.subscriber,\n counter = state.counter,\n period = state.period;\n subscriber.next(counter);\n this.schedule({\n subscriber: subscriber,\n counter: counter + 1,\n period: period\n }, period);\n}","/** PURE_IMPORTS_START _Observable,_util_noop PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { noop } from '../util/noop';\nexport var NEVER = /*@__PURE__*/new Observable(noop);\nexport function never() {\n return NEVER;\n}","/** PURE_IMPORTS_START _Observable,_from,_util_isArray,_empty PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { from } from './from';\nimport { isArray } from '../util/isArray';\nimport { EMPTY } from './empty';\nexport function onErrorResumeNext() {\n var sources = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n\n if (sources.length === 0) {\n return EMPTY;\n }\n\n var first = sources[0],\n remainder = sources.slice(1);\n\n if (sources.length === 1 && isArray(first)) {\n return onErrorResumeNext.apply(void 0, first);\n }\n\n return new Observable(function (subscriber) {\n var subNext = function subNext() {\n return subscriber.add(onErrorResumeNext.apply(void 0, remainder).subscribe(subscriber));\n };\n\n return from(first).subscribe({\n next: function next(value) {\n subscriber.next(value);\n },\n error: subNext,\n complete: subNext\n });\n });\n}","/** PURE_IMPORTS_START _Observable,_Subscription PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function pairs(obj, scheduler) {\n if (!scheduler) {\n return new Observable(function (subscriber) {\n var keys = Object.keys(obj);\n\n for (var i = 0; i < keys.length && !subscriber.closed; i++) {\n var key = keys[i];\n\n if (obj.hasOwnProperty(key)) {\n subscriber.next([key, obj[key]]);\n }\n }\n\n subscriber.complete();\n });\n } else {\n return new Observable(function (subscriber) {\n var keys = Object.keys(obj);\n var subscription = new Subscription();\n subscription.add(scheduler.schedule(dispatch, 0, {\n keys: keys,\n index: 0,\n subscriber: subscriber,\n subscription: subscription,\n obj: obj\n }));\n return subscription;\n });\n }\n}\nexport function dispatch(state) {\n var keys = state.keys,\n index = state.index,\n subscriber = state.subscriber,\n subscription = state.subscription,\n obj = state.obj;\n\n if (!subscriber.closed) {\n if (index < keys.length) {\n var key = keys[index];\n subscriber.next([key, obj[key]]);\n subscription.add(this.schedule({\n keys: keys,\n index: index + 1,\n subscriber: subscriber,\n subscription: subscription,\n obj: obj\n }));\n } else {\n subscriber.complete();\n }\n }\n}","/** PURE_IMPORTS_START _util_not,_util_subscribeTo,_operators_filter,_Observable PURE_IMPORTS_END */\nimport { not } from '../util/not';\nimport { subscribeTo } from '../util/subscribeTo';\nimport { filter } from '../operators/filter';\nimport { Observable } from '../Observable';\nexport function partition(source, predicate, thisArg) {\n return [filter(predicate, thisArg)(new Observable(subscribeTo(source))), filter(not(predicate, thisArg))(new Observable(subscribeTo(source)))];\n}","/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nexport function range(start, count, scheduler) {\n if (start === void 0) {\n start = 0;\n }\n\n return new Observable(function (subscriber) {\n if (count === undefined) {\n count = start;\n start = 0;\n }\n\n var index = 0;\n var current = start;\n\n if (scheduler) {\n return scheduler.schedule(dispatch, 0, {\n index: index,\n count: count,\n start: start,\n subscriber: subscriber\n });\n } else {\n do {\n if (index++ >= count) {\n subscriber.complete();\n break;\n }\n\n subscriber.next(current++);\n\n if (subscriber.closed) {\n break;\n }\n } while (true);\n }\n\n return undefined;\n });\n}\nexport function dispatch(state) {\n var start = state.start,\n index = state.index,\n count = state.count,\n subscriber = state.subscriber;\n\n if (index >= count) {\n subscriber.complete();\n return;\n }\n\n subscriber.next(start);\n\n if (subscriber.closed) {\n return;\n }\n\n state.index = index + 1;\n state.start = start + 1;\n this.schedule(state);\n}","/** PURE_IMPORTS_START _Observable,_from,_empty PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { from } from './from';\nimport { EMPTY } from './empty';\nexport function using(resourceFactory, observableFactory) {\n return new Observable(function (subscriber) {\n var resource;\n\n try {\n resource = resourceFactory();\n } catch (err) {\n subscriber.error(err);\n return undefined;\n }\n\n var result;\n\n try {\n result = observableFactory(resource);\n } catch (err) {\n subscriber.error(err);\n return undefined;\n }\n\n var source = result ? from(result) : EMPTY;\n var subscription = source.subscribe(subscriber);\n return function () {\n subscription.unsubscribe();\n\n if (resource) {\n resource.unsubscribe();\n }\n };\n });\n}","/** PURE_IMPORTS_START tslib,_Subject,_Subscription PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subject } from './Subject';\nimport { Subscription } from './Subscription';\n\nvar AsyncSubject = /*@__PURE__*/function (_super) {\n tslib_1.__extends(AsyncSubject, _super);\n\n function AsyncSubject() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.value = null;\n _this.hasNext = false;\n _this.hasCompleted = false;\n return _this;\n }\n\n AsyncSubject.prototype._subscribe = function (subscriber) {\n if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n } else if (this.hasCompleted && this.hasNext) {\n subscriber.next(this.value);\n subscriber.complete();\n return Subscription.EMPTY;\n }\n\n return _super.prototype._subscribe.call(this, subscriber);\n };\n\n AsyncSubject.prototype.next = function (value) {\n if (!this.hasCompleted) {\n this.value = value;\n this.hasNext = true;\n }\n };\n\n AsyncSubject.prototype.error = function (error) {\n if (!this.hasCompleted) {\n _super.prototype.error.call(this, error);\n }\n };\n\n AsyncSubject.prototype.complete = function () {\n this.hasCompleted = true;\n\n if (this.hasNext) {\n _super.prototype.next.call(this, this.value);\n }\n\n _super.prototype.complete.call(this);\n };\n\n return AsyncSubject;\n}(Subject);\n\nexport { AsyncSubject };","/** PURE_IMPORTS_START tslib,_Subject,_util_ObjectUnsubscribedError PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subject } from './Subject';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\n\nvar BehaviorSubject = /*@__PURE__*/function (_super) {\n tslib_1.__extends(BehaviorSubject, _super);\n\n function BehaviorSubject(_value) {\n var _this = _super.call(this) || this;\n\n _this._value = _value;\n return _this;\n }\n\n Object.defineProperty(BehaviorSubject.prototype, \"value\", {\n get: function get() {\n return this.getValue();\n },\n enumerable: true,\n configurable: true\n });\n\n BehaviorSubject.prototype._subscribe = function (subscriber) {\n var subscription = _super.prototype._subscribe.call(this, subscriber);\n\n if (subscription && !subscription.closed) {\n subscriber.next(this._value);\n }\n\n return subscription;\n };\n\n BehaviorSubject.prototype.getValue = function () {\n if (this.hasError) {\n throw this.thrownError;\n } else if (this.closed) {\n throw new ObjectUnsubscribedError();\n } else {\n return this._value;\n }\n };\n\n BehaviorSubject.prototype.next = function (value) {\n _super.prototype.next.call(this, this._value = value);\n };\n\n return BehaviorSubject;\n}(Subject);\n\nexport { BehaviorSubject };","/** PURE_IMPORTS_START _observable_empty,_observable_of,_observable_throwError PURE_IMPORTS_END */\nimport { empty } from './observable/empty';\nimport { of } from './observable/of';\nimport { throwError } from './observable/throwError';\nexport var NotificationKind;\n/*@__PURE__*/\n\n(function (NotificationKind) {\n NotificationKind[\"NEXT\"] = \"N\";\n NotificationKind[\"ERROR\"] = \"E\";\n NotificationKind[\"COMPLETE\"] = \"C\";\n})(NotificationKind || (NotificationKind = {}));\n\nvar Notification = /*@__PURE__*/function () {\n function Notification(kind, value, error) {\n this.kind = kind;\n this.value = value;\n this.error = error;\n this.hasValue = kind === 'N';\n }\n\n Notification.prototype.observe = function (observer) {\n switch (this.kind) {\n case 'N':\n return observer.next && observer.next(this.value);\n\n case 'E':\n return observer.error && observer.error(this.error);\n\n case 'C':\n return observer.complete && observer.complete();\n }\n };\n\n Notification.prototype.do = function (next, error, complete) {\n var kind = this.kind;\n\n switch (kind) {\n case 'N':\n return next && next(this.value);\n\n case 'E':\n return error && error(this.error);\n\n case 'C':\n return complete && complete();\n }\n };\n\n Notification.prototype.accept = function (nextOrObserver, error, complete) {\n if (nextOrObserver && typeof nextOrObserver.next === 'function') {\n return this.observe(nextOrObserver);\n } else {\n return this.do(nextOrObserver, error, complete);\n }\n };\n\n Notification.prototype.toObservable = function () {\n var kind = this.kind;\n\n switch (kind) {\n case 'N':\n return of(this.value);\n\n case 'E':\n return throwError(this.error);\n\n case 'C':\n return empty();\n }\n\n throw new Error('unexpected notification kind value');\n };\n\n Notification.createNext = function (value) {\n if (typeof value !== 'undefined') {\n return new Notification('N', value);\n }\n\n return Notification.undefinedValueNotification;\n };\n\n Notification.createError = function (err) {\n return new Notification('E', undefined, err);\n };\n\n Notification.createComplete = function () {\n return Notification.completeNotification;\n };\n\n Notification.completeNotification = new Notification('C');\n Notification.undefinedValueNotification = new Notification('N', undefined);\n return Notification;\n}();\n\nexport { Notification };","/** PURE_IMPORTS_START _util_canReportError,_util_toSubscriber,_symbol_observable,_util_pipe,_config PURE_IMPORTS_END */\nimport { canReportError } from './util/canReportError';\nimport { toSubscriber } from './util/toSubscriber';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\n\nvar Observable = /*@__PURE__*/function () {\n function Observable(subscribe) {\n this._isScalar = false;\n\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var operator = this.operator;\n var sink = toSubscriber(observerOrNext, error, complete);\n\n if (operator) {\n sink.add(operator.call(sink, this.source));\n } else {\n sink.add(this.source || config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable ? this._subscribe(sink) : this._trySubscribe(sink));\n }\n\n if (config.useDeprecatedSynchronousErrorHandling) {\n if (sink.syncErrorThrowable) {\n sink.syncErrorThrowable = false;\n\n if (sink.syncErrorThrown) {\n throw sink.syncErrorValue;\n }\n }\n }\n\n return sink;\n };\n\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n } catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n sink.syncErrorThrown = true;\n sink.syncErrorValue = err;\n }\n\n if (canReportError(sink)) {\n sink.error(err);\n } else {\n console.warn(err);\n }\n }\n };\n\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscription;\n subscription = _this.subscribe(function (value) {\n try {\n next(value);\n } catch (err) {\n reject(err);\n\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n }, reject, resolve);\n });\n };\n\n Observable.prototype._subscribe = function (subscriber) {\n var source = this.source;\n return source && source.subscribe(subscriber);\n };\n\n Observable.prototype[Symbol_observable] = function () {\n return this;\n };\n\n Observable.prototype.pipe = function () {\n var operations = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n\n if (operations.length === 0) {\n return this;\n }\n\n return pipeFromArray(operations)(this);\n };\n\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n\n _this.subscribe(function (x) {\n return value = x;\n }, function (err) {\n return reject(err);\n }, function () {\n return resolve(value);\n });\n });\n };\n\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n\n return Observable;\n}();\n\nexport { Observable };\n\nfunction getPromiseCtor(promiseCtor) {\n if (!promiseCtor) {\n promiseCtor = config.Promise || Promise;\n }\n\n if (!promiseCtor) {\n throw new Error('no Promise impl found');\n }\n\n return promiseCtor;\n}","/** PURE_IMPORTS_START _Subscriber,_symbol_rxSubscriber,_Observer PURE_IMPORTS_END */\nimport { Subscriber } from '../Subscriber';\nimport { rxSubscriber as rxSubscriberSymbol } from '../symbol/rxSubscriber';\nimport { empty as emptyObserver } from '../Observer';\nexport function toSubscriber(nextOrObserver, error, complete) {\n if (nextOrObserver) {\n if (nextOrObserver instanceof Subscriber) {\n return nextOrObserver;\n }\n\n if (nextOrObserver[rxSubscriberSymbol]) {\n return nextOrObserver[rxSubscriberSymbol]();\n }\n }\n\n if (!nextOrObserver && !error && !complete) {\n return new Subscriber(emptyObserver);\n }\n\n return new Subscriber(nextOrObserver, error, complete);\n}","/** PURE_IMPORTS_START _config,_util_hostReportError PURE_IMPORTS_END */\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nexport var empty = {\n closed: true,\n next: function next(value) {},\n error: function error(err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n } else {\n hostReportError(err);\n }\n },\n complete: function complete() {}\n};","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from './Subscriber';\n\nvar OuterSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(OuterSubscriber, _super);\n\n function OuterSubscriber() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n OuterSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n\n OuterSubscriber.prototype.notifyError = function (error, innerSub) {\n this.destination.error(error);\n };\n\n OuterSubscriber.prototype.notifyComplete = function (innerSub) {\n this.destination.complete();\n };\n\n return OuterSubscriber;\n}(Subscriber);\n\nexport { OuterSubscriber };","/** PURE_IMPORTS_START tslib,_Subject,_scheduler_queue,_Subscription,_operators_observeOn,_util_ObjectUnsubscribedError,_SubjectSubscription PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subject } from './Subject';\nimport { queue } from './scheduler/queue';\nimport { Subscription } from './Subscription';\nimport { ObserveOnSubscriber } from './operators/observeOn';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\n\nvar ReplaySubject = /*@__PURE__*/function (_super) {\n tslib_1.__extends(ReplaySubject, _super);\n\n function ReplaySubject(bufferSize, windowTime, scheduler) {\n if (bufferSize === void 0) {\n bufferSize = Number.POSITIVE_INFINITY;\n }\n\n if (windowTime === void 0) {\n windowTime = Number.POSITIVE_INFINITY;\n }\n\n var _this = _super.call(this) || this;\n\n _this.scheduler = scheduler;\n _this._events = [];\n _this._infiniteTimeWindow = false;\n _this._bufferSize = bufferSize < 1 ? 1 : bufferSize;\n _this._windowTime = windowTime < 1 ? 1 : windowTime;\n\n if (windowTime === Number.POSITIVE_INFINITY) {\n _this._infiniteTimeWindow = true;\n _this.next = _this.nextInfiniteTimeWindow;\n } else {\n _this.next = _this.nextTimeWindow;\n }\n\n return _this;\n }\n\n ReplaySubject.prototype.nextInfiniteTimeWindow = function (value) {\n if (!this.isStopped) {\n var _events = this._events;\n\n _events.push(value);\n\n if (_events.length > this._bufferSize) {\n _events.shift();\n }\n }\n\n _super.prototype.next.call(this, value);\n };\n\n ReplaySubject.prototype.nextTimeWindow = function (value) {\n if (!this.isStopped) {\n this._events.push(new ReplayEvent(this._getNow(), value));\n\n this._trimBufferThenGetEvents();\n }\n\n _super.prototype.next.call(this, value);\n };\n\n ReplaySubject.prototype._subscribe = function (subscriber) {\n var _infiniteTimeWindow = this._infiniteTimeWindow;\n\n var _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents();\n\n var scheduler = this.scheduler;\n var len = _events.length;\n var subscription;\n\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n } else if (this.isStopped || this.hasError) {\n subscription = Subscription.EMPTY;\n } else {\n this.observers.push(subscriber);\n subscription = new SubjectSubscription(this, subscriber);\n }\n\n if (scheduler) {\n subscriber.add(subscriber = new ObserveOnSubscriber(subscriber, scheduler));\n }\n\n if (_infiniteTimeWindow) {\n for (var i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i]);\n }\n } else {\n for (var i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i].value);\n }\n }\n\n if (this.hasError) {\n subscriber.error(this.thrownError);\n } else if (this.isStopped) {\n subscriber.complete();\n }\n\n return subscription;\n };\n\n ReplaySubject.prototype._getNow = function () {\n return (this.scheduler || queue).now();\n };\n\n ReplaySubject.prototype._trimBufferThenGetEvents = function () {\n var now = this._getNow();\n\n var _bufferSize = this._bufferSize;\n var _windowTime = this._windowTime;\n var _events = this._events;\n var eventsCount = _events.length;\n var spliceCount = 0;\n\n while (spliceCount < eventsCount) {\n if (now - _events[spliceCount].time < _windowTime) {\n break;\n }\n\n spliceCount++;\n }\n\n if (eventsCount > _bufferSize) {\n spliceCount = Math.max(spliceCount, eventsCount - _bufferSize);\n }\n\n if (spliceCount > 0) {\n _events.splice(0, spliceCount);\n }\n\n return _events;\n };\n\n return ReplaySubject;\n}(Subject);\n\nexport { ReplaySubject };\n\nvar ReplayEvent = /*@__PURE__*/function () {\n function ReplayEvent(time, value) {\n this.time = time;\n this.value = value;\n }\n\n return ReplayEvent;\n}();","var Scheduler = /*@__PURE__*/function () {\n function Scheduler(SchedulerAction, now) {\n if (now === void 0) {\n now = Scheduler.now;\n }\n\n this.SchedulerAction = SchedulerAction;\n this.now = now;\n }\n\n Scheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) {\n delay = 0;\n }\n\n return new this.SchedulerAction(this, work).schedule(state, delay);\n };\n\n Scheduler.now = function () {\n return Date.now();\n };\n\n return Scheduler;\n}();\n\nexport { Scheduler };","/** PURE_IMPORTS_START tslib,_Observable,_Subscriber,_Subscription,_util_ObjectUnsubscribedError,_SubjectSubscription,_internal_symbol_rxSubscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\n\nvar SubjectSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(SubjectSubscriber, _super);\n\n function SubjectSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n\n _this.destination = destination;\n return _this;\n }\n\n return SubjectSubscriber;\n}(Subscriber);\n\nexport { SubjectSubscriber };\n\nvar Subject = /*@__PURE__*/function (_super) {\n tslib_1.__extends(Subject, _super);\n\n function Subject() {\n var _this = _super.call(this) || this;\n\n _this.observers = [];\n _this.closed = false;\n _this.isStopped = false;\n _this.hasError = false;\n _this.thrownError = null;\n return _this;\n }\n\n Subject.prototype[rxSubscriberSymbol] = function () {\n return new SubjectSubscriber(this);\n };\n\n Subject.prototype.lift = function (operator) {\n var subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n };\n\n Subject.prototype.next = function (value) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n\n if (!this.isStopped) {\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n\n for (var i = 0; i < len; i++) {\n copy[i].next(value);\n }\n }\n };\n\n Subject.prototype.error = function (err) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n\n this.hasError = true;\n this.thrownError = err;\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n\n for (var i = 0; i < len; i++) {\n copy[i].error(err);\n }\n\n this.observers.length = 0;\n };\n\n Subject.prototype.complete = function () {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n\n for (var i = 0; i < len; i++) {\n copy[i].complete();\n }\n\n this.observers.length = 0;\n };\n\n Subject.prototype.unsubscribe = function () {\n this.isStopped = true;\n this.closed = true;\n this.observers = null;\n };\n\n Subject.prototype._trySubscribe = function (subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n } else {\n return _super.prototype._trySubscribe.call(this, subscriber);\n }\n };\n\n Subject.prototype._subscribe = function (subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n } else if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n } else if (this.isStopped) {\n subscriber.complete();\n return Subscription.EMPTY;\n } else {\n this.observers.push(subscriber);\n return new SubjectSubscription(this, subscriber);\n }\n };\n\n Subject.prototype.asObservable = function () {\n var observable = new Observable();\n observable.source = this;\n return observable;\n };\n\n Subject.create = function (destination, source) {\n return new AnonymousSubject(destination, source);\n };\n\n return Subject;\n}(Observable);\n\nexport { Subject };\n\nvar AnonymousSubject = /*@__PURE__*/function (_super) {\n tslib_1.__extends(AnonymousSubject, _super);\n\n function AnonymousSubject(destination, source) {\n var _this = _super.call(this) || this;\n\n _this.destination = destination;\n _this.source = source;\n return _this;\n }\n\n AnonymousSubject.prototype.next = function (value) {\n var destination = this.destination;\n\n if (destination && destination.next) {\n destination.next(value);\n }\n };\n\n AnonymousSubject.prototype.error = function (err) {\n var destination = this.destination;\n\n if (destination && destination.error) {\n this.destination.error(err);\n }\n };\n\n AnonymousSubject.prototype.complete = function () {\n var destination = this.destination;\n\n if (destination && destination.complete) {\n this.destination.complete();\n }\n };\n\n AnonymousSubject.prototype._subscribe = function (subscriber) {\n var source = this.source;\n\n if (source) {\n return this.source.subscribe(subscriber);\n } else {\n return Subscription.EMPTY;\n }\n };\n\n return AnonymousSubject;\n}(Subject);\n\nexport { AnonymousSubject };","/** PURE_IMPORTS_START tslib,_Subscription PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscription } from './Subscription';\n\nvar SubjectSubscription = /*@__PURE__*/function (_super) {\n tslib_1.__extends(SubjectSubscription, _super);\n\n function SubjectSubscription(subject, subscriber) {\n var _this = _super.call(this) || this;\n\n _this.subject = subject;\n _this.subscriber = subscriber;\n _this.closed = false;\n return _this;\n }\n\n SubjectSubscription.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n\n this.closed = true;\n var subject = this.subject;\n var observers = subject.observers;\n this.subject = null;\n\n if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n return;\n }\n\n var subscriberIndex = observers.indexOf(this.subscriber);\n\n if (subscriberIndex !== -1) {\n observers.splice(subscriberIndex, 1);\n }\n };\n\n return SubjectSubscription;\n}(Subscription);\n\nexport { SubjectSubscription };","/** PURE_IMPORTS_START tslib,_util_isFunction,_Observer,_Subscription,_internal_symbol_rxSubscriber,_config,_util_hostReportError PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { empty as emptyObserver } from './Observer';\nimport { Subscription } from './Subscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\n\nvar Subscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(Subscriber, _super);\n\n function Subscriber(destinationOrNext, error, complete) {\n var _this = _super.call(this) || this;\n\n _this.syncErrorValue = null;\n _this.syncErrorThrown = false;\n _this.syncErrorThrowable = false;\n _this.isStopped = false;\n\n switch (arguments.length) {\n case 0:\n _this.destination = emptyObserver;\n break;\n\n case 1:\n if (!destinationOrNext) {\n _this.destination = emptyObserver;\n break;\n }\n\n if (typeof destinationOrNext === 'object') {\n if (destinationOrNext instanceof Subscriber) {\n _this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;\n _this.destination = destinationOrNext;\n destinationOrNext.add(_this);\n } else {\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext);\n }\n\n break;\n }\n\n default:\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext, error, complete);\n break;\n }\n\n return _this;\n }\n\n Subscriber.prototype[rxSubscriberSymbol] = function () {\n return this;\n };\n\n Subscriber.create = function (next, error, complete) {\n var subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n };\n\n Subscriber.prototype.next = function (value) {\n if (!this.isStopped) {\n this._next(value);\n }\n };\n\n Subscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n this.isStopped = true;\n\n this._error(err);\n }\n };\n\n Subscriber.prototype.complete = function () {\n if (!this.isStopped) {\n this.isStopped = true;\n\n this._complete();\n }\n };\n\n Subscriber.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n\n this.isStopped = true;\n\n _super.prototype.unsubscribe.call(this);\n };\n\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n\n Subscriber.prototype._error = function (err) {\n this.destination.error(err);\n this.unsubscribe();\n };\n\n Subscriber.prototype._complete = function () {\n this.destination.complete();\n this.unsubscribe();\n };\n\n Subscriber.prototype._unsubscribeAndRecycle = function () {\n var _parentOrParents = this._parentOrParents;\n this._parentOrParents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parentOrParents = _parentOrParents;\n return this;\n };\n\n return Subscriber;\n}(Subscription);\n\nexport { Subscriber };\n\nvar SafeSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(SafeSubscriber, _super);\n\n function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n\n _this._parentSubscriber = _parentSubscriber;\n var next;\n var context = _this;\n\n if (isFunction(observerOrNext)) {\n next = observerOrNext;\n } else if (observerOrNext) {\n next = observerOrNext.next;\n error = observerOrNext.error;\n complete = observerOrNext.complete;\n\n if (observerOrNext !== emptyObserver) {\n context = Object.create(observerOrNext);\n\n if (isFunction(context.unsubscribe)) {\n _this.add(context.unsubscribe.bind(context));\n }\n\n context.unsubscribe = _this.unsubscribe.bind(_this);\n }\n }\n\n _this._context = context;\n _this._next = next;\n _this._error = error;\n _this._complete = complete;\n return _this;\n }\n\n SafeSubscriber.prototype.next = function (value) {\n if (!this.isStopped && this._next) {\n var _parentSubscriber = this._parentSubscriber;\n\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n } else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n };\n\n SafeSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n var useDeprecatedSynchronousErrorHandling = config.useDeprecatedSynchronousErrorHandling;\n\n if (this._error) {\n if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n\n this.unsubscribe();\n } else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n\n this.unsubscribe();\n }\n } else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n\n if (useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n\n hostReportError(err);\n } else {\n if (useDeprecatedSynchronousErrorHandling) {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n } else {\n hostReportError(err);\n }\n\n this.unsubscribe();\n }\n }\n };\n\n SafeSubscriber.prototype.complete = function () {\n var _this = this;\n\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n\n if (this._complete) {\n var wrappedComplete = function wrappedComplete() {\n return _this._complete.call(_this._context);\n };\n\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n\n this.unsubscribe();\n } else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n\n this.unsubscribe();\n }\n } else {\n this.unsubscribe();\n }\n }\n };\n\n SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) {\n try {\n fn.call(this._context, value);\n } catch (err) {\n this.unsubscribe();\n\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n } else {\n hostReportError(err);\n }\n }\n };\n\n SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) {\n if (!config.useDeprecatedSynchronousErrorHandling) {\n throw new Error('bad call');\n }\n\n try {\n fn.call(this._context, value);\n } catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n } else {\n hostReportError(err);\n return true;\n }\n }\n\n return false;\n };\n\n SafeSubscriber.prototype._unsubscribe = function () {\n var _parentSubscriber = this._parentSubscriber;\n this._context = null;\n this._parentSubscriber = null;\n\n _parentSubscriber.unsubscribe();\n };\n\n return SafeSubscriber;\n}(Subscriber);\n\nexport { SafeSubscriber };","/** PURE_IMPORTS_START _util_isArray,_util_isObject,_util_isFunction,_util_UnsubscriptionError PURE_IMPORTS_END */\nimport { isArray } from './util/isArray';\nimport { isObject } from './util/isObject';\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\n\nvar Subscription = /*@__PURE__*/function () {\n function Subscription(unsubscribe) {\n this.closed = false;\n this._parentOrParents = null;\n this._subscriptions = null;\n\n if (unsubscribe) {\n this._ctorUnsubscribe = true;\n this._unsubscribe = unsubscribe;\n }\n }\n\n Subscription.prototype.unsubscribe = function () {\n var errors;\n\n if (this.closed) {\n return;\n }\n\n var _a = this,\n _parentOrParents = _a._parentOrParents,\n _ctorUnsubscribe = _a._ctorUnsubscribe,\n _unsubscribe = _a._unsubscribe,\n _subscriptions = _a._subscriptions;\n\n this.closed = true;\n this._parentOrParents = null;\n this._subscriptions = null;\n\n if (_parentOrParents instanceof Subscription) {\n _parentOrParents.remove(this);\n } else if (_parentOrParents !== null) {\n for (var index = 0; index < _parentOrParents.length; ++index) {\n var parent_1 = _parentOrParents[index];\n parent_1.remove(this);\n }\n }\n\n if (isFunction(_unsubscribe)) {\n if (_ctorUnsubscribe) {\n this._unsubscribe = undefined;\n }\n\n try {\n _unsubscribe.call(this);\n } catch (e) {\n errors = e instanceof UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e];\n }\n }\n\n if (isArray(_subscriptions)) {\n var index = -1;\n var len = _subscriptions.length;\n\n while (++index < len) {\n var sub = _subscriptions[index];\n\n if (isObject(sub)) {\n try {\n sub.unsubscribe();\n } catch (e) {\n errors = errors || [];\n\n if (e instanceof UnsubscriptionError) {\n errors = errors.concat(flattenUnsubscriptionErrors(e.errors));\n } else {\n errors.push(e);\n }\n }\n }\n }\n }\n\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n };\n\n Subscription.prototype.add = function (teardown) {\n var subscription = teardown;\n\n if (!teardown) {\n return Subscription.EMPTY;\n }\n\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(teardown);\n\n case 'object':\n if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {\n return subscription;\n } else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n } else if (!(subscription instanceof Subscription)) {\n var tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n\n break;\n\n default:\n {\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n }\n\n var _parentOrParents = subscription._parentOrParents;\n\n if (_parentOrParents === null) {\n subscription._parentOrParents = this;\n } else if (_parentOrParents instanceof Subscription) {\n if (_parentOrParents === this) {\n return subscription;\n }\n\n subscription._parentOrParents = [_parentOrParents, this];\n } else if (_parentOrParents.indexOf(this) === -1) {\n _parentOrParents.push(this);\n } else {\n return subscription;\n }\n\n var subscriptions = this._subscriptions;\n\n if (subscriptions === null) {\n this._subscriptions = [subscription];\n } else {\n subscriptions.push(subscription);\n }\n\n return subscription;\n };\n\n Subscription.prototype.remove = function (subscription) {\n var subscriptions = this._subscriptions;\n\n if (subscriptions) {\n var subscriptionIndex = subscriptions.indexOf(subscription);\n\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n };\n\n Subscription.EMPTY = function (empty) {\n empty.closed = true;\n return empty;\n }(new Subscription());\n\n return Subscription;\n}();\n\nexport { Subscription };\n\nfunction flattenUnsubscriptionErrors(errors) {\n return errors.reduce(function (errs, err) {\n return errs.concat(err instanceof UnsubscriptionError ? err.errors : err);\n }, []);\n}","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nvar _enable_super_gross_mode_that_will_cause_bad_things = false;\nexport var config = {\n Promise: undefined,\n\n set useDeprecatedSynchronousErrorHandling(value) {\n if (value) {\n var error = /*@__PURE__*/new Error();\n /*@__PURE__*/\n\n console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n } else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n /*@__PURE__*/\n console.log('RxJS: Back to a better error behavior. Thank you. <3');\n }\n\n _enable_super_gross_mode_that_will_cause_bad_things = value;\n },\n\n get useDeprecatedSynchronousErrorHandling() {\n return _enable_super_gross_mode_that_will_cause_bad_things;\n }\n\n};","/** PURE_IMPORTS_START tslib,_Subscriber,_Observable,_util_subscribeTo PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from './Subscriber';\nimport { Observable } from './Observable';\nimport { subscribeTo } from './util/subscribeTo';\n\nvar SimpleInnerSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(SimpleInnerSubscriber, _super);\n\n function SimpleInnerSubscriber(parent) {\n var _this = _super.call(this) || this;\n\n _this.parent = parent;\n return _this;\n }\n\n SimpleInnerSubscriber.prototype._next = function (value) {\n this.parent.notifyNext(value);\n };\n\n SimpleInnerSubscriber.prototype._error = function (error) {\n this.parent.notifyError(error);\n this.unsubscribe();\n };\n\n SimpleInnerSubscriber.prototype._complete = function () {\n this.parent.notifyComplete();\n this.unsubscribe();\n };\n\n return SimpleInnerSubscriber;\n}(Subscriber);\n\nexport { SimpleInnerSubscriber };\n\nvar ComplexInnerSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(ComplexInnerSubscriber, _super);\n\n function ComplexInnerSubscriber(parent, outerValue, outerIndex) {\n var _this = _super.call(this) || this;\n\n _this.parent = parent;\n _this.outerValue = outerValue;\n _this.outerIndex = outerIndex;\n return _this;\n }\n\n ComplexInnerSubscriber.prototype._next = function (value) {\n this.parent.notifyNext(this.outerValue, value, this.outerIndex, this);\n };\n\n ComplexInnerSubscriber.prototype._error = function (error) {\n this.parent.notifyError(error);\n this.unsubscribe();\n };\n\n ComplexInnerSubscriber.prototype._complete = function () {\n this.parent.notifyComplete(this);\n this.unsubscribe();\n };\n\n return ComplexInnerSubscriber;\n}(Subscriber);\n\nexport { ComplexInnerSubscriber };\n\nvar SimpleOuterSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(SimpleOuterSubscriber, _super);\n\n function SimpleOuterSubscriber() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n SimpleOuterSubscriber.prototype.notifyNext = function (innerValue) {\n this.destination.next(innerValue);\n };\n\n SimpleOuterSubscriber.prototype.notifyError = function (err) {\n this.destination.error(err);\n };\n\n SimpleOuterSubscriber.prototype.notifyComplete = function () {\n this.destination.complete();\n };\n\n return SimpleOuterSubscriber;\n}(Subscriber);\n\nexport { SimpleOuterSubscriber };\n\nvar ComplexOuterSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(ComplexOuterSubscriber, _super);\n\n function ComplexOuterSubscriber() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n ComplexOuterSubscriber.prototype.notifyNext = function (_outerValue, innerValue, _outerIndex, _innerSub) {\n this.destination.next(innerValue);\n };\n\n ComplexOuterSubscriber.prototype.notifyError = function (error) {\n this.destination.error(error);\n };\n\n ComplexOuterSubscriber.prototype.notifyComplete = function (_innerSub) {\n this.destination.complete();\n };\n\n return ComplexOuterSubscriber;\n}(Subscriber);\n\nexport { ComplexOuterSubscriber };\nexport function innerSubscribe(result, innerSubscriber) {\n if (innerSubscriber.closed) {\n return undefined;\n }\n\n if (result instanceof Observable) {\n return result.subscribe(innerSubscriber);\n }\n\n var subscription;\n\n try {\n subscription = subscribeTo(result)(innerSubscriber);\n } catch (error) {\n innerSubscriber.error(error);\n }\n\n return subscription;\n}","/** PURE_IMPORTS_START tslib,_Subject,_Observable,_Subscriber,_Subscription,_operators_refCount PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { SubjectSubscriber } from '../Subject';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { refCount as higherOrderRefCount } from '../operators/refCount';\n\nvar ConnectableObservable = /*@__PURE__*/function (_super) {\n tslib_1.__extends(ConnectableObservable, _super);\n\n function ConnectableObservable(source, subjectFactory) {\n var _this = _super.call(this) || this;\n\n _this.source = source;\n _this.subjectFactory = subjectFactory;\n _this._refCount = 0;\n _this._isComplete = false;\n return _this;\n }\n\n ConnectableObservable.prototype._subscribe = function (subscriber) {\n return this.getSubject().subscribe(subscriber);\n };\n\n ConnectableObservable.prototype.getSubject = function () {\n var subject = this._subject;\n\n if (!subject || subject.isStopped) {\n this._subject = this.subjectFactory();\n }\n\n return this._subject;\n };\n\n ConnectableObservable.prototype.connect = function () {\n var connection = this._connection;\n\n if (!connection) {\n this._isComplete = false;\n connection = this._connection = new Subscription();\n connection.add(this.source.subscribe(new ConnectableSubscriber(this.getSubject(), this)));\n\n if (connection.closed) {\n this._connection = null;\n connection = Subscription.EMPTY;\n }\n }\n\n return connection;\n };\n\n ConnectableObservable.prototype.refCount = function () {\n return higherOrderRefCount()(this);\n };\n\n return ConnectableObservable;\n}(Observable);\n\nexport { ConnectableObservable };\nexport var connectableObservableDescriptor = /*@__PURE__*/function () {\n var connectableProto = ConnectableObservable.prototype;\n return {\n operator: {\n value: null\n },\n _refCount: {\n value: 0,\n writable: true\n },\n _subject: {\n value: null,\n writable: true\n },\n _connection: {\n value: null,\n writable: true\n },\n _subscribe: {\n value: connectableProto._subscribe\n },\n _isComplete: {\n value: connectableProto._isComplete,\n writable: true\n },\n getSubject: {\n value: connectableProto.getSubject\n },\n connect: {\n value: connectableProto.connect\n },\n refCount: {\n value: connectableProto.refCount\n }\n };\n}();\n\nvar ConnectableSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(ConnectableSubscriber, _super);\n\n function ConnectableSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n\n _this.connectable = connectable;\n return _this;\n }\n\n ConnectableSubscriber.prototype._error = function (err) {\n this._unsubscribe();\n\n _super.prototype._error.call(this, err);\n };\n\n ConnectableSubscriber.prototype._complete = function () {\n this.connectable._isComplete = true;\n\n this._unsubscribe();\n\n _super.prototype._complete.call(this);\n };\n\n ConnectableSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n\n if (connectable) {\n this.connectable = null;\n var connection = connectable._connection;\n connectable._refCount = 0;\n connectable._subject = null;\n connectable._connection = null;\n\n if (connection) {\n connection.unsubscribe();\n }\n }\n };\n\n return ConnectableSubscriber;\n}(SubjectSubscriber);\n\nvar RefCountOperator = /*@__PURE__*/function () {\n function RefCountOperator(connectable) {\n this.connectable = connectable;\n }\n\n RefCountOperator.prototype.call = function (subscriber, source) {\n var connectable = this.connectable;\n connectable._refCount++;\n var refCounter = new RefCountSubscriber(subscriber, connectable);\n var subscription = source.subscribe(refCounter);\n\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n\n return subscription;\n };\n\n return RefCountOperator;\n}();\n\nvar RefCountSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(RefCountSubscriber, _super);\n\n function RefCountSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n\n _this.connectable = connectable;\n return _this;\n }\n\n RefCountSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n\n if (!connectable) {\n this.connection = null;\n return;\n }\n\n this.connectable = null;\n var refCount = connectable._refCount;\n\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n\n connectable._refCount = refCount - 1;\n\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n\n var connection = this.connection;\n var sharedConnection = connectable._connection;\n this.connection = null;\n\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n };\n\n return RefCountSubscriber;\n}(Subscriber);","/** PURE_IMPORTS_START tslib,_util_isScheduler,_util_isArray,_OuterSubscriber,_util_subscribeToResult,_fromArray PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { isScheduler } from '../util/isScheduler';\nimport { isArray } from '../util/isArray';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { fromArray } from './fromArray';\nvar NONE = {};\nexport function combineLatest() {\n var observables = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n\n var resultSelector = undefined;\n var scheduler = undefined;\n\n if (isScheduler(observables[observables.length - 1])) {\n scheduler = observables.pop();\n }\n\n if (typeof observables[observables.length - 1] === 'function') {\n resultSelector = observables.pop();\n }\n\n if (observables.length === 1 && isArray(observables[0])) {\n observables = observables[0];\n }\n\n return fromArray(observables, scheduler).lift(new CombineLatestOperator(resultSelector));\n}\n\nvar CombineLatestOperator = /*@__PURE__*/function () {\n function CombineLatestOperator(resultSelector) {\n this.resultSelector = resultSelector;\n }\n\n CombineLatestOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new CombineLatestSubscriber(subscriber, this.resultSelector));\n };\n\n return CombineLatestOperator;\n}();\n\nexport { CombineLatestOperator };\n\nvar CombineLatestSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(CombineLatestSubscriber, _super);\n\n function CombineLatestSubscriber(destination, resultSelector) {\n var _this = _super.call(this, destination) || this;\n\n _this.resultSelector = resultSelector;\n _this.active = 0;\n _this.values = [];\n _this.observables = [];\n return _this;\n }\n\n CombineLatestSubscriber.prototype._next = function (observable) {\n this.values.push(NONE);\n this.observables.push(observable);\n };\n\n CombineLatestSubscriber.prototype._complete = function () {\n var observables = this.observables;\n var len = observables.length;\n\n if (len === 0) {\n this.destination.complete();\n } else {\n this.active = len;\n this.toRespond = len;\n\n for (var i = 0; i < len; i++) {\n var observable = observables[i];\n this.add(subscribeToResult(this, observable, undefined, i));\n }\n }\n };\n\n CombineLatestSubscriber.prototype.notifyComplete = function (unused) {\n if ((this.active -= 1) === 0) {\n this.destination.complete();\n }\n };\n\n CombineLatestSubscriber.prototype.notifyNext = function (_outerValue, innerValue, outerIndex) {\n var values = this.values;\n var oldVal = values[outerIndex];\n var toRespond = !this.toRespond ? 0 : oldVal === NONE ? --this.toRespond : this.toRespond;\n values[outerIndex] = innerValue;\n\n if (toRespond === 0) {\n if (this.resultSelector) {\n this._tryResultSelector(values);\n } else {\n this.destination.next(values.slice());\n }\n }\n };\n\n CombineLatestSubscriber.prototype._tryResultSelector = function (values) {\n var result;\n\n try {\n result = this.resultSelector.apply(this, values);\n } catch (err) {\n this.destination.error(err);\n return;\n }\n\n this.destination.next(result);\n };\n\n return CombineLatestSubscriber;\n}(OuterSubscriber);\n\nexport { CombineLatestSubscriber };","/** PURE_IMPORTS_START _of,_operators_concatAll PURE_IMPORTS_END */\nimport { of } from './of';\nimport { concatAll } from '../operators/concatAll';\nexport function concat() {\n var observables = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n\n return concatAll()(of.apply(void 0, observables));\n}","/** PURE_IMPORTS_START _Observable,_from,_empty PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { from } from './from';\nimport { empty } from './empty';\nexport function defer(observableFactory) {\n return new Observable(function (subscriber) {\n var input;\n\n try {\n input = observableFactory();\n } catch (err) {\n subscriber.error(err);\n return undefined;\n }\n\n var source = input ? from(input) : empty();\n return source.subscribe(subscriber);\n });\n}","/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nexport var EMPTY = /*@__PURE__*/new Observable(function (subscriber) {\n return subscriber.complete();\n});\nexport function empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\n\nfunction emptyScheduled(scheduler) {\n return new Observable(function (subscriber) {\n return scheduler.schedule(function () {\n return subscriber.complete();\n });\n });\n}","/** PURE_IMPORTS_START _Observable,_util_subscribeTo,_scheduled_scheduled PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { subscribeTo } from '../util/subscribeTo';\nimport { scheduled } from '../scheduled/scheduled';\nexport function from(input, scheduler) {\n if (!scheduler) {\n if (input instanceof Observable) {\n return input;\n }\n\n return new Observable(subscribeTo(input));\n } else {\n return scheduled(input, scheduler);\n }\n}","/** PURE_IMPORTS_START _Observable,_util_subscribeToArray,_scheduled_scheduleArray PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { subscribeToArray } from '../util/subscribeToArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nexport function fromArray(input, scheduler) {\n if (!scheduler) {\n return new Observable(subscribeToArray(input));\n } else {\n return scheduleArray(input, scheduler);\n }\n}","/** PURE_IMPORTS_START _Observable,_util_isScheduler,_operators_mergeAll,_fromArray PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { isScheduler } from '../util/isScheduler';\nimport { mergeAll } from '../operators/mergeAll';\nimport { fromArray } from './fromArray';\nexport function merge() {\n var observables = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n\n var concurrent = Number.POSITIVE_INFINITY;\n var scheduler = null;\n var last = observables[observables.length - 1];\n\n if (isScheduler(last)) {\n scheduler = observables.pop();\n\n if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') {\n concurrent = observables.pop();\n }\n } else if (typeof last === 'number') {\n concurrent = observables.pop();\n }\n\n if (scheduler === null && observables.length === 1 && observables[0] instanceof Observable) {\n return observables[0];\n }\n\n return mergeAll(concurrent)(fromArray(observables, scheduler));\n}","/** PURE_IMPORTS_START _util_isScheduler,_fromArray,_scheduled_scheduleArray PURE_IMPORTS_END */\nimport { isScheduler } from '../util/isScheduler';\nimport { fromArray } from './fromArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nexport function of() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n var scheduler = args[args.length - 1];\n\n if (isScheduler(scheduler)) {\n args.pop();\n return scheduleArray(args, scheduler);\n } else {\n return fromArray(args);\n }\n}","/** PURE_IMPORTS_START tslib,_util_isArray,_fromArray,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { isArray } from '../util/isArray';\nimport { fromArray } from './fromArray';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function race() {\n var observables = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n\n if (observables.length === 1) {\n if (isArray(observables[0])) {\n observables = observables[0];\n } else {\n return observables[0];\n }\n }\n\n return fromArray(observables, undefined).lift(new RaceOperator());\n}\n\nvar RaceOperator = /*@__PURE__*/function () {\n function RaceOperator() {}\n\n RaceOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RaceSubscriber(subscriber));\n };\n\n return RaceOperator;\n}();\n\nexport { RaceOperator };\n\nvar RaceSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(RaceSubscriber, _super);\n\n function RaceSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n\n _this.hasFirst = false;\n _this.observables = [];\n _this.subscriptions = [];\n return _this;\n }\n\n RaceSubscriber.prototype._next = function (observable) {\n this.observables.push(observable);\n };\n\n RaceSubscriber.prototype._complete = function () {\n var observables = this.observables;\n var len = observables.length;\n\n if (len === 0) {\n this.destination.complete();\n } else {\n for (var i = 0; i < len && !this.hasFirst; i++) {\n var observable = observables[i];\n var subscription = subscribeToResult(this, observable, undefined, i);\n\n if (this.subscriptions) {\n this.subscriptions.push(subscription);\n }\n\n this.add(subscription);\n }\n\n this.observables = null;\n }\n };\n\n RaceSubscriber.prototype.notifyNext = function (_outerValue, innerValue, outerIndex) {\n if (!this.hasFirst) {\n this.hasFirst = true;\n\n for (var i = 0; i < this.subscriptions.length; i++) {\n if (i !== outerIndex) {\n var subscription = this.subscriptions[i];\n subscription.unsubscribe();\n this.remove(subscription);\n }\n }\n\n this.subscriptions = null;\n }\n\n this.destination.next(innerValue);\n };\n\n return RaceSubscriber;\n}(OuterSubscriber);\n\nexport { RaceSubscriber };","/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nexport function throwError(error, scheduler) {\n if (!scheduler) {\n return new Observable(function (subscriber) {\n return subscriber.error(error);\n });\n } else {\n return new Observable(function (subscriber) {\n return scheduler.schedule(dispatch, 0, {\n error: error,\n subscriber: subscriber\n });\n });\n }\n}\n\nfunction dispatch(_a) {\n var error = _a.error,\n subscriber = _a.subscriber;\n subscriber.error(error);\n}","/** PURE_IMPORTS_START _Observable,_scheduler_async,_util_isNumeric,_util_isScheduler PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { async } from '../scheduler/async';\nimport { isNumeric } from '../util/isNumeric';\nimport { isScheduler } from '../util/isScheduler';\nexport function timer(dueTime, periodOrScheduler, scheduler) {\n if (dueTime === void 0) {\n dueTime = 0;\n }\n\n var period = -1;\n\n if (isNumeric(periodOrScheduler)) {\n period = Number(periodOrScheduler) < 1 && 1 || Number(periodOrScheduler);\n } else if (isScheduler(periodOrScheduler)) {\n scheduler = periodOrScheduler;\n }\n\n if (!isScheduler(scheduler)) {\n scheduler = async;\n }\n\n return new Observable(function (subscriber) {\n var due = isNumeric(dueTime) ? dueTime : +dueTime - scheduler.now();\n return scheduler.schedule(dispatch, due, {\n index: 0,\n period: period,\n subscriber: subscriber\n });\n });\n}\n\nfunction dispatch(state) {\n var index = state.index,\n period = state.period,\n subscriber = state.subscriber;\n subscriber.next(index);\n\n if (subscriber.closed) {\n return;\n } else if (period === -1) {\n return subscriber.complete();\n }\n\n state.index = index + 1;\n this.schedule(state, period);\n}","/** PURE_IMPORTS_START tslib,_fromArray,_util_isArray,_Subscriber,_.._internal_symbol_iterator,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { fromArray } from './fromArray';\nimport { isArray } from '../util/isArray';\nimport { Subscriber } from '../Subscriber';\nimport { iterator as Symbol_iterator } from '../../internal/symbol/iterator';\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function zip() {\n var observables = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n\n var resultSelector = observables[observables.length - 1];\n\n if (typeof resultSelector === 'function') {\n observables.pop();\n }\n\n return fromArray(observables, undefined).lift(new ZipOperator(resultSelector));\n}\n\nvar ZipOperator = /*@__PURE__*/function () {\n function ZipOperator(resultSelector) {\n this.resultSelector = resultSelector;\n }\n\n ZipOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ZipSubscriber(subscriber, this.resultSelector));\n };\n\n return ZipOperator;\n}();\n\nexport { ZipOperator };\n\nvar ZipSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(ZipSubscriber, _super);\n\n function ZipSubscriber(destination, resultSelector, values) {\n if (values === void 0) {\n values = Object.create(null);\n }\n\n var _this = _super.call(this, destination) || this;\n\n _this.resultSelector = resultSelector;\n _this.iterators = [];\n _this.active = 0;\n _this.resultSelector = typeof resultSelector === 'function' ? resultSelector : undefined;\n return _this;\n }\n\n ZipSubscriber.prototype._next = function (value) {\n var iterators = this.iterators;\n\n if (isArray(value)) {\n iterators.push(new StaticArrayIterator(value));\n } else if (typeof value[Symbol_iterator] === 'function') {\n iterators.push(new StaticIterator(value[Symbol_iterator]()));\n } else {\n iterators.push(new ZipBufferIterator(this.destination, this, value));\n }\n };\n\n ZipSubscriber.prototype._complete = function () {\n var iterators = this.iterators;\n var len = iterators.length;\n this.unsubscribe();\n\n if (len === 0) {\n this.destination.complete();\n return;\n }\n\n this.active = len;\n\n for (var i = 0; i < len; i++) {\n var iterator = iterators[i];\n\n if (iterator.stillUnsubscribed) {\n var destination = this.destination;\n destination.add(iterator.subscribe());\n } else {\n this.active--;\n }\n }\n };\n\n ZipSubscriber.prototype.notifyInactive = function () {\n this.active--;\n\n if (this.active === 0) {\n this.destination.complete();\n }\n };\n\n ZipSubscriber.prototype.checkIterators = function () {\n var iterators = this.iterators;\n var len = iterators.length;\n var destination = this.destination;\n\n for (var i = 0; i < len; i++) {\n var iterator = iterators[i];\n\n if (typeof iterator.hasValue === 'function' && !iterator.hasValue()) {\n return;\n }\n }\n\n var shouldComplete = false;\n var args = [];\n\n for (var i = 0; i < len; i++) {\n var iterator = iterators[i];\n var result = iterator.next();\n\n if (iterator.hasCompleted()) {\n shouldComplete = true;\n }\n\n if (result.done) {\n destination.complete();\n return;\n }\n\n args.push(result.value);\n }\n\n if (this.resultSelector) {\n this._tryresultSelector(args);\n } else {\n destination.next(args);\n }\n\n if (shouldComplete) {\n destination.complete();\n }\n };\n\n ZipSubscriber.prototype._tryresultSelector = function (args) {\n var result;\n\n try {\n result = this.resultSelector.apply(this, args);\n } catch (err) {\n this.destination.error(err);\n return;\n }\n\n this.destination.next(result);\n };\n\n return ZipSubscriber;\n}(Subscriber);\n\nexport { ZipSubscriber };\n\nvar StaticIterator = /*@__PURE__*/function () {\n function StaticIterator(iterator) {\n this.iterator = iterator;\n this.nextResult = iterator.next();\n }\n\n StaticIterator.prototype.hasValue = function () {\n return true;\n };\n\n StaticIterator.prototype.next = function () {\n var result = this.nextResult;\n this.nextResult = this.iterator.next();\n return result;\n };\n\n StaticIterator.prototype.hasCompleted = function () {\n var nextResult = this.nextResult;\n return Boolean(nextResult && nextResult.done);\n };\n\n return StaticIterator;\n}();\n\nvar StaticArrayIterator = /*@__PURE__*/function () {\n function StaticArrayIterator(array) {\n this.array = array;\n this.index = 0;\n this.length = 0;\n this.length = array.length;\n }\n\n StaticArrayIterator.prototype[Symbol_iterator] = function () {\n return this;\n };\n\n StaticArrayIterator.prototype.next = function (value) {\n var i = this.index++;\n var array = this.array;\n return i < this.length ? {\n value: array[i],\n done: false\n } : {\n value: null,\n done: true\n };\n };\n\n StaticArrayIterator.prototype.hasValue = function () {\n return this.array.length > this.index;\n };\n\n StaticArrayIterator.prototype.hasCompleted = function () {\n return this.array.length === this.index;\n };\n\n return StaticArrayIterator;\n}();\n\nvar ZipBufferIterator = /*@__PURE__*/function (_super) {\n tslib_1.__extends(ZipBufferIterator, _super);\n\n function ZipBufferIterator(destination, parent, observable) {\n var _this = _super.call(this, destination) || this;\n\n _this.parent = parent;\n _this.observable = observable;\n _this.stillUnsubscribed = true;\n _this.buffer = [];\n _this.isComplete = false;\n return _this;\n }\n\n ZipBufferIterator.prototype[Symbol_iterator] = function () {\n return this;\n };\n\n ZipBufferIterator.prototype.next = function () {\n var buffer = this.buffer;\n\n if (buffer.length === 0 && this.isComplete) {\n return {\n value: null,\n done: true\n };\n } else {\n return {\n value: buffer.shift(),\n done: false\n };\n }\n };\n\n ZipBufferIterator.prototype.hasValue = function () {\n return this.buffer.length > 0;\n };\n\n ZipBufferIterator.prototype.hasCompleted = function () {\n return this.buffer.length === 0 && this.isComplete;\n };\n\n ZipBufferIterator.prototype.notifyComplete = function () {\n if (this.buffer.length > 0) {\n this.isComplete = true;\n this.parent.notifyInactive();\n } else {\n this.destination.complete();\n }\n };\n\n ZipBufferIterator.prototype.notifyNext = function (innerValue) {\n this.buffer.push(innerValue);\n this.parent.checkIterators();\n };\n\n ZipBufferIterator.prototype.subscribe = function () {\n return innerSubscribe(this.observable, new SimpleInnerSubscriber(this));\n };\n\n return ZipBufferIterator;\n}(SimpleOuterSubscriber);","/** PURE_IMPORTS_START tslib,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function catchError(selector) {\n return function catchErrorOperatorFunction(source) {\n var operator = new CatchOperator(selector);\n var caught = source.lift(operator);\n return operator.caught = caught;\n };\n}\n\nvar CatchOperator = /*@__PURE__*/function () {\n function CatchOperator(selector) {\n this.selector = selector;\n }\n\n CatchOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new CatchSubscriber(subscriber, this.selector, this.caught));\n };\n\n return CatchOperator;\n}();\n\nvar CatchSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(CatchSubscriber, _super);\n\n function CatchSubscriber(destination, selector, caught) {\n var _this = _super.call(this, destination) || this;\n\n _this.selector = selector;\n _this.caught = caught;\n return _this;\n }\n\n CatchSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var result = void 0;\n\n try {\n result = this.selector(err, this.caught);\n } catch (err2) {\n _super.prototype.error.call(this, err2);\n\n return;\n }\n\n this._unsubscribeAndRecycle();\n\n var innerSubscriber = new SimpleInnerSubscriber(this);\n this.add(innerSubscriber);\n var innerSubscription = innerSubscribe(result, innerSubscriber);\n\n if (innerSubscription !== innerSubscriber) {\n this.add(innerSubscription);\n }\n }\n };\n\n return CatchSubscriber;\n}(SimpleOuterSubscriber);","/** PURE_IMPORTS_START _mergeAll PURE_IMPORTS_END */\nimport { mergeAll } from './mergeAll';\nexport function concatAll() {\n return mergeAll(1);\n}","/** PURE_IMPORTS_START _mergeMap PURE_IMPORTS_END */\nimport { mergeMap } from './mergeMap';\nexport function concatMap(project, resultSelector) {\n return mergeMap(project, resultSelector, 1);\n}","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function filter(predicate, thisArg) {\n return function filterOperatorFunction(source) {\n return source.lift(new FilterOperator(predicate, thisArg));\n };\n}\n\nvar FilterOperator = /*@__PURE__*/function () {\n function FilterOperator(predicate, thisArg) {\n this.predicate = predicate;\n this.thisArg = thisArg;\n }\n\n FilterOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));\n };\n\n return FilterOperator;\n}();\n\nvar FilterSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(FilterSubscriber, _super);\n\n function FilterSubscriber(destination, predicate, thisArg) {\n var _this = _super.call(this, destination) || this;\n\n _this.predicate = predicate;\n _this.thisArg = thisArg;\n _this.count = 0;\n return _this;\n }\n\n FilterSubscriber.prototype._next = function (value) {\n var result;\n\n try {\n result = this.predicate.call(this.thisArg, value, this.count++);\n } catch (err) {\n this.destination.error(err);\n return;\n }\n\n if (result) {\n this.destination.next(value);\n }\n };\n\n return FilterSubscriber;\n}(Subscriber);","/** PURE_IMPORTS_START tslib,_Subscriber,_Subscription,_Observable,_Subject PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { Observable } from '../Observable';\nimport { Subject } from '../Subject';\nexport function groupBy(keySelector, elementSelector, durationSelector, subjectSelector) {\n return function (source) {\n return source.lift(new GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector));\n };\n}\n\nvar GroupByOperator = /*@__PURE__*/function () {\n function GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector) {\n this.keySelector = keySelector;\n this.elementSelector = elementSelector;\n this.durationSelector = durationSelector;\n this.subjectSelector = subjectSelector;\n }\n\n GroupByOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new GroupBySubscriber(subscriber, this.keySelector, this.elementSelector, this.durationSelector, this.subjectSelector));\n };\n\n return GroupByOperator;\n}();\n\nvar GroupBySubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(GroupBySubscriber, _super);\n\n function GroupBySubscriber(destination, keySelector, elementSelector, durationSelector, subjectSelector) {\n var _this = _super.call(this, destination) || this;\n\n _this.keySelector = keySelector;\n _this.elementSelector = elementSelector;\n _this.durationSelector = durationSelector;\n _this.subjectSelector = subjectSelector;\n _this.groups = null;\n _this.attemptedToUnsubscribe = false;\n _this.count = 0;\n return _this;\n }\n\n GroupBySubscriber.prototype._next = function (value) {\n var key;\n\n try {\n key = this.keySelector(value);\n } catch (err) {\n this.error(err);\n return;\n }\n\n this._group(value, key);\n };\n\n GroupBySubscriber.prototype._group = function (value, key) {\n var groups = this.groups;\n\n if (!groups) {\n groups = this.groups = new Map();\n }\n\n var group = groups.get(key);\n var element;\n\n if (this.elementSelector) {\n try {\n element = this.elementSelector(value);\n } catch (err) {\n this.error(err);\n }\n } else {\n element = value;\n }\n\n if (!group) {\n group = this.subjectSelector ? this.subjectSelector() : new Subject();\n groups.set(key, group);\n var groupedObservable = new GroupedObservable(key, group, this);\n this.destination.next(groupedObservable);\n\n if (this.durationSelector) {\n var duration = void 0;\n\n try {\n duration = this.durationSelector(new GroupedObservable(key, group));\n } catch (err) {\n this.error(err);\n return;\n }\n\n this.add(duration.subscribe(new GroupDurationSubscriber(key, group, this)));\n }\n }\n\n if (!group.closed) {\n group.next(element);\n }\n };\n\n GroupBySubscriber.prototype._error = function (err) {\n var groups = this.groups;\n\n if (groups) {\n groups.forEach(function (group, key) {\n group.error(err);\n });\n groups.clear();\n }\n\n this.destination.error(err);\n };\n\n GroupBySubscriber.prototype._complete = function () {\n var groups = this.groups;\n\n if (groups) {\n groups.forEach(function (group, key) {\n group.complete();\n });\n groups.clear();\n }\n\n this.destination.complete();\n };\n\n GroupBySubscriber.prototype.removeGroup = function (key) {\n this.groups.delete(key);\n };\n\n GroupBySubscriber.prototype.unsubscribe = function () {\n if (!this.closed) {\n this.attemptedToUnsubscribe = true;\n\n if (this.count === 0) {\n _super.prototype.unsubscribe.call(this);\n }\n }\n };\n\n return GroupBySubscriber;\n}(Subscriber);\n\nvar GroupDurationSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(GroupDurationSubscriber, _super);\n\n function GroupDurationSubscriber(key, group, parent) {\n var _this = _super.call(this, group) || this;\n\n _this.key = key;\n _this.group = group;\n _this.parent = parent;\n return _this;\n }\n\n GroupDurationSubscriber.prototype._next = function (value) {\n this.complete();\n };\n\n GroupDurationSubscriber.prototype._unsubscribe = function () {\n var _a = this,\n parent = _a.parent,\n key = _a.key;\n\n this.key = this.parent = null;\n\n if (parent) {\n parent.removeGroup(key);\n }\n };\n\n return GroupDurationSubscriber;\n}(Subscriber);\n\nvar GroupedObservable = /*@__PURE__*/function (_super) {\n tslib_1.__extends(GroupedObservable, _super);\n\n function GroupedObservable(key, groupSubject, refCountSubscription) {\n var _this = _super.call(this) || this;\n\n _this.key = key;\n _this.groupSubject = groupSubject;\n _this.refCountSubscription = refCountSubscription;\n return _this;\n }\n\n GroupedObservable.prototype._subscribe = function (subscriber) {\n var subscription = new Subscription();\n\n var _a = this,\n refCountSubscription = _a.refCountSubscription,\n groupSubject = _a.groupSubject;\n\n if (refCountSubscription && !refCountSubscription.closed) {\n subscription.add(new InnerRefCountSubscription(refCountSubscription));\n }\n\n subscription.add(groupSubject.subscribe(subscriber));\n return subscription;\n };\n\n return GroupedObservable;\n}(Observable);\n\nexport { GroupedObservable };\n\nvar InnerRefCountSubscription = /*@__PURE__*/function (_super) {\n tslib_1.__extends(InnerRefCountSubscription, _super);\n\n function InnerRefCountSubscription(parent) {\n var _this = _super.call(this) || this;\n\n _this.parent = parent;\n parent.count++;\n return _this;\n }\n\n InnerRefCountSubscription.prototype.unsubscribe = function () {\n var parent = this.parent;\n\n if (!parent.closed && !this.closed) {\n _super.prototype.unsubscribe.call(this);\n\n parent.count -= 1;\n\n if (parent.count === 0 && parent.attemptedToUnsubscribe) {\n parent.unsubscribe();\n }\n }\n };\n\n return InnerRefCountSubscription;\n}(Subscription);","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function map(project, thisArg) {\n return function mapOperation(source) {\n if (typeof project !== 'function') {\n throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');\n }\n\n return source.lift(new MapOperator(project, thisArg));\n };\n}\n\nvar MapOperator = /*@__PURE__*/function () {\n function MapOperator(project, thisArg) {\n this.project = project;\n this.thisArg = thisArg;\n }\n\n MapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));\n };\n\n return MapOperator;\n}();\n\nexport { MapOperator };\n\nvar MapSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(MapSubscriber, _super);\n\n function MapSubscriber(destination, project, thisArg) {\n var _this = _super.call(this, destination) || this;\n\n _this.project = project;\n _this.count = 0;\n _this.thisArg = thisArg || _this;\n return _this;\n }\n\n MapSubscriber.prototype._next = function (value) {\n var result;\n\n try {\n result = this.project.call(this.thisArg, value, this.count++);\n } catch (err) {\n this.destination.error(err);\n return;\n }\n\n this.destination.next(result);\n };\n\n return MapSubscriber;\n}(Subscriber);","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function mapTo(value) {\n return function (source) {\n return source.lift(new MapToOperator(value));\n };\n}\n\nvar MapToOperator = /*@__PURE__*/function () {\n function MapToOperator(value) {\n this.value = value;\n }\n\n MapToOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MapToSubscriber(subscriber, this.value));\n };\n\n return MapToOperator;\n}();\n\nvar MapToSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(MapToSubscriber, _super);\n\n function MapToSubscriber(destination, value) {\n var _this = _super.call(this, destination) || this;\n\n _this.value = value;\n return _this;\n }\n\n MapToSubscriber.prototype._next = function (x) {\n this.destination.next(this.value);\n };\n\n return MapToSubscriber;\n}(Subscriber);","/** PURE_IMPORTS_START _mergeMap,_util_identity PURE_IMPORTS_END */\nimport { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent) {\n if (concurrent === void 0) {\n concurrent = Number.POSITIVE_INFINITY;\n }\n\n return mergeMap(identity, concurrent);\n}","/** PURE_IMPORTS_START tslib,_map,_observable_from,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { map } from './map';\nimport { from } from '../observable/from';\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function mergeMap(project, resultSelector, concurrent) {\n if (concurrent === void 0) {\n concurrent = Number.POSITIVE_INFINITY;\n }\n\n if (typeof resultSelector === 'function') {\n return function (source) {\n return source.pipe(mergeMap(function (a, i) {\n return from(project(a, i)).pipe(map(function (b, ii) {\n return resultSelector(a, b, i, ii);\n }));\n }, concurrent));\n };\n } else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n\n return function (source) {\n return source.lift(new MergeMapOperator(project, concurrent));\n };\n}\n\nvar MergeMapOperator = /*@__PURE__*/function () {\n function MergeMapOperator(project, concurrent) {\n if (concurrent === void 0) {\n concurrent = Number.POSITIVE_INFINITY;\n }\n\n this.project = project;\n this.concurrent = concurrent;\n }\n\n MergeMapOperator.prototype.call = function (observer, source) {\n return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent));\n };\n\n return MergeMapOperator;\n}();\n\nexport { MergeMapOperator };\n\nvar MergeMapSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(MergeMapSubscriber, _super);\n\n function MergeMapSubscriber(destination, project, concurrent) {\n if (concurrent === void 0) {\n concurrent = Number.POSITIVE_INFINITY;\n }\n\n var _this = _super.call(this, destination) || this;\n\n _this.project = project;\n _this.concurrent = concurrent;\n _this.hasCompleted = false;\n _this.buffer = [];\n _this.active = 0;\n _this.index = 0;\n return _this;\n }\n\n MergeMapSubscriber.prototype._next = function (value) {\n if (this.active < this.concurrent) {\n this._tryNext(value);\n } else {\n this.buffer.push(value);\n }\n };\n\n MergeMapSubscriber.prototype._tryNext = function (value) {\n var result;\n var index = this.index++;\n\n try {\n result = this.project(value, index);\n } catch (err) {\n this.destination.error(err);\n return;\n }\n\n this.active++;\n\n this._innerSub(result);\n };\n\n MergeMapSubscriber.prototype._innerSub = function (ish) {\n var innerSubscriber = new SimpleInnerSubscriber(this);\n var destination = this.destination;\n destination.add(innerSubscriber);\n var innerSubscription = innerSubscribe(ish, innerSubscriber);\n\n if (innerSubscription !== innerSubscriber) {\n destination.add(innerSubscription);\n }\n };\n\n MergeMapSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n\n if (this.active === 0 && this.buffer.length === 0) {\n this.destination.complete();\n }\n\n this.unsubscribe();\n };\n\n MergeMapSubscriber.prototype.notifyNext = function (innerValue) {\n this.destination.next(innerValue);\n };\n\n MergeMapSubscriber.prototype.notifyComplete = function () {\n var buffer = this.buffer;\n this.active--;\n\n if (buffer.length > 0) {\n this._next(buffer.shift());\n } else if (this.active === 0 && this.hasCompleted) {\n this.destination.complete();\n }\n };\n\n return MergeMapSubscriber;\n}(SimpleOuterSubscriber);\n\nexport { MergeMapSubscriber };\nexport var flatMap = mergeMap;","/** PURE_IMPORTS_START tslib,_Subscriber,_Notification PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function observeOn(scheduler, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n\n return function observeOnOperatorFunction(source) {\n return source.lift(new ObserveOnOperator(scheduler, delay));\n };\n}\n\nvar ObserveOnOperator = /*@__PURE__*/function () {\n function ObserveOnOperator(scheduler, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n\n this.scheduler = scheduler;\n this.delay = delay;\n }\n\n ObserveOnOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay));\n };\n\n return ObserveOnOperator;\n}();\n\nexport { ObserveOnOperator };\n\nvar ObserveOnSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(ObserveOnSubscriber, _super);\n\n function ObserveOnSubscriber(destination, scheduler, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n\n var _this = _super.call(this, destination) || this;\n\n _this.scheduler = scheduler;\n _this.delay = delay;\n return _this;\n }\n\n ObserveOnSubscriber.dispatch = function (arg) {\n var notification = arg.notification,\n destination = arg.destination;\n notification.observe(destination);\n this.unsubscribe();\n };\n\n ObserveOnSubscriber.prototype.scheduleMessage = function (notification) {\n var destination = this.destination;\n destination.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination)));\n };\n\n ObserveOnSubscriber.prototype._next = function (value) {\n this.scheduleMessage(Notification.createNext(value));\n };\n\n ObserveOnSubscriber.prototype._error = function (err) {\n this.scheduleMessage(Notification.createError(err));\n this.unsubscribe();\n };\n\n ObserveOnSubscriber.prototype._complete = function () {\n this.scheduleMessage(Notification.createComplete());\n this.unsubscribe();\n };\n\n return ObserveOnSubscriber;\n}(Subscriber);\n\nexport { ObserveOnSubscriber };\n\nvar ObserveOnMessage = /*@__PURE__*/function () {\n function ObserveOnMessage(notification, destination) {\n this.notification = notification;\n this.destination = destination;\n }\n\n return ObserveOnMessage;\n}();\n\nexport { ObserveOnMessage };","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function refCount() {\n return function refCountOperatorFunction(source) {\n return source.lift(new RefCountOperator(source));\n };\n}\n\nvar RefCountOperator = /*@__PURE__*/function () {\n function RefCountOperator(connectable) {\n this.connectable = connectable;\n }\n\n RefCountOperator.prototype.call = function (subscriber, source) {\n var connectable = this.connectable;\n connectable._refCount++;\n var refCounter = new RefCountSubscriber(subscriber, connectable);\n var subscription = source.subscribe(refCounter);\n\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n\n return subscription;\n };\n\n return RefCountOperator;\n}();\n\nvar RefCountSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(RefCountSubscriber, _super);\n\n function RefCountSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n\n _this.connectable = connectable;\n return _this;\n }\n\n RefCountSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n\n if (!connectable) {\n this.connection = null;\n return;\n }\n\n this.connectable = null;\n var refCount = connectable._refCount;\n\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n\n connectable._refCount = refCount - 1;\n\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n\n var connection = this.connection;\n var sharedConnection = connectable._connection;\n this.connection = null;\n\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n };\n\n return RefCountSubscriber;\n}(Subscriber);","/** PURE_IMPORTS_START tslib,_Observable,_scheduler_asap,_util_isNumeric PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Observable } from '../Observable';\nimport { asap } from '../scheduler/asap';\nimport { isNumeric } from '../util/isNumeric';\n\nvar SubscribeOnObservable = /*@__PURE__*/function (_super) {\n tslib_1.__extends(SubscribeOnObservable, _super);\n\n function SubscribeOnObservable(source, delayTime, scheduler) {\n if (delayTime === void 0) {\n delayTime = 0;\n }\n\n if (scheduler === void 0) {\n scheduler = asap;\n }\n\n var _this = _super.call(this) || this;\n\n _this.source = source;\n _this.delayTime = delayTime;\n _this.scheduler = scheduler;\n\n if (!isNumeric(delayTime) || delayTime < 0) {\n _this.delayTime = 0;\n }\n\n if (!scheduler || typeof scheduler.schedule !== 'function') {\n _this.scheduler = asap;\n }\n\n return _this;\n }\n\n SubscribeOnObservable.create = function (source, delay, scheduler) {\n if (delay === void 0) {\n delay = 0;\n }\n\n if (scheduler === void 0) {\n scheduler = asap;\n }\n\n return new SubscribeOnObservable(source, delay, scheduler);\n };\n\n SubscribeOnObservable.dispatch = function (arg) {\n var source = arg.source,\n subscriber = arg.subscriber;\n return this.add(source.subscribe(subscriber));\n };\n\n SubscribeOnObservable.prototype._subscribe = function (subscriber) {\n var delay = this.delayTime;\n var source = this.source;\n var scheduler = this.scheduler;\n return scheduler.schedule(SubscribeOnObservable.dispatch, delay, {\n source: source,\n subscriber: subscriber\n });\n };\n\n return SubscribeOnObservable;\n}(Observable);\n\nexport { SubscribeOnObservable };","/** PURE_IMPORTS_START _observable_SubscribeOnObservable PURE_IMPORTS_END */\nimport { SubscribeOnObservable } from '../observable/SubscribeOnObservable';\nexport function subscribeOn(scheduler, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n\n return function subscribeOnOperatorFunction(source) {\n return source.lift(new SubscribeOnOperator(scheduler, delay));\n };\n}\n\nvar SubscribeOnOperator = /*@__PURE__*/function () {\n function SubscribeOnOperator(scheduler, delay) {\n this.scheduler = scheduler;\n this.delay = delay;\n }\n\n SubscribeOnOperator.prototype.call = function (subscriber, source) {\n return new SubscribeOnObservable(source, this.delay, this.scheduler).subscribe(subscriber);\n };\n\n return SubscribeOnOperator;\n}();","/** PURE_IMPORTS_START tslib,_Subscriber,_util_noop,_util_isFunction PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { noop } from '../util/noop';\nimport { isFunction } from '../util/isFunction';\nexport function tap(nextOrObserver, error, complete) {\n return function tapOperatorFunction(source) {\n return source.lift(new DoOperator(nextOrObserver, error, complete));\n };\n}\n\nvar DoOperator = /*@__PURE__*/function () {\n function DoOperator(nextOrObserver, error, complete) {\n this.nextOrObserver = nextOrObserver;\n this.error = error;\n this.complete = complete;\n }\n\n DoOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete));\n };\n\n return DoOperator;\n}();\n\nvar TapSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(TapSubscriber, _super);\n\n function TapSubscriber(destination, observerOrNext, error, complete) {\n var _this = _super.call(this, destination) || this;\n\n _this._tapNext = noop;\n _this._tapError = noop;\n _this._tapComplete = noop;\n _this._tapError = error || noop;\n _this._tapComplete = complete || noop;\n\n if (isFunction(observerOrNext)) {\n _this._context = _this;\n _this._tapNext = observerOrNext;\n } else if (observerOrNext) {\n _this._context = observerOrNext;\n _this._tapNext = observerOrNext.next || noop;\n _this._tapError = observerOrNext.error || noop;\n _this._tapComplete = observerOrNext.complete || noop;\n }\n\n return _this;\n }\n\n TapSubscriber.prototype._next = function (value) {\n try {\n this._tapNext.call(this._context, value);\n } catch (err) {\n this.destination.error(err);\n return;\n }\n\n this.destination.next(value);\n };\n\n TapSubscriber.prototype._error = function (err) {\n try {\n this._tapError.call(this._context, err);\n } catch (err) {\n this.destination.error(err);\n return;\n }\n\n this.destination.error(err);\n };\n\n TapSubscriber.prototype._complete = function () {\n try {\n this._tapComplete.call(this._context);\n } catch (err) {\n this.destination.error(err);\n return;\n }\n\n return this.destination.complete();\n };\n\n return TapSubscriber;\n}(Subscriber);","/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function withLatestFrom() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return function (source) {\n var project;\n\n if (typeof args[args.length - 1] === 'function') {\n project = args.pop();\n }\n\n var observables = args;\n return source.lift(new WithLatestFromOperator(observables, project));\n };\n}\n\nvar WithLatestFromOperator = /*@__PURE__*/function () {\n function WithLatestFromOperator(observables, project) {\n this.observables = observables;\n this.project = project;\n }\n\n WithLatestFromOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WithLatestFromSubscriber(subscriber, this.observables, this.project));\n };\n\n return WithLatestFromOperator;\n}();\n\nvar WithLatestFromSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(WithLatestFromSubscriber, _super);\n\n function WithLatestFromSubscriber(destination, observables, project) {\n var _this = _super.call(this, destination) || this;\n\n _this.observables = observables;\n _this.project = project;\n _this.toRespond = [];\n var len = observables.length;\n _this.values = new Array(len);\n\n for (var i = 0; i < len; i++) {\n _this.toRespond.push(i);\n }\n\n for (var i = 0; i < len; i++) {\n var observable = observables[i];\n\n _this.add(subscribeToResult(_this, observable, undefined, i));\n }\n\n return _this;\n }\n\n WithLatestFromSubscriber.prototype.notifyNext = function (_outerValue, innerValue, outerIndex) {\n this.values[outerIndex] = innerValue;\n var toRespond = this.toRespond;\n\n if (toRespond.length > 0) {\n var found = toRespond.indexOf(outerIndex);\n\n if (found !== -1) {\n toRespond.splice(found, 1);\n }\n }\n };\n\n WithLatestFromSubscriber.prototype.notifyComplete = function () {};\n\n WithLatestFromSubscriber.prototype._next = function (value) {\n if (this.toRespond.length === 0) {\n var args = [value].concat(this.values);\n\n if (this.project) {\n this._tryProject(args);\n } else {\n this.destination.next(args);\n }\n }\n };\n\n WithLatestFromSubscriber.prototype._tryProject = function (args) {\n var result;\n\n try {\n result = this.project.apply(this, args);\n } catch (err) {\n this.destination.error(err);\n return;\n }\n\n this.destination.next(result);\n };\n\n return WithLatestFromSubscriber;\n}(OuterSubscriber);","/** PURE_IMPORTS_START _Observable,_Subscription PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function scheduleArray(input, scheduler) {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n var i = 0;\n sub.add(scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n return;\n }\n\n subscriber.next(input[i++]);\n\n if (!subscriber.closed) {\n sub.add(this.schedule());\n }\n }));\n return sub;\n });\n}","/** PURE_IMPORTS_START _scheduleObservable,_schedulePromise,_scheduleArray,_scheduleIterable,_util_isInteropObservable,_util_isPromise,_util_isArrayLike,_util_isIterable PURE_IMPORTS_END */\nimport { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\nexport function scheduled(input, scheduler) {\n if (input != null) {\n if (isInteropObservable(input)) {\n return scheduleObservable(input, scheduler);\n } else if (isPromise(input)) {\n return schedulePromise(input, scheduler);\n } else if (isArrayLike(input)) {\n return scheduleArray(input, scheduler);\n } else if (isIterable(input) || typeof input === 'string') {\n return scheduleIterable(input, scheduler);\n }\n }\n\n throw new TypeError((input !== null && typeof input || input) + ' is not observable');\n}","/** PURE_IMPORTS_START _symbol_observable PURE_IMPORTS_END */\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function isInteropObservable(input) {\n return input && typeof input[Symbol_observable] === 'function';\n}","/** PURE_IMPORTS_START _Observable,_Subscription,_symbol_observable PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function scheduleObservable(input, scheduler) {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n sub.add(scheduler.schedule(function () {\n var observable = input[Symbol_observable]();\n sub.add(observable.subscribe({\n next: function next(value) {\n sub.add(scheduler.schedule(function () {\n return subscriber.next(value);\n }));\n },\n error: function error(err) {\n sub.add(scheduler.schedule(function () {\n return subscriber.error(err);\n }));\n },\n complete: function complete() {\n sub.add(scheduler.schedule(function () {\n return subscriber.complete();\n }));\n }\n }));\n }));\n return sub;\n });\n}","/** PURE_IMPORTS_START _Observable,_Subscription PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function schedulePromise(input, scheduler) {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n sub.add(scheduler.schedule(function () {\n return input.then(function (value) {\n sub.add(scheduler.schedule(function () {\n subscriber.next(value);\n sub.add(scheduler.schedule(function () {\n return subscriber.complete();\n }));\n }));\n }, function (err) {\n sub.add(scheduler.schedule(function () {\n return subscriber.error(err);\n }));\n });\n }));\n return sub;\n });\n}","/** PURE_IMPORTS_START _symbol_iterator PURE_IMPORTS_END */\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nexport function isIterable(input) {\n return input && typeof input[Symbol_iterator] === 'function';\n}","/** PURE_IMPORTS_START _Observable,_Subscription,_symbol_iterator PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nexport function scheduleIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n var iterator;\n sub.add(function () {\n if (iterator && typeof iterator.return === 'function') {\n iterator.return();\n }\n });\n sub.add(scheduler.schedule(function () {\n iterator = input[Symbol_iterator]();\n sub.add(scheduler.schedule(function () {\n if (subscriber.closed) {\n return;\n }\n\n var value;\n var done;\n\n try {\n var result = iterator.next();\n value = result.value;\n done = result.done;\n } catch (err) {\n subscriber.error(err);\n return;\n }\n\n if (done) {\n subscriber.complete();\n } else {\n subscriber.next(value);\n this.schedule();\n }\n }));\n }));\n return sub;\n });\n}","/** PURE_IMPORTS_START tslib,_Action PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Action } from './Action';\n\nvar AsyncAction = /*@__PURE__*/function (_super) {\n tslib_1.__extends(AsyncAction, _super);\n\n function AsyncAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n\n _this.scheduler = scheduler;\n _this.work = work;\n _this.pending = false;\n return _this;\n }\n\n AsyncAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n\n if (this.closed) {\n return this;\n }\n\n this.state = state;\n var id = this.id;\n var scheduler = this.scheduler;\n\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n\n this.pending = true;\n this.delay = delay;\n this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n return this;\n };\n\n AsyncAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n\n return setInterval(scheduler.flush.bind(scheduler, this), delay);\n };\n\n AsyncAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n\n if (delay !== null && this.delay === delay && this.pending === false) {\n return id;\n }\n\n clearInterval(id);\n return undefined;\n };\n\n AsyncAction.prototype.execute = function (state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n\n this.pending = false;\n\n var error = this._execute(state, delay);\n\n if (error) {\n return error;\n } else if (this.pending === false && this.id != null) {\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n };\n\n AsyncAction.prototype._execute = function (state, delay) {\n var errored = false;\n var errorValue = undefined;\n\n try {\n this.work(state);\n } catch (e) {\n errored = true;\n errorValue = !!e && e || new Error(e);\n }\n\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n };\n\n AsyncAction.prototype._unsubscribe = function () {\n var id = this.id;\n var scheduler = this.scheduler;\n var actions = scheduler.actions;\n var index = actions.indexOf(this);\n this.work = null;\n this.state = null;\n this.pending = false;\n this.scheduler = null;\n\n if (index !== -1) {\n actions.splice(index, 1);\n }\n\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n\n this.delay = null;\n };\n\n return AsyncAction;\n}(Action);\n\nexport { AsyncAction };","/** PURE_IMPORTS_START tslib,_Subscription PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscription } from '../Subscription';\n\nvar Action = /*@__PURE__*/function (_super) {\n tslib_1.__extends(Action, _super);\n\n function Action(scheduler, work) {\n return _super.call(this) || this;\n }\n\n Action.prototype.schedule = function (state, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n\n return this;\n };\n\n return Action;\n}(Subscription);\n\nexport { Action };","/** PURE_IMPORTS_START tslib,_Scheduler PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Scheduler } from '../Scheduler';\n\nvar AsyncScheduler = /*@__PURE__*/function (_super) {\n tslib_1.__extends(AsyncScheduler, _super);\n\n function AsyncScheduler(SchedulerAction, now) {\n if (now === void 0) {\n now = Scheduler.now;\n }\n\n var _this = _super.call(this, SchedulerAction, function () {\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== _this) {\n return AsyncScheduler.delegate.now();\n } else {\n return now();\n }\n }) || this;\n\n _this.actions = [];\n _this.active = false;\n _this.scheduled = undefined;\n return _this;\n }\n\n AsyncScheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) {\n delay = 0;\n }\n\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {\n return AsyncScheduler.delegate.schedule(work, delay, state);\n } else {\n return _super.prototype.schedule.call(this, work, delay, state);\n }\n };\n\n AsyncScheduler.prototype.flush = function (action) {\n var actions = this.actions;\n\n if (this.active) {\n actions.push(action);\n return;\n }\n\n var error;\n this.active = true;\n\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (action = actions.shift());\n\n this.active = false;\n\n if (error) {\n while (action = actions.shift()) {\n action.unsubscribe();\n }\n\n throw error;\n }\n };\n\n return AsyncScheduler;\n}(Scheduler);\n\nexport { AsyncScheduler };","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nvar nextHandle = 1;\n\nvar RESOLVED = /*@__PURE__*/function () {\n return /*@__PURE__*/Promise.resolve();\n}();\n\nvar activeHandles = {};\n\nfunction findAndClearHandle(handle) {\n if (handle in activeHandles) {\n delete activeHandles[handle];\n return true;\n }\n\n return false;\n}\n\nexport var Immediate = {\n setImmediate: function setImmediate(cb) {\n var handle = nextHandle++;\n activeHandles[handle] = true;\n RESOLVED.then(function () {\n return findAndClearHandle(handle) && cb();\n });\n return handle;\n },\n clearImmediate: function clearImmediate(handle) {\n findAndClearHandle(handle);\n }\n};\nexport var TestTools = {\n pending: function pending() {\n return Object.keys(activeHandles).length;\n }\n};","/** PURE_IMPORTS_START tslib,_util_Immediate,_AsyncAction PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Immediate } from '../util/Immediate';\nimport { AsyncAction } from './AsyncAction';\n\nvar AsapAction = /*@__PURE__*/function (_super) {\n tslib_1.__extends(AsapAction, _super);\n\n function AsapAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n\n AsapAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n\n if (delay !== null && delay > 0) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n\n scheduler.actions.push(this);\n return scheduler.scheduled || (scheduler.scheduled = Immediate.setImmediate(scheduler.flush.bind(scheduler, null)));\n };\n\n AsapAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n\n if (delay !== null && delay > 0 || delay === null && this.delay > 0) {\n return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n }\n\n if (scheduler.actions.length === 0) {\n Immediate.clearImmediate(id);\n scheduler.scheduled = undefined;\n }\n\n return undefined;\n };\n\n return AsapAction;\n}(AsyncAction);\n\nexport { AsapAction };","/** PURE_IMPORTS_START tslib,_AsyncScheduler PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\n\nvar AsapScheduler = /*@__PURE__*/function (_super) {\n tslib_1.__extends(AsapScheduler, _super);\n\n function AsapScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n AsapScheduler.prototype.flush = function (action) {\n this.active = true;\n this.scheduled = undefined;\n var actions = this.actions;\n var error;\n var index = -1;\n var count = actions.length;\n action = action || actions.shift();\n\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (++index < count && (action = actions.shift()));\n\n this.active = false;\n\n if (error) {\n while (++index < count && (action = actions.shift())) {\n action.unsubscribe();\n }\n\n throw error;\n }\n };\n\n return AsapScheduler;\n}(AsyncScheduler);\n\nexport { AsapScheduler };","/** PURE_IMPORTS_START _AsapAction,_AsapScheduler PURE_IMPORTS_END */\nimport { AsapAction } from './AsapAction';\nimport { AsapScheduler } from './AsapScheduler';\nexport var asapScheduler = /*@__PURE__*/new AsapScheduler(AsapAction);\nexport var asap = asapScheduler;","/** PURE_IMPORTS_START _AsyncAction,_AsyncScheduler PURE_IMPORTS_END */\nimport { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nexport var asyncScheduler = /*@__PURE__*/new AsyncScheduler(AsyncAction);\nexport var async = asyncScheduler;","/** PURE_IMPORTS_START tslib,_AsyncAction PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\n\nvar QueueAction = /*@__PURE__*/function (_super) {\n tslib_1.__extends(QueueAction, _super);\n\n function QueueAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n\n QueueAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n\n if (delay > 0) {\n return _super.prototype.schedule.call(this, state, delay);\n }\n\n this.delay = delay;\n this.state = state;\n this.scheduler.flush(this);\n return this;\n };\n\n QueueAction.prototype.execute = function (state, delay) {\n return delay > 0 || this.closed ? _super.prototype.execute.call(this, state, delay) : this._execute(state, delay);\n };\n\n QueueAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n\n if (delay !== null && delay > 0 || delay === null && this.delay > 0) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n\n return scheduler.flush(this);\n };\n\n return QueueAction;\n}(AsyncAction);\n\nexport { QueueAction };","/** PURE_IMPORTS_START tslib,_AsyncScheduler PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\n\nvar QueueScheduler = /*@__PURE__*/function (_super) {\n tslib_1.__extends(QueueScheduler, _super);\n\n function QueueScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n return QueueScheduler;\n}(AsyncScheduler);\n\nexport { QueueScheduler };","/** PURE_IMPORTS_START _QueueAction,_QueueScheduler PURE_IMPORTS_END */\nimport { QueueAction } from './QueueAction';\nimport { QueueScheduler } from './QueueScheduler';\nexport var queueScheduler = /*@__PURE__*/new QueueScheduler(QueueAction);\nexport var queue = queueScheduler;","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n\n return Symbol.iterator;\n}\nexport var iterator = /*@__PURE__*/getSymbolIterator();\nexport var $$iterator = iterator;","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport var observable = /*@__PURE__*/function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n}();","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport var rxSubscriber = /*@__PURE__*/function () {\n return typeof Symbol === 'function' ? /*@__PURE__*/Symbol('rxSubscriber') : '@@rxSubscriber_' + /*@__PURE__*/Math.random();\n}();\nexport var $$rxSubscriber = rxSubscriber;","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nvar ArgumentOutOfRangeErrorImpl = /*@__PURE__*/function () {\n function ArgumentOutOfRangeErrorImpl() {\n Error.call(this);\n this.message = 'argument out of range';\n this.name = 'ArgumentOutOfRangeError';\n return this;\n }\n\n ArgumentOutOfRangeErrorImpl.prototype = /*@__PURE__*/Object.create(Error.prototype);\n return ArgumentOutOfRangeErrorImpl;\n}();\n\nexport var ArgumentOutOfRangeError = ArgumentOutOfRangeErrorImpl;","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nvar EmptyErrorImpl = /*@__PURE__*/function () {\n function EmptyErrorImpl() {\n Error.call(this);\n this.message = 'no elements in sequence';\n this.name = 'EmptyError';\n return this;\n }\n\n EmptyErrorImpl.prototype = /*@__PURE__*/Object.create(Error.prototype);\n return EmptyErrorImpl;\n}();\n\nexport var EmptyError = EmptyErrorImpl;","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nvar ObjectUnsubscribedErrorImpl = /*@__PURE__*/function () {\n function ObjectUnsubscribedErrorImpl() {\n Error.call(this);\n this.message = 'object unsubscribed';\n this.name = 'ObjectUnsubscribedError';\n return this;\n }\n\n ObjectUnsubscribedErrorImpl.prototype = /*@__PURE__*/Object.create(Error.prototype);\n return ObjectUnsubscribedErrorImpl;\n}();\n\nexport var ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl;","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nvar TimeoutErrorImpl = /*@__PURE__*/function () {\n function TimeoutErrorImpl() {\n Error.call(this);\n this.message = 'Timeout has occurred';\n this.name = 'TimeoutError';\n return this;\n }\n\n TimeoutErrorImpl.prototype = /*@__PURE__*/Object.create(Error.prototype);\n return TimeoutErrorImpl;\n}();\n\nexport var TimeoutError = TimeoutErrorImpl;","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nvar UnsubscriptionErrorImpl = /*@__PURE__*/function () {\n function UnsubscriptionErrorImpl(errors) {\n Error.call(this);\n this.message = errors ? errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) {\n return i + 1 + \") \" + err.toString();\n }).join('\\n ') : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n return this;\n }\n\n UnsubscriptionErrorImpl.prototype = /*@__PURE__*/Object.create(Error.prototype);\n return UnsubscriptionErrorImpl;\n}();\n\nexport var UnsubscriptionError = UnsubscriptionErrorImpl;","/** PURE_IMPORTS_START _Subscriber PURE_IMPORTS_END */\nimport { Subscriber } from '../Subscriber';\nexport function canReportError(observer) {\n while (observer) {\n var _a = observer,\n closed_1 = _a.closed,\n destination = _a.destination,\n isStopped = _a.isStopped;\n\n if (closed_1 || isStopped) {\n return false;\n } else if (destination && destination instanceof Subscriber) {\n observer = destination;\n } else {\n observer = null;\n }\n }\n\n return true;\n}","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function hostReportError(err) {\n setTimeout(function () {\n throw err;\n }, 0);\n}","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function identity(x) {\n return x;\n}","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport var isArray = /*@__PURE__*/function () {\n return Array.isArray || function (x) {\n return x && typeof x.length === 'number';\n };\n}();","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport var isArrayLike = function isArrayLike(x) {\n return x && typeof x.length === 'number' && typeof x !== 'function';\n};","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function isFunction(x) {\n return typeof x === 'function';\n}","/** PURE_IMPORTS_START _isArray PURE_IMPORTS_END */\nimport { isArray } from './isArray';\nexport function isNumeric(val) {\n return !isArray(val) && val - parseFloat(val) + 1 >= 0;\n}","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function isObject(x) {\n return x !== null && typeof x === 'object';\n}","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function isPromise(value) {\n return !!value && typeof value.subscribe !== 'function' && typeof value.then === 'function';\n}","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function isScheduler(value) {\n return value && typeof value.schedule === 'function';\n}","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function noop() {}","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function not(pred, thisArg) {\n function notPred() {\n return !notPred.pred.apply(notPred.thisArg, arguments);\n }\n\n notPred.pred = pred;\n notPred.thisArg = thisArg;\n return notPred;\n}","/** PURE_IMPORTS_START _identity PURE_IMPORTS_END */\nimport { identity } from './identity';\nexport function pipe() {\n var fns = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n\n if (fns.length === 1) {\n return fns[0];\n }\n\n return function piped(input) {\n return fns.reduce(function (prev, fn) {\n return fn(prev);\n }, input);\n };\n}","/** PURE_IMPORTS_START _subscribeToArray,_subscribeToPromise,_subscribeToIterable,_subscribeToObservable,_isArrayLike,_isPromise,_isObject,_symbol_iterator,_symbol_observable PURE_IMPORTS_END */\nimport { subscribeToArray } from './subscribeToArray';\nimport { subscribeToPromise } from './subscribeToPromise';\nimport { subscribeToIterable } from './subscribeToIterable';\nimport { subscribeToObservable } from './subscribeToObservable';\nimport { isArrayLike } from './isArrayLike';\nimport { isPromise } from './isPromise';\nimport { isObject } from './isObject';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport var subscribeTo = function subscribeTo(result) {\n if (!!result && typeof result[Symbol_observable] === 'function') {\n return subscribeToObservable(result);\n } else if (isArrayLike(result)) {\n return subscribeToArray(result);\n } else if (isPromise(result)) {\n return subscribeToPromise(result);\n } else if (!!result && typeof result[Symbol_iterator] === 'function') {\n return subscribeToIterable(result);\n } else {\n var value = isObject(result) ? 'an invalid object' : \"'\" + result + \"'\";\n var msg = \"You provided \" + value + \" where a stream was expected.\" + ' You can provide an Observable, Promise, Array, or Iterable.';\n throw new TypeError(msg);\n }\n};","/** PURE_IMPORTS_START _symbol_observable PURE_IMPORTS_END */\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport var subscribeToObservable = function subscribeToObservable(obj) {\n return function (subscriber) {\n var obs = obj[Symbol_observable]();\n\n if (typeof obs.subscribe !== 'function') {\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n } else {\n return obs.subscribe(subscriber);\n }\n };\n};","/** PURE_IMPORTS_START _hostReportError PURE_IMPORTS_END */\nimport { hostReportError } from './hostReportError';\nexport var subscribeToPromise = function subscribeToPromise(promise) {\n return function (subscriber) {\n promise.then(function (value) {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, function (err) {\n return subscriber.error(err);\n }).then(null, hostReportError);\n return subscriber;\n };\n};","/** PURE_IMPORTS_START _symbol_iterator PURE_IMPORTS_END */\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nexport var subscribeToIterable = function subscribeToIterable(iterable) {\n return function (subscriber) {\n var iterator = iterable[Symbol_iterator]();\n\n do {\n var item = void 0;\n\n try {\n item = iterator.next();\n } catch (err) {\n subscriber.error(err);\n return subscriber;\n }\n\n if (item.done) {\n subscriber.complete();\n break;\n }\n\n subscriber.next(item.value);\n\n if (subscriber.closed) {\n break;\n }\n } while (true);\n\n if (typeof iterator.return === 'function') {\n subscriber.add(function () {\n if (iterator.return) {\n iterator.return();\n }\n });\n }\n\n return subscriber;\n };\n};","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport var subscribeToArray = function subscribeToArray(array) {\n return function (subscriber) {\n for (var i = 0, len = array.length; i < len && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n\n subscriber.complete();\n };\n};","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from './Subscriber';\n\nvar InnerSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(InnerSubscriber, _super);\n\n function InnerSubscriber(parent, outerValue, outerIndex) {\n var _this = _super.call(this) || this;\n\n _this.parent = parent;\n _this.outerValue = outerValue;\n _this.outerIndex = outerIndex;\n _this.index = 0;\n return _this;\n }\n\n InnerSubscriber.prototype._next = function (value) {\n this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this);\n };\n\n InnerSubscriber.prototype._error = function (error) {\n this.parent.notifyError(error, this);\n this.unsubscribe();\n };\n\n InnerSubscriber.prototype._complete = function () {\n this.parent.notifyComplete(this);\n this.unsubscribe();\n };\n\n return InnerSubscriber;\n}(Subscriber);\n\nexport { InnerSubscriber };","/** PURE_IMPORTS_START _InnerSubscriber,_subscribeTo,_Observable PURE_IMPORTS_END */\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeTo } from './subscribeTo';\nimport { Observable } from '../Observable';\nexport function subscribeToResult(outerSubscriber, result, outerValue, outerIndex, innerSubscriber) {\n if (innerSubscriber === void 0) {\n innerSubscriber = new InnerSubscriber(outerSubscriber, outerValue, outerIndex);\n }\n\n if (innerSubscriber.closed) {\n return undefined;\n }\n\n if (result instanceof Observable) {\n return result.subscribe(innerSubscriber);\n }\n\n return subscribeTo(result)(innerSubscriber);\n}","/** PURE_IMPORTS_START tslib,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport function audit(durationSelector) {\n return function auditOperatorFunction(source) {\n return source.lift(new AuditOperator(durationSelector));\n };\n}\n\nvar AuditOperator = /*@__PURE__*/function () {\n function AuditOperator(durationSelector) {\n this.durationSelector = durationSelector;\n }\n\n AuditOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new AuditSubscriber(subscriber, this.durationSelector));\n };\n\n return AuditOperator;\n}();\n\nvar AuditSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(AuditSubscriber, _super);\n\n function AuditSubscriber(destination, durationSelector) {\n var _this = _super.call(this, destination) || this;\n\n _this.durationSelector = durationSelector;\n _this.hasValue = false;\n return _this;\n }\n\n AuditSubscriber.prototype._next = function (value) {\n this.value = value;\n this.hasValue = true;\n\n if (!this.throttled) {\n var duration = void 0;\n\n try {\n var durationSelector = this.durationSelector;\n duration = durationSelector(value);\n } catch (err) {\n return this.destination.error(err);\n }\n\n var innerSubscription = innerSubscribe(duration, new SimpleInnerSubscriber(this));\n\n if (!innerSubscription || innerSubscription.closed) {\n this.clearThrottle();\n } else {\n this.add(this.throttled = innerSubscription);\n }\n }\n };\n\n AuditSubscriber.prototype.clearThrottle = function () {\n var _a = this,\n value = _a.value,\n hasValue = _a.hasValue,\n throttled = _a.throttled;\n\n if (throttled) {\n this.remove(throttled);\n this.throttled = undefined;\n throttled.unsubscribe();\n }\n\n if (hasValue) {\n this.value = undefined;\n this.hasValue = false;\n this.destination.next(value);\n }\n };\n\n AuditSubscriber.prototype.notifyNext = function () {\n this.clearThrottle();\n };\n\n AuditSubscriber.prototype.notifyComplete = function () {\n this.clearThrottle();\n };\n\n return AuditSubscriber;\n}(SimpleOuterSubscriber);","/** PURE_IMPORTS_START _scheduler_async,_audit,_observable_timer PURE_IMPORTS_END */\nimport { async } from '../scheduler/async';\nimport { audit } from './audit';\nimport { timer } from '../observable/timer';\nexport function auditTime(duration, scheduler) {\n if (scheduler === void 0) {\n scheduler = async;\n }\n\n return audit(function () {\n return timer(duration, scheduler);\n });\n}","/** PURE_IMPORTS_START tslib,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport function buffer(closingNotifier) {\n return function bufferOperatorFunction(source) {\n return source.lift(new BufferOperator(closingNotifier));\n };\n}\n\nvar BufferOperator = /*@__PURE__*/function () {\n function BufferOperator(closingNotifier) {\n this.closingNotifier = closingNotifier;\n }\n\n BufferOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new BufferSubscriber(subscriber, this.closingNotifier));\n };\n\n return BufferOperator;\n}();\n\nvar BufferSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(BufferSubscriber, _super);\n\n function BufferSubscriber(destination, closingNotifier) {\n var _this = _super.call(this, destination) || this;\n\n _this.buffer = [];\n\n _this.add(innerSubscribe(closingNotifier, new SimpleInnerSubscriber(_this)));\n\n return _this;\n }\n\n BufferSubscriber.prototype._next = function (value) {\n this.buffer.push(value);\n };\n\n BufferSubscriber.prototype.notifyNext = function () {\n var buffer = this.buffer;\n this.buffer = [];\n this.destination.next(buffer);\n };\n\n return BufferSubscriber;\n}(SimpleOuterSubscriber);","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function bufferCount(bufferSize, startBufferEvery) {\n if (startBufferEvery === void 0) {\n startBufferEvery = null;\n }\n\n return function bufferCountOperatorFunction(source) {\n return source.lift(new BufferCountOperator(bufferSize, startBufferEvery));\n };\n}\n\nvar BufferCountOperator = /*@__PURE__*/function () {\n function BufferCountOperator(bufferSize, startBufferEvery) {\n this.bufferSize = bufferSize;\n this.startBufferEvery = startBufferEvery;\n\n if (!startBufferEvery || bufferSize === startBufferEvery) {\n this.subscriberClass = BufferCountSubscriber;\n } else {\n this.subscriberClass = BufferSkipCountSubscriber;\n }\n }\n\n BufferCountOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new this.subscriberClass(subscriber, this.bufferSize, this.startBufferEvery));\n };\n\n return BufferCountOperator;\n}();\n\nvar BufferCountSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(BufferCountSubscriber, _super);\n\n function BufferCountSubscriber(destination, bufferSize) {\n var _this = _super.call(this, destination) || this;\n\n _this.bufferSize = bufferSize;\n _this.buffer = [];\n return _this;\n }\n\n BufferCountSubscriber.prototype._next = function (value) {\n var buffer = this.buffer;\n buffer.push(value);\n\n if (buffer.length == this.bufferSize) {\n this.destination.next(buffer);\n this.buffer = [];\n }\n };\n\n BufferCountSubscriber.prototype._complete = function () {\n var buffer = this.buffer;\n\n if (buffer.length > 0) {\n this.destination.next(buffer);\n }\n\n _super.prototype._complete.call(this);\n };\n\n return BufferCountSubscriber;\n}(Subscriber);\n\nvar BufferSkipCountSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(BufferSkipCountSubscriber, _super);\n\n function BufferSkipCountSubscriber(destination, bufferSize, startBufferEvery) {\n var _this = _super.call(this, destination) || this;\n\n _this.bufferSize = bufferSize;\n _this.startBufferEvery = startBufferEvery;\n _this.buffers = [];\n _this.count = 0;\n return _this;\n }\n\n BufferSkipCountSubscriber.prototype._next = function (value) {\n var _a = this,\n bufferSize = _a.bufferSize,\n startBufferEvery = _a.startBufferEvery,\n buffers = _a.buffers,\n count = _a.count;\n\n this.count++;\n\n if (count % startBufferEvery === 0) {\n buffers.push([]);\n }\n\n for (var i = buffers.length; i--;) {\n var buffer = buffers[i];\n buffer.push(value);\n\n if (buffer.length === bufferSize) {\n buffers.splice(i, 1);\n this.destination.next(buffer);\n }\n }\n };\n\n BufferSkipCountSubscriber.prototype._complete = function () {\n var _a = this,\n buffers = _a.buffers,\n destination = _a.destination;\n\n while (buffers.length > 0) {\n var buffer = buffers.shift();\n\n if (buffer.length > 0) {\n destination.next(buffer);\n }\n }\n\n _super.prototype._complete.call(this);\n };\n\n return BufferSkipCountSubscriber;\n}(Subscriber);","/** PURE_IMPORTS_START tslib,_scheduler_async,_Subscriber,_util_isScheduler PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { async } from '../scheduler/async';\nimport { Subscriber } from '../Subscriber';\nimport { isScheduler } from '../util/isScheduler';\nexport function bufferTime(bufferTimeSpan) {\n var length = arguments.length;\n var scheduler = async;\n\n if (isScheduler(arguments[arguments.length - 1])) {\n scheduler = arguments[arguments.length - 1];\n length--;\n }\n\n var bufferCreationInterval = null;\n\n if (length >= 2) {\n bufferCreationInterval = arguments[1];\n }\n\n var maxBufferSize = Number.POSITIVE_INFINITY;\n\n if (length >= 3) {\n maxBufferSize = arguments[2];\n }\n\n return function bufferTimeOperatorFunction(source) {\n return source.lift(new BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler));\n };\n}\n\nvar BufferTimeOperator = /*@__PURE__*/function () {\n function BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) {\n this.bufferTimeSpan = bufferTimeSpan;\n this.bufferCreationInterval = bufferCreationInterval;\n this.maxBufferSize = maxBufferSize;\n this.scheduler = scheduler;\n }\n\n BufferTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new BufferTimeSubscriber(subscriber, this.bufferTimeSpan, this.bufferCreationInterval, this.maxBufferSize, this.scheduler));\n };\n\n return BufferTimeOperator;\n}();\n\nvar Context = /*@__PURE__*/function () {\n function Context() {\n this.buffer = [];\n }\n\n return Context;\n}();\n\nvar BufferTimeSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(BufferTimeSubscriber, _super);\n\n function BufferTimeSubscriber(destination, bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) {\n var _this = _super.call(this, destination) || this;\n\n _this.bufferTimeSpan = bufferTimeSpan;\n _this.bufferCreationInterval = bufferCreationInterval;\n _this.maxBufferSize = maxBufferSize;\n _this.scheduler = scheduler;\n _this.contexts = [];\n\n var context = _this.openContext();\n\n _this.timespanOnly = bufferCreationInterval == null || bufferCreationInterval < 0;\n\n if (_this.timespanOnly) {\n var timeSpanOnlyState = {\n subscriber: _this,\n context: context,\n bufferTimeSpan: bufferTimeSpan\n };\n\n _this.add(context.closeAction = scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));\n } else {\n var closeState = {\n subscriber: _this,\n context: context\n };\n var creationState = {\n bufferTimeSpan: bufferTimeSpan,\n bufferCreationInterval: bufferCreationInterval,\n subscriber: _this,\n scheduler: scheduler\n };\n\n _this.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, closeState));\n\n _this.add(scheduler.schedule(dispatchBufferCreation, bufferCreationInterval, creationState));\n }\n\n return _this;\n }\n\n BufferTimeSubscriber.prototype._next = function (value) {\n var contexts = this.contexts;\n var len = contexts.length;\n var filledBufferContext;\n\n for (var i = 0; i < len; i++) {\n var context_1 = contexts[i];\n var buffer = context_1.buffer;\n buffer.push(value);\n\n if (buffer.length == this.maxBufferSize) {\n filledBufferContext = context_1;\n }\n }\n\n if (filledBufferContext) {\n this.onBufferFull(filledBufferContext);\n }\n };\n\n BufferTimeSubscriber.prototype._error = function (err) {\n this.contexts.length = 0;\n\n _super.prototype._error.call(this, err);\n };\n\n BufferTimeSubscriber.prototype._complete = function () {\n var _a = this,\n contexts = _a.contexts,\n destination = _a.destination;\n\n while (contexts.length > 0) {\n var context_2 = contexts.shift();\n destination.next(context_2.buffer);\n }\n\n _super.prototype._complete.call(this);\n };\n\n BufferTimeSubscriber.prototype._unsubscribe = function () {\n this.contexts = null;\n };\n\n BufferTimeSubscriber.prototype.onBufferFull = function (context) {\n this.closeContext(context);\n var closeAction = context.closeAction;\n closeAction.unsubscribe();\n this.remove(closeAction);\n\n if (!this.closed && this.timespanOnly) {\n context = this.openContext();\n var bufferTimeSpan = this.bufferTimeSpan;\n var timeSpanOnlyState = {\n subscriber: this,\n context: context,\n bufferTimeSpan: bufferTimeSpan\n };\n this.add(context.closeAction = this.scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));\n }\n };\n\n BufferTimeSubscriber.prototype.openContext = function () {\n var context = new Context();\n this.contexts.push(context);\n return context;\n };\n\n BufferTimeSubscriber.prototype.closeContext = function (context) {\n this.destination.next(context.buffer);\n var contexts = this.contexts;\n var spliceIndex = contexts ? contexts.indexOf(context) : -1;\n\n if (spliceIndex >= 0) {\n contexts.splice(contexts.indexOf(context), 1);\n }\n };\n\n return BufferTimeSubscriber;\n}(Subscriber);\n\nfunction dispatchBufferTimeSpanOnly(state) {\n var subscriber = state.subscriber;\n var prevContext = state.context;\n\n if (prevContext) {\n subscriber.closeContext(prevContext);\n }\n\n if (!subscriber.closed) {\n state.context = subscriber.openContext();\n state.context.closeAction = this.schedule(state, state.bufferTimeSpan);\n }\n}\n\nfunction dispatchBufferCreation(state) {\n var bufferCreationInterval = state.bufferCreationInterval,\n bufferTimeSpan = state.bufferTimeSpan,\n subscriber = state.subscriber,\n scheduler = state.scheduler;\n var context = subscriber.openContext();\n var action = this;\n\n if (!subscriber.closed) {\n subscriber.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, {\n subscriber: subscriber,\n context: context\n }));\n action.schedule(state, bufferCreationInterval);\n }\n}\n\nfunction dispatchBufferClose(arg) {\n var subscriber = arg.subscriber,\n context = arg.context;\n subscriber.closeContext(context);\n}","/** PURE_IMPORTS_START tslib,_Subscription,_util_subscribeToResult,_OuterSubscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscription } from '../Subscription';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OuterSubscriber } from '../OuterSubscriber';\nexport function bufferToggle(openings, closingSelector) {\n return function bufferToggleOperatorFunction(source) {\n return source.lift(new BufferToggleOperator(openings, closingSelector));\n };\n}\n\nvar BufferToggleOperator = /*@__PURE__*/function () {\n function BufferToggleOperator(openings, closingSelector) {\n this.openings = openings;\n this.closingSelector = closingSelector;\n }\n\n BufferToggleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new BufferToggleSubscriber(subscriber, this.openings, this.closingSelector));\n };\n\n return BufferToggleOperator;\n}();\n\nvar BufferToggleSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(BufferToggleSubscriber, _super);\n\n function BufferToggleSubscriber(destination, openings, closingSelector) {\n var _this = _super.call(this, destination) || this;\n\n _this.closingSelector = closingSelector;\n _this.contexts = [];\n\n _this.add(subscribeToResult(_this, openings));\n\n return _this;\n }\n\n BufferToggleSubscriber.prototype._next = function (value) {\n var contexts = this.contexts;\n var len = contexts.length;\n\n for (var i = 0; i < len; i++) {\n contexts[i].buffer.push(value);\n }\n };\n\n BufferToggleSubscriber.prototype._error = function (err) {\n var contexts = this.contexts;\n\n while (contexts.length > 0) {\n var context_1 = contexts.shift();\n context_1.subscription.unsubscribe();\n context_1.buffer = null;\n context_1.subscription = null;\n }\n\n this.contexts = null;\n\n _super.prototype._error.call(this, err);\n };\n\n BufferToggleSubscriber.prototype._complete = function () {\n var contexts = this.contexts;\n\n while (contexts.length > 0) {\n var context_2 = contexts.shift();\n this.destination.next(context_2.buffer);\n context_2.subscription.unsubscribe();\n context_2.buffer = null;\n context_2.subscription = null;\n }\n\n this.contexts = null;\n\n _super.prototype._complete.call(this);\n };\n\n BufferToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue) {\n outerValue ? this.closeBuffer(outerValue) : this.openBuffer(innerValue);\n };\n\n BufferToggleSubscriber.prototype.notifyComplete = function (innerSub) {\n this.closeBuffer(innerSub.context);\n };\n\n BufferToggleSubscriber.prototype.openBuffer = function (value) {\n try {\n var closingSelector = this.closingSelector;\n var closingNotifier = closingSelector.call(this, value);\n\n if (closingNotifier) {\n this.trySubscribe(closingNotifier);\n }\n } catch (err) {\n this._error(err);\n }\n };\n\n BufferToggleSubscriber.prototype.closeBuffer = function (context) {\n var contexts = this.contexts;\n\n if (contexts && context) {\n var buffer = context.buffer,\n subscription = context.subscription;\n this.destination.next(buffer);\n contexts.splice(contexts.indexOf(context), 1);\n this.remove(subscription);\n subscription.unsubscribe();\n }\n };\n\n BufferToggleSubscriber.prototype.trySubscribe = function (closingNotifier) {\n var contexts = this.contexts;\n var buffer = [];\n var subscription = new Subscription();\n var context = {\n buffer: buffer,\n subscription: subscription\n };\n contexts.push(context);\n var innerSubscription = subscribeToResult(this, closingNotifier, context);\n\n if (!innerSubscription || innerSubscription.closed) {\n this.closeBuffer(context);\n } else {\n innerSubscription.context = context;\n this.add(innerSubscription);\n subscription.add(innerSubscription);\n }\n };\n\n return BufferToggleSubscriber;\n}(OuterSubscriber);","/** PURE_IMPORTS_START tslib,_Subscription,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscription } from '../Subscription';\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport function bufferWhen(closingSelector) {\n return function (source) {\n return source.lift(new BufferWhenOperator(closingSelector));\n };\n}\n\nvar BufferWhenOperator = /*@__PURE__*/function () {\n function BufferWhenOperator(closingSelector) {\n this.closingSelector = closingSelector;\n }\n\n BufferWhenOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new BufferWhenSubscriber(subscriber, this.closingSelector));\n };\n\n return BufferWhenOperator;\n}();\n\nvar BufferWhenSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(BufferWhenSubscriber, _super);\n\n function BufferWhenSubscriber(destination, closingSelector) {\n var _this = _super.call(this, destination) || this;\n\n _this.closingSelector = closingSelector;\n _this.subscribing = false;\n\n _this.openBuffer();\n\n return _this;\n }\n\n BufferWhenSubscriber.prototype._next = function (value) {\n this.buffer.push(value);\n };\n\n BufferWhenSubscriber.prototype._complete = function () {\n var buffer = this.buffer;\n\n if (buffer) {\n this.destination.next(buffer);\n }\n\n _super.prototype._complete.call(this);\n };\n\n BufferWhenSubscriber.prototype._unsubscribe = function () {\n this.buffer = undefined;\n this.subscribing = false;\n };\n\n BufferWhenSubscriber.prototype.notifyNext = function () {\n this.openBuffer();\n };\n\n BufferWhenSubscriber.prototype.notifyComplete = function () {\n if (this.subscribing) {\n this.complete();\n } else {\n this.openBuffer();\n }\n };\n\n BufferWhenSubscriber.prototype.openBuffer = function () {\n var closingSubscription = this.closingSubscription;\n\n if (closingSubscription) {\n this.remove(closingSubscription);\n closingSubscription.unsubscribe();\n }\n\n var buffer = this.buffer;\n\n if (this.buffer) {\n this.destination.next(buffer);\n }\n\n this.buffer = [];\n var closingNotifier;\n\n try {\n var closingSelector = this.closingSelector;\n closingNotifier = closingSelector();\n } catch (err) {\n return this.error(err);\n }\n\n closingSubscription = new Subscription();\n this.closingSubscription = closingSubscription;\n this.add(closingSubscription);\n this.subscribing = true;\n closingSubscription.add(innerSubscribe(closingNotifier, new SimpleInnerSubscriber(this)));\n this.subscribing = false;\n };\n\n return BufferWhenSubscriber;\n}(SimpleOuterSubscriber);","/** PURE_IMPORTS_START _observable_combineLatest PURE_IMPORTS_END */\nimport { CombineLatestOperator } from '../observable/combineLatest';\nexport function combineAll(project) {\n return function (source) {\n return source.lift(new CombineLatestOperator(project));\n };\n}","/** PURE_IMPORTS_START _util_isArray,_observable_combineLatest,_observable_from PURE_IMPORTS_END */\nimport { isArray } from '../util/isArray';\nimport { CombineLatestOperator } from '../observable/combineLatest';\nimport { from } from '../observable/from';\nvar none = {};\nexport function combineLatest() {\n var observables = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n\n var project = null;\n\n if (typeof observables[observables.length - 1] === 'function') {\n project = observables.pop();\n }\n\n if (observables.length === 1 && isArray(observables[0])) {\n observables = observables[0].slice();\n }\n\n return function (source) {\n return source.lift.call(from([source].concat(observables)), new CombineLatestOperator(project));\n };\n}","/** PURE_IMPORTS_START _observable_concat PURE_IMPORTS_END */\nimport { concat as concatStatic } from '../observable/concat';\nexport function concat() {\n var observables = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n\n return function (source) {\n return source.lift.call(concatStatic.apply(void 0, [source].concat(observables)));\n };\n}","/** PURE_IMPORTS_START _concatMap PURE_IMPORTS_END */\nimport { concatMap } from './concatMap';\nexport function concatMapTo(innerObservable, resultSelector) {\n return concatMap(function () {\n return innerObservable;\n }, resultSelector);\n}","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function count(predicate) {\n return function (source) {\n return source.lift(new CountOperator(predicate, source));\n };\n}\n\nvar CountOperator = /*@__PURE__*/function () {\n function CountOperator(predicate, source) {\n this.predicate = predicate;\n this.source = source;\n }\n\n CountOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new CountSubscriber(subscriber, this.predicate, this.source));\n };\n\n return CountOperator;\n}();\n\nvar CountSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(CountSubscriber, _super);\n\n function CountSubscriber(destination, predicate, source) {\n var _this = _super.call(this, destination) || this;\n\n _this.predicate = predicate;\n _this.source = source;\n _this.count = 0;\n _this.index = 0;\n return _this;\n }\n\n CountSubscriber.prototype._next = function (value) {\n if (this.predicate) {\n this._tryPredicate(value);\n } else {\n this.count++;\n }\n };\n\n CountSubscriber.prototype._tryPredicate = function (value) {\n var result;\n\n try {\n result = this.predicate(value, this.index++, this.source);\n } catch (err) {\n this.destination.error(err);\n return;\n }\n\n if (result) {\n this.count++;\n }\n };\n\n CountSubscriber.prototype._complete = function () {\n this.destination.next(this.count);\n this.destination.complete();\n };\n\n return CountSubscriber;\n}(Subscriber);","/** PURE_IMPORTS_START tslib,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport function debounce(durationSelector) {\n return function (source) {\n return source.lift(new DebounceOperator(durationSelector));\n };\n}\n\nvar DebounceOperator = /*@__PURE__*/function () {\n function DebounceOperator(durationSelector) {\n this.durationSelector = durationSelector;\n }\n\n DebounceOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DebounceSubscriber(subscriber, this.durationSelector));\n };\n\n return DebounceOperator;\n}();\n\nvar DebounceSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(DebounceSubscriber, _super);\n\n function DebounceSubscriber(destination, durationSelector) {\n var _this = _super.call(this, destination) || this;\n\n _this.durationSelector = durationSelector;\n _this.hasValue = false;\n return _this;\n }\n\n DebounceSubscriber.prototype._next = function (value) {\n try {\n var result = this.durationSelector.call(this, value);\n\n if (result) {\n this._tryNext(value, result);\n }\n } catch (err) {\n this.destination.error(err);\n }\n };\n\n DebounceSubscriber.prototype._complete = function () {\n this.emitValue();\n this.destination.complete();\n };\n\n DebounceSubscriber.prototype._tryNext = function (value, duration) {\n var subscription = this.durationSubscription;\n this.value = value;\n this.hasValue = true;\n\n if (subscription) {\n subscription.unsubscribe();\n this.remove(subscription);\n }\n\n subscription = innerSubscribe(duration, new SimpleInnerSubscriber(this));\n\n if (subscription && !subscription.closed) {\n this.add(this.durationSubscription = subscription);\n }\n };\n\n DebounceSubscriber.prototype.notifyNext = function () {\n this.emitValue();\n };\n\n DebounceSubscriber.prototype.notifyComplete = function () {\n this.emitValue();\n };\n\n DebounceSubscriber.prototype.emitValue = function () {\n if (this.hasValue) {\n var value = this.value;\n var subscription = this.durationSubscription;\n\n if (subscription) {\n this.durationSubscription = undefined;\n subscription.unsubscribe();\n this.remove(subscription);\n }\n\n this.value = undefined;\n this.hasValue = false;\n\n _super.prototype._next.call(this, value);\n }\n };\n\n return DebounceSubscriber;\n}(SimpleOuterSubscriber);","/** PURE_IMPORTS_START tslib,_Subscriber,_scheduler_async PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { async } from '../scheduler/async';\nexport function debounceTime(dueTime, scheduler) {\n if (scheduler === void 0) {\n scheduler = async;\n }\n\n return function (source) {\n return source.lift(new DebounceTimeOperator(dueTime, scheduler));\n };\n}\n\nvar DebounceTimeOperator = /*@__PURE__*/function () {\n function DebounceTimeOperator(dueTime, scheduler) {\n this.dueTime = dueTime;\n this.scheduler = scheduler;\n }\n\n DebounceTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DebounceTimeSubscriber(subscriber, this.dueTime, this.scheduler));\n };\n\n return DebounceTimeOperator;\n}();\n\nvar DebounceTimeSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(DebounceTimeSubscriber, _super);\n\n function DebounceTimeSubscriber(destination, dueTime, scheduler) {\n var _this = _super.call(this, destination) || this;\n\n _this.dueTime = dueTime;\n _this.scheduler = scheduler;\n _this.debouncedSubscription = null;\n _this.lastValue = null;\n _this.hasValue = false;\n return _this;\n }\n\n DebounceTimeSubscriber.prototype._next = function (value) {\n this.clearDebounce();\n this.lastValue = value;\n this.hasValue = true;\n this.add(this.debouncedSubscription = this.scheduler.schedule(dispatchNext, this.dueTime, this));\n };\n\n DebounceTimeSubscriber.prototype._complete = function () {\n this.debouncedNext();\n this.destination.complete();\n };\n\n DebounceTimeSubscriber.prototype.debouncedNext = function () {\n this.clearDebounce();\n\n if (this.hasValue) {\n var lastValue = this.lastValue;\n this.lastValue = null;\n this.hasValue = false;\n this.destination.next(lastValue);\n }\n };\n\n DebounceTimeSubscriber.prototype.clearDebounce = function () {\n var debouncedSubscription = this.debouncedSubscription;\n\n if (debouncedSubscription !== null) {\n this.remove(debouncedSubscription);\n debouncedSubscription.unsubscribe();\n this.debouncedSubscription = null;\n }\n };\n\n return DebounceTimeSubscriber;\n}(Subscriber);\n\nfunction dispatchNext(subscriber) {\n subscriber.debouncedNext();\n}","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function defaultIfEmpty(defaultValue) {\n if (defaultValue === void 0) {\n defaultValue = null;\n }\n\n return function (source) {\n return source.lift(new DefaultIfEmptyOperator(defaultValue));\n };\n}\n\nvar DefaultIfEmptyOperator = /*@__PURE__*/function () {\n function DefaultIfEmptyOperator(defaultValue) {\n this.defaultValue = defaultValue;\n }\n\n DefaultIfEmptyOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DefaultIfEmptySubscriber(subscriber, this.defaultValue));\n };\n\n return DefaultIfEmptyOperator;\n}();\n\nvar DefaultIfEmptySubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(DefaultIfEmptySubscriber, _super);\n\n function DefaultIfEmptySubscriber(destination, defaultValue) {\n var _this = _super.call(this, destination) || this;\n\n _this.defaultValue = defaultValue;\n _this.isEmpty = true;\n return _this;\n }\n\n DefaultIfEmptySubscriber.prototype._next = function (value) {\n this.isEmpty = false;\n this.destination.next(value);\n };\n\n DefaultIfEmptySubscriber.prototype._complete = function () {\n if (this.isEmpty) {\n this.destination.next(this.defaultValue);\n }\n\n this.destination.complete();\n };\n\n return DefaultIfEmptySubscriber;\n}(Subscriber);","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function isDate(value) {\n return value instanceof Date && !isNaN(+value);\n}","/** PURE_IMPORTS_START tslib,_scheduler_async,_util_isDate,_Subscriber,_Notification PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { async } from '../scheduler/async';\nimport { isDate } from '../util/isDate';\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function delay(delay, scheduler) {\n if (scheduler === void 0) {\n scheduler = async;\n }\n\n var absoluteDelay = isDate(delay);\n var delayFor = absoluteDelay ? +delay - scheduler.now() : Math.abs(delay);\n return function (source) {\n return source.lift(new DelayOperator(delayFor, scheduler));\n };\n}\n\nvar DelayOperator = /*@__PURE__*/function () {\n function DelayOperator(delay, scheduler) {\n this.delay = delay;\n this.scheduler = scheduler;\n }\n\n DelayOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DelaySubscriber(subscriber, this.delay, this.scheduler));\n };\n\n return DelayOperator;\n}();\n\nvar DelaySubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(DelaySubscriber, _super);\n\n function DelaySubscriber(destination, delay, scheduler) {\n var _this = _super.call(this, destination) || this;\n\n _this.delay = delay;\n _this.scheduler = scheduler;\n _this.queue = [];\n _this.active = false;\n _this.errored = false;\n return _this;\n }\n\n DelaySubscriber.dispatch = function (state) {\n var source = state.source;\n var queue = source.queue;\n var scheduler = state.scheduler;\n var destination = state.destination;\n\n while (queue.length > 0 && queue[0].time - scheduler.now() <= 0) {\n queue.shift().notification.observe(destination);\n }\n\n if (queue.length > 0) {\n var delay_1 = Math.max(0, queue[0].time - scheduler.now());\n this.schedule(state, delay_1);\n } else {\n this.unsubscribe();\n source.active = false;\n }\n };\n\n DelaySubscriber.prototype._schedule = function (scheduler) {\n this.active = true;\n var destination = this.destination;\n destination.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, {\n source: this,\n destination: this.destination,\n scheduler: scheduler\n }));\n };\n\n DelaySubscriber.prototype.scheduleNotification = function (notification) {\n if (this.errored === true) {\n return;\n }\n\n var scheduler = this.scheduler;\n var message = new DelayMessage(scheduler.now() + this.delay, notification);\n this.queue.push(message);\n\n if (this.active === false) {\n this._schedule(scheduler);\n }\n };\n\n DelaySubscriber.prototype._next = function (value) {\n this.scheduleNotification(Notification.createNext(value));\n };\n\n DelaySubscriber.prototype._error = function (err) {\n this.errored = true;\n this.queue = [];\n this.destination.error(err);\n this.unsubscribe();\n };\n\n DelaySubscriber.prototype._complete = function () {\n this.scheduleNotification(Notification.createComplete());\n this.unsubscribe();\n };\n\n return DelaySubscriber;\n}(Subscriber);\n\nvar DelayMessage = /*@__PURE__*/function () {\n function DelayMessage(time, notification) {\n this.time = time;\n this.notification = notification;\n }\n\n return DelayMessage;\n}();","/** PURE_IMPORTS_START tslib,_Subscriber,_Observable,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function delayWhen(delayDurationSelector, subscriptionDelay) {\n if (subscriptionDelay) {\n return function (source) {\n return new SubscriptionDelayObservable(source, subscriptionDelay).lift(new DelayWhenOperator(delayDurationSelector));\n };\n }\n\n return function (source) {\n return source.lift(new DelayWhenOperator(delayDurationSelector));\n };\n}\n\nvar DelayWhenOperator = /*@__PURE__*/function () {\n function DelayWhenOperator(delayDurationSelector) {\n this.delayDurationSelector = delayDurationSelector;\n }\n\n DelayWhenOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DelayWhenSubscriber(subscriber, this.delayDurationSelector));\n };\n\n return DelayWhenOperator;\n}();\n\nvar DelayWhenSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(DelayWhenSubscriber, _super);\n\n function DelayWhenSubscriber(destination, delayDurationSelector) {\n var _this = _super.call(this, destination) || this;\n\n _this.delayDurationSelector = delayDurationSelector;\n _this.completed = false;\n _this.delayNotifierSubscriptions = [];\n _this.index = 0;\n return _this;\n }\n\n DelayWhenSubscriber.prototype.notifyNext = function (outerValue, _innerValue, _outerIndex, _innerIndex, innerSub) {\n this.destination.next(outerValue);\n this.removeSubscription(innerSub);\n this.tryComplete();\n };\n\n DelayWhenSubscriber.prototype.notifyError = function (error, innerSub) {\n this._error(error);\n };\n\n DelayWhenSubscriber.prototype.notifyComplete = function (innerSub) {\n var value = this.removeSubscription(innerSub);\n\n if (value) {\n this.destination.next(value);\n }\n\n this.tryComplete();\n };\n\n DelayWhenSubscriber.prototype._next = function (value) {\n var index = this.index++;\n\n try {\n var delayNotifier = this.delayDurationSelector(value, index);\n\n if (delayNotifier) {\n this.tryDelay(delayNotifier, value);\n }\n } catch (err) {\n this.destination.error(err);\n }\n };\n\n DelayWhenSubscriber.prototype._complete = function () {\n this.completed = true;\n this.tryComplete();\n this.unsubscribe();\n };\n\n DelayWhenSubscriber.prototype.removeSubscription = function (subscription) {\n subscription.unsubscribe();\n var subscriptionIdx = this.delayNotifierSubscriptions.indexOf(subscription);\n\n if (subscriptionIdx !== -1) {\n this.delayNotifierSubscriptions.splice(subscriptionIdx, 1);\n }\n\n return subscription.outerValue;\n };\n\n DelayWhenSubscriber.prototype.tryDelay = function (delayNotifier, value) {\n var notifierSubscription = subscribeToResult(this, delayNotifier, value);\n\n if (notifierSubscription && !notifierSubscription.closed) {\n var destination = this.destination;\n destination.add(notifierSubscription);\n this.delayNotifierSubscriptions.push(notifierSubscription);\n }\n };\n\n DelayWhenSubscriber.prototype.tryComplete = function () {\n if (this.completed && this.delayNotifierSubscriptions.length === 0) {\n this.destination.complete();\n }\n };\n\n return DelayWhenSubscriber;\n}(OuterSubscriber);\n\nvar SubscriptionDelayObservable = /*@__PURE__*/function (_super) {\n tslib_1.__extends(SubscriptionDelayObservable, _super);\n\n function SubscriptionDelayObservable(source, subscriptionDelay) {\n var _this = _super.call(this) || this;\n\n _this.source = source;\n _this.subscriptionDelay = subscriptionDelay;\n return _this;\n }\n\n SubscriptionDelayObservable.prototype._subscribe = function (subscriber) {\n this.subscriptionDelay.subscribe(new SubscriptionDelaySubscriber(subscriber, this.source));\n };\n\n return SubscriptionDelayObservable;\n}(Observable);\n\nvar SubscriptionDelaySubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(SubscriptionDelaySubscriber, _super);\n\n function SubscriptionDelaySubscriber(parent, source) {\n var _this = _super.call(this) || this;\n\n _this.parent = parent;\n _this.source = source;\n _this.sourceSubscribed = false;\n return _this;\n }\n\n SubscriptionDelaySubscriber.prototype._next = function (unused) {\n this.subscribeToSource();\n };\n\n SubscriptionDelaySubscriber.prototype._error = function (err) {\n this.unsubscribe();\n this.parent.error(err);\n };\n\n SubscriptionDelaySubscriber.prototype._complete = function () {\n this.unsubscribe();\n this.subscribeToSource();\n };\n\n SubscriptionDelaySubscriber.prototype.subscribeToSource = function () {\n if (!this.sourceSubscribed) {\n this.sourceSubscribed = true;\n this.unsubscribe();\n this.source.subscribe(this.parent);\n }\n };\n\n return SubscriptionDelaySubscriber;\n}(Subscriber);","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function dematerialize() {\n return function dematerializeOperatorFunction(source) {\n return source.lift(new DeMaterializeOperator());\n };\n}\n\nvar DeMaterializeOperator = /*@__PURE__*/function () {\n function DeMaterializeOperator() {}\n\n DeMaterializeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DeMaterializeSubscriber(subscriber));\n };\n\n return DeMaterializeOperator;\n}();\n\nvar DeMaterializeSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(DeMaterializeSubscriber, _super);\n\n function DeMaterializeSubscriber(destination) {\n return _super.call(this, destination) || this;\n }\n\n DeMaterializeSubscriber.prototype._next = function (value) {\n value.observe(this.destination);\n };\n\n return DeMaterializeSubscriber;\n}(Subscriber);","/** PURE_IMPORTS_START tslib,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport function distinct(keySelector, flushes) {\n return function (source) {\n return source.lift(new DistinctOperator(keySelector, flushes));\n };\n}\n\nvar DistinctOperator = /*@__PURE__*/function () {\n function DistinctOperator(keySelector, flushes) {\n this.keySelector = keySelector;\n this.flushes = flushes;\n }\n\n DistinctOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DistinctSubscriber(subscriber, this.keySelector, this.flushes));\n };\n\n return DistinctOperator;\n}();\n\nvar DistinctSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(DistinctSubscriber, _super);\n\n function DistinctSubscriber(destination, keySelector, flushes) {\n var _this = _super.call(this, destination) || this;\n\n _this.keySelector = keySelector;\n _this.values = new Set();\n\n if (flushes) {\n _this.add(innerSubscribe(flushes, new SimpleInnerSubscriber(_this)));\n }\n\n return _this;\n }\n\n DistinctSubscriber.prototype.notifyNext = function () {\n this.values.clear();\n };\n\n DistinctSubscriber.prototype.notifyError = function (error) {\n this._error(error);\n };\n\n DistinctSubscriber.prototype._next = function (value) {\n if (this.keySelector) {\n this._useKeySelector(value);\n } else {\n this._finalizeNext(value, value);\n }\n };\n\n DistinctSubscriber.prototype._useKeySelector = function (value) {\n var key;\n var destination = this.destination;\n\n try {\n key = this.keySelector(value);\n } catch (err) {\n destination.error(err);\n return;\n }\n\n this._finalizeNext(key, value);\n };\n\n DistinctSubscriber.prototype._finalizeNext = function (key, value) {\n var values = this.values;\n\n if (!values.has(key)) {\n values.add(key);\n this.destination.next(value);\n }\n };\n\n return DistinctSubscriber;\n}(SimpleOuterSubscriber);\n\nexport { DistinctSubscriber };","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function distinctUntilChanged(compare, keySelector) {\n return function (source) {\n return source.lift(new DistinctUntilChangedOperator(compare, keySelector));\n };\n}\n\nvar DistinctUntilChangedOperator = /*@__PURE__*/function () {\n function DistinctUntilChangedOperator(compare, keySelector) {\n this.compare = compare;\n this.keySelector = keySelector;\n }\n\n DistinctUntilChangedOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector));\n };\n\n return DistinctUntilChangedOperator;\n}();\n\nvar DistinctUntilChangedSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(DistinctUntilChangedSubscriber, _super);\n\n function DistinctUntilChangedSubscriber(destination, compare, keySelector) {\n var _this = _super.call(this, destination) || this;\n\n _this.keySelector = keySelector;\n _this.hasKey = false;\n\n if (typeof compare === 'function') {\n _this.compare = compare;\n }\n\n return _this;\n }\n\n DistinctUntilChangedSubscriber.prototype.compare = function (x, y) {\n return x === y;\n };\n\n DistinctUntilChangedSubscriber.prototype._next = function (value) {\n var key;\n\n try {\n var keySelector = this.keySelector;\n key = keySelector ? keySelector(value) : value;\n } catch (err) {\n return this.destination.error(err);\n }\n\n var result = false;\n\n if (this.hasKey) {\n try {\n var compare = this.compare;\n result = compare(this.key, key);\n } catch (err) {\n return this.destination.error(err);\n }\n } else {\n this.hasKey = true;\n }\n\n if (!result) {\n this.key = key;\n this.destination.next(value);\n }\n };\n\n return DistinctUntilChangedSubscriber;\n}(Subscriber);","/** PURE_IMPORTS_START _distinctUntilChanged PURE_IMPORTS_END */\nimport { distinctUntilChanged } from './distinctUntilChanged';\nexport function distinctUntilKeyChanged(key, compare) {\n return distinctUntilChanged(function (x, y) {\n return compare ? compare(x[key], y[key]) : x[key] === y[key];\n });\n}","/** PURE_IMPORTS_START tslib,_util_EmptyError,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { EmptyError } from '../util/EmptyError';\nimport { Subscriber } from '../Subscriber';\nexport function throwIfEmpty(errorFactory) {\n if (errorFactory === void 0) {\n errorFactory = defaultErrorFactory;\n }\n\n return function (source) {\n return source.lift(new ThrowIfEmptyOperator(errorFactory));\n };\n}\n\nvar ThrowIfEmptyOperator = /*@__PURE__*/function () {\n function ThrowIfEmptyOperator(errorFactory) {\n this.errorFactory = errorFactory;\n }\n\n ThrowIfEmptyOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ThrowIfEmptySubscriber(subscriber, this.errorFactory));\n };\n\n return ThrowIfEmptyOperator;\n}();\n\nvar ThrowIfEmptySubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(ThrowIfEmptySubscriber, _super);\n\n function ThrowIfEmptySubscriber(destination, errorFactory) {\n var _this = _super.call(this, destination) || this;\n\n _this.errorFactory = errorFactory;\n _this.hasValue = false;\n return _this;\n }\n\n ThrowIfEmptySubscriber.prototype._next = function (value) {\n this.hasValue = true;\n this.destination.next(value);\n };\n\n ThrowIfEmptySubscriber.prototype._complete = function () {\n if (!this.hasValue) {\n var err = void 0;\n\n try {\n err = this.errorFactory();\n } catch (e) {\n err = e;\n }\n\n this.destination.error(err);\n } else {\n return this.destination.complete();\n }\n };\n\n return ThrowIfEmptySubscriber;\n}(Subscriber);\n\nfunction defaultErrorFactory() {\n return new EmptyError();\n}","/** PURE_IMPORTS_START tslib,_Subscriber,_util_ArgumentOutOfRangeError,_observable_empty PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { empty } from '../observable/empty';\nexport function take(count) {\n return function (source) {\n if (count === 0) {\n return empty();\n } else {\n return source.lift(new TakeOperator(count));\n }\n };\n}\n\nvar TakeOperator = /*@__PURE__*/function () {\n function TakeOperator(total) {\n this.total = total;\n\n if (this.total < 0) {\n throw new ArgumentOutOfRangeError();\n }\n }\n\n TakeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TakeSubscriber(subscriber, this.total));\n };\n\n return TakeOperator;\n}();\n\nvar TakeSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(TakeSubscriber, _super);\n\n function TakeSubscriber(destination, total) {\n var _this = _super.call(this, destination) || this;\n\n _this.total = total;\n _this.count = 0;\n return _this;\n }\n\n TakeSubscriber.prototype._next = function (value) {\n var total = this.total;\n var count = ++this.count;\n\n if (count <= total) {\n this.destination.next(value);\n\n if (count === total) {\n this.destination.complete();\n this.unsubscribe();\n }\n }\n };\n\n return TakeSubscriber;\n}(Subscriber);","/** PURE_IMPORTS_START _util_ArgumentOutOfRangeError,_filter,_throwIfEmpty,_defaultIfEmpty,_take PURE_IMPORTS_END */\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { filter } from './filter';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { take } from './take';\nexport function elementAt(index, defaultValue) {\n if (index < 0) {\n throw new ArgumentOutOfRangeError();\n }\n\n var hasDefaultValue = arguments.length >= 2;\n return function (source) {\n return source.pipe(filter(function (v, i) {\n return i === index;\n }), take(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function () {\n return new ArgumentOutOfRangeError();\n }));\n };\n}","/** PURE_IMPORTS_START _observable_concat,_observable_of PURE_IMPORTS_END */\nimport { concat } from '../observable/concat';\nimport { of } from '../observable/of';\nexport function endWith() {\n var array = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n array[_i] = arguments[_i];\n }\n\n return function (source) {\n return concat(source, of.apply(void 0, array));\n };\n}","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function every(predicate, thisArg) {\n return function (source) {\n return source.lift(new EveryOperator(predicate, thisArg, source));\n };\n}\n\nvar EveryOperator = /*@__PURE__*/function () {\n function EveryOperator(predicate, thisArg, source) {\n this.predicate = predicate;\n this.thisArg = thisArg;\n this.source = source;\n }\n\n EveryOperator.prototype.call = function (observer, source) {\n return source.subscribe(new EverySubscriber(observer, this.predicate, this.thisArg, this.source));\n };\n\n return EveryOperator;\n}();\n\nvar EverySubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(EverySubscriber, _super);\n\n function EverySubscriber(destination, predicate, thisArg, source) {\n var _this = _super.call(this, destination) || this;\n\n _this.predicate = predicate;\n _this.thisArg = thisArg;\n _this.source = source;\n _this.index = 0;\n _this.thisArg = thisArg || _this;\n return _this;\n }\n\n EverySubscriber.prototype.notifyComplete = function (everyValueMatch) {\n this.destination.next(everyValueMatch);\n this.destination.complete();\n };\n\n EverySubscriber.prototype._next = function (value) {\n var result = false;\n\n try {\n result = this.predicate.call(this.thisArg, value, this.index++, this.source);\n } catch (err) {\n this.destination.error(err);\n return;\n }\n\n if (!result) {\n this.notifyComplete(false);\n }\n };\n\n EverySubscriber.prototype._complete = function () {\n this.notifyComplete(true);\n };\n\n return EverySubscriber;\n}(Subscriber);","/** PURE_IMPORTS_START tslib,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport function exhaust() {\n return function (source) {\n return source.lift(new SwitchFirstOperator());\n };\n}\n\nvar SwitchFirstOperator = /*@__PURE__*/function () {\n function SwitchFirstOperator() {}\n\n SwitchFirstOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SwitchFirstSubscriber(subscriber));\n };\n\n return SwitchFirstOperator;\n}();\n\nvar SwitchFirstSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(SwitchFirstSubscriber, _super);\n\n function SwitchFirstSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n\n _this.hasCompleted = false;\n _this.hasSubscription = false;\n return _this;\n }\n\n SwitchFirstSubscriber.prototype._next = function (value) {\n if (!this.hasSubscription) {\n this.hasSubscription = true;\n this.add(innerSubscribe(value, new SimpleInnerSubscriber(this)));\n }\n };\n\n SwitchFirstSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n\n if (!this.hasSubscription) {\n this.destination.complete();\n }\n };\n\n SwitchFirstSubscriber.prototype.notifyComplete = function () {\n this.hasSubscription = false;\n\n if (this.hasCompleted) {\n this.destination.complete();\n }\n };\n\n return SwitchFirstSubscriber;\n}(SimpleOuterSubscriber);","/** PURE_IMPORTS_START tslib,_map,_observable_from,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { map } from './map';\nimport { from } from '../observable/from';\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function exhaustMap(project, resultSelector) {\n if (resultSelector) {\n return function (source) {\n return source.pipe(exhaustMap(function (a, i) {\n return from(project(a, i)).pipe(map(function (b, ii) {\n return resultSelector(a, b, i, ii);\n }));\n }));\n };\n }\n\n return function (source) {\n return source.lift(new ExhaustMapOperator(project));\n };\n}\n\nvar ExhaustMapOperator = /*@__PURE__*/function () {\n function ExhaustMapOperator(project) {\n this.project = project;\n }\n\n ExhaustMapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ExhaustMapSubscriber(subscriber, this.project));\n };\n\n return ExhaustMapOperator;\n}();\n\nvar ExhaustMapSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(ExhaustMapSubscriber, _super);\n\n function ExhaustMapSubscriber(destination, project) {\n var _this = _super.call(this, destination) || this;\n\n _this.project = project;\n _this.hasSubscription = false;\n _this.hasCompleted = false;\n _this.index = 0;\n return _this;\n }\n\n ExhaustMapSubscriber.prototype._next = function (value) {\n if (!this.hasSubscription) {\n this.tryNext(value);\n }\n };\n\n ExhaustMapSubscriber.prototype.tryNext = function (value) {\n var result;\n var index = this.index++;\n\n try {\n result = this.project(value, index);\n } catch (err) {\n this.destination.error(err);\n return;\n }\n\n this.hasSubscription = true;\n\n this._innerSub(result);\n };\n\n ExhaustMapSubscriber.prototype._innerSub = function (result) {\n var innerSubscriber = new SimpleInnerSubscriber(this);\n var destination = this.destination;\n destination.add(innerSubscriber);\n var innerSubscription = innerSubscribe(result, innerSubscriber);\n\n if (innerSubscription !== innerSubscriber) {\n destination.add(innerSubscription);\n }\n };\n\n ExhaustMapSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n\n if (!this.hasSubscription) {\n this.destination.complete();\n }\n\n this.unsubscribe();\n };\n\n ExhaustMapSubscriber.prototype.notifyNext = function (innerValue) {\n this.destination.next(innerValue);\n };\n\n ExhaustMapSubscriber.prototype.notifyError = function (err) {\n this.destination.error(err);\n };\n\n ExhaustMapSubscriber.prototype.notifyComplete = function () {\n this.hasSubscription = false;\n\n if (this.hasCompleted) {\n this.destination.complete();\n }\n };\n\n return ExhaustMapSubscriber;\n}(SimpleOuterSubscriber);","/** PURE_IMPORTS_START tslib,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport function expand(project, concurrent, scheduler) {\n if (concurrent === void 0) {\n concurrent = Number.POSITIVE_INFINITY;\n }\n\n concurrent = (concurrent || 0) < 1 ? Number.POSITIVE_INFINITY : concurrent;\n return function (source) {\n return source.lift(new ExpandOperator(project, concurrent, scheduler));\n };\n}\n\nvar ExpandOperator = /*@__PURE__*/function () {\n function ExpandOperator(project, concurrent, scheduler) {\n this.project = project;\n this.concurrent = concurrent;\n this.scheduler = scheduler;\n }\n\n ExpandOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ExpandSubscriber(subscriber, this.project, this.concurrent, this.scheduler));\n };\n\n return ExpandOperator;\n}();\n\nexport { ExpandOperator };\n\nvar ExpandSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(ExpandSubscriber, _super);\n\n function ExpandSubscriber(destination, project, concurrent, scheduler) {\n var _this = _super.call(this, destination) || this;\n\n _this.project = project;\n _this.concurrent = concurrent;\n _this.scheduler = scheduler;\n _this.index = 0;\n _this.active = 0;\n _this.hasCompleted = false;\n\n if (concurrent < Number.POSITIVE_INFINITY) {\n _this.buffer = [];\n }\n\n return _this;\n }\n\n ExpandSubscriber.dispatch = function (arg) {\n var subscriber = arg.subscriber,\n result = arg.result,\n value = arg.value,\n index = arg.index;\n subscriber.subscribeToProjection(result, value, index);\n };\n\n ExpandSubscriber.prototype._next = function (value) {\n var destination = this.destination;\n\n if (destination.closed) {\n this._complete();\n\n return;\n }\n\n var index = this.index++;\n\n if (this.active < this.concurrent) {\n destination.next(value);\n\n try {\n var project = this.project;\n var result = project(value, index);\n\n if (!this.scheduler) {\n this.subscribeToProjection(result, value, index);\n } else {\n var state = {\n subscriber: this,\n result: result,\n value: value,\n index: index\n };\n var destination_1 = this.destination;\n destination_1.add(this.scheduler.schedule(ExpandSubscriber.dispatch, 0, state));\n }\n } catch (e) {\n destination.error(e);\n }\n } else {\n this.buffer.push(value);\n }\n };\n\n ExpandSubscriber.prototype.subscribeToProjection = function (result, value, index) {\n this.active++;\n var destination = this.destination;\n destination.add(innerSubscribe(result, new SimpleInnerSubscriber(this)));\n };\n\n ExpandSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n\n if (this.hasCompleted && this.active === 0) {\n this.destination.complete();\n }\n\n this.unsubscribe();\n };\n\n ExpandSubscriber.prototype.notifyNext = function (innerValue) {\n this._next(innerValue);\n };\n\n ExpandSubscriber.prototype.notifyComplete = function () {\n var buffer = this.buffer;\n this.active--;\n\n if (buffer && buffer.length > 0) {\n this._next(buffer.shift());\n }\n\n if (this.hasCompleted && this.active === 0) {\n this.destination.complete();\n }\n };\n\n return ExpandSubscriber;\n}(SimpleOuterSubscriber);\n\nexport { ExpandSubscriber };","/** PURE_IMPORTS_START tslib,_Subscriber,_Subscription PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nexport function finalize(callback) {\n return function (source) {\n return source.lift(new FinallyOperator(callback));\n };\n}\n\nvar FinallyOperator = /*@__PURE__*/function () {\n function FinallyOperator(callback) {\n this.callback = callback;\n }\n\n FinallyOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new FinallySubscriber(subscriber, this.callback));\n };\n\n return FinallyOperator;\n}();\n\nvar FinallySubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(FinallySubscriber, _super);\n\n function FinallySubscriber(destination, callback) {\n var _this = _super.call(this, destination) || this;\n\n _this.add(new Subscription(callback));\n\n return _this;\n }\n\n return FinallySubscriber;\n}(Subscriber);","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function find(predicate, thisArg) {\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate is not a function');\n }\n\n return function (source) {\n return source.lift(new FindValueOperator(predicate, source, false, thisArg));\n };\n}\n\nvar FindValueOperator = /*@__PURE__*/function () {\n function FindValueOperator(predicate, source, yieldIndex, thisArg) {\n this.predicate = predicate;\n this.source = source;\n this.yieldIndex = yieldIndex;\n this.thisArg = thisArg;\n }\n\n FindValueOperator.prototype.call = function (observer, source) {\n return source.subscribe(new FindValueSubscriber(observer, this.predicate, this.source, this.yieldIndex, this.thisArg));\n };\n\n return FindValueOperator;\n}();\n\nexport { FindValueOperator };\n\nvar FindValueSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(FindValueSubscriber, _super);\n\n function FindValueSubscriber(destination, predicate, source, yieldIndex, thisArg) {\n var _this = _super.call(this, destination) || this;\n\n _this.predicate = predicate;\n _this.source = source;\n _this.yieldIndex = yieldIndex;\n _this.thisArg = thisArg;\n _this.index = 0;\n return _this;\n }\n\n FindValueSubscriber.prototype.notifyComplete = function (value) {\n var destination = this.destination;\n destination.next(value);\n destination.complete();\n this.unsubscribe();\n };\n\n FindValueSubscriber.prototype._next = function (value) {\n var _a = this,\n predicate = _a.predicate,\n thisArg = _a.thisArg;\n\n var index = this.index++;\n\n try {\n var result = predicate.call(thisArg || this, value, index, this.source);\n\n if (result) {\n this.notifyComplete(this.yieldIndex ? index : value);\n }\n } catch (err) {\n this.destination.error(err);\n }\n };\n\n FindValueSubscriber.prototype._complete = function () {\n this.notifyComplete(this.yieldIndex ? -1 : undefined);\n };\n\n return FindValueSubscriber;\n}(Subscriber);\n\nexport { FindValueSubscriber };","/** PURE_IMPORTS_START _operators_find PURE_IMPORTS_END */\nimport { FindValueOperator } from '../operators/find';\nexport function findIndex(predicate, thisArg) {\n return function (source) {\n return source.lift(new FindValueOperator(predicate, source, true, thisArg));\n };\n}","/** PURE_IMPORTS_START _util_EmptyError,_filter,_take,_defaultIfEmpty,_throwIfEmpty,_util_identity PURE_IMPORTS_END */\nimport { EmptyError } from '../util/EmptyError';\nimport { filter } from './filter';\nimport { take } from './take';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { identity } from '../util/identity';\nexport function first(predicate, defaultValue) {\n var hasDefaultValue = arguments.length >= 2;\n return function (source) {\n return source.pipe(predicate ? filter(function (v, i) {\n return predicate(v, i, source);\n }) : identity, take(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function () {\n return new EmptyError();\n }));\n };\n}","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function ignoreElements() {\n return function ignoreElementsOperatorFunction(source) {\n return source.lift(new IgnoreElementsOperator());\n };\n}\n\nvar IgnoreElementsOperator = /*@__PURE__*/function () {\n function IgnoreElementsOperator() {}\n\n IgnoreElementsOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new IgnoreElementsSubscriber(subscriber));\n };\n\n return IgnoreElementsOperator;\n}();\n\nvar IgnoreElementsSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(IgnoreElementsSubscriber, _super);\n\n function IgnoreElementsSubscriber() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n IgnoreElementsSubscriber.prototype._next = function (unused) {};\n\n return IgnoreElementsSubscriber;\n}(Subscriber);","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function isEmpty() {\n return function (source) {\n return source.lift(new IsEmptyOperator());\n };\n}\n\nvar IsEmptyOperator = /*@__PURE__*/function () {\n function IsEmptyOperator() {}\n\n IsEmptyOperator.prototype.call = function (observer, source) {\n return source.subscribe(new IsEmptySubscriber(observer));\n };\n\n return IsEmptyOperator;\n}();\n\nvar IsEmptySubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(IsEmptySubscriber, _super);\n\n function IsEmptySubscriber(destination) {\n return _super.call(this, destination) || this;\n }\n\n IsEmptySubscriber.prototype.notifyComplete = function (isEmpty) {\n var destination = this.destination;\n destination.next(isEmpty);\n destination.complete();\n };\n\n IsEmptySubscriber.prototype._next = function (value) {\n this.notifyComplete(false);\n };\n\n IsEmptySubscriber.prototype._complete = function () {\n this.notifyComplete(true);\n };\n\n return IsEmptySubscriber;\n}(Subscriber);","/** PURE_IMPORTS_START tslib,_Subscriber,_util_ArgumentOutOfRangeError,_observable_empty PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { empty } from '../observable/empty';\nexport function takeLast(count) {\n return function takeLastOperatorFunction(source) {\n if (count === 0) {\n return empty();\n } else {\n return source.lift(new TakeLastOperator(count));\n }\n };\n}\n\nvar TakeLastOperator = /*@__PURE__*/function () {\n function TakeLastOperator(total) {\n this.total = total;\n\n if (this.total < 0) {\n throw new ArgumentOutOfRangeError();\n }\n }\n\n TakeLastOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TakeLastSubscriber(subscriber, this.total));\n };\n\n return TakeLastOperator;\n}();\n\nvar TakeLastSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(TakeLastSubscriber, _super);\n\n function TakeLastSubscriber(destination, total) {\n var _this = _super.call(this, destination) || this;\n\n _this.total = total;\n _this.ring = new Array();\n _this.count = 0;\n return _this;\n }\n\n TakeLastSubscriber.prototype._next = function (value) {\n var ring = this.ring;\n var total = this.total;\n var count = this.count++;\n\n if (ring.length < total) {\n ring.push(value);\n } else {\n var index = count % total;\n ring[index] = value;\n }\n };\n\n TakeLastSubscriber.prototype._complete = function () {\n var destination = this.destination;\n var count = this.count;\n\n if (count > 0) {\n var total = this.count >= this.total ? this.total : this.count;\n var ring = this.ring;\n\n for (var i = 0; i < total; i++) {\n var idx = count++ % total;\n destination.next(ring[idx]);\n }\n }\n\n destination.complete();\n };\n\n return TakeLastSubscriber;\n}(Subscriber);","/** PURE_IMPORTS_START _util_EmptyError,_filter,_takeLast,_throwIfEmpty,_defaultIfEmpty,_util_identity PURE_IMPORTS_END */\nimport { EmptyError } from '../util/EmptyError';\nimport { filter } from './filter';\nimport { takeLast } from './takeLast';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { identity } from '../util/identity';\nexport function last(predicate, defaultValue) {\n var hasDefaultValue = arguments.length >= 2;\n return function (source) {\n return source.pipe(predicate ? filter(function (v, i) {\n return predicate(v, i, source);\n }) : identity, takeLast(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function () {\n return new EmptyError();\n }));\n };\n}","/** PURE_IMPORTS_START tslib,_Subscriber,_Notification PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function materialize() {\n return function materializeOperatorFunction(source) {\n return source.lift(new MaterializeOperator());\n };\n}\n\nvar MaterializeOperator = /*@__PURE__*/function () {\n function MaterializeOperator() {}\n\n MaterializeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MaterializeSubscriber(subscriber));\n };\n\n return MaterializeOperator;\n}();\n\nvar MaterializeSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(MaterializeSubscriber, _super);\n\n function MaterializeSubscriber(destination) {\n return _super.call(this, destination) || this;\n }\n\n MaterializeSubscriber.prototype._next = function (value) {\n this.destination.next(Notification.createNext(value));\n };\n\n MaterializeSubscriber.prototype._error = function (err) {\n var destination = this.destination;\n destination.next(Notification.createError(err));\n destination.complete();\n };\n\n MaterializeSubscriber.prototype._complete = function () {\n var destination = this.destination;\n destination.next(Notification.createComplete());\n destination.complete();\n };\n\n return MaterializeSubscriber;\n}(Subscriber);","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function scan(accumulator, seed) {\n var hasSeed = false;\n\n if (arguments.length >= 2) {\n hasSeed = true;\n }\n\n return function scanOperatorFunction(source) {\n return source.lift(new ScanOperator(accumulator, seed, hasSeed));\n };\n}\n\nvar ScanOperator = /*@__PURE__*/function () {\n function ScanOperator(accumulator, seed, hasSeed) {\n if (hasSeed === void 0) {\n hasSeed = false;\n }\n\n this.accumulator = accumulator;\n this.seed = seed;\n this.hasSeed = hasSeed;\n }\n\n ScanOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ScanSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed));\n };\n\n return ScanOperator;\n}();\n\nvar ScanSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(ScanSubscriber, _super);\n\n function ScanSubscriber(destination, accumulator, _seed, hasSeed) {\n var _this = _super.call(this, destination) || this;\n\n _this.accumulator = accumulator;\n _this._seed = _seed;\n _this.hasSeed = hasSeed;\n _this.index = 0;\n return _this;\n }\n\n Object.defineProperty(ScanSubscriber.prototype, \"seed\", {\n get: function get() {\n return this._seed;\n },\n set: function set(value) {\n this.hasSeed = true;\n this._seed = value;\n },\n enumerable: true,\n configurable: true\n });\n\n ScanSubscriber.prototype._next = function (value) {\n if (!this.hasSeed) {\n this.seed = value;\n this.destination.next(value);\n } else {\n return this._tryNext(value);\n }\n };\n\n ScanSubscriber.prototype._tryNext = function (value) {\n var index = this.index++;\n var result;\n\n try {\n result = this.accumulator(this.seed, value, index);\n } catch (err) {\n this.destination.error(err);\n }\n\n this.seed = result;\n this.destination.next(result);\n };\n\n return ScanSubscriber;\n}(Subscriber);","/** PURE_IMPORTS_START _scan,_takeLast,_defaultIfEmpty,_util_pipe PURE_IMPORTS_END */\nimport { scan } from './scan';\nimport { takeLast } from './takeLast';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { pipe } from '../util/pipe';\nexport function reduce(accumulator, seed) {\n if (arguments.length >= 2) {\n return function reduceOperatorFunctionWithSeed(source) {\n return pipe(scan(accumulator, seed), takeLast(1), defaultIfEmpty(seed))(source);\n };\n }\n\n return function reduceOperatorFunction(source) {\n return pipe(scan(function (acc, value, index) {\n return accumulator(acc, value, index + 1);\n }), takeLast(1))(source);\n };\n}","/** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */\nimport { reduce } from './reduce';\nexport function max(comparer) {\n var max = typeof comparer === 'function' ? function (x, y) {\n return comparer(x, y) > 0 ? x : y;\n } : function (x, y) {\n return x > y ? x : y;\n };\n return reduce(max);\n}","/** PURE_IMPORTS_START _observable_merge PURE_IMPORTS_END */\nimport { merge as mergeStatic } from '../observable/merge';\nexport function merge() {\n var observables = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n\n return function (source) {\n return source.lift.call(mergeStatic.apply(void 0, [source].concat(observables)));\n };\n}","/** PURE_IMPORTS_START _mergeMap PURE_IMPORTS_END */\nimport { mergeMap } from './mergeMap';\nexport function mergeMapTo(innerObservable, resultSelector, concurrent) {\n if (concurrent === void 0) {\n concurrent = Number.POSITIVE_INFINITY;\n }\n\n if (typeof resultSelector === 'function') {\n return mergeMap(function () {\n return innerObservable;\n }, resultSelector, concurrent);\n }\n\n if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n\n return mergeMap(function () {\n return innerObservable;\n }, concurrent);\n}","/** PURE_IMPORTS_START tslib,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function mergeScan(accumulator, seed, concurrent) {\n if (concurrent === void 0) {\n concurrent = Number.POSITIVE_INFINITY;\n }\n\n return function (source) {\n return source.lift(new MergeScanOperator(accumulator, seed, concurrent));\n };\n}\n\nvar MergeScanOperator = /*@__PURE__*/function () {\n function MergeScanOperator(accumulator, seed, concurrent) {\n this.accumulator = accumulator;\n this.seed = seed;\n this.concurrent = concurrent;\n }\n\n MergeScanOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MergeScanSubscriber(subscriber, this.accumulator, this.seed, this.concurrent));\n };\n\n return MergeScanOperator;\n}();\n\nexport { MergeScanOperator };\n\nvar MergeScanSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(MergeScanSubscriber, _super);\n\n function MergeScanSubscriber(destination, accumulator, acc, concurrent) {\n var _this = _super.call(this, destination) || this;\n\n _this.accumulator = accumulator;\n _this.acc = acc;\n _this.concurrent = concurrent;\n _this.hasValue = false;\n _this.hasCompleted = false;\n _this.buffer = [];\n _this.active = 0;\n _this.index = 0;\n return _this;\n }\n\n MergeScanSubscriber.prototype._next = function (value) {\n if (this.active < this.concurrent) {\n var index = this.index++;\n var destination = this.destination;\n var ish = void 0;\n\n try {\n var accumulator = this.accumulator;\n ish = accumulator(this.acc, value, index);\n } catch (e) {\n return destination.error(e);\n }\n\n this.active++;\n\n this._innerSub(ish);\n } else {\n this.buffer.push(value);\n }\n };\n\n MergeScanSubscriber.prototype._innerSub = function (ish) {\n var innerSubscriber = new SimpleInnerSubscriber(this);\n var destination = this.destination;\n destination.add(innerSubscriber);\n var innerSubscription = innerSubscribe(ish, innerSubscriber);\n\n if (innerSubscription !== innerSubscriber) {\n destination.add(innerSubscription);\n }\n };\n\n MergeScanSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n\n if (this.active === 0 && this.buffer.length === 0) {\n if (this.hasValue === false) {\n this.destination.next(this.acc);\n }\n\n this.destination.complete();\n }\n\n this.unsubscribe();\n };\n\n MergeScanSubscriber.prototype.notifyNext = function (innerValue) {\n var destination = this.destination;\n this.acc = innerValue;\n this.hasValue = true;\n destination.next(innerValue);\n };\n\n MergeScanSubscriber.prototype.notifyComplete = function () {\n var buffer = this.buffer;\n this.active--;\n\n if (buffer.length > 0) {\n this._next(buffer.shift());\n } else if (this.active === 0 && this.hasCompleted) {\n if (this.hasValue === false) {\n this.destination.next(this.acc);\n }\n\n this.destination.complete();\n }\n };\n\n return MergeScanSubscriber;\n}(SimpleOuterSubscriber);\n\nexport { MergeScanSubscriber };","/** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */\nimport { reduce } from './reduce';\nexport function min(comparer) {\n var min = typeof comparer === 'function' ? function (x, y) {\n return comparer(x, y) < 0 ? x : y;\n } : function (x, y) {\n return x < y ? x : y;\n };\n return reduce(min);\n}","/** PURE_IMPORTS_START _observable_ConnectableObservable PURE_IMPORTS_END */\nimport { connectableObservableDescriptor } from '../observable/ConnectableObservable';\nexport function multicast(subjectOrSubjectFactory, selector) {\n return function multicastOperatorFunction(source) {\n var subjectFactory;\n\n if (typeof subjectOrSubjectFactory === 'function') {\n subjectFactory = subjectOrSubjectFactory;\n } else {\n subjectFactory = function subjectFactory() {\n return subjectOrSubjectFactory;\n };\n }\n\n if (typeof selector === 'function') {\n return source.lift(new MulticastOperator(subjectFactory, selector));\n }\n\n var connectable = Object.create(source, connectableObservableDescriptor);\n connectable.source = source;\n connectable.subjectFactory = subjectFactory;\n return connectable;\n };\n}\n\nvar MulticastOperator = /*@__PURE__*/function () {\n function MulticastOperator(subjectFactory, selector) {\n this.subjectFactory = subjectFactory;\n this.selector = selector;\n }\n\n MulticastOperator.prototype.call = function (subscriber, source) {\n var selector = this.selector;\n var subject = this.subjectFactory();\n var subscription = selector(subject).subscribe(subscriber);\n subscription.add(source.subscribe(subject));\n return subscription;\n };\n\n return MulticastOperator;\n}();\n\nexport { MulticastOperator };","/** PURE_IMPORTS_START tslib,_observable_from,_util_isArray,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { from } from '../observable/from';\nimport { isArray } from '../util/isArray';\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function onErrorResumeNext() {\n var nextSources = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n nextSources[_i] = arguments[_i];\n }\n\n if (nextSources.length === 1 && isArray(nextSources[0])) {\n nextSources = nextSources[0];\n }\n\n return function (source) {\n return source.lift(new OnErrorResumeNextOperator(nextSources));\n };\n}\nexport function onErrorResumeNextStatic() {\n var nextSources = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n nextSources[_i] = arguments[_i];\n }\n\n var source = undefined;\n\n if (nextSources.length === 1 && isArray(nextSources[0])) {\n nextSources = nextSources[0];\n }\n\n source = nextSources.shift();\n return from(source).lift(new OnErrorResumeNextOperator(nextSources));\n}\n\nvar OnErrorResumeNextOperator = /*@__PURE__*/function () {\n function OnErrorResumeNextOperator(nextSources) {\n this.nextSources = nextSources;\n }\n\n OnErrorResumeNextOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new OnErrorResumeNextSubscriber(subscriber, this.nextSources));\n };\n\n return OnErrorResumeNextOperator;\n}();\n\nvar OnErrorResumeNextSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(OnErrorResumeNextSubscriber, _super);\n\n function OnErrorResumeNextSubscriber(destination, nextSources) {\n var _this = _super.call(this, destination) || this;\n\n _this.destination = destination;\n _this.nextSources = nextSources;\n return _this;\n }\n\n OnErrorResumeNextSubscriber.prototype.notifyError = function () {\n this.subscribeToNextSource();\n };\n\n OnErrorResumeNextSubscriber.prototype.notifyComplete = function () {\n this.subscribeToNextSource();\n };\n\n OnErrorResumeNextSubscriber.prototype._error = function (err) {\n this.subscribeToNextSource();\n this.unsubscribe();\n };\n\n OnErrorResumeNextSubscriber.prototype._complete = function () {\n this.subscribeToNextSource();\n this.unsubscribe();\n };\n\n OnErrorResumeNextSubscriber.prototype.subscribeToNextSource = function () {\n var next = this.nextSources.shift();\n\n if (!!next) {\n var innerSubscriber = new SimpleInnerSubscriber(this);\n var destination = this.destination;\n destination.add(innerSubscriber);\n var innerSubscription = innerSubscribe(next, innerSubscriber);\n\n if (innerSubscription !== innerSubscriber) {\n destination.add(innerSubscription);\n }\n } else {\n this.destination.complete();\n }\n };\n\n return OnErrorResumeNextSubscriber;\n}(SimpleOuterSubscriber);","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function pairwise() {\n return function (source) {\n return source.lift(new PairwiseOperator());\n };\n}\n\nvar PairwiseOperator = /*@__PURE__*/function () {\n function PairwiseOperator() {}\n\n PairwiseOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new PairwiseSubscriber(subscriber));\n };\n\n return PairwiseOperator;\n}();\n\nvar PairwiseSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(PairwiseSubscriber, _super);\n\n function PairwiseSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n\n _this.hasPrev = false;\n return _this;\n }\n\n PairwiseSubscriber.prototype._next = function (value) {\n var pair;\n\n if (this.hasPrev) {\n pair = [this.prev, value];\n } else {\n this.hasPrev = true;\n }\n\n this.prev = value;\n\n if (pair) {\n this.destination.next(pair);\n }\n };\n\n return PairwiseSubscriber;\n}(Subscriber);","/** PURE_IMPORTS_START _util_not,_filter PURE_IMPORTS_END */\nimport { not } from '../util/not';\nimport { filter } from './filter';\nexport function partition(predicate, thisArg) {\n return function (source) {\n return [filter(predicate, thisArg)(source), filter(not(predicate, thisArg))(source)];\n };\n}","/** PURE_IMPORTS_START _map PURE_IMPORTS_END */\nimport { map } from './map';\nexport function pluck() {\n var properties = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n properties[_i] = arguments[_i];\n }\n\n var length = properties.length;\n\n if (length === 0) {\n throw new Error('list of properties cannot be empty.');\n }\n\n return function (source) {\n return map(plucker(properties, length))(source);\n };\n}\n\nfunction plucker(props, length) {\n var mapper = function mapper(x) {\n var currentProp = x;\n\n for (var i = 0; i < length; i++) {\n var p = currentProp != null ? currentProp[props[i]] : undefined;\n\n if (p !== void 0) {\n currentProp = p;\n } else {\n return undefined;\n }\n }\n\n return currentProp;\n };\n\n return mapper;\n}","/** PURE_IMPORTS_START _Subject,_multicast PURE_IMPORTS_END */\nimport { Subject } from '../Subject';\nimport { multicast } from './multicast';\nexport function publish(selector) {\n return selector ? multicast(function () {\n return new Subject();\n }, selector) : multicast(new Subject());\n}","/** PURE_IMPORTS_START _BehaviorSubject,_multicast PURE_IMPORTS_END */\nimport { BehaviorSubject } from '../BehaviorSubject';\nimport { multicast } from './multicast';\nexport function publishBehavior(value) {\n return function (source) {\n return multicast(new BehaviorSubject(value))(source);\n };\n}","/** PURE_IMPORTS_START _AsyncSubject,_multicast PURE_IMPORTS_END */\nimport { AsyncSubject } from '../AsyncSubject';\nimport { multicast } from './multicast';\nexport function publishLast() {\n return function (source) {\n return multicast(new AsyncSubject())(source);\n };\n}","/** PURE_IMPORTS_START _ReplaySubject,_multicast PURE_IMPORTS_END */\nimport { ReplaySubject } from '../ReplaySubject';\nimport { multicast } from './multicast';\nexport function publishReplay(bufferSize, windowTime, selectorOrScheduler, scheduler) {\n if (selectorOrScheduler && typeof selectorOrScheduler !== 'function') {\n scheduler = selectorOrScheduler;\n }\n\n var selector = typeof selectorOrScheduler === 'function' ? selectorOrScheduler : undefined;\n var subject = new ReplaySubject(bufferSize, windowTime, scheduler);\n return function (source) {\n return multicast(function () {\n return subject;\n }, selector)(source);\n };\n}","/** PURE_IMPORTS_START _util_isArray,_observable_race PURE_IMPORTS_END */\nimport { isArray } from '../util/isArray';\nimport { race as raceStatic } from '../observable/race';\nexport function race() {\n var observables = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n\n return function raceOperatorFunction(source) {\n if (observables.length === 1 && isArray(observables[0])) {\n observables = observables[0];\n }\n\n return source.lift.call(raceStatic.apply(void 0, [source].concat(observables)));\n };\n}","/** PURE_IMPORTS_START tslib,_Subscriber,_observable_empty PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { empty } from '../observable/empty';\nexport function repeat(count) {\n if (count === void 0) {\n count = -1;\n }\n\n return function (source) {\n if (count === 0) {\n return empty();\n } else if (count < 0) {\n return source.lift(new RepeatOperator(-1, source));\n } else {\n return source.lift(new RepeatOperator(count - 1, source));\n }\n };\n}\n\nvar RepeatOperator = /*@__PURE__*/function () {\n function RepeatOperator(count, source) {\n this.count = count;\n this.source = source;\n }\n\n RepeatOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RepeatSubscriber(subscriber, this.count, this.source));\n };\n\n return RepeatOperator;\n}();\n\nvar RepeatSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(RepeatSubscriber, _super);\n\n function RepeatSubscriber(destination, count, source) {\n var _this = _super.call(this, destination) || this;\n\n _this.count = count;\n _this.source = source;\n return _this;\n }\n\n RepeatSubscriber.prototype.complete = function () {\n if (!this.isStopped) {\n var _a = this,\n source = _a.source,\n count = _a.count;\n\n if (count === 0) {\n return _super.prototype.complete.call(this);\n } else if (count > -1) {\n this.count = count - 1;\n }\n\n source.subscribe(this._unsubscribeAndRecycle());\n }\n };\n\n return RepeatSubscriber;\n}(Subscriber);","/** PURE_IMPORTS_START tslib,_Subject,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport function repeatWhen(notifier) {\n return function (source) {\n return source.lift(new RepeatWhenOperator(notifier));\n };\n}\n\nvar RepeatWhenOperator = /*@__PURE__*/function () {\n function RepeatWhenOperator(notifier) {\n this.notifier = notifier;\n }\n\n RepeatWhenOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RepeatWhenSubscriber(subscriber, this.notifier, source));\n };\n\n return RepeatWhenOperator;\n}();\n\nvar RepeatWhenSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(RepeatWhenSubscriber, _super);\n\n function RepeatWhenSubscriber(destination, notifier, source) {\n var _this = _super.call(this, destination) || this;\n\n _this.notifier = notifier;\n _this.source = source;\n _this.sourceIsBeingSubscribedTo = true;\n return _this;\n }\n\n RepeatWhenSubscriber.prototype.notifyNext = function () {\n this.sourceIsBeingSubscribedTo = true;\n this.source.subscribe(this);\n };\n\n RepeatWhenSubscriber.prototype.notifyComplete = function () {\n if (this.sourceIsBeingSubscribedTo === false) {\n return _super.prototype.complete.call(this);\n }\n };\n\n RepeatWhenSubscriber.prototype.complete = function () {\n this.sourceIsBeingSubscribedTo = false;\n\n if (!this.isStopped) {\n if (!this.retries) {\n this.subscribeToRetries();\n }\n\n if (!this.retriesSubscription || this.retriesSubscription.closed) {\n return _super.prototype.complete.call(this);\n }\n\n this._unsubscribeAndRecycle();\n\n this.notifications.next(undefined);\n }\n };\n\n RepeatWhenSubscriber.prototype._unsubscribe = function () {\n var _a = this,\n notifications = _a.notifications,\n retriesSubscription = _a.retriesSubscription;\n\n if (notifications) {\n notifications.unsubscribe();\n this.notifications = undefined;\n }\n\n if (retriesSubscription) {\n retriesSubscription.unsubscribe();\n this.retriesSubscription = undefined;\n }\n\n this.retries = undefined;\n };\n\n RepeatWhenSubscriber.prototype._unsubscribeAndRecycle = function () {\n var _unsubscribe = this._unsubscribe;\n this._unsubscribe = null;\n\n _super.prototype._unsubscribeAndRecycle.call(this);\n\n this._unsubscribe = _unsubscribe;\n return this;\n };\n\n RepeatWhenSubscriber.prototype.subscribeToRetries = function () {\n this.notifications = new Subject();\n var retries;\n\n try {\n var notifier = this.notifier;\n retries = notifier(this.notifications);\n } catch (e) {\n return _super.prototype.complete.call(this);\n }\n\n this.retries = retries;\n this.retriesSubscription = innerSubscribe(retries, new SimpleInnerSubscriber(this));\n };\n\n return RepeatWhenSubscriber;\n}(SimpleOuterSubscriber);","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function retry(count) {\n if (count === void 0) {\n count = -1;\n }\n\n return function (source) {\n return source.lift(new RetryOperator(count, source));\n };\n}\n\nvar RetryOperator = /*@__PURE__*/function () {\n function RetryOperator(count, source) {\n this.count = count;\n this.source = source;\n }\n\n RetryOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RetrySubscriber(subscriber, this.count, this.source));\n };\n\n return RetryOperator;\n}();\n\nvar RetrySubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(RetrySubscriber, _super);\n\n function RetrySubscriber(destination, count, source) {\n var _this = _super.call(this, destination) || this;\n\n _this.count = count;\n _this.source = source;\n return _this;\n }\n\n RetrySubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var _a = this,\n source = _a.source,\n count = _a.count;\n\n if (count === 0) {\n return _super.prototype.error.call(this, err);\n } else if (count > -1) {\n this.count = count - 1;\n }\n\n source.subscribe(this._unsubscribeAndRecycle());\n }\n };\n\n return RetrySubscriber;\n}(Subscriber);","/** PURE_IMPORTS_START tslib,_Subject,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport function retryWhen(notifier) {\n return function (source) {\n return source.lift(new RetryWhenOperator(notifier, source));\n };\n}\n\nvar RetryWhenOperator = /*@__PURE__*/function () {\n function RetryWhenOperator(notifier, source) {\n this.notifier = notifier;\n this.source = source;\n }\n\n RetryWhenOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RetryWhenSubscriber(subscriber, this.notifier, this.source));\n };\n\n return RetryWhenOperator;\n}();\n\nvar RetryWhenSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(RetryWhenSubscriber, _super);\n\n function RetryWhenSubscriber(destination, notifier, source) {\n var _this = _super.call(this, destination) || this;\n\n _this.notifier = notifier;\n _this.source = source;\n return _this;\n }\n\n RetryWhenSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var errors = this.errors;\n var retries = this.retries;\n var retriesSubscription = this.retriesSubscription;\n\n if (!retries) {\n errors = new Subject();\n\n try {\n var notifier = this.notifier;\n retries = notifier(errors);\n } catch (e) {\n return _super.prototype.error.call(this, e);\n }\n\n retriesSubscription = innerSubscribe(retries, new SimpleInnerSubscriber(this));\n } else {\n this.errors = undefined;\n this.retriesSubscription = undefined;\n }\n\n this._unsubscribeAndRecycle();\n\n this.errors = errors;\n this.retries = retries;\n this.retriesSubscription = retriesSubscription;\n errors.next(err);\n }\n };\n\n RetryWhenSubscriber.prototype._unsubscribe = function () {\n var _a = this,\n errors = _a.errors,\n retriesSubscription = _a.retriesSubscription;\n\n if (errors) {\n errors.unsubscribe();\n this.errors = undefined;\n }\n\n if (retriesSubscription) {\n retriesSubscription.unsubscribe();\n this.retriesSubscription = undefined;\n }\n\n this.retries = undefined;\n };\n\n RetryWhenSubscriber.prototype.notifyNext = function () {\n var _unsubscribe = this._unsubscribe;\n this._unsubscribe = null;\n\n this._unsubscribeAndRecycle();\n\n this._unsubscribe = _unsubscribe;\n this.source.subscribe(this);\n };\n\n return RetryWhenSubscriber;\n}(SimpleOuterSubscriber);","/** PURE_IMPORTS_START tslib,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport function sample(notifier) {\n return function (source) {\n return source.lift(new SampleOperator(notifier));\n };\n}\n\nvar SampleOperator = /*@__PURE__*/function () {\n function SampleOperator(notifier) {\n this.notifier = notifier;\n }\n\n SampleOperator.prototype.call = function (subscriber, source) {\n var sampleSubscriber = new SampleSubscriber(subscriber);\n var subscription = source.subscribe(sampleSubscriber);\n subscription.add(innerSubscribe(this.notifier, new SimpleInnerSubscriber(sampleSubscriber)));\n return subscription;\n };\n\n return SampleOperator;\n}();\n\nvar SampleSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(SampleSubscriber, _super);\n\n function SampleSubscriber() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.hasValue = false;\n return _this;\n }\n\n SampleSubscriber.prototype._next = function (value) {\n this.value = value;\n this.hasValue = true;\n };\n\n SampleSubscriber.prototype.notifyNext = function () {\n this.emitValue();\n };\n\n SampleSubscriber.prototype.notifyComplete = function () {\n this.emitValue();\n };\n\n SampleSubscriber.prototype.emitValue = function () {\n if (this.hasValue) {\n this.hasValue = false;\n this.destination.next(this.value);\n }\n };\n\n return SampleSubscriber;\n}(SimpleOuterSubscriber);","/** PURE_IMPORTS_START tslib,_Subscriber,_scheduler_async PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { async } from '../scheduler/async';\nexport function sampleTime(period, scheduler) {\n if (scheduler === void 0) {\n scheduler = async;\n }\n\n return function (source) {\n return source.lift(new SampleTimeOperator(period, scheduler));\n };\n}\n\nvar SampleTimeOperator = /*@__PURE__*/function () {\n function SampleTimeOperator(period, scheduler) {\n this.period = period;\n this.scheduler = scheduler;\n }\n\n SampleTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SampleTimeSubscriber(subscriber, this.period, this.scheduler));\n };\n\n return SampleTimeOperator;\n}();\n\nvar SampleTimeSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(SampleTimeSubscriber, _super);\n\n function SampleTimeSubscriber(destination, period, scheduler) {\n var _this = _super.call(this, destination) || this;\n\n _this.period = period;\n _this.scheduler = scheduler;\n _this.hasValue = false;\n\n _this.add(scheduler.schedule(dispatchNotification, period, {\n subscriber: _this,\n period: period\n }));\n\n return _this;\n }\n\n SampleTimeSubscriber.prototype._next = function (value) {\n this.lastValue = value;\n this.hasValue = true;\n };\n\n SampleTimeSubscriber.prototype.notifyNext = function () {\n if (this.hasValue) {\n this.hasValue = false;\n this.destination.next(this.lastValue);\n }\n };\n\n return SampleTimeSubscriber;\n}(Subscriber);\n\nfunction dispatchNotification(state) {\n var subscriber = state.subscriber,\n period = state.period;\n subscriber.notifyNext();\n this.schedule(state, period);\n}","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function sequenceEqual(compareTo, comparator) {\n return function (source) {\n return source.lift(new SequenceEqualOperator(compareTo, comparator));\n };\n}\n\nvar SequenceEqualOperator = /*@__PURE__*/function () {\n function SequenceEqualOperator(compareTo, comparator) {\n this.compareTo = compareTo;\n this.comparator = comparator;\n }\n\n SequenceEqualOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SequenceEqualSubscriber(subscriber, this.compareTo, this.comparator));\n };\n\n return SequenceEqualOperator;\n}();\n\nexport { SequenceEqualOperator };\n\nvar SequenceEqualSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(SequenceEqualSubscriber, _super);\n\n function SequenceEqualSubscriber(destination, compareTo, comparator) {\n var _this = _super.call(this, destination) || this;\n\n _this.compareTo = compareTo;\n _this.comparator = comparator;\n _this._a = [];\n _this._b = [];\n _this._oneComplete = false;\n\n _this.destination.add(compareTo.subscribe(new SequenceEqualCompareToSubscriber(destination, _this)));\n\n return _this;\n }\n\n SequenceEqualSubscriber.prototype._next = function (value) {\n if (this._oneComplete && this._b.length === 0) {\n this.emit(false);\n } else {\n this._a.push(value);\n\n this.checkValues();\n }\n };\n\n SequenceEqualSubscriber.prototype._complete = function () {\n if (this._oneComplete) {\n this.emit(this._a.length === 0 && this._b.length === 0);\n } else {\n this._oneComplete = true;\n }\n\n this.unsubscribe();\n };\n\n SequenceEqualSubscriber.prototype.checkValues = function () {\n var _c = this,\n _a = _c._a,\n _b = _c._b,\n comparator = _c.comparator;\n\n while (_a.length > 0 && _b.length > 0) {\n var a = _a.shift();\n\n var b = _b.shift();\n\n var areEqual = false;\n\n try {\n areEqual = comparator ? comparator(a, b) : a === b;\n } catch (e) {\n this.destination.error(e);\n }\n\n if (!areEqual) {\n this.emit(false);\n }\n }\n };\n\n SequenceEqualSubscriber.prototype.emit = function (value) {\n var destination = this.destination;\n destination.next(value);\n destination.complete();\n };\n\n SequenceEqualSubscriber.prototype.nextB = function (value) {\n if (this._oneComplete && this._a.length === 0) {\n this.emit(false);\n } else {\n this._b.push(value);\n\n this.checkValues();\n }\n };\n\n SequenceEqualSubscriber.prototype.completeB = function () {\n if (this._oneComplete) {\n this.emit(this._a.length === 0 && this._b.length === 0);\n } else {\n this._oneComplete = true;\n }\n };\n\n return SequenceEqualSubscriber;\n}(Subscriber);\n\nexport { SequenceEqualSubscriber };\n\nvar SequenceEqualCompareToSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(SequenceEqualCompareToSubscriber, _super);\n\n function SequenceEqualCompareToSubscriber(destination, parent) {\n var _this = _super.call(this, destination) || this;\n\n _this.parent = parent;\n return _this;\n }\n\n SequenceEqualCompareToSubscriber.prototype._next = function (value) {\n this.parent.nextB(value);\n };\n\n SequenceEqualCompareToSubscriber.prototype._error = function (err) {\n this.parent.error(err);\n this.unsubscribe();\n };\n\n SequenceEqualCompareToSubscriber.prototype._complete = function () {\n this.parent.completeB();\n this.unsubscribe();\n };\n\n return SequenceEqualCompareToSubscriber;\n}(Subscriber);","/** PURE_IMPORTS_START _multicast,_refCount,_Subject PURE_IMPORTS_END */\nimport { multicast } from './multicast';\nimport { refCount } from './refCount';\nimport { Subject } from '../Subject';\n\nfunction shareSubjectFactory() {\n return new Subject();\n}\n\nexport function share() {\n return function (source) {\n return refCount()(multicast(shareSubjectFactory)(source));\n };\n}","/** PURE_IMPORTS_START _ReplaySubject PURE_IMPORTS_END */\nimport { ReplaySubject } from '../ReplaySubject';\nexport function shareReplay(configOrBufferSize, windowTime, scheduler) {\n var config;\n\n if (configOrBufferSize && typeof configOrBufferSize === 'object') {\n config = configOrBufferSize;\n } else {\n config = {\n bufferSize: configOrBufferSize,\n windowTime: windowTime,\n refCount: false,\n scheduler: scheduler\n };\n }\n\n return function (source) {\n return source.lift(shareReplayOperator(config));\n };\n}\n\nfunction shareReplayOperator(_a) {\n var _b = _a.bufferSize,\n bufferSize = _b === void 0 ? Number.POSITIVE_INFINITY : _b,\n _c = _a.windowTime,\n windowTime = _c === void 0 ? Number.POSITIVE_INFINITY : _c,\n useRefCount = _a.refCount,\n scheduler = _a.scheduler;\n var subject;\n var refCount = 0;\n var subscription;\n var hasError = false;\n var isComplete = false;\n return function shareReplayOperation(source) {\n refCount++;\n var innerSub;\n\n if (!subject || hasError) {\n hasError = false;\n subject = new ReplaySubject(bufferSize, windowTime, scheduler);\n innerSub = subject.subscribe(this);\n subscription = source.subscribe({\n next: function next(value) {\n subject.next(value);\n },\n error: function error(err) {\n hasError = true;\n subject.error(err);\n },\n complete: function complete() {\n isComplete = true;\n subscription = undefined;\n subject.complete();\n }\n });\n\n if (isComplete) {\n subscription = undefined;\n }\n } else {\n innerSub = subject.subscribe(this);\n }\n\n this.add(function () {\n refCount--;\n innerSub.unsubscribe();\n innerSub = undefined;\n\n if (subscription && !isComplete && useRefCount && refCount === 0) {\n subscription.unsubscribe();\n subscription = undefined;\n subject = undefined;\n }\n });\n };\n}","/** PURE_IMPORTS_START tslib,_Subscriber,_util_EmptyError PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { EmptyError } from '../util/EmptyError';\nexport function single(predicate) {\n return function (source) {\n return source.lift(new SingleOperator(predicate, source));\n };\n}\n\nvar SingleOperator = /*@__PURE__*/function () {\n function SingleOperator(predicate, source) {\n this.predicate = predicate;\n this.source = source;\n }\n\n SingleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SingleSubscriber(subscriber, this.predicate, this.source));\n };\n\n return SingleOperator;\n}();\n\nvar SingleSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(SingleSubscriber, _super);\n\n function SingleSubscriber(destination, predicate, source) {\n var _this = _super.call(this, destination) || this;\n\n _this.predicate = predicate;\n _this.source = source;\n _this.seenValue = false;\n _this.index = 0;\n return _this;\n }\n\n SingleSubscriber.prototype.applySingleValue = function (value) {\n if (this.seenValue) {\n this.destination.error('Sequence contains more than one element');\n } else {\n this.seenValue = true;\n this.singleValue = value;\n }\n };\n\n SingleSubscriber.prototype._next = function (value) {\n var index = this.index++;\n\n if (this.predicate) {\n this.tryNext(value, index);\n } else {\n this.applySingleValue(value);\n }\n };\n\n SingleSubscriber.prototype.tryNext = function (value, index) {\n try {\n if (this.predicate(value, index, this.source)) {\n this.applySingleValue(value);\n }\n } catch (err) {\n this.destination.error(err);\n }\n };\n\n SingleSubscriber.prototype._complete = function () {\n var destination = this.destination;\n\n if (this.index > 0) {\n destination.next(this.seenValue ? this.singleValue : undefined);\n destination.complete();\n } else {\n destination.error(new EmptyError());\n }\n };\n\n return SingleSubscriber;\n}(Subscriber);","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function skip(count) {\n return function (source) {\n return source.lift(new SkipOperator(count));\n };\n}\n\nvar SkipOperator = /*@__PURE__*/function () {\n function SkipOperator(total) {\n this.total = total;\n }\n\n SkipOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SkipSubscriber(subscriber, this.total));\n };\n\n return SkipOperator;\n}();\n\nvar SkipSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(SkipSubscriber, _super);\n\n function SkipSubscriber(destination, total) {\n var _this = _super.call(this, destination) || this;\n\n _this.total = total;\n _this.count = 0;\n return _this;\n }\n\n SkipSubscriber.prototype._next = function (x) {\n if (++this.count > this.total) {\n this.destination.next(x);\n }\n };\n\n return SkipSubscriber;\n}(Subscriber);","/** PURE_IMPORTS_START tslib,_Subscriber,_util_ArgumentOutOfRangeError PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nexport function skipLast(count) {\n return function (source) {\n return source.lift(new SkipLastOperator(count));\n };\n}\n\nvar SkipLastOperator = /*@__PURE__*/function () {\n function SkipLastOperator(_skipCount) {\n this._skipCount = _skipCount;\n\n if (this._skipCount < 0) {\n throw new ArgumentOutOfRangeError();\n }\n }\n\n SkipLastOperator.prototype.call = function (subscriber, source) {\n if (this._skipCount === 0) {\n return source.subscribe(new Subscriber(subscriber));\n } else {\n return source.subscribe(new SkipLastSubscriber(subscriber, this._skipCount));\n }\n };\n\n return SkipLastOperator;\n}();\n\nvar SkipLastSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(SkipLastSubscriber, _super);\n\n function SkipLastSubscriber(destination, _skipCount) {\n var _this = _super.call(this, destination) || this;\n\n _this._skipCount = _skipCount;\n _this._count = 0;\n _this._ring = new Array(_skipCount);\n return _this;\n }\n\n SkipLastSubscriber.prototype._next = function (value) {\n var skipCount = this._skipCount;\n var count = this._count++;\n\n if (count < skipCount) {\n this._ring[count] = value;\n } else {\n var currentIndex = count % skipCount;\n var ring = this._ring;\n var oldValue = ring[currentIndex];\n ring[currentIndex] = value;\n this.destination.next(oldValue);\n }\n };\n\n return SkipLastSubscriber;\n}(Subscriber);","/** PURE_IMPORTS_START tslib,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function skipUntil(notifier) {\n return function (source) {\n return source.lift(new SkipUntilOperator(notifier));\n };\n}\n\nvar SkipUntilOperator = /*@__PURE__*/function () {\n function SkipUntilOperator(notifier) {\n this.notifier = notifier;\n }\n\n SkipUntilOperator.prototype.call = function (destination, source) {\n return source.subscribe(new SkipUntilSubscriber(destination, this.notifier));\n };\n\n return SkipUntilOperator;\n}();\n\nvar SkipUntilSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(SkipUntilSubscriber, _super);\n\n function SkipUntilSubscriber(destination, notifier) {\n var _this = _super.call(this, destination) || this;\n\n _this.hasValue = false;\n var innerSubscriber = new SimpleInnerSubscriber(_this);\n\n _this.add(innerSubscriber);\n\n _this.innerSubscription = innerSubscriber;\n var innerSubscription = innerSubscribe(notifier, innerSubscriber);\n\n if (innerSubscription !== innerSubscriber) {\n _this.add(innerSubscription);\n\n _this.innerSubscription = innerSubscription;\n }\n\n return _this;\n }\n\n SkipUntilSubscriber.prototype._next = function (value) {\n if (this.hasValue) {\n _super.prototype._next.call(this, value);\n }\n };\n\n SkipUntilSubscriber.prototype.notifyNext = function () {\n this.hasValue = true;\n\n if (this.innerSubscription) {\n this.innerSubscription.unsubscribe();\n }\n };\n\n SkipUntilSubscriber.prototype.notifyComplete = function () {};\n\n return SkipUntilSubscriber;\n}(SimpleOuterSubscriber);","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function skipWhile(predicate) {\n return function (source) {\n return source.lift(new SkipWhileOperator(predicate));\n };\n}\n\nvar SkipWhileOperator = /*@__PURE__*/function () {\n function SkipWhileOperator(predicate) {\n this.predicate = predicate;\n }\n\n SkipWhileOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SkipWhileSubscriber(subscriber, this.predicate));\n };\n\n return SkipWhileOperator;\n}();\n\nvar SkipWhileSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(SkipWhileSubscriber, _super);\n\n function SkipWhileSubscriber(destination, predicate) {\n var _this = _super.call(this, destination) || this;\n\n _this.predicate = predicate;\n _this.skipping = true;\n _this.index = 0;\n return _this;\n }\n\n SkipWhileSubscriber.prototype._next = function (value) {\n var destination = this.destination;\n\n if (this.skipping) {\n this.tryCallPredicate(value);\n }\n\n if (!this.skipping) {\n destination.next(value);\n }\n };\n\n SkipWhileSubscriber.prototype.tryCallPredicate = function (value) {\n try {\n var result = this.predicate(value, this.index++);\n this.skipping = Boolean(result);\n } catch (err) {\n this.destination.error(err);\n }\n };\n\n return SkipWhileSubscriber;\n}(Subscriber);","/** PURE_IMPORTS_START _observable_concat,_util_isScheduler PURE_IMPORTS_END */\nimport { concat } from '../observable/concat';\nimport { isScheduler } from '../util/isScheduler';\nexport function startWith() {\n var array = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n array[_i] = arguments[_i];\n }\n\n var scheduler = array[array.length - 1];\n\n if (isScheduler(scheduler)) {\n array.pop();\n return function (source) {\n return concat(array, source, scheduler);\n };\n } else {\n return function (source) {\n return concat(array, source);\n };\n }\n}","/** PURE_IMPORTS_START tslib,_map,_observable_from,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { map } from './map';\nimport { from } from '../observable/from';\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function switchMap(project, resultSelector) {\n if (typeof resultSelector === 'function') {\n return function (source) {\n return source.pipe(switchMap(function (a, i) {\n return from(project(a, i)).pipe(map(function (b, ii) {\n return resultSelector(a, b, i, ii);\n }));\n }));\n };\n }\n\n return function (source) {\n return source.lift(new SwitchMapOperator(project));\n };\n}\n\nvar SwitchMapOperator = /*@__PURE__*/function () {\n function SwitchMapOperator(project) {\n this.project = project;\n }\n\n SwitchMapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SwitchMapSubscriber(subscriber, this.project));\n };\n\n return SwitchMapOperator;\n}();\n\nvar SwitchMapSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(SwitchMapSubscriber, _super);\n\n function SwitchMapSubscriber(destination, project) {\n var _this = _super.call(this, destination) || this;\n\n _this.project = project;\n _this.index = 0;\n return _this;\n }\n\n SwitchMapSubscriber.prototype._next = function (value) {\n var result;\n var index = this.index++;\n\n try {\n result = this.project(value, index);\n } catch (error) {\n this.destination.error(error);\n return;\n }\n\n this._innerSub(result);\n };\n\n SwitchMapSubscriber.prototype._innerSub = function (result) {\n var innerSubscription = this.innerSubscription;\n\n if (innerSubscription) {\n innerSubscription.unsubscribe();\n }\n\n var innerSubscriber = new SimpleInnerSubscriber(this);\n var destination = this.destination;\n destination.add(innerSubscriber);\n this.innerSubscription = innerSubscribe(result, innerSubscriber);\n\n if (this.innerSubscription !== innerSubscriber) {\n destination.add(this.innerSubscription);\n }\n };\n\n SwitchMapSubscriber.prototype._complete = function () {\n var innerSubscription = this.innerSubscription;\n\n if (!innerSubscription || innerSubscription.closed) {\n _super.prototype._complete.call(this);\n }\n\n this.unsubscribe();\n };\n\n SwitchMapSubscriber.prototype._unsubscribe = function () {\n this.innerSubscription = undefined;\n };\n\n SwitchMapSubscriber.prototype.notifyComplete = function () {\n this.innerSubscription = undefined;\n\n if (this.isStopped) {\n _super.prototype._complete.call(this);\n }\n };\n\n SwitchMapSubscriber.prototype.notifyNext = function (innerValue) {\n this.destination.next(innerValue);\n };\n\n return SwitchMapSubscriber;\n}(SimpleOuterSubscriber);","/** PURE_IMPORTS_START _switchMap,_util_identity PURE_IMPORTS_END */\nimport { switchMap } from './switchMap';\nimport { identity } from '../util/identity';\nexport function switchAll() {\n return switchMap(identity);\n}","/** PURE_IMPORTS_START _switchMap PURE_IMPORTS_END */\nimport { switchMap } from './switchMap';\nexport function switchMapTo(innerObservable, resultSelector) {\n return resultSelector ? switchMap(function () {\n return innerObservable;\n }, resultSelector) : switchMap(function () {\n return innerObservable;\n });\n}","/** PURE_IMPORTS_START tslib,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { innerSubscribe, SimpleInnerSubscriber, SimpleOuterSubscriber } from '../innerSubscribe';\nexport function takeUntil(notifier) {\n return function (source) {\n return source.lift(new TakeUntilOperator(notifier));\n };\n}\n\nvar TakeUntilOperator = /*@__PURE__*/function () {\n function TakeUntilOperator(notifier) {\n this.notifier = notifier;\n }\n\n TakeUntilOperator.prototype.call = function (subscriber, source) {\n var takeUntilSubscriber = new TakeUntilSubscriber(subscriber);\n var notifierSubscription = innerSubscribe(this.notifier, new SimpleInnerSubscriber(takeUntilSubscriber));\n\n if (notifierSubscription && !takeUntilSubscriber.seenValue) {\n takeUntilSubscriber.add(notifierSubscription);\n return source.subscribe(takeUntilSubscriber);\n }\n\n return takeUntilSubscriber;\n };\n\n return TakeUntilOperator;\n}();\n\nvar TakeUntilSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(TakeUntilSubscriber, _super);\n\n function TakeUntilSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n\n _this.seenValue = false;\n return _this;\n }\n\n TakeUntilSubscriber.prototype.notifyNext = function () {\n this.seenValue = true;\n this.complete();\n };\n\n TakeUntilSubscriber.prototype.notifyComplete = function () {};\n\n return TakeUntilSubscriber;\n}(SimpleOuterSubscriber);","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function takeWhile(predicate, inclusive) {\n if (inclusive === void 0) {\n inclusive = false;\n }\n\n return function (source) {\n return source.lift(new TakeWhileOperator(predicate, inclusive));\n };\n}\n\nvar TakeWhileOperator = /*@__PURE__*/function () {\n function TakeWhileOperator(predicate, inclusive) {\n this.predicate = predicate;\n this.inclusive = inclusive;\n }\n\n TakeWhileOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TakeWhileSubscriber(subscriber, this.predicate, this.inclusive));\n };\n\n return TakeWhileOperator;\n}();\n\nvar TakeWhileSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(TakeWhileSubscriber, _super);\n\n function TakeWhileSubscriber(destination, predicate, inclusive) {\n var _this = _super.call(this, destination) || this;\n\n _this.predicate = predicate;\n _this.inclusive = inclusive;\n _this.index = 0;\n return _this;\n }\n\n TakeWhileSubscriber.prototype._next = function (value) {\n var destination = this.destination;\n var result;\n\n try {\n result = this.predicate(value, this.index++);\n } catch (err) {\n destination.error(err);\n return;\n }\n\n this.nextOrComplete(value, result);\n };\n\n TakeWhileSubscriber.prototype.nextOrComplete = function (value, predicateResult) {\n var destination = this.destination;\n\n if (Boolean(predicateResult)) {\n destination.next(value);\n } else {\n if (this.inclusive) {\n destination.next(value);\n }\n\n destination.complete();\n }\n };\n\n return TakeWhileSubscriber;\n}(Subscriber);","/** PURE_IMPORTS_START tslib,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport var defaultThrottleConfig = {\n leading: true,\n trailing: false\n};\nexport function throttle(durationSelector, config) {\n if (config === void 0) {\n config = defaultThrottleConfig;\n }\n\n return function (source) {\n return source.lift(new ThrottleOperator(durationSelector, !!config.leading, !!config.trailing));\n };\n}\n\nvar ThrottleOperator = /*@__PURE__*/function () {\n function ThrottleOperator(durationSelector, leading, trailing) {\n this.durationSelector = durationSelector;\n this.leading = leading;\n this.trailing = trailing;\n }\n\n ThrottleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ThrottleSubscriber(subscriber, this.durationSelector, this.leading, this.trailing));\n };\n\n return ThrottleOperator;\n}();\n\nvar ThrottleSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(ThrottleSubscriber, _super);\n\n function ThrottleSubscriber(destination, durationSelector, _leading, _trailing) {\n var _this = _super.call(this, destination) || this;\n\n _this.destination = destination;\n _this.durationSelector = durationSelector;\n _this._leading = _leading;\n _this._trailing = _trailing;\n _this._hasValue = false;\n return _this;\n }\n\n ThrottleSubscriber.prototype._next = function (value) {\n this._hasValue = true;\n this._sendValue = value;\n\n if (!this._throttled) {\n if (this._leading) {\n this.send();\n } else {\n this.throttle(value);\n }\n }\n };\n\n ThrottleSubscriber.prototype.send = function () {\n var _a = this,\n _hasValue = _a._hasValue,\n _sendValue = _a._sendValue;\n\n if (_hasValue) {\n this.destination.next(_sendValue);\n this.throttle(_sendValue);\n }\n\n this._hasValue = false;\n this._sendValue = undefined;\n };\n\n ThrottleSubscriber.prototype.throttle = function (value) {\n var duration = this.tryDurationSelector(value);\n\n if (!!duration) {\n this.add(this._throttled = innerSubscribe(duration, new SimpleInnerSubscriber(this)));\n }\n };\n\n ThrottleSubscriber.prototype.tryDurationSelector = function (value) {\n try {\n return this.durationSelector(value);\n } catch (err) {\n this.destination.error(err);\n return null;\n }\n };\n\n ThrottleSubscriber.prototype.throttlingDone = function () {\n var _a = this,\n _throttled = _a._throttled,\n _trailing = _a._trailing;\n\n if (_throttled) {\n _throttled.unsubscribe();\n }\n\n this._throttled = undefined;\n\n if (_trailing) {\n this.send();\n }\n };\n\n ThrottleSubscriber.prototype.notifyNext = function () {\n this.throttlingDone();\n };\n\n ThrottleSubscriber.prototype.notifyComplete = function () {\n this.throttlingDone();\n };\n\n return ThrottleSubscriber;\n}(SimpleOuterSubscriber);","/** PURE_IMPORTS_START tslib,_Subscriber,_scheduler_async,_throttle PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { async } from '../scheduler/async';\nimport { defaultThrottleConfig } from './throttle';\nexport function throttleTime(duration, scheduler, config) {\n if (scheduler === void 0) {\n scheduler = async;\n }\n\n if (config === void 0) {\n config = defaultThrottleConfig;\n }\n\n return function (source) {\n return source.lift(new ThrottleTimeOperator(duration, scheduler, config.leading, config.trailing));\n };\n}\n\nvar ThrottleTimeOperator = /*@__PURE__*/function () {\n function ThrottleTimeOperator(duration, scheduler, leading, trailing) {\n this.duration = duration;\n this.scheduler = scheduler;\n this.leading = leading;\n this.trailing = trailing;\n }\n\n ThrottleTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ThrottleTimeSubscriber(subscriber, this.duration, this.scheduler, this.leading, this.trailing));\n };\n\n return ThrottleTimeOperator;\n}();\n\nvar ThrottleTimeSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(ThrottleTimeSubscriber, _super);\n\n function ThrottleTimeSubscriber(destination, duration, scheduler, leading, trailing) {\n var _this = _super.call(this, destination) || this;\n\n _this.duration = duration;\n _this.scheduler = scheduler;\n _this.leading = leading;\n _this.trailing = trailing;\n _this._hasTrailingValue = false;\n _this._trailingValue = null;\n return _this;\n }\n\n ThrottleTimeSubscriber.prototype._next = function (value) {\n if (this.throttled) {\n if (this.trailing) {\n this._trailingValue = value;\n this._hasTrailingValue = true;\n }\n } else {\n this.add(this.throttled = this.scheduler.schedule(dispatchNext, this.duration, {\n subscriber: this\n }));\n\n if (this.leading) {\n this.destination.next(value);\n } else if (this.trailing) {\n this._trailingValue = value;\n this._hasTrailingValue = true;\n }\n }\n };\n\n ThrottleTimeSubscriber.prototype._complete = function () {\n if (this._hasTrailingValue) {\n this.destination.next(this._trailingValue);\n this.destination.complete();\n } else {\n this.destination.complete();\n }\n };\n\n ThrottleTimeSubscriber.prototype.clearThrottle = function () {\n var throttled = this.throttled;\n\n if (throttled) {\n if (this.trailing && this._hasTrailingValue) {\n this.destination.next(this._trailingValue);\n this._trailingValue = null;\n this._hasTrailingValue = false;\n }\n\n throttled.unsubscribe();\n this.remove(throttled);\n this.throttled = null;\n }\n };\n\n return ThrottleTimeSubscriber;\n}(Subscriber);\n\nfunction dispatchNext(arg) {\n var subscriber = arg.subscriber;\n subscriber.clearThrottle();\n}","/** PURE_IMPORTS_START _scheduler_async,_scan,_observable_defer,_map PURE_IMPORTS_END */\nimport { async } from '../scheduler/async';\nimport { scan } from './scan';\nimport { defer } from '../observable/defer';\nimport { map } from './map';\nexport function timeInterval(scheduler) {\n if (scheduler === void 0) {\n scheduler = async;\n }\n\n return function (source) {\n return defer(function () {\n return source.pipe(scan(function (_a, value) {\n var current = _a.current;\n return {\n value: value,\n current: scheduler.now(),\n last: current\n };\n }, {\n current: scheduler.now(),\n value: undefined,\n last: undefined\n }), map(function (_a) {\n var current = _a.current,\n last = _a.last,\n value = _a.value;\n return new TimeInterval(value, current - last);\n }));\n });\n };\n}\n\nvar TimeInterval = /*@__PURE__*/function () {\n function TimeInterval(value, interval) {\n this.value = value;\n this.interval = interval;\n }\n\n return TimeInterval;\n}();\n\nexport { TimeInterval };","/** PURE_IMPORTS_START tslib,_scheduler_async,_util_isDate,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { async } from '../scheduler/async';\nimport { isDate } from '../util/isDate';\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport function timeoutWith(due, withObservable, scheduler) {\n if (scheduler === void 0) {\n scheduler = async;\n }\n\n return function (source) {\n var absoluteTimeout = isDate(due);\n var waitFor = absoluteTimeout ? +due - scheduler.now() : Math.abs(due);\n return source.lift(new TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler));\n };\n}\n\nvar TimeoutWithOperator = /*@__PURE__*/function () {\n function TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler) {\n this.waitFor = waitFor;\n this.absoluteTimeout = absoluteTimeout;\n this.withObservable = withObservable;\n this.scheduler = scheduler;\n }\n\n TimeoutWithOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TimeoutWithSubscriber(subscriber, this.absoluteTimeout, this.waitFor, this.withObservable, this.scheduler));\n };\n\n return TimeoutWithOperator;\n}();\n\nvar TimeoutWithSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(TimeoutWithSubscriber, _super);\n\n function TimeoutWithSubscriber(destination, absoluteTimeout, waitFor, withObservable, scheduler) {\n var _this = _super.call(this, destination) || this;\n\n _this.absoluteTimeout = absoluteTimeout;\n _this.waitFor = waitFor;\n _this.withObservable = withObservable;\n _this.scheduler = scheduler;\n\n _this.scheduleTimeout();\n\n return _this;\n }\n\n TimeoutWithSubscriber.dispatchTimeout = function (subscriber) {\n var withObservable = subscriber.withObservable;\n\n subscriber._unsubscribeAndRecycle();\n\n subscriber.add(innerSubscribe(withObservable, new SimpleInnerSubscriber(subscriber)));\n };\n\n TimeoutWithSubscriber.prototype.scheduleTimeout = function () {\n var action = this.action;\n\n if (action) {\n this.action = action.schedule(this, this.waitFor);\n } else {\n this.add(this.action = this.scheduler.schedule(TimeoutWithSubscriber.dispatchTimeout, this.waitFor, this));\n }\n };\n\n TimeoutWithSubscriber.prototype._next = function (value) {\n if (!this.absoluteTimeout) {\n this.scheduleTimeout();\n }\n\n _super.prototype._next.call(this, value);\n };\n\n TimeoutWithSubscriber.prototype._unsubscribe = function () {\n this.action = undefined;\n this.scheduler = null;\n this.withObservable = null;\n };\n\n return TimeoutWithSubscriber;\n}(SimpleOuterSubscriber);","/** PURE_IMPORTS_START _scheduler_async,_util_TimeoutError,_timeoutWith,_observable_throwError PURE_IMPORTS_END */\nimport { async } from '../scheduler/async';\nimport { TimeoutError } from '../util/TimeoutError';\nimport { timeoutWith } from './timeoutWith';\nimport { throwError } from '../observable/throwError';\nexport function timeout(due, scheduler) {\n if (scheduler === void 0) {\n scheduler = async;\n }\n\n return timeoutWith(due, throwError(new TimeoutError()), scheduler);\n}","/** PURE_IMPORTS_START _scheduler_async,_map PURE_IMPORTS_END */\nimport { async } from '../scheduler/async';\nimport { map } from './map';\nexport function timestamp(scheduler) {\n if (scheduler === void 0) {\n scheduler = async;\n }\n\n return map(function (value) {\n return new Timestamp(value, scheduler.now());\n });\n}\n\nvar Timestamp = /*@__PURE__*/function () {\n function Timestamp(value, timestamp) {\n this.value = value;\n this.timestamp = timestamp;\n }\n\n return Timestamp;\n}();\n\nexport { Timestamp };","/** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */\nimport { reduce } from './reduce';\n\nfunction toArrayReducer(arr, item, index) {\n if (index === 0) {\n return [item];\n }\n\n arr.push(item);\n return arr;\n}\n\nexport function toArray() {\n return reduce(toArrayReducer, []);\n}","/** PURE_IMPORTS_START tslib,_Subject,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport function window(windowBoundaries) {\n return function windowOperatorFunction(source) {\n return source.lift(new WindowOperator(windowBoundaries));\n };\n}\n\nvar WindowOperator = /*@__PURE__*/function () {\n function WindowOperator(windowBoundaries) {\n this.windowBoundaries = windowBoundaries;\n }\n\n WindowOperator.prototype.call = function (subscriber, source) {\n var windowSubscriber = new WindowSubscriber(subscriber);\n var sourceSubscription = source.subscribe(windowSubscriber);\n\n if (!sourceSubscription.closed) {\n windowSubscriber.add(innerSubscribe(this.windowBoundaries, new SimpleInnerSubscriber(windowSubscriber)));\n }\n\n return sourceSubscription;\n };\n\n return WindowOperator;\n}();\n\nvar WindowSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(WindowSubscriber, _super);\n\n function WindowSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n\n _this.window = new Subject();\n destination.next(_this.window);\n return _this;\n }\n\n WindowSubscriber.prototype.notifyNext = function () {\n this.openWindow();\n };\n\n WindowSubscriber.prototype.notifyError = function (error) {\n this._error(error);\n };\n\n WindowSubscriber.prototype.notifyComplete = function () {\n this._complete();\n };\n\n WindowSubscriber.prototype._next = function (value) {\n this.window.next(value);\n };\n\n WindowSubscriber.prototype._error = function (err) {\n this.window.error(err);\n this.destination.error(err);\n };\n\n WindowSubscriber.prototype._complete = function () {\n this.window.complete();\n this.destination.complete();\n };\n\n WindowSubscriber.prototype._unsubscribe = function () {\n this.window = null;\n };\n\n WindowSubscriber.prototype.openWindow = function () {\n var prevWindow = this.window;\n\n if (prevWindow) {\n prevWindow.complete();\n }\n\n var destination = this.destination;\n var newWindow = this.window = new Subject();\n destination.next(newWindow);\n };\n\n return WindowSubscriber;\n}(SimpleOuterSubscriber);","/** PURE_IMPORTS_START tslib,_Subscriber,_Subject PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Subject } from '../Subject';\nexport function windowCount(windowSize, startWindowEvery) {\n if (startWindowEvery === void 0) {\n startWindowEvery = 0;\n }\n\n return function windowCountOperatorFunction(source) {\n return source.lift(new WindowCountOperator(windowSize, startWindowEvery));\n };\n}\n\nvar WindowCountOperator = /*@__PURE__*/function () {\n function WindowCountOperator(windowSize, startWindowEvery) {\n this.windowSize = windowSize;\n this.startWindowEvery = startWindowEvery;\n }\n\n WindowCountOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WindowCountSubscriber(subscriber, this.windowSize, this.startWindowEvery));\n };\n\n return WindowCountOperator;\n}();\n\nvar WindowCountSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(WindowCountSubscriber, _super);\n\n function WindowCountSubscriber(destination, windowSize, startWindowEvery) {\n var _this = _super.call(this, destination) || this;\n\n _this.destination = destination;\n _this.windowSize = windowSize;\n _this.startWindowEvery = startWindowEvery;\n _this.windows = [new Subject()];\n _this.count = 0;\n destination.next(_this.windows[0]);\n return _this;\n }\n\n WindowCountSubscriber.prototype._next = function (value) {\n var startWindowEvery = this.startWindowEvery > 0 ? this.startWindowEvery : this.windowSize;\n var destination = this.destination;\n var windowSize = this.windowSize;\n var windows = this.windows;\n var len = windows.length;\n\n for (var i = 0; i < len && !this.closed; i++) {\n windows[i].next(value);\n }\n\n var c = this.count - windowSize + 1;\n\n if (c >= 0 && c % startWindowEvery === 0 && !this.closed) {\n windows.shift().complete();\n }\n\n if (++this.count % startWindowEvery === 0 && !this.closed) {\n var window_1 = new Subject();\n windows.push(window_1);\n destination.next(window_1);\n }\n };\n\n WindowCountSubscriber.prototype._error = function (err) {\n var windows = this.windows;\n\n if (windows) {\n while (windows.length > 0 && !this.closed) {\n windows.shift().error(err);\n }\n }\n\n this.destination.error(err);\n };\n\n WindowCountSubscriber.prototype._complete = function () {\n var windows = this.windows;\n\n if (windows) {\n while (windows.length > 0 && !this.closed) {\n windows.shift().complete();\n }\n }\n\n this.destination.complete();\n };\n\n WindowCountSubscriber.prototype._unsubscribe = function () {\n this.count = 0;\n this.windows = null;\n };\n\n return WindowCountSubscriber;\n}(Subscriber);","/** PURE_IMPORTS_START tslib,_Subject,_scheduler_async,_Subscriber,_util_isNumeric,_util_isScheduler PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { async } from '../scheduler/async';\nimport { Subscriber } from '../Subscriber';\nimport { isNumeric } from '../util/isNumeric';\nimport { isScheduler } from '../util/isScheduler';\nexport function windowTime(windowTimeSpan) {\n var scheduler = async;\n var windowCreationInterval = null;\n var maxWindowSize = Number.POSITIVE_INFINITY;\n\n if (isScheduler(arguments[3])) {\n scheduler = arguments[3];\n }\n\n if (isScheduler(arguments[2])) {\n scheduler = arguments[2];\n } else if (isNumeric(arguments[2])) {\n maxWindowSize = Number(arguments[2]);\n }\n\n if (isScheduler(arguments[1])) {\n scheduler = arguments[1];\n } else if (isNumeric(arguments[1])) {\n windowCreationInterval = Number(arguments[1]);\n }\n\n return function windowTimeOperatorFunction(source) {\n return source.lift(new WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler));\n };\n}\n\nvar WindowTimeOperator = /*@__PURE__*/function () {\n function WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) {\n this.windowTimeSpan = windowTimeSpan;\n this.windowCreationInterval = windowCreationInterval;\n this.maxWindowSize = maxWindowSize;\n this.scheduler = scheduler;\n }\n\n WindowTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WindowTimeSubscriber(subscriber, this.windowTimeSpan, this.windowCreationInterval, this.maxWindowSize, this.scheduler));\n };\n\n return WindowTimeOperator;\n}();\n\nvar CountedSubject = /*@__PURE__*/function (_super) {\n tslib_1.__extends(CountedSubject, _super);\n\n function CountedSubject() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this._numberOfNextedValues = 0;\n return _this;\n }\n\n CountedSubject.prototype.next = function (value) {\n this._numberOfNextedValues++;\n\n _super.prototype.next.call(this, value);\n };\n\n Object.defineProperty(CountedSubject.prototype, \"numberOfNextedValues\", {\n get: function get() {\n return this._numberOfNextedValues;\n },\n enumerable: true,\n configurable: true\n });\n return CountedSubject;\n}(Subject);\n\nvar WindowTimeSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(WindowTimeSubscriber, _super);\n\n function WindowTimeSubscriber(destination, windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) {\n var _this = _super.call(this, destination) || this;\n\n _this.destination = destination;\n _this.windowTimeSpan = windowTimeSpan;\n _this.windowCreationInterval = windowCreationInterval;\n _this.maxWindowSize = maxWindowSize;\n _this.scheduler = scheduler;\n _this.windows = [];\n\n var window = _this.openWindow();\n\n if (windowCreationInterval !== null && windowCreationInterval >= 0) {\n var closeState = {\n subscriber: _this,\n window: window,\n context: null\n };\n var creationState = {\n windowTimeSpan: windowTimeSpan,\n windowCreationInterval: windowCreationInterval,\n subscriber: _this,\n scheduler: scheduler\n };\n\n _this.add(scheduler.schedule(dispatchWindowClose, windowTimeSpan, closeState));\n\n _this.add(scheduler.schedule(dispatchWindowCreation, windowCreationInterval, creationState));\n } else {\n var timeSpanOnlyState = {\n subscriber: _this,\n window: window,\n windowTimeSpan: windowTimeSpan\n };\n\n _this.add(scheduler.schedule(dispatchWindowTimeSpanOnly, windowTimeSpan, timeSpanOnlyState));\n }\n\n return _this;\n }\n\n WindowTimeSubscriber.prototype._next = function (value) {\n var windows = this.windows;\n var len = windows.length;\n\n for (var i = 0; i < len; i++) {\n var window_1 = windows[i];\n\n if (!window_1.closed) {\n window_1.next(value);\n\n if (window_1.numberOfNextedValues >= this.maxWindowSize) {\n this.closeWindow(window_1);\n }\n }\n }\n };\n\n WindowTimeSubscriber.prototype._error = function (err) {\n var windows = this.windows;\n\n while (windows.length > 0) {\n windows.shift().error(err);\n }\n\n this.destination.error(err);\n };\n\n WindowTimeSubscriber.prototype._complete = function () {\n var windows = this.windows;\n\n while (windows.length > 0) {\n var window_2 = windows.shift();\n\n if (!window_2.closed) {\n window_2.complete();\n }\n }\n\n this.destination.complete();\n };\n\n WindowTimeSubscriber.prototype.openWindow = function () {\n var window = new CountedSubject();\n this.windows.push(window);\n var destination = this.destination;\n destination.next(window);\n return window;\n };\n\n WindowTimeSubscriber.prototype.closeWindow = function (window) {\n window.complete();\n var windows = this.windows;\n windows.splice(windows.indexOf(window), 1);\n };\n\n return WindowTimeSubscriber;\n}(Subscriber);\n\nfunction dispatchWindowTimeSpanOnly(state) {\n var subscriber = state.subscriber,\n windowTimeSpan = state.windowTimeSpan,\n window = state.window;\n\n if (window) {\n subscriber.closeWindow(window);\n }\n\n state.window = subscriber.openWindow();\n this.schedule(state, windowTimeSpan);\n}\n\nfunction dispatchWindowCreation(state) {\n var windowTimeSpan = state.windowTimeSpan,\n subscriber = state.subscriber,\n scheduler = state.scheduler,\n windowCreationInterval = state.windowCreationInterval;\n var window = subscriber.openWindow();\n var action = this;\n var context = {\n action: action,\n subscription: null\n };\n var timeSpanState = {\n subscriber: subscriber,\n window: window,\n context: context\n };\n context.subscription = scheduler.schedule(dispatchWindowClose, windowTimeSpan, timeSpanState);\n action.add(context.subscription);\n action.schedule(state, windowCreationInterval);\n}\n\nfunction dispatchWindowClose(state) {\n var subscriber = state.subscriber,\n window = state.window,\n context = state.context;\n\n if (context && context.action && context.subscription) {\n context.action.remove(context.subscription);\n }\n\n subscriber.closeWindow(window);\n}","/** PURE_IMPORTS_START tslib,_Subject,_Subscription,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { Subscription } from '../Subscription';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function windowToggle(openings, closingSelector) {\n return function (source) {\n return source.lift(new WindowToggleOperator(openings, closingSelector));\n };\n}\n\nvar WindowToggleOperator = /*@__PURE__*/function () {\n function WindowToggleOperator(openings, closingSelector) {\n this.openings = openings;\n this.closingSelector = closingSelector;\n }\n\n WindowToggleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WindowToggleSubscriber(subscriber, this.openings, this.closingSelector));\n };\n\n return WindowToggleOperator;\n}();\n\nvar WindowToggleSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(WindowToggleSubscriber, _super);\n\n function WindowToggleSubscriber(destination, openings, closingSelector) {\n var _this = _super.call(this, destination) || this;\n\n _this.openings = openings;\n _this.closingSelector = closingSelector;\n _this.contexts = [];\n\n _this.add(_this.openSubscription = subscribeToResult(_this, openings, openings));\n\n return _this;\n }\n\n WindowToggleSubscriber.prototype._next = function (value) {\n var contexts = this.contexts;\n\n if (contexts) {\n var len = contexts.length;\n\n for (var i = 0; i < len; i++) {\n contexts[i].window.next(value);\n }\n }\n };\n\n WindowToggleSubscriber.prototype._error = function (err) {\n var contexts = this.contexts;\n this.contexts = null;\n\n if (contexts) {\n var len = contexts.length;\n var index = -1;\n\n while (++index < len) {\n var context_1 = contexts[index];\n context_1.window.error(err);\n context_1.subscription.unsubscribe();\n }\n }\n\n _super.prototype._error.call(this, err);\n };\n\n WindowToggleSubscriber.prototype._complete = function () {\n var contexts = this.contexts;\n this.contexts = null;\n\n if (contexts) {\n var len = contexts.length;\n var index = -1;\n\n while (++index < len) {\n var context_2 = contexts[index];\n context_2.window.complete();\n context_2.subscription.unsubscribe();\n }\n }\n\n _super.prototype._complete.call(this);\n };\n\n WindowToggleSubscriber.prototype._unsubscribe = function () {\n var contexts = this.contexts;\n this.contexts = null;\n\n if (contexts) {\n var len = contexts.length;\n var index = -1;\n\n while (++index < len) {\n var context_3 = contexts[index];\n context_3.window.unsubscribe();\n context_3.subscription.unsubscribe();\n }\n }\n };\n\n WindowToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n if (outerValue === this.openings) {\n var closingNotifier = void 0;\n\n try {\n var closingSelector = this.closingSelector;\n closingNotifier = closingSelector(innerValue);\n } catch (e) {\n return this.error(e);\n }\n\n var window_1 = new Subject();\n var subscription = new Subscription();\n var context_4 = {\n window: window_1,\n subscription: subscription\n };\n this.contexts.push(context_4);\n var innerSubscription = subscribeToResult(this, closingNotifier, context_4);\n\n if (innerSubscription.closed) {\n this.closeWindow(this.contexts.length - 1);\n } else {\n innerSubscription.context = context_4;\n subscription.add(innerSubscription);\n }\n\n this.destination.next(window_1);\n } else {\n this.closeWindow(this.contexts.indexOf(outerValue));\n }\n };\n\n WindowToggleSubscriber.prototype.notifyError = function (err) {\n this.error(err);\n };\n\n WindowToggleSubscriber.prototype.notifyComplete = function (inner) {\n if (inner !== this.openSubscription) {\n this.closeWindow(this.contexts.indexOf(inner.context));\n }\n };\n\n WindowToggleSubscriber.prototype.closeWindow = function (index) {\n if (index === -1) {\n return;\n }\n\n var contexts = this.contexts;\n var context = contexts[index];\n var window = context.window,\n subscription = context.subscription;\n contexts.splice(index, 1);\n window.complete();\n subscription.unsubscribe();\n };\n\n return WindowToggleSubscriber;\n}(OuterSubscriber);","/** PURE_IMPORTS_START tslib,_Subject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function windowWhen(closingSelector) {\n return function windowWhenOperatorFunction(source) {\n return source.lift(new WindowOperator(closingSelector));\n };\n}\n\nvar WindowOperator = /*@__PURE__*/function () {\n function WindowOperator(closingSelector) {\n this.closingSelector = closingSelector;\n }\n\n WindowOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WindowSubscriber(subscriber, this.closingSelector));\n };\n\n return WindowOperator;\n}();\n\nvar WindowSubscriber = /*@__PURE__*/function (_super) {\n tslib_1.__extends(WindowSubscriber, _super);\n\n function WindowSubscriber(destination, closingSelector) {\n var _this = _super.call(this, destination) || this;\n\n _this.destination = destination;\n _this.closingSelector = closingSelector;\n\n _this.openWindow();\n\n return _this;\n }\n\n WindowSubscriber.prototype.notifyNext = function (_outerValue, _innerValue, _outerIndex, _innerIndex, innerSub) {\n this.openWindow(innerSub);\n };\n\n WindowSubscriber.prototype.notifyError = function (error) {\n this._error(error);\n };\n\n WindowSubscriber.prototype.notifyComplete = function (innerSub) {\n this.openWindow(innerSub);\n };\n\n WindowSubscriber.prototype._next = function (value) {\n this.window.next(value);\n };\n\n WindowSubscriber.prototype._error = function (err) {\n this.window.error(err);\n this.destination.error(err);\n this.unsubscribeClosingNotification();\n };\n\n WindowSubscriber.prototype._complete = function () {\n this.window.complete();\n this.destination.complete();\n this.unsubscribeClosingNotification();\n };\n\n WindowSubscriber.prototype.unsubscribeClosingNotification = function () {\n if (this.closingNotification) {\n this.closingNotification.unsubscribe();\n }\n };\n\n WindowSubscriber.prototype.openWindow = function (innerSub) {\n if (innerSub === void 0) {\n innerSub = null;\n }\n\n if (innerSub) {\n this.remove(innerSub);\n innerSub.unsubscribe();\n }\n\n var prevWindow = this.window;\n\n if (prevWindow) {\n prevWindow.complete();\n }\n\n var window = this.window = new Subject();\n this.destination.next(window);\n var closingNotifier;\n\n try {\n var closingSelector = this.closingSelector;\n closingNotifier = closingSelector();\n } catch (e) {\n this.destination.error(e);\n this.window.error(e);\n return;\n }\n\n this.add(this.closingNotification = subscribeToResult(this, closingNotifier));\n };\n\n return WindowSubscriber;\n}(OuterSubscriber);","/** PURE_IMPORTS_START _observable_zip PURE_IMPORTS_END */\nimport { zip as zipStatic } from '../observable/zip';\nexport function zip() {\n var observables = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n\n return function zipOperatorFunction(source) {\n return source.lift.call(zipStatic.apply(void 0, [source].concat(observables)));\n };\n}","/** PURE_IMPORTS_START _observable_zip PURE_IMPORTS_END */\nimport { ZipOperator } from '../observable/zip';\nexport function zipAll(project) {\n return function (source) {\n return source.lift(new ZipOperator(project));\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar canReportError_1 = require(\"./util/canReportError\");\n\nvar toSubscriber_1 = require(\"./util/toSubscriber\");\n\nvar observable_1 = require(\"./symbol/observable\");\n\nvar pipe_1 = require(\"./util/pipe\");\n\nvar config_1 = require(\"./config\");\n\nvar Observable = function () {\n function Observable(subscribe) {\n this._isScalar = false;\n\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var operator = this.operator;\n var sink = toSubscriber_1.toSubscriber(observerOrNext, error, complete);\n\n if (operator) {\n sink.add(operator.call(sink, this.source));\n } else {\n sink.add(this.source || config_1.config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable ? this._subscribe(sink) : this._trySubscribe(sink));\n }\n\n if (config_1.config.useDeprecatedSynchronousErrorHandling) {\n if (sink.syncErrorThrowable) {\n sink.syncErrorThrowable = false;\n\n if (sink.syncErrorThrown) {\n throw sink.syncErrorValue;\n }\n }\n }\n\n return sink;\n };\n\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n } catch (err) {\n if (config_1.config.useDeprecatedSynchronousErrorHandling) {\n sink.syncErrorThrown = true;\n sink.syncErrorValue = err;\n }\n\n if (canReportError_1.canReportError(sink)) {\n sink.error(err);\n } else {\n console.warn(err);\n }\n }\n };\n\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscription;\n subscription = _this.subscribe(function (value) {\n try {\n next(value);\n } catch (err) {\n reject(err);\n\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n }, reject, resolve);\n });\n };\n\n Observable.prototype._subscribe = function (subscriber) {\n var source = this.source;\n return source && source.subscribe(subscriber);\n };\n\n Observable.prototype[observable_1.observable] = function () {\n return this;\n };\n\n Observable.prototype.pipe = function () {\n var operations = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n\n if (operations.length === 0) {\n return this;\n }\n\n return pipe_1.pipeFromArray(operations)(this);\n };\n\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n\n _this.subscribe(function (x) {\n return value = x;\n }, function (err) {\n return reject(err);\n }, function () {\n return resolve(value);\n });\n });\n };\n\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n\n return Observable;\n}();\n\nexports.Observable = Observable;\n\nfunction getPromiseCtor(promiseCtor) {\n if (!promiseCtor) {\n promiseCtor = config_1.config.Promise || Promise;\n }\n\n if (!promiseCtor) {\n throw new Error('no Promise impl found');\n }\n\n return promiseCtor;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar config_1 = require(\"./config\");\n\nvar hostReportError_1 = require(\"./util/hostReportError\");\n\nexports.empty = {\n closed: true,\n next: function next(value) {},\n error: function error(err) {\n if (config_1.config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n } else {\n hostReportError_1.hostReportError(err);\n }\n },\n complete: function complete() {}\n};","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar Observable_1 = require(\"./Observable\");\n\nvar Subscriber_1 = require(\"./Subscriber\");\n\nvar Subscription_1 = require(\"./Subscription\");\n\nvar ObjectUnsubscribedError_1 = require(\"./util/ObjectUnsubscribedError\");\n\nvar SubjectSubscription_1 = require(\"./SubjectSubscription\");\n\nvar rxSubscriber_1 = require(\"../internal/symbol/rxSubscriber\");\n\nvar SubjectSubscriber = function (_super) {\n __extends(SubjectSubscriber, _super);\n\n function SubjectSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n\n _this.destination = destination;\n return _this;\n }\n\n return SubjectSubscriber;\n}(Subscriber_1.Subscriber);\n\nexports.SubjectSubscriber = SubjectSubscriber;\n\nvar Subject = function (_super) {\n __extends(Subject, _super);\n\n function Subject() {\n var _this = _super.call(this) || this;\n\n _this.observers = [];\n _this.closed = false;\n _this.isStopped = false;\n _this.hasError = false;\n _this.thrownError = null;\n return _this;\n }\n\n Subject.prototype[rxSubscriber_1.rxSubscriber] = function () {\n return new SubjectSubscriber(this);\n };\n\n Subject.prototype.lift = function (operator) {\n var subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n };\n\n Subject.prototype.next = function (value) {\n if (this.closed) {\n throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();\n }\n\n if (!this.isStopped) {\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n\n for (var i = 0; i < len; i++) {\n copy[i].next(value);\n }\n }\n };\n\n Subject.prototype.error = function (err) {\n if (this.closed) {\n throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();\n }\n\n this.hasError = true;\n this.thrownError = err;\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n\n for (var i = 0; i < len; i++) {\n copy[i].error(err);\n }\n\n this.observers.length = 0;\n };\n\n Subject.prototype.complete = function () {\n if (this.closed) {\n throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();\n }\n\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n\n for (var i = 0; i < len; i++) {\n copy[i].complete();\n }\n\n this.observers.length = 0;\n };\n\n Subject.prototype.unsubscribe = function () {\n this.isStopped = true;\n this.closed = true;\n this.observers = null;\n };\n\n Subject.prototype._trySubscribe = function (subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();\n } else {\n return _super.prototype._trySubscribe.call(this, subscriber);\n }\n };\n\n Subject.prototype._subscribe = function (subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();\n } else if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription_1.Subscription.EMPTY;\n } else if (this.isStopped) {\n subscriber.complete();\n return Subscription_1.Subscription.EMPTY;\n } else {\n this.observers.push(subscriber);\n return new SubjectSubscription_1.SubjectSubscription(this, subscriber);\n }\n };\n\n Subject.prototype.asObservable = function () {\n var observable = new Observable_1.Observable();\n observable.source = this;\n return observable;\n };\n\n Subject.create = function (destination, source) {\n return new AnonymousSubject(destination, source);\n };\n\n return Subject;\n}(Observable_1.Observable);\n\nexports.Subject = Subject;\n\nvar AnonymousSubject = function (_super) {\n __extends(AnonymousSubject, _super);\n\n function AnonymousSubject(destination, source) {\n var _this = _super.call(this) || this;\n\n _this.destination = destination;\n _this.source = source;\n return _this;\n }\n\n AnonymousSubject.prototype.next = function (value) {\n var destination = this.destination;\n\n if (destination && destination.next) {\n destination.next(value);\n }\n };\n\n AnonymousSubject.prototype.error = function (err) {\n var destination = this.destination;\n\n if (destination && destination.error) {\n this.destination.error(err);\n }\n };\n\n AnonymousSubject.prototype.complete = function () {\n var destination = this.destination;\n\n if (destination && destination.complete) {\n this.destination.complete();\n }\n };\n\n AnonymousSubject.prototype._subscribe = function (subscriber) {\n var source = this.source;\n\n if (source) {\n return this.source.subscribe(subscriber);\n } else {\n return Subscription_1.Subscription.EMPTY;\n }\n };\n\n return AnonymousSubject;\n}(Subject);\n\nexports.AnonymousSubject = AnonymousSubject;","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar Subscription_1 = require(\"./Subscription\");\n\nvar SubjectSubscription = function (_super) {\n __extends(SubjectSubscription, _super);\n\n function SubjectSubscription(subject, subscriber) {\n var _this = _super.call(this) || this;\n\n _this.subject = subject;\n _this.subscriber = subscriber;\n _this.closed = false;\n return _this;\n }\n\n SubjectSubscription.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n\n this.closed = true;\n var subject = this.subject;\n var observers = subject.observers;\n this.subject = null;\n\n if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n return;\n }\n\n var subscriberIndex = observers.indexOf(this.subscriber);\n\n if (subscriberIndex !== -1) {\n observers.splice(subscriberIndex, 1);\n }\n };\n\n return SubjectSubscription;\n}(Subscription_1.Subscription);\n\nexports.SubjectSubscription = SubjectSubscription;","\"use strict\";\n\nvar __extends = this && this.__extends || function () {\n var _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n };\n\n return function (d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar isFunction_1 = require(\"./util/isFunction\");\n\nvar Observer_1 = require(\"./Observer\");\n\nvar Subscription_1 = require(\"./Subscription\");\n\nvar rxSubscriber_1 = require(\"../internal/symbol/rxSubscriber\");\n\nvar config_1 = require(\"./config\");\n\nvar hostReportError_1 = require(\"./util/hostReportError\");\n\nvar Subscriber = function (_super) {\n __extends(Subscriber, _super);\n\n function Subscriber(destinationOrNext, error, complete) {\n var _this = _super.call(this) || this;\n\n _this.syncErrorValue = null;\n _this.syncErrorThrown = false;\n _this.syncErrorThrowable = false;\n _this.isStopped = false;\n\n switch (arguments.length) {\n case 0:\n _this.destination = Observer_1.empty;\n break;\n\n case 1:\n if (!destinationOrNext) {\n _this.destination = Observer_1.empty;\n break;\n }\n\n if (typeof destinationOrNext === 'object') {\n if (destinationOrNext instanceof Subscriber) {\n _this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;\n _this.destination = destinationOrNext;\n destinationOrNext.add(_this);\n } else {\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext);\n }\n\n break;\n }\n\n default:\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext, error, complete);\n break;\n }\n\n return _this;\n }\n\n Subscriber.prototype[rxSubscriber_1.rxSubscriber] = function () {\n return this;\n };\n\n Subscriber.create = function (next, error, complete) {\n var subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n };\n\n Subscriber.prototype.next = function (value) {\n if (!this.isStopped) {\n this._next(value);\n }\n };\n\n Subscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n this.isStopped = true;\n\n this._error(err);\n }\n };\n\n Subscriber.prototype.complete = function () {\n if (!this.isStopped) {\n this.isStopped = true;\n\n this._complete();\n }\n };\n\n Subscriber.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n\n this.isStopped = true;\n\n _super.prototype.unsubscribe.call(this);\n };\n\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n\n Subscriber.prototype._error = function (err) {\n this.destination.error(err);\n this.unsubscribe();\n };\n\n Subscriber.prototype._complete = function () {\n this.destination.complete();\n this.unsubscribe();\n };\n\n Subscriber.prototype._unsubscribeAndRecycle = function () {\n var _parentOrParents = this._parentOrParents;\n this._parentOrParents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parentOrParents = _parentOrParents;\n return this;\n };\n\n return Subscriber;\n}(Subscription_1.Subscription);\n\nexports.Subscriber = Subscriber;\n\nvar SafeSubscriber = function (_super) {\n __extends(SafeSubscriber, _super);\n\n function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n\n _this._parentSubscriber = _parentSubscriber;\n var next;\n var context = _this;\n\n if (isFunction_1.isFunction(observerOrNext)) {\n next = observerOrNext;\n } else if (observerOrNext) {\n next = observerOrNext.next;\n error = observerOrNext.error;\n complete = observerOrNext.complete;\n\n if (observerOrNext !== Observer_1.empty) {\n context = Object.create(observerOrNext);\n\n if (isFunction_1.isFunction(context.unsubscribe)) {\n _this.add(context.unsubscribe.bind(context));\n }\n\n context.unsubscribe = _this.unsubscribe.bind(_this);\n }\n }\n\n _this._context = context;\n _this._next = next;\n _this._error = error;\n _this._complete = complete;\n return _this;\n }\n\n SafeSubscriber.prototype.next = function (value) {\n if (!this.isStopped && this._next) {\n var _parentSubscriber = this._parentSubscriber;\n\n if (!config_1.config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n } else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n };\n\n SafeSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n var useDeprecatedSynchronousErrorHandling = config_1.config.useDeprecatedSynchronousErrorHandling;\n\n if (this._error) {\n if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n\n this.unsubscribe();\n } else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n\n this.unsubscribe();\n }\n } else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n\n if (useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n\n hostReportError_1.hostReportError(err);\n } else {\n if (useDeprecatedSynchronousErrorHandling) {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n } else {\n hostReportError_1.hostReportError(err);\n }\n\n this.unsubscribe();\n }\n }\n };\n\n SafeSubscriber.prototype.complete = function () {\n var _this = this;\n\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n\n if (this._complete) {\n var wrappedComplete = function wrappedComplete() {\n return _this._complete.call(_this._context);\n };\n\n if (!config_1.config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n\n this.unsubscribe();\n } else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n\n this.unsubscribe();\n }\n } else {\n this.unsubscribe();\n }\n }\n };\n\n SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) {\n try {\n fn.call(this._context, value);\n } catch (err) {\n this.unsubscribe();\n\n if (config_1.config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n } else {\n hostReportError_1.hostReportError(err);\n }\n }\n };\n\n SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) {\n if (!config_1.config.useDeprecatedSynchronousErrorHandling) {\n throw new Error('bad call');\n }\n\n try {\n fn.call(this._context, value);\n } catch (err) {\n if (config_1.config.useDeprecatedSynchronousErrorHandling) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n } else {\n hostReportError_1.hostReportError(err);\n return true;\n }\n }\n\n return false;\n };\n\n SafeSubscriber.prototype._unsubscribe = function () {\n var _parentSubscriber = this._parentSubscriber;\n this._context = null;\n this._parentSubscriber = null;\n\n _parentSubscriber.unsubscribe();\n };\n\n return SafeSubscriber;\n}(Subscriber);\n\nexports.SafeSubscriber = SafeSubscriber;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar isArray_1 = require(\"./util/isArray\");\n\nvar isObject_1 = require(\"./util/isObject\");\n\nvar isFunction_1 = require(\"./util/isFunction\");\n\nvar UnsubscriptionError_1 = require(\"./util/UnsubscriptionError\");\n\nvar Subscription = function () {\n function Subscription(unsubscribe) {\n this.closed = false;\n this._parentOrParents = null;\n this._subscriptions = null;\n\n if (unsubscribe) {\n this._ctorUnsubscribe = true;\n this._unsubscribe = unsubscribe;\n }\n }\n\n Subscription.prototype.unsubscribe = function () {\n var errors;\n\n if (this.closed) {\n return;\n }\n\n var _a = this,\n _parentOrParents = _a._parentOrParents,\n _ctorUnsubscribe = _a._ctorUnsubscribe,\n _unsubscribe = _a._unsubscribe,\n _subscriptions = _a._subscriptions;\n\n this.closed = true;\n this._parentOrParents = null;\n this._subscriptions = null;\n\n if (_parentOrParents instanceof Subscription) {\n _parentOrParents.remove(this);\n } else if (_parentOrParents !== null) {\n for (var index = 0; index < _parentOrParents.length; ++index) {\n var parent_1 = _parentOrParents[index];\n parent_1.remove(this);\n }\n }\n\n if (isFunction_1.isFunction(_unsubscribe)) {\n if (_ctorUnsubscribe) {\n this._unsubscribe = undefined;\n }\n\n try {\n _unsubscribe.call(this);\n } catch (e) {\n errors = e instanceof UnsubscriptionError_1.UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e];\n }\n }\n\n if (isArray_1.isArray(_subscriptions)) {\n var index = -1;\n var len = _subscriptions.length;\n\n while (++index < len) {\n var sub = _subscriptions[index];\n\n if (isObject_1.isObject(sub)) {\n try {\n sub.unsubscribe();\n } catch (e) {\n errors = errors || [];\n\n if (e instanceof UnsubscriptionError_1.UnsubscriptionError) {\n errors = errors.concat(flattenUnsubscriptionErrors(e.errors));\n } else {\n errors.push(e);\n }\n }\n }\n }\n }\n\n if (errors) {\n throw new UnsubscriptionError_1.UnsubscriptionError(errors);\n }\n };\n\n Subscription.prototype.add = function (teardown) {\n var subscription = teardown;\n\n if (!teardown) {\n return Subscription.EMPTY;\n }\n\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(teardown);\n\n case 'object':\n if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {\n return subscription;\n } else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n } else if (!(subscription instanceof Subscription)) {\n var tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n\n break;\n\n default:\n {\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n }\n\n var _parentOrParents = subscription._parentOrParents;\n\n if (_parentOrParents === null) {\n subscription._parentOrParents = this;\n } else if (_parentOrParents instanceof Subscription) {\n if (_parentOrParents === this) {\n return subscription;\n }\n\n subscription._parentOrParents = [_parentOrParents, this];\n } else if (_parentOrParents.indexOf(this) === -1) {\n _parentOrParents.push(this);\n } else {\n return subscription;\n }\n\n var subscriptions = this._subscriptions;\n\n if (subscriptions === null) {\n this._subscriptions = [subscription];\n } else {\n subscriptions.push(subscription);\n }\n\n return subscription;\n };\n\n Subscription.prototype.remove = function (subscription) {\n var subscriptions = this._subscriptions;\n\n if (subscriptions) {\n var subscriptionIndex = subscriptions.indexOf(subscription);\n\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n };\n\n Subscription.EMPTY = function (empty) {\n empty.closed = true;\n return empty;\n }(new Subscription());\n\n return Subscription;\n}();\n\nexports.Subscription = Subscription;\n\nfunction flattenUnsubscriptionErrors(errors) {\n return errors.reduce(function (errs, err) {\n return errs.concat(err instanceof UnsubscriptionError_1.UnsubscriptionError ? err.errors : err);\n }, []);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar _enable_super_gross_mode_that_will_cause_bad_things = false;\nexports.config = {\n Promise: undefined,\n\n set useDeprecatedSynchronousErrorHandling(value) {\n if (value) {\n var error = new Error();\n console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n } else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n console.log('RxJS: Back to a better error behavior. Thank you. <3');\n }\n\n _enable_super_gross_mode_that_will_cause_bad_things = value;\n },\n\n get useDeprecatedSynchronousErrorHandling() {\n return _enable_super_gross_mode_that_will_cause_bad_things;\n }\n\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.observable = function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n}();","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.rxSubscriber = function () {\n return typeof Symbol === 'function' ? Symbol('rxSubscriber') : '@@rxSubscriber_' + Math.random();\n}();\n\nexports.$$rxSubscriber = exports.rxSubscriber;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar ObjectUnsubscribedErrorImpl = function () {\n function ObjectUnsubscribedErrorImpl() {\n Error.call(this);\n this.message = 'object unsubscribed';\n this.name = 'ObjectUnsubscribedError';\n return this;\n }\n\n ObjectUnsubscribedErrorImpl.prototype = Object.create(Error.prototype);\n return ObjectUnsubscribedErrorImpl;\n}();\n\nexports.ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar UnsubscriptionErrorImpl = function () {\n function UnsubscriptionErrorImpl(errors) {\n Error.call(this);\n this.message = errors ? errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) {\n return i + 1 + \") \" + err.toString();\n }).join('\\n ') : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n return this;\n }\n\n UnsubscriptionErrorImpl.prototype = Object.create(Error.prototype);\n return UnsubscriptionErrorImpl;\n}();\n\nexports.UnsubscriptionError = UnsubscriptionErrorImpl;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar Subscriber_1 = require(\"../Subscriber\");\n\nfunction canReportError(observer) {\n while (observer) {\n var _a = observer,\n closed_1 = _a.closed,\n destination = _a.destination,\n isStopped = _a.isStopped;\n\n if (closed_1 || isStopped) {\n return false;\n } else if (destination && destination instanceof Subscriber_1.Subscriber) {\n observer = destination;\n } else {\n observer = null;\n }\n }\n\n return true;\n}\n\nexports.canReportError = canReportError;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction hostReportError(err) {\n setTimeout(function () {\n throw err;\n }, 0);\n}\n\nexports.hostReportError = hostReportError;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction identity(x) {\n return x;\n}\n\nexports.identity = identity;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.isArray = function () {\n return Array.isArray || function (x) {\n return x && typeof x.length === 'number';\n };\n}();","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\nexports.isFunction = isFunction;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction isObject(x) {\n return x !== null && typeof x === 'object';\n}\n\nexports.isObject = isObject;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar identity_1 = require(\"./identity\");\n\nfunction pipe() {\n var fns = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n\n return pipeFromArray(fns);\n}\n\nexports.pipe = pipe;\n\nfunction pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity_1.identity;\n }\n\n if (fns.length === 1) {\n return fns[0];\n }\n\n return function piped(input) {\n return fns.reduce(function (prev, fn) {\n return fn(prev);\n }, input);\n };\n}\n\nexports.pipeFromArray = pipeFromArray;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar Subscriber_1 = require(\"../Subscriber\");\n\nvar rxSubscriber_1 = require(\"../symbol/rxSubscriber\");\n\nvar Observer_1 = require(\"../Observer\");\n\nfunction toSubscriber(nextOrObserver, error, complete) {\n if (nextOrObserver) {\n if (nextOrObserver instanceof Subscriber_1.Subscriber) {\n return nextOrObserver;\n }\n\n if (nextOrObserver[rxSubscriber_1.rxSubscriber]) {\n return nextOrObserver[rxSubscriber_1.rxSubscriber]();\n }\n }\n\n if (!nextOrObserver && !error && !complete) {\n return new Subscriber_1.Subscriber(Observer_1.empty);\n }\n\n return new Subscriber_1.Subscriber(nextOrObserver, error, complete);\n}\n\nexports.toSubscriber = toSubscriber;","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport function __createBinding(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}\nexport function __exportStar(m, exports) {\n for (var p in m) {\n if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\n;\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }\n result.default = mod;\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n}\nexport function __classPrivateFieldGet(receiver, privateMap) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to get private field on non-instance\");\n }\n\n return privateMap.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to set private field on non-instance\");\n }\n\n privateMap.set(receiver, value);\n return value;\n}","'use strict';\n\nmodule.exports = function (string, separator) {\n if (!(typeof string === 'string' && typeof separator === 'string')) {\n throw new TypeError('Expected the arguments to be of type `string`');\n }\n\n if (separator === '') {\n return [string];\n }\n\n var separatorIndex = string.indexOf(separator);\n\n if (separatorIndex === -1) {\n return [string];\n }\n\n return [string.slice(0, separatorIndex), string.slice(separatorIndex + separator.length)];\n};","'use strict';\n\nmodule.exports = function (str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (x) {\n return \"%\".concat(x.charCodeAt(0).toString(16).toUpperCase());\n });\n};","\"use strict\";\n\nfunction hash(str) {\n var hash = 5381,\n i = str.length;\n\n while (i) {\n hash = hash * 33 ^ str.charCodeAt(--i);\n }\n /* JavaScript does bitwise operations (like XOR, above) on 32-bit signed\n * integers. Since we want the results to be always positive, convert the\n * signed int to an unsigned by doing an unsigned bitshift. */\n\n\n return hash >>> 0;\n}\n\nmodule.exports = hash;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\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, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n/*\nBased on Glamor's sheet\nhttps://github.com/threepointone/glamor/blob/667b480d31b3721a905021b26e1290ce92ca2879/src/sheet.js\n*/\n\n\nvar isProd = typeof process !== 'undefined' && process.env && process.env.NODE_ENV === 'production';\n\nvar isString = function isString(o) {\n return Object.prototype.toString.call(o) === '[object String]';\n};\n\nvar StyleSheet = /*#__PURE__*/function () {\n function StyleSheet(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$name = _ref.name,\n name = _ref$name === void 0 ? 'stylesheet' : _ref$name,\n _ref$optimizeForSpeed = _ref.optimizeForSpeed,\n optimizeForSpeed = _ref$optimizeForSpeed === void 0 ? isProd : _ref$optimizeForSpeed,\n _ref$isBrowser = _ref.isBrowser,\n isBrowser = _ref$isBrowser === void 0 ? typeof window !== 'undefined' : _ref$isBrowser;\n\n invariant(isString(name), '`name` must be a string');\n this._name = name;\n this._deletedRulePlaceholder = \"#\" + name + \"-deleted-rule____{}\";\n invariant(typeof optimizeForSpeed === 'boolean', '`optimizeForSpeed` must be a boolean');\n this._optimizeForSpeed = optimizeForSpeed;\n this._isBrowser = isBrowser;\n this._serverSheet = undefined;\n this._tags = [];\n this._injected = false;\n this._rulesCount = 0;\n var node = this._isBrowser && document.querySelector('meta[property=\"csp-nonce\"]');\n this._nonce = node ? node.getAttribute('content') : null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.setOptimizeForSpeed = function setOptimizeForSpeed(bool) {\n invariant(typeof bool === 'boolean', '`setOptimizeForSpeed` accepts a boolean');\n invariant(this._rulesCount === 0, 'optimizeForSpeed cannot be when rules have already been inserted');\n this.flush();\n this._optimizeForSpeed = bool;\n this.inject();\n };\n\n _proto.isOptimizeForSpeed = function isOptimizeForSpeed() {\n return this._optimizeForSpeed;\n };\n\n _proto.inject = function inject() {\n var _this = this;\n\n invariant(!this._injected, 'sheet already injected');\n this._injected = true;\n\n if (this._isBrowser && this._optimizeForSpeed) {\n this._tags[0] = this.makeStyleTag(this._name);\n this._optimizeForSpeed = 'insertRule' in this.getSheet();\n\n if (!this._optimizeForSpeed) {\n if (!isProd) {\n console.warn('StyleSheet: optimizeForSpeed mode not supported falling back to standard mode.');\n }\n\n this.flush();\n this._injected = true;\n }\n\n return;\n }\n\n this._serverSheet = {\n cssRules: [],\n insertRule: function insertRule(rule, index) {\n if (typeof index === 'number') {\n _this._serverSheet.cssRules[index] = {\n cssText: rule\n };\n } else {\n _this._serverSheet.cssRules.push({\n cssText: rule\n });\n }\n\n return index;\n },\n deleteRule: function deleteRule(index) {\n _this._serverSheet.cssRules[index] = null;\n }\n };\n };\n\n _proto.getSheetForTag = function getSheetForTag(tag) {\n if (tag.sheet) {\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n return document.styleSheets[i];\n }\n }\n };\n\n _proto.getSheet = function getSheet() {\n return this.getSheetForTag(this._tags[this._tags.length - 1]);\n };\n\n _proto.insertRule = function insertRule(rule, index) {\n invariant(isString(rule), '`insertRule` accepts only strings');\n\n if (!this._isBrowser) {\n if (typeof index !== 'number') {\n index = this._serverSheet.cssRules.length;\n }\n\n this._serverSheet.insertRule(rule, index);\n\n return this._rulesCount++;\n }\n\n if (this._optimizeForSpeed) {\n var sheet = this.getSheet();\n\n if (typeof index !== 'number') {\n index = sheet.cssRules.length;\n } // this weirdness for perf, and chrome's weird bug\n // https://stackoverflow.com/questions/20007992/chrome-suddenly-stopped-accepting-insertrule\n\n\n try {\n sheet.insertRule(rule, index);\n } catch (error) {\n if (!isProd) {\n console.warn(\"StyleSheet: illegal rule: \\n\\n\" + rule + \"\\n\\nSee https://stackoverflow.com/q/20007992 for more info\");\n }\n\n return -1;\n }\n } else {\n var insertionPoint = this._tags[index];\n\n this._tags.push(this.makeStyleTag(this._name, rule, insertionPoint));\n }\n\n return this._rulesCount++;\n };\n\n _proto.replaceRule = function replaceRule(index, rule) {\n if (this._optimizeForSpeed || !this._isBrowser) {\n var sheet = this._isBrowser ? this.getSheet() : this._serverSheet;\n\n if (!rule.trim()) {\n rule = this._deletedRulePlaceholder;\n }\n\n if (!sheet.cssRules[index]) {\n // @TBD Should we throw an error?\n return index;\n }\n\n sheet.deleteRule(index);\n\n try {\n sheet.insertRule(rule, index);\n } catch (error) {\n if (!isProd) {\n console.warn(\"StyleSheet: illegal rule: \\n\\n\" + rule + \"\\n\\nSee https://stackoverflow.com/q/20007992 for more info\");\n } // In order to preserve the indices we insert a deleteRulePlaceholder\n\n\n sheet.insertRule(this._deletedRulePlaceholder, index);\n }\n } else {\n var tag = this._tags[index];\n invariant(tag, \"old rule at index `\" + index + \"` not found\");\n tag.textContent = rule;\n }\n\n return index;\n };\n\n _proto.deleteRule = function deleteRule(index) {\n if (!this._isBrowser) {\n this._serverSheet.deleteRule(index);\n\n return;\n }\n\n if (this._optimizeForSpeed) {\n this.replaceRule(index, '');\n } else {\n var tag = this._tags[index];\n invariant(tag, \"rule at index `\" + index + \"` not found\");\n tag.parentNode.removeChild(tag);\n this._tags[index] = null;\n }\n };\n\n _proto.flush = function flush() {\n this._injected = false;\n this._rulesCount = 0;\n\n if (this._isBrowser) {\n this._tags.forEach(function (tag) {\n return tag && tag.parentNode.removeChild(tag);\n });\n\n this._tags = [];\n } else {\n // simpler on server\n this._serverSheet.cssRules = [];\n }\n };\n\n _proto.cssRules = function cssRules() {\n var _this2 = this;\n\n if (!this._isBrowser) {\n return this._serverSheet.cssRules;\n }\n\n return this._tags.reduce(function (rules, tag) {\n if (tag) {\n rules = rules.concat(Array.prototype.map.call(_this2.getSheetForTag(tag).cssRules, function (rule) {\n return rule.cssText === _this2._deletedRulePlaceholder ? null : rule;\n }));\n } else {\n rules.push(null);\n }\n\n return rules;\n }, []);\n };\n\n _proto.makeStyleTag = function makeStyleTag(name, cssString, relativeToTag) {\n if (cssString) {\n invariant(isString(cssString), 'makeStyleTag acceps only strings as second parameter');\n }\n\n var tag = document.createElement('style');\n if (this._nonce) tag.setAttribute('nonce', this._nonce);\n tag.type = 'text/css';\n tag.setAttribute(\"data-\" + name, '');\n\n if (cssString) {\n tag.appendChild(document.createTextNode(cssString));\n }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n\n if (relativeToTag) {\n head.insertBefore(tag, relativeToTag);\n } else {\n head.appendChild(tag);\n }\n\n return tag;\n };\n\n _createClass(StyleSheet, [{\n key: \"length\",\n get: function get() {\n return this._rulesCount;\n }\n }]);\n\n return StyleSheet;\n}();\n\nexports[\"default\"] = StyleSheet;\n\nfunction invariant(condition, message) {\n if (!condition) {\n throw new Error(\"StyleSheet: \" + message + \".\");\n }\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.flush = flush;\nexports[\"default\"] = void 0;\n\nvar _react = require(\"react\");\n\nvar _stylesheetRegistry = _interopRequireDefault(require(\"./stylesheet-registry\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar styleSheetRegistry = new _stylesheetRegistry[\"default\"]();\n\nvar JSXStyle = /*#__PURE__*/function (_Component) {\n _inheritsLoose(JSXStyle, _Component);\n\n function JSXStyle(props) {\n var _this;\n\n _this = _Component.call(this, props) || this;\n _this.prevProps = {};\n return _this;\n }\n\n JSXStyle.dynamic = function dynamic(info) {\n return info.map(function (tagInfo) {\n var baseId = tagInfo[0];\n var props = tagInfo[1];\n return styleSheetRegistry.computeId(baseId, props);\n }).join(' ');\n } // probably faster than PureComponent (shallowEqual)\n ;\n\n var _proto = JSXStyle.prototype;\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(otherProps) {\n return this.props.id !== otherProps.id || // We do this check because `dynamic` is an array of strings or undefined.\n // These are the computed values for dynamic styles.\n String(this.props.dynamic) !== String(otherProps.dynamic);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n styleSheetRegistry.remove(this.props);\n };\n\n _proto.render = function render() {\n // This is a workaround to make the side effect async safe in the \"render\" phase.\n // See https://github.com/zeit/styled-jsx/pull/484\n if (this.shouldComponentUpdate(this.prevProps)) {\n // Updates\n if (this.prevProps.id) {\n styleSheetRegistry.remove(this.prevProps);\n }\n\n styleSheetRegistry.add(this.props);\n this.prevProps = this.props;\n }\n\n return null;\n };\n\n return JSXStyle;\n}(_react.Component);\n\nexports[\"default\"] = JSXStyle;\n\nfunction flush() {\n var cssRules = styleSheetRegistry.cssRules();\n styleSheetRegistry.flush();\n return cssRules;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _stringHash = _interopRequireDefault(require(\"string-hash\"));\n\nvar _stylesheet = _interopRequireDefault(require(\"./lib/stylesheet\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar sanitize = function sanitize(rule) {\n return rule.replace(/\\/style/gi, '\\\\/style');\n};\n\nvar StyleSheetRegistry = /*#__PURE__*/function () {\n function StyleSheetRegistry(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$styleSheet = _ref.styleSheet,\n styleSheet = _ref$styleSheet === void 0 ? null : _ref$styleSheet,\n _ref$optimizeForSpeed = _ref.optimizeForSpeed,\n optimizeForSpeed = _ref$optimizeForSpeed === void 0 ? false : _ref$optimizeForSpeed,\n _ref$isBrowser = _ref.isBrowser,\n isBrowser = _ref$isBrowser === void 0 ? typeof window !== 'undefined' : _ref$isBrowser;\n\n this._sheet = styleSheet || new _stylesheet[\"default\"]({\n name: 'styled-jsx',\n optimizeForSpeed: optimizeForSpeed\n });\n\n this._sheet.inject();\n\n if (styleSheet && typeof optimizeForSpeed === 'boolean') {\n this._sheet.setOptimizeForSpeed(optimizeForSpeed);\n\n this._optimizeForSpeed = this._sheet.isOptimizeForSpeed();\n }\n\n this._isBrowser = isBrowser;\n this._fromServer = undefined;\n this._indices = {};\n this._instancesCounts = {};\n this.computeId = this.createComputeId();\n this.computeSelector = this.createComputeSelector();\n }\n\n var _proto = StyleSheetRegistry.prototype;\n\n _proto.add = function add(props) {\n var _this = this;\n\n if (undefined === this._optimizeForSpeed) {\n this._optimizeForSpeed = Array.isArray(props.children);\n\n this._sheet.setOptimizeForSpeed(this._optimizeForSpeed);\n\n this._optimizeForSpeed = this._sheet.isOptimizeForSpeed();\n }\n\n if (this._isBrowser && !this._fromServer) {\n this._fromServer = this.selectFromServer();\n this._instancesCounts = Object.keys(this._fromServer).reduce(function (acc, tagName) {\n acc[tagName] = 0;\n return acc;\n }, {});\n }\n\n var _this$getIdAndRules = this.getIdAndRules(props),\n styleId = _this$getIdAndRules.styleId,\n rules = _this$getIdAndRules.rules; // Deduping: just increase the instances count.\n\n\n if (styleId in this._instancesCounts) {\n this._instancesCounts[styleId] += 1;\n return;\n }\n\n var indices = rules.map(function (rule) {\n return _this._sheet.insertRule(rule);\n }) // Filter out invalid rules\n .filter(function (index) {\n return index !== -1;\n });\n this._indices[styleId] = indices;\n this._instancesCounts[styleId] = 1;\n };\n\n _proto.remove = function remove(props) {\n var _this2 = this;\n\n var _this$getIdAndRules2 = this.getIdAndRules(props),\n styleId = _this$getIdAndRules2.styleId;\n\n invariant(styleId in this._instancesCounts, \"styleId: `\" + styleId + \"` not found\");\n this._instancesCounts[styleId] -= 1;\n\n if (this._instancesCounts[styleId] < 1) {\n var tagFromServer = this._fromServer && this._fromServer[styleId];\n\n if (tagFromServer) {\n tagFromServer.parentNode.removeChild(tagFromServer);\n delete this._fromServer[styleId];\n } else {\n this._indices[styleId].forEach(function (index) {\n return _this2._sheet.deleteRule(index);\n });\n\n delete this._indices[styleId];\n }\n\n delete this._instancesCounts[styleId];\n }\n };\n\n _proto.update = function update(props, nextProps) {\n this.add(nextProps);\n this.remove(props);\n };\n\n _proto.flush = function flush() {\n this._sheet.flush();\n\n this._sheet.inject();\n\n this._fromServer = undefined;\n this._indices = {};\n this._instancesCounts = {};\n this.computeId = this.createComputeId();\n this.computeSelector = this.createComputeSelector();\n };\n\n _proto.cssRules = function cssRules() {\n var _this3 = this;\n\n var fromServer = this._fromServer ? Object.keys(this._fromServer).map(function (styleId) {\n return [styleId, _this3._fromServer[styleId]];\n }) : [];\n\n var cssRules = this._sheet.cssRules();\n\n return fromServer.concat(Object.keys(this._indices).map(function (styleId) {\n return [styleId, _this3._indices[styleId].map(function (index) {\n return cssRules[index].cssText;\n }).join(_this3._optimizeForSpeed ? '' : '\\n')];\n }) // filter out empty rules\n .filter(function (rule) {\n return Boolean(rule[1]);\n }));\n }\n /**\n * createComputeId\n *\n * Creates a function to compute and memoize a jsx id from a basedId and optionally props.\n */\n ;\n\n _proto.createComputeId = function createComputeId() {\n var cache = {};\n return function (baseId, props) {\n if (!props) {\n return \"jsx-\" + baseId;\n }\n\n var propsToString = String(props);\n var key = baseId + propsToString; // return `jsx-${hashString(`${baseId}-${propsToString}`)}`\n\n if (!cache[key]) {\n cache[key] = \"jsx-\" + (0, _stringHash[\"default\"])(baseId + \"-\" + propsToString);\n }\n\n return cache[key];\n };\n }\n /**\n * createComputeSelector\n *\n * Creates a function to compute and memoize dynamic selectors.\n */\n ;\n\n _proto.createComputeSelector = function createComputeSelector(selectoPlaceholderRegexp) {\n if (selectoPlaceholderRegexp === void 0) {\n selectoPlaceholderRegexp = /__jsx-style-dynamic-selector/g;\n }\n\n var cache = {};\n return function (id, css) {\n // Sanitize SSR-ed CSS.\n // Client side code doesn't need to be sanitized since we use\n // document.createTextNode (dev) and the CSSOM api sheet.insertRule (prod).\n if (!this._isBrowser) {\n css = sanitize(css);\n }\n\n var idcss = id + css;\n\n if (!cache[idcss]) {\n cache[idcss] = css.replace(selectoPlaceholderRegexp, id);\n }\n\n return cache[idcss];\n };\n };\n\n _proto.getIdAndRules = function getIdAndRules(props) {\n var _this4 = this;\n\n var css = props.children,\n dynamic = props.dynamic,\n id = props.id;\n\n if (dynamic) {\n var styleId = this.computeId(id, dynamic);\n return {\n styleId: styleId,\n rules: Array.isArray(css) ? css.map(function (rule) {\n return _this4.computeSelector(styleId, rule);\n }) : [this.computeSelector(styleId, css)]\n };\n }\n\n return {\n styleId: this.computeId(id),\n rules: Array.isArray(css) ? css : [css]\n };\n }\n /**\n * selectFromServer\n *\n * Collects style tags from the document with id __jsx-XXX\n */\n ;\n\n _proto.selectFromServer = function selectFromServer() {\n var elements = Array.prototype.slice.call(document.querySelectorAll('[id^=\"__jsx-\"]'));\n return elements.reduce(function (acc, element) {\n var id = element.id.slice(2);\n acc[id] = element;\n return acc;\n }, {});\n };\n\n return StyleSheetRegistry;\n}();\n\nexports[\"default\"] = StyleSheetRegistry;\n\nfunction invariant(condition, message) {\n if (!condition) {\n throw new Error(\"StyleSheetRegistry: \" + message + \".\");\n }\n}","module.exports = require('./dist/style');","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? $Array : C;\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg) : false;\n var element, elementLen;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n elementLen = lengthOfArrayLike(element);\n targetIndex = flattenIntoArray(target, original, element, elementLen, targetIndex, depth - 1) - 1;\n } else {\n doesNotExceedSafeInteger(targetIndex + 1);\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar uncurryThis = NATIVE_BIND && bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? function (fn) {\n return fn && uncurryThis(fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es-x/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es-x/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","module.exports = {};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es-x/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","var $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","var isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","module.exports = false;\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es-x/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es-x/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es-x/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es-x/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es-x/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.25.2',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.25.2/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","/* eslint-disable es-x/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","/* eslint-disable es-x/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flatMap` method\n// https://tc39.es/ecma262/#sec-array.prototype.flatmap\n$({ target: 'Array', proto: true }, {\n flatMap: function flatMap(callbackfn /* , thisArg */) {\n var O = toObject(this);\n var sourceLen = lengthOfArrayLike(O);\n var A;\n aCallable(callbackfn);\n A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return A;\n }\n});\n","// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flatMap');\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\n\n// `globalThis` object\n// https://tc39.es/ecma262/#sec-globalthis\n$({ global: true, forced: global.globalThis !== global }, {\n globalThis: global\n});\n","// TODO: Remove from `core-js@4`\nrequire('../modules/es.global-this');\n","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContext = void 0;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nexports.ScrollContext = _scrollHandler.ScrollHandler;\n\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\n\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _sessionStorage = require(\"./session-storage\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\n\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n\n function ScrollHandler() {\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._stateStorage = new _sessionStorage.SessionStorage();\n _this._isTicking = false;\n _this._latestKnownScrollY = 0;\n\n _this.scrollListener = function () {\n _this._latestKnownScrollY = window.scrollY;\n\n if (!_this._isTicking) {\n _this._isTicking = true;\n requestAnimationFrame(_this._saveScroll.bind((0, _assertThisInitialized2.default)(_this)));\n }\n };\n\n _this.windowScroll = function (position, prevProps) {\n if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n window.scrollTo(0, position);\n }\n };\n\n _this.scrollToHash = function (hash, prevProps) {\n var node = document.getElementById(hash.substring(1));\n\n if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n node.scrollIntoView();\n }\n };\n\n _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n\n if (!shouldUpdateScroll) {\n return true;\n } // Hack to allow accessing this._stateStorage.\n\n\n return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n };\n\n return _this;\n }\n\n var _proto = ScrollHandler.prototype;\n\n _proto._saveScroll = function _saveScroll() {\n var key = this.props.location.key || null;\n\n if (key) {\n this._stateStorage.save(this.props.location, key, this._latestKnownScrollY);\n }\n\n this._isTicking = false;\n };\n\n _proto.componentDidMount = function componentDidMount() {\n window.addEventListener(\"scroll\", this.scrollListener);\n var scrollPosition;\n var _this$props$location = this.props.location,\n key = _this$props$location.key,\n hash = _this$props$location.hash;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n if (scrollPosition) {\n this.windowScroll(scrollPosition, undefined);\n } else if (hash) {\n this.scrollToHash(decodeURI(hash), undefined);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener(\"scroll\", this.scrollListener);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props$location2 = this.props.location,\n hash = _this$props$location2.hash,\n key = _this$props$location2.key;\n var scrollPosition;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n /** There are two pieces of state: the browser url and\n * history state which keeps track of scroll position\n * Native behaviour prescribes that we ought to restore scroll position\n * when a user navigates back in their browser (this is the `POP` action)\n * Currently, reach router has a bug that prevents this at https://github.com/reach/router/issues/228\n * So we _always_ stick to the url as a source of truth — if the url\n * contains a hash, we scroll to it\n */\n\n\n if (hash) {\n this.scrollToHash(decodeURI(hash), prevProps);\n } else {\n this.windowScroll(scrollPosition, prevProps);\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n value: this._stateStorage\n }, this.props.children);\n };\n\n return ScrollHandler;\n}(React.Component);\n\nexports.ScrollHandler = ScrollHandler;\nScrollHandler.propTypes = {\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired,\n location: _propTypes.default.object.isRequired\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.SessionStorage = void 0;\nvar STATE_KEY_PREFIX = \"@@scroll|\";\nvar GATSBY_ROUTER_SCROLL_STATE = \"___GATSBY_REACT_ROUTER_SCROLL\";\n\nvar SessionStorage = /*#__PURE__*/function () {\n function SessionStorage() {}\n\n var _proto = SessionStorage.prototype;\n\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\n\n try {\n var value = window.sessionStorage.getItem(stateKey);\n return value ? JSON.parse(value) : 0;\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to access sessionStorage; sessionStorage is not available.\");\n }\n\n if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n\n return 0;\n }\n };\n\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\n\n try {\n window.sessionStorage.setItem(stateKey, storedValue);\n } catch (e) {\n if (window && window[GATSBY_ROUTER_SCROLL_STATE]) {\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n } else {\n window[GATSBY_ROUTER_SCROLL_STATE] = {};\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to save state in sessionStorage; sessionStorage is not available.\");\n }\n }\n };\n\n _proto.getStateKey = function getStateKey(location, key) {\n var stateKeyBase = \"\" + STATE_KEY_PREFIX + location.pathname;\n return key === null || typeof key === \"undefined\" ? stateKeyBase : stateKeyBase + \"|\" + key;\n };\n\n return SessionStorage;\n}();\n\nexports.SessionStorage = SessionStorage;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nvar _react = require(\"react\");\n\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\n\nfunction useScrollRestoration(identifier) {\n var location = (0, _reachRouter.useLocation)();\n var state = (0, _react.useContext)(_scrollHandler.ScrollContext);\n var ref = (0, _react.useRef)(null);\n (0, _react.useLayoutEffect)(function () {\n if (ref.current) {\n var position = state.read(location, identifier);\n ref.current.scrollTo(0, position || 0);\n }\n }, [location.key]);\n return {\n ref: ref,\n onScroll: function onScroll() {\n if (ref.current) {\n state.save(location, identifier, ref.current.scrollTop);\n }\n }\n };\n}","exports.components = {\n \"component---src-pages-404-tsx\": () => import(\"./../../../src/pages/404.tsx\" /* webpackChunkName: \"component---src-pages-404-tsx\" */),\n \"component---src-pages-application-app-confirmation-tsx\": () => import(\"./../../../src/pages/application/app-confirmation.tsx\" /* webpackChunkName: \"component---src-pages-application-app-confirmation-tsx\" */),\n \"component---src-pages-application-bank-statements-tsx\": () => import(\"./../../../src/pages/application/bank-statements.tsx\" /* webpackChunkName: \"component---src-pages-application-bank-statements-tsx\" */),\n \"component---src-pages-application-index-tsx\": () => import(\"./../../../src/pages/application/index.tsx\" /* webpackChunkName: \"component---src-pages-application-index-tsx\" */),\n \"component---src-pages-estimate-index-tsx\": () => import(\"./../../../src/pages/estimate/index.tsx\" /* webpackChunkName: \"component---src-pages-estimate-index-tsx\" */),\n \"component---src-pages-partner-referral-index-tsx\": () => import(\"./../../../src/pages/partner-referral/index.tsx\" /* webpackChunkName: \"component---src-pages-partner-referral-index-tsx\" */),\n \"component---src-pages-quote-index-tsx\": () => import(\"./../../../src/pages/quote/index.tsx\" /* webpackChunkName: \"component---src-pages-quote-index-tsx\" */)\n}\n\n","module.exports = [{\n plugin: require('../node_modules/gatsby-plugin-launchdarkly/gatsby-browser.js'),\n options: {\"plugins\":[],\"clientSideID\":\"60d944f669be130c86f56245\",\"options\":{\"bootstrap\":\"localstorage\"}},\n },{\n plugin: require('../gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js'),\n options: {\"plugins\":[]},\n }]\n","const plugins = require(`./api-runner-browser-plugins`)\nconst { getResourceURLsForPathname, loadPage, loadPageSync } =\n require(`./loader`).publicLoader\n\nexports.apiRunner = (api, args = {}, defaultReturn, argTransform) => {\n // Hooks for gatsby-cypress's API handler\n if (process.env.CYPRESS_SUPPORT) {\n if (window.___apiHandler) {\n window.___apiHandler(api)\n } else if (window.___resolvedAPIs) {\n window.___resolvedAPIs.push(api)\n } else {\n window.___resolvedAPIs = [api]\n }\n }\n\n let results = plugins.map(plugin => {\n if (!plugin.plugin[api]) {\n return undefined\n }\n\n args.getResourceURLsForPathname = getResourceURLsForPathname\n args.loadPage = loadPage\n args.loadPageSync = loadPageSync\n\n const result = plugin.plugin[api](args, plugin.options)\n if (result && argTransform) {\n args = argTransform({ args, result, plugin })\n }\n return result\n })\n\n // Filter out undefined results.\n results = results.filter(result => typeof result !== `undefined`)\n\n if (results.length > 0) {\n return results\n } else if (defaultReturn) {\n return [defaultReturn]\n } else {\n return []\n }\n}\n\nexports.apiRunnerAsync = (api, args, defaultReturn) =>\n plugins.reduce(\n (previous, next) =>\n next.plugin[api]\n ? previous.then(() => next.plugin[api](args, next.options))\n : previous,\n Promise.resolve()\n )\n","// \n// An event handler can take an optional event argument\n// and should not return a value\n \n \n\n// An array of all currently registered event handlers for a type\n \n \n// A map of event types and their corresponding event handlers.\n \n \n \n \n\n/** Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nfunction mitt(all ) {\n\tall = all || Object.create(null);\n\n\treturn {\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to listen for, or `\"*\"` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton: function on(type , handler ) {\n\t\t\t(all[type] || (all[type] = [])).push(handler);\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to unregister `handler` from, or `\"*\"`\n\t\t * @param {Function} handler Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff: function off(type , handler ) {\n\t\t\tif (all[type]) {\n\t\t\t\tall[type].splice(all[type].indexOf(handler) >>> 0, 1);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `\"*\"` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * @param {String} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit: function emit(type , evt ) {\n\t\t\t(all[type] || []).slice().map(function (handler) { handler(evt); });\n\t\t\t(all['*'] || []).slice().map(function (handler) { handler(type, evt); });\n\t\t}\n\t};\n}\n\nexport default mitt;\n//# sourceMappingURL=mitt.es.js.map\n","import mitt from \"mitt\"\n\nconst emitter = mitt()\nexport default emitter\n","export default pathAndSearch => {\n if (pathAndSearch === undefined) {\n return pathAndSearch\n }\n let [path, search = ``] = pathAndSearch.split(`?`)\n if (search) {\n search = `?` + search\n }\n\n if (path === `/`) {\n return `/` + search\n }\n if (path.charAt(path.length - 1) === `/`) {\n return path.slice(0, -1) + search\n }\n return path + search\n}\n","import { pick } from \"@gatsbyjs/reach-router/lib/utils\"\nimport stripPrefix from \"./strip-prefix\"\nimport normalizePagePath from \"./normalize-page-path\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\n\nconst pathCache = new Map()\nlet matchPaths = []\n\nconst trimPathname = rawPathname => {\n let newRawPathname = rawPathname\n const queryIndex = rawPathname.indexOf(`?`)\n\n if (queryIndex !== -1) {\n const [path, qs] = rawPathname.split(`?`)\n newRawPathname = `${path}?${encodeURIComponent(qs)}`\n }\n\n const pathname = decodeURIComponent(newRawPathname)\n\n // Remove the pathPrefix from the pathname.\n const trimmedPathname = stripPrefix(\n pathname,\n decodeURIComponent(__BASE_PATH__)\n )\n // Remove any hashfragment\n .split(`#`)[0]\n\n return trimmedPathname\n}\n\nfunction absolutify(path) {\n // If it's already absolute, return as-is\n if (\n path.startsWith(`/`) ||\n path.startsWith(`https://`) ||\n path.startsWith(`http://`)\n ) {\n return path\n }\n // Calculate path relative to current location, adding a trailing slash to\n // match behavior of @reach/router\n return new URL(\n path,\n window.location.href + (window.location.href.endsWith(`/`) ? `` : `/`)\n ).pathname\n}\n\n/**\n * Set list of matchPaths\n *\n * @param {Array<{path: string, matchPath: string}>} value collection of matchPaths\n */\nexport const setMatchPaths = value => {\n matchPaths = value\n}\n\n/**\n * Return a matchpath url\n * if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n * `/foo?bar=far` => `/page1`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string|null}\n */\nexport const findMatchPath = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return normalizePagePath(path.route.originalPath)\n }\n\n return null\n}\n\n/**\n * Return a matchpath params from reach/router rules\n * if `match-paths.json` contains `{ \":bar/*foo\" }`, and the path is /baz/zaz/zoo\n * then it returns\n * { bar: baz, foo: zaz/zoo }\n *\n * @param {string} rawPathname A raw pathname\n * @return {object}\n */\nexport const grabMatchParams = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return path.params\n }\n\n return {}\n}\n\n// Given a raw URL path, returns the cleaned version of it (trim off\n// `#` and query params), or if it matches an entry in\n// `match-paths.json`, its matched path is returned\n//\n// E.g. `/foo?bar=far` => `/foo`\n//\n// Or if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n// `/foo?bar=far` => `/page1`\nexport const findPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n if (pathCache.has(trimmedPathname)) {\n return pathCache.get(trimmedPathname)\n }\n\n const redirect = maybeGetBrowserRedirect(rawPathname)\n if (redirect) {\n return findPath(redirect.toPath)\n }\n\n let foundPath = findMatchPath(trimmedPathname)\n\n if (!foundPath) {\n foundPath = cleanPath(rawPathname)\n }\n\n pathCache.set(trimmedPathname, foundPath)\n\n return foundPath\n}\n\n/**\n * Clean a url and converts /index.html => /\n * E.g. `/foo?bar=far` => `/foo`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string}\n */\nexport const cleanPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n\n let foundPath = trimmedPathname\n if (foundPath === `/index.html`) {\n foundPath = `/`\n }\n\n foundPath = normalizePagePath(foundPath)\n\n return foundPath\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nconst StaticQueryContext = React.createContext({})\nlet StaticQueryServerContext = null\nif (React.createServerContext) {\n StaticQueryServerContext = React.createServerContext(`StaticQuery`, {})\n}\n\nfunction StaticQueryDataRenderer({ staticQueryData, data, query, render }) {\n const finalData = data\n ? data.data\n : staticQueryData[query] && staticQueryData[query].data\n\n return (\n \n {finalData && render(finalData)}\n {!finalData &&
Loading (StaticQuery)
}\n
\n )\n}\n\n// TODO(v5): Remove completely\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n return (\n \n {staticQueryData => (\n \n )}\n \n )\n}\n\nStaticQuery.propTypes = {\n data: PropTypes.object,\n query: PropTypes.string.isRequired,\n render: PropTypes.func,\n children: PropTypes.func,\n}\n\nconst useStaticQuery = query => {\n if (\n typeof React.useContext !== `function` &&\n process.env.NODE_ENV === `development`\n ) {\n // TODO(v5): Remove since we require React >= 18\n throw new Error(\n `You're likely using a version of React that doesn't support Hooks\\n` +\n `Please update React and ReactDOM to 16.8.0 or later to use the useStaticQuery hook.`\n )\n }\n let context\n\n // Can we get a better check here?\n if (\n StaticQueryServerContext &&\n Object.keys(StaticQueryServerContext._currentValue).length\n ) {\n context = React.useContext(StaticQueryServerContext)\n } else {\n context = React.useContext(StaticQueryContext)\n }\n\n // query is a stringified number like `3303882` when wrapped with graphql, If a user forgets\n // to wrap the query in a grqphql, then casting it to a Number results in `NaN` allowing us to\n // catch the misuse of the API and give proper direction\n if (isNaN(Number(query))) {\n throw new Error(`useStaticQuery was called with a string but expects to be called using \\`graphql\\`. Try this:\n\nimport { useStaticQuery, graphql } from 'gatsby';\n\nuseStaticQuery(graphql\\`${query}\\`);\n`)\n }\n\n if (context[query]?.data) {\n return context[query].data\n } else {\n throw new Error(\n `The result of this StaticQuery could not be fetched.\\n\\n` +\n `This is likely a bug in Gatsby and if refreshing the page does not fix it, ` +\n `please open an issue in https://github.com/gatsbyjs/gatsby/issues`\n )\n }\n}\n\nexport {\n StaticQuery,\n StaticQueryContext,\n useStaticQuery,\n StaticQueryServerContext,\n}\n","import loader from \"./loader\"\n\nconst prefetchPathname = loader.enqueue\n\nfunction graphql() {\n throw new Error(\n `It appears like Gatsby is misconfigured. Gatsby related \\`graphql\\` calls ` +\n `are supposed to only be evaluated at compile time, and then compiled away. ` +\n `Unfortunately, something went wrong and the query was left in the compiled code.\\n\\n` +\n `Unless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.`\n )\n}\n\nexport { default as PageRenderer } from \"./public-page-renderer\"\nexport { useScrollRestoration } from \"gatsby-react-router-scroll\"\nexport {\n default as Link,\n withPrefix,\n withAssetPrefix,\n navigate,\n parsePath,\n} from \"gatsby-link\"\n\nexport { graphql, prefetchPathname }\nexport {\n StaticQuery,\n StaticQueryContext,\n useStaticQuery,\n StaticQueryServerContext,\n} from \"./static-query\"\n\nexport * from \"gatsby-script\"\n","const support = function (feature) {\n if (typeof document === `undefined`) {\n return false\n }\n const fakeLink = document.createElement(`link`)\n try {\n if (fakeLink.relList && typeof fakeLink.relList.supports === `function`) {\n return fakeLink.relList.supports(feature)\n }\n } catch (err) {\n return false\n }\n return false\n}\n\nconst linkPrefetchStrategy = function (url, options) {\n return new Promise((resolve, reject) => {\n if (typeof document === `undefined`) {\n reject()\n return\n }\n\n const link = document.createElement(`link`)\n link.setAttribute(`rel`, `prefetch`)\n link.setAttribute(`href`, url)\n\n Object.keys(options).forEach(key => {\n link.setAttribute(key, options[key])\n })\n\n link.onload = resolve\n link.onerror = reject\n\n const parentElement =\n document.getElementsByTagName(`head`)[0] ||\n document.getElementsByName(`script`)[0].parentNode\n parentElement.appendChild(link)\n })\n}\n\nconst xhrPrefetchStrategy = function (url) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(`GET`, url, true)\n\n req.onload = () => {\n if (req.status === 200) {\n resolve()\n } else {\n reject()\n }\n }\n\n req.send(null)\n })\n}\n\nconst supportedPrefetchStrategy = support(`prefetch`)\n ? linkPrefetchStrategy\n : xhrPrefetchStrategy\n\nconst preFetched = {}\n\nconst prefetch = function (url, options) {\n return new Promise(resolve => {\n if (preFetched[url]) {\n resolve()\n return\n }\n\n supportedPrefetchStrategy(url, options)\n .then(() => {\n resolve()\n preFetched[url] = true\n })\n .catch(() => {}) // 404s are logged to the console anyway\n })\n}\n\nexport default prefetch\n","import { createFromReadableStream } from \"react-server-dom-webpack\"\nimport prefetchHelper from \"./prefetch\"\nimport emitter from \"./emitter\"\nimport { setMatchPaths, findPath, findMatchPath } from \"./find-path\"\n\n/**\n * Available resource loading statuses\n */\nexport const PageResourceStatus = {\n /**\n * At least one of critical resources failed to load\n */\n Error: `error`,\n /**\n * Resources loaded successfully\n */\n Success: `success`,\n}\n\nconst stripSurroundingSlashes = s => {\n s = s[0] === `/` ? s.slice(1) : s\n s = s.endsWith(`/`) ? s.slice(0, -1) : s\n return s\n}\n\nconst createPageDataUrl = rawPath => {\n const [path, maybeSearch] = rawPath.split(`?`)\n const fixedPath = path === `/` ? `index` : stripSurroundingSlashes(path)\n return `${__PATH_PREFIX__}/page-data/${fixedPath}/page-data.json${\n maybeSearch ? `?${maybeSearch}` : ``\n }`\n}\n\nfunction doFetch(url, method = `GET`) {\n return new Promise(resolve => {\n const req = new XMLHttpRequest()\n req.open(method, url, true)\n req.onreadystatechange = () => {\n if (req.readyState == 4) {\n resolve(req)\n }\n }\n req.send(null)\n })\n}\n\nconst doesConnectionSupportPrefetch = () => {\n if (\n `connection` in navigator &&\n typeof navigator.connection !== `undefined`\n ) {\n if ((navigator.connection.effectiveType || ``).includes(`2g`)) {\n return false\n }\n if (navigator.connection.saveData) {\n return false\n }\n }\n return true\n}\n\n// Regex that matches common search crawlers\nconst BOT_REGEX = /bot|crawler|spider|crawling/i\n\nconst toPageResources = (pageData, component = null, head) => {\n const page = {\n componentChunkName: pageData.componentChunkName,\n path: pageData.path,\n webpackCompilationHash: pageData.webpackCompilationHash,\n matchPath: pageData.matchPath,\n staticQueryHashes: pageData.staticQueryHashes,\n getServerDataError: pageData.getServerDataError,\n }\n\n return {\n component,\n head,\n json: pageData.result,\n page,\n }\n}\n\nfunction waitForResponse(response) {\n return new Promise(resolve => {\n try {\n const result = response.readRoot()\n resolve(result)\n } catch (err) {\n if (\n Object.hasOwnProperty.call(err, `_response`) &&\n Object.hasOwnProperty.call(err, `_status`)\n ) {\n setTimeout(() => {\n waitForResponse(response).then(resolve)\n }, 200)\n } else {\n throw err\n }\n }\n })\n}\n\nexport class BaseLoader {\n constructor(loadComponent, matchPaths) {\n // Map of pagePath -> Page. Where Page is an object with: {\n // status: PageResourceStatus.Success || PageResourceStatus.Error,\n // payload: PageResources, // undefined if PageResourceStatus.Error\n // }\n // PageResources is {\n // component,\n // json: pageData.result,\n // page: {\n // componentChunkName,\n // path,\n // webpackCompilationHash,\n // staticQueryHashes\n // },\n // staticQueryResults\n // }\n this.pageDb = new Map()\n this.inFlightDb = new Map()\n this.staticQueryDb = {}\n this.pageDataDb = new Map()\n this.partialHydrationDb = new Map()\n this.isPrefetchQueueRunning = false\n this.prefetchQueued = []\n this.prefetchTriggered = new Set()\n this.prefetchCompleted = new Set()\n this.loadComponent = loadComponent\n setMatchPaths(matchPaths)\n }\n\n inFlightNetworkRequests = new Map()\n\n memoizedGet(url) {\n let inFlightPromise = this.inFlightNetworkRequests.get(url)\n\n if (!inFlightPromise) {\n inFlightPromise = doFetch(url, `GET`)\n this.inFlightNetworkRequests.set(url, inFlightPromise)\n }\n\n // Prefer duplication with then + catch over .finally to prevent problems in ie11 + firefox\n return inFlightPromise\n .then(response => {\n this.inFlightNetworkRequests.delete(url)\n return response\n })\n .catch(err => {\n this.inFlightNetworkRequests.delete(url)\n throw err\n })\n }\n\n setApiRunner(apiRunner) {\n this.apiRunner = apiRunner\n this.prefetchDisabled = apiRunner(`disableCorePrefetching`).some(a => a)\n }\n\n fetchPageDataJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.path === undefined) {\n throw new Error(`not a valid pageData response`)\n }\n\n const maybeSearch = pagePath.split(`?`)[1]\n if (maybeSearch && !jsonPayload.path.includes(maybeSearch)) {\n jsonPayload.path += `?${maybeSearch}`\n }\n\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: jsonPayload,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404/500 page and it doesn't exist, we're done\n if (pagePath === `/404.html` || pagePath === `/500.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPageDataJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, {\n pagePath: `/500.html`,\n internalServerError: true,\n })\n )\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n fetchPartialHydrationJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath).replace(`.json`, `-rsc.json`)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: responseText,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404/500 page and it doesn't exist, we're done\n if (pagePath === `/404.html` || pagePath === `/500.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, {\n pagePath: `/500.html`,\n internalServerError: true,\n })\n )\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n loadPageDataJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDataDb.has(pagePath)) {\n const pageData = this.pageDataDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPageDataJson({ pagePath }).then(pageData => {\n this.pageDataDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n loadPartialHydrationJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.partialHydrationDb.has(pagePath)) {\n const pageData = this.partialHydrationDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPartialHydrationJson({ pagePath }).then(pageData => {\n this.partialHydrationDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n findMatchPath(rawPath) {\n return findMatchPath(rawPath)\n }\n\n // TODO check all uses of this and whether they use undefined for page resources not exist\n loadPage(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const page = this.pageDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !page.payload.stale) {\n if (page.error) {\n return {\n error: page.error,\n status: page.status,\n }\n }\n\n return Promise.resolve(page.payload)\n }\n }\n\n if (this.inFlightDb.has(pagePath)) {\n return this.inFlightDb.get(pagePath)\n }\n\n let inFlightPromise\n if (global.hasPartialHydration) {\n inFlightPromise = Promise.all([\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n this.loadPartialHydrationJson(pagePath),\n ]).then(([appData, { payload: pageData }, result]) => {\n if (result.status === PageResourceStatus.Error) {\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n const finalResult = {}\n\n // In develop we have separate chunks for template and Head components\n // to enable HMR (fast refresh requires single exports).\n // In production we have shared chunk with both exports. Double loadComponent here\n // will be deduped by webpack runtime resulting in single request and single module\n // being loaded for both `component` and `head`.\n const componentChunkPromise = this.loadComponent(\n pageData.componentChunkName,\n `head`\n ).then(head => {\n finalResult.createdAt = new Date()\n finalResult.status = PageResourceStatus.Success\n if (result.notFound === true) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: appData\n ? appData.webpackCompilationHash\n : ``,\n })\n\n const pageResources = toPageResources(pageData, null, head)\n\n if (result.payload && typeof result.payload === `string`) {\n pageResources.partialHydration = result.payload\n\n const readableStream = new ReadableStream({\n start(controller) {\n const te = new TextEncoder()\n controller.enqueue(te.encode(result.payload))\n },\n pull(controller) {\n // close on next read when queue is empty\n controller.close()\n },\n cancel() {},\n })\n\n return waitForResponse(\n createFromReadableStream(readableStream)\n ).then(result => {\n pageResources.partialHydration = result\n\n return pageResources\n })\n }\n\n // undefined if final result is an error\n return pageResources\n })\n\n // Necessary for head component\n const staticQueryBatchPromise = Promise.all(\n (pageData.staticQueryHashes || []).map(staticQueryHash => {\n // Check for cache in case this static query result has already been loaded\n if (this.staticQueryDb[staticQueryHash]) {\n const jsonPayload = this.staticQueryDb[staticQueryHash]\n return { staticQueryHash, jsonPayload }\n }\n\n return this.memoizedGet(\n `${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json`\n )\n .then(req => {\n const jsonPayload = JSON.parse(req.responseText)\n return { staticQueryHash, jsonPayload }\n })\n .catch(() => {\n throw new Error(\n `We couldn't load \"${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json\"`\n )\n })\n })\n ).then(staticQueryResults => {\n const staticQueryResultsMap = {}\n\n staticQueryResults.forEach(({ staticQueryHash, jsonPayload }) => {\n staticQueryResultsMap[staticQueryHash] = jsonPayload\n this.staticQueryDb[staticQueryHash] = jsonPayload\n })\n\n return staticQueryResultsMap\n })\n\n return (\n Promise.all([componentChunkPromise, staticQueryBatchPromise])\n .then(([pageResources, staticQueryResults]) => {\n let payload\n if (pageResources) {\n payload = {\n ...pageResources,\n staticQueryResults: staticQueryResults,\n }\n finalResult.payload = payload\n emitter.emit(`onPostLoadPageResources`, {\n page: payload,\n pageResources: payload,\n })\n }\n\n this.pageDb.set(pagePath, finalResult)\n\n if (finalResult.error) {\n return {\n error: finalResult.error,\n status: finalResult.status,\n }\n }\n\n return payload\n })\n // when static-query fail to load we throw a better error\n .catch(err => {\n return {\n error: err,\n status: PageResourceStatus.Error,\n }\n })\n )\n })\n } else {\n inFlightPromise = Promise.all([\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n ]).then(allData => {\n const result = allData[1]\n if (result.status === PageResourceStatus.Error) {\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n let pageData = result.payload\n const { componentChunkName, staticQueryHashes = [] } = pageData\n\n const finalResult = {}\n\n // In develop we have separate chunks for template and Head components\n // to enable HMR (fast refresh requires single exports).\n // In production we have shared chunk with both exports. Double loadComponent here\n // will be deduped by webpack runtime resulting in single request and single module\n // being loaded for both `component` and `head`.\n const componentChunkPromise = Promise.all([\n this.loadComponent(componentChunkName),\n this.loadComponent(componentChunkName, `head`),\n ]).then(([component, head]) => {\n finalResult.createdAt = new Date()\n let pageResources\n if (!component || component instanceof Error) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = component\n } else {\n finalResult.status = PageResourceStatus.Success\n if (result.notFound === true) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: allData[0]\n ? allData[0].webpackCompilationHash\n : ``,\n })\n pageResources = toPageResources(pageData, component, head)\n }\n // undefined if final result is an error\n return pageResources\n })\n\n const staticQueryBatchPromise = Promise.all(\n staticQueryHashes.map(staticQueryHash => {\n // Check for cache in case this static query result has already been loaded\n if (this.staticQueryDb[staticQueryHash]) {\n const jsonPayload = this.staticQueryDb[staticQueryHash]\n return { staticQueryHash, jsonPayload }\n }\n\n return this.memoizedGet(\n `${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json`\n )\n .then(req => {\n const jsonPayload = JSON.parse(req.responseText)\n return { staticQueryHash, jsonPayload }\n })\n .catch(() => {\n throw new Error(\n `We couldn't load \"${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json\"`\n )\n })\n })\n ).then(staticQueryResults => {\n const staticQueryResultsMap = {}\n\n staticQueryResults.forEach(({ staticQueryHash, jsonPayload }) => {\n staticQueryResultsMap[staticQueryHash] = jsonPayload\n this.staticQueryDb[staticQueryHash] = jsonPayload\n })\n\n return staticQueryResultsMap\n })\n\n return (\n Promise.all([componentChunkPromise, staticQueryBatchPromise])\n .then(([pageResources, staticQueryResults]) => {\n let payload\n if (pageResources) {\n payload = { ...pageResources, staticQueryResults }\n finalResult.payload = payload\n emitter.emit(`onPostLoadPageResources`, {\n page: payload,\n pageResources: payload,\n })\n }\n\n this.pageDb.set(pagePath, finalResult)\n\n if (finalResult.error) {\n return {\n error: finalResult.error,\n status: finalResult.status,\n }\n }\n\n return payload\n })\n // when static-query fail to load we throw a better error\n .catch(err => {\n return {\n error: err,\n status: PageResourceStatus.Error,\n }\n })\n )\n })\n }\n\n inFlightPromise\n .then(() => {\n this.inFlightDb.delete(pagePath)\n })\n .catch(error => {\n this.inFlightDb.delete(pagePath)\n throw error\n })\n\n this.inFlightDb.set(pagePath, inFlightPromise)\n\n return inFlightPromise\n }\n\n // returns undefined if the page does not exists in cache\n loadPageSync(rawPath, options = {}) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const pageData = this.pageDb.get(pagePath)\n\n if (pageData.payload) {\n return pageData.payload\n }\n\n if (options?.withErrorDetails) {\n return {\n error: pageData.error,\n status: pageData.status,\n }\n }\n }\n return undefined\n }\n\n shouldPrefetch(pagePath) {\n // Skip prefetching if we know user is on slow or constrained connection\n if (!doesConnectionSupportPrefetch()) {\n return false\n }\n\n // Don't prefetch if this is a crawler bot\n if (navigator.userAgent && BOT_REGEX.test(navigator.userAgent)) {\n return false\n }\n\n // Check if the page exists.\n if (this.pageDb.has(pagePath)) {\n return false\n }\n\n return true\n }\n\n prefetch(pagePath) {\n if (!this.shouldPrefetch(pagePath)) {\n return {\n then: resolve => resolve(false),\n abort: () => {},\n }\n }\n if (this.prefetchTriggered.has(pagePath)) {\n return {\n then: resolve => resolve(true),\n abort: () => {},\n }\n }\n\n const defer = {\n resolve: null,\n reject: null,\n promise: null,\n }\n defer.promise = new Promise((resolve, reject) => {\n defer.resolve = resolve\n defer.reject = reject\n })\n this.prefetchQueued.push([pagePath, defer])\n const abortC = new AbortController()\n abortC.signal.addEventListener(`abort`, () => {\n const index = this.prefetchQueued.findIndex(([p]) => p === pagePath)\n // remove from the queue\n if (index !== -1) {\n this.prefetchQueued.splice(index, 1)\n }\n })\n\n if (!this.isPrefetchQueueRunning) {\n this.isPrefetchQueueRunning = true\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n }\n\n return {\n then: (resolve, reject) => defer.promise.then(resolve, reject),\n abort: abortC.abort.bind(abortC),\n }\n }\n\n _processNextPrefetchBatch() {\n const idleCallback = window.requestIdleCallback || (cb => setTimeout(cb, 0))\n\n idleCallback(() => {\n const toPrefetch = this.prefetchQueued.splice(0, 4)\n const prefetches = Promise.all(\n toPrefetch.map(([pagePath, dPromise]) => {\n // Tell plugins with custom prefetching logic that they should start\n // prefetching this path.\n if (!this.prefetchTriggered.has(pagePath)) {\n this.apiRunner(`onPrefetchPathname`, { pathname: pagePath })\n this.prefetchTriggered.add(pagePath)\n }\n\n // If a plugin has disabled core prefetching, stop now.\n if (this.prefetchDisabled) {\n return dPromise.resolve(false)\n }\n\n return this.doPrefetch(findPath(pagePath)).then(() => {\n if (!this.prefetchCompleted.has(pagePath)) {\n this.apiRunner(`onPostPrefetchPathname`, { pathname: pagePath })\n this.prefetchCompleted.add(pagePath)\n }\n\n dPromise.resolve(true)\n })\n })\n )\n\n if (this.prefetchQueued.length) {\n prefetches.then(() => {\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n })\n } else {\n this.isPrefetchQueueRunning = false\n }\n })\n }\n\n doPrefetch(pagePath) {\n const pageDataUrl = createPageDataUrl(pagePath)\n\n if (global.hasPartialHydration) {\n return Promise.all([\n prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n ),\n prefetchHelper(pageDataUrl.replace(`.json`, `-rsc.json`), {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPartialHydrationJson(pagePath)\n ),\n ])\n } else {\n return prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n )\n }\n }\n\n hovering(rawPath) {\n this.loadPage(rawPath)\n }\n\n getResourceURLsForPathname(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDataDb.get(pagePath)\n if (page) {\n const pageResources = toPageResources(page.payload)\n\n return [\n ...createComponentUrls(pageResources.page.componentChunkName),\n createPageDataUrl(pagePath),\n ]\n } else {\n return null\n }\n }\n\n isPageNotFound(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDb.get(pagePath)\n return !page || page.notFound\n }\n\n loadAppData(retries = 0) {\n return this.memoizedGet(`${__PATH_PREFIX__}/page-data/app-data.json`).then(\n req => {\n const { status, responseText } = req\n\n let appData\n\n if (status !== 200 && retries < 3) {\n // Retry 3 times incase of non-200 responses\n return this.loadAppData(retries + 1)\n }\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.webpackCompilationHash === undefined) {\n throw new Error(`not a valid app-data response`)\n }\n\n appData = jsonPayload\n } catch (err) {\n // continue regardless of error\n }\n }\n\n return appData\n }\n )\n }\n}\n\nconst createComponentUrls = componentChunkName =>\n (window.___chunkMapping[componentChunkName] || []).map(\n chunk => __PATH_PREFIX__ + chunk\n )\n\nexport class ProdLoader extends BaseLoader {\n constructor(asyncRequires, matchPaths, pageData) {\n const loadComponent = (chunkName, exportType = `components`) => {\n if (!global.hasPartialHydration) {\n exportType = `components`\n }\n\n if (!asyncRequires[exportType][chunkName]) {\n throw new Error(\n `We couldn't find the correct component chunk with the name \"${chunkName}\"`\n )\n }\n\n return (\n asyncRequires[exportType][chunkName]()\n // loader will handle the case when component is error\n .catch(err => err)\n )\n }\n\n super(loadComponent, matchPaths)\n\n if (pageData) {\n this.pageDataDb.set(findPath(pageData.path), {\n pagePath: pageData.path,\n payload: pageData,\n status: `success`,\n })\n }\n }\n\n doPrefetch(pagePath) {\n return super.doPrefetch(pagePath).then(result => {\n if (result.status !== PageResourceStatus.Success) {\n return Promise.resolve()\n }\n const pageData = result.payload\n const chunkName = pageData.componentChunkName\n const componentUrls = createComponentUrls(chunkName)\n return Promise.all(componentUrls.map(prefetchHelper)).then(() => pageData)\n })\n }\n\n loadPageDataJson(rawPath) {\n return super.loadPageDataJson(rawPath).then(data => {\n if (data.notFound) {\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n\n loadPartialHydrationJson(rawPath) {\n return super.loadPartialHydrationJson(rawPath).then(data => {\n if (data.notFound) {\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n}\n\nlet instance\n\nexport const setLoader = _loader => {\n instance = _loader\n}\n\nexport const publicLoader = {\n enqueue: rawPath => instance.prefetch(rawPath),\n\n // Real methods\n getResourceURLsForPathname: rawPath =>\n instance.getResourceURLsForPathname(rawPath),\n loadPage: rawPath => instance.loadPage(rawPath),\n // TODO add deprecation to v4 so people use withErrorDetails and then we can remove in v5 and change default behaviour\n loadPageSync: (rawPath, options = {}) =>\n instance.loadPageSync(rawPath, options),\n prefetch: rawPath => instance.prefetch(rawPath),\n isPageNotFound: rawPath => instance.isPageNotFound(rawPath),\n hovering: rawPath => instance.hovering(rawPath),\n loadAppData: () => instance.loadAppData(),\n}\n\nexport default publicLoader\n\nexport function getStaticQueryResults() {\n if (instance) {\n return instance.staticQueryDb\n } else {\n return {}\n }\n}\n","import { useEffect } from \"react\"\n\n/*\n * Calls callback in an effect and renders children\n */\nexport function FireCallbackInEffect({ children, callback }) {\n useEffect(() => {\n callback()\n })\n\n return children\n}\n","export const VALID_NODE_NAMES = [\n `link`,\n `meta`,\n `style`,\n `title`,\n `base`,\n `noscript`,\n `script`,\n]\n","import { VALID_NODE_NAMES } from \"./constants\"\n\n/**\n * Filter the props coming from a page down to just the ones that are relevant for head.\n * This e.g. filters out properties that are undefined during SSR.\n */\nexport function filterHeadProps(input) {\n return {\n location: {\n pathname: input.location.pathname,\n },\n params: input.params,\n data: input.data || {},\n pageContext: input.pageContext,\n }\n}\n\n/**\n * Throw error if Head export is not a valid\n */\nexport function headExportValidator(head) {\n if (typeof head !== `function`)\n throw new Error(\n `Expected \"Head\" export to be a function got \"${typeof head}\".`\n )\n}\n\n/**\n * Warn once for same messsage\n */\nlet warnOnce = _ => {}\nif (process.env.NODE_ENV !== `production`) {\n const warnings = new Set()\n warnOnce = msg => {\n if (!warnings.has(msg)) {\n console.warn(msg)\n }\n warnings.add(msg)\n }\n}\n\n/**\n * Warn for invalid tags in head.\n * @param {string} tagName\n */\nexport function warnForInvalidTags(tagName) {\n if (process.env.NODE_ENV !== `production`) {\n const warning = `<${tagName}> is not a valid head element. Please use one of the following: ${VALID_NODE_NAMES.join(\n `, `\n )}`\n\n warnOnce(warning)\n }\n}\n\n/**\n * When a `nonce` is present on an element, browsers such as Chrome and Firefox strip it out of the\n * actual HTML attributes for security reasons *when the element is added to the document*. Thus,\n * given two equivalent elements that have nonces, `Element,isEqualNode()` will return false if one\n * of those elements gets added to the document. Although the `element.nonce` property will be the\n * same for both elements, the one that was added to the document will return an empty string for\n * its nonce HTML attribute value.\n *\n * This custom `isEqualNode()` function therefore removes the nonce value from the `newTag` before\n * comparing it to `oldTag`, restoring it afterwards.\n *\n * For more information, see:\n * https://bugs.chromium.org/p/chromium/issues/detail?id=1211471#c12\n */\nexport function isEqualNode(oldTag, newTag) {\n if (oldTag instanceof HTMLElement && newTag instanceof HTMLElement) {\n const nonce = newTag.getAttribute(`nonce`)\n // Only strip the nonce if `oldTag` has had it stripped. An element's nonce attribute will not\n // be stripped if there is no content security policy response header that includes a nonce.\n if (nonce && !oldTag.getAttribute(`nonce`)) {\n const cloneTag = newTag.cloneNode(true)\n cloneTag.setAttribute(`nonce`, ``)\n cloneTag.nonce = nonce\n return nonce === oldTag.nonce && oldTag.isEqualNode(cloneTag)\n }\n }\n\n return oldTag.isEqualNode(newTag)\n}\n\nexport function diffNodes({ oldNodes, newNodes, onStale, onNew }) {\n for (const existingHeadElement of oldNodes) {\n const indexInNewNodes = newNodes.findIndex(e =>\n isEqualNode(e, existingHeadElement)\n )\n\n if (indexInNewNodes === -1) {\n onStale(existingHeadElement)\n } else {\n // this node is re-created as-is, so we keep old node, and remove it from list of new nodes (as we handled it already here)\n newNodes.splice(indexInNewNodes, 1)\n }\n }\n\n // remaing new nodes didn't have matching old node, so need to be added\n for (const newNode of newNodes) {\n onNew(newNode)\n }\n}\n","import React from \"react\"\nimport { useEffect } from \"react\"\nimport { StaticQueryContext } from \"gatsby\"\nimport { LocationProvider } from \"@gatsbyjs/reach-router\"\nimport { reactDOMUtils } from \"../react-dom-utils\"\nimport { FireCallbackInEffect } from \"./components/fire-callback-in-effect\"\nimport { VALID_NODE_NAMES } from \"./constants\"\nimport {\n headExportValidator,\n filterHeadProps,\n warnForInvalidTags,\n diffNodes,\n} from \"./utils\"\n\nconst hiddenRoot = document.createElement(`div`)\n\nconst removePrevHeadElements = () => {\n const prevHeadNodes = document.querySelectorAll(`[data-gatsby-head]`)\n\n for (const node of prevHeadNodes) {\n node.parentNode.removeChild(node)\n }\n}\n\nconst onHeadRendered = () => {\n const validHeadNodes = []\n\n const seenIds = new Map()\n for (const node of hiddenRoot.childNodes) {\n const nodeName = node.nodeName.toLowerCase()\n const id = node.attributes?.id?.value\n\n if (!VALID_NODE_NAMES.includes(nodeName)) {\n warnForInvalidTags(nodeName)\n } else {\n let clonedNode = node.cloneNode(true)\n clonedNode.setAttribute(`data-gatsby-head`, true)\n\n // Create an element for scripts to make script work\n if (clonedNode.nodeName.toLowerCase() === `script`) {\n const script = document.createElement(`script`)\n for (const attr of clonedNode.attributes) {\n script.setAttribute(attr.name, attr.value)\n }\n script.innerHTML = clonedNode.innerHTML\n clonedNode = script\n }\n\n if (id) {\n if (!seenIds.has(id)) {\n validHeadNodes.push(clonedNode)\n seenIds.set(id, validHeadNodes.length - 1)\n } else {\n const indexOfPreviouslyInsertedNode = seenIds.get(id)\n validHeadNodes[indexOfPreviouslyInsertedNode].parentNode?.removeChild(\n validHeadNodes[indexOfPreviouslyInsertedNode]\n )\n validHeadNodes[indexOfPreviouslyInsertedNode] = clonedNode\n }\n } else {\n validHeadNodes.push(clonedNode)\n }\n }\n }\n\n const existingHeadElements = document.querySelectorAll(`[data-gatsby-head]`)\n\n if (existingHeadElements.length === 0) {\n document.head.append(...validHeadNodes)\n return\n }\n\n const newHeadNodes = []\n diffNodes({\n oldNodes: existingHeadElements,\n newNodes: validHeadNodes,\n onStale: node => node.parentNode.removeChild(node),\n onNew: node => newHeadNodes.push(node),\n })\n\n document.head.append(...newHeadNodes)\n}\n\nif (process.env.BUILD_STAGE === `develop`) {\n // We set up observer to be able to regenerate after react-refresh\n // updates our hidden element.\n const observer = new MutationObserver(onHeadRendered)\n observer.observe(hiddenRoot, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true,\n })\n}\n\nexport function headHandlerForBrowser({\n pageComponent,\n staticQueryResults,\n pageComponentProps,\n}) {\n useEffect(() => {\n if (pageComponent?.Head) {\n headExportValidator(pageComponent.Head)\n\n const { render } = reactDOMUtils()\n\n const Head = pageComponent.Head\n\n render(\n // just a hack to call the callback after react has done first render\n // Note: In dev, we call onHeadRendered twice( in FireCallbackInEffect and after mutualution observer dectects initail render into hiddenRoot) this is for hot reloading\n // In Prod we only call onHeadRendered in FireCallbackInEffect to render to head\n \n \n \n \n \n \n ,\n hiddenRoot\n )\n }\n\n return () => {\n removePrevHeadElements()\n }\n })\n}\n","import React, { Suspense, createElement } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport { grabMatchParams } from \"./find-path\"\nimport { headHandlerForBrowser } from \"./head/head-export-handler-for-browser\"\n\n// Renders page\nfunction PageRenderer(props) {\n const pageComponentProps = {\n ...props,\n params: {\n ...grabMatchParams(props.location.pathname),\n ...props.pageResources.json.pageContext.__params,\n },\n }\n\n const preferDefault = m => (m && m.default) || m\n\n let pageElement\n if (props.pageResources.partialHydration) {\n pageElement = props.pageResources.partialHydration\n } else {\n pageElement = createElement(preferDefault(props.pageResources.component), {\n ...pageComponentProps,\n key: props.path || props.pageResources.page.path,\n })\n }\n\n const pageComponent = props.pageResources.head\n\n headHandlerForBrowser({\n pageComponent,\n staticQueryResults: props.pageResources.staticQueryResults,\n pageComponentProps,\n })\n\n const wrappedPage = apiRunner(\n `wrapPageElement`,\n {\n element: pageElement,\n props: pageComponentProps,\n },\n pageElement,\n ({ result }) => {\n return { element: result, props: pageComponentProps }\n }\n ).pop()\n\n return wrappedPage\n}\n\nPageRenderer.propTypes = {\n location: PropTypes.object.isRequired,\n pageResources: PropTypes.object.isRequired,\n data: PropTypes.object,\n pageContext: PropTypes.object.isRequired,\n}\n\nexport default PageRenderer\n","// This is extracted to separate module because it's shared\n// between browser and SSR code\nexport const RouteAnnouncerProps = {\n id: `gatsby-announcer`,\n style: {\n position: `absolute`,\n top: 0,\n width: 1,\n height: 1,\n padding: 0,\n overflow: `hidden`,\n clip: `rect(0, 0, 0, 0)`,\n whiteSpace: `nowrap`,\n border: 0,\n },\n \"aria-live\": `assertive`,\n \"aria-atomic\": `true`,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport emitter from \"./emitter\"\nimport { RouteAnnouncerProps } from \"./route-announcer-props\"\nimport { navigate as reachNavigate } from \"@gatsbyjs/reach-router\"\nimport { globalHistory } from \"@gatsbyjs/reach-router/lib/history\"\nimport { parsePath } from \"gatsby-link\"\n\nfunction maybeRedirect(pathname) {\n const redirect = maybeGetBrowserRedirect(pathname)\n const { hash, search } = window.location\n\n if (redirect != null) {\n window.___replace(redirect.toPath + search + hash)\n return true\n } else {\n return false\n }\n}\n\n// Catch unhandled chunk loading errors and force a restart of the app.\nlet nextRoute = ``\n\nwindow.addEventListener(`unhandledrejection`, event => {\n if (/loading chunk \\d* failed./i.test(event.reason)) {\n if (nextRoute) {\n window.location.pathname = nextRoute\n }\n }\n})\n\nconst onPreRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n nextRoute = location.pathname\n apiRunner(`onPreRouteUpdate`, { location, prevLocation })\n }\n}\n\nconst onRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onRouteUpdate`, { location, prevLocation })\n if (\n process.env.GATSBY_EXPERIMENTAL_QUERY_ON_DEMAND &&\n process.env.GATSBY_QUERY_ON_DEMAND_LOADING_INDICATOR === `true`\n ) {\n emitter.emit(`onRouteUpdate`, { location, prevLocation })\n }\n }\n}\n\nconst navigate = (to, options = {}) => {\n // Support forward/backward navigation with numbers\n // navigate(-2) (jumps back 2 history steps)\n // navigate(2) (jumps forward 2 history steps)\n if (typeof to === `number`) {\n globalHistory.navigate(to)\n return\n }\n\n const { pathname, search, hash } = parsePath(to)\n const redirect = maybeGetBrowserRedirect(pathname)\n\n // If we're redirecting, just replace the passed in pathname\n // to the one we want to redirect to.\n if (redirect) {\n to = redirect.toPath + search + hash\n }\n\n // If we had a service worker update, no matter the path, reload window and\n // reset the pathname whitelist\n if (window.___swUpdated) {\n window.location = pathname + search + hash\n return\n }\n\n // Start a timer to wait for a second before transitioning and showing a\n // loader in case resources aren't around yet.\n const timeoutId = setTimeout(() => {\n emitter.emit(`onDelayedLoadPageResources`, { pathname })\n apiRunner(`onRouteUpdateDelayed`, {\n location: window.location,\n })\n }, 1000)\n\n loader.loadPage(pathname + search).then(pageResources => {\n // If no page resources, then refresh the page\n // Do this, rather than simply `window.location.reload()`, so that\n // pressing the back/forward buttons work - otherwise when pressing\n // back, the browser will just change the URL and expect JS to handle\n // the change, which won't always work since it might not be a Gatsby\n // page.\n if (!pageResources || pageResources.status === PageResourceStatus.Error) {\n window.history.replaceState({}, ``, location.href)\n window.location = pathname\n clearTimeout(timeoutId)\n return\n }\n\n // If the loaded page has a different compilation hash to the\n // window, then a rebuild has occurred on the server. Reload.\n if (process.env.NODE_ENV === `production` && pageResources) {\n if (\n pageResources.page.webpackCompilationHash !==\n window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n window.location = pathname + search + hash\n }\n }\n reachNavigate(to, options)\n clearTimeout(timeoutId)\n })\n}\n\nfunction shouldUpdateScroll(prevRouterProps, { location }) {\n const { pathname, hash } = location\n const results = apiRunner(`shouldUpdateScroll`, {\n prevRouterProps,\n // `pathname` for backwards compatibility\n pathname,\n routerProps: { location },\n getSavedScrollPosition: args => [\n 0,\n // FIXME this is actually a big code smell, we should fix this\n // eslint-disable-next-line @babel/no-invalid-this\n this._stateStorage.read(args, args.key),\n ],\n })\n if (results.length > 0) {\n // Use the latest registered shouldUpdateScroll result, this allows users to override plugin's configuration\n // @see https://github.com/gatsbyjs/gatsby/issues/12038\n return results[results.length - 1]\n }\n\n if (prevRouterProps) {\n const {\n location: { pathname: oldPathname },\n } = prevRouterProps\n if (oldPathname === pathname) {\n // Scroll to element if it exists, if it doesn't, or no hash is provided,\n // scroll to top.\n return hash ? decodeURI(hash.slice(1)) : [0, 0]\n }\n }\n return true\n}\n\nfunction init() {\n // The \"scroll-behavior\" package expects the \"action\" to be on the location\n // object so let's copy it over.\n globalHistory.listen(args => {\n args.location.action = args.action\n })\n\n window.___push = to => navigate(to, { replace: false })\n window.___replace = to => navigate(to, { replace: true })\n window.___navigate = (to, options) => navigate(to, options)\n}\n\nclass RouteAnnouncer extends React.Component {\n constructor(props) {\n super(props)\n this.announcementRef = React.createRef()\n }\n\n componentDidUpdate(prevProps, nextProps) {\n requestAnimationFrame(() => {\n let pageName = `new page at ${this.props.location.pathname}`\n if (document.title) {\n pageName = document.title\n }\n const pageHeadings = document.querySelectorAll(`#gatsby-focus-wrapper h1`)\n if (pageHeadings && pageHeadings.length) {\n pageName = pageHeadings[0].textContent\n }\n const newAnnouncement = `Navigated to ${pageName}`\n if (this.announcementRef.current) {\n const oldAnnouncement = this.announcementRef.current.innerText\n if (oldAnnouncement !== newAnnouncement) {\n this.announcementRef.current.innerText = newAnnouncement\n }\n }\n })\n }\n\n render() {\n return
\n }\n}\n\nconst compareLocationProps = (prevLocation, nextLocation) => {\n if (prevLocation.href !== nextLocation.href) {\n return true\n }\n\n if (prevLocation?.state?.key !== nextLocation?.state?.key) {\n return true\n }\n\n return false\n}\n\n// Fire on(Pre)RouteUpdate APIs\nclass RouteUpdates extends React.Component {\n constructor(props) {\n super(props)\n onPreRouteUpdate(props.location, null)\n }\n\n componentDidMount() {\n onRouteUpdate(this.props.location, null)\n }\n\n shouldComponentUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onPreRouteUpdate(this.props.location, prevProps.location)\n return true\n }\n return false\n }\n\n componentDidUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onRouteUpdate(this.props.location, prevProps.location)\n }\n }\n\n render() {\n return (\n \n {this.props.children}\n \n \n )\n }\n}\n\nRouteUpdates.propTypes = {\n location: PropTypes.object.isRequired,\n}\n\nexport { init, shouldUpdateScroll, RouteUpdates, maybeGetBrowserRedirect }\n","// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nfunction shallowDiffers(a, b) {\n for (var i in a) {\n if (!(i in b)) return true;\n }for (var _i in b) {\n if (a[_i] !== b[_i]) return true;\n }return false;\n}\n\nexport default (function (instance, nextProps, nextState) {\n return shallowDiffers(instance.props, nextProps) || shallowDiffers(instance.state, nextState);\n});","import React from \"react\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport shallowCompare from \"shallow-compare\"\n\nclass EnsureResources extends React.Component {\n constructor(props) {\n super()\n const { location, pageResources } = props\n this.state = {\n location: { ...location },\n pageResources:\n pageResources ||\n loader.loadPageSync(location.pathname + location.search, {\n withErrorDetails: true,\n }),\n }\n }\n\n static getDerivedStateFromProps({ location }, prevState) {\n if (prevState.location.href !== location.href) {\n const pageResources = loader.loadPageSync(\n location.pathname + location.search,\n {\n withErrorDetails: true,\n }\n )\n\n return {\n pageResources,\n location: { ...location },\n }\n }\n\n return {\n location: { ...location },\n }\n }\n\n loadResources(rawPath) {\n loader.loadPage(rawPath).then(pageResources => {\n if (pageResources && pageResources.status !== PageResourceStatus.Error) {\n this.setState({\n location: { ...window.location },\n pageResources,\n })\n } else {\n window.history.replaceState({}, ``, location.href)\n window.location = rawPath\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n // Always return false if we're missing resources.\n if (!nextState.pageResources) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n if (\n process.env.BUILD_STAGE === `develop` &&\n nextState.pageResources.stale\n ) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n // Check if the component or json have changed.\n if (this.state.pageResources !== nextState.pageResources) {\n return true\n }\n if (\n this.state.pageResources.component !== nextState.pageResources.component\n ) {\n return true\n }\n\n if (this.state.pageResources.json !== nextState.pageResources.json) {\n return true\n }\n // Check if location has changed on a page using internal routing\n // via matchPath configuration.\n if (\n this.state.location.key !== nextState.location.key &&\n nextState.pageResources.page &&\n (nextState.pageResources.page.matchPath ||\n nextState.pageResources.page.path)\n ) {\n return true\n }\n return shallowCompare(this, nextProps, nextState)\n }\n\n render() {\n if (\n process.env.NODE_ENV !== `production` &&\n (!this.state.pageResources ||\n this.state.pageResources.status === PageResourceStatus.Error)\n ) {\n const message = `EnsureResources was not able to find resources for path: \"${this.props.location.pathname}\"\nThis typically means that an issue occurred building components for that path.\nRun \\`gatsby clean\\` to remove any cached elements.`\n if (this.state.pageResources?.error) {\n console.error(message)\n throw this.state.pageResources.error\n }\n\n throw new Error(message)\n }\n\n return this.props.children(this.state)\n }\n}\n\nexport default EnsureResources\n","import { apiRunner, apiRunnerAsync } from \"./api-runner-browser\"\nimport React from \"react\"\nimport { Router, navigate, Location, BaseContext } from \"@gatsbyjs/reach-router\"\nimport { ScrollContext } from \"gatsby-react-router-scroll\"\nimport { StaticQueryContext } from \"gatsby\"\nimport {\n shouldUpdateScroll,\n init as navigationInit,\n RouteUpdates,\n} from \"./navigation\"\nimport emitter from \"./emitter\"\nimport PageRenderer from \"./page-renderer\"\nimport asyncRequires from \"$virtual/async-requires\"\nimport {\n setLoader,\n ProdLoader,\n publicLoader,\n PageResourceStatus,\n getStaticQueryResults,\n} from \"./loader\"\nimport EnsureResources from \"./ensure-resources\"\nimport stripPrefix from \"./strip-prefix\"\n\n// Generated during bootstrap\nimport matchPaths from \"$virtual/match-paths.json\"\nimport { reactDOMUtils } from \"./react-dom-utils\"\n\nconst loader = new ProdLoader(asyncRequires, matchPaths, window.pageData)\nsetLoader(loader)\nloader.setApiRunner(apiRunner)\n\nconst { render, hydrate } = reactDOMUtils()\n\nwindow.asyncRequires = asyncRequires\nwindow.___emitter = emitter\nwindow.___loader = publicLoader\n\nnavigationInit()\n\nconst reloadStorageKey = `gatsby-reload-compilation-hash-match`\n\napiRunnerAsync(`onClientEntry`).then(() => {\n // Let plugins register a service worker. The plugin just needs\n // to return true.\n if (apiRunner(`registerServiceWorker`).filter(Boolean).length > 0) {\n require(`./register-service-worker`)\n }\n\n // In gatsby v2 if Router is used in page using matchPaths\n // paths need to contain full path.\n // For example:\n // - page have `/app/*` matchPath\n // - inside template user needs to use `/app/xyz` as path\n // Resetting `basepath`/`baseuri` keeps current behaviour\n // to not introduce breaking change.\n // Remove this in v3\n const RouteHandler = props => (\n \n \n \n )\n\n const DataContext = React.createContext({})\n\n class GatsbyRoot extends React.Component {\n render() {\n const { children } = this.props\n return (\n \n {({ location }) => (\n \n {({ pageResources, location }) => {\n if (pageResources.partialHydration) {\n return (\n \n {children}\n \n )\n } else {\n const staticQueryResults = getStaticQueryResults()\n return (\n \n \n {children}\n \n \n )\n }\n }}\n \n )}\n \n )\n }\n }\n\n class LocationHandler extends React.Component {\n render() {\n return (\n \n {({ pageResources, location }) => (\n \n \n \n \n \n \n \n )}\n \n )\n }\n }\n\n const { pagePath, location: browserLoc } = window\n\n // Explicitly call navigate if the canonical path (window.pagePath)\n // is different to the browser path (window.location.pathname). SSR\n // page paths might include search params, while SSG and DSG won't.\n // If page path include search params we also compare query params.\n // But only if NONE of the following conditions hold:\n //\n // - The url matches a client side route (page.matchPath)\n // - it's a 404 page\n // - it's the offline plugin shell (/offline-plugin-app-shell-fallback/)\n if (\n pagePath &&\n __BASE_PATH__ + pagePath !==\n browserLoc.pathname + (pagePath.includes(`?`) ? browserLoc.search : ``) &&\n !(\n loader.findMatchPath(stripPrefix(browserLoc.pathname, __BASE_PATH__)) ||\n pagePath.match(/^\\/(404|500)(\\/?|.html)$/) ||\n pagePath.match(/^\\/offline-plugin-app-shell-fallback\\/?$/)\n )\n ) {\n navigate(\n __BASE_PATH__ +\n pagePath +\n (!pagePath.includes(`?`) ? browserLoc.search : ``) +\n browserLoc.hash,\n {\n replace: true,\n }\n )\n }\n\n // It's possible that sessionStorage can throw an exception if access is not granted, see https://github.com/gatsbyjs/gatsby/issues/34512\n const getSessionStorage = () => {\n try {\n return sessionStorage\n } catch {\n return null\n }\n }\n\n publicLoader.loadPage(browserLoc.pathname + browserLoc.search).then(page => {\n const sessionStorage = getSessionStorage()\n\n if (\n page?.page?.webpackCompilationHash &&\n page.page.webpackCompilationHash !== window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n // We have not matching html + js (inlined `window.___webpackCompilationHash`)\n // with our data (coming from `app-data.json` file). This can cause issues such as\n // errors trying to load static queries (as list of static queries is inside `page-data`\n // which might not match to currently loaded `.js` scripts).\n // We are making attempt to reload if hashes don't match, but we also have to handle case\n // when reload doesn't fix it (possibly broken deploy) so we don't end up in infinite reload loop\n if (sessionStorage) {\n const isReloaded = sessionStorage.getItem(reloadStorageKey) === `1`\n\n if (!isReloaded) {\n sessionStorage.setItem(reloadStorageKey, `1`)\n window.location.reload(true)\n return\n }\n }\n }\n\n if (sessionStorage) {\n sessionStorage.removeItem(reloadStorageKey)\n }\n\n if (!page || page.status === PageResourceStatus.Error) {\n const message = `page resources for ${browserLoc.pathname} not found. Not rendering React`\n\n // if the chunk throws an error we want to capture the real error\n // This should help with https://github.com/gatsbyjs/gatsby/issues/19618\n if (page && page.error) {\n console.error(message)\n throw page.error\n }\n\n throw new Error(message)\n }\n\n const SiteRoot = apiRunner(\n `wrapRootElement`,\n { element: },\n ,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n const App = function App() {\n const onClientEntryRanRef = React.useRef(false)\n\n React.useEffect(() => {\n if (!onClientEntryRanRef.current) {\n onClientEntryRanRef.current = true\n if (performance.mark) {\n performance.mark(`onInitialClientRender`)\n }\n\n apiRunner(`onInitialClientRender`)\n }\n }, [])\n\n return {SiteRoot}\n }\n\n const focusEl = document.getElementById(`gatsby-focus-wrapper`)\n\n // Client only pages have any empty body so we just do a normal\n // render to avoid React complaining about hydration mis-matches.\n let defaultRenderer = render\n if (focusEl && focusEl.children.length) {\n defaultRenderer = hydrate\n }\n\n const renderer = apiRunner(\n `replaceHydrateFunction`,\n undefined,\n defaultRenderer\n )[0]\n\n function runRender() {\n const rootElement =\n typeof window !== `undefined`\n ? document.getElementById(`___gatsby`)\n : null\n\n renderer(, rootElement)\n }\n\n // https://github.com/madrobby/zepto/blob/b5ed8d607f67724788ec9ff492be297f64d47dfc/src/zepto.js#L439-L450\n // TODO remove IE 10 support\n const doc = document\n if (\n doc.readyState === `complete` ||\n (doc.readyState !== `loading` && !doc.documentElement.doScroll)\n ) {\n setTimeout(function () {\n runRender()\n }, 0)\n } else {\n const handler = function () {\n doc.removeEventListener(`DOMContentLoaded`, handler, false)\n window.removeEventListener(`load`, handler, false)\n\n runRender()\n }\n\n doc.addEventListener(`DOMContentLoaded`, handler, false)\n window.addEventListener(`load`, handler, false)\n }\n\n return\n })\n})\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport loader from \"./loader\"\nimport InternalPageRenderer from \"./page-renderer\"\n\nconst ProdPageRenderer = ({ location }) => {\n const pageResources = loader.loadPageSync(location.pathname)\n if (!pageResources) {\n return null\n }\n return React.createElement(InternalPageRenderer, {\n location,\n pageResources,\n ...pageResources.json,\n })\n}\n\nProdPageRenderer.propTypes = {\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n}\n\nexport default ProdPageRenderer\n","const preferDefault = m => (m && m.default) || m\n\nif (process.env.BUILD_STAGE === `develop`) {\n module.exports = preferDefault(require(`./public-page-renderer-dev`))\n} else if (process.env.BUILD_STAGE === `build-javascript`) {\n module.exports = preferDefault(require(`./public-page-renderer-prod`))\n} else {\n module.exports = () => null\n}\n","/* global HAS_REACT_18 */\n\nconst map = new WeakMap()\n\n/**\n * Since react 18, render and hydrate moved to react-dom/client\n * returns correct hydrate and render function based on installed react-dom version\n */\n\nexport function reactDOMUtils() {\n let render\n let hydrate\n\n if (HAS_REACT_18) {\n const reactDomClient = require(`react-dom/client`)\n\n render = (Component, el) => {\n let root = map.get(el)\n if (!root) {\n map.set(el, (root = reactDomClient.createRoot(el)))\n }\n root.render(Component)\n }\n\n hydrate = (Component, el) => reactDomClient.hydrateRoot(el, Component)\n } else {\n const reactDomClient = require(`react-dom`)\n render = reactDomClient.render\n hydrate = reactDomClient.hydrate\n }\n\n return { render, hydrate }\n}\n","exports.polyfill = Component => Component\n","import redirects from \"./redirects.json\"\n\n// Convert to a map for faster lookup in maybeRedirect()\n\nconst redirectMap = new Map()\nconst redirectIgnoreCaseMap = new Map()\n\nredirects.forEach(redirect => {\n if (redirect.ignoreCase) {\n redirectIgnoreCaseMap.set(redirect.fromPath, redirect)\n } else {\n redirectMap.set(redirect.fromPath, redirect)\n }\n})\n\nexport function maybeGetBrowserRedirect(pathname) {\n let redirect = redirectMap.get(pathname)\n if (!redirect) {\n redirect = redirectIgnoreCaseMap.get(pathname.toLowerCase())\n }\n return redirect\n}\n","import { apiRunner } from \"./api-runner-browser\"\n\nif (\n window.location.protocol !== `https:` &&\n window.location.hostname !== `localhost`\n) {\n console.error(\n `Service workers can only be used over HTTPS, or on localhost for development`\n )\n} else if (`serviceWorker` in navigator) {\n navigator.serviceWorker\n .register(`${__BASE_PATH__}/sw.js`)\n .then(function (reg) {\n reg.addEventListener(`updatefound`, () => {\n apiRunner(`onServiceWorkerUpdateFound`, { serviceWorker: reg })\n // The updatefound event implies that reg.installing is set; see\n // https://w3c.github.io/ServiceWorker/#service-worker-registration-updatefound-event\n const installingWorker = reg.installing\n console.log(`installingWorker`, installingWorker)\n installingWorker.addEventListener(`statechange`, () => {\n switch (installingWorker.state) {\n case `installed`:\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and the fresh content will\n // have been added to the cache.\n\n // We set a flag so Gatsby Link knows to refresh the page on next navigation attempt\n window.___swUpdated = true\n // We call the onServiceWorkerUpdateReady API so users can show update prompts.\n apiRunner(`onServiceWorkerUpdateReady`, { serviceWorker: reg })\n\n // If resources failed for the current page, reload.\n if (window.___failedResources) {\n console.log(`resources failed, SW updated - reloading`)\n window.location.reload()\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a \"Content is cached for offline use.\" message.\n console.log(`Content is now available offline!`)\n\n // Post to service worker that install is complete.\n // Delay to allow time for the event listener to be added --\n // otherwise fetch is called too soon and resources aren't cached.\n apiRunner(`onServiceWorkerInstalled`, { serviceWorker: reg })\n }\n break\n\n case `redundant`:\n console.error(`The installing service worker became redundant.`)\n apiRunner(`onServiceWorkerRedundant`, { serviceWorker: reg })\n break\n\n case `activated`:\n apiRunner(`onServiceWorkerActive`, { serviceWorker: reg })\n break\n }\n })\n })\n })\n .catch(function (e) {\n console.error(`Error during service worker registration:`, e)\n })\n}\n","/**\n * Remove a prefix from a string. Return the input string if the given prefix\n * isn't found.\n */\n\nexport default function stripPrefix(str, prefix = ``) {\n if (!prefix) {\n return str\n }\n\n if (str === prefix) {\n return `/`\n }\n\n if (str.startsWith(`${prefix}/`)) {\n return str.slice(prefix.length)\n }\n\n return str\n}\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\n\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n} // Inlined version of the `symbol-observable` polyfill\n\n\nvar $$observable = function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n}();\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\n\n\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\n\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n} // Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\n\n\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (process.env.NODE_ENV !== 'production') {\n typeOfVal = miniKindOf(val);\n }\n\n return typeOfVal;\n}\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\n\n\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\n\n\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore };","import {\r\n loadingFailAction,\r\n loadingStartAction,\r\n loadingSuccessAction,\r\n} from \"@wisr/common\";\r\nimport Axios from \"axios\";\r\nimport { Epic } from \"redux-observable\";\r\nimport { concat, from, Observable, of } from \"rxjs\";\r\nimport { catchError, concatMap, map } from \"rxjs/operators\";\r\n\r\nimport { QUOTE_BFF } from \"../shared/url.constants\";\r\nimport { Aggregator } from \"./aggregator\";\r\nimport {\r\n AggregatorGetAction,\r\n AggregatorGetActionType,\r\n aggregatorGetSuccessAction,\r\n} from \"./aggregator.actions\";\r\n\r\nexport const GET_AGGREGATOR_LOADING = \"GET_AGGREGATOR_LOADING\";\r\nexport const getAggregatorEpic: Epic = (actions) =>\r\n actions.ofType(AggregatorGetActionType).pipe(\r\n concatMap((action) =>\r\n concat(\r\n of(loadingStartAction(GET_AGGREGATOR_LOADING)),\r\n getAggregatorById(action.aggregatorId).pipe(\r\n concatMap((aggregator) => [\r\n aggregatorGetSuccessAction(aggregator),\r\n loadingSuccessAction(GET_AGGREGATOR_LOADING),\r\n ])\r\n )\r\n )\r\n ),\r\n catchError(() =>\r\n of(loadingFailAction(GET_AGGREGATOR_LOADING, \"Unexpected Error\"))\r\n )\r\n );\r\n\r\nfunction getAggregatorById(aid: string): Observable {\r\n return from(\r\n Axios.get>(\r\n `${QUOTE_BFF}/aggregator/${aid}`\r\n )\r\n ).pipe(map((rsp) => ({ id: aid, ...rsp.data })));\r\n}\r\n","import { isBrowser } from \"../shared/gatsby.utils\";\r\nimport {\r\n ApplicationAction,\r\n ApplicationClearStateActionType,\r\n ApplicationGetContinueTokenSuccessActionType,\r\n ApplicationGetSuccessActionType,\r\n ApplicationUpdateNSRActionType,\r\n} from \"./application.actions\";\r\nimport { applicationFormDefaults } from \"./application-form.constants\";\r\n\r\n/** @todo this defaut value would probably be better placed */\r\n/* istanbul ignore next */\r\nconst continueToken = isBrowser()\r\n ? window.sessionStorage.getItem(\"ContinueToken\")\r\n : null;\r\nconst initialState: ApplicationState = {\r\n continueToken,\r\n rateCardVersion: \"\",\r\n rateCardVersionSecured: \"\",\r\n};\r\nexport const applicationReducer = (\r\n state = initialState,\r\n action: ApplicationAction\r\n): ApplicationState => {\r\n switch (action.type) {\r\n case ApplicationGetSuccessActionType:\r\n return {\r\n ...state,\r\n application: action.application,\r\n applicationRef: action.applicationRef,\r\n quoteRefId: action.quoteRefId,\r\n creditScore: action.creditScore,\r\n rateCardVersion: action.rateCardVersion,\r\n rateCardVersionSecured: action.rateCardVersionSecured,\r\n };\r\n\r\n case ApplicationGetContinueTokenSuccessActionType:\r\n return {\r\n ...state,\r\n continueToken: action.continueToken,\r\n };\r\n\r\n case ApplicationClearStateActionType:\r\n return {\r\n ...state,\r\n application: undefined,\r\n continueToken: null,\r\n applicationRef: undefined,\r\n };\r\n\r\n case ApplicationUpdateNSRActionType:\r\n return {\r\n ...state,\r\n nsrOutcome: action.nsrOutcome,\r\n submissionContinueToken: action.submissionContinueToken,\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport interface ApplicationState {\r\n application?: typeof applicationFormDefaults;\r\n continueToken: string | null;\r\n applicationRef?: string;\r\n quoteRefId?: string;\r\n nsrOutcome?: string;\r\n submissionContinueToken?: string;\r\n creditScore?: number;\r\n rateCardVersion: string;\r\n rateCardVersionSecured: string;\r\n}\r\n","import { Estimate, EstimateAcceptResponse, EstimateExtras } from \"./estimate\";\r\nimport {\r\n EstimateAcceptSuccessActionType,\r\n EstimateAction,\r\n EstimateCreateActionType,\r\n EstimateGetSuccessActionType,\r\n EstimateSaveExtrasActionType,\r\n EstimateUpdateNoMatchCountActionType,\r\n EstimateUpdateRepaymentActionType,\r\n} from \"./estimate.actions\";\r\n\r\nconst initialState = {\r\n noMatchCount: 0,\r\n};\r\n\r\nexport const estimateReducer = (\r\n state: EstimateState = initialState,\r\n action: EstimateAction\r\n) => {\r\n switch (action.type) {\r\n case EstimateCreateActionType:\r\n return { ...initialState, noMatchCount: state.noMatchCount };\r\n\r\n case EstimateSaveExtrasActionType:\r\n return {\r\n ...state,\r\n extras: action.extras,\r\n };\r\n\r\n case EstimateGetSuccessActionType:\r\n return {\r\n ...state,\r\n estimate: action.estimate,\r\n };\r\n\r\n case EstimateUpdateRepaymentActionType:\r\n return {\r\n ...state,\r\n estimate: action.estimate,\r\n };\r\n\r\n case EstimateUpdateNoMatchCountActionType:\r\n return {\r\n ...state,\r\n noMatchCount: state.noMatchCount + 1,\r\n };\r\n\r\n case EstimateAcceptSuccessActionType:\r\n return {\r\n ...state,\r\n estimateAcceptResponse: action.estimateAcceptResponse,\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport interface EstimateState {\r\n estimate?: Estimate;\r\n extras?: EstimateExtras;\r\n estimateAcceptResponse?: EstimateAcceptResponse;\r\n noMatchCount: number;\r\n}\r\n","import {\r\n loadingFailAction,\r\n loadingStartAction,\r\n loadingSuccessAction,\r\n} from \"@wisr/common\";\r\nimport Axios, { AxiosResponse } from \"axios\";\r\nimport { Epic } from \"redux-observable\";\r\nimport { concat, from, Observable, of } from \"rxjs\";\r\nimport { catchError, concatMap, map } from \"rxjs/operators\";\r\n\r\nimport { DASH_API } from \"../../shared/url.constants\";\r\nimport { TermsResponse } from \"./terms\";\r\nimport {\r\n TermsGetAction,\r\n TermsGetActionType,\r\n termsGetSuccessAction,\r\n} from \"./terms.actions\";\r\n\r\nexport const GET_TERMS_LOADING = \"GET_TERMS_LOADING\";\r\nexport const getTermsEpic: Epic = (actions) =>\r\n actions.ofType(TermsGetActionType).pipe(\r\n concatMap(() =>\r\n concat(\r\n of(loadingStartAction(GET_TERMS_LOADING)),\r\n getTerms().pipe(\r\n concatMap((termsResponse) => [\r\n termsGetSuccessAction(termsResponse),\r\n loadingSuccessAction(GET_TERMS_LOADING),\r\n ])\r\n )\r\n )\r\n ),\r\n catchError(() =>\r\n of(loadingFailAction(GET_TERMS_LOADING, \"Unexpected Error\"))\r\n )\r\n );\r\n\r\nfunction getTerms(): Observable {\r\n return from(\r\n Axios.get(`${DASH_API}/api/v1/rateestimate/terms-consent`)\r\n ).pipe(map((res: AxiosResponse) => res.data));\r\n}\r\n","import { Reducer } from \"redux\";\r\n\r\nimport { TermsResponse } from \"./terms\";\r\nimport { TermsAction, TermsGetSuccessActionType } from \"./terms.actions\";\r\n\r\nexport const termsReducer: Reducer = (\r\n state = {},\r\n action\r\n) => {\r\n switch (action.type) {\r\n case TermsGetSuccessActionType:\r\n return {\r\n terms: action.terms,\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport interface TermsState {\r\n terms?: TermsResponse | null;\r\n}\r\n","/* istanbul ignore file */\r\nimport { LoadingAction, loadingReducer, LoadingStore } from \"@wisr/common\";\r\nimport { applyMiddleware, combineReducers, createStore } from \"redux\";\r\nimport { combineEpics, createEpicMiddleware } from \"redux-observable\";\r\n\r\nimport { AggregatorAction } from \"./aggregator/aggregator.actions\";\r\nimport { getAggregatorEpic } from \"./aggregator/aggregator.epic\";\r\nimport {\r\n aggregatorReducer,\r\n AggregatorState,\r\n} from \"./aggregator/aggregator.reducer\";\r\nimport { ApplicationAction } from \"./application/application.actions\";\r\nimport {\r\n clearApplicationEpic,\r\n getApplicationContinueTokenEpic,\r\n getApplicationEpic,\r\n saveApplicationEpic,\r\n submitApplicationEpic,\r\n} from \"./application/application.epic\";\r\nimport {\r\n applicationReducer,\r\n ApplicationState,\r\n} from \"./application/application.reducer\";\r\nimport { CustomerAction } from \"./customer/customer.actions\";\r\nimport { customerReducer, CustomerState } from \"./customer/customer.reducer\";\r\nimport { EstimateAction } from \"./estimate/estimate.actions\";\r\nimport {\r\n acceptEstimateEpic,\r\n createEstimateEpic,\r\n getEstimateEpic,\r\n setAmountEpic,\r\n setLoantermEpic,\r\n updateQuoteJourneyEpic,\r\n} from \"./estimate/estimate.epic\";\r\n// Estimate\r\nimport { estimateReducer, EstimateState } from \"./estimate/estimate.reducer\";\r\nimport { PartnerReferralAction } from \"./partner-referral/partner-referral.actions\";\r\nimport { getPartnerReferralEpic } from \"./partner-referral/partner-referral.epic\";\r\nimport { PartnerReferralState } from \"./partner-referral/partner-referral.reducer\";\r\nimport { partnerReferralReducer } from \"./partner-referral/partner-referral.reducer\";\r\nimport { quoteFormReducer, QuoteFormState } from \"./quote/quote-form.reducer\";\r\nimport { TermsAction } from \"./quote/terms/terms.actions\";\r\nimport { getTermsEpic } from \"./quote/terms/terms.epic\";\r\nimport { termsReducer, TermsState } from \"./quote/terms/terms.reducer\";\r\nimport { NoopAction } from \"./shared/common.actions\";\r\n\r\nconst epics = combineEpics(\r\n createEstimateEpic,\r\n getEstimateEpic,\r\n setLoantermEpic,\r\n setAmountEpic,\r\n updateQuoteJourneyEpic,\r\n getAggregatorEpic,\r\n getApplicationEpic,\r\n getApplicationContinueTokenEpic,\r\n saveApplicationEpic,\r\n submitApplicationEpic,\r\n clearApplicationEpic,\r\n acceptEstimateEpic,\r\n getPartnerReferralEpic,\r\n getTermsEpic\r\n);\r\nconst epicMidleware = createEpicMiddleware<\r\n AppAction,\r\n AppAction,\r\n AppStore,\r\n /* eslint-disable @typescript-eslint/no-explicit-any */\r\n any\r\n>();\r\n\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\nexport const store = createStore(\r\n combineReducers({\r\n estimateState: estimateReducer,\r\n loadingState: loadingReducer,\r\n customerState: customerReducer,\r\n quoteFormState: quoteFormReducer,\r\n aggregatorState: aggregatorReducer,\r\n applicationState: applicationReducer,\r\n partnerReferralState: partnerReferralReducer,\r\n termsState: termsReducer,\r\n }),\r\n applyMiddleware(epicMidleware)\r\n);\r\n\r\nepicMidleware.run(epics);\r\n\r\nexport interface AppStore extends LoadingStore {\r\n estimateState: EstimateState;\r\n customerState: CustomerState;\r\n quoteFormState: QuoteFormState;\r\n aggregatorState: AggregatorState;\r\n applicationState: ApplicationState;\r\n partnerReferralState: PartnerReferralState;\r\n termsState: TermsState;\r\n}\r\n\r\nexport type AppAction =\r\n | EstimateAction\r\n | ApplicationAction\r\n | CustomerAction\r\n | LoadingAction\r\n | AggregatorAction\r\n | PartnerReferralAction\r\n | TermsAction\r\n | NoopAction;\r\n","import { Customer } from \"./customer\";\r\nimport {\r\n CustomerAction,\r\n CustomerSaveActionType,\r\n CustomerTokenSaveActionType,\r\n} from \"./customer.actions\";\r\n\r\nexport function customerReducer(\r\n state: CustomerState = {},\r\n action: CustomerAction\r\n) {\r\n switch (action.type) {\r\n case CustomerSaveActionType:\r\n return {\r\n ...state,\r\n customer: action.customer,\r\n };\r\n case CustomerTokenSaveActionType:\r\n return {\r\n ...state,\r\n wcToken: action.wcToken,\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport interface CustomerState {\r\n customer?: Customer;\r\n wcToken?: string;\r\n}\r\n","import { QuoteForm } from \"./quote-form\";\r\nimport { QuoteFormAction, QuoteFormSetActionType } from \"./quote-form.actions\";\r\n\r\nexport interface QuoteFormState {\r\n quoteForm?: QuoteForm;\r\n}\r\n\r\nexport function quoteFormReducer(\r\n state: QuoteFormState = {},\r\n action: QuoteFormAction\r\n) {\r\n switch (action.type) {\r\n case QuoteFormSetActionType:\r\n return {\r\n quoteForm: action.quoteForm,\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { Aggregator } from \"./aggregator\";\r\nimport {\r\n AggregatorAction,\r\n AggregatorGetSuccessActionType,\r\n AggregatorSetActionType,\r\n} from \"./aggregator.actions\";\r\n\r\nexport function aggregatorReducer(\r\n state: AggregatorState = {},\r\n action: AggregatorAction\r\n) {\r\n switch (action.type) {\r\n case AggregatorGetSuccessActionType:\r\n return {\r\n ...state,\r\n aggregator: action.aggregator,\r\n };\r\n case AggregatorSetActionType:\r\n return {\r\n ...state,\r\n bid: action.bid,\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport interface AggregatorState {\r\n aggregator?: Aggregator;\r\n bid?: string;\r\n}\r\n","import { Reducer } from \"redux\";\r\n\r\nimport {\r\n PartnerReferralAction,\r\n PartnerReferralGetSuccessActionType,\r\n} from \"./partner-referral.actions\";\r\n\r\nexport const partnerReferralReducer: Reducer<\r\n PartnerReferralState,\r\n PartnerReferralAction\r\n> = (state = {}, action) => {\r\n switch (action.type) {\r\n case PartnerReferralGetSuccessActionType:\r\n return {\r\n ...state,\r\n partnerUrl: action.partnerReferral.partnerUrl,\r\n error: action.partnerReferral.errorMessage,\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport interface PartnerReferralState {\r\n partnerUrl?: string | null;\r\n error?: string | null;\r\n}\r\n","import { installApplicationInsights } from \"@wisr/common\";\r\n\r\nimport { attachStore } from \"./src/attach-store\";\r\nimport { getConfig } from \"./src/shared/config.utils\";\r\n\r\ninstallApplicationInsights({\r\n instrumentationKey: getConfig().APP_INSIGHTS_INSTRUMENTATION_KEY,\r\n});\r\n\r\nexport const wrapRootElement = attachStore;\r\n","import { WrapRootElementNodeArgs } from \"gatsby\";\r\nimport React from \"react\";\r\nimport { Provider } from \"react-redux\";\r\n\r\nimport { store } from \"./store\";\r\n\r\nexport function attachStore({ element }: WrapRootElementNodeArgs) {\r\n return {element};\r\n}\r\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _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; };\n\nvar getLocation = function getLocation(source) {\n var _source$location = source.location,\n search = _source$location.search,\n hash = _source$location.hash,\n href = _source$location.href,\n origin = _source$location.origin,\n protocol = _source$location.protocol,\n host = _source$location.host,\n hostname = _source$location.hostname,\n port = _source$location.port;\n var pathname = source.location.pathname;\n\n\n if (!pathname && href && canUseDOM) {\n var url = new URL(href);\n pathname = url.pathname;\n }\n\n return {\n pathname: encodeURI(decodeURI(pathname)),\n search: search,\n hash: hash,\n href: href,\n origin: origin,\n protocol: protocol,\n host: host,\n hostname: hostname,\n port: port,\n state: source.history.state,\n key: source.history.state && source.history.state.key || \"initial\"\n };\n};\n\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n var resolveTransition = function resolveTransition() {};\n\n return {\n get location() {\n return location;\n },\n\n get transitioning() {\n return transitioning;\n },\n\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({ location: location, action: \"POP\" });\n };\n\n source.addEventListener(\"popstate\", popstateListener);\n\n return function () {\n source.removeEventListener(\"popstate\", popstateListener);\n listeners = listeners.filter(function (fn) {\n return fn !== listener;\n });\n };\n },\n navigate: function navigate(to) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n state = _ref.state,\n _ref$replace = _ref.replace,\n replace = _ref$replace === undefined ? false : _ref$replace;\n\n if (typeof to === \"number\") {\n source.history.go(to);\n } else {\n state = _extends({}, state, { key: Date.now() + \"\" });\n // try...catch iOS Safari limits to 100 pushState calls\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n }\n\n location = getLocation(source);\n transitioning = true;\n var transition = new Promise(function (res) {\n return resolveTransition = res;\n });\n listeners.forEach(function (listener) {\n return listener({ location: location, action: \"PUSH\" });\n });\n return transition;\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n\n var searchIndex = initialPath.indexOf(\"?\");\n var initialLocation = {\n pathname: searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,\n search: searchIndex > -1 ? initialPath.substr(searchIndex) : \"\"\n };\n var index = 0;\n var stack = [initialLocation];\n var states = [null];\n\n return {\n get location() {\n return stack[index];\n },\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n\n history: {\n get entries() {\n return stack;\n },\n get index() {\n return index;\n },\n get state() {\n return states[index];\n },\n pushState: function pushState(state, _, uri) {\n var _uri$split = uri.split(\"?\"),\n pathname = _uri$split[0],\n _uri$split$ = _uri$split[1],\n search = _uri$split$ === undefined ? \"\" : _uri$split$;\n\n index++;\n stack.push({ pathname: pathname, search: search.length ? \"?\" + search : search });\n states.push(state);\n },\n replaceState: function replaceState(state, _, uri) {\n var _uri$split2 = uri.split(\"?\"),\n pathname = _uri$split2[0],\n _uri$split2$ = _uri$split2[1],\n search = _uri$split2$ === undefined ? \"\" : _uri$split2$;\n\n stack[index] = { pathname: pathname, search: search };\n states[index] = state;\n },\n go: function go(to) {\n var newIndex = index + to;\n\n if (newIndex < 0 || newIndex > states.length - 1) {\n return;\n }\n\n index = newIndex;\n }\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\n\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate;\n\n////////////////////////////////////////////////////////////////////////////////\n\nexports.globalHistory = globalHistory;\nexports.navigate = navigate;\nexports.createHistory = createHistory;\nexports.createMemorySource = createMemorySource;","\"use strict\";\n\nexports.__esModule = true;\nexports.shallowCompare = exports.validateRedirect = exports.insertParams = exports.resolve = exports.match = exports.pick = exports.startsWith = undefined;\n\nvar _invariant = require(\"invariant\");\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// pick(routes, uri)\n//\n// Ranks and picks the best route to match. Each segment gets the highest\n// amount of points, then the type of segment gets an additional amount of\n// points where\n//\n// static > dynamic > splat > root\n//\n// This way we don't have to worry about the order of our routes, let the\n// computers do it.\n//\n// A route looks like this\n//\n// { path, default, value }\n//\n// And a returned match looks like:\n//\n// { route, params, uri }\n//\n// I know, I should use TypeScript not comments for these types.\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n\n if (route.default) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n\n if (isSplat(routeSegment)) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n var param = routeSegment.slice(1) || \"*\";\n params[param] = uriSegments.slice(index).map(decodeURIComponent).join(\"/\");\n break;\n }\n\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n\n var dynamicMatch = paramRe.exec(routeSegment);\n\n if (dynamicMatch && !isRootUri) {\n var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;\n !matchIsNotReserved ? process.env.NODE_ENV !== \"production\" ? (0, _invariant2.default)(false, \" dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : (0, _invariant2.default)(false) : void 0;\n var value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n\n return match || default_ || null;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\nvar match = function match(path, uri) {\n return pick([{ path: path }], uri);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// resolve(to, basepath)\n//\n// Resolves URIs as though every path is a directory, no files. Relative URIs\n// in the browser can feel awkward because not only can you be \"in a directory\"\n// you can be \"at a file\", too. For example\n//\n// browserSpecResolve('foo', '/bar/') => /bar/foo\n// browserSpecResolve('foo', '/bar') => /foo\n//\n// But on the command line of a file system, it's not as complicated, you can't\n// `cd` from a file, only directories. This way, links have to know less about\n// their current path. To go deeper you can do this:\n//\n// \n// // instead of\n// \n//\n// Just like `cd`, if you want to go deeper from the command line, you do this:\n//\n// cd deeper\n// # not\n// cd $(pwd)/deeper\n//\n// By treating every path as a directory, linking to relative paths should\n// require less contextual information and (fingers crossed) be more intuitive.\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname);\n\n // ?a=b, /users?b=c => /users?a=b\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n }\n\n // profile, /users/789 => /users/789/profile\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n }\n\n // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n for (var i = 0, l = allSegments.length; i < l; i++) {\n var segment = allSegments[i];\n if (segment === \"..\") segments.pop();else if (segment !== \".\") segments.push(segment);\n }\n\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\n\nvar insertParams = function insertParams(path, params) {\n var _path$split = path.split(\"?\"),\n pathBase = _path$split[0],\n _path$split$ = _path$split[1],\n query = _path$split$ === undefined ? \"\" : _path$split$;\n\n var segments = segmentize(pathBase);\n var constructedPath = \"/\" + segments.map(function (segment) {\n var match = paramRe.exec(segment);\n return match ? params[match[1]] : segment;\n }).join(\"/\");\n var _params$location = params.location;\n _params$location = _params$location === undefined ? {} : _params$location;\n var _params$location$sear = _params$location.search,\n search = _params$location$sear === undefined ? \"\" : _params$location$sear;\n\n var searchSplit = search.split(\"?\")[1] || \"\";\n constructedPath = addQuery(constructedPath, query, searchSplit);\n return constructedPath;\n};\n\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Junk\nvar paramRe = /^:(.+)/;\n\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\n\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\nvar isSplat = function isSplat(segment) {\n return segment && segment[0] === \"*\";\n};\n\nvar rankRoute = function rankRoute(route, index) {\n var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) {\n score += SEGMENT_POINTS;\n if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;\n return score;\n }, 0);\n return { route: route, score: score, index: index };\n};\n\nvar rankRoutes = function rankRoutes(routes) {\n return routes.map(rankRoute).sort(function (a, b) {\n return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;\n });\n};\n\nvar segmentize = function segmentize(uri) {\n return uri\n // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\n\nvar addQuery = function addQuery(pathname) {\n for (var _len = arguments.length, query = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n query[_key - 1] = arguments[_key];\n }\n\n query = query.filter(function (q) {\n return q && q.length > 0;\n });\n return pathname + (query && query.length > 0 ? \"?\" + query.join(\"&\") : \"\");\n};\n\nvar reservedNames = [\"uri\", \"path\"];\n\n/**\n * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\nvar shallowCompare = function shallowCompare(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n return obj1Keys.length === Object.keys(obj2).length && obj1Keys.every(function (key) {\n return obj2.hasOwnProperty(key) && obj1[key] === obj2[key];\n });\n};\n\n////////////////////////////////////////////////////////////////////////////////\nexports.startsWith = startsWith;\nexports.pick = pick;\nexports.match = match;\nexports.resolve = resolve;\nexports.insertParams = insertParams;\nexports.validateRedirect = validateRedirect;\nexports.shallowCompare = shallowCompare;","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { withLDProvider } from 'launchdarkly-react-client-sdk'\n\nexport const wrapRootElement = ({ element }, pluginOptions) => {\n if (!pluginOptions.clientSideID) {\n console.warn(\n 'LaunchDarkly SDK `clientSideID` is not configured. See https://github.com/launchdarkly/gatsby-plugin-launchdarkly#installation'\n )\n }\n const App = () => <>{element}\n const LDApp = withLDProvider(pluginOptions)(App)\n return \n}\nwrapRootElement.propTypes = {\n element: PropTypes.element.isRequired\n}\n","import { Aggregator } from \"./aggregator\";\r\n\r\nexport type AggregatorAction =\r\n | AggregatorGetAction\r\n | AggregatorGetSuccessAction\r\n | AggregatorSetAction;\r\n\r\nexport const AggregatorGetActionType = \"aggregator/get\" as const;\r\nexport type AggregatorGetAction = ReturnType;\r\nexport function aggregatorGetAction(aid: string) {\r\n return {\r\n type: AggregatorGetActionType,\r\n aggregatorId: aid,\r\n };\r\n}\r\n\r\nexport const AggregatorGetSuccessActionType = \"aggregator/get-success\" as const;\r\nexport type AggregatorGetSuccessAction = ReturnType<\r\n typeof aggregatorGetSuccessAction\r\n>;\r\n\r\nexport function aggregatorGetSuccessAction(aggregator: Aggregator) {\r\n return {\r\n type: AggregatorGetSuccessActionType,\r\n aggregator,\r\n };\r\n}\r\n\r\nexport const AggregatorSetActionType = \"aggregator/set\" as const;\r\nexport type AggregatorSetAction = ReturnType;\r\nexport function aggregatorSetAction(bid: string) {\r\n return {\r\n type: AggregatorSetActionType,\r\n bid: bid,\r\n };\r\n}\r\n","import { Application } from \"./application\";\r\nimport { applicationFormDefaults } from \"./application-form.constants\";\r\n\r\nexport type ApplicationAction =\r\n | ApplicationGetAction\r\n | ApplicationGetSuccessAction\r\n | ApplicationGetContinueTokenAction\r\n | ApplicationGetContinueTokenSucessAction\r\n | ApplicationSaveAction\r\n | ApplicationSubmitAction\r\n | ApplicationClearStateAction\r\n | ApplicationUpdateNSRAction;\r\n\r\nexport const ApplicationGetActionType = \"application/get\" as const;\r\nexport type ApplicationGetAction = ReturnType;\r\nexport function applicationGetAction(continueToken: string) {\r\n return {\r\n type: ApplicationGetActionType,\r\n continueToken,\r\n };\r\n}\r\n\r\nexport const ApplicationGetSuccessActionType =\r\n \"application/get-success\" as const;\r\nexport type ApplicationGetSuccessAction = ReturnType<\r\n typeof applicationGetSuccessAction\r\n>;\r\nexport function applicationGetSuccessAction(\r\n application: typeof applicationFormDefaults,\r\n applicationRef: string,\r\n quoteRefId: string,\r\n rateCardVersion: string,\r\n rateCardVersionSecured: string,\r\n creditScore?: number\r\n) {\r\n return {\r\n type: ApplicationGetSuccessActionType,\r\n application,\r\n applicationRef,\r\n quoteRefId,\r\n creditScore,\r\n rateCardVersion,\r\n rateCardVersionSecured,\r\n };\r\n}\r\n\r\nexport const ApplicationGetContinueTokenActionType =\r\n \"application-continue-token/get\" as const;\r\nexport type ApplicationGetContinueTokenAction = ReturnType<\r\n typeof applicationGetContinueTokenAction\r\n>;\r\nexport function applicationGetContinueTokenAction(token: string) {\r\n return {\r\n type: ApplicationGetContinueTokenActionType,\r\n token,\r\n };\r\n}\r\n\r\nexport const ApplicationGetContinueTokenSuccessActionType =\r\n \"application-continue-token/get-success\" as const;\r\nexport type ApplicationGetContinueTokenSucessAction = ReturnType<\r\n typeof applicationGetContinueTokenSuccessAction\r\n>;\r\nexport function applicationGetContinueTokenSuccessAction(\r\n continueToken: string\r\n) {\r\n return {\r\n type: ApplicationGetContinueTokenSuccessActionType,\r\n continueToken,\r\n };\r\n}\r\n\r\nexport const ApplicationSaveActionType = \"application/save-progress\" as const;\r\nexport type ApplicationSaveAction = ReturnType;\r\nexport function applicationSaveAction(\r\n application: Application,\r\n redirectUrl?: string,\r\n editing?: boolean,\r\n term?: string\r\n) {\r\n return {\r\n type: ApplicationSaveActionType,\r\n application,\r\n redirectUrl,\r\n complete: false,\r\n editing,\r\n term,\r\n };\r\n}\r\n\r\nexport const ApplicationSubmitActionType = \"application/submit\" as const;\r\nexport type ApplicationSubmitAction = ReturnType<\r\n typeof applicationSubmitAction\r\n>;\r\nexport function applicationSubmitAction(\r\n application: Application,\r\n complete = false\r\n) {\r\n return {\r\n type: ApplicationSubmitActionType,\r\n application,\r\n complete,\r\n };\r\n}\r\n\r\nexport const ApplicationUpdateNSRActionType = \"application/nsr\" as const;\r\nexport type ApplicationUpdateNSRAction = ReturnType<\r\n typeof applicationUpdateNSRAction\r\n>;\r\nexport function applicationUpdateNSRAction(\r\n nsrOutcome: string,\r\n submissionContinueToken: string\r\n) {\r\n return {\r\n type: ApplicationUpdateNSRActionType,\r\n nsrOutcome,\r\n submissionContinueToken,\r\n };\r\n}\r\n\r\nexport const ApplicationClearStateActionType =\r\n \"application/clear-state\" as const;\r\nexport type ApplicationClearStateAction = ReturnType<\r\n typeof applicationClearAction\r\n>;\r\nexport function applicationClearAction(editing?: boolean, term?: string) {\r\n return {\r\n type: ApplicationClearStateActionType,\r\n editing,\r\n term,\r\n };\r\n}\r\n","import Axios from \"axios\";\r\nimport { Observable } from \"rxjs\";\r\nimport { from } from \"rxjs\";\r\nimport { map } from \"rxjs/operators\";\r\n\r\nimport { PACE_API } from \"../shared/url.constants\";\r\nimport { mapToApplication } from \"./application.utils\";\r\nimport { ApplicationRequest } from \"./application-request\";\r\nimport { SaveApplicationResponse } from \"./application-save-response\";\r\nimport {\r\n CreditScoreResponse,\r\n GetApplicationResponse,\r\n GetContinueTokenResponse,\r\n} from \"./get-application.response\";\r\n\r\nexport function getApplicationByToken(token: string) {\r\n return from(getApplicationByTokenPromise(token)).pipe(\r\n map(([applicationResponse, creditScore]) => ({\r\n application: mapToApplication(applicationResponse, creditScore),\r\n applicationRef: applicationResponse.ApplicationRequest.ApplicationRef,\r\n quoteRefId: applicationResponse.ApplicationRequest.QuoteRefId,\r\n creditScore: creditScore.CreditScore,\r\n rateCardVersion: applicationResponse.ApplicationRequest.RateCardVersion,\r\n rateCardVersionSecured:\r\n applicationResponse.ApplicationRequest.RateCardVersionSecured,\r\n }))\r\n );\r\n}\r\n\r\nasync function getApplicationByTokenPromise(token: string) {\r\n const application = (\r\n await Axios.get(\r\n `${PACE_API}/api/brokers/application/token?token=${token}`\r\n )\r\n ).data;\r\n\r\n const creditScore = (\r\n await Axios.post(\r\n `${PACE_API}/api/brokers/creditscore`,\r\n {\r\n loanId: application.ApplicationRequest.LoanId,\r\n }\r\n )\r\n ).data;\r\n\r\n return [application, creditScore] as const;\r\n}\r\n\r\nexport function getContinueToken(\r\n token: string\r\n): Observable<{ continueToken: string }> {\r\n return from(\r\n Axios.get(\r\n `${PACE_API}/api/brokers/application/logintoken?token=${token}`\r\n )\r\n ).pipe(\r\n map((res) => ({\r\n continueToken: res.data.ContinueToken,\r\n }))\r\n );\r\n}\r\n\r\nexport function saveApplication(\r\n applicationRequest: ApplicationRequest\r\n): Observable {\r\n console.debug(\"Attempt to save loan application\", {\r\n loanId: applicationRequest.LoanId,\r\n isSubmitted: applicationRequest.IsSubmitted,\r\n });\r\n return from(\r\n Axios.post(\r\n `${PACE_API}/api/brokers/application`,\r\n applicationRequest,\r\n {\r\n headers: { \"content-type\": \"application/json\" },\r\n }\r\n ).then((res) => res.data)\r\n );\r\n}\r\n","import {\r\n loadDataThen,\r\n loadingFailAction,\r\n loadingStartAction,\r\n loadingSuccessAction,\r\n} from \"@wisr/common\";\r\nimport { navigate } from \"gatsby\";\r\nimport { Epic } from \"redux-observable\";\r\nimport { concat, of } from \"rxjs\";\r\nimport {\r\n catchError,\r\n concatMap,\r\n map,\r\n mapTo,\r\n mergeMap,\r\n tap,\r\n withLatestFrom,\r\n} from \"rxjs/operators\";\r\n\r\nimport { redirect } from \"../shared/browser.utils\";\r\nimport { LEGACY_APPLICATION_APP } from \"../shared/url.constants\";\r\nimport { AppAction, AppStore } from \"../store\";\r\nimport {\r\n applicationClearAction,\r\n ApplicationClearStateAction,\r\n ApplicationClearStateActionType,\r\n ApplicationGetAction,\r\n ApplicationGetActionType,\r\n ApplicationGetContinueTokenAction,\r\n ApplicationGetContinueTokenActionType,\r\n applicationGetContinueTokenSuccessAction,\r\n applicationGetSuccessAction,\r\n ApplicationSaveAction,\r\n ApplicationSaveActionType,\r\n ApplicationSubmitAction,\r\n ApplicationSubmitActionType,\r\n applicationUpdateNSRAction,\r\n} from \"./application.actions\";\r\nimport {\r\n getApplicationByToken,\r\n getContinueToken,\r\n saveApplication,\r\n} from \"./application.service\";\r\nimport { mapToApplicationRequest } from \"./application.utils\";\r\n\r\nexport const GET_APPLICATION_LOADING = \"GET_APPLICATION_LOADING\";\r\nexport const getApplicationEpic: Epic = (actions) =>\r\n actions\r\n .ofType(ApplicationGetActionType)\r\n .pipe(\r\n loadDataThen(GET_APPLICATION_LOADING, (action) =>\r\n getApplicationByToken(action.continueToken).pipe(\r\n map(\r\n ({\r\n application,\r\n applicationRef,\r\n quoteRefId,\r\n creditScore,\r\n rateCardVersion,\r\n rateCardVersionSecured,\r\n }) =>\r\n applicationGetSuccessAction(\r\n application,\r\n applicationRef,\r\n quoteRefId,\r\n rateCardVersion,\r\n rateCardVersionSecured,\r\n creditScore\r\n )\r\n )\r\n )\r\n )\r\n );\r\n\r\nexport const getApplicationContinueTokenEpic: Epic = (actions) =>\r\n actions\r\n .ofType(\r\n ApplicationGetContinueTokenActionType\r\n )\r\n .pipe(\r\n concatMap((action) =>\r\n concat(\r\n of(loadingStartAction(GET_APPLICATION_LOADING)),\r\n getContinueToken(action.token).pipe(\r\n tap(({ continueToken }) =>\r\n window.sessionStorage.setItem(\"ContinueToken\", continueToken)\r\n ),\r\n concatMap(({ continueToken }) => [\r\n applicationGetContinueTokenSuccessAction(continueToken),\r\n loadingSuccessAction(GET_APPLICATION_LOADING),\r\n ])\r\n )\r\n )\r\n ),\r\n catchError(() => {\r\n return of(\r\n loadingFailAction(GET_APPLICATION_LOADING, \"Unexpected Error\")\r\n );\r\n })\r\n );\r\n\r\nexport const SAVE_APPLICATION_LOADING = \"SAVE_APPLICATION_LOADING\";\r\nexport const saveApplicationEpic: Epic = (\r\n actions,\r\n store\r\n) =>\r\n actions.ofType(ApplicationSaveActionType).pipe(\r\n withLatestFrom(store),\r\n concatMap(([action, state]) =>\r\n concat(\r\n of(loadingStartAction(SAVE_APPLICATION_LOADING)),\r\n of([action, state]).pipe(\r\n map(() => generateApplicationRequest(action, state)),\r\n concatMap(saveApplication),\r\n mapTo(\r\n action.redirectUrl\r\n ? applicationClearAction(action.editing, action.term)\r\n : loadingSuccessAction(SAVE_APPLICATION_LOADING)\r\n )\r\n )\r\n ).pipe(\r\n catchError(() => {\r\n return of(\r\n loadingFailAction(\r\n SAVE_APPLICATION_LOADING,\r\n \"Saving was unsuccessful, please try again.\"\r\n )\r\n );\r\n })\r\n )\r\n )\r\n );\r\nexport const submitApplicationEpic: Epic = (\r\n actions,\r\n store\r\n) =>\r\n actions.ofType(ApplicationSubmitActionType).pipe(\r\n withLatestFrom(store),\r\n concatMap(([action, state]) =>\r\n concat(\r\n of(loadingStartAction(SAVE_APPLICATION_LOADING)),\r\n mergeMap(saveApplication)(\r\n of(generateApplicationRequest(action, state, true))\r\n ).pipe(\r\n tap((res) =>\r\n action.complete\r\n ? res.NSROutcome !== \"FailedNsr\"\r\n ? redirect(\r\n `${LEGACY_APPLICATION_APP}/home/ApplicationCompleted?t=${state.applicationState.continueToken}`\r\n )\r\n : undefined\r\n : navigate(\"/application/bank-statements\")\r\n ),\r\n concatMap((res) =>\r\n res.NSROutcome !== \"FailedNsr\"\r\n ? of(loadingSuccessAction(SAVE_APPLICATION_LOADING))\r\n : concat(\r\n of(\r\n applicationUpdateNSRAction(\r\n res.NSROutcome,\r\n res.continueToken\r\n )\r\n ),\r\n of(loadingSuccessAction(SAVE_APPLICATION_LOADING))\r\n )\r\n ),\r\n catchError((e) => {\r\n if (e.response.status === 400) {\r\n const [message, reasons] = (\r\n e.response.data.Message as string\r\n ).split(/
    /);\r\n return of(\r\n loadingFailAction(\r\n SAVE_APPLICATION_LOADING,\r\n message.replace(/<.*?>/gi, \"\"),\r\n {\r\n reasons: reasons\r\n .split(/
  • /)\r\n .map((r) => r.replace(/<.*?>/gi, \"\").trim())\r\n .filter((r) => !!r),\r\n }\r\n )\r\n );\r\n }\r\n\r\n return of(\r\n loadingFailAction(SAVE_APPLICATION_LOADING, \"Unexpected error\")\r\n );\r\n })\r\n )\r\n )\r\n )\r\n );\r\n\r\nexport const clearApplicationEpic: Epic = (\r\n actions,\r\n store\r\n) =>\r\n actions\r\n .ofType(ApplicationClearStateActionType)\r\n .pipe(\r\n withLatestFrom(store),\r\n concatMap(([action, state]) =>\r\n concat(\r\n of([action, state]).pipe(\r\n tap(() => {\r\n if (action.editing && action.term) {\r\n navigate(\r\n `/estimate?qid=${state.applicationState.quoteRefId}&editing=${action.editing}&term=${action.term}`\r\n );\r\n } else {\r\n navigate(`/estimate?qid=${state.applicationState.quoteRefId}`);\r\n }\r\n }),\r\n mapTo(loadingSuccessAction(SAVE_APPLICATION_LOADING))\r\n )\r\n )\r\n )\r\n );\r\n\r\nfunction generateApplicationRequest(\r\n action: ApplicationSaveAction | ApplicationSubmitAction,\r\n state: AppStore,\r\n validateRequest = false\r\n) {\r\n if (\r\n !state.applicationState.application ||\r\n !state.applicationState.applicationRef ||\r\n !state.applicationState.continueToken\r\n ) {\r\n throw Error(`Missing required data to map to ApplicationRequest\r\n app: ${!!state.applicationState.application}\r\n ref: ${!!state.applicationState.applicationRef}\r\n token: ${!!state.applicationState.continueToken}\r\n `);\r\n }\r\n\r\n return mapToApplicationRequest(\r\n action.application,\r\n state.applicationState.continueToken,\r\n state.applicationState.applicationRef,\r\n state.applicationState.rateCardVersion,\r\n state.applicationState.rateCardVersionSecured,\r\n !validateRequest,\r\n !!action.complete\r\n );\r\n}\r\n","import { applicationFormDefaults } from \"./application-form.constants\";\r\n\r\nexport declare type Application = typeof applicationFormDefaults;\r\n\r\nexport enum Frequency {\r\n Annual = \"Annual\",\r\n Monthly = \"Monthly\",\r\n Fortnightly = \"Fortnightly\",\r\n Weekly = \"Weekly\",\r\n}\r\n\r\nexport type Status = {\r\n kind: \"error\" | \"info\" | \"warning\" | \"success\";\r\n message: string;\r\n};\r\nexport type SectionErrors = {\r\n [key: string]: Status[] | undefined;\r\n};\r\n\r\nexport type ResidencyType = {\r\n label: string;\r\n value: string;\r\n};\r\n","// todo: This file is a mess...\r\n/* eslint-disable @typescript-eslint/no-use-before-define */\r\nimport { capitalise } from \"@wisr/common\";\r\nimport moment from \"moment\";\r\n\r\nimport Package from \"../../package.json\";\r\nimport { amplitudeHelper } from \"../shared/analytics/analytics.utils\";\r\nimport { Application, Frequency, SectionErrors, Status } from \"./application\";\r\nimport { applicationFormDefaults } from \"./application-form.constants\";\r\nimport { ApplicationRequest, Mortgage } from \"./application-request\";\r\nimport {\r\n AddressBaseType,\r\n CreditCard,\r\n CreditScoreResponse,\r\n GetApplicationResponse,\r\n PersonalLoan,\r\n} from \"./get-application.response\";\r\nimport { defaultIncomeSource, hasPartner } from \"./income/income.component\";\r\nimport {\r\n checkForLoanOrCards,\r\n Debt,\r\n FinancialDebtId,\r\n getFieldKeys,\r\n} from \"./owing/owing.component\";\r\n\r\nexport const LIVING_SITUATION_MORTGAGE = \"Buyer\";\r\n\r\nexport const ID_TYPES = {\r\n DRIVERS_LICENCE: \"Driver's License\",\r\n MEDICARE: \"Medicare card\",\r\n PASSPORT: \"Passport\",\r\n} as const;\r\n\r\nexport function mapToApplicationRequest(\r\n submittedFormData: typeof applicationFormDefaults,\r\n continueToken: string,\r\n applicationRef: string,\r\n RateCardVersion: string,\r\n RateCardVersionSecured: string,\r\n SkipValidations = true,\r\n submitApplication = false\r\n): ApplicationRequest {\r\n return {\r\n ApplicationFormVersion: Package.version,\r\n SkipValidations,\r\n IsSubmitted: submitApplication,\r\n LoanStep: submitApplication ? \"Confirmation\" : \"CompleteInformation\",\r\n LoanId: +submittedFormData.loanId,\r\n LoanPurpose: submittedFormData.loanPurpose,\r\n Amount: +submittedFormData.loanAmount,\r\n LoanTerm: +submittedFormData.loanTerm,\r\n InterestRate: 0,\r\n ApplicationRef: applicationRef,\r\n ContinueToken: continueToken,\r\n debt_consolidation_details: getDebtsToConslidate(\r\n submittedFormData,\r\n !!RateCardVersionSecured\r\n ),\r\n Title: submittedFormData.title,\r\n FirstName: submittedFormData.firstName,\r\n MiddleName: submittedFormData.middleName,\r\n Surname: submittedFormData.lastName,\r\n MaritalStatus: submittedFormData.maritalStatus,\r\n DOB: parseDateForSubmit(submittedFormData.dateOfBirth),\r\n Email: submittedFormData.email,\r\n RateCardVersion,\r\n RateCardVersionSecured,\r\n application_details: {\r\n UserType: +submittedFormData.userType as QuoteService.UserTypesDTO,\r\n personal_details: {\r\n marital_status: submittedFormData.maritalStatus,\r\n dependents: +submittedFormData.numberOfFinancialDependents,\r\n\r\n IdentityDocTypes: [\r\n submittedFormData.idenfiticationSource1,\r\n submittedFormData.idenfiticationSource2,\r\n ],\r\n license: submittedFormData.driverLicenceNumber,\r\n licenceState: submittedFormData.driversLicenceState,\r\n licenseDateOfExpiry: parseDateForSubmit(\r\n submittedFormData.driversLicenceExpiry\r\n ),\r\n licenceCardNumber: submittedFormData.driverLicenceCardNumber,\r\n passport: submittedFormData.passportNumber,\r\n passportCountry: submittedFormData.passportCountry,\r\n medicare: submittedFormData.medicareCardNumber,\r\n medicareMiddlenameOnCard: submittedFormData.medicareInitial,\r\n medicareCardColour: submittedFormData.medicareColour,\r\n medicareReferenceNumber: submittedFormData.medicareReferenceNumber,\r\n medicareDateOfExpiry: parseDateForSubmit(\r\n submittedFormData.medicareExpiry,\r\n true\r\n ),\r\n },\r\n contact_details: {\r\n home_area_code: submittedFormData.homePhone.substring(0, 2),\r\n home_phone: submittedFormData.homePhone.substring(3).replace(/ /g, \"\"),\r\n work_area_code: submittedFormData.workPhone.substring(0, 2),\r\n work_phone: submittedFormData.workPhone.substring(3).replace(/ /g, \"\"),\r\n mobile_phone: submittedFormData.mobile.replace(/ /g, \"\"),\r\n },\r\n current_address: {\r\n unit: submittedFormData.addressUnit,\r\n street_number: submittedFormData.addressStreetNumber,\r\n street_name: submittedFormData.addressStreetName,\r\n street_type: submittedFormData.addressStreetType,\r\n town: submittedFormData.addressSuburb,\r\n state: submittedFormData.addressState,\r\n postcode: submittedFormData.addressPostcode,\r\n country: 12,\r\n residency_status: submittedFormData.livingSituationAtAddress,\r\n TimeAtYears: +submittedFormData.yearsAtAddress,\r\n TimeAtMonths: +submittedFormData.monthsAtAddress,\r\n total_months: getTotalMonths(\r\n submittedFormData.yearsAtAddress,\r\n submittedFormData.monthsAtAddress\r\n ),\r\n landlord_mortgagor_name: submittedFormData.propertyOwnerManagerName,\r\n landlord_mortgagor_phone: flattenPhoneInput(\r\n submittedFormData.propertyOwnerManagerPhone\r\n ),\r\n },\r\n previous_address: {\r\n unit: submittedFormData.previousAddressUnit,\r\n street_number: submittedFormData.previousAddressStreetNumber,\r\n street_name: submittedFormData.previousAddressStreetName,\r\n street_type: submittedFormData.previousAddressStreetType,\r\n town: submittedFormData.previousAddressSuburb,\r\n state: submittedFormData.previousAddressState,\r\n postcode: submittedFormData.previousAddressPostcode,\r\n country: 12,\r\n residency_status: submittedFormData.livingSituationAtPreviousAddress,\r\n TimeAtYears: +submittedFormData.yearsAtPreviousAddress,\r\n TimeAtMonths: +submittedFormData.monthsAtPreviousAddress,\r\n total_months: getTotalMonths(\r\n submittedFormData.yearsAtPreviousAddress,\r\n submittedFormData.monthsAtPreviousAddress\r\n ),\r\n },\r\n current_employment: {\r\n occupation: submittedFormData.occupation,\r\n employment_status: submittedFormData.employmentStatus,\r\n employer: submittedFormData.employerName,\r\n area_code: getAreaCode(submittedFormData.employmentContactNumber),\r\n phone: getPhone(submittedFormData.employmentContactNumber),\r\n extension: \"\",\r\n total_months: getTotalMonths(\r\n submittedFormData.yearsAtEmployer,\r\n submittedFormData.monthsAtEmployer\r\n ),\r\n authorityToContactEmployer: false,\r\n employer_industry: submittedFormData.employmentIndustry,\r\n },\r\n previous_employment: {\r\n occupation: submittedFormData.previousOccupation,\r\n employment_status: submittedFormData.previousEmploymentStatus,\r\n employer: submittedFormData.previousEmployerName,\r\n area_code: getAreaCode(\r\n submittedFormData.previousEmploymentContactNumber\r\n ),\r\n phone: getPhone(submittedFormData.previousEmploymentContactNumber),\r\n extension: \"\",\r\n total_months: getTotalMonths(\r\n submittedFormData.yearsAtPreviousEmployer,\r\n submittedFormData.monthsAtPreviousEmployer\r\n ),\r\n },\r\n bank_account: {\r\n ...createBankAccountFields(submittedFormData),\r\n },\r\n financial_details: {\r\n has_debts:\r\n // Set has_debts field to match loan purpose when consolidation for consistency\r\n submittedFormData.loanPurpose === \"Consolidation\"\r\n ? true\r\n : toOptionalBoolean(submittedFormData.hasDebts),\r\n breakdown_expenses: true,\r\n ...createRentFields(\r\n submittedFormData.totalRentalAmount,\r\n submittedFormData.rentalAmountFrequency,\r\n submittedFormData.rentShared\r\n ),\r\n\r\n // Primary Income\r\n income_amount: +submittedFormData.incomeAmount,\r\n income_amount_description: submittedFormData.incomeSource,\r\n income_frequency: submittedFormData.incomeFrequency,\r\n\r\n other_income_amount_1: getOptionalNumber(\r\n submittedFormData.otherIncomeAmount_1\r\n ),\r\n other_income_amount_1_description: getOptionalString(\r\n submittedFormData.otherIncomeSource_1\r\n ),\r\n other_income_amount_1_frequency: getOptionalString(\r\n submittedFormData.otherIncomeFrequency_1\r\n ),\r\n\r\n other_income_amount_2: getOptionalNumber(\r\n submittedFormData.otherIncomeAmount_2\r\n ),\r\n other_income_amount_2_description: getOptionalString(\r\n submittedFormData.otherIncomeSource_2\r\n ),\r\n other_income_amount_2_frequency: getOptionalString(\r\n submittedFormData.otherIncomeFrequency_2\r\n ),\r\n\r\n other_income_amount_3: getOptionalNumber(\r\n submittedFormData.otherIncomeAmount_3\r\n ),\r\n other_income_amount_3_description: getOptionalString(\r\n submittedFormData.otherIncomeSource_3\r\n ),\r\n other_income_amount_3_frequency: getOptionalString(\r\n submittedFormData.otherIncomeFrequency_3\r\n ),\r\n\r\n partner_income: hasPartner(submittedFormData.maritalStatus)\r\n ? +submittedFormData.partnerIncomeAmount\r\n : 0,\r\n\r\n // expenses\r\n groceries: +submittedFormData.groceries,\r\n clothing: +submittedFormData.clothing,\r\n council_rates: +submittedFormData.council_rates,\r\n car_registration: +submittedFormData.car_registration,\r\n petrol: +submittedFormData.petrol,\r\n health_insurance: +submittedFormData.health_insurance,\r\n car_home_insurance: +submittedFormData.car_home_insurance,\r\n utilities: +submittedFormData.utilities,\r\n communication: +submittedFormData.communication,\r\n transportation: +submittedFormData.transportation,\r\n education: +submittedFormData.education,\r\n entertainment: +submittedFormData.entertainment,\r\n other_general_expenses: +submittedFormData.other_general_expenses,\r\n other_additional_expenses: +submittedFormData.other_additional_expenses,\r\n seconds_motor_vehicle: +submittedFormData.seconds_motor_vehicle,\r\n\r\n // debt\r\n ...createDebtFields(submittedFormData, !!RateCardVersionSecured),\r\n },\r\n investment_property: {\r\n ...createIvestmentPropertyFields(\r\n submittedFormData.ownsInvestmentProperty,\r\n submittedFormData.investmentPropertyMortgaged\r\n ),\r\n },\r\n SignificantPlannedChanges:\r\n submittedFormData.significantPlannedChanges === \"Yes\",\r\n SignificantPlannedChangeTypes:\r\n submittedFormData.significantPlannedChangeTypes,\r\n ...createConsentFields(submittedFormData.termsAndConditionsAgreement),\r\n },\r\n securedVehicleInformation: createSecurityFields(submittedFormData),\r\n };\r\n}\r\n\r\nexport const createConsentFields = (termsAndConditionsAgreement: string[]) => {\r\n if (\r\n termsAndConditionsAgreement.some(\r\n (terms) =>\r\n terms ===\r\n \"I have read, understood and agree to the terms and conditions above.\"\r\n )\r\n )\r\n return {\r\n AppConsent:\r\n \"I consent to Wisr Finance Pty Ltd making a “hard” enquiry against my credit file for the purpose of assessing my application for credit and I understand that this may impact my credit score. For more information on “hard” enquiries, please see our FAQs.\",\r\n AppCreditConsent:\r\n \"I confirm that I am authorised to provide the personal details presented and I consent to my information being checked with the document issuer or official record holder via third party systems and services for the purpose of confirming my identity. I acknowledge that all applications are subject to Wisr Finance Pty Ltd lending criteria. I consent to the receipt of notices and other documents electronically. Show Electronic Communication Consent Details.\",\r\n AppDeclaration:\r\n \"I confirm I have the legal authority to submit this personal loan application on behalf of myself or my client and I declare all details I have provided in this application are true and correct.\",\r\n AppPrivacyConsent:\r\n \"I have read and agreed to the terms set out in the Privacy Consent Form.\",\r\n };\r\n};\r\n\r\nexport const createRentFields = (\r\n totalRentalAmount: string,\r\n rentalAmountFrequency: string,\r\n rentShared: string[]\r\n) => {\r\n return {\r\n rent_amount_full: +totalRentalAmount,\r\n rent_frequency: rentalAmountFrequency as Frequency,\r\n rent_shared: rentShared.length > 0,\r\n };\r\n};\r\n\r\nconst getDebtsFromFormData = (\r\n formData: Application,\r\n isSecuredRateType: boolean\r\n) => {\r\n const credit_card_list: CreditCard[] = [];\r\n const personal_loan_list: PersonalLoan[] = [];\r\n const mortgage_list: Mortgage[] = [];\r\n\r\n // check for home mortgage\r\n const mortgage =\r\n formData[\"mortgageBalance\"] &&\r\n formData.livingSituationAtAddress === LIVING_SITUATION_MORTGAGE\r\n ? createMortgage(\r\n formData[\"mortgageBalance\"],\r\n formData[\"mortgageFinanceCompany\"],\r\n formData[\"mortgageRepaymentAmount\"],\r\n formData[\"mortgageRepaymentFrequency\"],\r\n formData[\"hasCoBorrower\"]\r\n )\r\n : undefined;\r\n\r\n if (mortgage) {\r\n mortgage_list.push(mortgage);\r\n }\r\n\r\n for (let i = 1; i <= 10; i++) {\r\n const {\r\n debtTypeKey,\r\n financeCompanyKey,\r\n balanceKey,\r\n repaymentAmountKey,\r\n repaymentFrequencyKey,\r\n isJointLoanKey,\r\n consolidateKey,\r\n investmentKey,\r\n cardLimitKey,\r\n closeCardKey,\r\n } = getFieldKeys(i as FinancialDebtId);\r\n if (formData[debtTypeKey]) {\r\n if (formData[debtTypeKey] === \"Credit card\") {\r\n const card = createCreditCard(\r\n formData[financeCompanyKey],\r\n formData[cardLimitKey],\r\n formData[balanceKey],\r\n toFieldValue(formData[consolidateKey]),\r\n toFieldValue(formData[closeCardKey]),\r\n isSecuredRateType\r\n );\r\n\r\n credit_card_list.push(card);\r\n }\r\n\r\n if (formData[debtTypeKey] === \"Personal loan\") {\r\n const loan = createPersonalLoan(\r\n formData[financeCompanyKey],\r\n formData[repaymentAmountKey],\r\n formData[balanceKey],\r\n toFieldValue(formData[isJointLoanKey]),\r\n toFieldValue(formData[consolidateKey]),\r\n formData[repaymentFrequencyKey],\r\n isSecuredRateType\r\n );\r\n\r\n personal_loan_list.push(loan);\r\n }\r\n\r\n if (formData[debtTypeKey] === \"Mortgage\") {\r\n const mortgage = createMortgage(\r\n formData[balanceKey],\r\n formData[financeCompanyKey],\r\n formData[repaymentAmountKey],\r\n formData[repaymentFrequencyKey],\r\n toFieldValue(formData[isJointLoanKey]),\r\n toFieldValue(formData[investmentKey])\r\n );\r\n mortgage_list.push(mortgage);\r\n }\r\n }\r\n }\r\n\r\n return {\r\n credit_card_list,\r\n personal_loan_list,\r\n mortgage_list,\r\n mortgage,\r\n };\r\n};\r\n\r\nexport const hasAddedDebts = (formData: Application): boolean => {\r\n return getDebtFields(formData).length > 0;\r\n};\r\n\r\nexport const getDebtFields = (formData: Application): Debt[] => {\r\n const debts: Debt[] = [];\r\n\r\n for (let i = 1; i <= 10; i++) {\r\n const {\r\n debtTypeKey,\r\n financeCompanyKey,\r\n balanceKey,\r\n repaymentAmountKey,\r\n repaymentFrequencyKey,\r\n isJointLoanKey,\r\n consolidateKey,\r\n investmentKey,\r\n cardLimitKey,\r\n closeCardKey,\r\n } = getFieldKeys(i as FinancialDebtId);\r\n debts.push({\r\n type: formData[debtTypeKey],\r\n company: formData[financeCompanyKey],\r\n balance: formData[balanceKey],\r\n repaymentAmount: formData[repaymentAmountKey],\r\n frequency: formData[repaymentFrequencyKey],\r\n isJoint: formData[isJointLoanKey],\r\n consolidate: formData[consolidateKey],\r\n investment: formData[investmentKey],\r\n cardLimit: formData[cardLimitKey],\r\n closeCard: formData[closeCardKey],\r\n });\r\n }\r\n\r\n return debts.filter((debt) => debt.type !== \"\");\r\n};\r\n\r\nexport const getDebtsToConslidate = (\r\n formData: Application,\r\n isSecuredRateType: boolean\r\n) => {\r\n const { credit_card_list, personal_loan_list } = getDebtsFromFormData(\r\n formData,\r\n isSecuredRateType\r\n );\r\n\r\n return [\r\n ...credit_card_list\r\n .filter((card) => card.credit_card_consolidate)\r\n .map((card) => ({\r\n FinancialInstitution: card.credit_card_finance_company,\r\n ConsolidationType: \"Credit Card\",\r\n Amount: card.credit_card_balance,\r\n IntendToCloseAccount: card.credit_card_close,\r\n })),\r\n\r\n ...personal_loan_list\r\n .filter((loan) => loan.personal_loan_consolidate)\r\n .map((loan) => ({\r\n FinancialInstitution: loan.personal_loan_finance_company,\r\n ConsolidationType: \"Personal Loan\",\r\n Amount: +loan.personal_loan_balance,\r\n IntendToCloseAccount: true,\r\n })),\r\n ];\r\n};\r\n\r\nexport const createDebtFields = (\r\n formData: Application,\r\n isSecuredRateType: boolean\r\n) => {\r\n const { credit_card_list, personal_loan_list, mortgage_list } =\r\n getDebtsFromFormData(formData, isSecuredRateType);\r\n\r\n const credit_card_limit = sumRepayments(\r\n credit_card_list,\r\n \"credit_card_limit\",\r\n undefined,\r\n (m) => !m.credit_card_close\r\n );\r\n const outstanding_mortgage_amount = sumRepayments(\r\n mortgage_list,\r\n \"mortgage_balance\"\r\n );\r\n const outstanding_personal_loan_amount = sumRepayments(\r\n personal_loan_list,\r\n \"personal_loan_balance\",\r\n undefined,\r\n (l) => !l.personal_loan_consolidate\r\n );\r\n\r\n return {\r\n credit_card_list,\r\n credit_cards: credit_card_list.length,\r\n credit_card_limit,\r\n\r\n mortgage_list,\r\n number_of_mortgages: mortgage_list.length,\r\n mortgage_frequency: Frequency.Annual,\r\n mortgage_joint_frequency: Frequency.Annual,\r\n mortgage_amount: sumRepayments(\r\n mortgage_list,\r\n \"mortgage_repayment\",\r\n \"mortgage_repayment_frequency\",\r\n (m) => !m.mortgage_shared && !m.investment_property\r\n ),\r\n mortgage_amount_joint: sumRepayments(\r\n mortgage_list,\r\n \"mortgage_repayment\",\r\n \"mortgage_repayment_frequency\",\r\n (m) => !!m.mortgage_shared && !m.investment_property\r\n ),\r\n outstanding_mortgage_amount,\r\n investment_mortgage_frequency: Frequency.Annual,\r\n investment_mortgage_joint_frequency: Frequency.Annual,\r\n investment_mortgage_amount: sumRepayments(\r\n mortgage_list,\r\n \"mortgage_repayment\",\r\n \"mortgage_repayment_frequency\",\r\n (m) => !m.mortgage_shared && !!m.investment_property\r\n ),\r\n investment_mortgage_amount_joint: sumRepayments(\r\n mortgage_list,\r\n \"mortgage_repayment\",\r\n \"mortgage_repayment_frequency\",\r\n (m) => !!m.mortgage_shared && !!m.investment_property\r\n ),\r\n\r\n personal_loan_list,\r\n number_of_personal_loans: personal_loan_list.length,\r\n other_loan_amount: sumRepayments(\r\n personal_loan_list,\r\n \"personal_loan_repayment\",\r\n \"personal_loan_repayment_frequency\",\r\n (l) => !l.personal_loan_shared && !l.personal_loan_consolidate\r\n ),\r\n other_loan_frequency: Frequency.Annual,\r\n other_loan_amount_joint: sumRepayments(\r\n personal_loan_list,\r\n \"personal_loan_repayment\",\r\n \"personal_loan_repayment_frequency\",\r\n (l) => l.personal_loan_shared && !l.personal_loan_consolidate\r\n ),\r\n other_loan_joint_frequency: Frequency.Annual,\r\n\r\n total_liabilities:\r\n outstanding_personal_loan_amount +\r\n outstanding_mortgage_amount +\r\n credit_card_limit,\r\n };\r\n};\r\nexport const createMortgage = (\r\n mortgage_balance: string,\r\n mortgage_finance_company: string,\r\n mortgage_repayment: string,\r\n mortgage_repayment_frequency: string,\r\n mortgage_shared: string,\r\n investment_property?: string\r\n): Mortgage => {\r\n return {\r\n mortgage_balance,\r\n mortgage_finance_company,\r\n mortgage_repayment,\r\n mortgage_repayment_frequency: mortgage_repayment_frequency as Frequency,\r\n mortgage_shared:\r\n mortgage_shared === \"Yes\" || mortgage_shared === \"Joint loan\",\r\n investment_property: investment_property === \"Investment property\",\r\n };\r\n};\r\n\r\nexport const createCreditCard = (\r\n credit_card_finance_company: string,\r\n credit_card_limit: string,\r\n credit_card_balance: string,\r\n credit_card_consolidate: string,\r\n credit_card_close: string,\r\n isSecuredRateType: boolean\r\n): CreditCard => {\r\n const consolidate =\r\n credit_card_consolidate === \"Consolidate this card\" && !isSecuredRateType;\r\n const close = credit_card_close === \"Close this card\";\r\n\r\n return {\r\n credit_card_finance_company,\r\n credit_card_limit: +credit_card_limit,\r\n credit_card_balance: +credit_card_balance,\r\n credit_card_consolidate: consolidate,\r\n credit_card_close: consolidate && close,\r\n };\r\n};\r\n\r\nexport const createPersonalLoan = (\r\n personal_loan_finance_company: string,\r\n personal_loan_repayment: string,\r\n personal_loan_balance: string,\r\n personal_loan_shared: string,\r\n personal_loan_consolidate: string,\r\n personal_loan_repayment_frequency: string,\r\n isSecuredRateType: boolean\r\n): PersonalLoan => {\r\n return {\r\n personal_loan_finance_company,\r\n personal_loan_repayment,\r\n personal_loan_balance,\r\n personal_loan_shared: personal_loan_shared === \"Joint loan\",\r\n personal_loan_consolidate:\r\n personal_loan_consolidate === \"Consolidate this loan\" &&\r\n !isSecuredRateType,\r\n personal_loan_repayment_frequency:\r\n personal_loan_repayment_frequency as Frequency,\r\n };\r\n};\r\n\r\nexport const createSecurityFields = (formData: Application) => {\r\n return formData.loanPurpose.toLowerCase() === \"car\"\r\n ? {\r\n VehicleModelKnown: formData.assetFound === \"Yes\",\r\n VehicleAge: +formData.assetYear,\r\n EstimatedVehicleAge: formData.assetAgeEstimate,\r\n SaleType: formData.assetSeller,\r\n VehicleTypeDescription: formData.loanPurpose,\r\n }\r\n : undefined;\r\n};\r\n\r\nexport const createBankAccountFields = (formData: Application) => {\r\n return {\r\n bank_name: formData.bankName,\r\n account_name: formData.accountName,\r\n bsb: formData.bsb,\r\n account_number: formData.accountNumber,\r\n joint_account: formData.jointAccount.some((v) => v === \"Joint Account\"),\r\n joint_account_name: formData.jointAccountName,\r\n };\r\n};\r\n\r\nexport const createIvestmentPropertyFields = (\r\n owns: string,\r\n mortgage: string\r\n) => {\r\n return {\r\n investment_property_mortgaged: toOptionalBoolean(mortgage),\r\n owns_investment_property: toOptionalBoolean(owns),\r\n };\r\n};\r\n\r\nexport function toOptionalBoolean(\r\n value: string | null | undefined\r\n): boolean | undefined {\r\n if (value) {\r\n if (value.toLowerCase() === \"yes\") {\r\n return true;\r\n }\r\n\r\n if (value.toLowerCase() === \"no\") {\r\n return false;\r\n }\r\n }\r\n\r\n return undefined;\r\n}\r\n\r\nexport function toBooleanString(value: boolean | null | undefined): string {\r\n if (value === undefined || value === null) {\r\n return \"\";\r\n }\r\n\r\n return value ? \"yes\" : \"no\";\r\n}\r\n\r\nfunction getAnnualAmount(amount: number, frequency: string) {\r\n const frequencyEnum = frequency as Frequency;\r\n\r\n let multiplier = 1;\r\n\r\n switch (frequencyEnum) {\r\n case Frequency.Monthly:\r\n multiplier = 12;\r\n break;\r\n case Frequency.Weekly:\r\n multiplier = 52;\r\n break;\r\n case Frequency.Fortnightly:\r\n multiplier = 26;\r\n break;\r\n\r\n case Frequency.Annual:\r\n multiplier = 1;\r\n break;\r\n default:\r\n multiplier = 1;\r\n }\r\n return amount * multiplier;\r\n}\r\n\r\nfunction getOptionalString(value: string) {\r\n return value || undefined;\r\n}\r\n\r\nfunction getOptionalNumber(amount: string) {\r\n return amount ? +amount : undefined;\r\n}\r\n\r\nfunction getAreaCode(fullNumber: string) {\r\n return flattenPhoneInput(fullNumber).substring(0, 2);\r\n}\r\n\r\nfunction getPhone(fullNumber: string) {\r\n return flattenPhoneInput(fullNumber).substring(2);\r\n}\r\n\r\nfunction getTotalMonths(years?: string, months?: string) {\r\n return parseInt(years || \"0\") * 12 + parseInt(months || \"0\");\r\n}\r\n\r\nconst MINIMUM_CREDIT_SCORE_FOR_SKIP_CREDITSENSE = 99999;\r\nexport function mapToApplication(\r\n res: GetApplicationResponse,\r\n creditScore: CreditScoreResponse\r\n): Application {\r\n return {\r\n userType: toFieldValue(res.ApplicationRequest.application_details.UserType),\r\n loanId: toFieldValue(res.ApplicationRequest.LoanId),\r\n loanPurpose: toFieldValue(res.ApplicationRequest.LoanPurpose),\r\n loanTerm: toFieldValue(res.ApplicationRequest.LoanTerm),\r\n loanAmount: toFieldValue(res.ApplicationRequest.Amount),\r\n title: toFieldValue(res.ApplicationRequest.Title),\r\n firstName: toFieldValue(res.ApplicationRequest.FirstName),\r\n middleName: toFieldValue(res.ApplicationRequest.MiddleName),\r\n lastName: toFieldValue(res.ApplicationRequest.Surname),\r\n dateOfBirth: formatDateForForm(res.ApplicationRequest.DOB),\r\n maritalStatus: toFieldValue(\r\n res.ApplicationRequest.application_details.personal_details.marital_status\r\n ),\r\n numberOfFinancialDependents: toFieldValue(\r\n res.ApplicationRequest.application_details.personal_details.dependents\r\n ),\r\n\r\n // Identity\r\n idenfiticationSource1: toFieldValue(\r\n res.ApplicationRequest.application_details.personal_details\r\n .IdentityDocTypes[0]\r\n ),\r\n idenfiticationSource2: toFieldValue(\r\n res.ApplicationRequest.application_details.personal_details\r\n .IdentityDocTypes[1]\r\n ),\r\n driverLicenceNumber: toFieldValue(\r\n res.ApplicationRequest.application_details.personal_details.license\r\n ),\r\n driversLicenceState: toFieldValue(\r\n res.ApplicationRequest.application_details.personal_details.licenceState\r\n ),\r\n driversLicenceExpiry: formatDateForForm(\r\n res.ApplicationRequest.application_details.personal_details\r\n .licenseDateOfExpiry\r\n ),\r\n driverLicenceCardNumber: toFieldValue(\r\n res.ApplicationRequest.application_details.personal_details\r\n .licenceCardNumber\r\n ),\r\n medicareCardNumber: toFieldValue(\r\n res.ApplicationRequest.application_details.personal_details.medicare\r\n ),\r\n medicareInitial: toFieldValue(\r\n res.ApplicationRequest.application_details.personal_details\r\n .medicareMiddlenameOnCard\r\n ),\r\n medicareColour: toFieldValue(\r\n res.ApplicationRequest.application_details.personal_details\r\n .medicareCardColour\r\n ),\r\n medicareReferenceNumber: toFieldValue(\r\n res.ApplicationRequest.application_details.personal_details\r\n .medicareReferenceNumber\r\n ),\r\n medicareExpiry: formatDateForForm(\r\n res.ApplicationRequest.application_details.personal_details\r\n .medicareDateOfExpiry,\r\n true\r\n ),\r\n passportNumber: toFieldValue(\r\n res.ApplicationRequest.application_details.personal_details.passport\r\n ),\r\n passportCountry: toFieldValue(\r\n res.ApplicationRequest.application_details.personal_details\r\n .passportCountry\r\n ),\r\n\r\n email: toFieldValue(res.ApplicationRequest.Email),\r\n mobile: formatPhoneInput(\r\n res.ApplicationRequest.application_details.contact_details.mobile_phone,\r\n 4,\r\n 8\r\n ),\r\n homePhone: formatPhoneInput(\r\n res.ApplicationRequest.application_details.contact_details\r\n .home_area_code +\r\n res.ApplicationRequest.application_details.contact_details.home_phone,\r\n 2,\r\n 7\r\n ),\r\n workPhone: formatPhoneInput(\r\n res.ApplicationRequest.application_details.contact_details\r\n .work_area_code +\r\n res.ApplicationRequest.application_details.contact_details.work_phone,\r\n 2,\r\n 7\r\n ),\r\n address: mapToAddress(\r\n res.ApplicationRequest.application_details.current_address\r\n ),\r\n addressUnit: toFieldValue(\r\n res.ApplicationRequest.application_details.current_address.unit\r\n ),\r\n addressStreetNumber: toFieldValue(\r\n res.ApplicationRequest.application_details.current_address.street_number\r\n ),\r\n addressStreetName: toFieldValue(\r\n res.ApplicationRequest.application_details.current_address.street_name\r\n ),\r\n addressStreetType: toFieldValue(\r\n res.ApplicationRequest.application_details.current_address.street_type\r\n ),\r\n addressSuburb: toFieldValue(\r\n res.ApplicationRequest.application_details.current_address.town\r\n ),\r\n addressState: toFieldValue(\r\n res.ApplicationRequest.application_details.current_address.state\r\n ),\r\n addressPostcode: toFieldValue(\r\n res.ApplicationRequest.application_details.current_address.postcode\r\n ),\r\n yearsAtAddress: getYearsAtAddress(\r\n res.ApplicationRequest.application_details.current_address.total_months\r\n ),\r\n monthsAtAddress: getMonthsAtAddress(\r\n res.ApplicationRequest.application_details.current_address.total_months\r\n ),\r\n livingSituationAtAddress: toFieldValue(\r\n res.ApplicationRequest.application_details.current_address\r\n .residency_status\r\n ),\r\n ...getMortgageDetails(\r\n res.ApplicationRequest.application_details.financial_details\r\n .mortgage_list,\r\n res.ApplicationRequest.application_details.current_address\r\n .residency_status\r\n ),\r\n totalRentalAmount: toFieldValue(\r\n res.ApplicationRequest.application_details.financial_details\r\n .rent_amount_full\r\n ),\r\n rentalAmountFrequency: toFieldValue(\r\n res.ApplicationRequest.application_details.financial_details\r\n .rent_frequency\r\n ),\r\n rentShared: res.ApplicationRequest.application_details.financial_details\r\n .rent_shared\r\n ? [\"Total rental amount is shared?\"]\r\n : [],\r\n propertyOwnerManagerName: toFieldValue(\r\n res.ApplicationRequest.application_details.current_address\r\n .landlord_mortgagor_name\r\n ),\r\n propertyOwnerManagerPhone: formatPhoneInput(\r\n res.ApplicationRequest.application_details.current_address\r\n .landlord_mortgagor_phone,\r\n 4,\r\n 8\r\n ),\r\n previousAddress: mapToAddress(\r\n res.ApplicationRequest.application_details.previous_address\r\n ),\r\n previousAddressUnit: toFieldValue(\r\n res.ApplicationRequest.application_details.previous_address.unit\r\n ),\r\n previousAddressStreetNumber: toFieldValue(\r\n res.ApplicationRequest.application_details.previous_address.street_number\r\n ),\r\n previousAddressStreetName: toFieldValue(\r\n res.ApplicationRequest.application_details.previous_address.street_name\r\n ),\r\n previousAddressStreetType: toFieldValue(\r\n res.ApplicationRequest.application_details.previous_address.street_type\r\n ),\r\n previousAddressSuburb: toFieldValue(\r\n res.ApplicationRequest.application_details.previous_address.town\r\n ),\r\n previousAddressState: toFieldValue(\r\n res.ApplicationRequest.application_details.previous_address.state\r\n ),\r\n previousAddressPostcode: toFieldValue(\r\n res.ApplicationRequest.application_details.previous_address.postcode\r\n ),\r\n yearsAtPreviousAddress: getYearsAtAddress(\r\n res.ApplicationRequest.application_details.previous_address.total_months\r\n ),\r\n monthsAtPreviousAddress: getMonthsAtAddress(\r\n res.ApplicationRequest.application_details.previous_address.total_months\r\n ),\r\n livingSituationAtPreviousAddress: toFieldValue(\r\n res.ApplicationRequest.application_details.previous_address\r\n .residency_status\r\n ),\r\n\r\n // Employment\r\n employmentStatus: toFieldValue(\r\n res.ApplicationRequest.application_details.current_employment\r\n .employment_status\r\n ),\r\n yearsAtEmployer: getYearsAtAddress(\r\n res.ApplicationRequest.application_details.current_employment.total_months\r\n ),\r\n monthsAtEmployer: getMonthsAtAddress(\r\n res.ApplicationRequest.application_details.current_employment.total_months\r\n ),\r\n employerName: toFieldValue(\r\n res.ApplicationRequest.application_details.current_employment.employer\r\n ),\r\n occupation: toFieldValue(\r\n res.ApplicationRequest.application_details.current_employment.occupation\r\n ),\r\n employmentContactNumber: formatPhoneInput(\r\n [\r\n res.ApplicationRequest.application_details.current_employment.area_code,\r\n res.ApplicationRequest.application_details.current_employment.phone,\r\n ].join(\"\"),\r\n 4,\r\n 8\r\n ),\r\n employmentIndustry: toFieldValue(\r\n res.ApplicationRequest.application_details.current_employment\r\n .employer_industry\r\n ),\r\n\r\n // Previous employment\r\n previousEmploymentStatus: toFieldValue(\r\n res.ApplicationRequest.application_details.previous_employment\r\n .employment_status\r\n ),\r\n yearsAtPreviousEmployer: getYearsAtAddress(\r\n res.ApplicationRequest.application_details.previous_employment\r\n .total_months\r\n ),\r\n monthsAtPreviousEmployer: getMonthsAtAddress(\r\n res.ApplicationRequest.application_details.previous_employment\r\n .total_months\r\n ),\r\n previousEmployerName: toFieldValue(\r\n res.ApplicationRequest.application_details.previous_employment.employer\r\n ),\r\n previousOccupation: toFieldValue(\r\n res.ApplicationRequest.application_details.previous_employment.occupation\r\n ),\r\n previousEmploymentContactNumber: formatPhoneInput(\r\n [\r\n res.ApplicationRequest.application_details.previous_employment\r\n .area_code,\r\n res.ApplicationRequest.application_details.previous_employment.phone,\r\n ].join(\"\"),\r\n 4,\r\n 8\r\n ),\r\n /** @todo this doesn't exist in current data */\r\n // previousEmploymentIndustry: \"\",\r\n\r\n // Primary income\r\n incomeSource: toFieldValue(\r\n res.ApplicationRequest.application_details.financial_details\r\n .income_amount_description || defaultIncomeSource.value\r\n ),\r\n incomeAmount: toFieldValue(\r\n res.ApplicationRequest.application_details.financial_details.income_amount\r\n ),\r\n incomeFrequency: toFieldValue(\r\n res.ApplicationRequest.application_details.financial_details\r\n .income_frequency\r\n ),\r\n\r\n // Other income\r\n otherIncomeAmount_1: toFieldValue(\r\n res.ApplicationRequest.application_details.financial_details\r\n .other_income_amount_1 || \"\"\r\n ),\r\n otherIncomeSource_1: toFieldValue(\r\n res.ApplicationRequest.application_details.financial_details\r\n .other_income_amount_1_description\r\n ),\r\n otherIncomeFrequency_1: toFieldValue(\r\n res.ApplicationRequest.application_details.financial_details\r\n .other_income_amount_1_frequency\r\n ),\r\n otherIncomeAmount_2: toFieldValue(\r\n res.ApplicationRequest.application_details.financial_details\r\n .other_income_amount_2 || \"\"\r\n ),\r\n otherIncomeSource_2: toFieldValue(\r\n res.ApplicationRequest.application_details.financial_details\r\n .other_income_amount_2_description\r\n ),\r\n otherIncomeFrequency_2: toFieldValue(\r\n res.ApplicationRequest.application_details.financial_details\r\n .other_income_amount_2_frequency\r\n ),\r\n otherIncomeAmount_3: toFieldValue(\r\n res.ApplicationRequest.application_details.financial_details\r\n .other_income_amount_3 || \"\"\r\n ),\r\n otherIncomeSource_3: toFieldValue(\r\n res.ApplicationRequest.application_details.financial_details\r\n .other_income_amount_3_description\r\n ),\r\n otherIncomeFrequency_3: toFieldValue(\r\n res.ApplicationRequest.application_details.financial_details\r\n .other_income_amount_3_frequency\r\n ),\r\n\r\n partnerIncomeAmount: toFieldValue(\r\n res.ApplicationRequest.application_details.financial_details\r\n .partner_income\r\n ),\r\n //living expenses\r\n groceries: toFieldValue(\r\n res.ApplicationRequest.application_details.financial_details.groceries\r\n ),\r\n clothing: toFieldValue(\r\n res.ApplicationRequest.application_details.financial_details.clothing\r\n ),\r\n council_rates: toFieldValue(\r\n res.ApplicationRequest.application_details.financial_details.council_rates\r\n ),\r\n car_registration: toFieldValue(\r\n res.ApplicationRequest.application_details.financial_details\r\n .car_registration\r\n ),\r\n petrol: toFieldValue(\r\n res.ApplicationRequest.application_details.financial_details.petrol\r\n ),\r\n health_insurance: toFieldValue(\r\n res.ApplicationRequest.application_details.financial_details\r\n .health_insurance\r\n ),\r\n car_home_insurance: toFieldValue(\r\n res.ApplicationRequest.application_details.financial_details\r\n .car_home_insurance\r\n ),\r\n utilities: toFieldValue(\r\n res.ApplicationRequest.application_details.financial_details.utilities\r\n ),\r\n communication: toFieldValue(\r\n res.ApplicationRequest.application_details.financial_details.communication\r\n ),\r\n transportation: toFieldValue(\r\n res.ApplicationRequest.application_details.financial_details\r\n .transportation\r\n ),\r\n education: toFieldValue(\r\n res.ApplicationRequest.application_details.financial_details.education\r\n ),\r\n entertainment: toFieldValue(\r\n res.ApplicationRequest.application_details.financial_details.entertainment\r\n ),\r\n other_general_expenses: toFieldValue(\r\n res.ApplicationRequest.application_details.financial_details\r\n .other_general_expenses\r\n ),\r\n other_additional_expenses: toFieldValue(\r\n res.ApplicationRequest.application_details.financial_details\r\n .other_additional_expenses\r\n ),\r\n seconds_motor_vehicle: toFieldValue(\r\n res.ApplicationRequest.application_details.financial_details\r\n .seconds_motor_vehicle\r\n ),\r\n\r\n // financial Debt\r\n hasDebts:\r\n // Initialize hasDebts field to match loan purpose when consolidation for consistency\r\n res.ApplicationRequest.LoanPurpose === \"Consolidation\"\r\n ? \"yes\"\r\n : toBooleanString(\r\n res.ApplicationRequest.application_details.financial_details\r\n .has_debts\r\n ),\r\n ...setFinancialDebtCheckBoxes(),\r\n ...convertFinancialDebtToFields(\r\n res.ApplicationRequest.application_details.financial_details\r\n .credit_card_list,\r\n res.ApplicationRequest.application_details.financial_details\r\n .personal_loan_list,\r\n res.ApplicationRequest.application_details.financial_details\r\n .mortgage_list,\r\n res.ApplicationRequest.application_details.current_address\r\n .residency_status\r\n ),\r\n\r\n // Credit Sense\r\n creditSenseResult: \"\",\r\n skipCreditSense: [],\r\n allowBypassCreditSense:\r\n res.ApplicationRequest.AllowBypassCreditSense ||\r\n creditScore.CreditScore >= MINIMUM_CREDIT_SCORE_FOR_SKIP_CREDITSENSE\r\n ? \"true\"\r\n : \"\",\r\n\r\n //secured vehicle\r\n\r\n assetFound: res.ApplicationRequest.securedVehicleInformation\r\n ?.VehicleModelKnown\r\n ? \"Yes\"\r\n : \"No\",\r\n assetYear: toFieldValue(\r\n res.ApplicationRequest.securedVehicleInformation?.VehicleAge\r\n ),\r\n assetSeller: res.ApplicationRequest.securedVehicleInformation?.SaleType,\r\n assetAgeEstimate:\r\n res.ApplicationRequest.securedVehicleInformation?.EstimatedVehicleAge,\r\n\r\n // investment property\r\n ownsInvestmentProperty: res.ApplicationRequest.application_details\r\n .investment_property.owns_investment_property\r\n ? \"Yes\"\r\n : \"No\",\r\n investmentPropertyMortgaged: res.ApplicationRequest.application_details\r\n .investment_property.investment_property_mortgaged\r\n ? \"Yes\"\r\n : \"No\",\r\n\r\n // bank details\r\n bankName: res.ApplicationRequest.application_details.bank_account.bank_name,\r\n accountName:\r\n res.ApplicationRequest.application_details.bank_account.account_name,\r\n bsb: res.ApplicationRequest.application_details.bank_account.bsb,\r\n accountNumber:\r\n res.ApplicationRequest.application_details.bank_account.account_number,\r\n jointAccount: res.ApplicationRequest.application_details.bank_account\r\n .joint_account\r\n ? [\"Joint Account\"]\r\n : ([] as string[]),\r\n jointAccountName:\r\n res.ApplicationRequest.application_details.bank_account\r\n .joint_account_name,\r\n significantPlannedChanges: res.ApplicationRequest.application_details\r\n .SignificantPlannedChanges\r\n ? \"Yes\"\r\n : \"\",\r\n significantPlannedChangeTypes:\r\n res.ApplicationRequest.application_details\r\n .SignificantPlannedChangeTypes ?? ([] as string[]),\r\n termsAndConditionsAgreement: [],\r\n };\r\n}\r\n\r\nconst formatDateForForm = (dateString?: string | null, short = false) => {\r\n return dateString\r\n ? moment.utc(dateString).format(short ? \"MM / YYYY\" : \"DD / MM / YYYY\")\r\n : \"\";\r\n};\r\n\r\nconst parseDateForSubmit = (dateString: string, short = false) => {\r\n const date = moment.utc(dateString, short ? \"MM / YYYY\" : \"DD / MM / YYYY\");\r\n return date.isValid() ? date.toISOString() : \"\";\r\n};\r\n\r\nconst setFinancialDebtCheckBoxes = () => {\r\n const result: { [key: string]: string | string[] } = {};\r\n for (let i = 1; i <= 10; i++) {\r\n result[`financialDebtIsJointLoan_${i}`] = [] as string[];\r\n result[`financialDebtConsolidate_${i}`] = [] as string[];\r\n result[`financialDebtIsInvestment_${i}`] = [] as string[];\r\n result[`financialDebtCloseThisCard_${i}`] = [] as string[];\r\n }\r\n // todo: Removal of this any cast reveals a whole bunch of typing issues which need to be looked at\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n return result as any;\r\n};\r\n\r\nconst convertFinancialDebtToFields = (\r\n cardList: CreditCard[],\r\n personalList: PersonalLoan[],\r\n mortgageList: Mortgage[],\r\n livingSituation: string\r\n) => {\r\n const result: { [key: string]: string | string[] } = {};\r\n let count = 1;\r\n cardList.forEach((card: CreditCard) => {\r\n result[`financialDebtType_${count}`] = \"Credit card\";\r\n result[`financialDebtFinanceCompany_${count}`] =\r\n card.credit_card_finance_company;\r\n result[`financialDebtBalance_${count}`] = toFieldValue(\r\n card.credit_card_balance\r\n );\r\n result[`financialDebtRepaymentAmount_${count}`] = \"\";\r\n result[`financialDebtRepaymentFrequency_${count}`] = \"\";\r\n result[`financialDebtIsJointLoan_${count}`] = [] as string[];\r\n result[`financialDebtConsolidate_${count}`] = card.credit_card_consolidate\r\n ? [\"Consolidate this card\"]\r\n : ([] as string[]);\r\n result[`financialDebtIsInvestment_${count}`] = [] as string[];\r\n result[`financialDebtCreditCardLimit_${count}`] = toFieldValue(\r\n card.credit_card_limit\r\n );\r\n result[`financialDebtCloseThisCard_${count}`] = card.credit_card_close\r\n ? [\"Close this card\"]\r\n : ([] as string[]);\r\n count++;\r\n });\r\n\r\n personalList.forEach((loan: PersonalLoan) => {\r\n result[`financialDebtType_${count}`] = \"Personal loan\";\r\n result[`financialDebtFinanceCompany_${count}`] =\r\n loan.personal_loan_finance_company;\r\n result[`financialDebtBalance_${count}`] = toFieldValue(\r\n loan.personal_loan_balance\r\n );\r\n result[`financialDebtRepaymentAmount_${count}`] = toFieldValue(\r\n loan.personal_loan_repayment\r\n );\r\n result[`financialDebtRepaymentFrequency_${count}`] =\r\n loan.personal_loan_repayment_frequency;\r\n result[`financialDebtIsJointLoan_${count}`] = loan.personal_loan_shared\r\n ? [\"Joint loan\"]\r\n : ([] as string[]);\r\n result[`financialDebtConsolidate_${count}`] = loan.personal_loan_consolidate\r\n ? [\"Consolidate this loan\"]\r\n : ([] as string[]);\r\n result[`financialDebtIsInvestment_${count}`] = [] as string[];\r\n result[`financialDebtCreditCardLimit_${count}`] = \"\";\r\n result[`financialDebtCloseThisCard_${count}`] = [] as string[];\r\n count++;\r\n });\r\n\r\n mortgageList\r\n .filter(\r\n (mortgage: Mortgage, i) =>\r\n !isMortgageForPrimaryResidence(mortgage, i, livingSituation)\r\n )\r\n .forEach((mortgage: Mortgage) => {\r\n result[`financialDebtType_${count}`] = \"Mortgage\";\r\n result[`financialDebtFinanceCompany_${count}`] =\r\n mortgage.mortgage_finance_company;\r\n result[`financialDebtBalance_${count}`] = toFieldValue(\r\n mortgage.mortgage_balance\r\n );\r\n result[`financialDebtRepaymentAmount_${count}`] = toFieldValue(\r\n mortgage.mortgage_repayment\r\n );\r\n result[`financialDebtRepaymentFrequency_${count}`] =\r\n mortgage.mortgage_repayment_frequency;\r\n result[`financialDebtIsJointLoan_${count}`] = mortgage.mortgage_shared\r\n ? [\"Joint loan\"]\r\n : ([] as string[]);\r\n result[`financialDebtConsolidate_${count}`] = [] as string[];\r\n result[`financialDebtIsInvestment_${count}`] =\r\n mortgage.investment_property\r\n ? [\"Investment property\"]\r\n : ([] as string[]);\r\n result[`financialDebtCreditCardLimit_${count}`] = \"\";\r\n result[`financialDebtCloseThisCard_${count}`] = [] as string[];\r\n count++;\r\n });\r\n\r\n // Clear old debts\r\n for (let i = count; i <= 10; i++) {\r\n result[`financialDebtType_${i}`] = \"\";\r\n result[`financialDebtFinanceCompany_${i}`] = \"\";\r\n result[`financialDebtBalance_${i}`] = \"\";\r\n\r\n result[`financialDebtRepaymentAmount_${i}`] = \"\";\r\n result[`financialDebtRepaymentFrequency_${i}`] = \"\";\r\n result[`financialDebtIsJointLoan_${i}`] = [] as string[];\r\n result[`financialDebtConsolidate_${i}`] = [] as string[];\r\n result[`financialDebtIsInvestment_${i}`] = [] as string[];\r\n result[`financialDebtCreditCardLimit_${i}`] = \"\";\r\n result[`financialDebtCloseThisCard_${i}`] = [] as string[];\r\n }\r\n\r\n return result;\r\n};\r\n\r\nfunction flattenPhoneInput(value: string) {\r\n return value.replace(/ /g, \"\");\r\n}\r\nfunction formatPhoneInput(\r\n value: string | undefined | null,\r\n firstSplit: number,\r\n secondSplit: number\r\n) {\r\n if (value) {\r\n value = flattenPhoneInput(value);\r\n value = value.slice(0, firstSplit) + \" \" + value.slice(firstSplit);\r\n value = value.slice(0, secondSplit) + \" \" + value.slice(secondSplit);\r\n return value.trim();\r\n }\r\n\r\n return \"\";\r\n}\r\n\r\nconst getMonthsAtAddress = (totalMonths = 0): string => {\r\n return (totalMonths - Math.floor(totalMonths / 12) * 12).toString();\r\n};\r\n\r\nconst getYearsAtAddress = (totalMonths = 0): string => {\r\n return Math.floor(totalMonths / 12).toString();\r\n};\r\n\r\nconst isMortgageForPrimaryResidence = (\r\n mortgage: Mortgage,\r\n i: number,\r\n livingSituation: string\r\n) => {\r\n // first item will be the mortgage for the applicant's home if their living statu is Mortgaged\r\n return (\r\n i === 0 &&\r\n !mortgage.investment_property &&\r\n livingSituation === LIVING_SITUATION_MORTGAGE\r\n );\r\n};\r\n\r\nconst getMortgageDetails = (mortgages: Mortgage[], livingSituation: string) => {\r\n if (\r\n mortgages.length > 0 &&\r\n isMortgageForPrimaryResidence(mortgages[0], 0, livingSituation)\r\n ) {\r\n const currentAddress = mortgages[0];\r\n return {\r\n mortgageFinanceCompany: currentAddress.mortgage_finance_company,\r\n mortgageBalance: currentAddress.mortgage_balance.toString(),\r\n mortgageRepaymentAmount: currentAddress.mortgage_repayment,\r\n mortgageRepaymentFrequency: currentAddress.mortgage_repayment_frequency,\r\n hasCoBorrower: currentAddress.mortgage_shared ? \"Yes\" : \"No\",\r\n };\r\n } else {\r\n return {\r\n mortgageFinanceCompany: \"\",\r\n mortgageBalance: \"\",\r\n mortgageRepaymentAmount: \"\",\r\n mortgageRepaymentFrequency: \"\",\r\n hasCoBorrower: \"\",\r\n };\r\n }\r\n};\r\n\r\nconst toFieldValue = (\r\n value: string | number | boolean | undefined | null | string[]\r\n) => {\r\n if (Array.isArray(value)) {\r\n return value[0];\r\n }\r\n return value?.toString() || \"\";\r\n};\r\n\r\nexport const checkForFormLevelErrors = (formData: Application) => {\r\n const formErrors: SectionErrors = {};\r\n\r\n formErrors[\"incomeError\"] = getIncomeErrors(formData);\r\n formErrors[\"spendingError\"] = getSpendingErrors(formData);\r\n formErrors[\"owingError\"] = getOwingErrors(formData);\r\n\r\n return formErrors;\r\n};\r\n\r\nconst getIncomeErrors = (formData: Application): undefined | Status[] => {\r\n const minimumIncome = 25000;\r\n const errorMsg = \"Your total income must be at least $25,000 per year\";\r\n\r\n const primaryIncome = getAnnualAmount(\r\n +formData.incomeAmount,\r\n formData.incomeFrequency\r\n );\r\n const otherIncome = getAnnualAmount(\r\n +formData.otherIncomeAmount_1,\r\n formData.otherIncomeFrequency_1\r\n );\r\n const otherIncome2 = getAnnualAmount(\r\n +formData.otherIncomeAmount_2,\r\n formData.otherIncomeFrequency_2\r\n );\r\n const otherIncome3 = getAnnualAmount(\r\n +formData.otherIncomeAmount_3,\r\n formData.otherIncomeFrequency_3\r\n );\r\n\r\n const totalIncome = primaryIncome + otherIncome + otherIncome2 + otherIncome3;\r\n\r\n if (totalIncome < minimumIncome) {\r\n return [{ kind: \"error\", message: errorMsg }];\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\nconst getSpendingErrors = (formData: Application): undefined | Status[] => {\r\n const minimumSpent = 0;\r\n const errorMsg = \"Your total monthly living expenses must be greater than $0\";\r\n\r\n const totalExpenses =\r\n +formData.groceries +\r\n +formData.clothing +\r\n +formData.council_rates +\r\n +formData.car_registration +\r\n +formData.petrol +\r\n +formData.car_home_insurance +\r\n +formData.utilities +\r\n +formData.communication +\r\n +formData.transportation +\r\n +formData.entertainment +\r\n +formData.other_general_expenses;\r\n\r\n if (totalExpenses <= minimumSpent) {\r\n return [{ kind: \"error\", message: errorMsg }];\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\nconst getOwingErrors = (formData: Application): undefined | Status[] => {\r\n const statuses: Status[] = [];\r\n if (\r\n formData.livingSituationAtAddress !== LIVING_SITUATION_MORTGAGE &&\r\n formData.ownsInvestmentProperty === \"Yes\" &&\r\n formData.investmentPropertyMortgaged === \"Yes\" &&\r\n !declaredMortgage(formData)\r\n ) {\r\n statuses.push({\r\n kind: \"error\",\r\n message:\r\n \"You must declare one mortgage as you have told us your investment property is mortgaged.\",\r\n });\r\n }\r\n\r\n if (\r\n formData.loanPurpose === \"Consolidation\" &&\r\n checkForLoanOrCards(formData).filter((debt) => debt.consolidate.length > 0)\r\n .length === 0\r\n ) {\r\n statuses.push({\r\n kind: \"error\",\r\n message:\r\n \"Please ensure that at least one credit card or personal loan is being consolidated\",\r\n });\r\n }\r\n\r\n if (\r\n formData.loanPurpose !== \"Consolidation\" &&\r\n formData.hasDebts === \"yes\" &&\r\n !hasAddedDebts(formData)\r\n ) {\r\n statuses.push({\r\n kind: \"error\",\r\n message: \"Please add all your debts\",\r\n });\r\n }\r\n\r\n if (statuses.length > 0) {\r\n return statuses;\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\nconst declaredMortgage = (formData: Application): boolean => {\r\n let mortgages = 0;\r\n for (let i = 1; i <= 10; i++) {\r\n const key =\r\n `financialDebtType_${i}` as keyof typeof applicationFormDefaults;\r\n if (formData[key] === \"Mortgage\") {\r\n mortgages += 1;\r\n }\r\n }\r\n return mortgages > 0;\r\n};\r\n\r\nexport const frequencies = [\r\n { label: \"Monthly\", value: \"Monthly\" },\r\n { label: \"Weekly\", value: \"Weekly\" },\r\n { label: \"Fortnightly\", value: \"Fortnightly\" },\r\n { label: \"Annually\", value: \"Annual\" },\r\n];\r\n\r\n//analytics helpers\r\nexport type ApplicationAnalytics = {\r\n eventName: string;\r\n loanPurpose: string;\r\n status: string;\r\n loanId: string;\r\n statementPreference?: \"digital\" | \"manual\";\r\n equifax?: number;\r\n equifaxOneScore?: number;\r\n lapSource?: string;\r\n appFormVersion?: string;\r\n};\r\nexport function sendAmplitudeEvent({\r\n eventName,\r\n loanPurpose,\r\n status,\r\n loanId,\r\n statementPreference,\r\n equifaxOneScore,\r\n lapSource,\r\n appFormVersion,\r\n}: ApplicationAnalytics) {\r\n const loanType = loanPurpose === \"Car\" ? \"Secured\" : \"Unsecured\";\r\n amplitudeHelper.sendEvent(\r\n eventName,\r\n {\r\n \"Loan id\": loanId,\r\n \"Loan application status\": status,\r\n \"Loan purpose\": loanPurpose,\r\n \"Loan type\": loanType,\r\n \"Bank statement preference\": statementPreference\r\n ? capitalise(statementPreference)\r\n : null,\r\n \"LAP source\": lapSource,\r\n },\r\n {\r\n \"Loan application status\": status,\r\n \"Loan purpose\": loanPurpose,\r\n \"Loan type\": loanType,\r\n \"AS Equifax One Score\": equifaxOneScore,\r\n \"LAP source\": lapSource,\r\n \"Application form split tests\": appFormVersion,\r\n }\r\n );\r\n}\r\n\r\nfunction sumRepayments(\r\n list: T[],\r\n valueKey: keyof T,\r\n frequencyKey?: keyof T,\r\n filter?: (item: T) => boolean\r\n) {\r\n return list\r\n .filter(filter ? filter : () => true)\r\n .reduce((total, currentItem) => {\r\n const value = currentItem[valueKey];\r\n const frequency = frequencyKey\r\n ? `${currentItem[frequencyKey]}`\r\n : Frequency.Annual;\r\n\r\n if (\r\n typeof value === \"string\" ||\r\n (typeof value === \"number\" && !isNaN(value))\r\n ) {\r\n return total + getAnnualAmount(+value, frequency);\r\n }\r\n\r\n return total;\r\n }, 0);\r\n}\r\n\r\nexport const mapToAddress = (address: AddressBaseType) => {\r\n const streetAddress = address.unit\r\n ? `${address.unit}/${address.street_number}`\r\n : address.street_number;\r\n\r\n // If address is still empty, assume its not valid\r\n if (!streetAddress) {\r\n return \"\";\r\n }\r\n const [streetName, streetType, town, state, postcode] = [\r\n address.street_name,\r\n address.street_type,\r\n address.town,\r\n address.state,\r\n address.postcode,\r\n ].map((name) => name ?? \"\");\r\n return `${streetAddress} ${streetName} ${streetType}, ${town} ${state} ${postcode}`.replace(\r\n \" ,\",\r\n \",\"\r\n );\r\n};\r\n","import css from 'styled-jsx/css';\n\nconst styles = css`section{border-radius:8px;margin:.5rem 0;padding:1.5rem 1.5rem .5rem;border:1px solid var(--navy-300);overflow:hidden}section.card-hidden{display:none}p{display:flex;justify-content:space-between;align-items:center;margin:-1.5rem -1.5rem 1rem -1.5rem;padding:0 1.5rem;height:4.5rem;background:var(--navy-300);color:var(--white-100);font-weight:500}p :global(button){margin:0 !important}p :global(i){margin-right:.5rem}`;\n\nexport default styles;","// todo: Review this file, it has too many helper methods in it used out of order\r\n/* eslint-disable @typescript-eslint/no-use-before-define */\r\nimport { UseFormTools } from \"@wisr/common\";\r\nimport {\r\n Button,\r\n ButtonRow,\r\n Field,\r\n Fieldset,\r\n StatusCallout,\r\n} from \"@wisr/react-ui\";\r\nimport React, { useState } from \"react\";\r\n\r\nimport { RemoveButton } from \"../../shared/remove-button/remove-button.component\";\r\nimport { Application, Frequency, Status } from \"../application\";\r\nimport { applicationFormDefaults } from \"../application-form.constants\";\r\nimport formCardStyle from \"./form-card.scss\";\r\n\r\nexport const defaultIncomeSource = {\r\n label: \"Main Job - Total Salary and Wages\",\r\n value: \"Salary & Wages\",\r\n};\r\nconst incomeSourceOptions = [\r\n defaultIncomeSource,\r\n \"Rental Income\",\r\n \"Self employed Business Income\",\r\n \"Government Benefits\",\r\n \"Investment Income - Interest\",\r\n \"Investment Income - Dividends\",\r\n \"Other Job\",\r\n];\r\n\r\n// Currently we only support otherIncome_<1-3>\r\ntype OtherIncomeId = 1 | 2 | 3;\r\n\r\ntype Income = {\r\n amount: string;\r\n frequency: string;\r\n source: string;\r\n};\r\nconst otherIncomeIds: OtherIncomeId[] = [1, 2, 3];\r\n// The last item in the array is assumed to be the maximum count\r\nconst [maxOtherIncomeCount] = otherIncomeIds.slice(-1);\r\nconst incomeFrequencyOptions = Object.values(Frequency).map((f) =>\r\n f.toString()\r\n);\r\n\r\ninterface Props {\r\n fieldAdapter: UseFormTools[\"fieldAdapter\"];\r\n formData: Application;\r\n setValue: UseFormTools[\"setValue\"];\r\n callouts?: Status[] | null;\r\n}\r\nexport const ApplicationIncomeComponent: React.FunctionComponent = ({\r\n fieldAdapter,\r\n formData,\r\n setValue,\r\n callouts,\r\n}) => {\r\n const { otherIncomeSource_1, otherIncomeSource_2, otherIncomeSource_3 } =\r\n formData;\r\n const [otherIncomeCount, setOtherIncomeCount] = useState(() => {\r\n switch (true) {\r\n case !!otherIncomeSource_3:\r\n return 3;\r\n case !!otherIncomeSource_2:\r\n return 2;\r\n case !!otherIncomeSource_1:\r\n return 1;\r\n default:\r\n return 0;\r\n }\r\n });\r\n\r\n function addOtherIncome() {\r\n setOtherIncomeCount(otherIncomeCount + 1);\r\n }\r\n\r\n function removeOtherIncome(remove: OtherIncomeId) {\r\n return () => {\r\n const incomes = removeIncome(getIncomeFields(formData), remove - 1);\r\n incomes.forEach((income, i) => {\r\n const { amountKey, frequencyKey, sourceKey } = getFieldKeys(\r\n (i + 1) as OtherIncomeId\r\n );\r\n setValue(amountKey, income.amount);\r\n setValue(frequencyKey, income.frequency);\r\n setValue(sourceKey, income.source);\r\n });\r\n\r\n for (let i = incomes.length + 1; i <= 3; i++) {\r\n const { amountKey, frequencyKey, sourceKey } = getFieldKeys(\r\n i as OtherIncomeId\r\n );\r\n setValue(amountKey, \"\");\r\n setValue(frequencyKey, \"\");\r\n setTimeout(() => setValue(sourceKey, \"\"));\r\n }\r\n\r\n setOtherIncomeCount(incomes.length);\r\n };\r\n }\r\n\r\n return (\r\n <>\r\n
    \r\n <>\r\n {callouts &&\r\n callouts.map((callout, i) => (\r\n \r\n ))}\r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n <>\r\n {otherIncomeIds.map((id) => {\r\n const { amountKey, frequencyKey, sourceKey } = getFieldKeys(id);\r\n\r\n return (\r\n otherIncomeCount}\r\n key={id}\r\n heading={`Other income source ${id}`}\r\n action={}\r\n >\r\n \r\n\r\n \r\n\r\n \r\n \r\n );\r\n })}\r\n\r\n {otherIncomeCount < maxOtherIncomeCount && (\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n\r\n \r\n

    \r\n If you partner has an income, please tell us about it here. This\r\n helps us determine if this loan is affordable for you.\r\n

    \r\n \r\n
    \r\n \r\n \r\n );\r\n};\r\n\r\nexport function hasPartner(maritalStatus: string) {\r\n return [\"Married\", \"De Facto\"].includes(maritalStatus);\r\n}\r\n\r\nfunction getFieldKeys(id: OtherIncomeId) {\r\n /**\r\n * @todo the version of TS we are using does not support literal types\r\n * If it did, we would be able to use `as const` and it would resolve the types correctly.\r\n * When we move to a newer version of TS we should make this change\r\n * */\r\n const amountKey = `otherIncomeAmount_${id}` as\r\n | \"otherIncomeAmount_1\"\r\n | \"otherIncomeAmount_2\"\r\n | \"otherIncomeAmount_3\";\r\n const frequencyKey = `otherIncomeFrequency_${id}` as\r\n | \"otherIncomeFrequency_1\"\r\n | \"otherIncomeFrequency_2\"\r\n | \"otherIncomeFrequency_3\";\r\n const sourceKey = `otherIncomeSource_${id}` as\r\n | \"otherIncomeSource_1\"\r\n | \"otherIncomeSource_2\"\r\n | \"otherIncomeSource_3\";\r\n\r\n return { amountKey, frequencyKey, sourceKey };\r\n}\r\n\r\n/**\r\n * @todo this is a temporary component until it becomes part of the design system propper\r\n * When this happens it should be renamed to match with the design system and then\r\n * unit tests will need to be written\r\n */\r\nexport const FormCard: React.FunctionComponent<{\r\n heading: string;\r\n action?: React.ReactNode;\r\n hide?: boolean;\r\n}> =\r\n /* istanbul ignore next */\r\n ({ heading, action: remove, children, hide }) => (\r\n
    \r\n \r\n

    \r\n {heading}\r\n {remove}\r\n

    \r\n
    {children}
    \r\n
    \r\n );\r\n\r\nconst getIncomeFields = (formData: Application): Income[] => {\r\n const incomes: Income[] = [];\r\n for (let i = 1; i <= 3; i++) {\r\n const { amountKey, frequencyKey, sourceKey } = getFieldKeys(\r\n i as OtherIncomeId\r\n );\r\n incomes.push({\r\n amount: formData[amountKey],\r\n frequency: formData[frequencyKey],\r\n source: formData[sourceKey],\r\n });\r\n }\r\n return incomes.filter((income) => income.source !== \"\");\r\n};\r\n\r\nconst removeIncome = (array: Array, index: number): Income[] => {\r\n return array.slice(0, index).concat(array.slice(index + 1));\r\n};\r\n","// todo: Review this file. It's too big with too many methods\r\n/* eslint-disable @typescript-eslint/no-use-before-define */\r\nimport { UseFormTools } from \"@wisr/common\";\r\nimport { Field, Fieldset, StatusCallout } from \"@wisr/react-ui\";\r\nimport React, { useState } from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nimport { RemoveButton } from \"../../shared/remove-button/remove-button.component\";\r\nimport { AppStore } from \"../../store\";\r\nimport { Application, Status } from \"../application\";\r\nimport { frequencies, getDebtFields } from \"../application.utils\";\r\nimport { applicationFormDefaults } from \"../application-form.constants\";\r\nimport { FormCard } from \"../income/income.component\";\r\n\r\nconst debtOptions = [\r\n { label: \"Credit card / overdraft / store card\", value: \"Credit card\" },\r\n \"Personal loan\",\r\n \"Mortgage\",\r\n];\r\n\r\nexport type Debt = {\r\n type: string;\r\n company: string;\r\n balance: string;\r\n repaymentAmount: string;\r\n frequency: string;\r\n isJoint: string[];\r\n consolidate: string[];\r\n investment: string[];\r\n cardLimit: string;\r\n closeCard: string[];\r\n};\r\ninterface Props {\r\n fieldAdapter: UseFormTools[\"fieldAdapter\"];\r\n formData: Application;\r\n setValue: UseFormTools[\"setValue\"];\r\n callouts?: Status[];\r\n}\r\n\r\nexport type FinancialDebtId = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;\r\n// eslint-disable-next-line prettier/prettier\r\nconst financialDebtIds: FinancialDebtId[] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\r\n// The last item in the array is assumed to be the maximum count\r\nconst [maxFinancialDebtCount] = financialDebtIds.slice(-1);\r\n\r\nexport const ApplicationOwingComponent: React.FunctionComponent = ({\r\n fieldAdapter,\r\n formData,\r\n setValue,\r\n callouts,\r\n}) => {\r\n const hasUnsecuredRateType = useSelector(\r\n (state: AppStore) => !state.applicationState.rateCardVersionSecured\r\n );\r\n\r\n const {\r\n financialDebtType_1,\r\n financialDebtType_2,\r\n financialDebtType_3,\r\n financialDebtType_4,\r\n financialDebtType_5,\r\n financialDebtType_6,\r\n financialDebtType_7,\r\n financialDebtType_8,\r\n financialDebtType_9,\r\n financialDebtType_10,\r\n } = formData;\r\n\r\n const [financialDebtCount, setFinancialDebtCount] = useState(() => {\r\n switch (true) {\r\n case !!financialDebtType_10:\r\n return 10;\r\n case !!financialDebtType_9:\r\n return 9;\r\n case !!financialDebtType_8:\r\n return 8;\r\n case !!financialDebtType_7:\r\n return 7;\r\n case !!financialDebtType_6:\r\n return 6;\r\n case !!financialDebtType_5:\r\n return 5;\r\n case !!financialDebtType_4:\r\n return 4;\r\n case !!financialDebtType_3:\r\n return 3;\r\n case !!financialDebtType_2:\r\n return 2;\r\n case !!financialDebtType_1:\r\n return 1;\r\n default:\r\n return 0;\r\n }\r\n });\r\n\r\n function removeDebt(remove: FinancialDebtId) {\r\n return () => {\r\n const debts = removeDebtItem(getDebtFields(formData), remove - 1);\r\n debts.forEach((debt, i) => {\r\n const {\r\n debtTypeKey,\r\n financeCompanyKey,\r\n balanceKey,\r\n repaymentAmountKey,\r\n repaymentFrequencyKey,\r\n isJointLoanKey,\r\n consolidateKey,\r\n investmentKey,\r\n cardLimitKey,\r\n closeCardKey,\r\n } = getFieldKeys((i + 1) as FinancialDebtId);\r\n setValue(debtTypeKey, debt.type);\r\n setValue(financeCompanyKey, debt.company);\r\n setValue(balanceKey, debt.balance);\r\n setValue(repaymentAmountKey, debt.repaymentAmount);\r\n setValue(repaymentFrequencyKey, debt.frequency);\r\n setValue(isJointLoanKey, debt.isJoint);\r\n setValue(consolidateKey, debt.consolidate);\r\n setValue(investmentKey, debt.investment);\r\n setValue(cardLimitKey, debt.cardLimit);\r\n setValue(closeCardKey, debt.closeCard);\r\n });\r\n\r\n clearDebtFieldsFromIndex(debts.length);\r\n };\r\n }\r\n\r\n function clearDebtFieldsFromIndex(debtIndex: number) {\r\n for (let i = debtIndex + 1; i <= 10; i++) {\r\n const {\r\n debtTypeKey,\r\n financeCompanyKey,\r\n balanceKey,\r\n repaymentAmountKey,\r\n repaymentFrequencyKey,\r\n isJointLoanKey,\r\n consolidateKey,\r\n investmentKey,\r\n cardLimitKey,\r\n closeCardKey,\r\n } = getFieldKeys(i as FinancialDebtId);\r\n\r\n setValue(debtTypeKey, \"\");\r\n setValue(financeCompanyKey, \"\");\r\n setValue(balanceKey, \"\");\r\n setValue(repaymentAmountKey, \"\");\r\n setValue(repaymentFrequencyKey, \"\");\r\n setValue(isJointLoanKey, []);\r\n setValue(consolidateKey, []);\r\n setValue(investmentKey, []);\r\n setValue(cardLimitKey, \"\");\r\n setTimeout(() => setValue(closeCardKey, []));\r\n }\r\n\r\n setFinancialDebtCount(debtIndex);\r\n }\r\n\r\n function clearAllDebtFields() {\r\n clearDebtFieldsFromIndex(0);\r\n }\r\n\r\n function addfinancialDebt(e: React.ChangeEvent) {\r\n const field = `financialDebtType_${\r\n financialDebtCount + 1\r\n }` as keyof typeof formData;\r\n setValue(field, e.currentTarget.value);\r\n setFinancialDebtCount(financialDebtCount + 1);\r\n e.currentTarget.blur();\r\n\r\n // this is a hack to force validation as there is a timing issue\r\n const field2 = `financialDebtFinanceCompany_${\r\n financialDebtCount + 1\r\n }` as keyof typeof formData;\r\n setTimeout(() => setValue(field2, \"\"));\r\n }\r\n\r\n function clearSelection(e: React.FocusEvent) {\r\n e.currentTarget.value = \"\";\r\n }\r\n\r\n function onDebtDeclarationChange(hasDebts: string) {\r\n if (hasDebts !== \"yes\") {\r\n clearAllDebtFields();\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n
    \r\n

    \r\n Help us process your loan faster by declaring all{\" \"}\r\n your debts\r\n

    \r\n <>\r\n {!isDebtConsolidationPurpose(formData) && (\r\n \r\n )}\r\n {showDebtConsolidationInfo(formData, callouts) && (\r\n \r\n )}\r\n {callouts &&\r\n callouts.map((callout, i) => (\r\n \r\n ))}\r\n\r\n {financialDebtIds.map((id) => {\r\n const {\r\n debtTypeKey,\r\n financeCompanyKey,\r\n balanceKey,\r\n repaymentAmountKey,\r\n repaymentFrequencyKey,\r\n isJointLoanKey,\r\n consolidateKey,\r\n investmentKey,\r\n cardLimitKey,\r\n closeCardKey,\r\n } = getFieldKeys(id);\r\n\r\n return (\r\n financialDebtCount}\r\n key={id}\r\n heading={formData[debtTypeKey]}\r\n action={}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n );\r\n })}\r\n {(formData.hasDebts === \"yes\" ||\r\n isDebtConsolidationPurpose(formData)) &&\r\n financialDebtCount < maxFinancialDebtCount && (\r\n 0 ? \"another \" : \"\"}type`}\r\n options={debtOptions}\r\n required={financialDebtCount === 0}\r\n placeholder=\"Select an option\"\r\n onChange={addfinancialDebt}\r\n onBlur={clearSelection}\r\n >\r\n )}\r\n \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport function getFieldKeys(id: FinancialDebtId) {\r\n /**\r\n * @todo the version of TS we are using does not support literal types\r\n * If it did, we would be able to use `as const` and it would resolve the types correctly.\r\n * When we move to a newer version of TS we should make this change\r\n * */\r\n const debtTypeKey = `financialDebtType_${id}` as\r\n | \"financialDebtType_1\"\r\n | \"financialDebtType_2\"\r\n | \"financialDebtType_3\"\r\n | \"financialDebtType_4\"\r\n | \"financialDebtType_5\"\r\n | \"financialDebtType_6\"\r\n | \"financialDebtType_7\"\r\n | \"financialDebtType_8\"\r\n | \"financialDebtType_9\"\r\n | \"financialDebtType_10\";\r\n const financeCompanyKey = `financialDebtFinanceCompany_${id}` as\r\n | \"financialDebtFinanceCompany_1\"\r\n | \"financialDebtFinanceCompany_2\"\r\n | \"financialDebtFinanceCompany_3\"\r\n | \"financialDebtFinanceCompany_4\"\r\n | \"financialDebtFinanceCompany_5\"\r\n | \"financialDebtFinanceCompany_6\"\r\n | \"financialDebtFinanceCompany_7\"\r\n | \"financialDebtFinanceCompany_8\"\r\n | \"financialDebtFinanceCompany_9\"\r\n | \"financialDebtFinanceCompany_10\";\r\n const balanceKey = `financialDebtBalance_${id}` as\r\n | \"financialDebtBalance_1\"\r\n | \"financialDebtBalance_2\"\r\n | \"financialDebtBalance_3\"\r\n | \"financialDebtBalance_4\"\r\n | \"financialDebtBalance_5\"\r\n | \"financialDebtBalance_6\"\r\n | \"financialDebtBalance_7\"\r\n | \"financialDebtBalance_8\"\r\n | \"financialDebtBalance_9\"\r\n | \"financialDebtBalance_10\";\r\n const repaymentAmountKey = `financialDebtRepaymentAmount_${id}` as\r\n | \"financialDebtRepaymentAmount_1\"\r\n | \"financialDebtRepaymentAmount_2\"\r\n | \"financialDebtRepaymentAmount_3\"\r\n | \"financialDebtRepaymentAmount_4\"\r\n | \"financialDebtRepaymentAmount_5\"\r\n | \"financialDebtRepaymentAmount_6\"\r\n | \"financialDebtRepaymentAmount_7\"\r\n | \"financialDebtRepaymentAmount_8\"\r\n | \"financialDebtRepaymentAmount_9\"\r\n | \"financialDebtRepaymentAmount_10\";\r\n const repaymentFrequencyKey = `financialDebtRepaymentFrequency_${id}` as\r\n | \"financialDebtRepaymentFrequency_1\"\r\n | \"financialDebtRepaymentFrequency_2\"\r\n | \"financialDebtRepaymentFrequency_3\"\r\n | \"financialDebtRepaymentFrequency_4\"\r\n | \"financialDebtRepaymentFrequency_5\"\r\n | \"financialDebtRepaymentFrequency_6\"\r\n | \"financialDebtRepaymentFrequency_7\"\r\n | \"financialDebtRepaymentFrequency_8\"\r\n | \"financialDebtRepaymentFrequency_9\"\r\n | \"financialDebtRepaymentFrequency_10\";\r\n const isJointLoanKey = `financialDebtIsJointLoan_${id}` as\r\n | \"financialDebtIsJointLoan_1\"\r\n | \"financialDebtIsJointLoan_2\"\r\n | \"financialDebtIsJointLoan_3\"\r\n | \"financialDebtIsJointLoan_4\"\r\n | \"financialDebtIsJointLoan_5\"\r\n | \"financialDebtIsJointLoan_6\"\r\n | \"financialDebtIsJointLoan_7\"\r\n | \"financialDebtIsJointLoan_8\"\r\n | \"financialDebtIsJointLoan_9\"\r\n | \"financialDebtIsJointLoan_10\";\r\n const consolidateKey = `financialDebtConsolidate_${id}` as\r\n | \"financialDebtConsolidate_1\"\r\n | \"financialDebtConsolidate_2\"\r\n | \"financialDebtConsolidate_3\"\r\n | \"financialDebtConsolidate_4\"\r\n | \"financialDebtConsolidate_5\"\r\n | \"financialDebtConsolidate_6\"\r\n | \"financialDebtConsolidate_7\"\r\n | \"financialDebtConsolidate_8\"\r\n | \"financialDebtConsolidate_9\"\r\n | \"financialDebtConsolidate_10\";\r\n const investmentKey = `financialDebtIsInvestment_${id}` as\r\n | \"financialDebtIsInvestment_2\"\r\n | \"financialDebtIsInvestment_3\"\r\n | \"financialDebtIsInvestment_4\"\r\n | \"financialDebtIsInvestment_5\"\r\n | \"financialDebtIsInvestment_6\"\r\n | \"financialDebtIsInvestment_7\"\r\n | \"financialDebtIsInvestment_8\"\r\n | \"financialDebtIsInvestment_9\"\r\n | \"financialDebtIsInvestment_10\";\r\n\r\n const cardLimitKey = `financialDebtCreditCardLimit_${id}` as\r\n | \"financialDebtCreditCardLimit_1\"\r\n | \"financialDebtCreditCardLimit_2\"\r\n | \"financialDebtCreditCardLimit_3\"\r\n | \"financialDebtCreditCardLimit_4\"\r\n | \"financialDebtCreditCardLimit_5\"\r\n | \"financialDebtCreditCardLimit_6\"\r\n | \"financialDebtCreditCardLimit_7\"\r\n | \"financialDebtCreditCardLimit_8\"\r\n | \"financialDebtCreditCardLimit_9\"\r\n | \"financialDebtCreditCardLimit_10\";\r\n const closeCardKey = `financialDebtCloseThisCard_${id}` as\r\n | \"financialDebtCloseThisCard_1\"\r\n | \"financialDebtCloseThisCard_2\"\r\n | \"financialDebtCloseThisCard_3\"\r\n | \"financialDebtCloseThisCard_4\"\r\n | \"financialDebtCloseThisCard_5\"\r\n | \"financialDebtCloseThisCard_6\"\r\n | \"financialDebtCloseThisCard_7\"\r\n | \"financialDebtCloseThisCard_8\"\r\n | \"financialDebtCloseThisCard_9\"\r\n | \"financialDebtCloseThisCard_10\";\r\n return {\r\n debtTypeKey,\r\n financeCompanyKey,\r\n balanceKey,\r\n repaymentAmountKey,\r\n repaymentFrequencyKey,\r\n isJointLoanKey,\r\n consolidateKey,\r\n investmentKey,\r\n cardLimitKey,\r\n closeCardKey,\r\n };\r\n}\r\n\r\nfunction isLoanOrMortgage(debtType: string) {\r\n return debtType === \"Personal loan\" || debtType === \"Mortgage\";\r\n}\r\n\r\nfunction isLoanOrCreditCard(debtType: string) {\r\n return debtType === \"Personal loan\" || debtType === \"Credit card\";\r\n}\r\n\r\nfunction showBalance(debtType: string, consolidate: string[]) {\r\n return (\r\n isLoanOrMortgage(debtType) ||\r\n (debtType === \"Credit card\" && consolidate[0] === \"Consolidate this card\")\r\n );\r\n}\r\n\r\nconst removeDebtItem = (array: Array, index: number): Debt[] => {\r\n return array.slice(0, index).concat(array.slice(index + 1));\r\n};\r\n\r\nexport const checkForLoanOrCards = (formData: Application): Debt[] => {\r\n return getDebtFields(formData).filter(\r\n (debt) => debt.type === \"Personal loan\" || debt.type === \"Credit card\"\r\n );\r\n};\r\n\r\nconst showDebtConsolidationInfo = (\r\n formData: Application,\r\n callouts: Status[] | undefined\r\n): boolean => {\r\n const loanOrCards = checkForLoanOrCards(formData);\r\n return (\r\n isDebtConsolidationPurpose(formData) &&\r\n loanOrCards.length >= 0 &&\r\n checkForConsolidationError(callouts)\r\n );\r\n};\r\n\r\nfunction isDebtConsolidationPurpose(formData: Application): boolean {\r\n return formData.loanPurpose === \"Consolidation\";\r\n}\r\n\r\nfunction checkForConsolidationError(callouts: Status[] | undefined): boolean {\r\n if (!callouts) {\r\n return true;\r\n }\r\n const hasConsolidationError = callouts.some(\r\n (status) =>\r\n status.message ===\r\n \"Please ensure that at least one credit card or personal loan is being consolidated\"\r\n );\r\n return !hasConsolidationError;\r\n}\r\n\r\nconst checkCallout = (callouts: Status[] | undefined) => {\r\n return callouts\r\n ? callouts.some(\r\n (status) =>\r\n status.message ===\r\n \"Please ensure that at least one credit card or personal loan is being consolidated\"\r\n )\r\n ? \"Please provide at least one debt for consolidation\"\r\n : false\r\n : false;\r\n};\r\n","import { Customer } from \"./customer\";\r\n\r\nexport type CustomerAction = CustomerSaveAction | CustomerTokenSaveAction;\r\n\r\nexport const CustomerSaveActionType = \"customer/save\" as const;\r\nexport type CustomerSaveAction = ReturnType;\r\nexport function customerSaveAction(customer: Customer) {\r\n return {\r\n type: CustomerSaveActionType,\r\n customer,\r\n };\r\n}\r\n\r\nexport const CustomerTokenSaveActionType = \"customer-token/save\" as const;\r\nexport type CustomerTokenSaveAction = ReturnType<\r\n typeof customerTokenSaveAction\r\n>;\r\nexport function customerTokenSaveAction(wcToken: string) {\r\n return {\r\n type: CustomerTokenSaveActionType,\r\n wcToken,\r\n };\r\n}\r\n","export const RateEstimateStatus = {\r\n PENDING: \"RateEstimatePending\",\r\n SUCCESSFUL: \"RateEstimateSuccessful\",\r\n REDUCED: \"RateEstimateReduced\",\r\n DECLINED: \"RateEstimateDeclined\",\r\n NO_RECORD: \"RateEstimateNoRecord\",\r\n EXPIRED: \"RateEstimateExpired\",\r\n INVALID: \"RateEstimateInvalid\",\r\n EQUIFAX_ERROR: \"RateEstimateEquifaxError\",\r\n ERROR: \"RateEstimateError\",\r\n ACCOUNT_SUSPENDED: \"RateEstimateAccountSuspended\",\r\n};\r\n\r\nexport const errorStatusResponses = [\r\n RateEstimateStatus.INVALID,\r\n RateEstimateStatus.EQUIFAX_ERROR,\r\n RateEstimateStatus.ERROR,\r\n RateEstimateStatus.ACCOUNT_SUSPENDED,\r\n];\r\n\r\nexport const successStatusResponses = [\r\n RateEstimateStatus.SUCCESSFUL,\r\n RateEstimateStatus.REDUCED,\r\n];\r\n","import {\r\n Estimate,\r\n EstimateAcceptResponse,\r\n EstimateExtras,\r\n Term,\r\n} from \"./estimate\";\r\n\r\nexport type EstimateAction =\r\n | EstimateCreateAction\r\n | EstimateSaveExtrasAction\r\n | EstimateGetAction\r\n | EstimateGetSuccessAction\r\n | EstimateSetLoantermAction\r\n | EstimateSetAmountAction\r\n | EstimateUpdateRepaymentAction\r\n | EstimateUpdateQuoteJourneyAction\r\n | EstimateUpdateNoMatchCountAction\r\n | EstimateAcceptAction\r\n | EstimateAcceptSuccessAction;\r\n\r\nexport const EstimateCreateActionType = \"estimate/submit-quote\" as const;\r\nexport type EstimateCreateAction = ReturnType;\r\nexport function estimateCreateAction(\r\n quoteRequest: DashboardApi.SubmitRateEstimateRequest,\r\n wcToken?: string\r\n) {\r\n return {\r\n type: EstimateCreateActionType,\r\n quoteRequest,\r\n wcToken,\r\n };\r\n}\r\n\r\nexport const EstimateSaveExtrasActionType = \"estimate/save-extras\" as const;\r\nexport type EstimateSaveExtrasAction = ReturnType<\r\n typeof estimateSaveExtrasAction\r\n>;\r\nexport function estimateSaveExtrasAction(extras: EstimateExtras) {\r\n return {\r\n type: EstimateSaveExtrasActionType,\r\n extras,\r\n };\r\n}\r\n\r\nexport const EstimateGetActionType = \"estimate/get\" as const;\r\nexport type EstimateGetAction = ReturnType;\r\nexport function estimateGetAction(\r\n estimateId: string,\r\n bid?: string,\r\n isAppId?: boolean\r\n) {\r\n return {\r\n type: EstimateGetActionType,\r\n estimateId,\r\n bid,\r\n isAppId,\r\n };\r\n}\r\n\r\nexport const EstimateGetSuccessActionType = \"estimate/get-success\" as const;\r\nexport type EstimateGetSuccessAction = ReturnType<\r\n typeof estimateGetSuccessAction\r\n>;\r\nexport function estimateGetSuccessAction(estimate: Estimate) {\r\n return {\r\n type: EstimateGetSuccessActionType,\r\n estimate,\r\n };\r\n}\r\n\r\nexport const EstimateSetLoantermActionType = \"estimate/set-loan-term\" as const;\r\nexport type EstimateSetLoantermAction = ReturnType<\r\n typeof estimateSetLoantermAction\r\n>;\r\nexport function estimateSetLoantermAction(\r\n loanterm: number,\r\n editing?: boolean,\r\n estimateAcceptResponse?: EstimateAcceptResponse,\r\n firstName?: string,\r\n dashboardLoanApplicationEnabled?: boolean\r\n) {\r\n return {\r\n type: EstimateSetLoantermActionType,\r\n loanterm,\r\n editing,\r\n estimateAcceptResponse,\r\n firstName,\r\n dashboardLoanApplicationEnabled,\r\n };\r\n}\r\n\r\nexport const EstimateSetAmountActionType = \"estimate/set-amount\" as const;\r\nexport type EstimateSetAmountAction = ReturnType<\r\n typeof estimateSetAmountAction\r\n>;\r\n// This action and its epic is unused\r\n/* istanbul ignore next */\r\nexport function estimateSetAmountAction(loanAmount: number) {\r\n return {\r\n type: EstimateSetAmountActionType,\r\n loanAmount,\r\n };\r\n}\r\n\r\nexport const EstimateUpdateRepaymentActionType =\r\n \"estimate/update-repayment\" as const;\r\nexport type EstimateUpdateRepaymentAction = ReturnType<\r\n typeof estimateUpdateRepaymentAction\r\n>;\r\nexport function estimateUpdateRepaymentAction(estimate: Estimate) {\r\n return {\r\n type: EstimateUpdateRepaymentActionType,\r\n estimate,\r\n };\r\n}\r\n\r\nexport const EstimateUpdateQuoteJourneyActionType =\r\n \"estimate/update-journey\" as const;\r\nexport type EstimateUpdateQuoteJourneyAction = ReturnType<\r\n typeof estimateUpdateQuoteJourneyAction\r\n>;\r\nexport function estimateUpdateQuoteJourneyAction(quoteId: string) {\r\n return {\r\n type: EstimateUpdateQuoteJourneyActionType,\r\n quoteId,\r\n };\r\n}\r\n\r\nexport const EstimateUpdateNoMatchCountActionType =\r\n \"estimate/update-no-match\" as const;\r\n\r\nexport type EstimateUpdateNoMatchCountAction = ReturnType<\r\n typeof estimateUpdateNoMatchCountAction\r\n>;\r\n\r\nexport function estimateUpdateNoMatchCountAction() {\r\n return {\r\n type: EstimateUpdateNoMatchCountActionType,\r\n };\r\n}\r\n\r\nexport const EstimateAcceptActionType = \"estimate/accept\" as const;\r\n\r\nexport type EstimateAcceptAction = ReturnType;\r\n\r\nexport function estimateAcceptAction(quoteId: string, term: Term) {\r\n return {\r\n type: EstimateAcceptActionType,\r\n quoteId,\r\n term,\r\n };\r\n}\r\n\r\nexport const EstimateAcceptSuccessActionType =\r\n \"estimate/accept-success\" as const;\r\n\r\nexport type EstimateAcceptSuccessAction = ReturnType<\r\n typeof estimateAcceptSuccessAction\r\n>;\r\n\r\nexport function estimateAcceptSuccessAction(\r\n estimateAcceptResponse: EstimateAcceptResponse\r\n) {\r\n return {\r\n type: EstimateAcceptSuccessActionType,\r\n estimateAcceptResponse,\r\n };\r\n}\r\n","export const NoopActionType = \"noop\" as const;\r\nexport type NoopAction = ReturnType;\r\nexport function noopAction() {\r\n return { type: NoopActionType };\r\n}\r\n","import Axios, { AxiosResponse } from \"axios\";\r\nimport { from, Observable } from \"rxjs\";\r\nimport { map } from \"rxjs/operators\";\r\n\r\nimport { Customer } from \"../customer/customer\";\r\nimport { Events } from \"../shared/analytics/analytics.constants\";\r\nimport { quoteAmplitudeHelper } from \"../shared/analytics/analytics.utils\";\r\nimport { getConfig } from \"../shared/config.utils\";\r\nimport { DASH_API, GATEWAY_API, QUOTE_BFF } from \"../shared/url.constants\";\r\nimport { CreateEstimateRequest } from \"./create-estimate.request\";\r\nimport { CreateEstimateResponse } from \"./create-estimate.response\";\r\nimport {\r\n CreateEstimateResult,\r\n Estimate,\r\n EstimateAcceptResponse,\r\n Term,\r\n} from \"./estimate\";\r\nimport { errorStatusResponses, RateEstimateStatus } from \"./estimate-status\";\r\nimport { GetRateEstimateResponse } from \"./get-estimate.response\";\r\n\r\nexport const getRateEstimate = async (\r\n wisrApplicationId: string,\r\n bid?: string\r\n) => {\r\n const output = new Promise>(\r\n (resolve, reject) => {\r\n let count = 300;\r\n const queryParam = bid ? `?partnerCompanyId=${bid}` : \"\";\r\n\r\n async function getRateEstimateResponse() {\r\n let result: AxiosResponse;\r\n\r\n try {\r\n result = await Axios.get(\r\n `${DASH_API}/api/v1/RateEstimate/${wisrApplicationId}${queryParam}`\r\n );\r\n } catch (e) {\r\n reject(e);\r\n return;\r\n }\r\n\r\n if (errorStatusResponses.includes(result.data.status)) {\r\n quoteAmplitudeHelper.sendEvent(Events.SERVER_ERROR, {\r\n Type: \"Rate Estimate Form\",\r\n Code: result.data.status,\r\n Page: window.location.href,\r\n });\r\n\r\n reject(\r\n new Error(\r\n `An error has occurred. Please try again later and if the problem persists, please contact Wisr for support Code:${result.data.status}`\r\n )\r\n );\r\n return;\r\n }\r\n\r\n if (\r\n result &&\r\n result.data &&\r\n result.data.status !== RateEstimateStatus.PENDING\r\n ) {\r\n resolve(result);\r\n } else {\r\n if (count <= 0) {\r\n reject(\r\n new Error(\r\n \"Exceeded maximum amount of calls to get quote endpoint\"\r\n )\r\n );\r\n return;\r\n } else {\r\n count--;\r\n setTimeout(getRateEstimateResponse, 1000);\r\n }\r\n }\r\n }\r\n getRateEstimateResponse();\r\n }\r\n );\r\n return output;\r\n};\r\n\r\nexport function getEstimateById(\r\n estimateId: string,\r\n bid?: string\r\n): Observable<{ estimate: Estimate; customer: Customer }> {\r\n const output = new Promise>(\r\n (resolve, reject) => {\r\n async function callGetQuote() {\r\n let rateEstimate: AxiosResponse;\r\n\r\n try {\r\n rateEstimate = await getRateEstimate(estimateId, bid);\r\n } catch (e) {\r\n reject(e);\r\n return;\r\n }\r\n\r\n const RESOLVE_DELAY = 3000;\r\n setTimeout(() => {\r\n resolve(rateEstimate);\r\n }, RESOLVE_DELAY);\r\n }\r\n callGetQuote();\r\n }\r\n );\r\n\r\n return from(output).pipe(\r\n map((res) => {\r\n return {\r\n estimate: {\r\n loanId: res.data.loanId,\r\n quoteId: res.data.quoteId,\r\n status: res.data.status,\r\n loanAmount: res.data.rateEstimate?.requestedLoanAmount ?? 0,\r\n loanPurpose: res.data.rateEstimate?.loanPurpose ?? \"\",\r\n establishmentFee: res.data.rateEstimate?.fees?.establishmentFee ?? 0,\r\n ppsrFee: res.data.rateEstimate?.fees?.ppsrFee ?? 0,\r\n privateSaleFee: res.data.rateEstimate?.fees?.privateSaleFee ?? 0,\r\n monthlyAccountFee:\r\n res.data.rateEstimate?.fees?.monthlyAccountFee ?? 0,\r\n totalEstablishmentFee:\r\n res.data.rateEstimate?.fees?.totalEstablishmentFee ?? 0,\r\n isSecuredLoan: res.data.rateEstimate?.rateType === \"Secured\",\r\n isDrivaEligible: res.data.isDrivaEligible,\r\n offers: res.data.rateEstimate?.indicativeQuotes\r\n ? res.data.rateEstimate.indicativeQuotes.map((offer) => {\r\n return {\r\n term: (offer.term * 12) as Term,\r\n rate: offer.rate,\r\n repayment: offer.monthlyRepayment,\r\n loanLimit: offer.eligibleLoanAmount,\r\n };\r\n })\r\n : [],\r\n },\r\n customer: {\r\n id: res.data.wisrCustomerId ?? \"\",\r\n firstname: res.data.firstName ?? \"\",\r\n },\r\n };\r\n })\r\n );\r\n}\r\n\r\nexport function createEstimate(\r\n createEstimateRequest: CreateEstimateRequest,\r\n wcToken?: string\r\n): Observable {\r\n return from(\r\n Axios.post(\r\n `${DASH_API}/api/v1/RateEstimate`,\r\n createEstimateRequest,\r\n {\r\n headers: {\r\n \"content-type\": \"application/json\",\r\n ...(wcToken && { Authorization: `Bearer ${wcToken}` }),\r\n },\r\n }\r\n ).then((res) => {\r\n return {\r\n wisrApplicationId: res.data.wisrApplicationId,\r\n partnerCompanyId: createEstimateRequest.partnerCompanyId,\r\n };\r\n })\r\n );\r\n}\r\n\r\nexport function estimateAccepted(\r\n quoteId: string,\r\n term: Term\r\n): Observable {\r\n return from(\r\n Axios.post(\r\n `${DASH_API}/api/v1/RateEstimate/accept`,\r\n { quoteId: quoteId, term: term },\r\n {\r\n headers: {\r\n \"content-type\": \"application/json\",\r\n \"x-auth-key\": getConfig().ESTIMATE_ACCEPT_KEY,\r\n },\r\n }\r\n ).then((res) => {\r\n return {\r\n email: res.data.email,\r\n wisrApplicationId: res.data.wisrApplicationId,\r\n };\r\n })\r\n );\r\n}\r\n\r\nexport function setLoanterm(\r\n loanId: number,\r\n quoteId: string,\r\n loanterm: number\r\n): Observable {\r\n return from(\r\n Axios.post(`${GATEWAY_API}/api/gateway/loanterm`, {\r\n LoanId: loanId,\r\n LoanQuoteId: quoteId,\r\n LoanTerm: loanterm,\r\n }).then(() => undefined)\r\n );\r\n}\r\n\r\nexport function updateLoanAmount(estimate: Estimate): Observable {\r\n return from(\r\n Axios.put(\r\n `${QUOTE_BFF}/quote/${estimate.quoteId}/loan-amount`,\r\n estimate.loanAmount,\r\n { headers: { \"content-type\": \"Application/JSON\" } }\r\n ).then(() => undefined)\r\n );\r\n}\r\n\r\nexport function updateQuoteJourney(quoteId: string): Observable {\r\n return from(\r\n Axios.put(`${QUOTE_BFF}/quote/${quoteId}/journey`, {\r\n headers: { \"content-type\": \"Application/JSON\" },\r\n }).then(() => undefined)\r\n );\r\n}\r\n","import {\r\n loadDataThen,\r\n loadingClearAction,\r\n loadingFailAction,\r\n loadingStartAction,\r\n loadingSuccessAction,\r\n} from \"@wisr/common\";\r\nimport dayjs from \"dayjs\";\r\nimport { Finance } from \"financejs\";\r\nimport { navigate } from \"gatsby\";\r\nimport { Epic } from \"redux-observable\";\r\nimport { concat, of } from \"rxjs\";\r\nimport {\r\n catchError,\r\n concatMap,\r\n map,\r\n mapTo,\r\n tap,\r\n withLatestFrom,\r\n} from \"rxjs/operators\";\r\n\r\nimport { customerSaveAction } from \"../customer/customer.actions\";\r\nimport {\r\n Events,\r\n UNEXPECTED_ERROR,\r\n} from \"../shared/analytics/analytics.constants\";\r\nimport { quoteAmplitudeHelper } from \"../shared/analytics/analytics.utils\";\r\nimport { redirect } from \"../shared/browser.utils\";\r\nimport { noopAction } from \"../shared/common.actions\";\r\nimport {\r\n convertDecimalRateToFraction,\r\n roundToTwoDecimals,\r\n} from \"../shared/maths.utils\";\r\nimport { DASH_URL } from \"../shared/url.constants\";\r\nimport { AppAction, AppStore } from \"../store\";\r\nimport { Estimate, Offer } from \"./estimate\";\r\nimport {\r\n EstimateAcceptAction,\r\n EstimateAcceptActionType,\r\n estimateAcceptSuccessAction,\r\n EstimateCreateAction,\r\n EstimateCreateActionType,\r\n EstimateGetAction,\r\n EstimateGetActionType,\r\n estimateGetSuccessAction,\r\n estimateSaveExtrasAction,\r\n EstimateSetAmountAction,\r\n EstimateSetAmountActionType,\r\n EstimateSetLoantermAction,\r\n EstimateSetLoantermActionType,\r\n EstimateUpdateQuoteJourneyAction,\r\n EstimateUpdateQuoteJourneyActionType,\r\n estimateUpdateRepaymentAction,\r\n} from \"./estimate.actions\";\r\nimport {\r\n createEstimate,\r\n estimateAccepted,\r\n getEstimateById,\r\n setLoanterm,\r\n updateLoanAmount,\r\n updateQuoteJourney,\r\n} from \"./estimate.service\";\r\n\r\nexport const GET_ESTIMATE_LOADING = \"GET_ESTIMATE_LOADING\";\r\nexport const getEstimateEpic: Epic = (actions) =>\r\n actions\r\n .ofType(EstimateGetActionType)\r\n .pipe(\r\n loadDataThen(GET_ESTIMATE_LOADING, (action) =>\r\n getEstimateById(action.estimateId, action.bid).pipe(\r\n concatMap((loanOffer) => [\r\n customerSaveAction(loanOffer.customer),\r\n estimateGetSuccessAction(loanOffer.estimate),\r\n loadingSuccessAction(GET_ESTIMATE_LOADING),\r\n ])\r\n )\r\n )\r\n );\r\n\r\nexport const CREATE_ESTIMATE_LOADING = \"CREATE_ESTIMATE_LOADING\";\r\nexport const createEstimateEpic: Epic = (actions) =>\r\n actions.ofType(EstimateCreateActionType).pipe(\r\n concatMap((action) =>\r\n concat(\r\n of(loadingClearAction(GET_ESTIMATE_LOADING)),\r\n of(loadingStartAction(CREATE_ESTIMATE_LOADING)),\r\n of(\r\n estimateSaveExtrasAction({\r\n purpose: action.quoteRequest.loanPurpose || \"\",\r\n assetKnown: action.quoteRequest.securedAssetDetails?.isKnown,\r\n saleType: action.quoteRequest.securedAssetDetails?.saleType,\r\n assetAproxAge:\r\n action.quoteRequest.securedAssetDetails?.approximateAge,\r\n assetYearOfManufacture:\r\n action.quoteRequest.securedAssetDetails?.yearOfManufacture,\r\n })\r\n ),\r\n createEstimate(action.quoteRequest, action.wcToken).pipe(\r\n tap((createEstimateResult) =>\r\n navigate(\r\n `/estimate?appid=${createEstimateResult.wisrApplicationId}${\r\n createEstimateResult.partnerCompanyId\r\n ? `&bid=${createEstimateResult.partnerCompanyId}`\r\n : \"\"\r\n }`\r\n )\r\n ),\r\n mapTo(loadingSuccessAction(CREATE_ESTIMATE_LOADING)),\r\n // @TODO: Should this error mapping logic live here? Is there consistency in how our APIs handle errors?\r\n catchError((e) => {\r\n if (e.response && e.response.data && e.response.data.errorFields) {\r\n quoteAmplitudeHelper.sendEvent(Events.SERVER_ERROR, {\r\n Type: \"Quote Form\",\r\n Title: e.response.data.title,\r\n Code: e.response.data.status,\r\n Detail: e.response.data.detail,\r\n Error: e.response.data.errorFields,\r\n Page: window.location.href,\r\n });\r\n\r\n interface ErrorDetail {\r\n errorMessage: string[];\r\n fieldName: string;\r\n }\r\n\r\n const reasons = (\r\n Object.values(e.response.data.errorFields) as ErrorDetail[]\r\n )\r\n .filter((error) => {\r\n if (error.fieldName && error.errorMessage[0]) {\r\n return true;\r\n }\r\n return false;\r\n })\r\n .map((error) => {\r\n return `${error.fieldName.split(\".\").slice(-1)[0]}: ${\r\n error.errorMessage[0]\r\n }`;\r\n });\r\n return of(\r\n loadingFailAction(CREATE_ESTIMATE_LOADING, \"Error\", { reasons })\r\n );\r\n }\r\n quoteAmplitudeHelper.sendEvent(Events.SERVER_ERROR, {\r\n Type: \"Quote Form\",\r\n Error: `${e}`,\r\n Page: window.location.href,\r\n });\r\n console.log(e.toString() === \"Error: Network Error\");\r\n const isNetworkError = e.toString() === \"Error: Network Error\";\r\n return of(\r\n loadingFailAction(CREATE_ESTIMATE_LOADING, UNEXPECTED_ERROR, {\r\n originalError: `${e}${\r\n isNetworkError\r\n ? \", please try again or try on a different device.\"\r\n : \"\"\r\n }\\n${dayjs().format()}`,\r\n })\r\n );\r\n })\r\n )\r\n )\r\n ),\r\n catchError(\r\n /* istanbul ignore next */ () => {\r\n quoteAmplitudeHelper.sendEvent(Events.SERVER_ERROR, {\r\n Type: \"Quote Form\",\r\n Error: UNEXPECTED_ERROR,\r\n Page: window.location.href,\r\n });\r\n return of(loadingFailAction(CREATE_ESTIMATE_LOADING, UNEXPECTED_ERROR));\r\n }\r\n )\r\n );\r\n\r\nexport const SET_LOANTERM_LOADING = \"SET_LOANTERM_LOADING\";\r\nexport const setLoantermEpic: Epic = (\r\n actions,\r\n states\r\n) =>\r\n actions.ofType(EstimateSetLoantermActionType).pipe(\r\n withLatestFrom(states),\r\n // @TODO: We know this value SHOULD always be defined, but it's still probably best to handle the potential error state of an undefined estimate\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n map(([action, state]) => [action, state.estimateState.estimate!] as const),\r\n concatMap(([action, estimate]) =>\r\n concat(\r\n of(loadingStartAction(SET_LOANTERM_LOADING)),\r\n setLoanterm(estimate.loanId, estimate.quoteId, action.loanterm).pipe(\r\n tap(() => {\r\n if (action.estimateAcceptResponse?.email) {\r\n if (action.editing) {\r\n redirect(\r\n `${DASH_URL}/application/review-your-details?term=${\r\n action.loanterm / 12\r\n }`\r\n );\r\n } else {\r\n redirect(\r\n `${DASH_URL}/application?email=${action.estimateAcceptResponse.email.replace(\r\n \"+\",\r\n \"%2B\"\r\n )}&wisrapplicationid=${\r\n action.estimateAcceptResponse.wisrApplicationId\r\n }&firstname=${action.firstName}`\r\n );\r\n }\r\n }\r\n }),\r\n map(noopAction)\r\n ),\r\n of(loadingSuccessAction(SET_LOANTERM_LOADING))\r\n )\r\n )\r\n );\r\n\r\nexport const SET_AMOUNT_LOADING = \"SET_AMOUNT_LOADING\";\r\nexport const setAmountEpic: Epic = (\r\n actions,\r\n states\r\n) =>\r\n actions.ofType(EstimateSetAmountActionType).pipe(\r\n withLatestFrom(states),\r\n // @TODO: We know this value SHOULD always be defined, but it's still probably best to handle the potential error state of an undefined estimate\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n map(([action, state]) => [action, state.estimateState.estimate!] as const),\r\n concatMap(([action, estimate]) =>\r\n concat(\r\n of(loadingStartAction(SET_AMOUNT_LOADING)),\r\n of(updateAmount(estimate, action.loanAmount)).pipe(\r\n map((updatedEstimate) => recalculatePMT(updatedEstimate)),\r\n concatMap((updatedEstimate) =>\r\n concat(\r\n of(estimateUpdateRepaymentAction(updatedEstimate)),\r\n updateLoanAmount(updatedEstimate).pipe(\r\n mapTo(loadingSuccessAction(SET_AMOUNT_LOADING)),\r\n catchError((error) =>\r\n of(loadingFailAction(SET_AMOUNT_LOADING, error.message))\r\n )\r\n )\r\n )\r\n )\r\n )\r\n )\r\n )\r\n );\r\n\r\nexport const UPDATE_QUOTE_JOURNEY_LOADING = \"UPDATE_QUOTE_JOURNEY_LOADING\";\r\nexport const updateQuoteJourneyEpic: Epic = (actions) =>\r\n actions\r\n .ofType(\r\n EstimateUpdateQuoteJourneyActionType\r\n )\r\n .pipe(\r\n concatMap((action) =>\r\n concat(\r\n of(loadingStartAction(UPDATE_QUOTE_JOURNEY_LOADING)),\r\n updateQuoteJourney(action.quoteId).pipe(\r\n mapTo(loadingSuccessAction(UPDATE_QUOTE_JOURNEY_LOADING)),\r\n catchError((error) =>\r\n of(loadingFailAction(UPDATE_QUOTE_JOURNEY_LOADING, error.message))\r\n )\r\n )\r\n )\r\n )\r\n );\r\n\r\nexport const ACCEPT_ESTIMATE_LOADING = \"ACCEPT_ESTIMATE_LOADING\";\r\nexport const acceptEstimateEpic: Epic = (actions) =>\r\n actions.ofType(EstimateAcceptActionType).pipe(\r\n concatMap((action) =>\r\n concat(\r\n of(loadingStartAction(ACCEPT_ESTIMATE_LOADING)),\r\n estimateAccepted(action.quoteId, action.term).pipe(\r\n concatMap((estimateAcceptedResponse) => [\r\n estimateAcceptSuccessAction(estimateAcceptedResponse),\r\n loadingSuccessAction(ACCEPT_ESTIMATE_LOADING),\r\n ]),\r\n catchError((error) =>\r\n of(loadingFailAction(ACCEPT_ESTIMATE_LOADING, error.message))\r\n )\r\n )\r\n )\r\n )\r\n );\r\n\r\nfunction recalculatePMT(estimate: Estimate): Estimate {\r\n const finance = new Finance();\r\n\r\n const offers: Offer[] = estimate.offers.map((offer) => {\r\n const rate = convertDecimalRateToFraction(offer.rate, 2);\r\n const repayment = finance.PMT(\r\n rate / 12,\r\n offer.term,\r\n -Math.abs(estimate.loanAmount + estimate.totalEstablishmentFee)\r\n );\r\n offer.repayment = roundToTwoDecimals(repayment);\r\n return offer;\r\n });\r\n\r\n return { ...estimate, offers };\r\n}\r\n\r\nfunction updateAmount(estimate: Estimate, loanAmount: number): Estimate {\r\n return { ...estimate, loanAmount };\r\n}\r\n","export function convertDecimalRateToFraction(value: number, decimals: number) {\r\n return Number((value / 100).toExponential(decimals + 1));\r\n}\r\n\r\nexport function roundToTwoDecimals(num: number) {\r\n return parseFloat(num.toFixed(2));\r\n}\r\n","import { PartnerReferral } from \"./partner-referral\";\r\n\r\nexport type PartnerReferralAction =\r\n | PartnerReferralGetAction\r\n | PartnerReferralGetSuccessAction;\r\n\r\nexport const PartnerReferralGetActionType = \"partner-referral/get\" as const;\r\nexport type PartnerReferralGetAction = ReturnType<\r\n typeof partnerReferralGetAction\r\n>;\r\nexport function partnerReferralGetAction(wisrCustomerId: string) {\r\n return {\r\n type: PartnerReferralGetActionType,\r\n wisrCustomerId: wisrCustomerId,\r\n };\r\n}\r\n\r\nexport const PartnerReferralGetSuccessActionType =\r\n \"partner-referral/get-success\" as const;\r\nexport type PartnerReferralGetSuccessAction = ReturnType<\r\n typeof partnerReferralGetSuccessAction\r\n>;\r\nexport function partnerReferralGetSuccessAction(\r\n partnerReferral: PartnerReferral\r\n) {\r\n return {\r\n type: PartnerReferralGetSuccessActionType,\r\n partnerReferral,\r\n };\r\n}\r\n","import {\r\n loadingFailAction,\r\n loadingStartAction,\r\n loadingSuccessAction,\r\n} from \"@wisr/common\";\r\nimport Axios, { AxiosResponse } from \"axios\";\r\nimport { Epic } from \"redux-observable\";\r\nimport { concat, from, Observable, of } from \"rxjs\";\r\nimport { catchError, concatMap, map, tap } from \"rxjs/operators\";\r\n\r\nimport { redirect } from \"../shared/browser.utils\";\r\nimport { DASH_API } from \"../shared/url.constants\";\r\nimport { PartnerReferral } from \"./partner-referral\";\r\nimport {\r\n PartnerReferralGetAction,\r\n PartnerReferralGetActionType,\r\n partnerReferralGetSuccessAction,\r\n} from \"./partner-referral.actions\";\r\n\r\nexport const GET_PARTNER_REFERRAL_LOADING = \"GET_PARTNER_REFERRAL_LOADING\";\r\nexport const getPartnerReferralEpic: Epic = (actions) =>\r\n actions.ofType(PartnerReferralGetActionType).pipe(\r\n concatMap((action) =>\r\n concat(\r\n of(loadingStartAction(GET_PARTNER_REFERRAL_LOADING)),\r\n getPartnerReferral(action.wisrCustomerId).pipe(\r\n tap((partnerReferral: PartnerReferral) => {\r\n if (partnerReferral.partnerUrl) {\r\n redirect(partnerReferral.partnerUrl);\r\n }\r\n }),\r\n concatMap((partnerReferral) => [\r\n partnerReferralGetSuccessAction(partnerReferral),\r\n loadingSuccessAction(GET_PARTNER_REFERRAL_LOADING),\r\n ])\r\n )\r\n )\r\n ),\r\n catchError(() =>\r\n of(loadingFailAction(GET_PARTNER_REFERRAL_LOADING, \"Unexpected Error\"))\r\n )\r\n );\r\n\r\nfunction getPartnerReferral(\r\n wisrCustomerId: string\r\n): Observable {\r\n return from(\r\n Axios.post(`${DASH_API}/api/v1/partnerreferral`, {\r\n wisrCustomerId,\r\n application: \"rate-estimate\",\r\n })\r\n ).pipe(map((res: AxiosResponse) => res.data));\r\n}\r\n","import { QuoteForm } from \"./quote-form\";\r\n\r\nexport type QuoteFormAction = QuoteFormSetAction;\r\n\r\nexport type QuoteFormSetAction = ReturnType;\r\nexport const QuoteFormSetActionType = \"quote-form/set\" as const;\r\nexport function quoteFormSetAction(quoteForm: QuoteForm) {\r\n return {\r\n type: QuoteFormSetActionType,\r\n quoteForm,\r\n };\r\n}\r\n","import { TermsResponse } from \"./terms\";\r\n\r\nexport type TermsAction = TermsGetAction | TermsGetSuccessAction;\r\n\r\nexport const TermsGetActionType = \"terms/get\" as const;\r\nexport type TermsGetAction = ReturnType;\r\nexport function termsGetAction() {\r\n return {\r\n type: TermsGetActionType,\r\n };\r\n}\r\n\r\nexport const TermsGetSuccessActionType = \"terms/get-success\" as const;\r\nexport type TermsGetSuccessAction = ReturnType;\r\nexport function termsGetSuccessAction(terms: TermsResponse) {\r\n return {\r\n type: TermsGetSuccessActionType,\r\n terms,\r\n };\r\n}\r\n","export const Events = {\r\n USER_ERROR: \"Received user error\",\r\n SERVER_ERROR: \"Received server error\",\r\n VIEWED_ESTIMATE: \"Viewed estimate form\",\r\n VIEWED_APP_FORM: \"Viewed loan app form\",\r\n COMPLETED_ESTIMATE: \"Submitted estimate\",\r\n VIEWED_ESTIMATE_RESULT: \"Viewed estimate result\",\r\n CLICKED_ESTIMATE_OFFER: \"Clicked estimate offer\",\r\n VIEWED_APPLICATION_FORM: \"Viewed loan application form\",\r\n CONTINUE_TO_BANK_STATEMENTS: \"Continued to bank statements\",\r\n VIEWED_BANK_STATEMENTS: \"Viewed loan application bank statements page\",\r\n CONTINUE_TO_CONFIRMATION: \"Continued to confirmation\",\r\n VIEWED_APPLICATION_FORM_CONFIRMATION:\r\n \"Viewed loan application confirmation page\",\r\n SUBMIT_APPLICATION: \"Submitted loan application\",\r\n VIEWED_PRESUBMIT_NSR: \"Viewed pre-submit NSR fail\",\r\n CLICKED_FORM_FIELD: \"Rate estimate field clicked\",\r\n VIEWED_404: \"Viewed quote 404 page\",\r\n PRESENTED_DRIVA: \"Presented Driva offer\",\r\n} as const;\r\n\r\nexport const LOAN_APPLICATION = \"Wisr loan\";\r\nexport const QUOTE_APPLICATION = \"Wisr website\";\r\nexport const UNEXPECTED_ERROR = \"Unexpected Error\";\r\n\r\nexport const LoanStatus = {\r\n QUOTE_STARTED: \"Started estimate\",\r\n QUOTE_SUBMITTED: \"Submitted estimate\",\r\n ESTIMATE_PRESENTED: \"Presented estimate\",\r\n APPLICATION_STARTED: \"Started application\",\r\n CONTINUED_TO_BANK_STATEMENTS: \"Continued to bank statements\",\r\n STARTED_BANK_STATEMENTS: \"Viewed bank statements page\",\r\n CONTINUED_TO_CONFIRMATION: \"Continued to confirmation\",\r\n STARTED_APP_CONFIRMATION: \"Started application confirmation\",\r\n SUBMIT_APPLICATION: \"Submitted application\",\r\n PRESUBMIT_NSR_FAIL: \"Pre-submit NSR fail\",\r\n} as const;\r\n\r\nexport const HotjarAttributes = {\r\n VIEWED_ESTIMATE_RESULT: \"Viewed estimate result\",\r\n} as const;\r\n\r\nexport const ViewedEstimateResult = {\r\n OFFER: \"offer\",\r\n DECLINED: \"declined\",\r\n IDENTITY_FAILED: \"identity failed\",\r\n} as const;\r\n\r\nexport const RateEstimatePages = {\r\n PURPOSE: \"loan purpose\",\r\n CAR_FOUND: \"found car\",\r\n CAR_YEAR: \"car manufacture year\",\r\n CAR_SELLER: \"car seller\",\r\n CAR_AGE: \"car age\",\r\n ASSET_SECURITY: \"asset security\",\r\n AMOUNT: \"loan amount\",\r\n ABOUT_YOU: \"about you\",\r\n RELATIONSHIP_STATUS: \"marital status\",\r\n LIVING_SITUATION: \"living arrangement\",\r\n INVESTMENT_OWNED: \"own investment property\",\r\n INVESTMENT_MORTGAGED: \"investment mortgaged\",\r\n CURRENT_ADDRESS: \"address\",\r\n CURRENT_MOVED_IN: \"how long at address\",\r\n PREVIOUS_ADDRESS: \"previous address\",\r\n PREVIOUS_MOVED_IN: \"how long at previous address\",\r\n CURRENT_EMPLOYMENT_STATUS: \"employment status\",\r\n CURRENT_EMPLOYMENT_LENGTH: \"how long at employment\",\r\n PREVIOUS_EMPLOYMENT_STATUS: \"previous employment status\",\r\n PREVIOUS_EMPLOYMENT_LENGTH: \"how long at previous employment\",\r\n INCOME: \"income\",\r\n NO_MATCH: \"no match\",\r\n IDENTIFICATION: \"identification\",\r\n};\r\n\r\nexport const AppFormPages = {\r\n ABOUT_YOU: \"about you\",\r\n ID_DOCS: \"your id documents\",\r\n LIVING: \"living situation\",\r\n EMPLOYMENT: \"employment and income\",\r\n OTHER_INCOME: \"other income\",\r\n SPENDING: \"your spending\",\r\n DEBTS: \"your debts\",\r\n STATEMENTS: \"your bank statements\",\r\n REVIEW: \"review application\",\r\n SIGNIFICANT_CHANGES: \"significant changes\",\r\n BELOW_NSR: \"below NSR\",\r\n};\r\n","import { AmplitudeHelper, AsyncLib } from \"@wisr/common\";\r\n\r\nimport { isBrowser } from \"../gatsby.utils\";\r\nimport { LOAN_APPLICATION, QUOTE_APPLICATION } from \"./analytics.constants\";\r\n\r\n/* istanbul ignore next */\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\nconst scope: Window = isBrowser() ? window : ({} as any);\r\nexport const amplitudeHelper = new AmplitudeHelper(LOAN_APPLICATION);\r\nexport const quoteAmplitudeHelper = new AmplitudeHelper(QUOTE_APPLICATION);\r\nexport const datalayerHelper = new AsyncLib(\"dataLayer\", scope);\r\nexport const googleAnalyticsHelper = new AsyncLib(\"ga\", scope, {\r\n customTest: (ga) => !!ga.getAll,\r\n});\r\nexport const hotjarHelper = new AsyncLib(\"hj\", scope);\r\n\r\nexport function sendGtmEvent(event: E) {\r\n if (isBrowser()) {\r\n return datalayerHelper.get().then((datalayer) => {\r\n datalayer.push(event);\r\n });\r\n }\r\n return Promise.resolve();\r\n}\r\n\r\nexport function gtmConversion(\r\n userType: string,\r\n loanId: number,\r\n aggregatorId: string | null,\r\n loanAmount: number,\r\n loanReason: string\r\n) {\r\n return sendGtmEvent({\r\n event: \"GTMAppSubmitted\",\r\n loanId: loanId,\r\n userType: userType,\r\n aggregatorId: aggregatorId,\r\n loanAmount: loanAmount,\r\n loanReason: loanReason,\r\n });\r\n}\r\n\r\nexport function gtmEcommerce(\r\n loanId: number,\r\n aggregatorName: string | null,\r\n loanAmount: number,\r\n loanReason: string,\r\n loanType: string\r\n) {\r\n return sendGtmEvent({\r\n event: \"GTMAppFormTransaction\",\r\n eventCategory: \"ecommerce\",\r\n eventAction: \"purchase\",\r\n ecommerce: {\r\n purchase: {\r\n actionField: {\r\n id: loanId, //transaction ID - mandatory\r\n affiliation: aggregatorName ? \"wisr - \" + aggregatorName : \"wisr\",\r\n revenue: loanAmount, //total including tax and shipping\r\n tax: 0,\r\n shipping: 0,\r\n },\r\n products: [\r\n {\r\n id: loanId, //transaction ID - mandatory\r\n name: loanReason,\r\n category: loanType,\r\n price: loanAmount,\r\n quantity: 1,\r\n },\r\n ],\r\n },\r\n },\r\n });\r\n}\r\n\r\nexport function sendGaEvent(\r\n category: string,\r\n action: string,\r\n label?: string,\r\n value?: number\r\n) {\r\n if (isBrowser()) {\r\n return googleAnalyticsHelper.get().then((ga) => {\r\n const tracker = ga.getAll()[0];\r\n if (tracker) {\r\n const trackerName = tracker.get(\"name\");\r\n ga(`${trackerName}.send`, \"event\", category, action, label, value);\r\n }\r\n });\r\n }\r\n return Promise.resolve();\r\n}\r\n\r\ntype HotjarUserAttributes = { [k: string]: string | null | number };\r\nexport function hotjarIdentify(\r\n userId: string,\r\n attributes?: HotjarUserAttributes\r\n) {\r\n return hotjarHelper.get().then((hotjar) => {\r\n hotjar(\"identify\", userId, attributes);\r\n });\r\n}\r\n","// This is being ignored as mocking window functions can be troublesome and it's literally one line of obvious code\r\n/* istanbul ignore next */\r\nexport function redirect(url: string) {\r\n window.location.assign(url);\r\n}\r\n\r\n/* istanbul ignore next */\r\nexport function getCookie(key: string) {\r\n return document.cookie\r\n .split(\"; \")\r\n ?.find((row) => row.startsWith(key))\r\n ?.split(\"=\")[1];\r\n}\r\n\r\n/* istanbul ignore next */\r\nexport function getGCLID(): string | undefined {\r\n try {\r\n const cookie = getCookie(\"_gcl_aw\");\r\n return cookie?.split(\".\")[2];\r\n } catch (e) {\r\n console.log(\"No GoogleClickId found\");\r\n return undefined;\r\n }\r\n}\r\n","const config = {\r\n SHOW_DEBUG_TOOLS: process.env.GATSBY_SHOW_DEBUG_TOOLS === \"true\",\r\n BRAND_WEBSITE: process.env.GATSBY_BRAND_WEBSITE,\r\n DASH_URL: process.env.GATSBY_DASH_URL,\r\n QUOTE_API: process.env.GATSBY_QUOTE_API,\r\n DASH_API: process.env.GATSBY_DASH_API,\r\n QUOTE_BFF: process.env.GATSBY_QUOTE_BFF,\r\n GATEWAY_API: process.env.GATSBY_GATEWAY_API,\r\n LEGACY_QUOTE_APP: process.env.GATSBY_LEGACY_QUOTE_APP,\r\n LEGACY_APPLICATION_APP: process.env.GATSBY_LEGACY_APPLICATION_APP,\r\n ESTIMATE_ACCEPT_KEY: process.env.GATSBY_ESTIMATE_ACCEPT_KEY,\r\n GTM_PUBLIC_KEY: process.env.GATSBY_GTM_PUBLIC_KEY,\r\n AMPLITUDE_PUBLIC_KEY: process.env.GATSBY_AMPLITUDE_PUBLIC_KEY,\r\n CREDIT_SENSE_KEY: process.env.GATSBY_CREDIT_SENSE_KEY,\r\n PACE_API: process.env.GATSBY_PACE_API,\r\n APP_INSIGHTS_INSTRUMENTATION_KEY:\r\n process.env.GATSBY_APP_INSIGHTS_INSTRUMENTATION_KEY,\r\n LAUNCHDARKLY_CLIENTID: process.env.GATSBY_LAUNCHDARKLY_CLIENTID,\r\n};\r\nexport function getConfig() {\r\n return config;\r\n}\r\n","import { WindowLocation } from \"@gatsbyjs/reach-router\";\r\nimport { parse } from \"query-string\";\r\n\r\nimport { GatsbyPageProps } from \"../types/gatsby\";\r\n\r\nexport const isBrowser = () =>\r\n typeof document !== \"undefined\" && typeof window !== \"undefined\";\r\n\r\nexport const useQueryString = (\r\n location: GatsbyPageProps[\"location\"] | WindowLocation\r\n) => {\r\n return location ? parse(location.search) : {};\r\n};\r\n\r\nexport const getPathFromLocation = (location: GatsbyPageProps[\"location\"]) => {\r\n const pathname =\r\n typeof location?.pathname === \"string\"\r\n ? location.pathname.replace(/\\/$/, \"\").split(\"/\").pop()\r\n : \"\";\r\n return pathname;\r\n};\r\n","import css from 'styled-jsx/css';\n\nconst styles = css`.remove-button{font-size:.875rem;line-height:1.4285714286;font-family:\"Inter\",sans-serif;font-weight:400;text-transform:none}.remove-button{font-weight:500}.remove-button:hover{cursor:pointer}.remove-button :global(i){margin-right:.25rem}`;\n\nexport default styles;","import { Icon } from \"@wisr/react-ui\";\r\nimport React from \"react\";\r\n\r\nimport removeButtonstyle from \"./remove-button.scss\";\r\n\r\ninterface RemoveButtonProps {\r\n onClick: () => void;\r\n}\r\nexport const RemoveButton: React.FunctionComponent = ({\r\n onClick,\r\n}) => (\r\n <>\r\n \r\n
    \r\n Remove\r\n
    \r\n \r\n);\r\n","import { getConfig } from \"./config.utils\";\r\n\r\nconst config = getConfig();\r\nexport const BRAND_WEBSITE = config.BRAND_WEBSITE || \"\";\r\nexport const DASH_URL = config.DASH_URL || \"\";\r\nexport const QUOTE_BFF = config.QUOTE_BFF || \"\";\r\nexport const QUOTE_API = config.QUOTE_API || \"\";\r\nexport const DASH_API = config.DASH_API || \"\";\r\nexport const GATEWAY_API = config.GATEWAY_API || \"\";\r\nexport const LEGACY_QUOTE_APP = config.LEGACY_QUOTE_APP || \"\";\r\nexport const LEGACY_APPLICATION_APP = config.LEGACY_APPLICATION_APP || \"\";\r\nexport const PACE_API = config.PACE_API || \"\";\r\n","import invariant from \"invariant\";\n\n////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// pick(routes, uri)\n//\n// Ranks and picks the best route to match. Each segment gets the highest\n// amount of points, then the type of segment gets an additional amount of\n// points where\n//\n// static > dynamic > splat > root\n//\n// This way we don't have to worry about the order of our routes, let the\n// computers do it.\n//\n// A route looks like this\n//\n// { path, default, value }\n//\n// And a returned match looks like:\n//\n// { route, params, uri }\n//\n// I know, I should use TypeScript not comments for these types.\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n\n if (route.default) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n\n if (isSplat(routeSegment)) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n var param = routeSegment.slice(1) || \"*\";\n params[param] = uriSegments.slice(index).map(decodeURIComponent).join(\"/\");\n break;\n }\n\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n\n var dynamicMatch = paramRe.exec(routeSegment);\n\n if (dynamicMatch && !isRootUri) {\n var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;\n !matchIsNotReserved ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : invariant(false) : void 0;\n var value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n\n return match || default_ || null;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\nvar match = function match(path, uri) {\n return pick([{ path: path }], uri);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// resolve(to, basepath)\n//\n// Resolves URIs as though every path is a directory, no files. Relative URIs\n// in the browser can feel awkward because not only can you be \"in a directory\"\n// you can be \"at a file\", too. For example\n//\n// browserSpecResolve('foo', '/bar/') => /bar/foo\n// browserSpecResolve('foo', '/bar') => /foo\n//\n// But on the command line of a file system, it's not as complicated, you can't\n// `cd` from a file, only directories. This way, links have to know less about\n// their current path. To go deeper you can do this:\n//\n// \n// // instead of\n// \n//\n// Just like `cd`, if you want to go deeper from the command line, you do this:\n//\n// cd deeper\n// # not\n// cd $(pwd)/deeper\n//\n// By treating every path as a directory, linking to relative paths should\n// require less contextual information and (fingers crossed) be more intuitive.\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname);\n\n // ?a=b, /users?b=c => /users?a=b\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n }\n\n // profile, /users/789 => /users/789/profile\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n }\n\n // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n for (var i = 0, l = allSegments.length; i < l; i++) {\n var segment = allSegments[i];\n if (segment === \"..\") segments.pop();else if (segment !== \".\") segments.push(segment);\n }\n\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\n\nvar insertParams = function insertParams(path, params) {\n var _path$split = path.split(\"?\"),\n pathBase = _path$split[0],\n _path$split$ = _path$split[1],\n query = _path$split$ === undefined ? \"\" : _path$split$;\n\n var segments = segmentize(pathBase);\n var constructedPath = \"/\" + segments.map(function (segment) {\n var match = paramRe.exec(segment);\n return match ? params[match[1]] : segment;\n }).join(\"/\");\n var _params$location = params.location;\n _params$location = _params$location === undefined ? {} : _params$location;\n var _params$location$sear = _params$location.search,\n search = _params$location$sear === undefined ? \"\" : _params$location$sear;\n\n var searchSplit = search.split(\"?\")[1] || \"\";\n constructedPath = addQuery(constructedPath, query, searchSplit);\n return constructedPath;\n};\n\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Junk\nvar paramRe = /^:(.+)/;\n\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\n\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\nvar isSplat = function isSplat(segment) {\n return segment && segment[0] === \"*\";\n};\n\nvar rankRoute = function rankRoute(route, index) {\n var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) {\n score += SEGMENT_POINTS;\n if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;\n return score;\n }, 0);\n return { route: route, score: score, index: index };\n};\n\nvar rankRoutes = function rankRoutes(routes) {\n return routes.map(rankRoute).sort(function (a, b) {\n return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;\n });\n};\n\nvar segmentize = function segmentize(uri) {\n return uri\n // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\n\nvar addQuery = function addQuery(pathname) {\n for (var _len = arguments.length, query = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n query[_key - 1] = arguments[_key];\n }\n\n query = query.filter(function (q) {\n return q && q.length > 0;\n });\n return pathname + (query && query.length > 0 ? \"?\" + query.join(\"&\") : \"\");\n};\n\nvar reservedNames = [\"uri\", \"path\"];\n\n/**\n * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\nvar shallowCompare = function shallowCompare(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n return obj1Keys.length === Object.keys(obj2).length && obj1Keys.every(function (key) {\n return obj2.hasOwnProperty(key) && obj1[key] === obj2[key];\n });\n};\n\n////////////////////////////////////////////////////////////////////////////////\nexport { startsWith, pick, match, resolve, insertParams, validateRedirect, shallowCompare };","var _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; };\n\nvar getLocation = function getLocation(source) {\n var _source$location = source.location,\n search = _source$location.search,\n hash = _source$location.hash,\n href = _source$location.href,\n origin = _source$location.origin,\n protocol = _source$location.protocol,\n host = _source$location.host,\n hostname = _source$location.hostname,\n port = _source$location.port;\n var pathname = source.location.pathname;\n\n\n if (!pathname && href && canUseDOM) {\n var url = new URL(href);\n pathname = url.pathname;\n }\n\n return {\n pathname: encodeURI(decodeURI(pathname)),\n search: search,\n hash: hash,\n href: href,\n origin: origin,\n protocol: protocol,\n host: host,\n hostname: hostname,\n port: port,\n state: source.history.state,\n key: source.history.state && source.history.state.key || \"initial\"\n };\n};\n\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n var resolveTransition = function resolveTransition() {};\n\n return {\n get location() {\n return location;\n },\n\n get transitioning() {\n return transitioning;\n },\n\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({ location: location, action: \"POP\" });\n };\n\n source.addEventListener(\"popstate\", popstateListener);\n\n return function () {\n source.removeEventListener(\"popstate\", popstateListener);\n listeners = listeners.filter(function (fn) {\n return fn !== listener;\n });\n };\n },\n navigate: function navigate(to) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n state = _ref.state,\n _ref$replace = _ref.replace,\n replace = _ref$replace === undefined ? false : _ref$replace;\n\n if (typeof to === \"number\") {\n source.history.go(to);\n } else {\n state = _extends({}, state, { key: Date.now() + \"\" });\n // try...catch iOS Safari limits to 100 pushState calls\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n }\n\n location = getLocation(source);\n transitioning = true;\n var transition = new Promise(function (res) {\n return resolveTransition = res;\n });\n listeners.forEach(function (listener) {\n return listener({ location: location, action: \"PUSH\" });\n });\n return transition;\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n\n var searchIndex = initialPath.indexOf(\"?\");\n var initialLocation = {\n pathname: searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,\n search: searchIndex > -1 ? initialPath.substr(searchIndex) : \"\"\n };\n var index = 0;\n var stack = [initialLocation];\n var states = [null];\n\n return {\n get location() {\n return stack[index];\n },\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n\n history: {\n get entries() {\n return stack;\n },\n get index() {\n return index;\n },\n get state() {\n return states[index];\n },\n pushState: function pushState(state, _, uri) {\n var _uri$split = uri.split(\"?\"),\n pathname = _uri$split[0],\n _uri$split$ = _uri$split[1],\n search = _uri$split$ === undefined ? \"\" : _uri$split$;\n\n index++;\n stack.push({ pathname: pathname, search: search.length ? \"?\" + search : search });\n states.push(state);\n },\n replaceState: function replaceState(state, _, uri) {\n var _uri$split2 = uri.split(\"?\"),\n pathname = _uri$split2[0],\n _uri$split2$ = _uri$split2[1],\n search = _uri$split2$ === undefined ? \"\" : _uri$split2$;\n\n stack[index] = { pathname: pathname, search: search };\n states[index] = state;\n },\n go: function go(to) {\n var newIndex = index + to;\n\n if (newIndex < 0 || newIndex > states.length - 1) {\n return;\n }\n\n index = newIndex;\n }\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\n\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate;\n\n////////////////////////////////////////////////////////////////////////////////\n\nexport { globalHistory, navigate, createHistory, createMemorySource };","var _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; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/* eslint-disable jsx-a11y/anchor-has-content */\nimport React, { useContext, createContext } from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"invariant\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { startsWith, pick, resolve, match, insertParams, validateRedirect, shallowCompare } from \"./lib/utils\";\nimport { globalHistory, navigate, createHistory, createMemorySource } from \"./lib/history\";\n\n////////////////////////////////////////////////////////////////////////////////\n\nvar createNamedContext = function createNamedContext(name, defaultValue) {\n var Ctx = createContext(defaultValue);\n Ctx.displayName = name;\n return Ctx;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Location Context/Provider\nvar LocationContext = createNamedContext(\"Location\");\n\n// sets up a listener if there isn't one already so apps don't need to be\n// wrapped in some top level provider\nvar Location = function Location(_ref) {\n var children = _ref.children;\n return React.createElement(\n LocationContext.Consumer,\n null,\n function (context) {\n return context ? children(context) : React.createElement(\n LocationProvider,\n null,\n children\n );\n }\n );\n};\n\nvar LocationProvider = function (_React$Component) {\n _inherits(LocationProvider, _React$Component);\n\n function LocationProvider() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, LocationProvider);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {\n context: _this.getContext(),\n refs: { unlisten: null }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n LocationProvider.prototype.getContext = function getContext() {\n var _props$history = this.props.history,\n navigate = _props$history.navigate,\n location = _props$history.location;\n\n return { navigate: navigate, location: location };\n };\n\n LocationProvider.prototype.componentDidCatch = function componentDidCatch(error, info) {\n if (isRedirect(error)) {\n var _navigate = this.props.history.navigate;\n\n _navigate(error.uri, { replace: true });\n } else {\n throw error;\n }\n };\n\n LocationProvider.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevState.context.location !== this.state.context.location) {\n this.props.history._onTransitionComplete();\n }\n };\n\n LocationProvider.prototype.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n var refs = this.state.refs,\n history = this.props.history;\n\n history._onTransitionComplete();\n refs.unlisten = history.listen(function () {\n Promise.resolve().then(function () {\n // TODO: replace rAF with react deferred update API when it's ready https://github.com/facebook/react/issues/13306\n requestAnimationFrame(function () {\n if (!_this2.unmounted) {\n _this2.setState(function () {\n return { context: _this2.getContext() };\n });\n }\n });\n });\n });\n };\n\n LocationProvider.prototype.componentWillUnmount = function componentWillUnmount() {\n var refs = this.state.refs;\n\n this.unmounted = true;\n refs.unlisten();\n };\n\n LocationProvider.prototype.render = function render() {\n var context = this.state.context,\n children = this.props.children;\n\n return React.createElement(\n LocationContext.Provider,\n { value: context },\n typeof children === \"function\" ? children(context) : children || null\n );\n };\n\n return LocationProvider;\n}(React.Component);\n\n////////////////////////////////////////////////////////////////////////////////\n\n\nLocationProvider.defaultProps = {\n history: globalHistory\n};\nprocess.env.NODE_ENV !== \"production\" ? LocationProvider.propTypes = {\n history: PropTypes.object.isRequired\n} : void 0;\nvar ServerLocation = function ServerLocation(_ref2) {\n var url = _ref2.url,\n children = _ref2.children;\n\n var searchIndex = url.indexOf(\"?\");\n var searchExists = searchIndex > -1;\n var pathname = void 0;\n var search = \"\";\n var hash = \"\";\n\n if (searchExists) {\n pathname = url.substring(0, searchIndex);\n search = url.substring(searchIndex);\n } else {\n pathname = url;\n }\n\n return React.createElement(\n LocationContext.Provider,\n {\n value: {\n location: {\n pathname: pathname,\n search: search,\n hash: hash\n },\n navigate: function navigate() {\n throw new Error(\"You can't call navigate on the server.\");\n }\n }\n },\n children\n );\n};\n////////////////////////////////////////////////////////////////////////////////\n// Sets baseuri and basepath for nested routers and links\nvar BaseContext = createNamedContext(\"Base\", {\n baseuri: \"/\",\n basepath: \"/\",\n navigate: globalHistory.navigate\n});\n\n////////////////////////////////////////////////////////////////////////////////\n// The main event, welcome to the show everybody.\nvar Router = function Router(props) {\n return React.createElement(\n BaseContext.Consumer,\n null,\n function (baseContext) {\n return React.createElement(\n Location,\n null,\n function (locationContext) {\n return React.createElement(RouterImpl, _extends({}, baseContext, locationContext, props));\n }\n );\n }\n );\n};\n\nvar RouterImpl = function (_React$PureComponent) {\n _inherits(RouterImpl, _React$PureComponent);\n\n function RouterImpl() {\n _classCallCheck(this, RouterImpl);\n\n return _possibleConstructorReturn(this, _React$PureComponent.apply(this, arguments));\n }\n\n RouterImpl.prototype.render = function render() {\n var _props = this.props,\n location = _props.location,\n _navigate2 = _props.navigate,\n basepath = _props.basepath,\n primary = _props.primary,\n children = _props.children,\n baseuri = _props.baseuri,\n _props$component = _props.component,\n component = _props$component === undefined ? \"div\" : _props$component,\n domProps = _objectWithoutProperties(_props, [\"location\", \"navigate\", \"basepath\", \"primary\", \"children\", \"baseuri\", \"component\"]);\n\n var routes = React.Children.toArray(children).reduce(function (array, child) {\n var routes = createRoute(basepath)(child);\n return array.concat(routes);\n }, []);\n var pathname = location.pathname;\n\n\n var match = pick(routes, pathname);\n\n if (match) {\n var params = match.params,\n uri = match.uri,\n route = match.route,\n element = match.route.value;\n\n // remove the /* from the end for child routes relative paths\n\n basepath = route.default ? basepath : route.path.replace(/\\*$/, \"\");\n\n var props = _extends({}, params, {\n uri: uri,\n location: location,\n navigate: function navigate(to, options) {\n return _navigate2(resolve(to, uri), options);\n }\n });\n\n var clone = React.cloneElement(element, props, element.props.children ? React.createElement(\n Router,\n { location: location, primary: primary },\n element.props.children\n ) : undefined);\n\n // using 'div' for < 16.3 support\n var FocusWrapper = primary ? FocusHandler : component;\n // don't pass any props to 'div'\n var wrapperProps = primary ? _extends({ uri: uri, location: location, component: component }, domProps) : domProps;\n\n return React.createElement(\n BaseContext.Provider,\n {\n value: { baseuri: uri, basepath: basepath, navigate: props.navigate }\n },\n React.createElement(\n FocusWrapper,\n wrapperProps,\n clone\n )\n );\n } else {\n // Not sure if we want this, would require index routes at every level\n // warning(\n // false,\n // `\\n\\nNothing matched:\\n\\t${\n // location.pathname\n // }\\n\\nPaths checked: \\n\\t${routes\n // .map(route => route.path)\n // .join(\n // \"\\n\\t\"\n // )}\\n\\nTo get rid of this warning, add a default NotFound component as child of Router:\n // \\n\\tlet NotFound = () =>
    Not Found!
    \n // \\n\\t\\n\\t \\n\\t {/* ... */}\\n\\t`\n // );\n return null;\n }\n };\n\n return RouterImpl;\n}(React.PureComponent);\n\nRouterImpl.defaultProps = {\n primary: true\n};\n\n\nvar FocusContext = createNamedContext(\"Focus\");\n\nvar FocusHandler = function FocusHandler(_ref3) {\n var uri = _ref3.uri,\n location = _ref3.location,\n component = _ref3.component,\n domProps = _objectWithoutProperties(_ref3, [\"uri\", \"location\", \"component\"]);\n\n return React.createElement(\n FocusContext.Consumer,\n null,\n function (requestFocus) {\n return React.createElement(FocusHandlerImpl, _extends({}, domProps, {\n component: component,\n requestFocus: requestFocus,\n uri: uri,\n location: location\n }));\n }\n );\n};\n\n// don't focus on initial render\nvar initialRender = true;\nvar focusHandlerCount = 0;\n\nvar FocusHandlerImpl = function (_React$Component2) {\n _inherits(FocusHandlerImpl, _React$Component2);\n\n function FocusHandlerImpl() {\n var _temp2, _this4, _ret2;\n\n _classCallCheck(this, FocusHandlerImpl);\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _ret2 = (_temp2 = (_this4 = _possibleConstructorReturn(this, _React$Component2.call.apply(_React$Component2, [this].concat(args))), _this4), _this4.state = {}, _this4.requestFocus = function (node) {\n if (!_this4.state.shouldFocus && node) {\n node.focus();\n }\n }, _temp2), _possibleConstructorReturn(_this4, _ret2);\n }\n\n FocusHandlerImpl.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n var initial = prevState.uri == null;\n if (initial) {\n return _extends({\n shouldFocus: true\n }, nextProps);\n } else {\n var myURIChanged = nextProps.uri !== prevState.uri;\n var navigatedUpToMe = prevState.location.pathname !== nextProps.location.pathname && nextProps.location.pathname === nextProps.uri;\n return _extends({\n shouldFocus: myURIChanged || navigatedUpToMe\n }, nextProps);\n }\n };\n\n FocusHandlerImpl.prototype.componentDidMount = function componentDidMount() {\n focusHandlerCount++;\n this.focus();\n };\n\n FocusHandlerImpl.prototype.componentWillUnmount = function componentWillUnmount() {\n focusHandlerCount--;\n if (focusHandlerCount === 0) {\n initialRender = true;\n }\n };\n\n FocusHandlerImpl.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevProps.location !== this.props.location && this.state.shouldFocus) {\n this.focus();\n }\n };\n\n FocusHandlerImpl.prototype.focus = function focus() {\n if (process.env.NODE_ENV === \"test\") {\n // getting cannot read property focus of null in the tests\n // and that bit of global `initialRender` state causes problems\n // should probably figure it out!\n return;\n }\n\n var requestFocus = this.props.requestFocus;\n\n\n if (requestFocus) {\n requestFocus(this.node);\n } else {\n if (initialRender) {\n initialRender = false;\n } else if (this.node) {\n // React polyfills [autofocus] and it fires earlier than cDM,\n // so we were stealing focus away, this line prevents that.\n if (!this.node.contains(document.activeElement)) {\n this.node.focus();\n }\n }\n }\n };\n\n FocusHandlerImpl.prototype.render = function render() {\n var _this5 = this;\n\n var _props2 = this.props,\n children = _props2.children,\n style = _props2.style,\n requestFocus = _props2.requestFocus,\n _props2$component = _props2.component,\n Comp = _props2$component === undefined ? \"div\" : _props2$component,\n uri = _props2.uri,\n location = _props2.location,\n domProps = _objectWithoutProperties(_props2, [\"children\", \"style\", \"requestFocus\", \"component\", \"uri\", \"location\"]);\n\n return React.createElement(\n Comp,\n _extends({\n style: _extends({ outline: \"none\" }, style),\n tabIndex: \"-1\",\n ref: function ref(n) {\n return _this5.node = n;\n }\n }, domProps),\n React.createElement(\n FocusContext.Provider,\n { value: this.requestFocus },\n this.props.children\n )\n );\n };\n\n return FocusHandlerImpl;\n}(React.Component);\n\npolyfill(FocusHandlerImpl);\n\nvar k = function k() {};\n\n////////////////////////////////////////////////////////////////////////////////\nvar forwardRef = React.forwardRef;\n\nif (typeof forwardRef === \"undefined\") {\n forwardRef = function forwardRef(C) {\n return C;\n };\n}\n\nvar Link = forwardRef(function (_ref4, ref) {\n var innerRef = _ref4.innerRef,\n props = _objectWithoutProperties(_ref4, [\"innerRef\"]);\n\n return React.createElement(\n BaseContext.Consumer,\n null,\n function (_ref5) {\n var basepath = _ref5.basepath,\n baseuri = _ref5.baseuri;\n return React.createElement(\n Location,\n null,\n function (_ref6) {\n var location = _ref6.location,\n navigate = _ref6.navigate;\n\n var to = props.to,\n state = props.state,\n replace = props.replace,\n _props$getProps = props.getProps,\n getProps = _props$getProps === undefined ? k : _props$getProps,\n anchorProps = _objectWithoutProperties(props, [\"to\", \"state\", \"replace\", \"getProps\"]);\n\n var href = resolve(to, baseuri);\n var encodedHref = encodeURI(href);\n var isCurrent = location.pathname === encodedHref;\n var isPartiallyCurrent = startsWith(location.pathname, encodedHref);\n\n return React.createElement(\"a\", _extends({\n ref: ref || innerRef,\n \"aria-current\": isCurrent ? \"page\" : undefined\n }, anchorProps, getProps({ isCurrent: isCurrent, isPartiallyCurrent: isPartiallyCurrent, href: href, location: location }), {\n href: href,\n onClick: function onClick(event) {\n if (anchorProps.onClick) anchorProps.onClick(event);\n if (shouldNavigate(event)) {\n event.preventDefault();\n var shouldReplace = replace;\n if (typeof replace !== \"boolean\" && isCurrent) {\n var _location$state = _extends({}, location.state),\n key = _location$state.key,\n restState = _objectWithoutProperties(_location$state, [\"key\"]);\n\n shouldReplace = shallowCompare(_extends({}, state), restState);\n }\n navigate(href, {\n state: state,\n replace: shouldReplace\n });\n }\n }\n }));\n }\n );\n }\n );\n});\n\nLink.displayName = \"Link\";\n\nprocess.env.NODE_ENV !== \"production\" ? Link.propTypes = {\n to: PropTypes.string.isRequired\n} : void 0;\n\n////////////////////////////////////////////////////////////////////////////////\nfunction RedirectRequest(uri) {\n this.uri = uri;\n}\n\nvar isRedirect = function isRedirect(o) {\n return o instanceof RedirectRequest;\n};\n\nvar redirectTo = function redirectTo(to) {\n throw new RedirectRequest(to);\n};\n\nvar RedirectImpl = function (_React$Component3) {\n _inherits(RedirectImpl, _React$Component3);\n\n function RedirectImpl() {\n _classCallCheck(this, RedirectImpl);\n\n return _possibleConstructorReturn(this, _React$Component3.apply(this, arguments));\n }\n\n // Support React < 16 with this hook\n RedirectImpl.prototype.componentDidMount = function componentDidMount() {\n var _props3 = this.props,\n navigate = _props3.navigate,\n to = _props3.to,\n from = _props3.from,\n _props3$replace = _props3.replace,\n replace = _props3$replace === undefined ? true : _props3$replace,\n state = _props3.state,\n noThrow = _props3.noThrow,\n baseuri = _props3.baseuri,\n props = _objectWithoutProperties(_props3, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\", \"baseuri\"]);\n\n Promise.resolve().then(function () {\n var resolvedTo = resolve(to, baseuri);\n navigate(insertParams(resolvedTo, props), { replace: replace, state: state });\n });\n };\n\n RedirectImpl.prototype.render = function render() {\n var _props4 = this.props,\n navigate = _props4.navigate,\n to = _props4.to,\n from = _props4.from,\n replace = _props4.replace,\n state = _props4.state,\n noThrow = _props4.noThrow,\n baseuri = _props4.baseuri,\n props = _objectWithoutProperties(_props4, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\", \"baseuri\"]);\n\n var resolvedTo = resolve(to, baseuri);\n if (!noThrow) redirectTo(insertParams(resolvedTo, props));\n return null;\n };\n\n return RedirectImpl;\n}(React.Component);\n\nvar Redirect = function Redirect(props) {\n return React.createElement(\n BaseContext.Consumer,\n null,\n function (_ref7) {\n var baseuri = _ref7.baseuri;\n return React.createElement(\n Location,\n null,\n function (locationContext) {\n return React.createElement(RedirectImpl, _extends({}, locationContext, { baseuri: baseuri }, props));\n }\n );\n }\n );\n};\n\nprocess.env.NODE_ENV !== \"production\" ? Redirect.propTypes = {\n from: PropTypes.string,\n to: PropTypes.string.isRequired\n} : void 0;\n\n////////////////////////////////////////////////////////////////////////////////\nvar Match = function Match(_ref8) {\n var path = _ref8.path,\n children = _ref8.children;\n return React.createElement(\n BaseContext.Consumer,\n null,\n function (_ref9) {\n var baseuri = _ref9.baseuri;\n return React.createElement(\n Location,\n null,\n function (_ref10) {\n var navigate = _ref10.navigate,\n location = _ref10.location;\n\n var resolvedPath = resolve(path, baseuri);\n var result = match(resolvedPath, location.pathname);\n return children({\n navigate: navigate,\n location: location,\n match: result ? _extends({}, result.params, {\n uri: result.uri,\n path: path\n }) : null\n });\n }\n );\n }\n );\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Hooks\n\nvar useLocation = function useLocation() {\n var context = useContext(LocationContext);\n\n if (!context) {\n throw new Error(\"useLocation hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n return context.location;\n};\n\nvar useNavigate = function useNavigate() {\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useNavigate hook was used but a BaseContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n return context.navigate;\n};\n\nvar useParams = function useParams() {\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useParams hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n var location = useLocation();\n\n var results = match(context.basepath, location.pathname);\n\n return results ? results.params : null;\n};\n\nvar useMatch = function useMatch(path) {\n if (!path) {\n throw new Error(\"useMatch(path: string) requires an argument of a string to match against\");\n }\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useMatch hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n var location = useLocation();\n\n var resolvedPath = resolve(path, context.baseuri);\n var result = match(resolvedPath, location.pathname);\n return result ? _extends({}, result.params, {\n uri: result.uri,\n path: path\n }) : null;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Junk\nvar stripSlashes = function stripSlashes(str) {\n return str.replace(/(^\\/+|\\/+$)/g, \"\");\n};\n\nvar createRoute = function createRoute(basepath) {\n return function (element) {\n if (!element) {\n return null;\n }\n\n if (element.type === React.Fragment && element.props.children) {\n return React.Children.map(element.props.children, createRoute(basepath));\n }\n !(element.props.path || element.props.default || element.type === Redirect) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \": Children of must have a `path` or `default` prop, or be a ``. None found on element type `\" + element.type + \"`\") : invariant(false) : void 0;\n\n !!(element.type === Redirect && (!element.props.from || !element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" requires both \\\"from\\\" and \\\"to\\\" props when inside a .\") : invariant(false) : void 0;\n\n !!(element.type === Redirect && !validateRedirect(element.props.from, element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" has mismatched dynamic segments, ensure both paths have the exact same dynamic segments.\") : invariant(false) : void 0;\n\n if (element.props.default) {\n return { value: element, default: true };\n }\n\n var elementPath = element.type === Redirect ? element.props.from : element.props.path;\n\n var path = elementPath === \"/\" ? basepath : stripSlashes(basepath) + \"/\" + stripSlashes(elementPath);\n\n return {\n value: element,\n default: element.props.default,\n path: element.props.children ? stripSlashes(path) + \"/*\" : path\n };\n };\n};\n\nvar shouldNavigate = function shouldNavigate(event) {\n return !event.defaultPrevented && event.button === 0 && !(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n};\n\n////////////////////////////////////////////////////////////////////////\nexport { Link, Location, LocationProvider, Match, Redirect, Router, ServerLocation, createHistory, createMemorySource, isRedirect, navigate, redirectTo, globalHistory, match as matchPath, useLocation, useNavigate, useParams, useMatch, resolve , BaseContext };","/**\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\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","/**\n * Copyright (c) 2014-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\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst PartytownSnippet = \"/* Partytown 0.5.4 - MIT builder.io */\\n!function(t,e,n,i,r,o,a,d,s,c,p,l){function u(){l||(l=1,\\\"/\\\"==(a=(o.lib||\\\"/~partytown/\\\")+(o.debug?\\\"debug/\\\":\\\"\\\"))[0]&&(s=e.querySelectorAll('script[type=\\\"text/partytown\\\"]'),i!=t?i.dispatchEvent(new CustomEvent(\\\"pt1\\\",{detail:t})):(d=setTimeout(w,1e4),e.addEventListener(\\\"pt0\\\",f),r?h(1):n.serviceWorker?n.serviceWorker.register(a+(o.swPath||\\\"partytown-sw.js\\\"),{scope:a}).then((function(t){t.active?h():t.installing&&t.installing.addEventListener(\\\"statechange\\\",(function(t){\\\"activated\\\"==t.target.state&&h()}))}),console.error):w())))}function h(t){c=e.createElement(t?\\\"script\\\":\\\"iframe\\\"),t||(c.setAttribute(\\\"style\\\",\\\"display:block;width:0;height:0;border:0;visibility:hidden\\\"),c.setAttribute(\\\"aria-hidden\\\",!0)),c.src=a+\\\"partytown-\\\"+(t?\\\"atomics.js?v=0.5.4\\\":\\\"sandbox-sw.html?\\\"+Date.now()),e.body.appendChild(c)}function w(t,n){for(f(),t=0;t {\n const { forward = [], ...filteredConfig } = config || {};\n const configStr = JSON.stringify(filteredConfig, (k, v) => {\n if (typeof v === 'function') {\n v = String(v);\n if (v.startsWith(k + '(')) {\n v = 'function ' + v;\n }\n }\n return v;\n });\n return [\n `!(function(w,p,f,c){`,\n Object.keys(filteredConfig).length > 0\n ? `c=w[p]=Object.assign(w[p]||{},${configStr});`\n : `c=w[p]=w[p]||{};`,\n `c[f]=(c[f]||[])`,\n forward.length > 0 ? `.concat(${JSON.stringify(forward)})` : ``,\n `})(window,'partytown','forward');`,\n snippetCode,\n ].join('');\n};\n\n/**\n * The `type` attribute for Partytown scripts, which does two things:\n *\n * 1. Prevents the `