@microsoft/applicationinsights-clickanalytics-js 3.0.2-nightly3.2305-03 → 3.0.2-nightly3.2305-07
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/browser/es5/{ai.clck.3.0.2-nightly3.2305-03.cjs.js → ai.clck.3.0.2-nightly3.2305-07.cjs.js} +10 -9
- package/browser/es5/{ai.clck.3.0.2-nightly3.2305-03.cjs.js.map → ai.clck.3.0.2-nightly3.2305-07.cjs.js.map} +1 -1
- package/browser/es5/ai.clck.3.0.2-nightly3.2305-07.cjs.min.js +6 -0
- package/browser/es5/{ai.clck.3.0.2-nightly3.2305-03.cjs.min.js.map → ai.clck.3.0.2-nightly3.2305-07.cjs.min.js.map} +1 -1
- package/browser/es5/ai.clck.3.0.2-nightly3.2305-07.gbl.js +3859 -0
- package/browser/es5/{ai.clck.3.0.2-nightly3.2305-03.gbl.js.map → ai.clck.3.0.2-nightly3.2305-07.gbl.js.map} +1 -1
- package/browser/es5/ai.clck.3.0.2-nightly3.2305-07.gbl.min.js +6 -0
- package/browser/es5/{ai.clck.3.0.2-nightly3.2305-03.gbl.min.js.map → ai.clck.3.0.2-nightly3.2305-07.gbl.min.js.map} +1 -1
- package/browser/es5/ai.clck.3.0.2-nightly3.2305-07.integrity.json +66 -0
- package/browser/es5/ai.clck.3.0.2-nightly3.2305-07.js +3863 -0
- package/browser/es5/{ai.clck.3.0.2-nightly3.2305-03.js.map → ai.clck.3.0.2-nightly3.2305-07.js.map} +1 -1
- package/browser/es5/ai.clck.3.0.2-nightly3.2305-07.min.js +6 -0
- package/browser/es5/{ai.clck.3.0.2-nightly3.2305-03.min.js.map → ai.clck.3.0.2-nightly3.2305-07.min.js.map} +1 -1
- package/browser/es5/ai.clck.3.cjs.js +9 -8
- package/browser/es5/ai.clck.3.cjs.js.map +1 -1
- package/browser/es5/ai.clck.3.cjs.min.js +2 -2
- package/browser/es5/ai.clck.3.cjs.min.js.map +1 -1
- package/browser/es5/ai.clck.3.gbl.js +3567 -3547
- package/browser/es5/ai.clck.3.gbl.js.map +1 -1
- package/browser/es5/ai.clck.3.gbl.min.js +2 -2
- package/browser/es5/ai.clck.3.gbl.min.js.map +1 -1
- package/browser/es5/ai.clck.3.js +3569 -3547
- package/browser/es5/ai.clck.3.js.map +1 -1
- package/browser/es5/ai.clck.3.min.js +2 -2
- package/browser/es5/ai.clck.3.min.js.map +1 -1
- package/dist/es5/applicationinsights-clickanalytics-js.js +9 -9
- package/dist/es5/applicationinsights-clickanalytics-js.js.map +1 -1
- package/dist/es5/applicationinsights-clickanalytics-js.min.js +2 -2
- package/dist/es5/applicationinsights-clickanalytics-js.min.js.map +1 -1
- package/dist-es5/Behaviours.js +1 -1
- package/dist-es5/ClickAnalyticsPlugin.js +4 -4
- package/dist-es5/ClickAnalyticsPlugin.js.map +1 -1
- package/dist-es5/DataCollector.js +2 -2
- package/dist-es5/DataCollector.js.map +1 -1
- package/dist-es5/Enums.js +1 -1
- package/dist-es5/Interfaces/Datamodel.js +1 -1
- package/dist-es5/__DynamicConstants.js +1 -1
- package/dist-es5/applicationinsights-clickanalytics-js.js +1 -1
- package/dist-es5/common/Utils.js +1 -1
- package/dist-es5/events/PageAction.js +1 -1
- package/dist-es5/events/WebEvent.js +2 -2
- package/dist-es5/events/WebEvent.js.map +1 -1
- package/dist-es5/handlers/AutoCaptureHandler.js +1 -1
- package/dist-es5/handlers/DomContentHandler.js +4 -4
- package/dist-es5/handlers/DomContentHandler.js.map +1 -1
- package/package.json +4 -4
- package/types/applicationinsights-clickanalytics-js.d.ts +1 -1
- package/types/applicationinsights-clickanalytics-js.namespaced.d.ts +1 -1
- package/browser/es5/ai.clck.3.0.2-nightly3.2305-03.cjs.min.js +0 -6
- package/browser/es5/ai.clck.3.0.2-nightly3.2305-03.gbl.js +0 -3839
- package/browser/es5/ai.clck.3.0.2-nightly3.2305-03.gbl.min.js +0 -6
- package/browser/es5/ai.clck.3.0.2-nightly3.2305-03.integrity.json +0 -66
- package/browser/es5/ai.clck.3.0.2-nightly3.2305-03.js +0 -3841
- package/browser/es5/ai.clck.3.0.2-nightly3.2305-03.min.js +0 -6
package/dist-es5/Behaviours.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Application Insights JavaScript SDK - Click Analytics, 3.0.2-nightly3.2305-
|
|
2
|
+
* Application Insights JavaScript SDK - Click Analytics, 3.0.2-nightly3.2305-07
|
|
3
3
|
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
@@ -10,7 +10,7 @@ import { __extendsFn as __extends } from "@microsoft/applicationinsights-shims";
|
|
|
10
10
|
import dynamicProto from "@microsoft/dynamicproto-js";
|
|
11
11
|
import { PropertiesPluginIdentifier } from "@microsoft/applicationinsights-common";
|
|
12
12
|
import { BaseTelemetryPlugin, _throwInternal, arrForEach, cfgDfFunc, cfgDfMerge, cfgDfString, cfgDfValidate, createProcessTelemetryContext, dumpObj, getExceptionName, isNullOrUndefined, onConfigChange, throwError, unloadComponents } from "@microsoft/applicationinsights-core-js";
|
|
13
|
-
import { hasDocument, objDeepFreeze } from "@nevware21/ts-utils";
|
|
13
|
+
import { getDocument, hasDocument, objDeepFreeze } from "@nevware21/ts-utils";
|
|
14
14
|
import { _DYN_BEHAVIOR_VALIDATOR, _DYN_CAPTURE_ALL_META_DAT2, _DYN_CONTENT_NAME, _DYN_DEFAULT_RIGHT_CLICK_3, _DYN_INDEX_OF, _DYN_META_DATA_PREFIX, _DYN_PAGE_ACTION_PAGE_TAG0, _DYN_PAGE_NAME, _DYN_PAGE_TYPE, _DYN_PARENT_DATA_TAG, _DYN_REQUEST_URI, _DYN_TRACK_PAGE_ACTION, _DYN_USE_DEFAULT_CONTENT_1, _DYN__DO_UNLOAD } from "./__DynamicConstants";
|
|
15
15
|
import { BehaviorEnumValidator, BehaviorMapValidator, BehaviorValueValidator, DEFAULT_AI_BLOB_ATTRIBUTE_TAG, DEFAULT_DATA_PREFIX, DEFAULT_DONOT_TRACK_TAG } from "./common/Utils";
|
|
16
16
|
import { PageAction } from "./events/PageAction";
|
|
@@ -26,7 +26,7 @@ var defaultValues = objDeepFreeze((_a = {
|
|
|
26
26
|
_b)),
|
|
27
27
|
pageTags: {},
|
|
28
28
|
coreData: cfgDfMerge((_c = {
|
|
29
|
-
referrerUri: hasDocument ?
|
|
29
|
+
referrerUri: hasDocument() ? getDocument().referrer : ""
|
|
30
30
|
},
|
|
31
31
|
_c[_DYN_REQUEST_URI /* @min:requestUri */] = cfgDfString(),
|
|
32
32
|
_c[_DYN_PAGE_NAME /* @min:pageName */] = cfgDfString(),
|
|
@@ -141,7 +141,7 @@ var ClickAnalyticsPlugin = /** @class */ (function (_super) {
|
|
|
141
141
|
// Removed Stub for ClickAnalyticsPlugin.prototype.initialize.
|
|
142
142
|
// Removed Stub for ClickAnalyticsPlugin.prototype.processTelemetry.
|
|
143
143
|
// Removed Stub for ClickAnalyticsPlugin.prototype.trackPageAction.
|
|
144
|
-
ClickAnalyticsPlugin.Version = "3.0.2-nightly3.2305-
|
|
144
|
+
ClickAnalyticsPlugin.Version = "3.0.2-nightly3.2305-07";
|
|
145
145
|
return ClickAnalyticsPlugin;
|
|
146
146
|
}(BaseTelemetryPlugin));
|
|
147
147
|
export { ClickAnalyticsPlugin };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClickAnalyticsPlugin.js.map","sources":["ClickAnalyticsPlugin.js"],"sourcesContent":["/**\r\n* @copyright Microsoft 2020\r\n*/\r\nvar _a, _b, _c, _d;\r\nimport { __extends } from \"tslib\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { PropertiesPluginIdentifier } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, _throwInternal, arrForEach, cfgDfFunc, cfgDfMerge, cfgDfString, cfgDfValidate, createProcessTelemetryContext, dumpObj, getExceptionName, isNullOrUndefined, onConfigChange, throwError, unloadComponents } from \"@microsoft/applicationinsights-core-js\";\r\nimport { hasDocument, objDeepFreeze } from \"@nevware21/ts-utils\";\r\nimport { _DYN_BEHAVIOR_VALIDATOR, _DYN_CAPTURE_ALL_META_DAT2, _DYN_CONTENT_NAME, _DYN_DEFAULT_RIGHT_CLICK_3, _DYN_INDEX_OF, _DYN_META_DATA_PREFIX, _DYN_PAGE_ACTION_PAGE_TAG0, _DYN_PAGE_NAME, _DYN_PAGE_TYPE, _DYN_PARENT_DATA_TAG, _DYN_REQUEST_URI, _DYN_TRACK_PAGE_ACTION, _DYN_USE_DEFAULT_CONTENT_1, _DYN__DO_UNLOAD } from \"./__DynamicConstants\";\r\nimport { BehaviorEnumValidator, BehaviorMapValidator, BehaviorValueValidator, DEFAULT_AI_BLOB_ATTRIBUTE_TAG, DEFAULT_DATA_PREFIX, DEFAULT_DONOT_TRACK_TAG } from \"./common/Utils\";\r\nimport { PageAction } from \"./events/PageAction\";\r\nimport { AutoCaptureHandler } from \"./handlers/AutoCaptureHandler\";\r\nimport { DomContentHandler } from \"./handlers/DomContentHandler\";\r\nexport { BehaviorMapValidator, BehaviorValueValidator, BehaviorEnumValidator };\r\nvar defaultValues = objDeepFreeze((_a = {\r\n autoCapture: true,\r\n callback: cfgDfMerge((_b = {},\r\n _b[_DYN_PAGE_ACTION_PAGE_TAG0 /* @min:pageActionPageTags */] = cfgDfFunc(),\r\n _b[_DYN_PAGE_NAME /* @min:pageName */] = cfgDfFunc(),\r\n _b[_DYN_CONTENT_NAME /* @min:contentName */] = cfgDfFunc(),\r\n _b)),\r\n pageTags: {},\r\n coreData: cfgDfMerge((_c = {\r\n referrerUri: hasDocument ?
|
|
1
|
+
{"version":3,"file":"ClickAnalyticsPlugin.js.map","sources":["ClickAnalyticsPlugin.js"],"sourcesContent":["/**\r\n* @copyright Microsoft 2020\r\n*/\r\nvar _a, _b, _c, _d;\r\nimport { __extends } from \"tslib\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { PropertiesPluginIdentifier } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, _throwInternal, arrForEach, cfgDfFunc, cfgDfMerge, cfgDfString, cfgDfValidate, createProcessTelemetryContext, dumpObj, getExceptionName, isNullOrUndefined, onConfigChange, throwError, unloadComponents } from \"@microsoft/applicationinsights-core-js\";\r\nimport { getDocument, hasDocument, objDeepFreeze } from \"@nevware21/ts-utils\";\r\nimport { _DYN_BEHAVIOR_VALIDATOR, _DYN_CAPTURE_ALL_META_DAT2, _DYN_CONTENT_NAME, _DYN_DEFAULT_RIGHT_CLICK_3, _DYN_INDEX_OF, _DYN_META_DATA_PREFIX, _DYN_PAGE_ACTION_PAGE_TAG0, _DYN_PAGE_NAME, _DYN_PAGE_TYPE, _DYN_PARENT_DATA_TAG, _DYN_REQUEST_URI, _DYN_TRACK_PAGE_ACTION, _DYN_USE_DEFAULT_CONTENT_1, _DYN__DO_UNLOAD } from \"./__DynamicConstants\";\r\nimport { BehaviorEnumValidator, BehaviorMapValidator, BehaviorValueValidator, DEFAULT_AI_BLOB_ATTRIBUTE_TAG, DEFAULT_DATA_PREFIX, DEFAULT_DONOT_TRACK_TAG } from \"./common/Utils\";\r\nimport { PageAction } from \"./events/PageAction\";\r\nimport { AutoCaptureHandler } from \"./handlers/AutoCaptureHandler\";\r\nimport { DomContentHandler } from \"./handlers/DomContentHandler\";\r\nexport { BehaviorMapValidator, BehaviorValueValidator, BehaviorEnumValidator };\r\nvar defaultValues = objDeepFreeze((_a = {\r\n autoCapture: true,\r\n callback: cfgDfMerge((_b = {},\r\n _b[_DYN_PAGE_ACTION_PAGE_TAG0 /* @min:pageActionPageTags */] = cfgDfFunc(),\r\n _b[_DYN_PAGE_NAME /* @min:pageName */] = cfgDfFunc(),\r\n _b[_DYN_CONTENT_NAME /* @min:contentName */] = cfgDfFunc(),\r\n _b)),\r\n pageTags: {},\r\n coreData: cfgDfMerge((_c = {\r\n referrerUri: hasDocument() ? getDocument().referrer : \"\"\r\n },\r\n _c[_DYN_REQUEST_URI /* @min:requestUri */] = cfgDfString(),\r\n _c[_DYN_PAGE_NAME /* @min:pageName */] = cfgDfString(),\r\n _c[_DYN_PAGE_TYPE /* @min:pageType */] = cfgDfString(),\r\n _c)),\r\n dataTags: cfgDfMerge((_d = {},\r\n _d[_DYN_USE_DEFAULT_CONTENT_1 /* @min:useDefaultContentNameOrId */] = false,\r\n _d.aiBlobAttributeTag = DEFAULT_AI_BLOB_ATTRIBUTE_TAG,\r\n _d.customDataPrefix = cfgDfValidate(_dataPrefixChk, DEFAULT_DATA_PREFIX),\r\n _d[_DYN_CAPTURE_ALL_META_DAT2 /* @min:captureAllMetaDataContent */] = false,\r\n _d.dntDataTag = DEFAULT_DONOT_TRACK_TAG,\r\n _d[_DYN_META_DATA_PREFIX /* @min:metaDataPrefix */] = cfgDfString(),\r\n _d[_DYN_PARENT_DATA_TAG /* @min:parentDataTag */] = cfgDfString(),\r\n _d))\r\n },\r\n _a[_DYN_BEHAVIOR_VALIDATOR /* @min:behaviorValidator */] = cfgDfFunc(function (key) { return key || \"\"; }),\r\n _a[_DYN_DEFAULT_RIGHT_CLICK_3 /* @min:defaultRightClickBhvr */] = cfgDfString(),\r\n _a.dropInvalidEvents = false,\r\n _a.urlCollectHash = false,\r\n _a.urlCollectQuery = false,\r\n _a));\r\nfunction _dataPrefixChk(val) {\r\n return val && val[_DYN_INDEX_OF /* @min:%2eindexOf */](DEFAULT_DATA_PREFIX) === 0;\r\n}\r\nvar ClickAnalyticsPlugin = /** @class */ (function (_super) {\r\n __extends(ClickAnalyticsPlugin, _super);\r\n function ClickAnalyticsPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = \"ClickAnalyticsPlugin\";\r\n _this.priority = 181;\r\n var _config;\r\n var _pageAction;\r\n var _autoCaptureHandler;\r\n var _contentHandler;\r\n var _autoCapture;\r\n dynamicProto(ClickAnalyticsPlugin, _this, function (_self, _base) {\r\n var _identifier = _self.identifier;\r\n _initDefaults();\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n if (isNullOrUndefined(core)) {\r\n throwError(\"Error initializing\");\r\n }\r\n _super.prototype.initialize.call(_this, config, core, extensions, pluginChain);\r\n _populateDefaults(config);\r\n // Find the properties plugin.\r\n var _propertiesExtension;\r\n arrForEach(extensions, function (extension) {\r\n if (extension.identifier === PropertiesPluginIdentifier) {\r\n _propertiesExtension = extension;\r\n }\r\n });\r\n // Append Click Analytics Plugin Version to SDK version.\r\n if (_propertiesExtension && _propertiesExtension.context &&\r\n _propertiesExtension.context.internal && _propertiesExtension.context.internal.sdkVersion) {\r\n _propertiesExtension.context.internal.sdkVersion += \"_ClickPlugin\" + ClickAnalyticsPlugin.Version;\r\n }\r\n };\r\n _self.processTelemetry = function (env, itemCtx) {\r\n _self.processNext(env, itemCtx);\r\n };\r\n _self[_DYN_TRACK_PAGE_ACTION /* @min:%2etrackPageAction */] = function (pageAction, customProperties) {\r\n try {\r\n _pageAction[_DYN_TRACK_PAGE_ACTION /* @min:%2etrackPageAction */](pageAction, customProperties);\r\n }\r\n catch (e) {\r\n _throwInternal(_self.diagLog(), 1 /* eLoggingSeverity.CRITICAL */, 103 /* _eInternalMessageId.TrackPageActionEventFailed */, \"trackPageAction failed, page action event will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n _self._doTeardown = function (unloadCtx, unloadState, asyncCallback) {\r\n return unloadComponents([\r\n _autoCaptureHandler,\r\n _contentHandler,\r\n _pageAction\r\n ], unloadCtx, unloadState, function () {\r\n _initDefaults();\r\n asyncCallback && asyncCallback();\r\n });\r\n };\r\n function _populateDefaults(config) {\r\n var _this = this;\r\n var core = _self.core;\r\n _self._addHook(onConfigChange(config, function (details) {\r\n var config = details.cfg;\r\n var ctx = createProcessTelemetryContext(null, config, core);\r\n var _config = ctx.getExtCfg(_identifier, defaultValues);\r\n var logger = _self.diagLog();\r\n _contentHandler = new DomContentHandler(_config, logger);\r\n var metaTags = _contentHandler.getMetadata();\r\n _pageAction = new PageAction(_this, _config, _contentHandler, _config.callback[_DYN_PAGE_ACTION_PAGE_TAG0 /* @min:%2epageActionPageTags */], metaTags, logger);\r\n // Default to DOM autoCapture handler\r\n if (_autoCaptureHandler) {\r\n _autoCaptureHandler[_DYN__DO_UNLOAD /* @min:%2e_doUnload */]();\r\n }\r\n _autoCaptureHandler = new AutoCaptureHandler(_self, _config, _pageAction, logger);\r\n var autoCapture = !!_config.autoCapture;\r\n if (!_autoCapture && autoCapture) {\r\n _autoCaptureHandler.click();\r\n }\r\n _autoCapture = autoCapture;\r\n }));\r\n }\r\n function _initDefaults() {\r\n _config = null;\r\n _pageAction = null;\r\n _autoCaptureHandler = null;\r\n _contentHandler = null;\r\n _autoCapture = false;\r\n }\r\n });\r\n return _this;\r\n }\r\n ClickAnalyticsPlugin.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 ClickAnalyticsPlugin.prototype.processTelemetry = function (env, itemCtx) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Logs a page action event.\r\n * @param IPageActionTelemetry\r\n * @param customProperties - Additional data used to filter events and metrics. Defaults to empty.\r\n */\r\n ClickAnalyticsPlugin.prototype.trackPageAction = function (pageAction, customProperties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n ClickAnalyticsPlugin.Version = \"3.0.2-nightly3.2305-07\";\r\n return ClickAnalyticsPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport { ClickAnalyticsPlugin };\r\n//# sourceMappingURL=ClickAnalyticsPlugin.js.map"],"names":[],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA,gFAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;mEAaM;AACN;AACA;AACA;AACA;AACA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Application Insights JavaScript SDK - Click Analytics, 3.0.2-nightly3.2305-
|
|
2
|
+
* Application Insights JavaScript SDK - Click Analytics, 3.0.2-nightly3.2305-07
|
|
3
3
|
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
@@ -67,7 +67,7 @@ export function getClickTarget(element) {
|
|
|
67
67
|
*/
|
|
68
68
|
export function onDomLoaded(callback) {
|
|
69
69
|
onDomReadyDo(function () {
|
|
70
|
-
if (hasDocument &&
|
|
70
|
+
if (hasDocument() && getDocument().readyState === "complete") {
|
|
71
71
|
callback();
|
|
72
72
|
}
|
|
73
73
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataCollector.js.map","sources":["DataCollector.js"],"sourcesContent":["/**\r\n* @copyright Microsoft 2020\r\n*/\r\nimport { getDocument, getLocation, getWindow, hasDocument, isFunction } from \"@microsoft/applicationinsights-core-js\";\r\nimport { scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { _DYN_ADD_EVENT_LISTENER, _DYN_CORE_DATA, _DYN_LENGTH, _DYN_PAGE_NAME, _DYN_PATHNAME, _DYN_REQUEST_URI, _DYN_TAG_NAME, _DYN_TO_UPPER_CASE } from \"./__DynamicConstants\";\r\nimport { findClosestAnchor, isValueAssigned } from \"./common/Utils\";\r\nvar clickCaptureInputTypes = { BUTTON: true, CHECKBOX: true, RADIO: true, RESET: true, SUBMIT: true };\r\n/**\r\n * Get Image href of a given HTMLImageElement\r\n * @param element - An html image element\r\n * @returns Href value.\r\n */\r\nexport function getImageHref(element) {\r\n var temp = element;\r\n if (temp) {\r\n var parent = findClosestAnchor(temp);\r\n if (parent[_DYN_LENGTH /* @min:%2elength */] === 1) {\r\n var firstParent = parent[0];\r\n if (firstParent.href) {\r\n return firstParent.href;\r\n }\r\n else if (firstParent.src) {\r\n return (firstParent.src);\r\n }\r\n }\r\n }\r\n return \"\";\r\n}\r\n/**\r\n * Get click target\r\n * @returns Click target URI\r\n */\r\nexport function getClickTarget(element) {\r\n var clickTarget = \"\";\r\n switch (element[_DYN_TAG_NAME /* @min:%2etagName */]) {\r\n case \"A\":\r\n case \"AREA\":\r\n clickTarget = element.href || \"\";\r\n break;\r\n case \"IMG\":\r\n clickTarget = getImageHref(element);\r\n break;\r\n case \"INPUT\":\r\n var type = element.type;\r\n if (type && (clickCaptureInputTypes[type[_DYN_TO_UPPER_CASE /* @min:%2etoUpperCase */]()])) {\r\n var loc = getLocation() || {};\r\n if (element.form) {\r\n clickTarget = element.form.action || (loc[_DYN_PATHNAME /* @min:%2epathname */] || \"\");\r\n }\r\n else {\r\n clickTarget = loc[_DYN_PATHNAME /* @min:%2epathname */] || \"\";\r\n }\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n return clickTarget;\r\n}\r\n/**\r\n * Execute callback when DOM finish loading\r\n */\r\nexport function onDomLoaded(callback) {\r\n onDomReadyDo(function () {\r\n if (hasDocument &&
|
|
1
|
+
{"version":3,"file":"DataCollector.js.map","sources":["DataCollector.js"],"sourcesContent":["/**\r\n* @copyright Microsoft 2020\r\n*/\r\nimport { getDocument, getLocation, getWindow, hasDocument, isFunction } from \"@microsoft/applicationinsights-core-js\";\r\nimport { scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { _DYN_ADD_EVENT_LISTENER, _DYN_CORE_DATA, _DYN_LENGTH, _DYN_PAGE_NAME, _DYN_PATHNAME, _DYN_REQUEST_URI, _DYN_TAG_NAME, _DYN_TO_UPPER_CASE } from \"./__DynamicConstants\";\r\nimport { findClosestAnchor, isValueAssigned } from \"./common/Utils\";\r\nvar clickCaptureInputTypes = { BUTTON: true, CHECKBOX: true, RADIO: true, RESET: true, SUBMIT: true };\r\n/**\r\n * Get Image href of a given HTMLImageElement\r\n * @param element - An html image element\r\n * @returns Href value.\r\n */\r\nexport function getImageHref(element) {\r\n var temp = element;\r\n if (temp) {\r\n var parent = findClosestAnchor(temp);\r\n if (parent[_DYN_LENGTH /* @min:%2elength */] === 1) {\r\n var firstParent = parent[0];\r\n if (firstParent.href) {\r\n return firstParent.href;\r\n }\r\n else if (firstParent.src) {\r\n return (firstParent.src);\r\n }\r\n }\r\n }\r\n return \"\";\r\n}\r\n/**\r\n * Get click target\r\n * @returns Click target URI\r\n */\r\nexport function getClickTarget(element) {\r\n var clickTarget = \"\";\r\n switch (element[_DYN_TAG_NAME /* @min:%2etagName */]) {\r\n case \"A\":\r\n case \"AREA\":\r\n clickTarget = element.href || \"\";\r\n break;\r\n case \"IMG\":\r\n clickTarget = getImageHref(element);\r\n break;\r\n case \"INPUT\":\r\n var type = element.type;\r\n if (type && (clickCaptureInputTypes[type[_DYN_TO_UPPER_CASE /* @min:%2etoUpperCase */]()])) {\r\n var loc = getLocation() || {};\r\n if (element.form) {\r\n clickTarget = element.form.action || (loc[_DYN_PATHNAME /* @min:%2epathname */] || \"\");\r\n }\r\n else {\r\n clickTarget = loc[_DYN_PATHNAME /* @min:%2epathname */] || \"\";\r\n }\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n return clickTarget;\r\n}\r\n/**\r\n * Execute callback when DOM finish loading\r\n */\r\nexport function onDomLoaded(callback) {\r\n onDomReadyDo(function () {\r\n if (hasDocument() && getDocument().readyState === \"complete\") {\r\n callback();\r\n }\r\n else {\r\n var win = getWindow();\r\n if (win) {\r\n if (win[_DYN_ADD_EVENT_LISTENER /* @min:%2eaddEventListener */]) {\r\n win[_DYN_ADD_EVENT_LISTENER /* @min:%2eaddEventListener */](\"load\", function () {\r\n callback();\r\n }); // NB **not** 'onload'\r\n }\r\n else if (win.attachEvent) {\r\n win.attachEvent(\"onload\", function () {\r\n callback();\r\n }); // IE8\r\n }\r\n }\r\n }\r\n });\r\n}\r\n// use smallest domready ever for IE8. When IE8 is deprecated, use addEventListener('DomContentLoaded')\r\nfunction onDomReadyDo(f) {\r\n /// <summary> fires function f on domRead </summary>\r\n /// <param type='function'>function to call on domRead</param>\r\n var doc = getDocument() || {};\r\n /in/.test(doc.readyState) ? scheduleTimeout(function () {\r\n onDomReadyDo(f);\r\n }, 100) : f.call();\r\n}\r\n/**\r\n * Gets the pageName from the DOM or by calling a override if set.\r\n * @param config - configuration object\r\n * @returns Page name.\r\n */\r\nexport function getPageName(config, overrideValues) {\r\n /// <summary>\r\n /// Gets the pageName from the DOM or by calling a override if set.\r\n /// </summary>\r\n if (overrideValues && overrideValues[_DYN_PAGE_NAME /* @min:%2epageName */]) {\r\n return overrideValues[_DYN_PAGE_NAME /* @min:%2epageName */];\r\n }\r\n else if (config.callback && isFunction(config.callback[_DYN_PAGE_NAME /* @min:%2epageName */])) {\r\n return config.callback[_DYN_PAGE_NAME /* @min:%2epageName */]();\r\n }\r\n else if (config.coreData && config.coreData[_DYN_PAGE_NAME /* @min:%2epageName */]) {\r\n return config.coreData[_DYN_PAGE_NAME /* @min:%2epageName */];\r\n }\r\n else {\r\n var doc = getDocument();\r\n return doc && doc.title || \"\";\r\n }\r\n}\r\n/**\r\n * Sanitize URL values\r\n * @param config - Configuration\r\n * @param location - window.location or document.location\r\n * @returns Flag indicating if an element is market PII.\r\n */\r\nexport function sanitizeUrl(config, location) {\r\n if (!location) {\r\n return null;\r\n }\r\n var url = location.protocol + \"//\" + (location.hostname || location.host) + // location.hostname is not supported on Opera and Opera for Android\r\n (isValueAssigned(location.port) ? \":\" + location.port : \"\") +\r\n location[_DYN_PATHNAME /* @min:%2epathname */];\r\n if (!!config.urlCollectHash) { // false by default\r\n url += (isValueAssigned(location.hash) ? location.hash : \"\");\r\n }\r\n if (!!config.urlCollectQuery) { // false by default\r\n url += (isValueAssigned(location.search) ? location.search : \"\");\r\n }\r\n return url;\r\n}\r\n/**\r\n * Get URI, sanitize the value if configured on\r\n * @param config - Configuration\r\n * @param location - window.location or document.location\r\n * @returns Flag indicating if an element is market PII.\r\n */\r\nexport function getUri(config, location) {\r\n if (config.coreData && config.coreData[_DYN_REQUEST_URI /* @min:%2erequestUri */] && config[_DYN_CORE_DATA /* @min:%2ecoreData */][_DYN_REQUEST_URI /* @min:%2erequestUri */] !== \"\") {\r\n return config.coreData[_DYN_REQUEST_URI /* @min:%2erequestUri */];\r\n }\r\n return sanitizeUrl(config, location);\r\n}\r\n//# sourceMappingURL=DataCollector.js.map"],"names":[],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
|
package/dist-es5/Enums.js
CHANGED
package/dist-es5/common/Utils.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Application Insights JavaScript SDK - Click Analytics, 3.0.2-nightly3.2305-
|
|
2
|
+
* Application Insights JavaScript SDK - Click Analytics, 3.0.2-nightly3.2305-07
|
|
3
3
|
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
@@ -36,7 +36,7 @@ var WebEvent = /** @class */ (function () {
|
|
|
36
36
|
if (!isValueAssigned(event[_DYN_NAME /* @min:%2ename */])) {
|
|
37
37
|
event[_DYN_PAGE_NAME /* @min:%2epageName */] = getPageName(_self[_DYN__CONFIG /* @min:%2e_config */], overrideValues);
|
|
38
38
|
}
|
|
39
|
-
if (!isValueAssigned(event.uri) && hasWindow) {
|
|
39
|
+
if (!isValueAssigned(event.uri) && hasWindow()) {
|
|
40
40
|
event.uri = getUri(_self[_DYN__CONFIG /* @min:%2e_config */], getLocation());
|
|
41
41
|
}
|
|
42
42
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebEvent.js.map","sources":["WebEvent.js"],"sourcesContent":["/**\r\n* @copyright Microsoft 2020\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { getLocation, hasWindow, objExtend } from \"@microsoft/applicationinsights-core-js\";\r\nimport { getPageName, getUri } from \"../DataCollector\";\r\nimport { _DYN_BEHAVIOR, _DYN_BEHAVIOR_VALIDATOR, _DYN_CORE_DATA, _DYN_NAME, _DYN_PAGE_NAME, _DYN_PAGE_TYPE, _DYN_PROPERTIES, _DYN_SET_BASIC_PROPERTIES, _DYN_SET_COMMON_PROPERTIE4, _DYN__BEHAVIOR_META_TAG, _DYN__CONFIG, _DYN__DO_UNLOAD, _DYN__GET_VALID_BEHAVIOR, _DYN__META_TAGS, _DYN__PAGE_TAGS, _DYN__PAGE_TAGS_CALLBACK, _DYN__PAGE_TYPE_META_TAG, _DYN__TRACE_LOGGER } from \"../__DynamicConstants\";\r\nimport { isValueAssigned } from \"../common/Utils\";\r\nvar WebEvent = /** @class */ (function () {\r\n /**\r\n * @param clickAnalyticsPlugin - Click Analytics plugin instance\r\n * @param config - ClickAnalytics configuration object\r\n * @param contentHandler - Content handler\r\n * @param id - Id object\r\n * @param pageTagsCallback - callback methods to get pageTags value\r\n * @param metaTags - Meta tags\r\n * @param traceLogger - Trace logger to log to console.\r\n */\r\n function WebEvent(clickAnalyticsPlugin, config, contentHandler, pageTagsCallback, metaTags, traceLogger) {\r\n dynamicProto(WebEvent, this, function (_self) {\r\n _initDefaults();\r\n function _initDefaults() {\r\n _self[_DYN__PAGE_TAGS /* @min:%2e_pageTags */] = {};\r\n _self._clickAnalyticsPlugin = clickAnalyticsPlugin;\r\n _self[_DYN__CONFIG /* @min:%2e_config */] = config;\r\n _self._contentHandler = contentHandler;\r\n _self[_DYN__PAGE_TAGS_CALLBACK /* @min:%2e_pageTagsCallback */] = pageTagsCallback;\r\n _self[_DYN__META_TAGS /* @min:%2e_metaTags */] = metaTags;\r\n _self[_DYN__TRACE_LOGGER /* @min:%2e_traceLogger */] = traceLogger;\r\n }\r\n _self[_DYN_SET_BASIC_PROPERTIES /* @min:%2esetBasicProperties */] = function (event, overrideValues) {\r\n if (!isValueAssigned(event[_DYN_NAME /* @min:%2ename */])) {\r\n event[_DYN_PAGE_NAME /* @min:%2epageName */] = getPageName(_self[_DYN__CONFIG /* @min:%2e_config */], overrideValues);\r\n }\r\n if (!isValueAssigned(event.uri) && hasWindow) {\r\n event.uri = getUri(_self[_DYN__CONFIG /* @min:%2e_config */], getLocation());\r\n }\r\n };\r\n /**\r\n * Sets common properties for events that are based on the WebEvent schema.\r\n * @param event - The event\r\n */\r\n _self[_DYN_SET_COMMON_PROPERTIE4 /* @min:%2esetCommonProperties */] = function (event, overrideValues) {\r\n _self[_DYN_SET_BASIC_PROPERTIES /* @min:%2esetBasicProperties */](event, overrideValues);\r\n _self._setPageTags(event, overrideValues);\r\n // extract specific meta tags out of the pageTags.metaTags collection. These will go into assigned first class fields in the event.\r\n // the rest will go into pageTags.metaTags collection as is.\r\n _self._pageTypeMetaTag = _getMetaData(_self._metaTags, _self._config[_DYN_CORE_DATA /* @min:%2ecoreData */], \"pageType\");\r\n _self._behaviorMetaTag = _getMetaData(_self._metaTags, _self._config[_DYN_CORE_DATA /* @min:%2ecoreData */], \"behavior\");\r\n if (isValueAssigned(overrideValues[_DYN_PAGE_TYPE /* @min:%2epageType */])) {\r\n event[_DYN_PAGE_TYPE /* @min:%2epageType */] = overrideValues[_DYN_PAGE_TYPE /* @min:%2epageType */];\r\n }\r\n // Only assign if not overriden and meta data is available\r\n if (isValueAssigned(_self._pageTypeMetaTag) && !isValueAssigned(event[_DYN_PAGE_TYPE /* @min:%2epageType */])) {\r\n event[_DYN_PAGE_TYPE /* @min:%2epageType */] = _self[_DYN__PAGE_TYPE_META_TAG /* @min:%2e_pageTypeMetaTag */];\r\n }\r\n };\r\n /**\r\n * Sets pageTags.\r\n * @param event - The event\r\n */\r\n _self._setPageTags = function (event, overrideValues) {\r\n // Prepare the pageTags object that is mostly the same for all events. Event specific pageTags will be added inside event constructors.\r\n if (_self[_DYN__PAGE_TAGS_CALLBACK /* @min:%2e_pageTagsCallback */]) {\r\n _self[_DYN__PAGE_TAGS /* @min:%2e_pageTags */] = objExtend(true, _self[_DYN__PAGE_TAGS /* @min:%2e_pageTags */], _self[_DYN__PAGE_TAGS_CALLBACK /* @min:%2e_pageTagsCallback */]());\r\n }\r\n if (isValueAssigned(overrideValues.pageTags)) {\r\n _self[_DYN__PAGE_TAGS /* @min:%2e_pageTags */] = objExtend(true, _self[_DYN__PAGE_TAGS /* @min:%2e_pageTags */], overrideValues.pageTags);\r\n }\r\n // If metadata is present add it to pageTags property\r\n if (_self[_DYN__META_TAGS /* @min:%2e_metaTags */]) {\r\n _self[_DYN__PAGE_TAGS /* @min:%2e_pageTags */].metaTags = {};\r\n // Remove not supported meta data in pageTags.metaTags\r\n for (var metaTag in _self[_DYN__META_TAGS /* @min:%2e_metaTags */]) {\r\n if (metaTag != \"behavior\" && metaTag != \"market\" && metaTag != \"pageType\") {\r\n _self[_DYN__PAGE_TAGS /* @min:%2e_pageTags */].metaTags[metaTag] = _self[_DYN__META_TAGS /* @min:%2e_metaTags */][metaTag];\r\n }\r\n }\r\n }\r\n // All metadata tags that must be saved as properties have been extracted at this point. Assign pageTags as is.\r\n event[_DYN_PROPERTIES /* @min:%2eproperties */] = event[_DYN_PROPERTIES /* @min:%2eproperties */] || {};\r\n event[_DYN_PROPERTIES /* @min:%2eproperties */][\"pageTags\"] = _self[_DYN__PAGE_TAGS /* @min:%2e_pageTags */];\r\n };\r\n _self._getBehavior = function (overrideValues) {\r\n var behavior;\r\n // If override specified\r\n if (overrideValues && isValueAssigned(overrideValues[_DYN_BEHAVIOR /* @min:%2ebehavior */])) {\r\n behavior = overrideValues[_DYN_BEHAVIOR /* @min:%2ebehavior */];\r\n }\r\n else if (isValueAssigned(_self[_DYN__BEHAVIOR_META_TAG /* @min:%2e_behaviorMetaTag */])) {\r\n // If behavior meta tag available\r\n behavior = _self[_DYN__BEHAVIOR_META_TAG /* @min:%2e_behaviorMetaTag */];\r\n }\r\n return _self[_DYN__GET_VALID_BEHAVIOR /* @min:%2e_getValidBehavior */](behavior);\r\n };\r\n _self[_DYN__GET_VALID_BEHAVIOR /* @min:%2e_getValidBehavior */] = function (behavior) {\r\n return _self._config[_DYN_BEHAVIOR_VALIDATOR /* @min:%2ebehaviorValidator */](behavior);\r\n };\r\n _self[_DYN__DO_UNLOAD /* @min:%2e_doUnload */] = function (unloadCtx, unloadState, asyncCallback) {\r\n _initDefaults();\r\n };\r\n /**\r\n * Get the specified metadata value from the collection\r\n * If overrideValue is specified in the config that takes precedence.\r\n * @param metaTags - Meta data.\r\n * @param coreData - Coredata values from configuration.\r\n * @param metaTagName - Name of the metaTag to get.\r\n * @returns Meta data value\r\n */\r\n function _getMetaData(metaTags, coreData, metaTagName) {\r\n if (coreData && coreData[metaTagName]) {\r\n return coreData[metaTagName];\r\n }\r\n if (metaTags) {\r\n return metaTags[metaTagName];\r\n }\r\n return \"\";\r\n }\r\n });\r\n }\r\n // Fill common PartB fields\r\n WebEvent.prototype.setBasicProperties = function (event, overrideValues) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Sets common properties for events that are based on the WebEvent schema.\r\n * @param event - The event\r\n */\r\n WebEvent.prototype.setCommonProperties = function (event, overrideValues) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Teardown / Unload hook to allow implementations to perform some additional unload operations before the BaseTelemetryPlugin\r\n * finishes it's removal.\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\n WebEvent.prototype._doUnload = function (unloadCtx, unloadState, asyncCallback) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Sets pageTags.\r\n * @param event - The event\r\n */\r\n WebEvent.prototype._setPageTags = function (event, overrideValues) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n WebEvent.prototype._getBehavior = function (overrideValues) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n WebEvent.prototype._getValidBehavior = function (behavior) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n return WebEvent;\r\n}());\r\nexport { WebEvent };\r\n//# sourceMappingURL=WebEvent.js.map"],"names":[],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;yDAmCM,CAAC;;;;;oBACa;AACpB;AACA;AACA"}
|
|
1
|
+
{"version":3,"file":"WebEvent.js.map","sources":["WebEvent.js"],"sourcesContent":["/**\r\n* @copyright Microsoft 2020\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { getLocation, hasWindow, objExtend } from \"@microsoft/applicationinsights-core-js\";\r\nimport { getPageName, getUri } from \"../DataCollector\";\r\nimport { _DYN_BEHAVIOR, _DYN_BEHAVIOR_VALIDATOR, _DYN_CORE_DATA, _DYN_NAME, _DYN_PAGE_NAME, _DYN_PAGE_TYPE, _DYN_PROPERTIES, _DYN_SET_BASIC_PROPERTIES, _DYN_SET_COMMON_PROPERTIE4, _DYN__BEHAVIOR_META_TAG, _DYN__CONFIG, _DYN__DO_UNLOAD, _DYN__GET_VALID_BEHAVIOR, _DYN__META_TAGS, _DYN__PAGE_TAGS, _DYN__PAGE_TAGS_CALLBACK, _DYN__PAGE_TYPE_META_TAG, _DYN__TRACE_LOGGER } from \"../__DynamicConstants\";\r\nimport { isValueAssigned } from \"../common/Utils\";\r\nvar WebEvent = /** @class */ (function () {\r\n /**\r\n * @param clickAnalyticsPlugin - Click Analytics plugin instance\r\n * @param config - ClickAnalytics configuration object\r\n * @param contentHandler - Content handler\r\n * @param id - Id object\r\n * @param pageTagsCallback - callback methods to get pageTags value\r\n * @param metaTags - Meta tags\r\n * @param traceLogger - Trace logger to log to console.\r\n */\r\n function WebEvent(clickAnalyticsPlugin, config, contentHandler, pageTagsCallback, metaTags, traceLogger) {\r\n dynamicProto(WebEvent, this, function (_self) {\r\n _initDefaults();\r\n function _initDefaults() {\r\n _self[_DYN__PAGE_TAGS /* @min:%2e_pageTags */] = {};\r\n _self._clickAnalyticsPlugin = clickAnalyticsPlugin;\r\n _self[_DYN__CONFIG /* @min:%2e_config */] = config;\r\n _self._contentHandler = contentHandler;\r\n _self[_DYN__PAGE_TAGS_CALLBACK /* @min:%2e_pageTagsCallback */] = pageTagsCallback;\r\n _self[_DYN__META_TAGS /* @min:%2e_metaTags */] = metaTags;\r\n _self[_DYN__TRACE_LOGGER /* @min:%2e_traceLogger */] = traceLogger;\r\n }\r\n _self[_DYN_SET_BASIC_PROPERTIES /* @min:%2esetBasicProperties */] = function (event, overrideValues) {\r\n if (!isValueAssigned(event[_DYN_NAME /* @min:%2ename */])) {\r\n event[_DYN_PAGE_NAME /* @min:%2epageName */] = getPageName(_self[_DYN__CONFIG /* @min:%2e_config */], overrideValues);\r\n }\r\n if (!isValueAssigned(event.uri) && hasWindow()) {\r\n event.uri = getUri(_self[_DYN__CONFIG /* @min:%2e_config */], getLocation());\r\n }\r\n };\r\n /**\r\n * Sets common properties for events that are based on the WebEvent schema.\r\n * @param event - The event\r\n */\r\n _self[_DYN_SET_COMMON_PROPERTIE4 /* @min:%2esetCommonProperties */] = function (event, overrideValues) {\r\n _self[_DYN_SET_BASIC_PROPERTIES /* @min:%2esetBasicProperties */](event, overrideValues);\r\n _self._setPageTags(event, overrideValues);\r\n // extract specific meta tags out of the pageTags.metaTags collection. These will go into assigned first class fields in the event.\r\n // the rest will go into pageTags.metaTags collection as is.\r\n _self._pageTypeMetaTag = _getMetaData(_self._metaTags, _self._config[_DYN_CORE_DATA /* @min:%2ecoreData */], \"pageType\");\r\n _self._behaviorMetaTag = _getMetaData(_self._metaTags, _self._config[_DYN_CORE_DATA /* @min:%2ecoreData */], \"behavior\");\r\n if (isValueAssigned(overrideValues[_DYN_PAGE_TYPE /* @min:%2epageType */])) {\r\n event[_DYN_PAGE_TYPE /* @min:%2epageType */] = overrideValues[_DYN_PAGE_TYPE /* @min:%2epageType */];\r\n }\r\n // Only assign if not overriden and meta data is available\r\n if (isValueAssigned(_self._pageTypeMetaTag) && !isValueAssigned(event[_DYN_PAGE_TYPE /* @min:%2epageType */])) {\r\n event[_DYN_PAGE_TYPE /* @min:%2epageType */] = _self[_DYN__PAGE_TYPE_META_TAG /* @min:%2e_pageTypeMetaTag */];\r\n }\r\n };\r\n /**\r\n * Sets pageTags.\r\n * @param event - The event\r\n */\r\n _self._setPageTags = function (event, overrideValues) {\r\n // Prepare the pageTags object that is mostly the same for all events. Event specific pageTags will be added inside event constructors.\r\n if (_self[_DYN__PAGE_TAGS_CALLBACK /* @min:%2e_pageTagsCallback */]) {\r\n _self[_DYN__PAGE_TAGS /* @min:%2e_pageTags */] = objExtend(true, _self[_DYN__PAGE_TAGS /* @min:%2e_pageTags */], _self[_DYN__PAGE_TAGS_CALLBACK /* @min:%2e_pageTagsCallback */]());\r\n }\r\n if (isValueAssigned(overrideValues.pageTags)) {\r\n _self[_DYN__PAGE_TAGS /* @min:%2e_pageTags */] = objExtend(true, _self[_DYN__PAGE_TAGS /* @min:%2e_pageTags */], overrideValues.pageTags);\r\n }\r\n // If metadata is present add it to pageTags property\r\n if (_self[_DYN__META_TAGS /* @min:%2e_metaTags */]) {\r\n _self[_DYN__PAGE_TAGS /* @min:%2e_pageTags */].metaTags = {};\r\n // Remove not supported meta data in pageTags.metaTags\r\n for (var metaTag in _self[_DYN__META_TAGS /* @min:%2e_metaTags */]) {\r\n if (metaTag != \"behavior\" && metaTag != \"market\" && metaTag != \"pageType\") {\r\n _self[_DYN__PAGE_TAGS /* @min:%2e_pageTags */].metaTags[metaTag] = _self[_DYN__META_TAGS /* @min:%2e_metaTags */][metaTag];\r\n }\r\n }\r\n }\r\n // All metadata tags that must be saved as properties have been extracted at this point. Assign pageTags as is.\r\n event[_DYN_PROPERTIES /* @min:%2eproperties */] = event[_DYN_PROPERTIES /* @min:%2eproperties */] || {};\r\n event[_DYN_PROPERTIES /* @min:%2eproperties */][\"pageTags\"] = _self[_DYN__PAGE_TAGS /* @min:%2e_pageTags */];\r\n };\r\n _self._getBehavior = function (overrideValues) {\r\n var behavior;\r\n // If override specified\r\n if (overrideValues && isValueAssigned(overrideValues[_DYN_BEHAVIOR /* @min:%2ebehavior */])) {\r\n behavior = overrideValues[_DYN_BEHAVIOR /* @min:%2ebehavior */];\r\n }\r\n else if (isValueAssigned(_self[_DYN__BEHAVIOR_META_TAG /* @min:%2e_behaviorMetaTag */])) {\r\n // If behavior meta tag available\r\n behavior = _self[_DYN__BEHAVIOR_META_TAG /* @min:%2e_behaviorMetaTag */];\r\n }\r\n return _self[_DYN__GET_VALID_BEHAVIOR /* @min:%2e_getValidBehavior */](behavior);\r\n };\r\n _self[_DYN__GET_VALID_BEHAVIOR /* @min:%2e_getValidBehavior */] = function (behavior) {\r\n return _self._config[_DYN_BEHAVIOR_VALIDATOR /* @min:%2ebehaviorValidator */](behavior);\r\n };\r\n _self[_DYN__DO_UNLOAD /* @min:%2e_doUnload */] = function (unloadCtx, unloadState, asyncCallback) {\r\n _initDefaults();\r\n };\r\n /**\r\n * Get the specified metadata value from the collection\r\n * If overrideValue is specified in the config that takes precedence.\r\n * @param metaTags - Meta data.\r\n * @param coreData - Coredata values from configuration.\r\n * @param metaTagName - Name of the metaTag to get.\r\n * @returns Meta data value\r\n */\r\n function _getMetaData(metaTags, coreData, metaTagName) {\r\n if (coreData && coreData[metaTagName]) {\r\n return coreData[metaTagName];\r\n }\r\n if (metaTags) {\r\n return metaTags[metaTagName];\r\n }\r\n return \"\";\r\n }\r\n });\r\n }\r\n // Fill common PartB fields\r\n WebEvent.prototype.setBasicProperties = function (event, overrideValues) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Sets common properties for events that are based on the WebEvent schema.\r\n * @param event - The event\r\n */\r\n WebEvent.prototype.setCommonProperties = function (event, overrideValues) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Teardown / Unload hook to allow implementations to perform some additional unload operations before the BaseTelemetryPlugin\r\n * finishes it's removal.\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\n WebEvent.prototype._doUnload = function (unloadCtx, unloadState, asyncCallback) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Sets pageTags.\r\n * @param event - The event\r\n */\r\n WebEvent.prototype._setPageTags = function (event, overrideValues) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n WebEvent.prototype._getBehavior = function (overrideValues) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n WebEvent.prototype._getValidBehavior = function (behavior) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n return WebEvent;\r\n}());\r\nexport { WebEvent };\r\n//# sourceMappingURL=WebEvent.js.map"],"names":[],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;yDAmCM,CAAC;;;;;oBACa;AACpB;AACA;AACA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Application Insights JavaScript SDK - Click Analytics, 3.0.2-nightly3.2305-
|
|
2
|
+
* Application Insights JavaScript SDK - Click Analytics, 3.0.2-nightly3.2305-07
|
|
3
3
|
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
@@ -23,7 +23,7 @@ var DomContentHandler = /** @class */ (function () {
|
|
|
23
23
|
_self.getMetadata = function () {
|
|
24
24
|
var dataTags = (_self[_DYN__CONFIG /* @min:%2e_config */] || {})[_DYN_DATA_TAGS /* @min:%2edataTags */];
|
|
25
25
|
var metaTags = {};
|
|
26
|
-
if (hasDocument) {
|
|
26
|
+
if (hasDocument()) {
|
|
27
27
|
metaTags = isValueAssigned(dataTags.metaDataPrefix) ? _getMetaDataFromDOM(dataTags[_DYN_CAPTURE_ALL_META_DAT2 /* @min:%2ecaptureAllMetaDataContent */], dataTags[_DYN_META_DATA_PREFIX /* @min:%2emetaDataPrefix */], false) :
|
|
28
28
|
_getMetaDataFromDOM(dataTags[_DYN_CAPTURE_ALL_META_DAT2 /* @min:%2ecaptureAllMetaDataContent */], "", false);
|
|
29
29
|
}
|
|
@@ -186,8 +186,8 @@ var DomContentHandler = /** @class */ (function () {
|
|
|
186
186
|
function _getMetaDataFromDOM(captureAllMetaDataContent, prefix, removePrefix) {
|
|
187
187
|
var metaElements;
|
|
188
188
|
var metaData = {};
|
|
189
|
-
if (hasDocument) {
|
|
190
|
-
metaElements =
|
|
189
|
+
if (hasDocument()) {
|
|
190
|
+
metaElements = getDocument().querySelectorAll("meta");
|
|
191
191
|
for (var i = 0; i < metaElements[_DYN_LENGTH /* @min:%2elength */]; i++) {
|
|
192
192
|
var meta = metaElements[i];
|
|
193
193
|
if (meta[_DYN_NAME /* @min:%2ename */]) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DomContentHandler.js.map","sources":["DomContentHandler.js"],"sourcesContent":["/**\r\n* @copyright Microsoft 2020\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { _throwInternal, getDocument, hasDocument, isNullOrUndefined, objExtend } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strSubstring } from \"@nevware21/ts-utils\";\r\nimport { _DYN_ATTRIBUTES, _DYN_CAPTURE_ALL_META_DAT2, _DYN_CONTENT, _DYN_CONTENT_NAME, _DYN_CUSTOM_DATA_PREFIX, _DYN_DATA_TAGS, _DYN_GET_ATTRIBUTE, _DYN_GET_ELEMENT_CONTENT, _DYN_INDEX_OF, _DYN_LENGTH, _DYN_META_DATA_PREFIX, _DYN_NAME, _DYN_PARENT_DATA_TAG, _DYN_PARENT_ELEMENT, _DYN_PARENT_NODE, _DYN_TAG_NAME, _DYN_USE_DEFAULT_CONTENT_1, _DYN__CONFIG, _DYN__TRACE_LOGGER } from \"../__DynamicConstants\";\r\nimport { isValueAssigned, removeInvalidElements, walkUpDomChainWithElementValidation } from \"../common/Utils\";\r\nvar MAX_CONTENTNAME_LENGTH = 200;\r\nvar DomContentHandler = /** @class */ (function () {\r\n /**\r\n * @param config - ClickAnalytics configuration object\r\n * @param traceLogger - Trace logger to log to console.\r\n */\r\n function DomContentHandler(_config, _traceLogger) {\r\n this._config = _config;\r\n this._traceLogger = _traceLogger;\r\n dynamicProto(DomContentHandler, this, function (_self) {\r\n _self.getMetadata = function () {\r\n var dataTags = (_self[_DYN__CONFIG /* @min:%2e_config */] || {})[_DYN_DATA_TAGS /* @min:%2edataTags */];\r\n var metaTags = {};\r\n if (hasDocument) {\r\n metaTags = isValueAssigned(dataTags.metaDataPrefix) ? _getMetaDataFromDOM(dataTags[_DYN_CAPTURE_ALL_META_DAT2 /* @min:%2ecaptureAllMetaDataContent */], dataTags[_DYN_META_DATA_PREFIX /* @min:%2emetaDataPrefix */], false) :\r\n _getMetaDataFromDOM(dataTags[_DYN_CAPTURE_ALL_META_DAT2 /* @min:%2ecaptureAllMetaDataContent */], \"\", false);\r\n }\r\n return metaTags;\r\n };\r\n _self[_DYN_GET_ELEMENT_CONTENT /* @min:%2egetElementContent */] = function (element) {\r\n if (!element) {\r\n return {};\r\n }\r\n var dataTags = (_self[_DYN__CONFIG /* @min:%2e_config */] || {})[_DYN_DATA_TAGS /* @min:%2edataTags */];\r\n var elementContent = {};\r\n var biBlobValue;\r\n var parentDataTagPrefix;\r\n var dataTagPrefix = dataTags[_DYN_CUSTOM_DATA_PREFIX /* @min:%2ecustomDataPrefix */];\r\n var aiBlobAttributeTag = dataTagPrefix + dataTags.aiBlobAttributeTag;\r\n if (isValueAssigned(dataTags[_DYN_PARENT_DATA_TAG /* @min:%2eparentDataTag */])) {\r\n parentDataTagPrefix = dataTagPrefix + dataTags[_DYN_PARENT_DATA_TAG /* @min:%2eparentDataTag */];\r\n }\r\n if (!_isTracked(element, dataTagPrefix, aiBlobAttributeTag)) {\r\n // capture blob from element or hierarchy\r\n biBlobValue = element[_DYN_GET_ATTRIBUTE /* @min:%2egetAttribute */](aiBlobAttributeTag);\r\n if (biBlobValue) {\r\n try {\r\n elementContent = JSON.parse(biBlobValue);\r\n }\r\n catch (e) {\r\n _throwInternal(_self[_DYN__TRACE_LOGGER /* @min:%2e_traceLogger */], 1 /* eLoggingSeverity.CRITICAL */, 101 /* _eInternalMessageId.CannotParseAiBlobValue */, \"Can not parse \" + biBlobValue);\r\n }\r\n }\r\n else {\r\n // traverse up the DOM to find the closest parent with data-* tag defined\r\n //contentElement = walkUpDomChainWithElementValidation(element, _self._isTracked, dataTagPrefix);\r\n elementContent = objExtend(elementContent, _populateElementContent(element, dataTagPrefix, parentDataTagPrefix, aiBlobAttributeTag));\r\n }\r\n }\r\n else {\r\n elementContent = objExtend(elementContent, _populateElementContentwithDataTag(element, dataTagPrefix, parentDataTagPrefix, aiBlobAttributeTag));\r\n }\r\n removeInvalidElements(elementContent);\r\n if (parentDataTagPrefix) {\r\n elementContent = objExtend(elementContent, _getParentDetails(element, elementContent, dataTagPrefix, aiBlobAttributeTag));\r\n }\r\n return elementContent;\r\n };\r\n /**\r\n * Capture current level Element content\r\n */\r\n function _captureElementContentWithDataTag(contentElement, elementContent, dataTagPrefix) {\r\n for (var i = 0, attrib; i < contentElement.attributes[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n attrib = contentElement[_DYN_ATTRIBUTES /* @min:%2eattributes */][i];\r\n if (attrib.name[_DYN_INDEX_OF /* @min:%2eindexOf */](dataTagPrefix) !== 0) {\r\n continue;\r\n }\r\n var attribName = attrib[_DYN_NAME /* @min:%2ename */].replace(dataTagPrefix, \"\");\r\n elementContent[attribName] = attrib.value;\r\n }\r\n }\r\n /**\r\n * Walk Up the DOM to capture Element content\r\n */\r\n function _walkUpDomChainCaptureData(el, elementContent, dataTagPrefix, parentDataTagPrefix, aiBlobAttributeTag) {\r\n var element = el;\r\n var parentDataTagFound = false;\r\n var elementLevelFlag = false; // Use this flag to capture 'id' only at the incoming html element level.\r\n while (!isNullOrUndefined(element) && !isNullOrUndefined(element[_DYN_ATTRIBUTES /* @min:%2eattributes */])) {\r\n var attributes = element[_DYN_ATTRIBUTES /* @min:%2eattributes */];\r\n for (var i = 0; i < attributes[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n var attrib = attributes[i];\r\n if (attrib.name[_DYN_INDEX_OF /* @min:%2eindexOf */](dataTagPrefix) !== 0) {\r\n continue;\r\n }\r\n if (attrib.name[_DYN_INDEX_OF /* @min:%2eindexOf */](parentDataTagPrefix) === 0) {\r\n parentDataTagFound = true;\r\n }\r\n // Todo handle blob data\r\n if (attrib.name[_DYN_INDEX_OF /* @min:%2eindexOf */](aiBlobAttributeTag) === 0) {\r\n continue;\r\n }\r\n var attribName = attrib[_DYN_NAME /* @min:%2ename */].replace(dataTagPrefix, \"\");\r\n if (elementLevelFlag && attribName === \"id\") {\r\n continue; // skip capturing id if not at the first level.\r\n }\r\n if (!isValueAssigned(elementContent[attribName])) {\r\n elementContent[attribName] = attrib.value;\r\n }\r\n }\r\n // break after current level;\r\n if (parentDataTagFound) {\r\n break;\r\n }\r\n elementLevelFlag = true; // after the initial level set this flag to true.\r\n element = element[_DYN_PARENT_NODE /* @min:%2eparentNode */];\r\n }\r\n }\r\n /**\r\n * Capture Element content along with Data Tag attributes and values\r\n */\r\n function _populateElementContent(element, dataTagPrefix, parentDataTagPrefix, aiBlobAttributeTag) {\r\n var elementContent = {};\r\n if (!element) {\r\n return elementContent;\r\n }\r\n var htmlContent = _getHtmlIdAndContentName(element);\r\n elementContent = {\r\n id: htmlContent.id || \"\",\r\n contentName: htmlContent[_DYN_CONTENT_NAME /* @min:%2econtentName */] || \"\"\r\n };\r\n if (isValueAssigned(parentDataTagPrefix)) {\r\n _walkUpDomChainCaptureData(element, elementContent, dataTagPrefix, parentDataTagPrefix, aiBlobAttributeTag);\r\n }\r\n // Validate to ensure the minimum required field 'id' or 'contentName' is present.\r\n // The content schema defines id, aN and sN as required fields. However,\r\n // requiring these fields would result in majority of adopter's content from being collected.\r\n // Just throw a warning and continue collection.\r\n if (!elementContent.id && !elementContent[_DYN_CONTENT_NAME /* @min:%2econtentName */]) {\r\n _throwInternal(_traceLogger, 2 /* eLoggingSeverity.WARNING */, 102 /* _eInternalMessageId.InvalidContentBlob */, \"Invalid content blob. Missing required attributes (id, contentName. \" +\r\n \" Content information will still be collected!\");\r\n }\r\n return elementContent;\r\n }\r\n /**\r\n * Capture Element content along with Data Tag attributes and values\r\n */\r\n function _populateElementContentwithDataTag(element, dataTagPrefix, parentDataTagPrefix, aiBlobAttributeTag) {\r\n var dataTags = (_self[_DYN__CONFIG /* @min:%2e_config */] || {})[_DYN_DATA_TAGS /* @min:%2edataTags */];\r\n var elementContent = {};\r\n if (!element) {\r\n return elementContent;\r\n }\r\n var htmlContent = _getHtmlIdAndContentName(element);\r\n if (isValueAssigned(parentDataTagPrefix)) {\r\n _walkUpDomChainCaptureData(element, elementContent, dataTagPrefix, parentDataTagPrefix, aiBlobAttributeTag);\r\n }\r\n else {\r\n _captureElementContentWithDataTag(element, elementContent, dataTagPrefix);\r\n }\r\n if (dataTags[_DYN_USE_DEFAULT_CONTENT_1 /* @min:%2euseDefaultContentNameOrId */]) {\r\n if (!isValueAssigned(elementContent.id)) {\r\n elementContent.id = htmlContent.id || \"\";\r\n }\r\n elementContent[_DYN_CONTENT_NAME /* @min:%2econtentName */] = htmlContent[_DYN_CONTENT_NAME /* @min:%2econtentName */] || \"\";\r\n }\r\n // Validate to ensure the minimum required field 'id' or 'contentName' is present.\r\n // The content schema defines id, aN and sN as required fields. However,\r\n // requiring these fields would result in majority of adopter's content from being collected.\r\n // Just throw a warning and continue collection.\r\n if (!elementContent.id && !elementContent[_DYN_CONTENT_NAME /* @min:%2econtentName */]) {\r\n _throwInternal(_traceLogger, 2 /* eLoggingSeverity.WARNING */, 102 /* _eInternalMessageId.InvalidContentBlob */, \"Invalid content blob. Missing required attributes (id, contentName. \" +\r\n \" Content information will still be collected!\");\r\n }\r\n return elementContent;\r\n }\r\n /**\r\n * Retrieve a specified metadata tag value from the DOM.\r\n * @param captureAllMetaDataContent - Flag to capture all metadata content\r\n * @param prefix - Prefix to search the metatags with.\r\n * @param removePrefix - Specifies if the prefix must be excluded from key names in the returned collection.\r\n * @returns Metadata collection/property bag\r\n */\r\n function _getMetaDataFromDOM(captureAllMetaDataContent, prefix, removePrefix) {\r\n var metaElements;\r\n var metaData = {};\r\n if (hasDocument) {\r\n metaElements = document.querySelectorAll(\"meta\");\r\n for (var i = 0; i < metaElements[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n var meta = metaElements[i];\r\n if (meta[_DYN_NAME /* @min:%2ename */]) {\r\n if (captureAllMetaDataContent || meta.name[_DYN_INDEX_OF /* @min:%2eindexOf */](prefix) === 0) {\r\n var name_1 = removePrefix ? meta[_DYN_NAME /* @min:%2ename */].replace(prefix, \"\") : meta[_DYN_NAME /* @min:%2ename */];\r\n metaData[name_1] = meta[_DYN_CONTENT /* @min:%2econtent */];\r\n }\r\n }\r\n }\r\n }\r\n return metaData;\r\n }\r\n /**\r\n * Gets the default content name.\r\n * @param element - An html element\r\n * @param useDefaultContentNameOrId - Flag indicating if an element is market PII.\r\n * @returns Content name\r\n */\r\n function _getDefaultContentName(element, useDefaultContentName) {\r\n if (useDefaultContentName === false || !element[_DYN_TAG_NAME /* @min:%2etagName */]) {\r\n return \"\";\r\n }\r\n var doc = getDocument() || {};\r\n var contentName;\r\n switch (element[_DYN_TAG_NAME /* @min:%2etagName */]) {\r\n case \"A\":\r\n contentName = doc.all ? element.innerText || element.innerHTML : element.text || element.innerHTML;\r\n break;\r\n case \"IMG\":\r\n case \"AREA\":\r\n contentName = element.alt;\r\n break;\r\n default:\r\n contentName = element.value || element[_DYN_NAME /* @min:%2ename */] || element.alt || element.innerText || element.id;\r\n }\r\n return strSubstring(contentName, 0, MAX_CONTENTNAME_LENGTH);\r\n }\r\n /**\r\n * Check if the user wants to track the element, which means if the element has any tags with data-* or customDataPrefix\r\n * @param element - An html element\r\n * @returns true if any data-* exist, otherwise return false\r\n */\r\n function _isTracked(element, dataTag, aiBlobAttributeTag) {\r\n var attrs = element[_DYN_ATTRIBUTES /* @min:%2eattributes */];\r\n var dataTagFound = false;\r\n for (var i = 0; i < attrs[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n var attributeName = attrs[i][_DYN_NAME /* @min:%2ename */];\r\n if (attributeName === aiBlobAttributeTag) {\r\n // ignore if the attribute name is equal to aiBlobAttributeTag\r\n return false;\r\n }\r\n else if (attributeName[_DYN_INDEX_OF /* @min:%2eindexOf */](dataTag) === 0) {\r\n dataTagFound = true;\r\n }\r\n }\r\n return dataTagFound;\r\n }\r\n function _getHtmlIdAndContentName(element) {\r\n var _a;\r\n var dataTags = (_self[_DYN__CONFIG /* @min:%2e_config */] || {})[_DYN_DATA_TAGS /* @min:%2edataTags */];\r\n var callback = (_self[_DYN__CONFIG /* @min:%2e_config */] || {}).callback;\r\n var htmlContent = {};\r\n if (!element) {\r\n return htmlContent;\r\n }\r\n if (dataTags[_DYN_USE_DEFAULT_CONTENT_1 /* @min:%2euseDefaultContentNameOrId */]) {\r\n var customizedContentName = callback[_DYN_CONTENT_NAME /* @min:%2econtentName */] ? callback[_DYN_CONTENT_NAME /* @min:%2econtentName */](element, dataTags[_DYN_USE_DEFAULT_CONTENT_1 /* @min:%2euseDefaultContentNameOrId */]) : \"\";\r\n var defaultContentName = _getDefaultContentName(element, dataTags[_DYN_USE_DEFAULT_CONTENT_1 /* @min:%2euseDefaultContentNameOrId */]);\r\n htmlContent = (_a = {\r\n id: element.id\r\n },\r\n _a[_DYN_CONTENT_NAME /* @min:contentName */] = customizedContentName || defaultContentName || element[_DYN_GET_ATTRIBUTE /* @min:%2egetAttribute */](\"alt\"),\r\n _a);\r\n }\r\n return htmlContent;\r\n }\r\n /**\r\n * Computes the parentId of a given element.\r\n * @param element - An html element\r\n * @returns An object containing the closest parentId , can be empty if nothing was found\r\n */\r\n function _getParentDetails(element, elementContent, dataTagPrefix, aiBlobAttributeTag) {\r\n var parentId = elementContent[\"parentid\"];\r\n var parentName = elementContent[\"parentname\"];\r\n var parentInfo = {};\r\n if (parentId || parentName || !element) {\r\n return parentInfo;\r\n }\r\n return _populateParentInfo(element, dataTagPrefix, aiBlobAttributeTag);\r\n }\r\n /**\r\n * Check if parent info already set up, if so take and put into content, if not walk up the DOM to find correct info\r\n * @param element - An html element that the user wants to track\r\n * @returns An object containing the parent info, can be empty if nothing was found\r\n */\r\n function _populateParentInfo(element, dataTagPrefix, aiBlobAttributeTag) {\r\n var parentInfo = {};\r\n var parentId;\r\n // if the user does not set up parent info, walk to the DOM, find the closest parent element (with tags) and populate the info\r\n var closestParentElement = walkUpDomChainWithElementValidation(element[_DYN_PARENT_ELEMENT /* @min:%2eparentElement */], _isTracked, dataTagPrefix);\r\n if (closestParentElement) {\r\n var dataAttr = closestParentElement[_DYN_GET_ATTRIBUTE /* @min:%2egetAttribute */](aiBlobAttributeTag) || element[aiBlobAttributeTag];\r\n if (dataAttr) {\r\n try {\r\n var telemetryObject = JSON.parse(dataAttr);\r\n }\r\n catch (e) {\r\n _throwInternal(_traceLogger, 1 /* eLoggingSeverity.CRITICAL */, 101 /* _eInternalMessageId.CannotParseAiBlobValue */, \"Can not parse \" + dataAttr);\r\n }\r\n if (telemetryObject) {\r\n parentId = telemetryObject.id;\r\n }\r\n }\r\n else {\r\n parentId = closestParentElement[_DYN_GET_ATTRIBUTE /* @min:%2egetAttribute */](dataTagPrefix + \"id\");\r\n }\r\n }\r\n if (parentId) {\r\n parentInfo[\"parentid\"] = parentId;\r\n }\r\n else {\r\n var htmlContent = _getHtmlIdAndContentName(element[_DYN_PARENT_ELEMENT /* @min:%2eparentElement */]);\r\n parentInfo[\"parentid\"] = htmlContent.id;\r\n parentInfo[\"parentname\"] = htmlContent[_DYN_CONTENT_NAME /* @min:%2econtentName */];\r\n }\r\n return parentInfo;\r\n }\r\n });\r\n }\r\n /**\r\n * Collect metatags from DOM.\r\n * Collect data from meta tags.\r\n * @returns {object} - Metatags collection/property bag\r\n */\r\n DomContentHandler.prototype.getMetadata = 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 * Collect data-* attributes for the given element.\r\n * All attributes with data-* prefix or user provided customDataPrefix are collected.'data-*' prefix is removed from the key name.\r\n * @param element - The element from which attributes need to be collected.\r\n * @returns String representation of the Json array of element attributes\r\n */\r\n DomContentHandler.prototype.getElementContent = function (element) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n return DomContentHandler;\r\n}());\r\nexport { DomContentHandler };\r\n//# sourceMappingURL=DomContentHandler.js.map"],"names":[],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;kEAkBM,CAAC;;;;;6BACsB;AAC7B;AACA;AACA"}
|
|
1
|
+
{"version":3,"file":"DomContentHandler.js.map","sources":["DomContentHandler.js"],"sourcesContent":["/**\r\n* @copyright Microsoft 2020\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { _throwInternal, getDocument, hasDocument, isNullOrUndefined, objExtend } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strSubstring } from \"@nevware21/ts-utils\";\r\nimport { _DYN_ATTRIBUTES, _DYN_CAPTURE_ALL_META_DAT2, _DYN_CONTENT, _DYN_CONTENT_NAME, _DYN_CUSTOM_DATA_PREFIX, _DYN_DATA_TAGS, _DYN_GET_ATTRIBUTE, _DYN_GET_ELEMENT_CONTENT, _DYN_INDEX_OF, _DYN_LENGTH, _DYN_META_DATA_PREFIX, _DYN_NAME, _DYN_PARENT_DATA_TAG, _DYN_PARENT_ELEMENT, _DYN_PARENT_NODE, _DYN_TAG_NAME, _DYN_USE_DEFAULT_CONTENT_1, _DYN__CONFIG, _DYN__TRACE_LOGGER } from \"../__DynamicConstants\";\r\nimport { isValueAssigned, removeInvalidElements, walkUpDomChainWithElementValidation } from \"../common/Utils\";\r\nvar MAX_CONTENTNAME_LENGTH = 200;\r\nvar DomContentHandler = /** @class */ (function () {\r\n /**\r\n * @param config - ClickAnalytics configuration object\r\n * @param traceLogger - Trace logger to log to console.\r\n */\r\n function DomContentHandler(_config, _traceLogger) {\r\n this._config = _config;\r\n this._traceLogger = _traceLogger;\r\n dynamicProto(DomContentHandler, this, function (_self) {\r\n _self.getMetadata = function () {\r\n var dataTags = (_self[_DYN__CONFIG /* @min:%2e_config */] || {})[_DYN_DATA_TAGS /* @min:%2edataTags */];\r\n var metaTags = {};\r\n if (hasDocument()) {\r\n metaTags = isValueAssigned(dataTags.metaDataPrefix) ? _getMetaDataFromDOM(dataTags[_DYN_CAPTURE_ALL_META_DAT2 /* @min:%2ecaptureAllMetaDataContent */], dataTags[_DYN_META_DATA_PREFIX /* @min:%2emetaDataPrefix */], false) :\r\n _getMetaDataFromDOM(dataTags[_DYN_CAPTURE_ALL_META_DAT2 /* @min:%2ecaptureAllMetaDataContent */], \"\", false);\r\n }\r\n return metaTags;\r\n };\r\n _self[_DYN_GET_ELEMENT_CONTENT /* @min:%2egetElementContent */] = function (element) {\r\n if (!element) {\r\n return {};\r\n }\r\n var dataTags = (_self[_DYN__CONFIG /* @min:%2e_config */] || {})[_DYN_DATA_TAGS /* @min:%2edataTags */];\r\n var elementContent = {};\r\n var biBlobValue;\r\n var parentDataTagPrefix;\r\n var dataTagPrefix = dataTags[_DYN_CUSTOM_DATA_PREFIX /* @min:%2ecustomDataPrefix */];\r\n var aiBlobAttributeTag = dataTagPrefix + dataTags.aiBlobAttributeTag;\r\n if (isValueAssigned(dataTags[_DYN_PARENT_DATA_TAG /* @min:%2eparentDataTag */])) {\r\n parentDataTagPrefix = dataTagPrefix + dataTags[_DYN_PARENT_DATA_TAG /* @min:%2eparentDataTag */];\r\n }\r\n if (!_isTracked(element, dataTagPrefix, aiBlobAttributeTag)) {\r\n // capture blob from element or hierarchy\r\n biBlobValue = element[_DYN_GET_ATTRIBUTE /* @min:%2egetAttribute */](aiBlobAttributeTag);\r\n if (biBlobValue) {\r\n try {\r\n elementContent = JSON.parse(biBlobValue);\r\n }\r\n catch (e) {\r\n _throwInternal(_self[_DYN__TRACE_LOGGER /* @min:%2e_traceLogger */], 1 /* eLoggingSeverity.CRITICAL */, 101 /* _eInternalMessageId.CannotParseAiBlobValue */, \"Can not parse \" + biBlobValue);\r\n }\r\n }\r\n else {\r\n // traverse up the DOM to find the closest parent with data-* tag defined\r\n //contentElement = walkUpDomChainWithElementValidation(element, _self._isTracked, dataTagPrefix);\r\n elementContent = objExtend(elementContent, _populateElementContent(element, dataTagPrefix, parentDataTagPrefix, aiBlobAttributeTag));\r\n }\r\n }\r\n else {\r\n elementContent = objExtend(elementContent, _populateElementContentwithDataTag(element, dataTagPrefix, parentDataTagPrefix, aiBlobAttributeTag));\r\n }\r\n removeInvalidElements(elementContent);\r\n if (parentDataTagPrefix) {\r\n elementContent = objExtend(elementContent, _getParentDetails(element, elementContent, dataTagPrefix, aiBlobAttributeTag));\r\n }\r\n return elementContent;\r\n };\r\n /**\r\n * Capture current level Element content\r\n */\r\n function _captureElementContentWithDataTag(contentElement, elementContent, dataTagPrefix) {\r\n for (var i = 0, attrib; i < contentElement.attributes[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n attrib = contentElement[_DYN_ATTRIBUTES /* @min:%2eattributes */][i];\r\n if (attrib.name[_DYN_INDEX_OF /* @min:%2eindexOf */](dataTagPrefix) !== 0) {\r\n continue;\r\n }\r\n var attribName = attrib[_DYN_NAME /* @min:%2ename */].replace(dataTagPrefix, \"\");\r\n elementContent[attribName] = attrib.value;\r\n }\r\n }\r\n /**\r\n * Walk Up the DOM to capture Element content\r\n */\r\n function _walkUpDomChainCaptureData(el, elementContent, dataTagPrefix, parentDataTagPrefix, aiBlobAttributeTag) {\r\n var element = el;\r\n var parentDataTagFound = false;\r\n var elementLevelFlag = false; // Use this flag to capture 'id' only at the incoming html element level.\r\n while (!isNullOrUndefined(element) && !isNullOrUndefined(element[_DYN_ATTRIBUTES /* @min:%2eattributes */])) {\r\n var attributes = element[_DYN_ATTRIBUTES /* @min:%2eattributes */];\r\n for (var i = 0; i < attributes[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n var attrib = attributes[i];\r\n if (attrib.name[_DYN_INDEX_OF /* @min:%2eindexOf */](dataTagPrefix) !== 0) {\r\n continue;\r\n }\r\n if (attrib.name[_DYN_INDEX_OF /* @min:%2eindexOf */](parentDataTagPrefix) === 0) {\r\n parentDataTagFound = true;\r\n }\r\n // Todo handle blob data\r\n if (attrib.name[_DYN_INDEX_OF /* @min:%2eindexOf */](aiBlobAttributeTag) === 0) {\r\n continue;\r\n }\r\n var attribName = attrib[_DYN_NAME /* @min:%2ename */].replace(dataTagPrefix, \"\");\r\n if (elementLevelFlag && attribName === \"id\") {\r\n continue; // skip capturing id if not at the first level.\r\n }\r\n if (!isValueAssigned(elementContent[attribName])) {\r\n elementContent[attribName] = attrib.value;\r\n }\r\n }\r\n // break after current level;\r\n if (parentDataTagFound) {\r\n break;\r\n }\r\n elementLevelFlag = true; // after the initial level set this flag to true.\r\n element = element[_DYN_PARENT_NODE /* @min:%2eparentNode */];\r\n }\r\n }\r\n /**\r\n * Capture Element content along with Data Tag attributes and values\r\n */\r\n function _populateElementContent(element, dataTagPrefix, parentDataTagPrefix, aiBlobAttributeTag) {\r\n var elementContent = {};\r\n if (!element) {\r\n return elementContent;\r\n }\r\n var htmlContent = _getHtmlIdAndContentName(element);\r\n elementContent = {\r\n id: htmlContent.id || \"\",\r\n contentName: htmlContent[_DYN_CONTENT_NAME /* @min:%2econtentName */] || \"\"\r\n };\r\n if (isValueAssigned(parentDataTagPrefix)) {\r\n _walkUpDomChainCaptureData(element, elementContent, dataTagPrefix, parentDataTagPrefix, aiBlobAttributeTag);\r\n }\r\n // Validate to ensure the minimum required field 'id' or 'contentName' is present.\r\n // The content schema defines id, aN and sN as required fields. However,\r\n // requiring these fields would result in majority of adopter's content from being collected.\r\n // Just throw a warning and continue collection.\r\n if (!elementContent.id && !elementContent[_DYN_CONTENT_NAME /* @min:%2econtentName */]) {\r\n _throwInternal(_traceLogger, 2 /* eLoggingSeverity.WARNING */, 102 /* _eInternalMessageId.InvalidContentBlob */, \"Invalid content blob. Missing required attributes (id, contentName. \" +\r\n \" Content information will still be collected!\");\r\n }\r\n return elementContent;\r\n }\r\n /**\r\n * Capture Element content along with Data Tag attributes and values\r\n */\r\n function _populateElementContentwithDataTag(element, dataTagPrefix, parentDataTagPrefix, aiBlobAttributeTag) {\r\n var dataTags = (_self[_DYN__CONFIG /* @min:%2e_config */] || {})[_DYN_DATA_TAGS /* @min:%2edataTags */];\r\n var elementContent = {};\r\n if (!element) {\r\n return elementContent;\r\n }\r\n var htmlContent = _getHtmlIdAndContentName(element);\r\n if (isValueAssigned(parentDataTagPrefix)) {\r\n _walkUpDomChainCaptureData(element, elementContent, dataTagPrefix, parentDataTagPrefix, aiBlobAttributeTag);\r\n }\r\n else {\r\n _captureElementContentWithDataTag(element, elementContent, dataTagPrefix);\r\n }\r\n if (dataTags[_DYN_USE_DEFAULT_CONTENT_1 /* @min:%2euseDefaultContentNameOrId */]) {\r\n if (!isValueAssigned(elementContent.id)) {\r\n elementContent.id = htmlContent.id || \"\";\r\n }\r\n elementContent[_DYN_CONTENT_NAME /* @min:%2econtentName */] = htmlContent[_DYN_CONTENT_NAME /* @min:%2econtentName */] || \"\";\r\n }\r\n // Validate to ensure the minimum required field 'id' or 'contentName' is present.\r\n // The content schema defines id, aN and sN as required fields. However,\r\n // requiring these fields would result in majority of adopter's content from being collected.\r\n // Just throw a warning and continue collection.\r\n if (!elementContent.id && !elementContent[_DYN_CONTENT_NAME /* @min:%2econtentName */]) {\r\n _throwInternal(_traceLogger, 2 /* eLoggingSeverity.WARNING */, 102 /* _eInternalMessageId.InvalidContentBlob */, \"Invalid content blob. Missing required attributes (id, contentName. \" +\r\n \" Content information will still be collected!\");\r\n }\r\n return elementContent;\r\n }\r\n /**\r\n * Retrieve a specified metadata tag value from the DOM.\r\n * @param captureAllMetaDataContent - Flag to capture all metadata content\r\n * @param prefix - Prefix to search the metatags with.\r\n * @param removePrefix - Specifies if the prefix must be excluded from key names in the returned collection.\r\n * @returns Metadata collection/property bag\r\n */\r\n function _getMetaDataFromDOM(captureAllMetaDataContent, prefix, removePrefix) {\r\n var metaElements;\r\n var metaData = {};\r\n if (hasDocument()) {\r\n metaElements = getDocument().querySelectorAll(\"meta\");\r\n for (var i = 0; i < metaElements[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n var meta = metaElements[i];\r\n if (meta[_DYN_NAME /* @min:%2ename */]) {\r\n if (captureAllMetaDataContent || meta.name[_DYN_INDEX_OF /* @min:%2eindexOf */](prefix) === 0) {\r\n var name_1 = removePrefix ? meta[_DYN_NAME /* @min:%2ename */].replace(prefix, \"\") : meta[_DYN_NAME /* @min:%2ename */];\r\n metaData[name_1] = meta[_DYN_CONTENT /* @min:%2econtent */];\r\n }\r\n }\r\n }\r\n }\r\n return metaData;\r\n }\r\n /**\r\n * Gets the default content name.\r\n * @param element - An html element\r\n * @param useDefaultContentNameOrId - Flag indicating if an element is market PII.\r\n * @returns Content name\r\n */\r\n function _getDefaultContentName(element, useDefaultContentName) {\r\n if (useDefaultContentName === false || !element[_DYN_TAG_NAME /* @min:%2etagName */]) {\r\n return \"\";\r\n }\r\n var doc = getDocument() || {};\r\n var contentName;\r\n switch (element[_DYN_TAG_NAME /* @min:%2etagName */]) {\r\n case \"A\":\r\n contentName = doc.all ? element.innerText || element.innerHTML : element.text || element.innerHTML;\r\n break;\r\n case \"IMG\":\r\n case \"AREA\":\r\n contentName = element.alt;\r\n break;\r\n default:\r\n contentName = element.value || element[_DYN_NAME /* @min:%2ename */] || element.alt || element.innerText || element.id;\r\n }\r\n return strSubstring(contentName, 0, MAX_CONTENTNAME_LENGTH);\r\n }\r\n /**\r\n * Check if the user wants to track the element, which means if the element has any tags with data-* or customDataPrefix\r\n * @param element - An html element\r\n * @returns true if any data-* exist, otherwise return false\r\n */\r\n function _isTracked(element, dataTag, aiBlobAttributeTag) {\r\n var attrs = element[_DYN_ATTRIBUTES /* @min:%2eattributes */];\r\n var dataTagFound = false;\r\n for (var i = 0; i < attrs[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n var attributeName = attrs[i][_DYN_NAME /* @min:%2ename */];\r\n if (attributeName === aiBlobAttributeTag) {\r\n // ignore if the attribute name is equal to aiBlobAttributeTag\r\n return false;\r\n }\r\n else if (attributeName[_DYN_INDEX_OF /* @min:%2eindexOf */](dataTag) === 0) {\r\n dataTagFound = true;\r\n }\r\n }\r\n return dataTagFound;\r\n }\r\n function _getHtmlIdAndContentName(element) {\r\n var _a;\r\n var dataTags = (_self[_DYN__CONFIG /* @min:%2e_config */] || {})[_DYN_DATA_TAGS /* @min:%2edataTags */];\r\n var callback = (_self[_DYN__CONFIG /* @min:%2e_config */] || {}).callback;\r\n var htmlContent = {};\r\n if (!element) {\r\n return htmlContent;\r\n }\r\n if (dataTags[_DYN_USE_DEFAULT_CONTENT_1 /* @min:%2euseDefaultContentNameOrId */]) {\r\n var customizedContentName = callback[_DYN_CONTENT_NAME /* @min:%2econtentName */] ? callback[_DYN_CONTENT_NAME /* @min:%2econtentName */](element, dataTags[_DYN_USE_DEFAULT_CONTENT_1 /* @min:%2euseDefaultContentNameOrId */]) : \"\";\r\n var defaultContentName = _getDefaultContentName(element, dataTags[_DYN_USE_DEFAULT_CONTENT_1 /* @min:%2euseDefaultContentNameOrId */]);\r\n htmlContent = (_a = {\r\n id: element.id\r\n },\r\n _a[_DYN_CONTENT_NAME /* @min:contentName */] = customizedContentName || defaultContentName || element[_DYN_GET_ATTRIBUTE /* @min:%2egetAttribute */](\"alt\"),\r\n _a);\r\n }\r\n return htmlContent;\r\n }\r\n /**\r\n * Computes the parentId of a given element.\r\n * @param element - An html element\r\n * @returns An object containing the closest parentId , can be empty if nothing was found\r\n */\r\n function _getParentDetails(element, elementContent, dataTagPrefix, aiBlobAttributeTag) {\r\n var parentId = elementContent[\"parentid\"];\r\n var parentName = elementContent[\"parentname\"];\r\n var parentInfo = {};\r\n if (parentId || parentName || !element) {\r\n return parentInfo;\r\n }\r\n return _populateParentInfo(element, dataTagPrefix, aiBlobAttributeTag);\r\n }\r\n /**\r\n * Check if parent info already set up, if so take and put into content, if not walk up the DOM to find correct info\r\n * @param element - An html element that the user wants to track\r\n * @returns An object containing the parent info, can be empty if nothing was found\r\n */\r\n function _populateParentInfo(element, dataTagPrefix, aiBlobAttributeTag) {\r\n var parentInfo = {};\r\n var parentId;\r\n // if the user does not set up parent info, walk to the DOM, find the closest parent element (with tags) and populate the info\r\n var closestParentElement = walkUpDomChainWithElementValidation(element[_DYN_PARENT_ELEMENT /* @min:%2eparentElement */], _isTracked, dataTagPrefix);\r\n if (closestParentElement) {\r\n var dataAttr = closestParentElement[_DYN_GET_ATTRIBUTE /* @min:%2egetAttribute */](aiBlobAttributeTag) || element[aiBlobAttributeTag];\r\n if (dataAttr) {\r\n try {\r\n var telemetryObject = JSON.parse(dataAttr);\r\n }\r\n catch (e) {\r\n _throwInternal(_traceLogger, 1 /* eLoggingSeverity.CRITICAL */, 101 /* _eInternalMessageId.CannotParseAiBlobValue */, \"Can not parse \" + dataAttr);\r\n }\r\n if (telemetryObject) {\r\n parentId = telemetryObject.id;\r\n }\r\n }\r\n else {\r\n parentId = closestParentElement[_DYN_GET_ATTRIBUTE /* @min:%2egetAttribute */](dataTagPrefix + \"id\");\r\n }\r\n }\r\n if (parentId) {\r\n parentInfo[\"parentid\"] = parentId;\r\n }\r\n else {\r\n var htmlContent = _getHtmlIdAndContentName(element[_DYN_PARENT_ELEMENT /* @min:%2eparentElement */]);\r\n parentInfo[\"parentid\"] = htmlContent.id;\r\n parentInfo[\"parentname\"] = htmlContent[_DYN_CONTENT_NAME /* @min:%2econtentName */];\r\n }\r\n return parentInfo;\r\n }\r\n });\r\n }\r\n /**\r\n * Collect metatags from DOM.\r\n * Collect data from meta tags.\r\n * @returns {object} - Metatags collection/property bag\r\n */\r\n DomContentHandler.prototype.getMetadata = 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 * Collect data-* attributes for the given element.\r\n * All attributes with data-* prefix or user provided customDataPrefix are collected.'data-*' prefix is removed from the key name.\r\n * @param element - The element from which attributes need to be collected.\r\n * @returns String representation of the Json array of element attributes\r\n */\r\n DomContentHandler.prototype.getElementContent = function (element) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n return DomContentHandler;\r\n}());\r\nexport { DomContentHandler };\r\n//# sourceMappingURL=DomContentHandler.js.map"],"names":[],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;kEAkBM,CAAC;;;;;6BACsB;AAC7B;AACA;AACA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@microsoft/applicationinsights-clickanalytics-js",
|
|
3
|
-
"version": "3.0.2-nightly3.2305-
|
|
3
|
+
"version": "3.0.2-nightly3.2305-07",
|
|
4
4
|
"description": "Microsoft Application Insights Click Analytics extension",
|
|
5
5
|
"homepage": "https://github.com/microsoft/ApplicationInsights-JS#readme",
|
|
6
6
|
"author": "Microsoft Application Insights Team",
|
|
@@ -48,9 +48,9 @@
|
|
|
48
48
|
"dependencies": {
|
|
49
49
|
"@microsoft/dynamicproto-js": "^2.0.2",
|
|
50
50
|
"@microsoft/applicationinsights-shims": "3.0.1",
|
|
51
|
-
"@microsoft/applicationinsights-core-js": "3.0.2-nightly3.2305-
|
|
52
|
-
"@microsoft/applicationinsights-common": "3.0.2-nightly3.2305-
|
|
53
|
-
"@microsoft/applicationinsights-properties-js": "3.0.2-nightly3.2305-
|
|
51
|
+
"@microsoft/applicationinsights-core-js": "3.0.2-nightly3.2305-07",
|
|
52
|
+
"@microsoft/applicationinsights-common": "3.0.2-nightly3.2305-07",
|
|
53
|
+
"@microsoft/applicationinsights-properties-js": "3.0.2-nightly3.2305-07",
|
|
54
54
|
"@nevware21/ts-utils": ">= 0.9.5 < 2.x"
|
|
55
55
|
},
|
|
56
56
|
"repository": {
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Application Insights JavaScript SDK - Click Analytics, 3.0.2-nightly3.2305-03
|
|
3
|
-
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
|
-
*/
|
|
5
|
-
"use strict";var o="object",u="undefined",g="prototype",B=Object,y=undefined,R="",H="function",j="object",m="prototype",J="undefined",K="constructor",q="Symbol",$="_polyfill",n="indexOf",F="length",X="value",G="name",Q="slice",_=Object,W=_[m],t=String,r=t[m],e=Array,Y=e[m];function Z(t){return function(n){return typeof n===t}}function nn(n){return W.toString.call(n)}function d(n){return typeof n===J||n===J}function h(n){return null===n||d(n)}function tn(n){return!!n||n!==y}var rn=Z("string"),p=Z(H);function en(n){return!(!n&&h(n)||!n||typeof n!==j)}var b=e.isArray,on=Z("number"),an=Z("boolean"),un=function(n){return!(!n||"[object Error]"!==nn(n))},cn=_.getOwnPropertyDescriptor;function T(n,t){return n&&W.hasOwnProperty.call(n,t)}var fn=_.hasOwn||function(n,t){return T(n,t)||!!cn(n,t)};function C(n,t,r){if(n&&en(n))for(var e in n)if(fn(n,e)&&-1===t.call(r||n,e,n[e]))break}function ln(n){throw new TypeError(n)}var sn=_.freeze,e=function(n){return n};function vn(n){return sn&&C(n,function(n,t){(b(t)||en(t))&&sn(t)}),gn(n)}var gn=sn||e,dn=_.getPrototypeOf||e,e=vn,pn={};C({asyncIterator:0,hasInstance:1,isConcatSpreadable:2,iterator:3,match:4,matchAll:5,replace:6,search:7,species:8,split:9,toPrimitive:10,toStringTag:11,unscopables:12},function(n,t){pn[n]=n,pn[t]=n});var hn,yn=e(pn),mn=t,_n="__tsUtils$gblCfg";function bn(){var n;return(n=(n=(n=typeof globalThis!==J?globalThis:n)||typeof self===J?n:self)||typeof window===J?n:window)||typeof global===J?n:global}function Tn(){var n;return hn||(n=bn()||{},hn=n[_n]=n[_n]||{}),hn}function w(n,t){var r=R;if(un(n))r="{ stack: '"+n.stack+"', message: '"+n.message+"', name: '"+n.name+"'";else try{r=JSON.stringify(n,null,t?on(t)?t:4:y)}catch(e){r=" - "+w(e,t)}return nn(n)+": "+r}function Cn(e,i,o){return function(n){var t,r=n&&n[e]||i&&i[e];if(r||o)return t=arguments,(r||o).apply(n,r?Y[Q].call(t,1):t);ln("'"+mn(e)+"' not defined for "+w(n))}}var wn,xn=Cn("substring",r),kn={};function Pn(n){var t={description:mn(n),toString:function(){return q+"("+n+")"}};return t[$]=!0,t}var c,An={e:"enumerable",c:"configurable",v:X,w:"writable",g:"get",s:"set"},Dn=_.defineProperty;function Nn(n,t,r){var e,i;Dn(n,t,(e=r,(i={})[An.c]=!0,i[An.e]=!0,e.l&&(i.get=function(){return e.l.v},(n=cn(e.l,"v"))&&n.set&&(i.set=function(n){e.l.v=n})),C(e,function(n,t){i[An[n]]=d(t)?i[An[n]]:t}),i))}var En=function(){c=Tn(),En=null};function In(e,i){return t=function(){var n=e,t=i;try{t=n()}catch(r){}return t},r={},En&&En(),r.b=c.lzy,Dn(r,"v",{configurable:!0,get:function(){var n=t();return c.lzy||(Dn(r,"v",{value:n}),r.b&&delete r.b),c.lzy&&r.b!==c.lzy&&(r.b=c.lzy),n}}),r;var t,r}var On,Un,Mn,Sn,i,Ln,zn,Vn="window";function Bn(n){return In(function(){return x(n)||y},y)}function Rn(n){return(On=!On||!1===n||c.lzy&&!On.b?In(bn,null):On).v}function x(n,t){t=Rn(t);return t&&t[n]?t[n]:n===Vn&&Un?Un.v:null}function Hn(){return(Mn=!Mn||c.lzy&&!Mn.b?Bn("document"):Mn).v}function jn(){return(Un=!Un||c.lzy&&!Un.b?Bn(Vn):Un).v}function Jn(n){return In(function(){return i.v?i[n]:y},y)}function Kn(){var n=!i||c&&c.lzy&&!i.b;n&&(i=Bn(q)),Ln&&!n||(Ln=Jn("for")),zn&&!n||(zn=Jn("keyFor")),i.v}function qn(n,t){var r=yn[n];return i&&(!c.lzy||i.b)||Kn(),i.v?i.v[r||n]:t?y:(r=yn[n])?kn[r]=kn[r]||Pn(q+"."+r):void 0}function $n(n,t){return i&&(!c.lzy||i.b)||Kn(),i.v?i.v(n):t?null:Pn(n)}function Fn(n){return Ln&&(!c.lzy||i.b)||Kn(),(Ln.v||function(n){wn||(r=Tn(),wn=r.gblSym=r.gblSym||{k:{},s:{}});var t,r=wn;return fn(r,n)||(t=Pn(n),r.k[n]=t,r.s[t]=mn(n)),r.k[n]})(n)}function Xn(n){return n&&p(n.next)}function Gn(n,t,r){var e;if(n&&(Xn(n)||(n=n[e=qn(3)]?n[e]():null),Xn(n)))try{for(var i=0,o=n.next();!o.done&&-1!==t.call(r||n,o[X],i,n);)i++,o=n.next();n["return"]&&n["return"](o)}catch(a){n["throw"]&&n["throw"](a)}}function k(n,t,r){if(n)for(var e=n[F]>>>0,i=0;i<e&&!(i in n&&-1===t.call(r||n,n[i],i,n));i++);}var Qn,Wn,Yn,Zn,nt=Cn(n,Y),tt=Cn(Q,Y),rt=function(n,t){try{n[m][G]=t}catch(r){}};function et(){return(Date.now||function(){return(new Date).getTime()})()}function it(n){if(!n||typeof n!==j)return!1;var t=!1;if(n!==(Yn=Yn||!jn()||jn())){Wn||(Qn=Function[m].toString,Wn=Qn.call(_));try{var r=dn(n),t=(t=!r)||(r=T(r,K)?r[K]:r)&&typeof r===H&&Qn.call(r)===Wn}catch(e){}}return t}var ot=_.create||function(n){if(!n)return{};var t=typeof n;if(t===j||t===H)return r[m]=n,new r;function r(){}throw new TypeError("Prototype must be an Object or function: "+w(n))},at=Cn(n,r),ut="unref",ct="enabled";(Rn()||{}).Symbol,(Rn()||{}).Reflect;var ft="hasOwnProperty",lt=function(n,t){return(lt=B.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(n,t){for(var r in t)t[ft](r)&&(n[r]=t[r])})(n,t)};function st(n,t){function r(){this.constructor=n}"function"!=typeof t&&null!==t&&ln("Class extends value "+t+" is not a constructor or null"),lt(n,t),n[g]=null===t?ot(t):(r[g]=t[g],new r)}var vt="constructor",P="prototype",gt="function",dt="_dynInstFuncs",pt="_isDynProxy",ht="_dynClass",yt="_dynInstChk",mt=yt,_t="_dfOpts",bt="_unknown_",Tt="__proto__",Ct="_dyn"+Tt,e="__dynProto$Gbl",wt="_dynInstProto",xt="useBaseInst",kt="setInstFuncs",Pt=Object,At=Pt.getPrototypeOf,Dt=Pt.getOwnPropertyNames,t=Rn(),Nt=t[e]||(t[e]={o:((n={})[kt]=!0,n[xt]=!0,n),n:1e3});function Et(n){return n&&(n===Pt[P]||n===Array[P])}function It(n){return Et(n)||n===Function[P]}function Ot(n){if(n){if(At)return At(n);var t=n[Tt]||n[P]||(n[vt]?n[vt][P]:null),r=n[Ct]||t;T(n,Ct)||(delete n[wt],r=n[Ct]=n[wt]||n[Ct],n[wt]=t)}return r}function Ut(n,t){var r=[];if(Dt)r=Dt(n);else for(var e in n)"string"==typeof e&&T(n,e)&&r.push(e);if(r&&0<r.length)for(var i=0;i<r.length;i++)t(r[i])}function Mt(n,t,r){return t!==vt&&typeof n[t]===gt&&(r||T(n,t))}function St(n){ln("DynamicProto: "+n)}function Lt(n,t){for(var r=n.length-1;0<=r;r--)if(n[r]===t)return 1}function zt(n,t){return T(n,P)?n.name||t||bt:((n||{})[vt]||{}).name||t||bt}function A(n,e,t,r){T(n,P)||St("theClass is an invalid class definition.");var i,o,a,u,c,f,l=n[P],s=(function(n){if(!At)return 1;for(var t=[],r=Ot(e);r&&!It(r)&&!Lt(t,r);){if(r===n)return 1;t.push(r),r=Ot(r)}}(l)||St("["+zt(n)+"] not in hierarchy of ["+zt(e)+"]"),null),n=(T(l,ht)?s=l[ht]:(s="_dynCls$"+zt(n,"_")+"$"+Nt.n,Nt.n++,l[ht]=s),A[_t]),v=!!n[xt],g=(v&&r&&r[xt]!==undefined&&(v=!!r[xt]),o={},Ut(i=e,function(n){!o[n]&&Mt(i,n,!1)&&(o[n]=i[n])}),o),v=(t(e,function(n,t,r,o){function e(n,t,r){var e,i=t[r];return i[pt]&&o&&!1!==(e=n[dt]||{})[mt]&&(i=(e[t[ht]]||{})[r]||i),function(){return i.apply(n,arguments)}}for(var i={},a=(Ut(r,function(n){i[n]=e(t,r,n)}),Ot(n)),u=[];a&&!It(a)&&!Lt(u,a);)Ut(a,function(n){!i[n]&&Mt(a,n,!At)&&(i[n]=e(t,a,n))}),u.push(a),a=Ot(a);return i}(l,e,g,v)),!!At&&!!n[kt]);a=l,t=s,u=e,c=g,n=!1!==(v=v&&r?!!r[kt]:v),Et(a)||(l=u[dt]=u[dt]||{},f=l[t]=l[t]||{},!1!==l[mt]&&(l[mt]=!!n),Ut(u,function(n){var r,e,i;Mt(u,n,!1)&&u[n]!==c[n]&&(f[n]=u[n],delete u[n],T(a,n)&&(!a[n]||a[n][pt])||(a[n]=(r=a,e=n,(i=function(){var n,t;return(function(n,t,r,e){var i=null;if(n&&T(r,ht)){var o=n[dt]||{};if((i=(o[r[ht]]||{})[t])||St("Missing ["+t+"] "+gt),!i[yt]&&!1!==o[mt]){for(var a=!T(n,t),u=Ot(n),c=[];a&&u&&!It(u)&&!Lt(c,u);){var f=u[t];if(f){a=f===e;break}c.push(u),u=Ot(u)}try{a&&(n[t]=i),i[yt]=1}catch(l){o[mt]=!1}}}return i}(this,e,r,i)||(typeof(t=(t=r[n=e])===i?Ot(r)[n]:t)!==gt&&St("["+n+"] is not a "+gt),t)).apply(this,arguments)})[pt]=1,i)))}))}A[_t]=Nt.o;var Vt,D="length",Bt="rdOnly",Rt="notify",Ht="throwInternal",jt="setDf",Jt="watch",Kt="logger",qt="apply",N="push",$t="splice",Ft="identifier",Xt="isInitialized",Gt="getPlugin",Qt="time",E="processNext",Wt="createNew",Yt="teardown",Zt="messageId",nr="message",tr="isAsync",rr="diagLog",er="_doTeardown",ir="update",or="getNext",ar="setNextPlugin",ur="userAgent",cr="split",fr="nodeType",lr="replace",I="type",sr="handler",vr="isChildEvt",gr="getCtx",f="setCtx",dr="complete";var pr=undefined,v="",O="core",hr="disabled",yr="extensionConfig",mr="processTelemetry",_r="priority",br="errorToConsole",Tr="warnToConsole",Cr="getPerfMgr",wr="Not dynamic - ",xr=/-([a-z])/g,kr=/([^\w\d_$])/g,Pr=/^(\d+[\w\d_$])/;function Ar(n){return n&&rn(n)?(n=(n=n[lr](xr,function(n,t){return t.toUpperCase()}))[lr](kr,"_"))[lr](Pr,function(n,t){return"_"+t}):n}function Dr(n,t){return!(!n||!t)&&-1!==at(n,t)}function Nr(n,t,r,e,i){var o,a,u;n&&t&&r&&(!1===i&&!d(n[t])||(n[t]=(o=e,u=a=null,p(i=r)?a=i:u=i,function(){var n=arguments;if(u=a?a():u)return u[o][qt](u,n)})))}function Er(){var n=arguments,t=n[0]||{},r=n[D],e=!1,i=1;for(0<r&&an(t)&&(e=t,t=n[i]||{},i++),en(t)||(t={});i<r;i++){var o,a,u,c,f=n[i],l=b(f),s=en(f);for(o in f)(l&&o in f||s&&fn(f,o))&&(a=f[o],u=void 0,e&&a&&((u=b(a))||it(a))&&(c=t[o],u?b(c)||(c=[]):it(c)||(c={}),a=Er(e,c,a)),a!==undefined&&(t[o]=a))}return t}var Ir="location",Or="console",Ur="JSON",Mr=null,Sr=null,Lr=!1;function zr(n){if(n&&Lr){n=x("__mockLocation");if(n)return n}return typeof location===o&&location?location:x(Ir)}function Vr(){return typeof JSON===o&&JSON||null!==x(Ur)}var Br=4294967296,Rr=4294967295,Hr=123456789,jr=987654321,Jr=!1,Kr=Hr,qr=jr;function $r(n){var t,r=0,e=x("crypto")||x("msCrypto");if(0===(r=e&&e.getRandomValues?e.getRandomValues(new Uint32Array(1))[0]&Rr:r)&&(!(e=(Sn=!Sn||c.lzy&&!Sn.b?Bn("navigator"):Sn).v)||e[ur]===Sr&&null!==Mr||(e=((Sr=e[ur])||v).toLowerCase(),Mr=Dr(e,"msie")||Dr(e,"trident/")),Mr)){if(!Jr)try{var i=2147483647&et();(t=(Math.random()*Br^i)+i)<0&&(t>>>=0),Kr=Hr+t&Rr,qr=jr-t&Rr,Jr=!0}catch(o){}e=((qr=36969*(65535&qr)+(qr>>16)&Rr)<<16)+(65535&(Kr=18e3*(65535&Kr)+(Kr>>16)&Rr))>>>0&Rr|0,r=(e>>>=0)&Rr}return 0===r&&(r=Math.floor(Br*Math.random()|0)),n||(r>>>=0),r}var Fr="3.0.2-nightly3.2305-03",Xr="."+function(n){void 0===n&&(n=22);for(var t=$r()>>>0,r=0,e=v;e[D]<n;)e+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[0|63&t]||"",t>>>=6,5==++r&&(t=($r()<<2&4294967295|3&t)>>>0,r=0);return e}(6),Gr=0;function Qr(n){return 1===n[fr]||9===n[fr]||!+n[fr]}function Wr(n,t){return Ar(n+Gr+++((t=void 0!==t&&t)?"."+Fr:v)+Xr)}function Yr(n){var o={id:Wr("_aiData-"+(n||v)+"."+Fr),accept:Qr,get:function(n,t,r,e){var i=n[o.id];return i?i[Ar(t)]:(e&&((i=function(n,t){var r=t[n.id];if(!r){r={};try{Qr(t)&&Nn(t,n.id,{e:!1,v:r})}catch(e){}}return r}(o,n))[Ar(t)]=r),r)},kill:function(n,t){if(n&&n[t])try{delete n[t]}catch(r){}}};return o}function Zr(n){return n&&en(n)&&(n.isVal||n.fb||fn(n,"v")||fn(n,"mrg")||fn(n,"ref")||n.set)}function ne(n,t,r){var e,i=r.dfVal||tn;if(t&&r.fb){var o=r.fb;b(o)||(o=[o]);for(var a=0;a<o[D];a++){var u=o[a],c=t[u];if(i(c)?e=c:n&&(i(c=n.cfg[u])&&(e=c),n.set(n.cfg,mn(u),c)),i(e))break}}return!i(e)&&i(r.v)?r.v:e}function te(r,n,t,e){var i,o,a,u,c,f,l=e,l=Zr(l)?(i=l.isVal,o=l.set,c=l[Bt],a=l.mrg,!(u=l.ref)&&d(u)&&(u=!!a),ne(r,n,l)):e,e=!0,s=n[t];!s&&h(s)||(f=s,e=!1,i&&f!==l&&!i(f)&&(f=l,e=!0),o&&(e=(f=o(f,l,n))===l)),e?f=l&&function v(r,e,n){var i,t=n;return(t=n&&Zr(n)?ne(r,e,n):t)&&(Zr(t)&&(t=v(r,e,t)),b(t)?(i=[])[D]=t[D]:it(t)&&(i={}),i&&(C(t,function(n,t){t&&Zr(t)&&(t=v(r,e,t)),i[n]=t}),t=i)),t}(r,n,l):(it(f)||b(l))&&a&&l&&(it(l)||b(l))&&C(l,function(n,t){te(r,f,n,t)}),r.set(n,t,f),u&&r.ref(n,t),c&&r[Bt](n,t)}var U=Fn("[[ai_dynCfg_1]]"),re=Fn("[[ai_blkDynCfg_1]]"),ee=Fn("[[ai_frcDynCfg_1]]");function ie(n){var t=!1;return!n||(t=n[ee])||n[re]?t:it(n)||b(n)}function oe(n){ln("InvalidAccess:"+n)}var ae=["push","pop","shift","unshift","splice"];function ue(n,t){n=cn(n,t);return n&&n.get}function ce(n,t,r,e,i,o){var a,u,c,f,l,s,v,g;return t&&((a=ue(t,r))&&a[n.prop]?t[r]=e:(c=t,l=e,s={n:f=r,h:[],trk:function(n){n&&n.fn&&(-1===nt(s.h,n)&&s.h[N](n),u.trk(n,s))},clr:function(n){n=nt(s.h,n);-1!==n&&s.h[$t](n,1)}},g=!(v=!0),d[(u=n).prop]={chng:function(){u.add(s)}},Nn(c,s.n,{g:d,s:function(t){var n,r;l!==t&&(d[u.ro]&&!u.upd&&oe("["+f+"] is read-only:"+w(c)),v&&(g=g||ie(l),v=!1),n=g&&d[u.rf],g&&(n?(C(l,function(n){l[n]=t?t[n]:pr}),C(t,function(n,t){ce(u,l,n,t)}),t=l):l&&l[U]&&C(l,function(n){var n=ue(l,n);n&&(n=n[u.prop])&&n.chng()})),t!==l&&(r=t&&ie(t),!n&&r&&fe(u,t),l=t,g=r),u.add(s))}}),(i||o)&&(a=ue(t,r))),i&&(a[n.rf]=i),o&&(a[n.ro]=o)),t;function d(){v&&(g=g||ie(l),l&&!l[U]&&g&&(l=fe(u,l)),v=!1);var n=u.act;return n&&s.trk(n),l}}function fe(r,e){var i,o;return C(e,function(n,t){ce(r,e,n,t)}),e[U]||(Dn(e,U,{get:function(){return r.hdlr}}),i=r,b(o=e)&&k(ae,function(n){var e=o[n];o[n]=function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var r=e[qt](this,n);return fe(i,o),r}})),e}var le="[[ai_";function se(o){var a,n=$n(le+"get"+o.uid+"]]"),t=$n(le+"ro"+o.uid+"]]"),r=$n(le+"rf"+o.uid+"]]"),v=$n(le+"dtl"+o.uid+"]]"),g=null,d=null;function p(t,n){var r=a.act;try{(a.act=t)&&t[v]&&(k(t[v],function(n){n.clr(t)}),t[v]=[]),n({cfg:o.cfg,set:o.set.bind(o),setDf:o[jt].bind(o),ref:o.ref.bind(o),rdOnly:o[Bt].bind(o)})}catch(i){var e=o[Kt];throw e&&e[Ht](1,107,w(i)),i}finally{a.act=r||null}}function h(){if(g){var n,t,r,e,i,o,a,u,c=g,f=(g=null,d&&d.cancel(),d=null,[]);if(k(c,function(t){if(t&&(t[v]&&(k(t[v],function(n){n.clr(t)}),t[v]=null),t.fn))try{p(t,t.fn)}catch(n){f[N](n)}}),g)try{h()}catch(s){f[N](s)}function l(){this.constructor=n,this[G]="AggregationError"}if(0<f[D])throw c="Watcher error(s): ",r=f,Vt||(i=function(n,t){1<t[D]&&(n.errors=t[1])},a=(o=Error)[m][G],e="AggregationError",t=o,(_.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(r,n){C(n,function(n,t){return r[n]=t})})(n=function(){var n=this;try{rt(o,e),(n=o.apply(n,arguments)||n)[G]=e,i(n,arguments)}finally{rt(o,a)}return n},t),l[m]=t[m],n[m]=new l,Vt=n),u=c||"One or more errors occurred.",k(r,function(n,t){u+="\n".concat(t," > ").concat(w(n))}),new Vt(u,r||[])}}return(n={prop:n,ro:t,rf:r,hdlr:o,add:function(n){if(n&&0<n.h[D]){g=g||[],d=d||function(){return t=this,n=y,r=tt(arguments),v=(s=b(n))?n.length:0,g=(0<v?n[0]:s?y:n)||setTimeout,d=(1<v?n[1]:y)||clearTimeout,p=r[0],r[0]=function(){h.dn(),p.apply(t,arguments)},i=function(n){d.call(t,n)},a=!0,u=(e=function(n){if(n){if(n.refresh)return n.refresh(),n;d.call(t,n)}return g.apply(t,r)})(null),(s={cancel:l=function(){u&&i(u),u=null},refresh:f=function(){return u=e(u),a||c(),o},hasRef:function(){return u&&u.hasRef?u.hasRef():a},ref:function(){return a=!0,u&&u.ref&&u.ref(),o}})[ut]=c=function(){return a=!1,u&&u[ut]&&u[ut](),o},s[ct]=!1,Dn(o=s,ct,{get:function(){return!!u},set:function(n){!n&&u&&l(),n&&!u&&f()}}),(h={h:o,dn:function(){u=null}}).h;var t,n,r,e,i,o,a,u,c,f,l,s,v,g,d,p,h}(function(){d=null,h()},0);for(var t=0;t<n.h[D];t++){var r=n.h[t];r&&-1===nt(g,r)&&g[N](r)}}}})[Rt]=h,n.use=p,n.trk=function(n,t){n&&(n=n[v]=n[v]||[],-1===nt(n,t)&&n[N](t))},a=n}function ve(n,t,r){var e,i=function(){if(t){var n=t[U]||t;if(n.cfg&&(n.cfg===t||n.cfg[U]===n))return n}return null}();if(i)return i;var o,i=Wr("dyncfg",!0),r=t&&!1!==r?t:function u(n){var r;return n&&(b(n)?(r=[])[D]=n[D]:it(n)&&(r={}),r)?(C(n,function(n,t){r[n]=u(t)}),r):n}(t),a=((e={uid:null,cfg:r})[Kt]=n,e[Rt]=function(){o[Rt]()},e.set=function(n,t,r){return ce(o,n,t,r)[t]},e[jt]=function(r,n){return n&&C(n,function(n,t){te(a,r,n,t)}),r},e[Jt]=function(n){return r={fn:t=n,rm:function(){r.fn=null,t=null}},o.use(r,t),r;var t,r},e.ref=function(n,t){return ce(o,n,t,n[t],!0)[t]},e[Bt]=function(n,t){return ce(o,n,t,n[t],!1,!0)[t]},e._block=function(r,e){o.use(null,function(n){var t=o.upd;try{d(e)||(o.upd=e),r(n)}finally{o.upd=t}})},e);return Nn(a,"uid",{c:!1,e:!1,w:!1,v:i}),fe(o=se(a),r),a}function ge(n,t,r,e){r=ve(r,n||{},e);return t&&r[jt](r.cfg,t),r}function de(n,t,r){var e,i,o=n[U]||n;return!o.cfg||o.cfg!==n&&o.cfg[U]!==o?(e=r,i=wr+w(n),e?(e[Tr](i),e[Ht](2,108,i)):oe(i),ge(n,null,r)[Jt](t)):o[Jt](t)}function pe(n){return{mrg:!0,v:n}}function he(n){return{isVal:p,v:n||null}}function ye(n){return{isVal:rn,v:mn(n||v)}}var me=null,_e={loggingLevelConsole:0,loggingLevelTelemetry:1,maxMessageLimit:25,enableDebug:!1};function be(n){return n?'"'+n[lr](/\"/g,v)+'"':v}function Te(n,t){var r,e=typeof console!==u?console:x(Or);e&&(r="log",e[n]&&(r=n),p(e[r])&&e[r](t))}we.dataType="MessageData";var Ce=we;function we(n,t,r,e){void 0===r&&(r=!1),this[Zt]=n,this[nr]=(r?"AI: ":"AI (Internal): ")+n;r=v,Vr()&&(r=(Vr()?JSON||x(Ur):null).stringify(e)),n=(t?" message:"+be(t):v)+(e?" props:"+be(r):v);this[nr]+=n}function xe(n,t){return(n||{})[Kt]||new ke(t)}Pe.__ieDyn=1;var ke=Pe;function Pe(i){this.identifier="DiagnosticLogger",this.queue=[];var c,f,l,s,t,v=0,g={};A(Pe,this,function(o){function a(n,t){var r,e;l<=v||(e=!0,r="AITR_"+t[Zt],g[r]?e=!1:g[r]=!0,e&&(n<=f&&(o.queue[N](t),v++,u(1===n?"error":"warn",t)),v===l&&(e=new Ce(23,r="Internal events throttle limit per PageView reached for this app.",!1),o.queue[N](e),1===n?o[br](r):o[Tr](r))))}function u(n,t){var r,e=(r=(r=me)||!0===(i||{}).disableDbgExt?r:me||(e=x("Microsoft"),me=e?e.ApplicationInsights:me))?r.ChromeDbgExt:null;e&&e[rr]&&e[rr](n,t)}t=de(ge(i||{},_e,o).cfg,function(n){n=n.cfg;c=n.loggingLevelConsole,f=n.loggingLevelTelemetry,l=n.maxMessageLimit,s=n.enableDebug}),o.consoleLoggingLevel=function(){return c},o[Ht]=function(n,t,r,e,i){t=new Ce(t,r,i=void 0!==i&&i,e);if(s)throw w(t);r=1===n?br:Tr;d(t[nr])?u("throw"+(1===n?"Critical":"Warning"),t):(i?(e=+t[Zt],!g[e]&&n<=c&&(o[r](t[nr]),g[e]=!0)):n<=c&&o[r](t[nr]),a(n,t))},o[Tr]=function(n){Te("warn",n),u("warning",n)},o[br]=function(n){Te("error",n),u("error",n)},o.resetInternalMessageCount=function(){v=0,g={}},o.logInternalMessage=a,o.unload=function(n){t&&t.rm(),t=null}})}function M(n,t,r,e,i,o){void 0===o&&(o=!1),(n||new ke)[Ht](t,r,e,i,o)}var Ae="ParentContextKey",De="ChildrenContextKey",Ne=(Ee.ParentContextKey="parent",Ee.ChildrenContextKey="childEvts",Ee);function Ee(n,t,r){var e,i=this;i.start=et(),i.name=n,i[tr]=r,i[vr]=function(){return!1},p(t)&&Nn(i,"payload",{g:function(){return!e&&p(t)&&(e=t(),t=null),e}}),i[gr]=function(n){return n?(n===Ee[Ae]||n===Ee[De]?i:i.ctx||{})[n]:null},i[f]=function(n,t){n&&(n===Ee[Ae]?(i[n]||(i[vr]=function(){return!0}),i[n]=t):n===Ee[De]?i[n]=t:(i.ctx=i.ctx||{})[n]=t)},i[dr]=function(){var n=0,t=i[gr](Ee[De]);if(b(t))for(var r=0;r<t[D];r++){var e=t[r];e&&(n+=e[Qt])}i[Qt]=et()-i.start,i.exTime=i[Qt]-n,i[dr]=function(){}}}var Ie="CoreUtils.doPerf";function Oe(n,t,r,e,i){if(n)if(n=n[Cr]?n[Cr]():n){var o,a=void 0,u=n[gr](Ie);try{if(a=n.create(t(),e,i))return u&&a[f]&&(a[f](Ne[Ae],u),u[gr]&&u[f]&&((o=u[gr](Ne[De]))||(o=[],u[f](Ne[De],o)),o[N](a))),n[f](Ie,a),r(a)}catch(c){a&&a[f]&&a[f]("exception",c)}finally{a&&n.fire(a),n[f](Ie,u)}}r()}var Ue=Yr("plugin");function Me(n){return Ue.get(n,"state",{},!0)}function Se(r,e,i){var o=0;return function a(){for(;o<r[D];){var n=r[o++];if(n){var t=n._doUnload||n[er];if(p(t)&&!0===t.call(n,e,i,a))return!0}}}()}var Le="TelemetryPluginChain",ze="_hasRun",Ve="_getTelCtx",Be=0;function Re(n,o,r,t){var e=null,i=[],a=(o=o||ge({},null,r[Kt]),null!==t&&(e=t?function(n,t,r){for(;n;){if(n[Gt]()===r)return n;n=n[or]()}return je([r],t.config||{},t)}(n,r,t):n),{_next:function(){var n,t=e;return e=t?t[or]():null,t||(n=i)&&0<n[D]&&(k(n,function(n){try{n.func.call(n.self,n.args)}catch(t){M(r[Kt],2,73,"Unexpected Exception during onComplete - "+w(t))}}),i=[]),t},ctx:{core:function(){return r},diagLog:function(){return xe(r,o.cfg)},getCfg:function(){return o.cfg},getExtCfg:function(n,t){var e=u(n,!0);return t&&C(t,function(n,t){var r;!h(e[n])||!(r=o.cfg[n])&&h(r)||(e[n]=r),te(o,e,n,t)}),o[jt](e,t)},getConfig:function(n,t,r){void 0===r&&(r=!1);var e,n=u(n,!1),i=o.cfg;return!n||!n[t]&&h(n[t])?!i[t]&&h(i[t])||(e=i[t]):e=n[t],e||!h(e)?e:r},hasNext:function(){return!!e},getNext:function(){return e},setNext:function(n){e=n},iterate:function(n){for(;t=a._next();){var t=t[Gt]();t&&n(t)}},onComplete:function(n,t){for(var r=[],e=2;e<arguments.length;e++)r[e-2]=arguments[e];n&&i[N]({func:n,self:d(t)?a.ctx:t,args:r})}}});function u(n,t){var r,e=null,i=o.cfg;return i&&n&&(r=i[yr],i[yr]=r=!r&&t?{}:r,(r=o.ref(i,yr))&&(e=r[n],r[n]=e=!e&&t?{}:e,e=o.ref(r,n))),e}return a}function He(n,t,r,e){var i=ge(t),o=Re(n,i,r,e),a=o.ctx;return a[E]=function(n){var t=o._next();return t&&t[mr](n,a),!t},a[Wt]=function(n,t){return He((n=b(n=void 0===n?null:n)?je(n,i.cfg,r,t):n)||a[or](),i.cfg,r,t)},a}function je(n,t,r,e){var i,o=null,a=!e;return b(n)&&0<n[D]&&(i=null,k(n,function(n){(a=!a&&e===n||a)&&n&&p(n[mr])&&(n=Je(n,t,r),o=o||n,i&&i._setNext(n),i=n)})),e&&!o?je([e],t,r):o}function Je(c,e,i){var f=null,o=p(c[mr]),a=p(c[ar]),l=c?c[Ft]+"-"+c[_r]+"-"+Be++:"Unknown-0-"+Be++,u={getPlugin:function(){return c},getNext:function(){return f},processTelemetry:function(r,n){var t;s(n=n||(t=(t=c&&p(c[Ve])?c[Ve]():t)||He(u,e,i)),function(n){if(!c||!o)return!1;var t=Me(c);return!t[Yt]&&!t[hr]&&(a&&c[ar](f),c[mr](r,n),!0)},"processTelemetry",function(){return{item:r}},!r.sync)||n[E](r)},unload:function(e,i){s(e,function(){var n,t,r=!1;return c&&(n=Me(c),t=c[O]||n[O],!c||t&&t!==e.core()||n[Yt]||(n[O]=null,n[Yt]=!0,n[Xt]=!1,c[Yt]&&!0===c[Yt](e,i)&&(r=!0))),r},"unload",function(){},i[tr])||e[E](i)},update:function(e,i){s(e,function(){var n,t,r=!1;return c&&(n=Me(c),t=c[O]||n[O],!c||t&&t!==e.core()||n[Yt]||c[ir]&&!0===c[ir](e,i)&&(r=!0)),r},"update",function(){},!1)||e[E](i)},_id:l,_setNext:function(n){f=n}};function s(r,e,i,n,t){var o=!1,a=c?c[Ft]:Le,u=(u=r[ze])||(r[ze]={});return r.setNext(f),c&&Oe(r[O](),function(){return a+":"+i},function(){u[l]=!0;try{var n=f?f._id:v;n&&(u[n]=!1),o=e(r)}catch(t){n=!f||u[f._id];n&&(o=!0),f&&n||M(r[rr](),1,73,"Plugin ["+a+"] failed during "+i+" - "+w(t)+", run flags: "+w(u))}},n,t),o}return gn(u)}function Ke(){var t=[];return{add:function(n){n&&t[N](n)},run:function(r,e){k(t,function(n){try{n(r,e)}catch(t){M(r[rr](),2,73,"Unexpected error calling unload handler - "+w(t))}}),t=[]}}}function qe(){var e=[];return{run:function(r){var n=e;e=[],k(n,function(n){try{(n.rm||n.remove).call(n)}catch(t){M(r,2,73,"Unloading:"+w(t))}})},add:function(n){var t;n&&(t=e,!d(n=n)&&t&&(b(n)?t.push.apply(t,n):Xn(n)||null!==n&&tn(n)&&p(n[qn(3)])?Gn(n,function(n){t.push(n)}):t.push(n)))}}}var $e="getPlugin",Fe=((r={})[yr]={isVal:function(n){return!h(n)},v:{}},r),e=(Xe.__ieDyn=1,Xe);function Xe(){var i,o,l,s,v,a=this;function t(n){var t,n=n=void 0===n?null:n;return n||(t=o||He(null,{},a[O]),n=l&&l[$e]?t[Wt](null,l[$e]):t[Wt](null,l)),n}function c(n,t,r){ge(n,Fe,xe(t)),!r&&t&&(r=t.getProcessTelContext()[or]());var e=l;l&&l[$e]&&(e=l[$e]()),a[O]=t,o=He(r,n,t,e)}function g(){i=!1,a[O]=null,l=o=null,v=qe(),s=Ke()}g(),A(Xe,a,function(f){f.initialize=function(n,t,r,e){c(n,t,e),i=!0},f[Yt]=function(n,t){var r,e,i,o,a=f[O];if(a&&(!n||a===n[O]()))return e=!1,i=n||function c(n,r,t){var e=ge(r.config),i=Re(n,e,r,t),o=i.ctx;return o[E]=function(n){var t=i._next();return t&&t.unload(o,n),!t},o[Wt]=function(n,t){return c((n=b(n=void 0===n?null:n)?je(n,e.cfg,r,t):n)||o[or](),r,t)},o}(null,a,l&&l[$e]?l[$e]():l),o=t||((n={reason:0})[tr]=!1,n),f[er]&&!0===f[er](i,o,u)?r=!0:u(),r;function u(){e||(e=!0,s.run(i,t),v.run(i[rr]()),!0===r&&i[E](o),g())}},f[ir]=function(n,t){var r,e,i,o=f[O];if(o&&(!n||o===n[O]()))return e=!1,i=n||function u(n,r,t){var e=ge(r.config),i=Re(n,e,r,t).ctx;return i[E]=function(t){return i.iterate(function(n){p(n[ir])&&n[ir](i,t)})},i[Wt]=function(n,t){return u((n=b(n=void 0===n?null:n)?je(n,e.cfg,r,t):n)||i[or](),r,t)},i}(null,o,l&&l[$e]?l[$e]():l),f._doUpdate&&!0===f._doUpdate(i,t||{reason:0},a)?r=!0:a(),r;function a(){e||(e=!0,c(i.getCfg(),i.core(),i[or]()))}},Nr(f,"_addUnloadCb",function(){return s},"add"),Nr(f,"_addHook",function(){return v},"add"),Nn(f,"_unloadHooks",{g:function(){return v}})}),a[rr]=function(n){return t(n)[rr]()},a[Xt]=function(){return i},a.setInitialized=function(n){i=n},a[ar]=function(n){l=n},a[E]=function(n,t){t?t[E](n):l&&p(l[mr])&&l[mr](n,null)},a._getTelCtx=t}var Ge="on",Qe="attachEvent",We="addEventListener",Ye="detachEvent",Ze="removeEventListener",ni="events",ti=(Wr("aiEvtPageHide"),Wr("aiEvtPageShow"),/\.[\.]+/g),ri=/[\.]+$/,ei=1,ii=Yr("events"),oi=/^([^.]*)(?:\.(.+)|)/;function ai(n){return n&&n[lr]?n[lr](/^[\s\.]+|(?=[\s\.])[\.\s]+$/g,v):n}function ui(n,t){t&&(r=v,b(t)?(r=v,k(t,function(n){(n=ai(n))&&("."!==n[0]&&(n="."+n),r+=n)})):r=ai(t),r&&("."!==r[0]&&(r="."+r),n=(n||v)+r));var r,t=oi.exec(n||v)||[],n={};return n[I]=t[1],n.ns=(t[2]||v).replace(ti,".").replace(ri,v)[cr](".").sort().join("."),n}function ci(n,t,r){n=ii.get(n,ni,{},r=void 0===r||r);return n[t]||(n[t]=[])}function fi(n,t,r,e){n&&t&&t[I]&&(n[Ze]?n[Ze](t[I],r,e):n[Ye]&&n[Ye](Ge+t[I],r))}function li(n,t,r,e){for(var i=t[D];i--;){var o=t[i];!o||r.ns&&r.ns!==o.evtName.ns||e&&!e(o)||(fi(n,o.evtName,o[sr],o.capture),t[$t](i,1))}}function si(n,t,r,e,i){var o,a;if(void 0===i&&(i=!1),n)try{var u,c=ui(t,e),f=c,l=r,s=i,v=!1;(a=n)&&f&&f[I]&&l&&(a[We]?(a[We](f[I],l,s),v=!0):a[Qe]&&(a[Qe](Ge+f[I],l),v=!0)),v&&ii.accept(n)&&((o={guid:ei++,evtName:c})[sr]=r,o.capture=i,u=o,ci(n,c.type)[N](u))}catch(g){}}function vi(n,t,r,e,i){if(void 0===i&&(i=!1),n)try{var o=ui(t,e),a=!1,u=n,c=function(n){return!((!o.ns||r)&&n[sr]!==r)&&(a=!0)};(f=o)[I]?li(u,ci(u,f[I]),f,c):(C(l=ii.get(u,ni,{}),function(n,t){li(u,t,f,c)}),0===(en(s=l)&&null!==s||ln("objKeys called on non-object"),_.keys(s)[D])&&ii.kill(u,ni)),a||fi(n,o,r,i)}catch(v){}var u,f,c,l,s}var gi="not_specified",di="indexOf",pi="trackPageAction",hi="pageActionPageTags",yi="_doUnload",l="pageName",S="contentName",mi="requestUri",_i="pageType",bi="useDefaultContentNameOrId",Ti="captureAllMetaDataContent",Ci="metaDataPrefix",wi="parentDataTag",xi="behaviorValidator",ki="defaultRightClickBhvr",Pi="length",Ai="tagName",Di="toUpperCase",Ni="pathname",Ei="coreData",Ii="getAttribute",Oi="parentNode",Ui="customDataPrefix",L="name",a="data",Mi="properties",s="actionType",Si="behavior",Li="clickCoordinates",zi="content",Vi="parentId",Bi="capturePageAction",Ri="setCommonProperties",Hi="getElementContent",ji="_getValidBehavior",Ji="_traceLogger",Ki="clickCoordinateX",qi="clickCoordinateY",z="_config",$i="dataTags",Fi="_pageTags",Xi="_pageTagsCallback",Gi="_metaTags",Qi="setBasicProperties",Wi="_behaviorMetaTag",Yi="parentElement",Zi="attributes";function V(n){return!(h(n)||""===n)}function no(n,t){return V(n[Ii](t))}function to(n,t,r){var e=n;if(e){for(;!t(e,r);)if(!(e=e[Oi])||!e[Ii])return null;return e}}function ro(n){return"A"===n.nodeName}var eo={BUTTON:!0,CHECKBOX:!0,RADIO:!0,RESET:!0,SUBMIT:!0};function io(n,t,o,a,u,c){A(io,this,function(e){function i(){e[Fi]={},e._clickAnalyticsPlugin=n,e[z]=t,e._contentHandler=o,e[Xi]=a,e[Gi]=u,e[Ji]=c}function r(n,t,r){return t&&t[r]?t[r]:n?n[r]:""}i(),e[Qi]=function(n,t){var r;V(n[L])||(n[l]=(r=e[z],t&&t[l]?t[l]:r.callback&&p(r.callback[l])?r.callback[l]():r.coreData&&r.coreData[l]?r.coreData[l]:(t=Hn())&&t.title||"")),!V(n.uri)&&function(){return!!jn()}&&(n.uri=function(n,t){if(n.coreData&&n.coreData[mi]&&""!==n[Ei][mi])return n.coreData[mi];if(!t)return null;var r=t.protocol+"//"+(t.hostname||t.host)+(V(t.port)?":"+t.port:"")+t[Ni];return n.urlCollectHash&&(r+=V(t.hash)?t.hash:""),n.urlCollectQuery&&(r+=V(t.search)?t.search:""),r}(e[z],zr()))},e[Ri]=function(n,t){e[Qi](n,t),e._setPageTags(n,t),e._pageTypeMetaTag=r(e._metaTags,e._config[Ei],"pageType"),e._behaviorMetaTag=r(e._metaTags,e._config[Ei],"behavior"),V(t[_i])&&(n[_i]=t[_i]),V(e._pageTypeMetaTag)&&!V(n[_i])&&(n[_i]=e._pageTypeMetaTag)},e._setPageTags=function(n,t){if(e[Xi]&&(e[Fi]=Er(!0,e[Fi],e[Xi]())),V(t.pageTags)&&(e[Fi]=Er(!0,e[Fi],t.pageTags)),e[Gi])for(var r in e[Fi].metaTags={},e[Gi])"behavior"!=r&&"market"!=r&&"pageType"!=r&&(e[Fi].metaTags[r]=e[Gi][r]);n[Mi]=n[Mi]||{},n[Mi].pageTags=e[Fi]},e._getBehavior=function(n){var t;return n&&V(n[Si])?t=n[Si]:V(e[Wi])&&(t=e[Wi]),e[ji](t)},e[ji]=function(n){return e._config[xi](n)},e[yi]=function(n,t,r){i()}})}io.__ieDyn=1,st(uo,oo=io),uo.__ieDyn=1;var oo,ao=uo;function uo(n,t,r,e,i,o){n=oo.call(this,n,t,r,e,i,o)||this;return A(uo,n,function(u,n){function e(n,t,r){V(r)&&(n[t]=r)}u[pi]=function(n,t){var r={name:"Microsoft.ApplicationInsights.{0}.Event",baseType:"EventData",ext:{web:{}},data:{},baseData:{}};e(r.baseData,"name",n[L]),e(r[a],"baseTypeSource","ClickEvent"),e(r[a],"uri",n.uri),e(r.data,"pageType",n[_i]),e(r[a],"properties",n[Mi]),e(r[a],"actionType",n[s]),e(r[a],"behavior",n[Si]),e(r[a],"clickCoordinates",n[Li]),e(r[a],"content",n[zi]),e(r[a],"targetUri",n.targetUri),e(r[a],"timeToAction",n.timeToAction),e(r[a],"refUri",n.refUri),e(r.data,"pageName",n[l]),e(r[a],"parentId",n[Vi]),t&&C(t,function(n,t){r[a][n]||e(r[a],n,t)}),u._clickAnalyticsPlugin.core.track(r)},u[Bi]=function(n,t,r,e){t=V(t)?t:{};var i,o={name:""},r=V(r)?r:{},a=(u[Ri](o,t),o[Si]=u._getBehavior(t),{});e&&(o.behavior=u._config[ki]),n&&(o.targetUri=function(t){var n="";switch(t[Ai]){case"A":case"AREA":n=t.href||"";break;case"IMG":n=function(){if(t){var n=to(t,ro);if(1===n[Pi]){n=n[0];if(n.href)return n.href;if(n.src)return n.src}}return""}();break;case"INPUT":var r=t.type;r&&eo[r[Di]()]&&(r=zr()||{},n=t.form?t.form.action||r[Ni]||"":r[Ni]||"")}return n}(n),(a=u._contentHandler[Hi](n)).bhvr&&!V(t[Si])&&(e="bhvr",(n=a)&&n[e]&&(i=n[e],delete n[e]),e=i,o[Si]=u[ji](e)),V(a.id)||V(a[S])||M(u[Ji],2,102,"Missing attributes id or contentName in click event. Click event information will still be collected!")),o.name=a.id||a[S]||gi,o[Vi]=a.parentid||a.parentName||gi,V(t[s])&&(o[s]=t[s]),V(t[Ki])&&V(t[qi])&&(o[Li]=t[Ki]+"X"+t[qi]),(n=a)&&(delete n.id,delete n.parentid,delete n.parentname,u._config&&u._config.dataTags&&V(u._config.dataTags[wi])&&delete n[u[z][$i].parentDataTag]),o[zi]="["+JSON.stringify(Er(a,t&&t.contentTags?t.contentTags:{}))+"]",o.timeToAction=function(){var n=(Zn=!Zn||c.lzy&&!Zn.b?Bn("performance"):Zn).v;if(n&&n.timing){n=n.timing.navigationStart;if(n&&0!==n)return(new Date).getTime()-n}return-1}(),o.refUri=V(t.refUri)?t.refUri:u._config[Ei].referrerUri,u[z].dropInvalidEvents&&o[L]===gi&&o[Vi]===gi&&"[{}]"===o[zi]||u[pi](o,r)}}),n}var co={BUTTON:!0,CHECKBOX:!0,RADIO:!0,RESET:!0,SUBMIT:!0},fo=(lo.__ieDyn=1,lo);function lo(n,t,r,e){this._analyticsPlugin=n,this._config=t,this._pageAction=r,this._traceLogger=e;var t=Wr("AutoCaptureHandler"),r=n._evtNamespace,i=r?ui("xx",b(r)?[t].concat(r):[t,r]).ns[cr]("."):t;A(lo,this,function(l){function r(n){var t,r,e,i={A:!0,BUTTON:!0,AREA:!0,INPUT:!0},o=jn();if(n=h(n)&&o?o.event:n){var a=n.srcElement||n.target,u=((o={})[Ki]=n.pageX,o[qi]=n.pageY,o),c=function(n){try{if("which"in n)return 3===n.which;if("button"in n)return 2===n.button}catch(t){}}(n);if(c)u[s]="CR";else if(function(n){try{if("which"in n)return 1===n.which;if("button"in n)return 1===n.button}catch(t){}}(n))u[s]="CL";else if(function(n){try{if("keyCode"in n)return 13===n.keyCode}catch(t){}}(n))u[s]="KE";else if(function(n){try{if("keyCode"in n)return 32===n.keyCode}catch(t){}}(n))u[s]="KS";else{if(!function(n){try{if("which"in n)return 2===n.which;if("button"in n)return 4===n.button}catch(t){}}(n))return;u[s]="CM"}for(;a&&a[Ai];){var f=(a=a.control&&i[a.control[Ai][Di]()]?a.control:a)[Ai][Di]();if(i[f]){"INPUT"===f&&!co[a.type[Di]()]||(f=u,r={},e=c,V(to(t=a,no,l._config.dataTags[Ui]+l[z][$i].dntDataTag))||l._pageAction[Bi](t,f,r,e));break}a=a.parentElement||a[Oi]}}}l.click=function(){var n=jn(),t=Hn();n?(si(n,-1!==navigator.appVersion[di]("MSIE")?"click":"mousedown",r,i),si(n,"keyup",r,i)):t&&(si(t,"click",r,i),si(t,"keyup",r,i))},l[yi]=function(n,t,r){vi(jn(),null,null,i),vi(Hn(),null,null,i)}})}vo.__ieDyn=1;var so=vo;function vo(n,p){this._config=n,this._traceLogger=p,A(vo,this,function(v){function g(n,t,r,e,i){for(var o=n,a=!1,u=!1;!h(o)&&!h(o[Zi]);){for(var c=o[Zi],f=0;f<c[Pi];f++){var l,s=c[f];0===s.name[di](r)&&(0===s.name[di](e)&&(a=!0),0!==s.name[di](i)&&(l=s[L].replace(r,""),u&&"id"===l||V(t[l])||(t[l]=s.value)))}if(a)break;u=!0,o=o[Oi]}}function t(n,t,r){for(var e={},i=document.querySelectorAll("meta"),o=0;o<i[Pi];o++){var a=i[o];a[L]&&(n||0===a.name[di](t))&&(e[r?a[L].replace(t,""):a[L]]=a[zi])}return e}function s(n,t,r){for(var e=n[Zi],i=!1,o=0;o<e[Pi];o++){var a=e[o][L];if(a===r)return!1;0===a[di](t)&&(i=!0)}return i}function d(n){var t,r,e=(v[z]||{})[$i],i=(v[z]||{}).callback,o={};return n&&e[bi]&&(i=i[S]?i[S](n,e[bi]):"",t=function(n){if(!1===e[bi]||!n[Ai])return"";var t,r=Hn()||{};switch(n[Ai]){case"A":t=r.all?n.innerText||n.innerHTML:n.text||n.innerHTML;break;case"IMG":case"AREA":t=n.alt;break;default:t=n.value||n[L]||n.alt||n.innerText||n.id}return xn(t,0,200)}(n),(r={id:n.id})[S]=i||t||n[Ii]("alt"),o=r),o}v.getMetadata=function(){var n=(v[z]||{})[$i];return V(n.metaDataPrefix)?t(n[Ti],n[Ci],!1):t(n[Ti],"",!1)},v[Hi]=function(c){if(!c)return{};var n,t=(v[z]||{})[$i],r={},f=t[Ui],l=f+t.aiBlobAttributeTag;if(V(t[wi])&&(n=f+t[wi]),s(c,f,l))r=Er(r,function(n,t,r,e){var i=(v[z]||{})[$i],o={};if(!n)return o;var a=d(n);if(V(r))g(n,o,t,r,e);else for(var u,c=n,f=o,l=t,s=0;s<c.attributes[Pi];s++)0===(u=c[Zi][s]).name[di](l)&&(f[u[L].replace(l,"")]=u.value);return i[bi]&&(V(o.id)||(o.id=a.id||""),o[S]=a[S]||""),o.id||o[S]||M(p,2,102,"Invalid content blob. Missing required attributes (id, contentName. Content information will still be collected!"),o}(c,f,n,l));else if(t=c[Ii](l))try{r=JSON.parse(t)}catch(o){M(v[Ji],1,101,"Can not parse "+t)}else r=Er(r,function(n,t,r,e){var i={};if(!n)return i;var o=d(n),i={id:o.id||"",contentName:o[S]||""};return V(r)&&g(n,i,t,r,e),i.id||i[S]||M(p,2,102,"Invalid content blob. Missing required attributes (id, contentName. Content information will still be collected!"),i}(c,f,n,l));var e,i=r;for(e in i)V(i[e])&&("{}"!==JSON.stringify(i[e])||"callback"===e)||delete i[e];return n?Er(r,function(n){var t=n.parentid,n=n.parentname;if(t||n||!c)return{};var r,t=c,n=f,e=l,i={},o=to(t[Yi],s,n);if(o){var e=o[Ii](e)||t[e];if(e){try{var a=JSON.parse(e)}catch(u){M(p,1,101,"Can not parse "+e)}a&&(r=a.id)}else r=o[Ii](n+"id")}return r?i.parentid=r:(e=d(t[Yi]),i.parentid=e.id,i.parentname=e[S]),i}(r)):r}})}var go=vn(((t={autoCapture:!0,callback:pe(((t={})[hi]=he(),t[l]=he(),t[S]=he(),t)),pageTags:{},coreData:pe(((n={referrerUri:document.referrer})[mi]=ye(),n[l]=ye(),n[_i]=ye(),n)),dataTags:pe(((r={})[bi]=!1,r.aiBlobAttributeTag="ai-blob",r.customDataPrefix={fb:void 0,isVal:function(n){return n&&0===n[di]("data-")},v:"data-"},r[Ti]=!1,r.dntDataTag="ai-dnt",r[Ci]=ye(),r[wi]=ye(),r))})[xi]=he(function(n){return n||""}),t[ki]=ye(),t.dropInvalidEvents=!1,t.urlCollectHash=!1,t.urlCollectQuery=!1,t));st(ho,po=e),ho.Version="3.0.2-nightly3.2305-03";var po,n=ho;function ho(){var u,c,f,l,s=po.call(this)||this;return s.identifier="ClickAnalyticsPlugin",s.priority=181,A(ho,s,function(o,n){var a=o.identifier;f=c=u=null,l=!1,o.initialize=function(n,t,r,e){var i;if(h(t))throw Error("Error initializing");po.prototype.initialize.call(s,n,t,r,e),function(){var e=this,i=o.core;o._addHook(de(n,function(n){var n=He(null,n.cfg,i).getExtCfg(a,go),t=o.diagLog(),r=(f=new so(n,t)).getMetadata(),r=(u=new ao(e,n,f,n.callback[hi],r,t),c&&c[yi](),c=new fo(o,n,u,t),!!n.autoCapture);!l&&r&&c.click(),l=r}))}(),k(r,function(n){"AppInsightsPropertiesPlugin"===n.identifier&&(i=n)}),i&&i.context&&i.context.internal&&i.context.internal.sdkVersion&&(i.context.internal.sdkVersion+="_ClickPlugin"+ho.Version)},o.processTelemetry=function(n,t){o.processNext(n,t)},o[pi]=function(n,t){try{u[pi](n,t)}catch(r){M(o.diagLog(),1,103,"trackPageAction failed, page action event will not be collected: "+(un(n=r)?n.name:v),{exception:w(r)})}},o._doTeardown=function(n,t,r){return Se([c,f,u],n,t)}}),s}exports.BehaviorEnumValidator=function(t){return function(n){return t[n]||""}},exports.BehaviorMapValidator=function(t){return function(n){return t[n]||""}},exports.BehaviorValueValidator=function(n){return function(t){var r;return k(n,function(n){if(n===t)return r=n,-1}),r||""}},exports.ClickAnalyticsPlugin=n;
|
|
6
|
-
//# sourceMappingURL=ai.clck.3.0.2-nightly3.2305-03.cjs.min.js.map
|