@adobe/helix-rum-enhancer 2.26.2 → 2.26.4

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/.releaserc.cjs CHANGED
@@ -7,7 +7,7 @@ module.exports = {
7
7
  }],
8
8
  "@semantic-release/npm",
9
9
  ["@semantic-release/git", {
10
- "assets": ["package.json", "CHANGELOG.md"],
10
+ "assets": ["package.json", "package-lock.json", "CHANGELOG.md"],
11
11
  "message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
12
12
  }],
13
13
  ["@semantic-release/github", {
package/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ ## [2.26.4](https://github.com/adobe/helix-rum-enhancer/compare/v2.26.3...v2.26.4) (2024-12-20)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * release process ([bdce5c3](https://github.com/adobe/helix-rum-enhancer/commit/bdce5c328037630347f6bc96b64f097c983418e0))
7
+
8
+ ## [2.26.3](https://github.com/adobe/helix-rum-enhancer/compare/v2.26.2...v2.26.3) (2024-12-16)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * do not track repeating clicks ([#339](https://github.com/adobe/helix-rum-enhancer/issues/339)) ([f511a03](https://github.com/adobe/helix-rum-enhancer/commit/f511a03679188361326fbd3a8d68e650c39bea50))
14
+
1
15
  ## [2.26.2](https://github.com/adobe/helix-rum-enhancer/compare/v2.26.1...v2.26.2) (2024-12-11)
2
16
 
3
17
 
package/modules/index.js CHANGED
@@ -251,11 +251,21 @@ function addViewMediaTracking(parent) {
251
251
  }
252
252
  }
253
253
 
254
+ function addFocusTracking(parent) {
255
+ parent.addEventListener('focusin', (event) => {
256
+ if (['INPUT', 'TEXTAREA', 'SELECT', 'BUTTON'].includes(event.target.tagName)
257
+ || event.target.getAttribute('contenteditable') === 'true') {
258
+ sampleRUM('click', { source: sourceSelector(event.target) });
259
+ }
260
+ });
261
+ }
262
+
254
263
  function addFormTracking(parent) {
255
264
  activateBlocksMO();
256
265
  activateMediaMO();
257
266
  parent.querySelectorAll('form').forEach((form) => {
258
267
  form.addEventListener('submit', (e) => sampleRUM('formsubmit', { target: targetSelector(e.target), source: sourceSelector(e.target) }), { once: true });
268
+ addFocusTracking(form);
259
269
  });
260
270
  }
261
271
 
@@ -285,8 +295,16 @@ function mediaMCB(mutations) {
285
295
  }
286
296
 
287
297
  function addTrackingFromConfig() {
298
+ let lastSource;
299
+ let lastTarget;
288
300
  document.addEventListener('click', (event) => {
289
- sampleRUM('click', { target: targetSelector(event.target), source: sourceSelector(event.target) });
301
+ const source = sourceSelector(event.target);
302
+ const target = targetSelector(event.target);
303
+ if (source !== lastSource || target !== lastTarget) {
304
+ sampleRUM('click', { target, source });
305
+ lastSource = source;
306
+ lastTarget = target;
307
+ }
290
308
  });
291
309
  addCWVTracking();
292
310
  addFormTracking(window.document.body);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adobe/helix-rum-enhancer",
3
- "version": "2.26.2",
3
+ "version": "2.26.4",
4
4
  "description": "Helix RUM Enhancer",
5
5
  "main": "src/index.js",
6
6
  "type": "module",
@@ -43,7 +43,7 @@
43
43
  "@web/test-runner-commands": "0.9.0",
44
44
  "@web/test-runner-mocha": "0.9.0",
45
45
  "@web/test-runner-playwright": "0.11.0",
46
- "c8": "10.1.2",
46
+ "c8": "10.1.3",
47
47
  "codecov": "3.8.3",
48
48
  "eslint": "8.57.1",
49
49
  "eslint-plugin-header": "3.1.1",
@@ -51,7 +51,7 @@
51
51
  "husky": "9.1.7",
52
52
  "jsdoc-to-markdown": "9.1.1",
53
53
  "junit-report-builder": "5.1.1",
54
- "lint-staged": "15.2.10",
54
+ "lint-staged": "15.2.11",
55
55
  "mocha": "11.0.1",
56
56
  "mocha-multi-reporters": "1.5.1",
57
57
  "rollup": "4.28.1",
package/src/index.js CHANGED
@@ -384,11 +384,20 @@
384
384
  });
385
385
  }
386
386
  }
387
+ function addFocusTracking(parent) {
388
+ parent.addEventListener('focusin', (event) => {
389
+ if (['INPUT', 'TEXTAREA', 'SELECT', 'BUTTON'].includes(event.target.tagName)
390
+ || event.target.getAttribute('contenteditable') === 'true') {
391
+ sampleRUM('click', { source: sourceSelector(event.target) });
392
+ }
393
+ });
394
+ }
387
395
  function addFormTracking(parent) {
388
396
  activateBlocksMO();
389
397
  activateMediaMO();
390
398
  parent.querySelectorAll('form').forEach((form) => {
391
399
  form.addEventListener('submit', (e) => sampleRUM('formsubmit', { target: targetSelector(e.target), source: sourceSelector(e.target) }), { once: true });
400
+ addFocusTracking(form);
392
401
  });
393
402
  }
394
403
  function addObserver(ck, fn, block) {
@@ -410,8 +419,16 @@
410
419
  });
411
420
  }
412
421
  function addTrackingFromConfig() {
422
+ let lastSource;
423
+ let lastTarget;
413
424
  document.addEventListener('click', (event) => {
414
- sampleRUM('click', { target: targetSelector(event.target), source: sourceSelector(event.target) });
425
+ const source = sourceSelector(event.target);
426
+ const target = targetSelector(event.target);
427
+ if (source !== lastSource || target !== lastTarget) {
428
+ sampleRUM('click', { target, source });
429
+ lastSource = source;
430
+ lastTarget = target;
431
+ }
415
432
  });
416
433
  addCWVTracking();
417
434
  addFormTracking(window.document.body);
package/src/index.md5 CHANGED
@@ -1 +1 @@
1
- b33e2bbaa1ad5542ff6a6343af9750b6
1
+ 80a42e2816eebe0efae335ce49fe1225