@eric-emg/symphiq-components 1.2.29 → 1.2.30
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.
|
@@ -21360,8 +21360,8 @@ class SymphiqFunnelAnalysisDashboardComponent {
|
|
|
21360
21360
|
// Set up container scroll listener when in embedded mode
|
|
21361
21361
|
if (this.embedded()) {
|
|
21362
21362
|
let container = null;
|
|
21363
|
-
console.log('[Scroll Debug
|
|
21364
|
-
console.log('[Scroll Debug
|
|
21363
|
+
console.log('[Scroll Debug v5] Embedded mode detected, setting up scroll listener');
|
|
21364
|
+
console.log('[Scroll Debug v5] scrollContainerId:', this.scrollContainerId());
|
|
21365
21365
|
// If a scroll container ID is provided, use that element
|
|
21366
21366
|
if (this.scrollContainerId()) {
|
|
21367
21367
|
const element = document.getElementById(this.scrollContainerId());
|
|
@@ -21460,48 +21460,22 @@ class SymphiqFunnelAnalysisDashboardComponent {
|
|
|
21460
21460
|
// FALLBACK: Poll scroll position using requestAnimationFrame AND Ionic API
|
|
21461
21461
|
// This ensures we catch scroll events even if neither 'scroll' nor 'ionScroll' fire
|
|
21462
21462
|
let lastScrollTop = 0;
|
|
21463
|
-
const pollScroll =
|
|
21464
|
-
// Try
|
|
21465
|
-
|
|
21466
|
-
|
|
21467
|
-
|
|
21468
|
-
|
|
21469
|
-
|
|
21470
|
-
|
|
21471
|
-
const liveScrollEl = await ionContent.getScrollElement();
|
|
21472
|
-
apiScrollTop = liveScrollEl?.scrollTop || 0;
|
|
21473
|
-
}
|
|
21474
|
-
catch (e) {
|
|
21475
|
-
// Ignore errors
|
|
21476
|
-
}
|
|
21477
|
-
// Also try Ionic's getScrollPosition() method
|
|
21478
|
-
let ionicScrollY = 0;
|
|
21479
|
-
try {
|
|
21480
|
-
if (typeof ionContent.getScrollPosition === 'function') {
|
|
21481
|
-
const pos = await ionContent.getScrollPosition();
|
|
21482
|
-
ionicScrollY = pos?.scrollTop || pos?.top || 0;
|
|
21463
|
+
const pollScroll = () => {
|
|
21464
|
+
// Try getScrollPosition() synchronously by checking current scroll
|
|
21465
|
+
ionContent.getScrollPosition().then((pos) => {
|
|
21466
|
+
const currentScrollTop = pos?.scrollTop || pos?.top || pos?.y || 0;
|
|
21467
|
+
if (currentScrollTop !== lastScrollTop && currentScrollTop > 0) {
|
|
21468
|
+
console.log('[Scroll Debug v5] Polling detected scroll change:', lastScrollTop, '->', currentScrollTop, pos);
|
|
21469
|
+
lastScrollTop = currentScrollTop;
|
|
21470
|
+
this.onContainerScroll(scrollElement);
|
|
21483
21471
|
}
|
|
21484
|
-
}
|
|
21485
|
-
|
|
21486
|
-
|
|
21487
|
-
}
|
|
21488
|
-
// Use whichever is non-zero
|
|
21489
|
-
const currentScrollTop = scrollElTop || ionContentScrollTop || ionContentScrollY || apiScrollTop || ionicScrollY;
|
|
21490
|
-
if (currentScrollTop !== lastScrollTop) {
|
|
21491
|
-
console.log('[Scroll Debug v4] Polling detected scroll change:', lastScrollTop, '->', currentScrollTop, {
|
|
21492
|
-
scrollElTop,
|
|
21493
|
-
ionContentScrollTop,
|
|
21494
|
-
ionContentScrollY,
|
|
21495
|
-
apiScrollTop,
|
|
21496
|
-
ionicScrollY
|
|
21497
|
-
});
|
|
21498
|
-
lastScrollTop = currentScrollTop;
|
|
21499
|
-
this.onContainerScroll(scrollElement);
|
|
21500
|
-
}
|
|
21472
|
+
}).catch(() => {
|
|
21473
|
+
// Silently ignore errors
|
|
21474
|
+
});
|
|
21501
21475
|
requestAnimationFrame(pollScroll);
|
|
21502
21476
|
};
|
|
21503
21477
|
requestAnimationFrame(pollScroll);
|
|
21504
|
-
console.log('[Scroll Debug
|
|
21478
|
+
console.log('[Scroll Debug v5] Started scroll position polling using getScrollPosition()');
|
|
21505
21479
|
// Test if scroll event fires by manually triggering a test
|
|
21506
21480
|
console.log('[Scroll Debug] Testing scroll event by programmatically scrolling to 1px...');
|
|
21507
21481
|
scrollElement.scrollTop = 1;
|