@eric-emg/symphiq-components 1.2.16 → 1.2.18
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,21 +21360,39 @@ 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] Embedded mode detected, setting up scroll listener');
|
|
21364
|
+
console.log('[Scroll Debug] scrollContainerId:', this.scrollContainerId());
|
|
21363
21365
|
// If a scroll container ID is provided, use that element
|
|
21364
21366
|
if (this.scrollContainerId()) {
|
|
21365
21367
|
container = document.getElementById(this.scrollContainerId());
|
|
21366
21368
|
if (!container) {
|
|
21367
|
-
console.warn(`Scroll container with id "${this.scrollContainerId()}" not found. Scroll tracking will not work.`);
|
|
21369
|
+
console.warn(`[Scroll Debug] Scroll container with id "${this.scrollContainerId()}" not found. Scroll tracking will not work.`);
|
|
21370
|
+
}
|
|
21371
|
+
else {
|
|
21372
|
+
console.log('[Scroll Debug] Found external scroll container:', container);
|
|
21373
|
+
console.log('[Scroll Debug] Container dimensions:', {
|
|
21374
|
+
clientHeight: container.clientHeight,
|
|
21375
|
+
scrollHeight: container.scrollHeight,
|
|
21376
|
+
scrollTop: container.scrollTop,
|
|
21377
|
+
hasOverflow: container.scrollHeight > container.clientHeight
|
|
21378
|
+
});
|
|
21368
21379
|
}
|
|
21369
|
-
console.info(`Scroll container with id "${this.scrollContainerId()}" found!`);
|
|
21370
21380
|
}
|
|
21371
21381
|
else if (this.dashboardContainer) {
|
|
21372
21382
|
// Fall back to internal dashboard container
|
|
21373
21383
|
container = this.dashboardContainer.nativeElement;
|
|
21384
|
+
console.log('[Scroll Debug] Using internal dashboard container:', container);
|
|
21374
21385
|
}
|
|
21375
21386
|
if (container) {
|
|
21387
|
+
console.log('[Scroll Debug] Attaching scroll listener to container');
|
|
21376
21388
|
container.addEventListener('scroll', () => this.onContainerScroll(container), { passive: true });
|
|
21377
21389
|
}
|
|
21390
|
+
else {
|
|
21391
|
+
console.warn('[Scroll Debug] No scroll container found!');
|
|
21392
|
+
}
|
|
21393
|
+
}
|
|
21394
|
+
else {
|
|
21395
|
+
console.log('[Scroll Debug] Not in embedded mode, using window scroll');
|
|
21378
21396
|
}
|
|
21379
21397
|
}
|
|
21380
21398
|
handleSearchResult(result) {
|
|
@@ -21584,6 +21602,7 @@ class SymphiqFunnelAnalysisDashboardComponent {
|
|
|
21584
21602
|
}
|
|
21585
21603
|
onContainerScroll(container) {
|
|
21586
21604
|
if (!this.embedded()) {
|
|
21605
|
+
console.log('[Scroll Debug] onContainerScroll called but not in embedded mode, returning');
|
|
21587
21606
|
return;
|
|
21588
21607
|
}
|
|
21589
21608
|
const scrollPosition = container.scrollTop;
|
|
@@ -21592,15 +21611,26 @@ class SymphiqFunnelAnalysisDashboardComponent {
|
|
|
21592
21611
|
const scrollHeight = container.scrollHeight;
|
|
21593
21612
|
const maxScroll = scrollHeight - containerHeight;
|
|
21594
21613
|
const progress = maxScroll > 0 ? (scrollPosition / maxScroll) * 100 : 0;
|
|
21614
|
+
console.log('[Scroll Debug] Container scroll event:', {
|
|
21615
|
+
scrollPosition,
|
|
21616
|
+
containerHeight,
|
|
21617
|
+
scrollHeight,
|
|
21618
|
+
maxScroll,
|
|
21619
|
+
progress: progress.toFixed(2) + '%',
|
|
21620
|
+
currentScrollProgress: this.scrollProgress(),
|
|
21621
|
+
isScrolled: this.isScrolled()
|
|
21622
|
+
});
|
|
21595
21623
|
this.scrollProgress.set(Math.min(100, Math.max(0, progress)));
|
|
21596
21624
|
// Skip header state updates during programmatic scrolling
|
|
21597
21625
|
if (this.isProgrammaticScroll) {
|
|
21626
|
+
console.log('[Scroll Debug] Skipping header update - programmatic scroll');
|
|
21598
21627
|
return;
|
|
21599
21628
|
}
|
|
21600
21629
|
// Check if we're in cooldown period after a recent state change
|
|
21601
21630
|
const now = Date.now();
|
|
21602
21631
|
const timeSinceLastChange = now - this.lastStateChangeTime;
|
|
21603
21632
|
if (timeSinceLastChange < this.STATE_CHANGE_COOLDOWN) {
|
|
21633
|
+
console.log('[Scroll Debug] Skipping header update - in cooldown period', timeSinceLastChange + 'ms');
|
|
21604
21634
|
return;
|
|
21605
21635
|
}
|
|
21606
21636
|
// Clear any pending timeout
|
|
@@ -21616,16 +21646,22 @@ class SymphiqFunnelAnalysisDashboardComponent {
|
|
|
21616
21646
|
// If currently expanded and we scroll past collapse threshold, collapse
|
|
21617
21647
|
if (!currentState && scrollPosition > COLLAPSE_THRESHOLD) {
|
|
21618
21648
|
newState = true;
|
|
21649
|
+
console.log('[Scroll Debug] Triggering COLLAPSE - scrollPosition:', scrollPosition, '> threshold:', COLLAPSE_THRESHOLD);
|
|
21619
21650
|
}
|
|
21620
21651
|
// If currently collapsed and we scroll back above expand threshold, expand
|
|
21621
21652
|
else if (currentState && scrollPosition < EXPAND_THRESHOLD) {
|
|
21622
21653
|
newState = false;
|
|
21654
|
+
console.log('[Scroll Debug] Triggering EXPAND - scrollPosition:', scrollPosition, '< threshold:', EXPAND_THRESHOLD);
|
|
21623
21655
|
}
|
|
21624
21656
|
// Only update state if it actually changed
|
|
21625
21657
|
if (newState !== currentState) {
|
|
21658
|
+
console.log('[Scroll Debug] State change detected:', currentState, '->', newState);
|
|
21626
21659
|
this.isScrolled.set(newState);
|
|
21627
21660
|
this.lastStateChangeTime = Date.now();
|
|
21628
21661
|
}
|
|
21662
|
+
else {
|
|
21663
|
+
console.log('[Scroll Debug] No state change needed. Current state:', currentState, 'Position:', scrollPosition);
|
|
21664
|
+
}
|
|
21629
21665
|
this.lastScrollPosition = scrollPosition;
|
|
21630
21666
|
}
|
|
21631
21667
|
onScroll() {
|
|
@@ -23504,7 +23540,7 @@ class SymphiqFunnelAnalysisPreviewComponent {
|
|
|
23504
23540
|
this.onViewAnalysis.emit();
|
|
23505
23541
|
}
|
|
23506
23542
|
static { this.ɵfac = function SymphiqFunnelAnalysisPreviewComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SymphiqFunnelAnalysisPreviewComponent)(); }; }
|
|
23507
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SymphiqFunnelAnalysisPreviewComponent, selectors: [["symphiq-funnel-analysis-preview"]], inputs: { analysisInput: [1, "funnelAnalysis", "analysisInput"], viewMode: [1, "viewMode"] }, outputs: { onViewAnalysis: "onViewAnalysis" }, decls: 34, vars: 40, consts: [[1, "w-full", "sm:max-w-md", "
|
|
23543
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SymphiqFunnelAnalysisPreviewComponent, selectors: [["symphiq-funnel-analysis-preview"]], inputs: { analysisInput: [1, "funnelAnalysis", "analysisInput"], viewMode: [1, "viewMode"] }, outputs: { onViewAnalysis: "onViewAnalysis" }, decls: 34, vars: 40, consts: [[1, "w-full", "sm:max-w-md", "rounded-xl", "border", "shadow-lg", "backdrop-blur-lg", "transition-all", "duration-300", "sm:hover:shadow-xl", "sm:hover:scale-[1.01]", "overflow-hidden"], [1, "px-3", "py-2", "sm:px-4", "sm:py-3", "border-b", "flex", "items-center", "justify-between", "gap-2", "sm:gap-3"], [1, "flex-1", "min-w-0"], [1, "text-sm", "font-bold", "truncate"], [1, "text-xs", "truncate", "cursor-help", 3, "libSymphiqTooltip", "tooltipPosition"], [1, "flex", "items-center", "gap-1.5", "sm:gap-2", "flex-shrink-0"], ["tooltipType", "badge", 1, "px-2", "py-1", "rounded", "text-center", "min-w-[44px]", "min-h-[44px]", "flex", "items-center", "justify-center", 3, "libSymphiqTooltip", "tooltipPosition"], [1, "text-lg", "font-bold"], [1, "p-3", "sm:p-4", "space-y-2.5", "sm:space-y-3"], ["tooltipType", "metric", 1, "rounded-lg", "p-2.5", "sm:p-3", "border", "transition-all", "duration-200", "sm:hover:scale-105", "cursor-help", "active:scale-[0.98]", 3, "class", "libSymphiqTooltip", "tooltipPosition"], [1, "grid", "grid-cols-2", "gap-1.5", "sm:gap-2"], ["tooltipType", "metric", 1, "rounded-lg", "p-1.5", "sm:p-2", "border", "transition-all", "duration-200", "sm:hover:scale-105", "active:scale-[0.98]", 3, "class", "libSymphiqTooltip", "tooltipPosition"], [1, "rounded-lg", "p-2.5", "sm:p-3", "border", "transition-all", "duration-200", "sm:hover:scale-105", "active:scale-[0.98]", 3, "class"], [1, "rounded-lg", "p-2.5", "sm:p-3", "border", "transition-all", "duration-200", "sm:hover:scale-105", "active:scale-[0.98]"], [1, "flex", "items-center", "justify-between", "mb-2"], [1, "flex", "items-center", "gap-1.5", "sm:gap-2"], [1, "text-lg"], [1, "text-xs", "sm:text-sm", "font-bold"], ["tooltipType", "competitive", 1, "px-2", "py-0.5", "rounded", "text-xs", "font-bold", 3, "class", "animate-pulse", "libSymphiqTooltip", "tooltipPosition"], ["tooltipType", "narrative", 1, "text-xs", "leading-relaxed", "line-clamp-3", "cursor-help", 3, "libSymphiqTooltip", "tooltipPosition"], [1, "px-3", "py-1.5", "sm:px-4", "sm:py-2", "border-t"], [1, "w-full", "py-2.5", "sm:py-2", "rounded-lg", "font-semibold", "text-xs", "transition-all", "duration-300", "sm:hover:scale-105", "active:scale-[0.98]", "flex", "items-center", "justify-center", "gap-2", "group", "cursor-pointer", "min-h-[44px]", 3, "click"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-3", "h-3", "transition-transform", "duration-300", "group-hover:translate-x-1"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 7l5 5m0 0l-5 5m5-5H6"], ["tooltipType", "metric", 1, "rounded-lg", "p-2.5", "sm:p-3", "border", "transition-all", "duration-200", "sm:hover:scale-105", "cursor-help", "active:scale-[0.98]", 3, "libSymphiqTooltip", "tooltipPosition"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-3.5", "h-3.5", "sm:w-4", "sm:h-4"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1M21 12a9 9 0 11-18 0 9 9 0 0118 0z"], [1, "text-xs", "font-semibold"], ["tooltipType", "status", 1, "px-2", "py-1", "rounded", "text-xs", "font-bold", "flex", "items-center", "gap-1", "relative", "z-10", "min-h-[32px]", 3, "mouseenter", "mouseleave", "libSymphiqTooltip", "tooltipPosition"], [1, "flex", "items-baseline", "justify-between"], [1, "text-lg", "sm:text-xl", "font-bold"], [1, "flex", "items-center", "gap-1"], ["fill", "currentColor", "viewBox", "0 0 20 20", 1, "w-3", "h-3"], ["fill-rule", "evenodd", "d", "M5.293 9.707a1 1 0 010-1.414l4-4a1 1 0 011.414 0l4 4a1 1 0 01-1.414 1.414L11 7.414V15a1 1 0 11-2 0V7.414L6.707 9.707a1 1 0 01-1.414 0z", "clip-rule", "evenodd"], ["tooltipType", "metric", 1, "rounded-lg", "p-1.5", "sm:p-2", "border", "transition-all", "duration-200", "sm:hover:scale-105", "active:scale-[0.98]", 3, "libSymphiqTooltip", "tooltipPosition"], [1, "flex", "items-center", "justify-between", "mb-1"], [1, "text-xs", "font-medium", "truncate", "flex-1"], [1, "w-2", "h-2", "rounded-full", "flex-shrink-0"], [1, "flex", "items-center", "justify-between"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"], ["tooltipType", "insightsList", 1, "px-2", "py-0.5", "rounded", "text-xs", "font-bold", 3, "libSymphiqTooltip", "tooltipPosition"], ["tooltipType", "competitive", 1, "px-2", "py-0.5", "rounded", "text-xs", "font-bold", 3, "libSymphiqTooltip", "tooltipPosition"]], template: function SymphiqFunnelAnalysisPreviewComponent_Template(rf, ctx) { if (rf & 1) {
|
|
23508
23544
|
i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "h3", 3);
|
|
23509
23545
|
i0.ɵɵtext(4, "Funnel Analysis");
|
|
23510
23546
|
i0.ɵɵelementEnd();
|
|
@@ -23594,7 +23630,7 @@ class SymphiqFunnelAnalysisPreviewComponent {
|
|
|
23594
23630
|
args: [{ selector: 'symphiq-funnel-analysis-preview', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, TooltipDirective, TooltipContainerComponent], template: `
|
|
23595
23631
|
<div
|
|
23596
23632
|
[class]="containerClass()"
|
|
23597
|
-
class="w-full sm:max-w-md
|
|
23633
|
+
class="w-full sm:max-w-md rounded-xl border shadow-lg backdrop-blur-lg transition-all duration-300 sm:hover:shadow-xl sm:hover:scale-[1.01] overflow-hidden">
|
|
23598
23634
|
|
|
23599
23635
|
<!-- Compact Header -->
|
|
23600
23636
|
<div [class]="headerClass()" class="px-3 py-2 sm:px-4 sm:py-3 border-b flex items-center justify-between gap-2 sm:gap-3">
|