@microsoft/applicationinsights-clickanalytics-js 2.8.0-beta.2203-10 → 2.8.0-beta.2203-13
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.0-beta.2203-10.cjs.js → ai.clck.2.8.0-beta.2203-13.cjs.js} +688 -514
- package/browser/ai.clck.2.8.0-beta.2203-13.cjs.js.map +1 -0
- package/browser/ai.clck.2.8.0-beta.2203-13.cjs.min.js +6 -0
- package/browser/ai.clck.2.8.0-beta.2203-13.cjs.min.js.map +1 -0
- package/browser/{ai.clck.2.8.0-beta.2203-10.gbl.js → ai.clck.2.8.0-beta.2203-13.gbl.js} +688 -514
- package/browser/ai.clck.2.8.0-beta.2203-13.gbl.js.map +1 -0
- package/browser/ai.clck.2.8.0-beta.2203-13.gbl.min.js +6 -0
- package/browser/ai.clck.2.8.0-beta.2203-13.gbl.min.js.map +1 -0
- package/browser/ai.clck.2.8.0-beta.2203-13.integrity.json +66 -0
- package/browser/{ai.clck.2.8.0-beta.2203-10.js → ai.clck.2.8.0-beta.2203-13.js} +688 -514
- package/browser/ai.clck.2.8.0-beta.2203-13.js.map +1 -0
- package/browser/ai.clck.2.8.0-beta.2203-13.min.js +6 -0
- package/browser/ai.clck.2.8.0-beta.2203-13.min.js.map +1 -0
- package/browser/ai.clck.2.cjs.js +687 -513
- 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 +687 -513
- 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 +687 -513
- 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 +15 -1
- package/dist/applicationinsights-clickanalytics-js.api.md +1 -0
- package/dist/applicationinsights-clickanalytics-js.d.ts +2 -5
- package/dist/applicationinsights-clickanalytics-js.js +687 -513
- 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 +2 -5
- package/dist-esm/Behaviours.js +1 -1
- package/dist-esm/ClickAnalyticsPlugin.js +74 -50
- package/dist-esm/ClickAnalyticsPlugin.js.map +1 -1
- package/dist-esm/DataCollector.js +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 +128 -128
- package/dist-esm/events/PageAction.js.map +1 -1
- package/dist-esm/events/WebEvent.js +109 -94
- package/dist-esm/events/WebEvent.js.map +1 -1
- package/dist-esm/handlers/AutoCaptureHandler.js +85 -91
- package/dist-esm/handlers/AutoCaptureHandler.js.map +1 -1
- package/dist-esm/handlers/DomContentHandler.js +279 -280
- package/dist-esm/handlers/DomContentHandler.js.map +1 -1
- package/package.json +5 -5
- package/src/ClickAnalyticsPlugin.ts +91 -46
- package/src/Interfaces/Datamodel.ts +17 -18
- package/src/events/PageAction.ts +165 -134
- package/src/events/WebEvent.ts +147 -77
- package/src/handlers/AutoCaptureHandler.ts +88 -86
- package/src/handlers/DomContentHandler.ts +336 -310
- package/types/ClickAnalyticsPlugin.d.ts +1 -4
- package/types/Interfaces/Datamodel.d.ts +7 -6
- package/types/events/PageAction.d.ts +6 -6
- package/types/events/WebEvent.d.ts +17 -17
- package/types/handlers/AutoCaptureHandler.d.ts +2 -10
- package/types/handlers/DomContentHandler.d.ts +3 -50
- package/types/tsdoc-metadata.json +1 -1
- package/browser/ai.clck.2.8.0-beta.2203-10.cjs.js.map +0 -1
- package/browser/ai.clck.2.8.0-beta.2203-10.cjs.min.js +0 -6
- package/browser/ai.clck.2.8.0-beta.2203-10.cjs.min.js.map +0 -1
- package/browser/ai.clck.2.8.0-beta.2203-10.gbl.js.map +0 -1
- package/browser/ai.clck.2.8.0-beta.2203-10.gbl.min.js +0 -6
- package/browser/ai.clck.2.8.0-beta.2203-10.gbl.min.js.map +0 -1
- package/browser/ai.clck.2.8.0-beta.2203-10.integrity.json +0 -66
- package/browser/ai.clck.2.8.0-beta.2203-10.js.map +0 -1
- package/browser/ai.clck.2.8.0-beta.2203-10.min.js +0 -6
- package/browser/ai.clck.2.8.0-beta.2203-10.min.js.map +0 -1
package/browser/ai.clck.2.gbl.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Application Insights JavaScript SDK - Click Analytics, 2.8.0-beta.2203-
|
|
2
|
+
* Application Insights JavaScript SDK - Click Analytics, 2.8.0-beta.2203-13
|
|
3
3
|
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
4
|
*/
|
|
5
5
|
this.Microsoft = this.Microsoft || {};
|
|
@@ -346,11 +346,23 @@ this.Microsoft = this.Microsoft || {};
|
|
|
346
346
|
var strDisabled = "disabled";
|
|
347
347
|
var strDoTeardown = "_doTeardown";
|
|
348
348
|
|
|
349
|
+
var strToISOString = "toISOString";
|
|
350
|
+
var cStrEndsWith = "endsWith";
|
|
351
|
+
var cStrStartsWith = "startsWith";
|
|
352
|
+
var cStrTrim = "trim";
|
|
349
353
|
var strToString = "toString";
|
|
350
354
|
var str__Proto = "__proto__";
|
|
351
355
|
var strConstructor = "constructor";
|
|
352
356
|
var _objDefineProperty$1 = ObjDefineProperty;
|
|
353
357
|
var _objFreeze = ObjClass.freeze;
|
|
358
|
+
ObjClass.seal;
|
|
359
|
+
var _objKeys = ObjClass.keys;
|
|
360
|
+
var StringProto = String[strShimPrototype];
|
|
361
|
+
StringProto[cStrTrim];
|
|
362
|
+
StringProto[cStrEndsWith];
|
|
363
|
+
StringProto[cStrStartsWith];
|
|
364
|
+
var DateProto = Date[strShimPrototype];
|
|
365
|
+
DateProto[strToISOString];
|
|
354
366
|
var _isArray = Array.isArray;
|
|
355
367
|
var _objToString = ObjProto[strToString];
|
|
356
368
|
var _fnToString = ObjHasOwnProperty[strToString];
|
|
@@ -457,6 +469,40 @@ this.Microsoft = this.Microsoft || {};
|
|
|
457
469
|
catch (e) {
|
|
458
470
|
}
|
|
459
471
|
}
|
|
472
|
+
var _objKeysHasDontEnumBug = !({ toString: null }).propertyIsEnumerable("toString");
|
|
473
|
+
var _objKeysDontEnums = [
|
|
474
|
+
"toString",
|
|
475
|
+
"toLocaleString",
|
|
476
|
+
"valueOf",
|
|
477
|
+
"hasOwnProperty",
|
|
478
|
+
"isPrototypeOf",
|
|
479
|
+
"propertyIsEnumerable",
|
|
480
|
+
"constructor"
|
|
481
|
+
];
|
|
482
|
+
function objKeys(obj) {
|
|
483
|
+
var objType = typeof obj;
|
|
484
|
+
if (objType !== strShimFunction && (objType !== strShimObject || obj === null)) {
|
|
485
|
+
throwTypeError("objKeys called on non-object");
|
|
486
|
+
}
|
|
487
|
+
if (!_objKeysHasDontEnumBug && _objKeys) {
|
|
488
|
+
return _objKeys(obj);
|
|
489
|
+
}
|
|
490
|
+
var result = [];
|
|
491
|
+
for (var prop in obj) {
|
|
492
|
+
if (obj && ObjHasOwnProperty.call(obj, prop)) {
|
|
493
|
+
result.push(prop);
|
|
494
|
+
}
|
|
495
|
+
}
|
|
496
|
+
if (_objKeysHasDontEnumBug) {
|
|
497
|
+
var dontEnumsLength = _objKeysDontEnums.length;
|
|
498
|
+
for (var lp = 0; lp < dontEnumsLength; lp++) {
|
|
499
|
+
if (obj && ObjHasOwnProperty.call(obj, _objKeysDontEnums[lp])) {
|
|
500
|
+
result.push(_objKeysDontEnums[lp]);
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
return result;
|
|
505
|
+
}
|
|
460
506
|
function objDefineAccessors(target, prop, getProp, setProp) {
|
|
461
507
|
if (_objDefineProperty$1) {
|
|
462
508
|
try {
|
|
@@ -1050,7 +1096,7 @@ this.Microsoft = this.Microsoft || {};
|
|
|
1050
1096
|
}
|
|
1051
1097
|
|
|
1052
1098
|
var _objDefineProperty = ObjDefineProperty;
|
|
1053
|
-
var version = "2.
|
|
1099
|
+
var version = "2.8.0-beta.2203-13";
|
|
1054
1100
|
var instanceName = "." + newId(6);
|
|
1055
1101
|
var _dataUid = 0;
|
|
1056
1102
|
function _createAccessor(target, prop, value) {
|
|
@@ -1121,10 +1167,28 @@ this.Microsoft = this.Microsoft || {};
|
|
|
1121
1167
|
return data;
|
|
1122
1168
|
}
|
|
1123
1169
|
|
|
1170
|
+
var strDoUnload = "_doUnload";
|
|
1124
1171
|
var pluginStateData = createElmNodeData("plugin");
|
|
1125
1172
|
function _getPluginState(plugin) {
|
|
1126
1173
|
return pluginStateData.get(plugin, "state", {}, true);
|
|
1127
1174
|
}
|
|
1175
|
+
function unloadComponents(components, unloadCtx, unloadState, asyncCallback) {
|
|
1176
|
+
var idx = 0;
|
|
1177
|
+
function _doUnload() {
|
|
1178
|
+
while (idx < components.length) {
|
|
1179
|
+
var component = components[idx++];
|
|
1180
|
+
if (component) {
|
|
1181
|
+
var func = component[strDoUnload] || component[strDoTeardown];
|
|
1182
|
+
if (isFunction(func)) {
|
|
1183
|
+
if (func.call(component, unloadCtx, unloadState, _doUnload) === true) {
|
|
1184
|
+
return true;
|
|
1185
|
+
}
|
|
1186
|
+
}
|
|
1187
|
+
}
|
|
1188
|
+
}
|
|
1189
|
+
}
|
|
1190
|
+
return _doUnload();
|
|
1191
|
+
}
|
|
1128
1192
|
|
|
1129
1193
|
var strTelemetryPluginChain = "TelemetryPluginChain";
|
|
1130
1194
|
var strHasRunFlags = "_hasRun";
|
|
@@ -1645,6 +1709,8 @@ this.Microsoft = this.Microsoft || {};
|
|
|
1645
1709
|
var strOnPrefix = "on";
|
|
1646
1710
|
var strAttachEvent = "attachEvent";
|
|
1647
1711
|
var strAddEventHelper = "addEventListener";
|
|
1712
|
+
var strDetachEvent = "detachEvent";
|
|
1713
|
+
var strRemoveEventListener = "removeEventListener";
|
|
1648
1714
|
var strEvents = "events";
|
|
1649
1715
|
createUniqueNamespace("aiEvtPageHide");
|
|
1650
1716
|
createUniqueNamespace("aiEvtPageShow");
|
|
@@ -1684,7 +1750,7 @@ this.Microsoft = this.Microsoft || {};
|
|
|
1684
1750
|
eventName = (eventName || "") + theNamespace_1;
|
|
1685
1751
|
}
|
|
1686
1752
|
}
|
|
1687
|
-
var parsedEvent = (eventNamespace.exec(eventName) || []);
|
|
1753
|
+
var parsedEvent = (eventNamespace.exec(eventName || "") || []);
|
|
1688
1754
|
return {
|
|
1689
1755
|
type: parsedEvent[1],
|
|
1690
1756
|
ns: ((parsedEvent[2] || "").replace(rRemoveEmptyNs, ".").replace(rRemoveTrailingEmptyNs, "").split(".").sort()).join(".")
|
|
@@ -1699,6 +1765,16 @@ this.Microsoft = this.Microsoft || {};
|
|
|
1699
1765
|
}
|
|
1700
1766
|
return registeredEvents;
|
|
1701
1767
|
}
|
|
1768
|
+
function _doDetach(obj, evtName, handlerRef, useCapture) {
|
|
1769
|
+
if (obj && evtName && evtName.type) {
|
|
1770
|
+
if (obj[strRemoveEventListener]) {
|
|
1771
|
+
obj[strRemoveEventListener](evtName.type, handlerRef, useCapture);
|
|
1772
|
+
}
|
|
1773
|
+
else if (obj[strDetachEvent]) {
|
|
1774
|
+
obj[strDetachEvent](strOnPrefix + evtName.type, handlerRef);
|
|
1775
|
+
}
|
|
1776
|
+
}
|
|
1777
|
+
}
|
|
1702
1778
|
function _doAttach(obj, evtName, handlerRef, useCapture) {
|
|
1703
1779
|
var result = false;
|
|
1704
1780
|
if (obj && evtName && evtName.type && handlerRef) {
|
|
@@ -1713,6 +1789,50 @@ this.Microsoft = this.Microsoft || {};
|
|
|
1713
1789
|
}
|
|
1714
1790
|
return result;
|
|
1715
1791
|
}
|
|
1792
|
+
function _doUnregister(target, events, evtName, unRegFn) {
|
|
1793
|
+
var idx = events.length;
|
|
1794
|
+
while (idx--) {
|
|
1795
|
+
var theEvent = events[idx];
|
|
1796
|
+
if (theEvent) {
|
|
1797
|
+
if (!evtName.ns || evtName.ns === theEvent.evtName.ns) {
|
|
1798
|
+
if (!unRegFn || unRegFn(theEvent)) {
|
|
1799
|
+
_doDetach(target, theEvent.evtName, theEvent.handler, theEvent.capture);
|
|
1800
|
+
events.splice(idx, 1);
|
|
1801
|
+
}
|
|
1802
|
+
}
|
|
1803
|
+
}
|
|
1804
|
+
}
|
|
1805
|
+
}
|
|
1806
|
+
function _unregisterEvents(target, evtName, unRegFn) {
|
|
1807
|
+
if (evtName.type) {
|
|
1808
|
+
_doUnregister(target, _getRegisteredEvents(target, evtName.type), evtName, unRegFn);
|
|
1809
|
+
}
|
|
1810
|
+
else {
|
|
1811
|
+
var eventCache = elmNodeData.get(target, strEvents, {});
|
|
1812
|
+
objForEachKey(eventCache, function (evtType, events) {
|
|
1813
|
+
_doUnregister(target, events, evtName, unRegFn);
|
|
1814
|
+
});
|
|
1815
|
+
if (objKeys(eventCache).length === 0) {
|
|
1816
|
+
elmNodeData.kill(target, strEvents);
|
|
1817
|
+
}
|
|
1818
|
+
}
|
|
1819
|
+
}
|
|
1820
|
+
function mergeEvtNamespace(theNamespace, namespaces) {
|
|
1821
|
+
var newNamespaces;
|
|
1822
|
+
if (namespaces) {
|
|
1823
|
+
if (isArray(namespaces)) {
|
|
1824
|
+
newNamespaces = [theNamespace].concat(namespaces);
|
|
1825
|
+
}
|
|
1826
|
+
else {
|
|
1827
|
+
newNamespaces = [theNamespace, namespaces];
|
|
1828
|
+
}
|
|
1829
|
+
newNamespaces = (_getEvtNamespace("xx", newNamespaces).ns).split(".");
|
|
1830
|
+
}
|
|
1831
|
+
else {
|
|
1832
|
+
newNamespaces = theNamespace;
|
|
1833
|
+
}
|
|
1834
|
+
return newNamespaces;
|
|
1835
|
+
}
|
|
1716
1836
|
function eventOn(target, eventName, handlerRef, evtNamespace, useCapture) {
|
|
1717
1837
|
if (useCapture === void 0) { useCapture = false; }
|
|
1718
1838
|
var result = false;
|
|
@@ -1735,9 +1855,26 @@ this.Microsoft = this.Microsoft || {};
|
|
|
1735
1855
|
}
|
|
1736
1856
|
return result;
|
|
1737
1857
|
}
|
|
1738
|
-
function
|
|
1858
|
+
function eventOff(target, eventName, handlerRef, evtNamespace, useCapture) {
|
|
1739
1859
|
if (useCapture === void 0) { useCapture = false; }
|
|
1740
|
-
|
|
1860
|
+
if (target) {
|
|
1861
|
+
try {
|
|
1862
|
+
var evtName_1 = _getEvtNamespace(eventName, evtNamespace);
|
|
1863
|
+
var found_1 = false;
|
|
1864
|
+
_unregisterEvents(target, evtName_1, function (regEvent) {
|
|
1865
|
+
if ((evtName_1.ns && !handlerRef) || regEvent.handler === handlerRef) {
|
|
1866
|
+
found_1 = true;
|
|
1867
|
+
return true;
|
|
1868
|
+
}
|
|
1869
|
+
return false;
|
|
1870
|
+
});
|
|
1871
|
+
if (!found_1) {
|
|
1872
|
+
_doDetach(target, evtName_1, handlerRef, useCapture);
|
|
1873
|
+
}
|
|
1874
|
+
}
|
|
1875
|
+
catch (e) {
|
|
1876
|
+
}
|
|
1877
|
+
}
|
|
1741
1878
|
}
|
|
1742
1879
|
|
|
1743
1880
|
var LoggingSeverity = createEnumStyle({
|
|
@@ -2123,190 +2260,200 @@ this.Microsoft = this.Microsoft || {};
|
|
|
2123
2260
|
}
|
|
2124
2261
|
|
|
2125
2262
|
var WebEvent = /** @class */ (function () {
|
|
2126
|
-
function WebEvent(
|
|
2127
|
-
this
|
|
2128
|
-
|
|
2129
|
-
|
|
2130
|
-
|
|
2131
|
-
|
|
2132
|
-
|
|
2133
|
-
|
|
2134
|
-
|
|
2135
|
-
|
|
2136
|
-
|
|
2137
|
-
|
|
2138
|
-
|
|
2139
|
-
|
|
2140
|
-
|
|
2141
|
-
|
|
2142
|
-
|
|
2143
|
-
|
|
2144
|
-
|
|
2145
|
-
|
|
2146
|
-
|
|
2147
|
-
|
|
2148
|
-
|
|
2149
|
-
|
|
2150
|
-
|
|
2151
|
-
|
|
2152
|
-
|
|
2153
|
-
|
|
2154
|
-
|
|
2155
|
-
|
|
2156
|
-
|
|
2157
|
-
|
|
2158
|
-
|
|
2159
|
-
|
|
2160
|
-
|
|
2161
|
-
|
|
2162
|
-
|
|
2163
|
-
|
|
2164
|
-
|
|
2165
|
-
if (
|
|
2166
|
-
|
|
2263
|
+
function WebEvent(clickAnalyticsPlugin, config, contentHandler, pageTagsCallback, metaTags, traceLogger) {
|
|
2264
|
+
dynamicProto(WebEvent, this, function (_self) {
|
|
2265
|
+
_initDefaults();
|
|
2266
|
+
function _initDefaults() {
|
|
2267
|
+
_self._pageTags = {};
|
|
2268
|
+
_self._clickAnalyticsPlugin = clickAnalyticsPlugin;
|
|
2269
|
+
_self._config = config;
|
|
2270
|
+
_self._contentHandler = contentHandler;
|
|
2271
|
+
_self._pageTagsCallback = pageTagsCallback;
|
|
2272
|
+
_self._metaTags = metaTags;
|
|
2273
|
+
_self._traceLogger = traceLogger;
|
|
2274
|
+
}
|
|
2275
|
+
_self.setBasicProperties = function (event, overrideValues) {
|
|
2276
|
+
if (!isValueAssigned(event.name)) {
|
|
2277
|
+
event.pageName = getPageName(_self._config, overrideValues);
|
|
2278
|
+
}
|
|
2279
|
+
if (!isValueAssigned(event.uri) && hasWindow) {
|
|
2280
|
+
event.uri = getUri(_self._config, getLocation());
|
|
2281
|
+
}
|
|
2282
|
+
};
|
|
2283
|
+
_self.setCommonProperties = function (event, overrideValues) {
|
|
2284
|
+
_self.setBasicProperties(event, overrideValues);
|
|
2285
|
+
_self._setPageTags(event, overrideValues);
|
|
2286
|
+
_self._pageTypeMetaTag = _getMetaData(_self._metaTags, _self._config.coreData, "pageType");
|
|
2287
|
+
_self._behaviorMetaTag = _getMetaData(_self._metaTags, _self._config.coreData, "behavior");
|
|
2288
|
+
if (isValueAssigned(overrideValues.pageType)) {
|
|
2289
|
+
event.pageType = overrideValues.pageType;
|
|
2290
|
+
}
|
|
2291
|
+
if (isValueAssigned(_self._pageTypeMetaTag) && !isValueAssigned(event.pageType)) {
|
|
2292
|
+
event.pageType = _self._pageTypeMetaTag;
|
|
2293
|
+
}
|
|
2294
|
+
};
|
|
2295
|
+
_self._setPageTags = function (event, overrideValues) {
|
|
2296
|
+
if (_self._pageTagsCallback) {
|
|
2297
|
+
_self._pageTags = extend(true, _self._pageTags, _self._pageTagsCallback());
|
|
2298
|
+
}
|
|
2299
|
+
if (isValueAssigned(overrideValues.pageTags)) {
|
|
2300
|
+
_self._pageTags = extend(true, _self._pageTags, overrideValues.pageTags);
|
|
2301
|
+
}
|
|
2302
|
+
if (_self._metaTags) {
|
|
2303
|
+
_self._pageTags.metaTags = {};
|
|
2304
|
+
for (var metaTag in _self._metaTags) {
|
|
2305
|
+
if (metaTag != "behavior" && metaTag != "market" && metaTag != "pageType") {
|
|
2306
|
+
_self._pageTags.metaTags[metaTag] = _self._metaTags[metaTag];
|
|
2307
|
+
}
|
|
2308
|
+
}
|
|
2309
|
+
}
|
|
2310
|
+
event.properties = event.properties || {};
|
|
2311
|
+
event.properties["pageTags"] = _self._pageTags;
|
|
2312
|
+
};
|
|
2313
|
+
_self._getBehavior = function (overrideValues) {
|
|
2314
|
+
var behavior;
|
|
2315
|
+
if (overrideValues && isValueAssigned(overrideValues.behavior)) {
|
|
2316
|
+
behavior = overrideValues.behavior;
|
|
2317
|
+
}
|
|
2318
|
+
else if (isValueAssigned(_self._behaviorMetaTag)) {
|
|
2319
|
+
behavior = _self._behaviorMetaTag;
|
|
2320
|
+
}
|
|
2321
|
+
return _self._getValidBehavior(behavior);
|
|
2322
|
+
};
|
|
2323
|
+
_self._getValidBehavior = function (behavior) {
|
|
2324
|
+
return _self._config.behaviorValidator(behavior);
|
|
2325
|
+
};
|
|
2326
|
+
_self._doUnload = function (unloadCtx, unloadState, asyncCallback) {
|
|
2327
|
+
_initDefaults();
|
|
2328
|
+
};
|
|
2329
|
+
function _getMetaData(metaTags, coreData, metaTagName) {
|
|
2330
|
+
if (coreData && coreData[metaTagName]) {
|
|
2331
|
+
return coreData[metaTagName];
|
|
2332
|
+
}
|
|
2333
|
+
if (metaTags) {
|
|
2334
|
+
return metaTags[metaTagName];
|
|
2167
2335
|
}
|
|
2336
|
+
return "";
|
|
2168
2337
|
}
|
|
2169
|
-
}
|
|
2170
|
-
|
|
2171
|
-
event.properties["pageTags"] = this._pageTags;
|
|
2172
|
-
};
|
|
2173
|
-
WebEvent.prototype._getBehavior = function (overrideValues) {
|
|
2174
|
-
var behavior;
|
|
2175
|
-
if (overrideValues && isValueAssigned(overrideValues.behavior)) {
|
|
2176
|
-
behavior = overrideValues.behavior;
|
|
2177
|
-
}
|
|
2178
|
-
else if (isValueAssigned(this._behaviorMetaTag)) {
|
|
2179
|
-
behavior = this._behaviorMetaTag;
|
|
2180
|
-
}
|
|
2181
|
-
return this._getValidBehavior(behavior);
|
|
2182
|
-
};
|
|
2183
|
-
WebEvent.prototype._getValidBehavior = function (behavior) {
|
|
2184
|
-
return this._config.behaviorValidator(behavior);
|
|
2185
|
-
};
|
|
2186
|
-
WebEvent.prototype._getMetaData = function (metaTags, coreData, metaTagName) {
|
|
2187
|
-
if (coreData && coreData[metaTagName]) {
|
|
2188
|
-
return coreData[metaTagName];
|
|
2189
|
-
}
|
|
2190
|
-
else if (metaTags) {
|
|
2191
|
-
return metaTags[metaTagName];
|
|
2192
|
-
}
|
|
2193
|
-
return "";
|
|
2194
|
-
};
|
|
2338
|
+
});
|
|
2339
|
+
}
|
|
2195
2340
|
return WebEvent;
|
|
2196
2341
|
}());
|
|
2197
2342
|
|
|
2198
2343
|
var PageAction = /** @class */ (function (_super) {
|
|
2199
2344
|
__extendsFn(PageAction, _super);
|
|
2200
|
-
function PageAction() {
|
|
2201
|
-
|
|
2202
|
-
|
|
2203
|
-
|
|
2204
|
-
|
|
2205
|
-
|
|
2206
|
-
|
|
2207
|
-
|
|
2208
|
-
|
|
2209
|
-
|
|
2210
|
-
|
|
2211
|
-
|
|
2212
|
-
|
|
2213
|
-
|
|
2214
|
-
|
|
2215
|
-
|
|
2216
|
-
|
|
2217
|
-
|
|
2218
|
-
|
|
2219
|
-
|
|
2220
|
-
|
|
2221
|
-
|
|
2222
|
-
|
|
2223
|
-
|
|
2224
|
-
|
|
2225
|
-
|
|
2226
|
-
|
|
2227
|
-
|
|
2228
|
-
|
|
2229
|
-
|
|
2230
|
-
|
|
2231
|
-
|
|
2345
|
+
function PageAction(clickAnalyticsPlugin, config, contentHandler, pageTagsCallback, metaTags, traceLogger) {
|
|
2346
|
+
var _this = _super.call(this, clickAnalyticsPlugin, config, contentHandler, pageTagsCallback, metaTags, traceLogger) || this;
|
|
2347
|
+
dynamicProto(PageAction, _this, function (_self, _base) {
|
|
2348
|
+
_self.trackPageAction = function (pageActionEvent, properties) {
|
|
2349
|
+
var ext = {};
|
|
2350
|
+
ext["web"] = {};
|
|
2351
|
+
var event = {
|
|
2352
|
+
name: "Microsoft.ApplicationInsights.{0}.Event",
|
|
2353
|
+
baseType: "EventData",
|
|
2354
|
+
ext: ext,
|
|
2355
|
+
data: {},
|
|
2356
|
+
baseData: {}
|
|
2357
|
+
};
|
|
2358
|
+
_populateEventDataIfPresent(event.baseData, "name", pageActionEvent.name);
|
|
2359
|
+
_populateEventDataIfPresent(event.data, "baseTypeSource", "ClickEvent");
|
|
2360
|
+
_populateEventDataIfPresent(event.data, "uri", pageActionEvent.uri);
|
|
2361
|
+
_populateEventDataIfPresent(event.data, "pageType", pageActionEvent.pageType);
|
|
2362
|
+
_populateEventDataIfPresent(event.data, "properties", pageActionEvent.properties);
|
|
2363
|
+
_populateEventDataIfPresent(event.data, "actionType", pageActionEvent.actionType);
|
|
2364
|
+
_populateEventDataIfPresent(event.data, "behavior", pageActionEvent.behavior);
|
|
2365
|
+
_populateEventDataIfPresent(event.data, "clickCoordinates", pageActionEvent.clickCoordinates);
|
|
2366
|
+
_populateEventDataIfPresent(event.data, "content", pageActionEvent.content);
|
|
2367
|
+
_populateEventDataIfPresent(event.data, "targetUri", pageActionEvent.targetUri);
|
|
2368
|
+
_populateEventDataIfPresent(event.data, "timeToAction", pageActionEvent.timeToAction);
|
|
2369
|
+
_populateEventDataIfPresent(event.data, "refUri", pageActionEvent.refUri);
|
|
2370
|
+
_populateEventDataIfPresent(event.data, "pageName", pageActionEvent.pageName);
|
|
2371
|
+
_populateEventDataIfPresent(event.data, "parentId", pageActionEvent.parentId);
|
|
2372
|
+
if (properties) {
|
|
2373
|
+
objForEachKey(properties, function (property, value) {
|
|
2374
|
+
if (!event.data[property]) {
|
|
2375
|
+
_populateEventDataIfPresent(event.data, property, value);
|
|
2376
|
+
}
|
|
2377
|
+
});
|
|
2232
2378
|
}
|
|
2233
|
-
|
|
2234
|
-
|
|
2235
|
-
|
|
2236
|
-
|
|
2237
|
-
|
|
2238
|
-
|
|
2239
|
-
|
|
2240
|
-
|
|
2241
|
-
|
|
2242
|
-
|
|
2243
|
-
|
|
2244
|
-
|
|
2245
|
-
|
|
2246
|
-
|
|
2247
|
-
|
|
2248
|
-
|
|
2249
|
-
|
|
2250
|
-
|
|
2251
|
-
|
|
2252
|
-
|
|
2253
|
-
|
|
2254
|
-
|
|
2255
|
-
|
|
2256
|
-
|
|
2257
|
-
|
|
2258
|
-
|
|
2259
|
-
|
|
2260
|
-
|
|
2261
|
-
|
|
2262
|
-
|
|
2263
|
-
|
|
2264
|
-
|
|
2265
|
-
|
|
2266
|
-
|
|
2267
|
-
|
|
2268
|
-
|
|
2269
|
-
|
|
2270
|
-
|
|
2271
|
-
|
|
2272
|
-
|
|
2273
|
-
|
|
2274
|
-
|
|
2275
|
-
|
|
2276
|
-
|
|
2277
|
-
|
|
2278
|
-
|
|
2279
|
-
|
|
2280
|
-
|
|
2379
|
+
_self._clickAnalyticsPlugin.core.track(event);
|
|
2380
|
+
};
|
|
2381
|
+
_self.capturePageAction = function (element, overrideValues, customProperties, isRightClick) {
|
|
2382
|
+
overrideValues = !isValueAssigned(overrideValues) ? {} : overrideValues;
|
|
2383
|
+
var pageActionEvent = { name: "" };
|
|
2384
|
+
var pageActionProperties = isValueAssigned(customProperties) ? customProperties : {};
|
|
2385
|
+
_self.setCommonProperties(pageActionEvent, overrideValues);
|
|
2386
|
+
pageActionEvent.behavior = _self._getBehavior(overrideValues);
|
|
2387
|
+
var elementContent = {};
|
|
2388
|
+
if (isRightClick) {
|
|
2389
|
+
pageActionEvent.behavior = _self._config.defaultRightClickBhvr;
|
|
2390
|
+
}
|
|
2391
|
+
if (element) {
|
|
2392
|
+
pageActionEvent.targetUri = getClickTarget(element);
|
|
2393
|
+
elementContent = _self._contentHandler.getElementContent(element);
|
|
2394
|
+
if (elementContent.bhvr && !isValueAssigned(overrideValues.behavior)) {
|
|
2395
|
+
var currentBehavior = extractFieldFromObject(elementContent, "bhvr");
|
|
2396
|
+
pageActionEvent.behavior = _self._getValidBehavior(currentBehavior);
|
|
2397
|
+
}
|
|
2398
|
+
if (!isValueAssigned(elementContent.id) && !isValueAssigned(elementContent.contentName)) {
|
|
2399
|
+
_self._traceLogger.throwInternal(LoggingSeverity.WARNING, _ExtendedInternalMessageId.InvalidContentBlob, "Missing attributes id or contentName in click event. Click event information will still be collected!");
|
|
2400
|
+
}
|
|
2401
|
+
}
|
|
2402
|
+
pageActionEvent.name = elementContent.id || elementContent.contentName || strNotSpecified;
|
|
2403
|
+
pageActionEvent.parentId = elementContent.parentid || elementContent.parentName || strNotSpecified;
|
|
2404
|
+
if (isValueAssigned(overrideValues.actionType)) {
|
|
2405
|
+
pageActionEvent.actionType = overrideValues.actionType;
|
|
2406
|
+
}
|
|
2407
|
+
if (isValueAssigned(overrideValues.clickCoordinateX) && isValueAssigned(overrideValues.clickCoordinateY)) {
|
|
2408
|
+
pageActionEvent.clickCoordinates = overrideValues.clickCoordinateX + "X" + overrideValues.clickCoordinateY;
|
|
2409
|
+
}
|
|
2410
|
+
_sanitizePageActionEventContent(elementContent);
|
|
2411
|
+
pageActionEvent.content = bracketIt(JSON.stringify(extend(elementContent, overrideValues && overrideValues.contentTags ? overrideValues.contentTags : {})));
|
|
2412
|
+
pageActionEvent.timeToAction = _getTimeToClick();
|
|
2413
|
+
pageActionEvent.refUri = isValueAssigned(overrideValues.refUri) ? overrideValues.refUri : _self._config.coreData.referrerUri;
|
|
2414
|
+
if (_isUndefinedEvent(pageActionEvent)) {
|
|
2415
|
+
return;
|
|
2416
|
+
}
|
|
2417
|
+
_self.trackPageAction(pageActionEvent, pageActionProperties);
|
|
2418
|
+
};
|
|
2419
|
+
function _getTimeToClick() {
|
|
2420
|
+
var perf = getPerformance();
|
|
2421
|
+
if (perf && perf.timing) {
|
|
2422
|
+
var isNavigationStart = perf.timing.navigationStart;
|
|
2423
|
+
if (isNavigationStart && isNavigationStart !== 0) {
|
|
2424
|
+
return new Date().getTime() - isNavigationStart;
|
|
2425
|
+
}
|
|
2426
|
+
}
|
|
2427
|
+
return -1;
|
|
2281
2428
|
}
|
|
2282
|
-
|
|
2283
|
-
|
|
2284
|
-
|
|
2285
|
-
|
|
2286
|
-
if (isValueAssigned(value)) {
|
|
2287
|
-
obj[property] = value;
|
|
2288
|
-
}
|
|
2289
|
-
};
|
|
2290
|
-
PageAction.prototype._sanitizePageActionEventContent = function (pageActionContent) {
|
|
2291
|
-
if (pageActionContent) {
|
|
2292
|
-
delete pageActionContent.id;
|
|
2293
|
-
delete pageActionContent.parentid;
|
|
2294
|
-
delete pageActionContent.parentname;
|
|
2295
|
-
if (this._config && this._config.dataTags && isValueAssigned(this._config.dataTags.parentDataTag)) {
|
|
2296
|
-
delete pageActionContent[this._config.dataTags.parentDataTag];
|
|
2429
|
+
function _populateEventDataIfPresent(obj, property, value) {
|
|
2430
|
+
if (isValueAssigned(value)) {
|
|
2431
|
+
obj[property] = value;
|
|
2432
|
+
}
|
|
2297
2433
|
}
|
|
2298
|
-
|
|
2299
|
-
|
|
2300
|
-
|
|
2301
|
-
|
|
2302
|
-
|
|
2303
|
-
|
|
2304
|
-
|
|
2305
|
-
|
|
2434
|
+
function _sanitizePageActionEventContent(pageActionContent) {
|
|
2435
|
+
if (pageActionContent) {
|
|
2436
|
+
delete pageActionContent.id;
|
|
2437
|
+
delete pageActionContent.parentid;
|
|
2438
|
+
delete pageActionContent.parentname;
|
|
2439
|
+
if (_self._config && _self._config.dataTags && isValueAssigned(_self._config.dataTags.parentDataTag)) {
|
|
2440
|
+
delete pageActionContent[_self._config.dataTags.parentDataTag];
|
|
2441
|
+
}
|
|
2442
|
+
}
|
|
2306
2443
|
}
|
|
2307
|
-
|
|
2308
|
-
|
|
2309
|
-
|
|
2444
|
+
function _isUndefinedEvent(pageActionEvent) {
|
|
2445
|
+
if (_self._config.dropInvalidEvents) {
|
|
2446
|
+
if (pageActionEvent.name === strNotSpecified
|
|
2447
|
+
&& pageActionEvent.parentId === strNotSpecified
|
|
2448
|
+
&& pageActionEvent.content === "[{}]") {
|
|
2449
|
+
return true;
|
|
2450
|
+
}
|
|
2451
|
+
}
|
|
2452
|
+
return false;
|
|
2453
|
+
}
|
|
2454
|
+
});
|
|
2455
|
+
return _this;
|
|
2456
|
+
}
|
|
2310
2457
|
return PageAction;
|
|
2311
2458
|
}(WebEvent));
|
|
2312
2459
|
|
|
@@ -2329,85 +2476,83 @@ this.Microsoft = this.Microsoft || {};
|
|
|
2329
2476
|
this._config = _config;
|
|
2330
2477
|
this._pageAction = _pageAction;
|
|
2331
2478
|
this._traceLogger = _traceLogger;
|
|
2332
|
-
|
|
2333
|
-
|
|
2334
|
-
|
|
2335
|
-
|
|
2336
|
-
|
|
2337
|
-
|
|
2338
|
-
|
|
2339
|
-
|
|
2340
|
-
|
|
2341
|
-
|
|
2342
|
-
|
|
2343
|
-
|
|
2344
|
-
|
|
2345
|
-
}
|
|
2346
|
-
else if (doc) {
|
|
2347
|
-
attachEvent(doc, "click", function (evt) {
|
|
2348
|
-
_this._processClick(evt);
|
|
2349
|
-
});
|
|
2350
|
-
attachEvent(doc, "keyup", function (evt) {
|
|
2351
|
-
_this._processClick(evt);
|
|
2352
|
-
});
|
|
2353
|
-
}
|
|
2354
|
-
};
|
|
2355
|
-
AutoCaptureHandler.prototype.capturePageAction = function (element, overrideValues, customProperties, isRightClick) {
|
|
2356
|
-
var donotTrackTag = this._config.dataTags.customDataPrefix + this._config.dataTags.dntDataTag;
|
|
2357
|
-
if (!isElementDnt(element, donotTrackTag)) {
|
|
2358
|
-
this._pageAction.capturePageAction(element, overrideValues, customProperties, isRightClick);
|
|
2359
|
-
}
|
|
2360
|
-
};
|
|
2361
|
-
AutoCaptureHandler.prototype._processClick = function (clickEvent) {
|
|
2362
|
-
var clickCaptureElements = { A: true, BUTTON: true, AREA: true, INPUT: true };
|
|
2363
|
-
var win = getWindow();
|
|
2364
|
-
if (isNullOrUndefined(clickEvent) && win) {
|
|
2365
|
-
clickEvent = win.event;
|
|
2366
|
-
}
|
|
2367
|
-
if (clickEvent) {
|
|
2368
|
-
var element = clickEvent.srcElement || clickEvent.target;
|
|
2369
|
-
var overrideValues = {
|
|
2370
|
-
clickCoordinateX: clickEvent.pageX,
|
|
2371
|
-
clickCoordinateY: clickEvent.pageY
|
|
2372
|
-
};
|
|
2373
|
-
var isRightClickObj = isRightClick(clickEvent);
|
|
2374
|
-
if (isRightClickObj) {
|
|
2375
|
-
overrideValues.actionType = ActionType.CLICKRIGHT;
|
|
2376
|
-
}
|
|
2377
|
-
else if (isLeftClick(clickEvent)) {
|
|
2378
|
-
overrideValues.actionType = ActionType.CLICKLEFT;
|
|
2379
|
-
}
|
|
2380
|
-
else if (isKeyboardEnter(clickEvent)) {
|
|
2381
|
-
overrideValues.actionType = ActionType.KEYBOARDENTER;
|
|
2382
|
-
}
|
|
2383
|
-
else if (isKeyboardSpace(clickEvent)) {
|
|
2384
|
-
overrideValues.actionType = ActionType.KEYBOARDSPACE;
|
|
2385
|
-
}
|
|
2386
|
-
else if (isMiddleClick(clickEvent)) {
|
|
2387
|
-
overrideValues.actionType = ActionType.CLICKMIDDLE;
|
|
2388
|
-
}
|
|
2389
|
-
else {
|
|
2390
|
-
return;
|
|
2391
|
-
}
|
|
2392
|
-
while (element && element.tagName) {
|
|
2393
|
-
if (element.control && clickCaptureElements[element.control.tagName.toUpperCase()]) {
|
|
2394
|
-
element = element.control;
|
|
2395
|
-
}
|
|
2396
|
-
var tagNameUpperCased = element.tagName.toUpperCase();
|
|
2397
|
-
if (!clickCaptureElements[tagNameUpperCased]) {
|
|
2398
|
-
element = element.parentElement || element.parentNode;
|
|
2399
|
-
continue;
|
|
2479
|
+
var _evtNamespace = mergeEvtNamespace(createUniqueNamespace("AutoCaptureHandler"), _analyticsPlugin._evtNamespace);
|
|
2480
|
+
dynamicProto(AutoCaptureHandler, this, function (_self) {
|
|
2481
|
+
_self.click = function () {
|
|
2482
|
+
var win = getWindow();
|
|
2483
|
+
var doc = getDocument();
|
|
2484
|
+
if (win) {
|
|
2485
|
+
var event_1 = (navigator.appVersion.indexOf("MSIE") !== -1) ? "click" : "mousedown";
|
|
2486
|
+
eventOn(win, event_1, _processClick, _evtNamespace);
|
|
2487
|
+
eventOn(win, "keyup", _processClick, _evtNamespace);
|
|
2488
|
+
}
|
|
2489
|
+
else if (doc) {
|
|
2490
|
+
eventOn(doc, "click", _processClick, _evtNamespace);
|
|
2491
|
+
eventOn(doc, "keyup", _processClick, _evtNamespace);
|
|
2400
2492
|
}
|
|
2401
|
-
|
|
2402
|
-
|
|
2403
|
-
|
|
2404
|
-
|
|
2493
|
+
};
|
|
2494
|
+
_self._doUnload = function (unloadCtx, unloadState, asyncCallback) {
|
|
2495
|
+
eventOff(getWindow(), null, null, _evtNamespace);
|
|
2496
|
+
eventOff(getDocument(), null, null, _evtNamespace);
|
|
2497
|
+
};
|
|
2498
|
+
function _capturePageAction(element, overrideValues, customProperties, isRightClick) {
|
|
2499
|
+
var donotTrackTag = _self._config.dataTags.customDataPrefix + _self._config.dataTags.dntDataTag;
|
|
2500
|
+
if (!isElementDnt(element, donotTrackTag)) {
|
|
2501
|
+
_self._pageAction.capturePageAction(element, overrideValues, customProperties, isRightClick);
|
|
2502
|
+
}
|
|
2503
|
+
}
|
|
2504
|
+
function _processClick(clickEvent) {
|
|
2505
|
+
var clickCaptureElements = { A: true, BUTTON: true, AREA: true, INPUT: true };
|
|
2506
|
+
var win = getWindow();
|
|
2507
|
+
if (isNullOrUndefined(clickEvent) && win) {
|
|
2508
|
+
clickEvent = win.event;
|
|
2509
|
+
}
|
|
2510
|
+
if (clickEvent) {
|
|
2511
|
+
var element = clickEvent.srcElement || clickEvent.target;
|
|
2512
|
+
var overrideValues = {
|
|
2513
|
+
clickCoordinateX: clickEvent.pageX,
|
|
2514
|
+
clickCoordinateY: clickEvent.pageY
|
|
2515
|
+
};
|
|
2516
|
+
var isRightClickObj = isRightClick(clickEvent);
|
|
2517
|
+
if (isRightClickObj) {
|
|
2518
|
+
overrideValues.actionType = ActionType.CLICKRIGHT;
|
|
2519
|
+
}
|
|
2520
|
+
else if (isLeftClick(clickEvent)) {
|
|
2521
|
+
overrideValues.actionType = ActionType.CLICKLEFT;
|
|
2522
|
+
}
|
|
2523
|
+
else if (isKeyboardEnter(clickEvent)) {
|
|
2524
|
+
overrideValues.actionType = ActionType.KEYBOARDENTER;
|
|
2525
|
+
}
|
|
2526
|
+
else if (isKeyboardSpace(clickEvent)) {
|
|
2527
|
+
overrideValues.actionType = ActionType.KEYBOARDSPACE;
|
|
2528
|
+
}
|
|
2529
|
+
else if (isMiddleClick(clickEvent)) {
|
|
2530
|
+
overrideValues.actionType = ActionType.CLICKMIDDLE;
|
|
2531
|
+
}
|
|
2532
|
+
else {
|
|
2533
|
+
return;
|
|
2534
|
+
}
|
|
2535
|
+
while (element && element.tagName) {
|
|
2536
|
+
if (element.control && clickCaptureElements[element.control.tagName.toUpperCase()]) {
|
|
2537
|
+
element = element.control;
|
|
2538
|
+
}
|
|
2539
|
+
var tagNameUpperCased = element.tagName.toUpperCase();
|
|
2540
|
+
if (!clickCaptureElements[tagNameUpperCased]) {
|
|
2541
|
+
element = element.parentElement || element.parentNode;
|
|
2542
|
+
continue;
|
|
2543
|
+
}
|
|
2544
|
+
else {
|
|
2545
|
+
var sendEvent = tagNameUpperCased === "INPUT" ? clickCaptureInputTypes[element.type.toUpperCase()] : true;
|
|
2546
|
+
if (sendEvent) {
|
|
2547
|
+
_capturePageAction(element, overrideValues, {}, isRightClickObj);
|
|
2548
|
+
}
|
|
2549
|
+
break;
|
|
2550
|
+
}
|
|
2405
2551
|
}
|
|
2406
|
-
break;
|
|
2407
2552
|
}
|
|
2408
2553
|
}
|
|
2409
|
-
}
|
|
2410
|
-
}
|
|
2554
|
+
});
|
|
2555
|
+
}
|
|
2411
2556
|
return AutoCaptureHandler;
|
|
2412
2557
|
}());
|
|
2413
2558
|
|
|
@@ -2416,289 +2561,318 @@ this.Microsoft = this.Microsoft || {};
|
|
|
2416
2561
|
function DomContentHandler(_config, _traceLogger) {
|
|
2417
2562
|
this._config = _config;
|
|
2418
2563
|
this._traceLogger = _traceLogger;
|
|
2419
|
-
|
|
2420
|
-
|
|
2421
|
-
|
|
2422
|
-
|
|
2423
|
-
|
|
2424
|
-
|
|
2425
|
-
|
|
2426
|
-
|
|
2427
|
-
|
|
2428
|
-
|
|
2429
|
-
|
|
2430
|
-
|
|
2431
|
-
|
|
2432
|
-
|
|
2433
|
-
|
|
2434
|
-
|
|
2435
|
-
|
|
2436
|
-
|
|
2437
|
-
|
|
2438
|
-
|
|
2439
|
-
|
|
2440
|
-
|
|
2441
|
-
|
|
2442
|
-
|
|
2443
|
-
|
|
2444
|
-
|
|
2564
|
+
dynamicProto(DomContentHandler, this, function (_self) {
|
|
2565
|
+
_self.getMetadata = function () {
|
|
2566
|
+
var dataTags = (_self._config || {}).dataTags;
|
|
2567
|
+
var metaTags = {};
|
|
2568
|
+
if (hasDocument) {
|
|
2569
|
+
metaTags = isValueAssigned(dataTags.metaDataPrefix) ? _getMetaDataFromDOM(dataTags.captureAllMetaDataContent, dataTags.metaDataPrefix, false) :
|
|
2570
|
+
_getMetaDataFromDOM(dataTags.captureAllMetaDataContent, "", false);
|
|
2571
|
+
}
|
|
2572
|
+
return metaTags;
|
|
2573
|
+
};
|
|
2574
|
+
_self.getElementContent = function (element) {
|
|
2575
|
+
if (!element) {
|
|
2576
|
+
return {};
|
|
2577
|
+
}
|
|
2578
|
+
var dataTags = (_self._config || {}).dataTags;
|
|
2579
|
+
var elementContent = {};
|
|
2580
|
+
var biBlobValue;
|
|
2581
|
+
var parentDataTagPrefix;
|
|
2582
|
+
var dataTagPrefix = dataTags.customDataPrefix;
|
|
2583
|
+
var aiBlobAttributeTag = dataTagPrefix + dataTags.aiBlobAttributeTag;
|
|
2584
|
+
if (isValueAssigned(dataTags.parentDataTag)) {
|
|
2585
|
+
parentDataTagPrefix = dataTagPrefix + dataTags.parentDataTag;
|
|
2586
|
+
}
|
|
2587
|
+
if (!_isTracked(element, dataTagPrefix, aiBlobAttributeTag)) {
|
|
2588
|
+
biBlobValue = element.getAttribute(aiBlobAttributeTag);
|
|
2589
|
+
if (biBlobValue) {
|
|
2590
|
+
try {
|
|
2591
|
+
elementContent = JSON.parse(biBlobValue);
|
|
2592
|
+
}
|
|
2593
|
+
catch (e) {
|
|
2594
|
+
_self._traceLogger.throwInternal(LoggingSeverity.CRITICAL, _ExtendedInternalMessageId.CannotParseAiBlobValue, "Can not parse " + biBlobValue);
|
|
2595
|
+
}
|
|
2596
|
+
}
|
|
2597
|
+
else {
|
|
2598
|
+
elementContent = extend(elementContent, _populateElementContent(element, dataTagPrefix, parentDataTagPrefix, aiBlobAttributeTag));
|
|
2599
|
+
}
|
|
2445
2600
|
}
|
|
2446
|
-
|
|
2447
|
-
|
|
2601
|
+
else {
|
|
2602
|
+
elementContent = extend(elementContent, _populateElementContentwithDataTag(element, dataTagPrefix, parentDataTagPrefix, aiBlobAttributeTag));
|
|
2448
2603
|
}
|
|
2449
|
-
|
|
2450
|
-
|
|
2451
|
-
|
|
2452
|
-
|
|
2453
|
-
|
|
2454
|
-
|
|
2455
|
-
|
|
2456
|
-
|
|
2457
|
-
|
|
2458
|
-
|
|
2459
|
-
|
|
2460
|
-
|
|
2461
|
-
|
|
2462
|
-
};
|
|
2463
|
-
DomContentHandler.prototype._captureElementContentWithDataTag = function (contentElement, elementContent, dataTagPrefix) {
|
|
2464
|
-
for (var i = 0, attrib; i < contentElement.attributes.length; i++) {
|
|
2465
|
-
attrib = contentElement.attributes[i];
|
|
2466
|
-
if (attrib.name.indexOf(dataTagPrefix) !== 0) {
|
|
2467
|
-
continue;
|
|
2468
|
-
}
|
|
2469
|
-
var attribName = attrib.name.replace(dataTagPrefix, "");
|
|
2470
|
-
elementContent[attribName] = attrib.value;
|
|
2471
|
-
}
|
|
2472
|
-
};
|
|
2473
|
-
DomContentHandler.prototype._walkUpDomChainCaptureData = function (el, elementContent, dataTagPrefix, parentDataTagPrefix, aiBlobAttributeTag) {
|
|
2474
|
-
var element = el;
|
|
2475
|
-
var parentDataTagFound = false;
|
|
2476
|
-
var elementLevelFlag = false;
|
|
2477
|
-
while (!isNullOrUndefined(element) && !isNullOrUndefined(element.attributes)) {
|
|
2478
|
-
var attributes = element.attributes;
|
|
2479
|
-
for (var i = 0; i < attributes.length; i++) {
|
|
2480
|
-
var attrib = attributes[i];
|
|
2481
|
-
if (attrib.name.indexOf(dataTagPrefix) !== 0) {
|
|
2482
|
-
continue;
|
|
2483
|
-
}
|
|
2484
|
-
if (attrib.name.indexOf(parentDataTagPrefix) === 0) {
|
|
2485
|
-
parentDataTagFound = true;
|
|
2486
|
-
}
|
|
2487
|
-
if (attrib.name.indexOf(aiBlobAttributeTag) === 0) {
|
|
2488
|
-
continue;
|
|
2489
|
-
}
|
|
2490
|
-
var attribName = attrib.name.replace(dataTagPrefix, "");
|
|
2491
|
-
if (elementLevelFlag && attribName === "id") {
|
|
2492
|
-
continue;
|
|
2493
|
-
}
|
|
2494
|
-
if (!isValueAssigned(elementContent[attribName])) {
|
|
2604
|
+
removeInvalidElements(elementContent);
|
|
2605
|
+
if (parentDataTagPrefix) {
|
|
2606
|
+
elementContent = extend(elementContent, _getParentDetails(element, elementContent, dataTagPrefix, aiBlobAttributeTag));
|
|
2607
|
+
}
|
|
2608
|
+
return elementContent;
|
|
2609
|
+
};
|
|
2610
|
+
function _captureElementContentWithDataTag(contentElement, elementContent, dataTagPrefix) {
|
|
2611
|
+
for (var i = 0, attrib; i < contentElement.attributes.length; i++) {
|
|
2612
|
+
attrib = contentElement.attributes[i];
|
|
2613
|
+
if (attrib.name.indexOf(dataTagPrefix) !== 0) {
|
|
2614
|
+
continue;
|
|
2615
|
+
}
|
|
2616
|
+
var attribName = attrib.name.replace(dataTagPrefix, "");
|
|
2495
2617
|
elementContent[attribName] = attrib.value;
|
|
2496
2618
|
}
|
|
2497
2619
|
}
|
|
2498
|
-
|
|
2499
|
-
|
|
2500
|
-
|
|
2501
|
-
|
|
2502
|
-
|
|
2503
|
-
|
|
2504
|
-
|
|
2505
|
-
|
|
2506
|
-
|
|
2507
|
-
|
|
2508
|
-
|
|
2509
|
-
|
|
2510
|
-
|
|
2511
|
-
|
|
2512
|
-
|
|
2513
|
-
|
|
2514
|
-
|
|
2515
|
-
|
|
2516
|
-
|
|
2517
|
-
|
|
2518
|
-
|
|
2519
|
-
|
|
2520
|
-
|
|
2521
|
-
|
|
2522
|
-
|
|
2523
|
-
|
|
2524
|
-
|
|
2525
|
-
var elementContent = {};
|
|
2526
|
-
if (!element) {
|
|
2527
|
-
return elementContent;
|
|
2528
|
-
}
|
|
2529
|
-
var htmlContent = this._getHtmlIdAndContentName(element);
|
|
2530
|
-
if (isValueAssigned(parentDataTagPrefix)) {
|
|
2531
|
-
this._walkUpDomChainCaptureData(element, elementContent, dataTagPrefix, parentDataTagPrefix, aiBlobAttributeTag);
|
|
2532
|
-
}
|
|
2533
|
-
else {
|
|
2534
|
-
this._captureElementContentWithDataTag(element, elementContent, dataTagPrefix);
|
|
2535
|
-
}
|
|
2536
|
-
if (this._config.dataTags.useDefaultContentNameOrId) {
|
|
2537
|
-
if (!isValueAssigned(elementContent.id)) {
|
|
2538
|
-
elementContent.id = htmlContent.id || "";
|
|
2539
|
-
}
|
|
2540
|
-
elementContent.contentName = htmlContent.contentName || "";
|
|
2541
|
-
}
|
|
2542
|
-
if (!elementContent.id && !elementContent.contentName) {
|
|
2543
|
-
this._traceLogger.throwInternal(LoggingSeverity.WARNING, _ExtendedInternalMessageId.InvalidContentBlob, "Invalid content blob. Missing required attributes (id, contentName. " +
|
|
2544
|
-
" Content information will still be collected!");
|
|
2545
|
-
}
|
|
2546
|
-
return elementContent;
|
|
2547
|
-
};
|
|
2548
|
-
DomContentHandler.prototype._getMetaDataFromDOM = function (captureAllMetaDataContent, prefix, removePrefix) {
|
|
2549
|
-
var metaElements;
|
|
2550
|
-
var metaData = {};
|
|
2551
|
-
if (hasDocument) {
|
|
2552
|
-
metaElements = document.querySelectorAll("meta");
|
|
2553
|
-
for (var i = 0; i < metaElements.length; i++) {
|
|
2554
|
-
var meta = metaElements[i];
|
|
2555
|
-
if (meta.name) {
|
|
2556
|
-
if (captureAllMetaDataContent || meta.name.indexOf(prefix) === 0) {
|
|
2557
|
-
var name_1 = removePrefix ? meta.name.replace(prefix, "") : meta.name;
|
|
2558
|
-
metaData[name_1] = meta.content;
|
|
2620
|
+
function _walkUpDomChainCaptureData(el, elementContent, dataTagPrefix, parentDataTagPrefix, aiBlobAttributeTag) {
|
|
2621
|
+
var element = el;
|
|
2622
|
+
var parentDataTagFound = false;
|
|
2623
|
+
var elementLevelFlag = false;
|
|
2624
|
+
while (!isNullOrUndefined(element) && !isNullOrUndefined(element.attributes)) {
|
|
2625
|
+
var attributes = element.attributes;
|
|
2626
|
+
for (var i = 0; i < attributes.length; i++) {
|
|
2627
|
+
var attrib = attributes[i];
|
|
2628
|
+
if (attrib.name.indexOf(dataTagPrefix) !== 0) {
|
|
2629
|
+
continue;
|
|
2630
|
+
}
|
|
2631
|
+
if (attrib.name.indexOf(parentDataTagPrefix) === 0) {
|
|
2632
|
+
parentDataTagFound = true;
|
|
2633
|
+
}
|
|
2634
|
+
if (attrib.name.indexOf(aiBlobAttributeTag) === 0) {
|
|
2635
|
+
continue;
|
|
2636
|
+
}
|
|
2637
|
+
var attribName = attrib.name.replace(dataTagPrefix, "");
|
|
2638
|
+
if (elementLevelFlag && attribName === "id") {
|
|
2639
|
+
continue;
|
|
2640
|
+
}
|
|
2641
|
+
if (!isValueAssigned(elementContent[attribName])) {
|
|
2642
|
+
elementContent[attribName] = attrib.value;
|
|
2643
|
+
}
|
|
2644
|
+
}
|
|
2645
|
+
if (parentDataTagFound) {
|
|
2646
|
+
break;
|
|
2559
2647
|
}
|
|
2648
|
+
elementLevelFlag = true;
|
|
2649
|
+
element = element.parentNode;
|
|
2560
2650
|
}
|
|
2561
2651
|
}
|
|
2562
|
-
|
|
2563
|
-
|
|
2564
|
-
|
|
2565
|
-
|
|
2566
|
-
if (useDefaultContentName === false || !element.tagName) {
|
|
2567
|
-
return "";
|
|
2568
|
-
}
|
|
2569
|
-
var doc = getDocument() || {};
|
|
2570
|
-
var contentName;
|
|
2571
|
-
switch (element.tagName) {
|
|
2572
|
-
case "A":
|
|
2573
|
-
contentName = doc.all ? element.innerText || element.innerHTML : element.text || element.innerHTML;
|
|
2574
|
-
break;
|
|
2575
|
-
case "IMG":
|
|
2576
|
-
case "AREA":
|
|
2577
|
-
contentName = element.alt;
|
|
2578
|
-
break;
|
|
2579
|
-
default:
|
|
2580
|
-
contentName = element.value || element.name || element.alt || element.innerText || element.id;
|
|
2581
|
-
}
|
|
2582
|
-
return contentName.substring(0, MAX_CONTENTNAME_LENGTH);
|
|
2583
|
-
};
|
|
2584
|
-
DomContentHandler.prototype._isTracked = function (element, dataTag, aiBlobAttributeTag) {
|
|
2585
|
-
var attrs = element.attributes;
|
|
2586
|
-
var dataTagFound = false;
|
|
2587
|
-
for (var i = 0; i < attrs.length; i++) {
|
|
2588
|
-
var attributeName = attrs[i].name;
|
|
2589
|
-
if (attributeName === aiBlobAttributeTag) {
|
|
2590
|
-
return false;
|
|
2591
|
-
}
|
|
2592
|
-
else if (attributeName.indexOf(dataTag) === 0) {
|
|
2593
|
-
dataTagFound = true;
|
|
2594
|
-
}
|
|
2595
|
-
}
|
|
2596
|
-
return dataTagFound;
|
|
2597
|
-
};
|
|
2598
|
-
DomContentHandler.prototype._getHtmlIdAndContentName = function (element) {
|
|
2599
|
-
var htmlContent = {};
|
|
2600
|
-
if (!element) {
|
|
2601
|
-
return htmlContent;
|
|
2602
|
-
}
|
|
2603
|
-
if (this._config.dataTags.useDefaultContentNameOrId) {
|
|
2604
|
-
var customizedContentName = this._config.callback.contentName ? this._config.callback.contentName(element, this._config.dataTags.useDefaultContentNameOrId) : "";
|
|
2605
|
-
var defaultContentName = this._getDefaultContentName(element, this._config.dataTags.useDefaultContentNameOrId);
|
|
2606
|
-
htmlContent = {
|
|
2607
|
-
id: element.id,
|
|
2608
|
-
contentName: customizedContentName || defaultContentName || element.getAttribute("alt")
|
|
2609
|
-
};
|
|
2610
|
-
}
|
|
2611
|
-
return htmlContent;
|
|
2612
|
-
};
|
|
2613
|
-
DomContentHandler.prototype._getParentDetails = function (element, elementContent, dataTagPrefix, aiBlobAttributeTag) {
|
|
2614
|
-
var parentId = elementContent["parentid"];
|
|
2615
|
-
var parentName = elementContent["parentname"];
|
|
2616
|
-
var parentInfo = {};
|
|
2617
|
-
if (parentId || parentName || !element) {
|
|
2618
|
-
return parentInfo;
|
|
2619
|
-
}
|
|
2620
|
-
return this._populateParentInfo(element, dataTagPrefix, aiBlobAttributeTag);
|
|
2621
|
-
};
|
|
2622
|
-
DomContentHandler.prototype._populateParentInfo = function (element, dataTagPrefix, aiBlobAttributeTag) {
|
|
2623
|
-
var parentInfo = {};
|
|
2624
|
-
var parentId;
|
|
2625
|
-
var closestParentElement = walkUpDomChainWithElementValidation(element.parentElement, this._isTracked, dataTagPrefix);
|
|
2626
|
-
if (closestParentElement) {
|
|
2627
|
-
var dataAttr = closestParentElement.getAttribute(aiBlobAttributeTag) || element[aiBlobAttributeTag];
|
|
2628
|
-
if (dataAttr) {
|
|
2629
|
-
try {
|
|
2630
|
-
var telemetryObject = JSON.parse(dataAttr);
|
|
2652
|
+
function _populateElementContent(element, dataTagPrefix, parentDataTagPrefix, aiBlobAttributeTag) {
|
|
2653
|
+
var elementContent = {};
|
|
2654
|
+
if (!element) {
|
|
2655
|
+
return elementContent;
|
|
2631
2656
|
}
|
|
2632
|
-
|
|
2633
|
-
|
|
2657
|
+
var htmlContent = _getHtmlIdAndContentName(element);
|
|
2658
|
+
elementContent = {
|
|
2659
|
+
id: htmlContent.id || "",
|
|
2660
|
+
contentName: htmlContent.contentName || ""
|
|
2661
|
+
};
|
|
2662
|
+
if (isValueAssigned(parentDataTagPrefix)) {
|
|
2663
|
+
_walkUpDomChainCaptureData(element, elementContent, dataTagPrefix, parentDataTagPrefix, aiBlobAttributeTag);
|
|
2634
2664
|
}
|
|
2635
|
-
if (
|
|
2636
|
-
|
|
2665
|
+
if (!elementContent.id && !elementContent.contentName) {
|
|
2666
|
+
_traceLogger.throwInternal(LoggingSeverity.WARNING, _ExtendedInternalMessageId.InvalidContentBlob, "Invalid content blob. Missing required attributes (id, contentName. " +
|
|
2667
|
+
" Content information will still be collected!");
|
|
2637
2668
|
}
|
|
2669
|
+
return elementContent;
|
|
2638
2670
|
}
|
|
2639
|
-
|
|
2640
|
-
|
|
2671
|
+
function _populateElementContentwithDataTag(element, dataTagPrefix, parentDataTagPrefix, aiBlobAttributeTag) {
|
|
2672
|
+
var dataTags = (_self._config || {}).dataTags;
|
|
2673
|
+
var elementContent = {};
|
|
2674
|
+
if (!element) {
|
|
2675
|
+
return elementContent;
|
|
2676
|
+
}
|
|
2677
|
+
var htmlContent = _getHtmlIdAndContentName(element);
|
|
2678
|
+
if (isValueAssigned(parentDataTagPrefix)) {
|
|
2679
|
+
_walkUpDomChainCaptureData(element, elementContent, dataTagPrefix, parentDataTagPrefix, aiBlobAttributeTag);
|
|
2680
|
+
}
|
|
2681
|
+
else {
|
|
2682
|
+
_captureElementContentWithDataTag(element, elementContent, dataTagPrefix);
|
|
2683
|
+
}
|
|
2684
|
+
if (dataTags.useDefaultContentNameOrId) {
|
|
2685
|
+
if (!isValueAssigned(elementContent.id)) {
|
|
2686
|
+
elementContent.id = htmlContent.id || "";
|
|
2687
|
+
}
|
|
2688
|
+
elementContent.contentName = htmlContent.contentName || "";
|
|
2689
|
+
}
|
|
2690
|
+
if (!elementContent.id && !elementContent.contentName) {
|
|
2691
|
+
_traceLogger.throwInternal(LoggingSeverity.WARNING, _ExtendedInternalMessageId.InvalidContentBlob, "Invalid content blob. Missing required attributes (id, contentName. " +
|
|
2692
|
+
" Content information will still be collected!");
|
|
2693
|
+
}
|
|
2694
|
+
return elementContent;
|
|
2695
|
+
}
|
|
2696
|
+
function _getMetaDataFromDOM(captureAllMetaDataContent, prefix, removePrefix) {
|
|
2697
|
+
var metaElements;
|
|
2698
|
+
var metaData = {};
|
|
2699
|
+
if (hasDocument) {
|
|
2700
|
+
metaElements = document.querySelectorAll("meta");
|
|
2701
|
+
for (var i = 0; i < metaElements.length; i++) {
|
|
2702
|
+
var meta = metaElements[i];
|
|
2703
|
+
if (meta.name) {
|
|
2704
|
+
if (captureAllMetaDataContent || meta.name.indexOf(prefix) === 0) {
|
|
2705
|
+
var name_1 = removePrefix ? meta.name.replace(prefix, "") : meta.name;
|
|
2706
|
+
metaData[name_1] = meta.content;
|
|
2707
|
+
}
|
|
2708
|
+
}
|
|
2709
|
+
}
|
|
2710
|
+
}
|
|
2711
|
+
return metaData;
|
|
2712
|
+
}
|
|
2713
|
+
function _getDefaultContentName(element, useDefaultContentName) {
|
|
2714
|
+
if (useDefaultContentName === false || !element.tagName) {
|
|
2715
|
+
return "";
|
|
2716
|
+
}
|
|
2717
|
+
var doc = getDocument() || {};
|
|
2718
|
+
var contentName;
|
|
2719
|
+
switch (element.tagName) {
|
|
2720
|
+
case "A":
|
|
2721
|
+
contentName = doc.all ? element.innerText || element.innerHTML : element.text || element.innerHTML;
|
|
2722
|
+
break;
|
|
2723
|
+
case "IMG":
|
|
2724
|
+
case "AREA":
|
|
2725
|
+
contentName = element.alt;
|
|
2726
|
+
break;
|
|
2727
|
+
default:
|
|
2728
|
+
contentName = element.value || element.name || element.alt || element.innerText || element.id;
|
|
2729
|
+
}
|
|
2730
|
+
return contentName.substring(0, MAX_CONTENTNAME_LENGTH);
|
|
2731
|
+
}
|
|
2732
|
+
function _isTracked(element, dataTag, aiBlobAttributeTag) {
|
|
2733
|
+
var attrs = element.attributes;
|
|
2734
|
+
var dataTagFound = false;
|
|
2735
|
+
for (var i = 0; i < attrs.length; i++) {
|
|
2736
|
+
var attributeName = attrs[i].name;
|
|
2737
|
+
if (attributeName === aiBlobAttributeTag) {
|
|
2738
|
+
return false;
|
|
2739
|
+
}
|
|
2740
|
+
else if (attributeName.indexOf(dataTag) === 0) {
|
|
2741
|
+
dataTagFound = true;
|
|
2742
|
+
}
|
|
2743
|
+
}
|
|
2744
|
+
return dataTagFound;
|
|
2745
|
+
}
|
|
2746
|
+
function _getHtmlIdAndContentName(element) {
|
|
2747
|
+
var dataTags = (_self._config || {}).dataTags;
|
|
2748
|
+
var callback = (_self._config || {}).callback;
|
|
2749
|
+
var htmlContent = {};
|
|
2750
|
+
if (!element) {
|
|
2751
|
+
return htmlContent;
|
|
2752
|
+
}
|
|
2753
|
+
if (dataTags.useDefaultContentNameOrId) {
|
|
2754
|
+
var customizedContentName = callback.contentName ? callback.contentName(element, dataTags.useDefaultContentNameOrId) : "";
|
|
2755
|
+
var defaultContentName = _getDefaultContentName(element, dataTags.useDefaultContentNameOrId);
|
|
2756
|
+
htmlContent = {
|
|
2757
|
+
id: element.id,
|
|
2758
|
+
contentName: customizedContentName || defaultContentName || element.getAttribute("alt")
|
|
2759
|
+
};
|
|
2760
|
+
}
|
|
2761
|
+
return htmlContent;
|
|
2762
|
+
}
|
|
2763
|
+
function _getParentDetails(element, elementContent, dataTagPrefix, aiBlobAttributeTag) {
|
|
2764
|
+
var parentId = elementContent["parentid"];
|
|
2765
|
+
var parentName = elementContent["parentname"];
|
|
2766
|
+
var parentInfo = {};
|
|
2767
|
+
if (parentId || parentName || !element) {
|
|
2768
|
+
return parentInfo;
|
|
2769
|
+
}
|
|
2770
|
+
return _populateParentInfo(element, dataTagPrefix, aiBlobAttributeTag);
|
|
2771
|
+
}
|
|
2772
|
+
function _populateParentInfo(element, dataTagPrefix, aiBlobAttributeTag) {
|
|
2773
|
+
var parentInfo = {};
|
|
2774
|
+
var parentId;
|
|
2775
|
+
var closestParentElement = walkUpDomChainWithElementValidation(element.parentElement, _isTracked, dataTagPrefix);
|
|
2776
|
+
if (closestParentElement) {
|
|
2777
|
+
var dataAttr = closestParentElement.getAttribute(aiBlobAttributeTag) || element[aiBlobAttributeTag];
|
|
2778
|
+
if (dataAttr) {
|
|
2779
|
+
try {
|
|
2780
|
+
var telemetryObject = JSON.parse(dataAttr);
|
|
2781
|
+
}
|
|
2782
|
+
catch (e) {
|
|
2783
|
+
_traceLogger.throwInternal(LoggingSeverity.CRITICAL, _ExtendedInternalMessageId.CannotParseAiBlobValue, "Can not parse " + dataAttr);
|
|
2784
|
+
}
|
|
2785
|
+
if (telemetryObject) {
|
|
2786
|
+
parentId = telemetryObject.id;
|
|
2787
|
+
}
|
|
2788
|
+
}
|
|
2789
|
+
else {
|
|
2790
|
+
parentId = closestParentElement.getAttribute(dataTagPrefix + "id");
|
|
2791
|
+
}
|
|
2792
|
+
}
|
|
2793
|
+
if (parentId) {
|
|
2794
|
+
parentInfo["parentid"] = parentId;
|
|
2795
|
+
}
|
|
2796
|
+
else {
|
|
2797
|
+
var htmlContent = _getHtmlIdAndContentName(element.parentElement);
|
|
2798
|
+
parentInfo["parentid"] = htmlContent.id;
|
|
2799
|
+
parentInfo["parentname"] = htmlContent.contentName;
|
|
2800
|
+
}
|
|
2801
|
+
return parentInfo;
|
|
2641
2802
|
}
|
|
2642
|
-
}
|
|
2643
|
-
|
|
2644
|
-
parentInfo["parentid"] = parentId;
|
|
2645
|
-
}
|
|
2646
|
-
else {
|
|
2647
|
-
var htmlContent = this._getHtmlIdAndContentName(element.parentElement);
|
|
2648
|
-
parentInfo["parentid"] = htmlContent.id;
|
|
2649
|
-
parentInfo["parentname"] = htmlContent.contentName;
|
|
2650
|
-
}
|
|
2651
|
-
return parentInfo;
|
|
2652
|
-
};
|
|
2803
|
+
});
|
|
2804
|
+
}
|
|
2653
2805
|
return DomContentHandler;
|
|
2654
2806
|
}());
|
|
2655
2807
|
|
|
2656
2808
|
var ClickAnalyticsPlugin = /** @class */ (function (_super) {
|
|
2657
2809
|
__extendsFn(ClickAnalyticsPlugin, _super);
|
|
2658
2810
|
function ClickAnalyticsPlugin() {
|
|
2659
|
-
var _this = _super
|
|
2811
|
+
var _this = _super.call(this) || this;
|
|
2660
2812
|
_this.identifier = "ClickAnalyticsPlugin";
|
|
2661
2813
|
_this.priority = 181;
|
|
2662
|
-
|
|
2663
|
-
|
|
2664
|
-
|
|
2665
|
-
|
|
2666
|
-
|
|
2667
|
-
|
|
2668
|
-
|
|
2669
|
-
|
|
2670
|
-
|
|
2671
|
-
|
|
2672
|
-
|
|
2673
|
-
|
|
2674
|
-
|
|
2675
|
-
|
|
2676
|
-
|
|
2677
|
-
|
|
2678
|
-
|
|
2679
|
-
|
|
2680
|
-
|
|
2681
|
-
|
|
2682
|
-
|
|
2683
|
-
|
|
2814
|
+
var _config;
|
|
2815
|
+
var _pageAction;
|
|
2816
|
+
var _autoCaptureHandler;
|
|
2817
|
+
var _contentHandler;
|
|
2818
|
+
dynamicProto(ClickAnalyticsPlugin, _this, function (_self, _base) {
|
|
2819
|
+
var _identifier = _self.identifier;
|
|
2820
|
+
_initDefaults();
|
|
2821
|
+
_self.initialize = function (config, core, extensions, pluginChain) {
|
|
2822
|
+
if (isNullOrUndefined(core)) {
|
|
2823
|
+
throwError("Error initializing");
|
|
2824
|
+
}
|
|
2825
|
+
config.extensionConfig = config.extensionConfig || [];
|
|
2826
|
+
config.extensionConfig[_identifier] = config.extensionConfig[_identifier] || {};
|
|
2827
|
+
_config = mergeConfig(config.extensionConfig[_identifier]);
|
|
2828
|
+
_super.prototype.initialize.call(_this, config, core, extensions, pluginChain);
|
|
2829
|
+
var logger = _self.diagLog();
|
|
2830
|
+
_contentHandler = _contentHandler ? _contentHandler : new DomContentHandler(_config, logger);
|
|
2831
|
+
var metaTags = _contentHandler.getMetadata();
|
|
2832
|
+
_pageAction = new PageAction(_this, _config, _contentHandler, _config.callback.pageActionPageTags, metaTags, logger);
|
|
2833
|
+
_autoCaptureHandler = _autoCaptureHandler ? _autoCaptureHandler : new AutoCaptureHandler(_self, _config, _pageAction, logger);
|
|
2834
|
+
if (_config.autoCapture) {
|
|
2835
|
+
_autoCaptureHandler.click();
|
|
2836
|
+
}
|
|
2837
|
+
var _propertiesExtension;
|
|
2838
|
+
arrForEach(extensions, function (extension) {
|
|
2839
|
+
if (extension.identifier === PropertiesPluginIdentifier) {
|
|
2840
|
+
_propertiesExtension = extension;
|
|
2841
|
+
}
|
|
2842
|
+
});
|
|
2843
|
+
if (_propertiesExtension && _propertiesExtension.context &&
|
|
2844
|
+
_propertiesExtension.context.internal && _propertiesExtension.context.internal.sdkVersion) {
|
|
2845
|
+
_propertiesExtension.context.internal.sdkVersion += "_ClickPlugin" + ClickAnalyticsPlugin.Version;
|
|
2846
|
+
}
|
|
2847
|
+
};
|
|
2848
|
+
_self.processTelemetry = function (env, itemCtx) {
|
|
2849
|
+
_self.processNext(env, itemCtx);
|
|
2850
|
+
};
|
|
2851
|
+
_self.trackPageAction = function (pageAction, customProperties) {
|
|
2852
|
+
try {
|
|
2853
|
+
_pageAction.trackPageAction(pageAction, customProperties);
|
|
2854
|
+
}
|
|
2855
|
+
catch (e) {
|
|
2856
|
+
_throwInternal(_self.diagLog(), LoggingSeverity.CRITICAL, _ExtendedInternalMessageId.TrackPageActionEventFailed, "trackPageAction failed, page action event will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
2857
|
+
}
|
|
2858
|
+
};
|
|
2859
|
+
_self._doTeardown = function (unloadCtx, unloadState, asyncCallback) {
|
|
2860
|
+
return unloadComponents([
|
|
2861
|
+
_autoCaptureHandler,
|
|
2862
|
+
_contentHandler,
|
|
2863
|
+
_pageAction
|
|
2864
|
+
], unloadCtx, unloadState);
|
|
2865
|
+
};
|
|
2684
2866
|
});
|
|
2685
|
-
|
|
2686
|
-
|
|
2687
|
-
|
|
2688
|
-
|
|
2689
|
-
|
|
2690
|
-
ClickAnalyticsPlugin.prototype.processTelemetry = function (env, itemCtx) {
|
|
2691
|
-
this.processNext(env, itemCtx);
|
|
2692
|
-
};
|
|
2693
|
-
ClickAnalyticsPlugin.prototype.trackPageAction = function (pageAction, customProperties) {
|
|
2694
|
-
try {
|
|
2695
|
-
this.pageAction.trackPageAction(pageAction, customProperties);
|
|
2696
|
-
}
|
|
2697
|
-
catch (e) {
|
|
2698
|
-
this.diagLog().throwInternal(LoggingSeverity.CRITICAL, _ExtendedInternalMessageId.TrackPageActionEventFailed, "trackPageAction failed, page action event will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
2867
|
+
function _initDefaults() {
|
|
2868
|
+
_config = null;
|
|
2869
|
+
_pageAction = null;
|
|
2870
|
+
_autoCaptureHandler = null;
|
|
2871
|
+
_contentHandler = null;
|
|
2699
2872
|
}
|
|
2700
|
-
|
|
2701
|
-
|
|
2873
|
+
return _this;
|
|
2874
|
+
}
|
|
2875
|
+
ClickAnalyticsPlugin.Version = "2.8.0-beta.2203-13";
|
|
2702
2876
|
return ClickAnalyticsPlugin;
|
|
2703
2877
|
}(BaseTelemetryPlugin));
|
|
2704
2878
|
|