@microsoft/applicationinsights-clickanalytics-js 2.8.0-beta.2203-09 → 2.8.0-beta.2203-10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/browser/{ai.clck.2.8.0-beta.2203-09.cjs.js → ai.clck.2.8.0-beta.2203-10.cjs.js} +36 -16
- package/browser/ai.clck.2.8.0-beta.2203-10.cjs.js.map +1 -0
- package/browser/{ai.clck.2.8.0-beta.2203-09.cjs.min.js → ai.clck.2.8.0-beta.2203-10.cjs.min.js} +3 -3
- package/browser/ai.clck.2.8.0-beta.2203-10.cjs.min.js.map +1 -0
- package/browser/{ai.clck.2.8.0-beta.2203-09.gbl.js → ai.clck.2.8.0-beta.2203-10.gbl.js} +36 -16
- package/browser/ai.clck.2.8.0-beta.2203-10.gbl.js.map +1 -0
- package/browser/{ai.clck.2.8.0-beta.2203-09.gbl.min.js → ai.clck.2.8.0-beta.2203-10.gbl.min.js} +3 -3
- package/browser/ai.clck.2.8.0-beta.2203-10.gbl.min.js.map +1 -0
- package/browser/ai.clck.2.8.0-beta.2203-10.integrity.json +66 -0
- package/browser/{ai.clck.2.8.0-beta.2203-09.js → ai.clck.2.8.0-beta.2203-10.js} +36 -16
- package/browser/ai.clck.2.8.0-beta.2203-10.js.map +1 -0
- package/browser/{ai.clck.2.8.0-beta.2203-09.min.js → ai.clck.2.8.0-beta.2203-10.min.js} +3 -3
- package/browser/ai.clck.2.8.0-beta.2203-10.min.js.map +1 -0
- package/browser/ai.clck.2.cjs.js +35 -15
- 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 +35 -15
- 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 +35 -15
- 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 +35 -15
- 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 +4 -2
- package/dist-esm/DataCollector.js.map +1 -1
- package/dist-esm/Enums.js +1 -1
- package/dist-esm/Interfaces/Datamodel.js +1 -1
- package/dist-esm/applicationinsights-clickanalytics-js.js +1 -1
- package/dist-esm/common/Utils.js +1 -1
- package/dist-esm/events/PageAction.js +5 -3
- package/dist-esm/events/PageAction.js.map +1 -1
- package/dist-esm/events/WebEvent.js +2 -2
- package/dist-esm/events/WebEvent.js.map +1 -1
- package/dist-esm/handlers/AutoCaptureHandler.js +13 -5
- package/dist-esm/handlers/AutoCaptureHandler.js.map +1 -1
- package/dist-esm/handlers/DomContentHandler.js +12 -8
- package/dist-esm/handlers/DomContentHandler.js.map +1 -1
- package/package.json +4 -4
- package/src/ClickAnalyticsPlugin.ts +3 -3
- package/src/DataCollector.ts +24 -22
- package/src/Interfaces/Datamodel.ts +3 -3
- package/src/common/Utils.ts +8 -8
- package/src/events/PageAction.ts +5 -2
- package/src/events/WebEvent.ts +3 -4
- package/src/handlers/AutoCaptureHandler.ts +13 -5
- package/src/handlers/DomContentHandler.ts +24 -17
- package/types/Interfaces/Datamodel.d.ts +4 -4
- package/types/handlers/DomContentHandler.d.ts +2 -2
- package/browser/ai.clck.2.8.0-beta.2203-09.cjs.js.map +0 -1
- package/browser/ai.clck.2.8.0-beta.2203-09.cjs.min.js.map +0 -1
- package/browser/ai.clck.2.8.0-beta.2203-09.gbl.js.map +0 -1
- package/browser/ai.clck.2.8.0-beta.2203-09.gbl.min.js.map +0 -1
- package/browser/ai.clck.2.8.0-beta.2203-09.integrity.json +0 -66
- package/browser/ai.clck.2.8.0-beta.2203-09.js.map +0 -1
- package/browser/ai.clck.2.8.0-beta.2203-09.min.js.map +0 -1
|
@@ -146,7 +146,7 @@ export interface IAutoCaptureHandler {
|
|
|
146
146
|
click: () => void;
|
|
147
147
|
}
|
|
148
148
|
|
|
149
|
-
|
|
149
|
+
export interface IPageActionOverrideValues extends IOverrideValues {
|
|
150
150
|
/**
|
|
151
151
|
* Uri of the referrer page
|
|
152
152
|
*/
|
|
@@ -177,7 +177,7 @@ export interface IAutoCaptureHandler {
|
|
|
177
177
|
contentTags?: any;
|
|
178
178
|
}
|
|
179
179
|
|
|
180
|
-
|
|
180
|
+
/**
|
|
181
181
|
* Override values interface
|
|
182
182
|
*/
|
|
183
183
|
export interface IOverrideValues {
|
|
@@ -223,7 +223,7 @@ export interface IContent {
|
|
|
223
223
|
[name: string]: string | number | boolean | string[] | number[] | boolean[] | object | undefined;
|
|
224
224
|
}
|
|
225
225
|
|
|
226
|
-
|
|
226
|
+
/**
|
|
227
227
|
* Content handler interface
|
|
228
228
|
*/
|
|
229
229
|
export interface IContentHandler {
|
package/src/common/Utils.ts
CHANGED
|
@@ -342,18 +342,18 @@ export function mergeConfig(overrideConfig: IClickAnalyticsConfiguration): IClic
|
|
|
342
342
|
};
|
|
343
343
|
|
|
344
344
|
let attributesThatAreObjectsInConfig: any[] = [];
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
}
|
|
345
|
+
for (const attribute in defaultConfig) {
|
|
346
|
+
if (typeof defaultConfig[attribute] === "object") {
|
|
347
|
+
attributesThatAreObjectsInConfig.push(attribute);
|
|
349
348
|
}
|
|
349
|
+
}
|
|
350
350
|
|
|
351
351
|
if (overrideConfig) {
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
352
|
+
// delete attributes that should be object and
|
|
353
|
+
// delete properties that are null, undefined, ''
|
|
354
|
+
removeNonObjectsAndInvalidElements(overrideConfig, attributesThatAreObjectsInConfig);
|
|
355
355
|
if(isValueAssigned(overrideConfig.dataTags)) {
|
|
356
|
-
|
|
356
|
+
overrideConfig.dataTags.customDataPrefix = validateContentNamePrefix(overrideConfig, DEFAULT_DATA_PREFIX) ? overrideConfig.dataTags.customDataPrefix : DEFAULT_DATA_PREFIX;
|
|
357
357
|
}
|
|
358
358
|
return extend(true, defaultConfig, overrideConfig);
|
|
359
359
|
}
|
package/src/events/PageAction.ts
CHANGED
|
@@ -114,7 +114,9 @@ export class PageAction extends WebEvent {
|
|
|
114
114
|
|
|
115
115
|
pageActionEvent.timeToAction = this._getTimeToClick();
|
|
116
116
|
pageActionEvent.refUri = isValueAssigned(overrideValues.refUri) ? overrideValues.refUri : this._config.coreData.referrerUri;
|
|
117
|
-
if(this._isUndefinedEvent(pageActionEvent))
|
|
117
|
+
if(this._isUndefinedEvent(pageActionEvent)) {
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
118
120
|
this.trackPageAction(pageActionEvent, pageActionProperties);
|
|
119
121
|
}
|
|
120
122
|
|
|
@@ -151,8 +153,9 @@ export class PageAction extends WebEvent {
|
|
|
151
153
|
if(this._config.dropInvalidEvents) {
|
|
152
154
|
if(pageActionEvent.name === strNotSpecified
|
|
153
155
|
&& pageActionEvent.parentId === strNotSpecified
|
|
154
|
-
&& pageActionEvent.content === "[{}]")
|
|
156
|
+
&& pageActionEvent.content === "[{}]") {
|
|
155
157
|
return true;
|
|
158
|
+
}
|
|
156
159
|
}
|
|
157
160
|
return false;
|
|
158
161
|
}
|
package/src/events/WebEvent.ts
CHANGED
|
@@ -98,16 +98,15 @@ export class WebEvent {
|
|
|
98
98
|
// If override specified
|
|
99
99
|
if (overrideValues && isValueAssigned(overrideValues.behavior)) {
|
|
100
100
|
behavior = overrideValues.behavior;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
else if (isValueAssigned(this._behaviorMetaTag)) {
|
|
101
|
+
} else if (isValueAssigned(this._behaviorMetaTag)) {
|
|
102
|
+
// If behavior meta tag available
|
|
104
103
|
behavior = this._behaviorMetaTag;
|
|
105
104
|
}
|
|
106
105
|
return this._getValidBehavior(behavior);
|
|
107
106
|
}
|
|
108
107
|
|
|
109
108
|
protected _getValidBehavior(behavior: string | number): string | number {
|
|
110
|
-
|
|
109
|
+
return this._config.behaviorValidator(behavior);
|
|
111
110
|
}
|
|
112
111
|
|
|
113
112
|
/**
|
|
@@ -17,7 +17,7 @@ export class AutoCaptureHandler implements IAutoCaptureHandler {
|
|
|
17
17
|
* @param analyticsPlugin - WebAnalytics plugin
|
|
18
18
|
* @param traceLogger - Trace logger to log to console.
|
|
19
19
|
*/
|
|
20
|
-
|
|
20
|
+
constructor(protected _analyticsPlugin: ClickAnalyticsPlugin, protected _config: IClickAnalyticsConfiguration, protected _pageAction: PageAction,
|
|
21
21
|
protected _traceLogger: IDiagnosticLogger) {
|
|
22
22
|
|
|
23
23
|
}
|
|
@@ -28,13 +28,21 @@ export class AutoCaptureHandler implements IAutoCaptureHandler {
|
|
|
28
28
|
if (win) {
|
|
29
29
|
// IE9 onwards addEventListener is available, 'click' event captures mouse click. mousedown works on other browsers
|
|
30
30
|
const event = (navigator.appVersion.indexOf("MSIE") !== -1) ? "click" : "mousedown";
|
|
31
|
-
attachEvent(win, event , (evt:any) => {
|
|
32
|
-
|
|
31
|
+
attachEvent(win, event , (evt:any) => {
|
|
32
|
+
this._processClick(evt);
|
|
33
|
+
});
|
|
34
|
+
attachEvent(win, "keyup" , (evt:any) => {
|
|
35
|
+
this._processClick(evt);
|
|
36
|
+
});
|
|
33
37
|
} else if (doc) {
|
|
34
38
|
// IE8 and below doesn't have addEventListener so it will use attachEvent
|
|
35
39
|
// attaching to window does not work in IE8
|
|
36
|
-
attachEvent(doc, "click" , (evt:any) => {
|
|
37
|
-
|
|
40
|
+
attachEvent(doc, "click" , (evt:any) => {
|
|
41
|
+
this._processClick(evt);
|
|
42
|
+
});
|
|
43
|
+
attachEvent(doc, "keyup" , (evt:any) => {
|
|
44
|
+
this._processClick(evt);
|
|
45
|
+
});
|
|
38
46
|
}
|
|
39
47
|
}
|
|
40
48
|
|
|
@@ -30,7 +30,7 @@ export class DomContentHandler implements IContentHandler {
|
|
|
30
30
|
let metaTags = {};
|
|
31
31
|
if (hasDocument) {
|
|
32
32
|
metaTags = isValueAssigned(this._config.dataTags.metaDataPrefix) ? this._getMetaDataFromDOM(this._config.dataTags.captureAllMetaDataContent ,this._config.dataTags.metaDataPrefix, false) :
|
|
33
|
-
|
|
33
|
+
this._getMetaDataFromDOM(this._config.dataTags.captureAllMetaDataContent ,"", false);
|
|
34
34
|
}
|
|
35
35
|
return metaTags;
|
|
36
36
|
}
|
|
@@ -126,7 +126,9 @@ export class DomContentHandler implements IContentHandler {
|
|
|
126
126
|
continue;
|
|
127
127
|
}
|
|
128
128
|
const attribName = attrib.name.replace(dataTagPrefix, "");
|
|
129
|
-
if(elementLevelFlag && attribName ==="id")
|
|
129
|
+
if(elementLevelFlag && attribName ==="id") {
|
|
130
|
+
continue;
|
|
131
|
+
} // skip capturing id if not at the first level.
|
|
130
132
|
if(!isValueAssigned(elementContent[attribName])) {
|
|
131
133
|
elementContent[attribName] = attrib.value;
|
|
132
134
|
}
|
|
@@ -141,13 +143,15 @@ export class DomContentHandler implements IContentHandler {
|
|
|
141
143
|
}
|
|
142
144
|
}
|
|
143
145
|
|
|
144
|
-
|
|
146
|
+
/**
|
|
145
147
|
* Capture Element content along with Data Tag attributes and values
|
|
146
148
|
*/
|
|
147
149
|
private _populateElementContent(element: Element, dataTagPrefix: string, parentDataTagPrefix: string, aiBlobAttributeTag: string) {
|
|
148
150
|
|
|
149
151
|
let elementContent: any = {};
|
|
150
|
-
if(!element)
|
|
152
|
+
if(!element) {
|
|
153
|
+
return elementContent;
|
|
154
|
+
}
|
|
151
155
|
|
|
152
156
|
let htmlContent = this._getHtmlIdAndContentName(element);
|
|
153
157
|
elementContent = {
|
|
@@ -180,7 +184,9 @@ export class DomContentHandler implements IContentHandler {
|
|
|
180
184
|
private _populateElementContentwithDataTag(element: Element, dataTagPrefix: string, parentDataTagPrefix: string, aiBlobAttributeTag: string) {
|
|
181
185
|
|
|
182
186
|
let elementContent: any = {};
|
|
183
|
-
if(!element)
|
|
187
|
+
if(!element) {
|
|
188
|
+
return elementContent;
|
|
189
|
+
}
|
|
184
190
|
|
|
185
191
|
|
|
186
192
|
let htmlContent = this._getHtmlIdAndContentName(element);
|
|
@@ -255,15 +261,15 @@ export class DomContentHandler implements IContentHandler {
|
|
|
255
261
|
var doc = getDocument() || ({} as Document);
|
|
256
262
|
var contentName;
|
|
257
263
|
switch (element.tagName) {
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
264
|
+
case "A":
|
|
265
|
+
contentName = doc.all ? element.innerText || element.innerHTML : element.text || element.innerHTML;
|
|
266
|
+
break;
|
|
267
|
+
case "IMG":
|
|
268
|
+
case "AREA":
|
|
269
|
+
contentName = element.alt;
|
|
270
|
+
break;
|
|
271
|
+
default:
|
|
272
|
+
contentName = element.value || element.name || element.alt || element.innerText || element.id;
|
|
267
273
|
}
|
|
268
274
|
|
|
269
275
|
return contentName.substring(0, MAX_CONTENTNAME_LENGTH);
|
|
@@ -291,7 +297,9 @@ export class DomContentHandler implements IContentHandler {
|
|
|
291
297
|
|
|
292
298
|
private _getHtmlIdAndContentName(element:Element) {
|
|
293
299
|
let htmlContent: any = {};
|
|
294
|
-
if(!element)
|
|
300
|
+
if(!element) {
|
|
301
|
+
return htmlContent;
|
|
302
|
+
}
|
|
295
303
|
|
|
296
304
|
if (this._config.dataTags.useDefaultContentNameOrId) {
|
|
297
305
|
const customizedContentName = this._config.callback.contentName ? this._config.callback.contentName(element, this._config.dataTags.useDefaultContentNameOrId) : "";
|
|
@@ -353,8 +361,7 @@ export class DomContentHandler implements IContentHandler {
|
|
|
353
361
|
}
|
|
354
362
|
if (parentId) {
|
|
355
363
|
parentInfo["parentid"] = parentId;
|
|
356
|
-
}
|
|
357
|
-
else {
|
|
364
|
+
} else {
|
|
358
365
|
let htmlContent= this._getHtmlIdAndContentName(element.parentElement);
|
|
359
366
|
parentInfo["parentid"] = htmlContent.id;
|
|
360
367
|
parentInfo["parentname"] = htmlContent.contentName;
|
|
@@ -169,8 +169,8 @@ export interface IPageActionOverrideValues extends IOverrideValues {
|
|
|
169
169
|
contentTags?: any;
|
|
170
170
|
}
|
|
171
171
|
/**
|
|
172
|
-
|
|
173
|
-
|
|
172
|
+
* Override values interface
|
|
173
|
+
*/
|
|
174
174
|
export interface IOverrideValues {
|
|
175
175
|
/**
|
|
176
176
|
* One of the awa.behavior values.
|
|
@@ -213,8 +213,8 @@ export interface IContent {
|
|
|
213
213
|
[name: string]: string | number | boolean | string[] | number[] | boolean[] | object | undefined;
|
|
214
214
|
}
|
|
215
215
|
/**
|
|
216
|
-
|
|
217
|
-
|
|
216
|
+
* Content handler interface
|
|
217
|
+
*/
|
|
218
218
|
export interface IContentHandler {
|
|
219
219
|
/**
|
|
220
220
|
* Get meta data
|
|
@@ -32,8 +32,8 @@ export declare class DomContentHandler implements IContentHandler {
|
|
|
32
32
|
*/
|
|
33
33
|
private _walkUpDomChainCaptureData;
|
|
34
34
|
/**
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
* Capture Element content along with Data Tag attributes and values
|
|
36
|
+
*/
|
|
37
37
|
private _populateElementContent;
|
|
38
38
|
/**
|
|
39
39
|
* Capture Element content along with Data Tag attributes and values
|