@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 v4] Embedded mode detected, setting up scroll listener');
21364
- console.log('[Scroll Debug v4] scrollContainerId:', this.scrollContainerId());
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 = async () => {
21464
- // Try multiple sources for scroll position
21465
- const scrollElTop = scrollElement.scrollTop;
21466
- const ionContentScrollTop = ionContent.scrollTop || 0;
21467
- const ionContentScrollY = ionContent.scrollY || 0;
21468
- // Also try getScrollElement() again in case it returns live data
21469
- let apiScrollTop = 0;
21470
- try {
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
- catch (e) {
21486
- // Ignore errors
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 v4] Started scroll position polling');
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;