@microsoft/applicationinsights-clickanalytics-js 3.4.6-nightly3.2610-15 → 3.4.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/README.md +8 -0
  2. package/browser/es5/{ai.clck.3.4.6-nightly3.2610-15.cjs.js → ai.clck.3.4.6.cjs.js} +27 -21
  3. package/browser/es5/ai.clck.3.4.6.cjs.js.map +1 -0
  4. package/browser/es5/ai.clck.3.4.6.cjs.min.js +6 -0
  5. package/browser/es5/ai.clck.3.4.6.cjs.min.js.map +1 -0
  6. package/browser/es5/{ai.clck.3.4.6-nightly3.2610-15.gbl.js → ai.clck.3.4.6.gbl.js} +29 -23
  7. package/browser/es5/ai.clck.3.4.6.gbl.js.map +1 -0
  8. package/browser/es5/ai.clck.3.4.6.gbl.min.js +6 -0
  9. package/browser/es5/ai.clck.3.4.6.gbl.min.js.map +1 -0
  10. package/browser/es5/ai.clck.3.4.6.integrity.json +66 -0
  11. package/browser/es5/{ai.clck.3.4.6-nightly3.2610-15.js → ai.clck.3.4.6.js} +29 -23
  12. package/browser/es5/ai.clck.3.4.6.js.map +1 -0
  13. package/browser/es5/ai.clck.3.4.6.min.js +6 -0
  14. package/browser/es5/ai.clck.3.4.6.min.js.map +1 -0
  15. package/browser/es5/ai.clck.3.cjs.js +26 -20
  16. package/browser/es5/ai.clck.3.cjs.js.map +1 -1
  17. package/browser/es5/ai.clck.3.cjs.min.js +2 -2
  18. package/browser/es5/ai.clck.3.cjs.min.js.map +1 -1
  19. package/browser/es5/ai.clck.3.gbl.js +28 -22
  20. package/browser/es5/ai.clck.3.gbl.js.map +1 -1
  21. package/browser/es5/ai.clck.3.gbl.min.js +2 -2
  22. package/browser/es5/ai.clck.3.gbl.min.js.map +1 -1
  23. package/browser/es5/ai.clck.3.integrity.json +25 -25
  24. package/browser/es5/ai.clck.3.js +28 -22
  25. package/browser/es5/ai.clck.3.js.map +1 -1
  26. package/browser/es5/ai.clck.3.min.js +2 -2
  27. package/browser/es5/ai.clck.3.min.js.map +1 -1
  28. package/dist/es5/applicationinsights-clickanalytics-js.js +26 -20
  29. package/dist/es5/applicationinsights-clickanalytics-js.js.map +1 -1
  30. package/dist/es5/applicationinsights-clickanalytics-js.min.js +2 -2
  31. package/dist/es5/applicationinsights-clickanalytics-js.min.js.map +1 -1
  32. package/dist-es5/Behaviours.js +1 -1
  33. package/dist-es5/ClickAnalyticsPlugin.js +5 -7
  34. package/dist-es5/ClickAnalyticsPlugin.js.map +1 -1
  35. package/dist-es5/DataCollector.js +3 -3
  36. package/dist-es5/DataCollector.js.map +1 -1
  37. package/dist-es5/Enums.js +1 -1
  38. package/dist-es5/Interfaces/Datamodel.js +1 -1
  39. package/dist-es5/__DynamicConstants.js +3 -4
  40. package/dist-es5/__DynamicConstants.js.map +1 -1
  41. package/dist-es5/applicationinsights-clickanalytics-js.js +1 -1
  42. package/dist-es5/common/Utils.js +1 -1
  43. package/dist-es5/events/PageAction.js +1 -1
  44. package/dist-es5/events/WebEvent.js +1 -1
  45. package/dist-es5/handlers/AutoCaptureHandler.js +13 -8
  46. package/dist-es5/handlers/AutoCaptureHandler.js.map +1 -1
  47. package/dist-es5/handlers/DomContentHandler.js +11 -4
  48. package/dist-es5/handlers/DomContentHandler.js.map +1 -1
  49. package/package.json +70 -73
  50. package/types/applicationinsights-clickanalytics-js.d.ts +12 -1
  51. package/types/applicationinsights-clickanalytics-js.namespaced.d.ts +23 -1
  52. package/browser/es5/ai.clck.3.4.6-nightly3.2610-15.cjs.js.map +0 -1
  53. package/browser/es5/ai.clck.3.4.6-nightly3.2610-15.cjs.min.js +0 -6
  54. package/browser/es5/ai.clck.3.4.6-nightly3.2610-15.cjs.min.js.map +0 -1
  55. package/browser/es5/ai.clck.3.4.6-nightly3.2610-15.gbl.js.map +0 -1
  56. package/browser/es5/ai.clck.3.4.6-nightly3.2610-15.gbl.min.js +0 -6
  57. package/browser/es5/ai.clck.3.4.6-nightly3.2610-15.gbl.min.js.map +0 -1
  58. package/browser/es5/ai.clck.3.4.6-nightly3.2610-15.integrity.json +0 -66
  59. package/browser/es5/ai.clck.3.4.6-nightly3.2610-15.js.map +0 -1
  60. package/browser/es5/ai.clck.3.4.6-nightly3.2610-15.min.js +0 -6
  61. package/browser/es5/ai.clck.3.4.6-nightly3.2610-15.min.js.map +0 -1
package/README.md CHANGED
@@ -130,6 +130,14 @@ appInsights.loadAppInsights();
130
130
  | [behaviorValidator](https://microsoft.github.io/ApplicationInsights-JS/webSdk/applicationinsights-clickanalytics-js/interfaces/IClickAnalyticsConfiguration.html#behaviorValidator) | Function | null | Callback function to use for the `data-*-bhvr` value validation. For more information, go to [behaviorValidator section](#behaviorvalidator).|
131
131
  | [defaultRightClickBhvr](https://microsoft.github.io/ApplicationInsights-JS/webSdk/applicationinsights-clickanalytics-js/interfaces/IClickAnalyticsConfiguration.html#defaultRightClickBhvr) | string (or) number | '' | Default Behavior value when Right Click event has occurred. This value will be overridden if the element has the `data-*-bhvr` attribute. |
132
132
  | [dropInvalidEvents](https://microsoft.github.io/ApplicationInsights-JS/webSdk/applicationinsights-clickanalytics-js/interfaces/IClickAnalyticsConfiguration.html#dropInvalidEvents) | boolean | false | Flag to drop events that do not have useful click data. |
133
+ | [trackElementTypes](https://microsoft.github.io/ApplicationInsights-JS/webSdk/applicationinsights-clickanalytics-js/interfaces/IClickAnalyticsConfiguration.html#trackElementTypes) | string | "A,BUTTON,AREA,INPUT" | Comma separated list of element tag names that are automatically captured. |
134
+ | [trackInputTypes](https://microsoft.github.io/ApplicationInsights-JS/webSdk/applicationinsights-clickanalytics-js/interfaces/IClickAnalyticsConfiguration.html#trackInputTypes) | string | "BUTTON,CHECKBOX,RADIO,RESET,SUBMIT" | Comma separated list of `<input>` `type` values that are automatically captured when `INPUT` is included in `trackElementTypes`. See [Input element capture](#input-element-capture). |
135
+
136
+ ### Input element capture
137
+
138
+ Including `INPUT` in `trackElementTypes` does not capture clicks on every `<input>` element. Only inputs whose `type` is listed in `trackInputTypes` are automatically captured, by default `button`, `checkbox`, `radio`, `reset` and `submit`. Clicks on other input types such as `text`, `email`, `number` or `search` (and inputs without a `type` attribute, which default to `text`) are ignored.
139
+
140
+ You can add other input types, for example `trackInputTypes: "BUTTON,CHECKBOX,RADIO,RESET,SUBMIT,TEXT,SEARCH"`. To avoid collecting user entered data, the plugin never uses the `value` of these additional input types as the default content name; it falls back to the `name`, `alt` or `id` attribute instead. Review the data your application tags with `data-*` attributes before enabling additional input types.
133
141
 
134
142
  ### [IValueCallback](https://microsoft.github.io/ApplicationInsights-JS/webSdk/applicationinsights-clickanalytics-js/interfaces/IValueCallback.html)
135
143
 
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Application Insights JavaScript SDK - Click Analytics, 3.4.6-nightly3.2610-15
2
+ * Application Insights JavaScript SDK - Click Analytics, 3.4.6
3
3
  * Copyright (c) Microsoft and contributors. All rights reserved.
4
4
  */
5
5
  'use strict';
@@ -1700,7 +1700,7 @@ function newId(maxLength) {
1700
1700
  return result;
1701
1701
  }
1702
1702
 
1703
- var version = '3.4.6-nightly3.2610-15';
1703
+ var version = '3.4.6';
1704
1704
  var instanceName = "." + newId(6);
1705
1705
  var _dataUid = 0;
1706
1706
  function _canAcceptData(target) {
@@ -3445,7 +3445,6 @@ var _DYN_CAPTURE_ALL_META_DAT1 = "captureAllMetaDataContent";
3445
3445
  var _DYN_META_DATA_PREFIX = "metaDataPrefix";
3446
3446
  var _DYN_PARENT_DATA_TAG = "parentDataTag";
3447
3447
  var _DYN_DEFAULT_RIGHT_CLICK_2 = "defaultRightClickBhvr";
3448
- var _DYN_TAG_NAME = "tagName";
3449
3448
  var _DYN_TO_UPPER_CASE = "toUpperCase";
3450
3449
  var _DYN_PAGE_NAME = "pageName";
3451
3450
  var _DYN_CORE_DATA = "coreData";
@@ -3606,7 +3605,7 @@ function BehaviorEnumValidator(enumObj) {
3606
3605
  return function (key) { return enumObj[key] || ""; };
3607
3606
  }
3608
3607
 
3609
- var clickCaptureInputTypes$1 = { BUTTON: true, CHECKBOX: true, RADIO: true, RESET: true, SUBMIT: true };
3608
+ var clickCaptureInputTypes = { BUTTON: true, CHECKBOX: true, RADIO: true, RESET: true, SUBMIT: true };
3610
3609
  function getImageHref(element) {
3611
3610
  var temp = element;
3612
3611
  if (temp) {
@@ -3625,7 +3624,7 @@ function getImageHref(element) {
3625
3624
  }
3626
3625
  function getClickTarget(element) {
3627
3626
  var clickTarget = "";
3628
- switch (element[_DYN_TAG_NAME ]) {
3627
+ switch (element.tagName) {
3629
3628
  case "A":
3630
3629
  case "AREA":
3631
3630
  clickTarget = element.href || "";
@@ -3635,7 +3634,7 @@ function getClickTarget(element) {
3635
3634
  break;
3636
3635
  case "INPUT":
3637
3636
  var type = element.type;
3638
- if (type && (clickCaptureInputTypes$1[type[_DYN_TO_UPPER_CASE ]()])) {
3637
+ if (type && (clickCaptureInputTypes[type[_DYN_TO_UPPER_CASE ]()])) {
3639
3638
  var loc = getLocation() || {};
3640
3639
  if (element.form) {
3641
3640
  clickTarget = element.form.action || (loc.pathname || "");
@@ -3891,7 +3890,9 @@ var ActionType = {
3891
3890
  OTHER: "O"
3892
3891
  };
3893
3892
 
3894
- var clickCaptureInputTypes = { BUTTON: true, CHECKBOX: true, RADIO: true, RESET: true, SUBMIT: true };
3893
+ function _parseTypes(value) {
3894
+ return arrMap((value || "")[_DYN_TO_UPPER_CASE ]().split(","), function (tag) { return strTrim(tag); });
3895
+ }
3895
3896
  var AutoCaptureHandler = /** @class */ (function () {
3896
3897
  function AutoCaptureHandler(_analyticsPlugin, _config, _pageAction, _traceLogger) {
3897
3898
  this._analyticsPlugin = _analyticsPlugin;
@@ -3900,8 +3901,10 @@ var AutoCaptureHandler = /** @class */ (function () {
3900
3901
  this._traceLogger = _traceLogger;
3901
3902
  var _evtNamespace = mergeEvtNamespace(createUniqueNamespace("AutoCaptureHandler"), _analyticsPlugin._evtNamespace);
3902
3903
  var _clickCaptureElements;
3904
+ var _clickCaptureInputTypes;
3903
3905
  var unloadHandler = onConfigChange(_config, function () {
3904
- _clickCaptureElements = arrMap(_config.trackElementTypes[_DYN_TO_UPPER_CASE ]().split(","), function (tag) { return strTrim(tag); });
3906
+ _clickCaptureElements = _parseTypes(_config.trackElementTypes);
3907
+ _clickCaptureInputTypes = _parseTypes(_config.trackInputTypes);
3905
3908
  });
3906
3909
  dynamicProto(AutoCaptureHandler, this, function (_self) {
3907
3910
  _self.click = function () {
@@ -3960,17 +3963,18 @@ var AutoCaptureHandler = /** @class */ (function () {
3960
3963
  else {
3961
3964
  return;
3962
3965
  }
3963
- while (element && element[_DYN_TAG_NAME ]) {
3964
- if (element.control && arrIncludes(_clickCaptureElements, element.control[_DYN_TAG_NAME ][_DYN_TO_UPPER_CASE ]())) {
3966
+ while (element && element.tagName) {
3967
+ if (element.control && arrIncludes(_clickCaptureElements, element.control.tagName[_DYN_TO_UPPER_CASE ]())) {
3965
3968
  element = element.control;
3966
3969
  }
3967
- var tagNameUpperCased = element[_DYN_TAG_NAME ][_DYN_TO_UPPER_CASE ]();
3970
+ var tagNameUpperCased = element.tagName[_DYN_TO_UPPER_CASE ]();
3968
3971
  if (!arrIncludes(_clickCaptureElements, tagNameUpperCased)) {
3969
3972
  element = element.parentElement || element[_DYN_PARENT_NODE ];
3970
3973
  continue;
3971
3974
  }
3972
3975
  else {
3973
- var sendEvent = tagNameUpperCased === "INPUT" ? clickCaptureInputTypes[element.type[_DYN_TO_UPPER_CASE ]()] : true;
3976
+ var sendEvent = tagNameUpperCased === "INPUT" ?
3977
+ arrIncludes(_clickCaptureInputTypes, (element.type || "")[_DYN_TO_UPPER_CASE ]()) : true;
3974
3978
  if (sendEvent) {
3975
3979
  _capturePageAction(element, overrideValues, {}, isRightClickObj);
3976
3980
  }
@@ -3986,6 +3990,7 @@ var AutoCaptureHandler = /** @class */ (function () {
3986
3990
  }());
3987
3991
 
3988
3992
  var MAX_CONTENTNAME_LENGTH = 200;
3993
+ var valueSafeInputTypes = { BUTTON: true, CHECKBOX: true, RADIO: true, RESET: true, SUBMIT: true };
3989
3994
  var DomContentHandler = /** @class */ (function () {
3990
3995
  function DomContentHandler(_config, _traceLogger) {
3991
3996
  this._config = _config;
@@ -4140,12 +4145,12 @@ var DomContentHandler = /** @class */ (function () {
4140
4145
  return metaData;
4141
4146
  }
4142
4147
  function _getDefaultContentName(element, useDefaultContentName) {
4143
- if (useDefaultContentName === false || !element[_DYN_TAG_NAME ]) {
4148
+ if (useDefaultContentName === false || !element.tagName) {
4144
4149
  return "";
4145
4150
  }
4146
4151
  var doc = getDocument() || {};
4147
4152
  var contentName;
4148
- switch (element[_DYN_TAG_NAME ]) {
4153
+ switch (element.tagName[_DYN_TO_UPPER_CASE ]()) {
4149
4154
  case "A":
4150
4155
  contentName = doc.all ? element.innerText || element.innerHTML : element.text || element.innerHTML;
4151
4156
  break;
@@ -4153,6 +4158,10 @@ var DomContentHandler = /** @class */ (function () {
4153
4158
  case "AREA":
4154
4159
  contentName = element.alt;
4155
4160
  break;
4161
+ case "INPUT":
4162
+ contentName = (valueSafeInputTypes[(element.type || "")[_DYN_TO_UPPER_CASE ]()] ? element.value : "") ||
4163
+ element[_DYN_NAME ] || element.alt || element.id;
4164
+ break;
4156
4165
  default:
4157
4166
  contentName = element.value || element[_DYN_NAME ] || element.alt || element.innerText || element.id;
4158
4167
  }
@@ -4267,6 +4276,7 @@ var defaultValues = objDeepFreeze((_a = {
4267
4276
  _a.urlCollectHash = false,
4268
4277
  _a.urlCollectQuery = false,
4269
4278
  _a.trackElementTypes = cfgDfString("A,BUTTON,AREA,INPUT"),
4279
+ _a.trackInputTypes = cfgDfString("BUTTON,CHECKBOX,RADIO,RESET,SUBMIT"),
4270
4280
  _a));
4271
4281
  function _dataPrefixChk(val) {
4272
4282
  return val && val[_DYN_INDEX_OF ](DEFAULT_DATA_PREFIX) === 0;
@@ -4280,7 +4290,6 @@ var ClickAnalyticsPlugin = /** @class */ (function (_super) {
4280
4290
  var _pageAction;
4281
4291
  var _autoCaptureHandler;
4282
4292
  var _contentHandler;
4283
- var _autoCapture;
4284
4293
  dynamicProto(ClickAnalyticsPlugin, _this, function (_self, _base) {
4285
4294
  var _identifier = _self.identifier;
4286
4295
  _initDefaults();
@@ -4339,23 +4348,20 @@ var ClickAnalyticsPlugin = /** @class */ (function (_super) {
4339
4348
  _autoCaptureHandler._doUnload();
4340
4349
  }
4341
4350
  _autoCaptureHandler = new AutoCaptureHandler(_self, _config, _pageAction, logger);
4342
- var autoCapture = !!_config.autoCapture;
4343
- if (!_autoCapture && autoCapture) {
4351
+ if (_config.autoCapture) {
4344
4352
  _autoCaptureHandler.click();
4345
4353
  }
4346
- _autoCapture = autoCapture;
4347
4354
  }));
4348
4355
  }
4349
4356
  function _initDefaults() {
4350
4357
  _pageAction = null;
4351
4358
  _autoCaptureHandler = null;
4352
4359
  _contentHandler = null;
4353
- _autoCapture = false;
4354
4360
  }
4355
4361
  });
4356
4362
  return _this;
4357
4363
  }
4358
- ClickAnalyticsPlugin.Version = '3.4.6-nightly3.2610-15';
4364
+ ClickAnalyticsPlugin.Version = '3.4.6';
4359
4365
  return ClickAnalyticsPlugin;
4360
4366
  }(BaseTelemetryPlugin));
4361
4367
 
@@ -4363,4 +4369,4 @@ exports.BehaviorEnumValidator = BehaviorEnumValidator;
4363
4369
  exports.BehaviorMapValidator = BehaviorMapValidator;
4364
4370
  exports.BehaviorValueValidator = BehaviorValueValidator;
4365
4371
  exports.ClickAnalyticsPlugin = ClickAnalyticsPlugin;
4366
- //# sourceMappingURL=ai.clck.3.4.6-nightly3.2610-15.cjs.js.map
4372
+ //# sourceMappingURL=ai.clck.3.4.6.cjs.js.map