@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.
- package/browser/ai.clck.2.7.6.cjs.js +2013 -0
- package/browser/ai.clck.2.7.6.cjs.js.map +1 -0
- package/browser/ai.clck.2.7.6.cjs.min.js +6 -0
- package/browser/ai.clck.2.7.6.cjs.min.js.map +1 -0
- package/browser/ai.clck.2.7.6.gbl.js +2017 -0
- package/browser/ai.clck.2.7.6.gbl.js.map +1 -0
- package/browser/ai.clck.2.7.6.gbl.min.js +6 -0
- package/browser/ai.clck.2.7.6.gbl.min.js.map +1 -0
- package/browser/ai.clck.2.7.6.integrity.json +66 -0
- package/browser/ai.clck.2.7.6.js +2019 -0
- package/browser/ai.clck.2.7.6.js.map +1 -0
- package/browser/ai.clck.2.7.6.min.js +6 -0
- package/browser/ai.clck.2.7.6.min.js.map +1 -0
- package/browser/ai.clck.2.cjs.js +818 -1688
- package/browser/ai.clck.2.cjs.js.map +1 -1
- package/browser/ai.clck.2.cjs.min.js +2 -2
- package/browser/ai.clck.2.cjs.min.js.map +1 -1
- package/browser/ai.clck.2.gbl.js +818 -1688
- package/browser/ai.clck.2.gbl.js.map +1 -1
- package/browser/ai.clck.2.gbl.min.js +2 -2
- package/browser/ai.clck.2.gbl.min.js.map +1 -1
- package/browser/ai.clck.2.js +818 -1688
- package/browser/ai.clck.2.js.map +1 -1
- package/browser/ai.clck.2.min.js +2 -2
- package/browser/ai.clck.2.min.js.map +1 -1
- package/dist/applicationinsights-clickanalytics-js.api.json +27 -29
- package/dist/applicationinsights-clickanalytics-js.api.md +0 -1
- package/dist/applicationinsights-clickanalytics-js.d.ts +5 -2
- package/dist/applicationinsights-clickanalytics-js.js +818 -1688
- package/dist/applicationinsights-clickanalytics-js.js.map +1 -1
- package/dist/applicationinsights-clickanalytics-js.min.js +2 -2
- package/dist/applicationinsights-clickanalytics-js.min.js.map +1 -1
- package/dist/applicationinsights-clickanalytics-js.rollup.d.ts +5 -2
- package/dist-esm/Behaviours.js +1 -1
- package/dist-esm/ClickAnalyticsPlugin.js +50 -74
- package/dist-esm/ClickAnalyticsPlugin.js.map +1 -1
- package/dist-esm/DataCollector.js +2 -4
- package/dist-esm/DataCollector.js.map +1 -1
- package/dist-esm/Enums.js +1 -1
- package/dist-esm/Interfaces/Datamodel.js +1 -1
- package/dist-esm/applicationinsights-clickanalytics-js.js +1 -1
- package/dist-esm/common/Utils.js +1 -1
- package/dist-esm/events/PageAction.js +126 -128
- package/dist-esm/events/PageAction.js.map +1 -1
- package/dist-esm/events/WebEvent.js +94 -109
- package/dist-esm/events/WebEvent.js.map +1 -1
- package/dist-esm/handlers/AutoCaptureHandler.js +83 -85
- package/dist-esm/handlers/AutoCaptureHandler.js.map +1 -1
- package/dist-esm/handlers/DomContentHandler.js +276 -279
- package/dist-esm/handlers/DomContentHandler.js.map +1 -1
- package/package.json +56 -59
- package/src/ClickAnalyticsPlugin.ts +47 -92
- package/src/DataCollector.ts +22 -24
- package/src/Interfaces/Datamodel.ts +21 -20
- package/src/common/Utils.ts +8 -8
- package/src/events/PageAction.ts +131 -165
- package/src/events/WebEvent.ts +78 -147
- package/src/handlers/AutoCaptureHandler.ts +79 -89
- package/src/handlers/DomContentHandler.ts +303 -336
- package/types/ClickAnalyticsPlugin.d.ts +4 -1
- package/types/Interfaces/Datamodel.d.ts +2 -3
- package/types/events/PageAction.d.ts +6 -6
- package/types/events/WebEvent.d.ts +17 -17
- package/types/handlers/AutoCaptureHandler.d.ts +10 -2
- package/types/handlers/DomContentHandler.d.ts +50 -3
- package/types/tsdoc-metadata.json +1 -1
- package/browser/ai.clck.2.7.5-nightly.2204-03.cjs.js +0 -2883
- package/browser/ai.clck.2.7.5-nightly.2204-03.cjs.js.map +0 -1
- package/browser/ai.clck.2.7.5-nightly.2204-03.cjs.min.js +0 -6
- package/browser/ai.clck.2.7.5-nightly.2204-03.cjs.min.js.map +0 -1
- package/browser/ai.clck.2.7.5-nightly.2204-03.gbl.js +0 -2887
- package/browser/ai.clck.2.7.5-nightly.2204-03.gbl.js.map +0 -1
- package/browser/ai.clck.2.7.5-nightly.2204-03.gbl.min.js +0 -6
- package/browser/ai.clck.2.7.5-nightly.2204-03.gbl.min.js.map +0 -1
- package/browser/ai.clck.2.7.5-nightly.2204-03.integrity.json +0 -66
- package/browser/ai.clck.2.7.5-nightly.2204-03.js +0 -2889
- package/browser/ai.clck.2.7.5-nightly.2204-03.js.map +0 -1
- package/browser/ai.clck.2.7.5-nightly.2204-03.min.js +0 -6
- 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.
|
|
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(
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
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
|
|
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.
|
|
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
|
|
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
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
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
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
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
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
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
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
var
|
|
66
|
-
if (
|
|
67
|
-
|
|
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
|
|
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"}
|