{"version":3,"file":"static/js/961c04d2b13898559984.bundle.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/__DynamicConstants.js?bfa4","webpack://Msdyn365.Commerce.Online/PageViewManager.js?c706","webpack://Msdyn365.Commerce.Online/PageViewPerformanceManager.js?a39b","webpack://Msdyn365.Commerce.Online/PageVisitTimeManager.js?6756","webpack://Msdyn365.Commerce.Online/Timing.js?b20a","webpack://Msdyn365.Commerce.Online/AnalyticsPlugin.js?e3a1"],"sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\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","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\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 /**\r\n * Currently supported cases:\r\n * 1) (default case) track page view called with default parameters, overridePageViewDuration = false. Page view is sent with page view performance when navigation timing data is available.\r\n * a. If navigation timing is not supported then page view is sent right away with undefined duration. Page view performance is not sent.\r\n * 2) overridePageViewDuration = true, custom duration provided. Custom duration is used, page view sends right away.\r\n * 3) overridePageViewDuration = true, custom duration NOT provided. Page view is sent right away, duration is time spent from page load till now (or undefined if navigation timing is not supported).\r\n * 4) overridePageViewDuration = false, custom duration is provided. Page view is sent right away with custom duration.\r\n *\r\n * In all cases page view performance is sent once (only for the 1st call of trackPageView), or not sent if navigation timing is not supported.\r\n */\r\n PageViewManager.prototype.trackPageView = function (pageView, customProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n PageViewManager.prototype.teardown = function (unloadCtx, unloadState) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return PageViewManager;\r\n}());\r\nexport { PageViewManager };\r\n//# sourceMappingURL=PageViewManager.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\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 PageViewPerformanceManager.prototype.populatePageViewPerformanceEvent = function (pageViewPerformance) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n PageViewPerformanceManager.prototype.getPerformanceTiming = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Returns true is window performance timing API is supported, false otherwise.\r\n */\r\n PageViewPerformanceManager.prototype.isPerformanceTimingSupported = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return true;\r\n };\r\n /**\r\n * As page loads different parts of performance timing numbers get set. When all of them are set we can report it.\r\n * Returns true if ready, false otherwise.\r\n */\r\n PageViewPerformanceManager.prototype.isPerformanceTimingDataReady = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return true;\r\n };\r\n /**\r\n * This method tells if given durations should be excluded from collection.\r\n */\r\n PageViewPerformanceManager.prototype.shouldCollectDuration = function () {\r\n var durations = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n durations[_i] = arguments[_i];\r\n }\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return true;\r\n };\r\n return PageViewPerformanceManager;\r\n}());\r\nexport { PageViewPerformanceManager };\r\n//# sourceMappingURL=PageViewPerformanceManager.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\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 /**\r\n * Tracks the previous page visit time telemetry (if exists) and starts timing of new page visit time\r\n * @param currentPageName Name of page to begin timing for visit duration\r\n * @param currentPageUrl Url of page to begin timing for visit duration\r\n */\r\n PageVisitTimeManager.prototype.trackPreviousPageVisit = function (currentPageName, currentPageUrl) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\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","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\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","/**\r\n* ApplicationInsights.ts\r\n* @copyright Microsoft 2018\r\n*/\r\nimport { __assign, __extends } from \"tslib\";\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, utlSetStoragePrefix } 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 if (config.storagePrefix) {\r\n utlSetStoragePrefix(config.storagePrefix);\r\n }\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 /**\r\n * Get the current cookie manager for this instance\r\n */\r\n AnalyticsPlugin.prototype.getCookieMgr = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n AnalyticsPlugin.prototype.processTelemetry = function (env, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n AnalyticsPlugin.prototype.trackEvent = function (event, customProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\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 AnalyticsPlugin.prototype.startTrackEvent = function (name) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\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 AnalyticsPlugin.prototype.stopTrackEvent = function (name, properties, measurements) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\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 AnalyticsPlugin.prototype.trackTrace = function (trace, customProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\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 AnalyticsPlugin.prototype.trackMetric = function (metric, customProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\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 AnalyticsPlugin.prototype.trackPageView = function (pageView, customProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\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 AnalyticsPlugin.prototype.sendPageViewInternal = function (pageView, properties, systemProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * @ignore INTERNAL ONLY\r\n * @param pageViewPerformance\r\n * @param properties\r\n */\r\n AnalyticsPlugin.prototype.sendPageViewPerformanceInternal = function (pageViewPerformance, properties, systemProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Send browser performance metrics.\r\n * @param pageViewPerformance\r\n * @param customProperties\r\n */\r\n AnalyticsPlugin.prototype.trackPageViewPerformance = function (pageViewPerformance, customProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\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 AnalyticsPlugin.prototype.startTrackPage = function (name) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\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 AnalyticsPlugin.prototype.stopTrackPage = function (name, url, properties, measurement) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\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 AnalyticsPlugin.prototype.sendExceptionInternal = function (exception, customProperties, systemProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\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 AnalyticsPlugin.prototype.trackException = function (exception, customProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\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 AnalyticsPlugin.prototype._onerror = function (exception) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n AnalyticsPlugin.prototype.addTelemetryInitializer = function (telemetryInitializer) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n AnalyticsPlugin.prototype.initialize = function (config, core, extensions, pluginChain) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n AnalyticsPlugin.Version = '2.8.18'; // 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"],"names":["_DYN_ENABLE_UNHANDLED_PRO3","_DYN_IS_BROWSER_LINK_TRAC5","_DYN_SEND_PAGE_VIEW_PERFO11","_DYN_POPULATE_PAGE_VIEW_P12","_isWebWorker","PageViewManager","appInsights","overridePageViewDuration","core","pageViewPerformanceManager","this","_self","_logger","queueTimer","itemQueue","pageViewPerformanceSent","_flushChannels","isAsync","flush","_startTimer","setTimeout","allItems","slice","doFlush","item","push","_addQueue","cb","logger","pageView","customProperties","name","doc","title","uri","location_1","self","WorkerGlobalScope","e","isWebWorker","customDuration","duration","pageViewSent","start","Date","undefined","isNaN","processed","pageViewPerformance","isValid","durationMs","exception","teardown","unloadCtx","unloadState","clearTimeout","MAX_DURATION_ALLOWED","botAgentNames","_isPerformanceTimingSupported","perf","timing","_isPerformanceTimingDataReady","domainLookupStart","domLoading","_getPerformanceTiming","_getPerformanceNavigationTiming","getEntriesByType","_shouldCollectDuration","durations","_i","arguments","length","_navigator","userAgent","isGoogleBot","i","toLowerCase","indexOf","PageViewPerformanceManager","navigationTiming","total","network","request","response","dom","startTime","requestStart","responseEnd","Math","floor","perfTotal","networkConnect","sentRequest","receivedResponse","domProcessing","PageVisitTimeManager","pageVisitTimeTrackingHandler","prevPageVisitDataKeyName","currentPageName","currentPageUrl","prevPageVisitTimeData","pageName","pageUrl","prevPageVisitData","pageVisitEndTime","pageVisitDataJsonStr","parse","pageVisitTime","stopPageVisitTimer","currPageVisitData","PageVisitData","currPageVisitDataStr","stringify","startPageVisitTimer","restartPageVisitTimer","Timing","_events","key","stop","url","properties","measurements","end","action","_dispatchEvent","target","evnt","dispatchEvent","_configMilliseconds","value","defValue","_getDefaultConfig","config","sessionRenewalMs","sessionExpirationMs","enableDebug","disableFlushOnUnload","AnalyticsPlugin","_super","_eventTracking","_pageTracking","_pageViewManager","_pageViewPerformanceManager","_pageVisitTimeManager","_preInitTelemetryInitializers","_isBrowserLinkTrackingEnabled","_browserLinkInitializerAdded","_enableAutoRouteTracking","_historyListenerAdded","_disableExceptionTracking","_autoExceptionInstrumented","_enableUnhandledPromiseRejectionTracking","_autoUnhandledPromiseInstrumented","_this","call","identifier","priority","autoRoutePVDelay","_prevUri","_currUri","_evtNamespace","_base","_addHook","_throwInternal","severity","msgId","msg","isUserAct","throwInternal","_initDefaults","location","getCookieMgr","processTelemetry","env","itemCtx","processNext","trackEvent","event","telemetryItem","startTrackEvent","stopTrackEvent","trackTrace","trace","Trace","trackMetric","metric","Metric","inPv","systemProperties","refUri","referrer","PageView","PageViewPerformance","trackPageViewPerformance","inPvp","startTrackPage","stopTrackPage","measurement","loc","theError","message","exceptionPartB","Exception","severityLevel","id","toInterface","trackException","error","evt","_window","URL","errorSrc","lineNumber","columnNumber","_sendCORSException","errorString","telemetryInitializer","initialize","extensions","pluginChain","isInitialized","storagePrefix","evtNamespace","initializer","extConfig","ctx","defaults","getExtCfg","field","getConfig","_populateDefaults","_updateStorageUsage","PageName","PageUrl","average","max","min","sampleCount","trackPageVisitTime","browserLinkPaths_1","dropBrowserLinkRequests","envelope","baseType","RemoteDependencyData","remoteData","baseData","_addDefaultTelemetryInitializers","_updateBrowserLinkTracking","pageViewItem","locn","autoExceptionInstrumented","ns","rsp","callDetails","rslt","_location","reason","_getReason","autoUnhandledPromiseInstrumented","_addUnhandledPromiseRejectionTracking","_updateExceptionTracking","win","_history","pushState","replaceState","Event","history","namePrefix","_popstateHandler","_locationChangeHandler","distributedTraceCtx","getTraceCtx","getPlugin","context","plugin","telemetryTrace","_getDistributedTraceCtx","setTraceId","traceLocationName","pathname","hash","setName","bind","_addHistoryListener","_updateLocationChange","setInitialized","_doTeardown","window","Version","getDefaultConfig","BaseTelemetryPlugin"],"sourceRoot":""}