@microsoft/applicationinsights-clickanalytics-js 2.8.5-nightly.2206-02 → 2.8.5-nightly.2206-06
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.8.5-nightly.2206-02.cjs.js → ai.clck.2.8.5-nightly.2206-06.cjs.js} +664 -566
- package/browser/ai.clck.2.8.5-nightly.2206-06.cjs.js.map +1 -0
- package/browser/ai.clck.2.8.5-nightly.2206-06.cjs.min.js +6 -0
- package/browser/ai.clck.2.8.5-nightly.2206-06.cjs.min.js.map +1 -0
- package/browser/{ai.clck.2.8.5-nightly.2206-02.gbl.js → ai.clck.2.8.5-nightly.2206-06.gbl.js} +664 -566
- package/browser/ai.clck.2.8.5-nightly.2206-06.gbl.js.map +1 -0
- package/browser/ai.clck.2.8.5-nightly.2206-06.gbl.min.js +6 -0
- package/browser/ai.clck.2.8.5-nightly.2206-06.gbl.min.js.map +1 -0
- package/browser/ai.clck.2.8.5-nightly.2206-06.integrity.json +66 -0
- package/browser/{ai.clck.2.8.5-nightly.2206-02.js → ai.clck.2.8.5-nightly.2206-06.js} +664 -566
- package/browser/ai.clck.2.8.5-nightly.2206-06.js.map +1 -0
- package/browser/ai.clck.2.8.5-nightly.2206-06.min.js +6 -0
- package/browser/ai.clck.2.8.5-nightly.2206-06.min.js.map +1 -0
- package/browser/ai.clck.2.cjs.js +663 -565
- 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 +663 -565
- 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 +663 -565
- 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 +21 -8
- package/dist/applicationinsights-clickanalytics-js.d.ts +1 -1
- package/dist/applicationinsights-clickanalytics-js.js +663 -565
- 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 +1 -1
- package/dist-esm/Behaviours.js +1 -1
- package/dist-esm/ClickAnalyticsPlugin.js +13 -12
- package/dist-esm/ClickAnalyticsPlugin.js.map +1 -1
- package/dist-esm/DataCollector.js +21 -20
- 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/__DynamicConstants.js +62 -0
- package/dist-esm/__DynamicConstants.js.map +1 -0
- package/dist-esm/applicationinsights-clickanalytics-js.js +1 -1
- package/dist-esm/common/Utils.js +45 -82
- package/dist-esm/common/Utils.js.map +1 -1
- package/dist-esm/events/PageAction.js +55 -49
- package/dist-esm/events/PageAction.js.map +1 -1
- package/dist-esm/events/WebEvent.js +45 -39
- package/dist-esm/events/WebEvent.js.map +1 -1
- package/dist-esm/handlers/AutoCaptureHandler.js +29 -22
- package/dist-esm/handlers/AutoCaptureHandler.js.map +1 -1
- package/dist-esm/handlers/DomContentHandler.js +66 -60
- package/dist-esm/handlers/DomContentHandler.js.map +1 -1
- package/package.json +8 -5
- package/src/ClickAnalyticsPlugin.ts +20 -27
- package/src/DataCollector.ts +9 -12
- package/src/Interfaces/Datamodel.ts +1 -1
- package/src/__DynamicConstants.ts +60 -0
- package/src/common/Utils.ts +28 -69
- package/src/events/PageAction.ts +19 -16
- package/src/events/WebEvent.ts +20 -18
- package/src/handlers/AutoCaptureHandler.ts +16 -16
- package/src/handlers/DomContentHandler.ts +15 -17
- package/types/ClickAnalyticsPlugin.d.ts +4 -4
- package/types/DataCollector.d.ts +2 -2
- package/types/__DynamicConstants.d.ts +48 -0
- package/types/common/Utils.d.ts +94 -96
- package/types/events/PageAction.d.ts +4 -4
- package/types/events/WebEvent.d.ts +4 -4
- package/types/handlers/AutoCaptureHandler.d.ts +3 -3
- package/types/handlers/DomContentHandler.d.ts +2 -2
- package/types/tsdoc-metadata.json +1 -1
- package/browser/ai.clck.2.8.5-nightly.2206-02.cjs.js.map +0 -1
- package/browser/ai.clck.2.8.5-nightly.2206-02.cjs.min.js +0 -6
- package/browser/ai.clck.2.8.5-nightly.2206-02.cjs.min.js.map +0 -1
- package/browser/ai.clck.2.8.5-nightly.2206-02.gbl.js.map +0 -1
- package/browser/ai.clck.2.8.5-nightly.2206-02.gbl.min.js +0 -6
- package/browser/ai.clck.2.8.5-nightly.2206-02.gbl.min.js.map +0 -1
- package/browser/ai.clck.2.8.5-nightly.2206-02.integrity.json +0 -66
- package/browser/ai.clck.2.8.5-nightly.2206-02.js.map +0 -1
- package/browser/ai.clck.2.8.5-nightly.2206-02.min.js +0 -6
- package/browser/ai.clck.2.8.5-nightly.2206-02.min.js.map +0 -1
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Application Insights JavaScript SDK - Click Analytics, 2.8.5-nightly.2206-
|
|
2
|
+
* Application Insights JavaScript SDK - Click Analytics, 2.8.5-nightly.2206-06
|
|
3
3
|
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
* @copyright Microsoft 2020
|
|
7
|
+
*/
|
|
8
8
|
import { __extendsFn as __extends } from "@microsoft/applicationinsights-shims";
|
|
9
9
|
import dynamicProto from "@microsoft/dynamicproto-js";
|
|
10
|
-
import { WebEvent } from "./WebEvent";
|
|
11
|
-
import * as DataCollector from "../DataCollector";
|
|
12
|
-
import { getPerformance, objForEachKey, _throwInternal } from "@microsoft/applicationinsights-core-js";
|
|
13
|
-
import { extractFieldFromObject, bracketIt, isValueAssigned, extend } from "../common/Utils";
|
|
14
10
|
import { strNotSpecified } from "@microsoft/applicationinsights-common";
|
|
11
|
+
import { _throwInternal, getPerformance, objExtend, objForEachKey } from "@microsoft/applicationinsights-core-js";
|
|
12
|
+
import { getClickTarget } from "../DataCollector";
|
|
13
|
+
import { _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";
|
|
14
|
+
import { bracketIt, extractFieldFromObject, isValueAssigned } from "../common/Utils";
|
|
15
|
+
import { WebEvent } from "./WebEvent";
|
|
15
16
|
var PageAction = /** @class */ (function (_super) {
|
|
16
17
|
__extends(PageAction, _super);
|
|
17
18
|
function PageAction(clickAnalyticsPlugin, config, contentHandler, pageTagsCallback, metaTags, traceLogger) {
|
|
18
19
|
var _this = _super.call(this, clickAnalyticsPlugin, config, contentHandler, pageTagsCallback, metaTags, traceLogger) || this;
|
|
19
20
|
dynamicProto(PageAction, _this, function (_self, _base) {
|
|
20
|
-
_self
|
|
21
|
+
_self[_DYN_TRACK_PAGE_ACTION /* @min:%2etrackPageAction */] = function (pageActionEvent, properties) {
|
|
21
22
|
// Get part A properties
|
|
22
23
|
var ext = {};
|
|
23
24
|
ext["web"] = {};
|
|
@@ -28,24 +29,24 @@ var PageAction = /** @class */ (function (_super) {
|
|
|
28
29
|
data: {},
|
|
29
30
|
baseData: {}
|
|
30
31
|
};
|
|
31
|
-
_populateEventDataIfPresent(event.baseData, "name", pageActionEvent
|
|
32
|
-
_populateEventDataIfPresent(event
|
|
33
|
-
_populateEventDataIfPresent(event
|
|
34
|
-
_populateEventDataIfPresent(event
|
|
35
|
-
_populateEventDataIfPresent(event
|
|
36
|
-
_populateEventDataIfPresent(event
|
|
37
|
-
_populateEventDataIfPresent(event
|
|
38
|
-
_populateEventDataIfPresent(event
|
|
39
|
-
_populateEventDataIfPresent(event
|
|
40
|
-
_populateEventDataIfPresent(event
|
|
41
|
-
_populateEventDataIfPresent(event
|
|
42
|
-
_populateEventDataIfPresent(event
|
|
43
|
-
_populateEventDataIfPresent(event.data, "pageName", pageActionEvent
|
|
44
|
-
_populateEventDataIfPresent(event
|
|
32
|
+
_populateEventDataIfPresent(event.baseData, "name", pageActionEvent[_DYN_NAME /* @min:%2ename */]);
|
|
33
|
+
_populateEventDataIfPresent(event[_DYN_DATA /* @min:%2edata */], "baseTypeSource", "ClickEvent");
|
|
34
|
+
_populateEventDataIfPresent(event[_DYN_DATA /* @min:%2edata */], "uri", pageActionEvent.uri);
|
|
35
|
+
_populateEventDataIfPresent(event[_DYN_DATA /* @min:%2edata */], "pageType", pageActionEvent[_DYN_PAGE_TYPE /* @min:%2epageType */]);
|
|
36
|
+
_populateEventDataIfPresent(event[_DYN_DATA /* @min:%2edata */], "properties", pageActionEvent[_DYN_PROPERTIES /* @min:%2eproperties */]);
|
|
37
|
+
_populateEventDataIfPresent(event[_DYN_DATA /* @min:%2edata */], "actionType", pageActionEvent[_DYN_ACTION_TYPE /* @min:%2eactionType */]);
|
|
38
|
+
_populateEventDataIfPresent(event[_DYN_DATA /* @min:%2edata */], "behavior", pageActionEvent[_DYN_BEHAVIOR /* @min:%2ebehavior */]);
|
|
39
|
+
_populateEventDataIfPresent(event[_DYN_DATA /* @min:%2edata */], "clickCoordinates", pageActionEvent[_DYN_CLICK_COORDINATES /* @min:%2eclickCoordinates */]);
|
|
40
|
+
_populateEventDataIfPresent(event[_DYN_DATA /* @min:%2edata */], "content", pageActionEvent[_DYN_CONTENT /* @min:%2econtent */]);
|
|
41
|
+
_populateEventDataIfPresent(event[_DYN_DATA /* @min:%2edata */], "targetUri", pageActionEvent.targetUri);
|
|
42
|
+
_populateEventDataIfPresent(event[_DYN_DATA /* @min:%2edata */], "timeToAction", pageActionEvent.timeToAction);
|
|
43
|
+
_populateEventDataIfPresent(event[_DYN_DATA /* @min:%2edata */], "refUri", pageActionEvent[_DYN_REF_URI /* @min:%2erefUri */]);
|
|
44
|
+
_populateEventDataIfPresent(event.data, "pageName", pageActionEvent[_DYN_PAGE_NAME /* @min:%2epageName */]);
|
|
45
|
+
_populateEventDataIfPresent(event[_DYN_DATA /* @min:%2edata */], "parentId", pageActionEvent[_DYN_PARENT_ID /* @min:%2eparentId */]);
|
|
45
46
|
if (properties) {
|
|
46
47
|
objForEachKey(properties, function (property, value) {
|
|
47
|
-
if (!event
|
|
48
|
-
_populateEventDataIfPresent(event
|
|
48
|
+
if (!event[_DYN_DATA /* @min:%2edata */][property]) {
|
|
49
|
+
_populateEventDataIfPresent(event[_DYN_DATA /* @min:%2edata */], property, value);
|
|
49
50
|
}
|
|
50
51
|
});
|
|
51
52
|
}
|
|
@@ -58,51 +59,51 @@ var PageAction = /** @class */ (function (_super) {
|
|
|
58
59
|
* @param customProperties - Custom properties(Part C)
|
|
59
60
|
* @param isRightClick - Flag for mouse right clicks
|
|
60
61
|
*/
|
|
61
|
-
_self
|
|
62
|
+
_self[_DYN_CAPTURE_PAGE_ACTION /* @min:%2ecapturePageAction */] = function (element, overrideValues, customProperties, isRightClick) {
|
|
62
63
|
overrideValues = !isValueAssigned(overrideValues) ? {} : overrideValues;
|
|
63
64
|
var pageActionEvent = { name: "" };
|
|
64
65
|
var pageActionProperties = isValueAssigned(customProperties) ? customProperties : {};
|
|
65
|
-
_self
|
|
66
|
-
pageActionEvent
|
|
66
|
+
_self[_DYN_SET_COMMON_PROPERTIE4 /* @min:%2esetCommonProperties */](pageActionEvent, overrideValues);
|
|
67
|
+
pageActionEvent[_DYN_BEHAVIOR /* @min:%2ebehavior */] = _self._getBehavior(overrideValues);
|
|
67
68
|
// element in scope is needed for below properties. We cannot pass element into the plugin call chain.
|
|
68
69
|
// process them here.
|
|
69
70
|
var elementContent = {};
|
|
70
71
|
if (isRightClick) {
|
|
71
72
|
// Default behavior for righ click
|
|
72
|
-
pageActionEvent
|
|
73
|
+
pageActionEvent[_DYN_BEHAVIOR /* @min:%2ebehavior */] = _self[_DYN__CONFIG /* @min:%2e_config */].defaultRightClickBhvr;
|
|
73
74
|
}
|
|
74
75
|
// Fill PartB
|
|
75
76
|
if (element) {
|
|
76
|
-
pageActionEvent.targetUri =
|
|
77
|
-
elementContent = _self._contentHandler
|
|
77
|
+
pageActionEvent.targetUri = getClickTarget(element);
|
|
78
|
+
elementContent = _self._contentHandler[_DYN_GET_ELEMENT_CONTENT /* @min:%2egetElementContent */](element); // collect id,cn tags
|
|
78
79
|
// if the element has a data-*-bhvr attrib defined, use it.
|
|
79
|
-
if (elementContent.bhvr && !isValueAssigned(overrideValues
|
|
80
|
+
if (elementContent.bhvr && !isValueAssigned(overrideValues[_DYN_BEHAVIOR /* @min:%2ebehavior */])) {
|
|
80
81
|
var currentBehavior = extractFieldFromObject(elementContent, "bhvr");
|
|
81
|
-
pageActionEvent
|
|
82
|
+
pageActionEvent[_DYN_BEHAVIOR /* @min:%2ebehavior */] = _self[_DYN__GET_VALID_BEHAVIOR /* @min:%2e_getValidBehavior */](currentBehavior);
|
|
82
83
|
}
|
|
83
84
|
// Validate to ensure the minimum required field 'contentName' or 'id' is present. However,
|
|
84
85
|
// requiring these fields would result in majority of adopter's content from being collected.
|
|
85
86
|
// Just throw a warning and continue collection.
|
|
86
|
-
if (!isValueAssigned(elementContent.id) && !isValueAssigned(elementContent
|
|
87
|
-
_throwInternal(_self
|
|
87
|
+
if (!isValueAssigned(elementContent.id) && !isValueAssigned(elementContent[_DYN_CONTENT_NAME /* @min:%2econtentName */])) {
|
|
88
|
+
_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!");
|
|
88
89
|
}
|
|
89
90
|
}
|
|
90
|
-
pageActionEvent
|
|
91
|
-
pageActionEvent
|
|
92
|
-
if (isValueAssigned(overrideValues
|
|
93
|
-
pageActionEvent
|
|
91
|
+
pageActionEvent[_DYN_NAME /* @min:%2ename */] = elementContent.id || elementContent[_DYN_CONTENT_NAME /* @min:%2econtentName */] || strNotSpecified;
|
|
92
|
+
pageActionEvent[_DYN_PARENT_ID /* @min:%2eparentId */] = elementContent.parentid || elementContent.parentName || strNotSpecified;
|
|
93
|
+
if (isValueAssigned(overrideValues[_DYN_ACTION_TYPE /* @min:%2eactionType */])) {
|
|
94
|
+
pageActionEvent[_DYN_ACTION_TYPE /* @min:%2eactionType */] = overrideValues[_DYN_ACTION_TYPE /* @min:%2eactionType */];
|
|
94
95
|
}
|
|
95
|
-
if (isValueAssigned(overrideValues
|
|
96
|
-
pageActionEvent
|
|
96
|
+
if (isValueAssigned(overrideValues[_DYN_CLICK_COORDINATE_X /* @min:%2eclickCoordinateX */]) && isValueAssigned(overrideValues[_DYN_CLICK_COORDINATE_Y /* @min:%2eclickCoordinateY */])) {
|
|
97
|
+
pageActionEvent[_DYN_CLICK_COORDINATES /* @min:%2eclickCoordinates */] = overrideValues[_DYN_CLICK_COORDINATE_X /* @min:%2eclickCoordinateX */] + "X" + overrideValues[_DYN_CLICK_COORDINATE_Y /* @min:%2eclickCoordinateY */];
|
|
97
98
|
}
|
|
98
99
|
_sanitizePageActionEventContent(elementContent);
|
|
99
|
-
pageActionEvent
|
|
100
|
+
pageActionEvent[_DYN_CONTENT /* @min:%2econtent */] = bracketIt(JSON.stringify(objExtend(elementContent, overrideValues && overrideValues.contentTags ? overrideValues.contentTags : {})));
|
|
100
101
|
pageActionEvent.timeToAction = _getTimeToClick();
|
|
101
|
-
pageActionEvent.refUri = isValueAssigned(overrideValues.refUri) ? overrideValues.refUri : _self._config.
|
|
102
|
+
pageActionEvent.refUri = isValueAssigned(overrideValues.refUri) ? overrideValues.refUri : _self._config[_DYN_CORE_DATA /* @min:%2ecoreData */].referrerUri;
|
|
102
103
|
if (_isUndefinedEvent(pageActionEvent)) {
|
|
103
104
|
return;
|
|
104
105
|
}
|
|
105
|
-
_self
|
|
106
|
+
_self[_DYN_TRACK_PAGE_ACTION /* @min:%2etrackPageAction */](pageActionEvent, pageActionProperties);
|
|
106
107
|
};
|
|
107
108
|
// capture performance data into PageTags
|
|
108
109
|
function _getTimeToClick() {
|
|
@@ -125,16 +126,16 @@ var PageAction = /** @class */ (function (_super) {
|
|
|
125
126
|
delete pageActionContent.id;
|
|
126
127
|
delete pageActionContent.parentid;
|
|
127
128
|
delete pageActionContent.parentname;
|
|
128
|
-
if (_self._config && _self._config
|
|
129
|
-
delete pageActionContent[_self._config.
|
|
129
|
+
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 */])) {
|
|
130
|
+
delete pageActionContent[_self._config[_DYN_DATA_TAGS /* @min:%2edataTags */].parentDataTag];
|
|
130
131
|
}
|
|
131
132
|
}
|
|
132
133
|
}
|
|
133
134
|
function _isUndefinedEvent(pageActionEvent) {
|
|
134
|
-
if (_self.
|
|
135
|
-
if (pageActionEvent
|
|
136
|
-
&& pageActionEvent
|
|
137
|
-
&& pageActionEvent
|
|
135
|
+
if (_self[_DYN__CONFIG /* @min:%2e_config */].dropInvalidEvents) {
|
|
136
|
+
if (pageActionEvent[_DYN_NAME /* @min:%2ename */] === strNotSpecified
|
|
137
|
+
&& pageActionEvent[_DYN_PARENT_ID /* @min:%2eparentId */] === strNotSpecified
|
|
138
|
+
&& pageActionEvent[_DYN_CONTENT /* @min:%2econtent */] === "[{}]") {
|
|
138
139
|
return true;
|
|
139
140
|
}
|
|
140
141
|
}
|
|
@@ -145,6 +146,11 @@ var PageAction = /** @class */ (function (_super) {
|
|
|
145
146
|
}
|
|
146
147
|
// Removed Stub for PageAction.prototype.trackPageAction.
|
|
147
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
|
|
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
|
+
PageAction.__ieDyn=1;
|
|
153
|
+
|
|
148
154
|
return PageAction;
|
|
149
155
|
}(WebEvent));
|
|
150
156
|
export { 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 { WebEvent } from \"./WebEvent\";\r\nimport * as DataCollector from \"../DataCollector\";\r\nimport { getPerformance, objForEachKey, _throwInternal } from \"@microsoft/applicationinsights-core-js\";\r\nimport { extractFieldFromObject, bracketIt, isValueAssigned, extend } from \"../common/Utils\";\r\nimport { strNotSpecified } from \"@microsoft/applicationinsights-common\";\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.trackPageAction = 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.name);\r\n _populateEventDataIfPresent(event.data, \"baseTypeSource\", \"ClickEvent\");\r\n _populateEventDataIfPresent(event.data, \"uri\", pageActionEvent.uri);\r\n _populateEventDataIfPresent(event.data, \"pageType\", pageActionEvent.pageType);\r\n _populateEventDataIfPresent(event.data, \"properties\", pageActionEvent.properties);\r\n _populateEventDataIfPresent(event.data, \"actionType\", pageActionEvent.actionType);\r\n _populateEventDataIfPresent(event.data, \"behavior\", pageActionEvent.behavior);\r\n _populateEventDataIfPresent(event.data, \"clickCoordinates\", pageActionEvent.clickCoordinates);\r\n _populateEventDataIfPresent(event.data, \"content\", pageActionEvent.content);\r\n _populateEventDataIfPresent(event.data, \"targetUri\", pageActionEvent.targetUri);\r\n _populateEventDataIfPresent(event.data, \"timeToAction\", pageActionEvent.timeToAction);\r\n _populateEventDataIfPresent(event.data, \"refUri\", pageActionEvent.refUri);\r\n _populateEventDataIfPresent(event.data, \"pageName\", pageActionEvent.pageName);\r\n _populateEventDataIfPresent(event.data, \"parentId\", pageActionEvent.parentId);\r\n if (properties) {\r\n objForEachKey(properties, function (property, value) {\r\n if (!event.data[property]) {\r\n _populateEventDataIfPresent(event.data, 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.capturePageAction = 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.setCommonProperties(pageActionEvent, overrideValues);\r\n pageActionEvent.behavior = _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.behavior = _self._config.defaultRightClickBhvr;\r\n }\r\n // Fill PartB\r\n if (element) {\r\n pageActionEvent.targetUri = DataCollector.getClickTarget(element);\r\n elementContent = _self._contentHandler.getElementContent(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.behavior)) {\r\n var currentBehavior = extractFieldFromObject(elementContent, \"bhvr\");\r\n pageActionEvent.behavior = _self._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.contentName)) {\r\n _throwInternal(_self._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.name = elementContent.id || elementContent.contentName || strNotSpecified;\r\n pageActionEvent.parentId = elementContent.parentid || elementContent.parentName || strNotSpecified;\r\n if (isValueAssigned(overrideValues.actionType)) {\r\n pageActionEvent.actionType = overrideValues.actionType;\r\n }\r\n if (isValueAssigned(overrideValues.clickCoordinateX) && isValueAssigned(overrideValues.clickCoordinateY)) {\r\n pageActionEvent.clickCoordinates = overrideValues.clickCoordinateX + \"X\" + overrideValues.clickCoordinateY;\r\n }\r\n _sanitizePageActionEventContent(elementContent);\r\n pageActionEvent.content = bracketIt(JSON.stringify(extend(elementContent, overrideValues && overrideValues.contentTags ? overrideValues.contentTags : {})));\r\n pageActionEvent.timeToAction = _getTimeToClick();\r\n pageActionEvent.refUri = isValueAssigned(overrideValues.refUri) ? overrideValues.refUri : _self._config.coreData.referrerUri;\r\n if (_isUndefinedEvent(pageActionEvent)) {\r\n return;\r\n }\r\n _self.trackPageAction(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.dataTags && isValueAssigned(_self._config.dataTags.parentDataTag)) {\r\n delete pageActionContent[_self._config.dataTags.parentDataTag];\r\n }\r\n }\r\n }\r\n function _isUndefinedEvent(pageActionEvent) {\r\n if (_self._config.dropInvalidEvents) {\r\n if (pageActionEvent.name === strNotSpecified\r\n && pageActionEvent.parentId === strNotSpecified\r\n && pageActionEvent.content === \"[{}]\") {\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;2DAiBM;AACN;AACA;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,14 +1,15 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Application Insights JavaScript SDK - Click Analytics, 2.8.5-nightly.2206-
|
|
2
|
+
* Application Insights JavaScript SDK - Click Analytics, 2.8.5-nightly.2206-06
|
|
3
3
|
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
* @copyright Microsoft 2020
|
|
7
|
+
*/
|
|
8
8
|
import dynamicProto from "@microsoft/dynamicproto-js";
|
|
9
|
-
import {
|
|
10
|
-
import
|
|
11
|
-
import {
|
|
9
|
+
import { getLocation, hasWindow, objExtend } from "@microsoft/applicationinsights-core-js";
|
|
10
|
+
import { getPageName, getUri } from "../DataCollector";
|
|
11
|
+
import { _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";
|
|
12
|
+
import { isValueAssigned } from "../common/Utils";
|
|
12
13
|
var WebEvent = /** @class */ (function () {
|
|
13
14
|
/**
|
|
14
15
|
* @param clickAnalyticsPlugin - Click Analytics plugin instance
|
|
@@ -23,39 +24,39 @@ var WebEvent = /** @class */ (function () {
|
|
|
23
24
|
dynamicProto(WebEvent, this, function (_self) {
|
|
24
25
|
_initDefaults();
|
|
25
26
|
function _initDefaults() {
|
|
26
|
-
_self
|
|
27
|
+
_self[_DYN__PAGE_TAGS /* @min:%2e_pageTags */] = {};
|
|
27
28
|
_self._clickAnalyticsPlugin = clickAnalyticsPlugin;
|
|
28
|
-
_self
|
|
29
|
+
_self[_DYN__CONFIG /* @min:%2e_config */] = config;
|
|
29
30
|
_self._contentHandler = contentHandler;
|
|
30
|
-
_self
|
|
31
|
-
_self
|
|
32
|
-
_self
|
|
31
|
+
_self[_DYN__PAGE_TAGS_CALLBACK /* @min:%2e_pageTagsCallback */] = pageTagsCallback;
|
|
32
|
+
_self[_DYN__META_TAGS /* @min:%2e_metaTags */] = metaTags;
|
|
33
|
+
_self[_DYN__TRACE_LOGGER /* @min:%2e_traceLogger */] = traceLogger;
|
|
33
34
|
}
|
|
34
|
-
_self
|
|
35
|
-
if (!isValueAssigned(event
|
|
36
|
-
event
|
|
35
|
+
_self[_DYN_SET_BASIC_PROPERTIES /* @min:%2esetBasicProperties */] = function (event, overrideValues) {
|
|
36
|
+
if (!isValueAssigned(event[_DYN_NAME /* @min:%2ename */])) {
|
|
37
|
+
event[_DYN_PAGE_NAME /* @min:%2epageName */] = getPageName(_self[_DYN__CONFIG /* @min:%2e_config */], overrideValues);
|
|
37
38
|
}
|
|
38
39
|
if (!isValueAssigned(event.uri) && hasWindow) {
|
|
39
|
-
event.uri =
|
|
40
|
+
event.uri = getUri(_self[_DYN__CONFIG /* @min:%2e_config */], getLocation());
|
|
40
41
|
}
|
|
41
42
|
};
|
|
42
43
|
/**
|
|
43
44
|
* Sets common properties for events that are based on the WebEvent schema.
|
|
44
45
|
* @param event - The event
|
|
45
46
|
*/
|
|
46
|
-
_self
|
|
47
|
-
_self
|
|
47
|
+
_self[_DYN_SET_COMMON_PROPERTIE4 /* @min:%2esetCommonProperties */] = function (event, overrideValues) {
|
|
48
|
+
_self[_DYN_SET_BASIC_PROPERTIES /* @min:%2esetBasicProperties */](event, overrideValues);
|
|
48
49
|
_self._setPageTags(event, overrideValues);
|
|
49
50
|
// extract specific meta tags out of the pageTags.metaTags collection. These will go into assigned first class fields in the event.
|
|
50
51
|
// the rest will go into pageTags.metaTags collection as is.
|
|
51
|
-
_self._pageTypeMetaTag = _getMetaData(_self._metaTags, _self._config
|
|
52
|
-
_self._behaviorMetaTag = _getMetaData(_self._metaTags, _self._config
|
|
53
|
-
if (isValueAssigned(overrideValues
|
|
54
|
-
event
|
|
52
|
+
_self._pageTypeMetaTag = _getMetaData(_self._metaTags, _self._config[_DYN_CORE_DATA /* @min:%2ecoreData */], "pageType");
|
|
53
|
+
_self._behaviorMetaTag = _getMetaData(_self._metaTags, _self._config[_DYN_CORE_DATA /* @min:%2ecoreData */], "behavior");
|
|
54
|
+
if (isValueAssigned(overrideValues[_DYN_PAGE_TYPE /* @min:%2epageType */])) {
|
|
55
|
+
event[_DYN_PAGE_TYPE /* @min:%2epageType */] = overrideValues[_DYN_PAGE_TYPE /* @min:%2epageType */];
|
|
55
56
|
}
|
|
56
57
|
// Only assign if not overriden and meta data is available
|
|
57
|
-
if (isValueAssigned(_self._pageTypeMetaTag) && !isValueAssigned(event
|
|
58
|
-
event
|
|
58
|
+
if (isValueAssigned(_self._pageTypeMetaTag) && !isValueAssigned(event[_DYN_PAGE_TYPE /* @min:%2epageType */])) {
|
|
59
|
+
event[_DYN_PAGE_TYPE /* @min:%2epageType */] = _self[_DYN__PAGE_TYPE_META_TAG /* @min:%2e_pageTypeMetaTag */];
|
|
59
60
|
}
|
|
60
61
|
};
|
|
61
62
|
/**
|
|
@@ -64,40 +65,40 @@ var WebEvent = /** @class */ (function () {
|
|
|
64
65
|
*/
|
|
65
66
|
_self._setPageTags = function (event, overrideValues) {
|
|
66
67
|
// Prepare the pageTags object that is mostly the same for all events. Event specific pageTags will be added inside event constructors.
|
|
67
|
-
if (_self
|
|
68
|
-
_self
|
|
68
|
+
if (_self[_DYN__PAGE_TAGS_CALLBACK /* @min:%2e_pageTagsCallback */]) {
|
|
69
|
+
_self[_DYN__PAGE_TAGS /* @min:%2e_pageTags */] = objExtend(true, _self[_DYN__PAGE_TAGS /* @min:%2e_pageTags */], _self[_DYN__PAGE_TAGS_CALLBACK /* @min:%2e_pageTagsCallback */]());
|
|
69
70
|
}
|
|
70
71
|
if (isValueAssigned(overrideValues.pageTags)) {
|
|
71
|
-
_self
|
|
72
|
+
_self[_DYN__PAGE_TAGS /* @min:%2e_pageTags */] = objExtend(true, _self[_DYN__PAGE_TAGS /* @min:%2e_pageTags */], overrideValues.pageTags);
|
|
72
73
|
}
|
|
73
74
|
// If metadata is present add it to pageTags property
|
|
74
|
-
if (_self
|
|
75
|
-
_self.
|
|
75
|
+
if (_self[_DYN__META_TAGS /* @min:%2e_metaTags */]) {
|
|
76
|
+
_self[_DYN__PAGE_TAGS /* @min:%2e_pageTags */].metaTags = {};
|
|
76
77
|
// Remove not supported meta data in pageTags.metaTags
|
|
77
|
-
for (var metaTag in _self
|
|
78
|
+
for (var metaTag in _self[_DYN__META_TAGS /* @min:%2e_metaTags */]) {
|
|
78
79
|
if (metaTag != "behavior" && metaTag != "market" && metaTag != "pageType") {
|
|
79
|
-
_self.
|
|
80
|
+
_self[_DYN__PAGE_TAGS /* @min:%2e_pageTags */].metaTags[metaTag] = _self[_DYN__META_TAGS /* @min:%2e_metaTags */][metaTag];
|
|
80
81
|
}
|
|
81
82
|
}
|
|
82
83
|
}
|
|
83
84
|
// All metadata tags that must be saved as properties have been extracted at this point. Assign pageTags as is.
|
|
84
|
-
event
|
|
85
|
-
event
|
|
85
|
+
event[_DYN_PROPERTIES /* @min:%2eproperties */] = event[_DYN_PROPERTIES /* @min:%2eproperties */] || {};
|
|
86
|
+
event[_DYN_PROPERTIES /* @min:%2eproperties */]["pageTags"] = _self[_DYN__PAGE_TAGS /* @min:%2e_pageTags */];
|
|
86
87
|
};
|
|
87
88
|
_self._getBehavior = function (overrideValues) {
|
|
88
89
|
var behavior;
|
|
89
90
|
// If override specified
|
|
90
|
-
if (overrideValues && isValueAssigned(overrideValues
|
|
91
|
-
behavior = overrideValues
|
|
91
|
+
if (overrideValues && isValueAssigned(overrideValues[_DYN_BEHAVIOR /* @min:%2ebehavior */])) {
|
|
92
|
+
behavior = overrideValues[_DYN_BEHAVIOR /* @min:%2ebehavior */];
|
|
92
93
|
}
|
|
93
|
-
else if (isValueAssigned(_self
|
|
94
|
+
else if (isValueAssigned(_self[_DYN__BEHAVIOR_META_TAG /* @min:%2e_behaviorMetaTag */])) {
|
|
94
95
|
// If behavior meta tag available
|
|
95
|
-
behavior = _self
|
|
96
|
+
behavior = _self[_DYN__BEHAVIOR_META_TAG /* @min:%2e_behaviorMetaTag */];
|
|
96
97
|
}
|
|
97
|
-
return _self
|
|
98
|
+
return _self[_DYN__GET_VALID_BEHAVIOR /* @min:%2e_getValidBehavior */](behavior);
|
|
98
99
|
};
|
|
99
|
-
_self
|
|
100
|
-
return _self._config
|
|
100
|
+
_self[_DYN__GET_VALID_BEHAVIOR /* @min:%2e_getValidBehavior */] = function (behavior) {
|
|
101
|
+
return _self._config[_DYN_BEHAVIOR_VALIDATOR /* @min:%2ebehaviorValidator */](behavior);
|
|
101
102
|
};
|
|
102
103
|
_self._doUnload = function (unloadCtx, unloadState, asyncCallback) {
|
|
103
104
|
_initDefaults();
|
|
@@ -128,6 +129,11 @@ var WebEvent = /** @class */ (function () {
|
|
|
128
129
|
// Removed Stub for WebEvent.prototype._setPageTags.
|
|
129
130
|
// Removed Stub for WebEvent.prototype._getBehavior.
|
|
130
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
|
|
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
|
+
WebEvent.__ieDyn=1;
|
|
136
|
+
|
|
131
137
|
return WebEvent;
|
|
132
138
|
}());
|
|
133
139
|
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 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,14 +1,15 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Application Insights JavaScript SDK - Click Analytics, 2.8.5-nightly.2206-
|
|
2
|
+
* Application Insights JavaScript SDK - Click Analytics, 2.8.5-nightly.2206-06
|
|
3
3
|
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
* @copyright Microsoft 2020
|
|
7
|
+
*/
|
|
8
8
|
import dynamicProto from "@microsoft/dynamicproto-js";
|
|
9
|
-
import {
|
|
10
|
-
import { isRightClick, isLeftClick, isKeyboardEnter, isKeyboardSpace, isMiddleClick, isElementDnt } from "../common/Utils";
|
|
9
|
+
import { createUniqueNamespace, eventOff, eventOn, getDocument, getWindow, isNullOrUndefined, mergeEvtNamespace } from "@microsoft/applicationinsights-core-js";
|
|
11
10
|
import { ActionType } from "../Enums";
|
|
11
|
+
import { _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";
|
|
12
|
+
import { isElementDnt, isKeyboardEnter, isKeyboardSpace, isLeftClick, isMiddleClick, isRightClick } from "../common/Utils";
|
|
12
13
|
var clickCaptureInputTypes = { BUTTON: true, CHECKBOX: true, RADIO: true, RESET: true, SUBMIT: true };
|
|
13
14
|
var AutoCaptureHandler = /** @class */ (function () {
|
|
14
15
|
/**
|
|
@@ -27,7 +28,7 @@ var AutoCaptureHandler = /** @class */ (function () {
|
|
|
27
28
|
var doc = getDocument();
|
|
28
29
|
if (win) {
|
|
29
30
|
// IE9 onwards addEventListener is available, 'click' event captures mouse click. mousedown works on other browsers
|
|
30
|
-
var event_1 = (navigator.appVersion
|
|
31
|
+
var event_1 = (navigator.appVersion[_DYN_INDEX_OF /* @min:%2eindexOf */]("MSIE") !== -1) ? "click" : "mousedown";
|
|
31
32
|
eventOn(win, event_1, _processClick, _evtNamespace);
|
|
32
33
|
eventOn(win, "keyup", _processClick, _evtNamespace);
|
|
33
34
|
}
|
|
@@ -43,13 +44,14 @@ var AutoCaptureHandler = /** @class */ (function () {
|
|
|
43
44
|
eventOff(getDocument(), null, null, _evtNamespace);
|
|
44
45
|
};
|
|
45
46
|
function _capturePageAction(element, overrideValues, customProperties, isRightClick) {
|
|
46
|
-
var donotTrackTag = _self._config.dataTags
|
|
47
|
+
var donotTrackTag = _self._config.dataTags[_DYN_CUSTOM_DATA_PREFIX /* @min:%2ecustomDataPrefix */] + _self[_DYN__CONFIG /* @min:%2e_config */][_DYN_DATA_TAGS /* @min:%2edataTags */].dntDataTag;
|
|
47
48
|
if (!isElementDnt(element, donotTrackTag)) {
|
|
48
|
-
_self._pageAction
|
|
49
|
+
_self._pageAction[_DYN_CAPTURE_PAGE_ACTION /* @min:%2ecapturePageAction */](element, overrideValues, customProperties, isRightClick);
|
|
49
50
|
}
|
|
50
51
|
}
|
|
51
52
|
// Process click event
|
|
52
53
|
function _processClick(clickEvent) {
|
|
54
|
+
var _a;
|
|
53
55
|
var clickCaptureElements = { A: true, BUTTON: true, AREA: true, INPUT: true };
|
|
54
56
|
var win = getWindow();
|
|
55
57
|
if (isNullOrUndefined(clickEvent) && win) {
|
|
@@ -58,43 +60,43 @@ var AutoCaptureHandler = /** @class */ (function () {
|
|
|
58
60
|
if (clickEvent) {
|
|
59
61
|
var element = clickEvent.srcElement || clickEvent.target;
|
|
60
62
|
// populate overrideValues
|
|
61
|
-
var overrideValues = {
|
|
62
|
-
clickCoordinateX
|
|
63
|
-
clickCoordinateY
|
|
64
|
-
|
|
63
|
+
var overrideValues = (_a = {},
|
|
64
|
+
_a[_DYN_CLICK_COORDINATE_X /* @min:clickCoordinateX */] = clickEvent.pageX,
|
|
65
|
+
_a[_DYN_CLICK_COORDINATE_Y /* @min:clickCoordinateY */] = clickEvent.pageY,
|
|
66
|
+
_a);
|
|
65
67
|
var isRightClickObj = isRightClick(clickEvent);
|
|
66
68
|
if (isRightClickObj) {
|
|
67
|
-
overrideValues
|
|
69
|
+
overrideValues[_DYN_ACTION_TYPE /* @min:%2eactionType */] = ActionType.CLICKRIGHT;
|
|
68
70
|
}
|
|
69
71
|
else if (isLeftClick(clickEvent)) {
|
|
70
|
-
overrideValues
|
|
72
|
+
overrideValues[_DYN_ACTION_TYPE /* @min:%2eactionType */] = ActionType.CLICKLEFT;
|
|
71
73
|
}
|
|
72
74
|
else if (isKeyboardEnter(clickEvent)) {
|
|
73
|
-
overrideValues
|
|
75
|
+
overrideValues[_DYN_ACTION_TYPE /* @min:%2eactionType */] = ActionType.KEYBOARDENTER;
|
|
74
76
|
}
|
|
75
77
|
else if (isKeyboardSpace(clickEvent)) {
|
|
76
|
-
overrideValues
|
|
78
|
+
overrideValues[_DYN_ACTION_TYPE /* @min:%2eactionType */] = ActionType.KEYBOARDSPACE;
|
|
77
79
|
}
|
|
78
80
|
else if (isMiddleClick(clickEvent)) {
|
|
79
|
-
overrideValues
|
|
81
|
+
overrideValues[_DYN_ACTION_TYPE /* @min:%2eactionType */] = ActionType.CLICKMIDDLE;
|
|
80
82
|
}
|
|
81
83
|
else {
|
|
82
84
|
return;
|
|
83
85
|
}
|
|
84
|
-
while (element && element
|
|
86
|
+
while (element && element[_DYN_TAG_NAME /* @min:%2etagName */]) {
|
|
85
87
|
// control property will be available for <label> elements with 'for' attribute, only use it when is a
|
|
86
88
|
// valid JSLL capture element to avoid infinite loops
|
|
87
|
-
if (element.control && clickCaptureElements[element.control
|
|
89
|
+
if (element.control && clickCaptureElements[element.control[_DYN_TAG_NAME /* @min:%2etagName */][_DYN_TO_UPPER_CASE /* @min:%2etoUpperCase */]()]) {
|
|
88
90
|
element = element.control;
|
|
89
91
|
}
|
|
90
|
-
var tagNameUpperCased = element
|
|
92
|
+
var tagNameUpperCased = element[_DYN_TAG_NAME /* @min:%2etagName */][_DYN_TO_UPPER_CASE /* @min:%2etoUpperCase */]();
|
|
91
93
|
if (!clickCaptureElements[tagNameUpperCased]) {
|
|
92
|
-
element = element.parentElement || element
|
|
94
|
+
element = element.parentElement || element[_DYN_PARENT_NODE /* @min:%2eparentNode */];
|
|
93
95
|
continue;
|
|
94
96
|
}
|
|
95
97
|
else {
|
|
96
98
|
// Check allowed INPUT types
|
|
97
|
-
var sendEvent = tagNameUpperCased === "INPUT" ? clickCaptureInputTypes[element.type
|
|
99
|
+
var sendEvent = tagNameUpperCased === "INPUT" ? clickCaptureInputTypes[element.type[_DYN_TO_UPPER_CASE /* @min:%2etoUpperCase */]()] : true;
|
|
98
100
|
if (sendEvent) {
|
|
99
101
|
_capturePageAction(element, overrideValues, {}, isRightClickObj);
|
|
100
102
|
}
|
|
@@ -108,6 +110,11 @@ var AutoCaptureHandler = /** @class */ (function () {
|
|
|
108
110
|
// handle automatic event firing on user click
|
|
109
111
|
// Removed Stub for AutoCaptureHandler.prototype.click.
|
|
110
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
|
|
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
|
+
AutoCaptureHandler.__ieDyn=1;
|
|
117
|
+
|
|
111
118
|
return AutoCaptureHandler;
|
|
112
119
|
}());
|
|
113
120
|
export { AutoCaptureHandler };
|