@microsoft/applicationinsights-clickanalytics-js 2.8.15-nightly.2307-12 → 2.8.15-nightly.2307-19
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.15-nightly.2307-12.cjs.js → ai.clck.2.8.15-nightly.2307-19.cjs.js} +7 -4
- package/browser/{ai.clck.2.8.15-nightly.2307-12.cjs.js.map → ai.clck.2.8.15-nightly.2307-19.cjs.js.map} +1 -1
- package/browser/{ai.clck.2.8.15-nightly.2307-12.cjs.min.js → ai.clck.2.8.15-nightly.2307-19.cjs.min.js} +3 -3
- package/browser/{ai.clck.2.8.15-nightly.2307-12.cjs.min.js.map → ai.clck.2.8.15-nightly.2307-19.cjs.min.js.map} +1 -1
- package/browser/ai.clck.2.8.15-nightly.2307-19.gbl.js +3070 -0
- package/browser/{ai.clck.2.8.15-nightly.2307-12.gbl.js.map → ai.clck.2.8.15-nightly.2307-19.gbl.js.map} +1 -1
- package/browser/ai.clck.2.8.15-nightly.2307-19.gbl.min.js +6 -0
- package/browser/{ai.clck.2.8.15-nightly.2307-12.gbl.min.js.map → ai.clck.2.8.15-nightly.2307-19.gbl.min.js.map} +1 -1
- package/browser/ai.clck.2.8.15-nightly.2307-19.integrity.json +66 -0
- package/browser/ai.clck.2.8.15-nightly.2307-19.js +3074 -0
- package/browser/{ai.clck.2.8.15-nightly.2307-12.js.map → ai.clck.2.8.15-nightly.2307-19.js.map} +1 -1
- package/browser/ai.clck.2.8.15-nightly.2307-19.min.js +6 -0
- package/browser/{ai.clck.2.8.15-nightly.2307-12.min.js.map → ai.clck.2.8.15-nightly.2307-19.min.js.map} +1 -1
- package/browser/ai.clck.2.cjs.js +6 -3
- 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 +2789 -2766
- 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 +2791 -2766
- 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.d.ts +1 -1
- package/dist/applicationinsights-clickanalytics-js.js +3 -3
- 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 +2 -2
- 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/__DynamicConstants.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 +1 -1
- package/dist-esm/events/WebEvent.js +1 -1
- package/dist-esm/handlers/AutoCaptureHandler.js +1 -1
- package/dist-esm/handlers/DomContentHandler.js +1 -1
- package/package.json +4 -4
- package/browser/ai.clck.2.8.15-nightly.2307-12.gbl.js +0 -3047
- package/browser/ai.clck.2.8.15-nightly.2307-12.gbl.min.js +0 -6
- package/browser/ai.clck.2.8.15-nightly.2307-12.integrity.json +0 -66
- package/browser/ai.clck.2.8.15-nightly.2307-12.js +0 -3049
- package/browser/ai.clck.2.8.15-nightly.2307-12.min.js +0 -6
|
@@ -1,3047 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Application Insights JavaScript SDK - Click Analytics, 2.8.15-nightly.2307-12
|
|
3
|
-
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
4
|
-
*/
|
|
5
|
-
this.Microsoft = this.Microsoft || {};
|
|
6
|
-
(function (exports) {
|
|
7
|
-
'use strict';
|
|
8
|
-
|
|
9
|
-
var strShimFunction = "function";
|
|
10
|
-
var strShimObject = "object";
|
|
11
|
-
var strShimUndefined = "undefined";
|
|
12
|
-
var strShimPrototype = "prototype";
|
|
13
|
-
var strShimHasOwnProperty = "hasOwnProperty";
|
|
14
|
-
var ObjClass = Object;
|
|
15
|
-
var ObjProto = ObjClass[strShimPrototype];
|
|
16
|
-
var ObjAssign = ObjClass["assign"];
|
|
17
|
-
var ObjCreate = ObjClass["create"];
|
|
18
|
-
var ObjDefineProperty = ObjClass["defineProperty"];
|
|
19
|
-
var ObjHasOwnProperty = ObjProto[strShimHasOwnProperty];
|
|
20
|
-
|
|
21
|
-
var _cachedGlobal = null;
|
|
22
|
-
function getGlobal(useCached) {
|
|
23
|
-
if (useCached === void 0) { useCached = true; }
|
|
24
|
-
var result = useCached === false ? null : _cachedGlobal;
|
|
25
|
-
if (!result) {
|
|
26
|
-
if (typeof globalThis !== strShimUndefined) {
|
|
27
|
-
result = globalThis;
|
|
28
|
-
}
|
|
29
|
-
if (!result && typeof self !== strShimUndefined) {
|
|
30
|
-
result = self;
|
|
31
|
-
}
|
|
32
|
-
if (!result && typeof window !== strShimUndefined) {
|
|
33
|
-
result = window;
|
|
34
|
-
}
|
|
35
|
-
if (!result && typeof global !== strShimUndefined) {
|
|
36
|
-
result = global;
|
|
37
|
-
}
|
|
38
|
-
_cachedGlobal = result;
|
|
39
|
-
}
|
|
40
|
-
return result;
|
|
41
|
-
}
|
|
42
|
-
function throwTypeError(message) {
|
|
43
|
-
throw new TypeError(message);
|
|
44
|
-
}
|
|
45
|
-
function objCreateFn(obj) {
|
|
46
|
-
var func = ObjCreate;
|
|
47
|
-
if (func) {
|
|
48
|
-
return func(obj);
|
|
49
|
-
}
|
|
50
|
-
if (obj == null) {
|
|
51
|
-
return {};
|
|
52
|
-
}
|
|
53
|
-
var type = typeof obj;
|
|
54
|
-
if (type !== strShimObject && type !== strShimFunction) {
|
|
55
|
-
throwTypeError("Object prototype may only be an Object:" + obj);
|
|
56
|
-
}
|
|
57
|
-
function tmpFunc() { }
|
|
58
|
-
tmpFunc[strShimPrototype] = obj;
|
|
59
|
-
return new tmpFunc();
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
(getGlobal() || {})["Symbol"];
|
|
63
|
-
(getGlobal() || {})["Reflect"];
|
|
64
|
-
var __objAssignFnImpl = function (t) {
|
|
65
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
66
|
-
s = arguments[i];
|
|
67
|
-
for (var p in s) {
|
|
68
|
-
if (ObjProto[strShimHasOwnProperty].call(s, p)) {
|
|
69
|
-
t[p] = s[p];
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
return t;
|
|
74
|
-
};
|
|
75
|
-
var __assignFn = ObjAssign || __objAssignFnImpl;
|
|
76
|
-
var extendStaticsFn = function (d, b) {
|
|
77
|
-
extendStaticsFn = ObjClass["setPrototypeOf"] ||
|
|
78
|
-
({ __proto__: [] } instanceof Array && function (d, b) {
|
|
79
|
-
d.__proto__ = b;
|
|
80
|
-
}) ||
|
|
81
|
-
function (d, b) {
|
|
82
|
-
for (var p in b) {
|
|
83
|
-
if (b[strShimHasOwnProperty](p)) {
|
|
84
|
-
d[p] = b[p];
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
};
|
|
88
|
-
return extendStaticsFn(d, b);
|
|
89
|
-
};
|
|
90
|
-
function __extendsFn(d, b) {
|
|
91
|
-
if (typeof b !== strShimFunction && b !== null) {
|
|
92
|
-
throwTypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
93
|
-
}
|
|
94
|
-
extendStaticsFn(d, b);
|
|
95
|
-
function __() {
|
|
96
|
-
this.constructor = d;
|
|
97
|
-
}
|
|
98
|
-
d[strShimPrototype] = b === null ? objCreateFn(b) : (__[strShimPrototype] = b[strShimPrototype], new __());
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
/*!
|
|
102
|
-
* Microsoft Dynamic Proto Utility, 1.1.9
|
|
103
|
-
* Copyright (c) Microsoft and contributors. All rights reserved.
|
|
104
|
-
*/
|
|
105
|
-
var _a$1;
|
|
106
|
-
var UNDEFINED = "undefined";
|
|
107
|
-
var Constructor = 'constructor';
|
|
108
|
-
var Prototype = 'prototype';
|
|
109
|
-
var strFunction = 'function';
|
|
110
|
-
var DynInstFuncTable = '_dynInstFuncs';
|
|
111
|
-
var DynProxyTag = '_isDynProxy';
|
|
112
|
-
var DynClassName = '_dynClass';
|
|
113
|
-
var DynClassNamePrefix = '_dynCls$';
|
|
114
|
-
var DynInstChkTag = '_dynInstChk';
|
|
115
|
-
var DynAllowInstChkTag = DynInstChkTag;
|
|
116
|
-
var DynProtoDefaultOptions = '_dfOpts';
|
|
117
|
-
var UnknownValue = '_unknown_';
|
|
118
|
-
var str__Proto$1 = "__proto__";
|
|
119
|
-
var DynProtoBaseProto = "_dyn" + str__Proto$1;
|
|
120
|
-
var DynProtoGlobalSettings = "__dynProto$Gbl";
|
|
121
|
-
var DynProtoCurrent = "_dynInstProto";
|
|
122
|
-
var strUseBaseInst = 'useBaseInst';
|
|
123
|
-
var strSetInstFuncs = 'setInstFuncs';
|
|
124
|
-
var Obj = Object;
|
|
125
|
-
var _objGetPrototypeOf$1 = Obj["getPrototypeOf"];
|
|
126
|
-
var _objGetOwnProps = Obj["getOwnPropertyNames"];
|
|
127
|
-
function _getGlobal() {
|
|
128
|
-
var result;
|
|
129
|
-
if (typeof globalThis !== UNDEFINED) {
|
|
130
|
-
result = globalThis;
|
|
131
|
-
}
|
|
132
|
-
if (!result && typeof self !== UNDEFINED) {
|
|
133
|
-
result = self;
|
|
134
|
-
}
|
|
135
|
-
if (!result && typeof window !== UNDEFINED) {
|
|
136
|
-
result = window;
|
|
137
|
-
}
|
|
138
|
-
if (!result && typeof global !== UNDEFINED) {
|
|
139
|
-
result = global;
|
|
140
|
-
}
|
|
141
|
-
return result || {};
|
|
142
|
-
}
|
|
143
|
-
var _gbl = _getGlobal();
|
|
144
|
-
var _gblInst = _gbl[DynProtoGlobalSettings] || (_gbl[DynProtoGlobalSettings] = {
|
|
145
|
-
o: (_a$1 = {},
|
|
146
|
-
_a$1[strSetInstFuncs] = true,
|
|
147
|
-
_a$1[strUseBaseInst] = true,
|
|
148
|
-
_a$1),
|
|
149
|
-
n: 1000
|
|
150
|
-
});
|
|
151
|
-
function _hasOwnProperty(obj, prop) {
|
|
152
|
-
return obj && Obj[Prototype].hasOwnProperty.call(obj, prop);
|
|
153
|
-
}
|
|
154
|
-
function _isObjectOrArrayPrototype(target) {
|
|
155
|
-
return target && (target === Obj[Prototype] || target === Array[Prototype]);
|
|
156
|
-
}
|
|
157
|
-
function _isObjectArrayOrFunctionPrototype(target) {
|
|
158
|
-
return _isObjectOrArrayPrototype(target) || target === Function[Prototype];
|
|
159
|
-
}
|
|
160
|
-
function _getObjProto$1(target) {
|
|
161
|
-
var newProto;
|
|
162
|
-
if (target) {
|
|
163
|
-
if (_objGetPrototypeOf$1) {
|
|
164
|
-
return _objGetPrototypeOf$1(target);
|
|
165
|
-
}
|
|
166
|
-
var curProto = target[str__Proto$1] || target[Prototype] || (target[Constructor] ? target[Constructor][Prototype] : null);
|
|
167
|
-
newProto = target[DynProtoBaseProto] || curProto;
|
|
168
|
-
if (!_hasOwnProperty(target, DynProtoBaseProto)) {
|
|
169
|
-
delete target[DynProtoCurrent];
|
|
170
|
-
newProto = target[DynProtoBaseProto] = target[DynProtoCurrent] || target[DynProtoBaseProto];
|
|
171
|
-
target[DynProtoCurrent] = curProto;
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
return newProto;
|
|
175
|
-
}
|
|
176
|
-
function _forEachProp(target, func) {
|
|
177
|
-
var props = [];
|
|
178
|
-
if (_objGetOwnProps) {
|
|
179
|
-
props = _objGetOwnProps(target);
|
|
180
|
-
}
|
|
181
|
-
else {
|
|
182
|
-
for (var name_1 in target) {
|
|
183
|
-
if (typeof name_1 === "string" && _hasOwnProperty(target, name_1)) {
|
|
184
|
-
props.push(name_1);
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
if (props && props.length > 0) {
|
|
189
|
-
for (var lp = 0; lp < props.length; lp++) {
|
|
190
|
-
func(props[lp]);
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
function _isDynamicCandidate(target, funcName, skipOwn) {
|
|
195
|
-
return (funcName !== Constructor && typeof target[funcName] === strFunction && (skipOwn || _hasOwnProperty(target, funcName)));
|
|
196
|
-
}
|
|
197
|
-
function _throwTypeError(message) {
|
|
198
|
-
throw new TypeError("DynamicProto: " + message);
|
|
199
|
-
}
|
|
200
|
-
function _getInstanceFuncs(thisTarget) {
|
|
201
|
-
var instFuncs = {};
|
|
202
|
-
_forEachProp(thisTarget, function (name) {
|
|
203
|
-
if (!instFuncs[name] && _isDynamicCandidate(thisTarget, name, false)) {
|
|
204
|
-
instFuncs[name] = thisTarget[name];
|
|
205
|
-
}
|
|
206
|
-
});
|
|
207
|
-
return instFuncs;
|
|
208
|
-
}
|
|
209
|
-
function _hasVisited(values, value) {
|
|
210
|
-
for (var lp = values.length - 1; lp >= 0; lp--) {
|
|
211
|
-
if (values[lp] === value) {
|
|
212
|
-
return true;
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
return false;
|
|
216
|
-
}
|
|
217
|
-
function _getBaseFuncs(classProto, thisTarget, instFuncs, useBaseInst) {
|
|
218
|
-
function _instFuncProxy(target, funcHost, funcName) {
|
|
219
|
-
var theFunc = funcHost[funcName];
|
|
220
|
-
if (theFunc[DynProxyTag] && useBaseInst) {
|
|
221
|
-
var instFuncTable = target[DynInstFuncTable] || {};
|
|
222
|
-
if (instFuncTable[DynAllowInstChkTag] !== false) {
|
|
223
|
-
theFunc = (instFuncTable[funcHost[DynClassName]] || {})[funcName] || theFunc;
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
return function () {
|
|
227
|
-
return theFunc.apply(target, arguments);
|
|
228
|
-
};
|
|
229
|
-
}
|
|
230
|
-
var baseFuncs = {};
|
|
231
|
-
_forEachProp(instFuncs, function (name) {
|
|
232
|
-
baseFuncs[name] = _instFuncProxy(thisTarget, instFuncs, name);
|
|
233
|
-
});
|
|
234
|
-
var baseProto = _getObjProto$1(classProto);
|
|
235
|
-
var visited = [];
|
|
236
|
-
while (baseProto && !_isObjectArrayOrFunctionPrototype(baseProto) && !_hasVisited(visited, baseProto)) {
|
|
237
|
-
_forEachProp(baseProto, function (name) {
|
|
238
|
-
if (!baseFuncs[name] && _isDynamicCandidate(baseProto, name, !_objGetPrototypeOf$1)) {
|
|
239
|
-
baseFuncs[name] = _instFuncProxy(thisTarget, baseProto, name);
|
|
240
|
-
}
|
|
241
|
-
});
|
|
242
|
-
visited.push(baseProto);
|
|
243
|
-
baseProto = _getObjProto$1(baseProto);
|
|
244
|
-
}
|
|
245
|
-
return baseFuncs;
|
|
246
|
-
}
|
|
247
|
-
function _getInstFunc(target, funcName, proto, currentDynProtoProxy) {
|
|
248
|
-
var instFunc = null;
|
|
249
|
-
if (target && _hasOwnProperty(proto, DynClassName)) {
|
|
250
|
-
var instFuncTable = target[DynInstFuncTable] || {};
|
|
251
|
-
instFunc = (instFuncTable[proto[DynClassName]] || {})[funcName];
|
|
252
|
-
if (!instFunc) {
|
|
253
|
-
_throwTypeError("Missing [" + funcName + "] " + strFunction);
|
|
254
|
-
}
|
|
255
|
-
if (!instFunc[DynInstChkTag] && instFuncTable[DynAllowInstChkTag] !== false) {
|
|
256
|
-
var canAddInst = !_hasOwnProperty(target, funcName);
|
|
257
|
-
var objProto = _getObjProto$1(target);
|
|
258
|
-
var visited = [];
|
|
259
|
-
while (canAddInst && objProto && !_isObjectArrayOrFunctionPrototype(objProto) && !_hasVisited(visited, objProto)) {
|
|
260
|
-
var protoFunc = objProto[funcName];
|
|
261
|
-
if (protoFunc) {
|
|
262
|
-
canAddInst = (protoFunc === currentDynProtoProxy);
|
|
263
|
-
break;
|
|
264
|
-
}
|
|
265
|
-
visited.push(objProto);
|
|
266
|
-
objProto = _getObjProto$1(objProto);
|
|
267
|
-
}
|
|
268
|
-
try {
|
|
269
|
-
if (canAddInst) {
|
|
270
|
-
target[funcName] = instFunc;
|
|
271
|
-
}
|
|
272
|
-
instFunc[DynInstChkTag] = 1;
|
|
273
|
-
}
|
|
274
|
-
catch (e) {
|
|
275
|
-
instFuncTable[DynAllowInstChkTag] = false;
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
return instFunc;
|
|
280
|
-
}
|
|
281
|
-
function _getProtoFunc(funcName, proto, currentDynProtoProxy) {
|
|
282
|
-
var protoFunc = proto[funcName];
|
|
283
|
-
if (protoFunc === currentDynProtoProxy) {
|
|
284
|
-
protoFunc = _getObjProto$1(proto)[funcName];
|
|
285
|
-
}
|
|
286
|
-
if (typeof protoFunc !== strFunction) {
|
|
287
|
-
_throwTypeError("[" + funcName + "] is not a " + strFunction);
|
|
288
|
-
}
|
|
289
|
-
return protoFunc;
|
|
290
|
-
}
|
|
291
|
-
function _populatePrototype(proto, className, target, baseInstFuncs, setInstanceFunc) {
|
|
292
|
-
function _createDynamicPrototype(proto, funcName) {
|
|
293
|
-
var dynProtoProxy = function () {
|
|
294
|
-
var instFunc = _getInstFunc(this, funcName, proto, dynProtoProxy) || _getProtoFunc(funcName, proto, dynProtoProxy);
|
|
295
|
-
return instFunc.apply(this, arguments);
|
|
296
|
-
};
|
|
297
|
-
dynProtoProxy[DynProxyTag] = 1;
|
|
298
|
-
return dynProtoProxy;
|
|
299
|
-
}
|
|
300
|
-
if (!_isObjectOrArrayPrototype(proto)) {
|
|
301
|
-
var instFuncTable = target[DynInstFuncTable] = target[DynInstFuncTable] || {};
|
|
302
|
-
var instFuncs_1 = instFuncTable[className] = (instFuncTable[className] || {});
|
|
303
|
-
if (instFuncTable[DynAllowInstChkTag] !== false) {
|
|
304
|
-
instFuncTable[DynAllowInstChkTag] = !!setInstanceFunc;
|
|
305
|
-
}
|
|
306
|
-
_forEachProp(target, function (name) {
|
|
307
|
-
if (_isDynamicCandidate(target, name, false) && target[name] !== baseInstFuncs[name]) {
|
|
308
|
-
instFuncs_1[name] = target[name];
|
|
309
|
-
delete target[name];
|
|
310
|
-
if (!_hasOwnProperty(proto, name) || (proto[name] && !proto[name][DynProxyTag])) {
|
|
311
|
-
proto[name] = _createDynamicPrototype(proto, name);
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
});
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
|
-
function _checkPrototype(classProto, thisTarget) {
|
|
318
|
-
if (_objGetPrototypeOf$1) {
|
|
319
|
-
var visited = [];
|
|
320
|
-
var thisProto = _getObjProto$1(thisTarget);
|
|
321
|
-
while (thisProto && !_isObjectArrayOrFunctionPrototype(thisProto) && !_hasVisited(visited, thisProto)) {
|
|
322
|
-
if (thisProto === classProto) {
|
|
323
|
-
return true;
|
|
324
|
-
}
|
|
325
|
-
visited.push(thisProto);
|
|
326
|
-
thisProto = _getObjProto$1(thisProto);
|
|
327
|
-
}
|
|
328
|
-
return false;
|
|
329
|
-
}
|
|
330
|
-
return true;
|
|
331
|
-
}
|
|
332
|
-
function _getObjName(target, unknownValue) {
|
|
333
|
-
if (_hasOwnProperty(target, Prototype)) {
|
|
334
|
-
return target.name || unknownValue || UnknownValue;
|
|
335
|
-
}
|
|
336
|
-
return (((target || {})[Constructor]) || {}).name || unknownValue || UnknownValue;
|
|
337
|
-
}
|
|
338
|
-
function dynamicProto(theClass, target, delegateFunc, options) {
|
|
339
|
-
if (!_hasOwnProperty(theClass, Prototype)) {
|
|
340
|
-
_throwTypeError("theClass is an invalid class definition.");
|
|
341
|
-
}
|
|
342
|
-
var classProto = theClass[Prototype];
|
|
343
|
-
if (!_checkPrototype(classProto, target)) {
|
|
344
|
-
_throwTypeError("[" + _getObjName(theClass) + "] not in hierarchy of [" + _getObjName(target) + "]");
|
|
345
|
-
}
|
|
346
|
-
var className = null;
|
|
347
|
-
if (_hasOwnProperty(classProto, DynClassName)) {
|
|
348
|
-
className = classProto[DynClassName];
|
|
349
|
-
}
|
|
350
|
-
else {
|
|
351
|
-
className = DynClassNamePrefix + _getObjName(theClass, "_") + "$" + _gblInst.n;
|
|
352
|
-
_gblInst.n++;
|
|
353
|
-
classProto[DynClassName] = className;
|
|
354
|
-
}
|
|
355
|
-
var perfOptions = dynamicProto[DynProtoDefaultOptions];
|
|
356
|
-
var useBaseInst = !!perfOptions[strUseBaseInst];
|
|
357
|
-
if (useBaseInst && options && options[strUseBaseInst] !== undefined) {
|
|
358
|
-
useBaseInst = !!options[strUseBaseInst];
|
|
359
|
-
}
|
|
360
|
-
var instFuncs = _getInstanceFuncs(target);
|
|
361
|
-
var baseFuncs = _getBaseFuncs(classProto, target, instFuncs, useBaseInst);
|
|
362
|
-
delegateFunc(target, baseFuncs);
|
|
363
|
-
var setInstanceFunc = !!_objGetPrototypeOf$1 && !!perfOptions[strSetInstFuncs];
|
|
364
|
-
if (setInstanceFunc && options) {
|
|
365
|
-
setInstanceFunc = !!options[strSetInstFuncs];
|
|
366
|
-
}
|
|
367
|
-
_populatePrototype(classProto, className, target, instFuncs, setInstanceFunc !== false);
|
|
368
|
-
}
|
|
369
|
-
dynamicProto[DynProtoDefaultOptions] = _gblInst.o;
|
|
370
|
-
|
|
371
|
-
var _DYN_INITIALIZE = "initialize";
|
|
372
|
-
var _DYN_NAME$1 = "name";
|
|
373
|
-
var _DYN_IDENTIFIER = "identifier";
|
|
374
|
-
var _DYN_PUSH = "push";
|
|
375
|
-
var _DYN_IS_INITIALIZED = "isInitialized";
|
|
376
|
-
var _DYN_CONFIG = "config";
|
|
377
|
-
var _DYN_LOGGER = "logger";
|
|
378
|
-
var _DYN_LENGTH$1 = "length";
|
|
379
|
-
var _DYN_TIME = "time";
|
|
380
|
-
var _DYN_PROCESS_NEXT = "processNext";
|
|
381
|
-
var _DYN_GET_PROCESS_TEL_CONT0 = "getProcessTelContext";
|
|
382
|
-
var _DYN_GET_PLUGIN = "getPlugin";
|
|
383
|
-
var _DYN_SPLICE = "splice";
|
|
384
|
-
var _DYN_TEARDOWN = "teardown";
|
|
385
|
-
var _DYN_MESSAGE_ID = "messageId";
|
|
386
|
-
var _DYN_MESSAGE = "message";
|
|
387
|
-
var _DYN_IS_ASYNC = "isAsync";
|
|
388
|
-
var _DYN__DO_TEARDOWN = "_doTeardown";
|
|
389
|
-
var _DYN_UPDATE = "update";
|
|
390
|
-
var _DYN_GET_NEXT = "getNext";
|
|
391
|
-
var _DYN_DIAG_LOG = "diagLog";
|
|
392
|
-
var _DYN_SET_NEXT_PLUGIN = "setNextPlugin";
|
|
393
|
-
var _DYN_CREATE_NEW = "createNew";
|
|
394
|
-
var _DYN_INDEX_OF$1 = "indexOf";
|
|
395
|
-
var _DYN_USER_AGENT = "userAgent";
|
|
396
|
-
var _DYN_SPLIT = "split";
|
|
397
|
-
var _DYN_NODE_TYPE = "nodeType";
|
|
398
|
-
var _DYN_APPLY = "apply";
|
|
399
|
-
var _DYN_REPLACE = "replace";
|
|
400
|
-
var _DYN_ENABLE_DEBUG_EXCEPTI4 = "enableDebugExceptions";
|
|
401
|
-
var _DYN_LOG_INTERNAL_MESSAGE = "logInternalMessage";
|
|
402
|
-
var _DYN_TO_LOWER_CASE = "toLowerCase";
|
|
403
|
-
var _DYN_CALL = "call";
|
|
404
|
-
var _DYN_TYPE = "type";
|
|
405
|
-
var _DYN_HANDLER = "handler";
|
|
406
|
-
var _DYN_IS_CHILD_EVT = "isChildEvt";
|
|
407
|
-
var _DYN_GET_CTX = "getCtx";
|
|
408
|
-
var _DYN_SET_CTX = "setCtx";
|
|
409
|
-
var _DYN_COMPLETE = "complete";
|
|
410
|
-
|
|
411
|
-
var STR_EMPTY = "";
|
|
412
|
-
var STR_CORE = "core";
|
|
413
|
-
var STR_DISABLED = "disabled";
|
|
414
|
-
var STR_EXTENSION_CONFIG = "extensionConfig";
|
|
415
|
-
var STR_PROCESS_TELEMETRY = "processTelemetry";
|
|
416
|
-
var STR_PRIORITY = "priority";
|
|
417
|
-
var STR_ERROR_TO_CONSOLE = "errorToConsole";
|
|
418
|
-
var STR_WARN_TO_CONSOLE = "warnToConsole";
|
|
419
|
-
var STR_GET_PERF_MGR = "getPerfMgr";
|
|
420
|
-
|
|
421
|
-
var strToISOString = "toISOString";
|
|
422
|
-
var cStrEndsWith = "endsWith";
|
|
423
|
-
var cStrStartsWith = "startsWith";
|
|
424
|
-
var cStrTrim = "trim";
|
|
425
|
-
var strToString = "toString";
|
|
426
|
-
var str__Proto = "__proto__";
|
|
427
|
-
var strConstructor = "constructor";
|
|
428
|
-
var _objDefineProperty$1 = ObjDefineProperty;
|
|
429
|
-
var _objFreeze = ObjClass.freeze;
|
|
430
|
-
ObjClass.seal;
|
|
431
|
-
var _objKeys = ObjClass.keys;
|
|
432
|
-
var StringProto = String[strShimPrototype];
|
|
433
|
-
var _strTrim = StringProto[cStrTrim];
|
|
434
|
-
StringProto[cStrEndsWith];
|
|
435
|
-
StringProto[cStrStartsWith];
|
|
436
|
-
var DateProto = Date[strShimPrototype];
|
|
437
|
-
DateProto[strToISOString];
|
|
438
|
-
var _isArray = Array.isArray;
|
|
439
|
-
var _objToString = ObjProto[strToString];
|
|
440
|
-
var _fnToString = ObjHasOwnProperty[strToString];
|
|
441
|
-
var _objFunctionString = _fnToString[_DYN_CALL ](ObjClass);
|
|
442
|
-
var rCamelCase = /-([a-z])/g;
|
|
443
|
-
var rNormalizeInvalid = /([^\w\d_$])/g;
|
|
444
|
-
var rLeadingNumeric = /^(\d+[\w\d_$])/;
|
|
445
|
-
var _objGetPrototypeOf = Object["getPrototypeOf"];
|
|
446
|
-
function _getObjProto(target) {
|
|
447
|
-
if (target) {
|
|
448
|
-
if (_objGetPrototypeOf) {
|
|
449
|
-
return _objGetPrototypeOf(target);
|
|
450
|
-
}
|
|
451
|
-
var newProto = target[str__Proto] || target[strShimPrototype] || target[strConstructor];
|
|
452
|
-
if (newProto) {
|
|
453
|
-
return newProto;
|
|
454
|
-
}
|
|
455
|
-
}
|
|
456
|
-
return null;
|
|
457
|
-
}
|
|
458
|
-
function isUndefined(value) {
|
|
459
|
-
return value === undefined || typeof value === strShimUndefined;
|
|
460
|
-
}
|
|
461
|
-
function isNullOrUndefined(value) {
|
|
462
|
-
return (value === null || isUndefined(value));
|
|
463
|
-
}
|
|
464
|
-
function hasOwnProperty(obj, prop) {
|
|
465
|
-
return !!(obj && ObjHasOwnProperty[_DYN_CALL ](obj, prop));
|
|
466
|
-
}
|
|
467
|
-
function isObject(value) {
|
|
468
|
-
return !!(value && typeof value === strShimObject);
|
|
469
|
-
}
|
|
470
|
-
function isFunction(value) {
|
|
471
|
-
return !!(value && typeof value === strShimFunction);
|
|
472
|
-
}
|
|
473
|
-
function normalizeJsName(name) {
|
|
474
|
-
var value = name;
|
|
475
|
-
if (value && isString(value)) {
|
|
476
|
-
value = value[_DYN_REPLACE ](rCamelCase, function (_all, letter) {
|
|
477
|
-
return letter.toUpperCase();
|
|
478
|
-
});
|
|
479
|
-
value = value[_DYN_REPLACE ](rNormalizeInvalid, "_");
|
|
480
|
-
value = value[_DYN_REPLACE ](rLeadingNumeric, function (_all, match) {
|
|
481
|
-
return "_" + match;
|
|
482
|
-
});
|
|
483
|
-
}
|
|
484
|
-
return value;
|
|
485
|
-
}
|
|
486
|
-
function objForEachKey(target, callbackfn) {
|
|
487
|
-
if (target) {
|
|
488
|
-
for (var prop in target) {
|
|
489
|
-
if (ObjHasOwnProperty[_DYN_CALL ](target, prop)) {
|
|
490
|
-
callbackfn[_DYN_CALL ](target, prop, target[prop]);
|
|
491
|
-
}
|
|
492
|
-
}
|
|
493
|
-
}
|
|
494
|
-
}
|
|
495
|
-
function strContains(value, search) {
|
|
496
|
-
if (value && search) {
|
|
497
|
-
return value[_DYN_INDEX_OF$1 ](search) !== -1;
|
|
498
|
-
}
|
|
499
|
-
return false;
|
|
500
|
-
}
|
|
501
|
-
var isArray = _isArray || _isArrayPoly;
|
|
502
|
-
function _isArrayPoly(obj) {
|
|
503
|
-
return !!(obj && _objToString[_DYN_CALL ](obj) === "[object Array]");
|
|
504
|
-
}
|
|
505
|
-
function isError(obj) {
|
|
506
|
-
return !!(obj && _objToString[_DYN_CALL ](obj) === "[object Error]");
|
|
507
|
-
}
|
|
508
|
-
function isString(value) {
|
|
509
|
-
return typeof value === "string";
|
|
510
|
-
}
|
|
511
|
-
function isBoolean(value) {
|
|
512
|
-
return typeof value === "boolean";
|
|
513
|
-
}
|
|
514
|
-
function isPlainObject(value) {
|
|
515
|
-
var result = false;
|
|
516
|
-
if (value && typeof value === "object") {
|
|
517
|
-
var proto = _objGetPrototypeOf ? _objGetPrototypeOf(value) : _getObjProto(value);
|
|
518
|
-
if (!proto) {
|
|
519
|
-
result = true;
|
|
520
|
-
}
|
|
521
|
-
else {
|
|
522
|
-
if (proto[strConstructor] && ObjHasOwnProperty[_DYN_CALL ](proto, strConstructor)) {
|
|
523
|
-
proto = proto[strConstructor];
|
|
524
|
-
}
|
|
525
|
-
result = typeof proto === strShimFunction && _fnToString[_DYN_CALL ](proto) === _objFunctionString;
|
|
526
|
-
}
|
|
527
|
-
}
|
|
528
|
-
return result;
|
|
529
|
-
}
|
|
530
|
-
function arrForEach(arr, callbackfn, thisArg) {
|
|
531
|
-
var len = arr[_DYN_LENGTH$1 ];
|
|
532
|
-
try {
|
|
533
|
-
for (var idx = 0; idx < len; idx++) {
|
|
534
|
-
if (idx in arr) {
|
|
535
|
-
if (callbackfn[_DYN_CALL ](thisArg || arr, arr[idx], idx, arr) === -1) {
|
|
536
|
-
break;
|
|
537
|
-
}
|
|
538
|
-
}
|
|
539
|
-
}
|
|
540
|
-
}
|
|
541
|
-
catch (e) {
|
|
542
|
-
}
|
|
543
|
-
}
|
|
544
|
-
function strTrim(str) {
|
|
545
|
-
if (str) {
|
|
546
|
-
str = (_strTrim && str[cStrTrim]) ? str[cStrTrim]() : (str[_DYN_REPLACE ] ? str[_DYN_REPLACE ](/^\s+|(?=\s)\s+$/g, STR_EMPTY) : str);
|
|
547
|
-
}
|
|
548
|
-
return str;
|
|
549
|
-
}
|
|
550
|
-
var _objKeysHasDontEnumBug = !({ toString: null }).propertyIsEnumerable("toString");
|
|
551
|
-
var _objKeysDontEnums = [
|
|
552
|
-
"toString",
|
|
553
|
-
"toLocaleString",
|
|
554
|
-
"valueOf",
|
|
555
|
-
"hasOwnProperty",
|
|
556
|
-
"isPrototypeOf",
|
|
557
|
-
"propertyIsEnumerable",
|
|
558
|
-
"constructor"
|
|
559
|
-
];
|
|
560
|
-
function objKeys(obj) {
|
|
561
|
-
var objType = typeof obj;
|
|
562
|
-
if (objType !== strShimFunction && (objType !== strShimObject || obj === null)) {
|
|
563
|
-
throwTypeError("objKeys called on non-object");
|
|
564
|
-
}
|
|
565
|
-
if (!_objKeysHasDontEnumBug && _objKeys) {
|
|
566
|
-
return _objKeys(obj);
|
|
567
|
-
}
|
|
568
|
-
var result = [];
|
|
569
|
-
for (var prop in obj) {
|
|
570
|
-
if (obj && ObjHasOwnProperty[_DYN_CALL ](obj, prop)) {
|
|
571
|
-
result[_DYN_PUSH ](prop);
|
|
572
|
-
}
|
|
573
|
-
}
|
|
574
|
-
if (_objKeysHasDontEnumBug) {
|
|
575
|
-
var dontEnumsLength = _objKeysDontEnums[_DYN_LENGTH$1 ];
|
|
576
|
-
for (var lp = 0; lp < dontEnumsLength; lp++) {
|
|
577
|
-
if (obj && ObjHasOwnProperty[_DYN_CALL ](obj, _objKeysDontEnums[lp])) {
|
|
578
|
-
result[_DYN_PUSH ](_objKeysDontEnums[lp]);
|
|
579
|
-
}
|
|
580
|
-
}
|
|
581
|
-
}
|
|
582
|
-
return result;
|
|
583
|
-
}
|
|
584
|
-
function objDefineAccessors(target, prop, getProp, setProp) {
|
|
585
|
-
if (_objDefineProperty$1) {
|
|
586
|
-
try {
|
|
587
|
-
var descriptor = {
|
|
588
|
-
enumerable: true,
|
|
589
|
-
configurable: true
|
|
590
|
-
};
|
|
591
|
-
if (getProp) {
|
|
592
|
-
descriptor.get = getProp;
|
|
593
|
-
}
|
|
594
|
-
if (setProp) {
|
|
595
|
-
descriptor.set = setProp;
|
|
596
|
-
}
|
|
597
|
-
_objDefineProperty$1(target, prop, descriptor);
|
|
598
|
-
return true;
|
|
599
|
-
}
|
|
600
|
-
catch (e) {
|
|
601
|
-
}
|
|
602
|
-
}
|
|
603
|
-
return false;
|
|
604
|
-
}
|
|
605
|
-
function _doNothing(value) {
|
|
606
|
-
return value;
|
|
607
|
-
}
|
|
608
|
-
function deepFreeze(obj) {
|
|
609
|
-
if (_objFreeze) {
|
|
610
|
-
objForEachKey(obj, function (name, value) {
|
|
611
|
-
if (isArray(value) || isObject(value)) {
|
|
612
|
-
_objFreeze(value);
|
|
613
|
-
}
|
|
614
|
-
});
|
|
615
|
-
}
|
|
616
|
-
return objFreeze(obj);
|
|
617
|
-
}
|
|
618
|
-
var objFreeze = _objFreeze || _doNothing;
|
|
619
|
-
function dateNow() {
|
|
620
|
-
var dt = Date;
|
|
621
|
-
return dt.now ? dt.now() : new dt().getTime();
|
|
622
|
-
}
|
|
623
|
-
function getExceptionName(object) {
|
|
624
|
-
if (isError(object)) {
|
|
625
|
-
return object[_DYN_NAME$1 ];
|
|
626
|
-
}
|
|
627
|
-
return STR_EMPTY;
|
|
628
|
-
}
|
|
629
|
-
function setValue(target, field, value, valChk, srcChk) {
|
|
630
|
-
var theValue = value;
|
|
631
|
-
if (target) {
|
|
632
|
-
theValue = target[field];
|
|
633
|
-
if (theValue !== value && (!srcChk || srcChk(theValue)) && (!valChk || valChk(value))) {
|
|
634
|
-
theValue = value;
|
|
635
|
-
target[field] = theValue;
|
|
636
|
-
}
|
|
637
|
-
}
|
|
638
|
-
return theValue;
|
|
639
|
-
}
|
|
640
|
-
function getCfgValue(theValue, defaultValue) {
|
|
641
|
-
return !isNullOrUndefined(theValue) ? theValue : defaultValue;
|
|
642
|
-
}
|
|
643
|
-
function throwError(message) {
|
|
644
|
-
throw new Error(message);
|
|
645
|
-
}
|
|
646
|
-
function _createProxyFunction(source, funcName) {
|
|
647
|
-
var srcFunc = null;
|
|
648
|
-
var src = null;
|
|
649
|
-
if (isFunction(source)) {
|
|
650
|
-
srcFunc = source;
|
|
651
|
-
}
|
|
652
|
-
else {
|
|
653
|
-
src = source;
|
|
654
|
-
}
|
|
655
|
-
return function () {
|
|
656
|
-
var originalArguments = arguments;
|
|
657
|
-
if (srcFunc) {
|
|
658
|
-
src = srcFunc();
|
|
659
|
-
}
|
|
660
|
-
if (src) {
|
|
661
|
-
return src[funcName][_DYN_APPLY ](src, originalArguments);
|
|
662
|
-
}
|
|
663
|
-
};
|
|
664
|
-
}
|
|
665
|
-
function proxyFunctionAs(target, name, source, theFunc, overwriteTarget) {
|
|
666
|
-
if (target && name && source) {
|
|
667
|
-
if (overwriteTarget !== false || isUndefined(target[name])) {
|
|
668
|
-
target[name] = _createProxyFunction(source, theFunc);
|
|
669
|
-
}
|
|
670
|
-
}
|
|
671
|
-
}
|
|
672
|
-
function objExtend(obj1, obj2, obj3, obj4, obj5, obj6) {
|
|
673
|
-
var theArgs = arguments;
|
|
674
|
-
var extended = theArgs[0] || {};
|
|
675
|
-
var argLen = theArgs[_DYN_LENGTH$1 ];
|
|
676
|
-
var deep = false;
|
|
677
|
-
var idx = 1;
|
|
678
|
-
if (argLen > 0 && isBoolean(extended)) {
|
|
679
|
-
deep = extended;
|
|
680
|
-
extended = theArgs[idx] || {};
|
|
681
|
-
idx++;
|
|
682
|
-
}
|
|
683
|
-
if (!isObject(extended)) {
|
|
684
|
-
extended = {};
|
|
685
|
-
}
|
|
686
|
-
for (; idx < argLen; idx++) {
|
|
687
|
-
var arg = theArgs[idx];
|
|
688
|
-
var isArgArray = isArray(arg);
|
|
689
|
-
var isArgObj = isObject(arg);
|
|
690
|
-
for (var prop in arg) {
|
|
691
|
-
var propOk = (isArgArray && (prop in arg)) || (isArgObj && (ObjHasOwnProperty[_DYN_CALL ](arg, prop)));
|
|
692
|
-
if (!propOk) {
|
|
693
|
-
continue;
|
|
694
|
-
}
|
|
695
|
-
var newValue = arg[prop];
|
|
696
|
-
var isNewArray = void 0;
|
|
697
|
-
if (deep && newValue && ((isNewArray = isArray(newValue)) || isPlainObject(newValue))) {
|
|
698
|
-
var clone = extended[prop];
|
|
699
|
-
if (isNewArray) {
|
|
700
|
-
if (!isArray(clone)) {
|
|
701
|
-
clone = [];
|
|
702
|
-
}
|
|
703
|
-
}
|
|
704
|
-
else if (!isPlainObject(clone)) {
|
|
705
|
-
clone = {};
|
|
706
|
-
}
|
|
707
|
-
newValue = objExtend(deep, clone, newValue);
|
|
708
|
-
}
|
|
709
|
-
if (newValue !== undefined) {
|
|
710
|
-
extended[prop] = newValue;
|
|
711
|
-
}
|
|
712
|
-
}
|
|
713
|
-
}
|
|
714
|
-
return extended;
|
|
715
|
-
}
|
|
716
|
-
|
|
717
|
-
function createEnumStyle(values) {
|
|
718
|
-
var enumClass = {};
|
|
719
|
-
objForEachKey(values, function (field, value) {
|
|
720
|
-
enumClass[field] = value;
|
|
721
|
-
enumClass[value] = field;
|
|
722
|
-
});
|
|
723
|
-
return deepFreeze(enumClass);
|
|
724
|
-
}
|
|
725
|
-
|
|
726
|
-
var strWindow = "window";
|
|
727
|
-
var strDocument = "document";
|
|
728
|
-
var strNavigator = "navigator";
|
|
729
|
-
var strLocation = "location";
|
|
730
|
-
var strConsole = "console";
|
|
731
|
-
var strPerformance = "performance";
|
|
732
|
-
var strJSON = "JSON";
|
|
733
|
-
var strCrypto = "crypto";
|
|
734
|
-
var strMsCrypto = "msCrypto";
|
|
735
|
-
var strMsie = "msie";
|
|
736
|
-
var strTrident = "trident/";
|
|
737
|
-
var _isTrident = null;
|
|
738
|
-
var _navUserAgentCheck = null;
|
|
739
|
-
var _enableMocks = false;
|
|
740
|
-
function getGlobalInst(name) {
|
|
741
|
-
var gbl = getGlobal();
|
|
742
|
-
if (gbl && gbl[name]) {
|
|
743
|
-
return gbl[name];
|
|
744
|
-
}
|
|
745
|
-
if (name === strWindow && hasWindow()) {
|
|
746
|
-
return window;
|
|
747
|
-
}
|
|
748
|
-
return null;
|
|
749
|
-
}
|
|
750
|
-
function hasWindow() {
|
|
751
|
-
return Boolean(typeof window === strShimObject && window);
|
|
752
|
-
}
|
|
753
|
-
function getWindow() {
|
|
754
|
-
if (hasWindow()) {
|
|
755
|
-
return window;
|
|
756
|
-
}
|
|
757
|
-
return getGlobalInst(strWindow);
|
|
758
|
-
}
|
|
759
|
-
function hasDocument() {
|
|
760
|
-
return Boolean(typeof document === strShimObject && document);
|
|
761
|
-
}
|
|
762
|
-
function getDocument() {
|
|
763
|
-
if (hasDocument()) {
|
|
764
|
-
return document;
|
|
765
|
-
}
|
|
766
|
-
return getGlobalInst(strDocument);
|
|
767
|
-
}
|
|
768
|
-
function hasNavigator() {
|
|
769
|
-
return Boolean(typeof navigator === strShimObject && navigator);
|
|
770
|
-
}
|
|
771
|
-
function getNavigator() {
|
|
772
|
-
if (hasNavigator()) {
|
|
773
|
-
return navigator;
|
|
774
|
-
}
|
|
775
|
-
return getGlobalInst(strNavigator);
|
|
776
|
-
}
|
|
777
|
-
function getLocation(checkForMock) {
|
|
778
|
-
if (checkForMock && _enableMocks) {
|
|
779
|
-
var mockLocation = getGlobalInst("__mockLocation");
|
|
780
|
-
if (mockLocation) {
|
|
781
|
-
return mockLocation;
|
|
782
|
-
}
|
|
783
|
-
}
|
|
784
|
-
if (typeof location === strShimObject && location) {
|
|
785
|
-
return location;
|
|
786
|
-
}
|
|
787
|
-
return getGlobalInst(strLocation);
|
|
788
|
-
}
|
|
789
|
-
function getConsole() {
|
|
790
|
-
if (typeof console !== strShimUndefined) {
|
|
791
|
-
return console;
|
|
792
|
-
}
|
|
793
|
-
return getGlobalInst(strConsole);
|
|
794
|
-
}
|
|
795
|
-
function getPerformance() {
|
|
796
|
-
return getGlobalInst(strPerformance);
|
|
797
|
-
}
|
|
798
|
-
function hasJSON() {
|
|
799
|
-
return Boolean((typeof JSON === strShimObject && JSON) || getGlobalInst(strJSON) !== null);
|
|
800
|
-
}
|
|
801
|
-
function getJSON() {
|
|
802
|
-
if (hasJSON()) {
|
|
803
|
-
return JSON || getGlobalInst(strJSON);
|
|
804
|
-
}
|
|
805
|
-
return null;
|
|
806
|
-
}
|
|
807
|
-
function getCrypto() {
|
|
808
|
-
return getGlobalInst(strCrypto);
|
|
809
|
-
}
|
|
810
|
-
function getMsCrypto() {
|
|
811
|
-
return getGlobalInst(strMsCrypto);
|
|
812
|
-
}
|
|
813
|
-
function isIE() {
|
|
814
|
-
var nav = getNavigator();
|
|
815
|
-
if (nav && (nav[_DYN_USER_AGENT ] !== _navUserAgentCheck || _isTrident === null)) {
|
|
816
|
-
_navUserAgentCheck = nav[_DYN_USER_AGENT ];
|
|
817
|
-
var userAgent = (_navUserAgentCheck || STR_EMPTY)[_DYN_TO_LOWER_CASE ]();
|
|
818
|
-
_isTrident = (strContains(userAgent, strMsie) || strContains(userAgent, strTrident));
|
|
819
|
-
}
|
|
820
|
-
return _isTrident;
|
|
821
|
-
}
|
|
822
|
-
function dumpObj(object) {
|
|
823
|
-
var objectTypeDump = Object[strShimPrototype].toString[_DYN_CALL ](object);
|
|
824
|
-
var propertyValueDump = STR_EMPTY;
|
|
825
|
-
if (objectTypeDump === "[object Error]") {
|
|
826
|
-
propertyValueDump = "{ stack: '" + object.stack + "', message: '" + object.message + "', name: '" + object[_DYN_NAME$1 ] + "'";
|
|
827
|
-
}
|
|
828
|
-
else if (hasJSON()) {
|
|
829
|
-
propertyValueDump = getJSON().stringify(object);
|
|
830
|
-
}
|
|
831
|
-
return objectTypeDump + propertyValueDump;
|
|
832
|
-
}
|
|
833
|
-
|
|
834
|
-
var _aiNamespace = null;
|
|
835
|
-
function _getExtensionNamespace() {
|
|
836
|
-
var target = getGlobalInst("Microsoft");
|
|
837
|
-
if (target) {
|
|
838
|
-
_aiNamespace = target["ApplicationInsights"];
|
|
839
|
-
}
|
|
840
|
-
return _aiNamespace;
|
|
841
|
-
}
|
|
842
|
-
function getDebugExt(config) {
|
|
843
|
-
var ns = _aiNamespace;
|
|
844
|
-
if (!ns && config.disableDbgExt !== true) {
|
|
845
|
-
ns = _aiNamespace || _getExtensionNamespace();
|
|
846
|
-
}
|
|
847
|
-
return ns ? ns["ChromeDbgExt"] : null;
|
|
848
|
-
}
|
|
849
|
-
|
|
850
|
-
var AiNonUserActionablePrefix = "AI (Internal): ";
|
|
851
|
-
var AiUserActionablePrefix = "AI: ";
|
|
852
|
-
var AIInternalMessagePrefix = "AITR_";
|
|
853
|
-
function _sanitizeDiagnosticText(text) {
|
|
854
|
-
if (text) {
|
|
855
|
-
return "\"" + text[_DYN_REPLACE ](/\"/g, STR_EMPTY) + "\"";
|
|
856
|
-
}
|
|
857
|
-
return STR_EMPTY;
|
|
858
|
-
}
|
|
859
|
-
function _logToConsole(func, message) {
|
|
860
|
-
var theConsole = getConsole();
|
|
861
|
-
if (!!theConsole) {
|
|
862
|
-
var logFunc = "log";
|
|
863
|
-
if (theConsole[func]) {
|
|
864
|
-
logFunc = func;
|
|
865
|
-
}
|
|
866
|
-
if (isFunction(theConsole[logFunc])) {
|
|
867
|
-
theConsole[logFunc](message);
|
|
868
|
-
}
|
|
869
|
-
}
|
|
870
|
-
}
|
|
871
|
-
var _InternalLogMessage = /** @class */ (function () {
|
|
872
|
-
function _InternalLogMessage(msgId, msg, isUserAct, properties) {
|
|
873
|
-
if (isUserAct === void 0) { isUserAct = false; }
|
|
874
|
-
var _self = this;
|
|
875
|
-
_self[_DYN_MESSAGE_ID ] = msgId;
|
|
876
|
-
_self[_DYN_MESSAGE ] =
|
|
877
|
-
(isUserAct ? AiUserActionablePrefix : AiNonUserActionablePrefix) +
|
|
878
|
-
msgId;
|
|
879
|
-
var strProps = STR_EMPTY;
|
|
880
|
-
if (hasJSON()) {
|
|
881
|
-
strProps = getJSON().stringify(properties);
|
|
882
|
-
}
|
|
883
|
-
var diagnosticText = (msg ? " message:" + _sanitizeDiagnosticText(msg) : STR_EMPTY) +
|
|
884
|
-
(properties ? " props:" + _sanitizeDiagnosticText(strProps) : STR_EMPTY);
|
|
885
|
-
_self[_DYN_MESSAGE ] += diagnosticText;
|
|
886
|
-
}
|
|
887
|
-
_InternalLogMessage.dataType = "MessageData";
|
|
888
|
-
return _InternalLogMessage;
|
|
889
|
-
}());
|
|
890
|
-
function safeGetLogger(core, config) {
|
|
891
|
-
return (core || {})[_DYN_LOGGER ] || new DiagnosticLogger(config);
|
|
892
|
-
}
|
|
893
|
-
var DiagnosticLogger = /** @class */ (function () {
|
|
894
|
-
function DiagnosticLogger(config) {
|
|
895
|
-
this.identifier = "DiagnosticLogger";
|
|
896
|
-
this.queue = [];
|
|
897
|
-
var _messageCount = 0;
|
|
898
|
-
var _messageLogged = {};
|
|
899
|
-
var _loggingLevelConsole;
|
|
900
|
-
var _loggingLevelTelemetry;
|
|
901
|
-
var _maxInternalMessageLimit;
|
|
902
|
-
var _enableDebug;
|
|
903
|
-
dynamicProto(DiagnosticLogger, this, function (_self) {
|
|
904
|
-
_setDefaultsFromConfig(config || {});
|
|
905
|
-
_self.consoleLoggingLevel = function () { return _loggingLevelConsole; };
|
|
906
|
-
_self.telemetryLoggingLevel = function () { return _loggingLevelTelemetry; };
|
|
907
|
-
_self.maxInternalMessageLimit = function () { return _maxInternalMessageLimit; };
|
|
908
|
-
_self[_DYN_ENABLE_DEBUG_EXCEPTI4 ] = function () { return _enableDebug; };
|
|
909
|
-
_self.throwInternal = function (severity, msgId, msg, properties, isUserAct) {
|
|
910
|
-
if (isUserAct === void 0) { isUserAct = false; }
|
|
911
|
-
var message = new _InternalLogMessage(msgId, msg, isUserAct, properties);
|
|
912
|
-
if (_enableDebug) {
|
|
913
|
-
throw dumpObj(message);
|
|
914
|
-
}
|
|
915
|
-
else {
|
|
916
|
-
var logFunc = severity === 1 ? STR_ERROR_TO_CONSOLE : STR_WARN_TO_CONSOLE;
|
|
917
|
-
if (!isUndefined(message[_DYN_MESSAGE ])) {
|
|
918
|
-
if (isUserAct) {
|
|
919
|
-
var messageKey = +message[_DYN_MESSAGE_ID ];
|
|
920
|
-
if (!_messageLogged[messageKey] && _loggingLevelConsole >= severity) {
|
|
921
|
-
_self[logFunc](message[_DYN_MESSAGE ]);
|
|
922
|
-
_messageLogged[messageKey] = true;
|
|
923
|
-
}
|
|
924
|
-
}
|
|
925
|
-
else {
|
|
926
|
-
if (_loggingLevelConsole >= severity) {
|
|
927
|
-
_self[logFunc](message[_DYN_MESSAGE ]);
|
|
928
|
-
}
|
|
929
|
-
}
|
|
930
|
-
_logInternalMessage(severity, message);
|
|
931
|
-
}
|
|
932
|
-
else {
|
|
933
|
-
_debugExtMsg("throw" + (severity === 1 ? "Critical" : "Warning"), message);
|
|
934
|
-
}
|
|
935
|
-
}
|
|
936
|
-
};
|
|
937
|
-
_self[STR_WARN_TO_CONSOLE ] = function (message) {
|
|
938
|
-
_logToConsole("warn", message);
|
|
939
|
-
_debugExtMsg("warning", message);
|
|
940
|
-
};
|
|
941
|
-
_self[STR_ERROR_TO_CONSOLE ] = function (message) {
|
|
942
|
-
_logToConsole("error", message);
|
|
943
|
-
_debugExtMsg("error", message);
|
|
944
|
-
};
|
|
945
|
-
_self.resetInternalMessageCount = function () {
|
|
946
|
-
_messageCount = 0;
|
|
947
|
-
_messageLogged = {};
|
|
948
|
-
};
|
|
949
|
-
_self[_DYN_LOG_INTERNAL_MESSAGE ] = _logInternalMessage;
|
|
950
|
-
function _logInternalMessage(severity, message) {
|
|
951
|
-
if (_areInternalMessagesThrottled()) {
|
|
952
|
-
return;
|
|
953
|
-
}
|
|
954
|
-
var logMessage = true;
|
|
955
|
-
var messageKey = AIInternalMessagePrefix + message[_DYN_MESSAGE_ID ];
|
|
956
|
-
if (_messageLogged[messageKey]) {
|
|
957
|
-
logMessage = false;
|
|
958
|
-
}
|
|
959
|
-
else {
|
|
960
|
-
_messageLogged[messageKey] = true;
|
|
961
|
-
}
|
|
962
|
-
if (logMessage) {
|
|
963
|
-
if (severity <= _loggingLevelTelemetry) {
|
|
964
|
-
_self.queue[_DYN_PUSH ](message);
|
|
965
|
-
_messageCount++;
|
|
966
|
-
_debugExtMsg((severity === 1 ? "error" : "warn"), message);
|
|
967
|
-
}
|
|
968
|
-
if (_messageCount === _maxInternalMessageLimit) {
|
|
969
|
-
var throttleLimitMessage = "Internal events throttle limit per PageView reached for this app.";
|
|
970
|
-
var throttleMessage = new _InternalLogMessage(23 , throttleLimitMessage, false);
|
|
971
|
-
_self.queue[_DYN_PUSH ](throttleMessage);
|
|
972
|
-
if (severity === 1 ) {
|
|
973
|
-
_self[STR_ERROR_TO_CONSOLE ](throttleLimitMessage);
|
|
974
|
-
}
|
|
975
|
-
else {
|
|
976
|
-
_self[STR_WARN_TO_CONSOLE ](throttleLimitMessage);
|
|
977
|
-
}
|
|
978
|
-
}
|
|
979
|
-
}
|
|
980
|
-
}
|
|
981
|
-
function _setDefaultsFromConfig(config) {
|
|
982
|
-
_loggingLevelConsole = getCfgValue(config.loggingLevelConsole, 0);
|
|
983
|
-
_loggingLevelTelemetry = getCfgValue(config.loggingLevelTelemetry, 1);
|
|
984
|
-
_maxInternalMessageLimit = getCfgValue(config.maxMessageLimit, 25);
|
|
985
|
-
_enableDebug = getCfgValue(config.enableDebug, getCfgValue(config[_DYN_ENABLE_DEBUG_EXCEPTI4 ], false));
|
|
986
|
-
}
|
|
987
|
-
function _areInternalMessagesThrottled() {
|
|
988
|
-
return _messageCount >= _maxInternalMessageLimit;
|
|
989
|
-
}
|
|
990
|
-
function _debugExtMsg(name, data) {
|
|
991
|
-
var dbgExt = getDebugExt(config || {});
|
|
992
|
-
if (dbgExt && dbgExt[_DYN_DIAG_LOG ]) {
|
|
993
|
-
dbgExt[_DYN_DIAG_LOG ](name, data);
|
|
994
|
-
}
|
|
995
|
-
}
|
|
996
|
-
});
|
|
997
|
-
}
|
|
998
|
-
DiagnosticLogger.__ieDyn=1;
|
|
999
|
-
return DiagnosticLogger;
|
|
1000
|
-
}());
|
|
1001
|
-
function _getLogger(logger) {
|
|
1002
|
-
return (logger || new DiagnosticLogger());
|
|
1003
|
-
}
|
|
1004
|
-
function _throwInternal(logger, severity, msgId, msg, properties, isUserAct) {
|
|
1005
|
-
if (isUserAct === void 0) { isUserAct = false; }
|
|
1006
|
-
_getLogger(logger).throwInternal(severity, msgId, msg, properties, isUserAct);
|
|
1007
|
-
}
|
|
1008
|
-
|
|
1009
|
-
var strExecutionContextKey = "ctx";
|
|
1010
|
-
var strParentContextKey = "ParentContextKey";
|
|
1011
|
-
var strChildrenContextKey = "ChildrenContextKey";
|
|
1012
|
-
var PerfEvent = /** @class */ (function () {
|
|
1013
|
-
function PerfEvent(name, payloadDetails, isAsync) {
|
|
1014
|
-
var _self = this;
|
|
1015
|
-
var accessorDefined = false;
|
|
1016
|
-
_self.start = dateNow();
|
|
1017
|
-
_self[_DYN_NAME$1 ] = name;
|
|
1018
|
-
_self[_DYN_IS_ASYNC ] = isAsync;
|
|
1019
|
-
_self[_DYN_IS_CHILD_EVT ] = function () { return false; };
|
|
1020
|
-
if (isFunction(payloadDetails)) {
|
|
1021
|
-
var theDetails_1;
|
|
1022
|
-
accessorDefined = objDefineAccessors(_self, "payload", function () {
|
|
1023
|
-
if (!theDetails_1 && isFunction(payloadDetails)) {
|
|
1024
|
-
theDetails_1 = payloadDetails();
|
|
1025
|
-
payloadDetails = null;
|
|
1026
|
-
}
|
|
1027
|
-
return theDetails_1;
|
|
1028
|
-
});
|
|
1029
|
-
}
|
|
1030
|
-
_self[_DYN_GET_CTX ] = function (key) {
|
|
1031
|
-
if (key) {
|
|
1032
|
-
if (key === PerfEvent[strParentContextKey] || key === PerfEvent[strChildrenContextKey]) {
|
|
1033
|
-
return _self[key];
|
|
1034
|
-
}
|
|
1035
|
-
return (_self[strExecutionContextKey] || {})[key];
|
|
1036
|
-
}
|
|
1037
|
-
return null;
|
|
1038
|
-
};
|
|
1039
|
-
_self[_DYN_SET_CTX ] = function (key, value) {
|
|
1040
|
-
if (key) {
|
|
1041
|
-
if (key === PerfEvent[strParentContextKey]) {
|
|
1042
|
-
if (!_self[key]) {
|
|
1043
|
-
_self[_DYN_IS_CHILD_EVT ] = function () { return true; };
|
|
1044
|
-
}
|
|
1045
|
-
_self[key] = value;
|
|
1046
|
-
}
|
|
1047
|
-
else if (key === PerfEvent[strChildrenContextKey]) {
|
|
1048
|
-
_self[key] = value;
|
|
1049
|
-
}
|
|
1050
|
-
else {
|
|
1051
|
-
var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};
|
|
1052
|
-
ctx[key] = value;
|
|
1053
|
-
}
|
|
1054
|
-
}
|
|
1055
|
-
};
|
|
1056
|
-
_self[_DYN_COMPLETE ] = function () {
|
|
1057
|
-
var childTime = 0;
|
|
1058
|
-
var childEvts = _self[_DYN_GET_CTX ](PerfEvent[strChildrenContextKey]);
|
|
1059
|
-
if (isArray(childEvts)) {
|
|
1060
|
-
for (var lp = 0; lp < childEvts[_DYN_LENGTH$1 ]; lp++) {
|
|
1061
|
-
var childEvt = childEvts[lp];
|
|
1062
|
-
if (childEvt) {
|
|
1063
|
-
childTime += childEvt[_DYN_TIME ];
|
|
1064
|
-
}
|
|
1065
|
-
}
|
|
1066
|
-
}
|
|
1067
|
-
_self[_DYN_TIME ] = dateNow() - _self.start;
|
|
1068
|
-
_self.exTime = _self[_DYN_TIME ] - childTime;
|
|
1069
|
-
_self[_DYN_COMPLETE ] = function () { };
|
|
1070
|
-
if (!accessorDefined && isFunction(payloadDetails)) {
|
|
1071
|
-
_self.payload = payloadDetails();
|
|
1072
|
-
}
|
|
1073
|
-
};
|
|
1074
|
-
}
|
|
1075
|
-
PerfEvent.ParentContextKey = "parent";
|
|
1076
|
-
PerfEvent.ChildrenContextKey = "childEvts";
|
|
1077
|
-
return PerfEvent;
|
|
1078
|
-
}());
|
|
1079
|
-
var doPerfActiveKey = "CoreUtils.doPerf";
|
|
1080
|
-
function doPerf(mgrSource, getSource, func, details, isAsync) {
|
|
1081
|
-
if (mgrSource) {
|
|
1082
|
-
var perfMgr = mgrSource;
|
|
1083
|
-
if (perfMgr[STR_GET_PERF_MGR]) {
|
|
1084
|
-
perfMgr = perfMgr[STR_GET_PERF_MGR]();
|
|
1085
|
-
}
|
|
1086
|
-
if (perfMgr) {
|
|
1087
|
-
var perfEvt = void 0;
|
|
1088
|
-
var currentActive = perfMgr[_DYN_GET_CTX ](doPerfActiveKey);
|
|
1089
|
-
try {
|
|
1090
|
-
perfEvt = perfMgr.create(getSource(), details, isAsync);
|
|
1091
|
-
if (perfEvt) {
|
|
1092
|
-
if (currentActive && perfEvt[_DYN_SET_CTX ]) {
|
|
1093
|
-
perfEvt[_DYN_SET_CTX ](PerfEvent[strParentContextKey], currentActive);
|
|
1094
|
-
if (currentActive[_DYN_GET_CTX ] && currentActive[_DYN_SET_CTX ]) {
|
|
1095
|
-
var children = currentActive[_DYN_GET_CTX ](PerfEvent[strChildrenContextKey]);
|
|
1096
|
-
if (!children) {
|
|
1097
|
-
children = [];
|
|
1098
|
-
currentActive[_DYN_SET_CTX ](PerfEvent[strChildrenContextKey], children);
|
|
1099
|
-
}
|
|
1100
|
-
children[_DYN_PUSH ](perfEvt);
|
|
1101
|
-
}
|
|
1102
|
-
}
|
|
1103
|
-
perfMgr[_DYN_SET_CTX ](doPerfActiveKey, perfEvt);
|
|
1104
|
-
return func(perfEvt);
|
|
1105
|
-
}
|
|
1106
|
-
}
|
|
1107
|
-
catch (ex) {
|
|
1108
|
-
if (perfEvt && perfEvt[_DYN_SET_CTX ]) {
|
|
1109
|
-
perfEvt[_DYN_SET_CTX ]("exception", ex);
|
|
1110
|
-
}
|
|
1111
|
-
}
|
|
1112
|
-
finally {
|
|
1113
|
-
if (perfEvt) {
|
|
1114
|
-
perfMgr.fire(perfEvt);
|
|
1115
|
-
}
|
|
1116
|
-
perfMgr[_DYN_SET_CTX ](doPerfActiveKey, currentActive);
|
|
1117
|
-
}
|
|
1118
|
-
}
|
|
1119
|
-
}
|
|
1120
|
-
return func();
|
|
1121
|
-
}
|
|
1122
|
-
|
|
1123
|
-
var UInt32Mask = 0x100000000;
|
|
1124
|
-
var MaxUInt32 = 0xffffffff;
|
|
1125
|
-
var _mwcSeeded = false;
|
|
1126
|
-
var _mwcW = 123456789;
|
|
1127
|
-
var _mwcZ = 987654321;
|
|
1128
|
-
function _mwcSeed(seedValue) {
|
|
1129
|
-
if (seedValue < 0) {
|
|
1130
|
-
seedValue >>>= 0;
|
|
1131
|
-
}
|
|
1132
|
-
_mwcW = (123456789 + seedValue) & MaxUInt32;
|
|
1133
|
-
_mwcZ = (987654321 - seedValue) & MaxUInt32;
|
|
1134
|
-
_mwcSeeded = true;
|
|
1135
|
-
}
|
|
1136
|
-
function _autoSeedMwc() {
|
|
1137
|
-
try {
|
|
1138
|
-
var now = dateNow() & 0x7fffffff;
|
|
1139
|
-
_mwcSeed(((Math.random() * UInt32Mask) ^ now) + now);
|
|
1140
|
-
}
|
|
1141
|
-
catch (e) {
|
|
1142
|
-
}
|
|
1143
|
-
}
|
|
1144
|
-
function random32(signed) {
|
|
1145
|
-
var value = 0;
|
|
1146
|
-
var c = getCrypto() || getMsCrypto();
|
|
1147
|
-
if (c && c.getRandomValues) {
|
|
1148
|
-
value = c.getRandomValues(new Uint32Array(1))[0] & MaxUInt32;
|
|
1149
|
-
}
|
|
1150
|
-
if (value === 0 && isIE()) {
|
|
1151
|
-
if (!_mwcSeeded) {
|
|
1152
|
-
_autoSeedMwc();
|
|
1153
|
-
}
|
|
1154
|
-
value = mwcRandom32() & MaxUInt32;
|
|
1155
|
-
}
|
|
1156
|
-
if (value === 0) {
|
|
1157
|
-
value = Math.floor((UInt32Mask * Math.random()) | 0);
|
|
1158
|
-
}
|
|
1159
|
-
if (!signed) {
|
|
1160
|
-
value >>>= 0;
|
|
1161
|
-
}
|
|
1162
|
-
return value;
|
|
1163
|
-
}
|
|
1164
|
-
function mwcRandom32(signed) {
|
|
1165
|
-
_mwcZ = (36969 * (_mwcZ & 0xFFFF) + (_mwcZ >> 16)) & MaxUInt32;
|
|
1166
|
-
_mwcW = (18000 * (_mwcW & 0xFFFF) + (_mwcW >> 16)) & MaxUInt32;
|
|
1167
|
-
var value = (((_mwcZ << 16) + (_mwcW & 0xFFFF)) >>> 0) & MaxUInt32 | 0;
|
|
1168
|
-
if (!signed) {
|
|
1169
|
-
value >>>= 0;
|
|
1170
|
-
}
|
|
1171
|
-
return value;
|
|
1172
|
-
}
|
|
1173
|
-
function newId(maxLength) {
|
|
1174
|
-
if (maxLength === void 0) { maxLength = 22; }
|
|
1175
|
-
var base64chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
|
1176
|
-
var number = random32() >>> 0;
|
|
1177
|
-
var chars = 0;
|
|
1178
|
-
var result = STR_EMPTY;
|
|
1179
|
-
while (result[_DYN_LENGTH$1 ] < maxLength) {
|
|
1180
|
-
chars++;
|
|
1181
|
-
result += base64chars.charAt(number & 0x3F);
|
|
1182
|
-
number >>>= 6;
|
|
1183
|
-
if (chars === 5) {
|
|
1184
|
-
number = (((random32() << 2) & 0xFFFFFFFF) | (number & 0x03)) >>> 0;
|
|
1185
|
-
chars = 0;
|
|
1186
|
-
}
|
|
1187
|
-
}
|
|
1188
|
-
return result;
|
|
1189
|
-
}
|
|
1190
|
-
|
|
1191
|
-
var _objDefineProperty = ObjDefineProperty;
|
|
1192
|
-
var version = "2.8.15-nightly.2307-12";
|
|
1193
|
-
var instanceName = "." + newId(6);
|
|
1194
|
-
var _dataUid = 0;
|
|
1195
|
-
function _createAccessor(target, prop, value) {
|
|
1196
|
-
if (_objDefineProperty) {
|
|
1197
|
-
try {
|
|
1198
|
-
_objDefineProperty(target, prop, {
|
|
1199
|
-
value: value,
|
|
1200
|
-
enumerable: false,
|
|
1201
|
-
configurable: true
|
|
1202
|
-
});
|
|
1203
|
-
return true;
|
|
1204
|
-
}
|
|
1205
|
-
catch (e) {
|
|
1206
|
-
}
|
|
1207
|
-
}
|
|
1208
|
-
return false;
|
|
1209
|
-
}
|
|
1210
|
-
function _canAcceptData(target) {
|
|
1211
|
-
return target[_DYN_NODE_TYPE ] === 1 || target[_DYN_NODE_TYPE ] === 9 || !(+target[_DYN_NODE_TYPE ]);
|
|
1212
|
-
}
|
|
1213
|
-
function _getCache(data, target) {
|
|
1214
|
-
var theCache = target[data.id];
|
|
1215
|
-
if (!theCache) {
|
|
1216
|
-
theCache = {};
|
|
1217
|
-
try {
|
|
1218
|
-
if (_canAcceptData(target)) {
|
|
1219
|
-
if (!_createAccessor(target, data.id, theCache)) {
|
|
1220
|
-
target[data.id] = theCache;
|
|
1221
|
-
}
|
|
1222
|
-
}
|
|
1223
|
-
}
|
|
1224
|
-
catch (e) {
|
|
1225
|
-
}
|
|
1226
|
-
}
|
|
1227
|
-
return theCache;
|
|
1228
|
-
}
|
|
1229
|
-
function createUniqueNamespace(name, includeVersion) {
|
|
1230
|
-
if (includeVersion === void 0) { includeVersion = false; }
|
|
1231
|
-
return normalizeJsName(name + (_dataUid++) + (includeVersion ? "." + version : STR_EMPTY) + instanceName);
|
|
1232
|
-
}
|
|
1233
|
-
function createElmNodeData(name) {
|
|
1234
|
-
var data = {
|
|
1235
|
-
id: createUniqueNamespace("_aiData-" + (name || STR_EMPTY) + "." + version),
|
|
1236
|
-
accept: function (target) {
|
|
1237
|
-
return _canAcceptData(target);
|
|
1238
|
-
},
|
|
1239
|
-
get: function (target, name, defValue, addDefault) {
|
|
1240
|
-
var theCache = target[data.id];
|
|
1241
|
-
if (!theCache) {
|
|
1242
|
-
if (addDefault) {
|
|
1243
|
-
theCache = _getCache(data, target);
|
|
1244
|
-
theCache[normalizeJsName(name)] = defValue;
|
|
1245
|
-
}
|
|
1246
|
-
return defValue;
|
|
1247
|
-
}
|
|
1248
|
-
return theCache[normalizeJsName(name)];
|
|
1249
|
-
},
|
|
1250
|
-
kill: function (target, name) {
|
|
1251
|
-
if (target && target[name]) {
|
|
1252
|
-
try {
|
|
1253
|
-
delete target[name];
|
|
1254
|
-
}
|
|
1255
|
-
catch (e) {
|
|
1256
|
-
}
|
|
1257
|
-
}
|
|
1258
|
-
}
|
|
1259
|
-
};
|
|
1260
|
-
return data;
|
|
1261
|
-
}
|
|
1262
|
-
|
|
1263
|
-
var strOnPrefix = "on";
|
|
1264
|
-
var strAttachEvent = "attachEvent";
|
|
1265
|
-
var strAddEventHelper = "addEventListener";
|
|
1266
|
-
var strDetachEvent = "detachEvent";
|
|
1267
|
-
var strRemoveEventListener = "removeEventListener";
|
|
1268
|
-
var strEvents = "events";
|
|
1269
|
-
createUniqueNamespace("aiEvtPageHide");
|
|
1270
|
-
createUniqueNamespace("aiEvtPageShow");
|
|
1271
|
-
var rRemoveEmptyNs = /\.[\.]+/g;
|
|
1272
|
-
var rRemoveTrailingEmptyNs = /[\.]+$/;
|
|
1273
|
-
var _guid = 1;
|
|
1274
|
-
var elmNodeData = createElmNodeData("events");
|
|
1275
|
-
var eventNamespace = /^([^.]*)(?:\.(.+)|)/;
|
|
1276
|
-
function _normalizeNamespace(name) {
|
|
1277
|
-
if (name && name[_DYN_REPLACE ]) {
|
|
1278
|
-
return name[_DYN_REPLACE ](/^[\s\.]+|(?=[\s\.])[\.\s]+$/g, STR_EMPTY);
|
|
1279
|
-
}
|
|
1280
|
-
return name;
|
|
1281
|
-
}
|
|
1282
|
-
function _getEvtNamespace(eventName, evtNamespace) {
|
|
1283
|
-
var _a;
|
|
1284
|
-
if (evtNamespace) {
|
|
1285
|
-
var theNamespace_1 = STR_EMPTY;
|
|
1286
|
-
if (isArray(evtNamespace)) {
|
|
1287
|
-
theNamespace_1 = STR_EMPTY;
|
|
1288
|
-
arrForEach(evtNamespace, function (name) {
|
|
1289
|
-
name = _normalizeNamespace(name);
|
|
1290
|
-
if (name) {
|
|
1291
|
-
if (name[0] !== ".") {
|
|
1292
|
-
name = "." + name;
|
|
1293
|
-
}
|
|
1294
|
-
theNamespace_1 += name;
|
|
1295
|
-
}
|
|
1296
|
-
});
|
|
1297
|
-
}
|
|
1298
|
-
else {
|
|
1299
|
-
theNamespace_1 = _normalizeNamespace(evtNamespace);
|
|
1300
|
-
}
|
|
1301
|
-
if (theNamespace_1) {
|
|
1302
|
-
if (theNamespace_1[0] !== ".") {
|
|
1303
|
-
theNamespace_1 = "." + theNamespace_1;
|
|
1304
|
-
}
|
|
1305
|
-
eventName = (eventName || STR_EMPTY) + theNamespace_1;
|
|
1306
|
-
}
|
|
1307
|
-
}
|
|
1308
|
-
var parsedEvent = (eventNamespace.exec(eventName || STR_EMPTY) || []);
|
|
1309
|
-
return _a = {},
|
|
1310
|
-
_a[_DYN_TYPE ] = parsedEvent[1],
|
|
1311
|
-
_a.ns = ((parsedEvent[2] || STR_EMPTY).replace(rRemoveEmptyNs, ".").replace(rRemoveTrailingEmptyNs, STR_EMPTY)[_DYN_SPLIT ](".").sort()).join("."),
|
|
1312
|
-
_a;
|
|
1313
|
-
}
|
|
1314
|
-
function _getRegisteredEvents(target, evtName, addDefault) {
|
|
1315
|
-
if (addDefault === void 0) { addDefault = true; }
|
|
1316
|
-
var aiEvts = elmNodeData.get(target, strEvents, {}, addDefault);
|
|
1317
|
-
var registeredEvents = aiEvts[evtName];
|
|
1318
|
-
if (!registeredEvents) {
|
|
1319
|
-
registeredEvents = aiEvts[evtName] = [];
|
|
1320
|
-
}
|
|
1321
|
-
return registeredEvents;
|
|
1322
|
-
}
|
|
1323
|
-
function _doDetach(obj, evtName, handlerRef, useCapture) {
|
|
1324
|
-
if (obj && evtName && evtName[_DYN_TYPE ]) {
|
|
1325
|
-
if (obj[strRemoveEventListener]) {
|
|
1326
|
-
obj[strRemoveEventListener](evtName[_DYN_TYPE ], handlerRef, useCapture);
|
|
1327
|
-
}
|
|
1328
|
-
else if (obj[strDetachEvent]) {
|
|
1329
|
-
obj[strDetachEvent](strOnPrefix + evtName[_DYN_TYPE ], handlerRef);
|
|
1330
|
-
}
|
|
1331
|
-
}
|
|
1332
|
-
}
|
|
1333
|
-
function _doAttach(obj, evtName, handlerRef, useCapture) {
|
|
1334
|
-
var result = false;
|
|
1335
|
-
if (obj && evtName && evtName[_DYN_TYPE ] && handlerRef) {
|
|
1336
|
-
if (obj[strAddEventHelper]) {
|
|
1337
|
-
obj[strAddEventHelper](evtName[_DYN_TYPE ], handlerRef, useCapture);
|
|
1338
|
-
result = true;
|
|
1339
|
-
}
|
|
1340
|
-
else if (obj[strAttachEvent]) {
|
|
1341
|
-
obj[strAttachEvent](strOnPrefix + evtName[_DYN_TYPE ], handlerRef);
|
|
1342
|
-
result = true;
|
|
1343
|
-
}
|
|
1344
|
-
}
|
|
1345
|
-
return result;
|
|
1346
|
-
}
|
|
1347
|
-
function _doUnregister(target, events, evtName, unRegFn) {
|
|
1348
|
-
var idx = events[_DYN_LENGTH$1 ];
|
|
1349
|
-
while (idx--) {
|
|
1350
|
-
var theEvent = events[idx];
|
|
1351
|
-
if (theEvent) {
|
|
1352
|
-
if (!evtName.ns || evtName.ns === theEvent.evtName.ns) {
|
|
1353
|
-
if (!unRegFn || unRegFn(theEvent)) {
|
|
1354
|
-
_doDetach(target, theEvent.evtName, theEvent[_DYN_HANDLER ], theEvent.capture);
|
|
1355
|
-
events[_DYN_SPLICE ](idx, 1);
|
|
1356
|
-
}
|
|
1357
|
-
}
|
|
1358
|
-
}
|
|
1359
|
-
}
|
|
1360
|
-
}
|
|
1361
|
-
function _unregisterEvents(target, evtName, unRegFn) {
|
|
1362
|
-
if (evtName[_DYN_TYPE ]) {
|
|
1363
|
-
_doUnregister(target, _getRegisteredEvents(target, evtName[_DYN_TYPE ]), evtName, unRegFn);
|
|
1364
|
-
}
|
|
1365
|
-
else {
|
|
1366
|
-
var eventCache = elmNodeData.get(target, strEvents, {});
|
|
1367
|
-
objForEachKey(eventCache, function (evtType, events) {
|
|
1368
|
-
_doUnregister(target, events, evtName, unRegFn);
|
|
1369
|
-
});
|
|
1370
|
-
if (objKeys(eventCache)[_DYN_LENGTH$1 ] === 0) {
|
|
1371
|
-
elmNodeData.kill(target, strEvents);
|
|
1372
|
-
}
|
|
1373
|
-
}
|
|
1374
|
-
}
|
|
1375
|
-
function mergeEvtNamespace(theNamespace, namespaces) {
|
|
1376
|
-
var newNamespaces;
|
|
1377
|
-
if (namespaces) {
|
|
1378
|
-
if (isArray(namespaces)) {
|
|
1379
|
-
newNamespaces = [theNamespace].concat(namespaces);
|
|
1380
|
-
}
|
|
1381
|
-
else {
|
|
1382
|
-
newNamespaces = [theNamespace, namespaces];
|
|
1383
|
-
}
|
|
1384
|
-
newNamespaces = (_getEvtNamespace("xx", newNamespaces).ns)[_DYN_SPLIT ](".");
|
|
1385
|
-
}
|
|
1386
|
-
else {
|
|
1387
|
-
newNamespaces = theNamespace;
|
|
1388
|
-
}
|
|
1389
|
-
return newNamespaces;
|
|
1390
|
-
}
|
|
1391
|
-
function eventOn(target, eventName, handlerRef, evtNamespace, useCapture) {
|
|
1392
|
-
var _a;
|
|
1393
|
-
if (useCapture === void 0) { useCapture = false; }
|
|
1394
|
-
var result = false;
|
|
1395
|
-
if (target) {
|
|
1396
|
-
try {
|
|
1397
|
-
var evtName = _getEvtNamespace(eventName, evtNamespace);
|
|
1398
|
-
result = _doAttach(target, evtName, handlerRef, useCapture);
|
|
1399
|
-
if (result && elmNodeData.accept(target)) {
|
|
1400
|
-
var registeredEvent = (_a = {
|
|
1401
|
-
guid: _guid++,
|
|
1402
|
-
evtName: evtName
|
|
1403
|
-
},
|
|
1404
|
-
_a[_DYN_HANDLER ] = handlerRef,
|
|
1405
|
-
_a.capture = useCapture,
|
|
1406
|
-
_a);
|
|
1407
|
-
_getRegisteredEvents(target, evtName.type)[_DYN_PUSH ](registeredEvent);
|
|
1408
|
-
}
|
|
1409
|
-
}
|
|
1410
|
-
catch (e) {
|
|
1411
|
-
}
|
|
1412
|
-
}
|
|
1413
|
-
return result;
|
|
1414
|
-
}
|
|
1415
|
-
function eventOff(target, eventName, handlerRef, evtNamespace, useCapture) {
|
|
1416
|
-
if (useCapture === void 0) { useCapture = false; }
|
|
1417
|
-
if (target) {
|
|
1418
|
-
try {
|
|
1419
|
-
var evtName_1 = _getEvtNamespace(eventName, evtNamespace);
|
|
1420
|
-
var found_1 = false;
|
|
1421
|
-
_unregisterEvents(target, evtName_1, function (regEvent) {
|
|
1422
|
-
if ((evtName_1.ns && !handlerRef) || regEvent[_DYN_HANDLER ] === handlerRef) {
|
|
1423
|
-
found_1 = true;
|
|
1424
|
-
return true;
|
|
1425
|
-
}
|
|
1426
|
-
return false;
|
|
1427
|
-
});
|
|
1428
|
-
if (!found_1) {
|
|
1429
|
-
_doDetach(target, evtName_1, handlerRef, useCapture);
|
|
1430
|
-
}
|
|
1431
|
-
}
|
|
1432
|
-
catch (e) {
|
|
1433
|
-
}
|
|
1434
|
-
}
|
|
1435
|
-
}
|
|
1436
|
-
|
|
1437
|
-
var pluginStateData = createElmNodeData("plugin");
|
|
1438
|
-
function _getPluginState(plugin) {
|
|
1439
|
-
return pluginStateData.get(plugin, "state", {}, true);
|
|
1440
|
-
}
|
|
1441
|
-
function unloadComponents(components, unloadCtx, unloadState, asyncCallback) {
|
|
1442
|
-
var idx = 0;
|
|
1443
|
-
function _doUnload() {
|
|
1444
|
-
while (idx < components[_DYN_LENGTH$1 ]) {
|
|
1445
|
-
var component = components[idx++];
|
|
1446
|
-
if (component) {
|
|
1447
|
-
var func = component._doUnload || component[_DYN__DO_TEARDOWN ];
|
|
1448
|
-
if (isFunction(func)) {
|
|
1449
|
-
if (func[_DYN_CALL ](component, unloadCtx, unloadState, _doUnload) === true) {
|
|
1450
|
-
return true;
|
|
1451
|
-
}
|
|
1452
|
-
}
|
|
1453
|
-
}
|
|
1454
|
-
}
|
|
1455
|
-
}
|
|
1456
|
-
return _doUnload();
|
|
1457
|
-
}
|
|
1458
|
-
|
|
1459
|
-
var strTelemetryPluginChain = "TelemetryPluginChain";
|
|
1460
|
-
var strHasRunFlags = "_hasRun";
|
|
1461
|
-
var strGetTelCtx = "_getTelCtx";
|
|
1462
|
-
var _chainId = 0;
|
|
1463
|
-
function _getNextProxyStart(proxy, core, startAt) {
|
|
1464
|
-
while (proxy) {
|
|
1465
|
-
if (proxy[_DYN_GET_PLUGIN ]() === startAt) {
|
|
1466
|
-
return proxy;
|
|
1467
|
-
}
|
|
1468
|
-
proxy = proxy[_DYN_GET_NEXT ]();
|
|
1469
|
-
}
|
|
1470
|
-
return createTelemetryProxyChain([startAt], core[_DYN_CONFIG ] || {}, core);
|
|
1471
|
-
}
|
|
1472
|
-
function _createInternalContext(telemetryChain, config, core, startAt) {
|
|
1473
|
-
var _nextProxy = null;
|
|
1474
|
-
var _onComplete = [];
|
|
1475
|
-
if (startAt !== null) {
|
|
1476
|
-
_nextProxy = startAt ? _getNextProxyStart(telemetryChain, core, startAt) : telemetryChain;
|
|
1477
|
-
}
|
|
1478
|
-
var context = {
|
|
1479
|
-
_next: _moveNext,
|
|
1480
|
-
ctx: {
|
|
1481
|
-
core: function () {
|
|
1482
|
-
return core;
|
|
1483
|
-
},
|
|
1484
|
-
diagLog: function () {
|
|
1485
|
-
return safeGetLogger(core, config);
|
|
1486
|
-
},
|
|
1487
|
-
getCfg: function () {
|
|
1488
|
-
return config;
|
|
1489
|
-
},
|
|
1490
|
-
getExtCfg: _getExtCfg,
|
|
1491
|
-
getConfig: _getConfig,
|
|
1492
|
-
hasNext: function () {
|
|
1493
|
-
return !!_nextProxy;
|
|
1494
|
-
},
|
|
1495
|
-
getNext: function () {
|
|
1496
|
-
return _nextProxy;
|
|
1497
|
-
},
|
|
1498
|
-
setNext: function (nextPlugin) {
|
|
1499
|
-
_nextProxy = nextPlugin;
|
|
1500
|
-
},
|
|
1501
|
-
iterate: _iterateChain,
|
|
1502
|
-
onComplete: _addOnComplete
|
|
1503
|
-
}
|
|
1504
|
-
};
|
|
1505
|
-
function _addOnComplete(onComplete, that) {
|
|
1506
|
-
var args = [];
|
|
1507
|
-
for (var _i = 2; _i < arguments.length; _i++) {
|
|
1508
|
-
args[_i - 2] = arguments[_i];
|
|
1509
|
-
}
|
|
1510
|
-
if (onComplete) {
|
|
1511
|
-
_onComplete[_DYN_PUSH ]({
|
|
1512
|
-
func: onComplete,
|
|
1513
|
-
self: !isUndefined(that) ? that : context.ctx,
|
|
1514
|
-
args: args
|
|
1515
|
-
});
|
|
1516
|
-
}
|
|
1517
|
-
}
|
|
1518
|
-
function _moveNext() {
|
|
1519
|
-
var nextProxy = _nextProxy;
|
|
1520
|
-
_nextProxy = nextProxy ? nextProxy[_DYN_GET_NEXT ]() : null;
|
|
1521
|
-
if (!nextProxy) {
|
|
1522
|
-
var onComplete = _onComplete;
|
|
1523
|
-
if (onComplete && onComplete[_DYN_LENGTH$1 ] > 0) {
|
|
1524
|
-
arrForEach(onComplete, function (completeDetails) {
|
|
1525
|
-
try {
|
|
1526
|
-
completeDetails.func[_DYN_CALL ](completeDetails.self, completeDetails.args);
|
|
1527
|
-
}
|
|
1528
|
-
catch (e) {
|
|
1529
|
-
_throwInternal(core[_DYN_LOGGER ], 2 , 73 , "Unexpected Exception during onComplete - " + dumpObj(e));
|
|
1530
|
-
}
|
|
1531
|
-
});
|
|
1532
|
-
_onComplete = [];
|
|
1533
|
-
}
|
|
1534
|
-
}
|
|
1535
|
-
return nextProxy;
|
|
1536
|
-
}
|
|
1537
|
-
function _getExtCfg(identifier, defaultValue, mergeDefault) {
|
|
1538
|
-
if (defaultValue === void 0) { defaultValue = {}; }
|
|
1539
|
-
if (mergeDefault === void 0) { mergeDefault = 0 ; }
|
|
1540
|
-
var theConfig;
|
|
1541
|
-
if (config) {
|
|
1542
|
-
var extConfig = config[STR_EXTENSION_CONFIG ];
|
|
1543
|
-
if (extConfig && identifier) {
|
|
1544
|
-
theConfig = extConfig[identifier];
|
|
1545
|
-
}
|
|
1546
|
-
}
|
|
1547
|
-
if (!theConfig) {
|
|
1548
|
-
theConfig = defaultValue;
|
|
1549
|
-
}
|
|
1550
|
-
else if (isObject(defaultValue)) {
|
|
1551
|
-
if (mergeDefault !== 0 ) {
|
|
1552
|
-
var newConfig_1 = objExtend(true, defaultValue, theConfig);
|
|
1553
|
-
if (config && mergeDefault === 2 ) {
|
|
1554
|
-
objForEachKey(defaultValue, function (field) {
|
|
1555
|
-
if (isNullOrUndefined(newConfig_1[field])) {
|
|
1556
|
-
var cfgValue = config[field];
|
|
1557
|
-
if (!isNullOrUndefined(cfgValue)) {
|
|
1558
|
-
newConfig_1[field] = cfgValue;
|
|
1559
|
-
}
|
|
1560
|
-
}
|
|
1561
|
-
});
|
|
1562
|
-
}
|
|
1563
|
-
theConfig = newConfig_1;
|
|
1564
|
-
}
|
|
1565
|
-
}
|
|
1566
|
-
return theConfig;
|
|
1567
|
-
}
|
|
1568
|
-
function _getConfig(identifier, field, defaultValue) {
|
|
1569
|
-
if (defaultValue === void 0) { defaultValue = false; }
|
|
1570
|
-
var theValue;
|
|
1571
|
-
var extConfig = _getExtCfg(identifier, null);
|
|
1572
|
-
if (extConfig && !isNullOrUndefined(extConfig[field])) {
|
|
1573
|
-
theValue = extConfig[field];
|
|
1574
|
-
}
|
|
1575
|
-
else if (config && !isNullOrUndefined(config[field])) {
|
|
1576
|
-
theValue = config[field];
|
|
1577
|
-
}
|
|
1578
|
-
return !isNullOrUndefined(theValue) ? theValue : defaultValue;
|
|
1579
|
-
}
|
|
1580
|
-
function _iterateChain(cb) {
|
|
1581
|
-
var nextPlugin;
|
|
1582
|
-
while (!!(nextPlugin = context._next())) {
|
|
1583
|
-
var plugin = nextPlugin[_DYN_GET_PLUGIN ]();
|
|
1584
|
-
if (plugin) {
|
|
1585
|
-
cb(plugin);
|
|
1586
|
-
}
|
|
1587
|
-
}
|
|
1588
|
-
}
|
|
1589
|
-
return context;
|
|
1590
|
-
}
|
|
1591
|
-
function createProcessTelemetryContext(telemetryChain, config, core, startAt) {
|
|
1592
|
-
var internalContext = _createInternalContext(telemetryChain, config, core, startAt);
|
|
1593
|
-
var context = internalContext.ctx;
|
|
1594
|
-
function _processNext(env) {
|
|
1595
|
-
var nextPlugin = internalContext._next();
|
|
1596
|
-
nextPlugin && nextPlugin[STR_PROCESS_TELEMETRY ](env, context);
|
|
1597
|
-
return !nextPlugin;
|
|
1598
|
-
}
|
|
1599
|
-
function _createNew(plugins, startAt) {
|
|
1600
|
-
if (plugins === void 0) { plugins = null; }
|
|
1601
|
-
if (isArray(plugins)) {
|
|
1602
|
-
plugins = createTelemetryProxyChain(plugins, config, core, startAt);
|
|
1603
|
-
}
|
|
1604
|
-
return createProcessTelemetryContext(plugins || context[_DYN_GET_NEXT ](), config, core, startAt);
|
|
1605
|
-
}
|
|
1606
|
-
context[_DYN_PROCESS_NEXT ] = _processNext;
|
|
1607
|
-
context[_DYN_CREATE_NEW ] = _createNew;
|
|
1608
|
-
return context;
|
|
1609
|
-
}
|
|
1610
|
-
function createProcessTelemetryUnloadContext(telemetryChain, core, startAt) {
|
|
1611
|
-
var config = core[_DYN_CONFIG ] || {};
|
|
1612
|
-
var internalContext = _createInternalContext(telemetryChain, config, core, startAt);
|
|
1613
|
-
var context = internalContext.ctx;
|
|
1614
|
-
function _processNext(unloadState) {
|
|
1615
|
-
var nextPlugin = internalContext._next();
|
|
1616
|
-
nextPlugin && nextPlugin.unload(context, unloadState);
|
|
1617
|
-
return !nextPlugin;
|
|
1618
|
-
}
|
|
1619
|
-
function _createNew(plugins, startAt) {
|
|
1620
|
-
if (plugins === void 0) { plugins = null; }
|
|
1621
|
-
if (isArray(plugins)) {
|
|
1622
|
-
plugins = createTelemetryProxyChain(plugins, config, core, startAt);
|
|
1623
|
-
}
|
|
1624
|
-
return createProcessTelemetryUnloadContext(plugins || context[_DYN_GET_NEXT ](), core, startAt);
|
|
1625
|
-
}
|
|
1626
|
-
context[_DYN_PROCESS_NEXT ] = _processNext;
|
|
1627
|
-
context[_DYN_CREATE_NEW ] = _createNew;
|
|
1628
|
-
return context;
|
|
1629
|
-
}
|
|
1630
|
-
function createProcessTelemetryUpdateContext(telemetryChain, core, startAt) {
|
|
1631
|
-
var config = core[_DYN_CONFIG ] || {};
|
|
1632
|
-
var internalContext = _createInternalContext(telemetryChain, config, core, startAt);
|
|
1633
|
-
var context = internalContext.ctx;
|
|
1634
|
-
function _processNext(updateState) {
|
|
1635
|
-
return context.iterate(function (plugin) {
|
|
1636
|
-
if (isFunction(plugin[_DYN_UPDATE ])) {
|
|
1637
|
-
plugin[_DYN_UPDATE ](context, updateState);
|
|
1638
|
-
}
|
|
1639
|
-
});
|
|
1640
|
-
}
|
|
1641
|
-
function _createNew(plugins, startAt) {
|
|
1642
|
-
if (plugins === void 0) { plugins = null; }
|
|
1643
|
-
if (isArray(plugins)) {
|
|
1644
|
-
plugins = createTelemetryProxyChain(plugins, config, core, startAt);
|
|
1645
|
-
}
|
|
1646
|
-
return createProcessTelemetryUpdateContext(plugins || context[_DYN_GET_NEXT ](), core, startAt);
|
|
1647
|
-
}
|
|
1648
|
-
context[_DYN_PROCESS_NEXT ] = _processNext;
|
|
1649
|
-
context[_DYN_CREATE_NEW ] = _createNew;
|
|
1650
|
-
return context;
|
|
1651
|
-
}
|
|
1652
|
-
function createTelemetryProxyChain(plugins, config, core, startAt) {
|
|
1653
|
-
var firstProxy = null;
|
|
1654
|
-
var add = startAt ? false : true;
|
|
1655
|
-
if (isArray(plugins) && plugins[_DYN_LENGTH$1 ] > 0) {
|
|
1656
|
-
var lastProxy_1 = null;
|
|
1657
|
-
arrForEach(plugins, function (thePlugin) {
|
|
1658
|
-
if (!add && startAt === thePlugin) {
|
|
1659
|
-
add = true;
|
|
1660
|
-
}
|
|
1661
|
-
if (add && thePlugin && isFunction(thePlugin[STR_PROCESS_TELEMETRY ])) {
|
|
1662
|
-
var newProxy = createTelemetryPluginProxy(thePlugin, config, core);
|
|
1663
|
-
if (!firstProxy) {
|
|
1664
|
-
firstProxy = newProxy;
|
|
1665
|
-
}
|
|
1666
|
-
if (lastProxy_1) {
|
|
1667
|
-
lastProxy_1._setNext(newProxy);
|
|
1668
|
-
}
|
|
1669
|
-
lastProxy_1 = newProxy;
|
|
1670
|
-
}
|
|
1671
|
-
});
|
|
1672
|
-
}
|
|
1673
|
-
if (startAt && !firstProxy) {
|
|
1674
|
-
return createTelemetryProxyChain([startAt], config, core);
|
|
1675
|
-
}
|
|
1676
|
-
return firstProxy;
|
|
1677
|
-
}
|
|
1678
|
-
function createTelemetryPluginProxy(plugin, config, core) {
|
|
1679
|
-
var nextProxy = null;
|
|
1680
|
-
var hasProcessTelemetry = isFunction(plugin[STR_PROCESS_TELEMETRY ]);
|
|
1681
|
-
var hasSetNext = isFunction(plugin[_DYN_SET_NEXT_PLUGIN ]);
|
|
1682
|
-
var chainId;
|
|
1683
|
-
if (plugin) {
|
|
1684
|
-
chainId = plugin[_DYN_IDENTIFIER ] + "-" + plugin[STR_PRIORITY ] + "-" + _chainId++;
|
|
1685
|
-
}
|
|
1686
|
-
else {
|
|
1687
|
-
chainId = "Unknown-0-" + _chainId++;
|
|
1688
|
-
}
|
|
1689
|
-
var proxyChain = {
|
|
1690
|
-
getPlugin: function () {
|
|
1691
|
-
return plugin;
|
|
1692
|
-
},
|
|
1693
|
-
getNext: function () {
|
|
1694
|
-
return nextProxy;
|
|
1695
|
-
},
|
|
1696
|
-
processTelemetry: _processTelemetry,
|
|
1697
|
-
unload: _unloadPlugin,
|
|
1698
|
-
update: _updatePlugin,
|
|
1699
|
-
_id: chainId,
|
|
1700
|
-
_setNext: function (nextPlugin) {
|
|
1701
|
-
nextProxy = nextPlugin;
|
|
1702
|
-
}
|
|
1703
|
-
};
|
|
1704
|
-
function _getTelCtx() {
|
|
1705
|
-
var itemCtx;
|
|
1706
|
-
if (plugin && isFunction(plugin[strGetTelCtx])) {
|
|
1707
|
-
itemCtx = plugin[strGetTelCtx]();
|
|
1708
|
-
}
|
|
1709
|
-
if (!itemCtx) {
|
|
1710
|
-
itemCtx = createProcessTelemetryContext(proxyChain, config, core);
|
|
1711
|
-
}
|
|
1712
|
-
return itemCtx;
|
|
1713
|
-
}
|
|
1714
|
-
function _processChain(itemCtx, processPluginFn, name, details, isAsync) {
|
|
1715
|
-
var hasRun = false;
|
|
1716
|
-
var identifier = plugin ? plugin[_DYN_IDENTIFIER ] : strTelemetryPluginChain;
|
|
1717
|
-
var hasRunContext = itemCtx[strHasRunFlags];
|
|
1718
|
-
if (!hasRunContext) {
|
|
1719
|
-
hasRunContext = itemCtx[strHasRunFlags] = {};
|
|
1720
|
-
}
|
|
1721
|
-
itemCtx.setNext(nextProxy);
|
|
1722
|
-
if (plugin) {
|
|
1723
|
-
doPerf(itemCtx[STR_CORE ](), function () { return identifier + ":" + name; }, function () {
|
|
1724
|
-
hasRunContext[chainId] = true;
|
|
1725
|
-
try {
|
|
1726
|
-
var nextId = nextProxy ? nextProxy._id : STR_EMPTY;
|
|
1727
|
-
if (nextId) {
|
|
1728
|
-
hasRunContext[nextId] = false;
|
|
1729
|
-
}
|
|
1730
|
-
hasRun = processPluginFn(itemCtx);
|
|
1731
|
-
}
|
|
1732
|
-
catch (error) {
|
|
1733
|
-
var hasNextRun = nextProxy ? hasRunContext[nextProxy._id] : true;
|
|
1734
|
-
if (hasNextRun) {
|
|
1735
|
-
hasRun = true;
|
|
1736
|
-
}
|
|
1737
|
-
if (!nextProxy || !hasNextRun) {
|
|
1738
|
-
_throwInternal(itemCtx[_DYN_DIAG_LOG ](), 1 , 73 , "Plugin [" + identifier + "] failed during " + name + " - " + dumpObj(error) + ", run flags: " + dumpObj(hasRunContext));
|
|
1739
|
-
}
|
|
1740
|
-
}
|
|
1741
|
-
}, details, isAsync);
|
|
1742
|
-
}
|
|
1743
|
-
return hasRun;
|
|
1744
|
-
}
|
|
1745
|
-
function _processTelemetry(env, itemCtx) {
|
|
1746
|
-
itemCtx = itemCtx || _getTelCtx();
|
|
1747
|
-
function _callProcessTelemetry(itemCtx) {
|
|
1748
|
-
if (!plugin || !hasProcessTelemetry) {
|
|
1749
|
-
return false;
|
|
1750
|
-
}
|
|
1751
|
-
var pluginState = _getPluginState(plugin);
|
|
1752
|
-
if (pluginState[_DYN_TEARDOWN ] || pluginState[STR_DISABLED]) {
|
|
1753
|
-
return false;
|
|
1754
|
-
}
|
|
1755
|
-
if (hasSetNext) {
|
|
1756
|
-
plugin[_DYN_SET_NEXT_PLUGIN ](nextProxy);
|
|
1757
|
-
}
|
|
1758
|
-
plugin[STR_PROCESS_TELEMETRY ](env, itemCtx);
|
|
1759
|
-
return true;
|
|
1760
|
-
}
|
|
1761
|
-
if (!_processChain(itemCtx, _callProcessTelemetry, "processTelemetry", function () { return ({ item: env }); }, !(env.sync))) {
|
|
1762
|
-
itemCtx[_DYN_PROCESS_NEXT ](env);
|
|
1763
|
-
}
|
|
1764
|
-
}
|
|
1765
|
-
function _unloadPlugin(unloadCtx, unloadState) {
|
|
1766
|
-
function _callTeardown() {
|
|
1767
|
-
var hasRun = false;
|
|
1768
|
-
if (plugin) {
|
|
1769
|
-
var pluginState = _getPluginState(plugin);
|
|
1770
|
-
var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE ];
|
|
1771
|
-
if (plugin && (!pluginCore || pluginCore === unloadCtx.core()) && !pluginState[_DYN_TEARDOWN ]) {
|
|
1772
|
-
pluginState[STR_CORE ] = null;
|
|
1773
|
-
pluginState[_DYN_TEARDOWN ] = true;
|
|
1774
|
-
pluginState[_DYN_IS_INITIALIZED ] = false;
|
|
1775
|
-
if (plugin[_DYN_TEARDOWN ] && plugin[_DYN_TEARDOWN ](unloadCtx, unloadState) === true) {
|
|
1776
|
-
hasRun = true;
|
|
1777
|
-
}
|
|
1778
|
-
}
|
|
1779
|
-
}
|
|
1780
|
-
return hasRun;
|
|
1781
|
-
}
|
|
1782
|
-
if (!_processChain(unloadCtx, _callTeardown, "unload", function () { }, unloadState[_DYN_IS_ASYNC ])) {
|
|
1783
|
-
unloadCtx[_DYN_PROCESS_NEXT ](unloadState);
|
|
1784
|
-
}
|
|
1785
|
-
}
|
|
1786
|
-
function _updatePlugin(updateCtx, updateState) {
|
|
1787
|
-
function _callUpdate() {
|
|
1788
|
-
var hasRun = false;
|
|
1789
|
-
if (plugin) {
|
|
1790
|
-
var pluginState = _getPluginState(plugin);
|
|
1791
|
-
var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE ];
|
|
1792
|
-
if (plugin && (!pluginCore || pluginCore === updateCtx.core()) && !pluginState[_DYN_TEARDOWN ]) {
|
|
1793
|
-
if (plugin[_DYN_UPDATE ] && plugin[_DYN_UPDATE ](updateCtx, updateState) === true) {
|
|
1794
|
-
hasRun = true;
|
|
1795
|
-
}
|
|
1796
|
-
}
|
|
1797
|
-
}
|
|
1798
|
-
return hasRun;
|
|
1799
|
-
}
|
|
1800
|
-
if (!_processChain(updateCtx, _callUpdate, "update", function () { }, false)) {
|
|
1801
|
-
updateCtx[_DYN_PROCESS_NEXT ](updateState);
|
|
1802
|
-
}
|
|
1803
|
-
}
|
|
1804
|
-
return objFreeze(proxyChain);
|
|
1805
|
-
}
|
|
1806
|
-
|
|
1807
|
-
function createUnloadHandlerContainer() {
|
|
1808
|
-
var handlers = [];
|
|
1809
|
-
function _addHandler(handler) {
|
|
1810
|
-
if (handler) {
|
|
1811
|
-
handlers[_DYN_PUSH ](handler);
|
|
1812
|
-
}
|
|
1813
|
-
}
|
|
1814
|
-
function _runHandlers(unloadCtx, unloadState) {
|
|
1815
|
-
arrForEach(handlers, function (handler) {
|
|
1816
|
-
try {
|
|
1817
|
-
handler(unloadCtx, unloadState);
|
|
1818
|
-
}
|
|
1819
|
-
catch (e) {
|
|
1820
|
-
_throwInternal(unloadCtx[_DYN_DIAG_LOG ](), 2 , 73 , "Unexpected error calling unload handler - " + dumpObj(e));
|
|
1821
|
-
}
|
|
1822
|
-
});
|
|
1823
|
-
handlers = [];
|
|
1824
|
-
}
|
|
1825
|
-
return {
|
|
1826
|
-
add: _addHandler,
|
|
1827
|
-
run: _runHandlers
|
|
1828
|
-
};
|
|
1829
|
-
}
|
|
1830
|
-
|
|
1831
|
-
var strGetPlugin = "getPlugin";
|
|
1832
|
-
var BaseTelemetryPlugin = /** @class */ (function () {
|
|
1833
|
-
function BaseTelemetryPlugin() {
|
|
1834
|
-
var _self = this;
|
|
1835
|
-
var _isinitialized;
|
|
1836
|
-
var _rootCtx;
|
|
1837
|
-
var _nextPlugin;
|
|
1838
|
-
var _unloadHandlerContainer;
|
|
1839
|
-
var _hooks;
|
|
1840
|
-
_initDefaults();
|
|
1841
|
-
dynamicProto(BaseTelemetryPlugin, _self, function (_self) {
|
|
1842
|
-
_self[_DYN_INITIALIZE ] = function (config, core, extensions, pluginChain) {
|
|
1843
|
-
_setDefaults(config, core, pluginChain);
|
|
1844
|
-
_isinitialized = true;
|
|
1845
|
-
};
|
|
1846
|
-
_self[_DYN_TEARDOWN ] = function (unloadCtx, unloadState) {
|
|
1847
|
-
var _a;
|
|
1848
|
-
var core = _self[STR_CORE ];
|
|
1849
|
-
if (!core || (unloadCtx && core !== unloadCtx[STR_CORE ]())) {
|
|
1850
|
-
return;
|
|
1851
|
-
}
|
|
1852
|
-
var result;
|
|
1853
|
-
var unloadDone = false;
|
|
1854
|
-
var theUnloadCtx = unloadCtx || createProcessTelemetryUnloadContext(null, core, _nextPlugin && _nextPlugin[strGetPlugin] ? _nextPlugin[strGetPlugin]() : _nextPlugin);
|
|
1855
|
-
var theUnloadState = unloadState || (_a = {
|
|
1856
|
-
reason: 0
|
|
1857
|
-
},
|
|
1858
|
-
_a[_DYN_IS_ASYNC ] = false,
|
|
1859
|
-
_a);
|
|
1860
|
-
function _unloadCallback() {
|
|
1861
|
-
if (!unloadDone) {
|
|
1862
|
-
unloadDone = true;
|
|
1863
|
-
_unloadHandlerContainer.run(theUnloadCtx, unloadState);
|
|
1864
|
-
var oldHooks = _hooks;
|
|
1865
|
-
_hooks = [];
|
|
1866
|
-
arrForEach(oldHooks, function (fn) {
|
|
1867
|
-
fn.rm();
|
|
1868
|
-
});
|
|
1869
|
-
if (result === true) {
|
|
1870
|
-
theUnloadCtx[_DYN_PROCESS_NEXT ](theUnloadState);
|
|
1871
|
-
}
|
|
1872
|
-
_initDefaults();
|
|
1873
|
-
}
|
|
1874
|
-
}
|
|
1875
|
-
if (!_self[_DYN__DO_TEARDOWN ] || _self[_DYN__DO_TEARDOWN ](theUnloadCtx, theUnloadState, _unloadCallback) !== true) {
|
|
1876
|
-
_unloadCallback();
|
|
1877
|
-
}
|
|
1878
|
-
else {
|
|
1879
|
-
result = true;
|
|
1880
|
-
}
|
|
1881
|
-
return result;
|
|
1882
|
-
};
|
|
1883
|
-
_self[_DYN_UPDATE ] = function (updateCtx, updateState) {
|
|
1884
|
-
var core = _self[STR_CORE ];
|
|
1885
|
-
if (!core || (updateCtx && core !== updateCtx[STR_CORE ]())) {
|
|
1886
|
-
return;
|
|
1887
|
-
}
|
|
1888
|
-
var result;
|
|
1889
|
-
var updateDone = false;
|
|
1890
|
-
var theUpdateCtx = updateCtx || createProcessTelemetryUpdateContext(null, core, _nextPlugin && _nextPlugin[strGetPlugin] ? _nextPlugin[strGetPlugin]() : _nextPlugin);
|
|
1891
|
-
var theUpdateState = updateState || {
|
|
1892
|
-
reason: 0
|
|
1893
|
-
};
|
|
1894
|
-
function _updateCallback() {
|
|
1895
|
-
if (!updateDone) {
|
|
1896
|
-
updateDone = true;
|
|
1897
|
-
_setDefaults(theUpdateCtx.getCfg(), theUpdateCtx.core(), theUpdateCtx[_DYN_GET_NEXT ]());
|
|
1898
|
-
}
|
|
1899
|
-
}
|
|
1900
|
-
if (!_self._doUpdate || _self._doUpdate(theUpdateCtx, theUpdateState, _updateCallback) !== true) {
|
|
1901
|
-
_updateCallback();
|
|
1902
|
-
}
|
|
1903
|
-
else {
|
|
1904
|
-
result = true;
|
|
1905
|
-
}
|
|
1906
|
-
return result;
|
|
1907
|
-
};
|
|
1908
|
-
_self._addHook = function (hooks) {
|
|
1909
|
-
if (hooks) {
|
|
1910
|
-
if (isArray(hooks)) {
|
|
1911
|
-
_hooks = _hooks.concat(hooks);
|
|
1912
|
-
}
|
|
1913
|
-
else {
|
|
1914
|
-
_hooks[_DYN_PUSH ](hooks);
|
|
1915
|
-
}
|
|
1916
|
-
}
|
|
1917
|
-
};
|
|
1918
|
-
proxyFunctionAs(_self, "_addUnloadCb", function () { return _unloadHandlerContainer; }, "add");
|
|
1919
|
-
});
|
|
1920
|
-
_self[_DYN_DIAG_LOG ] = function (itemCtx) {
|
|
1921
|
-
return _getTelCtx(itemCtx)[_DYN_DIAG_LOG ]();
|
|
1922
|
-
};
|
|
1923
|
-
_self[_DYN_IS_INITIALIZED ] = function () {
|
|
1924
|
-
return _isinitialized;
|
|
1925
|
-
};
|
|
1926
|
-
_self.setInitialized = function (isInitialized) {
|
|
1927
|
-
_isinitialized = isInitialized;
|
|
1928
|
-
};
|
|
1929
|
-
_self[_DYN_SET_NEXT_PLUGIN ] = function (next) {
|
|
1930
|
-
_nextPlugin = next;
|
|
1931
|
-
};
|
|
1932
|
-
_self[_DYN_PROCESS_NEXT ] = function (env, itemCtx) {
|
|
1933
|
-
if (itemCtx) {
|
|
1934
|
-
itemCtx[_DYN_PROCESS_NEXT ](env);
|
|
1935
|
-
}
|
|
1936
|
-
else if (_nextPlugin && isFunction(_nextPlugin[STR_PROCESS_TELEMETRY ])) {
|
|
1937
|
-
_nextPlugin[STR_PROCESS_TELEMETRY ](env, null);
|
|
1938
|
-
}
|
|
1939
|
-
};
|
|
1940
|
-
_self._getTelCtx = _getTelCtx;
|
|
1941
|
-
function _getTelCtx(currentCtx) {
|
|
1942
|
-
if (currentCtx === void 0) { currentCtx = null; }
|
|
1943
|
-
var itemCtx = currentCtx;
|
|
1944
|
-
if (!itemCtx) {
|
|
1945
|
-
var rootCtx = _rootCtx || createProcessTelemetryContext(null, {}, _self[STR_CORE ]);
|
|
1946
|
-
if (_nextPlugin && _nextPlugin[strGetPlugin]) {
|
|
1947
|
-
itemCtx = rootCtx[_DYN_CREATE_NEW ](null, _nextPlugin[strGetPlugin]);
|
|
1948
|
-
}
|
|
1949
|
-
else {
|
|
1950
|
-
itemCtx = rootCtx[_DYN_CREATE_NEW ](null, _nextPlugin);
|
|
1951
|
-
}
|
|
1952
|
-
}
|
|
1953
|
-
return itemCtx;
|
|
1954
|
-
}
|
|
1955
|
-
function _setDefaults(config, core, pluginChain) {
|
|
1956
|
-
if (config) {
|
|
1957
|
-
setValue(config, STR_EXTENSION_CONFIG, [], null, isNullOrUndefined);
|
|
1958
|
-
}
|
|
1959
|
-
if (!pluginChain && core) {
|
|
1960
|
-
pluginChain = core[_DYN_GET_PROCESS_TEL_CONT0 ]()[_DYN_GET_NEXT ]();
|
|
1961
|
-
}
|
|
1962
|
-
var nextPlugin = _nextPlugin;
|
|
1963
|
-
if (_nextPlugin && _nextPlugin[strGetPlugin]) {
|
|
1964
|
-
nextPlugin = _nextPlugin[strGetPlugin]();
|
|
1965
|
-
}
|
|
1966
|
-
_self[STR_CORE ] = core;
|
|
1967
|
-
_rootCtx = createProcessTelemetryContext(pluginChain, config, core, nextPlugin);
|
|
1968
|
-
}
|
|
1969
|
-
function _initDefaults() {
|
|
1970
|
-
_isinitialized = false;
|
|
1971
|
-
_self[STR_CORE ] = null;
|
|
1972
|
-
_rootCtx = null;
|
|
1973
|
-
_nextPlugin = null;
|
|
1974
|
-
_hooks = [];
|
|
1975
|
-
_unloadHandlerContainer = createUnloadHandlerContainer();
|
|
1976
|
-
}
|
|
1977
|
-
}
|
|
1978
|
-
BaseTelemetryPlugin.__ieDyn=1;
|
|
1979
|
-
return BaseTelemetryPlugin;
|
|
1980
|
-
}());
|
|
1981
|
-
|
|
1982
|
-
var _a;
|
|
1983
|
-
var FAILED = "Failed";
|
|
1984
|
-
var FAILED_MONITOR_AJAX = FAILED + "MonitorAjax";
|
|
1985
|
-
var TRACK = "Track";
|
|
1986
|
-
var START = "Start";
|
|
1987
|
-
var STOP = "Stop";
|
|
1988
|
-
var EVENT = "Event";
|
|
1989
|
-
var AUTH_CONTEXT = "AuthContext";
|
|
1990
|
-
var EXCEPTION = "Exception";
|
|
1991
|
-
var LOCAL = "Local";
|
|
1992
|
-
var SESSION = "Session";
|
|
1993
|
-
var STORAGE = "Storage";
|
|
1994
|
-
var BROWSER = "Browser";
|
|
1995
|
-
var CANNOT = "Cannot";
|
|
1996
|
-
var BUFFER = "Buffer";
|
|
1997
|
-
var INSTRUMENTATION_KEY = "InstrumentationKey";
|
|
1998
|
-
createEnumStyle({
|
|
1999
|
-
CRITICAL: 1 ,
|
|
2000
|
-
WARNING: 2
|
|
2001
|
-
});
|
|
2002
|
-
var _InternalMessageId = createEnumStyle((_a = {},
|
|
2003
|
-
_a[BROWSER + "DoesNotSupport" + LOCAL + STORAGE] = 0 ,
|
|
2004
|
-
_a[BROWSER + CANNOT + "Read" + LOCAL + STORAGE] = 1 ,
|
|
2005
|
-
_a[BROWSER + CANNOT + "Read" + SESSION + STORAGE] = 2 ,
|
|
2006
|
-
_a[BROWSER + CANNOT + "Write" + LOCAL + STORAGE] = 3 ,
|
|
2007
|
-
_a[BROWSER + CANNOT + "Write" + SESSION + STORAGE] = 4 ,
|
|
2008
|
-
_a[BROWSER + FAILED + "RemovalFrom" + LOCAL + STORAGE] = 5 ,
|
|
2009
|
-
_a[BROWSER + FAILED + "RemovalFrom" + SESSION + STORAGE] = 6 ,
|
|
2010
|
-
_a[CANNOT + "SendEmptyTelemetry"] = 7 ,
|
|
2011
|
-
_a.ClientPerformanceMathError = 8 ,
|
|
2012
|
-
_a["ErrorParsingAI" + SESSION + "Cookie"] = 9 ,
|
|
2013
|
-
_a.ErrorPVCalc = 10 ,
|
|
2014
|
-
_a[EXCEPTION + "WhileLoggingError"] = 11 ,
|
|
2015
|
-
_a[FAILED + "AddingTelemetryTo" + BUFFER] = 12 ,
|
|
2016
|
-
_a[FAILED_MONITOR_AJAX + "Abort"] = 13 ,
|
|
2017
|
-
_a[FAILED_MONITOR_AJAX + "Dur"] = 14 ,
|
|
2018
|
-
_a[FAILED_MONITOR_AJAX + "Open"] = 15 ,
|
|
2019
|
-
_a[FAILED_MONITOR_AJAX + "RSC"] = 16 ,
|
|
2020
|
-
_a[FAILED_MONITOR_AJAX + "Send"] = 17 ,
|
|
2021
|
-
_a[FAILED_MONITOR_AJAX + "GetCorrelationHeader"] = 18 ,
|
|
2022
|
-
_a[FAILED + "ToAddHandlerForOnBeforeUnload"] = 19 ,
|
|
2023
|
-
_a[FAILED + "ToSendQueuedTelemetry"] = 20 ,
|
|
2024
|
-
_a[FAILED + "ToReportDataLoss"] = 21 ,
|
|
2025
|
-
_a["Flush" + FAILED] = 22 ,
|
|
2026
|
-
_a.MessageLimitPerPVExceeded = 23 ,
|
|
2027
|
-
_a.MissingRequiredFieldSpecification = 24 ,
|
|
2028
|
-
_a.NavigationTimingNotSupported = 25 ,
|
|
2029
|
-
_a.OnError = 26 ,
|
|
2030
|
-
_a[SESSION + "RenewalDateIsZero"] = 27 ,
|
|
2031
|
-
_a.SenderNotInitialized = 28 ,
|
|
2032
|
-
_a[START + TRACK + EVENT + FAILED] = 29 ,
|
|
2033
|
-
_a[STOP + TRACK + EVENT + FAILED] = 30 ,
|
|
2034
|
-
_a[START + TRACK + FAILED] = 31 ,
|
|
2035
|
-
_a[STOP + TRACK + FAILED] = 32 ,
|
|
2036
|
-
_a.TelemetrySampledAndNotSent = 33 ,
|
|
2037
|
-
_a[TRACK + EVENT + FAILED] = 34 ,
|
|
2038
|
-
_a[TRACK + EXCEPTION + FAILED] = 35 ,
|
|
2039
|
-
_a[TRACK + "Metric" + FAILED] = 36 ,
|
|
2040
|
-
_a[TRACK + "PV" + FAILED] = 37 ,
|
|
2041
|
-
_a[TRACK + "PV" + FAILED + "Calc"] = 38 ,
|
|
2042
|
-
_a[TRACK + "Trace" + FAILED] = 39 ,
|
|
2043
|
-
_a["Transmission" + FAILED] = 40 ,
|
|
2044
|
-
_a[FAILED + "ToSet" + STORAGE + BUFFER] = 41 ,
|
|
2045
|
-
_a[FAILED + "ToRestore" + STORAGE + BUFFER] = 42 ,
|
|
2046
|
-
_a.InvalidBackendResponse = 43 ,
|
|
2047
|
-
_a[FAILED + "ToFixDepricatedValues"] = 44 ,
|
|
2048
|
-
_a.InvalidDurationValue = 45 ,
|
|
2049
|
-
_a.TelemetryEnvelopeInvalid = 46 ,
|
|
2050
|
-
_a.CreateEnvelopeError = 47 ,
|
|
2051
|
-
_a[CANNOT + "SerializeObject"] = 48 ,
|
|
2052
|
-
_a[CANNOT + "SerializeObjectNonSerializable"] = 49 ,
|
|
2053
|
-
_a.CircularReferenceDetected = 50 ,
|
|
2054
|
-
_a["Clear" + AUTH_CONTEXT + FAILED] = 51 ,
|
|
2055
|
-
_a[EXCEPTION + "Truncated"] = 52 ,
|
|
2056
|
-
_a.IllegalCharsInName = 53 ,
|
|
2057
|
-
_a.ItemNotInArray = 54 ,
|
|
2058
|
-
_a.MaxAjaxPerPVExceeded = 55 ,
|
|
2059
|
-
_a.MessageTruncated = 56 ,
|
|
2060
|
-
_a.NameTooLong = 57 ,
|
|
2061
|
-
_a.SampleRateOutOfRange = 58 ,
|
|
2062
|
-
_a["Set" + AUTH_CONTEXT + FAILED] = 59 ,
|
|
2063
|
-
_a["Set" + AUTH_CONTEXT + FAILED + "AccountName"] = 60 ,
|
|
2064
|
-
_a.StringValueTooLong = 61 ,
|
|
2065
|
-
_a.StartCalledMoreThanOnce = 62 ,
|
|
2066
|
-
_a.StopCalledWithoutStart = 63 ,
|
|
2067
|
-
_a["TelemetryInitializer" + FAILED] = 64 ,
|
|
2068
|
-
_a.TrackArgumentsNotSpecified = 65 ,
|
|
2069
|
-
_a.UrlTooLong = 66 ,
|
|
2070
|
-
_a[SESSION + STORAGE + BUFFER + "Full"] = 67 ,
|
|
2071
|
-
_a[CANNOT + "AccessCookie"] = 68 ,
|
|
2072
|
-
_a.IdTooLong = 69 ,
|
|
2073
|
-
_a.InvalidEvent = 70 ,
|
|
2074
|
-
_a[FAILED_MONITOR_AJAX + "SetRequestHeader"] = 71 ,
|
|
2075
|
-
_a["Send" + BROWSER + "InfoOnUserInit"] = 72 ,
|
|
2076
|
-
_a["Plugin" + EXCEPTION] = 73 ,
|
|
2077
|
-
_a["Notification" + EXCEPTION] = 74 ,
|
|
2078
|
-
_a.SnippetScriptLoadFailure = 99 ,
|
|
2079
|
-
_a["Invalid" + INSTRUMENTATION_KEY] = 100 ,
|
|
2080
|
-
_a[CANNOT + "ParseAiBlobValue"] = 101 ,
|
|
2081
|
-
_a.InvalidContentBlob = 102 ,
|
|
2082
|
-
_a[TRACK + "PageAction" + EVENT + FAILED] = 103 ,
|
|
2083
|
-
_a[FAILED + "AddingCustomDefinedRequestContext"] = 104 ,
|
|
2084
|
-
_a["InMemory" + STORAGE + BUFFER + "Full"] = 105 ,
|
|
2085
|
-
_a[INSTRUMENTATION_KEY + "Deprecation"] = 106 ,
|
|
2086
|
-
_a));
|
|
2087
|
-
|
|
2088
|
-
var strNotSpecified = "not_specified";
|
|
2089
|
-
|
|
2090
|
-
var PropertiesPluginIdentifier = "AppInsightsPropertiesPlugin";
|
|
2091
|
-
|
|
2092
|
-
var _DYN_EXTENSION_CONFIG = "extensionConfig";
|
|
2093
|
-
var _DYN_PAGE_ACTION_PAGE_TAG0 = "pageActionPageTags";
|
|
2094
|
-
var _DYN_LENGTH = "length";
|
|
2095
|
-
var _DYN_TRACK_PAGE_ACTION = "trackPageAction";
|
|
2096
|
-
var _DYN_TAG_NAME = "tagName";
|
|
2097
|
-
var _DYN_TO_UPPER_CASE = "toUpperCase";
|
|
2098
|
-
var _DYN_PATHNAME = "pathname";
|
|
2099
|
-
var _DYN_PAGE_NAME = "pageName";
|
|
2100
|
-
var _DYN_CORE_DATA = "coreData";
|
|
2101
|
-
var _DYN_REQUEST_URI = "requestUri";
|
|
2102
|
-
var _DYN_GET_ATTRIBUTE = "getAttribute";
|
|
2103
|
-
var _DYN_PARENT_NODE = "parentNode";
|
|
2104
|
-
var _DYN_CUSTOM_DATA_PREFIX = "customDataPrefix";
|
|
2105
|
-
var _DYN_INDEX_OF = "indexOf";
|
|
2106
|
-
var _DYN_DATA_TAGS = "dataTags";
|
|
2107
|
-
var _DYN_USE_DEFAULT_CONTENT_1 = "useDefaultContentNameOrId";
|
|
2108
|
-
var _DYN_AI_BLOB_ATTRIBUTE_TA2 = "aiBlobAttributeTag";
|
|
2109
|
-
var _DYN_CAPTURE_ALL_META_DAT3 = "captureAllMetaDataContent";
|
|
2110
|
-
var _DYN_BEHAVIOR_VALIDATOR = "behaviorValidator";
|
|
2111
|
-
var _DYN_NAME = "name";
|
|
2112
|
-
var _DYN_DATA = "data";
|
|
2113
|
-
var _DYN_PAGE_TYPE = "pageType";
|
|
2114
|
-
var _DYN_PROPERTIES = "properties";
|
|
2115
|
-
var _DYN_ACTION_TYPE = "actionType";
|
|
2116
|
-
var _DYN_BEHAVIOR = "behavior";
|
|
2117
|
-
var _DYN_CLICK_COORDINATES = "clickCoordinates";
|
|
2118
|
-
var _DYN_CONTENT = "content";
|
|
2119
|
-
var _DYN_REF_URI = "refUri";
|
|
2120
|
-
var _DYN_PARENT_ID = "parentId";
|
|
2121
|
-
var _DYN_CAPTURE_PAGE_ACTION = "capturePageAction";
|
|
2122
|
-
var _DYN_SET_COMMON_PROPERTIE4 = "setCommonProperties";
|
|
2123
|
-
var _DYN_GET_ELEMENT_CONTENT = "getElementContent";
|
|
2124
|
-
var _DYN__GET_VALID_BEHAVIOR = "_getValidBehavior";
|
|
2125
|
-
var _DYN_CONTENT_NAME = "contentName";
|
|
2126
|
-
var _DYN__TRACE_LOGGER = "_traceLogger";
|
|
2127
|
-
var _DYN_CLICK_COORDINATE_X = "clickCoordinateX";
|
|
2128
|
-
var _DYN_CLICK_COORDINATE_Y = "clickCoordinateY";
|
|
2129
|
-
var _DYN__CONFIG = "_config";
|
|
2130
|
-
var _DYN_PARENT_DATA_TAG = "parentDataTag";
|
|
2131
|
-
var _DYN__PAGE_TAGS = "_pageTags";
|
|
2132
|
-
var _DYN__PAGE_TAGS_CALLBACK = "_pageTagsCallback";
|
|
2133
|
-
var _DYN__META_TAGS = "_metaTags";
|
|
2134
|
-
var _DYN_SET_BASIC_PROPERTIES = "setBasicProperties";
|
|
2135
|
-
var _DYN__PAGE_TYPE_META_TAG = "_pageTypeMetaTag";
|
|
2136
|
-
var _DYN__BEHAVIOR_META_TAG = "_behaviorMetaTag";
|
|
2137
|
-
var _DYN_PARENT_ELEMENT = "parentElement";
|
|
2138
|
-
var _DYN_ATTRIBUTES = "attributes";
|
|
2139
|
-
|
|
2140
|
-
var DEFAULT_DONOT_TRACK_TAG = "ai-dnt";
|
|
2141
|
-
var DEFAULT_AI_BLOB_ATTRIBUTE_TAG = "ai-blob";
|
|
2142
|
-
var DEFAULT_DATA_PREFIX = "data-";
|
|
2143
|
-
__assignFn(__assignFn({}, _InternalMessageId), createEnumStyle({
|
|
2144
|
-
CannotParseAiBlobValue: 101 ,
|
|
2145
|
-
InvalidContentBlob: 102 ,
|
|
2146
|
-
TrackPageActionEventFailed: 103
|
|
2147
|
-
}));
|
|
2148
|
-
function removeNonObjectsAndInvalidElements(overrideConfig, attributeNamesExpectedObjects) {
|
|
2149
|
-
removeInvalidElements(overrideConfig);
|
|
2150
|
-
for (var i in attributeNamesExpectedObjects) {
|
|
2151
|
-
if (hasOwnProperty(attributeNamesExpectedObjects, i)) {
|
|
2152
|
-
var objectName = attributeNamesExpectedObjects[i];
|
|
2153
|
-
if (typeof overrideConfig[objectName] === "object") {
|
|
2154
|
-
removeInvalidElements(overrideConfig[objectName]);
|
|
2155
|
-
}
|
|
2156
|
-
else {
|
|
2157
|
-
delete overrideConfig[objectName];
|
|
2158
|
-
}
|
|
2159
|
-
}
|
|
2160
|
-
}
|
|
2161
|
-
}
|
|
2162
|
-
function removeInvalidElements(object) {
|
|
2163
|
-
for (var property in object) {
|
|
2164
|
-
if (!isValueAssigned(object[property]) ||
|
|
2165
|
-
(JSON.stringify(object[property]) === "{}" && (property !== "callback"))) {
|
|
2166
|
-
delete object[property];
|
|
2167
|
-
}
|
|
2168
|
-
}
|
|
2169
|
-
}
|
|
2170
|
-
function isValueAssigned(value) {
|
|
2171
|
-
return !(isNullOrUndefined(value) || value === "");
|
|
2172
|
-
}
|
|
2173
|
-
function isRightClick(evt) {
|
|
2174
|
-
try {
|
|
2175
|
-
if ("which" in evt) {
|
|
2176
|
-
return (evt.which === 3);
|
|
2177
|
-
}
|
|
2178
|
-
else if ("button" in evt) {
|
|
2179
|
-
return (evt.button === 2);
|
|
2180
|
-
}
|
|
2181
|
-
}
|
|
2182
|
-
catch (e) {
|
|
2183
|
-
}
|
|
2184
|
-
}
|
|
2185
|
-
function isLeftClick(evt) {
|
|
2186
|
-
try {
|
|
2187
|
-
if ("which" in evt) {
|
|
2188
|
-
return (evt.which === 1);
|
|
2189
|
-
}
|
|
2190
|
-
else if ("button" in evt) {
|
|
2191
|
-
return (evt.button === 1);
|
|
2192
|
-
}
|
|
2193
|
-
}
|
|
2194
|
-
catch (e) {
|
|
2195
|
-
}
|
|
2196
|
-
}
|
|
2197
|
-
function isMiddleClick(evt) {
|
|
2198
|
-
try {
|
|
2199
|
-
if ("which" in evt) {
|
|
2200
|
-
return (evt.which === 2);
|
|
2201
|
-
}
|
|
2202
|
-
else if ("button" in evt) {
|
|
2203
|
-
return (evt.button === 4);
|
|
2204
|
-
}
|
|
2205
|
-
}
|
|
2206
|
-
catch (e) {
|
|
2207
|
-
}
|
|
2208
|
-
}
|
|
2209
|
-
function isKeyboardEnter(evt) {
|
|
2210
|
-
try {
|
|
2211
|
-
if ("keyCode" in evt) {
|
|
2212
|
-
return (evt.keyCode === 13);
|
|
2213
|
-
}
|
|
2214
|
-
}
|
|
2215
|
-
catch (e) {
|
|
2216
|
-
}
|
|
2217
|
-
}
|
|
2218
|
-
function isKeyboardSpace(evt) {
|
|
2219
|
-
try {
|
|
2220
|
-
if ("keyCode" in evt) {
|
|
2221
|
-
return (evt.keyCode === 32);
|
|
2222
|
-
}
|
|
2223
|
-
}
|
|
2224
|
-
catch (e) {
|
|
2225
|
-
}
|
|
2226
|
-
}
|
|
2227
|
-
function isElementDnt(element, doNotTrackFieldName) {
|
|
2228
|
-
var dntElement = findClosestByAttribute(element, doNotTrackFieldName);
|
|
2229
|
-
if (!isValueAssigned(dntElement)) {
|
|
2230
|
-
return false;
|
|
2231
|
-
}
|
|
2232
|
-
return true;
|
|
2233
|
-
}
|
|
2234
|
-
function findClosestByAttribute(el, attribute) {
|
|
2235
|
-
return walkUpDomChainWithElementValidation(el, isAttributeInElement, attribute);
|
|
2236
|
-
}
|
|
2237
|
-
function isAttributeInElement(element, attributeToLookFor) {
|
|
2238
|
-
var value = element[_DYN_GET_ATTRIBUTE ](attributeToLookFor);
|
|
2239
|
-
return isValueAssigned(value);
|
|
2240
|
-
}
|
|
2241
|
-
function walkUpDomChainWithElementValidation(el, validationMethod, validationMethodParam) {
|
|
2242
|
-
var element = el;
|
|
2243
|
-
if (element) {
|
|
2244
|
-
while (!validationMethod(element, validationMethodParam)) {
|
|
2245
|
-
element = element[_DYN_PARENT_NODE ];
|
|
2246
|
-
if (!element || !(element[_DYN_GET_ATTRIBUTE ])) {
|
|
2247
|
-
return null;
|
|
2248
|
-
}
|
|
2249
|
-
}
|
|
2250
|
-
return element;
|
|
2251
|
-
}
|
|
2252
|
-
}
|
|
2253
|
-
function isElementAnAnchor(element) {
|
|
2254
|
-
return element.nodeName === "A";
|
|
2255
|
-
}
|
|
2256
|
-
function findClosestAnchor(element) {
|
|
2257
|
-
return walkUpDomChainWithElementValidation(element, isElementAnAnchor);
|
|
2258
|
-
}
|
|
2259
|
-
function extractFieldFromObject(obj, fieldName) {
|
|
2260
|
-
var fieldValue;
|
|
2261
|
-
if (obj && obj[fieldName]) {
|
|
2262
|
-
fieldValue = obj[fieldName];
|
|
2263
|
-
delete obj[fieldName];
|
|
2264
|
-
}
|
|
2265
|
-
return fieldValue;
|
|
2266
|
-
}
|
|
2267
|
-
function bracketIt(str) {
|
|
2268
|
-
return "[" + str + "]";
|
|
2269
|
-
}
|
|
2270
|
-
function validateContentNamePrefix(config, defaultDataPrefix) {
|
|
2271
|
-
return isValueAssigned(config.dataTags[_DYN_CUSTOM_DATA_PREFIX ]) && (config[_DYN_DATA_TAGS ][_DYN_CUSTOM_DATA_PREFIX ][_DYN_INDEX_OF ](defaultDataPrefix) === 0);
|
|
2272
|
-
}
|
|
2273
|
-
function mergeConfig(overrideConfig) {
|
|
2274
|
-
var _a, _b, _c;
|
|
2275
|
-
var defaultConfig = (_a = {
|
|
2276
|
-
autoCapture: true,
|
|
2277
|
-
callback: (_b = {},
|
|
2278
|
-
_b[_DYN_PAGE_ACTION_PAGE_TAG0 ] = null,
|
|
2279
|
-
_b),
|
|
2280
|
-
pageTags: {},
|
|
2281
|
-
coreData: {
|
|
2282
|
-
referrerUri: hasDocument() ? getDocument().referrer : "",
|
|
2283
|
-
requestUri: "",
|
|
2284
|
-
pageName: "",
|
|
2285
|
-
pageType: ""
|
|
2286
|
-
},
|
|
2287
|
-
dataTags: (_c = {},
|
|
2288
|
-
_c[_DYN_USE_DEFAULT_CONTENT_1 ] = false,
|
|
2289
|
-
_c[_DYN_AI_BLOB_ATTRIBUTE_TA2 ] = DEFAULT_AI_BLOB_ATTRIBUTE_TAG,
|
|
2290
|
-
_c[_DYN_CUSTOM_DATA_PREFIX ] = DEFAULT_DATA_PREFIX,
|
|
2291
|
-
_c[_DYN_CAPTURE_ALL_META_DAT3 ] = false,
|
|
2292
|
-
_c.dntDataTag = DEFAULT_DONOT_TRACK_TAG,
|
|
2293
|
-
_c)
|
|
2294
|
-
},
|
|
2295
|
-
_a[_DYN_BEHAVIOR_VALIDATOR ] = function (key) { return key || ""; },
|
|
2296
|
-
_a.defaultRightClickBhvr = "",
|
|
2297
|
-
_a.dropInvalidEvents = false,
|
|
2298
|
-
_a);
|
|
2299
|
-
var attributesThatAreObjectsInConfig = [];
|
|
2300
|
-
for (var attribute in defaultConfig) {
|
|
2301
|
-
if (typeof defaultConfig[attribute] === "object") {
|
|
2302
|
-
attributesThatAreObjectsInConfig.push(attribute);
|
|
2303
|
-
}
|
|
2304
|
-
}
|
|
2305
|
-
if (overrideConfig) {
|
|
2306
|
-
removeNonObjectsAndInvalidElements(overrideConfig, attributesThatAreObjectsInConfig);
|
|
2307
|
-
if (isValueAssigned(overrideConfig[_DYN_DATA_TAGS ])) {
|
|
2308
|
-
overrideConfig.dataTags[_DYN_CUSTOM_DATA_PREFIX ] = validateContentNamePrefix(overrideConfig, DEFAULT_DATA_PREFIX) ? overrideConfig[_DYN_DATA_TAGS ][_DYN_CUSTOM_DATA_PREFIX ] : DEFAULT_DATA_PREFIX;
|
|
2309
|
-
}
|
|
2310
|
-
}
|
|
2311
|
-
return objExtend(true, defaultConfig, overrideConfig || {});
|
|
2312
|
-
}
|
|
2313
|
-
function BehaviorMapValidator(map) {
|
|
2314
|
-
return function (key) { return map[key] || ""; };
|
|
2315
|
-
}
|
|
2316
|
-
function BehaviorValueValidator(behaviorArray) {
|
|
2317
|
-
return function (key) {
|
|
2318
|
-
var result;
|
|
2319
|
-
arrForEach(behaviorArray, function (value) {
|
|
2320
|
-
if (value === key) {
|
|
2321
|
-
result = value;
|
|
2322
|
-
return -1;
|
|
2323
|
-
}
|
|
2324
|
-
});
|
|
2325
|
-
return result || "";
|
|
2326
|
-
};
|
|
2327
|
-
}
|
|
2328
|
-
function BehaviorEnumValidator(enumObj) {
|
|
2329
|
-
return function (key) { return enumObj[key] || ""; };
|
|
2330
|
-
}
|
|
2331
|
-
|
|
2332
|
-
var clickCaptureInputTypes$1 = { BUTTON: true, CHECKBOX: true, RADIO: true, RESET: true, SUBMIT: true };
|
|
2333
|
-
function getImageHref(element) {
|
|
2334
|
-
var temp = element;
|
|
2335
|
-
if (temp) {
|
|
2336
|
-
var parent = findClosestAnchor(temp);
|
|
2337
|
-
if (parent[_DYN_LENGTH ] === 1) {
|
|
2338
|
-
var firstParent = parent[0];
|
|
2339
|
-
if (firstParent.href) {
|
|
2340
|
-
return firstParent.href;
|
|
2341
|
-
}
|
|
2342
|
-
else if (firstParent.src) {
|
|
2343
|
-
return (firstParent.src);
|
|
2344
|
-
}
|
|
2345
|
-
}
|
|
2346
|
-
}
|
|
2347
|
-
return "";
|
|
2348
|
-
}
|
|
2349
|
-
function getClickTarget(element) {
|
|
2350
|
-
var clickTarget = "";
|
|
2351
|
-
switch (element[_DYN_TAG_NAME ]) {
|
|
2352
|
-
case "A":
|
|
2353
|
-
case "AREA":
|
|
2354
|
-
clickTarget = element.href || "";
|
|
2355
|
-
break;
|
|
2356
|
-
case "IMG":
|
|
2357
|
-
clickTarget = getImageHref(element);
|
|
2358
|
-
break;
|
|
2359
|
-
case "INPUT":
|
|
2360
|
-
var type = element.type;
|
|
2361
|
-
if (type && (clickCaptureInputTypes$1[type[_DYN_TO_UPPER_CASE ]()])) {
|
|
2362
|
-
var loc = getLocation() || {};
|
|
2363
|
-
if (element.form) {
|
|
2364
|
-
clickTarget = element.form.action || (loc[_DYN_PATHNAME ] || "");
|
|
2365
|
-
}
|
|
2366
|
-
else {
|
|
2367
|
-
clickTarget = loc[_DYN_PATHNAME ] || "";
|
|
2368
|
-
}
|
|
2369
|
-
}
|
|
2370
|
-
break;
|
|
2371
|
-
}
|
|
2372
|
-
return clickTarget;
|
|
2373
|
-
}
|
|
2374
|
-
function getPageName(config, overrideValues) {
|
|
2375
|
-
if (overrideValues && overrideValues[_DYN_PAGE_NAME ]) {
|
|
2376
|
-
return overrideValues[_DYN_PAGE_NAME ];
|
|
2377
|
-
}
|
|
2378
|
-
else if (config.callback && isFunction(config.callback[_DYN_PAGE_NAME ])) {
|
|
2379
|
-
return config.callback[_DYN_PAGE_NAME ]();
|
|
2380
|
-
}
|
|
2381
|
-
else if (config.coreData && config.coreData[_DYN_PAGE_NAME ]) {
|
|
2382
|
-
return config.coreData[_DYN_PAGE_NAME ];
|
|
2383
|
-
}
|
|
2384
|
-
else {
|
|
2385
|
-
var doc = getDocument();
|
|
2386
|
-
return doc && doc.title || "";
|
|
2387
|
-
}
|
|
2388
|
-
}
|
|
2389
|
-
function sanitizeUrl(config, location) {
|
|
2390
|
-
if (!location) {
|
|
2391
|
-
return null;
|
|
2392
|
-
}
|
|
2393
|
-
var url = location.protocol + "//" + (location.hostname || location.host) +
|
|
2394
|
-
(isValueAssigned(location.port) ? ":" + location.port : "") +
|
|
2395
|
-
location[_DYN_PATHNAME ];
|
|
2396
|
-
if (!!config.urlCollectHash) {
|
|
2397
|
-
url += (isValueAssigned(location.hash) ? location.hash : "");
|
|
2398
|
-
}
|
|
2399
|
-
if (!!config.urlCollectQuery) {
|
|
2400
|
-
url += (isValueAssigned(location.search) ? location.search : "");
|
|
2401
|
-
}
|
|
2402
|
-
return url;
|
|
2403
|
-
}
|
|
2404
|
-
function getUri(config, location) {
|
|
2405
|
-
if (config[_DYN_CORE_DATA ] && config[_DYN_CORE_DATA ][_DYN_REQUEST_URI ] && config[_DYN_CORE_DATA ][_DYN_REQUEST_URI ] !== "") {
|
|
2406
|
-
return config[_DYN_CORE_DATA ][_DYN_REQUEST_URI ];
|
|
2407
|
-
}
|
|
2408
|
-
return sanitizeUrl(config, location);
|
|
2409
|
-
}
|
|
2410
|
-
|
|
2411
|
-
var WebEvent = /** @class */ (function () {
|
|
2412
|
-
function WebEvent(clickAnalyticsPlugin, config, contentHandler, pageTagsCallback, metaTags, traceLogger) {
|
|
2413
|
-
dynamicProto(WebEvent, this, function (_self) {
|
|
2414
|
-
_initDefaults();
|
|
2415
|
-
function _initDefaults() {
|
|
2416
|
-
_self[_DYN__PAGE_TAGS ] = {};
|
|
2417
|
-
_self._clickAnalyticsPlugin = clickAnalyticsPlugin;
|
|
2418
|
-
_self[_DYN__CONFIG ] = config;
|
|
2419
|
-
_self._contentHandler = contentHandler;
|
|
2420
|
-
_self[_DYN__PAGE_TAGS_CALLBACK ] = pageTagsCallback;
|
|
2421
|
-
_self[_DYN__META_TAGS ] = metaTags;
|
|
2422
|
-
_self[_DYN__TRACE_LOGGER ] = traceLogger;
|
|
2423
|
-
}
|
|
2424
|
-
_self[_DYN_SET_BASIC_PROPERTIES ] = function (event, overrideValues) {
|
|
2425
|
-
if (!isValueAssigned(event[_DYN_NAME ])) {
|
|
2426
|
-
event[_DYN_PAGE_NAME ] = getPageName(_self[_DYN__CONFIG ], overrideValues);
|
|
2427
|
-
}
|
|
2428
|
-
if (!isValueAssigned(event.uri) && hasWindow()) {
|
|
2429
|
-
event.uri = getUri(_self[_DYN__CONFIG ], getLocation());
|
|
2430
|
-
}
|
|
2431
|
-
};
|
|
2432
|
-
_self[_DYN_SET_COMMON_PROPERTIE4 ] = function (event, overrideValues) {
|
|
2433
|
-
_self[_DYN_SET_BASIC_PROPERTIES ](event, overrideValues);
|
|
2434
|
-
_self._setPageTags(event, overrideValues);
|
|
2435
|
-
_self._pageTypeMetaTag = _getMetaData(_self._metaTags, _self._config[_DYN_CORE_DATA ], "pageType");
|
|
2436
|
-
_self._behaviorMetaTag = _getMetaData(_self._metaTags, _self._config[_DYN_CORE_DATA ], "behavior");
|
|
2437
|
-
if (isValueAssigned(overrideValues[_DYN_PAGE_TYPE ])) {
|
|
2438
|
-
event[_DYN_PAGE_TYPE ] = overrideValues[_DYN_PAGE_TYPE ];
|
|
2439
|
-
}
|
|
2440
|
-
if (isValueAssigned(_self._pageTypeMetaTag) && !isValueAssigned(event[_DYN_PAGE_TYPE ])) {
|
|
2441
|
-
event[_DYN_PAGE_TYPE ] = _self[_DYN__PAGE_TYPE_META_TAG ];
|
|
2442
|
-
}
|
|
2443
|
-
};
|
|
2444
|
-
_self._setPageTags = function (event, overrideValues) {
|
|
2445
|
-
if (_self[_DYN__PAGE_TAGS_CALLBACK ]) {
|
|
2446
|
-
_self[_DYN__PAGE_TAGS ] = objExtend(true, _self[_DYN__PAGE_TAGS ], _self[_DYN__PAGE_TAGS_CALLBACK ]());
|
|
2447
|
-
}
|
|
2448
|
-
if (isValueAssigned(overrideValues.pageTags)) {
|
|
2449
|
-
_self[_DYN__PAGE_TAGS ] = objExtend(true, _self[_DYN__PAGE_TAGS ], overrideValues.pageTags);
|
|
2450
|
-
}
|
|
2451
|
-
if (_self[_DYN__META_TAGS ]) {
|
|
2452
|
-
_self[_DYN__PAGE_TAGS ].metaTags = {};
|
|
2453
|
-
for (var metaTag in _self[_DYN__META_TAGS ]) {
|
|
2454
|
-
if (metaTag != "behavior" && metaTag != "market" && metaTag != "pageType") {
|
|
2455
|
-
_self[_DYN__PAGE_TAGS ].metaTags[metaTag] = _self[_DYN__META_TAGS ][metaTag];
|
|
2456
|
-
}
|
|
2457
|
-
}
|
|
2458
|
-
}
|
|
2459
|
-
event[_DYN_PROPERTIES ] = event[_DYN_PROPERTIES ] || {};
|
|
2460
|
-
event[_DYN_PROPERTIES ]["pageTags"] = _self[_DYN__PAGE_TAGS ];
|
|
2461
|
-
};
|
|
2462
|
-
_self._getBehavior = function (overrideValues) {
|
|
2463
|
-
var behavior;
|
|
2464
|
-
if (overrideValues && isValueAssigned(overrideValues[_DYN_BEHAVIOR ])) {
|
|
2465
|
-
behavior = overrideValues[_DYN_BEHAVIOR ];
|
|
2466
|
-
}
|
|
2467
|
-
else if (isValueAssigned(_self[_DYN__BEHAVIOR_META_TAG ])) {
|
|
2468
|
-
behavior = _self[_DYN__BEHAVIOR_META_TAG ];
|
|
2469
|
-
}
|
|
2470
|
-
return _self[_DYN__GET_VALID_BEHAVIOR ](behavior);
|
|
2471
|
-
};
|
|
2472
|
-
_self[_DYN__GET_VALID_BEHAVIOR ] = function (behavior) {
|
|
2473
|
-
return _self._config[_DYN_BEHAVIOR_VALIDATOR ](behavior);
|
|
2474
|
-
};
|
|
2475
|
-
_self._doUnload = function (unloadCtx, unloadState, asyncCallback) {
|
|
2476
|
-
_initDefaults();
|
|
2477
|
-
};
|
|
2478
|
-
function _getMetaData(metaTags, coreData, metaTagName) {
|
|
2479
|
-
if (coreData && coreData[metaTagName]) {
|
|
2480
|
-
return coreData[metaTagName];
|
|
2481
|
-
}
|
|
2482
|
-
if (metaTags) {
|
|
2483
|
-
return metaTags[metaTagName];
|
|
2484
|
-
}
|
|
2485
|
-
return "";
|
|
2486
|
-
}
|
|
2487
|
-
});
|
|
2488
|
-
}
|
|
2489
|
-
WebEvent.__ieDyn=1;
|
|
2490
|
-
return WebEvent;
|
|
2491
|
-
}());
|
|
2492
|
-
|
|
2493
|
-
var PageAction = /** @class */ (function (_super) {
|
|
2494
|
-
__extendsFn(PageAction, _super);
|
|
2495
|
-
function PageAction(clickAnalyticsPlugin, config, contentHandler, pageTagsCallback, metaTags, traceLogger) {
|
|
2496
|
-
var _this = _super.call(this, clickAnalyticsPlugin, config, contentHandler, pageTagsCallback, metaTags, traceLogger) || this;
|
|
2497
|
-
dynamicProto(PageAction, _this, function (_self, _base) {
|
|
2498
|
-
_self[_DYN_TRACK_PAGE_ACTION ] = function (pageActionEvent, properties) {
|
|
2499
|
-
var ext = {};
|
|
2500
|
-
ext["web"] = {};
|
|
2501
|
-
var event = {
|
|
2502
|
-
name: "Microsoft.ApplicationInsights.{0}.Event",
|
|
2503
|
-
baseType: "EventData",
|
|
2504
|
-
ext: ext,
|
|
2505
|
-
data: {},
|
|
2506
|
-
baseData: {}
|
|
2507
|
-
};
|
|
2508
|
-
_populateEventDataIfPresent(event.baseData, "name", pageActionEvent[_DYN_NAME ]);
|
|
2509
|
-
_populateEventDataIfPresent(event[_DYN_DATA ], "baseTypeSource", "ClickEvent");
|
|
2510
|
-
_populateEventDataIfPresent(event[_DYN_DATA ], "uri", pageActionEvent.uri);
|
|
2511
|
-
_populateEventDataIfPresent(event[_DYN_DATA ], "pageType", pageActionEvent[_DYN_PAGE_TYPE ]);
|
|
2512
|
-
_populateEventDataIfPresent(event[_DYN_DATA ], "properties", pageActionEvent[_DYN_PROPERTIES ]);
|
|
2513
|
-
_populateEventDataIfPresent(event[_DYN_DATA ], "actionType", pageActionEvent[_DYN_ACTION_TYPE ]);
|
|
2514
|
-
_populateEventDataIfPresent(event[_DYN_DATA ], "behavior", pageActionEvent[_DYN_BEHAVIOR ]);
|
|
2515
|
-
_populateEventDataIfPresent(event[_DYN_DATA ], "clickCoordinates", pageActionEvent[_DYN_CLICK_COORDINATES ]);
|
|
2516
|
-
_populateEventDataIfPresent(event[_DYN_DATA ], "content", pageActionEvent[_DYN_CONTENT ]);
|
|
2517
|
-
_populateEventDataIfPresent(event[_DYN_DATA ], "targetUri", pageActionEvent.targetUri);
|
|
2518
|
-
_populateEventDataIfPresent(event[_DYN_DATA ], "timeToAction", pageActionEvent.timeToAction);
|
|
2519
|
-
_populateEventDataIfPresent(event[_DYN_DATA ], "refUri", pageActionEvent[_DYN_REF_URI ]);
|
|
2520
|
-
_populateEventDataIfPresent(event.data, "pageName", pageActionEvent[_DYN_PAGE_NAME ]);
|
|
2521
|
-
_populateEventDataIfPresent(event[_DYN_DATA ], "parentId", pageActionEvent[_DYN_PARENT_ID ]);
|
|
2522
|
-
if (properties) {
|
|
2523
|
-
objForEachKey(properties, function (property, value) {
|
|
2524
|
-
if (!event[_DYN_DATA ][property]) {
|
|
2525
|
-
_populateEventDataIfPresent(event[_DYN_DATA ], property, value);
|
|
2526
|
-
}
|
|
2527
|
-
});
|
|
2528
|
-
}
|
|
2529
|
-
_self._clickAnalyticsPlugin.core.track(event);
|
|
2530
|
-
};
|
|
2531
|
-
_self[_DYN_CAPTURE_PAGE_ACTION ] = function (element, overrideValues, customProperties, isRightClick) {
|
|
2532
|
-
overrideValues = !isValueAssigned(overrideValues) ? {} : overrideValues;
|
|
2533
|
-
var pageActionEvent = { name: "" };
|
|
2534
|
-
var pageActionProperties = isValueAssigned(customProperties) ? customProperties : {};
|
|
2535
|
-
_self[_DYN_SET_COMMON_PROPERTIE4 ](pageActionEvent, overrideValues);
|
|
2536
|
-
pageActionEvent[_DYN_BEHAVIOR ] = _self._getBehavior(overrideValues);
|
|
2537
|
-
var elementContent = {};
|
|
2538
|
-
if (isRightClick) {
|
|
2539
|
-
pageActionEvent[_DYN_BEHAVIOR ] = _self[_DYN__CONFIG ].defaultRightClickBhvr;
|
|
2540
|
-
}
|
|
2541
|
-
if (element) {
|
|
2542
|
-
pageActionEvent.targetUri = getClickTarget(element);
|
|
2543
|
-
elementContent = _self._contentHandler[_DYN_GET_ELEMENT_CONTENT ](element);
|
|
2544
|
-
if (elementContent.bhvr && !isValueAssigned(overrideValues[_DYN_BEHAVIOR ])) {
|
|
2545
|
-
var currentBehavior = extractFieldFromObject(elementContent, "bhvr");
|
|
2546
|
-
pageActionEvent[_DYN_BEHAVIOR ] = _self[_DYN__GET_VALID_BEHAVIOR ](currentBehavior);
|
|
2547
|
-
}
|
|
2548
|
-
if (!isValueAssigned(elementContent.id) && !isValueAssigned(elementContent[_DYN_CONTENT_NAME ])) {
|
|
2549
|
-
_throwInternal(_self[_DYN__TRACE_LOGGER ], 2 , 102 , "Missing attributes id or contentName in click event. Click event information will still be collected!");
|
|
2550
|
-
}
|
|
2551
|
-
}
|
|
2552
|
-
pageActionEvent[_DYN_NAME ] = elementContent.id || elementContent[_DYN_CONTENT_NAME ] || strNotSpecified;
|
|
2553
|
-
pageActionEvent[_DYN_PARENT_ID ] = elementContent.parentid || elementContent.parentName || strNotSpecified;
|
|
2554
|
-
if (isValueAssigned(overrideValues[_DYN_ACTION_TYPE ])) {
|
|
2555
|
-
pageActionEvent[_DYN_ACTION_TYPE ] = overrideValues[_DYN_ACTION_TYPE ];
|
|
2556
|
-
}
|
|
2557
|
-
if (isValueAssigned(overrideValues[_DYN_CLICK_COORDINATE_X ]) && isValueAssigned(overrideValues[_DYN_CLICK_COORDINATE_Y ])) {
|
|
2558
|
-
pageActionEvent[_DYN_CLICK_COORDINATES ] = overrideValues[_DYN_CLICK_COORDINATE_X ] + "X" + overrideValues[_DYN_CLICK_COORDINATE_Y ];
|
|
2559
|
-
}
|
|
2560
|
-
_sanitizePageActionEventContent(elementContent);
|
|
2561
|
-
pageActionEvent[_DYN_CONTENT ] = bracketIt(JSON.stringify(objExtend(elementContent, overrideValues && overrideValues.contentTags ? overrideValues.contentTags : {})));
|
|
2562
|
-
pageActionEvent.timeToAction = _getTimeToClick();
|
|
2563
|
-
pageActionEvent.refUri = isValueAssigned(overrideValues.refUri) ? overrideValues.refUri : _self._config[_DYN_CORE_DATA ].referrerUri;
|
|
2564
|
-
if (_isUndefinedEvent(pageActionEvent)) {
|
|
2565
|
-
return;
|
|
2566
|
-
}
|
|
2567
|
-
_self[_DYN_TRACK_PAGE_ACTION ](pageActionEvent, pageActionProperties);
|
|
2568
|
-
};
|
|
2569
|
-
function _getTimeToClick() {
|
|
2570
|
-
var perf = getPerformance();
|
|
2571
|
-
if (perf && perf.timing) {
|
|
2572
|
-
var isNavigationStart = perf.timing.navigationStart;
|
|
2573
|
-
if (isNavigationStart && isNavigationStart !== 0) {
|
|
2574
|
-
return new Date().getTime() - isNavigationStart;
|
|
2575
|
-
}
|
|
2576
|
-
}
|
|
2577
|
-
return -1;
|
|
2578
|
-
}
|
|
2579
|
-
function _populateEventDataIfPresent(obj, property, value) {
|
|
2580
|
-
if (isValueAssigned(value)) {
|
|
2581
|
-
obj[property] = value;
|
|
2582
|
-
}
|
|
2583
|
-
}
|
|
2584
|
-
function _sanitizePageActionEventContent(pageActionContent) {
|
|
2585
|
-
if (pageActionContent) {
|
|
2586
|
-
delete pageActionContent.id;
|
|
2587
|
-
delete pageActionContent.parentid;
|
|
2588
|
-
delete pageActionContent.parentname;
|
|
2589
|
-
if (_self._config && _self._config[_DYN_DATA_TAGS ] && isValueAssigned(_self[_DYN__CONFIG ][_DYN_DATA_TAGS ][_DYN_PARENT_DATA_TAG ])) {
|
|
2590
|
-
delete pageActionContent[_self._config[_DYN_DATA_TAGS ].parentDataTag];
|
|
2591
|
-
}
|
|
2592
|
-
}
|
|
2593
|
-
}
|
|
2594
|
-
function _isUndefinedEvent(pageActionEvent) {
|
|
2595
|
-
if (_self[_DYN__CONFIG ].dropInvalidEvents) {
|
|
2596
|
-
if (pageActionEvent[_DYN_NAME ] === strNotSpecified
|
|
2597
|
-
&& pageActionEvent[_DYN_PARENT_ID ] === strNotSpecified
|
|
2598
|
-
&& pageActionEvent[_DYN_CONTENT ] === "[{}]") {
|
|
2599
|
-
return true;
|
|
2600
|
-
}
|
|
2601
|
-
}
|
|
2602
|
-
return false;
|
|
2603
|
-
}
|
|
2604
|
-
});
|
|
2605
|
-
return _this;
|
|
2606
|
-
}
|
|
2607
|
-
PageAction.__ieDyn=1;
|
|
2608
|
-
return PageAction;
|
|
2609
|
-
}(WebEvent));
|
|
2610
|
-
|
|
2611
|
-
var ActionType = {
|
|
2612
|
-
CLICKLEFT: "CL",
|
|
2613
|
-
CLICKRIGHT: "CR",
|
|
2614
|
-
CLICKMIDDLE: "CM",
|
|
2615
|
-
SCROLL: "S",
|
|
2616
|
-
ZOOM: "Z",
|
|
2617
|
-
RESIZE: "R",
|
|
2618
|
-
KEYBOARDENTER: "KE",
|
|
2619
|
-
KEYBOARDSPACE: "KS",
|
|
2620
|
-
OTHER: "O"
|
|
2621
|
-
};
|
|
2622
|
-
|
|
2623
|
-
var clickCaptureInputTypes = { BUTTON: true, CHECKBOX: true, RADIO: true, RESET: true, SUBMIT: true };
|
|
2624
|
-
var AutoCaptureHandler = /** @class */ (function () {
|
|
2625
|
-
function AutoCaptureHandler(_analyticsPlugin, _config, _pageAction, _traceLogger) {
|
|
2626
|
-
this._analyticsPlugin = _analyticsPlugin;
|
|
2627
|
-
this._config = _config;
|
|
2628
|
-
this._pageAction = _pageAction;
|
|
2629
|
-
this._traceLogger = _traceLogger;
|
|
2630
|
-
var _evtNamespace = mergeEvtNamespace(createUniqueNamespace("AutoCaptureHandler"), _analyticsPlugin._evtNamespace);
|
|
2631
|
-
dynamicProto(AutoCaptureHandler, this, function (_self) {
|
|
2632
|
-
_self.click = function () {
|
|
2633
|
-
var win = getWindow();
|
|
2634
|
-
var doc = getDocument();
|
|
2635
|
-
if (win) {
|
|
2636
|
-
var event_1 = (navigator.appVersion[_DYN_INDEX_OF ]("MSIE") !== -1) ? "click" : "mousedown";
|
|
2637
|
-
eventOn(win, event_1, _processClick, _evtNamespace);
|
|
2638
|
-
eventOn(win, "keyup", _processClick, _evtNamespace);
|
|
2639
|
-
}
|
|
2640
|
-
else if (doc) {
|
|
2641
|
-
eventOn(doc, "click", _processClick, _evtNamespace);
|
|
2642
|
-
eventOn(doc, "keyup", _processClick, _evtNamespace);
|
|
2643
|
-
}
|
|
2644
|
-
};
|
|
2645
|
-
_self._doUnload = function (unloadCtx, unloadState, asyncCallback) {
|
|
2646
|
-
eventOff(getWindow(), null, null, _evtNamespace);
|
|
2647
|
-
eventOff(getDocument(), null, null, _evtNamespace);
|
|
2648
|
-
};
|
|
2649
|
-
function _capturePageAction(element, overrideValues, customProperties, isRightClick) {
|
|
2650
|
-
var donotTrackTag = _self._config.dataTags[_DYN_CUSTOM_DATA_PREFIX ] + _self[_DYN__CONFIG ][_DYN_DATA_TAGS ].dntDataTag;
|
|
2651
|
-
if (!isElementDnt(element, donotTrackTag)) {
|
|
2652
|
-
_self._pageAction[_DYN_CAPTURE_PAGE_ACTION ](element, overrideValues, customProperties, isRightClick);
|
|
2653
|
-
}
|
|
2654
|
-
}
|
|
2655
|
-
function _processClick(clickEvent) {
|
|
2656
|
-
var _a;
|
|
2657
|
-
var clickCaptureElements = { A: true, BUTTON: true, AREA: true, INPUT: true };
|
|
2658
|
-
var win = getWindow();
|
|
2659
|
-
if (isNullOrUndefined(clickEvent) && win) {
|
|
2660
|
-
clickEvent = win.event;
|
|
2661
|
-
}
|
|
2662
|
-
if (clickEvent) {
|
|
2663
|
-
var element = clickEvent.srcElement || clickEvent.target;
|
|
2664
|
-
var overrideValues = (_a = {},
|
|
2665
|
-
_a[_DYN_CLICK_COORDINATE_X ] = clickEvent.pageX,
|
|
2666
|
-
_a[_DYN_CLICK_COORDINATE_Y ] = clickEvent.pageY,
|
|
2667
|
-
_a);
|
|
2668
|
-
var isRightClickObj = isRightClick(clickEvent);
|
|
2669
|
-
if (isRightClickObj) {
|
|
2670
|
-
overrideValues[_DYN_ACTION_TYPE ] = ActionType.CLICKRIGHT;
|
|
2671
|
-
}
|
|
2672
|
-
else if (isLeftClick(clickEvent)) {
|
|
2673
|
-
overrideValues[_DYN_ACTION_TYPE ] = ActionType.CLICKLEFT;
|
|
2674
|
-
}
|
|
2675
|
-
else if (isKeyboardEnter(clickEvent)) {
|
|
2676
|
-
overrideValues[_DYN_ACTION_TYPE ] = ActionType.KEYBOARDENTER;
|
|
2677
|
-
}
|
|
2678
|
-
else if (isKeyboardSpace(clickEvent)) {
|
|
2679
|
-
overrideValues[_DYN_ACTION_TYPE ] = ActionType.KEYBOARDSPACE;
|
|
2680
|
-
}
|
|
2681
|
-
else if (isMiddleClick(clickEvent)) {
|
|
2682
|
-
overrideValues[_DYN_ACTION_TYPE ] = ActionType.CLICKMIDDLE;
|
|
2683
|
-
}
|
|
2684
|
-
else {
|
|
2685
|
-
return;
|
|
2686
|
-
}
|
|
2687
|
-
while (element && element[_DYN_TAG_NAME ]) {
|
|
2688
|
-
if (element.control && clickCaptureElements[element.control[_DYN_TAG_NAME ][_DYN_TO_UPPER_CASE ]()]) {
|
|
2689
|
-
element = element.control;
|
|
2690
|
-
}
|
|
2691
|
-
var tagNameUpperCased = element[_DYN_TAG_NAME ][_DYN_TO_UPPER_CASE ]();
|
|
2692
|
-
if (!clickCaptureElements[tagNameUpperCased]) {
|
|
2693
|
-
element = element.parentElement || element[_DYN_PARENT_NODE ];
|
|
2694
|
-
continue;
|
|
2695
|
-
}
|
|
2696
|
-
else {
|
|
2697
|
-
var sendEvent = tagNameUpperCased === "INPUT" ? clickCaptureInputTypes[element.type[_DYN_TO_UPPER_CASE ]()] : true;
|
|
2698
|
-
if (sendEvent) {
|
|
2699
|
-
_capturePageAction(element, overrideValues, {}, isRightClickObj);
|
|
2700
|
-
}
|
|
2701
|
-
break;
|
|
2702
|
-
}
|
|
2703
|
-
}
|
|
2704
|
-
}
|
|
2705
|
-
}
|
|
2706
|
-
});
|
|
2707
|
-
}
|
|
2708
|
-
AutoCaptureHandler.__ieDyn=1;
|
|
2709
|
-
return AutoCaptureHandler;
|
|
2710
|
-
}());
|
|
2711
|
-
|
|
2712
|
-
var MAX_CONTENTNAME_LENGTH = 200;
|
|
2713
|
-
var DomContentHandler = /** @class */ (function () {
|
|
2714
|
-
function DomContentHandler(_config, _traceLogger) {
|
|
2715
|
-
this._config = _config;
|
|
2716
|
-
this._traceLogger = _traceLogger;
|
|
2717
|
-
dynamicProto(DomContentHandler, this, function (_self) {
|
|
2718
|
-
_self.getMetadata = function () {
|
|
2719
|
-
var dataTags = (_self._config || {})[_DYN_DATA_TAGS ];
|
|
2720
|
-
var metaTags = {};
|
|
2721
|
-
if (hasDocument()) {
|
|
2722
|
-
metaTags = isValueAssigned(dataTags.metaDataPrefix) ? _getMetaDataFromDOM(dataTags[_DYN_CAPTURE_ALL_META_DAT3 ], dataTags.metaDataPrefix, false) :
|
|
2723
|
-
_getMetaDataFromDOM(dataTags[_DYN_CAPTURE_ALL_META_DAT3 ], "", false);
|
|
2724
|
-
}
|
|
2725
|
-
return metaTags;
|
|
2726
|
-
};
|
|
2727
|
-
_self[_DYN_GET_ELEMENT_CONTENT ] = function (element) {
|
|
2728
|
-
if (!element) {
|
|
2729
|
-
return {};
|
|
2730
|
-
}
|
|
2731
|
-
var dataTags = (_self._config || {})[_DYN_DATA_TAGS ];
|
|
2732
|
-
var elementContent = {};
|
|
2733
|
-
var biBlobValue;
|
|
2734
|
-
var parentDataTagPrefix;
|
|
2735
|
-
var dataTagPrefix = dataTags[_DYN_CUSTOM_DATA_PREFIX ];
|
|
2736
|
-
var aiBlobAttributeTag = dataTagPrefix + dataTags[_DYN_AI_BLOB_ATTRIBUTE_TA2 ];
|
|
2737
|
-
if (isValueAssigned(dataTags[_DYN_PARENT_DATA_TAG ])) {
|
|
2738
|
-
parentDataTagPrefix = dataTagPrefix + dataTags[_DYN_PARENT_DATA_TAG ];
|
|
2739
|
-
}
|
|
2740
|
-
if (!_isTracked(element, dataTagPrefix, aiBlobAttributeTag)) {
|
|
2741
|
-
biBlobValue = element[_DYN_GET_ATTRIBUTE ](aiBlobAttributeTag);
|
|
2742
|
-
if (biBlobValue) {
|
|
2743
|
-
try {
|
|
2744
|
-
elementContent = JSON.parse(biBlobValue);
|
|
2745
|
-
}
|
|
2746
|
-
catch (e) {
|
|
2747
|
-
_throwInternal(_self[_DYN__TRACE_LOGGER ], 1 , 101 , "Can not parse " + biBlobValue);
|
|
2748
|
-
}
|
|
2749
|
-
}
|
|
2750
|
-
else {
|
|
2751
|
-
elementContent = objExtend(elementContent, _populateElementContent(element, dataTagPrefix, parentDataTagPrefix, aiBlobAttributeTag));
|
|
2752
|
-
}
|
|
2753
|
-
}
|
|
2754
|
-
else {
|
|
2755
|
-
elementContent = objExtend(elementContent, _populateElementContentwithDataTag(element, dataTagPrefix, parentDataTagPrefix, aiBlobAttributeTag));
|
|
2756
|
-
}
|
|
2757
|
-
removeInvalidElements(elementContent);
|
|
2758
|
-
if (parentDataTagPrefix) {
|
|
2759
|
-
elementContent = objExtend(elementContent, _getParentDetails(element, elementContent, dataTagPrefix, aiBlobAttributeTag));
|
|
2760
|
-
}
|
|
2761
|
-
return elementContent;
|
|
2762
|
-
};
|
|
2763
|
-
function _captureElementContentWithDataTag(contentElement, elementContent, dataTagPrefix) {
|
|
2764
|
-
for (var i = 0, attrib; i < contentElement.attributes[_DYN_LENGTH ]; i++) {
|
|
2765
|
-
attrib = contentElement[_DYN_ATTRIBUTES ][i];
|
|
2766
|
-
if (attrib.name[_DYN_INDEX_OF ](dataTagPrefix) !== 0) {
|
|
2767
|
-
continue;
|
|
2768
|
-
}
|
|
2769
|
-
var attribName = attrib[_DYN_NAME ].replace(dataTagPrefix, "");
|
|
2770
|
-
elementContent[attribName] = attrib.value;
|
|
2771
|
-
}
|
|
2772
|
-
}
|
|
2773
|
-
function _walkUpDomChainCaptureData(el, elementContent, dataTagPrefix, parentDataTagPrefix, aiBlobAttributeTag) {
|
|
2774
|
-
var element = el;
|
|
2775
|
-
var parentDataTagFound = false;
|
|
2776
|
-
var elementLevelFlag = false;
|
|
2777
|
-
while (!isNullOrUndefined(element) && !isNullOrUndefined(element[_DYN_ATTRIBUTES ])) {
|
|
2778
|
-
var attributes = element[_DYN_ATTRIBUTES ];
|
|
2779
|
-
for (var i = 0; i < attributes[_DYN_LENGTH ]; i++) {
|
|
2780
|
-
var attrib = attributes[i];
|
|
2781
|
-
if (attrib.name[_DYN_INDEX_OF ](dataTagPrefix) !== 0) {
|
|
2782
|
-
continue;
|
|
2783
|
-
}
|
|
2784
|
-
if (attrib.name[_DYN_INDEX_OF ](parentDataTagPrefix) === 0) {
|
|
2785
|
-
parentDataTagFound = true;
|
|
2786
|
-
}
|
|
2787
|
-
if (attrib.name[_DYN_INDEX_OF ](aiBlobAttributeTag) === 0) {
|
|
2788
|
-
continue;
|
|
2789
|
-
}
|
|
2790
|
-
var attribName = attrib[_DYN_NAME ].replace(dataTagPrefix, "");
|
|
2791
|
-
if (elementLevelFlag && attribName === "id") {
|
|
2792
|
-
continue;
|
|
2793
|
-
}
|
|
2794
|
-
if (!isValueAssigned(elementContent[attribName])) {
|
|
2795
|
-
elementContent[attribName] = attrib.value;
|
|
2796
|
-
}
|
|
2797
|
-
}
|
|
2798
|
-
if (parentDataTagFound) {
|
|
2799
|
-
break;
|
|
2800
|
-
}
|
|
2801
|
-
elementLevelFlag = true;
|
|
2802
|
-
element = element[_DYN_PARENT_NODE ];
|
|
2803
|
-
}
|
|
2804
|
-
}
|
|
2805
|
-
function _populateElementContent(element, dataTagPrefix, parentDataTagPrefix, aiBlobAttributeTag) {
|
|
2806
|
-
var elementContent = {};
|
|
2807
|
-
if (!element) {
|
|
2808
|
-
return elementContent;
|
|
2809
|
-
}
|
|
2810
|
-
var htmlContent = _getHtmlIdAndContentName(element);
|
|
2811
|
-
elementContent = {
|
|
2812
|
-
id: htmlContent.id || "",
|
|
2813
|
-
contentName: htmlContent[_DYN_CONTENT_NAME ] || ""
|
|
2814
|
-
};
|
|
2815
|
-
if (isValueAssigned(parentDataTagPrefix)) {
|
|
2816
|
-
_walkUpDomChainCaptureData(element, elementContent, dataTagPrefix, parentDataTagPrefix, aiBlobAttributeTag);
|
|
2817
|
-
}
|
|
2818
|
-
if (!elementContent.id && !elementContent[_DYN_CONTENT_NAME ]) {
|
|
2819
|
-
_throwInternal(_traceLogger, 2 , 102 , "Invalid content blob. Missing required attributes (id, contentName. " +
|
|
2820
|
-
" Content information will still be collected!");
|
|
2821
|
-
}
|
|
2822
|
-
return elementContent;
|
|
2823
|
-
}
|
|
2824
|
-
function _populateElementContentwithDataTag(element, dataTagPrefix, parentDataTagPrefix, aiBlobAttributeTag) {
|
|
2825
|
-
var dataTags = (_self._config || {})[_DYN_DATA_TAGS ];
|
|
2826
|
-
var elementContent = {};
|
|
2827
|
-
if (!element) {
|
|
2828
|
-
return elementContent;
|
|
2829
|
-
}
|
|
2830
|
-
var htmlContent = _getHtmlIdAndContentName(element);
|
|
2831
|
-
if (isValueAssigned(parentDataTagPrefix)) {
|
|
2832
|
-
_walkUpDomChainCaptureData(element, elementContent, dataTagPrefix, parentDataTagPrefix, aiBlobAttributeTag);
|
|
2833
|
-
}
|
|
2834
|
-
else {
|
|
2835
|
-
_captureElementContentWithDataTag(element, elementContent, dataTagPrefix);
|
|
2836
|
-
}
|
|
2837
|
-
if (dataTags[_DYN_USE_DEFAULT_CONTENT_1 ]) {
|
|
2838
|
-
if (!isValueAssigned(elementContent.id)) {
|
|
2839
|
-
elementContent.id = htmlContent.id || "";
|
|
2840
|
-
}
|
|
2841
|
-
elementContent[_DYN_CONTENT_NAME ] = htmlContent[_DYN_CONTENT_NAME ] || "";
|
|
2842
|
-
}
|
|
2843
|
-
if (!elementContent.id && !elementContent[_DYN_CONTENT_NAME ]) {
|
|
2844
|
-
_throwInternal(_traceLogger, 2 , 102 , "Invalid content blob. Missing required attributes (id, contentName. " +
|
|
2845
|
-
" Content information will still be collected!");
|
|
2846
|
-
}
|
|
2847
|
-
return elementContent;
|
|
2848
|
-
}
|
|
2849
|
-
function _getMetaDataFromDOM(captureAllMetaDataContent, prefix, removePrefix) {
|
|
2850
|
-
var metaElements;
|
|
2851
|
-
var metaData = {};
|
|
2852
|
-
if (hasDocument()) {
|
|
2853
|
-
metaElements = getDocument().querySelectorAll("meta");
|
|
2854
|
-
for (var i = 0; i < metaElements[_DYN_LENGTH ]; i++) {
|
|
2855
|
-
var meta = metaElements[i];
|
|
2856
|
-
if (meta[_DYN_NAME ]) {
|
|
2857
|
-
if (captureAllMetaDataContent || meta.name[_DYN_INDEX_OF ](prefix) === 0) {
|
|
2858
|
-
var name_1 = removePrefix ? meta[_DYN_NAME ].replace(prefix, "") : meta[_DYN_NAME ];
|
|
2859
|
-
metaData[name_1] = meta[_DYN_CONTENT ];
|
|
2860
|
-
}
|
|
2861
|
-
}
|
|
2862
|
-
}
|
|
2863
|
-
}
|
|
2864
|
-
return metaData;
|
|
2865
|
-
}
|
|
2866
|
-
function _getDefaultContentName(element, useDefaultContentName) {
|
|
2867
|
-
if (useDefaultContentName === false || !element[_DYN_TAG_NAME ]) {
|
|
2868
|
-
return "";
|
|
2869
|
-
}
|
|
2870
|
-
var doc = getDocument() || {};
|
|
2871
|
-
var contentName;
|
|
2872
|
-
switch (element[_DYN_TAG_NAME ]) {
|
|
2873
|
-
case "A":
|
|
2874
|
-
contentName = doc.all ? element.innerText || element.innerHTML : element.text || element.innerHTML;
|
|
2875
|
-
break;
|
|
2876
|
-
case "IMG":
|
|
2877
|
-
case "AREA":
|
|
2878
|
-
contentName = element.alt;
|
|
2879
|
-
break;
|
|
2880
|
-
default:
|
|
2881
|
-
contentName = element.value || element[_DYN_NAME ] || element.alt || element.innerText || element.id;
|
|
2882
|
-
}
|
|
2883
|
-
return contentName.substring(0, MAX_CONTENTNAME_LENGTH);
|
|
2884
|
-
}
|
|
2885
|
-
function _isTracked(element, dataTag, aiBlobAttributeTag) {
|
|
2886
|
-
var attrs = element[_DYN_ATTRIBUTES ];
|
|
2887
|
-
var dataTagFound = false;
|
|
2888
|
-
for (var i = 0; i < attrs[_DYN_LENGTH ]; i++) {
|
|
2889
|
-
var attributeName = attrs[i][_DYN_NAME ];
|
|
2890
|
-
if (attributeName === aiBlobAttributeTag) {
|
|
2891
|
-
return false;
|
|
2892
|
-
}
|
|
2893
|
-
else if (attributeName[_DYN_INDEX_OF ](dataTag) === 0) {
|
|
2894
|
-
dataTagFound = true;
|
|
2895
|
-
}
|
|
2896
|
-
}
|
|
2897
|
-
return dataTagFound;
|
|
2898
|
-
}
|
|
2899
|
-
function _getHtmlIdAndContentName(element) {
|
|
2900
|
-
var dataTags = (_self._config || {})[_DYN_DATA_TAGS ];
|
|
2901
|
-
var callback = (_self[_DYN__CONFIG ] || {}).callback;
|
|
2902
|
-
var htmlContent = {};
|
|
2903
|
-
if (!element) {
|
|
2904
|
-
return htmlContent;
|
|
2905
|
-
}
|
|
2906
|
-
if (dataTags[_DYN_USE_DEFAULT_CONTENT_1 ]) {
|
|
2907
|
-
var customizedContentName = callback.contentName ? callback.contentName(element, dataTags[_DYN_USE_DEFAULT_CONTENT_1 ]) : "";
|
|
2908
|
-
var defaultContentName = _getDefaultContentName(element, dataTags[_DYN_USE_DEFAULT_CONTENT_1 ]);
|
|
2909
|
-
htmlContent = {
|
|
2910
|
-
id: element.id,
|
|
2911
|
-
contentName: customizedContentName || defaultContentName || element[_DYN_GET_ATTRIBUTE ]("alt")
|
|
2912
|
-
};
|
|
2913
|
-
}
|
|
2914
|
-
return htmlContent;
|
|
2915
|
-
}
|
|
2916
|
-
function _getParentDetails(element, elementContent, dataTagPrefix, aiBlobAttributeTag) {
|
|
2917
|
-
var parentId = elementContent["parentid"];
|
|
2918
|
-
var parentName = elementContent["parentname"];
|
|
2919
|
-
var parentInfo = {};
|
|
2920
|
-
if (parentId || parentName || !element) {
|
|
2921
|
-
return parentInfo;
|
|
2922
|
-
}
|
|
2923
|
-
return _populateParentInfo(element, dataTagPrefix, aiBlobAttributeTag);
|
|
2924
|
-
}
|
|
2925
|
-
function _populateParentInfo(element, dataTagPrefix, aiBlobAttributeTag) {
|
|
2926
|
-
var parentInfo = {};
|
|
2927
|
-
var parentId;
|
|
2928
|
-
var closestParentElement = walkUpDomChainWithElementValidation(element[_DYN_PARENT_ELEMENT ], _isTracked, dataTagPrefix);
|
|
2929
|
-
if (closestParentElement) {
|
|
2930
|
-
var dataAttr = closestParentElement[_DYN_GET_ATTRIBUTE ](aiBlobAttributeTag) || element[aiBlobAttributeTag];
|
|
2931
|
-
if (dataAttr) {
|
|
2932
|
-
try {
|
|
2933
|
-
var telemetryObject = JSON.parse(dataAttr);
|
|
2934
|
-
}
|
|
2935
|
-
catch (e) {
|
|
2936
|
-
_throwInternal(_traceLogger, 1 , 101 , "Can not parse " + dataAttr);
|
|
2937
|
-
}
|
|
2938
|
-
if (telemetryObject) {
|
|
2939
|
-
parentId = telemetryObject.id;
|
|
2940
|
-
}
|
|
2941
|
-
}
|
|
2942
|
-
else {
|
|
2943
|
-
parentId = closestParentElement[_DYN_GET_ATTRIBUTE ](dataTagPrefix + "id");
|
|
2944
|
-
}
|
|
2945
|
-
}
|
|
2946
|
-
if (parentId) {
|
|
2947
|
-
parentInfo["parentid"] = parentId;
|
|
2948
|
-
}
|
|
2949
|
-
else {
|
|
2950
|
-
var htmlContent = _getHtmlIdAndContentName(element[_DYN_PARENT_ELEMENT ]);
|
|
2951
|
-
parentInfo["parentid"] = htmlContent.id;
|
|
2952
|
-
parentInfo["parentname"] = htmlContent[_DYN_CONTENT_NAME ];
|
|
2953
|
-
}
|
|
2954
|
-
return parentInfo;
|
|
2955
|
-
}
|
|
2956
|
-
});
|
|
2957
|
-
}
|
|
2958
|
-
DomContentHandler.__ieDyn=1;
|
|
2959
|
-
return DomContentHandler;
|
|
2960
|
-
}());
|
|
2961
|
-
|
|
2962
|
-
var ClickAnalyticsPlugin = /** @class */ (function (_super) {
|
|
2963
|
-
__extendsFn(ClickAnalyticsPlugin, _super);
|
|
2964
|
-
function ClickAnalyticsPlugin() {
|
|
2965
|
-
var _this = _super.call(this) || this;
|
|
2966
|
-
_this.identifier = "ClickAnalyticsPlugin";
|
|
2967
|
-
_this.priority = 181;
|
|
2968
|
-
var _config;
|
|
2969
|
-
var _pageAction;
|
|
2970
|
-
var _autoCaptureHandler;
|
|
2971
|
-
var _contentHandler;
|
|
2972
|
-
dynamicProto(ClickAnalyticsPlugin, _this, function (_self, _base) {
|
|
2973
|
-
var _identifier = _self.identifier;
|
|
2974
|
-
_initDefaults();
|
|
2975
|
-
_self.initialize = function (config, core, extensions, pluginChain) {
|
|
2976
|
-
if (isNullOrUndefined(core)) {
|
|
2977
|
-
throwError("Error initializing");
|
|
2978
|
-
}
|
|
2979
|
-
config[_DYN_EXTENSION_CONFIG ] = config[_DYN_EXTENSION_CONFIG ] || [];
|
|
2980
|
-
config[_DYN_EXTENSION_CONFIG ][_identifier] = config[_DYN_EXTENSION_CONFIG ][_identifier] || {};
|
|
2981
|
-
_config = mergeConfig(config[_DYN_EXTENSION_CONFIG ][_identifier]);
|
|
2982
|
-
_super.prototype.initialize.call(_this, config, core, extensions, pluginChain);
|
|
2983
|
-
var logger = _self.diagLog();
|
|
2984
|
-
_contentHandler = _contentHandler ? _contentHandler : new DomContentHandler(_config, logger);
|
|
2985
|
-
var metaTags = _contentHandler.getMetadata();
|
|
2986
|
-
_pageAction = new PageAction(_self, _config, _contentHandler, _config.callback[_DYN_PAGE_ACTION_PAGE_TAG0 ], metaTags, logger);
|
|
2987
|
-
_autoCaptureHandler = _autoCaptureHandler ? _autoCaptureHandler : new AutoCaptureHandler(_self, _config, _pageAction, logger);
|
|
2988
|
-
if (_config.autoCapture) {
|
|
2989
|
-
_autoCaptureHandler.click();
|
|
2990
|
-
}
|
|
2991
|
-
var _propertiesExtension;
|
|
2992
|
-
arrForEach(extensions, function (extension) {
|
|
2993
|
-
if (extension.identifier === PropertiesPluginIdentifier) {
|
|
2994
|
-
_propertiesExtension = extension;
|
|
2995
|
-
}
|
|
2996
|
-
});
|
|
2997
|
-
if (_propertiesExtension && _propertiesExtension.context && _propertiesExtension.context.internal) {
|
|
2998
|
-
var theVersion = _propertiesExtension.context.internal.sdkVersion;
|
|
2999
|
-
if (theVersion) {
|
|
3000
|
-
theVersion += "_ClickPlugin" + ClickAnalyticsPlugin.Version;
|
|
3001
|
-
if (theVersion[_DYN_LENGTH ] > 64) {
|
|
3002
|
-
theVersion = strTrim(theVersion.substring(0, 64));
|
|
3003
|
-
}
|
|
3004
|
-
_propertiesExtension.context.internal.sdkVersion = theVersion;
|
|
3005
|
-
}
|
|
3006
|
-
}
|
|
3007
|
-
};
|
|
3008
|
-
_self.processTelemetry = function (env, itemCtx) {
|
|
3009
|
-
_self.processNext(env, itemCtx);
|
|
3010
|
-
};
|
|
3011
|
-
_self[_DYN_TRACK_PAGE_ACTION ] = function (pageAction, customProperties) {
|
|
3012
|
-
try {
|
|
3013
|
-
_pageAction[_DYN_TRACK_PAGE_ACTION ](pageAction, customProperties);
|
|
3014
|
-
}
|
|
3015
|
-
catch (e) {
|
|
3016
|
-
_throwInternal(_self.diagLog(), 1 , 103 , "trackPageAction failed, page action event will not be collected: " + getExceptionName(e), { exception: dumpObj(e) });
|
|
3017
|
-
}
|
|
3018
|
-
};
|
|
3019
|
-
_self._doTeardown = function (unloadCtx, unloadState, asyncCallback) {
|
|
3020
|
-
return unloadComponents([
|
|
3021
|
-
_autoCaptureHandler,
|
|
3022
|
-
_contentHandler,
|
|
3023
|
-
_pageAction
|
|
3024
|
-
], unloadCtx, unloadState);
|
|
3025
|
-
};
|
|
3026
|
-
});
|
|
3027
|
-
function _initDefaults() {
|
|
3028
|
-
_config = null;
|
|
3029
|
-
_pageAction = null;
|
|
3030
|
-
_autoCaptureHandler = null;
|
|
3031
|
-
_contentHandler = null;
|
|
3032
|
-
}
|
|
3033
|
-
return _this;
|
|
3034
|
-
}
|
|
3035
|
-
ClickAnalyticsPlugin.Version = "2.8.15-nightly.2307-12";
|
|
3036
|
-
return ClickAnalyticsPlugin;
|
|
3037
|
-
}(BaseTelemetryPlugin));
|
|
3038
|
-
|
|
3039
|
-
exports.BehaviorEnumValidator = BehaviorEnumValidator;
|
|
3040
|
-
exports.BehaviorMapValidator = BehaviorMapValidator;
|
|
3041
|
-
exports.BehaviorValueValidator = BehaviorValueValidator;
|
|
3042
|
-
exports.ClickAnalyticsPlugin = ClickAnalyticsPlugin;
|
|
3043
|
-
|
|
3044
|
-
(function(obj, prop, descriptor) { /* ai_es3_polyfil defineProperty */ var func = Object["defineProperty"]; if (func) { try { return func(obj, prop, descriptor); } catch(e) { /* IE8 defines defineProperty, but will throw */ } } if (descriptor && typeof descriptor.value !== undefined) { obj[prop] = descriptor.value; } return obj; })(exports, '__esModule', { value: true });
|
|
3045
|
-
|
|
3046
|
-
})(this.Microsoft.ApplicationInsights = this.Microsoft.ApplicationInsights || {});
|
|
3047
|
-
//# sourceMappingURL=ai.clck.2.8.15-nightly.2307-12.gbl.js.map
|