@eric-emg/symphiq-components 1.2.177 → 1.2.178

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.
@@ -14,6 +14,7 @@ import * as i2$1 from '@angular/forms';
14
14
  import { FormsModule, FormBuilder, Validators, ReactiveFormsModule } from '@angular/forms';
15
15
  import { trigger, transition, style, animate } from '@angular/animations';
16
16
  import { toObservable, toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';
17
+ import { MarkdownComponent } from 'ngx-markdown';
17
18
  import { Root, color, Tooltip, Bullet, Circle, Legend, percent, p100, p50 } from '@amcharts/amcharts5';
18
19
  import { XYChart, CategoryAxis, AxisRendererX, ValueAxis, AxisRendererY, XYCursor, LineSeries, DateAxis, ColumnSeries } from '@amcharts/amcharts5/xy';
19
20
  import am5themes_Animated from '@amcharts/amcharts5/themes/Animated';
@@ -2534,7 +2535,7 @@ class ConfettiService {
2534
2535
  }]
2535
2536
  }], null, null); })();
2536
2537
 
2537
- const _c0$15 = a0 => ["skeleton-loader", "rounded-lg", "relative", "overflow-hidden", a0];
2538
+ const _c0$16 = a0 => ["skeleton-loader", "rounded-lg", "relative", "overflow-hidden", a0];
2538
2539
  const _c1$C = a0 => ["skeleton-shimmer-overlay", "absolute", "inset-0", "bg-gradient-to-r", a0];
2539
2540
  class SkeletonLoaderComponent {
2540
2541
  constructor() {
@@ -2551,7 +2552,7 @@ class SkeletonLoaderComponent {
2551
2552
  } if (rf & 2) {
2552
2553
  i0.ɵɵstyleProp("width", ctx.width())("height", ctx.height());
2553
2554
  i0.ɵɵclassProp("skeleton-shimmer", true)("skeleton-pulse", ctx.pulse());
2554
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(10, _c0$15, ctx.isLightMode() ? "bg-slate-200/80" : "bg-slate-700/80"));
2555
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(10, _c0$16, ctx.isLightMode() ? "bg-slate-200/80" : "bg-slate-700/80"));
2555
2556
  i0.ɵɵadvance();
2556
2557
  i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(12, _c1$C, ctx.isLightMode() ? "from-transparent via-white/60 to-transparent" : "from-transparent via-slate-500/40 to-transparent"));
2557
2558
  } }, dependencies: [NgClass], styles: [".skeleton-loader[_ngcontent-%COMP%]{position:relative;overflow:hidden}.skeleton-shimmer-overlay[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_shimmer 2s infinite cubic-bezier(.4,0,.6,1);transform:translate(-100%)}@keyframes _ngcontent-%COMP%_shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.skeleton-pulse[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes _ngcontent-%COMP%_pulse{0%,to{opacity:1}50%{opacity:.6}}"], changeDetection: 0 }); }
@@ -2591,7 +2592,7 @@ const ChartContainerComponent_Conditional_1_Conditional_13_Defer_2_DepsFn = () =
2591
2592
  const ChartContainerComponent_Conditional_1_Conditional_14_Defer_2_DepsFn = () => [Promise.resolve().then(function () { return barChart_component; }).then(m => m.BarChartComponent)];
2592
2593
  const ChartContainerComponent_Conditional_1_Conditional_15_Defer_2_DepsFn = () => [Promise.resolve().then(function () { return pieChart_component; }).then(m => m.PieChartComponent)];
2593
2594
  const ChartContainerComponent_Conditional_1_Conditional_16_Defer_2_DepsFn = () => [Promise.resolve().then(function () { return areaChart_component; }).then(m => m.AreaChartComponent)];
2594
- const _c0$14 = (a0, a1) => [a0, a1];
2595
+ const _c0$15 = (a0, a1) => [a0, a1];
2595
2596
  function ChartContainerComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
2596
2597
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 2);
2597
2598
  i0.ɵɵelement(2, "symphiq-skeleton-loader", 3)(3, "symphiq-skeleton-loader", 3);
@@ -2643,7 +2644,7 @@ function ChartContainerComponent_Conditional_1_Conditional_11_Template(rf, ctx)
2643
2644
  i0.ɵɵelementEnd()();
2644
2645
  } if (rf & 2) {
2645
2646
  const ctx_r0 = i0.ɵɵnextContext(2);
2646
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(1, _c0$14, ctx_r0.iconClass(), ctx_r0.isLightMode() ? "bg-white/90 hover:bg-white" : "bg-slate-800/90 hover:bg-slate-800"));
2647
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(1, _c0$15, ctx_r0.iconClass(), ctx_r0.isLightMode() ? "bg-white/90 hover:bg-white" : "bg-slate-800/90 hover:bg-slate-800"));
2647
2648
  } }
2648
2649
  function ChartContainerComponent_Conditional_1_Conditional_13_Defer_0_Template(rf, ctx) { if (rf & 1) {
2649
2650
  i0.ɵɵelement(0, "symphiq-line-chart", 23);
@@ -4245,7 +4246,7 @@ class CompetitivePositioningSummaryComponent {
4245
4246
  }], null, { metrics: [{ type: i0.Input, args: [{ isSignal: true, alias: "metrics", required: false }] }], isLightMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLightMode", required: false }] }], isCompactMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "isCompactMode", required: false }] }], overallDescription: [{ type: i0.Input, args: [{ isSignal: true, alias: "overallDescription", required: false }] }], competitiveBenchmark: [{ type: i0.Input, args: [{ isSignal: true, alias: "competitiveBenchmark", required: false }] }], currencySymbol: [{ type: i0.Input, args: [{ isSignal: true, alias: "currencySymbol", required: false }] }], scrollToCompetitive: [{ type: i0.Output, args: ["scrollToCompetitive"] }] }); })();
4246
4247
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CompetitivePositioningSummaryComponent, { className: "CompetitivePositioningSummaryComponent", filePath: "lib/components/funnel-analysis-dashboard/competitive-positioning-summary.component.ts", lineNumber: 298 }); })();
4247
4248
 
4248
- const _c0$13 = () => [1, 2, 3, 4];
4249
+ const _c0$14 = () => [1, 2, 3, 4];
4249
4250
  function OverallAssessmentComponent_Conditional_0_For_10_Template(rf, ctx) { if (rf & 1) {
4250
4251
  i0.ɵɵelementStart(0, "div", 9);
4251
4252
  i0.ɵɵelement(1, "symphiq-skeleton-loader", 6)(2, "symphiq-skeleton-loader", 6);
@@ -4279,7 +4280,7 @@ function OverallAssessmentComponent_Conditional_0_Template(rf, ctx) { if (rf & 1
4279
4280
  i0.ɵɵadvance(2);
4280
4281
  i0.ɵɵproperty("width", "100px")("height", "70px")("isLightMode", ctx_r0.isLightMode());
4281
4282
  i0.ɵɵadvance(2);
4282
- i0.ɵɵrepeater(i0.ɵɵpureFunction0(14, _c0$13));
4283
+ i0.ɵɵrepeater(i0.ɵɵpureFunction0(14, _c0$14));
4283
4284
  i0.ɵɵadvance(2);
4284
4285
  i0.ɵɵproperty("width", "100%")("height", "200px")("isLightMode", ctx_r0.isLightMode());
4285
4286
  } }
@@ -5494,7 +5495,7 @@ class OverallAssessmentComponent {
5494
5495
  }], 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 }] }], strengths: [{ type: i0.Input, args: [{ isSignal: true, alias: "strengths", required: false }] }], weaknesses: [{ type: i0.Input, args: [{ isSignal: true, alias: "weaknesses", required: false }] }], currencySymbol: [{ type: i0.Input, args: [{ isSignal: true, alias: "currencySymbol", required: false }] }], scrollToSection: [{ type: i0.Output, args: ["scrollToSection"] }] }); })();
5495
5496
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(OverallAssessmentComponent, { className: "OverallAssessmentComponent", filePath: "lib/components/funnel-analysis-dashboard/overall-assessment.component.ts", lineNumber: 303 }); })();
5496
5497
 
5497
- const _c0$12 = () => [1, 2, 3];
5498
+ const _c0$13 = () => [1, 2, 3];
5498
5499
  const _c1$B = () => [1, 2, 3, 4];
5499
5500
  const _c2$q = () => [];
5500
5501
  function InsightCardComponent_Conditional_0_Conditional_0_For_7_Template(rf, ctx) { if (rf & 1) {
@@ -5532,7 +5533,7 @@ function InsightCardComponent_Conditional_0_Conditional_0_Template(rf, ctx) { if
5532
5533
  i0.ɵɵadvance();
5533
5534
  i0.ɵɵproperty("width", "60%")("height", "20px")("isLightMode", ctx_r0.isLightMode());
5534
5535
  i0.ɵɵadvance();
5535
- i0.ɵɵrepeater(i0.ɵɵpureFunction0(8, _c0$12));
5536
+ i0.ɵɵrepeater(i0.ɵɵpureFunction0(8, _c0$13));
5536
5537
  i0.ɵɵadvance(3);
5537
5538
  i0.ɵɵrepeater(i0.ɵɵpureFunction0(9, _c1$B));
5538
5539
  } }
@@ -8232,7 +8233,7 @@ class MetricCardComponent {
8232
8233
  }], () => [], { metric: [{ type: i0.Input, args: [{ isSignal: true, alias: "metric", required: false }] }], insights: [{ type: i0.Input, args: [{ isSignal: true, alias: "insights", required: false }] }], charts: [{ type: i0.Input, args: [{ isSignal: true, alias: "charts", required: false }] }], allCharts: [{ type: i0.Input, args: [{ isSignal: true, alias: "allCharts", required: false }] }], analysis: [{ type: i0.Input, args: [{ isSignal: true, alias: "analysis", 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 }] }], isInModal: [{ type: i0.Input, args: [{ isSignal: true, alias: "isInModal", required: false }] }], currentModalState: [{ type: i0.Input, args: [{ isSignal: true, alias: "currentModalState", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], initialExpandedSection: [{ type: i0.Input, args: [{ isSignal: true, alias: "initialExpandedSection", required: false }] }], currencySymbol: [{ type: i0.Input, args: [{ isSignal: true, alias: "currencySymbol", required: false }] }] }); })();
8233
8234
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MetricCardComponent, { className: "MetricCardComponent", filePath: "lib/components/funnel-analysis-dashboard/metric-card.component.ts", lineNumber: 537 }); })();
8234
8235
 
8235
- const _c0$11 = () => [1, 2, 3];
8236
+ const _c0$12 = () => [1, 2, 3];
8236
8237
  const _c1$A = (a0, a1, a2) => [a0, a1, a2];
8237
8238
  const _c2$p = (a0, a1) => [a0, a1];
8238
8239
  const _forTrack0$O = ($index, $item) => $item.metric;
@@ -8262,7 +8263,7 @@ function BreakdownSectionComponent_Conditional_0_For_7_Template(rf, ctx) { if (r
8262
8263
  i0.ɵɵadvance();
8263
8264
  i0.ɵɵproperty("width", "30%")("height", "18px")("isLightMode", ctx_r0.isLightMode());
8264
8265
  i0.ɵɵadvance(2);
8265
- i0.ɵɵrepeater(i0.ɵɵpureFunction0(3, _c0$11));
8266
+ i0.ɵɵrepeater(i0.ɵɵpureFunction0(3, _c0$12));
8266
8267
  } }
8267
8268
  function BreakdownSectionComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
8268
8269
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 2);
@@ -8281,7 +8282,7 @@ function BreakdownSectionComponent_Conditional_0_Template(rf, ctx) { if (rf & 1)
8281
8282
  i0.ɵɵadvance();
8282
8283
  i0.ɵɵproperty("width", "85%")("height", "14px")("isLightMode", ctx_r0.isLightMode());
8283
8284
  i0.ɵɵadvance(2);
8284
- i0.ɵɵrepeater(i0.ɵɵpureFunction0(10, _c0$11));
8285
+ i0.ɵɵrepeater(i0.ɵɵpureFunction0(10, _c0$12));
8285
8286
  } }
8286
8287
  function BreakdownSectionComponent_Conditional_1_Conditional_6_For_2_Template(rf, ctx) { if (rf & 1) {
8287
8288
  const _r2 = i0.ɵɵgetCurrentView();
@@ -12450,7 +12451,7 @@ class FunnelWeaknessesListModalContentComponent {
12450
12451
  }], null, { weaknesses: [{ type: i0.Input, args: [{ isSignal: true, alias: "weaknesses", required: true }] }], isLightMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLightMode", required: true }] }] }); })();
12451
12452
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FunnelWeaknessesListModalContentComponent, { className: "FunnelWeaknessesListModalContentComponent", filePath: "lib/components/funnel-analysis-dashboard/funnel-weaknesses-list-modal-content.component.ts", lineNumber: 132 }); })();
12452
12453
 
12453
- const _c0$10 = () => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
12454
+ const _c0$11 = () => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
12454
12455
  function FunnelStrengthDetailModalContentComponent_For_18_Template(rf, ctx) { if (rf & 1) {
12455
12456
  i0.ɵɵelement(0, "div", 12);
12456
12457
  } if (rf & 2) {
@@ -12726,7 +12727,7 @@ class FunnelStrengthDetailModalContentComponent {
12726
12727
  i0.ɵɵadvance();
12727
12728
  i0.ɵɵproperty("ngClass", ctx.impactScoreLabelClasses());
12728
12729
  i0.ɵɵadvance(3);
12729
- i0.ɵɵrepeater(i0.ɵɵpureFunction0(35, _c0$10));
12730
+ i0.ɵɵrepeater(i0.ɵɵpureFunction0(35, _c0$11));
12730
12731
  i0.ɵɵadvance(2);
12731
12732
  i0.ɵɵproperty("ngClass", ctx.titleClasses());
12732
12733
  i0.ɵɵadvance();
@@ -12902,7 +12903,7 @@ class FunnelStrengthDetailModalContentComponent {
12902
12903
  }], null, { strength: [{ type: i0.Input, args: [{ isSignal: true, alias: "strength", required: true }] }], isLightMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLightMode", required: true }] }], allMetrics: [{ type: i0.Input, args: [{ isSignal: true, alias: "allMetrics", required: false }] }], allCharts: [{ type: i0.Input, args: [{ isSignal: true, alias: "allCharts", required: false }] }], currentModalState: [{ type: i0.Input, args: [{ isSignal: true, alias: "currentModalState", required: false }] }] }); })();
12903
12904
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FunnelStrengthDetailModalContentComponent, { className: "FunnelStrengthDetailModalContentComponent", filePath: "lib/components/funnel-analysis-dashboard/funnel-strength-detail-modal-content.component.ts", lineNumber: 128 }); })();
12904
12905
 
12905
- const _c0$$ = () => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
12906
+ const _c0$10 = () => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
12906
12907
  function FunnelWeaknessDetailModalContentComponent_For_27_Template(rf, ctx) { if (rf & 1) {
12907
12908
  i0.ɵɵelement(0, "div", 17);
12908
12909
  } if (rf & 2) {
@@ -13413,7 +13414,7 @@ class FunnelWeaknessDetailModalContentComponent {
13413
13414
  i0.ɵɵadvance();
13414
13415
  i0.ɵɵproperty("ngClass", ctx.impactScoreLabelClasses());
13415
13416
  i0.ɵɵadvance(3);
13416
- i0.ɵɵrepeater(i0.ɵɵpureFunction0(49, _c0$$));
13417
+ i0.ɵɵrepeater(i0.ɵɵpureFunction0(49, _c0$10));
13417
13418
  i0.ɵɵadvance(2);
13418
13419
  i0.ɵɵproperty("ngClass", ctx.titleClasses());
13419
13420
  i0.ɵɵadvance();
@@ -13882,7 +13883,7 @@ class ProfileItemLookupService {
13882
13883
  }]
13883
13884
  }], null, null); })();
13884
13885
 
13885
- const _c0$_ = a0 => ({ name: "chevron-right", source: a0 });
13886
+ const _c0$$ = a0 => ({ name: "chevron-right", source: a0 });
13886
13887
  const _forTrack0$L = ($index, $item) => $item.id;
13887
13888
  function RelatedAreaChipsComponent_Conditional_0_For_2_Template(rf, ctx) { if (rf & 1) {
13888
13889
  const _r1 = i0.ɵɵgetCurrentView();
@@ -13900,7 +13901,7 @@ function RelatedAreaChipsComponent_Conditional_0_For_2_Template(rf, ctx) { if (r
13900
13901
  i0.ɵɵadvance(2);
13901
13902
  i0.ɵɵtextInterpolate(item_r2.label);
13902
13903
  i0.ɵɵadvance();
13903
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(3, _c0$_, ctx_r2.IconSourceEnum.HEROICONS));
13904
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(3, _c0$$, ctx_r2.IconSourceEnum.HEROICONS));
13904
13905
  } }
13905
13906
  function RelatedAreaChipsComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
13906
13907
  i0.ɵɵelementStart(0, "div", 0);
@@ -13989,7 +13990,7 @@ class RelatedAreaChipsComponent {
13989
13990
  }], null, { relatedAreaIds: [{ type: i0.Input, args: [{ isSignal: true, alias: "relatedAreaIds", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], inModalContext: [{ type: i0.Input, args: [{ isSignal: true, alias: "inModalContext", required: false }] }] }); })();
13990
13991
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(RelatedAreaChipsComponent, { className: "RelatedAreaChipsComponent", filePath: "lib/components/business-analysis-dashboard/shared/related-area-chips.component.ts", lineNumber: 31 }); })();
13991
13992
 
13992
- const _c0$Z = a0 => ({ name: "chevron-right", source: a0 });
13993
+ const _c0$_ = a0 => ({ name: "chevron-right", source: a0 });
13993
13994
  function CompetitorChipListComponent_Conditional_0_For_2_Template(rf, ctx) { if (rf & 1) {
13994
13995
  const _r1 = i0.ɵɵgetCurrentView();
13995
13996
  i0.ɵɵelementStart(0, "button", 2);
@@ -14006,7 +14007,7 @@ function CompetitorChipListComponent_Conditional_0_For_2_Template(rf, ctx) { if
14006
14007
  i0.ɵɵadvance(2);
14007
14008
  i0.ɵɵtextInterpolate(ctx_r2.getItemLabel(item_r2));
14008
14009
  i0.ɵɵadvance();
14009
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(3, _c0$Z, ctx_r2.IconSourceEnum.HEROICONS));
14010
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(3, _c0$_, ctx_r2.IconSourceEnum.HEROICONS));
14010
14011
  } }
14011
14012
  function CompetitorChipListComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
14012
14013
  i0.ɵɵelementStart(0, "div", 0);
@@ -14417,7 +14418,7 @@ class CompetitorContextSectionComponent {
14417
14418
  }], null, { contextType: [{ type: i0.Input, args: [{ isSignal: true, alias: "contextType", required: false }] }], items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], isCollapsible: [{ type: i0.Input, args: [{ isSignal: true, alias: "isCollapsible", required: false }] }], itemClicked: [{ type: i0.Output, args: ["itemClicked"] }] }); })();
14418
14419
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CompetitorContextSectionComponent, { className: "CompetitorContextSectionComponent", filePath: "lib/components/business-analysis-dashboard/cards/competitor-context-section.component.ts", lineNumber: 86 }); })();
14419
14420
 
14420
- const _c0$Y = a0 => ({ name: "chevron-right", source: a0 });
14421
+ const _c0$Z = a0 => ({ name: "chevron-right", source: a0 });
14421
14422
  const _forTrack0$J = ($index, $item) => $item.id;
14422
14423
  function RelatedRecommendationChipsComponent_Conditional_0_For_3_Template(rf, ctx) { if (rf & 1) {
14423
14424
  const _r1 = i0.ɵɵgetCurrentView();
@@ -14438,7 +14439,7 @@ function RelatedRecommendationChipsComponent_Conditional_0_For_3_Template(rf, ct
14438
14439
  i0.ɵɵadvance(2);
14439
14440
  i0.ɵɵtextInterpolate(rec_r2.title);
14440
14441
  i0.ɵɵadvance();
14441
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(4, _c0$Y, ctx_r2.IconSourceEnum.HEROICONS));
14442
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(4, _c0$Z, ctx_r2.IconSourceEnum.HEROICONS));
14442
14443
  } }
14443
14444
  function RelatedRecommendationChipsComponent_Conditional_0_Conditional_4_Template(rf, ctx) { if (rf & 1) {
14444
14445
  const _r4 = i0.ɵɵgetCurrentView();
@@ -21402,7 +21403,57 @@ class FunnelStageCompetitiveTooltipComponent {
21402
21403
  }], null, { content: [{ type: i0.Input, args: [{ isSignal: true, alias: "content", required: true }] }], isLightMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLightMode", required: false }] }], currencySymbol: [{ type: i0.Input, args: [{ isSignal: true, alias: "currencySymbol", required: false }] }] }); })();
21403
21404
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FunnelStageCompetitiveTooltipComponent, { className: "FunnelStageCompetitiveTooltipComponent", filePath: "lib/components/funnel-analysis-dashboard/tooltip/funnel-stage-competitive-tooltip.component.ts", lineNumber: 120 }); })();
21404
21405
 
21405
- const _c0$X = () => [];
21406
+ function MarkdownTooltipComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
21407
+ i0.ɵɵelementStart(0, "div", 1);
21408
+ i0.ɵɵtext(1);
21409
+ i0.ɵɵelementEnd();
21410
+ } if (rf & 2) {
21411
+ const ctx_r0 = i0.ɵɵnextContext();
21412
+ i0.ɵɵproperty("ngClass", ctx_r0.isLightMode() ? "text-slate-900" : "text-white")("ngClass", ctx_r0.borderClass());
21413
+ i0.ɵɵadvance();
21414
+ i0.ɵɵtextInterpolate1(" ", ctx_r0.content().title, " ");
21415
+ } }
21416
+ class MarkdownTooltipComponent {
21417
+ constructor() {
21418
+ this.content = input.required(...(ngDevMode ? [{ debugName: "content" }] : []));
21419
+ this.isLightMode = input(false, ...(ngDevMode ? [{ debugName: "isLightMode" }] : []));
21420
+ this.markdownClass = computed(() => this.isLightMode() ? 'text-slate-700 prose-slate' : 'text-slate-300 prose-invert', ...(ngDevMode ? [{ debugName: "markdownClass" }] : []));
21421
+ this.borderClass = computed(() => this.isLightMode() ? 'border-slate-200' : 'border-slate-600', ...(ngDevMode ? [{ debugName: "borderClass" }] : []));
21422
+ }
21423
+ static { this.ɵfac = function MarkdownTooltipComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MarkdownTooltipComponent)(); }; }
21424
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MarkdownTooltipComponent, selectors: [["symphiq-markdown-tooltip"]], inputs: { content: [1, "content"], isLightMode: [1, "isLightMode"] }, decls: 4, vars: 3, consts: [[1, "space-y-2", "max-h-80", "overflow-y-auto", "-mx-2", "px-2"], [1, "font-bold", "text-sm", "border-b", "pb-2", "mb-2", 3, "ngClass"], [1, "text-sm", "leading-relaxed", "prose-sm", 3, "ngClass"], [3, "data"]], template: function MarkdownTooltipComponent_Template(rf, ctx) { if (rf & 1) {
21425
+ i0.ɵɵelementStart(0, "div", 0);
21426
+ i0.ɵɵconditionalCreate(1, MarkdownTooltipComponent_Conditional_1_Template, 2, 3, "div", 1);
21427
+ i0.ɵɵelementStart(2, "div", 2);
21428
+ i0.ɵɵelement(3, "markdown", 3);
21429
+ i0.ɵɵelementEnd()();
21430
+ } if (rf & 2) {
21431
+ i0.ɵɵadvance();
21432
+ i0.ɵɵconditional(ctx.content().title ? 1 : -1);
21433
+ i0.ɵɵadvance();
21434
+ i0.ɵɵproperty("ngClass", ctx.markdownClass());
21435
+ i0.ɵɵadvance();
21436
+ i0.ɵɵproperty("data", ctx.content().markdown);
21437
+ } }, dependencies: [CommonModule, i1$1.NgClass, MarkdownComponent], styles: ["[_nghost-%COMP%] markdown{display:block}[_nghost-%COMP%] markdown h1, [_nghost-%COMP%] markdown h2, [_nghost-%COMP%] markdown h3, [_nghost-%COMP%] markdown h4, [_nghost-%COMP%] markdown h5, [_nghost-%COMP%] markdown h6{font-weight:600;margin-top:.75rem;margin-bottom:.5rem}[_nghost-%COMP%] markdown h1{font-size:1.125rem}[_nghost-%COMP%] markdown h2{font-size:1rem}[_nghost-%COMP%] markdown h3{font-size:.875rem}[_nghost-%COMP%] markdown p{margin-bottom:.5rem}[_nghost-%COMP%] markdown ul, [_nghost-%COMP%] markdown ol{margin-left:1rem;margin-bottom:.5rem;padding-left:.5rem}[_nghost-%COMP%] markdown li{margin-bottom:.25rem}[_nghost-%COMP%] markdown ul li{list-style-type:disc}[_nghost-%COMP%] markdown ol li{list-style-type:decimal}[_nghost-%COMP%] markdown strong{font-weight:600}[_nghost-%COMP%] markdown code{font-family:monospace;font-size:.75rem;padding:.125rem .25rem;border-radius:.25rem}"], changeDetection: 0 }); }
21438
+ }
21439
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MarkdownTooltipComponent, [{
21440
+ type: Component,
21441
+ args: [{ selector: 'symphiq-markdown-tooltip', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, MarkdownComponent], template: `
21442
+ <div class="space-y-2 max-h-80 overflow-y-auto -mx-2 px-2">
21443
+ @if (content().title) {
21444
+ <div [ngClass]="isLightMode() ? 'text-slate-900' : 'text-white'" class="font-bold text-sm border-b pb-2 mb-2" [ngClass]="borderClass()">
21445
+ {{ content().title }}
21446
+ </div>
21447
+ }
21448
+ <div [ngClass]="markdownClass()" class="text-sm leading-relaxed prose-sm">
21449
+ <markdown [data]="content().markdown"></markdown>
21450
+ </div>
21451
+ </div>
21452
+ `, styles: [":host ::ng-deep markdown{display:block}:host ::ng-deep markdown h1,:host ::ng-deep markdown h2,:host ::ng-deep markdown h3,:host ::ng-deep markdown h4,:host ::ng-deep markdown h5,:host ::ng-deep markdown h6{font-weight:600;margin-top:.75rem;margin-bottom:.5rem}:host ::ng-deep markdown h1{font-size:1.125rem}:host ::ng-deep markdown h2{font-size:1rem}:host ::ng-deep markdown h3{font-size:.875rem}:host ::ng-deep markdown p{margin-bottom:.5rem}:host ::ng-deep markdown ul,:host ::ng-deep markdown ol{margin-left:1rem;margin-bottom:.5rem;padding-left:.5rem}:host ::ng-deep markdown li{margin-bottom:.25rem}:host ::ng-deep markdown ul li{list-style-type:disc}:host ::ng-deep markdown ol li{list-style-type:decimal}:host ::ng-deep markdown strong{font-weight:600}:host ::ng-deep markdown code{font-family:monospace;font-size:.75rem;padding:.125rem .25rem;border-radius:.25rem}\n"] }]
21453
+ }], null, { content: [{ type: i0.Input, args: [{ isSignal: true, alias: "content", required: true }] }], isLightMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLightMode", required: false }] }] }); })();
21454
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MarkdownTooltipComponent, { className: "MarkdownTooltipComponent", filePath: "lib/components/funnel-analysis-dashboard/tooltip/markdown-tooltip.component.ts", lineNumber: 69 }); })();
21455
+
21456
+ const _c0$Y = () => [];
21406
21457
  function TooltipContainerComponent_Conditional_0_Case_3_Conditional_0_Template(rf, ctx) { if (rf & 1) {
21407
21458
  i0.ɵɵelement(0, "symphiq-metric-value-tooltip", 6);
21408
21459
  } if (rf & 2) {
@@ -21566,7 +21617,7 @@ function TooltipContainerComponent_Conditional_0_Case_15_Conditional_1_Template(
21566
21617
  } if (rf & 2) {
21567
21618
  i0.ɵɵnextContext(2);
21568
21619
  const content_r4 = i0.ɵɵreadContextLet(2);
21569
- i0.ɵɵrepeater(content_r4["sections"] || i0.ɵɵpureFunction0(0, _c0$X));
21620
+ i0.ɵɵrepeater(content_r4["sections"] || i0.ɵɵpureFunction0(0, _c0$Y));
21570
21621
  } }
21571
21622
  function TooltipContainerComponent_Conditional_0_Case_15_Template(rf, ctx) { if (rf & 1) {
21572
21623
  i0.ɵɵelementStart(0, "div", 3);
@@ -21580,10 +21631,22 @@ function TooltipContainerComponent_Conditional_0_Case_15_Template(rf, ctx) { if
21580
21631
  i0.ɵɵadvance();
21581
21632
  i0.ɵɵconditional(content_r4 && typeof content_r4 === "object" && "sections" in content_r4 ? 1 : -1);
21582
21633
  } }
21583
- function TooltipContainerComponent_Conditional_0_Case_16_Conditional_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
21634
+ function TooltipContainerComponent_Conditional_0_Case_16_Conditional_0_Template(rf, ctx) { if (rf & 1) {
21635
+ i0.ɵɵelement(0, "symphiq-markdown-tooltip", 6);
21636
+ } if (rf & 2) {
21637
+ const ctx_r1 = i0.ɵɵnextContext(3);
21638
+ i0.ɵɵproperty("content", ctx_r1.markdownContent())("isLightMode", ctx_r1.isLightMode());
21639
+ } }
21640
+ function TooltipContainerComponent_Conditional_0_Case_16_Template(rf, ctx) { if (rf & 1) {
21641
+ i0.ɵɵconditionalCreate(0, TooltipContainerComponent_Conditional_0_Case_16_Conditional_0_Template, 1, 2, "symphiq-markdown-tooltip", 6);
21642
+ } if (rf & 2) {
21643
+ const ctx_r1 = i0.ɵɵnextContext(2);
21644
+ i0.ɵɵconditional(ctx_r1.markdownContent() ? 0 : -1);
21645
+ } }
21646
+ function TooltipContainerComponent_Conditional_0_Case_17_Conditional_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
21584
21647
  const _r5 = i0.ɵɵgetCurrentView();
21585
21648
  i0.ɵɵelementStart(0, "div", 12)(1, "button", 13);
21586
- i0.ɵɵlistener("click", function TooltipContainerComponent_Conditional_0_Case_16_Conditional_1_Conditional_1_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r5); i0.ɵɵnextContext(3); const content_r4 = i0.ɵɵreadContextLet(2); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.scrollToTarget(content_r4["targetId"])); });
21649
+ i0.ɵɵlistener("click", function TooltipContainerComponent_Conditional_0_Case_17_Conditional_1_Conditional_1_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r5); i0.ɵɵnextContext(3); const content_r4 = i0.ɵɵreadContextLet(2); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.scrollToTarget(content_r4["targetId"])); });
21587
21650
  i0.ɵɵtext(2, " View more ");
21588
21651
  i0.ɵɵelementEnd()();
21589
21652
  } if (rf & 2) {
@@ -21591,9 +21654,9 @@ function TooltipContainerComponent_Conditional_0_Case_16_Conditional_1_Condition
21591
21654
  i0.ɵɵadvance();
21592
21655
  i0.ɵɵproperty("ngClass", ctx_r1.viewMoreButtonClass());
21593
21656
  } }
21594
- function TooltipContainerComponent_Conditional_0_Case_16_Conditional_1_Template(rf, ctx) { if (rf & 1) {
21657
+ function TooltipContainerComponent_Conditional_0_Case_17_Conditional_1_Template(rf, ctx) { if (rf & 1) {
21595
21658
  i0.ɵɵelement(0, "div", 11);
21596
- i0.ɵɵconditionalCreate(1, TooltipContainerComponent_Conditional_0_Case_16_Conditional_1_Conditional_1_Template, 3, 1, "div", 12);
21659
+ i0.ɵɵconditionalCreate(1, TooltipContainerComponent_Conditional_0_Case_17_Conditional_1_Conditional_1_Template, 3, 1, "div", 12);
21597
21660
  } if (rf & 2) {
21598
21661
  i0.ɵɵnextContext(2);
21599
21662
  const content_r4 = i0.ɵɵreadContextLet(2);
@@ -21601,23 +21664,23 @@ function TooltipContainerComponent_Conditional_0_Case_16_Conditional_1_Template(
21601
21664
  i0.ɵɵadvance();
21602
21665
  i0.ɵɵconditional(content_r4["targetId"] ? 1 : -1);
21603
21666
  } }
21604
- function TooltipContainerComponent_Conditional_0_Case_16_Conditional_2_Template(rf, ctx) { if (rf & 1) {
21667
+ function TooltipContainerComponent_Conditional_0_Case_17_Conditional_2_Template(rf, ctx) { if (rf & 1) {
21605
21668
  i0.ɵɵelement(0, "div", 11);
21606
21669
  } if (rf & 2) {
21607
21670
  i0.ɵɵnextContext(2);
21608
21671
  const content_r4 = i0.ɵɵreadContextLet(2);
21609
21672
  i0.ɵɵproperty("innerHTML", content_r4, i0.ɵɵsanitizeHtml);
21610
21673
  } }
21611
- function TooltipContainerComponent_Conditional_0_Case_16_Conditional_3_Template(rf, ctx) { if (rf & 1) {
21674
+ function TooltipContainerComponent_Conditional_0_Case_17_Conditional_3_Template(rf, ctx) { if (rf & 1) {
21612
21675
  i0.ɵɵtext(0);
21613
21676
  } if (rf & 2) {
21614
21677
  i0.ɵɵnextContext(2);
21615
21678
  const content_r4 = i0.ɵɵreadContextLet(2);
21616
21679
  i0.ɵɵtextInterpolate1(" ", content_r4, " ");
21617
21680
  } }
21618
- function TooltipContainerComponent_Conditional_0_Case_16_Template(rf, ctx) { if (rf & 1) {
21681
+ function TooltipContainerComponent_Conditional_0_Case_17_Template(rf, ctx) { if (rf & 1) {
21619
21682
  i0.ɵɵelementStart(0, "div", 4);
21620
- i0.ɵɵconditionalCreate(1, TooltipContainerComponent_Conditional_0_Case_16_Conditional_1_Template, 2, 2)(2, TooltipContainerComponent_Conditional_0_Case_16_Conditional_2_Template, 1, 1, "div", 11)(3, TooltipContainerComponent_Conditional_0_Case_16_Conditional_3_Template, 1, 1);
21683
+ i0.ɵɵconditionalCreate(1, TooltipContainerComponent_Conditional_0_Case_17_Conditional_1_Template, 2, 2)(2, TooltipContainerComponent_Conditional_0_Case_17_Conditional_2_Template, 1, 1, "div", 11)(3, TooltipContainerComponent_Conditional_0_Case_17_Conditional_3_Template, 1, 1);
21621
21684
  i0.ɵɵelementEnd();
21622
21685
  } if (rf & 2) {
21623
21686
  i0.ɵɵnextContext();
@@ -21627,7 +21690,7 @@ function TooltipContainerComponent_Conditional_0_Case_16_Template(rf, ctx) { if
21627
21690
  i0.ɵɵadvance();
21628
21691
  i0.ɵɵconditional(content_r4 && typeof content_r4 === "object" && "text" in content_r4 ? 1 : typeof content_r4 === "string" ? 2 : 3);
21629
21692
  } }
21630
- function TooltipContainerComponent_Conditional_0_Case_17_Template(rf, ctx) { if (rf & 1) {
21693
+ function TooltipContainerComponent_Conditional_0_Case_18_Template(rf, ctx) { if (rf & 1) {
21631
21694
  i0.ɵɵelementStart(0, "div", 5);
21632
21695
  i0.ɵɵtext(1);
21633
21696
  i0.ɵɵelementEnd();
@@ -21644,7 +21707,7 @@ function TooltipContainerComponent_Conditional_0_Template(rf, ctx) { if (rf & 1)
21644
21707
  i0.ɵɵelementStart(0, "div", 1)(1, "div", 2);
21645
21708
  i0.ɵɵlistener("mouseenter", function TooltipContainerComponent_Conditional_0_Template_div_mouseenter_1_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onTooltipMouseEnter()); })("mouseleave", function TooltipContainerComponent_Conditional_0_Template_div_mouseleave_1_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onTooltipMouseLeave()); });
21646
21709
  i0.ɵɵdeclareLet(2);
21647
- i0.ɵɵconditionalCreate(3, TooltipContainerComponent_Conditional_0_Case_3_Template, 1, 1)(4, TooltipContainerComponent_Conditional_0_Case_4_Template, 1, 1)(5, TooltipContainerComponent_Conditional_0_Case_5_Template, 1, 1)(6, TooltipContainerComponent_Conditional_0_Case_6_Template, 1, 1)(7, TooltipContainerComponent_Conditional_0_Case_7_Template, 1, 1)(8, TooltipContainerComponent_Conditional_0_Case_8_Template, 1, 1)(9, TooltipContainerComponent_Conditional_0_Case_9_Template, 1, 1)(10, TooltipContainerComponent_Conditional_0_Case_10_Template, 1, 1)(11, TooltipContainerComponent_Conditional_0_Case_11_Template, 1, 1)(12, TooltipContainerComponent_Conditional_0_Case_12_Template, 1, 1)(13, TooltipContainerComponent_Conditional_0_Case_13_Template, 1, 1)(14, TooltipContainerComponent_Conditional_0_Case_14_Template, 1, 1)(15, TooltipContainerComponent_Conditional_0_Case_15_Template, 2, 2, "div", 3)(16, TooltipContainerComponent_Conditional_0_Case_16_Template, 4, 2, "div", 4)(17, TooltipContainerComponent_Conditional_0_Case_17_Template, 2, 2, "div", 5);
21710
+ i0.ɵɵconditionalCreate(3, TooltipContainerComponent_Conditional_0_Case_3_Template, 1, 1)(4, TooltipContainerComponent_Conditional_0_Case_4_Template, 1, 1)(5, TooltipContainerComponent_Conditional_0_Case_5_Template, 1, 1)(6, TooltipContainerComponent_Conditional_0_Case_6_Template, 1, 1)(7, TooltipContainerComponent_Conditional_0_Case_7_Template, 1, 1)(8, TooltipContainerComponent_Conditional_0_Case_8_Template, 1, 1)(9, TooltipContainerComponent_Conditional_0_Case_9_Template, 1, 1)(10, TooltipContainerComponent_Conditional_0_Case_10_Template, 1, 1)(11, TooltipContainerComponent_Conditional_0_Case_11_Template, 1, 1)(12, TooltipContainerComponent_Conditional_0_Case_12_Template, 1, 1)(13, TooltipContainerComponent_Conditional_0_Case_13_Template, 1, 1)(14, TooltipContainerComponent_Conditional_0_Case_14_Template, 1, 1)(15, TooltipContainerComponent_Conditional_0_Case_15_Template, 2, 2, "div", 3)(16, TooltipContainerComponent_Conditional_0_Case_16_Template, 1, 1)(17, TooltipContainerComponent_Conditional_0_Case_17_Template, 4, 2, "div", 4)(18, TooltipContainerComponent_Conditional_0_Case_18_Template, 2, 2, "div", 5);
21648
21711
  i0.ɵɵelementEnd()();
21649
21712
  } if (rf & 2) {
21650
21713
  let tmp_6_0;
@@ -21657,7 +21720,7 @@ function TooltipContainerComponent_Conditional_0_Template(rf, ctx) { if (rf & 1)
21657
21720
  i0.ɵɵadvance();
21658
21721
  i0.ɵɵstoreLet(ctx_r1.tooltipContent());
21659
21722
  i0.ɵɵadvance();
21660
- i0.ɵɵconditional((tmp_6_0 = ctx_r1.tooltipType()) === "metric" ? 3 : tmp_6_0 === "status" ? 4 : tmp_6_0 === "trend" ? 5 : tmp_6_0 === "priority" ? 6 : tmp_6_0 === "badge" ? 7 : tmp_6_0 === "breakdown" ? 8 : tmp_6_0 === "competitive" ? 9 : tmp_6_0 === "competitiveBenchmark" ? 10 : tmp_6_0 === "insightsList" ? 11 : tmp_6_0 === "narrative" ? 12 : tmp_6_0 === "competitiveStatus" ? 13 : tmp_6_0 === "funnelStageCompetitive" ? 14 : tmp_6_0 === "insight" ? 15 : tmp_6_0 === "text" ? 16 : 17);
21723
+ i0.ɵɵconditional((tmp_6_0 = ctx_r1.tooltipType()) === "metric" ? 3 : tmp_6_0 === "status" ? 4 : tmp_6_0 === "trend" ? 5 : tmp_6_0 === "priority" ? 6 : tmp_6_0 === "badge" ? 7 : tmp_6_0 === "breakdown" ? 8 : tmp_6_0 === "competitive" ? 9 : tmp_6_0 === "competitiveBenchmark" ? 10 : tmp_6_0 === "insightsList" ? 11 : tmp_6_0 === "narrative" ? 12 : tmp_6_0 === "competitiveStatus" ? 13 : tmp_6_0 === "funnelStageCompetitive" ? 14 : tmp_6_0 === "insight" ? 15 : tmp_6_0 === "markdown" ? 16 : tmp_6_0 === "text" ? 17 : 18);
21661
21724
  } }
21662
21725
  class TooltipContainerComponent {
21663
21726
  constructor() {
@@ -21730,6 +21793,10 @@ class TooltipContainerComponent {
21730
21793
  const content = this.tooltipContent();
21731
21794
  return this.tooltipType() === 'funnelStageCompetitive' ? content : null;
21732
21795
  }, ...(ngDevMode ? [{ debugName: "funnelStageCompetitiveContent" }] : []));
21796
+ this.markdownContent = computed(() => {
21797
+ const content = this.tooltipContent();
21798
+ return this.tooltipType() === 'markdown' ? content : null;
21799
+ }, ...(ngDevMode ? [{ debugName: "markdownContent" }] : []));
21733
21800
  this.tooltipLeft = computed(() => {
21734
21801
  return this.calculateLeft();
21735
21802
  }, ...(ngDevMode ? [{ debugName: "tooltipLeft" }] : []));
@@ -22046,7 +22113,7 @@ class TooltipContainerComponent {
22046
22113
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TooltipContainerComponent, selectors: [["symphiq-tooltip-container"]], hostVars: 2, hostBindings: function TooltipContainerComponent_HostBindings(rf, ctx) { if (rf & 2) {
22047
22114
  i0.ɵɵstyleProp("display", "contents");
22048
22115
  } }, decls: 1, vars: 1, consts: [[1, "z-[10001]", "pointer-events-none", 3, "style"], [1, "z-[10001]", "pointer-events-none"], [1, "rounded-lg", "shadow-2xl", "border", "backdrop-blur-xl", "px-4", "py-3", "pointer-events-auto", 3, "mouseenter", "mouseleave", "ngClass"], [1, "text-sm", "space-y-3", 3, "ngClass"], [1, "text-sm", "whitespace-pre-line", "leading-relaxed", "max-h-96", "overflow-y-auto", "-mx-4", "px-5", "pr-7", 3, "ngClass"], [1, "text-sm", "whitespace-pre-line", "max-h-96", "overflow-y-auto", "-mx-4", "px-5", "pr-7", 3, "ngClass"], [3, "content", "isLightMode"], [3, "content", "isLightMode", "currencySymbol"], [1, "space-y-2"], [1, "font-semibold"], [1, "whitespace-pre-line", "leading-relaxed"], [3, "innerHTML"], [1, "flex", "justify-end", "mt-3", "pt-3", "border-t", "border-current", "opacity-30", "mr-3"], [1, "text-xs", "font-medium", "px-3", "py-1.5", "rounded-md", "transition-all", "cursor-pointer", 3, "click", "ngClass"]], template: function TooltipContainerComponent_Template(rf, ctx) { if (rf & 1) {
22049
- i0.ɵɵconditionalCreate(0, TooltipContainerComponent_Conditional_0_Template, 18, 8, "div", 0);
22116
+ i0.ɵɵconditionalCreate(0, TooltipContainerComponent_Conditional_0_Template, 19, 8, "div", 0);
22050
22117
  } if (rf & 2) {
22051
22118
  i0.ɵɵconditional(ctx.isVisible() ? 0 : -1);
22052
22119
  } }, dependencies: [CommonModule, i1$1.NgClass, MetricValueTooltipComponent,
@@ -22059,7 +22126,8 @@ class TooltipContainerComponent {
22059
22126
  InsightsListTooltipComponent,
22060
22127
  NarrativeTooltipComponent,
22061
22128
  CompetitiveStatusTooltipComponent,
22062
- FunnelStageCompetitiveTooltipComponent], encapsulation: 2, data: { animation: [
22129
+ FunnelStageCompetitiveTooltipComponent,
22130
+ MarkdownTooltipComponent], encapsulation: 2, data: { animation: [
22063
22131
  trigger('fadeInScale', [
22064
22132
  transition(':enter', [
22065
22133
  style({ opacity: 0 }),
@@ -22092,7 +22160,8 @@ class TooltipContainerComponent {
22092
22160
  InsightsListTooltipComponent,
22093
22161
  NarrativeTooltipComponent,
22094
22162
  CompetitiveStatusTooltipComponent,
22095
- FunnelStageCompetitiveTooltipComponent
22163
+ FunnelStageCompetitiveTooltipComponent,
22164
+ MarkdownTooltipComponent
22096
22165
  ],
22097
22166
  animations: [
22098
22167
  trigger('fadeInScale', [
@@ -22105,152 +22174,159 @@ class TooltipContainerComponent {
22105
22174
  ])
22106
22175
  ])
22107
22176
  ],
22108
- template: `
22109
- @if (isVisible()) {
22110
- <div
22111
- [@fadeInScale]
22112
- [style]="'position: fixed; left: ' + tooltipLeft() + 'px; top: ' + tooltipTop() + 'px; margin: 0; padding: 0; width: 24rem;'"
22113
- class="z-[10001] pointer-events-none">
22114
- <div
22115
- [ngClass]="contentClass()"
22116
- class="rounded-lg shadow-2xl border backdrop-blur-xl px-4 py-3 pointer-events-auto"
22117
- [style]="'transform: ' + transformStyle() + '; min-width: 12rem; box-sizing: border-box;'"
22118
- (mouseenter)="onTooltipMouseEnter()"
22119
- (mouseleave)="onTooltipMouseLeave()">
22120
- @let content = tooltipContent();
22121
- @switch (tooltipType()) {
22122
- @case ('metric') {
22123
- @if (metricContent()) {
22124
- <symphiq-metric-value-tooltip
22125
- [content]="metricContent()!"
22126
- [isLightMode]="isLightMode()" />
22127
- }
22128
- }
22129
- @case ('status') {
22130
- @if (statusContent()) {
22131
- <symphiq-status-badge-tooltip
22132
- [content]="statusContent()!"
22133
- [isLightMode]="isLightMode()" />
22134
- }
22135
- }
22136
- @case ('trend') {
22137
- @if (trendContent()) {
22138
- <symphiq-trend-indicator-tooltip
22139
- [content]="trendContent()!"
22140
- [isLightMode]="isLightMode()" />
22141
- }
22142
- }
22143
- @case ('priority') {
22144
- @if (priorityContent()) {
22145
- <symphiq-priority-badge-tooltip
22146
- [content]="priorityContent()!"
22147
- [isLightMode]="isLightMode()" />
22148
- }
22149
- }
22150
- @case ('badge') {
22151
- @if (badgeContent()) {
22152
- <symphiq-badge-tooltip
22153
- [content]="badgeContent()!"
22154
- [isLightMode]="isLightMode()" />
22155
- }
22156
- }
22157
- @case ('breakdown') {
22158
- @if (breakdownContent()) {
22159
- <symphiq-breakdown-row-tooltip
22160
- [content]="breakdownContent()!"
22161
- [isLightMode]="isLightMode()" />
22162
- }
22163
- }
22164
- @case ('competitive') {
22165
- @if (competitiveContent()) {
22166
- <symphiq-competitive-benchmark-tooltip
22167
- [content]="competitiveContent()!"
22168
- [isLightMode]="isLightMode()" />
22169
- }
22170
- }
22171
- @case ('competitiveBenchmark') {
22172
- @if (competitiveContent()) {
22173
- <symphiq-competitive-benchmark-tooltip
22174
- [content]="competitiveContent()!"
22175
- [isLightMode]="isLightMode()" />
22176
- }
22177
- }
22178
- @case ('insightsList') {
22179
- @if (insightsListContent()) {
22180
- <symphiq-insights-list-tooltip
22181
- [content]="insightsListContent()!"
22182
- [isLightMode]="isLightMode()" />
22183
- }
22184
- }
22185
- @case ('narrative') {
22186
- @if (narrativeContent()) {
22187
- <symphiq-narrative-tooltip
22188
- [content]="narrativeContent()!"
22189
- [isLightMode]="isLightMode()" />
22190
- }
22191
- }
22192
- @case ('competitiveStatus') {
22193
- @if (competitiveStatusContent()) {
22194
- <symphiq-competitive-status-tooltip
22195
- [content]="competitiveStatusContent()!"
22196
- [isLightMode]="isLightMode()"
22197
- [currencySymbol]="competitiveStatusContent()!.currencySymbol || '$'" />
22198
- }
22199
- }
22200
- @case ('funnelStageCompetitive') {
22201
- @if (funnelStageCompetitiveContent()) {
22202
- <symphiq-funnel-stage-competitive-tooltip
22203
- [content]="funnelStageCompetitiveContent()!"
22204
- [isLightMode]="isLightMode()"
22205
- [currencySymbol]="funnelStageCompetitiveContent()!.currencySymbol || '$'" />
22206
- }
22207
- }
22208
- @case ('insight') {
22209
- <div [ngClass]="textClass()" class="text-sm space-y-3">
22210
- @if (content && typeof content === 'object' && 'sections' in content) {
22211
- @for (section of content['sections'] || []; track $index) {
22212
- <div class="space-y-2">
22213
- <div class="font-semibold">{{ section.title }}</div>
22214
- <div class="whitespace-pre-line leading-relaxed">{{ section.content }}</div>
22215
- </div>
22216
- }
22217
- }
22218
- </div>
22219
- }
22220
- @case ('text') {
22221
- <div [ngClass]="textClass()" class="text-sm whitespace-pre-line leading-relaxed max-h-96 overflow-y-auto -mx-4 px-5 pr-7">
22222
- @if (content && typeof content === 'object' && 'text' in content) {
22223
- <div [innerHTML]="content['text']"></div>
22224
- @if (content['targetId']) {
22225
- <div class="flex justify-end mt-3 pt-3 border-t border-current opacity-30 mr-3">
22226
- <button
22227
- (click)="scrollToTarget($any(content)['targetId'])"
22228
- [ngClass]="viewMoreButtonClass()"
22229
- class="text-xs font-medium px-3 py-1.5 rounded-md transition-all cursor-pointer">
22230
- View more
22231
- </button>
22232
- </div>
22233
- }
22234
- } @else if (typeof content === 'string') {
22235
- <div [innerHTML]="content"></div>
22236
- } @else {
22237
- {{ content }}
22238
- }
22239
- </div>
22240
- }
22241
- @default {
22242
- <div [ngClass]="textClass()" class="text-sm whitespace-pre-line max-h-96 overflow-y-auto -mx-4 px-5 pr-7">
22243
- {{ content }}
22244
- </div>
22245
- }
22246
- }
22247
- </div>
22248
- </div>
22249
- }
22177
+ template: `
22178
+ @if (isVisible()) {
22179
+ <div
22180
+ [@fadeInScale]
22181
+ [style]="'position: fixed; left: ' + tooltipLeft() + 'px; top: ' + tooltipTop() + 'px; margin: 0; padding: 0; width: 24rem;'"
22182
+ class="z-[10001] pointer-events-none">
22183
+ <div
22184
+ [ngClass]="contentClass()"
22185
+ class="rounded-lg shadow-2xl border backdrop-blur-xl px-4 py-3 pointer-events-auto"
22186
+ [style]="'transform: ' + transformStyle() + '; min-width: 12rem; box-sizing: border-box;'"
22187
+ (mouseenter)="onTooltipMouseEnter()"
22188
+ (mouseleave)="onTooltipMouseLeave()">
22189
+ @let content = tooltipContent();
22190
+ @switch (tooltipType()) {
22191
+ @case ('metric') {
22192
+ @if (metricContent()) {
22193
+ <symphiq-metric-value-tooltip
22194
+ [content]="metricContent()!"
22195
+ [isLightMode]="isLightMode()" />
22196
+ }
22197
+ }
22198
+ @case ('status') {
22199
+ @if (statusContent()) {
22200
+ <symphiq-status-badge-tooltip
22201
+ [content]="statusContent()!"
22202
+ [isLightMode]="isLightMode()" />
22203
+ }
22204
+ }
22205
+ @case ('trend') {
22206
+ @if (trendContent()) {
22207
+ <symphiq-trend-indicator-tooltip
22208
+ [content]="trendContent()!"
22209
+ [isLightMode]="isLightMode()" />
22210
+ }
22211
+ }
22212
+ @case ('priority') {
22213
+ @if (priorityContent()) {
22214
+ <symphiq-priority-badge-tooltip
22215
+ [content]="priorityContent()!"
22216
+ [isLightMode]="isLightMode()" />
22217
+ }
22218
+ }
22219
+ @case ('badge') {
22220
+ @if (badgeContent()) {
22221
+ <symphiq-badge-tooltip
22222
+ [content]="badgeContent()!"
22223
+ [isLightMode]="isLightMode()" />
22224
+ }
22225
+ }
22226
+ @case ('breakdown') {
22227
+ @if (breakdownContent()) {
22228
+ <symphiq-breakdown-row-tooltip
22229
+ [content]="breakdownContent()!"
22230
+ [isLightMode]="isLightMode()" />
22231
+ }
22232
+ }
22233
+ @case ('competitive') {
22234
+ @if (competitiveContent()) {
22235
+ <symphiq-competitive-benchmark-tooltip
22236
+ [content]="competitiveContent()!"
22237
+ [isLightMode]="isLightMode()" />
22238
+ }
22239
+ }
22240
+ @case ('competitiveBenchmark') {
22241
+ @if (competitiveContent()) {
22242
+ <symphiq-competitive-benchmark-tooltip
22243
+ [content]="competitiveContent()!"
22244
+ [isLightMode]="isLightMode()" />
22245
+ }
22246
+ }
22247
+ @case ('insightsList') {
22248
+ @if (insightsListContent()) {
22249
+ <symphiq-insights-list-tooltip
22250
+ [content]="insightsListContent()!"
22251
+ [isLightMode]="isLightMode()" />
22252
+ }
22253
+ }
22254
+ @case ('narrative') {
22255
+ @if (narrativeContent()) {
22256
+ <symphiq-narrative-tooltip
22257
+ [content]="narrativeContent()!"
22258
+ [isLightMode]="isLightMode()" />
22259
+ }
22260
+ }
22261
+ @case ('competitiveStatus') {
22262
+ @if (competitiveStatusContent()) {
22263
+ <symphiq-competitive-status-tooltip
22264
+ [content]="competitiveStatusContent()!"
22265
+ [isLightMode]="isLightMode()"
22266
+ [currencySymbol]="competitiveStatusContent()!.currencySymbol || '$'" />
22267
+ }
22268
+ }
22269
+ @case ('funnelStageCompetitive') {
22270
+ @if (funnelStageCompetitiveContent()) {
22271
+ <symphiq-funnel-stage-competitive-tooltip
22272
+ [content]="funnelStageCompetitiveContent()!"
22273
+ [isLightMode]="isLightMode()"
22274
+ [currencySymbol]="funnelStageCompetitiveContent()!.currencySymbol || '$'" />
22275
+ }
22276
+ }
22277
+ @case ('insight') {
22278
+ <div [ngClass]="textClass()" class="text-sm space-y-3">
22279
+ @if (content && typeof content === 'object' && 'sections' in content) {
22280
+ @for (section of content['sections'] || []; track $index) {
22281
+ <div class="space-y-2">
22282
+ <div class="font-semibold">{{ section.title }}</div>
22283
+ <div class="whitespace-pre-line leading-relaxed">{{ section.content }}</div>
22284
+ </div>
22285
+ }
22286
+ }
22287
+ </div>
22288
+ }
22289
+ @case ('markdown') {
22290
+ @if (markdownContent()) {
22291
+ <symphiq-markdown-tooltip
22292
+ [content]="markdownContent()!"
22293
+ [isLightMode]="isLightMode()" />
22294
+ }
22295
+ }
22296
+ @case ('text') {
22297
+ <div [ngClass]="textClass()" class="text-sm whitespace-pre-line leading-relaxed max-h-96 overflow-y-auto -mx-4 px-5 pr-7">
22298
+ @if (content && typeof content === 'object' && 'text' in content) {
22299
+ <div [innerHTML]="content['text']"></div>
22300
+ @if (content['targetId']) {
22301
+ <div class="flex justify-end mt-3 pt-3 border-t border-current opacity-30 mr-3">
22302
+ <button
22303
+ (click)="scrollToTarget($any(content)['targetId'])"
22304
+ [ngClass]="viewMoreButtonClass()"
22305
+ class="text-xs font-medium px-3 py-1.5 rounded-md transition-all cursor-pointer">
22306
+ View more
22307
+ </button>
22308
+ </div>
22309
+ }
22310
+ } @else if (typeof content === 'string') {
22311
+ <div [innerHTML]="content"></div>
22312
+ } @else {
22313
+ {{ content }}
22314
+ }
22315
+ </div>
22316
+ }
22317
+ @default {
22318
+ <div [ngClass]="textClass()" class="text-sm whitespace-pre-line max-h-96 overflow-y-auto -mx-4 px-5 pr-7">
22319
+ {{ content }}
22320
+ </div>
22321
+ }
22322
+ }
22323
+ </div>
22324
+ </div>
22325
+ }
22250
22326
  `
22251
22327
  }]
22252
22328
  }], () => [], null); })();
22253
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TooltipContainerComponent, { className: "TooltipContainerComponent", filePath: "lib/components/funnel-analysis-dashboard/tooltip/tooltip-container.component.ts", lineNumber: 217 }); })();
22329
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TooltipContainerComponent, { className: "TooltipContainerComponent", filePath: "lib/components/funnel-analysis-dashboard/tooltip/tooltip-container.component.ts", lineNumber: 227 }); })();
22254
22330
 
22255
22331
  function MobileFABComponent_Conditional_1_Conditional_5_Template(rf, ctx) { if (rf & 1) {
22256
22332
  i0.ɵɵnamespaceSVG();
@@ -22647,7 +22723,7 @@ class SearchService {
22647
22723
  }]
22648
22724
  }], null, null); })();
22649
22725
 
22650
- const _c0$W = ["searchInput"];
22726
+ const _c0$X = ["searchInput"];
22651
22727
  const _forTrack0$D = ($index, $item) => $item.id;
22652
22728
  function SearchBarComponent_Conditional_0_Conditional_10_Template(rf, ctx) { if (rf & 1) {
22653
22729
  const _r3 = i0.ɵɵgetCurrentView();
@@ -23009,7 +23085,7 @@ class SearchBarComponent {
23009
23085
  }
23010
23086
  static { this.ɵfac = function SearchBarComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SearchBarComponent)(); }; }
23011
23087
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SearchBarComponent, selectors: [["symphiq-search-bar"]], viewQuery: function SearchBarComponent_Query(rf, ctx) { if (rf & 1) {
23012
- i0.ɵɵviewQuery(_c0$W, 5);
23088
+ i0.ɵɵviewQuery(_c0$X, 5);
23013
23089
  } if (rf & 2) {
23014
23090
  let _t;
23015
23091
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.searchInput = _t.first);
@@ -26698,7 +26774,7 @@ class FunnelWelcomeBannerComponent {
26698
26774
  }], null, { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], isOnboarded: [{ type: i0.Input, args: [{ isSignal: true, alias: "isOnboarded", required: false }] }] }); })();
26699
26775
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FunnelWelcomeBannerComponent, { className: "FunnelWelcomeBannerComponent", filePath: "lib/components/funnel-analysis-dashboard/funnel-welcome-banner.component.ts", lineNumber: 113 }); })();
26700
26776
 
26701
- const _c0$V = [[["", "slot", "overall-performance"]], [["", "slot", "performance-metrics"]], [["", "slot", "performance-breakdowns"]], [["", "slot", "competitive-intelligence"]]];
26777
+ const _c0$W = [[["", "slot", "overall-performance"]], [["", "slot", "performance-metrics"]], [["", "slot", "performance-breakdowns"]], [["", "slot", "competitive-intelligence"]]];
26702
26778
  const _c1$z = ["[slot=overall-performance]", "[slot=performance-metrics]", "[slot=performance-breakdowns]", "[slot=competitive-intelligence]"];
26703
26779
  class CollapsibleFunnelSectionGroupComponent {
26704
26780
  constructor() {
@@ -26831,7 +26907,7 @@ class CollapsibleFunnelSectionGroupComponent {
26831
26907
  }
26832
26908
  static { this.ɵfac = function CollapsibleFunnelSectionGroupComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CollapsibleFunnelSectionGroupComponent)(); }; }
26833
26909
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CollapsibleFunnelSectionGroupComponent, selectors: [["symphiq-collapsible-funnel-section-group"]], inputs: { viewMode: [1, "viewMode"] }, ngContentSelectors: _c1$z, decls: 90, vars: 58, consts: [[1, "rounded-2xl", "border", "shadow-lg", "overflow-hidden", 3, "ngClass"], [1, "px-6", "py-5", "border-b", 3, "ngClass"], [1, "flex", "items-center", "justify-between"], [1, "flex", "items-center", "gap-3"], [1, "p-2.5", "rounded-lg", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-5", "h-5"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 17v-2m3 2v-4m3 4v-6m2 10H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"], [1, "text-xl", "font-bold", 3, "ngClass"], [1, "text-sm", "mt-0.5", 3, "ngClass"], [1, "p-6", 3, "ngClass"], [1, "mb-6", "p-4", "rounded-xl", "border", "flex", "items-start", "gap-3", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-5", "h-5", "flex-shrink-0", "mt-0.5", 3, "ngClass"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"], [1, "flex-1"], [1, "font-semibold", "text-sm", "mb-1", 3, "ngClass"], [1, "text-sm", "leading-relaxed", 3, "ngClass"], [1, "space-y-3"], [1, "rounded-xl", "border", "overflow-hidden", "transition-all", "duration-200", 3, "id", "ngClass"], ["type", "button", 1, "cursor-pointer", "w-full", "px-5", "py-4", "flex", "items-center", "justify-between", "gap-4", "text-left", "transition-colors", "duration-200", 3, "click", "ngClass"], [1, "flex", "items-center", "gap-3", "flex-1", "min-w-0"], [1, "p-2", "rounded-lg", "flex-shrink-0", "transition-colors", "duration-200", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4"], ["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, "flex-1", "min-w-0"], [1, "font-semibold", "transition-colors", "duration-200", 3, "ngClass"], [1, "text-sm", "mt-0.5", "transition-colors", "duration-200", 3, "ngClass"], [1, "w-5", "h-5", "flex-shrink-0", "transition-transform", "duration-200", 3, "ngClass"], ["stroke", "currentColor", "stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M19 9l-7 7-7-7"], [1, "grid", "transition-[grid-template-rows]", "duration-300", "ease-in-out"], [1, "overflow-hidden"], [1, "border-t", 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"], ["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"], ["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"]], template: function CollapsibleFunnelSectionGroupComponent_Template(rf, ctx) { if (rf & 1) {
26834
- i0.ɵɵprojectionDef(_c0$V);
26910
+ i0.ɵɵprojectionDef(_c0$W);
26835
26911
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "div", 3)(4, "div", 4);
26836
26912
  i0.ɵɵnamespaceSVG();
26837
26913
  i0.ɵɵelementStart(5, "svg", 5);
@@ -27674,7 +27750,7 @@ class ViewModeSwitcherModalComponent {
27674
27750
  }], null, { isOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "isOpen", required: false }] }], currentMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "currentMode", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], isLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLoading", required: false }] }], close: [{ type: i0.Output, args: ["close"] }], modeSelected: [{ type: i0.Output, args: ["modeSelected"] }] }); })();
27675
27751
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ViewModeSwitcherModalComponent, { className: "ViewModeSwitcherModalComponent", filePath: "lib/components/shared/view-mode-switcher-modal.component.ts", lineNumber: 160 }); })();
27676
27752
 
27677
- const _c0$U = a0 => ({ name: "check-badge", source: a0 });
27753
+ const _c0$V = a0 => ({ name: "check-badge", source: a0 });
27678
27754
  const _c1$y = a0 => ({ name: "check-circle", source: a0 });
27679
27755
  const _c2$o = a0 => ({ name: "chevron-right", source: a0 });
27680
27756
  const _forTrack0$z = ($index, $item) => $item.area;
@@ -27691,7 +27767,7 @@ function KeyStrengthsListModalContentComponent_Conditional_1_Template(rf, ctx) {
27691
27767
  const ctx_r0 = i0.ɵɵnextContext();
27692
27768
  i0.ɵɵproperty("ngClass", ctx_r0.emptyStateClasses());
27693
27769
  i0.ɵɵadvance();
27694
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(5, _c0$U, ctx_r0.IconSourceEnum.HEROICONS))("ngClass", ctx_r0.emptyIconClasses());
27770
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(5, _c0$V, ctx_r0.IconSourceEnum.HEROICONS))("ngClass", ctx_r0.emptyIconClasses());
27695
27771
  i0.ɵɵadvance();
27696
27772
  i0.ɵɵproperty("ngClass", ctx_r0.emptyTitleClasses());
27697
27773
  i0.ɵɵadvance(2);
@@ -27906,7 +27982,7 @@ class KeyStrengthsListModalContentComponent {
27906
27982
  }], null, { keyStrengths: [{ type: i0.Input, args: [{ isSignal: true, alias: "keyStrengths", required: true }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: true }] }] }); })();
27907
27983
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(KeyStrengthsListModalContentComponent, { className: "KeyStrengthsListModalContentComponent", filePath: "lib/components/profile-analysis-dashboard/modals/key-strengths-list-modal-content.component.ts", lineNumber: 79 }); })();
27908
27984
 
27909
- const _c0$T = a0 => ({ name: "shield-check", source: a0 });
27985
+ const _c0$U = a0 => ({ name: "shield-check", source: a0 });
27910
27986
  const _c1$x = a0 => ({ name: "exclamation-triangle", source: a0 });
27911
27987
  const _c2$n = a0 => ({ name: "document-text", source: a0 });
27912
27988
  const _c3$h = a0 => ({ name: "chevron-right", source: a0 });
@@ -27924,7 +28000,7 @@ function CriticalGapsListModalContentComponent_Conditional_1_Template(rf, ctx) {
27924
28000
  const ctx_r0 = i0.ɵɵnextContext();
27925
28001
  i0.ɵɵproperty("ngClass", ctx_r0.emptyStateClasses());
27926
28002
  i0.ɵɵadvance();
27927
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(5, _c0$T, ctx_r0.IconSourceEnum.HEROICONS))("ngClass", ctx_r0.emptyIconClasses());
28003
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(5, _c0$U, ctx_r0.IconSourceEnum.HEROICONS))("ngClass", ctx_r0.emptyIconClasses());
27928
28004
  i0.ɵɵadvance();
27929
28005
  i0.ɵɵproperty("ngClass", ctx_r0.emptyTitleClasses());
27930
28006
  i0.ɵɵadvance(2);
@@ -28222,7 +28298,7 @@ class CriticalGapsListModalContentComponent {
28222
28298
  }], null, { criticalGaps: [{ type: i0.Input, args: [{ isSignal: true, alias: "criticalGaps", required: true }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: true }] }] }); })();
28223
28299
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CriticalGapsListModalContentComponent, { className: "CriticalGapsListModalContentComponent", filePath: "lib/components/profile-analysis-dashboard/modals/critical-gaps-list-modal-content.component.ts", lineNumber: 98 }); })();
28224
28300
 
28225
- const _c0$S = a0 => ({ name: "check-circle", source: a0 });
28301
+ const _c0$T = a0 => ({ name: "check-circle", source: a0 });
28226
28302
  const _c1$w = a0 => ({ name: "chat-bubble-left-right", source: a0 });
28227
28303
  const _forTrack0$x = ($index, $item) => $item.questionId;
28228
28304
  function KeyStrengthDetailModalContentComponent_Conditional_13_For_6_Conditional_8_Template(rf, ctx) { if (rf & 1) {
@@ -28278,7 +28354,7 @@ function KeyStrengthDetailModalContentComponent_Conditional_13_Template(rf, ctx)
28278
28354
  i0.ɵɵadvance();
28279
28355
  i0.ɵɵproperty("ngClass", ctx_r1.sectionTitleClasses());
28280
28356
  i0.ɵɵadvance();
28281
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(3, _c0$S, ctx_r1.IconSourceEnum.HEROICONS))("ngClass", ctx_r1.sectionIconClasses());
28357
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(3, _c0$T, ctx_r1.IconSourceEnum.HEROICONS))("ngClass", ctx_r1.sectionIconClasses());
28282
28358
  i0.ɵɵadvance(3);
28283
28359
  i0.ɵɵrepeater(ctx_r1.strength().supportingAnswers);
28284
28360
  } }
@@ -28463,7 +28539,7 @@ class KeyStrengthDetailModalContentComponent {
28463
28539
  }], null, { strength: [{ type: i0.Input, args: [{ isSignal: true, alias: "strength", required: true }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: true }] }] }); })();
28464
28540
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(KeyStrengthDetailModalContentComponent, { className: "KeyStrengthDetailModalContentComponent", filePath: "lib/components/profile-analysis-dashboard/modals/key-strength-detail-modal-content.component.ts", lineNumber: 79 }); })();
28465
28541
 
28466
- const _c0$R = a0 => ({ name: "exclamation-triangle", source: a0 });
28542
+ const _c0$S = a0 => ({ name: "exclamation-triangle", source: a0 });
28467
28543
  const _c1$v = a0 => ({ name: "document-text", source: a0 });
28468
28544
  const _c2$m = a0 => ({ name: "chat-bubble-left-right", source: a0 });
28469
28545
  const _forTrack0$w = ($index, $item) => $item.questionId;
@@ -28741,7 +28817,7 @@ class CriticalGapDetailModalContentComponent {
28741
28817
  i0.ɵɵadvance();
28742
28818
  i0.ɵɵproperty("ngClass", ctx.impactSectionClasses());
28743
28819
  i0.ɵɵadvance(2);
28744
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(15, _c0$R, ctx.IconSourceEnum.HEROICONS))("ngClass", ctx.impactIconClasses());
28820
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(15, _c0$S, ctx.IconSourceEnum.HEROICONS))("ngClass", ctx.impactIconClasses());
28745
28821
  i0.ɵɵadvance(2);
28746
28822
  i0.ɵɵproperty("ngClass", ctx.impactTitleClasses());
28747
28823
  i0.ɵɵadvance(2);
@@ -30326,7 +30402,7 @@ class TopPriorityDetailModalContentComponent {
30326
30402
  }], null, { priority: [{ type: i0.Input, args: [{ isSignal: true, alias: "priority", required: true }] }], index: [{ type: i0.Input, args: [{ isSignal: true, alias: "index", required: false }] }], totalCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "totalCount", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], focusAreaName: [{ type: i0.Input, args: [{ isSignal: true, alias: "focusAreaName", required: false }] }] }); })();
30327
30403
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TopPriorityDetailModalContentComponent, { className: "TopPriorityDetailModalContentComponent", filePath: "lib/components/profile-analysis-dashboard/modals/top-priority-detail-modal-content.component.ts", lineNumber: 72 }); })();
30328
30404
 
30329
- const _c0$Q = a0 => ({ name: "check-badge", source: a0 });
30405
+ const _c0$R = a0 => ({ name: "check-badge", source: a0 });
30330
30406
  const _c1$u = a0 => ({ name: "check-circle", source: a0 });
30331
30407
  const _c2$l = a0 => ({ name: "chevron-right", source: a0 });
30332
30408
  const _c3$g = a0 => ({ name: "chart-bar", source: a0 });
@@ -30344,7 +30420,7 @@ function FocusAreaStrengthsListModalContentComponent_Conditional_1_Template(rf,
30344
30420
  const ctx_r0 = i0.ɵɵnextContext();
30345
30421
  i0.ɵɵproperty("ngClass", ctx_r0.emptyStateClasses());
30346
30422
  i0.ɵɵadvance();
30347
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(5, _c0$Q, ctx_r0.IconSourceEnum.HEROICONS))("ngClass", ctx_r0.emptyIconClasses());
30423
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(5, _c0$R, ctx_r0.IconSourceEnum.HEROICONS))("ngClass", ctx_r0.emptyIconClasses());
30348
30424
  i0.ɵɵadvance();
30349
30425
  i0.ɵɵproperty("ngClass", ctx_r0.emptyTitleClasses());
30350
30426
  i0.ɵɵadvance(2);
@@ -30649,7 +30725,7 @@ class FocusAreaStrengthsListModalContentComponent {
30649
30725
  }], null, { strengths: [{ type: i0.Input, args: [{ isSignal: true, alias: "strengths", required: true }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: true }] }], categoryTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "categoryTitle", required: false }] }] }); })();
30650
30726
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FocusAreaStrengthsListModalContentComponent, { className: "FocusAreaStrengthsListModalContentComponent", filePath: "lib/components/profile-analysis-dashboard/modals/focus-area-strengths-list-modal-content.component.ts", lineNumber: 109 }); })();
30651
30727
 
30652
- const _c0$P = a0 => ({ name: "exclamation-triangle", source: a0 });
30728
+ const _c0$Q = a0 => ({ name: "exclamation-triangle", source: a0 });
30653
30729
  const _c1$t = a0 => ({ name: "exclamation-circle", source: a0 });
30654
30730
  const _c2$k = a0 => ({ name: "chevron-right", source: a0 });
30655
30731
  function _forTrack0$u($index, $item) { return this.getGapTitle($item); }
@@ -30666,7 +30742,7 @@ function FocusAreaGapsListModalContentComponent_Conditional_1_Template(rf, ctx)
30666
30742
  const ctx_r0 = i0.ɵɵnextContext();
30667
30743
  i0.ɵɵproperty("ngClass", ctx_r0.emptyStateClasses());
30668
30744
  i0.ɵɵadvance();
30669
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(5, _c0$P, ctx_r0.IconSourceEnum.HEROICONS))("ngClass", ctx_r0.emptyIconClasses());
30745
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(5, _c0$Q, ctx_r0.IconSourceEnum.HEROICONS))("ngClass", ctx_r0.emptyIconClasses());
30670
30746
  i0.ɵɵadvance();
30671
30747
  i0.ɵɵproperty("ngClass", ctx_r0.emptyTitleClasses());
30672
30748
  i0.ɵɵadvance(2);
@@ -31043,7 +31119,7 @@ class FocusAreaGapsListModalContentComponent {
31043
31119
  }], null, { gaps: [{ type: i0.Input, args: [{ isSignal: true, alias: "gaps", required: true }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: true }] }], categoryTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "categoryTitle", required: false }] }] }); })();
31044
31120
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FocusAreaGapsListModalContentComponent, { className: "FocusAreaGapsListModalContentComponent", filePath: "lib/components/profile-analysis-dashboard/modals/focus-area-gaps-list-modal-content.component.ts", lineNumber: 106 }); })();
31045
31121
 
31046
- const _c0$O = a0 => ({ name: "light-bulb", source: a0 });
31122
+ const _c0$P = a0 => ({ name: "light-bulb", source: a0 });
31047
31123
  const _c1$s = a0 => ({ name: "chevron-right", source: a0 });
31048
31124
  const _c2$j = a0 => ({ name: "chart-bar", source: a0 });
31049
31125
  const _forTrack0$t = ($index, $item) => $item.opportunity;
@@ -31060,7 +31136,7 @@ function FocusAreaOpportunitiesListModalContentComponent_Conditional_1_Template(
31060
31136
  const ctx_r0 = i0.ɵɵnextContext();
31061
31137
  i0.ɵɵproperty("ngClass", ctx_r0.emptyStateClasses());
31062
31138
  i0.ɵɵadvance();
31063
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(5, _c0$O, ctx_r0.IconSourceEnum.HEROICONS))("ngClass", ctx_r0.emptyIconClasses());
31139
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(5, _c0$P, ctx_r0.IconSourceEnum.HEROICONS))("ngClass", ctx_r0.emptyIconClasses());
31064
31140
  i0.ɵɵadvance();
31065
31141
  i0.ɵɵproperty("ngClass", ctx_r0.emptyTitleClasses());
31066
31142
  i0.ɵɵadvance(2);
@@ -31312,7 +31388,7 @@ class FocusAreaOpportunitiesListModalContentComponent {
31312
31388
  }], null, { opportunities: [{ type: i0.Input, args: [{ isSignal: true, alias: "opportunities", required: true }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: true }] }], categoryTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "categoryTitle", required: false }] }] }); })();
31313
31389
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FocusAreaOpportunitiesListModalContentComponent, { className: "FocusAreaOpportunitiesListModalContentComponent", filePath: "lib/components/profile-analysis-dashboard/modals/focus-area-opportunities-list-modal-content.component.ts", lineNumber: 90 }); })();
31314
31390
 
31315
- const _c0$N = a0 => ({ name: "chevron-right", source: a0 });
31391
+ const _c0$O = a0 => ({ name: "chevron-right", source: a0 });
31316
31392
  const _c1$r = a0 => ({ name: "chat-bubble-left-right", source: a0 });
31317
31393
  const _forTrack0$s = ($index, $item) => $item.performanceItemId;
31318
31394
  function FocusAreaStrengthDetailModalContentComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
@@ -31377,7 +31453,7 @@ function FocusAreaStrengthDetailModalContentComponent_Conditional_4_For_5_Templa
31377
31453
  i0.ɵɵadvance(2);
31378
31454
  i0.ɵɵtextInterpolate(ctx_r0.formatMetricName(metric_r3.metric || ""));
31379
31455
  i0.ɵɵadvance();
31380
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(3, _c0$N, ctx_r0.IconSourceEnum.HEROICONS));
31456
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(3, _c0$O, ctx_r0.IconSourceEnum.HEROICONS));
31381
31457
  } }
31382
31458
  function FocusAreaStrengthDetailModalContentComponent_Conditional_4_Template(rf, ctx) { if (rf & 1) {
31383
31459
  i0.ɵɵelementStart(0, "div", 1)(1, "h4", 8);
@@ -31697,7 +31773,7 @@ class FocusAreaStrengthDetailModalContentComponent {
31697
31773
  }], null, { strength: [{ type: i0.Input, args: [{ isSignal: true, alias: "strength", required: true }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: true }] }], allMetrics: [{ type: i0.Input, args: [{ isSignal: true, alias: "allMetrics", required: false }] }], allCharts: [{ type: i0.Input, args: [{ isSignal: true, alias: "allCharts", required: false }] }], currentModalState: [{ type: i0.Input, args: [{ isSignal: true, alias: "currentModalState", required: false }] }] }); })();
31698
31774
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FocusAreaStrengthDetailModalContentComponent, { className: "FocusAreaStrengthDetailModalContentComponent", filePath: "lib/components/profile-analysis-dashboard/modals/focus-area-strength-detail-modal-content.component.ts", lineNumber: 121 }); })();
31699
31775
 
31700
- const _c0$M = a0 => ({ name: "chat-bubble-left-right", source: a0 });
31776
+ const _c0$N = a0 => ({ name: "chat-bubble-left-right", source: a0 });
31701
31777
  function FocusAreaGapDetailModalContentComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
31702
31778
  i0.ɵɵelementStart(0, "div", 1)(1, "span", 3);
31703
31779
  i0.ɵɵtext(2);
@@ -31794,7 +31870,7 @@ function FocusAreaGapDetailModalContentComponent_Conditional_6_For_5_Template(rf
31794
31870
  const ctx_r0 = i0.ɵɵnextContext(2);
31795
31871
  i0.ɵɵproperty("ngClass", ctx_r0.answerClasses());
31796
31872
  i0.ɵɵadvance(2);
31797
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(7, _c0$M, ctx_r0.IconSourceEnum.HEROICONS))("ngClass", ctx_r0.answerIconClasses());
31873
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(7, _c0$N, ctx_r0.IconSourceEnum.HEROICONS))("ngClass", ctx_r0.answerIconClasses());
31798
31874
  i0.ɵɵadvance();
31799
31875
  i0.ɵɵproperty("ngClass", ctx_r0.answerQuestionClasses());
31800
31876
  i0.ɵɵadvance();
@@ -32033,7 +32109,7 @@ class FocusAreaGapDetailModalContentComponent {
32033
32109
  }], null, { gap: [{ type: i0.Input, args: [{ isSignal: true, alias: "gap", required: true }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: true }] }], allMetrics: [{ type: i0.Input, args: [{ isSignal: true, alias: "allMetrics", required: false }] }], allCharts: [{ type: i0.Input, args: [{ isSignal: true, alias: "allCharts", required: false }] }], currentModalState: [{ type: i0.Input, args: [{ isSignal: true, alias: "currentModalState", required: false }] }] }); })();
32034
32110
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FocusAreaGapDetailModalContentComponent, { className: "FocusAreaGapDetailModalContentComponent", filePath: "lib/components/profile-analysis-dashboard/modals/focus-area-gap-detail-modal-content.component.ts", lineNumber: 98 }); })();
32035
32111
 
32036
- const _c0$L = a0 => ({ name: "chevron-right", source: a0 });
32112
+ const _c0$M = a0 => ({ name: "chevron-right", source: a0 });
32037
32113
  const _c1$q = () => [];
32038
32114
  const _forTrack0$r = ($index, $item) => $item.performanceItemId;
32039
32115
  function FocusAreaOpportunityDetailModalContentComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
@@ -32080,7 +32156,7 @@ function FocusAreaOpportunityDetailModalContentComponent_Conditional_3_For_5_Tem
32080
32156
  i0.ɵɵadvance(2);
32081
32157
  i0.ɵɵtextInterpolate(ctx_r0.formatMetricName(metric_r3.metric || ""));
32082
32158
  i0.ɵɵadvance();
32083
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(3, _c0$L, ctx_r0.IconSourceEnum.HEROICONS));
32159
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(3, _c0$M, ctx_r0.IconSourceEnum.HEROICONS));
32084
32160
  } }
32085
32161
  function FocusAreaOpportunityDetailModalContentComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
32086
32162
  i0.ɵɵelementStart(0, "div", 1)(1, "h4", 5);
@@ -32485,7 +32561,7 @@ class CircularProgressComponent {
32485
32561
  }], null, { percentage: [{ type: i0.Input, args: [{ isSignal: true, alias: "percentage", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], strokeWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "strokeWidth", required: false }] }], progressColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "progressColor", required: false }] }], backgroundColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "backgroundColor", required: false }] }], showPercentage: [{ type: i0.Input, args: [{ isSignal: true, alias: "showPercentage", required: false }] }], textClasses: [{ type: i0.Input, args: [{ isSignal: true, alias: "textClasses", required: false }] }], strokeLinecap: [{ type: i0.Input, args: [{ isSignal: true, alias: "strokeLinecap", required: false }] }], animationDuration: [{ type: i0.Input, args: [{ isSignal: true, alias: "animationDuration", required: false }] }], animationDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "animationDelay", required: false }] }] }); })();
32486
32562
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CircularProgressComponent, { className: "CircularProgressComponent", filePath: "lib/components/business-analysis-dashboard/visualizations/circular-progress.component.ts", lineNumber: 41 }); })();
32487
32563
 
32488
- const _c0$K = ["*"];
32564
+ const _c0$L = ["*"];
32489
32565
  const _c1$p = (a0, a1) => [a0, a1];
32490
32566
  function VisualizationContainerComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
32491
32567
  const _r1 = i0.ɵɵgetCurrentView();
@@ -32530,7 +32606,7 @@ class VisualizationContainerComponent {
32530
32606
  });
32531
32607
  }
32532
32608
  static { this.ɵfac = function VisualizationContainerComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || VisualizationContainerComponent)(); }; }
32533
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: VisualizationContainerComponent, selectors: [["symphiq-visualization-container"]], inputs: { isLightMode: [1, "isLightMode"], visualizationType: [1, "visualizationType"], visualizationData: [1, "visualizationData"], disableInteraction: [1, "disableInteraction"] }, outputs: { visualizationClick: "visualizationClick" }, ngContentSelectors: _c0$K, decls: 4, vars: 8, consts: [[1, "relative", "rounded-xl", "transition-all", "duration-300", 3, "click", "ngClass"], ["type", "button", 1, "absolute", "top-2", "right-2", "z-10", "w-7", "h-7", "flex", "items-center", "justify-center", "rounded-lg", "transition-all", "duration-200", "hover:scale-110", "cursor-pointer", "opacity-0", "group-hover:opacity-100", 3, "ngClass"], [1, "transition-opacity", "duration-300"], ["type", "button", 1, "absolute", "top-2", "right-2", "z-10", "w-7", "h-7", "flex", "items-center", "justify-center", "rounded-lg", "transition-all", "duration-200", "hover:scale-110", "cursor-pointer", "opacity-0", "group-hover:opacity-100", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M4 8V4m0 0h4M4 4l5 5m11-1V4m0 0h-4m4 0l-5 5M4 16v4m0 0h4m-4 0l5-5m11 5l-5-5m5 5v-4m0 4h-4"]], template: function VisualizationContainerComponent_Template(rf, ctx) { if (rf & 1) {
32609
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: VisualizationContainerComponent, selectors: [["symphiq-visualization-container"]], inputs: { isLightMode: [1, "isLightMode"], visualizationType: [1, "visualizationType"], visualizationData: [1, "visualizationData"], disableInteraction: [1, "disableInteraction"] }, outputs: { visualizationClick: "visualizationClick" }, ngContentSelectors: _c0$L, decls: 4, vars: 8, consts: [[1, "relative", "rounded-xl", "transition-all", "duration-300", 3, "click", "ngClass"], ["type", "button", 1, "absolute", "top-2", "right-2", "z-10", "w-7", "h-7", "flex", "items-center", "justify-center", "rounded-lg", "transition-all", "duration-200", "hover:scale-110", "cursor-pointer", "opacity-0", "group-hover:opacity-100", 3, "ngClass"], [1, "transition-opacity", "duration-300"], ["type", "button", 1, "absolute", "top-2", "right-2", "z-10", "w-7", "h-7", "flex", "items-center", "justify-center", "rounded-lg", "transition-all", "duration-200", "hover:scale-110", "cursor-pointer", "opacity-0", "group-hover:opacity-100", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M4 8V4m0 0h4M4 4l5 5m11-1V4m0 0h-4m4 0l-5 5M4 16v4m0 0h4m-4 0l5-5m11 5l-5-5m5 5v-4m0 4h-4"]], template: function VisualizationContainerComponent_Template(rf, ctx) { if (rf & 1) {
32534
32610
  i0.ɵɵprojectionDef();
32535
32611
  i0.ɵɵelementStart(0, "div", 0);
32536
32612
  i0.ɵɵlistener("click", function VisualizationContainerComponent_Template_div_click_0_listener($event) { return ctx.onVisualizationClick($event); });
@@ -32651,7 +32727,7 @@ class MetricBadgeComponent {
32651
32727
  }], null, { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], isDark: [{ type: i0.Input, args: [{ isSignal: true, alias: "isDark", required: false }] }] }); })();
32652
32728
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MetricBadgeComponent, { className: "MetricBadgeComponent", filePath: "lib/components/business-analysis-dashboard/badges/metric-badge.component.ts", lineNumber: 22 }); })();
32653
32729
 
32654
- const _c0$J = a0 => ({ name: "light-bulb", source: a0 });
32730
+ const _c0$K = a0 => ({ name: "light-bulb", source: a0 });
32655
32731
  const _c1$o = a0 => ({ name: "chevron-right", source: a0 });
32656
32732
  function OpportunityHighlightBannerComponent_Conditional_9_Template(rf, ctx) { if (rf & 1) {
32657
32733
  i0.ɵɵelementStart(0, "p", 7);
@@ -32716,7 +32792,7 @@ class OpportunityHighlightBannerComponent {
32716
32792
  i0.ɵɵadvance();
32717
32793
  i0.ɵɵproperty("ngClass", ctx.iconContainerClasses());
32718
32794
  i0.ɵɵadvance();
32719
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(11, _c0$J, ctx.iconSource));
32795
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(11, _c0$K, ctx.iconSource));
32720
32796
  i0.ɵɵadvance(3);
32721
32797
  i0.ɵɵproperty("ngClass", ctx.titleClasses());
32722
32798
  i0.ɵɵadvance();
@@ -32773,7 +32849,7 @@ class OpportunityHighlightBannerComponent {
32773
32849
  }], null, { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], message: [{ type: i0.Input, args: [{ isSignal: true, alias: "message", required: false }] }], isDark: [{ type: i0.Input, args: [{ isSignal: true, alias: "isDark", required: false }] }], isExpanded: [{ type: i0.Input, args: [{ isSignal: true, alias: "isExpanded", required: false }] }], bannerClick: [{ type: i0.Output, args: ["bannerClick"] }] }); })();
32774
32850
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(OpportunityHighlightBannerComponent, { className: "OpportunityHighlightBannerComponent", filePath: "lib/components/business-analysis-dashboard/banners/opportunity-highlight-banner.component.ts", lineNumber: 44 }); })();
32775
32851
 
32776
- const _c0$I = a0 => ({ name: "users", source: a0 });
32852
+ const _c0$J = a0 => ({ name: "users", source: a0 });
32777
32853
  function CompetitorOverlapVisualizationComponent_Conditional_18_Template(rf, ctx) { if (rf & 1) {
32778
32854
  i0.ɵɵelementStart(0, "div", 5)(1, "div", 6);
32779
32855
  i0.ɵɵelement(2, "symphiq-icon", 7);
@@ -32788,7 +32864,7 @@ function CompetitorOverlapVisualizationComponent_Conditional_18_Template(rf, ctx
32788
32864
  i0.ɵɵadvance();
32789
32865
  i0.ɵɵproperty("ngClass", ctx_r0.competitorListLabelClasses());
32790
32866
  i0.ɵɵadvance();
32791
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(6, _c0$I, ctx_r0.iconSource));
32867
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(6, _c0$J, ctx_r0.iconSource));
32792
32868
  i0.ɵɵadvance(3);
32793
32869
  i0.ɵɵproperty("relatedCompetitorIds", ctx_r0.relatedCompetitorIds())("viewMode", ctx_r0.isDark() ? ctx_r0.ViewModeEnum.DARK : ctx_r0.ViewModeEnum.LIGHT)("isDark", ctx_r0.isDark());
32794
32870
  } }
@@ -33352,7 +33428,7 @@ class ViewportAnimationDirective {
33352
33428
  type: Input
33353
33429
  }] }); })();
33354
33430
 
33355
- const _c0$H = a0 => ({ name: "star", source: a0 });
33431
+ const _c0$I = a0 => ({ name: "star", source: a0 });
33356
33432
  const _c1$n = a0 => ({ name: "globe-americas", source: a0 });
33357
33433
  const _c2$i = a0 => ({ name: "academic-cap", source: a0 });
33358
33434
  const _c3$f = a0 => ({ name: "information-circle", source: a0 });
@@ -33388,7 +33464,7 @@ function RegionCardComponent_Conditional_16_Template(rf, ctx) { if (rf & 1) {
33388
33464
  i0.ɵɵelement(0, "symphiq-metric-badge", 13);
33389
33465
  } if (rf & 2) {
33390
33466
  const ctx_r0 = i0.ɵɵnextContext();
33391
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(2, _c0$H, ctx_r0.IconSourceEnum.HEROICONS))("isDark", ctx_r0.isDark);
33467
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(2, _c0$I, ctx_r0.IconSourceEnum.HEROICONS))("isDark", ctx_r0.isDark);
33392
33468
  } }
33393
33469
  function RegionCardComponent_Conditional_17_Template(rf, ctx) { if (rf & 1) {
33394
33470
  i0.ɵɵelement(0, "symphiq-metric-badge", 14);
@@ -34430,7 +34506,7 @@ class CompetitiveInsightBadgeComponent {
34430
34506
  }], null, { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], tooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltip", required: false }] }], isDark: [{ type: i0.Input, args: [{ isSignal: true, alias: "isDark", required: false }] }] }); })();
34431
34507
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CompetitiveInsightBadgeComponent, { className: "CompetitiveInsightBadgeComponent", filePath: "lib/components/business-analysis-dashboard/badges/competitive-insight-badge.component.ts", lineNumber: 25 }); })();
34432
34508
 
34433
- const _c0$G = a0 => ({ name: "calendar-days", source: a0 });
34509
+ const _c0$H = a0 => ({ name: "calendar-days", source: a0 });
34434
34510
  const _c1$m = a0 => ({ name: "chart-bar", source: a0 });
34435
34511
  const _c2$h = a0 => ({ name: "academic-cap", source: a0 });
34436
34512
  const _c3$e = a0 => ({ name: "information-circle", source: a0 });
@@ -34451,7 +34527,7 @@ function SeasonCardComponent_Conditional_14_Template(rf, ctx) { if (rf & 1) {
34451
34527
  i0.ɵɵelement(0, "symphiq-metric-badge", 12);
34452
34528
  } if (rf & 2) {
34453
34529
  const ctx_r0 = i0.ɵɵnextContext();
34454
- i0.ɵɵproperty("label", ctx_r0.formatMonthRange())("icon", i0.ɵɵpureFunction1(3, _c0$G, ctx_r0.IconSourceEnum.HEROICONS))("isDark", ctx_r0.isDark);
34530
+ i0.ɵɵproperty("label", ctx_r0.formatMonthRange())("icon", i0.ɵɵpureFunction1(3, _c0$H, ctx_r0.IconSourceEnum.HEROICONS))("isDark", ctx_r0.isDark);
34455
34531
  } }
34456
34532
  function SeasonCardComponent_Conditional_15_Template(rf, ctx) { if (rf & 1) {
34457
34533
  i0.ɵɵelement(0, "symphiq-metric-badge", 13);
@@ -35268,7 +35344,7 @@ class SeasonCardComponent {
35268
35344
  }] }); })();
35269
35345
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SeasonCardComponent, { className: "SeasonCardComponent", filePath: "lib/components/business-analysis-dashboard/cards/season-card.component.ts", lineNumber: 270 }); })();
35270
35346
 
35271
- const _c0$F = a0 => ({ name: "currency-dollar", source: a0 });
35347
+ const _c0$G = a0 => ({ name: "currency-dollar", source: a0 });
35272
35348
  const _c1$l = a0 => ({ name: "chart-bar", source: a0 });
35273
35349
  const _c2$g = a0 => ({ name: "academic-cap", source: a0 });
35274
35350
  const _c3$d = a0 => ({ name: "information-circle", source: a0 });
@@ -35413,7 +35489,7 @@ function CustomerSegmentCardComponent_Conditional_22_Template(rf, ctx) { if (rf
35413
35489
  const ctx_r0 = i0.ɵɵnextContext();
35414
35490
  i0.ɵɵproperty("ngClass", ctx_r0.getExpandedSectionClasses());
35415
35491
  i0.ɵɵadvance();
35416
- i0.ɵɵproperty("label", ctx_r0.formatPercentage(ctx_r0.item().percentageOfRevenue) + " of Revenue")("icon", i0.ɵɵpureFunction1(4, _c0$F, ctx_r0.IconSourceEnum.HEROICONS))("isDark", ctx_r0.isDark);
35492
+ i0.ɵɵproperty("label", ctx_r0.formatPercentage(ctx_r0.item().percentageOfRevenue) + " of Revenue")("icon", i0.ɵɵpureFunction1(4, _c0$G, ctx_r0.IconSourceEnum.HEROICONS))("isDark", ctx_r0.isDark);
35417
35493
  } }
35418
35494
  function CustomerSegmentCardComponent_Conditional_23_Conditional_5_Template(rf, ctx) { if (rf & 1) {
35419
35495
  const _r5 = i0.ɵɵgetCurrentView();
@@ -36385,7 +36461,7 @@ class CustomerSegmentCardComponent {
36385
36461
  }] }); })();
36386
36462
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CustomerSegmentCardComponent, { className: "CustomerSegmentCardComponent", filePath: "lib/components/business-analysis-dashboard/cards/customer-segment-card.component.ts", lineNumber: 366 }); })();
36387
36463
 
36388
- const _c0$E = a0 => ({ name: "currency-dollar", source: a0 });
36464
+ const _c0$F = a0 => ({ name: "currency-dollar", source: a0 });
36389
36465
  const _c1$k = a0 => ({ name: "document-text", source: a0 });
36390
36466
  const _c2$f = a0 => ({ name: "academic-cap", source: a0 });
36391
36467
  const _c3$c = a0 => ({ name: "information-circle", source: a0 });
@@ -36483,7 +36559,7 @@ function PriceTierCardComponent_Conditional_25_Template(rf, ctx) { if (rf & 1) {
36483
36559
  const ctx_r0 = i0.ɵɵnextContext();
36484
36560
  i0.ɵɵproperty("ngClass", ctx_r0.getExpandedSectionClasses());
36485
36561
  i0.ɵɵadvance(2);
36486
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(7, _c0$E, ctx_r0.IconSourceEnum.HEROICONS))("ngClass", ctx_r0.getExpandedIconClasses());
36562
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(7, _c0$F, ctx_r0.IconSourceEnum.HEROICONS))("ngClass", ctx_r0.getExpandedIconClasses());
36487
36563
  i0.ɵɵadvance();
36488
36564
  i0.ɵɵproperty("ngClass", ctx_r0.getExpandedTitleClasses());
36489
36565
  i0.ɵɵadvance(2);
@@ -37222,7 +37298,7 @@ class PriceTierCardComponent {
37222
37298
  }] }); })();
37223
37299
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PriceTierCardComponent, { className: "PriceTierCardComponent", filePath: "lib/components/business-analysis-dashboard/cards/price-tier-card.component.ts", lineNumber: 261 }); })();
37224
37300
 
37225
- const _c0$D = () => ({ name: "cube", source: "HEROICONS" });
37301
+ const _c0$E = () => ({ name: "cube", source: "HEROICONS" });
37226
37302
  const _c1$j = () => ({ name: "currency-dollar", source: "HEROICONS" });
37227
37303
  const _c2$e = () => ({ name: "chart-bar", source: "HEROICONS" });
37228
37304
  const _c3$b = a0 => ({ name: "chart-bar", source: a0 });
@@ -37269,7 +37345,7 @@ function ProductCategoryCardComponent_Conditional_14_Conditional_2_Template(rf,
37269
37345
  const ctx_r0 = i0.ɵɵnextContext(2);
37270
37346
  i0.ɵɵproperty("ngClass", ctx_r0.getStatBoxClasses());
37271
37347
  i0.ɵɵadvance(2);
37272
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(6, _c0$D))("ngClass", ctx_r0.getStatIconClasses());
37348
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(6, _c0$E))("ngClass", ctx_r0.getStatIconClasses());
37273
37349
  i0.ɵɵadvance(2);
37274
37350
  i0.ɵɵproperty("ngClass", ctx_r0.getStatLabelClasses());
37275
37351
  i0.ɵɵadvance(2);
@@ -38217,13 +38293,13 @@ class ProductCategoryCardComponent {
38217
38293
  }] }); })();
38218
38294
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ProductCategoryCardComponent, { className: "ProductCategoryCardComponent", filePath: "lib/components/business-analysis-dashboard/cards/product-category-card.component.ts", lineNumber: 324 }); })();
38219
38295
 
38220
- const _c0$C = (a0, a1) => ({ name: a0, source: a1 });
38296
+ const _c0$D = (a0, a1) => ({ name: a0, source: a1 });
38221
38297
  function CompetitiveStrengthIndicatorComponent_For_3_Template(rf, ctx) { if (rf & 1) {
38222
38298
  i0.ɵɵelement(0, "symphiq-icon", 2);
38223
38299
  } if (rf & 2) {
38224
38300
  const star_r1 = ctx.$implicit;
38225
38301
  const ctx_r1 = i0.ɵɵnextContext();
38226
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction2(2, _c0$C, star_r1.filled ? "star" : "star", ctx_r1.iconSource))("ngClass", star_r1.filled ? ctx_r1.filledStarClasses() : ctx_r1.emptyStarClasses());
38302
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction2(2, _c0$D, star_r1.filled ? "star" : "star", ctx_r1.iconSource))("ngClass", star_r1.filled ? ctx_r1.filledStarClasses() : ctx_r1.emptyStarClasses());
38227
38303
  } }
38228
38304
  class CompetitiveStrengthIndicatorComponent {
38229
38305
  constructor() {
@@ -38379,7 +38455,7 @@ function getCategoryBadgeClasses(category, isDark) {
38379
38455
  return `px-3 py-1 rounded-full text-xs font-semibold whitespace-nowrap ${colorClasses}`;
38380
38456
  }
38381
38457
 
38382
- const _c0$B = a0 => ({ name: "shield-check", source: a0 });
38458
+ const _c0$C = a0 => ({ name: "shield-check", source: a0 });
38383
38459
  const _c1$i = a0 => ({ name: "building-storefront", source: a0 });
38384
38460
  const _c2$d = a0 => ({ name: "academic-cap", source: a0 });
38385
38461
  const _c3$a = a0 => ({ name: "information-circle", source: a0 });
@@ -38451,7 +38527,7 @@ function EnhancedListItemCardComponent_Conditional_21_Template(rf, ctx) { if (rf
38451
38527
  const ctx_r0 = i0.ɵɵnextContext();
38452
38528
  i0.ɵɵproperty("ngClass", ctx_r0.getExpandedSectionClasses());
38453
38529
  i0.ɵɵadvance(2);
38454
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(7, _c0$B, ctx_r0.IconSourceEnum.HEROICONS))("ngClass", ctx_r0.getExpandedIconClasses());
38530
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(7, _c0$C, ctx_r0.IconSourceEnum.HEROICONS))("ngClass", ctx_r0.getExpandedIconClasses());
38455
38531
  i0.ɵɵadvance();
38456
38532
  i0.ɵɵproperty("ngClass", ctx_r0.getExpandedTitleClasses());
38457
38533
  i0.ɵɵadvance(2);
@@ -39095,7 +39171,7 @@ class EnhancedListItemCardComponent {
39095
39171
  }] }); })();
39096
39172
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(EnhancedListItemCardComponent, { className: "EnhancedListItemCardComponent", filePath: "lib/components/business-analysis-dashboard/cards/enhanced-list-item-card.component.ts", lineNumber: 221 }); })();
39097
39173
 
39098
- const _c0$A = a0 => ({ name: "academic-cap", source: a0 });
39174
+ const _c0$B = a0 => ({ name: "academic-cap", source: a0 });
39099
39175
  const _c1$h = a0 => ({ name: "information-circle", source: a0 });
39100
39176
  const _c2$c = a0 => ({ name: "signal", source: a0 });
39101
39177
  const _c3$9 = a0 => ({ name: "wrench-screwdriver", source: a0 });
@@ -39176,7 +39252,7 @@ function FocusAreaDetailCardComponent_Conditional_16_Conditional_5_Template(rf,
39176
39252
  const ctx_r0 = i0.ɵɵnextContext(2);
39177
39253
  i0.ɵɵproperty("ngClass", ctx_r0.getCompetitiveGapSectionClasses());
39178
39254
  i0.ɵɵadvance(2);
39179
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(6, _c0$A, ctx_r0.IconSourceEnum.HEROICONS))("ngClass", ctx_r0.expandedIconClasses());
39255
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(6, _c0$B, ctx_r0.IconSourceEnum.HEROICONS))("ngClass", ctx_r0.expandedIconClasses());
39180
39256
  i0.ɵɵadvance();
39181
39257
  i0.ɵɵproperty("ngClass", ctx_r0.expandedTitleClasses());
39182
39258
  i0.ɵɵadvance(2);
@@ -40958,7 +41034,7 @@ class CompetitorAnalysisCardComponent {
40958
41034
  }] }); })();
40959
41035
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CompetitorAnalysisCardComponent, { className: "CompetitorAnalysisCardComponent", filePath: "lib/components/business-analysis-dashboard/cards/competitor-analysis-card.component.ts", lineNumber: 312 }); })();
40960
41036
 
40961
- const _c0$z = ["*"];
41037
+ const _c0$A = ["*"];
40962
41038
  class SkeletonCardBaseComponent {
40963
41039
  constructor() {
40964
41040
  this.viewMode = input(ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "viewMode" }] : []));
@@ -40978,7 +41054,7 @@ class SkeletonCardBaseComponent {
40978
41054
  `.trim();
40979
41055
  }
40980
41056
  static { this.ɵfac = function SkeletonCardBaseComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SkeletonCardBaseComponent)(); }; }
40981
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SkeletonCardBaseComponent, selectors: [["symphiq-skeleton-card-base"]], inputs: { viewMode: [1, "viewMode"] }, ngContentSelectors: _c0$z, decls: 2, vars: 1, consts: [[1, "animate-pulse", 3, "ngClass"]], template: function SkeletonCardBaseComponent_Template(rf, ctx) { if (rf & 1) {
41057
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SkeletonCardBaseComponent, selectors: [["symphiq-skeleton-card-base"]], inputs: { viewMode: [1, "viewMode"] }, ngContentSelectors: _c0$A, decls: 2, vars: 1, consts: [[1, "animate-pulse", 3, "ngClass"]], template: function SkeletonCardBaseComponent_Template(rf, ctx) { if (rf & 1) {
40982
41058
  i0.ɵɵprojectionDef();
40983
41059
  i0.ɵɵelementStart(0, "div", 0);
40984
41060
  i0.ɵɵprojection(1);
@@ -42143,7 +42219,7 @@ class ProfileItemCardComponent {
42143
42219
  }], null, { item: [{ type: i0.Input, args: [{ isSignal: true, alias: "item", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], subsectionId: [{ type: i0.Input, args: [{ isSignal: true, alias: "subsectionId", required: false }] }], forceExpanded: [{ type: i0.Input, args: [{ isSignal: true, alias: "forceExpanded", required: false }] }], animationIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "animationIndex", required: false }] }], isLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLoading", required: false }] }], inModalContext: [{ type: i0.Input, args: [{ isSignal: true, alias: "inModalContext", required: false }] }], isCompactMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "isCompactMode", required: false }] }] }); })();
42144
42220
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ProfileItemCardComponent, { className: "ProfileItemCardComponent", filePath: "lib/components/business-analysis-dashboard/profile-item-card.component.ts", lineNumber: 171 }); })();
42145
42221
 
42146
- const _c0$y = ["scrollContainer"];
42222
+ const _c0$z = ["scrollContainer"];
42147
42223
  const _c1$g = a0 => ({ name: "arrow-right", source: a0 });
42148
42224
  function ItemDetailModalComponent_Conditional_7_Template(rf, ctx) { if (rf & 1) {
42149
42225
  const _r2 = i0.ɵɵgetCurrentView();
@@ -42263,7 +42339,7 @@ class ItemDetailModalComponent {
42263
42339
  }
42264
42340
  static { this.ɵfac = function ItemDetailModalComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ItemDetailModalComponent)(); }; }
42265
42341
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ItemDetailModalComponent, selectors: [["symphiq-item-detail-modal"]], viewQuery: function ItemDetailModalComponent_Query(rf, ctx) { if (rf & 1) {
42266
- i0.ɵɵviewQuery(_c0$y, 5);
42342
+ i0.ɵɵviewQuery(_c0$z, 5);
42267
42343
  } if (rf & 2) {
42268
42344
  let _t;
42269
42345
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.scrollContainer = _t.first);
@@ -42342,7 +42418,7 @@ class ItemDetailModalComponent {
42342
42418
  }] }); })();
42343
42419
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ItemDetailModalComponent, { className: "ItemDetailModalComponent", filePath: "lib/components/business-analysis-dashboard/modals/item-detail-modal.component.ts", lineNumber: 53 }); })();
42344
42420
 
42345
- const _c0$x = ["modalContent"];
42421
+ const _c0$y = ["modalContent"];
42346
42422
  const _c1$f = ["modalWrapper"];
42347
42423
  const _c2$b = ["*"];
42348
42424
  const ProfileAnalysisModalComponent_Conditional_0_Conditional_31_Conditional_3_Defer_2_DepsFn = () => [Promise.resolve().then(function () { return lineChart_component; }).then(m => m.LineChartComponent)];
@@ -44637,7 +44713,7 @@ class ProfileAnalysisModalComponent {
44637
44713
  }
44638
44714
  static { this.ɵfac = function ProfileAnalysisModalComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ProfileAnalysisModalComponent)(); }; }
44639
44715
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ProfileAnalysisModalComponent, selectors: [["symphiq-profile-analysis-modal"]], viewQuery: function ProfileAnalysisModalComponent_Query(rf, ctx) { if (rf & 1) {
44640
- i0.ɵɵviewQuery(_c0$x, 5);
44716
+ i0.ɵɵviewQuery(_c0$y, 5);
44641
44717
  i0.ɵɵviewQuery(_c1$f, 5);
44642
44718
  } if (rf & 2) {
44643
44719
  let _t;
@@ -45192,7 +45268,7 @@ class ProfileAnalysisModalComponent {
45192
45268
  }] }); }); })();
45193
45269
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ProfileAnalysisModalComponent, { className: "ProfileAnalysisModalComponent", filePath: "lib/components/profile-analysis-dashboard/profile-analysis-modal.component.ts", lineNumber: 554 }); })();
45194
45270
 
45195
- const _c0$w = a0 => ({ name: "light-bulb", source: a0 });
45271
+ const _c0$x = a0 => ({ name: "light-bulb", source: a0 });
45196
45272
  const _c1$e = a0 => ({ name: "trophy", source: a0 });
45197
45273
  const _c2$a = a0 => ({ name: "academic-cap", source: a0 });
45198
45274
  const _c3$7 = a0 => ({ name: "signal", source: a0 });
@@ -45402,7 +45478,7 @@ class CompetitiveGapModalComponent {
45402
45478
  i0.ɵɵadvance(2);
45403
45479
  i0.ɵɵproperty("ngClass", ctx.iconContainerClasses());
45404
45480
  i0.ɵɵadvance();
45405
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(12, _c0$w, ctx.iconSource));
45481
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(12, _c0$x, ctx.iconSource));
45406
45482
  i0.ɵɵadvance(3);
45407
45483
  i0.ɵɵproperty("ngClass", ctx.titleClasses());
45408
45484
  i0.ɵɵadvance();
@@ -45523,7 +45599,7 @@ class CompetitiveGapModalComponent {
45523
45599
  }], null, { item: [{ type: i0.Input, args: [{ isSignal: true, alias: "item", required: false }] }], isDark: [{ type: i0.Input, args: [{ isSignal: true, alias: "isDark", required: false }] }] }); })();
45524
45600
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CompetitiveGapModalComponent, { className: "CompetitiveGapModalComponent", filePath: "lib/components/business-analysis-dashboard/modals/competitive-gap-modal.component.ts", lineNumber: 101 }); })();
45525
45601
 
45526
- const _c0$v = a0 => ({ name: "list-bullet", source: a0 });
45602
+ const _c0$w = a0 => ({ name: "list-bullet", source: a0 });
45527
45603
  const _c1$d = a0 => ({ name: "arrow-right", source: a0 });
45528
45604
  const _c2$9 = a0 => ({ name: "check-circle", source: a0 });
45529
45605
  const _c3$6 = a0 => ({ name: "exclamation-circle", source: a0 });
@@ -45543,7 +45619,7 @@ function RecommendationActionStepsModalComponent_Conditional_1_Template(rf, ctx)
45543
45619
  i0.ɵɵadvance();
45544
45620
  i0.ɵɵproperty("ngClass", ctx_r0.iconContainerClasses());
45545
45621
  i0.ɵɵadvance();
45546
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(5, _c0$v, ctx_r0.iconSource));
45622
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(5, _c0$w, ctx_r0.iconSource));
45547
45623
  i0.ɵɵadvance(2);
45548
45624
  i0.ɵɵproperty("ngClass", ctx_r0.titleClasses());
45549
45625
  i0.ɵɵadvance(2);
@@ -45763,7 +45839,7 @@ class RecommendationActionStepsModalComponent {
45763
45839
  }], null, { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], actionSteps: [{ type: i0.Input, args: [{ isSignal: true, alias: "actionSteps", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }] }); })();
45764
45840
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(RecommendationActionStepsModalComponent, { className: "RecommendationActionStepsModalComponent", filePath: "lib/components/business-analysis-dashboard/modals/recommendation-action-steps-modal.component.ts", lineNumber: 69 }); })();
45765
45841
 
45766
- const _c0$u = ["modalContent"];
45842
+ const _c0$v = ["modalContent"];
45767
45843
  const _c1$c = ["modalWrapper"];
45768
45844
  function BusinessAnalysisModalComponent_Conditional_0_Conditional_10_For_6_Conditional_0_Template(rf, ctx) { if (rf & 1) {
45769
45845
  const _r4 = i0.ɵɵgetCurrentView();
@@ -46286,7 +46362,7 @@ class BusinessAnalysisModalComponent {
46286
46362
  }
46287
46363
  static { this.ɵfac = function BusinessAnalysisModalComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || BusinessAnalysisModalComponent)(); }; }
46288
46364
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: BusinessAnalysisModalComponent, selectors: [["symphiq-business-analysis-modal"]], viewQuery: function BusinessAnalysisModalComponent_Query(rf, ctx) { if (rf & 1) {
46289
- i0.ɵɵviewQuery(_c0$u, 5);
46365
+ i0.ɵɵviewQuery(_c0$v, 5);
46290
46366
  i0.ɵɵviewQuery(_c1$c, 5);
46291
46367
  } if (rf & 2) {
46292
46368
  let _t;
@@ -46471,7 +46547,7 @@ class BusinessAnalysisModalComponent {
46471
46547
  }] }); })();
46472
46548
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(BusinessAnalysisModalComponent, { className: "BusinessAnalysisModalComponent", filePath: "lib/components/business-analysis-dashboard/business-analysis-modal.component.ts", lineNumber: 171 }); })();
46473
46549
 
46474
- const _c0$t = ["dashboardContainer"];
46550
+ const _c0$u = ["dashboardContainer"];
46475
46551
  const _c1$b = () => ({});
46476
46552
  const _c2$8 = () => [1, 2, 3, 4, 5, 6];
46477
46553
  const _c3$5 = () => [1, 2, 3];
@@ -48732,7 +48808,7 @@ class SymphiqFunnelAnalysisDashboardComponent {
48732
48808
  static { this.ɵfac = function SymphiqFunnelAnalysisDashboardComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SymphiqFunnelAnalysisDashboardComponent)(i0.ɵɵdirectiveInject(FunnelOrderService), i0.ɵɵdirectiveInject(ViewModeService), i0.ɵɵdirectiveInject(SearchService), i0.ɵɵdirectiveInject(TooltipService), i0.ɵɵdirectiveInject(ProfileContextService), i0.ɵɵdirectiveInject(ProfileItemLookupService)); }; }
48733
48809
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SymphiqFunnelAnalysisDashboardComponent, selectors: [["symphiq-funnel-analysis-dashboard"]], viewQuery: function SymphiqFunnelAnalysisDashboardComponent_Query(rf, ctx) { if (rf & 1) {
48734
48810
  i0.ɵɵviewQuery(ModalComponent, 5);
48735
- i0.ɵɵviewQuery(_c0$t, 5);
48811
+ i0.ɵɵviewQuery(_c0$u, 5);
48736
48812
  } if (rf & 2) {
48737
48813
  let _t;
48738
48814
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.modalComponent = _t.first);
@@ -52405,7 +52481,7 @@ class FocusAreaToolsModalComponent {
52405
52481
  }] }); })();
52406
52482
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FocusAreaToolsModalComponent, { className: "FocusAreaToolsModalComponent", filePath: "lib/components/create-account-dashboard/focus-area-tools-modal.component.ts", lineNumber: 149 }); })();
52407
52483
 
52408
- const _c0$s = ["shopNameInput"];
52484
+ const _c0$t = ["shopNameInput"];
52409
52485
  const _forTrack0$k = ($index, $item) => $item.focusAreaDomain;
52410
52486
  function SymphiqCreateAccountDashboardComponent_Conditional_23_Conditional_27_Template(rf, ctx) { if (rf & 1) {
52411
52487
  i0.ɵɵtext(0, " Shopify ");
@@ -53568,7 +53644,7 @@ class SymphiqCreateAccountDashboardComponent {
53568
53644
  }
53569
53645
  static { this.ɵfac = function SymphiqCreateAccountDashboardComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SymphiqCreateAccountDashboardComponent)(); }; }
53570
53646
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SymphiqCreateAccountDashboardComponent, selectors: [["symphiq-create-account-dashboard"]], viewQuery: function SymphiqCreateAccountDashboardComponent_Query(rf, ctx) { if (rf & 1) {
53571
- i0.ɵɵviewQuery(_c0$s, 5);
53647
+ i0.ɵɵviewQuery(_c0$t, 5);
53572
53648
  } if (rf & 2) {
53573
53649
  let _t;
53574
53650
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.shopNameInput = _t.first);
@@ -55918,18 +55994,29 @@ class PacingStatusBadgeComponent {
55918
55994
 
55919
55995
  const _forTrack0$i = ($index, $item) => $item.stageMetric.metric;
55920
55996
  const _forTrack1$3 = ($index, $item) => $item.calc.metric;
55997
+ function FunnelMetricsVisualizationComponent_For_3_Conditional_6_Template(rf, ctx) { if (rf & 1) {
55998
+ i0.ɵɵelementStart(0, "button", 7);
55999
+ i0.ɵɵnamespaceSVG();
56000
+ i0.ɵɵelementStart(1, "svg", 14);
56001
+ i0.ɵɵelement(2, "path", 15);
56002
+ i0.ɵɵelementEnd()();
56003
+ } if (rf & 2) {
56004
+ const stage_r1 = i0.ɵɵnextContext().$implicit;
56005
+ const ctx_r1 = i0.ɵɵnextContext();
56006
+ i0.ɵɵproperty("ngClass", ctx_r1.infoIconClasses())("libSymphiqTooltip", ctx_r1.getMarkdownTooltipContent(stage_r1.stageMetric.description, ctx_r1.getMetricTitle(stage_r1.stageMetric)))("tooltipPosition", "right");
56007
+ } }
55921
56008
  function FunnelMetricsVisualizationComponent_For_3_Conditional_8_Template(rf, ctx) { if (rf & 1) {
55922
- i0.ɵɵelement(0, "symphiq-pacing-status-badge", 8);
56009
+ i0.ɵɵelement(0, "symphiq-pacing-status-badge", 9);
55923
56010
  } if (rf & 2) {
55924
56011
  const stage_r1 = i0.ɵɵnextContext().$implicit;
55925
56012
  const ctx_r1 = i0.ɵɵnextContext();
55926
56013
  i0.ɵɵproperty("viewMode", ctx_r1.viewMode())("pacingPercentage", stage_r1.pacingInfo.pacingPercentage)("status", stage_r1.pacingInfo.status);
55927
56014
  } }
55928
56015
  function FunnelMetricsVisualizationComponent_For_3_Conditional_17_Template(rf, ctx) { if (rf & 1) {
55929
- i0.ɵɵelementStart(0, "div")(1, "p", 11);
56016
+ i0.ɵɵelementStart(0, "div")(1, "p", 12);
55930
56017
  i0.ɵɵtext(2);
55931
56018
  i0.ɵɵelementEnd();
55932
- i0.ɵɵelementStart(3, "p", 12);
56019
+ i0.ɵɵelementStart(3, "p", 13);
55933
56020
  i0.ɵɵtext(4);
55934
56021
  i0.ɵɵelementEnd()();
55935
56022
  } if (rf & 2) {
@@ -55945,14 +56032,14 @@ function FunnelMetricsVisualizationComponent_For_3_Conditional_17_Template(rf, c
55945
56032
  i0.ɵɵtextInterpolate1(" ", ctx_r1.formatMetricValue(stage_r1.pacingInfo.projectedValue, stage_r1.stageMetric.metric), " ");
55946
56033
  } }
55947
56034
  function FunnelMetricsVisualizationComponent_For_3_Conditional_23_For_6_Conditional_5_Template(rf, ctx) { if (rf & 1) {
55948
- i0.ɵɵelement(0, "symphiq-pacing-status-badge", 8);
56035
+ i0.ɵɵelement(0, "symphiq-pacing-status-badge", 9);
55949
56036
  } if (rf & 2) {
55950
56037
  const metric_r3 = i0.ɵɵnextContext().$implicit;
55951
56038
  const ctx_r1 = i0.ɵɵnextContext(3);
55952
56039
  i0.ɵɵproperty("viewMode", ctx_r1.viewMode())("pacingPercentage", metric_r3.pacingInfo.pacingPercentage)("status", metric_r3.pacingInfo.status);
55953
56040
  } }
55954
56041
  function FunnelMetricsVisualizationComponent_For_3_Conditional_23_For_6_Conditional_12_Template(rf, ctx) { if (rf & 1) {
55955
- i0.ɵɵelementStart(0, "div")(1, "p", 23);
56042
+ i0.ɵɵelementStart(0, "div")(1, "p", 26);
55956
56043
  i0.ɵɵtext(2);
55957
56044
  i0.ɵɵelementEnd()();
55958
56045
  } if (rf & 2) {
@@ -55964,19 +56051,19 @@ function FunnelMetricsVisualizationComponent_For_3_Conditional_23_For_6_Conditio
55964
56051
  i0.ɵɵtextInterpolate1("Proj: ", ctx_r1.formatMetricValue(metric_r3.pacingInfo.projectedValue, metric_r3.calc.metric));
55965
56052
  } }
55966
56053
  function FunnelMetricsVisualizationComponent_For_3_Conditional_23_For_6_Template(rf, ctx) { if (rf & 1) {
55967
- i0.ɵɵelementStart(0, "div", 17)(1, "div", 18)(2, "p", 19);
56054
+ i0.ɵɵelementStart(0, "div", 20)(1, "div", 21)(2, "p", 22);
55968
56055
  i0.ɵɵtext(3);
55969
56056
  i0.ɵɵelementEnd();
55970
- i0.ɵɵelementStart(4, "div", 20);
55971
- i0.ɵɵconditionalCreate(5, FunnelMetricsVisualizationComponent_For_3_Conditional_23_For_6_Conditional_5_Template, 1, 3, "symphiq-pacing-status-badge", 8);
55972
- i0.ɵɵelementStart(6, "span", 21);
56057
+ i0.ɵɵelementStart(4, "div", 23);
56058
+ i0.ɵɵconditionalCreate(5, FunnelMetricsVisualizationComponent_For_3_Conditional_23_For_6_Conditional_5_Template, 1, 3, "symphiq-pacing-status-badge", 9);
56059
+ i0.ɵɵelementStart(6, "span", 24);
55973
56060
  i0.ɵɵtext(7);
55974
56061
  i0.ɵɵelementEnd()()();
55975
- i0.ɵɵelementStart(8, "div", 22)(9, "div")(10, "p", 23);
56062
+ i0.ɵɵelementStart(8, "div", 25)(9, "div")(10, "p", 26);
55976
56063
  i0.ɵɵtext(11);
55977
56064
  i0.ɵɵelementEnd()();
55978
56065
  i0.ɵɵconditionalCreate(12, FunnelMetricsVisualizationComponent_For_3_Conditional_23_For_6_Conditional_12_Template, 3, 2, "div");
55979
- i0.ɵɵelementStart(13, "div")(14, "p", 23);
56066
+ i0.ɵɵelementStart(13, "div")(14, "p", 26);
55980
56067
  i0.ɵɵtext(15);
55981
56068
  i0.ɵɵelementEnd()()()();
55982
56069
  } if (rf & 2) {
@@ -56007,12 +56094,12 @@ function FunnelMetricsVisualizationComponent_For_3_Conditional_23_For_6_Template
56007
56094
  i0.ɵɵtextInterpolate1("Target: ", ctx_r1.formatMetricValue(metric_r3.calc.targetValue, metric_r3.calc.metric));
56008
56095
  } }
56009
56096
  function FunnelMetricsVisualizationComponent_For_3_Conditional_23_Template(rf, ctx) { if (rf & 1) {
56010
- i0.ɵɵelement(0, "div", 13);
56011
- i0.ɵɵelementStart(1, "div", 14)(2, "p", 15);
56097
+ i0.ɵɵelement(0, "div", 16);
56098
+ i0.ɵɵelementStart(1, "div", 17)(2, "p", 18);
56012
56099
  i0.ɵɵtext(3, " Related Metrics ");
56013
56100
  i0.ɵɵelementEnd();
56014
- i0.ɵɵelementStart(4, "div", 16);
56015
- i0.ɵɵrepeaterCreate(5, FunnelMetricsVisualizationComponent_For_3_Conditional_23_For_6_Template, 16, 13, "div", 17, _forTrack1$3);
56101
+ i0.ɵɵelementStart(4, "div", 19);
56102
+ i0.ɵɵrepeaterCreate(5, FunnelMetricsVisualizationComponent_For_3_Conditional_23_For_6_Template, 16, 13, "div", 20, _forTrack1$3);
56016
56103
  i0.ɵɵelementEnd()();
56017
56104
  } if (rf & 2) {
56018
56105
  const stage_r1 = i0.ɵɵnextContext().$implicit;
@@ -56024,28 +56111,27 @@ function FunnelMetricsVisualizationComponent_For_3_Conditional_23_Template(rf, c
56024
56111
  i0.ɵɵrepeater(stage_r1.relatedMetrics);
56025
56112
  } }
56026
56113
  function FunnelMetricsVisualizationComponent_For_3_Template(rf, ctx) { if (rf & 1) {
56027
- i0.ɵɵelementStart(0, "div", 2)(1, "div", 3)(2, "div", 4)(3, "h3", 5);
56028
- i0.ɵɵtext(4);
56114
+ i0.ɵɵelementStart(0, "div", 2)(1, "div", 3)(2, "div", 4)(3, "div", 5)(4, "h3", 6);
56115
+ i0.ɵɵtext(5);
56029
56116
  i0.ɵɵelementEnd();
56030
- i0.ɵɵelementStart(5, "p", 6);
56031
- i0.ɵɵtext(6);
56117
+ i0.ɵɵconditionalCreate(6, FunnelMetricsVisualizationComponent_For_3_Conditional_6_Template, 3, 3, "button", 7);
56032
56118
  i0.ɵɵelementEnd()();
56033
- i0.ɵɵelementStart(7, "div", 7);
56034
- i0.ɵɵconditionalCreate(8, FunnelMetricsVisualizationComponent_For_3_Conditional_8_Template, 1, 3, "symphiq-pacing-status-badge", 8);
56035
- i0.ɵɵelementStart(9, "div", 9);
56119
+ i0.ɵɵelementStart(7, "div", 8);
56120
+ i0.ɵɵconditionalCreate(8, FunnelMetricsVisualizationComponent_For_3_Conditional_8_Template, 1, 3, "symphiq-pacing-status-badge", 9);
56121
+ i0.ɵɵelementStart(9, "div", 10);
56036
56122
  i0.ɵɵtext(10);
56037
56123
  i0.ɵɵelementEnd()()();
56038
- i0.ɵɵelementStart(11, "div", 10)(12, "div")(13, "p", 11);
56124
+ i0.ɵɵelementStart(11, "div", 11)(12, "div")(13, "p", 12);
56039
56125
  i0.ɵɵtext(14);
56040
56126
  i0.ɵɵelementEnd();
56041
- i0.ɵɵelementStart(15, "p", 12);
56127
+ i0.ɵɵelementStart(15, "p", 13);
56042
56128
  i0.ɵɵtext(16);
56043
56129
  i0.ɵɵelementEnd()();
56044
56130
  i0.ɵɵconditionalCreate(17, FunnelMetricsVisualizationComponent_For_3_Conditional_17_Template, 5, 4, "div");
56045
- i0.ɵɵelementStart(18, "div")(19, "p", 11);
56131
+ i0.ɵɵelementStart(18, "div")(19, "p", 12);
56046
56132
  i0.ɵɵtext(20);
56047
56133
  i0.ɵɵelementEnd();
56048
- i0.ɵɵelementStart(21, "p", 12);
56134
+ i0.ɵɵelementStart(21, "p", 13);
56049
56135
  i0.ɵɵtext(22);
56050
56136
  i0.ɵɵelementEnd()()();
56051
56137
  i0.ɵɵconditionalCreate(23, FunnelMetricsVisualizationComponent_For_3_Conditional_23_Template, 7, 2);
@@ -56054,14 +56140,12 @@ function FunnelMetricsVisualizationComponent_For_3_Template(rf, ctx) { if (rf &
56054
56140
  const stage_r1 = ctx.$implicit;
56055
56141
  const ctx_r1 = i0.ɵɵnextContext();
56056
56142
  i0.ɵɵproperty("ngClass", ctx_r1.stageCardClasses());
56057
- i0.ɵɵadvance(3);
56143
+ i0.ɵɵadvance(4);
56058
56144
  i0.ɵɵproperty("ngClass", ctx_r1.stageTitleClasses());
56059
56145
  i0.ɵɵadvance();
56060
56146
  i0.ɵɵtextInterpolate1(" ", ctx_r1.getMetricTitle(stage_r1.stageMetric), " ");
56061
56147
  i0.ɵɵadvance();
56062
- i0.ɵɵproperty("ngClass", ctx_r1.stageDescriptionClasses());
56063
- i0.ɵɵadvance();
56064
- i0.ɵɵtextInterpolate1(" ", stage_r1.stageMetric.description, " ");
56148
+ i0.ɵɵconditional(stage_r1.stageMetric.description ? 6 : -1);
56065
56149
  i0.ɵɵadvance(2);
56066
56150
  i0.ɵɵconditional(stage_r1.pacingInfo ? 8 : -1);
56067
56151
  i0.ɵɵadvance();
@@ -56215,133 +56299,153 @@ class FunnelMetricsVisualizationComponent {
56215
56299
  .map(word => word.charAt(0) + word.slice(1).toLowerCase())
56216
56300
  .join(' ');
56217
56301
  }
56302
+ infoIconClasses() {
56303
+ return this.viewMode() === ViewModeEnum.DARK
56304
+ ? 'bg-slate-700/50 text-slate-400 hover:bg-slate-600/50 hover:text-slate-300'
56305
+ : 'bg-slate-100 text-slate-500 hover:bg-slate-200 hover:text-slate-700';
56306
+ }
56307
+ getMarkdownTooltipContent(markdown, title) {
56308
+ return { title, markdown };
56309
+ }
56218
56310
  static { this.ɵfac = function FunnelMetricsVisualizationComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || FunnelMetricsVisualizationComponent)(); }; }
56219
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FunnelMetricsVisualizationComponent, selectors: [["symphiq-funnel-metrics-visualization"]], inputs: { viewMode: [1, "viewMode"], calculations: [1, "calculations"], pacingMetrics: [1, "pacingMetrics"] }, decls: 4, vars: 0, consts: [[1, "space-y-6"], [1, "space-y-3"], [1, "rounded-xl", "p-6", "border-2", "transition-all", "duration-200", 3, "ngClass"], [1, "flex", "items-start", "justify-between", "mb-4"], [1, "flex-1"], [1, "text-lg", "font-bold", "mb-1", 3, "ngClass"], [1, "text-sm", 3, "ngClass"], [1, "flex", "items-center", "gap-3"], [3, "viewMode", "pacingPercentage", "status"], [1, "px-4", "py-2", "rounded-lg", "font-bold", "text-sm", 3, "ngClass"], [1, "grid", "grid-cols-3", "gap-4", "mb-4"], [1, "text-xs", "font-medium", "uppercase", "tracking-wider", "mb-1", 3, "ngClass"], [1, "text-2xl", "font-bold", 3, "ngClass"], [1, "my-4", 3, "ngClass"], [1, "space-y-2"], [1, "text-xs", "font-semibold", "uppercase", "tracking-wider", "mb-3", 3, "ngClass"], [1, "grid", "gap-2"], [1, "p-3", "rounded-lg", 3, "ngClass"], [1, "flex", "items-center", "justify-between", "mb-2"], [1, "text-sm", "font-semibold", "flex-1", 3, "ngClass"], [1, "flex", "items-center", "gap-2"], [1, "px-2", "py-1", "rounded", "text-xs", "font-bold", 3, "ngClass"], [1, "grid", "gap-2", "text-xs", 3, "ngClass"], [3, "ngClass"]], template: function FunnelMetricsVisualizationComponent_Template(rf, ctx) { if (rf & 1) {
56311
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FunnelMetricsVisualizationComponent, selectors: [["symphiq-funnel-metrics-visualization"]], inputs: { viewMode: [1, "viewMode"], calculations: [1, "calculations"], pacingMetrics: [1, "pacingMetrics"] }, decls: 4, vars: 0, consts: [[1, "space-y-6"], [1, "space-y-3"], [1, "rounded-xl", "p-6", "border-2", "transition-all", "duration-200", 3, "ngClass"], [1, "flex", "items-start", "justify-between", "mb-4"], [1, "flex-1"], [1, "flex", "items-center", "gap-2", "mb-1"], [1, "text-lg", "font-bold", 3, "ngClass"], ["type", "button", "tooltipType", "markdown", 1, "flex-shrink-0", "w-5", "h-5", "rounded-full", "flex", "items-center", "justify-center", "transition-colors", 3, "ngClass", "libSymphiqTooltip", "tooltipPosition"], [1, "flex", "items-center", "gap-3"], [3, "viewMode", "pacingPercentage", "status"], [1, "px-4", "py-2", "rounded-lg", "font-bold", "text-sm", 3, "ngClass"], [1, "grid", "grid-cols-3", "gap-4", "mb-4"], [1, "text-xs", "font-medium", "uppercase", "tracking-wider", "mb-1", 3, "ngClass"], [1, "text-2xl", "font-bold", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-3.5", "h-3.5"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"], [1, "my-4", 3, "ngClass"], [1, "space-y-2"], [1, "text-xs", "font-semibold", "uppercase", "tracking-wider", "mb-3", 3, "ngClass"], [1, "grid", "gap-2"], [1, "p-3", "rounded-lg", 3, "ngClass"], [1, "flex", "items-center", "justify-between", "mb-2"], [1, "text-sm", "font-semibold", "flex-1", 3, "ngClass"], [1, "flex", "items-center", "gap-2"], [1, "px-2", "py-1", "rounded", "text-xs", "font-bold", 3, "ngClass"], [1, "grid", "gap-2", "text-xs", 3, "ngClass"], [3, "ngClass"]], template: function FunnelMetricsVisualizationComponent_Template(rf, ctx) { if (rf & 1) {
56220
56312
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 1);
56221
- i0.ɵɵrepeaterCreate(2, FunnelMetricsVisualizationComponent_For_3_Template, 24, 18, "div", 2, _forTrack0$i);
56313
+ i0.ɵɵrepeaterCreate(2, FunnelMetricsVisualizationComponent_For_3_Template, 24, 17, "div", 2, _forTrack0$i);
56222
56314
  i0.ɵɵelementEnd()();
56223
56315
  } if (rf & 2) {
56224
56316
  i0.ɵɵadvance(2);
56225
56317
  i0.ɵɵrepeater(ctx.funnelStages());
56226
- } }, dependencies: [CommonModule, i1$1.NgClass, PacingStatusBadgeComponent], encapsulation: 2, changeDetection: 0 }); }
56318
+ } }, dependencies: [CommonModule, i1$1.NgClass, PacingStatusBadgeComponent, TooltipDirective], encapsulation: 2, changeDetection: 0 }); }
56227
56319
  }
56228
56320
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FunnelMetricsVisualizationComponent, [{
56229
56321
  type: Component,
56230
56322
  args: [{
56231
56323
  selector: 'symphiq-funnel-metrics-visualization',
56232
56324
  standalone: true,
56233
- imports: [CommonModule, PacingStatusBadgeComponent],
56325
+ imports: [CommonModule, PacingStatusBadgeComponent, TooltipDirective],
56234
56326
  changeDetection: ChangeDetectionStrategy.OnPush,
56235
- template: `
56236
- <div class="space-y-6">
56237
- <div class="space-y-3">
56238
- @for (stage of funnelStages(); track stage.stageMetric.metric) {
56239
- <div [ngClass]="stageCardClasses()" class="rounded-xl p-6 border-2 transition-all duration-200">
56240
- <div class="flex items-start justify-between mb-4">
56241
- <div class="flex-1">
56242
- <h3 [ngClass]="stageTitleClasses()" class="text-lg font-bold mb-1">
56243
- {{ getMetricTitle(stage.stageMetric) }}
56244
- </h3>
56245
- <p [ngClass]="stageDescriptionClasses()" class="text-sm">
56246
- {{ stage.stageMetric.description }}
56247
- </p>
56248
- </div>
56249
- <div class="flex items-center gap-3">
56250
- @if (stage.pacingInfo) {
56251
- <symphiq-pacing-status-badge
56252
- [viewMode]="viewMode()"
56253
- [pacingPercentage]="stage.pacingInfo.pacingPercentage"
56254
- [status]="stage.pacingInfo.status"
56255
- />
56256
- }
56257
- <div [ngClass]="percentageBadgeClasses()" class="px-4 py-2 rounded-lg font-bold text-sm">
56258
- +{{ formatPercentage(stage.stageMetric.percentageIncrease, 1) }}
56259
- </div>
56260
- </div>
56261
- </div>
56262
-
56263
- <div class="grid grid-cols-3 gap-4 mb-4">
56264
- <div>
56265
- <p [ngClass]="labelClasses()" class="text-xs font-medium uppercase tracking-wider mb-1">
56266
- {{ priorYear() }} Actual
56267
- </p>
56268
- <p [ngClass]="valueClasses()" class="text-2xl font-bold">
56269
- {{ formatMetricValue(stage.stageMetric.currentValue, stage.stageMetric.metric) }}
56270
- </p>
56271
- </div>
56272
- @if (stage.pacingInfo) {
56273
- <div>
56274
- <p [ngClass]="labelClasses()" class="text-xs font-medium uppercase tracking-wider mb-1">
56275
- {{ currentYear() }} Projected
56276
- </p>
56277
- <p [ngClass]="projectedValueClasses()" class="text-2xl font-bold">
56278
- {{ formatMetricValue(stage.pacingInfo.projectedValue, stage.stageMetric.metric) }}
56279
- </p>
56280
- </div>
56281
- }
56282
- <div>
56283
- <p [ngClass]="labelClasses()" class="text-xs font-medium uppercase tracking-wider mb-1">
56284
- {{ currentYear() }} Target
56285
- </p>
56286
- <p [ngClass]="targetValueClasses()" class="text-2xl font-bold">
56287
- {{ formatMetricValue(stage.stageMetric.targetValue, stage.stageMetric.metric) }}
56288
- </p>
56289
- </div>
56290
- </div>
56291
-
56292
- @if (stage.relatedMetrics.length > 0) {
56293
- <div [ngClass]="dividerClasses()" class="my-4"></div>
56294
-
56295
- <div class="space-y-2">
56296
- <p [ngClass]="relatedTitleClasses()" class="text-xs font-semibold uppercase tracking-wider mb-3">
56297
- Related Metrics
56298
- </p>
56299
- <div class="grid gap-2">
56300
- @for (metric of stage.relatedMetrics; track metric.calc.metric) {
56301
- <div [ngClass]="relatedMetricCardClasses()" class="p-3 rounded-lg">
56302
- <div class="flex items-center justify-between mb-2">
56303
- <p [ngClass]="relatedMetricNameClasses()" class="text-sm font-semibold flex-1">
56304
- {{ getMetricTitle(metric.calc) }}
56305
- </p>
56306
- <div class="flex items-center gap-2">
56307
- @if (metric.pacingInfo) {
56308
- <symphiq-pacing-status-badge
56309
- [viewMode]="viewMode()"
56310
- [pacingPercentage]="metric.pacingInfo.pacingPercentage"
56311
- [status]="metric.pacingInfo.status"
56312
- />
56313
- }
56314
- <span [ngClass]="relatedPercentageBadgeClasses()" class="px-2 py-1 rounded text-xs font-bold">
56315
- +{{ formatPercentage(metric.calc.percentageIncrease, 1) }}
56316
- </span>
56317
- </div>
56318
- </div>
56319
- <div class="grid gap-2 text-xs" [ngClass]="metric.pacingInfo ? 'grid-cols-3' : 'grid-cols-2'">
56320
- <div>
56321
- <p [ngClass]="relatedLabelClasses()">{{ priorYear() }}: {{ formatMetricValue(metric.calc.currentValue, metric.calc.metric) }}</p>
56322
- </div>
56323
- @if (metric.pacingInfo) {
56324
- <div>
56325
- <p [ngClass]="relatedLabelClasses()">Proj: {{ formatMetricValue(metric.pacingInfo.projectedValue, metric.calc.metric) }}</p>
56326
- </div>
56327
- }
56328
- <div>
56329
- <p [ngClass]="relatedLabelClasses()">Target: {{ formatMetricValue(metric.calc.targetValue, metric.calc.metric) }}</p>
56330
- </div>
56331
- </div>
56332
- </div>
56333
- }
56334
- </div>
56335
- </div>
56336
- }
56337
- </div>
56338
- }
56339
- </div>
56340
- </div>
56327
+ template: `
56328
+ <div class="space-y-6">
56329
+ <div class="space-y-3">
56330
+ @for (stage of funnelStages(); track stage.stageMetric.metric) {
56331
+ <div [ngClass]="stageCardClasses()" class="rounded-xl p-6 border-2 transition-all duration-200">
56332
+ <div class="flex items-start justify-between mb-4">
56333
+ <div class="flex-1">
56334
+ <div class="flex items-center gap-2 mb-1">
56335
+ <h3 [ngClass]="stageTitleClasses()" class="text-lg font-bold">
56336
+ {{ getMetricTitle(stage.stageMetric) }}
56337
+ </h3>
56338
+ @if (stage.stageMetric.description) {
56339
+ <button
56340
+ type="button"
56341
+ [ngClass]="infoIconClasses()"
56342
+ class="flex-shrink-0 w-5 h-5 rounded-full flex items-center justify-center transition-colors"
56343
+ [libSymphiqTooltip]="getMarkdownTooltipContent(stage.stageMetric.description, getMetricTitle(stage.stageMetric))"
56344
+ tooltipType="markdown"
56345
+ [tooltipPosition]="'right'">
56346
+ <svg class="w-3.5 h-3.5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
56347
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" />
56348
+ </svg>
56349
+ </button>
56350
+ }
56351
+ </div>
56352
+ </div>
56353
+ <div class="flex items-center gap-3">
56354
+ @if (stage.pacingInfo) {
56355
+ <symphiq-pacing-status-badge
56356
+ [viewMode]="viewMode()"
56357
+ [pacingPercentage]="stage.pacingInfo.pacingPercentage"
56358
+ [status]="stage.pacingInfo.status"
56359
+ />
56360
+ }
56361
+ <div [ngClass]="percentageBadgeClasses()" class="px-4 py-2 rounded-lg font-bold text-sm">
56362
+ +{{ formatPercentage(stage.stageMetric.percentageIncrease, 1) }}
56363
+ </div>
56364
+ </div>
56365
+ </div>
56366
+
56367
+ <div class="grid grid-cols-3 gap-4 mb-4">
56368
+ <div>
56369
+ <p [ngClass]="labelClasses()" class="text-xs font-medium uppercase tracking-wider mb-1">
56370
+ {{ priorYear() }} Actual
56371
+ </p>
56372
+ <p [ngClass]="valueClasses()" class="text-2xl font-bold">
56373
+ {{ formatMetricValue(stage.stageMetric.currentValue, stage.stageMetric.metric) }}
56374
+ </p>
56375
+ </div>
56376
+ @if (stage.pacingInfo) {
56377
+ <div>
56378
+ <p [ngClass]="labelClasses()" class="text-xs font-medium uppercase tracking-wider mb-1">
56379
+ {{ currentYear() }} Projected
56380
+ </p>
56381
+ <p [ngClass]="projectedValueClasses()" class="text-2xl font-bold">
56382
+ {{ formatMetricValue(stage.pacingInfo.projectedValue, stage.stageMetric.metric) }}
56383
+ </p>
56384
+ </div>
56385
+ }
56386
+ <div>
56387
+ <p [ngClass]="labelClasses()" class="text-xs font-medium uppercase tracking-wider mb-1">
56388
+ {{ currentYear() }} Target
56389
+ </p>
56390
+ <p [ngClass]="targetValueClasses()" class="text-2xl font-bold">
56391
+ {{ formatMetricValue(stage.stageMetric.targetValue, stage.stageMetric.metric) }}
56392
+ </p>
56393
+ </div>
56394
+ </div>
56395
+
56396
+ @if (stage.relatedMetrics.length > 0) {
56397
+ <div [ngClass]="dividerClasses()" class="my-4"></div>
56398
+
56399
+ <div class="space-y-2">
56400
+ <p [ngClass]="relatedTitleClasses()" class="text-xs font-semibold uppercase tracking-wider mb-3">
56401
+ Related Metrics
56402
+ </p>
56403
+ <div class="grid gap-2">
56404
+ @for (metric of stage.relatedMetrics; track metric.calc.metric) {
56405
+ <div [ngClass]="relatedMetricCardClasses()" class="p-3 rounded-lg">
56406
+ <div class="flex items-center justify-between mb-2">
56407
+ <p [ngClass]="relatedMetricNameClasses()" class="text-sm font-semibold flex-1">
56408
+ {{ getMetricTitle(metric.calc) }}
56409
+ </p>
56410
+ <div class="flex items-center gap-2">
56411
+ @if (metric.pacingInfo) {
56412
+ <symphiq-pacing-status-badge
56413
+ [viewMode]="viewMode()"
56414
+ [pacingPercentage]="metric.pacingInfo.pacingPercentage"
56415
+ [status]="metric.pacingInfo.status"
56416
+ />
56417
+ }
56418
+ <span [ngClass]="relatedPercentageBadgeClasses()" class="px-2 py-1 rounded text-xs font-bold">
56419
+ +{{ formatPercentage(metric.calc.percentageIncrease, 1) }}
56420
+ </span>
56421
+ </div>
56422
+ </div>
56423
+ <div class="grid gap-2 text-xs" [ngClass]="metric.pacingInfo ? 'grid-cols-3' : 'grid-cols-2'">
56424
+ <div>
56425
+ <p [ngClass]="relatedLabelClasses()">{{ priorYear() }}: {{ formatMetricValue(metric.calc.currentValue, metric.calc.metric) }}</p>
56426
+ </div>
56427
+ @if (metric.pacingInfo) {
56428
+ <div>
56429
+ <p [ngClass]="relatedLabelClasses()">Proj: {{ formatMetricValue(metric.pacingInfo.projectedValue, metric.calc.metric) }}</p>
56430
+ </div>
56431
+ }
56432
+ <div>
56433
+ <p [ngClass]="relatedLabelClasses()">Target: {{ formatMetricValue(metric.calc.targetValue, metric.calc.metric) }}</p>
56434
+ </div>
56435
+ </div>
56436
+ </div>
56437
+ }
56438
+ </div>
56439
+ </div>
56440
+ }
56441
+ </div>
56442
+ }
56443
+ </div>
56444
+ </div>
56341
56445
  `
56342
56446
  }]
56343
56447
  }], null, { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], calculations: [{ type: i0.Input, args: [{ isSignal: true, alias: "calculations", required: false }] }], pacingMetrics: [{ type: i0.Input, args: [{ isSignal: true, alias: "pacingMetrics", required: false }] }] }); })();
56344
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FunnelMetricsVisualizationComponent, { className: "FunnelMetricsVisualizationComponent", filePath: "lib/components/revenue-calculator-dashboard/funnel-metrics-visualization.component.ts", lineNumber: 122 }); })();
56448
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FunnelMetricsVisualizationComponent, { className: "FunnelMetricsVisualizationComponent", filePath: "lib/components/revenue-calculator-dashboard/funnel-metrics-visualization.component.ts", lineNumber: 135 }); })();
56345
56449
 
56346
56450
  function StickySubmitBarComponent_Conditional_4_Template(rf, ctx) { if (rf & 1) {
56347
56451
  i0.ɵɵelementStart(0, "div", 4);
@@ -56792,7 +56896,7 @@ class ChartValueFormatter {
56792
56896
  }
56793
56897
  }
56794
56898
 
56795
- const _c0$r = ["chartdiv"];
56899
+ const _c0$s = ["chartdiv"];
56796
56900
  class AreaChartComponent {
56797
56901
  constructor() {
56798
56902
  this.chart = input({}, ...(ngDevMode ? [{ debugName: "chart" }] : []));
@@ -57100,7 +57204,7 @@ class AreaChartComponent {
57100
57204
  }
57101
57205
  static { this.ɵfac = function AreaChartComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || AreaChartComponent)(); }; }
57102
57206
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AreaChartComponent, selectors: [["symphiq-area-chart"]], viewQuery: function AreaChartComponent_Query(rf, ctx) { if (rf & 1) {
57103
- i0.ɵɵviewQuery(_c0$r, 7);
57207
+ i0.ɵɵviewQuery(_c0$s, 7);
57104
57208
  } if (rf & 2) {
57105
57209
  let _t;
57106
57210
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.chartDiv = _t.first);
@@ -57327,8 +57431,9 @@ class RevenueCalculatorService {
57327
57431
  }]
57328
57432
  }], null, null); })();
57329
57433
 
57434
+ const _c0$r = ["absoluteInputRef"];
57330
57435
  function InitialTargetSettingComponent_Conditional_12_Template(rf, ctx) { if (rf & 1) {
57331
- i0.ɵɵelementStart(0, "p", 7);
57436
+ i0.ɵɵelementStart(0, "p", 8);
57332
57437
  i0.ɵɵtext(1);
57333
57438
  i0.ɵɵelementEnd();
57334
57439
  } if (rf & 2) {
@@ -57339,10 +57444,10 @@ function InitialTargetSettingComponent_Conditional_12_Template(rf, ctx) { if (rf
57339
57444
  } }
57340
57445
  function InitialTargetSettingComponent_Conditional_18_Template(rf, ctx) { if (rf & 1) {
57341
57446
  const _r2 = i0.ɵɵgetCurrentView();
57342
- i0.ɵɵelementStart(0, "div", 10)(1, "span", 17);
57447
+ i0.ɵɵelementStart(0, "div", 11)(1, "span", 18);
57343
57448
  i0.ɵɵtext(2, " $ ");
57344
57449
  i0.ɵɵelementEnd();
57345
- i0.ɵɵelementStart(3, "input", 18);
57450
+ i0.ɵɵelementStart(3, "input", 19, 0);
57346
57451
  i0.ɵɵtwoWayListener("ngModelChange", function InitialTargetSettingComponent_Conditional_18_Template_input_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r0.absoluteInput, $event) || (ctx_r0.absoluteInput = $event); return i0.ɵɵresetView($event); });
57347
57452
  i0.ɵɵlistener("ngModelChange", function InitialTargetSettingComponent_Conditional_18_Template_input_ngModelChange_3_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onAbsoluteInputChange()); });
57348
57453
  i0.ɵɵelementEnd()();
@@ -57356,11 +57461,11 @@ function InitialTargetSettingComponent_Conditional_18_Template(rf, ctx) { if (rf
57356
57461
  } }
57357
57462
  function InitialTargetSettingComponent_Conditional_19_Template(rf, ctx) { if (rf & 1) {
57358
57463
  const _r3 = i0.ɵɵgetCurrentView();
57359
- i0.ɵɵelementStart(0, "div", 10)(1, "input", 19);
57464
+ i0.ɵɵelementStart(0, "div", 11)(1, "input", 20);
57360
57465
  i0.ɵɵtwoWayListener("ngModelChange", function InitialTargetSettingComponent_Conditional_19_Template_input_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r0 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r0.percentageInput, $event) || (ctx_r0.percentageInput = $event); return i0.ɵɵresetView($event); });
57361
57466
  i0.ɵɵlistener("ngModelChange", function InitialTargetSettingComponent_Conditional_19_Template_input_ngModelChange_1_listener() { i0.ɵɵrestoreView(_r3); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onPercentageInputChange()); });
57362
57467
  i0.ɵɵelementEnd();
57363
- i0.ɵɵelementStart(2, "span", 20);
57468
+ i0.ɵɵelementStart(2, "span", 21);
57364
57469
  i0.ɵɵtext(3, " % ");
57365
57470
  i0.ɵɵelementEnd()();
57366
57471
  } if (rf & 2) {
@@ -57372,16 +57477,16 @@ function InitialTargetSettingComponent_Conditional_19_Template(rf, ctx) { if (rf
57372
57477
  i0.ɵɵproperty("ngClass", ctx_r0.inputSuffixClasses());
57373
57478
  } }
57374
57479
  function InitialTargetSettingComponent_Conditional_20_Conditional_18_Template(rf, ctx) { if (rf & 1) {
57375
- i0.ɵɵelementStart(0, "div", 24)(1, "div")(2, "p", 22);
57480
+ i0.ɵɵelementStart(0, "div", 25)(1, "div")(2, "p", 23);
57376
57481
  i0.ɵɵtext(3, " Gap to Close ");
57377
57482
  i0.ɵɵelementEnd();
57378
- i0.ɵɵelementStart(4, "p", 25);
57483
+ i0.ɵɵelementStart(4, "p", 26);
57379
57484
  i0.ɵɵtext(5);
57380
57485
  i0.ɵɵelementEnd()();
57381
- i0.ɵɵelementStart(6, "div")(7, "p", 22);
57486
+ i0.ɵɵelementStart(6, "div")(7, "p", 23);
57382
57487
  i0.ɵɵtext(8, " Additional Growth Needed ");
57383
57488
  i0.ɵɵelementEnd();
57384
- i0.ɵɵelementStart(9, "p", 25);
57489
+ i0.ɵɵelementStart(9, "p", 26);
57385
57490
  i0.ɵɵtext(10);
57386
57491
  i0.ɵɵelementEnd()()();
57387
57492
  } if (rf & 2) {
@@ -57401,25 +57506,25 @@ function InitialTargetSettingComponent_Conditional_20_Conditional_18_Template(rf
57401
57506
  i0.ɵɵtextInterpolate2(" ", ctx_r0.gapToClose().amount > 0 ? "+" : "", "", ctx_r0.formatPercentage(ctx_r0.gapToClose().percentage, 1), " ");
57402
57507
  } }
57403
57508
  function InitialTargetSettingComponent_Conditional_20_Template(rf, ctx) { if (rf & 1) {
57404
- i0.ɵɵelementStart(0, "div", 11)(1, "div", 21)(2, "div")(3, "p", 22);
57509
+ i0.ɵɵelementStart(0, "div", 12)(1, "div", 22)(2, "div")(3, "p", 23);
57405
57510
  i0.ɵɵtext(4);
57406
57511
  i0.ɵɵelementEnd();
57407
- i0.ɵɵelementStart(5, "p", 23);
57512
+ i0.ɵɵelementStart(5, "p", 24);
57408
57513
  i0.ɵɵtext(6);
57409
57514
  i0.ɵɵelementEnd()();
57410
- i0.ɵɵelementStart(7, "div", 24)(8, "div")(9, "p", 22);
57515
+ i0.ɵɵelementStart(7, "div", 25)(8, "div")(9, "p", 23);
57411
57516
  i0.ɵɵtext(10, " Increase Amount ");
57412
57517
  i0.ɵɵelementEnd();
57413
- i0.ɵɵelementStart(11, "p", 25);
57518
+ i0.ɵɵelementStart(11, "p", 26);
57414
57519
  i0.ɵɵtext(12);
57415
57520
  i0.ɵɵelementEnd()();
57416
- i0.ɵɵelementStart(13, "div")(14, "p", 22);
57521
+ i0.ɵɵelementStart(13, "div")(14, "p", 23);
57417
57522
  i0.ɵɵtext(15, " % Growth ");
57418
57523
  i0.ɵɵelementEnd();
57419
- i0.ɵɵelementStart(16, "p", 25);
57524
+ i0.ɵɵelementStart(16, "p", 26);
57420
57525
  i0.ɵɵtext(17);
57421
57526
  i0.ɵɵelementEnd()()();
57422
- i0.ɵɵconditionalCreate(18, InitialTargetSettingComponent_Conditional_20_Conditional_18_Template, 11, 8, "div", 24);
57527
+ i0.ɵɵconditionalCreate(18, InitialTargetSettingComponent_Conditional_20_Conditional_18_Template, 11, 8, "div", 25);
57423
57528
  i0.ɵɵelementEnd()();
57424
57529
  } if (rf & 2) {
57425
57530
  const ctx_r0 = i0.ɵɵnextContext();
@@ -57450,13 +57555,13 @@ function InitialTargetSettingComponent_Conditional_20_Template(rf, ctx) { if (rf
57450
57555
  i0.ɵɵconditional(ctx_r0.currentPaceProjection() > 0 && ctx_r0.gapToClose().amount !== 0 ? 18 : -1);
57451
57556
  } }
57452
57557
  function InitialTargetSettingComponent_Conditional_25_Template(rf, ctx) { if (rf & 1) {
57453
- i0.ɵɵelement(0, "symphiq-area-chart", 14);
57558
+ i0.ɵɵelement(0, "symphiq-area-chart", 15);
57454
57559
  } if (rf & 2) {
57455
57560
  const ctx_r0 = i0.ɵɵnextContext();
57456
57561
  i0.ɵɵproperty("chart", ctx_r0.revenueChartData())("showAxisLabels", true)("viewMode", ctx_r0.viewMode())("currencySymbol", "$");
57457
57562
  } }
57458
57563
  function InitialTargetSettingComponent_Conditional_26_Template(rf, ctx) { if (rf & 1) {
57459
- i0.ɵɵelementStart(0, "div", 15)(1, "p", 26);
57564
+ i0.ɵɵelementStart(0, "div", 16)(1, "p", 27);
57460
57565
  i0.ɵɵtext(2, " No revenue data available ");
57461
57566
  i0.ɵɵelementEnd()();
57462
57567
  } if (rf & 2) {
@@ -57465,13 +57570,13 @@ function InitialTargetSettingComponent_Conditional_26_Template(rf, ctx) { if (rf
57465
57570
  i0.ɵɵproperty("ngClass", ctx_r0.noDataClasses());
57466
57571
  } }
57467
57572
  function InitialTargetSettingComponent_Conditional_27_Template(rf, ctx) { if (rf & 1) {
57468
- i0.ɵɵelementStart(0, "div", 1)(1, "div", 27)(2, "h2", 28);
57573
+ i0.ɵɵelementStart(0, "div", 2)(1, "div", 28)(2, "h2", 29);
57469
57574
  i0.ɵɵtext(3, " Contributing Metrics ");
57470
57575
  i0.ɵɵelementEnd();
57471
- i0.ɵɵelementStart(4, "p", 26);
57576
+ i0.ɵɵelementStart(4, "p", 27);
57472
57577
  i0.ɵɵtext(5);
57473
57578
  i0.ɵɵelementEnd()();
57474
- i0.ɵɵelement(6, "symphiq-funnel-metrics-visualization", 29);
57579
+ i0.ɵɵelement(6, "symphiq-funnel-metrics-visualization", 30);
57475
57580
  i0.ɵɵelementEnd();
57476
57581
  } if (rf & 2) {
57477
57582
  const ctx_r0 = i0.ɵɵnextContext();
@@ -57498,7 +57603,7 @@ class InitialTargetSettingComponent {
57498
57603
  this.dataResults = input([], ...(ngDevMode ? [{ debugName: "dataResults" }] : []));
57499
57604
  this.targetsCreated = output();
57500
57605
  this.inputMode = signal('absolute', ...(ngDevMode ? [{ debugName: "inputMode" }] : []));
57501
- this.absoluteInput = signal(0, ...(ngDevMode ? [{ debugName: "absoluteInput" }] : []));
57606
+ this.absoluteInput = signal(null, ...(ngDevMode ? [{ debugName: "absoluteInput" }] : []));
57502
57607
  this.percentageInput = signal(0, ...(ngDevMode ? [{ debugName: "percentageInput" }] : []));
57503
57608
  this.isSubmitting = signal(false, ...(ngDevMode ? [{ debugName: "isSubmitting" }] : []));
57504
57609
  this.priorYearRevenue = computed(() => {
@@ -57524,7 +57629,7 @@ class InitialTargetSettingComponent {
57524
57629
  const mode = this.inputMode();
57525
57630
  const priorRevenue = this.priorYearRevenue();
57526
57631
  if (mode === 'absolute') {
57527
- return this.absoluteInput();
57632
+ return this.absoluteInput() ?? 0;
57528
57633
  }
57529
57634
  else {
57530
57635
  const pct = this.percentageInput();
@@ -57570,11 +57675,15 @@ class InitialTargetSettingComponent {
57570
57675
  this.revenueChartData = computed(() => {
57571
57676
  const mainData = this.mainUiData();
57572
57677
  const yoyData = this.yoyUiData();
57573
- if (!mainData && !yoyData)
57678
+ if (!mainData && !yoyData) {
57679
+ console.log('no data', mainData, yoyData);
57574
57680
  return null;
57681
+ }
57575
57682
  const series = transformUiDataToChartSeries(mainData, yoyData, MetricEnum.PURCHASE_REVENUE);
57576
- if (series.length === 0)
57683
+ if (series.length === 0) {
57684
+ console.log('no series length');
57577
57685
  return null;
57686
+ }
57578
57687
  return {
57579
57688
  title: 'Revenue Trend',
57580
57689
  areaChartData: {
@@ -57591,11 +57700,16 @@ class InitialTargetSettingComponent {
57591
57700
  this.currentYear = computed(() => new Date().getFullYear(), ...(ngDevMode ? [{ debugName: "currentYear" }] : []));
57592
57701
  this.priorYear = computed(() => new Date().getFullYear() - 1, ...(ngDevMode ? [{ debugName: "priorYear" }] : []));
57593
57702
  }
57703
+ ngAfterViewInit() {
57704
+ setTimeout(() => {
57705
+ this.absoluteInputRef?.nativeElement?.focus();
57706
+ });
57707
+ }
57594
57708
  setInputMode(mode) {
57595
57709
  this.inputMode.set(mode);
57596
57710
  }
57597
57711
  onAbsoluteInputChange() {
57598
- const value = this.absoluteInput();
57712
+ const value = this.absoluteInput() ?? 0;
57599
57713
  if (value > 0 && this.priorYearRevenue() > 0) {
57600
57714
  const pct = ((value - this.priorYearRevenue()) / this.priorYearRevenue()) * 100;
57601
57715
  this.percentageInput.set(pct);
@@ -57720,38 +57834,43 @@ class InitialTargetSettingComponent {
57720
57834
  : 'text-slate-400';
57721
57835
  }
57722
57836
  static { this.ɵfac = function InitialTargetSettingComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || InitialTargetSettingComponent)(); }; }
57723
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: InitialTargetSettingComponent, selectors: [["symphiq-initial-target-setting"]], inputs: { viewMode: [1, "viewMode"], funnelMetrics: [1, "funnelMetrics"], mainUiData: [1, "mainUiData"], yoyUiData: [1, "yoyUiData"], trendUiData: [1, "trendUiData"], shopId: [1, "shopId"], pacingMetrics: [1, "pacingMetrics"], dataResults: [1, "dataResults"] }, outputs: { targetsCreated: "targetsCreated" }, decls: 29, vars: 21, consts: [[1, "space-y-8", "pb-32"], [1, "rounded-2xl", "border", "shadow-lg", "p-8", 3, "ngClass"], [1, "text-2xl", "font-bold", "mb-6", 3, "ngClass"], [1, "grid", "lg:grid-cols-2", "gap-8"], [1, "space-y-6"], [1, "block", "text-sm", "font-semibold", "mb-2", 3, "ngClass"], [1, "space-y-1", "mb-4"], [1, "text-xs", 3, "ngClass"], [1, "flex", "gap-2", "mb-4"], [1, "flex-1", "py-2", "px-4", "rounded-lg", "text-sm", "font-semibold", "transition-all", 3, "click", "ngClass"], [1, "relative"], [1, "p-6", "rounded-xl", "border-2", 3, "ngClass"], [1, "text-sm", "font-semibold", "mb-3", 3, "ngClass"], [1, "rounded-xl", "border", "p-4", 3, "ngClass"], [3, "chart", "showAxisLabels", "viewMode", "currencySymbol"], [1, "h-64", "flex", "items-center", "justify-center"], [3, "submitClick", "viewMode", "isValid", "isSubmitting", "validationMessage", "buttonText"], [1, "absolute", "left-4", "top-1/2", "-translate-y-1/2", "text-xl", "font-bold", 3, "ngClass"], ["type", "number", "placeholder", "0", "min", "0", "step", "1000", 1, "w-full", "pl-10", "pr-4", "py-4", "rounded-xl", "text-2xl", "font-bold", "border-2", "transition-all", 3, "ngModelChange", "ngModel", "ngClass"], ["type", "number", "placeholder", "0", "min", "0", "max", "1000", "step", "0.1", 1, "w-full", "pr-10", "pl-4", "py-4", "rounded-xl", "text-2xl", "font-bold", "border-2", "transition-all", 3, "ngModelChange", "ngModel", "ngClass"], [1, "absolute", "right-4", "top-1/2", "-translate-y-1/2", "text-xl", "font-bold", 3, "ngClass"], [1, "space-y-4"], [1, "text-xs", "font-medium", "uppercase", "tracking-wider", "mb-1", 3, "ngClass"], [1, "text-3xl", "font-bold", 3, "ngClass"], [1, "grid", "grid-cols-2", "gap-4", "pt-4", 3, "ngClass"], [1, "text-xl", "font-bold", 3, "ngClass"], [1, "text-sm", 3, "ngClass"], [1, "mb-6"], [1, "text-2xl", "font-bold", "mb-2", 3, "ngClass"], [3, "viewMode", "calculations", "pacingMetrics"]], template: function InitialTargetSettingComponent_Template(rf, ctx) { if (rf & 1) {
57724
- i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "h2", 2);
57837
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: InitialTargetSettingComponent, selectors: [["symphiq-initial-target-setting"]], viewQuery: function InitialTargetSettingComponent_Query(rf, ctx) { if (rf & 1) {
57838
+ i0.ɵɵviewQuery(_c0$r, 5);
57839
+ } if (rf & 2) {
57840
+ let _t;
57841
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.absoluteInputRef = _t.first);
57842
+ } }, inputs: { viewMode: [1, "viewMode"], funnelMetrics: [1, "funnelMetrics"], mainUiData: [1, "mainUiData"], yoyUiData: [1, "yoyUiData"], trendUiData: [1, "trendUiData"], shopId: [1, "shopId"], pacingMetrics: [1, "pacingMetrics"], dataResults: [1, "dataResults"] }, outputs: { targetsCreated: "targetsCreated" }, decls: 29, vars: 21, consts: [["absoluteInputRef", ""], [1, "space-y-8", "pb-32"], [1, "rounded-2xl", "border", "shadow-lg", "p-8", 3, "ngClass"], [1, "text-2xl", "font-bold", "mb-6", 3, "ngClass"], [1, "grid", "lg:grid-cols-2", "gap-8"], [1, "space-y-6"], [1, "block", "text-sm", "font-semibold", "mb-2", 3, "ngClass"], [1, "space-y-1", "mb-4"], [1, "text-xs", 3, "ngClass"], [1, "flex", "gap-2", "mb-4"], [1, "flex-1", "py-2", "px-4", "rounded-lg", "text-sm", "font-semibold", "transition-all", 3, "click", "ngClass"], [1, "relative"], [1, "p-6", "rounded-xl", "border-2", 3, "ngClass"], [1, "text-sm", "font-semibold", "mb-3", 3, "ngClass"], [1, "rounded-xl", "border", "p-4", 3, "ngClass"], [3, "chart", "showAxisLabels", "viewMode", "currencySymbol"], [1, "h-64", "flex", "items-center", "justify-center"], [3, "submitClick", "viewMode", "isValid", "isSubmitting", "validationMessage", "buttonText"], [1, "absolute", "left-4", "top-1/2", "-translate-y-1/2", "text-xl", "font-bold", 3, "ngClass"], ["type", "number", "placeholder", "0", "min", "0", "step", "1000", 1, "w-full", "pl-10", "pr-4", "py-4", "rounded-xl", "text-2xl", "font-bold", "border-2", "transition-all", 3, "ngModelChange", "ngModel", "ngClass"], ["type", "number", "placeholder", "0", "min", "0", "max", "1000", "step", "0.1", 1, "w-full", "pr-10", "pl-4", "py-4", "rounded-xl", "text-2xl", "font-bold", "border-2", "transition-all", 3, "ngModelChange", "ngModel", "ngClass"], [1, "absolute", "right-4", "top-1/2", "-translate-y-1/2", "text-xl", "font-bold", 3, "ngClass"], [1, "space-y-4"], [1, "text-xs", "font-medium", "uppercase", "tracking-wider", "mb-1", 3, "ngClass"], [1, "text-3xl", "font-bold", 3, "ngClass"], [1, "grid", "grid-cols-2", "gap-4", "pt-4", 3, "ngClass"], [1, "text-xl", "font-bold", 3, "ngClass"], [1, "text-sm", 3, "ngClass"], [1, "mb-6"], [1, "text-2xl", "font-bold", "mb-2", 3, "ngClass"], [3, "viewMode", "calculations", "pacingMetrics"]], template: function InitialTargetSettingComponent_Template(rf, ctx) { if (rf & 1) {
57843
+ i0.ɵɵelementStart(0, "div", 1)(1, "div", 2)(2, "h2", 3);
57725
57844
  i0.ɵɵtext(3, " Calculate Your Revenue Target ");
57726
57845
  i0.ɵɵelementEnd();
57727
- i0.ɵɵelementStart(4, "div", 3)(5, "div", 4)(6, "div")(7, "label", 5);
57846
+ i0.ɵɵelementStart(4, "div", 4)(5, "div", 5)(6, "div")(7, "label", 6);
57728
57847
  i0.ɵɵtext(8);
57729
57848
  i0.ɵɵelementEnd();
57730
- i0.ɵɵelementStart(9, "div", 6)(10, "p", 7);
57849
+ i0.ɵɵelementStart(9, "div", 7)(10, "p", 8);
57731
57850
  i0.ɵɵtext(11);
57732
57851
  i0.ɵɵelementEnd();
57733
- i0.ɵɵconditionalCreate(12, InitialTargetSettingComponent_Conditional_12_Template, 2, 2, "p", 7);
57852
+ i0.ɵɵconditionalCreate(12, InitialTargetSettingComponent_Conditional_12_Template, 2, 2, "p", 8);
57734
57853
  i0.ɵɵelementEnd();
57735
- i0.ɵɵelementStart(13, "div", 8)(14, "button", 9);
57854
+ i0.ɵɵelementStart(13, "div", 9)(14, "button", 10);
57736
57855
  i0.ɵɵlistener("click", function InitialTargetSettingComponent_Template_button_click_14_listener() { return ctx.setInputMode("absolute"); });
57737
57856
  i0.ɵɵtext(15, " Absolute Amount ");
57738
57857
  i0.ɵɵelementEnd();
57739
- i0.ɵɵelementStart(16, "button", 9);
57858
+ i0.ɵɵelementStart(16, "button", 10);
57740
57859
  i0.ɵɵlistener("click", function InitialTargetSettingComponent_Template_button_click_16_listener() { return ctx.setInputMode("percentage"); });
57741
57860
  i0.ɵɵtext(17, " % Increase ");
57742
57861
  i0.ɵɵelementEnd()();
57743
- i0.ɵɵconditionalCreate(18, InitialTargetSettingComponent_Conditional_18_Template, 4, 3, "div", 10)(19, InitialTargetSettingComponent_Conditional_19_Template, 4, 3, "div", 10);
57862
+ i0.ɵɵconditionalCreate(18, InitialTargetSettingComponent_Conditional_18_Template, 5, 3, "div", 11)(19, InitialTargetSettingComponent_Conditional_19_Template, 4, 3, "div", 11);
57744
57863
  i0.ɵɵelementEnd();
57745
- i0.ɵɵconditionalCreate(20, InitialTargetSettingComponent_Conditional_20_Template, 19, 13, "div", 11);
57864
+ i0.ɵɵconditionalCreate(20, InitialTargetSettingComponent_Conditional_20_Template, 19, 13, "div", 12);
57746
57865
  i0.ɵɵelementEnd();
57747
- i0.ɵɵelementStart(21, "div")(22, "p", 12);
57866
+ i0.ɵɵelementStart(21, "div")(22, "p", 13);
57748
57867
  i0.ɵɵtext(23, " Year-over-Year Revenue Trend ");
57749
57868
  i0.ɵɵelementEnd();
57750
- i0.ɵɵelementStart(24, "div", 13);
57751
- i0.ɵɵconditionalCreate(25, InitialTargetSettingComponent_Conditional_25_Template, 1, 4, "symphiq-area-chart", 14)(26, InitialTargetSettingComponent_Conditional_26_Template, 3, 1, "div", 15);
57869
+ i0.ɵɵelementStart(24, "div", 14);
57870
+ i0.ɵɵconditionalCreate(25, InitialTargetSettingComponent_Conditional_25_Template, 1, 4, "symphiq-area-chart", 15)(26, InitialTargetSettingComponent_Conditional_26_Template, 3, 1, "div", 16);
57752
57871
  i0.ɵɵelementEnd()()()();
57753
- i0.ɵɵconditionalCreate(27, InitialTargetSettingComponent_Conditional_27_Template, 7, 7, "div", 1);
57754
- i0.ɵɵelementStart(28, "symphiq-sticky-submit-bar", 16);
57872
+ i0.ɵɵconditionalCreate(27, InitialTargetSettingComponent_Conditional_27_Template, 7, 7, "div", 2);
57873
+ i0.ɵɵelementStart(28, "symphiq-sticky-submit-bar", 17);
57755
57874
  i0.ɵɵlistener("submitClick", function InitialTargetSettingComponent_Template_symphiq_sticky_submit_bar_submitClick_28_listener() { return ctx.handleSubmit(); });
57756
57875
  i0.ɵɵelementEnd()();
57757
57876
  } if (rf & 2) {
@@ -57804,189 +57923,193 @@ class InitialTargetSettingComponent {
57804
57923
  AreaChartComponent
57805
57924
  ],
57806
57925
  changeDetection: ChangeDetectionStrategy.OnPush,
57807
- template: `
57808
- <div class="space-y-8 pb-32">
57809
- <div [ngClass]="sectionCardClasses()" class="rounded-2xl border shadow-lg p-8">
57810
- <h2 [ngClass]="sectionTitleClasses()" class="text-2xl font-bold mb-6">
57811
- Calculate Your Revenue Target
57812
- </h2>
57813
-
57814
- <div class="grid lg:grid-cols-2 gap-8">
57815
- <div class="space-y-6">
57816
- <div>
57817
- <label [ngClass]="labelClasses()" class="block text-sm font-semibold mb-2">
57818
- {{ currentYear() }} Revenue
57819
- </label>
57820
- <div class="space-y-1 mb-4">
57821
- <p [ngClass]="priorYearLabelClasses()" class="text-xs">
57822
- {{ priorYear() }} Revenue: {{ formatCurrency(priorYearRevenue()) }}
57823
- </p>
57824
- @if (currentPaceProjection() > 0) {
57825
- <p [ngClass]="priorYearLabelClasses()" class="text-xs">
57826
- Current Pace Projection: {{ formatCurrency(currentPaceProjection()) }}
57827
- </p>
57828
- }
57829
- </div>
57830
-
57831
- <div class="flex gap-2 mb-4">
57832
- <button
57833
- (click)="setInputMode('absolute')"
57834
- [ngClass]="inputModeButtonClasses('absolute')"
57835
- class="flex-1 py-2 px-4 rounded-lg text-sm font-semibold transition-all">
57836
- Absolute Amount
57837
- </button>
57838
- <button
57839
- (click)="setInputMode('percentage')"
57840
- [ngClass]="inputModeButtonClasses('percentage')"
57841
- class="flex-1 py-2 px-4 rounded-lg text-sm font-semibold transition-all">
57842
- % Increase
57843
- </button>
57844
- </div>
57845
-
57846
- @if (inputMode() === 'absolute') {
57847
- <div class="relative">
57848
- <span [ngClass]="inputPrefixClasses()" class="absolute left-4 top-1/2 -translate-y-1/2 text-xl font-bold">
57849
- $
57850
- </span>
57851
- <input
57852
- type="number"
57853
- [(ngModel)]="absoluteInput"
57854
- (ngModelChange)="onAbsoluteInputChange()"
57855
- [ngClass]="inputClasses()"
57856
- class="w-full pl-10 pr-4 py-4 rounded-xl text-2xl font-bold border-2 transition-all"
57857
- placeholder="0"
57858
- min="0"
57859
- step="1000">
57860
- </div>
57861
- } @else {
57862
- <div class="relative">
57863
- <input
57864
- type="number"
57865
- [(ngModel)]="percentageInput"
57866
- (ngModelChange)="onPercentageInputChange()"
57867
- [ngClass]="inputClasses()"
57868
- class="w-full pr-10 pl-4 py-4 rounded-xl text-2xl font-bold border-2 transition-all"
57869
- placeholder="0"
57870
- min="0"
57871
- max="1000"
57872
- step="0.1">
57873
- <span [ngClass]="inputSuffixClasses()" class="absolute right-4 top-1/2 -translate-y-1/2 text-xl font-bold">
57874
- %
57875
- </span>
57876
- </div>
57877
- }
57878
- </div>
57879
-
57880
- @if (calculatedRevenue() > 0) {
57881
- <div [ngClass]="calculatedValuesCardClasses()" class="p-6 rounded-xl border-2">
57882
- <div class="space-y-4">
57883
- <div>
57884
- <p [ngClass]="calculatedLabelClasses()" class="text-xs font-medium uppercase tracking-wider mb-1">
57885
- {{ currentYear() }} Revenue Target
57886
- </p>
57887
- <p [ngClass]="calculatedValueClasses()" class="text-3xl font-bold">
57888
- {{ formatCurrency(calculatedRevenue()) }}
57889
- </p>
57890
- </div>
57891
- <div class="grid grid-cols-2 gap-4 pt-4" [ngClass]="calculatedDividerClasses()">
57892
- <div>
57893
- <p [ngClass]="calculatedLabelClasses()" class="text-xs font-medium uppercase tracking-wider mb-1">
57894
- Increase Amount
57895
- </p>
57896
- <p [ngClass]="calculatedSecondaryClasses()" class="text-xl font-bold">
57897
- {{ formatCurrency(calculatedRevenue() - priorYearRevenue()) }}
57898
- </p>
57899
- </div>
57900
- <div>
57901
- <p [ngClass]="calculatedLabelClasses()" class="text-xs font-medium uppercase tracking-wider mb-1">
57902
- % Growth
57903
- </p>
57904
- <p [ngClass]="calculatedSecondaryClasses()" class="text-xl font-bold">
57905
- +{{ formatPercentage(percentageIncrease(), 1) }}
57906
- </p>
57907
- </div>
57908
- </div>
57909
- @if (currentPaceProjection() > 0 && gapToClose().amount !== 0) {
57910
- <div class="grid grid-cols-2 gap-4 pt-4" [ngClass]="calculatedDividerClasses()">
57911
- <div>
57912
- <p [ngClass]="calculatedLabelClasses()" class="text-xs font-medium uppercase tracking-wider mb-1">
57913
- Gap to Close
57914
- </p>
57915
- <p [ngClass]="calculatedSecondaryClasses()" class="text-xl font-bold">
57916
- {{ formatCurrency(absValue(gapToClose().amount)) }}
57917
- </p>
57918
- </div>
57919
- <div>
57920
- <p [ngClass]="calculatedLabelClasses()" class="text-xs font-medium uppercase tracking-wider mb-1">
57921
- Additional Growth Needed
57922
- </p>
57923
- <p [ngClass]="calculatedSecondaryClasses()" class="text-xl font-bold">
57924
- {{ gapToClose().amount > 0 ? '+' : '' }}{{ formatPercentage(gapToClose().percentage, 1) }}
57925
- </p>
57926
- </div>
57927
- </div>
57928
- }
57929
- </div>
57930
- </div>
57931
- }
57932
- </div>
57933
-
57934
- <div>
57935
- <p [ngClass]="chartTitleClasses()" class="text-sm font-semibold mb-3">
57936
- Year-over-Year Revenue Trend
57937
- </p>
57938
- <div [ngClass]="chartContainerClasses()" class="rounded-xl border p-4">
57939
- @if (revenueChartData()) {
57940
- <symphiq-area-chart
57941
- [chart]="revenueChartData()!"
57942
- [showAxisLabels]="true"
57943
- [viewMode]="viewMode()"
57944
- [currencySymbol]="'$'"
57945
- />
57946
- } @else {
57947
- <div class="h-64 flex items-center justify-center">
57948
- <p [ngClass]="noDataClasses()" class="text-sm">
57949
- No revenue data available
57950
- </p>
57951
- </div>
57952
- }
57953
- </div>
57954
- </div>
57955
- </div>
57956
- </div>
57957
-
57958
- @if (showMetricsVisualization()) {
57959
- <div [ngClass]="sectionCardClasses()" class="rounded-2xl border shadow-lg p-8">
57960
- <div class="mb-6">
57961
- <h2 [ngClass]="sectionTitleClasses()" class="text-2xl font-bold mb-2">
57962
- Contributing Metrics
57963
- </h2>
57964
- <p [ngClass]="sectionDescriptionClasses()" class="text-sm">
57965
- To achieve your revenue target of {{ formatCurrency(calculatedRevenue()) }}, the following metrics need to improve by these amounts. These improvements compound through your funnel to drive revenue growth.
57966
- </p>
57967
- </div>
57968
-
57969
- <symphiq-funnel-metrics-visualization
57970
- [viewMode]="viewMode()"
57971
- [calculations]="metricCalculations()"
57972
- [pacingMetrics]="pacingMetrics()"
57973
- />
57974
- </div>
57975
- }
57976
-
57977
- <symphiq-sticky-submit-bar
57978
- [viewMode]="viewMode()"
57979
- [isValid]="isValid()"
57980
- [isSubmitting]="isSubmitting()"
57981
- [validationMessage]="validationMessage()"
57982
- [buttonText]="'Set Revenue Targets'"
57983
- (submitClick)="handleSubmit()"
57984
- />
57985
- </div>
57926
+ template: `
57927
+ <div class="space-y-8 pb-32">
57928
+ <div [ngClass]="sectionCardClasses()" class="rounded-2xl border shadow-lg p-8">
57929
+ <h2 [ngClass]="sectionTitleClasses()" class="text-2xl font-bold mb-6">
57930
+ Calculate Your Revenue Target
57931
+ </h2>
57932
+
57933
+ <div class="grid lg:grid-cols-2 gap-8">
57934
+ <div class="space-y-6">
57935
+ <div>
57936
+ <label [ngClass]="labelClasses()" class="block text-sm font-semibold mb-2">
57937
+ {{ currentYear() }} Revenue
57938
+ </label>
57939
+ <div class="space-y-1 mb-4">
57940
+ <p [ngClass]="priorYearLabelClasses()" class="text-xs">
57941
+ {{ priorYear() }} Revenue: {{ formatCurrency(priorYearRevenue()) }}
57942
+ </p>
57943
+ @if (currentPaceProjection() > 0) {
57944
+ <p [ngClass]="priorYearLabelClasses()" class="text-xs">
57945
+ Current Pace Projection: {{ formatCurrency(currentPaceProjection()) }}
57946
+ </p>
57947
+ }
57948
+ </div>
57949
+
57950
+ <div class="flex gap-2 mb-4">
57951
+ <button
57952
+ (click)="setInputMode('absolute')"
57953
+ [ngClass]="inputModeButtonClasses('absolute')"
57954
+ class="flex-1 py-2 px-4 rounded-lg text-sm font-semibold transition-all">
57955
+ Absolute Amount
57956
+ </button>
57957
+ <button
57958
+ (click)="setInputMode('percentage')"
57959
+ [ngClass]="inputModeButtonClasses('percentage')"
57960
+ class="flex-1 py-2 px-4 rounded-lg text-sm font-semibold transition-all">
57961
+ % Increase
57962
+ </button>
57963
+ </div>
57964
+
57965
+ @if (inputMode() === 'absolute') {
57966
+ <div class="relative">
57967
+ <span [ngClass]="inputPrefixClasses()" class="absolute left-4 top-1/2 -translate-y-1/2 text-xl font-bold">
57968
+ $
57969
+ </span>
57970
+ <input
57971
+ #absoluteInputRef
57972
+ type="number"
57973
+ [(ngModel)]="absoluteInput"
57974
+ (ngModelChange)="onAbsoluteInputChange()"
57975
+ [ngClass]="inputClasses()"
57976
+ class="w-full pl-10 pr-4 py-4 rounded-xl text-2xl font-bold border-2 transition-all"
57977
+ placeholder="0"
57978
+ min="0"
57979
+ step="1000">
57980
+ </div>
57981
+ } @else {
57982
+ <div class="relative">
57983
+ <input
57984
+ type="number"
57985
+ [(ngModel)]="percentageInput"
57986
+ (ngModelChange)="onPercentageInputChange()"
57987
+ [ngClass]="inputClasses()"
57988
+ class="w-full pr-10 pl-4 py-4 rounded-xl text-2xl font-bold border-2 transition-all"
57989
+ placeholder="0"
57990
+ min="0"
57991
+ max="1000"
57992
+ step="0.1">
57993
+ <span [ngClass]="inputSuffixClasses()" class="absolute right-4 top-1/2 -translate-y-1/2 text-xl font-bold">
57994
+ %
57995
+ </span>
57996
+ </div>
57997
+ }
57998
+ </div>
57999
+
58000
+ @if (calculatedRevenue() > 0) {
58001
+ <div [ngClass]="calculatedValuesCardClasses()" class="p-6 rounded-xl border-2">
58002
+ <div class="space-y-4">
58003
+ <div>
58004
+ <p [ngClass]="calculatedLabelClasses()" class="text-xs font-medium uppercase tracking-wider mb-1">
58005
+ {{ currentYear() }} Revenue Target
58006
+ </p>
58007
+ <p [ngClass]="calculatedValueClasses()" class="text-3xl font-bold">
58008
+ {{ formatCurrency(calculatedRevenue()) }}
58009
+ </p>
58010
+ </div>
58011
+ <div class="grid grid-cols-2 gap-4 pt-4" [ngClass]="calculatedDividerClasses()">
58012
+ <div>
58013
+ <p [ngClass]="calculatedLabelClasses()" class="text-xs font-medium uppercase tracking-wider mb-1">
58014
+ Increase Amount
58015
+ </p>
58016
+ <p [ngClass]="calculatedSecondaryClasses()" class="text-xl font-bold">
58017
+ {{ formatCurrency(calculatedRevenue() - priorYearRevenue()) }}
58018
+ </p>
58019
+ </div>
58020
+ <div>
58021
+ <p [ngClass]="calculatedLabelClasses()" class="text-xs font-medium uppercase tracking-wider mb-1">
58022
+ % Growth
58023
+ </p>
58024
+ <p [ngClass]="calculatedSecondaryClasses()" class="text-xl font-bold">
58025
+ +{{ formatPercentage(percentageIncrease(), 1) }}
58026
+ </p>
58027
+ </div>
58028
+ </div>
58029
+ @if (currentPaceProjection() > 0 && gapToClose().amount !== 0) {
58030
+ <div class="grid grid-cols-2 gap-4 pt-4" [ngClass]="calculatedDividerClasses()">
58031
+ <div>
58032
+ <p [ngClass]="calculatedLabelClasses()" class="text-xs font-medium uppercase tracking-wider mb-1">
58033
+ Gap to Close
58034
+ </p>
58035
+ <p [ngClass]="calculatedSecondaryClasses()" class="text-xl font-bold">
58036
+ {{ formatCurrency(absValue(gapToClose().amount)) }}
58037
+ </p>
58038
+ </div>
58039
+ <div>
58040
+ <p [ngClass]="calculatedLabelClasses()" class="text-xs font-medium uppercase tracking-wider mb-1">
58041
+ Additional Growth Needed
58042
+ </p>
58043
+ <p [ngClass]="calculatedSecondaryClasses()" class="text-xl font-bold">
58044
+ {{ gapToClose().amount > 0 ? '+' : '' }}{{ formatPercentage(gapToClose().percentage, 1) }}
58045
+ </p>
58046
+ </div>
58047
+ </div>
58048
+ }
58049
+ </div>
58050
+ </div>
58051
+ }
58052
+ </div>
58053
+
58054
+ <div>
58055
+ <p [ngClass]="chartTitleClasses()" class="text-sm font-semibold mb-3">
58056
+ Year-over-Year Revenue Trend
58057
+ </p>
58058
+ <div [ngClass]="chartContainerClasses()" class="rounded-xl border p-4">
58059
+ @if (revenueChartData()) {
58060
+ <symphiq-area-chart
58061
+ [chart]="revenueChartData()!"
58062
+ [showAxisLabels]="true"
58063
+ [viewMode]="viewMode()"
58064
+ [currencySymbol]="'$'"
58065
+ />
58066
+ } @else {
58067
+ <div class="h-64 flex items-center justify-center">
58068
+ <p [ngClass]="noDataClasses()" class="text-sm">
58069
+ No revenue data available
58070
+ </p>
58071
+ </div>
58072
+ }
58073
+ </div>
58074
+ </div>
58075
+ </div>
58076
+ </div>
58077
+
58078
+ @if (showMetricsVisualization()) {
58079
+ <div [ngClass]="sectionCardClasses()" class="rounded-2xl border shadow-lg p-8">
58080
+ <div class="mb-6">
58081
+ <h2 [ngClass]="sectionTitleClasses()" class="text-2xl font-bold mb-2">
58082
+ Contributing Metrics
58083
+ </h2>
58084
+ <p [ngClass]="sectionDescriptionClasses()" class="text-sm">
58085
+ To achieve your revenue target of {{ formatCurrency(calculatedRevenue()) }}, the following metrics need to improve by these amounts. These improvements compound through your funnel to drive revenue growth.
58086
+ </p>
58087
+ </div>
58088
+
58089
+ <symphiq-funnel-metrics-visualization
58090
+ [viewMode]="viewMode()"
58091
+ [calculations]="metricCalculations()"
58092
+ [pacingMetrics]="pacingMetrics()"
58093
+ />
58094
+ </div>
58095
+ }
58096
+
58097
+ <symphiq-sticky-submit-bar
58098
+ [viewMode]="viewMode()"
58099
+ [isValid]="isValid()"
58100
+ [isSubmitting]="isSubmitting()"
58101
+ [validationMessage]="validationMessage()"
58102
+ [buttonText]="'Set Revenue Targets'"
58103
+ (submitClick)="handleSubmit()"
58104
+ />
58105
+ </div>
57986
58106
  `
57987
58107
  }]
57988
- }], null, { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], funnelMetrics: [{ type: i0.Input, args: [{ isSignal: true, alias: "funnelMetrics", required: false }] }], mainUiData: [{ type: i0.Input, args: [{ isSignal: true, alias: "mainUiData", required: false }] }], yoyUiData: [{ type: i0.Input, args: [{ isSignal: true, alias: "yoyUiData", required: false }] }], trendUiData: [{ type: i0.Input, args: [{ isSignal: true, alias: "trendUiData", required: false }] }], shopId: [{ type: i0.Input, args: [{ isSignal: true, alias: "shopId", required: false }] }], pacingMetrics: [{ type: i0.Input, args: [{ isSignal: true, alias: "pacingMetrics", required: false }] }], dataResults: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataResults", required: false }] }], targetsCreated: [{ type: i0.Output, args: ["targetsCreated"] }] }); })();
57989
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(InitialTargetSettingComponent, { className: "InitialTargetSettingComponent", filePath: "lib/components/revenue-calculator-dashboard/initial-target-setting.component.ts", lineNumber: 215 }); })();
58108
+ }], null, { absoluteInputRef: [{
58109
+ type: ViewChild,
58110
+ args: ['absoluteInputRef']
58111
+ }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], funnelMetrics: [{ type: i0.Input, args: [{ isSignal: true, alias: "funnelMetrics", required: false }] }], mainUiData: [{ type: i0.Input, args: [{ isSignal: true, alias: "mainUiData", required: false }] }], yoyUiData: [{ type: i0.Input, args: [{ isSignal: true, alias: "yoyUiData", required: false }] }], trendUiData: [{ type: i0.Input, args: [{ isSignal: true, alias: "trendUiData", required: false }] }], shopId: [{ type: i0.Input, args: [{ isSignal: true, alias: "shopId", required: false }] }], pacingMetrics: [{ type: i0.Input, args: [{ isSignal: true, alias: "pacingMetrics", required: false }] }], dataResults: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataResults", required: false }] }], targetsCreated: [{ type: i0.Output, args: ["targetsCreated"] }] }); })();
58112
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(InitialTargetSettingComponent, { className: "InitialTargetSettingComponent", filePath: "lib/components/revenue-calculator-dashboard/initial-target-setting.component.ts", lineNumber: 216 }); })();
57990
58113
 
57991
58114
  function IndeterminateSpinnerComponent_For_5_Template(rf, ctx) { if (rf & 1) {
57992
58115
  i0.ɵɵelement(0, "div", 5);