@microsoft/applicationinsights-clickanalytics-js 3.0.0-beta.2210-01 → 3.0.0-beta.2210-02

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.
Files changed (65) hide show
  1. package/browser/{ai.clck.3.0.0-beta.2210-01.cjs.js → ai.clck.3.0.0-beta.2210-02.cjs.js} +710 -402
  2. package/browser/ai.clck.3.0.0-beta.2210-02.cjs.js.map +1 -0
  3. package/browser/ai.clck.3.0.0-beta.2210-02.cjs.min.js +6 -0
  4. package/browser/ai.clck.3.0.0-beta.2210-02.cjs.min.js.map +1 -0
  5. package/browser/{ai.clck.3.0.0-beta.2210-01.gbl.js → ai.clck.3.0.0-beta.2210-02.gbl.js} +710 -402
  6. package/browser/ai.clck.3.0.0-beta.2210-02.gbl.js.map +1 -0
  7. package/browser/ai.clck.3.0.0-beta.2210-02.gbl.min.js +6 -0
  8. package/browser/ai.clck.3.0.0-beta.2210-02.gbl.min.js.map +1 -0
  9. package/browser/ai.clck.3.0.0-beta.2210-02.integrity.json +66 -0
  10. package/browser/{ai.clck.3.0.0-beta.2210-01.js → ai.clck.3.0.0-beta.2210-02.js} +710 -402
  11. package/browser/ai.clck.3.0.0-beta.2210-02.js.map +1 -0
  12. package/browser/ai.clck.3.0.0-beta.2210-02.min.js +6 -0
  13. package/browser/ai.clck.3.0.0-beta.2210-02.min.js.map +1 -0
  14. package/browser/ai.clck.3.cjs.js +709 -401
  15. package/browser/ai.clck.3.cjs.js.map +1 -1
  16. package/browser/ai.clck.3.cjs.min.js +2 -2
  17. package/browser/ai.clck.3.cjs.min.js.map +1 -1
  18. package/browser/ai.clck.3.gbl.js +709 -401
  19. package/browser/ai.clck.3.gbl.js.map +1 -1
  20. package/browser/ai.clck.3.gbl.min.js +2 -2
  21. package/browser/ai.clck.3.gbl.min.js.map +1 -1
  22. package/browser/ai.clck.3.js +709 -401
  23. package/browser/ai.clck.3.js.map +1 -1
  24. package/browser/ai.clck.3.min.js +2 -2
  25. package/browser/ai.clck.3.min.js.map +1 -1
  26. package/dist/applicationinsights-clickanalytics-js.d.ts +2 -2
  27. package/dist/applicationinsights-clickanalytics-js.js +709 -401
  28. package/dist/applicationinsights-clickanalytics-js.js.map +1 -1
  29. package/dist/applicationinsights-clickanalytics-js.min.js +2 -2
  30. package/dist/applicationinsights-clickanalytics-js.min.js.map +1 -1
  31. package/dist/applicationinsights-clickanalytics-js.rollup.d.ts +2 -2
  32. package/dist-esm/Behaviours.js +1 -1
  33. package/dist-esm/ClickAnalyticsPlugin.js +2 -2
  34. package/dist-esm/ClickAnalyticsPlugin.js.map +1 -1
  35. package/dist-esm/DataCollector.js +1 -1
  36. package/dist-esm/Enums.js +1 -1
  37. package/dist-esm/Interfaces/Datamodel.js +1 -1
  38. package/dist-esm/__DynamicConstants.js +1 -1
  39. package/dist-esm/applicationinsights-clickanalytics-js.js +1 -1
  40. package/dist-esm/common/Utils.js +5 -10
  41. package/dist-esm/common/Utils.js.map +1 -1
  42. package/dist-esm/events/PageAction.js +2 -3
  43. package/dist-esm/events/PageAction.js.map +1 -1
  44. package/dist-esm/events/WebEvent.js +2 -3
  45. package/dist-esm/events/WebEvent.js.map +1 -1
  46. package/dist-esm/handlers/AutoCaptureHandler.js +2 -3
  47. package/dist-esm/handlers/AutoCaptureHandler.js.map +1 -1
  48. package/dist-esm/handlers/DomContentHandler.js +3 -4
  49. package/dist-esm/handlers/DomContentHandler.js.map +1 -1
  50. package/package.json +5 -5
  51. package/src/ClickAnalyticsPlugin.ts +1 -1
  52. package/src/common/Utils.ts +4 -14
  53. package/src/handlers/DomContentHandler.ts +1 -1
  54. package/types/ClickAnalyticsPlugin.d.ts +1 -1
  55. package/types/common/Utils.d.ts +1 -86
  56. package/browser/ai.clck.3.0.0-beta.2210-01.cjs.js.map +0 -1
  57. package/browser/ai.clck.3.0.0-beta.2210-01.cjs.min.js +0 -6
  58. package/browser/ai.clck.3.0.0-beta.2210-01.cjs.min.js.map +0 -1
  59. package/browser/ai.clck.3.0.0-beta.2210-01.gbl.js.map +0 -1
  60. package/browser/ai.clck.3.0.0-beta.2210-01.gbl.min.js +0 -6
  61. package/browser/ai.clck.3.0.0-beta.2210-01.gbl.min.js.map +0 -1
  62. package/browser/ai.clck.3.0.0-beta.2210-01.integrity.json +0 -66
  63. package/browser/ai.clck.3.0.0-beta.2210-01.js.map +0 -1
  64. package/browser/ai.clck.3.0.0-beta.2210-01.min.js +0 -6
  65. package/browser/ai.clck.3.0.0-beta.2210-01.min.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Microsoft.ApplicationInsights, 3.0.0-beta.2210-01
2
+ * Microsoft.ApplicationInsights, 3.0.0-beta.2210-02
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  *
5
5
  * Microsoft Application Insights Team
@@ -40,7 +40,7 @@ export declare class ClickAnalyticsPlugin extends BaseTelemetryPlugin {
40
40
  /**
41
41
  * Logs a page action event.
42
42
  * @param IPageActionTelemetry
43
- * @param customProperties Additional data used to filter events and metrics. Defaults to empty.
43
+ * @param customProperties - Additional data used to filter events and metrics. Defaults to empty.
44
44
  */
45
45
  trackPageAction(pageAction?: IPageActionTelemetry, customProperties?: ICustomProperties): void;
46
46
  }
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Application Insights JavaScript SDK - Click Analytics, 3.0.0-beta.2210-01
2
+ * Application Insights JavaScript SDK - Click Analytics, 3.0.0-beta.2210-02
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
  /**
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Application Insights JavaScript SDK - Click Analytics, 3.0.0-beta.2210-01
2
+ * Application Insights JavaScript SDK - Click Analytics, 3.0.0-beta.2210-02
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
  /**
@@ -92,7 +92,7 @@ var ClickAnalyticsPlugin = /** @class */ (function (_super) {
92
92
  // Removed Stub for ClickAnalyticsPlugin.prototype.initialize.
93
93
  // Removed Stub for ClickAnalyticsPlugin.prototype.processTelemetry.
94
94
  // Removed Stub for ClickAnalyticsPlugin.prototype.trackPageAction.
95
- ClickAnalyticsPlugin.Version = "3.0.0-beta.2210-01";
95
+ ClickAnalyticsPlugin.Version = "3.0.0-beta.2210-02";
96
96
  return ClickAnalyticsPlugin;
97
97
  }(BaseTelemetryPlugin));
98
98
  export { ClickAnalyticsPlugin };
@@ -1 +1 @@
1
- {"version":3,"file":"ClickAnalyticsPlugin.js.map","sources":["ClickAnalyticsPlugin.js"],"sourcesContent":["/**\r\n* @copyright Microsoft 2020\r\n*/\r\nimport { __extends } from \"tslib\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { PropertiesPluginIdentifier } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, _throwInternal, arrForEach, dumpObj, getExceptionName, isNullOrUndefined, throwError, unloadComponents } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_EXTENSION_CONFIG, _DYN_PAGE_ACTION_PAGE_TAG0, _DYN_TRACK_PAGE_ACTION } from \"./__DynamicConstants\";\r\nimport { BehaviorEnumValidator, BehaviorMapValidator, BehaviorValueValidator, mergeConfig } 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 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 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 config[_DYN_EXTENSION_CONFIG /* @min:%2eextensionConfig */] = config[_DYN_EXTENSION_CONFIG /* @min:%2eextensionConfig */] || [];\r\n config[_DYN_EXTENSION_CONFIG /* @min:%2eextensionConfig */][_identifier] = config[_DYN_EXTENSION_CONFIG /* @min:%2eextensionConfig */][_identifier] || {};\r\n _config = mergeConfig(config[_DYN_EXTENSION_CONFIG /* @min:%2eextensionConfig */][_identifier]);\r\n _super.prototype.initialize.call(_this, config, core, extensions, pluginChain);\r\n var logger = _self.diagLog();\r\n // Default to DOM content handler\r\n _contentHandler = _contentHandler ? _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 _autoCaptureHandler = _autoCaptureHandler ? _autoCaptureHandler : new AutoCaptureHandler(_self, _config, _pageAction, logger);\r\n if (_config.autoCapture) {\r\n _autoCaptureHandler.click();\r\n }\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 });\r\n function _initDefaults() {\r\n _config = null;\r\n _pageAction = null;\r\n _autoCaptureHandler = null;\r\n _contentHandler = null;\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.0-beta.2210-01\";\r\n return ClickAnalyticsPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport { ClickAnalyticsPlugin };\r\n//# sourceMappingURL=ClickAnalyticsPlugin.js.map"],"names":[],"mappings":";;;;AAAA;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;;mEAaM;AACN;AACA;AACA;AACA;AACA"}
1
+ {"version":3,"file":"ClickAnalyticsPlugin.js.map","sources":["ClickAnalyticsPlugin.js"],"sourcesContent":["/**\r\n* @copyright Microsoft 2020\r\n*/\r\nimport { __extends } from \"tslib\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { PropertiesPluginIdentifier } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, _throwInternal, arrForEach, dumpObj, getExceptionName, isNullOrUndefined, throwError, unloadComponents } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_EXTENSION_CONFIG, _DYN_PAGE_ACTION_PAGE_TAG0, _DYN_TRACK_PAGE_ACTION } from \"./__DynamicConstants\";\r\nimport { BehaviorEnumValidator, BehaviorMapValidator, BehaviorValueValidator, mergeConfig } 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 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 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 config[_DYN_EXTENSION_CONFIG /* @min:%2eextensionConfig */] = config[_DYN_EXTENSION_CONFIG /* @min:%2eextensionConfig */] || [];\r\n config[_DYN_EXTENSION_CONFIG /* @min:%2eextensionConfig */][_identifier] = config[_DYN_EXTENSION_CONFIG /* @min:%2eextensionConfig */][_identifier] || {};\r\n _config = mergeConfig(config[_DYN_EXTENSION_CONFIG /* @min:%2eextensionConfig */][_identifier]);\r\n _super.prototype.initialize.call(_this, config, core, extensions, pluginChain);\r\n var logger = _self.diagLog();\r\n // Default to DOM content handler\r\n _contentHandler = _contentHandler ? _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 _autoCaptureHandler = _autoCaptureHandler ? _autoCaptureHandler : new AutoCaptureHandler(_self, _config, _pageAction, logger);\r\n if (_config.autoCapture) {\r\n _autoCaptureHandler.click();\r\n }\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 });\r\n function _initDefaults() {\r\n _config = null;\r\n _pageAction = null;\r\n _autoCaptureHandler = null;\r\n _contentHandler = null;\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.0-beta.2210-02\";\r\n return ClickAnalyticsPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport { ClickAnalyticsPlugin };\r\n//# sourceMappingURL=ClickAnalyticsPlugin.js.map"],"names":[],"mappings":";;;;AAAA;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;;mEAaM;AACN;AACA;AACA;AACA;AACA"}
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Application Insights JavaScript SDK - Click Analytics, 3.0.0-beta.2210-01
2
+ * Application Insights JavaScript SDK - Click Analytics, 3.0.0-beta.2210-02
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
  /**
package/dist-esm/Enums.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Application Insights JavaScript SDK - Click Analytics, 3.0.0-beta.2210-01
2
+ * Application Insights JavaScript SDK - Click Analytics, 3.0.0-beta.2210-02
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
  /**
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Application Insights JavaScript SDK - Click Analytics, 3.0.0-beta.2210-01
2
+ * Application Insights JavaScript SDK - Click Analytics, 3.0.0-beta.2210-02
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
  /**
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Application Insights JavaScript SDK - Click Analytics, 3.0.0-beta.2210-01
2
+ * Application Insights JavaScript SDK - Click Analytics, 3.0.0-beta.2210-02
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Application Insights JavaScript SDK - Click Analytics, 3.0.0-beta.2210-01
2
+ * Application Insights JavaScript SDK - Click Analytics, 3.0.0-beta.2210-02
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
 
@@ -1,22 +1,17 @@
1
1
  /*
2
- * Application Insights JavaScript SDK - Click Analytics, 3.0.0-beta.2210-01
2
+ * Application Insights JavaScript SDK - Click Analytics, 3.0.0-beta.2210-02
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
  /**
6
6
  * @copyright Microsoft 2020
7
7
  * File containing utility functions.
8
8
  */
9
- import { __assignFn as __assign } from "@microsoft/applicationinsights-shims";
10
- import { _InternalMessageId, arrForEach, createEnumStyle, hasDocument, hasOwnProperty, isNullOrUndefined, objExtend } from "@microsoft/applicationinsights-core-js";
9
+ import { arrForEach, hasDocument, isNullOrUndefined, objExtend } from "@microsoft/applicationinsights-core-js";
10
+ import { objHasOwn } from "@nevware21/ts-utils";
11
11
  import { _DYN_AI_BLOB_ATTRIBUTE_TA2, _DYN_BEHAVIOR_VALIDATOR, _DYN_CAPTURE_ALL_META_DAT3, _DYN_CUSTOM_DATA_PREFIX, _DYN_DATA_TAGS, _DYN_GET_ATTRIBUTE, _DYN_INDEX_OF, _DYN_PAGE_ACTION_PAGE_TAG0, _DYN_PARENT_NODE, _DYN_USE_DEFAULT_CONTENT_1 } from "../__DynamicConstants";
12
12
  var DEFAULT_DONOT_TRACK_TAG = "ai-dnt";
13
13
  var DEFAULT_AI_BLOB_ATTRIBUTE_TAG = "ai-blob";
14
14
  var DEFAULT_DATA_PREFIX = "data-";
15
- export var _ExtendedInternalMessageId = __assign(__assign({}, _InternalMessageId), createEnumStyle({
16
- CannotParseAiBlobValue: 101 /* _eExtendedInternalMessageId.CannotParseAiBlobValue */,
17
- InvalidContentBlob: 102 /* _eExtendedInternalMessageId.InvalidContentBlob */,
18
- TrackPageActionEventFailed: 103 /* _eExtendedInternalMessageId.TrackPageActionEventFailed */
19
- }));
20
15
  /**
21
16
  * Finds attributes in overrideConfig which are invalid or should be objects
22
17
  * and deletes them. useful in override config
@@ -26,7 +21,7 @@ export var _ExtendedInternalMessageId = __assign(__assign({}, _InternalMessageId
26
21
  export function removeNonObjectsAndInvalidElements(overrideConfig, attributeNamesExpectedObjects) {
27
22
  removeInvalidElements(overrideConfig);
28
23
  for (var i in attributeNamesExpectedObjects) {
29
- if (hasOwnProperty(attributeNamesExpectedObjects, i)) {
24
+ if (objHasOwn(attributeNamesExpectedObjects, i)) {
30
25
  var objectName = attributeNamesExpectedObjects[i];
31
26
  if (typeof overrideConfig[objectName] === "object") {
32
27
  removeInvalidElements(overrideConfig[objectName]);
@@ -40,7 +35,7 @@ export function removeNonObjectsAndInvalidElements(overrideConfig, attributeName
40
35
  /**
41
36
  * Finds attributes in object which are invalid
42
37
  * and deletes them. useful in override config
43
- * @param object Input object
38
+ * @param object - Input object
44
39
  */
45
40
  export function removeInvalidElements(object) {
46
41
  /// Because the config object 'callback' contains only functions,
@@ -1 +1 @@
1
- {"version":3,"file":"Utils.js.map","sources":["Utils.js"],"sourcesContent":["/**\r\n* @copyright Microsoft 2020\r\n* File containing utility functions.\r\n*/\r\nimport { __assign } from \"tslib\";\r\nimport { _InternalMessageId, arrForEach, createEnumStyle, hasDocument, hasOwnProperty, isNullOrUndefined, objExtend } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_AI_BLOB_ATTRIBUTE_TA2, _DYN_BEHAVIOR_VALIDATOR, _DYN_CAPTURE_ALL_META_DAT3, _DYN_CUSTOM_DATA_PREFIX, _DYN_DATA_TAGS, _DYN_GET_ATTRIBUTE, _DYN_INDEX_OF, _DYN_PAGE_ACTION_PAGE_TAG0, _DYN_PARENT_NODE, _DYN_USE_DEFAULT_CONTENT_1 } from \"../__DynamicConstants\";\r\nvar DEFAULT_DONOT_TRACK_TAG = \"ai-dnt\";\r\nvar DEFAULT_AI_BLOB_ATTRIBUTE_TAG = \"ai-blob\";\r\nvar DEFAULT_DATA_PREFIX = \"data-\";\r\nexport var _ExtendedInternalMessageId = __assign(__assign({}, _InternalMessageId), createEnumStyle({\r\n CannotParseAiBlobValue: 101 /* _eExtendedInternalMessageId.CannotParseAiBlobValue */,\r\n InvalidContentBlob: 102 /* _eExtendedInternalMessageId.InvalidContentBlob */,\r\n TrackPageActionEventFailed: 103 /* _eExtendedInternalMessageId.TrackPageActionEventFailed */\r\n}));\r\n/**\r\n * Finds attributes in overrideConfig which are invalid or should be objects\r\n * and deletes them. useful in override config\r\n * @param overrideConfig - override config object\r\n * @param attributeNamesExpectedObjects - attributes that should be objects in override config object\r\n */\r\nexport function removeNonObjectsAndInvalidElements(overrideConfig, attributeNamesExpectedObjects) {\r\n removeInvalidElements(overrideConfig);\r\n for (var i in attributeNamesExpectedObjects) {\r\n if (hasOwnProperty(attributeNamesExpectedObjects, i)) {\r\n var objectName = attributeNamesExpectedObjects[i];\r\n if (typeof overrideConfig[objectName] === \"object\") {\r\n removeInvalidElements(overrideConfig[objectName]);\r\n }\r\n else {\r\n delete overrideConfig[objectName];\r\n }\r\n }\r\n }\r\n}\r\n/**\r\n * Finds attributes in object which are invalid\r\n * and deletes them. useful in override config\r\n * @param object Input object\r\n */\r\nexport function removeInvalidElements(object) {\r\n /// Because the config object 'callback' contains only functions,\r\n /// when it is stringified it returns the empty object. This explains\r\n /// the workaround regarding 'callback'\r\n for (var property in object) {\r\n if (!isValueAssigned(object[property]) ||\r\n (JSON.stringify(object[property]) === \"{}\" && (property !== \"callback\"))) {\r\n delete object[property];\r\n }\r\n }\r\n}\r\n/**\r\n * Checks if value is assigned to the given param.\r\n * @param value - The token from which the tenant id is to be extracted.\r\n * @returns True/false denoting if value is assigned to the param.\r\n */\r\nexport function isValueAssigned(value) {\r\n /// <summary> takes a value and checks for undefined, null and empty string </summary>\r\n /// <param type=\"any\"> value to be tested </param>\r\n /// <returns> true if value is null undefined or emptyString </returns>\r\n return !(isNullOrUndefined(value) || value === \"\");\r\n}\r\n/**\r\n * Determines whether an event is a right click or not\r\n * @param evt - Mouse event\r\n * @returns true if the event is a right click\r\n */\r\nexport function isRightClick(evt) {\r\n try {\r\n if (\"which\" in evt) { // Chrome, FF, ...\r\n return (evt.which === 3);\r\n }\r\n else if (\"button\" in evt) { // IE, ...\r\n return (evt.button === 2);\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n}\r\n/**\r\n * Determines whether an event is a left click or not\r\n * @param evt - Mouse event\r\n * @returns true if the event is a left click\r\n */\r\nexport function isLeftClick(evt) {\r\n try {\r\n if (\"which\" in evt) { // Chrome, FF, ...\r\n return (evt.which === 1);\r\n }\r\n else if (\"button\" in evt) { // IE, ...\r\n return (evt.button === 1);\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n}\r\n/**\r\n * Determines whether an event is a middle click or not\r\n * @param evt - Mouse event\r\n * @returns true if the event is a middle click\r\n */\r\nexport function isMiddleClick(evt) {\r\n try {\r\n if (\"which\" in evt) { // Chrome, FF, ...\r\n return (evt.which === 2);\r\n }\r\n else if (\"button\" in evt) { // IE, ...\r\n return (evt.button === 4);\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n}\r\n/**\r\n * Determines whether an event is a keyboard enter or not\r\n * @param evt - Keyboard event\r\n * @returns true if the event is a keyboard enter\r\n */\r\nexport function isKeyboardEnter(evt) {\r\n try {\r\n if (\"keyCode\" in evt) { // Chrome, FF, ...\r\n return (evt.keyCode === 13);\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n}\r\n/**\r\n * Determines whether an event is a keyboard space or not\r\n * @param evt - Keyboard event\r\n * @returns true if the event is a space enter\r\n */\r\nexport function isKeyboardSpace(evt) {\r\n try {\r\n if (\"keyCode\" in evt) { // Chrome, FF, ...\r\n return (evt.keyCode === 32);\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n}\r\n/**\r\n * Determines whether the elemt have a DNT(Do Not Track) tag\r\n * @param element - DOM element\r\n * @param doNotTrackFieldName - DOM element\r\n * @returns true if the element must not be tarcked\r\n */\r\nexport function isElementDnt(element, doNotTrackFieldName) {\r\n var dntElement = findClosestByAttribute(element, doNotTrackFieldName);\r\n if (!isValueAssigned(dntElement)) {\r\n return false;\r\n }\r\n return true;\r\n}\r\n/**\r\n * Walks up DOM tree to find element with attribute\r\n * @param el - DOM element\r\n * @param attribute - Attribute name\r\n * @returns Dom element which contains attribute\r\n */\r\nexport function findClosestByAttribute(el, attribute) {\r\n return walkUpDomChainWithElementValidation(el, isAttributeInElement, attribute);\r\n}\r\n/**\r\n * checks if attribute is in element.\r\n * method checks for empty string, in case the attribute is set but no value is assigned to it\r\n * @param element - DOM element\r\n * @param attributeToLookFor - Attribute name\r\n * @returns true if attribute is in element, even if empty string\r\n */\r\nexport function isAttributeInElement(element, attributeToLookFor) {\r\n var value = element[_DYN_GET_ATTRIBUTE /* @min:%2egetAttribute */](attributeToLookFor);\r\n return isValueAssigned(value);\r\n}\r\n/**\r\n * Walks up DOM tree to find element which matches validationMethod\r\n * @param el - DOM element\r\n * @param validationMethod - DOM element validation method\r\n * @param validationMethodParam - DOM element validation method parameters\r\n * @returns Dom element which is an anchor\r\n */\r\nexport function walkUpDomChainWithElementValidation(el, validationMethod, validationMethodParam) {\r\n var element = el;\r\n if (element) {\r\n while (!validationMethod(element, validationMethodParam)) {\r\n element = element[_DYN_PARENT_NODE /* @min:%2eparentNode */];\r\n if (!element || !(element[_DYN_GET_ATTRIBUTE /* @min:%2egetAttribute */])) {\r\n return null;\r\n }\r\n }\r\n return element;\r\n }\r\n}\r\n/**\r\n * Determine if DOM element is an anchor\r\n * @param element - DOM element\r\n * @returns Is element an anchor\r\n */\r\nexport function isElementAnAnchor(element) {\r\n return element.nodeName === \"A\";\r\n}\r\n/**\r\n * Walks up DOM tree to find anchor element\r\n * @param element - DOM element\r\n * @returns Dom element which is an anchor\r\n */\r\nexport function findClosestAnchor(element) {\r\n /// <summary> Walks up DOM tree to find anchor element </summary>\r\n /// <param type='object'> DOM element </param>\r\n /// <returns> Dom element which is an anchor</returns>\r\n return walkUpDomChainWithElementValidation(element, isElementAnAnchor);\r\n}\r\n/**\r\n * Returns the specified field and also removes the property from the object if exists.\r\n * @param obj - Input object\r\n * @param fieldName - >Name of the field/property to be extracted\r\n * @returns Value of the specified tag\r\n */\r\nexport function extractFieldFromObject(obj, fieldName) {\r\n var fieldValue;\r\n if (obj && obj[fieldName]) {\r\n fieldValue = obj[fieldName];\r\n delete obj[fieldName];\r\n }\r\n return fieldValue;\r\n}\r\n/**\r\n * Adds surrounding square brackets to the passed in text\r\n * @param str - Input string\r\n * @returns String with surrounding brackets\r\n */\r\nexport function bracketIt(str) {\r\n /// <summary>\r\n /// Adds surrounding square brackets to the passed in text\r\n /// </summary>\r\n return \"[\" + str + \"]\";\r\n}\r\nexport function validateContentNamePrefix(config, defaultDataPrefix) {\r\n return isValueAssigned(config.dataTags[_DYN_CUSTOM_DATA_PREFIX /* @min:%2ecustomDataPrefix */]) && (config[_DYN_DATA_TAGS /* @min:%2edataTags */][_DYN_CUSTOM_DATA_PREFIX /* @min:%2ecustomDataPrefix */][_DYN_INDEX_OF /* @min:%2eindexOf */](defaultDataPrefix) === 0);\r\n}\r\n/**\r\n * Merge passed in configuration with default configuration\r\n * @param overrideConfig\r\n */\r\nexport function mergeConfig(overrideConfig) {\r\n var _a, _b, _c;\r\n var defaultConfig = (_a = {\r\n // General library settings\r\n autoCapture: true,\r\n callback: (_b = {},\r\n _b[_DYN_PAGE_ACTION_PAGE_TAG0 /* @min:pageActionPageTags */] = null,\r\n _b),\r\n pageTags: {},\r\n // overrideValues to use instead of collecting automatically\r\n coreData: {\r\n referrerUri: hasDocument ? document.referrer : \"\",\r\n requestUri: \"\",\r\n pageName: \"\",\r\n pageType: \"\"\r\n },\r\n dataTags: (_c = {},\r\n _c[_DYN_USE_DEFAULT_CONTENT_1 /* @min:useDefaultContentNameOrId */] = false,\r\n _c[_DYN_AI_BLOB_ATTRIBUTE_TA2 /* @min:aiBlobAttributeTag */] = DEFAULT_AI_BLOB_ATTRIBUTE_TAG,\r\n _c[_DYN_CUSTOM_DATA_PREFIX /* @min:customDataPrefix */] = DEFAULT_DATA_PREFIX,\r\n _c[_DYN_CAPTURE_ALL_META_DAT3 /* @min:captureAllMetaDataContent */] = false,\r\n _c.dntDataTag = DEFAULT_DONOT_TRACK_TAG,\r\n _c)\r\n },\r\n _a[_DYN_BEHAVIOR_VALIDATOR /* @min:behaviorValidator */] = function (key) { return key || \"\"; },\r\n _a.defaultRightClickBhvr = \"\",\r\n _a.dropInvalidEvents = false,\r\n _a);\r\n var attributesThatAreObjectsInConfig = [];\r\n for (var attribute in defaultConfig) {\r\n if (typeof defaultConfig[attribute] === \"object\") {\r\n attributesThatAreObjectsInConfig.push(attribute);\r\n }\r\n }\r\n if (overrideConfig) {\r\n // delete attributes that should be object and\r\n // delete properties that are null, undefined, ''\r\n removeNonObjectsAndInvalidElements(overrideConfig, attributesThatAreObjectsInConfig);\r\n if (isValueAssigned(overrideConfig[_DYN_DATA_TAGS /* @min:%2edataTags */])) {\r\n overrideConfig.dataTags[_DYN_CUSTOM_DATA_PREFIX /* @min:%2ecustomDataPrefix */] = validateContentNamePrefix(overrideConfig, DEFAULT_DATA_PREFIX) ? overrideConfig[_DYN_DATA_TAGS /* @min:%2edataTags */][_DYN_CUSTOM_DATA_PREFIX /* @min:%2ecustomDataPrefix */] : DEFAULT_DATA_PREFIX;\r\n }\r\n return objExtend(true, defaultConfig, overrideConfig);\r\n }\r\n}\r\nexport function BehaviorMapValidator(map) {\r\n return function (key) { return map[key] || \"\"; };\r\n}\r\nexport function BehaviorValueValidator(behaviorArray) {\r\n return function (key) {\r\n var result;\r\n arrForEach(behaviorArray, function (value) {\r\n if (value === key) {\r\n result = value;\r\n return -1;\r\n }\r\n });\r\n return result || \"\";\r\n };\r\n}\r\nexport function BehaviorEnumValidator(enumObj) {\r\n return function (key) { return enumObj[key] || \"\"; };\r\n}\r\n//# sourceMappingURL=Utils.js.map"],"names":[],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA,8EAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
1
+ {"version":3,"file":"Utils.js.map","sources":["Utils.js"],"sourcesContent":["/**\r\n* @copyright Microsoft 2020\r\n* File containing utility functions.\r\n*/\r\nimport { arrForEach, hasDocument, isNullOrUndefined, objExtend } from \"@microsoft/applicationinsights-core-js\";\r\nimport { objHasOwn } from \"@nevware21/ts-utils\";\r\nimport { _DYN_AI_BLOB_ATTRIBUTE_TA2, _DYN_BEHAVIOR_VALIDATOR, _DYN_CAPTURE_ALL_META_DAT3, _DYN_CUSTOM_DATA_PREFIX, _DYN_DATA_TAGS, _DYN_GET_ATTRIBUTE, _DYN_INDEX_OF, _DYN_PAGE_ACTION_PAGE_TAG0, _DYN_PARENT_NODE, _DYN_USE_DEFAULT_CONTENT_1 } from \"../__DynamicConstants\";\r\nvar DEFAULT_DONOT_TRACK_TAG = \"ai-dnt\";\r\nvar DEFAULT_AI_BLOB_ATTRIBUTE_TAG = \"ai-blob\";\r\nvar DEFAULT_DATA_PREFIX = \"data-\";\r\n/**\r\n * Finds attributes in overrideConfig which are invalid or should be objects\r\n * and deletes them. useful in override config\r\n * @param overrideConfig - override config object\r\n * @param attributeNamesExpectedObjects - attributes that should be objects in override config object\r\n */\r\nexport function removeNonObjectsAndInvalidElements(overrideConfig, attributeNamesExpectedObjects) {\r\n removeInvalidElements(overrideConfig);\r\n for (var i in attributeNamesExpectedObjects) {\r\n if (objHasOwn(attributeNamesExpectedObjects, i)) {\r\n var objectName = attributeNamesExpectedObjects[i];\r\n if (typeof overrideConfig[objectName] === \"object\") {\r\n removeInvalidElements(overrideConfig[objectName]);\r\n }\r\n else {\r\n delete overrideConfig[objectName];\r\n }\r\n }\r\n }\r\n}\r\n/**\r\n * Finds attributes in object which are invalid\r\n * and deletes them. useful in override config\r\n * @param object - Input object\r\n */\r\nexport function removeInvalidElements(object) {\r\n /// Because the config object 'callback' contains only functions,\r\n /// when it is stringified it returns the empty object. This explains\r\n /// the workaround regarding 'callback'\r\n for (var property in object) {\r\n if (!isValueAssigned(object[property]) ||\r\n (JSON.stringify(object[property]) === \"{}\" && (property !== \"callback\"))) {\r\n delete object[property];\r\n }\r\n }\r\n}\r\n/**\r\n * Checks if value is assigned to the given param.\r\n * @param value - The token from which the tenant id is to be extracted.\r\n * @returns True/false denoting if value is assigned to the param.\r\n */\r\nexport function isValueAssigned(value) {\r\n /// <summary> takes a value and checks for undefined, null and empty string </summary>\r\n /// <param type=\"any\"> value to be tested </param>\r\n /// <returns> true if value is null undefined or emptyString </returns>\r\n return !(isNullOrUndefined(value) || value === \"\");\r\n}\r\n/**\r\n * Determines whether an event is a right click or not\r\n * @param evt - Mouse event\r\n * @returns true if the event is a right click\r\n */\r\nexport function isRightClick(evt) {\r\n try {\r\n if (\"which\" in evt) { // Chrome, FF, ...\r\n return (evt.which === 3);\r\n }\r\n else if (\"button\" in evt) { // IE, ...\r\n return (evt.button === 2);\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n}\r\n/**\r\n * Determines whether an event is a left click or not\r\n * @param evt - Mouse event\r\n * @returns true if the event is a left click\r\n */\r\nexport function isLeftClick(evt) {\r\n try {\r\n if (\"which\" in evt) { // Chrome, FF, ...\r\n return (evt.which === 1);\r\n }\r\n else if (\"button\" in evt) { // IE, ...\r\n return (evt.button === 1);\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n}\r\n/**\r\n * Determines whether an event is a middle click or not\r\n * @param evt - Mouse event\r\n * @returns true if the event is a middle click\r\n */\r\nexport function isMiddleClick(evt) {\r\n try {\r\n if (\"which\" in evt) { // Chrome, FF, ...\r\n return (evt.which === 2);\r\n }\r\n else if (\"button\" in evt) { // IE, ...\r\n return (evt.button === 4);\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n}\r\n/**\r\n * Determines whether an event is a keyboard enter or not\r\n * @param evt - Keyboard event\r\n * @returns true if the event is a keyboard enter\r\n */\r\nexport function isKeyboardEnter(evt) {\r\n try {\r\n if (\"keyCode\" in evt) { // Chrome, FF, ...\r\n return (evt.keyCode === 13);\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n}\r\n/**\r\n * Determines whether an event is a keyboard space or not\r\n * @param evt - Keyboard event\r\n * @returns true if the event is a space enter\r\n */\r\nexport function isKeyboardSpace(evt) {\r\n try {\r\n if (\"keyCode\" in evt) { // Chrome, FF, ...\r\n return (evt.keyCode === 32);\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n}\r\n/**\r\n * Determines whether the elemt have a DNT(Do Not Track) tag\r\n * @param element - DOM element\r\n * @param doNotTrackFieldName - DOM element\r\n * @returns true if the element must not be tarcked\r\n */\r\nexport function isElementDnt(element, doNotTrackFieldName) {\r\n var dntElement = findClosestByAttribute(element, doNotTrackFieldName);\r\n if (!isValueAssigned(dntElement)) {\r\n return false;\r\n }\r\n return true;\r\n}\r\n/**\r\n * Walks up DOM tree to find element with attribute\r\n * @param el - DOM element\r\n * @param attribute - Attribute name\r\n * @returns Dom element which contains attribute\r\n */\r\nexport function findClosestByAttribute(el, attribute) {\r\n return walkUpDomChainWithElementValidation(el, isAttributeInElement, attribute);\r\n}\r\n/**\r\n * checks if attribute is in element.\r\n * method checks for empty string, in case the attribute is set but no value is assigned to it\r\n * @param element - DOM element\r\n * @param attributeToLookFor - Attribute name\r\n * @returns true if attribute is in element, even if empty string\r\n */\r\nexport function isAttributeInElement(element, attributeToLookFor) {\r\n var value = element[_DYN_GET_ATTRIBUTE /* @min:%2egetAttribute */](attributeToLookFor);\r\n return isValueAssigned(value);\r\n}\r\n/**\r\n * Walks up DOM tree to find element which matches validationMethod\r\n * @param el - DOM element\r\n * @param validationMethod - DOM element validation method\r\n * @param validationMethodParam - DOM element validation method parameters\r\n * @returns Dom element which is an anchor\r\n */\r\nexport function walkUpDomChainWithElementValidation(el, validationMethod, validationMethodParam) {\r\n var element = el;\r\n if (element) {\r\n while (!validationMethod(element, validationMethodParam)) {\r\n element = element[_DYN_PARENT_NODE /* @min:%2eparentNode */];\r\n if (!element || !(element[_DYN_GET_ATTRIBUTE /* @min:%2egetAttribute */])) {\r\n return null;\r\n }\r\n }\r\n return element;\r\n }\r\n}\r\n/**\r\n * Determine if DOM element is an anchor\r\n * @param element - DOM element\r\n * @returns Is element an anchor\r\n */\r\nexport function isElementAnAnchor(element) {\r\n return element.nodeName === \"A\";\r\n}\r\n/**\r\n * Walks up DOM tree to find anchor element\r\n * @param element - DOM element\r\n * @returns Dom element which is an anchor\r\n */\r\nexport function findClosestAnchor(element) {\r\n /// <summary> Walks up DOM tree to find anchor element </summary>\r\n /// <param type='object'> DOM element </param>\r\n /// <returns> Dom element which is an anchor</returns>\r\n return walkUpDomChainWithElementValidation(element, isElementAnAnchor);\r\n}\r\n/**\r\n * Returns the specified field and also removes the property from the object if exists.\r\n * @param obj - Input object\r\n * @param fieldName - >Name of the field/property to be extracted\r\n * @returns Value of the specified tag\r\n */\r\nexport function extractFieldFromObject(obj, fieldName) {\r\n var fieldValue;\r\n if (obj && obj[fieldName]) {\r\n fieldValue = obj[fieldName];\r\n delete obj[fieldName];\r\n }\r\n return fieldValue;\r\n}\r\n/**\r\n * Adds surrounding square brackets to the passed in text\r\n * @param str - Input string\r\n * @returns String with surrounding brackets\r\n */\r\nexport function bracketIt(str) {\r\n /// <summary>\r\n /// Adds surrounding square brackets to the passed in text\r\n /// </summary>\r\n return \"[\" + str + \"]\";\r\n}\r\nexport function validateContentNamePrefix(config, defaultDataPrefix) {\r\n return isValueAssigned(config.dataTags[_DYN_CUSTOM_DATA_PREFIX /* @min:%2ecustomDataPrefix */]) && (config[_DYN_DATA_TAGS /* @min:%2edataTags */][_DYN_CUSTOM_DATA_PREFIX /* @min:%2ecustomDataPrefix */][_DYN_INDEX_OF /* @min:%2eindexOf */](defaultDataPrefix) === 0);\r\n}\r\n/**\r\n * Merge passed in configuration with default configuration\r\n * @param overrideConfig\r\n */\r\nexport function mergeConfig(overrideConfig) {\r\n var _a, _b, _c;\r\n var defaultConfig = (_a = {\r\n // General library settings\r\n autoCapture: true,\r\n callback: (_b = {},\r\n _b[_DYN_PAGE_ACTION_PAGE_TAG0 /* @min:pageActionPageTags */] = null,\r\n _b),\r\n pageTags: {},\r\n // overrideValues to use instead of collecting automatically\r\n coreData: {\r\n referrerUri: hasDocument ? document.referrer : \"\",\r\n requestUri: \"\",\r\n pageName: \"\",\r\n pageType: \"\"\r\n },\r\n dataTags: (_c = {},\r\n _c[_DYN_USE_DEFAULT_CONTENT_1 /* @min:useDefaultContentNameOrId */] = false,\r\n _c[_DYN_AI_BLOB_ATTRIBUTE_TA2 /* @min:aiBlobAttributeTag */] = DEFAULT_AI_BLOB_ATTRIBUTE_TAG,\r\n _c[_DYN_CUSTOM_DATA_PREFIX /* @min:customDataPrefix */] = DEFAULT_DATA_PREFIX,\r\n _c[_DYN_CAPTURE_ALL_META_DAT3 /* @min:captureAllMetaDataContent */] = false,\r\n _c.dntDataTag = DEFAULT_DONOT_TRACK_TAG,\r\n _c)\r\n },\r\n _a[_DYN_BEHAVIOR_VALIDATOR /* @min:behaviorValidator */] = function (key) { return key || \"\"; },\r\n _a.defaultRightClickBhvr = \"\",\r\n _a.dropInvalidEvents = false,\r\n _a);\r\n var attributesThatAreObjectsInConfig = [];\r\n for (var attribute in defaultConfig) {\r\n if (typeof defaultConfig[attribute] === \"object\") {\r\n attributesThatAreObjectsInConfig.push(attribute);\r\n }\r\n }\r\n if (overrideConfig) {\r\n // delete attributes that should be object and\r\n // delete properties that are null, undefined, ''\r\n removeNonObjectsAndInvalidElements(overrideConfig, attributesThatAreObjectsInConfig);\r\n if (isValueAssigned(overrideConfig[_DYN_DATA_TAGS /* @min:%2edataTags */])) {\r\n overrideConfig.dataTags[_DYN_CUSTOM_DATA_PREFIX /* @min:%2ecustomDataPrefix */] = validateContentNamePrefix(overrideConfig, DEFAULT_DATA_PREFIX) ? overrideConfig[_DYN_DATA_TAGS /* @min:%2edataTags */][_DYN_CUSTOM_DATA_PREFIX /* @min:%2ecustomDataPrefix */] : DEFAULT_DATA_PREFIX;\r\n }\r\n return objExtend(true, defaultConfig, overrideConfig);\r\n }\r\n}\r\nexport function BehaviorMapValidator(map) {\r\n return function (key) { return map[key] || \"\"; };\r\n}\r\nexport function BehaviorValueValidator(behaviorArray) {\r\n return function (key) {\r\n var result;\r\n arrForEach(behaviorArray, function (value) {\r\n if (value === key) {\r\n result = value;\r\n return -1;\r\n }\r\n });\r\n return result || \"\";\r\n };\r\n}\r\nexport function BehaviorEnumValidator(enumObj) {\r\n return function (key) { return enumObj[key] || \"\"; };\r\n}\r\n//# sourceMappingURL=Utils.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"}
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Application Insights JavaScript SDK - Click Analytics, 3.0.0-beta.2210-01
2
+ * Application Insights JavaScript SDK - Click Analytics, 3.0.0-beta.2210-02
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
  /**
@@ -146,9 +146,8 @@ var PageAction = /** @class */ (function (_super) {
146
146
  }
147
147
  // Removed Stub for PageAction.prototype.trackPageAction.
148
148
  // Removed Stub for PageAction.prototype.capturePageAction.
149
- // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any
149
+ // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any
150
150
  // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.
151
- // this will be removed when ES3 support is dropped.
152
151
  PageAction.__ieDyn=1;
153
152
 
154
153
  return PageAction;
@@ -1 +1 @@
1
- {"version":3,"file":"PageAction.js.map","sources":["PageAction.js"],"sourcesContent":["/**\r\n* @copyright Microsoft 2020\r\n*/\r\nimport { __extends } from \"tslib\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { strNotSpecified } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, getPerformance, objExtend, objForEachKey } from \"@microsoft/applicationinsights-core-js\";\r\nimport { getClickTarget } from \"../DataCollector\";\r\nimport { _DYN_ACTION_TYPE, _DYN_BEHAVIOR, _DYN_CAPTURE_PAGE_ACTION, _DYN_CLICK_COORDINATES, _DYN_CLICK_COORDINATE_X, _DYN_CLICK_COORDINATE_Y, _DYN_CONTENT, _DYN_CONTENT_NAME, _DYN_CORE_DATA, _DYN_DATA, _DYN_DATA_TAGS, _DYN_GET_ELEMENT_CONTENT, _DYN_NAME, _DYN_PAGE_NAME, _DYN_PAGE_TYPE, _DYN_PARENT_DATA_TAG, _DYN_PARENT_ID, _DYN_PROPERTIES, _DYN_REF_URI, _DYN_SET_COMMON_PROPERTIE4, _DYN_TRACK_PAGE_ACTION, _DYN__CONFIG, _DYN__GET_VALID_BEHAVIOR, _DYN__TRACE_LOGGER } from \"../__DynamicConstants\";\r\nimport { bracketIt, extractFieldFromObject, isValueAssigned } from \"../common/Utils\";\r\nimport { WebEvent } from \"./WebEvent\";\r\nvar PageAction = /** @class */ (function (_super) {\r\n __extends(PageAction, _super);\r\n function PageAction(clickAnalyticsPlugin, config, contentHandler, pageTagsCallback, metaTags, traceLogger) {\r\n var _this = _super.call(this, clickAnalyticsPlugin, config, contentHandler, pageTagsCallback, metaTags, traceLogger) || this;\r\n dynamicProto(PageAction, _this, function (_self, _base) {\r\n _self[_DYN_TRACK_PAGE_ACTION /* @min:%2etrackPageAction */] = function (pageActionEvent, properties) {\r\n // Get part A properties\r\n var ext = {};\r\n ext[\"web\"] = {};\r\n var event = {\r\n name: \"Microsoft.ApplicationInsights.{0}.Event\",\r\n baseType: \"EventData\",\r\n ext: ext,\r\n data: {},\r\n baseData: {}\r\n };\r\n _populateEventDataIfPresent(event.baseData, \"name\", pageActionEvent[_DYN_NAME /* @min:%2ename */]);\r\n _populateEventDataIfPresent(event[_DYN_DATA /* @min:%2edata */], \"baseTypeSource\", \"ClickEvent\");\r\n _populateEventDataIfPresent(event[_DYN_DATA /* @min:%2edata */], \"uri\", pageActionEvent.uri);\r\n _populateEventDataIfPresent(event[_DYN_DATA /* @min:%2edata */], \"pageType\", pageActionEvent[_DYN_PAGE_TYPE /* @min:%2epageType */]);\r\n _populateEventDataIfPresent(event[_DYN_DATA /* @min:%2edata */], \"properties\", pageActionEvent[_DYN_PROPERTIES /* @min:%2eproperties */]);\r\n _populateEventDataIfPresent(event[_DYN_DATA /* @min:%2edata */], \"actionType\", pageActionEvent[_DYN_ACTION_TYPE /* @min:%2eactionType */]);\r\n _populateEventDataIfPresent(event[_DYN_DATA /* @min:%2edata */], \"behavior\", pageActionEvent[_DYN_BEHAVIOR /* @min:%2ebehavior */]);\r\n _populateEventDataIfPresent(event[_DYN_DATA /* @min:%2edata */], \"clickCoordinates\", pageActionEvent[_DYN_CLICK_COORDINATES /* @min:%2eclickCoordinates */]);\r\n _populateEventDataIfPresent(event[_DYN_DATA /* @min:%2edata */], \"content\", pageActionEvent[_DYN_CONTENT /* @min:%2econtent */]);\r\n _populateEventDataIfPresent(event[_DYN_DATA /* @min:%2edata */], \"targetUri\", pageActionEvent.targetUri);\r\n _populateEventDataIfPresent(event[_DYN_DATA /* @min:%2edata */], \"timeToAction\", pageActionEvent.timeToAction);\r\n _populateEventDataIfPresent(event[_DYN_DATA /* @min:%2edata */], \"refUri\", pageActionEvent[_DYN_REF_URI /* @min:%2erefUri */]);\r\n _populateEventDataIfPresent(event.data, \"pageName\", pageActionEvent[_DYN_PAGE_NAME /* @min:%2epageName */]);\r\n _populateEventDataIfPresent(event[_DYN_DATA /* @min:%2edata */], \"parentId\", pageActionEvent[_DYN_PARENT_ID /* @min:%2eparentId */]);\r\n if (properties) {\r\n objForEachKey(properties, function (property, value) {\r\n if (!event[_DYN_DATA /* @min:%2edata */][property]) {\r\n _populateEventDataIfPresent(event[_DYN_DATA /* @min:%2edata */], property, value);\r\n }\r\n });\r\n }\r\n _self._clickAnalyticsPlugin.core.track(event);\r\n };\r\n /**\r\n * API to create and send a populated PageAction event\r\n * @param element - DOM element\r\n * @param overrideValues - PageAction overrides\r\n * @param customProperties - Custom properties(Part C)\r\n * @param isRightClick - Flag for mouse right clicks\r\n */\r\n _self[_DYN_CAPTURE_PAGE_ACTION /* @min:%2ecapturePageAction */] = function (element, overrideValues, customProperties, isRightClick) {\r\n overrideValues = !isValueAssigned(overrideValues) ? {} : overrideValues;\r\n var pageActionEvent = { name: \"\" };\r\n var pageActionProperties = isValueAssigned(customProperties) ? customProperties : {};\r\n _self[_DYN_SET_COMMON_PROPERTIE4 /* @min:%2esetCommonProperties */](pageActionEvent, overrideValues);\r\n pageActionEvent[_DYN_BEHAVIOR /* @min:%2ebehavior */] = _self._getBehavior(overrideValues);\r\n // element in scope is needed for below properties. We cannot pass element into the plugin call chain.\r\n // process them here.\r\n var elementContent = {};\r\n if (isRightClick) {\r\n // Default behavior for righ click\r\n pageActionEvent[_DYN_BEHAVIOR /* @min:%2ebehavior */] = _self[_DYN__CONFIG /* @min:%2e_config */].defaultRightClickBhvr;\r\n }\r\n // Fill PartB\r\n if (element) {\r\n pageActionEvent.targetUri = getClickTarget(element);\r\n elementContent = _self._contentHandler[_DYN_GET_ELEMENT_CONTENT /* @min:%2egetElementContent */](element); // collect id,cn tags\r\n // if the element has a data-*-bhvr attrib defined, use it.\r\n if (elementContent.bhvr && !isValueAssigned(overrideValues[_DYN_BEHAVIOR /* @min:%2ebehavior */])) {\r\n var currentBehavior = extractFieldFromObject(elementContent, \"bhvr\");\r\n pageActionEvent[_DYN_BEHAVIOR /* @min:%2ebehavior */] = _self[_DYN__GET_VALID_BEHAVIOR /* @min:%2e_getValidBehavior */](currentBehavior);\r\n }\r\n // Validate to ensure the minimum required field 'contentName' or 'id' is present. 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 (!isValueAssigned(elementContent.id) && !isValueAssigned(elementContent[_DYN_CONTENT_NAME /* @min:%2econtentName */])) {\r\n _throwInternal(_self[_DYN__TRACE_LOGGER /* @min:%2e_traceLogger */], 2 /* eLoggingSeverity.WARNING */, 102 /* _eInternalMessageId.InvalidContentBlob */, \"Missing attributes id or contentName in click event. Click event information will still be collected!\");\r\n }\r\n }\r\n pageActionEvent[_DYN_NAME /* @min:%2ename */] = elementContent.id || elementContent[_DYN_CONTENT_NAME /* @min:%2econtentName */] || strNotSpecified;\r\n pageActionEvent[_DYN_PARENT_ID /* @min:%2eparentId */] = elementContent.parentid || elementContent.parentName || strNotSpecified;\r\n if (isValueAssigned(overrideValues[_DYN_ACTION_TYPE /* @min:%2eactionType */])) {\r\n pageActionEvent[_DYN_ACTION_TYPE /* @min:%2eactionType */] = overrideValues[_DYN_ACTION_TYPE /* @min:%2eactionType */];\r\n }\r\n if (isValueAssigned(overrideValues[_DYN_CLICK_COORDINATE_X /* @min:%2eclickCoordinateX */]) && isValueAssigned(overrideValues[_DYN_CLICK_COORDINATE_Y /* @min:%2eclickCoordinateY */])) {\r\n pageActionEvent[_DYN_CLICK_COORDINATES /* @min:%2eclickCoordinates */] = overrideValues[_DYN_CLICK_COORDINATE_X /* @min:%2eclickCoordinateX */] + \"X\" + overrideValues[_DYN_CLICK_COORDINATE_Y /* @min:%2eclickCoordinateY */];\r\n }\r\n _sanitizePageActionEventContent(elementContent);\r\n pageActionEvent[_DYN_CONTENT /* @min:%2econtent */] = bracketIt(JSON.stringify(objExtend(elementContent, overrideValues && overrideValues.contentTags ? overrideValues.contentTags : {})));\r\n pageActionEvent.timeToAction = _getTimeToClick();\r\n pageActionEvent.refUri = isValueAssigned(overrideValues.refUri) ? overrideValues.refUri : _self._config[_DYN_CORE_DATA /* @min:%2ecoreData */].referrerUri;\r\n if (_isUndefinedEvent(pageActionEvent)) {\r\n return;\r\n }\r\n _self[_DYN_TRACK_PAGE_ACTION /* @min:%2etrackPageAction */](pageActionEvent, pageActionProperties);\r\n };\r\n // capture performance data into PageTags\r\n function _getTimeToClick() {\r\n var perf = getPerformance();\r\n if (perf && perf.timing) {\r\n var isNavigationStart = perf.timing.navigationStart;\r\n if (isNavigationStart && isNavigationStart !== 0) {\r\n return new Date().getTime() - isNavigationStart;\r\n }\r\n }\r\n return -1;\r\n }\r\n function _populateEventDataIfPresent(obj, property, value) {\r\n if (isValueAssigned(value)) {\r\n obj[property] = value;\r\n }\r\n }\r\n function _sanitizePageActionEventContent(pageActionContent) {\r\n if (pageActionContent) {\r\n delete pageActionContent.id;\r\n delete pageActionContent.parentid;\r\n delete pageActionContent.parentname;\r\n if (_self._config && _self._config[_DYN_DATA_TAGS /* @min:%2edataTags */] && isValueAssigned(_self[_DYN__CONFIG /* @min:%2e_config */][_DYN_DATA_TAGS /* @min:%2edataTags */][_DYN_PARENT_DATA_TAG /* @min:%2eparentDataTag */])) {\r\n delete pageActionContent[_self._config[_DYN_DATA_TAGS /* @min:%2edataTags */].parentDataTag];\r\n }\r\n }\r\n }\r\n function _isUndefinedEvent(pageActionEvent) {\r\n if (_self[_DYN__CONFIG /* @min:%2e_config */].dropInvalidEvents) {\r\n if (pageActionEvent[_DYN_NAME /* @min:%2ename */] === strNotSpecified\r\n && pageActionEvent[_DYN_PARENT_ID /* @min:%2eparentId */] === strNotSpecified\r\n && pageActionEvent[_DYN_CONTENT /* @min:%2econtent */] === \"[{}]\") {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n });\r\n return _this;\r\n }\r\n /**\r\n * API to send pageAction event\r\n * @param pageActionEvent - PageAction event\r\n * @param properties - PageAction properties(Part C)\r\n */\r\n PageAction.prototype.trackPageAction = function (pageActionEvent, properties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * API to create and send a populated PageAction event\r\n * @param element - DOM element\r\n * @param overrideValues - PageAction overrides\r\n * @param customProperties - Custom properties(Part C)\r\n * @param isRightClick - Flag for mouse right clicks\r\n */\r\n PageAction.prototype.capturePageAction = function (element, overrideValues, customProperties, isRightClick) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return PageAction;\r\n}(WebEvent));\r\nexport { PageAction };\r\n//# sourceMappingURL=PageAction.js.map"],"names":[],"mappings":";;;;AAAA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;2DAiBM,CAAC;;;;;;sBACe;AACtB;AACA;AACA"}
1
+ {"version":3,"file":"PageAction.js.map","sources":["PageAction.js"],"sourcesContent":["/**\r\n* @copyright Microsoft 2020\r\n*/\r\nimport { __extends } from \"tslib\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { strNotSpecified } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, getPerformance, objExtend, objForEachKey } from \"@microsoft/applicationinsights-core-js\";\r\nimport { getClickTarget } from \"../DataCollector\";\r\nimport { _DYN_ACTION_TYPE, _DYN_BEHAVIOR, _DYN_CAPTURE_PAGE_ACTION, _DYN_CLICK_COORDINATES, _DYN_CLICK_COORDINATE_X, _DYN_CLICK_COORDINATE_Y, _DYN_CONTENT, _DYN_CONTENT_NAME, _DYN_CORE_DATA, _DYN_DATA, _DYN_DATA_TAGS, _DYN_GET_ELEMENT_CONTENT, _DYN_NAME, _DYN_PAGE_NAME, _DYN_PAGE_TYPE, _DYN_PARENT_DATA_TAG, _DYN_PARENT_ID, _DYN_PROPERTIES, _DYN_REF_URI, _DYN_SET_COMMON_PROPERTIE4, _DYN_TRACK_PAGE_ACTION, _DYN__CONFIG, _DYN__GET_VALID_BEHAVIOR, _DYN__TRACE_LOGGER } from \"../__DynamicConstants\";\r\nimport { bracketIt, extractFieldFromObject, isValueAssigned } from \"../common/Utils\";\r\nimport { WebEvent } from \"./WebEvent\";\r\nvar PageAction = /** @class */ (function (_super) {\r\n __extends(PageAction, _super);\r\n function PageAction(clickAnalyticsPlugin, config, contentHandler, pageTagsCallback, metaTags, traceLogger) {\r\n var _this = _super.call(this, clickAnalyticsPlugin, config, contentHandler, pageTagsCallback, metaTags, traceLogger) || this;\r\n dynamicProto(PageAction, _this, function (_self, _base) {\r\n _self[_DYN_TRACK_PAGE_ACTION /* @min:%2etrackPageAction */] = function (pageActionEvent, properties) {\r\n // Get part A properties\r\n var ext = {};\r\n ext[\"web\"] = {};\r\n var event = {\r\n name: \"Microsoft.ApplicationInsights.{0}.Event\",\r\n baseType: \"EventData\",\r\n ext: ext,\r\n data: {},\r\n baseData: {}\r\n };\r\n _populateEventDataIfPresent(event.baseData, \"name\", pageActionEvent[_DYN_NAME /* @min:%2ename */]);\r\n _populateEventDataIfPresent(event[_DYN_DATA /* @min:%2edata */], \"baseTypeSource\", \"ClickEvent\");\r\n _populateEventDataIfPresent(event[_DYN_DATA /* @min:%2edata */], \"uri\", pageActionEvent.uri);\r\n _populateEventDataIfPresent(event[_DYN_DATA /* @min:%2edata */], \"pageType\", pageActionEvent[_DYN_PAGE_TYPE /* @min:%2epageType */]);\r\n _populateEventDataIfPresent(event[_DYN_DATA /* @min:%2edata */], \"properties\", pageActionEvent[_DYN_PROPERTIES /* @min:%2eproperties */]);\r\n _populateEventDataIfPresent(event[_DYN_DATA /* @min:%2edata */], \"actionType\", pageActionEvent[_DYN_ACTION_TYPE /* @min:%2eactionType */]);\r\n _populateEventDataIfPresent(event[_DYN_DATA /* @min:%2edata */], \"behavior\", pageActionEvent[_DYN_BEHAVIOR /* @min:%2ebehavior */]);\r\n _populateEventDataIfPresent(event[_DYN_DATA /* @min:%2edata */], \"clickCoordinates\", pageActionEvent[_DYN_CLICK_COORDINATES /* @min:%2eclickCoordinates */]);\r\n _populateEventDataIfPresent(event[_DYN_DATA /* @min:%2edata */], \"content\", pageActionEvent[_DYN_CONTENT /* @min:%2econtent */]);\r\n _populateEventDataIfPresent(event[_DYN_DATA /* @min:%2edata */], \"targetUri\", pageActionEvent.targetUri);\r\n _populateEventDataIfPresent(event[_DYN_DATA /* @min:%2edata */], \"timeToAction\", pageActionEvent.timeToAction);\r\n _populateEventDataIfPresent(event[_DYN_DATA /* @min:%2edata */], \"refUri\", pageActionEvent[_DYN_REF_URI /* @min:%2erefUri */]);\r\n _populateEventDataIfPresent(event.data, \"pageName\", pageActionEvent[_DYN_PAGE_NAME /* @min:%2epageName */]);\r\n _populateEventDataIfPresent(event[_DYN_DATA /* @min:%2edata */], \"parentId\", pageActionEvent[_DYN_PARENT_ID /* @min:%2eparentId */]);\r\n if (properties) {\r\n objForEachKey(properties, function (property, value) {\r\n if (!event[_DYN_DATA /* @min:%2edata */][property]) {\r\n _populateEventDataIfPresent(event[_DYN_DATA /* @min:%2edata */], property, value);\r\n }\r\n });\r\n }\r\n _self._clickAnalyticsPlugin.core.track(event);\r\n };\r\n /**\r\n * API to create and send a populated PageAction event\r\n * @param element - DOM element\r\n * @param overrideValues - PageAction overrides\r\n * @param customProperties - Custom properties(Part C)\r\n * @param isRightClick - Flag for mouse right clicks\r\n */\r\n _self[_DYN_CAPTURE_PAGE_ACTION /* @min:%2ecapturePageAction */] = function (element, overrideValues, customProperties, isRightClick) {\r\n overrideValues = !isValueAssigned(overrideValues) ? {} : overrideValues;\r\n var pageActionEvent = { name: \"\" };\r\n var pageActionProperties = isValueAssigned(customProperties) ? customProperties : {};\r\n _self[_DYN_SET_COMMON_PROPERTIE4 /* @min:%2esetCommonProperties */](pageActionEvent, overrideValues);\r\n pageActionEvent[_DYN_BEHAVIOR /* @min:%2ebehavior */] = _self._getBehavior(overrideValues);\r\n // element in scope is needed for below properties. We cannot pass element into the plugin call chain.\r\n // process them here.\r\n var elementContent = {};\r\n if (isRightClick) {\r\n // Default behavior for righ click\r\n pageActionEvent[_DYN_BEHAVIOR /* @min:%2ebehavior */] = _self[_DYN__CONFIG /* @min:%2e_config */].defaultRightClickBhvr;\r\n }\r\n // Fill PartB\r\n if (element) {\r\n pageActionEvent.targetUri = getClickTarget(element);\r\n elementContent = _self._contentHandler[_DYN_GET_ELEMENT_CONTENT /* @min:%2egetElementContent */](element); // collect id,cn tags\r\n // if the element has a data-*-bhvr attrib defined, use it.\r\n if (elementContent.bhvr && !isValueAssigned(overrideValues[_DYN_BEHAVIOR /* @min:%2ebehavior */])) {\r\n var currentBehavior = extractFieldFromObject(elementContent, \"bhvr\");\r\n pageActionEvent[_DYN_BEHAVIOR /* @min:%2ebehavior */] = _self[_DYN__GET_VALID_BEHAVIOR /* @min:%2e_getValidBehavior */](currentBehavior);\r\n }\r\n // Validate to ensure the minimum required field 'contentName' or 'id' is present. 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 (!isValueAssigned(elementContent.id) && !isValueAssigned(elementContent[_DYN_CONTENT_NAME /* @min:%2econtentName */])) {\r\n _throwInternal(_self[_DYN__TRACE_LOGGER /* @min:%2e_traceLogger */], 2 /* eLoggingSeverity.WARNING */, 102 /* _eInternalMessageId.InvalidContentBlob */, \"Missing attributes id or contentName in click event. Click event information will still be collected!\");\r\n }\r\n }\r\n pageActionEvent[_DYN_NAME /* @min:%2ename */] = elementContent.id || elementContent[_DYN_CONTENT_NAME /* @min:%2econtentName */] || strNotSpecified;\r\n pageActionEvent[_DYN_PARENT_ID /* @min:%2eparentId */] = elementContent.parentid || elementContent.parentName || strNotSpecified;\r\n if (isValueAssigned(overrideValues[_DYN_ACTION_TYPE /* @min:%2eactionType */])) {\r\n pageActionEvent[_DYN_ACTION_TYPE /* @min:%2eactionType */] = overrideValues[_DYN_ACTION_TYPE /* @min:%2eactionType */];\r\n }\r\n if (isValueAssigned(overrideValues[_DYN_CLICK_COORDINATE_X /* @min:%2eclickCoordinateX */]) && isValueAssigned(overrideValues[_DYN_CLICK_COORDINATE_Y /* @min:%2eclickCoordinateY */])) {\r\n pageActionEvent[_DYN_CLICK_COORDINATES /* @min:%2eclickCoordinates */] = overrideValues[_DYN_CLICK_COORDINATE_X /* @min:%2eclickCoordinateX */] + \"X\" + overrideValues[_DYN_CLICK_COORDINATE_Y /* @min:%2eclickCoordinateY */];\r\n }\r\n _sanitizePageActionEventContent(elementContent);\r\n pageActionEvent[_DYN_CONTENT /* @min:%2econtent */] = bracketIt(JSON.stringify(objExtend(elementContent, overrideValues && overrideValues.contentTags ? overrideValues.contentTags : {})));\r\n pageActionEvent.timeToAction = _getTimeToClick();\r\n pageActionEvent.refUri = isValueAssigned(overrideValues.refUri) ? overrideValues.refUri : _self._config[_DYN_CORE_DATA /* @min:%2ecoreData */].referrerUri;\r\n if (_isUndefinedEvent(pageActionEvent)) {\r\n return;\r\n }\r\n _self[_DYN_TRACK_PAGE_ACTION /* @min:%2etrackPageAction */](pageActionEvent, pageActionProperties);\r\n };\r\n // capture performance data into PageTags\r\n function _getTimeToClick() {\r\n var perf = getPerformance();\r\n if (perf && perf.timing) {\r\n var isNavigationStart = perf.timing.navigationStart;\r\n if (isNavigationStart && isNavigationStart !== 0) {\r\n return new Date().getTime() - isNavigationStart;\r\n }\r\n }\r\n return -1;\r\n }\r\n function _populateEventDataIfPresent(obj, property, value) {\r\n if (isValueAssigned(value)) {\r\n obj[property] = value;\r\n }\r\n }\r\n function _sanitizePageActionEventContent(pageActionContent) {\r\n if (pageActionContent) {\r\n delete pageActionContent.id;\r\n delete pageActionContent.parentid;\r\n delete pageActionContent.parentname;\r\n if (_self._config && _self._config[_DYN_DATA_TAGS /* @min:%2edataTags */] && isValueAssigned(_self[_DYN__CONFIG /* @min:%2e_config */][_DYN_DATA_TAGS /* @min:%2edataTags */][_DYN_PARENT_DATA_TAG /* @min:%2eparentDataTag */])) {\r\n delete pageActionContent[_self._config[_DYN_DATA_TAGS /* @min:%2edataTags */].parentDataTag];\r\n }\r\n }\r\n }\r\n function _isUndefinedEvent(pageActionEvent) {\r\n if (_self[_DYN__CONFIG /* @min:%2e_config */].dropInvalidEvents) {\r\n if (pageActionEvent[_DYN_NAME /* @min:%2ename */] === strNotSpecified\r\n && pageActionEvent[_DYN_PARENT_ID /* @min:%2eparentId */] === strNotSpecified\r\n && pageActionEvent[_DYN_CONTENT /* @min:%2econtent */] === \"[{}]\") {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n });\r\n return _this;\r\n }\r\n /**\r\n * API to send pageAction event\r\n * @param pageActionEvent - PageAction event\r\n * @param properties - PageAction properties(Part C)\r\n */\r\n PageAction.prototype.trackPageAction = function (pageActionEvent, properties) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * API to create and send a populated PageAction event\r\n * @param element - DOM element\r\n * @param overrideValues - PageAction overrides\r\n * @param customProperties - Custom properties(Part C)\r\n * @param isRightClick - Flag for mouse right clicks\r\n */\r\n PageAction.prototype.capturePageAction = function (element, overrideValues, customProperties, isRightClick) {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n return PageAction;\r\n}(WebEvent));\r\nexport { PageAction };\r\n//# sourceMappingURL=PageAction.js.map"],"names":[],"mappings":";;;;AAAA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;2DAiBM,CAAC;;;;;sBACe;AACtB;AACA;AACA"}
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Application Insights JavaScript SDK - Click Analytics, 3.0.0-beta.2210-01
2
+ * Application Insights JavaScript SDK - Click Analytics, 3.0.0-beta.2210-02
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
  /**
@@ -129,9 +129,8 @@ var WebEvent = /** @class */ (function () {
129
129
  // Removed Stub for WebEvent.prototype._setPageTags.
130
130
  // Removed Stub for WebEvent.prototype._getBehavior.
131
131
  // Removed Stub for WebEvent.prototype._getValidBehavior.
132
- // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any
132
+ // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any
133
133
  // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.
134
- // this will be removed when ES3 support is dropped.
135
134
  WebEvent.__ieDyn=1;
136
135
 
137
136
  return WebEvent;
@@ -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__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._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__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._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.0-beta.2210-01
2
+ * Application Insights JavaScript SDK - Click Analytics, 3.0.0-beta.2210-02
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
  /**
@@ -110,9 +110,8 @@ var AutoCaptureHandler = /** @class */ (function () {
110
110
  // handle automatic event firing on user click
111
111
  // Removed Stub for AutoCaptureHandler.prototype.click.
112
112
  // Removed Stub for AutoCaptureHandler.prototype._doUnload.
113
- // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any
113
+ // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any
114
114
  // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.
115
- // this will be removed when ES3 support is dropped.
116
115
  AutoCaptureHandler.__ieDyn=1;
117
116
 
118
117
  return AutoCaptureHandler;
@@ -1 +1 @@
1
- {"version":3,"file":"AutoCaptureHandler.js.map","sources":["AutoCaptureHandler.js"],"sourcesContent":["/**\r\n* @copyright Microsoft 2020\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { createUniqueNamespace, eventOff, eventOn, getDocument, getWindow, isNullOrUndefined, mergeEvtNamespace } from \"@microsoft/applicationinsights-core-js\";\r\nimport { ActionType } from \"../Enums\";\r\nimport { _DYN_ACTION_TYPE, _DYN_CAPTURE_PAGE_ACTION, _DYN_CLICK_COORDINATE_X, _DYN_CLICK_COORDINATE_Y, _DYN_CUSTOM_DATA_PREFIX, _DYN_DATA_TAGS, _DYN_INDEX_OF, _DYN_PARENT_NODE, _DYN_TAG_NAME, _DYN_TO_UPPER_CASE, _DYN__CONFIG } from \"../__DynamicConstants\";\r\nimport { isElementDnt, isKeyboardEnter, isKeyboardSpace, isLeftClick, isMiddleClick, isRightClick } from \"../common/Utils\";\r\nvar clickCaptureInputTypes = { BUTTON: true, CHECKBOX: true, RADIO: true, RESET: true, SUBMIT: true };\r\nvar AutoCaptureHandler = /** @class */ (function () {\r\n /**\r\n * @param analyticsPlugin - WebAnalytics plugin\r\n * @param traceLogger - Trace logger to log to console.\r\n */\r\n function AutoCaptureHandler(_analyticsPlugin, _config, _pageAction, _traceLogger) {\r\n this._analyticsPlugin = _analyticsPlugin;\r\n this._config = _config;\r\n this._pageAction = _pageAction;\r\n this._traceLogger = _traceLogger;\r\n var _evtNamespace = mergeEvtNamespace(createUniqueNamespace(\"AutoCaptureHandler\"), _analyticsPlugin._evtNamespace);\r\n dynamicProto(AutoCaptureHandler, this, function (_self) {\r\n _self.click = function () {\r\n var win = getWindow();\r\n var doc = getDocument();\r\n if (win) {\r\n // IE9 onwards addEventListener is available, 'click' event captures mouse click. mousedown works on other browsers\r\n var event_1 = (navigator.appVersion[_DYN_INDEX_OF /* @min:%2eindexOf */](\"MSIE\") !== -1) ? \"click\" : \"mousedown\";\r\n eventOn(win, event_1, _processClick, _evtNamespace);\r\n eventOn(win, \"keyup\", _processClick, _evtNamespace);\r\n }\r\n else if (doc) {\r\n // IE8 and below doesn't have addEventListener so it will use attachEvent\r\n // attaching to window does not work in IE8\r\n eventOn(doc, \"click\", _processClick, _evtNamespace);\r\n eventOn(doc, \"keyup\", _processClick, _evtNamespace);\r\n }\r\n };\r\n _self._doUnload = function (unloadCtx, unloadState, asyncCallback) {\r\n eventOff(getWindow(), null, null, _evtNamespace);\r\n eventOff(getDocument(), null, null, _evtNamespace);\r\n };\r\n function _capturePageAction(element, overrideValues, customProperties, isRightClick) {\r\n var donotTrackTag = _self._config.dataTags[_DYN_CUSTOM_DATA_PREFIX /* @min:%2ecustomDataPrefix */] + _self[_DYN__CONFIG /* @min:%2e_config */][_DYN_DATA_TAGS /* @min:%2edataTags */].dntDataTag;\r\n if (!isElementDnt(element, donotTrackTag)) {\r\n _self._pageAction[_DYN_CAPTURE_PAGE_ACTION /* @min:%2ecapturePageAction */](element, overrideValues, customProperties, isRightClick);\r\n }\r\n }\r\n // Process click event\r\n function _processClick(clickEvent) {\r\n var _a;\r\n var clickCaptureElements = { A: true, BUTTON: true, AREA: true, INPUT: true };\r\n var win = getWindow();\r\n if (isNullOrUndefined(clickEvent) && win) {\r\n clickEvent = win.event; // IE 8 does not pass the event\r\n }\r\n if (clickEvent) {\r\n var element = clickEvent.srcElement || clickEvent.target;\r\n // populate overrideValues\r\n var overrideValues = (_a = {},\r\n _a[_DYN_CLICK_COORDINATE_X /* @min:clickCoordinateX */] = clickEvent.pageX,\r\n _a[_DYN_CLICK_COORDINATE_Y /* @min:clickCoordinateY */] = clickEvent.pageY,\r\n _a);\r\n var isRightClickObj = isRightClick(clickEvent);\r\n if (isRightClickObj) {\r\n overrideValues[_DYN_ACTION_TYPE /* @min:%2eactionType */] = ActionType.CLICKRIGHT;\r\n }\r\n else if (isLeftClick(clickEvent)) {\r\n overrideValues[_DYN_ACTION_TYPE /* @min:%2eactionType */] = ActionType.CLICKLEFT;\r\n }\r\n else if (isKeyboardEnter(clickEvent)) {\r\n overrideValues[_DYN_ACTION_TYPE /* @min:%2eactionType */] = ActionType.KEYBOARDENTER;\r\n }\r\n else if (isKeyboardSpace(clickEvent)) {\r\n overrideValues[_DYN_ACTION_TYPE /* @min:%2eactionType */] = ActionType.KEYBOARDSPACE;\r\n }\r\n else if (isMiddleClick(clickEvent)) {\r\n overrideValues[_DYN_ACTION_TYPE /* @min:%2eactionType */] = ActionType.CLICKMIDDLE;\r\n }\r\n else {\r\n return;\r\n }\r\n while (element && element[_DYN_TAG_NAME /* @min:%2etagName */]) {\r\n // control property will be available for <label> elements with 'for' attribute, only use it when is a\r\n // valid JSLL capture element to avoid infinite loops\r\n if (element.control && clickCaptureElements[element.control[_DYN_TAG_NAME /* @min:%2etagName */][_DYN_TO_UPPER_CASE /* @min:%2etoUpperCase */]()]) {\r\n element = element.control;\r\n }\r\n var tagNameUpperCased = element[_DYN_TAG_NAME /* @min:%2etagName */][_DYN_TO_UPPER_CASE /* @min:%2etoUpperCase */]();\r\n if (!clickCaptureElements[tagNameUpperCased]) {\r\n element = element.parentElement || element[_DYN_PARENT_NODE /* @min:%2eparentNode */];\r\n continue;\r\n }\r\n else {\r\n // Check allowed INPUT types\r\n var sendEvent = tagNameUpperCased === \"INPUT\" ? clickCaptureInputTypes[element.type[_DYN_TO_UPPER_CASE /* @min:%2etoUpperCase */]()] : true;\r\n if (sendEvent) {\r\n _capturePageAction(element, overrideValues, {}, isRightClickObj);\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n // handle automatic event firing on user click\r\n AutoCaptureHandler.prototype.click = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n AutoCaptureHandler.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 return AutoCaptureHandler;\r\n}());\r\nexport { AutoCaptureHandler };\r\n//# sourceMappingURL=AutoCaptureHandler.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;2DAKM,CAAC;;;;;;8BACuB;AAC9B;AACA;AACA"}
1
+ {"version":3,"file":"AutoCaptureHandler.js.map","sources":["AutoCaptureHandler.js"],"sourcesContent":["/**\r\n* @copyright Microsoft 2020\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { createUniqueNamespace, eventOff, eventOn, getDocument, getWindow, isNullOrUndefined, mergeEvtNamespace } from \"@microsoft/applicationinsights-core-js\";\r\nimport { ActionType } from \"../Enums\";\r\nimport { _DYN_ACTION_TYPE, _DYN_CAPTURE_PAGE_ACTION, _DYN_CLICK_COORDINATE_X, _DYN_CLICK_COORDINATE_Y, _DYN_CUSTOM_DATA_PREFIX, _DYN_DATA_TAGS, _DYN_INDEX_OF, _DYN_PARENT_NODE, _DYN_TAG_NAME, _DYN_TO_UPPER_CASE, _DYN__CONFIG } from \"../__DynamicConstants\";\r\nimport { isElementDnt, isKeyboardEnter, isKeyboardSpace, isLeftClick, isMiddleClick, isRightClick } from \"../common/Utils\";\r\nvar clickCaptureInputTypes = { BUTTON: true, CHECKBOX: true, RADIO: true, RESET: true, SUBMIT: true };\r\nvar AutoCaptureHandler = /** @class */ (function () {\r\n /**\r\n * @param analyticsPlugin - WebAnalytics plugin\r\n * @param traceLogger - Trace logger to log to console.\r\n */\r\n function AutoCaptureHandler(_analyticsPlugin, _config, _pageAction, _traceLogger) {\r\n this._analyticsPlugin = _analyticsPlugin;\r\n this._config = _config;\r\n this._pageAction = _pageAction;\r\n this._traceLogger = _traceLogger;\r\n var _evtNamespace = mergeEvtNamespace(createUniqueNamespace(\"AutoCaptureHandler\"), _analyticsPlugin._evtNamespace);\r\n dynamicProto(AutoCaptureHandler, this, function (_self) {\r\n _self.click = function () {\r\n var win = getWindow();\r\n var doc = getDocument();\r\n if (win) {\r\n // IE9 onwards addEventListener is available, 'click' event captures mouse click. mousedown works on other browsers\r\n var event_1 = (navigator.appVersion[_DYN_INDEX_OF /* @min:%2eindexOf */](\"MSIE\") !== -1) ? \"click\" : \"mousedown\";\r\n eventOn(win, event_1, _processClick, _evtNamespace);\r\n eventOn(win, \"keyup\", _processClick, _evtNamespace);\r\n }\r\n else if (doc) {\r\n // IE8 and below doesn't have addEventListener so it will use attachEvent\r\n // attaching to window does not work in IE8\r\n eventOn(doc, \"click\", _processClick, _evtNamespace);\r\n eventOn(doc, \"keyup\", _processClick, _evtNamespace);\r\n }\r\n };\r\n _self._doUnload = function (unloadCtx, unloadState, asyncCallback) {\r\n eventOff(getWindow(), null, null, _evtNamespace);\r\n eventOff(getDocument(), null, null, _evtNamespace);\r\n };\r\n function _capturePageAction(element, overrideValues, customProperties, isRightClick) {\r\n var donotTrackTag = _self._config.dataTags[_DYN_CUSTOM_DATA_PREFIX /* @min:%2ecustomDataPrefix */] + _self[_DYN__CONFIG /* @min:%2e_config */][_DYN_DATA_TAGS /* @min:%2edataTags */].dntDataTag;\r\n if (!isElementDnt(element, donotTrackTag)) {\r\n _self._pageAction[_DYN_CAPTURE_PAGE_ACTION /* @min:%2ecapturePageAction */](element, overrideValues, customProperties, isRightClick);\r\n }\r\n }\r\n // Process click event\r\n function _processClick(clickEvent) {\r\n var _a;\r\n var clickCaptureElements = { A: true, BUTTON: true, AREA: true, INPUT: true };\r\n var win = getWindow();\r\n if (isNullOrUndefined(clickEvent) && win) {\r\n clickEvent = win.event; // IE 8 does not pass the event\r\n }\r\n if (clickEvent) {\r\n var element = clickEvent.srcElement || clickEvent.target;\r\n // populate overrideValues\r\n var overrideValues = (_a = {},\r\n _a[_DYN_CLICK_COORDINATE_X /* @min:clickCoordinateX */] = clickEvent.pageX,\r\n _a[_DYN_CLICK_COORDINATE_Y /* @min:clickCoordinateY */] = clickEvent.pageY,\r\n _a);\r\n var isRightClickObj = isRightClick(clickEvent);\r\n if (isRightClickObj) {\r\n overrideValues[_DYN_ACTION_TYPE /* @min:%2eactionType */] = ActionType.CLICKRIGHT;\r\n }\r\n else if (isLeftClick(clickEvent)) {\r\n overrideValues[_DYN_ACTION_TYPE /* @min:%2eactionType */] = ActionType.CLICKLEFT;\r\n }\r\n else if (isKeyboardEnter(clickEvent)) {\r\n overrideValues[_DYN_ACTION_TYPE /* @min:%2eactionType */] = ActionType.KEYBOARDENTER;\r\n }\r\n else if (isKeyboardSpace(clickEvent)) {\r\n overrideValues[_DYN_ACTION_TYPE /* @min:%2eactionType */] = ActionType.KEYBOARDSPACE;\r\n }\r\n else if (isMiddleClick(clickEvent)) {\r\n overrideValues[_DYN_ACTION_TYPE /* @min:%2eactionType */] = ActionType.CLICKMIDDLE;\r\n }\r\n else {\r\n return;\r\n }\r\n while (element && element[_DYN_TAG_NAME /* @min:%2etagName */]) {\r\n // control property will be available for <label> elements with 'for' attribute, only use it when is a\r\n // valid JSLL capture element to avoid infinite loops\r\n if (element.control && clickCaptureElements[element.control[_DYN_TAG_NAME /* @min:%2etagName */][_DYN_TO_UPPER_CASE /* @min:%2etoUpperCase */]()]) {\r\n element = element.control;\r\n }\r\n var tagNameUpperCased = element[_DYN_TAG_NAME /* @min:%2etagName */][_DYN_TO_UPPER_CASE /* @min:%2etoUpperCase */]();\r\n if (!clickCaptureElements[tagNameUpperCased]) {\r\n element = element.parentElement || element[_DYN_PARENT_NODE /* @min:%2eparentNode */];\r\n continue;\r\n }\r\n else {\r\n // Check allowed INPUT types\r\n var sendEvent = tagNameUpperCased === \"INPUT\" ? clickCaptureInputTypes[element.type[_DYN_TO_UPPER_CASE /* @min:%2etoUpperCase */]()] : true;\r\n if (sendEvent) {\r\n _capturePageAction(element, overrideValues, {}, isRightClickObj);\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n // handle automatic event firing on user click\r\n AutoCaptureHandler.prototype.click = function () {\r\n // @DynamicProtoStub -- DO NOT add any code as this will be removed during packaging\r\n };\r\n AutoCaptureHandler.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 return AutoCaptureHandler;\r\n}());\r\nexport { AutoCaptureHandler };\r\n//# sourceMappingURL=AutoCaptureHandler.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;2DAKM,CAAC;;;;;8BACuB;AAC9B;AACA;AACA"}
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Application Insights JavaScript SDK - Click Analytics, 3.0.0-beta.2210-01
2
+ * Application Insights JavaScript SDK - Click Analytics, 3.0.0-beta.2210-02
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
  /**
@@ -202,7 +202,7 @@ var DomContentHandler = /** @class */ (function () {
202
202
  /**
203
203
  * Gets the default content name.
204
204
  * @param element - An html element
205
- * @param useDefaultContentNameOrId -Flag indicating if an element is market PII.
205
+ * @param useDefaultContentNameOrId - Flag indicating if an element is market PII.
206
206
  * @returns Content name
207
207
  */
208
208
  function _getDefaultContentName(element, useDefaultContentName) {
@@ -316,9 +316,8 @@ var DomContentHandler = /** @class */ (function () {
316
316
  }
317
317
  // Removed Stub for DomContentHandler.prototype.getMetadata.
318
318
  // Removed Stub for DomContentHandler.prototype.getElementContent.
319
- // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any
319
+ // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any
320
320
  // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.
321
- // this will be removed when ES3 support is dropped.
322
321
  DomContentHandler.__ieDyn=1;
323
322
 
324
323
  return DomContentHandler;