@microsoft/applicationinsights-clickanalytics-js 2.7.5-nightly.2204-03 → 2.7.6

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 (79) hide show
  1. package/browser/ai.clck.2.7.6.cjs.js +2013 -0
  2. package/browser/ai.clck.2.7.6.cjs.js.map +1 -0
  3. package/browser/ai.clck.2.7.6.cjs.min.js +6 -0
  4. package/browser/ai.clck.2.7.6.cjs.min.js.map +1 -0
  5. package/browser/ai.clck.2.7.6.gbl.js +2017 -0
  6. package/browser/ai.clck.2.7.6.gbl.js.map +1 -0
  7. package/browser/ai.clck.2.7.6.gbl.min.js +6 -0
  8. package/browser/ai.clck.2.7.6.gbl.min.js.map +1 -0
  9. package/browser/ai.clck.2.7.6.integrity.json +66 -0
  10. package/browser/ai.clck.2.7.6.js +2019 -0
  11. package/browser/ai.clck.2.7.6.js.map +1 -0
  12. package/browser/ai.clck.2.7.6.min.js +6 -0
  13. package/browser/ai.clck.2.7.6.min.js.map +1 -0
  14. package/browser/ai.clck.2.cjs.js +818 -1688
  15. package/browser/ai.clck.2.cjs.js.map +1 -1
  16. package/browser/ai.clck.2.cjs.min.js +2 -2
  17. package/browser/ai.clck.2.cjs.min.js.map +1 -1
  18. package/browser/ai.clck.2.gbl.js +818 -1688
  19. package/browser/ai.clck.2.gbl.js.map +1 -1
  20. package/browser/ai.clck.2.gbl.min.js +2 -2
  21. package/browser/ai.clck.2.gbl.min.js.map +1 -1
  22. package/browser/ai.clck.2.js +818 -1688
  23. package/browser/ai.clck.2.js.map +1 -1
  24. package/browser/ai.clck.2.min.js +2 -2
  25. package/browser/ai.clck.2.min.js.map +1 -1
  26. package/dist/applicationinsights-clickanalytics-js.api.json +27 -29
  27. package/dist/applicationinsights-clickanalytics-js.api.md +0 -1
  28. package/dist/applicationinsights-clickanalytics-js.d.ts +5 -2
  29. package/dist/applicationinsights-clickanalytics-js.js +818 -1688
  30. package/dist/applicationinsights-clickanalytics-js.js.map +1 -1
  31. package/dist/applicationinsights-clickanalytics-js.min.js +2 -2
  32. package/dist/applicationinsights-clickanalytics-js.min.js.map +1 -1
  33. package/dist/applicationinsights-clickanalytics-js.rollup.d.ts +5 -2
  34. package/dist-esm/Behaviours.js +1 -1
  35. package/dist-esm/ClickAnalyticsPlugin.js +50 -74
  36. package/dist-esm/ClickAnalyticsPlugin.js.map +1 -1
  37. package/dist-esm/DataCollector.js +2 -4
  38. package/dist-esm/DataCollector.js.map +1 -1
  39. package/dist-esm/Enums.js +1 -1
  40. package/dist-esm/Interfaces/Datamodel.js +1 -1
  41. package/dist-esm/applicationinsights-clickanalytics-js.js +1 -1
  42. package/dist-esm/common/Utils.js +1 -1
  43. package/dist-esm/events/PageAction.js +126 -128
  44. package/dist-esm/events/PageAction.js.map +1 -1
  45. package/dist-esm/events/WebEvent.js +94 -109
  46. package/dist-esm/events/WebEvent.js.map +1 -1
  47. package/dist-esm/handlers/AutoCaptureHandler.js +83 -85
  48. package/dist-esm/handlers/AutoCaptureHandler.js.map +1 -1
  49. package/dist-esm/handlers/DomContentHandler.js +276 -279
  50. package/dist-esm/handlers/DomContentHandler.js.map +1 -1
  51. package/package.json +56 -59
  52. package/src/ClickAnalyticsPlugin.ts +47 -92
  53. package/src/DataCollector.ts +22 -24
  54. package/src/Interfaces/Datamodel.ts +21 -20
  55. package/src/common/Utils.ts +8 -8
  56. package/src/events/PageAction.ts +131 -165
  57. package/src/events/WebEvent.ts +78 -147
  58. package/src/handlers/AutoCaptureHandler.ts +79 -89
  59. package/src/handlers/DomContentHandler.ts +303 -336
  60. package/types/ClickAnalyticsPlugin.d.ts +4 -1
  61. package/types/Interfaces/Datamodel.d.ts +2 -3
  62. package/types/events/PageAction.d.ts +6 -6
  63. package/types/events/WebEvent.d.ts +17 -17
  64. package/types/handlers/AutoCaptureHandler.d.ts +10 -2
  65. package/types/handlers/DomContentHandler.d.ts +50 -3
  66. package/types/tsdoc-metadata.json +1 -1
  67. package/browser/ai.clck.2.7.5-nightly.2204-03.cjs.js +0 -2883
  68. package/browser/ai.clck.2.7.5-nightly.2204-03.cjs.js.map +0 -1
  69. package/browser/ai.clck.2.7.5-nightly.2204-03.cjs.min.js +0 -6
  70. package/browser/ai.clck.2.7.5-nightly.2204-03.cjs.min.js.map +0 -1
  71. package/browser/ai.clck.2.7.5-nightly.2204-03.gbl.js +0 -2887
  72. package/browser/ai.clck.2.7.5-nightly.2204-03.gbl.js.map +0 -1
  73. package/browser/ai.clck.2.7.5-nightly.2204-03.gbl.min.js +0 -6
  74. package/browser/ai.clck.2.7.5-nightly.2204-03.gbl.min.js.map +0 -1
  75. package/browser/ai.clck.2.7.5-nightly.2204-03.integrity.json +0 -66
  76. package/browser/ai.clck.2.7.5-nightly.2204-03.js +0 -2889
  77. package/browser/ai.clck.2.7.5-nightly.2204-03.js.map +0 -1
  78. package/browser/ai.clck.2.7.5-nightly.2204-03.min.js +0 -6
  79. package/browser/ai.clck.2.7.5-nightly.2204-03.min.js.map +0 -1
@@ -1,11 +1,10 @@
1
1
  /*
2
- * Application Insights JavaScript SDK - Click Analytics, 2.7.5-nightly.2204-03
2
+ * Application Insights JavaScript SDK - Click Analytics, 2.7.6
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
  /**
6
6
  * @copyright Microsoft 2020
7
7
  */
8
- import dynamicProto from "@microsoft/dynamicproto-js";
9
8
  import { isValueAssigned, extend } from "../common/Utils";
10
9
  import * as DataCollector from "../DataCollector";
11
10
  import { getLocation, hasWindow } from "@microsoft/applicationinsights-core-js";
@@ -19,115 +18,101 @@ var WebEvent = /** @class */ (function () {
19
18
  * @param metaTags - Meta tags
20
19
  * @param traceLogger - Trace logger to log to console.
21
20
  */
22
- function WebEvent(clickAnalyticsPlugin, config, contentHandler, pageTagsCallback, metaTags, traceLogger) {
23
- dynamicProto(WebEvent, this, function (_self) {
24
- _initDefaults();
25
- function _initDefaults() {
26
- _self._pageTags = {};
27
- _self._clickAnalyticsPlugin = clickAnalyticsPlugin;
28
- _self._config = config;
29
- _self._contentHandler = contentHandler;
30
- _self._pageTagsCallback = pageTagsCallback;
31
- _self._metaTags = metaTags;
32
- _self._traceLogger = traceLogger;
33
- }
34
- _self.setBasicProperties = function (event, overrideValues) {
35
- if (!isValueAssigned(event.name)) {
36
- event.pageName = DataCollector.getPageName(_self._config, overrideValues);
37
- }
38
- if (!isValueAssigned(event.uri) && hasWindow) {
39
- event.uri = DataCollector.getUri(_self._config, getLocation());
40
- }
41
- };
42
- /**
43
- * Sets common properties for events that are based on the WebEvent schema.
44
- * @param event - The event
45
- */
46
- _self.setCommonProperties = function (event, overrideValues) {
47
- _self.setBasicProperties(event, overrideValues);
48
- _self._setPageTags(event, overrideValues);
49
- // extract specific meta tags out of the pageTags.metaTags collection. These will go into assigned first class fields in the event.
50
- // the rest will go into pageTags.metaTags collection as is.
51
- _self._pageTypeMetaTag = _getMetaData(_self._metaTags, _self._config.coreData, "pageType");
52
- _self._behaviorMetaTag = _getMetaData(_self._metaTags, _self._config.coreData, "behavior");
53
- if (isValueAssigned(overrideValues.pageType)) {
54
- event.pageType = overrideValues.pageType;
55
- }
56
- // Only assign if not overriden and meta data is available
57
- if (isValueAssigned(_self._pageTypeMetaTag) && !isValueAssigned(event.pageType)) {
58
- event.pageType = _self._pageTypeMetaTag;
59
- }
60
- };
61
- /**
62
- * Sets pageTags.
63
- * @param event - The event
64
- */
65
- _self._setPageTags = function (event, overrideValues) {
66
- // Prepare the pageTags object that is mostly the same for all events. Event specific pageTags will be added inside event constructors.
67
- if (_self._pageTagsCallback) {
68
- _self._pageTags = extend(true, _self._pageTags, _self._pageTagsCallback());
69
- }
70
- if (isValueAssigned(overrideValues.pageTags)) {
71
- _self._pageTags = extend(true, _self._pageTags, overrideValues.pageTags);
72
- }
73
- // If metadata is present add it to pageTags property
74
- if (_self._metaTags) {
75
- _self._pageTags.metaTags = {};
76
- // Remove not supported meta data in pageTags.metaTags
77
- for (var metaTag in _self._metaTags) {
78
- if (metaTag != "behavior" && metaTag != "market" && metaTag != "pageType") {
79
- _self._pageTags.metaTags[metaTag] = _self._metaTags[metaTag];
80
- }
81
- }
82
- }
83
- // All metadata tags that must be saved as properties have been extracted at this point. Assign pageTags as is.
84
- event.properties = event.properties || {};
85
- event.properties["pageTags"] = _self._pageTags;
86
- };
87
- _self._getBehavior = function (overrideValues) {
88
- var behavior;
89
- // If override specified
90
- if (overrideValues && isValueAssigned(overrideValues.behavior)) {
91
- behavior = overrideValues.behavior;
92
- }
93
- else if (isValueAssigned(_self._behaviorMetaTag)) {
94
- // If behavior meta tag available
95
- behavior = _self._behaviorMetaTag;
96
- }
97
- return _self._getValidBehavior(behavior);
98
- };
99
- _self._getValidBehavior = function (behavior) {
100
- return _self._config.behaviorValidator(behavior);
101
- };
102
- _self._doUnload = function (unloadCtx, unloadState, asyncCallback) {
103
- _initDefaults();
104
- };
105
- /**
106
- * Get the specified metadata value from the collection
107
- * If overrideValue is specified in the config that takes precedence.
108
- * @param metaTags - Meta data.
109
- * @param coreData - Coredata values from configuration.
110
- * @param metaTagName - Name of the metaTag to get.
111
- * @returns Meta data value
112
- */
113
- function _getMetaData(metaTags, coreData, metaTagName) {
114
- if (coreData && coreData[metaTagName]) {
115
- return coreData[metaTagName];
116
- }
117
- if (metaTags) {
118
- return metaTags[metaTagName];
119
- }
120
- return "";
121
- }
122
- });
21
+ function WebEvent(_clickAnalyticsPlugin, _config, _contentHandler, _pageTagsCallback, _metaTags, _traceLogger) {
22
+ this._clickAnalyticsPlugin = _clickAnalyticsPlugin;
23
+ this._config = _config;
24
+ this._contentHandler = _contentHandler;
25
+ this._pageTagsCallback = _pageTagsCallback;
26
+ this._metaTags = _metaTags;
27
+ this._traceLogger = _traceLogger;
28
+ this._pageTags = {};
123
29
  }
124
30
  // Fill common PartB fields
125
- // Removed Stub for WebEvent.prototype.setBasicProperties.
126
- // Removed Stub for WebEvent.prototype.setCommonProperties.
127
- // Removed Stub for WebEvent.prototype._doUnload.
128
- // Removed Stub for WebEvent.prototype._setPageTags.
129
- // Removed Stub for WebEvent.prototype._getBehavior.
130
- // Removed Stub for WebEvent.prototype._getValidBehavior.
31
+ WebEvent.prototype.setBasicProperties = function (event, overrideValues) {
32
+ if (!isValueAssigned(event.name)) {
33
+ event.pageName = DataCollector.getPageName(this._config, overrideValues);
34
+ }
35
+ if (!isValueAssigned(event.uri) && hasWindow) {
36
+ event.uri = DataCollector.getUri(this._config, getLocation());
37
+ }
38
+ };
39
+ /**
40
+ * Sets common properties for events that are based on the WebEvent schema.
41
+ * @param event - The event
42
+ */
43
+ WebEvent.prototype.setCommonProperties = function (event, overrideValues) {
44
+ this.setBasicProperties(event, overrideValues);
45
+ this._setPageTags(event, overrideValues);
46
+ // extract specific meta tags out of the pageTags.metaTags collection. These will go into assigned first class fields in the event.
47
+ // the rest will go into pageTags.metaTags collection as is.
48
+ this._pageTypeMetaTag = this._getMetaData(this._metaTags, this._config.coreData, "pageType");
49
+ this._behaviorMetaTag = this._getMetaData(this._metaTags, this._config.coreData, "behavior");
50
+ if (isValueAssigned(overrideValues.pageType)) {
51
+ event.pageType = overrideValues.pageType;
52
+ }
53
+ // Only assign if not overriden and meta data is available
54
+ if (isValueAssigned(this._pageTypeMetaTag) && !isValueAssigned(event.pageType)) {
55
+ event.pageType = this._pageTypeMetaTag;
56
+ }
57
+ };
58
+ /**
59
+ * Sets pageTags.
60
+ * @param event - The event
61
+ */
62
+ WebEvent.prototype._setPageTags = function (event, overrideValues) {
63
+ // Prepare the pageTags object that is mostly the same for all events. Event specific pageTags will be added inside event constructors.
64
+ if (this._pageTagsCallback) {
65
+ this._pageTags = extend(true, this._pageTags, this._pageTagsCallback());
66
+ }
67
+ if (isValueAssigned(overrideValues.pageTags)) {
68
+ this._pageTags = extend(true, this._pageTags, overrideValues.pageTags);
69
+ }
70
+ // If metadata is present add it to pageTags property
71
+ if (this._metaTags) {
72
+ this._pageTags.metaTags = {};
73
+ // Remove not supported meta data in pageTags.metaTags
74
+ for (var metaTag in this._metaTags) {
75
+ if (metaTag != "behavior" && metaTag != "market" && metaTag != "pageType") {
76
+ this._pageTags.metaTags[metaTag] = this._metaTags[metaTag];
77
+ }
78
+ }
79
+ }
80
+ // All metadata tags that must be saved as properties have been extracted at this point. Assign pageTags as is.
81
+ event.properties = event.properties || {};
82
+ event.properties["pageTags"] = this._pageTags;
83
+ };
84
+ WebEvent.prototype._getBehavior = function (overrideValues) {
85
+ var behavior;
86
+ // If override specified
87
+ if (overrideValues && isValueAssigned(overrideValues.behavior)) {
88
+ behavior = overrideValues.behavior;
89
+ }
90
+ // If behavior meta tag available
91
+ else if (isValueAssigned(this._behaviorMetaTag)) {
92
+ behavior = this._behaviorMetaTag;
93
+ }
94
+ return this._getValidBehavior(behavior);
95
+ };
96
+ WebEvent.prototype._getValidBehavior = function (behavior) {
97
+ return this._config.behaviorValidator(behavior);
98
+ };
99
+ /**
100
+ * Get the specified metadata value from the collection
101
+ * If overrideValue is specified in the config that takes precedence.
102
+ * @param metaTags - Meta data.
103
+ * @param coreData - Coredata values from configuration.
104
+ * @param metaTagName - Name of the metaTag to get.
105
+ * @returns Meta data value
106
+ */
107
+ WebEvent.prototype._getMetaData = function (metaTags, coreData, metaTagName) {
108
+ if (coreData && coreData[metaTagName]) {
109
+ return coreData[metaTagName];
110
+ }
111
+ else if (metaTags) {
112
+ return metaTags[metaTagName];
113
+ }
114
+ return "";
115
+ };
131
116
  return WebEvent;
132
117
  }());
133
118
  export { 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 { isValueAssigned, extend } from \"../common/Utils\";\r\nimport * as DataCollector from \"../DataCollector\";\r\nimport { getLocation, hasWindow } from \"@microsoft/applicationinsights-core-js\";\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._pageTags = {};\r\n _self._clickAnalyticsPlugin = clickAnalyticsPlugin;\r\n _self._config = config;\r\n _self._contentHandler = contentHandler;\r\n _self._pageTagsCallback = pageTagsCallback;\r\n _self._metaTags = metaTags;\r\n _self._traceLogger = traceLogger;\r\n }\r\n _self.setBasicProperties = function (event, overrideValues) {\r\n if (!isValueAssigned(event.name)) {\r\n event.pageName = DataCollector.getPageName(_self._config, overrideValues);\r\n }\r\n if (!isValueAssigned(event.uri) && hasWindow) {\r\n event.uri = DataCollector.getUri(_self._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.setCommonProperties = function (event, overrideValues) {\r\n _self.setBasicProperties(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.coreData, \"pageType\");\r\n _self._behaviorMetaTag = _getMetaData(_self._metaTags, _self._config.coreData, \"behavior\");\r\n if (isValueAssigned(overrideValues.pageType)) {\r\n event.pageType = overrideValues.pageType;\r\n }\r\n // Only assign if not overriden and meta data is available\r\n if (isValueAssigned(_self._pageTypeMetaTag) && !isValueAssigned(event.pageType)) {\r\n event.pageType = _self._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._pageTagsCallback) {\r\n _self._pageTags = extend(true, _self._pageTags, _self._pageTagsCallback());\r\n }\r\n if (isValueAssigned(overrideValues.pageTags)) {\r\n _self._pageTags = extend(true, _self._pageTags, overrideValues.pageTags);\r\n }\r\n // If metadata is present add it to pageTags property\r\n if (_self._metaTags) {\r\n _self._pageTags.metaTags = {};\r\n // Remove not supported meta data in pageTags.metaTags\r\n for (var metaTag in _self._metaTags) {\r\n if (metaTag != \"behavior\" && metaTag != \"market\" && metaTag != \"pageType\") {\r\n _self._pageTags.metaTags[metaTag] = _self._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.properties = event.properties || {};\r\n event.properties[\"pageTags\"] = _self._pageTags;\r\n };\r\n _self._getBehavior = function (overrideValues) {\r\n var behavior;\r\n // If override specified\r\n if (overrideValues && isValueAssigned(overrideValues.behavior)) {\r\n behavior = overrideValues.behavior;\r\n }\r\n else if (isValueAssigned(_self._behaviorMetaTag)) {\r\n // If behavior meta tag available\r\n behavior = _self._behaviorMetaTag;\r\n }\r\n return _self._getValidBehavior(behavior);\r\n };\r\n _self._getValidBehavior = function (behavior) {\r\n return _self._config.behaviorValidator(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;;;;;yDAmCM;AACN;AACA;AACA;AACA"}
1
+ {"version":3,"file":"WebEvent.js.map","sources":["WebEvent.js"],"sourcesContent":["/**\r\n * @copyright Microsoft 2020\r\n */\r\nimport { isValueAssigned, extend } from \"../common/Utils\";\r\nimport * as DataCollector from \"../DataCollector\";\r\nimport { getLocation, hasWindow } from \"@microsoft/applicationinsights-core-js\";\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 this._clickAnalyticsPlugin = _clickAnalyticsPlugin;\r\n this._config = _config;\r\n this._contentHandler = _contentHandler;\r\n this._pageTagsCallback = _pageTagsCallback;\r\n this._metaTags = _metaTags;\r\n this._traceLogger = _traceLogger;\r\n this._pageTags = {};\r\n }\r\n // Fill common PartB fields\r\n WebEvent.prototype.setBasicProperties = function (event, overrideValues) {\r\n if (!isValueAssigned(event.name)) {\r\n event.pageName = DataCollector.getPageName(this._config, overrideValues);\r\n }\r\n if (!isValueAssigned(event.uri) && hasWindow) {\r\n event.uri = DataCollector.getUri(this._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 WebEvent.prototype.setCommonProperties = function (event, overrideValues) {\r\n this.setBasicProperties(event, overrideValues);\r\n this._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 this._pageTypeMetaTag = this._getMetaData(this._metaTags, this._config.coreData, \"pageType\");\r\n this._behaviorMetaTag = this._getMetaData(this._metaTags, this._config.coreData, \"behavior\");\r\n if (isValueAssigned(overrideValues.pageType)) {\r\n event.pageType = overrideValues.pageType;\r\n }\r\n // Only assign if not overriden and meta data is available\r\n if (isValueAssigned(this._pageTypeMetaTag) && !isValueAssigned(event.pageType)) {\r\n event.pageType = this._pageTypeMetaTag;\r\n }\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 // Prepare the pageTags object that is mostly the same for all events. Event specific pageTags will be added inside event constructors.\r\n if (this._pageTagsCallback) {\r\n this._pageTags = extend(true, this._pageTags, this._pageTagsCallback());\r\n }\r\n if (isValueAssigned(overrideValues.pageTags)) {\r\n this._pageTags = extend(true, this._pageTags, overrideValues.pageTags);\r\n }\r\n // If metadata is present add it to pageTags property\r\n if (this._metaTags) {\r\n this._pageTags.metaTags = {};\r\n // Remove not supported meta data in pageTags.metaTags\r\n for (var metaTag in this._metaTags) {\r\n if (metaTag != \"behavior\" && metaTag != \"market\" && metaTag != \"pageType\") {\r\n this._pageTags.metaTags[metaTag] = this._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.properties = event.properties || {};\r\n event.properties[\"pageTags\"] = this._pageTags;\r\n };\r\n WebEvent.prototype._getBehavior = function (overrideValues) {\r\n var behavior;\r\n // If override specified\r\n if (overrideValues && isValueAssigned(overrideValues.behavior)) {\r\n behavior = overrideValues.behavior;\r\n }\r\n // If behavior meta tag available\r\n else if (isValueAssigned(this._behaviorMetaTag)) {\r\n behavior = this._behaviorMetaTag;\r\n }\r\n return this._getValidBehavior(behavior);\r\n };\r\n WebEvent.prototype._getValidBehavior = function (behavior) {\r\n return this._config.behaviorValidator(behavior);\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 WebEvent.prototype._getMetaData = function (metaTags, coreData, metaTagName) {\r\n if (coreData && coreData[metaTagName]) {\r\n return coreData[metaTagName];\r\n }\r\n else if (metaTags) {\r\n return metaTags[metaTagName];\r\n }\r\n return \"\";\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"}
@@ -1,12 +1,11 @@
1
1
  /*
2
- * Application Insights JavaScript SDK - Click Analytics, 2.7.5-nightly.2204-03
2
+ * Application Insights JavaScript SDK - Click Analytics, 2.7.6
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
  /**
6
6
  * @copyright Microsoft 2020
7
7
  */
8
- import dynamicProto from "@microsoft/dynamicproto-js";
9
- import { getWindow, getDocument, isNullOrUndefined, mergeEvtNamespace, createUniqueNamespace, eventOn, eventOff } from "@microsoft/applicationinsights-core-js";
8
+ import { getWindow, getDocument, isNullOrUndefined, attachEvent } from "@microsoft/applicationinsights-core-js";
10
9
  import { isRightClick, isLeftClick, isKeyboardEnter, isKeyboardSpace, isMiddleClick, isElementDnt } from "../common/Utils";
11
10
  import { ActionType } from "../Enums";
12
11
  var clickCaptureInputTypes = { BUTTON: true, CHECKBOX: true, RADIO: true, RESET: true, SUBMIT: true };
@@ -20,94 +19,93 @@ var AutoCaptureHandler = /** @class */ (function () {
20
19
  this._config = _config;
21
20
  this._pageAction = _pageAction;
22
21
  this._traceLogger = _traceLogger;
23
- var _evtNamespace = mergeEvtNamespace(createUniqueNamespace("AutoCaptureHandler"), _analyticsPlugin._evtNamespace);
24
- dynamicProto(AutoCaptureHandler, this, function (_self) {
25
- _self.click = function () {
26
- var win = getWindow();
27
- var doc = getDocument();
28
- if (win) {
29
- // IE9 onwards addEventListener is available, 'click' event captures mouse click. mousedown works on other browsers
30
- var event_1 = (navigator.appVersion.indexOf("MSIE") !== -1) ? "click" : "mousedown";
31
- eventOn(win, event_1, _processClick, _evtNamespace);
32
- eventOn(win, "keyup", _processClick, _evtNamespace);
33
- }
34
- else if (doc) {
35
- // IE8 and below doesn't have addEventListener so it will use attachEvent
36
- // attaching to window does not work in IE8
37
- eventOn(doc, "click", _processClick, _evtNamespace);
38
- eventOn(doc, "keyup", _processClick, _evtNamespace);
39
- }
40
- };
41
- _self._doUnload = function (unloadCtx, unloadState, asyncCallback) {
42
- eventOff(getWindow(), null, null, _evtNamespace);
43
- eventOff(getDocument(), null, null, _evtNamespace);
22
+ }
23
+ // handle automatic event firing on user click
24
+ AutoCaptureHandler.prototype.click = function () {
25
+ var _this = this;
26
+ var win = getWindow();
27
+ var doc = getDocument();
28
+ if (win) {
29
+ // IE9 onwards addEventListener is available, 'click' event captures mouse click. mousedown works on other browsers
30
+ var event_1 = (navigator.appVersion.indexOf("MSIE") !== -1) ? "click" : "mousedown";
31
+ attachEvent(win, event_1, function (evt) { _this._processClick(evt); });
32
+ attachEvent(win, "keyup", function (evt) { _this._processClick(evt); });
33
+ }
34
+ else if (doc) {
35
+ // IE8 and below doesn't have addEventListener so it will use attachEvent
36
+ // attaching to window does not work in IE8
37
+ attachEvent(doc, "click", function (evt) { _this._processClick(evt); });
38
+ attachEvent(doc, "keyup", function (evt) { _this._processClick(evt); });
39
+ }
40
+ };
41
+ /**
42
+ * API to create and send a populated PageAction event
43
+ * @param element - DOM element
44
+ * @param overrideValues - PageAction overrides
45
+ * @param customProperties - Custom properties(Part C)
46
+ * @param isRightClick - Flag for mouse right clicks
47
+ */
48
+ AutoCaptureHandler.prototype.capturePageAction = function (element, overrideValues, customProperties, isRightClick) {
49
+ var donotTrackTag = this._config.dataTags.customDataPrefix + this._config.dataTags.dntDataTag;
50
+ if (!isElementDnt(element, donotTrackTag)) {
51
+ this._pageAction.capturePageAction(element, overrideValues, customProperties, isRightClick);
52
+ }
53
+ };
54
+ // Process click event
55
+ AutoCaptureHandler.prototype._processClick = function (clickEvent) {
56
+ var clickCaptureElements = { A: true, BUTTON: true, AREA: true, INPUT: true };
57
+ var win = getWindow();
58
+ if (isNullOrUndefined(clickEvent) && win) {
59
+ clickEvent = win.event; // IE 8 does not pass the event
60
+ }
61
+ if (clickEvent) {
62
+ var element = clickEvent.srcElement || clickEvent.target;
63
+ // populate overrideValues
64
+ var overrideValues = {
65
+ clickCoordinateX: clickEvent.pageX,
66
+ clickCoordinateY: clickEvent.pageY
44
67
  };
45
- function _capturePageAction(element, overrideValues, customProperties, isRightClick) {
46
- var donotTrackTag = _self._config.dataTags.customDataPrefix + _self._config.dataTags.dntDataTag;
47
- if (!isElementDnt(element, donotTrackTag)) {
48
- _self._pageAction.capturePageAction(element, overrideValues, customProperties, isRightClick);
49
- }
68
+ var isRightClickObj = isRightClick(clickEvent);
69
+ if (isRightClickObj) {
70
+ overrideValues.actionType = ActionType.CLICKRIGHT;
71
+ }
72
+ else if (isLeftClick(clickEvent)) {
73
+ overrideValues.actionType = ActionType.CLICKLEFT;
74
+ }
75
+ else if (isKeyboardEnter(clickEvent)) {
76
+ overrideValues.actionType = ActionType.KEYBOARDENTER;
77
+ }
78
+ else if (isKeyboardSpace(clickEvent)) {
79
+ overrideValues.actionType = ActionType.KEYBOARDSPACE;
50
80
  }
51
- // Process click event
52
- function _processClick(clickEvent) {
53
- var clickCaptureElements = { A: true, BUTTON: true, AREA: true, INPUT: true };
54
- var win = getWindow();
55
- if (isNullOrUndefined(clickEvent) && win) {
56
- clickEvent = win.event; // IE 8 does not pass the event
81
+ else if (isMiddleClick(clickEvent)) {
82
+ overrideValues.actionType = ActionType.CLICKMIDDLE;
83
+ }
84
+ else {
85
+ return;
86
+ }
87
+ while (element && element.tagName) {
88
+ // control property will be available for <label> elements with 'for' attribute, only use it when is a
89
+ // valid JSLL capture element to avoid infinite loops
90
+ if (element.control && clickCaptureElements[element.control.tagName.toUpperCase()]) {
91
+ element = element.control;
57
92
  }
58
- if (clickEvent) {
59
- var element = clickEvent.srcElement || clickEvent.target;
60
- // populate overrideValues
61
- var overrideValues = {
62
- clickCoordinateX: clickEvent.pageX,
63
- clickCoordinateY: clickEvent.pageY
64
- };
65
- var isRightClickObj = isRightClick(clickEvent);
66
- if (isRightClickObj) {
67
- overrideValues.actionType = ActionType.CLICKRIGHT;
68
- }
69
- else if (isLeftClick(clickEvent)) {
70
- overrideValues.actionType = ActionType.CLICKLEFT;
71
- }
72
- else if (isKeyboardEnter(clickEvent)) {
73
- overrideValues.actionType = ActionType.KEYBOARDENTER;
74
- }
75
- else if (isKeyboardSpace(clickEvent)) {
76
- overrideValues.actionType = ActionType.KEYBOARDSPACE;
77
- }
78
- else if (isMiddleClick(clickEvent)) {
79
- overrideValues.actionType = ActionType.CLICKMIDDLE;
80
- }
81
- else {
82
- return;
83
- }
84
- while (element && element.tagName) {
85
- // control property will be available for <label> elements with 'for' attribute, only use it when is a
86
- // valid JSLL capture element to avoid infinite loops
87
- if (element.control && clickCaptureElements[element.control.tagName.toUpperCase()]) {
88
- element = element.control;
89
- }
90
- var tagNameUpperCased = element.tagName.toUpperCase();
91
- if (!clickCaptureElements[tagNameUpperCased]) {
92
- element = element.parentElement || element.parentNode;
93
- continue;
94
- }
95
- else {
96
- // Check allowed INPUT types
97
- var sendEvent = tagNameUpperCased === "INPUT" ? clickCaptureInputTypes[element.type.toUpperCase()] : true;
98
- if (sendEvent) {
99
- _capturePageAction(element, overrideValues, {}, isRightClickObj);
100
- }
101
- break;
102
- }
93
+ var tagNameUpperCased = element.tagName.toUpperCase();
94
+ if (!clickCaptureElements[tagNameUpperCased]) {
95
+ element = element.parentElement || element.parentNode;
96
+ continue;
97
+ }
98
+ else {
99
+ // Check allowed INPUT types
100
+ var sendEvent = tagNameUpperCased === "INPUT" ? clickCaptureInputTypes[element.type.toUpperCase()] : true;
101
+ if (sendEvent) {
102
+ this.capturePageAction(element, overrideValues, {}, isRightClickObj);
103
103
  }
104
+ break;
104
105
  }
105
106
  }
106
- });
107
- }
108
- // handle automatic event firing on user click
109
- // Removed Stub for AutoCaptureHandler.prototype.click.
110
- // Removed Stub for AutoCaptureHandler.prototype._doUnload.
107
+ }
108
+ };
111
109
  return AutoCaptureHandler;
112
110
  }());
113
111
  export { 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 { getWindow, getDocument, isNullOrUndefined, mergeEvtNamespace, createUniqueNamespace, eventOn, eventOff } from \"@microsoft/applicationinsights-core-js\";\r\nimport { isRightClick, isLeftClick, isKeyboardEnter, isKeyboardSpace, isMiddleClick, isElementDnt } from \"../common/Utils\";\r\nimport { ActionType } from \"../Enums\";\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.indexOf(\"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.customDataPrefix + _self._config.dataTags.dntDataTag;\r\n if (!isElementDnt(element, donotTrackTag)) {\r\n _self._pageAction.capturePageAction(element, overrideValues, customProperties, isRightClick);\r\n }\r\n }\r\n // Process click event\r\n function _processClick(clickEvent) {\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 = {\r\n clickCoordinateX: clickEvent.pageX,\r\n clickCoordinateY: clickEvent.pageY\r\n };\r\n var isRightClickObj = isRightClick(clickEvent);\r\n if (isRightClickObj) {\r\n overrideValues.actionType = ActionType.CLICKRIGHT;\r\n }\r\n else if (isLeftClick(clickEvent)) {\r\n overrideValues.actionType = ActionType.CLICKLEFT;\r\n }\r\n else if (isKeyboardEnter(clickEvent)) {\r\n overrideValues.actionType = ActionType.KEYBOARDENTER;\r\n }\r\n else if (isKeyboardSpace(clickEvent)) {\r\n overrideValues.actionType = ActionType.KEYBOARDSPACE;\r\n }\r\n else if (isMiddleClick(clickEvent)) {\r\n overrideValues.actionType = ActionType.CLICKMIDDLE;\r\n }\r\n else {\r\n return;\r\n }\r\n while (element && element.tagName) {\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.tagName.toUpperCase()]) {\r\n element = element.control;\r\n }\r\n var tagNameUpperCased = element.tagName.toUpperCase();\r\n if (!clickCaptureElements[tagNameUpperCased]) {\r\n element = element.parentElement || element.parentNode;\r\n continue;\r\n }\r\n else {\r\n // Check allowed INPUT types\r\n var sendEvent = tagNameUpperCased === \"INPUT\" ? clickCaptureInputTypes[element.type.toUpperCase()] : 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;2DAKM;AACN;AACA;AACA;AACA"}
1
+ {"version":3,"file":"AutoCaptureHandler.js.map","sources":["AutoCaptureHandler.js"],"sourcesContent":["/**\r\n * @copyright Microsoft 2020\r\n */\r\nimport { getWindow, getDocument, isNullOrUndefined, attachEvent } from \"@microsoft/applicationinsights-core-js\";\r\nimport { isRightClick, isLeftClick, isKeyboardEnter, isKeyboardSpace, isMiddleClick, isElementDnt } from \"../common/Utils\";\r\nimport { ActionType } from \"../Enums\";\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 }\r\n // handle automatic event firing on user click\r\n AutoCaptureHandler.prototype.click = function () {\r\n var _this = this;\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.indexOf(\"MSIE\") !== -1) ? \"click\" : \"mousedown\";\r\n attachEvent(win, event_1, function (evt) { _this._processClick(evt); });\r\n attachEvent(win, \"keyup\", function (evt) { _this._processClick(evt); });\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 attachEvent(doc, \"click\", function (evt) { _this._processClick(evt); });\r\n attachEvent(doc, \"keyup\", function (evt) { _this._processClick(evt); });\r\n }\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 AutoCaptureHandler.prototype.capturePageAction = function (element, overrideValues, customProperties, isRightClick) {\r\n var donotTrackTag = this._config.dataTags.customDataPrefix + this._config.dataTags.dntDataTag;\r\n if (!isElementDnt(element, donotTrackTag)) {\r\n this._pageAction.capturePageAction(element, overrideValues, customProperties, isRightClick);\r\n }\r\n };\r\n // Process click event\r\n AutoCaptureHandler.prototype._processClick = function (clickEvent) {\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 = {\r\n clickCoordinateX: clickEvent.pageX,\r\n clickCoordinateY: clickEvent.pageY\r\n };\r\n var isRightClickObj = isRightClick(clickEvent);\r\n if (isRightClickObj) {\r\n overrideValues.actionType = ActionType.CLICKRIGHT;\r\n }\r\n else if (isLeftClick(clickEvent)) {\r\n overrideValues.actionType = ActionType.CLICKLEFT;\r\n }\r\n else if (isKeyboardEnter(clickEvent)) {\r\n overrideValues.actionType = ActionType.KEYBOARDENTER;\r\n }\r\n else if (isKeyboardSpace(clickEvent)) {\r\n overrideValues.actionType = ActionType.KEYBOARDSPACE;\r\n }\r\n else if (isMiddleClick(clickEvent)) {\r\n overrideValues.actionType = ActionType.CLICKMIDDLE;\r\n }\r\n else {\r\n return;\r\n }\r\n while (element && element.tagName) {\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.tagName.toUpperCase()]) {\r\n element = element.control;\r\n }\r\n var tagNameUpperCased = element.tagName.toUpperCase();\r\n if (!clickCaptureElements[tagNameUpperCased]) {\r\n element = element.parentElement || element.parentNode;\r\n continue;\r\n }\r\n else {\r\n // Check allowed INPUT types\r\n var sendEvent = tagNameUpperCased === \"INPUT\" ? clickCaptureInputTypes[element.type.toUpperCase()] : true;\r\n if (sendEvent) {\r\n this.capturePageAction(element, overrideValues, {}, isRightClickObj);\r\n }\r\n break;\r\n }\r\n }\r\n }\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;AACA"}