{"version":3,"file":"chunk-vendors.ba975e285358e1e3.js","mappings":"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","sources":["webpack://FollowMyBid/./node_modules/@microsoft/dynamicproto-js/lib/dist/esm/dynamicproto-js.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-shims/dist-esm/Constants.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-shims/dist-esm/Helpers.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-shims/dist-esm/TsLibShims.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/__DynamicConstants.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/InternalConstants.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/HelperFuncs.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-common/dist-esm/__DynamicConstants.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-common/dist-esm/HelperFuncs.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/EnvUtils.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/DbgExtensionUtils.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/DiagnosticLogger.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK.Enums/EnumHelperFuncs.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-common/dist-esm/Enums.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-common/dist-esm/StorageHelperFuncs.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-common/dist-esm/applicationinsights-common.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/DataSanitizer.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-common/dist-esm/Constants.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-common/dist-esm/TelemetryItemCreator.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Event.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Trace.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/DataPoint.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Metric.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/PageView.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/PageViewPerformance.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Exception.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/CookieMgr.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/RandomHelper.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/DataCacheHelper.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/EventHelpers.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/CoreUtils.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/W3cTraceParent.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-common/dist-esm/DomHelperFuncs.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-common/dist-esm/RequestResponseHeaders.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-common/dist-esm/UrlHelperFuncs.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-common/dist-esm/Util.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/RemoteDependencyData.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/PerfManager.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/TelemetryHelpers.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/ProcessTelemetryContext.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/InstrumentHooks.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/UnloadHandlerContainer.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/BaseTelemetryPlugin.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/__DynamicConstants.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/Telemetry/PageViewManager.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/Telemetry/PageViewPerformanceManager.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/Telemetry/PageVisitTimeManager.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/Timing.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/AnalyticsPlugin.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/ContextTagKeys.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/PartAExtensions.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/Envelope.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/Data.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/InternalConstants.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/__DynamicConstants.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/EnvelopeCreator.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/Offline.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/SendBuffer.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/Sender.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/Serializer.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/TelemetryProcessors/SamplingScoreGenerators/HashCodeScoreGenerator.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/TelemetryProcessors/SamplingScoreGenerators/SamplingScoreGenerator.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/TelemetryProcessors/Sample.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-common/dist-esm/ConnectionStringParser.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/SeverityLevel.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/IConfig.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/ChannelController.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/TelemetryInitializerPlugin.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/BaseCore.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/NotificationManager.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/AppInsightsCore.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-dependencies-js/dist-esm/InternalConstants.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-dependencies-js/dist-esm/__DynamicConstants.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-dependencies-js/dist-esm/ajaxRecord.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-dependencies-js/dist-esm/ajax.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Application.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Device.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/__DynamicConstants.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Internal.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Location.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Session.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/TelemetryTrace.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/User.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/TelemetryContext.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-web/dist-esm/Initialization.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/PropertiesPlugin.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-web/dist-esm/InternalConstants.js","webpack://FollowMyBid/./node_modules/@microsoft/applicationinsights-web/dist-esm/__DynamicConstants.js","webpack://FollowMyBid/./node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js","webpack://FollowMyBid/./node_modules/@microsoft/signalr/dist/esm/HeaderNames.js","webpack://FollowMyBid/./node_modules/@microsoft/signalr/dist/esm/HttpClient.js","webpack://FollowMyBid/./node_modules/@microsoft/signalr/dist/esm/AccessTokenHttpClient.js","webpack://FollowMyBid/./node_modules/@microsoft/signalr/dist/esm/Errors.js","webpack://FollowMyBid/./node_modules/@microsoft/signalr/dist/esm/Loggers.js","webpack://FollowMyBid/./node_modules/@microsoft/signalr/dist/esm/Utils.js","webpack://FollowMyBid/./node_modules/@microsoft/signalr/dist/esm/DynamicImports.js","webpack://FollowMyBid/./node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js","webpack://FollowMyBid/./node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js","webpack://FollowMyBid/./node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js","webpack://FollowMyBid/./node_modules/@microsoft/signalr/dist/esm/ITransport.js","webpack://FollowMyBid/./node_modules/@microsoft/signalr/dist/esm/AbortController.js","webpack://FollowMyBid/./node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js","webpack://FollowMyBid/./node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js","webpack://FollowMyBid/./node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js","webpack://FollowMyBid/./node_modules/@microsoft/signalr/dist/esm/HttpConnection.js","webpack://FollowMyBid/./node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js","webpack://FollowMyBid/./node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js","webpack://FollowMyBid/./node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js","webpack://FollowMyBid/./node_modules/@microsoft/signalr/dist/esm/Subject.js","webpack://FollowMyBid/./node_modules/@microsoft/signalr/dist/esm/MessageBuffer.js","webpack://FollowMyBid/./node_modules/@microsoft/signalr/dist/esm/HubConnection.js","webpack://FollowMyBid/./node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js","webpack://FollowMyBid/./node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js","webpack://FollowMyBid/./node_modules/@microsoft/signalr/dist/esm/ILogger.js","webpack://FollowMyBid/./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js","webpack://FollowMyBid/./node_modules/core-js/internals/a-callable.js","webpack://FollowMyBid/./node_modules/core-js/internals/a-possible-prototype.js","webpack://FollowMyBid/./node_modules/core-js/internals/an-object.js","webpack://FollowMyBid/./node_modules/core-js/internals/array-includes.js","webpack://FollowMyBid/./node_modules/core-js/internals/array-set-length.js","webpack://FollowMyBid/./node_modules/core-js/internals/classof-raw.js","webpack://FollowMyBid/./node_modules/core-js/internals/classof.js","webpack://FollowMyBid/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://FollowMyBid/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://FollowMyBid/./node_modules/core-js/internals/create-property-descriptor.js","webpack://FollowMyBid/./node_modules/core-js/internals/define-built-in-accessor.js","webpack://FollowMyBid/./node_modules/core-js/internals/define-built-in.js","webpack://FollowMyBid/./node_modules/core-js/internals/define-global-property.js","webpack://FollowMyBid/./node_modules/core-js/internals/descriptors.js","webpack://FollowMyBid/./node_modules/core-js/internals/document-all.js","webpack://FollowMyBid/./node_modules/core-js/internals/document-create-element.js","webpack://FollowMyBid/./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://FollowMyBid/./node_modules/core-js/internals/engine-user-agent.js","webpack://FollowMyBid/./node_modules/core-js/internals/engine-v8-version.js","webpack://FollowMyBid/./node_modules/core-js/internals/enum-bug-keys.js","webpack://FollowMyBid/./node_modules/core-js/internals/error-stack-clear.js","webpack://FollowMyBid/./node_modules/core-js/internals/error-stack-install.js","webpack://FollowMyBid/./node_modules/core-js/internals/error-stack-installable.js","webpack://FollowMyBid/./node_modules/core-js/internals/export.js","webpack://FollowMyBid/./node_modules/core-js/internals/fails.js","webpack://FollowMyBid/./node_modules/core-js/internals/function-apply.js","webpack://FollowMyBid/./node_modules/core-js/internals/function-bind-native.js","webpack://FollowMyBid/./node_modules/core-js/internals/function-call.js","webpack://FollowMyBid/./node_modules/core-js/internals/function-name.js","webpack://FollowMyBid/./node_modules/core-js/internals/function-uncurry-this-accessor.js","webpack://FollowMyBid/./node_modules/core-js/internals/function-uncurry-this.js","webpack://FollowMyBid/./node_modules/core-js/internals/get-built-in.js","webpack://FollowMyBid/./node_modules/core-js/internals/get-method.js","webpack://FollowMyBid/./node_modules/core-js/internals/global.js","webpack://FollowMyBid/./node_modules/core-js/internals/has-own-property.js","webpack://FollowMyBid/./node_modules/core-js/internals/hidden-keys.js","webpack://FollowMyBid/./node_modules/core-js/internals/ie8-dom-define.js","webpack://FollowMyBid/./node_modules/core-js/internals/indexed-object.js","webpack://FollowMyBid/./node_modules/core-js/internals/inherit-if-required.js","webpack://FollowMyBid/./node_modules/core-js/internals/inspect-source.js","webpack://FollowMyBid/./node_modules/core-js/internals/install-error-cause.js","webpack://FollowMyBid/./node_modules/core-js/internals/internal-state.js","webpack://FollowMyBid/./node_modules/core-js/internals/is-array.js","webpack://FollowMyBid/./node_modules/core-js/internals/is-callable.js","webpack://FollowMyBid/./node_modules/core-js/internals/is-forced.js","webpack://FollowMyBid/./node_modules/core-js/internals/is-null-or-undefined.js","webpack://FollowMyBid/./node_modules/core-js/internals/is-object.js","webpack://FollowMyBid/./node_modules/core-js/internals/is-pure.js","webpack://FollowMyBid/./node_modules/core-js/internals/is-symbol.js","webpack://FollowMyBid/./node_modules/core-js/internals/length-of-array-like.js","webpack://FollowMyBid/./node_modules/core-js/internals/make-built-in.js","webpack://FollowMyBid/./node_modules/core-js/internals/math-trunc.js","webpack://FollowMyBid/./node_modules/core-js/internals/normalize-string-argument.js","webpack://FollowMyBid/./node_modules/core-js/internals/object-define-property.js","webpack://FollowMyBid/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://FollowMyBid/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://FollowMyBid/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://FollowMyBid/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://FollowMyBid/./node_modules/core-js/internals/object-keys-internal.js","webpack://FollowMyBid/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://FollowMyBid/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://FollowMyBid/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://FollowMyBid/./node_modules/core-js/internals/own-keys.js","webpack://FollowMyBid/./node_modules/core-js/internals/proxy-accessor.js","webpack://FollowMyBid/./node_modules/core-js/internals/require-object-coercible.js","webpack://FollowMyBid/./node_modules/core-js/internals/shared-key.js","webpack://FollowMyBid/./node_modules/core-js/internals/shared-store.js","webpack://FollowMyBid/./node_modules/core-js/internals/shared.js","webpack://FollowMyBid/./node_modules/core-js/internals/symbol-constructor-detection.js","webpack://FollowMyBid/./node_modules/core-js/internals/to-absolute-index.js","webpack://FollowMyBid/./node_modules/core-js/internals/to-indexed-object.js","webpack://FollowMyBid/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://FollowMyBid/./node_modules/core-js/internals/to-length.js","webpack://FollowMyBid/./node_modules/core-js/internals/to-object.js","webpack://FollowMyBid/./node_modules/core-js/internals/to-primitive.js","webpack://FollowMyBid/./node_modules/core-js/internals/to-property-key.js","webpack://FollowMyBid/./node_modules/core-js/internals/to-string-tag-support.js","webpack://FollowMyBid/./node_modules/core-js/internals/to-string.js","webpack://FollowMyBid/./node_modules/core-js/internals/try-to-string.js","webpack://FollowMyBid/./node_modules/core-js/internals/uid.js","webpack://FollowMyBid/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://FollowMyBid/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://FollowMyBid/./node_modules/core-js/internals/weak-map-basic-detection.js","webpack://FollowMyBid/./node_modules/core-js/internals/well-known-symbol.js","webpack://FollowMyBid/./node_modules/core-js/internals/wrap-error-constructor-with-cause.js","webpack://FollowMyBid/./node_modules/core-js/modules/es.array.push.js","webpack://FollowMyBid/./node_modules/core-js/modules/es.error.cause.js","webpack://FollowMyBid/./node_modules/core-js/modules/web.url-search-params.size.js","webpack://FollowMyBid/./node_modules/deepmerge/dist/cjs.js","webpack://FollowMyBid/./node_modules/intersection-observer/intersection-observer.js","webpack://FollowMyBid/./node_modules/moment/moment.js","webpack://FollowMyBid/./node_modules/tiny-cookie/tiny-cookie.js","webpack://FollowMyBid/./node_modules/vanilla-cookieconsent/src/cookieconsent.js","webpack://FollowMyBid/./node_modules/vee-validate/dist/vee-validate.esm.js","webpack://FollowMyBid/./node_modules/vue-cookie/src/vue-cookie.js","webpack://FollowMyBid/./node_modules/vue-i18n/dist/vue-i18n.esm.js","webpack://FollowMyBid/./node_modules/vue-managed-scroller/dist/vue-managed-scroller.common.js","webpack://FollowMyBid/./node_modules/vue-match-media/src/index.js","webpack://FollowMyBid/./node_modules/vue-meta/dist/vue-meta.esm.js","webpack://FollowMyBid/./node_modules/vue-observe-visibility/dist/vue-observe-visibility.esm.js","webpack://FollowMyBid/./node_modules/vue-router/dist/vue-router.esm.js","webpack://FollowMyBid/./node_modules/vue-scrollto/vue-scrollto.js","webpack://FollowMyBid/./node_modules/vue-sticky-directive/src/index.js","webpack://FollowMyBid/./node_modules/vue-sticky-directive/src/sticky.js","webpack://FollowMyBid/./node_modules/vue-textarea-autosize/dist/vue-textarea-autosize.esm.js","webpack://FollowMyBid/./node_modules/vue-toastification/dist/esm/index.js","webpack://FollowMyBid/./node_modules/vue/dist/vue.runtime.esm.js","webpack://FollowMyBid/./node_modules/vuex/dist/vuex.esm.js","webpack://FollowMyBid/./node_modules/axios/lib/helpers/bind.js","webpack://FollowMyBid/./node_modules/axios/lib/utils.js","webpack://FollowMyBid/./node_modules/axios/lib/core/AxiosError.js","webpack://FollowMyBid/./node_modules/axios/lib/helpers/null.js","webpack://FollowMyBid/./node_modules/axios/lib/helpers/toFormData.js","webpack://FollowMyBid/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://FollowMyBid/./node_modules/axios/lib/helpers/buildURL.js","webpack://FollowMyBid/./node_modules/axios/lib/core/InterceptorManager.js","webpack://FollowMyBid/./node_modules/axios/lib/defaults/transitional.js","webpack://FollowMyBid/./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://FollowMyBid/./node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://FollowMyBid/./node_modules/axios/lib/platform/browser/classes/Blob.js","webpack://FollowMyBid/./node_modules/axios/lib/platform/browser/index.js","webpack://FollowMyBid/./node_modules/axios/lib/platform/common/utils.js","webpack://FollowMyBid/./node_modules/axios/lib/platform/index.js","webpack://FollowMyBid/./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://FollowMyBid/./node_modules/axios/lib/helpers/formDataToJSON.js","webpack://FollowMyBid/./node_modules/axios/lib/defaults/index.js","webpack://FollowMyBid/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://FollowMyBid/./node_modules/axios/lib/core/AxiosHeaders.js","webpack://FollowMyBid/./node_modules/axios/lib/core/transformData.js","webpack://FollowMyBid/./node_modules/axios/lib/cancel/isCancel.js","webpack://FollowMyBid/./node_modules/axios/lib/cancel/CanceledError.js","webpack://FollowMyBid/./node_modules/axios/lib/core/settle.js","webpack://FollowMyBid/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://FollowMyBid/./node_modules/axios/lib/helpers/speedometer.js","webpack://FollowMyBid/./node_modules/axios/lib/helpers/throttle.js","webpack://FollowMyBid/./node_modules/axios/lib/helpers/progressEventReducer.js","webpack://FollowMyBid/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://FollowMyBid/./node_modules/axios/lib/helpers/cookies.js","webpack://FollowMyBid/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://FollowMyBid/./node_modules/axios/lib/helpers/combineURLs.js","webpack://FollowMyBid/./node_modules/axios/lib/core/buildFullPath.js","webpack://FollowMyBid/./node_modules/axios/lib/core/mergeConfig.js","webpack://FollowMyBid/./node_modules/axios/lib/helpers/resolveConfig.js","webpack://FollowMyBid/./node_modules/axios/lib/adapters/xhr.js","webpack://FollowMyBid/./node_modules/axios/lib/helpers/composeSignals.js","webpack://FollowMyBid/./node_modules/axios/lib/helpers/trackStream.js","webpack://FollowMyBid/./node_modules/axios/lib/adapters/fetch.js","webpack://FollowMyBid/./node_modules/axios/lib/adapters/adapters.js","webpack://FollowMyBid/./node_modules/axios/lib/core/dispatchRequest.js","webpack://FollowMyBid/./node_modules/axios/lib/env/data.js","webpack://FollowMyBid/./node_modules/axios/lib/helpers/validator.js","webpack://FollowMyBid/./node_modules/axios/lib/core/Axios.js","webpack://FollowMyBid/./node_modules/axios/lib/cancel/CancelToken.js","webpack://FollowMyBid/./node_modules/axios/lib/helpers/spread.js","webpack://FollowMyBid/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://FollowMyBid/./node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://FollowMyBid/./node_modules/axios/lib/axios.js"],"sourcesContent":["/*!\n * Microsoft Dynamic Proto Utility, 1.1.9\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nvar _a;\r\nvar UNDEFINED = \"undefined\";\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar Constructor = 'constructor';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar Prototype = 'prototype';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strFunction = 'function';\r\n/**\r\n * Used to define the name of the instance function lookup table\r\n * @ignore\r\n */\r\nvar DynInstFuncTable = '_dynInstFuncs';\r\n/**\r\n * Name used to tag the dynamic prototype function\r\n * @ignore\r\n */\r\nvar DynProxyTag = '_isDynProxy';\r\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 */\r\nvar DynClassName = '_dynClass';\r\n/**\r\n * Prefix added to the classname to avoid any name clashes with other instance level properties\r\n * @ignore\r\n */\r\nvar DynClassNamePrefix = '_dynCls$';\r\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 */\r\nvar DynInstChkTag = '_dynInstChk';\r\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 */\r\nvar DynAllowInstChkTag = DynInstChkTag;\r\n/**\r\n * The global (imported) instances where the global performance options are stored\r\n */\r\nvar DynProtoDefaultOptions = '_dfOpts';\r\n/**\r\n * Value used as the name of a class when it cannot be determined\r\n * @ignore\r\n */\r\nvar UnknownValue = '_unknown_';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar str__Proto = \"__proto__\";\r\n/**\r\n * The polyfill version of __proto__ so that it doesn't cause issues for anyone not expecting it to exist\r\n */\r\nvar DynProtoBaseProto = \"_dyn\" + str__Proto;\r\n/**\r\n * Runtime Global holder for dynamicProto settings\r\n */\r\nvar DynProtoGlobalSettings = \"__dynProto$Gbl\";\r\n/**\r\n * Track the current prototype for IE8 as you can't look back to get the prototype\r\n */\r\nvar DynProtoCurrent = \"_dynInstProto\";\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strUseBaseInst = 'useBaseInst';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strSetInstFuncs = 'setInstFuncs';\r\nvar Obj = Object;\r\n/**\r\n * Pre-lookup to check if we are running on a modern browser (i.e. not IE8)\r\n * @ignore\r\n */\r\nvar _objGetPrototypeOf = Obj[\"getPrototypeOf\"];\r\n/**\r\n * Pre-lookup to check for the existence of this function\r\n */\r\nvar _objGetOwnProps = Obj[\"getOwnPropertyNames\"];\r\n/**\r\n * Gets the runtime global reference\r\n * @returns\r\n */\r\nfunction _getGlobal() {\r\n var result;\r\n if (typeof globalThis !== UNDEFINED) {\r\n result = globalThis;\r\n }\r\n if (!result && typeof self !== UNDEFINED) {\r\n result = self;\r\n }\r\n if (!result && typeof window !== UNDEFINED) {\r\n result = window;\r\n }\r\n if (!result && typeof global !== UNDEFINED) {\r\n result = global;\r\n }\r\n return result || {};\r\n}\r\n// Since 1.1.7 moving these to the runtime global to work around mixed version and module issues\r\n// See Issue https://github.com/microsoft/DynamicProto-JS/issues/57 for details\r\nvar _gbl = _getGlobal();\r\nvar _gblInst = _gbl[DynProtoGlobalSettings] || (_gbl[DynProtoGlobalSettings] = {\r\n o: (_a = {},\r\n _a[strSetInstFuncs] = true,\r\n _a[strUseBaseInst] = true,\r\n _a),\r\n n: 1000 // Start new global index @ 1000 so we \"fix\" some cases when mixed with 1.1.6 or earlier\r\n});\r\n/**\r\n * Helper to check if the object contains a property of the name\r\n * @ignore\r\n */\r\nfunction _hasOwnProperty(obj, prop) {\r\n return obj && Obj[Prototype].hasOwnProperty.call(obj, prop);\r\n}\r\n/**\r\n * Helper used to check whether the target is an Object prototype or Array prototype\r\n * @ignore\r\n */\r\nfunction _isObjectOrArrayPrototype(target) {\r\n return target && (target === Obj[Prototype] || target === Array[Prototype]);\r\n}\r\n/**\r\n * Helper used to check whether the target is an Object prototype, Array prototype or Function prototype\r\n * @ignore\r\n */\r\nfunction _isObjectArrayOrFunctionPrototype(target) {\r\n return _isObjectOrArrayPrototype(target) || target === Function[Prototype];\r\n}\r\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 */\r\nfunction _getObjProto(target) {\r\n var newProto;\r\n if (target) {\r\n // This method doesn't exist in older browsers (e.g. IE8)\r\n if (_objGetPrototypeOf) {\r\n return _objGetPrototypeOf(target);\r\n }\r\n var curProto = target[str__Proto] || target[Prototype] || (target[Constructor] ? target[Constructor][Prototype] : null);\r\n // Using the pre-calculated value as IE8 doesn't support looking up the prototype of a prototype and thus fails for more than 1 base class\r\n newProto = target[DynProtoBaseProto] || curProto;\r\n if (!_hasOwnProperty(target, DynProtoBaseProto)) {\r\n // As this prototype doesn't have this property then this is from an inherited class so newProto is the base to return so save it\r\n // so we can look it up value (which for a multiple hierarchy dynamicProto will be the base class)\r\n delete target[DynProtoCurrent]; // Delete any current value allocated to this instance so we pick up the value from prototype hierarchy\r\n newProto = target[DynProtoBaseProto] = target[DynProtoCurrent] || target[DynProtoBaseProto];\r\n target[DynProtoCurrent] = curProto;\r\n }\r\n }\r\n return newProto;\r\n}\r\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 */\r\nfunction _forEachProp(target, func) {\r\n var props = [];\r\n if (_objGetOwnProps) {\r\n props = _objGetOwnProps(target);\r\n }\r\n else {\r\n for (var name_1 in target) {\r\n if (typeof name_1 === \"string\" && _hasOwnProperty(target, name_1)) {\r\n props.push(name_1);\r\n }\r\n }\r\n }\r\n if (props && props.length > 0) {\r\n for (var lp = 0; lp < props.length; lp++) {\r\n func(props[lp]);\r\n }\r\n }\r\n}\r\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 */\r\nfunction _isDynamicCandidate(target, funcName, skipOwn) {\r\n return (funcName !== Constructor && typeof target[funcName] === strFunction && (skipOwn || _hasOwnProperty(target, funcName)));\r\n}\r\n/**\r\n * Helper to throw a TypeError exception\r\n * @param message the message\r\n * @ignore\r\n */\r\nfunction _throwTypeError(message) {\r\n throw new TypeError(\"DynamicProto: \" + message);\r\n}\r\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 */\r\nfunction _getInstanceFuncs(thisTarget) {\r\n // Get the base proto\r\n var instFuncs = {};\r\n // Save any existing instance functions\r\n _forEachProp(thisTarget, function (name) {\r\n // Don't include any dynamic prototype instances - as we only want the real functions\r\n if (!instFuncs[name] && _isDynamicCandidate(thisTarget, name, false)) {\r\n // Create an instance callback for passing the base function to the caller\r\n instFuncs[name] = thisTarget[name];\r\n }\r\n });\r\n return instFuncs;\r\n}\r\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 */\r\nfunction _hasVisited(values, value) {\r\n for (var lp = values.length - 1; lp >= 0; lp--) {\r\n if (values[lp] === value) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\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 */\r\nfunction _getBaseFuncs(classProto, thisTarget, instFuncs, useBaseInst) {\r\n function _instFuncProxy(target, funcHost, funcName) {\r\n var theFunc = funcHost[funcName];\r\n if (theFunc[DynProxyTag] && useBaseInst) {\r\n // grab and reuse the hosted looking function (if available) otherwise the original passed function\r\n var instFuncTable = target[DynInstFuncTable] || {};\r\n if (instFuncTable[DynAllowInstChkTag] !== false) {\r\n theFunc = (instFuncTable[funcHost[DynClassName]] || {})[funcName] || theFunc;\r\n }\r\n }\r\n return function () {\r\n // eslint-disable-next-line prefer-rest-params\r\n return theFunc.apply(target, arguments);\r\n };\r\n }\r\n // Start creating a new baseFuncs by creating proxies for the instance functions (as they may get replaced)\r\n var baseFuncs = {};\r\n _forEachProp(instFuncs, function (name) {\r\n // Create an instance callback for passing the base function to the caller\r\n baseFuncs[name] = _instFuncProxy(thisTarget, instFuncs, name);\r\n });\r\n // Get the base prototype functions\r\n var baseProto = _getObjProto(classProto);\r\n var visited = [];\r\n // Don't include base object functions for Object, Array or Function\r\n while (baseProto && !_isObjectArrayOrFunctionPrototype(baseProto) && !_hasVisited(visited, baseProto)) {\r\n // look for prototype functions\r\n _forEachProp(baseProto, function (name) {\r\n // Don't include any dynamic prototype instances - as we only want the real functions\r\n // For IE 7/8 the prototype lookup doesn't provide the full chain so we need to bypass the \r\n // hasOwnProperty check we get all of the methods, main difference is that IE7/8 doesn't return\r\n // the Object prototype methods while bypassing the check\r\n if (!baseFuncs[name] && _isDynamicCandidate(baseProto, name, !_objGetPrototypeOf)) {\r\n // Create an instance callback for passing the base function to the caller\r\n baseFuncs[name] = _instFuncProxy(thisTarget, baseProto, name);\r\n }\r\n });\r\n // We need to find all possible functions that might be overloaded by walking the entire prototype chain\r\n // This avoids the caller from needing to check whether it's direct base class implements the function or not\r\n // by walking the entire chain it simplifies the usage and issues from upgrading any of the base classes.\r\n visited.push(baseProto);\r\n baseProto = _getObjProto(baseProto);\r\n }\r\n return baseFuncs;\r\n}\r\nfunction _getInstFunc(target, funcName, proto, currentDynProtoProxy) {\r\n var instFunc = null;\r\n // We need to check whether the class name is defined directly on this prototype otherwise\r\n // it will walk the proto chain and return any parent proto classname.\r\n if (target && _hasOwnProperty(proto, DynClassName)) {\r\n var instFuncTable = target[DynInstFuncTable] || {};\r\n instFunc = (instFuncTable[proto[DynClassName]] || {})[funcName];\r\n if (!instFunc) {\r\n // Avoid stack overflow from recursive calling the same function\r\n _throwTypeError(\"Missing [\" + funcName + \"] \" + strFunction);\r\n }\r\n // We have the instance function, lets check it we can speed up further calls\r\n // by adding the instance function back directly on the instance (avoiding the dynamic func lookup)\r\n if (!instFunc[DynInstChkTag] && instFuncTable[DynAllowInstChkTag] !== false) {\r\n // If the instance already has an instance function we can't replace it\r\n var canAddInst = !_hasOwnProperty(target, funcName);\r\n // Get current prototype\r\n var objProto = _getObjProto(target);\r\n var visited = [];\r\n // Lookup the function starting at the top (instance level prototype) and traverse down, if the first matching function\r\n // if nothing is found or if the first hit is a dynamic proto instance then we can safely add an instance shortcut\r\n while (canAddInst && objProto && !_isObjectArrayOrFunctionPrototype(objProto) && !_hasVisited(visited, objProto)) {\r\n var protoFunc = objProto[funcName];\r\n if (protoFunc) {\r\n canAddInst = (protoFunc === currentDynProtoProxy);\r\n break;\r\n }\r\n // We need to find all possible initial functions to ensure that we don't bypass a valid override function\r\n visited.push(objProto);\r\n objProto = _getObjProto(objProto);\r\n }\r\n try {\r\n if (canAddInst) {\r\n // This instance doesn't have an instance func and the class hierarchy does have a higher level prototype version\r\n // so it's safe to directly assign for any subsequent calls (for better performance)\r\n target[funcName] = instFunc;\r\n }\r\n // Block further attempts to set the instance function for any\r\n instFunc[DynInstChkTag] = 1;\r\n }\r\n catch (e) {\r\n // Don't crash if the object is readonly or the runtime doesn't allow changing this\r\n // And set a flag so we don't try again for any function\r\n instFuncTable[DynAllowInstChkTag] = false;\r\n }\r\n }\r\n }\r\n return instFunc;\r\n}\r\nfunction _getProtoFunc(funcName, proto, currentDynProtoProxy) {\r\n var protoFunc = proto[funcName];\r\n // Check that the prototype function is not a self reference -- try to avoid stack overflow!\r\n if (protoFunc === currentDynProtoProxy) {\r\n // It is so lookup the base prototype\r\n protoFunc = _getObjProto(proto)[funcName];\r\n }\r\n if (typeof protoFunc !== strFunction) {\r\n _throwTypeError(\"[\" + funcName + \"] is not a \" + strFunction);\r\n }\r\n return protoFunc;\r\n}\r\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 */\r\nfunction _populatePrototype(proto, className, target, baseInstFuncs, setInstanceFunc) {\r\n function _createDynamicPrototype(proto, funcName) {\r\n var dynProtoProxy = function () {\r\n // Use the instance or prototype function\r\n var instFunc = _getInstFunc(this, funcName, proto, dynProtoProxy) || _getProtoFunc(funcName, proto, dynProtoProxy);\r\n // eslint-disable-next-line prefer-rest-params\r\n return instFunc.apply(this, arguments);\r\n };\r\n // Tag this function as a proxy to support replacing dynamic proxy elements (primary use case is for unit testing\r\n // via which can dynamically replace the prototype function reference)\r\n dynProtoProxy[DynProxyTag] = 1;\r\n return dynProtoProxy;\r\n }\r\n if (!_isObjectOrArrayPrototype(proto)) {\r\n var instFuncTable = target[DynInstFuncTable] = target[DynInstFuncTable] || {};\r\n var instFuncs_1 = instFuncTable[className] = (instFuncTable[className] || {}); // fetch and assign if as it may not exist yet\r\n // Set whether we are allow to lookup instances, if someone has set to false then do not re-enable\r\n if (instFuncTable[DynAllowInstChkTag] !== false) {\r\n instFuncTable[DynAllowInstChkTag] = !!setInstanceFunc;\r\n }\r\n _forEachProp(target, function (name) {\r\n // Only add overridden functions\r\n if (_isDynamicCandidate(target, name, false) && target[name] !== baseInstFuncs[name]) {\r\n // Save the instance Function to the lookup table and remove it from the instance as it's not a dynamic proto function\r\n instFuncs_1[name] = target[name];\r\n delete target[name];\r\n // Add a dynamic proto if one doesn't exist or if a prototype function exists and it's not a dynamic one\r\n if (!_hasOwnProperty(proto, name) || (proto[name] && !proto[name][DynProxyTag])) {\r\n proto[name] = _createDynamicPrototype(proto, name);\r\n }\r\n }\r\n });\r\n }\r\n}\r\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 */\r\nfunction _checkPrototype(classProto, thisTarget) {\r\n // This method doesn't existing in older browsers (e.g. IE8)\r\n if (_objGetPrototypeOf) {\r\n // As this is primarily a coding time check, don't bother checking if running in IE8 or lower\r\n var visited = [];\r\n var thisProto = _getObjProto(thisTarget);\r\n while (thisProto && !_isObjectArrayOrFunctionPrototype(thisProto) && !_hasVisited(visited, thisProto)) {\r\n if (thisProto === classProto) {\r\n return true;\r\n }\r\n // This avoids the caller from needing to check whether it's direct base class implements the function or not\r\n // by walking the entire chain it simplifies the usage and issues from upgrading any of the base classes.\r\n visited.push(thisProto);\r\n thisProto = _getObjProto(thisProto);\r\n }\r\n return false;\r\n }\r\n // If objGetPrototypeOf doesn't exist then just assume everything is ok.\r\n return true;\r\n}\r\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 */\r\nfunction _getObjName(target, unknownValue) {\r\n if (_hasOwnProperty(target, Prototype)) {\r\n // Look like a prototype\r\n return target.name || unknownValue || UnknownValue;\r\n }\r\n return (((target || {})[Constructor]) || {}).name || unknownValue || UnknownValue;\r\n}\r\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 */\r\nfunction dynamicProto(theClass, target, delegateFunc, options) {\r\n // Make sure that the passed theClass argument looks correct\r\n if (!_hasOwnProperty(theClass, Prototype)) {\r\n _throwTypeError(\"theClass is an invalid class definition.\");\r\n }\r\n // Quick check to make sure that the passed theClass argument looks correct (this is a common copy/paste error)\r\n var classProto = theClass[Prototype];\r\n if (!_checkPrototype(classProto, target)) {\r\n _throwTypeError(\"[\" + _getObjName(theClass) + \"] not in hierarchy of [\" + _getObjName(target) + \"]\");\r\n }\r\n var className = null;\r\n if (_hasOwnProperty(classProto, DynClassName)) {\r\n // Only grab the class name if it's defined on this prototype (i.e. don't walk the prototype chain)\r\n className = classProto[DynClassName];\r\n }\r\n else {\r\n // As not all browser support name on the prototype creating a unique dynamic one if we have not already\r\n // assigned one, so we can use a simple string as the lookup rather than an object for the dynamic instance\r\n // function table lookup.\r\n className = DynClassNamePrefix + _getObjName(theClass, \"_\") + \"$\" + _gblInst.n;\r\n _gblInst.n++;\r\n classProto[DynClassName] = className;\r\n }\r\n var perfOptions = dynamicProto[DynProtoDefaultOptions];\r\n var useBaseInst = !!perfOptions[strUseBaseInst];\r\n if (useBaseInst && options && options[strUseBaseInst] !== undefined) {\r\n useBaseInst = !!options[strUseBaseInst];\r\n }\r\n // Get the current instance functions\r\n var instFuncs = _getInstanceFuncs(target);\r\n // Get all of the functions for any base instance (before they are potentially overridden)\r\n var baseFuncs = _getBaseFuncs(classProto, target, instFuncs, useBaseInst);\r\n // Execute the delegate passing in both the current target \"this\" and \"base\" function references\r\n // Note casting the same type as we don't actually have the base class here and this will provide some intellisense support\r\n delegateFunc(target, baseFuncs);\r\n // Don't allow setting instance functions for older IE instances\r\n var setInstanceFunc = !!_objGetPrototypeOf && !!perfOptions[strSetInstFuncs];\r\n if (setInstanceFunc && options) {\r\n setInstanceFunc = !!options[strSetInstFuncs];\r\n }\r\n // Populate the Prototype for any overridden instance functions\r\n _populatePrototype(classProto, className, target, instFuncs, setInstanceFunc !== false);\r\n}\r\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 */\r\ndynamicProto[DynProtoDefaultOptions] = _gblInst.o;\n\nexport { dynamicProto as default };\n//# sourceMappingURL=dynamicproto-js.js.map\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nexport var strShimFunction = \"function\";\r\nexport var strShimObject = \"object\";\r\nexport var strShimUndefined = \"undefined\";\r\nexport var strShimPrototype = \"prototype\";\r\nexport var strShimHasOwnProperty = \"hasOwnProperty\";\r\nexport var strDefault = \"default\";\r\nexport var ObjClass = Object;\r\nexport var ObjProto = ObjClass[strShimPrototype];\r\nexport var ObjAssign = ObjClass[\"assign\"];\r\nexport var ObjCreate = ObjClass[\"create\"];\r\nexport var ObjDefineProperty = ObjClass[\"defineProperty\"];\r\nexport var ObjHasOwnProperty = ObjProto[strShimHasOwnProperty];\r\n//# sourceMappingURL=Constants.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { ObjCreate, strShimFunction, strShimObject, strShimPrototype, strShimUndefined } from \"./Constants\";\r\nvar _cachedGlobal = null;\r\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 */\r\nexport function getGlobal(useCached) {\r\n if (useCached === void 0) { useCached = true; }\r\n var result = useCached === false ? null : _cachedGlobal;\r\n if (!result) {\r\n if (typeof globalThis !== strShimUndefined) {\r\n result = globalThis;\r\n }\r\n if (!result && typeof self !== strShimUndefined) {\r\n result = self;\r\n }\r\n if (!result && typeof window !== strShimUndefined) {\r\n result = window;\r\n }\r\n if (!result && typeof global !== strShimUndefined) {\r\n result = global;\r\n }\r\n _cachedGlobal = result;\r\n }\r\n return result;\r\n}\r\nexport function throwTypeError(message) {\r\n throw new TypeError(message);\r\n}\r\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 */\r\nexport function objCreateFn(obj) {\r\n var func = ObjCreate;\r\n // Use build in Object.create\r\n if (func) {\r\n // Use Object create method if it exists\r\n return func(obj);\r\n }\r\n if (obj == null) {\r\n return {};\r\n }\r\n var type = typeof obj;\r\n if (type !== strShimObject && type !== strShimFunction) {\r\n throwTypeError(\"Object prototype may only be an Object:\" + obj);\r\n }\r\n function tmpFunc() { }\r\n tmpFunc[strShimPrototype] = obj;\r\n return new tmpFunc();\r\n}\r\n//# sourceMappingURL=Helpers.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { ObjAssign, ObjClass, ObjCreate, ObjDefineProperty, ObjHasOwnProperty, ObjProto, strDefault, strShimFunction, strShimHasOwnProperty, strShimPrototype } from \"./Constants\";\r\nimport { getGlobal, objCreateFn, throwTypeError } from \"./Helpers\";\r\n// Most of these functions have been directly shamelessly \"lifted\" from the https://github.com/@microsoft/tslib and\r\n// modified to be ES3 compatible and applying several minification and tree-shaking techniques so that Application Insights\r\n// can successfully use TypeScript \"importHelpers\" which imports tslib during compilation but it will use these at runtime\r\n// Which is also why all of the functions have not been included as Application Insights currently doesn't use or require\r\n// them.\r\nexport var SymbolObj = (getGlobal() || {})[\"Symbol\"];\r\nexport var ReflectObj = (getGlobal() || {})[\"Reflect\"];\r\nexport var __hasSymbol = !!SymbolObj;\r\nexport var __hasReflect = !!ReflectObj;\r\nvar strDecorate = \"decorate\";\r\nvar strMetadata = \"metadata\";\r\nvar strGetOwnPropertySymbols = \"getOwnPropertySymbols\";\r\nvar strIterator = \"iterator\";\r\nexport var __objAssignFnImpl = function (t) {\r\n // tslint:disable-next-line: ban-comma-operator\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) {\r\n if (ObjProto[strShimHasOwnProperty].call(s, p)) {\r\n t[p] = s[p];\r\n }\r\n }\r\n }\r\n return t;\r\n};\r\nexport var __assignFn = ObjAssign || __objAssignFnImpl;\r\n// tslint:disable-next-line: only-arrow-functions\r\nvar extendStaticsFn = function (d, b) {\r\n extendStaticsFn = ObjClass[\"setPrototypeOf\"] ||\r\n // tslint:disable-next-line: only-arrow-functions\r\n ({ __proto__: [] } instanceof Array && function (d, b) {\r\n d.__proto__ = b;\r\n }) ||\r\n // tslint:disable-next-line: only-arrow-functions\r\n function (d, b) {\r\n for (var p in b) {\r\n if (b[strShimHasOwnProperty](p)) {\r\n d[p] = b[p];\r\n }\r\n }\r\n };\r\n return extendStaticsFn(d, b);\r\n};\r\nexport function __extendsFn(d, b) {\r\n if (typeof b !== strShimFunction && b !== null) {\r\n throwTypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n }\r\n extendStaticsFn(d, b);\r\n function __() {\r\n this.constructor = d;\r\n }\r\n // tslint:disable-next-line: ban-comma-operator\r\n d[strShimPrototype] = b === null ? objCreateFn(b) : (__[strShimPrototype] = b[strShimPrototype], new __());\r\n}\r\nexport function __restFn(s, e) {\r\n var t = {};\r\n for (var k in s) {\r\n if (ObjHasOwnProperty.call(s, k) && e.indexOf(k) < 0) {\r\n t[k] = s[k];\r\n }\r\n }\r\n if (s != null && typeof ObjClass[strGetOwnPropertySymbols] === strShimFunction) {\r\n for (var i = 0, p = ObjClass[strGetOwnPropertySymbols](s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && ObjProto[\"propertyIsEnumerable\"].call(s, p[i])) {\r\n t[p[i]] = s[p[i]];\r\n }\r\n }\r\n }\r\n return t;\r\n}\r\nexport function __decorateFn(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = ObjClass[\"getOwnPropertyDescriptor\"](target, key) : desc, d;\r\n if (__hasReflect && typeof ReflectObj[strDecorate] === strShimFunction) {\r\n r = ReflectObj[strDecorate](decorators, target, key, desc);\r\n }\r\n else {\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n // eslint-disable-next-line no-cond-assign\r\n if (d = decorators[i]) {\r\n r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n }\r\n }\r\n }\r\n // tslint:disable-next-line:ban-comma-operator\r\n return c > 3 && r && ObjDefineProperty(target, key, r), r;\r\n}\r\nexport function __paramFn(paramIndex, decorator) {\r\n return function (target, key) {\r\n decorator(target, key, paramIndex);\r\n };\r\n}\r\nexport function __metadataFn(metadataKey, metadataValue) {\r\n if (__hasReflect && ReflectObj[strMetadata] === strShimFunction) {\r\n return ReflectObj[strMetadata](metadataKey, metadataValue);\r\n }\r\n}\r\nexport function __exportStarFn(m, o) {\r\n for (var p in m) {\r\n if (p !== strDefault && !ObjHasOwnProperty.call(o, p)) {\r\n __createBindingFn(o, m, p);\r\n }\r\n }\r\n}\r\nexport function __createBindingFn(o, m, k, k2) {\r\n if (k2 === undefined) {\r\n k2 = k;\r\n }\r\n if (!!ObjCreate) {\r\n ObjDefineProperty(o, k2, {\r\n enumerable: true,\r\n get: function () {\r\n return m[k];\r\n }\r\n });\r\n }\r\n else {\r\n o[k2] = m[k];\r\n }\r\n}\r\nexport function __valuesFn(o) {\r\n var s = typeof SymbolObj === strShimFunction && SymbolObj[strIterator], m = s && o[s], i = 0;\r\n if (m) {\r\n return m.call(o);\r\n }\r\n if (o && typeof o.length === \"number\") {\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) {\r\n o = void 0;\r\n }\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n }\r\n throwTypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\nexport function __readFn(o, n) {\r\n var m = typeof SymbolObj === strShimFunction && o[SymbolObj[strIterator]];\r\n if (!m) {\r\n return o;\r\n }\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\r\n ar.push(r.value);\r\n }\r\n }\r\n catch (error) {\r\n e = {\r\n error: error\r\n };\r\n }\r\n finally {\r\n try {\r\n // tslint:disable-next-line:no-conditional-assignment\r\n if (r && !r.done && (m = i[\"return\"])) {\r\n m.call(i);\r\n }\r\n }\r\n finally {\r\n if (e) {\r\n // eslint-disable-next-line no-unsafe-finally\r\n throw e.error;\r\n }\r\n }\r\n }\r\n return ar;\r\n}\r\n/** @deprecated */\r\nexport function __spreadArraysFn() {\r\n var theArgs = arguments;\r\n // Calculate new total size\r\n for (var s = 0, i = 0, il = theArgs.length; i < il; i++) {\r\n s += theArgs[i].length;\r\n }\r\n // Create new full array\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\r\n for (var a = theArgs[i], j = 0, jl = a.length; j < jl; j++, k++) {\r\n r[k] = a[j];\r\n }\r\n }\r\n return r;\r\n}\r\nexport function __spreadArrayFn(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) {\r\n to[j] = from[i];\r\n }\r\n return to;\r\n}\r\nexport function __makeTemplateObjectFn(cooked, raw) {\r\n if (ObjDefineProperty) {\r\n ObjDefineProperty(cooked, \"raw\", { value: raw });\r\n }\r\n else {\r\n cooked.raw = raw;\r\n }\r\n return cooked;\r\n}\r\nexport function __importStarFn(mod) {\r\n if (mod && mod.__esModule) {\r\n return mod;\r\n }\r\n var result = {};\r\n if (mod != null) {\r\n for (var k in mod) {\r\n if (k !== strDefault && Object.prototype.hasOwnProperty.call(mod, k)) {\r\n __createBindingFn(result, mod, k);\r\n }\r\n }\r\n }\r\n // Set default module\r\n if (!!ObjCreate) {\r\n ObjDefineProperty(result, strDefault, { enumerable: true, value: mod });\r\n }\r\n else {\r\n result[strDefault] = mod;\r\n }\r\n return result;\r\n}\r\nexport function __importDefaultFn(mod) {\r\n return (mod && mod.__esModule) ? mod : { strDefault: mod };\r\n}\r\n//# sourceMappingURL=TsLibShims.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_INITIALIZE = \"initialize\"; // Count: 8\r\nexport var _DYN_NAME = \"name\"; // Count: 11\r\nexport var _DYN_GET_NOTIFY_MGR = \"getNotifyMgr\"; // Count: 3\r\nexport var _DYN_IDENTIFIER = \"identifier\"; // Count: 8\r\nexport var _DYN_PUSH = \"push\"; // Count: 30\r\nexport var _DYN_IS_INITIALIZED = \"isInitialized\"; // Count: 10\r\nexport var _DYN_CONFIG = \"config\"; // Count: 7\r\nexport var _DYN_INSTRUMENTATION_KEY = \"instrumentationKey\"; // Count: 3\r\nexport var _DYN_LOGGER = \"logger\"; // Count: 10\r\nexport var _DYN_LENGTH = \"length\"; // Count: 44\r\nexport var _DYN_TIME = \"time\"; // Count: 5\r\nexport var _DYN_PROCESS_NEXT = \"processNext\"; // Count: 21\r\nexport var _DYN_GET_PROCESS_TEL_CONT0 = \"getProcessTelContext\"; // Count: 2\r\nexport var _DYN_ADD_NOTIFICATION_LIS1 = \"addNotificationListener\"; // Count: 5\r\nexport var _DYN_REMOVE_NOTIFICATION_2 = \"removeNotificationListener\"; // Count: 5\r\nexport var _DYN_STOP_POLLING_INTERNA3 = \"stopPollingInternalLogs\"; // Count: 2\r\nexport var _DYN_ON_COMPLETE = \"onComplete\"; // Count: 6\r\nexport var _DYN_GET_PLUGIN = \"getPlugin\"; // Count: 5\r\nexport var _DYN_FLUSH = \"flush\"; // Count: 5\r\nexport var _DYN__EXTENSIONS = \"_extensions\"; // Count: 4\r\nexport var _DYN_SPLICE = \"splice\"; // Count: 6\r\nexport var _DYN_TEARDOWN = \"teardown\"; // Count: 10\r\nexport var _DYN_MESSAGE_ID = \"messageId\"; // Count: 4\r\nexport var _DYN_MESSAGE = \"message\"; // Count: 7\r\nexport var _DYN_IS_ASYNC = \"isAsync\"; // Count: 7\r\nexport var _DYN__DO_TEARDOWN = \"_doTeardown\"; // Count: 4\r\nexport var _DYN_UPDATE = \"update\"; // Count: 7\r\nexport var _DYN_GET_NEXT = \"getNext\"; // Count: 12\r\nexport var _DYN_DIAG_LOG = \"diagLog\"; // Count: 8\r\nexport var _DYN_SET_NEXT_PLUGIN = \"setNextPlugin\"; // Count: 5\r\nexport var _DYN_CREATE_NEW = \"createNew\"; // Count: 6\r\nexport var _DYN_COOKIE_CFG = \"cookieCfg\"; // Count: 3\r\nexport var _DYN_INDEX_OF = \"indexOf\"; // Count: 6\r\nexport var _DYN_SUBSTRING = \"substring\"; // Count: 10\r\nexport var _DYN_USER_AGENT = \"userAgent\"; // Count: 5\r\nexport var _DYN_SPLIT = \"split\"; // Count: 5\r\nexport var _DYN_SET_ENABLED = \"setEnabled\"; // Count: 5\r\nexport var _DYN_SUBSTR = \"substr\"; // Count: 6\r\nexport var _DYN_NODE_TYPE = \"nodeType\"; // Count: 3\r\nexport var _DYN_APPLY = \"apply\"; // Count: 6\r\nexport var _DYN_REPLACE = \"replace\"; // Count: 10\r\nexport var _DYN_ENABLE_DEBUG_EXCEPTI4 = \"enableDebugExceptions\"; // Count: 2\r\nexport var _DYN_LOG_INTERNAL_MESSAGE = \"logInternalMessage\"; // Count: 2\r\nexport var _DYN_TO_LOWER_CASE = \"toLowerCase\"; // Count: 5\r\nexport var _DYN_CALL = \"call\"; // Count: 18\r\nexport var _DYN_TYPE = \"type\"; // Count: 14\r\nexport var _DYN_HANDLER = \"handler\"; // Count: 5\r\nexport var _DYN_LISTENERS = \"listeners\"; // Count: 6\r\nexport var _DYN_IS_CHILD_EVT = \"isChildEvt\"; // Count: 3\r\nexport var _DYN_GET_CTX = \"getCtx\"; // Count: 6\r\nexport var _DYN_SET_CTX = \"setCtx\"; // Count: 10\r\nexport var _DYN_COMPLETE = \"complete\"; // Count: 3\r\nexport var _DYN_TRACE_ID = \"traceId\"; // Count: 5\r\nexport var _DYN_SPAN_ID = \"spanId\"; // Count: 5\r\nexport var _DYN_TRACE_FLAGS = \"traceFlags\"; // Count: 6\r\nexport var _DYN_VERSION = \"version\"; // Count: 4\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var STR_EMPTY = \"\";\r\nexport var STR_CHANNELS = \"channels\";\r\nexport var STR_CORE = \"core\";\r\nexport var STR_CREATE_PERF_MGR = \"createPerfMgr\";\r\nexport var STR_DISABLED = \"disabled\";\r\nexport var STR_EXTENSION_CONFIG = \"extensionConfig\";\r\nexport var STR_EXTENSIONS = \"extensions\";\r\nexport var STR_PROCESS_TELEMETRY = \"processTelemetry\";\r\nexport var STR_PRIORITY = \"priority\";\r\nexport var STR_EVENTS_SENT = \"eventsSent\";\r\nexport var STR_EVENTS_DISCARDED = \"eventsDiscarded\";\r\nexport var STR_EVENTS_SEND_REQUEST = \"eventsSendRequest\";\r\nexport var STR_PERF_EVENT = \"perfEvent\";\r\nexport var STR_ERROR_TO_CONSOLE = \"errorToConsole\";\r\nexport var STR_WARN_TO_CONSOLE = \"warnToConsole\";\r\nexport var STR_GET_PERF_MGR = \"getPerfMgr\";\r\n//# sourceMappingURL=InternalConstants.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { ObjAssign, ObjClass, ObjDefineProperty, ObjHasOwnProperty, ObjProto, strShimFunction, strShimObject, strShimPrototype, strShimUndefined, throwTypeError } from \"@microsoft/applicationinsights-shims\";\r\nimport { _DYN_APPLY, _DYN_CALL, _DYN_INDEX_OF, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_REPLACE } from \"../__DynamicConstants\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n// RESTRICT and AVOID circular dependencies you should not import other contained modules or export the contents of this file directly\r\n// Added to help with minfication\r\nvar strToISOString = \"toISOString\";\r\nvar cStrEndsWith = \"endsWith\";\r\nvar cStrStartsWith = \"startsWith\";\r\nvar strIndexOf = \"indexOf\";\r\nvar strMap = \"map\";\r\nvar strReduce = \"reduce\";\r\nvar cStrTrim = \"trim\";\r\nvar strToString = \"toString\";\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar str__Proto = \"__proto__\";\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strConstructor = \"constructor\";\r\nvar _objDefineProperty = ObjDefineProperty;\r\nvar _objFreeze = ObjClass.freeze;\r\nvar _objSeal = ObjClass.seal;\r\nvar _objKeys = ObjClass.keys;\r\nvar StringProto = String[strShimPrototype];\r\nvar _strTrim = StringProto[cStrTrim];\r\nvar _strEndsWith = StringProto[cStrEndsWith];\r\nvar _strStartsWith = StringProto[cStrStartsWith];\r\nvar DateProto = Date[strShimPrototype];\r\nvar _dataToISOString = DateProto[strToISOString];\r\nvar _isArray = Array.isArray;\r\nvar _objToString = ObjProto[strToString];\r\nvar _fnToString = ObjHasOwnProperty[strToString];\r\n// Cache what this browser reports as the object function constructor (as a string)\r\nvar _objFunctionString = _fnToString[_DYN_CALL /* @min:%2ecall */](ObjClass);\r\nvar rCamelCase = /-([a-z])/g;\r\nvar rNormalizeInvalid = /([^\\w\\d_$])/g;\r\nvar rLeadingNumeric = /^(\\d+[\\w\\d_$])/;\r\n/**\r\n * Pre-lookup to check if we are running on a modern browser (i.e. not IE8)\r\n * @ignore\r\n */\r\nvar _objGetPrototypeOf = Object[\"getPrototypeOf\"];\r\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 */\r\nexport function _getObjProto(target) {\r\n if (target) {\r\n // This method doesn't existing in older browsers (e.g. IE8)\r\n if (_objGetPrototypeOf) {\r\n return _objGetPrototypeOf(target);\r\n }\r\n // target[Constructor] May break if the constructor has been changed or removed\r\n var newProto = target[str__Proto] || target[strShimPrototype] || target[strConstructor];\r\n if (newProto) {\r\n return newProto;\r\n }\r\n }\r\n return null;\r\n}\r\nexport function objToString(obj) {\r\n return _objToString[_DYN_CALL /* @min:%2ecall */](obj);\r\n}\r\nexport function isTypeof(value, theType) {\r\n return typeof value === theType;\r\n}\r\nexport function isUndefined(value) {\r\n return value === undefined || typeof value === strShimUndefined;\r\n}\r\nexport function isNotUndefined(value) {\r\n return !isUndefined(value);\r\n}\r\nexport function isNullOrUndefined(value) {\r\n return (value === null || isUndefined(value));\r\n}\r\nexport function isNotNullOrUndefined(value) {\r\n return !isNullOrUndefined(value);\r\n}\r\nexport function hasOwnProperty(obj, prop) {\r\n return !!(obj && ObjHasOwnProperty[_DYN_CALL /* @min:%2ecall */](obj, prop));\r\n}\r\nexport function isObject(value) {\r\n // Changing to inline for performance\r\n return !!(value && typeof value === strShimObject);\r\n}\r\nexport function isFunction(value) {\r\n // Changing to inline for performance\r\n return !!(value && typeof value === strShimFunction);\r\n}\r\nexport function isPromiseLike(value) {\r\n return value && isFunction(value.then);\r\n}\r\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 */\r\nexport function normalizeJsName(name) {\r\n var value = name;\r\n if (value && isString(value)) {\r\n // CamelCase everything after the \"-\" and remove the dash\r\n value = value[_DYN_REPLACE /* @min:%2ereplace */](rCamelCase, function (_all, letter) {\r\n return letter.toUpperCase();\r\n });\r\n value = value[_DYN_REPLACE /* @min:%2ereplace */](rNormalizeInvalid, \"_\");\r\n value = value[_DYN_REPLACE /* @min:%2ereplace */](rLeadingNumeric, function (_all, match) {\r\n return \"_\" + match;\r\n });\r\n }\r\n return value;\r\n}\r\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 */\r\nexport function objForEachKey(target, callbackfn) {\r\n if (target) {\r\n for (var prop in target) {\r\n if (ObjHasOwnProperty[_DYN_CALL /* @min:%2ecall */](target, prop)) {\r\n callbackfn[_DYN_CALL /* @min:%2ecall */](target, prop, target[prop]);\r\n }\r\n }\r\n }\r\n}\r\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 */\r\nexport function strEndsWith(value, search) {\r\n var result = false;\r\n if (value && search && !(result = value === search)) {\r\n // For Performance try and use the native instance, using string lookup of the function to easily pass the ES3 build checks and minification\r\n result = _strEndsWith ? value[cStrEndsWith](search) : _strEndsWithPoly(value, search);\r\n }\r\n return result;\r\n}\r\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 */\r\nexport function _strEndsWithPoly(value, search) {\r\n var result = false;\r\n var searchLen = search ? search[_DYN_LENGTH /* @min:%2elength */] : 0;\r\n var valLen = value ? value[_DYN_LENGTH /* @min:%2elength */] : 0;\r\n if (searchLen && valLen && valLen >= searchLen && !(result = value === search)) {\r\n var pos = valLen - 1;\r\n for (var lp = searchLen - 1; lp >= 0; lp--) {\r\n if (value[pos] != search[lp]) {\r\n return false;\r\n }\r\n pos--;\r\n }\r\n result = true;\r\n }\r\n return result;\r\n}\r\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 */\r\nexport function strStartsWith(value, checkValue) {\r\n var result = false;\r\n if (value && checkValue && !(result = value === checkValue)) {\r\n // For Performance try and use the native instance, using string lookup of the function to easily pass the ES3 build checks and minification\r\n result = _strStartsWith ? value[cStrStartsWith](checkValue) : _strStartsWithPoly(value, checkValue);\r\n }\r\n return result;\r\n}\r\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 */\r\nexport function _strStartsWithPoly(value, checkValue) {\r\n // Using helper for performance and because string startsWith() is not available on IE\r\n var result = false;\r\n var chkLen = checkValue ? checkValue[_DYN_LENGTH /* @min:%2elength */] : 0;\r\n if (value && chkLen && value[_DYN_LENGTH /* @min:%2elength */] >= chkLen && !(result = value === checkValue)) {\r\n for (var lp = 0; lp < chkLen; lp++) {\r\n if (value[lp] !== checkValue[lp]) {\r\n return false;\r\n }\r\n }\r\n result = true;\r\n }\r\n return result;\r\n}\r\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 */\r\nexport function strContains(value, search) {\r\n if (value && search) {\r\n return value[_DYN_INDEX_OF /* @min:%2eindexOf */](search) !== -1;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Check if an object is of type Date\r\n */\r\nexport function isDate(obj) {\r\n return !!(obj && _objToString[_DYN_CALL /* @min:%2ecall */](obj) === \"[object Date]\");\r\n}\r\n/**\r\n * Check if an object is of type Array with optional generic T, the generic type is not validated\r\n * and exists to help with TypeScript validation only.\r\n */\r\nexport var isArray = _isArray || _isArrayPoly;\r\nfunction _isArrayPoly(obj) {\r\n return !!(obj && _objToString[_DYN_CALL /* @min:%2ecall */](obj) === \"[object Array]\");\r\n}\r\n/**\r\n * Check if an object is of type Error\r\n */\r\nexport function isError(obj) {\r\n return !!(obj && _objToString[_DYN_CALL /* @min:%2ecall */](obj) === \"[object Error]\");\r\n}\r\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 */\r\nexport function isString(value) {\r\n // Changing to inline for performance\r\n return typeof value === \"string\";\r\n}\r\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 */\r\nexport function isNumber(value) {\r\n // Changing to inline for performance\r\n return typeof value === \"number\";\r\n}\r\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 */\r\nexport function isBoolean(value) {\r\n // Changing to inline for performance\r\n return typeof value === \"boolean\";\r\n}\r\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 */\r\nexport function isSymbol(value) {\r\n return typeof value === \"symbol\";\r\n}\r\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 */\r\nexport function isPlainObject(value) {\r\n var result = false;\r\n if (value && typeof value === \"object\") {\r\n // Inlining _objGetPrototypeOf for performance to avoid an additional function call\r\n var proto = _objGetPrototypeOf ? _objGetPrototypeOf(value) : _getObjProto(value);\r\n if (!proto) {\r\n // No prototype found so this is a plain Object eg. 'Object.create(null)'\r\n result = true;\r\n }\r\n else {\r\n // Objects that have a prototype are plain only if they were created using the Object global (native) function\r\n if (proto[strConstructor] && ObjHasOwnProperty[_DYN_CALL /* @min:%2ecall */](proto, strConstructor)) {\r\n proto = proto[strConstructor];\r\n }\r\n result = typeof proto === strShimFunction && _fnToString[_DYN_CALL /* @min:%2ecall */](proto) === _objFunctionString;\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * Convert a date to I.S.O. format in IE8\r\n */\r\nexport function toISOString(date) {\r\n if (date) {\r\n // For Performance try and use the native instance, using string lookup of the function to easily pass the ES3 build checks and minification\r\n return _dataToISOString ? date[strToISOString]() : _toISOStringPoly(date);\r\n }\r\n}\r\n/**\r\n * Convert a date to I.S.O. format in IE8\r\n */\r\nexport function _toISOStringPoly(date) {\r\n if (date && date.getUTCFullYear) {\r\n var pad = function (num) {\r\n var r = String(num);\r\n if (r[_DYN_LENGTH /* @min:%2elength */] === 1) {\r\n r = \"0\" + r;\r\n }\r\n return r;\r\n };\r\n return date.getUTCFullYear()\r\n + \"-\" + pad(date.getUTCMonth() + 1)\r\n + \"-\" + pad(date.getUTCDate())\r\n + \"T\" + pad(date.getUTCHours())\r\n + \":\" + pad(date.getUTCMinutes())\r\n + \":\" + pad(date.getUTCSeconds())\r\n + \".\" + String((date.getUTCMilliseconds() / 1000).toFixed(3)).slice(2, 5)\r\n + \"Z\";\r\n }\r\n}\r\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 */\r\nexport function arrForEach(arr, callbackfn, thisArg) {\r\n var len = arr[_DYN_LENGTH /* @min:%2elength */];\r\n try {\r\n for (var idx = 0; idx < len; idx++) {\r\n if (idx in arr) {\r\n if (callbackfn[_DYN_CALL /* @min:%2ecall */](thisArg || arr, arr[idx], idx, arr) === -1) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n}\r\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 */\r\nexport function arrIndexOf(arr, searchElement, fromIndex) {\r\n if (arr) {\r\n // For Performance try and use the native instance, using string lookup of the function to easily pass the ES3 build checks and minification\r\n if (arr[strIndexOf]) {\r\n return arr[strIndexOf](searchElement, fromIndex);\r\n }\r\n var len = arr[_DYN_LENGTH /* @min:%2elength */];\r\n var from = fromIndex || 0;\r\n try {\r\n for (var lp = Math.max(from >= 0 ? from : len - Math.abs(from), 0); lp < len; lp++) {\r\n if (lp in arr && arr[lp] === searchElement) {\r\n return lp;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n }\r\n return -1;\r\n}\r\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 */\r\nexport function arrMap(arr, callbackfn, thisArg) {\r\n var results;\r\n if (arr) {\r\n // For Performance try and use the native instance, using string lookup of the function to easily pass the ES3 build checks and minification\r\n if (arr[strMap]) {\r\n return arr[strMap](callbackfn, thisArg);\r\n }\r\n var len = arr[_DYN_LENGTH /* @min:%2elength */];\r\n var _this = thisArg || arr;\r\n results = new Array(len);\r\n try {\r\n for (var lp = 0; lp < len; lp++) {\r\n if (lp in arr) {\r\n results[lp] = callbackfn[_DYN_CALL /* @min:%2ecall */](_this, arr[lp], arr);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n }\r\n return results;\r\n}\r\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 */\r\nexport function arrReduce(arr, callbackfn, initialValue) {\r\n var value;\r\n if (arr) {\r\n // For Performance try and use the native instance, using string lookup of the function to easily pass the ES3 build checks and minification\r\n if (arr[strReduce]) {\r\n return arr[strReduce](callbackfn, initialValue);\r\n }\r\n var len = arr[_DYN_LENGTH /* @min:%2elength */];\r\n var lp = 0;\r\n // Specifically checking the number of passed arguments as the value could be anything\r\n if (arguments[_DYN_LENGTH /* @min:%2elength */] >= 3) {\r\n value = arguments[2];\r\n }\r\n else {\r\n while (lp < len && !(lp in arr)) {\r\n lp++;\r\n }\r\n value = arr[lp++];\r\n }\r\n while (lp < len) {\r\n if (lp in arr) {\r\n value = callbackfn(value, arr[lp], lp, arr);\r\n }\r\n lp++;\r\n }\r\n }\r\n return value;\r\n}\r\n/**\r\n * helper method to trim strings (IE8 does not implement String.prototype.trim)\r\n */\r\nexport function strTrim(str) {\r\n if (str) {\r\n // For Performance try and use the native instance, using string lookup of the function to easily pass the ES3 build checks and minification\r\n str = (_strTrim && str[cStrTrim]) ? str[cStrTrim]() : (str[_DYN_REPLACE /* @min:%2ereplace */] ? str[_DYN_REPLACE /* @min:%2ereplace */](/^\\s+|(?=\\s)\\s+$/g, STR_EMPTY) : str);\r\n }\r\n return str;\r\n}\r\nvar _objKeysHasDontEnumBug = !({ toString: null }).propertyIsEnumerable(\"toString\");\r\nvar _objKeysDontEnums = [\r\n \"toString\",\r\n \"toLocaleString\",\r\n \"valueOf\",\r\n \"hasOwnProperty\",\r\n \"isPrototypeOf\",\r\n \"propertyIsEnumerable\",\r\n \"constructor\"\r\n];\r\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 */\r\nexport function objKeys(obj) {\r\n var objType = typeof obj;\r\n if (objType !== strShimFunction && (objType !== strShimObject || obj === null)) {\r\n throwTypeError(\"objKeys called on non-object\");\r\n }\r\n // For Performance try and use the native instance, using string lookup of the function to easily pass the ES3 build checks and minification\r\n if (!_objKeysHasDontEnumBug && _objKeys) {\r\n return _objKeys(obj);\r\n }\r\n var result = [];\r\n for (var prop in obj) {\r\n if (obj && ObjHasOwnProperty[_DYN_CALL /* @min:%2ecall */](obj, prop)) {\r\n result[_DYN_PUSH /* @min:%2epush */](prop);\r\n }\r\n }\r\n if (_objKeysHasDontEnumBug) {\r\n var dontEnumsLength = _objKeysDontEnums[_DYN_LENGTH /* @min:%2elength */];\r\n for (var lp = 0; lp < dontEnumsLength; lp++) {\r\n if (obj && ObjHasOwnProperty[_DYN_CALL /* @min:%2ecall */](obj, _objKeysDontEnums[lp])) {\r\n result[_DYN_PUSH /* @min:%2epush */](_objKeysDontEnums[lp]);\r\n }\r\n }\r\n }\r\n return result;\r\n}\r\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 */\r\nexport function objDefineAccessors(target, prop, getProp, setProp) {\r\n if (_objDefineProperty) {\r\n try {\r\n var descriptor = {\r\n enumerable: true,\r\n configurable: true\r\n };\r\n if (getProp) {\r\n descriptor.get = getProp;\r\n }\r\n if (setProp) {\r\n descriptor.set = setProp;\r\n }\r\n _objDefineProperty(target, prop, descriptor);\r\n return true;\r\n }\r\n catch (e) {\r\n // IE8 Defines a defineProperty on Object but it's only supported for DOM elements so it will throw\r\n // We will just ignore this here.\r\n }\r\n }\r\n return false;\r\n}\r\nfunction _doNothing(value) {\r\n return value;\r\n}\r\nexport function deepFreeze(obj) {\r\n if (_objFreeze) {\r\n objForEachKey(obj, function (name, value) {\r\n if (isArray(value) || isObject(value)) {\r\n _objFreeze(value);\r\n }\r\n });\r\n }\r\n return objFreeze(obj);\r\n}\r\nexport var objFreeze = _objFreeze || _doNothing;\r\nexport var objSeal = _objSeal || _doNothing;\r\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 */\r\nexport function dateNow() {\r\n var dt = Date;\r\n return dt.now ? dt.now() : new dt().getTime();\r\n}\r\n/**\r\n * Returns the name of object if it's an Error. Otherwise, returns empty string.\r\n */\r\nexport function getExceptionName(object) {\r\n if (isError(object)) {\r\n return object[_DYN_NAME /* @min:%2ename */];\r\n }\r\n return STR_EMPTY;\r\n}\r\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 */\r\nexport function setValue(target, field, value, valChk, srcChk) {\r\n var theValue = value;\r\n if (target) {\r\n theValue = target[field];\r\n if (theValue !== value && (!srcChk || srcChk(theValue)) && (!valChk || valChk(value))) {\r\n theValue = value;\r\n target[field] = theValue;\r\n }\r\n }\r\n return theValue;\r\n}\r\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 */\r\nexport function getSetValue(target, field, defValue) {\r\n var theValue;\r\n if (target) {\r\n theValue = target[field];\r\n if (!theValue && isNullOrUndefined(theValue)) {\r\n // Supports having the default as null\r\n theValue = !isUndefined(defValue) ? defValue : {};\r\n target[field] = theValue;\r\n }\r\n }\r\n else {\r\n // Expanded for performance so we only check defValue if required\r\n theValue = !isUndefined(defValue) ? defValue : {};\r\n }\r\n return theValue;\r\n}\r\n/**\r\n * Get the mapped config value, if null or undefined any supplied defaultValue will be returned.\r\n * @param field - The name of the field as the named enum value (number) or the string name.\r\n * @param defaultValue - The default value to return if the config field is not present, null or undefined.\r\n */\r\nexport function getCfgValue(theValue, defaultValue) {\r\n return !isNullOrUndefined(theValue) ? theValue : defaultValue;\r\n}\r\nexport function isNotTruthy(value) {\r\n return !value;\r\n}\r\nexport function isTruthy(value) {\r\n return !!value;\r\n}\r\nexport function throwError(message) {\r\n throw new Error(message);\r\n}\r\nfunction _createProxyFunction(source, funcName) {\r\n var srcFunc = null;\r\n var src = null;\r\n if (isFunction(source)) {\r\n srcFunc = source;\r\n }\r\n else {\r\n src = source;\r\n }\r\n return function () {\r\n // Capture the original arguments passed to the method\r\n var originalArguments = arguments;\r\n if (srcFunc) {\r\n src = srcFunc();\r\n }\r\n if (src) {\r\n return src[funcName][_DYN_APPLY /* @min:%2eapply */](src, originalArguments);\r\n }\r\n };\r\n}\r\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 */\r\nexport function proxyAssign(target, source, chkSet) {\r\n if (target && source && isObject(target) && isObject(source)) {\r\n var _loop_1 = function (field) {\r\n if (isString(field)) {\r\n var value = source[field];\r\n if (isFunction(value)) {\r\n if (!chkSet || chkSet(field, true, source, target)) {\r\n // Create a proxy function rather than just copying the (possible) prototype to the new object as an instance function\r\n target[field] = _createProxyFunction(source, field);\r\n }\r\n }\r\n else if (!chkSet || chkSet(field, false, source, target)) {\r\n if (hasOwnProperty(target, field)) {\r\n // Remove any previous instance property\r\n delete target[field];\r\n }\r\n if (!objDefineAccessors(target, field, function () {\r\n return source[field];\r\n }, function (theValue) {\r\n source[field] = theValue;\r\n })) {\r\n // Unable to create an accessor, so just assign the values as a fallback\r\n // -- this will (mostly) work for objects\r\n // -- but will fail for accessing primitives (if the source changes it) and all types of \"setters\" as the source won't be modified\r\n target[field] = value;\r\n }\r\n }\r\n }\r\n };\r\n // effectively apply/proxy full source to the target instance\r\n for (var field in source) {\r\n _loop_1(field);\r\n }\r\n }\r\n return target;\r\n}\r\n/**\r\n * Creates a proxy function on the target which internally will call the source version with all arguments passed to the target method.\r\n *\r\n * @param target - The target object to be assigned with the source properties and functions\r\n * @param name - The function name that will be added on the target\r\n * @param source - The source object which will be assigned / called by setting / calling the targets proxies\r\n * @param theFunc - The function name on the source that will be proxied on the target\r\n * @param overwriteTarget - If `false` this will not replace any pre-existing name otherwise (the default) it will overwrite any existing name\r\n */\r\nexport function proxyFunctionAs(target, name, source, theFunc, overwriteTarget) {\r\n if (target && name && source) {\r\n if (overwriteTarget !== false || isUndefined(target[name])) {\r\n target[name] = _createProxyFunction(source, theFunc);\r\n }\r\n }\r\n}\r\n/**\r\n * Creates proxy functions on the target which internally will call the source version with all arguments passed to the target method.\r\n *\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 functionsToProxy - An array of function names that will be proxied on the target\r\n * @param overwriteTarget - If false this will not replace any pre-existing name otherwise (the default) it will overwrite any existing name\r\n */\r\nexport function proxyFunctions(target, source, functionsToProxy, overwriteTarget) {\r\n if (target && source && isObject(target) && isArray(functionsToProxy)) {\r\n arrForEach(functionsToProxy, function (theFuncName) {\r\n if (isString(theFuncName)) {\r\n proxyFunctionAs(target, theFuncName, source, theFuncName, overwriteTarget);\r\n }\r\n });\r\n }\r\n return target;\r\n}\r\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 */\r\nexport function createClassFromInterface(defaults) {\r\n return /** @class */ (function () {\r\n function class_1() {\r\n var _this_1 = this;\r\n if (defaults) {\r\n objForEachKey(defaults, function (field, value) {\r\n _this_1[field] = value;\r\n });\r\n }\r\n }\r\n return class_1;\r\n }());\r\n}\r\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 */\r\nexport function optimizeObject(theObject) {\r\n // V8 Optimization to cause the JIT compiler to create a new optimized object for looking up the own properties\r\n // primarily for object with <= 19 properties for >= 20 the effect is reduced or non-existent\r\n if (theObject && ObjAssign) {\r\n theObject = ObjClass(ObjAssign({}, theObject));\r\n }\r\n return theObject;\r\n}\r\nexport function objExtend(obj1, obj2, obj3, obj4, obj5, obj6) {\r\n // Variables\r\n var theArgs = arguments;\r\n var extended = theArgs[0] || {};\r\n var argLen = theArgs[_DYN_LENGTH /* @min:%2elength */];\r\n var deep = false;\r\n var idx = 1;\r\n // Check for \"Deep\" flag\r\n if (argLen > 0 && isBoolean(extended)) {\r\n deep = extended;\r\n extended = theArgs[idx] || {};\r\n idx++;\r\n }\r\n // Handle case when target is a string or something (possible in deep copy)\r\n if (!isObject(extended)) {\r\n extended = {};\r\n }\r\n // Loop through each remaining object and conduct a merge\r\n for (; idx < argLen; idx++) {\r\n var arg = theArgs[idx];\r\n var isArgArray = isArray(arg);\r\n var isArgObj = isObject(arg);\r\n for (var prop in arg) {\r\n var propOk = (isArgArray && (prop in arg)) || (isArgObj && (ObjHasOwnProperty[_DYN_CALL /* @min:%2ecall */](arg, prop)));\r\n if (!propOk) {\r\n continue;\r\n }\r\n var newValue = arg[prop];\r\n var isNewArray = void 0;\r\n // If deep merge and property is an object, merge properties\r\n if (deep && newValue && ((isNewArray = isArray(newValue)) || isPlainObject(newValue))) {\r\n // Grab the current value of the extended object\r\n var clone = extended[prop];\r\n if (isNewArray) {\r\n if (!isArray(clone)) {\r\n // We can't \"merge\" an array with a non-array so overwrite the original\r\n clone = [];\r\n }\r\n }\r\n else if (!isPlainObject(clone)) {\r\n // We can't \"merge\" an object with a non-object\r\n clone = {};\r\n }\r\n // Never move the original objects always clone them\r\n newValue = objExtend(deep, clone, newValue);\r\n }\r\n // Assign the new (or previous) value (unless undefined)\r\n if (newValue !== undefined) {\r\n extended[prop] = newValue;\r\n }\r\n }\r\n }\r\n return extended;\r\n}\r\n//# sourceMappingURL=HelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_SPLIT = \"split\"; // Count: 6\r\nexport var _DYN_LENGTH = \"length\"; // Count: 41\r\nexport var _DYN_TO_LOWER_CASE = \"toLowerCase\"; // Count: 6\r\nexport var _DYN_INGESTIONENDPOINT = \"ingestionendpoint\"; // Count: 4\r\nexport var _DYN_TO_STRING = \"toString\"; // Count: 12\r\nexport var _DYN_REMOVE_ITEM = \"removeItem\"; // Count: 3\r\nexport var _DYN_NAME = \"name\"; // Count: 11\r\nexport var _DYN_MESSAGE = \"message\"; // Count: 10\r\nexport var _DYN_COUNT = \"count\"; // Count: 8\r\nexport var _DYN_PRE_TRIGGER_DATE = \"preTriggerDate\"; // Count: 4\r\nexport var _DYN_DISABLED = \"disabled\"; // Count: 3\r\nexport var _DYN_INTERVAL = \"interval\"; // Count: 3\r\nexport var _DYN_DAYS_OF_MONTH = \"daysOfMonth\"; // Count: 3\r\nexport var _DYN_DATE = \"date\"; // Count: 5\r\nexport var _DYN_GET_UTCDATE = \"getUTCDate\"; // Count: 3\r\nexport var _DYN_STRINGIFY = \"stringify\"; // Count: 4\r\nexport var _DYN_PATHNAME = \"pathname\"; // Count: 4\r\nexport var _DYN_CORRELATION_HEADER_E0 = \"correlationHeaderExcludePatterns\"; // Count: 2\r\nexport var _DYN_INDEX_OF = \"indexOf\"; // Count: 4\r\nexport var _DYN_EXTENSION_CONFIG = \"extensionConfig\"; // Count: 4\r\nexport var _DYN_EXCEPTIONS = \"exceptions\"; // Count: 6\r\nexport var _DYN_PARSED_STACK = \"parsedStack\"; // Count: 13\r\nexport var _DYN_PROPERTIES = \"properties\"; // Count: 9\r\nexport var _DYN_MEASUREMENTS = \"measurements\"; // Count: 9\r\nexport var _DYN_SIZE_IN_BYTES = \"sizeInBytes\"; // Count: 11\r\nexport var _DYN_TYPE_NAME = \"typeName\"; // Count: 11\r\nexport var _DYN_SEVERITY_LEVEL = \"severityLevel\"; // Count: 5\r\nexport var _DYN_PROBLEM_GROUP = \"problemGroup\"; // Count: 3\r\nexport var _DYN_IS_MANUAL = \"isManual\"; // Count: 3\r\nexport var _DYN__CREATE_FROM_INTERFA1 = \"CreateFromInterface\"; // Count: 2\r\nexport var _DYN_ASSEMBLY = \"assembly\"; // Count: 7\r\nexport var _DYN_HAS_FULL_STACK = \"hasFullStack\"; // Count: 6\r\nexport var _DYN_LEVEL = \"level\"; // Count: 5\r\nexport var _DYN_METHOD = \"method\"; // Count: 7\r\nexport var _DYN_FILE_NAME = \"fileName\"; // Count: 6\r\nexport var _DYN_LINE = \"line\"; // Count: 6\r\nexport var _DYN_DURATION = \"duration\"; // Count: 4\r\nexport var _DYN_RECEIVED_RESPONSE = \"receivedResponse\"; // Count: 2\r\nexport var _DYN_SUBSTRING = \"substring\"; // Count: 6\r\nexport var _DYN_SANITIZE_KEY_AND_ADD2 = \"sanitizeKeyAndAddUniqueness\"; // Count: 2\r\nexport var _DYN_SANITIZE_EXCEPTION = \"sanitizeException\"; // Count: 2\r\nexport var _DYN_SANITIZE_PROPERTIES = \"sanitizeProperties\"; // Count: 2\r\nexport var _DYN_SANITIZE_MEASUREMENT3 = \"sanitizeMeasurements\"; // Count: 2\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, isString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_LENGTH, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\nvar strEmpty = \"\";\r\nexport function stringToBoolOrDefault(str, defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = false; }\r\n if (str === undefined || str === null) {\r\n return defaultValue;\r\n }\r\n return str.toString()[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() === \"true\";\r\n}\r\n/**\r\n * Convert ms to c# time span format\r\n */\r\nexport function msToTimeSpan(totalms) {\r\n if (isNaN(totalms) || totalms < 0) {\r\n totalms = 0;\r\n }\r\n totalms = Math.round(totalms);\r\n var ms = strEmpty + totalms % 1000;\r\n var sec = strEmpty + Math.floor(totalms / 1000) % 60;\r\n var min = strEmpty + Math.floor(totalms / (1000 * 60)) % 60;\r\n var hour = strEmpty + Math.floor(totalms / (1000 * 60 * 60)) % 24;\r\n var days = Math.floor(totalms / (1000 * 60 * 60 * 24));\r\n ms = ms[_DYN_LENGTH /* @min:%2elength */] === 1 ? \"00\" + ms : ms[_DYN_LENGTH /* @min:%2elength */] === 2 ? \"0\" + ms : ms;\r\n sec = sec[_DYN_LENGTH /* @min:%2elength */] < 2 ? \"0\" + sec : sec;\r\n min = min[_DYN_LENGTH /* @min:%2elength */] < 2 ? \"0\" + min : min;\r\n hour = hour[_DYN_LENGTH /* @min:%2elength */] < 2 ? \"0\" + hour : hour;\r\n return (days > 0 ? days + \".\" : strEmpty) + hour + \":\" + min + \":\" + sec + \".\" + ms;\r\n}\r\nexport function getExtensionByName(extensions, identifier) {\r\n var extension = null;\r\n arrForEach(extensions, function (value) {\r\n if (value.identifier === identifier) {\r\n extension = value;\r\n return -1;\r\n }\r\n });\r\n return extension;\r\n}\r\nexport function isCrossOriginError(message, url, lineNumber, columnNumber, error) {\r\n return !error && isString(message) && (message === \"Script error.\" || message === \"Script error\");\r\n}\r\n//# sourceMappingURL=HelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { getGlobal, strShimObject, strShimPrototype, strShimUndefined } from \"@microsoft/applicationinsights-shims\";\r\nimport { _DYN_CALL, _DYN_INDEX_OF, _DYN_LENGTH, _DYN_NAME, _DYN_SPLIT, _DYN_TO_LOWER_CASE, _DYN_USER_AGENT } from \"../__DynamicConstants\";\r\nimport { isString, isUndefined, strContains } from \"./HelperFuncs\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\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 */\r\nvar strWindow = \"window\";\r\nvar strDocument = \"document\";\r\nvar strDocumentMode = \"documentMode\";\r\nvar strNavigator = \"navigator\";\r\nvar strHistory = \"history\";\r\nvar strLocation = \"location\";\r\nvar strConsole = \"console\";\r\nvar strPerformance = \"performance\";\r\nvar strJSON = \"JSON\";\r\nvar strCrypto = \"crypto\";\r\nvar strMsCrypto = \"msCrypto\";\r\nvar strReactNative = \"ReactNative\";\r\nvar strMsie = \"msie\";\r\nvar strTrident = \"trident/\";\r\nvar strXMLHttpRequest = \"XMLHttpRequest\";\r\nvar _isTrident = null;\r\nvar _navUserAgentCheck = null;\r\nvar _enableMocks = false;\r\nvar _useXDomainRequest = null;\r\nvar _beaconsSupported = null;\r\nfunction _hasProperty(theClass, property) {\r\n var supported = false;\r\n if (theClass) {\r\n try {\r\n supported = property in theClass;\r\n if (!supported) {\r\n var proto = theClass[strShimPrototype];\r\n if (proto) {\r\n supported = property in proto;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // Do Nothing\r\n }\r\n if (!supported) {\r\n try {\r\n var tmp = new theClass();\r\n supported = !isUndefined(tmp[property]);\r\n }\r\n catch (e) {\r\n // Do Nothing\r\n }\r\n }\r\n }\r\n return supported;\r\n}\r\n/**\r\n * Enable the lookup of test mock objects if requested\r\n * @param enabled\r\n */\r\nexport function setEnableEnvMocks(enabled) {\r\n _enableMocks = enabled;\r\n}\r\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 */\r\nexport function getGlobalInst(name) {\r\n var gbl = getGlobal();\r\n if (gbl && gbl[name]) {\r\n return gbl[name];\r\n }\r\n // Test workaround, for environments where .window (when global == window) doesn't return the base window\r\n if (name === strWindow && hasWindow()) {\r\n // tslint:disable-next-line: no-angle-bracket-type-assertion\r\n return window;\r\n }\r\n return null;\r\n}\r\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 */\r\nexport function hasWindow() {\r\n return Boolean(typeof window === strShimObject && window);\r\n}\r\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 */\r\nexport function getWindow() {\r\n if (hasWindow()) {\r\n return window;\r\n }\r\n // Return the global instance or null\r\n return getGlobalInst(strWindow);\r\n}\r\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 */\r\nexport function hasDocument() {\r\n return Boolean(typeof document === strShimObject && document);\r\n}\r\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 */\r\nexport function getDocument() {\r\n if (hasDocument()) {\r\n return document;\r\n }\r\n return getGlobalInst(strDocument);\r\n}\r\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 */\r\nexport function hasNavigator() {\r\n return Boolean(typeof navigator === strShimObject && navigator);\r\n}\r\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 */\r\nexport function getNavigator() {\r\n if (hasNavigator()) {\r\n return navigator;\r\n }\r\n return getGlobalInst(strNavigator);\r\n}\r\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 */\r\nexport function hasHistory() {\r\n return Boolean(typeof history === strShimObject && history);\r\n}\r\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 */\r\nexport function getHistory() {\r\n if (hasHistory()) {\r\n return history;\r\n }\r\n return getGlobalInst(strHistory);\r\n}\r\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 */\r\nexport function getLocation(checkForMock) {\r\n if (checkForMock && _enableMocks) {\r\n var mockLocation = getGlobalInst(\"__mockLocation\");\r\n if (mockLocation) {\r\n return mockLocation;\r\n }\r\n }\r\n if (typeof location === strShimObject && location) {\r\n return location;\r\n }\r\n return getGlobalInst(strLocation);\r\n}\r\n/**\r\n * Returns the global console object\r\n */\r\nexport function getConsole() {\r\n if (typeof console !== strShimUndefined) {\r\n return console;\r\n }\r\n return getGlobalInst(strConsole);\r\n}\r\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 */\r\nexport function getPerformance() {\r\n return getGlobalInst(strPerformance);\r\n}\r\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 */\r\nexport function hasJSON() {\r\n return Boolean((typeof JSON === strShimObject && JSON) || getGlobalInst(strJSON) !== null);\r\n}\r\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 */\r\nexport function getJSON() {\r\n if (hasJSON()) {\r\n return JSON || getGlobalInst(strJSON);\r\n }\r\n return null;\r\n}\r\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 */\r\nexport function getCrypto() {\r\n return getGlobalInst(strCrypto);\r\n}\r\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 */\r\nexport function getMsCrypto() {\r\n return getGlobalInst(strMsCrypto);\r\n}\r\n/**\r\n * Returns whether the environment is reporting that we are running in a React Native Environment\r\n */\r\nexport function isReactNative() {\r\n // If running in React Native, navigator.product will be populated\r\n var nav = getNavigator();\r\n if (nav && nav.product) {\r\n return nav.product === strReactNative;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Identifies whether the current environment appears to be IE\r\n */\r\nexport function isIE() {\r\n var nav = getNavigator();\r\n if (nav && (nav[_DYN_USER_AGENT /* @min:%2euserAgent */] !== _navUserAgentCheck || _isTrident === null)) {\r\n // Added to support test mocking of the user agent\r\n _navUserAgentCheck = nav[_DYN_USER_AGENT /* @min:%2euserAgent */];\r\n var userAgent = (_navUserAgentCheck || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n _isTrident = (strContains(userAgent, strMsie) || strContains(userAgent, strTrident));\r\n }\r\n return _isTrident;\r\n}\r\n/**\r\n * Gets IE version returning the document emulation mode if we are running on IE, or null otherwise\r\n */\r\nexport function getIEVersion(userAgentStr) {\r\n if (userAgentStr === void 0) { userAgentStr = null; }\r\n if (!userAgentStr) {\r\n var navigator_1 = getNavigator() || {};\r\n userAgentStr = navigator_1 ? (navigator_1[_DYN_USER_AGENT /* @min:%2euserAgent */] || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() : STR_EMPTY;\r\n }\r\n var ua = (userAgentStr || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n // Also check for documentMode in case X-UA-Compatible meta tag was included in HTML.\r\n if (strContains(ua, strMsie)) {\r\n var doc = getDocument() || {};\r\n return Math.max(parseInt(ua[_DYN_SPLIT /* @min:%2esplit */](strMsie)[1]), (doc[strDocumentMode] || 0));\r\n }\r\n else if (strContains(ua, strTrident)) {\r\n var tridentVer = parseInt(ua[_DYN_SPLIT /* @min:%2esplit */](strTrident)[1]);\r\n if (tridentVer) {\r\n return tridentVer + 4;\r\n }\r\n }\r\n return null;\r\n}\r\n/**\r\n * Returns string representation of an object suitable for diagnostics logging.\r\n */\r\nexport function dumpObj(object) {\r\n var objectTypeDump = Object[strShimPrototype].toString[_DYN_CALL /* @min:%2ecall */](object);\r\n var propertyValueDump = STR_EMPTY;\r\n if (objectTypeDump === \"[object Error]\") {\r\n propertyValueDump = \"{ stack: '\" + object.stack + \"', message: '\" + object.message + \"', name: '\" + object[_DYN_NAME /* @min:%2ename */] + \"'\";\r\n }\r\n else if (hasJSON()) {\r\n propertyValueDump = getJSON().stringify(object);\r\n }\r\n return objectTypeDump + propertyValueDump;\r\n}\r\nexport function isSafari(userAgentStr) {\r\n if (!userAgentStr || !isString(userAgentStr)) {\r\n var navigator_2 = getNavigator() || {};\r\n userAgentStr = navigator_2 ? (navigator_2[_DYN_USER_AGENT /* @min:%2euserAgent */] || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() : STR_EMPTY;\r\n }\r\n var ua = (userAgentStr || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n return (ua[_DYN_INDEX_OF /* @min:%2eindexOf */](\"safari\") >= 0);\r\n}\r\n/**\r\n * Checks if HTML5 Beacons are supported in the current environment.\r\n * @returns True if supported, false otherwise.\r\n */\r\nexport function isBeaconsSupported() {\r\n if (_beaconsSupported === null) {\r\n _beaconsSupported = hasNavigator() && Boolean(getNavigator().sendBeacon);\r\n }\r\n return _beaconsSupported;\r\n}\r\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 */\r\nexport function isFetchSupported(withKeepAlive) {\r\n var isSupported = false;\r\n try {\r\n isSupported = !!getGlobalInst(\"fetch\");\r\n var request = getGlobalInst(\"Request\");\r\n if (isSupported && withKeepAlive && request) {\r\n isSupported = _hasProperty(request, \"keepalive\");\r\n }\r\n }\r\n catch (e) {\r\n // Just Swallow any failure during availability checks\r\n }\r\n return isSupported;\r\n}\r\nexport function useXDomainRequest() {\r\n if (_useXDomainRequest === null) {\r\n _useXDomainRequest = (typeof XDomainRequest !== strShimUndefined);\r\n if (_useXDomainRequest && isXhrSupported()) {\r\n _useXDomainRequest = _useXDomainRequest && !_hasProperty(getGlobalInst(strXMLHttpRequest), \"withCredentials\");\r\n }\r\n }\r\n return _useXDomainRequest;\r\n}\r\n/**\r\n * Checks if XMLHttpRequest is supported\r\n * @returns True if supported, otherwise false\r\n */\r\nexport function isXhrSupported() {\r\n var isSupported = false;\r\n try {\r\n var xmlHttpRequest = getGlobalInst(strXMLHttpRequest);\r\n isSupported = !!xmlHttpRequest;\r\n }\r\n catch (e) {\r\n // Just Swallow any failure during availability checks\r\n }\r\n return isSupported;\r\n}\r\nfunction _getNamedValue(values, name) {\r\n if (values) {\r\n for (var i = 0; i < values[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n var value = values[i];\r\n if (value[_DYN_NAME /* @min:%2ename */]) {\r\n if (value[_DYN_NAME /* @min:%2ename */] === name) {\r\n return value;\r\n }\r\n }\r\n }\r\n }\r\n return {};\r\n}\r\n/**\r\n * Helper function to fetch the named meta-tag from the page.\r\n * @param name\r\n */\r\nexport function findMetaTag(name) {\r\n var doc = getDocument();\r\n if (doc && name) {\r\n // Look for a meta-tag\r\n return _getNamedValue(doc.querySelectorAll(\"meta\"), name).content;\r\n }\r\n return null;\r\n}\r\n/**\r\n * Helper function to fetch the named server timing value from the page response (first navigation event).\r\n * @param name\r\n */\r\nexport function findNamedServerTiming(name) {\r\n var value;\r\n var perf = getPerformance();\r\n if (perf) {\r\n // Try looking for a server-timing header\r\n var navPerf = perf.getEntriesByType(\"navigation\") || [];\r\n value = _getNamedValue((navPerf[_DYN_LENGTH /* @min:%2elength */] > 0 ? navPerf[0] : {}).serverTiming, name).description;\r\n }\r\n return value;\r\n}\r\n//# sourceMappingURL=EnvUtils.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { _DYN_APPLY, _DYN_LENGTH } from \"../__DynamicConstants\";\r\nimport { getGlobalInst } from \"./EnvUtils\";\r\nvar listenerFuncs = [\"eventsSent\", \"eventsDiscarded\", \"eventsSendRequest\", \"perfEvent\"];\r\nvar _aiNamespace = null;\r\nvar _debugListener;\r\nfunction _listenerProxyFunc(name, config) {\r\n return function () {\r\n var args = arguments;\r\n var dbgExt = getDebugExt(config);\r\n if (dbgExt) {\r\n var listener = dbgExt.listener;\r\n if (listener && listener[name]) {\r\n listener[name][_DYN_APPLY /* @min:%2eapply */](listener, args);\r\n }\r\n }\r\n };\r\n}\r\nfunction _getExtensionNamespace() {\r\n // Cache the lookup of the global namespace object\r\n var target = getGlobalInst(\"Microsoft\");\r\n if (target) {\r\n _aiNamespace = target[\"ApplicationInsights\"];\r\n }\r\n return _aiNamespace;\r\n}\r\nexport function getDebugExt(config) {\r\n var ns = _aiNamespace;\r\n if (!ns && config.disableDbgExt !== true) {\r\n ns = _aiNamespace || _getExtensionNamespace();\r\n }\r\n return ns ? ns[\"ChromeDbgExt\"] : null;\r\n}\r\nexport function getDebugListener(config) {\r\n if (!_debugListener) {\r\n _debugListener = {};\r\n for (var lp = 0; lp < listenerFuncs[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n _debugListener[listenerFuncs[lp]] = _listenerProxyFunc(listenerFuncs[lp], config);\r\n }\r\n }\r\n return _debugListener;\r\n}\r\n//# sourceMappingURL=DbgExtensionUtils.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { _DYN_DIAG_LOG, _DYN_ENABLE_DEBUG_EXCEPTI4, _DYN_LOGGER, _DYN_LOG_INTERNAL_MESSAGE, _DYN_MESSAGE, _DYN_MESSAGE_ID, _DYN_PUSH, _DYN_REPLACE } from \"../__DynamicConstants\";\r\nimport { getDebugExt } from \"./DbgExtensionUtils\";\r\nimport { dumpObj, getConsole, getJSON, hasJSON } from \"./EnvUtils\";\r\nimport { getCfgValue, isFunction, isUndefined } from \"./HelperFuncs\";\r\nimport { STR_EMPTY, STR_ERROR_TO_CONSOLE, STR_WARN_TO_CONSOLE } from \"./InternalConstants\";\r\n/**\r\n * For user non actionable traces use AI Internal prefix.\r\n */\r\nvar AiNonUserActionablePrefix = \"AI (Internal): \";\r\n/**\r\n * Prefix of the traces in portal.\r\n */\r\nvar AiUserActionablePrefix = \"AI: \";\r\n/**\r\n * Session storage key for the prefix for the key indicating message type already logged\r\n */\r\nvar AIInternalMessagePrefix = \"AITR_\";\r\nfunction _sanitizeDiagnosticText(text) {\r\n if (text) {\r\n return \"\\\"\" + text[_DYN_REPLACE /* @min:%2ereplace */](/\\\"/g, STR_EMPTY) + \"\\\"\";\r\n }\r\n return STR_EMPTY;\r\n}\r\nfunction _logToConsole(func, message) {\r\n var theConsole = getConsole();\r\n if (!!theConsole) {\r\n var logFunc = \"log\";\r\n if (theConsole[func]) {\r\n logFunc = func;\r\n }\r\n if (isFunction(theConsole[logFunc])) {\r\n theConsole[logFunc](message);\r\n }\r\n }\r\n}\r\nvar _InternalLogMessage = /** @class */ (function () {\r\n function _InternalLogMessage(msgId, msg, isUserAct, properties) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n var _self = this;\r\n _self[_DYN_MESSAGE_ID /* @min:%2emessageId */] = msgId;\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] =\r\n (isUserAct ? AiUserActionablePrefix : AiNonUserActionablePrefix) +\r\n msgId;\r\n var strProps = STR_EMPTY;\r\n if (hasJSON()) {\r\n strProps = getJSON().stringify(properties);\r\n }\r\n var diagnosticText = (msg ? \" message:\" + _sanitizeDiagnosticText(msg) : STR_EMPTY) +\r\n (properties ? \" props:\" + _sanitizeDiagnosticText(strProps) : STR_EMPTY);\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] += diagnosticText;\r\n }\r\n _InternalLogMessage.dataType = \"MessageData\";\r\n return _InternalLogMessage;\r\n}());\r\nexport { _InternalLogMessage };\r\nexport function safeGetLogger(core, config) {\r\n return (core || {})[_DYN_LOGGER /* @min:%2elogger */] || new DiagnosticLogger(config);\r\n}\r\nvar DiagnosticLogger = /** @class */ (function () {\r\n function DiagnosticLogger(config) {\r\n this.identifier = \"DiagnosticLogger\";\r\n /**\r\n * The internal logging queue\r\n */\r\n this.queue = [];\r\n /**\r\n * Count of internal messages sent\r\n */\r\n var _messageCount = 0;\r\n /**\r\n * Holds information about what message types were already logged to console or sent to server.\r\n */\r\n var _messageLogged = {};\r\n var _loggingLevelConsole;\r\n var _loggingLevelTelemetry;\r\n var _maxInternalMessageLimit;\r\n var _enableDebug;\r\n dynamicProto(DiagnosticLogger, this, function (_self) {\r\n _setDefaultsFromConfig(config || {});\r\n _self.consoleLoggingLevel = function () { return _loggingLevelConsole; };\r\n _self.telemetryLoggingLevel = function () { return _loggingLevelTelemetry; };\r\n _self.maxInternalMessageLimit = function () { return _maxInternalMessageLimit; };\r\n _self[_DYN_ENABLE_DEBUG_EXCEPTI4 /* @min:%2eenableDebugExceptions */] = function () { return _enableDebug; };\r\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 */\r\n _self.throwInternal = function (severity, msgId, msg, properties, isUserAct) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n var message = new _InternalLogMessage(msgId, msg, isUserAct, properties);\r\n if (_enableDebug) {\r\n throw dumpObj(message);\r\n }\r\n else {\r\n // Get the logging function and fallback to warnToConsole of for some reason errorToConsole doesn't exist\r\n var logFunc = severity === 1 /* eLoggingSeverity.CRITICAL */ ? STR_ERROR_TO_CONSOLE : STR_WARN_TO_CONSOLE;\r\n if (!isUndefined(message[_DYN_MESSAGE /* @min:%2emessage */])) {\r\n if (isUserAct) {\r\n // check if this message type was already logged to console for this page view and if so, don't log it again\r\n var messageKey = +message[_DYN_MESSAGE_ID /* @min:%2emessageId */];\r\n if (!_messageLogged[messageKey] && _loggingLevelConsole >= severity) {\r\n _self[logFunc](message[_DYN_MESSAGE /* @min:%2emessage */]);\r\n _messageLogged[messageKey] = true;\r\n }\r\n }\r\n else {\r\n // Only log traces if the console Logging Level is >= the throwInternal severity level\r\n if (_loggingLevelConsole >= severity) {\r\n _self[logFunc](message[_DYN_MESSAGE /* @min:%2emessage */]);\r\n }\r\n }\r\n _logInternalMessage(severity, message);\r\n }\r\n else {\r\n _debugExtMsg(\"throw\" + (severity === 1 /* eLoggingSeverity.CRITICAL */ ? \"Critical\" : \"Warning\"), message);\r\n }\r\n }\r\n };\r\n /**\r\n * This will write a warning to the console if possible\r\n * @param message {string} - The warning message\r\n */\r\n _self[STR_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */] = function (message) {\r\n _logToConsole(\"warn\", message);\r\n _debugExtMsg(\"warning\", message);\r\n };\r\n /**\r\n * This will write an error to the console if possible\r\n * @param message {string} - The error message\r\n */\r\n _self[STR_ERROR_TO_CONSOLE /* @min:%2eerrorToConsole */] = function (message) {\r\n _logToConsole(\"error\", message);\r\n _debugExtMsg(\"error\", message);\r\n };\r\n /**\r\n * Resets the internal message count\r\n */\r\n _self.resetInternalMessageCount = function () {\r\n _messageCount = 0;\r\n _messageLogged = {};\r\n };\r\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 */\r\n _self[_DYN_LOG_INTERNAL_MESSAGE /* @min:%2elogInternalMessage */] = _logInternalMessage;\r\n function _logInternalMessage(severity, message) {\r\n if (_areInternalMessagesThrottled()) {\r\n return;\r\n }\r\n // check if this message type was already logged for this session and if so, don't log it again\r\n var logMessage = true;\r\n var messageKey = AIInternalMessagePrefix + message[_DYN_MESSAGE_ID /* @min:%2emessageId */];\r\n // if the session storage is not available, limit to only one message type per page view\r\n if (_messageLogged[messageKey]) {\r\n logMessage = false;\r\n }\r\n else {\r\n _messageLogged[messageKey] = true;\r\n }\r\n if (logMessage) {\r\n // Push the event in the internal queue\r\n if (severity <= _loggingLevelTelemetry) {\r\n _self.queue[_DYN_PUSH /* @min:%2epush */](message);\r\n _messageCount++;\r\n _debugExtMsg((severity === 1 /* eLoggingSeverity.CRITICAL */ ? \"error\" : \"warn\"), message);\r\n }\r\n // When throttle limit reached, send a special event\r\n if (_messageCount === _maxInternalMessageLimit) {\r\n var throttleLimitMessage = \"Internal events throttle limit per PageView reached for this app.\";\r\n var throttleMessage = new _InternalLogMessage(23 /* _eInternalMessageId.MessageLimitPerPVExceeded */, throttleLimitMessage, false);\r\n _self.queue[_DYN_PUSH /* @min:%2epush */](throttleMessage);\r\n if (severity === 1 /* eLoggingSeverity.CRITICAL */) {\r\n _self[STR_ERROR_TO_CONSOLE /* @min:%2eerrorToConsole */](throttleLimitMessage);\r\n }\r\n else {\r\n _self[STR_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */](throttleLimitMessage);\r\n }\r\n }\r\n }\r\n }\r\n function _setDefaultsFromConfig(config) {\r\n _loggingLevelConsole = getCfgValue(config.loggingLevelConsole, 0);\r\n _loggingLevelTelemetry = getCfgValue(config.loggingLevelTelemetry, 1);\r\n _maxInternalMessageLimit = getCfgValue(config.maxMessageLimit, 25);\r\n _enableDebug = getCfgValue(config.enableDebug, getCfgValue(config[_DYN_ENABLE_DEBUG_EXCEPTI4 /* @min:%2eenableDebugExceptions */], false));\r\n }\r\n function _areInternalMessagesThrottled() {\r\n return _messageCount >= _maxInternalMessageLimit;\r\n }\r\n function _debugExtMsg(name, data) {\r\n var dbgExt = getDebugExt(config || {});\r\n if (dbgExt && dbgExt[_DYN_DIAG_LOG /* @min:%2ediagLog */]) {\r\n dbgExt[_DYN_DIAG_LOG /* @min:%2ediagLog */](name, data);\r\n }\r\n }\r\n });\r\n }\r\n// Removed Stub for DiagnosticLogger.prototype.enableDebugExceptions.\r\n// Removed Stub for DiagnosticLogger.prototype.consoleLoggingLevel.\r\n// Removed Stub for DiagnosticLogger.prototype.telemetryLoggingLevel.\r\n// Removed Stub for DiagnosticLogger.prototype.maxInternalMessageLimit.\r\n// Removed Stub for DiagnosticLogger.prototype.throwInternal.\r\n// Removed Stub for DiagnosticLogger.prototype.warnToConsole.\r\n// Removed Stub for DiagnosticLogger.prototype.errorToConsole.\r\n// Removed Stub for DiagnosticLogger.prototype.resetInternalMessageCount.\r\n// Removed Stub for DiagnosticLogger.prototype.logInternalMessage.\r\n // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n // this will be removed when ES3 support is dropped.\n DiagnosticLogger.__ieDyn=1;\n\n return DiagnosticLogger;\r\n}());\r\nexport { DiagnosticLogger };\r\nfunction _getLogger(logger) {\r\n return (logger || new DiagnosticLogger());\r\n}\r\n/**\r\n * This is a helper method which will call throwInternal on the passed logger, will throw exceptions in\r\n * debug mode or attempt to log the error as a console warning. This helper is provided mostly to better\r\n * support minification as logger.throwInternal() will not compress the publish \"throwInternal\" used throughout\r\n * the code.\r\n * @param logger - The Diagnostic Logger instance to use.\r\n * @param severity {LoggingSeverity} - The severity of the log message\r\n * @param message {_InternalLogMessage} - The log message.\r\n */\r\nexport function _throwInternal(logger, severity, msgId, msg, properties, isUserAct) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n _getLogger(logger).throwInternal(severity, msgId, msg, properties, isUserAct);\r\n}\r\n/**\r\n * This is a helper method which will call warnToConsole on the passed logger with the provided message.\r\n * @param logger - The Diagnostic Logger instance to use.\r\n * @param message {_InternalLogMessage} - The log message.\r\n */\r\nexport function _warnToConsole(logger, message) {\r\n _getLogger(logger)[STR_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */](message);\r\n}\r\n/**\r\n * Logs a message to the internal queue.\r\n * @param logger - The Diagnostic Logger instance to use.\r\n * @param severity {LoggingSeverity} - The severity of the log message\r\n * @param message {_InternalLogMessage} - The message to log.\r\n */\r\nexport function _logInternalMessage(logger, severity, message) {\r\n _getLogger(logger)[_DYN_LOG_INTERNAL_MESSAGE /* @min:%2elogInternalMessage */](severity, message);\r\n}\r\n//# sourceMappingURL=DiagnosticLogger.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { deepFreeze, objForEachKey } from \"../JavaScriptSDK/HelperFuncs\";\r\n/**\r\n * Create an enum style object which has both the key => value and value => key mappings\r\n * @param values - The values to populate on the new object\r\n * @returns\r\n */\r\nexport function createEnumStyle(values) {\r\n var enumClass = {};\r\n objForEachKey(values, function (field, value) {\r\n enumClass[field] = value;\r\n enumClass[value] = field;\r\n });\r\n return deepFreeze(enumClass);\r\n}\r\n/**\r\n * Create a 2 index map that maps an enum's key as both the key and value, X[\"key\"] => \"key\" and X[0] => \"keyof 0\".\r\n * @param values - The values to populate on the new object\r\n * @returns\r\n */\r\nexport function createEnumMap(values) {\r\n var mapClass = {};\r\n objForEachKey(values, function (field, value) {\r\n mapClass[field] = field;\r\n mapClass[value] = field;\r\n });\r\n return deepFreeze(mapClass);\r\n}\r\n/**\r\n * Create a 2 index map that maps an enum's key and value to the defined map value, X[\"key\"] => mapValue and X[0] => mapValue.\r\n * Generic values\r\n * - E = the const enum type (typeof eRequestHeaders);\r\n * - V = Identifies the valid values for the keys, this should include both the enum numeric and string key of the type. The\r\n * resulting \"Value\" of each entry identifies the valid values withing the assignments.\r\n * @param values - The values to populate on the new object\r\n * @returns\r\n */\r\nexport function createValueMap(values) {\r\n var mapClass = {};\r\n objForEachKey(values, function (field, value) {\r\n mapClass[field] = value[1];\r\n mapClass[value[0]] = value[1];\r\n });\r\n return deepFreeze(mapClass);\r\n}\r\n//# sourceMappingURL=EnumHelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { createEnumStyle } from \"@microsoft/applicationinsights-core-js\";\r\nexport var StorageType = createEnumStyle({\r\n LocalStorage: 0 /* eStorageType.LocalStorage */,\r\n SessionStorage: 1 /* eStorageType.SessionStorage */\r\n});\r\nexport var DistributedTracingModes = createEnumStyle({\r\n AI: 0 /* eDistributedTracingModes.AI */,\r\n AI_AND_W3C: 1 /* eDistributedTracingModes.AI_AND_W3C */,\r\n W3C: 2 /* eDistributedTracingModes.W3C */\r\n});\r\n//# sourceMappingURL=Enums.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { _throwInternal, dumpObj, getExceptionName, getGlobal, getGlobalInst, isNullOrUndefined, objForEachKey } from \"@microsoft/applicationinsights-core-js\";\r\nimport { StorageType } from \"./Enums\";\r\nimport { _DYN_REMOVE_ITEM, _DYN_TO_STRING } from \"./__DynamicConstants\";\r\nvar _canUseLocalStorage = undefined;\r\nvar _canUseSessionStorage = undefined;\r\n/**\r\n * Gets the localStorage object if available\r\n * @return {Storage} - Returns the storage object if available else returns null\r\n */\r\nfunction _getLocalStorageObject() {\r\n if (utlCanUseLocalStorage()) {\r\n return _getVerifiedStorageObject(StorageType.LocalStorage);\r\n }\r\n return null;\r\n}\r\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 */\r\nfunction _getVerifiedStorageObject(storageType) {\r\n try {\r\n if (isNullOrUndefined(getGlobal())) {\r\n return null;\r\n }\r\n var uid = (new Date)[_DYN_TO_STRING /* @min:%2etoString */]();\r\n var storage = getGlobalInst(storageType === StorageType.LocalStorage ? \"localStorage\" : \"sessionStorage\");\r\n storage.setItem(uid, uid);\r\n var fail = storage.getItem(uid) !== uid;\r\n storage[_DYN_REMOVE_ITEM /* @min:%2eremoveItem */](uid);\r\n if (!fail) {\r\n return storage;\r\n }\r\n }\r\n catch (exception) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n}\r\n/**\r\n * Gets the sessionStorage object if available\r\n * @return {Storage} - Returns the storage object if available else returns null\r\n */\r\nfunction _getSessionStorageObject() {\r\n if (utlCanUseSessionStorage()) {\r\n return _getVerifiedStorageObject(StorageType.SessionStorage);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Disables the global SDK usage of local or session storage if available\r\n */\r\nexport function utlDisableStorage() {\r\n _canUseLocalStorage = false;\r\n _canUseSessionStorage = false;\r\n}\r\n/**\r\n * Re-enables the global SDK usage of local or session storage if available\r\n */\r\nexport function utlEnableStorage() {\r\n _canUseLocalStorage = utlCanUseLocalStorage(true);\r\n _canUseSessionStorage = utlCanUseSessionStorage(true);\r\n}\r\n/**\r\n * Returns whether LocalStorage can be used, if the reset parameter is passed a true this will override\r\n * any previous disable calls.\r\n * @param reset - Should the usage be reset and determined only based on whether LocalStorage is available\r\n */\r\nexport function utlCanUseLocalStorage(reset) {\r\n if (reset || _canUseLocalStorage === undefined) {\r\n _canUseLocalStorage = !!_getVerifiedStorageObject(StorageType.LocalStorage);\r\n }\r\n return _canUseLocalStorage;\r\n}\r\nexport function utlGetLocalStorage(logger, name) {\r\n var storage = _getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n return storage.getItem(name);\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 1 /* _eInternalMessageId.BrowserCannotReadLocalStorage */, \"Browser failed read of local storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return null;\r\n}\r\nexport function utlSetLocalStorage(logger, name, data) {\r\n var storage = _getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage.setItem(name, data);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 3 /* _eInternalMessageId.BrowserCannotWriteLocalStorage */, \"Browser failed write to local storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\nexport function utlRemoveStorage(logger, name) {\r\n var storage = _getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage[_DYN_REMOVE_ITEM /* @min:%2eremoveItem */](name);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 5 /* _eInternalMessageId.BrowserFailedRemovalFromLocalStorage */, \"Browser failed removal of local storage item. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\nexport function utlCanUseSessionStorage(reset) {\r\n if (reset || _canUseSessionStorage === undefined) {\r\n _canUseSessionStorage = !!_getVerifiedStorageObject(StorageType.SessionStorage);\r\n }\r\n return _canUseSessionStorage;\r\n}\r\nexport function utlGetSessionStorageKeys() {\r\n var keys = [];\r\n if (utlCanUseSessionStorage()) {\r\n objForEachKey(getGlobalInst(\"sessionStorage\"), function (key) {\r\n keys.push(key);\r\n });\r\n }\r\n return keys;\r\n}\r\nexport function utlGetSessionStorage(logger, name) {\r\n var storage = _getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n return storage.getItem(name);\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 2 /* _eInternalMessageId.BrowserCannotReadSessionStorage */, \"Browser failed read of session storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return null;\r\n}\r\nexport function utlSetSessionStorage(logger, name, data) {\r\n var storage = _getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage.setItem(name, data);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 4 /* _eInternalMessageId.BrowserCannotWriteSessionStorage */, \"Browser failed write to session storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\nexport function utlRemoveSessionStorage(logger, name) {\r\n var storage = _getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage[_DYN_REMOVE_ITEM /* @min:%2eremoveItem */](name);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 6 /* _eInternalMessageId.BrowserFailedRemovalFromSessionStorage */, \"Browser failed removal of session storage item. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\n//# sourceMappingURL=StorageHelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n// Licensed under the\r\nexport { Util, CorrelationIdHelper, DateTimeUtils, dateTimeUtilsNow, dateTimeUtilsDuration, UrlHelper, isInternalApplicationInsightsEndpoint, createDistributedTraceContextFromTrace } from \"./Util\";\r\nexport { ThrottleMgr } from \"./ThrottleMgr\";\r\nexport { parseConnectionString, ConnectionStringParser } from \"./ConnectionStringParser\";\r\nexport { RequestHeaders } from \"./RequestResponseHeaders\";\r\nexport { DisabledPropertyName, ProcessLegacy, SampleRate, HttpMethod, DEFAULT_BREEZE_ENDPOINT, DEFAULT_BREEZE_PATH, strNotSpecified } from \"./Constants\";\r\nexport { Envelope } from \"./Telemetry/Common/Envelope\";\r\nexport { Event } from \"./Telemetry/Event\";\r\nexport { Exception } from \"./Telemetry/Exception\";\r\nexport { Metric } from \"./Telemetry/Metric\";\r\nexport { PageView } from \"./Telemetry/PageView\";\r\nexport { RemoteDependencyData } from \"./Telemetry/RemoteDependencyData\";\r\nexport { Trace } from \"./Telemetry/Trace\";\r\nexport { PageViewPerformance } from \"./Telemetry/PageViewPerformance\";\r\nexport { Data } from \"./Telemetry/Common/Data\";\r\nexport { SeverityLevel } from \"./Interfaces/Contracts/SeverityLevel\";\r\nexport { ConfigurationManager } from \"./Interfaces/IConfig\";\r\nexport { ContextTagKeys } from \"./Interfaces/Contracts/ContextTagKeys\";\r\nexport { DataSanitizer, dataSanitizeKeyAndAddUniqueness, dataSanitizeKey, dataSanitizeString, dataSanitizeUrl, dataSanitizeMessage, dataSanitizeException, dataSanitizeProperties, dataSanitizeMeasurements, dataSanitizeId, dataSanitizeInput, dsPadNumber } from \"./Telemetry/Common/DataSanitizer\";\r\nexport { TelemetryItemCreator, createTelemetryItem } from \"./TelemetryItemCreator\";\r\nexport { CtxTagKeys, Extensions } from \"./Interfaces/PartAExtensions\";\r\nexport { DistributedTracingModes } from \"./Enums\";\r\nexport { stringToBoolOrDefault, msToTimeSpan, getExtensionByName, isCrossOriginError } from \"./HelperFuncs\";\r\nexport { isBeaconsSupported as isBeaconApiSupported, createTraceParent, parseTraceParent, isValidTraceId, isValidSpanId, isValidTraceParent, isSampledFlag, formatTraceParent, findW3cTraceParent } from \"@microsoft/applicationinsights-core-js\";\r\nexport { createDomEvent } from \"./DomHelperFuncs\";\r\nexport { utlDisableStorage, utlEnableStorage, utlCanUseLocalStorage, utlGetLocalStorage, utlSetLocalStorage, utlRemoveStorage, utlCanUseSessionStorage, utlGetSessionStorageKeys, utlGetSessionStorage, utlSetSessionStorage, utlRemoveSessionStorage } from \"./StorageHelperFuncs\";\r\nexport { urlParseUrl, urlGetAbsoluteUrl, urlGetPathName, urlGetCompleteUrl, urlParseHost, urlParseFullHost } from \"./UrlHelperFuncs\";\r\nexport var PropertiesPluginIdentifier = \"AppInsightsPropertiesPlugin\";\r\nexport var BreezeChannelIdentifier = \"AppInsightsChannelPlugin\";\r\nexport var AnalyticsPluginIdentifier = \"ApplicationInsightsAnalytics\";\r\n//# sourceMappingURL=applicationinsights-common.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar _a;\r\nimport { _throwInternal, getJSON, hasJSON, isObject, objForEachKey, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_LENGTH, _DYN_SANITIZE_EXCEPTION, _DYN_SANITIZE_KEY_AND_ADD2, _DYN_SANITIZE_MEASUREMENT3, _DYN_SANITIZE_PROPERTIES, _DYN_STRINGIFY, _DYN_SUBSTRING, _DYN_TO_STRING } from \"../../__DynamicConstants\";\r\nexport function dataSanitizeKeyAndAddUniqueness(logger, key, map) {\r\n var origLength = key[_DYN_LENGTH /* @min:%2elength */];\r\n var field = dataSanitizeKey(logger, key);\r\n // validation truncated the length. We need to add uniqueness\r\n if (field[_DYN_LENGTH /* @min:%2elength */] !== origLength) {\r\n var i = 0;\r\n var uniqueField = field;\r\n while (map[uniqueField] !== undefined) {\r\n i++;\r\n uniqueField = field[_DYN_SUBSTRING /* @min:%2esubstring */](0, 150 /* DataSanitizerValues.MAX_NAME_LENGTH */ - 3) + dsPadNumber(i);\r\n }\r\n field = uniqueField;\r\n }\r\n return field;\r\n}\r\nexport function dataSanitizeKey(logger, name) {\r\n var nameTrunc;\r\n if (name) {\r\n // Remove any leading or trailing whitespace\r\n name = strTrim(name[_DYN_TO_STRING /* @min:%2etoString */]());\r\n // truncate the string to 150 chars\r\n if (name[_DYN_LENGTH /* @min:%2elength */] > 150 /* DataSanitizerValues.MAX_NAME_LENGTH */) {\r\n nameTrunc = name[_DYN_SUBSTRING /* @min:%2esubstring */](0, 150 /* DataSanitizerValues.MAX_NAME_LENGTH */);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 57 /* _eInternalMessageId.NameTooLong */, \"name is too long. It has been truncated to \" + 150 /* DataSanitizerValues.MAX_NAME_LENGTH */ + \" characters.\", { name: name }, true);\r\n }\r\n }\r\n return nameTrunc || name;\r\n}\r\nexport function dataSanitizeString(logger, value, maxLength) {\r\n if (maxLength === void 0) { maxLength = 1024 /* DataSanitizerValues.MAX_STRING_LENGTH */; }\r\n var valueTrunc;\r\n if (value) {\r\n maxLength = maxLength ? maxLength : 1024 /* DataSanitizerValues.MAX_STRING_LENGTH */; // in case default parameters dont work\r\n value = strTrim(value);\r\n if (value.toString()[_DYN_LENGTH /* @min:%2elength */] > maxLength) {\r\n valueTrunc = value[_DYN_TO_STRING /* @min:%2etoString */]()[_DYN_SUBSTRING /* @min:%2esubstring */](0, maxLength);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 61 /* _eInternalMessageId.StringValueTooLong */, \"string value is too long. It has been truncated to \" + maxLength + \" characters.\", { value: value }, true);\r\n }\r\n }\r\n return valueTrunc || value;\r\n}\r\nexport function dataSanitizeUrl(logger, url) {\r\n return dataSanitizeInput(logger, url, 2048 /* DataSanitizerValues.MAX_URL_LENGTH */, 66 /* _eInternalMessageId.UrlTooLong */);\r\n}\r\nexport function dataSanitizeMessage(logger, message) {\r\n var messageTrunc;\r\n if (message) {\r\n if (message[_DYN_LENGTH /* @min:%2elength */] > 32768 /* DataSanitizerValues.MAX_MESSAGE_LENGTH */) {\r\n messageTrunc = message[_DYN_SUBSTRING /* @min:%2esubstring */](0, 32768 /* DataSanitizerValues.MAX_MESSAGE_LENGTH */);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 56 /* _eInternalMessageId.MessageTruncated */, \"message is too long, it has been truncated to \" + 32768 /* DataSanitizerValues.MAX_MESSAGE_LENGTH */ + \" characters.\", { message: message }, true);\r\n }\r\n }\r\n return messageTrunc || message;\r\n}\r\nexport function dataSanitizeException(logger, exception) {\r\n var exceptionTrunc;\r\n if (exception) {\r\n // Make surte its a string\r\n var value = \"\" + exception;\r\n if (value[_DYN_LENGTH /* @min:%2elength */] > 32768 /* DataSanitizerValues.MAX_EXCEPTION_LENGTH */) {\r\n exceptionTrunc = value[_DYN_SUBSTRING /* @min:%2esubstring */](0, 32768 /* DataSanitizerValues.MAX_EXCEPTION_LENGTH */);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 52 /* _eInternalMessageId.ExceptionTruncated */, \"exception is too long, it has been truncated to \" + 32768 /* DataSanitizerValues.MAX_EXCEPTION_LENGTH */ + \" characters.\", { exception: exception }, true);\r\n }\r\n }\r\n return exceptionTrunc || exception;\r\n}\r\nexport function dataSanitizeProperties(logger, properties) {\r\n if (properties) {\r\n var tempProps_1 = {};\r\n objForEachKey(properties, function (prop, value) {\r\n if (isObject(value) && hasJSON()) {\r\n // Stringify any part C properties\r\n try {\r\n value = getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](value);\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 49 /* _eInternalMessageId.CannotSerializeObjectNonSerializable */, \"custom property is not valid\", { exception: e }, true);\r\n }\r\n }\r\n value = dataSanitizeString(logger, value, 8192 /* DataSanitizerValues.MAX_PROPERTY_LENGTH */);\r\n prop = dataSanitizeKeyAndAddUniqueness(logger, prop, tempProps_1);\r\n tempProps_1[prop] = value;\r\n });\r\n properties = tempProps_1;\r\n }\r\n return properties;\r\n}\r\nexport function dataSanitizeMeasurements(logger, measurements) {\r\n if (measurements) {\r\n var tempMeasurements_1 = {};\r\n objForEachKey(measurements, function (measure, value) {\r\n measure = dataSanitizeKeyAndAddUniqueness(logger, measure, tempMeasurements_1);\r\n tempMeasurements_1[measure] = value;\r\n });\r\n measurements = tempMeasurements_1;\r\n }\r\n return measurements;\r\n}\r\nexport function dataSanitizeId(logger, id) {\r\n return id ? dataSanitizeInput(logger, id, 128 /* DataSanitizerValues.MAX_ID_LENGTH */, 69 /* _eInternalMessageId.IdTooLong */)[_DYN_TO_STRING /* @min:%2etoString */]() : id;\r\n}\r\nexport function dataSanitizeInput(logger, input, maxLength, _msgId) {\r\n var inputTrunc;\r\n if (input) {\r\n input = strTrim(input);\r\n if (input[_DYN_LENGTH /* @min:%2elength */] > maxLength) {\r\n inputTrunc = input[_DYN_SUBSTRING /* @min:%2esubstring */](0, maxLength);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, _msgId, \"input is too long, it has been truncated to \" + maxLength + \" characters.\", { data: input }, true);\r\n }\r\n }\r\n return inputTrunc || input;\r\n}\r\nexport function dsPadNumber(num) {\r\n var s = \"00\" + num;\r\n return s.substr(s[_DYN_LENGTH /* @min:%2elength */] - 3);\r\n}\r\n/**\r\n * Provides the DataSanitizer functions within the previous namespace.\r\n */\r\nexport var DataSanitizer = (_a = {\r\n MAX_NAME_LENGTH: 150 /* DataSanitizerValues.MAX_NAME_LENGTH */,\r\n MAX_ID_LENGTH: 128 /* DataSanitizerValues.MAX_ID_LENGTH */,\r\n MAX_PROPERTY_LENGTH: 8192 /* DataSanitizerValues.MAX_PROPERTY_LENGTH */,\r\n MAX_STRING_LENGTH: 1024 /* DataSanitizerValues.MAX_STRING_LENGTH */,\r\n MAX_URL_LENGTH: 2048 /* DataSanitizerValues.MAX_URL_LENGTH */,\r\n MAX_MESSAGE_LENGTH: 32768 /* DataSanitizerValues.MAX_MESSAGE_LENGTH */,\r\n MAX_EXCEPTION_LENGTH: 32768 /* DataSanitizerValues.MAX_EXCEPTION_LENGTH */\r\n },\r\n _a[_DYN_SANITIZE_KEY_AND_ADD2 /* @min:sanitizeKeyAndAddUniqueness */] = dataSanitizeKeyAndAddUniqueness,\r\n _a.sanitizeKey = dataSanitizeKey,\r\n _a.sanitizeString = dataSanitizeString,\r\n _a.sanitizeUrl = dataSanitizeUrl,\r\n _a.sanitizeMessage = dataSanitizeMessage,\r\n _a[_DYN_SANITIZE_EXCEPTION /* @min:sanitizeException */] = dataSanitizeException,\r\n _a[_DYN_SANITIZE_PROPERTIES /* @min:sanitizeProperties */] = dataSanitizeProperties,\r\n _a[_DYN_SANITIZE_MEASUREMENT3 /* @min:sanitizeMeasurements */] = dataSanitizeMeasurements,\r\n _a.sanitizeId = dataSanitizeId,\r\n _a.sanitizeInput = dataSanitizeInput,\r\n _a.padNumber = dsPadNumber,\r\n _a.trim = strTrim,\r\n _a);\r\n//# sourceMappingURL=DataSanitizer.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\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 */\r\nexport var DisabledPropertyName = \"Microsoft_ApplicationInsights_BypassAjaxInstrumentation\";\r\nexport var SampleRate = \"sampleRate\";\r\nexport var ProcessLegacy = \"ProcessLegacy\";\r\nexport var HttpMethod = \"http.method\";\r\nexport var DEFAULT_BREEZE_ENDPOINT = \"https://dc.services.visualstudio.com\";\r\nexport var DEFAULT_BREEZE_PATH = \"/v2/track\";\r\nexport var strNotSpecified = \"not_specified\";\r\nexport var strIkey = \"iKey\";\r\n//# sourceMappingURL=Constants.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { isNullOrUndefined, objForEachKey, throwError, toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strIkey, strNotSpecified } from \"./Constants\";\r\nimport { dataSanitizeString } from \"./Telemetry/Common/DataSanitizer\";\r\nimport { _DYN_NAME } from \"./__DynamicConstants\";\r\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 */\r\nexport function createTelemetryItem(item, baseType, envelopeName, logger, customProperties, systemProperties) {\r\n var _a;\r\n envelopeName = dataSanitizeString(logger, envelopeName) || strNotSpecified;\r\n if (isNullOrUndefined(item) ||\r\n isNullOrUndefined(baseType) ||\r\n isNullOrUndefined(envelopeName)) {\r\n throwError(\"Input doesn't contain all required fields\");\r\n }\r\n var iKey = \"\";\r\n if (item[strIkey]) {\r\n iKey = item[strIkey];\r\n delete item[strIkey];\r\n }\r\n var telemetryItem = (_a = {},\r\n _a[_DYN_NAME /* @min:name */] = envelopeName,\r\n _a.time = toISOString(new Date()),\r\n _a.iKey = iKey,\r\n _a.ext = systemProperties ? systemProperties : {},\r\n _a.tags = [],\r\n _a.data = {},\r\n _a.baseType = baseType,\r\n _a.baseData = item // Part B\r\n ,\r\n _a);\r\n // Part C\r\n if (!isNullOrUndefined(customProperties)) {\r\n objForEachKey(customProperties, function (prop, value) {\r\n telemetryItem.data[prop] = value;\r\n });\r\n }\r\n return telemetryItem;\r\n}\r\nvar TelemetryItemCreator = /** @class */ (function () {\r\n function TelemetryItemCreator() {\r\n }\r\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 */\r\n TelemetryItemCreator.create = createTelemetryItem;\r\n return TelemetryItemCreator;\r\n}());\r\nexport { TelemetryItemCreator };\r\n//# sourceMappingURL=TelemetryItemCreator.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\nvar Event = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the EventTelemetry object\r\n */\r\n function Event(logger, name, properties, measurements) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n name: 1 /* FieldType.Required */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n Event.envelopeType = \"Microsoft.ApplicationInsights.{0}.Event\";\r\n Event.dataType = \"EventData\";\r\n return Event;\r\n}());\r\nexport { Event };\r\n//# sourceMappingURL=Event.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_MEASUREMENTS, _DYN_MESSAGE, _DYN_PROPERTIES, _DYN_SEVERITY_LEVEL } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeMessage, dataSanitizeProperties } from \"./Common/DataSanitizer\";\r\nvar Trace = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the TraceTelemetry object\r\n */\r\n function Trace(logger, message, severityLevel, properties, measurements) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n message: 1 /* FieldType.Required */,\r\n severityLevel: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n message = message || strNotSpecified;\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] = dataSanitizeMessage(logger, message);\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n if (severityLevel) {\r\n _self[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */] = severityLevel;\r\n }\r\n }\r\n Trace.envelopeType = \"Microsoft.ApplicationInsights.{0}.Message\";\r\n Trace.dataType = \"MessageData\";\r\n return Trace;\r\n}());\r\nexport { Trace };\r\n//# sourceMappingURL=Trace.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar DataPoint = /** @class */ (function () {\r\n function DataPoint() {\r\n /**\r\n * The data contract for serializing this object.\r\n */\r\n this.aiDataContract = {\r\n name: 1 /* FieldType.Required */,\r\n kind: 0 /* FieldType.Default */,\r\n value: 1 /* FieldType.Required */,\r\n count: 0 /* FieldType.Default */,\r\n min: 0 /* FieldType.Default */,\r\n max: 0 /* FieldType.Default */,\r\n stdDev: 0 /* FieldType.Default */\r\n };\r\n /**\r\n * Metric type. Single measurement or the aggregated value.\r\n */\r\n this.kind = 0 /* DataPointType.Measurement */;\r\n }\r\n return DataPoint;\r\n}());\r\nexport { DataPoint };\r\n//# sourceMappingURL=DataPoint.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_COUNT, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { DataPoint } from \"./Common/DataPoint\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\nvar Metric = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the MetricTelemetry object\r\n */\r\n function Metric(logger, name, value, count, min, max, stdDev, properties, measurements) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n metrics: 1 /* FieldType.Required */,\r\n properties: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n var dataPoint = new DataPoint();\r\n dataPoint[_DYN_COUNT /* @min:%2ecount */] = count > 0 ? count : undefined;\r\n dataPoint.max = isNaN(max) || max === null ? undefined : max;\r\n dataPoint.min = isNaN(min) || min === null ? undefined : min;\r\n dataPoint[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n dataPoint.value = value;\r\n dataPoint.stdDev = isNaN(stdDev) || stdDev === null ? undefined : stdDev;\r\n _self.metrics = [dataPoint];\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n Metric.envelopeType = \"Microsoft.ApplicationInsights.{0}.Metric\";\r\n Metric.dataType = \"MetricData\";\r\n return Metric;\r\n}());\r\nexport { Metric };\r\n//# sourceMappingURL=Metric.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { msToTimeSpan } from \"../HelperFuncs\";\r\nimport { _DYN_DURATION, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { dataSanitizeId, dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nvar PageView = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the PageEventTelemetry object\r\n */\r\n function PageView(logger, name, url, durationMs, properties, measurements, id) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n name: 0 /* FieldType.Default */,\r\n url: 0 /* FieldType.Default */,\r\n duration: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */,\r\n id: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self.id = dataSanitizeId(logger, id);\r\n _self.url = dataSanitizeUrl(logger, url);\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n if (!isNaN(durationMs)) {\r\n _self[_DYN_DURATION /* @min:%2eduration */] = msToTimeSpan(durationMs);\r\n }\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n PageView.envelopeType = \"Microsoft.ApplicationInsights.{0}.Pageview\";\r\n PageView.dataType = \"PageviewData\";\r\n return PageView;\r\n}());\r\nexport { PageView };\r\n//# sourceMappingURL=PageView.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_DURATION, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES, _DYN_RECEIVED_RESPONSE } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nvar PageViewPerformance = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the PageEventTelemetry object\r\n */\r\n function PageViewPerformance(logger, name, url, unused, properties, measurements, cs4BaseData) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n name: 0 /* FieldType.Default */,\r\n url: 0 /* FieldType.Default */,\r\n duration: 0 /* FieldType.Default */,\r\n perfTotal: 0 /* FieldType.Default */,\r\n networkConnect: 0 /* FieldType.Default */,\r\n sentRequest: 0 /* FieldType.Default */,\r\n receivedResponse: 0 /* FieldType.Default */,\r\n domProcessing: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self.url = dataSanitizeUrl(logger, url);\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n if (cs4BaseData) {\r\n _self.domProcessing = cs4BaseData.domProcessing;\r\n _self[_DYN_DURATION /* @min:%2eduration */] = cs4BaseData[_DYN_DURATION /* @min:%2eduration */];\r\n _self.networkConnect = cs4BaseData.networkConnect;\r\n _self.perfTotal = cs4BaseData.perfTotal;\r\n _self[_DYN_RECEIVED_RESPONSE /* @min:%2ereceivedResponse */] = cs4BaseData[_DYN_RECEIVED_RESPONSE /* @min:%2ereceivedResponse */];\r\n _self.sentRequest = cs4BaseData.sentRequest;\r\n }\r\n }\r\n PageViewPerformance.envelopeType = \"Microsoft.ApplicationInsights.{0}.PageviewPerformance\";\r\n PageViewPerformance.dataType = \"PageviewPerformanceData\";\r\n return PageViewPerformance;\r\n}());\r\nexport { PageViewPerformance };\r\n//# sourceMappingURL=PageViewPerformance.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { __assignFn as __assign } from \"@microsoft/applicationinsights-shims\";\r\nimport { arrForEach, arrMap, isArray, isError, isFunction, isNullOrUndefined, isObject, isString, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_ASSEMBLY, _DYN_EXCEPTIONS, _DYN_FILE_NAME, _DYN_HAS_FULL_STACK, _DYN_INDEX_OF, _DYN_IS_MANUAL, _DYN_LENGTH, _DYN_LEVEL, _DYN_LINE, _DYN_MEASUREMENTS, _DYN_MESSAGE, _DYN_METHOD, _DYN_NAME, _DYN_PARSED_STACK, _DYN_PROBLEM_GROUP, _DYN_PROPERTIES, _DYN_SEVERITY_LEVEL, _DYN_SIZE_IN_BYTES, _DYN_SPLIT, _DYN_STRINGIFY, _DYN_TO_STRING, _DYN_TYPE_NAME, _DYN__CREATE_FROM_INTERFA1 } from \"../__DynamicConstants\";\r\nimport { dataSanitizeException, dataSanitizeMeasurements, dataSanitizeMessage, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\nvar NoMethod = \"\";\r\nvar strError = \"error\";\r\nvar strStack = \"stack\";\r\nvar strStackDetails = \"stackDetails\";\r\nvar strErrorSrc = \"errorSrc\";\r\nvar strMessage = \"message\";\r\nvar strDescription = \"description\";\r\nfunction _stringify(value, convertToString) {\r\n var result = value;\r\n if (result && !isString(result)) {\r\n if (JSON && JSON[_DYN_STRINGIFY /* @min:%2estringify */]) {\r\n result = JSON[_DYN_STRINGIFY /* @min:%2estringify */](value);\r\n if (convertToString && (!result || result === \"{}\")) {\r\n if (isFunction(value[_DYN_TO_STRING /* @min:%2etoString */])) {\r\n result = value[_DYN_TO_STRING /* @min:%2etoString */]();\r\n }\r\n else {\r\n result = \"\" + value;\r\n }\r\n }\r\n }\r\n else {\r\n result = \"\" + value + \" - (Missing JSON.stringify)\";\r\n }\r\n }\r\n return result || \"\";\r\n}\r\nfunction _formatMessage(theEvent, errorType) {\r\n var evtMessage = theEvent;\r\n if (theEvent) {\r\n if (evtMessage && !isString(evtMessage)) {\r\n evtMessage = theEvent[strMessage] || theEvent[strDescription] || evtMessage;\r\n }\r\n // Make sure the message is a string\r\n if (evtMessage && !isString(evtMessage)) {\r\n // tslint:disable-next-line: prefer-conditional-expression\r\n evtMessage = _stringify(evtMessage, true);\r\n }\r\n if (theEvent[\"filename\"]) {\r\n // Looks like an event object with filename\r\n evtMessage = evtMessage + \" @\" + (theEvent[\"filename\"] || \"\") + \":\" + (theEvent[\"lineno\"] || \"?\") + \":\" + (theEvent[\"colno\"] || \"?\");\r\n }\r\n }\r\n // Automatically add the error type to the message if it does already appear to be present\r\n if (errorType && errorType !== \"String\" && errorType !== \"Object\" && errorType !== \"Error\" && (evtMessage || \"\")[_DYN_INDEX_OF /* @min:%2eindexOf */](errorType) === -1) {\r\n evtMessage = errorType + \": \" + evtMessage;\r\n }\r\n return evtMessage || \"\";\r\n}\r\nfunction _isExceptionDetailsInternal(value) {\r\n try {\r\n if (isObject(value)) {\r\n return \"hasFullStack\" in value && \"typeName\" in value;\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n return false;\r\n}\r\nfunction _isExceptionInternal(value) {\r\n try {\r\n if (isObject(value)) {\r\n return (\"ver\" in value && \"exceptions\" in value && \"properties\" in value);\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n return false;\r\n}\r\nfunction _isStackDetails(details) {\r\n return details && details.src && isString(details.src) && details.obj && isArray(details.obj);\r\n}\r\nfunction _convertStackObj(errorStack) {\r\n var src = errorStack || \"\";\r\n if (!isString(src)) {\r\n if (isString(src[strStack])) {\r\n src = src[strStack];\r\n }\r\n else {\r\n src = \"\" + src;\r\n }\r\n }\r\n var items = src[_DYN_SPLIT /* @min:%2esplit */](\"\\n\");\r\n return {\r\n src: src,\r\n obj: items\r\n };\r\n}\r\nfunction _getOperaStack(errorMessage) {\r\n var stack = [];\r\n var lines = errorMessage[_DYN_SPLIT /* @min:%2esplit */](\"\\n\");\r\n for (var lp = 0; lp < lines[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n var entry = lines[lp];\r\n if (lines[lp + 1]) {\r\n entry += \"@\" + lines[lp + 1];\r\n lp++;\r\n }\r\n stack.push(entry);\r\n }\r\n return {\r\n src: errorMessage,\r\n obj: stack\r\n };\r\n}\r\nfunction _getStackFromErrorObj(errorObj) {\r\n var details = null;\r\n if (errorObj) {\r\n try {\r\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 */\r\n if (errorObj[strStack]) {\r\n // Chrome/Firefox\r\n details = _convertStackObj(errorObj[strStack]);\r\n }\r\n else if (errorObj[strError] && errorObj[strError][strStack]) {\r\n // Edge error event provides the stack and error object\r\n details = _convertStackObj(errorObj[strError][strStack]);\r\n }\r\n else if (errorObj[\"exception\"] && errorObj.exception[strStack]) {\r\n details = _convertStackObj(errorObj.exception[strStack]);\r\n }\r\n else if (_isStackDetails(errorObj)) {\r\n details = errorObj;\r\n }\r\n else if (_isStackDetails(errorObj[strStackDetails])) {\r\n details = errorObj[strStackDetails];\r\n }\r\n else if (window && window[\"opera\"] && errorObj[strMessage]) {\r\n // Opera\r\n details = _getOperaStack(errorObj[_DYN_MESSAGE /* @min:%2emessage */]);\r\n }\r\n else if (errorObj[\"reason\"] && errorObj.reason[strStack]) {\r\n // UnhandledPromiseRejection\r\n details = _convertStackObj(errorObj.reason[strStack]);\r\n }\r\n else if (isString(errorObj)) {\r\n details = _convertStackObj(errorObj);\r\n }\r\n else {\r\n var evtMessage = errorObj[strMessage] || errorObj[strDescription] || \"\";\r\n if (isString(errorObj[strErrorSrc])) {\r\n if (evtMessage) {\r\n evtMessage += \"\\n\";\r\n }\r\n evtMessage += \" from \" + errorObj[strErrorSrc];\r\n }\r\n if (evtMessage) {\r\n details = _convertStackObj(evtMessage);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // something unexpected happened so to avoid failing to report any error lets swallow the exception\r\n // and fallback to the callee/caller method\r\n details = _convertStackObj(e);\r\n }\r\n }\r\n return details || {\r\n src: \"\",\r\n obj: null\r\n };\r\n}\r\nfunction _formatStackTrace(stackDetails) {\r\n var stack = \"\";\r\n if (stackDetails) {\r\n if (stackDetails.obj) {\r\n arrForEach(stackDetails.obj, function (entry) {\r\n stack += entry + \"\\n\";\r\n });\r\n }\r\n else {\r\n stack = stackDetails.src || \"\";\r\n }\r\n }\r\n return stack;\r\n}\r\nfunction _parseStack(stack) {\r\n var parsedStack;\r\n var frames = stack.obj;\r\n if (frames && frames[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n parsedStack = [];\r\n var level_1 = 0;\r\n var totalSizeInBytes_1 = 0;\r\n arrForEach(frames, function (frame) {\r\n var theFrame = frame[_DYN_TO_STRING /* @min:%2etoString */]();\r\n if (_StackFrame.regex.test(theFrame)) {\r\n var parsedFrame = new _StackFrame(theFrame, level_1++);\r\n totalSizeInBytes_1 += parsedFrame[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */];\r\n parsedStack.push(parsedFrame);\r\n }\r\n });\r\n // DP Constraint - exception parsed stack must be < 32KB\r\n // remove frames from the middle to meet the threshold\r\n var exceptionParsedStackThreshold = 32 * 1024;\r\n if (totalSizeInBytes_1 > exceptionParsedStackThreshold) {\r\n var left = 0;\r\n var right = parsedStack[_DYN_LENGTH /* @min:%2elength */] - 1;\r\n var size = 0;\r\n var acceptedLeft = left;\r\n var acceptedRight = right;\r\n while (left < right) {\r\n // check size\r\n var lSize = parsedStack[left][_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */];\r\n var rSize = parsedStack[right][_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */];\r\n size += lSize + rSize;\r\n if (size > exceptionParsedStackThreshold) {\r\n // remove extra frames from the middle\r\n var howMany = acceptedRight - acceptedLeft + 1;\r\n parsedStack.splice(acceptedLeft, howMany);\r\n break;\r\n }\r\n // update pointers\r\n acceptedLeft = left;\r\n acceptedRight = right;\r\n left++;\r\n right--;\r\n }\r\n }\r\n }\r\n return parsedStack;\r\n}\r\nfunction _getErrorType(errorType) {\r\n // Gets the Error Type by passing the constructor (used to get the true type of native error object).\r\n var typeName = \"\";\r\n if (errorType) {\r\n typeName = errorType.typeName || errorType[_DYN_NAME /* @min:%2ename */] || \"\";\r\n if (!typeName) {\r\n try {\r\n var funcNameRegex = /function (.{1,200})\\(/;\r\n var results = (funcNameRegex).exec((errorType).constructor[_DYN_TO_STRING /* @min:%2etoString */]());\r\n typeName = (results && results[_DYN_LENGTH /* @min:%2elength */] > 1) ? results[1] : \"\";\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty -- Ignoring any failures as nothing we can do\r\n }\r\n }\r\n }\r\n return typeName;\r\n}\r\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 */\r\nexport function _formatErrorCode(errorObj) {\r\n if (errorObj) {\r\n try {\r\n if (!isString(errorObj)) {\r\n var errorType = _getErrorType(errorObj);\r\n var result = _stringify(errorObj, false);\r\n if (!result || result === \"{}\") {\r\n if (errorObj[strError]) {\r\n // Looks like an MS Error Event\r\n errorObj = errorObj[strError];\r\n errorType = _getErrorType(errorObj);\r\n }\r\n result = _stringify(errorObj, true);\r\n }\r\n if (result[_DYN_INDEX_OF /* @min:%2eindexOf */](errorType) !== 0 && errorType !== \"String\") {\r\n return errorType + \":\" + result;\r\n }\r\n return result;\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty -- Ignoring any failures as nothing we can do\r\n }\r\n }\r\n // Fallback to just letting the object format itself into a string\r\n return \"\" + (errorObj || \"\");\r\n}\r\nvar Exception = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the ExceptionTelemetry object\r\n */\r\n function Exception(logger, exception, properties, measurements, severityLevel, id) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n exceptions: 1 /* FieldType.Required */,\r\n severityLevel: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2; // TODO: handle the CS\"4.0\" ==> breeze 2 conversion in a better way\r\n if (!_isExceptionInternal(exception)) {\r\n if (!properties) {\r\n properties = {};\r\n }\r\n _self[_DYN_EXCEPTIONS /* @min:%2eexceptions */] = [new _ExceptionDetails(logger, exception, properties)];\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n if (severityLevel) {\r\n _self[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */] = severityLevel;\r\n }\r\n if (id) {\r\n _self.id = id;\r\n }\r\n }\r\n else {\r\n _self[_DYN_EXCEPTIONS /* @min:%2eexceptions */] = exception[_DYN_EXCEPTIONS /* @min:%2eexceptions */] || [];\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = exception[_DYN_PROPERTIES /* @min:%2eproperties */];\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = exception[_DYN_MEASUREMENTS /* @min:%2emeasurements */];\r\n if (exception[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */]) {\r\n _self[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */] = exception[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */];\r\n }\r\n if (exception.id) {\r\n _self.id = exception.id;\r\n }\r\n if (exception[_DYN_PROBLEM_GROUP /* @min:%2eproblemGroup */]) {\r\n _self[_DYN_PROBLEM_GROUP /* @min:%2eproblemGroup */] = exception[_DYN_PROBLEM_GROUP /* @min:%2eproblemGroup */];\r\n }\r\n // bool/int types, use isNullOrUndefined\r\n if (!isNullOrUndefined(exception[_DYN_IS_MANUAL /* @min:%2eisManual */])) {\r\n _self[_DYN_IS_MANUAL /* @min:%2eisManual */] = exception[_DYN_IS_MANUAL /* @min:%2eisManual */];\r\n }\r\n }\r\n }\r\n Exception.CreateAutoException = function (message, url, lineNumber, columnNumber, error, evt, stack, errorSrc) {\r\n var _a;\r\n var errorType = _getErrorType(error || evt || message);\r\n return _a = {},\r\n _a[_DYN_MESSAGE /* @min:message */] = _formatMessage(message, errorType),\r\n _a.url = url,\r\n _a.lineNumber = lineNumber,\r\n _a.columnNumber = columnNumber,\r\n _a.error = _formatErrorCode(error || evt || message),\r\n _a.evt = _formatErrorCode(evt || message),\r\n _a[_DYN_TYPE_NAME /* @min:typeName */] = errorType,\r\n _a.stackDetails = _getStackFromErrorObj(stack || error || evt),\r\n _a.errorSrc = errorSrc,\r\n _a;\r\n };\r\n Exception.CreateFromInterface = function (logger, exception, properties, measurements) {\r\n var exceptions = exception[_DYN_EXCEPTIONS /* @min:%2eexceptions */]\r\n && arrMap(exception[_DYN_EXCEPTIONS /* @min:%2eexceptions */], function (ex) { return _ExceptionDetails[_DYN__CREATE_FROM_INTERFA1 /* @min:%2eCreateFromInterface */](logger, ex); });\r\n var exceptionData = new Exception(logger, __assign(__assign({}, exception), { exceptions: exceptions }), properties, measurements);\r\n return exceptionData;\r\n };\r\n Exception.prototype.toInterface = function () {\r\n var _a;\r\n var _b = this, exceptions = _b.exceptions, properties = _b.properties, measurements = _b.measurements, severityLevel = _b.severityLevel, problemGroup = _b.problemGroup, id = _b.id, isManual = _b.isManual;\r\n var exceptionDetailsInterface = exceptions instanceof Array\r\n && arrMap(exceptions, function (exception) { return exception.toInterface(); })\r\n || undefined;\r\n return _a = {\r\n ver: \"4.0\"\r\n },\r\n _a[_DYN_EXCEPTIONS /* @min:exceptions */] = exceptionDetailsInterface,\r\n _a.severityLevel = severityLevel,\r\n _a.properties = properties,\r\n _a.measurements = measurements,\r\n _a.problemGroup = problemGroup,\r\n _a.id = id,\r\n _a.isManual = isManual,\r\n _a;\r\n };\r\n /**\r\n * Creates a simple exception with 1 stack frame. Useful for manual constracting of exception.\r\n */\r\n Exception.CreateSimpleException = function (message, typeName, assembly, fileName, details, line) {\r\n var _a;\r\n return {\r\n exceptions: [\r\n (_a = {},\r\n _a[_DYN_HAS_FULL_STACK /* @min:hasFullStack */] = true,\r\n _a.message = message,\r\n _a.stack = details,\r\n _a.typeName = typeName,\r\n _a)\r\n ]\r\n };\r\n };\r\n Exception.envelopeType = \"Microsoft.ApplicationInsights.{0}.Exception\";\r\n Exception.dataType = \"ExceptionData\";\r\n Exception.formatError = _formatErrorCode;\r\n return Exception;\r\n}());\r\nexport { Exception };\r\nvar _ExceptionDetails = /** @class */ (function () {\r\n function _ExceptionDetails(logger, exception, properties) {\r\n this.aiDataContract = {\r\n id: 0 /* FieldType.Default */,\r\n outerId: 0 /* FieldType.Default */,\r\n typeName: 1 /* FieldType.Required */,\r\n message: 1 /* FieldType.Required */,\r\n hasFullStack: 0 /* FieldType.Default */,\r\n stack: 0 /* FieldType.Default */,\r\n parsedStack: 2 /* FieldType.Array */\r\n };\r\n var _self = this;\r\n if (!_isExceptionDetailsInternal(exception)) {\r\n var error = exception;\r\n var evt = error && error.evt;\r\n if (!isError(error)) {\r\n error = error[strError] || evt || error;\r\n }\r\n _self[_DYN_TYPE_NAME /* @min:%2etypeName */] = dataSanitizeString(logger, _getErrorType(error)) || strNotSpecified;\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] = dataSanitizeMessage(logger, _formatMessage(exception || error, _self[_DYN_TYPE_NAME /* @min:%2etypeName */])) || strNotSpecified;\r\n var stack = exception[strStackDetails] || _getStackFromErrorObj(exception);\r\n _self[_DYN_PARSED_STACK /* @min:%2eparsedStack */] = _parseStack(stack);\r\n // after parsedStack is inited, iterate over each frame object, sanitize its assembly field\r\n if (isArray(_self[_DYN_PARSED_STACK /* @min:%2eparsedStack */])) {\r\n arrMap(_self[_DYN_PARSED_STACK /* @min:%2eparsedStack */], function (frame) { return frame[_DYN_ASSEMBLY /* @min:%2eassembly */] = dataSanitizeString(logger, frame[_DYN_ASSEMBLY /* @min:%2eassembly */]); });\r\n }\r\n _self[strStack] = dataSanitizeException(logger, _formatStackTrace(stack));\r\n _self.hasFullStack = isArray(_self.parsedStack) && _self.parsedStack[_DYN_LENGTH /* @min:%2elength */] > 0;\r\n if (properties) {\r\n properties[_DYN_TYPE_NAME /* @min:%2etypeName */] = properties[_DYN_TYPE_NAME /* @min:%2etypeName */] || _self[_DYN_TYPE_NAME /* @min:%2etypeName */];\r\n }\r\n }\r\n else {\r\n _self[_DYN_TYPE_NAME /* @min:%2etypeName */] = exception[_DYN_TYPE_NAME /* @min:%2etypeName */];\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] = exception[_DYN_MESSAGE /* @min:%2emessage */];\r\n _self[strStack] = exception[strStack];\r\n _self[_DYN_PARSED_STACK /* @min:%2eparsedStack */] = exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */] || [];\r\n _self[_DYN_HAS_FULL_STACK /* @min:%2ehasFullStack */] = exception[_DYN_HAS_FULL_STACK /* @min:%2ehasFullStack */];\r\n }\r\n }\r\n _ExceptionDetails.prototype.toInterface = function () {\r\n var _a;\r\n var _self = this;\r\n var parsedStack = _self[_DYN_PARSED_STACK /* @min:%2eparsedStack */] instanceof Array\r\n && arrMap(_self[_DYN_PARSED_STACK /* @min:%2eparsedStack */], function (frame) { return frame.toInterface(); });\r\n var exceptionDetailsInterface = (_a = {\r\n id: _self.id,\r\n outerId: _self.outerId,\r\n typeName: _self[_DYN_TYPE_NAME /* @min:%2etypeName */],\r\n message: _self[_DYN_MESSAGE /* @min:%2emessage */],\r\n hasFullStack: _self[_DYN_HAS_FULL_STACK /* @min:%2ehasFullStack */],\r\n stack: _self[strStack]\r\n },\r\n _a[_DYN_PARSED_STACK /* @min:parsedStack */] = parsedStack || undefined,\r\n _a);\r\n return exceptionDetailsInterface;\r\n };\r\n _ExceptionDetails.CreateFromInterface = function (logger, exception) {\r\n var parsedStack = (exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */] instanceof Array\r\n && arrMap(exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */], function (frame) { return _StackFrame[_DYN__CREATE_FROM_INTERFA1 /* @min:%2eCreateFromInterface */](frame); }))\r\n || exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */];\r\n var exceptionDetails = new _ExceptionDetails(logger, __assign(__assign({}, exception), { parsedStack: parsedStack }));\r\n return exceptionDetails;\r\n };\r\n return _ExceptionDetails;\r\n}());\r\nexport { _ExceptionDetails };\r\nvar _StackFrame = /** @class */ (function () {\r\n function _StackFrame(sourceFrame, level) {\r\n this.aiDataContract = {\r\n level: 1 /* FieldType.Required */,\r\n method: 1 /* FieldType.Required */,\r\n assembly: 0 /* FieldType.Default */,\r\n fileName: 0 /* FieldType.Default */,\r\n line: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */] = 0;\r\n // Not converting this to isString() as typescript uses this logic to \"understand\" the different\r\n // types for the 2 different code paths\r\n if (typeof sourceFrame === \"string\") {\r\n var frame = sourceFrame;\r\n _self[_DYN_LEVEL /* @min:%2elevel */] = level;\r\n _self[_DYN_METHOD /* @min:%2emethod */] = NoMethod;\r\n _self[_DYN_ASSEMBLY /* @min:%2eassembly */] = strTrim(frame);\r\n _self[_DYN_FILE_NAME /* @min:%2efileName */] = \"\";\r\n _self[_DYN_LINE /* @min:%2eline */] = 0;\r\n var matches = frame.match(_StackFrame.regex);\r\n if (matches && matches[_DYN_LENGTH /* @min:%2elength */] >= 5) {\r\n _self[_DYN_METHOD /* @min:%2emethod */] = strTrim(matches[2]) || _self[_DYN_METHOD /* @min:%2emethod */];\r\n _self[_DYN_FILE_NAME /* @min:%2efileName */] = strTrim(matches[4]);\r\n _self[_DYN_LINE /* @min:%2eline */] = parseInt(matches[5]) || 0;\r\n }\r\n }\r\n else {\r\n _self[_DYN_LEVEL /* @min:%2elevel */] = sourceFrame[_DYN_LEVEL /* @min:%2elevel */];\r\n _self[_DYN_METHOD /* @min:%2emethod */] = sourceFrame[_DYN_METHOD /* @min:%2emethod */];\r\n _self[_DYN_ASSEMBLY /* @min:%2eassembly */] = sourceFrame[_DYN_ASSEMBLY /* @min:%2eassembly */];\r\n _self[_DYN_FILE_NAME /* @min:%2efileName */] = sourceFrame[_DYN_FILE_NAME /* @min:%2efileName */];\r\n _self[_DYN_LINE /* @min:%2eline */] = sourceFrame[_DYN_LINE /* @min:%2eline */];\r\n _self[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */] = 0;\r\n }\r\n _self.sizeInBytes += _self.method[_DYN_LENGTH /* @min:%2elength */];\r\n _self.sizeInBytes += _self.fileName[_DYN_LENGTH /* @min:%2elength */];\r\n _self.sizeInBytes += _self.assembly[_DYN_LENGTH /* @min:%2elength */];\r\n // todo: these might need to be removed depending on how the back-end settles on their size calculation\r\n _self[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */] += _StackFrame.baseSize;\r\n _self.sizeInBytes += _self.level.toString()[_DYN_LENGTH /* @min:%2elength */];\r\n _self.sizeInBytes += _self.line.toString()[_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n _StackFrame.CreateFromInterface = function (frame) {\r\n return new _StackFrame(frame, null /* level is available in frame interface */);\r\n };\r\n _StackFrame.prototype.toInterface = function () {\r\n var _self = this;\r\n return {\r\n level: _self[_DYN_LEVEL /* @min:%2elevel */],\r\n method: _self[_DYN_METHOD /* @min:%2emethod */],\r\n assembly: _self[_DYN_ASSEMBLY /* @min:%2eassembly */],\r\n fileName: _self[_DYN_FILE_NAME /* @min:%2efileName */],\r\n line: _self[_DYN_LINE /* @min:%2eline */]\r\n };\r\n };\r\n // regex to match stack frames from ie/chrome/ff\r\n // methodName=$2, fileName=$4, lineNo=$5, column=$6\r\n _StackFrame.regex = /^([\\s]+at)?[\\s]{0,50}([^\\@\\()]+?)[\\s]{0,50}(\\@|\\()([^\\(\\n]+):([0-9]+):([0-9]+)(\\)?)$/;\r\n _StackFrame.baseSize = 58; // '{\"method\":\"\",\"level\":,\"assembly\":\"\",\"fileName\":\"\",\"line\":}'.length\r\n return _StackFrame;\r\n}());\r\nexport { _StackFrame };\r\n//# sourceMappingURL=Exception.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { _DYN_COOKIE_CFG, _DYN_INDEX_OF, _DYN_LENGTH, _DYN_LOGGER, _DYN_SET_ENABLED, _DYN_SPLIT, _DYN_SUBSTRING, _DYN_USER_AGENT } from \"../__DynamicConstants\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nimport { dumpObj, getDocument, getLocation, getNavigator, isIE } from \"./EnvUtils\";\r\nimport { arrForEach, dateNow, getExceptionName, isArray, isFunction, isNotNullOrUndefined, isNullOrUndefined, isString, isTruthy, isUndefined, objForEachKey, setValue, strContains, strEndsWith, strTrim } from \"./HelperFuncs\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nvar strToGMTString = \"toGMTString\";\r\nvar strToUTCString = \"toUTCString\";\r\nvar strCookie = \"cookie\";\r\nvar strExpires = \"expires\";\r\nvar strEnabled = \"enabled\";\r\nvar strIsCookieUseDisabled = \"isCookieUseDisabled\";\r\nvar strDisableCookiesUsage = \"disableCookiesUsage\";\r\nvar strConfigCookieMgr = \"_ckMgr\";\r\nvar _supportsCookies = null;\r\nvar _allowUaSameSite = null;\r\nvar _parsedCookieValue = null;\r\nvar _doc = getDocument();\r\nvar _cookieCache = {};\r\nvar _globalCookieConfig = {};\r\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 */\r\nexport function _gblCookieMgr(config, logger) {\r\n // Stash the global instance against the BaseCookieMgr class\r\n var inst = createCookieMgr[strConfigCookieMgr] || _globalCookieConfig[strConfigCookieMgr];\r\n if (!inst) {\r\n // Note: not using the getSetValue() helper as that would require always creating a temporary cookieMgr\r\n // that ultimately is never used\r\n inst = createCookieMgr[strConfigCookieMgr] = createCookieMgr(config, logger);\r\n _globalCookieConfig[strConfigCookieMgr] = inst;\r\n }\r\n return inst;\r\n}\r\nfunction _isMgrEnabled(cookieMgr) {\r\n if (cookieMgr) {\r\n return cookieMgr.isEnabled();\r\n }\r\n return true;\r\n}\r\nfunction _createCookieMgrConfig(rootConfig) {\r\n var cookieMgrCfg = rootConfig[_DYN_COOKIE_CFG /* @min:%2ecookieCfg */] = rootConfig[_DYN_COOKIE_CFG /* @min:%2ecookieCfg */] || {};\r\n // Sets the values from the root config if not already present on the cookieMgrCfg\r\n setValue(cookieMgrCfg, \"domain\", rootConfig.cookieDomain, isNotNullOrUndefined, isNullOrUndefined);\r\n setValue(cookieMgrCfg, \"path\", rootConfig.cookiePath || \"/\", null, isNullOrUndefined);\r\n if (isNullOrUndefined(cookieMgrCfg[strEnabled])) {\r\n // Set the enabled from the provided setting or the legacy root values\r\n var cookieEnabled = void 0;\r\n if (!isUndefined(rootConfig[strIsCookieUseDisabled])) {\r\n cookieEnabled = !rootConfig[strIsCookieUseDisabled];\r\n }\r\n if (!isUndefined(rootConfig[strDisableCookiesUsage])) {\r\n cookieEnabled = !rootConfig[strDisableCookiesUsage];\r\n }\r\n cookieMgrCfg[strEnabled] = cookieEnabled;\r\n }\r\n return cookieMgrCfg;\r\n}\r\nfunction _isIgnoredCookie(cookieMgrCfg, name) {\r\n if (name && cookieMgrCfg && isArray(cookieMgrCfg.ignoreCookies)) {\r\n return cookieMgrCfg.ignoreCookies[_DYN_INDEX_OF /* @min:%2eindexOf */](name) !== -1;\r\n }\r\n return false;\r\n}\r\nfunction _isBlockedCookie(cookieMgrCfg, name) {\r\n if (name && cookieMgrCfg && isArray(cookieMgrCfg.blockedCookies)) {\r\n if (cookieMgrCfg.blockedCookies[_DYN_INDEX_OF /* @min:%2eindexOf */](name) !== -1) {\r\n return true;\r\n }\r\n }\r\n return _isIgnoredCookie(cookieMgrCfg, name);\r\n}\r\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 */\r\nexport function safeGetCookieMgr(core, config) {\r\n var cookieMgr;\r\n if (core) {\r\n // Always returns an instance\r\n cookieMgr = core.getCookieMgr();\r\n }\r\n else if (config) {\r\n var cookieCfg = config[_DYN_COOKIE_CFG /* @min:%2ecookieCfg */];\r\n if (cookieCfg[strConfigCookieMgr]) {\r\n cookieMgr = cookieCfg[strConfigCookieMgr];\r\n }\r\n else {\r\n cookieMgr = createCookieMgr(config);\r\n }\r\n }\r\n if (!cookieMgr) {\r\n // Get or initialize the default global (legacy) cookie manager if we couldn't find one\r\n cookieMgr = _gblCookieMgr(config, (core || {})[_DYN_LOGGER /* @min:%2elogger */]);\r\n }\r\n return cookieMgr;\r\n}\r\nexport function createCookieMgr(rootConfig, logger) {\r\n var _a;\r\n var cookieMgrConfig = _createCookieMgrConfig(rootConfig || _globalCookieConfig);\r\n var _path = cookieMgrConfig.path || \"/\";\r\n var _domain = cookieMgrConfig.domain;\r\n // Explicitly checking against false, so that setting to undefined will === true\r\n var _enabled = cookieMgrConfig[strEnabled] !== false;\r\n var cookieMgr = (_a = {\r\n isEnabled: function () {\r\n var enabled = _enabled && areCookiesSupported(logger);\r\n // Using an indirect lookup for any global cookie manager to support tree shaking for SDK's\r\n // that don't use the \"applicationinsights-core\" version of the default cookie function\r\n var gblManager = _globalCookieConfig[strConfigCookieMgr];\r\n if (enabled && gblManager && cookieMgr !== gblManager) {\r\n // Make sure the GlobalCookie Manager instance (if not this instance) is also enabled.\r\n // As the global (deprecated) functions may have been called (for backward compatibility)\r\n enabled = _isMgrEnabled(gblManager);\r\n }\r\n return enabled;\r\n }\r\n },\r\n _a[_DYN_SET_ENABLED /* @min:setEnabled */] = function (value) {\r\n // Explicitly checking against false, so that setting to undefined will === true\r\n _enabled = value !== false;\r\n },\r\n _a.set = function (name, value, maxAgeSec, domain, path) {\r\n var result = false;\r\n if (_isMgrEnabled(cookieMgr) && !_isBlockedCookie(cookieMgrConfig, name)) {\r\n var values = {};\r\n var theValue = strTrim(value || STR_EMPTY);\r\n var idx = theValue[_DYN_INDEX_OF /* @min:%2eindexOf */](\";\");\r\n if (idx !== -1) {\r\n theValue = strTrim(value[_DYN_SUBSTRING /* @min:%2esubstring */](0, idx));\r\n values = _extractParts(value[_DYN_SUBSTRING /* @min:%2esubstring */](idx + 1));\r\n }\r\n // Only update domain if not already present (isUndefined) and the value is truthy (not null, undefined or empty string)\r\n setValue(values, \"domain\", domain || _domain, isTruthy, isUndefined);\r\n if (!isNullOrUndefined(maxAgeSec)) {\r\n var _isIE = isIE();\r\n if (isUndefined(values[strExpires])) {\r\n var nowMs = dateNow();\r\n // Only add expires if not already present\r\n var expireMs = nowMs + (maxAgeSec * 1000);\r\n // Sanity check, if zero or -ve then ignore\r\n if (expireMs > 0) {\r\n var expiry = new Date();\r\n expiry.setTime(expireMs);\r\n setValue(values, strExpires, _formatDate(expiry, !_isIE ? strToUTCString : strToGMTString) || _formatDate(expiry, _isIE ? strToGMTString : strToUTCString) || STR_EMPTY, isTruthy);\r\n }\r\n }\r\n if (!_isIE) {\r\n // Only replace if not already present\r\n setValue(values, \"max-age\", STR_EMPTY + maxAgeSec, null, isUndefined);\r\n }\r\n }\r\n var location_1 = getLocation();\r\n if (location_1 && location_1.protocol === \"https:\") {\r\n setValue(values, \"secure\", null, null, isUndefined);\r\n // Only set same site if not also secure\r\n if (_allowUaSameSite === null) {\r\n _allowUaSameSite = !uaDisallowsSameSiteNone((getNavigator() || {})[_DYN_USER_AGENT /* @min:%2euserAgent */]);\r\n }\r\n if (_allowUaSameSite) {\r\n setValue(values, \"SameSite\", \"None\", null, isUndefined);\r\n }\r\n }\r\n setValue(values, \"path\", path || _path, null, isUndefined);\r\n var setCookieFn = cookieMgrConfig.setCookie || _setCookieValue;\r\n setCookieFn(name, _formatCookieValue(theValue, values));\r\n result = true;\r\n }\r\n return result;\r\n },\r\n _a.get = function (name) {\r\n var value = STR_EMPTY;\r\n if (_isMgrEnabled(cookieMgr) && !_isIgnoredCookie(cookieMgrConfig, name)) {\r\n value = (cookieMgrConfig.getCookie || _getCookieValue)(name);\r\n }\r\n return value;\r\n },\r\n _a.del = function (name, path) {\r\n var result = false;\r\n if (_isMgrEnabled(cookieMgr)) {\r\n // Only remove the cookie if the manager and cookie support has not been disabled\r\n result = cookieMgr.purge(name, path);\r\n }\r\n return result;\r\n },\r\n _a.purge = function (name, path) {\r\n var _a;\r\n var result = false;\r\n if (areCookiesSupported(logger)) {\r\n // Setting the expiration date in the past immediately removes the cookie\r\n var values = (_a = {},\r\n _a[\"path\"] = path ? path : \"/\",\r\n _a[strExpires] = \"Thu, 01 Jan 1970 00:00:01 GMT\",\r\n _a);\r\n if (!isIE()) {\r\n // Set max age to expire now\r\n values[\"max-age\"] = \"0\";\r\n }\r\n var delCookie = cookieMgrConfig.delCookie || _setCookieValue;\r\n delCookie(name, _formatCookieValue(STR_EMPTY, values));\r\n result = true;\r\n }\r\n return result;\r\n },\r\n _a);\r\n // Associated this cookie manager with the config\r\n cookieMgr[strConfigCookieMgr] = cookieMgr;\r\n return cookieMgr;\r\n}\r\n/*\r\n* Helper method to tell if document.cookie object is supported by the runtime\r\n*/\r\nexport function areCookiesSupported(logger) {\r\n if (_supportsCookies === null) {\r\n _supportsCookies = false;\r\n try {\r\n var doc = _doc || {};\r\n _supportsCookies = doc[strCookie] !== undefined;\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 68 /* _eInternalMessageId.CannotAccessCookie */, \"Cannot access document.cookie - \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return _supportsCookies;\r\n}\r\nfunction _extractParts(theValue) {\r\n var values = {};\r\n if (theValue && theValue[_DYN_LENGTH /* @min:%2elength */]) {\r\n var parts = strTrim(theValue)[_DYN_SPLIT /* @min:%2esplit */](\";\");\r\n arrForEach(parts, function (thePart) {\r\n thePart = strTrim(thePart || STR_EMPTY);\r\n if (thePart) {\r\n var idx = thePart[_DYN_INDEX_OF /* @min:%2eindexOf */](\"=\");\r\n if (idx === -1) {\r\n values[thePart] = null;\r\n }\r\n else {\r\n values[strTrim(thePart[_DYN_SUBSTRING /* @min:%2esubstring */](0, idx))] = strTrim(thePart[_DYN_SUBSTRING /* @min:%2esubstring */](idx + 1));\r\n }\r\n }\r\n });\r\n }\r\n return values;\r\n}\r\nfunction _formatDate(theDate, func) {\r\n if (isFunction(theDate[func])) {\r\n return theDate[func]();\r\n }\r\n return null;\r\n}\r\nfunction _formatCookieValue(value, values) {\r\n var cookieValue = value || STR_EMPTY;\r\n objForEachKey(values, function (name, theValue) {\r\n cookieValue += \"; \" + name + (!isNullOrUndefined(theValue) ? \"=\" + theValue : STR_EMPTY);\r\n });\r\n return cookieValue;\r\n}\r\nfunction _getCookieValue(name) {\r\n var cookieValue = STR_EMPTY;\r\n if (_doc) {\r\n var theCookie = _doc[strCookie] || STR_EMPTY;\r\n if (_parsedCookieValue !== theCookie) {\r\n _cookieCache = _extractParts(theCookie);\r\n _parsedCookieValue = theCookie;\r\n }\r\n cookieValue = strTrim(_cookieCache[name] || STR_EMPTY);\r\n }\r\n return cookieValue;\r\n}\r\nfunction _setCookieValue(name, cookieValue) {\r\n if (_doc) {\r\n _doc[strCookie] = name + \"=\" + cookieValue;\r\n }\r\n}\r\nexport function uaDisallowsSameSiteNone(userAgent) {\r\n if (!isString(userAgent)) {\r\n return false;\r\n }\r\n // Cover all iOS based browsers here. This includes:\r\n // - Safari on iOS 12 for iPhone, iPod Touch, iPad\r\n // - WkWebview on iOS 12 for iPhone, iPod Touch, iPad\r\n // - Chrome on iOS 12 for iPhone, iPod Touch, iPad\r\n // All of which are broken by SameSite=None, because they use the iOS networking stack\r\n if (strContains(userAgent, \"CPU iPhone OS 12\") || strContains(userAgent, \"iPad; CPU OS 12\")) {\r\n return true;\r\n }\r\n // Cover Mac OS X based browsers that use the Mac OS networking stack. This includes:\r\n // - Safari on Mac OS X\r\n // This does not include:\r\n // - Internal browser on Mac OS X\r\n // - Chrome on Mac OS X\r\n // - Chromium on Mac OS X\r\n // Because they do not use the Mac OS networking stack.\r\n if (strContains(userAgent, \"Macintosh; Intel Mac OS X 10_14\") && strContains(userAgent, \"Version/\") && strContains(userAgent, \"Safari\")) {\r\n return true;\r\n }\r\n // Cover Mac OS X internal browsers that use the Mac OS networking stack. This includes:\r\n // - Internal browser on Mac OS X\r\n // This does not include:\r\n // - Safari on Mac OS X\r\n // - Chrome on Mac OS X\r\n // - Chromium on Mac OS X\r\n // Because they do not use the Mac OS networking stack.\r\n if (strContains(userAgent, \"Macintosh; Intel Mac OS X 10_14\") && strEndsWith(userAgent, \"AppleWebKit/605.1.15 (KHTML, like Gecko)\")) {\r\n return true;\r\n }\r\n // Cover Chrome 50-69, because some versions are broken by SameSite=None, and none in this range require it.\r\n // Note: this covers some pre-Chromium Edge versions, but pre-Chromim Edge does not require SameSite=None, so this is fine.\r\n // Note: this regex applies to Windows, Mac OS X, and Linux, deliberately.\r\n if (strContains(userAgent, \"Chrome/5\") || strContains(userAgent, \"Chrome/6\")) {\r\n return true;\r\n }\r\n // Unreal Engine runs Chromium 59, but does not advertise as Chrome until 4.23. Treat versions of Unreal\r\n // that don't specify their Chrome version as lacking support for SameSite=None.\r\n if (strContains(userAgent, \"UnrealEngine\") && !strContains(userAgent, \"Chrome\")) {\r\n return true;\r\n }\r\n // UCBrowser < 12.13.2 ignores Set-Cookie headers with SameSite=None\r\n // NB: this rule isn't complete - you need regex to make a complete rule.\r\n // See: https://www.chromium.org/updates/same-site/incompatible-clients\r\n if (strContains(userAgent, \"UCBrowser/12\") || strContains(userAgent, \"UCBrowser/11\")) {\r\n return true;\r\n }\r\n return false;\r\n}\r\n//# sourceMappingURL=CookieMgr.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\nimport { getCrypto, getMsCrypto, isIE } from \"./EnvUtils\";\r\nimport { dateNow } from \"./HelperFuncs\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nvar UInt32Mask = 0x100000000;\r\nvar MaxUInt32 = 0xffffffff;\r\n// MWC based Random generator (for IE)\r\nvar _mwcSeeded = false;\r\nvar _mwcW = 123456789;\r\nvar _mwcZ = 987654321;\r\n// Takes any integer\r\nfunction _mwcSeed(seedValue) {\r\n if (seedValue < 0) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n seedValue >>>= 0;\r\n }\r\n _mwcW = (123456789 + seedValue) & MaxUInt32;\r\n _mwcZ = (987654321 - seedValue) & MaxUInt32;\r\n _mwcSeeded = true;\r\n}\r\nfunction _autoSeedMwc() {\r\n // Simple initialization using default Math.random() - So we inherit any entropy from the browser\r\n // and bitwise XOR with the current milliseconds\r\n try {\r\n var now = dateNow() & 0x7fffffff;\r\n _mwcSeed(((Math.random() * UInt32Mask) ^ now) + now);\r\n }\r\n catch (e) {\r\n // Don't crash if something goes wrong\r\n }\r\n}\r\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 */\r\nexport function randomValue(maxValue) {\r\n if (maxValue > 0) {\r\n return Math.floor((random32() / MaxUInt32) * (maxValue + 1)) >>> 0;\r\n }\r\n return 0;\r\n}\r\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 */\r\nexport function random32(signed) {\r\n var value = 0;\r\n var c = getCrypto() || getMsCrypto();\r\n if (c && c.getRandomValues) {\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = c.getRandomValues(new Uint32Array(1))[0] & MaxUInt32;\r\n }\r\n if (value === 0 && isIE()) {\r\n // For IE 6, 7, 8 (especially on XP) Math.random is not very random\r\n if (!_mwcSeeded) {\r\n // Set the seed for the Mwc algorithm\r\n _autoSeedMwc();\r\n }\r\n // Don't use Math.random for IE\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = mwcRandom32() & MaxUInt32;\r\n }\r\n if (value === 0) {\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = Math.floor((UInt32Mask * Math.random()) | 0);\r\n }\r\n if (!signed) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n value >>>= 0;\r\n }\r\n return value;\r\n}\r\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 */\r\nexport function mwcRandomSeed(value) {\r\n if (!value) {\r\n _autoSeedMwc();\r\n }\r\n else {\r\n _mwcSeed(value);\r\n }\r\n}\r\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 */\r\nexport function mwcRandom32(signed) {\r\n _mwcZ = (36969 * (_mwcZ & 0xFFFF) + (_mwcZ >> 16)) & MaxUInt32;\r\n _mwcW = (18000 * (_mwcW & 0xFFFF) + (_mwcW >> 16)) & MaxUInt32;\r\n var value = (((_mwcZ << 16) + (_mwcW & 0xFFFF)) >>> 0) & MaxUInt32 | 0;\r\n if (!signed) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n value >>>= 0;\r\n }\r\n return value;\r\n}\r\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 */\r\nexport function newId(maxLength) {\r\n if (maxLength === void 0) { maxLength = 22; }\r\n var base64chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\r\n // Start with an initial random number, consuming the value in reverse byte order\r\n var number = random32() >>> 0; // Make sure it's a +ve number\r\n var chars = 0;\r\n var result = STR_EMPTY;\r\n while (result[_DYN_LENGTH /* @min:%2elength */] < maxLength) {\r\n chars++;\r\n result += base64chars.charAt(number & 0x3F);\r\n number >>>= 6; // Zero fill with right shift\r\n if (chars === 5) {\r\n // 5 base64 characters === 30 bits so we don't have enough bits for another base64 char\r\n // So add on another 30 bits and make sure it's +ve\r\n number = (((random32() << 2) & 0xFFFFFFFF) | (number & 0x03)) >>> 0;\r\n chars = 0; // We need to reset the number every 5 chars (30 bits)\r\n }\r\n }\r\n return result;\r\n}\r\n//# sourceMappingURL=RandomHelper.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { ObjDefineProperty } from \"@microsoft/applicationinsights-shims\";\r\nimport { _DYN_NODE_TYPE } from \"../__DynamicConstants\";\r\nimport { normalizeJsName } from \"./HelperFuncs\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nimport { newId } from \"./RandomHelper\";\r\nvar _objDefineProperty = ObjDefineProperty;\r\nvar version = '2.8.14';\r\nvar instanceName = \".\" + newId(6);\r\nvar _dataUid = 0;\r\nfunction _createAccessor(target, prop, value) {\r\n if (_objDefineProperty) {\r\n try {\r\n _objDefineProperty(target, prop, {\r\n value: value,\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return true;\r\n }\r\n catch (e) {\r\n // IE8 Defines a defineProperty on Object but it's only supported for DOM elements so it will throw\r\n // We will just ignore this here.\r\n }\r\n }\r\n return false;\r\n}\r\n// Accepts only:\r\n// - Node\r\n// - Node.ELEMENT_NODE\r\n// - Node.DOCUMENT_NODE\r\n// - Object\r\n// - Any\r\nfunction _canAcceptData(target) {\r\n return target[_DYN_NODE_TYPE /* @min:%2enodeType */] === 1 || target[_DYN_NODE_TYPE /* @min:%2enodeType */] === 9 || !(+target[_DYN_NODE_TYPE /* @min:%2enodeType */]);\r\n}\r\nfunction _getCache(data, target) {\r\n var theCache = target[data.id];\r\n if (!theCache) {\r\n theCache = {};\r\n try {\r\n if (_canAcceptData(target)) {\r\n if (!_createAccessor(target, data.id, theCache)) {\r\n // Environment doesn't support accessor, so just use direct assignment\r\n target[data.id] = theCache;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // Not all environments allow extending all objects, so just ignore the cache in those cases\r\n }\r\n }\r\n return theCache;\r\n}\r\nexport function createUniqueNamespace(name, includeVersion) {\r\n if (includeVersion === void 0) { includeVersion = false; }\r\n return normalizeJsName(name + (_dataUid++) + (includeVersion ? \".\" + version : STR_EMPTY) + instanceName);\r\n}\r\nexport function createElmNodeData(name) {\r\n var data = {\r\n id: createUniqueNamespace(\"_aiData-\" + (name || STR_EMPTY) + \".\" + version),\r\n accept: function (target) {\r\n return _canAcceptData(target);\r\n },\r\n get: function (target, name, defValue, addDefault) {\r\n var theCache = target[data.id];\r\n if (!theCache) {\r\n if (addDefault) {\r\n // Side effect is adds the cache\r\n theCache = _getCache(data, target);\r\n theCache[normalizeJsName(name)] = defValue;\r\n }\r\n return defValue;\r\n }\r\n return theCache[normalizeJsName(name)];\r\n },\r\n kill: function (target, name) {\r\n if (target && target[name]) {\r\n try {\r\n delete target[name];\r\n }\r\n catch (e) {\r\n // Just cleaning up, so if this fails -- ignore\r\n }\r\n }\r\n }\r\n };\r\n return data;\r\n}\r\n//# sourceMappingURL=DataCacheHelper.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { _DYN_HANDLER, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_REPLACE, _DYN_SPLICE, _DYN_SPLIT, _DYN_TYPE } from \"../__DynamicConstants\";\r\nimport { createElmNodeData, createUniqueNamespace } from \"./DataCacheHelper\";\r\nimport { getDocument, getWindow } from \"./EnvUtils\";\r\nimport { arrForEach, arrIndexOf, isArray, objForEachKey, objKeys } from \"./HelperFuncs\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n// Added to help with minfication\r\nvar strOnPrefix = \"on\";\r\nvar strAttachEvent = \"attachEvent\";\r\nvar strAddEventHelper = \"addEventListener\";\r\nvar strDetachEvent = \"detachEvent\";\r\nvar strRemoveEventListener = \"removeEventListener\";\r\nvar strEvents = \"events\";\r\nvar strVisibilityChangeEvt = \"visibilitychange\";\r\nvar strPageHide = \"pagehide\";\r\nvar strPageShow = \"pageshow\";\r\nvar strUnload = \"unload\";\r\nvar strBeforeUnload = \"beforeunload\";\r\nvar strPageHideNamespace = createUniqueNamespace(\"aiEvtPageHide\");\r\nvar strPageShowNamespace = createUniqueNamespace(\"aiEvtPageShow\");\r\nvar rRemoveEmptyNs = /\\.[\\.]+/g;\r\nvar rRemoveTrailingEmptyNs = /[\\.]+$/;\r\nvar _guid = 1;\r\nvar elmNodeData = createElmNodeData(\"events\");\r\nvar eventNamespace = /^([^.]*)(?:\\.(.+)|)/;\r\nfunction _normalizeNamespace(name) {\r\n if (name && name[_DYN_REPLACE /* @min:%2ereplace */]) {\r\n return name[_DYN_REPLACE /* @min:%2ereplace */](/^[\\s\\.]+|(?=[\\s\\.])[\\.\\s]+$/g, STR_EMPTY);\r\n }\r\n return name;\r\n}\r\nfunction _getEvtNamespace(eventName, evtNamespace) {\r\n var _a;\r\n if (evtNamespace) {\r\n var theNamespace_1 = STR_EMPTY;\r\n if (isArray(evtNamespace)) {\r\n theNamespace_1 = STR_EMPTY;\r\n arrForEach(evtNamespace, function (name) {\r\n name = _normalizeNamespace(name);\r\n if (name) {\r\n if (name[0] !== \".\") {\r\n name = \".\" + name;\r\n }\r\n theNamespace_1 += name;\r\n }\r\n });\r\n }\r\n else {\r\n theNamespace_1 = _normalizeNamespace(evtNamespace);\r\n }\r\n if (theNamespace_1) {\r\n if (theNamespace_1[0] !== \".\") {\r\n theNamespace_1 = \".\" + theNamespace_1;\r\n }\r\n // We may only have the namespace and not an eventName\r\n eventName = (eventName || STR_EMPTY) + theNamespace_1;\r\n }\r\n }\r\n var parsedEvent = (eventNamespace.exec(eventName || STR_EMPTY) || []);\r\n return _a = {},\r\n _a[_DYN_TYPE /* @min:type */] = parsedEvent[1],\r\n _a.ns = ((parsedEvent[2] || STR_EMPTY).replace(rRemoveEmptyNs, \".\").replace(rRemoveTrailingEmptyNs, STR_EMPTY)[_DYN_SPLIT /* @min:%2esplit */](\".\").sort()).join(\".\"),\r\n _a;\r\n}\r\n/**\r\n * Get all of the registered events on the target object, this is primarily used for testing cleanup but may also be used by\r\n * applications to remove their own events\r\n * @param target - The EventTarget that has registered events\r\n * @param eventName - [Optional] The name of the event to return the registered handlers and full name (with namespaces)\r\n * @param evtNamespace - [Optional] Additional namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace,\r\n * if the eventName also includes a namespace the namespace(s) are merged into a single namespace\r\n */\r\nexport function __getRegisteredEvents(target, eventName, evtNamespace) {\r\n var theEvents = [];\r\n var eventCache = elmNodeData.get(target, strEvents, {}, false);\r\n var evtName = _getEvtNamespace(eventName, evtNamespace);\r\n objForEachKey(eventCache, function (evtType, registeredEvents) {\r\n arrForEach(registeredEvents, function (value) {\r\n var _a;\r\n if (!evtName[_DYN_TYPE /* @min:%2etype */] || evtName[_DYN_TYPE /* @min:%2etype */] === value.evtName[_DYN_TYPE /* @min:%2etype */]) {\r\n if (!evtName.ns || evtName.ns === evtName.ns) {\r\n theEvents[_DYN_PUSH /* @min:%2epush */]((_a = {},\r\n _a[_DYN_NAME /* @min:name */] = value.evtName[_DYN_TYPE /* @min:%2etype */] + (value.evtName.ns ? \".\" + value.evtName.ns : STR_EMPTY),\r\n _a.handler = value[_DYN_HANDLER /* @min:%2ehandler */],\r\n _a));\r\n }\r\n }\r\n });\r\n });\r\n return theEvents;\r\n}\r\n// Exported for internal unit testing only\r\nfunction _getRegisteredEvents(target, evtName, addDefault) {\r\n if (addDefault === void 0) { addDefault = true; }\r\n var aiEvts = elmNodeData.get(target, strEvents, {}, addDefault);\r\n var registeredEvents = aiEvts[evtName];\r\n if (!registeredEvents) {\r\n registeredEvents = aiEvts[evtName] = [];\r\n }\r\n return registeredEvents;\r\n}\r\nfunction _doDetach(obj, evtName, handlerRef, useCapture) {\r\n if (obj && evtName && evtName[_DYN_TYPE /* @min:%2etype */]) {\r\n if (obj[strRemoveEventListener]) {\r\n obj[strRemoveEventListener](evtName[_DYN_TYPE /* @min:%2etype */], handlerRef, useCapture);\r\n }\r\n else if (obj[strDetachEvent]) {\r\n obj[strDetachEvent](strOnPrefix + evtName[_DYN_TYPE /* @min:%2etype */], handlerRef);\r\n }\r\n }\r\n}\r\nfunction _doAttach(obj, evtName, handlerRef, useCapture) {\r\n var result = false;\r\n if (obj && evtName && evtName[_DYN_TYPE /* @min:%2etype */] && handlerRef) {\r\n if (obj[strAddEventHelper]) {\r\n // all browsers except IE before version 9\r\n obj[strAddEventHelper](evtName[_DYN_TYPE /* @min:%2etype */], handlerRef, useCapture);\r\n result = true;\r\n }\r\n else if (obj[strAttachEvent]) {\r\n // IE before version 9\r\n obj[strAttachEvent](strOnPrefix + evtName[_DYN_TYPE /* @min:%2etype */], handlerRef);\r\n result = true;\r\n }\r\n }\r\n return result;\r\n}\r\nfunction _doUnregister(target, events, evtName, unRegFn) {\r\n var idx = events[_DYN_LENGTH /* @min:%2elength */];\r\n while (idx--) {\r\n var theEvent = events[idx];\r\n if (theEvent) {\r\n if (!evtName.ns || evtName.ns === theEvent.evtName.ns) {\r\n if (!unRegFn || unRegFn(theEvent)) {\r\n _doDetach(target, theEvent.evtName, theEvent[_DYN_HANDLER /* @min:%2ehandler */], theEvent.capture);\r\n // Remove the registered event\r\n events[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n }\r\n }\r\n }\r\n }\r\n}\r\nfunction _unregisterEvents(target, evtName, unRegFn) {\r\n if (evtName[_DYN_TYPE /* @min:%2etype */]) {\r\n _doUnregister(target, _getRegisteredEvents(target, evtName[_DYN_TYPE /* @min:%2etype */]), evtName, unRegFn);\r\n }\r\n else {\r\n var eventCache = elmNodeData.get(target, strEvents, {});\r\n objForEachKey(eventCache, function (evtType, events) {\r\n _doUnregister(target, events, evtName, unRegFn);\r\n });\r\n // Cleanup\r\n if (objKeys(eventCache)[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n elmNodeData.kill(target, strEvents);\r\n }\r\n }\r\n}\r\nexport function mergeEvtNamespace(theNamespace, namespaces) {\r\n var newNamespaces;\r\n if (namespaces) {\r\n if (isArray(namespaces)) {\r\n newNamespaces = [theNamespace].concat(namespaces);\r\n }\r\n else {\r\n newNamespaces = [theNamespace, namespaces];\r\n }\r\n // resort the namespaces so they are always in order\r\n newNamespaces = (_getEvtNamespace(\"xx\", newNamespaces).ns)[_DYN_SPLIT /* @min:%2esplit */](\".\");\r\n }\r\n else {\r\n newNamespaces = theNamespace;\r\n }\r\n return newNamespaces;\r\n}\r\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 eventName String that specifies any of the standard DHTML Events without \"on\" prefix, if may also include an optional (dot \".\" prefixed)\r\n * namespaces \"click\" \"click.mynamespace\" in addition to specific namespaces.\r\n * @param handlerRef Pointer that specifies the function to call when event fires\r\n * @param evtNamespace - [Optional] Additional namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace,\r\n * if the eventName also includes a namespace the namespace(s) are merged into a single namespace\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 */\r\nexport function eventOn(target, eventName, handlerRef, evtNamespace, useCapture) {\r\n var _a;\r\n if (useCapture === void 0) { useCapture = false; }\r\n var result = false;\r\n if (target) {\r\n try {\r\n var evtName = _getEvtNamespace(eventName, evtNamespace);\r\n result = _doAttach(target, evtName, handlerRef, useCapture);\r\n if (result && elmNodeData.accept(target)) {\r\n var registeredEvent = (_a = {\r\n guid: _guid++,\r\n evtName: evtName\r\n },\r\n _a[_DYN_HANDLER /* @min:handler */] = handlerRef,\r\n _a.capture = useCapture,\r\n _a);\r\n _getRegisteredEvents(target, evtName.type)[_DYN_PUSH /* @min:%2epush */](registeredEvent);\r\n }\r\n }\r\n catch (e) {\r\n // Just Ignore any error so that we don't break any execution path\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * Removes an event handler for the specified event\r\n * @param Object to remove the event from\r\n * @param eventName {string} - The name of the event, with optional namespaces or just the namespaces,\r\n * such as \"click\", \"click.mynamespace\" or \".mynamespace\"\r\n * @param handlerRef {any} - The callback function that needs to be removed from the given event, when using a\r\n * namespace (with or without a qualifying event) this may be null to remove all previously attached event handlers\r\n * otherwise this will only remove events with this specific handler.\r\n * @param evtNamespace - [Optional] Additional namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace,\r\n * if the eventName also includes a namespace the namespace(s) are merged into a single namespace\r\n * @param useCapture [Optional] Defaults to false\r\n */\r\nexport function eventOff(target, eventName, handlerRef, evtNamespace, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n if (target) {\r\n try {\r\n var evtName_1 = _getEvtNamespace(eventName, evtNamespace);\r\n var found_1 = false;\r\n _unregisterEvents(target, evtName_1, function (regEvent) {\r\n if ((evtName_1.ns && !handlerRef) || regEvent[_DYN_HANDLER /* @min:%2ehandler */] === handlerRef) {\r\n found_1 = true;\r\n return true;\r\n }\r\n return false;\r\n });\r\n if (!found_1) {\r\n // fallback to try and remove as requested\r\n _doDetach(target, evtName_1, handlerRef, useCapture);\r\n }\r\n }\r\n catch (e) {\r\n // Just Ignore any error so that we don't break any execution path\r\n }\r\n }\r\n}\r\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 and optional (dot \".\" prefixed) namespaces \"click\" \"click.mynamespace\".\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 */\r\nexport function attachEvent(obj, eventNameWithoutOn, handlerRef, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n return eventOn(obj, eventNameWithoutOn, handlerRef, null, useCapture);\r\n}\r\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, with optional namespaces or just the namespaces,\r\n * such as \"click\", \"click.mynamespace\" or \".mynamespace\"\r\n * @param handlerRef {any} - The callback function that needs to be removed from the given event, when using a\r\n * namespace (with or without a qualifying event) this may be null to remove all previously attached event handlers\r\n * otherwise this will only remove events with this specific handler.\r\n * @param useCapture [Optional] Defaults to false\r\n */\r\nexport function detachEvent(obj, eventNameWithoutOn, handlerRef, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n eventOff(obj, eventNameWithoutOn, handlerRef, null, useCapture);\r\n}\r\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 * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @return {boolean} - true if the handler was successfully added\r\n */\r\nexport function addEventHandler(eventName, callback, evtNamespace) {\r\n var result = false;\r\n var w = getWindow();\r\n if (w) {\r\n result = eventOn(w, eventName, callback, evtNamespace);\r\n result = eventOn(w[\"body\"], eventName, callback, evtNamespace) || result;\r\n }\r\n var doc = getDocument();\r\n if (doc) {\r\n result = eventOn(doc, eventName, callback, evtNamespace) || result;\r\n }\r\n return result;\r\n}\r\n/**\r\n * Trys to remove event handler(s) for the specified event/namespace to the window, body and document\r\n * @param eventName {string} - The name of the event, with optional namespaces or just the namespaces,\r\n * such as \"click\", \"click.mynamespace\" or \".mynamespace\"\r\n * @param callback {any} - - The callback function that needs to be removed from the given event, when using a\r\n * namespace (with or without a qualifying event) this may be null to remove all previously attached event handlers\r\n * otherwise this will only remove events with this specific handler.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n */\r\nexport function removeEventHandler(eventName, callback, evtNamespace) {\r\n var w = getWindow();\r\n if (w) {\r\n eventOff(w, eventName, callback, evtNamespace);\r\n eventOff(w[\"body\"], eventName, callback, evtNamespace);\r\n }\r\n var doc = getDocument();\r\n if (doc) {\r\n eventOff(doc, eventName, callback, evtNamespace);\r\n }\r\n}\r\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 * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nfunction _addEventListeners(events, listener, excludeEvents, evtNamespace) {\r\n var added = false;\r\n if (listener && events && events[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(events, function (name) {\r\n if (name) {\r\n if (!excludeEvents || arrIndexOf(excludeEvents, name) === -1) {\r\n added = addEventHandler(name, listener, evtNamespace) || added;\r\n }\r\n }\r\n });\r\n }\r\n return added;\r\n}\r\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 * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addEventListeners(events, listener, excludeEvents, evtNamespace) {\r\n var added = false;\r\n if (listener && events && isArray(events)) {\r\n added = _addEventListeners(events, listener, excludeEvents, evtNamespace);\r\n if (!added && excludeEvents && excludeEvents[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n // Failed to add any listeners and we excluded some, so just attempt to add the excluded events\r\n added = _addEventListeners(events, listener, null, evtNamespace);\r\n }\r\n }\r\n return added;\r\n}\r\n/**\r\n * Remove the listener from 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 evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n */\r\nexport function removeEventListeners(events, listener, evtNamespace) {\r\n if (events && isArray(events)) {\r\n arrForEach(events, function (name) {\r\n if (name) {\r\n removeEventHandler(name, listener, evtNamespace);\r\n }\r\n });\r\n }\r\n}\r\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 * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageUnloadEventListener(listener, excludeEvents, evtNamespace) {\r\n // Hook the unload event for the document, window and body to ensure that the client events are flushed to the server\r\n // As just hooking the window does not always fire (on chrome) for page navigation's.\r\n return addEventListeners([strBeforeUnload, strUnload, strPageHide], listener, excludeEvents, evtNamespace);\r\n}\r\n/**\r\n * Remove any matching 'beforeunload', 'unload' and 'pagehide' events that may have been added via addEventListener,\r\n * addEventListeners, addPageUnloadEventListener or addPageHideEventListener.\r\n * @param listener - The specific event callback to to be removed\r\n * @param evtNamespace - [Optional] Namespace(s) uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function removePageUnloadEventListener(listener, evtNamespace) {\r\n removeEventListeners([strBeforeUnload, strUnload, strPageHide], listener, evtNamespace);\r\n}\r\n/**\r\n * Listen to the pagehide and visibility changing to 'hidden' events, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when if you plan to call\r\n * removePageShowEventListener as the remove ignores the listener argument for the 'visibilitychange' event.\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 * @param evtNamespace - [Optional] A Namespace to append to the event listeners so they can be uniquely identified and removed\r\n * based on this namespace. This call also adds an additional unique \"pageshow\" namespace to the events\r\n * so that only the matching \"removePageHideEventListener\" can remove these events.\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 */\r\nexport function addPageHideEventListener(listener, excludeEvents, evtNamespace) {\r\n function _handlePageVisibility(evt) {\r\n var doc = getDocument();\r\n if (listener && doc && doc.visibilityState === \"hidden\") {\r\n listener(evt);\r\n }\r\n }\r\n // add the unique page show namespace to any provided namespace so we can only remove the ones added by \"pagehide\"\r\n var newNamespaces = mergeEvtNamespace(strPageHideNamespace, evtNamespace);\r\n var pageUnloadAdded = _addEventListeners([strPageHide], listener, excludeEvents, newNamespaces);\r\n if (!excludeEvents || arrIndexOf(excludeEvents, strVisibilityChangeEvt) === -1) {\r\n pageUnloadAdded = _addEventListeners([strVisibilityChangeEvt], _handlePageVisibility, excludeEvents, newNamespaces) || pageUnloadAdded;\r\n }\r\n if (!pageUnloadAdded && excludeEvents) {\r\n // Failed to add any listeners and we where requested to exclude some, so just call again without excluding anything\r\n pageUnloadAdded = addPageHideEventListener(listener, null, evtNamespace);\r\n }\r\n return pageUnloadAdded;\r\n}\r\n/**\r\n * Removes the pageHide event listeners added by addPageHideEventListener, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when calling addPageHideEventListener\r\n * as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The specific listener to remove for the 'pageshow' event only (ignored for 'visibilitychange')\r\n * @param evtNamespace - The unique namespace used when calling addPageShowEventListener\r\n */\r\nexport function removePageHideEventListener(listener, evtNamespace) {\r\n // add the unique page show namespace to any provided namespace so we only remove the ones added by \"pagehide\"\r\n var newNamespaces = mergeEvtNamespace(strPageHideNamespace, evtNamespace);\r\n removeEventListeners([strPageHide], listener, newNamespaces);\r\n removeEventListeners([strVisibilityChangeEvt], null, newNamespaces);\r\n}\r\n/**\r\n * Listen to the pageshow and visibility changing to 'visible' events, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when if you plan to call\r\n * removePageShowEventListener as the remove ignores the listener argument for the 'visibilitychange' event.\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 * @param evtNamespace - [Optional/Recommended] A Namespace to append to the event listeners so they can be uniquely\r\n * identified and removed based on this namespace. This call also adds an additional unique \"pageshow\" namespace to the events\r\n * so that only the matching \"removePageShowEventListener\" can remove these events.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageShowEventListener(listener, excludeEvents, evtNamespace) {\r\n function _handlePageVisibility(evt) {\r\n var doc = getDocument();\r\n if (listener && doc && doc.visibilityState === \"visible\") {\r\n listener(evt);\r\n }\r\n }\r\n // add the unique page show namespace to any provided namespace so we can only remove the ones added by \"pageshow\"\r\n var newNamespaces = mergeEvtNamespace(strPageShowNamespace, evtNamespace);\r\n var pageShowAdded = _addEventListeners([strPageShow], listener, excludeEvents, newNamespaces);\r\n pageShowAdded = _addEventListeners([strVisibilityChangeEvt], _handlePageVisibility, excludeEvents, newNamespaces) || pageShowAdded;\r\n if (!pageShowAdded && excludeEvents) {\r\n // Failed to add any listeners and we where requested to exclude some, so just call again without excluding anything\r\n pageShowAdded = addPageShowEventListener(listener, null, evtNamespace);\r\n }\r\n return pageShowAdded;\r\n}\r\n/**\r\n * Removes the pageShow event listeners added by addPageShowEventListener, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when calling addPageShowEventListener\r\n * as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The specific listener to remove for the 'pageshow' event only (ignored for 'visibilitychange')\r\n * @param evtNamespace - The unique namespace used when calling addPageShowEventListener\r\n */\r\nexport function removePageShowEventListener(listener, evtNamespace) {\r\n // add the unique page show namespace to any provided namespace so we only remove the ones added by \"pageshow\"\r\n var newNamespaces = mergeEvtNamespace(strPageShowNamespace, evtNamespace);\r\n removeEventListeners([strPageShow], listener, newNamespaces);\r\n removeEventListeners([strVisibilityChangeEvt], null, newNamespaces);\r\n}\r\n//# sourceMappingURL=EventHelpers.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { objCreateFn, strShimUndefined } from \"@microsoft/applicationinsights-shims\";\r\nimport { _DYN_LENGTH, _DYN_PUSH, _DYN_SET_ENABLED, _DYN_SUBSTR, _DYN_SUBSTRING } from \"../__DynamicConstants\";\r\nimport { _gblCookieMgr } from \"./CookieMgr\";\r\nimport { getPerformance, isIE } from \"./EnvUtils\";\r\nimport { addEventHandler, attachEvent, detachEvent } from \"./EventHelpers\";\r\nimport { arrForEach, arrIndexOf, arrMap, arrReduce, dateNow, hasOwnProperty, isArray, isBoolean, isDate, isError, isFunction, isNullOrUndefined, isNumber, isObject, isString, isTypeof, isUndefined, objDefineAccessors, objKeys, strTrim, toISOString } from \"./HelperFuncs\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nimport { mwcRandom32, mwcRandomSeed, newId, random32, randomValue } from \"./RandomHelper\";\r\nvar _cookieMgrs = null;\r\nvar _canUseCookies; // legacy supported config\r\n// Added to help with minfication\r\nexport var Undefined = strShimUndefined;\r\nexport function newGuid() {\r\n var uuid = generateW3CId();\r\n return uuid[_DYN_SUBSTRING /* @min:%2esubstring */](0, 8) + \"-\" + uuid[_DYN_SUBSTRING /* @min:%2esubstring */](8, 12) + \"-\" + uuid[_DYN_SUBSTRING /* @min:%2esubstring */](12, 16) + \"-\" + uuid[_DYN_SUBSTRING /* @min:%2esubstring */](16, 20) + \"-\" + uuid[_DYN_SUBSTRING /* @min:%2esubstring */](20);\r\n}\r\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 */\r\nexport function perfNow() {\r\n var perf = getPerformance();\r\n if (perf && perf.now) {\r\n return perf.now();\r\n }\r\n return dateNow();\r\n}\r\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 */\r\nexport function strEndsWith(value, search) {\r\n if (value && search) {\r\n var len = value[_DYN_LENGTH /* @min:%2elength */];\r\n var start = len - search[_DYN_LENGTH /* @min:%2elength */];\r\n return value[_DYN_SUBSTRING /* @min:%2esubstring */](start >= 0 ? start : 0, len) === search;\r\n }\r\n return false;\r\n}\r\n/**\r\n * generate W3C trace id\r\n */\r\nexport function generateW3CId() {\r\n var hexValues = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\r\n // rfc4122 version 4 UUID without dashes and with lowercase letters\r\n var oct = STR_EMPTY, tmp;\r\n for (var a = 0; a < 4; a++) {\r\n tmp = random32();\r\n oct +=\r\n hexValues[tmp & 0xF] +\r\n hexValues[tmp >> 4 & 0xF] +\r\n hexValues[tmp >> 8 & 0xF] +\r\n hexValues[tmp >> 12 & 0xF] +\r\n hexValues[tmp >> 16 & 0xF] +\r\n hexValues[tmp >> 20 & 0xF] +\r\n hexValues[tmp >> 24 & 0xF] +\r\n hexValues[tmp >> 28 & 0xF];\r\n }\r\n // \"Set the two most significant bits (bits 6 and 7) of the clock_seq_hi_and_reserved to zero and one, respectively\"\r\n var clockSequenceHi = hexValues[8 + (random32() & 0x03) | 0];\r\n return oct[_DYN_SUBSTR /* @min:%2esubstr */](0, 8) + oct[_DYN_SUBSTR /* @min:%2esubstr */](9, 4) + \"4\" + oct[_DYN_SUBSTR /* @min:%2esubstr */](13, 3) + clockSequenceHi + oct[_DYN_SUBSTR /* @min:%2esubstr */](16, 3) + oct[_DYN_SUBSTR /* @min:%2esubstr */](19, 12);\r\n}\r\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 */\r\nexport var CoreUtils = {\r\n _canUseCookies: undefined,\r\n isTypeof: isTypeof,\r\n isUndefined: isUndefined,\r\n isNullOrUndefined: isNullOrUndefined,\r\n hasOwnProperty: hasOwnProperty,\r\n isFunction: isFunction,\r\n isObject: isObject,\r\n isDate: isDate,\r\n isArray: isArray,\r\n isError: isError,\r\n isString: isString,\r\n isNumber: isNumber,\r\n isBoolean: isBoolean,\r\n toISOString: toISOString,\r\n arrForEach: arrForEach,\r\n arrIndexOf: arrIndexOf,\r\n arrMap: arrMap,\r\n arrReduce: arrReduce,\r\n strTrim: strTrim,\r\n objCreate: objCreateFn,\r\n objKeys: objKeys,\r\n objDefineAccessors: objDefineAccessors,\r\n addEventHandler: addEventHandler,\r\n dateNow: dateNow,\r\n isIE: isIE,\r\n disableCookies: disableCookies,\r\n newGuid: newGuid,\r\n perfNow: perfNow,\r\n newId: newId,\r\n randomValue: randomValue,\r\n random32: random32,\r\n mwcRandomSeed: mwcRandomSeed,\r\n mwcRandom32: mwcRandom32,\r\n generateW3CId: generateW3CId\r\n};\r\nvar GuidRegex = /[xy]/g;\r\nexport var EventHelper = {\r\n Attach: attachEvent,\r\n AttachEvent: attachEvent,\r\n Detach: detachEvent,\r\n DetachEvent: detachEvent\r\n};\r\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 */\r\nexport function _legacyCookieMgr(config, logger) {\r\n var cookieMgr = _gblCookieMgr(config, logger);\r\n var legacyCanUseCookies = CoreUtils._canUseCookies;\r\n if (_cookieMgrs === null) {\r\n _cookieMgrs = [];\r\n _canUseCookies = legacyCanUseCookies;\r\n // Dynamically create get/set property accessors for backward compatibility for enabling / disabling cookies\r\n // this WILL NOT work for ES3 browsers (< IE8)\r\n objDefineAccessors(CoreUtils, \"_canUseCookies\", function () {\r\n return _canUseCookies;\r\n }, function (value) {\r\n _canUseCookies = value;\r\n arrForEach(_cookieMgrs, function (mgr) {\r\n mgr[_DYN_SET_ENABLED /* @min:%2esetEnabled */](value);\r\n });\r\n });\r\n }\r\n if (arrIndexOf(_cookieMgrs, cookieMgr) === -1) {\r\n _cookieMgrs[_DYN_PUSH /* @min:%2epush */](cookieMgr);\r\n }\r\n if (isBoolean(legacyCanUseCookies)) {\r\n cookieMgr[_DYN_SET_ENABLED /* @min:%2esetEnabled */](legacyCanUseCookies);\r\n }\r\n if (isBoolean(_canUseCookies)) {\r\n cookieMgr[_DYN_SET_ENABLED /* @min:%2esetEnabled */](_canUseCookies);\r\n }\r\n return cookieMgr;\r\n}\r\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 */\r\nexport function disableCookies() {\r\n _legacyCookieMgr()[_DYN_SET_ENABLED /* @min:%2esetEnabled */](false);\r\n}\r\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 */\r\nexport function canUseCookies(logger) {\r\n return _legacyCookieMgr(null, logger).isEnabled();\r\n}\r\n/**\r\n * @deprecated - Use the core.getCookieMgr().get()\r\n * helper method to access userId and sessionId cookie\r\n */\r\nexport function getCookie(logger, name) {\r\n return _legacyCookieMgr(null, logger).get(name);\r\n}\r\n/**\r\n * @deprecated - Use the core.getCookieMgr().set()\r\n * helper method to set userId and sessionId cookie\r\n */\r\nexport function setCookie(logger, name, value, domain) {\r\n _legacyCookieMgr(null, logger).set(name, value, null, domain);\r\n}\r\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 */\r\nexport function deleteCookie(logger, name) {\r\n return _legacyCookieMgr(null, logger).del(name);\r\n}\r\n//# sourceMappingURL=CoreUtils.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { _DYN_LENGTH, _DYN_SPAN_ID, _DYN_SUBSTR, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN_VERSION } from \"../__DynamicConstants\";\r\nimport { generateW3CId } from \"./CoreUtils\";\r\nimport { findMetaTag, findNamedServerTiming } from \"./EnvUtils\";\r\nimport { isArray, isString, strTrim } from \"./HelperFuncs\";\r\n// using {0,16} for leading and trailing whitespace just to constrain the possible runtime of a random string\r\nvar TRACE_PARENT_REGEX = /^([\\da-f]{2})-([\\da-f]{32})-([\\da-f]{16})-([\\da-f]{2})(-[^\\s]*)?$/;\r\nvar DEFAULT_VERSION = \"00\";\r\nvar INVALID_VERSION = \"ff\";\r\nvar INVALID_TRACE_ID = \"00000000000000000000000000000000\";\r\nvar INVALID_SPAN_ID = \"0000000000000000\";\r\nvar SAMPLED_FLAG = 0x01;\r\nfunction _isValid(value, len, invalidValue) {\r\n if (value && value[_DYN_LENGTH /* @min:%2elength */] === len && value !== invalidValue) {\r\n return !!value.match(/^[\\da-f]*$/);\r\n }\r\n return false;\r\n}\r\nfunction _formatValue(value, len, defValue) {\r\n if (_isValid(value, len)) {\r\n return value;\r\n }\r\n return defValue;\r\n}\r\nfunction _formatFlags(value) {\r\n if (isNaN(value) || value < 0 || value > 255) {\r\n value = 0x01;\r\n }\r\n var result = value.toString(16);\r\n while (result[_DYN_LENGTH /* @min:%2elength */] < 2) {\r\n result = \"0\" + result;\r\n }\r\n return result;\r\n}\r\n/**\r\n * Create a new ITraceParent instance using the provided values.\r\n * @param traceId - The traceId to use, when invalid a new random W3C id will be generated.\r\n * @param spanId - The parent/span id to use, a new random value will be generated if it is invalid.\r\n * @param flags - The traceFlags to use, defaults to zero (0) if not supplied or invalid\r\n * @param version - The version to used, defaults to version \"01\" if not supplied or invalid.\r\n * @returns\r\n */\r\nexport function createTraceParent(traceId, spanId, flags, version) {\r\n var _a;\r\n return _a = {},\r\n _a[_DYN_VERSION /* @min:version */] = _isValid(version, 2, INVALID_VERSION) ? version : DEFAULT_VERSION,\r\n _a[_DYN_TRACE_ID /* @min:traceId */] = isValidTraceId(traceId) ? traceId : generateW3CId(),\r\n _a.spanId = isValidSpanId(spanId) ? spanId : generateW3CId()[_DYN_SUBSTR /* @min:%2esubstr */](0, 16),\r\n _a.traceFlags = flags >= 0 && flags <= 0xFF ? flags : 1,\r\n _a;\r\n}\r\n/**\r\n * Attempt to parse the provided string as a W3C TraceParent header value (https://www.w3.org/TR/trace-context/#traceparent-header)\r\n *\r\n * @param value\r\n * @returns\r\n */\r\nexport function parseTraceParent(value) {\r\n var _a;\r\n if (!value) {\r\n // Don't pass a null/undefined or empty string\r\n return null;\r\n }\r\n if (isArray(value)) {\r\n // The value may have been encoded on the page into an array so handle this automatically\r\n value = value[0] || \"\";\r\n }\r\n if (!value || !isString(value) || value[_DYN_LENGTH /* @min:%2elength */] > 8192) {\r\n // limit potential processing based on total length\r\n return null;\r\n }\r\n // See https://www.w3.org/TR/trace-context/#versioning-of-traceparent\r\n var match = TRACE_PARENT_REGEX.exec(strTrim(value));\r\n if (!match || // No match\r\n match[1] === INVALID_VERSION || // version ff is forbidden\r\n match[2] === INVALID_TRACE_ID || // All zeros is considered to be invalid\r\n match[3] === INVALID_SPAN_ID) { // All zeros is considered to be invalid\r\n return null;\r\n }\r\n return _a = {},\r\n _a[_DYN_VERSION /* @min:version */] = match[1],\r\n _a[_DYN_TRACE_ID /* @min:traceId */] = match[2],\r\n _a[_DYN_SPAN_ID /* @min:spanId */] = match[3],\r\n _a[_DYN_TRACE_FLAGS /* @min:traceFlags */] = parseInt(match[4], 16),\r\n _a;\r\n}\r\n/**\r\n * Is the provided W3c Trace Id a valid string representation, it must be a 32-character string\r\n * of lowercase hexadecimal characters for example, 4bf92f3577b34da6a3ce929d0e0e4736.\r\n * If all characters as zero (00000000000000000000000000000000) it will be considered an invalid value.\r\n * @param value - The W3c trace Id to be validated\r\n * @returns true if valid otherwise false\r\n */\r\nexport function isValidTraceId(value) {\r\n return _isValid(value, 32, INVALID_TRACE_ID);\r\n}\r\n/**\r\n * Is the provided W3c span id (aka. parent id) a valid string representation, it must be a 16-character\r\n * string of lowercase hexadecimal characters, for example, 00f067aa0ba902b7.\r\n * If all characters are zero (0000000000000000) this is considered an invalid value.\r\n * @param value - The W3c span id to be validated\r\n * @returns true if valid otherwise false\r\n */\r\nexport function isValidSpanId(value) {\r\n return _isValid(value, 16, INVALID_SPAN_ID);\r\n}\r\n/**\r\n * Validates that the provided ITraceParent instance conforms to the currently supported specifications\r\n * @param value\r\n * @returns\r\n */\r\nexport function isValidTraceParent(value) {\r\n if (!value ||\r\n !_isValid(value[_DYN_VERSION /* @min:%2eversion */], 2, INVALID_VERSION) ||\r\n !_isValid(value[_DYN_TRACE_ID /* @min:%2etraceId */], 32, INVALID_TRACE_ID) ||\r\n !_isValid(value[_DYN_SPAN_ID /* @min:%2espanId */], 16, INVALID_SPAN_ID) ||\r\n !_isValid(_formatFlags(value[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */]), 2)) {\r\n // Each known field must contain a valid value\r\n return false;\r\n }\r\n return true;\r\n}\r\n/**\r\n * Is the parsed traceParent indicating that the trace is currently sampled.\r\n * @param value - The parsed traceParent value\r\n * @returns\r\n */\r\nexport function isSampledFlag(value) {\r\n if (isValidTraceParent(value)) {\r\n return (value[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] & SAMPLED_FLAG) === SAMPLED_FLAG;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Format the ITraceParent value as a string using the supported and know version formats.\r\n * So even if the passed traceParent is a later version the string value returned from this\r\n * function will convert it to only the known version formats.\r\n * This currently only supports version \"00\" and invalid \"ff\"\r\n * @param value - The parsed traceParent value\r\n * @returns\r\n */\r\nexport function formatTraceParent(value) {\r\n if (value) {\r\n // Special Note: This only supports formatting as version 00, future versions should encode any known supported version\r\n // So parsing a future version will populate the correct version value but reformatting will reduce it to version 00.\r\n var flags = _formatFlags(value[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */]);\r\n if (!_isValid(flags, 2)) {\r\n flags = \"01\";\r\n }\r\n var version = value[_DYN_VERSION /* @min:%2eversion */] || DEFAULT_VERSION;\r\n if (version !== \"00\" && version !== \"ff\") {\r\n // Reduce version to \"00\"\r\n version = DEFAULT_VERSION;\r\n }\r\n // Format as version 00\r\n return \"\".concat(version, \"-\").concat(_formatValue(value.traceId, 32, INVALID_TRACE_ID), \"-\").concat(_formatValue(value.spanId, 16, INVALID_SPAN_ID), \"-\").concat(flags);\r\n }\r\n return \"\";\r\n}\r\n/**\r\n * Helper function to fetch the passed traceparent from the page, looking for it as a meta-tag or a Server-Timing header.\r\n * @returns\r\n */\r\nexport function findW3cTraceParent() {\r\n var name = \"traceparent\";\r\n var traceParent = parseTraceParent(findMetaTag(name));\r\n if (!traceParent) {\r\n traceParent = parseTraceParent(findNamedServerTiming(name));\r\n }\r\n return traceParent;\r\n}\r\n//# sourceMappingURL=W3cTraceParent.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { getDocument, isFunction } from \"@microsoft/applicationinsights-core-js\";\r\nexport function createDomEvent(eventName) {\r\n var event = null;\r\n if (isFunction(Event)) { // Use Event constructor when available\r\n event = new Event(eventName);\r\n }\r\n else { // Event has no constructor in IE\r\n var doc = getDocument();\r\n if (doc && doc.createEvent) {\r\n event = doc.createEvent(\"Event\");\r\n event.initEvent(eventName, true, true);\r\n }\r\n }\r\n return event;\r\n}\r\n//# sourceMappingURL=DomHelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { createValueMap } from \"@microsoft/applicationinsights-core-js\";\r\nexport var RequestHeaders = createValueMap({\r\n requestContextHeader: [0 /* eRequestHeaders.requestContextHeader */, \"Request-Context\"],\r\n requestContextTargetKey: [1 /* eRequestHeaders.requestContextTargetKey */, \"appId\"],\r\n requestContextAppIdFormat: [2 /* eRequestHeaders.requestContextAppIdFormat */, \"appId=cid-v1:\"],\r\n requestIdHeader: [3 /* eRequestHeaders.requestIdHeader */, \"Request-Id\"],\r\n traceParentHeader: [4 /* eRequestHeaders.traceParentHeader */, \"traceparent\"],\r\n traceStateHeader: [5 /* eRequestHeaders.traceStateHeader */, \"tracestate\"],\r\n sdkContextHeader: [6 /* eRequestHeaders.sdkContextHeader */, \"Sdk-Context\"],\r\n sdkContextHeaderAppIdRequest: [7 /* eRequestHeaders.sdkContextHeaderAppIdRequest */, \"appId\"],\r\n requestContextHeaderLowerCase: [8 /* eRequestHeaders.requestContextHeaderLowerCase */, \"request-context\"]\r\n});\r\n//# sourceMappingURL=RequestResponseHeaders.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { getDocument, isString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_LENGTH, _DYN_PATHNAME, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\nvar _document = getDocument() || {};\r\nvar _htmlAnchorIdx = 0;\r\n// Use an array of temporary values as it's possible for multiple calls to parseUrl() will be called with different URLs\r\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\r\nvar _htmlAnchorElement = [null, null, null, null, null];\r\nexport function urlParseUrl(url) {\r\n var anchorIdx = _htmlAnchorIdx;\r\n var anchorCache = _htmlAnchorElement;\r\n var tempAnchor = anchorCache[anchorIdx];\r\n if (!_document.createElement) {\r\n // Always create the temp instance if createElement is not available\r\n tempAnchor = { host: urlParseHost(url, true) };\r\n }\r\n else if (!anchorCache[anchorIdx]) {\r\n // Create and cache the unattached anchor instance\r\n tempAnchor = anchorCache[anchorIdx] = _document.createElement(\"a\");\r\n }\r\n tempAnchor.href = url;\r\n // Move the cache index forward\r\n anchorIdx++;\r\n if (anchorIdx >= anchorCache[_DYN_LENGTH /* @min:%2elength */]) {\r\n anchorIdx = 0;\r\n }\r\n _htmlAnchorIdx = anchorIdx;\r\n return tempAnchor;\r\n}\r\nexport function urlGetAbsoluteUrl(url) {\r\n var result;\r\n var a = urlParseUrl(url);\r\n if (a) {\r\n result = a.href;\r\n }\r\n return result;\r\n}\r\nexport function urlGetPathName(url) {\r\n var result;\r\n var a = urlParseUrl(url);\r\n if (a) {\r\n result = a[_DYN_PATHNAME /* @min:%2epathname */];\r\n }\r\n return result;\r\n}\r\nexport function urlGetCompleteUrl(method, absoluteUrl) {\r\n if (method) {\r\n return method.toUpperCase() + \" \" + absoluteUrl;\r\n }\r\n return absoluteUrl;\r\n}\r\n// Fallback method to grab host from url if document.createElement method is not available\r\nexport function urlParseHost(url, inclPort) {\r\n var fullHost = urlParseFullHost(url, inclPort) || \"\";\r\n if (fullHost) {\r\n var match = fullHost.match(/(www\\d{0,5}\\.)?([^\\/:]{1,256})(:\\d{1,20})?/i);\r\n if (match != null && match[_DYN_LENGTH /* @min:%2elength */] > 3 && isString(match[2]) && match[2][_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n return match[2] + (match[3] || \"\");\r\n }\r\n }\r\n return fullHost;\r\n}\r\nexport function urlParseFullHost(url, inclPort) {\r\n var result = null;\r\n if (url) {\r\n var match = url.match(/(\\w{1,150}):\\/\\/([^\\/:]{1,256})(:\\d{1,20})?/i);\r\n if (match != null && match[_DYN_LENGTH /* @min:%2elength */] > 2 && isString(match[2]) && match[2][_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n result = match[2] || \"\";\r\n if (inclPort && match[_DYN_LENGTH /* @min:%2elength */] > 2) {\r\n var protocol = (match[1] || \"\")[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n var port = match[3] || \"\";\r\n // IE includes the standard port so pass it off if it's the same as the protocol\r\n if (protocol === \"http\" && port === \":80\") {\r\n port = \"\";\r\n }\r\n else if (protocol === \"https\" && port === \":443\") {\r\n port = \"\";\r\n }\r\n result += port;\r\n }\r\n }\r\n }\r\n return result;\r\n}\r\n//# sourceMappingURL=UrlHelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, arrIndexOf, attachEvent, canUseCookies as coreCanUseCookies, dateNow, deleteCookie as coreDeleteCookie, disableCookies as coreDisableCookies, dumpObj, generateW3CId, getCookie as coreGetCookie, getExceptionName as coreGetExceptionName, getIEVersion, getPerformance, isArray, isBeaconsSupported, isDate, isError, isNullOrUndefined, isValidSpanId, isValidTraceId, newId, random32, setCookie as coreSetCookie, strTrim, toISOString, uaDisallowsSameSiteNone } from \"@microsoft/applicationinsights-core-js\";\r\nimport { DEFAULT_BREEZE_ENDPOINT, DEFAULT_BREEZE_PATH, strNotSpecified } from \"./Constants\";\r\nimport { createDomEvent } from \"./DomHelperFuncs\";\r\nimport { getExtensionByName, isCrossOriginError, msToTimeSpan, stringToBoolOrDefault } from \"./HelperFuncs\";\r\nimport { RequestHeaders } from \"./RequestResponseHeaders\";\r\nimport { utlCanUseLocalStorage, utlCanUseSessionStorage, utlDisableStorage, utlGetLocalStorage, utlGetSessionStorage, utlGetSessionStorageKeys, utlRemoveSessionStorage, utlRemoveStorage, utlSetLocalStorage, utlSetSessionStorage } from \"./StorageHelperFuncs\";\r\nimport { dataSanitizeString } from \"./Telemetry/Common/DataSanitizer\";\r\nimport { urlGetAbsoluteUrl, urlGetCompleteUrl, urlGetPathName, urlParseFullHost, urlParseHost, urlParseUrl } from \"./UrlHelperFuncs\";\r\nimport { _DYN_CORRELATION_HEADER_E0, _DYN_INDEX_OF, _DYN_LENGTH, _DYN_NAME, _DYN_PATHNAME, _DYN_SPLIT, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\n// listing only non-geo specific locations\r\nvar _internalEndpoints = [\r\n DEFAULT_BREEZE_ENDPOINT + DEFAULT_BREEZE_PATH,\r\n \"https://breeze.aimon.applicationinsights.io\" + DEFAULT_BREEZE_PATH,\r\n \"https://dc-int.services.visualstudio.com\" + DEFAULT_BREEZE_PATH\r\n];\r\nexport function isInternalApplicationInsightsEndpoint(endpointUrl) {\r\n return arrIndexOf(_internalEndpoints, endpointUrl[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]()) !== -1;\r\n}\r\nexport var Util = {\r\n NotSpecified: strNotSpecified,\r\n createDomEvent: createDomEvent,\r\n disableStorage: utlDisableStorage,\r\n isInternalApplicationInsightsEndpoint: isInternalApplicationInsightsEndpoint,\r\n canUseLocalStorage: utlCanUseLocalStorage,\r\n getStorage: utlGetLocalStorage,\r\n setStorage: utlSetLocalStorage,\r\n removeStorage: utlRemoveStorage,\r\n canUseSessionStorage: utlCanUseSessionStorage,\r\n getSessionStorageKeys: utlGetSessionStorageKeys,\r\n getSessionStorage: utlGetSessionStorage,\r\n setSessionStorage: utlSetSessionStorage,\r\n removeSessionStorage: utlRemoveSessionStorage,\r\n disableCookies: coreDisableCookies,\r\n canUseCookies: coreCanUseCookies,\r\n disallowsSameSiteNone: uaDisallowsSameSiteNone,\r\n setCookie: coreSetCookie,\r\n stringToBoolOrDefault: stringToBoolOrDefault,\r\n getCookie: coreGetCookie,\r\n deleteCookie: coreDeleteCookie,\r\n trim: strTrim,\r\n newId: newId,\r\n random32: function () {\r\n return random32(true);\r\n },\r\n generateW3CId: generateW3CId,\r\n isArray: isArray,\r\n isError: isError,\r\n isDate: isDate,\r\n toISOStringForIE8: toISOString,\r\n getIEVersion: getIEVersion,\r\n msToTimeSpan: msToTimeSpan,\r\n isCrossOriginError: isCrossOriginError,\r\n dump: dumpObj,\r\n getExceptionName: coreGetExceptionName,\r\n addEventHandler: attachEvent,\r\n IsBeaconApiSupported: isBeaconsSupported,\r\n getExtension: getExtensionByName\r\n};\r\nexport var UrlHelper = {\r\n parseUrl: urlParseUrl,\r\n getAbsoluteUrl: urlGetAbsoluteUrl,\r\n getPathName: urlGetPathName,\r\n getCompleteUrl: urlGetCompleteUrl,\r\n parseHost: urlParseHost,\r\n parseFullHost: urlParseFullHost\r\n};\r\nexport var CorrelationIdHelper = {\r\n correlationIdPrefix: \"cid-v1:\",\r\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 */\r\n canIncludeCorrelationHeader: function (config, requestUrl, currentHost) {\r\n if (!requestUrl || (config && config.disableCorrelationHeaders)) {\r\n return false;\r\n }\r\n if (config && config[_DYN_CORRELATION_HEADER_E0 /* @min:%2ecorrelationHeaderExcludePatterns */]) {\r\n for (var i = 0; i < config.correlationHeaderExcludePatterns[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n if (config[_DYN_CORRELATION_HEADER_E0 /* @min:%2ecorrelationHeaderExcludePatterns */][i].test(requestUrl)) {\r\n return false;\r\n }\r\n }\r\n }\r\n var requestHost = urlParseUrl(requestUrl).host[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n if (requestHost && (requestHost[_DYN_INDEX_OF /* @min:%2eindexOf */](\":443\") !== -1 || requestHost[_DYN_INDEX_OF /* @min:%2eindexOf */](\":80\") !== -1)) {\r\n // [Bug #1260] IE can include the port even for http and https URLs so if present\r\n // try and parse it to remove if it matches the default protocol port\r\n requestHost = (urlParseFullHost(requestUrl, true) || \"\")[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n }\r\n if ((!config || !config.enableCorsCorrelation) && (requestHost && requestHost !== currentHost)) {\r\n return false;\r\n }\r\n var includedDomains = config && config.correlationHeaderDomains;\r\n if (includedDomains) {\r\n var matchExists_1;\r\n arrForEach(includedDomains, function (domain) {\r\n var regex = new RegExp(domain.toLowerCase().replace(/\\\\/g, \"\\\\\\\\\").replace(/\\./g, \"\\\\.\").replace(/\\*/g, \".*\"));\r\n matchExists_1 = matchExists_1 || regex.test(requestHost);\r\n });\r\n if (!matchExists_1) {\r\n return false;\r\n }\r\n }\r\n var excludedDomains = config && config.correlationHeaderExcludedDomains;\r\n if (!excludedDomains || excludedDomains[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n return true;\r\n }\r\n for (var i = 0; i < excludedDomains[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n var regex = new RegExp(excludedDomains[i].toLowerCase().replace(/\\\\/g, \"\\\\\\\\\").replace(/\\./g, \"\\\\.\").replace(/\\*/g, \".*\"));\r\n if (regex.test(requestHost)) {\r\n return false;\r\n }\r\n }\r\n // if we don't know anything about the requestHost, require the user to use included/excludedDomains.\r\n // Previously we always returned false for a falsy requestHost\r\n return requestHost && requestHost[_DYN_LENGTH /* @min:%2elength */] > 0;\r\n },\r\n /**\r\n * Combines target appId and target role name from response header.\r\n */\r\n getCorrelationContext: function (responseHeader) {\r\n if (responseHeader) {\r\n var correlationId = CorrelationIdHelper.getCorrelationContextValue(responseHeader, RequestHeaders[1 /* eRequestHeaders.requestContextTargetKey */]);\r\n if (correlationId && correlationId !== CorrelationIdHelper.correlationIdPrefix) {\r\n return correlationId;\r\n }\r\n }\r\n },\r\n /**\r\n * Gets key from correlation response header\r\n */\r\n getCorrelationContextValue: function (responseHeader, key) {\r\n if (responseHeader) {\r\n var keyValues = responseHeader[_DYN_SPLIT /* @min:%2esplit */](\",\");\r\n for (var i = 0; i < keyValues[_DYN_LENGTH /* @min:%2elength */]; ++i) {\r\n var keyValue = keyValues[i][_DYN_SPLIT /* @min:%2esplit */](\"=\");\r\n if (keyValue[_DYN_LENGTH /* @min:%2elength */] === 2 && keyValue[0] === key) {\r\n return keyValue[1];\r\n }\r\n }\r\n }\r\n }\r\n};\r\nexport function AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName) {\r\n var target, name = commandName, data = commandName;\r\n if (absoluteUrl && absoluteUrl[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var parsedUrl = urlParseUrl(absoluteUrl);\r\n target = parsedUrl.host;\r\n if (!name) {\r\n if (parsedUrl[_DYN_PATHNAME /* @min:%2epathname */] != null) {\r\n var pathName = (parsedUrl.pathname[_DYN_LENGTH /* @min:%2elength */] === 0) ? \"/\" : parsedUrl[_DYN_PATHNAME /* @min:%2epathname */];\r\n if (pathName.charAt(0) !== \"/\") {\r\n pathName = \"/\" + pathName;\r\n }\r\n data = parsedUrl[_DYN_PATHNAME /* @min:%2epathname */];\r\n name = dataSanitizeString(logger, method ? method + \" \" + pathName : pathName);\r\n }\r\n else {\r\n name = dataSanitizeString(logger, absoluteUrl);\r\n }\r\n }\r\n }\r\n else {\r\n target = commandName;\r\n name = commandName;\r\n }\r\n return {\r\n target: target,\r\n name: name,\r\n data: data\r\n };\r\n}\r\nexport function dateTimeUtilsNow() {\r\n // returns the window or webworker performance object\r\n var perf = getPerformance();\r\n if (perf && perf.now && perf.timing) {\r\n var now = perf.now() + perf.timing.navigationStart;\r\n // Known issue with IE where this calculation can be negative, so if it is then ignore and fallback\r\n if (now > 0) {\r\n return now;\r\n }\r\n }\r\n return dateNow();\r\n}\r\nexport function dateTimeUtilsDuration(start, end) {\r\n var result = null;\r\n if (start !== 0 && end !== 0 && !isNullOrUndefined(start) && !isNullOrUndefined(end)) {\r\n result = end - start;\r\n }\r\n return result;\r\n}\r\n/**\r\n * A utility class that helps getting time related parameters\r\n */\r\nexport var DateTimeUtils = {\r\n Now: dateTimeUtilsNow,\r\n GetDuration: dateTimeUtilsDuration\r\n};\r\n/**\r\n * Creates a IDistributedTraceContext from an optional telemetryTrace\r\n * @param telemetryTrace - The telemetryTrace instance that is being wrapped\r\n * @param parentCtx - An optional parent distributed trace instance, almost always undefined as this scenario is only used in the case of multiple property handlers.\r\n * @returns A new IDistributedTraceContext instance that is backed by the telemetryTrace or temporary object\r\n */\r\nexport function createDistributedTraceContextFromTrace(telemetryTrace, parentCtx) {\r\n var trace = telemetryTrace || {};\r\n return {\r\n getName: function () {\r\n return trace[_DYN_NAME /* @min:%2ename */];\r\n },\r\n setName: function (newValue) {\r\n parentCtx && parentCtx.setName(newValue);\r\n trace[_DYN_NAME /* @min:%2ename */] = newValue;\r\n },\r\n getTraceId: function () {\r\n return trace.traceID;\r\n },\r\n setTraceId: function (newValue) {\r\n parentCtx && parentCtx.setTraceId(newValue);\r\n if (isValidTraceId(newValue)) {\r\n trace.traceID = newValue;\r\n }\r\n },\r\n getSpanId: function () {\r\n return trace.parentID;\r\n },\r\n setSpanId: function (newValue) {\r\n parentCtx && parentCtx.setSpanId(newValue);\r\n if (isValidSpanId(newValue)) {\r\n trace.parentID = newValue;\r\n }\r\n },\r\n getTraceFlags: function () {\r\n return trace.traceFlags;\r\n },\r\n setTraceFlags: function (newTraceFlags) {\r\n parentCtx && parentCtx.setTraceFlags(newTraceFlags);\r\n trace.traceFlags = newTraceFlags;\r\n }\r\n };\r\n}\r\n//# sourceMappingURL=Util.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { msToTimeSpan } from \"../HelperFuncs\";\r\nimport { AjaxHelperParseDependencyPath } from \"../Util\";\r\nimport { _DYN_DURATION, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nvar RemoteDependencyData = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the RemoteDependencyData object\r\n */\r\n function RemoteDependencyData(logger, id, absoluteUrl, commandName, value, success, resultCode, method, requestAPI, correlationContext, properties, measurements) {\r\n if (requestAPI === void 0) { requestAPI = \"Ajax\"; }\r\n this.aiDataContract = {\r\n id: 1 /* FieldType.Required */,\r\n ver: 1 /* FieldType.Required */,\r\n name: 0 /* FieldType.Default */,\r\n resultCode: 0 /* FieldType.Default */,\r\n duration: 0 /* FieldType.Default */,\r\n success: 0 /* FieldType.Default */,\r\n data: 0 /* FieldType.Default */,\r\n target: 0 /* FieldType.Default */,\r\n type: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */,\r\n kind: 0 /* FieldType.Default */,\r\n value: 0 /* FieldType.Default */,\r\n count: 0 /* FieldType.Default */,\r\n min: 0 /* FieldType.Default */,\r\n max: 0 /* FieldType.Default */,\r\n stdDev: 0 /* FieldType.Default */,\r\n dependencyKind: 0 /* FieldType.Default */,\r\n dependencySource: 0 /* FieldType.Default */,\r\n commandName: 0 /* FieldType.Default */,\r\n dependencyTypeName: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self.id = id;\r\n _self[_DYN_DURATION /* @min:%2eduration */] = msToTimeSpan(value);\r\n _self.success = success;\r\n _self.resultCode = resultCode + \"\";\r\n _self.type = dataSanitizeString(logger, requestAPI);\r\n var dependencyFields = AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName);\r\n _self.data = dataSanitizeUrl(logger, commandName) || dependencyFields.data; // get a value from hosturl if commandName not available\r\n _self.target = dataSanitizeString(logger, dependencyFields.target);\r\n if (correlationContext) {\r\n _self.target = \"\".concat(_self.target, \" | \").concat(correlationContext);\r\n }\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, dependencyFields[_DYN_NAME /* @min:%2ename */]);\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n RemoteDependencyData.envelopeType = \"Microsoft.ApplicationInsights.{0}.RemoteDependency\";\r\n RemoteDependencyData.dataType = \"RemoteDependencyData\";\r\n return RemoteDependencyData;\r\n}());\r\nexport { RemoteDependencyData };\r\n//# sourceMappingURL=RemoteDependencyData.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { _DYN_COMPLETE, _DYN_GET_CTX, _DYN_IS_ASYNC, _DYN_IS_CHILD_EVT, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_SET_CTX, _DYN_TIME } from \"../__DynamicConstants\";\r\nimport { dateNow, isArray, isFunction, objDefineAccessors } from \"./HelperFuncs\";\r\nimport { STR_GET_PERF_MGR, STR_PERF_EVENT } from \"./InternalConstants\";\r\nvar strExecutionContextKey = \"ctx\";\r\nvar strParentContextKey = \"ParentContextKey\";\r\nvar strChildrenContextKey = \"ChildrenContextKey\";\r\nvar _defaultPerfManager = null;\r\nvar PerfEvent = /** @class */ (function () {\r\n function PerfEvent(name, payloadDetails, isAsync) {\r\n var _self = this;\r\n var accessorDefined = false;\r\n _self.start = dateNow();\r\n _self[_DYN_NAME /* @min:%2ename */] = name;\r\n _self[_DYN_IS_ASYNC /* @min:%2eisAsync */] = isAsync;\r\n _self[_DYN_IS_CHILD_EVT /* @min:%2eisChildEvt */] = function () { return false; };\r\n if (isFunction(payloadDetails)) {\r\n // Create an accessor to minimize the potential performance impact of executing the payloadDetails callback\r\n var theDetails_1;\r\n accessorDefined = objDefineAccessors(_self, \"payload\", function () {\r\n // Delay the execution of the payloadDetails until needed\r\n if (!theDetails_1 && isFunction(payloadDetails)) {\r\n theDetails_1 = payloadDetails();\r\n // clear it out now so the referenced objects can be garbage collected\r\n payloadDetails = null;\r\n }\r\n return theDetails_1;\r\n });\r\n }\r\n _self[_DYN_GET_CTX /* @min:%2egetCtx */] = function (key) {\r\n if (key) {\r\n // The parent and child links are located directly on the object (for better viewing in the DebugPlugin)\r\n if (key === PerfEvent[strParentContextKey] || key === PerfEvent[strChildrenContextKey]) {\r\n return _self[key];\r\n }\r\n return (_self[strExecutionContextKey] || {})[key];\r\n }\r\n return null;\r\n };\r\n _self[_DYN_SET_CTX /* @min:%2esetCtx */] = function (key, value) {\r\n if (key) {\r\n // Put the parent and child links directly on the object (for better viewing in the DebugPlugin)\r\n if (key === PerfEvent[strParentContextKey]) {\r\n // Simple assumption, if we are setting a parent then we must be a child\r\n if (!_self[key]) {\r\n _self[_DYN_IS_CHILD_EVT /* @min:%2eisChildEvt */] = function () { return true; };\r\n }\r\n _self[key] = value;\r\n }\r\n else if (key === PerfEvent[strChildrenContextKey]) {\r\n _self[key] = value;\r\n }\r\n else {\r\n var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};\r\n ctx[key] = value;\r\n }\r\n }\r\n };\r\n _self[_DYN_COMPLETE /* @min:%2ecomplete */] = function () {\r\n var childTime = 0;\r\n var childEvts = _self[_DYN_GET_CTX /* @min:%2egetCtx */](PerfEvent[strChildrenContextKey]);\r\n if (isArray(childEvts)) {\r\n for (var lp = 0; lp < childEvts[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n var childEvt = childEvts[lp];\r\n if (childEvt) {\r\n childTime += childEvt[_DYN_TIME /* @min:%2etime */];\r\n }\r\n }\r\n }\r\n _self[_DYN_TIME /* @min:%2etime */] = dateNow() - _self.start;\r\n _self.exTime = _self[_DYN_TIME /* @min:%2etime */] - childTime;\r\n _self[_DYN_COMPLETE /* @min:%2ecomplete */] = function () { };\r\n if (!accessorDefined && isFunction(payloadDetails)) {\r\n // If we couldn't define the property set during complete -- to minimize the perf impact until after the time\r\n _self.payload = payloadDetails();\r\n }\r\n };\r\n }\r\n PerfEvent.ParentContextKey = \"parent\";\r\n PerfEvent.ChildrenContextKey = \"childEvts\";\r\n return PerfEvent;\r\n}());\r\nexport { PerfEvent };\r\nvar PerfManager = /** @class */ (function () {\r\n function PerfManager(manager) {\r\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 */\r\n this.ctx = {};\r\n dynamicProto(PerfManager, this, function (_self) {\r\n _self.create = function (src, payloadDetails, isAsync) {\r\n // TODO (@MSNev): at some point we will want to add additional configuration to \"select\" which events to instrument\r\n // for now this is just a simple do everything.\r\n return new PerfEvent(src, payloadDetails, isAsync);\r\n };\r\n _self.fire = function (perfEvent) {\r\n if (perfEvent) {\r\n perfEvent[_DYN_COMPLETE /* @min:%2ecomplete */]();\r\n if (manager && isFunction(manager[STR_PERF_EVENT /* @min:%2eperfEvent */])) {\r\n manager[STR_PERF_EVENT /* @min:%2eperfEvent */](perfEvent);\r\n }\r\n }\r\n };\r\n _self[_DYN_SET_CTX /* @min:%2esetCtx */] = function (key, value) {\r\n if (key) {\r\n var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};\r\n ctx[key] = value;\r\n }\r\n };\r\n _self[_DYN_GET_CTX /* @min:%2egetCtx */] = function (key) {\r\n return (_self[strExecutionContextKey] || {})[key];\r\n };\r\n });\r\n }\r\n// Removed Stub for PerfManager.prototype.create.\r\n// Removed Stub for PerfManager.prototype.fire.\r\n// Removed Stub for PerfManager.prototype.setCtx.\r\n// Removed Stub for PerfManager.prototype.getCtx.\r\n // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n // this will be removed when ES3 support is dropped.\n PerfManager.__ieDyn=1;\n\n return PerfManager;\r\n}());\r\nexport { PerfManager };\r\nvar doPerfActiveKey = \"CoreUtils.doPerf\";\r\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 */\r\nexport function doPerf(mgrSource, getSource, func, details, isAsync) {\r\n if (mgrSource) {\r\n var perfMgr = mgrSource;\r\n if (perfMgr[STR_GET_PERF_MGR]) {\r\n // Looks like a perf manager provider object\r\n perfMgr = perfMgr[STR_GET_PERF_MGR]();\r\n }\r\n if (perfMgr) {\r\n var perfEvt = void 0;\r\n var currentActive = perfMgr[_DYN_GET_CTX /* @min:%2egetCtx */](doPerfActiveKey);\r\n try {\r\n perfEvt = perfMgr.create(getSource(), details, isAsync);\r\n if (perfEvt) {\r\n if (currentActive && perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */]) {\r\n perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */](PerfEvent[strParentContextKey], currentActive);\r\n if (currentActive[_DYN_GET_CTX /* @min:%2egetCtx */] && currentActive[_DYN_SET_CTX /* @min:%2esetCtx */]) {\r\n var children = currentActive[_DYN_GET_CTX /* @min:%2egetCtx */](PerfEvent[strChildrenContextKey]);\r\n if (!children) {\r\n children = [];\r\n currentActive[_DYN_SET_CTX /* @min:%2esetCtx */](PerfEvent[strChildrenContextKey], children);\r\n }\r\n children[_DYN_PUSH /* @min:%2epush */](perfEvt);\r\n }\r\n }\r\n // Set this event as the active event now\r\n perfMgr[_DYN_SET_CTX /* @min:%2esetCtx */](doPerfActiveKey, perfEvt);\r\n return func(perfEvt);\r\n }\r\n }\r\n catch (ex) {\r\n if (perfEvt && perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */]) {\r\n perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */](\"exception\", ex);\r\n }\r\n }\r\n finally {\r\n // fire the perf event\r\n if (perfEvt) {\r\n perfMgr.fire(perfEvt);\r\n }\r\n // Reset the active event to the previous value\r\n perfMgr[_DYN_SET_CTX /* @min:%2esetCtx */](doPerfActiveKey, currentActive);\r\n }\r\n }\r\n }\r\n return func();\r\n}\r\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 */\r\nexport function setGblPerfMgr(perfManager) {\r\n _defaultPerfManager = perfManager;\r\n}\r\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 */\r\nexport function getGblPerfMgr() {\r\n return _defaultPerfManager;\r\n}\r\n//# sourceMappingURL=PerfManager.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { _DYN_CALL, _DYN_GET_NEXT, _DYN_GET_PLUGIN, _DYN_INITIALIZE, _DYN_IS_INITIALIZED, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_SET_NEXT_PLUGIN, _DYN_SPAN_ID, _DYN_TEARDOWN, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN__DO_TEARDOWN } from \"../__DynamicConstants\";\r\nimport { createElmNodeData } from \"./DataCacheHelper\";\r\nimport { arrForEach, isFunction } from \"./HelperFuncs\";\r\nimport { STR_CORE, STR_PRIORITY, STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nimport { isValidSpanId, isValidTraceId } from \"./W3cTraceParent\";\r\nvar pluginStateData = createElmNodeData(\"plugin\");\r\nexport function _getPluginState(plugin) {\r\n return pluginStateData.get(plugin, \"state\", {}, true);\r\n}\r\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 */\r\nexport function initializePlugins(processContext, extensions) {\r\n // Set the next plugin and identified the uninitialized plugins\r\n var initPlugins = [];\r\n var lastPlugin = null;\r\n var proxy = processContext[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n var pluginState;\r\n while (proxy) {\r\n var thePlugin = proxy[_DYN_GET_PLUGIN /* @min:%2egetPlugin */]();\r\n if (thePlugin) {\r\n if (lastPlugin &&\r\n isFunction(lastPlugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */]) &&\r\n isFunction(thePlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */])) {\r\n // Set this plugin as the next for the previous one\r\n lastPlugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */](thePlugin);\r\n }\r\n var isInitialized = false;\r\n if (isFunction(thePlugin[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */])) {\r\n isInitialized = thePlugin[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]();\r\n }\r\n else {\r\n pluginState = _getPluginState(thePlugin);\r\n isInitialized = pluginState[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */];\r\n }\r\n if (!isInitialized) {\r\n initPlugins[_DYN_PUSH /* @min:%2epush */](thePlugin);\r\n }\r\n lastPlugin = thePlugin;\r\n proxy = proxy[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n }\r\n }\r\n // Now initialize the plugins\r\n arrForEach(initPlugins, function (thePlugin) {\r\n var core = processContext[STR_CORE]();\r\n thePlugin[_DYN_INITIALIZE /* @min:%2einitialize */](processContext.getCfg(), core, extensions, processContext[_DYN_GET_NEXT /* @min:%2egetNext */]());\r\n pluginState = _getPluginState(thePlugin);\r\n // Only add the core to the state if the plugin didn't set it (doesn't extent from BaseTelemetryPlugin)\r\n if (!thePlugin[STR_CORE] && !pluginState[STR_CORE]) {\r\n pluginState[STR_CORE] = core;\r\n }\r\n pluginState[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = true;\r\n delete pluginState[_DYN_TEARDOWN /* @min:%2eteardown */];\r\n });\r\n}\r\nexport function sortPlugins(plugins) {\r\n // Sort by priority\r\n return plugins.sort(function (extA, extB) {\r\n var result = 0;\r\n if (extB) {\r\n var bHasProcess = isFunction(extB[STR_PROCESS_TELEMETRY]);\r\n if (isFunction(extA[STR_PROCESS_TELEMETRY])) {\r\n result = bHasProcess ? extA[STR_PRIORITY] - extB[STR_PRIORITY] : 1;\r\n }\r\n else if (bHasProcess) {\r\n result = -1;\r\n }\r\n }\r\n else {\r\n result = extA ? 1 : -1;\r\n }\r\n return result;\r\n });\r\n // sort complete\r\n}\r\n/**\r\n * Teardown / Unload helper to perform teardown/unloading operations for the provided components synchronously or asynchronously, this will call any\r\n * _doTeardown() or _doUnload() functions on the provided components to allow them to finish removal.\r\n * @param components - The components you want to unload\r\n * @param unloadCtx - This is the context that should be used during unloading.\r\n * @param unloadState - The details / state of the unload process, it holds details like whether it should be unloaded synchronously or asynchronously and the reason for the unload.\r\n * @param asyncCallback - An optional callback that the plugin must call if it returns true to inform the caller that it has completed any async unload/teardown operations.\r\n * @returns boolean - true if the plugin has or will call asyncCallback, this allows the plugin to perform any asynchronous operations.\r\n */\r\nexport function unloadComponents(components, unloadCtx, unloadState, asyncCallback) {\r\n var idx = 0;\r\n function _doUnload() {\r\n while (idx < components[_DYN_LENGTH /* @min:%2elength */]) {\r\n var component = components[idx++];\r\n if (component) {\r\n var func = component._doUnload || component[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */];\r\n if (isFunction(func)) {\r\n if (func[_DYN_CALL /* @min:%2ecall */](component, unloadCtx, unloadState, _doUnload) === true) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return _doUnload();\r\n}\r\n/**\r\n * Creates a IDistributedTraceContext which optionally also \"sets\" the value on a parent\r\n * @param parentCtx - An optional parent distributed trace instance\r\n * @returns A new IDistributedTraceContext instance that uses an internal temporary object\r\n */\r\nexport function createDistributedTraceContext(parentCtx) {\r\n var trace = {};\r\n return {\r\n getName: function () {\r\n return trace[_DYN_NAME /* @min:%2ename */];\r\n },\r\n setName: function (newValue) {\r\n parentCtx && parentCtx.setName(newValue);\r\n trace[_DYN_NAME /* @min:%2ename */] = newValue;\r\n },\r\n getTraceId: function () {\r\n return trace[_DYN_TRACE_ID /* @min:%2etraceId */];\r\n },\r\n setTraceId: function (newValue) {\r\n parentCtx && parentCtx.setTraceId(newValue);\r\n if (isValidTraceId(newValue)) {\r\n trace[_DYN_TRACE_ID /* @min:%2etraceId */] = newValue;\r\n }\r\n },\r\n getSpanId: function () {\r\n return trace[_DYN_SPAN_ID /* @min:%2espanId */];\r\n },\r\n setSpanId: function (newValue) {\r\n parentCtx && parentCtx.setSpanId(newValue);\r\n if (isValidSpanId(newValue)) {\r\n trace[_DYN_SPAN_ID /* @min:%2espanId */] = newValue;\r\n }\r\n },\r\n getTraceFlags: function () {\r\n return trace[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n },\r\n setTraceFlags: function (newTraceFlags) {\r\n parentCtx && parentCtx.setTraceFlags(newTraceFlags);\r\n trace[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = newTraceFlags;\r\n }\r\n };\r\n}\r\n//# sourceMappingURL=TelemetryHelpers.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { _DYN_CALL, _DYN_CONFIG, _DYN_CREATE_NEW, _DYN_DIAG_LOG, _DYN_GET_NEXT, _DYN_GET_PLUGIN, _DYN_IDENTIFIER, _DYN_IS_ASYNC, _DYN_IS_INITIALIZED, _DYN_LENGTH, _DYN_LOGGER, _DYN_PROCESS_NEXT, _DYN_PUSH, _DYN_SET_NEXT_PLUGIN, _DYN_TEARDOWN, _DYN_UPDATE } from \"../__DynamicConstants\";\r\nimport { _throwInternal, safeGetLogger } from \"./DiagnosticLogger\";\r\nimport { dumpObj } from \"./EnvUtils\";\r\nimport { arrForEach, isArray, isFunction, isNullOrUndefined, isObject, isUndefined, objExtend, objForEachKey, objFreeze, objKeys, proxyFunctions } from \"./HelperFuncs\";\r\nimport { STR_CORE, STR_DISABLED, STR_EMPTY, STR_EXTENSION_CONFIG, STR_PRIORITY, STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nimport { doPerf } from \"./PerfManager\";\r\nimport { _getPluginState } from \"./TelemetryHelpers\";\r\nvar strTelemetryPluginChain = \"TelemetryPluginChain\";\r\nvar strHasRunFlags = \"_hasRun\";\r\nvar strGetTelCtx = \"_getTelCtx\";\r\nvar _chainId = 0;\r\nfunction _getNextProxyStart(proxy, core, startAt) {\r\n while (proxy) {\r\n if (proxy[_DYN_GET_PLUGIN /* @min:%2egetPlugin */]() === startAt) {\r\n return proxy;\r\n }\r\n proxy = proxy[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n }\r\n // This wasn't found in the existing chain so create an isolated one with just this plugin\r\n return createTelemetryProxyChain([startAt], core[_DYN_CONFIG /* @min:%2econfig */] || {}, core);\r\n}\r\n/**\r\n * @ignore\r\n * @param telemetryChain\r\n * @param config\r\n * @param core\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n * @returns\r\n */\r\nfunction _createInternalContext(telemetryChain, config, core, startAt) {\r\n // We have a special case where we want to start execution from this specific plugin\r\n // or we simply reuse the existing telemetry plugin chain (normal execution case)\r\n var _nextProxy = null; // By Default set as no next plugin\r\n var _onComplete = [];\r\n if (startAt !== null) {\r\n // There is no next element (null) vs not defined (undefined) so use the full chain\r\n _nextProxy = startAt ? _getNextProxyStart(telemetryChain, core, startAt) : telemetryChain;\r\n }\r\n var context = {\r\n _next: _moveNext,\r\n ctx: {\r\n core: function () {\r\n return core;\r\n },\r\n diagLog: function () {\r\n return safeGetLogger(core, config);\r\n },\r\n getCfg: function () {\r\n return config;\r\n },\r\n getExtCfg: _getExtCfg,\r\n getConfig: _getConfig,\r\n hasNext: function () {\r\n return !!_nextProxy;\r\n },\r\n getNext: function () {\r\n return _nextProxy;\r\n },\r\n setNext: function (nextPlugin) {\r\n _nextProxy = nextPlugin;\r\n },\r\n iterate: _iterateChain,\r\n onComplete: _addOnComplete\r\n }\r\n };\r\n function _addOnComplete(onComplete, that) {\r\n var args = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n args[_i - 2] = arguments[_i];\r\n }\r\n if (onComplete) {\r\n _onComplete[_DYN_PUSH /* @min:%2epush */]({\r\n func: onComplete,\r\n self: !isUndefined(that) ? that : context.ctx,\r\n args: args\r\n });\r\n }\r\n }\r\n function _moveNext() {\r\n var nextProxy = _nextProxy;\r\n // Automatically move to the next plugin\r\n _nextProxy = nextProxy ? nextProxy[_DYN_GET_NEXT /* @min:%2egetNext */]() : null;\r\n if (!nextProxy) {\r\n var onComplete = _onComplete;\r\n if (onComplete && onComplete[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(onComplete, function (completeDetails) {\r\n try {\r\n completeDetails.func[_DYN_CALL /* @min:%2ecall */](completeDetails.self, completeDetails.args);\r\n }\r\n catch (e) {\r\n _throwInternal(core[_DYN_LOGGER /* @min:%2elogger */], 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, \"Unexpected Exception during onComplete - \" + dumpObj(e));\r\n }\r\n });\r\n _onComplete = [];\r\n }\r\n }\r\n return nextProxy;\r\n }\r\n function _getExtCfg(identifier, defaultValue, mergeDefault) {\r\n if (defaultValue === void 0) { defaultValue = {}; }\r\n if (mergeDefault === void 0) { mergeDefault = 0 /* GetExtCfgMergeType.None */; }\r\n var theConfig;\r\n if (config) {\r\n var extConfig = config[STR_EXTENSION_CONFIG /* @min:%2eextensionConfig */];\r\n if (extConfig && identifier) {\r\n theConfig = extConfig[identifier];\r\n }\r\n }\r\n if (!theConfig) {\r\n // Just use the defaults\r\n theConfig = defaultValue;\r\n }\r\n else if (isObject(defaultValue)) {\r\n if (mergeDefault !== 0 /* GetExtCfgMergeType.None */) {\r\n // Merge the defaults and configured values\r\n var newConfig_1 = objExtend(true, defaultValue, theConfig);\r\n if (config && mergeDefault === 2 /* GetExtCfgMergeType.MergeDefaultFromRootOrDefault */) {\r\n // Enumerate over the defaultValues and if not already populated attempt to\r\n // find a value from the root config\r\n objForEachKey(defaultValue, function (field) {\r\n // for each unspecified field, set the default value\r\n if (isNullOrUndefined(newConfig_1[field])) {\r\n var cfgValue = config[field];\r\n if (!isNullOrUndefined(cfgValue)) {\r\n newConfig_1[field] = cfgValue;\r\n }\r\n }\r\n });\r\n }\r\n theConfig = newConfig_1;\r\n }\r\n }\r\n return theConfig;\r\n }\r\n function _getConfig(identifier, field, defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = false; }\r\n var theValue;\r\n var extConfig = _getExtCfg(identifier, null);\r\n if (extConfig && !isNullOrUndefined(extConfig[field])) {\r\n theValue = extConfig[field];\r\n }\r\n else if (config && !isNullOrUndefined(config[field])) {\r\n theValue = config[field];\r\n }\r\n return !isNullOrUndefined(theValue) ? theValue : defaultValue;\r\n }\r\n function _iterateChain(cb) {\r\n // Keep processing until we reach the end of the chain\r\n var nextPlugin;\r\n while (!!(nextPlugin = context._next())) {\r\n var plugin = nextPlugin[_DYN_GET_PLUGIN /* @min:%2egetPlugin */]();\r\n if (plugin) {\r\n // callback with the current on\r\n cb(plugin);\r\n }\r\n }\r\n }\r\n return context;\r\n}\r\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 * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n */\r\nexport function createProcessTelemetryContext(telemetryChain, config, core, startAt) {\r\n var internalContext = _createInternalContext(telemetryChain, config, core, startAt);\r\n var context = internalContext.ctx;\r\n function _processNext(env) {\r\n var nextPlugin = internalContext._next();\r\n // Run the next plugin which will call \"processNext()\"\r\n nextPlugin && nextPlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */](env, context);\r\n return !nextPlugin;\r\n }\r\n function _createNew(plugins, startAt) {\r\n if (plugins === void 0) { plugins = null; }\r\n if (isArray(plugins)) {\r\n plugins = createTelemetryProxyChain(plugins, config, core, startAt);\r\n }\r\n return createProcessTelemetryContext(plugins || context[_DYN_GET_NEXT /* @min:%2egetNext */](), config, core, startAt);\r\n }\r\n context[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = _processNext;\r\n context[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = _createNew;\r\n return context;\r\n}\r\n/**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain for handling the unloading of the 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 * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n */\r\nexport function createProcessTelemetryUnloadContext(telemetryChain, core, startAt) {\r\n var config = core[_DYN_CONFIG /* @min:%2econfig */] || {};\r\n var internalContext = _createInternalContext(telemetryChain, config, core, startAt);\r\n var context = internalContext.ctx;\r\n function _processNext(unloadState) {\r\n var nextPlugin = internalContext._next();\r\n nextPlugin && nextPlugin.unload(context, unloadState);\r\n return !nextPlugin;\r\n }\r\n function _createNew(plugins, startAt) {\r\n if (plugins === void 0) { plugins = null; }\r\n if (isArray(plugins)) {\r\n plugins = createTelemetryProxyChain(plugins, config, core, startAt);\r\n }\r\n return createProcessTelemetryUnloadContext(plugins || context[_DYN_GET_NEXT /* @min:%2egetNext */](), core, startAt);\r\n }\r\n context[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = _processNext;\r\n context[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = _createNew;\r\n return context;\r\n}\r\n/**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain for updating the configuration\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 * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n */\r\nexport function createProcessTelemetryUpdateContext(telemetryChain, core, startAt) {\r\n var config = core[_DYN_CONFIG /* @min:%2econfig */] || {};\r\n var internalContext = _createInternalContext(telemetryChain, config, core, startAt);\r\n var context = internalContext.ctx;\r\n function _processNext(updateState) {\r\n return context.iterate(function (plugin) {\r\n if (isFunction(plugin[_DYN_UPDATE /* @min:%2eupdate */])) {\r\n plugin[_DYN_UPDATE /* @min:%2eupdate */](context, updateState);\r\n }\r\n });\r\n }\r\n function _createNew(plugins, startAt) {\r\n if (plugins === void 0) { plugins = null; }\r\n if (isArray(plugins)) {\r\n plugins = createTelemetryProxyChain(plugins, config, core, startAt);\r\n }\r\n return createProcessTelemetryUpdateContext(plugins || context[_DYN_GET_NEXT /* @min:%2egetNext */](), core, startAt);\r\n }\r\n context[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = _processNext;\r\n context[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = _createNew;\r\n return context;\r\n}\r\n/**\r\n * Creates an execution chain from the array of plugins\r\n * @param plugins - The array of plugins that will be executed in this order\r\n * @param defItemCtx - The default execution context to use when no telemetry context is passed to processTelemetry(), this\r\n * should be for legacy plugins only. Currently, only used for passing the current core instance and to provide better error\r\n * reporting (hasRun) when errors occur.\r\n */\r\nexport function createTelemetryProxyChain(plugins, config, core, startAt) {\r\n var firstProxy = null;\r\n var add = startAt ? false : true;\r\n if (isArray(plugins) && plugins[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n // Create the proxies and wire up the next plugin chain\r\n var lastProxy_1 = null;\r\n arrForEach(plugins, function (thePlugin) {\r\n if (!add && startAt === thePlugin) {\r\n add = true;\r\n }\r\n if (add && thePlugin && isFunction(thePlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */])) {\r\n // Only add plugins that are processors\r\n var newProxy = createTelemetryPluginProxy(thePlugin, config, core);\r\n if (!firstProxy) {\r\n firstProxy = newProxy;\r\n }\r\n if (lastProxy_1) {\r\n // Set this new proxy as the next for the previous one\r\n lastProxy_1._setNext(newProxy);\r\n }\r\n lastProxy_1 = newProxy;\r\n }\r\n });\r\n }\r\n if (startAt && !firstProxy) {\r\n // Special case where the \"startAt\" was not in the original list of plugins\r\n return createTelemetryProxyChain([startAt], config, core);\r\n }\r\n return firstProxy;\r\n}\r\n/**\r\n * Create the processing telemetry proxy instance, the proxy is used to abstract the current plugin to allow monitoring and\r\n * execution plugins while passing around the dynamic execution state (IProcessTelemetryContext), the proxy instance no longer\r\n * contains any execution state and can be reused between requests (this was not the case for 2.7.2 and earlier with the\r\n * TelemetryPluginChain class).\r\n * @param plugin - The plugin instance to proxy\r\n * @param config - The default execution context to use when no telemetry context is passed to processTelemetry(), this\r\n * should be for legacy plugins only. Currently, only used for passing the current core instance and to provide better error\r\n * reporting (hasRun) when errors occur.\r\n * @returns\r\n */\r\nexport function createTelemetryPluginProxy(plugin, config, core) {\r\n var nextProxy = null;\r\n var hasProcessTelemetry = isFunction(plugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */]);\r\n var hasSetNext = isFunction(plugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */]);\r\n var chainId;\r\n if (plugin) {\r\n chainId = plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] + \"-\" + plugin[STR_PRIORITY /* @min:%2epriority */] + \"-\" + _chainId++;\r\n }\r\n else {\r\n chainId = \"Unknown-0-\" + _chainId++;\r\n }\r\n var proxyChain = {\r\n getPlugin: function () {\r\n return plugin;\r\n },\r\n getNext: function () {\r\n return nextProxy;\r\n },\r\n processTelemetry: _processTelemetry,\r\n unload: _unloadPlugin,\r\n update: _updatePlugin,\r\n _id: chainId,\r\n _setNext: function (nextPlugin) {\r\n nextProxy = nextPlugin;\r\n }\r\n };\r\n function _getTelCtx() {\r\n var itemCtx;\r\n // Looks like a plugin didn't pass the (optional) context, so create a new one\r\n if (plugin && isFunction(plugin[strGetTelCtx])) {\r\n // This plugin extends from the BaseTelemetryPlugin so lets use it\r\n itemCtx = plugin[strGetTelCtx]();\r\n }\r\n if (!itemCtx) {\r\n // Create a temporary one\r\n itemCtx = createProcessTelemetryContext(proxyChain, config, core);\r\n }\r\n return itemCtx;\r\n }\r\n function _processChain(itemCtx, processPluginFn, name, details, isAsync) {\r\n var hasRun = false;\r\n var identifier = plugin ? plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] : strTelemetryPluginChain;\r\n var hasRunContext = itemCtx[strHasRunFlags];\r\n if (!hasRunContext) {\r\n // Assign and populate\r\n hasRunContext = itemCtx[strHasRunFlags] = {};\r\n }\r\n // Ensure that we keep the context in sync\r\n itemCtx.setNext(nextProxy);\r\n if (plugin) {\r\n doPerf(itemCtx[STR_CORE /* @min:%2ecore */](), function () { return identifier + \":\" + name; }, function () {\r\n // Mark this component as having run\r\n hasRunContext[chainId] = true;\r\n try {\r\n // Set a flag on the next plugin so we know if it was attempted to be executed\r\n var nextId = nextProxy ? nextProxy._id : STR_EMPTY;\r\n if (nextId) {\r\n hasRunContext[nextId] = false;\r\n }\r\n hasRun = processPluginFn(itemCtx);\r\n }\r\n catch (error) {\r\n var hasNextRun = nextProxy ? hasRunContext[nextProxy._id] : true;\r\n if (hasNextRun) {\r\n // The next plugin after us has already run so set this one as complete\r\n hasRun = true;\r\n }\r\n if (!nextProxy || !hasNextRun) {\r\n // Either we have no next plugin or the current one did not attempt to call the next plugin\r\n // Which means the current one is the root of the failure so log/report this failure\r\n _throwInternal(itemCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 73 /* _eInternalMessageId.PluginException */, \"Plugin [\" + identifier + \"] failed during \" + name + \" - \" + dumpObj(error) + \", run flags: \" + dumpObj(hasRunContext));\r\n }\r\n }\r\n }, details, isAsync);\r\n }\r\n return hasRun;\r\n }\r\n function _processTelemetry(env, itemCtx) {\r\n itemCtx = itemCtx || _getTelCtx();\r\n function _callProcessTelemetry(itemCtx) {\r\n if (!plugin || !hasProcessTelemetry) {\r\n return false;\r\n }\r\n var pluginState = _getPluginState(plugin);\r\n if (pluginState[_DYN_TEARDOWN /* @min:%2eteardown */] || pluginState[STR_DISABLED]) {\r\n return false;\r\n }\r\n // Ensure that we keep the context in sync (for processNext()), just in case a plugin\r\n // doesn't calls processTelemetry() instead of itemContext.processNext() or some\r\n // other form of error occurred\r\n if (hasSetNext) {\r\n // Backward compatibility setting the next plugin on the instance\r\n plugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */](nextProxy);\r\n }\r\n plugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */](env, itemCtx);\r\n // Process Telemetry is expected to call itemCtx.processNext() or nextPlugin.processTelemetry()\r\n return true;\r\n }\r\n if (!_processChain(itemCtx, _callProcessTelemetry, \"processTelemetry\", function () { return ({ item: env }); }, !(env.sync))) {\r\n // The underlying plugin is either not defined, not enabled or does not have a processTelemetry implementation\r\n // so we still want the next plugin to be executed.\r\n itemCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](env);\r\n }\r\n }\r\n function _unloadPlugin(unloadCtx, unloadState) {\r\n function _callTeardown() {\r\n // Setting default of hasRun as false so the proxyProcessFn() is called as teardown() doesn't have to exist or call unloadNext().\r\n var hasRun = false;\r\n if (plugin) {\r\n var pluginState = _getPluginState(plugin);\r\n var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE /* @min:%2ecore */];\r\n // Only teardown the plugin if it was initialized by the current core (i.e. It's not a shared plugin)\r\n if (plugin && (!pluginCore || pluginCore === unloadCtx.core()) && !pluginState[_DYN_TEARDOWN /* @min:%2eteardown */]) {\r\n // Handle plugins that don't extend from the BaseTelemetryPlugin\r\n pluginState[STR_CORE /* @min:%2ecore */] = null;\r\n pluginState[_DYN_TEARDOWN /* @min:%2eteardown */] = true;\r\n pluginState[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = false;\r\n if (plugin[_DYN_TEARDOWN /* @min:%2eteardown */] && plugin[_DYN_TEARDOWN /* @min:%2eteardown */](unloadCtx, unloadState) === true) {\r\n // plugin told us that it was going to (or has) call unloadCtx.processNext()\r\n hasRun = true;\r\n }\r\n }\r\n }\r\n return hasRun;\r\n }\r\n if (!_processChain(unloadCtx, _callTeardown, \"unload\", function () { }, unloadState[_DYN_IS_ASYNC /* @min:%2eisAsync */])) {\r\n // Only called if we hasRun was not true\r\n unloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](unloadState);\r\n }\r\n }\r\n function _updatePlugin(updateCtx, updateState) {\r\n function _callUpdate() {\r\n // Setting default of hasRun as false so the proxyProcessFn() is called as teardown() doesn't have to exist or call unloadNext().\r\n var hasRun = false;\r\n if (plugin) {\r\n var pluginState = _getPluginState(plugin);\r\n var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE /* @min:%2ecore */];\r\n // Only update the plugin if it was initialized by the current core (i.e. It's not a shared plugin)\r\n if (plugin && (!pluginCore || pluginCore === updateCtx.core()) && !pluginState[_DYN_TEARDOWN /* @min:%2eteardown */]) {\r\n if (plugin[_DYN_UPDATE /* @min:%2eupdate */] && plugin[_DYN_UPDATE /* @min:%2eupdate */](updateCtx, updateState) === true) {\r\n // plugin told us that it was going to (or has) call unloadCtx.processNext()\r\n hasRun = true;\r\n }\r\n }\r\n }\r\n return hasRun;\r\n }\r\n if (!_processChain(updateCtx, _callUpdate, \"update\", function () { }, false)) {\r\n // Only called if we hasRun was not true\r\n updateCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](updateState);\r\n }\r\n }\r\n return objFreeze(proxyChain);\r\n}\r\n/**\r\n * This class will be removed!\r\n * @deprecated use createProcessTelemetryContext() instead\r\n */\r\nvar ProcessTelemetryContext = /** @class */ (function () {\r\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 */\r\n function ProcessTelemetryContext(pluginChain, config, core, startAt) {\r\n var _self = this;\r\n var context = createProcessTelemetryContext(pluginChain, config, core, startAt);\r\n // Proxy all functions of the context to this object\r\n proxyFunctions(_self, context, objKeys(context));\r\n }\r\n return ProcessTelemetryContext;\r\n}());\r\nexport { ProcessTelemetryContext };\r\n//# sourceMappingURL=ProcessTelemetryContext.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strShimFunction, strShimPrototype } from \"@microsoft/applicationinsights-shims\";\r\nimport { _DYN_APPLY, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_SPLICE } from \"../__DynamicConstants\";\r\nimport { getGlobalInst } from \"./EnvUtils\";\r\nimport { _getObjProto, hasOwnProperty } from \"./HelperFuncs\";\r\nvar aiInstrumentHooks = \"_aiHooks\";\r\nvar cbNames = [\r\n \"req\", \"rsp\", \"hkErr\", \"fnErr\"\r\n];\r\n/** @ignore */\r\nfunction _arrLoop(arr, fn) {\r\n if (arr) {\r\n for (var lp = 0; lp < arr[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n if (fn(arr[lp], lp)) {\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n/** @ignore */\r\nfunction _doCallbacks(hooks, callDetails, cbArgs, hookCtx, type) {\r\n if (type >= 0 /* CallbackType.Request */ && type <= 2 /* CallbackType.HookError */) {\r\n _arrLoop(hooks, function (hook, idx) {\r\n var cbks = hook.cbks;\r\n var cb = cbks[cbNames[type]];\r\n if (cb) {\r\n // Set the specific hook context implementation using a lazy creation pattern\r\n callDetails.ctx = function () {\r\n var ctx = hookCtx[idx] = (hookCtx[idx] || {});\r\n return ctx;\r\n };\r\n try {\r\n cb[_DYN_APPLY /* @min:%2eapply */](callDetails.inst, cbArgs);\r\n }\r\n catch (err) {\r\n var orgEx = callDetails.err;\r\n try {\r\n // Report Hook error via the callback\r\n var hookErrorCb = cbks[cbNames[2 /* CallbackType.HookError */]];\r\n if (hookErrorCb) {\r\n callDetails.err = err;\r\n hookErrorCb[_DYN_APPLY /* @min:%2eapply */](callDetails.inst, cbArgs);\r\n }\r\n }\r\n catch (e) {\r\n // Not much we can do here -- swallowing the exception to avoid crashing the hosting app\r\n }\r\n finally {\r\n // restore the original exception (if any)\r\n callDetails.err = orgEx;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n}\r\n/** @ignore */\r\nfunction _createFunctionHook(aiHook) {\r\n // Define a temporary method that queues-up a the real method call\r\n return function () {\r\n var _a;\r\n var funcThis = this;\r\n // Capture the original arguments passed to the method\r\n var orgArgs = arguments;\r\n var hooks = aiHook.h;\r\n var funcArgs = (_a = {},\r\n _a[_DYN_NAME /* @min:name */] = aiHook.n,\r\n _a.inst = funcThis,\r\n _a.ctx = null,\r\n _a.set = _replaceArg,\r\n _a);\r\n var hookCtx = [];\r\n var cbArgs = _createArgs([funcArgs], orgArgs);\r\n funcArgs.evt = getGlobalInst(\"event\");\r\n function _createArgs(target, theArgs) {\r\n _arrLoop(theArgs, function (arg) {\r\n target[_DYN_PUSH /* @min:%2epush */](arg);\r\n });\r\n return target;\r\n }\r\n function _replaceArg(idx, value) {\r\n orgArgs = _createArgs([], orgArgs);\r\n orgArgs[idx] = value;\r\n cbArgs = _createArgs([funcArgs], orgArgs);\r\n }\r\n // Call the pre-request hooks\r\n _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 0 /* CallbackType.Request */);\r\n // Call the original function was called\r\n var theFunc = aiHook.f;\r\n if (theFunc) {\r\n try {\r\n funcArgs.rslt = theFunc[_DYN_APPLY /* @min:%2eapply */](funcThis, orgArgs);\r\n }\r\n catch (err) {\r\n // Report the request callback\r\n funcArgs.err = err;\r\n _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 3 /* CallbackType.FunctionError */);\r\n // rethrow the original exception so anyone listening for it can catch the exception\r\n throw err;\r\n }\r\n }\r\n // Call the post-request hooks\r\n _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 1 /* CallbackType.Response */);\r\n return funcArgs.rslt;\r\n };\r\n}\r\n/** @ignore */\r\nfunction _getOwner(target, name, checkPrototype, checkParentProto) {\r\n var owner = null;\r\n if (target) {\r\n if (hasOwnProperty(target, name)) {\r\n owner = target;\r\n }\r\n else if (checkPrototype) {\r\n owner = _getOwner(_getObjProto(target), name, checkParentProto, false);\r\n }\r\n }\r\n return owner;\r\n}\r\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 */\r\nexport function InstrumentProto(target, funcName, callbacks) {\r\n if (target) {\r\n return InstrumentFunc(target[strShimPrototype], funcName, callbacks, false);\r\n }\r\n return null;\r\n}\r\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 */\r\nexport function InstrumentProtos(target, funcNames, callbacks) {\r\n if (target) {\r\n return InstrumentFuncs(target[strShimPrototype], funcNames, callbacks, false);\r\n }\r\n return null;\r\n}\r\nfunction _createInstrumentHook(owner, funcName, fn, callbacks) {\r\n var aiHook = fn && fn[aiInstrumentHooks];\r\n if (!aiHook) {\r\n // Only hook the function once\r\n aiHook = {\r\n i: 0,\r\n n: funcName,\r\n f: fn,\r\n h: []\r\n };\r\n // Override (hook) the original function\r\n var newFunc = _createFunctionHook(aiHook);\r\n newFunc[aiInstrumentHooks] = aiHook; // Tag and store the function hooks\r\n owner[funcName] = newFunc;\r\n }\r\n var theHook = {\r\n // tslint:disable:object-literal-shorthand\r\n id: aiHook.i,\r\n cbks: callbacks,\r\n rm: function () {\r\n // DO NOT Use () => { shorthand for the function as the this gets replaced\r\n // with the outer this and not the this for theHook instance.\r\n var id = this.id;\r\n _arrLoop(aiHook.h, function (hook, idx) {\r\n if (hook.id === id) {\r\n aiHook.h[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n return 1;\r\n }\r\n });\r\n }\r\n // tslint:enable:object-literal-shorthand\r\n };\r\n aiHook.i++;\r\n aiHook.h[_DYN_PUSH /* @min:%2epush */](theHook);\r\n return theHook;\r\n}\r\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 * @param checkParentProto - If the function doesn't exist on the target or it's prototype should it attempt to hook the parent's prototype\r\n */\r\nexport function InstrumentFunc(target, funcName, callbacks, checkPrototype, checkParentProto) {\r\n if (checkPrototype === void 0) { checkPrototype = true; }\r\n if (target && funcName && callbacks) {\r\n var owner = _getOwner(target, funcName, checkPrototype, checkParentProto);\r\n if (owner) {\r\n var fn = owner[funcName];\r\n if (typeof fn === strShimFunction) {\r\n return _createInstrumentHook(owner, funcName, fn, callbacks);\r\n }\r\n }\r\n }\r\n return null;\r\n}\r\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 * @param checkParentProto - If the function doesn't exist on the target or it's prototype should it attempt to hook the parent's prototype\r\n */\r\nexport function InstrumentFuncs(target, funcNames, callbacks, checkPrototype, checkParentProto) {\r\n if (checkPrototype === void 0) { checkPrototype = true; }\r\n var hooks = null;\r\n _arrLoop(funcNames, function (funcName) {\r\n var hook = InstrumentFunc(target, funcName, callbacks, checkPrototype, checkParentProto);\r\n if (hook) {\r\n if (!hooks) {\r\n hooks = [];\r\n }\r\n hooks[_DYN_PUSH /* @min:%2epush */](hook);\r\n }\r\n });\r\n return hooks;\r\n}\r\n/**\r\n * Add an instrumentation hook to the provided named \"event\" for the target class / object, this doesn't check whether the\r\n * named \"event\" is in fact a function and just assigns the instrumentation hook to the target[evtName]\r\n * @param target - The target object\r\n * @param evtName - The name of the event\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 * @param checkParentProto - If the function doesn't exist on the target or it's prototype should it attempt to hook the parent's prototype\r\n */\r\nexport function InstrumentEvent(target, evtName, callbacks, checkPrototype, checkParentProto) {\r\n if (target && evtName && callbacks) {\r\n var owner = _getOwner(target, evtName, checkPrototype, checkParentProto) || target;\r\n if (owner) {\r\n return _createInstrumentHook(owner, evtName, owner[evtName], callbacks);\r\n }\r\n }\r\n return null;\r\n}\r\n//# sourceMappingURL=InstrumentHooks.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { _DYN_DIAG_LOG, _DYN_PUSH } from \"../__DynamicConstants\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nimport { dumpObj } from \"./EnvUtils\";\r\nimport { arrForEach } from \"./HelperFuncs\";\r\nexport function createUnloadHandlerContainer() {\r\n var handlers = [];\r\n function _addHandler(handler) {\r\n if (handler) {\r\n handlers[_DYN_PUSH /* @min:%2epush */](handler);\r\n }\r\n }\r\n function _runHandlers(unloadCtx, unloadState) {\r\n arrForEach(handlers, function (handler) {\r\n try {\r\n handler(unloadCtx, unloadState);\r\n }\r\n catch (e) {\r\n _throwInternal(unloadCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, \"Unexpected error calling unload handler - \" + dumpObj(e));\r\n }\r\n });\r\n handlers = [];\r\n }\r\n return {\r\n add: _addHandler,\r\n run: _runHandlers\r\n };\r\n}\r\n//# sourceMappingURL=UnloadHandlerContainer.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { _DYN_CREATE_NEW, _DYN_DIAG_LOG, _DYN_GET_NEXT, _DYN_GET_PROCESS_TEL_CONT0, _DYN_INITIALIZE, _DYN_IS_ASYNC, _DYN_IS_INITIALIZED, _DYN_PROCESS_NEXT, _DYN_PUSH, _DYN_SET_NEXT_PLUGIN, _DYN_TEARDOWN, _DYN_UPDATE, _DYN__DO_TEARDOWN } from \"../__DynamicConstants\";\r\nimport { arrForEach, isArray, isFunction, isNullOrUndefined, proxyFunctionAs, setValue } from \"./HelperFuncs\";\r\nimport { STR_CORE, STR_EXTENSION_CONFIG, STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nimport { createProcessTelemetryContext, createProcessTelemetryUnloadContext, createProcessTelemetryUpdateContext } from \"./ProcessTelemetryContext\";\r\nimport { createUnloadHandlerContainer } from \"./UnloadHandlerContainer\";\r\nvar strGetPlugin = \"getPlugin\";\r\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 */\r\nvar BaseTelemetryPlugin = /** @class */ (function () {\r\n function BaseTelemetryPlugin() {\r\n var _self = this; // Setting _self here as it's used outside of the dynamicProto as well\r\n // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n var _isinitialized;\r\n var _rootCtx; // Used as the root context, holding the current config and initialized core\r\n var _nextPlugin; // Used for backward compatibility where plugins don't call the main pipeline\r\n var _unloadHandlerContainer;\r\n var _hooks;\r\n _initDefaults();\r\n dynamicProto(BaseTelemetryPlugin, _self, function (_self) {\r\n _self[_DYN_INITIALIZE /* @min:%2einitialize */] = function (config, core, extensions, pluginChain) {\r\n _setDefaults(config, core, pluginChain);\r\n _isinitialized = true;\r\n };\r\n _self[_DYN_TEARDOWN /* @min:%2eteardown */] = function (unloadCtx, unloadState) {\r\n var _a;\r\n // If this plugin has already been torn down (not operational) or is not initialized (core is not set)\r\n // or the core being used for unload was not the same core used for initialization.\r\n var core = _self[STR_CORE /* @min:%2ecore */];\r\n if (!core || (unloadCtx && core !== unloadCtx[STR_CORE /* @min:%2ecore */]())) {\r\n // Do Nothing as either the plugin is not initialized or was not initialized by the current core\r\n return;\r\n }\r\n var result;\r\n var unloadDone = false;\r\n var theUnloadCtx = unloadCtx || createProcessTelemetryUnloadContext(null, core, _nextPlugin && _nextPlugin[strGetPlugin] ? _nextPlugin[strGetPlugin]() : _nextPlugin);\r\n var theUnloadState = unloadState || (_a = {\r\n reason: 0 /* TelemetryUnloadReason.ManualTeardown */\r\n },\r\n _a[_DYN_IS_ASYNC /* @min:isAsync */] = false,\r\n _a);\r\n function _unloadCallback() {\r\n if (!unloadDone) {\r\n unloadDone = true;\r\n _unloadHandlerContainer.run(theUnloadCtx, unloadState);\r\n var oldHooks = _hooks;\r\n _hooks = [];\r\n // Remove all instrumentation hooks\r\n arrForEach(oldHooks, function (fn) {\r\n fn.rm();\r\n });\r\n if (result === true) {\r\n theUnloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](theUnloadState);\r\n }\r\n _initDefaults();\r\n }\r\n }\r\n if (!_self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */] || _self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */](theUnloadCtx, theUnloadState, _unloadCallback) !== true) {\r\n _unloadCallback();\r\n }\r\n else {\r\n // Tell the caller that we will be calling processNext()\r\n result = true;\r\n }\r\n return result;\r\n };\r\n _self[_DYN_UPDATE /* @min:%2eupdate */] = function (updateCtx, updateState) {\r\n // If this plugin has already been torn down (not operational) or is not initialized (core is not set)\r\n // or the core being used for unload was not the same core used for initialization.\r\n var core = _self[STR_CORE /* @min:%2ecore */];\r\n if (!core || (updateCtx && core !== updateCtx[STR_CORE /* @min:%2ecore */]())) {\r\n // Do Nothing\r\n return;\r\n }\r\n var result;\r\n var updateDone = false;\r\n var theUpdateCtx = updateCtx || createProcessTelemetryUpdateContext(null, core, _nextPlugin && _nextPlugin[strGetPlugin] ? _nextPlugin[strGetPlugin]() : _nextPlugin);\r\n var theUpdateState = updateState || {\r\n reason: 0 /* TelemetryUpdateReason.Unknown */\r\n };\r\n function _updateCallback() {\r\n if (!updateDone) {\r\n updateDone = true;\r\n _setDefaults(theUpdateCtx.getCfg(), theUpdateCtx.core(), theUpdateCtx[_DYN_GET_NEXT /* @min:%2egetNext */]());\r\n }\r\n }\r\n if (!_self._doUpdate || _self._doUpdate(theUpdateCtx, theUpdateState, _updateCallback) !== true) {\r\n _updateCallback();\r\n }\r\n else {\r\n result = true;\r\n }\r\n return result;\r\n };\r\n _self._addHook = function (hooks) {\r\n if (hooks) {\r\n if (isArray(hooks)) {\r\n _hooks = _hooks.concat(hooks);\r\n }\r\n else {\r\n _hooks[_DYN_PUSH /* @min:%2epush */](hooks);\r\n }\r\n }\r\n };\r\n proxyFunctionAs(_self, \"_addUnloadCb\", function () { return _unloadHandlerContainer; }, \"add\");\r\n });\r\n // These are added after the dynamicProto so that are not moved to the prototype\r\n _self[_DYN_DIAG_LOG /* @min:%2ediagLog */] = function (itemCtx) {\r\n return _getTelCtx(itemCtx)[_DYN_DIAG_LOG /* @min:%2ediagLog */]();\r\n };\r\n _self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = function () {\r\n return _isinitialized;\r\n };\r\n _self.setInitialized = function (isInitialized) {\r\n _isinitialized = isInitialized;\r\n };\r\n // _self.getNextPlugin = () => DO NOT IMPLEMENT\r\n // Sub-classes of this base class *should* not be relying on this value and instead\r\n // should use processNext() function. If you require access to the plugin use the\r\n // IProcessTelemetryContext.getNext().getPlugin() while in the pipeline, Note getNext() may return null.\r\n _self[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */] = function (next) {\r\n _nextPlugin = next;\r\n };\r\n _self[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = function (env, itemCtx) {\r\n if (itemCtx) {\r\n // Normal core execution sequence\r\n itemCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](env);\r\n }\r\n else if (_nextPlugin && isFunction(_nextPlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */])) {\r\n // Looks like backward compatibility or out of band processing. And as it looks\r\n // like a ITelemetryPlugin or ITelemetryPluginChain, just call processTelemetry\r\n _nextPlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */](env, null);\r\n }\r\n };\r\n _self._getTelCtx = _getTelCtx;\r\n function _getTelCtx(currentCtx) {\r\n if (currentCtx === void 0) { currentCtx = null; }\r\n var itemCtx = currentCtx;\r\n if (!itemCtx) {\r\n var rootCtx = _rootCtx || createProcessTelemetryContext(null, {}, _self[STR_CORE /* @min:%2ecore */]);\r\n // tslint:disable-next-line: prefer-conditional-expression\r\n if (_nextPlugin && _nextPlugin[strGetPlugin]) {\r\n // Looks like a chain object\r\n itemCtx = rootCtx[_DYN_CREATE_NEW /* @min:%2ecreateNew */](null, _nextPlugin[strGetPlugin]);\r\n }\r\n else {\r\n itemCtx = rootCtx[_DYN_CREATE_NEW /* @min:%2ecreateNew */](null, _nextPlugin);\r\n }\r\n }\r\n return itemCtx;\r\n }\r\n function _setDefaults(config, core, pluginChain) {\r\n if (config) {\r\n // Make sure the extensionConfig exists\r\n setValue(config, STR_EXTENSION_CONFIG, [], null, isNullOrUndefined);\r\n }\r\n if (!pluginChain && core) {\r\n // Get the first plugin from the core\r\n pluginChain = core[_DYN_GET_PROCESS_TEL_CONT0 /* @min:%2egetProcessTelContext */]()[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n }\r\n var nextPlugin = _nextPlugin;\r\n if (_nextPlugin && _nextPlugin[strGetPlugin]) {\r\n // If it looks like a proxy/chain then get the plugin\r\n nextPlugin = _nextPlugin[strGetPlugin]();\r\n }\r\n // Support legacy plugins where core was defined as a property\r\n _self[STR_CORE /* @min:%2ecore */] = core;\r\n _rootCtx = createProcessTelemetryContext(pluginChain, config, core, nextPlugin);\r\n }\r\n function _initDefaults() {\r\n _isinitialized = false;\r\n _self[STR_CORE /* @min:%2ecore */] = null;\r\n _rootCtx = null;\r\n _nextPlugin = null;\r\n _hooks = [];\r\n _unloadHandlerContainer = createUnloadHandlerContainer();\r\n }\r\n }\r\n// Removed Stub for BaseTelemetryPlugin.prototype.initialize.\r\n// Removed Stub for BaseTelemetryPlugin.prototype.teardown.\r\n// Removed Stub for BaseTelemetryPlugin.prototype.update.\r\n// Removed Stub for BaseTelemetryPlugin.prototype._addUnloadCb.\r\n// Removed Stub for BaseTelemetryPlugin.prototype._addHook.\r\n // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n // this will be removed when ES3 support is dropped.\n BaseTelemetryPlugin.__ieDyn=1;\n\n return BaseTelemetryPlugin;\r\n}());\r\nexport { BaseTelemetryPlugin };\r\n//# sourceMappingURL=BaseTelemetryPlugin.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_TO_STRING = \"toString\"; // Count: 4\r\nexport var _DYN_DISABLE_EXCEPTION_TR0 = \"disableExceptionTracking\"; // Count: 3\r\nexport var _DYN_AUTO_TRACK_PAGE_VISI1 = \"autoTrackPageVisitTime\"; // Count: 4\r\nexport var _DYN_OVERRIDE_PAGE_VIEW_D2 = \"overridePageViewDuration\"; // Count: 3\r\nexport var _DYN_ENABLE_UNHANDLED_PRO3 = \"enableUnhandledPromiseRejectionTracking\"; // Count: 3\r\nexport var _DYN_SAMPLING_PERCENTAGE = \"samplingPercentage\"; // Count: 4\r\nexport var _DYN_IS_STORAGE_USE_DISAB4 = \"isStorageUseDisabled\"; // Count: 4\r\nexport var _DYN_IS_BROWSER_LINK_TRAC5 = \"isBrowserLinkTrackingEnabled\"; // Count: 4\r\nexport var _DYN_ENABLE_AUTO_ROUTE_TR6 = \"enableAutoRouteTracking\"; // Count: 3\r\nexport var _DYN_NAME_PREFIX = \"namePrefix\"; // Count: 3\r\nexport var _DYN_DISABLE_FLUSH_ON_BEF7 = \"disableFlushOnBeforeUnload\"; // Count: 3\r\nexport var _DYN_DISABLE_FLUSH_ON_UNL8 = \"disableFlushOnUnload\"; // Count: 2\r\nexport var _DYN_CORE = \"core\"; // Count: 7\r\nexport var _DYN_DATA_TYPE = \"dataType\"; // Count: 8\r\nexport var _DYN_ENVELOPE_TYPE = \"envelopeType\"; // Count: 7\r\nexport var _DYN_DIAG_LOG = \"diagLog\"; // Count: 13\r\nexport var _DYN_TRACK = \"track\"; // Count: 7\r\nexport var _DYN_TRACK_PAGE_VIEW = \"trackPageView\"; // Count: 4\r\nexport var _DYN_TRACK_PREVIOUS_PAGE_9 = \"trackPreviousPageVisit\"; // Count: 3\r\nexport var _DYN_SEND_PAGE_VIEW_INTER10 = \"sendPageViewInternal\"; // Count: 7\r\nexport var _DYN_SEND_PAGE_VIEW_PERFO11 = \"sendPageViewPerformanceInternal\"; // Count: 3\r\nexport var _DYN_POPULATE_PAGE_VIEW_P12 = \"populatePageViewPerformanceEvent\"; // Count: 3\r\nexport var _DYN_HREF = \"href\"; // Count: 6\r\nexport var _DYN_SEND_EXCEPTION_INTER13 = \"sendExceptionInternal\"; // Count: 2\r\nexport var _DYN_EXCEPTION = \"exception\"; // Count: 3\r\nexport var _DYN_ERROR = \"error\"; // Count: 5\r\nexport var _DYN__ONERROR = \"_onerror\"; // Count: 3\r\nexport var _DYN_ERROR_SRC = \"errorSrc\"; // Count: 3\r\nexport var _DYN_LINE_NUMBER = \"lineNumber\"; // Count: 5\r\nexport var _DYN_COLUMN_NUMBER = \"columnNumber\"; // Count: 5\r\nexport var _DYN_MESSAGE = \"message\"; // Count: 4\r\nexport var _DYN__CREATE_AUTO_EXCEPTI14 = \"CreateAutoException\"; // Count: 3\r\nexport var _DYN_ADD_TELEMETRY_INITIA15 = \"addTelemetryInitializer\"; // Count: 4\r\nexport var _DYN_DURATION = \"duration\"; // Count: 10\r\nexport var _DYN_LENGTH = \"length\"; // Count: 5\r\nexport var _DYN_IS_PERFORMANCE_TIMIN16 = \"isPerformanceTimingSupported\"; // Count: 2\r\nexport var _DYN_GET_PERFORMANCE_TIMI17 = \"getPerformanceTiming\"; // Count: 2\r\nexport var _DYN_NAVIGATION_START = \"navigationStart\"; // Count: 4\r\nexport var _DYN_SHOULD_COLLECT_DURAT18 = \"shouldCollectDuration\"; // Count: 3\r\nexport var _DYN_IS_PERFORMANCE_TIMIN19 = \"isPerformanceTimingDataReady\"; // Count: 2\r\nexport var _DYN_GET_ENTRIES_BY_TYPE = \"getEntriesByType\"; // Count: 3\r\nexport var _DYN_RESPONSE_START = \"responseStart\"; // Count: 5\r\nexport var _DYN_REQUEST_START = \"requestStart\"; // Count: 3\r\nexport var _DYN_LOAD_EVENT_END = \"loadEventEnd\"; // Count: 4\r\nexport var _DYN_RESPONSE_END = \"responseEnd\"; // Count: 5\r\nexport var _DYN_CONNECT_END = \"connectEnd\"; // Count: 4\r\nexport var _DYN_PAGE_VISIT_START_TIM20 = \"pageVisitStartTime\"; // Count: 2\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { dateTimeUtilsDuration } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, arrForEach, dumpObj, getDocument, getExceptionName, getLocation, isNullOrUndefined } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_DURATION, _DYN_GET_PERFORMANCE_TIMI17, _DYN_HREF, _DYN_IS_PERFORMANCE_TIMIN16, _DYN_IS_PERFORMANCE_TIMIN19, _DYN_LENGTH, _DYN_NAVIGATION_START, _DYN_POPULATE_PAGE_VIEW_P12, _DYN_SEND_PAGE_VIEW_INTER10, _DYN_SEND_PAGE_VIEW_PERFO11, _DYN_SHOULD_COLLECT_DURAT18, _DYN_TRACK_PAGE_VIEW } from \"../../__DynamicConstants\";\r\nvar _isWebWorker = null;\r\nfunction isWebWorker() {\r\n if (_isWebWorker == null) {\r\n try {\r\n _isWebWorker = !!(self && self instanceof WorkerGlobalScope);\r\n }\r\n catch (e) {\r\n _isWebWorker = false;\r\n }\r\n }\r\n return _isWebWorker;\r\n}\r\n/**\r\n * Class encapsulates sending page views and page view performance telemetry.\r\n */\r\nvar PageViewManager = /** @class */ (function () {\r\n function PageViewManager(appInsights, overridePageViewDuration, core, pageViewPerformanceManager) {\r\n dynamicProto(PageViewManager, this, function (_self) {\r\n var queueTimer = null;\r\n var itemQueue = [];\r\n var pageViewPerformanceSent = false;\r\n var _logger;\r\n if (core) {\r\n _logger = core.logger;\r\n }\r\n function _flushChannels(isAsync) {\r\n if (core) {\r\n core.flush(isAsync);\r\n }\r\n }\r\n function _startTimer() {\r\n if (!queueTimer) {\r\n queueTimer = setTimeout((function () {\r\n queueTimer = null;\r\n var allItems = itemQueue.slice(0);\r\n var doFlush = false;\r\n itemQueue = [];\r\n arrForEach(allItems, function (item) {\r\n if (!item()) {\r\n // Not processed so rescheduled\r\n itemQueue.push(item);\r\n }\r\n else {\r\n doFlush = true;\r\n }\r\n });\r\n if (itemQueue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _startTimer();\r\n }\r\n if (doFlush) {\r\n // We process at least one item so flush the queue\r\n _flushChannels(true);\r\n }\r\n }), 100);\r\n }\r\n }\r\n function _addQueue(cb) {\r\n itemQueue.push(cb);\r\n _startTimer();\r\n }\r\n _self[_DYN_TRACK_PAGE_VIEW /* @min:%2etrackPageView */] = function (pageView, customProperties) {\r\n var name = pageView.name;\r\n if (isNullOrUndefined(name) || typeof name !== \"string\") {\r\n var doc = getDocument();\r\n name = pageView.name = doc && doc.title || \"\";\r\n }\r\n var uri = pageView.uri;\r\n if (isNullOrUndefined(uri) || typeof uri !== \"string\") {\r\n var location_1 = getLocation();\r\n uri = pageView.uri = location_1 && location_1[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n }\r\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\r\n // do not provide the duration, set duration to undefined\r\n // Also this is case 4\r\n if (!pageViewPerformanceManager[_DYN_IS_PERFORMANCE_TIMIN16 /* @min:%2eisPerformanceTimingSupported */]()) {\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER10 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n _flushChannels(true);\r\n if (!isWebWorker()) {\r\n // no navigation timing (IE 8, iOS Safari 8.4, Opera Mini 8 - see http://caniuse.com/#feat=nav-timing)\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 25 /* _eInternalMessageId.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.\");\r\n }\r\n return;\r\n }\r\n var pageViewSent = false;\r\n var customDuration;\r\n // if the performance timing is supported by the browser, calculate the custom duration\r\n var start = pageViewPerformanceManager[_DYN_GET_PERFORMANCE_TIMI17 /* @min:%2egetPerformanceTiming */]()[_DYN_NAVIGATION_START /* @min:%2enavigationStart */];\r\n if (start > 0) {\r\n customDuration = dateTimeUtilsDuration(start, +new Date);\r\n if (!pageViewPerformanceManager[_DYN_SHOULD_COLLECT_DURAT18 /* @min:%2eshouldCollectDuration */](customDuration)) {\r\n customDuration = undefined;\r\n }\r\n }\r\n // if the user has provided duration, send a page view telemetry with the provided duration. Otherwise, if\r\n // overridePageViewDuration is set to true, send a page view telemetry with the custom duration calculated earlier\r\n var duration;\r\n if (!isNullOrUndefined(customProperties) &&\r\n !isNullOrUndefined(customProperties[_DYN_DURATION /* @min:%2eduration */])) {\r\n duration = customProperties[_DYN_DURATION /* @min:%2eduration */];\r\n }\r\n if (overridePageViewDuration || !isNaN(duration)) {\r\n if (isNaN(duration)) {\r\n // case 3\r\n if (!customProperties) {\r\n customProperties = {};\r\n }\r\n customProperties[_DYN_DURATION /* @min:%2eduration */] = customDuration;\r\n }\r\n // case 2\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER10 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n _flushChannels(true);\r\n pageViewSent = true;\r\n }\r\n // now try to send the page view performance telemetry\r\n var maxDurationLimit = 60000;\r\n if (!customProperties) {\r\n customProperties = {};\r\n }\r\n // Queue the event for processing\r\n _addQueue(function () {\r\n var processed = false;\r\n try {\r\n if (pageViewPerformanceManager[_DYN_IS_PERFORMANCE_TIMIN19 /* @min:%2eisPerformanceTimingDataReady */]()) {\r\n processed = true;\r\n var pageViewPerformance = {\r\n name: name,\r\n uri: uri\r\n };\r\n pageViewPerformanceManager[_DYN_POPULATE_PAGE_VIEW_P12 /* @min:%2epopulatePageViewPerformanceEvent */](pageViewPerformance);\r\n if (!pageViewPerformance.isValid && !pageViewSent) {\r\n // If navigation timing gives invalid numbers, then go back to \"override page view duration\" mode.\r\n // That's the best value we can get that makes sense.\r\n customProperties[_DYN_DURATION /* @min:%2eduration */] = customDuration;\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER10 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n }\r\n else {\r\n if (!pageViewSent) {\r\n customProperties[_DYN_DURATION /* @min:%2eduration */] = pageViewPerformance.durationMs;\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER10 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n }\r\n if (!pageViewPerformanceSent) {\r\n appInsights[_DYN_SEND_PAGE_VIEW_PERFO11 /* @min:%2esendPageViewPerformanceInternal */](pageViewPerformance, customProperties);\r\n pageViewPerformanceSent = true;\r\n }\r\n }\r\n }\r\n else if (start > 0 && dateTimeUtilsDuration(start, +new Date) > maxDurationLimit) {\r\n // if performance timings are not ready but we exceeded the maximum duration limit, just log a page view telemetry\r\n // with the maximum duration limit. Otherwise, keep waiting until performance timings are ready\r\n processed = true;\r\n if (!pageViewSent) {\r\n customProperties[_DYN_DURATION /* @min:%2eduration */] = maxDurationLimit;\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER10 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 38 /* _eInternalMessageId.TrackPVFailedCalc */, \"trackPageView failed on page load calculation: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n return processed;\r\n });\r\n };\r\n _self.teardown = function (unloadCtx, unloadState) {\r\n if (queueTimer) {\r\n clearTimeout(queueTimer);\r\n queueTimer = null;\r\n var allItems = itemQueue.slice(0);\r\n var doFlush_1 = false;\r\n itemQueue = [];\r\n arrForEach(allItems, function (item) {\r\n if (item()) {\r\n doFlush_1 = true;\r\n }\r\n });\r\n }\r\n };\r\n });\r\n }\r\n// Removed Stub for PageViewManager.prototype.trackPageView.\r\n// Removed Stub for PageViewManager.prototype.teardown.\r\n // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n // this will be removed when ES3 support is dropped.\n PageViewManager.__ieDyn=1;\n\n return PageViewManager;\r\n}());\r\nexport { PageViewManager };\r\n//# sourceMappingURL=PageViewManager.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { dateTimeUtilsDuration, msToTimeSpan } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, getNavigator, getPerformance, safeGetLogger } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_CONNECT_END, _DYN_DURATION, _DYN_GET_ENTRIES_BY_TYPE, _DYN_GET_PERFORMANCE_TIMI17, _DYN_IS_PERFORMANCE_TIMIN16, _DYN_IS_PERFORMANCE_TIMIN19, _DYN_LENGTH, _DYN_LOAD_EVENT_END, _DYN_NAVIGATION_START, _DYN_POPULATE_PAGE_VIEW_P12, _DYN_REQUEST_START, _DYN_RESPONSE_END, _DYN_RESPONSE_START, _DYN_SHOULD_COLLECT_DURAT18 } from \"../../__DynamicConstants\";\r\nvar MAX_DURATION_ALLOWED = 3600000; // 1h\r\nvar botAgentNames = [\"googlebot\", \"adsbot-google\", \"apis-google\", \"mediapartners-google\"];\r\nfunction _isPerformanceTimingSupported() {\r\n var perf = getPerformance();\r\n return perf && !!perf.timing;\r\n}\r\nfunction _isPerformanceNavigationTimingSupported() {\r\n var perf = getPerformance();\r\n return perf && perf.getEntriesByType && perf.getEntriesByType(\"navigation\")[_DYN_LENGTH /* @min:%2elength */] > 0;\r\n}\r\nfunction _isPerformanceTimingDataReady() {\r\n var perf = getPerformance();\r\n var timing = perf ? perf.timing : 0;\r\n return timing\r\n && timing.domainLookupStart > 0\r\n && timing[_DYN_NAVIGATION_START /* @min:%2enavigationStart */] > 0\r\n && timing[_DYN_RESPONSE_START /* @min:%2eresponseStart */] > 0\r\n && timing[_DYN_REQUEST_START /* @min:%2erequestStart */] > 0\r\n && timing[_DYN_LOAD_EVENT_END /* @min:%2eloadEventEnd */] > 0\r\n && timing[_DYN_RESPONSE_END /* @min:%2eresponseEnd */] > 0\r\n && timing[_DYN_CONNECT_END /* @min:%2econnectEnd */] > 0\r\n && timing.domLoading > 0;\r\n}\r\nfunction _getPerformanceTiming() {\r\n if (_isPerformanceTimingSupported()) {\r\n return getPerformance().timing;\r\n }\r\n return null;\r\n}\r\nfunction _getPerformanceNavigationTiming() {\r\n if (_isPerformanceNavigationTimingSupported()) {\r\n return getPerformance()[_DYN_GET_ENTRIES_BY_TYPE /* @min:%2egetEntriesByType */](\"navigation\")[0];\r\n }\r\n return null;\r\n}\r\n/**\r\n* This method tells if given durations should be excluded from collection.\r\n*/\r\nfunction _shouldCollectDuration() {\r\n var durations = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n durations[_i] = arguments[_i];\r\n }\r\n var _navigator = getNavigator() || {};\r\n // a full list of Google crawlers user agent strings - https://support.google.com/webmasters/answer/1061943?hl=en\r\n var userAgent = _navigator.userAgent;\r\n var isGoogleBot = false;\r\n if (userAgent) {\r\n for (var i = 0; i < botAgentNames[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n isGoogleBot = isGoogleBot || userAgent.toLowerCase().indexOf(botAgentNames[i]) !== -1;\r\n }\r\n }\r\n if (isGoogleBot) {\r\n // Don't report durations for GoogleBot, it is returning invalid values in performance.timing API.\r\n return false;\r\n }\r\n else {\r\n // for other page views, don't report if it's outside of a reasonable range\r\n for (var i = 0; i < durations[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n if (durations[i] < 0 || durations[i] >= MAX_DURATION_ALLOWED) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n}\r\n/**\r\n * Class encapsulates sending page view performance telemetry.\r\n */\r\nvar PageViewPerformanceManager = /** @class */ (function () {\r\n function PageViewPerformanceManager(core) {\r\n var _logger = safeGetLogger(core);\r\n dynamicProto(PageViewPerformanceManager, this, function (_self) {\r\n _self[_DYN_POPULATE_PAGE_VIEW_P12 /* @min:%2epopulatePageViewPerformanceEvent */] = function (pageViewPerformance) {\r\n pageViewPerformance.isValid = false;\r\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 */\r\n var navigationTiming = _getPerformanceNavigationTiming();\r\n var timing = _getPerformanceTiming();\r\n var total = 0;\r\n var network = 0;\r\n var request = 0;\r\n var response = 0;\r\n var dom = 0;\r\n if (navigationTiming || timing) {\r\n if (navigationTiming) {\r\n total = navigationTiming[_DYN_DURATION /* @min:%2eduration */];\r\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 */\r\n network = navigationTiming.startTime === 0 ? navigationTiming[_DYN_CONNECT_END /* @min:%2econnectEnd */] : dateTimeUtilsDuration(navigationTiming.startTime, navigationTiming[_DYN_CONNECT_END /* @min:%2econnectEnd */]);\r\n request = dateTimeUtilsDuration(navigationTiming.requestStart, navigationTiming[_DYN_RESPONSE_START /* @min:%2eresponseStart */]);\r\n response = dateTimeUtilsDuration(navigationTiming[_DYN_RESPONSE_START /* @min:%2eresponseStart */], navigationTiming[_DYN_RESPONSE_END /* @min:%2eresponseEnd */]);\r\n dom = dateTimeUtilsDuration(navigationTiming.responseEnd, navigationTiming[_DYN_LOAD_EVENT_END /* @min:%2eloadEventEnd */]);\r\n }\r\n else {\r\n total = dateTimeUtilsDuration(timing[_DYN_NAVIGATION_START /* @min:%2enavigationStart */], timing[_DYN_LOAD_EVENT_END /* @min:%2eloadEventEnd */]);\r\n network = dateTimeUtilsDuration(timing[_DYN_NAVIGATION_START /* @min:%2enavigationStart */], timing[_DYN_CONNECT_END /* @min:%2econnectEnd */]);\r\n request = dateTimeUtilsDuration(timing.requestStart, timing[_DYN_RESPONSE_START /* @min:%2eresponseStart */]);\r\n response = dateTimeUtilsDuration(timing[_DYN_RESPONSE_START /* @min:%2eresponseStart */], timing[_DYN_RESPONSE_END /* @min:%2eresponseEnd */]);\r\n dom = dateTimeUtilsDuration(timing.responseEnd, timing[_DYN_LOAD_EVENT_END /* @min:%2eloadEventEnd */]);\r\n }\r\n if (total === 0) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 10 /* _eInternalMessageId.ErrorPVCalc */, \"error calculating page view performance.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else if (!_self[_DYN_SHOULD_COLLECT_DURAT18 /* @min:%2eshouldCollectDuration */](total, network, request, response, dom)) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 45 /* _eInternalMessageId.InvalidDurationValue */, \"Invalid page load duration value. Browser perf data won't be sent.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else if (total < Math.floor(network) + Math.floor(request) + Math.floor(response) + Math.floor(dom)) {\r\n // some browsers may report individual components incorrectly so that the sum of the parts will be bigger than total PLT\r\n // in this case, don't report client performance from this page\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 8 /* _eInternalMessageId.ClientPerformanceMathError */, \"client performance math error.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else {\r\n pageViewPerformance.durationMs = total;\r\n // // convert to timespans\r\n pageViewPerformance.perfTotal = pageViewPerformance[_DYN_DURATION /* @min:%2eduration */] = msToTimeSpan(total);\r\n pageViewPerformance.networkConnect = msToTimeSpan(network);\r\n pageViewPerformance.sentRequest = msToTimeSpan(request);\r\n pageViewPerformance.receivedResponse = msToTimeSpan(response);\r\n pageViewPerformance.domProcessing = msToTimeSpan(dom);\r\n pageViewPerformance.isValid = true;\r\n }\r\n }\r\n };\r\n _self[_DYN_GET_PERFORMANCE_TIMI17 /* @min:%2egetPerformanceTiming */] = _getPerformanceTiming;\r\n _self[_DYN_IS_PERFORMANCE_TIMIN16 /* @min:%2eisPerformanceTimingSupported */] = _isPerformanceTimingSupported;\r\n _self[_DYN_IS_PERFORMANCE_TIMIN19 /* @min:%2eisPerformanceTimingDataReady */] = _isPerformanceTimingDataReady;\r\n _self[_DYN_SHOULD_COLLECT_DURAT18 /* @min:%2eshouldCollectDuration */] = _shouldCollectDuration;\r\n });\r\n }\r\n// Removed Stub for PageViewPerformanceManager.prototype.populatePageViewPerformanceEvent.\r\n// Removed Stub for PageViewPerformanceManager.prototype.getPerformanceTiming.\r\n// Removed Stub for PageViewPerformanceManager.prototype.isPerformanceTimingSupported.\r\n// Removed Stub for PageViewPerformanceManager.prototype.isPerformanceTimingDataReady.\r\n// Removed Stub for PageViewPerformanceManager.prototype.shouldCollectDuration.\r\n // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n // this will be removed when ES3 support is dropped.\n PageViewPerformanceManager.__ieDyn=1;\n\n return PageViewPerformanceManager;\r\n}());\r\nexport { PageViewPerformanceManager };\r\n//# sourceMappingURL=PageViewPerformanceManager.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlCanUseSessionStorage, utlGetSessionStorage, utlRemoveSessionStorage, utlSetSessionStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _warnToConsole, dateNow, dumpObj, getJSON, hasJSON, objDefineAccessors, throwError } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_PAGE_VISIT_START_TIM20, _DYN_TRACK_PREVIOUS_PAGE_9 } from \"../../__DynamicConstants\";\r\n/**\r\n * Used to track page visit durations\r\n */\r\nvar PageVisitTimeManager = /** @class */ (function () {\r\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 */\r\n function PageVisitTimeManager(logger, pageVisitTimeTrackingHandler) {\r\n var prevPageVisitDataKeyName = \"prevPageVisitData\";\r\n dynamicProto(PageVisitTimeManager, this, function (_self) {\r\n _self[_DYN_TRACK_PREVIOUS_PAGE_9 /* @min:%2etrackPreviousPageVisit */] = function (currentPageName, currentPageUrl) {\r\n try {\r\n // Restart timer for new page view\r\n var prevPageVisitTimeData = restartPageVisitTimer(currentPageName, currentPageUrl);\r\n // If there was a page already being timed, track the visit time for it now.\r\n if (prevPageVisitTimeData) {\r\n pageVisitTimeTrackingHandler(prevPageVisitTimeData.pageName, prevPageVisitTimeData.pageUrl, prevPageVisitTimeData.pageVisitTime);\r\n }\r\n }\r\n catch (e) {\r\n _warnToConsole(logger, \"Auto track page visit time failed, metric will not be collected: \" + dumpObj(e));\r\n }\r\n };\r\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 */\r\n function restartPageVisitTimer(pageName, pageUrl) {\r\n var prevPageVisitData = null;\r\n try {\r\n prevPageVisitData = stopPageVisitTimer();\r\n startPageVisitTimer(pageName, pageUrl);\r\n }\r\n catch (e) {\r\n _warnToConsole(logger, \"Call to restart failed: \" + dumpObj(e));\r\n prevPageVisitData = null;\r\n }\r\n return prevPageVisitData;\r\n }\r\n /**\r\n * Starts timing visit duration of pageName\r\n * @param pageName\r\n * @returns {}\r\n */\r\n function startPageVisitTimer(pageName, pageUrl) {\r\n try {\r\n if (utlCanUseSessionStorage()) {\r\n if (utlGetSessionStorage(logger, prevPageVisitDataKeyName) != null) {\r\n throwError(\"Cannot call startPageVisit consecutively without first calling stopPageVisit\");\r\n }\r\n var currPageVisitData = new PageVisitData(pageName, pageUrl);\r\n var currPageVisitDataStr = getJSON().stringify(currPageVisitData);\r\n utlSetSessionStorage(logger, prevPageVisitDataKeyName, currPageVisitDataStr);\r\n }\r\n }\r\n catch (e) {\r\n // TODO: Remove this catch in next phase, since if start is called twice in a row the exception needs to be propagated out\r\n _warnToConsole(logger, \"Call to start failed: \" + dumpObj(e));\r\n }\r\n }\r\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 */\r\n function stopPageVisitTimer() {\r\n var prevPageVisitData = null;\r\n try {\r\n if (utlCanUseSessionStorage()) {\r\n // Define end time of page's visit\r\n var pageVisitEndTime = dateNow();\r\n // Try to retrieve page name and start time from session storage\r\n var pageVisitDataJsonStr = utlGetSessionStorage(logger, prevPageVisitDataKeyName);\r\n if (pageVisitDataJsonStr && hasJSON()) {\r\n // if previous page data exists, set end time of visit\r\n prevPageVisitData = getJSON().parse(pageVisitDataJsonStr);\r\n prevPageVisitData.pageVisitTime = pageVisitEndTime - prevPageVisitData[_DYN_PAGE_VISIT_START_TIM20 /* @min:%2epageVisitStartTime */];\r\n // Remove data from storage since we already used it\r\n utlRemoveSessionStorage(logger, prevPageVisitDataKeyName);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _warnToConsole(logger, \"Stop page visit timer failed: \" + dumpObj(e));\r\n prevPageVisitData = null;\r\n }\r\n return prevPageVisitData;\r\n }\r\n // For backward compatibility\r\n objDefineAccessors(_self, \"_logger\", function () { return logger; });\r\n objDefineAccessors(_self, \"pageVisitTimeTrackingHandler\", function () { return pageVisitTimeTrackingHandler; });\r\n });\r\n }\r\n// Removed Stub for PageVisitTimeManager.prototype.trackPreviousPageVisit.\r\n // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n // this will be removed when ES3 support is dropped.\n PageVisitTimeManager.__ieDyn=1;\n\n return PageVisitTimeManager;\r\n}());\r\nexport { PageVisitTimeManager };\r\nvar PageVisitData = /** @class */ (function () {\r\n function PageVisitData(pageName, pageUrl) {\r\n this[_DYN_PAGE_VISIT_START_TIM20 /* @min:%2epageVisitStartTime */] = dateNow();\r\n this.pageName = pageName;\r\n this.pageUrl = pageUrl;\r\n }\r\n return PageVisitData;\r\n}());\r\nexport { PageVisitData };\r\n//# sourceMappingURL=PageVisitTimeManager.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dateTimeUtilsDuration } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal } from \"@microsoft/applicationinsights-core-js\";\r\n/**\r\n * Used to record timed events and page views.\r\n */\r\nvar Timing = /** @class */ (function () {\r\n function Timing(logger, name) {\r\n var _self = this;\r\n var _events = {};\r\n _self.start = function (name) {\r\n if (typeof _events[name] !== \"undefined\") {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 62 /* _eInternalMessageId.StartCalledMoreThanOnce */, \"start was called more than once for this event without calling stop.\", { name: name, key: name }, true);\r\n }\r\n _events[name] = +new Date;\r\n };\r\n _self.stop = function (name, url, properties, measurements) {\r\n var start = _events[name];\r\n if (isNaN(start)) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 63 /* _eInternalMessageId.StopCalledWithoutStart */, \"stop was called without a corresponding start.\", { name: name, key: name }, true);\r\n }\r\n else {\r\n var end = +new Date;\r\n var duration = dateTimeUtilsDuration(start, end);\r\n _self.action(name, url, duration, properties, measurements);\r\n }\r\n delete _events[name];\r\n _events[name] = undefined;\r\n };\r\n }\r\n return Timing;\r\n}());\r\nexport { Timing };\r\n//# sourceMappingURL=Timing.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n/**\r\n* ApplicationInsights.ts\r\n* @copyright Microsoft 2018\r\n*/\r\nimport { __assignFn as __assign, __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { AnalyticsPluginIdentifier, Event as EventTelemetry, Exception, Metric, PageView, PageViewPerformance, PropertiesPluginIdentifier, RemoteDependencyData, Trace, createDistributedTraceContextFromTrace, createDomEvent, createTelemetryItem, dataSanitizeString, isCrossOriginError, strNotSpecified, stringToBoolOrDefault, utlDisableStorage, utlEnableStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, InstrumentEvent, arrForEach, createProcessTelemetryContext, createUniqueNamespace, dumpObj, eventOff, eventOn, generateW3CId, getDocument, getExceptionName, getHistory, getLocation, getWindow, hasHistory, hasWindow, isError, isFunction, isNullOrUndefined, isString, isUndefined, mergeEvtNamespace, objDefineAccessors, objForEachKey, safeGetCookieMgr, strUndefined, throwError } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_ADD_TELEMETRY_INITIA15, _DYN_AUTO_TRACK_PAGE_VISI1, _DYN_COLUMN_NUMBER, _DYN_CORE, _DYN_DATA_TYPE, _DYN_DIAG_LOG, _DYN_DISABLE_EXCEPTION_TR0, _DYN_DISABLE_FLUSH_ON_BEF7, _DYN_ENABLE_AUTO_ROUTE_TR6, _DYN_ENABLE_UNHANDLED_PRO3, _DYN_ENVELOPE_TYPE, _DYN_ERROR, _DYN_ERROR_SRC, _DYN_EXCEPTION, _DYN_HREF, _DYN_IS_BROWSER_LINK_TRAC5, _DYN_IS_STORAGE_USE_DISAB4, _DYN_LENGTH, _DYN_LINE_NUMBER, _DYN_MESSAGE, _DYN_NAME_PREFIX, _DYN_OVERRIDE_PAGE_VIEW_D2, _DYN_POPULATE_PAGE_VIEW_P12, _DYN_SAMPLING_PERCENTAGE, _DYN_SEND_EXCEPTION_INTER13, _DYN_SEND_PAGE_VIEW_INTER10, _DYN_SEND_PAGE_VIEW_PERFO11, _DYN_TO_STRING, _DYN_TRACK, _DYN_TRACK_PAGE_VIEW, _DYN_TRACK_PREVIOUS_PAGE_9, _DYN__CREATE_AUTO_EXCEPTI14, _DYN__ONERROR } from \"../__DynamicConstants\";\r\nimport { PageViewManager } from \"./Telemetry/PageViewManager\";\r\nimport { PageViewPerformanceManager } from \"./Telemetry/PageViewPerformanceManager\";\r\nimport { PageVisitTimeManager } from \"./Telemetry/PageVisitTimeManager\";\r\nimport { Timing } from \"./Timing\";\r\nvar strEvent = \"event\";\r\nfunction _dispatchEvent(target, evnt) {\r\n if (target && target.dispatchEvent && evnt) {\r\n target.dispatchEvent(evnt);\r\n }\r\n}\r\nfunction _getReason(error) {\r\n if (error && error.reason) {\r\n var reason = error.reason;\r\n if (!isString(reason) && isFunction(reason[_DYN_TO_STRING /* @min:%2etoString */])) {\r\n return reason[_DYN_TO_STRING /* @min:%2etoString */]();\r\n }\r\n return dumpObj(reason);\r\n }\r\n // Pass the original object down which will eventually get evaluated for any message or description\r\n return error || \"\";\r\n}\r\nvar MinMilliSeconds = 60000;\r\nfunction _configMilliseconds(value, defValue) {\r\n value = value || defValue;\r\n if (value < MinMilliSeconds) {\r\n value = MinMilliSeconds;\r\n }\r\n return value;\r\n}\r\nfunction _getDefaultConfig(config) {\r\n if (!config) {\r\n config = {};\r\n }\r\n // set default values\r\n config.sessionRenewalMs = _configMilliseconds(config.sessionRenewalMs, 30 * 60 * 1000);\r\n config.sessionExpirationMs = _configMilliseconds(config.sessionExpirationMs, 24 * 60 * 60 * 1000);\r\n config[_DYN_DISABLE_EXCEPTION_TR0 /* @min:%2edisableExceptionTracking */] = stringToBoolOrDefault(config[_DYN_DISABLE_EXCEPTION_TR0 /* @min:%2edisableExceptionTracking */]);\r\n config[_DYN_AUTO_TRACK_PAGE_VISI1 /* @min:%2eautoTrackPageVisitTime */] = stringToBoolOrDefault(config[_DYN_AUTO_TRACK_PAGE_VISI1 /* @min:%2eautoTrackPageVisitTime */]);\r\n config[_DYN_OVERRIDE_PAGE_VIEW_D2 /* @min:%2eoverridePageViewDuration */] = stringToBoolOrDefault(config[_DYN_OVERRIDE_PAGE_VIEW_D2 /* @min:%2eoverridePageViewDuration */]);\r\n config[_DYN_ENABLE_UNHANDLED_PRO3 /* @min:%2eenableUnhandledPromiseRejectionTracking */] = stringToBoolOrDefault(config[_DYN_ENABLE_UNHANDLED_PRO3 /* @min:%2eenableUnhandledPromiseRejectionTracking */]);\r\n if (isNaN(config[_DYN_SAMPLING_PERCENTAGE /* @min:%2esamplingPercentage */]) || config[_DYN_SAMPLING_PERCENTAGE /* @min:%2esamplingPercentage */] <= 0 || config[_DYN_SAMPLING_PERCENTAGE /* @min:%2esamplingPercentage */] >= 100) {\r\n config[_DYN_SAMPLING_PERCENTAGE /* @min:%2esamplingPercentage */] = 100;\r\n }\r\n config[_DYN_IS_STORAGE_USE_DISAB4 /* @min:%2eisStorageUseDisabled */] = stringToBoolOrDefault(config[_DYN_IS_STORAGE_USE_DISAB4 /* @min:%2eisStorageUseDisabled */]);\r\n config[_DYN_IS_BROWSER_LINK_TRAC5 /* @min:%2eisBrowserLinkTrackingEnabled */] = stringToBoolOrDefault(config[_DYN_IS_BROWSER_LINK_TRAC5 /* @min:%2eisBrowserLinkTrackingEnabled */]);\r\n config[_DYN_ENABLE_AUTO_ROUTE_TR6 /* @min:%2eenableAutoRouteTracking */] = stringToBoolOrDefault(config[_DYN_ENABLE_AUTO_ROUTE_TR6 /* @min:%2eenableAutoRouteTracking */]);\r\n config[_DYN_NAME_PREFIX /* @min:%2enamePrefix */] = config[_DYN_NAME_PREFIX /* @min:%2enamePrefix */] || \"\";\r\n config.enableDebug = stringToBoolOrDefault(config.enableDebug);\r\n config[_DYN_DISABLE_FLUSH_ON_BEF7 /* @min:%2edisableFlushOnBeforeUnload */] = stringToBoolOrDefault(config[_DYN_DISABLE_FLUSH_ON_BEF7 /* @min:%2edisableFlushOnBeforeUnload */]);\r\n config.disableFlushOnUnload = stringToBoolOrDefault(config.disableFlushOnUnload, config[_DYN_DISABLE_FLUSH_ON_BEF7 /* @min:%2edisableFlushOnBeforeUnload */]);\r\n return config;\r\n}\r\nfunction _updateStorageUsage(extConfig) {\r\n // Not resetting the storage usage as someone may have manually called utlDisableStorage, so this will only\r\n // reset based if the configuration option is provided\r\n if (!isUndefined(extConfig[_DYN_IS_STORAGE_USE_DISAB4 /* @min:%2eisStorageUseDisabled */])) {\r\n if (extConfig[_DYN_IS_STORAGE_USE_DISAB4 /* @min:%2eisStorageUseDisabled */]) {\r\n utlDisableStorage();\r\n }\r\n else {\r\n utlEnableStorage();\r\n }\r\n }\r\n}\r\nvar AnalyticsPlugin = /** @class */ (function (_super) {\r\n __extends(AnalyticsPlugin, _super);\r\n function AnalyticsPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = AnalyticsPluginIdentifier; // do not change name or priority\r\n _this.priority = 180; // take from reserved priority range 100- 200\r\n _this.autoRoutePVDelay = 500; // ms; Time to wait after a route change before triggering a pageview to allow DOM changes to take place\r\n var _eventTracking;\r\n var _pageTracking;\r\n var _pageViewManager;\r\n var _pageViewPerformanceManager;\r\n var _pageVisitTimeManager;\r\n var _preInitTelemetryInitializers;\r\n var _isBrowserLinkTrackingEnabled;\r\n var _browserLinkInitializerAdded;\r\n var _enableAutoRouteTracking;\r\n var _historyListenerAdded;\r\n var _disableExceptionTracking;\r\n var _autoExceptionInstrumented;\r\n var _enableUnhandledPromiseRejectionTracking;\r\n var _autoUnhandledPromiseInstrumented;\r\n // Counts number of trackAjax invocations.\r\n // By default we only monitor X ajax call per view to avoid too much load.\r\n // Default value is set in config.\r\n // This counter keeps increasing even after the limit is reached.\r\n var _trackAjaxAttempts = 0;\r\n // array with max length of 2 that store current url and previous url for SPA page route change trackPageview use.\r\n var _prevUri; // Assigned in the constructor\r\n var _currUri;\r\n var _evtNamespace;\r\n dynamicProto(AnalyticsPlugin, _this, function (_self, _base) {\r\n var _addHook = _base._addHook;\r\n _initDefaults();\r\n _self.getCookieMgr = function () {\r\n return safeGetCookieMgr(_self[_DYN_CORE /* @min:%2ecore */]);\r\n };\r\n _self.processTelemetry = function (env, itemCtx) {\r\n _self.processNext(env, itemCtx);\r\n };\r\n _self.trackEvent = function (event, customProperties) {\r\n try {\r\n var telemetryItem = createTelemetryItem(event, EventTelemetry[_DYN_DATA_TYPE /* @min:%2edataType */], EventTelemetry[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), customProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n }\r\n catch (e) {\r\n _throwInternal(2 /* eLoggingSeverity.WARNING */, 39 /* _eInternalMessageId.TrackTraceFailed */, \"trackTrace failed, trace will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\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 */\r\n _self.startTrackEvent = function (name) {\r\n try {\r\n _eventTracking.start(name);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 29 /* _eInternalMessageId.StartTrackEventFailed */, \"startTrackEvent failed, event will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\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 */\r\n _self.stopTrackEvent = function (name, properties, measurements) {\r\n try {\r\n _eventTracking.stop(name, undefined, properties, measurements);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 30 /* _eInternalMessageId.StopTrackEventFailed */, \"stopTrackEvent failed, event will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @description Log a diagnostic message\r\n * @param {ITraceTelemetry} trace\r\n * @param ICustomProperties.\r\n * @memberof ApplicationInsights\r\n */\r\n _self.trackTrace = function (trace, customProperties) {\r\n try {\r\n var telemetryItem = createTelemetryItem(trace, Trace[_DYN_DATA_TYPE /* @min:%2edataType */], Trace[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), customProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n }\r\n catch (e) {\r\n _throwInternal(2 /* eLoggingSeverity.WARNING */, 39 /* _eInternalMessageId.TrackTraceFailed */, \"trackTrace failed, trace will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\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 */\r\n _self.trackMetric = function (metric, customProperties) {\r\n try {\r\n var telemetryItem = createTelemetryItem(metric, Metric[_DYN_DATA_TYPE /* @min:%2edataType */], Metric[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), customProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 36 /* _eInternalMessageId.TrackMetricFailed */, \"trackMetric failed, metric will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\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 */\r\n _self[_DYN_TRACK_PAGE_VIEW /* @min:%2etrackPageView */] = function (pageView, customProperties) {\r\n try {\r\n var inPv = pageView || {};\r\n _pageViewManager[_DYN_TRACK_PAGE_VIEW /* @min:%2etrackPageView */](inPv, __assign(__assign(__assign({}, inPv.properties), inPv.measurements), customProperties));\r\n if (_self.config[_DYN_AUTO_TRACK_PAGE_VISI1 /* @min:%2eautoTrackPageVisitTime */]) {\r\n _pageVisitTimeManager[_DYN_TRACK_PREVIOUS_PAGE_9 /* @min:%2etrackPreviousPageVisit */](inPv.name, inPv.uri);\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 37 /* _eInternalMessageId.TrackPVFailed */, \"trackPageView failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\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 */\r\n _self[_DYN_SEND_PAGE_VIEW_INTER10 /* @min:%2esendPageViewInternal */] = function (pageView, properties, systemProperties) {\r\n var doc = getDocument();\r\n if (doc) {\r\n pageView.refUri = pageView.refUri === undefined ? doc.referrer : pageView.refUri;\r\n }\r\n var telemetryItem = createTelemetryItem(pageView, PageView[_DYN_DATA_TYPE /* @min:%2edataType */], PageView[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), properties, systemProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n // reset ajaxes counter\r\n _trackAjaxAttempts = 0;\r\n };\r\n /**\r\n * @ignore INTERNAL ONLY\r\n * @param pageViewPerformance\r\n * @param properties\r\n */\r\n _self[_DYN_SEND_PAGE_VIEW_PERFO11 /* @min:%2esendPageViewPerformanceInternal */] = function (pageViewPerformance, properties, systemProperties) {\r\n var telemetryItem = createTelemetryItem(pageViewPerformance, PageViewPerformance[_DYN_DATA_TYPE /* @min:%2edataType */], PageViewPerformance[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), properties, systemProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n };\r\n /**\r\n * Send browser performance metrics.\r\n * @param pageViewPerformance\r\n * @param customProperties\r\n */\r\n _self.trackPageViewPerformance = function (pageViewPerformance, customProperties) {\r\n var inPvp = pageViewPerformance || {};\r\n try {\r\n _pageViewPerformanceManager[_DYN_POPULATE_PAGE_VIEW_P12 /* @min:%2epopulatePageViewPerformanceEvent */](inPvp);\r\n _self[_DYN_SEND_PAGE_VIEW_PERFO11 /* @min:%2esendPageViewPerformanceInternal */](inPvp, customProperties);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 37 /* _eInternalMessageId.TrackPVFailed */, \"trackPageViewPerformance failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\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 */\r\n _self.startTrackPage = function (name) {\r\n try {\r\n if (typeof name !== \"string\") {\r\n var doc = getDocument();\r\n name = doc && doc.title || \"\";\r\n }\r\n _pageTracking.start(name);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 31 /* _eInternalMessageId.StartTrackFailed */, \"startTrackPage failed, page view may not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\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 */\r\n _self.stopTrackPage = function (name, url, properties, measurement) {\r\n try {\r\n if (typeof name !== \"string\") {\r\n var doc = getDocument();\r\n name = doc && doc.title || \"\";\r\n }\r\n if (typeof url !== \"string\") {\r\n var loc = getLocation();\r\n url = loc && loc[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n }\r\n _pageTracking.stop(name, url, properties, measurement);\r\n if (_self.config[_DYN_AUTO_TRACK_PAGE_VISI1 /* @min:%2eautoTrackPageVisitTime */]) {\r\n _pageVisitTimeManager[_DYN_TRACK_PREVIOUS_PAGE_9 /* @min:%2etrackPreviousPageVisit */](name, url);\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 32 /* _eInternalMessageId.StopTrackFailed */, \"stopTrackPage failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @ignore INTERNAL ONLY\r\n * @param exception\r\n * @param properties\r\n * @param systemProperties\r\n */\r\n _self[_DYN_SEND_EXCEPTION_INTER13 /* @min:%2esendExceptionInternal */] = function (exception, customProperties, systemProperties) {\r\n // Adding additional edge cases to handle\r\n // - Not passing anything (null / undefined)\r\n var theError = (exception && (exception[_DYN_EXCEPTION /* @min:%2eexception */] || exception[_DYN_ERROR /* @min:%2eerror */])) ||\r\n // - Handle someone calling trackException based of v1 API where the exception was the Error\r\n isError(exception) && exception ||\r\n // - Handles no error being defined and instead of creating a new Error() instance attempt to map so any stacktrace\r\n // is preserved and does not list ApplicationInsights code as the source\r\n { name: (exception && typeof exception), message: exception || strNotSpecified };\r\n // If no exception object was passed assign to an empty object to avoid internal exceptions\r\n exception = exception || {};\r\n var exceptionPartB = new Exception(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), theError, exception.properties || customProperties, exception.measurements, exception.severityLevel, exception.id).toInterface();\r\n var telemetryItem = createTelemetryItem(exceptionPartB, Exception[_DYN_DATA_TYPE /* @min:%2edataType */], Exception[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), customProperties, systemProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n };\r\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 */\r\n _self.trackException = function (exception, customProperties) {\r\n if (exception && !exception[_DYN_EXCEPTION /* @min:%2eexception */] && exception[_DYN_ERROR /* @min:%2eerror */]) {\r\n exception[_DYN_EXCEPTION /* @min:%2eexception */] = exception[_DYN_ERROR /* @min:%2eerror */];\r\n }\r\n try {\r\n _self[_DYN_SEND_EXCEPTION_INTER13 /* @min:%2esendExceptionInternal */](exception, customProperties);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 35 /* _eInternalMessageId.TrackExceptionFailed */, \"trackException failed, exception will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @description Custom error handler for Application Insights Analytics\r\n * @param {IAutoExceptionTelemetry} exception\r\n * @memberof ApplicationInsights\r\n */\r\n _self[_DYN__ONERROR /* @min:%2e_onerror */] = function (exception) {\r\n var error = exception && exception[_DYN_ERROR /* @min:%2eerror */];\r\n var evt = exception && exception.evt;\r\n try {\r\n if (!evt) {\r\n var _window = getWindow();\r\n if (_window) {\r\n evt = _window[strEvent];\r\n }\r\n }\r\n var url = (exception && exception.url) || (getDocument() || {}).URL;\r\n // If no error source is provided assume the default window.onerror handler\r\n var errorSrc = exception[_DYN_ERROR_SRC /* @min:%2eerrorSrc */] || \"window.onerror@\" + url + \":\" + (exception[_DYN_LINE_NUMBER /* @min:%2elineNumber */] || 0) + \":\" + (exception[_DYN_COLUMN_NUMBER /* @min:%2ecolumnNumber */] || 0);\r\n var properties = {\r\n errorSrc: errorSrc,\r\n url: url,\r\n lineNumber: exception[_DYN_LINE_NUMBER /* @min:%2elineNumber */] || 0,\r\n columnNumber: exception[_DYN_COLUMN_NUMBER /* @min:%2ecolumnNumber */] || 0,\r\n message: exception[_DYN_MESSAGE /* @min:%2emessage */]\r\n };\r\n if (isCrossOriginError(exception.message, exception.url, exception.lineNumber, exception.columnNumber, exception[_DYN_ERROR /* @min:%2eerror */])) {\r\n _sendCORSException(Exception[_DYN__CREATE_AUTO_EXCEPTI14 /* @min:%2eCreateAutoException */](\"Script error: The browser's same-origin policy prevents us from getting the details of this exception. Consider using the 'crossorigin' attribute.\", url, exception[_DYN_LINE_NUMBER /* @min:%2elineNumber */] || 0, exception[_DYN_COLUMN_NUMBER /* @min:%2ecolumnNumber */] || 0, error, evt, null, errorSrc), properties);\r\n }\r\n else {\r\n if (!exception[_DYN_ERROR_SRC /* @min:%2eerrorSrc */]) {\r\n exception[_DYN_ERROR_SRC /* @min:%2eerrorSrc */] = errorSrc;\r\n }\r\n _self.trackException({ exception: exception, severityLevel: 3 /* eSeverityLevel.Error */ }, properties);\r\n }\r\n }\r\n catch (e) {\r\n var errorString = error ? (error.name + \", \" + error[_DYN_MESSAGE /* @min:%2emessage */]) : \"null\";\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 11 /* _eInternalMessageId.ExceptionWhileLoggingError */, \"_onError threw exception while logging error, error will not be collected: \"\r\n + getExceptionName(e), { exception: dumpObj(e), errorString: errorString });\r\n }\r\n };\r\n _self[_DYN_ADD_TELEMETRY_INITIA15 /* @min:%2eaddTelemetryInitializer */] = function (telemetryInitializer) {\r\n if (_self[_DYN_CORE /* @min:%2ecore */]) {\r\n // Just add to the core\r\n return _self[_DYN_CORE /* @min:%2ecore */][_DYN_ADD_TELEMETRY_INITIA15 /* @min:%2eaddTelemetryInitializer */](telemetryInitializer);\r\n }\r\n // Handle \"pre-initialization\" telemetry initializers (for backward compatibility)\r\n if (!_preInitTelemetryInitializers) {\r\n _preInitTelemetryInitializers = [];\r\n }\r\n _preInitTelemetryInitializers.push(telemetryInitializer);\r\n };\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n if (_self.isInitialized()) {\r\n return;\r\n }\r\n if (isNullOrUndefined(core)) {\r\n throwError(\"Error initializing\");\r\n }\r\n _base.initialize(config, core, extensions, pluginChain);\r\n try {\r\n _evtNamespace = mergeEvtNamespace(createUniqueNamespace(_self.identifier), core.evtNamespace && core.evtNamespace());\r\n if (_preInitTelemetryInitializers) {\r\n arrForEach(_preInitTelemetryInitializers, function (initializer) {\r\n core[_DYN_ADD_TELEMETRY_INITIA15 /* @min:%2eaddTelemetryInitializer */](initializer);\r\n });\r\n _preInitTelemetryInitializers = null;\r\n }\r\n var extConfig = _populateDefaults(config);\r\n _updateStorageUsage(extConfig);\r\n _pageViewPerformanceManager = new PageViewPerformanceManager(_self[_DYN_CORE /* @min:%2ecore */]);\r\n _pageViewManager = new PageViewManager(_self, extConfig[_DYN_OVERRIDE_PAGE_VIEW_D2 /* @min:%2eoverridePageViewDuration */], _self[_DYN_CORE /* @min:%2ecore */], _pageViewPerformanceManager);\r\n _pageVisitTimeManager = new PageVisitTimeManager(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), function (pageName, pageUrl, pageVisitTime) { return trackPageVisitTime(pageName, pageUrl, pageVisitTime); });\r\n _updateBrowserLinkTracking(extConfig, config);\r\n _eventTracking = new Timing(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), \"trackEvent\");\r\n _eventTracking.action =\r\n function (name, url, duration, properties, measurements) {\r\n if (!properties) {\r\n properties = {};\r\n }\r\n if (!measurements) {\r\n measurements = {};\r\n }\r\n properties.duration = duration[_DYN_TO_STRING /* @min:%2etoString */]();\r\n _self.trackEvent({ name: name, properties: properties, measurements: measurements });\r\n };\r\n // initialize page view timing\r\n _pageTracking = new Timing(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), \"trackPageView\");\r\n _pageTracking.action = function (name, url, duration, properties, measurements) {\r\n // duration must be a custom property in order for the collector to extract it\r\n if (isNullOrUndefined(properties)) {\r\n properties = {};\r\n }\r\n properties.duration = duration[_DYN_TO_STRING /* @min:%2etoString */]();\r\n var pageViewItem = {\r\n name: name,\r\n uri: url,\r\n properties: properties,\r\n measurements: measurements\r\n };\r\n _self[_DYN_SEND_PAGE_VIEW_INTER10 /* @min:%2esendPageViewInternal */](pageViewItem, properties);\r\n };\r\n if (hasWindow()) {\r\n _updateExceptionTracking(extConfig);\r\n _updateLocationChange(extConfig);\r\n }\r\n }\r\n catch (e) {\r\n // resetting the initialized state because of failure\r\n _self.setInitialized(false);\r\n throw e;\r\n }\r\n };\r\n _self._doTeardown = function (unloadCtx, unloadState) {\r\n _pageViewManager && _pageViewManager.teardown(unloadCtx, unloadState);\r\n // Just register to remove all events associated with this namespace\r\n eventOff(window, null, null, _evtNamespace);\r\n _initDefaults();\r\n };\r\n function _populateDefaults(config) {\r\n var ctx = createProcessTelemetryContext(null, config, _self[_DYN_CORE /* @min:%2ecore */]);\r\n var identifier = _self.identifier;\r\n // load default values if specified\r\n var defaults = _getDefaultConfig(config);\r\n var extConfig = _self.config = ctx.getExtCfg(identifier);\r\n if (defaults !== undefined) {\r\n objForEachKey(defaults, function (field, value) {\r\n // for each unspecified field, set the default value\r\n extConfig[field] = ctx.getConfig(identifier, field, value);\r\n if (extConfig[field] === undefined) {\r\n extConfig = value;\r\n }\r\n });\r\n }\r\n return extConfig;\r\n }\r\n function _updateBrowserLinkTracking(extConfig, config) {\r\n _isBrowserLinkTrackingEnabled = extConfig[_DYN_IS_BROWSER_LINK_TRAC5 /* @min:%2eisBrowserLinkTrackingEnabled */] || config[_DYN_IS_BROWSER_LINK_TRAC5 /* @min:%2eisBrowserLinkTrackingEnabled */];\r\n _addDefaultTelemetryInitializers();\r\n }\r\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 */\r\n function trackPageVisitTime(pageName, pageUrl, pageVisitTime) {\r\n var properties = { PageName: pageName, PageUrl: pageUrl };\r\n _self.trackMetric({\r\n name: \"PageVisitTime\",\r\n average: pageVisitTime,\r\n max: pageVisitTime,\r\n min: pageVisitTime,\r\n sampleCount: 1\r\n }, properties);\r\n }\r\n function _addDefaultTelemetryInitializers() {\r\n if (!_browserLinkInitializerAdded && _isBrowserLinkTrackingEnabled) {\r\n var browserLinkPaths_1 = [\"/browserLinkSignalR/\", \"/__browserLink/\"];\r\n var dropBrowserLinkRequests = function (envelope) {\r\n if (_isBrowserLinkTrackingEnabled && envelope.baseType === RemoteDependencyData[_DYN_DATA_TYPE /* @min:%2edataType */]) {\r\n var remoteData = envelope.baseData;\r\n if (remoteData) {\r\n for (var i = 0; i < browserLinkPaths_1[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n if (remoteData.target && remoteData.target.indexOf(browserLinkPaths_1[i]) >= 0) {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n _self[_DYN_ADD_TELEMETRY_INITIA15 /* @min:%2eaddTelemetryInitializer */](dropBrowserLinkRequests);\r\n _browserLinkInitializerAdded = true;\r\n }\r\n }\r\n function _sendCORSException(exception, properties) {\r\n var telemetryItem = createTelemetryItem(exception, Exception[_DYN_DATA_TYPE /* @min:%2edataType */], Exception[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), properties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n }\r\n function _updateExceptionTracking(extConfig) {\r\n var _window = getWindow();\r\n var locn = getLocation(true);\r\n _disableExceptionTracking = extConfig[_DYN_DISABLE_EXCEPTION_TR0 /* @min:%2edisableExceptionTracking */];\r\n if (!_disableExceptionTracking && !_autoExceptionInstrumented && !extConfig.autoExceptionInstrumented) {\r\n // We want to enable exception auto collection and it has not been done so yet\r\n _addHook(InstrumentEvent(_window, \"onerror\", {\r\n ns: _evtNamespace,\r\n rsp: function (callDetails, message, url, lineNumber, columnNumber, error) {\r\n if (!_disableExceptionTracking && callDetails.rslt !== true) {\r\n _self[_DYN__ONERROR /* @min:%2e_onerror */](Exception[_DYN__CREATE_AUTO_EXCEPTI14 /* @min:%2eCreateAutoException */](message, url, lineNumber, columnNumber, error, callDetails.evt));\r\n }\r\n }\r\n }, false));\r\n _autoExceptionInstrumented = true;\r\n }\r\n _addUnhandledPromiseRejectionTracking(extConfig, _window, locn);\r\n }\r\n function _updateLocationChange(extConfig) {\r\n var win = getWindow();\r\n var locn = getLocation(true);\r\n _enableAutoRouteTracking = extConfig[_DYN_ENABLE_AUTO_ROUTE_TR6 /* @min:%2eenableAutoRouteTracking */] === true;\r\n /**\r\n * Create a custom \"locationchange\" event which is triggered each time the history object is changed\r\n */\r\n if (win && _enableAutoRouteTracking && hasHistory()) {\r\n var _history = getHistory();\r\n if (isFunction(_history.pushState) && isFunction(_history.replaceState) && typeof Event !== strUndefined) {\r\n _addHistoryListener(extConfig, win, _history, locn);\r\n }\r\n }\r\n }\r\n function _getDistributedTraceCtx() {\r\n var distributedTraceCtx = null;\r\n if (_self[_DYN_CORE /* @min:%2ecore */] && _self[_DYN_CORE /* @min:%2ecore */].getTraceCtx) {\r\n distributedTraceCtx = _self[_DYN_CORE /* @min:%2ecore */].getTraceCtx(false);\r\n }\r\n if (!distributedTraceCtx) {\r\n // Fallback when using an older Core and PropertiesPlugin\r\n var properties = _self[_DYN_CORE /* @min:%2ecore */].getPlugin(PropertiesPluginIdentifier);\r\n if (properties) {\r\n var context = properties.plugin.context;\r\n if (context) {\r\n distributedTraceCtx = createDistributedTraceContextFromTrace(context.telemetryTrace);\r\n }\r\n }\r\n }\r\n return distributedTraceCtx;\r\n }\r\n /**\r\n * Create a custom \"locationchange\" event which is triggered each time the history object is changed\r\n */\r\n function _addHistoryListener(extConfig, win, history, locn) {\r\n var namePrefix = extConfig[_DYN_NAME_PREFIX /* @min:%2enamePrefix */] || \"\";\r\n function _popstateHandler() {\r\n if (_enableAutoRouteTracking) {\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"locationchange\"));\r\n }\r\n }\r\n function _locationChangeHandler() {\r\n // We always track the changes (if the handler is installed) to handle the feature being disabled between location changes\r\n if (_currUri) {\r\n _prevUri = _currUri;\r\n _currUri = locn && locn[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n }\r\n else {\r\n _currUri = locn && locn[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n }\r\n if (_enableAutoRouteTracking) {\r\n var distributedTraceCtx = _getDistributedTraceCtx();\r\n if (distributedTraceCtx) {\r\n distributedTraceCtx.setTraceId(generateW3CId());\r\n var traceLocationName = \"_unknown_\";\r\n if (locn && locn.pathname) {\r\n traceLocationName = locn.pathname + (locn.hash || \"\");\r\n }\r\n // This populates the ai.operation.name which has a maximum size of 1024 so we need to sanitize it\r\n distributedTraceCtx.setName(dataSanitizeString(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), traceLocationName));\r\n }\r\n setTimeout((function (uri) {\r\n // todo: override start time so that it is not affected by autoRoutePVDelay\r\n _self[_DYN_TRACK_PAGE_VIEW /* @min:%2etrackPageView */]({ refUri: uri, properties: { duration: 0 } }); // SPA route change loading durations are undefined, so send 0\r\n }).bind(_self, _prevUri), _self.autoRoutePVDelay);\r\n }\r\n }\r\n if (!_historyListenerAdded) {\r\n _addHook(InstrumentEvent(history, \"pushState\", {\r\n ns: _evtNamespace,\r\n rsp: function () {\r\n if (_enableAutoRouteTracking) {\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"pushState\"));\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"locationchange\"));\r\n }\r\n }\r\n }, true));\r\n _addHook(InstrumentEvent(history, \"replaceState\", {\r\n ns: _evtNamespace,\r\n rsp: function () {\r\n if (_enableAutoRouteTracking) {\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"replaceState\"));\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"locationchange\"));\r\n }\r\n }\r\n }, true));\r\n eventOn(win, namePrefix + \"popstate\", _popstateHandler, _evtNamespace);\r\n eventOn(win, namePrefix + \"locationchange\", _locationChangeHandler, _evtNamespace);\r\n _historyListenerAdded = true;\r\n }\r\n }\r\n function _addUnhandledPromiseRejectionTracking(extConfig, _window, _location) {\r\n _enableUnhandledPromiseRejectionTracking = extConfig[_DYN_ENABLE_UNHANDLED_PRO3 /* @min:%2eenableUnhandledPromiseRejectionTracking */] === true;\r\n if (_enableUnhandledPromiseRejectionTracking && !_autoUnhandledPromiseInstrumented) {\r\n // We want to enable exception auto collection and it has not been done so yet\r\n _addHook(InstrumentEvent(_window, \"onunhandledrejection\", {\r\n ns: _evtNamespace,\r\n rsp: function (callDetails, error) {\r\n if (_enableUnhandledPromiseRejectionTracking && callDetails.rslt !== true) { // handled could be typeof function\r\n _self[_DYN__ONERROR /* @min:%2e_onerror */](Exception[_DYN__CREATE_AUTO_EXCEPTI14 /* @min:%2eCreateAutoException */](_getReason(error), _location ? _location[_DYN_HREF /* @min:%2ehref */] : \"\", 0, 0, error, callDetails.evt));\r\n }\r\n }\r\n }, false));\r\n _autoUnhandledPromiseInstrumented = true;\r\n extConfig.autoUnhandledPromiseInstrumented = _autoUnhandledPromiseInstrumented;\r\n }\r\n }\r\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 {eLoggingSeverity} - The severity of the log message\r\n * @param message {_InternalLogMessage} - The log message.\r\n */\r\n function _throwInternal(severity, msgId, msg, properties, isUserAct) {\r\n _self[_DYN_DIAG_LOG /* @min:%2ediagLog */]().throwInternal(severity, msgId, msg, properties, isUserAct);\r\n }\r\n function _initDefaults() {\r\n _eventTracking = null;\r\n _pageTracking = null;\r\n _pageViewManager = null;\r\n _pageViewPerformanceManager = null;\r\n _pageVisitTimeManager = null;\r\n _preInitTelemetryInitializers = null;\r\n _isBrowserLinkTrackingEnabled = false;\r\n _browserLinkInitializerAdded = false;\r\n _enableAutoRouteTracking = false;\r\n _historyListenerAdded = false;\r\n _disableExceptionTracking = false;\r\n _autoExceptionInstrumented = false;\r\n _enableUnhandledPromiseRejectionTracking = false;\r\n _autoUnhandledPromiseInstrumented = false;\r\n // Counts number of trackAjax invocations.\r\n // By default we only monitor X ajax call per view to avoid too much load.\r\n // Default value is set in config.\r\n // This counter keeps increasing even after the limit is reached.\r\n _trackAjaxAttempts = 0;\r\n // array with max length of 2 that store current url and previous url for SPA page route change trackPageview use.\r\n var location = getLocation(true);\r\n _prevUri = location && location[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n _currUri = null;\r\n _evtNamespace = null;\r\n }\r\n // For backward compatibility\r\n objDefineAccessors(_self, \"_pageViewManager\", function () { return _pageViewManager; });\r\n objDefineAccessors(_self, \"_pageViewPerformanceManager\", function () { return _pageViewPerformanceManager; });\r\n objDefineAccessors(_self, \"_pageVisitTimeManager\", function () { return _pageVisitTimeManager; });\r\n objDefineAccessors(_self, \"_evtNamespace\", function () { return \".\" + _evtNamespace; });\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for AnalyticsPlugin.prototype.getCookieMgr.\r\n// Removed Stub for AnalyticsPlugin.prototype.processTelemetry.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackEvent.\r\n// Removed Stub for AnalyticsPlugin.prototype.startTrackEvent.\r\n// Removed Stub for AnalyticsPlugin.prototype.stopTrackEvent.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackTrace.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackMetric.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackPageView.\r\n// Removed Stub for AnalyticsPlugin.prototype.sendPageViewInternal.\r\n// Removed Stub for AnalyticsPlugin.prototype.sendPageViewPerformanceInternal.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackPageViewPerformance.\r\n// Removed Stub for AnalyticsPlugin.prototype.startTrackPage.\r\n// Removed Stub for AnalyticsPlugin.prototype.stopTrackPage.\r\n// Removed Stub for AnalyticsPlugin.prototype.sendExceptionInternal.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackException.\r\n// Removed Stub for AnalyticsPlugin.prototype._onerror.\r\n// Removed Stub for AnalyticsPlugin.prototype.addTelemetryInitializer.\r\n// Removed Stub for AnalyticsPlugin.prototype.initialize.\r\n AnalyticsPlugin.Version = '2.8.14'; // Not currently used anywhere\r\n AnalyticsPlugin.getDefaultConfig = _getDefaultConfig;\r\n return AnalyticsPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport { AnalyticsPlugin };\r\n//# sourceMappingURL=AnalyticsPlugin.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport { createClassFromInterface } from \"@microsoft/applicationinsights-core-js\";\r\nfunction _aiNameFunc(baseName) {\r\n var aiName = \"ai.\" + baseName + \".\";\r\n return function (name) {\r\n return aiName + name;\r\n };\r\n}\r\nvar _aiApplication = _aiNameFunc(\"application\");\r\nvar _aiDevice = _aiNameFunc(\"device\");\r\nvar _aiLocation = _aiNameFunc(\"location\");\r\nvar _aiOperation = _aiNameFunc(\"operation\");\r\nvar _aiSession = _aiNameFunc(\"session\");\r\nvar _aiUser = _aiNameFunc(\"user\");\r\nvar _aiCloud = _aiNameFunc(\"cloud\");\r\nvar _aiInternal = _aiNameFunc(\"internal\");\r\nvar ContextTagKeys = /** @class */ (function (_super) {\r\n __extends(ContextTagKeys, _super);\r\n function ContextTagKeys() {\r\n return _super.call(this) || this;\r\n }\r\n return ContextTagKeys;\r\n}(createClassFromInterface({\r\n applicationVersion: _aiApplication(\"ver\"),\r\n applicationBuild: _aiApplication(\"build\"),\r\n applicationTypeId: _aiApplication(\"typeId\"),\r\n applicationId: _aiApplication(\"applicationId\"),\r\n applicationLayer: _aiApplication(\"layer\"),\r\n deviceId: _aiDevice(\"id\"),\r\n deviceIp: _aiDevice(\"ip\"),\r\n deviceLanguage: _aiDevice(\"language\"),\r\n deviceLocale: _aiDevice(\"locale\"),\r\n deviceModel: _aiDevice(\"model\"),\r\n deviceFriendlyName: _aiDevice(\"friendlyName\"),\r\n deviceNetwork: _aiDevice(\"network\"),\r\n deviceNetworkName: _aiDevice(\"networkName\"),\r\n deviceOEMName: _aiDevice(\"oemName\"),\r\n deviceOS: _aiDevice(\"os\"),\r\n deviceOSVersion: _aiDevice(\"osVersion\"),\r\n deviceRoleInstance: _aiDevice(\"roleInstance\"),\r\n deviceRoleName: _aiDevice(\"roleName\"),\r\n deviceScreenResolution: _aiDevice(\"screenResolution\"),\r\n deviceType: _aiDevice(\"type\"),\r\n deviceMachineName: _aiDevice(\"machineName\"),\r\n deviceVMName: _aiDevice(\"vmName\"),\r\n deviceBrowser: _aiDevice(\"browser\"),\r\n deviceBrowserVersion: _aiDevice(\"browserVersion\"),\r\n locationIp: _aiLocation(\"ip\"),\r\n locationCountry: _aiLocation(\"country\"),\r\n locationProvince: _aiLocation(\"province\"),\r\n locationCity: _aiLocation(\"city\"),\r\n operationId: _aiOperation(\"id\"),\r\n operationName: _aiOperation(\"name\"),\r\n operationParentId: _aiOperation(\"parentId\"),\r\n operationRootId: _aiOperation(\"rootId\"),\r\n operationSyntheticSource: _aiOperation(\"syntheticSource\"),\r\n operationCorrelationVector: _aiOperation(\"correlationVector\"),\r\n sessionId: _aiSession(\"id\"),\r\n sessionIsFirst: _aiSession(\"isFirst\"),\r\n sessionIsNew: _aiSession(\"isNew\"),\r\n userAccountAcquisitionDate: _aiUser(\"accountAcquisitionDate\"),\r\n userAccountId: _aiUser(\"accountId\"),\r\n userAgent: _aiUser(\"userAgent\"),\r\n userId: _aiUser(\"id\"),\r\n userStoreRegion: _aiUser(\"storeRegion\"),\r\n userAuthUserId: _aiUser(\"authUserId\"),\r\n userAnonymousUserAcquisitionDate: _aiUser(\"anonUserAcquisitionDate\"),\r\n userAuthenticatedUserAcquisitionDate: _aiUser(\"authUserAcquisitionDate\"),\r\n cloudName: _aiCloud(\"name\"),\r\n cloudRole: _aiCloud(\"role\"),\r\n cloudRoleVer: _aiCloud(\"roleVer\"),\r\n cloudRoleInstance: _aiCloud(\"roleInstance\"),\r\n cloudEnvironment: _aiCloud(\"environment\"),\r\n cloudLocation: _aiCloud(\"location\"),\r\n cloudDeploymentUnit: _aiCloud(\"deploymentUnit\"),\r\n internalNodeName: _aiInternal(\"nodeName\"),\r\n internalSdkVersion: _aiInternal(\"sdkVersion\"),\r\n internalAgentVersion: _aiInternal(\"agentVersion\"),\r\n internalSnippet: _aiInternal(\"snippet\"),\r\n internalSdkSrc: _aiInternal(\"sdkSrc\")\r\n})));\r\nexport { ContextTagKeys };\r\n//# sourceMappingURL=ContextTagKeys.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { ContextTagKeys } from \"./Contracts/ContextTagKeys\";\r\nexport var Extensions = {\r\n UserExt: \"user\",\r\n DeviceExt: \"device\",\r\n TraceExt: \"trace\",\r\n WebExt: \"web\",\r\n AppExt: \"app\",\r\n OSExt: \"os\",\r\n SessionExt: \"ses\",\r\n SDKExt: \"sdk\"\r\n};\r\nexport var CtxTagKeys = new ContextTagKeys();\r\n//# sourceMappingURL=PartAExtensions.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strNotSpecified } from \"../../Constants\";\r\nimport { _DYN_NAME } from \"../../__DynamicConstants\";\r\nimport { dataSanitizeString } from \"./DataSanitizer\";\r\nvar Envelope = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of telemetry data.\r\n */\r\n function Envelope(logger, data, name) {\r\n var _this = this;\r\n var _self = this;\r\n _self.ver = 1;\r\n _self.sampleRate = 100.0;\r\n _self.tags = {};\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n _self.data = data;\r\n _self.time = toISOString(new Date());\r\n _self.aiDataContract = {\r\n time: 1 /* FieldType.Required */,\r\n iKey: 1 /* FieldType.Required */,\r\n name: 1 /* FieldType.Required */,\r\n sampleRate: function () {\r\n return (_this.sampleRate === 100) ? 4 /* FieldType.Hidden */ : 1 /* FieldType.Required */;\r\n },\r\n tags: 1 /* FieldType.Required */,\r\n data: 1 /* FieldType.Required */\r\n };\r\n }\r\n return Envelope;\r\n}());\r\nexport { Envelope };\r\n//# sourceMappingURL=Envelope.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Data = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of telemetry data.\r\n */\r\n function Data(baseType, data) {\r\n /**\r\n * The data contract for serializing this object.\r\n */\r\n this.aiDataContract = {\r\n baseType: 1 /* FieldType.Required */,\r\n baseData: 1 /* FieldType.Required */\r\n };\r\n this.baseType = baseType;\r\n this.baseData = data;\r\n }\r\n return Data;\r\n}());\r\nexport { Data };\r\n//# sourceMappingURL=Data.js.map","/*\n * Application Insights JavaScript SDK - Channel, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Generally you should only put values that are used more than 2 times and then only if not already exposed as a constant (such as SdkCoreNames)\r\n// as when using \"short\" named values from here they will be will be minified smaller than the SdkCoreNames[eSdkCoreNames.xxxx] value.\r\nexport var STR_DURATION = \"duration\";\r\n//# sourceMappingURL=InternalConstants.js.map","/*\n * Application Insights JavaScript SDK - Channel, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_TAGS = \"tags\"; // Count: 17\r\nexport var _DYN_DEVICE_TYPE = \"deviceType\"; // Count: 3\r\nexport var _DYN_DATA = \"data\"; // Count: 13\r\nexport var _DYN_NAME = \"name\"; // Count: 8\r\nexport var _DYN_TRACE_ID = \"traceID\"; // Count: 5\r\nexport var _DYN_LENGTH = \"length\"; // Count: 36\r\nexport var _DYN_STRINGIFY = \"stringify\"; // Count: 5\r\nexport var _DYN_MEASUREMENTS = \"measurements\"; // Count: 7\r\nexport var _DYN_DATA_TYPE = \"dataType\"; // Count: 10\r\nexport var _DYN_ENVELOPE_TYPE = \"envelopeType\"; // Count: 7\r\nexport var _DYN_TO_STRING = \"toString\"; // Count: 7\r\nexport var _DYN_ON_LINE = \"onLine\"; // Count: 4\r\nexport var _DYN_IS_ONLINE = \"isOnline\"; // Count: 3\r\nexport var _DYN_ENQUEUE = \"enqueue\"; // Count: 5\r\nexport var _DYN_COUNT = \"count\"; // Count: 6\r\nexport var _DYN_PUSH = \"push\"; // Count: 6\r\nexport var _DYN_EMIT_LINE_DELIMITED_0 = \"emitLineDelimitedJson\"; // Count: 3\r\nexport var _DYN_CLEAR = \"clear\"; // Count: 6\r\nexport var _DYN_BATCH_PAYLOADS = \"batchPayloads\"; // Count: 5\r\nexport var _DYN_MARK_AS_SENT = \"markAsSent\"; // Count: 6\r\nexport var _DYN_CLEAR_SENT = \"clearSent\"; // Count: 5\r\nexport var _DYN_BUFFER_OVERRIDE = \"bufferOverride\"; // Count: 3\r\nexport var _DYN__BUFFER__KEY = \"BUFFER_KEY\"; // Count: 5\r\nexport var _DYN__SENT__BUFFER__KEY = \"SENT_BUFFER_KEY\"; // Count: 7\r\nexport var _DYN__MAX__BUFFER__SIZE = \"MAX_BUFFER_SIZE\"; // Count: 5\r\nexport var _DYN_NAME_PREFIX = \"namePrefix\"; // Count: 6\r\nexport var _DYN_MAX_BATCH_SIZE_IN_BY1 = \"maxBatchSizeInBytes\"; // Count: 3\r\nexport var _DYN_TRIGGER_SEND = \"triggerSend\"; // Count: 6\r\nexport var _DYN_DIAG_LOG = \"diagLog\"; // Count: 15\r\nexport var _DYN_ONUNLOAD_DISABLE_BEA2 = \"onunloadDisableBeacon\"; // Count: 2\r\nexport var _DYN_IS_BEACON_API_DISABL3 = \"isBeaconApiDisabled\"; // Count: 3\r\nexport var _DYN__SENDER = \"_sender\"; // Count: 5\r\nexport var _DYN__SENDER_CONFIG = \"_senderConfig\"; // Count: 4\r\nexport var _DYN_ENABLE_SESSION_STORA4 = \"enableSessionStorageBuffer\"; // Count: 2\r\nexport var _DYN__BUFFER = \"_buffer\"; // Count: 9\r\nexport var _DYN_SAMPLING_PERCENTAGE = \"samplingPercentage\"; // Count: 2\r\nexport var _DYN_INSTRUMENTATION_KEY = \"instrumentationKey\"; // Count: 4\r\nexport var _DYN_ENDPOINT_URL = \"endpointUrl\"; // Count: 8\r\nexport var _DYN_CUSTOM_HEADERS = \"customHeaders\"; // Count: 4\r\nexport var _DYN_DISABLE_XHR = \"disableXhr\"; // Count: 5\r\nexport var _DYN_ONUNLOAD_DISABLE_FET5 = \"onunloadDisableFetch\"; // Count: 2\r\nexport var _DYN_DISABLE_TELEMETRY = \"disableTelemetry\"; // Count: 2\r\nexport var _DYN_BASE_TYPE = \"baseType\"; // Count: 4\r\nexport var _DYN_SAMPLE_RATE = \"sampleRate\"; // Count: 4\r\nexport var _DYN_CONVERT_UNDEFINED = \"convertUndefined\"; // Count: 2\r\nexport var _DYN__XHR_READY_STATE_CHA6 = \"_xhrReadyStateChange\"; // Count: 2\r\nexport var _DYN__ON_ERROR = \"_onError\"; // Count: 11\r\nexport var _DYN__ON_PARTIAL_SUCCESS = \"_onPartialSuccess\"; // Count: 3\r\nexport var _DYN__ON_SUCCESS = \"_onSuccess\"; // Count: 6\r\nexport var _DYN_ITEMS_ACCEPTED = \"itemsAccepted\"; // Count: 5\r\nexport var _DYN_ITEMS_RECEIVED = \"itemsReceived\"; // Count: 6\r\nexport var _DYN_IS_RETRY_DISABLED = \"isRetryDisabled\"; // Count: 5\r\nexport var _DYN_SET_REQUEST_HEADER = \"setRequestHeader\"; // Count: 3\r\nexport var _DYN_MAX_BATCH_INTERVAL = \"maxBatchInterval\"; // Count: 2\r\nexport var _DYN_EVENTS_SEND_REQUEST = \"eventsSendRequest\"; // Count: 2\r\nexport var _DYN_DISABLE_INSTRUMENTAT7 = \"disableInstrumentationKeyValidation\"; // Count: 2\r\nexport var _DYN_GET_SAMPLING_SCORE = \"getSamplingScore\"; // Count: 2\r\nexport var _DYN_GET_HASH_CODE_SCORE = \"getHashCodeScore\"; // Count: 4\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Channel, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { __assignFn as __assign } from \"@microsoft/applicationinsights-shims\";\r\nimport { CtxTagKeys, Data, Envelope, Event, Exception, HttpMethod, Metric, PageView, PageViewPerformance, RemoteDependencyData, SampleRate, Trace, dataSanitizeString } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, _warnToConsole, getJSON, hasJSON, isNullOrUndefined, isNumber, isString, isTruthy, objForEachKey, optimizeObject, setValue, toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { STR_DURATION } from \"./InternalConstants\";\r\nimport { _DYN_DATA, _DYN_DATA_TYPE, _DYN_DEVICE_TYPE, _DYN_ENVELOPE_TYPE, _DYN_LENGTH, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_STRINGIFY, _DYN_TAGS, _DYN_TO_STRING, _DYN_TRACE_ID } from \"./__DynamicConstants\";\r\n// these two constants are used to filter out properties not needed when trying to extract custom properties and measurements from the incoming payload\r\nvar strBaseType = \"baseType\";\r\nvar strBaseData = \"baseData\";\r\nvar strProperties = \"properties\";\r\nvar strTrue = \"true\";\r\nfunction _setValueIf(target, field, value) {\r\n return setValue(target, field, value, isTruthy);\r\n}\r\n/*\r\n * Maps Part A data from CS 4.0\r\n */\r\nfunction _extractPartAExtensions(logger, item, env) {\r\n // todo: switch to keys from common in this method\r\n var envTags = env[_DYN_TAGS /* @min:%2etags */] = env[_DYN_TAGS /* @min:%2etags */] || {};\r\n var itmExt = item.ext = item.ext || {};\r\n var itmTags = item[_DYN_TAGS /* @min:%2etags */] = item[_DYN_TAGS /* @min:%2etags */] || [];\r\n var extUser = itmExt.user;\r\n if (extUser) {\r\n _setValueIf(envTags, CtxTagKeys.userAuthUserId, extUser.authId);\r\n _setValueIf(envTags, CtxTagKeys.userId, extUser.id || extUser.localId);\r\n }\r\n var extApp = itmExt.app;\r\n if (extApp) {\r\n _setValueIf(envTags, CtxTagKeys.sessionId, extApp.sesId);\r\n }\r\n var extDevice = itmExt.device;\r\n if (extDevice) {\r\n _setValueIf(envTags, CtxTagKeys.deviceId, extDevice.id || extDevice.localId);\r\n _setValueIf(envTags, CtxTagKeys[_DYN_DEVICE_TYPE /* @min:%2edeviceType */], extDevice.deviceClass);\r\n _setValueIf(envTags, CtxTagKeys.deviceIp, extDevice.ip);\r\n _setValueIf(envTags, CtxTagKeys.deviceModel, extDevice.model);\r\n _setValueIf(envTags, CtxTagKeys[_DYN_DEVICE_TYPE /* @min:%2edeviceType */], extDevice[_DYN_DEVICE_TYPE /* @min:%2edeviceType */]);\r\n }\r\n var web = item.ext.web;\r\n if (web) {\r\n _setValueIf(envTags, CtxTagKeys.deviceLanguage, web.browserLang);\r\n _setValueIf(envTags, CtxTagKeys.deviceBrowserVersion, web.browserVer);\r\n _setValueIf(envTags, CtxTagKeys.deviceBrowser, web.browser);\r\n var envData = env[_DYN_DATA /* @min:%2edata */] = env[_DYN_DATA /* @min:%2edata */] || {};\r\n var envBaseData = envData[strBaseData] = envData[strBaseData] || {};\r\n var envProps = envBaseData[strProperties] = envBaseData[strProperties] || {};\r\n _setValueIf(envProps, \"domain\", web.domain);\r\n _setValueIf(envProps, \"isManual\", web.isManual ? strTrue : null);\r\n _setValueIf(envProps, \"screenRes\", web.screenRes);\r\n _setValueIf(envProps, \"userConsent\", web.userConsent ? strTrue : null);\r\n }\r\n var extOs = itmExt.os;\r\n if (extOs) {\r\n _setValueIf(envTags, CtxTagKeys.deviceOS, extOs[_DYN_NAME /* @min:%2ename */]);\r\n }\r\n // No support for mapping Trace.traceState to 2.0 as it is currently empty\r\n var extTrace = itmExt.trace;\r\n if (extTrace) {\r\n _setValueIf(envTags, CtxTagKeys.operationParentId, extTrace.parentID);\r\n _setValueIf(envTags, CtxTagKeys.operationName, dataSanitizeString(logger, extTrace[_DYN_NAME /* @min:%2ename */]));\r\n _setValueIf(envTags, CtxTagKeys.operationId, extTrace[_DYN_TRACE_ID /* @min:%2etraceID */]);\r\n }\r\n // Sample 4.0 schema\r\n // {\r\n // \"time\" : \"2018-09-05T22:51:22.4936Z\",\r\n // \"name\" : \"MetricWithNamespace\",\r\n // \"iKey\" : \"ABC-5a4cbd20-e601-4ef5-a3c6-5d6577e4398e\",\r\n // \"ext\": { \"cloud\": {\r\n // \"role\": \"WATSON3\",\r\n // \"roleInstance\": \"CO4AEAP00000260\"\r\n // },\r\n // \"device\": {}, \"correlation\": {} },\r\n // \"tags\": [\r\n // { \"amazon.region\" : \"east2\" },\r\n // { \"os.expid\" : \"wp:02df239\" }\r\n // ]\r\n // }\r\n var tgs = {};\r\n // deals with tags.push({object})\r\n for (var i = itmTags[_DYN_LENGTH /* @min:%2elength */] - 1; i >= 0; i--) {\r\n var tg = itmTags[i];\r\n objForEachKey(tg, function (key, value) {\r\n tgs[key] = value;\r\n });\r\n itmTags.splice(i, 1);\r\n }\r\n // deals with tags[key]=value (and handles hasOwnProperty)\r\n objForEachKey(itmTags, function (tg, value) {\r\n tgs[tg] = value;\r\n });\r\n var theTags = __assign(__assign({}, envTags), tgs);\r\n if (!theTags[CtxTagKeys.internalSdkVersion]) {\r\n // Append a version in case it is not already set\r\n theTags[CtxTagKeys.internalSdkVersion] = dataSanitizeString(logger, \"javascript:\".concat(EnvelopeCreator.Version), 64);\r\n }\r\n env[_DYN_TAGS /* @min:%2etags */] = optimizeObject(theTags);\r\n}\r\nfunction _extractPropsAndMeasurements(data, properties, measurements) {\r\n if (!isNullOrUndefined(data)) {\r\n objForEachKey(data, function (key, value) {\r\n if (isNumber(value)) {\r\n measurements[key] = value;\r\n }\r\n else if (isString(value)) {\r\n properties[key] = value;\r\n }\r\n else if (hasJSON()) {\r\n properties[key] = getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](value);\r\n }\r\n });\r\n }\r\n}\r\nfunction _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue) {\r\n if (!isNullOrUndefined(properties)) {\r\n objForEachKey(properties, function (key, value) {\r\n properties[key] = value || customUndefinedValue;\r\n });\r\n }\r\n}\r\n// TODO: Do we want this to take logger as arg or use this._logger as nonstatic?\r\nfunction _createEnvelope(logger, envelopeType, telemetryItem, data) {\r\n var envelope = new Envelope(logger, data, envelopeType);\r\n _setValueIf(envelope, \"sampleRate\", telemetryItem[SampleRate]);\r\n if ((telemetryItem[strBaseData] || {}).startTime) {\r\n envelope.time = toISOString(telemetryItem[strBaseData].startTime);\r\n }\r\n envelope.iKey = telemetryItem.iKey;\r\n var iKeyNoDashes = telemetryItem.iKey.replace(/-/g, \"\");\r\n envelope[_DYN_NAME /* @min:%2ename */] = envelope[_DYN_NAME /* @min:%2ename */].replace(\"{0}\", iKeyNoDashes);\r\n // extract all extensions from ctx\r\n _extractPartAExtensions(logger, telemetryItem, envelope);\r\n // loop through the envelope tags (extension of Part A) and pick out the ones that should go in outgoing envelope tags\r\n telemetryItem[_DYN_TAGS /* @min:%2etags */] = telemetryItem[_DYN_TAGS /* @min:%2etags */] || [];\r\n return optimizeObject(envelope);\r\n}\r\nfunction EnvelopeCreatorInit(logger, telemetryItem) {\r\n if (isNullOrUndefined(telemetryItem[strBaseData])) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 46 /* _eInternalMessageId.TelemetryEnvelopeInvalid */, \"telemetryItem.baseData cannot be null.\");\r\n }\r\n}\r\nexport var EnvelopeCreator = {\r\n Version: '2.8.14'\r\n};\r\nexport function DependencyEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var customMeasurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n var customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], customProperties, customMeasurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n }\r\n var bd = telemetryItem[strBaseData];\r\n if (isNullOrUndefined(bd)) {\r\n _warnToConsole(logger, \"Invalid input for dependency data\");\r\n return null;\r\n }\r\n var method = bd[strProperties] && bd[strProperties][HttpMethod] ? bd[strProperties][HttpMethod] : \"GET\";\r\n var remoteDepData = new RemoteDependencyData(logger, bd.id, bd.target, bd[_DYN_NAME /* @min:%2ename */], bd[STR_DURATION /* @min:%2eduration */], bd.success, bd.responseCode, method, bd.type, bd.correlationContext, customProperties, customMeasurements);\r\n var data = new Data(RemoteDependencyData[_DYN_DATA_TYPE /* @min:%2edataType */], remoteDepData);\r\n return _createEnvelope(logger, RemoteDependencyData[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function EventEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var customProperties = {};\r\n var customMeasurements = {};\r\n if (telemetryItem[strBaseType] !== Event[_DYN_DATA_TYPE /* @min:%2edataType */]) {\r\n customProperties[\"baseTypeSource\"] = telemetryItem[strBaseType]; // save the passed in base type as a property\r\n }\r\n if (telemetryItem[strBaseType] === Event[_DYN_DATA_TYPE /* @min:%2edataType */]) { // take collection\r\n customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n customMeasurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n }\r\n else { // if its not a known type, convert to custom event\r\n if (telemetryItem[strBaseData]) {\r\n _extractPropsAndMeasurements(telemetryItem[strBaseData], customProperties, customMeasurements);\r\n }\r\n }\r\n // Extract root level properties from part C telemetryItem.data\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], customProperties, customMeasurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n }\r\n var eventName = telemetryItem[strBaseData][_DYN_NAME /* @min:%2ename */];\r\n var eventData = new Event(logger, eventName, customProperties, customMeasurements);\r\n var data = new Data(Event[_DYN_DATA_TYPE /* @min:%2edataType */], eventData);\r\n return _createEnvelope(logger, Event[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function ExceptionEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n // Extract root level properties from part C telemetryItem.data\r\n var customMeasurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n var customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], customProperties, customMeasurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n }\r\n var bd = telemetryItem[strBaseData];\r\n var exData = Exception.CreateFromInterface(logger, bd, customProperties, customMeasurements);\r\n var data = new Data(Exception[_DYN_DATA_TYPE /* @min:%2edataType */], exData);\r\n return _createEnvelope(logger, Exception[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function MetricEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var baseData = telemetryItem[strBaseData];\r\n var props = baseData[strProperties] || {};\r\n var measurements = baseData[_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], props, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(props, customUndefinedValue);\r\n }\r\n var baseMetricData = new Metric(logger, baseData[_DYN_NAME /* @min:%2ename */], baseData.average, baseData.sampleCount, baseData.min, baseData.max, baseData.stdDev, props, measurements);\r\n var data = new Data(Metric[_DYN_DATA_TYPE /* @min:%2edataType */], baseMetricData);\r\n return _createEnvelope(logger, Metric[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function PageViewEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n // Since duration is not part of the domain properties in Common Schema, extract it from part C\r\n var duration;\r\n var baseData = telemetryItem[strBaseData];\r\n if (!isNullOrUndefined(baseData) &&\r\n !isNullOrUndefined(baseData[strProperties]) &&\r\n !isNullOrUndefined(baseData[strProperties][STR_DURATION])) { // from part B properties\r\n duration = baseData[strProperties][STR_DURATION];\r\n delete baseData[strProperties][STR_DURATION];\r\n }\r\n else if (!isNullOrUndefined(telemetryItem[_DYN_DATA /* @min:%2edata */]) &&\r\n !isNullOrUndefined(telemetryItem[_DYN_DATA /* @min:%2edata */][STR_DURATION])) { // from custom properties\r\n duration = telemetryItem[_DYN_DATA /* @min:%2edata */][STR_DURATION];\r\n delete telemetryItem[_DYN_DATA /* @min:%2edata */][STR_DURATION];\r\n }\r\n var bd = telemetryItem[strBaseData];\r\n // 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\r\n var currentContextId;\r\n if (((telemetryItem.ext || {}).trace || {})[_DYN_TRACE_ID /* @min:%2etraceID */]) {\r\n currentContextId = telemetryItem.ext.trace[_DYN_TRACE_ID /* @min:%2etraceID */];\r\n }\r\n var id = bd.id || currentContextId;\r\n var name = bd[_DYN_NAME /* @min:%2ename */];\r\n var url = bd.uri;\r\n var properties = bd[strProperties] || {};\r\n var measurements = bd[_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n // 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\r\n if (!isNullOrUndefined(bd.refUri)) {\r\n properties[\"refUri\"] = bd.refUri;\r\n }\r\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\r\n if (!isNullOrUndefined(bd.pageType)) {\r\n properties[\"pageType\"] = bd.pageType;\r\n }\r\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\r\n if (!isNullOrUndefined(bd.isLoggedIn)) {\r\n properties[\"isLoggedIn\"] = bd.isLoggedIn[_DYN_TO_STRING /* @min:%2etoString */]();\r\n }\r\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\r\n if (!isNullOrUndefined(bd[strProperties])) {\r\n var pageTags = bd[strProperties];\r\n objForEachKey(pageTags, function (key, value) {\r\n properties[key] = value;\r\n });\r\n }\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], properties, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue);\r\n }\r\n var pageViewData = new PageView(logger, name, url, duration, properties, measurements, id);\r\n var data = new Data(PageView[_DYN_DATA_TYPE /* @min:%2edataType */], pageViewData);\r\n return _createEnvelope(logger, PageView[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function PageViewPerformanceEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var bd = telemetryItem[strBaseData];\r\n var name = bd[_DYN_NAME /* @min:%2ename */];\r\n var url = bd.uri || bd.url;\r\n var properties = bd[strProperties] || {};\r\n var measurements = bd[_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], properties, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue);\r\n }\r\n var baseData = new PageViewPerformance(logger, name, url, undefined, properties, measurements, bd);\r\n var data = new Data(PageViewPerformance[_DYN_DATA_TYPE /* @min:%2edataType */], baseData);\r\n return _createEnvelope(logger, PageViewPerformance[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function TraceEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var message = telemetryItem[strBaseData].message;\r\n var severityLevel = telemetryItem[strBaseData].severityLevel;\r\n var props = telemetryItem[strBaseData][strProperties] || {};\r\n var measurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], props, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(props, customUndefinedValue);\r\n }\r\n var baseData = new Trace(logger, message, severityLevel, props, measurements);\r\n var data = new Data(Trace[_DYN_DATA_TYPE /* @min:%2edataType */], baseData);\r\n return _createEnvelope(logger, Trace[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\n//# sourceMappingURL=EnvelopeCreator.js.map","/*\n * Application Insights JavaScript SDK - Channel, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { createUniqueNamespace, eventOff, eventOn, getDocument, getNavigator, getWindow, isNullOrUndefined, isUndefined, mergeEvtNamespace } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_IS_ONLINE, _DYN_ON_LINE } from \"./__DynamicConstants\";\r\nfunction _disableEvents(target, evtNamespace) {\r\n eventOff(target, null, null, evtNamespace);\r\n}\r\n/**\r\n * Create a new OfflineListener instance to monitor browser online / offline events\r\n * @param parentEvtNamespace - The parent event namespace to append to any specific events for this instance\r\n */\r\nexport function createOfflineListener(parentEvtNamespace) {\r\n var _a;\r\n var _document = getDocument();\r\n var _navigator = getNavigator(); // Gets the window.navigator or workerNavigator depending on the global\r\n var _isListening = false;\r\n var _onlineStatus = true;\r\n var _evtNamespace = mergeEvtNamespace(createUniqueNamespace(\"OfflineListener\"), parentEvtNamespace);\r\n try {\r\n if (_enableEvents(getWindow())) {\r\n _isListening = true;\r\n }\r\n if (_document) {\r\n // Also attach to the document.body or document\r\n var target = _document.body || _document;\r\n if (target.ononline) {\r\n if (_enableEvents(target)) {\r\n _isListening = true;\r\n }\r\n }\r\n }\r\n if (_isListening) {\r\n // We are listening to events so lets set the current status rather than assuming we are online #1538\r\n if (_navigator && !isNullOrUndefined(_navigator[_DYN_ON_LINE /* @min:%2eonLine */])) { // navigator.onLine is undefined in react-native\r\n _onlineStatus = _navigator[_DYN_ON_LINE /* @min:%2eonLine */];\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // this makes react-native less angry\r\n _isListening = false;\r\n }\r\n function _enableEvents(target) {\r\n var enabled = false;\r\n if (target) {\r\n enabled = eventOn(target, \"online\", _setOnline, _evtNamespace);\r\n if (enabled) {\r\n eventOn(target, \"offline\", _setOffline, _evtNamespace);\r\n }\r\n }\r\n return enabled;\r\n }\r\n function _setOnline() {\r\n _onlineStatus = true;\r\n }\r\n function _setOffline() {\r\n _onlineStatus = false;\r\n }\r\n function _isOnline() {\r\n var result = true;\r\n if (_isListening) {\r\n result = _onlineStatus;\r\n }\r\n else if (_navigator && !isNullOrUndefined(_navigator[_DYN_ON_LINE /* @min:%2eonLine */])) { // navigator.onLine is undefined in react-native\r\n result = _navigator[_DYN_ON_LINE /* @min:%2eonLine */];\r\n }\r\n return result;\r\n }\r\n function _unload() {\r\n var win = getWindow();\r\n if (win && _isListening) {\r\n _disableEvents(win, _evtNamespace);\r\n if (_document) {\r\n // Also attach to the document.body or document\r\n var target = _document.body || _document;\r\n if (!isUndefined(target.ononline)) {\r\n _disableEvents(target, _evtNamespace);\r\n }\r\n }\r\n _isListening = false;\r\n }\r\n }\r\n return _a = {},\r\n _a[_DYN_IS_ONLINE /* @min:isOnline */] = _isOnline,\r\n _a.isListening = function () { return _isListening; },\r\n _a.unload = _unload,\r\n _a;\r\n}\r\n//# sourceMappingURL=Offline.js.map","/*\n * Application Insights JavaScript SDK - Channel, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlGetSessionStorage, utlSetSessionStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, arrForEach, arrIndexOf, dumpObj, getExceptionName, getJSON, isArray, isFunction, isString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_BATCH_PAYLOADS, _DYN_BUFFER_OVERRIDE, _DYN_CLEAR, _DYN_CLEAR_SENT, _DYN_COUNT, _DYN_EMIT_LINE_DELIMITED_0, _DYN_ENQUEUE, _DYN_LENGTH, _DYN_MARK_AS_SENT, _DYN_NAME_PREFIX, _DYN_PUSH, _DYN_STRINGIFY, _DYN__BUFFER__KEY, _DYN__MAX__BUFFER__SIZE, _DYN__SENT__BUFFER__KEY } from \"./__DynamicConstants\";\r\nvar BaseSendBuffer = /** @class */ (function () {\r\n function BaseSendBuffer(logger, config) {\r\n var _buffer = [];\r\n var _bufferFullMessageSent = false;\r\n this._get = function () {\r\n return _buffer;\r\n };\r\n this._set = function (buffer) {\r\n _buffer = buffer;\r\n return _buffer;\r\n };\r\n dynamicProto(BaseSendBuffer, this, function (_self) {\r\n _self[_DYN_ENQUEUE /* @min:%2eenqueue */] = function (payload) {\r\n if (_self[_DYN_COUNT /* @min:%2ecount */]() >= config.eventsLimitInMem()) {\r\n // sent internal log only once per page view\r\n if (!_bufferFullMessageSent) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 105 /* _eInternalMessageId.InMemoryStorageBufferFull */, \"Maximum in-memory buffer size reached: \" + _self[_DYN_COUNT /* @min:%2ecount */](), true);\r\n _bufferFullMessageSent = true;\r\n }\r\n return;\r\n }\r\n _buffer[_DYN_PUSH /* @min:%2epush */](payload);\r\n };\r\n _self[_DYN_COUNT /* @min:%2ecount */] = function () {\r\n return _buffer[_DYN_LENGTH /* @min:%2elength */];\r\n };\r\n _self.size = function () {\r\n var size = _buffer[_DYN_LENGTH /* @min:%2elength */];\r\n for (var lp = 0; lp < _buffer[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n size += _buffer[lp][_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n if (!config[_DYN_EMIT_LINE_DELIMITED_0 /* @min:%2eemitLineDelimitedJson */]()) {\r\n size += 2;\r\n }\r\n return size;\r\n };\r\n _self[_DYN_CLEAR /* @min:%2eclear */] = function () {\r\n _buffer = [];\r\n _bufferFullMessageSent = false;\r\n };\r\n _self.getItems = function () {\r\n return _buffer.slice(0);\r\n };\r\n _self[_DYN_BATCH_PAYLOADS /* @min:%2ebatchPayloads */] = function (payload) {\r\n if (payload && payload[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var batch = config[_DYN_EMIT_LINE_DELIMITED_0 /* @min:%2eemitLineDelimitedJson */]() ?\r\n payload.join(\"\\n\") :\r\n \"[\" + payload.join(\",\") + \"]\";\r\n return batch;\r\n }\r\n return null;\r\n };\r\n });\r\n }\r\n// Removed Stub for BaseSendBuffer.prototype.enqueue.\r\n// Removed Stub for BaseSendBuffer.prototype.count.\r\n// Removed Stub for BaseSendBuffer.prototype.size.\r\n// Removed Stub for BaseSendBuffer.prototype.clear.\r\n// Removed Stub for BaseSendBuffer.prototype.getItems.\r\n// Removed Stub for BaseSendBuffer.prototype.batchPayloads.\r\n // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n // this will be removed when ES3 support is dropped.\n BaseSendBuffer.__ieDyn=1;\n\n return BaseSendBuffer;\r\n}());\r\n/*\r\n * An array based send buffer.\r\n */\r\nvar ArraySendBuffer = /** @class */ (function (_super) {\r\n __extends(ArraySendBuffer, _super);\r\n function ArraySendBuffer(logger, config) {\r\n var _this = _super.call(this, logger, config) || this;\r\n dynamicProto(ArraySendBuffer, _this, function (_self, _base) {\r\n _self[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */] = function (payload) {\r\n _base[_DYN_CLEAR /* @min:%2eclear */]();\r\n };\r\n _self[_DYN_CLEAR_SENT /* @min:%2eclearSent */] = function (payload) {\r\n // not supported\r\n };\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for ArraySendBuffer.prototype.markAsSent.\r\n// Removed Stub for ArraySendBuffer.prototype.clearSent.\r\n // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n // this will be removed when ES3 support is dropped.\n ArraySendBuffer.__ieDyn=1;\n\n return ArraySendBuffer;\r\n}(BaseSendBuffer));\r\nexport { ArraySendBuffer };\r\n/*\r\n * Session storage buffer holds a copy of all unsent items in the browser session storage.\r\n */\r\nvar SessionStorageSendBuffer = /** @class */ (function (_super) {\r\n __extends(SessionStorageSendBuffer, _super);\r\n function SessionStorageSendBuffer(logger, config) {\r\n var _this = _super.call(this, logger, config) || this;\r\n var _bufferFullMessageSent = false;\r\n var _a = config[_DYN_BUFFER_OVERRIDE /* @min:%2ebufferOverride */]() || { getItem: utlGetSessionStorage, setItem: utlSetSessionStorage }, getItem = _a.getItem, setItem = _a.setItem;\r\n dynamicProto(SessionStorageSendBuffer, _this, function (_self, _base) {\r\n var bufferItems = _getBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY /* @min:%2eBUFFER_KEY */]);\r\n var notDeliveredItems = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */]);\r\n var buffer = _self._set(bufferItems.concat(notDeliveredItems));\r\n // If the buffer has too many items, drop items from the end.\r\n if (buffer[_DYN_LENGTH /* @min:%2elength */] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */]) {\r\n buffer[_DYN_LENGTH /* @min:%2elength */] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */];\r\n }\r\n _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], []);\r\n _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY /* @min:%2eBUFFER_KEY */], buffer);\r\n _self[_DYN_ENQUEUE /* @min:%2eenqueue */] = function (payload) {\r\n if (_self[_DYN_COUNT /* @min:%2ecount */]() >= SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */]) {\r\n // sent internal log only once per page view\r\n if (!_bufferFullMessageSent) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 67 /* _eInternalMessageId.SessionStorageBufferFull */, \"Maximum buffer size reached: \" + _self[_DYN_COUNT /* @min:%2ecount */](), true);\r\n _bufferFullMessageSent = true;\r\n }\r\n return;\r\n }\r\n _base[_DYN_ENQUEUE /* @min:%2eenqueue */](payload);\r\n _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY /* @min:%2eBUFFER_KEY */], _self._get());\r\n };\r\n _self[_DYN_CLEAR /* @min:%2eclear */] = function () {\r\n _base[_DYN_CLEAR /* @min:%2eclear */]();\r\n _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY /* @min:%2eBUFFER_KEY */], _self._get());\r\n _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], []);\r\n _bufferFullMessageSent = false;\r\n };\r\n _self[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */] = function (payload) {\r\n _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY /* @min:%2eBUFFER_KEY */], _self._set(_removePayloadsFromBuffer(payload, _self._get())));\r\n var sentElements = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */]);\r\n if (sentElements instanceof Array && payload instanceof Array) {\r\n sentElements = sentElements.concat(payload);\r\n if (sentElements[_DYN_LENGTH /* @min:%2elength */] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */]) {\r\n // We send telemetry normally. If the SENT_BUFFER is too big we don't add new elements\r\n // until we receive a response from the backend and the buffer has free space again (see clearSent method)\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 67 /* _eInternalMessageId.SessionStorageBufferFull */, \"Sent buffer reached its maximum size: \" + sentElements[_DYN_LENGTH /* @min:%2elength */], true);\r\n sentElements[_DYN_LENGTH /* @min:%2elength */] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */];\r\n }\r\n _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], sentElements);\r\n }\r\n };\r\n _self[_DYN_CLEAR_SENT /* @min:%2eclearSent */] = function (payload) {\r\n var sentElements = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */]);\r\n sentElements = _removePayloadsFromBuffer(payload, sentElements);\r\n _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], sentElements);\r\n };\r\n function _removePayloadsFromBuffer(payloads, buffer) {\r\n var remaining = [];\r\n arrForEach(buffer, function (value) {\r\n if (!isFunction(value) && arrIndexOf(payloads, value) === -1) {\r\n remaining[_DYN_PUSH /* @min:%2epush */](value);\r\n }\r\n });\r\n return remaining;\r\n }\r\n function _getBuffer(key) {\r\n var prefixedKey = key;\r\n try {\r\n prefixedKey = config[_DYN_NAME_PREFIX /* @min:%2enamePrefix */] && config[_DYN_NAME_PREFIX /* @min:%2enamePrefix */]() ? config[_DYN_NAME_PREFIX /* @min:%2enamePrefix */]() + \"_\" + prefixedKey : prefixedKey;\r\n var bufferJson = getItem(logger, prefixedKey);\r\n if (bufferJson) {\r\n var buffer_1 = getJSON().parse(bufferJson);\r\n if (isString(buffer_1)) {\r\n // When using some version prototype.js the stringify / parse cycle does not decode array's correctly\r\n buffer_1 = getJSON().parse(buffer_1);\r\n }\r\n if (buffer_1 && isArray(buffer_1)) {\r\n return buffer_1;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 42 /* _eInternalMessageId.FailedToRestoreStorageBuffer */, \" storage key: \" + prefixedKey + \", \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n return [];\r\n }\r\n function _setBuffer(key, buffer) {\r\n var prefixedKey = key;\r\n try {\r\n prefixedKey = config[_DYN_NAME_PREFIX /* @min:%2enamePrefix */] && config[_DYN_NAME_PREFIX /* @min:%2enamePrefix */]() ? config[_DYN_NAME_PREFIX /* @min:%2enamePrefix */]() + \"_\" + prefixedKey : prefixedKey;\r\n var bufferJson = JSON[_DYN_STRINGIFY /* @min:%2estringify */](buffer);\r\n setItem(logger, prefixedKey, bufferJson);\r\n }\r\n catch (e) {\r\n // if there was an error, clear the buffer\r\n // telemetry is stored in the _buffer array so we won't loose any items\r\n setItem(logger, prefixedKey, JSON[_DYN_STRINGIFY /* @min:%2estringify */]([]));\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 41 /* _eInternalMessageId.FailedToSetStorageBuffer */, \" storage key: \" + prefixedKey + \", \" + getExceptionName(e) + \". Buffer cleared\", { exception: dumpObj(e) });\r\n }\r\n }\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for SessionStorageSendBuffer.prototype.enqueue.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.clear.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.markAsSent.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.clearSent.\r\n SessionStorageSendBuffer.BUFFER_KEY = \"AI_buffer\";\r\n SessionStorageSendBuffer.SENT_BUFFER_KEY = \"AI_sentBuffer\";\r\n // Maximum number of payloads stored in the buffer. If the buffer is full, new elements will be dropped.\r\n SessionStorageSendBuffer.MAX_BUFFER_SIZE = 2000;\r\n return SessionStorageSendBuffer;\r\n}(BaseSendBuffer));\r\nexport { SessionStorageSendBuffer };\r\n//# sourceMappingURL=SendBuffer.js.map","/*\n * Application Insights JavaScript SDK - Channel, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nvar _a;\r\nimport { __assignFn as __assign, __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { BreezeChannelIdentifier, DEFAULT_BREEZE_ENDPOINT, DEFAULT_BREEZE_PATH, DisabledPropertyName, Event, Exception, Metric, PageView, PageViewPerformance, ProcessLegacy, RemoteDependencyData, RequestHeaders, SampleRate, Trace, isInternalApplicationInsightsEndpoint, utlCanUseSessionStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, _throwInternal, _warnToConsole, arrForEach, createUniqueNamespace, dateNow, dumpObj, getExceptionName, getIEVersion, getJSON, getNavigator, getWindow, isArray, isBeaconsSupported, isFetchSupported, isNullOrUndefined, isXhrSupported, mergeEvtNamespace, objForEachKey, objKeys, useXDomainRequest } from \"@microsoft/applicationinsights-core-js\";\r\nimport { DependencyEnvelopeCreator, EventEnvelopeCreator, ExceptionEnvelopeCreator, MetricEnvelopeCreator, PageViewEnvelopeCreator, PageViewPerformanceEnvelopeCreator, TraceEnvelopeCreator } from \"./EnvelopeCreator\";\r\nimport { createOfflineListener } from \"./Offline\";\r\nimport { ArraySendBuffer, SessionStorageSendBuffer } from \"./SendBuffer\";\r\nimport { Serializer } from \"./Serializer\";\r\nimport { Sample } from \"./TelemetryProcessors/Sample\";\r\nimport { _DYN_BASE_TYPE, _DYN_BATCH_PAYLOADS, _DYN_BUFFER_OVERRIDE, _DYN_CLEAR, _DYN_CLEAR_SENT, _DYN_CONVERT_UNDEFINED, _DYN_COUNT, _DYN_CUSTOM_HEADERS, _DYN_DIAG_LOG, _DYN_DISABLE_INSTRUMENTAT7, _DYN_DISABLE_TELEMETRY, _DYN_DISABLE_XHR, _DYN_EMIT_LINE_DELIMITED_0, _DYN_ENABLE_SESSION_STORA4, _DYN_ENDPOINT_URL, _DYN_ENQUEUE, _DYN_EVENTS_SEND_REQUEST, _DYN_INSTRUMENTATION_KEY, _DYN_IS_BEACON_API_DISABL3, _DYN_IS_ONLINE, _DYN_IS_RETRY_DISABLED, _DYN_ITEMS_ACCEPTED, _DYN_ITEMS_RECEIVED, _DYN_LENGTH, _DYN_MARK_AS_SENT, _DYN_MAX_BATCH_INTERVAL, _DYN_MAX_BATCH_SIZE_IN_BY1, _DYN_NAME_PREFIX, _DYN_ONUNLOAD_DISABLE_BEA2, _DYN_ONUNLOAD_DISABLE_FET5, _DYN_PUSH, _DYN_SAMPLE_RATE, _DYN_SAMPLING_PERCENTAGE, _DYN_SET_REQUEST_HEADER, _DYN_TAGS, _DYN_TRIGGER_SEND, _DYN__BUFFER, _DYN__ON_ERROR, _DYN__ON_PARTIAL_SUCCESS, _DYN__ON_SUCCESS, _DYN__SENDER, _DYN__SENDER_CONFIG, _DYN__XHR_READY_STATE_CHA6 } from \"./__DynamicConstants\";\r\nvar FetchSyncRequestSizeLimitBytes = 65000; // approx 64kb (the current Edge, Firefox and Chrome max limit)\r\nfunction _getResponseText(xhr) {\r\n try {\r\n return xhr.responseText;\r\n }\r\n catch (e) {\r\n // Best effort, as XHR may throw while XDR wont so just ignore\r\n }\r\n return null;\r\n}\r\nfunction _getDefaultAppInsightsChannelConfig() {\r\n var _a;\r\n var defaultValue;\r\n var defaultCustomHeaders;\r\n // set default values\r\n return _a = {\r\n endpointUrl: function () { return DEFAULT_BREEZE_ENDPOINT + DEFAULT_BREEZE_PATH; }\r\n },\r\n _a[_DYN_EMIT_LINE_DELIMITED_0 /* @min:emitLineDelimitedJson */] = function () { return false; },\r\n _a[_DYN_MAX_BATCH_INTERVAL /* @min:maxBatchInterval */] = function () { return 15000; },\r\n _a[_DYN_MAX_BATCH_SIZE_IN_BY1 /* @min:maxBatchSizeInBytes */] = function () { return 102400; },\r\n _a[_DYN_DISABLE_TELEMETRY /* @min:disableTelemetry */] = function () { return false; },\r\n _a[_DYN_ENABLE_SESSION_STORA4 /* @min:enableSessionStorageBuffer */] = function () { return true; },\r\n _a[_DYN_BUFFER_OVERRIDE /* @min:bufferOverride */] = function () { return false; },\r\n _a[_DYN_IS_RETRY_DISABLED /* @min:isRetryDisabled */] = function () { return false; },\r\n _a[_DYN_IS_BEACON_API_DISABL3 /* @min:isBeaconApiDisabled */] = function () { return true; },\r\n _a[_DYN_DISABLE_XHR /* @min:disableXhr */] = function () { return false; },\r\n _a[_DYN_ONUNLOAD_DISABLE_FET5 /* @min:onunloadDisableFetch */] = function () { return false; },\r\n _a[_DYN_ONUNLOAD_DISABLE_BEA2 /* @min:onunloadDisableBeacon */] = function () { return false; },\r\n _a[_DYN_INSTRUMENTATION_KEY /* @min:instrumentationKey */] = function () { return defaultValue; },\r\n _a[_DYN_NAME_PREFIX /* @min:namePrefix */] = function () { return defaultValue; },\r\n _a[_DYN_SAMPLING_PERCENTAGE /* @min:samplingPercentage */] = function () { return 100; },\r\n _a[_DYN_CUSTOM_HEADERS /* @min:customHeaders */] = function () { return defaultCustomHeaders; },\r\n _a[_DYN_CONVERT_UNDEFINED /* @min:convertUndefined */] = function () { return defaultValue; },\r\n _a.eventsLimitInMem = function () { return 10000; },\r\n _a;\r\n}\r\nvar EnvelopeTypeCreator = (_a = {},\r\n _a[Event.dataType] = EventEnvelopeCreator,\r\n _a[Trace.dataType] = TraceEnvelopeCreator,\r\n _a[PageView.dataType] = PageViewEnvelopeCreator,\r\n _a[PageViewPerformance.dataType] = PageViewPerformanceEnvelopeCreator,\r\n _a[Exception.dataType] = ExceptionEnvelopeCreator,\r\n _a[Metric.dataType] = MetricEnvelopeCreator,\r\n _a[RemoteDependencyData.dataType] = DependencyEnvelopeCreator,\r\n _a);\r\nvar Sender = /** @class */ (function (_super) {\r\n __extends(Sender, _super);\r\n function Sender() {\r\n var _this = _super.call(this) || this;\r\n _this.priority = 1001;\r\n _this.identifier = BreezeChannelIdentifier;\r\n /**\r\n * The configuration for this sender instance\r\n */\r\n _this._senderConfig = _getDefaultAppInsightsChannelConfig();\r\n // Don't set the defaults here, set them in the _initDefaults() as this is also called during unload\r\n var _consecutiveErrors; // How many times in a row a retryable error condition has occurred.\r\n var _retryAt; // The time to retry at in milliseconds from 1970/01/01 (this makes the timer calculation easy).\r\n var _lastSend; // The time of the last send operation.\r\n var _paused; // Flag indicating that the sending should be paused\r\n var _timeoutHandle; // Handle to the timer for delayed sending of batches of data.\r\n var _serializer;\r\n var _stamp_specific_redirects;\r\n var _headers;\r\n var _syncFetchPayload = 0; // Keep track of the outstanding sync fetch payload total (as sync fetch has limits)\r\n var _fallbackSender; // The sender to use if the payload size is too large\r\n var _syncUnloadSender; // The identified sender to use for the synchronous unload stage\r\n var _offlineListener;\r\n var _evtNamespace;\r\n dynamicProto(Sender, _this, function (_self, _base) {\r\n _initDefaults();\r\n _self.pause = function () {\r\n _clearScheduledTimer();\r\n _paused = true;\r\n };\r\n _self.resume = function () {\r\n if (_paused) {\r\n _paused = false;\r\n _retryAt = null;\r\n // flush if we have exceeded the max-size already\r\n if (_self._buffer.size() > _self._senderConfig[_DYN_MAX_BATCH_SIZE_IN_BY1 /* @min:%2emaxBatchSizeInBytes */]()) {\r\n _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](true, null, 10 /* SendRequestReason.MaxBatchSize */);\r\n }\r\n _setupTimer();\r\n }\r\n };\r\n _self.flush = function (isAsync, callBack, sendReason) {\r\n if (isAsync === void 0) { isAsync = true; }\r\n if (!_paused) {\r\n // Clear the normal schedule timer as we are going to try and flush ASAP\r\n _clearScheduledTimer();\r\n try {\r\n _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](isAsync, null, sendReason || 1 /* SendRequestReason.ManualFlush */);\r\n }\r\n catch (e) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 22 /* _eInternalMessageId.FlushFailed */, \"flush failed, telemetry will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n };\r\n _self.onunloadFlush = function () {\r\n if (!_paused) {\r\n if ((_self._senderConfig[_DYN_ONUNLOAD_DISABLE_BEA2 /* @min:%2eonunloadDisableBeacon */]() === false || _self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][_DYN_IS_BEACON_API_DISABL3 /* @min:%2eisBeaconApiDisabled */]() === false) && isBeaconsSupported()) {\r\n try {\r\n _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](true, _doUnloadSend, 2 /* SendRequestReason.Unload */);\r\n }\r\n catch (e) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 20 /* _eInternalMessageId.FailedToSendQueuedTelemetry */, \"failed to flush with beacon sender on page unload, telemetry will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n else {\r\n _self.flush();\r\n }\r\n }\r\n };\r\n _self.addHeader = function (name, value) {\r\n _headers[name] = value;\r\n };\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n if (_self.isInitialized()) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 28 /* _eInternalMessageId.SenderNotInitialized */, \"Sender is already initialized\");\r\n }\r\n _base.initialize(config, core, extensions, pluginChain);\r\n var ctx = _self._getTelCtx();\r\n var identifier = _self.identifier;\r\n _serializer = new Serializer(core.logger);\r\n _consecutiveErrors = 0;\r\n _retryAt = null;\r\n _lastSend = 0;\r\n _self[_DYN__SENDER /* @min:%2e_sender */] = null;\r\n _stamp_specific_redirects = 0;\r\n var diagLog = _self[_DYN_DIAG_LOG /* @min:%2ediagLog */]();\r\n _evtNamespace = mergeEvtNamespace(createUniqueNamespace(\"Sender\"), core.evtNamespace && core.evtNamespace());\r\n _offlineListener = createOfflineListener(_evtNamespace);\r\n // TODO v3.x: Change the ISenderConfig to not be function calls\r\n var defaultConfig = _getDefaultAppInsightsChannelConfig();\r\n objForEachKey(defaultConfig, function (field, value) {\r\n _self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][field] = function () {\r\n var theValue = ctx.getConfig(identifier, field, value());\r\n if (!theValue && field === \"endpointUrl\") {\r\n // Use the default value (handles empty string in the configuration)\r\n theValue = value();\r\n }\r\n return theValue;\r\n };\r\n });\r\n var useSessionStorage = _self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][_DYN_ENABLE_SESSION_STORA4 /* @min:%2eenableSessionStorageBuffer */]() &&\r\n !!(_self._senderConfig[_DYN_BUFFER_OVERRIDE /* @min:%2ebufferOverride */]() || utlCanUseSessionStorage());\r\n _self[_DYN__BUFFER /* @min:%2e_buffer */] = useSessionStorage\r\n ? new SessionStorageSendBuffer(diagLog, _self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */])\r\n : new ArraySendBuffer(diagLog, _self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */]);\r\n _self._sample = new Sample(_self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][_DYN_SAMPLING_PERCENTAGE /* @min:%2esamplingPercentage */](), diagLog);\r\n if (!_validateInstrumentationKey(config)) {\r\n _throwInternal(diagLog, 1 /* eLoggingSeverity.CRITICAL */, 100 /* _eInternalMessageId.InvalidInstrumentationKey */, \"Invalid Instrumentation key \" + config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */]);\r\n }\r\n if (!isInternalApplicationInsightsEndpoint(_self._senderConfig.endpointUrl()) && _self._senderConfig.customHeaders() && _self._senderConfig.customHeaders()[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(_self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][_DYN_CUSTOM_HEADERS /* @min:%2ecustomHeaders */](), function (customHeader) {\r\n _this.addHeader(customHeader.header, customHeader.value);\r\n });\r\n }\r\n var senderConfig = _self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */];\r\n var sendPostFunc = null;\r\n if (!senderConfig[_DYN_DISABLE_XHR /* @min:%2edisableXhr */]() && useXDomainRequest()) {\r\n sendPostFunc = _xdrSender; // IE 8 and 9\r\n }\r\n else if (!senderConfig[_DYN_DISABLE_XHR /* @min:%2edisableXhr */]() && isXhrSupported()) {\r\n sendPostFunc = _xhrSender;\r\n }\r\n if (!sendPostFunc && isFetchSupported()) {\r\n sendPostFunc = _fetchSender;\r\n }\r\n // always fallback to XHR\r\n _fallbackSender = sendPostFunc || _xhrSender;\r\n if (!senderConfig[_DYN_IS_BEACON_API_DISABL3 /* @min:%2eisBeaconApiDisabled */]() && isBeaconsSupported()) {\r\n // Config is set to always used beacon sending\r\n sendPostFunc = _beaconSender;\r\n }\r\n _self[_DYN__SENDER /* @min:%2e_sender */] = sendPostFunc || _xhrSender;\r\n if (!senderConfig[_DYN_ONUNLOAD_DISABLE_FET5 /* @min:%2eonunloadDisableFetch */]() && isFetchSupported(true)) {\r\n // Try and use the fetch with keepalive\r\n _syncUnloadSender = _fetchKeepAliveSender;\r\n }\r\n else if (isBeaconsSupported()) {\r\n // Try and use sendBeacon\r\n _syncUnloadSender = _beaconSender;\r\n }\r\n else if (!senderConfig[_DYN_DISABLE_XHR /* @min:%2edisableXhr */]() && useXDomainRequest()) {\r\n _syncUnloadSender = _xdrSender; // IE 8 and 9\r\n }\r\n else if (!senderConfig[_DYN_DISABLE_XHR /* @min:%2edisableXhr */]() && isXhrSupported()) {\r\n _syncUnloadSender = _xhrSender;\r\n }\r\n else {\r\n _syncUnloadSender = _fallbackSender;\r\n }\r\n };\r\n _self.processTelemetry = function (telemetryItem, itemCtx) {\r\n itemCtx = _self._getTelCtx(itemCtx);\r\n var diagLogger = itemCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */]();\r\n try {\r\n // if master off switch is set, don't send any data\r\n if (_self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][_DYN_DISABLE_TELEMETRY /* @min:%2edisableTelemetry */]()) {\r\n // Do not send/save data\r\n return;\r\n }\r\n // validate input\r\n if (!telemetryItem) {\r\n _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 7 /* _eInternalMessageId.CannotSendEmptyTelemetry */, \"Cannot send empty telemetry\");\r\n return;\r\n }\r\n // validate event\r\n if (telemetryItem.baseData && !telemetryItem[_DYN_BASE_TYPE /* @min:%2ebaseType */]) {\r\n _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 70 /* _eInternalMessageId.InvalidEvent */, \"Cannot send telemetry without baseData and baseType\");\r\n return;\r\n }\r\n if (!telemetryItem[_DYN_BASE_TYPE /* @min:%2ebaseType */]) {\r\n // Default\r\n telemetryItem[_DYN_BASE_TYPE /* @min:%2ebaseType */] = \"EventData\";\r\n }\r\n // ensure a sender was constructed\r\n if (!_self[_DYN__SENDER /* @min:%2e_sender */]) {\r\n _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 28 /* _eInternalMessageId.SenderNotInitialized */, \"Sender was not initialized\");\r\n return;\r\n }\r\n // check if this item should be sampled in, else add sampleRate tag\r\n if (!_isSampledIn(telemetryItem)) {\r\n // Item is sampled out, do not send it\r\n _throwInternal(diagLogger, 2 /* eLoggingSeverity.WARNING */, 33 /* _eInternalMessageId.TelemetrySampledAndNotSent */, \"Telemetry item was sampled out and not sent\", { SampleRate: _self._sample[_DYN_SAMPLE_RATE /* @min:%2esampleRate */] });\r\n return;\r\n }\r\n else {\r\n telemetryItem[SampleRate] = _self._sample[_DYN_SAMPLE_RATE /* @min:%2esampleRate */];\r\n }\r\n var convertUndefined = _self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][_DYN_CONVERT_UNDEFINED /* @min:%2econvertUndefined */]() || undefined;\r\n // construct an envelope that Application Insights endpoint can understand\r\n // if ikey of telemetry is provided and not empty, envelope will use this iKey instead of senderConfig iKey\r\n var defaultEnvelopeIkey = telemetryItem.iKey || _self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */]();\r\n var aiEnvelope_1 = Sender.constructEnvelope(telemetryItem, defaultEnvelopeIkey, diagLogger, convertUndefined);\r\n if (!aiEnvelope_1) {\r\n _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 47 /* _eInternalMessageId.CreateEnvelopeError */, \"Unable to create an AppInsights envelope\");\r\n return;\r\n }\r\n var doNotSendItem_1 = false;\r\n // this is for running in legacy mode, where customer may already have a custom initializer present\r\n if (telemetryItem[_DYN_TAGS /* @min:%2etags */] && telemetryItem[_DYN_TAGS /* @min:%2etags */][ProcessLegacy]) {\r\n arrForEach(telemetryItem[_DYN_TAGS /* @min:%2etags */][ProcessLegacy], function (callBack) {\r\n try {\r\n if (callBack && callBack(aiEnvelope_1) === false) {\r\n doNotSendItem_1 = true;\r\n _warnToConsole(diagLogger, \"Telemetry processor check returns false\");\r\n }\r\n }\r\n catch (e) {\r\n // log error but dont stop executing rest of the telemetry initializers\r\n // doNotSendItem = true;\r\n _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, \"One of telemetry initializers failed, telemetry item will not be sent: \" + getExceptionName(e), { exception: dumpObj(e) }, true);\r\n }\r\n });\r\n delete telemetryItem[_DYN_TAGS /* @min:%2etags */][ProcessLegacy];\r\n }\r\n if (doNotSendItem_1) {\r\n return; // do not send, no need to execute next plugin\r\n }\r\n // check if the incoming payload is too large, truncate if necessary\r\n var payload = _serializer.serialize(aiEnvelope_1);\r\n // flush if we would exceed the max-size limit by adding this item\r\n var buffer = _self[_DYN__BUFFER /* @min:%2e_buffer */];\r\n var bufferSize = buffer.size();\r\n if ((bufferSize + payload[_DYN_LENGTH /* @min:%2elength */]) > _self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][_DYN_MAX_BATCH_SIZE_IN_BY1 /* @min:%2emaxBatchSizeInBytes */]()) {\r\n if (!_offlineListener || _offlineListener[_DYN_IS_ONLINE /* @min:%2eisOnline */]()) { // only trigger send when currently online\r\n _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](true, null, 10 /* SendRequestReason.MaxBatchSize */);\r\n }\r\n }\r\n // enqueue the payload\r\n buffer[_DYN_ENQUEUE /* @min:%2eenqueue */](payload);\r\n // ensure an invocation timeout is set\r\n _setupTimer();\r\n }\r\n catch (e) {\r\n _throwInternal(diagLogger, 2 /* eLoggingSeverity.WARNING */, 12 /* _eInternalMessageId.FailedAddingTelemetryToBuffer */, \"Failed adding telemetry to the sender's buffer, some telemetry will be lost: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n // hand off the telemetry item to the next plugin\r\n _self.processNext(telemetryItem, itemCtx);\r\n };\r\n /**\r\n * xhr state changes\r\n */\r\n _self[_DYN__XHR_READY_STATE_CHA6 /* @min:%2e_xhrReadyStateChange */] = function (xhr, payload, countOfItemsInPayload) {\r\n if (xhr.readyState === 4) {\r\n _checkResponsStatus(xhr.status, payload, xhr.responseURL, countOfItemsInPayload, _formatErrorMessageXhr(xhr), _getResponseText(xhr) || xhr.response);\r\n }\r\n };\r\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 */\r\n _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */] = function (async, forcedSender, sendReason) {\r\n if (async === void 0) { async = true; }\r\n if (!_paused) {\r\n try {\r\n var buffer = _self[_DYN__BUFFER /* @min:%2e_buffer */];\r\n // Send data only if disableTelemetry is false\r\n if (!_self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][_DYN_DISABLE_TELEMETRY /* @min:%2edisableTelemetry */]()) {\r\n if (buffer[_DYN_COUNT /* @min:%2ecount */]() > 0) {\r\n var payload = buffer.getItems();\r\n _notifySendRequest(sendReason || 0 /* SendRequestReason.Undefined */, async);\r\n // invoke send\r\n if (forcedSender) {\r\n forcedSender.call(_self, payload, async);\r\n }\r\n else {\r\n _self[_DYN__SENDER /* @min:%2e_sender */](payload, async);\r\n }\r\n }\r\n // update lastSend time to enable throttling\r\n _lastSend = +new Date;\r\n }\r\n else {\r\n buffer[_DYN_CLEAR /* @min:%2eclear */]();\r\n }\r\n _clearScheduledTimer();\r\n }\r\n catch (e) {\r\n /* Ignore this error for IE under v10 */\r\n var ieVer = getIEVersion();\r\n if (!ieVer || ieVer > 9) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 40 /* _eInternalMessageId.TransmissionFailed */, \"Telemetry transmission failed, some telemetry will be lost: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n }\r\n };\r\n _self._doTeardown = function (unloadCtx, unloadState) {\r\n _self.onunloadFlush();\r\n _offlineListener.unload();\r\n _initDefaults();\r\n };\r\n /**\r\n * error handler\r\n */\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */] = function (payload, message, event) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 26 /* _eInternalMessageId.OnError */, \"Failed to send telemetry.\", { message: message });\r\n _self._buffer && _self._buffer[_DYN_CLEAR_SENT /* @min:%2eclearSent */](payload);\r\n };\r\n /**\r\n * partial success handler\r\n */\r\n _self[_DYN__ON_PARTIAL_SUCCESS /* @min:%2e_onPartialSuccess */] = function (payload, results) {\r\n var failed = [];\r\n var retry = [];\r\n // Iterate through the reversed array of errors so that splicing doesn't have invalid indexes after the first item.\r\n var errors = results.errors.reverse();\r\n for (var _i = 0, errors_1 = errors; _i < errors_1.length; _i++) {\r\n var error = errors_1[_i];\r\n var extracted = payload.splice(error.index, 1)[0];\r\n if (_isRetriable(error.statusCode)) {\r\n retry[_DYN_PUSH /* @min:%2epush */](extracted);\r\n }\r\n else {\r\n // All other errors, including: 402 (Monthly quota exceeded) and 439 (Too many requests and refresh cache).\r\n failed[_DYN_PUSH /* @min:%2epush */](extracted);\r\n }\r\n }\r\n if (payload[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */](payload, results[_DYN_ITEMS_ACCEPTED /* @min:%2eitemsAccepted */]);\r\n }\r\n if (failed[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](failed, _formatErrorMessageXhr(null, [\"partial success\", results[_DYN_ITEMS_ACCEPTED /* @min:%2eitemsAccepted */], \"of\", results.itemsReceived].join(\" \")));\r\n }\r\n if (retry[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _resendPayload(retry);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \"Partial success. \" +\r\n \"Delivered: \" + payload[_DYN_LENGTH /* @min:%2elength */] + \", Failed: \" + failed[_DYN_LENGTH /* @min:%2elength */] +\r\n \". Will retry to send \" + retry[_DYN_LENGTH /* @min:%2elength */] + \" our of \" + results[_DYN_ITEMS_RECEIVED /* @min:%2eitemsReceived */] + \" items\");\r\n }\r\n };\r\n /**\r\n * success handler\r\n */\r\n _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */] = function (payload, countOfItemsInPayload) {\r\n _self._buffer && _self._buffer[_DYN_CLEAR_SENT /* @min:%2eclearSent */](payload);\r\n };\r\n /**\r\n * xdr state changes\r\n */\r\n _self._xdrOnLoad = function (xdr, payload) {\r\n var responseText = _getResponseText(xdr);\r\n if (xdr && (responseText + \"\" === \"200\" || responseText === \"\")) {\r\n _consecutiveErrors = 0;\r\n _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */](payload, 0);\r\n }\r\n else {\r\n var results = _parseResponse(responseText);\r\n if (results && results.itemsReceived && results.itemsReceived > results[_DYN_ITEMS_ACCEPTED /* @min:%2eitemsAccepted */]\r\n && !_self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][_DYN_IS_RETRY_DISABLED /* @min:%2eisRetryDisabled */]()) {\r\n _self[_DYN__ON_PARTIAL_SUCCESS /* @min:%2e_onPartialSuccess */](payload, results);\r\n }\r\n else {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, _formatErrorMessageXdr(xdr));\r\n }\r\n }\r\n };\r\n function _isSampledIn(envelope) {\r\n return _self._sample.isSampledIn(envelope);\r\n }\r\n function _checkResponsStatus(status, payload, responseUrl, countOfItemsInPayload, errorMessage, res) {\r\n var response = null;\r\n if (!_self._appId) {\r\n response = _parseResponse(res);\r\n if (response && response.appId) {\r\n _self._appId = response.appId;\r\n }\r\n }\r\n if ((status < 200 || status >= 300) && status !== 0) {\r\n // Update End Point url if permanent redirect or moved permanently\r\n // Updates the end point url before retry\r\n if (status === 301 || status === 307 || status === 308) {\r\n if (!_checkAndUpdateEndPointUrl(responseUrl)) {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, errorMessage);\r\n return;\r\n }\r\n }\r\n if (!_self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][_DYN_IS_RETRY_DISABLED /* @min:%2eisRetryDisabled */]() && _isRetriable(status)) {\r\n _resendPayload(payload);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" +\r\n \"Response code \" + status + \". Will retry to send \" + payload[_DYN_LENGTH /* @min:%2elength */] + \" items.\");\r\n }\r\n else {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, errorMessage);\r\n }\r\n }\r\n else if (_offlineListener && !_offlineListener[_DYN_IS_ONLINE /* @min:%2eisOnline */]()) { // offline\r\n // Note: Don't check for status == 0, since adblock gives this code\r\n if (!_self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][_DYN_IS_RETRY_DISABLED /* @min:%2eisRetryDisabled */]()) {\r\n var offlineBackOffMultiplier = 10; // arbritrary number\r\n _resendPayload(payload, offlineBackOffMultiplier);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". Offline - Response Code: \".concat(status, \". Offline status: \").concat(!_offlineListener.isOnline(), \". Will retry to send \").concat(payload.length, \" items.\"));\r\n }\r\n }\r\n else {\r\n // check if the xhr's responseURL or fetch's response.url is same as endpoint url\r\n // TODO after 10 redirects force send telemetry with 'redirect=false' as query parameter.\r\n _checkAndUpdateEndPointUrl(responseUrl);\r\n if (status === 206) {\r\n if (!response) {\r\n response = _parseResponse(res);\r\n }\r\n if (response && !_self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][_DYN_IS_RETRY_DISABLED /* @min:%2eisRetryDisabled */]()) {\r\n _self[_DYN__ON_PARTIAL_SUCCESS /* @min:%2e_onPartialSuccess */](payload, response);\r\n }\r\n else {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, errorMessage);\r\n }\r\n }\r\n else {\r\n _consecutiveErrors = 0;\r\n _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */](payload, countOfItemsInPayload);\r\n }\r\n }\r\n }\r\n function _checkAndUpdateEndPointUrl(responseUrl) {\r\n // Maximum stamp specific redirects allowed(uncomment this when breeze is ready with not allowing redirects feature)\r\n if (_stamp_specific_redirects >= 10) {\r\n // _self._senderConfig.endpointUrl = () => Sender._getDefaultAppInsightsChannelConfig().endpointUrl()+\"/?redirect=false\";\r\n // _stamp_specific_redirects = 0;\r\n return false;\r\n }\r\n if (!isNullOrUndefined(responseUrl) && responseUrl !== \"\") {\r\n if (responseUrl !== _self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */]()) {\r\n _self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */] = function () { return responseUrl; };\r\n ++_stamp_specific_redirects;\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n function _doUnloadSend(payload, isAsync) {\r\n if (_syncUnloadSender) {\r\n // We are unloading so always call the sender with sync set to false\r\n _syncUnloadSender(payload, false);\r\n }\r\n else {\r\n // Fallback to the previous beacon Sender (which causes a CORB warning on chrome now)\r\n _beaconSender(payload, isAsync);\r\n }\r\n }\r\n function _doBeaconSend(payload) {\r\n var nav = getNavigator();\r\n var buffer = _self[_DYN__BUFFER /* @min:%2e_buffer */];\r\n var url = _self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */]();\r\n var batch = _self._buffer[_DYN_BATCH_PAYLOADS /* @min:%2ebatchPayloads */](payload);\r\n // Chrome only allows CORS-safelisted values for the sendBeacon data argument\r\n // see: https://bugs.chromium.org/p/chromium/issues/detail?id=720283\r\n var plainTextBatch = new Blob([batch], { type: \"text/plain;charset=UTF-8\" });\r\n // The sendBeacon method returns true if the user agent is able to successfully queue the data for transfer. Otherwise it returns false.\r\n var queued = nav.sendBeacon(url, plainTextBatch);\r\n if (queued) {\r\n buffer[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */](payload);\r\n // no response from beaconSender, clear buffer\r\n _self._onSuccess(payload, payload[_DYN_LENGTH /* @min:%2elength */]);\r\n }\r\n return queued;\r\n }\r\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 */\r\n function _beaconSender(payload, isAsync) {\r\n if (isArray(payload) && payload[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n // The sendBeacon method returns true if the user agent is able to successfully queue the data for transfer. Otherwise it returns false.\r\n if (!_doBeaconSend(payload)) {\r\n // Failed to send entire payload so try and split data and try to send as much events as possible\r\n var droppedPayload = [];\r\n for (var lp = 0; lp < payload[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n var thePayload = payload[lp];\r\n if (!_doBeaconSend([thePayload])) {\r\n // Can't send anymore, so split the batch and drop the rest\r\n droppedPayload[_DYN_PUSH /* @min:%2epush */](thePayload);\r\n }\r\n }\r\n if (droppedPayload[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _fallbackSender && _fallbackSender(droppedPayload, true);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" + \"Failed to send telemetry with Beacon API, retried with normal sender.\");\r\n }\r\n }\r\n }\r\n }\r\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 */\r\n function _xhrSender(payload, isAsync) {\r\n var xhr = new XMLHttpRequest();\r\n var endPointUrl = _self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */]();\r\n try {\r\n xhr[DisabledPropertyName] = true;\r\n }\r\n catch (e) {\r\n // If the environment has locked down the XMLHttpRequest (preventExtensions and/or freeze), this would\r\n // cause the request to fail and we no telemetry would be sent\r\n }\r\n xhr.open(\"POST\", endPointUrl, isAsync);\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](\"Content-type\", \"application/json\");\r\n // append Sdk-Context request header only in case of breeze endpoint\r\n if (isInternalApplicationInsightsEndpoint(endPointUrl)) {\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](RequestHeaders[6 /* eRequestHeaders.sdkContextHeader */], RequestHeaders[7 /* eRequestHeaders.sdkContextHeaderAppIdRequest */]);\r\n }\r\n arrForEach(objKeys(_headers), function (headerName) {\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](headerName, _headers[headerName]);\r\n });\r\n xhr.onreadystatechange = function () { return _self._xhrReadyStateChange(xhr, payload, payload[_DYN_LENGTH /* @min:%2elength */]); };\r\n xhr.onerror = function (event) { return _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, _formatErrorMessageXhr(xhr), event); };\r\n // compose an array of payloads\r\n var batch = _self._buffer[_DYN_BATCH_PAYLOADS /* @min:%2ebatchPayloads */](payload);\r\n xhr.send(batch);\r\n _self._buffer[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */](payload);\r\n }\r\n function _fetchKeepAliveSender(payload, isAsync) {\r\n if (isArray(payload)) {\r\n var payloadSize = payload[_DYN_LENGTH /* @min:%2elength */];\r\n for (var lp = 0; lp < payload[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n payloadSize += payload[lp][_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n if ((_syncFetchPayload + payloadSize) <= FetchSyncRequestSizeLimitBytes) {\r\n _doFetchSender(payload, false);\r\n }\r\n else if (isBeaconsSupported()) {\r\n // Fallback to beacon sender as we at least get told which events can't be scheduled\r\n _beaconSender(payload, isAsync);\r\n }\r\n else {\r\n // Payload is going to be too big so just try and send via XHR\r\n _fallbackSender && _fallbackSender(payload, true);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" + \"Failed to send telemetry with Beacon API, retried with xhrSender.\");\r\n }\r\n }\r\n }\r\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 */\r\n function _fetchSender(payload, isAsync) {\r\n _doFetchSender(payload, true);\r\n }\r\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 */\r\n function _doFetchSender(payload, isAsync) {\r\n var _a;\r\n var endPointUrl = _self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */]();\r\n var batch = _self._buffer[_DYN_BATCH_PAYLOADS /* @min:%2ebatchPayloads */](payload);\r\n var plainTextBatch = new Blob([batch], { type: \"application/json\" });\r\n var requestHeaders = new Headers();\r\n var batchLength = batch[_DYN_LENGTH /* @min:%2elength */];\r\n var ignoreResponse = false;\r\n var responseHandled = false;\r\n // append Sdk-Context request header only in case of breeze endpoint\r\n if (isInternalApplicationInsightsEndpoint(endPointUrl)) {\r\n requestHeaders.append(RequestHeaders[6 /* eRequestHeaders.sdkContextHeader */], RequestHeaders[7 /* eRequestHeaders.sdkContextHeaderAppIdRequest */]);\r\n }\r\n arrForEach(objKeys(_headers), function (headerName) {\r\n requestHeaders.append(headerName, _headers[headerName]);\r\n });\r\n var init = (_a = {\r\n method: \"POST\",\r\n headers: requestHeaders,\r\n body: plainTextBatch\r\n },\r\n _a[DisabledPropertyName] = true // Mark so we don't attempt to track this request\r\n ,\r\n _a);\r\n if (!isAsync) {\r\n init.keepalive = true;\r\n // As a sync request (during unload), it is unlikely that we will get a chance to process the response so\r\n // just like beacon send assume that the events have been accepted and processed\r\n ignoreResponse = true;\r\n _syncFetchPayload += batchLength;\r\n }\r\n var request = new Request(endPointUrl, init);\r\n try {\r\n // Also try and tag the request (just in case the value in init is not copied over)\r\n request[DisabledPropertyName] = true;\r\n }\r\n catch (e) {\r\n // If the environment has locked down the XMLHttpRequest (preventExtensions and/or freeze), this would\r\n // cause the request to fail and we no telemetry would be sent\r\n }\r\n _self._buffer[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */](payload);\r\n try {\r\n fetch(request).then(function (response) {\r\n if (!isAsync) {\r\n _syncFetchPayload -= batchLength;\r\n batchLength = 0;\r\n }\r\n if (!responseHandled) {\r\n responseHandled = true;\r\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 */\r\n if (!response.ok) {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, response.statusText);\r\n }\r\n else {\r\n response.text().then(function (text) {\r\n _checkResponsStatus(response.status, payload, response.url, payload[_DYN_LENGTH /* @min:%2elength */], response.statusText, text);\r\n });\r\n }\r\n }\r\n })[\"catch\"](function (error) {\r\n if (!isAsync) {\r\n _syncFetchPayload -= batchLength;\r\n batchLength = 0;\r\n }\r\n if (!responseHandled) {\r\n responseHandled = true;\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, error.message);\r\n }\r\n });\r\n }\r\n catch (e) {\r\n if (!responseHandled) {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, dumpObj(e));\r\n }\r\n }\r\n if (ignoreResponse && !responseHandled) {\r\n // Assume success during unload processing as we most likely won't get the response\r\n responseHandled = true;\r\n _self._onSuccess(payload, payload[_DYN_LENGTH /* @min:%2elength */]);\r\n }\r\n }\r\n /**\r\n * Parses the response from the backend.\r\n * @param response - XMLHttpRequest or XDomainRequest response\r\n */\r\n function _parseResponse(response) {\r\n try {\r\n if (response && response !== \"\") {\r\n var result = getJSON().parse(response);\r\n if (result && result.itemsReceived && result.itemsReceived >= result[_DYN_ITEMS_ACCEPTED /* @min:%2eitemsAccepted */] &&\r\n result.itemsReceived - result.itemsAccepted === result.errors[_DYN_LENGTH /* @min:%2elength */]) {\r\n return result;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 43 /* _eInternalMessageId.InvalidBackendResponse */, \"Cannot parse the response. \" + getExceptionName(e), {\r\n response: response\r\n });\r\n }\r\n return null;\r\n }\r\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 */\r\n function _resendPayload(payload, linearFactor) {\r\n if (linearFactor === void 0) { linearFactor = 1; }\r\n if (!payload || payload[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n return;\r\n }\r\n var buffer = _self[_DYN__BUFFER /* @min:%2e_buffer */];\r\n buffer[_DYN_CLEAR_SENT /* @min:%2eclearSent */](payload);\r\n _consecutiveErrors++;\r\n for (var _i = 0, payload_1 = payload; _i < payload_1.length; _i++) {\r\n var item = payload_1[_i];\r\n buffer[_DYN_ENQUEUE /* @min:%2eenqueue */](item);\r\n }\r\n // setup timer\r\n _setRetryTime(linearFactor);\r\n _setupTimer();\r\n }\r\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 */\r\n function _setRetryTime(linearFactor) {\r\n var SlotDelayInSeconds = 10;\r\n var delayInSeconds;\r\n if (_consecutiveErrors <= 1) {\r\n delayInSeconds = SlotDelayInSeconds;\r\n }\r\n else {\r\n var backOffSlot = (Math.pow(2, _consecutiveErrors) - 1) / 2;\r\n // tslint:disable-next-line:insecure-random\r\n var backOffDelay = Math.floor(Math.random() * backOffSlot * SlotDelayInSeconds) + 1;\r\n backOffDelay = linearFactor * backOffDelay;\r\n delayInSeconds = Math.max(Math.min(backOffDelay, 3600), SlotDelayInSeconds);\r\n }\r\n // TODO: Log the backoff time like the C# version does.\r\n var retryAfterTimeSpan = dateNow() + (delayInSeconds * 1000);\r\n // TODO: Log the retry at time like the C# version does.\r\n _retryAt = retryAfterTimeSpan;\r\n }\r\n /**\r\n * Sets up the timer which triggers actually sending the data.\r\n */\r\n function _setupTimer() {\r\n if (!_timeoutHandle && !_paused) {\r\n var retryInterval = _retryAt ? Math.max(0, _retryAt - dateNow()) : 0;\r\n var timerValue = Math.max(_self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][_DYN_MAX_BATCH_INTERVAL /* @min:%2emaxBatchInterval */](), retryInterval);\r\n _timeoutHandle = setTimeout(function () {\r\n _timeoutHandle = null;\r\n _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](true, null, 1 /* SendRequestReason.NormalSchedule */);\r\n }, timerValue);\r\n }\r\n }\r\n function _clearScheduledTimer() {\r\n clearTimeout(_timeoutHandle);\r\n _timeoutHandle = null;\r\n _retryAt = null;\r\n }\r\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 */\r\n function _isRetriable(statusCode) {\r\n return statusCode === 401 // Unauthorized\r\n || statusCode === 403 // Forbidden\r\n || statusCode === 408 // Timeout\r\n || statusCode === 429 // Too many requests.\r\n || statusCode === 500 // Internal server error.\r\n || statusCode === 502 // Bad Gateway.\r\n || statusCode === 503 // Service unavailable.\r\n || statusCode === 504; // Gateway timeout.\r\n }\r\n function _formatErrorMessageXhr(xhr, message) {\r\n if (xhr) {\r\n return \"XMLHttpRequest,Status:\" + xhr.status + \",Response:\" + _getResponseText(xhr) || xhr.response || \"\";\r\n }\r\n return message;\r\n }\r\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 */\r\n function _xdrSender(payload, isAsync) {\r\n var buffer = _self[_DYN__BUFFER /* @min:%2e_buffer */];\r\n var _window = getWindow();\r\n var xdr = new XDomainRequest();\r\n xdr.onload = function () { return _self._xdrOnLoad(xdr, payload); };\r\n xdr.onerror = function (event) { return _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, _formatErrorMessageXdr(xdr), event); };\r\n // XDomainRequest requires the same protocol as the hosting page.\r\n // If the protocol doesn't match, we can't send the telemetry :(.\r\n var hostingProtocol = _window && _window.location && _window.location.protocol || \"\";\r\n if (_self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */]().lastIndexOf(hostingProtocol, 0) !== 0) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" +\r\n \"Cannot send XDomain request. The endpoint URL protocol doesn't match the hosting page protocol.\");\r\n buffer[_DYN_CLEAR /* @min:%2eclear */]();\r\n return;\r\n }\r\n var endpointUrl = _self[_DYN__SENDER_CONFIG /* @min:%2e_senderConfig */][_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */]().replace(/^(https?:)/, \"\");\r\n xdr.open(\"POST\", endpointUrl);\r\n // compose an array of payloads\r\n var batch = buffer[_DYN_BATCH_PAYLOADS /* @min:%2ebatchPayloads */](payload);\r\n xdr.send(batch);\r\n buffer[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */](payload);\r\n }\r\n function _formatErrorMessageXdr(xdr, message) {\r\n if (xdr) {\r\n return \"XDomainRequest,Response:\" + _getResponseText(xdr) || \"\";\r\n }\r\n return message;\r\n }\r\n // Using function lookups for backward compatibility as the getNotifyMgr() did not exist until after v2.5.6\r\n function _getNotifyMgr() {\r\n var func = \"getNotifyMgr\";\r\n if (_self.core[func]) {\r\n return _self.core[func]();\r\n }\r\n // using _self.core['_notificationManager'] for backward compatibility\r\n return _self.core[\"_notificationManager\"];\r\n }\r\n function _notifySendRequest(sendRequest, isAsync) {\r\n var manager = _getNotifyMgr();\r\n if (manager && manager[_DYN_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */]) {\r\n try {\r\n manager[_DYN_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */](sendRequest, isAsync);\r\n }\r\n catch (e) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 74 /* _eInternalMessageId.NotificationException */, \"send request notification failed: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n }\r\n /**\r\n * Validate UUID Format\r\n * Specs taken from https://tools.ietf.org/html/rfc4122 and breeze repo\r\n */\r\n function _validateInstrumentationKey(config) {\r\n var disableIKeyValidationFlag = isNullOrUndefined(config[_DYN_DISABLE_INSTRUMENTAT7 /* @min:%2edisableInstrumentationKeyValidation */]) ? false : config[_DYN_DISABLE_INSTRUMENTAT7 /* @min:%2edisableInstrumentationKeyValidation */];\r\n if (disableIKeyValidationFlag) {\r\n return true;\r\n }\r\n var UUID_Regex = \"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$\";\r\n var regexp = new RegExp(UUID_Regex);\r\n return regexp.test(config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */]);\r\n }\r\n function _initDefaults() {\r\n _self[_DYN__SENDER /* @min:%2e_sender */] = null;\r\n _self[_DYN__BUFFER /* @min:%2e_buffer */] = null;\r\n _self._appId = null;\r\n _self._sample = null;\r\n _headers = {};\r\n _offlineListener = null;\r\n _consecutiveErrors = 0;\r\n _retryAt = null;\r\n _lastSend = null;\r\n _paused = false;\r\n _timeoutHandle = null;\r\n _serializer = null;\r\n _stamp_specific_redirects = 0;\r\n _syncFetchPayload = 0;\r\n _fallbackSender = null;\r\n _syncUnloadSender = null;\r\n _evtNamespace = null;\r\n }\r\n });\r\n return _this;\r\n }\r\n Sender.constructEnvelope = function (orig, iKey, logger, convertUndefined) {\r\n var envelope;\r\n if (iKey !== orig.iKey && !isNullOrUndefined(iKey)) {\r\n envelope = __assign(__assign({}, orig), { iKey: iKey });\r\n }\r\n else {\r\n envelope = orig;\r\n }\r\n var creator = EnvelopeTypeCreator[envelope.baseType] || EventEnvelopeCreator;\r\n return creator(logger, envelope, convertUndefined);\r\n };\r\n// Removed Stub for Sender.prototype.pause.\r\n// Removed Stub for Sender.prototype.resume.\r\n// Removed Stub for Sender.prototype.flush.\r\n// Removed Stub for Sender.prototype.onunloadFlush.\r\n// Removed Stub for Sender.prototype.initialize.\r\n// Removed Stub for Sender.prototype.processTelemetry.\r\n// Removed Stub for Sender.prototype._xhrReadyStateChange.\r\n// Removed Stub for Sender.prototype.triggerSend.\r\n// Removed Stub for Sender.prototype._onError.\r\n// Removed Stub for Sender.prototype._onPartialSuccess.\r\n// Removed Stub for Sender.prototype._onSuccess.\r\n// Removed Stub for Sender.prototype._xdrOnLoad.\r\n// Removed Stub for Sender.prototype.addHeader.\r\n return Sender;\r\n}(BaseTelemetryPlugin));\r\nexport { Sender };\r\n//# sourceMappingURL=Sender.js.map","/*\n * Application Insights JavaScript SDK - Channel, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { _throwInternal, getJSON, isArray, isFunction, isObject, objForEachKey } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_LENGTH, _DYN_PUSH, _DYN_STRINGIFY, _DYN_TO_STRING } from \"./__DynamicConstants\";\r\nvar Serializer = /** @class */ (function () {\r\n function Serializer(logger) {\r\n dynamicProto(Serializer, this, function (_self) {\r\n /**\r\n * Serializes the current object to a JSON string.\r\n */\r\n _self.serialize = function (input) {\r\n var output = _serializeObject(input, \"root\");\r\n try {\r\n return getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](output);\r\n }\r\n catch (e) {\r\n // if serialization fails return an empty string\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.CannotSerializeObject */, (e && isFunction(e[_DYN_TO_STRING /* @min:%2etoString */])) ? e[_DYN_TO_STRING /* @min:%2etoString */]() : \"Error serializing object\", null, true);\r\n }\r\n };\r\n function _serializeObject(source, name) {\r\n var circularReferenceCheck = \"__aiCircularRefCheck\";\r\n var output = {};\r\n if (!source) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.CannotSerializeObject */, \"cannot serialize object because it is null or undefined\", { name: name }, true);\r\n return output;\r\n }\r\n if (source[circularReferenceCheck]) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 50 /* _eInternalMessageId.CircularReferenceDetected */, \"Circular reference detected while serializing object\", { name: name }, true);\r\n return output;\r\n }\r\n if (!source.aiDataContract) {\r\n // special case for measurements/properties/tags\r\n if (name === \"measurements\") {\r\n output = _serializeStringMap(source, \"number\", name);\r\n }\r\n else if (name === \"properties\") {\r\n output = _serializeStringMap(source, \"string\", name);\r\n }\r\n else if (name === \"tags\") {\r\n output = _serializeStringMap(source, \"string\", name);\r\n }\r\n else if (isArray(source)) {\r\n output = _serializeArray(source, name);\r\n }\r\n else {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 49 /* _eInternalMessageId.CannotSerializeObjectNonSerializable */, \"Attempting to serialize an object which does not implement ISerializable\", { name: name }, true);\r\n try {\r\n // verify that the object can be stringified\r\n getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](source);\r\n output = source;\r\n }\r\n catch (e) {\r\n // if serialization fails return an empty string\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.CannotSerializeObject */, (e && isFunction(e[_DYN_TO_STRING /* @min:%2etoString */])) ? e[_DYN_TO_STRING /* @min:%2etoString */]() : \"Error serializing object\", null, true);\r\n }\r\n }\r\n return output;\r\n }\r\n source[circularReferenceCheck] = true;\r\n objForEachKey(source.aiDataContract, function (field, contract) {\r\n var isRequired = (isFunction(contract)) ? (contract() & 1 /* FieldType.Required */) : (contract & 1 /* FieldType.Required */);\r\n var isHidden = (isFunction(contract)) ? (contract() & 4 /* FieldType.Hidden */) : (contract & 4 /* FieldType.Hidden */);\r\n var isArray = contract & 2 /* FieldType.Array */;\r\n var isPresent = source[field] !== undefined;\r\n var isObj = isObject(source[field]) && source[field] !== null;\r\n if (isRequired && !isPresent && !isArray) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 24 /* _eInternalMessageId.MissingRequiredFieldSpecification */, \"Missing required field specification. The field is required but not present on source\", { field: field, name: name });\r\n // If not in debug mode, continue and hope the error is permissible\r\n }\r\n else if (!isHidden) { // Don't serialize hidden fields\r\n var value = void 0;\r\n if (isObj) {\r\n if (isArray) {\r\n // special case; recurse on each object in the source array\r\n value = _serializeArray(source[field], field);\r\n }\r\n else {\r\n // recurse on the source object in this field\r\n value = _serializeObject(source[field], field);\r\n }\r\n }\r\n else {\r\n // assign the source field to the output even if undefined or required\r\n value = source[field];\r\n }\r\n // only emit this field if the value is defined\r\n if (value !== undefined) {\r\n output[field] = value;\r\n }\r\n }\r\n });\r\n delete source[circularReferenceCheck];\r\n return output;\r\n }\r\n function _serializeArray(sources, name) {\r\n var output;\r\n if (!!sources) {\r\n if (!isArray(sources)) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 54 /* _eInternalMessageId.ItemNotInArray */, \"This field was specified as an array in the contract but the item is not an array.\\r\\n\", { name: name }, true);\r\n }\r\n else {\r\n output = [];\r\n for (var i = 0; i < sources[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n var source = sources[i];\r\n var item = _serializeObject(source, name + \"[\" + i + \"]\");\r\n output[_DYN_PUSH /* @min:%2epush */](item);\r\n }\r\n }\r\n }\r\n return output;\r\n }\r\n function _serializeStringMap(map, expectedType, name) {\r\n var output;\r\n if (map) {\r\n output = {};\r\n objForEachKey(map, function (field, value) {\r\n if (expectedType === \"string\") {\r\n if (value === undefined) {\r\n output[field] = \"undefined\";\r\n }\r\n else if (value === null) {\r\n output[field] = \"null\";\r\n }\r\n else if (!value[_DYN_TO_STRING /* @min:%2etoString */]) {\r\n output[field] = \"invalid field: toString() is not defined.\";\r\n }\r\n else {\r\n output[field] = value[_DYN_TO_STRING /* @min:%2etoString */]();\r\n }\r\n }\r\n else if (expectedType === \"number\") {\r\n if (value === undefined) {\r\n output[field] = \"undefined\";\r\n }\r\n else if (value === null) {\r\n output[field] = \"null\";\r\n }\r\n else {\r\n var num = parseFloat(value);\r\n if (isNaN(num)) {\r\n output[field] = \"NaN\";\r\n }\r\n else {\r\n output[field] = num;\r\n }\r\n }\r\n }\r\n else {\r\n output[field] = \"invalid field: \" + name + \" is of unknown type.\";\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, output[field], null, true);\r\n }\r\n });\r\n }\r\n return output;\r\n }\r\n });\r\n }\r\n// Removed Stub for Serializer.prototype.serialize.\r\n // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n // this will be removed when ES3 support is dropped.\n Serializer.__ieDyn=1;\n\n return Serializer;\r\n}());\r\nexport { Serializer };\r\n//# sourceMappingURL=Serializer.js.map","/*\n * Application Insights JavaScript SDK - Channel, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { _DYN_LENGTH } from \"../../__DynamicConstants\";\r\n// (Magic number) DJB algorithm can't work on shorter strings (results in poor distribution\r\nvar MIN_INPUT_LENGTH = 8;\r\nvar HashCodeScoreGenerator = /** @class */ (function () {\r\n function HashCodeScoreGenerator() {\r\n }\r\n HashCodeScoreGenerator.prototype.getHashCodeScore = function (key) {\r\n var score = this.getHashCode(key) / HashCodeScoreGenerator.INT_MAX_VALUE;\r\n return score * 100;\r\n };\r\n HashCodeScoreGenerator.prototype.getHashCode = function (input) {\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n while (input[_DYN_LENGTH /* @min:%2elength */] < MIN_INPUT_LENGTH) {\r\n input = input.concat(input);\r\n }\r\n // 5381 is a magic number: http://stackoverflow.com/questions/10696223/reason-for-5381-number-in-djb-hash-function\r\n var hash = 5381;\r\n for (var i = 0; i < input[_DYN_LENGTH /* @min:%2elength */]; ++i) {\r\n hash = ((hash << 5) + hash) + input.charCodeAt(i);\r\n // '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)\r\n // 'hash & hash' will keep it 32 bit integer - just to make it clearer what the result is.\r\n hash = hash & hash;\r\n }\r\n return Math.abs(hash);\r\n };\r\n // We're using 32 bit math, hence max value is (2^31 - 1)\r\n HashCodeScoreGenerator.INT_MAX_VALUE = 2147483647;\r\n return HashCodeScoreGenerator;\r\n}());\r\nexport { HashCodeScoreGenerator };\r\n//# sourceMappingURL=HashCodeScoreGenerator.js.map","/*\n * Application Insights JavaScript SDK - Channel, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { ContextTagKeys } from \"@microsoft/applicationinsights-common\";\r\nimport { _DYN_GET_HASH_CODE_SCORE, _DYN_GET_SAMPLING_SCORE, _DYN_TAGS, _DYN_TRACE_ID } from \"../../__DynamicConstants\";\r\nimport { HashCodeScoreGenerator } from \"./HashCodeScoreGenerator\";\r\nvar SamplingScoreGenerator = /** @class */ (function () {\r\n function SamplingScoreGenerator() {\r\n var _self = this;\r\n var hashCodeGenerator = new HashCodeScoreGenerator();\r\n var keys = new ContextTagKeys();\r\n _self[_DYN_GET_SAMPLING_SCORE /* @min:%2egetSamplingScore */] = function (item) {\r\n var score = 0;\r\n if (item[_DYN_TAGS /* @min:%2etags */] && item[_DYN_TAGS /* @min:%2etags */][keys.userId]) { // search in tags first, then ext\r\n score = hashCodeGenerator.getHashCodeScore(item[_DYN_TAGS /* @min:%2etags */][keys.userId]);\r\n }\r\n else if (item.ext && item.ext.user && item.ext.user.id) {\r\n score = hashCodeGenerator[_DYN_GET_HASH_CODE_SCORE /* @min:%2egetHashCodeScore */](item.ext.user.id);\r\n }\r\n else if (item[_DYN_TAGS /* @min:%2etags */] && item[_DYN_TAGS /* @min:%2etags */][keys.operationId]) { // search in tags first, then ext\r\n score = hashCodeGenerator.getHashCodeScore(item[_DYN_TAGS /* @min:%2etags */][keys.operationId]);\r\n }\r\n else if (item.ext && item.ext.telemetryTrace && item.ext.telemetryTrace[_DYN_TRACE_ID /* @min:%2etraceID */]) {\r\n score = hashCodeGenerator.getHashCodeScore(item.ext.telemetryTrace[_DYN_TRACE_ID /* @min:%2etraceID */]);\r\n }\r\n else {\r\n // tslint:disable-next-line:insecure-random\r\n score = (Math.random() * 100);\r\n }\r\n return score;\r\n };\r\n }\r\n return SamplingScoreGenerator;\r\n}());\r\nexport { SamplingScoreGenerator };\r\n//# sourceMappingURL=SamplingScoreGenerator.js.map","/*\n * Application Insights JavaScript SDK - Channel, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { Metric } from \"@microsoft/applicationinsights-common\";\r\nimport { safeGetLogger } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_DATA_TYPE, _DYN_GET_SAMPLING_SCORE, _DYN_SAMPLE_RATE } from \"../__DynamicConstants\";\r\nimport { SamplingScoreGenerator } from \"./SamplingScoreGenerators/SamplingScoreGenerator\";\r\nvar Sample = /** @class */ (function () {\r\n function Sample(sampleRate, logger) {\r\n // We're using 32 bit math, hence max value is (2^31 - 1)\r\n this.INT_MAX_VALUE = 2147483647;\r\n var _logger = logger || safeGetLogger(null);\r\n if (sampleRate > 100 || sampleRate < 0) {\r\n _logger.throwInternal(2 /* eLoggingSeverity.WARNING */, 58 /* _eInternalMessageId.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.\", { samplingRate: sampleRate }, true);\r\n sampleRate = 100;\r\n }\r\n this[_DYN_SAMPLE_RATE /* @min:%2esampleRate */] = sampleRate;\r\n this.samplingScoreGenerator = new SamplingScoreGenerator();\r\n }\r\n /**\r\n * Determines if an envelope is sampled in (i.e. will be sent) or not (i.e. will be dropped).\r\n */\r\n Sample.prototype.isSampledIn = function (envelope) {\r\n var samplingPercentage = this[_DYN_SAMPLE_RATE /* @min:%2esampleRate */]; // 0 - 100\r\n var isSampledIn = false;\r\n if (samplingPercentage === null || samplingPercentage === undefined || samplingPercentage >= 100) {\r\n return true;\r\n }\r\n else if (envelope.baseType === Metric[_DYN_DATA_TYPE /* @min:%2edataType */]) {\r\n // exclude MetricData telemetry from sampling\r\n return true;\r\n }\r\n isSampledIn = this.samplingScoreGenerator[_DYN_GET_SAMPLING_SCORE /* @min:%2egetSamplingScore */](envelope) < samplingPercentage;\r\n return isSampledIn;\r\n };\r\n return Sample;\r\n}());\r\nexport { Sample };\r\n//# sourceMappingURL=Sample.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrReduce, objKeys } from \"@microsoft/applicationinsights-core-js\";\r\nimport { DEFAULT_BREEZE_ENDPOINT } from \"./Constants\";\r\nimport { _DYN_INGESTIONENDPOINT, _DYN_LENGTH, _DYN_SPLIT, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\nvar _FIELDS_SEPARATOR = \";\";\r\nvar _FIELD_KEY_VALUE_SEPARATOR = \"=\";\r\nexport function parseConnectionString(connectionString) {\r\n if (!connectionString) {\r\n return {};\r\n }\r\n var kvPairs = connectionString[_DYN_SPLIT /* @min:%2esplit */](_FIELDS_SEPARATOR);\r\n var result = arrReduce(kvPairs, function (fields, kv) {\r\n var kvParts = kv[_DYN_SPLIT /* @min:%2esplit */](_FIELD_KEY_VALUE_SEPARATOR);\r\n if (kvParts[_DYN_LENGTH /* @min:%2elength */] === 2) { // only save fields with valid formats\r\n var key = kvParts[0][_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n var value = kvParts[1];\r\n fields[key] = value;\r\n }\r\n return fields;\r\n }, {});\r\n if (objKeys(result)[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n // this is a valid connection string, so parse the results\r\n if (result.endpointsuffix) {\r\n // use endpoint suffix where overrides are not provided\r\n var locationPrefix = result.location ? result.location + \".\" : \"\";\r\n result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] = result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] || (\"https://\" + locationPrefix + \"dc.\" + result.endpointsuffix);\r\n }\r\n // apply the default endpoints\r\n result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] = result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] || DEFAULT_BREEZE_ENDPOINT;\r\n }\r\n return result;\r\n}\r\nexport var ConnectionStringParser = {\r\n parse: parseConnectionString\r\n};\r\n//# sourceMappingURL=ConnectionStringParser.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { createEnumStyle } from \"@microsoft/applicationinsights-core-js\";\r\n/**\r\n * Defines the level of severity for the event.\r\n */\r\nexport var SeverityLevel = createEnumStyle({\r\n Verbose: 0 /* eSeverityLevel.Verbose */,\r\n Information: 1 /* eSeverityLevel.Information */,\r\n Warning: 2 /* eSeverityLevel.Warning */,\r\n Error: 3 /* eSeverityLevel.Error */,\r\n Critical: 4 /* eSeverityLevel.Critical */\r\n});\r\n//# sourceMappingURL=SeverityLevel.js.map","/*\n * Application Insights JavaScript SDK - Common, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { isNullOrUndefined } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_EXTENSION_CONFIG } from \"../__DynamicConstants\";\r\nvar ConfigurationManager = /** @class */ (function () {\r\n function ConfigurationManager() {\r\n }\r\n ConfigurationManager.getConfig = function (config, field, identifier, defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = false; }\r\n var configValue;\r\n if (identifier && config[_DYN_EXTENSION_CONFIG /* @min:%2eextensionConfig */] && config[_DYN_EXTENSION_CONFIG /* @min:%2eextensionConfig */][identifier] && !isNullOrUndefined(config[_DYN_EXTENSION_CONFIG /* @min:%2eextensionConfig */][identifier][field])) {\r\n configValue = config[_DYN_EXTENSION_CONFIG /* @min:%2eextensionConfig */][identifier][field];\r\n }\r\n else {\r\n configValue = config[field];\r\n }\r\n return !isNullOrUndefined(configValue) ? configValue : defaultValue;\r\n };\r\n return ConfigurationManager;\r\n}());\r\nexport { ConfigurationManager };\r\n//# sourceMappingURL=IConfig.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n// \r\nimport { _DYN_CONFIG, _DYN_CREATE_NEW, _DYN_FLUSH, _DYN_IDENTIFIER, _DYN_LENGTH, _DYN_ON_COMPLETE, _DYN_PROCESS_NEXT, _DYN_PUSH } from \"../__DynamicConstants\";\r\nimport { arrForEach, isArray, objFreeze, throwError } from \"./HelperFuncs\";\r\nimport { STR_PRIORITY } from \"./InternalConstants\";\r\nimport { createProcessTelemetryContext, createTelemetryProxyChain } from \"./ProcessTelemetryContext\";\r\nimport { initializePlugins } from \"./TelemetryHelpers\";\r\nexport var ChannelControllerPriority = 500;\r\nvar ChannelValidationMessage = \"Channel has invalid priority - \";\r\nfunction _addChannelQueue(channelQueue, queue, core) {\r\n if (queue && isArray(queue) && queue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n queue = queue.sort(function (a, b) {\r\n return a[STR_PRIORITY /* @min:%2epriority */] - b[STR_PRIORITY /* @min:%2epriority */];\r\n });\r\n arrForEach(queue, function (queueItem) {\r\n if (queueItem[STR_PRIORITY /* @min:%2epriority */] < ChannelControllerPriority) {\r\n throwError(ChannelValidationMessage + queueItem[_DYN_IDENTIFIER /* @min:%2eidentifier */]);\r\n }\r\n });\r\n channelQueue[_DYN_PUSH /* @min:%2epush */]({\r\n queue: objFreeze(queue),\r\n chain: createTelemetryProxyChain(queue, core[_DYN_CONFIG /* @min:%2econfig */], core)\r\n });\r\n }\r\n}\r\nexport function createChannelControllerPlugin(channelQueue, core) {\r\n function _getTelCtx() {\r\n return createProcessTelemetryContext(null, core[_DYN_CONFIG /* @min:%2econfig */], core, null);\r\n }\r\n function _processChannelQueue(theChannels, itemCtx, processFn, onComplete) {\r\n var waiting = theChannels ? (theChannels[_DYN_LENGTH /* @min:%2elength */] + 1) : 1;\r\n function _runChainOnComplete() {\r\n waiting--;\r\n if (waiting === 0) {\r\n onComplete && onComplete();\r\n onComplete = null;\r\n }\r\n }\r\n if (waiting > 0) {\r\n arrForEach(theChannels, function (channels) {\r\n // pass on to first item in queue\r\n if (channels && channels.queue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var channelChain = channels.chain;\r\n var chainCtx = itemCtx[_DYN_CREATE_NEW /* @min:%2ecreateNew */](channelChain);\r\n chainCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](_runChainOnComplete);\r\n // Cause this chain to start processing\r\n processFn(chainCtx);\r\n }\r\n else {\r\n waiting--;\r\n }\r\n });\r\n }\r\n _runChainOnComplete();\r\n }\r\n function _doUpdate(updateCtx, updateState) {\r\n var theUpdateState = updateState || {\r\n reason: 0 /* TelemetryUpdateReason.Unknown */\r\n };\r\n _processChannelQueue(channelQueue, updateCtx, function (chainCtx) {\r\n chainCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](theUpdateState);\r\n }, function () {\r\n updateCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](theUpdateState);\r\n });\r\n return true;\r\n }\r\n function _doTeardown(unloadCtx, unloadState) {\r\n var theUnloadState = unloadState || {\r\n reason: 0 /* TelemetryUnloadReason.ManualTeardown */,\r\n isAsync: false\r\n };\r\n _processChannelQueue(channelQueue, unloadCtx, function (chainCtx) {\r\n chainCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](theUnloadState);\r\n }, function () {\r\n unloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](theUnloadState);\r\n isInitialized = false;\r\n });\r\n return true;\r\n }\r\n function _getChannel(pluginIdentifier) {\r\n var thePlugin = null;\r\n if (channelQueue && channelQueue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(channelQueue, function (channels) {\r\n // pass on to first item in queue\r\n if (channels && channels.queue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(channels.queue, function (ext) {\r\n if (ext[_DYN_IDENTIFIER /* @min:%2eidentifier */] === pluginIdentifier) {\r\n thePlugin = ext;\r\n // Cause arrForEach to stop iterating\r\n return -1;\r\n }\r\n });\r\n if (thePlugin) {\r\n // Cause arrForEach to stop iterating\r\n return -1;\r\n }\r\n }\r\n });\r\n }\r\n return thePlugin;\r\n }\r\n var isInitialized = false;\r\n var channelController = {\r\n identifier: \"ChannelControllerPlugin\",\r\n priority: ChannelControllerPriority,\r\n initialize: function (config, core, extensions, pluginChain) {\r\n isInitialized = true;\r\n arrForEach(channelQueue, function (channels) {\r\n if (channels && channels.queue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n initializePlugins(createProcessTelemetryContext(channels.chain, config, core), extensions);\r\n }\r\n });\r\n },\r\n isInitialized: function () {\r\n return isInitialized;\r\n },\r\n processTelemetry: function (item, itemCtx) {\r\n _processChannelQueue(channelQueue, itemCtx || _getTelCtx(), function (chainCtx) {\r\n chainCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](item);\r\n }, function () {\r\n itemCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](item);\r\n });\r\n },\r\n update: _doUpdate,\r\n pause: function () {\r\n _processChannelQueue(channelQueue, _getTelCtx(), function (chainCtx) {\r\n chainCtx.iterate(function (plugin) {\r\n plugin.pause && plugin.pause();\r\n });\r\n }, null);\r\n },\r\n resume: function () {\r\n _processChannelQueue(channelQueue, _getTelCtx(), function (chainCtx) {\r\n chainCtx.iterate(function (plugin) {\r\n plugin.resume && plugin.resume();\r\n });\r\n }, null);\r\n },\r\n teardown: _doTeardown,\r\n getChannel: _getChannel,\r\n flush: function (isAsync, callBack, sendReason, cbTimeout) {\r\n // Setting waiting to one so that we don't call the callBack until we finish iterating\r\n var waiting = 1;\r\n var doneIterating = false;\r\n var cbTimer = null;\r\n cbTimeout = cbTimeout || 5000;\r\n function doCallback() {\r\n waiting--;\r\n if (doneIterating && waiting === 0) {\r\n if (cbTimer) {\r\n clearTimeout(cbTimer);\r\n cbTimer = null;\r\n }\r\n callBack && callBack(doneIterating);\r\n callBack = null;\r\n }\r\n }\r\n _processChannelQueue(channelQueue, _getTelCtx(), function (chainCtx) {\r\n chainCtx.iterate(function (plugin) {\r\n if (plugin[_DYN_FLUSH /* @min:%2eflush */]) {\r\n waiting++;\r\n var handled_1 = false;\r\n // Not all channels will call this callback for every scenario\r\n if (!plugin[_DYN_FLUSH /* @min:%2eflush */](isAsync, function () {\r\n handled_1 = true;\r\n doCallback();\r\n }, sendReason)) {\r\n if (!handled_1) {\r\n // If any channel doesn't return true and it didn't call the callback, then we should assume that the callback\r\n // will never be called, so use a timeout to allow the channel(s) some time to \"finish\" before triggering any\r\n // followup function (such as unloading)\r\n if (isAsync && cbTimer == null) {\r\n cbTimer = setTimeout(function () {\r\n cbTimer = null;\r\n doCallback();\r\n }, cbTimeout);\r\n }\r\n else {\r\n doCallback();\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }, function () {\r\n doneIterating = true;\r\n doCallback();\r\n });\r\n return true;\r\n },\r\n _setQueue: function (queue) {\r\n channelQueue = queue;\r\n }\r\n };\r\n return channelController;\r\n}\r\nexport function createChannelQueues(channels, extensions, core) {\r\n var channelQueue = [];\r\n if (channels) {\r\n // Add and sort the configuration channel queues\r\n arrForEach(channels, function (queue) { return _addChannelQueue(channelQueue, queue, core); });\r\n }\r\n if (extensions) {\r\n // Create a new channel queue for any extensions with a priority > the ChannelControllerPriority\r\n var extensionQueue_1 = [];\r\n arrForEach(extensions, function (plugin) {\r\n if (plugin[STR_PRIORITY /* @min:%2epriority */] > ChannelControllerPriority) {\r\n extensionQueue_1[_DYN_PUSH /* @min:%2epush */](plugin);\r\n }\r\n });\r\n _addChannelQueue(channelQueue, extensionQueue_1, core);\r\n }\r\n return channelQueue;\r\n}\r\n//# sourceMappingURL=ChannelController.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n// \r\n// \r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { _DYN_APPLY, _DYN_DIAG_LOG, _DYN_LENGTH, _DYN_PROCESS_NEXT, _DYN_PUSH, _DYN_SPLICE, _DYN__DO_TEARDOWN } from \"../__DynamicConstants\";\r\nimport { BaseTelemetryPlugin } from \"./BaseTelemetryPlugin\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nimport { dumpObj } from \"./EnvUtils\";\r\nimport { arrForEach, getExceptionName } from \"./HelperFuncs\";\r\nimport { STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nvar TelemetryInitializerPlugin = /** @class */ (function (_super) {\r\n __extends(TelemetryInitializerPlugin, _super);\r\n function TelemetryInitializerPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = \"TelemetryInitializerPlugin\";\r\n _this.priority = 199;\r\n // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n var _id;\r\n var _initializers;\r\n _initDefaults();\r\n dynamicProto(TelemetryInitializerPlugin, _this, function (_self, _base) {\r\n _self.addTelemetryInitializer = function (telemetryInitializer) {\r\n var theInitializer = {\r\n id: _id++,\r\n fn: telemetryInitializer\r\n };\r\n _initializers[_DYN_PUSH /* @min:%2epush */](theInitializer);\r\n var handler = {\r\n remove: function () {\r\n arrForEach(_initializers, function (initializer, idx) {\r\n if (initializer.id === theInitializer.id) {\r\n _initializers[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n return -1;\r\n }\r\n });\r\n }\r\n };\r\n return handler;\r\n };\r\n _self[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */] = function (item, itemCtx) {\r\n var doNotSendItem = false;\r\n var telemetryInitializersCount = _initializers[_DYN_LENGTH /* @min:%2elength */];\r\n for (var i = 0; i < telemetryInitializersCount; ++i) {\r\n var telemetryInitializer = _initializers[i];\r\n if (telemetryInitializer) {\r\n try {\r\n if (telemetryInitializer.fn[_DYN_APPLY /* @min:%2eapply */](null, [item]) === false) {\r\n doNotSendItem = true;\r\n break;\r\n }\r\n }\r\n catch (e) {\r\n // log error but dont stop executing rest of the telemetry initializers\r\n // doNotSendItem = true;\r\n _throwInternal(itemCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, \"One of telemetry initializers failed, telemetry item will not be sent: \" + getExceptionName(e), { exception: dumpObj(e) }, true);\r\n }\r\n }\r\n }\r\n if (!doNotSendItem) {\r\n _self[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](item, itemCtx);\r\n }\r\n };\r\n _self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */] = function () {\r\n _initDefaults();\r\n };\r\n });\r\n function _initDefaults() {\r\n _id = 0;\r\n _initializers = [];\r\n }\r\n return _this;\r\n }\r\n// Removed Stub for TelemetryInitializerPlugin.prototype.addTelemetryInitializer.\r\n// Removed Stub for TelemetryInitializerPlugin.prototype.processTelemetry.\r\n // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n // this will be removed when ES3 support is dropped.\n TelemetryInitializerPlugin.__ieDyn=1;\n\n return TelemetryInitializerPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport { TelemetryInitializerPlugin };\r\n//# sourceMappingURL=TelemetryInitializerPlugin.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { __spreadArrayFn as __spreadArray } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { objCreateFn } from \"@microsoft/applicationinsights-shims\";\r\nimport { _DYN_ADD_NOTIFICATION_LIS1, _DYN_CONFIG, _DYN_FLUSH, _DYN_GET_NOTIFY_MGR, _DYN_GET_PLUGIN, _DYN_GET_PROCESS_TEL_CONT0, _DYN_IDENTIFIER, _DYN_INITIALIZE, _DYN_INSTRUMENTATION_KEY, _DYN_IS_ASYNC, _DYN_IS_INITIALIZED, _DYN_LENGTH, _DYN_LOGGER, _DYN_MESSAGE, _DYN_MESSAGE_ID, _DYN_NAME, _DYN_ON_COMPLETE, _DYN_PROCESS_NEXT, _DYN_PUSH, _DYN_REMOVE_NOTIFICATION_2, _DYN_SET_ENABLED, _DYN_SPLICE, _DYN_STOP_POLLING_INTERNA3, _DYN_TEARDOWN, _DYN_TIME, _DYN__EXTENSIONS } from \"../__DynamicConstants\";\r\nimport { ChannelControllerPriority, createChannelControllerPlugin, createChannelQueues } from \"./ChannelController\";\r\nimport { createCookieMgr } from \"./CookieMgr\";\r\nimport { createUniqueNamespace } from \"./DataCacheHelper\";\r\nimport { getDebugListener } from \"./DbgExtensionUtils\";\r\nimport { DiagnosticLogger, _InternalLogMessage, _throwInternal, _warnToConsole } from \"./DiagnosticLogger\";\r\nimport { arrForEach, arrIndexOf, getCfgValue, getSetValue, isFunction, isNullOrUndefined, objExtend, objFreeze, proxyFunctionAs, proxyFunctions, throwError, toISOString } from \"./HelperFuncs\";\r\nimport { STR_CHANNELS, STR_CORE, STR_CREATE_PERF_MGR, STR_DISABLED, STR_EVENTS_DISCARDED, STR_EVENTS_SEND_REQUEST, STR_EVENTS_SENT, STR_EXTENSIONS, STR_EXTENSION_CONFIG, STR_GET_PERF_MGR, STR_PRIORITY } from \"./InternalConstants\";\r\nimport { PerfManager, getGblPerfMgr } from \"./PerfManager\";\r\nimport { createProcessTelemetryContext, createProcessTelemetryUnloadContext, createProcessTelemetryUpdateContext, createTelemetryProxyChain } from \"./ProcessTelemetryContext\";\r\nimport { _getPluginState, createDistributedTraceContext, initializePlugins, sortPlugins } from \"./TelemetryHelpers\";\r\nimport { TelemetryInitializerPlugin } from \"./TelemetryInitializerPlugin\";\r\nimport { createUnloadHandlerContainer } from \"./UnloadHandlerContainer\";\r\nvar strValidationError = \"Plugins must provide initialize method\";\r\nvar strNotificationManager = \"_notificationManager\";\r\nvar strSdkUnloadingError = \"SDK is still unloading...\";\r\nvar strSdkNotInitialized = \"SDK is not initialized\";\r\n// const strPluginUnloadFailed = \"Failed to unload plugin\";\r\nvar defaultInitConfig = {\r\n // Have the Diagnostic Logger default to log critical errors to the console\r\n loggingLevelConsole: 1 /* eLoggingSeverity.CRITICAL */\r\n};\r\n/**\r\n * Helper to create the default performance manager\r\n * @param core\r\n * @param notificationMgr\r\n */\r\nfunction _createPerfManager(core, notificationMgr) {\r\n return new PerfManager(notificationMgr);\r\n}\r\nfunction _validateExtensions(logger, channelPriority, allExtensions) {\r\n var _a;\r\n // Concat all available extensions\r\n var coreExtensions = [];\r\n // Check if any two extensions have the same priority, then warn to console\r\n // And extract the local extensions from the\r\n var extPriorities = {};\r\n // Extension validation\r\n arrForEach(allExtensions, function (ext) {\r\n // Check for ext.initialize\r\n if (isNullOrUndefined(ext) || isNullOrUndefined(ext[_DYN_INITIALIZE /* @min:%2einitialize */])) {\r\n throwError(strValidationError);\r\n }\r\n var extPriority = ext[STR_PRIORITY /* @min:%2epriority */];\r\n var identifier = ext[_DYN_IDENTIFIER /* @min:%2eidentifier */];\r\n if (ext && extPriority) {\r\n if (!isNullOrUndefined(extPriorities[extPriority])) {\r\n _warnToConsole(logger, \"Two extensions have same priority #\" + extPriority + \" - \" + extPriorities[extPriority] + \", \" + identifier);\r\n }\r\n else {\r\n // set a value\r\n extPriorities[extPriority] = identifier;\r\n }\r\n }\r\n // Split extensions to core and channelController\r\n if (!extPriority || extPriority < channelPriority) {\r\n // Add to core extension that will be managed by BaseCore\r\n coreExtensions[_DYN_PUSH /* @min:%2epush */](ext);\r\n }\r\n });\r\n return _a = {\r\n all: allExtensions\r\n },\r\n _a[STR_CORE /* @min:core */] = coreExtensions,\r\n _a;\r\n}\r\nfunction _isPluginPresent(thePlugin, plugins) {\r\n var exists = false;\r\n arrForEach(plugins, function (plugin) {\r\n if (plugin === thePlugin) {\r\n exists = true;\r\n return -1;\r\n }\r\n });\r\n return exists;\r\n}\r\nfunction _createDummyNotificationManager() {\r\n var _a;\r\n return objCreateFn((_a = {},\r\n _a[_DYN_ADD_NOTIFICATION_LIS1 /* @min:addNotificationListener */] = function (listener) { },\r\n _a[_DYN_REMOVE_NOTIFICATION_2 /* @min:removeNotificationListener */] = function (listener) { },\r\n _a[STR_EVENTS_SENT /* @min:eventsSent */] = function (events) { },\r\n _a[STR_EVENTS_DISCARDED /* @min:eventsDiscarded */] = function (events, reason) { },\r\n _a[STR_EVENTS_SEND_REQUEST /* @min:eventsSendRequest */] = function (sendReason, isAsync) { },\r\n _a));\r\n}\r\nvar BaseCore = /** @class */ (function () {\r\n function BaseCore() {\r\n // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n var _config;\r\n var _isInitialized;\r\n var _eventQueue;\r\n var _notificationManager;\r\n var _perfManager;\r\n var _cfgPerfManager;\r\n var _cookieManager;\r\n var _pluginChain;\r\n var _configExtensions;\r\n var _coreExtensions;\r\n var _channelControl;\r\n var _channelConfig;\r\n var _channelQueue;\r\n var _isUnloading;\r\n var _telemetryInitializerPlugin;\r\n var _internalLogsEventName;\r\n var _evtNamespace;\r\n var _unloadHandlers;\r\n var _debugListener;\r\n var _traceCtx;\r\n /**\r\n * Internal log poller\r\n */\r\n var _internalLogPoller = 0;\r\n var _forceStopInternalLogPoller = false;\r\n dynamicProto(BaseCore, this, function (_self) {\r\n // Set the default values (also called during teardown)\r\n _initDefaults();\r\n _self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = function () { return _isInitialized; };\r\n // Creating the self.initialize = ()\r\n _self[_DYN_INITIALIZE /* @min:%2einitialize */] = function (config, extensions, logger, notificationManager) {\r\n if (_isUnloading) {\r\n throwError(strSdkUnloadingError);\r\n }\r\n // Make sure core is only initialized once\r\n if (_self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]()) {\r\n throwError(\"Core should not be initialized more than once\");\r\n }\r\n _config = config || {};\r\n _self[_DYN_CONFIG /* @min:%2econfig */] = _config;\r\n if (isNullOrUndefined(config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */])) {\r\n throwError(\"Please provide instrumentation key\");\r\n }\r\n _notificationManager = notificationManager;\r\n // For backward compatibility only\r\n _self[strNotificationManager] = notificationManager;\r\n _initDebugListener();\r\n _initPerfManager();\r\n // add notification to the extensions in the config so other plugins can access it\r\n _initExtConfig();\r\n if (logger) {\r\n _self[_DYN_LOGGER /* @min:%2elogger */] = logger;\r\n }\r\n var cfgExtensions = getSetValue(_config, STR_EXTENSIONS, []);\r\n // Extension validation\r\n _configExtensions = [];\r\n _configExtensions[_DYN_PUSH /* @min:%2epush */].apply(_configExtensions, __spreadArray(__spreadArray([], extensions, false), cfgExtensions, false));\r\n _channelConfig = getSetValue(_config, STR_CHANNELS, []);\r\n _initPluginChain(null);\r\n if (!_channelQueue || _channelQueue[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n throwError(\"No \" + STR_CHANNELS + \" available\");\r\n }\r\n _isInitialized = true;\r\n _self.releaseQueue();\r\n };\r\n _self.getTransmissionControls = function () {\r\n var controls = [];\r\n if (_channelQueue) {\r\n arrForEach(_channelQueue, function (channels) {\r\n controls[_DYN_PUSH /* @min:%2epush */](channels.queue);\r\n });\r\n }\r\n return objFreeze(controls);\r\n };\r\n _self.track = function (telemetryItem) {\r\n // setup default iKey if not passed in\r\n telemetryItem.iKey = telemetryItem.iKey || _config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */];\r\n // add default timestamp if not passed in\r\n telemetryItem[_DYN_TIME /* @min:%2etime */] = telemetryItem[_DYN_TIME /* @min:%2etime */] || toISOString(new Date());\r\n // Common Schema 4.0\r\n telemetryItem.ver = telemetryItem.ver || \"4.0\";\r\n if (!_isUnloading && _self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]()) {\r\n // Process the telemetry plugin chain\r\n _createTelCtx()[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](telemetryItem);\r\n }\r\n else {\r\n // Queue events until all extensions are initialized\r\n _eventQueue[_DYN_PUSH /* @min:%2epush */](telemetryItem);\r\n }\r\n };\r\n _self[_DYN_GET_PROCESS_TEL_CONT0 /* @min:%2egetProcessTelContext */] = _createTelCtx;\r\n _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */] = function () {\r\n if (!_notificationManager) {\r\n // Create Dummy notification manager\r\n _notificationManager = _createDummyNotificationManager();\r\n // For backward compatibility only\r\n _self[strNotificationManager] = _notificationManager;\r\n }\r\n return _notificationManager;\r\n };\r\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 */\r\n _self[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */] = function (listener) {\r\n if (_notificationManager) {\r\n _notificationManager[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */](listener);\r\n }\r\n };\r\n /**\r\n * Removes all instances of the listener.\r\n * @param {INotificationListener} listener - INotificationListener to remove.\r\n */\r\n _self[_DYN_REMOVE_NOTIFICATION_2 /* @min:%2eremoveNotificationListener */] = function (listener) {\r\n if (_notificationManager) {\r\n _notificationManager[_DYN_REMOVE_NOTIFICATION_2 /* @min:%2eremoveNotificationListener */](listener);\r\n }\r\n };\r\n _self.getCookieMgr = function () {\r\n if (!_cookieManager) {\r\n _cookieManager = createCookieMgr(_config, _self[_DYN_LOGGER /* @min:%2elogger */]);\r\n }\r\n return _cookieManager;\r\n };\r\n _self.setCookieMgr = function (cookieMgr) {\r\n _cookieManager = cookieMgr;\r\n };\r\n _self[STR_GET_PERF_MGR /* @min:%2egetPerfMgr */] = function () {\r\n if (!_perfManager && !_cfgPerfManager) {\r\n if (getCfgValue(_config.enablePerfMgr)) {\r\n var createPerfMgr = getCfgValue(_config[STR_CREATE_PERF_MGR /* @min:%2ecreatePerfMgr */]);\r\n if (isFunction(createPerfMgr)) {\r\n _cfgPerfManager = createPerfMgr(_self, _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */]());\r\n }\r\n }\r\n }\r\n return _perfManager || _cfgPerfManager || getGblPerfMgr();\r\n };\r\n _self.setPerfMgr = function (perfMgr) {\r\n _perfManager = perfMgr;\r\n };\r\n _self.eventCnt = function () {\r\n return _eventQueue[_DYN_LENGTH /* @min:%2elength */];\r\n };\r\n _self.releaseQueue = function () {\r\n if (_isInitialized && _eventQueue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var eventQueue = _eventQueue;\r\n _eventQueue = [];\r\n arrForEach(eventQueue, function (event) {\r\n _createTelCtx()[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](event);\r\n });\r\n }\r\n };\r\n _self.pollInternalLogs = function (eventName) {\r\n _internalLogsEventName = eventName || null;\r\n _forceStopInternalLogPoller = false;\r\n if (_internalLogPoller) {\r\n clearInterval(_internalLogPoller);\r\n _internalLogPoller = null;\r\n }\r\n return _startInternalLogTimer(true);\r\n };\r\n function _startInternalLogTimer(alwaysStart) {\r\n if (!_internalLogPoller && !_forceStopInternalLogPoller) {\r\n var shouldStart = alwaysStart || (_self[_DYN_LOGGER /* @min:%2elogger */] && _self[_DYN_LOGGER /* @min:%2elogger */].queue[_DYN_LENGTH /* @min:%2elength */] > 0);\r\n if (shouldStart) {\r\n var interval = getCfgValue(_config.diagnosticLogInterval);\r\n if (!interval || !(interval > 0)) {\r\n interval = 10000;\r\n }\r\n // Keeping as an interval timer for backward compatibility as it returns the result\r\n _internalLogPoller = setInterval(function () {\r\n clearInterval(_internalLogPoller);\r\n _internalLogPoller = 0;\r\n _flushInternalLogs();\r\n }, interval);\r\n }\r\n }\r\n return _internalLogPoller;\r\n }\r\n _self[_DYN_STOP_POLLING_INTERNA3 /* @min:%2estopPollingInternalLogs */] = function () {\r\n _forceStopInternalLogPoller = true;\r\n if (_internalLogPoller) {\r\n clearInterval(_internalLogPoller);\r\n _internalLogPoller = 0;\r\n _flushInternalLogs();\r\n }\r\n };\r\n // Add addTelemetryInitializer\r\n proxyFunctions(_self, function () { return _telemetryInitializerPlugin; }, [\"addTelemetryInitializer\"]);\r\n _self.unload = function (isAsync, unloadComplete, cbTimeout) {\r\n var _a;\r\n if (isAsync === void 0) { isAsync = true; }\r\n if (!_isInitialized) {\r\n // The SDK is not initialized\r\n throwError(strSdkNotInitialized);\r\n }\r\n // Check if the SDK still unloading so throw\r\n if (_isUnloading) {\r\n // The SDK is already unloading\r\n throwError(strSdkUnloadingError);\r\n }\r\n var unloadState = (_a = {\r\n reason: 50 /* TelemetryUnloadReason.SdkUnload */\r\n },\r\n _a[_DYN_IS_ASYNC /* @min:isAsync */] = isAsync,\r\n _a.flushComplete = false,\r\n _a);\r\n var processUnloadCtx = createProcessTelemetryUnloadContext(_getPluginChain(), _self);\r\n processUnloadCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](function () {\r\n _initDefaults();\r\n unloadComplete && unloadComplete(unloadState);\r\n }, _self);\r\n function _doUnload(flushComplete) {\r\n unloadState.flushComplete = flushComplete;\r\n _isUnloading = true;\r\n // Run all of the unload handlers first (before unloading the plugins)\r\n _unloadHandlers.run(processUnloadCtx, unloadState);\r\n // Stop polling the internal logs\r\n _self[_DYN_STOP_POLLING_INTERNA3 /* @min:%2estopPollingInternalLogs */]();\r\n // Start unloading the components, from this point onwards the SDK should be considered to be in an unstable state\r\n processUnloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](unloadState);\r\n }\r\n _flushInternalLogs();\r\n if (!_flushChannels(isAsync, _doUnload, 6 /* SendRequestReason.SdkUnload */, cbTimeout)) {\r\n _doUnload(false);\r\n }\r\n };\r\n _self[_DYN_GET_PLUGIN /* @min:%2egetPlugin */] = _getPlugin;\r\n _self.addPlugin = function (plugin, replaceExisting, isAsync, addCb) {\r\n if (!plugin) {\r\n addCb && addCb(false);\r\n _logOrThrowError(strValidationError);\r\n return;\r\n }\r\n var existingPlugin = _getPlugin(plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */]);\r\n if (existingPlugin && !replaceExisting) {\r\n addCb && addCb(false);\r\n _logOrThrowError(\"Plugin [\" + plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] + \"] is already loaded!\");\r\n return;\r\n }\r\n var updateState = {\r\n reason: 16 /* TelemetryUpdateReason.PluginAdded */\r\n };\r\n function _addPlugin(removed) {\r\n _configExtensions[_DYN_PUSH /* @min:%2epush */](plugin);\r\n updateState.added = [plugin];\r\n // Re-Initialize the plugin chain\r\n _initPluginChain(updateState);\r\n addCb && addCb(true);\r\n }\r\n if (existingPlugin) {\r\n var removedPlugins_1 = [existingPlugin.plugin];\r\n var unloadState = {\r\n reason: 2 /* TelemetryUnloadReason.PluginReplace */,\r\n isAsync: !!isAsync\r\n };\r\n _removePlugins(removedPlugins_1, unloadState, function (removed) {\r\n if (!removed) {\r\n // Previous plugin was successfully removed or was not installed\r\n addCb && addCb(false);\r\n }\r\n else {\r\n updateState.removed = removedPlugins_1;\r\n updateState.reason |= 32 /* TelemetryUpdateReason.PluginRemoved */;\r\n _addPlugin(true);\r\n }\r\n });\r\n }\r\n else {\r\n _addPlugin(false);\r\n }\r\n };\r\n _self.evtNamespace = function () {\r\n return _evtNamespace;\r\n };\r\n _self[_DYN_FLUSH /* @min:%2eflush */] = _flushChannels;\r\n _self.getTraceCtx = function (createNew) {\r\n if (!_traceCtx) {\r\n _traceCtx = createDistributedTraceContext();\r\n }\r\n return _traceCtx;\r\n };\r\n _self.setTraceCtx = function (traceCtx) {\r\n _traceCtx = traceCtx || null;\r\n };\r\n // Create the addUnloadCb\r\n proxyFunctionAs(_self, \"addUnloadCb\", function () { return _unloadHandlers; }, \"add\");\r\n function _initDefaults() {\r\n _isInitialized = false;\r\n // Use a default logger so initialization errors are not dropped on the floor with full logging\r\n _config = objExtend(true, {}, defaultInitConfig);\r\n _self[_DYN_CONFIG /* @min:%2econfig */] = _config;\r\n _self[_DYN_LOGGER /* @min:%2elogger */] = new DiagnosticLogger(_config);\r\n _self[_DYN__EXTENSIONS /* @min:%2e_extensions */] = [];\r\n _telemetryInitializerPlugin = new TelemetryInitializerPlugin();\r\n _eventQueue = [];\r\n _notificationManager = null;\r\n _perfManager = null;\r\n _cfgPerfManager = null;\r\n _cookieManager = null;\r\n _pluginChain = null;\r\n _coreExtensions = null;\r\n _configExtensions = [];\r\n _channelControl = null;\r\n _channelConfig = null;\r\n _channelQueue = null;\r\n _isUnloading = false;\r\n _internalLogsEventName = null;\r\n _evtNamespace = createUniqueNamespace(\"AIBaseCore\", true);\r\n _unloadHandlers = createUnloadHandlerContainer();\r\n _traceCtx = null;\r\n }\r\n function _createTelCtx() {\r\n var theCtx = createProcessTelemetryContext(_getPluginChain(), _config, _self);\r\n theCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](_startInternalLogTimer);\r\n return theCtx;\r\n }\r\n // Initialize or Re-initialize the plugins\r\n function _initPluginChain(updateState) {\r\n // Extension validation\r\n var theExtensions = _validateExtensions(_self[_DYN_LOGGER /* @min:%2elogger */], ChannelControllerPriority, _configExtensions);\r\n _coreExtensions = theExtensions[STR_CORE /* @min:%2ecore */];\r\n _pluginChain = null;\r\n // Sort the complete set of extensions by priority\r\n var allExtensions = theExtensions.all;\r\n // Initialize the Channel Queues and the channel plugins first\r\n _channelQueue = objFreeze(createChannelQueues(_channelConfig, allExtensions, _self));\r\n if (_channelControl) {\r\n // During add / remove of a plugin this may get called again, so don't re-add if already present\r\n // But we also want the controller as the last, so remove if already present\r\n // And reusing the existing instance, just in case an installed plugin has a reference and\r\n // is using it.\r\n var idx = arrIndexOf(allExtensions, _channelControl);\r\n if (idx !== -1) {\r\n allExtensions[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n }\r\n idx = arrIndexOf(_coreExtensions, _channelControl);\r\n if (idx !== -1) {\r\n _coreExtensions[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n }\r\n _channelControl._setQueue(_channelQueue);\r\n }\r\n else {\r\n _channelControl = createChannelControllerPlugin(_channelQueue, _self);\r\n }\r\n // Add on \"channelController\" as the last \"plugin\"\r\n allExtensions[_DYN_PUSH /* @min:%2epush */](_channelControl);\r\n _coreExtensions[_DYN_PUSH /* @min:%2epush */](_channelControl);\r\n // Required to allow plugins to call core.getPlugin() during their own initialization\r\n _self[_DYN__EXTENSIONS /* @min:%2e_extensions */] = sortPlugins(allExtensions);\r\n // Initialize the controls\r\n _channelControl[_DYN_INITIALIZE /* @min:%2einitialize */](_config, _self, allExtensions);\r\n var initCtx = _createTelCtx();\r\n initializePlugins(initCtx, allExtensions);\r\n // Now reset the extensions to just those being managed by Basecore\r\n _self[_DYN__EXTENSIONS /* @min:%2e_extensions */] = objFreeze(sortPlugins(_coreExtensions || [])).slice();\r\n if (updateState) {\r\n _doUpdate(updateState);\r\n }\r\n }\r\n function _getPlugin(pluginIdentifier) {\r\n var _a;\r\n var theExt = null;\r\n var thePlugin = null;\r\n arrForEach(_self[_DYN__EXTENSIONS /* @min:%2e_extensions */], function (ext) {\r\n if (ext[_DYN_IDENTIFIER /* @min:%2eidentifier */] === pluginIdentifier && ext !== _channelControl && ext !== _telemetryInitializerPlugin) {\r\n thePlugin = ext;\r\n return -1;\r\n }\r\n });\r\n if (!thePlugin && _channelControl) {\r\n // Check the channel Controller\r\n thePlugin = _channelControl.getChannel(pluginIdentifier);\r\n }\r\n if (thePlugin) {\r\n theExt = (_a = {\r\n plugin: thePlugin\r\n },\r\n _a[_DYN_SET_ENABLED /* @min:setEnabled */] = function (enabled) {\r\n _getPluginState(thePlugin)[STR_DISABLED] = !enabled;\r\n },\r\n _a.isEnabled = function () {\r\n var pluginState = _getPluginState(thePlugin);\r\n return !pluginState[_DYN_TEARDOWN /* @min:%2eteardown */] && !pluginState[STR_DISABLED];\r\n },\r\n _a.remove = function (isAsync, removeCb) {\r\n var _a;\r\n if (isAsync === void 0) { isAsync = true; }\r\n var pluginsToRemove = [thePlugin];\r\n var unloadState = (_a = {\r\n reason: 1 /* TelemetryUnloadReason.PluginUnload */\r\n },\r\n _a[_DYN_IS_ASYNC /* @min:isAsync */] = isAsync,\r\n _a);\r\n _removePlugins(pluginsToRemove, unloadState, function (removed) {\r\n if (removed) {\r\n // Re-Initialize the plugin chain\r\n _initPluginChain({\r\n reason: 32 /* TelemetryUpdateReason.PluginRemoved */,\r\n removed: pluginsToRemove\r\n });\r\n }\r\n removeCb && removeCb(removed);\r\n });\r\n },\r\n _a);\r\n }\r\n return theExt;\r\n }\r\n function _getPluginChain() {\r\n if (!_pluginChain) {\r\n // copy the collection of extensions\r\n var extensions = (_coreExtensions || []).slice();\r\n // During add / remove this may get called again, so don't readd if already present\r\n if (arrIndexOf(extensions, _telemetryInitializerPlugin) === -1) {\r\n extensions[_DYN_PUSH /* @min:%2epush */](_telemetryInitializerPlugin);\r\n }\r\n _pluginChain = createTelemetryProxyChain(sortPlugins(extensions), _config, _self);\r\n }\r\n return _pluginChain;\r\n }\r\n function _removePlugins(thePlugins, unloadState, removeComplete) {\r\n if (thePlugins && thePlugins[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var unloadChain = createTelemetryProxyChain(thePlugins, _config, _self);\r\n var unloadCtx = createProcessTelemetryUnloadContext(unloadChain, _self);\r\n unloadCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](function () {\r\n var removed = false;\r\n // Remove the listed config extensions\r\n var newConfigExtensions = [];\r\n arrForEach(_configExtensions, function (plugin, idx) {\r\n if (!_isPluginPresent(plugin, thePlugins)) {\r\n newConfigExtensions[_DYN_PUSH /* @min:%2epush */](plugin);\r\n }\r\n else {\r\n removed = true;\r\n }\r\n });\r\n _configExtensions = newConfigExtensions;\r\n // Re-Create the channel config\r\n var newChannelConfig = [];\r\n if (_channelConfig) {\r\n arrForEach(_channelConfig, function (queue, idx) {\r\n var newQueue = [];\r\n arrForEach(queue, function (channel) {\r\n if (!_isPluginPresent(channel, thePlugins)) {\r\n newQueue[_DYN_PUSH /* @min:%2epush */](channel);\r\n }\r\n else {\r\n removed = true;\r\n }\r\n });\r\n newChannelConfig[_DYN_PUSH /* @min:%2epush */](newQueue);\r\n });\r\n _channelConfig = newChannelConfig;\r\n }\r\n removeComplete && removeComplete(removed);\r\n _startInternalLogTimer();\r\n });\r\n unloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](unloadState);\r\n }\r\n else {\r\n removeComplete(false);\r\n }\r\n }\r\n function _flushInternalLogs() {\r\n if (_self[_DYN_LOGGER /* @min:%2elogger */] && _self[_DYN_LOGGER /* @min:%2elogger */].queue) {\r\n var queue = _self[_DYN_LOGGER /* @min:%2elogger */].queue.slice(0);\r\n _self[_DYN_LOGGER /* @min:%2elogger */].queue[_DYN_LENGTH /* @min:%2elength */] = 0;\r\n arrForEach(queue, function (logMessage) {\r\n var _a;\r\n var item = (_a = {},\r\n _a[_DYN_NAME /* @min:name */] = _internalLogsEventName ? _internalLogsEventName : \"InternalMessageId: \" + logMessage[_DYN_MESSAGE_ID /* @min:%2emessageId */],\r\n _a.iKey = getCfgValue(_config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */]),\r\n _a.time = toISOString(new Date()),\r\n _a.baseType = _InternalLogMessage.dataType,\r\n _a.baseData = { message: logMessage[_DYN_MESSAGE /* @min:%2emessage */] },\r\n _a);\r\n _self.track(item);\r\n });\r\n }\r\n }\r\n function _flushChannels(isAsync, callBack, sendReason, cbTimeout) {\r\n if (_channelControl) {\r\n return _channelControl[_DYN_FLUSH /* @min:%2eflush */](isAsync, callBack, sendReason || 6 /* SendRequestReason.SdkUnload */, cbTimeout);\r\n }\r\n callBack && callBack(false);\r\n return true;\r\n }\r\n function _initDebugListener() {\r\n var disableDbgExt = getCfgValue(_config.disableDbgExt);\r\n if (disableDbgExt === true && _debugListener) {\r\n // Remove any previously loaded debug listener\r\n _notificationManager[_DYN_REMOVE_NOTIFICATION_2 /* @min:%2eremoveNotificationListener */](_debugListener);\r\n _debugListener = null;\r\n }\r\n if (_notificationManager && !_debugListener && disableDbgExt !== true) {\r\n _debugListener = getDebugListener(_config);\r\n _notificationManager[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */](_debugListener);\r\n }\r\n }\r\n function _initPerfManager() {\r\n var enablePerfMgr = getCfgValue(_config.enablePerfMgr);\r\n if (!enablePerfMgr && _cfgPerfManager) {\r\n // Remove any existing config based performance manager\r\n _cfgPerfManager = null;\r\n }\r\n if (enablePerfMgr) {\r\n // Set the performance manager creation function if not defined\r\n getSetValue(_config, STR_CREATE_PERF_MGR, _createPerfManager);\r\n }\r\n }\r\n function _initExtConfig() {\r\n var extConfig = getSetValue(_config, STR_EXTENSION_CONFIG, {});\r\n extConfig.NotificationManager = _notificationManager;\r\n }\r\n function _doUpdate(updateState) {\r\n var updateCtx = createProcessTelemetryUpdateContext(_getPluginChain(), _self);\r\n updateCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](_startInternalLogTimer);\r\n if (!_self._updateHook || _self._updateHook(updateCtx, updateState) !== true) {\r\n updateCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](updateState);\r\n }\r\n }\r\n function _logOrThrowError(message) {\r\n var logger = _self[_DYN_LOGGER /* @min:%2elogger */];\r\n if (logger) {\r\n // there should always be a logger\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, message);\r\n _startInternalLogTimer();\r\n }\r\n else {\r\n throwError(message);\r\n }\r\n }\r\n });\r\n }\r\n// Removed Stub for BaseCore.prototype.initialize.\r\n// Removed Stub for BaseCore.prototype.getTransmissionControls.\r\n// Removed Stub for BaseCore.prototype.track.\r\n// Removed Stub for BaseCore.prototype.getProcessTelContext.\r\n// Removed Stub for BaseCore.prototype.getNotifyMgr.\r\n// Removed Stub for BaseCore.prototype.addNotificationListener.\r\n// Removed Stub for BaseCore.prototype.removeNotificationListener.\r\n// Removed Stub for BaseCore.prototype.getCookieMgr.\r\n// Removed Stub for BaseCore.prototype.setCookieMgr.\r\n// Removed Stub for BaseCore.prototype.getPerfMgr.\r\n// Removed Stub for BaseCore.prototype.setPerfMgr.\r\n// Removed Stub for BaseCore.prototype.eventCnt.\r\n// Removed Stub for BaseCore.prototype.pollInternalLogs.\r\n// Removed Stub for BaseCore.prototype.stopPollingInternalLogs.\r\n// Removed Stub for BaseCore.prototype.addTelemetryInitializer.\r\n// Removed Stub for BaseCore.prototype.unload.\r\n// Removed Stub for BaseCore.prototype.getPlugin.\r\n// Removed Stub for BaseCore.prototype.addPlugin.\r\n// Removed Stub for BaseCore.prototype.evtNamespace.\r\n// Removed Stub for BaseCore.prototype.addUnloadCb.\r\n// Removed Stub for BaseCore.prototype.flush.\r\n// Removed Stub for BaseCore.prototype.getTraceCtx.\r\n// Removed Stub for BaseCore.prototype.setTraceCtx.\r\n// Removed Stub for BaseCore.prototype.releaseQueue.\r\n// Removed Stub for BaseCore.prototype._updateHook.\r\n // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n // this will be removed when ES3 support is dropped.\n BaseCore.__ieDyn=1;\n\n return BaseCore;\r\n}());\r\nexport { BaseCore };\r\n//# sourceMappingURL=BaseCore.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { _DYN_ADD_NOTIFICATION_LIS1, _DYN_IS_ASYNC, _DYN_IS_CHILD_EVT, _DYN_LISTENERS, _DYN_PUSH, _DYN_REMOVE_NOTIFICATION_2, _DYN_SPLICE } from \"../__DynamicConstants\";\r\nimport { arrForEach, arrIndexOf } from \"./HelperFuncs\";\r\nimport { STR_EVENTS_DISCARDED, STR_EVENTS_SEND_REQUEST, STR_EVENTS_SENT, STR_PERF_EVENT } from \"./InternalConstants\";\r\nfunction _runListeners(listeners, name, isAsync, callback) {\r\n arrForEach(listeners, function (listener) {\r\n if (listener && listener[name]) {\r\n if (isAsync) {\r\n setTimeout(function () { return callback(listener); }, 0);\r\n }\r\n else {\r\n try {\r\n callback(listener);\r\n }\r\n catch (e) {\r\n // Catch errors to ensure we don't block sending the requests\r\n }\r\n }\r\n }\r\n });\r\n}\r\n/**\r\n * Class to manage sending notifications to all the listeners.\r\n */\r\nvar NotificationManager = /** @class */ (function () {\r\n function NotificationManager(config) {\r\n this.listeners = [];\r\n var perfEvtsSendAll = !!(config || {}).perfEvtsSendAll;\r\n dynamicProto(NotificationManager, this, function (_self) {\r\n _self[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */] = function (listener) {\r\n _self.listeners[_DYN_PUSH /* @min:%2epush */](listener);\r\n };\r\n /**\r\n * Removes all instances of the listener.\r\n * @param {INotificationListener} listener - AWTNotificationListener to remove.\r\n */\r\n _self[_DYN_REMOVE_NOTIFICATION_2 /* @min:%2eremoveNotificationListener */] = function (listener) {\r\n var index = arrIndexOf(_self[_DYN_LISTENERS /* @min:%2elisteners */], listener);\r\n while (index > -1) {\r\n _self.listeners[_DYN_SPLICE /* @min:%2esplice */](index, 1);\r\n index = arrIndexOf(_self[_DYN_LISTENERS /* @min:%2elisteners */], listener);\r\n }\r\n };\r\n /**\r\n * Notification for events sent.\r\n * @param {ITelemetryItem[]} events - The array of events that have been sent.\r\n */\r\n _self[STR_EVENTS_SENT /* @min:%2eeventsSent */] = function (events) {\r\n _runListeners(_self[_DYN_LISTENERS /* @min:%2elisteners */], STR_EVENTS_SENT, true, function (listener) {\r\n listener[STR_EVENTS_SENT /* @min:%2eeventsSent */](events);\r\n });\r\n };\r\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 */\r\n _self[STR_EVENTS_DISCARDED /* @min:%2eeventsDiscarded */] = function (events, reason) {\r\n _runListeners(_self[_DYN_LISTENERS /* @min:%2elisteners */], STR_EVENTS_DISCARDED, true, function (listener) {\r\n listener[STR_EVENTS_DISCARDED /* @min:%2eeventsDiscarded */](events, reason);\r\n });\r\n };\r\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 */\r\n _self[STR_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */] = function (sendReason, isAsync) {\r\n _runListeners(_self[_DYN_LISTENERS /* @min:%2elisteners */], STR_EVENTS_SEND_REQUEST, isAsync, function (listener) {\r\n listener[STR_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */](sendReason, isAsync);\r\n });\r\n };\r\n _self[STR_PERF_EVENT /* @min:%2eperfEvent */] = function (perfEvent) {\r\n if (perfEvent) {\r\n // Send all events or only parent events\r\n if (perfEvtsSendAll || !perfEvent[_DYN_IS_CHILD_EVT /* @min:%2eisChildEvt */]()) {\r\n _runListeners(_self[_DYN_LISTENERS /* @min:%2elisteners */], STR_PERF_EVENT, false, function (listener) {\r\n if (perfEvent[_DYN_IS_ASYNC /* @min:%2eisAsync */]) {\r\n setTimeout(function () { return listener[STR_PERF_EVENT /* @min:%2eperfEvent */](perfEvent); }, 0);\r\n }\r\n else {\r\n listener[STR_PERF_EVENT /* @min:%2eperfEvent */](perfEvent);\r\n }\r\n });\r\n }\r\n }\r\n };\r\n });\r\n }\r\n// Removed Stub for NotificationManager.prototype.addNotificationListener.\r\n// Removed Stub for NotificationManager.prototype.removeNotificationListener.\r\n// Removed Stub for NotificationManager.prototype.eventsSent.\r\n// Removed Stub for NotificationManager.prototype.eventsDiscarded.\r\n// Removed Stub for NotificationManager.prototype.eventsSendRequest.\r\n // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n // this will be removed when ES3 support is dropped.\n NotificationManager.__ieDyn=1;\n\n return NotificationManager;\r\n}());\r\nexport { NotificationManager };\r\n//# sourceMappingURL=NotificationManager.js.map","/*\n * Application Insights JavaScript SDK - Core, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { _DYN_GET_NOTIFY_MGR, _DYN_INITIALIZE, _DYN_NAME } from \"../__DynamicConstants\";\r\nimport { BaseCore } from \"./BaseCore\";\r\nimport { DiagnosticLogger } from \"./DiagnosticLogger\";\r\nimport { isNullOrUndefined, throwError } from \"./HelperFuncs\";\r\nimport { STR_EVENTS_DISCARDED, STR_GET_PERF_MGR } from \"./InternalConstants\";\r\nimport { NotificationManager } from \"./NotificationManager\";\r\nimport { doPerf } from \"./PerfManager\";\r\nvar AppInsightsCore = /** @class */ (function (_super) {\r\n __extends(AppInsightsCore, _super);\r\n function AppInsightsCore() {\r\n var _this = _super.call(this) || this;\r\n dynamicProto(AppInsightsCore, _this, function (_self, _base) {\r\n _self[_DYN_INITIALIZE /* @min:%2einitialize */] = function (config, extensions, logger, notificationManager) {\r\n _base[_DYN_INITIALIZE /* @min:%2einitialize */](config, extensions, logger || new DiagnosticLogger(config), notificationManager || new NotificationManager(config));\r\n };\r\n _self.track = function (telemetryItem) {\r\n doPerf(_self[STR_GET_PERF_MGR /* @min:%2egetPerfMgr */](), function () { return \"AppInsightsCore:track\"; }, function () {\r\n if (telemetryItem === null) {\r\n _notifyInvalidEvent(telemetryItem);\r\n // throw error\r\n throwError(\"Invalid telemetry item\");\r\n }\r\n // do basic validation before sending it through the pipeline\r\n _validateTelemetryItem(telemetryItem);\r\n _base.track(telemetryItem);\r\n }, function () { return ({ item: telemetryItem }); }, !(telemetryItem.sync));\r\n };\r\n function _validateTelemetryItem(telemetryItem) {\r\n if (isNullOrUndefined(telemetryItem[_DYN_NAME /* @min:%2ename */])) {\r\n _notifyInvalidEvent(telemetryItem);\r\n throwError(\"telemetry name required\");\r\n }\r\n }\r\n function _notifyInvalidEvent(telemetryItem) {\r\n var manager = _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */]();\r\n if (manager) {\r\n manager[STR_EVENTS_DISCARDED /* @min:%2eeventsDiscarded */]([telemetryItem], 2 /* eEventsDiscardedReason.InvalidEvent */);\r\n }\r\n }\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for AppInsightsCore.prototype.initialize.\r\n// Removed Stub for AppInsightsCore.prototype.track.\r\n // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n // this will be removed when ES3 support is dropped.\n AppInsightsCore.__ieDyn=1;\n\n return AppInsightsCore;\r\n}(BaseCore));\r\nexport { AppInsightsCore };\r\n//# sourceMappingURL=AppInsightsCore.js.map","/*\n * Application Insights JavaScript SDK - Dependencies Plugin, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Generally you should only put values that are used more than 2 times and then only if not already exposed as a constant (such as SdkCoreNames)\r\n// as when using \"short\" named values from here they will be will be minified smaller than the SdkCoreNames[eSdkCoreNames.xxxx] value.\r\nexport var STR_DURATION = \"duration\";\r\nexport var STR_PROPERTIES = \"properties\";\r\n//# sourceMappingURL=InternalConstants.js.map","/*\n * Application Insights JavaScript SDK - Dependencies Plugin, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_REQUEST_URL = \"requestUrl\"; // Count: 12\r\nexport var _DYN_INST = \"inst\"; // Count: 5\r\nexport var _DYN_LENGTH = \"length\"; // Count: 10\r\nexport var _DYN_TRACE_ID = \"traceID\"; // Count: 9\r\nexport var _DYN_SPAN_ID = \"spanID\"; // Count: 8\r\nexport var _DYN_TRACE_FLAGS = \"traceFlags\"; // Count: 13\r\nexport var _DYN_CONTEXT = \"context\"; // Count: 7\r\nexport var _DYN_ABORTED = \"aborted\"; // Count: 7\r\nexport var _DYN_TRACE_ID0 = \"traceId\"; // Count: 5\r\nexport var _DYN_SPAN_ID1 = \"spanId\"; // Count: 5\r\nexport var _DYN_CORE = \"core\"; // Count: 8\r\nexport var _DYN_INCLUDE_CORRELATION_2 = \"includeCorrelationHeaders\"; // Count: 4\r\nexport var _DYN_CAN_INCLUDE_CORRELAT3 = \"canIncludeCorrelationHeader\"; // Count: 2\r\nexport var _DYN_GET_ABSOLUTE_URL = \"getAbsoluteUrl\"; // Count: 3\r\nexport var _DYN_HEADERS = \"headers\"; // Count: 6\r\nexport var _DYN_REQUEST_HEADERS = \"requestHeaders\"; // Count: 13\r\nexport var _DYN_APP_ID = \"appId\"; // Count: 5\r\nexport var _DYN_SET_REQUEST_HEADER = \"setRequestHeader\"; // Count: 3\r\nexport var _DYN_TRACK_DEPENDENCY_DAT4 = \"trackDependencyDataInternal\"; // Count: 2\r\nexport var _DYN_DISTRIBUTED_TRACING_5 = \"distributedTracingMode\"; // Count: 3\r\nexport var _DYN_START_TIME = \"startTime\"; // Count: 6\r\nexport var _DYN_TO_LOWER_CASE = \"toLowerCase\"; // Count: 6\r\nexport var _DYN_ENABLE_REQUEST_HEADE6 = \"enableRequestHeaderTracking\"; // Count: 2\r\nexport var _DYN_ENABLE_AJAX_ERROR_ST7 = \"enableAjaxErrorStatusText\"; // Count: 2\r\nexport var _DYN_ENABLE_AJAX_PERF_TRA8 = \"enableAjaxPerfTracking\"; // Count: 2\r\nexport var _DYN_MAX_AJAX_CALLS_PER_V9 = \"maxAjaxCallsPerView\"; // Count: 2\r\nexport var _DYN_ENABLE_RESPONSE_HEAD10 = \"enableResponseHeaderTracking\"; // Count: 2\r\nexport var _DYN_EXCLUDE_REQUEST_FROM11 = \"excludeRequestFromAutoTrackingPatterns\"; // Count: 2\r\nexport var _DYN_ADD_REQUEST_CONTEXT = \"addRequestContext\"; // Count: 2\r\nexport var _DYN_DISABLE_AJAX_TRACKIN12 = \"disableAjaxTracking\"; // Count: 2\r\nexport var _DYN_DISABLE_FETCH_TRACKI13 = \"disableFetchTracking\"; // Count: 2\r\nexport var _DYN_STATUS = \"status\"; // Count: 11\r\nexport var _DYN_STATUS_TEXT = \"statusText\"; // Count: 9\r\nexport var _DYN_HEADER_MAP = \"headerMap\"; // Count: 8\r\nexport var _DYN_OPEN_DONE = \"openDone\"; // Count: 3\r\nexport var _DYN_SEND_DONE = \"sendDone\"; // Count: 3\r\nexport var _DYN_REQUEST_SENT_TIME = \"requestSentTime\"; // Count: 9\r\nexport var _DYN_ABORT_DONE = \"abortDone\"; // Count: 3\r\nexport var _DYN_GET_TRACE_ID = \"getTraceId\"; // Count: 3\r\nexport var _DYN_GET_TRACE_FLAGS = \"getTraceFlags\"; // Count: 3\r\nexport var _DYN_METHOD = \"method\"; // Count: 8\r\nexport var _DYN_ERROR_STATUS_TEXT = \"errorStatusText\"; // Count: 3\r\nexport var _DYN_STATE_CHANGE_ATTACHE14 = \"stateChangeAttached\"; // Count: 2\r\nexport var _DYN_RESPONSE_TEXT = \"responseText\"; // Count: 6\r\nexport var _DYN_RESPONSE_FINISHED_TI15 = \"responseFinishedTime\"; // Count: 7\r\nexport var _DYN__CREATE_TRACK_ITEM = \"CreateTrackItem\"; // Count: 3\r\nexport var _DYN_RESPONSE = \"response\"; // Count: 4\r\nexport var _DYN_GET_ALL_RESPONSE_HEA16 = \"getAllResponseHeaders\"; // Count: 2\r\nexport var _DYN_GET_PART_APROPS = \"getPartAProps\"; // Count: 3\r\nexport var _DYN_GET_CORRELATION_CONT17 = \"getCorrelationContext\"; // Count: 2\r\nexport var _DYN_PERF_MARK = \"perfMark\"; // Count: 4\r\nexport var _DYN_AJAX_PERF_LOOKUP_DEL18 = \"ajaxPerfLookupDelay\"; // Count: 2\r\nexport var _DYN_NAME = \"name\"; // Count: 6\r\nexport var _DYN_PERF_TIMING = \"perfTiming\"; // Count: 3\r\nexport var _DYN_AJAX_DIAGNOSTICS_MES19 = \"ajaxDiagnosticsMessage\"; // Count: 3\r\nexport var _DYN_CORRELATION_CONTEXT = \"correlationContext\"; // Count: 3\r\nexport var _DYN_AJAX_TOTAL_DURATION = \"ajaxTotalDuration\"; // Count: 3\r\nexport var _DYN_EVENT_TRACE_CTX = \"eventTraceCtx\"; // Count: 3\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Dependencies Plugin, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { Extensions, dataSanitizeUrl, dateTimeUtilsDuration, msToTimeSpan, urlGetAbsoluteUrl, urlGetCompleteUrl } from \"@microsoft/applicationinsights-common\";\r\nimport { arrForEach, isNullOrUndefined, isNumber, isString, normalizeJsName, objForEachKey, objKeys } from \"@microsoft/applicationinsights-core-js\";\r\nimport { STR_DURATION, STR_PROPERTIES } from \"./InternalConstants\";\r\nimport { _DYN_ABORTED, _DYN_ABORT_DONE, _DYN_AJAX_TOTAL_DURATION, _DYN_CORRELATION_CONTEXT, _DYN_ERROR_STATUS_TEXT, _DYN_EVENT_TRACE_CTX, _DYN_GET_ABSOLUTE_URL, _DYN_GET_PART_APROPS, _DYN_GET_TRACE_FLAGS, _DYN_GET_TRACE_ID, _DYN_HEADER_MAP, _DYN_LENGTH, _DYN_METHOD, _DYN_NAME, _DYN_OPEN_DONE, _DYN_PERF_MARK, _DYN_PERF_TIMING, _DYN_REQUEST_HEADERS, _DYN_REQUEST_SENT_TIME, _DYN_REQUEST_URL, _DYN_RESPONSE, _DYN_RESPONSE_FINISHED_TI15, _DYN_SEND_DONE, _DYN_SPAN_ID, _DYN_SPAN_ID1, _DYN_START_TIME, _DYN_STATE_CHANGE_ATTACHE14, _DYN_STATUS, _DYN_STATUS_TEXT, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN_TRACE_ID0, _DYN__CREATE_TRACK_ITEM } from \"./__DynamicConstants\";\r\n/** @ignore */\r\nfunction _calcPerfDuration(resourceEntry, start, end) {\r\n var result = 0;\r\n var from = resourceEntry[start];\r\n var to = resourceEntry[end];\r\n if (from && to) {\r\n result = dateTimeUtilsDuration(from, to);\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _setPerfDuration(props, name, resourceEntry, start, end) {\r\n var result = 0;\r\n var value = _calcPerfDuration(resourceEntry, start, end);\r\n if (value) {\r\n result = _setPerfValue(props, name, msToTimeSpan(value));\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _setPerfValue(props, name, value) {\r\n var strPerf = \"ajaxPerf\";\r\n var result = 0;\r\n if (props && name && value) {\r\n var perfData = props[strPerf] = (props[strPerf] || {});\r\n perfData[name] = value;\r\n result = 1;\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _populatePerfData(ajaxData, dependency) {\r\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 */\r\n var resourceEntry = ajaxData[_DYN_PERF_TIMING /* @min:%2eperfTiming */];\r\n var props = dependency[STR_PROPERTIES /* @min:%2eproperties */] || {};\r\n var propsSet = 0;\r\n var strName = \"name\";\r\n var strStart = \"Start\";\r\n var strEnd = \"End\";\r\n var strDomainLookup = \"domainLookup\";\r\n var strConnect = \"connect\";\r\n var strRedirect = \"redirect\";\r\n var strRequest = \"request\";\r\n var strResponse = \"response\";\r\n var strStartTime = \"startTime\";\r\n var strDomainLookupStart = strDomainLookup + strStart;\r\n var strDomainLookupEnd = strDomainLookup + strEnd;\r\n var strConnectStart = strConnect + strStart;\r\n var strConnectEnd = strConnect + strEnd;\r\n var strRequestStart = strRequest + strStart;\r\n var strRequestEnd = strRequest + strEnd;\r\n var strResponseStart = strResponse + strStart;\r\n var strResponseEnd = strResponse + strEnd;\r\n var strRedirectStart = strRedirect + strStart;\r\n var strRedirectEnd = strRedirect = strEnd;\r\n var strTransferSize = \"transferSize\";\r\n var strEncodedBodySize = \"encodedBodySize\";\r\n var strDecodedBodySize = \"decodedBodySize\";\r\n var strServerTiming = \"serverTiming\";\r\n if (resourceEntry) {\r\n // redirect\r\n propsSet |= _setPerfDuration(props, strRedirect, resourceEntry, strRedirectStart, strRedirectEnd);\r\n // domainLookup\r\n propsSet |= _setPerfDuration(props, strDomainLookup, resourceEntry, strDomainLookupStart, strDomainLookupEnd);\r\n // connect\r\n propsSet |= _setPerfDuration(props, strConnect, resourceEntry, strConnectStart, strConnectEnd);\r\n // request\r\n propsSet |= _setPerfDuration(props, strRequest, resourceEntry, strRequestStart, strRequestEnd);\r\n // response\r\n propsSet |= _setPerfDuration(props, strResponse, resourceEntry, strResponseStart, strResponseEnd);\r\n // Network connection time\r\n propsSet |= _setPerfDuration(props, \"networkConnect\", resourceEntry, strStartTime, strConnectEnd);\r\n // Sent Request\r\n propsSet |= _setPerfDuration(props, \"sentRequest\", resourceEntry, strRequestStart, strResponseEnd);\r\n // PerfTotal / Duration\r\n var duration = resourceEntry[STR_DURATION /* @min:%2eduration */];\r\n if (!duration) {\r\n duration = _calcPerfDuration(resourceEntry, strStartTime, strResponseEnd) || 0;\r\n }\r\n propsSet |= _setPerfValue(props, STR_DURATION, duration);\r\n propsSet |= _setPerfValue(props, \"perfTotal\", duration);\r\n var serverTiming = resourceEntry[strServerTiming];\r\n if (serverTiming) {\r\n var server_1 = {};\r\n arrForEach(serverTiming, function (value, idx) {\r\n var name = normalizeJsName(value[strName] || \"\" + idx);\r\n var newValue = server_1[name] || {};\r\n objForEachKey(value, function (key, val) {\r\n if (key !== strName && isString(val) || isNumber(val)) {\r\n if (newValue[key]) {\r\n val = newValue[key] + \";\" + val;\r\n }\r\n if (val || !isString(val)) {\r\n // Only set the value if it has a value and it's not an empty string\r\n newValue[key] = val;\r\n }\r\n }\r\n });\r\n server_1[name] = newValue;\r\n });\r\n propsSet |= _setPerfValue(props, strServerTiming, server_1);\r\n }\r\n propsSet |= _setPerfValue(props, strTransferSize, resourceEntry[strTransferSize]);\r\n propsSet |= _setPerfValue(props, strEncodedBodySize, resourceEntry[strEncodedBodySize]);\r\n propsSet |= _setPerfValue(props, strDecodedBodySize, resourceEntry[strDecodedBodySize]);\r\n }\r\n else {\r\n if (ajaxData[_DYN_PERF_MARK /* @min:%2eperfMark */]) {\r\n propsSet |= _setPerfValue(props, \"missing\", ajaxData.perfAttempts);\r\n }\r\n }\r\n if (propsSet) {\r\n dependency[STR_PROPERTIES /* @min:%2eproperties */] = props;\r\n }\r\n}\r\nvar XHRMonitoringState = /** @class */ (function () {\r\n function XHRMonitoringState() {\r\n var self = this;\r\n self[_DYN_OPEN_DONE /* @min:%2eopenDone */] = false;\r\n self.setRequestHeaderDone = false;\r\n self[_DYN_SEND_DONE /* @min:%2esendDone */] = false;\r\n self[_DYN_ABORT_DONE /* @min:%2eabortDone */] = false;\r\n // True, if onreadyStateChangeCallback function attached to xhr, otherwise false\r\n self[_DYN_STATE_CHANGE_ATTACHE14 /* @min:%2estateChangeAttached */] = false;\r\n }\r\n return XHRMonitoringState;\r\n}());\r\nexport { XHRMonitoringState };\r\nvar ajaxRecord = /** @class */ (function () {\r\n function ajaxRecord(traceId, spanId, logger, traceCtx) {\r\n var _a;\r\n var self = this;\r\n var _logger = logger;\r\n var strResponseText = \"responseText\";\r\n // Assigning the initial/default values within the constructor to avoid typescript from creating a bunch of\r\n // this.XXXX = null\r\n self[_DYN_PERF_MARK /* @min:%2eperfMark */] = null;\r\n self.completed = false;\r\n self.requestHeadersSize = null;\r\n self[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = null;\r\n self.responseReceivingDuration = null;\r\n self.callbackDuration = null;\r\n self[_DYN_AJAX_TOTAL_DURATION /* @min:%2eajaxTotalDuration */] = null;\r\n self[_DYN_ABORTED /* @min:%2eaborted */] = 0;\r\n self.pageUrl = null;\r\n self[_DYN_REQUEST_URL /* @min:%2erequestUrl */] = null;\r\n self.requestSize = 0;\r\n self[_DYN_METHOD /* @min:%2emethod */] = null;\r\n self[_DYN_STATUS /* @min:%2estatus */] = null;\r\n self[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */] = null;\r\n self.responseStartedTime = null;\r\n self[_DYN_RESPONSE_FINISHED_TI15 /* @min:%2eresponseFinishedTime */] = null;\r\n self.callbackFinishedTime = null;\r\n self.endTime = null;\r\n self.xhrMonitoringState = new XHRMonitoringState();\r\n self.clientFailure = 0;\r\n self[_DYN_TRACE_ID /* @min:%2etraceID */] = traceId;\r\n self[_DYN_SPAN_ID /* @min:%2espanID */] = spanId;\r\n self[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = traceCtx === null || traceCtx === void 0 ? void 0 : traceCtx.getTraceFlags();\r\n if (traceCtx) {\r\n self[_DYN_EVENT_TRACE_CTX /* @min:%2eeventTraceCtx */] = (_a = {},\r\n _a[_DYN_TRACE_ID0 /* @min:traceId */] = traceCtx[_DYN_GET_TRACE_ID /* @min:%2egetTraceId */](),\r\n _a[_DYN_SPAN_ID1 /* @min:spanId */] = traceCtx.getSpanId(),\r\n _a[_DYN_TRACE_FLAGS /* @min:traceFlags */] = traceCtx[_DYN_GET_TRACE_FLAGS /* @min:%2egetTraceFlags */](),\r\n _a);\r\n }\r\n else {\r\n self[_DYN_EVENT_TRACE_CTX /* @min:%2eeventTraceCtx */] = null;\r\n }\r\n dynamicProto(ajaxRecord, self, function (self) {\r\n self.getAbsoluteUrl = function () {\r\n return self[_DYN_REQUEST_URL /* @min:%2erequestUrl */] ? urlGetAbsoluteUrl(self[_DYN_REQUEST_URL /* @min:%2erequestUrl */]) : null;\r\n };\r\n self.getPathName = function () {\r\n return self[_DYN_REQUEST_URL /* @min:%2erequestUrl */] ? dataSanitizeUrl(_logger, urlGetCompleteUrl(self[_DYN_METHOD /* @min:%2emethod */], self[_DYN_REQUEST_URL /* @min:%2erequestUrl */])) : null;\r\n };\r\n self[_DYN__CREATE_TRACK_ITEM /* @min:%2eCreateTrackItem */] = function (ajaxType, enableRequestHeaderTracking, getResponse) {\r\n var _a;\r\n // round to 3 decimal points\r\n self.ajaxTotalDuration = Math.round(dateTimeUtilsDuration(self.requestSentTime, self.responseFinishedTime) * 1000) / 1000;\r\n if (self[_DYN_AJAX_TOTAL_DURATION /* @min:%2eajaxTotalDuration */] < 0) {\r\n return null;\r\n }\r\n var dependency = (_a = {\r\n id: \"|\" + self[_DYN_TRACE_ID /* @min:%2etraceID */] + \".\" + self[_DYN_SPAN_ID /* @min:%2espanID */],\r\n target: self[_DYN_GET_ABSOLUTE_URL /* @min:%2egetAbsoluteUrl */]()\r\n },\r\n _a[_DYN_NAME /* @min:name */] = self.getPathName(),\r\n _a.type = ajaxType,\r\n _a[_DYN_START_TIME /* @min:startTime */] = null,\r\n _a.duration = self[_DYN_AJAX_TOTAL_DURATION /* @min:%2eajaxTotalDuration */],\r\n _a.success = (+(self[_DYN_STATUS /* @min:%2estatus */])) >= 200 && (+(self[_DYN_STATUS /* @min:%2estatus */])) < 400,\r\n _a.responseCode = (+(self[_DYN_STATUS /* @min:%2estatus */])),\r\n _a[STR_PROPERTIES] = { HttpMethod: self[_DYN_METHOD /* @min:%2emethod */] },\r\n _a);\r\n var props = dependency[STR_PROPERTIES];\r\n if (self[_DYN_ABORTED /* @min:%2eaborted */]) {\r\n props[_DYN_ABORTED /* @min:%2eaborted */] = true;\r\n }\r\n if (self[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */]) {\r\n // Set the correct dependency start time\r\n dependency[_DYN_START_TIME /* @min:%2estartTime */] = new Date();\r\n dependency[_DYN_START_TIME /* @min:%2estartTime */].setTime(self[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */]);\r\n }\r\n // Add Ajax perf details if available\r\n _populatePerfData(self, dependency);\r\n if (enableRequestHeaderTracking) {\r\n if (objKeys(self.requestHeaders)[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n props[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = self[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */];\r\n }\r\n }\r\n if (getResponse) {\r\n var response = getResponse();\r\n if (response) {\r\n // enrich dependency target with correlation context from the server\r\n var correlationContext = response[_DYN_CORRELATION_CONTEXT /* @min:%2ecorrelationContext */];\r\n if (correlationContext) {\r\n dependency.correlationContext = /* dependency.target + \" | \" + */ correlationContext;\r\n }\r\n if (response[_DYN_HEADER_MAP /* @min:%2eheaderMap */]) {\r\n if (objKeys(response.headerMap)[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n props.responseHeaders = response[_DYN_HEADER_MAP /* @min:%2eheaderMap */];\r\n }\r\n }\r\n if (self[_DYN_ERROR_STATUS_TEXT /* @min:%2eerrorStatusText */]) {\r\n if (self[_DYN_STATUS /* @min:%2estatus */] >= 400) {\r\n var responseType = response.type;\r\n if (responseType === \"\" || responseType === \"text\") {\r\n props.responseText = response.responseText ? response[_DYN_STATUS_TEXT /* @min:%2estatusText */] + \" - \" + response[strResponseText] : response[_DYN_STATUS_TEXT /* @min:%2estatusText */];\r\n }\r\n if (responseType === \"json\") {\r\n props.responseText = response.response ? response[_DYN_STATUS_TEXT /* @min:%2estatusText */] + \" - \" + JSON.stringify(response[_DYN_RESPONSE /* @min:%2eresponse */]) : response[_DYN_STATUS_TEXT /* @min:%2estatusText */];\r\n }\r\n }\r\n else if (self[_DYN_STATUS /* @min:%2estatus */] === 0) {\r\n props.responseText = response[_DYN_STATUS_TEXT /* @min:%2estatusText */] || \"\";\r\n }\r\n }\r\n }\r\n }\r\n return dependency;\r\n };\r\n self[_DYN_GET_PART_APROPS /* @min:%2egetPartAProps */] = function () {\r\n var _a;\r\n var partA = null;\r\n var traceCtx = self[_DYN_EVENT_TRACE_CTX /* @min:%2eeventTraceCtx */];\r\n if (traceCtx && (traceCtx[_DYN_TRACE_ID0 /* @min:%2etraceId */] || traceCtx[_DYN_SPAN_ID1 /* @min:%2espanId */])) {\r\n partA = {};\r\n var traceExt = partA[Extensions.TraceExt] = (_a = {},\r\n _a[_DYN_TRACE_ID /* @min:traceID */] = traceCtx[_DYN_TRACE_ID0 /* @min:%2etraceId */],\r\n _a.parentID = traceCtx[_DYN_SPAN_ID1 /* @min:%2espanId */],\r\n _a);\r\n if (!isNullOrUndefined(traceCtx[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */])) {\r\n traceExt[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = traceCtx[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n }\r\n }\r\n return partA;\r\n };\r\n });\r\n }\r\n// Removed Stub for ajaxRecord.prototype.getAbsoluteUrl.\r\n// Removed Stub for ajaxRecord.prototype.getPathName.\r\n// Removed Stub for ajaxRecord.prototype.CreateTrackItem.\r\n// Removed Stub for ajaxRecord.prototype.getPartAProps.\r\n // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n // this will be removed when ES3 support is dropped.\n ajaxRecord.__ieDyn=1;\n\n return ajaxRecord;\r\n}());\r\nexport { ajaxRecord };\r\n//# sourceMappingURL=ajaxRecord.js.map","/*\n * Application Insights JavaScript SDK - Dependencies Plugin, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { __assignFn as __assign, __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { CorrelationIdHelper, DisabledPropertyName, PropertiesPluginIdentifier, RemoteDependencyData, RequestHeaders, createDistributedTraceContextFromTrace, createTelemetryItem, createTraceParent, dateTimeUtilsNow, formatTraceParent, isInternalApplicationInsightsEndpoint } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, InstrumentFunc, InstrumentProto, _throwInternal, arrForEach, createProcessTelemetryContext, createUniqueNamespace, deepFreeze, dumpObj, eventOn, generateW3CId, getExceptionName, getGlobal, getIEVersion, getLocation, getPerformance, isFunction, isNullOrUndefined, isString, isXhrSupported, mergeEvtNamespace, objForEachKey, strPrototype, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nimport { STR_PROPERTIES } from \"./InternalConstants\";\r\nimport { _DYN_ABORTED, _DYN_ABORT_DONE, _DYN_ADD_REQUEST_CONTEXT, _DYN_AJAX_PERF_LOOKUP_DEL18, _DYN_APP_ID, _DYN_CAN_INCLUDE_CORRELAT3, _DYN_CONTEXT, _DYN_CORE, _DYN_DISABLE_AJAX_TRACKIN12, _DYN_DISABLE_FETCH_TRACKI13, _DYN_DISTRIBUTED_TRACING_5, _DYN_ENABLE_AJAX_ERROR_ST7, _DYN_ENABLE_AJAX_PERF_TRA8, _DYN_ENABLE_REQUEST_HEADE6, _DYN_ENABLE_RESPONSE_HEAD10, _DYN_ERROR_STATUS_TEXT, _DYN_EXCLUDE_REQUEST_FROM11, _DYN_GET_ABSOLUTE_URL, _DYN_GET_ALL_RESPONSE_HEA16, _DYN_GET_CORRELATION_CONT17, _DYN_GET_PART_APROPS, _DYN_GET_TRACE_FLAGS, _DYN_GET_TRACE_ID, _DYN_HEADERS, _DYN_HEADER_MAP, _DYN_INCLUDE_CORRELATION_2, _DYN_INST, _DYN_LENGTH, _DYN_MAX_AJAX_CALLS_PER_V9, _DYN_METHOD, _DYN_NAME, _DYN_OPEN_DONE, _DYN_PERF_MARK, _DYN_PERF_TIMING, _DYN_REQUEST_HEADERS, _DYN_REQUEST_SENT_TIME, _DYN_REQUEST_URL, _DYN_RESPONSE, _DYN_RESPONSE_FINISHED_TI15, _DYN_RESPONSE_TEXT, _DYN_SEND_DONE, _DYN_SET_REQUEST_HEADER, _DYN_SPAN_ID, _DYN_SPAN_ID1, _DYN_START_TIME, _DYN_STATE_CHANGE_ATTACHE14, _DYN_STATUS, _DYN_STATUS_TEXT, _DYN_TO_LOWER_CASE, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN_TRACE_ID0, _DYN_TRACK_DEPENDENCY_DAT4, _DYN__CREATE_TRACK_ITEM } from \"./__DynamicConstants\";\r\nimport { ajaxRecord } from \"./ajaxRecord\";\r\nvar AJAX_MONITOR_PREFIX = \"ai.ajxmn.\";\r\nvar strDiagLog = \"diagLog\";\r\nvar strAjaxData = \"ajaxData\";\r\nvar STR_FETCH = \"fetch\";\r\nvar ERROR_HEADER = \"Failed to monitor XMLHttpRequest\";\r\nvar ERROR_PREFIX = \", monitoring data for this ajax call \";\r\nvar ERROR_POSTFIX = ERROR_PREFIX + \"may be incorrect.\";\r\nvar ERROR_NOT_SENT = ERROR_PREFIX + \"won't be sent.\";\r\nvar CORRELATION_HEADER_ERROR = \"Failed to get Request-Context correlation header as it may be not included in the response or not accessible.\";\r\nvar CUSTOM_REQUEST_CONTEXT_ERROR = \"Failed to add custom defined request context as configured call back may missing a null check.\";\r\nvar FAILED_TO_CALCULATE_DURATION_ERROR = \"Failed to calculate the duration of the \";\r\n// Using a global value so that to handle same iKey with multiple app insights instances (mostly for testing)\r\nvar _markCount = 0;\r\n/** @Ignore */\r\nfunction _supportsFetch() {\r\n var _global = getGlobal();\r\n if (!_global ||\r\n isNullOrUndefined(_global.Request) ||\r\n isNullOrUndefined(_global.Request[strPrototype]) ||\r\n isNullOrUndefined(_global[STR_FETCH])) {\r\n return null;\r\n }\r\n return _global[STR_FETCH];\r\n}\r\nvar _isWebWorker = null;\r\nfunction isWebWorker() {\r\n if (_isWebWorker == null) {\r\n try {\r\n _isWebWorker = !!(self && self instanceof WorkerGlobalScope);\r\n }\r\n catch (e) {\r\n _isWebWorker = false;\r\n }\r\n }\r\n return _isWebWorker;\r\n}\r\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 */\r\nfunction _supportsAjaxMonitoring(ajaxMonitorInstance) {\r\n var result = false;\r\n if (isXhrSupported()) {\r\n var proto = XMLHttpRequest[strPrototype];\r\n result = !isNullOrUndefined(proto) &&\r\n !isNullOrUndefined(proto.open) && // eslint-disable-line security/detect-non-literal-fs-filename -- false positive\r\n !isNullOrUndefined(proto.send) &&\r\n !isNullOrUndefined(proto.abort);\r\n }\r\n var ieVer = getIEVersion();\r\n if (ieVer && ieVer < 9) {\r\n result = false;\r\n }\r\n if (result) {\r\n // Disable if the XmlHttpRequest can't be extended or hooked\r\n try {\r\n var xhr = new XMLHttpRequest();\r\n xhr[strAjaxData] = {};\r\n // Check that we can update the prototype\r\n var theOpen = XMLHttpRequest[strPrototype].open;\r\n XMLHttpRequest[strPrototype].open = theOpen;\r\n }\r\n catch (e) {\r\n // We can't decorate the xhr object so disable monitoring\r\n result = false;\r\n _throwInternalCritical(ajaxMonitorInstance, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, \"Failed to enable XMLHttpRequest monitoring, extension is not supported\", {\r\n exception: dumpObj(e)\r\n });\r\n }\r\n }\r\n return result;\r\n}\r\n/** @Ignore */\r\nfunction _getFailedAjaxDiagnosticsMessage(xhr) {\r\n var result = \"\";\r\n try {\r\n if (xhr && xhr[strAjaxData] && xhr[strAjaxData][_DYN_REQUEST_URL /* @min:%2erequestUrl */]) {\r\n result += \"(url: '\" + xhr[strAjaxData][_DYN_REQUEST_URL /* @min:%2erequestUrl */] + \"')\";\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _throwInternalCritical(ajaxMonitorInstance, msgId, message, properties, isUserAct) {\r\n _throwInternal(ajaxMonitorInstance[strDiagLog](), 1 /* eLoggingSeverity.CRITICAL */, msgId, message, properties, isUserAct);\r\n}\r\n/** @ignore */\r\nfunction _throwInternalWarning(ajaxMonitorInstance, msgId, message, properties, isUserAct) {\r\n _throwInternal(ajaxMonitorInstance[strDiagLog](), 2 /* eLoggingSeverity.WARNING */, msgId, message, properties, isUserAct);\r\n}\r\n/** @Ignore */\r\nfunction _createErrorCallbackFunc(ajaxMonitorInstance, internalMessage, message) {\r\n // tslint:disable-next-line\r\n return function (args) {\r\n _throwInternalCritical(ajaxMonitorInstance, internalMessage, message, {\r\n ajaxDiagnosticsMessage: _getFailedAjaxDiagnosticsMessage(args[_DYN_INST /* @min:%2einst */]),\r\n exception: dumpObj(args.err)\r\n });\r\n };\r\n}\r\nfunction _indexOf(value, match) {\r\n if (value && match) {\r\n return value.indexOf(match);\r\n }\r\n return -1;\r\n}\r\nfunction _addHandler(container, id, theFunc) {\r\n var theHandler = {\r\n id: id,\r\n fn: theFunc\r\n };\r\n container.push(theHandler);\r\n return {\r\n remove: function () {\r\n arrForEach(container, function (initializer, idx) {\r\n if (initializer.id === theHandler.id) {\r\n container.splice(idx, 1);\r\n return -1;\r\n }\r\n });\r\n }\r\n };\r\n}\r\nfunction _processDependencyContainer(core, container, details, message) {\r\n var result = true;\r\n arrForEach(container, function (theFunc, idx) {\r\n try {\r\n if (theFunc.fn.call(null, details) === false) {\r\n result = false;\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(core && core.logger, 1 /* eLoggingSeverity.CRITICAL */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, \"Dependency \" + message + \" [#\" + idx + \"] failed: \" + getExceptionName(e), { exception: dumpObj(e) }, true);\r\n }\r\n });\r\n return result;\r\n}\r\nfunction _processDependencyListeners(listeners, core, ajaxData, xhr, input, init) {\r\n var initializersCount = listeners[_DYN_LENGTH /* @min:%2elength */];\r\n if (initializersCount > 0) {\r\n var details = {\r\n core: core,\r\n xhr: xhr,\r\n input: input,\r\n init: init,\r\n traceId: ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */],\r\n spanId: ajaxData[_DYN_SPAN_ID /* @min:%2espanID */],\r\n traceFlags: ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */],\r\n context: ajaxData[_DYN_CONTEXT /* @min:%2econtext */] || {},\r\n aborted: !!ajaxData[_DYN_ABORTED /* @min:%2eaborted */]\r\n };\r\n _processDependencyContainer(core, listeners, details, \"listener\");\r\n ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */] = details[_DYN_TRACE_ID0 /* @min:%2etraceId */];\r\n ajaxData[_DYN_SPAN_ID /* @min:%2espanID */] = details[_DYN_SPAN_ID1 /* @min:%2espanId */];\r\n ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = details[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n ajaxData[_DYN_CONTEXT /* @min:%2econtext */] = details[_DYN_CONTEXT /* @min:%2econtext */];\r\n }\r\n}\r\nvar BLOB_CORE = \"*.blob.core.\";\r\nexport var DfltAjaxCorrelationHeaderExDomains = deepFreeze([\r\n BLOB_CORE + \"windows.net\",\r\n BLOB_CORE + \"chinacloudapi.cn\",\r\n BLOB_CORE + \"cloudapi.de\",\r\n BLOB_CORE + \"usgovcloudapi.net\"\r\n]);\r\nvar _internalExcludeEndpoints = [\r\n /https:\\/\\/[^\\/]*(\\.pipe\\.aria|aria\\.pipe|events\\.data|collector\\.azure)\\.[^\\/]+\\/(OneCollector\\/1|Collector\\/3)\\.0/i\r\n];\r\nfunction _getDefaultConfig() {\r\n var config = {\r\n maxAjaxCallsPerView: 500,\r\n disableAjaxTracking: false,\r\n disableFetchTracking: false,\r\n excludeRequestFromAutoTrackingPatterns: undefined,\r\n disableCorrelationHeaders: false,\r\n distributedTracingMode: 1 /* eDistributedTracingModes.AI_AND_W3C */,\r\n correlationHeaderExcludedDomains: DfltAjaxCorrelationHeaderExDomains,\r\n correlationHeaderDomains: undefined,\r\n correlationHeaderExcludePatterns: undefined,\r\n appId: undefined,\r\n enableCorsCorrelation: false,\r\n enableRequestHeaderTracking: false,\r\n enableResponseHeaderTracking: false,\r\n enableAjaxErrorStatusText: false,\r\n enableAjaxPerfTracking: false,\r\n maxAjaxPerfLookupAttempts: 3,\r\n ajaxPerfLookupDelay: 25,\r\n ignoreHeaders: [\r\n \"Authorization\",\r\n \"X-API-Key\",\r\n \"WWW-Authenticate\"\r\n ],\r\n addRequestContext: undefined,\r\n addIntEndpoints: true\r\n };\r\n return config;\r\n}\r\nfunction _getEmptyConfig() {\r\n var emptyConfig = _getDefaultConfig();\r\n objForEachKey(emptyConfig, function (value) {\r\n emptyConfig[value] = undefined;\r\n });\r\n return emptyConfig;\r\n}\r\nvar AjaxMonitor = /** @class */ (function (_super) {\r\n __extends(AjaxMonitor, _super);\r\n function AjaxMonitor() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = AjaxMonitor.identifier;\r\n _this.priority = 120;\r\n var _fetchInitialized; // fetch monitoring initialized\r\n var _xhrInitialized; // XHR monitoring initialized\r\n var _currentWindowHost;\r\n var _config;\r\n var _enableRequestHeaderTracking;\r\n var _enableAjaxErrorStatusText;\r\n var _trackAjaxAttempts;\r\n var _context;\r\n var _isUsingW3CHeaders;\r\n var _isUsingAIHeaders;\r\n var _markPrefix;\r\n var _enableAjaxPerfTracking;\r\n var _maxAjaxCallsPerView;\r\n var _enableResponseHeaderTracking;\r\n var _disabledUrls;\r\n var _disableAjaxTracking;\r\n var _disableFetchTracking;\r\n var _excludeRequestFromAutoTrackingPatterns;\r\n var _addRequestContext;\r\n var _evtNamespace;\r\n var _dependencyHandlerId;\r\n var _dependencyListeners;\r\n var _dependencyInitializers;\r\n dynamicProto(AjaxMonitor, _this, function (_self, _base) {\r\n var _addHook = _base._addHook;\r\n _initDefaults();\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n if (!_self.isInitialized()) {\r\n _base.initialize(config, core, extensions, pluginChain);\r\n _evtNamespace = mergeEvtNamespace(createUniqueNamespace(\"ajax\"), core && core.evtNamespace && core.evtNamespace());\r\n _populateDefaults(config);\r\n _instrumentXhr();\r\n _instrumentFetch();\r\n _populateContext();\r\n }\r\n };\r\n _self._doTeardown = function () {\r\n _initDefaults();\r\n };\r\n _self.trackDependencyData = function (dependency, properties) {\r\n _reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE /* @min:%2ecore */], null, dependency, properties);\r\n };\r\n _self[_DYN_INCLUDE_CORRELATION_2 /* @min:%2eincludeCorrelationHeaders */] = function (ajaxData, input, init, xhr) {\r\n // Test Hook to allow the overriding of the location host\r\n var currentWindowHost = _self[\"_currentWindowHost\"] || _currentWindowHost;\r\n _processDependencyListeners(_dependencyListeners, _self[_DYN_CORE /* @min:%2ecore */], ajaxData, xhr, input, init);\r\n if (input) { // Fetch\r\n if (CorrelationIdHelper[_DYN_CAN_INCLUDE_CORRELAT3 /* @min:%2ecanIncludeCorrelationHeader */](_config, ajaxData[_DYN_GET_ABSOLUTE_URL /* @min:%2egetAbsoluteUrl */](), currentWindowHost)) {\r\n if (!init) {\r\n init = {};\r\n }\r\n // init headers override original request headers\r\n // so, if they exist use only them, otherwise use request's because they should have been applied in the first place\r\n // not using original request headers will result in them being lost\r\n var headers = new Headers(init[_DYN_HEADERS /* @min:%2eheaders */] || (input instanceof Request ? (input[_DYN_HEADERS /* @min:%2eheaders */] || {}) : {}));\r\n if (_isUsingAIHeaders) {\r\n var id = \"|\" + ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */] + \".\" + ajaxData[_DYN_SPAN_ID /* @min:%2espanID */];\r\n headers.set(RequestHeaders[3 /* eRequestHeaders.requestIdHeader */], id);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[3 /* eRequestHeaders.requestIdHeader */]] = id;\r\n }\r\n }\r\n var appId = _config[_DYN_APP_ID /* @min:%2eappId */] || (_context && _context[_DYN_APP_ID /* @min:%2eappId */]());\r\n if (appId) {\r\n headers.set(RequestHeaders[0 /* eRequestHeaders.requestContextHeader */], RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]] = RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId;\r\n }\r\n }\r\n if (_isUsingW3CHeaders) {\r\n var traceFlags = ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n if (isNullOrUndefined(traceFlags)) {\r\n traceFlags = 0x01;\r\n }\r\n var traceParent = formatTraceParent(createTraceParent(ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */], ajaxData[_DYN_SPAN_ID /* @min:%2espanID */], traceFlags));\r\n headers.set(RequestHeaders[4 /* eRequestHeaders.traceParentHeader */], traceParent);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[4 /* eRequestHeaders.traceParentHeader */]] = traceParent;\r\n }\r\n }\r\n init[_DYN_HEADERS /* @min:%2eheaders */] = headers;\r\n }\r\n return init;\r\n }\r\n else if (xhr) { // XHR\r\n if (CorrelationIdHelper[_DYN_CAN_INCLUDE_CORRELAT3 /* @min:%2ecanIncludeCorrelationHeader */](_config, ajaxData[_DYN_GET_ABSOLUTE_URL /* @min:%2egetAbsoluteUrl */](), currentWindowHost)) {\r\n if (_isUsingAIHeaders) {\r\n var id = \"|\" + ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */] + \".\" + ajaxData[_DYN_SPAN_ID /* @min:%2espanID */];\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](RequestHeaders[3 /* eRequestHeaders.requestIdHeader */], id);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[3 /* eRequestHeaders.requestIdHeader */]] = id;\r\n }\r\n }\r\n var appId = _config[_DYN_APP_ID /* @min:%2eappId */] || (_context && _context[_DYN_APP_ID /* @min:%2eappId */]());\r\n if (appId) {\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](RequestHeaders[0 /* eRequestHeaders.requestContextHeader */], RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]] = RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId;\r\n }\r\n }\r\n if (_isUsingW3CHeaders) {\r\n var traceFlags = ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n if (isNullOrUndefined(traceFlags)) {\r\n traceFlags = 0x01;\r\n }\r\n var traceParent = formatTraceParent(createTraceParent(ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */], ajaxData[_DYN_SPAN_ID /* @min:%2espanID */], traceFlags));\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](RequestHeaders[4 /* eRequestHeaders.traceParentHeader */], traceParent);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[4 /* eRequestHeaders.traceParentHeader */]] = traceParent;\r\n }\r\n }\r\n }\r\n return xhr;\r\n }\r\n return undefined;\r\n };\r\n _self[_DYN_TRACK_DEPENDENCY_DAT4 /* @min:%2etrackDependencyDataInternal */] = function (dependency, properties, systemProperties) {\r\n if (_maxAjaxCallsPerView === -1 || _trackAjaxAttempts < _maxAjaxCallsPerView) {\r\n // Hack since expected format in w3c mode is |abc.def.\r\n // Non-w3c format is |abc.def\r\n // @todo Remove if better solution is available, e.g. handle in portal\r\n if ((_config[_DYN_DISTRIBUTED_TRACING_5 /* @min:%2edistributedTracingMode */] === 2 /* eDistributedTracingModes.W3C */\r\n || _config[_DYN_DISTRIBUTED_TRACING_5 /* @min:%2edistributedTracingMode */] === 1 /* eDistributedTracingModes.AI_AND_W3C */)\r\n && typeof dependency.id === \"string\" && dependency.id[dependency.id[_DYN_LENGTH /* @min:%2elength */] - 1] !== \".\") {\r\n dependency.id += \".\";\r\n }\r\n if (isNullOrUndefined(dependency[_DYN_START_TIME /* @min:%2estartTime */])) {\r\n dependency[_DYN_START_TIME /* @min:%2estartTime */] = new Date();\r\n }\r\n var item = createTelemetryItem(dependency, RemoteDependencyData.dataType, RemoteDependencyData.envelopeType, _self[strDiagLog](), properties, systemProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */].track(item);\r\n }\r\n else if (_trackAjaxAttempts === _maxAjaxCallsPerView) {\r\n _throwInternalCritical(_self, 55 /* _eInternalMessageId.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);\r\n }\r\n ++_trackAjaxAttempts;\r\n };\r\n _self.addDependencyListener = function (dependencyListener) {\r\n return _addHandler(_dependencyListeners, _dependencyHandlerId++, dependencyListener);\r\n };\r\n _self.addDependencyInitializer = function (dependencyInitializer) {\r\n return _addHandler(_dependencyInitializers, _dependencyHandlerId++, dependencyInitializer);\r\n };\r\n function _initDefaults() {\r\n var location = getLocation();\r\n _fetchInitialized = false; // fetch monitoring initialized\r\n _xhrInitialized = false; // XHR monitoring initialized\r\n _currentWindowHost = location && location.host && location.host[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n _config = AjaxMonitor.getEmptyConfig();\r\n _enableRequestHeaderTracking = false;\r\n _enableAjaxErrorStatusText = false;\r\n _trackAjaxAttempts = 0;\r\n _context = null;\r\n _isUsingW3CHeaders = false;\r\n _isUsingAIHeaders = false;\r\n _markPrefix = null;\r\n _enableAjaxPerfTracking = false;\r\n _maxAjaxCallsPerView = 0;\r\n _enableResponseHeaderTracking = false;\r\n _disabledUrls = {};\r\n _disableAjaxTracking = false;\r\n _disableFetchTracking = false;\r\n _excludeRequestFromAutoTrackingPatterns = null;\r\n _addRequestContext = null;\r\n _evtNamespace = null;\r\n _dependencyHandlerId = 0;\r\n _dependencyListeners = [];\r\n _dependencyInitializers = [];\r\n }\r\n function _populateDefaults(config) {\r\n var ctx = createProcessTelemetryContext(null, config, _self[_DYN_CORE /* @min:%2ecore */]);\r\n // Reset to the empty config\r\n _config = _getEmptyConfig();\r\n var defaultConfig = _getDefaultConfig();\r\n objForEachKey(defaultConfig, function (field, value) {\r\n _config[field] = ctx.getConfig(AjaxMonitor.identifier, field, value);\r\n });\r\n var distributedTracingMode = _config[_DYN_DISTRIBUTED_TRACING_5 /* @min:%2edistributedTracingMode */];\r\n _enableRequestHeaderTracking = _config[_DYN_ENABLE_REQUEST_HEADE6 /* @min:%2eenableRequestHeaderTracking */];\r\n _enableAjaxErrorStatusText = _config[_DYN_ENABLE_AJAX_ERROR_ST7 /* @min:%2eenableAjaxErrorStatusText */];\r\n _enableAjaxPerfTracking = _config[_DYN_ENABLE_AJAX_PERF_TRA8 /* @min:%2eenableAjaxPerfTracking */];\r\n _maxAjaxCallsPerView = _config[_DYN_MAX_AJAX_CALLS_PER_V9 /* @min:%2emaxAjaxCallsPerView */];\r\n _enableResponseHeaderTracking = _config[_DYN_ENABLE_RESPONSE_HEAD10 /* @min:%2eenableResponseHeaderTracking */];\r\n _excludeRequestFromAutoTrackingPatterns = [].concat(_config[_DYN_EXCLUDE_REQUEST_FROM11 /* @min:%2eexcludeRequestFromAutoTrackingPatterns */] || [], _config.addIntEndpoints !== false ? _internalExcludeEndpoints : []);\r\n _addRequestContext = _config[_DYN_ADD_REQUEST_CONTEXT /* @min:%2eaddRequestContext */];\r\n _isUsingAIHeaders = distributedTracingMode === 0 /* eDistributedTracingModes.AI */ || distributedTracingMode === 1 /* eDistributedTracingModes.AI_AND_W3C */;\r\n _isUsingW3CHeaders = distributedTracingMode === 1 /* eDistributedTracingModes.AI_AND_W3C */ || distributedTracingMode === 2 /* eDistributedTracingModes.W3C */;\r\n if (_enableAjaxPerfTracking) {\r\n var iKey = config.instrumentationKey || \"unkwn\";\r\n if (iKey[_DYN_LENGTH /* @min:%2elength */] > 5) {\r\n _markPrefix = AJAX_MONITOR_PREFIX + iKey.substring(iKey[_DYN_LENGTH /* @min:%2elength */] - 5) + \".\";\r\n }\r\n else {\r\n _markPrefix = AJAX_MONITOR_PREFIX + iKey + \".\";\r\n }\r\n }\r\n _disableAjaxTracking = !!_config[_DYN_DISABLE_AJAX_TRACKIN12 /* @min:%2edisableAjaxTracking */];\r\n _disableFetchTracking = !!_config[_DYN_DISABLE_FETCH_TRACKI13 /* @min:%2edisableFetchTracking */];\r\n }\r\n function _populateContext() {\r\n var propExt = _self[_DYN_CORE /* @min:%2ecore */].getPlugin(PropertiesPluginIdentifier);\r\n if (propExt) {\r\n _context = propExt.plugin[_DYN_CONTEXT /* @min:%2econtext */]; // we could move IPropertiesPlugin to common as well\r\n }\r\n }\r\n // discard the header if it's defined as ignoreHeaders in ICorrelationConfig\r\n function _canIncludeHeaders(header) {\r\n var rlt = true;\r\n if (header || _config.ignoreHeaders) {\r\n arrForEach(_config.ignoreHeaders, (function (key) {\r\n if (key[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() === header[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]()) {\r\n rlt = false;\r\n return -1;\r\n }\r\n }));\r\n }\r\n return rlt;\r\n }\r\n // Fetch Stuff\r\n function _instrumentFetch() {\r\n var fetch = _supportsFetch();\r\n if (!fetch) {\r\n return;\r\n }\r\n var global = getGlobal();\r\n var isPolyfill = fetch.polyfill;\r\n if (!_disableFetchTracking && !_fetchInitialized) {\r\n _addHook(InstrumentFunc(global, STR_FETCH, {\r\n ns: _evtNamespace,\r\n // Add request hook\r\n req: function (callDetails, input, init) {\r\n var fetchData;\r\n if (!_disableFetchTracking && _fetchInitialized &&\r\n !_isDisabledRequest(null, input, init) &&\r\n // If we have a polyfil and XHR instrumented then let XHR report otherwise we get duplicates\r\n !(isPolyfill && _xhrInitialized)) {\r\n var ctx = callDetails.ctx();\r\n fetchData = _createFetchRecord(input, init);\r\n var newInit = _self[_DYN_INCLUDE_CORRELATION_2 /* @min:%2eincludeCorrelationHeaders */](fetchData, input, init);\r\n if (newInit !== init) {\r\n callDetails.set(1, newInit);\r\n }\r\n ctx.data = fetchData;\r\n }\r\n },\r\n rsp: function (callDetails, input) {\r\n if (!_disableFetchTracking) {\r\n var fetchData_1 = callDetails.ctx().data;\r\n if (fetchData_1) {\r\n // Replace the result with the new promise from this code\r\n callDetails.rslt = callDetails.rslt.then(function (response) {\r\n _reportFetchMetrics(callDetails, (response || {})[_DYN_STATUS /* @min:%2estatus */], input, response, fetchData_1, function () {\r\n var ajaxResponse = {\r\n statusText: (response || {})[_DYN_STATUS_TEXT /* @min:%2estatusText */],\r\n headerMap: null,\r\n correlationContext: _getFetchCorrelationContext(response)\r\n };\r\n if (_enableResponseHeaderTracking && response) {\r\n var responseHeaderMap_1 = {};\r\n response.headers.forEach(function (value, name) {\r\n if (_canIncludeHeaders(name)) {\r\n responseHeaderMap_1[name] = value;\r\n }\r\n });\r\n ajaxResponse[_DYN_HEADER_MAP /* @min:%2eheaderMap */] = responseHeaderMap_1;\r\n }\r\n return ajaxResponse;\r\n });\r\n return response;\r\n })[\"catch\"](function (reason) {\r\n _reportFetchMetrics(callDetails, 0, input, null, fetchData_1, null, { error: reason.message || dumpObj(reason) });\r\n throw reason;\r\n });\r\n }\r\n }\r\n },\r\n // Create an error callback to report any hook errors\r\n hkErr: _createErrorCallbackFunc(_self, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, \"Failed to monitor Window.fetch\" + ERROR_POSTFIX)\r\n }, true, isWebWorker()));\r\n _fetchInitialized = true;\r\n }\r\n else if (isPolyfill) {\r\n // If fetch is a polyfill we need to capture the request to ensure that we correctly track\r\n // disabled request URLS (i.e. internal urls) to ensure we don't end up in a constant loop\r\n // of reporting ourselves, for example React Native uses a polyfill for fetch\r\n // Note: Polyfill implementations that don't support the \"poyyfill\" tag are not supported\r\n // the workaround is to add a polyfill property to your fetch implementation before initializing\r\n // App Insights\r\n _addHook(InstrumentFunc(global, STR_FETCH, {\r\n ns: _evtNamespace,\r\n req: function (callDetails, input, init) {\r\n // Just call so that we record any disabled URL\r\n _isDisabledRequest(null, input, init);\r\n }\r\n }));\r\n }\r\n if (isPolyfill) {\r\n // retag the instrumented fetch with the same polyfill settings this is mostly for testing\r\n // But also supports multiple App Insights usages\r\n global[STR_FETCH].polyfill = isPolyfill;\r\n }\r\n }\r\n function _hookProto(target, funcName, callbacks) {\r\n _addHook(InstrumentProto(target, funcName, callbacks));\r\n }\r\n function _instrumentXhr() {\r\n if (_supportsAjaxMonitoring(_self) && !_disableAjaxTracking && !_xhrInitialized) {\r\n // Instrument open\r\n _hookProto(XMLHttpRequest, \"open\", {\r\n ns: _evtNamespace,\r\n req: function (args, method, url, async) {\r\n if (!_disableAjaxTracking) {\r\n var xhr = args[_DYN_INST /* @min:%2einst */];\r\n var ajaxData = xhr[strAjaxData];\r\n if (!_isDisabledRequest(xhr, url) && _isMonitoredXhrInstance(xhr, true)) {\r\n if (!ajaxData || !ajaxData.xhrMonitoringState[_DYN_OPEN_DONE /* @min:%2eopenDone */]) {\r\n // Only create a single ajaxData (even when multiple AI instances are running)\r\n _openHandler(xhr, method, url, async);\r\n }\r\n // always attach to the on ready state change (required for handling multiple instances)\r\n _attachToOnReadyStateChange(xhr);\r\n }\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, ERROR_HEADER + \".open\" + ERROR_POSTFIX)\r\n });\r\n // Instrument send\r\n _hookProto(XMLHttpRequest, \"send\", {\r\n ns: _evtNamespace,\r\n req: function (args, context) {\r\n if (!_disableAjaxTracking) {\r\n var xhr = args[_DYN_INST /* @min:%2einst */];\r\n var ajaxData = xhr[strAjaxData];\r\n if (_isMonitoredXhrInstance(xhr) && !ajaxData.xhrMonitoringState[_DYN_SEND_DONE /* @min:%2esendDone */]) {\r\n _createMarkId(\"xhr\", ajaxData);\r\n ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */] = dateTimeUtilsNow();\r\n _self[_DYN_INCLUDE_CORRELATION_2 /* @min:%2eincludeCorrelationHeaders */](ajaxData, undefined, undefined, xhr);\r\n ajaxData.xhrMonitoringState[_DYN_SEND_DONE /* @min:%2esendDone */] = true;\r\n }\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, 17 /* _eInternalMessageId.FailedMonitorAjaxSend */, ERROR_HEADER + ERROR_POSTFIX)\r\n });\r\n // Instrument abort\r\n _hookProto(XMLHttpRequest, \"abort\", {\r\n ns: _evtNamespace,\r\n req: function (args) {\r\n if (!_disableAjaxTracking) {\r\n var xhr = args[_DYN_INST /* @min:%2einst */];\r\n var ajaxData = xhr[strAjaxData];\r\n if (_isMonitoredXhrInstance(xhr) && !ajaxData.xhrMonitoringState[_DYN_ABORT_DONE /* @min:%2eabortDone */]) {\r\n ajaxData[_DYN_ABORTED /* @min:%2eaborted */] = 1;\r\n ajaxData.xhrMonitoringState[_DYN_ABORT_DONE /* @min:%2eabortDone */] = true;\r\n }\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, 13 /* _eInternalMessageId.FailedMonitorAjaxAbort */, ERROR_HEADER + \".abort\" + ERROR_POSTFIX)\r\n });\r\n // Instrument setRequestHeader\r\n _hookProto(XMLHttpRequest, \"setRequestHeader\", {\r\n ns: _evtNamespace,\r\n req: function (args, header, value) {\r\n if (!_disableAjaxTracking && _enableRequestHeaderTracking) {\r\n var xhr = args[_DYN_INST /* @min:%2einst */];\r\n if (_isMonitoredXhrInstance(xhr) && _canIncludeHeaders(header)) {\r\n xhr[strAjaxData][_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][header] = value;\r\n }\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, 71 /* _eInternalMessageId.FailedMonitorAjaxSetRequestHeader */, ERROR_HEADER + \".setRequestHeader\" + ERROR_POSTFIX)\r\n });\r\n _xhrInitialized = true;\r\n }\r\n }\r\n function _isDisabledRequest(xhr, request, init) {\r\n var isDisabled = false;\r\n var theUrl = ((!isString(request) ? (request || {}).url || \"\" : request) || \"\")[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n // check excludeRequestFromAutoTrackingPatterns before stripping off any query string\r\n arrForEach(_excludeRequestFromAutoTrackingPatterns, function (regex) {\r\n var theRegex = regex;\r\n if (isString(regex)) {\r\n theRegex = new RegExp(regex);\r\n }\r\n if (!isDisabled) {\r\n isDisabled = theRegex.test(theUrl);\r\n }\r\n });\r\n // if request url matches with exclude regex pattern, return true and no need to check for headers\r\n if (isDisabled) {\r\n return isDisabled;\r\n }\r\n var idx = _indexOf(theUrl, \"?\");\r\n var idx2 = _indexOf(theUrl, \"#\");\r\n if (idx === -1 || (idx2 !== -1 && idx2 < idx)) {\r\n idx = idx2;\r\n }\r\n if (idx !== -1) {\r\n // Strip off any Query string\r\n theUrl = theUrl.substring(0, idx);\r\n }\r\n // check that this instance is not not used by ajax call performed inside client side monitoring to send data to collector\r\n if (!isNullOrUndefined(xhr)) {\r\n // Look on the XMLHttpRequest of the URL string value\r\n isDisabled = xhr[DisabledPropertyName] === true || theUrl[DisabledPropertyName] === true;\r\n }\r\n else if (!isNullOrUndefined(request)) { // fetch\r\n // Look for DisabledPropertyName in either Request or RequestInit\r\n isDisabled = (typeof request === \"object\" ? request[DisabledPropertyName] === true : false) ||\r\n (init ? init[DisabledPropertyName] === true : false);\r\n }\r\n // Also add extra check just in case the XHR or fetch objects where not decorated with the DisableProperty due to sealing or freezing\r\n if (!isDisabled && theUrl && isInternalApplicationInsightsEndpoint(theUrl)) {\r\n isDisabled = true;\r\n }\r\n if (isDisabled) {\r\n // Add the disabled url if not present\r\n if (!_disabledUrls[theUrl]) {\r\n _disabledUrls[theUrl] = 1;\r\n }\r\n }\r\n else {\r\n // Check to see if the url is listed as disabled\r\n if (_disabledUrls[theUrl]) {\r\n isDisabled = true;\r\n }\r\n }\r\n return isDisabled;\r\n }\r\n /// Verifies that particalar instance of XMLHttpRequest needs to be monitored\r\n /// Optional parameter. True if ajaxData must be excluded from verification\r\n /// True if instance needs to be monitored, otherwise false\r\n function _isMonitoredXhrInstance(xhr, excludeAjaxDataValidation) {\r\n var ajaxValidation = true;\r\n var initialized = _xhrInitialized;\r\n if (!isNullOrUndefined(xhr)) {\r\n ajaxValidation = excludeAjaxDataValidation === true || !isNullOrUndefined(xhr[strAjaxData]);\r\n }\r\n // checking to see that all interested functions on xhr were instrumented\r\n return initialized\r\n // checking on ajaxData to see that it was not removed in user code\r\n && ajaxValidation;\r\n }\r\n function _getDistributedTraceCtx() {\r\n var distributedTraceCtx = null;\r\n if (_self[_DYN_CORE /* @min:%2ecore */] && _self[_DYN_CORE /* @min:%2ecore */].getTraceCtx) {\r\n distributedTraceCtx = _self[_DYN_CORE /* @min:%2ecore */].getTraceCtx(false);\r\n }\r\n // Fall back\r\n if (!distributedTraceCtx && _context && _context.telemetryTrace) {\r\n distributedTraceCtx = createDistributedTraceContextFromTrace(_context.telemetryTrace);\r\n }\r\n return distributedTraceCtx;\r\n }\r\n function _openHandler(xhr, method, url, async) {\r\n var _a;\r\n var distributedTraceCtx = _getDistributedTraceCtx();\r\n var traceID = (distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_ID /* @min:%2egetTraceId */]()) || generateW3CId();\r\n var spanID = generateW3CId().substr(0, 16);\r\n var ajaxData = new ajaxRecord(traceID, spanID, _self[strDiagLog](), (_a = _self.core) === null || _a === void 0 ? void 0 : _a.getTraceCtx());\r\n ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_FLAGS /* @min:%2egetTraceFlags */]();\r\n ajaxData[_DYN_METHOD /* @min:%2emethod */] = method;\r\n ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] = url;\r\n ajaxData.xhrMonitoringState[_DYN_OPEN_DONE /* @min:%2eopenDone */] = true;\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = {};\r\n ajaxData.async = async;\r\n ajaxData[_DYN_ERROR_STATUS_TEXT /* @min:%2eerrorStatusText */] = _enableAjaxErrorStatusText;\r\n xhr[strAjaxData] = ajaxData;\r\n }\r\n function _attachToOnReadyStateChange(xhr) {\r\n xhr[strAjaxData].xhrMonitoringState[_DYN_STATE_CHANGE_ATTACHE14 /* @min:%2estateChangeAttached */] = eventOn(xhr, \"readystatechange\", function () {\r\n try {\r\n if (xhr && xhr.readyState === 4 && _isMonitoredXhrInstance(xhr)) {\r\n _onAjaxComplete(xhr);\r\n }\r\n }\r\n catch (e) {\r\n var exceptionText = dumpObj(e);\r\n // ignore messages with c00c023f, as this a known IE9 XHR abort issue\r\n if (!exceptionText || _indexOf(exceptionText[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](), \"c00c023f\") === -1) {\r\n _throwInternalCritical(_self, 16 /* _eInternalMessageId.FailedMonitorAjaxRSC */, ERROR_HEADER + \" 'readystatechange' event handler\" + ERROR_POSTFIX, {\r\n ajaxDiagnosticsMessage: _getFailedAjaxDiagnosticsMessage(xhr),\r\n exception: exceptionText\r\n });\r\n }\r\n }\r\n }, _evtNamespace);\r\n }\r\n function _getResponseText(xhr) {\r\n try {\r\n var responseType = xhr.responseType;\r\n if (responseType === \"\" || responseType === \"text\") {\r\n // As per the specification responseText is only valid if the type is an empty string or \"text\"\r\n return xhr[_DYN_RESPONSE_TEXT /* @min:%2eresponseText */];\r\n }\r\n }\r\n catch (e) {\r\n // This shouldn't happen because of the above check -- but just in case, so just ignore\r\n }\r\n return null;\r\n }\r\n function _onAjaxComplete(xhr) {\r\n var ajaxData = xhr[strAjaxData];\r\n ajaxData[_DYN_RESPONSE_FINISHED_TI15 /* @min:%2eresponseFinishedTime */] = dateTimeUtilsNow();\r\n ajaxData[_DYN_STATUS /* @min:%2estatus */] = xhr[_DYN_STATUS /* @min:%2estatus */];\r\n function _reportXhrError(e, failedProps) {\r\n var errorProps = failedProps || {};\r\n errorProps[\"ajaxDiagnosticsMessage\"] = _getFailedAjaxDiagnosticsMessage(xhr);\r\n if (e) {\r\n errorProps[\"exception\"] = dumpObj(e);\r\n }\r\n _throwInternalWarning(_self, 14 /* _eInternalMessageId.FailedMonitorAjaxDur */, FAILED_TO_CALCULATE_DURATION_ERROR + \"ajax call\" + ERROR_NOT_SENT, errorProps);\r\n }\r\n _findPerfResourceEntry(\"xmlhttprequest\", ajaxData, function () {\r\n try {\r\n var dependency = ajaxData[_DYN__CREATE_TRACK_ITEM /* @min:%2eCreateTrackItem */](\"Ajax\", _enableRequestHeaderTracking, function () {\r\n var ajaxResponse = {\r\n statusText: xhr[_DYN_STATUS_TEXT /* @min:%2estatusText */],\r\n headerMap: null,\r\n correlationContext: _getAjaxCorrelationContext(xhr),\r\n type: xhr.responseType,\r\n responseText: _getResponseText(xhr),\r\n response: xhr[_DYN_RESPONSE /* @min:%2eresponse */]\r\n };\r\n if (_enableResponseHeaderTracking) {\r\n var headers = xhr[_DYN_GET_ALL_RESPONSE_HEA16 /* @min:%2egetAllResponseHeaders */]();\r\n if (headers) {\r\n // xhr.getAllResponseHeaders() method returns all the response headers, separated by CRLF, as a string or null\r\n // the regex converts the header string into an array of individual headers\r\n var arr = strTrim(headers).split(/[\\r\\n]+/);\r\n var responseHeaderMap_2 = {};\r\n arrForEach(arr, function (line) {\r\n var parts = line.split(\": \");\r\n var header = parts.shift();\r\n var value = parts.join(\": \");\r\n if (_canIncludeHeaders(header)) {\r\n responseHeaderMap_2[header] = value;\r\n }\r\n });\r\n ajaxResponse[_DYN_HEADER_MAP /* @min:%2eheaderMap */] = responseHeaderMap_2;\r\n }\r\n }\r\n return ajaxResponse;\r\n });\r\n var properties = void 0;\r\n try {\r\n if (!!_addRequestContext) {\r\n properties = _addRequestContext({ status: xhr[_DYN_STATUS /* @min:%2estatus */], xhr: xhr });\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, 104 /* _eInternalMessageId.FailedAddingCustomDefinedRequestContext */, CUSTOM_REQUEST_CONTEXT_ERROR);\r\n }\r\n if (dependency) {\r\n if (properties !== undefined) {\r\n dependency[STR_PROPERTIES /* @min:%2eproperties */] = __assign(__assign({}, dependency.properties), properties);\r\n }\r\n var sysProperties = ajaxData[_DYN_GET_PART_APROPS /* @min:%2egetPartAProps */]();\r\n _reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE /* @min:%2ecore */], ajaxData, dependency, null, sysProperties);\r\n }\r\n else {\r\n _reportXhrError(null, {\r\n requestSentTime: ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */],\r\n responseFinishedTime: ajaxData[_DYN_RESPONSE_FINISHED_TI15 /* @min:%2eresponseFinishedTime */]\r\n });\r\n }\r\n }\r\n finally {\r\n // cleanup telemetry data\r\n try {\r\n xhr[strAjaxData] = null;\r\n }\r\n catch (e) {\r\n // May throw in environments that prevent extension or freeze xhr\r\n }\r\n }\r\n }, function (e) {\r\n _reportXhrError(e, null);\r\n });\r\n }\r\n function _getAjaxCorrelationContext(xhr) {\r\n try {\r\n var responseHeadersString = xhr[_DYN_GET_ALL_RESPONSE_HEA16 /* @min:%2egetAllResponseHeaders */]();\r\n if (responseHeadersString !== null) {\r\n var index = _indexOf(responseHeadersString[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](), RequestHeaders[8 /* eRequestHeaders.requestContextHeaderLowerCase */]);\r\n if (index !== -1) {\r\n var responseHeader = xhr.getResponseHeader(RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]);\r\n return CorrelationIdHelper[_DYN_GET_CORRELATION_CONT17 /* @min:%2egetCorrelationContext */](responseHeader);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, 18 /* _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader */, CORRELATION_HEADER_ERROR, {\r\n ajaxDiagnosticsMessage: _getFailedAjaxDiagnosticsMessage(xhr),\r\n exception: dumpObj(e)\r\n });\r\n }\r\n }\r\n function _createMarkId(type, ajaxData) {\r\n if (ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] && _markPrefix && _enableAjaxPerfTracking) {\r\n var performance_1 = getPerformance();\r\n if (performance_1 && isFunction(performance_1.mark)) {\r\n _markCount++;\r\n var markId = _markPrefix + type + \"#\" + _markCount;\r\n performance_1.mark(markId);\r\n var entries = performance_1.getEntriesByName(markId);\r\n if (entries && entries[_DYN_LENGTH /* @min:%2elength */] === 1) {\r\n ajaxData[_DYN_PERF_MARK /* @min:%2eperfMark */] = entries[0];\r\n }\r\n }\r\n }\r\n }\r\n function _findPerfResourceEntry(initiatorType, ajaxData, trackCallback, reportError) {\r\n var perfMark = ajaxData[_DYN_PERF_MARK /* @min:%2eperfMark */];\r\n var performance = getPerformance();\r\n var maxAttempts = _config.maxAjaxPerfLookupAttempts;\r\n var retryDelay = _config[_DYN_AJAX_PERF_LOOKUP_DEL18 /* @min:%2eajaxPerfLookupDelay */];\r\n var requestUrl = ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */];\r\n var attempt = 0;\r\n (function locateResourceTiming() {\r\n try {\r\n if (performance && perfMark) {\r\n attempt++;\r\n var perfTiming = null;\r\n var entries = performance.getEntries();\r\n for (var lp = entries[_DYN_LENGTH /* @min:%2elength */] - 1; lp >= 0; lp--) {\r\n var entry = entries[lp];\r\n if (entry) {\r\n if (entry.entryType === \"resource\") {\r\n if (entry.initiatorType === initiatorType &&\r\n (_indexOf(entry[_DYN_NAME /* @min:%2ename */], requestUrl) !== -1 || _indexOf(requestUrl, entry[_DYN_NAME /* @min:%2ename */]) !== -1)) {\r\n perfTiming = entry;\r\n }\r\n }\r\n else if (entry.entryType === \"mark\" && entry[_DYN_NAME /* @min:%2ename */] === perfMark[_DYN_NAME /* @min:%2ename */]) {\r\n // We hit the start event\r\n ajaxData[_DYN_PERF_TIMING /* @min:%2eperfTiming */] = perfTiming;\r\n break;\r\n }\r\n if (entry[_DYN_START_TIME /* @min:%2estartTime */] < perfMark[_DYN_START_TIME /* @min:%2estartTime */] - 1000) {\r\n // Fallback to try and reduce the time spent looking for the perf entry\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n if (!perfMark || // - we don't have a perfMark or\r\n ajaxData[_DYN_PERF_TIMING /* @min:%2eperfTiming */] || // - we have not found the perf entry or\r\n attempt >= maxAttempts || // - we have tried too many attempts or\r\n ajaxData.async === false) { // - this is a sync request\r\n if (perfMark && isFunction(performance.clearMarks)) {\r\n // Remove the mark so we don't fill up the performance resources too much\r\n performance.clearMarks(perfMark[_DYN_NAME /* @min:%2ename */]);\r\n }\r\n ajaxData.perfAttempts = attempt;\r\n // just continue and report the track event\r\n trackCallback();\r\n }\r\n else {\r\n // We need to wait for the browser to populate the window.performance entry\r\n // This needs to be at least 1ms as waiting <= 1 (on firefox) is not enough time for fetch or xhr,\r\n // this is a scheduling issue for the browser implementation\r\n setTimeout(locateResourceTiming, retryDelay);\r\n }\r\n }\r\n catch (e) {\r\n reportError(e);\r\n }\r\n })();\r\n }\r\n function _createFetchRecord(input, init) {\r\n var _a;\r\n var distributedTraceCtx = _getDistributedTraceCtx();\r\n var traceID = (distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_ID /* @min:%2egetTraceId */]()) || generateW3CId();\r\n var spanID = generateW3CId().substr(0, 16);\r\n var ajaxData = new ajaxRecord(traceID, spanID, _self[strDiagLog](), (_a = _self.core) === null || _a === void 0 ? void 0 : _a.getTraceCtx());\r\n ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_FLAGS /* @min:%2egetTraceFlags */]();\r\n ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */] = dateTimeUtilsNow();\r\n ajaxData[_DYN_ERROR_STATUS_TEXT /* @min:%2eerrorStatusText */] = _enableAjaxErrorStatusText;\r\n if (input instanceof Request) {\r\n ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] = input ? input.url : \"\";\r\n }\r\n else {\r\n ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] = input;\r\n }\r\n var method = \"GET\";\r\n if (init && init[_DYN_METHOD /* @min:%2emethod */]) {\r\n method = init[_DYN_METHOD /* @min:%2emethod */];\r\n }\r\n else if (input && input instanceof Request) {\r\n method = input[_DYN_METHOD /* @min:%2emethod */];\r\n }\r\n ajaxData[_DYN_METHOD /* @min:%2emethod */] = method;\r\n var requestHeaders = {};\r\n if (_enableRequestHeaderTracking) {\r\n var headers = new Headers((init ? init[_DYN_HEADERS /* @min:%2eheaders */] : 0) || (input instanceof Request ? (input[_DYN_HEADERS /* @min:%2eheaders */] || {}) : {}));\r\n headers.forEach(function (value, key) {\r\n if (_canIncludeHeaders(key)) {\r\n requestHeaders[key] = value;\r\n }\r\n });\r\n }\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = requestHeaders;\r\n _createMarkId(STR_FETCH, ajaxData);\r\n return ajaxData;\r\n }\r\n function _getFailedFetchDiagnosticsMessage(input) {\r\n var result = \"\";\r\n try {\r\n if (!isNullOrUndefined(input)) {\r\n if (typeof (input) === \"string\") {\r\n result += \"(url: '\".concat(input, \"')\");\r\n }\r\n else {\r\n result += \"(url: '\".concat(input.url, \"')\");\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalCritical(_self, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, \"Failed to grab failed fetch diagnostics message\", { exception: dumpObj(e) });\r\n }\r\n return result;\r\n }\r\n function _reportFetchMetrics(callDetails, status, input, response, ajaxData, getResponse, properties) {\r\n if (!ajaxData) {\r\n return;\r\n }\r\n function _reportFetchError(msgId, e, failedProps) {\r\n var errorProps = failedProps || {};\r\n errorProps[\"fetchDiagnosticsMessage\"] = _getFailedFetchDiagnosticsMessage(input);\r\n if (e) {\r\n errorProps[\"exception\"] = dumpObj(e);\r\n }\r\n _throwInternalWarning(_self, msgId, FAILED_TO_CALCULATE_DURATION_ERROR + \"fetch call\" + ERROR_NOT_SENT, errorProps);\r\n }\r\n ajaxData[_DYN_RESPONSE_FINISHED_TI15 /* @min:%2eresponseFinishedTime */] = dateTimeUtilsNow();\r\n ajaxData[_DYN_STATUS /* @min:%2estatus */] = status;\r\n _findPerfResourceEntry(STR_FETCH, ajaxData, function () {\r\n var dependency = ajaxData[_DYN__CREATE_TRACK_ITEM /* @min:%2eCreateTrackItem */](\"Fetch\", _enableRequestHeaderTracking, getResponse);\r\n var properties;\r\n try {\r\n if (!!_addRequestContext) {\r\n properties = _addRequestContext({ status: status, request: input, response: response });\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, 104 /* _eInternalMessageId.FailedAddingCustomDefinedRequestContext */, CUSTOM_REQUEST_CONTEXT_ERROR);\r\n }\r\n if (dependency) {\r\n if (properties !== undefined) {\r\n dependency[STR_PROPERTIES /* @min:%2eproperties */] = __assign(__assign({}, dependency.properties), properties);\r\n }\r\n var sysProperties = ajaxData[_DYN_GET_PART_APROPS /* @min:%2egetPartAProps */]();\r\n _reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE /* @min:%2ecore */], ajaxData, dependency, null, sysProperties);\r\n }\r\n else {\r\n _reportFetchError(14 /* _eInternalMessageId.FailedMonitorAjaxDur */, null, {\r\n requestSentTime: ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */],\r\n responseFinishedTime: ajaxData[_DYN_RESPONSE_FINISHED_TI15 /* @min:%2eresponseFinishedTime */]\r\n });\r\n }\r\n }, function (e) {\r\n _reportFetchError(18 /* _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader */, e, null);\r\n });\r\n }\r\n function _getFetchCorrelationContext(response) {\r\n if (response && response[_DYN_HEADERS /* @min:%2eheaders */]) {\r\n try {\r\n var responseHeader = response[_DYN_HEADERS /* @min:%2eheaders */].get(RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]);\r\n return CorrelationIdHelper[_DYN_GET_CORRELATION_CONT17 /* @min:%2egetCorrelationContext */](responseHeader);\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, 18 /* _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader */, CORRELATION_HEADER_ERROR, {\r\n fetchDiagnosticsMessage: _getFailedFetchDiagnosticsMessage(response),\r\n exception: dumpObj(e)\r\n });\r\n }\r\n }\r\n }\r\n function _reportDependencyInternal(initializers, core, ajaxData, dependency, properties, systemProperties) {\r\n var result = true;\r\n var initializersCount = initializers[_DYN_LENGTH /* @min:%2elength */];\r\n if (initializersCount > 0) {\r\n var details = {\r\n item: dependency,\r\n properties: properties,\r\n sysProperties: systemProperties,\r\n context: ajaxData ? ajaxData[_DYN_CONTEXT /* @min:%2econtext */] : null,\r\n aborted: ajaxData ? !!ajaxData[_DYN_ABORTED /* @min:%2eaborted */] : false\r\n };\r\n result = _processDependencyContainer(core, initializers, details, \"initializer\");\r\n }\r\n if (result) {\r\n _self[_DYN_TRACK_DEPENDENCY_DAT4 /* @min:%2etrackDependencyDataInternal */](dependency, properties, systemProperties);\r\n }\r\n }\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for AjaxMonitor.prototype.initialize.\r\n AjaxMonitor.prototype.processTelemetry = function (item, itemCtx) {\r\n this.processNext(item, itemCtx);\r\n };\r\n// Removed Stub for AjaxMonitor.prototype.trackDependencyData.\r\n// Removed Stub for AjaxMonitor.prototype.includeCorrelationHeaders.\r\n// Removed Stub for AjaxMonitor.prototype.addDependencyListener.\r\n /**\r\n * Add an dependency telemetry initializer callback function to allow populating additional properties or drop the request.\r\n * It is called after the dependency call has completed and any available performance details are available. A dependency\r\n * initializer is similar to the TelemetryInitializer function but it allows you to block the reporting of the dependency\r\n * request so that it doesn't count against the `maxAjaxCallsPerView`.\r\n * @param dependencyInitializer - The Dependency Telemetry Initializer function\r\n * @returns - A IDependencyInitializerHandler to enable the initializer to be removed\r\n */\r\n AjaxMonitor.prototype.addDependencyInitializer = function (dependencyInitializer) {\r\n return null;\r\n };\r\n// Removed Stub for AjaxMonitor.prototype.trackDependencyDataInternal.\r\n AjaxMonitor.identifier = \"AjaxDependencyPlugin\";\r\n AjaxMonitor.getDefaultConfig = _getDefaultConfig;\r\n AjaxMonitor.getEmptyConfig = _getEmptyConfig;\r\n return AjaxMonitor;\r\n}(BaseTelemetryPlugin));\r\nexport { AjaxMonitor };\r\n//# sourceMappingURL=ajax.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Application = /** @class */ (function () {\r\n function Application() {\r\n }\r\n return Application;\r\n}());\r\nexport { Application };\r\n//# sourceMappingURL=Application.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Device = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the Device class\r\n */\r\n function Device() {\r\n // don't attempt to fingerprint browsers\r\n this.id = \"browser\";\r\n // Device type is a dimension in our data platform\r\n // Setting it to 'Browser' allows to separate client and server dependencies/exceptions\r\n this.deviceClass = \"Browser\";\r\n }\r\n return Device;\r\n}());\r\nexport { Device };\r\n//# sourceMappingURL=Device.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_SESSION_MANAGER = \"sessionManager\"; // Count: 3\r\nexport var _DYN_UPDATE = \"update\"; // Count: 4\r\nexport var _DYN_IS_USER_COOKIE_SET = \"isUserCookieSet\"; // Count: 4\r\nexport var _DYN_IS_NEW_USER = \"isNewUser\"; // Count: 4\r\nexport var _DYN_GET_TRACE_CTX = \"getTraceCtx\"; // Count: 3\r\nexport var _DYN_TELEMETRY_TRACE = \"telemetryTrace\"; // Count: 3\r\nexport var _DYN_APPLY_SESSION_CONTEX0 = \"applySessionContext\"; // Count: 2\r\nexport var _DYN_APPLY_APPLICATION_CO1 = \"applyApplicationContext\"; // Count: 2\r\nexport var _DYN_APPLY_DEVICE_CONTEXT = \"applyDeviceContext\"; // Count: 2\r\nexport var _DYN_APPLY_OPERATION_CONT2 = \"applyOperationContext\"; // Count: 2\r\nexport var _DYN_APPLY_USER_CONTEXT = \"applyUserContext\"; // Count: 2\r\nexport var _DYN_APPLY_OPERATING_SYST3 = \"applyOperatingSystemContxt\"; // Count: 2\r\nexport var _DYN_APPLY_LOCATION_CONTE4 = \"applyLocationContext\"; // Count: 2\r\nexport var _DYN_APPLY_INTERNAL_CONTE5 = \"applyInternalContext\"; // Count: 2\r\nexport var _DYN_ACCOUNT_ID = \"accountId\"; // Count: 8\r\nexport var _DYN_SDK_EXTENSION = \"sdkExtension\"; // Count: 4\r\nexport var _DYN_GET_SESSION_ID = \"getSessionId\"; // Count: 4\r\nexport var _DYN_NAME_PREFIX = \"namePrefix\"; // Count: 7\r\nexport var _DYN_SESSION_COOKIE_POSTF6 = \"sessionCookiePostfix\"; // Count: 4\r\nexport var _DYN_USER_COOKIE_POSTFIX = \"userCookiePostfix\"; // Count: 4\r\nexport var _DYN_ID_LENGTH = \"idLength\"; // Count: 5\r\nexport var _DYN_GET_NEW_ID = \"getNewId\"; // Count: 6\r\nexport var _DYN_LENGTH = \"length\"; // Count: 4\r\nexport var _DYN_AUTOMATIC_SESSION = \"automaticSession\"; // Count: 5\r\nexport var _DYN_AUTHENTICATED_ID = \"authenticatedId\"; // Count: 6\r\nexport var _DYN_SESSION_EXPIRATION_M7 = \"sessionExpirationMs\"; // Count: 5\r\nexport var _DYN_SESSION_RENEWAL_MS = \"sessionRenewalMs\"; // Count: 4\r\nexport var _DYN_CONFIG = \"config\"; // Count: 4\r\nexport var _DYN_ACQUISITION_DATE = \"acquisitionDate\"; // Count: 5\r\nexport var _DYN_RENEWAL_DATE = \"renewalDate\"; // Count: 4\r\nexport var _DYN_COOKIE_DOMAIN = \"cookieDomain\"; // Count: 3\r\nexport var _DYN_JOIN = \"join\"; // Count: 5\r\nexport var _DYN_COOKIE_SEPARATOR = \"cookieSeparator\"; // Count: 5\r\nexport var _DYN_AUTH_USER_COOKIE_NAM8 = \"authUserCookieName\"; // Count: 3\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { _DYN_SDK_EXTENSION } from \"../__DynamicConstants\";\r\nvar Version = '2.8.14';\r\nvar Internal = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the internal telemetry data class.\r\n */\r\n function Internal(config) {\r\n this.sdkVersion = (config[_DYN_SDK_EXTENSION /* @min:%2esdkExtension */] && config[_DYN_SDK_EXTENSION /* @min:%2esdkExtension */]() ? config[_DYN_SDK_EXTENSION /* @min:%2esdkExtension */]() + \"_\" : \"\") + \"javascript:\" + Version;\r\n }\r\n return Internal;\r\n}());\r\nexport { Internal };\r\n//# sourceMappingURL=Internal.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Location = /** @class */ (function () {\r\n function Location() {\r\n }\r\n return Location;\r\n}());\r\nexport { Location };\r\n//# sourceMappingURL=Location.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlCanUseLocalStorage, utlGetLocalStorage, utlSetLocalStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, dateNow, dumpObj, getExceptionName, isFunction, newId, safeGetCookieMgr, safeGetLogger } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_ACQUISITION_DATE, _DYN_AUTOMATIC_SESSION, _DYN_CONFIG, _DYN_COOKIE_DOMAIN, _DYN_GET_NEW_ID, _DYN_ID_LENGTH, _DYN_JOIN, _DYN_LENGTH, _DYN_NAME_PREFIX, _DYN_RENEWAL_DATE, _DYN_SESSION_COOKIE_POSTF6, _DYN_SESSION_EXPIRATION_M7, _DYN_SESSION_RENEWAL_MS, _DYN_UPDATE } from \"../__DynamicConstants\";\r\nvar cookieNameConst = \"ai_session\";\r\nvar Session = /** @class */ (function () {\r\n function Session() {\r\n }\r\n return Session;\r\n}());\r\nexport { Session };\r\nvar _SessionManager = /** @class */ (function () {\r\n function _SessionManager(config, core) {\r\n var self = this;\r\n var _storageNamePrefix;\r\n var _cookieUpdatedTimestamp;\r\n var _logger = safeGetLogger(core);\r\n var _cookieManager = safeGetCookieMgr(core);\r\n dynamicProto(_SessionManager, self, function (_self) {\r\n if (!config) {\r\n config = {};\r\n }\r\n if (!isFunction(config[_DYN_SESSION_EXPIRATION_M7 /* @min:%2esessionExpirationMs */])) {\r\n config[_DYN_SESSION_EXPIRATION_M7 /* @min:%2esessionExpirationMs */] = function () { return _SessionManager.acquisitionSpan; };\r\n }\r\n if (!isFunction(config[_DYN_SESSION_RENEWAL_MS /* @min:%2esessionRenewalMs */])) {\r\n config[_DYN_SESSION_RENEWAL_MS /* @min:%2esessionRenewalMs */] = function () { return _SessionManager.renewalSpan; };\r\n }\r\n _self[_DYN_CONFIG /* @min:%2econfig */] = config;\r\n // sessionCookiePostfix takes the preference if it is configured, otherwise takes namePrefix if configured.\r\n var sessionCookiePostfix = (_self.config[_DYN_SESSION_COOKIE_POSTF6 /* @min:%2esessionCookiePostfix */] && _self[_DYN_CONFIG /* @min:%2econfig */][_DYN_SESSION_COOKIE_POSTF6 /* @min:%2esessionCookiePostfix */]()) ?\r\n _self.config[_DYN_SESSION_COOKIE_POSTF6 /* @min:%2esessionCookiePostfix */]() :\r\n ((_self.config[_DYN_NAME_PREFIX /* @min:%2enamePrefix */] && _self[_DYN_CONFIG /* @min:%2econfig */][_DYN_NAME_PREFIX /* @min:%2enamePrefix */]()) ? _self[_DYN_CONFIG /* @min:%2econfig */][_DYN_NAME_PREFIX /* @min:%2enamePrefix */]() : \"\");\r\n _storageNamePrefix = function () { return cookieNameConst + sessionCookiePostfix; };\r\n _self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */] = new Session();\r\n _self[_DYN_UPDATE /* @min:%2eupdate */] = function () {\r\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\r\n // the number to be incorrect.\r\n var nowMs = dateNow();\r\n var isExpired = false;\r\n var session = _self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */];\r\n if (!session.id) {\r\n isExpired = !_initializeAutomaticSession(session, nowMs);\r\n }\r\n var sessionExpirationMs = _self.config[_DYN_SESSION_EXPIRATION_M7 /* @min:%2esessionExpirationMs */]();\r\n if (!isExpired && sessionExpirationMs > 0) {\r\n var sessionRenewalMs = _self.config[_DYN_SESSION_RENEWAL_MS /* @min:%2esessionRenewalMs */]();\r\n var timeSinceAcqMs = nowMs - session[_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */];\r\n var timeSinceRenewalMs = nowMs - session[_DYN_RENEWAL_DATE /* @min:%2erenewalDate */];\r\n isExpired = timeSinceAcqMs < 0 || timeSinceRenewalMs < 0; // expired if the acquisition or last renewal are in the future\r\n isExpired = isExpired || timeSinceAcqMs > sessionExpirationMs; // expired if the time since acquisition is more than session Expiration\r\n isExpired = isExpired || timeSinceRenewalMs > sessionRenewalMs; // expired if the time since last renewal is more than renewal period\r\n }\r\n // renew if acquisitionSpan or renewalSpan has elapsed\r\n if (isExpired) {\r\n // update automaticSession so session state has correct id\r\n _renew(nowMs);\r\n }\r\n else {\r\n // do not update the cookie more often than cookieUpdateInterval\r\n if (!_cookieUpdatedTimestamp || nowMs - _cookieUpdatedTimestamp > _SessionManager.cookieUpdateInterval) {\r\n _setCookie(session, nowMs);\r\n }\r\n }\r\n };\r\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 */\r\n _self.backup = function () {\r\n var session = _self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */];\r\n _setStorage(session.id, session[_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */], session[_DYN_RENEWAL_DATE /* @min:%2erenewalDate */]);\r\n };\r\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 */\r\n function _initializeAutomaticSession(session, now) {\r\n var isValid = false;\r\n var cookieValue = _cookieManager.get(_storageNamePrefix());\r\n if (cookieValue && isFunction(cookieValue.split)) {\r\n isValid = _initializeAutomaticSessionWithData(session, cookieValue);\r\n }\r\n else {\r\n // There's no cookie, but we might have session data in local storage\r\n // This can happen if the session expired or the user actively deleted the cookie\r\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.\r\n // The User class handles this for us and deletes our local storage object if the persistent user cookie was removed.\r\n var storageValue = utlGetLocalStorage(_logger, _storageNamePrefix());\r\n if (storageValue) {\r\n isValid = _initializeAutomaticSessionWithData(session, storageValue);\r\n }\r\n }\r\n return isValid || !!session.id;\r\n }\r\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 */\r\n function _initializeAutomaticSessionWithData(session, sessionData) {\r\n var isValid = false;\r\n var sessionReset = \", session will be reset\";\r\n var tokens = sessionData.split(\"|\");\r\n if (tokens[_DYN_LENGTH /* @min:%2elength */] >= 2) {\r\n try {\r\n var acqMs = +tokens[1] || 0;\r\n var renewalMs = +tokens[2] || 0;\r\n if (isNaN(acqMs) || acqMs <= 0) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 27 /* _eInternalMessageId.SessionRenewalDateIsZero */, \"AI session acquisition date is 0\" + sessionReset);\r\n }\r\n else if (isNaN(renewalMs) || renewalMs <= 0) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 27 /* _eInternalMessageId.SessionRenewalDateIsZero */, \"AI session renewal date is 0\" + sessionReset);\r\n }\r\n else if (tokens[0]) {\r\n // Everything looks valid so set the values\r\n session.id = tokens[0];\r\n session[_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */] = acqMs;\r\n session[_DYN_RENEWAL_DATE /* @min:%2erenewalDate */] = renewalMs;\r\n isValid = true;\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 9 /* _eInternalMessageId.ErrorParsingAISessionCookie */, \"Error parsing ai_session value [\" + (sessionData || \"\") + \"]\" + sessionReset + \" - \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return isValid;\r\n }\r\n function _renew(nowMs) {\r\n var theConfig = (_self[_DYN_CONFIG /* @min:%2econfig */] || {});\r\n var getNewId = (theConfig[_DYN_GET_NEW_ID /* @min:%2egetNewId */] ? theConfig[_DYN_GET_NEW_ID /* @min:%2egetNewId */]() : null) || newId;\r\n _self.automaticSession.id = getNewId(theConfig[_DYN_ID_LENGTH /* @min:%2eidLength */] ? theConfig[_DYN_ID_LENGTH /* @min:%2eidLength */]() : 22);\r\n _self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */][_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */] = nowMs;\r\n _setCookie(_self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */], nowMs);\r\n // If this browser does not support local storage, fire an internal log to keep track of it at this point\r\n if (!utlCanUseLocalStorage()) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 0 /* _eInternalMessageId.BrowserDoesNotSupportLocalStorage */, \"Browser does not support local storage. Session durations will be inaccurate.\");\r\n }\r\n }\r\n function _setCookie(session, nowMs) {\r\n var acq = session[_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */];\r\n session[_DYN_RENEWAL_DATE /* @min:%2erenewalDate */] = nowMs;\r\n var config = _self[_DYN_CONFIG /* @min:%2econfig */];\r\n var renewalPeriodMs = config[_DYN_SESSION_RENEWAL_MS /* @min:%2esessionRenewalMs */]();\r\n // Set cookie to expire after the session expiry time passes or the session renewal deadline, whichever is sooner\r\n // Expiring the cookie will cause the session to expire even if the user isn't on the page\r\n var acqTimeLeftMs = (acq + config[_DYN_SESSION_EXPIRATION_M7 /* @min:%2esessionExpirationMs */]()) - nowMs;\r\n var cookie = [session.id, acq, nowMs];\r\n var maxAgeSec = 0;\r\n if (acqTimeLeftMs < renewalPeriodMs) {\r\n maxAgeSec = acqTimeLeftMs / 1000;\r\n }\r\n else {\r\n maxAgeSec = renewalPeriodMs / 1000;\r\n }\r\n var cookieDomain = config[_DYN_COOKIE_DOMAIN /* @min:%2ecookieDomain */] ? config[_DYN_COOKIE_DOMAIN /* @min:%2ecookieDomain */]() : null;\r\n // if sessionExpirationMs is set to 0, it means the expiry is set to 0 for this session cookie\r\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.\r\n // Depending on the browser, another instance does not inherit this cookie, however, another tab will\r\n _cookieManager.set(_storageNamePrefix(), cookie.join(\"|\"), config[_DYN_SESSION_EXPIRATION_M7 /* @min:%2esessionExpirationMs */]() > 0 ? maxAgeSec : null, cookieDomain);\r\n _cookieUpdatedTimestamp = nowMs;\r\n }\r\n function _setStorage(guid, acq, renewal) {\r\n // Keep data in local storage to retain the last session id, allowing us to cleanly end the session when it expires\r\n // Browsers that don't support local storage won't be able to end sessions cleanly from the client\r\n // The server will notice this and end the sessions itself, with loss of accurate session duration\r\n utlSetLocalStorage(_logger, _storageNamePrefix(), [guid, acq, renewal][_DYN_JOIN /* @min:%2ejoin */](\"|\"));\r\n }\r\n });\r\n }\r\n// Removed Stub for _SessionManager.prototype.update.\r\n// Removed Stub for _SessionManager.prototype.backup.\r\n _SessionManager.acquisitionSpan = 86400000; // 24 hours in ms\r\n _SessionManager.renewalSpan = 1800000; // 30 minutes in ms\r\n _SessionManager.cookieUpdateInterval = 60000; // 1 minute in ms\r\n return _SessionManager;\r\n}());\r\nexport { _SessionManager };\r\n//# sourceMappingURL=Session.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dataSanitizeString } from \"@microsoft/applicationinsights-common\";\r\nimport { generateW3CId, getLocation } from \"@microsoft/applicationinsights-core-js\";\r\nvar TelemetryTrace = /** @class */ (function () {\r\n function TelemetryTrace(id, parentId, name, logger) {\r\n var _self = this;\r\n _self.traceID = id || generateW3CId();\r\n _self.parentID = parentId;\r\n var location = getLocation();\r\n if (!name && location && location.pathname) {\r\n name = location.pathname;\r\n }\r\n _self.name = dataSanitizeString(logger, name);\r\n }\r\n return TelemetryTrace;\r\n}());\r\nexport { TelemetryTrace };\r\n//# sourceMappingURL=TelemetryTrace.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlRemoveStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, newId, safeGetCookieMgr, safeGetLogger, toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_ACCOUNT_ID, _DYN_AUTHENTICATED_ID, _DYN_AUTH_USER_COOKIE_NAM8, _DYN_CONFIG, _DYN_COOKIE_SEPARATOR, _DYN_GET_NEW_ID, _DYN_ID_LENGTH, _DYN_IS_NEW_USER, _DYN_IS_USER_COOKIE_SET, _DYN_JOIN, _DYN_LENGTH, _DYN_NAME_PREFIX, _DYN_UPDATE, _DYN_USER_COOKIE_POSTFIX } from \"../__DynamicConstants\";\r\nfunction _validateUserInput(id) {\r\n // Validate:\r\n // 1. Id is a non-empty string.\r\n // 2. It does not contain special characters for cookies.\r\n if (typeof id !== \"string\" ||\r\n !id ||\r\n id.match(/,|;|=| |\\|/)) {\r\n return false;\r\n }\r\n return true;\r\n}\r\nvar User = /** @class */ (function () {\r\n function User(config, core) {\r\n /**\r\n * A flag indicating whether this represents a new user\r\n */\r\n this.isNewUser = false;\r\n /**\r\n * A flag indicating whether the user cookie has been set\r\n */\r\n this.isUserCookieSet = false;\r\n var _logger = safeGetLogger(core);\r\n var _cookieManager = safeGetCookieMgr(core);\r\n var _storageNamePrefix;\r\n dynamicProto(User, this, function (_self) {\r\n _self[_DYN_CONFIG /* @min:%2econfig */] = config;\r\n var userCookiePostfix = (_self.config[_DYN_USER_COOKIE_POSTFIX /* @min:%2euserCookiePostfix */] && _self[_DYN_CONFIG /* @min:%2econfig */][_DYN_USER_COOKIE_POSTFIX /* @min:%2euserCookiePostfix */]()) ? _self[_DYN_CONFIG /* @min:%2econfig */][_DYN_USER_COOKIE_POSTFIX /* @min:%2euserCookiePostfix */]() : \"\";\r\n _storageNamePrefix = function () { return User.userCookieName + userCookiePostfix; };\r\n // get userId or create new one if none exists\r\n var cookie = _cookieManager.get(_storageNamePrefix());\r\n if (cookie) {\r\n _self[_DYN_IS_NEW_USER /* @min:%2eisNewUser */] = false;\r\n var params = cookie.split(User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]);\r\n if (params[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _self.id = params[0];\r\n // we already have a cookie\r\n _self[_DYN_IS_USER_COOKIE_SET /* @min:%2eisUserCookieSet */] = !!_self.id;\r\n }\r\n }\r\n function _generateNewId() {\r\n var theConfig = (config || {});\r\n var getNewId = (theConfig[_DYN_GET_NEW_ID /* @min:%2egetNewId */] ? theConfig[_DYN_GET_NEW_ID /* @min:%2egetNewId */]() : null) || newId;\r\n var id = getNewId(theConfig[_DYN_ID_LENGTH /* @min:%2eidLength */] ? config[_DYN_ID_LENGTH /* @min:%2eidLength */]() : 22);\r\n return id;\r\n }\r\n function _generateNewCookie(userId) {\r\n var acqStr = toISOString(new Date());\r\n _self.accountAcquisitionDate = acqStr;\r\n _self[_DYN_IS_NEW_USER /* @min:%2eisNewUser */] = true;\r\n var newCookie = [userId, acqStr];\r\n return newCookie;\r\n }\r\n function _setUserCookie(cookie) {\r\n // without expiration, cookies expire at the end of the session\r\n // set it to 365 days from now\r\n // 365 * 24 * 60 * 60 = 31536000\r\n var oneYear = 31536000;\r\n _self[_DYN_IS_USER_COOKIE_SET /* @min:%2eisUserCookieSet */] = _cookieManager.set(_storageNamePrefix(), cookie, oneYear);\r\n }\r\n if (!_self.id) {\r\n _self.id = _generateNewId();\r\n var newCookie = _generateNewCookie(_self.id);\r\n _setUserCookie(newCookie[_DYN_JOIN /* @min:%2ejoin */](User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]));\r\n // If we have an config.namePrefix() + ai_session in local storage this means the user actively removed our cookies.\r\n // We should respect their wishes and clear ourselves from local storage\r\n var name_1 = config[_DYN_NAME_PREFIX /* @min:%2enamePrefix */] && config[_DYN_NAME_PREFIX /* @min:%2enamePrefix */]() ? config[_DYN_NAME_PREFIX /* @min:%2enamePrefix */]() + \"ai_session\" : \"ai_session\";\r\n utlRemoveStorage(_logger, name_1);\r\n }\r\n // We still take the account id from the ctor param for backward compatibility.\r\n // But if the the customer set the accountId through the newer setAuthenticatedUserContext API, we will override it.\r\n _self[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] = config[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] ? config[_DYN_ACCOUNT_ID /* @min:%2eaccountId */]() : undefined;\r\n // Get the auth user id and account id from the cookie if exists\r\n // Cookie is in the pattern: |\r\n var authCookie = _cookieManager.get(User[_DYN_AUTH_USER_COOKIE_NAM8 /* @min:%2eauthUserCookieName */]);\r\n if (authCookie) {\r\n authCookie = decodeURI(authCookie);\r\n var authCookieString = authCookie.split(User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]);\r\n if (authCookieString[0]) {\r\n _self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */] = authCookieString[0];\r\n }\r\n if (authCookieString[_DYN_LENGTH /* @min:%2elength */] > 1 && authCookieString[1]) {\r\n _self[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] = authCookieString[1];\r\n }\r\n }\r\n _self.setAuthenticatedUserContext = function (authenticatedUserId, accountId, storeInCookie) {\r\n if (storeInCookie === void 0) { storeInCookie = false; }\r\n // Validate inputs to ensure no cookie control characters.\r\n var isInvalidInput = !_validateUserInput(authenticatedUserId) || (accountId && !_validateUserInput(accountId));\r\n if (isInvalidInput) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 60 /* _eInternalMessageId.SetAuthContextFailedAccountName */, \"Setting auth user context failed. \" +\r\n \"User auth/account id should be of type string, and not contain commas, semi-colons, equal signs, spaces, or vertical-bars.\", true);\r\n return;\r\n }\r\n // Create cookie string.\r\n _self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */] = authenticatedUserId;\r\n var authCookie = _self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */];\r\n if (accountId) {\r\n _self[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] = accountId;\r\n authCookie = [_self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */], _self.accountId][_DYN_JOIN /* @min:%2ejoin */](User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]);\r\n }\r\n if (storeInCookie) {\r\n // Set the cookie. No expiration date because this is a session cookie (expires when browser closed).\r\n // Encoding the cookie to handle unexpected unicode characters.\r\n _cookieManager.set(User[_DYN_AUTH_USER_COOKIE_NAM8 /* @min:%2eauthUserCookieName */], encodeURI(authCookie));\r\n }\r\n };\r\n /**\r\n * Clears the authenticated user id and the account id from the user context.\r\n * @returns {}\r\n */\r\n _self.clearAuthenticatedUserContext = function () {\r\n _self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */] = null;\r\n _self[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] = null;\r\n _cookieManager.del(User[_DYN_AUTH_USER_COOKIE_NAM8 /* @min:%2eauthUserCookieName */]);\r\n };\r\n _self[_DYN_UPDATE /* @min:%2eupdate */] = function (userId) {\r\n // Optimizations to avoid setting and processing the cookie when not needed\r\n if (_self.id !== userId || !_self[_DYN_IS_USER_COOKIE_SET /* @min:%2eisUserCookieSet */]) {\r\n var user_id = userId ? userId : _generateNewId();\r\n var user_cookie = _generateNewCookie(user_id);\r\n _setUserCookie(user_cookie[_DYN_JOIN /* @min:%2ejoin */](User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]));\r\n }\r\n };\r\n });\r\n }\r\n// Removed Stub for User.prototype.setAuthenticatedUserContext.\r\n// Removed Stub for User.prototype.clearAuthenticatedUserContext.\r\n// Removed Stub for User.prototype.update.\r\n User.cookieSeparator = \"|\";\r\n User.userCookieName = \"ai_user\";\r\n User.authUserCookieName = \"ai_authUser\";\r\n return User;\r\n}());\r\nexport { User };\r\n//# sourceMappingURL=User.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n/**\r\n* TelemetryContext.ts\r\n* @copyright Microsoft 2018\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { CtxTagKeys, Extensions, PageView, dataSanitizeString } from \"@microsoft/applicationinsights-common\";\r\nimport { _InternalLogMessage, getSetValue, hasWindow, isNullOrUndefined, isString, objKeys, setValue } from \"@microsoft/applicationinsights-core-js\";\r\nimport { Application } from \"./Context/Application\";\r\nimport { Device } from \"./Context/Device\";\r\nimport { Internal } from \"./Context/Internal\";\r\nimport { Location } from \"./Context/Location\";\r\nimport { Session, _SessionManager } from \"./Context/Session\";\r\nimport { TelemetryTrace } from \"./Context/TelemetryTrace\";\r\nimport { User } from \"./Context/User\";\r\nimport { _DYN_ACCOUNT_ID, _DYN_APPLY_APPLICATION_CO1, _DYN_APPLY_DEVICE_CONTEXT, _DYN_APPLY_INTERNAL_CONTE5, _DYN_APPLY_LOCATION_CONTE4, _DYN_APPLY_OPERATING_SYST3, _DYN_APPLY_OPERATION_CONT2, _DYN_APPLY_SESSION_CONTEX0, _DYN_APPLY_USER_CONTEXT, _DYN_AUTHENTICATED_ID, _DYN_AUTOMATIC_SESSION, _DYN_GET_SESSION_ID, _DYN_LENGTH, _DYN_SESSION_MANAGER, _DYN_TELEMETRY_TRACE } from \"./__DynamicConstants\";\r\nvar strExt = \"ext\";\r\nvar strTags = \"tags\";\r\nfunction _removeEmpty(target, name) {\r\n if (target && target[name] && objKeys(target[name])[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n delete target[name];\r\n }\r\n}\r\nvar TelemetryContext = /** @class */ (function () {\r\n function TelemetryContext(core, defaultConfig, previousTraceCtx) {\r\n var _this = this;\r\n var logger = core.logger;\r\n this.appId = function () { return null; };\r\n this[_DYN_GET_SESSION_ID /* @min:%2egetSessionId */] = function () { return null; };\r\n dynamicProto(TelemetryContext, this, function (_self) {\r\n _self.application = new Application();\r\n _self.internal = new Internal(defaultConfig);\r\n if (hasWindow()) {\r\n _self[_DYN_SESSION_MANAGER /* @min:%2esessionManager */] = new _SessionManager(defaultConfig, core);\r\n _self.device = new Device();\r\n _self.location = new Location();\r\n _self.user = new User(defaultConfig, core);\r\n var traceId = void 0;\r\n var parentId = void 0;\r\n var name_1;\r\n if (previousTraceCtx) {\r\n traceId = previousTraceCtx.getTraceId();\r\n parentId = previousTraceCtx.getSpanId();\r\n name_1 = previousTraceCtx.getName();\r\n }\r\n _self[_DYN_TELEMETRY_TRACE /* @min:%2etelemetryTrace */] = new TelemetryTrace(traceId, parentId, name_1, logger);\r\n _self.session = new Session();\r\n }\r\n _self[_DYN_GET_SESSION_ID /* @min:%2egetSessionId */] = function () {\r\n var session = _self.session;\r\n var sesId = null;\r\n // If customer set session info, apply their context; otherwise apply context automatically generated\r\n if (session && isString(session.id)) {\r\n sesId = session.id;\r\n }\r\n else {\r\n // Gets the automatic session if it exists or an empty object\r\n var autoSession = (_self[_DYN_SESSION_MANAGER /* @min:%2esessionManager */] || {})[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */];\r\n sesId = autoSession && isString(autoSession.id) ? autoSession.id : null;\r\n }\r\n return sesId;\r\n };\r\n _self[_DYN_APPLY_SESSION_CONTEX0 /* @min:%2eapplySessionContext */] = function (evt, itemCtx) {\r\n setValue(getSetValue(evt.ext, Extensions.AppExt), \"sesId\", _self[_DYN_GET_SESSION_ID /* @min:%2egetSessionId */](), isString);\r\n };\r\n _self[_DYN_APPLY_OPERATING_SYST3 /* @min:%2eapplyOperatingSystemContxt */] = function (evt, itemCtx) {\r\n setValue(evt.ext, Extensions.OSExt, _self.os);\r\n };\r\n _self[_DYN_APPLY_APPLICATION_CO1 /* @min:%2eapplyApplicationContext */] = function (evt, itemCtx) {\r\n var application = _self.application;\r\n if (application) {\r\n // evt.ext.app\r\n var tags = getSetValue(evt, strTags);\r\n setValue(tags, CtxTagKeys.applicationVersion, application.ver, isString);\r\n setValue(tags, CtxTagKeys.applicationBuild, application.build, isString);\r\n }\r\n };\r\n _self[_DYN_APPLY_DEVICE_CONTEXT /* @min:%2eapplyDeviceContext */] = function (evt, itemCtx) {\r\n var device = _self.device;\r\n if (device) {\r\n // evt.ext.device\r\n var extDevice = getSetValue(getSetValue(evt, strExt), Extensions.DeviceExt);\r\n setValue(extDevice, \"localId\", device.id, isString);\r\n setValue(extDevice, \"ip\", device.ip, isString);\r\n setValue(extDevice, \"model\", device.model, isString);\r\n setValue(extDevice, \"deviceClass\", device.deviceClass, isString);\r\n }\r\n };\r\n _self[_DYN_APPLY_INTERNAL_CONTE5 /* @min:%2eapplyInternalContext */] = function (evt, itemCtx) {\r\n var internal = _self.internal;\r\n if (internal) {\r\n var tags = getSetValue(evt, strTags);\r\n setValue(tags, CtxTagKeys.internalAgentVersion, internal.agentVersion, isString); // not mapped in CS 4.0\r\n setValue(tags, CtxTagKeys.internalSdkVersion, dataSanitizeString(logger, internal.sdkVersion, 64), isString);\r\n if (evt.baseType === _InternalLogMessage.dataType || evt.baseType === PageView.dataType) {\r\n setValue(tags, CtxTagKeys.internalSnippet, internal.snippetVer, isString);\r\n setValue(tags, CtxTagKeys.internalSdkSrc, internal.sdkSrc, isString);\r\n }\r\n }\r\n };\r\n _self[_DYN_APPLY_LOCATION_CONTE4 /* @min:%2eapplyLocationContext */] = function (evt, itemCtx) {\r\n var location = _this.location;\r\n if (location) {\r\n setValue(getSetValue(evt, strTags, []), CtxTagKeys.locationIp, location.ip, isString);\r\n }\r\n };\r\n _self[_DYN_APPLY_OPERATION_CONT2 /* @min:%2eapplyOperationContext */] = function (evt, itemCtx) {\r\n var telemetryTrace = _self[_DYN_TELEMETRY_TRACE /* @min:%2etelemetryTrace */];\r\n if (telemetryTrace) {\r\n var extTrace = getSetValue(getSetValue(evt, strExt), Extensions.TraceExt, { traceID: undefined, parentID: undefined });\r\n setValue(extTrace, \"traceID\", telemetryTrace.traceID, isString, isNullOrUndefined);\r\n setValue(extTrace, \"name\", telemetryTrace.name, isString, isNullOrUndefined);\r\n setValue(extTrace, \"parentID\", telemetryTrace.parentID, isString, isNullOrUndefined);\r\n }\r\n };\r\n _self.applyWebContext = function (evt, itemCtx) {\r\n var web = _this.web;\r\n if (web) {\r\n setValue(getSetValue(evt, strExt), Extensions.WebExt, web);\r\n }\r\n };\r\n _self[_DYN_APPLY_USER_CONTEXT /* @min:%2eapplyUserContext */] = function (evt, itemCtx) {\r\n var user = _self.user;\r\n if (user) {\r\n var tags = getSetValue(evt, strTags, []);\r\n // stays in tags\r\n setValue(tags, CtxTagKeys.userAccountId, user[_DYN_ACCOUNT_ID /* @min:%2eaccountId */], isString);\r\n // CS 4.0\r\n var extUser = getSetValue(getSetValue(evt, strExt), Extensions.UserExt);\r\n setValue(extUser, \"id\", user.id, isString);\r\n setValue(extUser, \"authId\", user[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */], isString);\r\n }\r\n };\r\n _self.cleanUp = function (evt, itemCtx) {\r\n var ext = evt.ext;\r\n if (ext) {\r\n _removeEmpty(ext, Extensions.DeviceExt);\r\n _removeEmpty(ext, Extensions.UserExt);\r\n _removeEmpty(ext, Extensions.WebExt);\r\n _removeEmpty(ext, Extensions.OSExt);\r\n _removeEmpty(ext, Extensions.AppExt);\r\n _removeEmpty(ext, Extensions.TraceExt);\r\n }\r\n };\r\n });\r\n }\r\n// Removed Stub for TelemetryContext.prototype.applySessionContext.\r\n// Removed Stub for TelemetryContext.prototype.applyOperatingSystemContxt.\r\n// Removed Stub for TelemetryContext.prototype.applyApplicationContext.\r\n// Removed Stub for TelemetryContext.prototype.applyDeviceContext.\r\n// Removed Stub for TelemetryContext.prototype.applyInternalContext.\r\n// Removed Stub for TelemetryContext.prototype.applyLocationContext.\r\n// Removed Stub for TelemetryContext.prototype.applyOperationContext.\r\n// Removed Stub for TelemetryContext.prototype.applyWebContext.\r\n// Removed Stub for TelemetryContext.prototype.applyUserContext.\r\n// Removed Stub for TelemetryContext.prototype.cleanUp.\r\n // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n // this will be removed when ES3 support is dropped.\n TelemetryContext.__ieDyn=1;\n\n return TelemetryContext;\r\n}());\r\nexport { TelemetryContext };\r\n//# sourceMappingURL=TelemetryContext.js.map","/*\n * Application Insights JavaScript SDK - Web, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { AnalyticsPlugin } from \"@microsoft/applicationinsights-analytics-js\";\r\nimport { Sender } from \"@microsoft/applicationinsights-channel-js\";\r\nimport { AnalyticsPluginIdentifier, BreezeChannelIdentifier, ConfigurationManager, ConnectionStringParser, ContextTagKeys, CorrelationIdHelper, CtxTagKeys, DEFAULT_BREEZE_ENDPOINT, DEFAULT_BREEZE_PATH, Data, DataSanitizer, DateTimeUtils, DisabledPropertyName, DistributedTracingModes, Envelope, Event, Exception, Extensions, HttpMethod, Metric, PageView, PageViewPerformance, ProcessLegacy, PropertiesPluginIdentifier, RemoteDependencyData, RequestHeaders, SampleRate, SeverityLevel, TelemetryItemCreator, Trace, UrlHelper, Util, parseConnectionString } from \"@microsoft/applicationinsights-common\";\r\nimport { AppInsightsCore, _throwInternal, addPageHideEventListener, addPageUnloadEventListener, arrForEach, arrIndexOf, createUniqueNamespace, doPerf, hasDocument, hasWindow, isArray, isFunction, isNullOrUndefined, isReactNative, isString, mergeEvtNamespace, objForEachKey, proxyAssign, proxyFunctions, removePageHideEventListener, removePageUnloadEventListener, throwError } from \"@microsoft/applicationinsights-core-js\";\r\nimport { AjaxPlugin as DependenciesPlugin } from \"@microsoft/applicationinsights-dependencies-js\";\r\nimport { PropertiesPlugin } from \"@microsoft/applicationinsights-properties-js\";\r\nimport { STR_ADD_TELEMETRY_INITIALIZER, STR_CLEAR_AUTHENTICATED_USER_CONTEXT, STR_EVT_NAMESPACE, STR_FLUSH, STR_GET_COOKIE_MGR, STR_GET_PLUGIN, STR_POLL_INTERNAL_LOGS, STR_SET_AUTHENTICATED_USER_CONTEXT, STR_SNIPPET, STR_START_TRACK_EVENT, STR_START_TRACK_PAGE, STR_STOP_TRACK_EVENT, STR_STOP_TRACK_PAGE, STR_TRACK_DEPENDENCY_DATA, STR_TRACK_EVENT, STR_TRACK_EXCEPTION, STR_TRACK_METRIC, STR_TRACK_PAGE_VIEW, STR_TRACK_TRACE } from \"./InternalConstants\";\r\nimport { _DYN_ADD_HOUSEKEEPING_BEF20, _DYN_APP_INSIGHTS, _DYN_CONFIG, _DYN_CONNECTION_STRING, _DYN_CONTEXT, _DYN_DIAGNOSTIC_LOG_INTER4, _DYN_DISABLE_FLUSH_ON_BEF11, _DYN_DISABLE_FLUSH_ON_UNL12, _DYN_DISABLE_IKEY_DEPRECA18, _DYN_ENDPOINT_URL, _DYN_GET_TRANSMISSION_CON19, _DYN_INDEX_OF, _DYN_INSTRUMENTATION_KEY, _DYN_LOAD_APP_INSIGHTS, _DYN_ONUNLOAD_FLUSH, _DYN_PUSH, _DYN_QUEUE, _DYN_UPDATE_SNIPPET_DEFIN0, _DYN_VERSION } from \"./__DynamicConstants\";\r\nvar _internalSdkSrc;\r\n// This is an exclude list of properties that should not be updated during initialization\r\n// They include a combination of private and internal property names\r\nvar _ignoreUpdateSnippetProperties = [\r\n STR_SNIPPET, \"dependencies\", \"properties\", \"_snippetVersion\", \"appInsightsNew\", \"getSKUDefaults\"\r\n];\r\n// Re-exposing the Common classes as Telemetry, the list was taken by reviewing the generated code for the build while using\r\n// the previous configuration :-\r\n// import * as Common from \"@microsoft/applicationinsights-common\"\r\n// export const Telemetry = Common;\r\nvar fieldType = {\r\n Default: 0 /* FieldType.Default */,\r\n Required: 1 /* FieldType.Required */,\r\n Array: 2 /* FieldType.Array */,\r\n Hidden: 4 /* FieldType.Hidden */\r\n};\r\n/**\r\n * Telemetry type classes, e.g. PageView, Exception, etc\r\n */\r\nexport var Telemetry = {\r\n __proto__: null,\r\n PropertiesPluginIdentifier: PropertiesPluginIdentifier,\r\n BreezeChannelIdentifier: BreezeChannelIdentifier,\r\n AnalyticsPluginIdentifier: AnalyticsPluginIdentifier,\r\n Util: Util,\r\n CorrelationIdHelper: CorrelationIdHelper,\r\n UrlHelper: UrlHelper,\r\n DateTimeUtils: DateTimeUtils,\r\n ConnectionStringParser: ConnectionStringParser,\r\n FieldType: fieldType,\r\n RequestHeaders: RequestHeaders,\r\n DisabledPropertyName: DisabledPropertyName,\r\n ProcessLegacy: ProcessLegacy,\r\n SampleRate: SampleRate,\r\n HttpMethod: HttpMethod,\r\n DEFAULT_BREEZE_ENDPOINT: DEFAULT_BREEZE_ENDPOINT,\r\n Envelope: Envelope,\r\n Event: Event,\r\n Exception: Exception,\r\n Metric: Metric,\r\n PageView: PageView,\r\n RemoteDependencyData: RemoteDependencyData,\r\n Trace: Trace,\r\n PageViewPerformance: PageViewPerformance,\r\n Data: Data,\r\n SeverityLevel: SeverityLevel,\r\n ConfigurationManager: ConfigurationManager,\r\n ContextTagKeys: ContextTagKeys,\r\n DataSanitizer: DataSanitizer,\r\n TelemetryItemCreator: TelemetryItemCreator,\r\n CtxTagKeys: CtxTagKeys,\r\n Extensions: Extensions,\r\n DistributedTracingModes: DistributedTracingModes\r\n};\r\n/**\r\n * Application Insights API\r\n * @class Initialization\r\n * @implements {IApplicationInsights}\r\n */\r\nvar Initialization = /** @class */ (function () {\r\n function Initialization(snippet) {\r\n var _this = this;\r\n // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n var dependencies;\r\n var properties;\r\n var _sender;\r\n var _snippetVersion;\r\n var _evtNamespace;\r\n var _houseKeepingNamespace;\r\n var _core;\r\n dynamicProto(Initialization, this, function (_self) {\r\n _initDefaults();\r\n // initialize the queue and config in case they are undefined\r\n _snippetVersion = \"\" + (snippet.sv || snippet[_DYN_VERSION /* @min:%2eversion */] || \"\");\r\n snippet[_DYN_QUEUE /* @min:%2equeue */] = snippet[_DYN_QUEUE /* @min:%2equeue */] || [];\r\n snippet[_DYN_VERSION /* @min:%2eversion */] = snippet[_DYN_VERSION /* @min:%2eversion */] || 2.0; // Default to new version\r\n var config = snippet[_DYN_CONFIG /* @min:%2econfig */] || {};\r\n if (config[_DYN_CONNECTION_STRING /* @min:%2econnectionString */]) {\r\n var cs = parseConnectionString(config[_DYN_CONNECTION_STRING /* @min:%2econnectionString */]);\r\n var ingest = cs.ingestionendpoint;\r\n config[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */] = ingest ? (ingest + DEFAULT_BREEZE_PATH) : config[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */]; // only add /v2/track when from connectionstring\r\n config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */] = cs.instrumentationkey || config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */];\r\n }\r\n _self[_DYN_APP_INSIGHTS /* @min:%2eappInsights */] = new AnalyticsPlugin();\r\n properties = new PropertiesPlugin();\r\n dependencies = new DependenciesPlugin();\r\n _sender = new Sender();\r\n _core = new AppInsightsCore();\r\n _self.core = _core;\r\n var isErrMessageDisabled = isNullOrUndefined(config[_DYN_DISABLE_IKEY_DEPRECA18 /* @min:%2edisableIkeyDeprecationMessage */]) ? true : config[_DYN_DISABLE_IKEY_DEPRECA18 /* @min:%2edisableIkeyDeprecationMessage */];\r\n if (!config[_DYN_CONNECTION_STRING /* @min:%2econnectionString */] && !isErrMessageDisabled) {\r\n _throwInternal(_core.logger, 1 /* eLoggingSeverity.CRITICAL */, 106 /* _eInternalMessageId.InstrumentationKeyDeprecation */, \"Instrumentation key support will end soon, see aka.ms/IkeyMigrate\");\r\n }\r\n _self[STR_SNIPPET /* @min:%2esnippet */] = snippet;\r\n _self[_DYN_CONFIG /* @min:%2econfig */] = config;\r\n _getSKUDefaults();\r\n _self[STR_FLUSH /* @min:%2eflush */] = function (async) {\r\n if (async === void 0) { async = true; }\r\n doPerf(_core, function () { return \"AISKU.flush\"; }, function () {\r\n arrForEach(_core[_DYN_GET_TRANSMISSION_CON19 /* @min:%2egetTransmissionControls */](), function (channels) {\r\n arrForEach(channels, function (channel) {\r\n channel[STR_FLUSH /* @min:%2eflush */](async);\r\n });\r\n });\r\n }, null, async);\r\n };\r\n _self[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */] = function (async) {\r\n if (async === void 0) { async = true; }\r\n arrForEach(_core[_DYN_GET_TRANSMISSION_CON19 /* @min:%2egetTransmissionControls */](), function (channels) {\r\n arrForEach(channels, function (channel) {\r\n if (channel[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */]) {\r\n channel[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */]();\r\n }\r\n else {\r\n channel[STR_FLUSH /* @min:%2eflush */](async);\r\n }\r\n });\r\n });\r\n };\r\n _self[_DYN_LOAD_APP_INSIGHTS /* @min:%2eloadAppInsights */] = function (legacyMode, logger, notificationManager) {\r\n if (legacyMode === void 0) { legacyMode = false; }\r\n function _updateSnippetProperties(snippet) {\r\n if (snippet) {\r\n var snippetVer = \"\";\r\n if (!isNullOrUndefined(_snippetVersion)) {\r\n snippetVer += _snippetVersion;\r\n }\r\n if (legacyMode) {\r\n snippetVer += \".lg\";\r\n }\r\n if (_self[_DYN_CONTEXT /* @min:%2econtext */] && _self[_DYN_CONTEXT /* @min:%2econtext */].internal) {\r\n _self[_DYN_CONTEXT /* @min:%2econtext */].internal.snippetVer = snippetVer || \"-\";\r\n }\r\n // apply updated properties to the global instance (snippet)\r\n objForEachKey(_self, function (field, value) {\r\n if (isString(field) &&\r\n !isFunction(value) &&\r\n field && field[0] !== \"_\" && // Don't copy \"internal\" values\r\n arrIndexOf(_ignoreUpdateSnippetProperties, field) === -1) {\r\n snippet[field] = value;\r\n }\r\n });\r\n }\r\n }\r\n // dont allow additional channels/other extensions for legacy mode; legacy mode is only to allow users to switch with no code changes!\r\n if (legacyMode && _self[_DYN_CONFIG /* @min:%2econfig */].extensions && _self[_DYN_CONFIG /* @min:%2econfig */].extensions.length > 0) {\r\n throwError(\"Extensions not allowed in legacy mode\");\r\n }\r\n doPerf(_self.core, function () { return \"AISKU.loadAppInsights\"; }, function () {\r\n var extensions = [];\r\n extensions[_DYN_PUSH /* @min:%2epush */](_sender);\r\n extensions[_DYN_PUSH /* @min:%2epush */](properties);\r\n extensions[_DYN_PUSH /* @min:%2epush */](dependencies);\r\n extensions[_DYN_PUSH /* @min:%2epush */](_self[_DYN_APP_INSIGHTS /* @min:%2eappInsights */]);\r\n // initialize core\r\n _core.initialize(_self[_DYN_CONFIG /* @min:%2econfig */], extensions, logger, notificationManager);\r\n _self[_DYN_CONTEXT /* @min:%2econtext */] = properties[_DYN_CONTEXT /* @min:%2econtext */];\r\n if (_internalSdkSrc && _self[_DYN_CONTEXT /* @min:%2econtext */]) {\r\n _self[_DYN_CONTEXT /* @min:%2econtext */].internal.sdkSrc = _internalSdkSrc;\r\n }\r\n _updateSnippetProperties(_self[STR_SNIPPET /* @min:%2esnippet */]);\r\n // Empty queue of all api calls logged prior to sdk download\r\n _self.emptyQueue();\r\n _self[STR_POLL_INTERNAL_LOGS /* @min:%2epollInternalLogs */]();\r\n _self[_DYN_ADD_HOUSEKEEPING_BEF20 /* @min:%2eaddHousekeepingBeforeUnload */](_self);\r\n });\r\n return _self;\r\n };\r\n _self[_DYN_UPDATE_SNIPPET_DEFIN0 /* @min:%2eupdateSnippetDefinitions */] = function (snippet) {\r\n // apply full appInsights to the global instance\r\n // Note: This must be called before loadAppInsights is called\r\n proxyAssign(snippet, _self, function (name) {\r\n // Not excluding names prefixed with \"_\" as we need to proxy some functions like _onError\r\n return name && arrIndexOf(_ignoreUpdateSnippetProperties, name) === -1;\r\n });\r\n };\r\n _self.emptyQueue = function () {\r\n // call functions that were queued before the main script was loaded\r\n try {\r\n if (isArray(_self.snippet[_DYN_QUEUE /* @min:%2equeue */])) {\r\n // note: do not check length in the for-loop conditional in case something goes wrong and the stub methods are not overridden.\r\n var length_1 = _self.snippet[_DYN_QUEUE /* @min:%2equeue */].length;\r\n for (var i = 0; i < length_1; i++) {\r\n var call = _self.snippet[_DYN_QUEUE /* @min:%2equeue */][i];\r\n call();\r\n }\r\n _self.snippet[_DYN_QUEUE /* @min:%2equeue */] = undefined;\r\n delete _self.snippet[_DYN_QUEUE /* @min:%2equeue */];\r\n }\r\n }\r\n catch (exception) {\r\n var properties_1 = {};\r\n if (exception && isFunction(exception.toString)) {\r\n properties_1.exception = exception.toString();\r\n }\r\n // need from core\r\n // Microsoft.ApplicationInsights._InternalLogging.throwInternal(\r\n // eLoggingSeverity.WARNING,\r\n // _eInternalMessageId.FailedToSendQueuedTelemetry,\r\n // \"Failed to send queued telemetry\",\r\n // properties);\r\n }\r\n };\r\n _self[_DYN_ADD_HOUSEKEEPING_BEF20 /* @min:%2eaddHousekeepingBeforeUnload */] = function (appInsightsInstance) {\r\n // Add callback to push events when the user navigates away\r\n if (hasWindow() || hasDocument()) {\r\n var performHousekeeping = function () {\r\n // Adds the ability to flush all data before the page unloads.\r\n // Note: This approach tries to push a sync request with all the pending events onbeforeunload.\r\n // Firefox does not respect this.Other browsers DO push out the call with < 100% hit rate.\r\n // Telemetry here will help us analyze how effective this approach is.\r\n // Another approach would be to make this call sync with a acceptable timeout to reduce the\r\n // impact on user experience.\r\n // appInsightsInstance.context._sender.triggerSend();\r\n appInsightsInstance[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */](false);\r\n // Back up the current session to local storage\r\n // This lets us close expired sessions after the cookies themselves expire\r\n if (isFunction(_this.core[STR_GET_PLUGIN /* @min:%2egetPlugin */])) {\r\n var loadedPlugin = _this.core[STR_GET_PLUGIN /* @min:%2egetPlugin */](PropertiesPluginIdentifier);\r\n if (loadedPlugin) {\r\n var propertiesPlugin = loadedPlugin.plugin;\r\n if (propertiesPlugin && propertiesPlugin[_DYN_CONTEXT /* @min:%2econtext */] && propertiesPlugin[_DYN_CONTEXT /* @min:%2econtext */]._sessionManager) {\r\n propertiesPlugin[_DYN_CONTEXT /* @min:%2econtext */]._sessionManager.backup();\r\n }\r\n }\r\n }\r\n };\r\n var added = false;\r\n var excludePageUnloadEvents = appInsightsInstance.appInsights[_DYN_CONFIG /* @min:%2econfig */].disablePageUnloadEvents;\r\n if (!_houseKeepingNamespace) {\r\n _houseKeepingNamespace = mergeEvtNamespace(_evtNamespace, _core[STR_EVT_NAMESPACE /* @min:%2eevtNamespace */] && _core[STR_EVT_NAMESPACE /* @min:%2eevtNamespace */]());\r\n }\r\n if (!appInsightsInstance.appInsights.config[_DYN_DISABLE_FLUSH_ON_BEF11 /* @min:%2edisableFlushOnBeforeUnload */]) {\r\n // Hook the unload event for the document, window and body to ensure that the client events are flushed to the server\r\n // As just hooking the window does not always fire (on chrome) for page navigation's.\r\n if (addPageUnloadEventListener(performHousekeeping, excludePageUnloadEvents, _houseKeepingNamespace)) {\r\n added = true;\r\n }\r\n // We also need to hook the pagehide and visibilitychange events as not all versions of Safari support load/unload events.\r\n if (addPageHideEventListener(performHousekeeping, excludePageUnloadEvents, _houseKeepingNamespace)) {\r\n added = true;\r\n }\r\n // A reactNative app may not have a window and therefore the beforeunload/pagehide events -- so don't\r\n // log the failure in this case\r\n if (!added && !isReactNative()) {\r\n _throwInternal(appInsightsInstance[_DYN_APP_INSIGHTS /* @min:%2eappInsights */].core.logger, 1 /* eLoggingSeverity.CRITICAL */, 19 /* _eInternalMessageId.FailedToAddHandlerForOnBeforeUnload */, \"Could not add handler for beforeunload and pagehide\");\r\n }\r\n }\r\n if (!added && !appInsightsInstance.appInsights.config[_DYN_DISABLE_FLUSH_ON_UNL12 /* @min:%2edisableFlushOnUnload */]) {\r\n // If we didn't add the normal set then attempt to add the pagehide and visibilitychange only\r\n addPageHideEventListener(performHousekeeping, excludePageUnloadEvents, _houseKeepingNamespace);\r\n }\r\n }\r\n };\r\n _self.getSender = function () {\r\n return _sender;\r\n };\r\n _self.unload = function (isAsync, unloadComplete, cbTimeout) {\r\n _self[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */](isAsync);\r\n // Remove any registered event handlers\r\n if (_houseKeepingNamespace) {\r\n removePageUnloadEventListener(null, _houseKeepingNamespace);\r\n removePageHideEventListener(null, _houseKeepingNamespace);\r\n }\r\n _core.unload && _core.unload(isAsync, unloadComplete, cbTimeout);\r\n };\r\n proxyFunctions(_self, _self[_DYN_APP_INSIGHTS /* @min:%2eappInsights */], [\r\n STR_GET_COOKIE_MGR,\r\n STR_TRACK_EVENT,\r\n STR_TRACK_PAGE_VIEW,\r\n \"trackPageViewPerformance\",\r\n STR_TRACK_EXCEPTION,\r\n \"_onerror\",\r\n STR_TRACK_TRACE,\r\n STR_TRACK_METRIC,\r\n STR_START_TRACK_PAGE,\r\n STR_STOP_TRACK_PAGE,\r\n STR_START_TRACK_EVENT,\r\n STR_STOP_TRACK_EVENT\r\n ]);\r\n proxyFunctions(_self, _getCurrentDependencies, [\r\n STR_TRACK_DEPENDENCY_DATA,\r\n \"addDependencyListener\",\r\n \"addDependencyInitializer\"\r\n ]);\r\n proxyFunctions(_self, _core, [\r\n STR_ADD_TELEMETRY_INITIALIZER,\r\n STR_POLL_INTERNAL_LOGS,\r\n \"stopPollingInternalLogs\",\r\n STR_GET_PLUGIN,\r\n \"addPlugin\",\r\n STR_EVT_NAMESPACE,\r\n \"addUnloadCb\",\r\n \"getTraceCtx\"\r\n ]);\r\n proxyFunctions(_self, function () {\r\n var context = properties[_DYN_CONTEXT /* @min:%2econtext */];\r\n return context ? context.user : null;\r\n }, [\r\n STR_SET_AUTHENTICATED_USER_CONTEXT,\r\n STR_CLEAR_AUTHENTICATED_USER_CONTEXT\r\n ]);\r\n function _getSKUDefaults() {\r\n _self.config[_DYN_DIAGNOSTIC_LOG_INTER4 /* @min:%2ediagnosticLogInterval */] =\r\n _self.config[_DYN_DIAGNOSTIC_LOG_INTER4 /* @min:%2ediagnosticLogInterval */] && _self[_DYN_CONFIG /* @min:%2econfig */][_DYN_DIAGNOSTIC_LOG_INTER4 /* @min:%2ediagnosticLogInterval */] > 0 ? _self[_DYN_CONFIG /* @min:%2econfig */][_DYN_DIAGNOSTIC_LOG_INTER4 /* @min:%2ediagnosticLogInterval */] : 10000;\r\n }\r\n // Using a function to support the dynamic adding / removal of plugins, so this will always return the current value\r\n function _getCurrentDependencies() {\r\n return dependencies;\r\n }\r\n function _initDefaults() {\r\n _evtNamespace = createUniqueNamespace(\"AISKU\");\r\n _houseKeepingNamespace = null;\r\n dependencies = null;\r\n properties = null;\r\n _sender = null;\r\n _snippetVersion = null;\r\n }\r\n });\r\n }\r\n // Analytics Plugin\r\n// Removed Stub for Initialization.prototype.getCookieMgr.\r\n// Removed Stub for Initialization.prototype.trackEvent.\r\n// Removed Stub for Initialization.prototype.trackPageView.\r\n// Removed Stub for Initialization.prototype.trackPageViewPerformance.\r\n// Removed Stub for Initialization.prototype.trackException.\r\n// Removed Stub for Initialization.prototype._onerror.\r\n// Removed Stub for Initialization.prototype.trackTrace.\r\n// Removed Stub for Initialization.prototype.trackMetric.\r\n// Removed Stub for Initialization.prototype.startTrackPage.\r\n// Removed Stub for Initialization.prototype.stopTrackPage.\r\n// Removed Stub for Initialization.prototype.startTrackEvent.\r\n// Removed Stub for Initialization.prototype.stopTrackEvent.\r\n// Removed Stub for Initialization.prototype.addTelemetryInitializer.\r\n // Properties Plugin\r\n// Removed Stub for Initialization.prototype.setAuthenticatedUserContext.\r\n// Removed Stub for Initialization.prototype.clearAuthenticatedUserContext.\r\n // Dependencies Plugin\r\n// Removed Stub for Initialization.prototype.trackDependencyData.\r\n // Misc\r\n// Removed Stub for Initialization.prototype.flush.\r\n// Removed Stub for Initialization.prototype.onunloadFlush.\r\n// Removed Stub for Initialization.prototype.loadAppInsights.\r\n// Removed Stub for Initialization.prototype.updateSnippetDefinitions.\r\n// Removed Stub for Initialization.prototype.emptyQueue.\r\n// Removed Stub for Initialization.prototype.pollInternalLogs.\r\n// Removed Stub for Initialization.prototype.stopPollingInternalLogs.\r\n// Removed Stub for Initialization.prototype.addHousekeepingBeforeUnload.\r\n// Removed Stub for Initialization.prototype.getSender.\r\n// Removed Stub for Initialization.prototype.unload.\r\n// Removed Stub for Initialization.prototype.getPlugin.\r\n// Removed Stub for Initialization.prototype.addPlugin.\r\n// Removed Stub for Initialization.prototype.evtNamespace.\r\n// Removed Stub for Initialization.prototype.addUnloadCb.\r\n// Removed Stub for Initialization.prototype.addDependencyListener.\r\n /**\r\n * Add an dependency telemetry initializer callback function to allow populating additional properties or drop the request.\r\n * It is called after the dependency call has completed and any available performance details are available. A dependency\r\n * initializer is similar to the TelemetryInitializer function but it allows you to block the reporting of the dependency\r\n * request so that it doesn't count against the `maxAjaxCallsPerView`.\r\n * @param dependencyInitializer - The Dependency Telemetry Initializer function\r\n * @returns - A IDependencyInitializerHandler to enable the initializer to be removed\r\n */\r\n Initialization.prototype.addDependencyInitializer = function (dependencyInitializer) {\r\n return null;\r\n };\r\n// Removed Stub for Initialization.prototype.getTraceCtx.\r\n return Initialization;\r\n}());\r\nexport { Initialization };\r\n// tslint:disable-next-line\r\n(function () {\r\n var sdkSrc = null;\r\n var isModule = false;\r\n var cdns = [\r\n \"://js.monitor.azure.com/\",\r\n \"://az416426.vo.msecnd.net/\"\r\n ];\r\n try {\r\n // Try and determine whether the sdk is being loaded from the CDN\r\n // currentScript is only valid during initial processing\r\n var scrpt = (document || {}).currentScript;\r\n if (scrpt) {\r\n sdkSrc = scrpt.src;\r\n // } else {\r\n // // We need to update to at least typescript 2.9 for this to work :-(\r\n // // Leaving as a stub for now so after we upgrade this breadcrumb is available\r\n // let meta = import.meta;\r\n // sdkSrc = (meta || {}).url;\r\n // isModule = true;\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n if (sdkSrc) {\r\n try {\r\n var url = sdkSrc.toLowerCase();\r\n if (url) {\r\n var src = \"\";\r\n for (var idx = 0; idx < cdns.length; idx++) {\r\n if (url[_DYN_INDEX_OF /* @min:%2eindexOf */](cdns[idx]) !== -1) {\r\n src = \"cdn\" + (idx + 1);\r\n if (url[_DYN_INDEX_OF /* @min:%2eindexOf */](\"/scripts/\") === -1) {\r\n if (url[_DYN_INDEX_OF /* @min:%2eindexOf */](\"/next/\") !== -1) {\r\n src += \"-next\";\r\n }\r\n else if (url[_DYN_INDEX_OF /* @min:%2eindexOf */](\"/beta/\") !== -1) {\r\n src += \"-beta\";\r\n }\r\n }\r\n _internalSdkSrc = src + (isModule ? \".mod\" : \"\");\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n})();\r\n//# sourceMappingURL=Initialization.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n/**\r\n* PropertiesPlugin.ts\r\n* @copyright Microsoft 2018\r\n*/\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { BreezeChannelIdentifier, PageView, PropertiesPluginIdentifier, createDistributedTraceContextFromTrace } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, _InternalLogMessage, _logInternalMessage, createProcessTelemetryContext, getNavigator, getSetValue, isNullOrUndefined, objForEachKey } from \"@microsoft/applicationinsights-core-js\";\r\nimport { TelemetryContext } from \"./TelemetryContext\";\r\nimport { _DYN_ACCOUNT_ID, _DYN_APPLY_APPLICATION_CO1, _DYN_APPLY_DEVICE_CONTEXT, _DYN_APPLY_INTERNAL_CONTE5, _DYN_APPLY_LOCATION_CONTE4, _DYN_APPLY_OPERATING_SYST3, _DYN_APPLY_OPERATION_CONT2, _DYN_APPLY_SESSION_CONTEX0, _DYN_APPLY_USER_CONTEXT, _DYN_COOKIE_DOMAIN, _DYN_GET_NEW_ID, _DYN_GET_SESSION_ID, _DYN_GET_TRACE_CTX, _DYN_ID_LENGTH, _DYN_IS_NEW_USER, _DYN_IS_USER_COOKIE_SET, _DYN_NAME_PREFIX, _DYN_SDK_EXTENSION, _DYN_SESSION_COOKIE_POSTF6, _DYN_SESSION_MANAGER, _DYN_TELEMETRY_TRACE, _DYN_UPDATE, _DYN_USER_COOKIE_POSTFIX } from \"./__DynamicConstants\";\r\nvar PropertiesPlugin = /** @class */ (function (_super) {\r\n __extends(PropertiesPlugin, _super);\r\n function PropertiesPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.priority = 110;\r\n _this.identifier = PropertiesPluginIdentifier;\r\n var _extensionConfig;\r\n var _distributedTraceCtx;\r\n var _previousTraceCtx;\r\n dynamicProto(PropertiesPlugin, _this, function (_self, _base) {\r\n _initDefaults();\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n _base.initialize(config, core, extensions, pluginChain);\r\n _populateDefaults(config);\r\n };\r\n /**\r\n * Add Part A fields to the event\r\n * @param event The event that needs to be processed\r\n */\r\n _self.processTelemetry = function (event, itemCtx) {\r\n if (isNullOrUndefined(event)) {\r\n // TODO(barustum): throw an internal event once we have support for internal logging\r\n }\r\n else {\r\n itemCtx = _self._getTelCtx(itemCtx);\r\n // If the envelope is PageView, reset the internal message count so that we can send internal telemetry for the new page.\r\n if (event.name === PageView.envelopeType) {\r\n itemCtx.diagLog().resetInternalMessageCount();\r\n }\r\n var theContext = (_self.context || {});\r\n if (theContext.session) {\r\n // If customer did not provide custom session id update the session manager\r\n if (typeof _self.context.session.id !== \"string\" && theContext[_DYN_SESSION_MANAGER /* @min:%2esessionManager */]) {\r\n theContext[_DYN_SESSION_MANAGER /* @min:%2esessionManager */][_DYN_UPDATE /* @min:%2eupdate */]();\r\n }\r\n }\r\n var userCtx = theContext.user;\r\n if (userCtx && !userCtx[_DYN_IS_USER_COOKIE_SET /* @min:%2eisUserCookieSet */]) {\r\n userCtx[_DYN_UPDATE /* @min:%2eupdate */](theContext.user.id);\r\n }\r\n _processTelemetryInternal(event, itemCtx);\r\n if (userCtx && userCtx[_DYN_IS_NEW_USER /* @min:%2eisNewUser */]) {\r\n userCtx[_DYN_IS_NEW_USER /* @min:%2eisNewUser */] = false;\r\n var message = new _InternalLogMessage(72 /* _eInternalMessageId.SendBrowserInfoOnUserInit */, ((getNavigator() || {}).userAgent || \"\"));\r\n _logInternalMessage(itemCtx.diagLog(), 1 /* eLoggingSeverity.CRITICAL */, message);\r\n }\r\n _self.processNext(event, itemCtx);\r\n }\r\n };\r\n _self._doTeardown = function (unloadCtx, unloadState) {\r\n var core = (unloadCtx || {}).core();\r\n if (core && core[_DYN_GET_TRACE_CTX /* @min:%2egetTraceCtx */]) {\r\n var traceCtx = core[_DYN_GET_TRACE_CTX /* @min:%2egetTraceCtx */](false);\r\n if (traceCtx === _distributedTraceCtx) {\r\n core.setTraceCtx(_previousTraceCtx);\r\n }\r\n }\r\n _initDefaults();\r\n };\r\n function _initDefaults() {\r\n _extensionConfig = null;\r\n _distributedTraceCtx = null;\r\n _previousTraceCtx = null;\r\n }\r\n function _populateDefaults(config) {\r\n var identifier = _self.identifier;\r\n var core = _self.core;\r\n var ctx = createProcessTelemetryContext(null, config, core);\r\n var defaultConfig = PropertiesPlugin.getDefaultConfig();\r\n _extensionConfig = _extensionConfig || {};\r\n objForEachKey(defaultConfig, function (field, value) {\r\n _extensionConfig[field] = function () { return ctx.getConfig(identifier, field, value()); };\r\n });\r\n _previousTraceCtx = core[_DYN_GET_TRACE_CTX /* @min:%2egetTraceCtx */](false);\r\n _self.context = new TelemetryContext(core, _extensionConfig, _previousTraceCtx);\r\n _distributedTraceCtx = createDistributedTraceContextFromTrace(_self.context[_DYN_TELEMETRY_TRACE /* @min:%2etelemetryTrace */], _previousTraceCtx);\r\n core.setTraceCtx(_distributedTraceCtx);\r\n _self.context.appId = function () {\r\n var breezeChannel = core.getPlugin(BreezeChannelIdentifier);\r\n return breezeChannel ? breezeChannel.plugin[\"_appId\"] : null;\r\n };\r\n // Test hook to allow accessing the internal values -- explicitly not defined as an available property on the class\r\n _self[\"_extConfig\"] = _extensionConfig;\r\n }\r\n function _processTelemetryInternal(evt, itemCtx) {\r\n // Set Part A fields\r\n getSetValue(evt, \"tags\", []);\r\n getSetValue(evt, \"ext\", {});\r\n var ctx = _self.context;\r\n ctx[_DYN_APPLY_SESSION_CONTEX0 /* @min:%2eapplySessionContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_APPLICATION_CO1 /* @min:%2eapplyApplicationContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_DEVICE_CONTEXT /* @min:%2eapplyDeviceContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_OPERATION_CONT2 /* @min:%2eapplyOperationContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_USER_CONTEXT /* @min:%2eapplyUserContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_OPERATING_SYST3 /* @min:%2eapplyOperatingSystemContxt */](evt, itemCtx);\r\n ctx.applyWebContext(evt, itemCtx);\r\n ctx[_DYN_APPLY_LOCATION_CONTE4 /* @min:%2eapplyLocationContext */](evt, itemCtx); // legacy tags\r\n ctx[_DYN_APPLY_INTERNAL_CONTE5 /* @min:%2eapplyInternalContext */](evt, itemCtx); // legacy tags\r\n ctx.cleanUp(evt, itemCtx);\r\n }\r\n });\r\n return _this;\r\n }\r\n PropertiesPlugin.getDefaultConfig = function () {\r\n var _a;\r\n var defaultValue;\r\n var nullValue = null;\r\n var defaultConfig = (_a = {\r\n instrumentationKey: function () { return defaultValue; }\r\n },\r\n _a[_DYN_ACCOUNT_ID /* @min:accountId */] = function () { return nullValue; },\r\n _a.sessionRenewalMs = function () { return 30 * 60 * 1000; },\r\n _a.samplingPercentage = function () { return 100; },\r\n _a.sessionExpirationMs = function () { return 24 * 60 * 60 * 1000; },\r\n _a[_DYN_COOKIE_DOMAIN /* @min:cookieDomain */] = function () { return nullValue; },\r\n _a[_DYN_SDK_EXTENSION /* @min:sdkExtension */] = function () { return nullValue; },\r\n _a.isBrowserLinkTrackingEnabled = function () { return false; },\r\n _a.appId = function () { return nullValue; },\r\n _a[_DYN_GET_SESSION_ID /* @min:getSessionId */] = function () { return nullValue; },\r\n _a[_DYN_NAME_PREFIX /* @min:namePrefix */] = function () { return defaultValue; },\r\n _a[_DYN_SESSION_COOKIE_POSTF6 /* @min:sessionCookiePostfix */] = function () { return defaultValue; },\r\n _a[_DYN_USER_COOKIE_POSTFIX /* @min:userCookiePostfix */] = function () { return defaultValue; },\r\n _a[_DYN_ID_LENGTH /* @min:idLength */] = function () { return 22; },\r\n _a[_DYN_GET_NEW_ID /* @min:getNewId */] = function () { return nullValue; },\r\n _a);\r\n return defaultConfig;\r\n };\r\n// Removed Stub for PropertiesPlugin.prototype.initialize.\r\n// Removed Stub for PropertiesPlugin.prototype.processTelemetry.\r\n return PropertiesPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport default PropertiesPlugin;\r\n//# sourceMappingURL=PropertiesPlugin.js.map","/*\n * Application Insights JavaScript SDK - Web, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Generally you should only put values that are used more than 2 times and then only if not already exposed as a constant (such as SdkCoreNames)\r\n// as when using \"short\" named values from here they will be will be minified smaller than the SdkCoreNames[eSdkCoreNames.xxxx] value.\r\nvar _AUTHENTICATED_USER_CONTEXT = \"AuthenticatedUserContext\";\r\nvar _TRACK = \"track\";\r\nexport var STR_EMPTY = \"\";\r\nexport var STR_SNIPPET = \"snippet\";\r\nexport var STR_GET_COOKIE_MGR = \"getCookieMgr\";\r\nexport var STR_START_TRACK_PAGE = \"startTrackPage\";\r\nexport var STR_STOP_TRACK_PAGE = \"stopTrackPage\";\r\nexport var STR_FLUSH = \"flush\";\r\nexport var STR_START_TRACK_EVENT = \"startTrackEvent\";\r\nexport var STR_STOP_TRACK_EVENT = \"stopTrackEvent\";\r\nexport var STR_ADD_TELEMETRY_INITIALIZER = \"addTelemetryInitializer\";\r\nexport var STR_ADD_TELEMETRY_INITIALIZERS = STR_ADD_TELEMETRY_INITIALIZER + \"s\";\r\nexport var STR_POLL_INTERNAL_LOGS = \"pollInternalLogs\";\r\nexport var STR_GET_PLUGIN = \"getPlugin\";\r\nexport var STR_EVT_NAMESPACE = \"evtNamespace\";\r\nexport var STR_TRACK_EVENT = _TRACK + \"Event\";\r\nexport var STR_TRACK_TRACE = _TRACK + \"Trace\";\r\nexport var STR_TRACK_METRIC = _TRACK + \"Metric\";\r\nexport var STR_TRACK_PAGE_VIEW = _TRACK + \"PageView\";\r\nexport var STR_TRACK_EXCEPTION = _TRACK + \"Exception\";\r\nexport var STR_TRACK_DEPENDENCY_DATA = _TRACK + \"DependencyData\";\r\nexport var STR_SET_AUTHENTICATED_USER_CONTEXT = \"set\" + _AUTHENTICATED_USER_CONTEXT;\r\nexport var STR_CLEAR_AUTHENTICATED_USER_CONTEXT = \"clear\" + _AUTHENTICATED_USER_CONTEXT;\r\n//# sourceMappingURL=InternalConstants.js.map","/*\n * Application Insights JavaScript SDK - Web, 2.8.14\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_UPDATE_SNIPPET_DEFIN0 = \"updateSnippetDefinitions\"; // Count: 4\r\nexport var _DYN_LOAD_APP_INSIGHTS = \"loadAppInsights\"; // Count: 4\r\nexport var _DYN_ENDPOINT_URL = \"endpointUrl\"; // Count: 4\r\nexport var _DYN_MAX_BATCH_SIZE_IN_BY1 = \"maxBatchSizeInBytes\"; // Count: 3\r\nexport var _DYN_MAX_BATCH_INTERVAL = \"maxBatchInterval\"; // Count: 3\r\nexport var _DYN_DISABLE_EXCEPTION_TR2 = \"disableExceptionTracking\"; // Count: 2\r\nexport var _DYN_DISABLE_TELEMETRY = \"disableTelemetry\"; // Count: 2\r\nexport var _DYN_EMIT_LINE_DELIMITED_3 = \"emitLineDelimitedJson\"; // Count: 2\r\nexport var _DYN_DIAGNOSTIC_LOG_INTER4 = \"diagnosticLogInterval\"; // Count: 6\r\nexport var _DYN_AUTO_TRACK_PAGE_VISI5 = \"autoTrackPageVisitTime\"; // Count: 2\r\nexport var _DYN_SAMPLING_PERCENTAGE = \"samplingPercentage\"; // Count: 4\r\nexport var _DYN_DISABLE_AJAX_TRACKIN6 = \"disableAjaxTracking\"; // Count: 2\r\nexport var _DYN_MAX_AJAX_CALLS_PER_V7 = \"maxAjaxCallsPerView\"; // Count: 3\r\nexport var _DYN_IS_BEACON_API_DISABL8 = \"isBeaconApiDisabled\"; // Count: 2\r\nexport var _DYN_DISABLE_CORRELATION_9 = \"disableCorrelationHeaders\"; // Count: 2\r\nexport var _DYN_CORRELATION_HEADER_E10 = \"correlationHeaderExcludedDomains\"; // Count: 2\r\nexport var _DYN_DISABLE_FLUSH_ON_BEF11 = \"disableFlushOnBeforeUnload\"; // Count: 4\r\nexport var _DYN_DISABLE_FLUSH_ON_UNL12 = \"disableFlushOnUnload\"; // Count: 3\r\nexport var _DYN_ENABLE_SESSION_STORA13 = \"enableSessionStorageBuffer\"; // Count: 2\r\nexport var _DYN_IS_COOKIE_USE_DISABL14 = \"isCookieUseDisabled\"; // Count: 2\r\nexport var _DYN_IS_STORAGE_USE_DISAB15 = \"isStorageUseDisabled\"; // Count: 2\r\nexport var _DYN_IS_BROWSER_LINK_TRAC16 = \"isBrowserLinkTrackingEnabled\"; // Count: 2\r\nexport var _DYN_ENABLE_CORS_CORRELAT17 = \"enableCorsCorrelation\"; // Count: 2\r\nexport var _DYN_CONFIG = \"config\"; // Count: 6\r\nexport var _DYN_CONTEXT = \"context\"; // Count: 8\r\nexport var _DYN_PUSH = \"push\"; // Count: 5\r\nexport var _DYN_VERSION = \"version\"; // Count: 6\r\nexport var _DYN_QUEUE = \"queue\"; // Count: 6\r\nexport var _DYN_CONNECTION_STRING = \"connectionString\"; // Count: 3\r\nexport var _DYN_INSTRUMENTATION_KEY = \"instrumentationKey\"; // Count: 2\r\nexport var _DYN_APP_INSIGHTS = \"appInsights\"; // Count: 3\r\nexport var _DYN_DISABLE_IKEY_DEPRECA18 = \"disableIkeyDeprecationMessage\"; // Count: 2\r\nexport var _DYN_GET_TRANSMISSION_CON19 = \"getTransmissionControls\"; // Count: 2\r\nexport var _DYN_ONUNLOAD_FLUSH = \"onunloadFlush\"; // Count: 6\r\nexport var _DYN_ADD_HOUSEKEEPING_BEF20 = \"addHousekeepingBeforeUnload\"; // Count: 2\r\nexport var _DYN_INDEX_OF = \"indexOf\"; // Count: 4\r\n//# sourceMappingURL=__DynamicConstants.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// 0, 2, 10, 30 second delays before reconnect attempts.\r\nconst DEFAULT_RETRY_DELAYS_IN_MILLISECONDS = [0, 2000, 10000, 30000, null];\r\n/** @private */\r\nexport class DefaultReconnectPolicy {\r\n constructor(retryDelays) {\r\n this._retryDelays = retryDelays !== undefined ? [...retryDelays, null] : DEFAULT_RETRY_DELAYS_IN_MILLISECONDS;\r\n }\r\n nextRetryDelayInMilliseconds(retryContext) {\r\n return this._retryDelays[retryContext.previousRetryCount];\r\n }\r\n}\r\n//# sourceMappingURL=DefaultReconnectPolicy.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nexport class HeaderNames {\r\n}\r\nHeaderNames.Authorization = \"Authorization\";\r\nHeaderNames.Cookie = \"Cookie\";\r\n//# sourceMappingURL=HeaderNames.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n/** Represents an HTTP response. */\r\nexport class HttpResponse {\r\n constructor(statusCode, statusText, content) {\r\n this.statusCode = statusCode;\r\n this.statusText = statusText;\r\n this.content = content;\r\n }\r\n}\r\n/** Abstraction over an HTTP client.\r\n *\r\n * This class provides an abstraction over an HTTP client so that a different implementation can be provided on different platforms.\r\n */\r\nexport class HttpClient {\r\n get(url, options) {\r\n return this.send({\r\n ...options,\r\n method: \"GET\",\r\n url,\r\n });\r\n }\r\n post(url, options) {\r\n return this.send({\r\n ...options,\r\n method: \"POST\",\r\n url,\r\n });\r\n }\r\n delete(url, options) {\r\n return this.send({\r\n ...options,\r\n method: \"DELETE\",\r\n url,\r\n });\r\n }\r\n /** Gets all cookies that apply to the specified URL.\r\n *\r\n * @param url The URL that the cookies are valid for.\r\n * @returns {string} A string containing all the key-value cookie pairs for the specified URL.\r\n */\r\n // @ts-ignore\r\n getCookieString(url) {\r\n return \"\";\r\n }\r\n}\r\n//# sourceMappingURL=HttpClient.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { HeaderNames } from \"./HeaderNames\";\r\nimport { HttpClient } from \"./HttpClient\";\r\n/** @private */\r\nexport class AccessTokenHttpClient extends HttpClient {\r\n constructor(innerClient, accessTokenFactory) {\r\n super();\r\n this._innerClient = innerClient;\r\n this._accessTokenFactory = accessTokenFactory;\r\n }\r\n async send(request) {\r\n let allowRetry = true;\r\n if (this._accessTokenFactory && (!this._accessToken || (request.url && request.url.indexOf(\"/negotiate?\") > 0))) {\r\n // don't retry if the request is a negotiate or if we just got a potentially new token from the access token factory\r\n allowRetry = false;\r\n this._accessToken = await this._accessTokenFactory();\r\n }\r\n this._setAuthorizationHeader(request);\r\n const response = await this._innerClient.send(request);\r\n if (allowRetry && response.statusCode === 401 && this._accessTokenFactory) {\r\n this._accessToken = await this._accessTokenFactory();\r\n this._setAuthorizationHeader(request);\r\n return await this._innerClient.send(request);\r\n }\r\n return response;\r\n }\r\n _setAuthorizationHeader(request) {\r\n if (!request.headers) {\r\n request.headers = {};\r\n }\r\n if (this._accessToken) {\r\n request.headers[HeaderNames.Authorization] = `Bearer ${this._accessToken}`;\r\n }\r\n // don't remove the header if there isn't an access token factory, the user manually added the header in this case\r\n else if (this._accessTokenFactory) {\r\n if (request.headers[HeaderNames.Authorization]) {\r\n delete request.headers[HeaderNames.Authorization];\r\n }\r\n }\r\n }\r\n getCookieString(url) {\r\n return this._innerClient.getCookieString(url);\r\n }\r\n}\r\n//# sourceMappingURL=AccessTokenHttpClient.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n/** Error thrown when an HTTP request fails. */\r\nexport class HttpError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.HttpError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n * @param {number} statusCode The HTTP status code represented by this error.\r\n */\r\n constructor(errorMessage, statusCode) {\r\n const trueProto = new.target.prototype;\r\n super(`${errorMessage}: Status code '${statusCode}'`);\r\n this.statusCode = statusCode;\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when a timeout elapses. */\r\nexport class TimeoutError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.TimeoutError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n */\r\n constructor(errorMessage = \"A timeout occurred.\") {\r\n const trueProto = new.target.prototype;\r\n super(errorMessage);\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when an action is aborted. */\r\nexport class AbortError extends Error {\r\n /** Constructs a new instance of {@link AbortError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n */\r\n constructor(errorMessage = \"An abort occurred.\") {\r\n const trueProto = new.target.prototype;\r\n super(errorMessage);\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when the selected transport is unsupported by the browser. */\r\n/** @private */\r\nexport class UnsupportedTransportError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.UnsupportedTransportError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occurred on.\r\n */\r\n constructor(message, transport) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.transport = transport;\r\n this.errorType = 'UnsupportedTransportError';\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when the selected transport is disabled by the browser. */\r\n/** @private */\r\nexport class DisabledTransportError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.DisabledTransportError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occurred on.\r\n */\r\n constructor(message, transport) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.transport = transport;\r\n this.errorType = 'DisabledTransportError';\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when the selected transport cannot be started. */\r\n/** @private */\r\nexport class FailedToStartTransportError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.FailedToStartTransportError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occurred on.\r\n */\r\n constructor(message, transport) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.transport = transport;\r\n this.errorType = 'FailedToStartTransportError';\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when the negotiation with the server failed to complete. */\r\n/** @private */\r\nexport class FailedToNegotiateWithServerError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.FailedToNegotiateWithServerError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n */\r\n constructor(message) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.errorType = 'FailedToNegotiateWithServerError';\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when multiple errors have occurred. */\r\n/** @private */\r\nexport class AggregateErrors extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.AggregateErrors}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {Error[]} innerErrors The collection of errors this error is aggregating.\r\n */\r\n constructor(message, innerErrors) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.innerErrors = innerErrors;\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n//# sourceMappingURL=Errors.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n/** A logger that does nothing when log messages are sent to it. */\r\nexport class NullLogger {\r\n constructor() { }\r\n /** @inheritDoc */\r\n // eslint-disable-next-line\r\n log(_logLevel, _message) {\r\n }\r\n}\r\n/** The singleton instance of the {@link @microsoft/signalr.NullLogger}. */\r\nNullLogger.instance = new NullLogger();\r\n//# sourceMappingURL=Loggers.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { NullLogger } from \"./Loggers\";\r\n// Version token that will be replaced by the prepack command\r\n/** The version of the SignalR client. */\r\nexport const VERSION = \"8.0.0\";\r\n/** @private */\r\nexport class Arg {\r\n static isRequired(val, name) {\r\n if (val === null || val === undefined) {\r\n throw new Error(`The '${name}' argument is required.`);\r\n }\r\n }\r\n static isNotEmpty(val, name) {\r\n if (!val || val.match(/^\\s*$/)) {\r\n throw new Error(`The '${name}' argument should not be empty.`);\r\n }\r\n }\r\n static isIn(val, values, name) {\r\n // TypeScript enums have keys for **both** the name and the value of each enum member on the type itself.\r\n if (!(val in values)) {\r\n throw new Error(`Unknown ${name} value: ${val}.`);\r\n }\r\n }\r\n}\r\n/** @private */\r\nexport class Platform {\r\n // react-native has a window but no document so we should check both\r\n static get isBrowser() {\r\n return !Platform.isNode && typeof window === \"object\" && typeof window.document === \"object\";\r\n }\r\n // WebWorkers don't have a window object so the isBrowser check would fail\r\n static get isWebWorker() {\r\n return !Platform.isNode && typeof self === \"object\" && \"importScripts\" in self;\r\n }\r\n // react-native has a window but no document\r\n static get isReactNative() {\r\n return !Platform.isNode && typeof window === \"object\" && typeof window.document === \"undefined\";\r\n }\r\n // Node apps shouldn't have a window object, but WebWorkers don't either\r\n // so we need to check for both WebWorker and window\r\n static get isNode() {\r\n return typeof process !== \"undefined\" && process.release && process.release.name === \"node\";\r\n }\r\n}\r\n/** @private */\r\nexport function getDataDetail(data, includeContent) {\r\n let detail = \"\";\r\n if (isArrayBuffer(data)) {\r\n detail = `Binary data of length ${data.byteLength}`;\r\n if (includeContent) {\r\n detail += `. Content: '${formatArrayBuffer(data)}'`;\r\n }\r\n }\r\n else if (typeof data === \"string\") {\r\n detail = `String data of length ${data.length}`;\r\n if (includeContent) {\r\n detail += `. Content: '${data}'`;\r\n }\r\n }\r\n return detail;\r\n}\r\n/** @private */\r\nexport function formatArrayBuffer(data) {\r\n const view = new Uint8Array(data);\r\n // Uint8Array.map only supports returning another Uint8Array?\r\n let str = \"\";\r\n view.forEach((num) => {\r\n const pad = num < 16 ? \"0\" : \"\";\r\n str += `0x${pad}${num.toString(16)} `;\r\n });\r\n // Trim of trailing space.\r\n return str.substr(0, str.length - 1);\r\n}\r\n// Also in signalr-protocol-msgpack/Utils.ts\r\n/** @private */\r\nexport function isArrayBuffer(val) {\r\n return val && typeof ArrayBuffer !== \"undefined\" &&\r\n (val instanceof ArrayBuffer ||\r\n // Sometimes we get an ArrayBuffer that doesn't satisfy instanceof\r\n (val.constructor && val.constructor.name === \"ArrayBuffer\"));\r\n}\r\n/** @private */\r\nexport async function sendMessage(logger, transportName, httpClient, url, content, options) {\r\n const headers = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n logger.log(LogLevel.Trace, `(${transportName} transport) sending data. ${getDataDetail(content, options.logMessageContent)}.`);\r\n const responseType = isArrayBuffer(content) ? \"arraybuffer\" : \"text\";\r\n const response = await httpClient.post(url, {\r\n content,\r\n headers: { ...headers, ...options.headers },\r\n responseType,\r\n timeout: options.timeout,\r\n withCredentials: options.withCredentials,\r\n });\r\n logger.log(LogLevel.Trace, `(${transportName} transport) request complete. Response status: ${response.statusCode}.`);\r\n}\r\n/** @private */\r\nexport function createLogger(logger) {\r\n if (logger === undefined) {\r\n return new ConsoleLogger(LogLevel.Information);\r\n }\r\n if (logger === null) {\r\n return NullLogger.instance;\r\n }\r\n if (logger.log !== undefined) {\r\n return logger;\r\n }\r\n return new ConsoleLogger(logger);\r\n}\r\n/** @private */\r\nexport class SubjectSubscription {\r\n constructor(subject, observer) {\r\n this._subject = subject;\r\n this._observer = observer;\r\n }\r\n dispose() {\r\n const index = this._subject.observers.indexOf(this._observer);\r\n if (index > -1) {\r\n this._subject.observers.splice(index, 1);\r\n }\r\n if (this._subject.observers.length === 0 && this._subject.cancelCallback) {\r\n this._subject.cancelCallback().catch((_) => { });\r\n }\r\n }\r\n}\r\n/** @private */\r\nexport class ConsoleLogger {\r\n constructor(minimumLogLevel) {\r\n this._minLevel = minimumLogLevel;\r\n this.out = console;\r\n }\r\n log(logLevel, message) {\r\n if (logLevel >= this._minLevel) {\r\n const msg = `[${new Date().toISOString()}] ${LogLevel[logLevel]}: ${message}`;\r\n switch (logLevel) {\r\n case LogLevel.Critical:\r\n case LogLevel.Error:\r\n this.out.error(msg);\r\n break;\r\n case LogLevel.Warning:\r\n this.out.warn(msg);\r\n break;\r\n case LogLevel.Information:\r\n this.out.info(msg);\r\n break;\r\n default:\r\n // console.debug only goes to attached debuggers in Node, so we use console.log for Trace and Debug\r\n this.out.log(msg);\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n/** @private */\r\nexport function getUserAgentHeader() {\r\n let userAgentHeaderName = \"X-SignalR-User-Agent\";\r\n if (Platform.isNode) {\r\n userAgentHeaderName = \"User-Agent\";\r\n }\r\n return [userAgentHeaderName, constructUserAgent(VERSION, getOsName(), getRuntime(), getRuntimeVersion())];\r\n}\r\n/** @private */\r\nexport function constructUserAgent(version, os, runtime, runtimeVersion) {\r\n // Microsoft SignalR/[Version] ([Detailed Version]; [Operating System]; [Runtime]; [Runtime Version])\r\n let userAgent = \"Microsoft SignalR/\";\r\n const majorAndMinor = version.split(\".\");\r\n userAgent += `${majorAndMinor[0]}.${majorAndMinor[1]}`;\r\n userAgent += ` (${version}; `;\r\n if (os && os !== \"\") {\r\n userAgent += `${os}; `;\r\n }\r\n else {\r\n userAgent += \"Unknown OS; \";\r\n }\r\n userAgent += `${runtime}`;\r\n if (runtimeVersion) {\r\n userAgent += `; ${runtimeVersion}`;\r\n }\r\n else {\r\n userAgent += \"; Unknown Runtime Version\";\r\n }\r\n userAgent += \")\";\r\n return userAgent;\r\n}\r\n// eslint-disable-next-line spaced-comment\r\n/*#__PURE__*/ function getOsName() {\r\n if (Platform.isNode) {\r\n switch (process.platform) {\r\n case \"win32\":\r\n return \"Windows NT\";\r\n case \"darwin\":\r\n return \"macOS\";\r\n case \"linux\":\r\n return \"Linux\";\r\n default:\r\n return process.platform;\r\n }\r\n }\r\n else {\r\n return \"\";\r\n }\r\n}\r\n// eslint-disable-next-line spaced-comment\r\n/*#__PURE__*/ function getRuntimeVersion() {\r\n if (Platform.isNode) {\r\n return process.versions.node;\r\n }\r\n return undefined;\r\n}\r\nfunction getRuntime() {\r\n if (Platform.isNode) {\r\n return \"NodeJS\";\r\n }\r\n else {\r\n return \"Browser\";\r\n }\r\n}\r\n/** @private */\r\nexport function getErrorString(e) {\r\n if (e.stack) {\r\n return e.stack;\r\n }\r\n else if (e.message) {\r\n return e.message;\r\n }\r\n return `${e}`;\r\n}\r\n/** @private */\r\nexport function getGlobalThis() {\r\n // globalThis is semi-new and not available in Node until v12\r\n if (typeof globalThis !== \"undefined\") {\r\n return globalThis;\r\n }\r\n if (typeof self !== \"undefined\") {\r\n return self;\r\n }\r\n if (typeof window !== \"undefined\") {\r\n return window;\r\n }\r\n if (typeof global !== \"undefined\") {\r\n return global;\r\n }\r\n throw new Error(\"could not find global\");\r\n}\r\n//# sourceMappingURL=Utils.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { Platform } from \"./Utils\";\r\n/** @private */\r\nexport function configureFetch(obj) {\r\n // Node added a fetch implementation to the global scope starting in v18.\r\n // We need to add a cookie jar in node to be able to share cookies with WebSocket\r\n if (typeof fetch === \"undefined\" || Platform.isNode) {\r\n // Cookies aren't automatically handled in Node so we need to add a CookieJar to preserve cookies across requests\r\n // eslint-disable-next-line @typescript-eslint/no-var-requires\r\n obj._jar = new (require(\"tough-cookie\")).CookieJar();\r\n if (typeof fetch === \"undefined\") {\r\n // eslint-disable-next-line @typescript-eslint/no-var-requires\r\n obj._fetchType = require(\"node-fetch\");\r\n }\r\n else {\r\n // Use fetch from Node if available\r\n obj._fetchType = fetch;\r\n }\r\n // node-fetch doesn't have a nice API for getting and setting cookies\r\n // fetch-cookie will wrap a fetch implementation with a default CookieJar or a provided one\r\n // eslint-disable-next-line @typescript-eslint/no-var-requires\r\n obj._fetchType = require(\"fetch-cookie\")(obj._fetchType, obj._jar);\r\n return true;\r\n }\r\n return false;\r\n}\r\n/** @private */\r\nexport function configureAbortController(obj) {\r\n if (typeof AbortController === \"undefined\") {\r\n // Node needs EventListener methods on AbortController which our custom polyfill doesn't provide\r\n obj._abortControllerType = require(\"abort-controller\");\r\n return true;\r\n }\r\n return false;\r\n}\r\n/** @private */\r\nexport function getWS() {\r\n return require(\"ws\");\r\n}\r\n/** @private */\r\nexport function getEventSource() {\r\n return require(\"eventsource\");\r\n}\r\n//# sourceMappingURL=DynamicImports.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AbortError, HttpError, TimeoutError } from \"./Errors\";\r\nimport { HttpClient, HttpResponse } from \"./HttpClient\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { Platform, getGlobalThis, isArrayBuffer } from \"./Utils\";\r\nimport { configureAbortController, configureFetch } from \"./DynamicImports\";\r\nexport class FetchHttpClient extends HttpClient {\r\n constructor(logger) {\r\n super();\r\n this._logger = logger;\r\n // This is how you do \"reference\" arguments\r\n const fetchObj = { _fetchType: undefined, _jar: undefined };\r\n if (configureFetch(fetchObj)) {\r\n this._fetchType = fetchObj._fetchType;\r\n this._jar = fetchObj._jar;\r\n }\r\n else {\r\n this._fetchType = fetch.bind(getGlobalThis());\r\n }\r\n this._abortControllerType = AbortController;\r\n const abortObj = { _abortControllerType: this._abortControllerType };\r\n if (configureAbortController(abortObj)) {\r\n this._abortControllerType = abortObj._abortControllerType;\r\n }\r\n }\r\n /** @inheritDoc */\r\n async send(request) {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n throw new AbortError();\r\n }\r\n if (!request.method) {\r\n throw new Error(\"No method defined.\");\r\n }\r\n if (!request.url) {\r\n throw new Error(\"No url defined.\");\r\n }\r\n const abortController = new this._abortControllerType();\r\n let error;\r\n // Hook our abortSignal into the abort controller\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = () => {\r\n abortController.abort();\r\n error = new AbortError();\r\n };\r\n }\r\n // If a timeout has been passed in, setup a timeout to call abort\r\n // Type needs to be any to fit window.setTimeout and NodeJS.setTimeout\r\n let timeoutId = null;\r\n if (request.timeout) {\r\n const msTimeout = request.timeout;\r\n timeoutId = setTimeout(() => {\r\n abortController.abort();\r\n this._logger.log(LogLevel.Warning, `Timeout from HTTP request.`);\r\n error = new TimeoutError();\r\n }, msTimeout);\r\n }\r\n if (request.content === \"\") {\r\n request.content = undefined;\r\n }\r\n if (request.content) {\r\n // Explicitly setting the Content-Type header for React Native on Android platform.\r\n request.headers = request.headers || {};\r\n if (isArrayBuffer(request.content)) {\r\n request.headers[\"Content-Type\"] = \"application/octet-stream\";\r\n }\r\n else {\r\n request.headers[\"Content-Type\"] = \"text/plain;charset=UTF-8\";\r\n }\r\n }\r\n let response;\r\n try {\r\n response = await this._fetchType(request.url, {\r\n body: request.content,\r\n cache: \"no-cache\",\r\n credentials: request.withCredentials === true ? \"include\" : \"same-origin\",\r\n headers: {\r\n \"X-Requested-With\": \"XMLHttpRequest\",\r\n ...request.headers,\r\n },\r\n method: request.method,\r\n mode: \"cors\",\r\n redirect: \"follow\",\r\n signal: abortController.signal,\r\n });\r\n }\r\n catch (e) {\r\n if (error) {\r\n throw error;\r\n }\r\n this._logger.log(LogLevel.Warning, `Error from HTTP request. ${e}.`);\r\n throw e;\r\n }\r\n finally {\r\n if (timeoutId) {\r\n clearTimeout(timeoutId);\r\n }\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = null;\r\n }\r\n }\r\n if (!response.ok) {\r\n const errorMessage = await deserializeContent(response, \"text\");\r\n throw new HttpError(errorMessage || response.statusText, response.status);\r\n }\r\n const content = deserializeContent(response, request.responseType);\r\n const payload = await content;\r\n return new HttpResponse(response.status, response.statusText, payload);\r\n }\r\n getCookieString(url) {\r\n let cookies = \"\";\r\n if (Platform.isNode && this._jar) {\r\n // @ts-ignore: unused variable\r\n this._jar.getCookies(url, (e, c) => cookies = c.join(\"; \"));\r\n }\r\n return cookies;\r\n }\r\n}\r\nfunction deserializeContent(response, responseType) {\r\n let content;\r\n switch (responseType) {\r\n case \"arraybuffer\":\r\n content = response.arrayBuffer();\r\n break;\r\n case \"text\":\r\n content = response.text();\r\n break;\r\n case \"blob\":\r\n case \"document\":\r\n case \"json\":\r\n throw new Error(`${responseType} is not supported.`);\r\n default:\r\n content = response.text();\r\n break;\r\n }\r\n return content;\r\n}\r\n//# sourceMappingURL=FetchHttpClient.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AbortError, HttpError, TimeoutError } from \"./Errors\";\r\nimport { HttpClient, HttpResponse } from \"./HttpClient\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\nexport class XhrHttpClient extends HttpClient {\r\n constructor(logger) {\r\n super();\r\n this._logger = logger;\r\n }\r\n /** @inheritDoc */\r\n send(request) {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n return Promise.reject(new AbortError());\r\n }\r\n if (!request.method) {\r\n return Promise.reject(new Error(\"No method defined.\"));\r\n }\r\n if (!request.url) {\r\n return Promise.reject(new Error(\"No url defined.\"));\r\n }\r\n return new Promise((resolve, reject) => {\r\n const xhr = new XMLHttpRequest();\r\n xhr.open(request.method, request.url, true);\r\n xhr.withCredentials = request.withCredentials === undefined ? true : request.withCredentials;\r\n xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\r\n if (request.content === \"\") {\r\n request.content = undefined;\r\n }\r\n if (request.content) {\r\n // Explicitly setting the Content-Type header for React Native on Android platform.\r\n if (isArrayBuffer(request.content)) {\r\n xhr.setRequestHeader(\"Content-Type\", \"application/octet-stream\");\r\n }\r\n else {\r\n xhr.setRequestHeader(\"Content-Type\", \"text/plain;charset=UTF-8\");\r\n }\r\n }\r\n const headers = request.headers;\r\n if (headers) {\r\n Object.keys(headers)\r\n .forEach((header) => {\r\n xhr.setRequestHeader(header, headers[header]);\r\n });\r\n }\r\n if (request.responseType) {\r\n xhr.responseType = request.responseType;\r\n }\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = () => {\r\n xhr.abort();\r\n reject(new AbortError());\r\n };\r\n }\r\n if (request.timeout) {\r\n xhr.timeout = request.timeout;\r\n }\r\n xhr.onload = () => {\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = null;\r\n }\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n resolve(new HttpResponse(xhr.status, xhr.statusText, xhr.response || xhr.responseText));\r\n }\r\n else {\r\n reject(new HttpError(xhr.response || xhr.responseText || xhr.statusText, xhr.status));\r\n }\r\n };\r\n xhr.onerror = () => {\r\n this._logger.log(LogLevel.Warning, `Error from HTTP request. ${xhr.status}: ${xhr.statusText}.`);\r\n reject(new HttpError(xhr.statusText, xhr.status));\r\n };\r\n xhr.ontimeout = () => {\r\n this._logger.log(LogLevel.Warning, `Timeout from HTTP request.`);\r\n reject(new TimeoutError());\r\n };\r\n xhr.send(request.content);\r\n });\r\n }\r\n}\r\n//# sourceMappingURL=XhrHttpClient.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AbortError } from \"./Errors\";\r\nimport { FetchHttpClient } from \"./FetchHttpClient\";\r\nimport { HttpClient } from \"./HttpClient\";\r\nimport { Platform } from \"./Utils\";\r\nimport { XhrHttpClient } from \"./XhrHttpClient\";\r\n/** Default implementation of {@link @microsoft/signalr.HttpClient}. */\r\nexport class DefaultHttpClient extends HttpClient {\r\n /** Creates a new instance of the {@link @microsoft/signalr.DefaultHttpClient}, using the provided {@link @microsoft/signalr.ILogger} to log messages. */\r\n constructor(logger) {\r\n super();\r\n if (typeof fetch !== \"undefined\" || Platform.isNode) {\r\n this._httpClient = new FetchHttpClient(logger);\r\n }\r\n else if (typeof XMLHttpRequest !== \"undefined\") {\r\n this._httpClient = new XhrHttpClient(logger);\r\n }\r\n else {\r\n throw new Error(\"No usable HttpClient found.\");\r\n }\r\n }\r\n /** @inheritDoc */\r\n send(request) {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n return Promise.reject(new AbortError());\r\n }\r\n if (!request.method) {\r\n return Promise.reject(new Error(\"No method defined.\"));\r\n }\r\n if (!request.url) {\r\n return Promise.reject(new Error(\"No url defined.\"));\r\n }\r\n return this._httpClient.send(request);\r\n }\r\n getCookieString(url) {\r\n return this._httpClient.getCookieString(url);\r\n }\r\n}\r\n//# sourceMappingURL=DefaultHttpClient.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// This will be treated as a bit flag in the future, so we keep it using power-of-two values.\r\n/** Specifies a specific HTTP transport type. */\r\nexport var HttpTransportType;\r\n(function (HttpTransportType) {\r\n /** Specifies no transport preference. */\r\n HttpTransportType[HttpTransportType[\"None\"] = 0] = \"None\";\r\n /** Specifies the WebSockets transport. */\r\n HttpTransportType[HttpTransportType[\"WebSockets\"] = 1] = \"WebSockets\";\r\n /** Specifies the Server-Sent Events transport. */\r\n HttpTransportType[HttpTransportType[\"ServerSentEvents\"] = 2] = \"ServerSentEvents\";\r\n /** Specifies the Long Polling transport. */\r\n HttpTransportType[HttpTransportType[\"LongPolling\"] = 4] = \"LongPolling\";\r\n})(HttpTransportType || (HttpTransportType = {}));\r\n/** Specifies the transfer format for a connection. */\r\nexport var TransferFormat;\r\n(function (TransferFormat) {\r\n /** Specifies that only text data will be transmitted over the connection. */\r\n TransferFormat[TransferFormat[\"Text\"] = 1] = \"Text\";\r\n /** Specifies that binary data will be transmitted over the connection. */\r\n TransferFormat[TransferFormat[\"Binary\"] = 2] = \"Binary\";\r\n})(TransferFormat || (TransferFormat = {}));\r\n//# sourceMappingURL=ITransport.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// Rough polyfill of https://developer.mozilla.org/en-US/docs/Web/API/AbortController\r\n// We don't actually ever use the API being polyfilled, we always use the polyfill because\r\n// it's a very new API right now.\r\n// Not exported from index.\r\n/** @private */\r\nexport class AbortController {\r\n constructor() {\r\n this._isAborted = false;\r\n this.onabort = null;\r\n }\r\n abort() {\r\n if (!this._isAborted) {\r\n this._isAborted = true;\r\n if (this.onabort) {\r\n this.onabort();\r\n }\r\n }\r\n }\r\n get signal() {\r\n return this;\r\n }\r\n get aborted() {\r\n return this._isAborted;\r\n }\r\n}\r\n//# sourceMappingURL=AbortController.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AbortController } from \"./AbortController\";\r\nimport { HttpError, TimeoutError } from \"./Errors\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, sendMessage } from \"./Utils\";\r\n// Not exported from 'index', this type is internal.\r\n/** @private */\r\nexport class LongPollingTransport {\r\n // This is an internal type, not exported from 'index' so this is really just internal.\r\n get pollAborted() {\r\n return this._pollAbort.aborted;\r\n }\r\n constructor(httpClient, logger, options) {\r\n this._httpClient = httpClient;\r\n this._logger = logger;\r\n this._pollAbort = new AbortController();\r\n this._options = options;\r\n this._running = false;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n async connect(url, transferFormat) {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._url = url;\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Connecting.\");\r\n // Allow binary format on Node and Browsers that support binary content (indicated by the presence of responseType property)\r\n if (transferFormat === TransferFormat.Binary &&\r\n (typeof XMLHttpRequest !== \"undefined\" && typeof new XMLHttpRequest().responseType !== \"string\")) {\r\n throw new Error(\"Binary protocols over XmlHttpRequest not implementing advanced features are not supported.\");\r\n }\r\n const [name, value] = getUserAgentHeader();\r\n const headers = { [name]: value, ...this._options.headers };\r\n const pollOptions = {\r\n abortSignal: this._pollAbort.signal,\r\n headers,\r\n timeout: 100000,\r\n withCredentials: this._options.withCredentials,\r\n };\r\n if (transferFormat === TransferFormat.Binary) {\r\n pollOptions.responseType = \"arraybuffer\";\r\n }\r\n // Make initial long polling request\r\n // Server uses first long polling request to finish initializing connection and it returns without data\r\n const pollUrl = `${url}&_=${Date.now()}`;\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) polling: ${pollUrl}.`);\r\n const response = await this._httpClient.get(pollUrl, pollOptions);\r\n if (response.statusCode !== 200) {\r\n this._logger.log(LogLevel.Error, `(LongPolling transport) Unexpected response code: ${response.statusCode}.`);\r\n // Mark running as false so that the poll immediately ends and runs the close logic\r\n this._closeError = new HttpError(response.statusText || \"\", response.statusCode);\r\n this._running = false;\r\n }\r\n else {\r\n this._running = true;\r\n }\r\n this._receiving = this._poll(this._url, pollOptions);\r\n }\r\n async _poll(url, pollOptions) {\r\n try {\r\n while (this._running) {\r\n try {\r\n const pollUrl = `${url}&_=${Date.now()}`;\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) polling: ${pollUrl}.`);\r\n const response = await this._httpClient.get(pollUrl, pollOptions);\r\n if (response.statusCode === 204) {\r\n this._logger.log(LogLevel.Information, \"(LongPolling transport) Poll terminated by server.\");\r\n this._running = false;\r\n }\r\n else if (response.statusCode !== 200) {\r\n this._logger.log(LogLevel.Error, `(LongPolling transport) Unexpected response code: ${response.statusCode}.`);\r\n // Unexpected status code\r\n this._closeError = new HttpError(response.statusText || \"\", response.statusCode);\r\n this._running = false;\r\n }\r\n else {\r\n // Process the response\r\n if (response.content) {\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) data received. ${getDataDetail(response.content, this._options.logMessageContent)}.`);\r\n if (this.onreceive) {\r\n this.onreceive(response.content);\r\n }\r\n }\r\n else {\r\n // This is another way timeout manifest.\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Poll timed out, reissuing.\");\r\n }\r\n }\r\n }\r\n catch (e) {\r\n if (!this._running) {\r\n // Log but disregard errors that occur after stopping\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) Poll errored after shutdown: ${e.message}`);\r\n }\r\n else {\r\n if (e instanceof TimeoutError) {\r\n // Ignore timeouts and reissue the poll.\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Poll timed out, reissuing.\");\r\n }\r\n else {\r\n // Close the connection with the error as the result.\r\n this._closeError = e;\r\n this._running = false;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n finally {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Polling complete.\");\r\n // We will reach here with pollAborted==false when the server returned a response causing the transport to stop.\r\n // If pollAborted==true then client initiated the stop and the stop method will raise the close event after DELETE is sent.\r\n if (!this.pollAborted) {\r\n this._raiseOnClose();\r\n }\r\n }\r\n }\r\n async send(data) {\r\n if (!this._running) {\r\n return Promise.reject(new Error(\"Cannot send until the transport is connected\"));\r\n }\r\n return sendMessage(this._logger, \"LongPolling\", this._httpClient, this._url, data, this._options);\r\n }\r\n async stop() {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Stopping polling.\");\r\n // Tell receiving loop to stop, abort any current request, and then wait for it to finish\r\n this._running = false;\r\n this._pollAbort.abort();\r\n try {\r\n await this._receiving;\r\n // Send DELETE to clean up long polling on the server\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) sending DELETE request to ${this._url}.`);\r\n const headers = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n const deleteOptions = {\r\n headers: { ...headers, ...this._options.headers },\r\n timeout: this._options.timeout,\r\n withCredentials: this._options.withCredentials,\r\n };\r\n let error;\r\n try {\r\n await this._httpClient.delete(this._url, deleteOptions);\r\n }\r\n catch (err) {\r\n error = err;\r\n }\r\n if (error) {\r\n if (error instanceof HttpError) {\r\n if (error.statusCode === 404) {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) A 404 response was returned from sending a DELETE request.\");\r\n }\r\n else {\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) Error sending a DELETE request: ${error}`);\r\n }\r\n }\r\n }\r\n else {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) DELETE request accepted.\");\r\n }\r\n }\r\n finally {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Stop finished.\");\r\n // Raise close event here instead of in polling\r\n // It needs to happen after the DELETE request is sent\r\n this._raiseOnClose();\r\n }\r\n }\r\n _raiseOnClose() {\r\n if (this.onclose) {\r\n let logMessage = \"(LongPolling transport) Firing onclose event.\";\r\n if (this._closeError) {\r\n logMessage += \" Error: \" + this._closeError;\r\n }\r\n this._logger.log(LogLevel.Trace, logMessage);\r\n this.onclose(this._closeError);\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=LongPollingTransport.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, Platform, sendMessage } from \"./Utils\";\r\n/** @private */\r\nexport class ServerSentEventsTransport {\r\n constructor(httpClient, accessToken, logger, options) {\r\n this._httpClient = httpClient;\r\n this._accessToken = accessToken;\r\n this._logger = logger;\r\n this._options = options;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n async connect(url, transferFormat) {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._logger.log(LogLevel.Trace, \"(SSE transport) Connecting.\");\r\n // set url before accessTokenFactory because this._url is only for send and we set the auth header instead of the query string for send\r\n this._url = url;\r\n if (this._accessToken) {\r\n url += (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + `access_token=${encodeURIComponent(this._accessToken)}`;\r\n }\r\n return new Promise((resolve, reject) => {\r\n let opened = false;\r\n if (transferFormat !== TransferFormat.Text) {\r\n reject(new Error(\"The Server-Sent Events transport only supports the 'Text' transfer format\"));\r\n return;\r\n }\r\n let eventSource;\r\n if (Platform.isBrowser || Platform.isWebWorker) {\r\n eventSource = new this._options.EventSource(url, { withCredentials: this._options.withCredentials });\r\n }\r\n else {\r\n // Non-browser passes cookies via the dictionary\r\n const cookies = this._httpClient.getCookieString(url);\r\n const headers = {};\r\n headers.Cookie = cookies;\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n eventSource = new this._options.EventSource(url, { withCredentials: this._options.withCredentials, headers: { ...headers, ...this._options.headers } });\r\n }\r\n try {\r\n eventSource.onmessage = (e) => {\r\n if (this.onreceive) {\r\n try {\r\n this._logger.log(LogLevel.Trace, `(SSE transport) data received. ${getDataDetail(e.data, this._options.logMessageContent)}.`);\r\n this.onreceive(e.data);\r\n }\r\n catch (error) {\r\n this._close(error);\r\n return;\r\n }\r\n }\r\n };\r\n // @ts-ignore: not using event on purpose\r\n eventSource.onerror = (e) => {\r\n // EventSource doesn't give any useful information about server side closes.\r\n if (opened) {\r\n this._close();\r\n }\r\n else {\r\n reject(new Error(\"EventSource failed to connect. The connection could not be found on the server,\"\r\n + \" either the connection ID is not present on the server, or a proxy is refusing/buffering the connection.\"\r\n + \" If you have multiple servers check that sticky sessions are enabled.\"));\r\n }\r\n };\r\n eventSource.onopen = () => {\r\n this._logger.log(LogLevel.Information, `SSE connected to ${this._url}`);\r\n this._eventSource = eventSource;\r\n opened = true;\r\n resolve();\r\n };\r\n }\r\n catch (e) {\r\n reject(e);\r\n return;\r\n }\r\n });\r\n }\r\n async send(data) {\r\n if (!this._eventSource) {\r\n return Promise.reject(new Error(\"Cannot send until the transport is connected\"));\r\n }\r\n return sendMessage(this._logger, \"SSE\", this._httpClient, this._url, data, this._options);\r\n }\r\n stop() {\r\n this._close();\r\n return Promise.resolve();\r\n }\r\n _close(e) {\r\n if (this._eventSource) {\r\n this._eventSource.close();\r\n this._eventSource = undefined;\r\n if (this.onclose) {\r\n this.onclose(e);\r\n }\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=ServerSentEventsTransport.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { HeaderNames } from \"./HeaderNames\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, Platform } from \"./Utils\";\r\n/** @private */\r\nexport class WebSocketTransport {\r\n constructor(httpClient, accessTokenFactory, logger, logMessageContent, webSocketConstructor, headers) {\r\n this._logger = logger;\r\n this._accessTokenFactory = accessTokenFactory;\r\n this._logMessageContent = logMessageContent;\r\n this._webSocketConstructor = webSocketConstructor;\r\n this._httpClient = httpClient;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n this._headers = headers;\r\n }\r\n async connect(url, transferFormat) {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._logger.log(LogLevel.Trace, \"(WebSockets transport) Connecting.\");\r\n let token;\r\n if (this._accessTokenFactory) {\r\n token = await this._accessTokenFactory();\r\n }\r\n return new Promise((resolve, reject) => {\r\n url = url.replace(/^http/, \"ws\");\r\n let webSocket;\r\n const cookies = this._httpClient.getCookieString(url);\r\n let opened = false;\r\n if (Platform.isNode || Platform.isReactNative) {\r\n const headers = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n if (token) {\r\n headers[HeaderNames.Authorization] = `Bearer ${token}`;\r\n }\r\n if (cookies) {\r\n headers[HeaderNames.Cookie] = cookies;\r\n }\r\n // Only pass headers when in non-browser environments\r\n webSocket = new this._webSocketConstructor(url, undefined, {\r\n headers: { ...headers, ...this._headers },\r\n });\r\n }\r\n else {\r\n if (token) {\r\n url += (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + `access_token=${encodeURIComponent(token)}`;\r\n }\r\n }\r\n if (!webSocket) {\r\n // Chrome is not happy with passing 'undefined' as protocol\r\n webSocket = new this._webSocketConstructor(url);\r\n }\r\n if (transferFormat === TransferFormat.Binary) {\r\n webSocket.binaryType = \"arraybuffer\";\r\n }\r\n webSocket.onopen = (_event) => {\r\n this._logger.log(LogLevel.Information, `WebSocket connected to ${url}.`);\r\n this._webSocket = webSocket;\r\n opened = true;\r\n resolve();\r\n };\r\n webSocket.onerror = (event) => {\r\n let error = null;\r\n // ErrorEvent is a browser only type we need to check if the type exists before using it\r\n if (typeof ErrorEvent !== \"undefined\" && event instanceof ErrorEvent) {\r\n error = event.error;\r\n }\r\n else {\r\n error = \"There was an error with the transport\";\r\n }\r\n this._logger.log(LogLevel.Information, `(WebSockets transport) ${error}.`);\r\n };\r\n webSocket.onmessage = (message) => {\r\n this._logger.log(LogLevel.Trace, `(WebSockets transport) data received. ${getDataDetail(message.data, this._logMessageContent)}.`);\r\n if (this.onreceive) {\r\n try {\r\n this.onreceive(message.data);\r\n }\r\n catch (error) {\r\n this._close(error);\r\n return;\r\n }\r\n }\r\n };\r\n webSocket.onclose = (event) => {\r\n // Don't call close handler if connection was never established\r\n // We'll reject the connect call instead\r\n if (opened) {\r\n this._close(event);\r\n }\r\n else {\r\n let error = null;\r\n // ErrorEvent is a browser only type we need to check if the type exists before using it\r\n if (typeof ErrorEvent !== \"undefined\" && event instanceof ErrorEvent) {\r\n error = event.error;\r\n }\r\n else {\r\n error = \"WebSocket failed to connect. The connection could not be found on the server,\"\r\n + \" either the endpoint may not be a SignalR endpoint,\"\r\n + \" the connection ID is not present on the server, or there is a proxy blocking WebSockets.\"\r\n + \" If you have multiple servers check that sticky sessions are enabled.\";\r\n }\r\n reject(new Error(error));\r\n }\r\n };\r\n });\r\n }\r\n send(data) {\r\n if (this._webSocket && this._webSocket.readyState === this._webSocketConstructor.OPEN) {\r\n this._logger.log(LogLevel.Trace, `(WebSockets transport) sending data. ${getDataDetail(data, this._logMessageContent)}.`);\r\n this._webSocket.send(data);\r\n return Promise.resolve();\r\n }\r\n return Promise.reject(\"WebSocket is not in the OPEN state\");\r\n }\r\n stop() {\r\n if (this._webSocket) {\r\n // Manually invoke onclose callback inline so we know the HttpConnection was closed properly before returning\r\n // This also solves an issue where websocket.onclose could take 18+ seconds to trigger during network disconnects\r\n this._close(undefined);\r\n }\r\n return Promise.resolve();\r\n }\r\n _close(event) {\r\n // webSocket will be null if the transport did not start successfully\r\n if (this._webSocket) {\r\n // Clear websocket handlers because we are considering the socket closed now\r\n this._webSocket.onclose = () => { };\r\n this._webSocket.onmessage = () => { };\r\n this._webSocket.onerror = () => { };\r\n this._webSocket.close();\r\n this._webSocket = undefined;\r\n }\r\n this._logger.log(LogLevel.Trace, \"(WebSockets transport) socket closed.\");\r\n if (this.onclose) {\r\n if (this._isCloseEvent(event) && (event.wasClean === false || event.code !== 1000)) {\r\n this.onclose(new Error(`WebSocket closed with status code: ${event.code} (${event.reason || \"no reason given\"}).`));\r\n }\r\n else if (event instanceof Error) {\r\n this.onclose(event);\r\n }\r\n else {\r\n this.onclose();\r\n }\r\n }\r\n }\r\n _isCloseEvent(event) {\r\n return event && typeof event.wasClean === \"boolean\" && typeof event.code === \"number\";\r\n }\r\n}\r\n//# sourceMappingURL=WebSocketTransport.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AccessTokenHttpClient } from \"./AccessTokenHttpClient\";\r\nimport { DefaultHttpClient } from \"./DefaultHttpClient\";\r\nimport { getEventSource, getWS } from \"./DynamicImports\";\r\nimport { AggregateErrors, DisabledTransportError, FailedToNegotiateWithServerError, FailedToStartTransportError, HttpError, UnsupportedTransportError, AbortError } from \"./Errors\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { HttpTransportType, TransferFormat } from \"./ITransport\";\r\nimport { LongPollingTransport } from \"./LongPollingTransport\";\r\nimport { ServerSentEventsTransport } from \"./ServerSentEventsTransport\";\r\nimport { Arg, createLogger, getUserAgentHeader, Platform } from \"./Utils\";\r\nimport { WebSocketTransport } from \"./WebSocketTransport\";\r\nconst MAX_REDIRECTS = 100;\r\n/** @private */\r\nexport class HttpConnection {\r\n constructor(url, options = {}) {\r\n this._stopPromiseResolver = () => { };\r\n this.features = {};\r\n this._negotiateVersion = 1;\r\n Arg.isRequired(url, \"url\");\r\n this._logger = createLogger(options.logger);\r\n this.baseUrl = this._resolveUrl(url);\r\n options = options || {};\r\n options.logMessageContent = options.logMessageContent === undefined ? false : options.logMessageContent;\r\n if (typeof options.withCredentials === \"boolean\" || options.withCredentials === undefined) {\r\n options.withCredentials = options.withCredentials === undefined ? true : options.withCredentials;\r\n }\r\n else {\r\n throw new Error(\"withCredentials option was not a 'boolean' or 'undefined' value\");\r\n }\r\n options.timeout = options.timeout === undefined ? 100 * 1000 : options.timeout;\r\n let webSocketModule = null;\r\n let eventSourceModule = null;\r\n if (Platform.isNode && typeof require !== \"undefined\") {\r\n webSocketModule = getWS();\r\n eventSourceModule = getEventSource();\r\n }\r\n if (!Platform.isNode && typeof WebSocket !== \"undefined\" && !options.WebSocket) {\r\n options.WebSocket = WebSocket;\r\n }\r\n else if (Platform.isNode && !options.WebSocket) {\r\n if (webSocketModule) {\r\n options.WebSocket = webSocketModule;\r\n }\r\n }\r\n if (!Platform.isNode && typeof EventSource !== \"undefined\" && !options.EventSource) {\r\n options.EventSource = EventSource;\r\n }\r\n else if (Platform.isNode && !options.EventSource) {\r\n if (typeof eventSourceModule !== \"undefined\") {\r\n options.EventSource = eventSourceModule;\r\n }\r\n }\r\n this._httpClient = new AccessTokenHttpClient(options.httpClient || new DefaultHttpClient(this._logger), options.accessTokenFactory);\r\n this._connectionState = \"Disconnected\" /* ConnectionState.Disconnected */;\r\n this._connectionStarted = false;\r\n this._options = options;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n async start(transferFormat) {\r\n transferFormat = transferFormat || TransferFormat.Binary;\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._logger.log(LogLevel.Debug, `Starting connection with transfer format '${TransferFormat[transferFormat]}'.`);\r\n if (this._connectionState !== \"Disconnected\" /* ConnectionState.Disconnected */) {\r\n return Promise.reject(new Error(\"Cannot start an HttpConnection that is not in the 'Disconnected' state.\"));\r\n }\r\n this._connectionState = \"Connecting\" /* ConnectionState.Connecting */;\r\n this._startInternalPromise = this._startInternal(transferFormat);\r\n await this._startInternalPromise;\r\n // The TypeScript compiler thinks that connectionState must be Connecting here. The TypeScript compiler is wrong.\r\n if (this._connectionState === \"Disconnecting\" /* ConnectionState.Disconnecting */) {\r\n // stop() was called and transitioned the client into the Disconnecting state.\r\n const message = \"Failed to start the HttpConnection before stop() was called.\";\r\n this._logger.log(LogLevel.Error, message);\r\n // We cannot await stopPromise inside startInternal since stopInternal awaits the startInternalPromise.\r\n await this._stopPromise;\r\n return Promise.reject(new AbortError(message));\r\n }\r\n else if (this._connectionState !== \"Connected\" /* ConnectionState.Connected */) {\r\n // stop() was called and transitioned the client into the Disconnecting state.\r\n const message = \"HttpConnection.startInternal completed gracefully but didn't enter the connection into the connected state!\";\r\n this._logger.log(LogLevel.Error, message);\r\n return Promise.reject(new AbortError(message));\r\n }\r\n this._connectionStarted = true;\r\n }\r\n send(data) {\r\n if (this._connectionState !== \"Connected\" /* ConnectionState.Connected */) {\r\n return Promise.reject(new Error(\"Cannot send data if the connection is not in the 'Connected' State.\"));\r\n }\r\n if (!this._sendQueue) {\r\n this._sendQueue = new TransportSendQueue(this.transport);\r\n }\r\n // Transport will not be null if state is connected\r\n return this._sendQueue.send(data);\r\n }\r\n async stop(error) {\r\n if (this._connectionState === \"Disconnected\" /* ConnectionState.Disconnected */) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnected state.`);\r\n return Promise.resolve();\r\n }\r\n if (this._connectionState === \"Disconnecting\" /* ConnectionState.Disconnecting */) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnecting state.`);\r\n return this._stopPromise;\r\n }\r\n this._connectionState = \"Disconnecting\" /* ConnectionState.Disconnecting */;\r\n this._stopPromise = new Promise((resolve) => {\r\n // Don't complete stop() until stopConnection() completes.\r\n this._stopPromiseResolver = resolve;\r\n });\r\n // stopInternal should never throw so just observe it.\r\n await this._stopInternal(error);\r\n await this._stopPromise;\r\n }\r\n async _stopInternal(error) {\r\n // Set error as soon as possible otherwise there is a race between\r\n // the transport closing and providing an error and the error from a close message\r\n // We would prefer the close message error.\r\n this._stopError = error;\r\n try {\r\n await this._startInternalPromise;\r\n }\r\n catch (e) {\r\n // This exception is returned to the user as a rejected Promise from the start method.\r\n }\r\n // The transport's onclose will trigger stopConnection which will run our onclose event.\r\n // The transport should always be set if currently connected. If it wasn't set, it's likely because\r\n // stop was called during start() and start() failed.\r\n if (this.transport) {\r\n try {\r\n await this.transport.stop();\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `HttpConnection.transport.stop() threw error '${e}'.`);\r\n this._stopConnection();\r\n }\r\n this.transport = undefined;\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, \"HttpConnection.transport is undefined in HttpConnection.stop() because start() failed.\");\r\n }\r\n }\r\n async _startInternal(transferFormat) {\r\n // Store the original base url and the access token factory since they may change\r\n // as part of negotiating\r\n let url = this.baseUrl;\r\n this._accessTokenFactory = this._options.accessTokenFactory;\r\n this._httpClient._accessTokenFactory = this._accessTokenFactory;\r\n try {\r\n if (this._options.skipNegotiation) {\r\n if (this._options.transport === HttpTransportType.WebSockets) {\r\n // No need to add a connection ID in this case\r\n this.transport = this._constructTransport(HttpTransportType.WebSockets);\r\n // We should just call connect directly in this case.\r\n // No fallback or negotiate in this case.\r\n await this._startTransport(url, transferFormat);\r\n }\r\n else {\r\n throw new Error(\"Negotiation can only be skipped when using the WebSocket transport directly.\");\r\n }\r\n }\r\n else {\r\n let negotiateResponse = null;\r\n let redirects = 0;\r\n do {\r\n negotiateResponse = await this._getNegotiationResponse(url);\r\n // the user tries to stop the connection when it is being started\r\n if (this._connectionState === \"Disconnecting\" /* ConnectionState.Disconnecting */ || this._connectionState === \"Disconnected\" /* ConnectionState.Disconnected */) {\r\n throw new AbortError(\"The connection was stopped during negotiation.\");\r\n }\r\n if (negotiateResponse.error) {\r\n throw new Error(negotiateResponse.error);\r\n }\r\n if (negotiateResponse.ProtocolVersion) {\r\n throw new Error(\"Detected a connection attempt to an ASP.NET SignalR Server. This client only supports connecting to an ASP.NET Core SignalR Server. See https://aka.ms/signalr-core-differences for details.\");\r\n }\r\n if (negotiateResponse.url) {\r\n url = negotiateResponse.url;\r\n }\r\n if (negotiateResponse.accessToken) {\r\n // Replace the current access token factory with one that uses\r\n // the returned access token\r\n const accessToken = negotiateResponse.accessToken;\r\n this._accessTokenFactory = () => accessToken;\r\n // set the factory to undefined so the AccessTokenHttpClient won't retry with the same token, since we know it won't change until a connection restart\r\n this._httpClient._accessToken = accessToken;\r\n this._httpClient._accessTokenFactory = undefined;\r\n }\r\n redirects++;\r\n } while (negotiateResponse.url && redirects < MAX_REDIRECTS);\r\n if (redirects === MAX_REDIRECTS && negotiateResponse.url) {\r\n throw new Error(\"Negotiate redirection limit exceeded.\");\r\n }\r\n await this._createTransport(url, this._options.transport, negotiateResponse, transferFormat);\r\n }\r\n if (this.transport instanceof LongPollingTransport) {\r\n this.features.inherentKeepAlive = true;\r\n }\r\n if (this._connectionState === \"Connecting\" /* ConnectionState.Connecting */) {\r\n // Ensure the connection transitions to the connected state prior to completing this.startInternalPromise.\r\n // start() will handle the case when stop was called and startInternal exits still in the disconnecting state.\r\n this._logger.log(LogLevel.Debug, \"The HttpConnection connected successfully.\");\r\n this._connectionState = \"Connected\" /* ConnectionState.Connected */;\r\n }\r\n // stop() is waiting on us via this.startInternalPromise so keep this.transport around so it can clean up.\r\n // This is the only case startInternal can exit in neither the connected nor disconnected state because stopConnection()\r\n // will transition to the disconnected state. start() will wait for the transition using the stopPromise.\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, \"Failed to start the connection: \" + e);\r\n this._connectionState = \"Disconnected\" /* ConnectionState.Disconnected */;\r\n this.transport = undefined;\r\n // if start fails, any active calls to stop assume that start will complete the stop promise\r\n this._stopPromiseResolver();\r\n return Promise.reject(e);\r\n }\r\n }\r\n async _getNegotiationResponse(url) {\r\n const headers = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n const negotiateUrl = this._resolveNegotiateUrl(url);\r\n this._logger.log(LogLevel.Debug, `Sending negotiation request: ${negotiateUrl}.`);\r\n try {\r\n const response = await this._httpClient.post(negotiateUrl, {\r\n content: \"\",\r\n headers: { ...headers, ...this._options.headers },\r\n timeout: this._options.timeout,\r\n withCredentials: this._options.withCredentials,\r\n });\r\n if (response.statusCode !== 200) {\r\n return Promise.reject(new Error(`Unexpected status code returned from negotiate '${response.statusCode}'`));\r\n }\r\n const negotiateResponse = JSON.parse(response.content);\r\n if (!negotiateResponse.negotiateVersion || negotiateResponse.negotiateVersion < 1) {\r\n // Negotiate version 0 doesn't use connectionToken\r\n // So we set it equal to connectionId so all our logic can use connectionToken without being aware of the negotiate version\r\n negotiateResponse.connectionToken = negotiateResponse.connectionId;\r\n }\r\n if (negotiateResponse.useStatefulReconnect && this._options._useStatefulReconnect !== true) {\r\n return Promise.reject(new FailedToNegotiateWithServerError(\"Client didn't negotiate Stateful Reconnect but the server did.\"));\r\n }\r\n return negotiateResponse;\r\n }\r\n catch (e) {\r\n let errorMessage = \"Failed to complete negotiation with the server: \" + e;\r\n if (e instanceof HttpError) {\r\n if (e.statusCode === 404) {\r\n errorMessage = errorMessage + \" Either this is not a SignalR endpoint or there is a proxy blocking the connection.\";\r\n }\r\n }\r\n this._logger.log(LogLevel.Error, errorMessage);\r\n return Promise.reject(new FailedToNegotiateWithServerError(errorMessage));\r\n }\r\n }\r\n _createConnectUrl(url, connectionToken) {\r\n if (!connectionToken) {\r\n return url;\r\n }\r\n return url + (url.indexOf(\"?\") === -1 ? \"?\" : \"&\") + `id=${connectionToken}`;\r\n }\r\n async _createTransport(url, requestedTransport, negotiateResponse, requestedTransferFormat) {\r\n let connectUrl = this._createConnectUrl(url, negotiateResponse.connectionToken);\r\n if (this._isITransport(requestedTransport)) {\r\n this._logger.log(LogLevel.Debug, \"Connection was provided an instance of ITransport, using that directly.\");\r\n this.transport = requestedTransport;\r\n await this._startTransport(connectUrl, requestedTransferFormat);\r\n this.connectionId = negotiateResponse.connectionId;\r\n return;\r\n }\r\n const transportExceptions = [];\r\n const transports = negotiateResponse.availableTransports || [];\r\n let negotiate = negotiateResponse;\r\n for (const endpoint of transports) {\r\n const transportOrError = this._resolveTransportOrError(endpoint, requestedTransport, requestedTransferFormat, (negotiate === null || negotiate === void 0 ? void 0 : negotiate.useStatefulReconnect) === true);\r\n if (transportOrError instanceof Error) {\r\n // Store the error and continue, we don't want to cause a re-negotiate in these cases\r\n transportExceptions.push(`${endpoint.transport} failed:`);\r\n transportExceptions.push(transportOrError);\r\n }\r\n else if (this._isITransport(transportOrError)) {\r\n this.transport = transportOrError;\r\n if (!negotiate) {\r\n try {\r\n negotiate = await this._getNegotiationResponse(url);\r\n }\r\n catch (ex) {\r\n return Promise.reject(ex);\r\n }\r\n connectUrl = this._createConnectUrl(url, negotiate.connectionToken);\r\n }\r\n try {\r\n await this._startTransport(connectUrl, requestedTransferFormat);\r\n this.connectionId = negotiate.connectionId;\r\n return;\r\n }\r\n catch (ex) {\r\n this._logger.log(LogLevel.Error, `Failed to start the transport '${endpoint.transport}': ${ex}`);\r\n negotiate = undefined;\r\n transportExceptions.push(new FailedToStartTransportError(`${endpoint.transport} failed: ${ex}`, HttpTransportType[endpoint.transport]));\r\n if (this._connectionState !== \"Connecting\" /* ConnectionState.Connecting */) {\r\n const message = \"Failed to select transport before stop() was called.\";\r\n this._logger.log(LogLevel.Debug, message);\r\n return Promise.reject(new AbortError(message));\r\n }\r\n }\r\n }\r\n }\r\n if (transportExceptions.length > 0) {\r\n return Promise.reject(new AggregateErrors(`Unable to connect to the server with any of the available transports. ${transportExceptions.join(\" \")}`, transportExceptions));\r\n }\r\n return Promise.reject(new Error(\"None of the transports supported by the client are supported by the server.\"));\r\n }\r\n _constructTransport(transport) {\r\n switch (transport) {\r\n case HttpTransportType.WebSockets:\r\n if (!this._options.WebSocket) {\r\n throw new Error(\"'WebSocket' is not supported in your environment.\");\r\n }\r\n return new WebSocketTransport(this._httpClient, this._accessTokenFactory, this._logger, this._options.logMessageContent, this._options.WebSocket, this._options.headers || {});\r\n case HttpTransportType.ServerSentEvents:\r\n if (!this._options.EventSource) {\r\n throw new Error(\"'EventSource' is not supported in your environment.\");\r\n }\r\n return new ServerSentEventsTransport(this._httpClient, this._httpClient._accessToken, this._logger, this._options);\r\n case HttpTransportType.LongPolling:\r\n return new LongPollingTransport(this._httpClient, this._logger, this._options);\r\n default:\r\n throw new Error(`Unknown transport: ${transport}.`);\r\n }\r\n }\r\n _startTransport(url, transferFormat) {\r\n this.transport.onreceive = this.onreceive;\r\n if (this.features.reconnect) {\r\n this.transport.onclose = async (e) => {\r\n let callStop = false;\r\n if (this.features.reconnect) {\r\n try {\r\n this.features.disconnected();\r\n await this.transport.connect(url, transferFormat);\r\n await this.features.resend();\r\n }\r\n catch {\r\n callStop = true;\r\n }\r\n }\r\n else {\r\n this._stopConnection(e);\r\n return;\r\n }\r\n if (callStop) {\r\n this._stopConnection(e);\r\n }\r\n };\r\n }\r\n else {\r\n this.transport.onclose = (e) => this._stopConnection(e);\r\n }\r\n return this.transport.connect(url, transferFormat);\r\n }\r\n _resolveTransportOrError(endpoint, requestedTransport, requestedTransferFormat, useStatefulReconnect) {\r\n const transport = HttpTransportType[endpoint.transport];\r\n if (transport === null || transport === undefined) {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${endpoint.transport}' because it is not supported by this client.`);\r\n return new Error(`Skipping transport '${endpoint.transport}' because it is not supported by this client.`);\r\n }\r\n else {\r\n if (transportMatches(requestedTransport, transport)) {\r\n const transferFormats = endpoint.transferFormats.map((s) => TransferFormat[s]);\r\n if (transferFormats.indexOf(requestedTransferFormat) >= 0) {\r\n if ((transport === HttpTransportType.WebSockets && !this._options.WebSocket) ||\r\n (transport === HttpTransportType.ServerSentEvents && !this._options.EventSource)) {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it is not supported in your environment.'`);\r\n return new UnsupportedTransportError(`'${HttpTransportType[transport]}' is not supported in your environment.`, transport);\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, `Selecting transport '${HttpTransportType[transport]}'.`);\r\n try {\r\n this.features.reconnect = transport === HttpTransportType.WebSockets ? useStatefulReconnect : undefined;\r\n return this._constructTransport(transport);\r\n }\r\n catch (ex) {\r\n return ex;\r\n }\r\n }\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it does not support the requested transfer format '${TransferFormat[requestedTransferFormat]}'.`);\r\n return new Error(`'${HttpTransportType[transport]}' does not support ${TransferFormat[requestedTransferFormat]}.`);\r\n }\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it was disabled by the client.`);\r\n return new DisabledTransportError(`'${HttpTransportType[transport]}' is disabled by the client.`, transport);\r\n }\r\n }\r\n }\r\n _isITransport(transport) {\r\n return transport && typeof (transport) === \"object\" && \"connect\" in transport;\r\n }\r\n _stopConnection(error) {\r\n this._logger.log(LogLevel.Debug, `HttpConnection.stopConnection(${error}) called while in state ${this._connectionState}.`);\r\n this.transport = undefined;\r\n // If we have a stopError, it takes precedence over the error from the transport\r\n error = this._stopError || error;\r\n this._stopError = undefined;\r\n if (this._connectionState === \"Disconnected\" /* ConnectionState.Disconnected */) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stopConnection(${error}) was ignored because the connection is already in the disconnected state.`);\r\n return;\r\n }\r\n if (this._connectionState === \"Connecting\" /* ConnectionState.Connecting */) {\r\n this._logger.log(LogLevel.Warning, `Call to HttpConnection.stopConnection(${error}) was ignored because the connection is still in the connecting state.`);\r\n throw new Error(`HttpConnection.stopConnection(${error}) was called while the connection is still in the connecting state.`);\r\n }\r\n if (this._connectionState === \"Disconnecting\" /* ConnectionState.Disconnecting */) {\r\n // A call to stop() induced this call to stopConnection and needs to be completed.\r\n // Any stop() awaiters will be scheduled to continue after the onclose callback fires.\r\n this._stopPromiseResolver();\r\n }\r\n if (error) {\r\n this._logger.log(LogLevel.Error, `Connection disconnected with error '${error}'.`);\r\n }\r\n else {\r\n this._logger.log(LogLevel.Information, \"Connection disconnected.\");\r\n }\r\n if (this._sendQueue) {\r\n this._sendQueue.stop().catch((e) => {\r\n this._logger.log(LogLevel.Error, `TransportSendQueue.stop() threw error '${e}'.`);\r\n });\r\n this._sendQueue = undefined;\r\n }\r\n this.connectionId = undefined;\r\n this._connectionState = \"Disconnected\" /* ConnectionState.Disconnected */;\r\n if (this._connectionStarted) {\r\n this._connectionStarted = false;\r\n try {\r\n if (this.onclose) {\r\n this.onclose(error);\r\n }\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `HttpConnection.onclose(${error}) threw error '${e}'.`);\r\n }\r\n }\r\n }\r\n _resolveUrl(url) {\r\n // startsWith is not supported in IE\r\n if (url.lastIndexOf(\"https://\", 0) === 0 || url.lastIndexOf(\"http://\", 0) === 0) {\r\n return url;\r\n }\r\n if (!Platform.isBrowser) {\r\n throw new Error(`Cannot resolve '${url}'.`);\r\n }\r\n // Setting the url to the href propery of an anchor tag handles normalization\r\n // for us. There are 3 main cases.\r\n // 1. Relative path normalization e.g \"b\" -> \"http://localhost:5000/a/b\"\r\n // 2. Absolute path normalization e.g \"/a/b\" -> \"http://localhost:5000/a/b\"\r\n // 3. Networkpath reference normalization e.g \"//localhost:5000/a/b\" -> \"http://localhost:5000/a/b\"\r\n const aTag = window.document.createElement(\"a\");\r\n aTag.href = url;\r\n this._logger.log(LogLevel.Information, `Normalizing '${url}' to '${aTag.href}'.`);\r\n return aTag.href;\r\n }\r\n _resolveNegotiateUrl(url) {\r\n const negotiateUrl = new URL(url);\r\n if (negotiateUrl.pathname.endsWith('/')) {\r\n negotiateUrl.pathname += \"negotiate\";\r\n }\r\n else {\r\n negotiateUrl.pathname += \"/negotiate\";\r\n }\r\n const searchParams = new URLSearchParams(negotiateUrl.searchParams);\r\n if (!searchParams.has(\"negotiateVersion\")) {\r\n searchParams.append(\"negotiateVersion\", this._negotiateVersion.toString());\r\n }\r\n if (searchParams.has(\"useStatefulReconnect\")) {\r\n if (searchParams.get(\"useStatefulReconnect\") === \"true\") {\r\n this._options._useStatefulReconnect = true;\r\n }\r\n }\r\n else if (this._options._useStatefulReconnect === true) {\r\n searchParams.append(\"useStatefulReconnect\", \"true\");\r\n }\r\n negotiateUrl.search = searchParams.toString();\r\n return negotiateUrl.toString();\r\n }\r\n}\r\nfunction transportMatches(requestedTransport, actualTransport) {\r\n return !requestedTransport || ((actualTransport & requestedTransport) !== 0);\r\n}\r\n/** @private */\r\nexport class TransportSendQueue {\r\n constructor(_transport) {\r\n this._transport = _transport;\r\n this._buffer = [];\r\n this._executing = true;\r\n this._sendBufferedData = new PromiseSource();\r\n this._transportResult = new PromiseSource();\r\n this._sendLoopPromise = this._sendLoop();\r\n }\r\n send(data) {\r\n this._bufferData(data);\r\n if (!this._transportResult) {\r\n this._transportResult = new PromiseSource();\r\n }\r\n return this._transportResult.promise;\r\n }\r\n stop() {\r\n this._executing = false;\r\n this._sendBufferedData.resolve();\r\n return this._sendLoopPromise;\r\n }\r\n _bufferData(data) {\r\n if (this._buffer.length && typeof (this._buffer[0]) !== typeof (data)) {\r\n throw new Error(`Expected data to be of type ${typeof (this._buffer)} but was of type ${typeof (data)}`);\r\n }\r\n this._buffer.push(data);\r\n this._sendBufferedData.resolve();\r\n }\r\n async _sendLoop() {\r\n while (true) {\r\n await this._sendBufferedData.promise;\r\n if (!this._executing) {\r\n if (this._transportResult) {\r\n this._transportResult.reject(\"Connection stopped.\");\r\n }\r\n break;\r\n }\r\n this._sendBufferedData = new PromiseSource();\r\n const transportResult = this._transportResult;\r\n this._transportResult = undefined;\r\n const data = typeof (this._buffer[0]) === \"string\" ?\r\n this._buffer.join(\"\") :\r\n TransportSendQueue._concatBuffers(this._buffer);\r\n this._buffer.length = 0;\r\n try {\r\n await this._transport.send(data);\r\n transportResult.resolve();\r\n }\r\n catch (error) {\r\n transportResult.reject(error);\r\n }\r\n }\r\n }\r\n static _concatBuffers(arrayBuffers) {\r\n const totalLength = arrayBuffers.map((b) => b.byteLength).reduce((a, b) => a + b);\r\n const result = new Uint8Array(totalLength);\r\n let offset = 0;\r\n for (const item of arrayBuffers) {\r\n result.set(new Uint8Array(item), offset);\r\n offset += item.byteLength;\r\n }\r\n return result.buffer;\r\n }\r\n}\r\nclass PromiseSource {\r\n constructor() {\r\n this.promise = new Promise((resolve, reject) => [this._resolver, this._rejecter] = [resolve, reject]);\r\n }\r\n resolve() {\r\n this._resolver();\r\n }\r\n reject(reason) {\r\n this._rejecter(reason);\r\n }\r\n}\r\n//# sourceMappingURL=HttpConnection.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// Not exported from index\r\n/** @private */\r\nexport class TextMessageFormat {\r\n static write(output) {\r\n return `${output}${TextMessageFormat.RecordSeparator}`;\r\n }\r\n static parse(input) {\r\n if (input[input.length - 1] !== TextMessageFormat.RecordSeparator) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n const messages = input.split(TextMessageFormat.RecordSeparator);\r\n messages.pop();\r\n return messages;\r\n }\r\n}\r\nTextMessageFormat.RecordSeparatorCode = 0x1e;\r\nTextMessageFormat.RecordSeparator = String.fromCharCode(TextMessageFormat.RecordSeparatorCode);\r\n//# sourceMappingURL=TextMessageFormat.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { TextMessageFormat } from \"./TextMessageFormat\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\n/** @private */\r\nexport class HandshakeProtocol {\r\n // Handshake request is always JSON\r\n writeHandshakeRequest(handshakeRequest) {\r\n return TextMessageFormat.write(JSON.stringify(handshakeRequest));\r\n }\r\n parseHandshakeResponse(data) {\r\n let messageData;\r\n let remainingData;\r\n if (isArrayBuffer(data)) {\r\n // Format is binary but still need to read JSON text from handshake response\r\n const binaryData = new Uint8Array(data);\r\n const separatorIndex = binaryData.indexOf(TextMessageFormat.RecordSeparatorCode);\r\n if (separatorIndex === -1) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n // content before separator is handshake response\r\n // optional content after is additional messages\r\n const responseLength = separatorIndex + 1;\r\n messageData = String.fromCharCode.apply(null, Array.prototype.slice.call(binaryData.slice(0, responseLength)));\r\n remainingData = (binaryData.byteLength > responseLength) ? binaryData.slice(responseLength).buffer : null;\r\n }\r\n else {\r\n const textData = data;\r\n const separatorIndex = textData.indexOf(TextMessageFormat.RecordSeparator);\r\n if (separatorIndex === -1) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n // content before separator is handshake response\r\n // optional content after is additional messages\r\n const responseLength = separatorIndex + 1;\r\n messageData = textData.substring(0, responseLength);\r\n remainingData = (textData.length > responseLength) ? textData.substring(responseLength) : null;\r\n }\r\n // At this point we should have just the single handshake message\r\n const messages = TextMessageFormat.parse(messageData);\r\n const response = JSON.parse(messages[0]);\r\n if (response.type) {\r\n throw new Error(\"Expected a handshake response from the server.\");\r\n }\r\n const responseMessage = response;\r\n // multiple messages could have arrived with handshake\r\n // return additional data to be parsed as usual, or null if all parsed\r\n return [remainingData, responseMessage];\r\n }\r\n}\r\n//# sourceMappingURL=HandshakeProtocol.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n/** Defines the type of a Hub Message. */\r\nexport var MessageType;\r\n(function (MessageType) {\r\n /** Indicates the message is an Invocation message and implements the {@link @microsoft/signalr.InvocationMessage} interface. */\r\n MessageType[MessageType[\"Invocation\"] = 1] = \"Invocation\";\r\n /** Indicates the message is a StreamItem message and implements the {@link @microsoft/signalr.StreamItemMessage} interface. */\r\n MessageType[MessageType[\"StreamItem\"] = 2] = \"StreamItem\";\r\n /** Indicates the message is a Completion message and implements the {@link @microsoft/signalr.CompletionMessage} interface. */\r\n MessageType[MessageType[\"Completion\"] = 3] = \"Completion\";\r\n /** Indicates the message is a Stream Invocation message and implements the {@link @microsoft/signalr.StreamInvocationMessage} interface. */\r\n MessageType[MessageType[\"StreamInvocation\"] = 4] = \"StreamInvocation\";\r\n /** Indicates the message is a Cancel Invocation message and implements the {@link @microsoft/signalr.CancelInvocationMessage} interface. */\r\n MessageType[MessageType[\"CancelInvocation\"] = 5] = \"CancelInvocation\";\r\n /** Indicates the message is a Ping message and implements the {@link @microsoft/signalr.PingMessage} interface. */\r\n MessageType[MessageType[\"Ping\"] = 6] = \"Ping\";\r\n /** Indicates the message is a Close message and implements the {@link @microsoft/signalr.CloseMessage} interface. */\r\n MessageType[MessageType[\"Close\"] = 7] = \"Close\";\r\n MessageType[MessageType[\"Ack\"] = 8] = \"Ack\";\r\n MessageType[MessageType[\"Sequence\"] = 9] = \"Sequence\";\r\n})(MessageType || (MessageType = {}));\r\n//# sourceMappingURL=IHubProtocol.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { SubjectSubscription } from \"./Utils\";\r\n/** Stream implementation to stream items to the server. */\r\nexport class Subject {\r\n constructor() {\r\n this.observers = [];\r\n }\r\n next(item) {\r\n for (const observer of this.observers) {\r\n observer.next(item);\r\n }\r\n }\r\n error(err) {\r\n for (const observer of this.observers) {\r\n if (observer.error) {\r\n observer.error(err);\r\n }\r\n }\r\n }\r\n complete() {\r\n for (const observer of this.observers) {\r\n if (observer.complete) {\r\n observer.complete();\r\n }\r\n }\r\n }\r\n subscribe(observer) {\r\n this.observers.push(observer);\r\n return new SubjectSubscription(this, observer);\r\n }\r\n}\r\n//# sourceMappingURL=Subject.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { MessageType } from \"./IHubProtocol\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\n/** @private */\r\nexport class MessageBuffer {\r\n constructor(protocol, connection, bufferSize) {\r\n this._bufferSize = 100000;\r\n this._messages = [];\r\n this._totalMessageCount = 0;\r\n this._waitForSequenceMessage = false;\r\n // Message IDs start at 1 and always increment by 1\r\n this._nextReceivingSequenceId = 1;\r\n this._latestReceivedSequenceId = 0;\r\n this._bufferedByteCount = 0;\r\n this._reconnectInProgress = false;\r\n this._protocol = protocol;\r\n this._connection = connection;\r\n this._bufferSize = bufferSize;\r\n }\r\n async _send(message) {\r\n const serializedMessage = this._protocol.writeMessage(message);\r\n let backpressurePromise = Promise.resolve();\r\n // Only count invocation messages. Acks, pings, etc. don't need to be resent on reconnect\r\n if (this._isInvocationMessage(message)) {\r\n this._totalMessageCount++;\r\n let backpressurePromiseResolver = () => { };\r\n let backpressurePromiseRejector = () => { };\r\n if (isArrayBuffer(serializedMessage)) {\r\n this._bufferedByteCount += serializedMessage.byteLength;\r\n }\r\n else {\r\n this._bufferedByteCount += serializedMessage.length;\r\n }\r\n if (this._bufferedByteCount >= this._bufferSize) {\r\n backpressurePromise = new Promise((resolve, reject) => {\r\n backpressurePromiseResolver = resolve;\r\n backpressurePromiseRejector = reject;\r\n });\r\n }\r\n this._messages.push(new BufferedItem(serializedMessage, this._totalMessageCount, backpressurePromiseResolver, backpressurePromiseRejector));\r\n }\r\n try {\r\n // If this is set it means we are reconnecting or resending\r\n // We don't want to send on a disconnected connection\r\n // And we don't want to send if resend is running since that would mean sending\r\n // this message twice\r\n if (!this._reconnectInProgress) {\r\n await this._connection.send(serializedMessage);\r\n }\r\n }\r\n catch {\r\n this._disconnected();\r\n }\r\n await backpressurePromise;\r\n }\r\n _ack(ackMessage) {\r\n let newestAckedMessage = -1;\r\n // Find index of newest message being acked\r\n for (let index = 0; index < this._messages.length; index++) {\r\n const element = this._messages[index];\r\n if (element._id <= ackMessage.sequenceId) {\r\n newestAckedMessage = index;\r\n if (isArrayBuffer(element._message)) {\r\n this._bufferedByteCount -= element._message.byteLength;\r\n }\r\n else {\r\n this._bufferedByteCount -= element._message.length;\r\n }\r\n // resolve items that have already been sent and acked\r\n element._resolver();\r\n }\r\n else if (this._bufferedByteCount < this._bufferSize) {\r\n // resolve items that now fall under the buffer limit but haven't been acked\r\n element._resolver();\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n if (newestAckedMessage !== -1) {\r\n // We're removing everything including the message pointed to, so add 1\r\n this._messages = this._messages.slice(newestAckedMessage + 1);\r\n }\r\n }\r\n _shouldProcessMessage(message) {\r\n if (this._waitForSequenceMessage) {\r\n if (message.type !== MessageType.Sequence) {\r\n return false;\r\n }\r\n else {\r\n this._waitForSequenceMessage = false;\r\n return true;\r\n }\r\n }\r\n // No special processing for acks, pings, etc.\r\n if (!this._isInvocationMessage(message)) {\r\n return true;\r\n }\r\n const currentId = this._nextReceivingSequenceId;\r\n this._nextReceivingSequenceId++;\r\n if (currentId <= this._latestReceivedSequenceId) {\r\n if (currentId === this._latestReceivedSequenceId) {\r\n // Should only hit this if we just reconnected and the server is sending\r\n // Messages it has buffered, which would mean it hasn't seen an Ack for these messages\r\n this._ackTimer();\r\n }\r\n // Ignore, this is a duplicate message\r\n return false;\r\n }\r\n this._latestReceivedSequenceId = currentId;\r\n // Only start the timer for sending an Ack message when we have a message to ack. This also conveniently solves\r\n // timer throttling by not having a recursive timer, and by starting the timer via a network call (recv)\r\n this._ackTimer();\r\n return true;\r\n }\r\n _resetSequence(message) {\r\n if (message.sequenceId > this._nextReceivingSequenceId) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this._connection.stop(new Error(\"Sequence ID greater than amount of messages we've received.\"));\r\n return;\r\n }\r\n this._nextReceivingSequenceId = message.sequenceId;\r\n }\r\n _disconnected() {\r\n this._reconnectInProgress = true;\r\n this._waitForSequenceMessage = true;\r\n }\r\n async _resend() {\r\n const sequenceId = this._messages.length !== 0\r\n ? this._messages[0]._id\r\n : this._totalMessageCount + 1;\r\n await this._connection.send(this._protocol.writeMessage({ type: MessageType.Sequence, sequenceId }));\r\n // Get a local variable to the _messages, just in case messages are acked while resending\r\n // Which would slice the _messages array (which creates a new copy)\r\n const messages = this._messages;\r\n for (const element of messages) {\r\n await this._connection.send(element._message);\r\n }\r\n this._reconnectInProgress = false;\r\n }\r\n _dispose(error) {\r\n error !== null && error !== void 0 ? error : (error = new Error(\"Unable to reconnect to server.\"));\r\n // Unblock backpressure if any\r\n for (const element of this._messages) {\r\n element._rejector(error);\r\n }\r\n }\r\n _isInvocationMessage(message) {\r\n // There is no way to check if something implements an interface.\r\n // So we individually check the messages in a switch statement.\r\n // To make sure we don't miss any message types we rely on the compiler\r\n // seeing the function returns a value and it will do the\r\n // exhaustive check for us on the switch statement, since we don't use 'case default'\r\n switch (message.type) {\r\n case MessageType.Invocation:\r\n case MessageType.StreamItem:\r\n case MessageType.Completion:\r\n case MessageType.StreamInvocation:\r\n case MessageType.CancelInvocation:\r\n return true;\r\n case MessageType.Close:\r\n case MessageType.Sequence:\r\n case MessageType.Ping:\r\n case MessageType.Ack:\r\n return false;\r\n }\r\n }\r\n _ackTimer() {\r\n if (this._ackTimerHandle === undefined) {\r\n this._ackTimerHandle = setTimeout(async () => {\r\n try {\r\n if (!this._reconnectInProgress) {\r\n await this._connection.send(this._protocol.writeMessage({ type: MessageType.Ack, sequenceId: this._latestReceivedSequenceId }));\r\n }\r\n // Ignore errors, that means the connection is closed and we don't care about the Ack message anymore.\r\n }\r\n catch { }\r\n clearTimeout(this._ackTimerHandle);\r\n this._ackTimerHandle = undefined;\r\n // 1 second delay so we don't spam Ack messages if there are many messages being received at once.\r\n }, 1000);\r\n }\r\n }\r\n}\r\nclass BufferedItem {\r\n constructor(message, id, resolver, rejector) {\r\n this._message = message;\r\n this._id = id;\r\n this._resolver = resolver;\r\n this._rejector = rejector;\r\n }\r\n}\r\n//# sourceMappingURL=MessageBuffer.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { HandshakeProtocol } from \"./HandshakeProtocol\";\r\nimport { AbortError } from \"./Errors\";\r\nimport { MessageType } from \"./IHubProtocol\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { Subject } from \"./Subject\";\r\nimport { Arg, getErrorString, Platform } from \"./Utils\";\r\nimport { MessageBuffer } from \"./MessageBuffer\";\r\nconst DEFAULT_TIMEOUT_IN_MS = 30 * 1000;\r\nconst DEFAULT_PING_INTERVAL_IN_MS = 15 * 1000;\r\nconst DEFAULT_STATEFUL_RECONNECT_BUFFER_SIZE = 100000;\r\n/** Describes the current state of the {@link HubConnection} to the server. */\r\nexport var HubConnectionState;\r\n(function (HubConnectionState) {\r\n /** The hub connection is disconnected. */\r\n HubConnectionState[\"Disconnected\"] = \"Disconnected\";\r\n /** The hub connection is connecting. */\r\n HubConnectionState[\"Connecting\"] = \"Connecting\";\r\n /** The hub connection is connected. */\r\n HubConnectionState[\"Connected\"] = \"Connected\";\r\n /** The hub connection is disconnecting. */\r\n HubConnectionState[\"Disconnecting\"] = \"Disconnecting\";\r\n /** The hub connection is reconnecting. */\r\n HubConnectionState[\"Reconnecting\"] = \"Reconnecting\";\r\n})(HubConnectionState || (HubConnectionState = {}));\r\n/** Represents a connection to a SignalR Hub. */\r\nexport class HubConnection {\r\n /** @internal */\r\n // Using a public static factory method means we can have a private constructor and an _internal_\r\n // create method that can be used by HubConnectionBuilder. An \"internal\" constructor would just\r\n // be stripped away and the '.d.ts' file would have no constructor, which is interpreted as a\r\n // public parameter-less constructor.\r\n static create(connection, logger, protocol, reconnectPolicy, serverTimeoutInMilliseconds, keepAliveIntervalInMilliseconds, statefulReconnectBufferSize) {\r\n return new HubConnection(connection, logger, protocol, reconnectPolicy, serverTimeoutInMilliseconds, keepAliveIntervalInMilliseconds, statefulReconnectBufferSize);\r\n }\r\n constructor(connection, logger, protocol, reconnectPolicy, serverTimeoutInMilliseconds, keepAliveIntervalInMilliseconds, statefulReconnectBufferSize) {\r\n this._nextKeepAlive = 0;\r\n this._freezeEventListener = () => {\r\n this._logger.log(LogLevel.Warning, \"The page is being frozen, this will likely lead to the connection being closed and messages being lost. For more information see the docs at https://learn.microsoft.com/aspnet/core/signalr/javascript-client#bsleep\");\r\n };\r\n Arg.isRequired(connection, \"connection\");\r\n Arg.isRequired(logger, \"logger\");\r\n Arg.isRequired(protocol, \"protocol\");\r\n this.serverTimeoutInMilliseconds = serverTimeoutInMilliseconds !== null && serverTimeoutInMilliseconds !== void 0 ? serverTimeoutInMilliseconds : DEFAULT_TIMEOUT_IN_MS;\r\n this.keepAliveIntervalInMilliseconds = keepAliveIntervalInMilliseconds !== null && keepAliveIntervalInMilliseconds !== void 0 ? keepAliveIntervalInMilliseconds : DEFAULT_PING_INTERVAL_IN_MS;\r\n this._statefulReconnectBufferSize = statefulReconnectBufferSize !== null && statefulReconnectBufferSize !== void 0 ? statefulReconnectBufferSize : DEFAULT_STATEFUL_RECONNECT_BUFFER_SIZE;\r\n this._logger = logger;\r\n this._protocol = protocol;\r\n this.connection = connection;\r\n this._reconnectPolicy = reconnectPolicy;\r\n this._handshakeProtocol = new HandshakeProtocol();\r\n this.connection.onreceive = (data) => this._processIncomingData(data);\r\n this.connection.onclose = (error) => this._connectionClosed(error);\r\n this._callbacks = {};\r\n this._methods = {};\r\n this._closedCallbacks = [];\r\n this._reconnectingCallbacks = [];\r\n this._reconnectedCallbacks = [];\r\n this._invocationId = 0;\r\n this._receivedHandshakeResponse = false;\r\n this._connectionState = HubConnectionState.Disconnected;\r\n this._connectionStarted = false;\r\n this._cachedPingMessage = this._protocol.writeMessage({ type: MessageType.Ping });\r\n }\r\n /** Indicates the state of the {@link HubConnection} to the server. */\r\n get state() {\r\n return this._connectionState;\r\n }\r\n /** Represents the connection id of the {@link HubConnection} on the server. The connection id will be null when the connection is either\r\n * in the disconnected state or if the negotiation step was skipped.\r\n */\r\n get connectionId() {\r\n return this.connection ? (this.connection.connectionId || null) : null;\r\n }\r\n /** Indicates the url of the {@link HubConnection} to the server. */\r\n get baseUrl() {\r\n return this.connection.baseUrl || \"\";\r\n }\r\n /**\r\n * Sets a new url for the HubConnection. Note that the url can only be changed when the connection is in either the Disconnected or\r\n * Reconnecting states.\r\n * @param {string} url The url to connect to.\r\n */\r\n set baseUrl(url) {\r\n if (this._connectionState !== HubConnectionState.Disconnected && this._connectionState !== HubConnectionState.Reconnecting) {\r\n throw new Error(\"The HubConnection must be in the Disconnected or Reconnecting state to change the url.\");\r\n }\r\n if (!url) {\r\n throw new Error(\"The HubConnection url must be a valid url.\");\r\n }\r\n this.connection.baseUrl = url;\r\n }\r\n /** Starts the connection.\r\n *\r\n * @returns {Promise} A Promise that resolves when the connection has been successfully established, or rejects with an error.\r\n */\r\n start() {\r\n this._startPromise = this._startWithStateTransitions();\r\n return this._startPromise;\r\n }\r\n async _startWithStateTransitions() {\r\n if (this._connectionState !== HubConnectionState.Disconnected) {\r\n return Promise.reject(new Error(\"Cannot start a HubConnection that is not in the 'Disconnected' state.\"));\r\n }\r\n this._connectionState = HubConnectionState.Connecting;\r\n this._logger.log(LogLevel.Debug, \"Starting HubConnection.\");\r\n try {\r\n await this._startInternal();\r\n if (Platform.isBrowser) {\r\n // Log when the browser freezes the tab so users know why their connection unexpectedly stopped working\r\n window.document.addEventListener(\"freeze\", this._freezeEventListener);\r\n }\r\n this._connectionState = HubConnectionState.Connected;\r\n this._connectionStarted = true;\r\n this._logger.log(LogLevel.Debug, \"HubConnection connected successfully.\");\r\n }\r\n catch (e) {\r\n this._connectionState = HubConnectionState.Disconnected;\r\n this._logger.log(LogLevel.Debug, `HubConnection failed to start successfully because of error '${e}'.`);\r\n return Promise.reject(e);\r\n }\r\n }\r\n async _startInternal() {\r\n this._stopDuringStartError = undefined;\r\n this._receivedHandshakeResponse = false;\r\n // Set up the promise before any connection is (re)started otherwise it could race with received messages\r\n const handshakePromise = new Promise((resolve, reject) => {\r\n this._handshakeResolver = resolve;\r\n this._handshakeRejecter = reject;\r\n });\r\n await this.connection.start(this._protocol.transferFormat);\r\n try {\r\n let version = this._protocol.version;\r\n if (!this.connection.features.reconnect) {\r\n // Stateful Reconnect starts with HubProtocol version 2, newer clients connecting to older servers will fail to connect due to\r\n // the handshake only supporting version 1, so we will try to send version 1 during the handshake to keep old servers working.\r\n version = 1;\r\n }\r\n const handshakeRequest = {\r\n protocol: this._protocol.name,\r\n version,\r\n };\r\n this._logger.log(LogLevel.Debug, \"Sending handshake request.\");\r\n await this._sendMessage(this._handshakeProtocol.writeHandshakeRequest(handshakeRequest));\r\n this._logger.log(LogLevel.Information, `Using HubProtocol '${this._protocol.name}'.`);\r\n // defensively cleanup timeout in case we receive a message from the server before we finish start\r\n this._cleanupTimeout();\r\n this._resetTimeoutPeriod();\r\n this._resetKeepAliveInterval();\r\n await handshakePromise;\r\n // It's important to check the stopDuringStartError instead of just relying on the handshakePromise\r\n // being rejected on close, because this continuation can run after both the handshake completed successfully\r\n // and the connection was closed.\r\n if (this._stopDuringStartError) {\r\n // It's important to throw instead of returning a rejected promise, because we don't want to allow any state\r\n // transitions to occur between now and the calling code observing the exceptions. Returning a rejected promise\r\n // will cause the calling continuation to get scheduled to run later.\r\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\r\n throw this._stopDuringStartError;\r\n }\r\n const useStatefulReconnect = this.connection.features.reconnect || false;\r\n if (useStatefulReconnect) {\r\n this._messageBuffer = new MessageBuffer(this._protocol, this.connection, this._statefulReconnectBufferSize);\r\n this.connection.features.disconnected = this._messageBuffer._disconnected.bind(this._messageBuffer);\r\n this.connection.features.resend = () => {\r\n if (this._messageBuffer) {\r\n return this._messageBuffer._resend();\r\n }\r\n };\r\n }\r\n if (!this.connection.features.inherentKeepAlive) {\r\n await this._sendMessage(this._cachedPingMessage);\r\n }\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Debug, `Hub handshake failed with error '${e}' during start(). Stopping HubConnection.`);\r\n this._cleanupTimeout();\r\n this._cleanupPingTimer();\r\n // HttpConnection.stop() should not complete until after the onclose callback is invoked.\r\n // This will transition the HubConnection to the disconnected state before HttpConnection.stop() completes.\r\n await this.connection.stop(e);\r\n throw e;\r\n }\r\n }\r\n /** Stops the connection.\r\n *\r\n * @returns {Promise} A Promise that resolves when the connection has been successfully terminated, or rejects with an error.\r\n */\r\n async stop() {\r\n // Capture the start promise before the connection might be restarted in an onclose callback.\r\n const startPromise = this._startPromise;\r\n this.connection.features.reconnect = false;\r\n this._stopPromise = this._stopInternal();\r\n await this._stopPromise;\r\n try {\r\n // Awaiting undefined continues immediately\r\n await startPromise;\r\n }\r\n catch (e) {\r\n // This exception is returned to the user as a rejected Promise from the start method.\r\n }\r\n }\r\n _stopInternal(error) {\r\n if (this._connectionState === HubConnectionState.Disconnected) {\r\n this._logger.log(LogLevel.Debug, `Call to HubConnection.stop(${error}) ignored because it is already in the disconnected state.`);\r\n return Promise.resolve();\r\n }\r\n if (this._connectionState === HubConnectionState.Disconnecting) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnecting state.`);\r\n return this._stopPromise;\r\n }\r\n const state = this._connectionState;\r\n this._connectionState = HubConnectionState.Disconnecting;\r\n this._logger.log(LogLevel.Debug, \"Stopping HubConnection.\");\r\n if (this._reconnectDelayHandle) {\r\n // We're in a reconnect delay which means the underlying connection is currently already stopped.\r\n // Just clear the handle to stop the reconnect loop (which no one is waiting on thankfully) and\r\n // fire the onclose callbacks.\r\n this._logger.log(LogLevel.Debug, \"Connection stopped during reconnect delay. Done reconnecting.\");\r\n clearTimeout(this._reconnectDelayHandle);\r\n this._reconnectDelayHandle = undefined;\r\n this._completeClose();\r\n return Promise.resolve();\r\n }\r\n if (state === HubConnectionState.Connected) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this._sendCloseMessage();\r\n }\r\n this._cleanupTimeout();\r\n this._cleanupPingTimer();\r\n this._stopDuringStartError = error || new AbortError(\"The connection was stopped before the hub handshake could complete.\");\r\n // HttpConnection.stop() should not complete until after either HttpConnection.start() fails\r\n // or the onclose callback is invoked. The onclose callback will transition the HubConnection\r\n // to the disconnected state if need be before HttpConnection.stop() completes.\r\n return this.connection.stop(error);\r\n }\r\n async _sendCloseMessage() {\r\n try {\r\n await this._sendWithProtocol(this._createCloseMessage());\r\n }\r\n catch {\r\n // Ignore, this is a best effort attempt to let the server know the client closed gracefully.\r\n }\r\n }\r\n /** Invokes a streaming hub method on the server using the specified name and arguments.\r\n *\r\n * @typeparam T The type of the items returned by the server.\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {IStreamResult} An object that yields results from the server as they are received.\r\n */\r\n stream(methodName, ...args) {\r\n const [streams, streamIds] = this._replaceStreamingParams(args);\r\n const invocationDescriptor = this._createStreamInvocation(methodName, args, streamIds);\r\n // eslint-disable-next-line prefer-const\r\n let promiseQueue;\r\n const subject = new Subject();\r\n subject.cancelCallback = () => {\r\n const cancelInvocation = this._createCancelInvocation(invocationDescriptor.invocationId);\r\n delete this._callbacks[invocationDescriptor.invocationId];\r\n return promiseQueue.then(() => {\r\n return this._sendWithProtocol(cancelInvocation);\r\n });\r\n };\r\n this._callbacks[invocationDescriptor.invocationId] = (invocationEvent, error) => {\r\n if (error) {\r\n subject.error(error);\r\n return;\r\n }\r\n else if (invocationEvent) {\r\n // invocationEvent will not be null when an error is not passed to the callback\r\n if (invocationEvent.type === MessageType.Completion) {\r\n if (invocationEvent.error) {\r\n subject.error(new Error(invocationEvent.error));\r\n }\r\n else {\r\n subject.complete();\r\n }\r\n }\r\n else {\r\n subject.next((invocationEvent.item));\r\n }\r\n }\r\n };\r\n promiseQueue = this._sendWithProtocol(invocationDescriptor)\r\n .catch((e) => {\r\n subject.error(e);\r\n delete this._callbacks[invocationDescriptor.invocationId];\r\n });\r\n this._launchStreams(streams, promiseQueue);\r\n return subject;\r\n }\r\n _sendMessage(message) {\r\n this._resetKeepAliveInterval();\r\n return this.connection.send(message);\r\n }\r\n /**\r\n * Sends a js object to the server.\r\n * @param message The js object to serialize and send.\r\n */\r\n _sendWithProtocol(message) {\r\n if (this._messageBuffer) {\r\n return this._messageBuffer._send(message);\r\n }\r\n else {\r\n return this._sendMessage(this._protocol.writeMessage(message));\r\n }\r\n }\r\n /** Invokes a hub method on the server using the specified name and arguments. Does not wait for a response from the receiver.\r\n *\r\n * The Promise returned by this method resolves when the client has sent the invocation to the server. The server may still\r\n * be processing the invocation.\r\n *\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {Promise} A Promise that resolves when the invocation has been successfully sent, or rejects with an error.\r\n */\r\n send(methodName, ...args) {\r\n const [streams, streamIds] = this._replaceStreamingParams(args);\r\n const sendPromise = this._sendWithProtocol(this._createInvocation(methodName, args, true, streamIds));\r\n this._launchStreams(streams, sendPromise);\r\n return sendPromise;\r\n }\r\n /** Invokes a hub method on the server using the specified name and arguments.\r\n *\r\n * The Promise returned by this method resolves when the server indicates it has finished invoking the method. When the promise\r\n * resolves, the server has finished invoking the method. If the server method returns a result, it is produced as the result of\r\n * resolving the Promise.\r\n *\r\n * @typeparam T The expected return type.\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {Promise} A Promise that resolves with the result of the server method (if any), or rejects with an error.\r\n */\r\n invoke(methodName, ...args) {\r\n const [streams, streamIds] = this._replaceStreamingParams(args);\r\n const invocationDescriptor = this._createInvocation(methodName, args, false, streamIds);\r\n const p = new Promise((resolve, reject) => {\r\n // invocationId will always have a value for a non-blocking invocation\r\n this._callbacks[invocationDescriptor.invocationId] = (invocationEvent, error) => {\r\n if (error) {\r\n reject(error);\r\n return;\r\n }\r\n else if (invocationEvent) {\r\n // invocationEvent will not be null when an error is not passed to the callback\r\n if (invocationEvent.type === MessageType.Completion) {\r\n if (invocationEvent.error) {\r\n reject(new Error(invocationEvent.error));\r\n }\r\n else {\r\n resolve(invocationEvent.result);\r\n }\r\n }\r\n else {\r\n reject(new Error(`Unexpected message type: ${invocationEvent.type}`));\r\n }\r\n }\r\n };\r\n const promiseQueue = this._sendWithProtocol(invocationDescriptor)\r\n .catch((e) => {\r\n reject(e);\r\n // invocationId will always have a value for a non-blocking invocation\r\n delete this._callbacks[invocationDescriptor.invocationId];\r\n });\r\n this._launchStreams(streams, promiseQueue);\r\n });\r\n return p;\r\n }\r\n on(methodName, newMethod) {\r\n if (!methodName || !newMethod) {\r\n return;\r\n }\r\n methodName = methodName.toLowerCase();\r\n if (!this._methods[methodName]) {\r\n this._methods[methodName] = [];\r\n }\r\n // Preventing adding the same handler multiple times.\r\n if (this._methods[methodName].indexOf(newMethod) !== -1) {\r\n return;\r\n }\r\n this._methods[methodName].push(newMethod);\r\n }\r\n off(methodName, method) {\r\n if (!methodName) {\r\n return;\r\n }\r\n methodName = methodName.toLowerCase();\r\n const handlers = this._methods[methodName];\r\n if (!handlers) {\r\n return;\r\n }\r\n if (method) {\r\n const removeIdx = handlers.indexOf(method);\r\n if (removeIdx !== -1) {\r\n handlers.splice(removeIdx, 1);\r\n if (handlers.length === 0) {\r\n delete this._methods[methodName];\r\n }\r\n }\r\n }\r\n else {\r\n delete this._methods[methodName];\r\n }\r\n }\r\n /** Registers a handler that will be invoked when the connection is closed.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection is closed. Optionally receives a single argument containing the error that caused the connection to close (if any).\r\n */\r\n onclose(callback) {\r\n if (callback) {\r\n this._closedCallbacks.push(callback);\r\n }\r\n }\r\n /** Registers a handler that will be invoked when the connection starts reconnecting.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection starts reconnecting. Optionally receives a single argument containing the error that caused the connection to start reconnecting (if any).\r\n */\r\n onreconnecting(callback) {\r\n if (callback) {\r\n this._reconnectingCallbacks.push(callback);\r\n }\r\n }\r\n /** Registers a handler that will be invoked when the connection successfully reconnects.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection successfully reconnects.\r\n */\r\n onreconnected(callback) {\r\n if (callback) {\r\n this._reconnectedCallbacks.push(callback);\r\n }\r\n }\r\n _processIncomingData(data) {\r\n this._cleanupTimeout();\r\n if (!this._receivedHandshakeResponse) {\r\n data = this._processHandshakeResponse(data);\r\n this._receivedHandshakeResponse = true;\r\n }\r\n // Data may have all been read when processing handshake response\r\n if (data) {\r\n // Parse the messages\r\n const messages = this._protocol.parseMessages(data, this._logger);\r\n for (const message of messages) {\r\n if (this._messageBuffer && !this._messageBuffer._shouldProcessMessage(message)) {\r\n // Don't process the message, we are either waiting for a SequenceMessage or received a duplicate message\r\n continue;\r\n }\r\n switch (message.type) {\r\n case MessageType.Invocation:\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this._invokeClientMethod(message);\r\n break;\r\n case MessageType.StreamItem:\r\n case MessageType.Completion: {\r\n const callback = this._callbacks[message.invocationId];\r\n if (callback) {\r\n if (message.type === MessageType.Completion) {\r\n delete this._callbacks[message.invocationId];\r\n }\r\n try {\r\n callback(message);\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `Stream callback threw error: ${getErrorString(e)}`);\r\n }\r\n }\r\n break;\r\n }\r\n case MessageType.Ping:\r\n // Don't care about pings\r\n break;\r\n case MessageType.Close: {\r\n this._logger.log(LogLevel.Information, \"Close message received from server.\");\r\n const error = message.error ? new Error(\"Server returned an error on close: \" + message.error) : undefined;\r\n if (message.allowReconnect === true) {\r\n // It feels wrong not to await connection.stop() here, but processIncomingData is called as part of an onreceive callback which is not async,\r\n // this is already the behavior for serverTimeout(), and HttpConnection.Stop() should catch and log all possible exceptions.\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.connection.stop(error);\r\n }\r\n else {\r\n // We cannot await stopInternal() here, but subsequent calls to stop() will await this if stopInternal() is still ongoing.\r\n this._stopPromise = this._stopInternal(error);\r\n }\r\n break;\r\n }\r\n case MessageType.Ack:\r\n if (this._messageBuffer) {\r\n this._messageBuffer._ack(message);\r\n }\r\n break;\r\n case MessageType.Sequence:\r\n if (this._messageBuffer) {\r\n this._messageBuffer._resetSequence(message);\r\n }\r\n break;\r\n default:\r\n this._logger.log(LogLevel.Warning, `Invalid message type: ${message.type}.`);\r\n break;\r\n }\r\n }\r\n }\r\n this._resetTimeoutPeriod();\r\n }\r\n _processHandshakeResponse(data) {\r\n let responseMessage;\r\n let remainingData;\r\n try {\r\n [remainingData, responseMessage] = this._handshakeProtocol.parseHandshakeResponse(data);\r\n }\r\n catch (e) {\r\n const message = \"Error parsing handshake response: \" + e;\r\n this._logger.log(LogLevel.Error, message);\r\n const error = new Error(message);\r\n this._handshakeRejecter(error);\r\n throw error;\r\n }\r\n if (responseMessage.error) {\r\n const message = \"Server returned handshake error: \" + responseMessage.error;\r\n this._logger.log(LogLevel.Error, message);\r\n const error = new Error(message);\r\n this._handshakeRejecter(error);\r\n throw error;\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, \"Server handshake complete.\");\r\n }\r\n this._handshakeResolver();\r\n return remainingData;\r\n }\r\n _resetKeepAliveInterval() {\r\n if (this.connection.features.inherentKeepAlive) {\r\n return;\r\n }\r\n // Set the time we want the next keep alive to be sent\r\n // Timer will be setup on next message receive\r\n this._nextKeepAlive = new Date().getTime() + this.keepAliveIntervalInMilliseconds;\r\n this._cleanupPingTimer();\r\n }\r\n _resetTimeoutPeriod() {\r\n if (!this.connection.features || !this.connection.features.inherentKeepAlive) {\r\n // Set the timeout timer\r\n this._timeoutHandle = setTimeout(() => this.serverTimeout(), this.serverTimeoutInMilliseconds);\r\n // Set keepAlive timer if there isn't one\r\n if (this._pingServerHandle === undefined) {\r\n let nextPing = this._nextKeepAlive - new Date().getTime();\r\n if (nextPing < 0) {\r\n nextPing = 0;\r\n }\r\n // The timer needs to be set from a networking callback to avoid Chrome timer throttling from causing timers to run once a minute\r\n this._pingServerHandle = setTimeout(async () => {\r\n if (this._connectionState === HubConnectionState.Connected) {\r\n try {\r\n await this._sendMessage(this._cachedPingMessage);\r\n }\r\n catch {\r\n // We don't care about the error. It should be seen elsewhere in the client.\r\n // The connection is probably in a bad or closed state now, cleanup the timer so it stops triggering\r\n this._cleanupPingTimer();\r\n }\r\n }\r\n }, nextPing);\r\n }\r\n }\r\n }\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n serverTimeout() {\r\n // The server hasn't talked to us in a while. It doesn't like us anymore ... :(\r\n // Terminate the connection, but we don't need to wait on the promise. This could trigger reconnecting.\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.connection.stop(new Error(\"Server timeout elapsed without receiving a message from the server.\"));\r\n }\r\n async _invokeClientMethod(invocationMessage) {\r\n const methodName = invocationMessage.target.toLowerCase();\r\n const methods = this._methods[methodName];\r\n if (!methods) {\r\n this._logger.log(LogLevel.Warning, `No client method with the name '${methodName}' found.`);\r\n // No handlers provided by client but the server is expecting a response still, so we send an error\r\n if (invocationMessage.invocationId) {\r\n this._logger.log(LogLevel.Warning, `No result given for '${methodName}' method and invocation ID '${invocationMessage.invocationId}'.`);\r\n await this._sendWithProtocol(this._createCompletionMessage(invocationMessage.invocationId, \"Client didn't provide a result.\", null));\r\n }\r\n return;\r\n }\r\n // Avoid issues with handlers removing themselves thus modifying the list while iterating through it\r\n const methodsCopy = methods.slice();\r\n // Server expects a response\r\n const expectsResponse = invocationMessage.invocationId ? true : false;\r\n // We preserve the last result or exception but still call all handlers\r\n let res;\r\n let exception;\r\n let completionMessage;\r\n for (const m of methodsCopy) {\r\n try {\r\n const prevRes = res;\r\n res = await m.apply(this, invocationMessage.arguments);\r\n if (expectsResponse && res && prevRes) {\r\n this._logger.log(LogLevel.Error, `Multiple results provided for '${methodName}'. Sending error to server.`);\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId, `Client provided multiple results.`, null);\r\n }\r\n // Ignore exception if we got a result after, the exception will be logged\r\n exception = undefined;\r\n }\r\n catch (e) {\r\n exception = e;\r\n this._logger.log(LogLevel.Error, `A callback for the method '${methodName}' threw error '${e}'.`);\r\n }\r\n }\r\n if (completionMessage) {\r\n await this._sendWithProtocol(completionMessage);\r\n }\r\n else if (expectsResponse) {\r\n // If there is an exception that means either no result was given or a handler after a result threw\r\n if (exception) {\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId, `${exception}`, null);\r\n }\r\n else if (res !== undefined) {\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId, null, res);\r\n }\r\n else {\r\n this._logger.log(LogLevel.Warning, `No result given for '${methodName}' method and invocation ID '${invocationMessage.invocationId}'.`);\r\n // Client didn't provide a result or throw from a handler, server expects a response so we send an error\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId, \"Client didn't provide a result.\", null);\r\n }\r\n await this._sendWithProtocol(completionMessage);\r\n }\r\n else {\r\n if (res) {\r\n this._logger.log(LogLevel.Error, `Result given for '${methodName}' method but server is not expecting a result.`);\r\n }\r\n }\r\n }\r\n _connectionClosed(error) {\r\n this._logger.log(LogLevel.Debug, `HubConnection.connectionClosed(${error}) called while in state ${this._connectionState}.`);\r\n // Triggering this.handshakeRejecter is insufficient because it could already be resolved without the continuation having run yet.\r\n this._stopDuringStartError = this._stopDuringStartError || error || new AbortError(\"The underlying connection was closed before the hub handshake could complete.\");\r\n // If the handshake is in progress, start will be waiting for the handshake promise, so we complete it.\r\n // If it has already completed, this should just noop.\r\n if (this._handshakeResolver) {\r\n this._handshakeResolver();\r\n }\r\n this._cancelCallbacksWithError(error || new Error(\"Invocation canceled due to the underlying connection being closed.\"));\r\n this._cleanupTimeout();\r\n this._cleanupPingTimer();\r\n if (this._connectionState === HubConnectionState.Disconnecting) {\r\n this._completeClose(error);\r\n }\r\n else if (this._connectionState === HubConnectionState.Connected && this._reconnectPolicy) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this._reconnect(error);\r\n }\r\n else if (this._connectionState === HubConnectionState.Connected) {\r\n this._completeClose(error);\r\n }\r\n // If none of the above if conditions were true were called the HubConnection must be in either:\r\n // 1. The Connecting state in which case the handshakeResolver will complete it and stopDuringStartError will fail it.\r\n // 2. The Reconnecting state in which case the handshakeResolver will complete it and stopDuringStartError will fail the current reconnect attempt\r\n // and potentially continue the reconnect() loop.\r\n // 3. The Disconnected state in which case we're already done.\r\n }\r\n _completeClose(error) {\r\n if (this._connectionStarted) {\r\n this._connectionState = HubConnectionState.Disconnected;\r\n this._connectionStarted = false;\r\n if (this._messageBuffer) {\r\n this._messageBuffer._dispose(error !== null && error !== void 0 ? error : new Error(\"Connection closed.\"));\r\n this._messageBuffer = undefined;\r\n }\r\n if (Platform.isBrowser) {\r\n window.document.removeEventListener(\"freeze\", this._freezeEventListener);\r\n }\r\n try {\r\n this._closedCallbacks.forEach((c) => c.apply(this, [error]));\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `An onclose callback called with error '${error}' threw error '${e}'.`);\r\n }\r\n }\r\n }\r\n async _reconnect(error) {\r\n const reconnectStartTime = Date.now();\r\n let previousReconnectAttempts = 0;\r\n let retryError = error !== undefined ? error : new Error(\"Attempting to reconnect due to a unknown error.\");\r\n let nextRetryDelay = this._getNextRetryDelay(previousReconnectAttempts++, 0, retryError);\r\n if (nextRetryDelay === null) {\r\n this._logger.log(LogLevel.Debug, \"Connection not reconnecting because the IRetryPolicy returned null on the first reconnect attempt.\");\r\n this._completeClose(error);\r\n return;\r\n }\r\n this._connectionState = HubConnectionState.Reconnecting;\r\n if (error) {\r\n this._logger.log(LogLevel.Information, `Connection reconnecting because of error '${error}'.`);\r\n }\r\n else {\r\n this._logger.log(LogLevel.Information, \"Connection reconnecting.\");\r\n }\r\n if (this._reconnectingCallbacks.length !== 0) {\r\n try {\r\n this._reconnectingCallbacks.forEach((c) => c.apply(this, [error]));\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `An onreconnecting callback called with error '${error}' threw error '${e}'.`);\r\n }\r\n // Exit early if an onreconnecting callback called connection.stop().\r\n if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n this._logger.log(LogLevel.Debug, \"Connection left the reconnecting state in onreconnecting callback. Done reconnecting.\");\r\n return;\r\n }\r\n }\r\n while (nextRetryDelay !== null) {\r\n this._logger.log(LogLevel.Information, `Reconnect attempt number ${previousReconnectAttempts} will start in ${nextRetryDelay} ms.`);\r\n await new Promise((resolve) => {\r\n this._reconnectDelayHandle = setTimeout(resolve, nextRetryDelay);\r\n });\r\n this._reconnectDelayHandle = undefined;\r\n if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n this._logger.log(LogLevel.Debug, \"Connection left the reconnecting state during reconnect delay. Done reconnecting.\");\r\n return;\r\n }\r\n try {\r\n await this._startInternal();\r\n this._connectionState = HubConnectionState.Connected;\r\n this._logger.log(LogLevel.Information, \"HubConnection reconnected successfully.\");\r\n if (this._reconnectedCallbacks.length !== 0) {\r\n try {\r\n this._reconnectedCallbacks.forEach((c) => c.apply(this, [this.connection.connectionId]));\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `An onreconnected callback called with connectionId '${this.connection.connectionId}; threw error '${e}'.`);\r\n }\r\n }\r\n return;\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Information, `Reconnect attempt failed because of error '${e}'.`);\r\n if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n this._logger.log(LogLevel.Debug, `Connection moved to the '${this._connectionState}' from the reconnecting state during reconnect attempt. Done reconnecting.`);\r\n // The TypeScript compiler thinks that connectionState must be Connected here. The TypeScript compiler is wrong.\r\n if (this._connectionState === HubConnectionState.Disconnecting) {\r\n this._completeClose();\r\n }\r\n return;\r\n }\r\n retryError = e instanceof Error ? e : new Error(e.toString());\r\n nextRetryDelay = this._getNextRetryDelay(previousReconnectAttempts++, Date.now() - reconnectStartTime, retryError);\r\n }\r\n }\r\n this._logger.log(LogLevel.Information, `Reconnect retries have been exhausted after ${Date.now() - reconnectStartTime} ms and ${previousReconnectAttempts} failed attempts. Connection disconnecting.`);\r\n this._completeClose();\r\n }\r\n _getNextRetryDelay(previousRetryCount, elapsedMilliseconds, retryReason) {\r\n try {\r\n return this._reconnectPolicy.nextRetryDelayInMilliseconds({\r\n elapsedMilliseconds,\r\n previousRetryCount,\r\n retryReason,\r\n });\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `IRetryPolicy.nextRetryDelayInMilliseconds(${previousRetryCount}, ${elapsedMilliseconds}) threw error '${e}'.`);\r\n return null;\r\n }\r\n }\r\n _cancelCallbacksWithError(error) {\r\n const callbacks = this._callbacks;\r\n this._callbacks = {};\r\n Object.keys(callbacks)\r\n .forEach((key) => {\r\n const callback = callbacks[key];\r\n try {\r\n callback(null, error);\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `Stream 'error' callback called with '${error}' threw error: ${getErrorString(e)}`);\r\n }\r\n });\r\n }\r\n _cleanupPingTimer() {\r\n if (this._pingServerHandle) {\r\n clearTimeout(this._pingServerHandle);\r\n this._pingServerHandle = undefined;\r\n }\r\n }\r\n _cleanupTimeout() {\r\n if (this._timeoutHandle) {\r\n clearTimeout(this._timeoutHandle);\r\n }\r\n }\r\n _createInvocation(methodName, args, nonblocking, streamIds) {\r\n if (nonblocking) {\r\n if (streamIds.length !== 0) {\r\n return {\r\n arguments: args,\r\n streamIds,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n else {\r\n return {\r\n arguments: args,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n }\r\n else {\r\n const invocationId = this._invocationId;\r\n this._invocationId++;\r\n if (streamIds.length !== 0) {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n streamIds,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n else {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n }\r\n }\r\n _launchStreams(streams, promiseQueue) {\r\n if (streams.length === 0) {\r\n return;\r\n }\r\n // Synchronize stream data so they arrive in-order on the server\r\n if (!promiseQueue) {\r\n promiseQueue = Promise.resolve();\r\n }\r\n // We want to iterate over the keys, since the keys are the stream ids\r\n // eslint-disable-next-line guard-for-in\r\n for (const streamId in streams) {\r\n streams[streamId].subscribe({\r\n complete: () => {\r\n promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createCompletionMessage(streamId)));\r\n },\r\n error: (err) => {\r\n let message;\r\n if (err instanceof Error) {\r\n message = err.message;\r\n }\r\n else if (err && err.toString) {\r\n message = err.toString();\r\n }\r\n else {\r\n message = \"Unknown error\";\r\n }\r\n promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createCompletionMessage(streamId, message)));\r\n },\r\n next: (item) => {\r\n promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createStreamItemMessage(streamId, item)));\r\n },\r\n });\r\n }\r\n }\r\n _replaceStreamingParams(args) {\r\n const streams = [];\r\n const streamIds = [];\r\n for (let i = 0; i < args.length; i++) {\r\n const argument = args[i];\r\n if (this._isObservable(argument)) {\r\n const streamId = this._invocationId;\r\n this._invocationId++;\r\n // Store the stream for later use\r\n streams[streamId] = argument;\r\n streamIds.push(streamId.toString());\r\n // remove stream from args\r\n args.splice(i, 1);\r\n }\r\n }\r\n return [streams, streamIds];\r\n }\r\n _isObservable(arg) {\r\n // This allows other stream implementations to just work (like rxjs)\r\n return arg && arg.subscribe && typeof arg.subscribe === \"function\";\r\n }\r\n _createStreamInvocation(methodName, args, streamIds) {\r\n const invocationId = this._invocationId;\r\n this._invocationId++;\r\n if (streamIds.length !== 0) {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n streamIds,\r\n target: methodName,\r\n type: MessageType.StreamInvocation,\r\n };\r\n }\r\n else {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n target: methodName,\r\n type: MessageType.StreamInvocation,\r\n };\r\n }\r\n }\r\n _createCancelInvocation(id) {\r\n return {\r\n invocationId: id,\r\n type: MessageType.CancelInvocation,\r\n };\r\n }\r\n _createStreamItemMessage(id, item) {\r\n return {\r\n invocationId: id,\r\n item,\r\n type: MessageType.StreamItem,\r\n };\r\n }\r\n _createCompletionMessage(id, error, result) {\r\n if (error) {\r\n return {\r\n error,\r\n invocationId: id,\r\n type: MessageType.Completion,\r\n };\r\n }\r\n return {\r\n invocationId: id,\r\n result,\r\n type: MessageType.Completion,\r\n };\r\n }\r\n _createCloseMessage() {\r\n return { type: MessageType.Close };\r\n }\r\n}\r\n//# sourceMappingURL=HubConnection.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { MessageType } from \"./IHubProtocol\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { TextMessageFormat } from \"./TextMessageFormat\";\r\nconst JSON_HUB_PROTOCOL_NAME = \"json\";\r\n/** Implements the JSON Hub Protocol. */\r\nexport class JsonHubProtocol {\r\n constructor() {\r\n /** @inheritDoc */\r\n this.name = JSON_HUB_PROTOCOL_NAME;\r\n /** @inheritDoc */\r\n this.version = 2;\r\n /** @inheritDoc */\r\n this.transferFormat = TransferFormat.Text;\r\n }\r\n /** Creates an array of {@link @microsoft/signalr.HubMessage} objects from the specified serialized representation.\r\n *\r\n * @param {string} input A string containing the serialized representation.\r\n * @param {ILogger} logger A logger that will be used to log messages that occur during parsing.\r\n */\r\n parseMessages(input, logger) {\r\n // The interface does allow \"ArrayBuffer\" to be passed in, but this implementation does not. So let's throw a useful error.\r\n if (typeof input !== \"string\") {\r\n throw new Error(\"Invalid input for JSON hub protocol. Expected a string.\");\r\n }\r\n if (!input) {\r\n return [];\r\n }\r\n if (logger === null) {\r\n logger = NullLogger.instance;\r\n }\r\n // Parse the messages\r\n const messages = TextMessageFormat.parse(input);\r\n const hubMessages = [];\r\n for (const message of messages) {\r\n const parsedMessage = JSON.parse(message);\r\n if (typeof parsedMessage.type !== \"number\") {\r\n throw new Error(\"Invalid payload.\");\r\n }\r\n switch (parsedMessage.type) {\r\n case MessageType.Invocation:\r\n this._isInvocationMessage(parsedMessage);\r\n break;\r\n case MessageType.StreamItem:\r\n this._isStreamItemMessage(parsedMessage);\r\n break;\r\n case MessageType.Completion:\r\n this._isCompletionMessage(parsedMessage);\r\n break;\r\n case MessageType.Ping:\r\n // Single value, no need to validate\r\n break;\r\n case MessageType.Close:\r\n // All optional values, no need to validate\r\n break;\r\n case MessageType.Ack:\r\n this._isAckMessage(parsedMessage);\r\n break;\r\n case MessageType.Sequence:\r\n this._isSequenceMessage(parsedMessage);\r\n break;\r\n default:\r\n // Future protocol changes can add message types, old clients can ignore them\r\n logger.log(LogLevel.Information, \"Unknown message type '\" + parsedMessage.type + \"' ignored.\");\r\n continue;\r\n }\r\n hubMessages.push(parsedMessage);\r\n }\r\n return hubMessages;\r\n }\r\n /** Writes the specified {@link @microsoft/signalr.HubMessage} to a string and returns it.\r\n *\r\n * @param {HubMessage} message The message to write.\r\n * @returns {string} A string containing the serialized representation of the message.\r\n */\r\n writeMessage(message) {\r\n return TextMessageFormat.write(JSON.stringify(message));\r\n }\r\n _isInvocationMessage(message) {\r\n this._assertNotEmptyString(message.target, \"Invalid payload for Invocation message.\");\r\n if (message.invocationId !== undefined) {\r\n this._assertNotEmptyString(message.invocationId, \"Invalid payload for Invocation message.\");\r\n }\r\n }\r\n _isStreamItemMessage(message) {\r\n this._assertNotEmptyString(message.invocationId, \"Invalid payload for StreamItem message.\");\r\n if (message.item === undefined) {\r\n throw new Error(\"Invalid payload for StreamItem message.\");\r\n }\r\n }\r\n _isCompletionMessage(message) {\r\n if (message.result && message.error) {\r\n throw new Error(\"Invalid payload for Completion message.\");\r\n }\r\n if (!message.result && message.error) {\r\n this._assertNotEmptyString(message.error, \"Invalid payload for Completion message.\");\r\n }\r\n this._assertNotEmptyString(message.invocationId, \"Invalid payload for Completion message.\");\r\n }\r\n _isAckMessage(message) {\r\n if (typeof message.sequenceId !== 'number') {\r\n throw new Error(\"Invalid SequenceId for Ack message.\");\r\n }\r\n }\r\n _isSequenceMessage(message) {\r\n if (typeof message.sequenceId !== 'number') {\r\n throw new Error(\"Invalid SequenceId for Sequence message.\");\r\n }\r\n }\r\n _assertNotEmptyString(value, errorMessage) {\r\n if (typeof value !== \"string\" || value === \"\") {\r\n throw new Error(errorMessage);\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=JsonHubProtocol.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { DefaultReconnectPolicy } from \"./DefaultReconnectPolicy\";\r\nimport { HttpConnection } from \"./HttpConnection\";\r\nimport { HubConnection } from \"./HubConnection\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { JsonHubProtocol } from \"./JsonHubProtocol\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { Arg, ConsoleLogger } from \"./Utils\";\r\nconst LogLevelNameMapping = {\r\n trace: LogLevel.Trace,\r\n debug: LogLevel.Debug,\r\n info: LogLevel.Information,\r\n information: LogLevel.Information,\r\n warn: LogLevel.Warning,\r\n warning: LogLevel.Warning,\r\n error: LogLevel.Error,\r\n critical: LogLevel.Critical,\r\n none: LogLevel.None,\r\n};\r\nfunction parseLogLevel(name) {\r\n // Case-insensitive matching via lower-casing\r\n // Yes, I know case-folding is a complicated problem in Unicode, but we only support\r\n // the ASCII strings defined in LogLevelNameMapping anyway, so it's fine -anurse.\r\n const mapping = LogLevelNameMapping[name.toLowerCase()];\r\n if (typeof mapping !== \"undefined\") {\r\n return mapping;\r\n }\r\n else {\r\n throw new Error(`Unknown log level: ${name}`);\r\n }\r\n}\r\n/** A builder for configuring {@link @microsoft/signalr.HubConnection} instances. */\r\nexport class HubConnectionBuilder {\r\n configureLogging(logging) {\r\n Arg.isRequired(logging, \"logging\");\r\n if (isLogger(logging)) {\r\n this.logger = logging;\r\n }\r\n else if (typeof logging === \"string\") {\r\n const logLevel = parseLogLevel(logging);\r\n this.logger = new ConsoleLogger(logLevel);\r\n }\r\n else {\r\n this.logger = new ConsoleLogger(logging);\r\n }\r\n return this;\r\n }\r\n withUrl(url, transportTypeOrOptions) {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isNotEmpty(url, \"url\");\r\n this.url = url;\r\n // Flow-typing knows where it's at. Since HttpTransportType is a number and IHttpConnectionOptions is guaranteed\r\n // to be an object, we know (as does TypeScript) this comparison is all we need to figure out which overload was called.\r\n if (typeof transportTypeOrOptions === \"object\") {\r\n this.httpConnectionOptions = { ...this.httpConnectionOptions, ...transportTypeOrOptions };\r\n }\r\n else {\r\n this.httpConnectionOptions = {\r\n ...this.httpConnectionOptions,\r\n transport: transportTypeOrOptions,\r\n };\r\n }\r\n return this;\r\n }\r\n /** Configures the {@link @microsoft/signalr.HubConnection} to use the specified Hub Protocol.\r\n *\r\n * @param {IHubProtocol} protocol The {@link @microsoft/signalr.IHubProtocol} implementation to use.\r\n */\r\n withHubProtocol(protocol) {\r\n Arg.isRequired(protocol, \"protocol\");\r\n this.protocol = protocol;\r\n return this;\r\n }\r\n withAutomaticReconnect(retryDelaysOrReconnectPolicy) {\r\n if (this.reconnectPolicy) {\r\n throw new Error(\"A reconnectPolicy has already been set.\");\r\n }\r\n if (!retryDelaysOrReconnectPolicy) {\r\n this.reconnectPolicy = new DefaultReconnectPolicy();\r\n }\r\n else if (Array.isArray(retryDelaysOrReconnectPolicy)) {\r\n this.reconnectPolicy = new DefaultReconnectPolicy(retryDelaysOrReconnectPolicy);\r\n }\r\n else {\r\n this.reconnectPolicy = retryDelaysOrReconnectPolicy;\r\n }\r\n return this;\r\n }\r\n /** Configures {@link @microsoft/signalr.HubConnection.serverTimeoutInMilliseconds} for the {@link @microsoft/signalr.HubConnection}.\r\n *\r\n * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n withServerTimeout(milliseconds) {\r\n Arg.isRequired(milliseconds, \"milliseconds\");\r\n this._serverTimeoutInMilliseconds = milliseconds;\r\n return this;\r\n }\r\n /** Configures {@link @microsoft/signalr.HubConnection.keepAliveIntervalInMilliseconds} for the {@link @microsoft/signalr.HubConnection}.\r\n *\r\n * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n withKeepAliveInterval(milliseconds) {\r\n Arg.isRequired(milliseconds, \"milliseconds\");\r\n this._keepAliveIntervalInMilliseconds = milliseconds;\r\n return this;\r\n }\r\n /** Enables and configures options for the Stateful Reconnect feature.\r\n *\r\n * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n withStatefulReconnect(options) {\r\n if (this.httpConnectionOptions === undefined) {\r\n this.httpConnectionOptions = {};\r\n }\r\n this.httpConnectionOptions._useStatefulReconnect = true;\r\n this._statefulReconnectBufferSize = options === null || options === void 0 ? void 0 : options.bufferSize;\r\n return this;\r\n }\r\n /** Creates a {@link @microsoft/signalr.HubConnection} from the configuration options specified in this builder.\r\n *\r\n * @returns {HubConnection} The configured {@link @microsoft/signalr.HubConnection}.\r\n */\r\n build() {\r\n // If httpConnectionOptions has a logger, use it. Otherwise, override it with the one\r\n // provided to configureLogger\r\n const httpConnectionOptions = this.httpConnectionOptions || {};\r\n // If it's 'null', the user **explicitly** asked for null, don't mess with it.\r\n if (httpConnectionOptions.logger === undefined) {\r\n // If our logger is undefined or null, that's OK, the HttpConnection constructor will handle it.\r\n httpConnectionOptions.logger = this.logger;\r\n }\r\n // Now create the connection\r\n if (!this.url) {\r\n throw new Error(\"The 'HubConnectionBuilder.withUrl' method must be called before building the connection.\");\r\n }\r\n const connection = new HttpConnection(this.url, httpConnectionOptions);\r\n return HubConnection.create(connection, this.logger || NullLogger.instance, this.protocol || new JsonHubProtocol(), this.reconnectPolicy, this._serverTimeoutInMilliseconds, this._keepAliveIntervalInMilliseconds, this._statefulReconnectBufferSize);\r\n }\r\n}\r\nfunction isLogger(logger) {\r\n return logger.log !== undefined;\r\n}\r\n//# sourceMappingURL=HubConnectionBuilder.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// These values are designed to match the ASP.NET Log Levels since that's the pattern we're emulating here.\r\n/** Indicates the severity of a log message.\r\n *\r\n * Log Levels are ordered in increasing severity. So `Debug` is more severe than `Trace`, etc.\r\n */\r\nexport var LogLevel;\r\n(function (LogLevel) {\r\n /** Log level for very low severity diagnostic messages. */\r\n LogLevel[LogLevel[\"Trace\"] = 0] = \"Trace\";\r\n /** Log level for low severity diagnostic messages. */\r\n LogLevel[LogLevel[\"Debug\"] = 1] = \"Debug\";\r\n /** Log level for informational diagnostic messages. */\r\n LogLevel[LogLevel[\"Information\"] = 2] = \"Information\";\r\n /** Log level for diagnostic messages that indicate a non-fatal problem. */\r\n LogLevel[LogLevel[\"Warning\"] = 3] = \"Warning\";\r\n /** Log level for diagnostic messages that indicate a failure in the current operation. */\r\n LogLevel[LogLevel[\"Error\"] = 4] = \"Error\";\r\n /** Log level for diagnostic messages that indicate a failure that will terminate the entire application. */\r\n LogLevel[LogLevel[\"Critical\"] = 5] = \"Critical\";\r\n /** The highest possible log level. Used when configuring logging to indicate that no log messages should be emitted. */\r\n LogLevel[LogLevel[\"None\"] = 6] = \"None\";\r\n})(LogLevel || (LogLevel = {}));\r\n//# sourceMappingURL=ILogger.js.map","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent(\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */,\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options =\n typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) {\n // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","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 isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\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","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = 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 makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\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/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/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\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\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","module.exports = typeof navigator != 'undefined' && String(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 uncurryThis = require('../internals/function-uncurry-this');\n\nvar $Error = Error;\nvar replace = uncurryThis(''.replace);\n\nvar TEST = (function (arg) { return String($Error(arg).stack); })('zxcasd');\n// eslint-disable-next-line redos/no-vulnerable -- safe\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\n\nmodule.exports = function (stack, dropEntries) {\n if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) {\n while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n } return stack;\n};\n","var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar clearErrorStack = require('../internals/error-stack-clear');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\n\n// non-standard V8\nvar captureStackTrace = Error.captureStackTrace;\n\nmodule.exports = function (error, C, stack, dropEntries) {\n if (ERROR_STACK_INSTALLABLE) {\n if (captureStackTrace) captureStackTrace(error, C);\n else createNonEnumerableProperty(error, 'stack', clearErrorStack(stack, dropEntries));\n }\n};\n","var fails = require('../internals/fails');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = !fails(function () {\n var error = Error('a');\n if (!('stack' in error)) return true;\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));\n return error.stack !== 7;\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","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/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/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 uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return 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/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; })() || 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/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","module.exports = {};\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/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 isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\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 isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\n// `InstallErrorCause` abstract operation\n// https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause\nmodule.exports = function (O, options) {\n if (isObject(options) && 'cause' in options) {\n createNonEnumerableProperty(O, 'cause', options.cause);\n }\n};\n","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\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 /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(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/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 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 uncurryThis = require('../internals/function-uncurry-this');\nvar 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;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\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 (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^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 = join(TEMPLATE, 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/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","var toString = require('../internals/to-string');\n\nmodule.exports = function (argument, $default) {\n return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\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/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/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/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/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/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","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/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","/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\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 defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (Target, Source, key) {\n key in Target || defineProperty(Target, key, {\n configurable: true,\n get: function () { return Source[key]; },\n set: function (it) { Source[key] = it; }\n });\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.31.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.31.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/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 // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\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 classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\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/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/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 Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar proxyAccessor = require('../internals/proxy-accessor');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar installErrorCause = require('../internals/install-error-cause');\nvar installErrorStack = require('../internals/error-stack-install');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nmodule.exports = function (FULL_NAME, wrapper, FORCED, IS_AGGREGATE_ERROR) {\n var STACK_TRACE_LIMIT = 'stackTraceLimit';\n var OPTIONS_POSITION = IS_AGGREGATE_ERROR ? 2 : 1;\n var path = FULL_NAME.split('.');\n var ERROR_NAME = path[path.length - 1];\n var OriginalError = getBuiltIn.apply(null, path);\n\n if (!OriginalError) return;\n\n var OriginalErrorPrototype = OriginalError.prototype;\n\n // V8 9.3- bug https://bugs.chromium.org/p/v8/issues/detail?id=12006\n if (!IS_PURE && hasOwn(OriginalErrorPrototype, 'cause')) delete OriginalErrorPrototype.cause;\n\n if (!FORCED) return OriginalError;\n\n var BaseError = getBuiltIn('Error');\n\n var WrappedError = wrapper(function (a, b) {\n var message = normalizeStringArgument(IS_AGGREGATE_ERROR ? b : a, undefined);\n var result = IS_AGGREGATE_ERROR ? new OriginalError(a) : new OriginalError();\n if (message !== undefined) createNonEnumerableProperty(result, 'message', message);\n installErrorStack(result, WrappedError, result.stack, 2);\n if (this && isPrototypeOf(OriginalErrorPrototype, this)) inheritIfRequired(result, this, WrappedError);\n if (arguments.length > OPTIONS_POSITION) installErrorCause(result, arguments[OPTIONS_POSITION]);\n return result;\n });\n\n WrappedError.prototype = OriginalErrorPrototype;\n\n if (ERROR_NAME !== 'Error') {\n if (setPrototypeOf) setPrototypeOf(WrappedError, BaseError);\n else copyConstructorProperties(WrappedError, BaseError, { name: true });\n } else if (DESCRIPTORS && STACK_TRACE_LIMIT in OriginalError) {\n proxyAccessor(WrappedError, OriginalError, STACK_TRACE_LIMIT);\n proxyAccessor(WrappedError, OriginalError, 'prepareStackTrace');\n }\n\n copyConstructorProperties(WrappedError, OriginalError);\n\n if (!IS_PURE) try {\n // Safari 13- bug: WebAssembly errors does not have a proper `.name`\n if (OriginalErrorPrototype.name !== ERROR_NAME) {\n createNonEnumerableProperty(OriginalErrorPrototype, 'name', ERROR_NAME);\n }\n OriginalErrorPrototype.constructor = WrappedError;\n } catch (error) { /* empty */ }\n\n return WrappedError;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar fails = require('../internals/fails');\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 and Safari <= 15.4, FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar properErrorOnNonWritableLength = function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).push();\n } catch (error) {\n return error instanceof TypeError;\n }\n};\n\nvar FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n push: function push(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n doesNotExceedSafeInteger(len + argCount);\n for (var i = 0; i < argCount; i++) {\n O[len] = arguments[i];\n len++;\n }\n setArrayLength(O, len);\n return len;\n }\n});\n","/* eslint-disable no-unused-vars -- required for functions `.length` */\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar wrapErrorConstructorWithCause = require('../internals/wrap-error-constructor-with-cause');\n\nvar WEB_ASSEMBLY = 'WebAssembly';\nvar WebAssembly = global[WEB_ASSEMBLY];\n\nvar FORCED = Error('e', { cause: 7 }).cause !== 7;\n\nvar exportGlobalErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n var O = {};\n O[ERROR_NAME] = wrapErrorConstructorWithCause(ERROR_NAME, wrapper, FORCED);\n $({ global: true, constructor: true, arity: 1, forced: FORCED }, O);\n};\n\nvar exportWebAssemblyErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n if (WebAssembly && WebAssembly[ERROR_NAME]) {\n var O = {};\n O[ERROR_NAME] = wrapErrorConstructorWithCause(WEB_ASSEMBLY + '.' + ERROR_NAME, wrapper, FORCED);\n $({ target: WEB_ASSEMBLY, stat: true, constructor: true, arity: 1, forced: FORCED }, O);\n }\n};\n\n// https://tc39.es/ecma262/#sec-nativeerror\n// https://github.com/tc39/proposal-error-cause\nexportGlobalErrorCauseWrapper('Error', function (init) {\n return function Error(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('EvalError', function (init) {\n return function EvalError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('RangeError', function (init) {\n return function RangeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('ReferenceError', function (init) {\n return function ReferenceError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('SyntaxError', function (init) {\n return function SyntaxError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('TypeError', function (init) {\n return function TypeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('URIError', function (init) {\n return function URIError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('CompileError', function (init) {\n return function CompileError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('LinkError', function (init) {\n return function LinkError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('RuntimeError', function (init) {\n return function RuntimeError(message) { return apply(init, this, arguments); };\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\n\nvar URLSearchParamsPrototype = URLSearchParams.prototype;\nvar forEach = uncurryThis(URLSearchParamsPrototype.forEach);\n\n// `URLSearchParams.prototype.size` getter\n// https://github.com/whatwg/url/pull/734\nif (DESCRIPTORS && !('size' in URLSearchParamsPrototype)) {\n defineBuiltInAccessor(URLSearchParamsPrototype, 'size', {\n get: function size() {\n var count = 0;\n forEach(this, function () { count++; });\n return count;\n },\n configurable: true,\n enumerable: true\n });\n}\n","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn Object.propertyIsEnumerable.call(target, symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","/**\n * Copyright 2016 Google Inc. All Rights Reserved.\n *\n * Licensed under the W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE.\n *\n * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n *\n */\n(function() {\n'use strict';\n\n// Exit early if we're not running in a browser.\nif (typeof window !== 'object') {\n return;\n}\n\n// Exit early if all IntersectionObserver and IntersectionObserverEntry\n// features are natively supported.\nif ('IntersectionObserver' in window &&\n 'IntersectionObserverEntry' in window &&\n 'intersectionRatio' in window.IntersectionObserverEntry.prototype) {\n\n // Minimal polyfill for Edge 15's lack of `isIntersecting`\n // See: https://github.com/w3c/IntersectionObserver/issues/211\n if (!('isIntersecting' in window.IntersectionObserverEntry.prototype)) {\n Object.defineProperty(window.IntersectionObserverEntry.prototype,\n 'isIntersecting', {\n get: function () {\n return this.intersectionRatio > 0;\n }\n });\n }\n return;\n}\n\n/**\n * Returns the embedding frame element, if any.\n * @param {!Document} doc\n * @return {!Element}\n */\nfunction getFrameElement(doc) {\n try {\n return doc.defaultView && doc.defaultView.frameElement || null;\n } catch (e) {\n // Ignore the error.\n return null;\n }\n}\n\n/**\n * A local reference to the root document.\n */\nvar document = (function(startDoc) {\n var doc = startDoc;\n var frame = getFrameElement(doc);\n while (frame) {\n doc = frame.ownerDocument;\n frame = getFrameElement(doc);\n }\n return doc;\n})(window.document);\n\n/**\n * An IntersectionObserver registry. This registry exists to hold a strong\n * reference to IntersectionObserver instances currently observing a target\n * element. Without this registry, instances without another reference may be\n * garbage collected.\n */\nvar registry = [];\n\n/**\n * The signal updater for cross-origin intersection. When not null, it means\n * that the polyfill is configured to work in a cross-origin mode.\n * @type {function(DOMRect|ClientRect, DOMRect|ClientRect)}\n */\nvar crossOriginUpdater = null;\n\n/**\n * The current cross-origin intersection. Only used in the cross-origin mode.\n * @type {DOMRect|ClientRect}\n */\nvar crossOriginRect = null;\n\n\n/**\n * Creates the global IntersectionObserverEntry constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-entry\n * @param {Object} entry A dictionary of instance properties.\n * @constructor\n */\nfunction IntersectionObserverEntry(entry) {\n this.time = entry.time;\n this.target = entry.target;\n this.rootBounds = ensureDOMRect(entry.rootBounds);\n this.boundingClientRect = ensureDOMRect(entry.boundingClientRect);\n this.intersectionRect = ensureDOMRect(entry.intersectionRect || getEmptyRect());\n this.isIntersecting = !!entry.intersectionRect;\n\n // Calculates the intersection ratio.\n var targetRect = this.boundingClientRect;\n var targetArea = targetRect.width * targetRect.height;\n var intersectionRect = this.intersectionRect;\n var intersectionArea = intersectionRect.width * intersectionRect.height;\n\n // Sets intersection ratio.\n if (targetArea) {\n // Round the intersection ratio to avoid floating point math issues:\n // https://github.com/w3c/IntersectionObserver/issues/324\n this.intersectionRatio = Number((intersectionArea / targetArea).toFixed(4));\n } else {\n // If area is zero and is intersecting, sets to 1, otherwise to 0\n this.intersectionRatio = this.isIntersecting ? 1 : 0;\n }\n}\n\n\n/**\n * Creates the global IntersectionObserver constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-interface\n * @param {Function} callback The function to be invoked after intersection\n * changes have queued. The function is not invoked if the queue has\n * been emptied by calling the `takeRecords` method.\n * @param {Object=} opt_options Optional configuration options.\n * @constructor\n */\nfunction IntersectionObserver(callback, opt_options) {\n\n var options = opt_options || {};\n\n if (typeof callback != 'function') {\n throw new Error('callback must be a function');\n }\n\n if (\n options.root &&\n options.root.nodeType != 1 &&\n options.root.nodeType != 9\n ) {\n throw new Error('root must be a Document or Element');\n }\n\n // Binds and throttles `this._checkForIntersections`.\n this._checkForIntersections = throttle(\n this._checkForIntersections.bind(this), this.THROTTLE_TIMEOUT);\n\n // Private properties.\n this._callback = callback;\n this._observationTargets = [];\n this._queuedEntries = [];\n this._rootMarginValues = this._parseRootMargin(options.rootMargin);\n\n // Public properties.\n this.thresholds = this._initThresholds(options.threshold);\n this.root = options.root || null;\n this.rootMargin = this._rootMarginValues.map(function(margin) {\n return margin.value + margin.unit;\n }).join(' ');\n\n /** @private @const {!Array} */\n this._monitoringDocuments = [];\n /** @private @const {!Array} */\n this._monitoringUnsubscribes = [];\n}\n\n\n/**\n * The minimum interval within which the document will be checked for\n * intersection changes.\n */\nIntersectionObserver.prototype.THROTTLE_TIMEOUT = 100;\n\n\n/**\n * The frequency in which the polyfill polls for intersection changes.\n * this can be updated on a per instance basis and must be set prior to\n * calling `observe` on the first target.\n */\nIntersectionObserver.prototype.POLL_INTERVAL = null;\n\n/**\n * Use a mutation observer on the root element\n * to detect intersection changes.\n */\nIntersectionObserver.prototype.USE_MUTATION_OBSERVER = true;\n\n\n/**\n * Sets up the polyfill in the cross-origin mode. The result is the\n * updater function that accepts two arguments: `boundingClientRect` and\n * `intersectionRect` - just as these fields would be available to the\n * parent via `IntersectionObserverEntry`. This function should be called\n * each time the iframe receives intersection information from the parent\n * window, e.g. via messaging.\n * @return {function(DOMRect|ClientRect, DOMRect|ClientRect)}\n */\nIntersectionObserver._setupCrossOriginUpdater = function() {\n if (!crossOriginUpdater) {\n /**\n * @param {DOMRect|ClientRect} boundingClientRect\n * @param {DOMRect|ClientRect} intersectionRect\n */\n crossOriginUpdater = function(boundingClientRect, intersectionRect) {\n if (!boundingClientRect || !intersectionRect) {\n crossOriginRect = getEmptyRect();\n } else {\n crossOriginRect = convertFromParentRect(boundingClientRect, intersectionRect);\n }\n registry.forEach(function(observer) {\n observer._checkForIntersections();\n });\n };\n }\n return crossOriginUpdater;\n};\n\n\n/**\n * Resets the cross-origin mode.\n */\nIntersectionObserver._resetCrossOriginUpdater = function() {\n crossOriginUpdater = null;\n crossOriginRect = null;\n};\n\n\n/**\n * Starts observing a target element for intersection changes based on\n * the thresholds values.\n * @param {Element} target The DOM element to observe.\n */\nIntersectionObserver.prototype.observe = function(target) {\n var isTargetAlreadyObserved = this._observationTargets.some(function(item) {\n return item.element == target;\n });\n\n if (isTargetAlreadyObserved) {\n return;\n }\n\n if (!(target && target.nodeType == 1)) {\n throw new Error('target must be an Element');\n }\n\n this._registerInstance();\n this._observationTargets.push({element: target, entry: null});\n this._monitorIntersections(target.ownerDocument);\n this._checkForIntersections();\n};\n\n\n/**\n * Stops observing a target element for intersection changes.\n * @param {Element} target The DOM element to observe.\n */\nIntersectionObserver.prototype.unobserve = function(target) {\n this._observationTargets =\n this._observationTargets.filter(function(item) {\n return item.element != target;\n });\n this._unmonitorIntersections(target.ownerDocument);\n if (this._observationTargets.length == 0) {\n this._unregisterInstance();\n }\n};\n\n\n/**\n * Stops observing all target elements for intersection changes.\n */\nIntersectionObserver.prototype.disconnect = function() {\n this._observationTargets = [];\n this._unmonitorAllIntersections();\n this._unregisterInstance();\n};\n\n\n/**\n * Returns any queue entries that have not yet been reported to the\n * callback and clears the queue. This can be used in conjunction with the\n * callback to obtain the absolute most up-to-date intersection information.\n * @return {Array} The currently queued entries.\n */\nIntersectionObserver.prototype.takeRecords = function() {\n var records = this._queuedEntries.slice();\n this._queuedEntries = [];\n return records;\n};\n\n\n/**\n * Accepts the threshold value from the user configuration object and\n * returns a sorted array of unique threshold values. If a value is not\n * between 0 and 1 and error is thrown.\n * @private\n * @param {Array|number=} opt_threshold An optional threshold value or\n * a list of threshold values, defaulting to [0].\n * @return {Array} A sorted list of unique and valid threshold values.\n */\nIntersectionObserver.prototype._initThresholds = function(opt_threshold) {\n var threshold = opt_threshold || [0];\n if (!Array.isArray(threshold)) threshold = [threshold];\n\n return threshold.sort().filter(function(t, i, a) {\n if (typeof t != 'number' || isNaN(t) || t < 0 || t > 1) {\n throw new Error('threshold must be a number between 0 and 1 inclusively');\n }\n return t !== a[i - 1];\n });\n};\n\n\n/**\n * Accepts the rootMargin value from the user configuration object\n * and returns an array of the four margin values as an object containing\n * the value and unit properties. If any of the values are not properly\n * formatted or use a unit other than px or %, and error is thrown.\n * @private\n * @param {string=} opt_rootMargin An optional rootMargin value,\n * defaulting to '0px'.\n * @return {Array} An array of margin objects with the keys\n * value and unit.\n */\nIntersectionObserver.prototype._parseRootMargin = function(opt_rootMargin) {\n var marginString = opt_rootMargin || '0px';\n var margins = marginString.split(/\\s+/).map(function(margin) {\n var parts = /^(-?\\d*\\.?\\d+)(px|%)$/.exec(margin);\n if (!parts) {\n throw new Error('rootMargin must be specified in pixels or percent');\n }\n return {value: parseFloat(parts[1]), unit: parts[2]};\n });\n\n // Handles shorthand.\n margins[1] = margins[1] || margins[0];\n margins[2] = margins[2] || margins[0];\n margins[3] = margins[3] || margins[1];\n\n return margins;\n};\n\n\n/**\n * Starts polling for intersection changes if the polling is not already\n * happening, and if the page's visibility state is visible.\n * @param {!Document} doc\n * @private\n */\nIntersectionObserver.prototype._monitorIntersections = function(doc) {\n var win = doc.defaultView;\n if (!win) {\n // Already destroyed.\n return;\n }\n if (this._monitoringDocuments.indexOf(doc) != -1) {\n // Already monitoring.\n return;\n }\n\n // Private state for monitoring.\n var callback = this._checkForIntersections;\n var monitoringInterval = null;\n var domObserver = null;\n\n // If a poll interval is set, use polling instead of listening to\n // resize and scroll events or DOM mutations.\n if (this.POLL_INTERVAL) {\n monitoringInterval = win.setInterval(callback, this.POLL_INTERVAL);\n } else {\n addEvent(win, 'resize', callback, true);\n addEvent(doc, 'scroll', callback, true);\n if (this.USE_MUTATION_OBSERVER && 'MutationObserver' in win) {\n domObserver = new win.MutationObserver(callback);\n domObserver.observe(doc, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true\n });\n }\n }\n\n this._monitoringDocuments.push(doc);\n this._monitoringUnsubscribes.push(function() {\n // Get the window object again. When a friendly iframe is destroyed, it\n // will be null.\n var win = doc.defaultView;\n\n if (win) {\n if (monitoringInterval) {\n win.clearInterval(monitoringInterval);\n }\n removeEvent(win, 'resize', callback, true);\n }\n\n removeEvent(doc, 'scroll', callback, true);\n if (domObserver) {\n domObserver.disconnect();\n }\n });\n\n // Also monitor the parent.\n var rootDoc =\n (this.root && (this.root.ownerDocument || this.root)) || document;\n if (doc != rootDoc) {\n var frame = getFrameElement(doc);\n if (frame) {\n this._monitorIntersections(frame.ownerDocument);\n }\n }\n};\n\n\n/**\n * Stops polling for intersection changes.\n * @param {!Document} doc\n * @private\n */\nIntersectionObserver.prototype._unmonitorIntersections = function(doc) {\n var index = this._monitoringDocuments.indexOf(doc);\n if (index == -1) {\n return;\n }\n\n var rootDoc =\n (this.root && (this.root.ownerDocument || this.root)) || document;\n\n // Check if any dependent targets are still remaining.\n var hasDependentTargets =\n this._observationTargets.some(function(item) {\n var itemDoc = item.element.ownerDocument;\n // Target is in this context.\n if (itemDoc == doc) {\n return true;\n }\n // Target is nested in this context.\n while (itemDoc && itemDoc != rootDoc) {\n var frame = getFrameElement(itemDoc);\n itemDoc = frame && frame.ownerDocument;\n if (itemDoc == doc) {\n return true;\n }\n }\n return false;\n });\n if (hasDependentTargets) {\n return;\n }\n\n // Unsubscribe.\n var unsubscribe = this._monitoringUnsubscribes[index];\n this._monitoringDocuments.splice(index, 1);\n this._monitoringUnsubscribes.splice(index, 1);\n unsubscribe();\n\n // Also unmonitor the parent.\n if (doc != rootDoc) {\n var frame = getFrameElement(doc);\n if (frame) {\n this._unmonitorIntersections(frame.ownerDocument);\n }\n }\n};\n\n\n/**\n * Stops polling for intersection changes.\n * @param {!Document} doc\n * @private\n */\nIntersectionObserver.prototype._unmonitorAllIntersections = function() {\n var unsubscribes = this._monitoringUnsubscribes.slice(0);\n this._monitoringDocuments.length = 0;\n this._monitoringUnsubscribes.length = 0;\n for (var i = 0; i < unsubscribes.length; i++) {\n unsubscribes[i]();\n }\n};\n\n\n/**\n * Scans each observation target for intersection changes and adds them\n * to the internal entries queue. If new entries are found, it\n * schedules the callback to be invoked.\n * @private\n */\nIntersectionObserver.prototype._checkForIntersections = function() {\n if (!this.root && crossOriginUpdater && !crossOriginRect) {\n // Cross origin monitoring, but no initial data available yet.\n return;\n }\n\n var rootIsInDom = this._rootIsInDom();\n var rootRect = rootIsInDom ? this._getRootRect() : getEmptyRect();\n\n this._observationTargets.forEach(function(item) {\n var target = item.element;\n var targetRect = getBoundingClientRect(target);\n var rootContainsTarget = this._rootContainsTarget(target);\n var oldEntry = item.entry;\n var intersectionRect = rootIsInDom && rootContainsTarget &&\n this._computeTargetAndRootIntersection(target, targetRect, rootRect);\n\n var rootBounds = null;\n if (!this._rootContainsTarget(target)) {\n rootBounds = getEmptyRect();\n } else if (!crossOriginUpdater || this.root) {\n rootBounds = rootRect;\n }\n\n var newEntry = item.entry = new IntersectionObserverEntry({\n time: now(),\n target: target,\n boundingClientRect: targetRect,\n rootBounds: rootBounds,\n intersectionRect: intersectionRect\n });\n\n if (!oldEntry) {\n this._queuedEntries.push(newEntry);\n } else if (rootIsInDom && rootContainsTarget) {\n // If the new entry intersection ratio has crossed any of the\n // thresholds, add a new entry.\n if (this._hasCrossedThreshold(oldEntry, newEntry)) {\n this._queuedEntries.push(newEntry);\n }\n } else {\n // If the root is not in the DOM or target is not contained within\n // root but the previous entry for this target had an intersection,\n // add a new record indicating removal.\n if (oldEntry && oldEntry.isIntersecting) {\n this._queuedEntries.push(newEntry);\n }\n }\n }, this);\n\n if (this._queuedEntries.length) {\n this._callback(this.takeRecords(), this);\n }\n};\n\n\n/**\n * Accepts a target and root rect computes the intersection between then\n * following the algorithm in the spec.\n * TODO(philipwalton): at this time clip-path is not considered.\n * https://w3c.github.io/IntersectionObserver/#calculate-intersection-rect-algo\n * @param {Element} target The target DOM element\n * @param {Object} targetRect The bounding rect of the target.\n * @param {Object} rootRect The bounding rect of the root after being\n * expanded by the rootMargin value.\n * @return {?Object} The final intersection rect object or undefined if no\n * intersection is found.\n * @private\n */\nIntersectionObserver.prototype._computeTargetAndRootIntersection =\n function(target, targetRect, rootRect) {\n // If the element isn't displayed, an intersection can't happen.\n if (window.getComputedStyle(target).display == 'none') return;\n\n var intersectionRect = targetRect;\n var parent = getParentNode(target);\n var atRoot = false;\n\n while (!atRoot && parent) {\n var parentRect = null;\n var parentComputedStyle = parent.nodeType == 1 ?\n window.getComputedStyle(parent) : {};\n\n // If the parent isn't displayed, an intersection can't happen.\n if (parentComputedStyle.display == 'none') return null;\n\n if (parent == this.root || parent.nodeType == /* DOCUMENT */ 9) {\n atRoot = true;\n if (parent == this.root || parent == document) {\n if (crossOriginUpdater && !this.root) {\n if (!crossOriginRect ||\n crossOriginRect.width == 0 && crossOriginRect.height == 0) {\n // A 0-size cross-origin intersection means no-intersection.\n parent = null;\n parentRect = null;\n intersectionRect = null;\n } else {\n parentRect = crossOriginRect;\n }\n } else {\n parentRect = rootRect;\n }\n } else {\n // Check if there's a frame that can be navigated to.\n var frame = getParentNode(parent);\n var frameRect = frame && getBoundingClientRect(frame);\n var frameIntersect =\n frame &&\n this._computeTargetAndRootIntersection(frame, frameRect, rootRect);\n if (frameRect && frameIntersect) {\n parent = frame;\n parentRect = convertFromParentRect(frameRect, frameIntersect);\n } else {\n parent = null;\n intersectionRect = null;\n }\n }\n } else {\n // If the element has a non-visible overflow, and it's not the \n // or element, update the intersection rect.\n // Note: and cannot be clipped to a rect that's not also\n // the document rect, so no need to compute a new intersection.\n var doc = parent.ownerDocument;\n if (parent != doc.body &&\n parent != doc.documentElement &&\n parentComputedStyle.overflow != 'visible') {\n parentRect = getBoundingClientRect(parent);\n }\n }\n\n // If either of the above conditionals set a new parentRect,\n // calculate new intersection data.\n if (parentRect) {\n intersectionRect = computeRectIntersection(parentRect, intersectionRect);\n }\n if (!intersectionRect) break;\n parent = parent && getParentNode(parent);\n }\n return intersectionRect;\n};\n\n\n/**\n * Returns the root rect after being expanded by the rootMargin value.\n * @return {ClientRect} The expanded root rect.\n * @private\n */\nIntersectionObserver.prototype._getRootRect = function() {\n var rootRect;\n if (this.root && !isDoc(this.root)) {\n rootRect = getBoundingClientRect(this.root);\n } else {\n // Use / instead of window since scroll bars affect size.\n var doc = isDoc(this.root) ? this.root : document;\n var html = doc.documentElement;\n var body = doc.body;\n rootRect = {\n top: 0,\n left: 0,\n right: html.clientWidth || body.clientWidth,\n width: html.clientWidth || body.clientWidth,\n bottom: html.clientHeight || body.clientHeight,\n height: html.clientHeight || body.clientHeight\n };\n }\n return this._expandRectByRootMargin(rootRect);\n};\n\n\n/**\n * Accepts a rect and expands it by the rootMargin value.\n * @param {DOMRect|ClientRect} rect The rect object to expand.\n * @return {ClientRect} The expanded rect.\n * @private\n */\nIntersectionObserver.prototype._expandRectByRootMargin = function(rect) {\n var margins = this._rootMarginValues.map(function(margin, i) {\n return margin.unit == 'px' ? margin.value :\n margin.value * (i % 2 ? rect.width : rect.height) / 100;\n });\n var newRect = {\n top: rect.top - margins[0],\n right: rect.right + margins[1],\n bottom: rect.bottom + margins[2],\n left: rect.left - margins[3]\n };\n newRect.width = newRect.right - newRect.left;\n newRect.height = newRect.bottom - newRect.top;\n\n return newRect;\n};\n\n\n/**\n * Accepts an old and new entry and returns true if at least one of the\n * threshold values has been crossed.\n * @param {?IntersectionObserverEntry} oldEntry The previous entry for a\n * particular target element or null if no previous entry exists.\n * @param {IntersectionObserverEntry} newEntry The current entry for a\n * particular target element.\n * @return {boolean} Returns true if a any threshold has been crossed.\n * @private\n */\nIntersectionObserver.prototype._hasCrossedThreshold =\n function(oldEntry, newEntry) {\n\n // To make comparing easier, an entry that has a ratio of 0\n // but does not actually intersect is given a value of -1\n var oldRatio = oldEntry && oldEntry.isIntersecting ?\n oldEntry.intersectionRatio || 0 : -1;\n var newRatio = newEntry.isIntersecting ?\n newEntry.intersectionRatio || 0 : -1;\n\n // Ignore unchanged ratios\n if (oldRatio === newRatio) return;\n\n for (var i = 0; i < this.thresholds.length; i++) {\n var threshold = this.thresholds[i];\n\n // Return true if an entry matches a threshold or if the new ratio\n // and the old ratio are on the opposite sides of a threshold.\n if (threshold == oldRatio || threshold == newRatio ||\n threshold < oldRatio !== threshold < newRatio) {\n return true;\n }\n }\n};\n\n\n/**\n * Returns whether or not the root element is an element and is in the DOM.\n * @return {boolean} True if the root element is an element and is in the DOM.\n * @private\n */\nIntersectionObserver.prototype._rootIsInDom = function() {\n return !this.root || containsDeep(document, this.root);\n};\n\n\n/**\n * Returns whether or not the target element is a child of root.\n * @param {Element} target The target element to check.\n * @return {boolean} True if the target element is a child of root.\n * @private\n */\nIntersectionObserver.prototype._rootContainsTarget = function(target) {\n var rootDoc =\n (this.root && (this.root.ownerDocument || this.root)) || document;\n return (\n containsDeep(rootDoc, target) &&\n (!this.root || rootDoc == target.ownerDocument)\n );\n};\n\n\n/**\n * Adds the instance to the global IntersectionObserver registry if it isn't\n * already present.\n * @private\n */\nIntersectionObserver.prototype._registerInstance = function() {\n if (registry.indexOf(this) < 0) {\n registry.push(this);\n }\n};\n\n\n/**\n * Removes the instance from the global IntersectionObserver registry.\n * @private\n */\nIntersectionObserver.prototype._unregisterInstance = function() {\n var index = registry.indexOf(this);\n if (index != -1) registry.splice(index, 1);\n};\n\n\n/**\n * Returns the result of the performance.now() method or null in browsers\n * that don't support the API.\n * @return {number} The elapsed time since the page was requested.\n */\nfunction now() {\n return window.performance && performance.now && performance.now();\n}\n\n\n/**\n * Throttles a function and delays its execution, so it's only called at most\n * once within a given time period.\n * @param {Function} fn The function to throttle.\n * @param {number} timeout The amount of time that must pass before the\n * function can be called again.\n * @return {Function} The throttled function.\n */\nfunction throttle(fn, timeout) {\n var timer = null;\n return function () {\n if (!timer) {\n timer = setTimeout(function() {\n fn();\n timer = null;\n }, timeout);\n }\n };\n}\n\n\n/**\n * Adds an event handler to a DOM node ensuring cross-browser compatibility.\n * @param {Node} node The DOM node to add the event handler to.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to add.\n * @param {boolean} opt_useCapture Optionally adds the even to the capture\n * phase. Note: this only works in modern browsers.\n */\nfunction addEvent(node, event, fn, opt_useCapture) {\n if (typeof node.addEventListener == 'function') {\n node.addEventListener(event, fn, opt_useCapture || false);\n }\n else if (typeof node.attachEvent == 'function') {\n node.attachEvent('on' + event, fn);\n }\n}\n\n\n/**\n * Removes a previously added event handler from a DOM node.\n * @param {Node} node The DOM node to remove the event handler from.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to remove.\n * @param {boolean} opt_useCapture If the event handler was added with this\n * flag set to true, it should be set to true here in order to remove it.\n */\nfunction removeEvent(node, event, fn, opt_useCapture) {\n if (typeof node.removeEventListener == 'function') {\n node.removeEventListener(event, fn, opt_useCapture || false);\n }\n else if (typeof node.detachEvent == 'function') {\n node.detachEvent('on' + event, fn);\n }\n}\n\n\n/**\n * Returns the intersection between two rect objects.\n * @param {Object} rect1 The first rect.\n * @param {Object} rect2 The second rect.\n * @return {?Object|?ClientRect} The intersection rect or undefined if no\n * intersection is found.\n */\nfunction computeRectIntersection(rect1, rect2) {\n var top = Math.max(rect1.top, rect2.top);\n var bottom = Math.min(rect1.bottom, rect2.bottom);\n var left = Math.max(rect1.left, rect2.left);\n var right = Math.min(rect1.right, rect2.right);\n var width = right - left;\n var height = bottom - top;\n\n return (width >= 0 && height >= 0) && {\n top: top,\n bottom: bottom,\n left: left,\n right: right,\n width: width,\n height: height\n } || null;\n}\n\n\n/**\n * Shims the native getBoundingClientRect for compatibility with older IE.\n * @param {Element} el The element whose bounding rect to get.\n * @return {DOMRect|ClientRect} The (possibly shimmed) rect of the element.\n */\nfunction getBoundingClientRect(el) {\n var rect;\n\n try {\n rect = el.getBoundingClientRect();\n } catch (err) {\n // Ignore Windows 7 IE11 \"Unspecified error\"\n // https://github.com/w3c/IntersectionObserver/pull/205\n }\n\n if (!rect) return getEmptyRect();\n\n // Older IE\n if (!(rect.width && rect.height)) {\n rect = {\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n }\n return rect;\n}\n\n\n/**\n * Returns an empty rect object. An empty rect is returned when an element\n * is not in the DOM.\n * @return {ClientRect} The empty rect.\n */\nfunction getEmptyRect() {\n return {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n width: 0,\n height: 0\n };\n}\n\n\n/**\n * Ensure that the result has all of the necessary fields of the DOMRect.\n * Specifically this ensures that `x` and `y` fields are set.\n *\n * @param {?DOMRect|?ClientRect} rect\n * @return {?DOMRect}\n */\nfunction ensureDOMRect(rect) {\n // A `DOMRect` object has `x` and `y` fields.\n if (!rect || 'x' in rect) {\n return rect;\n }\n // A IE's `ClientRect` type does not have `x` and `y`. The same is the case\n // for internally calculated Rect objects. For the purposes of\n // `IntersectionObserver`, it's sufficient to simply mirror `left` and `top`\n // for these fields.\n return {\n top: rect.top,\n y: rect.top,\n bottom: rect.bottom,\n left: rect.left,\n x: rect.left,\n right: rect.right,\n width: rect.width,\n height: rect.height\n };\n}\n\n\n/**\n * Inverts the intersection and bounding rect from the parent (frame) BCR to\n * the local BCR space.\n * @param {DOMRect|ClientRect} parentBoundingRect The parent's bound client rect.\n * @param {DOMRect|ClientRect} parentIntersectionRect The parent's own intersection rect.\n * @return {ClientRect} The local root bounding rect for the parent's children.\n */\nfunction convertFromParentRect(parentBoundingRect, parentIntersectionRect) {\n var top = parentIntersectionRect.top - parentBoundingRect.top;\n var left = parentIntersectionRect.left - parentBoundingRect.left;\n return {\n top: top,\n left: left,\n height: parentIntersectionRect.height,\n width: parentIntersectionRect.width,\n bottom: top + parentIntersectionRect.height,\n right: left + parentIntersectionRect.width\n };\n}\n\n\n/**\n * Checks to see if a parent element contains a child element (including inside\n * shadow DOM).\n * @param {Node} parent The parent element.\n * @param {Node} child The child element.\n * @return {boolean} True if the parent node contains the child node.\n */\nfunction containsDeep(parent, child) {\n var node = child;\n while (node) {\n if (node == parent) return true;\n\n node = getParentNode(node);\n }\n return false;\n}\n\n\n/**\n * Gets the parent node of an element or its host element if the parent node\n * is a shadow root.\n * @param {Node} node The node whose parent to get.\n * @return {Node|null} The parent node or null if no parent exists.\n */\nfunction getParentNode(node) {\n var parent = node.parentNode;\n\n if (node.nodeType == /* DOCUMENT */ 9 && node != document) {\n // If this node is a document node, look for the embedding frame.\n return getFrameElement(node);\n }\n\n // If the parent has element that is assigned through shadow root slot\n if (parent && parent.assignedSlot) {\n parent = parent.assignedSlot.parentNode\n }\n\n if (parent && parent.nodeType == 11 && parent.host) {\n // If the parent is a shadow root, return the host element.\n return parent.host;\n }\n\n return parent;\n}\n\n/**\n * Returns true if `node` is a Document.\n * @param {!Node} node\n * @returns {boolean}\n */\nfunction isDoc(node) {\n return node && node.nodeType === 9;\n}\n\n\n// Exposes the constructors globally.\nwindow.IntersectionObserver = IntersectionObserver;\nwindow.IntersectionObserverEntry = IntersectionObserverEntry;\n\n}());\n","//! moment.js\n//! version : 2.29.4\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\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 (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\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 for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\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 (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\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 return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (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 =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n 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 return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\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 if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\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 if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\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 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 (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // 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 this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\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 for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\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 (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\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 (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([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 = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\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 for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\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] =\n formatFunctions[format] || makeFormatFunction(format);\n\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 while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\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\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\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)\n ? output(number, withoutSuffix, string, isFuture)\n : 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'\n ? aliases[units] || aliases[units.toLowerCase()]\n : 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 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 for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\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()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\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 for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 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 =\n /[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\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : 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 }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\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 if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\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 (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // 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\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n '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)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).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 if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\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 }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\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);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\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 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 return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\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 return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : 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 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 }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\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(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // 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\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n 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 });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\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;\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 date = new Date(y + 400, m, d, h, M, s, ms);\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;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\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 }\n\n // start-of-first-week - start-of-year\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\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\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 }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\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, // 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 function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\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 }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // 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\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\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 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 return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n '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)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\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(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).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 if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\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 if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\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\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\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 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 }\n\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 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 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 return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\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 return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\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 return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : 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 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 }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\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\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // 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\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\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 });\n\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\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\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 for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\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 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 while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\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;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\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 return locales[name];\n }\n\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 function getSetGlobalLocale(key, values) {\n var data;\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(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\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 if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\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 if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\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 }\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 getSetGlobalLocale(name);\n\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 if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\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 locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\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 if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\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 if (locale) {\n return locale;\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 =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\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 var extendedIsoRegex =\n /^\\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 =\n /^\\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 = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(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 };\n\n // date from iso format\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 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 if (dateFormat == null) {\n config._isValid = false;\n return;\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 if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\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 config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\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 if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\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\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .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(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\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 }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n 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\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\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(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\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 if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\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 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);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\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 }\n\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 for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\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 }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // 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 weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\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\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\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 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 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 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 }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\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 if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\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\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\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 if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\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 if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\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(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\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\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\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 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 (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\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\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(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\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 function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\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 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\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n 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 this._days = +days + weeks * 7;\n // 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 this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\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 }\n\n // compare two arrays, return the number of differences\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 for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // 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 });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\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\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\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 }\n\n // HOOKS\n\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 hooks.updateOffset = function () {};\n\n // MOMENTS\n\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 function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\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\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 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 if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\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 =\n 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 }\n\n // ASP.NET json date format regex\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 =\n /^(-|\\+)?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 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 } 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 (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\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(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\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\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\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 }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\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 if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\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 }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\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 if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\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\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : '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 }\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 var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\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 if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\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 if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\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 if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\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\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\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 }\n // difference in months\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');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\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 var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : '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)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\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 function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\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\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .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 (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\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 function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\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;\n\n // actual modulo - handles negative numbers (for dates before 1970):\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 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 case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\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 hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\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 case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\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 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 [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\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\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\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\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 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 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 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 break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\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 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 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 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 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 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 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 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 for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\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 return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\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\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(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\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');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // 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\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\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 return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\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\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // 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\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\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 });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\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);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // 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\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 if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\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(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\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\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\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\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\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 for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\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 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 {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\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\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\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;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\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 var days,\n months,\n milliseconds = this._milliseconds;\n\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 switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\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 switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\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, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\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 =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\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 if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\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 }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\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\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\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\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // 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 });\n\n //! moment.js\n\n hooks.version = '2.29.4';\n\n setHookCallback(createLocal);\n\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;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n","/*!\n * tiny-cookie - A tiny cookie manipulation plugin\n * https://github.com/Alex1990/tiny-cookie\n * Under the MIT license | (c) Alex Chao\n */\n\n!(function(root, factory) {\n\n // Uses CommonJS, AMD or browser global to create a jQuery plugin.\n // See: https://github.com/umdjs/umd\n if (typeof define === 'function' && define.amd) {\n // Expose this plugin as an AMD module. Register an anonymous module.\n define(factory);\n } else if (typeof exports === 'object') {\n // Node/CommonJS module\n module.exports = factory();\n } else {\n // Browser globals \n root.Cookie = factory();\n }\n\n}(this, function() {\n\n 'use strict';\n\n // The public function which can get/set/remove cookie.\n function Cookie(key, value, opts) {\n if (value === void 0) {\n return Cookie.get(key);\n } else if (value === null) {\n Cookie.remove(key);\n } else {\n Cookie.set(key, value, opts);\n }\n }\n\n // Check if the cookie is enabled.\n Cookie.enabled = function() {\n var key = '__test_key';\n var enabled;\n\n document.cookie = key + '=1';\n enabled = !!document.cookie;\n\n if (enabled) Cookie.remove(key);\n\n return enabled;\n };\n\n // Get the cookie value by the key.\n Cookie.get = function(key, raw) {\n if (typeof key !== 'string' || !key) return null;\n\n key = '(?:^|; )' + escapeRe(key) + '(?:=([^;]*?))?(?:;|$)';\n\n var reKey = new RegExp(key);\n var res = reKey.exec(document.cookie);\n\n return res !== null ? (raw ? res[1] : decodeURIComponent(res[1])) : null;\n };\n\n // Get the cookie's value without decoding.\n Cookie.getRaw = function(key) {\n return Cookie.get(key, true);\n };\n\n // Set a cookie.\n Cookie.set = function(key, value, raw, opts) {\n if (raw !== true) {\n opts = raw;\n raw = false;\n }\n opts = opts ? convert(opts) : convert({});\n var cookie = key + '=' + (raw ? value : encodeURIComponent(value)) + opts;\n document.cookie = cookie;\n };\n\n // Set a cookie without encoding the value.\n Cookie.setRaw = function(key, value, opts) {\n Cookie.set(key, value, true, opts);\n };\n\n // Remove a cookie by the specified key.\n Cookie.remove = function(key) {\n Cookie.set(key, 'a', { expires: new Date() });\n };\n\n // Helper function\n // ---------------\n\n // Escape special characters.\n function escapeRe(str) {\n return str.replace(/[.*+?^$|[\\](){}\\\\-]/g, '\\\\$&');\n }\n\n // Convert an object to a cookie option string.\n function convert(opts) {\n var res = '';\n\n for (var p in opts) {\n if (opts.hasOwnProperty(p)) {\n\n if (p === 'expires') {\n var expires = opts[p];\n if (typeof expires !== 'object') {\n expires += typeof expires === 'number' ? 'D' : '';\n expires = computeExpires(expires);\n }\n opts[p] = expires.toUTCString();\n }\n\n if (p === 'secure') {\n if (opts[p]) {\n res += ';' + p;\n }\n\n continue;\n }\n\n res += ';' + p + '=' + opts[p];\n }\n }\n\n if (!opts.hasOwnProperty('path')) {\n res += ';path=/';\n }\n\n return res;\n }\n\n // Return a future date by the given string.\n function computeExpires(str) {\n var expires = new Date();\n var lastCh = str.charAt(str.length - 1);\n var value = parseInt(str, 10);\n\n switch (lastCh) {\n case 'Y': expires.setFullYear(expires.getFullYear() + value); break;\n case 'M': expires.setMonth(expires.getMonth() + value); break;\n case 'D': expires.setDate(expires.getDate() + value); break;\n case 'h': expires.setHours(expires.getHours() + value); break;\n case 'm': expires.setMinutes(expires.getMinutes() + value); break;\n case 's': expires.setSeconds(expires.getSeconds() + value); break;\n default: expires = new Date(str);\n }\n\n return expires;\n }\n\n return Cookie;\n\n}));\n","/*!\n * CookieConsent v2.9.2\n * https://www.github.com/orestbida/cookieconsent\n * Author Orest Bida\n * Released under the MIT License\n */\n(function(){\n 'use strict';\n /**\n * @param {HTMLElement} [root] - [optional] element where the cookieconsent will be appended\n * @returns {Object} cookieconsent object with API\n */\n var CookieConsent = function(root){\n\n /**\n * CHANGE THIS FLAG FALSE TO DISABLE console.log()\n */\n var ENABLE_LOGS = true;\n\n var _config = {\n 'mode': 'opt-in', // 'opt-in', 'opt-out'\n 'current_lang': 'en',\n 'auto_language': null,\n 'autorun': true, // run as soon as loaded\n 'page_scripts': true,\n 'hide_from_bots': true,\n 'cookie_name': 'cc_cookie',\n 'cookie_expiration': 182, // default: 6 months (in days)\n 'cookie_domain': location.hostname, // default: current domain\n 'cookie_path': '/',\n 'cookie_same_site': 'Lax',\n 'use_rfc_cookie': false,\n 'autoclear_cookies': true,\n 'revision': 0,\n 'script_selector': 'data-cookiecategory'\n };\n\n var\n /**\n * Object which holds the main methods/API (.show, .run, ...)\n */\n _cookieconsent = {},\n\n /**\n * Global user configuration object\n */\n user_config,\n\n /**\n * Internal state variables\n */\n saved_cookie_content = {},\n cookie_data = null,\n\n /**\n * @type {Date}\n */\n consent_date,\n\n /**\n * @type {Date}\n */\n last_consent_update,\n\n /**\n * @type {string}\n */\n consent_uuid,\n\n /**\n * @type {boolean}\n */\n invalid_consent = true,\n\n consent_modal_exists = false,\n consent_modal_visible = false,\n\n settings_modal_visible = false,\n\n /**\n * @type {HTMLElement[]}\n */\n focusable_edges,\n\n /**\n * @type {HTMLDivElement}\n */\n focused_modal,\n\n /**\n * @type {HTMLSpanElement}\n */\n cmFocusSpan,\n\n /**\n * @type {HTMLSpanElement}\n */\n smFocusSpan,\n\n all_table_headers,\n\n /**\n * @type {{}[]}\n */\n all_blocks,\n\n // Helper callback functions\n // (avoid calling \"user_config['onAccept']\" all the time)\n onAccept,\n onChange,\n onFirstAction,\n\n revision_enabled = false,\n valid_revision = true,\n revision_message = '',\n\n // State variables for the autoclearCookies function\n changed_settings = [],\n reload_page = false;\n\n /**\n * Accept type:\n * - \"all\"\n * - \"necessary\"\n * - \"custom\"\n * @type {string}\n */\n var accept_type;\n\n /**\n * Contains all accepted categories\n * @type {string[]}\n */\n var accepted_categories = [];\n\n /**\n * Contains all non-accepted (rejected) categories\n * @type {string[]}\n */\n var rejected_categories = [];\n\n /**\n * Contains all categories enabled by default\n * @type {string[]}\n */\n var default_enabled_categories = [];\n\n // Don't run plugin (to avoid indexing its text content) if bot detected\n var is_bot = false;\n\n /**\n * Save reference to the last focused element on the page\n * (used later to restore focus when both modals are closed)\n */\n var last_elem_before_modal;\n var last_consent_modal_btn_focus;\n\n /**\n * Both of the arrays below have the same structure:\n * [0] => holds reference to the FIRST focusable element inside modal\n * [1] => holds reference to the LAST focusable element inside modal\n */\n var consent_modal_focusable = [];\n var settings_modal_focusable = [];\n\n /**\n * Keep track of enabled/disabled categories\n * @type {boolean[]}\n */\n var toggle_states = [];\n\n /**\n * Stores all available categories\n * @type {string[]}\n */\n var all_categories = [];\n\n /**\n * Keep track of readonly toggles\n * @type {string[]}\n */\n var readonly_categories = [];\n\n /**\n * Pointers to main dom elements (to avoid retrieving them later using document.getElementById)\n */\n var\n /** @type {HTMLElement} */ html_dom = document.documentElement,\n /** @type {HTMLElement} */ main_container,\n /** @type {HTMLElement} */ all_modals_container,\n\n /** @type {HTMLElement} */ consent_modal,\n /** @type {HTMLElement} */ consent_modal_title,\n /** @type {HTMLElement} */ consent_modal_description,\n /** @type {HTMLElement} */ consent_primary_btn,\n /** @type {HTMLElement} */ consent_secondary_btn,\n /** @type {HTMLElement} */ consent_buttons,\n /** @type {HTMLElement} */ consent_modal_inner,\n\n /** @type {HTMLElement} */ settings_container,\n /** @type {HTMLElement} */ settings_inner,\n /** @type {HTMLElement} */ settings_title,\n /** @type {HTMLElement} */ settings_close_btn,\n /** @type {HTMLElement} */ settings_blocks,\n /** @type {HTMLElement} */ new_settings_blocks,\n /** @type {HTMLElement} */ settings_buttons,\n /** @type {HTMLElement} */ settings_save_btn,\n /** @type {HTMLElement} */ settings_accept_all_btn,\n /** @type {HTMLElement} */ settings_reject_all_btn;\n\n /**\n * Update config settings\n * @param {Object} user_config\n */\n var _setConfig = function(_user_config){\n\n /**\n * Make user configuration globally available\n */\n user_config = _user_config;\n\n _log(\"CookieConsent [CONFIG]: received_config_settings \", user_config);\n\n if(typeof user_config['cookie_expiration'] === \"number\")\n _config.cookie_expiration = user_config['cookie_expiration'];\n\n if(typeof user_config['cookie_necessary_only_expiration'] === \"number\")\n _config.cookie_necessary_only_expiration = user_config['cookie_necessary_only_expiration'];\n\n if(typeof user_config['autorun'] === \"boolean\")\n _config.autorun = user_config['autorun'];\n\n if(typeof user_config['cookie_domain'] === \"string\")\n _config.cookie_domain = user_config['cookie_domain'];\n\n if(typeof user_config['cookie_same_site'] === \"string\")\n _config.cookie_same_site = user_config['cookie_same_site'];\n\n if(typeof user_config['cookie_path'] === \"string\")\n _config.cookie_path = user_config['cookie_path'];\n\n if(typeof user_config['cookie_name'] === \"string\")\n _config.cookie_name = user_config['cookie_name'];\n\n if(typeof user_config['onAccept'] === \"function\")\n onAccept = user_config['onAccept'];\n\n if(typeof user_config['onFirstAction'] === \"function\")\n onFirstAction = user_config['onFirstAction'];\n\n if(typeof user_config['onChange'] === \"function\")\n onChange = user_config['onChange'];\n\n if(user_config['mode'] === 'opt-out')\n _config.mode = 'opt-out';\n\n if(typeof user_config['revision'] === \"number\"){\n user_config['revision'] > -1 && (_config.revision = user_config['revision']);\n revision_enabled = true;\n }\n\n if(typeof user_config['autoclear_cookies'] === \"boolean\")\n _config.autoclear_cookies = user_config['autoclear_cookies'];\n\n if(user_config['use_rfc_cookie'] === true)\n _config.use_rfc_cookie = true;\n\n if(typeof user_config['hide_from_bots'] === \"boolean\"){\n _config.hide_from_bots = user_config['hide_from_bots'];\n }\n\n if(_config.hide_from_bots){\n is_bot = navigator &&\n ((navigator.userAgent && /bot|crawl|spider|slurp|teoma/i.test(navigator.userAgent)) || navigator.webdriver);\n }\n\n _config.page_scripts = user_config['page_scripts'] === true;\n\n if (user_config['auto_language'] === 'browser' || user_config['auto_language'] === true) {\n _config.auto_language = 'browser';\n } else if (user_config['auto_language'] === 'document') {\n _config.auto_language = 'document';\n }\n\n _log(\"CookieConsent [LANG]: auto_language strategy is '\" + _config.auto_language + \"'\");\n\n _config.current_lang = _resolveCurrentLang(user_config.languages, user_config['current_lang']);\n }\n\n /**\n * Add an onClick listeners to all html elements with data-cc attribute\n */\n var _addDataButtonListeners = function(elem){\n\n var _a = 'accept-';\n\n var show_settings = _getElements('c-settings');\n var accept_all = _getElements(_a + 'all');\n var accept_necessary = _getElements(_a + 'necessary');\n var accept_custom_selection = _getElements(_a + 'custom');\n\n for(var i=0; i}\n */\n function _getElements(data_role){\n return (elem || document).querySelectorAll('[data-cc=\"' + data_role + '\"]');\n }\n\n /**\n * Helper function: accept and then hide modals\n * @param {PointerEvent} e source event\n * @param {string} [accept_type]\n */\n function _acceptAction(e, accept_type){\n e.preventDefault();\n _cookieconsent.accept(accept_type);\n _cookieconsent.hideSettings();\n _cookieconsent.hide();\n }\n }\n\n /**\n * Get a valid language (at least 1 must be defined)\n * @param {string} lang - desired language\n * @param {{}} all_languages - all defined languages\n * @returns {string} validated language\n */\n var _getValidatedLanguage = function(lang, all_languages){\n if(all_languages.hasOwnProperty(lang)){\n return lang;\n }else if(_getKeys(all_languages).length > 0){\n if(all_languages.hasOwnProperty(_config.current_lang)){\n return _config.current_lang ;\n }else{\n return _getKeys(all_languages)[0];\n }\n }\n }\n\n /**\n * Save reference to first and last focusable elements inside each modal\n * to prevent losing focus while navigating with TAB\n */\n var _getModalFocusableData = function(){\n\n /**\n * Note: any of the below focusable elements, which has the attribute tabindex=\"-1\" AND is either\n * the first or last element of the modal, won't receive focus during \"open/close\" modal\n */\n var allowed_focusable_types = ['[href]', 'button', 'input', 'details', '[tabindex=\"0\"]'];\n\n function _getAllFocusableElements(modal, _array){\n\n // ie might throw exception due to complex unsupported selector => a:not([tabindex=\"-1\"])\n try{\n var focusable_elems = modal.querySelectorAll(allowed_focusable_types.join(':not([tabindex=\"-1\"]), '));\n }catch(e){\n return modal.querySelectorAll(allowed_focusable_types.join(', '));\n }\n\n /**\n * Save first and last elements (used to lock/trap focus inside modal)\n */\n _array[0] = focusable_elems[0];\n _array[1] = focusable_elems[focusable_elems.length - 1];\n }\n\n /**\n * Get settings modal'S all focusable elements\n * Save first and last elements (used to lock/trap focus inside modal)\n */\n _getAllFocusableElements(settings_inner, settings_modal_focusable);\n\n /**\n * If consent modal exists, do the same\n */\n if(consent_modal_exists){\n _getAllFocusableElements(consent_modal, consent_modal_focusable);\n }\n }\n\n var _createConsentModal = function(lang){\n\n if(user_config['force_consent'] === true)\n _addClass(html_dom, 'force--consent');\n\n // Create modal if it doesn't exist\n if(!consent_modal){\n\n consent_modal = _createNode('div');\n var consent_modal_inner_inner = _createNode('div');\n var overlay = _createNode('div');\n\n consent_modal.id = 'cm';\n consent_modal_inner_inner.id = 'c-inr-i';\n overlay.id = 'cm-ov';\n\n consent_modal.tabIndex = -1;\n consent_modal.setAttribute('role', 'dialog');\n consent_modal.setAttribute('aria-modal', 'true');\n consent_modal.setAttribute('aria-hidden', 'false');\n consent_modal.setAttribute('aria-labelledby', 'c-ttl');\n consent_modal.setAttribute('aria-describedby', 'c-txt');\n\n // Append consent modal to main container\n all_modals_container.appendChild(consent_modal);\n all_modals_container.appendChild(overlay);\n\n /**\n * Make modal by default hidden to prevent weird page jumps/flashes (shown only once css is loaded)\n */\n consent_modal.style.visibility = overlay.style.visibility = \"hidden\";\n overlay.style.opacity = 0;\n }\n\n // Use insertAdjacentHTML instead of innerHTML\n var consent_modal_title_value = user_config.languages[lang]['consent_modal']['title'];\n\n // Add title (if valid)\n if(consent_modal_title_value){\n\n if(!consent_modal_title){\n consent_modal_title = _createNode('h2');\n consent_modal_title.id = 'c-ttl';\n consent_modal_inner_inner.appendChild(consent_modal_title);\n }\n\n consent_modal_title.innerHTML = consent_modal_title_value;\n }\n\n var description = user_config.languages[lang]['consent_modal']['description'];\n\n if(revision_enabled){\n if(!valid_revision){\n description = description.replace(\"{{revision_message}}\", revision_message || user_config.languages[lang]['consent_modal']['revision_message'] || \"\");\n }else{\n description = description.replace(\"{{revision_message}}\", \"\");\n }\n }\n\n if(!consent_modal_description){\n consent_modal_description = _createNode('div');\n consent_modal_description.id = 'c-txt';\n consent_modal_inner_inner.appendChild(consent_modal_description);\n }\n\n // Set description content\n consent_modal_description.innerHTML = description;\n\n var primary_btn_data = user_config.languages[lang]['consent_modal']['primary_btn'], // accept current selection\n secondary_btn_data = user_config.languages[lang]['consent_modal']['secondary_btn'];\n\n // Add primary button if not falsy\n if(primary_btn_data){\n\n if(!consent_primary_btn){\n consent_primary_btn = _createNode('button');\n consent_primary_btn.id = 'c-p-bn';\n consent_primary_btn.className = \"c-bn\";\n consent_primary_btn.appendChild(generateFocusSpan(1))\n\n var _accept_type;\n\n if(primary_btn_data['role'] === 'accept_all')\n _accept_type = 'all'\n\n _addEvent(consent_primary_btn, \"click\", function(){\n _cookieconsent.hide();\n _log(\"CookieConsent [ACCEPT]: cookie_consent was accepted!\");\n _cookieconsent.accept(_accept_type);\n });\n }\n\n consent_primary_btn.firstElementChild.innerHTML = user_config.languages[lang]['consent_modal']['primary_btn']['text'];\n }\n\n // Add secondary button if not falsy\n if(secondary_btn_data){\n\n if(!consent_secondary_btn){\n consent_secondary_btn = _createNode('button');\n consent_secondary_btn.id = 'c-s-bn';\n consent_secondary_btn.className = \"c-bn c_link\";\n consent_secondary_btn.appendChild(generateFocusSpan(1))\n\n if(secondary_btn_data['role'] === 'accept_necessary'){\n _addEvent(consent_secondary_btn, 'click', function(){\n _cookieconsent.hide();\n _cookieconsent.accept([]); // accept necessary only\n });\n }else{\n _addEvent(consent_secondary_btn, 'click', function(){\n _cookieconsent.showSettings(0);\n });\n }\n }\n\n consent_secondary_btn.firstElementChild.innerHTML = user_config.languages[lang]['consent_modal']['secondary_btn']['text'];\n }\n\n // Swap buttons\n var gui_options_data = user_config['gui_options'];\n\n if(!consent_modal_inner){\n consent_modal_inner = _createNode('div');\n consent_modal_inner.id = 'c-inr';\n\n consent_modal_inner.appendChild(consent_modal_inner_inner);\n }\n\n if(!consent_buttons){\n consent_buttons = _createNode('div');\n consent_buttons.id = \"c-bns\";\n\n if(gui_options_data && gui_options_data['consent_modal'] && gui_options_data['consent_modal']['swap_buttons'] === true){\n secondary_btn_data && consent_buttons.appendChild(consent_secondary_btn);\n primary_btn_data && consent_buttons.appendChild(consent_primary_btn);\n consent_buttons.className = 'swap';\n }else{\n primary_btn_data && consent_buttons.appendChild(consent_primary_btn);\n secondary_btn_data && consent_buttons.appendChild(consent_secondary_btn);\n }\n\n (primary_btn_data || secondary_btn_data ) && consent_modal_inner.appendChild(consent_buttons);\n consent_modal.appendChild(consent_modal_inner);\n }\n\n consent_modal_exists = true;\n\n _addDataButtonListeners(consent_modal_inner);\n }\n\n var _createSettingsModal = function(lang){\n\n /**\n * Create all consent_modal elements\n */\n if(!settings_container){\n settings_container = _createNode('div');\n settings_container.tabIndex = -1;\n var settings_container_valign = _createNode('div');\n var settings = _createNode('div');\n var settings_container_inner = _createNode('div');\n settings_inner = _createNode('div');\n settings_title = _createNode('h2');\n var settings_header = _createNode('div');\n settings_close_btn = _createNode('button');\n settings_close_btn.appendChild(generateFocusSpan(2));\n var settings_close_btn_container = _createNode('div');\n settings_blocks = _createNode('div');\n var overlay = _createNode('div');\n\n var clickedInsideModal = false;\n\n _addEvent(settings_container, 'mouseup', function(e){\n\n /**\n * Hide modal if mouse pointer is outside modal\n */\n if(\n settings_modal_visible\n && !clickedInsideModal\n && !settings_inner.contains(e.target)\n ){\n _cookieconsent.hideSettings();\n }\n\n });\n\n _addEvent(settings_container, 'mousedown', function(e){\n\n /**\n * Check if click started inside modal or not\n */\n if(settings_modal_visible){\n clickedInsideModal = settings_inner.contains(e.target);\n }\n\n });\n\n /**\n * Set ids\n */\n settings_container.id = 's-cnt';\n settings_container_valign.id = \"c-vln\";\n settings_container_inner.id = \"c-s-in\";\n settings.id = \"cs\";\n settings_title.id = 's-ttl';\n settings_inner.id = 's-inr';\n settings_header.id = \"s-hdr\";\n settings_blocks.id = 's-bl';\n settings_close_btn.id = 's-c-bn';\n overlay.id = 'cs-ov';\n settings_close_btn_container.id = 's-c-bnc';\n settings_close_btn.className = 'c-bn';\n\n settings_container.setAttribute('role', 'dialog');\n settings_container.setAttribute('aria-modal', 'true');\n settings_container.setAttribute('aria-hidden', 'true');\n settings_container.setAttribute('aria-labelledby', 's-ttl');\n settings_container.style.visibility = overlay.style.visibility = \"hidden\";\n overlay.style.opacity = 0;\n\n settings_close_btn_container.appendChild(settings_close_btn);\n\n // If 'esc' key is pressed inside settings_container div => hide settings\n _addEvent(document, 'keydown', function(evt){\n if (evt.keyCode === 27 && settings_modal_visible) {\n _cookieconsent.hideSettings();\n }\n }, true);\n\n _addEvent(settings_close_btn, 'click', function(){\n _cookieconsent.hideSettings();\n });\n }else{\n new_settings_blocks = _createNode('div');\n new_settings_blocks.id = 's-bl';\n }\n\n var settings_modal_config = user_config.languages[lang]['settings_modal'];\n\n // Add label to close button\n settings_close_btn.setAttribute('aria-label', settings_modal_config['close_btn_label'] || 'Close');\n\n all_blocks = settings_modal_config['blocks'];\n all_table_headers = settings_modal_config['cookie_table_headers'];\n var table_caption = settings_modal_config['cookie_table_caption'];\n\n var n_blocks = all_blocks.length;\n\n // Set settings modal title\n settings_title.innerHTML = settings_modal_config['title'];\n\n // Create settings modal content (blocks)\n for(var i=0; i retrieve category states from cookie\n * Otherwise use states defined in the user_config. object\n */\n if(!invalid_consent){\n if(_inArray(saved_cookie_content['categories'], cookie_category) > -1){\n block_switch.checked = true;\n !new_settings_blocks && toggle_states.push(true);\n }else{\n !new_settings_blocks && toggle_states.push(false);\n }\n }else if(toggle_data['enabled']){\n block_switch.checked = true;\n !new_settings_blocks && toggle_states.push(true);\n\n /**\n * Keep track of categories enabled by default (useful when mode=='opt-out')\n */\n if(toggle_data['enabled'])\n !new_settings_blocks && default_enabled_categories.push(cookie_category);\n\n }else{\n !new_settings_blocks && toggle_states.push(false);\n }\n\n !new_settings_blocks && all_categories.push(cookie_category);\n\n /**\n * Set toggle as readonly if true (disable checkbox)\n */\n if(toggle_data['readonly']){\n block_switch.disabled = true;\n _addClass(block_switch_span, 'c-ro');\n !new_settings_blocks && readonly_categories.push(cookie_category);\n }\n\n _addClass(block_table_container, 'b-acc');\n _addClass(block_title_container, 'b-bn');\n _addClass(block_section, 'b-ex');\n\n block_table_container.id = accordion_id;\n block_table_container.setAttribute('aria-hidden', 'true');\n\n block_switch_label.appendChild(block_switch);\n block_switch_label.appendChild(block_switch_span);\n block_switch_label.appendChild(label_text_span);\n block_title_container.appendChild(block_switch_label);\n\n /**\n * On button click handle the following :=> aria-expanded, aria-hidden and act class for current block\n */\n isExpandable && (function(accordion, block_section, btn){\n _addEvent(block_title_btn, 'click', function(){\n if(!_hasClass(block_section, 'act')){\n _addClass(block_section, 'act');\n btn.setAttribute('aria-expanded', 'true');\n accordion.setAttribute('aria-hidden', 'false');\n }else{\n _removeClass(block_section, 'act');\n btn.setAttribute('aria-expanded', 'false');\n accordion.setAttribute('aria-hidden', 'true');\n }\n }, false);\n })(block_table_container, block_section, block_title_btn);\n\n }else{\n /**\n * If block is not a button (no toggle defined),\n * create a simple div instead\n */\n if(title_data){\n var block_title = _createNode('div');\n block_title.className = 'b-tl';\n block_title.setAttribute('role', 'heading');\n block_title.setAttribute('aria-level', '3');\n block_title.insertAdjacentHTML('beforeend', title_data);\n block_title_container.appendChild(block_title);\n }\n }\n\n title_data && block_section.appendChild(block_title_container);\n description_data && block_table_container.appendChild(block_desc);\n\n // if cookie table found, generate table for this block\n if(!remove_cookie_tables && typeof cookie_table_data !== 'undefined'){\n var tr_tmp_fragment = document.createDocumentFragment();\n\n /**\n * Use custom table headers\n */\n for(var p=0; p ~faster value retrieval)\n var curr_block = all_blocks[i];\n\n // If current block has a toggle for opt in/out\n if(curr_block.hasOwnProperty('toggle')){\n\n // if current block has a cookie table, an off toggle,\n // and its preferences were just changed => delete cookies\n var category_just_disabled = _inArray(changed_settings, curr_block['toggle']['value']) > -1;\n if(\n !toggle_states[++count] &&\n curr_block.hasOwnProperty('cookie_table') &&\n (clearOnFirstAction || category_just_disabled)\n ){\n var curr_cookie_table = curr_block['cookie_table'];\n\n // Get first property name\n var ckey = _getKeys(all_table_headers[0])[0];\n\n // Get number of cookies defined in cookie_table\n var clen = curr_cookie_table.length;\n\n // set \"reload_page\" to true if reload=on_disable\n if(curr_block['toggle']['reload'] === 'on_disable')\n category_just_disabled && (reload_page = true);\n\n // for each row defined in the cookie table\n for(var j=0; j filter cookie array\n if(is_regex){\n for(var n=0; n -1) found_cookies.push(all_cookies_array[found_index]);\n }\n\n _log(\"CookieConsent [AUTOCLEAR]: search cookie: '\" + curr_cookie_name + \"', found:\", found_cookies);\n\n // If cookie exists -> delete it\n if(found_cookies.length > 0){\n _eraseCookies(found_cookies, curr_cookie_path, curr_domains);\n curr_block['toggle']['reload'] === 'on_clear' && (reload_page = true);\n }\n }\n }\n }\n }\n }\n\n /**\n * Set toggles/checkboxes based on accepted categories and save cookie\n * @param {string[]} accepted_categories - Array of categories to accept\n */\n var _saveCookiePreferences = function(accepted_categories){\n\n changed_settings = [];\n\n // Retrieve all toggle/checkbox values\n var category_toggles = settings_container.querySelectorAll('.c-tgl') || [];\n\n // If there are opt in/out toggles ...\n if(category_toggles.length > 0){\n\n for(var i=0; i 0)\n _autoclearCookies();\n\n if(!consent_date) consent_date = new Date();\n if(!consent_uuid) consent_uuid = _uuidv4();\n\n saved_cookie_content = {\n \"categories\": accepted_categories,\n \"level\": accepted_categories, // Copy of the `categories` property for compatibility purposes with version v2.8.0 and below.\n \"revision\": _config.revision,\n \"data\": cookie_data,\n \"rfc_cookie\": _config.use_rfc_cookie,\n \"consent_date\": consent_date.toISOString(),\n \"consent_uuid\": consent_uuid\n }\n\n // save cookie with preferences 'categories' (only if never accepted or settings were updated)\n if(invalid_consent || changed_settings.length > 0){\n valid_revision = true;\n\n /**\n * Update \"last_consent_update\" only if it is invalid (after t)\n */\n if(!last_consent_update)\n last_consent_update = consent_date;\n else\n last_consent_update = new Date();\n\n saved_cookie_content['last_consent_update'] = last_consent_update.toISOString();\n\n /**\n * Update accept type\n */\n accept_type = _getAcceptType(_getCurrentCategoriesState());\n\n _setCookie(_config.cookie_name, JSON.stringify(saved_cookie_content));\n _manageExistingScripts();\n }\n\n if(invalid_consent){\n\n /**\n * Delete unused/\"zombie\" cookies if consent is not valid (not yet expressed or cookie has expired)\n */\n if(_config.autoclear_cookies)\n _autoclearCookies(true);\n\n if(typeof onFirstAction === 'function')\n onFirstAction(_cookieconsent.getUserPreferences(), saved_cookie_content);\n\n if(typeof onAccept === 'function')\n onAccept(saved_cookie_content);\n\n /**\n * Set consent as valid\n */\n invalid_consent = false;\n\n if(_config.mode === 'opt-in') return;\n }\n\n // fire onChange only if settings were changed\n if(typeof onChange === \"function\" && changed_settings.length > 0)\n onChange(saved_cookie_content, changed_settings);\n\n /**\n * reload page if needed\n */\n if(reload_page)\n location.reload();\n }\n\n /**\n * Returns index of found element inside array, otherwise -1\n * @param {Array} arr\n * @param {Object} value\n * @returns {number}\n */\n var _inArray = function(arr, value){\n return arr.indexOf(value);\n }\n\n /**\n * Helper function which prints info (console.log())\n * @param {Object} print_msg\n * @param {Object} [optional_param]\n */\n var _log = function(print_msg, optional_param, error){\n ENABLE_LOGS && (!error ? console.log(print_msg, optional_param !== undefined ? optional_param : ' ') : console.error(print_msg, optional_param || \"\"));\n }\n\n /**\n * Helper function which creates an HTMLElement object based on 'type' and returns it.\n * @param {string} type\n * @returns {HTMLElement}\n */\n var _createNode = function(type){\n var el = document.createElement(type);\n if(type === 'button'){\n el.setAttribute('type', type);\n }\n return el;\n }\n\n /**\n * Generate RFC4122-compliant UUIDs.\n * https://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid?page=1&tab=votes#tab-top\n * @returns {string}\n */\n var _uuidv4 = function(){\n return ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, function(c){\n try{\n return (c ^ (window.crypto || window.msCrypto).getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)\n }catch(e){\n return '';\n }\n });\n }\n\n /**\n * Resolve which language should be used.\n *\n * @param {Object} languages Object with language translations\n * @param {string} [requested_language] Language specified by given configuration parameters\n * @returns {string}\n */\n var _resolveCurrentLang = function (languages, requested_language) {\n\n if (_config.auto_language === 'browser') {\n return _getValidatedLanguage(_getBrowserLang(), languages);\n } else if (_config.auto_language === 'document') {\n return _getValidatedLanguage(document.documentElement.lang, languages);\n } else {\n if (typeof requested_language === 'string') {\n return _config.current_lang = _getValidatedLanguage(requested_language, languages);\n }\n }\n\n _log(\"CookieConsent [LANG]: setting current_lang = '\" + _config.current_lang + \"'\");\n return _config.current_lang; // otherwise return default\n }\n\n /**\n * Get current client's browser language\n * @returns {string}\n */\n var _getBrowserLang = function(){\n var browser_lang = navigator.language || navigator.browserLanguage;\n browser_lang.length > 2 && (browser_lang = browser_lang[0]+browser_lang[1]);\n _log(\"CookieConsent [LANG]: detected_browser_lang = '\"+ browser_lang + \"'\");\n return browser_lang.toLowerCase()\n }\n\n /**\n * Trap focus inside modal and focus the first\n * focusable element of current active modal\n */\n var _handleFocusTrap = function(){\n\n _addEvent(document, 'keydown', function(e){\n\n // If is tab key => ok\n if(e.key !== 'Tab')\n return;\n\n if(!consent_modal_visible && !settings_modal_visible)\n return;\n\n // If there is any modal to focus\n if(focusable_edges){\n\n var activeElement = getActiveElement();\n\n // If reached natural end of the tab sequence => restart\n // If modal is not focused => focus modal\n if(e.shiftKey){\n if (activeElement === focusable_edges[0] || !focused_modal.contains(activeElement)) {\n e.preventDefault();\n setFocus(focusable_edges[1])\n }\n }else{\n if (activeElement === focusable_edges[1] || !focused_modal.contains(activeElement)) {\n e.preventDefault();\n setFocus(focusable_edges[0]);\n }\n }\n }\n });\n\n }\n\n /**\n * Manage each modal's layout\n * @param {Object} gui_options\n */\n var _guiManager = function(gui_options, only_consent_modal){\n\n // If gui_options is not object => exit\n if(typeof gui_options !== 'object') return;\n\n var consent_modal_options = gui_options['consent_modal'];\n var settings_modal_options = gui_options['settings_modal'];\n\n /**\n * Helper function which adds layout and\n * position classes to given modal\n *\n * @param {HTMLElement} modal\n * @param {string[]} allowed_layouts\n * @param {string[]} allowed_positions\n * @param {string} layout\n * @param {string[]} position\n */\n function _setLayout(modal, allowed_layouts, allowed_positions, allowed_transitions, layout, position, transition){\n position = (position && position.split(\" \")) || [];\n\n // Check if specified layout is valid\n if(_inArray(allowed_layouts, layout) > -1){\n\n // Add layout classes\n _addClass(modal, layout);\n\n // Add position class (if specified)\n if(!(layout === 'bar' && position[0] === 'middle') && _inArray(allowed_positions, position[0]) > -1){\n for(var i=0; i -1) && _addClass(modal, transition);\n }\n\n if(consent_modal_exists && consent_modal_options){\n _setLayout(\n consent_modal,\n ['box', 'bar', 'cloud'],\n ['top', 'middle', 'bottom'],\n ['zoom', 'slide'],\n consent_modal_options['layout'],\n consent_modal_options['position'],\n consent_modal_options['transition']\n );\n }\n\n if(!only_consent_modal && settings_modal_options){\n _setLayout(\n settings_container,\n ['bar'],\n ['left', 'right'],\n ['zoom', 'slide'],\n settings_modal_options['layout'],\n settings_modal_options['position'],\n settings_modal_options['transition']\n );\n }\n }\n\n /**\n * Returns true if cookie category is accepted by the user\n * @param {string} cookie_category\n * @returns {boolean}\n */\n _cookieconsent.allowedCategory = function(cookie_category){\n\n if(!invalid_consent || _config.mode === 'opt-in')\n var allowed_categories = JSON.parse(_getCookie(_config.cookie_name, 'one', true) || '{}')['categories'] || []\n else // mode is 'opt-out'\n var allowed_categories = default_enabled_categories;\n\n return _inArray(allowed_categories, cookie_category) > -1;\n }\n\n /**\n * \"Init\" method. Will run once and only if modals do not exist\n */\n _cookieconsent.run = function(user_config){\n if(!document.getElementById('cc_div')){\n\n // configure all parameters\n _setConfig(user_config);\n\n // if is bot, don't run plugin\n if(is_bot) return;\n\n // Retrieve cookie value (if set)\n saved_cookie_content = JSON.parse(_getCookie(_config.cookie_name, 'one', true) || \"{}\");\n\n // Retrieve \"consent_uuid\"\n consent_uuid = saved_cookie_content['consent_uuid'];\n\n // If \"consent_uuid\" is present => assume that consent was previously given\n var cookie_consent_accepted = consent_uuid !== undefined;\n\n // Retrieve \"consent_date\"\n consent_date = saved_cookie_content['consent_date'];\n consent_date && (consent_date = new Date(consent_date));\n\n // Retrieve \"last_consent_update\"\n last_consent_update = saved_cookie_content['last_consent_update'];\n last_consent_update && (last_consent_update = new Date(last_consent_update));\n\n // Retrieve \"data\"\n cookie_data = saved_cookie_content['data'] !== undefined ? saved_cookie_content['data'] : null;\n\n // If revision is enabled and current value !== saved value inside the cookie => revision is not valid\n if(revision_enabled && saved_cookie_content['revision'] !== _config.revision){\n valid_revision = false;\n }\n\n // If consent is not valid => create consent modal\n consent_modal_exists = invalid_consent = (!cookie_consent_accepted || !valid_revision || !consent_date || !last_consent_update || !consent_uuid);\n\n // Generate cookie-settings dom (& consent modal)\n _createCookieConsentHTML();\n\n _getModalFocusableData();\n _guiManager(user_config['gui_options']);\n _addDataButtonListeners();\n\n if(_config.autorun && consent_modal_exists){\n _cookieconsent.show(user_config['delay'] || 0);\n }\n\n // Add class to enable animations/transitions\n setTimeout(function(){_addClass(main_container, 'c--anim');}, 30);\n\n // Accessibility :=> if tab pressed => trap focus inside modal\n setTimeout(function(){_handleFocusTrap();}, 100);\n\n // If consent is valid\n if(!invalid_consent){\n var rfc_prop_exists = typeof saved_cookie_content['rfc_cookie'] === \"boolean\";\n\n /*\n * Convert cookie to rfc format (if `use_rfc_cookie` is enabled)\n */\n if(!rfc_prop_exists || (rfc_prop_exists && saved_cookie_content['rfc_cookie'] !== _config.use_rfc_cookie)){\n saved_cookie_content['rfc_cookie'] = _config.use_rfc_cookie;\n _setCookie(_config.cookie_name, JSON.stringify(saved_cookie_content));\n }\n\n /**\n * Update accept type\n */\n accept_type = _getAcceptType(_getCurrentCategoriesState());\n\n _manageExistingScripts();\n\n if(typeof onAccept === 'function')\n onAccept(saved_cookie_content);\n\n _log(\"CookieConsent [NOTICE]: consent already given!\", saved_cookie_content);\n\n }else{\n if(_config.mode === 'opt-out'){\n _log(\"CookieConsent [CONFIG] mode='\" + _config.mode + \"', default enabled categories:\", default_enabled_categories);\n _manageExistingScripts();\n }\n _log(\"CookieConsent [NOTICE]: ask for consent!\");\n }\n }else{\n _log(\"CookieConsent [NOTICE]: cookie consent already attached to body!\");\n }\n }\n\n /**\n * Handles the activation logic of script elements\n * based on enabled categories\n */\n var _manageExistingScripts = function(){\n\n if(!_config.page_scripts) return;\n\n /**\n * @type {string[]}\n */\n var enabled_categories = saved_cookie_content['categories'] || [];\n\n if(invalid_consent && _config.mode === 'opt-out')\n enabled_categories = default_enabled_categories;\n\n // get all the scripts with \"cookie-category\" attribute\n var scripts = document.querySelectorAll('script[' + _config.script_selector + ']');\n\n /**\n * Load scripts (sequentially), using a recursive function\n * which loops through the scripts array\n * @param {Element[]} scripts scripts to load\n * @param {number} index current script to load\n */\n var _loadScripts = function(scripts, index){\n if(index < scripts.length){\n\n var curr_script = scripts[index];\n var curr_script_category = curr_script.getAttribute(_config.script_selector);\n\n /**\n * If current script's category is on the array of categories\n * accepted by the user => load script\n */\n if(_inArray(enabled_categories, curr_script_category) > -1){\n\n curr_script.type = curr_script.getAttribute('data-type') || 'text/javascript';\n curr_script.removeAttribute(_config.script_selector);\n\n // get current script data-src\n var src = curr_script.getAttribute('data-src');\n\n // some scripts (like ga) might throw warning if data-src is present\n src && curr_script.removeAttribute('data-src');\n\n // create fresh script (with the same code)\n var fresh_script = _createNode('script');\n fresh_script.textContent = curr_script.innerHTML;\n\n // Copy attributes over to the new \"revived\" script\n (function(destination, source){\n var attributes = source.attributes;\n var len = attributes.length;\n for(var i=0; i the next script will not be loaded\n // until the current's script onload event triggers\n if(fresh_script.readyState) { // only required for IE <9\n fresh_script.onreadystatechange = function() {\n if (fresh_script.readyState === \"loaded\" || fresh_script.readyState === \"complete\" ) {\n fresh_script.onreadystatechange = null;\n _loadScripts(scripts, ++index);\n }\n };\n }else{ // others\n fresh_script.onload = function(){\n fresh_script.onload = null;\n _loadScripts(scripts, ++index);\n };\n }\n }\n\n // Replace current \"sleeping\" script with the new \"revived\" one\n curr_script.parentNode.replaceChild(fresh_script, curr_script);\n\n /**\n * If we managed to get here and scr is still set, it means that\n * the script is loading/loaded sequentially so don't go any further\n */\n if(src) return;\n }\n\n // Go to next script right away\n _loadScripts(scripts, ++index);\n }\n }\n\n _loadScripts(scripts, 0);\n }\n\n /**\n * Save custom data inside cookie\n * @param {object|string} new_data\n * @param {string} [mode]\n * @returns {boolean}\n */\n var _setCookieData = function(new_data, mode){\n\n var set = false;\n /**\n * If mode is 'update':\n * add/update only the specified props.\n */\n if(mode === 'update'){\n cookie_data = _cookieconsent.get('data');\n var same_type = typeof cookie_data === typeof new_data;\n\n if(same_type && typeof cookie_data === \"object\"){\n !cookie_data && (cookie_data = {});\n\n for(var prop in new_data){\n if(cookie_data[prop] !== new_data[prop]){\n cookie_data[prop] = new_data[prop]\n set = true;\n }\n }\n }else if((same_type || !cookie_data) && cookie_data !== new_data){\n cookie_data = new_data;\n set = true;\n }\n }else{\n cookie_data = new_data;\n set = true;\n }\n\n if(set){\n saved_cookie_content['data'] = cookie_data;\n _setCookie(_config.cookie_name, JSON.stringify(saved_cookie_content));\n }\n\n return set;\n }\n\n /**\n * Helper method to set a variety of fields\n * @param {string} field\n * @param {object} data\n * @returns {boolean}\n */\n _cookieconsent.set = function(field, data){\n switch(field){\n case 'data': return _setCookieData(data['value'], data['mode']);\n default: return false;\n }\n }\n\n /**\n * Retrieve data from existing cookie\n * @param {string} field\n * @param {string} [cookie_name]\n * @returns {any}\n */\n _cookieconsent.get = function(field, cookie_name){\n var cookie = JSON.parse(_getCookie(cookie_name || _config.cookie_name, 'one', true) || \"{}\");\n\n return cookie[field];\n }\n\n /**\n * Read current configuration value\n * @returns {any}\n */\n _cookieconsent.getConfig = function(field){\n return _config[field] || user_config[field];\n }\n\n /**\n * Obtain accepted and rejected categories\n * @returns {{accepted: string[], rejected: string[]}}\n */\n var _getCurrentCategoriesState = function(){\n\n // get accepted categories\n accepted_categories = saved_cookie_content['categories'] || [];\n\n // calculate rejected categories (all_categories - accepted_categories)\n rejected_categories = all_categories.filter(function(category){\n return (_inArray(accepted_categories, category) === -1);\n });\n\n return {\n accepted: accepted_categories,\n rejected: rejected_categories\n }\n }\n\n /**\n * Calculate \"accept type\" given current categories state\n * @param {{accepted: string[], rejected: string[]}} currentCategoriesState\n * @returns {string}\n */\n var _getAcceptType = function(currentCategoriesState){\n\n var type = 'custom';\n\n // number of categories marked as necessary/readonly\n var necessary_categories_length = readonly_categories.length;\n\n // calculate accept type based on accepted/rejected categories\n if(currentCategoriesState.accepted.length === all_categories.length)\n type = 'all';\n else if(currentCategoriesState.accepted.length === necessary_categories_length)\n type = 'necessary'\n\n return type;\n }\n\n /**\n * @typedef {object} userPreferences\n * @property {string} accept_type\n * @property {string[]} accepted_categories\n * @property {string[]} rejected_categories\n */\n\n /**\n * Retrieve current user preferences (summary)\n * @returns {userPreferences}\n */\n _cookieconsent.getUserPreferences = function(){\n var currentCategoriesState = _getCurrentCategoriesState();\n var accept_type = _getAcceptType(currentCategoriesState);\n\n return {\n 'accept_type': accept_type,\n 'accepted_categories': currentCategoriesState.accepted,\n 'rejected_categories': currentCategoriesState.rejected\n }\n }\n\n /**\n * Function which will run after script load\n * @callback scriptLoaded\n */\n\n /**\n * Dynamically load script (append to head)\n * @param {string} src\n * @param {scriptLoaded} callback\n * @param {object[]} [attrs] Custom attributes\n */\n _cookieconsent.loadScript = function(src, callback, attrs){\n\n var function_defined = typeof callback === 'function';\n\n // Load script only if not already loaded\n if(!document.querySelector('script[src=\"' + src + '\"]')){\n\n var script = _createNode('script');\n\n // if an array is provided => add custom attributes\n if(attrs && attrs.length > 0){\n for(var i=0; i run callback onload\n if(function_defined){\n script.onload = callback;\n }\n\n script.src = src;\n\n /**\n * Append script to head\n */\n document.head.appendChild(script);\n }else{\n function_defined && callback();\n }\n }\n\n /**\n * Manage dynamically loaded scripts: https://github.com/orestbida/cookieconsent/issues/101\n * If plugin has already run, call this method to enable\n * the newly added scripts based on currently selected preferences\n */\n _cookieconsent.updateScripts = function(){\n _manageExistingScripts();\n }\n\n /**\n * Show cookie consent modal (with delay parameter)\n * @param {number} [delay]\n * @param {boolean} [create_modal] create modal if it doesn't exist\n */\n _cookieconsent.show = function(delay, create_modal){\n\n if(create_modal === true)\n _createConsentModal(_config.current_lang);\n\n if(!consent_modal_exists)\n return;\n\n last_elem_before_modal = getActiveElement();\n focusable_edges = consent_modal_focusable;\n focused_modal = consent_modal;\n\n consent_modal_visible = true;\n consent_modal.removeAttribute('aria-hidden');\n\n setTimeout(function() {\n _addClass(html_dom, \"show--consent\");\n _log(\"CookieConsent [MODAL]: show consent_modal\");\n }, delay > 0 ? delay : (create_modal ? 30 : 0));\n\n }\n\n /**\n * Hide consent modal\n */\n _cookieconsent.hide = function(){\n\n if(!consent_modal_exists)\n return;\n\n consent_modal_visible = false;\n\n setFocus(cmFocusSpan);\n\n consent_modal.setAttribute('aria-hidden', 'true');\n _removeClass(html_dom, \"show--consent\");\n\n setFocus(last_elem_before_modal);\n last_elem_before_modal = null;\n\n _log(\"CookieConsent [MODAL]: hide\");\n }\n\n /**\n * Show settings modal (with optional delay)\n * @param {number} delay\n */\n _cookieconsent.showSettings = function(delay){\n\n settings_modal_visible = true;\n settings_container.removeAttribute('aria-hidden');\n\n if(consent_modal_visible){\n last_consent_modal_btn_focus = getActiveElement();\n }else{\n last_elem_before_modal = getActiveElement();\n }\n\n focused_modal = settings_container;\n focusable_edges = settings_modal_focusable;\n\n setTimeout(function() {\n _addClass(html_dom, \"show--settings\");\n _log(\"CookieConsent [SETTINGS]: show settings_modal\");\n }, delay > 0 ? delay : 0);\n }\n\n /**\n * Hide settings modal\n */\n _cookieconsent.hideSettings = function(){\n\n settings_modal_visible = false;\n\n discardUnsavedToggles();\n\n setFocus(smFocusSpan);\n\n settings_container.setAttribute('aria-hidden', 'true');\n _removeClass(html_dom, \"show--settings\");\n\n if(consent_modal_visible){\n\n setFocus(last_consent_modal_btn_focus);\n last_consent_modal_btn_focus = null;\n\n focused_modal = consent_modal;\n focusable_edges = consent_modal_focusable;\n }else{\n setFocus(last_elem_before_modal);\n last_elem_before_modal = null;\n }\n\n _log(\"CookieConsent [SETTINGS]: hide settings_modal\");\n }\n\n /**\n * Accept cookieconsent function API\n * @param {string[]|string} _categories - Categories to accept\n * @param {string[]} [_exclusions] - Excluded categories [optional]\n */\n _cookieconsent.accept = function(_categories, _exclusions){\n var categories = _categories || undefined;\n var exclusions = _exclusions || [];\n var to_accept = [];\n\n /**\n * Get all accepted categories\n * @returns {string[]}\n */\n var _getCurrentPreferences = function(){\n var toggles = document.querySelectorAll('.c-tgl') || [];\n var states = [];\n\n for(var i=0; i= 1){\n for(i=0; i 0){\n for(var i=0; i<_cookies.length; i++){\n this.validCookie(_cookies[i]) && cookies.push(_cookies[i]);\n }\n }else{\n this.validCookie(_cookies) && cookies.push(_cookies);\n }\n\n _eraseCookies(cookies, _path, domains);\n }\n\n /**\n * Set cookie, by specifying name and value\n * @param {string} name\n * @param {string} value\n */\n var _setCookie = function(name, value) {\n\n var cookie_expiration = _config.cookie_expiration;\n\n if(typeof _config.cookie_necessary_only_expiration === 'number' && accept_type === 'necessary')\n cookie_expiration = _config.cookie_necessary_only_expiration;\n\n value = _config.use_rfc_cookie ? encodeURIComponent(value) : value;\n\n var date = new Date();\n date.setTime(date.getTime() + (1000 * (cookie_expiration * 24 * 60 * 60)));\n var expires = \"; expires=\" + date.toUTCString();\n\n var cookieStr = name + \"=\" + (value || \"\") + expires + \"; Path=\" + _config.cookie_path + \";\";\n cookieStr += \" SameSite=\" + _config.cookie_same_site + \";\";\n\n // assures cookie works with localhost (=> don't specify domain if on localhost)\n if(location.hostname.indexOf(\".\") > -1 && _config.cookie_domain){\n cookieStr += \" Domain=\" + _config.cookie_domain + \";\";\n }\n\n if(location.protocol === \"https:\") {\n cookieStr += \" Secure;\";\n }\n\n document.cookie = cookieStr;\n\n _log(\"CookieConsent [SET_COOKIE]: '\" + name + \"' expires after \" + cookie_expiration + \" day(s)\");\n }\n\n /**\n * Get cookie value by name,\n * returns the cookie value if found (or an array\n * of cookies if filter provided), otherwise empty string: \"\"\n * @param {string} name\n * @param {string} filter 'one' or 'all'\n * @param {boolean} [get_value] set to true to obtain its value\n * @returns {string|string[]}\n */\n var _getCookie = function(name, filter, get_value) {\n var found;\n\n if(filter === 'one'){\n found = document.cookie.match(\"(^|;)\\\\s*\" + name + \"\\\\s*=\\\\s*([^;]+)\");\n found = found ? (get_value ? found.pop() : name) : \"\";\n\n if(found && name === _config.cookie_name){\n try{\n found = JSON.parse(found)\n }catch(e){\n try {\n found = JSON.parse(decodeURIComponent(found))\n } catch (e) {\n // if I got here => cookie value is not a valid json string\n found = {};\n }\n }\n found = JSON.stringify(found);\n }\n }else if(filter === 'all'){\n // array of names of all existing cookies\n var cookies = document.cookie.split(/;\\s*/); found = [];\n for(var i=0; i}\n */\n var toggles = settings_inner.querySelectorAll('.c-tgl');\n\n for(var i=0; i 0 ) others[ len ] = arguments[ len + 1 ];\n\n /* istanbul ignore else */\n if (isCallable(Object.assign)) {\n return Object.assign.apply(Object, [ target ].concat( others ));\n }\n\n /* istanbul ignore next */\n if (target == null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n /* istanbul ignore next */\n var to = Object(target);\n /* istanbul ignore next */\n others.forEach(function (arg) {\n // Skip over if undefined or null\n if (arg != null) {\n Object.keys(arg).forEach(function (key) {\n to[key] = arg[key];\n });\n }\n });\n /* istanbul ignore next */\n return to;\n};\n\nvar id = 0;\nvar idTemplate = '{id}';\n\n/**\n * Generates a unique id.\n */\nvar uniqId = function () {\n // handle too many uses of uniqId, although unlikely.\n if (id >= 9999) {\n id = 0;\n // shift the template.\n idTemplate = idTemplate.replace('{id}', '_{id}');\n }\n\n id++;\n var newId = idTemplate.replace('{id}', String(id));\n\n return newId;\n};\n\nvar findIndex = function (arrayLike, predicate) {\n var array = Array.isArray(arrayLike) ? arrayLike : toArray(arrayLike);\n for (var i = 0; i < array.length; i++) {\n if (predicate(array[i])) {\n return i;\n }\n }\n\n return -1;\n};\n\n/**\n * finds the first element that satisfies the predicate callback, polyfills array.find\n */\nvar find = function (arrayLike, predicate) {\n var array = Array.isArray(arrayLike) ? arrayLike : toArray(arrayLike);\n var idx = findIndex(array, predicate);\n\n return idx === -1 ? undefined : array[idx];\n};\n\nvar isBuiltInComponent = function (vnode) {\n if (!vnode) {\n return false;\n }\n\n var tag = vnode.componentOptions.tag;\n\n return /^(keep-alive|transition|transition-group)$/.test(tag);\n};\n\nvar makeDelayObject = function (events, delay, delayConfig) {\n if (typeof delay === 'number') {\n return events.reduce(function (prev, e) {\n prev[e] = delay;\n return prev;\n }, {});\n }\n\n return events.reduce(function (prev, e) {\n if (typeof delay === 'object' && e in delay) {\n prev[e] = delay[e];\n return prev;\n }\n\n if (typeof delayConfig === 'number') {\n prev[e] = delayConfig;\n return prev;\n }\n\n prev[e] = (delayConfig && delayConfig[e]) || 0;\n\n return prev;\n }, {});\n};\n\nvar deepParseInt = function (input) {\n if (typeof input === 'number') { return input; }\n\n if (typeof input === 'string') { return parseInt(input); }\n\n var map = {};\n for (var element in input) {\n map[element] = parseInt(input[element]);\n }\n\n return map;\n};\n\nvar merge = function (target, source) {\n if (! (isObject(target) && isObject(source))) {\n return target;\n }\n\n Object.keys(source).forEach(function (key) {\n var obj, obj$1;\n\n if (isObject(source[key])) {\n if (! target[key]) {\n assign(target, ( obj = {}, obj[key] = {}, obj ));\n }\n\n merge(target[key], source[key]);\n return;\n }\n\n assign(target, ( obj$1 = {}, obj$1[key] = source[key], obj$1 ));\n });\n\n return target;\n};\n\nvar fillRulesFromElement = function (el, rules) {\n if (el.required) {\n rules = appendRule('required', rules);\n }\n\n if (isTextInput(el)) {\n if (el.type === 'email') {\n rules = appendRule((\"email\" + (el.multiple ? ':multiple' : '')), rules);\n }\n\n if (el.pattern) {\n rules = appendRule({ regex: el.pattern }, rules);\n }\n\n // 524288 is the max on some browsers and test environments.\n if (el.maxLength >= 0 && el.maxLength < 524288) {\n rules = appendRule((\"max:\" + (el.maxLength)), rules);\n }\n\n if (el.minLength > 0) {\n rules = appendRule((\"min:\" + (el.minLength)), rules);\n }\n\n if (el.type === 'number') {\n rules = appendRule('decimal', rules);\n if (el.min !== '') {\n rules = appendRule((\"min_value:\" + (el.min)), rules);\n }\n\n if (el.max !== '') {\n rules = appendRule((\"max_value:\" + (el.max)), rules);\n }\n }\n\n return rules;\n }\n\n if (isDateInput(el)) {\n var timeFormat = el.step && Number(el.step) < 60 ? 'HH:mm:ss' : 'HH:mm';\n\n if (el.type === 'date') {\n return appendRule('date_format:yyyy-MM-dd', rules);\n }\n\n if (el.type === 'datetime-local') {\n return appendRule((\"date_format:yyyy-MM-ddT\" + timeFormat), rules);\n }\n\n if (el.type === 'month') {\n return appendRule('date_format:yyyy-MM', rules);\n }\n\n if (el.type === 'week') {\n return appendRule('date_format:yyyy-[W]WW', rules);\n }\n\n if (el.type === 'time') {\n return appendRule((\"date_format:\" + timeFormat), rules);\n }\n }\n\n return rules;\n};\n\nvar values = function (obj) {\n if (isCallable(Object.values)) {\n return Object.values(obj);\n }\n\n // fallback to keys()\n /* istanbul ignore next */\n return Object.keys(obj).map(function (k) { return obj[k]; });\n};\n\nvar parseSelector = function (selector) {\n var rule = null;\n if (includes(selector, ':')) {\n rule = selector.split(':').pop();\n selector = selector.replace((\":\" + rule), '');\n }\n\n if (selector[0] === '#') {\n return {\n id: selector.slice(1),\n rule: rule,\n name: null,\n scope: null\n };\n }\n\n var scope = null;\n var name = selector;\n if (includes(selector, '.')) {\n var parts = selector.split('.');\n scope = parts[0];\n name = parts.slice(1).join('.');\n }\n\n return {\n id: null,\n scope: scope,\n name: name,\n rule: rule\n };\n};\n\nvar includes = function (collection, item) {\n return collection.indexOf(item) !== -1;\n};\n\nvar isEmptyArray = function (arr) {\n return Array.isArray(arr) && arr.length === 0;\n};\n\nvar defineNonReactive = function (obj, prop, value) {\n Object.defineProperty(obj, prop, {\n configurable: false,\n writable: true,\n value: value\n });\n};\n\n// \n\nvar LOCALE = 'en';\n\nvar Dictionary = function Dictionary (dictionary) {\n if ( dictionary === void 0 ) dictionary = {};\n\n this.container = {};\n this.merge(dictionary);\n};\n\nvar prototypeAccessors = { locale: { configurable: true } };\n\nprototypeAccessors.locale.get = function () {\n return LOCALE;\n};\n\nprototypeAccessors.locale.set = function (value) {\n LOCALE = value || 'en';\n};\n\nDictionary.prototype.hasLocale = function hasLocale (locale) {\n return !!this.container[locale];\n};\n\nDictionary.prototype.setDateFormat = function setDateFormat (locale, format) {\n if (!this.container[locale]) {\n this.container[locale] = {};\n }\n\n this.container[locale].dateFormat = format;\n};\n\nDictionary.prototype.getDateFormat = function getDateFormat (locale) {\n if (!this.container[locale] || !this.container[locale].dateFormat) {\n return null;\n }\n\n return this.container[locale].dateFormat;\n};\n\nDictionary.prototype.getMessage = function getMessage (locale, key, data) {\n var message = null;\n if (!this.hasMessage(locale, key)) {\n message = this._getDefaultMessage(locale);\n } else {\n message = this.container[locale].messages[key];\n }\n\n return isCallable(message) ? message.apply(void 0, data) : message;\n};\n\n/**\n * Gets a specific message for field. falls back to the rule message.\n */\nDictionary.prototype.getFieldMessage = function getFieldMessage (locale, field, key, data) {\n if (!this.hasLocale(locale)) {\n return this.getMessage(locale, key, data);\n }\n\n var dict = this.container[locale].custom && this.container[locale].custom[field];\n if (!dict || !dict[key]) {\n return this.getMessage(locale, key, data);\n }\n\n var message = dict[key];\n return isCallable(message) ? message.apply(void 0, data) : message;\n};\n\nDictionary.prototype._getDefaultMessage = function _getDefaultMessage (locale) {\n if (this.hasMessage(locale, '_default')) {\n return this.container[locale].messages._default;\n }\n\n return this.container.en.messages._default;\n};\n\nDictionary.prototype.getAttribute = function getAttribute (locale, key, fallback) {\n if ( fallback === void 0 ) fallback = '';\n\n if (!this.hasAttribute(locale, key)) {\n return fallback;\n }\n\n return this.container[locale].attributes[key];\n};\n\nDictionary.prototype.hasMessage = function hasMessage (locale, key) {\n return !! (\n this.hasLocale(locale) &&\n this.container[locale].messages &&\n this.container[locale].messages[key]\n );\n};\n\nDictionary.prototype.hasAttribute = function hasAttribute (locale, key) {\n return !! (\n this.hasLocale(locale) &&\n this.container[locale].attributes &&\n this.container[locale].attributes[key]\n );\n};\n\nDictionary.prototype.merge = function merge$1 (dictionary) {\n merge(this.container, dictionary);\n};\n\nDictionary.prototype.setMessage = function setMessage (locale, key, message) {\n if (! this.hasLocale(locale)) {\n this.container[locale] = {\n messages: {},\n attributes: {}\n };\n }\n \n if (!this.container[locale].messages) {\n this.container[locale].messages = {};\n }\n\n this.container[locale].messages[key] = message;\n};\n\nDictionary.prototype.setAttribute = function setAttribute (locale, key, attribute) {\n if (! this.hasLocale(locale)) {\n this.container[locale] = {\n messages: {},\n attributes: {}\n };\n }\n\n this.container[locale].attributes[key] = attribute;\n};\n\nObject.defineProperties( Dictionary.prototype, prototypeAccessors );\n\nvar drivers = {\n default: new Dictionary({\n en: {\n messages: {},\n attributes: {},\n custom: {}\n }\n })\n};\n\nvar currentDriver = 'default';\n\nvar DictionaryResolver = function DictionaryResolver () {};\n\nDictionaryResolver._checkDriverName = function _checkDriverName (driver) {\n if (!driver) {\n throw createError('you must provide a name to the dictionary driver');\n }\n};\n\nDictionaryResolver.setDriver = function setDriver (driver, implementation) {\n if ( implementation === void 0 ) implementation = null;\n\n this._checkDriverName(driver);\n if (implementation) {\n drivers[driver] = implementation;\n }\n\n currentDriver = driver;\n};\n\nDictionaryResolver.getDriver = function getDriver () {\n return drivers[currentDriver];\n};\n\n// \n\nvar ErrorBag = function ErrorBag (errorBag, id) {\n if ( errorBag === void 0 ) errorBag = null;\n if ( id === void 0 ) id = null;\n\n this.vmId = id || null;\n // make this bag a mirror of the provided one, sharing the same items reference.\n if (errorBag && errorBag instanceof ErrorBag) {\n this.items = errorBag.items;\n } else {\n this.items = [];\n }\n};\n\nErrorBag.prototype[typeof Symbol === 'function' ? Symbol.iterator : '@@iterator'] = function () {\n var this$1 = this;\n\n var index = 0;\n return {\n next: function () {\n return { value: this$1.items[index++], done: index > this$1.items.length };\n }\n };\n};\n\n/**\n * Adds an error to the internal array.\n */\nErrorBag.prototype.add = function add (error) {\n var ref;\n\n (ref = this.items).push.apply(\n ref, this._normalizeError(error)\n );\n};\n\n/**\n * Normalizes passed errors to an error array.\n */\nErrorBag.prototype._normalizeError = function _normalizeError (error) {\n var this$1 = this;\n\n if (Array.isArray(error)) {\n return error.map(function (e) {\n e.scope = !isNullOrUndefined(e.scope) ? e.scope : null;\n e.vmId = !isNullOrUndefined(e.vmId) ? e.vmId : (this$1.vmId || null);\n\n return e;\n });\n }\n\n error.scope = !isNullOrUndefined(error.scope) ? error.scope : null;\n error.vmId = !isNullOrUndefined(error.vmId) ? error.vmId : (this.vmId || null);\n\n return [error];\n};\n\n/**\n * Regenrates error messages if they have a generator function.\n */\nErrorBag.prototype.regenerate = function regenerate () {\n this.items.forEach(function (i) {\n i.msg = isCallable(i.regenerate) ? i.regenerate() : i.msg;\n });\n};\n\n/**\n * Updates a field error with the new field scope.\n */\nErrorBag.prototype.update = function update (id, error) {\n var item = find(this.items, function (i) { return i.id === id; });\n if (!item) {\n return;\n }\n\n var idx = this.items.indexOf(item);\n this.items.splice(idx, 1);\n item.scope = error.scope;\n this.items.push(item);\n};\n\n/**\n * Gets all error messages from the internal array.\n */\nErrorBag.prototype.all = function all (scope) {\n var this$1 = this;\n\n var filterFn = function (item) {\n var matchesScope = true;\n var matchesVM = true;\n if (!isNullOrUndefined(scope)) {\n matchesScope = item.scope === scope;\n }\n\n if (!isNullOrUndefined(this$1.vmId)) {\n matchesVM = item.vmId === this$1.vmId;\n }\n\n return matchesVM && matchesScope;\n };\n\n return this.items.filter(filterFn).map(function (e) { return e.msg; });\n};\n\n/**\n * Checks if there are any errors in the internal array.\n */\nErrorBag.prototype.any = function any (scope) {\n var this$1 = this;\n\n var filterFn = function (item) {\n var matchesScope = true;\n var matchesVM = true;\n if (!isNullOrUndefined(scope)) {\n matchesScope = item.scope === scope;\n }\n\n if (!isNullOrUndefined(this$1.vmId)) {\n matchesVM = item.vmId === this$1.vmId;\n }\n\n return matchesVM && matchesScope;\n };\n\n return !!this.items.filter(filterFn).length;\n};\n\n/**\n * Removes all items from the internal array.\n */\nErrorBag.prototype.clear = function clear (scope) {\n var this$1 = this;\n\n var matchesVM = isNullOrUndefined(this.vmId) ? function () { return true; } : function (i) { return i.vmId === this$1.vmId; };\n var matchesScope = function (i) { return i.scope === scope; };\n if (arguments.length === 0) {\n matchesScope = function () { return true; };\n } else if (isNullOrUndefined(scope)) {\n scope = null;\n }\n\n for (var i = 0; i < this.items.length; ++i) {\n if (matchesVM(this.items[i]) && matchesScope(this.items[i])) {\n this.items.splice(i, 1);\n --i;\n }\n }\n};\n\n/**\n * Collects errors into groups or for a specific field.\n */\nErrorBag.prototype.collect = function collect (field, scope, map) {\n var this$1 = this;\n if ( map === void 0 ) map = true;\n\n var isSingleField = !isNullOrUndefined(field) && !field.includes('*');\n var groupErrors = function (items) {\n var errors = items.reduce(function (collection, error) {\n if (!isNullOrUndefined(this$1.vmId) && error.vmId !== this$1.vmId) {\n return collection;\n }\n\n if (!collection[error.field]) {\n collection[error.field] = [];\n }\n\n collection[error.field].push(map ? error.msg : error);\n\n return collection;\n }, {});\n\n // reduce the collection to be a single array.\n if (isSingleField) {\n return values(errors)[0] || [];\n }\n\n return errors;\n };\n\n if (isNullOrUndefined(field)) {\n return groupErrors(this.items);\n }\n\n var selector = isNullOrUndefined(scope) ? String(field) : (scope + \".\" + field);\n var ref = this._makeCandidateFilters(selector);\n var isPrimary = ref.isPrimary;\n var isAlt = ref.isAlt;\n\n var collected = this.items.reduce(function (prev, curr) {\n if (isPrimary(curr)) {\n prev.primary.push(curr);\n }\n\n if (isAlt(curr)) {\n prev.alt.push(curr);\n }\n\n return prev;\n }, { primary: [], alt: [] });\n\n collected = collected.primary.length ? collected.primary : collected.alt;\n\n return groupErrors(collected);\n};\n\n/**\n * Gets the internal array length.\n */\nErrorBag.prototype.count = function count () {\n var this$1 = this;\n\n if (this.vmId) {\n return this.items.filter(function (e) { return e.vmId === this$1.vmId; }).length;\n }\n\n return this.items.length;\n};\n\n/**\n * Finds and fetches the first error message for the specified field id.\n */\nErrorBag.prototype.firstById = function firstById (id) {\n var error = find(this.items, function (i) { return i.id === id; });\n\n return error ? error.msg : undefined;\n};\n\n/**\n * Gets the first error message for a specific field.\n */\nErrorBag.prototype.first = function first (field, scope) {\n if ( scope === void 0 ) scope = null;\n\n var selector = isNullOrUndefined(scope) ? field : (scope + \".\" + field);\n var match = this._match(selector);\n\n return match && match.msg;\n};\n\n/**\n * Returns the first error rule for the specified field\n */\nErrorBag.prototype.firstRule = function firstRule (field, scope) {\n var errors = this.collect(field, scope, false);\n\n return (errors.length && errors[0].rule) || undefined;\n};\n\n/**\n * Checks if the internal array has at least one error for the specified field.\n */\nErrorBag.prototype.has = function has (field, scope) {\n if ( scope === void 0 ) scope = null;\n\n return !!this.first(field, scope);\n};\n\n/**\n * Gets the first error message for a specific field and a rule.\n */\nErrorBag.prototype.firstByRule = function firstByRule (name, rule, scope) {\n if ( scope === void 0 ) scope = null;\n\n var error = this.collect(name, scope, false).filter(function (e) { return e.rule === rule; })[0];\n\n return (error && error.msg) || undefined;\n};\n\n/**\n * Gets the first error message for a specific field that not match the rule.\n */\nErrorBag.prototype.firstNot = function firstNot (name, rule, scope) {\n if ( rule === void 0 ) rule = 'required';\n if ( scope === void 0 ) scope = null;\n\n var error = this.collect(name, scope, false).filter(function (e) { return e.rule !== rule; })[0];\n\n return (error && error.msg) || undefined;\n};\n\n/**\n * Removes errors by matching against the id or ids.\n */\nErrorBag.prototype.removeById = function removeById (id) {\n var condition = function (item) { return item.id === id; };\n if (Array.isArray(id)) {\n condition = function (item) { return id.indexOf(item.id) !== -1; };\n }\n\n for (var i = 0; i < this.items.length; ++i) {\n if (condition(this.items[i])) {\n this.items.splice(i, 1);\n --i;\n }\n }\n};\n\n/**\n * Removes all error messages associated with a specific field.\n */\nErrorBag.prototype.remove = function remove (field, scope, vmId) {\n if (isNullOrUndefined(field)) {\n return;\n }\n\n var selector = isNullOrUndefined(scope) ? String(field) : (scope + \".\" + field);\n var ref = this._makeCandidateFilters(selector);\n var isPrimary = ref.isPrimary;\n var isAlt = ref.isAlt;\n var matches = function (item) { return isPrimary(item) || isAlt(item); };\n var shouldRemove = function (item) {\n if (isNullOrUndefined(vmId)) { return matches(item); }\n\n return matches(item) && item.vmId === vmId;\n };\n\n for (var i = 0; i < this.items.length; ++i) {\n if (shouldRemove(this.items[i])) {\n this.items.splice(i, 1);\n --i;\n }\n }\n};\n\nErrorBag.prototype._makeCandidateFilters = function _makeCandidateFilters (selector) {\n var this$1 = this;\n\n var matchesRule = function () { return true; };\n var matchesScope = function () { return true; };\n var matchesName = function () { return true; };\n var matchesVM = function () { return true; };\n\n var ref = parseSelector(selector);\n var id = ref.id;\n var rule = ref.rule;\n var scope = ref.scope;\n var name = ref.name;\n\n if (rule) {\n matchesRule = function (item) { return item.rule === rule; };\n }\n\n // match by id, can be combined with rule selection.\n if (id) {\n return {\n isPrimary: function (item) { return matchesRule(item) && (function (item) { return id === item.id; }); },\n isAlt: function () { return false; }\n };\n }\n\n if (isNullOrUndefined(scope)) {\n // if no scope specified, make sure the found error has no scope.\n matchesScope = function (item) { return isNullOrUndefined(item.scope); };\n } else {\n matchesScope = function (item) { return item.scope === scope; };\n }\n\n if (!isNullOrUndefined(name) && name !== '*') {\n matchesName = function (item) { return item.field === name; };\n }\n\n if (!isNullOrUndefined(this.vmId)) {\n matchesVM = function (item) { return item.vmId === this$1.vmId; };\n }\n\n // matches the first candidate.\n var isPrimary = function (item) {\n return matchesVM(item) && matchesName(item) && matchesRule(item) && matchesScope(item);\n };\n\n // matches a second candidate, which is a field with a name containing the '.' character.\n var isAlt = function (item) {\n return matchesVM(item) && matchesRule(item) && item.field === (scope + \".\" + name);\n };\n\n return {\n isPrimary: isPrimary,\n isAlt: isAlt\n };\n};\n\nErrorBag.prototype._match = function _match (selector) {\n if (isNullOrUndefined(selector)) {\n return undefined;\n }\n\n var ref = this._makeCandidateFilters(selector);\n var isPrimary = ref.isPrimary;\n var isAlt = ref.isAlt;\n\n return this.items.reduce(function (prev, item, idx, arr) {\n var isLast = idx === arr.length - 1;\n if (prev.primary) {\n return isLast ? prev.primary : prev;\n }\n\n if (isPrimary(item)) {\n prev.primary = item;\n }\n\n if (isAlt(item)) {\n prev.alt = item;\n }\n\n // keep going.\n if (!isLast) {\n return prev;\n }\n\n return prev.primary || prev.alt;\n }, {});\n};\n\nvar DEFAULT_CONFIG = {\n locale: 'en',\n delay: 0,\n errorBagName: 'errors',\n dictionary: null,\n fieldsBagName: 'fields',\n classes: false,\n classNames: null,\n events: 'input',\n inject: true,\n fastExit: true,\n aria: true,\n validity: false,\n mode: 'aggressive',\n useConstraintAttrs: true,\n i18n: null,\n i18nRootKey: 'validation'\n};\n\nvar currentConfig = assign({}, DEFAULT_CONFIG);\n\nvar resolveConfig = function (ctx) {\n var selfConfig = getPath('$options.$_veeValidate', ctx, {});\n\n return assign({}, currentConfig, selfConfig);\n};\n\nvar getConfig = function () { return currentConfig; };\n\nvar setConfig = function (newConf) {\n currentConfig = assign({}, currentConfig, newConf);\n};\n\n// VNode Utils\n\n// Gets the model object on the vnode.\nfunction findModel (vnode) {\n if (!vnode.data) {\n return null;\n }\n\n // Component Model\n if (vnode.data.model) {\n return vnode.data.model;\n }\n\n return !!(vnode.data.directives) && find(vnode.data.directives, function (d) { return d.name === 'model'; });\n}\n\nfunction extractChildren (vnode) {\n if (Array.isArray(vnode)) {\n return vnode;\n }\n\n if (Array.isArray(vnode.children)) {\n return vnode.children;\n }\n\n if (vnode.componentOptions && Array.isArray(vnode.componentOptions.children)) {\n return vnode.componentOptions.children;\n }\n\n return [];\n}\n\nfunction extractVNodes (vnode) {\n if (findModel(vnode)) {\n return [vnode];\n }\n\n var children = extractChildren(vnode);\n\n return children.reduce(function (nodes, node) {\n var candidates = extractVNodes(node);\n if (candidates.length) {\n nodes.push.apply(nodes, candidates);\n }\n\n return nodes;\n }, []);\n}\n\n// Resolves v-model config if exists.\nfunction findModelConfig (vnode) {\n if (!vnode.componentOptions) { return null; }\n\n return vnode.componentOptions.Ctor.options.model;\n}\n// Adds a listener to vnode listener object.\nfunction mergeVNodeListeners (obj, eventName, handler) {\n // Has a single listener, convert to array.\n if (isCallable(obj[eventName])) {\n var prevHandler = obj[eventName];\n obj[eventName] = [prevHandler];\n }\n\n // no listeners, create the array.\n if (isNullOrUndefined(obj[eventName])) {\n obj[eventName] = [];\n }\n\n obj[eventName].push(handler);\n}\n\n// Adds a listener to a native HTML vnode.\nfunction addNativeNodeListener (node, eventName, handler) {\n if (isNullOrUndefined(node.data.on)) {\n node.data.on = {};\n }\n\n mergeVNodeListeners(node.data.on, eventName, handler);\n}\n\n// Adds a listener to a Vue component vnode.\nfunction addComponentNodeListener (node, eventName, handler) {\n /* istanbul ignore next */\n if (!node.componentOptions.listeners) {\n node.componentOptions.listeners = {};\n }\n\n mergeVNodeListeners(node.componentOptions.listeners, eventName, handler);\n}\nfunction addVNodeListener (vnode, eventName, handler) {\n if (vnode.componentOptions) {\n addComponentNodeListener(vnode, eventName, handler);\n return;\n }\n\n addNativeNodeListener(vnode, eventName, handler);\n}\n// Determines if `change` should be used over `input` for listeners.\nfunction getInputEventName (vnode, model) {\n // Is a component.\n if (vnode.componentOptions) {\n var ref = findModelConfig(vnode) || { event: 'input' };\n var event = ref.event;\n\n return event;\n }\n\n // Lazy Models and select tag typically use change event\n if ((model && model.modifiers && model.modifiers.lazy) || vnode.tag === 'select') {\n return 'change';\n }\n\n // is a textual-type input.\n if (vnode.data.attrs && isTextInput({ type: vnode.data.attrs.type || 'text' })) {\n return 'input';\n }\n\n return 'change';\n}\n\nfunction normalizeSlots (slots, ctx) {\n return Object.keys(slots).reduce(function (arr, key) {\n slots[key].forEach(function (vnode) {\n if (!vnode.context) {\n slots[key].context = ctx;\n if (!vnode.data) {\n vnode.data = {};\n }\n vnode.data.slot = key;\n }\n });\n\n return arr.concat(slots[key]);\n }, []);\n}\nfunction createRenderless (h, children) {\n // Only render the first item of the node.\n if (Array.isArray(children) && children[0]) {\n return children[0];\n }\n\n // a single node.\n if (children) {\n return children;\n }\n\n // No slots, render nothing.\n return h();\n}\n\n/**\n * Generates the options required to construct a field.\n */\nvar Resolver = function Resolver () {};\n\nResolver.generate = function generate (el, binding, vnode) {\n var model = Resolver.resolveModel(binding, vnode);\n var options = resolveConfig(vnode.context);\n\n return {\n name: Resolver.resolveName(el, vnode),\n el: el,\n listen: !binding.modifiers.disable,\n bails: binding.modifiers.bails ? true : (binding.modifiers.continues === true ? false : undefined),\n scope: Resolver.resolveScope(el, binding, vnode),\n vm: vnode.context,\n expression: binding.value,\n component: vnode.componentInstance,\n classes: options.classes,\n classNames: options.classNames,\n getter: Resolver.resolveGetter(el, vnode, model),\n events: Resolver.resolveEvents(el, vnode) || options.events,\n model: model,\n delay: Resolver.resolveDelay(el, vnode, options),\n rules: Resolver.resolveRules(el, binding, vnode),\n immediate: !!binding.modifiers.initial || !!binding.modifiers.immediate,\n persist: !!binding.modifiers.persist,\n validity: options.validity && !vnode.componentInstance,\n aria: options.aria && !vnode.componentInstance,\n initialValue: Resolver.resolveInitialValue(vnode)\n };\n};\n\nResolver.getCtorConfig = function getCtorConfig (vnode) {\n if (!vnode.componentInstance) { return null; }\n\n var config = getPath('componentInstance.$options.$_veeValidate', vnode);\n\n return config;\n};\n\n/**\n * Resolves the rules defined on an element.\n */\nResolver.resolveRules = function resolveRules (el, binding, vnode) {\n var rules = '';\n if (!binding.value && (!binding || !binding.expression)) {\n rules = getDataAttribute(el, 'rules');\n }\n\n if (binding.value && includes(['string', 'object'], typeof binding.value.rules)) {\n rules = binding.value.rules;\n } else if (binding.value) {\n rules = binding.value;\n }\n\n if (vnode.componentInstance) {\n return rules;\n }\n\n // If validity is disabled, ignore field rules.\n var normalized = normalizeRules(rules);\n if (!getConfig().useConstraintAttrs) {\n return normalized;\n }\n\n return assign({}, fillRulesFromElement(el, {}), normalized);\n};\n\n/**\n * @param {*} vnode\n */\nResolver.resolveInitialValue = function resolveInitialValue (vnode) {\n var model = vnode.data.model || find(vnode.data.directives, function (d) { return d.name === 'model'; });\n\n return model && model.value;\n};\n\n/**\n * Resolves the delay value.\n * @param {*} el\n * @param {*} vnode\n * @param {Object} options\n */\nResolver.resolveDelay = function resolveDelay (el, vnode, options) {\n var delay = getDataAttribute(el, 'delay');\n var globalDelay = (options && 'delay' in options) ? options.delay : 0;\n\n if (!delay && vnode.componentInstance && vnode.componentInstance.$attrs) {\n delay = vnode.componentInstance.$attrs['data-vv-delay'];\n }\n\n if (!isObject(globalDelay)) {\n return deepParseInt(delay || globalDelay);\n }\n\n if (!isNullOrUndefined(delay)) {\n globalDelay.input = delay;\n }\n\n return deepParseInt(globalDelay);\n};\n\n/**\n * Resolves the events to validate in response to.\n * @param {*} el\n * @param {*} vnode\n */\nResolver.resolveEvents = function resolveEvents (el, vnode) {\n // resolve it from the root element.\n var events = getDataAttribute(el, 'validate-on');\n\n // resolve from data-vv-validate-on if its a vue component.\n if (!events && vnode.componentInstance && vnode.componentInstance.$attrs) {\n events = vnode.componentInstance.$attrs['data-vv-validate-on'];\n }\n\n // resolve it from $_veeValidate options.\n if (!events && vnode.componentInstance) {\n var config = Resolver.getCtorConfig(vnode);\n events = config && config.events;\n }\n\n if (!events && getConfig().events) {\n events = getConfig().events;\n }\n\n // resolve the model event if its configured for custom components.\n if (events && vnode.componentInstance && includes(events, 'input')) {\n var ref = vnode.componentInstance.$options.model || { event: 'input' };\n var event = ref.event;\n // if the prop was configured but not the model.\n if (!event) {\n return events;\n }\n\n events = events.replace('input', event);\n }\n\n return events;\n};\n\n/**\n * Resolves the scope for the field.\n * @param {*} el\n * @param {*} binding\n */\nResolver.resolveScope = function resolveScope (el, binding, vnode) {\n if ( vnode === void 0 ) vnode = {};\n\n var scope = null;\n if (vnode.componentInstance && isNullOrUndefined(scope)) {\n scope = vnode.componentInstance.$attrs && vnode.componentInstance.$attrs['data-vv-scope'];\n }\n\n return !isNullOrUndefined(scope) ? scope : getScope(el);\n};\n\n/**\n * Checks if the node directives contains a v-model or a specified arg.\n * Args take priority over models.\n *\n * @return {Object}\n */\nResolver.resolveModel = function resolveModel (binding, vnode) {\n if (binding.arg) {\n return { expression: binding.arg };\n }\n\n var model = findModel(vnode);\n if (!model) {\n return null;\n }\n\n // https://github.com/vuejs/vue/blob/dev/src/core/util/lang.js#L26\n var watchable = !/[^\\w.$]/.test(model.expression) && hasPath(model.expression, vnode.context);\n var lazy = !!(model.modifiers && model.modifiers.lazy);\n\n if (!watchable) {\n return { expression: null, lazy: lazy };\n }\n\n return { expression: model.expression, lazy: lazy };\n};\n\n/**\n * Resolves the field name to trigger validations.\n * @return {String} The field name.\n */\nResolver.resolveName = function resolveName (el, vnode) {\n var name = getDataAttribute(el, 'name');\n\n if (!name && !vnode.componentInstance) {\n return el.name;\n }\n\n if (!name && vnode.componentInstance && vnode.componentInstance.$attrs) {\n name = vnode.componentInstance.$attrs['data-vv-name'] || vnode.componentInstance.$attrs['name'];\n }\n\n if (!name && vnode.componentInstance) {\n var config = Resolver.getCtorConfig(vnode);\n if (config && isCallable(config.name)) {\n var boundGetter = config.name.bind(vnode.componentInstance);\n\n return boundGetter();\n }\n\n return vnode.componentInstance.name;\n }\n\n return name;\n};\n\n/**\n * Returns a value getter input type.\n */\nResolver.resolveGetter = function resolveGetter (el, vnode, model) {\n if (model && model.expression) {\n return function () {\n return getPath(model.expression, vnode.context);\n };\n }\n\n if (vnode.componentInstance) {\n var path = getDataAttribute(el, 'value-path') || (vnode.componentInstance.$attrs && vnode.componentInstance.$attrs['data-vv-value-path']);\n if (path) {\n return function () {\n return getPath(path, vnode.componentInstance);\n };\n }\n\n var config = Resolver.getCtorConfig(vnode);\n if (config && isCallable(config.value)) {\n var boundGetter = config.value.bind(vnode.componentInstance);\n\n return function () {\n return boundGetter();\n };\n }\n\n var ref = vnode.componentInstance.$options.model || { prop: 'value' };\n var prop = ref.prop;\n\n return function () {\n return vnode.componentInstance[prop];\n };\n }\n\n switch (el.type) {\n case 'checkbox': return function () {\n var els = document.querySelectorAll((\"input[name=\\\"\" + (el.name) + \"\\\"]\"));\n\n els = toArray(els).filter(function (el) { return el.checked; });\n if (!els.length) { return undefined; }\n\n return els.map(function (checkbox) { return checkbox.value; });\n };\n case 'radio': return function () {\n var els = document.querySelectorAll((\"input[name=\\\"\" + (el.name) + \"\\\"]\"));\n var elm = find(els, function (el) { return el.checked; });\n\n return elm && elm.value;\n };\n case 'file': return function (context) {\n return toArray(el.files);\n };\n case 'select-multiple': return function () {\n return toArray(el.options).filter(function (opt) { return opt.selected; }).map(function (opt) { return opt.value; });\n };\n default: return function () {\n return el && el.value;\n };\n }\n};\n\nvar RULES = {};\n\nvar RuleContainer = function RuleContainer () {};\n\nvar staticAccessors = { rules: { configurable: true } };\n\nRuleContainer.add = function add (name, ref) {\n var validate = ref.validate;\n var options = ref.options;\n var paramNames = ref.paramNames;\n\n RULES[name] = {\n validate: validate,\n options: options,\n paramNames: paramNames\n };\n};\n\nstaticAccessors.rules.get = function () {\n return RULES;\n};\n\nRuleContainer.has = function has (name) {\n return !!RULES[name];\n};\n\nRuleContainer.isImmediate = function isImmediate (name) {\n return !!(RULES[name] && RULES[name].options.immediate);\n};\n\nRuleContainer.isRequireRule = function isRequireRule (name) {\n return !!(RULES[name] && RULES[name].options.computesRequired);\n};\n\nRuleContainer.isTargetRule = function isTargetRule (name) {\n return !!(RULES[name] && RULES[name].options.hasTarget);\n};\n\nRuleContainer.remove = function remove (ruleName) {\n delete RULES[ruleName];\n};\n\nRuleContainer.getParamNames = function getParamNames (ruleName) {\n return RULES[ruleName] && RULES[ruleName].paramNames;\n};\n\nRuleContainer.getOptions = function getOptions (ruleName) {\n return RULES[ruleName] && RULES[ruleName].options;\n};\n\nRuleContainer.getValidatorMethod = function getValidatorMethod (ruleName) {\n return RULES[ruleName] ? RULES[ruleName].validate : null;\n};\n\nObject.defineProperties( RuleContainer, staticAccessors );\n\n// \n\nvar isEvent = function (evt) {\n return (typeof Event !== 'undefined' && isCallable(Event) && evt instanceof Event) || (evt && evt.srcElement);\n};\n\nvar normalizeEvents = function (evts) {\n if (!evts) { return []; }\n\n return (typeof evts === 'string' ? evts.split('|') : evts);\n};\n\nvar supportsPassive = true;\n\nvar detectPassiveSupport = function () {\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get () {\n supportsPassive = true;\n }\n });\n window.addEventListener('testPassive', null, opts);\n window.removeEventListener('testPassive', null, opts);\n } catch (e) {\n supportsPassive = false;\n }\n return supportsPassive;\n};\n\nvar addEventListener = function (el, eventName, cb) {\n el.addEventListener(eventName, cb, supportsPassive ? { passive: true } : false);\n};\n\n// \n\nvar DEFAULT_OPTIONS = {\n targetOf: null,\n immediate: false,\n persist: false,\n scope: null,\n listen: true,\n name: null,\n rules: {},\n vm: null,\n classes: false,\n validity: true,\n aria: true,\n events: 'input|blur',\n delay: 0,\n classNames: {\n touched: 'touched', // the control has been blurred\n untouched: 'untouched', // the control hasn't been blurred\n valid: 'valid', // model is valid\n invalid: 'invalid', // model is invalid\n pristine: 'pristine', // control has not been interacted with\n dirty: 'dirty' // control has been interacted with\n }\n};\n\nvar Field = function Field (options) {\n if ( options === void 0 ) options = {};\n\n this.id = uniqId();\n this.el = options.el;\n this.updated = false;\n this.vmId = options.vmId;\n defineNonReactive(this, 'dependencies', []);\n defineNonReactive(this, 'watchers', []);\n defineNonReactive(this, 'events', []);\n this.delay = 0;\n this.rules = {};\n this.forceRequired = false;\n this._cacheId(options);\n this.classNames = assign({}, DEFAULT_OPTIONS.classNames);\n options = assign({}, DEFAULT_OPTIONS, options);\n this._delay = !isNullOrUndefined(options.delay) ? options.delay : 0; // cache initial delay\n this.validity = options.validity;\n this.aria = options.aria;\n this.flags = options.flags || createFlags();\n defineNonReactive(this, 'vm', options.vm);\n defineNonReactive(this, 'componentInstance', options.component);\n this.ctorConfig = this.componentInstance ? getPath('$options.$_veeValidate', this.componentInstance) : undefined;\n this.update(options);\n // set initial value.\n this.initialValue = this.value;\n this.updated = false;\n};\n\nvar prototypeAccessors$1 = { validator: { configurable: true },isRequired: { configurable: true },isDisabled: { configurable: true },alias: { configurable: true },value: { configurable: true },bails: { configurable: true },rejectsFalse: { configurable: true } };\n\nprototypeAccessors$1.validator.get = function () {\n if (!this.vm || !this.vm.$validator) {\n return { validate: function () { return Promise.resolve(true); } };\n }\n\n return this.vm.$validator;\n};\n\nprototypeAccessors$1.isRequired.get = function () {\n return !!this.rules.required || this.forceRequired;\n};\n\nprototypeAccessors$1.isDisabled.get = function () {\n return !!(this.el && this.el.disabled);\n};\n\n/**\n * Gets the display name (user-friendly name).\n */\nprototypeAccessors$1.alias.get = function () {\n if (this._alias) {\n return this._alias;\n }\n\n var alias = null;\n if (this.ctorConfig && this.ctorConfig.alias) {\n alias = isCallable(this.ctorConfig.alias) ? this.ctorConfig.alias.call(this.componentInstance) : this.ctorConfig.alias;\n }\n\n if (!alias && this.el) {\n alias = getDataAttribute(this.el, 'as');\n }\n\n if (!alias && this.componentInstance) {\n return this.componentInstance.$attrs && this.componentInstance.$attrs['data-vv-as'];\n }\n\n return alias;\n};\n\n/**\n * Gets the input value.\n */\n\nprototypeAccessors$1.value.get = function () {\n if (!isCallable(this.getter)) {\n return undefined;\n }\n\n return this.getter();\n};\n\nprototypeAccessors$1.bails.get = function () {\n return this._bails;\n};\n\n/**\n * If the field rejects false as a valid value for the required rule.\n */\n\nprototypeAccessors$1.rejectsFalse.get = function () {\n if (this.componentInstance && this.ctorConfig) {\n return !!this.ctorConfig.rejectsFalse;\n }\n\n if (!this.el) {\n return false;\n }\n\n return this.el.type === 'checkbox';\n};\n\n/**\n * Determines if the instance matches the options provided.\n */\nField.prototype.matches = function matches (options) {\n var this$1 = this;\n\n if (!options) {\n return true;\n }\n\n if (options.id) {\n return this.id === options.id;\n }\n\n var matchesComponentId = isNullOrUndefined(options.vmId) ? function () { return true; } : function (id) { return id === this$1.vmId; };\n if (!matchesComponentId(options.vmId)) {\n return false;\n }\n\n if (options.name === undefined && options.scope === undefined) {\n return true;\n }\n\n if (options.scope === undefined) {\n return this.name === options.name;\n }\n\n if (options.name === undefined) {\n return this.scope === options.scope;\n }\n\n return options.name === this.name && options.scope === this.scope;\n};\n\n/**\n * Caches the field id.\n */\nField.prototype._cacheId = function _cacheId (options) {\n if (this.el && !options.targetOf) {\n this.el._veeValidateId = this.id;\n }\n};\n\n/**\n * Keeps a reference of the most current validation run.\n */\nField.prototype.waitFor = function waitFor (pendingPromise) {\n this._waitingFor = pendingPromise;\n};\n\nField.prototype.isWaitingFor = function isWaitingFor (promise) {\n return this._waitingFor === promise;\n};\n\n/**\n * Updates the field with changed data.\n */\nField.prototype.update = function update (options) {\n var this$1 = this;\n\n this.targetOf = options.targetOf || null;\n this.immediate = options.immediate || this.immediate || false;\n this.persist = options.persist || this.persist || false;\n\n // update errors scope if the field scope was changed.\n if (!isNullOrUndefined(options.scope) && options.scope !== this.scope && isCallable(this.validator.update)) {\n this.validator.update(this.id, { scope: options.scope });\n }\n this.scope = !isNullOrUndefined(options.scope) ? options.scope\n : !isNullOrUndefined(this.scope) ? this.scope : null;\n this.name = (!isNullOrUndefined(options.name) ? String(options.name) : options.name) || this.name || null;\n this.rules = options.rules !== undefined ? normalizeRules(options.rules) : this.rules;\n this._bails = options.bails !== undefined ? options.bails : this._bails;\n this.model = options.model || this.model;\n this.listen = options.listen !== undefined ? options.listen : this.listen;\n this.classes = (options.classes || this.classes || false) && !this.componentInstance;\n this.classNames = isObject(options.classNames) ? merge(this.classNames, options.classNames) : this.classNames;\n this.getter = isCallable(options.getter) ? options.getter : this.getter;\n this._alias = options.alias || this._alias;\n this.events = (options.events) ? normalizeEvents(options.events) : this.events;\n this.delay = makeDelayObject(this.events, options.delay || this.delay, this._delay);\n this.updateDependencies();\n this.addActionListeners();\n\n if (process.env.NODE_ENV !== 'production' && !this.name && !this.targetOf) {\n warn('A field is missing a \"name\" or \"data-vv-name\" attribute');\n }\n\n // update required flag flags\n if (options.rules !== undefined) {\n this.flags.required = this.isRequired;\n }\n\n if (Object.keys(options.rules || {}).length === 0 && this.updated) {\n var resetFlag = this.flags.validated;\n this.validator.validate((\"#\" + (this.id))).then(function () {\n this$1.flags.validated = resetFlag;\n });\n }\n\n // validate if it was validated before and field was updated and there was a rules mutation.\n if (this.flags.validated && options.rules !== undefined && this.updated) {\n this.validator.validate((\"#\" + (this.id)));\n }\n\n this.updated = true;\n this.addValueListeners();\n\n // no need to continue.\n if (!this.el) {\n return;\n }\n this.updateClasses();\n this.updateAriaAttrs();\n};\n\n/**\n * Resets field flags and errors.\n */\nField.prototype.reset = function reset () {\n var this$1 = this;\n\n if (this._cancellationToken) {\n this._cancellationToken.cancelled = true;\n delete this._cancellationToken;\n }\n\n var defaults = createFlags();\n Object.keys(this.flags).filter(function (flag) { return flag !== 'required'; }).forEach(function (flag) {\n this$1.flags[flag] = defaults[flag];\n });\n\n // update initial value\n this.initialValue = this.value;\n this.flags.changed = false;\n\n this.addValueListeners();\n this.addActionListeners();\n this.updateClasses(true);\n this.updateAriaAttrs();\n this.updateCustomValidity();\n};\n\n/**\n * Sets the flags and their negated counterparts, and updates the classes and re-adds action listeners.\n */\nField.prototype.setFlags = function setFlags (flags) {\n var this$1 = this;\n\n var negated = {\n pristine: 'dirty',\n dirty: 'pristine',\n valid: 'invalid',\n invalid: 'valid',\n touched: 'untouched',\n untouched: 'touched'\n };\n\n Object.keys(flags).forEach(function (flag) {\n this$1.flags[flag] = flags[flag];\n // if it has a negation and was not specified, set it as well.\n if (negated[flag] && flags[negated[flag]] === undefined) {\n this$1.flags[negated[flag]] = !flags[flag];\n }\n });\n\n if (\n flags.untouched !== undefined ||\n flags.touched !== undefined ||\n flags.dirty !== undefined ||\n flags.pristine !== undefined\n ) {\n this.addActionListeners();\n }\n this.updateClasses();\n this.updateAriaAttrs();\n this.updateCustomValidity();\n};\n\n/**\n * Determines if the field requires references to target fields.\n*/\nField.prototype.updateDependencies = function updateDependencies () {\n var this$1 = this;\n\n // reset dependencies.\n this.dependencies.forEach(function (d) { return d.field.destroy(); });\n this.dependencies = [];\n\n // we get the selectors for each field.\n var fields = Object.keys(this.rules).reduce(function (prev, r) {\n if (RuleContainer.isTargetRule(r)) {\n prev.push({ selector: this$1.rules[r][0], name: r });\n }\n\n return prev;\n }, []);\n\n if (!fields.length || !this.vm || !this.vm.$el) { return; }\n\n // must be contained within the same component, so we use the vm root element constrain our dom search.\n fields.forEach(function (ref$1) {\n var selector = ref$1.selector;\n var name = ref$1.name;\n\n var ref = this$1.vm.$refs[selector];\n var el = Array.isArray(ref) ? ref[0] : ref;\n if (!el) {\n return;\n }\n\n var options = {\n vm: this$1.vm,\n classes: this$1.classes,\n classNames: this$1.classNames,\n delay: this$1.delay,\n scope: this$1.scope,\n events: this$1.events.join('|'),\n immediate: this$1.immediate,\n targetOf: this$1.id\n };\n\n // probably a component.\n if (isCallable(el.$watch)) {\n options.component = el;\n options.el = el.$el;\n options.getter = Resolver.resolveGetter(el.$el, el.$vnode);\n } else {\n options.el = el;\n options.getter = Resolver.resolveGetter(el, {});\n }\n\n this$1.dependencies.push({ name: name, field: new Field(options) });\n });\n};\n\n/**\n * Removes listeners.\n */\nField.prototype.unwatch = function unwatch (tag) {\n if ( tag === void 0 ) tag = null;\n\n if (!tag) {\n this.watchers.forEach(function (w) { return w.unwatch(); });\n this.watchers = [];\n return;\n }\n\n this.watchers.filter(function (w) { return tag.test(w.tag); }).forEach(function (w) { return w.unwatch(); });\n this.watchers = this.watchers.filter(function (w) { return !tag.test(w.tag); });\n};\n\n/**\n * Updates the element classes depending on each field flag status.\n */\nField.prototype.updateClasses = function updateClasses (isReset) {\n var this$1 = this;\n if ( isReset === void 0 ) isReset = false;\n\n if (!this.classes || this.isDisabled) { return; }\n var applyClasses = function (el) {\n toggleClass(el, this$1.classNames.dirty, this$1.flags.dirty);\n toggleClass(el, this$1.classNames.pristine, this$1.flags.pristine);\n toggleClass(el, this$1.classNames.touched, this$1.flags.touched);\n toggleClass(el, this$1.classNames.untouched, this$1.flags.untouched);\n\n // remove valid/invalid classes on reset.\n if (isReset) {\n toggleClass(el, this$1.classNames.valid, false);\n toggleClass(el, this$1.classNames.invalid, false);\n }\n\n // make sure we don't set any classes if the state is undetermined.\n if (!isNullOrUndefined(this$1.flags.valid) && this$1.flags.validated) {\n toggleClass(el, this$1.classNames.valid, this$1.flags.valid);\n }\n\n if (!isNullOrUndefined(this$1.flags.invalid) && this$1.flags.validated) {\n toggleClass(el, this$1.classNames.invalid, this$1.flags.invalid);\n }\n };\n\n if (!isCheckboxOrRadioInput(this.el)) {\n applyClasses(this.el);\n return;\n }\n\n var els = document.querySelectorAll((\"input[name=\\\"\" + (this.el.name) + \"\\\"]\"));\n toArray(els).forEach(applyClasses);\n};\n\n/**\n * Adds the listeners required for automatic classes and some flags.\n */\nField.prototype.addActionListeners = function addActionListeners () {\n var this$1 = this;\n\n // remove previous listeners.\n this.unwatch(/class/);\n\n if (!this.el) { return; }\n\n var onBlur = function () {\n this$1.flags.touched = true;\n this$1.flags.untouched = false;\n if (this$1.classes) {\n toggleClass(this$1.el, this$1.classNames.touched, true);\n toggleClass(this$1.el, this$1.classNames.untouched, false);\n }\n\n // only needed once.\n this$1.unwatch(/^class_blur$/);\n };\n\n var inputEvent = isTextInput(this.el) ? 'input' : 'change';\n var onInput = function () {\n this$1.flags.dirty = true;\n this$1.flags.pristine = false;\n if (this$1.classes) {\n toggleClass(this$1.el, this$1.classNames.pristine, false);\n toggleClass(this$1.el, this$1.classNames.dirty, true);\n }\n\n // only needed once.\n this$1.unwatch(/^class_input$/);\n };\n\n if (this.componentInstance && isCallable(this.componentInstance.$once)) {\n this.componentInstance.$once('input', onInput);\n this.componentInstance.$once('blur', onBlur);\n this.watchers.push({\n tag: 'class_input',\n unwatch: function () {\n this$1.componentInstance.$off('input', onInput);\n }\n });\n this.watchers.push({\n tag: 'class_blur',\n unwatch: function () {\n this$1.componentInstance.$off('blur', onBlur);\n }\n });\n return;\n }\n\n if (!this.el) { return; }\n\n addEventListener(this.el, inputEvent, onInput);\n // Checkboxes and radio buttons on Mac don't emit blur naturally, so we listen on click instead.\n var blurEvent = isCheckboxOrRadioInput(this.el) ? 'change' : 'blur';\n addEventListener(this.el, blurEvent, onBlur);\n this.watchers.push({\n tag: 'class_input',\n unwatch: function () {\n this$1.el.removeEventListener(inputEvent, onInput);\n }\n });\n\n this.watchers.push({\n tag: 'class_blur',\n unwatch: function () {\n this$1.el.removeEventListener(blurEvent, onBlur);\n }\n });\n};\n\nField.prototype.checkValueChanged = function checkValueChanged () {\n // handle some people initialize the value to null, since text inputs have empty string value.\n if (this.initialValue === null && this.value === '' && isTextInput(this.el)) {\n return false;\n }\n\n return this.value !== this.initialValue;\n};\n\n/**\n * Determines the suitable primary event to listen for.\n */\nField.prototype._determineInputEvent = function _determineInputEvent () {\n // if its a custom component, use the customized model event or the input event.\n if (this.componentInstance) {\n return (this.componentInstance.$options.model && this.componentInstance.$options.model.event) || 'input';\n }\n\n if (this.model && this.model.lazy) {\n return 'change';\n }\n\n if (isTextInput(this.el)) {\n return 'input';\n }\n\n return 'change';\n};\n\n/**\n * Determines the list of events to listen to.\n */\nField.prototype._determineEventList = function _determineEventList (defaultInputEvent) {\n var this$1 = this;\n\n // if no event is configured, or it is a component or a text input then respect the user choice.\n if (!this.events.length || this.componentInstance || isTextInput(this.el)) {\n return [].concat( this.events ).map(function (evt) {\n if (evt === 'input' && this$1.model && this$1.model.lazy) {\n return 'change';\n }\n\n return evt;\n });\n }\n\n // force suitable event for non-text type fields.\n return this.events.map(function (e) {\n if (e === 'input') {\n return defaultInputEvent;\n }\n\n return e;\n });\n};\n\n/**\n * Adds the listeners required for validation.\n */\nField.prototype.addValueListeners = function addValueListeners () {\n var this$1 = this;\n\n this.unwatch(/^input_.+/);\n if (!this.listen || !this.el) { return; }\n\n var token = { cancelled: false };\n var fn = this.targetOf ? function () {\n var target = this$1.validator._resolveField((\"#\" + (this$1.targetOf)));\n if (target && target.flags.validated) {\n this$1.validator.validate((\"#\" + (this$1.targetOf)));\n }\n } : function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // if its a DOM event, resolve the value, otherwise use the first parameter as the value.\n if (args.length === 0 || isEvent(args[0])) {\n args[0] = this$1.value;\n }\n\n this$1.flags.pending = true;\n this$1._cancellationToken = token;\n this$1.validator.validate((\"#\" + (this$1.id)), args[0]);\n };\n\n var inputEvent = this._determineInputEvent();\n var events = this._determineEventList(inputEvent);\n\n // if on input validation is requested.\n if (includes(events, inputEvent)) {\n var ctx = null;\n var expression = null;\n var watchCtxVm = false;\n // if its watchable from the context vm.\n if (this.model && this.model.expression) {\n ctx = this.vm;\n expression = this.model.expression;\n watchCtxVm = true;\n }\n\n // watch it from the custom component vm instead.\n if (!expression && this.componentInstance && this.componentInstance.$options.model) {\n ctx = this.componentInstance;\n expression = this.componentInstance.$options.model.prop || 'value';\n }\n\n if (ctx && expression) {\n var debouncedFn = debounce(fn, this.delay[inputEvent], token);\n var unwatch = ctx.$watch(expression, debouncedFn);\n this.watchers.push({\n tag: 'input_model',\n unwatch: function () {\n this$1.vm.$nextTick(function () {\n unwatch();\n });\n }\n });\n\n // filter out input event when we are watching from the context vm.\n if (watchCtxVm) {\n events = events.filter(function (e) { return e !== inputEvent; });\n }\n }\n }\n\n // Add events.\n events.forEach(function (e) {\n var debouncedFn = debounce(fn, this$1.delay[e], token);\n\n this$1._addComponentEventListener(e, debouncedFn);\n this$1._addHTMLEventListener(e, debouncedFn);\n });\n};\n\nField.prototype._addComponentEventListener = function _addComponentEventListener (evt, validate) {\n var this$1 = this;\n\n if (!this.componentInstance) { return; }\n\n this.componentInstance.$on(evt, validate);\n this.watchers.push({\n tag: 'input_vue',\n unwatch: function () {\n this$1.componentInstance.$off(evt, validate);\n }\n });\n};\n\nField.prototype._addHTMLEventListener = function _addHTMLEventListener (evt, validate) {\n var this$1 = this;\n\n if (!this.el || this.componentInstance) { return; }\n\n // listen for the current element.\n var addListener = function (el) {\n addEventListener(el, evt, validate);\n this$1.watchers.push({\n tag: 'input_native',\n unwatch: function () {\n el.removeEventListener(evt, validate);\n }\n });\n };\n\n addListener(this.el);\n if (!isCheckboxOrRadioInput(this.el)) {\n return;\n }\n\n var els = document.querySelectorAll((\"input[name=\\\"\" + (this.el.name) + \"\\\"]\"));\n toArray(els).forEach(function (el) {\n // skip if it is added by v-validate and is not the current element.\n if (el._veeValidateId && el !== this$1.el) {\n return;\n }\n\n addListener(el);\n });\n};\n\n/**\n * Updates aria attributes on the element.\n */\nField.prototype.updateAriaAttrs = function updateAriaAttrs () {\n var this$1 = this;\n\n if (!this.aria || !this.el || !isCallable(this.el.setAttribute)) { return; }\n\n var applyAriaAttrs = function (el) {\n el.setAttribute('aria-required', this$1.isRequired ? 'true' : 'false');\n el.setAttribute('aria-invalid', this$1.flags.invalid ? 'true' : 'false');\n };\n\n if (!isCheckboxOrRadioInput(this.el)) {\n applyAriaAttrs(this.el);\n return;\n }\n\n var els = document.querySelectorAll((\"input[name=\\\"\" + (this.el.name) + \"\\\"]\"));\n toArray(els).forEach(applyAriaAttrs);\n};\n\n/**\n * Updates the custom validity for the field.\n */\nField.prototype.updateCustomValidity = function updateCustomValidity () {\n if (!this.validity || !this.el || !isCallable(this.el.setCustomValidity) || !this.validator.errors) { return; }\n\n this.el.setCustomValidity(this.flags.valid ? '' : (this.validator.errors.firstById(this.id) || ''));\n};\n\n/**\n * Removes all listeners.\n */\nField.prototype.destroy = function destroy () {\n // ignore the result of any ongoing validation.\n if (this._cancellationToken) {\n this._cancellationToken.cancelled = true;\n }\n\n this.unwatch();\n this.dependencies.forEach(function (d) { return d.field.destroy(); });\n this.dependencies = [];\n};\n\nObject.defineProperties( Field.prototype, prototypeAccessors$1 );\n\n// \n\nvar FieldBag = function FieldBag (items) {\n if ( items === void 0 ) items = [];\n\n this.items = items || [];\n this.itemsById = this.items.reduce(function (itemsById, item) {\n itemsById[item.id] = item;\n return itemsById;\n }, {});\n};\n\nvar prototypeAccessors$2 = { length: { configurable: true } };\n\nFieldBag.prototype[typeof Symbol === 'function' ? Symbol.iterator : '@@iterator'] = function () {\n var this$1 = this;\n\n var index = 0;\n return {\n next: function () {\n return { value: this$1.items[index++], done: index > this$1.items.length };\n }\n };\n};\n\n/**\n * Gets the current items length.\n */\n\nprototypeAccessors$2.length.get = function () {\n return this.items.length;\n};\n\n/**\n * Finds the first field that matches the provided matcher object.\n */\nFieldBag.prototype.find = function find$1 (matcher) {\n return find(this.items, function (item) { return item.matches(matcher); });\n};\n\n/**\n * Finds the field with the given id, using a plain object as a map to link\n * ids to items faster than by looping over the array and matching.\n */\nFieldBag.prototype.findById = function findById (id) {\n return this.itemsById[id] || null;\n};\n\n/**\n * Filters the items down to the matched fields.\n */\nFieldBag.prototype.filter = function filter (matcher) {\n // multiple matchers to be tried.\n if (Array.isArray(matcher)) {\n return this.items.filter(function (item) { return matcher.some(function (m) { return item.matches(m); }); });\n }\n\n return this.items.filter(function (item) { return item.matches(matcher); });\n};\n\n/**\n * Maps the field items using the mapping function.\n */\nFieldBag.prototype.map = function map (mapper) {\n return this.items.map(mapper);\n};\n\n/**\n * Finds and removes the first field that matches the provided matcher object, returns the removed item.\n */\nFieldBag.prototype.remove = function remove (matcher) {\n var item = null;\n if (matcher instanceof Field) {\n item = matcher;\n } else {\n item = this.find(matcher);\n }\n\n if (!item) { return null; }\n\n var index = this.items.indexOf(item);\n this.items.splice(index, 1);\n delete this.itemsById[item.id];\n\n return item;\n};\n\n/**\n * Adds a field item to the list.\n */\nFieldBag.prototype.push = function push (item) {\n if (! (item instanceof Field)) {\n throw createError('FieldBag only accepts instances of Field that has an id defined.');\n }\n\n if (!item.id) {\n throw createError('Field id must be defined.');\n }\n\n if (this.findById(item.id)) {\n throw createError((\"Field with id \" + (item.id) + \" is already added.\"));\n }\n\n this.items.push(item);\n this.itemsById[item.id] = item;\n};\n\nObject.defineProperties( FieldBag.prototype, prototypeAccessors$2 );\n\nvar ScopedValidator = function ScopedValidator (base, vm) {\n this.id = vm._uid;\n this._base = base;\n this._paused = false;\n\n // create a mirror bag with limited component scope.\n this.errors = new ErrorBag(base.errors, this.id);\n};\n\nvar prototypeAccessors$3 = { flags: { configurable: true },rules: { configurable: true },fields: { configurable: true },dictionary: { configurable: true },locale: { configurable: true } };\n\nprototypeAccessors$3.flags.get = function () {\n var this$1 = this;\n\n return this._base.fields.items.filter(function (f) { return f.vmId === this$1.id; }).reduce(function (acc, field) {\n if (field.scope) {\n if (!acc[(\"$\" + (field.scope))]) {\n acc[(\"$\" + (field.scope))] = {};\n }\n\n acc[(\"$\" + (field.scope))][field.name] = field.flags;\n }\n\n acc[field.name] = field.flags;\n\n return acc;\n }, {});\n};\n\nprototypeAccessors$3.rules.get = function () {\n return this._base.rules;\n};\n\nprototypeAccessors$3.fields.get = function () {\n return new FieldBag(this._base.fields.filter({ vmId: this.id }));\n};\n\nprototypeAccessors$3.dictionary.get = function () {\n return this._base.dictionary;\n};\n\nprototypeAccessors$3.locale.get = function () {\n return this._base.locale;\n};\n\nprototypeAccessors$3.locale.set = function (val) {\n this._base.locale = val;\n};\n\nScopedValidator.prototype.localize = function localize () {\n var ref;\n\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n return (ref = this._base).localize.apply(ref, args);\n};\n\nScopedValidator.prototype.update = function update () {\n var ref;\n\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n return (ref = this._base).update.apply(ref, args);\n};\n\nScopedValidator.prototype.attach = function attach (opts) {\n var attachOpts = assign({}, opts, { vmId: this.id });\n\n return this._base.attach(attachOpts);\n};\n\nScopedValidator.prototype.pause = function pause () {\n this._paused = true;\n};\n\nScopedValidator.prototype.resume = function resume () {\n this._paused = false;\n};\n\nScopedValidator.prototype.remove = function remove (ruleName) {\n return this._base.remove(ruleName);\n};\n\nScopedValidator.prototype.detach = function detach (name, scope) {\n return this._base.detach(name, scope, this.id);\n};\n\nScopedValidator.prototype.extend = function extend () {\n var ref;\n\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n return (ref = this._base).extend.apply(ref, args);\n};\n\nScopedValidator.prototype.validate = function validate (descriptor, value, opts) {\n if ( opts === void 0 ) opts = {};\n\n if (this._paused) { return Promise.resolve(true); }\n\n return this._base.validate(descriptor, value, assign({}, { vmId: this.id }, opts || {}));\n};\n\nScopedValidator.prototype.verify = function verify () {\n var ref;\n\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n return (ref = this._base).verify.apply(ref, args);\n};\n\nScopedValidator.prototype.validateAll = function validateAll (values, opts) {\n if ( opts === void 0 ) opts = {};\n\n if (this._paused) { return Promise.resolve(true); }\n\n return this._base.validateAll(values, assign({}, { vmId: this.id }, opts || {}));\n};\n\nScopedValidator.prototype.validateScopes = function validateScopes (opts) {\n if ( opts === void 0 ) opts = {};\n\n if (this._paused) { return Promise.resolve(true); }\n\n return this._base.validateScopes(assign({}, { vmId: this.id }, opts || {}));\n};\n\nScopedValidator.prototype.destroy = function destroy () {\n delete this.id;\n delete this._base;\n};\n\nScopedValidator.prototype.reset = function reset (matcher) {\n return this._base.reset(Object.assign({}, matcher || {}, { vmId: this.id }));\n};\n\nScopedValidator.prototype.flag = function flag () {\n var ref;\n\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n return (ref = this._base).flag.apply(ref, args.concat( [this.id] ));\n};\n\nScopedValidator.prototype._resolveField = function _resolveField () {\n var ref;\n\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n return (ref = this._base)._resolveField.apply(ref, args);\n};\n\nObject.defineProperties( ScopedValidator.prototype, prototypeAccessors$3 );\n\nvar VALIDATOR = null;\n\nvar getValidator = function () {\n return VALIDATOR;\n};\n\nvar setValidator = function (value) {\n VALIDATOR = value;\n\n return value;\n};\n\n// \n\n/**\n * Checks if a parent validator instance was requested.\n */\nvar requestsValidator = function (injections) {\n if (isObject(injections) && injections.$validator) {\n return true;\n }\n\n return false;\n};\n\nvar mixin = {\n provide: function provide () {\n if (this.$validator && !isBuiltInComponent(this.$vnode)) {\n return {\n $validator: this.$validator\n };\n }\n\n return {};\n },\n beforeCreate: function beforeCreate () {\n // if built in do nothing.\n if (isBuiltInComponent(this.$vnode) || this.$options.$__veeInject === false) {\n return;\n }\n\n // if its a root instance set the config if it exists.\n if (!this.$parent) {\n setConfig(this.$options.$_veeValidate || {});\n }\n\n var options = resolveConfig(this);\n\n // if its a root instance, inject anyways, or if it requested a new instance.\n if (!this.$parent || (this.$options.$_veeValidate && /new/.test(this.$options.$_veeValidate.validator))) {\n this.$validator = new ScopedValidator(getValidator(), this);\n }\n\n var requested = requestsValidator(this.$options.inject);\n\n // if automatic injection is enabled and no instance was requested.\n if (! this.$validator && options.inject && !requested) {\n this.$validator = new ScopedValidator(getValidator(), this);\n }\n\n // don't inject errors or fieldBag as no validator was resolved.\n if (!requested && !this.$validator) {\n return;\n }\n\n // There is a validator but it isn't injected, mark as reactive.\n if (!requested && this.$validator) {\n var Vue = this.$options._base; // the vue constructor.\n Vue.util.defineReactive(this.$validator, 'errors', this.$validator.errors);\n }\n\n if (!this.$options.computed) {\n this.$options.computed = {};\n }\n\n this.$options.computed[options.errorBagName || 'errors'] = function errorBagGetter () {\n return this.$validator.errors;\n };\n this.$options.computed[options.fieldsBagName || 'fields'] = function fieldBagGetter () {\n return this.$validator.fields.items.reduce(function (acc, field) {\n if (field.scope) {\n if (!acc[(\"$\" + (field.scope))]) {\n acc[(\"$\" + (field.scope))] = {};\n }\n\n acc[(\"$\" + (field.scope))][field.name] = field.flags;\n\n return acc;\n }\n\n acc[field.name] = field.flags;\n\n return acc;\n }, {});\n };\n },\n beforeDestroy: function beforeDestroy () {\n if (this.$validator && this._uid === this.$validator.id) {\n this.$validator.errors.clear(); // remove errors generated by this component.\n }\n }\n};\n\n// \n\n/**\n * Finds the requested field by id from the context object.\n */\nfunction findField (el, context) {\n if (!context || !context.$validator) {\n return null;\n }\n\n return context.$validator.fields.findById(el._veeValidateId);\n}\nvar directive = {\n bind: function bind (el, binding, vnode) {\n var validator = vnode.context.$validator;\n if (!validator) {\n if (process.env.NODE_ENV !== 'production') {\n warn(\"No validator instance is present on vm, did you forget to inject '$validator'?\");\n }\n\n return;\n }\n\n var fieldOptions = Resolver.generate(el, binding, vnode);\n validator.attach(fieldOptions);\n },\n inserted: function inserted (el, binding, vnode) {\n var field = findField(el, vnode.context);\n var scope = Resolver.resolveScope(el, binding, vnode);\n\n // skip if scope hasn't changed.\n if (!field || scope === field.scope) { return; }\n\n // only update scope.\n field.update({ scope: scope });\n\n // allows the field to re-evaluated once more in the update hook.\n field.updated = false;\n },\n update: function update (el, binding, vnode) {\n var field = findField(el, vnode.context);\n\n // make sure we don't do unneccasary work if no important change was done.\n if (!field || (field.updated && isEqual(binding.value, binding.oldValue))) { return; }\n var scope = Resolver.resolveScope(el, binding, vnode);\n var rules = Resolver.resolveRules(el, binding, vnode);\n\n field.update({\n scope: scope,\n rules: rules\n });\n },\n unbind: function unbind (el, binding, ref) {\n var context = ref.context;\n\n var field = findField(el, context);\n if (!field) { return; }\n\n context.$validator.detach(field);\n }\n};\n\n// \n\nvar Validator = function Validator (validations, options, pluginContainer) {\n if ( options === void 0 ) options = { fastExit: true };\n if ( pluginContainer === void 0 ) pluginContainer = null;\n\n this.errors = new ErrorBag();\n this.fields = new FieldBag();\n this._createFields(validations);\n this.paused = false;\n this.fastExit = !isNullOrUndefined(options && options.fastExit) ? options.fastExit : true;\n this.$vee = pluginContainer || {\n _vm: {\n $nextTick: function (cb) { return isCallable(cb) ? cb() : Promise.resolve(); },\n $emit: function () {},\n $off: function () {}\n }\n };\n};\n\nvar prototypeAccessors$4 = { rules: { configurable: true },dictionary: { configurable: true },flags: { configurable: true },locale: { configurable: true } };\nvar staticAccessors$1 = { rules: { configurable: true },dictionary: { configurable: true },locale: { configurable: true } };\n\n/**\n * @deprecated\n */\nstaticAccessors$1.rules.get = function () {\n if (process.env.NODE_ENV !== 'production') {\n warn('this accessor will be deprecated, use `import { rules } from \"vee-validate\"` instead.');\n }\n\n return RuleContainer.rules;\n};\n\n/**\n * @deprecated\n */\nprototypeAccessors$4.rules.get = function () {\n if (process.env.NODE_ENV !== 'production') {\n warn('this accessor will be deprecated, use `import { rules } from \"vee-validate\"` instead.');\n }\n\n return RuleContainer.rules;\n};\n\nprototypeAccessors$4.dictionary.get = function () {\n return DictionaryResolver.getDriver();\n};\n\nstaticAccessors$1.dictionary.get = function () {\n return DictionaryResolver.getDriver();\n};\n\nprototypeAccessors$4.flags.get = function () {\n return this.fields.items.reduce(function (acc, field) {\n var obj;\n\n if (field.scope) {\n acc[(\"$\" + (field.scope))] = ( obj = {}, obj[field.name] = field.flags, obj );\n\n return acc;\n }\n\n acc[field.name] = field.flags;\n\n return acc;\n }, {});\n};\n\n/**\n * Getter for the current locale.\n */\nprototypeAccessors$4.locale.get = function () {\n return Validator.locale;\n};\n\n/**\n * Setter for the validator locale.\n */\nprototypeAccessors$4.locale.set = function (value) {\n Validator.locale = value;\n};\n\nstaticAccessors$1.locale.get = function () {\n return DictionaryResolver.getDriver().locale;\n};\n\n/**\n * Setter for the validator locale.\n */\nstaticAccessors$1.locale.set = function (value) {\n var hasChanged = value !== DictionaryResolver.getDriver().locale;\n DictionaryResolver.getDriver().locale = value;\n if (hasChanged && Validator.$vee && Validator.$vee._vm) {\n Validator.$vee._vm.$emit('localeChanged');\n }\n};\n\n/**\n * Static constructor.\n * @deprecated\n */\nValidator.create = function create (validations, options) {\n if (process.env.NODE_ENV !== 'production') {\n warn('Please use `new` to create new validator instances.');\n }\n\n return new Validator(validations, options);\n};\n\n/**\n * Adds a custom validator to the list of validation rules.\n */\nValidator.extend = function extend (name, validator, options) {\n if ( options === void 0 ) options = {};\n\n Validator._guardExtend(name, validator);\n // rules imported from the minimal bundle\n // will have the options embedded in them\n var mergedOpts = validator.options || {};\n Validator._merge(name, {\n validator: validator,\n paramNames: (options && options.paramNames) || validator.paramNames,\n options: assign({ hasTarget: false, immediate: true }, mergedOpts, options || {})\n });\n};\n\n/**\n * Removes a rule from the list of validators.\n * @deprecated\n */\nValidator.remove = function remove (name) {\n if (process.env.NODE_ENV !== 'production') {\n warn('this method will be deprecated, you can still override your rules with `extend`');\n }\n\n RuleContainer.remove(name);\n};\n\n/**\n * Adds and sets the current locale for the validator.\n*/\nValidator.prototype.localize = function localize (lang, dictionary) {\n Validator.localize(lang, dictionary);\n};\n\n/**\n * Adds and sets the current locale for the validator.\n */\nValidator.localize = function localize (lang, dictionary) {\n var obj;\n\n if (isObject(lang)) {\n DictionaryResolver.getDriver().merge(lang);\n return;\n }\n\n // merge the dictionary.\n if (dictionary) {\n var locale = lang || dictionary.name;\n dictionary = assign({}, dictionary);\n DictionaryResolver.getDriver().merge(( obj = {}, obj[locale] = dictionary, obj ));\n }\n\n if (lang) {\n // set the locale.\n Validator.locale = lang;\n }\n};\n\n/**\n * Registers a field to be validated.\n */\nValidator.prototype.attach = function attach (fieldOpts) {\n var this$1 = this;\n\n // We search for a field with the same name & scope, having persist enabled\n var oldFieldMatcher = { name: fieldOpts.name, scope: fieldOpts.scope, persist: true };\n var oldField = fieldOpts.persist ? this.fields.find(oldFieldMatcher) : null;\n\n if (oldField) {\n // We keep the flags of the old field, then we remove its instance\n fieldOpts.flags = oldField.flags;\n oldField.destroy();\n this.fields.remove(oldField);\n }\n\n // fixes initial value detection with v-model and select elements.\n var value = fieldOpts.initialValue;\n var field = new Field(fieldOpts);\n this.fields.push(field);\n\n // validate the field initially\n if (field.immediate) {\n this.$vee._vm.$nextTick(function () { return this$1.validate((\"#\" + (field.id)), value || field.value, { vmId: fieldOpts.vmId }); });\n } else {\n this._validate(field, value || field.value, { initial: true }).then(function (result) {\n field.flags.valid = result.valid;\n field.flags.invalid = !result.valid;\n });\n }\n\n return field;\n};\n\n/**\n * Sets the flags on a field.\n */\nValidator.prototype.flag = function flag (name, flags, uid) {\n if ( uid === void 0 ) uid = null;\n\n var field = this._resolveField(name, undefined, uid);\n if (!field || !flags) {\n return;\n }\n\n field.setFlags(flags);\n};\n\n/**\n * Removes a field from the validator.\n */\nValidator.prototype.detach = function detach (name, scope, uid) {\n var field = isCallable(name.destroy) ? name : this._resolveField(name, scope, uid);\n if (!field) { return; }\n\n // We destroy/remove the field & error instances if it's not a `persist` one\n if (!field.persist) {\n field.destroy();\n this.errors.remove(field.name, field.scope, field.vmId);\n this.fields.remove(field);\n }\n};\n\n/**\n * Adds a custom validator to the list of validation rules.\n */\nValidator.prototype.extend = function extend (name, validator, options) {\n if ( options === void 0 ) options = {};\n\n Validator.extend(name, validator, options);\n};\n\nValidator.prototype.reset = function reset (matcher) {\n var this$1 = this;\n\n // two ticks\n return this.$vee._vm.$nextTick().then(function () {\n return this$1.$vee._vm.$nextTick();\n }).then(function () {\n this$1.fields.filter(matcher).forEach(function (field) {\n field.waitFor(null);\n field.reset(); // reset field flags.\n this$1.errors.remove(field.name, field.scope, matcher && matcher.vmId);\n });\n });\n};\n\n/**\n * Updates a field, updating both errors and flags.\n */\nValidator.prototype.update = function update (id, ref) {\n var scope = ref.scope;\n\n var field = this._resolveField((\"#\" + id));\n if (!field) { return; }\n\n // remove old scope.\n this.errors.update(id, { scope: scope });\n};\n\n/**\n * Removes a rule from the list of validators.\n * @deprecated\n */\nValidator.prototype.remove = function remove (name) {\n Validator.remove(name);\n};\n\n/**\n * Validates a value against a registered field validations.\n */\nValidator.prototype.validate = function validate (fieldDescriptor, value, ref) {\n var this$1 = this;\n if ( ref === void 0 ) ref = {};\n var silent = ref.silent;\n var vmId = ref.vmId;\n\n if (this.paused) { return Promise.resolve(true); }\n\n // overload to validate all.\n if (isNullOrUndefined(fieldDescriptor)) {\n return this.validateScopes({ silent: silent, vmId: vmId });\n }\n\n // overload to validate scope-less fields.\n if (fieldDescriptor === '*') {\n return this.validateAll(undefined, { silent: silent, vmId: vmId });\n }\n\n // if scope validation was requested.\n if (/^(.+)\\.\\*$/.test(fieldDescriptor)) {\n var matched = fieldDescriptor.match(/^(.+)\\.\\*$/)[1];\n return this.validateAll(matched);\n }\n\n var field = this._resolveField(fieldDescriptor);\n if (!field) {\n return this._handleFieldNotFound(fieldDescriptor);\n }\n\n if (!silent) { field.flags.pending = true; }\n if (value === undefined) {\n value = field.value;\n }\n\n var validationPromise = this._validate(field, value);\n field.waitFor(validationPromise);\n\n return validationPromise.then(function (result) {\n if (!silent && field.isWaitingFor(validationPromise)) {\n // allow next validation to mutate the state.\n field.waitFor(null);\n this$1._handleValidationResults([result], vmId);\n }\n\n return result.valid;\n });\n};\n\n/**\n * Pauses the validator.\n */\nValidator.prototype.pause = function pause () {\n this.paused = true;\n\n return this;\n};\n\n/**\n * Resumes the validator.\n */\nValidator.prototype.resume = function resume () {\n this.paused = false;\n\n return this;\n};\n\n/**\n * Validates each value against the corresponding field validations.\n */\nValidator.prototype.validateAll = function validateAll (values, ref) {\n var this$1 = this;\n if ( ref === void 0 ) ref = {};\n var silent = ref.silent;\n var vmId = ref.vmId;\n\n if (this.paused) { return Promise.resolve(true); }\n\n var matcher = null;\n var providedValues = false;\n\n if (typeof values === 'string') {\n matcher = { scope: values, vmId: vmId };\n } else if (isObject(values)) {\n matcher = Object.keys(values).map(function (key) {\n return { name: key, vmId: vmId, scope: null };\n });\n providedValues = true;\n } else if (Array.isArray(values)) {\n matcher = values.map(function (key) {\n return typeof key === 'object' ? Object.assign({ vmId: vmId }, key) : { name: key, vmId: vmId };\n });\n } else {\n matcher = { scope: null, vmId: vmId };\n }\n\n return Promise.all(\n this.fields.filter(matcher).map(function (field) { return this$1._validate(field, providedValues ? values[field.name] : field.value); })\n ).then(function (results) {\n if (!silent) {\n this$1._handleValidationResults(results, vmId);\n }\n\n return results.every(function (t) { return t.valid; });\n });\n};\n\n/**\n * Validates all scopes.\n */\nValidator.prototype.validateScopes = function validateScopes (ref) {\n var this$1 = this;\n if ( ref === void 0 ) ref = {};\n var silent = ref.silent;\n var vmId = ref.vmId;\n\n if (this.paused) { return Promise.resolve(true); }\n\n return Promise.all(\n this.fields.filter({ vmId: vmId }).map(function (field) { return this$1._validate(field, field.value); })\n ).then(function (results) {\n if (!silent) {\n this$1._handleValidationResults(results, vmId);\n }\n\n return results.every(function (t) { return t.valid; });\n });\n};\n\n/**\n * Validates a value against the rules.\n */\nValidator.prototype.verify = function verify (value, rules, options) {\n if ( options === void 0 ) options = {};\n\n var field = {\n name: (options && options.name) || '{field}',\n rules: normalizeRules(rules),\n bails: getPath('bails', options, true),\n forceRequired: false,\n get isRequired () {\n return !!this.rules.required || this.forceRequired;\n }\n };\n\n var targetRules = Object.keys(field.rules).filter(RuleContainer.isTargetRule);\n if (targetRules.length && options && isObject(options.values)) {\n field.dependencies = targetRules.map(function (rule) {\n var ref = field.rules[rule];\n var targetKey = ref[0];\n\n return {\n name: rule,\n field: { value: options.values[targetKey] }\n };\n });\n }\n\n return this._validate(field, value).then(function (result) {\n var errors = [];\n var ruleMap = {};\n result.errors.forEach(function (e) {\n errors.push(e.msg);\n ruleMap[e.rule] = e.msg;\n });\n\n return {\n valid: result.valid,\n errors: errors,\n failedRules: ruleMap\n };\n });\n};\n\n/**\n * Perform cleanup.\n */\nValidator.prototype.destroy = function destroy () {\n this.$vee._vm.$off('localeChanged');\n};\n\n/**\n * Creates the fields to be validated.\n */\nValidator.prototype._createFields = function _createFields (validations) {\n var this$1 = this;\n\n if (!validations) { return; }\n\n Object.keys(validations).forEach(function (field) {\n var options = assign({}, { name: field, rules: validations[field] });\n this$1.attach(options);\n });\n};\n\n/**\n * Date rules need the existence of a format, so date_format must be supplied.\n */\nValidator.prototype._getDateFormat = function _getDateFormat (validations) {\n var format = null;\n if (validations.date_format && Array.isArray(validations.date_format)) {\n format = validations.date_format[0];\n }\n\n return format || DictionaryResolver.getDriver().getDateFormat(this.locale);\n};\n\n/**\n * Formats an error message for field and a rule.\n */\nValidator.prototype._formatErrorMessage = function _formatErrorMessage (field, rule, data, targetName) {\n if ( data === void 0 ) data = {};\n if ( targetName === void 0 ) targetName = null;\n\n var name = this._getFieldDisplayName(field);\n var params = this._getLocalizedParams(rule, targetName);\n\n return DictionaryResolver.getDriver().getFieldMessage(this.locale, field.name, rule.name, [name, params, data]);\n};\n\n/**\n * We need to convert any object param to an array format since the locales do not handle params as objects yet.\n */\nValidator.prototype._convertParamObjectToArray = function _convertParamObjectToArray (obj, ruleName) {\n if (Array.isArray(obj)) {\n return obj;\n }\n\n var paramNames = RuleContainer.getParamNames(ruleName);\n if (!paramNames || !isObject(obj)) {\n return obj;\n }\n\n return paramNames.reduce(function (prev, paramName) {\n if (paramName in obj) {\n prev.push(obj[paramName]);\n }\n\n return prev;\n }, []);\n};\n\n/**\n * Translates the parameters passed to the rule (mainly for target fields).\n */\nValidator.prototype._getLocalizedParams = function _getLocalizedParams (rule, targetName) {\n if ( targetName === void 0 ) targetName = null;\n\n var params = this._convertParamObjectToArray(rule.params, rule.name);\n if (rule.options.hasTarget && params && params[0]) {\n var localizedName = targetName || DictionaryResolver.getDriver().getAttribute(this.locale, params[0], params[0]);\n return [localizedName].concat(params.slice(1));\n }\n\n return params;\n};\n\n/**\n * Resolves an appropriate display name, first checking 'data-as' or the registered 'prettyName'\n */\nValidator.prototype._getFieldDisplayName = function _getFieldDisplayName (field) {\n return field.alias || DictionaryResolver.getDriver().getAttribute(this.locale, field.name, field.name);\n};\n\n/**\n * Converts an array of params to an object with named properties.\n * Only works if the rule is configured with a paramNames array.\n * Returns the same params if it cannot convert it.\n */\nValidator.prototype._convertParamArrayToObj = function _convertParamArrayToObj (params, ruleName) {\n var paramNames = RuleContainer.getParamNames(ruleName);\n if (!paramNames) {\n return params;\n }\n\n if (isObject(params)) {\n // check if the object is either a config object or a single parameter that is an object.\n var hasKeys = paramNames.some(function (name) { return Object.keys(params).indexOf(name) !== -1; });\n // if it has some of the keys, return it as is.\n if (hasKeys) {\n return params;\n }\n // otherwise wrap the object in an array.\n params = [params];\n }\n\n // Reduce the paramsNames to a param object.\n return params.reduce(function (prev, value, idx) {\n prev[paramNames[idx]] = value;\n\n return prev;\n }, {});\n};\n\n/**\n * Tests a single input value against a rule.\n */\nValidator.prototype._test = function _test (field, value, rule) {\n var this$1 = this;\n\n var validator = RuleContainer.getValidatorMethod(rule.name);\n var params = Array.isArray(rule.params) ? toArray(rule.params) : rule.params;\n if (!params) {\n params = [];\n }\n\n var targetName = null;\n if (!validator || typeof validator !== 'function') {\n return Promise.reject(createError((\"No such validator '\" + (rule.name) + \"' exists.\")));\n }\n\n // has field dependencies.\n if (rule.options.hasTarget && field.dependencies) {\n var target = find(field.dependencies, function (d) { return d.name === rule.name; });\n if (target) {\n targetName = target.field.alias;\n params = [target.field.value].concat(params.slice(1));\n }\n } else if (rule.name === 'required' && field.rejectsFalse) {\n // invalidate false if no args were specified and the field rejects false by default.\n params = params.length ? params : [true];\n }\n\n if (rule.options.isDate) {\n var dateFormat = this._getDateFormat(field.rules);\n if (rule.name !== 'date_format') {\n params.push(dateFormat);\n }\n }\n\n var result = validator(value, this._convertParamArrayToObj(params, rule.name));\n\n // If it is a promise.\n if (isCallable(result.then)) {\n return result.then(function (values) {\n var allValid = true;\n var data = {};\n if (Array.isArray(values)) {\n allValid = values.every(function (t) { return (isObject(t) ? t.valid : t); });\n } else { // Is a single object/boolean.\n allValid = isObject(values) ? values.valid : values;\n data = values.data;\n }\n\n return {\n valid: allValid,\n data: result.data,\n errors: allValid ? [] : [this$1._createFieldError(field, rule, data, targetName)]\n };\n });\n }\n\n if (!isObject(result)) {\n result = { valid: result, data: {} };\n }\n\n return {\n valid: result.valid,\n data: result.data,\n errors: result.valid ? [] : [this._createFieldError(field, rule, result.data, targetName)]\n };\n};\n\n/**\n * Merges a validator object into the RULES and Messages.\n */\nValidator._merge = function _merge (name, ref) {\n var validator = ref.validator;\n var options = ref.options;\n var paramNames = ref.paramNames;\n\n var validate = isCallable(validator) ? validator : validator.validate;\n if (validator.getMessage) {\n DictionaryResolver.getDriver().setMessage(Validator.locale, name, validator.getMessage);\n }\n\n RuleContainer.add(name, {\n validate: validate,\n options: options,\n paramNames: paramNames\n });\n};\n\n/**\n * Guards from extension violations.\n */\nValidator._guardExtend = function _guardExtend (name, validator) {\n if (isCallable(validator)) {\n return;\n }\n\n if (!isCallable(validator.validate)) {\n throw createError(\n (\"Extension Error: The validator '\" + name + \"' must be a function or have a 'validate' method.\")\n );\n }\n};\n\n/**\n * Creates a Field Error Object.\n */\nValidator.prototype._createFieldError = function _createFieldError (field, rule, data, targetName) {\n var this$1 = this;\n\n return {\n id: field.id,\n vmId: field.vmId,\n field: field.name,\n msg: this._formatErrorMessage(field, rule, data, targetName),\n rule: rule.name,\n scope: field.scope,\n regenerate: function () {\n return this$1._formatErrorMessage(field, rule, data, targetName);\n }\n };\n};\n\n/**\n * Tries different strategies to find a field.\n */\nValidator.prototype._resolveField = function _resolveField (name, scope, uid) {\n if (name[0] === '#') {\n return this.fields.findById(name.slice(1));\n }\n\n if (!isNullOrUndefined(scope)) {\n return this.fields.find({ name: name, scope: scope, vmId: uid });\n }\n\n if (includes(name, '.')) {\n var ref = name.split('.');\n var fieldScope = ref[0];\n var fieldName = ref.slice(1);\n var field = this.fields.find({ name: fieldName.join('.'), scope: fieldScope, vmId: uid });\n if (field) {\n return field;\n }\n }\n\n return this.fields.find({ name: name, scope: null, vmId: uid });\n};\n\n/**\n * Handles when a field is not found.\n */\nValidator.prototype._handleFieldNotFound = function _handleFieldNotFound (name, scope) {\n var fullName = isNullOrUndefined(scope) ? name : (\"\" + (!isNullOrUndefined(scope) ? scope + '.' : '') + name);\n\n return Promise.reject(createError(\n (\"Validating a non-existent field: \\\"\" + fullName + \"\\\". Use \\\"attach()\\\" first.\")\n ));\n};\n\n/**\n * Handles validation results.\n */\nValidator.prototype._handleValidationResults = function _handleValidationResults (results, vmId) {\n var this$1 = this;\n\n var matchers = results.map(function (result) { return ({ id: result.id }); });\n this.errors.removeById(matchers.map(function (m) { return m.id; }));\n // remove by name and scope to remove any custom errors added.\n results.forEach(function (result) {\n this$1.errors.remove(result.field, result.scope, vmId);\n });\n var allErrors = results.reduce(function (prev, curr) {\n prev.push.apply(prev, curr.errors);\n\n return prev;\n }, []);\n\n this.errors.add(allErrors);\n\n // handle flags.\n this.fields.filter(matchers).forEach(function (field) {\n var result = find(results, function (r) { return r.id === field.id; });\n field.setFlags({\n pending: false,\n valid: result.valid,\n validated: true\n });\n });\n};\n\nValidator.prototype._shouldSkip = function _shouldSkip (field, value) {\n // field is configured to run through the pipeline regardless\n if (field.bails === false) {\n return false;\n }\n\n // disabled fields are skipped if useConstraintAttrs is enabled in config\n if (field.isDisabled && getConfig().useConstraintAttrs) {\n return true;\n }\n\n // skip if the field is not required and has an empty value.\n return !field.isRequired && (isNullOrUndefined(value) || value === '' || isEmptyArray(value));\n};\n\nValidator.prototype._shouldBail = function _shouldBail (field) {\n // if the field was configured explicitly.\n if (field.bails !== undefined) {\n return field.bails;\n }\n\n return this.fastExit;\n};\n\n/**\n * Starts the validation process.\n */\nValidator.prototype._validate = function _validate (field, value, ref) {\n var this$1 = this;\n if ( ref === void 0 ) ref = {};\n var initial = ref.initial;\n\n var requireRules = Object.keys(field.rules).filter(RuleContainer.isRequireRule);\n\n field.forceRequired = false;\n requireRules.forEach(function (rule) {\n var ruleOptions = RuleContainer.getOptions(rule);\n var result = this$1._test(field, value, { name: rule, params: field.rules[rule], options: ruleOptions });\n\n if (isCallable(result.then)) { throw createError('Require rules cannot be async'); }\n if (!isObject(result)) { throw createError('Require rules has to return an object (see docs)'); }\n\n if (result.data.required === true) {\n field.forceRequired = true;\n }\n });\n\n if (this._shouldSkip(field, value)) {\n return Promise.resolve({ valid: true, id: field.id, field: field.name, scope: field.scope, errors: [] });\n }\n\n var promises = [];\n var errors = [];\n var isExitEarly = false;\n if (isCallable(field.checkValueChanged)) {\n field.flags.changed = field.checkValueChanged();\n }\n\n // use of '.some()' is to break iteration in middle by returning true\n Object.keys(field.rules).filter(function (rule) {\n if (!initial || !RuleContainer.has(rule)) { return true; }\n\n return RuleContainer.isImmediate(rule);\n }).some(function (rule) {\n var ruleOptions = RuleContainer.getOptions(rule);\n var result = this$1._test(field, value, { name: rule, params: field.rules[rule], options: ruleOptions });\n if (isCallable(result.then)) {\n promises.push(result);\n } else if (!result.valid && this$1._shouldBail(field)) {\n errors.push.apply(errors, result.errors);\n isExitEarly = true;\n } else {\n // promisify the result.\n promises.push(new Promise(function (resolve) { return resolve(result); }));\n }\n\n return isExitEarly;\n });\n\n if (isExitEarly) {\n return Promise.resolve({ valid: false, errors: errors, id: field.id, field: field.name, scope: field.scope });\n }\n\n return Promise.all(promises).then(function (results) {\n return results.reduce(function (prev, v) {\n var ref;\n\n if (!v.valid) {\n (ref = prev.errors).push.apply(ref, v.errors);\n }\n\n prev.valid = prev.valid && v.valid;\n\n return prev;\n }, { valid: true, errors: errors, id: field.id, field: field.name, scope: field.scope });\n });\n};\n\nObject.defineProperties( Validator.prototype, prototypeAccessors$4 );\nObject.defineProperties( Validator, staticAccessors$1 );\n\n// \n\nvar normalizeValue = function (value) {\n if (isObject(value)) {\n return Object.keys(value).reduce(function (prev, key) {\n prev[key] = normalizeValue(value[key]);\n\n return prev;\n }, {});\n }\n\n if (isCallable(value)) {\n return value('{0}', ['{1}', '{2}', '{3}']);\n }\n\n return value;\n};\n\nvar normalizeFormat = function (locale) {\n // normalize messages\n var dictionary = {};\n if (locale.messages) {\n dictionary.messages = normalizeValue(locale.messages);\n }\n\n if (locale.custom) {\n dictionary.custom = normalizeValue(locale.custom);\n }\n\n if (locale.attributes) {\n dictionary.attributes = locale.attributes;\n }\n\n if (!isNullOrUndefined(locale.dateFormat)) {\n dictionary.dateFormat = locale.dateFormat;\n }\n\n return dictionary;\n};\n\nvar I18nDictionary = function I18nDictionary (i18n, rootKey) {\n this.i18n = i18n;\n this.rootKey = rootKey;\n};\n\nvar prototypeAccessors$5 = { locale: { configurable: true } };\n\nprototypeAccessors$5.locale.get = function () {\n return this.i18n.locale;\n};\n\nprototypeAccessors$5.locale.set = function (value) {\n warn('Cannot set locale from the validator when using vue-i18n, use i18n.locale setter instead');\n};\n\nI18nDictionary.prototype.getDateFormat = function getDateFormat (locale) {\n return this.i18n.getDateTimeFormat(locale || this.locale);\n};\n\nI18nDictionary.prototype.setDateFormat = function setDateFormat (locale, value) {\n this.i18n.setDateTimeFormat(locale || this.locale, value);\n};\n\nI18nDictionary.prototype.getMessage = function getMessage (_, key, data) {\n var path = (this.rootKey) + \".messages.\" + key;\n var dataOptions = data;\n\n if (Array.isArray(data)) {\n dataOptions = [].concat.apply([], data);\n }\n\n if (this.i18n.te(path)) {\n return this.i18n.t(path, dataOptions);\n }\n\n // fallback to the fallback message\n if (this.i18n.te(path, this.i18n.fallbackLocale)) {\n return this.i18n.t(path, this.i18n.fallbackLocale, dataOptions);\n }\n\n // fallback to the root message\n return this.i18n.t(((this.rootKey) + \".messages._default\"), dataOptions);\n};\n\nI18nDictionary.prototype.getAttribute = function getAttribute (_, key, fallback) {\n if ( fallback === void 0 ) fallback = '';\n\n var path = (this.rootKey) + \".attributes.\" + key;\n if (this.i18n.te(path)) {\n return this.i18n.t(path);\n }\n\n return fallback;\n};\n\nI18nDictionary.prototype.getFieldMessage = function getFieldMessage (_, field, key, data) {\n var path = (this.rootKey) + \".custom.\" + field + \".\" + key;\n if (this.i18n.te(path)) {\n return this.i18n.t(path, data);\n }\n\n return this.getMessage(_, key, data);\n};\n\nI18nDictionary.prototype.merge = function merge$1 (dictionary) {\n var this$1 = this;\n\n Object.keys(dictionary).forEach(function (localeKey) {\n var obj;\n\n // i18n doesn't deep merge\n // first clone the existing locale (avoid mutations to locale)\n var clone = merge({}, getPath((localeKey + \".\" + (this$1.rootKey)), this$1.i18n.messages, {}));\n // Merge cloned locale with new one\n var locale = merge(clone, normalizeFormat(dictionary[localeKey]));\n this$1.i18n.mergeLocaleMessage(localeKey, ( obj = {}, obj[this$1.rootKey] = locale, obj ));\n if (locale.dateFormat) {\n this$1.i18n.setDateTimeFormat(localeKey, locale.dateFormat);\n }\n });\n};\n\nI18nDictionary.prototype.setMessage = function setMessage (locale, key, value) {\n var obj, obj$1;\n\n this.merge(( obj$1 = {}, obj$1[locale] = {\n messages: ( obj = {}, obj[key] = value, obj )\n }, obj$1 ));\n};\n\nI18nDictionary.prototype.setAttribute = function setAttribute (locale, key, value) {\n var obj, obj$1;\n\n this.merge(( obj$1 = {}, obj$1[locale] = {\n attributes: ( obj = {}, obj[key] = value, obj )\n }, obj$1 ));\n};\n\nObject.defineProperties( I18nDictionary.prototype, prototypeAccessors$5 );\n\nvar aggressive = function () { return ({\n on: ['input']\n}); };\n\nvar lazy = function () { return ({\n on: ['change']\n}); };\n\nvar eager = function (ref) {\n var errors = ref.errors;\n\n if (errors.length) {\n return {\n on: ['input']\n };\n }\n\n return {\n on: ['change', 'blur']\n };\n};\n\nvar passive = function () { return ({\n on: []\n}); };\n\nvar modes = {\n aggressive: aggressive,\n eager: eager,\n passive: passive,\n lazy: lazy\n};\n\n// \n\nvar Vue;\nvar pendingPlugins;\nvar pluginInstance;\n\nvar VeeValidate$1 = function VeeValidate (config, _Vue) {\n this.configure(config);\n pluginInstance = this;\n if (_Vue) {\n Vue = _Vue;\n }\n this._validator = setValidator(\n new Validator(null, { fastExit: config && config.fastExit }, this)\n );\n this._initVM(this.config);\n this._initI18n(this.config);\n};\n\nvar prototypeAccessors$6 = { i18nDriver: { configurable: true },config: { configurable: true } };\nvar staticAccessors$2 = { i18nDriver: { configurable: true },config: { configurable: true } };\n\nVeeValidate$1.setI18nDriver = function setI18nDriver (driver, instance) {\n DictionaryResolver.setDriver(driver, instance);\n};\n\nVeeValidate$1.configure = function configure (cfg) {\n setConfig(cfg);\n};\n\nVeeValidate$1.setMode = function setMode (mode, implementation) {\n setConfig({ mode: mode });\n if (!implementation) {\n return;\n }\n\n if (!isCallable(implementation)) {\n throw new Error('A mode implementation must be a function');\n }\n\n modes[mode] = implementation;\n};\n\nVeeValidate$1.use = function use (plugin, options) {\n if ( options === void 0 ) options = {};\n\n if (!isCallable(plugin)) {\n return warn('The plugin must be a callable function');\n }\n\n // Don't install plugins until vee-validate is installed.\n if (!pluginInstance) {\n if (!pendingPlugins) {\n pendingPlugins = [];\n }\n pendingPlugins.push({ plugin: plugin, options: options });\n return;\n }\n\n plugin({ Validator: Validator, ErrorBag: ErrorBag, Rules: Validator.rules }, options);\n};\nVeeValidate$1.install = function install (_Vue, opts) {\n if (Vue && _Vue === Vue) {\n if (process.env.NODE_ENV !== 'production') {\n warn('already installed, Vue.use(VeeValidate) should only be called once.');\n }\n return;\n }\n\n Vue = _Vue;\n pluginInstance = new VeeValidate$1(opts);\n // inject the plugin container statically into the validator class\n Validator.$vee = pluginInstance;\n\n detectPassiveSupport();\n\n Vue.mixin(mixin);\n Vue.directive('validate', directive);\n if (pendingPlugins) {\n pendingPlugins.forEach(function (ref) {\n var plugin = ref.plugin;\n var options = ref.options;\n\n VeeValidate$1.use(plugin, options);\n });\n pendingPlugins = null;\n }\n};\n\nprototypeAccessors$6.i18nDriver.get = function () {\n return DictionaryResolver.getDriver();\n};\n\nstaticAccessors$2.i18nDriver.get = function () {\n return DictionaryResolver.getDriver();\n};\n\nprototypeAccessors$6.config.get = function () {\n return getConfig();\n};\n\nstaticAccessors$2.config.get = function () {\n return getConfig();\n};\n\nVeeValidate$1.prototype._initVM = function _initVM (config) {\n var this$1 = this;\n\n this._vm = new Vue({\n data: function () { return ({\n errors: this$1._validator.errors,\n fields: this$1._validator.fields\n }); }\n });\n};\n\nVeeValidate$1.prototype._initI18n = function _initI18n (config) {\n var this$1 = this;\n\n var dictionary = config.dictionary;\n var i18n = config.i18n;\n var i18nRootKey = config.i18nRootKey;\n var locale = config.locale;\n var onLocaleChanged = function () {\n if (dictionary) {\n this$1.i18nDriver.merge(dictionary);\n }\n\n this$1._validator.errors.regenerate();\n };\n\n // i18 is being used for localization.\n if (i18n) {\n VeeValidate$1.setI18nDriver('i18n', new I18nDictionary(i18n, i18nRootKey));\n i18n._vm.$watch('locale', onLocaleChanged);\n } else if (typeof window !== 'undefined') {\n this._vm.$on('localeChanged', onLocaleChanged);\n }\n\n if (dictionary) {\n this.i18nDriver.merge(dictionary);\n }\n\n if (locale && !i18n) {\n this._validator.localize(locale);\n }\n};\n\nVeeValidate$1.prototype.configure = function configure (cfg) {\n setConfig(cfg);\n};\n\nObject.defineProperties( VeeValidate$1.prototype, prototypeAccessors$6 );\nObject.defineProperties( VeeValidate$1, staticAccessors$2 );\n\nVeeValidate$1.mixin = mixin;\nVeeValidate$1.directive = directive;\nVeeValidate$1.Validator = Validator;\nVeeValidate$1.ErrorBag = ErrorBag;\n\n/**\n * Formates file size.\n *\n * @param {Number|String} size\n */\nvar formatFileSize = function (size) {\n var units = ['Byte', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n var threshold = 1024;\n size = Number(size) * threshold;\n var i = size === 0 ? 0 : Math.floor(Math.log(size) / Math.log(threshold));\n return (((size / Math.pow(threshold, i)).toFixed(2) * 1) + \" \" + (units[i]));\n};\n\n/**\n * Checks if vee-validate is defined globally.\n */\nvar isDefinedGlobally = function () {\n return typeof VeeValidate !== 'undefined';\n};\n\nvar obj;\n\nvar messages = {\n _default: function (field) { return (\"The \" + field + \" value is not valid\"); },\n after: function (field, ref) {\n var target = ref[0];\n var inclusion = ref[1];\n\n return (\"The \" + field + \" must be after \" + (inclusion ? 'or equal to ' : '') + target);\n},\n alpha: function (field) { return (\"The \" + field + \" field may only contain alphabetic characters\"); },\n alpha_dash: function (field) { return (\"The \" + field + \" field may contain alpha-numeric characters as well as dashes and underscores\"); },\n alpha_num: function (field) { return (\"The \" + field + \" field may only contain alpha-numeric characters\"); },\n alpha_spaces: function (field) { return (\"The \" + field + \" field may only contain alphabetic characters as well as spaces\"); },\n before: function (field, ref) {\n var target = ref[0];\n var inclusion = ref[1];\n\n return (\"The \" + field + \" must be before \" + (inclusion ? 'or equal to ' : '') + target);\n},\n between: function (field, ref) {\n var min = ref[0];\n var max = ref[1];\n\n return (\"The \" + field + \" field must be between \" + min + \" and \" + max);\n},\n confirmed: function (field) { return (\"The \" + field + \" confirmation does not match\"); },\n credit_card: function (field) { return (\"The \" + field + \" field is invalid\"); },\n date_between: function (field, ref) {\n var min = ref[0];\n var max = ref[1];\n\n return (\"The \" + field + \" must be between \" + min + \" and \" + max);\n},\n date_format: function (field, ref) {\n var format = ref[0];\n\n return (\"The \" + field + \" must be in the format \" + format);\n},\n decimal: function (field, ref) {\n if ( ref === void 0 ) ref = [];\n var decimals = ref[0]; if ( decimals === void 0 ) decimals = '*';\n\n return (\"The \" + field + \" field must be numeric and may contain\" + (!decimals || decimals === '*' ? '' : ' ' + decimals) + \" decimal points\");\n},\n digits: function (field, ref) {\n var length = ref[0];\n\n return (\"The \" + field + \" field must be numeric and contains exactly \" + length + \" digits\");\n},\n dimensions: function (field, ref) {\n var width = ref[0];\n var height = ref[1];\n\n return (\"The \" + field + \" field must be \" + width + \" pixels by \" + height + \" pixels\");\n},\n email: function (field) { return (\"The \" + field + \" field must be a valid email\"); },\n excluded: function (field) { return (\"The \" + field + \" field must be a valid value\"); },\n ext: function (field) { return (\"The \" + field + \" field must be a valid file\"); },\n image: function (field) { return (\"The \" + field + \" field must be an image\"); },\n included: function (field) { return (\"The \" + field + \" field must be a valid value\"); },\n integer: function (field) { return (\"The \" + field + \" field must be an integer\"); },\n ip: function (field) { return (\"The \" + field + \" field must be a valid ip address\"); },\n ip_or_fqdn: function (field) { return (\"The \" + field + \" field must be a valid ip address or FQDN\"); },\n length: function (field, ref) {\n var length = ref[0];\n var max = ref[1];\n\n if (max) {\n return (\"The \" + field + \" length must be between \" + length + \" and \" + max);\n }\n\n return (\"The \" + field + \" length must be \" + length);\n },\n max: function (field, ref) {\n var length = ref[0];\n\n return (\"The \" + field + \" field may not be greater than \" + length + \" characters\");\n},\n max_value: function (field, ref) {\n var max = ref[0];\n\n return (\"The \" + field + \" field must be \" + max + \" or less\");\n},\n mimes: function (field) { return (\"The \" + field + \" field must have a valid file type\"); },\n min: function (field, ref) {\n var length = ref[0];\n\n return (\"The \" + field + \" field must be at least \" + length + \" characters\");\n},\n min_value: function (field, ref) {\n var min = ref[0];\n\n return (\"The \" + field + \" field must be \" + min + \" or more\");\n},\n numeric: function (field) { return (\"The \" + field + \" field may only contain numeric characters\"); },\n regex: function (field) { return (\"The \" + field + \" field format is invalid\"); },\n required: function (field) { return (\"The \" + field + \" field is required\"); },\n required_if: function (field, ref) {\n var target = ref[0];\n\n return (\"The \" + field + \" field is required when the \" + target + \" field has this value\");\n},\n size: function (field, ref) {\n var size = ref[0];\n\n return (\"The \" + field + \" size must be less than \" + (formatFileSize(size)));\n},\n url: function (field) { return (\"The \" + field + \" field is not a valid URL\"); }\n};\n\nvar locale = {\n name: 'en',\n messages: messages,\n attributes: {}\n};\n\nif (isDefinedGlobally()) {\n // eslint-disable-next-line\n VeeValidate.Validator.localize(( obj = {}, obj[locale.name] = locale, obj ));\n}\n\nfunction toInteger (dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number\n }\n\n return number < 0 ? Math.ceil(number) : Math.floor(number)\n}\n\nvar MILLISECONDS_IN_MINUTE = 60000;\n\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nfunction getTimezoneOffsetInMilliseconds (dirtyDate) {\n var date = new Date(dirtyDate.getTime());\n var baseTimezoneOffset = date.getTimezoneOffset();\n date.setSeconds(0, 0);\n var millisecondsPartOfTimezoneOffset = date.getTime() % MILLISECONDS_IN_MINUTE;\n\n return baseTimezoneOffset * MILLISECONDS_IN_MINUTE + millisecondsPartOfTimezoneOffset\n}\n\nvar MILLISECONDS_IN_HOUR = 3600000;\nvar MILLISECONDS_IN_MINUTE$1 = 60000;\nvar DEFAULT_ADDITIONAL_DIGITS = 2;\n\nvar patterns = {\n dateTimeDelimeter: /[T ]/,\n plainTime: /:/,\n timeZoneDelimeter: /[Z ]/i,\n\n // year tokens\n YY: /^(\\d{2})$/,\n YYY: [\n /^([+-]\\d{2})$/, // 0 additional digits\n /^([+-]\\d{3})$/, // 1 additional digit\n /^([+-]\\d{4})$/ // 2 additional digits\n ],\n YYYY: /^(\\d{4})/,\n YYYYY: [\n /^([+-]\\d{4})/, // 0 additional digits\n /^([+-]\\d{5})/, // 1 additional digit\n /^([+-]\\d{6})/ // 2 additional digits\n ],\n\n // date tokens\n MM: /^-(\\d{2})$/,\n DDD: /^-?(\\d{3})$/,\n MMDD: /^-?(\\d{2})-?(\\d{2})$/,\n Www: /^-?W(\\d{2})$/,\n WwwD: /^-?W(\\d{2})-?(\\d{1})$/,\n\n HH: /^(\\d{2}([.,]\\d*)?)$/,\n HHMM: /^(\\d{2}):?(\\d{2}([.,]\\d*)?)$/,\n HHMMSS: /^(\\d{2}):?(\\d{2}):?(\\d{2}([.,]\\d*)?)$/,\n\n // timezone tokens\n timezone: /([Z+-].*)$/,\n timezoneZ: /^(Z)$/,\n timezoneHH: /^([+-])(\\d{2})$/,\n timezoneHHMM: /^([+-])(\\d{2}):?(\\d{2})$/\n};\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If an argument is a string, the function tries to parse it.\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n * If the function cannot parse the string or the values are invalid, it returns Invalid Date.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n * All *date-fns* functions will throw `RangeError` if `options.additionalDigits` is not 0, 1, 2 or undefined.\n *\n * @param {Date|String|Number} argument - the value to convert\n * @param {Options} [options] - the object with options. See [Options]{@link https://date-fns.org/docs/Options}\n * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * var result = toDate('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * var result = toDate('+02014101', {additionalDigits: 1})\n * //=> Fri Apr 11 2014 00:00:00\n */\nfunction toDate (argument, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present')\n }\n\n if (argument === null) {\n return new Date(NaN)\n }\n\n var options = dirtyOptions || {};\n\n var additionalDigits = options.additionalDigits == null ? DEFAULT_ADDITIONAL_DIGITS : toInteger(options.additionalDigits);\n if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {\n throw new RangeError('additionalDigits must be 0, 1 or 2')\n }\n\n // Clone the date\n if (argument instanceof Date ||\n (typeof argument === 'object' && Object.prototype.toString.call(argument) === '[object Date]')\n ) {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime())\n } else if (typeof argument === 'number' || Object.prototype.toString.call(argument) === '[object Number]') {\n return new Date(argument)\n } else if (!(typeof argument === 'string' || Object.prototype.toString.call(argument) === '[object String]')) {\n return new Date(NaN)\n }\n\n var dateStrings = splitDateString(argument);\n\n var parseYearResult = parseYear(dateStrings.date, additionalDigits);\n var year = parseYearResult.year;\n var restDateString = parseYearResult.restDateString;\n\n var date = parseDate(restDateString, year);\n\n if (isNaN(date)) {\n return new Date(NaN)\n }\n\n if (date) {\n var timestamp = date.getTime();\n var time = 0;\n var offset;\n\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n\n if (isNaN(time)) {\n return new Date(NaN)\n }\n }\n\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone);\n if (isNaN(offset)) {\n return new Date(NaN)\n }\n } else {\n // get offset accurate to hour in timezones that change offset\n offset = getTimezoneOffsetInMilliseconds(new Date(timestamp + time));\n offset = getTimezoneOffsetInMilliseconds(new Date(timestamp + time + offset));\n }\n\n return new Date(timestamp + time + offset)\n } else {\n return new Date(NaN)\n }\n}\n\nfunction splitDateString (dateString) {\n var dateStrings = {};\n var array = dateString.split(patterns.dateTimeDelimeter);\n var timeString;\n\n if (patterns.plainTime.test(array[0])) {\n dateStrings.date = null;\n timeString = array[0];\n } else {\n dateStrings.date = array[0];\n timeString = array[1];\n if (patterns.timeZoneDelimeter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimeter)[0];\n timeString = dateString.substr(dateStrings.date.length, dateString.length);\n }\n }\n\n if (timeString) {\n var token = patterns.timezone.exec(timeString);\n if (token) {\n dateStrings.time = timeString.replace(token[1], '');\n dateStrings.timezone = token[1];\n } else {\n dateStrings.time = timeString;\n }\n }\n\n return dateStrings\n}\n\nfunction parseYear (dateString, additionalDigits) {\n var patternYYY = patterns.YYY[additionalDigits];\n var patternYYYYY = patterns.YYYYY[additionalDigits];\n\n var token;\n\n // YYYY or ±YYYYY\n token = patterns.YYYY.exec(dateString) || patternYYYYY.exec(dateString);\n if (token) {\n var yearString = token[1];\n return {\n year: parseInt(yearString, 10),\n restDateString: dateString.slice(yearString.length)\n }\n }\n\n // YY or ±YYY\n token = patterns.YY.exec(dateString) || patternYYY.exec(dateString);\n if (token) {\n var centuryString = token[1];\n return {\n year: parseInt(centuryString, 10) * 100,\n restDateString: dateString.slice(centuryString.length)\n }\n }\n\n // Invalid ISO-formatted year\n return {\n year: null\n }\n}\n\nfunction parseDate (dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) {\n return null\n }\n\n var token;\n var date;\n var month;\n var week;\n\n // YYYY\n if (dateString.length === 0) {\n date = new Date(0);\n date.setUTCFullYear(year);\n return date\n }\n\n // YYYY-MM\n token = patterns.MM.exec(dateString);\n if (token) {\n date = new Date(0);\n month = parseInt(token[1], 10) - 1;\n\n if (!validateDate(year, month)) {\n return new Date(NaN)\n }\n\n date.setUTCFullYear(year, month);\n return date\n }\n\n // YYYY-DDD or YYYYDDD\n token = patterns.DDD.exec(dateString);\n if (token) {\n date = new Date(0);\n var dayOfYear = parseInt(token[1], 10);\n\n if (!validateDayOfYearDate(year, dayOfYear)) {\n return new Date(NaN)\n }\n\n date.setUTCFullYear(year, 0, dayOfYear);\n return date\n }\n\n // YYYY-MM-DD or YYYYMMDD\n token = patterns.MMDD.exec(dateString);\n if (token) {\n date = new Date(0);\n month = parseInt(token[1], 10) - 1;\n var day = parseInt(token[2], 10);\n\n if (!validateDate(year, month, day)) {\n return new Date(NaN)\n }\n\n date.setUTCFullYear(year, month, day);\n return date\n }\n\n // YYYY-Www or YYYYWww\n token = patterns.Www.exec(dateString);\n if (token) {\n week = parseInt(token[1], 10) - 1;\n\n if (!validateWeekDate(year, week)) {\n return new Date(NaN)\n }\n\n return dayOfISOWeekYear(year, week)\n }\n\n // YYYY-Www-D or YYYYWwwD\n token = patterns.WwwD.exec(dateString);\n if (token) {\n week = parseInt(token[1], 10) - 1;\n var dayOfWeek = parseInt(token[2], 10) - 1;\n\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN)\n }\n\n return dayOfISOWeekYear(year, week, dayOfWeek)\n }\n\n // Invalid ISO-formatted date\n return null\n}\n\nfunction parseTime (timeString) {\n var token;\n var hours;\n var minutes;\n\n // hh\n token = patterns.HH.exec(timeString);\n if (token) {\n hours = parseFloat(token[1].replace(',', '.'));\n\n if (!validateTime(hours)) {\n return NaN\n }\n\n return (hours % 24) * MILLISECONDS_IN_HOUR\n }\n\n // hh:mm or hhmm\n token = patterns.HHMM.exec(timeString);\n if (token) {\n hours = parseInt(token[1], 10);\n minutes = parseFloat(token[2].replace(',', '.'));\n\n if (!validateTime(hours, minutes)) {\n return NaN\n }\n\n return (hours % 24) * MILLISECONDS_IN_HOUR +\n minutes * MILLISECONDS_IN_MINUTE$1\n }\n\n // hh:mm:ss or hhmmss\n token = patterns.HHMMSS.exec(timeString);\n if (token) {\n hours = parseInt(token[1], 10);\n minutes = parseInt(token[2], 10);\n var seconds = parseFloat(token[3].replace(',', '.'));\n\n if (!validateTime(hours, minutes, seconds)) {\n return NaN\n }\n\n return (hours % 24) * MILLISECONDS_IN_HOUR +\n minutes * MILLISECONDS_IN_MINUTE$1 +\n seconds * 1000\n }\n\n // Invalid ISO-formatted time\n return null\n}\n\nfunction parseTimezone (timezoneString) {\n var token;\n var absoluteOffset;\n\n // Z\n token = patterns.timezoneZ.exec(timezoneString);\n if (token) {\n return 0\n }\n\n var hours;\n\n // ±hh\n token = patterns.timezoneHH.exec(timezoneString);\n if (token) {\n hours = parseInt(token[2], 10);\n\n if (!validateTimezone()) {\n return NaN\n }\n\n absoluteOffset = hours * MILLISECONDS_IN_HOUR;\n return (token[1] === '+') ? -absoluteOffset : absoluteOffset\n }\n\n // ±hh:mm or ±hhmm\n token = patterns.timezoneHHMM.exec(timezoneString);\n if (token) {\n hours = parseInt(token[2], 10);\n var minutes = parseInt(token[3], 10);\n\n if (!validateTimezone(hours, minutes)) {\n return NaN\n }\n\n absoluteOffset = hours * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE$1;\n return (token[1] === '+') ? -absoluteOffset : absoluteOffset\n }\n\n return 0\n}\n\nfunction dayOfISOWeekYear (isoWeekYear, week, day) {\n week = week || 0;\n day = day || 0;\n var date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n var fourthOfJanuaryDay = date.getUTCDay() || 7;\n var diff = week * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date\n}\n\n// Validation functions\n\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\nfunction isLeapYearIndex (year) {\n return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0)\n}\n\nfunction validateDate (year, month, date) {\n if (month < 0 || month > 11) {\n return false\n }\n\n if (date != null) {\n if (date < 1) {\n return false\n }\n\n var isLeapYear = isLeapYearIndex(year);\n if (isLeapYear && date > DAYS_IN_MONTH_LEAP_YEAR[month]) {\n return false\n }\n if (!isLeapYear && date > DAYS_IN_MONTH[month]) {\n return false\n }\n }\n\n return true\n}\n\nfunction validateDayOfYearDate (year, dayOfYear) {\n if (dayOfYear < 1) {\n return false\n }\n\n var isLeapYear = isLeapYearIndex(year);\n if (isLeapYear && dayOfYear > 366) {\n return false\n }\n if (!isLeapYear && dayOfYear > 365) {\n return false\n }\n\n return true\n}\n\nfunction validateWeekDate (year, week, day) {\n if (week < 0 || week > 52) {\n return false\n }\n\n if (day != null && (day < 0 || day > 6)) {\n return false\n }\n\n return true\n}\n\nfunction validateTime (hours, minutes, seconds) {\n if (hours != null && (hours < 0 || hours >= 25)) {\n return false\n }\n\n if (minutes != null && (minutes < 0 || minutes >= 60)) {\n return false\n }\n\n if (seconds != null && (seconds < 0 || seconds >= 60)) {\n return false\n }\n\n return true\n}\n\nfunction validateTimezone (hours, minutes) {\n if (minutes != null && (minutes < 0 || minutes > 59)) {\n return false\n }\n\n return true\n}\n\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added\n * @param {Options} [options] - the object with options. See [Options]{@link https://date-fns.org/docs/Options}\n * @param {0|1|2} [options.additionalDigits=2] - passed to `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * var result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nfunction addMilliseconds (dirtyDate, dirtyAmount, dirtyOptions) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present')\n }\n\n var timestamp = toDate(dirtyDate, dirtyOptions).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount)\n}\n\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @param {Options} [options] - the object with options. See [Options]{@link https://date-fns.org/docs/Options}\n * @param {0|1|2} [options.additionalDigits=2] - passed to `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // For the valid date:\n * var result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * var result = isValid('2014-02-31')\n * //=> true\n *\n * @example\n * // For the invalid date:\n * var result = isValid(new Date(''))\n * //=> false\n */\nfunction isValid (dirtyDate, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present')\n }\n\n var date = toDate(dirtyDate, dirtyOptions);\n return !isNaN(date)\n}\n\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n\n halfAMinute: 'half a minute',\n\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\n\nfunction formatDistance (token, count, options) {\n options = options || {};\n\n var result;\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'in ' + result\n } else {\n return result + ' ago'\n }\n }\n\n return result\n}\n\nfunction buildFormatLongFn (args) {\n return function (dirtyOptions) {\n var options = dirtyOptions || {};\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format\n }\n}\n\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\n\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\n\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\n\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\n\nvar formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\n\nfunction formatRelative (token, date, baseDate, options) {\n return formatRelativeLocale[token]\n}\n\nfunction buildLocalizeFn (args) {\n return function (dirtyIndex, dirtyOptions) {\n var options = dirtyOptions || {};\n var width = options.width ? String(options.width) : args.defaultWidth;\n var context = options.context ? String(options.context) : 'standalone';\n\n var valuesArray;\n if (context === 'formatting' && args.formattingValues) {\n valuesArray = args.formattingValues[width] || args.formattingValues[args.defaultFormattingWidth];\n } else {\n valuesArray = args.values[width] || args.values[args.defaultWidth];\n }\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n return valuesArray[index]\n }\n}\n\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\n\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\n\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\n\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\n\nfunction ordinalNumber (dirtyNumber, dirtyOptions) {\n var number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`:\n //\n // var options = dirtyOptions || {}\n // var unit = String(options.unit)\n //\n // where `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'\n\n var rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st'\n case 2:\n return number + 'nd'\n case 3:\n return number + 'rd'\n }\n }\n return number + 'th'\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1\n }\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaulFormattingWidth: 'wide'\n })\n};\n\nfunction buildMatchPatternFn (args) {\n return function (dirtyString, dirtyOptions) {\n var string = String(dirtyString);\n var options = dirtyOptions || {};\n\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) {\n return null\n }\n var matchedString = matchResult[0];\n\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) {\n return null\n }\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n return {\n value: value,\n rest: string.slice(matchedString.length)\n }\n }\n}\n\nfunction buildMatchFn (args) {\n return function (dirtyString, dirtyOptions) {\n var string = String(dirtyString);\n var options = dirtyOptions || {};\n var width = options.width;\n\n var matchPattern = (width && args.matchPatterns[width]) || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null\n }\n var matchedString = matchResult[0];\n\n var parsePatterns = (width && args.parsePatterns[width]) || args.parsePatterns[args.defaultParseWidth];\n\n var value;\n if (Object.prototype.toString.call(parsePatterns) === '[object Array]') {\n value = parsePatterns.findIndex(function (pattern) {\n return pattern.test(string)\n });\n } else {\n value = findKey(parsePatterns, function (pattern) {\n return pattern.test(string)\n });\n }\n\n value = args.valueCallback ? args.valueCallback(value) : value;\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n return {\n value: value,\n rest: string.slice(matchedString.length)\n }\n }\n}\n\nfunction findKey (object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key\n }\n }\n}\n\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\n\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\n\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\n\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\n\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\n\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\n\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10)\n }\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1\n }\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale$1 = {\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1\n }\n};\n\nvar MILLISECONDS_IN_DAY = 86400000;\n\n// This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\nfunction getUTCDayOfYear (dirtyDate, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present')\n }\n\n var date = toDate(dirtyDate, dirtyOptions);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1\n}\n\n// This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\nfunction startOfUTCISOWeek (dirtyDate, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present')\n }\n\n var weekStartsOn = 1;\n\n var date = toDate(dirtyDate, dirtyOptions);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date\n}\n\n// This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\nfunction getUTCISOWeekYear (dirtyDate, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present')\n }\n\n var date = toDate(dirtyDate, dirtyOptions);\n var year = date.getUTCFullYear();\n\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear, dirtyOptions);\n\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear, dirtyOptions);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year\n } else {\n return year - 1\n }\n}\n\n// This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\nfunction startOfUTCISOWeekYear (dirtyDate, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present')\n }\n\n var year = getUTCISOWeekYear(dirtyDate, dirtyOptions);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary, dirtyOptions);\n return date\n}\n\nvar MILLISECONDS_IN_WEEK = 604800000;\n\n// This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\nfunction getUTCISOWeek (dirtyDate, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present')\n }\n\n var date = toDate(dirtyDate, dirtyOptions);\n var diff = startOfUTCISOWeek(date, dirtyOptions).getTime() - startOfUTCISOWeekYear(date, dirtyOptions).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1\n}\n\n// This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\nfunction startOfUTCWeek (dirtyDate, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present')\n }\n\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively')\n }\n\n var date = toDate(dirtyDate, options);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date\n}\n\n// This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\nfunction getUTCWeekYear (dirtyDate, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present')\n }\n\n var date = toDate(dirtyDate, dirtyOptions);\n var year = date.getUTCFullYear();\n\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale &&\n locale.options &&\n locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate =\n localeFirstWeekContainsDate == null\n ? 1\n : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate =\n options.firstWeekContainsDate == null\n ? defaultFirstWeekContainsDate\n : toInteger(options.firstWeekContainsDate);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively')\n }\n\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, dirtyOptions);\n\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, dirtyOptions);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year\n } else {\n return year - 1\n }\n}\n\n// This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\nfunction startOfUTCWeekYear (dirtyDate, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present')\n }\n\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale &&\n locale.options &&\n locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate =\n localeFirstWeekContainsDate == null\n ? 1\n : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate =\n options.firstWeekContainsDate == null\n ? defaultFirstWeekContainsDate\n : toInteger(options.firstWeekContainsDate);\n\n var year = getUTCWeekYear(dirtyDate, dirtyOptions);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, dirtyOptions);\n return date\n}\n\nvar MILLISECONDS_IN_WEEK$1 = 604800000;\n\n// This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\nfunction getUTCWeek (dirtyDate, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present')\n }\n\n var date = toDate(dirtyDate, dirtyOptions);\n var diff = startOfUTCWeek(date, dirtyOptions).getTime() - startOfUTCWeekYear(date, dirtyOptions).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK$1) + 1\n}\n\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function (date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {width: 'abbreviated'})\n // A, B\n case 'GGGGG':\n return localize.era(era, {width: 'narrow'})\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return localize.era(era, {width: 'wide'})\n }\n },\n\n // Year\n y: function (date, token, localize, options) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n var signedYear = date.getUTCFullYear();\n\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n\n // Two digit year\n if (token === 'yy') {\n var twoDigitYear = year % 100;\n return addLeadingZeros(twoDigitYear, 2)\n }\n\n // Ordinal number\n if (token === 'yo') {\n return localize.ordinalNumber(year, {unit: 'year'})\n }\n\n // Padding\n return addLeadingZeros(year, token.length)\n },\n\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options);\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2)\n }\n\n // Ordinal number\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {unit: 'year'})\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length)\n },\n\n // ISO week-numbering year\n R: function (date, token, localize, options) {\n var isoWeekYear = getUTCISOWeekYear(date, options);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length)\n },\n\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token, localize, options) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length)\n },\n\n // Quarter\n Q: function (date, token, localize, options) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter)\n // 01, 02, 03, 04\n case 'QQ':\n return addLeadingZeros(quarter, 2)\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return localize.ordinalNumber(quarter, {unit: 'quarter'})\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return localize.quarter(quarter, {width: 'abbreviated', context: 'formatting'})\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return localize.quarter(quarter, {width: 'narrow', context: 'formatting'})\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {width: 'wide', context: 'formatting'})\n }\n },\n\n // Stand-alone quarter\n q: function (date, token, localize, options) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter)\n // 01, 02, 03, 04\n case 'qq':\n return addLeadingZeros(quarter, 2)\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return localize.ordinalNumber(quarter, {unit: 'quarter'})\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return localize.quarter(quarter, {width: 'abbreviated', context: 'standalone'})\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return localize.quarter(quarter, {width: 'narrow', context: 'standalone'})\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return localize.quarter(quarter, {width: 'wide', context: 'standalone'})\n }\n },\n\n // Month\n M: function (date, token, localize, options) {\n var month = date.getUTCMonth();\n switch (token) {\n // 1, 2, ..., 12\n case 'M':\n return String(month + 1)\n // 01, 02, ..., 12\n case 'MM':\n return addLeadingZeros(month + 1, 2)\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return localize.ordinalNumber(month + 1, {unit: 'month'})\n // Jan, Feb, ..., Dec\n case 'MMM':\n return localize.month(month, {width: 'abbreviated', context: 'formatting'})\n // J, F, ..., D\n case 'MMMMM':\n return localize.month(month, {width: 'narrow', context: 'formatting'})\n // January, February, ..., December\n case 'MMMM':\n default:\n return localize.month(month, {width: 'wide', context: 'formatting'})\n }\n },\n\n // Stand-alone month\n L: function (date, token, localize, options) {\n var month = date.getUTCMonth();\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1)\n // 01, 02, ..., 12\n case 'LL':\n return addLeadingZeros(month + 1, 2)\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return localize.ordinalNumber(month + 1, {unit: 'month'})\n // Jan, Feb, ..., Dec\n case 'LLL':\n return localize.month(month, {width: 'abbreviated', context: 'standalone'})\n // J, F, ..., D\n case 'LLLLL':\n return localize.month(month, {width: 'narrow', context: 'standalone'})\n // January, February, ..., December\n case 'LLLL':\n default:\n return localize.month(month, {width: 'wide', context: 'standalone'})\n }\n },\n\n // Local week of year\n w: function (date, token, localize, options) {\n var week = getUTCWeek(date, options);\n\n if (token === 'wo') {\n return localize.ordinalNumber(week, {unit: 'week'})\n }\n\n return addLeadingZeros(week, token.length)\n },\n\n // ISO week of year\n I: function (date, token, localize, options) {\n var isoWeek = getUTCISOWeek(date, options);\n\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {unit: 'week'})\n }\n\n return addLeadingZeros(isoWeek, token.length)\n },\n\n // Day of the month\n d: function (date, token, localize, options) {\n var dayOfMonth = date.getUTCDate();\n\n if (token === 'do') {\n return localize.ordinalNumber(dayOfMonth, {unit: 'date'})\n }\n\n return addLeadingZeros(dayOfMonth, token.length)\n },\n\n // Day of year\n D: function (date, token, localize, options) {\n var dayOfYear = getUTCDayOfYear(date, options);\n\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {unit: 'dayOfYear'})\n }\n\n return addLeadingZeros(dayOfYear, token.length)\n },\n\n // Day of week\n E: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {width: 'abbreviated', context: 'formatting'})\n // T\n case 'EEEEE':\n return localize.day(dayOfWeek, {width: 'narrow', context: 'formatting'})\n // Tu\n case 'EEEEEE':\n return localize.day(dayOfWeek, {width: 'short', context: 'formatting'})\n // Tuesday\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {width: 'wide', context: 'formatting'})\n }\n },\n\n // Local day of week\n e: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = ((dayOfWeek - options.weekStartsOn + 8) % 7) || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek)\n // Padded numerical value\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2)\n // 1st, 2nd, ..., 7th\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {unit: 'day'})\n case 'eee':\n return localize.day(dayOfWeek, {width: 'abbreviated', context: 'formatting'})\n // T\n case 'eeeee':\n return localize.day(dayOfWeek, {width: 'narrow', context: 'formatting'})\n // Tu\n case 'eeeeee':\n return localize.day(dayOfWeek, {width: 'short', context: 'formatting'})\n // Tuesday\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {width: 'wide', context: 'formatting'})\n }\n },\n\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = ((dayOfWeek - options.weekStartsOn + 8) % 7) || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek)\n // Padded numberical value\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length)\n // 1st, 2nd, ..., 7th\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {unit: 'day'})\n case 'ccc':\n return localize.day(dayOfWeek, {width: 'abbreviated', context: 'standalone'})\n // T\n case 'ccccc':\n return localize.day(dayOfWeek, {width: 'narrow', context: 'standalone'})\n // Tu\n case 'cccccc':\n return localize.day(dayOfWeek, {width: 'short', context: 'standalone'})\n // Tuesday\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {width: 'wide', context: 'standalone'})\n }\n },\n\n // ISO day of week\n i: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek)\n // 02\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length)\n // 2nd\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {unit: 'day'})\n // Tue\n case 'iii':\n return localize.day(dayOfWeek, {width: 'abbreviated', context: 'formatting'})\n // T\n case 'iiiii':\n return localize.day(dayOfWeek, {width: 'narrow', context: 'formatting'})\n // Tu\n case 'iiiiii':\n return localize.day(dayOfWeek, {width: 'short', context: 'formatting'})\n // Tuesday\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {width: 'wide', context: 'formatting'})\n }\n },\n\n // AM or PM\n a: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = (hours / 12) >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {width: 'abbreviated', context: 'formatting'})\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {width: 'narrow', context: 'formatting'})\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {width: 'wide', context: 'formatting'})\n }\n },\n\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = (hours / 12) >= 1 ? 'pm' : 'am';\n }\n\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {width: 'abbreviated', context: 'formatting'})\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {width: 'narrow', context: 'formatting'})\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {width: 'wide', context: 'formatting'})\n }\n },\n\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {width: 'abbreviated', context: 'formatting'})\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {width: 'narrow', context: 'formatting'})\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {width: 'wide', context: 'formatting'})\n }\n },\n\n // Hour [1-12]\n h: function (date, token, localize, options) {\n var hours = date.getUTCHours() % 12;\n\n if (hours === 0) {\n hours = 12;\n }\n\n if (token === 'ho') {\n return localize.ordinalNumber(hours, {unit: 'hour'})\n }\n\n return addLeadingZeros(hours, token.length)\n },\n\n // Hour [0-23]\n H: function (date, token, localize, options) {\n var hours = date.getUTCHours();\n\n if (token === 'Ho') {\n return localize.ordinalNumber(hours, {unit: 'hour'})\n }\n\n return addLeadingZeros(hours, token.length)\n },\n\n // Hour [0-11]\n K: function (date, token, localize, options) {\n var hours = date.getUTCHours() % 12;\n\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {unit: 'hour'})\n }\n\n return addLeadingZeros(hours, token.length)\n },\n\n // Hour [1-24]\n k: function (date, token, localize, options) {\n var hours = date.getUTCHours();\n\n if (hours === 0) {\n hours = 24;\n }\n\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {unit: 'hour'})\n }\n\n return addLeadingZeros(hours, token.length)\n },\n\n // Minute\n m: function (date, token, localize, options) {\n var minutes = date.getUTCMinutes();\n\n if (token === 'mo') {\n return localize.ordinalNumber(minutes, {unit: 'minute'})\n }\n\n return addLeadingZeros(minutes, token.length)\n },\n\n // Second\n s: function (date, token, localize, options) {\n var seconds = date.getUTCSeconds();\n\n if (token === 'so') {\n return localize.ordinalNumber(seconds, {unit: 'second'})\n }\n\n return addLeadingZeros(seconds, token.length)\n },\n\n // Fraction of second\n S: function (date, token, localize, options) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, numberOfDigits)\n },\n\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return 'Z'\n }\n\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset)\n\n // Hours, minutes and optional seconds without `:` delimeter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case 'XXXX':\n case 'XX': // Hours and minutes without `:` delimeter\n return formatTimezone(timezoneOffset)\n\n // Hours, minutes and optional seconds with `:` delimeter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimeter\n default:\n return formatTimezone(timezoneOffset, ':')\n }\n },\n\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset)\n\n // Hours, minutes and optional seconds without `:` delimeter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case 'xxxx':\n case 'xx': // Hours and minutes without `:` delimeter\n return formatTimezone(timezoneOffset)\n\n // Hours, minutes and optional seconds with `:` delimeter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimeter\n default:\n return formatTimezone(timezoneOffset, ':')\n }\n },\n\n // Timezone (GMT)\n O: function (date, token, localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':')\n // Long\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':')\n }\n },\n\n // Timezone (specific non-location)\n z: function (date, token, localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':')\n // Long\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':')\n }\n },\n\n // Seconds timestamp\n t: function (date, token, localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length)\n },\n\n // Milliseconds timestamp\n T: function (date, token, localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length)\n }\n};\n\nfunction addLeadingZeros (number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return sign + output\n}\n\nfunction formatTimezone (offset, dirtyDelimeter) {\n var delimeter = dirtyDelimeter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimeter + minutes\n}\n\nfunction formatTimezoneWithOptionalMinutes (offset, dirtyDelimeter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2)\n }\n return formatTimezone(offset, dirtyDelimeter)\n}\n\nfunction formatTimezoneShort (offset, dirtyDelimeter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours)\n }\n var delimeter = dirtyDelimeter || '';\n return sign + String(hours) + delimeter + addLeadingZeros(minutes, 2)\n}\n\nfunction dateLongFormatter (pattern, formatLong, options) {\n switch (pattern) {\n case 'P':\n return formatLong.date({width: 'short'})\n case 'PP':\n return formatLong.date({width: 'medium'})\n case 'PPP':\n return formatLong.date({width: 'long'})\n case 'PPPP':\n default:\n return formatLong.date({width: 'full'})\n }\n}\n\nfunction timeLongFormatter (pattern, formatLong, options) {\n switch (pattern) {\n case 'p':\n return formatLong.time({width: 'short'})\n case 'pp':\n return formatLong.time({width: 'medium'})\n case 'ppp':\n return formatLong.time({width: 'long'})\n case 'pppp':\n default:\n return formatLong.time({width: 'full'})\n }\n}\n\nfunction dateTimeLongFormatter (pattern, formatLong, options) {\n var matchResult = pattern.match(/(P+)(p+)?/);\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong)\n }\n\n var dateTimeFormat;\n\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({width: 'short'});\n break\n case 'PP':\n dateTimeFormat = formatLong.dateTime({width: 'medium'});\n break\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({width: 'long'});\n break\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({width: 'full'});\n break\n }\n\n return dateTimeFormat\n .replace('{{date}}', dateLongFormatter(datePattern, formatLong))\n .replace('{{time}}', timeLongFormatter(timePattern, formatLong))\n}\n\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\n\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|String|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted\n * @param {Options} [options] - the object with options. See [Options]{@link https://date-fns.org/docs/Options}\n * @param {0|1|2} [options.additionalDigits=2] - passed to `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * var result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\nfunction subMilliseconds (dirtyDate, dirtyAmount, dirtyOptions) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present')\n }\n\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount, dirtyOptions)\n}\n\nvar protectedTokens = ['D', 'DD', 'YY', 'YYYY'];\n\nfunction isProtectedToken(token) {\n return protectedTokens.indexOf(token) !== -1\n}\n\nfunction throwProtectedError(token) {\n throw new RangeError(\n '`options.awareOfUnicodeTokens` must be set to `true` to use `' +\n token +\n '` token; see: https://git.io/fxCyr'\n )\n}\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nvar escapedStringRegExp = /^'(.*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\n\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 8 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 8 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Su | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Su | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Su, Sa | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Su | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Su | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | AM, PM | a..aaa | AM, PM | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bbb | AM, PM, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 1, 2, ..., 11, 0 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 0001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 05/29/1453 | 7 |\n * | | PP | May 29, 1453 | 7 |\n * | | PPP | May 29th, 1453 | 7 |\n * | | PPPP | Sunday, May 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 05/29/1453, 12:00 AM | 7 |\n * | | PPpp | May 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | May 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Sunday, May 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. These tokens are often confused with others. See: https://git.io/fxCyr\n *\n * @param {Date|String|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Options} [options] - the object with options. See [Options]{@link https://date-fns.org/docs/Options}\n * @param {0|1|2} [options.additionalDigits=2] - passed to `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {Boolean} [options.awareOfUnicodeTokens=false] - if true, allows usage of Unicode tokens causes confusion:\n * - Some of the day of year tokens (`D`, `DD`) that are confused with the day of month tokens (`d`, `dd`).\n * - Some of the local week-numbering year tokens (`YY`, `YYYY`) that are confused with the calendar year tokens (`yy`, `yyyy`).\n * See: https://git.io/fxCyr\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} `options.awareOfUnicodeTokens` must be set to `true` to use `XX` token; see: https://git.io/fxCyr\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * var result = format(\n * new Date(2014, 1, 11),\n * 'MM/dd/yyyy'\n * )\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * var result = format(\n * new Date(2014, 6, 2),\n * \"do 'de' MMMM yyyy\",\n * {locale: eoLocale}\n * )\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * var result = format(\n * new Date(2014, 6, 2, 15),\n * \"h 'o''clock'\"\n * )\n * //=> \"3 o'clock\"\n */\nfunction format(dirtyDate, dirtyFormatStr, dirtyOptions) {\n if (arguments.length < 2) {\n throw new TypeError(\n '2 arguments required, but only ' + arguments.length + ' present'\n )\n }\n\n var formatStr = String(dirtyFormatStr);\n var options = dirtyOptions || {};\n\n var locale = options.locale || locale$1;\n\n var localeFirstWeekContainsDate =\n locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate =\n localeFirstWeekContainsDate == null\n ? 1\n : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate =\n options.firstWeekContainsDate == null\n ? defaultFirstWeekContainsDate\n : toInteger(options.firstWeekContainsDate);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError(\n 'firstWeekContainsDate must be between 1 and 7 inclusively'\n )\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn =\n localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn =\n options.weekStartsOn == null\n ? defaultWeekStartsOn\n : toInteger(options.weekStartsOn);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively')\n }\n\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property')\n }\n\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property')\n }\n\n var originalDate = toDate(dirtyDate, options);\n\n if (!isValid(originalDate, options)) {\n return 'Invalid Date'\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset, options);\n\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n\n var result = formatStr\n .match(longFormattingTokensRegExp)\n .map(function(substring) {\n var firstCharacter = substring[0];\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong, formatterOptions)\n }\n return substring\n })\n .join('')\n .match(formattingTokensRegExp)\n .map(function(substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\"\n }\n\n var firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring)\n }\n\n var formatter = formatters[firstCharacter];\n if (formatter) {\n if (!options.awareOfUnicodeTokens && isProtectedToken(substring)) {\n throwProtectedError(substring);\n }\n return formatter(utcDate, substring, locale.localize, formatterOptions)\n }\n\n return substring\n })\n .join('');\n\n return result\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\")\n}\n\n/**\n * @name isAfter\n * @category Common Helpers\n * @summary Is the first date after the second one?\n *\n * @description\n * Is the first date after the second one?\n *\n * @param {Date|String|Number} date - the date that should be after the other one to return true\n * @param {Date|String|Number} dateToCompare - the date to compare with\n * @param {Options} [options] - the object with options. See [Options]{@link https://date-fns.org/docs/Options}\n * @param {0|1|2} [options.additionalDigits=2] - passed to `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * @returns {Boolean} the first date is after the second date\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Is 10 July 1989 after 11 February 1987?\n * var result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> true\n */\nfunction isAfter (dirtyDate, dirtyDateToCompare, dirtyOptions) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present')\n }\n\n var date = toDate(dirtyDate, dirtyOptions);\n var dateToCompare = toDate(dirtyDateToCompare, dirtyOptions);\n return date.getTime() > dateToCompare.getTime()\n}\n\n/**\n * @name isBefore\n * @category Common Helpers\n * @summary Is the first date before the second one?\n *\n * @description\n * Is the first date before the second one?\n *\n * @param {Date|String|Number} date - the date that should be before the other one to return true\n * @param {Date|String|Number} dateToCompare - the date to compare with\n * @param {Options} [options] - the object with options. See [Options]{@link https://date-fns.org/docs/Options}\n * @param {0|1|2} [options.additionalDigits=2] - passed to `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * @returns {Boolean} the first date is before the second date\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Is 10 July 1989 before 11 February 1987?\n * var result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> false\n */\nfunction isBefore (dirtyDate, dirtyDateToCompare, dirtyOptions) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present')\n }\n\n var date = toDate(dirtyDate, dirtyOptions);\n var dateToCompare = toDate(dirtyDateToCompare, dirtyOptions);\n return date.getTime() < dateToCompare.getTime()\n}\n\n/**\n * @name isEqual\n * @category Common Helpers\n * @summary Are the given dates equal?\n *\n * @description\n * Are the given dates equal?\n *\n * @param {Date|String|Number} dateLeft - the first date to compare\n * @param {Date|String|Number} dateRight - the second date to compare\n * @param {Options} [options] - the object with options. See [Options]{@link https://date-fns.org/docs/Options}\n * @param {0|1|2} [options.additionalDigits=2] - passed to `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * @returns {Boolean} the dates are equal\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Are 2 July 2014 06:30:45.000 and 2 July 2014 06:30:45.500 equal?\n * var result = isEqual(\n * new Date(2014, 6, 2, 6, 30, 45, 0)\n * new Date(2014, 6, 2, 6, 30, 45, 500)\n * )\n * //=> false\n */\nfunction isEqual$1 (dirtyLeftDate, dirtyRightDate, dirtyOptions) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present')\n }\n\n var dateLeft = toDate(dirtyLeftDate, dirtyOptions);\n var dateRight = toDate(dirtyRightDate, dirtyOptions);\n return dateLeft.getTime() === dateRight.getTime()\n}\n\n// This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\nfunction setUTCDay (dirtyDate, dirtyDay, dirtyOptions) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present')\n }\n\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively')\n }\n\n var date = toDate(dirtyDate, dirtyOptions);\n var day = toInteger(dirtyDay);\n\n var currentDay = date.getUTCDay();\n\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n\n date.setUTCDate(date.getUTCDate() + diff);\n return date\n}\n\n// This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\nfunction setUTCWeek (dirtyDate, dirtyWeek, dirtyOptions) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present')\n }\n\n var date = toDate(dirtyDate, dirtyOptions);\n var week = toInteger(dirtyWeek);\n var diff = getUTCWeek(date, dirtyOptions) - week;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date\n}\n\n// This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\nfunction setUTCISODay (dirtyDate, dirtyDay, dirtyOptions) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present')\n }\n\n var day = toInteger(dirtyDay);\n\n if (day % 7 === 0) {\n day = day - 7;\n }\n\n var weekStartsOn = 1;\n var date = toDate(dirtyDate, dirtyOptions);\n var currentDay = date.getUTCDay();\n\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n\n date.setUTCDate(date.getUTCDate() + diff);\n return date\n}\n\n// This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\nfunction setUTCISOWeek (dirtyDate, dirtyISOWeek, dirtyOptions) {\n if (arguments.length < 2) {\n throw new TypeError('2 arguments required, but only ' + arguments.length + ' present')\n }\n\n var date = toDate(dirtyDate, dirtyOptions);\n var isoWeek = toInteger(dirtyISOWeek);\n var diff = getUTCISOWeek(date, dirtyOptions) - isoWeek;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date\n}\n\nvar MILLISECONDS_IN_HOUR$1 = 3600000;\nvar MILLISECONDS_IN_MINUTE$2 = 60000;\nvar MILLISECONDS_IN_SECOND = 1000;\n\nvar numericPatterns = {\n month: /^(1[0-2]|0?\\d)/, // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/, // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/, // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/, // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/, // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/, // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/, // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/, // 0 to 12\n minute: /^[0-5]?\\d/, // 0 to 59\n second: /^[0-5]?\\d/, // 0 to 59\n\n singleDigit: /^\\d/, // 0 to 9\n twoDigits: /^\\d{1,2}/, // 0 to 99\n threeDigits: /^\\d{1,3}/, // 0 to 999\n fourDigits: /^\\d{1,4}/, // 0 to 9999\n\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/, // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/, // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/, // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/ // 0 to 9999, -0 to -9999\n};\n\nvar timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/\n};\n\nfunction parseNumericPattern (pattern, string, valueCallback) {\n var matchResult = string.match(pattern);\n\n if (!matchResult) {\n return null\n }\n\n var value = parseInt(matchResult[0], 10);\n\n return {\n value: valueCallback ? valueCallback(value) : value,\n rest: string.slice(matchResult[0].length)\n }\n}\n\nfunction parseTimezonePattern (pattern, string) {\n var matchResult = string.match(pattern);\n\n if (!matchResult) {\n return null\n }\n\n // Input is 'Z'\n if (matchResult[0] === 'Z') {\n return {\n value: 0,\n rest: string.slice(1)\n }\n }\n\n var sign = matchResult[1] === '+' ? 1 : -1;\n var hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n var minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n var seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n\n return {\n value: sign * (\n hours * MILLISECONDS_IN_HOUR$1 +\n minutes * MILLISECONDS_IN_MINUTE$2 +\n seconds * MILLISECONDS_IN_SECOND\n ),\n rest: string.slice(matchResult[0].length)\n }\n}\n\nfunction parseAnyDigitsSigned (string, valueCallback) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, string, valueCallback)\n}\n\nfunction parseNDigits (n, string, valueCallback) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, string, valueCallback)\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, string, valueCallback)\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, string, valueCallback)\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, string, valueCallback)\n default:\n return parseNumericPattern(new RegExp('^\\\\d{1,' + n + '}'), string, valueCallback)\n }\n}\n\nfunction parseNDigitsSigned (n, string, valueCallback) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, string, valueCallback)\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, string, valueCallback)\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, string, valueCallback)\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, string, valueCallback)\n default:\n return parseNumericPattern(new RegExp('^-?\\\\d{1,' + n + '}'), string, valueCallback)\n }\n}\n\nfunction dayPeriodEnumToHours (enumValue) {\n switch (enumValue) {\n case 'morning':\n return 4\n case 'evening':\n return 17\n case 'pm':\n case 'noon':\n case 'afternoon':\n return 12\n case 'am':\n case 'midnight':\n case 'night':\n default:\n return 0\n }\n}\n\nfunction normalizeTwoDigitYear (twoDigitYear, currentYear) {\n var isCommonEra = currentYear > 0;\n // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n var absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n\n var result;\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n var rangeEnd = absCurrentYear + 50;\n var rangeEndCentury = Math.floor(rangeEnd / 100) * 100;\n var isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result\n}\n\nvar DAYS_IN_MONTH$1 = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar DAYS_IN_MONTH_LEAP_YEAR$1 = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\n// User for validation\nfunction isLeapYearIndex$1 (year) {\n return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0)\n}\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\nvar parsers = {\n // Era\n G: {\n priority: 140,\n parse: function (string, token, match, options) {\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return match.era(string, {width: 'abbreviated'}) ||\n match.era(string, {width: 'narrow'})\n // A, B\n case 'GGGGG':\n return match.era(string, {width: 'narrow'})\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return match.era(string, {width: 'wide'}) ||\n match.era(string, {width: 'abbreviated'}) ||\n match.era(string, {width: 'narrow'})\n }\n },\n set: function (date, value, options) {\n // Sets year 10 BC if BC, or 10 AC if AC\n date.setUTCFullYear(value === 1 ? 10 : -9, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date\n }\n },\n\n // Year\n y: {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n priority: 130,\n parse: function (string, token, match, options) {\n var valueCallback = function (year) {\n return {\n year: year,\n isTwoDigitYear: token === 'yy'\n }\n };\n\n switch (token) {\n case 'y':\n return parseNDigits(4, string, valueCallback)\n case 'yo':\n return match.ordinalNumber(string, {unit: 'year', valueCallback: valueCallback})\n default:\n return parseNDigits(token.length, string, valueCallback)\n }\n },\n validate: function (date, value, options) {\n return value.isTwoDigitYear || value.year > 0\n },\n set: function (date, value, options) {\n var currentYear = getUTCWeekYear(date, options);\n\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date\n }\n\n var year = currentYear > 0 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date\n }\n },\n\n // Local week-numbering year\n Y: {\n priority: 130,\n parse: function (string, token, match, options) {\n var valueCallback = function (year) {\n return {\n year: year,\n isTwoDigitYear: token === 'YY'\n }\n };\n\n switch (token) {\n case 'Y':\n return parseNDigits(4, string, valueCallback)\n case 'Yo':\n return match.ordinalNumber(string, {unit: 'year', valueCallback: valueCallback})\n default:\n return parseNDigits(token.length, string, valueCallback)\n }\n },\n validate: function (date, value, options) {\n return value.isTwoDigitYear || value.year > 0\n },\n set: function (date, value, options) {\n var currentYear = date.getUTCFullYear();\n\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options)\n }\n\n var year = currentYear > 0 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options)\n }\n },\n\n // ISO week-numbering year\n R: {\n priority: 130,\n parse: function (string, token, match, options) {\n if (token === 'R') {\n return parseNDigitsSigned(4, string)\n }\n\n return parseNDigitsSigned(token.length, string)\n },\n set: function (date, value, options) {\n var firstWeekOfYear = new Date(0);\n firstWeekOfYear.setUTCFullYear(value, 0, 4);\n firstWeekOfYear.setUTCHours(0, 0, 0, 0);\n return startOfUTCISOWeek(firstWeekOfYear)\n }\n },\n\n // Extended year\n u: {\n priority: 130,\n parse: function (string, token, match, options) {\n if (token === 'u') {\n return parseNDigitsSigned(4, string)\n }\n\n return parseNDigitsSigned(token.length, string)\n },\n set: function (date, value, options) {\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date\n }\n },\n\n // Quarter\n Q: {\n priority: 120,\n parse: function (string, token, match, options) {\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n case 'QQ': // 01, 02, 03, 04\n return parseNDigits(token.length, string)\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return match.ordinalNumber(string, {unit: 'quarter'})\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return match.quarter(string, {width: 'abbreviated', context: 'formatting'}) ||\n match.quarter(string, {width: 'narrow', context: 'formatting'})\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return match.quarter(string, {width: 'narrow', context: 'formatting'})\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return match.quarter(string, {width: 'wide', context: 'formatting'}) ||\n match.quarter(string, {width: 'abbreviated', context: 'formatting'}) ||\n match.quarter(string, {width: 'narrow', context: 'formatting'})\n }\n },\n validate: function (date, value, options) {\n return value >= 1 && value <= 4\n },\n set: function (date, value, options) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date\n }\n },\n\n // Stand-alone quarter\n q: {\n priority: 120,\n parse: function (string, token, match, options) {\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n case 'qq': // 01, 02, 03, 04\n return parseNDigits(token.length, string)\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return match.ordinalNumber(string, {unit: 'quarter'})\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return match.quarter(string, {width: 'abbreviated', context: 'standalone'}) ||\n match.quarter(string, {width: 'narrow', context: 'standalone'})\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return match.quarter(string, {width: 'narrow', context: 'standalone'})\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return match.quarter(string, {width: 'wide', context: 'standalone'}) ||\n match.quarter(string, {width: 'abbreviated', context: 'standalone'}) ||\n match.quarter(string, {width: 'narrow', context: 'standalone'})\n }\n },\n validate: function (date, value, options) {\n return value >= 1 && value <= 4\n },\n set: function (date, value, options) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date\n }\n },\n\n // Month\n M: {\n priority: 110,\n parse: function (string, token, match, options) {\n var valueCallback = function (value) {\n return value - 1\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'M':\n return parseNumericPattern(numericPatterns.month, string, valueCallback)\n // 01, 02, ..., 12\n case 'MM':\n return parseNDigits(2, string, valueCallback)\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return match.ordinalNumber(string, {unit: 'month', valueCallback: valueCallback})\n // Jan, Feb, ..., Dec\n case 'MMM':\n return match.month(string, {width: 'abbreviated', context: 'formatting'}) ||\n match.month(string, {width: 'narrow', context: 'formatting'})\n // J, F, ..., D\n case 'MMMMM':\n return match.month(string, {width: 'narrow', context: 'formatting'})\n // January, February, ..., December\n case 'MMMM':\n default:\n return match.month(string, {width: 'wide', context: 'formatting'}) ||\n match.month(string, {width: 'abbreviated', context: 'formatting'}) ||\n match.month(string, {width: 'narrow', context: 'formatting'})\n }\n },\n validate: function (date, value, options) {\n return value >= 0 && value <= 11\n },\n set: function (date, value, options) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date\n }\n },\n\n // Stand-alone month\n L: {\n priority: 110,\n parse: function (string, token, match, options) {\n var valueCallback = function (value) {\n return value - 1\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return parseNumericPattern(numericPatterns.month, string, valueCallback)\n // 01, 02, ..., 12\n case 'LL':\n return parseNDigits(2, string, valueCallback)\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return match.ordinalNumber(string, {unit: 'month', valueCallback: valueCallback})\n // Jan, Feb, ..., Dec\n case 'LLL':\n return match.month(string, {width: 'abbreviated', context: 'standalone'}) ||\n match.month(string, {width: 'narrow', context: 'standalone'})\n // J, F, ..., D\n case 'LLLLL':\n return match.month(string, {width: 'narrow', context: 'standalone'})\n // January, February, ..., December\n case 'LLLL':\n default:\n return match.month(string, {width: 'wide', context: 'standalone'}) ||\n match.month(string, {width: 'abbreviated', context: 'standalone'}) ||\n match.month(string, {width: 'narrow', context: 'standalone'})\n }\n },\n validate: function (date, value, options) {\n return value >= 0 && value <= 11\n },\n set: function (date, value, options) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date\n }\n },\n\n // Local week of year\n w: {\n priority: 100,\n parse: function (string, token, match, options) {\n switch (token) {\n case 'w':\n return parseNumericPattern(numericPatterns.week, string)\n case 'wo':\n return match.ordinalNumber(string, {unit: 'week'})\n default:\n return parseNDigits(token.length, string)\n }\n },\n validate: function (date, value, options) {\n return value >= 1 && value <= 53\n },\n set: function (date, value, options) {\n return startOfUTCWeek(setUTCWeek(date, value, options), options)\n }\n },\n\n // ISO week of year\n I: {\n priority: 100,\n parse: function (string, token, match, options) {\n switch (token) {\n case 'I':\n return parseNumericPattern(numericPatterns.week, string)\n case 'Io':\n return match.ordinalNumber(string, {unit: 'week'})\n default:\n return parseNDigits(token.length, string)\n }\n },\n validate: function (date, value, options) {\n return value >= 1 && value <= 53\n },\n set: function (date, value, options) {\n return startOfUTCISOWeek(setUTCISOWeek(date, value, options), options)\n }\n },\n\n // Day of the month\n d: {\n priority: 90,\n parse: function (string, token, match, options) {\n switch (token) {\n case 'd':\n return parseNumericPattern(numericPatterns.date, string)\n case 'do':\n return match.ordinalNumber(string, {unit: 'date'})\n default:\n return parseNDigits(token.length, string)\n }\n },\n validate: function (date, value, options) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex$1(year);\n var month = date.getUTCMonth();\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR$1[month]\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH$1[month]\n }\n },\n set: function (date, value, options) {\n date.setUTCDate(value);\n date.setUTCHours(0, 0, 0, 0);\n return date\n }\n },\n\n // Day of year\n D: {\n priority: 90,\n parse: function (string, token, match, options) {\n switch (token) {\n case 'D':\n case 'DD':\n return parseNumericPattern(numericPatterns.dayOfYear, string)\n case 'Do':\n return match.ordinalNumber(string, {unit: 'date'})\n default:\n return parseNDigits(token.length, string)\n }\n },\n validate: function (date, value, options) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex$1(year);\n if (isLeapYear) {\n return value >= 1 && value <= 366\n } else {\n return value >= 1 && value <= 365\n }\n },\n set: function (date, value, options) {\n date.setUTCMonth(0, value);\n date.setUTCHours(0, 0, 0, 0);\n return date\n }\n },\n\n // Day of week\n E: {\n priority: 90,\n parse: function (string, token, match, options) {\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return match.day(string, {width: 'abbreviated', context: 'formatting'}) ||\n match.day(string, {width: 'short', context: 'formatting'}) ||\n match.day(string, {width: 'narrow', context: 'formatting'})\n // T\n case 'EEEEE':\n return match.day(string, {width: 'narrow', context: 'formatting'})\n // Tu\n case 'EEEEEE':\n return match.day(string, {width: 'short', context: 'formatting'}) ||\n match.day(string, {width: 'narrow', context: 'formatting'})\n // Tuesday\n case 'EEEE':\n default:\n return match.day(string, {width: 'wide', context: 'formatting'}) ||\n match.day(string, {width: 'abbreviated', context: 'formatting'}) ||\n match.day(string, {width: 'short', context: 'formatting'}) ||\n match.day(string, {width: 'narrow', context: 'formatting'})\n }\n },\n validate: function (date, value, options) {\n return value >= 0 && value <= 6\n },\n set: function (date, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date\n }\n },\n\n // Local day of week\n e: {\n priority: 90,\n parse: function (string, token, match, options) {\n var valueCallback = function (value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays\n };\n\n switch (token) {\n // 3\n case 'e':\n case 'ee': // 03\n return parseNDigits(token.length, string, valueCallback)\n // 3rd\n case 'eo':\n return match.ordinalNumber(string, {unit: 'day', valueCallback: valueCallback})\n // Tue\n case 'eee':\n return match.day(string, {width: 'abbreviated', context: 'formatting'}) ||\n match.day(string, {width: 'short', context: 'formatting'}) ||\n match.day(string, {width: 'narrow', context: 'formatting'})\n // T\n case 'eeeee':\n return match.day(string, {width: 'narrow', context: 'formatting'})\n // Tu\n case 'eeeeee':\n return match.day(string, {width: 'short', context: 'formatting'}) ||\n match.day(string, {width: 'narrow', context: 'formatting'})\n // Tuesday\n case 'eeee':\n default:\n return match.day(string, {width: 'wide', context: 'formatting'}) ||\n match.day(string, {width: 'abbreviated', context: 'formatting'}) ||\n match.day(string, {width: 'short', context: 'formatting'}) ||\n match.day(string, {width: 'narrow', context: 'formatting'})\n }\n },\n validate: function (date, value, options) {\n return value >= 0 && value <= 6\n },\n set: function (date, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date\n }\n },\n\n // Stand-alone local day of week\n c: {\n priority: 90,\n parse: function (string, token, match, options) {\n var valueCallback = function (value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays\n };\n\n switch (token) {\n // 3\n case 'c':\n case 'cc': // 03\n return parseNDigits(token.length, string, valueCallback)\n // 3rd\n case 'co':\n return match.ordinalNumber(string, {unit: 'day', valueCallback: valueCallback})\n // Tue\n case 'ccc':\n return match.day(string, {width: 'abbreviated', context: 'standalone'}) ||\n match.day(string, {width: 'short', context: 'standalone'}) ||\n match.day(string, {width: 'narrow', context: 'standalone'})\n // T\n case 'ccccc':\n return match.day(string, {width: 'narrow', context: 'standalone'})\n // Tu\n case 'cccccc':\n return match.day(string, {width: 'short', context: 'standalone'}) ||\n match.day(string, {width: 'narrow', context: 'standalone'})\n // Tuesday\n case 'cccc':\n default:\n return match.day(string, {width: 'wide', context: 'standalone'}) ||\n match.day(string, {width: 'abbreviated', context: 'standalone'}) ||\n match.day(string, {width: 'short', context: 'standalone'}) ||\n match.day(string, {width: 'narrow', context: 'standalone'})\n }\n },\n validate: function (date, value, options) {\n return value >= 0 && value <= 6\n },\n set: function (date, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date\n }\n },\n\n // ISO day of week\n i: {\n priority: 90,\n parse: function (string, token, match, options) {\n var valueCallback = function (value) {\n if (value === 0) {\n return 7\n }\n return value\n };\n\n switch (token) {\n // 2\n case 'i':\n case 'ii': // 02\n return parseNDigits(token.length, string)\n // 2nd\n case 'io':\n return match.ordinalNumber(string, {unit: 'day'})\n // Tue\n case 'iii':\n return match.day(string, {width: 'abbreviated', context: 'formatting', valueCallback: valueCallback}) ||\n match.day(string, {width: 'short', context: 'formatting', valueCallback: valueCallback}) ||\n match.day(string, {width: 'narrow', context: 'formatting', valueCallback: valueCallback})\n // T\n case 'iiiii':\n return match.day(string, {width: 'narrow', context: 'formatting', valueCallback: valueCallback})\n // Tu\n case 'iiiiii':\n return match.day(string, {width: 'short', context: 'formatting', valueCallback: valueCallback}) ||\n match.day(string, {width: 'narrow', context: 'formatting', valueCallback: valueCallback})\n // Tuesday\n case 'iiii':\n default:\n return match.day(string, {width: 'wide', context: 'formatting', valueCallback: valueCallback}) ||\n match.day(string, {width: 'abbreviated', context: 'formatting', valueCallback: valueCallback}) ||\n match.day(string, {width: 'short', context: 'formatting', valueCallback: valueCallback}) ||\n match.day(string, {width: 'narrow', context: 'formatting', valueCallback: valueCallback})\n }\n },\n validate: function (date, value, options) {\n return value >= 1 && value <= 7\n },\n set: function (date, value, options) {\n date = setUTCISODay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date\n }\n },\n\n // AM or PM\n a: {\n priority: 80,\n parse: function (string, token, match, options) {\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return match.dayPeriod(string, {width: 'abbreviated', context: 'formatting'}) ||\n match.dayPeriod(string, {width: 'narrow', context: 'formatting'})\n case 'aaaaa':\n return match.dayPeriod(string, {width: 'narrow', context: 'formatting'})\n case 'aaaa':\n default:\n return match.dayPeriod(string, {width: 'wide', context: 'formatting'}) ||\n match.dayPeriod(string, {width: 'abbreviated', context: 'formatting'}) ||\n match.dayPeriod(string, {width: 'narrow', context: 'formatting'})\n }\n },\n set: function (date, value, options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date\n }\n },\n\n // AM, PM, midnight\n b: {\n priority: 80,\n parse: function (string, token, match, options) {\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return match.dayPeriod(string, {width: 'abbreviated', context: 'formatting'}) ||\n match.dayPeriod(string, {width: 'narrow', context: 'formatting'})\n case 'bbbbb':\n return match.dayPeriod(string, {width: 'narrow', context: 'formatting'})\n case 'bbbb':\n default:\n return match.dayPeriod(string, {width: 'wide', context: 'formatting'}) ||\n match.dayPeriod(string, {width: 'abbreviated', context: 'formatting'}) ||\n match.dayPeriod(string, {width: 'narrow', context: 'formatting'})\n }\n },\n set: function (date, value, options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date\n }\n },\n\n // in the morning, in the afternoon, in the evening, at night\n B: {\n priority: 80,\n parse: function (string, token, match, options) {\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return match.dayPeriod(string, {width: 'abbreviated', context: 'formatting'}) ||\n match.dayPeriod(string, {width: 'narrow', context: 'formatting'})\n case 'BBBBB':\n return match.dayPeriod(string, {width: 'narrow', context: 'formatting'})\n case 'BBBB':\n default:\n return match.dayPeriod(string, {width: 'wide', context: 'formatting'}) ||\n match.dayPeriod(string, {width: 'abbreviated', context: 'formatting'}) ||\n match.dayPeriod(string, {width: 'narrow', context: 'formatting'})\n }\n },\n set: function (date, value, options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date\n }\n },\n\n // Hour [1-12]\n h: {\n priority: 70,\n parse: function (string, token, match, options) {\n switch (token) {\n case 'h':\n return parseNumericPattern(numericPatterns.hour12h, string)\n case 'ho':\n return match.ordinalNumber(string, {unit: 'hour'})\n default:\n return parseNDigits(token.length, string)\n }\n },\n validate: function (date, value, options) {\n return value >= 1 && value <= 12\n },\n set: function (date, value, options) {\n var isPM = date.getUTCHours() >= 12;\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setUTCHours(0, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n return date\n }\n },\n\n // Hour [0-23]\n H: {\n priority: 70,\n parse: function (string, token, match, options) {\n switch (token) {\n case 'H':\n return parseNumericPattern(numericPatterns.hour23h, string)\n case 'Ho':\n return match.ordinalNumber(string, {unit: 'hour'})\n default:\n return parseNDigits(token.length, string)\n }\n },\n validate: function (date, value, options) {\n return value >= 0 && value <= 23\n },\n set: function (date, value, options) {\n date.setUTCHours(value, 0, 0, 0);\n return date\n }\n },\n\n // Hour [0-11]\n K: {\n priority: 70,\n parse: function (string, token, match, options) {\n switch (token) {\n case 'K':\n return parseNumericPattern(numericPatterns.hour11h, string)\n case 'Ko':\n return match.ordinalNumber(string, {unit: 'hour'})\n default:\n return parseNDigits(token.length, string)\n }\n },\n validate: function (date, value, options) {\n return value >= 0 && value <= 11\n },\n set: function (date, value, options) {\n var isPM = date.getUTCHours() >= 12;\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n return date\n }\n },\n\n // Hour [1-24]\n k: {\n priority: 70,\n parse: function (string, token, match, options) {\n switch (token) {\n case 'k':\n return parseNumericPattern(numericPatterns.hour24h, string)\n case 'ko':\n return match.ordinalNumber(string, {unit: 'hour'})\n default:\n return parseNDigits(token.length, string)\n }\n },\n validate: function (date, value, options) {\n return value >= 1 && value <= 24\n },\n set: function (date, value, options) {\n var hours = value <= 24 ? value % 24 : value;\n date.setUTCHours(hours, 0, 0, 0);\n return date\n }\n },\n\n // Minute\n m: {\n priority: 60,\n parse: function (string, token, match, options) {\n switch (token) {\n case 'm':\n return parseNumericPattern(numericPatterns.minute, string)\n case 'mo':\n return match.ordinalNumber(string, {unit: 'minute'})\n default:\n return parseNDigits(token.length, string)\n }\n },\n validate: function (date, value, options) {\n return value >= 0 && value <= 59\n },\n set: function (date, value, options) {\n date.setUTCMinutes(value, 0, 0);\n return date\n }\n },\n\n // Second\n s: {\n priority: 50,\n parse: function (string, token, match, options) {\n switch (token) {\n case 's':\n return parseNumericPattern(numericPatterns.second, string)\n case 'so':\n return match.ordinalNumber(string, {unit: 'second'})\n default:\n return parseNDigits(token.length, string)\n }\n },\n validate: function (date, value, options) {\n return value >= 0 && value <= 59\n },\n set: function (date, value, options) {\n date.setUTCSeconds(value, 0);\n return date\n }\n },\n\n // Fraction of second\n S: {\n priority: 40,\n parse: function (string, token, match, options) {\n var valueCallback = function (value) {\n return Math.floor(value * Math.pow(10, -token.length + 3))\n };\n return parseNDigits(token.length, string, valueCallback)\n },\n set: function (date, value, options) {\n date.setUTCMilliseconds(value);\n return date\n }\n },\n\n // Timezone (ISO-8601. +00:00 is `'Z'`)\n X: {\n priority: 20,\n parse: function (string, token, match, options) {\n switch (token) {\n case 'X':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string)\n case 'XX':\n return parseTimezonePattern(timezonePatterns.basic, string)\n case 'XXXX':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string)\n case 'XXXXX':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string)\n case 'XXX':\n default:\n return parseTimezonePattern(timezonePatterns.extended, string)\n }\n },\n set: function (date, value, options) {\n return new Date(date.getTime() - value)\n }\n },\n\n // Timezone (ISO-8601)\n x: {\n priority: 20,\n parse: function (string, token, match, options) {\n switch (token) {\n case 'x':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string)\n case 'xx':\n return parseTimezonePattern(timezonePatterns.basic, string)\n case 'xxxx':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string)\n case 'xxxxx':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string)\n case 'xxx':\n default:\n return parseTimezonePattern(timezonePatterns.extended, string)\n }\n },\n set: function (date, value, options) {\n return new Date(date.getTime() - value)\n }\n },\n\n // Seconds timestamp\n t: {\n priority: 10,\n parse: function (string, token, match, options) {\n return parseAnyDigitsSigned(string)\n },\n set: function (date, value, options) {\n return new Date(value * 1000)\n }\n },\n\n // Milliseconds timestamp\n T: {\n priority: 10,\n parse: function (string, token, match, options) {\n return parseAnyDigitsSigned(string)\n },\n set: function (date, value, options) {\n return new Date(value)\n }\n }\n};\n\nvar TIMEZONE_UNIT_PRIORITY = 20;\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp$1 = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\nvar escapedStringRegExp$1 = /^'(.*?)'?$/;\nvar doubleQuoteRegExp$1 = /''/g;\n\nvar notWhitespaceRegExp = /\\S/;\n\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 6 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 6 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Su | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Su | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Su, Sa | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Su | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Su | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 1, 2, ..., 11, 0 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | 40 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 0001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 20 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 20 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Seconds timestamp | 10 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Milliseconds timestamp | 10 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `baseDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear]{@link https://date-fns.org/docs/setISOWeekYear}\n * and [setWeekYear]{@link https://date-fns.org/docs/setWeekYear}).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n *\n * 6. These tokens are often confused with others. See: https://git.io/fxCyr\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `baseDate` which works as a context of parsing.\n *\n * `baseDate` must be passed for correct work of the function.\n * If you're not sure which `baseDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `baseDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `baseDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {String} dateString - the string to parse\n * @param {String} formatString - the string of tokens\n * @param {Date|String|Number} baseDate - defines values missing from the parsed dateString\n * @param {Options} [options] - the object with options. See [Options]{@link https://date-fns.org/docs/Options}\n * @param {0|1|2} [options.additionalDigits=2] - passed to `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @param {Boolean} [options.awareOfUnicodeTokens=false] - if true, allows usage of Unicode tokens causes confusion:\n * - Some of the day of year tokens (`D`, `DD`) that are confused with the day of month tokens (`d`, `dd`).\n * - Some of the local week-numbering year tokens (`YY`, `YYYY`) that are confused with the calendar year tokens (`yy`, `yyyy`).\n * See: https://git.io/fxCyr\n * @returns {Date} the parsed date\n * @throws {TypeError} 3 arguments required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} `options.locale` must contain `match` property\n * @throws {RangeError} `options.awareOfUnicodeTokens` must be set to `true` to use `XX` token; see: https://git.io/fxCyr\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse(\n * '02/11/2014',\n * 'MM/dd/yyyy',\n * new Date()\n * )\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse(\n * '28-a de februaro',\n * \"do 'de' MMMM\",\n * new Date(2010, 0, 1),\n * {locale: eo}\n * )\n * //=> Sun Feb 28 2010 00:00:00\n */\nfunction parse(\n dirtyDateString,\n dirtyFormatString,\n dirtyBaseDate,\n dirtyOptions\n) {\n if (arguments.length < 3) {\n throw new TypeError(\n '3 arguments required, but only ' + arguments.length + ' present'\n )\n }\n\n var dateString = String(dirtyDateString);\n var formatString = String(dirtyFormatString);\n var options = dirtyOptions || {};\n\n var locale = options.locale || locale$1;\n\n if (!locale.match) {\n throw new RangeError('locale must contain match property')\n }\n\n var localeFirstWeekContainsDate =\n locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate =\n localeFirstWeekContainsDate == null\n ? 1\n : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate =\n options.firstWeekContainsDate == null\n ? defaultFirstWeekContainsDate\n : toInteger(options.firstWeekContainsDate);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError(\n 'firstWeekContainsDate must be between 1 and 7 inclusively'\n )\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn =\n localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn =\n options.weekStartsOn == null\n ? defaultWeekStartsOn\n : toInteger(options.weekStartsOn);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively')\n }\n\n if (formatString === '') {\n if (dateString === '') {\n return toDate(dirtyBaseDate, options)\n } else {\n return new Date(NaN)\n }\n }\n\n var subFnOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale\n };\n\n // If timezone isn't specified, it will be set to the system timezone\n var setters = [\n {\n priority: TIMEZONE_UNIT_PRIORITY,\n set: dateToSystemTimezone,\n index: 0\n }\n ];\n\n var i;\n\n var tokens = formatString.match(formattingTokensRegExp$1);\n\n for (i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (!options.awareOfUnicodeTokens && isProtectedToken(token)) {\n throwProtectedError(token);\n }\n\n var firstCharacter = token[0];\n var parser = parsers[firstCharacter];\n if (parser) {\n var parseResult = parser.parse(\n dateString,\n token,\n locale.match,\n subFnOptions\n );\n\n if (!parseResult) {\n return new Date(NaN)\n }\n\n setters.push({\n priority: parser.priority,\n set: parser.set,\n validate: parser.validate,\n value: parseResult.value,\n index: setters.length\n });\n\n dateString = parseResult.rest;\n } else {\n // Replace two single quote characters with one single quote character\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString$1(token);\n }\n\n // Cut token from string, or, if string doesn't match the token, return Invalid Date\n if (dateString.indexOf(token) === 0) {\n dateString = dateString.slice(token.length);\n } else {\n return new Date(NaN)\n }\n }\n }\n\n // Check if the remaining input contains something other than whitespace\n if (dateString.length > 0 && notWhitespaceRegExp.test(dateString)) {\n return new Date(NaN)\n }\n\n var uniquePrioritySetters = setters\n .map(function(setter) {\n return setter.priority\n })\n .sort(function(a, b) {\n return b - a\n })\n .filter(function(priority, index, array) {\n return array.indexOf(priority) === index\n })\n .map(function(priority) {\n return setters\n .filter(function(setter) {\n return setter.priority === priority\n })\n .reverse()\n })\n .map(function(setterArray) {\n return setterArray[0]\n });\n\n var date = toDate(dirtyBaseDate, options);\n\n if (isNaN(date)) {\n return new Date(NaN)\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/37\n var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));\n\n for (i = 0; i < uniquePrioritySetters.length; i++) {\n var setter = uniquePrioritySetters[i];\n\n if (\n setter.validate &&\n !setter.validate(utcDate, setter.value, subFnOptions)\n ) {\n return new Date(NaN)\n }\n\n utcDate = setter.set(utcDate, setter.value, subFnOptions);\n }\n\n return utcDate\n}\n\nfunction dateToSystemTimezone(date) {\n var convertedDate = new Date(0);\n convertedDate.setFullYear(\n date.getUTCFullYear(),\n date.getUTCMonth(),\n date.getUTCDate()\n );\n convertedDate.setHours(\n date.getUTCHours(),\n date.getUTCMinutes(),\n date.getUTCSeconds(),\n date.getUTCMilliseconds()\n );\n return convertedDate\n}\n\nfunction cleanEscapedString$1(input) {\n return input.match(escapedStringRegExp$1)[1].replace(doubleQuoteRegExp$1, \"'\")\n}\n\n// \n\n/**\n * Custom parse behavior on top of date-fns parse function.\n */\nfunction parseDate$1 (date, format$1) {\n if (typeof date !== 'string') {\n return isValid(date) ? date : null;\n }\n\n var parsed = parse(date, format$1, new Date());\n\n // if date is not valid or the formatted output after parsing does not match\n // the string value passed in (avoids overflows)\n if (!isValid(parsed) || format(parsed, format$1) !== date) {\n return null;\n }\n\n return parsed;\n}\n\nvar afterValidator = function (value, ref) {\n if ( ref === void 0 ) ref = {};\n var targetValue = ref.targetValue;\n var inclusion = ref.inclusion; if ( inclusion === void 0 ) inclusion = false;\n var format = ref.format;\n\n if (typeof format === 'undefined') {\n format = inclusion;\n inclusion = false;\n }\n\n value = parseDate$1(value, format);\n targetValue = parseDate$1(targetValue, format);\n\n // if either is not valid.\n if (!value || !targetValue) {\n return false;\n }\n\n return isAfter(value, targetValue) || (inclusion && isEqual$1(value, targetValue));\n};\n\nvar options = {\n hasTarget: true,\n isDate: true\n};\n\n// required to convert from a list of array values to an object.\nvar paramNames = ['targetValue', 'inclusion', 'format'];\n\nvar after = {\n validate: afterValidator,\n options: options,\n paramNames: paramNames\n};\n\n/**\n * Some Alpha Regex helpers.\n * https://github.com/chriso/validator.js/blob/master/src/lib/alpha.js\n */\n\nvar alpha = {\n en: /^[A-Z]*$/i,\n cs: /^[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]*$/i,\n da: /^[A-ZÆØÅ]*$/i,\n de: /^[A-ZÄÖÜß]*$/i,\n es: /^[A-ZÁÉÍÑÓÚÜ]*$/i,\n fa: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰپژگچکی]*$/,\n fr: /^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]*$/i,\n it: /^[A-Z\\xC0-\\xFF]*$/i,\n lt: /^[A-ZĄČĘĖĮŠŲŪŽ]*$/i,\n nl: /^[A-ZÉËÏÓÖÜ]*$/i,\n hu: /^[A-ZÁÉÍÓÖŐÚÜŰ]*$/i,\n pl: /^[A-ZĄĆĘŚŁŃÓŻŹ]*$/i,\n pt: /^[A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ]*$/i,\n ru: /^[А-ЯЁ]*$/i,\n sk: /^[A-ZÁÄČĎÉÍĹĽŇÓŔŠŤÚÝŽ]*$/i,\n sr: /^[A-ZČĆŽŠĐ]*$/i,\n sv: /^[A-ZÅÄÖ]*$/i,\n tr: /^[A-ZÇĞİıÖŞÜ]*$/i,\n uk: /^[А-ЩЬЮЯЄІЇҐ]*$/i,\n ar: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]*$/,\n az: /^[A-ZÇƏĞİıÖŞÜ]*$/i\n};\n\nvar alphaSpaces = {\n en: /^[A-Z\\s]*$/i,\n cs: /^[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ\\s]*$/i,\n da: /^[A-ZÆØÅ\\s]*$/i,\n de: /^[A-ZÄÖÜß\\s]*$/i,\n es: /^[A-ZÁÉÍÑÓÚÜ\\s]*$/i,\n fa: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰپژگچکی\\s]*$/,\n fr: /^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ\\s]*$/i,\n it: /^[A-Z\\xC0-\\xFF\\s]*$/i,\n lt: /^[A-ZĄČĘĖĮŠŲŪŽ\\s]*$/i,\n nl: /^[A-ZÉËÏÓÖÜ\\s]*$/i,\n hu: /^[A-ZÁÉÍÓÖŐÚÜŰ\\s]*$/i,\n pl: /^[A-ZĄĆĘŚŁŃÓŻŹ\\s]*$/i,\n pt: /^[A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ\\s]*$/i,\n ru: /^[А-ЯЁ\\s]*$/i,\n sk: /^[A-ZÁÄČĎÉÍĹĽŇÓŔŠŤÚÝŽ\\s]*$/i,\n sr: /^[A-ZČĆŽŠĐ\\s]*$/i,\n sv: /^[A-ZÅÄÖ\\s]*$/i,\n tr: /^[A-ZÇĞİıÖŞÜ\\s]*$/i,\n uk: /^[А-ЩЬЮЯЄІЇҐ\\s]*$/i,\n ar: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ\\s]*$/,\n az: /^[A-ZÇƏĞİıÖŞÜ\\s]*$/i\n};\n\nvar alphanumeric = {\n en: /^[0-9A-Z]*$/i,\n cs: /^[0-9A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]*$/i,\n da: /^[0-9A-ZÆØÅ]$/i,\n de: /^[0-9A-ZÄÖÜß]*$/i,\n es: /^[0-9A-ZÁÉÍÑÓÚÜ]*$/i,\n fa: /^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰپژگچکی]*$/,\n fr: /^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]*$/i,\n it: /^[0-9A-Z\\xC0-\\xFF]*$/i,\n lt: /^[0-9A-ZĄČĘĖĮŠŲŪŽ]*$/i,\n hu: /^[0-9A-ZÁÉÍÓÖŐÚÜŰ]*$/i,\n nl: /^[0-9A-ZÉËÏÓÖÜ]*$/i,\n pl: /^[0-9A-ZĄĆĘŚŁŃÓŻŹ]*$/i,\n pt: /^[0-9A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ]*$/i,\n ru: /^[0-9А-ЯЁ]*$/i,\n sk: /^[0-9A-ZÁÄČĎÉÍĹĽŇÓŔŠŤÚÝŽ]*$/i,\n sr: /^[0-9A-ZČĆŽŠĐ]*$/i,\n sv: /^[0-9A-ZÅÄÖ]*$/i,\n tr: /^[0-9A-ZÇĞİıÖŞÜ]*$/i,\n uk: /^[0-9А-ЩЬЮЯЄІЇҐ]*$/i,\n ar: /^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]*$/,\n az: /^[0-9A-ZÇƏĞİıÖŞÜ]*$/i\n};\n\nvar alphaDash = {\n en: /^[0-9A-Z_-]*$/i,\n cs: /^[0-9A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ_-]*$/i,\n da: /^[0-9A-ZÆØÅ_-]*$/i,\n de: /^[0-9A-ZÄÖÜß_-]*$/i,\n es: /^[0-9A-ZÁÉÍÑÓÚÜ_-]*$/i,\n fa: /^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰپژگچکی_-]*$/,\n fr: /^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ_-]*$/i,\n it: /^[0-9A-Z\\xC0-\\xFF_-]*$/i,\n lt: /^[0-9A-ZĄČĘĖĮŠŲŪŽ_-]*$/i,\n nl: /^[0-9A-ZÉËÏÓÖÜ_-]*$/i,\n hu: /^[0-9A-ZÁÉÍÓÖŐÚÜŰ_-]*$/i,\n pl: /^[0-9A-ZĄĆĘŚŁŃÓŻŹ_-]*$/i,\n pt: /^[0-9A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ_-]*$/i,\n ru: /^[0-9А-ЯЁ_-]*$/i,\n sk: /^[0-9A-ZÁÄČĎÉÍĹĽŇÓŔŠŤÚÝŽ_-]*$/i,\n sr: /^[0-9A-ZČĆŽŠĐ_-]*$/i,\n sv: /^[0-9A-ZÅÄÖ_-]*$/i,\n tr: /^[0-9A-ZÇĞİıÖŞÜ_-]*$/i,\n uk: /^[0-9А-ЩЬЮЯЄІЇҐ_-]*$/i,\n ar: /^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ_-]*$/,\n az: /^[0-9A-ZÇƏĞİıÖŞÜ_-]*$/i\n};\n\nvar validate = function (value, ref) {\n if ( ref === void 0 ) ref = {};\n var locale = ref.locale;\n\n if (Array.isArray(value)) {\n return value.every(function (val) { return validate(val, [locale]); });\n }\n\n // Match at least one locale.\n if (! locale) {\n return Object.keys(alpha).some(function (loc) { return alpha[loc].test(value); });\n }\n\n return (alpha[locale] || alpha.en).test(value);\n};\n\nvar paramNames$1 = ['locale'];\n\nvar alpha$1 = {\n validate: validate,\n paramNames: paramNames$1\n};\n\nvar validate$1 = function (value, ref) {\n if ( ref === void 0 ) ref = {};\n var locale = ref.locale;\n\n if (Array.isArray(value)) {\n return value.every(function (val) { return validate$1(val, [locale]); });\n }\n\n // Match at least one locale.\n if (! locale) {\n return Object.keys(alphaDash).some(function (loc) { return alphaDash[loc].test(value); });\n }\n\n return (alphaDash[locale] || alphaDash.en).test(value);\n};\n\nvar paramNames$2 = ['locale'];\n\nvar alpha_dash = {\n validate: validate$1,\n paramNames: paramNames$2\n};\n\nvar validate$2 = function (value, ref) {\n if ( ref === void 0 ) ref = {};\n var locale = ref.locale;\n\n if (Array.isArray(value)) {\n return value.every(function (val) { return validate$2(val, [locale]); });\n }\n\n // Match at least one locale.\n if (! locale) {\n return Object.keys(alphanumeric).some(function (loc) { return alphanumeric[loc].test(value); });\n }\n\n return (alphanumeric[locale] || alphanumeric.en).test(value);\n};\n\nvar paramNames$3 = ['locale'];\n\nvar alpha_num = {\n validate: validate$2,\n paramNames: paramNames$3\n};\n\nvar validate$3 = function (value, ref) {\n if ( ref === void 0 ) ref = {};\n var locale = ref.locale;\n\n if (Array.isArray(value)) {\n return value.every(function (val) { return validate$3(val, [locale]); });\n }\n\n // Match at least one locale.\n if (! locale) {\n return Object.keys(alphaSpaces).some(function (loc) { return alphaSpaces[loc].test(value); });\n }\n\n return (alphaSpaces[locale] || alphaSpaces.en).test(value);\n};\n\nvar paramNames$4 = ['locale'];\n\nvar alpha_spaces = {\n validate: validate$3,\n paramNames: paramNames$4\n};\n\nvar validate$4 = function (value, ref) {\n if ( ref === void 0 ) ref = {};\n var targetValue = ref.targetValue;\n var inclusion = ref.inclusion; if ( inclusion === void 0 ) inclusion = false;\n var format = ref.format;\n\n if (typeof format === 'undefined') {\n format = inclusion;\n inclusion = false;\n }\n\n value = parseDate$1(value, format);\n targetValue = parseDate$1(targetValue, format);\n\n // if either is not valid.\n if (!value || !targetValue) {\n return false;\n }\n\n return isBefore(value, targetValue) || (inclusion && isEqual$1(value, targetValue));\n};\n\nvar options$1 = {\n hasTarget: true,\n isDate: true\n};\n\nvar paramNames$5 = ['targetValue', 'inclusion', 'format'];\n\nvar before = {\n validate: validate$4,\n options: options$1,\n paramNames: paramNames$5\n};\n\nvar validate$5 = function (value, ref) {\n if ( ref === void 0 ) ref = {};\n var min = ref.min;\n var max = ref.max;\n\n if (Array.isArray(value)) {\n return value.every(function (val) { return validate$5(val, { min: min, max: max }); });\n }\n\n return Number(min) <= value && Number(max) >= value;\n};\n\nvar paramNames$6 = ['min', 'max'];\n\nvar between = {\n validate: validate$5,\n paramNames: paramNames$6\n};\n\nvar validate$6 = function (value, ref) {\n var targetValue = ref.targetValue;\n\n return String(value) === String(targetValue);\n};\nvar options$2 = {\n hasTarget: true\n};\n\nvar paramNames$7 = ['targetValue'];\n\nvar confirmed = {\n validate: validate$6,\n options: options$2,\n paramNames: paramNames$7\n};\n\nfunction unwrapExports (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nvar assertString_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = assertString;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction assertString(input) {\n var isString = typeof input === 'string' || input instanceof String;\n\n if (!isString) {\n var invalidType;\n\n if (input === null) {\n invalidType = 'null';\n } else {\n invalidType = _typeof(input);\n\n if (invalidType === 'object' && input.constructor && input.constructor.hasOwnProperty('name')) {\n invalidType = input.constructor.name;\n } else {\n invalidType = \"a \".concat(invalidType);\n }\n }\n\n throw new TypeError(\"Expected string but received \".concat(invalidType, \".\"));\n }\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;\n});\n\nunwrapExports(assertString_1);\n\nvar isCreditCard_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isCreditCard;\n\nvar _assertString = _interopRequireDefault(assertString_1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-disable max-len */\nvar creditCard = /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|(222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11}|6[27][0-9]{14})$/;\n/* eslint-enable max-len */\n\nfunction isCreditCard(str) {\n (0, _assertString.default)(str);\n var sanitized = str.replace(/[- ]+/g, '');\n\n if (!creditCard.test(sanitized)) {\n return false;\n }\n\n var sum = 0;\n var digit;\n var tmpNum;\n var shouldDouble;\n\n for (var i = sanitized.length - 1; i >= 0; i--) {\n digit = sanitized.substring(i, i + 1);\n tmpNum = parseInt(digit, 10);\n\n if (shouldDouble) {\n tmpNum *= 2;\n\n if (tmpNum >= 10) {\n sum += tmpNum % 10 + 1;\n } else {\n sum += tmpNum;\n }\n } else {\n sum += tmpNum;\n }\n\n shouldDouble = !shouldDouble;\n }\n\n return !!(sum % 10 === 0 ? sanitized : false);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;\n});\n\nvar isCreditCard = unwrapExports(isCreditCard_1);\n\nvar validate$7 = function (value) { return isCreditCard(String(value)); };\n\nvar credit_card = {\n validate: validate$7\n};\n\nvar validate$8 = function (value, ref) {\n if ( ref === void 0 ) ref = {};\n var min = ref.min;\n var max = ref.max;\n var inclusivity = ref.inclusivity; if ( inclusivity === void 0 ) inclusivity = '()';\n var format = ref.format;\n\n if (typeof format === 'undefined') {\n format = inclusivity;\n inclusivity = '()';\n }\n\n var minDate = parseDate$1(String(min), format);\n var maxDate = parseDate$1(String(max), format);\n var dateVal = parseDate$1(String(value), format);\n\n if (!minDate || !maxDate || !dateVal) {\n return false;\n }\n\n if (inclusivity === '()') {\n return isAfter(dateVal, minDate) && isBefore(dateVal, maxDate);\n }\n\n if (inclusivity === '(]') {\n return isAfter(dateVal, minDate) && (isEqual$1(dateVal, maxDate) || isBefore(dateVal, maxDate));\n }\n\n if (inclusivity === '[)') {\n return isBefore(dateVal, maxDate) && (isEqual$1(dateVal, minDate) || isAfter(dateVal, minDate));\n }\n\n return isEqual$1(dateVal, maxDate) || isEqual$1(dateVal, minDate) ||\n (isBefore(dateVal, maxDate) && isAfter(dateVal, minDate));\n};\n\nvar options$3 = {\n isDate: true\n};\n\nvar paramNames$8 = ['min', 'max', 'inclusivity', 'format'];\n\nvar date_between = {\n validate: validate$8,\n options: options$3,\n paramNames: paramNames$8\n};\n\nvar validate$9 = function (value, ref) {\n var format = ref.format;\n\n return !!parseDate$1(value, format);\n};\n\nvar options$4 = {\n isDate: true\n};\n\nvar paramNames$9 = ['format'];\n\nvar date_format = {\n validate: validate$9,\n options: options$4,\n paramNames: paramNames$9\n};\n\nvar validate$a = function (value, ref) {\n if ( ref === void 0 ) ref = {};\n var decimals = ref.decimals; if ( decimals === void 0 ) decimals = '*';\n var separator = ref.separator; if ( separator === void 0 ) separator = '.';\n\n if (isNullOrUndefined(value) || value === '') {\n return false;\n }\n\n if (Array.isArray(value)) {\n return value.every(function (val) { return validate$a(val, { decimals: decimals, separator: separator }); });\n }\n\n // if is 0.\n if (Number(decimals) === 0) {\n return /^-?\\d*$/.test(value);\n }\n\n var regexPart = decimals === '*' ? '+' : (\"{1,\" + decimals + \"}\");\n var regex = new RegExp((\"^[-+]?\\\\d*(\\\\\" + separator + \"\\\\d\" + regexPart + \")?([eE]{1}[-]?\\\\d+)?$\"));\n\n if (! regex.test(value)) {\n return false;\n }\n\n var parsedValue = parseFloat(value);\n\n // eslint-disable-next-line\n return parsedValue === parsedValue;\n};\n\nvar paramNames$a = ['decimals', 'separator'];\n\nvar decimal = {\n validate: validate$a,\n paramNames: paramNames$a\n};\n\nvar validate$b = function (value, ref) {\n var length = ref[0];\n\n if (Array.isArray(value)) {\n return value.every(function (val) { return validate$b(val, [length]); });\n }\n var strVal = String(value);\n\n return /^[0-9]*$/.test(strVal) && strVal.length === Number(length);\n};\n\nvar digits = {\n validate: validate$b\n};\n\nvar imageRegex = /\\.(jpg|svg|jpeg|png|bmp|gif)$/i;\n\nvar validateImage = function (file, width, height) {\n var URL = window.URL || window.webkitURL;\n return new Promise(function (resolve) {\n var image = new Image();\n image.onerror = function () { return resolve({ valid: false }); };\n image.onload = function () { return resolve({\n valid: image.width === Number(width) && image.height === Number(height)\n }); };\n\n image.src = URL.createObjectURL(file);\n });\n};\n\nvar validate$c = function (files, ref) {\n var width = ref[0];\n var height = ref[1];\n\n var images = ensureArray(files).filter(function (file) { return imageRegex.test(file.name); });\n if (images.length === 0) {\n return false;\n }\n return Promise.all(images.map(function (image) { return validateImage(image, width, height); }));\n};\n\nvar dimensions = {\n validate: validate$c\n};\n\nvar merge_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = merge;\n\nfunction merge() {\n var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var defaults = arguments.length > 1 ? arguments[1] : undefined;\n\n for (var key in defaults) {\n if (typeof obj[key] === 'undefined') {\n obj[key] = defaults[key];\n }\n }\n\n return obj;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;\n});\n\nunwrapExports(merge_1);\n\nvar isByteLength_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isByteLength;\n\nvar _assertString = _interopRequireDefault(assertString_1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/* eslint-disable prefer-rest-params */\nfunction isByteLength(str, options) {\n (0, _assertString.default)(str);\n var min;\n var max;\n\n if (_typeof(options) === 'object') {\n min = options.min || 0;\n max = options.max;\n } else {\n // backwards compatibility: isByteLength(str, min [, max])\n min = arguments[1];\n max = arguments[2];\n }\n\n var len = encodeURI(str).split(/%..|./).length - 1;\n return len >= min && (typeof max === 'undefined' || len <= max);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;\n});\n\nunwrapExports(isByteLength_1);\n\nvar isFQDN_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isFQDN;\n\nvar _assertString = _interopRequireDefault(assertString_1);\n\nvar _merge = _interopRequireDefault(merge_1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar default_fqdn_options = {\n require_tld: true,\n allow_underscores: false,\n allow_trailing_dot: false\n};\n\nfunction isFQDN(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_fqdn_options);\n /* Remove the optional trailing dot before checking validity */\n\n if (options.allow_trailing_dot && str[str.length - 1] === '.') {\n str = str.substring(0, str.length - 1);\n }\n\n var parts = str.split('.');\n\n for (var i = 0; i < parts.length; i++) {\n if (parts[i].length > 63) {\n return false;\n }\n }\n\n if (options.require_tld) {\n var tld = parts.pop();\n\n if (!parts.length || !/^([a-z\\u00a1-\\uffff]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) {\n return false;\n } // disallow spaces\n\n\n if (/[\\s\\u2002-\\u200B\\u202F\\u205F\\u3000\\uFEFF\\uDB40\\uDC20]/.test(tld)) {\n return false;\n }\n }\n\n for (var part, _i = 0; _i < parts.length; _i++) {\n part = parts[_i];\n\n if (options.allow_underscores) {\n part = part.replace(/_/g, '');\n }\n\n if (!/^[a-z\\u00a1-\\uffff0-9-]+$/i.test(part)) {\n return false;\n } // disallow full-width chars\n\n\n if (/[\\uff01-\\uff5e]/.test(part)) {\n return false;\n }\n\n if (part[0] === '-' || part[part.length - 1] === '-') {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;\n});\n\nvar isFQDN = unwrapExports(isFQDN_1);\n\nvar isIP_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIP;\n\nvar _assertString = _interopRequireDefault(assertString_1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ipv4Maybe = /^(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$/;\nvar ipv6Block = /^[0-9A-F]{1,4}$/i;\n\nfunction isIP(str) {\n var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n (0, _assertString.default)(str);\n version = String(version);\n\n if (!version) {\n return isIP(str, 4) || isIP(str, 6);\n } else if (version === '4') {\n if (!ipv4Maybe.test(str)) {\n return false;\n }\n\n var parts = str.split('.').sort(function (a, b) {\n return a - b;\n });\n return parts[3] <= 255;\n } else if (version === '6') {\n var blocks = str.split(':');\n var foundOmissionBlock = false; // marker to indicate ::\n // At least some OS accept the last 32 bits of an IPv6 address\n // (i.e. 2 of the blocks) in IPv4 notation, and RFC 3493 says\n // that '::ffff:a.b.c.d' is valid for IPv4-mapped IPv6 addresses,\n // and '::a.b.c.d' is deprecated, but also valid.\n\n var foundIPv4TransitionBlock = isIP(blocks[blocks.length - 1], 4);\n var expectedNumberOfBlocks = foundIPv4TransitionBlock ? 7 : 8;\n\n if (blocks.length > expectedNumberOfBlocks) {\n return false;\n } // initial or final ::\n\n\n if (str === '::') {\n return true;\n } else if (str.substr(0, 2) === '::') {\n blocks.shift();\n blocks.shift();\n foundOmissionBlock = true;\n } else if (str.substr(str.length - 2) === '::') {\n blocks.pop();\n blocks.pop();\n foundOmissionBlock = true;\n }\n\n for (var i = 0; i < blocks.length; ++i) {\n // test for a :: which can not be at the string start/end\n // since those cases have been handled above\n if (blocks[i] === '' && i > 0 && i < blocks.length - 1) {\n if (foundOmissionBlock) {\n return false; // multiple :: in address\n }\n\n foundOmissionBlock = true;\n } else if (foundIPv4TransitionBlock && i === blocks.length - 1) ; else if (!ipv6Block.test(blocks[i])) {\n return false;\n }\n }\n\n if (foundOmissionBlock) {\n return blocks.length >= 1;\n }\n\n return blocks.length === expectedNumberOfBlocks;\n }\n\n return false;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;\n});\n\nvar isIP = unwrapExports(isIP_1);\n\nvar isEmail_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEmail;\n\nvar _assertString = _interopRequireDefault(assertString_1);\n\nvar _merge = _interopRequireDefault(merge_1);\n\nvar _isByteLength = _interopRequireDefault(isByteLength_1);\n\nvar _isFQDN = _interopRequireDefault(isFQDN_1);\n\nvar _isIP = _interopRequireDefault(isIP_1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar default_email_options = {\n allow_display_name: false,\n require_display_name: false,\n allow_utf8_local_part: true,\n require_tld: true\n};\n/* eslint-disable max-len */\n\n/* eslint-disable no-control-regex */\n\nvar displayName = /^[a-z\\d!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~\\.\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+[a-z\\d!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~\\,\\.\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF\\s]*<(.+)>$/i;\nvar emailUserPart = /^[a-z\\d!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]+$/i;\nvar gmailUserPart = /^[a-z\\d]+$/;\nvar quotedEmailUser = /^([\\s\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\x21\\x23-\\x5b\\x5d-\\x7e]|(\\\\[\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]))*$/i;\nvar emailUserUtf8Part = /^[a-z\\d!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+$/i;\nvar quotedEmailUserUtf8 = /^([\\s\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\x21\\x23-\\x5b\\x5d-\\x7e\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]|(\\\\[\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))*$/i;\n/* eslint-enable max-len */\n\n/* eslint-enable no-control-regex */\n\nfunction isEmail(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_email_options);\n\n if (options.require_display_name || options.allow_display_name) {\n var display_email = str.match(displayName);\n\n if (display_email) {\n str = display_email[1];\n } else if (options.require_display_name) {\n return false;\n }\n }\n\n var parts = str.split('@');\n var domain = parts.pop();\n var user = parts.join('@');\n var lower_domain = domain.toLowerCase();\n\n if (options.domain_specific_validation && (lower_domain === 'gmail.com' || lower_domain === 'googlemail.com')) {\n /*\n Previously we removed dots for gmail addresses before validating.\n This was removed because it allows `multiple..dots@gmail.com`\n to be reported as valid, but it is not.\n Gmail only normalizes single dots, removing them from here is pointless,\n should be done in normalizeEmail\n */\n user = user.toLowerCase(); // Removing sub-address from username before gmail validation\n\n var username = user.split('+')[0]; // Dots are not included in gmail length restriction\n\n if (!(0, _isByteLength.default)(username.replace('.', ''), {\n min: 6,\n max: 30\n })) {\n return false;\n }\n\n var _user_parts = username.split('.');\n\n for (var i = 0; i < _user_parts.length; i++) {\n if (!gmailUserPart.test(_user_parts[i])) {\n return false;\n }\n }\n }\n\n if (!(0, _isByteLength.default)(user, {\n max: 64\n }) || !(0, _isByteLength.default)(domain, {\n max: 254\n })) {\n return false;\n }\n\n if (!(0, _isFQDN.default)(domain, {\n require_tld: options.require_tld\n })) {\n if (!options.allow_ip_domain) {\n return false;\n }\n\n if (!(0, _isIP.default)(domain)) {\n if (!domain.startsWith('[') || !domain.endsWith(']')) {\n return false;\n }\n\n var noBracketdomain = domain.substr(1, domain.length - 2);\n\n if (noBracketdomain.length === 0 || !(0, _isIP.default)(noBracketdomain)) {\n return false;\n }\n }\n }\n\n if (user[0] === '\"') {\n user = user.slice(1, user.length - 1);\n return options.allow_utf8_local_part ? quotedEmailUserUtf8.test(user) : quotedEmailUser.test(user);\n }\n\n var pattern = options.allow_utf8_local_part ? emailUserUtf8Part : emailUserPart;\n var user_parts = user.split('.');\n\n for (var _i = 0; _i < user_parts.length; _i++) {\n if (!pattern.test(user_parts[_i])) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;\n});\n\nvar isEmail = unwrapExports(isEmail_1);\n\nfunction objectWithoutProperties (obj, exclude) { var target = {}; for (var k in obj) if (Object.prototype.hasOwnProperty.call(obj, k) && exclude.indexOf(k) === -1) target[k] = obj[k]; return target; }\n\nvar validate$d = function (value, ref) {\n if ( ref === void 0 ) ref = {};\n var multiple = ref.multiple; if ( multiple === void 0 ) multiple = false;\n var rest = objectWithoutProperties( ref, [\"multiple\"] );\n var options = rest;\n\n if (multiple && !Array.isArray(value)) {\n value = String(value).split(',').map(function (emailStr) { return emailStr.trim(); });\n }\n\n var validatorOptions = assign({}, options);\n\n if (Array.isArray(value)) {\n return value.every(function (val) { return isEmail(String(val), validatorOptions); });\n }\n\n return isEmail(String(value), validatorOptions);\n};\n\nvar email = {\n validate: validate$d\n};\n\nvar validate$e = function (value, options) {\n if (Array.isArray(value)) {\n return value.every(function (val) { return validate$e(val, options); });\n }\n\n return toArray(options).some(function (item) {\n // eslint-disable-next-line\n return item == value;\n });\n};\n\nvar included = {\n validate: validate$e\n};\n\nvar validate$f = function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return !validate$e.apply(void 0, args);\n};\n\nvar excluded = {\n validate: validate$f\n};\n\nvar validate$g = function (files, extensions) {\n var regex = new RegExp((\".(\" + (extensions.join('|')) + \")$\"), 'i');\n return ensureArray(files).every(function (file) { return regex.test(file.name); });\n};\n\nvar ext = {\n validate: validate$g\n};\n\nvar validate$h = function (files) { return (Array.isArray(files) ? files : [files]).every(function (file) { return /\\.(jpg|svg|jpeg|png|bmp|gif)$/i.test(file.name); }); };\n\nvar image = {\n validate: validate$h\n};\n\nvar validate$i = function (value) {\n if (Array.isArray(value)) {\n return value.every(function (val) { return /^-?[0-9]+$/.test(String(val)); });\n }\n\n return /^-?[0-9]+$/.test(String(value));\n};\n\nvar integer = {\n validate: validate$i\n};\n\nvar validate$j = function (value, ref) {\n if ( ref === void 0 ) ref = {};\n var version = ref.version; if ( version === void 0 ) version = 4;\n\n if (isNullOrUndefined(value)) {\n value = '';\n }\n\n if (Array.isArray(value)) {\n return value.every(function (val) { return isIP(val, version); });\n }\n\n return isIP(value, version);\n};\n\nvar paramNames$b = ['version'];\n\nvar ip = {\n validate: validate$j,\n paramNames: paramNames$b\n};\n\nvar validate$k = function (value) {\n if (isNullOrUndefined(value)) {\n value = '';\n }\n\n if (Array.isArray(value)) {\n return value.every(function (val) { return (isIP(val, '') || isFQDN(val)); });\n }\n\n return isIP(value, '') || isFQDN(value);\n};\n\nvar ip_or_fqdn = {\n validate: validate$k\n};\n\nvar validate$l = function (value, ref) {\n if ( ref === void 0 ) ref = [];\n var other = ref[0];\n\n return value === other;\n};\n\nvar is = {\n validate: validate$l\n};\n\nvar validate$m = function (value, ref) {\n if ( ref === void 0 ) ref = [];\n var other = ref[0];\n\n return value !== other;\n};\n\nvar is_not = {\n validate: validate$m\n};\n\n/**\n * @param {Array|String} value\n * @param {Number} length\n * @param {Number} max\n */\nvar compare = function (value, length, max) {\n if (max === undefined) {\n return value.length === length;\n }\n\n // cast to number.\n max = Number(max);\n\n return value.length >= length && value.length <= max;\n};\n\nvar validate$n = function (value, ref) {\n var length = ref[0];\n var max = ref[1]; if ( max === void 0 ) max = undefined;\n\n if (isNullOrUndefined(value)) {\n return false;\n }\n\n length = Number(length);\n if (typeof value === 'number') {\n value = String(value);\n }\n\n if (!value.length) {\n value = toArray(value);\n }\n\n return compare(value, length, max);\n};\n\nvar length = {\n validate: validate$n\n};\n\nvar validate$o = function (value, ref) {\n var length = ref[0];\n\n if (isNullOrUndefined(value)) {\n return length >= 0;\n }\n\n if (Array.isArray(value)) {\n return value.every(function (val) { return validate$o(val, [length]); });\n }\n\n return String(value).length <= length;\n};\n\nvar max = {\n validate: validate$o\n};\n\nvar validate$p = function (value, ref) {\n var max = ref[0];\n\n if (isNullOrUndefined(value) || value === '') {\n return false;\n }\n\n if (Array.isArray(value)) {\n return value.length > 0 && value.every(function (val) { return validate$p(val, [max]); });\n }\n\n return Number(value) <= max;\n};\n\nvar max_value = {\n validate: validate$p\n};\n\nvar validate$q = function (files, mimes) {\n var regex = new RegExp(((mimes.join('|').replace('*', '.+')) + \"$\"), 'i');\n return ensureArray(files).every(function (file) { return regex.test(file.type); });\n};\n\nvar mimes = {\n validate: validate$q\n};\n\nvar validate$r = function (value, ref) {\n var length = ref[0];\n\n if (isNullOrUndefined(value)) {\n return false;\n }\n\n if (Array.isArray(value)) {\n return value.every(function (val) { return validate$r(val, [length]); });\n }\n\n return String(value).length >= length;\n};\n\nvar min = {\n validate: validate$r\n};\n\nvar validate$s = function (value, ref) {\n var min = ref[0];\n\n if (isNullOrUndefined(value) || value === '') {\n return false;\n }\n\n if (Array.isArray(value)) {\n return value.length > 0 && value.every(function (val) { return validate$s(val, [min]); });\n }\n\n return Number(value) >= min;\n};\n\nvar min_value = {\n validate: validate$s\n};\n\nvar ar = /^[٠١٢٣٤٥٦٧٨٩]+$/;\nvar en = /^[0-9]+$/;\n\nvar validate$t = function (value) {\n var testValue = function (val) {\n var strValue = String(val);\n\n return en.test(strValue) || ar.test(strValue);\n };\n\n if (Array.isArray(value)) {\n return value.every(testValue);\n }\n\n return testValue(value);\n};\n\nvar numeric = {\n validate: validate$t\n};\n\nvar validate$u = function (value, ref) {\n var expression = ref.expression;\n\n if (typeof expression === 'string') {\n expression = new RegExp(expression);\n }\n\n if (Array.isArray(value)) {\n return value.every(function (val) { return validate$u(val, { expression: expression }); });\n }\n\n return expression.test(String(value));\n};\n\nvar paramNames$c = ['expression'];\n\nvar regex = {\n validate: validate$u,\n paramNames: paramNames$c\n};\n\nvar validate$v = function (value, ref) {\n if ( ref === void 0 ) ref = [];\n var invalidateFalse = ref[0]; if ( invalidateFalse === void 0 ) invalidateFalse = false;\n\n if (isNullOrUndefined(value) || isEmptyArray(value)) {\n return false;\n }\n\n // incase a field considers `false` as an empty value like checkboxes.\n if (value === false && invalidateFalse) {\n return false;\n }\n\n return !!String(value).trim().length;\n};\n\nvar required = {\n validate: validate$v\n};\n\nvar validate$w = function (value, ref) {\n if ( ref === void 0 ) ref = [];\n var otherFieldVal = ref[0];\n var possibleVals = ref.slice(1);\n\n var required = possibleVals.includes(String(otherFieldVal).trim());\n\n if (!required) {\n return {\n valid: true,\n data: {\n required: required\n }\n };\n }\n\n var invalid = (isEmptyArray(value) || [false, null, undefined].includes(value));\n\n invalid = invalid || !String(value).trim().length;\n\n return {\n valid: !invalid,\n data: {\n required: required\n }\n };\n};\n\nvar options$5 = {\n hasTarget: true,\n computesRequired: true\n};\n\nvar required_if = {\n validate: validate$w,\n options: options$5\n};\n\nvar validate$x = function (files, ref) {\n var size = ref[0];\n\n if (isNaN(size)) {\n return false;\n }\n var nSize = Number(size) * 1024;\n return ensureArray(files).every(function (file) { return file.size <= nSize; });\n};\n\nvar size = {\n validate: validate$x\n};\n\nvar isURL_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isURL;\n\nvar _assertString = _interopRequireDefault(assertString_1);\n\nvar _isFQDN = _interopRequireDefault(isFQDN_1);\n\nvar _isIP = _interopRequireDefault(isIP_1);\n\nvar _merge = _interopRequireDefault(merge_1);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar default_url_options = {\n protocols: ['http', 'https', 'ftp'],\n require_tld: true,\n require_protocol: false,\n require_host: true,\n require_valid_protocol: true,\n allow_underscores: false,\n allow_trailing_dot: false,\n allow_protocol_relative_urls: false\n};\nvar wrapped_ipv6 = /^\\[([^\\]]+)\\](?::([0-9]+))?$/;\n\nfunction isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n}\n\nfunction checkHost(host, matches) {\n for (var i = 0; i < matches.length; i++) {\n var match = matches[i];\n\n if (host === match || isRegExp(match) && match.test(host)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction isURL(url, options) {\n (0, _assertString.default)(url);\n\n if (!url || url.length >= 2083 || /[\\s<>]/.test(url)) {\n return false;\n }\n\n if (url.indexOf('mailto:') === 0) {\n return false;\n }\n\n options = (0, _merge.default)(options, default_url_options);\n var protocol, auth, host, hostname, port, port_str, split, ipv6;\n split = url.split('#');\n url = split.shift();\n split = url.split('?');\n url = split.shift();\n split = url.split('://');\n\n if (split.length > 1) {\n protocol = split.shift().toLowerCase();\n\n if (options.require_valid_protocol && options.protocols.indexOf(protocol) === -1) {\n return false;\n }\n } else if (options.require_protocol) {\n return false;\n } else if (url.substr(0, 2) === '//') {\n if (!options.allow_protocol_relative_urls) {\n return false;\n }\n\n split[0] = url.substr(2);\n }\n\n url = split.join('://');\n\n if (url === '') {\n return false;\n }\n\n split = url.split('/');\n url = split.shift();\n\n if (url === '' && !options.require_host) {\n return true;\n }\n\n split = url.split('@');\n\n if (split.length > 1) {\n if (options.disallow_auth) {\n return false;\n }\n\n auth = split.shift();\n\n if (auth.indexOf(':') >= 0 && auth.split(':').length > 2) {\n return false;\n }\n }\n\n hostname = split.join('@');\n port_str = null;\n ipv6 = null;\n var ipv6_match = hostname.match(wrapped_ipv6);\n\n if (ipv6_match) {\n host = '';\n ipv6 = ipv6_match[1];\n port_str = ipv6_match[2] || null;\n } else {\n split = hostname.split(':');\n host = split.shift();\n\n if (split.length) {\n port_str = split.join(':');\n }\n }\n\n if (port_str !== null) {\n port = parseInt(port_str, 10);\n\n if (!/^[0-9]+$/.test(port_str) || port <= 0 || port > 65535) {\n return false;\n }\n }\n\n if (!(0, _isIP.default)(host) && !(0, _isFQDN.default)(host, options) && (!ipv6 || !(0, _isIP.default)(ipv6, 6))) {\n return false;\n }\n\n host = host || ipv6;\n\n if (options.host_whitelist && !checkHost(host, options.host_whitelist)) {\n return false;\n }\n\n if (options.host_blacklist && checkHost(host, options.host_blacklist)) {\n return false;\n }\n\n return true;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;\n});\n\nvar isURL = unwrapExports(isURL_1);\n\nvar validate$y = function (value, options) {\n if ( options === void 0 ) options = {};\n\n if (isNullOrUndefined(value)) {\n value = '';\n }\n\n var validatorOptions = assign({}, options);\n\n if (Array.isArray(value)) {\n return value.every(function (val) { return isURL(val, validatorOptions); });\n }\n\n return isURL(value, validatorOptions);\n};\n\nvar url = {\n validate: validate$y\n};\n\n/* eslint-disable camelcase */\n\nvar Rules = /*#__PURE__*/Object.freeze({\n after: after,\n alpha_dash: alpha_dash,\n alpha_num: alpha_num,\n alpha_spaces: alpha_spaces,\n alpha: alpha$1,\n before: before,\n between: between,\n confirmed: confirmed,\n credit_card: credit_card,\n date_between: date_between,\n date_format: date_format,\n decimal: decimal,\n digits: digits,\n dimensions: dimensions,\n email: email,\n ext: ext,\n image: image,\n included: included,\n integer: integer,\n length: length,\n ip: ip,\n ip_or_fqdn: ip_or_fqdn,\n is_not: is_not,\n is: is,\n max: max,\n max_value: max_value,\n mimes: mimes,\n min: min,\n min_value: min_value,\n excluded: excluded,\n numeric: numeric,\n regex: regex,\n required: required,\n required_if: required_if,\n size: size,\n url: url\n});\n\n// \n\nvar normalize = function (fields) {\n if (Array.isArray(fields)) {\n return fields.reduce(function (prev, curr) {\n if (includes(curr, '.')) {\n prev[curr.split('.')[1]] = curr;\n } else {\n prev[curr] = curr;\n }\n\n return prev;\n }, {});\n }\n\n return fields;\n};\n\n// Combines two flags using either AND or OR depending on the flag type.\nvar combine = function (lhs, rhs) {\n var mapper = {\n pristine: function (lhs, rhs) { return lhs && rhs; },\n dirty: function (lhs, rhs) { return lhs || rhs; },\n touched: function (lhs, rhs) { return lhs || rhs; },\n untouched: function (lhs, rhs) { return lhs && rhs; },\n valid: function (lhs, rhs) { return lhs && rhs; },\n invalid: function (lhs, rhs) { return lhs || rhs; },\n pending: function (lhs, rhs) { return lhs || rhs; },\n required: function (lhs, rhs) { return lhs || rhs; },\n validated: function (lhs, rhs) { return lhs && rhs; }\n };\n\n return Object.keys(mapper).reduce(function (flags, flag) {\n flags[flag] = mapper[flag](lhs[flag], rhs[flag]);\n\n return flags;\n }, {});\n};\n\nvar mapScope = function (scope, deep) {\n if ( deep === void 0 ) deep = true;\n\n return Object.keys(scope).reduce(function (flags, field) {\n if (!flags) {\n flags = assign({}, scope[field]);\n return flags;\n }\n\n // scope.\n var isScope = field.indexOf('$') === 0;\n if (deep && isScope) {\n return combine(mapScope(scope[field]), flags);\n } else if (!deep && isScope) {\n return flags;\n }\n\n flags = combine(flags, scope[field]);\n\n return flags;\n }, null);\n};\n\n/**\n * Maps fields to computed functions.\n */\nvar mapFields = function (fields) {\n if (!fields) {\n return function () {\n return mapScope(this.$validator.flags);\n };\n }\n\n var normalized = normalize(fields);\n return Object.keys(normalized).reduce(function (prev, curr) {\n var field = normalized[curr];\n prev[curr] = function mappedField () {\n // if field exists\n if (this.$validator.flags[field]) {\n return this.$validator.flags[field];\n }\n\n // scopeless fields were selected.\n if (normalized[curr] === '*') {\n return mapScope(this.$validator.flags, false);\n }\n\n // if it has a scope defined\n var index = field.indexOf('.');\n if (index <= 0) {\n return {};\n }\n\n var ref = field.split('.');\n var scope = ref[0];\n var name = ref.slice(1);\n\n scope = this.$validator.flags[(\"$\" + scope)];\n name = name.join('.');\n\n // an entire scope was selected: scope.*\n if (name === '*' && scope) {\n return mapScope(scope);\n }\n\n if (scope && scope[name]) {\n return scope[name];\n }\n\n return {};\n };\n\n return prev;\n }, {});\n};\n\nvar $validator = null;\n\nvar PROVIDER_COUNTER = 0;\n\nvar ValidationProvider = {\n $__veeInject: false,\n inject: {\n $_veeObserver: {\n from: '$_veeObserver',\n default: function default$1 () {\n if (!this.$vnode.context.$_veeObserver) {\n this.$vnode.context.$_veeObserver = createObserver();\n }\n\n return this.$vnode.context.$_veeObserver;\n }\n }\n },\n props: {\n vid: {\n type: [String, Number],\n default: function () {\n PROVIDER_COUNTER++;\n\n return (\"_vee_\" + PROVIDER_COUNTER);\n }\n },\n name: {\n type: String,\n default: null\n },\n mode: {\n type: [String, Function],\n default: function () {\n return getConfig().mode;\n }\n },\n events: {\n type: Array,\n validate: function () {\n /* istanbul ignore next */\n if (process.env.NODE_ENV !== 'production') {\n warn('events prop and config will be deprecated in future version please use the interaction modes instead');\n }\n\n return true;\n },\n default: function () {\n var events = getConfig().events;\n if (typeof events === 'string') {\n return events.split('|');\n }\n\n return events;\n }\n },\n rules: {\n type: [Object, String],\n default: null\n },\n immediate: {\n type: Boolean,\n default: false\n },\n persist: {\n type: Boolean,\n default: false\n },\n bails: {\n type: Boolean,\n default: function () { return getConfig().fastExit; }\n },\n debounce: {\n type: Number,\n default: function () { return getConfig().delay || 0; }\n },\n tag: {\n type: String,\n default: 'span'\n },\n slim: {\n type: Boolean,\n default: false\n }\n },\n watch: {\n rules: {\n deep: true,\n handler: function handler (val, oldVal) {\n this._needsValidation = !isEqual(val, oldVal);\n }\n }\n },\n data: function () { return ({\n messages: [],\n value: undefined,\n initialized: false,\n initialValue: undefined,\n flags: createFlags(),\n failedRules: {},\n forceRequired: false,\n isDeactivated: false,\n id: null\n }); },\n computed: {\n isValid: function isValid () {\n return this.flags.valid;\n },\n fieldDeps: function fieldDeps () {\n var this$1 = this;\n\n var rules = normalizeRules(this.rules);\n\n return Object.keys(rules).filter(RuleContainer.isTargetRule).map(function (rule) {\n var depName = rules[rule][0];\n watchCrossFieldDep(this$1, depName);\n\n return depName;\n });\n },\n normalizedEvents: function normalizedEvents () {\n var this$1 = this;\n\n var ref = computeModeSetting(this);\n var on = ref.on;\n\n return normalizeEvents(on || this.events || []).map(function (e) {\n if (e === 'input') {\n return this$1._inputEventName;\n }\n\n return e;\n });\n },\n isRequired: function isRequired () {\n var rules = normalizeRules(this.rules);\n var forceRequired = this.forceRequired;\n\n var isRequired = rules.required || forceRequired;\n this.flags.required = isRequired;\n\n return isRequired;\n },\n classes: function classes () {\n var this$1 = this;\n\n var names = getConfig().classNames;\n return Object.keys(this.flags).reduce(function (classes, flag) {\n var className = (names && names[flag]) || flag;\n if (isNullOrUndefined(this$1.flags[flag])) {\n return classes;\n }\n\n if (className) {\n classes[className] = this$1.flags[flag];\n }\n\n return classes;\n }, {});\n }\n },\n render: function render (h) {\n var this$1 = this;\n\n this.registerField();\n var ctx = createValidationCtx(this);\n\n // Gracefully handle non-existent scoped slots.\n var slot = this.$scopedSlots.default;\n /* istanbul ignore next */\n if (!isCallable(slot)) {\n if (process.env.NODE_ENV !== 'production') {\n warn('ValidationProvider expects a scoped slot. Did you forget to add \"v-slot\" to your slot?');\n }\n\n return h(this.tag, this.$slots.default);\n }\n\n var nodes = slot(ctx);\n // Handle single-root slot.\n extractVNodes(nodes).forEach(function (input) {\n addListeners.call(this$1, input);\n });\n\n return this.slim ? createRenderless(h, nodes) : h(this.tag, nodes);\n },\n beforeDestroy: function beforeDestroy () {\n // cleanup reference.\n this.$_veeObserver.unsubscribe(this);\n },\n activated: function activated () {\n this.$_veeObserver.subscribe(this);\n this.isDeactivated = false;\n },\n deactivated: function deactivated () {\n this.$_veeObserver.unsubscribe(this);\n this.isDeactivated = true;\n },\n methods: {\n setFlags: function setFlags (flags) {\n var this$1 = this;\n\n Object.keys(flags).forEach(function (flag) {\n this$1.flags[flag] = flags[flag];\n });\n },\n syncValue: function syncValue (e) {\n var value = normalizeValue$1(e);\n this.value = value;\n this.flags.changed = this.initialValue !== value;\n },\n reset: function reset () {\n this.messages = [];\n this._pendingValidation = null;\n this.initialValue = this.value;\n var flags = createFlags();\n this.setFlags(flags);\n },\n validate: function validate () {\n var this$1 = this;\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n if (args.length > 0) {\n this.syncValue(args[0]);\n }\n\n return this.validateSilent().then(function (result) {\n this$1.applyResult(result);\n\n return result;\n });\n },\n validateSilent: function validateSilent () {\n var this$1 = this;\n\n this.setFlags({ pending: true });\n\n return $validator.verify(this.value, this.rules, {\n name: this.name,\n values: createValuesLookup(this),\n bails: this.bails\n }).then(function (result) {\n this$1.setFlags({ pending: false });\n if (!this$1.isRequired) {\n this$1.setFlags({ valid: result.valid, invalid: !result.valid });\n }\n\n return result;\n });\n },\n applyResult: function applyResult (ref) {\n var errors = ref.errors;\n var failedRules = ref.failedRules;\n\n this.messages = errors;\n this.failedRules = assign({}, failedRules);\n this.setFlags({\n valid: !errors.length,\n changed: this.value !== this.initialValue,\n invalid: !!errors.length,\n validated: true\n });\n },\n registerField: function registerField () {\n if (!$validator) {\n $validator = getValidator() || new Validator(null, { fastExit: getConfig().fastExit });\n }\n\n updateRenderingContextRefs(this);\n }\n }\n};\n\nfunction createValidationCtx (ctx) {\n return {\n errors: ctx.messages,\n flags: ctx.flags,\n classes: ctx.classes,\n valid: ctx.isValid,\n failedRules: ctx.failedRules,\n reset: function () { return ctx.reset(); },\n validate: function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return ctx.validate.apply(ctx, args);\n },\n aria: {\n 'aria-invalid': ctx.flags.invalid ? 'true' : 'false',\n 'aria-required': ctx.isRequired ? 'true' : 'false'\n }\n };\n}\n\nfunction normalizeValue$1 (value) {\n if (isEvent(value)) {\n return value.target.type === 'file' ? toArray(value.target.files) : value.target.value;\n }\n\n return value;\n}\n\n/**\n * Determines if a provider needs to run validation.\n */\nfunction shouldValidate (ctx, model) {\n // when an immediate/initial validation is needed and wasn't done before.\n if (!ctx._ignoreImmediate && ctx.immediate) {\n return true;\n }\n\n // when the value changes for whatever reason.\n if (ctx.value !== model.value) {\n return true;\n }\n\n // when it needs validation due to props/cross-fields changes.\n if (ctx._needsValidation) {\n return true;\n }\n\n // when the initial value is undefined and the field wasn't rendered yet.\n if (!ctx.initialized && model.value === undefined) {\n return true;\n }\n\n return false;\n}\n\nfunction computeModeSetting (ctx) {\n var compute = isCallable(ctx.mode) ? ctx.mode : modes[ctx.mode];\n\n return compute({\n errors: ctx.messages,\n value: ctx.value,\n flags: ctx.flags\n });\n}\n\nfunction onRenderUpdate (model) {\n if (!this.initialized) {\n this.initialValue = model.value;\n }\n\n var validateNow = shouldValidate(this, model);\n this._needsValidation = false;\n this.value = model.value;\n this._ignoreImmediate = true;\n\n if (!validateNow) {\n return;\n }\n\n this.validateSilent().then(this.immediate || this.flags.validated ? this.applyResult : function (x) { return x; });\n}\n\n// Creates the common handlers for a validatable context.\nfunction createCommonHandlers (ctx) {\n var onInput = function (e) {\n ctx.syncValue(e); // track and keep the value updated.\n ctx.setFlags({ dirty: true, pristine: false });\n };\n\n // Blur event listener.\n var onBlur = function () {\n ctx.setFlags({ touched: true, untouched: false });\n };\n\n var onValidate = ctx.$veeHandler;\n var mode = computeModeSetting(ctx);\n\n // Handle debounce changes.\n if (!onValidate || ctx.$veeDebounce !== ctx.debounce) {\n onValidate = debounce(\n function () {\n ctx.$nextTick(function () {\n var pendingPromise = ctx.validateSilent();\n // avoids race conditions between successive validations.\n ctx._pendingValidation = pendingPromise;\n pendingPromise.then(function (result) {\n if (pendingPromise === ctx._pendingValidation) {\n ctx.applyResult(result);\n ctx._pendingValidation = null;\n }\n });\n });\n },\n mode.debounce || ctx.debounce\n );\n\n // Cache the handler so we don't create it each time.\n ctx.$veeHandler = onValidate;\n // cache the debounce value so we detect if it was changed.\n ctx.$veeDebounce = ctx.debounce;\n }\n\n return { onInput: onInput, onBlur: onBlur, onValidate: onValidate };\n}\n\n// Adds all plugin listeners to the vnode.\nfunction addListeners (node) {\n var model = findModel(node);\n // cache the input eventName.\n this._inputEventName = this._inputEventName || getInputEventName(node, model);\n\n onRenderUpdate.call(this, model);\n\n var ref = createCommonHandlers(this);\n var onInput = ref.onInput;\n var onBlur = ref.onBlur;\n var onValidate = ref.onValidate;\n addVNodeListener(node, this._inputEventName, onInput);\n addVNodeListener(node, 'blur', onBlur);\n\n // add the validation listeners.\n this.normalizedEvents.forEach(function (evt) {\n addVNodeListener(node, evt, onValidate);\n });\n\n this.initialized = true;\n}\n\nfunction createValuesLookup (ctx) {\n var providers = ctx.$_veeObserver.refs;\n\n return ctx.fieldDeps.reduce(function (acc, depName) {\n if (!providers[depName]) {\n return acc;\n }\n\n acc[depName] = providers[depName].value;\n\n return acc;\n }, {});\n}\n\nfunction updateRenderingContextRefs (ctx) {\n // IDs should not be nullable.\n if (isNullOrUndefined(ctx.id) && ctx.id === ctx.vid) {\n ctx.id = PROVIDER_COUNTER;\n PROVIDER_COUNTER++;\n }\n\n var id = ctx.id;\n var vid = ctx.vid;\n // Nothing has changed.\n if (ctx.isDeactivated || (id === vid && ctx.$_veeObserver.refs[id])) {\n return;\n }\n\n // vid was changed.\n if (id !== vid && ctx.$_veeObserver.refs[id] === ctx) {\n ctx.$_veeObserver.unsubscribe({ vid: id });\n }\n\n ctx.$_veeObserver.subscribe(ctx);\n ctx.id = vid;\n}\n\nfunction createObserver () {\n return {\n refs: {},\n subscribe: function subscribe (ctx) {\n this.refs[ctx.vid] = ctx;\n },\n unsubscribe: function unsubscribe (ctx) {\n delete this.refs[ctx.vid];\n }\n };\n}\n\nfunction watchCrossFieldDep (ctx, depName, withHooks) {\n if ( withHooks === void 0 ) withHooks = true;\n\n var providers = ctx.$_veeObserver.refs;\n if (!ctx._veeWatchers) {\n ctx._veeWatchers = {};\n }\n\n if (!providers[depName] && withHooks) {\n return ctx.$once('hook:mounted', function () {\n watchCrossFieldDep(ctx, depName, false);\n });\n }\n\n if (!isCallable(ctx._veeWatchers[depName]) && providers[depName]) {\n ctx._veeWatchers[depName] = providers[depName].$watch('value', function () {\n if (ctx.flags.validated) {\n ctx._needsValidation = true;\n ctx.validate();\n }\n });\n }\n}\n\nvar flagMergingStrategy = {\n pristine: 'every',\n dirty: 'some',\n touched: 'some',\n untouched: 'every',\n valid: 'every',\n invalid: 'some',\n pending: 'some',\n validated: 'every'\n};\n\nfunction mergeFlags (lhs, rhs, strategy) {\n var stratName = flagMergingStrategy[strategy];\n\n return [lhs, rhs][stratName](function (f) { return f; });\n}\n\nvar OBSERVER_COUNTER = 0;\n\nvar ValidationObserver = {\n name: 'ValidationObserver',\n provide: function provide () {\n return {\n $_veeObserver: this\n };\n },\n inject: {\n $_veeObserver: {\n from: '$_veeObserver',\n default: function default$1 () {\n if (!this.$vnode.context.$_veeObserver) {\n return null;\n }\n\n return this.$vnode.context.$_veeObserver;\n }\n }\n },\n props: {\n tag: {\n type: String,\n default: 'span'\n },\n slim: {\n type: Boolean,\n default: false\n }\n },\n data: function () { return ({\n vid: (\"obs_\" + (OBSERVER_COUNTER++)),\n refs: {},\n observers: [],\n persistedStore: {}\n }); },\n computed: {\n ctx: function ctx () {\n var this$1 = this;\n\n var ctx = {\n errors: {},\n validate: function (arg) {\n var promise = this$1.validate(arg);\n\n return {\n then: function then (thenable) {\n return promise.then(function (success) {\n if (success && isCallable(thenable)) {\n return Promise.resolve(thenable());\n }\n\n return Promise.resolve(success);\n });\n }\n };\n },\n reset: function () { return this$1.reset(); }\n };\n\n return values(this.refs).concat( Object.keys(this.persistedStore).map(function (key) {\n return {\n vid: key,\n flags: this$1.persistedStore[key].flags,\n messages: this$1.persistedStore[key].errors\n };\n }),\n this.observers ).reduce(function (acc, provider) {\n Object.keys(flagMergingStrategy).forEach(function (flag) {\n var flags = provider.flags || provider.ctx;\n if (!(flag in acc)) {\n acc[flag] = flags[flag];\n return;\n }\n\n acc[flag] = mergeFlags(acc[flag], flags[flag], flag);\n });\n\n acc.errors[provider.vid] = provider.messages || values(provider.ctx.errors).reduce(function (errs, obsErrors) {\n return errs.concat(obsErrors);\n }, []);\n\n return acc;\n }, ctx);\n }\n },\n created: function created () {\n if (this.$_veeObserver) {\n this.$_veeObserver.subscribe(this, 'observer');\n }\n },\n activated: function activated () {\n if (this.$_veeObserver) {\n this.$_veeObserver.subscribe(this, 'observer');\n }\n },\n deactivated: function deactivated () {\n if (this.$_veeObserver) {\n this.$_veeObserver.unsubscribe(this, 'observer');\n }\n },\n beforeDestroy: function beforeDestroy () {\n if (this.$_veeObserver) {\n this.$_veeObserver.unsubscribe(this, 'observer');\n }\n },\n render: function render (h) {\n var slots = this.$slots.default || this.$scopedSlots.default || [];\n if (isCallable(slots)) {\n slots = slots(this.ctx);\n }\n\n return this.slim ? createRenderless(h, slots) : h(this.tag, { on: this.$listeners, attrs: this.$attrs }, slots);\n },\n methods: {\n subscribe: function subscribe (subscriber, kind) {\n var obj;\n\n if ( kind === void 0 ) kind = 'provider';\n if (kind === 'observer') {\n this.observers.push(subscriber);\n return;\n }\n\n this.refs = Object.assign({}, this.refs, ( obj = {}, obj[subscriber.vid] = subscriber, obj ));\n if (subscriber.persist && this.persistedStore[subscriber.vid]) {\n this.restoreProviderState(subscriber);\n }\n },\n unsubscribe: function unsubscribe (ref, kind) {\n var vid = ref.vid;\n if ( kind === void 0 ) kind = 'provider';\n\n if (kind === 'provider') {\n this.removeProvider(vid);\n }\n\n var idx = findIndex(this.observers, function (o) { return o.vid === vid; });\n if (idx !== -1) {\n this.observers.splice(idx, 1);\n }\n },\n validate: function validate (ref) {\n if ( ref === void 0 ) ref = { silent: false };\n var silent = ref.silent;\n\n return Promise.all(values(this.refs).map(function (ref) { return ref[silent ? 'validateSilent' : 'validate']().then(function (r) { return r.valid; }); }).concat( this.observers.map(function (obs) { return obs.validate({ silent: silent }); })\n )).then(function (results) { return results.every(function (r) { return r; }); });\n },\n reset: function reset () {\n var this$1 = this;\n\n Object.keys(this.persistedStore).forEach(function (key) {\n this$1.$delete(this$1.persistedStore, key);\n });\n return values(this.refs).concat( this.observers).forEach(function (ref) { return ref.reset(); });\n },\n restoreProviderState: function restoreProviderState (provider) {\n var state = this.persistedStore[provider.vid];\n provider.setFlags(state.flags);\n provider.applyResult(state);\n this.$delete(this.persistedStore, provider.vid);\n },\n removeProvider: function removeProvider (vid) {\n var obj;\n\n var provider = this.refs[vid];\n // save it for the next time.\n if (provider && provider.persist) {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n if (vid.indexOf('_vee_') === 0) {\n warn('Please provide a `vid` prop when using `persist`, there might be unexpected issues otherwise.');\n }\n }\n\n this.persistedStore = assign({}, this.persistedStore, ( obj = {}, obj[vid] = {\n flags: provider.flags,\n errors: provider.messages,\n failedRules: provider.failedRules\n }, obj ));\n }\n\n this.$delete(this.refs, vid);\n },\n }\n};\n\nfunction withValidation (component, ctxToProps) {\n if ( ctxToProps === void 0 ) ctxToProps = null;\n\n var options = isCallable(component) ? component.options : component;\n options.$__veeInject = false;\n var hoc = {\n name: ((options.name || 'AnonymousHoc') + \"WithValidation\"),\n props: assign({}, ValidationProvider.props),\n data: ValidationProvider.data,\n computed: assign({}, ValidationProvider.computed),\n methods: assign({}, ValidationProvider.methods),\n $__veeInject: false,\n beforeDestroy: ValidationProvider.beforeDestroy,\n inject: ValidationProvider.inject\n };\n\n // Default ctx converts ctx props to component props.\n if (!ctxToProps) {\n ctxToProps = function (ctx) { return ctx; };\n }\n\n var eventName = (options.model && options.model.event) || 'input';\n\n hoc.render = function (h) {\n var obj;\n\n this.registerField();\n var vctx = createValidationCtx(this);\n var listeners = assign({}, this.$listeners);\n\n var model = findModel(this.$vnode);\n this._inputEventName = this._inputEventName || getInputEventName(this.$vnode, model);\n onRenderUpdate.call(this, model);\n\n var ref = createCommonHandlers(this);\n var onInput = ref.onInput;\n var onBlur = ref.onBlur;\n var onValidate = ref.onValidate;\n\n mergeVNodeListeners(listeners, eventName, onInput);\n mergeVNodeListeners(listeners, 'blur', onBlur);\n this.normalizedEvents.forEach(function (evt, idx) {\n mergeVNodeListeners(listeners, evt, onValidate);\n });\n\n // Props are any attrs not associated with ValidationProvider Plus the model prop.\n // WARNING: Accidental prop overwrite will probably happen.\n var ref$1 = findModelConfig(this.$vnode) || { prop: 'value' };\n var prop = ref$1.prop;\n var props = assign({}, this.$attrs, ( obj = {}, obj[prop] = model.value, obj ), ctxToProps(vctx));\n\n return h(options, {\n attrs: this.$attrs,\n props: props,\n on: listeners\n }, normalizeSlots(this.$slots, this.$vnode.context));\n };\n\n return hoc;\n}\n\nvar version = '2.2.15';\n\nObject.keys(Rules).forEach(function (rule) {\n Validator.extend(rule, Rules[rule].validate, assign({}, Rules[rule].options, { paramNames: Rules[rule].paramNames }));\n});\n\n// Merge the english messages.\nValidator.localize({ en: locale });\n\nvar install = VeeValidate$1.install;\n\nVeeValidate$1.version = version;\nVeeValidate$1.mapFields = mapFields;\nVeeValidate$1.ValidationProvider = ValidationProvider;\nVeeValidate$1.ValidationObserver = ValidationObserver;\nVeeValidate$1.withValidation = withValidation;\n\nexport default VeeValidate$1;\nexport { ErrorBag, Rules, ValidationObserver, ValidationProvider, Validator, directive, install, mapFields, mixin, version, withValidation };\n","(function () {\n Number.isInteger = Number.isInteger || function (value) {\n return typeof value === 'number' &&\n isFinite(value) &&\n Math.floor(value) === value;\n };\n var Cookie = require('tiny-cookie');\n\n var VueCookie = {\n\n install: function (Vue) {\n Vue.prototype.$cookie = this;\n Vue.cookie = this;\n },\n set: function (name, value, daysOrOptions) {\n var opts = daysOrOptions;\n if(Number.isInteger(daysOrOptions)) {\n opts = {expires: daysOrOptions};\n }\n return Cookie.set(name, value, opts);\n },\n\n get: function (name) {\n return Cookie.get(name);\n },\n\n delete: function (name, options) {\n var opts = {expires: -1};\n if(options !== undefined) {\n opts = Object.assign(options, opts);\n }\n this.set(name, '', opts);\n }\n };\n\n if (typeof exports == \"object\") {\n module.exports = VueCookie;\n } else if (typeof define == \"function\" && define.amd) {\n define([], function(){ return VueCookie; })\n } else if (window.Vue) {\n window.VueCookie = VueCookie;\n Vue.use(VueCookie);\n }\n\n})();\n","/*!\n * vue-i18n v8.28.2 \n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\n/* */\n\n/**\n * constants\n */\n\nvar numberFormatKeys = [\n 'compactDisplay',\n 'currency',\n 'currencyDisplay',\n 'currencySign',\n 'localeMatcher',\n 'notation',\n 'numberingSystem',\n 'signDisplay',\n 'style',\n 'unit',\n 'unitDisplay',\n 'useGrouping',\n 'minimumIntegerDigits',\n 'minimumFractionDigits',\n 'maximumFractionDigits',\n 'minimumSignificantDigits',\n 'maximumSignificantDigits'\n];\n\nvar dateTimeFormatKeys = [\n 'dateStyle',\n 'timeStyle',\n 'calendar',\n 'localeMatcher',\n \"hour12\",\n \"hourCycle\",\n \"timeZone\",\n \"formatMatcher\",\n 'weekday',\n 'era',\n 'year',\n 'month',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'timeZoneName' ];\n\n/**\n * utilities\n */\n\nfunction warn (msg, err) {\n if (typeof console !== 'undefined') {\n console.warn('[vue-i18n] ' + msg);\n /* istanbul ignore if */\n if (err) {\n console.warn(err.stack);\n }\n }\n}\n\nfunction error (msg, err) {\n if (typeof console !== 'undefined') {\n console.error('[vue-i18n] ' + msg);\n /* istanbul ignore if */\n if (err) {\n console.error(err.stack);\n }\n }\n}\n\nvar isArray = Array.isArray;\n\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nfunction isBoolean (val) {\n return typeof val === 'boolean'\n}\n\nfunction isString (val) {\n return typeof val === 'string'\n}\n\nvar toString = Object.prototype.toString;\nvar OBJECT_STRING = '[object Object]';\nfunction isPlainObject (obj) {\n return toString.call(obj) === OBJECT_STRING\n}\n\nfunction isNull (val) {\n return val === null || val === undefined\n}\n\nfunction isFunction (val) {\n return typeof val === 'function'\n}\n\nfunction parseArgs () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var locale = null;\n var params = null;\n if (args.length === 1) {\n if (isObject(args[0]) || isArray(args[0])) {\n params = args[0];\n } else if (typeof args[0] === 'string') {\n locale = args[0];\n }\n } else if (args.length === 2) {\n if (typeof args[0] === 'string') {\n locale = args[0];\n }\n /* istanbul ignore if */\n if (isObject(args[1]) || isArray(args[1])) {\n params = args[1];\n }\n }\n\n return { locale: locale, params: params }\n}\n\nfunction looseClone (obj) {\n return JSON.parse(JSON.stringify(obj))\n}\n\nfunction remove (arr, item) {\n if (arr.delete(item)) {\n return arr\n }\n}\n\nfunction arrayFrom (arr) {\n var ret = [];\n arr.forEach(function (a) { return ret.push(a); });\n return ret\n}\n\nfunction includes (arr, item) {\n return !!~arr.indexOf(item)\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\nfunction merge (target) {\n var arguments$1 = arguments;\n\n var output = Object(target);\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments$1[i];\n if (source !== undefined && source !== null) {\n var key = (void 0);\n for (key in source) {\n if (hasOwn(source, key)) {\n if (isObject(source[key])) {\n output[key] = merge(output[key], source[key]);\n } else {\n output[key] = source[key];\n }\n }\n }\n }\n }\n return output\n}\n\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = isArray(a);\n var isArrayB = isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\n/**\n * Sanitizes html special characters from input strings. For mitigating risk of XSS attacks.\n * @param rawText The raw input from the user that should be escaped.\n */\nfunction escapeHtml(rawText) {\n return rawText\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n}\n\n/**\n * Escapes html tags and special symbols from all provided params which were returned from parseArgs().params.\n * This method performs an in-place operation on the params object.\n *\n * @param {any} params Parameters as provided from `parseArgs().params`.\n * May be either an array of strings or a string->any map.\n *\n * @returns The manipulated `params` object.\n */\nfunction escapeParams(params) {\n if(params != null) {\n Object.keys(params).forEach(function (key) {\n if(typeof(params[key]) == 'string') {\n params[key] = escapeHtml(params[key]);\n }\n });\n }\n return params\n}\n\n/* */\n\nfunction extend (Vue) {\n if (!Vue.prototype.hasOwnProperty('$i18n')) {\n // $FlowFixMe\n Object.defineProperty(Vue.prototype, '$i18n', {\n get: function get () { return this._i18n }\n });\n }\n\n Vue.prototype.$t = function (key) {\n var values = [], len = arguments.length - 1;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 1 ];\n\n var i18n = this.$i18n;\n return i18n._t.apply(i18n, [ key, i18n.locale, i18n._getMessages(), this ].concat( values ))\n };\n\n Vue.prototype.$tc = function (key, choice) {\n var values = [], len = arguments.length - 2;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 2 ];\n\n var i18n = this.$i18n;\n return i18n._tc.apply(i18n, [ key, i18n.locale, i18n._getMessages(), this, choice ].concat( values ))\n };\n\n Vue.prototype.$te = function (key, locale) {\n var i18n = this.$i18n;\n return i18n._te(key, i18n.locale, i18n._getMessages(), locale)\n };\n\n Vue.prototype.$d = function (value) {\n var ref;\n\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n return (ref = this.$i18n).d.apply(ref, [ value ].concat( args ))\n };\n\n Vue.prototype.$n = function (value) {\n var ref;\n\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n return (ref = this.$i18n).n.apply(ref, [ value ].concat( args ))\n };\n}\n\n/* */\n\n/**\n * Mixin\n * \n * If `bridge` mode, empty mixin is returned,\n * else regulary mixin implementation is returned.\n */\nfunction defineMixin (bridge) {\n if ( bridge === void 0 ) bridge = false;\n\n function mounted () {\n if (this !== this.$root && this.$options.__INTLIFY_META__ && this.$el) {\n this.$el.setAttribute('data-intlify', this.$options.__INTLIFY_META__);\n }\n }\n\n return bridge\n ? { mounted: mounted } // delegate `vue-i18n-bridge` mixin implementation\n : { // regulary \n beforeCreate: function beforeCreate () {\n var options = this.$options;\n options.i18n = options.i18n || ((options.__i18nBridge || options.__i18n) ? {} : null);\n\n if (options.i18n) {\n if (options.i18n instanceof VueI18n) {\n // init locale messages via custom blocks\n if ((options.__i18nBridge || options.__i18n)) {\n try {\n var localeMessages = options.i18n && options.i18n.messages ? options.i18n.messages : {};\n var _i18n = options.__i18nBridge || options.__i18n;\n _i18n.forEach(function (resource) {\n localeMessages = merge(localeMessages, JSON.parse(resource));\n });\n Object.keys(localeMessages).forEach(function (locale) {\n options.i18n.mergeLocaleMessage(locale, localeMessages[locale]);\n });\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n error(\"Cannot parse locale messages via custom blocks.\", e);\n }\n }\n }\n this._i18n = options.i18n;\n this._i18nWatcher = this._i18n.watchI18nData();\n } else if (isPlainObject(options.i18n)) {\n var rootI18n = this.$root && this.$root.$i18n && this.$root.$i18n instanceof VueI18n\n ? this.$root.$i18n\n : null;\n // component local i18n\n if (rootI18n) {\n options.i18n.root = this.$root;\n options.i18n.formatter = rootI18n.formatter;\n options.i18n.fallbackLocale = rootI18n.fallbackLocale;\n options.i18n.formatFallbackMessages = rootI18n.formatFallbackMessages;\n options.i18n.silentTranslationWarn = rootI18n.silentTranslationWarn;\n options.i18n.silentFallbackWarn = rootI18n.silentFallbackWarn;\n options.i18n.pluralizationRules = rootI18n.pluralizationRules;\n options.i18n.preserveDirectiveContent = rootI18n.preserveDirectiveContent;\n }\n\n // init locale messages via custom blocks\n if ((options.__i18nBridge || options.__i18n)) {\n try {\n var localeMessages$1 = options.i18n && options.i18n.messages ? options.i18n.messages : {};\n var _i18n$1 = options.__i18nBridge || options.__i18n;\n _i18n$1.forEach(function (resource) {\n localeMessages$1 = merge(localeMessages$1, JSON.parse(resource));\n });\n options.i18n.messages = localeMessages$1;\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n warn(\"Cannot parse locale messages via custom blocks.\", e);\n }\n }\n }\n\n var ref = options.i18n;\n var sharedMessages = ref.sharedMessages;\n if (sharedMessages && isPlainObject(sharedMessages)) {\n options.i18n.messages = merge(options.i18n.messages, sharedMessages);\n }\n\n this._i18n = new VueI18n(options.i18n);\n this._i18nWatcher = this._i18n.watchI18nData();\n\n if (options.i18n.sync === undefined || !!options.i18n.sync) {\n this._localeWatcher = this.$i18n.watchLocale();\n }\n\n if (rootI18n) {\n rootI18n.onComponentInstanceCreated(this._i18n);\n }\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(\"Cannot be interpreted 'i18n' option.\");\n }\n }\n } else if (this.$root && this.$root.$i18n && this.$root.$i18n instanceof VueI18n) {\n // root i18n\n this._i18n = this.$root.$i18n;\n } else if (options.parent && options.parent.$i18n && options.parent.$i18n instanceof VueI18n) {\n // parent i18n\n this._i18n = options.parent.$i18n;\n }\n },\n\n beforeMount: function beforeMount () {\n var options = this.$options;\n options.i18n = options.i18n || ((options.__i18nBridge || options.__i18n) ? {} : null);\n\n if (options.i18n) {\n if (options.i18n instanceof VueI18n) {\n // init locale messages via custom blocks\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n } else if (isPlainObject(options.i18n)) {\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(\"Cannot be interpreted 'i18n' option.\");\n }\n }\n } else if (this.$root && this.$root.$i18n && this.$root.$i18n instanceof VueI18n) {\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n } else if (options.parent && options.parent.$i18n && options.parent.$i18n instanceof VueI18n) {\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n }\n },\n\n mounted: mounted,\n\n beforeDestroy: function beforeDestroy () {\n if (!this._i18n) { return }\n\n var self = this;\n this.$nextTick(function () {\n if (self._subscribing) {\n self._i18n.unsubscribeDataChanging(self);\n delete self._subscribing;\n }\n\n if (self._i18nWatcher) {\n self._i18nWatcher();\n self._i18n.destroyVM();\n delete self._i18nWatcher;\n }\n\n if (self._localeWatcher) {\n self._localeWatcher();\n delete self._localeWatcher;\n }\n });\n }\n }\n}\n\n/* */\n\nvar interpolationComponent = {\n name: 'i18n',\n functional: true,\n props: {\n tag: {\n type: [String, Boolean, Object],\n default: 'span'\n },\n path: {\n type: String,\n required: true\n },\n locale: {\n type: String\n },\n places: {\n type: [Array, Object]\n }\n },\n render: function render (h, ref) {\n var data = ref.data;\n var parent = ref.parent;\n var props = ref.props;\n var slots = ref.slots;\n\n var $i18n = parent.$i18n;\n if (!$i18n) {\n if (process.env.NODE_ENV !== 'production') {\n warn('Cannot find VueI18n instance!');\n }\n return\n }\n\n var path = props.path;\n var locale = props.locale;\n var places = props.places;\n var params = slots();\n var children = $i18n.i(\n path,\n locale,\n onlyHasDefaultPlace(params) || places\n ? useLegacyPlaces(params.default, places)\n : params\n );\n\n var tag = (!!props.tag && props.tag !== true) || props.tag === false ? props.tag : 'span';\n return tag ? h(tag, data, children) : children\n }\n};\n\nfunction onlyHasDefaultPlace (params) {\n var prop;\n for (prop in params) {\n if (prop !== 'default') { return false }\n }\n return Boolean(prop)\n}\n\nfunction useLegacyPlaces (children, places) {\n var params = places ? createParamsFromPlaces(places) : {};\n\n if (!children) { return params }\n\n // Filter empty text nodes\n children = children.filter(function (child) {\n return child.tag || child.text.trim() !== ''\n });\n\n var everyPlace = children.every(vnodeHasPlaceAttribute);\n if (process.env.NODE_ENV !== 'production' && everyPlace) {\n warn('`place` attribute is deprecated in next major version. Please switch to Vue slots.');\n }\n\n return children.reduce(\n everyPlace ? assignChildPlace : assignChildIndex,\n params\n )\n}\n\nfunction createParamsFromPlaces (places) {\n if (process.env.NODE_ENV !== 'production') {\n warn('`places` prop is deprecated in next major version. Please switch to Vue slots.');\n }\n\n return Array.isArray(places)\n ? places.reduce(assignChildIndex, {})\n : Object.assign({}, places)\n}\n\nfunction assignChildPlace (params, child) {\n if (child.data && child.data.attrs && child.data.attrs.place) {\n params[child.data.attrs.place] = child;\n }\n return params\n}\n\nfunction assignChildIndex (params, child, index) {\n params[index] = child;\n return params\n}\n\nfunction vnodeHasPlaceAttribute (vnode) {\n return Boolean(vnode.data && vnode.data.attrs && vnode.data.attrs.place)\n}\n\n/* */\n\nvar numberComponent = {\n name: 'i18n-n',\n functional: true,\n props: {\n tag: {\n type: [String, Boolean, Object],\n default: 'span'\n },\n value: {\n type: Number,\n required: true\n },\n format: {\n type: [String, Object]\n },\n locale: {\n type: String\n }\n },\n render: function render (h, ref) {\n var props = ref.props;\n var parent = ref.parent;\n var data = ref.data;\n\n var i18n = parent.$i18n;\n\n if (!i18n) {\n if (process.env.NODE_ENV !== 'production') {\n warn('Cannot find VueI18n instance!');\n }\n return null\n }\n\n var key = null;\n var options = null;\n\n if (isString(props.format)) {\n key = props.format;\n } else if (isObject(props.format)) {\n if (props.format.key) {\n key = props.format.key;\n }\n\n // Filter out number format options only\n options = Object.keys(props.format).reduce(function (acc, prop) {\n var obj;\n\n if (includes(numberFormatKeys, prop)) {\n return Object.assign({}, acc, ( obj = {}, obj[prop] = props.format[prop], obj ))\n }\n return acc\n }, null);\n }\n\n var locale = props.locale || i18n.locale;\n var parts = i18n._ntp(props.value, locale, key, options);\n\n var values = parts.map(function (part, index) {\n var obj;\n\n var slot = data.scopedSlots && data.scopedSlots[part.type];\n return slot ? slot(( obj = {}, obj[part.type] = part.value, obj.index = index, obj.parts = parts, obj )) : part.value\n });\n\n var tag = (!!props.tag && props.tag !== true) || props.tag === false ? props.tag : 'span';\n return tag\n ? h(tag, {\n attrs: data.attrs,\n 'class': data['class'],\n staticClass: data.staticClass\n }, values)\n : values\n }\n};\n\n/* */\n\nfunction bind (el, binding, vnode) {\n if (!assert(el, vnode)) { return }\n\n t(el, binding, vnode);\n}\n\nfunction update (el, binding, vnode, oldVNode) {\n if (!assert(el, vnode)) { return }\n\n var i18n = vnode.context.$i18n;\n if (localeEqual(el, vnode) &&\n (looseEqual(binding.value, binding.oldValue) &&\n looseEqual(el._localeMessage, i18n.getLocaleMessage(i18n.locale)))) { return }\n\n t(el, binding, vnode);\n}\n\nfunction unbind (el, binding, vnode, oldVNode) {\n var vm = vnode.context;\n if (!vm) {\n warn('Vue instance does not exists in VNode context');\n return\n }\n\n var i18n = vnode.context.$i18n || {};\n if (!binding.modifiers.preserve && !i18n.preserveDirectiveContent) {\n el.textContent = '';\n }\n el._vt = undefined;\n delete el['_vt'];\n el._locale = undefined;\n delete el['_locale'];\n el._localeMessage = undefined;\n delete el['_localeMessage'];\n}\n\nfunction assert (el, vnode) {\n var vm = vnode.context;\n if (!vm) {\n warn('Vue instance does not exists in VNode context');\n return false\n }\n\n if (!vm.$i18n) {\n warn('VueI18n instance does not exists in Vue instance');\n return false\n }\n\n return true\n}\n\nfunction localeEqual (el, vnode) {\n var vm = vnode.context;\n return el._locale === vm.$i18n.locale\n}\n\nfunction t (el, binding, vnode) {\n var ref$1, ref$2;\n\n var value = binding.value;\n\n var ref = parseValue(value);\n var path = ref.path;\n var locale = ref.locale;\n var args = ref.args;\n var choice = ref.choice;\n if (!path && !locale && !args) {\n warn('value type not supported');\n return\n }\n\n if (!path) {\n warn('`path` is required in v-t directive');\n return\n }\n\n var vm = vnode.context;\n if (choice != null) {\n el._vt = el.textContent = (ref$1 = vm.$i18n).tc.apply(ref$1, [ path, choice ].concat( makeParams(locale, args) ));\n } else {\n el._vt = el.textContent = (ref$2 = vm.$i18n).t.apply(ref$2, [ path ].concat( makeParams(locale, args) ));\n }\n el._locale = vm.$i18n.locale;\n el._localeMessage = vm.$i18n.getLocaleMessage(vm.$i18n.locale);\n}\n\nfunction parseValue (value) {\n var path;\n var locale;\n var args;\n var choice;\n\n if (isString(value)) {\n path = value;\n } else if (isPlainObject(value)) {\n path = value.path;\n locale = value.locale;\n args = value.args;\n choice = value.choice;\n }\n\n return { path: path, locale: locale, args: args, choice: choice }\n}\n\nfunction makeParams (locale, args) {\n var params = [];\n\n locale && params.push(locale);\n if (args && (Array.isArray(args) || isPlainObject(args))) {\n params.push(args);\n }\n\n return params\n}\n\nvar Vue;\n\nfunction install (_Vue, options) {\n if ( options === void 0 ) options = { bridge: false };\n\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && install.installed && _Vue === Vue) {\n warn('already installed.');\n return\n }\n install.installed = true;\n\n Vue = _Vue;\n\n var version = (Vue.version && Number(Vue.version.split('.')[0])) || -1;\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && version < 2) {\n warn((\"vue-i18n (\" + (install.version) + \") need to use Vue 2.0 or later (Vue: \" + (Vue.version) + \").\"));\n return\n }\n\n extend(Vue);\n Vue.mixin(defineMixin(options.bridge));\n Vue.directive('t', { bind: bind, update: update, unbind: unbind });\n Vue.component(interpolationComponent.name, interpolationComponent);\n Vue.component(numberComponent.name, numberComponent);\n\n // use simple mergeStrategies to prevent i18n instance lose '__proto__'\n var strats = Vue.config.optionMergeStrategies;\n strats.i18n = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n };\n}\n\n/* */\n\nvar BaseFormatter = function BaseFormatter () {\n this._caches = Object.create(null);\n};\n\nBaseFormatter.prototype.interpolate = function interpolate (message, values) {\n if (!values) {\n return [message]\n }\n var tokens = this._caches[message];\n if (!tokens) {\n tokens = parse(message);\n this._caches[message] = tokens;\n }\n return compile(tokens, values)\n};\n\n\n\nvar RE_TOKEN_LIST_VALUE = /^(?:\\d)+/;\nvar RE_TOKEN_NAMED_VALUE = /^(?:\\w)+/;\n\nfunction parse (format) {\n var tokens = [];\n var position = 0;\n\n var text = '';\n while (position < format.length) {\n var char = format[position++];\n if (char === '{') {\n if (text) {\n tokens.push({ type: 'text', value: text });\n }\n\n text = '';\n var sub = '';\n char = format[position++];\n while (char !== undefined && char !== '}') {\n sub += char;\n char = format[position++];\n }\n var isClosed = char === '}';\n\n var type = RE_TOKEN_LIST_VALUE.test(sub)\n ? 'list'\n : isClosed && RE_TOKEN_NAMED_VALUE.test(sub)\n ? 'named'\n : 'unknown';\n tokens.push({ value: sub, type: type });\n } else if (char === '%') {\n // when found rails i18n syntax, skip text capture\n if (format[(position)] !== '{') {\n text += char;\n }\n } else {\n text += char;\n }\n }\n\n text && tokens.push({ type: 'text', value: text });\n\n return tokens\n}\n\nfunction compile (tokens, values) {\n var compiled = [];\n var index = 0;\n\n var mode = Array.isArray(values)\n ? 'list'\n : isObject(values)\n ? 'named'\n : 'unknown';\n if (mode === 'unknown') { return compiled }\n\n while (index < tokens.length) {\n var token = tokens[index];\n switch (token.type) {\n case 'text':\n compiled.push(token.value);\n break\n case 'list':\n compiled.push(values[parseInt(token.value, 10)]);\n break\n case 'named':\n if (mode === 'named') {\n compiled.push((values)[token.value]);\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Type of token '\" + (token.type) + \"' and format of value '\" + mode + \"' don't match!\"));\n }\n }\n break\n case 'unknown':\n if (process.env.NODE_ENV !== 'production') {\n warn(\"Detect 'unknown' type of token!\");\n }\n break\n }\n index++;\n }\n\n return compiled\n}\n\n/* */\n\n/**\n * Path parser\n * - Inspired:\n * Vue.js Path parser\n */\n\n// actions\nvar APPEND = 0;\nvar PUSH = 1;\nvar INC_SUB_PATH_DEPTH = 2;\nvar PUSH_SUB_PATH = 3;\n\n// states\nvar BEFORE_PATH = 0;\nvar IN_PATH = 1;\nvar BEFORE_IDENT = 2;\nvar IN_IDENT = 3;\nvar IN_SUB_PATH = 4;\nvar IN_SINGLE_QUOTE = 5;\nvar IN_DOUBLE_QUOTE = 6;\nvar AFTER_PATH = 7;\nvar ERROR = 8;\n\nvar pathStateMachine = [];\n\npathStateMachine[BEFORE_PATH] = {\n 'ws': [BEFORE_PATH],\n 'ident': [IN_IDENT, APPEND],\n '[': [IN_SUB_PATH],\n 'eof': [AFTER_PATH]\n};\n\npathStateMachine[IN_PATH] = {\n 'ws': [IN_PATH],\n '.': [BEFORE_IDENT],\n '[': [IN_SUB_PATH],\n 'eof': [AFTER_PATH]\n};\n\npathStateMachine[BEFORE_IDENT] = {\n 'ws': [BEFORE_IDENT],\n 'ident': [IN_IDENT, APPEND],\n '0': [IN_IDENT, APPEND],\n 'number': [IN_IDENT, APPEND]\n};\n\npathStateMachine[IN_IDENT] = {\n 'ident': [IN_IDENT, APPEND],\n '0': [IN_IDENT, APPEND],\n 'number': [IN_IDENT, APPEND],\n 'ws': [IN_PATH, PUSH],\n '.': [BEFORE_IDENT, PUSH],\n '[': [IN_SUB_PATH, PUSH],\n 'eof': [AFTER_PATH, PUSH]\n};\n\npathStateMachine[IN_SUB_PATH] = {\n \"'\": [IN_SINGLE_QUOTE, APPEND],\n '\"': [IN_DOUBLE_QUOTE, APPEND],\n '[': [IN_SUB_PATH, INC_SUB_PATH_DEPTH],\n ']': [IN_PATH, PUSH_SUB_PATH],\n 'eof': ERROR,\n 'else': [IN_SUB_PATH, APPEND]\n};\n\npathStateMachine[IN_SINGLE_QUOTE] = {\n \"'\": [IN_SUB_PATH, APPEND],\n 'eof': ERROR,\n 'else': [IN_SINGLE_QUOTE, APPEND]\n};\n\npathStateMachine[IN_DOUBLE_QUOTE] = {\n '\"': [IN_SUB_PATH, APPEND],\n 'eof': ERROR,\n 'else': [IN_DOUBLE_QUOTE, APPEND]\n};\n\n/**\n * Check if an expression is a literal value.\n */\n\nvar literalValueRE = /^\\s?(?:true|false|-?[\\d.]+|'[^']*'|\"[^\"]*\")\\s?$/;\nfunction isLiteral (exp) {\n return literalValueRE.test(exp)\n}\n\n/**\n * Strip quotes from a string\n */\n\nfunction stripQuotes (str) {\n var a = str.charCodeAt(0);\n var b = str.charCodeAt(str.length - 1);\n return a === b && (a === 0x22 || a === 0x27)\n ? str.slice(1, -1)\n : str\n}\n\n/**\n * Determine the type of a character in a keypath.\n */\n\nfunction getPathCharType (ch) {\n if (ch === undefined || ch === null) { return 'eof' }\n\n var code = ch.charCodeAt(0);\n\n switch (code) {\n case 0x5B: // [\n case 0x5D: // ]\n case 0x2E: // .\n case 0x22: // \"\n case 0x27: // '\n return ch\n\n case 0x5F: // _\n case 0x24: // $\n case 0x2D: // -\n return 'ident'\n\n case 0x09: // Tab\n case 0x0A: // Newline\n case 0x0D: // Return\n case 0xA0: // No-break space\n case 0xFEFF: // Byte Order Mark\n case 0x2028: // Line Separator\n case 0x2029: // Paragraph Separator\n return 'ws'\n }\n\n return 'ident'\n}\n\n/**\n * Format a subPath, return its plain form if it is\n * a literal string or number. Otherwise prepend the\n * dynamic indicator (*).\n */\n\nfunction formatSubPath (path) {\n var trimmed = path.trim();\n // invalid leading 0\n if (path.charAt(0) === '0' && isNaN(path)) { return false }\n\n return isLiteral(trimmed) ? stripQuotes(trimmed) : '*' + trimmed\n}\n\n/**\n * Parse a string path into an array of segments\n */\n\nfunction parse$1 (path) {\n var keys = [];\n var index = -1;\n var mode = BEFORE_PATH;\n var subPathDepth = 0;\n var c;\n var key;\n var newChar;\n var type;\n var transition;\n var action;\n var typeMap;\n var actions = [];\n\n actions[PUSH] = function () {\n if (key !== undefined) {\n keys.push(key);\n key = undefined;\n }\n };\n\n actions[APPEND] = function () {\n if (key === undefined) {\n key = newChar;\n } else {\n key += newChar;\n }\n };\n\n actions[INC_SUB_PATH_DEPTH] = function () {\n actions[APPEND]();\n subPathDepth++;\n };\n\n actions[PUSH_SUB_PATH] = function () {\n if (subPathDepth > 0) {\n subPathDepth--;\n mode = IN_SUB_PATH;\n actions[APPEND]();\n } else {\n subPathDepth = 0;\n if (key === undefined) { return false }\n key = formatSubPath(key);\n if (key === false) {\n return false\n } else {\n actions[PUSH]();\n }\n }\n };\n\n function maybeUnescapeQuote () {\n var nextChar = path[index + 1];\n if ((mode === IN_SINGLE_QUOTE && nextChar === \"'\") ||\n (mode === IN_DOUBLE_QUOTE && nextChar === '\"')) {\n index++;\n newChar = '\\\\' + nextChar;\n actions[APPEND]();\n return true\n }\n }\n\n while (mode !== null) {\n index++;\n c = path[index];\n\n if (c === '\\\\' && maybeUnescapeQuote()) {\n continue\n }\n\n type = getPathCharType(c);\n typeMap = pathStateMachine[mode];\n transition = typeMap[type] || typeMap['else'] || ERROR;\n\n if (transition === ERROR) {\n return // parse error\n }\n\n mode = transition[0];\n action = actions[transition[1]];\n if (action) {\n newChar = transition[2];\n newChar = newChar === undefined\n ? c\n : newChar;\n if (action() === false) {\n return\n }\n }\n\n if (mode === AFTER_PATH) {\n return keys\n }\n }\n}\n\n\n\n\n\nvar I18nPath = function I18nPath () {\n this._cache = Object.create(null);\n};\n\n/**\n * External parse that check for a cache hit first\n */\nI18nPath.prototype.parsePath = function parsePath (path) {\n var hit = this._cache[path];\n if (!hit) {\n hit = parse$1(path);\n if (hit) {\n this._cache[path] = hit;\n }\n }\n return hit || []\n};\n\n/**\n * Get path value from path string\n */\nI18nPath.prototype.getPathValue = function getPathValue (obj, path) {\n if (!isObject(obj)) { return null }\n\n var paths = this.parsePath(path);\n if (paths.length === 0) {\n return null\n } else {\n var length = paths.length;\n var last = obj;\n var i = 0;\n while (i < length) {\n var value = last[paths[i]];\n if (value === undefined || value === null) {\n return null\n }\n last = value;\n i++;\n }\n\n return last\n }\n};\n\n/* */\n\n\n\nvar htmlTagMatcher = /<\\/?[\\w\\s=\"/.':;#-\\/]+>/;\nvar linkKeyMatcher = /(?:@(?:\\.[a-zA-Z]+)?:(?:[\\w\\-_|./]+|\\([\\w\\-_:|./]+\\)))/g;\nvar linkKeyPrefixMatcher = /^@(?:\\.([a-zA-Z]+))?:/;\nvar bracketsMatcher = /[()]/g;\nvar defaultModifiers = {\n 'upper': function (str) { return str.toLocaleUpperCase(); },\n 'lower': function (str) { return str.toLocaleLowerCase(); },\n 'capitalize': function (str) { return (\"\" + (str.charAt(0).toLocaleUpperCase()) + (str.substr(1))); }\n};\n\nvar defaultFormatter = new BaseFormatter();\n\nvar VueI18n = function VueI18n (options) {\n var this$1 = this;\n if ( options === void 0 ) options = {};\n\n // Auto install if it is not done yet and `window` has `Vue`.\n // To allow users to avoid auto-installation in some cases,\n // this code should be placed here. See #290\n /* istanbul ignore if */\n if (!Vue && typeof window !== 'undefined' && window.Vue) {\n install(window.Vue);\n }\n\n var locale = options.locale || 'en-US';\n var fallbackLocale = options.fallbackLocale === false\n ? false\n : options.fallbackLocale || 'en-US';\n var messages = options.messages || {};\n var dateTimeFormats = options.dateTimeFormats || options.datetimeFormats || {};\n var numberFormats = options.numberFormats || {};\n\n this._vm = null;\n this._formatter = options.formatter || defaultFormatter;\n this._modifiers = options.modifiers || {};\n this._missing = options.missing || null;\n this._root = options.root || null;\n this._sync = options.sync === undefined ? true : !!options.sync;\n this._fallbackRoot = options.fallbackRoot === undefined\n ? true\n : !!options.fallbackRoot;\n this._fallbackRootWithEmptyString = options.fallbackRootWithEmptyString === undefined\n ? true\n : !!options.fallbackRootWithEmptyString;\n this._formatFallbackMessages = options.formatFallbackMessages === undefined\n ? false\n : !!options.formatFallbackMessages;\n this._silentTranslationWarn = options.silentTranslationWarn === undefined\n ? false\n : options.silentTranslationWarn;\n this._silentFallbackWarn = options.silentFallbackWarn === undefined\n ? false\n : !!options.silentFallbackWarn;\n this._dateTimeFormatters = {};\n this._numberFormatters = {};\n this._path = new I18nPath();\n this._dataListeners = new Set();\n this._componentInstanceCreatedListener = options.componentInstanceCreatedListener || null;\n this._preserveDirectiveContent = options.preserveDirectiveContent === undefined\n ? false\n : !!options.preserveDirectiveContent;\n this.pluralizationRules = options.pluralizationRules || {};\n this._warnHtmlInMessage = options.warnHtmlInMessage || 'off';\n this._postTranslation = options.postTranslation || null;\n this._escapeParameterHtml = options.escapeParameterHtml || false;\n\n if ('__VUE_I18N_BRIDGE__' in options) {\n this.__VUE_I18N_BRIDGE__ = options.__VUE_I18N_BRIDGE__;\n }\n\n /**\n * @param choice {number} a choice index given by the input to $tc: `$tc('path.to.rule', choiceIndex)`\n * @param choicesLength {number} an overall amount of available choices\n * @returns a final choice index\n */\n this.getChoiceIndex = function (choice, choicesLength) {\n var thisPrototype = Object.getPrototypeOf(this$1);\n if (thisPrototype && thisPrototype.getChoiceIndex) {\n var prototypeGetChoiceIndex = (thisPrototype.getChoiceIndex);\n return (prototypeGetChoiceIndex).call(this$1, choice, choicesLength)\n }\n\n // Default (old) getChoiceIndex implementation - english-compatible\n var defaultImpl = function (_choice, _choicesLength) {\n _choice = Math.abs(_choice);\n\n if (_choicesLength === 2) {\n return _choice\n ? _choice > 1\n ? 1\n : 0\n : 1\n }\n\n return _choice ? Math.min(_choice, 2) : 0\n };\n\n if (this$1.locale in this$1.pluralizationRules) {\n return this$1.pluralizationRules[this$1.locale].apply(this$1, [choice, choicesLength])\n } else {\n return defaultImpl(choice, choicesLength)\n }\n };\n\n\n this._exist = function (message, key) {\n if (!message || !key) { return false }\n if (!isNull(this$1._path.getPathValue(message, key))) { return true }\n // fallback for flat key\n if (message[key]) { return true }\n return false\n };\n\n if (this._warnHtmlInMessage === 'warn' || this._warnHtmlInMessage === 'error') {\n Object.keys(messages).forEach(function (locale) {\n this$1._checkLocaleMessage(locale, this$1._warnHtmlInMessage, messages[locale]);\n });\n }\n\n this._initVM({\n locale: locale,\n fallbackLocale: fallbackLocale,\n messages: messages,\n dateTimeFormats: dateTimeFormats,\n numberFormats: numberFormats\n });\n};\n\nvar prototypeAccessors = { vm: { configurable: true },messages: { configurable: true },dateTimeFormats: { configurable: true },numberFormats: { configurable: true },availableLocales: { configurable: true },locale: { configurable: true },fallbackLocale: { configurable: true },formatFallbackMessages: { configurable: true },missing: { configurable: true },formatter: { configurable: true },silentTranslationWarn: { configurable: true },silentFallbackWarn: { configurable: true },preserveDirectiveContent: { configurable: true },warnHtmlInMessage: { configurable: true },postTranslation: { configurable: true },sync: { configurable: true } };\n\nVueI18n.prototype._checkLocaleMessage = function _checkLocaleMessage (locale, level, message) {\n var paths = [];\n\n var fn = function (level, locale, message, paths) {\n if (isPlainObject(message)) {\n Object.keys(message).forEach(function (key) {\n var val = message[key];\n if (isPlainObject(val)) {\n paths.push(key);\n paths.push('.');\n fn(level, locale, val, paths);\n paths.pop();\n paths.pop();\n } else {\n paths.push(key);\n fn(level, locale, val, paths);\n paths.pop();\n }\n });\n } else if (isArray(message)) {\n message.forEach(function (item, index) {\n if (isPlainObject(item)) {\n paths.push((\"[\" + index + \"]\"));\n paths.push('.');\n fn(level, locale, item, paths);\n paths.pop();\n paths.pop();\n } else {\n paths.push((\"[\" + index + \"]\"));\n fn(level, locale, item, paths);\n paths.pop();\n }\n });\n } else if (isString(message)) {\n var ret = htmlTagMatcher.test(message);\n if (ret) {\n var msg = \"Detected HTML in message '\" + message + \"' of keypath '\" + (paths.join('')) + \"' at '\" + locale + \"'. Consider component interpolation with '' to avoid XSS. See https://bit.ly/2ZqJzkp\";\n if (level === 'warn') {\n warn(msg);\n } else if (level === 'error') {\n error(msg);\n }\n }\n }\n };\n\n fn(level, locale, message, paths);\n};\n\nVueI18n.prototype._initVM = function _initVM (data) {\n var silent = Vue.config.silent;\n Vue.config.silent = true;\n this._vm = new Vue({ data: data, __VUE18N__INSTANCE__: true });\n Vue.config.silent = silent;\n};\n\nVueI18n.prototype.destroyVM = function destroyVM () {\n this._vm.$destroy();\n};\n\nVueI18n.prototype.subscribeDataChanging = function subscribeDataChanging (vm) {\n this._dataListeners.add(vm);\n};\n\nVueI18n.prototype.unsubscribeDataChanging = function unsubscribeDataChanging (vm) {\n remove(this._dataListeners, vm);\n};\n\nVueI18n.prototype.watchI18nData = function watchI18nData () {\n var this$1 = this;\n return this._vm.$watch('$data', function () {\n var listeners = arrayFrom(this$1._dataListeners);\n var i = listeners.length;\n while(i--) {\n Vue.nextTick(function () {\n listeners[i] && listeners[i].$forceUpdate();\n });\n }\n }, { deep: true })\n};\n\nVueI18n.prototype.watchLocale = function watchLocale (composer) {\n if (!composer) {\n /* istanbul ignore if */\n if (!this._sync || !this._root) { return null }\n var target = this._vm;\n return this._root.$i18n.vm.$watch('locale', function (val) {\n target.$set(target, 'locale', val);\n target.$forceUpdate();\n }, { immediate: true })\n } else {\n // deal with vue-i18n-bridge\n if (!this.__VUE_I18N_BRIDGE__) { return null }\n var self = this;\n var target$1 = this._vm;\n return this.vm.$watch('locale', function (val) {\n target$1.$set(target$1, 'locale', val);\n if (self.__VUE_I18N_BRIDGE__ && composer) {\n composer.locale.value = val;\n }\n target$1.$forceUpdate();\n }, { immediate: true })\n }\n};\n\nVueI18n.prototype.onComponentInstanceCreated = function onComponentInstanceCreated (newI18n) {\n if (this._componentInstanceCreatedListener) {\n this._componentInstanceCreatedListener(newI18n, this);\n }\n};\n\nprototypeAccessors.vm.get = function () { return this._vm };\n\nprototypeAccessors.messages.get = function () { return looseClone(this._getMessages()) };\nprototypeAccessors.dateTimeFormats.get = function () { return looseClone(this._getDateTimeFormats()) };\nprototypeAccessors.numberFormats.get = function () { return looseClone(this._getNumberFormats()) };\nprototypeAccessors.availableLocales.get = function () { return Object.keys(this.messages).sort() };\n\nprototypeAccessors.locale.get = function () { return this._vm.locale };\nprototypeAccessors.locale.set = function (locale) {\n this._vm.$set(this._vm, 'locale', locale);\n};\n\nprototypeAccessors.fallbackLocale.get = function () { return this._vm.fallbackLocale };\nprototypeAccessors.fallbackLocale.set = function (locale) {\n this._localeChainCache = {};\n this._vm.$set(this._vm, 'fallbackLocale', locale);\n};\n\nprototypeAccessors.formatFallbackMessages.get = function () { return this._formatFallbackMessages };\nprototypeAccessors.formatFallbackMessages.set = function (fallback) { this._formatFallbackMessages = fallback; };\n\nprototypeAccessors.missing.get = function () { return this._missing };\nprototypeAccessors.missing.set = function (handler) { this._missing = handler; };\n\nprototypeAccessors.formatter.get = function () { return this._formatter };\nprototypeAccessors.formatter.set = function (formatter) { this._formatter = formatter; };\n\nprototypeAccessors.silentTranslationWarn.get = function () { return this._silentTranslationWarn };\nprototypeAccessors.silentTranslationWarn.set = function (silent) { this._silentTranslationWarn = silent; };\n\nprototypeAccessors.silentFallbackWarn.get = function () { return this._silentFallbackWarn };\nprototypeAccessors.silentFallbackWarn.set = function (silent) { this._silentFallbackWarn = silent; };\n\nprototypeAccessors.preserveDirectiveContent.get = function () { return this._preserveDirectiveContent };\nprototypeAccessors.preserveDirectiveContent.set = function (preserve) { this._preserveDirectiveContent = preserve; };\n\nprototypeAccessors.warnHtmlInMessage.get = function () { return this._warnHtmlInMessage };\nprototypeAccessors.warnHtmlInMessage.set = function (level) {\n var this$1 = this;\n\n var orgLevel = this._warnHtmlInMessage;\n this._warnHtmlInMessage = level;\n if (orgLevel !== level && (level === 'warn' || level === 'error')) {\n var messages = this._getMessages();\n Object.keys(messages).forEach(function (locale) {\n this$1._checkLocaleMessage(locale, this$1._warnHtmlInMessage, messages[locale]);\n });\n }\n};\n\nprototypeAccessors.postTranslation.get = function () { return this._postTranslation };\nprototypeAccessors.postTranslation.set = function (handler) { this._postTranslation = handler; };\n\nprototypeAccessors.sync.get = function () { return this._sync };\nprototypeAccessors.sync.set = function (val) { this._sync = val; };\n\nVueI18n.prototype._getMessages = function _getMessages () { return this._vm.messages };\nVueI18n.prototype._getDateTimeFormats = function _getDateTimeFormats () { return this._vm.dateTimeFormats };\nVueI18n.prototype._getNumberFormats = function _getNumberFormats () { return this._vm.numberFormats };\n\nVueI18n.prototype._warnDefault = function _warnDefault (locale, key, result, vm, values, interpolateMode) {\n if (!isNull(result)) { return result }\n if (this._missing) {\n var missingRet = this._missing.apply(null, [locale, key, vm, values]);\n if (isString(missingRet)) {\n return missingRet\n }\n } else {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key)) {\n warn(\n \"Cannot translate the value of keypath '\" + key + \"'. \" +\n 'Use the value of keypath as default.'\n );\n }\n }\n\n if (this._formatFallbackMessages) {\n var parsedArgs = parseArgs.apply(void 0, values);\n return this._render(key, interpolateMode, parsedArgs.params, key)\n } else {\n return key\n }\n};\n\nVueI18n.prototype._isFallbackRoot = function _isFallbackRoot (val) {\n return (this._fallbackRootWithEmptyString? !val : isNull(val)) && !isNull(this._root) && this._fallbackRoot\n};\n\nVueI18n.prototype._isSilentFallbackWarn = function _isSilentFallbackWarn (key) {\n return this._silentFallbackWarn instanceof RegExp\n ? this._silentFallbackWarn.test(key)\n : this._silentFallbackWarn\n};\n\nVueI18n.prototype._isSilentFallback = function _isSilentFallback (locale, key) {\n return this._isSilentFallbackWarn(key) && (this._isFallbackRoot() || locale !== this.fallbackLocale)\n};\n\nVueI18n.prototype._isSilentTranslationWarn = function _isSilentTranslationWarn (key) {\n return this._silentTranslationWarn instanceof RegExp\n ? this._silentTranslationWarn.test(key)\n : this._silentTranslationWarn\n};\n\nVueI18n.prototype._interpolate = function _interpolate (\n locale,\n message,\n key,\n host,\n interpolateMode,\n values,\n visitedLinkStack\n) {\n if (!message) { return null }\n\n var pathRet = this._path.getPathValue(message, key);\n if (isArray(pathRet) || isPlainObject(pathRet)) { return pathRet }\n\n var ret;\n if (isNull(pathRet)) {\n /* istanbul ignore else */\n if (isPlainObject(message)) {\n ret = message[key];\n if (!(isString(ret) || isFunction(ret))) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallback(locale, key)) {\n warn((\"Value of key '\" + key + \"' is not a string or function !\"));\n }\n return null\n }\n } else {\n return null\n }\n } else {\n /* istanbul ignore else */\n if (isString(pathRet) || isFunction(pathRet)) {\n ret = pathRet;\n } else {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallback(locale, key)) {\n warn((\"Value of key '\" + key + \"' is not a string or function!\"));\n }\n return null\n }\n }\n\n // Check for the existence of links within the translated string\n if (isString(ret) && (ret.indexOf('@:') >= 0 || ret.indexOf('@.') >= 0)) {\n ret = this._link(locale, message, ret, host, 'raw', values, visitedLinkStack);\n }\n\n return this._render(ret, interpolateMode, values, key)\n};\n\nVueI18n.prototype._link = function _link (\n locale,\n message,\n str,\n host,\n interpolateMode,\n values,\n visitedLinkStack\n) {\n var ret = str;\n\n // Match all the links within the local\n // We are going to replace each of\n // them with its translation\n var matches = ret.match(linkKeyMatcher);\n\n // eslint-disable-next-line no-autofix/prefer-const\n for (var idx in matches) {\n // ie compatible: filter custom array\n // prototype method\n if (!matches.hasOwnProperty(idx)) {\n continue\n }\n var link = matches[idx];\n var linkKeyPrefixMatches = link.match(linkKeyPrefixMatcher);\n var linkPrefix = linkKeyPrefixMatches[0];\n var formatterName = linkKeyPrefixMatches[1];\n\n // Remove the leading @:, @.case: and the brackets\n var linkPlaceholder = link.replace(linkPrefix, '').replace(bracketsMatcher, '');\n\n if (includes(visitedLinkStack, linkPlaceholder)) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Circular reference found. \\\"\" + link + \"\\\" is already visited in the chain of \" + (visitedLinkStack.reverse().join(' <- '))));\n }\n return ret\n }\n visitedLinkStack.push(linkPlaceholder);\n\n // Translate the link\n var translated = this._interpolate(\n locale, message, linkPlaceholder, host,\n interpolateMode === 'raw' ? 'string' : interpolateMode,\n interpolateMode === 'raw' ? undefined : values,\n visitedLinkStack\n );\n\n if (this._isFallbackRoot(translated)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(linkPlaceholder)) {\n warn((\"Fall back to translate the link placeholder '\" + linkPlaceholder + \"' with root locale.\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n var root = this._root.$i18n;\n translated = root._translate(\n root._getMessages(), root.locale, root.fallbackLocale,\n linkPlaceholder, host, interpolateMode, values\n );\n }\n translated = this._warnDefault(\n locale, linkPlaceholder, translated, host,\n isArray(values) ? values : [values],\n interpolateMode\n );\n\n if (this._modifiers.hasOwnProperty(formatterName)) {\n translated = this._modifiers[formatterName](translated);\n } else if (defaultModifiers.hasOwnProperty(formatterName)) {\n translated = defaultModifiers[formatterName](translated);\n }\n\n visitedLinkStack.pop();\n\n // Replace the link with the translated\n ret = !translated ? ret : ret.replace(link, translated);\n }\n\n return ret\n};\n\nVueI18n.prototype._createMessageContext = function _createMessageContext (values, formatter, path, interpolateMode) {\n var this$1 = this;\n\n var _list = isArray(values) ? values : [];\n var _named = isObject(values) ? values : {};\n var list = function (index) { return _list[index]; };\n var named = function (key) { return _named[key]; };\n var messages = this._getMessages();\n var locale = this.locale;\n\n return {\n list: list,\n named: named,\n values: values,\n formatter: formatter,\n path: path,\n messages: messages,\n locale: locale,\n linked: function (linkedKey) { return this$1._interpolate(locale, messages[locale] || {}, linkedKey, null, interpolateMode, undefined, [linkedKey]); }\n }\n};\n\nVueI18n.prototype._render = function _render (message, interpolateMode, values, path) {\n if (isFunction(message)) {\n return message(\n this._createMessageContext(values, this._formatter || defaultFormatter, path, interpolateMode)\n )\n }\n\n var ret = this._formatter.interpolate(message, values, path);\n\n // If the custom formatter refuses to work - apply the default one\n if (!ret) {\n ret = defaultFormatter.interpolate(message, values, path);\n }\n\n // if interpolateMode is **not** 'string' ('row'),\n // return the compiled data (e.g. ['foo', VNode, 'bar']) with formatter\n return interpolateMode === 'string' && !isString(ret) ? ret.join('') : ret\n};\n\nVueI18n.prototype._appendItemToChain = function _appendItemToChain (chain, item, blocks) {\n var follow = false;\n if (!includes(chain, item)) {\n follow = true;\n if (item) {\n follow = item[item.length - 1] !== '!';\n item = item.replace(/!/g, '');\n chain.push(item);\n if (blocks && blocks[item]) {\n follow = blocks[item];\n }\n }\n }\n return follow\n};\n\nVueI18n.prototype._appendLocaleToChain = function _appendLocaleToChain (chain, locale, blocks) {\n var follow;\n var tokens = locale.split('-');\n do {\n var item = tokens.join('-');\n follow = this._appendItemToChain(chain, item, blocks);\n tokens.splice(-1, 1);\n } while (tokens.length && (follow === true))\n return follow\n};\n\nVueI18n.prototype._appendBlockToChain = function _appendBlockToChain (chain, block, blocks) {\n var follow = true;\n for (var i = 0; (i < block.length) && (isBoolean(follow)); i++) {\n var locale = block[i];\n if (isString(locale)) {\n follow = this._appendLocaleToChain(chain, locale, blocks);\n }\n }\n return follow\n};\n\nVueI18n.prototype._getLocaleChain = function _getLocaleChain (start, fallbackLocale) {\n if (start === '') { return [] }\n\n if (!this._localeChainCache) {\n this._localeChainCache = {};\n }\n\n var chain = this._localeChainCache[start];\n if (!chain) {\n if (!fallbackLocale) {\n fallbackLocale = this.fallbackLocale;\n }\n chain = [];\n\n // first block defined by start\n var block = [start];\n\n // while any intervening block found\n while (isArray(block)) {\n block = this._appendBlockToChain(\n chain,\n block,\n fallbackLocale\n );\n }\n\n // last block defined by default\n var defaults;\n if (isArray(fallbackLocale)) {\n defaults = fallbackLocale;\n } else if (isObject(fallbackLocale)) {\n /* $FlowFixMe */\n if (fallbackLocale['default']) {\n defaults = fallbackLocale['default'];\n } else {\n defaults = null;\n }\n } else {\n defaults = fallbackLocale;\n }\n\n // convert defaults to array\n if (isString(defaults)) {\n block = [defaults];\n } else {\n block = defaults;\n }\n if (block) {\n this._appendBlockToChain(\n chain,\n block,\n null\n );\n }\n this._localeChainCache[start] = chain;\n }\n return chain\n};\n\nVueI18n.prototype._translate = function _translate (\n messages,\n locale,\n fallback,\n key,\n host,\n interpolateMode,\n args\n) {\n var chain = this._getLocaleChain(locale, fallback);\n var res;\n for (var i = 0; i < chain.length; i++) {\n var step = chain[i];\n res =\n this._interpolate(step, messages[step], key, host, interpolateMode, args, [key]);\n if (!isNull(res)) {\n if (step !== locale && process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to translate the keypath '\" + key + \"' with '\" + step + \"' locale.\"));\n }\n return res\n }\n }\n return null\n};\n\nVueI18n.prototype._t = function _t (key, _locale, messages, host) {\n var ref;\n\n var values = [], len = arguments.length - 4;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 4 ];\n if (!key) { return '' }\n\n var parsedArgs = parseArgs.apply(void 0, values);\n if(this._escapeParameterHtml) {\n parsedArgs.params = escapeParams(parsedArgs.params);\n }\n\n var locale = parsedArgs.locale || _locale;\n\n var ret = this._translate(\n messages, locale, this.fallbackLocale, key,\n host, 'string', parsedArgs.params\n );\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to translate the keypath '\" + key + \"' with root locale.\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return (ref = this._root).$t.apply(ref, [ key ].concat( values ))\n } else {\n ret = this._warnDefault(locale, key, ret, host, values, 'string');\n if (this._postTranslation && ret !== null && ret !== undefined) {\n ret = this._postTranslation(ret, key);\n }\n return ret\n }\n};\n\nVueI18n.prototype.t = function t (key) {\n var ref;\n\n var values = [], len = arguments.length - 1;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 1 ];\n return (ref = this)._t.apply(ref, [ key, this.locale, this._getMessages(), null ].concat( values ))\n};\n\nVueI18n.prototype._i = function _i (key, locale, messages, host, values) {\n var ret =\n this._translate(messages, locale, this.fallbackLocale, key, host, 'raw', values);\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key)) {\n warn((\"Fall back to interpolate the keypath '\" + key + \"' with root locale.\"));\n }\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n.i(key, locale, values)\n } else {\n return this._warnDefault(locale, key, ret, host, [values], 'raw')\n }\n};\n\nVueI18n.prototype.i = function i (key, locale, values) {\n /* istanbul ignore if */\n if (!key) { return '' }\n\n if (!isString(locale)) {\n locale = this.locale;\n }\n\n return this._i(key, locale, this._getMessages(), null, values)\n};\n\nVueI18n.prototype._tc = function _tc (\n key,\n _locale,\n messages,\n host,\n choice\n) {\n var ref;\n\n var values = [], len = arguments.length - 5;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 5 ];\n if (!key) { return '' }\n if (choice === undefined) {\n choice = 1;\n }\n\n var predefined = { 'count': choice, 'n': choice };\n var parsedArgs = parseArgs.apply(void 0, values);\n parsedArgs.params = Object.assign(predefined, parsedArgs.params);\n values = parsedArgs.locale === null ? [parsedArgs.params] : [parsedArgs.locale, parsedArgs.params];\n return this.fetchChoice((ref = this)._t.apply(ref, [ key, _locale, messages, host ].concat( values )), choice)\n};\n\nVueI18n.prototype.fetchChoice = function fetchChoice (message, choice) {\n /* istanbul ignore if */\n if (!message || !isString(message)) { return null }\n var choices = message.split('|');\n\n choice = this.getChoiceIndex(choice, choices.length);\n if (!choices[choice]) { return message }\n return choices[choice].trim()\n};\n\nVueI18n.prototype.tc = function tc (key, choice) {\n var ref;\n\n var values = [], len = arguments.length - 2;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 2 ];\n return (ref = this)._tc.apply(ref, [ key, this.locale, this._getMessages(), null, choice ].concat( values ))\n};\n\nVueI18n.prototype._te = function _te (key, locale, messages) {\n var args = [], len = arguments.length - 3;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 3 ];\n\n var _locale = parseArgs.apply(void 0, args).locale || locale;\n return this._exist(messages[_locale], key)\n};\n\nVueI18n.prototype.te = function te (key, locale) {\n return this._te(key, this.locale, this._getMessages(), locale)\n};\n\nVueI18n.prototype.getLocaleMessage = function getLocaleMessage (locale) {\n return looseClone(this._vm.messages[locale] || {})\n};\n\nVueI18n.prototype.setLocaleMessage = function setLocaleMessage (locale, message) {\n if (this._warnHtmlInMessage === 'warn' || this._warnHtmlInMessage === 'error') {\n this._checkLocaleMessage(locale, this._warnHtmlInMessage, message);\n }\n this._vm.$set(this._vm.messages, locale, message);\n};\n\nVueI18n.prototype.mergeLocaleMessage = function mergeLocaleMessage (locale, message) {\n if (this._warnHtmlInMessage === 'warn' || this._warnHtmlInMessage === 'error') {\n this._checkLocaleMessage(locale, this._warnHtmlInMessage, message);\n }\n this._vm.$set(this._vm.messages, locale, merge(\n typeof this._vm.messages[locale] !== 'undefined' && Object.keys(this._vm.messages[locale]).length\n ? Object.assign({}, this._vm.messages[locale])\n : {},\n message\n ));\n};\n\nVueI18n.prototype.getDateTimeFormat = function getDateTimeFormat (locale) {\n return looseClone(this._vm.dateTimeFormats[locale] || {})\n};\n\nVueI18n.prototype.setDateTimeFormat = function setDateTimeFormat (locale, format) {\n this._vm.$set(this._vm.dateTimeFormats, locale, format);\n this._clearDateTimeFormat(locale, format);\n};\n\nVueI18n.prototype.mergeDateTimeFormat = function mergeDateTimeFormat (locale, format) {\n this._vm.$set(this._vm.dateTimeFormats, locale, merge(this._vm.dateTimeFormats[locale] || {}, format));\n this._clearDateTimeFormat(locale, format);\n};\n\nVueI18n.prototype._clearDateTimeFormat = function _clearDateTimeFormat (locale, format) {\n // eslint-disable-next-line no-autofix/prefer-const\n for (var key in format) {\n var id = locale + \"__\" + key;\n\n if (!this._dateTimeFormatters.hasOwnProperty(id)) {\n continue\n }\n\n delete this._dateTimeFormatters[id];\n }\n};\n\nVueI18n.prototype._localizeDateTime = function _localizeDateTime (\n value,\n locale,\n fallback,\n dateTimeFormats,\n key,\n options\n) {\n var _locale = locale;\n var formats = dateTimeFormats[_locale];\n\n var chain = this._getLocaleChain(locale, fallback);\n for (var i = 0; i < chain.length; i++) {\n var current = _locale;\n var step = chain[i];\n formats = dateTimeFormats[step];\n _locale = step;\n // fallback locale\n if (isNull(formats) || isNull(formats[key])) {\n if (step !== locale && process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to '\" + step + \"' datetime formats from '\" + current + \"' datetime formats.\"));\n }\n } else {\n break\n }\n }\n\n if (isNull(formats) || isNull(formats[key])) {\n return null\n } else {\n var format = formats[key];\n\n var formatter;\n if (options) {\n formatter = new Intl.DateTimeFormat(_locale, Object.assign({}, format, options));\n } else {\n var id = _locale + \"__\" + key;\n formatter = this._dateTimeFormatters[id];\n if (!formatter) {\n formatter = this._dateTimeFormatters[id] = new Intl.DateTimeFormat(_locale, format);\n }\n }\n\n return formatter.format(value)\n }\n};\n\nVueI18n.prototype._d = function _d (value, locale, key, options) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && !VueI18n.availabilities.dateTimeFormat) {\n warn('Cannot format a Date value due to not supported Intl.DateTimeFormat.');\n return ''\n }\n\n if (!key) {\n var dtf = !options ? new Intl.DateTimeFormat(locale) : new Intl.DateTimeFormat(locale, options);\n return dtf.format(value)\n }\n\n var ret =\n this._localizeDateTime(value, locale, this.fallbackLocale, this._getDateTimeFormats(), key, options);\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to datetime localization of root: key '\" + key + \"'.\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n.d(value, key, locale)\n } else {\n return ret || ''\n }\n};\n\nVueI18n.prototype.d = function d (value) {\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n var locale = this.locale;\n var key = null;\n var options = null;\n\n if (args.length === 1) {\n if (isString(args[0])) {\n key = args[0];\n } else if (isObject(args[0])) {\n if (args[0].locale) {\n locale = args[0].locale;\n }\n if (args[0].key) {\n key = args[0].key;\n }\n }\n\n options = Object.keys(args[0]).reduce(function (acc, key) {\n var obj;\n\n if (includes(dateTimeFormatKeys, key)) {\n return Object.assign({}, acc, ( obj = {}, obj[key] = args[0][key], obj ))\n }\n return acc\n }, null);\n\n } else if (args.length === 2) {\n if (isString(args[0])) {\n key = args[0];\n }\n if (isString(args[1])) {\n locale = args[1];\n }\n }\n\n return this._d(value, locale, key, options)\n};\n\nVueI18n.prototype.getNumberFormat = function getNumberFormat (locale) {\n return looseClone(this._vm.numberFormats[locale] || {})\n};\n\nVueI18n.prototype.setNumberFormat = function setNumberFormat (locale, format) {\n this._vm.$set(this._vm.numberFormats, locale, format);\n this._clearNumberFormat(locale, format);\n};\n\nVueI18n.prototype.mergeNumberFormat = function mergeNumberFormat (locale, format) {\n this._vm.$set(this._vm.numberFormats, locale, merge(this._vm.numberFormats[locale] || {}, format));\n this._clearNumberFormat(locale, format);\n};\n\nVueI18n.prototype._clearNumberFormat = function _clearNumberFormat (locale, format) {\n // eslint-disable-next-line no-autofix/prefer-const\n for (var key in format) {\n var id = locale + \"__\" + key;\n\n if (!this._numberFormatters.hasOwnProperty(id)) {\n continue\n }\n\n delete this._numberFormatters[id];\n }\n};\n\nVueI18n.prototype._getNumberFormatter = function _getNumberFormatter (\n value,\n locale,\n fallback,\n numberFormats,\n key,\n options\n) {\n var _locale = locale;\n var formats = numberFormats[_locale];\n\n var chain = this._getLocaleChain(locale, fallback);\n for (var i = 0; i < chain.length; i++) {\n var current = _locale;\n var step = chain[i];\n formats = numberFormats[step];\n _locale = step;\n // fallback locale\n if (isNull(formats) || isNull(formats[key])) {\n if (step !== locale && process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to '\" + step + \"' number formats from '\" + current + \"' number formats.\"));\n }\n } else {\n break\n }\n }\n\n if (isNull(formats) || isNull(formats[key])) {\n return null\n } else {\n var format = formats[key];\n\n var formatter;\n if (options) {\n // If options specified - create one time number formatter\n formatter = new Intl.NumberFormat(_locale, Object.assign({}, format, options));\n } else {\n var id = _locale + \"__\" + key;\n formatter = this._numberFormatters[id];\n if (!formatter) {\n formatter = this._numberFormatters[id] = new Intl.NumberFormat(_locale, format);\n }\n }\n return formatter\n }\n};\n\nVueI18n.prototype._n = function _n (value, locale, key, options) {\n /* istanbul ignore if */\n if (!VueI18n.availabilities.numberFormat) {\n if (process.env.NODE_ENV !== 'production') {\n warn('Cannot format a Number value due to not supported Intl.NumberFormat.');\n }\n return ''\n }\n\n if (!key) {\n var nf = !options ? new Intl.NumberFormat(locale) : new Intl.NumberFormat(locale, options);\n return nf.format(value)\n }\n\n var formatter = this._getNumberFormatter(value, locale, this.fallbackLocale, this._getNumberFormats(), key, options);\n var ret = formatter && formatter.format(value);\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to number localization of root: key '\" + key + \"'.\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n.n(value, Object.assign({}, { key: key, locale: locale }, options))\n } else {\n return ret || ''\n }\n};\n\nVueI18n.prototype.n = function n (value) {\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n var locale = this.locale;\n var key = null;\n var options = null;\n\n if (args.length === 1) {\n if (isString(args[0])) {\n key = args[0];\n } else if (isObject(args[0])) {\n if (args[0].locale) {\n locale = args[0].locale;\n }\n if (args[0].key) {\n key = args[0].key;\n }\n\n // Filter out number format options only\n options = Object.keys(args[0]).reduce(function (acc, key) {\n var obj;\n\n if (includes(numberFormatKeys, key)) {\n return Object.assign({}, acc, ( obj = {}, obj[key] = args[0][key], obj ))\n }\n return acc\n }, null);\n }\n } else if (args.length === 2) {\n if (isString(args[0])) {\n key = args[0];\n }\n if (isString(args[1])) {\n locale = args[1];\n }\n }\n\n return this._n(value, locale, key, options)\n};\n\nVueI18n.prototype._ntp = function _ntp (value, locale, key, options) {\n /* istanbul ignore if */\n if (!VueI18n.availabilities.numberFormat) {\n if (process.env.NODE_ENV !== 'production') {\n warn('Cannot format to parts a Number value due to not supported Intl.NumberFormat.');\n }\n return []\n }\n\n if (!key) {\n var nf = !options ? new Intl.NumberFormat(locale) : new Intl.NumberFormat(locale, options);\n return nf.formatToParts(value)\n }\n\n var formatter = this._getNumberFormatter(value, locale, this.fallbackLocale, this._getNumberFormats(), key, options);\n var ret = formatter && formatter.formatToParts(value);\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key)) {\n warn((\"Fall back to format number to parts of root: key '\" + key + \"' .\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n._ntp(value, locale, key, options)\n } else {\n return ret || []\n }\n};\n\nObject.defineProperties( VueI18n.prototype, prototypeAccessors );\n\nvar availabilities;\n// $FlowFixMe\nObject.defineProperty(VueI18n, 'availabilities', {\n get: function get () {\n if (!availabilities) {\n var intlDefined = typeof Intl !== 'undefined';\n availabilities = {\n dateTimeFormat: intlDefined && typeof Intl.DateTimeFormat !== 'undefined',\n numberFormat: intlDefined && typeof Intl.NumberFormat !== 'undefined'\n };\n }\n\n return availabilities\n }\n});\n\nVueI18n.install = install;\nVueI18n.version = '8.28.2';\n\nexport default VueI18n;\n","module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = \"fb15\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"014b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// ECMAScript 6 symbols shim\nvar global = __webpack_require__(\"e53d\");\nvar has = __webpack_require__(\"07e3\");\nvar DESCRIPTORS = __webpack_require__(\"8e60\");\nvar $export = __webpack_require__(\"63b6\");\nvar redefine = __webpack_require__(\"9138\");\nvar META = __webpack_require__(\"ebfd\").KEY;\nvar $fails = __webpack_require__(\"294c\");\nvar shared = __webpack_require__(\"dbdb\");\nvar setToStringTag = __webpack_require__(\"45f2\");\nvar uid = __webpack_require__(\"62a0\");\nvar wks = __webpack_require__(\"5168\");\nvar wksExt = __webpack_require__(\"ccb9\");\nvar wksDefine = __webpack_require__(\"6718\");\nvar enumKeys = __webpack_require__(\"47ee\");\nvar isArray = __webpack_require__(\"9003\");\nvar anObject = __webpack_require__(\"e4ae\");\nvar isObject = __webpack_require__(\"f772\");\nvar toIObject = __webpack_require__(\"36c3\");\nvar toPrimitive = __webpack_require__(\"1bc3\");\nvar createDesc = __webpack_require__(\"aebd\");\nvar _create = __webpack_require__(\"a159\");\nvar gOPNExt = __webpack_require__(\"0395\");\nvar $GOPD = __webpack_require__(\"bf0b\");\nvar $DP = __webpack_require__(\"d9f6\");\nvar $keys = __webpack_require__(\"c3a1\");\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function';\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n __webpack_require__(\"6abf\").f = gOPNExt.f = $getOwnPropertyNames;\n __webpack_require__(\"355d\").f = $propertyIsEnumerable;\n __webpack_require__(\"9aa9\").f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !__webpack_require__(\"b8e3\")) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(\"35e8\")($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n\n\n/***/ }),\n\n/***/ \"01f9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar LIBRARY = __webpack_require__(\"2d00\");\nvar $export = __webpack_require__(\"5ca1\");\nvar redefine = __webpack_require__(\"2aba\");\nvar hide = __webpack_require__(\"32e9\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar $iterCreate = __webpack_require__(\"41a0\");\nvar setToStringTag = __webpack_require__(\"7f20\");\nvar getPrototypeOf = __webpack_require__(\"38fd\");\nvar ITERATOR = __webpack_require__(\"2b4c\")('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n/***/ }),\n\n/***/ \"02f4\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"4588\");\nvar defined = __webpack_require__(\"be13\");\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n/***/ }),\n\n/***/ \"0390\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar at = __webpack_require__(\"02f4\")(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n\n\n/***/ }),\n\n/***/ \"0395\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = __webpack_require__(\"36c3\");\nvar gOPN = __webpack_require__(\"6abf\").f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n\n\n/***/ }),\n\n/***/ \"07e3\":\n/***/ (function(module, exports) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n/***/ }),\n\n/***/ \"0b21\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 20.2.2.28 Math.sign(x)\nvar $export = __webpack_require__(\"5ca1\");\n\n$export($export.S, 'Math', { sign: __webpack_require__(\"96fb\") });\n\n\n/***/ }),\n\n/***/ \"0bfb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = __webpack_require__(\"cb7c\");\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"0d58\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = __webpack_require__(\"ce10\");\nvar enumBugKeys = __webpack_require__(\"e11e\");\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n\n\n/***/ }),\n\n/***/ \"0fc9\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"3a38\");\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n/***/ }),\n\n/***/ \"11e9\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar pIE = __webpack_require__(\"52a7\");\nvar createDesc = __webpack_require__(\"4630\");\nvar toIObject = __webpack_require__(\"6821\");\nvar toPrimitive = __webpack_require__(\"6a99\");\nvar has = __webpack_require__(\"69a8\");\nvar IE8_DOM_DEFINE = __webpack_require__(\"c69a\");\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = __webpack_require__(\"9e1e\") ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n\n\n/***/ }),\n\n/***/ \"1495\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(\"86cc\");\nvar anObject = __webpack_require__(\"cb7c\");\nvar getKeys = __webpack_require__(\"0d58\");\n\nmodule.exports = __webpack_require__(\"9e1e\") ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n/***/ }),\n\n/***/ \"1654\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $at = __webpack_require__(\"71c1\")(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\n__webpack_require__(\"30f1\")(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n\n\n/***/ }),\n\n/***/ \"1661\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// style-loader: Adds some css to the DOM by adding a