@eric-emg/symphiq-components 1.2.89 → 1.2.90

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.
@@ -2556,14 +2556,15 @@ function OverallAssessmentComponent_Conditional_0_Template(rf, ctx) { if (rf & 1
2556
2556
  i0.ɵɵproperty("width", "100%")("height", "200px")("isLightMode", ctx_r0.isLightMode());
2557
2557
  } }
2558
2558
  function OverallAssessmentComponent_Conditional_1_Conditional_21_Conditional_1_Conditional_25_Template(rf, ctx) { if (rf & 1) {
2559
- i0.ɵɵelementStart(0, "div", 48)(1, "span", 52);
2559
+ i0.ɵɵelementStart(0, "div", 56)(1, "span", 52);
2560
2560
  i0.ɵɵtext(2, "2025 Pacing: ");
2561
2561
  i0.ɵɵelementEnd();
2562
- i0.ɵɵelementStart(3, "span", 54);
2562
+ i0.ɵɵelementStart(3, "span", 55);
2563
2563
  i0.ɵɵtext(4);
2564
2564
  i0.ɵɵelementEnd()();
2565
2565
  } if (rf & 2) {
2566
2566
  const ctx_r0 = i0.ɵɵnextContext(4);
2567
+ i0.ɵɵproperty("libSymphiqTooltip", ctx_r0.revenueStatusTooltip())("tooltipPosition", "top");
2567
2568
  i0.ɵɵadvance();
2568
2569
  i0.ɵɵclassMap(ctx_r0.badgeLabelClass());
2569
2570
  i0.ɵɵadvance(2);
@@ -2597,15 +2598,15 @@ function OverallAssessmentComponent_Conditional_1_Conditional_21_Conditional_1_T
2597
2598
  i0.ɵɵtext(18, "vs last year");
2598
2599
  i0.ɵɵelementEnd()();
2599
2600
  i0.ɵɵelement(19, "div", 53);
2600
- i0.ɵɵelementStart(20, "div")(21, "span", 52);
2601
+ i0.ɵɵelementStart(20, "div", 54)(21, "span", 52);
2601
2602
  i0.ɵɵtext(22, "Target: ");
2602
2603
  i0.ɵɵelementEnd();
2603
- i0.ɵɵelementStart(23, "span", 54);
2604
+ i0.ɵɵelementStart(23, "span", 55);
2604
2605
  i0.ɵɵtext(24);
2605
2606
  i0.ɵɵelementEnd()()();
2606
- i0.ɵɵconditionalCreate(25, OverallAssessmentComponent_Conditional_1_Conditional_21_Conditional_1_Conditional_25_Template, 5, 5, "div", 48);
2607
+ i0.ɵɵconditionalCreate(25, OverallAssessmentComponent_Conditional_1_Conditional_21_Conditional_1_Conditional_25_Template, 5, 7, "div", 56);
2607
2608
  i0.ɵɵelementEnd();
2608
- i0.ɵɵelementStart(26, "div", 55)(27, "span", 19);
2609
+ i0.ɵɵelementStart(26, "div", 57)(27, "span", 19);
2609
2610
  i0.ɵɵtext(28);
2610
2611
  i0.ɵɵelementEnd();
2611
2612
  i0.ɵɵelementStart(29, "span");
@@ -2625,7 +2626,9 @@ function OverallAssessmentComponent_Conditional_1_Conditional_21_Conditional_1_T
2625
2626
  i0.ɵɵproperty("libSymphiqTooltip", ctx_r0.revenueTooltip())("tooltipPosition", "bottom");
2626
2627
  i0.ɵɵadvance();
2627
2628
  i0.ɵɵtextInterpolate1(" ", ctx_r0.formattedRevenueValue(), " ");
2628
- i0.ɵɵadvance(4);
2629
+ i0.ɵɵadvance(3);
2630
+ i0.ɵɵproperty("libSymphiqTooltip", ctx_r0.revenueTrendTooltip())("tooltipPosition", "top");
2631
+ i0.ɵɵadvance();
2629
2632
  i0.ɵɵclassMap(ctx_r0.trendIconClass());
2630
2633
  i0.ɵɵadvance(2);
2631
2634
  i0.ɵɵclassMap(ctx_r0.trendValueClass());
@@ -2633,7 +2636,9 @@ function OverallAssessmentComponent_Conditional_1_Conditional_21_Conditional_1_T
2633
2636
  i0.ɵɵtextInterpolate1("", ctx_r0.formattedRevenueTrend(), "%");
2634
2637
  i0.ɵɵadvance();
2635
2638
  i0.ɵɵclassMap(ctx_r0.badgeLabelClass());
2636
- i0.ɵɵadvance(4);
2639
+ i0.ɵɵadvance(3);
2640
+ i0.ɵɵproperty("libSymphiqTooltip", ctx_r0.revenueStatusTooltip())("tooltipPosition", "top");
2641
+ i0.ɵɵadvance();
2637
2642
  i0.ɵɵclassMap(ctx_r0.badgeLabelClass());
2638
2643
  i0.ɵɵadvance(2);
2639
2644
  i0.ɵɵclassMap(ctx_r0.titleClass());
@@ -2651,7 +2656,7 @@ function OverallAssessmentComponent_Conditional_1_Conditional_21_Conditional_1_T
2651
2656
  } }
2652
2657
  function OverallAssessmentComponent_Conditional_1_Conditional_21_Template(rf, ctx) { if (rf & 1) {
2653
2658
  i0.ɵɵelementStart(0, "div", 22);
2654
- i0.ɵɵconditionalCreate(1, OverallAssessmentComponent_Conditional_1_Conditional_21_Conditional_1_Template, 31, 33, "div", 36);
2659
+ i0.ɵɵconditionalCreate(1, OverallAssessmentComponent_Conditional_1_Conditional_21_Conditional_1_Template, 31, 37, "div", 36);
2655
2660
  i0.ɵɵelementStart(2, "div", 37)(3, "p", 38);
2656
2661
  i0.ɵɵtext(4);
2657
2662
  i0.ɵɵelementEnd()()();
@@ -2667,14 +2672,15 @@ function OverallAssessmentComponent_Conditional_1_Conditional_21_Template(rf, ct
2667
2672
  i0.ɵɵtextInterpolate(ctx_r0.assessment().narrative);
2668
2673
  } }
2669
2674
  function OverallAssessmentComponent_Conditional_1_Conditional_22_Conditional_0_Conditional_27_Template(rf, ctx) { if (rf & 1) {
2670
- i0.ɵɵelementStart(0, "div", 48)(1, "span", 64);
2675
+ i0.ɵɵelementStart(0, "div", 56)(1, "span", 66);
2671
2676
  i0.ɵɵtext(2, "2025 Pacing: ");
2672
2677
  i0.ɵɵelementEnd();
2673
- i0.ɵɵelementStart(3, "span", 65);
2678
+ i0.ɵɵelementStart(3, "span", 67);
2674
2679
  i0.ɵɵtext(4);
2675
2680
  i0.ɵɵelementEnd()();
2676
2681
  } if (rf & 2) {
2677
2682
  const ctx_r0 = i0.ɵɵnextContext(4);
2683
+ i0.ɵɵproperty("libSymphiqTooltip", ctx_r0.revenueStatusTooltip())("tooltipPosition", "top");
2678
2684
  i0.ɵɵadvance();
2679
2685
  i0.ɵɵclassMap(ctx_r0.badgeLabelClass());
2680
2686
  i0.ɵɵadvance(2);
@@ -2683,7 +2689,7 @@ function OverallAssessmentComponent_Conditional_1_Conditional_22_Conditional_0_C
2683
2689
  i0.ɵɵtextInterpolate(ctx_r0.formattedRevenuePacing());
2684
2690
  } }
2685
2691
  function OverallAssessmentComponent_Conditional_1_Conditional_22_Conditional_0_Template(rf, ctx) { if (rf & 1) {
2686
- i0.ɵɵelementStart(0, "div", 58)(1, "div", 59)(2, "div", 60)(3, "div", 26)(4, "div", 40);
2692
+ i0.ɵɵelementStart(0, "div", 60)(1, "div", 61)(2, "div", 62)(3, "div", 26)(4, "div", 40);
2687
2693
  i0.ɵɵnamespaceSVG();
2688
2694
  i0.ɵɵelementStart(5, "svg", 41);
2689
2695
  i0.ɵɵelement(6, "path", 42);
@@ -2695,37 +2701,37 @@ function OverallAssessmentComponent_Conditional_1_Conditional_22_Conditional_0_T
2695
2701
  i0.ɵɵelementStart(10, "p", 45);
2696
2702
  i0.ɵɵtext(11);
2697
2703
  i0.ɵɵelementEnd()()();
2698
- i0.ɵɵelementStart(12, "div", 61)(13, "div", 47)(14, "div", 48);
2704
+ i0.ɵɵelementStart(12, "div", 63)(13, "div", 47)(14, "div", 48);
2699
2705
  i0.ɵɵnamespaceSVG();
2700
- i0.ɵɵelementStart(15, "svg", 62);
2706
+ i0.ɵɵelementStart(15, "svg", 64);
2701
2707
  i0.ɵɵelement(16, "path", 50);
2702
2708
  i0.ɵɵelementEnd();
2703
2709
  i0.ɵɵnamespaceHTML();
2704
- i0.ɵɵelementStart(17, "span", 63);
2710
+ i0.ɵɵelementStart(17, "span", 65);
2705
2711
  i0.ɵɵtext(18);
2706
2712
  i0.ɵɵelementEnd();
2707
- i0.ɵɵelementStart(19, "span", 64);
2713
+ i0.ɵɵelementStart(19, "span", 66);
2708
2714
  i0.ɵɵtext(20, "vs last year");
2709
2715
  i0.ɵɵelementEnd()();
2710
2716
  i0.ɵɵelement(21, "div", 53);
2711
- i0.ɵɵelementStart(22, "div")(23, "span", 64);
2717
+ i0.ɵɵelementStart(22, "div", 54)(23, "span", 66);
2712
2718
  i0.ɵɵtext(24, "Target: ");
2713
2719
  i0.ɵɵelementEnd();
2714
- i0.ɵɵelementStart(25, "span", 65);
2720
+ i0.ɵɵelementStart(25, "span", 67);
2715
2721
  i0.ɵɵtext(26);
2716
2722
  i0.ɵɵelementEnd()()();
2717
- i0.ɵɵconditionalCreate(27, OverallAssessmentComponent_Conditional_1_Conditional_22_Conditional_0_Conditional_27_Template, 5, 5, "div", 48);
2723
+ i0.ɵɵconditionalCreate(27, OverallAssessmentComponent_Conditional_1_Conditional_22_Conditional_0_Conditional_27_Template, 5, 7, "div", 56);
2718
2724
  i0.ɵɵelementEnd()();
2719
- i0.ɵɵelementStart(28, "div", 66)(29, "div", 17);
2725
+ i0.ɵɵelementStart(28, "div", 68)(29, "div", 17);
2720
2726
  i0.ɵɵtext(30, "Status");
2721
2727
  i0.ɵɵelementEnd();
2722
- i0.ɵɵelementStart(31, "div", 67)(32, "span", 19);
2728
+ i0.ɵɵelementStart(31, "div", 69)(32, "span", 19);
2723
2729
  i0.ɵɵtext(33);
2724
2730
  i0.ɵɵelementEnd();
2725
2731
  i0.ɵɵelementStart(34, "span");
2726
2732
  i0.ɵɵtext(35);
2727
2733
  i0.ɵɵelementEnd()();
2728
- i0.ɵɵelementStart(36, "div", 68);
2734
+ i0.ɵɵelementStart(36, "div", 70);
2729
2735
  i0.ɵɵtext(37);
2730
2736
  i0.ɵɵelementEnd()()()();
2731
2737
  } if (rf & 2) {
@@ -2742,7 +2748,9 @@ function OverallAssessmentComponent_Conditional_1_Conditional_22_Conditional_0_T
2742
2748
  i0.ɵɵproperty("libSymphiqTooltip", ctx_r0.revenueTooltip())("tooltipPosition", "bottom");
2743
2749
  i0.ɵɵadvance();
2744
2750
  i0.ɵɵtextInterpolate1(" ", ctx_r0.formattedRevenueValue(), " ");
2745
- i0.ɵɵadvance(4);
2751
+ i0.ɵɵadvance(3);
2752
+ i0.ɵɵproperty("libSymphiqTooltip", ctx_r0.revenueTrendTooltip())("tooltipPosition", "top");
2753
+ i0.ɵɵadvance();
2746
2754
  i0.ɵɵclassMap(ctx_r0.trendIconClass());
2747
2755
  i0.ɵɵadvance(2);
2748
2756
  i0.ɵɵclassMap(ctx_r0.trendValueClass());
@@ -2750,7 +2758,9 @@ function OverallAssessmentComponent_Conditional_1_Conditional_22_Conditional_0_T
2750
2758
  i0.ɵɵtextInterpolate1("", ctx_r0.formattedRevenueTrend(), "%");
2751
2759
  i0.ɵɵadvance();
2752
2760
  i0.ɵɵclassMap(ctx_r0.badgeLabelClass());
2753
- i0.ɵɵadvance(4);
2761
+ i0.ɵɵadvance(3);
2762
+ i0.ɵɵproperty("libSymphiqTooltip", ctx_r0.revenueStatusTooltip())("tooltipPosition", "top");
2763
+ i0.ɵɵadvance();
2754
2764
  i0.ɵɵclassMap(ctx_r0.badgeLabelClass());
2755
2765
  i0.ɵɵadvance(2);
2756
2766
  i0.ɵɵclassMap(ctx_r0.titleClass());
@@ -2773,8 +2783,8 @@ function OverallAssessmentComponent_Conditional_1_Conditional_22_Conditional_0_T
2773
2783
  i0.ɵɵtextInterpolate(ctx_r0.revenueMetric().description);
2774
2784
  } }
2775
2785
  function OverallAssessmentComponent_Conditional_1_Conditional_22_Template(rf, ctx) { if (rf & 1) {
2776
- i0.ɵɵconditionalCreate(0, OverallAssessmentComponent_Conditional_1_Conditional_22_Conditional_0_Template, 38, 36, "div", 56);
2777
- i0.ɵɵelementStart(1, "div", 57)(2, "p", 38);
2786
+ i0.ɵɵconditionalCreate(0, OverallAssessmentComponent_Conditional_1_Conditional_22_Conditional_0_Template, 38, 40, "div", 58);
2787
+ i0.ɵɵelementStart(1, "div", 59)(2, "p", 38);
2778
2788
  i0.ɵɵtext(3);
2779
2789
  i0.ɵɵelementEnd()();
2780
2790
  } if (rf & 2) {
@@ -2789,7 +2799,7 @@ function OverallAssessmentComponent_Conditional_1_Conditional_22_Template(rf, ct
2789
2799
  } }
2790
2800
  function OverallAssessmentComponent_Conditional_1_Conditional_23_For_3_Template(rf, ctx) { if (rf & 1) {
2791
2801
  const _r2 = i0.ɵɵgetCurrentView();
2792
- i0.ɵɵelementStart(0, "symphiq-chart-container", 71);
2802
+ i0.ɵɵelementStart(0, "symphiq-chart-container", 73);
2793
2803
  i0.ɵɵlistener("chartClick", function OverallAssessmentComponent_Conditional_1_Conditional_23_For_3_Template_symphiq_chart_container_chartClick_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.openChartModal($event)); });
2794
2804
  i0.ɵɵelementEnd();
2795
2805
  } if (rf & 2) {
@@ -2798,8 +2808,8 @@ function OverallAssessmentComponent_Conditional_1_Conditional_23_For_3_Template(
2798
2808
  i0.ɵɵproperty("chart", chart_r3)("isLightMode", ctx_r0.isLightMode())("isCompactMode", ctx_r0.isCompactMode())("collapsibleIn", "compact")("isLoading", ctx_r0.isChartsLoading());
2799
2809
  } }
2800
2810
  function OverallAssessmentComponent_Conditional_1_Conditional_23_Template(rf, ctx) { if (rf & 1) {
2801
- i0.ɵɵelementStart(0, "div", 23)(1, "div", 69);
2802
- i0.ɵɵrepeaterCreate(2, OverallAssessmentComponent_Conditional_1_Conditional_23_For_3_Template, 1, 5, "symphiq-chart-container", 70, i0.ɵɵrepeaterTrackByIndex);
2811
+ i0.ɵɵelementStart(0, "div", 23)(1, "div", 71);
2812
+ i0.ɵɵrepeaterCreate(2, OverallAssessmentComponent_Conditional_1_Conditional_23_For_3_Template, 1, 5, "symphiq-chart-container", 72, i0.ɵɵrepeaterTrackByIndex);
2803
2813
  i0.ɵɵelementEnd()();
2804
2814
  } if (rf & 2) {
2805
2815
  const ctx_r0 = i0.ɵɵnextContext(2);
@@ -2808,7 +2818,7 @@ function OverallAssessmentComponent_Conditional_1_Conditional_23_Template(rf, ct
2808
2818
  } }
2809
2819
  function OverallAssessmentComponent_Conditional_1_Conditional_61_Template(rf, ctx) { if (rf & 1) {
2810
2820
  const _r4 = i0.ɵɵgetCurrentView();
2811
- i0.ɵɵelementStart(0, "div", 35)(1, "symphiq-competitive-positioning-summary", 72);
2821
+ i0.ɵɵelementStart(0, "div", 35)(1, "symphiq-competitive-positioning-summary", 74);
2812
2822
  i0.ɵɵlistener("scrollToCompetitive", function OverallAssessmentComponent_Conditional_1_Conditional_61_Template_symphiq_competitive_positioning_summary_scrollToCompetitive_1_listener() { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.scrollToCompetitiveSection()); });
2813
2823
  i0.ɵɵelementEnd()();
2814
2824
  } if (rf & 2) {
@@ -3140,22 +3150,26 @@ class OverallAssessmentComponent {
3140
3150
  }, ...(ngDevMode ? [{ debugName: "revenueTooltip" }] : []));
3141
3151
  this.revenueStatusTooltip = computed(() => {
3142
3152
  const metric = this.revenueMetric();
3143
- return {
3144
- title: 'STATUS',
3145
- status: metric?.status || 'ON_TRACK',
3146
- description: metric?.description || ''
3147
- };
3153
+ if (!metric)
3154
+ return undefined;
3155
+ return this.tooltipDataService.extractStatusTooltipData(metric);
3148
3156
  }, ...(ngDevMode ? [{ debugName: "revenueStatusTooltip" }] : []));
3149
3157
  this.statusBadgeTooltip = computed(() => ({
3150
3158
  status: this.assessment().overallStatus || 'ON_TRACK',
3151
- pacingPercentage: this.calculateOverallPacing(),
3152
- progressPercent: this.calculateOverallPacing()
3159
+ description: this.assessment().overallStatusDescription
3153
3160
  }), ...(ngDevMode ? [{ debugName: "statusBadgeTooltip" }] : []));
3154
3161
  this.gradeTooltip = computed(() => ({
3155
3162
  title: 'Performance Grade',
3156
3163
  grade: this.assessment().grade || 'B',
3157
- explanation: this.getGradeExplanation()
3164
+ explanation: this.assessment().gradeDescription || this.getGradeExplanation()
3158
3165
  }), ...(ngDevMode ? [{ debugName: "gradeTooltip" }] : []));
3166
+ this.revenueTrendTooltip = computed(() => {
3167
+ const metric = this.revenueMetric();
3168
+ if (!metric)
3169
+ return undefined;
3170
+ const chart = this.charts().find(c => c.title?.includes('Revenue'));
3171
+ return this.tooltipDataService.extractTrendTooltipData(metric, chart);
3172
+ }, ...(ngDevMode ? [{ debugName: "revenueTrendTooltip" }] : []));
3159
3173
  }
3160
3174
  openChartModal(chart) {
3161
3175
  this.modalService.openChartModal(chart);
@@ -3352,7 +3366,7 @@ class OverallAssessmentComponent {
3352
3366
  }
3353
3367
  }
3354
3368
  static { this.ɵfac = function OverallAssessmentComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || OverallAssessmentComponent)(); }; }
3355
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: OverallAssessmentComponent, selectors: [["symphiq-funnel-analysis-overall-assessment"]], inputs: { assessment: [1, "assessment"], revenueMetric: [1, "revenueMetric"], charts: [1, "charts"], metrics: [1, "metrics"], isLightMode: [1, "isLightMode"], isLoading: [1, "isLoading"], isCompactMode: [1, "isCompactMode"], isChartsLoading: [1, "isChartsLoading"] }, outputs: { scrollToSection: "scrollToSection" }, decls: 2, vars: 1, consts: [[1, "rounded-2xl", "p-4", "sm:p-6", "lg:p-8", "border", "shadow-xl", "backdrop-blur-lg", 3, "class"], [1, "rounded-2xl", "p-4", "sm:p-6", "lg:p-8", "border", "shadow-xl", "transition-all", "duration-500", "hover:shadow-2xl", "group", "backdrop-blur-lg", 3, "class"], [1, "rounded-2xl", "p-4", "sm:p-6", "lg:p-8", "border", "shadow-xl", "backdrop-blur-lg"], [1, "space-y-6"], [1, "flex", "items-start", "justify-between", "gap-4"], [1, "flex-1", "space-y-3"], [3, "width", "height", "isLightMode"], [1, "flex", "gap-3"], [1, "grid", "grid-cols-2", "gap-4"], [1, "space-y-2"], [1, "rounded-2xl", "p-4", "sm:p-6", "lg:p-8", "border", "shadow-xl", "transition-all", "duration-500", "hover:shadow-2xl", "group", "backdrop-blur-lg"], [1, "flex", "flex-col", "sm:flex-row", "items-start", "justify-between", "gap-4", "mb-4", "sm:mb-6"], [1, "flex-1"], [1, "text-2xl", "sm:text-3xl", "font-bold", "mb-2"], [1, "text-sm", "sm:text-base"], [1, "flex", "items-center", "gap-3", "sm:gap-4", "w-full", "sm:w-auto"], ["tooltipType", "status", 1, "text-center", "flex-1", "sm:flex-initial", "transition-all", "duration-300", "hover:scale-105", 3, "ngStyle", "libSymphiqTooltip", "tooltipPosition"], [1, "text-xs", "font-semibold", "uppercase", "tracking-wider", "mb-1"], [1, "text-base", "sm:text-lg", "font-bold", "flex", "items-center", "justify-center", "gap-2"], [1, "text-lg"], ["tooltipType", "badge", 1, "flex-1", "sm:flex-initial", "transition-all", "duration-300", "hover:scale-110", 3, "libSymphiqTooltip", "tooltipPosition"], [1, "text-3xl", "sm:text-4xl", "font-bold"], [1, "flex", "flex-wrap", "gap-4", "mb-6", "sm:mb-8"], [1, "mb-4", "sm:mb-6"], [1, "grid", "grid-cols-1", "md:grid-cols-2", "gap-4", "sm:gap-6"], [1, "rounded-xl", "p-4", "sm:p-6", "border", "transition-all", "duration-300", "hover:scale-105", "hover:shadow-xl"], [1, "flex", "items-center", "gap-3", "mb-3"], [1, "w-8", "h-8", "sm:w-10", "sm:h-10", "rounded-lg", "flex", "items-center", "justify-center", "flex-shrink-0"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-5", "h-5", "sm:w-6", "sm:h-6"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"], [1, "text-base", "sm:text-lg", "font-semibold"], [1, "text-xs", "sm:text-sm", "leading-relaxed"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"], [1, "mt-6", "sm:mt-8"], [1, "flex-shrink-0", "rounded-xl", "p-6", "sm:p-8", "border-2", "transition-all", "duration-500", "hover:scale-[1.01]", 3, "class"], [1, "flex-1", "min-w-[300px]", "rounded-xl", "p-4", "sm:p-6", "border", "transition-all", "duration-300", "hover:shadow-xl", "hover:scale-[1.01]", "group"], [1, "text-sm", "sm:text-base", "leading-relaxed"], [1, "flex-shrink-0", "rounded-xl", "p-6", "sm:p-8", "border-2", "transition-all", "duration-500", "hover:scale-[1.01]"], [1, "w-10", "h-10", "sm:w-12", "sm:h-12", "rounded-lg", "flex", "items-center", "justify-center", "flex-shrink-0"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-6", "h-6", "sm:w-7", "sm:h-7"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1M21 12a9 9 0 11-18 0 9 9 0 0118 0z"], [1, "min-w-0", "flex-1"], [1, "text-xs", "sm:text-sm", "font-semibold", "uppercase", "tracking-wider"], ["tooltipType", "metric", 1, "text-2xl", "sm:text-3xl", "lg:text-4xl", "font-bold", "truncate", "transition-all", "duration-300", "hover:scale-105", 3, "libSymphiqTooltip", "tooltipPosition"], [1, "flex", "flex-col", "gap-2", "mb-3"], [1, "flex", "flex-col", "sm:flex-row", "sm:items-center", "gap-2", "sm:gap-4"], [1, "flex", "items-center", "gap-2"], ["fill", "currentColor", "viewBox", "0 0 20 20", 1, "w-4", "h-4", "flex-shrink-0"], ["fill-rule", "evenodd", "d", "M5.293 9.707a1 1 0 010-1.414l4-4a1 1 0 011.414 0l4 4a1 1 0 01-1.414 1.414L11 7.414V15a1 1 0 11-2 0V7.414L6.707 9.707a1 1 0 01-1.414 0z", "clip-rule", "evenodd"], [1, "font-semibold", "text-base"], [1, "text-xs"], [1, "hidden", "sm:block", "h-6", "w-px", "bg-slate-600"], [1, "font-semibold", "text-sm"], ["tooltipType", "status", 1, "inline-flex", "items-center", "gap-2", "px-3", "sm:px-4", "py-1.5", "sm:py-2", "rounded-lg", "font-bold", "text-base", "sm:text-lg", "transition-all", "duration-300", 3, "ngStyle", "libSymphiqTooltip", "tooltipPosition"], [1, "rounded-xl", "p-6", "sm:p-8", "mb-6", "sm:mb-8", "border-2", "transition-all", "duration-500", "hover:scale-[1.01]", 3, "class"], [1, "rounded-xl", "p-4", "sm:p-6", "mb-4", "sm:mb-6", "border", "transition-all", "duration-300", "hover:shadow-xl", "hover:scale-[1.01]", "group"], [1, "rounded-xl", "p-6", "sm:p-8", "mb-6", "sm:mb-8", "border-2", "transition-all", "duration-500", "hover:scale-[1.01]"], [1, "flex", "flex-col", "md:flex-row", "items-start", "md:items-center", "gap-4", "md:gap-0"], [1, "flex-1", "w-full"], [1, "flex", "flex-col", "gap-2", "mt-4"], ["fill", "currentColor", "viewBox", "0 0 20 20", 1, "w-4", "h-4", "sm:w-5", "sm:h-5", "flex-shrink-0"], [1, "font-semibold", "text-base", "sm:text-lg"], [1, "text-xs", "sm:text-sm"], [1, "font-semibold", "text-sm", "sm:text-base"], [1, "w-full", "md:w-auto", "md:text-right", "md:ml-4"], [1, "inline-flex", "items-center", "gap-2", "px-3", "sm:px-4", "py-1.5", "sm:py-2", "rounded-lg", "font-bold", "text-base", "sm:text-lg", "transition-all", "duration-300", 3, "ngStyle"], [1, "mt-2", "text-xs", "sm:text-sm"], [1, "grid", "grid-cols-1", "lg:grid-cols-2", "gap-4"], [3, "chart", "isLightMode", "isCompactMode", "collapsibleIn", "isLoading"], [3, "chartClick", "chart", "isLightMode", "isCompactMode", "collapsibleIn", "isLoading"], [3, "scrollToCompetitive", "metrics", "isLightMode", "isCompactMode"]], template: function OverallAssessmentComponent_Template(rf, ctx) { if (rf & 1) {
3369
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: OverallAssessmentComponent, selectors: [["symphiq-funnel-analysis-overall-assessment"]], inputs: { assessment: [1, "assessment"], revenueMetric: [1, "revenueMetric"], charts: [1, "charts"], metrics: [1, "metrics"], isLightMode: [1, "isLightMode"], isLoading: [1, "isLoading"], isCompactMode: [1, "isCompactMode"], isChartsLoading: [1, "isChartsLoading"] }, outputs: { scrollToSection: "scrollToSection" }, decls: 2, vars: 1, consts: [[1, "rounded-2xl", "p-4", "sm:p-6", "lg:p-8", "border", "shadow-xl", "backdrop-blur-lg", 3, "class"], [1, "rounded-2xl", "p-4", "sm:p-6", "lg:p-8", "border", "shadow-xl", "transition-all", "duration-500", "hover:shadow-2xl", "group", "backdrop-blur-lg", 3, "class"], [1, "rounded-2xl", "p-4", "sm:p-6", "lg:p-8", "border", "shadow-xl", "backdrop-blur-lg"], [1, "space-y-6"], [1, "flex", "items-start", "justify-between", "gap-4"], [1, "flex-1", "space-y-3"], [3, "width", "height", "isLightMode"], [1, "flex", "gap-3"], [1, "grid", "grid-cols-2", "gap-4"], [1, "space-y-2"], [1, "rounded-2xl", "p-4", "sm:p-6", "lg:p-8", "border", "shadow-xl", "transition-all", "duration-500", "hover:shadow-2xl", "group", "backdrop-blur-lg"], [1, "flex", "flex-col", "sm:flex-row", "items-start", "justify-between", "gap-4", "mb-4", "sm:mb-6"], [1, "flex-1"], [1, "text-2xl", "sm:text-3xl", "font-bold", "mb-2"], [1, "text-sm", "sm:text-base"], [1, "flex", "items-center", "gap-3", "sm:gap-4", "w-full", "sm:w-auto"], ["tooltipType", "status", 1, "text-center", "flex-1", "sm:flex-initial", "transition-all", "duration-300", "hover:scale-105", 3, "ngStyle", "libSymphiqTooltip", "tooltipPosition"], [1, "text-xs", "font-semibold", "uppercase", "tracking-wider", "mb-1"], [1, "text-base", "sm:text-lg", "font-bold", "flex", "items-center", "justify-center", "gap-2"], [1, "text-lg"], ["tooltipType", "badge", 1, "flex-1", "sm:flex-initial", "transition-all", "duration-300", "hover:scale-110", 3, "libSymphiqTooltip", "tooltipPosition"], [1, "text-3xl", "sm:text-4xl", "font-bold"], [1, "flex", "flex-wrap", "gap-4", "mb-6", "sm:mb-8"], [1, "mb-4", "sm:mb-6"], [1, "grid", "grid-cols-1", "md:grid-cols-2", "gap-4", "sm:gap-6"], [1, "rounded-xl", "p-4", "sm:p-6", "border", "transition-all", "duration-300", "hover:scale-105", "hover:shadow-xl"], [1, "flex", "items-center", "gap-3", "mb-3"], [1, "w-8", "h-8", "sm:w-10", "sm:h-10", "rounded-lg", "flex", "items-center", "justify-center", "flex-shrink-0"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-5", "h-5", "sm:w-6", "sm:h-6"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"], [1, "text-base", "sm:text-lg", "font-semibold"], [1, "text-xs", "sm:text-sm", "leading-relaxed"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"], [1, "mt-6", "sm:mt-8"], [1, "flex-shrink-0", "rounded-xl", "p-6", "sm:p-8", "border-2", "transition-all", "duration-500", "hover:scale-[1.01]", 3, "class"], [1, "flex-1", "min-w-[300px]", "rounded-xl", "p-4", "sm:p-6", "border", "transition-all", "duration-300", "hover:shadow-xl", "hover:scale-[1.01]", "group"], [1, "text-sm", "sm:text-base", "leading-relaxed"], [1, "flex-shrink-0", "rounded-xl", "p-6", "sm:p-8", "border-2", "transition-all", "duration-500", "hover:scale-[1.01]"], [1, "w-10", "h-10", "sm:w-12", "sm:h-12", "rounded-lg", "flex", "items-center", "justify-center", "flex-shrink-0"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-6", "h-6", "sm:w-7", "sm:h-7"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1M21 12a9 9 0 11-18 0 9 9 0 0118 0z"], [1, "min-w-0", "flex-1"], [1, "text-xs", "sm:text-sm", "font-semibold", "uppercase", "tracking-wider"], ["tooltipType", "metric", 1, "text-2xl", "sm:text-3xl", "lg:text-4xl", "font-bold", "truncate", "transition-all", "duration-300", "hover:scale-105", 3, "libSymphiqTooltip", "tooltipPosition"], [1, "flex", "flex-col", "gap-2", "mb-3"], [1, "flex", "flex-col", "sm:flex-row", "sm:items-center", "gap-2", "sm:gap-4"], ["tooltipType", "trend", 1, "flex", "items-center", "gap-2", 3, "libSymphiqTooltip", "tooltipPosition"], ["fill", "currentColor", "viewBox", "0 0 20 20", 1, "w-4", "h-4", "flex-shrink-0"], ["fill-rule", "evenodd", "d", "M5.293 9.707a1 1 0 010-1.414l4-4a1 1 0 011.414 0l4 4a1 1 0 01-1.414 1.414L11 7.414V15a1 1 0 11-2 0V7.414L6.707 9.707a1 1 0 01-1.414 0z", "clip-rule", "evenodd"], [1, "font-semibold", "text-base"], [1, "text-xs"], [1, "hidden", "sm:block", "h-6", "w-px", "bg-slate-600"], ["tooltipType", "status", 3, "libSymphiqTooltip", "tooltipPosition"], [1, "font-semibold", "text-sm"], ["tooltipType", "status", 1, "flex", "items-center", "gap-2", 3, "libSymphiqTooltip", "tooltipPosition"], ["tooltipType", "status", 1, "inline-flex", "items-center", "gap-2", "px-3", "sm:px-4", "py-1.5", "sm:py-2", "rounded-lg", "font-bold", "text-base", "sm:text-lg", "transition-all", "duration-300", 3, "ngStyle", "libSymphiqTooltip", "tooltipPosition"], [1, "rounded-xl", "p-6", "sm:p-8", "mb-6", "sm:mb-8", "border-2", "transition-all", "duration-500", "hover:scale-[1.01]", 3, "class"], [1, "rounded-xl", "p-4", "sm:p-6", "mb-4", "sm:mb-6", "border", "transition-all", "duration-300", "hover:shadow-xl", "hover:scale-[1.01]", "group"], [1, "rounded-xl", "p-6", "sm:p-8", "mb-6", "sm:mb-8", "border-2", "transition-all", "duration-500", "hover:scale-[1.01]"], [1, "flex", "flex-col", "md:flex-row", "items-start", "md:items-center", "gap-4", "md:gap-0"], [1, "flex-1", "w-full"], [1, "flex", "flex-col", "gap-2", "mt-4"], ["fill", "currentColor", "viewBox", "0 0 20 20", 1, "w-4", "h-4", "sm:w-5", "sm:h-5", "flex-shrink-0"], [1, "font-semibold", "text-base", "sm:text-lg"], [1, "text-xs", "sm:text-sm"], [1, "font-semibold", "text-sm", "sm:text-base"], [1, "w-full", "md:w-auto", "md:text-right", "md:ml-4"], [1, "inline-flex", "items-center", "gap-2", "px-3", "sm:px-4", "py-1.5", "sm:py-2", "rounded-lg", "font-bold", "text-base", "sm:text-lg", "transition-all", "duration-300", 3, "ngStyle"], [1, "mt-2", "text-xs", "sm:text-sm"], [1, "grid", "grid-cols-1", "lg:grid-cols-2", "gap-4"], [3, "chart", "isLightMode", "isCompactMode", "collapsibleIn", "isLoading"], [3, "chartClick", "chart", "isLightMode", "isCompactMode", "collapsibleIn", "isLoading"], [3, "scrollToCompetitive", "metrics", "isLightMode", "isCompactMode"]], template: function OverallAssessmentComponent_Template(rf, ctx) { if (rf & 1) {
3356
3370
  i0.ɵɵconditionalCreate(0, OverallAssessmentComponent_Conditional_0_Template, 13, 18, "div", 0)(1, OverallAssessmentComponent_Conditional_1_Template, 62, 72, "div", 1);
3357
3371
  } if (rf & 2) {
3358
3372
  i0.ɵɵconditional(ctx.isLoading() ? 0 : 1);
@@ -3448,7 +3462,11 @@ class OverallAssessmentComponent {
3448
3462
  </div>
3449
3463
  <div class="flex flex-col gap-2 mb-3">
3450
3464
  <div class="flex flex-col sm:flex-row sm:items-center gap-2 sm:gap-4">
3451
- <div class="flex items-center gap-2">
3465
+ <div
3466
+ class="flex items-center gap-2"
3467
+ [libSymphiqTooltip]="revenueTrendTooltip()"
3468
+ tooltipType="trend"
3469
+ [tooltipPosition]="'top'">
3452
3470
  <svg [class]="trendIconClass()" class="w-4 h-4 flex-shrink-0" fill="currentColor" viewBox="0 0 20 20">
3453
3471
  <path fill-rule="evenodd" d="M5.293 9.707a1 1 0 010-1.414l4-4a1 1 0 011.414 0l4 4a1 1 0 01-1.414 1.414L11 7.414V15a1 1 0 11-2 0V7.414L6.707 9.707a1 1 0 01-1.414 0z" clip-rule="evenodd" />
3454
3472
  </svg>
@@ -3456,13 +3474,20 @@ class OverallAssessmentComponent {
3456
3474
  <span [class]="badgeLabelClass()" class="text-xs">vs last year</span>
3457
3475
  </div>
3458
3476
  <div class="hidden sm:block h-6 w-px bg-slate-600"></div>
3459
- <div>
3477
+ <div
3478
+ [libSymphiqTooltip]="revenueStatusTooltip()"
3479
+ tooltipType="status"
3480
+ [tooltipPosition]="'top'">
3460
3481
  <span [class]="badgeLabelClass()" class="text-xs">Target: </span>
3461
3482
  <span [class]="titleClass()" class="font-semibold text-sm">{{ formattedRevenueTarget() }}</span>
3462
3483
  </div>
3463
3484
  </div>
3464
3485
  @if (hasRevenuePacing()) {
3465
- <div class="flex items-center gap-2">
3486
+ <div
3487
+ class="flex items-center gap-2"
3488
+ [libSymphiqTooltip]="revenueStatusTooltip()"
3489
+ tooltipType="status"
3490
+ [tooltipPosition]="'top'">
3466
3491
  <span [class]="badgeLabelClass()" class="text-xs">2025 Pacing: </span>
3467
3492
  <span [class]="titleClass()" class="font-semibold text-sm">{{ formattedRevenuePacing() }}</span>
3468
3493
  </div>
@@ -3511,7 +3536,11 @@ class OverallAssessmentComponent {
3511
3536
  </div>
3512
3537
  <div class="flex flex-col gap-2 mt-4">
3513
3538
  <div class="flex flex-col sm:flex-row sm:items-center gap-2 sm:gap-4">
3514
- <div class="flex items-center gap-2">
3539
+ <div
3540
+ class="flex items-center gap-2"
3541
+ [libSymphiqTooltip]="revenueTrendTooltip()"
3542
+ tooltipType="trend"
3543
+ [tooltipPosition]="'top'">
3515
3544
  <svg [class]="trendIconClass()" class="w-4 h-4 sm:w-5 sm:h-5 flex-shrink-0" fill="currentColor" viewBox="0 0 20 20">
3516
3545
  <path fill-rule="evenodd" d="M5.293 9.707a1 1 0 010-1.414l4-4a1 1 0 011.414 0l4 4a1 1 0 01-1.414 1.414L11 7.414V15a1 1 0 11-2 0V7.414L6.707 9.707a1 1 0 01-1.414 0z" clip-rule="evenodd" />
3517
3546
  </svg>
@@ -3519,13 +3548,20 @@ class OverallAssessmentComponent {
3519
3548
  <span [class]="badgeLabelClass()" class="text-xs sm:text-sm">vs last year</span>
3520
3549
  </div>
3521
3550
  <div class="hidden sm:block h-6 w-px bg-slate-600"></div>
3522
- <div>
3551
+ <div
3552
+ [libSymphiqTooltip]="revenueStatusTooltip()"
3553
+ tooltipType="status"
3554
+ [tooltipPosition]="'top'">
3523
3555
  <span [class]="badgeLabelClass()" class="text-xs sm:text-sm">Target: </span>
3524
3556
  <span [class]="titleClass()" class="font-semibold text-sm sm:text-base">{{ formattedRevenueTarget() }}</span>
3525
3557
  </div>
3526
3558
  </div>
3527
3559
  @if (hasRevenuePacing()) {
3528
- <div class="flex items-center gap-2">
3560
+ <div
3561
+ class="flex items-center gap-2"
3562
+ [libSymphiqTooltip]="revenueStatusTooltip()"
3563
+ tooltipType="status"
3564
+ [tooltipPosition]="'top'">
3529
3565
  <span [class]="badgeLabelClass()" class="text-xs sm:text-sm">2025 Pacing: </span>
3530
3566
  <span [class]="titleClass()" class="font-semibold text-sm sm:text-base">{{ formattedRevenuePacing() }}</span>
3531
3567
  </div>
@@ -3624,7 +3660,7 @@ class OverallAssessmentComponent {
3624
3660
  `,
3625
3661
  }]
3626
3662
  }], null, { assessment: [{ type: i0.Input, args: [{ isSignal: true, alias: "assessment", required: false }] }], revenueMetric: [{ type: i0.Input, args: [{ isSignal: true, alias: "revenueMetric", required: false }] }], charts: [{ type: i0.Input, args: [{ isSignal: true, alias: "charts", required: false }] }], metrics: [{ type: i0.Input, args: [{ isSignal: true, alias: "metrics", required: false }] }], isLightMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLightMode", required: false }] }], isLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLoading", required: false }] }], isCompactMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "isCompactMode", required: false }] }], isChartsLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "isChartsLoading", required: false }] }], scrollToSection: [{ type: i0.Output, args: ["scrollToSection"] }] }); })();
3627
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(OverallAssessmentComponent, { className: "OverallAssessmentComponent", filePath: "lib/components/funnel-analysis-dashboard/overall-assessment.component.ts", lineNumber: 274 }); })();
3663
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(OverallAssessmentComponent, { className: "OverallAssessmentComponent", filePath: "lib/components/funnel-analysis-dashboard/overall-assessment.component.ts", lineNumber: 296 }); })();
3628
3664
 
3629
3665
  const _c0$8 = () => [1, 2, 3];
3630
3666
  const _c1$2 = () => [1, 2, 3, 4];
@@ -11777,7 +11813,9 @@ const FUNNEL_ANALYSIS = ({
11777
11813
  "overallAssessment": {
11778
11814
  "performanceItemId": "OVERALL_ASSESSMENT",
11779
11815
  "grade": "C",
11816
+ "gradeDescription": "This is an example grade description",
11780
11817
  "overallStatus": "AT_RISK",
11818
+ "overallStatusDescription": "This is an example overall description",
11781
11819
  "narrative": "The business is experiencing robust growth in traffic and revenue, with desktop and organic channels leading performance. However, conversion rates have declined, and the funnel is leaking at multiple stages, particularly on mobile. Addressing conversion bottlenecks and optimizing the mobile experience are critical to unlocking further revenue growth.",
11782
11820
  "priorYearTrend": "Strong growth in traffic and revenue compared to prior year, but conversion rates have declined.",
11783
11821
  "targetPacingStatus": "Falling behind target pace for purchases and conversion rates, but overachieving in traffic and average order value. Immediate action needed to address conversion bottlenecks and mobile performance.",