@zaplier/sdk 1.6.8 → 1.6.9

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/dist/index.cjs CHANGED
@@ -19276,7 +19276,10 @@ class AutoTracker {
19276
19276
  this.scrollThrottle = now;
19277
19277
  const scrollElements = document.querySelectorAll('[data-track-scroll]');
19278
19278
  if (this.config.debug && scrollElements.length > 0) {
19279
- console.log(`[AutoTracker] Checking ${scrollElements.length} scroll elements`);
19279
+ console.log(`[AutoTracker] Checking ${scrollElements.length} scroll elements`, {
19280
+ scrollY: window.scrollY,
19281
+ innerHeight: window.innerHeight
19282
+ });
19280
19283
  }
19281
19284
  scrollElements.forEach((element) => {
19282
19285
  let hasTriggered = element.getAttribute('data-scroll-triggered') === 'true';
@@ -19320,6 +19323,28 @@ class AutoTracker {
19320
19323
  }
19321
19324
  });
19322
19325
  };
19326
+ this.handleClick = (event) => {
19327
+ if (!this.config.trackClicks)
19328
+ return;
19329
+ const target = event.target;
19330
+ if (!target || !target.hasAttribute("data-track-click"))
19331
+ return;
19332
+ const eventName = target.getAttribute("data-track-click");
19333
+ if (!eventName)
19334
+ return;
19335
+ const metadata = this.extractMetadata(target);
19336
+ this.trackEvent(eventName, {
19337
+ type: "click",
19338
+ element: target.tagName.toLowerCase(),
19339
+ ...metadata,
19340
+ });
19341
+ if (this.config.debug) {
19342
+ console.log(`[AutoTracker] Click tracked: ${eventName}`, {
19343
+ element: target.tagName.toLowerCase(),
19344
+ ...metadata
19345
+ });
19346
+ }
19347
+ };
19323
19348
  this.sdkInstance = sdkInstance;
19324
19349
  this.config = {
19325
19350
  enabled: true,
@@ -19347,6 +19372,28 @@ class AutoTracker {
19347
19372
  trackHovers: this.config.trackHovers,
19348
19373
  trackForms: this.config.trackForms
19349
19374
  });
19375
+ // Log elementos existentes encontrados
19376
+ setTimeout(() => {
19377
+ const clickElements = document.querySelectorAll('[data-track-click]');
19378
+ const scrollElements = document.querySelectorAll('[data-track-scroll]');
19379
+ const viewElements = document.querySelectorAll('[data-track-view]');
19380
+ const hoverElements = document.querySelectorAll('[data-track-hover]');
19381
+ const formElements = document.querySelectorAll('[data-track-form]');
19382
+ console.log("[Zaplier AutoTracker] Elementos encontrados:", {
19383
+ clickElements: clickElements.length,
19384
+ scrollElements: scrollElements.length,
19385
+ viewElements: viewElements.length,
19386
+ hoverElements: hoverElements.length,
19387
+ formElements: formElements.length
19388
+ });
19389
+ if (scrollElements.length > 0) {
19390
+ console.log("[Zaplier AutoTracker] Elementos de scroll:", Array.from(scrollElements).map(el => ({
19391
+ tagName: el.tagName,
19392
+ trackEvent: el.getAttribute('data-track-scroll'),
19393
+ threshold: el.getAttribute('data-scroll-threshold') || '0.5'
19394
+ })));
19395
+ }
19396
+ }, 100);
19350
19397
  }
19351
19398
  // Observer para novos elementos no DOM
19352
19399
  this.observeDOM();
@@ -19357,6 +19404,9 @@ class AutoTracker {
19357
19404
  this.setupViewTracking();
19358
19405
  }
19359
19406
  // Setup global event listeners
19407
+ if (this.config.trackClicks) {
19408
+ document.addEventListener("click", this.handleClick, { passive: true });
19409
+ }
19360
19410
  if (this.config.trackScrolls) {
19361
19411
  document.addEventListener("scroll", this.handleScroll, { passive: true });
19362
19412
  }
@@ -19365,6 +19415,7 @@ class AutoTracker {
19365
19415
  * Parar auto tracking
19366
19416
  */
19367
19417
  stop() {
19418
+ document.removeEventListener("click", this.handleClick);
19368
19419
  document.removeEventListener("scroll", this.handleScroll);
19369
19420
  if (this.intersectionObserver) {
19370
19421
  this.intersectionObserver.disconnect();
@@ -19403,14 +19454,8 @@ class AutoTracker {
19403
19454
  * Processar um elemento específico
19404
19455
  */
19405
19456
  processElement(element) {
19406
- // Click tracking
19407
- if (this.config.trackClicks && element.hasAttribute("data-track-click")) {
19408
- this.setupClickTracking(element);
19409
- }
19410
- // Scroll tracking
19411
- if (this.config.trackScrolls && element.hasAttribute("data-track-scroll")) {
19412
- this.setupScrollTracking(element);
19413
- }
19457
+ // Click tracking - handled by global listener
19458
+ // Scroll tracking - handled by global listener
19414
19459
  // View tracking
19415
19460
  if (this.config.trackViews && element.hasAttribute("data-track-view")) {
19416
19461
  this.setupElementViewTracking(element);
@@ -19424,60 +19469,6 @@ class AutoTracker {
19424
19469
  this.setupFormTracking(element);
19425
19470
  }
19426
19471
  }
19427
- /**
19428
- * Setup click tracking
19429
- */
19430
- setupClickTracking(element) {
19431
- element.addEventListener("click", (event) => {
19432
- const eventName = element.getAttribute("data-track-click");
19433
- if (!eventName)
19434
- return;
19435
- const metadata = this.extractMetadata(element);
19436
- this.trackEvent(eventName, {
19437
- type: "click",
19438
- element: element.tagName.toLowerCase(),
19439
- ...metadata,
19440
- });
19441
- if (this.config.debug) {
19442
- console.log(`[AutoTracker] Click tracked: ${eventName}`, metadata);
19443
- }
19444
- });
19445
- }
19446
- /**
19447
- * Setup scroll tracking
19448
- */
19449
- setupScrollTracking(element) {
19450
- let hasTriggered = false;
19451
- const threshold = parseFloat(element.getAttribute("data-scroll-threshold") || "0.5");
19452
- const handleScroll = () => {
19453
- if (hasTriggered)
19454
- return;
19455
- const rect = element.getBoundingClientRect();
19456
- const elementHeight = rect.height;
19457
- const visibleHeight = Math.min(rect.bottom, window.innerHeight) - Math.max(rect.top, 0);
19458
- const visibilityRatio = Math.max(0, visibleHeight) / elementHeight;
19459
- if (visibilityRatio >= threshold) {
19460
- hasTriggered = true;
19461
- const eventName = element.getAttribute("data-track-scroll");
19462
- if (!eventName)
19463
- return;
19464
- const metadata = this.extractMetadata(element);
19465
- this.trackEvent(eventName, {
19466
- type: "scroll",
19467
- element: element.tagName.toLowerCase(),
19468
- threshold,
19469
- scrollDepth: window.scrollY,
19470
- ...metadata,
19471
- });
19472
- if (this.config.debug) {
19473
- console.log(`[AutoTracker] Scroll tracked: ${eventName}`, metadata);
19474
- }
19475
- }
19476
- };
19477
- document.addEventListener("scroll", handleScroll, { passive: true });
19478
- // Check immediately in case element is already in view
19479
- setTimeout(handleScroll, 100);
19480
- }
19481
19472
  /**
19482
19473
  * Setup view tracking usando Intersection Observer
19483
19474
  */