@eric-emg/symphiq-components 1.2.298 → 1.2.299

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.
@@ -1,4 +1,4 @@
1
- import { ViewModeEnum, MetricStatusEnum, TrendDirectionEnum, CompetitiveScoreEnum, MetricEnum, DimensionEnum, UiDataPeriodEnum, UiDataComparePeriodEnum, ChartTypeEnum, IconSourceEnum, ProfileAnalysisRecommendationPriorityEnum, ProfileItemTypeEnum, PriceVsCompetitorsEnum, DifferentiationStrengthEnum, ThreatLevelEnum, normalizeToV3, FocusAreaDetailStatusEnum, FocusAreaDomainEnumUtil, FocusAreaDomainEnum, ShopDataLoadStatusEnum, MetricEnumUtil, NumberTypeEnum, LineChartUseCaseEnum, FunnelMetricTypeEnum, AiDynamicContentStatusEnum, FocusAreaHealthEnum, ProfileAnalysisPriorityEnum, CapabilityStateEnum, QuadrantEnum, AdvantageEnum, OverallGradeEnum, OperationalMaturityEnum, ProfileAnalysisEffortLevelEnum, ProfileAnalysisImpactLevelEnum, ProfileAnalysisTypeEnum, BarChartUseCaseEnum } from '@jebgem/model';
1
+ import { ViewModeEnum, MetricStatusEnum, TrendDirectionEnum, CompetitiveScoreEnum, MetricEnum, DimensionEnum, UiDataPeriodEnum, UiDataComparePeriodEnum, ChartTypeEnum, IconSourceEnum, ProfileAnalysisRecommendationPriorityEnum, ProfileItemTypeEnum, PriceVsCompetitorsEnum, DifferentiationStrengthEnum, ThreatLevelEnum, AiDynamicContentStatusEnum, normalizeToV3, FocusAreaDetailStatusEnum, FocusAreaDomainEnumUtil, FocusAreaDomainEnum, ShopDataLoadStatusEnum, MetricEnumUtil, NumberTypeEnum, LineChartUseCaseEnum, FunnelMetricTypeEnum, FocusAreaHealthEnum, ProfileAnalysisPriorityEnum, CapabilityStateEnum, QuadrantEnum, AdvantageEnum, OverallGradeEnum, OperationalMaturityEnum, ProfileAnalysisEffortLevelEnum, ProfileAnalysisImpactLevelEnum, ProfileAnalysisTypeEnum, BarChartUseCaseEnum } from '@jebgem/model';
2
2
  export * from '@jebgem/model';
3
3
  import * as i0 from '@angular/core';
4
4
  import { Injectable, signal, computed, input, ChangeDetectionStrategy, Component, output, inject, ElementRef, Renderer2, effect, Directive, HostListener, untracked, ViewChild, PLATFORM_ID, Inject, Input, afterNextRender } from '@angular/core';
@@ -45482,6 +45482,328 @@ class BusinessAnalysisModalComponent {
45482
45482
  }] }); })();
45483
45483
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(BusinessAnalysisModalComponent, { className: "BusinessAnalysisModalComponent", filePath: "lib/components/business-analysis-dashboard/business-analysis-modal.component.ts", lineNumber: 171 }); })();
45484
45484
 
45485
+ function ContentGenerationProgressComponent_Conditional_20_Template(rf, ctx) { if (rf & 1) {
45486
+ i0.ɵɵelementStart(0, "div", 20);
45487
+ i0.ɵɵelement(1, "div", 21)(2, "div", 22)(3, "div", 23)(4, "div", 24)(5, "div", 25)(6, "div", 26);
45488
+ i0.ɵɵelementEnd();
45489
+ } if (rf & 2) {
45490
+ const ctx_r0 = i0.ɵɵnextContext();
45491
+ i0.ɵɵstyleProp("left", ctx_r0.progressPercentage(), "%");
45492
+ i0.ɵɵadvance();
45493
+ i0.ɵɵstyleProp("background-color", ctx_r0.dotColor());
45494
+ i0.ɵɵadvance();
45495
+ i0.ɵɵstyleProp("background-color", ctx_r0.dotColor());
45496
+ i0.ɵɵadvance();
45497
+ i0.ɵɵstyleProp("background-color", ctx_r0.dotColor());
45498
+ i0.ɵɵadvance();
45499
+ i0.ɵɵstyleProp("background-color", ctx_r0.dotColor());
45500
+ i0.ɵɵadvance();
45501
+ i0.ɵɵstyleProp("background-color", ctx_r0.dotColor());
45502
+ i0.ɵɵadvance();
45503
+ i0.ɵɵstyleProp("background-color", ctx_r0.dotColor());
45504
+ } }
45505
+ function ContentGenerationProgressComponent_Conditional_21_Template(rf, ctx) { if (rf & 1) {
45506
+ i0.ɵɵelement(0, "div", 27);
45507
+ } if (rf & 2) {
45508
+ const ctx_r0 = i0.ɵɵnextContext();
45509
+ i0.ɵɵstyleProp("left", ctx_r0.progressPercentage(), "%");
45510
+ i0.ɵɵproperty("ngClass", ctx_r0.progressGlowClasses());
45511
+ } }
45512
+ class ContentGenerationProgressComponent {
45513
+ constructor() {
45514
+ this.itemStatus = input(...(ngDevMode ? [undefined, { debugName: "itemStatus" }] : []));
45515
+ this.title = input('Generating Your Analysis', ...(ngDevMode ? [{ debugName: "title" }] : []));
45516
+ this.subtitle = input('This will appear when ready. You can check back later as this will take a few minutes to complete.', ...(ngDevMode ? [{ debugName: "subtitle" }] : []));
45517
+ this.viewMode = input(ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "viewMode" }] : []));
45518
+ this.showIcon = input(true, ...(ngDevMode ? [{ debugName: "showIcon" }] : []));
45519
+ this.progressPercentage = computed(() => {
45520
+ const status = this.itemStatus();
45521
+ if (!status?.percentageComplete) {
45522
+ return 0;
45523
+ }
45524
+ return Math.round(Math.min(100, Math.max(0, status.percentageComplete)));
45525
+ }, ...(ngDevMode ? [{ debugName: "progressPercentage" }] : []));
45526
+ this.progressMessage = computed(() => {
45527
+ const status = this.itemStatus();
45528
+ return status?.message || 'Initializing';
45529
+ }, ...(ngDevMode ? [{ debugName: "progressMessage" }] : []));
45530
+ this.isLightMode = computed(() => this.viewMode() === ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "isLightMode" }] : []));
45531
+ this.containerClasses = computed(() => {
45532
+ return this.isLightMode()
45533
+ ? 'bg-gradient-to-br from-slate-50 to-white'
45534
+ : 'bg-gradient-to-br from-slate-900 to-slate-800';
45535
+ }, ...(ngDevMode ? [{ debugName: "containerClasses" }] : []));
45536
+ this.iconContainerClasses = computed(() => {
45537
+ if (this.isLightMode()) {
45538
+ return 'bg-gradient-to-br from-blue-500 to-purple-500 text-white shadow-lg shadow-blue-500/30';
45539
+ }
45540
+ return 'bg-gradient-to-br from-blue-400 to-purple-400 text-white shadow-lg shadow-blue-400/30';
45541
+ }, ...(ngDevMode ? [{ debugName: "iconContainerClasses" }] : []));
45542
+ this.titleClasses = computed(() => {
45543
+ if (this.isLightMode()) {
45544
+ return 'bg-gradient-to-r from-blue-600 via-purple-600 to-blue-600 bg-clip-text text-transparent';
45545
+ }
45546
+ return 'bg-gradient-to-r from-blue-400 via-purple-400 to-blue-400 bg-clip-text text-transparent';
45547
+ }, ...(ngDevMode ? [{ debugName: "titleClasses" }] : []));
45548
+ this.subtitleClasses = computed(() => {
45549
+ return this.isLightMode()
45550
+ ? 'text-slate-600'
45551
+ : 'text-slate-400';
45552
+ }, ...(ngDevMode ? [{ debugName: "subtitleClasses" }] : []));
45553
+ this.progressMessageClasses = computed(() => {
45554
+ return this.isLightMode()
45555
+ ? 'text-slate-700'
45556
+ : 'text-slate-300';
45557
+ }, ...(ngDevMode ? [{ debugName: "progressMessageClasses" }] : []));
45558
+ this.progressBarContainerClasses = computed(() => {
45559
+ return 'w-full';
45560
+ }, ...(ngDevMode ? [{ debugName: "progressBarContainerClasses" }] : []));
45561
+ this.progressBarBackgroundClasses = computed(() => {
45562
+ return this.isLightMode()
45563
+ ? 'bg-slate-200'
45564
+ : 'bg-slate-700';
45565
+ }, ...(ngDevMode ? [{ debugName: "progressBarBackgroundClasses" }] : []));
45566
+ this.progressBarFillClasses = computed(() => {
45567
+ if (this.isLightMode()) {
45568
+ return 'bg-gradient-to-r from-blue-500 via-cyan-500 to-blue-600 shadow-lg shadow-blue-500/40';
45569
+ }
45570
+ return 'bg-gradient-to-r from-blue-400 via-cyan-400 to-blue-500 shadow-lg shadow-blue-400/40';
45571
+ }, ...(ngDevMode ? [{ debugName: "progressBarFillClasses" }] : []));
45572
+ this.dotClasses = computed(() => {
45573
+ return this.isLightMode()
45574
+ ? 'bg-blue-400 shadow-lg shadow-blue-400/60'
45575
+ : 'bg-cyan-300 shadow-lg shadow-cyan-300/60';
45576
+ }, ...(ngDevMode ? [{ debugName: "dotClasses" }] : []));
45577
+ this.dotColor = computed(() => {
45578
+ return this.isLightMode() ? '#60a5fa' : '#67e8f9';
45579
+ }, ...(ngDevMode ? [{ debugName: "dotColor" }] : []));
45580
+ this.progressGlowClasses = computed(() => {
45581
+ return this.isLightMode()
45582
+ ? 'bg-blue-400 shadow-xl'
45583
+ : 'bg-cyan-300 shadow-xl';
45584
+ }, ...(ngDevMode ? [{ debugName: "progressGlowClasses" }] : []));
45585
+ this.percentageClasses = computed(() => {
45586
+ return this.isLightMode()
45587
+ ? 'text-slate-600'
45588
+ : 'text-slate-400';
45589
+ }, ...(ngDevMode ? [{ debugName: "percentageClasses" }] : []));
45590
+ }
45591
+ static { this.ɵfac = function ContentGenerationProgressComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ContentGenerationProgressComponent)(); }; }
45592
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ContentGenerationProgressComponent, selectors: [["symphiq-content-generation-progress"]], inputs: { itemStatus: [1, "itemStatus"], title: [1, "title"], subtitle: [1, "subtitle"], viewMode: [1, "viewMode"], showIcon: [1, "showIcon"] }, decls: 25, vars: 17, consts: [[1, "min-h-[60vh]", "flex", "items-center", "justify-center", "px-4", "py-12", 3, "ngClass"], [1, "max-w-3xl", "w-full", "space-y-8"], [1, "text-center", "space-y-3"], [1, "flex", "items-center", "justify-center", "mb-4"], [1, "relative", "w-20", "h-20", "rounded-2xl", "flex", "items-center", "justify-center", "icon-pulse", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-10", "h-10"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 10V3L4 14h7v7l9-11h-7z"], [1, "absolute", "inset-0", "rounded-2xl", "icon-glow"], [1, "text-3xl", "sm:text-4xl", "font-bold", 3, "ngClass"], [1, "text-base", "sm:text-lg", "max-w-2xl", "mx-auto", 3, "ngClass"], [1, "space-y-4"], [1, "text-center"], [1, "text-lg", "sm:text-xl", "font-medium", "message-fade", 3, "ngClass"], [1, "relative", "h-3", "rounded-full", 2, "overflow", "visible", 3, "ngClass"], [1, "absolute", "inset-0", "rounded-full", 3, "ngClass"], [1, "absolute", "inset-y-0", "left-0", "rounded-full", "transition-all", "duration-700", "ease-out", "overflow-hidden", 3, "ngClass"], [1, "absolute", "inset-0", "shimmer-effect"], [1, "absolute", "pointer-events-none", 2, "right", "0", "top", "-4px", "bottom", "-4px", "overflow", "visible", 3, "left"], [1, "absolute", "top-1/2", "-translate-y-1/2", "w-4", "h-4", "rounded-full", "blur-md", "transition-all", "duration-700", "ease-out", 2, "margin-left", "-8px", 3, "ngClass", "left"], [1, "text-sm", "font-medium", "tabular-nums", 3, "ngClass"], [1, "absolute", "pointer-events-none", 2, "right", "0", "top", "-4px", "bottom", "-4px", "overflow", "visible"], [1, "animated-dot", "animated-dot-1"], [1, "animated-dot", "animated-dot-2"], [1, "animated-dot", "animated-dot-3"], [1, "animated-dot", "animated-dot-4"], [1, "animated-dot", "animated-dot-5"], [1, "animated-dot", "animated-dot-6"], [1, "absolute", "top-1/2", "-translate-y-1/2", "w-4", "h-4", "rounded-full", "blur-md", "transition-all", "duration-700", "ease-out", 2, "margin-left", "-8px", 3, "ngClass"]], template: function ContentGenerationProgressComponent_Template(rf, ctx) { if (rf & 1) {
45593
+ i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "div", 3)(4, "div", 4);
45594
+ i0.ɵɵnamespaceSVG();
45595
+ i0.ɵɵelementStart(5, "svg", 5);
45596
+ i0.ɵɵelement(6, "path", 6);
45597
+ i0.ɵɵelementEnd();
45598
+ i0.ɵɵnamespaceHTML();
45599
+ i0.ɵɵelement(7, "div", 7);
45600
+ i0.ɵɵelementEnd()();
45601
+ i0.ɵɵelementStart(8, "h2", 8);
45602
+ i0.ɵɵtext(9);
45603
+ i0.ɵɵelementEnd();
45604
+ i0.ɵɵelementStart(10, "p", 9);
45605
+ i0.ɵɵtext(11);
45606
+ i0.ɵɵelementEnd()();
45607
+ i0.ɵɵelementStart(12, "div", 10)(13, "div", 11)(14, "p", 12);
45608
+ i0.ɵɵtext(15);
45609
+ i0.ɵɵelementEnd()();
45610
+ i0.ɵɵelementStart(16, "div", 13);
45611
+ i0.ɵɵelement(17, "div", 14);
45612
+ i0.ɵɵelementStart(18, "div", 15);
45613
+ i0.ɵɵelement(19, "div", 16);
45614
+ i0.ɵɵelementEnd();
45615
+ i0.ɵɵconditionalCreate(20, ContentGenerationProgressComponent_Conditional_20_Template, 7, 14, "div", 17);
45616
+ i0.ɵɵconditionalCreate(21, ContentGenerationProgressComponent_Conditional_21_Template, 1, 3, "div", 18);
45617
+ i0.ɵɵelementEnd();
45618
+ i0.ɵɵelementStart(22, "div", 11)(23, "span", 19);
45619
+ i0.ɵɵtext(24);
45620
+ i0.ɵɵelementEnd()()()()();
45621
+ } if (rf & 2) {
45622
+ i0.ɵɵproperty("ngClass", ctx.containerClasses());
45623
+ i0.ɵɵadvance(4);
45624
+ i0.ɵɵproperty("ngClass", ctx.iconContainerClasses());
45625
+ i0.ɵɵadvance(4);
45626
+ i0.ɵɵproperty("ngClass", ctx.titleClasses());
45627
+ i0.ɵɵadvance();
45628
+ i0.ɵɵtextInterpolate1(" ", ctx.title(), " ");
45629
+ i0.ɵɵadvance();
45630
+ i0.ɵɵproperty("ngClass", ctx.subtitleClasses());
45631
+ i0.ɵɵadvance();
45632
+ i0.ɵɵtextInterpolate1(" ", ctx.subtitle(), " ");
45633
+ i0.ɵɵadvance(3);
45634
+ i0.ɵɵproperty("ngClass", ctx.progressMessageClasses());
45635
+ i0.ɵɵadvance();
45636
+ i0.ɵɵtextInterpolate1(" ", ctx.progressMessage(), " ");
45637
+ i0.ɵɵadvance();
45638
+ i0.ɵɵproperty("ngClass", ctx.progressBarContainerClasses());
45639
+ i0.ɵɵadvance();
45640
+ i0.ɵɵproperty("ngClass", ctx.progressBarBackgroundClasses());
45641
+ i0.ɵɵadvance();
45642
+ i0.ɵɵstyleProp("width", ctx.progressPercentage(), "%");
45643
+ i0.ɵɵproperty("ngClass", ctx.progressBarFillClasses());
45644
+ i0.ɵɵadvance(2);
45645
+ i0.ɵɵconditional(ctx.progressPercentage() > 0 && ctx.progressPercentage() < 100 ? 20 : -1);
45646
+ i0.ɵɵadvance();
45647
+ i0.ɵɵconditional(ctx.progressPercentage() > 0 && ctx.progressPercentage() < 100 ? 21 : -1);
45648
+ i0.ɵɵadvance(2);
45649
+ i0.ɵɵproperty("ngClass", ctx.percentageClasses());
45650
+ i0.ɵɵadvance();
45651
+ i0.ɵɵtextInterpolate1(" ", ctx.progressPercentage(), "% complete ");
45652
+ } }, dependencies: [CommonModule, i1$1.NgClass], styles: ["@keyframes _ngcontent-%COMP%_icon-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.9}}@keyframes _ngcontent-%COMP%_icon-glow-pulse{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.6;transform:scale(1.2)}}@keyframes _ngcontent-%COMP%_shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes _ngcontent-%COMP%_dots-move{0%{left:0%;opacity:0}3%{left:3%;opacity:1}97%{left:97%;opacity:1}to{left:100%;opacity:0}}@keyframes _ngcontent-%COMP%_dots-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.4)}}@keyframes _ngcontent-%COMP%_message-fade{0%,to{opacity:1}50%{opacity:.7}}.icon-pulse[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_icon-pulse 2s ease-in-out infinite}.icon-glow[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_icon-glow-pulse 2s ease-in-out infinite}.shimmer-effect[_ngcontent-%COMP%]{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.3) 50%,transparent 100%);animation:_ngcontent-%COMP%_shimmer 2s ease-in-out infinite}.message-fade[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_message-fade 3s ease-in-out infinite}.animated-dot[_ngcontent-%COMP%]{position:absolute;top:50%;width:12px;height:12px;border-radius:50%;margin-top:-6px;margin-left:-6px;animation:_ngcontent-%COMP%_dots-move 6s linear infinite,_ngcontent-%COMP%_dots-pulse 2s ease-in-out infinite;will-change:left,transform,opacity;z-index:20;box-shadow:0 0 8px currentColor,0 0 16px currentColor}.animated-dot-1[_ngcontent-%COMP%]{animation-delay:0s,0s}.animated-dot-2[_ngcontent-%COMP%]{animation-delay:1s,0s}.animated-dot-3[_ngcontent-%COMP%]{animation-delay:2s,0s}.animated-dot-4[_ngcontent-%COMP%]{animation-delay:3s,0s}.animated-dot-5[_ngcontent-%COMP%]{animation-delay:4s,0s}.animated-dot-6[_ngcontent-%COMP%]{animation-delay:5s,0s}"], changeDetection: 0 }); }
45653
+ }
45654
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ContentGenerationProgressComponent, [{
45655
+ type: Component,
45656
+ args: [{ selector: 'symphiq-content-generation-progress', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: `
45657
+ <div [ngClass]="containerClasses()" class="min-h-[60vh] flex items-center justify-center px-4 py-12">
45658
+ <div class="max-w-3xl w-full space-y-8">
45659
+ <!-- Title Section -->
45660
+ <div class="text-center space-y-3">
45661
+ <div class="flex items-center justify-center mb-4">
45662
+ <div [ngClass]="iconContainerClasses()" class="relative w-20 h-20 rounded-2xl flex items-center justify-center icon-pulse">
45663
+ <svg class="w-10 h-10" fill="none" stroke="currentColor" viewBox="0 0 24 24">
45664
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 10V3L4 14h7v7l9-11h-7z"></path>
45665
+ </svg>
45666
+ <div class="absolute inset-0 rounded-2xl icon-glow"></div>
45667
+ </div>
45668
+ </div>
45669
+
45670
+ <h2 [ngClass]="titleClasses()" class="text-3xl sm:text-4xl font-bold">
45671
+ {{ title() }}
45672
+ </h2>
45673
+
45674
+ <p [ngClass]="subtitleClasses()" class="text-base sm:text-lg max-w-2xl mx-auto">
45675
+ {{ subtitle() }}
45676
+ </p>
45677
+ </div>
45678
+
45679
+ <!-- Progress Section -->
45680
+ <div class="space-y-4">
45681
+ <!-- Progress Message -->
45682
+ <div class="text-center">
45683
+ <p [ngClass]="progressMessageClasses()" class="text-lg sm:text-xl font-medium message-fade">
45684
+ {{ progressMessage() }}
45685
+ </p>
45686
+ </div>
45687
+
45688
+ <!-- Progress Bar Container -->
45689
+ <div [ngClass]="progressBarContainerClasses()" class="relative h-3 rounded-full" style="overflow: visible;">
45690
+ <!-- Background Track -->
45691
+ <div [ngClass]="progressBarBackgroundClasses()" class="absolute inset-0 rounded-full"></div>
45692
+
45693
+ <!-- Solid Fill with Gradient -->
45694
+ <div
45695
+ [ngClass]="progressBarFillClasses()"
45696
+ [style.width.%]="progressPercentage()"
45697
+ class="absolute inset-y-0 left-0 rounded-full transition-all duration-700 ease-out overflow-hidden">
45698
+ <!-- Inner shimmer effect -->
45699
+ <div class="absolute inset-0 shimmer-effect"></div>
45700
+ </div>
45701
+
45702
+ <!-- Animated Dots Overlay (container positioned at progress edge, dots animate within) -->
45703
+ @if (progressPercentage() > 0 && progressPercentage() < 100) {
45704
+ <div
45705
+ class="absolute pointer-events-none"
45706
+ [style.left.%]="progressPercentage()"
45707
+ style="right: 0; top: -4px; bottom: -4px; overflow: visible;">
45708
+ <div class="animated-dot animated-dot-1" [style.background-color]="dotColor()"></div>
45709
+ <div class="animated-dot animated-dot-2" [style.background-color]="dotColor()"></div>
45710
+ <div class="animated-dot animated-dot-3" [style.background-color]="dotColor()"></div>
45711
+ <div class="animated-dot animated-dot-4" [style.background-color]="dotColor()"></div>
45712
+ <div class="animated-dot animated-dot-5" [style.background-color]="dotColor()"></div>
45713
+ <div class="animated-dot animated-dot-6" [style.background-color]="dotColor()"></div>
45714
+ </div>
45715
+ }
45716
+
45717
+ <!-- Glow effect at the progress edge -->
45718
+ @if (progressPercentage() > 0 && progressPercentage() < 100) {
45719
+ <div
45720
+ [ngClass]="progressGlowClasses()"
45721
+ [style.left.%]="progressPercentage()"
45722
+ class="absolute top-1/2 -translate-y-1/2 w-4 h-4 rounded-full blur-md transition-all duration-700 ease-out"
45723
+ style="margin-left: -8px;">
45724
+ </div>
45725
+ }
45726
+ </div>
45727
+
45728
+ <!-- Progress Percentage -->
45729
+ <div class="text-center">
45730
+ <span [ngClass]="percentageClasses()" class="text-sm font-medium tabular-nums">
45731
+ {{ progressPercentage() }}% complete
45732
+ </span>
45733
+ </div>
45734
+ </div>
45735
+ </div>
45736
+ </div>
45737
+ `, styles: ["@keyframes icon-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.9}}@keyframes icon-glow-pulse{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.6;transform:scale(1.2)}}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes dots-move{0%{left:0%;opacity:0}3%{left:3%;opacity:1}97%{left:97%;opacity:1}to{left:100%;opacity:0}}@keyframes dots-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.4)}}@keyframes message-fade{0%,to{opacity:1}50%{opacity:.7}}.icon-pulse{animation:icon-pulse 2s ease-in-out infinite}.icon-glow{animation:icon-glow-pulse 2s ease-in-out infinite}.shimmer-effect{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.3) 50%,transparent 100%);animation:shimmer 2s ease-in-out infinite}.message-fade{animation:message-fade 3s ease-in-out infinite}.animated-dot{position:absolute;top:50%;width:12px;height:12px;border-radius:50%;margin-top:-6px;margin-left:-6px;animation:dots-move 6s linear infinite,dots-pulse 2s ease-in-out infinite;will-change:left,transform,opacity;z-index:20;box-shadow:0 0 8px currentColor,0 0 16px currentColor}.animated-dot-1{animation-delay:0s,0s}.animated-dot-2{animation-delay:1s,0s}.animated-dot-3{animation-delay:2s,0s}.animated-dot-4{animation-delay:3s,0s}.animated-dot-5{animation-delay:4s,0s}.animated-dot-6{animation-delay:5s,0s}\n"] }]
45738
+ }], null, { itemStatus: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemStatus", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], showIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIcon", required: false }] }] }); })();
45739
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ContentGenerationProgressComponent, { className: "ContentGenerationProgressComponent", filePath: "lib/components/shared/content-generation-progress.component.ts", lineNumber: 222 }); })();
45740
+
45741
+ class ContentGenerationProgressWithConfettiComponent {
45742
+ constructor() {
45743
+ this.itemStatus = input(...(ngDevMode ? [undefined, { debugName: "itemStatus" }] : []));
45744
+ this.title = input('Generating Your Analysis', ...(ngDevMode ? [{ debugName: "title" }] : []));
45745
+ this.subtitle = input('This will appear when ready. You can check back later as this will take a few minutes to complete.', ...(ngDevMode ? [{ debugName: "subtitle" }] : []));
45746
+ this.viewMode = input(ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "viewMode" }] : []));
45747
+ this.showIcon = input(true, ...(ngDevMode ? [{ debugName: "showIcon" }] : []));
45748
+ this.profile = input(...(ngDevMode ? [undefined, { debugName: "profile" }] : []));
45749
+ this.funnelAnalysis = input(...(ngDevMode ? [undefined, { debugName: "funnelAnalysis" }] : []));
45750
+ this.confettiIntensity = input('normal', ...(ngDevMode ? [{ debugName: "confettiIntensity" }] : []));
45751
+ this.enableConfetti = input(true, ...(ngDevMode ? [{ debugName: "enableConfetti" }] : []));
45752
+ this.confettiDelay = input(200, ...(ngDevMode ? [{ debugName: "confettiDelay" }] : []));
45753
+ this.confettiService = inject(ConfettiService);
45754
+ this.hasCelebrated = signal(false, ...(ngDevMode ? [{ debugName: "hasCelebrated" }] : []));
45755
+ effect(() => {
45756
+ const currentProfile = this.profile();
45757
+ const currentFunnelAnalysis = this.funnelAnalysis();
45758
+ const currentStatus = currentProfile?.selfContentStatus ?? currentFunnelAnalysis?.selfContentStatus;
45759
+ if (!this.enableConfetti()) {
45760
+ return;
45761
+ }
45762
+ if (currentStatus === AiDynamicContentStatusEnum.GENERATED && !this.hasCelebrated()) {
45763
+ untracked(() => {
45764
+ this.confettiService.trigger({
45765
+ intensity: this.confettiIntensity(),
45766
+ delay: this.confettiDelay(),
45767
+ viewMode: this.viewMode(),
45768
+ });
45769
+ this.hasCelebrated.set(true);
45770
+ });
45771
+ }
45772
+ if (currentStatus === AiDynamicContentStatusEnum.REQUESTED ||
45773
+ currentStatus === AiDynamicContentStatusEnum.GENERATING) {
45774
+ untracked(() => {
45775
+ this.hasCelebrated.set(false);
45776
+ });
45777
+ }
45778
+ });
45779
+ }
45780
+ static { this.ɵfac = function ContentGenerationProgressWithConfettiComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ContentGenerationProgressWithConfettiComponent)(); }; }
45781
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ContentGenerationProgressWithConfettiComponent, selectors: [["symphiq-content-generation-progress-with-confetti"]], inputs: { itemStatus: [1, "itemStatus"], title: [1, "title"], subtitle: [1, "subtitle"], viewMode: [1, "viewMode"], showIcon: [1, "showIcon"], profile: [1, "profile"], funnelAnalysis: [1, "funnelAnalysis"], confettiIntensity: [1, "confettiIntensity"], enableConfetti: [1, "enableConfetti"], confettiDelay: [1, "confettiDelay"] }, decls: 1, vars: 5, consts: [[3, "itemStatus", "title", "subtitle", "viewMode", "showIcon"]], template: function ContentGenerationProgressWithConfettiComponent_Template(rf, ctx) { if (rf & 1) {
45782
+ i0.ɵɵelement(0, "symphiq-content-generation-progress", 0);
45783
+ } if (rf & 2) {
45784
+ i0.ɵɵproperty("itemStatus", ctx.itemStatus())("title", ctx.title())("subtitle", ctx.subtitle())("viewMode", ctx.viewMode())("showIcon", ctx.showIcon());
45785
+ } }, dependencies: [ContentGenerationProgressComponent], encapsulation: 2, changeDetection: 0 }); }
45786
+ }
45787
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ContentGenerationProgressWithConfettiComponent, [{
45788
+ type: Component,
45789
+ args: [{
45790
+ selector: 'symphiq-content-generation-progress-with-confetti',
45791
+ standalone: true,
45792
+ imports: [ContentGenerationProgressComponent],
45793
+ changeDetection: ChangeDetectionStrategy.OnPush,
45794
+ template: `
45795
+ <symphiq-content-generation-progress
45796
+ [itemStatus]="itemStatus()"
45797
+ [title]="title()"
45798
+ [subtitle]="subtitle()"
45799
+ [viewMode]="viewMode()"
45800
+ [showIcon]="showIcon()"
45801
+ />
45802
+ `
45803
+ }]
45804
+ }], () => [], { itemStatus: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemStatus", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], showIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIcon", required: false }] }], profile: [{ type: i0.Input, args: [{ isSignal: true, alias: "profile", required: false }] }], funnelAnalysis: [{ type: i0.Input, args: [{ isSignal: true, alias: "funnelAnalysis", required: false }] }], confettiIntensity: [{ type: i0.Input, args: [{ isSignal: true, alias: "confettiIntensity", required: false }] }], enableConfetti: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableConfetti", required: false }] }], confettiDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "confettiDelay", required: false }] }] }); })();
45805
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ContentGenerationProgressWithConfettiComponent, { className: "ContentGenerationProgressWithConfettiComponent", filePath: "lib/components/shared/content-generation-progress-with-confetti.component.ts", lineNumber: 29 }); })();
45806
+
45485
45807
  const _c0$w = ["dashboardContainer"];
45486
45808
  const _c1$d = () => ({});
45487
45809
  const _c2$8 = () => [1, 2, 3, 4, 5, 6];
@@ -45732,35 +46054,53 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_49_Template(rf, ctx
45732
46054
  } }
45733
46055
  function SymphiqFunnelAnalysisDashboardComponent_Conditional_50_Conditional_0_Template(rf, ctx) { if (rf & 1) {
45734
46056
  const _r15 = i0.ɵɵgetCurrentView();
45735
- i0.ɵɵelementStart(0, "symphiq-journey-progress-indicator", 77);
46057
+ i0.ɵɵelementStart(0, "symphiq-journey-progress-indicator", 67);
45736
46058
  i0.ɵɵlistener("stepClick", function SymphiqFunnelAnalysisDashboardComponent_Conditional_50_Conditional_0_Template_symphiq_journey_progress_indicator_stepClick_0_listener($event) { i0.ɵɵrestoreView(_r15); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.stepClick.emit($event)); })("nextStepClick", function SymphiqFunnelAnalysisDashboardComponent_Conditional_50_Conditional_0_Template_symphiq_journey_progress_indicator_nextStepClick_0_listener() { i0.ɵɵrestoreView(_r15); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.nextStepClick.emit()); });
45737
46059
  i0.ɵɵelementEnd();
46060
+ } if (rf & 2) {
46061
+ const ctx_r2 = i0.ɵɵnextContext(2);
46062
+ i0.ɵɵproperty("viewMode", ctx_r2.isLightMode() ? ctx_r2.ViewModeEnum.LIGHT : ctx_r2.ViewModeEnum.DARK)("currentStepId", ctx_r2.JourneyStepIdEnum.FUNNEL_ANALYSIS)("showNextStepAction", false)("forDemo", ctx_r2.forDemo())("maxAccessibleStepId", ctx_r2.maxAccessibleStepId());
46063
+ } }
46064
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_50_Template(rf, ctx) { if (rf & 1) {
46065
+ i0.ɵɵconditionalCreate(0, SymphiqFunnelAnalysisDashboardComponent_Conditional_50_Conditional_0_Template, 1, 5, "symphiq-journey-progress-indicator", 65);
46066
+ i0.ɵɵelement(1, "symphiq-content-generation-progress-with-confetti", 66);
46067
+ } if (rf & 2) {
46068
+ const ctx_r2 = i0.ɵɵnextContext();
46069
+ i0.ɵɵconditional(!ctx_r2.isOnboarded() ? 0 : -1);
46070
+ i0.ɵɵadvance();
46071
+ i0.ɵɵproperty("viewMode", ctx_r2.isLightMode() ? ctx_r2.ViewModeEnum.LIGHT : ctx_r2.ViewModeEnum.DARK)("itemStatus", ctx_r2.itemStatus())("funnelAnalysis", ctx_r2.funnelAnalysis())("confettiIntensity", "celebration")("title", "We are generating a new Funnel Analysis for you.")("subtitle", "It will appear here when ready. You can check back later as this will take a few minutes to complete.");
46072
+ } }
46073
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_0_Template(rf, ctx) { if (rf & 1) {
46074
+ const _r16 = i0.ɵɵgetCurrentView();
46075
+ i0.ɵɵelementStart(0, "symphiq-journey-progress-indicator", 67);
46076
+ i0.ɵɵlistener("stepClick", function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_0_Template_symphiq_journey_progress_indicator_stepClick_0_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.stepClick.emit($event)); })("nextStepClick", function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_0_Template_symphiq_journey_progress_indicator_nextStepClick_0_listener() { i0.ɵɵrestoreView(_r16); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.nextStepClick.emit()); });
46077
+ i0.ɵɵelementEnd();
45738
46078
  } if (rf & 2) {
45739
46079
  const ctx_r2 = i0.ɵɵnextContext(2);
45740
46080
  i0.ɵɵproperty("viewMode", ctx_r2.isLightMode() ? ctx_r2.ViewModeEnum.LIGHT : ctx_r2.ViewModeEnum.DARK)("currentStepId", ctx_r2.JourneyStepIdEnum.FUNNEL_ANALYSIS)("showNextStepAction", true)("forDemo", ctx_r2.forDemo())("maxAccessibleStepId", ctx_r2.maxAccessibleStepId());
45741
46081
  } }
45742
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_50_Conditional_5_For_13_Template(rf, ctx) { if (rf & 1) {
45743
- i0.ɵɵelement(0, "symphiq-funnel-analysis-insight-card", 84);
46082
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_For_13_Template(rf, ctx) { if (rf & 1) {
46083
+ i0.ɵɵelement(0, "symphiq-funnel-analysis-insight-card", 85);
45744
46084
  } if (rf & 2) {
45745
- const insight_r16 = ctx.$implicit;
46085
+ const insight_r17 = ctx.$implicit;
45746
46086
  const ctx_r2 = i0.ɵɵnextContext(3);
45747
- i0.ɵɵproperty("insight", insight_r16)("allMetrics", ctx_r2.allMetrics())("charts", ctx_r2.chartsForInsight(insight_r16))("allCharts", ctx_r2.allCharts())("allBusinessInsights", ctx_r2.allBusinessInsights())("isLightMode", ctx_r2.isLightMode())("viewMode", ctx_r2.viewMode())("isCompactMode", true)("isLoading", ctx_r2.isDataLoading());
46087
+ i0.ɵɵproperty("insight", insight_r17)("allMetrics", ctx_r2.allMetrics())("charts", ctx_r2.chartsForInsight(insight_r17))("allCharts", ctx_r2.allCharts())("allBusinessInsights", ctx_r2.allBusinessInsights())("isLightMode", ctx_r2.isLightMode())("viewMode", ctx_r2.viewMode())("isCompactMode", true)("isLoading", ctx_r2.isDataLoading());
45748
46088
  } }
45749
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_50_Conditional_5_Template(rf, ctx) { if (rf & 1) {
45750
- i0.ɵɵelementStart(0, "section", 69)(1, "div", 78)(2, "div", 9)(3, "div", 79)(4, "div", 9);
46089
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_Template(rf, ctx) { if (rf & 1) {
46090
+ i0.ɵɵelementStart(0, "section", 71)(1, "div", 79)(2, "div", 9)(3, "div", 80)(4, "div", 9);
45751
46091
  i0.ɵɵnamespaceSVG();
45752
- i0.ɵɵelementStart(5, "svg", 80);
45753
- i0.ɵɵelement(6, "path", 81);
46092
+ i0.ɵɵelementStart(5, "svg", 81);
46093
+ i0.ɵɵelement(6, "path", 82);
45754
46094
  i0.ɵɵelementEnd();
45755
46095
  i0.ɵɵnamespaceHTML();
45756
- i0.ɵɵelementStart(7, "h2", 82);
46096
+ i0.ɵɵelementStart(7, "h2", 83);
45757
46097
  i0.ɵɵtext(8, "Key Insights");
45758
46098
  i0.ɵɵelementEnd()()()();
45759
46099
  i0.ɵɵelementStart(9, "span", 23);
45760
46100
  i0.ɵɵtext(10);
45761
46101
  i0.ɵɵelementEnd()();
45762
- i0.ɵɵelementStart(11, "div", 83);
45763
- i0.ɵɵrepeaterCreate(12, SymphiqFunnelAnalysisDashboardComponent_Conditional_50_Conditional_5_For_13_Template, 1, 9, "symphiq-funnel-analysis-insight-card", 84, i0.ɵɵrepeaterTrackByIndex);
46102
+ i0.ɵɵelementStart(11, "div", 84);
46103
+ i0.ɵɵrepeaterCreate(12, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_For_13_Template, 1, 9, "symphiq-funnel-analysis-insight-card", 85, i0.ɵɵrepeaterTrackByIndex);
45764
46104
  i0.ɵɵelementEnd()();
45765
46105
  } if (rf & 2) {
45766
46106
  const ctx_r2 = i0.ɵɵnextContext(2);
@@ -45777,87 +46117,87 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_50_Conditional_5_Te
45777
46117
  i0.ɵɵadvance(2);
45778
46118
  i0.ɵɵrepeater(ctx_r2.insights());
45779
46119
  } }
45780
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_50_Conditional_8_Conditional_1_Template(rf, ctx) { if (rf & 1) {
45781
- i0.ɵɵelement(0, "symphiq-skeleton-loader", 85);
46120
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_8_Conditional_1_Template(rf, ctx) { if (rf & 1) {
46121
+ i0.ɵɵelement(0, "symphiq-skeleton-loader", 86);
45782
46122
  } if (rf & 2) {
45783
46123
  const ctx_r2 = i0.ɵɵnextContext(3);
45784
46124
  i0.ɵɵproperty("width", "100%")("height", "200px")("isLightMode", ctx_r2.isLightMode());
45785
46125
  } }
45786
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_50_Conditional_8_Conditional_2_Template(rf, ctx) { if (rf & 1) {
45787
- const _r17 = i0.ɵɵgetCurrentView();
45788
- i0.ɵɵelementStart(0, "symphiq-funnel-analysis-overall-assessment", 87);
45789
- i0.ɵɵlistener("scrollToSection", function SymphiqFunnelAnalysisDashboardComponent_Conditional_50_Conditional_8_Conditional_2_Template_symphiq_funnel_analysis_overall_assessment_scrollToSection_0_listener($event) { i0.ɵɵrestoreView(_r17); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.scrollToSection($event)); });
46126
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_8_Conditional_2_Template(rf, ctx) { if (rf & 1) {
46127
+ const _r18 = i0.ɵɵgetCurrentView();
46128
+ i0.ɵɵelementStart(0, "symphiq-funnel-analysis-overall-assessment", 88);
46129
+ i0.ɵɵlistener("scrollToSection", function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_8_Conditional_2_Template_symphiq_funnel_analysis_overall_assessment_scrollToSection_0_listener($event) { i0.ɵɵrestoreView(_r18); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.scrollToSection($event)); });
45790
46130
  i0.ɵɵelementEnd();
45791
46131
  } if (rf & 2) {
45792
46132
  const ctx_r2 = i0.ɵɵnextContext(3);
45793
46133
  i0.ɵɵproperty("assessment", ctx_r2.performanceOverview().overallAssessment || i0.ɵɵpureFunction0(11, _c1$d))("revenueMetric", ctx_r2.revenueMetric())("charts", ctx_r2.chartsForItem("OVERALL_ASSESSMENT"))("metrics", ctx_r2.allMetrics())("isLightMode", ctx_r2.isLightMode())("isLoading", ctx_r2.isOverallAssessmentLoading())("isCompactMode", true)("isChartsLoading", ctx_r2.areChartsLoading())("strengths", ctx_r2.strengths())("weaknesses", ctx_r2.weaknesses())("currencySymbol", ctx_r2.currencySymbol());
45794
46134
  } }
45795
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_50_Conditional_8_Template(rf, ctx) { if (rf & 1) {
45796
- i0.ɵɵelementStart(0, "div", 72);
45797
- i0.ɵɵconditionalCreate(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_50_Conditional_8_Conditional_1_Template, 1, 3, "symphiq-skeleton-loader", 85)(2, SymphiqFunnelAnalysisDashboardComponent_Conditional_50_Conditional_8_Conditional_2_Template, 1, 12, "symphiq-funnel-analysis-overall-assessment", 86);
46135
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_8_Template(rf, ctx) { if (rf & 1) {
46136
+ i0.ɵɵelementStart(0, "div", 74);
46137
+ i0.ɵɵconditionalCreate(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_8_Conditional_1_Template, 1, 3, "symphiq-skeleton-loader", 86)(2, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_8_Conditional_2_Template, 1, 12, "symphiq-funnel-analysis-overall-assessment", 87);
45798
46138
  i0.ɵɵelementEnd();
45799
46139
  } if (rf & 2) {
45800
46140
  const ctx_r2 = i0.ɵɵnextContext(2);
45801
46141
  i0.ɵɵadvance();
45802
46142
  i0.ɵɵconditional(ctx_r2.isDataLoading() ? 1 : 2);
45803
46143
  } }
45804
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_50_Conditional_10_For_2_Conditional_2_For_2_Template(rf, ctx) { if (rf & 1) {
45805
- i0.ɵɵelement(0, "symphiq-funnel-analysis-metric-card", 89);
46144
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_10_For_2_Conditional_2_For_2_Template(rf, ctx) { if (rf & 1) {
46145
+ i0.ɵɵelement(0, "symphiq-funnel-analysis-metric-card", 90);
45806
46146
  } if (rf & 2) {
45807
- const metric_r18 = ctx.$implicit;
46147
+ const metric_r19 = ctx.$implicit;
45808
46148
  const ctx_r2 = i0.ɵɵnextContext(5);
45809
- i0.ɵɵproperty("metric", metric_r18)("insights", ctx_r2.insights())("charts", ctx_r2.chartsForMetric(metric_r18))("allCharts", ctx_r2.allCharts())("analysis", ctx_r2.analysisData())("isLightMode", ctx_r2.isLightMode())("viewMode", ctx_r2.viewMode())("isCompactMode", true)("currencySymbol", ctx_r2.currencySymbol());
46149
+ i0.ɵɵproperty("metric", metric_r19)("insights", ctx_r2.insights())("charts", ctx_r2.chartsForMetric(metric_r19))("allCharts", ctx_r2.allCharts())("analysis", ctx_r2.analysisData())("isLightMode", ctx_r2.isLightMode())("viewMode", ctx_r2.viewMode())("isCompactMode", true)("currencySymbol", ctx_r2.currencySymbol());
45810
46150
  } }
45811
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_50_Conditional_10_For_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
45812
- i0.ɵɵelementStart(0, "div", 90);
45813
- i0.ɵɵrepeaterCreate(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_50_Conditional_10_For_2_Conditional_2_For_2_Template, 1, 9, "symphiq-funnel-analysis-metric-card", 89, i0.ɵɵrepeaterTrackByIndex);
46151
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_10_For_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
46152
+ i0.ɵɵelementStart(0, "div", 91);
46153
+ i0.ɵɵrepeaterCreate(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_10_For_2_Conditional_2_For_2_Template, 1, 9, "symphiq-funnel-analysis-metric-card", 90, i0.ɵɵrepeaterTrackByIndex);
45814
46154
  i0.ɵɵelementEnd();
45815
46155
  } if (rf & 2) {
45816
- const funnelGroup_r19 = i0.ɵɵnextContext().$implicit;
46156
+ const funnelGroup_r20 = i0.ɵɵnextContext().$implicit;
45817
46157
  i0.ɵɵadvance();
45818
- i0.ɵɵrepeater(funnelGroup_r19.relatedMetrics);
46158
+ i0.ɵɵrepeater(funnelGroup_r20.relatedMetrics);
45819
46159
  } }
45820
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_50_Conditional_10_For_2_Template(rf, ctx) { if (rf & 1) {
45821
- i0.ɵɵelementStart(0, "div", 88);
45822
- i0.ɵɵelement(1, "symphiq-funnel-analysis-metric-card", 89);
46160
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_10_For_2_Template(rf, ctx) { if (rf & 1) {
46161
+ i0.ɵɵelementStart(0, "div", 89);
46162
+ i0.ɵɵelement(1, "symphiq-funnel-analysis-metric-card", 90);
45823
46163
  i0.ɵɵelementEnd();
45824
- i0.ɵɵconditionalCreate(2, SymphiqFunnelAnalysisDashboardComponent_Conditional_50_Conditional_10_For_2_Conditional_2_Template, 3, 0, "div", 90);
46164
+ i0.ɵɵconditionalCreate(2, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_10_For_2_Conditional_2_Template, 3, 0, "div", 91);
45825
46165
  } if (rf & 2) {
45826
- const funnelGroup_r19 = ctx.$implicit;
46166
+ const funnelGroup_r20 = ctx.$implicit;
45827
46167
  const ctx_r2 = i0.ɵɵnextContext(3);
45828
46168
  i0.ɵɵadvance();
45829
- i0.ɵɵproperty("metric", funnelGroup_r19.funnelMetric)("insights", ctx_r2.insights())("charts", ctx_r2.chartsForMetric(funnelGroup_r19.funnelMetric))("allCharts", ctx_r2.allCharts())("analysis", ctx_r2.analysisData())("isLightMode", ctx_r2.isLightMode())("viewMode", ctx_r2.viewMode())("isCompactMode", true)("currencySymbol", ctx_r2.currencySymbol());
46169
+ i0.ɵɵproperty("metric", funnelGroup_r20.funnelMetric)("insights", ctx_r2.insights())("charts", ctx_r2.chartsForMetric(funnelGroup_r20.funnelMetric))("allCharts", ctx_r2.allCharts())("analysis", ctx_r2.analysisData())("isLightMode", ctx_r2.isLightMode())("viewMode", ctx_r2.viewMode())("isCompactMode", true)("currencySymbol", ctx_r2.currencySymbol());
45830
46170
  i0.ɵɵadvance();
45831
- i0.ɵɵconditional(funnelGroup_r19.relatedMetrics.length > 0 ? 2 : -1);
46171
+ i0.ɵɵconditional(funnelGroup_r20.relatedMetrics.length > 0 ? 2 : -1);
45832
46172
  } }
45833
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_50_Conditional_10_Template(rf, ctx) { if (rf & 1) {
45834
- i0.ɵɵelementStart(0, "div", 74);
45835
- i0.ɵɵrepeaterCreate(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_50_Conditional_10_For_2_Template, 3, 10, null, null, i0.ɵɵrepeaterTrackByIndex);
46173
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_10_Template(rf, ctx) { if (rf & 1) {
46174
+ i0.ɵɵelementStart(0, "div", 76);
46175
+ i0.ɵɵrepeaterCreate(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_10_For_2_Template, 3, 10, null, null, i0.ɵɵrepeaterTrackByIndex);
45836
46176
  i0.ɵɵelementEnd();
45837
46177
  } if (rf & 2) {
45838
46178
  const ctx_r2 = i0.ɵɵnextContext(2);
45839
46179
  i0.ɵɵadvance();
45840
46180
  i0.ɵɵrepeater(ctx_r2.groupedMetrics());
45841
46181
  } }
45842
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_50_Conditional_12_For_2_Template(rf, ctx) { if (rf & 1) {
45843
- i0.ɵɵelement(0, "symphiq-funnel-analysis-breakdown-section", 91);
46182
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_12_For_2_Template(rf, ctx) { if (rf & 1) {
46183
+ i0.ɵɵelement(0, "symphiq-funnel-analysis-breakdown-section", 92);
45844
46184
  } if (rf & 2) {
45845
- const breakdown_r20 = ctx.$implicit;
46185
+ const breakdown_r21 = ctx.$implicit;
45846
46186
  const ctx_r2 = i0.ɵɵnextContext(3);
45847
- i0.ɵɵproperty("breakdown", breakdown_r20)("charts", ctx_r2.chartsForBreakdown(breakdown_r20))("isLightMode", ctx_r2.isLightMode())("isLoading", ctx_r2.isDataLoading())("isCompactMode", true)("currencySymbol", ctx_r2.currencySymbol());
46187
+ i0.ɵɵproperty("breakdown", breakdown_r21)("charts", ctx_r2.chartsForBreakdown(breakdown_r21))("isLightMode", ctx_r2.isLightMode())("isLoading", ctx_r2.isDataLoading())("isCompactMode", true)("currencySymbol", ctx_r2.currencySymbol());
45848
46188
  } }
45849
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_50_Conditional_12_Template(rf, ctx) { if (rf & 1) {
45850
- i0.ɵɵelementStart(0, "div", 74);
45851
- i0.ɵɵrepeaterCreate(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_50_Conditional_12_For_2_Template, 1, 6, "symphiq-funnel-analysis-breakdown-section", 91, i0.ɵɵrepeaterTrackByIndex);
46189
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_12_Template(rf, ctx) { if (rf & 1) {
46190
+ i0.ɵɵelementStart(0, "div", 76);
46191
+ i0.ɵɵrepeaterCreate(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_12_For_2_Template, 1, 6, "symphiq-funnel-analysis-breakdown-section", 92, i0.ɵɵrepeaterTrackByIndex);
45852
46192
  i0.ɵɵelementEnd();
45853
46193
  } if (rf & 2) {
45854
46194
  const ctx_r2 = i0.ɵɵnextContext(2);
45855
46195
  i0.ɵɵadvance();
45856
46196
  i0.ɵɵrepeater(ctx_r2.breakdowns());
45857
46197
  } }
45858
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_50_Conditional_14_Template(rf, ctx) { if (rf & 1) {
45859
- i0.ɵɵelementStart(0, "div", 72);
45860
- i0.ɵɵelement(1, "symphiq-competitive-intelligence-view", 92);
46198
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_14_Template(rf, ctx) { if (rf & 1) {
46199
+ i0.ɵɵelementStart(0, "div", 74);
46200
+ i0.ɵɵelement(1, "symphiq-competitive-intelligence-view", 93);
45861
46201
  i0.ɵɵelementEnd();
45862
46202
  } if (rf & 2) {
45863
46203
  let tmp_7_0;
@@ -45865,23 +46205,23 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_50_Conditional_14_T
45865
46205
  i0.ɵɵadvance();
45866
46206
  i0.ɵɵproperty("metrics", ctx_r2.competitiveMetrics())("allCharts", ctx_r2.allCharts())("isLightMode", ctx_r2.isLightMode())("isCompactMode", true)("competitiveBenchmark", (tmp_7_0 = ctx_r2.performanceOverview().overallAssessment) == null ? null : tmp_7_0.competitiveBenchmark)("currencySymbol", ctx_r2.currencySymbol());
45867
46207
  } }
45868
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_50_Template(rf, ctx) { if (rf & 1) {
45869
- i0.ɵɵconditionalCreate(0, SymphiqFunnelAnalysisDashboardComponent_Conditional_50_Conditional_0_Template, 1, 5, "symphiq-journey-progress-indicator", 65);
45870
- i0.ɵɵelementStart(1, "main", 36)(2, "div", 66)(3, "div", 67);
45871
- i0.ɵɵelement(4, "symphiq-funnel-welcome-banner", 68);
46208
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Template(rf, ctx) { if (rf & 1) {
46209
+ i0.ɵɵconditionalCreate(0, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_0_Template, 1, 5, "symphiq-journey-progress-indicator", 65);
46210
+ i0.ɵɵelementStart(1, "main", 36)(2, "div", 68)(3, "div", 69);
46211
+ i0.ɵɵelement(4, "symphiq-funnel-welcome-banner", 70);
45872
46212
  i0.ɵɵelementEnd();
45873
- i0.ɵɵconditionalCreate(5, SymphiqFunnelAnalysisDashboardComponent_Conditional_50_Conditional_5_Template, 14, 7, "section", 69);
45874
- i0.ɵɵelementStart(6, "symphiq-collapsible-funnel-section-group", 70)(7, "div", 71);
45875
- i0.ɵɵconditionalCreate(8, SymphiqFunnelAnalysisDashboardComponent_Conditional_50_Conditional_8_Template, 3, 1, "div", 72);
46213
+ i0.ɵɵconditionalCreate(5, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_Template, 14, 7, "section", 71);
46214
+ i0.ɵɵelementStart(6, "symphiq-collapsible-funnel-section-group", 72)(7, "div", 73);
46215
+ i0.ɵɵconditionalCreate(8, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_8_Template, 3, 1, "div", 74);
45876
46216
  i0.ɵɵelementEnd();
45877
- i0.ɵɵelementStart(9, "div", 73);
45878
- i0.ɵɵconditionalCreate(10, SymphiqFunnelAnalysisDashboardComponent_Conditional_50_Conditional_10_Template, 3, 0, "div", 74);
46217
+ i0.ɵɵelementStart(9, "div", 75);
46218
+ i0.ɵɵconditionalCreate(10, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_10_Template, 3, 0, "div", 76);
45879
46219
  i0.ɵɵelementEnd();
45880
- i0.ɵɵelementStart(11, "div", 75);
45881
- i0.ɵɵconditionalCreate(12, SymphiqFunnelAnalysisDashboardComponent_Conditional_50_Conditional_12_Template, 3, 0, "div", 74);
46220
+ i0.ɵɵelementStart(11, "div", 77);
46221
+ i0.ɵɵconditionalCreate(12, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_12_Template, 3, 0, "div", 76);
45882
46222
  i0.ɵɵelementEnd();
45883
- i0.ɵɵelementStart(13, "div", 76);
45884
- i0.ɵɵconditionalCreate(14, SymphiqFunnelAnalysisDashboardComponent_Conditional_50_Conditional_14_Template, 2, 6, "div", 72);
46223
+ i0.ɵɵelementStart(13, "div", 78);
46224
+ i0.ɵɵconditionalCreate(14, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_14_Template, 2, 6, "div", 74);
45885
46225
  i0.ɵɵelementEnd()()()();
45886
46226
  } if (rf & 2) {
45887
46227
  const ctx_r2 = i0.ɵɵnextContext();
@@ -45901,17 +46241,17 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_50_Template(rf, ctx
45901
46241
  i0.ɵɵadvance(2);
45902
46242
  i0.ɵɵconditional(ctx_r2.showCompetitiveIntelligence() ? 14 : -1);
45903
46243
  } }
45904
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
45905
- i0.ɵɵelementStart(0, "div", 94)(1, "div", 95)(2, "div", 9);
45906
- i0.ɵɵelement(3, "symphiq-skeleton-loader", 85);
45907
- i0.ɵɵelementStart(4, "div", 96);
45908
- i0.ɵɵelement(5, "symphiq-skeleton-loader", 85)(6, "symphiq-skeleton-loader", 85);
46244
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
46245
+ i0.ɵɵelementStart(0, "div", 95)(1, "div", 96)(2, "div", 9);
46246
+ i0.ɵɵelement(3, "symphiq-skeleton-loader", 86);
46247
+ i0.ɵɵelementStart(4, "div", 97);
46248
+ i0.ɵɵelement(5, "symphiq-skeleton-loader", 86)(6, "symphiq-skeleton-loader", 86);
45909
46249
  i0.ɵɵelementEnd()();
45910
- i0.ɵɵelementStart(7, "div", 97);
45911
- i0.ɵɵelement(8, "symphiq-skeleton-loader", 85)(9, "symphiq-skeleton-loader", 85)(10, "symphiq-skeleton-loader", 85);
46250
+ i0.ɵɵelementStart(7, "div", 98);
46251
+ i0.ɵɵelement(8, "symphiq-skeleton-loader", 86)(9, "symphiq-skeleton-loader", 86)(10, "symphiq-skeleton-loader", 86);
45912
46252
  i0.ɵɵelementEnd();
45913
- i0.ɵɵelementStart(11, "div", 98);
45914
- i0.ɵɵelement(12, "symphiq-skeleton-loader", 85)(13, "symphiq-skeleton-loader", 85);
46253
+ i0.ɵɵelementStart(11, "div", 99);
46254
+ i0.ɵɵelement(12, "symphiq-skeleton-loader", 86)(13, "symphiq-skeleton-loader", 86);
45915
46255
  i0.ɵɵelementEnd()()();
45916
46256
  } if (rf & 2) {
45917
46257
  const ctx_r2 = i0.ɵɵnextContext(3);
@@ -45933,40 +46273,40 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_2_Co
45933
46273
  i0.ɵɵadvance();
45934
46274
  i0.ɵɵproperty("width", "100%")("height", "200px")("isLightMode", ctx_r2.isLightMode());
45935
46275
  } }
45936
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
45937
- const _r21 = i0.ɵɵgetCurrentView();
45938
- i0.ɵɵelementStart(0, "symphiq-funnel-analysis-overall-assessment", 87);
45939
- i0.ɵɵlistener("scrollToSection", function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_2_Conditional_2_Template_symphiq_funnel_analysis_overall_assessment_scrollToSection_0_listener($event) { i0.ɵɵrestoreView(_r21); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.scrollToSection($event)); });
46276
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
46277
+ const _r22 = i0.ɵɵgetCurrentView();
46278
+ i0.ɵɵelementStart(0, "symphiq-funnel-analysis-overall-assessment", 88);
46279
+ i0.ɵɵlistener("scrollToSection", function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_2_Conditional_2_Template_symphiq_funnel_analysis_overall_assessment_scrollToSection_0_listener($event) { i0.ɵɵrestoreView(_r22); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.scrollToSection($event)); });
45940
46280
  i0.ɵɵelementEnd();
45941
46281
  } if (rf & 2) {
45942
46282
  const ctx_r2 = i0.ɵɵnextContext(3);
45943
46283
  i0.ɵɵproperty("assessment", ctx_r2.performanceOverview().overallAssessment || i0.ɵɵpureFunction0(11, _c1$d))("revenueMetric", ctx_r2.revenueMetric())("charts", ctx_r2.chartsForItem("OVERALL_ASSESSMENT"))("metrics", ctx_r2.allMetrics())("isLightMode", ctx_r2.isLightMode())("isLoading", ctx_r2.isOverallAssessmentLoading())("isCompactMode", ctx_r2.viewModeService.isCompact())("isChartsLoading", ctx_r2.areChartsLoading())("strengths", ctx_r2.strengths())("weaknesses", ctx_r2.weaknesses())("currencySymbol", ctx_r2.currencySymbol());
45944
46284
  } }
45945
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_2_Template(rf, ctx) { if (rf & 1) {
45946
- i0.ɵɵelementStart(0, "div", 93);
45947
- i0.ɵɵconditionalCreate(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_2_Conditional_1_Template, 14, 25, "div", 94)(2, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_2_Conditional_2_Template, 1, 12, "symphiq-funnel-analysis-overall-assessment", 86);
46285
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_2_Template(rf, ctx) { if (rf & 1) {
46286
+ i0.ɵɵelementStart(0, "div", 94);
46287
+ i0.ɵɵconditionalCreate(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_2_Conditional_1_Template, 14, 25, "div", 95)(2, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_2_Conditional_2_Template, 1, 12, "symphiq-funnel-analysis-overall-assessment", 87);
45948
46288
  i0.ɵɵelementEnd();
45949
46289
  } if (rf & 2) {
45950
46290
  const ctx_r2 = i0.ɵɵnextContext(2);
45951
46291
  i0.ɵɵadvance();
45952
46292
  i0.ɵɵconditional(ctx_r2.isDataLoading() ? 1 : 2);
45953
46293
  } }
45954
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_3_Conditional_0_Template(rf, ctx) { if (rf & 1) {
45955
- i0.ɵɵelement(0, "symphiq-section-divider", 99);
46294
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_3_Conditional_0_Template(rf, ctx) { if (rf & 1) {
46295
+ i0.ɵɵelement(0, "symphiq-section-divider", 100);
45956
46296
  } if (rf & 2) {
45957
46297
  const ctx_r2 = i0.ɵɵnextContext(3);
45958
46298
  i0.ɵɵproperty("viewMode", ctx_r2.viewMode());
45959
46299
  } }
45960
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_3_Conditional_14_For_2_Template(rf, ctx) { if (rf & 1) {
45961
- i0.ɵɵelementStart(0, "div", 106)(1, "div", 107)(2, "div", 108);
45962
- i0.ɵɵelement(3, "symphiq-skeleton-loader", 85)(4, "symphiq-skeleton-loader", 85);
46300
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_3_Conditional_14_For_2_Template(rf, ctx) { if (rf & 1) {
46301
+ i0.ɵɵelementStart(0, "div", 107)(1, "div", 108)(2, "div", 109);
46302
+ i0.ɵɵelement(3, "symphiq-skeleton-loader", 86)(4, "symphiq-skeleton-loader", 86);
45963
46303
  i0.ɵɵelementEnd();
45964
- i0.ɵɵelement(5, "symphiq-skeleton-loader", 85)(6, "symphiq-skeleton-loader", 85)(7, "symphiq-skeleton-loader", 85);
45965
- i0.ɵɵelementStart(8, "div", 109);
45966
- i0.ɵɵelement(9, "symphiq-skeleton-loader", 85)(10, "symphiq-skeleton-loader", 85);
46304
+ i0.ɵɵelement(5, "symphiq-skeleton-loader", 86)(6, "symphiq-skeleton-loader", 86)(7, "symphiq-skeleton-loader", 86);
46305
+ i0.ɵɵelementStart(8, "div", 110);
46306
+ i0.ɵɵelement(9, "symphiq-skeleton-loader", 86)(10, "symphiq-skeleton-loader", 86);
45967
46307
  i0.ɵɵelementEnd();
45968
- i0.ɵɵelementStart(11, "div", 110);
45969
- i0.ɵɵelement(12, "symphiq-skeleton-loader", 85)(13, "symphiq-skeleton-loader", 85);
46308
+ i0.ɵɵelementStart(11, "div", 111);
46309
+ i0.ɵɵelement(12, "symphiq-skeleton-loader", 86)(13, "symphiq-skeleton-loader", 86);
45970
46310
  i0.ɵɵelementEnd()()();
45971
46311
  } if (rf & 2) {
45972
46312
  const ctx_r2 = i0.ɵɵnextContext(4);
@@ -45990,76 +46330,76 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_3_Co
45990
46330
  i0.ɵɵadvance();
45991
46331
  i0.ɵɵproperty("width", "80px")("height", "28px")("isLightMode", ctx_r2.isLightMode());
45992
46332
  } }
45993
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_3_Conditional_14_Template(rf, ctx) { if (rf & 1) {
45994
- i0.ɵɵelementStart(0, "div", 104);
45995
- i0.ɵɵrepeaterCreate(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_3_Conditional_14_For_2_Template, 14, 28, "div", 106, i0.ɵɵrepeaterTrackByIdentity);
46333
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_3_Conditional_14_Template(rf, ctx) { if (rf & 1) {
46334
+ i0.ɵɵelementStart(0, "div", 105);
46335
+ i0.ɵɵrepeaterCreate(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_3_Conditional_14_For_2_Template, 14, 28, "div", 107, i0.ɵɵrepeaterTrackByIdentity);
45996
46336
  i0.ɵɵelementEnd();
45997
46337
  } if (rf & 2) {
45998
46338
  i0.ɵɵadvance();
45999
46339
  i0.ɵɵrepeater(i0.ɵɵpureFunction0(0, _c2$8));
46000
46340
  } }
46001
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_3_Conditional_15_For_2_Template(rf, ctx) { if (rf & 1) {
46002
- i0.ɵɵelementStart(0, "div", 112);
46003
- i0.ɵɵelement(1, "symphiq-funnel-analysis-insight-card", 113);
46341
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_3_Conditional_15_For_2_Template(rf, ctx) { if (rf & 1) {
46342
+ i0.ɵɵelementStart(0, "div", 113);
46343
+ i0.ɵɵelement(1, "symphiq-funnel-analysis-insight-card", 114);
46004
46344
  i0.ɵɵelementEnd();
46005
46345
  } if (rf & 2) {
46006
- const insight_r22 = ctx.$implicit;
46007
- const $index_r23 = ctx.$index;
46346
+ const insight_r23 = ctx.$implicit;
46347
+ const $index_r24 = ctx.$index;
46008
46348
  const ctx_r2 = i0.ɵɵnextContext(4);
46009
- i0.ɵɵclassMap(ctx_r2.getInsightCardClass(insight_r22));
46010
- i0.ɵɵstyleProp("animation-delay", 0.3 + $index_r23 * 0.1 + "s");
46011
- i0.ɵɵproperty("libSymphiqSearchHighlight", ctx_r2.searchService.highlightedResultId())("highlightId", "insight-" + $index_r23);
46349
+ i0.ɵɵclassMap(ctx_r2.getInsightCardClass(insight_r23));
46350
+ i0.ɵɵstyleProp("animation-delay", 0.3 + $index_r24 * 0.1 + "s");
46351
+ i0.ɵɵproperty("libSymphiqSearchHighlight", ctx_r2.searchService.highlightedResultId())("highlightId", "insight-" + $index_r24);
46012
46352
  i0.ɵɵadvance();
46013
- i0.ɵɵproperty("insight", insight_r22)("allMetrics", ctx_r2.allMetrics())("charts", ctx_r2.chartsForInsight(insight_r22))("allCharts", ctx_r2.allCharts())("allBusinessInsights", ctx_r2.allBusinessInsights())("isLightMode", ctx_r2.isLightMode())("viewMode", ctx_r2.viewMode())("isCompactMode", false);
46353
+ i0.ɵɵproperty("insight", insight_r23)("allMetrics", ctx_r2.allMetrics())("charts", ctx_r2.chartsForInsight(insight_r23))("allCharts", ctx_r2.allCharts())("allBusinessInsights", ctx_r2.allBusinessInsights())("isLightMode", ctx_r2.isLightMode())("viewMode", ctx_r2.viewMode())("isCompactMode", false);
46014
46354
  } }
46015
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_3_Conditional_15_Template(rf, ctx) { if (rf & 1) {
46016
- i0.ɵɵelementStart(0, "div", 104);
46017
- i0.ɵɵrepeaterCreate(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_3_Conditional_15_For_2_Template, 2, 14, "div", 111, i0.ɵɵrepeaterTrackByIndex);
46355
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_3_Conditional_15_Template(rf, ctx) { if (rf & 1) {
46356
+ i0.ɵɵelementStart(0, "div", 105);
46357
+ i0.ɵɵrepeaterCreate(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_3_Conditional_15_For_2_Template, 2, 14, "div", 112, i0.ɵɵrepeaterTrackByIndex);
46018
46358
  i0.ɵɵelementEnd();
46019
46359
  } if (rf & 2) {
46020
46360
  const ctx_r2 = i0.ɵɵnextContext(3);
46021
46361
  i0.ɵɵadvance();
46022
46362
  i0.ɵɵrepeater(ctx_r2.insights());
46023
46363
  } }
46024
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_3_Conditional_16_For_2_Template(rf, ctx) { if (rf & 1) {
46025
- i0.ɵɵelementStart(0, "div", 112);
46026
- i0.ɵɵelement(1, "symphiq-funnel-analysis-insight-card", 113);
46364
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_3_Conditional_16_For_2_Template(rf, ctx) { if (rf & 1) {
46365
+ i0.ɵɵelementStart(0, "div", 113);
46366
+ i0.ɵɵelement(1, "symphiq-funnel-analysis-insight-card", 114);
46027
46367
  i0.ɵɵelementEnd();
46028
46368
  } if (rf & 2) {
46029
- const insight_r24 = ctx.$implicit;
46030
- const $index_r25 = ctx.$index;
46369
+ const insight_r25 = ctx.$implicit;
46370
+ const $index_r26 = ctx.$index;
46031
46371
  const ctx_r2 = i0.ɵɵnextContext(4);
46032
- i0.ɵɵstyleProp("animation-delay", 0.3 + $index_r25 * 0.1 + "s");
46033
- i0.ɵɵproperty("libSymphiqSearchHighlight", ctx_r2.searchService.highlightedResultId())("highlightId", "insight-" + $index_r25);
46372
+ i0.ɵɵstyleProp("animation-delay", 0.3 + $index_r26 * 0.1 + "s");
46373
+ i0.ɵɵproperty("libSymphiqSearchHighlight", ctx_r2.searchService.highlightedResultId())("highlightId", "insight-" + $index_r26);
46034
46374
  i0.ɵɵadvance();
46035
- i0.ɵɵproperty("insight", insight_r24)("allMetrics", ctx_r2.allMetrics())("charts", ctx_r2.chartsForInsight(insight_r24))("allCharts", ctx_r2.allCharts())("allBusinessInsights", ctx_r2.allBusinessInsights())("isLightMode", ctx_r2.isLightMode())("viewMode", ctx_r2.viewMode())("isCompactMode", true);
46375
+ i0.ɵɵproperty("insight", insight_r25)("allMetrics", ctx_r2.allMetrics())("charts", ctx_r2.chartsForInsight(insight_r25))("allCharts", ctx_r2.allCharts())("allBusinessInsights", ctx_r2.allBusinessInsights())("isLightMode", ctx_r2.isLightMode())("viewMode", ctx_r2.viewMode())("isCompactMode", true);
46036
46376
  } }
46037
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_3_Conditional_16_Template(rf, ctx) { if (rf & 1) {
46038
- i0.ɵɵelementStart(0, "div", 105);
46039
- i0.ɵɵrepeaterCreate(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_3_Conditional_16_For_2_Template, 2, 12, "div", 114, i0.ɵɵrepeaterTrackByIndex);
46377
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_3_Conditional_16_Template(rf, ctx) { if (rf & 1) {
46378
+ i0.ɵɵelementStart(0, "div", 106);
46379
+ i0.ɵɵrepeaterCreate(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_3_Conditional_16_For_2_Template, 2, 12, "div", 115, i0.ɵɵrepeaterTrackByIndex);
46040
46380
  i0.ɵɵelementEnd();
46041
46381
  } if (rf & 2) {
46042
46382
  const ctx_r2 = i0.ɵɵnextContext(3);
46043
46383
  i0.ɵɵadvance();
46044
46384
  i0.ɵɵrepeater(ctx_r2.insights());
46045
46385
  } }
46046
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_3_Template(rf, ctx) { if (rf & 1) {
46047
- i0.ɵɵconditionalCreate(0, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_3_Conditional_0_Template, 1, 1, "symphiq-section-divider", 99);
46048
- i0.ɵɵelementStart(1, "section", 100);
46049
- i0.ɵɵelement(2, "div", 101);
46050
- i0.ɵɵelementStart(3, "div", 102)(4, "div", 103)(5, "div", 9)(6, "div", 79)(7, "div", 9);
46386
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_3_Template(rf, ctx) { if (rf & 1) {
46387
+ i0.ɵɵconditionalCreate(0, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_3_Conditional_0_Template, 1, 1, "symphiq-section-divider", 100);
46388
+ i0.ɵɵelementStart(1, "section", 101);
46389
+ i0.ɵɵelement(2, "div", 102);
46390
+ i0.ɵɵelementStart(3, "div", 103)(4, "div", 104)(5, "div", 9)(6, "div", 80)(7, "div", 9);
46051
46391
  i0.ɵɵnamespaceSVG();
46052
- i0.ɵɵelementStart(8, "svg", 80);
46053
- i0.ɵɵelement(9, "path", 81);
46392
+ i0.ɵɵelementStart(8, "svg", 81);
46393
+ i0.ɵɵelement(9, "path", 82);
46054
46394
  i0.ɵɵelementEnd();
46055
46395
  i0.ɵɵnamespaceHTML();
46056
- i0.ɵɵelementStart(10, "h2", 82);
46396
+ i0.ɵɵelementStart(10, "h2", 83);
46057
46397
  i0.ɵɵtext(11, "Key Insights");
46058
46398
  i0.ɵɵelementEnd()()()();
46059
46399
  i0.ɵɵelementStart(12, "span", 23);
46060
46400
  i0.ɵɵtext(13);
46061
46401
  i0.ɵɵelementEnd()();
46062
- i0.ɵɵconditionalCreate(14, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_3_Conditional_14_Template, 3, 1, "div", 104)(15, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_3_Conditional_15_Template, 3, 0, "div", 104)(16, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_3_Conditional_16_Template, 3, 0, "div", 105);
46402
+ i0.ɵɵconditionalCreate(14, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_3_Conditional_14_Template, 3, 1, "div", 105)(15, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_3_Conditional_15_Template, 3, 0, "div", 105)(16, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_3_Conditional_16_Template, 3, 0, "div", 106);
46063
46403
  i0.ɵɵelementEnd()();
46064
46404
  } if (rf & 2) {
46065
46405
  const ctx_r2 = i0.ɵɵnextContext(2);
@@ -46079,14 +46419,14 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_3_Te
46079
46419
  i0.ɵɵadvance();
46080
46420
  i0.ɵɵconditional(ctx_r2.isDataLoading() || ctx_r2.viewModeService.isExpanded() && ctx_r2.viewModeService.getIsTransitioning() ? 14 : ctx_r2.viewModeService.isExpanded() ? 15 : 16);
46081
46421
  } }
46082
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Conditional_0_Template(rf, ctx) { if (rf & 1) {
46083
- i0.ɵɵelementStart(0, "div", 115)(1, "div", 131);
46084
- i0.ɵɵelement(2, "div", 132);
46422
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_Conditional_0_Template(rf, ctx) { if (rf & 1) {
46423
+ i0.ɵɵelementStart(0, "div", 116)(1, "div", 132);
46424
+ i0.ɵɵelement(2, "div", 133);
46085
46425
  i0.ɵɵelementEnd();
46086
- i0.ɵɵelementStart(3, "div", 133)(4, "div", 134);
46426
+ i0.ɵɵelementStart(3, "div", 134)(4, "div", 135);
46087
46427
  i0.ɵɵnamespaceSVG();
46088
- i0.ɵɵelementStart(5, "svg", 135);
46089
- i0.ɵɵelement(6, "path", 136);
46428
+ i0.ɵɵelementStart(5, "svg", 136);
46429
+ i0.ɵɵelement(6, "path", 137);
46090
46430
  i0.ɵɵelementEnd()()()();
46091
46431
  } if (rf & 2) {
46092
46432
  const ctx_r2 = i0.ɵɵnextContext(3);
@@ -46097,81 +46437,81 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Co
46097
46437
  i0.ɵɵadvance();
46098
46438
  i0.ɵɵproperty("ngClass", ctx_r2.isLightMode() ? "text-emerald-500" : "text-emerald-400");
46099
46439
  } }
46100
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Conditional_14_Template(rf, ctx) { if (rf & 1) {
46101
- i0.ɵɵelementStart(0, "div", 122);
46102
- i0.ɵɵelement(1, "div", 137);
46440
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_Conditional_14_Template(rf, ctx) { if (rf & 1) {
46441
+ i0.ɵɵelementStart(0, "div", 123);
46442
+ i0.ɵɵelement(1, "div", 138);
46103
46443
  i0.ɵɵelementEnd();
46104
46444
  } }
46105
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_For_17_Conditional_0_Template(rf, ctx) { if (rf & 1) {
46106
- i0.ɵɵelementStart(0, "option", 138);
46445
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_For_17_Conditional_0_Template(rf, ctx) { if (rf & 1) {
46446
+ i0.ɵɵelementStart(0, "option", 139);
46107
46447
  i0.ɵɵtext(1);
46108
46448
  i0.ɵɵelementEnd();
46109
46449
  } if (rf & 2) {
46110
- const cat_r27 = i0.ɵɵnextContext().$implicit;
46111
- i0.ɵɵproperty("value", cat_r27.value);
46450
+ const cat_r28 = i0.ɵɵnextContext().$implicit;
46451
+ i0.ɵɵproperty("value", cat_r28.value);
46112
46452
  i0.ɵɵadvance();
46113
- i0.ɵɵtextInterpolate(cat_r27.label);
46453
+ i0.ɵɵtextInterpolate(cat_r28.label);
46114
46454
  } }
46115
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_For_17_Conditional_1_Template(rf, ctx) { if (rf & 1) {
46455
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_For_17_Conditional_1_Template(rf, ctx) { if (rf & 1) {
46116
46456
  i0.ɵɵelementStart(0, "option", 49);
46117
46457
  i0.ɵɵtext(1);
46118
46458
  i0.ɵɵelementEnd();
46119
46459
  } if (rf & 2) {
46120
- const cat_r27 = i0.ɵɵnextContext().$implicit;
46121
- i0.ɵɵproperty("value", cat_r27.value);
46460
+ const cat_r28 = i0.ɵɵnextContext().$implicit;
46461
+ i0.ɵɵproperty("value", cat_r28.value);
46122
46462
  i0.ɵɵadvance();
46123
- i0.ɵɵtextInterpolate(cat_r27.label);
46463
+ i0.ɵɵtextInterpolate(cat_r28.label);
46124
46464
  } }
46125
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_For_17_Template(rf, ctx) { if (rf & 1) {
46126
- i0.ɵɵconditionalCreate(0, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_For_17_Conditional_0_Template, 2, 2, "option", 138)(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_For_17_Conditional_1_Template, 2, 2, "option", 49);
46465
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_For_17_Template(rf, ctx) { if (rf & 1) {
46466
+ i0.ɵɵconditionalCreate(0, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_For_17_Conditional_0_Template, 2, 2, "option", 139)(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_For_17_Conditional_1_Template, 2, 2, "option", 49);
46127
46467
  } if (rf & 2) {
46128
- const cat_r27 = ctx.$implicit;
46129
- i0.ɵɵconditional(cat_r27.divider ? 0 : 1);
46468
+ const cat_r28 = ctx.$implicit;
46469
+ i0.ɵɵconditional(cat_r28.divider ? 0 : 1);
46130
46470
  } }
46131
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Conditional_20_Template(rf, ctx) { if (rf & 1) {
46471
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_Conditional_20_Template(rf, ctx) { if (rf & 1) {
46132
46472
  i0.ɵɵnamespaceSVG();
46133
- i0.ɵɵelement(0, "path", 125);
46473
+ i0.ɵɵelement(0, "path", 126);
46134
46474
  } }
46135
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Conditional_21_Template(rf, ctx) { if (rf & 1) {
46475
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_Conditional_21_Template(rf, ctx) { if (rf & 1) {
46136
46476
  i0.ɵɵnamespaceSVG();
46137
- i0.ɵɵelement(0, "path", 126);
46477
+ i0.ɵɵelement(0, "path", 127);
46138
46478
  } }
46139
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_For_27_Conditional_0_Template(rf, ctx) { if (rf & 1) {
46140
- const _r28 = i0.ɵɵgetCurrentView();
46141
- i0.ɵɵelementStart(0, "button", 140);
46142
- i0.ɵɵlistener("click", function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_For_27_Conditional_0_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r28); const cat_r29 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.changeCategoryFilter(cat_r29.value)); });
46479
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_For_27_Conditional_0_Template(rf, ctx) { if (rf & 1) {
46480
+ const _r29 = i0.ɵɵgetCurrentView();
46481
+ i0.ɵɵelementStart(0, "button", 141);
46482
+ i0.ɵɵlistener("click", function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_For_27_Conditional_0_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r29); const cat_r30 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.changeCategoryFilter(cat_r30.value)); });
46143
46483
  i0.ɵɵtext(1);
46144
46484
  i0.ɵɵelementEnd();
46145
46485
  } if (rf & 2) {
46146
- const cat_r29 = i0.ɵɵnextContext().$implicit;
46486
+ const cat_r30 = i0.ɵɵnextContext().$implicit;
46147
46487
  const ctx_r2 = i0.ɵɵnextContext(3);
46148
46488
  i0.ɵɵclassProp("opacity-70", ctx_r2.isCategoryTransitioning());
46149
- i0.ɵɵproperty("ngClass", ctx_r2.getCategoryPillClass(cat_r29.value));
46489
+ i0.ɵɵproperty("ngClass", ctx_r2.getCategoryPillClass(cat_r30.value));
46150
46490
  i0.ɵɵadvance();
46151
- i0.ɵɵtextInterpolate1(" ", cat_r29.label, " ");
46491
+ i0.ɵɵtextInterpolate1(" ", cat_r30.label, " ");
46152
46492
  } }
46153
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_For_27_Template(rf, ctx) { if (rf & 1) {
46154
- i0.ɵɵconditionalCreate(0, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_For_27_Conditional_0_Template, 2, 4, "button", 139);
46493
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_For_27_Template(rf, ctx) { if (rf & 1) {
46494
+ i0.ɵɵconditionalCreate(0, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_For_27_Conditional_0_Template, 2, 4, "button", 140);
46155
46495
  } if (rf & 2) {
46156
- const cat_r29 = ctx.$implicit;
46157
- i0.ɵɵconditional(!cat_r29.divider ? 0 : -1);
46496
+ const cat_r30 = ctx.$implicit;
46497
+ i0.ɵɵconditional(!cat_r30.divider ? 0 : -1);
46158
46498
  } }
46159
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Conditional_28_For_2_For_10_Template(rf, ctx) { if (rf & 1) {
46160
- i0.ɵɵelement(0, "symphiq-skeleton-loader", 85);
46499
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_Conditional_28_For_2_For_10_Template(rf, ctx) { if (rf & 1) {
46500
+ i0.ɵɵelement(0, "symphiq-skeleton-loader", 86);
46161
46501
  } if (rf & 2) {
46162
46502
  const ctx_r2 = i0.ɵɵnextContext(5);
46163
46503
  i0.ɵɵproperty("width", "100%")("height", "120px")("isLightMode", ctx_r2.isLightMode());
46164
46504
  } }
46165
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Conditional_28_For_2_Template(rf, ctx) { if (rf & 1) {
46166
- i0.ɵɵelementStart(0, "div", 141)(1, "div", 142)(2, "div", 9);
46167
- i0.ɵɵelement(3, "symphiq-skeleton-loader", 85);
46168
- i0.ɵɵelementStart(4, "div", 97);
46169
- i0.ɵɵelement(5, "symphiq-skeleton-loader", 85)(6, "symphiq-skeleton-loader", 85);
46505
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_Conditional_28_For_2_Template(rf, ctx) { if (rf & 1) {
46506
+ i0.ɵɵelementStart(0, "div", 142)(1, "div", 143)(2, "div", 9);
46507
+ i0.ɵɵelement(3, "symphiq-skeleton-loader", 86);
46508
+ i0.ɵɵelementStart(4, "div", 98);
46509
+ i0.ɵɵelement(5, "symphiq-skeleton-loader", 86)(6, "symphiq-skeleton-loader", 86);
46170
46510
  i0.ɵɵelementEnd()();
46171
- i0.ɵɵelement(7, "symphiq-skeleton-loader", 85);
46511
+ i0.ɵɵelement(7, "symphiq-skeleton-loader", 86);
46172
46512
  i0.ɵɵelementEnd();
46173
- i0.ɵɵelementStart(8, "div", 143);
46174
- i0.ɵɵrepeaterCreate(9, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Conditional_28_For_2_For_10_Template, 1, 3, "symphiq-skeleton-loader", 85, i0.ɵɵrepeaterTrackByIdentity);
46513
+ i0.ɵɵelementStart(8, "div", 144);
46514
+ i0.ɵɵrepeaterCreate(9, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_Conditional_28_For_2_For_10_Template, 1, 3, "symphiq-skeleton-loader", 86, i0.ɵɵrepeaterTrackByIdentity);
46175
46515
  i0.ɵɵelementEnd()();
46176
46516
  } if (rf & 2) {
46177
46517
  const ctx_r2 = i0.ɵɵnextContext(4);
@@ -46187,70 +46527,70 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Co
46187
46527
  i0.ɵɵadvance(2);
46188
46528
  i0.ɵɵrepeater(i0.ɵɵpureFunction0(13, _c4$3));
46189
46529
  } }
46190
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Conditional_28_Template(rf, ctx) { if (rf & 1) {
46191
- i0.ɵɵelementStart(0, "div", 129);
46192
- i0.ɵɵrepeaterCreate(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Conditional_28_For_2_Template, 11, 14, "div", 141, i0.ɵɵrepeaterTrackByIdentity);
46530
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_Conditional_28_Template(rf, ctx) { if (rf & 1) {
46531
+ i0.ɵɵelementStart(0, "div", 130);
46532
+ i0.ɵɵrepeaterCreate(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_Conditional_28_For_2_Template, 11, 14, "div", 142, i0.ɵɵrepeaterTrackByIdentity);
46193
46533
  i0.ɵɵelementEnd();
46194
46534
  } if (rf & 2) {
46195
46535
  i0.ɵɵadvance();
46196
46536
  i0.ɵɵrepeater(i0.ɵɵpureFunction0(0, _c3$5));
46197
46537
  } }
46198
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Conditional_29_For_2_Conditional_2_Conditional_0_For_2_Template(rf, ctx) { if (rf & 1) {
46199
- i0.ɵɵelementStart(0, "div", 149);
46200
- i0.ɵɵelement(1, "symphiq-funnel-analysis-metric-card", 150);
46538
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_Conditional_29_For_2_Conditional_2_Conditional_0_For_2_Template(rf, ctx) { if (rf & 1) {
46539
+ i0.ɵɵelementStart(0, "div", 150);
46540
+ i0.ɵɵelement(1, "symphiq-funnel-analysis-metric-card", 151);
46201
46541
  i0.ɵɵelementEnd();
46202
46542
  } if (rf & 2) {
46203
- const metric_r30 = ctx.$implicit;
46204
- const ɵ$index_502_r31 = ctx.$index;
46205
- const ɵ$index_493_r32 = i0.ɵɵnextContext(3).$index;
46543
+ const metric_r31 = ctx.$implicit;
46544
+ const ɵ$index_508_r32 = ctx.$index;
46545
+ const ɵ$index_499_r33 = i0.ɵɵnextContext(3).$index;
46206
46546
  const ctx_r2 = i0.ɵɵnextContext(4);
46207
- i0.ɵɵclassMap(ctx_r2.getBentoCardClass(metric_r30, ɵ$index_502_r31));
46208
- i0.ɵɵstyleProp("animation-delay", 0.6 + ɵ$index_493_r32 * 0.15 + ɵ$index_502_r31 * 0.08 + "s");
46547
+ i0.ɵɵclassMap(ctx_r2.getBentoCardClass(metric_r31, ɵ$index_508_r32));
46548
+ i0.ɵɵstyleProp("animation-delay", 0.6 + ɵ$index_499_r33 * 0.15 + ɵ$index_508_r32 * 0.08 + "s");
46209
46549
  i0.ɵɵadvance();
46210
- i0.ɵɵproperty("metric", metric_r30)("insights", ctx_r2.insights())("charts", ctx_r2.chartsForMetric(metric_r30))("allCharts", ctx_r2.allCharts())("analysis", ctx_r2.analysisData())("isLightMode", ctx_r2.isLightMode())("viewMode", ctx_r2.viewMode())("isCompactMode", false)("currencySymbol", ctx_r2.currencySymbol());
46550
+ i0.ɵɵproperty("metric", metric_r31)("insights", ctx_r2.insights())("charts", ctx_r2.chartsForMetric(metric_r31))("allCharts", ctx_r2.allCharts())("analysis", ctx_r2.analysisData())("isLightMode", ctx_r2.isLightMode())("viewMode", ctx_r2.viewMode())("isCompactMode", false)("currencySymbol", ctx_r2.currencySymbol());
46211
46551
  } }
46212
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Conditional_29_For_2_Conditional_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
46213
- i0.ɵɵelementStart(0, "div", 146);
46214
- i0.ɵɵrepeaterCreate(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Conditional_29_For_2_Conditional_2_Conditional_0_For_2_Template, 2, 13, "div", 148, i0.ɵɵrepeaterTrackByIndex);
46552
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_Conditional_29_For_2_Conditional_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
46553
+ i0.ɵɵelementStart(0, "div", 147);
46554
+ i0.ɵɵrepeaterCreate(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_Conditional_29_For_2_Conditional_2_Conditional_0_For_2_Template, 2, 13, "div", 149, i0.ɵɵrepeaterTrackByIndex);
46215
46555
  i0.ɵɵelementEnd();
46216
46556
  } if (rf & 2) {
46217
- const funnelGroup_r33 = i0.ɵɵnextContext(2).$implicit;
46557
+ const funnelGroup_r34 = i0.ɵɵnextContext(2).$implicit;
46218
46558
  i0.ɵɵadvance();
46219
- i0.ɵɵrepeater(funnelGroup_r33.relatedMetrics);
46559
+ i0.ɵɵrepeater(funnelGroup_r34.relatedMetrics);
46220
46560
  } }
46221
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Conditional_29_For_2_Conditional_2_Conditional_1_For_2_Template(rf, ctx) { if (rf & 1) {
46222
- i0.ɵɵelementStart(0, "div", 149);
46223
- i0.ɵɵelement(1, "symphiq-funnel-analysis-metric-card", 89);
46561
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_Conditional_29_For_2_Conditional_2_Conditional_1_For_2_Template(rf, ctx) { if (rf & 1) {
46562
+ i0.ɵɵelementStart(0, "div", 150);
46563
+ i0.ɵɵelement(1, "symphiq-funnel-analysis-metric-card", 90);
46224
46564
  i0.ɵɵelementEnd();
46225
46565
  } if (rf & 2) {
46226
- const metric_r34 = ctx.$implicit;
46227
- const ɵ$index_510_r35 = ctx.$index;
46228
- const ɵ$index_493_r32 = i0.ɵɵnextContext(3).$index;
46566
+ const metric_r35 = ctx.$implicit;
46567
+ const ɵ$index_516_r36 = ctx.$index;
46568
+ const ɵ$index_499_r33 = i0.ɵɵnextContext(3).$index;
46229
46569
  const ctx_r2 = i0.ɵɵnextContext(4);
46230
- i0.ɵɵstyleProp("animation-delay", 0.6 + ɵ$index_493_r32 * 0.15 + ɵ$index_510_r35 * 0.08 + "s");
46570
+ i0.ɵɵstyleProp("animation-delay", 0.6 + ɵ$index_499_r33 * 0.15 + ɵ$index_516_r36 * 0.08 + "s");
46231
46571
  i0.ɵɵadvance();
46232
- i0.ɵɵproperty("metric", metric_r34)("insights", ctx_r2.insights())("charts", ctx_r2.chartsForMetric(metric_r34))("allCharts", ctx_r2.allCharts())("analysis", ctx_r2.analysisData())("isLightMode", ctx_r2.isLightMode())("viewMode", ctx_r2.viewMode())("isCompactMode", true)("currencySymbol", ctx_r2.currencySymbol());
46572
+ i0.ɵɵproperty("metric", metric_r35)("insights", ctx_r2.insights())("charts", ctx_r2.chartsForMetric(metric_r35))("allCharts", ctx_r2.allCharts())("analysis", ctx_r2.analysisData())("isLightMode", ctx_r2.isLightMode())("viewMode", ctx_r2.viewMode())("isCompactMode", true)("currencySymbol", ctx_r2.currencySymbol());
46233
46573
  } }
46234
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Conditional_29_For_2_Conditional_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
46235
- i0.ɵɵelementStart(0, "div", 147);
46236
- i0.ɵɵrepeaterCreate(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Conditional_29_For_2_Conditional_2_Conditional_1_For_2_Template, 2, 11, "div", 151, i0.ɵɵrepeaterTrackByIndex);
46574
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_Conditional_29_For_2_Conditional_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
46575
+ i0.ɵɵelementStart(0, "div", 148);
46576
+ i0.ɵɵrepeaterCreate(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_Conditional_29_For_2_Conditional_2_Conditional_1_For_2_Template, 2, 11, "div", 152, i0.ɵɵrepeaterTrackByIndex);
46237
46577
  i0.ɵɵelementEnd();
46238
46578
  } if (rf & 2) {
46239
- const funnelGroup_r33 = i0.ɵɵnextContext(2).$implicit;
46579
+ const funnelGroup_r34 = i0.ɵɵnextContext(2).$implicit;
46240
46580
  i0.ɵɵadvance();
46241
- i0.ɵɵrepeater(funnelGroup_r33.relatedMetrics);
46581
+ i0.ɵɵrepeater(funnelGroup_r34.relatedMetrics);
46242
46582
  } }
46243
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Conditional_29_For_2_Conditional_2_Conditional_2_For_2_Template(rf, ctx) { if (rf & 1) {
46244
- i0.ɵɵelementStart(0, "div", 152)(1, "div", 107)(2, "div", 119);
46245
- i0.ɵɵelement(3, "symphiq-skeleton-loader", 85)(4, "symphiq-skeleton-loader", 85);
46583
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_Conditional_29_For_2_Conditional_2_Conditional_2_For_2_Template(rf, ctx) { if (rf & 1) {
46584
+ i0.ɵɵelementStart(0, "div", 153)(1, "div", 108)(2, "div", 120);
46585
+ i0.ɵɵelement(3, "symphiq-skeleton-loader", 86)(4, "symphiq-skeleton-loader", 86);
46246
46586
  i0.ɵɵelementEnd();
46247
- i0.ɵɵelement(5, "symphiq-skeleton-loader", 85);
46248
- i0.ɵɵelementStart(6, "div", 153);
46249
- i0.ɵɵelement(7, "symphiq-skeleton-loader", 85)(8, "symphiq-skeleton-loader", 85);
46587
+ i0.ɵɵelement(5, "symphiq-skeleton-loader", 86);
46588
+ i0.ɵɵelementStart(6, "div", 154);
46589
+ i0.ɵɵelement(7, "symphiq-skeleton-loader", 86)(8, "symphiq-skeleton-loader", 86);
46250
46590
  i0.ɵɵelementEnd();
46251
- i0.ɵɵelement(9, "symphiq-skeleton-loader", 85)(10, "symphiq-skeleton-loader", 85);
46252
- i0.ɵɵelementStart(11, "div", 154);
46253
- i0.ɵɵelement(12, "symphiq-skeleton-loader", 85);
46591
+ i0.ɵɵelement(9, "symphiq-skeleton-loader", 86)(10, "symphiq-skeleton-loader", 86);
46592
+ i0.ɵɵelementStart(11, "div", 155);
46593
+ i0.ɵɵelement(12, "symphiq-skeleton-loader", 86);
46254
46594
  i0.ɵɵelementEnd()()();
46255
46595
  } if (rf & 2) {
46256
46596
  const ctx_r2 = i0.ɵɵnextContext(7);
@@ -46272,47 +46612,47 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Co
46272
46612
  i0.ɵɵadvance(2);
46273
46613
  i0.ɵɵproperty("width", "100%")("height", "120px")("isLightMode", ctx_r2.isLightMode());
46274
46614
  } }
46275
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Conditional_29_For_2_Conditional_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
46276
- i0.ɵɵelementStart(0, "div", 146);
46277
- i0.ɵɵrepeaterCreate(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Conditional_29_For_2_Conditional_2_Conditional_2_For_2_Template, 13, 25, "div", 152, i0.ɵɵrepeaterTrackByIdentity);
46615
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_Conditional_29_For_2_Conditional_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
46616
+ i0.ɵɵelementStart(0, "div", 147);
46617
+ i0.ɵɵrepeaterCreate(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_Conditional_29_For_2_Conditional_2_Conditional_2_For_2_Template, 13, 25, "div", 153, i0.ɵɵrepeaterTrackByIdentity);
46278
46618
  i0.ɵɵelementEnd();
46279
46619
  } if (rf & 2) {
46280
46620
  i0.ɵɵadvance();
46281
46621
  i0.ɵɵrepeater(i0.ɵɵpureFunction0(0, _c4$3));
46282
46622
  } }
46283
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Conditional_29_For_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
46284
- i0.ɵɵconditionalCreate(0, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Conditional_29_For_2_Conditional_2_Conditional_0_Template, 3, 0, "div", 146)(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Conditional_29_For_2_Conditional_2_Conditional_1_Template, 3, 0, "div", 147)(2, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Conditional_29_For_2_Conditional_2_Conditional_2_Template, 3, 1, "div", 146);
46623
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_Conditional_29_For_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
46624
+ i0.ɵɵconditionalCreate(0, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_Conditional_29_For_2_Conditional_2_Conditional_0_Template, 3, 0, "div", 147)(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_Conditional_29_For_2_Conditional_2_Conditional_1_Template, 3, 0, "div", 148)(2, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_Conditional_29_For_2_Conditional_2_Conditional_2_Template, 3, 1, "div", 147);
46285
46625
  } if (rf & 2) {
46286
46626
  const ctx_r2 = i0.ɵɵnextContext(5);
46287
46627
  i0.ɵɵconditional(ctx_r2.viewModeService.isExpanded() ? 0 : !ctx_r2.viewModeService.isExpanded() ? 1 : 2);
46288
46628
  } }
46289
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Conditional_29_For_2_Template(rf, ctx) { if (rf & 1) {
46290
- i0.ɵɵelementStart(0, "div", 145);
46291
- i0.ɵɵelement(1, "symphiq-funnel-analysis-metric-card", 89);
46629
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_Conditional_29_For_2_Template(rf, ctx) { if (rf & 1) {
46630
+ i0.ɵɵelementStart(0, "div", 146);
46631
+ i0.ɵɵelement(1, "symphiq-funnel-analysis-metric-card", 90);
46292
46632
  i0.ɵɵelementEnd();
46293
- i0.ɵɵconditionalCreate(2, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Conditional_29_For_2_Conditional_2_Template, 3, 1);
46633
+ i0.ɵɵconditionalCreate(2, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_Conditional_29_For_2_Conditional_2_Template, 3, 1);
46294
46634
  } if (rf & 2) {
46295
- const funnelGroup_r33 = ctx.$implicit;
46296
- const ɵ$index_493_r32 = ctx.$index;
46635
+ const funnelGroup_r34 = ctx.$implicit;
46636
+ const ɵ$index_499_r33 = ctx.$index;
46297
46637
  const ctx_r2 = i0.ɵɵnextContext(4);
46298
- i0.ɵɵstyleProp("animation-delay", 0.5 + ɵ$index_493_r32 * 0.15 + "s");
46299
- i0.ɵɵproperty("libSymphiqSearchHighlight", ctx_r2.searchService.highlightedResultId())("highlightId", "metric-" + ɵ$index_493_r32);
46638
+ i0.ɵɵstyleProp("animation-delay", 0.5 + ɵ$index_499_r33 * 0.15 + "s");
46639
+ i0.ɵɵproperty("libSymphiqSearchHighlight", ctx_r2.searchService.highlightedResultId())("highlightId", "metric-" + ɵ$index_499_r33);
46300
46640
  i0.ɵɵadvance();
46301
- i0.ɵɵproperty("metric", funnelGroup_r33.funnelMetric)("insights", ctx_r2.insights())("charts", ctx_r2.chartsForMetric(funnelGroup_r33.funnelMetric))("allCharts", ctx_r2.allCharts())("analysis", ctx_r2.analysisData())("isLightMode", ctx_r2.isLightMode())("viewMode", ctx_r2.viewMode())("isCompactMode", ctx_r2.viewModeService.isCompact())("currencySymbol", ctx_r2.currencySymbol());
46641
+ i0.ɵɵproperty("metric", funnelGroup_r34.funnelMetric)("insights", ctx_r2.insights())("charts", ctx_r2.chartsForMetric(funnelGroup_r34.funnelMetric))("allCharts", ctx_r2.allCharts())("analysis", ctx_r2.analysisData())("isLightMode", ctx_r2.isLightMode())("viewMode", ctx_r2.viewMode())("isCompactMode", ctx_r2.viewModeService.isCompact())("currencySymbol", ctx_r2.currencySymbol());
46302
46642
  i0.ɵɵadvance();
46303
- i0.ɵɵconditional(funnelGroup_r33.relatedMetrics.length > 0 ? 2 : -1);
46643
+ i0.ɵɵconditional(funnelGroup_r34.relatedMetrics.length > 0 ? 2 : -1);
46304
46644
  } }
46305
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Conditional_29_ForEmpty_3_Template(rf, ctx) { if (rf & 1) {
46306
- i0.ɵɵelementStart(0, "div", 144);
46645
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_Conditional_29_ForEmpty_3_Template(rf, ctx) { if (rf & 1) {
46646
+ i0.ɵɵelementStart(0, "div", 145);
46307
46647
  i0.ɵɵnamespaceSVG();
46308
- i0.ɵɵelementStart(1, "svg", 155);
46309
- i0.ɵɵelement(2, "path", 120);
46648
+ i0.ɵɵelementStart(1, "svg", 156);
46649
+ i0.ɵɵelement(2, "path", 121);
46310
46650
  i0.ɵɵelementEnd();
46311
46651
  i0.ɵɵnamespaceHTML();
46312
- i0.ɵɵelementStart(3, "h3", 156);
46652
+ i0.ɵɵelementStart(3, "h3", 157);
46313
46653
  i0.ɵɵtext(4, "No Metrics Found");
46314
46654
  i0.ɵɵelementEnd();
46315
- i0.ɵɵelementStart(5, "p", 157);
46655
+ i0.ɵɵelementStart(5, "p", 158);
46316
46656
  i0.ɵɵtext(6, "No performance metrics match your current filter selection. Try adjusting your filters to see more results.");
46317
46657
  i0.ɵɵelementEnd()();
46318
46658
  } if (rf & 2) {
@@ -46325,9 +46665,9 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Co
46325
46665
  i0.ɵɵadvance(2);
46326
46666
  i0.ɵɵproperty("ngClass", ctx_r2.isLightMode() ? "text-slate-600" : "text-slate-400");
46327
46667
  } }
46328
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Conditional_29_Template(rf, ctx) { if (rf & 1) {
46329
- i0.ɵɵelementStart(0, "div", 129);
46330
- i0.ɵɵrepeaterCreate(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Conditional_29_For_2_Template, 3, 14, null, null, i0.ɵɵrepeaterTrackByIndex, false, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Conditional_29_ForEmpty_3_Template, 7, 4, "div", 144);
46668
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_Conditional_29_Template(rf, ctx) { if (rf & 1) {
46669
+ i0.ɵɵelementStart(0, "div", 130);
46670
+ i0.ɵɵrepeaterCreate(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_Conditional_29_For_2_Template, 3, 14, null, null, i0.ɵɵrepeaterTrackByIndex, false, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_Conditional_29_ForEmpty_3_Template, 7, 4, "div", 145);
46331
46671
  i0.ɵɵelementEnd();
46332
46672
  } if (rf & 2) {
46333
46673
  const ctx_r2 = i0.ɵɵnextContext(3);
@@ -46335,41 +46675,41 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Co
46335
46675
  i0.ɵɵadvance();
46336
46676
  i0.ɵɵrepeater(ctx_r2.groupedMetrics());
46337
46677
  } }
46338
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Template(rf, ctx) { if (rf & 1) {
46339
- const _r26 = i0.ɵɵgetCurrentView();
46340
- i0.ɵɵconditionalCreate(0, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Conditional_0_Template, 7, 3, "div", 115);
46341
- i0.ɵɵelementStart(1, "section", 116);
46342
- i0.ɵɵelement(2, "div", 117);
46343
- i0.ɵɵelementStart(3, "div", 102)(4, "div", 118)(5, "div", 119)(6, "div", 9)(7, "div", 79)(8, "div", 9);
46678
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_Template(rf, ctx) { if (rf & 1) {
46679
+ const _r27 = i0.ɵɵgetCurrentView();
46680
+ i0.ɵɵconditionalCreate(0, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_Conditional_0_Template, 7, 3, "div", 116);
46681
+ i0.ɵɵelementStart(1, "section", 117);
46682
+ i0.ɵɵelement(2, "div", 118);
46683
+ i0.ɵɵelementStart(3, "div", 103)(4, "div", 119)(5, "div", 120)(6, "div", 9)(7, "div", 80)(8, "div", 9);
46344
46684
  i0.ɵɵnamespaceSVG();
46345
- i0.ɵɵelementStart(9, "svg", 80);
46346
- i0.ɵɵelement(10, "path", 120);
46685
+ i0.ɵɵelementStart(9, "svg", 81);
46686
+ i0.ɵɵelement(10, "path", 121);
46347
46687
  i0.ɵɵelementEnd();
46348
46688
  i0.ɵɵnamespaceHTML();
46349
- i0.ɵɵelementStart(11, "h2", 82);
46689
+ i0.ɵɵelementStart(11, "h2", 83);
46350
46690
  i0.ɵɵtext(12, "Performance Metrics");
46351
46691
  i0.ɵɵelementEnd()()()();
46352
- i0.ɵɵelementStart(13, "div", 121);
46353
- i0.ɵɵconditionalCreate(14, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Conditional_14_Template, 2, 0, "div", 122);
46354
- i0.ɵɵelementStart(15, "select", 123);
46355
- i0.ɵɵlistener("ngModelChange", function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Template_select_ngModelChange_15_listener($event) { i0.ɵɵrestoreView(_r26); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.changeCategoryFilter($event)); });
46356
- i0.ɵɵrepeaterCreate(16, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_For_17_Template, 2, 1, null, null, _forTrack0$p);
46357
- i0.ɵɵelementEnd();
46358
- i0.ɵɵelementStart(18, "button", 124);
46359
- i0.ɵɵlistener("click", function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Template_button_click_18_listener() { i0.ɵɵrestoreView(_r26); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.toggleSortOrder()); });
46692
+ i0.ɵɵelementStart(13, "div", 122);
46693
+ i0.ɵɵconditionalCreate(14, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_Conditional_14_Template, 2, 0, "div", 123);
46694
+ i0.ɵɵelementStart(15, "select", 124);
46695
+ i0.ɵɵlistener("ngModelChange", function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_Template_select_ngModelChange_15_listener($event) { i0.ɵɵrestoreView(_r27); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.changeCategoryFilter($event)); });
46696
+ i0.ɵɵrepeaterCreate(16, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_For_17_Template, 2, 1, null, null, _forTrack0$p);
46697
+ i0.ɵɵelementEnd();
46698
+ i0.ɵɵelementStart(18, "button", 125);
46699
+ i0.ɵɵlistener("click", function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_Template_button_click_18_listener() { i0.ɵɵrestoreView(_r27); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.toggleSortOrder()); });
46360
46700
  i0.ɵɵnamespaceSVG();
46361
46701
  i0.ɵɵelementStart(19, "svg", 17);
46362
- i0.ɵɵconditionalCreate(20, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Conditional_20_Template, 1, 0, ":svg:path", 125);
46363
- i0.ɵɵconditionalCreate(21, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Conditional_21_Template, 1, 0, ":svg:path", 126);
46702
+ i0.ɵɵconditionalCreate(20, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_Conditional_20_Template, 1, 0, ":svg:path", 126);
46703
+ i0.ɵɵconditionalCreate(21, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_Conditional_21_Template, 1, 0, ":svg:path", 127);
46364
46704
  i0.ɵɵelementEnd();
46365
46705
  i0.ɵɵnamespaceHTML();
46366
46706
  i0.ɵɵelementStart(22, "span");
46367
46707
  i0.ɵɵtext(23, "Sort");
46368
46708
  i0.ɵɵelementEnd()()()();
46369
- i0.ɵɵelementStart(24, "div", 127)(25, "div", 128);
46370
- i0.ɵɵrepeaterCreate(26, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_For_27_Template, 1, 1, null, null, _forTrack0$p);
46709
+ i0.ɵɵelementStart(24, "div", 128)(25, "div", 129);
46710
+ i0.ɵɵrepeaterCreate(26, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_For_27_Template, 1, 1, null, null, _forTrack0$p);
46371
46711
  i0.ɵɵelementEnd()()();
46372
- i0.ɵɵconditionalCreate(28, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Conditional_28_Template, 3, 1, "div", 129)(29, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Conditional_29_Template, 4, 5, "div", 130);
46712
+ i0.ɵɵconditionalCreate(28, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_Conditional_28_Template, 3, 1, "div", 130)(29, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_Conditional_29_Template, 4, 5, "div", 131);
46373
46713
  i0.ɵɵelementEnd()();
46374
46714
  } if (rf & 2) {
46375
46715
  const ctx_r2 = i0.ɵɵnextContext(2);
@@ -46402,49 +46742,49 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Te
46402
46742
  i0.ɵɵadvance(2);
46403
46743
  i0.ɵɵconditional(ctx_r2.isDataLoading() ? 28 : 29);
46404
46744
  } }
46405
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_Conditional_0_Template(rf, ctx) { if (rf & 1) {
46406
- i0.ɵɵelementStart(0, "div", 158);
46407
- i0.ɵɵelement(1, "symphiq-section-divider", 166);
46745
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_5_Conditional_0_Template(rf, ctx) { if (rf & 1) {
46746
+ i0.ɵɵelementStart(0, "div", 159);
46747
+ i0.ɵɵelement(1, "symphiq-section-divider", 167);
46408
46748
  i0.ɵɵelementEnd();
46409
46749
  } if (rf & 2) {
46410
46750
  const ctx_r2 = i0.ɵɵnextContext(3);
46411
46751
  i0.ɵɵadvance();
46412
46752
  i0.ɵɵproperty("viewMode", ctx_r2.viewMode());
46413
46753
  } }
46414
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_Conditional_12_Template(rf, ctx) { if (rf & 1) {
46415
- i0.ɵɵelementStart(0, "div", 122);
46416
- i0.ɵɵelement(1, "div", 167);
46754
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_5_Conditional_12_Template(rf, ctx) { if (rf & 1) {
46755
+ i0.ɵɵelementStart(0, "div", 123);
46756
+ i0.ɵɵelement(1, "div", 168);
46417
46757
  i0.ɵɵelementEnd();
46418
46758
  } }
46419
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_For_15_Conditional_0_Template(rf, ctx) { if (rf & 1) {
46420
- i0.ɵɵelementStart(0, "option", 138);
46759
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_5_For_15_Conditional_0_Template(rf, ctx) { if (rf & 1) {
46760
+ i0.ɵɵelementStart(0, "option", 139);
46421
46761
  i0.ɵɵtext(1);
46422
46762
  i0.ɵɵelementEnd();
46423
46763
  } if (rf & 2) {
46424
- const filter_r37 = i0.ɵɵnextContext().$implicit;
46425
- i0.ɵɵproperty("value", filter_r37.value);
46764
+ const filter_r38 = i0.ɵɵnextContext().$implicit;
46765
+ i0.ɵɵproperty("value", filter_r38.value);
46426
46766
  i0.ɵɵadvance();
46427
- i0.ɵɵtextInterpolate(filter_r37.label);
46767
+ i0.ɵɵtextInterpolate(filter_r38.label);
46428
46768
  } }
46429
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_For_15_Conditional_1_Template(rf, ctx) { if (rf & 1) {
46769
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_5_For_15_Conditional_1_Template(rf, ctx) { if (rf & 1) {
46430
46770
  i0.ɵɵelementStart(0, "option", 49);
46431
46771
  i0.ɵɵtext(1);
46432
46772
  i0.ɵɵelementEnd();
46433
46773
  } if (rf & 2) {
46434
- const filter_r37 = i0.ɵɵnextContext().$implicit;
46435
- i0.ɵɵproperty("value", filter_r37.value);
46774
+ const filter_r38 = i0.ɵɵnextContext().$implicit;
46775
+ i0.ɵɵproperty("value", filter_r38.value);
46436
46776
  i0.ɵɵadvance();
46437
- i0.ɵɵtextInterpolate(filter_r37.label);
46777
+ i0.ɵɵtextInterpolate(filter_r38.label);
46438
46778
  } }
46439
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_For_15_Template(rf, ctx) { if (rf & 1) {
46440
- i0.ɵɵconditionalCreate(0, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_For_15_Conditional_0_Template, 2, 2, "option", 138)(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_For_15_Conditional_1_Template, 2, 2, "option", 49);
46779
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_5_For_15_Template(rf, ctx) { if (rf & 1) {
46780
+ i0.ɵɵconditionalCreate(0, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_5_For_15_Conditional_0_Template, 2, 2, "option", 139)(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_5_For_15_Conditional_1_Template, 2, 2, "option", 49);
46441
46781
  } if (rf & 2) {
46442
- const filter_r37 = ctx.$implicit;
46443
- i0.ɵɵconditional(filter_r37.divider ? 0 : 1);
46782
+ const filter_r38 = ctx.$implicit;
46783
+ i0.ɵɵconditional(filter_r38.divider ? 0 : 1);
46444
46784
  } }
46445
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_Conditional_16_For_2_For_6_Template(rf, ctx) { if (rf & 1) {
46446
- i0.ɵɵelementStart(0, "div", 169);
46447
- i0.ɵɵelement(1, "symphiq-skeleton-loader", 85)(2, "symphiq-skeleton-loader", 85);
46785
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_5_Conditional_16_For_2_For_6_Template(rf, ctx) { if (rf & 1) {
46786
+ i0.ɵɵelementStart(0, "div", 170);
46787
+ i0.ɵɵelement(1, "symphiq-skeleton-loader", 86)(2, "symphiq-skeleton-loader", 86);
46448
46788
  i0.ɵɵelementEnd();
46449
46789
  } if (rf & 2) {
46450
46790
  const ctx_r2 = i0.ɵɵnextContext(5);
@@ -46454,12 +46794,12 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_Co
46454
46794
  i0.ɵɵadvance();
46455
46795
  i0.ɵɵproperty("width", "80px")("height", "18px")("isLightMode", ctx_r2.isLightMode());
46456
46796
  } }
46457
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_Conditional_16_For_2_Template(rf, ctx) { if (rf & 1) {
46458
- i0.ɵɵelementStart(0, "div", 141)(1, "div", 142);
46459
- i0.ɵɵelement(2, "symphiq-skeleton-loader", 85)(3, "symphiq-skeleton-loader", 85);
46797
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_5_Conditional_16_For_2_Template(rf, ctx) { if (rf & 1) {
46798
+ i0.ɵɵelementStart(0, "div", 142)(1, "div", 143);
46799
+ i0.ɵɵelement(2, "symphiq-skeleton-loader", 86)(3, "symphiq-skeleton-loader", 86);
46460
46800
  i0.ɵɵelementEnd();
46461
- i0.ɵɵelementStart(4, "div", 168);
46462
- i0.ɵɵrepeaterCreate(5, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_Conditional_16_For_2_For_6_Template, 3, 7, "div", 169, i0.ɵɵrepeaterTrackByIdentity);
46801
+ i0.ɵɵelementStart(4, "div", 169);
46802
+ i0.ɵɵrepeaterCreate(5, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_5_Conditional_16_For_2_For_6_Template, 3, 7, "div", 170, i0.ɵɵrepeaterTrackByIdentity);
46463
46803
  i0.ɵɵelementEnd()();
46464
46804
  } if (rf & 2) {
46465
46805
  const ctx_r2 = i0.ɵɵnextContext(4);
@@ -46471,38 +46811,38 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_Co
46471
46811
  i0.ɵɵadvance(2);
46472
46812
  i0.ɵɵrepeater(i0.ɵɵpureFunction0(7, _c4$3));
46473
46813
  } }
46474
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_Conditional_16_Template(rf, ctx) { if (rf & 1) {
46475
- i0.ɵɵelementStart(0, "div", 95);
46476
- i0.ɵɵrepeaterCreate(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_Conditional_16_For_2_Template, 7, 8, "div", 141, i0.ɵɵrepeaterTrackByIdentity);
46814
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_5_Conditional_16_Template(rf, ctx) { if (rf & 1) {
46815
+ i0.ɵɵelementStart(0, "div", 96);
46816
+ i0.ɵɵrepeaterCreate(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_5_Conditional_16_For_2_Template, 7, 8, "div", 142, i0.ɵɵrepeaterTrackByIdentity);
46477
46817
  i0.ɵɵelementEnd();
46478
46818
  } if (rf & 2) {
46479
46819
  i0.ɵɵadvance();
46480
46820
  i0.ɵɵrepeater(i0.ɵɵpureFunction0(0, _c5$2));
46481
46821
  } }
46482
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_Conditional_17_For_2_Template(rf, ctx) { if (rf & 1) {
46483
- i0.ɵɵelementStart(0, "div", 112);
46484
- i0.ɵɵelement(1, "symphiq-funnel-analysis-breakdown-section", 170);
46822
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_5_Conditional_17_For_2_Template(rf, ctx) { if (rf & 1) {
46823
+ i0.ɵɵelementStart(0, "div", 113);
46824
+ i0.ɵɵelement(1, "symphiq-funnel-analysis-breakdown-section", 171);
46485
46825
  i0.ɵɵelementEnd();
46486
46826
  } if (rf & 2) {
46487
- const breakdown_r38 = ctx.$implicit;
46488
- const $index_r39 = ctx.$index;
46827
+ const breakdown_r39 = ctx.$implicit;
46828
+ const $index_r40 = ctx.$index;
46489
46829
  const ctx_r2 = i0.ɵɵnextContext(4);
46490
- i0.ɵɵstyleProp("animation-delay", 0.8 + $index_r39 * 0.1 + "s");
46491
- i0.ɵɵproperty("libSymphiqSearchHighlight", ctx_r2.searchService.highlightedResultId())("highlightId", "breakdown-" + $index_r39);
46830
+ i0.ɵɵstyleProp("animation-delay", 0.8 + $index_r40 * 0.1 + "s");
46831
+ i0.ɵɵproperty("libSymphiqSearchHighlight", ctx_r2.searchService.highlightedResultId())("highlightId", "breakdown-" + $index_r40);
46492
46832
  i0.ɵɵadvance();
46493
- i0.ɵɵproperty("breakdown", breakdown_r38)("charts", ctx_r2.chartsForBreakdown(breakdown_r38))("isLightMode", ctx_r2.isLightMode())("isCompactMode", ctx_r2.viewModeService.isCompact())("currencySymbol", ctx_r2.currencySymbol());
46833
+ i0.ɵɵproperty("breakdown", breakdown_r39)("charts", ctx_r2.chartsForBreakdown(breakdown_r39))("isLightMode", ctx_r2.isLightMode())("isCompactMode", ctx_r2.viewModeService.isCompact())("currencySymbol", ctx_r2.currencySymbol());
46494
46834
  } }
46495
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_Conditional_17_ForEmpty_3_Template(rf, ctx) { if (rf & 1) {
46496
- i0.ɵɵelementStart(0, "div", 144);
46835
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_5_Conditional_17_ForEmpty_3_Template(rf, ctx) { if (rf & 1) {
46836
+ i0.ɵɵelementStart(0, "div", 145);
46497
46837
  i0.ɵɵnamespaceSVG();
46498
- i0.ɵɵelementStart(1, "svg", 155);
46499
- i0.ɵɵelement(2, "path", 171);
46838
+ i0.ɵɵelementStart(1, "svg", 156);
46839
+ i0.ɵɵelement(2, "path", 172);
46500
46840
  i0.ɵɵelementEnd();
46501
46841
  i0.ɵɵnamespaceHTML();
46502
- i0.ɵɵelementStart(3, "h3", 156);
46842
+ i0.ɵɵelementStart(3, "h3", 157);
46503
46843
  i0.ɵɵtext(4, "No Breakdowns Found");
46504
46844
  i0.ɵɵelementEnd();
46505
- i0.ɵɵelementStart(5, "p", 157);
46845
+ i0.ɵɵelementStart(5, "p", 158);
46506
46846
  i0.ɵɵtext(6, "No performance breakdowns match your current filter selection. Try adjusting your filters to see more results.");
46507
46847
  i0.ɵɵelementEnd()();
46508
46848
  } if (rf & 2) {
@@ -46515,9 +46855,9 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_Co
46515
46855
  i0.ɵɵadvance(2);
46516
46856
  i0.ɵɵproperty("ngClass", ctx_r2.isLightMode() ? "text-slate-600" : "text-slate-400");
46517
46857
  } }
46518
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_Conditional_17_Template(rf, ctx) { if (rf & 1) {
46519
- i0.ɵɵelementStart(0, "div", 95);
46520
- i0.ɵɵrepeaterCreate(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_Conditional_17_For_2_Template, 2, 9, "div", 114, i0.ɵɵrepeaterTrackByIndex, false, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_Conditional_17_ForEmpty_3_Template, 7, 4, "div", 144);
46858
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_5_Conditional_17_Template(rf, ctx) { if (rf & 1) {
46859
+ i0.ɵɵelementStart(0, "div", 96);
46860
+ i0.ɵɵrepeaterCreate(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_5_Conditional_17_For_2_Template, 2, 9, "div", 115, i0.ɵɵrepeaterTrackByIndex, false, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_5_Conditional_17_ForEmpty_3_Template, 7, 4, "div", 145);
46521
46861
  i0.ɵɵelementEnd();
46522
46862
  } if (rf & 2) {
46523
46863
  const ctx_r2 = i0.ɵɵnextContext(3);
@@ -46525,28 +46865,28 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_Co
46525
46865
  i0.ɵɵadvance();
46526
46866
  i0.ɵɵrepeater(ctx_r2.breakdowns());
46527
46867
  } }
46528
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_Template(rf, ctx) { if (rf & 1) {
46529
- const _r36 = i0.ɵɵgetCurrentView();
46530
- i0.ɵɵconditionalCreate(0, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_Conditional_0_Template, 2, 1, "div", 158);
46531
- i0.ɵɵelementStart(1, "section", 159);
46532
- i0.ɵɵelement(2, "div", 160);
46533
- i0.ɵɵelementStart(3, "div", 102)(4, "div", 161)(5, "div", 79)(6, "div", 9);
46868
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_5_Template(rf, ctx) { if (rf & 1) {
46869
+ const _r37 = i0.ɵɵgetCurrentView();
46870
+ i0.ɵɵconditionalCreate(0, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_5_Conditional_0_Template, 2, 1, "div", 159);
46871
+ i0.ɵɵelementStart(1, "section", 160);
46872
+ i0.ɵɵelement(2, "div", 161);
46873
+ i0.ɵɵelementStart(3, "div", 103)(4, "div", 162)(5, "div", 80)(6, "div", 9);
46534
46874
  i0.ɵɵnamespaceSVG();
46535
- i0.ɵɵelementStart(7, "svg", 80);
46536
- i0.ɵɵelement(8, "path", 162);
46875
+ i0.ɵɵelementStart(7, "svg", 81);
46876
+ i0.ɵɵelement(8, "path", 163);
46537
46877
  i0.ɵɵelementEnd();
46538
46878
  i0.ɵɵnamespaceHTML();
46539
- i0.ɵɵelementStart(9, "h2", 82);
46879
+ i0.ɵɵelementStart(9, "h2", 83);
46540
46880
  i0.ɵɵtext(10, "Performance Breakdowns");
46541
46881
  i0.ɵɵelementEnd()()();
46542
- i0.ɵɵelementStart(11, "div", 163);
46543
- i0.ɵɵlistener("click", function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_Template_div_click_11_listener($event) { i0.ɵɵrestoreView(_r36); return i0.ɵɵresetView($event.stopPropagation()); })("mousedown", function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_Template_div_mousedown_11_listener($event) { i0.ɵɵrestoreView(_r36); return i0.ɵɵresetView($event.stopPropagation()); })("pointerdown", function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_Template_div_pointerdown_11_listener($event) { i0.ɵɵrestoreView(_r36); return i0.ɵɵresetView($event.stopPropagation()); });
46544
- i0.ɵɵconditionalCreate(12, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_Conditional_12_Template, 2, 0, "div", 122);
46545
- i0.ɵɵelementStart(13, "select", 164);
46546
- i0.ɵɵlistener("ngModelChange", function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_Template_select_ngModelChange_13_listener($event) { i0.ɵɵrestoreView(_r36); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.changeBreakdownFilter($event)); });
46547
- i0.ɵɵrepeaterCreate(14, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_For_15_Template, 2, 1, null, null, _forTrack0$p);
46882
+ i0.ɵɵelementStart(11, "div", 164);
46883
+ i0.ɵɵlistener("click", function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_5_Template_div_click_11_listener($event) { i0.ɵɵrestoreView(_r37); return i0.ɵɵresetView($event.stopPropagation()); })("mousedown", function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_5_Template_div_mousedown_11_listener($event) { i0.ɵɵrestoreView(_r37); return i0.ɵɵresetView($event.stopPropagation()); })("pointerdown", function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_5_Template_div_pointerdown_11_listener($event) { i0.ɵɵrestoreView(_r37); return i0.ɵɵresetView($event.stopPropagation()); });
46884
+ i0.ɵɵconditionalCreate(12, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_5_Conditional_12_Template, 2, 0, "div", 123);
46885
+ i0.ɵɵelementStart(13, "select", 165);
46886
+ i0.ɵɵlistener("ngModelChange", function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_5_Template_select_ngModelChange_13_listener($event) { i0.ɵɵrestoreView(_r37); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.changeBreakdownFilter($event)); });
46887
+ i0.ɵɵrepeaterCreate(14, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_5_For_15_Template, 2, 1, null, null, _forTrack0$p);
46548
46888
  i0.ɵɵelementEnd()()();
46549
- i0.ɵɵconditionalCreate(16, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_Conditional_16_Template, 3, 1, "div", 95)(17, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_Conditional_17_Template, 4, 5, "div", 165);
46889
+ i0.ɵɵconditionalCreate(16, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_5_Conditional_16_Template, 3, 1, "div", 96)(17, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_5_Conditional_17_Template, 4, 5, "div", 166);
46550
46890
  i0.ɵɵelementEnd()();
46551
46891
  } if (rf & 2) {
46552
46892
  const ctx_r2 = i0.ɵɵnextContext(2);
@@ -46569,57 +46909,57 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_Te
46569
46909
  i0.ɵɵadvance(2);
46570
46910
  i0.ɵɵconditional(ctx_r2.isDataLoading() ? 16 : 17);
46571
46911
  } }
46572
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_6_Conditional_0_Template(rf, ctx) { if (rf & 1) {
46573
- i0.ɵɵelementStart(0, "div", 158);
46574
- i0.ɵɵelement(1, "symphiq-section-divider", 176);
46912
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_6_Conditional_0_Template(rf, ctx) { if (rf & 1) {
46913
+ i0.ɵɵelementStart(0, "div", 159);
46914
+ i0.ɵɵelement(1, "symphiq-section-divider", 177);
46575
46915
  i0.ɵɵelementEnd();
46576
46916
  } if (rf & 2) {
46577
46917
  const ctx_r2 = i0.ɵɵnextContext(3);
46578
46918
  i0.ɵɵadvance();
46579
46919
  i0.ɵɵproperty("viewMode", ctx_r2.viewMode());
46580
46920
  } }
46581
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_6_Conditional_13_Template(rf, ctx) { if (rf & 1) {
46582
- i0.ɵɵelementStart(0, "div", 122);
46583
- i0.ɵɵelement(1, "div", 177);
46921
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_6_Conditional_13_Template(rf, ctx) { if (rf & 1) {
46922
+ i0.ɵɵelementStart(0, "div", 123);
46923
+ i0.ɵɵelement(1, "div", 178);
46584
46924
  i0.ɵɵelementEnd();
46585
46925
  } }
46586
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_6_For_16_Conditional_0_Template(rf, ctx) { if (rf & 1) {
46587
- i0.ɵɵelementStart(0, "option", 138);
46926
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_6_For_16_Conditional_0_Template(rf, ctx) { if (rf & 1) {
46927
+ i0.ɵɵelementStart(0, "option", 139);
46588
46928
  i0.ɵɵtext(1);
46589
46929
  i0.ɵɵelementEnd();
46590
46930
  } if (rf & 2) {
46591
- const filter_r41 = i0.ɵɵnextContext().$implicit;
46592
- i0.ɵɵproperty("value", filter_r41.value);
46931
+ const filter_r42 = i0.ɵɵnextContext().$implicit;
46932
+ i0.ɵɵproperty("value", filter_r42.value);
46593
46933
  i0.ɵɵadvance();
46594
- i0.ɵɵtextInterpolate(filter_r41.label);
46934
+ i0.ɵɵtextInterpolate(filter_r42.label);
46595
46935
  } }
46596
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_6_For_16_Conditional_1_Template(rf, ctx) { if (rf & 1) {
46936
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_6_For_16_Conditional_1_Template(rf, ctx) { if (rf & 1) {
46597
46937
  i0.ɵɵelementStart(0, "option", 49);
46598
46938
  i0.ɵɵtext(1);
46599
46939
  i0.ɵɵelementEnd();
46600
46940
  } if (rf & 2) {
46601
- const filter_r41 = i0.ɵɵnextContext().$implicit;
46602
- i0.ɵɵproperty("value", filter_r41.value);
46941
+ const filter_r42 = i0.ɵɵnextContext().$implicit;
46942
+ i0.ɵɵproperty("value", filter_r42.value);
46603
46943
  i0.ɵɵadvance();
46604
- i0.ɵɵtextInterpolate(filter_r41.label);
46944
+ i0.ɵɵtextInterpolate(filter_r42.label);
46605
46945
  } }
46606
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_6_For_16_Template(rf, ctx) { if (rf & 1) {
46607
- i0.ɵɵconditionalCreate(0, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_6_For_16_Conditional_0_Template, 2, 2, "option", 138)(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_6_For_16_Conditional_1_Template, 2, 2, "option", 49);
46946
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_6_For_16_Template(rf, ctx) { if (rf & 1) {
46947
+ i0.ɵɵconditionalCreate(0, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_6_For_16_Conditional_0_Template, 2, 2, "option", 139)(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_6_For_16_Conditional_1_Template, 2, 2, "option", 49);
46608
46948
  } if (rf & 2) {
46609
- const filter_r41 = ctx.$implicit;
46610
- i0.ɵɵconditional(filter_r41.divider ? 0 : 1);
46949
+ const filter_r42 = ctx.$implicit;
46950
+ i0.ɵɵconditional(filter_r42.divider ? 0 : 1);
46611
46951
  } }
46612
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_6_Conditional_17_For_5_Template(rf, ctx) { if (rf & 1) {
46613
- i0.ɵɵelement(0, "symphiq-skeleton-loader", 85);
46952
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_6_Conditional_17_For_5_Template(rf, ctx) { if (rf & 1) {
46953
+ i0.ɵɵelement(0, "symphiq-skeleton-loader", 86);
46614
46954
  } if (rf & 2) {
46615
46955
  const ctx_r2 = i0.ɵɵnextContext(4);
46616
46956
  i0.ɵɵproperty("width", "100%")("height", "140px")("isLightMode", ctx_r2.isLightMode());
46617
46957
  } }
46618
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_6_Conditional_17_Template(rf, ctx) { if (rf & 1) {
46619
- i0.ɵɵelementStart(0, "div", 95)(1, "div", 141);
46620
- i0.ɵɵelement(2, "symphiq-skeleton-loader", 85);
46621
- i0.ɵɵelementStart(3, "div", 178);
46622
- i0.ɵɵrepeaterCreate(4, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_6_Conditional_17_For_5_Template, 1, 3, "symphiq-skeleton-loader", 85, i0.ɵɵrepeaterTrackByIdentity);
46958
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_6_Conditional_17_Template(rf, ctx) { if (rf & 1) {
46959
+ i0.ɵɵelementStart(0, "div", 96)(1, "div", 142);
46960
+ i0.ɵɵelement(2, "symphiq-skeleton-loader", 86);
46961
+ i0.ɵɵelementStart(3, "div", 179);
46962
+ i0.ɵɵrepeaterCreate(4, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_6_Conditional_17_For_5_Template, 1, 3, "symphiq-skeleton-loader", 86, i0.ɵɵrepeaterTrackByIdentity);
46623
46963
  i0.ɵɵelementEnd()()();
46624
46964
  } if (rf & 2) {
46625
46965
  const ctx_r2 = i0.ɵɵnextContext(3);
@@ -46630,34 +46970,34 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_6_Co
46630
46970
  i0.ɵɵadvance(2);
46631
46971
  i0.ɵɵrepeater(i0.ɵɵpureFunction0(4, _c3$5));
46632
46972
  } }
46633
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_6_Conditional_18_Template(rf, ctx) { if (rf & 1) {
46634
- i0.ɵɵelement(0, "symphiq-competitive-intelligence-view", 92);
46973
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_6_Conditional_18_Template(rf, ctx) { if (rf & 1) {
46974
+ i0.ɵɵelement(0, "symphiq-competitive-intelligence-view", 93);
46635
46975
  } if (rf & 2) {
46636
46976
  let tmp_8_0;
46637
46977
  const ctx_r2 = i0.ɵɵnextContext(3);
46638
46978
  i0.ɵɵproperty("metrics", ctx_r2.competitiveMetrics())("allCharts", ctx_r2.allCharts())("isLightMode", ctx_r2.isLightMode())("isCompactMode", ctx_r2.viewModeService.isCompact())("competitiveBenchmark", (tmp_8_0 = ctx_r2.performanceOverview().overallAssessment) == null ? null : tmp_8_0.competitiveBenchmark)("currencySymbol", ctx_r2.currencySymbol());
46639
46979
  } }
46640
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_6_Template(rf, ctx) { if (rf & 1) {
46641
- const _r40 = i0.ɵɵgetCurrentView();
46642
- i0.ɵɵconditionalCreate(0, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_6_Conditional_0_Template, 2, 1, "div", 158);
46643
- i0.ɵɵelementStart(1, "section", 172);
46644
- i0.ɵɵelement(2, "div", 101);
46645
- i0.ɵɵelementStart(3, "div", 102)(4, "div", 173)(5, "div", 9)(6, "div", 79)(7, "div", 9);
46980
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_6_Template(rf, ctx) { if (rf & 1) {
46981
+ const _r41 = i0.ɵɵgetCurrentView();
46982
+ i0.ɵɵconditionalCreate(0, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_6_Conditional_0_Template, 2, 1, "div", 159);
46983
+ i0.ɵɵelementStart(1, "section", 173);
46984
+ i0.ɵɵelement(2, "div", 102);
46985
+ i0.ɵɵelementStart(3, "div", 103)(4, "div", 174)(5, "div", 9)(6, "div", 80)(7, "div", 9);
46646
46986
  i0.ɵɵnamespaceSVG();
46647
- i0.ɵɵelementStart(8, "svg", 80);
46648
- i0.ɵɵelement(9, "path", 174);
46987
+ i0.ɵɵelementStart(8, "svg", 81);
46988
+ i0.ɵɵelement(9, "path", 175);
46649
46989
  i0.ɵɵelementEnd();
46650
46990
  i0.ɵɵnamespaceHTML();
46651
- i0.ɵɵelementStart(10, "h2", 82);
46991
+ i0.ɵɵelementStart(10, "h2", 83);
46652
46992
  i0.ɵɵtext(11, "Competitive Intelligence");
46653
46993
  i0.ɵɵelementEnd()()()();
46654
- i0.ɵɵelementStart(12, "div", 175);
46655
- i0.ɵɵconditionalCreate(13, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_6_Conditional_13_Template, 2, 0, "div", 122);
46656
- i0.ɵɵelementStart(14, "select", 123);
46657
- i0.ɵɵlistener("ngModelChange", function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_6_Template_select_ngModelChange_14_listener($event) { i0.ɵɵrestoreView(_r40); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.changeCompetitiveFilter($event)); });
46658
- i0.ɵɵrepeaterCreate(15, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_6_For_16_Template, 2, 1, null, null, _forTrack0$p);
46994
+ i0.ɵɵelementStart(12, "div", 176);
46995
+ i0.ɵɵconditionalCreate(13, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_6_Conditional_13_Template, 2, 0, "div", 123);
46996
+ i0.ɵɵelementStart(14, "select", 124);
46997
+ i0.ɵɵlistener("ngModelChange", function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_6_Template_select_ngModelChange_14_listener($event) { i0.ɵɵrestoreView(_r41); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.changeCompetitiveFilter($event)); });
46998
+ i0.ɵɵrepeaterCreate(15, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_6_For_16_Template, 2, 1, null, null, _forTrack0$p);
46659
46999
  i0.ɵɵelementEnd()()();
46660
- i0.ɵɵconditionalCreate(17, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_6_Conditional_17_Template, 6, 5, "div", 95)(18, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_6_Conditional_18_Template, 1, 6, "symphiq-competitive-intelligence-view", 92);
47000
+ i0.ɵɵconditionalCreate(17, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_6_Conditional_17_Template, 6, 5, "div", 96)(18, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_6_Conditional_18_Template, 1, 6, "symphiq-competitive-intelligence-view", 93);
46661
47001
  i0.ɵɵelementEnd()();
46662
47002
  } if (rf & 2) {
46663
47003
  const ctx_r2 = i0.ɵɵnextContext(2);
@@ -46681,13 +47021,13 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_6_Te
46681
47021
  i0.ɵɵadvance(2);
46682
47022
  i0.ɵɵconditional(ctx_r2.isDataLoading() ? 17 : 18);
46683
47023
  } }
46684
- function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Template(rf, ctx) { if (rf & 1) {
46685
- i0.ɵɵelementStart(0, "main", 36)(1, "div", 66);
46686
- i0.ɵɵconditionalCreate(2, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_2_Template, 3, 1, "div", 93);
46687
- i0.ɵɵconditionalCreate(3, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_3_Template, 17, 10);
46688
- i0.ɵɵconditionalCreate(4, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Template, 30, 18);
46689
- i0.ɵɵconditionalCreate(5, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_Template, 18, 12);
46690
- i0.ɵɵconditionalCreate(6, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_6_Template, 19, 13);
47024
+ function SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Template(rf, ctx) { if (rf & 1) {
47025
+ i0.ɵɵelementStart(0, "main", 36)(1, "div", 68);
47026
+ i0.ɵɵconditionalCreate(2, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_2_Template, 3, 1, "div", 94);
47027
+ i0.ɵɵconditionalCreate(3, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_3_Template, 17, 10);
47028
+ i0.ɵɵconditionalCreate(4, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_4_Template, 30, 18);
47029
+ i0.ɵɵconditionalCreate(5, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_5_Template, 18, 12);
47030
+ i0.ɵɵconditionalCreate(6, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Conditional_6_Template, 19, 13);
46691
47031
  i0.ɵɵelementEnd()();
46692
47032
  } if (rf & 2) {
46693
47033
  const ctx_r2 = i0.ɵɵnextContext();
@@ -46723,9 +47063,15 @@ class SymphiqFunnelAnalysisDashboardComponent {
46723
47063
  this.isOnboarded = input(false, ...(ngDevMode ? [{ debugName: "isOnboarded" }] : []));
46724
47064
  this.forDemo = input(false, ...(ngDevMode ? [{ debugName: "forDemo" }] : []));
46725
47065
  this.maxAccessibleStepId = input(undefined, ...(ngDevMode ? [{ debugName: "maxAccessibleStepId" }] : []));
47066
+ this.itemStatus = input(...(ngDevMode ? [undefined, { debugName: "itemStatus" }] : []));
46726
47067
  this.stepClick = output();
46727
47068
  this.nextStepClick = output();
46728
47069
  this.JourneyStepIdEnum = JourneyStepIdEnum;
47070
+ this.AiDynamicContentStatusEnum = AiDynamicContentStatusEnum;
47071
+ this.isContentGenerating = computed(() => {
47072
+ const status = this.funnelAnalysis()?.selfContentStatus;
47073
+ return status === AiDynamicContentStatusEnum.REQUESTED || status === AiDynamicContentStatusEnum.GENERATING;
47074
+ }, ...(ngDevMode ? [{ debugName: "isContentGenerating" }] : []));
46729
47075
  // State signals
46730
47076
  this.selectedCategory = signal('ALL', ...(ngDevMode ? [{ debugName: "selectedCategory" }] : []));
46731
47077
  this.reverseSortOrder = signal(false, ...(ngDevMode ? [{ debugName: "reverseSortOrder" }] : []));
@@ -47750,7 +48096,7 @@ class SymphiqFunnelAnalysisDashboardComponent {
47750
48096
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.dashboardContainer = _t.first);
47751
48097
  } }, hostBindings: function SymphiqFunnelAnalysisDashboardComponent_HostBindings(rf, ctx) { if (rf & 1) {
47752
48098
  i0.ɵɵlistener("scroll", function SymphiqFunnelAnalysisDashboardComponent_scroll_HostBindingHandler($event) { return ctx.onScroll($event); }, i0.ɵɵresolveWindow);
47753
- } }, inputs: { requestedByUser: [1, "requestedByUser"], viewMode: [1, "viewMode"], funnelAnalysis: [1, "funnelAnalysis"], businessProfile: [1, "businessProfile"], embedded: [1, "embedded"], scrollEvent: [1, "scrollEvent"], scrollElement: [1, "scrollElement"], isLoading: [1, "isLoading"], isOnboarded: [1, "isOnboarded"], forDemo: [1, "forDemo"], maxAccessibleStepId: [1, "maxAccessibleStepId"] }, outputs: { stepClick: "stepClick", nextStepClick: "nextStepClick" }, decls: 60, vars: 89, consts: [["dashboardContainer", ""], [1, "bg-transparent"], [1, "animated-bubbles", 2, "position", "fixed", "top", "0", "left", "0", "right", "0", "bottom", "0", "width", "100vw", "height", "100vh", "z-index", "1", "pointer-events", "none"], [1, "h-full", "transition-all", "duration-200", "ease-out", 3, "ngClass"], [1, "sticky", "top-0", "z-50", "animate-fade-in", 2, "animation-delay", "0s"], [1, "transition-all", "duration-300", "ease-in-out", "overflow-hidden"], [1, "max-w-7xl", "mx-auto", "px-6", "sm:px-8", "py-6", "sm:py-8"], [1, "flex", "flex-col", "sm:flex-row", "items-start", "sm:items-center", "justify-between", "gap-3", "sm:gap-0"], [1, "flex-1"], [1, "flex", "items-center", "gap-3"], [1, "text-2xl", "sm:text-3xl", "font-bold", "mb-2", "bg-gradient-to-r", "from-blue-600", "via-purple-600", "to-indigo-600", "bg-clip-text", "text-transparent"], ["title", "Refreshing data...", 1, "animate-spin", "w-4", "h-4", "border-2", "border-blue-500/30", "border-t-blue-500", "rounded-full"], [1, "flex", "flex-wrap", "items-center", "justify-between", "gap-3", "sm:gap-4"], [1, "text-sm", "sm:text-base"], [1, "flex", "items-center", "gap-4"], ["type", "button", "title", "Search (/ or Cmd+K)", 1, "flex", "items-center", "gap-2", "px-3", "py-1.5", "rounded-lg", "text-xs", "font-medium", "transition-all", "duration-200", "hover:scale-105", 3, "class"], ["type", "button", 1, "flex", "items-center", "gap-2", "px-3", "py-1.5", "rounded-lg", "text-xs", "font-medium", "transition-all", "duration-200", "hover:scale-105", 3, "click"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M15 12a3 3 0 11-6 0 3 3 0 016 0z"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"], [1, "flex", "items-center", "gap-2", "sm:gap-3", "whitespace-nowrap"], [1, "flex", "flex-col", "gap-4", "min-w-[180px]"], [1, "text-left", "sm:text-right"], [1, "text-xs", "sm:text-sm"], [1, "text-sm", "sm:text-base", "font-medium"], [1, "max-w-7xl", "mx-auto", "px-6", "sm:px-8", "py-3"], [1, "flex", "items-center", "justify-between", "gap-4"], [1, "flex", "items-center", "gap-4", "flex-1", "min-w-0"], [1, "text-lg", "font-bold", "truncate", "bg-gradient-to-r", "from-blue-600", "via-purple-600", "to-indigo-600", "bg-clip-text", "text-transparent"], [1, "hidden", "lg:flex", "items-center", "gap-3", "px-4", "py-1.5", "rounded-lg", 3, "ngClass"], ["type", "button", "title", "Search (/ or Cmd+K)", 1, "p-2", "rounded-lg", "transition-all", "duration-200", "hover:scale-110", 3, "class"], ["type", "button", 1, "p-2", "rounded-lg", "transition-all", "duration-200", "hover:scale-110", 3, "click", "title"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-5", "h-5"], [1, "sticky", "top-[var(--header-height)]", "z-40", "border-b", "backdrop-blur-md", "animate-slide-up-fade", 3, "ngClass"], [3, "sections", "viewMode", "embedded", "scrollElement"], [1, "fixed", "right-6", "top-1/2", "-translate-y-1/2", "z-40", "hidden", "xl:flex", "flex-col", "gap-4"], [1, "max-w-7xl", "mx-auto", "px-6", "sm:px-8"], [3, "isLightMode", "viewMode", "allMetrics", "allInsights", "allCharts", "currencySymbol", "businessProfile"], [3, "isLightMode", "allMetrics"], [3, "isLightMode"], [3, "resultSelected", "isLightMode"], [3, "close", "modeSelected", "isOpen", "currentMode", "viewMode", "isLoading"], [3, "expandedChange", "scrollToTop", "toggleView", "isLightMode", "isCompactMode", "isExpanded"], [3, "navigate", "isLightMode", "sections", "activeSection"], ["type", "button", "title", "Search (/ or Cmd+K)", 1, "flex", "items-center", "gap-2", "px-3", "py-1.5", "rounded-lg", "text-xs", "font-medium", "transition-all", "duration-200", "hover:scale-105", 3, "click"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"], [1, "text-xs", "sm:text-sm", "font-medium"], [3, "click", "mousedown", "pointerdown"], [1, "px-3", "sm:px-4", "py-1.5", "rounded-lg", "text-xs", "sm:text-sm", "font-medium", "focus:outline-none", "focus:ring-2", "focus:ring-blue-500", "focus:border-transparent", "transition-colors", "duration-200", "cursor-pointer", 3, "ngModelChange", "ngModel"], [3, "value"], [1, "text-xs", "font-medium"], [1, "text-sm", "font-bold"], [1, "text-xs", "font-semibold", 3, "ngClass"], ["type", "button", "title", "Search (/ or Cmd+K)", 1, "p-2", "rounded-lg", "transition-all", "duration-200", "hover:scale-110", 3, "click"], [1, "px-3", "py-1.5", "rounded-lg", "text-xs", "font-medium", "focus:outline-none", "focus:ring-2", "focus:ring-blue-500", "focus:border-transparent", "transition-colors", "duration-200", "cursor-pointer", 3, "ngModelChange", "ngModel"], [1, "flex", "items-center", "gap-3", "flex-1", "min-w-0"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-5", "h-5", "flex-shrink-0", 3, "ngClass"], [1, "flex", "items-center", "gap-2", "flex-1", "min-w-0"], [1, "text-sm", "font-medium", 3, "ngClass"], [1, "text-sm", "font-semibold", "truncate", 3, "ngClass"], [1, "px-2", "py-0.5", "rounded", "text-xs", "font-medium", "uppercase", "border", "flex-shrink-0", 3, "ngClass"], ["title", "Clear search", 1, "p-2", "rounded-lg", "transition-colors", "flex-shrink-0", 3, "click", "ngClass"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M6 18L18 6M6 6l12 12"], [1, "w-3", "h-3", "rounded-full", "transition-all", "duration-200", "hover:scale-150", "active:scale-100", "cursor-pointer", 3, "libSymphiqTooltip", "tooltipPosition", "ngClass"], [1, "w-3", "h-3", "rounded-full", "transition-all", "duration-200", "hover:scale-150", "active:scale-100", "cursor-pointer", 3, "click", "libSymphiqTooltip", "tooltipPosition", "ngClass"], [3, "viewMode", "currentStepId", "showNextStepAction", "forDemo", "maxAccessibleStepId"], [1, "pt-8", "sm:pt-12", "pb-16", "sm:pb-24"], [1, "mb-8"], [3, "viewMode", "isOnboarded"], ["id", "section-insights", 1, "mb-8"], [3, "viewMode"], ["slot", "overall-performance"], [1, "p-6"], ["slot", "performance-metrics"], [1, "p-6", "space-y-8"], ["slot", "performance-breakdowns"], ["slot", "competitive-intelligence"], [3, "stepClick", "nextStepClick", "viewMode", "currentStepId", "showNextStepAction", "forDemo", "maxAccessibleStepId"], [1, "flex", "items-center", "justify-between", "mb-6"], [1, "pl-4", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-6", "h-6", 3, "ngClass"], ["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"], [1, "text-xl", "sm:text-2xl", "font-bold"], [1, "grid", "grid-cols-1", "md:grid-cols-2", "gap-6"], [3, "insight", "allMetrics", "charts", "allCharts", "allBusinessInsights", "isLightMode", "viewMode", "isCompactMode", "isLoading"], [3, "width", "height", "isLightMode"], [3, "assessment", "revenueMetric", "charts", "metrics", "isLightMode", "isLoading", "isCompactMode", "isChartsLoading", "strengths", "weaknesses", "currencySymbol"], [3, "scrollToSection", "assessment", "revenueMetric", "charts", "metrics", "isLightMode", "isLoading", "isCompactMode", "isChartsLoading", "strengths", "weaknesses", "currencySymbol"], [1, "w-full"], [3, "metric", "insights", "charts", "allCharts", "analysis", "isLightMode", "viewMode", "isCompactMode", "currencySymbol"], [1, "grid", "grid-cols-1", "md:grid-cols-2", "lg:grid-cols-3", "gap-6", "mt-4"], [3, "breakdown", "charts", "isLightMode", "isLoading", "isCompactMode", "currencySymbol"], [3, "metrics", "allCharts", "isLightMode", "isCompactMode", "competitiveBenchmark", "currencySymbol"], ["id", "section-overall", 1, "animate-fade-in-up", "mb-20", "sm:mb-28", 2, "animation-delay", "0.1s"], [1, "rounded-xl", "border", "p-6", "sm:p-8", "animate-pulse", 3, "ngClass"], [1, "space-y-6"], [1, "flex-1", "space-y-2"], [1, "space-y-2"], [1, "grid", "grid-cols-1", "md:grid-cols-2", "gap-4", "mt-6"], ["animationDelay", "0.15s", 3, "viewMode"], ["id", "section-insights", 1, "relative"], [1, "absolute", "inset-0", "-mx-6", "sm:-mx-8", "-mt-8", "rounded-3xl", "opacity-30", "backdrop-blur-sm", 2, "mask-image", "radial-gradient(ellipse at center, black 0%, transparent 70%)", 3, "ngClass"], [1, "relative"], [1, "flex", "items-center", "justify-between", "mb-6", "sm:mb-8", "animate-fade-in", 2, "animation-delay", "0.2s"], [1, "masonry-grid"], [1, "grid", "grid-cols-1", "md:grid-cols-2", "lg:grid-cols-3", "gap-4"], [1, "rounded-xl", "border", "p-6", "animate-pulse", "min-h-[280px]", 3, "ngClass"], [1, "space-y-4"], [1, "flex", "items-center", "gap-3", "mb-4"], [1, "mt-6", "space-y-2"], [1, "flex", "gap-2", "mt-4"], [1, "animate-fade-in-up", 3, "class", "animation-delay", "libSymphiqSearchHighlight", "highlightId"], [1, "animate-fade-in-up", 3, "libSymphiqSearchHighlight", "highlightId"], [3, "insight", "allMetrics", "charts", "allCharts", "allBusinessInsights", "isLightMode", "viewMode", "isCompactMode"], [1, "animate-fade-in-up", 3, "animation-delay", "libSymphiqSearchHighlight", "highlightId"], [1, "relative", "mb-14", "sm:mb-24", "mt-24", "sm:mt-32", "animate-fade-in", 2, "animation-delay", "0.35s"], ["id", "section-metrics", 1, "relative"], [1, "absolute", "inset-0", "-mx-6", "sm:-mx-8", "-mt-8", "rounded-3xl", "opacity-30", "backdrop-blur-sm", 2, "mask-image", "radial-gradient(ellipse at top right, black 0%, transparent 70%)", 3, "ngClass"], [1, "flex", "flex-col", "gap-4", "mb-6", "sm:mb-8", "animate-fade-in", 2, "animation-delay", "0.4s"], [1, "flex", "items-center", "justify-between"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"], [1, "hidden", "sm:flex", "gap-2", "sm:gap-3", "items-center", "relative"], [1, "absolute", "-right-2", "top-1/2", "-translate-y-1/2", "z-10"], [1, "px-3", "sm:px-4", "py-2", "rounded-lg", "text-xs", "sm:text-sm", "font-medium", "focus:outline-none", "focus:ring-2", "focus:ring-blue-500", "focus:border-transparent", "transition-all", "duration-200", "cursor-pointer", 3, "ngModelChange", "ngModel"], [1, "px-3", "sm:px-4", "py-2", "rounded-lg", "text-xs", "sm:text-sm", "font-medium", "focus:outline-none", "focus:ring-2", "focus:ring-blue-500", "transition-all", "flex", "items-center", "gap-2", "cursor-pointer", "hover:scale-105", "active:scale-95", 3, "click", "title"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M3 4h13M3 8h9m-9 4h6m4 0l4-4m0 0l4 4m-4-4v12"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M3 4h13M3 8h9m-9 4h9m5-4v12m0 0l-4-4m4 4l4-4"], [1, "sm:hidden", "-mx-6", "px-6"], [1, "flex", "gap-2", "overflow-x-auto", "pb-2", "snap-x", "snap-mandatory", "scrollbar-hide"], [1, "space-y-8", "sm:space-y-10"], [1, "space-y-8", "sm:space-y-10", 3, "animate-content-change", "transition-opacity-slow"], ["aria-hidden", "true", 1, "absolute", "inset-0", "flex", "items-center"], [1, "w-full", "h-px", "bg-gradient-to-r", 3, "ngClass"], [1, "relative", "flex", "justify-center"], [1, "px-4", "py-2", "rounded-full", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-5", "h-5", 3, "ngClass"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M7 12l3-3 3 3 4-4M8 21l4-4 4 4M3 4h18M4 4h16v12a1 1 0 01-1 1H5a1 1 0 01-1-1V4z"], [1, "w-4", "h-4", "border-2", "border-blue-500/30", "border-t-blue-500", "rounded-full", "animate-spin"], ["disabled", "", 1, "font-semibold", 3, "value"], [1, "px-4", "py-2", "rounded-full", "text-xs", "font-medium", "whitespace-nowrap", "transition-all", "duration-200", "flex-shrink-0", "snap-start", "active:scale-95", 3, "ngClass", "opacity-70"], [1, "px-4", "py-2", "rounded-full", "text-xs", "font-medium", "whitespace-nowrap", "transition-all", "duration-200", "flex-shrink-0", "snap-start", "active:scale-95", 3, "click", "ngClass"], [1, "rounded-xl", "border", "p-6", "animate-pulse", 3, "ngClass"], [1, "flex", "items-center", "justify-between", "mb-4"], [1, "grid", "grid-cols-2", "md:grid-cols-4", "gap-4", "mt-6"], [1, "rounded-xl", "p-12", "border", "text-center", "animate-fade-in", 3, "ngClass"], [1, "w-full", "animate-fade-in-up", 3, "libSymphiqSearchHighlight", "highlightId"], [1, "bento-grid", "mt-4"], [1, "grid", "grid-cols-1", "md:grid-cols-2", "lg:grid-cols-4", "gap-3", "sm:gap-4", "mt-4"], [1, "animate-fade-in-up", 3, "class", "animation-delay"], [1, "animate-fade-in-up"], [1, "h-full", 3, "metric", "insights", "charts", "allCharts", "analysis", "isLightMode", "viewMode", "isCompactMode", "currencySymbol"], [1, "animate-fade-in-up", 3, "animation-delay"], [1, "rounded-xl", "border", "p-6", "animate-pulse", "min-h-[240px]", 3, "ngClass"], [1, "flex", "items-center", "gap-3", "mt-4"], [1, "mt-4"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-16", "h-16", "mx-auto", "mb-4", 3, "ngClass"], [1, "text-lg", "font-semibold", "mb-2", 3, "ngClass"], [1, "text-sm", 3, "ngClass"], [1, "mt-28", "sm:mt-36"], ["id", "section-breakdowns", 1, "relative"], [1, "absolute", "inset-0", "-mx-6", "sm:-mx-8", "-mt-8", "rounded-3xl", "opacity-30", "backdrop-blur-sm", 2, "mask-image", "radial-gradient(ellipse at bottom left, black 0%, transparent 70%)", 3, "ngClass"], [1, "flex", "flex-col", "sm:flex-row", "sm:items-center", "justify-between", "gap-4", "mb-6", "sm:mb-8", "animate-fade-in", 2, "animation-delay", "0.7s"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z"], [1, "relative", "inline-block", 3, "click", "mousedown", "pointerdown"], [1, "px-3", "py-2", "text-sm", "rounded-lg", "border", "transition-all", "duration-200", "cursor-pointer", "focus:ring-2", "focus:ring-blue-500", "focus:outline-none", 3, "ngModelChange", "ngModel", "ngClass"], [1, "space-y-6", 3, "animate-content-change", "transition-opacity-slow"], ["animationDelay", "0.65s", 3, "viewMode"], [1, "w-4", "h-4", "border-2", "border-purple-500/30", "border-t-purple-500", "rounded-full", "animate-spin"], [1, "space-y-3"], [1, "flex", "items-center", "justify-between", "p-3", "rounded-lg", 3, "ngClass"], [3, "breakdown", "charts", "isLightMode", "isCompactMode", "currencySymbol"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z"], ["id", "section-competitive", 1, "relative"], [1, "flex", "items-center", "justify-between", "mb-6", "sm:mb-8", "animate-fade-in", 2, "animation-delay", "0.9s"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4"], [1, "hidden", "sm:block", "relative"], ["animationDelay", "0.85s", 3, "viewMode"], [1, "w-4", "h-4", "border-2", "border-indigo-500/30", "border-t-indigo-500", "rounded-full", "animate-spin"], [1, "grid", "grid-cols-1", "md:grid-cols-3", "gap-4", "mt-6"]], template: function SymphiqFunnelAnalysisDashboardComponent_Template(rf, ctx) { if (rf & 1) {
48099
+ } }, inputs: { requestedByUser: [1, "requestedByUser"], viewMode: [1, "viewMode"], funnelAnalysis: [1, "funnelAnalysis"], businessProfile: [1, "businessProfile"], embedded: [1, "embedded"], scrollEvent: [1, "scrollEvent"], scrollElement: [1, "scrollElement"], isLoading: [1, "isLoading"], isOnboarded: [1, "isOnboarded"], forDemo: [1, "forDemo"], maxAccessibleStepId: [1, "maxAccessibleStepId"], itemStatus: [1, "itemStatus"] }, outputs: { stepClick: "stepClick", nextStepClick: "nextStepClick" }, decls: 61, vars: 89, consts: [["dashboardContainer", ""], [1, "bg-transparent"], [1, "animated-bubbles", 2, "position", "fixed", "top", "0", "left", "0", "right", "0", "bottom", "0", "width", "100vw", "height", "100vh", "z-index", "1", "pointer-events", "none"], [1, "h-full", "transition-all", "duration-200", "ease-out", 3, "ngClass"], [1, "sticky", "top-0", "z-50", "animate-fade-in", 2, "animation-delay", "0s"], [1, "transition-all", "duration-300", "ease-in-out", "overflow-hidden"], [1, "max-w-7xl", "mx-auto", "px-6", "sm:px-8", "py-6", "sm:py-8"], [1, "flex", "flex-col", "sm:flex-row", "items-start", "sm:items-center", "justify-between", "gap-3", "sm:gap-0"], [1, "flex-1"], [1, "flex", "items-center", "gap-3"], [1, "text-2xl", "sm:text-3xl", "font-bold", "mb-2", "bg-gradient-to-r", "from-blue-600", "via-purple-600", "to-indigo-600", "bg-clip-text", "text-transparent"], ["title", "Refreshing data...", 1, "animate-spin", "w-4", "h-4", "border-2", "border-blue-500/30", "border-t-blue-500", "rounded-full"], [1, "flex", "flex-wrap", "items-center", "justify-between", "gap-3", "sm:gap-4"], [1, "text-sm", "sm:text-base"], [1, "flex", "items-center", "gap-4"], ["type", "button", "title", "Search (/ or Cmd+K)", 1, "flex", "items-center", "gap-2", "px-3", "py-1.5", "rounded-lg", "text-xs", "font-medium", "transition-all", "duration-200", "hover:scale-105", 3, "class"], ["type", "button", 1, "flex", "items-center", "gap-2", "px-3", "py-1.5", "rounded-lg", "text-xs", "font-medium", "transition-all", "duration-200", "hover:scale-105", 3, "click"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M15 12a3 3 0 11-6 0 3 3 0 016 0z"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"], [1, "flex", "items-center", "gap-2", "sm:gap-3", "whitespace-nowrap"], [1, "flex", "flex-col", "gap-4", "min-w-[180px]"], [1, "text-left", "sm:text-right"], [1, "text-xs", "sm:text-sm"], [1, "text-sm", "sm:text-base", "font-medium"], [1, "max-w-7xl", "mx-auto", "px-6", "sm:px-8", "py-3"], [1, "flex", "items-center", "justify-between", "gap-4"], [1, "flex", "items-center", "gap-4", "flex-1", "min-w-0"], [1, "text-lg", "font-bold", "truncate", "bg-gradient-to-r", "from-blue-600", "via-purple-600", "to-indigo-600", "bg-clip-text", "text-transparent"], [1, "hidden", "lg:flex", "items-center", "gap-3", "px-4", "py-1.5", "rounded-lg", 3, "ngClass"], ["type", "button", "title", "Search (/ or Cmd+K)", 1, "p-2", "rounded-lg", "transition-all", "duration-200", "hover:scale-110", 3, "class"], ["type", "button", 1, "p-2", "rounded-lg", "transition-all", "duration-200", "hover:scale-110", 3, "click", "title"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-5", "h-5"], [1, "sticky", "top-[var(--header-height)]", "z-40", "border-b", "backdrop-blur-md", "animate-slide-up-fade", 3, "ngClass"], [3, "sections", "viewMode", "embedded", "scrollElement"], [1, "fixed", "right-6", "top-1/2", "-translate-y-1/2", "z-40", "hidden", "xl:flex", "flex-col", "gap-4"], [1, "max-w-7xl", "mx-auto", "px-6", "sm:px-8"], [3, "isLightMode", "viewMode", "allMetrics", "allInsights", "allCharts", "currencySymbol", "businessProfile"], [3, "isLightMode", "allMetrics"], [3, "isLightMode"], [3, "resultSelected", "isLightMode"], [3, "close", "modeSelected", "isOpen", "currentMode", "viewMode", "isLoading"], [3, "expandedChange", "scrollToTop", "toggleView", "isLightMode", "isCompactMode", "isExpanded"], [3, "navigate", "isLightMode", "sections", "activeSection"], ["type", "button", "title", "Search (/ or Cmd+K)", 1, "flex", "items-center", "gap-2", "px-3", "py-1.5", "rounded-lg", "text-xs", "font-medium", "transition-all", "duration-200", "hover:scale-105", 3, "click"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"], [1, "text-xs", "sm:text-sm", "font-medium"], [3, "click", "mousedown", "pointerdown"], [1, "px-3", "sm:px-4", "py-1.5", "rounded-lg", "text-xs", "sm:text-sm", "font-medium", "focus:outline-none", "focus:ring-2", "focus:ring-blue-500", "focus:border-transparent", "transition-colors", "duration-200", "cursor-pointer", 3, "ngModelChange", "ngModel"], [3, "value"], [1, "text-xs", "font-medium"], [1, "text-sm", "font-bold"], [1, "text-xs", "font-semibold", 3, "ngClass"], ["type", "button", "title", "Search (/ or Cmd+K)", 1, "p-2", "rounded-lg", "transition-all", "duration-200", "hover:scale-110", 3, "click"], [1, "px-3", "py-1.5", "rounded-lg", "text-xs", "font-medium", "focus:outline-none", "focus:ring-2", "focus:ring-blue-500", "focus:border-transparent", "transition-colors", "duration-200", "cursor-pointer", 3, "ngModelChange", "ngModel"], [1, "flex", "items-center", "gap-3", "flex-1", "min-w-0"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-5", "h-5", "flex-shrink-0", 3, "ngClass"], [1, "flex", "items-center", "gap-2", "flex-1", "min-w-0"], [1, "text-sm", "font-medium", 3, "ngClass"], [1, "text-sm", "font-semibold", "truncate", 3, "ngClass"], [1, "px-2", "py-0.5", "rounded", "text-xs", "font-medium", "uppercase", "border", "flex-shrink-0", 3, "ngClass"], ["title", "Clear search", 1, "p-2", "rounded-lg", "transition-colors", "flex-shrink-0", 3, "click", "ngClass"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M6 18L18 6M6 6l12 12"], [1, "w-3", "h-3", "rounded-full", "transition-all", "duration-200", "hover:scale-150", "active:scale-100", "cursor-pointer", 3, "libSymphiqTooltip", "tooltipPosition", "ngClass"], [1, "w-3", "h-3", "rounded-full", "transition-all", "duration-200", "hover:scale-150", "active:scale-100", "cursor-pointer", 3, "click", "libSymphiqTooltip", "tooltipPosition", "ngClass"], [3, "viewMode", "currentStepId", "showNextStepAction", "forDemo", "maxAccessibleStepId"], [3, "viewMode", "itemStatus", "funnelAnalysis", "confettiIntensity", "title", "subtitle"], [3, "stepClick", "nextStepClick", "viewMode", "currentStepId", "showNextStepAction", "forDemo", "maxAccessibleStepId"], [1, "pt-8", "sm:pt-12", "pb-16", "sm:pb-24"], [1, "mb-8"], [3, "viewMode", "isOnboarded"], ["id", "section-insights", 1, "mb-8"], [3, "viewMode"], ["slot", "overall-performance"], [1, "p-6"], ["slot", "performance-metrics"], [1, "p-6", "space-y-8"], ["slot", "performance-breakdowns"], ["slot", "competitive-intelligence"], [1, "flex", "items-center", "justify-between", "mb-6"], [1, "pl-4", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-6", "h-6", 3, "ngClass"], ["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"], [1, "text-xl", "sm:text-2xl", "font-bold"], [1, "grid", "grid-cols-1", "md:grid-cols-2", "gap-6"], [3, "insight", "allMetrics", "charts", "allCharts", "allBusinessInsights", "isLightMode", "viewMode", "isCompactMode", "isLoading"], [3, "width", "height", "isLightMode"], [3, "assessment", "revenueMetric", "charts", "metrics", "isLightMode", "isLoading", "isCompactMode", "isChartsLoading", "strengths", "weaknesses", "currencySymbol"], [3, "scrollToSection", "assessment", "revenueMetric", "charts", "metrics", "isLightMode", "isLoading", "isCompactMode", "isChartsLoading", "strengths", "weaknesses", "currencySymbol"], [1, "w-full"], [3, "metric", "insights", "charts", "allCharts", "analysis", "isLightMode", "viewMode", "isCompactMode", "currencySymbol"], [1, "grid", "grid-cols-1", "md:grid-cols-2", "lg:grid-cols-3", "gap-6", "mt-4"], [3, "breakdown", "charts", "isLightMode", "isLoading", "isCompactMode", "currencySymbol"], [3, "metrics", "allCharts", "isLightMode", "isCompactMode", "competitiveBenchmark", "currencySymbol"], ["id", "section-overall", 1, "animate-fade-in-up", "mb-20", "sm:mb-28", 2, "animation-delay", "0.1s"], [1, "rounded-xl", "border", "p-6", "sm:p-8", "animate-pulse", 3, "ngClass"], [1, "space-y-6"], [1, "flex-1", "space-y-2"], [1, "space-y-2"], [1, "grid", "grid-cols-1", "md:grid-cols-2", "gap-4", "mt-6"], ["animationDelay", "0.15s", 3, "viewMode"], ["id", "section-insights", 1, "relative"], [1, "absolute", "inset-0", "-mx-6", "sm:-mx-8", "-mt-8", "rounded-3xl", "opacity-30", "backdrop-blur-sm", 2, "mask-image", "radial-gradient(ellipse at center, black 0%, transparent 70%)", 3, "ngClass"], [1, "relative"], [1, "flex", "items-center", "justify-between", "mb-6", "sm:mb-8", "animate-fade-in", 2, "animation-delay", "0.2s"], [1, "masonry-grid"], [1, "grid", "grid-cols-1", "md:grid-cols-2", "lg:grid-cols-3", "gap-4"], [1, "rounded-xl", "border", "p-6", "animate-pulse", "min-h-[280px]", 3, "ngClass"], [1, "space-y-4"], [1, "flex", "items-center", "gap-3", "mb-4"], [1, "mt-6", "space-y-2"], [1, "flex", "gap-2", "mt-4"], [1, "animate-fade-in-up", 3, "class", "animation-delay", "libSymphiqSearchHighlight", "highlightId"], [1, "animate-fade-in-up", 3, "libSymphiqSearchHighlight", "highlightId"], [3, "insight", "allMetrics", "charts", "allCharts", "allBusinessInsights", "isLightMode", "viewMode", "isCompactMode"], [1, "animate-fade-in-up", 3, "animation-delay", "libSymphiqSearchHighlight", "highlightId"], [1, "relative", "mb-14", "sm:mb-24", "mt-24", "sm:mt-32", "animate-fade-in", 2, "animation-delay", "0.35s"], ["id", "section-metrics", 1, "relative"], [1, "absolute", "inset-0", "-mx-6", "sm:-mx-8", "-mt-8", "rounded-3xl", "opacity-30", "backdrop-blur-sm", 2, "mask-image", "radial-gradient(ellipse at top right, black 0%, transparent 70%)", 3, "ngClass"], [1, "flex", "flex-col", "gap-4", "mb-6", "sm:mb-8", "animate-fade-in", 2, "animation-delay", "0.4s"], [1, "flex", "items-center", "justify-between"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"], [1, "hidden", "sm:flex", "gap-2", "sm:gap-3", "items-center", "relative"], [1, "absolute", "-right-2", "top-1/2", "-translate-y-1/2", "z-10"], [1, "px-3", "sm:px-4", "py-2", "rounded-lg", "text-xs", "sm:text-sm", "font-medium", "focus:outline-none", "focus:ring-2", "focus:ring-blue-500", "focus:border-transparent", "transition-all", "duration-200", "cursor-pointer", 3, "ngModelChange", "ngModel"], [1, "px-3", "sm:px-4", "py-2", "rounded-lg", "text-xs", "sm:text-sm", "font-medium", "focus:outline-none", "focus:ring-2", "focus:ring-blue-500", "transition-all", "flex", "items-center", "gap-2", "cursor-pointer", "hover:scale-105", "active:scale-95", 3, "click", "title"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M3 4h13M3 8h9m-9 4h6m4 0l4-4m0 0l4 4m-4-4v12"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M3 4h13M3 8h9m-9 4h9m5-4v12m0 0l-4-4m4 4l4-4"], [1, "sm:hidden", "-mx-6", "px-6"], [1, "flex", "gap-2", "overflow-x-auto", "pb-2", "snap-x", "snap-mandatory", "scrollbar-hide"], [1, "space-y-8", "sm:space-y-10"], [1, "space-y-8", "sm:space-y-10", 3, "animate-content-change", "transition-opacity-slow"], ["aria-hidden", "true", 1, "absolute", "inset-0", "flex", "items-center"], [1, "w-full", "h-px", "bg-gradient-to-r", 3, "ngClass"], [1, "relative", "flex", "justify-center"], [1, "px-4", "py-2", "rounded-full", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-5", "h-5", 3, "ngClass"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M7 12l3-3 3 3 4-4M8 21l4-4 4 4M3 4h18M4 4h16v12a1 1 0 01-1 1H5a1 1 0 01-1-1V4z"], [1, "w-4", "h-4", "border-2", "border-blue-500/30", "border-t-blue-500", "rounded-full", "animate-spin"], ["disabled", "", 1, "font-semibold", 3, "value"], [1, "px-4", "py-2", "rounded-full", "text-xs", "font-medium", "whitespace-nowrap", "transition-all", "duration-200", "flex-shrink-0", "snap-start", "active:scale-95", 3, "ngClass", "opacity-70"], [1, "px-4", "py-2", "rounded-full", "text-xs", "font-medium", "whitespace-nowrap", "transition-all", "duration-200", "flex-shrink-0", "snap-start", "active:scale-95", 3, "click", "ngClass"], [1, "rounded-xl", "border", "p-6", "animate-pulse", 3, "ngClass"], [1, "flex", "items-center", "justify-between", "mb-4"], [1, "grid", "grid-cols-2", "md:grid-cols-4", "gap-4", "mt-6"], [1, "rounded-xl", "p-12", "border", "text-center", "animate-fade-in", 3, "ngClass"], [1, "w-full", "animate-fade-in-up", 3, "libSymphiqSearchHighlight", "highlightId"], [1, "bento-grid", "mt-4"], [1, "grid", "grid-cols-1", "md:grid-cols-2", "lg:grid-cols-4", "gap-3", "sm:gap-4", "mt-4"], [1, "animate-fade-in-up", 3, "class", "animation-delay"], [1, "animate-fade-in-up"], [1, "h-full", 3, "metric", "insights", "charts", "allCharts", "analysis", "isLightMode", "viewMode", "isCompactMode", "currencySymbol"], [1, "animate-fade-in-up", 3, "animation-delay"], [1, "rounded-xl", "border", "p-6", "animate-pulse", "min-h-[240px]", 3, "ngClass"], [1, "flex", "items-center", "gap-3", "mt-4"], [1, "mt-4"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-16", "h-16", "mx-auto", "mb-4", 3, "ngClass"], [1, "text-lg", "font-semibold", "mb-2", 3, "ngClass"], [1, "text-sm", 3, "ngClass"], [1, "mt-28", "sm:mt-36"], ["id", "section-breakdowns", 1, "relative"], [1, "absolute", "inset-0", "-mx-6", "sm:-mx-8", "-mt-8", "rounded-3xl", "opacity-30", "backdrop-blur-sm", 2, "mask-image", "radial-gradient(ellipse at bottom left, black 0%, transparent 70%)", 3, "ngClass"], [1, "flex", "flex-col", "sm:flex-row", "sm:items-center", "justify-between", "gap-4", "mb-6", "sm:mb-8", "animate-fade-in", 2, "animation-delay", "0.7s"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z"], [1, "relative", "inline-block", 3, "click", "mousedown", "pointerdown"], [1, "px-3", "py-2", "text-sm", "rounded-lg", "border", "transition-all", "duration-200", "cursor-pointer", "focus:ring-2", "focus:ring-blue-500", "focus:outline-none", 3, "ngModelChange", "ngModel", "ngClass"], [1, "space-y-6", 3, "animate-content-change", "transition-opacity-slow"], ["animationDelay", "0.65s", 3, "viewMode"], [1, "w-4", "h-4", "border-2", "border-purple-500/30", "border-t-purple-500", "rounded-full", "animate-spin"], [1, "space-y-3"], [1, "flex", "items-center", "justify-between", "p-3", "rounded-lg", 3, "ngClass"], [3, "breakdown", "charts", "isLightMode", "isCompactMode", "currencySymbol"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z"], ["id", "section-competitive", 1, "relative"], [1, "flex", "items-center", "justify-between", "mb-6", "sm:mb-8", "animate-fade-in", 2, "animation-delay", "0.9s"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4"], [1, "hidden", "sm:block", "relative"], ["animationDelay", "0.85s", 3, "viewMode"], [1, "w-4", "h-4", "border-2", "border-indigo-500/30", "border-t-indigo-500", "rounded-full", "animate-spin"], [1, "grid", "grid-cols-1", "md:grid-cols-3", "gap-4", "mt-6"]], template: function SymphiqFunnelAnalysisDashboardComponent_Template(rf, ctx) { if (rf & 1) {
47754
48100
  const _r1 = i0.ɵɵgetCurrentView();
47755
48101
  i0.ɵɵelementStart(0, "div", 1, 0);
47756
48102
  i0.ɵɵelement(2, "div", 2);
@@ -47805,20 +48151,20 @@ class SymphiqFunnelAnalysisDashboardComponent {
47805
48151
  i0.ɵɵconditionalCreate(47, SymphiqFunnelAnalysisDashboardComponent_Conditional_47_Template, 16, 8, "div", 33);
47806
48152
  i0.ɵɵconditionalCreate(48, SymphiqFunnelAnalysisDashboardComponent_Conditional_48_Template, 1, 4, "symphiq-floating-toc", 34);
47807
48153
  i0.ɵɵconditionalCreate(49, SymphiqFunnelAnalysisDashboardComponent_Conditional_49_Template, 6, 5, "div", 35);
47808
- i0.ɵɵconditionalCreate(50, SymphiqFunnelAnalysisDashboardComponent_Conditional_50_Template, 15, 9)(51, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Template, 7, 5, "main", 36);
48154
+ i0.ɵɵconditionalCreate(50, SymphiqFunnelAnalysisDashboardComponent_Conditional_50_Template, 2, 7)(51, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Template, 15, 9)(52, SymphiqFunnelAnalysisDashboardComponent_Conditional_52_Template, 7, 5, "main", 36);
47809
48155
  i0.ɵɵnamespaceHTML();
47810
- i0.ɵɵelement(52, "symphiq-funnel-analysis-modal", 37)(53, "symphiq-profile-analysis-modal", 38)(54, "symphiq-business-analysis-modal", 39)(55, "symphiq-tooltip-container");
47811
- i0.ɵɵelementStart(56, "symphiq-search-bar", 40);
47812
- i0.ɵɵlistener("resultSelected", function SymphiqFunnelAnalysisDashboardComponent_Template_symphiq_search_bar_resultSelected_56_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleSearchResult($event)); });
48156
+ i0.ɵɵelement(53, "symphiq-funnel-analysis-modal", 37)(54, "symphiq-profile-analysis-modal", 38)(55, "symphiq-business-analysis-modal", 39)(56, "symphiq-tooltip-container");
48157
+ i0.ɵɵelementStart(57, "symphiq-search-bar", 40);
48158
+ i0.ɵɵlistener("resultSelected", function SymphiqFunnelAnalysisDashboardComponent_Template_symphiq_search_bar_resultSelected_57_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleSearchResult($event)); });
47813
48159
  i0.ɵɵelementEnd();
47814
- i0.ɵɵelementStart(57, "symphiq-view-mode-switcher-modal", 41);
47815
- i0.ɵɵlistener("close", function SymphiqFunnelAnalysisDashboardComponent_Template_symphiq_view_mode_switcher_modal_close_57_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.closeViewModeSwitcher()); })("modeSelected", function SymphiqFunnelAnalysisDashboardComponent_Template_symphiq_view_mode_switcher_modal_modeSelected_57_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleDisplayModeChange($event)); });
48160
+ i0.ɵɵelementStart(58, "symphiq-view-mode-switcher-modal", 41);
48161
+ i0.ɵɵlistener("close", function SymphiqFunnelAnalysisDashboardComponent_Template_symphiq_view_mode_switcher_modal_close_58_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.closeViewModeSwitcher()); })("modeSelected", function SymphiqFunnelAnalysisDashboardComponent_Template_symphiq_view_mode_switcher_modal_modeSelected_58_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleDisplayModeChange($event)); });
47816
48162
  i0.ɵɵelementEnd();
47817
- i0.ɵɵelementStart(58, "symphiq-mobile-fab", 42);
47818
- i0.ɵɵlistener("expandedChange", function SymphiqFunnelAnalysisDashboardComponent_Template_symphiq_mobile_fab_expandedChange_58_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.fabExpanded.set($event)); })("scrollToTop", function SymphiqFunnelAnalysisDashboardComponent_Template_symphiq_mobile_fab_scrollToTop_58_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.scrollToTop()); })("toggleView", function SymphiqFunnelAnalysisDashboardComponent_Template_symphiq_mobile_fab_toggleView_58_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.viewModeService.toggleViewMode()); });
48163
+ i0.ɵɵelementStart(59, "symphiq-mobile-fab", 42);
48164
+ i0.ɵɵlistener("expandedChange", function SymphiqFunnelAnalysisDashboardComponent_Template_symphiq_mobile_fab_expandedChange_59_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.fabExpanded.set($event)); })("scrollToTop", function SymphiqFunnelAnalysisDashboardComponent_Template_symphiq_mobile_fab_scrollToTop_59_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.scrollToTop()); })("toggleView", function SymphiqFunnelAnalysisDashboardComponent_Template_symphiq_mobile_fab_toggleView_59_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.viewModeService.toggleViewMode()); });
47819
48165
  i0.ɵɵelementEnd();
47820
- i0.ɵɵelementStart(59, "symphiq-mobile-bottom-nav", 43);
47821
- i0.ɵɵlistener("navigate", function SymphiqFunnelAnalysisDashboardComponent_Template_symphiq_mobile_bottom_nav_navigate_59_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleMobileNavigation($event)); });
48166
+ i0.ɵɵelementStart(60, "symphiq-mobile-bottom-nav", 43);
48167
+ i0.ɵɵlistener("navigate", function SymphiqFunnelAnalysisDashboardComponent_Template_symphiq_mobile_bottom_nav_navigate_60_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleMobileNavigation($event)); });
47822
48168
  i0.ɵɵelementEnd()();
47823
48169
  } if (rf & 2) {
47824
48170
  let tmp_16_0;
@@ -47883,8 +48229,8 @@ class SymphiqFunnelAnalysisDashboardComponent {
47883
48229
  i0.ɵɵadvance();
47884
48230
  i0.ɵɵconditional(!ctx.isSimplifiedView() ? 49 : -1);
47885
48231
  i0.ɵɵadvance();
47886
- i0.ɵɵconditional(ctx.isSimplifiedView() ? 50 : 51);
47887
- i0.ɵɵadvance(2);
48232
+ i0.ɵɵconditional(ctx.isContentGenerating() ? 50 : ctx.isSimplifiedView() ? 51 : 52);
48233
+ i0.ɵɵadvance(3);
47888
48234
  i0.ɵɵproperty("isLightMode", ctx.isLightMode())("viewMode", ctx.viewMode())("allMetrics", ctx.allMetrics())("allInsights", ctx.insights())("allCharts", ctx.allCharts())("currencySymbol", ctx.currencySymbol())("businessProfile", ctx.businessProfile());
47889
48235
  i0.ɵɵadvance();
47890
48236
  i0.ɵɵproperty("isLightMode", ctx.isLightMode())("allMetrics", ctx.allMetrics());
@@ -47918,7 +48264,8 @@ class SymphiqFunnelAnalysisDashboardComponent {
47918
48264
  CollapsibleFunnelSectionGroupComponent,
47919
48265
  ViewModeSwitcherModalComponent,
47920
48266
  ProfileAnalysisModalComponent,
47921
- BusinessAnalysisModalComponent], styles: ["[_nghost-%COMP%]{display:block;min-height:100%}.bg-gradient-radial[_ngcontent-%COMP%]{background:radial-gradient(circle,var(--tw-gradient-stops))}.bento-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;grid-auto-flow:dense}@media (min-width: 768px){.bento-grid[_ngcontent-%COMP%]{grid-template-columns:repeat(6,1fr)}}.bento-small[_ngcontent-%COMP%]{grid-column:span 2;grid-row:span 1}.bento-medium[_ngcontent-%COMP%]{grid-column:span 3;grid-row:span 1}.bento-large[_ngcontent-%COMP%]{grid-column:span 4;grid-row:span 1}.bento-featured[_ngcontent-%COMP%]{grid-column:span 6;grid-row:span 1}@media (max-width: 767px){.bento-small[_ngcontent-%COMP%], .bento-medium[_ngcontent-%COMP%], .bento-large[_ngcontent-%COMP%], .bento-featured[_ngcontent-%COMP%]{grid-column:span 1}}.masonry-grid[_ngcontent-%COMP%]{column-count:1;column-gap:1.5rem}@media (min-width: 768px){.masonry-grid[_ngcontent-%COMP%]{column-count:2}}@media (min-width: 1280px){.masonry-grid[_ngcontent-%COMP%]{column-count:3}}.masonry-grid[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{break-inside:avoid;margin-bottom:1.5rem}.masonry-featured[_ngcontent-%COMP%]{column-span:all}.scrollbar-hide[_ngcontent-%COMP%]{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-hide[_ngcontent-%COMP%]::-webkit-scrollbar{display:none}@media (max-width: 640px){.animate-fade-in-up[_ngcontent-%COMP%]{animation-duration:.4s}}"], changeDetection: 0 }); }
48267
+ BusinessAnalysisModalComponent,
48268
+ ContentGenerationProgressWithConfettiComponent], styles: ["[_nghost-%COMP%]{display:block;min-height:100%}.bg-gradient-radial[_ngcontent-%COMP%]{background:radial-gradient(circle,var(--tw-gradient-stops))}.bento-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;grid-auto-flow:dense}@media (min-width: 768px){.bento-grid[_ngcontent-%COMP%]{grid-template-columns:repeat(6,1fr)}}.bento-small[_ngcontent-%COMP%]{grid-column:span 2;grid-row:span 1}.bento-medium[_ngcontent-%COMP%]{grid-column:span 3;grid-row:span 1}.bento-large[_ngcontent-%COMP%]{grid-column:span 4;grid-row:span 1}.bento-featured[_ngcontent-%COMP%]{grid-column:span 6;grid-row:span 1}@media (max-width: 767px){.bento-small[_ngcontent-%COMP%], .bento-medium[_ngcontent-%COMP%], .bento-large[_ngcontent-%COMP%], .bento-featured[_ngcontent-%COMP%]{grid-column:span 1}}.masonry-grid[_ngcontent-%COMP%]{column-count:1;column-gap:1.5rem}@media (min-width: 768px){.masonry-grid[_ngcontent-%COMP%]{column-count:2}}@media (min-width: 1280px){.masonry-grid[_ngcontent-%COMP%]{column-count:3}}.masonry-grid[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{break-inside:avoid;margin-bottom:1.5rem}.masonry-featured[_ngcontent-%COMP%]{column-span:all}.scrollbar-hide[_ngcontent-%COMP%]{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-hide[_ngcontent-%COMP%]::-webkit-scrollbar{display:none}@media (max-width: 640px){.animate-fade-in-up[_ngcontent-%COMP%]{animation-duration:.4s}}"], changeDetection: 0 }); }
47922
48269
  }
47923
48270
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SymphiqFunnelAnalysisDashboardComponent, [{
47924
48271
  type: Component,
@@ -47946,1001 +48293,1025 @@ class SymphiqFunnelAnalysisDashboardComponent {
47946
48293
  ViewModeSwitcherModalComponent,
47947
48294
  ProfileAnalysisModalComponent,
47948
48295
  BusinessAnalysisModalComponent,
47949
- ], template: `
47950
- <div
47951
- class="bg-transparent"
47952
- [class.min-h-screen]="!embedded()"
47953
- [class.relative]="!embedded()"
47954
- [style.display]="embedded() ? 'block' : null"
47955
- [style.min-height]="embedded() ? 'auto' : null"
47956
- #dashboardContainer>
47957
- <!-- Animated Background Bubbles -->
47958
- <div class="animated-bubbles" [class.light-mode]="isLightMode()" style="position: fixed; top: 0; left: 0; right: 0; bottom: 0; width: 100vw; height: 100vh; z-index: 1; pointer-events: none;"></div>
47959
-
47960
- <!-- Scroll Progress Bar -->
47961
- <div [class]="embedded() ? 'sticky top-0 left-0 right-0 h-1 z-[60] bg-slate-200/30' : 'fixed top-0 left-0 right-0 h-1 z-[60] bg-slate-200/30'">
47962
- <div
47963
- [style.width.%]="scrollProgress()"
47964
- [ngClass]="isLightMode() ? 'bg-gradient-to-r from-blue-500 to-purple-500' : 'bg-gradient-to-r from-blue-400 to-purple-400'"
47965
- class="h-full transition-all duration-200 ease-out">
47966
- </div>
47967
- </div>
47968
-
47969
- <header [class]="headerClass()" class="sticky top-0 z-50 animate-fade-in" style="animation-delay: 0s;">
47970
- <!-- Expanded Header (default state) -->
47971
- <div
47972
- class="transition-all duration-300 ease-in-out overflow-hidden"
47973
- [class.max-h-0]="isScrolled()"
47974
- [class.opacity-0]="isScrolled()"
47975
- [class.max-h-96]="!isScrolled()"
47976
- [class.opacity-100]="!isScrolled()">
47977
- <div
47978
- class="max-w-7xl mx-auto px-6 sm:px-8 py-6 sm:py-8"
47979
- [class.pointer-events-none]="isScrolled()"
47980
- [class.pointer-events-auto]="!isScrolled()">
47981
- <div class="flex flex-col sm:flex-row items-start sm:items-center justify-between gap-3 sm:gap-0">
47982
- <div class="flex-1">
47983
- <div class="flex items-center gap-3">
47984
- <h1 class="text-2xl sm:text-3xl font-bold mb-2 bg-gradient-to-r from-blue-600 via-purple-600 to-indigo-600 bg-clip-text text-transparent">{{analysisData()?.title}}</h1>
47985
- @if (isLoading() && !isShowingLoader()) {
47986
- <!-- Subtle refresh indicator -->
47987
- <div class="animate-spin w-4 h-4 border-2 border-blue-500/30 border-t-blue-500 rounded-full" title="Refreshing data..."></div>
47988
- }
47989
- </div>
47990
- <div class="flex flex-wrap items-center justify-between gap-3 sm:gap-4">
47991
- <p [class]="headerSubtitleClass()" class="text-sm sm:text-base">Revenue Orchestration & Funnel Analysis</p>
47992
- <div class="flex items-center gap-4">
47993
- @if (!isSimplifiedView()) {
47994
- <!-- Search Button -->
47995
- <button
47996
- type="button"
47997
- (click)="searchService.openSearch(); $event.preventDefault()"
47998
- [class]="buttonClass()"
47999
- class="flex items-center gap-2 px-3 py-1.5 rounded-lg text-xs font-medium transition-all duration-200 hover:scale-105"
48000
- title="Search (/ or Cmd+K)">
48001
- <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
48002
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path>
48003
- </svg>
48004
- <span>Search</span>
48005
- </button>
48006
- }
48007
- <!-- View Mode Switcher Button -->
48008
- <button
48009
- type="button"
48010
- (click)="openViewModeSwitcher(); $event.preventDefault()"
48011
- [class]="buttonClass()"
48012
- class="flex items-center gap-2 px-3 py-1.5 rounded-lg text-xs font-medium transition-all duration-200 hover:scale-105">
48013
- <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
48014
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
48015
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"></path>
48016
- </svg>
48017
- <span>{{ displayModeLabel() }}</span>
48018
- </button>
48019
- @if (!isSimplifiedView()) {
48020
- <div class="flex items-center gap-2 sm:gap-3 whitespace-nowrap">
48021
- <label [class]="metaLabelClass()" class="text-xs sm:text-sm font-medium">View:</label>
48022
- <div (click)="$event.stopPropagation()" (mousedown)="$event.stopPropagation()" (pointerdown)="$event.stopPropagation()">
48023
- <select
48024
- [ngModel]="selectedSectionFilter()"
48025
- (ngModelChange)="changeSectionFilter($event)"
48026
- [class]="selectClass()"
48027
- class="px-3 sm:px-4 py-1.5 rounded-lg text-xs sm:text-sm font-medium focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent transition-colors duration-200 cursor-pointer">
48028
- @for (section of sectionFilters; track section.value) {
48029
- <option [value]="section.value">{{ section.label }}</option>
48030
- }
48031
- </select>
48032
- </div>
48033
- </div>
48034
- }
48035
- </div>
48036
- </div>
48037
- </div>
48038
- <div class="flex flex-col gap-4 min-w-[180px]">
48039
- @if (formattedGeneratedDate()) {
48040
- <div class="text-left sm:text-right">
48041
- <div [class]="metaLabelClass()" class="text-xs sm:text-sm">Generated At</div>
48042
- <div [class]="headerTitleClass()" class="text-sm sm:text-base font-medium">{{ formattedGeneratedDate() }}</div>
48043
- </div>
48044
- }
48045
- <div class="text-left sm:text-right">
48046
- <div [class]="metaLabelClass()" class="text-xs sm:text-sm">Requested by</div>
48047
- <div [class]="headerTitleClass()" class="text-sm sm:text-base font-medium">{{ requestedByUser()?.firstName }} {{ requestedByUser()?.lastName }}</div>
48048
- </div>
48049
- </div>
48050
- </div>
48051
- </div>
48052
- </div>
48053
-
48054
- <!-- Condensed Header (scrolled state) -->
48055
- <div
48056
- class="transition-all duration-300 ease-in-out overflow-hidden"
48057
- [class.max-h-0]="!isScrolled()"
48058
- [class.opacity-0]="!isScrolled()"
48059
- [class.max-h-20]="isScrolled()"
48060
- [class.opacity-100]="isScrolled()">
48061
- <div
48062
- class="max-w-7xl mx-auto px-6 sm:px-8 py-3"
48063
- [class.pointer-events-none]="!isScrolled()"
48064
- [class.pointer-events-auto]="isScrolled()">
48065
- <div class="flex items-center justify-between gap-4">
48066
- <div class="flex items-center gap-4 flex-1 min-w-0">
48067
- <h1 class="text-lg font-bold truncate bg-gradient-to-r from-blue-600 via-purple-600 to-indigo-600 bg-clip-text text-transparent">{{analysisData()?.title}}</h1>
48068
- @if (revenueMetric()) {
48069
- <div class="hidden lg:flex items-center gap-3 px-4 py-1.5 rounded-lg" [ngClass]="isLightMode() ? 'bg-emerald-50 border border-emerald-200' : 'bg-emerald-500/10 border border-emerald-500/20'">
48070
- <span [class]="metaLabelClass()" class="text-xs font-medium">Revenue:</span>
48071
- <span [class]="headerTitleClass()" class="text-sm font-bold">{{ formatValue(revenueValue()) }}</span>
48072
- <span class="text-xs font-semibold" [ngClass]="revenueTrend() >= 0 ? 'text-emerald-600' : 'text-red-600'">
48073
- {{ revenueTrend() >= 0 ? '+' : '' }}{{ revenueTrend().toFixed(1) }}%
48074
- </span>
48075
- </div>
48076
- }
48077
- </div>
48078
- <div class="flex items-center gap-3">
48079
- @if (!isSimplifiedView()) {
48080
- <!-- Search Button (Icon Only in Sticky Header) -->
48081
- <button
48082
- type="button"
48083
- (click)="searchService.openSearch(); $event.preventDefault()"
48084
- [class]="buttonClass()"
48085
- title="Search (/ or Cmd+K)"
48086
- class="p-2 rounded-lg transition-all duration-200 hover:scale-110">
48087
- <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
48088
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path>
48089
- </svg>
48090
- </button>
48091
- }
48092
- <!-- View Mode Switcher (Icon Only in Sticky Header) -->
48093
- <button
48094
- type="button"
48095
- (click)="openViewModeSwitcher(); $event.preventDefault()"
48096
- [class]="buttonClass()"
48097
- [title]="'Change View Mode: ' + displayModeLabel()"
48098
- class="p-2 rounded-lg transition-all duration-200 hover:scale-110">
48099
- <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
48100
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
48101
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"></path>
48102
- </svg>
48103
- </button>
48104
- @if (!isSimplifiedView()) {
48105
- <div (click)="$event.stopPropagation()" (mousedown)="$event.stopPropagation()" (pointerdown)="$event.stopPropagation()">
48106
- <select
48107
- [ngModel]="selectedSectionFilter()"
48108
- (ngModelChange)="changeSectionFilter($event)"
48109
- [class]="selectClass()"
48110
- class="px-3 py-1.5 rounded-lg text-xs font-medium focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent transition-colors duration-200 cursor-pointer">
48111
- @for (section of sectionFilters; track section.value) {
48112
- <option [value]="section.value">{{ section.label }}</option>
48113
- }
48114
- </select>
48115
- </div>
48116
- }
48117
- </div>
48118
- </div>
48119
- </div>
48120
- </div>
48121
- </header>
48122
-
48123
- <!-- Search Breadcrumb -->
48124
- @if (searchService.activeSearchResult()) {
48125
- <div [ngClass]="isLightMode() ? 'bg-blue-50/95 border-blue-200' : 'bg-blue-900/20 border-blue-800/30'" class="sticky top-[var(--header-height)] z-40 border-b backdrop-blur-md animate-slide-up-fade">
48126
- <div class="max-w-7xl mx-auto px-6 sm:px-8 py-3">
48127
- <div class="flex items-center justify-between gap-4">
48128
- <div class="flex items-center gap-3 flex-1 min-w-0">
48129
- <svg [ngClass]="isLightMode() ? 'text-blue-600' : 'text-blue-400'" class="w-5 h-5 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
48130
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path>
48131
- </svg>
48132
- <div class="flex items-center gap-2 flex-1 min-w-0">
48133
- <span [ngClass]="isLightMode() ? 'text-blue-900' : 'text-blue-100'" class="text-sm font-medium">Showing:</span>
48134
- <span [ngClass]="isLightMode() ? 'text-blue-700' : 'text-blue-300'" class="text-sm font-semibold truncate">
48135
- {{ searchService.activeSearchResult()!.title }}
48136
- </span>
48137
- <span [ngClass]="isLightMode() ? 'bg-blue-100 text-blue-700 border-blue-200' : 'bg-blue-800/50 text-blue-300 border-blue-700/50'" class="px-2 py-0.5 rounded text-xs font-medium uppercase border flex-shrink-0">
48138
- {{ searchService.activeSearchResult()!.type }}
48139
- </span>
48140
- </div>
48141
- </div>
48142
- <button
48143
- (click)="clearSearchResult(); $event.stopPropagation()"
48144
- [ngClass]="isLightMode() ? 'text-blue-600 hover:text-blue-800 hover:bg-blue-100' : 'text-blue-400 hover:text-blue-200 hover:bg-blue-800/50'"
48145
- class="p-2 rounded-lg transition-colors flex-shrink-0"
48146
- title="Clear search">
48147
- <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
48148
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path>
48149
- </svg>
48150
- </button>
48151
- </div>
48152
- </div>
48153
- </div>
48154
- }
48155
-
48156
- <!-- Floating Table of Contents -->
48157
- @if (!isSimplifiedView()) {
48158
- <symphiq-floating-toc
48159
- [sections]="tocSections()"
48160
- [viewMode]="isLightMode() ? ViewModeEnum.LIGHT : ViewModeEnum.DARK"
48161
- [embedded]="embedded()"
48162
- [scrollElement]="scrollElement() ?? undefined"
48163
- />
48164
- }
48165
-
48166
- <!-- Quick Navigation Dots -->
48167
- @if (!isSimplifiedView()) {
48168
- <div class="fixed right-6 top-1/2 -translate-y-1/2 z-40 hidden xl:flex flex-col gap-4">
48169
- @if (showOverallPerformance()) {
48170
- <button
48171
- (click)="scrollToTop()"
48172
- [libSymphiqTooltip]="'Scroll to Top'"
48173
- [tooltipPosition]="'left'"
48174
- [ngClass]="isLightMode() ? 'bg-slate-300 hover:bg-blue-500' : 'bg-slate-600 hover:bg-blue-400'"
48175
- class="w-3 h-3 rounded-full transition-all duration-200 hover:scale-150 active:scale-100 cursor-pointer">
48176
- </button>
48177
- }
48178
- @if (showKeyInsights()) {
48179
- <button
48180
- (click)="scrollToSection('section-insights')"
48181
- [libSymphiqTooltip]="'Key Insights'"
48182
- [tooltipPosition]="'left'"
48183
- [ngClass]="isLightMode() ? 'bg-slate-300 hover:bg-blue-500' : 'bg-slate-600 hover:bg-blue-400'"
48184
- class="w-3 h-3 rounded-full transition-all duration-200 hover:scale-150 active:scale-100 cursor-pointer">
48185
- </button>
48186
- }
48187
- @if (showPerformanceMetrics()) {
48188
- <button
48189
- (click)="scrollToSection('section-metrics')"
48190
- [libSymphiqTooltip]="'Performance Metrics'"
48191
- [tooltipPosition]="'left'"
48192
- [ngClass]="isLightMode() ? 'bg-slate-300 hover:bg-blue-500' : 'bg-slate-600 hover:bg-blue-400'"
48193
- class="w-3 h-3 rounded-full transition-all duration-200 hover:scale-150 active:scale-100 cursor-pointer">
48194
- </button>
48195
- }
48196
- @if (showPerformanceBreakdowns()) {
48197
- <button
48198
- (click)="scrollToSection('section-breakdowns')"
48199
- [libSymphiqTooltip]="'Performance Breakdowns'"
48200
- [tooltipPosition]="'left'"
48201
- [ngClass]="isLightMode() ? 'bg-slate-300 hover:bg-blue-500' : 'bg-slate-600 hover:bg-blue-400'"
48202
- class="w-3 h-3 rounded-full transition-all duration-200 hover:scale-150 active:scale-100 cursor-pointer">
48203
- </button>
48204
- }
48205
- @if (showCompetitiveIntelligence()) {
48206
- <button
48207
- (click)="scrollToSection('section-competitive')"
48208
- [libSymphiqTooltip]="'Competitive Intelligence'"
48209
- [tooltipPosition]="'left'"
48210
- [ngClass]="isLightMode() ? 'bg-slate-300 hover:bg-indigo-500' : 'bg-slate-600 hover:bg-indigo-400'"
48211
- class="w-3 h-3 rounded-full transition-all duration-200 hover:scale-150 active:scale-100 cursor-pointer">
48212
- </button>
48213
- }
48214
- </div>
48215
- }
48216
-
48217
- @if (isSimplifiedView()) {
48218
- <!-- Journey Progress Banner -->
48219
- @if (!isOnboarded()) {
48220
- <symphiq-journey-progress-indicator
48221
- [viewMode]="isLightMode() ? ViewModeEnum.LIGHT : ViewModeEnum.DARK"
48222
- [currentStepId]="JourneyStepIdEnum.FUNNEL_ANALYSIS"
48223
- [showNextStepAction]="true"
48224
- [forDemo]="forDemo()"
48225
- [maxAccessibleStepId]="maxAccessibleStepId()"
48226
- (stepClick)="stepClick.emit($event)"
48227
- (nextStepClick)="nextStepClick.emit()"
48228
- />
48229
- }
48230
-
48231
- <main class="max-w-7xl mx-auto px-6 sm:px-8">
48232
- <div class="pt-8 sm:pt-12 pb-16 sm:pb-24">
48233
- <!-- Welcome Banner -->
48234
- <div class="mb-8">
48235
- <symphiq-funnel-welcome-banner
48236
- [viewMode]="isLightMode() ? ViewModeEnum.LIGHT : ViewModeEnum.DARK"
48237
- [isOnboarded]="isOnboarded()"
48238
- />
48239
- </div>
48240
-
48241
- <!-- Key Insights Section -->
48242
- @if (showKeyInsights()) {
48243
- <section id="section-insights" class="mb-8">
48244
- <div class="flex items-center justify-between mb-6">
48245
- <div class="flex items-center gap-3">
48246
- <div [ngClass]="isLightMode() ? 'border-l-4 border-blue-500' : 'border-l-4 border-blue-400'" class="pl-4">
48247
- <div class="flex items-center gap-3">
48248
- <svg class="w-6 h-6" [ngClass]="isLightMode() ? 'text-blue-500' : 'text-blue-400'" fill="none" stroke="currentColor" viewBox="0 0 24 24">
48249
- <path 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"></path>
48250
- </svg>
48251
- <h2 [class]="sectionTitleClass()" class="text-xl sm:text-2xl font-bold">Key Insights</h2>
48252
- </div>
48253
- </div>
48254
- </div>
48255
- <span [class]="metaLabelClass()" class="text-xs sm:text-sm">{{ insights().length }} insights</span>
48256
- </div>
48257
-
48258
- <div class="grid grid-cols-1 md:grid-cols-2 gap-6">
48259
- @for (insight of insights(); track $index) {
48260
- <symphiq-funnel-analysis-insight-card
48261
- [insight]="insight"
48262
- [allMetrics]="allMetrics()"
48263
- [charts]="chartsForInsight(insight)"
48264
- [allCharts]="allCharts()"
48265
- [allBusinessInsights]="allBusinessInsights()"
48266
- [isLightMode]="isLightMode()"
48267
- [viewMode]="viewMode()"
48268
- [isCompactMode]="true"
48269
- [isLoading]="isDataLoading()" />
48270
- }
48271
- </div>
48272
- </section>
48273
- }
48274
-
48275
- <!-- Supporting Data Section -->
48276
- <symphiq-collapsible-funnel-section-group
48277
- [viewMode]="isLightMode() ? ViewModeEnum.LIGHT : ViewModeEnum.DARK">
48278
- <!-- Overall Performance Slot -->
48279
- <div slot="overall-performance">
48280
- @if (showOverallPerformance()) {
48281
- <div class="p-6">
48282
- @if (isDataLoading()) {
48283
- <symphiq-skeleton-loader [width]="'100%'" [height]="'200px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48284
- } @else {
48285
- <symphiq-funnel-analysis-overall-assessment
48286
- [assessment]="performanceOverview().overallAssessment || {}"
48287
- [revenueMetric]="revenueMetric()"
48288
- [charts]="chartsForItem('OVERALL_ASSESSMENT')"
48289
- [metrics]="allMetrics()"
48290
- [isLightMode]="isLightMode()"
48291
- [isLoading]="isOverallAssessmentLoading()"
48292
- [isCompactMode]="true"
48293
- [isChartsLoading]="areChartsLoading()"
48294
- [strengths]="strengths()"
48295
- [weaknesses]="weaknesses()"
48296
- [currencySymbol]="currencySymbol()"
48297
- (scrollToSection)="scrollToSection($event)" />
48298
- }
48299
- </div>
48300
- }
48301
- </div>
48302
-
48303
- <!-- Performance Metrics Slot -->
48304
- <div slot="performance-metrics">
48305
- @if (showPerformanceMetrics()) {
48306
- <div class="p-6 space-y-8">
48307
- @for (funnelGroup of groupedMetrics(); track $index; let groupIdx = $index) {
48308
- <!-- Funnel Stage Metric (Full Width) -->
48309
- <div class="w-full">
48310
- <symphiq-funnel-analysis-metric-card
48311
- [metric]="funnelGroup.funnelMetric"
48312
- [insights]="insights()"
48313
- [charts]="chartsForMetric(funnelGroup.funnelMetric)"
48314
- [allCharts]="allCharts()"
48315
- [analysis]="analysisData()"
48316
- [isLightMode]="isLightMode()"
48317
- [viewMode]="viewMode()"
48318
- [isCompactMode]="true"
48319
- [currencySymbol]="currencySymbol()" />
48320
- </div>
48321
- <!-- Related Metrics (Grid Layout) -->
48322
- @if (funnelGroup.relatedMetrics.length > 0) {
48323
- <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 mt-4">
48324
- @for (metric of funnelGroup.relatedMetrics; track $index) {
48325
- <symphiq-funnel-analysis-metric-card
48326
- [metric]="metric"
48327
- [insights]="insights()"
48328
- [charts]="chartsForMetric(metric)"
48329
- [allCharts]="allCharts()"
48330
- [analysis]="analysisData()"
48331
- [isLightMode]="isLightMode()"
48332
- [viewMode]="viewMode()"
48333
- [isCompactMode]="true"
48334
- [currencySymbol]="currencySymbol()" />
48335
- }
48336
- </div>
48337
- }
48338
- }
48339
- </div>
48340
- }
48341
- </div>
48342
-
48343
- <!-- Performance Breakdowns Slot -->
48344
- <div slot="performance-breakdowns">
48345
- @if (showPerformanceBreakdowns()) {
48346
- <div class="p-6 space-y-8">
48347
- @for (breakdown of breakdowns(); track $index) {
48348
- <symphiq-funnel-analysis-breakdown-section
48349
- [breakdown]="breakdown"
48350
- [charts]="chartsForBreakdown(breakdown)"
48351
- [isLightMode]="isLightMode()"
48352
- [isLoading]="isDataLoading()"
48353
- [isCompactMode]="true"
48354
- [currencySymbol]="currencySymbol()" />
48355
- }
48356
- </div>
48357
- }
48358
- </div>
48359
-
48360
- <!-- Competitive Intelligence Slot -->
48361
- <div slot="competitive-intelligence">
48362
- @if (showCompetitiveIntelligence()) {
48363
- <div class="p-6">
48364
- <symphiq-competitive-intelligence-view
48365
- [metrics]="competitiveMetrics()"
48366
- [allCharts]="allCharts()"
48367
- [isLightMode]="isLightMode()"
48368
- [isCompactMode]="true"
48369
- [competitiveBenchmark]="performanceOverview().overallAssessment?.competitiveBenchmark"
48370
- [currencySymbol]="currencySymbol()" />
48371
- </div>
48372
- }
48373
- </div>
48374
- </symphiq-collapsible-funnel-section-group>
48375
- </div>
48376
- </main>
48377
- } @else {
48378
- <main class="max-w-7xl mx-auto px-6 sm:px-8">
48379
- <div class="pt-8 sm:pt-12 pb-16 sm:pb-24">
48380
- @if (showOverallPerformance()) {
48381
- <div id="section-overall" class="animate-fade-in-up mb-20 sm:mb-28" style="animation-delay: 0.1s;">
48382
- @if (isDataLoading()) {
48383
- <!-- Overall Assessment Skeleton -->
48384
- <div [ngClass]="isLightMode() ? 'bg-white border-slate-200' : 'bg-slate-800 border-slate-700'" class="rounded-xl border p-6 sm:p-8 animate-pulse">
48385
- <div class="space-y-6">
48386
- <!-- Header -->
48387
- <div class="flex items-center gap-3">
48388
- <symphiq-skeleton-loader [width]="'48px'" [height]="'48px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48389
- <div class="flex-1 space-y-2">
48390
- <symphiq-skeleton-loader [width]="'40%'" [height]="'32px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48391
- <symphiq-skeleton-loader [width]="'60%'" [height]="'20px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48392
- </div>
48393
- </div>
48394
- <!-- Summary text -->
48395
- <div class="space-y-2">
48396
- <symphiq-skeleton-loader [width]="'100%'" [height]="'18px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48397
- <symphiq-skeleton-loader [width]="'95%'" [height]="'18px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48398
- <symphiq-skeleton-loader [width]="'90%'" [height]="'18px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48399
- </div>
48400
- <!-- Chart placeholder -->
48401
- <div class="grid grid-cols-1 md:grid-cols-2 gap-4 mt-6">
48402
- <symphiq-skeleton-loader [width]="'100%'" [height]="'200px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48403
- <symphiq-skeleton-loader [width]="'100%'" [height]="'200px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48404
- </div>
48405
- </div>
48406
- </div>
48407
- } @else {
48408
- <symphiq-funnel-analysis-overall-assessment
48409
- [assessment]="performanceOverview().overallAssessment || {}"
48410
- [revenueMetric]="revenueMetric()"
48411
- [charts]="chartsForItem('OVERALL_ASSESSMENT')"
48412
- [metrics]="allMetrics()"
48413
- [isLightMode]="isLightMode()"
48414
- [isLoading]="isOverallAssessmentLoading()"
48415
- [isCompactMode]="viewModeService.isCompact()"
48416
- [isChartsLoading]="areChartsLoading()"
48417
- [strengths]="strengths()"
48418
- [weaknesses]="weaknesses()"
48419
- [currencySymbol]="currencySymbol()"
48420
- (scrollToSection)="scrollToSection($event)" />
48421
- }
48422
- </div>
48423
- }
48424
-
48425
- @if (showKeyInsights()) {
48426
- @if (selectedSectionFilter() === 'ALL') {
48427
- <!-- Section Divider -->
48428
- <symphiq-section-divider [viewMode]="viewMode()" animationDelay="0.15s"></symphiq-section-divider>
48429
- }
48430
-
48431
- <section id="section-insights" class="relative">
48432
- <!-- Background Pattern -->
48433
- <div class="absolute inset-0 -mx-6 sm:-mx-8 -mt-8 rounded-3xl opacity-30 backdrop-blur-sm" [ngClass]="isLightMode() ? 'bg-gradient-to-br from-blue-50/50 to-transparent' : 'bg-gradient-to-br from-blue-950/20 to-transparent'" style="mask-image: radial-gradient(ellipse at center, black 0%, transparent 70%);"></div>
48434
- <div class="relative">
48435
- <div class="flex items-center justify-between mb-6 sm:mb-8 animate-fade-in" style="animation-delay: 0.2s;">
48436
- <div class="flex items-center gap-3">
48437
- <div [ngClass]="isLightMode() ? 'border-l-4 border-blue-500' : 'border-l-4 border-blue-400'" class="pl-4">
48438
- <div class="flex items-center gap-3">
48439
- <svg class="w-6 h-6" [ngClass]="isLightMode() ? 'text-blue-500' : 'text-blue-400'" fill="none" stroke="currentColor" viewBox="0 0 24 24">
48440
- <path 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"></path>
48441
- </svg>
48442
- <h2 [class]="sectionTitleClass()" class="text-xl sm:text-2xl font-bold">Key Insights</h2>
48443
- </div>
48444
- </div>
48445
- </div>
48446
- <span [class]="metaLabelClass()" class="text-xs sm:text-sm">{{ insights().length }} insights</span>
48447
- </div>
48448
- <!-- Masonry Layout for Insights -->
48449
- @if (isDataLoading() || (viewModeService.isExpanded() && viewModeService.getIsTransitioning())) {
48450
- <!-- Skeleton loaders during data loading or transition to expanded view -->
48451
- <div class="masonry-grid">
48452
- @for (i of [1,2,3,4,5,6]; track i) {
48453
- <div [ngClass]="isLightMode() ? 'bg-white border-slate-200' : 'bg-slate-800 border-slate-700'" class="rounded-xl border p-6 animate-pulse min-h-[280px]">
48454
- <div class="space-y-4">
48455
- <div class="flex items-center gap-3 mb-4">
48456
- <symphiq-skeleton-loader [width]="'48px'" [height]="'48px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48457
- <symphiq-skeleton-loader [width]="'60%'" [height]="'28px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48458
- </div>
48459
- <symphiq-skeleton-loader [width]="'100%'" [height]="'18px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48460
- <symphiq-skeleton-loader [width]="'95%'" [height]="'18px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48461
- <symphiq-skeleton-loader [width]="'85%'" [height]="'18px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48462
- <div class="mt-6 space-y-2">
48463
- <symphiq-skeleton-loader [width]="'40%'" [height]="'14px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48464
- <symphiq-skeleton-loader [width]="'50%'" [height]="'36px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48465
- </div>
48466
- <div class="flex gap-2 mt-4">
48467
- <symphiq-skeleton-loader [width]="'80px'" [height]="'28px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48468
- <symphiq-skeleton-loader [width]="'80px'" [height]="'28px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48469
- </div>
48470
- </div>
48471
- </div>
48472
- }
48473
- </div>
48474
- } @else if (viewModeService.isExpanded()) {
48475
- <div class="masonry-grid">
48476
- @for (insight of insights(); track $index) {
48477
- <div
48478
- [class]="getInsightCardClass(insight)"
48479
- class="animate-fade-in-up"
48480
- [style.animation-delay]="(0.3 + $index * 0.1) + 's'"
48481
- [libSymphiqSearchHighlight]="searchService.highlightedResultId()"
48482
- [highlightId]="'insight-' + $index">
48483
- <symphiq-funnel-analysis-insight-card
48484
- [insight]="insight"
48485
- [allMetrics]="allMetrics()"
48486
- [charts]="chartsForInsight(insight)"
48487
- [allCharts]="allCharts()"
48488
- [allBusinessInsights]="allBusinessInsights()"
48489
- [isLightMode]="isLightMode()"
48490
- [viewMode]="viewMode()"
48491
- [isCompactMode]="false" />
48492
- </div>
48493
- }
48494
- </div>
48495
- } @else {
48496
- <!-- Compact Grid for Insights -->
48497
- <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
48498
- @for (insight of insights(); track $index) {
48499
- <div class="animate-fade-in-up" [style.animation-delay]="(0.3 + $index * 0.1) + 's'"
48500
- [libSymphiqSearchHighlight]="searchService.highlightedResultId()"
48501
- [highlightId]="'insight-' + $index">
48502
- <symphiq-funnel-analysis-insight-card
48503
- [insight]="insight"
48504
- [allMetrics]="allMetrics()"
48505
- [charts]="chartsForInsight(insight)"
48506
- [allCharts]="allCharts()"
48507
- [allBusinessInsights]="allBusinessInsights()"
48508
- [isLightMode]="isLightMode()"
48509
- [viewMode]="viewMode()"
48510
- [isCompactMode]="true" />
48511
- </div>
48512
- }
48513
- </div>
48514
- }
48515
- </div>
48516
- </section>
48517
- }
48518
-
48519
- @if (showPerformanceMetrics()) {
48520
- @if (selectedSectionFilter() === 'ALL') {
48521
- <!-- Section Divider -->
48522
- <div class="relative mb-14 sm:mb-24 mt-24 sm:mt-32 animate-fade-in" style="animation-delay: 0.35s;">
48523
- <div class="absolute inset-0 flex items-center" aria-hidden="true">
48524
- <div class="w-full h-px bg-gradient-to-r" [ngClass]="isLightMode() ? 'from-transparent via-emerald-500/30 to-transparent' : 'from-transparent via-emerald-400/20 to-transparent'"></div>
48525
- </div>
48526
- <div class="relative flex justify-center">
48527
- <div class="px-4 py-2 rounded-full" [ngClass]="isLightMode() ? 'bg-gradient-to-br from-emerald-50 to-teal-50 border border-emerald-200/50 shadow-lg shadow-emerald-500/10' : 'bg-gradient-to-br from-slate-900 to-slate-800 border border-emerald-500/20 shadow-lg shadow-emerald-500/5'">
48528
- <svg class="w-5 h-5" [ngClass]="isLightMode() ? 'text-emerald-500' : 'text-emerald-400'" fill="none" stroke="currentColor" viewBox="0 0 24 24">
48529
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 12l3-3 3 3 4-4M8 21l4-4 4 4M3 4h18M4 4h16v12a1 1 0 01-1 1H5a1 1 0 01-1-1V4z"></path>
48530
- </svg>
48531
- </div>
48532
- </div>
48533
- </div>
48534
- }
48535
-
48536
- <section id="section-metrics" class="relative">
48537
- <!-- Background Pattern -->
48538
- <div class="absolute inset-0 -mx-6 sm:-mx-8 -mt-8 rounded-3xl opacity-30 backdrop-blur-sm" [ngClass]="isLightMode() ? 'bg-gradient-to-tl from-emerald-50/50 to-transparent' : 'bg-gradient-to-tl from-emerald-950/20 to-transparent'" style="mask-image: radial-gradient(ellipse at top right, black 0%, transparent 70%);"></div>
48539
- <div class="relative">
48540
- <div class="flex flex-col gap-4 mb-6 sm:mb-8 animate-fade-in" style="animation-delay: 0.4s;">
48541
- <div class="flex items-center justify-between">
48542
- <div class="flex items-center gap-3">
48543
- <div [ngClass]="isLightMode() ? 'border-l-4 border-emerald-500' : 'border-l-4 border-emerald-400'" class="pl-4">
48544
- <div class="flex items-center gap-3">
48545
- <svg class="w-6 h-6" [ngClass]="isLightMode() ? 'text-emerald-500' : 'text-emerald-400'" fill="none" stroke="currentColor" viewBox="0 0 24 24">
48546
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"></path>
48547
- </svg>
48548
- <h2 [class]="sectionTitleClass()" class="text-xl sm:text-2xl font-bold">Performance Metrics</h2>
48549
- </div>
48550
- </div>
48551
- </div>
48552
- <!-- Desktop controls -->
48553
- <div class="hidden sm:flex gap-2 sm:gap-3 items-center relative">
48554
- @if (isCategoryTransitioning()) {
48555
- <div class="absolute -right-2 top-1/2 -translate-y-1/2 z-10">
48556
- <div class="w-4 h-4 border-2 border-blue-500/30 border-t-blue-500 rounded-full animate-spin"></div>
48557
- </div>
48558
- }
48559
- <select
48560
- [ngModel]="selectedCategory()"
48561
- (ngModelChange)="changeCategoryFilter($event)"
48562
- [class]="selectClass()"
48563
- [class.opacity-70]="isCategoryTransitioning()"
48564
- class="px-3 sm:px-4 py-2 rounded-lg text-xs sm:text-sm font-medium focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent transition-all duration-200 cursor-pointer">
48565
- @for (cat of categories; track cat.value) {
48566
- @if (cat.divider) {
48567
- <option [value]="cat.value" disabled class="font-semibold">{{ cat.label }}</option>
48568
- } @else {
48569
- <option [value]="cat.value">{{ cat.label }}</option>
48570
- }
48571
- }
48572
- </select>
48573
- <button
48574
- (click)="toggleSortOrder()"
48575
- [class]="sortButtonClass()"
48576
- class="px-3 sm:px-4 py-2 rounded-lg text-xs sm:text-sm font-medium focus:outline-none focus:ring-2 focus:ring-blue-500 transition-all flex items-center gap-2 cursor-pointer hover:scale-105 active:scale-95"
48577
- [title]="reverseSortOrder() ? 'Sort: Revenue to Views' : 'Sort: Views to Revenue'">
48578
- <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
48579
- @if (!reverseSortOrder()) {
48580
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 4h13M3 8h9m-9 4h6m4 0l4-4m0 0l4 4m-4-4v12"></path>
48581
- }
48582
- @if (reverseSortOrder()) {
48583
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 4h13M3 8h9m-9 4h9m5-4v12m0 0l-4-4m4 4l4-4"></path>
48584
- }
48585
- </svg>
48586
- <span>Sort</span>
48587
- </button>
48588
- </div>
48589
- </div>
48590
-
48591
- <!-- Mobile horizontal scrolling category pills -->
48592
- <div class="sm:hidden -mx-6 px-6">
48593
- <div class="flex gap-2 overflow-x-auto pb-2 snap-x snap-mandatory scrollbar-hide">
48594
- @for (cat of categories; track cat.value) {
48595
- @if (!cat.divider) {
48596
- <button
48597
- (click)="changeCategoryFilter(cat.value)"
48598
- [ngClass]="getCategoryPillClass(cat.value)"
48599
- [class.opacity-70]="isCategoryTransitioning()"
48600
- class="px-4 py-2 rounded-full text-xs font-medium whitespace-nowrap transition-all duration-200 flex-shrink-0 snap-start active:scale-95">
48601
- {{ cat.label }}
48602
- </button>
48603
- }
48604
- }
48605
- </div>
48606
- </div>
48607
- </div>
48608
- @if (isDataLoading()) {
48609
- <!-- Metrics Skeleton -->
48610
- <div class="space-y-8 sm:space-y-10">
48611
- @for (i of [1,2,3]; track i) {
48612
- <div [ngClass]="isLightMode() ? 'bg-white border-slate-200' : 'bg-slate-800 border-slate-700'" class="rounded-xl border p-6 animate-pulse">
48613
- <div class="flex items-center justify-between mb-4">
48614
- <div class="flex items-center gap-3">
48615
- <symphiq-skeleton-loader [width]="'40px'" [height]="'40px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48616
- <div class="space-y-2">
48617
- <symphiq-skeleton-loader [width]="'150px'" [height]="'24px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48618
- <symphiq-skeleton-loader [width]="'100px'" [height]="'16px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48619
- </div>
48620
- </div>
48621
- <symphiq-skeleton-loader [width]="'80px'" [height]="'36px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48622
- </div>
48623
- <div class="grid grid-cols-2 md:grid-cols-4 gap-4 mt-6">
48624
- @for (j of [1,2,3,4]; track j) {
48625
- <symphiq-skeleton-loader [width]="'100%'" [height]="'120px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48626
- }
48627
- </div>
48628
- </div>
48629
- }
48630
- </div>
48631
- } @else {
48632
- <div class="space-y-8 sm:space-y-10" [class.animate-content-change]="isCategoryTransitioning()" [class.transition-opacity-slow]="isCategoryTransitioning()">
48633
- @for (funnelGroup of groupedMetrics(); track $index; let groupIdx = $index) {
48634
- <div class="w-full animate-fade-in-up" [style.animation-delay]="(0.5 + groupIdx * 0.15) + 's'"
48635
- [libSymphiqSearchHighlight]="searchService.highlightedResultId()"
48636
- [highlightId]="'metric-' + groupIdx">
48637
- <symphiq-funnel-analysis-metric-card
48638
- [metric]="funnelGroup.funnelMetric"
48639
- [insights]="insights()"
48640
- [charts]="chartsForMetric(funnelGroup.funnelMetric)"
48641
- [allCharts]="allCharts()"
48642
- [analysis]="analysisData()"
48643
- [isLightMode]="isLightMode()"
48644
- [viewMode]="viewMode()"
48645
- [isCompactMode]="viewModeService.isCompact()"
48646
- [currencySymbol]="currencySymbol()" />
48647
- </div>
48648
- @if (funnelGroup.relatedMetrics.length > 0) {
48649
- <!-- Bento Box Grid Layout -->
48650
- @if (viewModeService.isExpanded()) {
48651
- <div class="bento-grid mt-4">
48652
- @for (metric of funnelGroup.relatedMetrics; track $index; let metricIdx = $index) {
48653
- <div
48654
- [class]="getBentoCardClass(metric, metricIdx)"
48655
- class="animate-fade-in-up"
48656
- [style.animation-delay]="(0.6 + groupIdx * 0.15 + metricIdx * 0.08) + 's'">
48657
- <symphiq-funnel-analysis-metric-card
48658
- class="h-full"
48659
- [metric]="metric"
48660
- [insights]="insights()"
48661
- [charts]="chartsForMetric(metric)"
48662
- [allCharts]="allCharts()"
48663
- [analysis]="analysisData()"
48664
- [isLightMode]="isLightMode()"
48665
- [viewMode]="viewMode()"
48666
- [isCompactMode]="false"
48667
- [currencySymbol]="currencySymbol()" />
48668
- </div>
48669
- }
48670
- </div>
48671
- } @else if (!viewModeService.isExpanded()) {
48672
- <!-- Compact Grid Layout -->
48673
- <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-3 sm:gap-4 mt-4">
48674
- @for (metric of funnelGroup.relatedMetrics; track $index; let metricIdx = $index) {
48675
- <div class="animate-fade-in-up" [style.animation-delay]="(0.6 + groupIdx * 0.15 + metricIdx * 0.08) + 's'">
48676
- <symphiq-funnel-analysis-metric-card
48677
- [metric]="metric"
48678
- [insights]="insights()"
48679
- [charts]="chartsForMetric(metric)"
48680
- [allCharts]="allCharts()"
48681
- [analysis]="analysisData()"
48682
- [isLightMode]="isLightMode()"
48683
- [viewMode]="viewMode()"
48684
- [isCompactMode]="true"
48685
- [currencySymbol]="currencySymbol()" />
48686
- </div>
48687
- }
48688
- </div>
48689
- } @else {
48690
- <!-- Skeleton loaders during transition to expanded view -->
48691
- <div class="bento-grid mt-4">
48692
- @for (i of [1,2,3,4]; track i) {
48693
- <div [ngClass]="isLightMode() ? 'bg-white border-slate-200' : 'bg-slate-800 border-slate-700'" class="rounded-xl border p-6 animate-pulse min-h-[240px]">
48694
- <div class="space-y-4">
48695
- <div class="flex items-center justify-between">
48696
- <symphiq-skeleton-loader [width]="'60%'" [height]="'22px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48697
- <symphiq-skeleton-loader [width]="'60px'" [height]="'24px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48698
- </div>
48699
- <symphiq-skeleton-loader [width]="'45%'" [height]="'42px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48700
- <div class="flex items-center gap-3 mt-4">
48701
- <symphiq-skeleton-loader [width]="'24px'" [height]="'24px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48702
- <symphiq-skeleton-loader [width]="'30%'" [height]="'20px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48703
- </div>
48704
- <symphiq-skeleton-loader [width]="'100%'" [height]="'16px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48705
- <symphiq-skeleton-loader [width]="'85%'" [height]="'16px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48706
- <div class="mt-4">
48707
- <symphiq-skeleton-loader [width]="'100%'" [height]="'120px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48708
- </div>
48709
- </div>
48710
- </div>
48711
- }
48712
- </div>
48713
- }
48714
- }
48715
- } @empty {
48716
- <div [ngClass]="isLightMode() ? 'bg-slate-50 border-slate-200' : 'bg-slate-800/50 border-slate-700'" class="rounded-xl p-12 border text-center animate-fade-in">
48717
- <svg class="w-16 h-16 mx-auto mb-4" [ngClass]="isLightMode() ? 'text-slate-300' : 'text-slate-600'" fill="none" stroke="currentColor" viewBox="0 0 24 24">
48718
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"></path>
48719
- </svg>
48720
- <h3 [ngClass]="isLightMode() ? 'text-slate-900' : 'text-white'" class="text-lg font-semibold mb-2">No Metrics Found</h3>
48721
- <p [ngClass]="isLightMode() ? 'text-slate-600' : 'text-slate-400'" class="text-sm">No performance metrics match your current filter selection. Try adjusting your filters to see more results.</p>
48722
- </div>
48723
- }
48724
- </div>
48725
- }
48726
- </div>
48727
- </section>
48728
- }
48729
-
48730
- @if (showPerformanceBreakdowns()) {
48731
- @if (selectedSectionFilter() === 'ALL') {
48732
- <!-- Section Divider -->
48733
- <div class="mt-28 sm:mt-36">
48734
- <symphiq-section-divider [viewMode]="viewMode()" animationDelay="0.65s"></symphiq-section-divider>
48735
- </div>
48736
- }
48737
-
48738
- <section id="section-breakdowns" class="relative">
48739
- <!-- Background Pattern -->
48740
- <div class="absolute inset-0 -mx-6 sm:-mx-8 -mt-8 rounded-3xl opacity-30 backdrop-blur-sm" [ngClass]="isLightMode() ? 'bg-gradient-to-tr from-purple-50/50 to-transparent' : 'bg-gradient-to-tr from-purple-950/20 to-transparent'" style="mask-image: radial-gradient(ellipse at bottom left, black 0%, transparent 70%);"></div>
48741
- <div class="relative">
48742
- <div class="flex flex-col sm:flex-row sm:items-center justify-between gap-4 mb-6 sm:mb-8 animate-fade-in" style="animation-delay: 0.7s;">
48743
- <div [ngClass]="isLightMode() ? 'border-l-4 border-purple-500' : 'border-l-4 border-purple-400'" class="pl-4">
48744
- <div class="flex items-center gap-3">
48745
- <svg class="w-6 h-6" [ngClass]="isLightMode() ? 'text-purple-500' : 'text-purple-400'" fill="none" stroke="currentColor" viewBox="0 0 24 24">
48746
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z"></path>
48747
- </svg>
48748
- <h2 [class]="sectionTitleClass()" class="text-xl sm:text-2xl font-bold">Performance Breakdowns</h2>
48749
- </div>
48750
- </div>
48751
- <div (click)="$event.stopPropagation()" (mousedown)="$event.stopPropagation()" (pointerdown)="$event.stopPropagation()" class="relative inline-block">
48752
- @if (isBreakdownTransitioning()) {
48753
- <div class="absolute -right-2 top-1/2 -translate-y-1/2 z-10">
48754
- <div class="w-4 h-4 border-2 border-purple-500/30 border-t-purple-500 rounded-full animate-spin"></div>
48755
- </div>
48756
- }
48757
- <select
48758
- [ngModel]="selectedBreakdownFilter()"
48759
- (ngModelChange)="changeBreakdownFilter($event)"
48760
- [ngClass]="isLightMode()
48761
- ? 'bg-white border-slate-300 text-slate-900 hover:border-blue-400 focus:border-blue-500'
48762
- : 'bg-slate-700 border-slate-600 text-white hover:border-slate-500 focus:border-blue-500'"
48763
- [class.opacity-70]="isBreakdownTransitioning()"
48764
- class="px-3 py-2 text-sm rounded-lg border transition-all duration-200 cursor-pointer focus:ring-2 focus:ring-blue-500 focus:outline-none">
48765
- @for (filter of breakdownFilters; track filter.value) {
48766
- @if (filter.divider) {
48767
- <option [value]="filter.value" disabled class="font-semibold">{{ filter.label }}</option>
48768
- } @else {
48769
- <option [value]="filter.value">{{ filter.label }}</option>
48770
- }
48771
- }
48772
- </select>
48773
- </div>
48774
- </div>
48775
- @if (isDataLoading()) {
48776
- <!-- Breakdowns Skeleton -->
48777
- <div class="space-y-6">
48778
- @for (i of [1,2]; track i) {
48779
- <div [ngClass]="isLightMode() ? 'bg-white border-slate-200' : 'bg-slate-800 border-slate-700'" class="rounded-xl border p-6 animate-pulse">
48780
- <div class="flex items-center justify-between mb-4">
48781
- <symphiq-skeleton-loader [width]="'200px'" [height]="'28px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48782
- <symphiq-skeleton-loader [width]="'100px'" [height]="'24px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48783
- </div>
48784
- <div class="space-y-3">
48785
- @for (j of [1,2,3,4]; track j) {
48786
- <div class="flex items-center justify-between p-3 rounded-lg" [ngClass]="isLightMode() ? 'bg-slate-50' : 'bg-slate-700/50'">
48787
- <symphiq-skeleton-loader [width]="'150px'" [height]="'18px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48788
- <symphiq-skeleton-loader [width]="'80px'" [height]="'18px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48789
- </div>
48790
- }
48791
- </div>
48792
- </div>
48793
- }
48794
- </div>
48795
- } @else {
48796
- <div class="space-y-6" [class.animate-content-change]="isBreakdownTransitioning()" [class.transition-opacity-slow]="isBreakdownTransitioning()">
48797
- @for (breakdown of breakdowns(); track $index) {
48798
- <div class="animate-fade-in-up" [style.animation-delay]="(0.8 + $index * 0.1) + 's'"
48799
- [libSymphiqSearchHighlight]="searchService.highlightedResultId()"
48800
- [highlightId]="'breakdown-' + $index">
48801
- <symphiq-funnel-analysis-breakdown-section
48802
- [breakdown]="breakdown"
48803
- [charts]="chartsForBreakdown(breakdown)"
48804
- [isLightMode]="isLightMode()"
48805
- [isCompactMode]="viewModeService.isCompact()"
48806
- [currencySymbol]="currencySymbol()" />
48807
- </div>
48808
- } @empty {
48809
- <div [ngClass]="isLightMode() ? 'bg-slate-50 border-slate-200' : 'bg-slate-800/50 border-slate-700'" class="rounded-xl p-12 border text-center animate-fade-in">
48810
- <svg class="w-16 h-16 mx-auto mb-4" [ngClass]="isLightMode() ? 'text-slate-300' : 'text-slate-600'" fill="none" stroke="currentColor" viewBox="0 0 24 24">
48811
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z"></path>
48812
- </svg>
48813
- <h3 [ngClass]="isLightMode() ? 'text-slate-900' : 'text-white'" class="text-lg font-semibold mb-2">No Breakdowns Found</h3>
48814
- <p [ngClass]="isLightMode() ? 'text-slate-600' : 'text-slate-400'" class="text-sm">No performance breakdowns match your current filter selection. Try adjusting your filters to see more results.</p>
48815
- </div>
48816
- }
48817
- </div>
48818
- }
48819
- </div>
48820
- </section>
48821
- }
48822
-
48823
- @if (showCompetitiveIntelligence()) {
48824
- @if (selectedSectionFilter() === 'ALL') {
48825
- <!-- Section Divider -->
48826
- <div class="mt-28 sm:mt-36">
48827
- <symphiq-section-divider [viewMode]="viewMode()" animationDelay="0.85s"></symphiq-section-divider>
48828
- </div>
48829
- }
48830
-
48831
- <!-- Competitive Intelligence Section -->
48832
- <section id="section-competitive" class="relative">
48833
- <!-- Background Pattern -->
48834
- <div class="absolute inset-0 -mx-6 sm:-mx-8 -mt-8 rounded-3xl opacity-30 backdrop-blur-sm" [ngClass]="isLightMode() ? 'bg-gradient-to-br from-indigo-50/50 to-transparent' : 'bg-gradient-to-br from-indigo-950/20 to-transparent'" style="mask-image: radial-gradient(ellipse at center, black 0%, transparent 70%);"></div>
48835
- <div class="relative">
48836
- <div class="flex items-center justify-between mb-6 sm:mb-8 animate-fade-in" style="animation-delay: 0.9s;">
48837
- <div class="flex items-center gap-3">
48838
- <div [ngClass]="isLightMode() ? 'border-l-4 border-indigo-500' : 'border-l-4 border-indigo-400'" class="pl-4">
48839
- <div class="flex items-center gap-3">
48840
- <svg class="w-6 h-6" [ngClass]="isLightMode() ? 'text-indigo-500' : 'text-indigo-400'" fill="none" stroke="currentColor" viewBox="0 0 24 24">
48841
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4" />
48842
- </svg>
48843
- <h2 [class]="sectionTitleClass()" class="text-xl sm:text-2xl font-bold">Competitive Intelligence</h2>
48844
- </div>
48845
- </div>
48846
- </div>
48847
- <!-- Filter Dropdown -->
48848
- <div class="hidden sm:block relative">
48849
- @if (isCompetitiveTransitioning()) {
48850
- <div class="absolute -right-2 top-1/2 -translate-y-1/2 z-10">
48851
- <div class="w-4 h-4 border-2 border-indigo-500/30 border-t-indigo-500 rounded-full animate-spin"></div>
48852
- </div>
48853
- }
48854
- <select
48855
- [ngModel]="selectedCompetitiveFilter()"
48856
- (ngModelChange)="changeCompetitiveFilter($event)"
48857
- [class]="selectClass()"
48858
- [class.opacity-70]="isCompetitiveTransitioning()"
48859
- class="px-3 sm:px-4 py-2 rounded-lg text-xs sm:text-sm font-medium focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent transition-all duration-200 cursor-pointer">
48860
- @for (filter of competitiveFilters; track filter.value) {
48861
- @if (filter.divider) {
48862
- <option [value]="filter.value" disabled class="font-semibold">{{ filter.label }}</option>
48863
- } @else {
48864
- <option [value]="filter.value">{{ filter.label }}</option>
48865
- }
48866
- }
48867
- </select>
48868
- </div>
48869
- </div>
48870
-
48871
- @if (isDataLoading()) {
48872
- <!-- Competitive Intelligence Skeleton -->
48873
- <div class="space-y-6">
48874
- <div [ngClass]="isLightMode() ? 'bg-white border-slate-200' : 'bg-slate-800 border-slate-700'" class="rounded-xl border p-6 animate-pulse">
48875
- <symphiq-skeleton-loader [width]="'60%'" [height]="'24px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48876
- <div class="grid grid-cols-1 md:grid-cols-3 gap-4 mt-6">
48877
- @for (i of [1,2,3]; track i) {
48878
- <symphiq-skeleton-loader [width]="'100%'" [height]="'140px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48879
- }
48880
- </div>
48881
- </div>
48882
- </div>
48883
- } @else {
48884
- <symphiq-competitive-intelligence-view
48885
- [metrics]="competitiveMetrics()"
48886
- [allCharts]="allCharts()"
48887
- [isLightMode]="isLightMode()"
48888
- [isCompactMode]="viewModeService.isCompact()"
48889
- [competitiveBenchmark]="performanceOverview().overallAssessment?.competitiveBenchmark"
48890
- [currencySymbol]="currencySymbol()" />
48891
- }
48892
- </div>
48893
- </section>
48894
- }
48895
- </div>
48896
- </main>
48897
- }
48898
-
48899
- <symphiq-funnel-analysis-modal
48900
- [isLightMode]="isLightMode()"
48901
- [viewMode]="viewMode()"
48902
- [allMetrics]="allMetrics()"
48903
- [allInsights]="insights()"
48904
- [allCharts]="allCharts()"
48905
- [currencySymbol]="currencySymbol()"
48906
- [businessProfile]="businessProfile()"></symphiq-funnel-analysis-modal>
48907
- <symphiq-profile-analysis-modal
48908
- [isLightMode]="isLightMode()"
48909
- [allMetrics]="allMetrics()"
48910
- ></symphiq-profile-analysis-modal>
48911
- <symphiq-business-analysis-modal [isLightMode]="isLightMode()" />
48912
- <symphiq-tooltip-container></symphiq-tooltip-container>
48913
- <symphiq-search-bar
48914
- [isLightMode]="isLightMode()"
48915
- (resultSelected)="handleSearchResult($event)" />
48916
-
48917
- <!-- View Mode Switcher Modal -->
48918
- <symphiq-view-mode-switcher-modal
48919
- [isOpen]="isViewModeSwitcherOpen()"
48920
- [currentMode]="displayMode()"
48921
- [viewMode]="isLightMode() ? ViewModeEnum.LIGHT : ViewModeEnum.DARK"
48922
- [isLoading]="isViewModeSwitching()"
48923
- (close)="closeViewModeSwitcher()"
48924
- (modeSelected)="handleDisplayModeChange($event)"
48925
- />
48926
-
48927
- <!-- Mobile FAB -->
48928
- <symphiq-mobile-fab
48929
- [isLightMode]="isLightMode()"
48930
- [isCompactMode]="viewModeService.isCompact()"
48931
- [isExpanded]="fabExpanded()"
48932
- (expandedChange)="fabExpanded.set($event)"
48933
- (scrollToTop)="scrollToTop()"
48934
- (toggleView)="viewModeService.toggleViewMode()" />
48935
-
48936
- <!-- Mobile Bottom Navigation -->
48937
- <symphiq-mobile-bottom-nav
48938
- [isLightMode]="isLightMode()"
48939
- [sections]="navSections"
48940
- [activeSection]="activeNavSection()"
48941
- (navigate)="handleMobileNavigation($event)" />
48942
-
48943
- </div>
48296
+ ContentGenerationProgressWithConfettiComponent,
48297
+ ], template: `
48298
+ <div
48299
+ class="bg-transparent"
48300
+ [class.min-h-screen]="!embedded()"
48301
+ [class.relative]="!embedded()"
48302
+ [style.display]="embedded() ? 'block' : null"
48303
+ [style.min-height]="embedded() ? 'auto' : null"
48304
+ #dashboardContainer>
48305
+ <!-- Animated Background Bubbles -->
48306
+ <div class="animated-bubbles" [class.light-mode]="isLightMode()" style="position: fixed; top: 0; left: 0; right: 0; bottom: 0; width: 100vw; height: 100vh; z-index: 1; pointer-events: none;"></div>
48307
+
48308
+ <!-- Scroll Progress Bar -->
48309
+ <div [class]="embedded() ? 'sticky top-0 left-0 right-0 h-1 z-[60] bg-slate-200/30' : 'fixed top-0 left-0 right-0 h-1 z-[60] bg-slate-200/30'">
48310
+ <div
48311
+ [style.width.%]="scrollProgress()"
48312
+ [ngClass]="isLightMode() ? 'bg-gradient-to-r from-blue-500 to-purple-500' : 'bg-gradient-to-r from-blue-400 to-purple-400'"
48313
+ class="h-full transition-all duration-200 ease-out">
48314
+ </div>
48315
+ </div>
48316
+
48317
+ <header [class]="headerClass()" class="sticky top-0 z-50 animate-fade-in" style="animation-delay: 0s;">
48318
+ <!-- Expanded Header (default state) -->
48319
+ <div
48320
+ class="transition-all duration-300 ease-in-out overflow-hidden"
48321
+ [class.max-h-0]="isScrolled()"
48322
+ [class.opacity-0]="isScrolled()"
48323
+ [class.max-h-96]="!isScrolled()"
48324
+ [class.opacity-100]="!isScrolled()">
48325
+ <div
48326
+ class="max-w-7xl mx-auto px-6 sm:px-8 py-6 sm:py-8"
48327
+ [class.pointer-events-none]="isScrolled()"
48328
+ [class.pointer-events-auto]="!isScrolled()">
48329
+ <div class="flex flex-col sm:flex-row items-start sm:items-center justify-between gap-3 sm:gap-0">
48330
+ <div class="flex-1">
48331
+ <div class="flex items-center gap-3">
48332
+ <h1 class="text-2xl sm:text-3xl font-bold mb-2 bg-gradient-to-r from-blue-600 via-purple-600 to-indigo-600 bg-clip-text text-transparent">{{analysisData()?.title}}</h1>
48333
+ @if (isLoading() && !isShowingLoader()) {
48334
+ <!-- Subtle refresh indicator -->
48335
+ <div class="animate-spin w-4 h-4 border-2 border-blue-500/30 border-t-blue-500 rounded-full" title="Refreshing data..."></div>
48336
+ }
48337
+ </div>
48338
+ <div class="flex flex-wrap items-center justify-between gap-3 sm:gap-4">
48339
+ <p [class]="headerSubtitleClass()" class="text-sm sm:text-base">Revenue Orchestration & Funnel Analysis</p>
48340
+ <div class="flex items-center gap-4">
48341
+ @if (!isSimplifiedView()) {
48342
+ <!-- Search Button -->
48343
+ <button
48344
+ type="button"
48345
+ (click)="searchService.openSearch(); $event.preventDefault()"
48346
+ [class]="buttonClass()"
48347
+ class="flex items-center gap-2 px-3 py-1.5 rounded-lg text-xs font-medium transition-all duration-200 hover:scale-105"
48348
+ title="Search (/ or Cmd+K)">
48349
+ <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
48350
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path>
48351
+ </svg>
48352
+ <span>Search</span>
48353
+ </button>
48354
+ }
48355
+ <!-- View Mode Switcher Button -->
48356
+ <button
48357
+ type="button"
48358
+ (click)="openViewModeSwitcher(); $event.preventDefault()"
48359
+ [class]="buttonClass()"
48360
+ class="flex items-center gap-2 px-3 py-1.5 rounded-lg text-xs font-medium transition-all duration-200 hover:scale-105">
48361
+ <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
48362
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
48363
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"></path>
48364
+ </svg>
48365
+ <span>{{ displayModeLabel() }}</span>
48366
+ </button>
48367
+ @if (!isSimplifiedView()) {
48368
+ <div class="flex items-center gap-2 sm:gap-3 whitespace-nowrap">
48369
+ <label [class]="metaLabelClass()" class="text-xs sm:text-sm font-medium">View:</label>
48370
+ <div (click)="$event.stopPropagation()" (mousedown)="$event.stopPropagation()" (pointerdown)="$event.stopPropagation()">
48371
+ <select
48372
+ [ngModel]="selectedSectionFilter()"
48373
+ (ngModelChange)="changeSectionFilter($event)"
48374
+ [class]="selectClass()"
48375
+ class="px-3 sm:px-4 py-1.5 rounded-lg text-xs sm:text-sm font-medium focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent transition-colors duration-200 cursor-pointer">
48376
+ @for (section of sectionFilters; track section.value) {
48377
+ <option [value]="section.value">{{ section.label }}</option>
48378
+ }
48379
+ </select>
48380
+ </div>
48381
+ </div>
48382
+ }
48383
+ </div>
48384
+ </div>
48385
+ </div>
48386
+ <div class="flex flex-col gap-4 min-w-[180px]">
48387
+ @if (formattedGeneratedDate()) {
48388
+ <div class="text-left sm:text-right">
48389
+ <div [class]="metaLabelClass()" class="text-xs sm:text-sm">Generated At</div>
48390
+ <div [class]="headerTitleClass()" class="text-sm sm:text-base font-medium">{{ formattedGeneratedDate() }}</div>
48391
+ </div>
48392
+ }
48393
+ <div class="text-left sm:text-right">
48394
+ <div [class]="metaLabelClass()" class="text-xs sm:text-sm">Requested by</div>
48395
+ <div [class]="headerTitleClass()" class="text-sm sm:text-base font-medium">{{ requestedByUser()?.firstName }} {{ requestedByUser()?.lastName }}</div>
48396
+ </div>
48397
+ </div>
48398
+ </div>
48399
+ </div>
48400
+ </div>
48401
+
48402
+ <!-- Condensed Header (scrolled state) -->
48403
+ <div
48404
+ class="transition-all duration-300 ease-in-out overflow-hidden"
48405
+ [class.max-h-0]="!isScrolled()"
48406
+ [class.opacity-0]="!isScrolled()"
48407
+ [class.max-h-20]="isScrolled()"
48408
+ [class.opacity-100]="isScrolled()">
48409
+ <div
48410
+ class="max-w-7xl mx-auto px-6 sm:px-8 py-3"
48411
+ [class.pointer-events-none]="!isScrolled()"
48412
+ [class.pointer-events-auto]="isScrolled()">
48413
+ <div class="flex items-center justify-between gap-4">
48414
+ <div class="flex items-center gap-4 flex-1 min-w-0">
48415
+ <h1 class="text-lg font-bold truncate bg-gradient-to-r from-blue-600 via-purple-600 to-indigo-600 bg-clip-text text-transparent">{{analysisData()?.title}}</h1>
48416
+ @if (revenueMetric()) {
48417
+ <div class="hidden lg:flex items-center gap-3 px-4 py-1.5 rounded-lg" [ngClass]="isLightMode() ? 'bg-emerald-50 border border-emerald-200' : 'bg-emerald-500/10 border border-emerald-500/20'">
48418
+ <span [class]="metaLabelClass()" class="text-xs font-medium">Revenue:</span>
48419
+ <span [class]="headerTitleClass()" class="text-sm font-bold">{{ formatValue(revenueValue()) }}</span>
48420
+ <span class="text-xs font-semibold" [ngClass]="revenueTrend() >= 0 ? 'text-emerald-600' : 'text-red-600'">
48421
+ {{ revenueTrend() >= 0 ? '+' : '' }}{{ revenueTrend().toFixed(1) }}%
48422
+ </span>
48423
+ </div>
48424
+ }
48425
+ </div>
48426
+ <div class="flex items-center gap-3">
48427
+ @if (!isSimplifiedView()) {
48428
+ <!-- Search Button (Icon Only in Sticky Header) -->
48429
+ <button
48430
+ type="button"
48431
+ (click)="searchService.openSearch(); $event.preventDefault()"
48432
+ [class]="buttonClass()"
48433
+ title="Search (/ or Cmd+K)"
48434
+ class="p-2 rounded-lg transition-all duration-200 hover:scale-110">
48435
+ <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
48436
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path>
48437
+ </svg>
48438
+ </button>
48439
+ }
48440
+ <!-- View Mode Switcher (Icon Only in Sticky Header) -->
48441
+ <button
48442
+ type="button"
48443
+ (click)="openViewModeSwitcher(); $event.preventDefault()"
48444
+ [class]="buttonClass()"
48445
+ [title]="'Change View Mode: ' + displayModeLabel()"
48446
+ class="p-2 rounded-lg transition-all duration-200 hover:scale-110">
48447
+ <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
48448
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
48449
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"></path>
48450
+ </svg>
48451
+ </button>
48452
+ @if (!isSimplifiedView()) {
48453
+ <div (click)="$event.stopPropagation()" (mousedown)="$event.stopPropagation()" (pointerdown)="$event.stopPropagation()">
48454
+ <select
48455
+ [ngModel]="selectedSectionFilter()"
48456
+ (ngModelChange)="changeSectionFilter($event)"
48457
+ [class]="selectClass()"
48458
+ class="px-3 py-1.5 rounded-lg text-xs font-medium focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent transition-colors duration-200 cursor-pointer">
48459
+ @for (section of sectionFilters; track section.value) {
48460
+ <option [value]="section.value">{{ section.label }}</option>
48461
+ }
48462
+ </select>
48463
+ </div>
48464
+ }
48465
+ </div>
48466
+ </div>
48467
+ </div>
48468
+ </div>
48469
+ </header>
48470
+
48471
+ <!-- Search Breadcrumb -->
48472
+ @if (searchService.activeSearchResult()) {
48473
+ <div [ngClass]="isLightMode() ? 'bg-blue-50/95 border-blue-200' : 'bg-blue-900/20 border-blue-800/30'" class="sticky top-[var(--header-height)] z-40 border-b backdrop-blur-md animate-slide-up-fade">
48474
+ <div class="max-w-7xl mx-auto px-6 sm:px-8 py-3">
48475
+ <div class="flex items-center justify-between gap-4">
48476
+ <div class="flex items-center gap-3 flex-1 min-w-0">
48477
+ <svg [ngClass]="isLightMode() ? 'text-blue-600' : 'text-blue-400'" class="w-5 h-5 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
48478
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path>
48479
+ </svg>
48480
+ <div class="flex items-center gap-2 flex-1 min-w-0">
48481
+ <span [ngClass]="isLightMode() ? 'text-blue-900' : 'text-blue-100'" class="text-sm font-medium">Showing:</span>
48482
+ <span [ngClass]="isLightMode() ? 'text-blue-700' : 'text-blue-300'" class="text-sm font-semibold truncate">
48483
+ {{ searchService.activeSearchResult()!.title }}
48484
+ </span>
48485
+ <span [ngClass]="isLightMode() ? 'bg-blue-100 text-blue-700 border-blue-200' : 'bg-blue-800/50 text-blue-300 border-blue-700/50'" class="px-2 py-0.5 rounded text-xs font-medium uppercase border flex-shrink-0">
48486
+ {{ searchService.activeSearchResult()!.type }}
48487
+ </span>
48488
+ </div>
48489
+ </div>
48490
+ <button
48491
+ (click)="clearSearchResult(); $event.stopPropagation()"
48492
+ [ngClass]="isLightMode() ? 'text-blue-600 hover:text-blue-800 hover:bg-blue-100' : 'text-blue-400 hover:text-blue-200 hover:bg-blue-800/50'"
48493
+ class="p-2 rounded-lg transition-colors flex-shrink-0"
48494
+ title="Clear search">
48495
+ <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
48496
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path>
48497
+ </svg>
48498
+ </button>
48499
+ </div>
48500
+ </div>
48501
+ </div>
48502
+ }
48503
+
48504
+ <!-- Floating Table of Contents -->
48505
+ @if (!isSimplifiedView()) {
48506
+ <symphiq-floating-toc
48507
+ [sections]="tocSections()"
48508
+ [viewMode]="isLightMode() ? ViewModeEnum.LIGHT : ViewModeEnum.DARK"
48509
+ [embedded]="embedded()"
48510
+ [scrollElement]="scrollElement() ?? undefined"
48511
+ />
48512
+ }
48513
+
48514
+ <!-- Quick Navigation Dots -->
48515
+ @if (!isSimplifiedView()) {
48516
+ <div class="fixed right-6 top-1/2 -translate-y-1/2 z-40 hidden xl:flex flex-col gap-4">
48517
+ @if (showOverallPerformance()) {
48518
+ <button
48519
+ (click)="scrollToTop()"
48520
+ [libSymphiqTooltip]="'Scroll to Top'"
48521
+ [tooltipPosition]="'left'"
48522
+ [ngClass]="isLightMode() ? 'bg-slate-300 hover:bg-blue-500' : 'bg-slate-600 hover:bg-blue-400'"
48523
+ class="w-3 h-3 rounded-full transition-all duration-200 hover:scale-150 active:scale-100 cursor-pointer">
48524
+ </button>
48525
+ }
48526
+ @if (showKeyInsights()) {
48527
+ <button
48528
+ (click)="scrollToSection('section-insights')"
48529
+ [libSymphiqTooltip]="'Key Insights'"
48530
+ [tooltipPosition]="'left'"
48531
+ [ngClass]="isLightMode() ? 'bg-slate-300 hover:bg-blue-500' : 'bg-slate-600 hover:bg-blue-400'"
48532
+ class="w-3 h-3 rounded-full transition-all duration-200 hover:scale-150 active:scale-100 cursor-pointer">
48533
+ </button>
48534
+ }
48535
+ @if (showPerformanceMetrics()) {
48536
+ <button
48537
+ (click)="scrollToSection('section-metrics')"
48538
+ [libSymphiqTooltip]="'Performance Metrics'"
48539
+ [tooltipPosition]="'left'"
48540
+ [ngClass]="isLightMode() ? 'bg-slate-300 hover:bg-blue-500' : 'bg-slate-600 hover:bg-blue-400'"
48541
+ class="w-3 h-3 rounded-full transition-all duration-200 hover:scale-150 active:scale-100 cursor-pointer">
48542
+ </button>
48543
+ }
48544
+ @if (showPerformanceBreakdowns()) {
48545
+ <button
48546
+ (click)="scrollToSection('section-breakdowns')"
48547
+ [libSymphiqTooltip]="'Performance Breakdowns'"
48548
+ [tooltipPosition]="'left'"
48549
+ [ngClass]="isLightMode() ? 'bg-slate-300 hover:bg-blue-500' : 'bg-slate-600 hover:bg-blue-400'"
48550
+ class="w-3 h-3 rounded-full transition-all duration-200 hover:scale-150 active:scale-100 cursor-pointer">
48551
+ </button>
48552
+ }
48553
+ @if (showCompetitiveIntelligence()) {
48554
+ <button
48555
+ (click)="scrollToSection('section-competitive')"
48556
+ [libSymphiqTooltip]="'Competitive Intelligence'"
48557
+ [tooltipPosition]="'left'"
48558
+ [ngClass]="isLightMode() ? 'bg-slate-300 hover:bg-indigo-500' : 'bg-slate-600 hover:bg-indigo-400'"
48559
+ class="w-3 h-3 rounded-full transition-all duration-200 hover:scale-150 active:scale-100 cursor-pointer">
48560
+ </button>
48561
+ }
48562
+ </div>
48563
+ }
48564
+
48565
+ @if (isContentGenerating()) {
48566
+ <!-- Journey Progress Banner (always show when not onboarded) -->
48567
+ @if (!isOnboarded()) {
48568
+ <symphiq-journey-progress-indicator
48569
+ [viewMode]="isLightMode() ? ViewModeEnum.LIGHT : ViewModeEnum.DARK"
48570
+ [currentStepId]="JourneyStepIdEnum.FUNNEL_ANALYSIS"
48571
+ [showNextStepAction]="false"
48572
+ [forDemo]="forDemo()"
48573
+ [maxAccessibleStepId]="maxAccessibleStepId()"
48574
+ (stepClick)="stepClick.emit($event)"
48575
+ (nextStepClick)="nextStepClick.emit()"
48576
+ />
48577
+ }
48578
+
48579
+ <!-- Content Generation Progress Component -->
48580
+ <symphiq-content-generation-progress-with-confetti
48581
+ [viewMode]="isLightMode() ? ViewModeEnum.LIGHT : ViewModeEnum.DARK"
48582
+ [itemStatus]="itemStatus()"
48583
+ [funnelAnalysis]="funnelAnalysis()"
48584
+ [confettiIntensity]="'celebration'"
48585
+ [title]="'We are generating a new Funnel Analysis for you.'"
48586
+ [subtitle]="'It will appear here when ready. You can check back later as this will take a few minutes to complete.'"
48587
+ />
48588
+ } @else if (isSimplifiedView()) {
48589
+ <!-- Journey Progress Banner -->
48590
+ @if (!isOnboarded()) {
48591
+ <symphiq-journey-progress-indicator
48592
+ [viewMode]="isLightMode() ? ViewModeEnum.LIGHT : ViewModeEnum.DARK"
48593
+ [currentStepId]="JourneyStepIdEnum.FUNNEL_ANALYSIS"
48594
+ [showNextStepAction]="true"
48595
+ [forDemo]="forDemo()"
48596
+ [maxAccessibleStepId]="maxAccessibleStepId()"
48597
+ (stepClick)="stepClick.emit($event)"
48598
+ (nextStepClick)="nextStepClick.emit()"
48599
+ />
48600
+ }
48601
+
48602
+ <main class="max-w-7xl mx-auto px-6 sm:px-8">
48603
+ <div class="pt-8 sm:pt-12 pb-16 sm:pb-24">
48604
+ <!-- Welcome Banner -->
48605
+ <div class="mb-8">
48606
+ <symphiq-funnel-welcome-banner
48607
+ [viewMode]="isLightMode() ? ViewModeEnum.LIGHT : ViewModeEnum.DARK"
48608
+ [isOnboarded]="isOnboarded()"
48609
+ />
48610
+ </div>
48611
+
48612
+ <!-- Key Insights Section -->
48613
+ @if (showKeyInsights()) {
48614
+ <section id="section-insights" class="mb-8">
48615
+ <div class="flex items-center justify-between mb-6">
48616
+ <div class="flex items-center gap-3">
48617
+ <div [ngClass]="isLightMode() ? 'border-l-4 border-blue-500' : 'border-l-4 border-blue-400'" class="pl-4">
48618
+ <div class="flex items-center gap-3">
48619
+ <svg class="w-6 h-6" [ngClass]="isLightMode() ? 'text-blue-500' : 'text-blue-400'" fill="none" stroke="currentColor" viewBox="0 0 24 24">
48620
+ <path 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"></path>
48621
+ </svg>
48622
+ <h2 [class]="sectionTitleClass()" class="text-xl sm:text-2xl font-bold">Key Insights</h2>
48623
+ </div>
48624
+ </div>
48625
+ </div>
48626
+ <span [class]="metaLabelClass()" class="text-xs sm:text-sm">{{ insights().length }} insights</span>
48627
+ </div>
48628
+
48629
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-6">
48630
+ @for (insight of insights(); track $index) {
48631
+ <symphiq-funnel-analysis-insight-card
48632
+ [insight]="insight"
48633
+ [allMetrics]="allMetrics()"
48634
+ [charts]="chartsForInsight(insight)"
48635
+ [allCharts]="allCharts()"
48636
+ [allBusinessInsights]="allBusinessInsights()"
48637
+ [isLightMode]="isLightMode()"
48638
+ [viewMode]="viewMode()"
48639
+ [isCompactMode]="true"
48640
+ [isLoading]="isDataLoading()" />
48641
+ }
48642
+ </div>
48643
+ </section>
48644
+ }
48645
+
48646
+ <!-- Supporting Data Section -->
48647
+ <symphiq-collapsible-funnel-section-group
48648
+ [viewMode]="isLightMode() ? ViewModeEnum.LIGHT : ViewModeEnum.DARK">
48649
+ <!-- Overall Performance Slot -->
48650
+ <div slot="overall-performance">
48651
+ @if (showOverallPerformance()) {
48652
+ <div class="p-6">
48653
+ @if (isDataLoading()) {
48654
+ <symphiq-skeleton-loader [width]="'100%'" [height]="'200px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48655
+ } @else {
48656
+ <symphiq-funnel-analysis-overall-assessment
48657
+ [assessment]="performanceOverview().overallAssessment || {}"
48658
+ [revenueMetric]="revenueMetric()"
48659
+ [charts]="chartsForItem('OVERALL_ASSESSMENT')"
48660
+ [metrics]="allMetrics()"
48661
+ [isLightMode]="isLightMode()"
48662
+ [isLoading]="isOverallAssessmentLoading()"
48663
+ [isCompactMode]="true"
48664
+ [isChartsLoading]="areChartsLoading()"
48665
+ [strengths]="strengths()"
48666
+ [weaknesses]="weaknesses()"
48667
+ [currencySymbol]="currencySymbol()"
48668
+ (scrollToSection)="scrollToSection($event)" />
48669
+ }
48670
+ </div>
48671
+ }
48672
+ </div>
48673
+
48674
+ <!-- Performance Metrics Slot -->
48675
+ <div slot="performance-metrics">
48676
+ @if (showPerformanceMetrics()) {
48677
+ <div class="p-6 space-y-8">
48678
+ @for (funnelGroup of groupedMetrics(); track $index; let groupIdx = $index) {
48679
+ <!-- Funnel Stage Metric (Full Width) -->
48680
+ <div class="w-full">
48681
+ <symphiq-funnel-analysis-metric-card
48682
+ [metric]="funnelGroup.funnelMetric"
48683
+ [insights]="insights()"
48684
+ [charts]="chartsForMetric(funnelGroup.funnelMetric)"
48685
+ [allCharts]="allCharts()"
48686
+ [analysis]="analysisData()"
48687
+ [isLightMode]="isLightMode()"
48688
+ [viewMode]="viewMode()"
48689
+ [isCompactMode]="true"
48690
+ [currencySymbol]="currencySymbol()" />
48691
+ </div>
48692
+ <!-- Related Metrics (Grid Layout) -->
48693
+ @if (funnelGroup.relatedMetrics.length > 0) {
48694
+ <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 mt-4">
48695
+ @for (metric of funnelGroup.relatedMetrics; track $index) {
48696
+ <symphiq-funnel-analysis-metric-card
48697
+ [metric]="metric"
48698
+ [insights]="insights()"
48699
+ [charts]="chartsForMetric(metric)"
48700
+ [allCharts]="allCharts()"
48701
+ [analysis]="analysisData()"
48702
+ [isLightMode]="isLightMode()"
48703
+ [viewMode]="viewMode()"
48704
+ [isCompactMode]="true"
48705
+ [currencySymbol]="currencySymbol()" />
48706
+ }
48707
+ </div>
48708
+ }
48709
+ }
48710
+ </div>
48711
+ }
48712
+ </div>
48713
+
48714
+ <!-- Performance Breakdowns Slot -->
48715
+ <div slot="performance-breakdowns">
48716
+ @if (showPerformanceBreakdowns()) {
48717
+ <div class="p-6 space-y-8">
48718
+ @for (breakdown of breakdowns(); track $index) {
48719
+ <symphiq-funnel-analysis-breakdown-section
48720
+ [breakdown]="breakdown"
48721
+ [charts]="chartsForBreakdown(breakdown)"
48722
+ [isLightMode]="isLightMode()"
48723
+ [isLoading]="isDataLoading()"
48724
+ [isCompactMode]="true"
48725
+ [currencySymbol]="currencySymbol()" />
48726
+ }
48727
+ </div>
48728
+ }
48729
+ </div>
48730
+
48731
+ <!-- Competitive Intelligence Slot -->
48732
+ <div slot="competitive-intelligence">
48733
+ @if (showCompetitiveIntelligence()) {
48734
+ <div class="p-6">
48735
+ <symphiq-competitive-intelligence-view
48736
+ [metrics]="competitiveMetrics()"
48737
+ [allCharts]="allCharts()"
48738
+ [isLightMode]="isLightMode()"
48739
+ [isCompactMode]="true"
48740
+ [competitiveBenchmark]="performanceOverview().overallAssessment?.competitiveBenchmark"
48741
+ [currencySymbol]="currencySymbol()" />
48742
+ </div>
48743
+ }
48744
+ </div>
48745
+ </symphiq-collapsible-funnel-section-group>
48746
+ </div>
48747
+ </main>
48748
+ } @else {
48749
+ <main class="max-w-7xl mx-auto px-6 sm:px-8">
48750
+ <div class="pt-8 sm:pt-12 pb-16 sm:pb-24">
48751
+ @if (showOverallPerformance()) {
48752
+ <div id="section-overall" class="animate-fade-in-up mb-20 sm:mb-28" style="animation-delay: 0.1s;">
48753
+ @if (isDataLoading()) {
48754
+ <!-- Overall Assessment Skeleton -->
48755
+ <div [ngClass]="isLightMode() ? 'bg-white border-slate-200' : 'bg-slate-800 border-slate-700'" class="rounded-xl border p-6 sm:p-8 animate-pulse">
48756
+ <div class="space-y-6">
48757
+ <!-- Header -->
48758
+ <div class="flex items-center gap-3">
48759
+ <symphiq-skeleton-loader [width]="'48px'" [height]="'48px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48760
+ <div class="flex-1 space-y-2">
48761
+ <symphiq-skeleton-loader [width]="'40%'" [height]="'32px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48762
+ <symphiq-skeleton-loader [width]="'60%'" [height]="'20px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48763
+ </div>
48764
+ </div>
48765
+ <!-- Summary text -->
48766
+ <div class="space-y-2">
48767
+ <symphiq-skeleton-loader [width]="'100%'" [height]="'18px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48768
+ <symphiq-skeleton-loader [width]="'95%'" [height]="'18px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48769
+ <symphiq-skeleton-loader [width]="'90%'" [height]="'18px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48770
+ </div>
48771
+ <!-- Chart placeholder -->
48772
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-4 mt-6">
48773
+ <symphiq-skeleton-loader [width]="'100%'" [height]="'200px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48774
+ <symphiq-skeleton-loader [width]="'100%'" [height]="'200px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48775
+ </div>
48776
+ </div>
48777
+ </div>
48778
+ } @else {
48779
+ <symphiq-funnel-analysis-overall-assessment
48780
+ [assessment]="performanceOverview().overallAssessment || {}"
48781
+ [revenueMetric]="revenueMetric()"
48782
+ [charts]="chartsForItem('OVERALL_ASSESSMENT')"
48783
+ [metrics]="allMetrics()"
48784
+ [isLightMode]="isLightMode()"
48785
+ [isLoading]="isOverallAssessmentLoading()"
48786
+ [isCompactMode]="viewModeService.isCompact()"
48787
+ [isChartsLoading]="areChartsLoading()"
48788
+ [strengths]="strengths()"
48789
+ [weaknesses]="weaknesses()"
48790
+ [currencySymbol]="currencySymbol()"
48791
+ (scrollToSection)="scrollToSection($event)" />
48792
+ }
48793
+ </div>
48794
+ }
48795
+
48796
+ @if (showKeyInsights()) {
48797
+ @if (selectedSectionFilter() === 'ALL') {
48798
+ <!-- Section Divider -->
48799
+ <symphiq-section-divider [viewMode]="viewMode()" animationDelay="0.15s"></symphiq-section-divider>
48800
+ }
48801
+
48802
+ <section id="section-insights" class="relative">
48803
+ <!-- Background Pattern -->
48804
+ <div class="absolute inset-0 -mx-6 sm:-mx-8 -mt-8 rounded-3xl opacity-30 backdrop-blur-sm" [ngClass]="isLightMode() ? 'bg-gradient-to-br from-blue-50/50 to-transparent' : 'bg-gradient-to-br from-blue-950/20 to-transparent'" style="mask-image: radial-gradient(ellipse at center, black 0%, transparent 70%);"></div>
48805
+ <div class="relative">
48806
+ <div class="flex items-center justify-between mb-6 sm:mb-8 animate-fade-in" style="animation-delay: 0.2s;">
48807
+ <div class="flex items-center gap-3">
48808
+ <div [ngClass]="isLightMode() ? 'border-l-4 border-blue-500' : 'border-l-4 border-blue-400'" class="pl-4">
48809
+ <div class="flex items-center gap-3">
48810
+ <svg class="w-6 h-6" [ngClass]="isLightMode() ? 'text-blue-500' : 'text-blue-400'" fill="none" stroke="currentColor" viewBox="0 0 24 24">
48811
+ <path 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"></path>
48812
+ </svg>
48813
+ <h2 [class]="sectionTitleClass()" class="text-xl sm:text-2xl font-bold">Key Insights</h2>
48814
+ </div>
48815
+ </div>
48816
+ </div>
48817
+ <span [class]="metaLabelClass()" class="text-xs sm:text-sm">{{ insights().length }} insights</span>
48818
+ </div>
48819
+ <!-- Masonry Layout for Insights -->
48820
+ @if (isDataLoading() || (viewModeService.isExpanded() && viewModeService.getIsTransitioning())) {
48821
+ <!-- Skeleton loaders during data loading or transition to expanded view -->
48822
+ <div class="masonry-grid">
48823
+ @for (i of [1,2,3,4,5,6]; track i) {
48824
+ <div [ngClass]="isLightMode() ? 'bg-white border-slate-200' : 'bg-slate-800 border-slate-700'" class="rounded-xl border p-6 animate-pulse min-h-[280px]">
48825
+ <div class="space-y-4">
48826
+ <div class="flex items-center gap-3 mb-4">
48827
+ <symphiq-skeleton-loader [width]="'48px'" [height]="'48px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48828
+ <symphiq-skeleton-loader [width]="'60%'" [height]="'28px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48829
+ </div>
48830
+ <symphiq-skeleton-loader [width]="'100%'" [height]="'18px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48831
+ <symphiq-skeleton-loader [width]="'95%'" [height]="'18px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48832
+ <symphiq-skeleton-loader [width]="'85%'" [height]="'18px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48833
+ <div class="mt-6 space-y-2">
48834
+ <symphiq-skeleton-loader [width]="'40%'" [height]="'14px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48835
+ <symphiq-skeleton-loader [width]="'50%'" [height]="'36px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48836
+ </div>
48837
+ <div class="flex gap-2 mt-4">
48838
+ <symphiq-skeleton-loader [width]="'80px'" [height]="'28px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48839
+ <symphiq-skeleton-loader [width]="'80px'" [height]="'28px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48840
+ </div>
48841
+ </div>
48842
+ </div>
48843
+ }
48844
+ </div>
48845
+ } @else if (viewModeService.isExpanded()) {
48846
+ <div class="masonry-grid">
48847
+ @for (insight of insights(); track $index) {
48848
+ <div
48849
+ [class]="getInsightCardClass(insight)"
48850
+ class="animate-fade-in-up"
48851
+ [style.animation-delay]="(0.3 + $index * 0.1) + 's'"
48852
+ [libSymphiqSearchHighlight]="searchService.highlightedResultId()"
48853
+ [highlightId]="'insight-' + $index">
48854
+ <symphiq-funnel-analysis-insight-card
48855
+ [insight]="insight"
48856
+ [allMetrics]="allMetrics()"
48857
+ [charts]="chartsForInsight(insight)"
48858
+ [allCharts]="allCharts()"
48859
+ [allBusinessInsights]="allBusinessInsights()"
48860
+ [isLightMode]="isLightMode()"
48861
+ [viewMode]="viewMode()"
48862
+ [isCompactMode]="false" />
48863
+ </div>
48864
+ }
48865
+ </div>
48866
+ } @else {
48867
+ <!-- Compact Grid for Insights -->
48868
+ <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
48869
+ @for (insight of insights(); track $index) {
48870
+ <div class="animate-fade-in-up" [style.animation-delay]="(0.3 + $index * 0.1) + 's'"
48871
+ [libSymphiqSearchHighlight]="searchService.highlightedResultId()"
48872
+ [highlightId]="'insight-' + $index">
48873
+ <symphiq-funnel-analysis-insight-card
48874
+ [insight]="insight"
48875
+ [allMetrics]="allMetrics()"
48876
+ [charts]="chartsForInsight(insight)"
48877
+ [allCharts]="allCharts()"
48878
+ [allBusinessInsights]="allBusinessInsights()"
48879
+ [isLightMode]="isLightMode()"
48880
+ [viewMode]="viewMode()"
48881
+ [isCompactMode]="true" />
48882
+ </div>
48883
+ }
48884
+ </div>
48885
+ }
48886
+ </div>
48887
+ </section>
48888
+ }
48889
+
48890
+ @if (showPerformanceMetrics()) {
48891
+ @if (selectedSectionFilter() === 'ALL') {
48892
+ <!-- Section Divider -->
48893
+ <div class="relative mb-14 sm:mb-24 mt-24 sm:mt-32 animate-fade-in" style="animation-delay: 0.35s;">
48894
+ <div class="absolute inset-0 flex items-center" aria-hidden="true">
48895
+ <div class="w-full h-px bg-gradient-to-r" [ngClass]="isLightMode() ? 'from-transparent via-emerald-500/30 to-transparent' : 'from-transparent via-emerald-400/20 to-transparent'"></div>
48896
+ </div>
48897
+ <div class="relative flex justify-center">
48898
+ <div class="px-4 py-2 rounded-full" [ngClass]="isLightMode() ? 'bg-gradient-to-br from-emerald-50 to-teal-50 border border-emerald-200/50 shadow-lg shadow-emerald-500/10' : 'bg-gradient-to-br from-slate-900 to-slate-800 border border-emerald-500/20 shadow-lg shadow-emerald-500/5'">
48899
+ <svg class="w-5 h-5" [ngClass]="isLightMode() ? 'text-emerald-500' : 'text-emerald-400'" fill="none" stroke="currentColor" viewBox="0 0 24 24">
48900
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 12l3-3 3 3 4-4M8 21l4-4 4 4M3 4h18M4 4h16v12a1 1 0 01-1 1H5a1 1 0 01-1-1V4z"></path>
48901
+ </svg>
48902
+ </div>
48903
+ </div>
48904
+ </div>
48905
+ }
48906
+
48907
+ <section id="section-metrics" class="relative">
48908
+ <!-- Background Pattern -->
48909
+ <div class="absolute inset-0 -mx-6 sm:-mx-8 -mt-8 rounded-3xl opacity-30 backdrop-blur-sm" [ngClass]="isLightMode() ? 'bg-gradient-to-tl from-emerald-50/50 to-transparent' : 'bg-gradient-to-tl from-emerald-950/20 to-transparent'" style="mask-image: radial-gradient(ellipse at top right, black 0%, transparent 70%);"></div>
48910
+ <div class="relative">
48911
+ <div class="flex flex-col gap-4 mb-6 sm:mb-8 animate-fade-in" style="animation-delay: 0.4s;">
48912
+ <div class="flex items-center justify-between">
48913
+ <div class="flex items-center gap-3">
48914
+ <div [ngClass]="isLightMode() ? 'border-l-4 border-emerald-500' : 'border-l-4 border-emerald-400'" class="pl-4">
48915
+ <div class="flex items-center gap-3">
48916
+ <svg class="w-6 h-6" [ngClass]="isLightMode() ? 'text-emerald-500' : 'text-emerald-400'" fill="none" stroke="currentColor" viewBox="0 0 24 24">
48917
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"></path>
48918
+ </svg>
48919
+ <h2 [class]="sectionTitleClass()" class="text-xl sm:text-2xl font-bold">Performance Metrics</h2>
48920
+ </div>
48921
+ </div>
48922
+ </div>
48923
+ <!-- Desktop controls -->
48924
+ <div class="hidden sm:flex gap-2 sm:gap-3 items-center relative">
48925
+ @if (isCategoryTransitioning()) {
48926
+ <div class="absolute -right-2 top-1/2 -translate-y-1/2 z-10">
48927
+ <div class="w-4 h-4 border-2 border-blue-500/30 border-t-blue-500 rounded-full animate-spin"></div>
48928
+ </div>
48929
+ }
48930
+ <select
48931
+ [ngModel]="selectedCategory()"
48932
+ (ngModelChange)="changeCategoryFilter($event)"
48933
+ [class]="selectClass()"
48934
+ [class.opacity-70]="isCategoryTransitioning()"
48935
+ class="px-3 sm:px-4 py-2 rounded-lg text-xs sm:text-sm font-medium focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent transition-all duration-200 cursor-pointer">
48936
+ @for (cat of categories; track cat.value) {
48937
+ @if (cat.divider) {
48938
+ <option [value]="cat.value" disabled class="font-semibold">{{ cat.label }}</option>
48939
+ } @else {
48940
+ <option [value]="cat.value">{{ cat.label }}</option>
48941
+ }
48942
+ }
48943
+ </select>
48944
+ <button
48945
+ (click)="toggleSortOrder()"
48946
+ [class]="sortButtonClass()"
48947
+ class="px-3 sm:px-4 py-2 rounded-lg text-xs sm:text-sm font-medium focus:outline-none focus:ring-2 focus:ring-blue-500 transition-all flex items-center gap-2 cursor-pointer hover:scale-105 active:scale-95"
48948
+ [title]="reverseSortOrder() ? 'Sort: Revenue to Views' : 'Sort: Views to Revenue'">
48949
+ <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
48950
+ @if (!reverseSortOrder()) {
48951
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 4h13M3 8h9m-9 4h6m4 0l4-4m0 0l4 4m-4-4v12"></path>
48952
+ }
48953
+ @if (reverseSortOrder()) {
48954
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 4h13M3 8h9m-9 4h9m5-4v12m0 0l-4-4m4 4l4-4"></path>
48955
+ }
48956
+ </svg>
48957
+ <span>Sort</span>
48958
+ </button>
48959
+ </div>
48960
+ </div>
48961
+
48962
+ <!-- Mobile horizontal scrolling category pills -->
48963
+ <div class="sm:hidden -mx-6 px-6">
48964
+ <div class="flex gap-2 overflow-x-auto pb-2 snap-x snap-mandatory scrollbar-hide">
48965
+ @for (cat of categories; track cat.value) {
48966
+ @if (!cat.divider) {
48967
+ <button
48968
+ (click)="changeCategoryFilter(cat.value)"
48969
+ [ngClass]="getCategoryPillClass(cat.value)"
48970
+ [class.opacity-70]="isCategoryTransitioning()"
48971
+ class="px-4 py-2 rounded-full text-xs font-medium whitespace-nowrap transition-all duration-200 flex-shrink-0 snap-start active:scale-95">
48972
+ {{ cat.label }}
48973
+ </button>
48974
+ }
48975
+ }
48976
+ </div>
48977
+ </div>
48978
+ </div>
48979
+ @if (isDataLoading()) {
48980
+ <!-- Metrics Skeleton -->
48981
+ <div class="space-y-8 sm:space-y-10">
48982
+ @for (i of [1,2,3]; track i) {
48983
+ <div [ngClass]="isLightMode() ? 'bg-white border-slate-200' : 'bg-slate-800 border-slate-700'" class="rounded-xl border p-6 animate-pulse">
48984
+ <div class="flex items-center justify-between mb-4">
48985
+ <div class="flex items-center gap-3">
48986
+ <symphiq-skeleton-loader [width]="'40px'" [height]="'40px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48987
+ <div class="space-y-2">
48988
+ <symphiq-skeleton-loader [width]="'150px'" [height]="'24px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48989
+ <symphiq-skeleton-loader [width]="'100px'" [height]="'16px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48990
+ </div>
48991
+ </div>
48992
+ <symphiq-skeleton-loader [width]="'80px'" [height]="'36px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48993
+ </div>
48994
+ <div class="grid grid-cols-2 md:grid-cols-4 gap-4 mt-6">
48995
+ @for (j of [1,2,3,4]; track j) {
48996
+ <symphiq-skeleton-loader [width]="'100%'" [height]="'120px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
48997
+ }
48998
+ </div>
48999
+ </div>
49000
+ }
49001
+ </div>
49002
+ } @else {
49003
+ <div class="space-y-8 sm:space-y-10" [class.animate-content-change]="isCategoryTransitioning()" [class.transition-opacity-slow]="isCategoryTransitioning()">
49004
+ @for (funnelGroup of groupedMetrics(); track $index; let groupIdx = $index) {
49005
+ <div class="w-full animate-fade-in-up" [style.animation-delay]="(0.5 + groupIdx * 0.15) + 's'"
49006
+ [libSymphiqSearchHighlight]="searchService.highlightedResultId()"
49007
+ [highlightId]="'metric-' + groupIdx">
49008
+ <symphiq-funnel-analysis-metric-card
49009
+ [metric]="funnelGroup.funnelMetric"
49010
+ [insights]="insights()"
49011
+ [charts]="chartsForMetric(funnelGroup.funnelMetric)"
49012
+ [allCharts]="allCharts()"
49013
+ [analysis]="analysisData()"
49014
+ [isLightMode]="isLightMode()"
49015
+ [viewMode]="viewMode()"
49016
+ [isCompactMode]="viewModeService.isCompact()"
49017
+ [currencySymbol]="currencySymbol()" />
49018
+ </div>
49019
+ @if (funnelGroup.relatedMetrics.length > 0) {
49020
+ <!-- Bento Box Grid Layout -->
49021
+ @if (viewModeService.isExpanded()) {
49022
+ <div class="bento-grid mt-4">
49023
+ @for (metric of funnelGroup.relatedMetrics; track $index; let metricIdx = $index) {
49024
+ <div
49025
+ [class]="getBentoCardClass(metric, metricIdx)"
49026
+ class="animate-fade-in-up"
49027
+ [style.animation-delay]="(0.6 + groupIdx * 0.15 + metricIdx * 0.08) + 's'">
49028
+ <symphiq-funnel-analysis-metric-card
49029
+ class="h-full"
49030
+ [metric]="metric"
49031
+ [insights]="insights()"
49032
+ [charts]="chartsForMetric(metric)"
49033
+ [allCharts]="allCharts()"
49034
+ [analysis]="analysisData()"
49035
+ [isLightMode]="isLightMode()"
49036
+ [viewMode]="viewMode()"
49037
+ [isCompactMode]="false"
49038
+ [currencySymbol]="currencySymbol()" />
49039
+ </div>
49040
+ }
49041
+ </div>
49042
+ } @else if (!viewModeService.isExpanded()) {
49043
+ <!-- Compact Grid Layout -->
49044
+ <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-3 sm:gap-4 mt-4">
49045
+ @for (metric of funnelGroup.relatedMetrics; track $index; let metricIdx = $index) {
49046
+ <div class="animate-fade-in-up" [style.animation-delay]="(0.6 + groupIdx * 0.15 + metricIdx * 0.08) + 's'">
49047
+ <symphiq-funnel-analysis-metric-card
49048
+ [metric]="metric"
49049
+ [insights]="insights()"
49050
+ [charts]="chartsForMetric(metric)"
49051
+ [allCharts]="allCharts()"
49052
+ [analysis]="analysisData()"
49053
+ [isLightMode]="isLightMode()"
49054
+ [viewMode]="viewMode()"
49055
+ [isCompactMode]="true"
49056
+ [currencySymbol]="currencySymbol()" />
49057
+ </div>
49058
+ }
49059
+ </div>
49060
+ } @else {
49061
+ <!-- Skeleton loaders during transition to expanded view -->
49062
+ <div class="bento-grid mt-4">
49063
+ @for (i of [1,2,3,4]; track i) {
49064
+ <div [ngClass]="isLightMode() ? 'bg-white border-slate-200' : 'bg-slate-800 border-slate-700'" class="rounded-xl border p-6 animate-pulse min-h-[240px]">
49065
+ <div class="space-y-4">
49066
+ <div class="flex items-center justify-between">
49067
+ <symphiq-skeleton-loader [width]="'60%'" [height]="'22px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
49068
+ <symphiq-skeleton-loader [width]="'60px'" [height]="'24px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
49069
+ </div>
49070
+ <symphiq-skeleton-loader [width]="'45%'" [height]="'42px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
49071
+ <div class="flex items-center gap-3 mt-4">
49072
+ <symphiq-skeleton-loader [width]="'24px'" [height]="'24px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
49073
+ <symphiq-skeleton-loader [width]="'30%'" [height]="'20px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
49074
+ </div>
49075
+ <symphiq-skeleton-loader [width]="'100%'" [height]="'16px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
49076
+ <symphiq-skeleton-loader [width]="'85%'" [height]="'16px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
49077
+ <div class="mt-4">
49078
+ <symphiq-skeleton-loader [width]="'100%'" [height]="'120px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
49079
+ </div>
49080
+ </div>
49081
+ </div>
49082
+ }
49083
+ </div>
49084
+ }
49085
+ }
49086
+ } @empty {
49087
+ <div [ngClass]="isLightMode() ? 'bg-slate-50 border-slate-200' : 'bg-slate-800/50 border-slate-700'" class="rounded-xl p-12 border text-center animate-fade-in">
49088
+ <svg class="w-16 h-16 mx-auto mb-4" [ngClass]="isLightMode() ? 'text-slate-300' : 'text-slate-600'" fill="none" stroke="currentColor" viewBox="0 0 24 24">
49089
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"></path>
49090
+ </svg>
49091
+ <h3 [ngClass]="isLightMode() ? 'text-slate-900' : 'text-white'" class="text-lg font-semibold mb-2">No Metrics Found</h3>
49092
+ <p [ngClass]="isLightMode() ? 'text-slate-600' : 'text-slate-400'" class="text-sm">No performance metrics match your current filter selection. Try adjusting your filters to see more results.</p>
49093
+ </div>
49094
+ }
49095
+ </div>
49096
+ }
49097
+ </div>
49098
+ </section>
49099
+ }
49100
+
49101
+ @if (showPerformanceBreakdowns()) {
49102
+ @if (selectedSectionFilter() === 'ALL') {
49103
+ <!-- Section Divider -->
49104
+ <div class="mt-28 sm:mt-36">
49105
+ <symphiq-section-divider [viewMode]="viewMode()" animationDelay="0.65s"></symphiq-section-divider>
49106
+ </div>
49107
+ }
49108
+
49109
+ <section id="section-breakdowns" class="relative">
49110
+ <!-- Background Pattern -->
49111
+ <div class="absolute inset-0 -mx-6 sm:-mx-8 -mt-8 rounded-3xl opacity-30 backdrop-blur-sm" [ngClass]="isLightMode() ? 'bg-gradient-to-tr from-purple-50/50 to-transparent' : 'bg-gradient-to-tr from-purple-950/20 to-transparent'" style="mask-image: radial-gradient(ellipse at bottom left, black 0%, transparent 70%);"></div>
49112
+ <div class="relative">
49113
+ <div class="flex flex-col sm:flex-row sm:items-center justify-between gap-4 mb-6 sm:mb-8 animate-fade-in" style="animation-delay: 0.7s;">
49114
+ <div [ngClass]="isLightMode() ? 'border-l-4 border-purple-500' : 'border-l-4 border-purple-400'" class="pl-4">
49115
+ <div class="flex items-center gap-3">
49116
+ <svg class="w-6 h-6" [ngClass]="isLightMode() ? 'text-purple-500' : 'text-purple-400'" fill="none" stroke="currentColor" viewBox="0 0 24 24">
49117
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z"></path>
49118
+ </svg>
49119
+ <h2 [class]="sectionTitleClass()" class="text-xl sm:text-2xl font-bold">Performance Breakdowns</h2>
49120
+ </div>
49121
+ </div>
49122
+ <div (click)="$event.stopPropagation()" (mousedown)="$event.stopPropagation()" (pointerdown)="$event.stopPropagation()" class="relative inline-block">
49123
+ @if (isBreakdownTransitioning()) {
49124
+ <div class="absolute -right-2 top-1/2 -translate-y-1/2 z-10">
49125
+ <div class="w-4 h-4 border-2 border-purple-500/30 border-t-purple-500 rounded-full animate-spin"></div>
49126
+ </div>
49127
+ }
49128
+ <select
49129
+ [ngModel]="selectedBreakdownFilter()"
49130
+ (ngModelChange)="changeBreakdownFilter($event)"
49131
+ [ngClass]="isLightMode()
49132
+ ? 'bg-white border-slate-300 text-slate-900 hover:border-blue-400 focus:border-blue-500'
49133
+ : 'bg-slate-700 border-slate-600 text-white hover:border-slate-500 focus:border-blue-500'"
49134
+ [class.opacity-70]="isBreakdownTransitioning()"
49135
+ class="px-3 py-2 text-sm rounded-lg border transition-all duration-200 cursor-pointer focus:ring-2 focus:ring-blue-500 focus:outline-none">
49136
+ @for (filter of breakdownFilters; track filter.value) {
49137
+ @if (filter.divider) {
49138
+ <option [value]="filter.value" disabled class="font-semibold">{{ filter.label }}</option>
49139
+ } @else {
49140
+ <option [value]="filter.value">{{ filter.label }}</option>
49141
+ }
49142
+ }
49143
+ </select>
49144
+ </div>
49145
+ </div>
49146
+ @if (isDataLoading()) {
49147
+ <!-- Breakdowns Skeleton -->
49148
+ <div class="space-y-6">
49149
+ @for (i of [1,2]; track i) {
49150
+ <div [ngClass]="isLightMode() ? 'bg-white border-slate-200' : 'bg-slate-800 border-slate-700'" class="rounded-xl border p-6 animate-pulse">
49151
+ <div class="flex items-center justify-between mb-4">
49152
+ <symphiq-skeleton-loader [width]="'200px'" [height]="'28px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
49153
+ <symphiq-skeleton-loader [width]="'100px'" [height]="'24px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
49154
+ </div>
49155
+ <div class="space-y-3">
49156
+ @for (j of [1,2,3,4]; track j) {
49157
+ <div class="flex items-center justify-between p-3 rounded-lg" [ngClass]="isLightMode() ? 'bg-slate-50' : 'bg-slate-700/50'">
49158
+ <symphiq-skeleton-loader [width]="'150px'" [height]="'18px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
49159
+ <symphiq-skeleton-loader [width]="'80px'" [height]="'18px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
49160
+ </div>
49161
+ }
49162
+ </div>
49163
+ </div>
49164
+ }
49165
+ </div>
49166
+ } @else {
49167
+ <div class="space-y-6" [class.animate-content-change]="isBreakdownTransitioning()" [class.transition-opacity-slow]="isBreakdownTransitioning()">
49168
+ @for (breakdown of breakdowns(); track $index) {
49169
+ <div class="animate-fade-in-up" [style.animation-delay]="(0.8 + $index * 0.1) + 's'"
49170
+ [libSymphiqSearchHighlight]="searchService.highlightedResultId()"
49171
+ [highlightId]="'breakdown-' + $index">
49172
+ <symphiq-funnel-analysis-breakdown-section
49173
+ [breakdown]="breakdown"
49174
+ [charts]="chartsForBreakdown(breakdown)"
49175
+ [isLightMode]="isLightMode()"
49176
+ [isCompactMode]="viewModeService.isCompact()"
49177
+ [currencySymbol]="currencySymbol()" />
49178
+ </div>
49179
+ } @empty {
49180
+ <div [ngClass]="isLightMode() ? 'bg-slate-50 border-slate-200' : 'bg-slate-800/50 border-slate-700'" class="rounded-xl p-12 border text-center animate-fade-in">
49181
+ <svg class="w-16 h-16 mx-auto mb-4" [ngClass]="isLightMode() ? 'text-slate-300' : 'text-slate-600'" fill="none" stroke="currentColor" viewBox="0 0 24 24">
49182
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z"></path>
49183
+ </svg>
49184
+ <h3 [ngClass]="isLightMode() ? 'text-slate-900' : 'text-white'" class="text-lg font-semibold mb-2">No Breakdowns Found</h3>
49185
+ <p [ngClass]="isLightMode() ? 'text-slate-600' : 'text-slate-400'" class="text-sm">No performance breakdowns match your current filter selection. Try adjusting your filters to see more results.</p>
49186
+ </div>
49187
+ }
49188
+ </div>
49189
+ }
49190
+ </div>
49191
+ </section>
49192
+ }
49193
+
49194
+ @if (showCompetitiveIntelligence()) {
49195
+ @if (selectedSectionFilter() === 'ALL') {
49196
+ <!-- Section Divider -->
49197
+ <div class="mt-28 sm:mt-36">
49198
+ <symphiq-section-divider [viewMode]="viewMode()" animationDelay="0.85s"></symphiq-section-divider>
49199
+ </div>
49200
+ }
49201
+
49202
+ <!-- Competitive Intelligence Section -->
49203
+ <section id="section-competitive" class="relative">
49204
+ <!-- Background Pattern -->
49205
+ <div class="absolute inset-0 -mx-6 sm:-mx-8 -mt-8 rounded-3xl opacity-30 backdrop-blur-sm" [ngClass]="isLightMode() ? 'bg-gradient-to-br from-indigo-50/50 to-transparent' : 'bg-gradient-to-br from-indigo-950/20 to-transparent'" style="mask-image: radial-gradient(ellipse at center, black 0%, transparent 70%);"></div>
49206
+ <div class="relative">
49207
+ <div class="flex items-center justify-between mb-6 sm:mb-8 animate-fade-in" style="animation-delay: 0.9s;">
49208
+ <div class="flex items-center gap-3">
49209
+ <div [ngClass]="isLightMode() ? 'border-l-4 border-indigo-500' : 'border-l-4 border-indigo-400'" class="pl-4">
49210
+ <div class="flex items-center gap-3">
49211
+ <svg class="w-6 h-6" [ngClass]="isLightMode() ? 'text-indigo-500' : 'text-indigo-400'" fill="none" stroke="currentColor" viewBox="0 0 24 24">
49212
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4" />
49213
+ </svg>
49214
+ <h2 [class]="sectionTitleClass()" class="text-xl sm:text-2xl font-bold">Competitive Intelligence</h2>
49215
+ </div>
49216
+ </div>
49217
+ </div>
49218
+ <!-- Filter Dropdown -->
49219
+ <div class="hidden sm:block relative">
49220
+ @if (isCompetitiveTransitioning()) {
49221
+ <div class="absolute -right-2 top-1/2 -translate-y-1/2 z-10">
49222
+ <div class="w-4 h-4 border-2 border-indigo-500/30 border-t-indigo-500 rounded-full animate-spin"></div>
49223
+ </div>
49224
+ }
49225
+ <select
49226
+ [ngModel]="selectedCompetitiveFilter()"
49227
+ (ngModelChange)="changeCompetitiveFilter($event)"
49228
+ [class]="selectClass()"
49229
+ [class.opacity-70]="isCompetitiveTransitioning()"
49230
+ class="px-3 sm:px-4 py-2 rounded-lg text-xs sm:text-sm font-medium focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent transition-all duration-200 cursor-pointer">
49231
+ @for (filter of competitiveFilters; track filter.value) {
49232
+ @if (filter.divider) {
49233
+ <option [value]="filter.value" disabled class="font-semibold">{{ filter.label }}</option>
49234
+ } @else {
49235
+ <option [value]="filter.value">{{ filter.label }}</option>
49236
+ }
49237
+ }
49238
+ </select>
49239
+ </div>
49240
+ </div>
49241
+
49242
+ @if (isDataLoading()) {
49243
+ <!-- Competitive Intelligence Skeleton -->
49244
+ <div class="space-y-6">
49245
+ <div [ngClass]="isLightMode() ? 'bg-white border-slate-200' : 'bg-slate-800 border-slate-700'" class="rounded-xl border p-6 animate-pulse">
49246
+ <symphiq-skeleton-loader [width]="'60%'" [height]="'24px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
49247
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-4 mt-6">
49248
+ @for (i of [1,2,3]; track i) {
49249
+ <symphiq-skeleton-loader [width]="'100%'" [height]="'140px'" [isLightMode]="isLightMode()"></symphiq-skeleton-loader>
49250
+ }
49251
+ </div>
49252
+ </div>
49253
+ </div>
49254
+ } @else {
49255
+ <symphiq-competitive-intelligence-view
49256
+ [metrics]="competitiveMetrics()"
49257
+ [allCharts]="allCharts()"
49258
+ [isLightMode]="isLightMode()"
49259
+ [isCompactMode]="viewModeService.isCompact()"
49260
+ [competitiveBenchmark]="performanceOverview().overallAssessment?.competitiveBenchmark"
49261
+ [currencySymbol]="currencySymbol()" />
49262
+ }
49263
+ </div>
49264
+ </section>
49265
+ }
49266
+ </div>
49267
+ </main>
49268
+ }
49269
+
49270
+ <symphiq-funnel-analysis-modal
49271
+ [isLightMode]="isLightMode()"
49272
+ [viewMode]="viewMode()"
49273
+ [allMetrics]="allMetrics()"
49274
+ [allInsights]="insights()"
49275
+ [allCharts]="allCharts()"
49276
+ [currencySymbol]="currencySymbol()"
49277
+ [businessProfile]="businessProfile()"></symphiq-funnel-analysis-modal>
49278
+ <symphiq-profile-analysis-modal
49279
+ [isLightMode]="isLightMode()"
49280
+ [allMetrics]="allMetrics()"
49281
+ ></symphiq-profile-analysis-modal>
49282
+ <symphiq-business-analysis-modal [isLightMode]="isLightMode()" />
49283
+ <symphiq-tooltip-container></symphiq-tooltip-container>
49284
+ <symphiq-search-bar
49285
+ [isLightMode]="isLightMode()"
49286
+ (resultSelected)="handleSearchResult($event)" />
49287
+
49288
+ <!-- View Mode Switcher Modal -->
49289
+ <symphiq-view-mode-switcher-modal
49290
+ [isOpen]="isViewModeSwitcherOpen()"
49291
+ [currentMode]="displayMode()"
49292
+ [viewMode]="isLightMode() ? ViewModeEnum.LIGHT : ViewModeEnum.DARK"
49293
+ [isLoading]="isViewModeSwitching()"
49294
+ (close)="closeViewModeSwitcher()"
49295
+ (modeSelected)="handleDisplayModeChange($event)"
49296
+ />
49297
+
49298
+ <!-- Mobile FAB -->
49299
+ <symphiq-mobile-fab
49300
+ [isLightMode]="isLightMode()"
49301
+ [isCompactMode]="viewModeService.isCompact()"
49302
+ [isExpanded]="fabExpanded()"
49303
+ (expandedChange)="fabExpanded.set($event)"
49304
+ (scrollToTop)="scrollToTop()"
49305
+ (toggleView)="viewModeService.toggleViewMode()" />
49306
+
49307
+ <!-- Mobile Bottom Navigation -->
49308
+ <symphiq-mobile-bottom-nav
49309
+ [isLightMode]="isLightMode()"
49310
+ [sections]="navSections"
49311
+ [activeSection]="activeNavSection()"
49312
+ (navigate)="handleMobileNavigation($event)" />
49313
+
49314
+ </div>
48944
49315
  `, styles: [":host{display:block;min-height:100%}.bg-gradient-radial{background:radial-gradient(circle,var(--tw-gradient-stops))}.bento-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;grid-auto-flow:dense}@media (min-width: 768px){.bento-grid{grid-template-columns:repeat(6,1fr)}}.bento-small{grid-column:span 2;grid-row:span 1}.bento-medium{grid-column:span 3;grid-row:span 1}.bento-large{grid-column:span 4;grid-row:span 1}.bento-featured{grid-column:span 6;grid-row:span 1}@media (max-width: 767px){.bento-small,.bento-medium,.bento-large,.bento-featured{grid-column:span 1}}.masonry-grid{column-count:1;column-gap:1.5rem}@media (min-width: 768px){.masonry-grid{column-count:2}}@media (min-width: 1280px){.masonry-grid{column-count:3}}.masonry-grid>div{break-inside:avoid;margin-bottom:1.5rem}.masonry-featured{column-span:all}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-hide::-webkit-scrollbar{display:none}@media (max-width: 640px){.animate-fade-in-up{animation-duration:.4s}}\n"] }]
48945
49316
  }], () => [{ type: FunnelOrderService }, { type: ViewModeService }, { type: SearchService }, { type: TooltipService }, { type: ProfileContextService }, { type: ProfileItemLookupService }], { modalComponent: [{
48946
49317
  type: ViewChild,
@@ -48948,11 +49319,11 @@ class SymphiqFunnelAnalysisDashboardComponent {
48948
49319
  }], dashboardContainer: [{
48949
49320
  type: ViewChild,
48950
49321
  args: ['dashboardContainer', { static: false }]
48951
- }], requestedByUser: [{ type: i0.Input, args: [{ isSignal: true, alias: "requestedByUser", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], funnelAnalysis: [{ type: i0.Input, args: [{ isSignal: true, alias: "funnelAnalysis", required: false }] }], businessProfile: [{ type: i0.Input, args: [{ isSignal: true, alias: "businessProfile", required: false }] }], embedded: [{ type: i0.Input, args: [{ isSignal: true, alias: "embedded", required: false }] }], scrollEvent: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollEvent", required: false }] }], scrollElement: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollElement", required: false }] }], isLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLoading", required: false }] }], isOnboarded: [{ type: i0.Input, args: [{ isSignal: true, alias: "isOnboarded", required: false }] }], forDemo: [{ type: i0.Input, args: [{ isSignal: true, alias: "forDemo", required: false }] }], maxAccessibleStepId: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxAccessibleStepId", required: false }] }], stepClick: [{ type: i0.Output, args: ["stepClick"] }], nextStepClick: [{ type: i0.Output, args: ["nextStepClick"] }], onScroll: [{
49322
+ }], requestedByUser: [{ type: i0.Input, args: [{ isSignal: true, alias: "requestedByUser", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], funnelAnalysis: [{ type: i0.Input, args: [{ isSignal: true, alias: "funnelAnalysis", required: false }] }], businessProfile: [{ type: i0.Input, args: [{ isSignal: true, alias: "businessProfile", required: false }] }], embedded: [{ type: i0.Input, args: [{ isSignal: true, alias: "embedded", required: false }] }], scrollEvent: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollEvent", required: false }] }], scrollElement: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollElement", required: false }] }], isLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLoading", required: false }] }], isOnboarded: [{ type: i0.Input, args: [{ isSignal: true, alias: "isOnboarded", required: false }] }], forDemo: [{ type: i0.Input, args: [{ isSignal: true, alias: "forDemo", required: false }] }], maxAccessibleStepId: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxAccessibleStepId", required: false }] }], itemStatus: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemStatus", required: false }] }], stepClick: [{ type: i0.Output, args: ["stepClick"] }], nextStepClick: [{ type: i0.Output, args: ["nextStepClick"] }], onScroll: [{
48952
49323
  type: HostListener,
48953
49324
  args: ['window:scroll', ['$event']]
48954
49325
  }] }); })();
48955
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqFunnelAnalysisDashboardComponent, { className: "SymphiqFunnelAnalysisDashboardComponent", filePath: "lib/components/funnel-analysis-dashboard/symphiq-funnel-analysis-dashboard.component.ts", lineNumber: 1199 }); })();
49326
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqFunnelAnalysisDashboardComponent, { className: "SymphiqFunnelAnalysisDashboardComponent", filePath: "lib/components/funnel-analysis-dashboard/symphiq-funnel-analysis-dashboard.component.ts", lineNumber: 1226 }); })();
48956
49327
 
48957
49328
  /**
48958
49329
  * Shared Theme Color Utilities
@@ -66589,326 +66960,6 @@ class CollapsibleSectionGroupComponent {
66589
66960
  }], null, { sections: [{ type: i0.Input, args: [{ isSignal: true, alias: "sections", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }] }); })();
66590
66961
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CollapsibleSectionGroupComponent, { className: "CollapsibleSectionGroupComponent", filePath: "lib/components/business-analysis-dashboard/collapsible-section-group.component.ts", lineNumber: 100 }); })();
66591
66962
 
66592
- function ContentGenerationProgressComponent_Conditional_20_Template(rf, ctx) { if (rf & 1) {
66593
- i0.ɵɵelementStart(0, "div", 20);
66594
- i0.ɵɵelement(1, "div", 21)(2, "div", 22)(3, "div", 23)(4, "div", 24)(5, "div", 25)(6, "div", 26);
66595
- i0.ɵɵelementEnd();
66596
- } if (rf & 2) {
66597
- const ctx_r0 = i0.ɵɵnextContext();
66598
- i0.ɵɵstyleProp("left", ctx_r0.progressPercentage(), "%");
66599
- i0.ɵɵadvance();
66600
- i0.ɵɵstyleProp("background-color", ctx_r0.dotColor());
66601
- i0.ɵɵadvance();
66602
- i0.ɵɵstyleProp("background-color", ctx_r0.dotColor());
66603
- i0.ɵɵadvance();
66604
- i0.ɵɵstyleProp("background-color", ctx_r0.dotColor());
66605
- i0.ɵɵadvance();
66606
- i0.ɵɵstyleProp("background-color", ctx_r0.dotColor());
66607
- i0.ɵɵadvance();
66608
- i0.ɵɵstyleProp("background-color", ctx_r0.dotColor());
66609
- i0.ɵɵadvance();
66610
- i0.ɵɵstyleProp("background-color", ctx_r0.dotColor());
66611
- } }
66612
- function ContentGenerationProgressComponent_Conditional_21_Template(rf, ctx) { if (rf & 1) {
66613
- i0.ɵɵelement(0, "div", 27);
66614
- } if (rf & 2) {
66615
- const ctx_r0 = i0.ɵɵnextContext();
66616
- i0.ɵɵstyleProp("left", ctx_r0.progressPercentage(), "%");
66617
- i0.ɵɵproperty("ngClass", ctx_r0.progressGlowClasses());
66618
- } }
66619
- class ContentGenerationProgressComponent {
66620
- constructor() {
66621
- this.itemStatus = input(...(ngDevMode ? [undefined, { debugName: "itemStatus" }] : []));
66622
- this.title = input('Generating Your Analysis', ...(ngDevMode ? [{ debugName: "title" }] : []));
66623
- this.subtitle = input('This will appear when ready. You can check back later as this will take a few minutes to complete.', ...(ngDevMode ? [{ debugName: "subtitle" }] : []));
66624
- this.viewMode = input(ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "viewMode" }] : []));
66625
- this.showIcon = input(true, ...(ngDevMode ? [{ debugName: "showIcon" }] : []));
66626
- this.progressPercentage = computed(() => {
66627
- const status = this.itemStatus();
66628
- if (!status?.percentageComplete) {
66629
- return 0;
66630
- }
66631
- return Math.round(Math.min(100, Math.max(0, status.percentageComplete)));
66632
- }, ...(ngDevMode ? [{ debugName: "progressPercentage" }] : []));
66633
- this.progressMessage = computed(() => {
66634
- const status = this.itemStatus();
66635
- return status?.message || 'Initializing';
66636
- }, ...(ngDevMode ? [{ debugName: "progressMessage" }] : []));
66637
- this.isLightMode = computed(() => this.viewMode() === ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "isLightMode" }] : []));
66638
- this.containerClasses = computed(() => {
66639
- return this.isLightMode()
66640
- ? 'bg-gradient-to-br from-slate-50 to-white'
66641
- : 'bg-gradient-to-br from-slate-900 to-slate-800';
66642
- }, ...(ngDevMode ? [{ debugName: "containerClasses" }] : []));
66643
- this.iconContainerClasses = computed(() => {
66644
- if (this.isLightMode()) {
66645
- return 'bg-gradient-to-br from-blue-500 to-purple-500 text-white shadow-lg shadow-blue-500/30';
66646
- }
66647
- return 'bg-gradient-to-br from-blue-400 to-purple-400 text-white shadow-lg shadow-blue-400/30';
66648
- }, ...(ngDevMode ? [{ debugName: "iconContainerClasses" }] : []));
66649
- this.titleClasses = computed(() => {
66650
- if (this.isLightMode()) {
66651
- return 'bg-gradient-to-r from-blue-600 via-purple-600 to-blue-600 bg-clip-text text-transparent';
66652
- }
66653
- return 'bg-gradient-to-r from-blue-400 via-purple-400 to-blue-400 bg-clip-text text-transparent';
66654
- }, ...(ngDevMode ? [{ debugName: "titleClasses" }] : []));
66655
- this.subtitleClasses = computed(() => {
66656
- return this.isLightMode()
66657
- ? 'text-slate-600'
66658
- : 'text-slate-400';
66659
- }, ...(ngDevMode ? [{ debugName: "subtitleClasses" }] : []));
66660
- this.progressMessageClasses = computed(() => {
66661
- return this.isLightMode()
66662
- ? 'text-slate-700'
66663
- : 'text-slate-300';
66664
- }, ...(ngDevMode ? [{ debugName: "progressMessageClasses" }] : []));
66665
- this.progressBarContainerClasses = computed(() => {
66666
- return 'w-full';
66667
- }, ...(ngDevMode ? [{ debugName: "progressBarContainerClasses" }] : []));
66668
- this.progressBarBackgroundClasses = computed(() => {
66669
- return this.isLightMode()
66670
- ? 'bg-slate-200'
66671
- : 'bg-slate-700';
66672
- }, ...(ngDevMode ? [{ debugName: "progressBarBackgroundClasses" }] : []));
66673
- this.progressBarFillClasses = computed(() => {
66674
- if (this.isLightMode()) {
66675
- return 'bg-gradient-to-r from-blue-500 via-cyan-500 to-blue-600 shadow-lg shadow-blue-500/40';
66676
- }
66677
- return 'bg-gradient-to-r from-blue-400 via-cyan-400 to-blue-500 shadow-lg shadow-blue-400/40';
66678
- }, ...(ngDevMode ? [{ debugName: "progressBarFillClasses" }] : []));
66679
- this.dotClasses = computed(() => {
66680
- return this.isLightMode()
66681
- ? 'bg-blue-400 shadow-lg shadow-blue-400/60'
66682
- : 'bg-cyan-300 shadow-lg shadow-cyan-300/60';
66683
- }, ...(ngDevMode ? [{ debugName: "dotClasses" }] : []));
66684
- this.dotColor = computed(() => {
66685
- return this.isLightMode() ? '#60a5fa' : '#67e8f9';
66686
- }, ...(ngDevMode ? [{ debugName: "dotColor" }] : []));
66687
- this.progressGlowClasses = computed(() => {
66688
- return this.isLightMode()
66689
- ? 'bg-blue-400 shadow-xl'
66690
- : 'bg-cyan-300 shadow-xl';
66691
- }, ...(ngDevMode ? [{ debugName: "progressGlowClasses" }] : []));
66692
- this.percentageClasses = computed(() => {
66693
- return this.isLightMode()
66694
- ? 'text-slate-600'
66695
- : 'text-slate-400';
66696
- }, ...(ngDevMode ? [{ debugName: "percentageClasses" }] : []));
66697
- }
66698
- static { this.ɵfac = function ContentGenerationProgressComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ContentGenerationProgressComponent)(); }; }
66699
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ContentGenerationProgressComponent, selectors: [["symphiq-content-generation-progress"]], inputs: { itemStatus: [1, "itemStatus"], title: [1, "title"], subtitle: [1, "subtitle"], viewMode: [1, "viewMode"], showIcon: [1, "showIcon"] }, decls: 25, vars: 17, consts: [[1, "min-h-[60vh]", "flex", "items-center", "justify-center", "px-4", "py-12", 3, "ngClass"], [1, "max-w-3xl", "w-full", "space-y-8"], [1, "text-center", "space-y-3"], [1, "flex", "items-center", "justify-center", "mb-4"], [1, "relative", "w-20", "h-20", "rounded-2xl", "flex", "items-center", "justify-center", "icon-pulse", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-10", "h-10"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 10V3L4 14h7v7l9-11h-7z"], [1, "absolute", "inset-0", "rounded-2xl", "icon-glow"], [1, "text-3xl", "sm:text-4xl", "font-bold", 3, "ngClass"], [1, "text-base", "sm:text-lg", "max-w-2xl", "mx-auto", 3, "ngClass"], [1, "space-y-4"], [1, "text-center"], [1, "text-lg", "sm:text-xl", "font-medium", "message-fade", 3, "ngClass"], [1, "relative", "h-3", "rounded-full", 2, "overflow", "visible", 3, "ngClass"], [1, "absolute", "inset-0", "rounded-full", 3, "ngClass"], [1, "absolute", "inset-y-0", "left-0", "rounded-full", "transition-all", "duration-700", "ease-out", "overflow-hidden", 3, "ngClass"], [1, "absolute", "inset-0", "shimmer-effect"], [1, "absolute", "pointer-events-none", 2, "right", "0", "top", "-4px", "bottom", "-4px", "overflow", "visible", 3, "left"], [1, "absolute", "top-1/2", "-translate-y-1/2", "w-4", "h-4", "rounded-full", "blur-md", "transition-all", "duration-700", "ease-out", 2, "margin-left", "-8px", 3, "ngClass", "left"], [1, "text-sm", "font-medium", "tabular-nums", 3, "ngClass"], [1, "absolute", "pointer-events-none", 2, "right", "0", "top", "-4px", "bottom", "-4px", "overflow", "visible"], [1, "animated-dot", "animated-dot-1"], [1, "animated-dot", "animated-dot-2"], [1, "animated-dot", "animated-dot-3"], [1, "animated-dot", "animated-dot-4"], [1, "animated-dot", "animated-dot-5"], [1, "animated-dot", "animated-dot-6"], [1, "absolute", "top-1/2", "-translate-y-1/2", "w-4", "h-4", "rounded-full", "blur-md", "transition-all", "duration-700", "ease-out", 2, "margin-left", "-8px", 3, "ngClass"]], template: function ContentGenerationProgressComponent_Template(rf, ctx) { if (rf & 1) {
66700
- i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "div", 3)(4, "div", 4);
66701
- i0.ɵɵnamespaceSVG();
66702
- i0.ɵɵelementStart(5, "svg", 5);
66703
- i0.ɵɵelement(6, "path", 6);
66704
- i0.ɵɵelementEnd();
66705
- i0.ɵɵnamespaceHTML();
66706
- i0.ɵɵelement(7, "div", 7);
66707
- i0.ɵɵelementEnd()();
66708
- i0.ɵɵelementStart(8, "h2", 8);
66709
- i0.ɵɵtext(9);
66710
- i0.ɵɵelementEnd();
66711
- i0.ɵɵelementStart(10, "p", 9);
66712
- i0.ɵɵtext(11);
66713
- i0.ɵɵelementEnd()();
66714
- i0.ɵɵelementStart(12, "div", 10)(13, "div", 11)(14, "p", 12);
66715
- i0.ɵɵtext(15);
66716
- i0.ɵɵelementEnd()();
66717
- i0.ɵɵelementStart(16, "div", 13);
66718
- i0.ɵɵelement(17, "div", 14);
66719
- i0.ɵɵelementStart(18, "div", 15);
66720
- i0.ɵɵelement(19, "div", 16);
66721
- i0.ɵɵelementEnd();
66722
- i0.ɵɵconditionalCreate(20, ContentGenerationProgressComponent_Conditional_20_Template, 7, 14, "div", 17);
66723
- i0.ɵɵconditionalCreate(21, ContentGenerationProgressComponent_Conditional_21_Template, 1, 3, "div", 18);
66724
- i0.ɵɵelementEnd();
66725
- i0.ɵɵelementStart(22, "div", 11)(23, "span", 19);
66726
- i0.ɵɵtext(24);
66727
- i0.ɵɵelementEnd()()()()();
66728
- } if (rf & 2) {
66729
- i0.ɵɵproperty("ngClass", ctx.containerClasses());
66730
- i0.ɵɵadvance(4);
66731
- i0.ɵɵproperty("ngClass", ctx.iconContainerClasses());
66732
- i0.ɵɵadvance(4);
66733
- i0.ɵɵproperty("ngClass", ctx.titleClasses());
66734
- i0.ɵɵadvance();
66735
- i0.ɵɵtextInterpolate1(" ", ctx.title(), " ");
66736
- i0.ɵɵadvance();
66737
- i0.ɵɵproperty("ngClass", ctx.subtitleClasses());
66738
- i0.ɵɵadvance();
66739
- i0.ɵɵtextInterpolate1(" ", ctx.subtitle(), " ");
66740
- i0.ɵɵadvance(3);
66741
- i0.ɵɵproperty("ngClass", ctx.progressMessageClasses());
66742
- i0.ɵɵadvance();
66743
- i0.ɵɵtextInterpolate1(" ", ctx.progressMessage(), " ");
66744
- i0.ɵɵadvance();
66745
- i0.ɵɵproperty("ngClass", ctx.progressBarContainerClasses());
66746
- i0.ɵɵadvance();
66747
- i0.ɵɵproperty("ngClass", ctx.progressBarBackgroundClasses());
66748
- i0.ɵɵadvance();
66749
- i0.ɵɵstyleProp("width", ctx.progressPercentage(), "%");
66750
- i0.ɵɵproperty("ngClass", ctx.progressBarFillClasses());
66751
- i0.ɵɵadvance(2);
66752
- i0.ɵɵconditional(ctx.progressPercentage() > 0 && ctx.progressPercentage() < 100 ? 20 : -1);
66753
- i0.ɵɵadvance();
66754
- i0.ɵɵconditional(ctx.progressPercentage() > 0 && ctx.progressPercentage() < 100 ? 21 : -1);
66755
- i0.ɵɵadvance(2);
66756
- i0.ɵɵproperty("ngClass", ctx.percentageClasses());
66757
- i0.ɵɵadvance();
66758
- i0.ɵɵtextInterpolate1(" ", ctx.progressPercentage(), "% complete ");
66759
- } }, dependencies: [CommonModule, i1$1.NgClass], styles: ["@keyframes _ngcontent-%COMP%_icon-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.9}}@keyframes _ngcontent-%COMP%_icon-glow-pulse{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.6;transform:scale(1.2)}}@keyframes _ngcontent-%COMP%_shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes _ngcontent-%COMP%_dots-move{0%{left:0%;opacity:0}3%{left:3%;opacity:1}97%{left:97%;opacity:1}to{left:100%;opacity:0}}@keyframes _ngcontent-%COMP%_dots-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.4)}}@keyframes _ngcontent-%COMP%_message-fade{0%,to{opacity:1}50%{opacity:.7}}.icon-pulse[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_icon-pulse 2s ease-in-out infinite}.icon-glow[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_icon-glow-pulse 2s ease-in-out infinite}.shimmer-effect[_ngcontent-%COMP%]{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.3) 50%,transparent 100%);animation:_ngcontent-%COMP%_shimmer 2s ease-in-out infinite}.message-fade[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_message-fade 3s ease-in-out infinite}.animated-dot[_ngcontent-%COMP%]{position:absolute;top:50%;width:12px;height:12px;border-radius:50%;margin-top:-6px;margin-left:-6px;animation:_ngcontent-%COMP%_dots-move 6s linear infinite,_ngcontent-%COMP%_dots-pulse 2s ease-in-out infinite;will-change:left,transform,opacity;z-index:20;box-shadow:0 0 8px currentColor,0 0 16px currentColor}.animated-dot-1[_ngcontent-%COMP%]{animation-delay:0s,0s}.animated-dot-2[_ngcontent-%COMP%]{animation-delay:1s,0s}.animated-dot-3[_ngcontent-%COMP%]{animation-delay:2s,0s}.animated-dot-4[_ngcontent-%COMP%]{animation-delay:3s,0s}.animated-dot-5[_ngcontent-%COMP%]{animation-delay:4s,0s}.animated-dot-6[_ngcontent-%COMP%]{animation-delay:5s,0s}"], changeDetection: 0 }); }
66760
- }
66761
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ContentGenerationProgressComponent, [{
66762
- type: Component,
66763
- args: [{ selector: 'symphiq-content-generation-progress', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: `
66764
- <div [ngClass]="containerClasses()" class="min-h-[60vh] flex items-center justify-center px-4 py-12">
66765
- <div class="max-w-3xl w-full space-y-8">
66766
- <!-- Title Section -->
66767
- <div class="text-center space-y-3">
66768
- <div class="flex items-center justify-center mb-4">
66769
- <div [ngClass]="iconContainerClasses()" class="relative w-20 h-20 rounded-2xl flex items-center justify-center icon-pulse">
66770
- <svg class="w-10 h-10" fill="none" stroke="currentColor" viewBox="0 0 24 24">
66771
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 10V3L4 14h7v7l9-11h-7z"></path>
66772
- </svg>
66773
- <div class="absolute inset-0 rounded-2xl icon-glow"></div>
66774
- </div>
66775
- </div>
66776
-
66777
- <h2 [ngClass]="titleClasses()" class="text-3xl sm:text-4xl font-bold">
66778
- {{ title() }}
66779
- </h2>
66780
-
66781
- <p [ngClass]="subtitleClasses()" class="text-base sm:text-lg max-w-2xl mx-auto">
66782
- {{ subtitle() }}
66783
- </p>
66784
- </div>
66785
-
66786
- <!-- Progress Section -->
66787
- <div class="space-y-4">
66788
- <!-- Progress Message -->
66789
- <div class="text-center">
66790
- <p [ngClass]="progressMessageClasses()" class="text-lg sm:text-xl font-medium message-fade">
66791
- {{ progressMessage() }}
66792
- </p>
66793
- </div>
66794
-
66795
- <!-- Progress Bar Container -->
66796
- <div [ngClass]="progressBarContainerClasses()" class="relative h-3 rounded-full" style="overflow: visible;">
66797
- <!-- Background Track -->
66798
- <div [ngClass]="progressBarBackgroundClasses()" class="absolute inset-0 rounded-full"></div>
66799
-
66800
- <!-- Solid Fill with Gradient -->
66801
- <div
66802
- [ngClass]="progressBarFillClasses()"
66803
- [style.width.%]="progressPercentage()"
66804
- class="absolute inset-y-0 left-0 rounded-full transition-all duration-700 ease-out overflow-hidden">
66805
- <!-- Inner shimmer effect -->
66806
- <div class="absolute inset-0 shimmer-effect"></div>
66807
- </div>
66808
-
66809
- <!-- Animated Dots Overlay (container positioned at progress edge, dots animate within) -->
66810
- @if (progressPercentage() > 0 && progressPercentage() < 100) {
66811
- <div
66812
- class="absolute pointer-events-none"
66813
- [style.left.%]="progressPercentage()"
66814
- style="right: 0; top: -4px; bottom: -4px; overflow: visible;">
66815
- <div class="animated-dot animated-dot-1" [style.background-color]="dotColor()"></div>
66816
- <div class="animated-dot animated-dot-2" [style.background-color]="dotColor()"></div>
66817
- <div class="animated-dot animated-dot-3" [style.background-color]="dotColor()"></div>
66818
- <div class="animated-dot animated-dot-4" [style.background-color]="dotColor()"></div>
66819
- <div class="animated-dot animated-dot-5" [style.background-color]="dotColor()"></div>
66820
- <div class="animated-dot animated-dot-6" [style.background-color]="dotColor()"></div>
66821
- </div>
66822
- }
66823
-
66824
- <!-- Glow effect at the progress edge -->
66825
- @if (progressPercentage() > 0 && progressPercentage() < 100) {
66826
- <div
66827
- [ngClass]="progressGlowClasses()"
66828
- [style.left.%]="progressPercentage()"
66829
- class="absolute top-1/2 -translate-y-1/2 w-4 h-4 rounded-full blur-md transition-all duration-700 ease-out"
66830
- style="margin-left: -8px;">
66831
- </div>
66832
- }
66833
- </div>
66834
-
66835
- <!-- Progress Percentage -->
66836
- <div class="text-center">
66837
- <span [ngClass]="percentageClasses()" class="text-sm font-medium tabular-nums">
66838
- {{ progressPercentage() }}% complete
66839
- </span>
66840
- </div>
66841
- </div>
66842
- </div>
66843
- </div>
66844
- `, styles: ["@keyframes icon-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.9}}@keyframes icon-glow-pulse{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.6;transform:scale(1.2)}}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes dots-move{0%{left:0%;opacity:0}3%{left:3%;opacity:1}97%{left:97%;opacity:1}to{left:100%;opacity:0}}@keyframes dots-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.4)}}@keyframes message-fade{0%,to{opacity:1}50%{opacity:.7}}.icon-pulse{animation:icon-pulse 2s ease-in-out infinite}.icon-glow{animation:icon-glow-pulse 2s ease-in-out infinite}.shimmer-effect{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.3) 50%,transparent 100%);animation:shimmer 2s ease-in-out infinite}.message-fade{animation:message-fade 3s ease-in-out infinite}.animated-dot{position:absolute;top:50%;width:12px;height:12px;border-radius:50%;margin-top:-6px;margin-left:-6px;animation:dots-move 6s linear infinite,dots-pulse 2s ease-in-out infinite;will-change:left,transform,opacity;z-index:20;box-shadow:0 0 8px currentColor,0 0 16px currentColor}.animated-dot-1{animation-delay:0s,0s}.animated-dot-2{animation-delay:1s,0s}.animated-dot-3{animation-delay:2s,0s}.animated-dot-4{animation-delay:3s,0s}.animated-dot-5{animation-delay:4s,0s}.animated-dot-6{animation-delay:5s,0s}\n"] }]
66845
- }], null, { itemStatus: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemStatus", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], showIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIcon", required: false }] }] }); })();
66846
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ContentGenerationProgressComponent, { className: "ContentGenerationProgressComponent", filePath: "lib/components/shared/content-generation-progress.component.ts", lineNumber: 222 }); })();
66847
-
66848
- class ContentGenerationProgressWithConfettiComponent {
66849
- constructor() {
66850
- this.itemStatus = input(...(ngDevMode ? [undefined, { debugName: "itemStatus" }] : []));
66851
- this.title = input('Generating Your Analysis', ...(ngDevMode ? [{ debugName: "title" }] : []));
66852
- this.subtitle = input('This will appear when ready. You can check back later as this will take a few minutes to complete.', ...(ngDevMode ? [{ debugName: "subtitle" }] : []));
66853
- this.viewMode = input(ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "viewMode" }] : []));
66854
- this.showIcon = input(true, ...(ngDevMode ? [{ debugName: "showIcon" }] : []));
66855
- this.profile = input(...(ngDevMode ? [undefined, { debugName: "profile" }] : []));
66856
- this.confettiIntensity = input('normal', ...(ngDevMode ? [{ debugName: "confettiIntensity" }] : []));
66857
- this.enableConfetti = input(true, ...(ngDevMode ? [{ debugName: "enableConfetti" }] : []));
66858
- this.confettiDelay = input(200, ...(ngDevMode ? [{ debugName: "confettiDelay" }] : []));
66859
- this.confettiService = inject(ConfettiService);
66860
- this.hasCelebrated = signal(false, ...(ngDevMode ? [{ debugName: "hasCelebrated" }] : []));
66861
- effect(() => {
66862
- const currentProfile = this.profile();
66863
- const currentStatus = currentProfile?.selfContentStatus;
66864
- if (!this.enableConfetti()) {
66865
- return;
66866
- }
66867
- if (currentStatus === AiDynamicContentStatusEnum.GENERATED && !this.hasCelebrated()) {
66868
- untracked(() => {
66869
- this.confettiService.trigger({
66870
- intensity: this.confettiIntensity(),
66871
- delay: this.confettiDelay(),
66872
- viewMode: this.viewMode(),
66873
- });
66874
- this.hasCelebrated.set(true);
66875
- });
66876
- }
66877
- if (currentStatus === AiDynamicContentStatusEnum.REQUESTED ||
66878
- currentStatus === AiDynamicContentStatusEnum.GENERATING) {
66879
- untracked(() => {
66880
- this.hasCelebrated.set(false);
66881
- });
66882
- }
66883
- });
66884
- }
66885
- static { this.ɵfac = function ContentGenerationProgressWithConfettiComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ContentGenerationProgressWithConfettiComponent)(); }; }
66886
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ContentGenerationProgressWithConfettiComponent, selectors: [["symphiq-content-generation-progress-with-confetti"]], inputs: { itemStatus: [1, "itemStatus"], title: [1, "title"], subtitle: [1, "subtitle"], viewMode: [1, "viewMode"], showIcon: [1, "showIcon"], profile: [1, "profile"], confettiIntensity: [1, "confettiIntensity"], enableConfetti: [1, "enableConfetti"], confettiDelay: [1, "confettiDelay"] }, decls: 1, vars: 5, consts: [[3, "itemStatus", "title", "subtitle", "viewMode", "showIcon"]], template: function ContentGenerationProgressWithConfettiComponent_Template(rf, ctx) { if (rf & 1) {
66887
- i0.ɵɵelement(0, "symphiq-content-generation-progress", 0);
66888
- } if (rf & 2) {
66889
- i0.ɵɵproperty("itemStatus", ctx.itemStatus())("title", ctx.title())("subtitle", ctx.subtitle())("viewMode", ctx.viewMode())("showIcon", ctx.showIcon());
66890
- } }, dependencies: [ContentGenerationProgressComponent], encapsulation: 2, changeDetection: 0 }); }
66891
- }
66892
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ContentGenerationProgressWithConfettiComponent, [{
66893
- type: Component,
66894
- args: [{
66895
- selector: 'symphiq-content-generation-progress-with-confetti',
66896
- standalone: true,
66897
- imports: [ContentGenerationProgressComponent],
66898
- changeDetection: ChangeDetectionStrategy.OnPush,
66899
- template: `
66900
- <symphiq-content-generation-progress
66901
- [itemStatus]="itemStatus()"
66902
- [title]="title()"
66903
- [subtitle]="subtitle()"
66904
- [viewMode]="viewMode()"
66905
- [showIcon]="showIcon()"
66906
- />
66907
- `
66908
- }]
66909
- }], () => [], { itemStatus: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemStatus", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], showIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIcon", required: false }] }], profile: [{ type: i0.Input, args: [{ isSignal: true, alias: "profile", required: false }] }], confettiIntensity: [{ type: i0.Input, args: [{ isSignal: true, alias: "confettiIntensity", required: false }] }], enableConfetti: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableConfetti", required: false }] }], confettiDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "confettiDelay", required: false }] }] }); })();
66910
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ContentGenerationProgressWithConfettiComponent, { className: "ContentGenerationProgressWithConfettiComponent", filePath: "lib/components/shared/content-generation-progress-with-confetti.component.ts", lineNumber: 29 }); })();
66911
-
66912
66963
  const _c0$l = () => [];
66913
66964
  function SymphiqBusinessAnalysisDashboardComponent_Conditional_14_Template(rf, ctx) { if (rf & 1) {
66914
66965
  const _r1 = i0.ɵɵgetCurrentView();