@grainql/analytics-web 2.6.0 → 2.7.0

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 (60) hide show
  1. package/dist/attention-quality.d.ts +128 -0
  2. package/dist/attention-quality.d.ts.map +1 -0
  3. package/dist/attention-quality.js +246 -0
  4. package/dist/cjs/attention-quality.d.ts +128 -0
  5. package/dist/cjs/attention-quality.d.ts.map +1 -0
  6. package/dist/cjs/attention-quality.js +246 -0
  7. package/dist/cjs/attention-quality.js.map +1 -0
  8. package/dist/cjs/heatmap-tracking.d.ts +3 -0
  9. package/dist/cjs/heatmap-tracking.d.ts.map +1 -1
  10. package/dist/cjs/heatmap-tracking.js +34 -0
  11. package/dist/cjs/heatmap-tracking.js.map +1 -1
  12. package/dist/cjs/index.d.ts +5 -0
  13. package/dist/cjs/index.d.ts.map +1 -1
  14. package/dist/cjs/index.js.map +1 -1
  15. package/dist/cjs/section-tracking.d.ts +3 -0
  16. package/dist/cjs/section-tracking.d.ts.map +1 -1
  17. package/dist/cjs/section-tracking.js +29 -0
  18. package/dist/cjs/section-tracking.js.map +1 -1
  19. package/dist/cjs/types/auto-tracking.d.ts +3 -0
  20. package/dist/cjs/types/auto-tracking.d.ts.map +1 -1
  21. package/dist/cjs/types/heatmap-tracking.d.ts +3 -0
  22. package/dist/cjs/types/heatmap-tracking.d.ts.map +1 -1
  23. package/dist/esm/attention-quality.d.ts +128 -0
  24. package/dist/esm/attention-quality.d.ts.map +1 -0
  25. package/dist/esm/attention-quality.js +242 -0
  26. package/dist/esm/attention-quality.js.map +1 -0
  27. package/dist/esm/heatmap-tracking.d.ts +3 -0
  28. package/dist/esm/heatmap-tracking.d.ts.map +1 -1
  29. package/dist/esm/heatmap-tracking.js +34 -0
  30. package/dist/esm/heatmap-tracking.js.map +1 -1
  31. package/dist/esm/index.d.ts +5 -0
  32. package/dist/esm/index.d.ts.map +1 -1
  33. package/dist/esm/index.js.map +1 -1
  34. package/dist/esm/section-tracking.d.ts +3 -0
  35. package/dist/esm/section-tracking.d.ts.map +1 -1
  36. package/dist/esm/section-tracking.js +29 -0
  37. package/dist/esm/section-tracking.js.map +1 -1
  38. package/dist/esm/types/auto-tracking.d.ts +3 -0
  39. package/dist/esm/types/auto-tracking.d.ts.map +1 -1
  40. package/dist/esm/types/heatmap-tracking.d.ts +3 -0
  41. package/dist/esm/types/heatmap-tracking.d.ts.map +1 -1
  42. package/dist/heatmap-tracking.d.ts +3 -0
  43. package/dist/heatmap-tracking.d.ts.map +1 -1
  44. package/dist/heatmap-tracking.js +34 -0
  45. package/dist/index.d.ts +5 -0
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.global.dev.js +306 -9
  48. package/dist/index.global.dev.js.map +4 -4
  49. package/dist/index.global.js +2 -2
  50. package/dist/index.global.js.map +4 -4
  51. package/dist/index.js +9 -0
  52. package/dist/index.mjs +9 -0
  53. package/dist/section-tracking.d.ts +3 -0
  54. package/dist/section-tracking.d.ts.map +1 -1
  55. package/dist/section-tracking.js +29 -0
  56. package/dist/types/auto-tracking.d.ts +3 -0
  57. package/dist/types/auto-tracking.d.ts.map +1 -1
  58. package/dist/types/heatmap-tracking.d.ts +3 -0
  59. package/dist/types/heatmap-tracking.d.ts.map +1 -1
  60. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1011,6 +1011,15 @@ class GrainAnalytics {
1011
1011
  resetEventCountSinceLastHeartbeat() {
1012
1012
  this.eventCountSinceLastHeartbeat = 0;
1013
1013
  }
1014
+ /**
1015
+ * Get the activity detector (for internal use by tracking managers)
1016
+ */
1017
+ getActivityDetector() {
1018
+ if (!this.activityDetector) {
1019
+ throw new Error('Activity detector not initialized');
1020
+ }
1021
+ return this.activityDetector;
1022
+ }
1014
1023
  /**
1015
1024
  * Get the effective user ID (public method)
1016
1025
  */
package/dist/index.mjs CHANGED
@@ -970,6 +970,15 @@ export class GrainAnalytics {
970
970
  resetEventCountSinceLastHeartbeat() {
971
971
  this.eventCountSinceLastHeartbeat = 0;
972
972
  }
973
+ /**
974
+ * Get the activity detector (for internal use by tracking managers)
975
+ */
976
+ getActivityDetector() {
977
+ if (!this.activityDetector) {
978
+ throw new Error('Activity detector not initialized');
979
+ }
980
+ return this.activityDetector;
981
+ }
973
982
  /**
974
983
  * Get the effective user ID (public method)
975
984
  */
@@ -3,9 +3,11 @@
3
3
  * Intelligent scroll tracking with viewport metrics, visible sections, and engagement analysis
4
4
  */
5
5
  import type { SectionConfig, SectionTrackingOptions } from './types/auto-tracking';
6
+ import type { ActivityDetector } from './activity';
6
7
  export interface SectionTracker {
7
8
  trackSystemEvent(eventName: string, properties: Record<string, unknown>): void;
8
9
  hasConsent(category: 'analytics' | 'marketing' | 'functional'): boolean;
10
+ getActivityDetector(): ActivityDetector;
9
11
  log(...args: unknown[]): void;
10
12
  }
11
13
  export declare class SectionTrackingManager {
@@ -24,6 +26,7 @@ export declare class SectionTrackingManager {
24
26
  private batchTimer;
25
27
  private sectionTimers;
26
28
  private readonly SPLIT_DURATION;
29
+ private attentionQuality;
27
30
  constructor(tracker: SectionTracker, sections: SectionConfig[], options?: Partial<SectionTrackingOptions>);
28
31
  /**
29
32
  * Initialize section tracking
@@ -1 +1 @@
1
- {"version":3,"file":"section-tracking.d.ts","sourceRoot":"","sources":["../src/section-tracking.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAmB,sBAAsB,EAAwB,MAAM,uBAAuB,CAAC;AAE1H,MAAM,WAAW,cAAc;IAC7B,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC/E,UAAU,CAAC,QAAQ,EAAE,WAAW,GAAG,WAAW,GAAG,YAAY,GAAG,OAAO,CAAC;IACxE,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CAC/B;AAWD,qBAAa,sBAAsB;IACjC,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,WAAW,CAAS;IAG5B,OAAO,CAAC,aAAa,CAAgD;IACrE,OAAO,CAAC,oBAAoB,CAAqC;IACjE,OAAO,CAAC,UAAU,CAA0C;IAG5D,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,cAAc,CAAc;IACpC,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,mBAAmB,CAAuB;IAGlD,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,UAAU,CAAuB;IAGzC,OAAO,CAAC,aAAa,CAAkC;IACvD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;gBAGrC,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,aAAa,EAAE,EACzB,OAAO,GAAE,OAAO,CAAC,sBAAsB,CAAM;IAgB/C;;OAEG;IACH,OAAO,CAAC,UAAU;IAelB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAqBjC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAkB3B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAgC1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA8B1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAW1B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAyD7B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAQ5B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAqCzB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAe5B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAoB5B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAqB1B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAWxB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA6B1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAuC1B;;OAEG;IACH,OAAO,CAAC,GAAG;IAMX;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI;IAsB/C;;OAEG;IACH,OAAO,IAAI,IAAI;CAsChB"}
1
+ {"version":3,"file":"section-tracking.d.ts","sourceRoot":"","sources":["../src/section-tracking.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAmB,sBAAsB,EAAwB,MAAM,uBAAuB,CAAC;AAE1H,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,WAAW,cAAc;IAC7B,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC/E,UAAU,CAAC,QAAQ,EAAE,WAAW,GAAG,WAAW,GAAG,YAAY,GAAG,OAAO,CAAC;IACxE,mBAAmB,IAAI,gBAAgB,CAAC;IACxC,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CAC/B;AAWD,qBAAa,sBAAsB;IACjC,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,WAAW,CAAS;IAG5B,OAAO,CAAC,aAAa,CAAgD;IACrE,OAAO,CAAC,oBAAoB,CAAqC;IACjE,OAAO,CAAC,UAAU,CAA0C;IAG5D,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,cAAc,CAAc;IACpC,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,mBAAmB,CAAuB;IAGlD,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,UAAU,CAAuB;IAGzC,OAAO,CAAC,aAAa,CAAkC;IACvD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IAGvC,OAAO,CAAC,gBAAgB,CAA0B;gBAGhD,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,aAAa,EAAE,EACzB,OAAO,GAAE,OAAO,CAAC,sBAAsB,CAAM;IA2B/C;;OAEG;IACH,OAAO,CAAC,UAAU;IAelB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAqBjC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAkB3B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAgC1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA8B1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAW1B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAiF7B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAQ5B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAwCzB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAe5B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAoB5B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAqB1B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAWxB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA6B1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAuC1B;;OAEG;IACH,OAAO,CAAC,GAAG;IAMX;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI;IAsB/C;;OAEG;IACH,OAAO,IAAI,IAAI;CAyChB"}
@@ -5,6 +5,7 @@
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.SectionTrackingManager = void 0;
8
+ const attention_quality_1 = require("./attention-quality");
8
9
  const DEFAULT_OPTIONS = {
9
10
  minDwellTime: 1000, // 1 second minimum
10
11
  scrollVelocityThreshold: 500, // 500px/s
@@ -34,6 +35,13 @@ class SectionTrackingManager {
34
35
  this.tracker = tracker;
35
36
  this.sections = sections;
36
37
  this.options = { ...DEFAULT_OPTIONS, ...options };
38
+ // Initialize attention quality manager
39
+ this.attentionQuality = new attention_quality_1.AttentionQualityManager(tracker.getActivityDetector(), {
40
+ maxSectionDuration: 9000, // 9 seconds
41
+ minScrollDistance: 100, // 100 pixels
42
+ idleThreshold: 30000, // 30 seconds
43
+ debug: this.options.debug,
44
+ });
37
45
  if (typeof window !== 'undefined' && typeof document !== 'undefined') {
38
46
  // Initialize after DOM is ready
39
47
  if (document.readyState === 'loading') {
@@ -178,6 +186,21 @@ class SectionTrackingManager {
178
186
  const duration = now - state.entryTime;
179
187
  // Only track if minimum dwell time has passed
180
188
  if (duration >= this.options.minDwellTime) {
189
+ // Check attention quality policies
190
+ const currentScrollY = window.scrollY;
191
+ const attentionCheck = this.attentionQuality.shouldTrackSection(state.config.sectionName, currentScrollY);
192
+ // If attention was reset due to scroll, reset our entry time
193
+ if (attentionCheck.resetAttention) {
194
+ this.log(`Section "${state.config.sectionName}": Attention reset, restarting timer`);
195
+ state.entryTime = now;
196
+ state.entryScrollSpeed = this.scrollVelocity;
197
+ return;
198
+ }
199
+ // If tracking is not allowed (page hidden, idle, or max duration reached)
200
+ if (!attentionCheck.shouldTrack) {
201
+ this.log(`Section "${state.config.sectionName}": Tracking paused - ${attentionCheck.reason}`);
202
+ return;
203
+ }
181
204
  // Create partial section view data
182
205
  const viewData = {
183
206
  sectionName: state.config.sectionName,
@@ -208,6 +231,8 @@ class SectionTrackingManager {
208
231
  exit_timestamp: viewData.exitTime,
209
232
  is_split: true, // Flag to indicate this is a periodic split, not final exit
210
233
  });
234
+ // Update attention quality duration tracker
235
+ this.attentionQuality.updateSectionDuration(state.config.sectionName, duration);
211
236
  // Reset entry time for next split (but keep tracking)
212
237
  state.entryTime = now;
213
238
  state.entryScrollSpeed = this.scrollVelocity;
@@ -232,6 +257,8 @@ class SectionTrackingManager {
232
257
  handleSectionExit(state) {
233
258
  // Stop periodic tracking
234
259
  this.stopPeriodicTracking(state.config.sectionName);
260
+ // Reset attention for this section
261
+ this.attentionQuality.resetSection(state.config.sectionName);
235
262
  if (state.entryTime === null)
236
263
  return;
237
264
  state.exitTime = Date.now();
@@ -439,6 +466,8 @@ class SectionTrackingManager {
439
466
  this.intersectionObserver.disconnect();
440
467
  this.intersectionObserver = null;
441
468
  }
469
+ // Destroy attention quality manager
470
+ this.attentionQuality.destroy();
442
471
  // Clear state
443
472
  this.sectionStates.clear();
444
473
  this.xpathCache.clear();
@@ -39,6 +39,9 @@ export interface SectionTrackingOptions {
39
39
  debounceDelay: number;
40
40
  batchDelay: number;
41
41
  debug?: boolean;
42
+ maxSectionDuration?: number;
43
+ minScrollDistance?: number;
44
+ idleThreshold?: number;
42
45
  }
43
46
  export interface SectionTrackingState {
44
47
  element: Element;
@@ -1 +1 @@
1
- {"version":3,"file":"auto-tracking.d.ts","sourceRoot":"","sources":["../../src/types/auto-tracking.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,iBAAiB,EAAE,CAAC;IAClC,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB,EAAE,MAAM,CAAC;IAChC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;CACxB"}
1
+ {"version":3,"file":"auto-tracking.d.ts","sourceRoot":"","sources":["../../src/types/auto-tracking.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,iBAAiB,EAAE,CAAC;IAClC,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB,EAAE,MAAM,CAAC;IAChC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;CACxB"}
@@ -27,6 +27,9 @@ export interface HeatmapTrackingOptions {
27
27
  batchDelay: number;
28
28
  maxBatchSize: number;
29
29
  debug?: boolean;
30
+ maxSectionDuration?: number;
31
+ minScrollDistance?: number;
32
+ idleThreshold?: number;
30
33
  }
31
34
  export interface HeatmapScrollState {
32
35
  viewportSection: number;
@@ -1 +1 @@
1
- {"version":3,"file":"heatmap-tracking.d.ts","sourceRoot":"","sources":["../../src/types/heatmap-tracking.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,sBAAsB;IACrC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,kBAAkB,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC9C,aAAa,EAAE,gBAAgB,EAAE,CAAC;IAClC,cAAc,EAAE,iBAAiB,EAAE,CAAC;CACrC"}
1
+ {"version":3,"file":"heatmap-tracking.d.ts","sourceRoot":"","sources":["../../src/types/heatmap-tracking.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,sBAAsB;IACrC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,kBAAkB,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC9C,aAAa,EAAE,gBAAgB,EAAE,CAAC;IAClC,cAAc,EAAE,iBAAiB,EAAE,CAAC;CACrC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@grainql/analytics-web",
3
- "version": "2.6.0",
3
+ "version": "2.7.0",
4
4
  "description": "Lightweight TypeScript SDK for sending analytics events and managing remote configurations via Grain's REST API",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",