@eric-emg/symphiq-components 1.2.542 → 1.2.543

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.
@@ -175,14 +175,16 @@ class ModalService {
175
175
  this.modalState.next(newState);
176
176
  }
177
177
  openMetricModal(metric, charts = [], previousState, expandedSection) {
178
- console.log('[ModalService.openMetricModal] Called with metric:', metric);
178
+ console.log('[ModalService.openMetricModal] Called with metric:', metric?.metric);
179
+ console.log('[ModalService.openMetricModal] Charts count:', charts.length);
180
+ console.log('[ModalService.openMetricModal] Chart IDs:', charts.map(c => c.performanceItemId));
179
181
  const prevStack = previousState?.navigationStack || [];
180
182
  const navigationStack = previousState ? [...prevStack, previousState] : [];
181
183
  const openedFromMainBody = !previousState;
182
184
  const newState = { type: 'metric', data: metric, charts, previousState: previousState || null, expandedSection, navigationStack, openedFromMainBody };
183
- console.log('[ModalService.openMetricModal] Setting modal state:', newState);
185
+ console.log('[ModalService.openMetricModal] Setting modal state with charts:', newState.charts.length);
184
186
  this.modalState.next(newState);
185
- console.log('[ModalService.openMetricModal] Modal state after next:', this.modalState.value);
187
+ console.log('[ModalService.openMetricModal] Modal state value after next, charts count:', this.modalState.value?.charts?.length);
186
188
  }
187
189
  openChartModal(chart, previousState) {
188
190
  const navigationStack = previousState ? [...(previousState.navigationStack || []), previousState] : [];
@@ -8518,6 +8520,14 @@ class MetricCardComponent {
8518
8520
  }
8519
8521
  });
8520
8522
  });
8523
+ effect(() => {
8524
+ const metric = this.metric();
8525
+ const chartsInput = this.charts();
8526
+ const allChartsInput = this.allCharts();
8527
+ console.log('[MetricCard] Metric:', metric.metric);
8528
+ console.log('[MetricCard] charts() count:', chartsInput.length, 'IDs:', chartsInput.map(c => c.performanceItemId));
8529
+ console.log('[MetricCard] allCharts() count:', allChartsInput.length);
8530
+ });
8521
8531
  }
8522
8532
  animateValue(target) {
8523
8533
  if (this.animationFrame !== null) {
@@ -16647,6 +16657,8 @@ class ModalComponent {
16647
16657
  current = current.previousState;
16648
16658
  }
16649
16659
  console.log('[FunnelAnalysisModal] Setting modalStateSignal with type:', state.type);
16660
+ console.log('[FunnelAnalysisModal] Charts received from state:', state.charts?.length ?? 0, 'charts');
16661
+ console.log('[FunnelAnalysisModal] Chart IDs:', state.charts?.map((c) => c.performanceItemId));
16650
16662
  this.modalStateSignal.set({
16651
16663
  type: state.type,
16652
16664
  data: data,
@@ -32835,7 +32847,7 @@ const _c0$W = a0 => ({ name: "star", source: a0 });
32835
32847
  const _c1$u = a0 => ({ name: "globe-americas", source: a0 });
32836
32848
  const _c2$m = a0 => ({ name: "academic-cap", source: a0 });
32837
32849
  const _c3$i = a0 => ({ name: "information-circle", source: a0 });
32838
- const _c4$c = a0 => ({ name: "signal", source: a0 });
32850
+ const _c4$d = a0 => ({ name: "signal", source: a0 });
32839
32851
  const _c5$a = a0 => ({ name: "wrench-screwdriver", source: a0 });
32840
32852
  function RegionCardComponent_Conditional_9_Template(rf, ctx) { if (rf & 1) {
32841
32853
  i0.ɵɵelementStart(0, "p", 2);
@@ -33026,7 +33038,7 @@ function RegionCardComponent_Conditional_21_Conditional_7_Template(rf, ctx) { if
33026
33038
  const ctx_r0 = i0.ɵɵnextContext(2);
33027
33039
  i0.ɵɵproperty("ngClass", ctx_r0.getCompetitiveGapSectionClasses());
33028
33040
  i0.ɵɵadvance(2);
33029
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(6, _c4$c, ctx_r0.IconSourceEnum.HEROICONS))("ngClass", ctx_r0.getExpandedIconClasses());
33041
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(6, _c4$d, ctx_r0.IconSourceEnum.HEROICONS))("ngClass", ctx_r0.getExpandedIconClasses());
33030
33042
  i0.ɵɵadvance();
33031
33043
  i0.ɵɵproperty("ngClass", ctx_r0.getExpandedTitleClasses());
33032
33044
  i0.ɵɵadvance(2);
@@ -33909,7 +33921,7 @@ const _c0$V = a0 => ({ name: "calendar-days", source: a0 });
33909
33921
  const _c1$t = a0 => ({ name: "chart-bar", source: a0 });
33910
33922
  const _c2$l = a0 => ({ name: "academic-cap", source: a0 });
33911
33923
  const _c3$h = a0 => ({ name: "information-circle", source: a0 });
33912
- const _c4$b = a0 => ({ name: "signal", source: a0 });
33924
+ const _c4$c = a0 => ({ name: "signal", source: a0 });
33913
33925
  const _c5$9 = a0 => ({ name: "wrench-screwdriver", source: a0 });
33914
33926
  function SeasonCardComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
33915
33927
  i0.ɵɵelementStart(0, "p", 2);
@@ -34108,7 +34120,7 @@ function SeasonCardComponent_Conditional_20_Conditional_7_Template(rf, ctx) { if
34108
34120
  const ctx_r0 = i0.ɵɵnextContext(2);
34109
34121
  i0.ɵɵproperty("ngClass", ctx_r0.getCompetitiveGapSectionClasses());
34110
34122
  i0.ɵɵadvance(2);
34111
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(6, _c4$b, ctx_r0.IconSourceEnum.HEROICONS))("ngClass", ctx_r0.getExpandedIconClasses());
34123
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(6, _c4$c, ctx_r0.IconSourceEnum.HEROICONS))("ngClass", ctx_r0.getExpandedIconClasses());
34112
34124
  i0.ɵɵadvance();
34113
34125
  i0.ɵɵproperty("ngClass", ctx_r0.getExpandedTitleClasses());
34114
34126
  i0.ɵɵadvance(2);
@@ -34743,7 +34755,7 @@ const _c0$U = a0 => ({ name: "currency-dollar", source: a0 });
34743
34755
  const _c1$s = a0 => ({ name: "chart-bar", source: a0 });
34744
34756
  const _c2$k = a0 => ({ name: "academic-cap", source: a0 });
34745
34757
  const _c3$g = a0 => ({ name: "information-circle", source: a0 });
34746
- const _c4$a = a0 => ({ name: "signal", source: a0 });
34758
+ const _c4$b = a0 => ({ name: "signal", source: a0 });
34747
34759
  const _c5$8 = a0 => ({ name: "wrench-screwdriver", source: a0 });
34748
34760
  function CustomerSegmentCardComponent_Conditional_9_Template(rf, ctx) { if (rf & 1) {
34749
34761
  i0.ɵɵelementStart(0, "p", 8);
@@ -34951,7 +34963,7 @@ function CustomerSegmentCardComponent_Conditional_23_Conditional_11_Template(rf,
34951
34963
  const ctx_r0 = i0.ɵɵnextContext(2);
34952
34964
  i0.ɵɵproperty("ngClass", ctx_r0.getCompetitiveGapSectionClasses());
34953
34965
  i0.ɵɵadvance(2);
34954
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(6, _c4$a, ctx_r0.IconSourceEnum.HEROICONS))("ngClass", ctx_r0.getExpandedIconClasses());
34966
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(6, _c4$b, ctx_r0.IconSourceEnum.HEROICONS))("ngClass", ctx_r0.getExpandedIconClasses());
34955
34967
  i0.ɵɵadvance();
34956
34968
  i0.ɵɵproperty("ngClass", ctx_r0.getExpandedTitleClasses());
34957
34969
  i0.ɵɵadvance(2);
@@ -35102,7 +35114,7 @@ function CustomerSegmentCardComponent_Conditional_24_Conditional_7_Template(rf,
35102
35114
  const ctx_r0 = i0.ɵɵnextContext(2);
35103
35115
  i0.ɵɵproperty("ngClass", ctx_r0.getCompetitiveGapSectionClasses());
35104
35116
  i0.ɵɵadvance(2);
35105
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(6, _c4$a, ctx_r0.IconSourceEnum.HEROICONS))("ngClass", ctx_r0.getExpandedIconClasses());
35117
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(6, _c4$b, ctx_r0.IconSourceEnum.HEROICONS))("ngClass", ctx_r0.getExpandedIconClasses());
35106
35118
  i0.ɵɵadvance();
35107
35119
  i0.ɵɵproperty("ngClass", ctx_r0.getExpandedTitleClasses());
35108
35120
  i0.ɵɵadvance(2);
@@ -35859,7 +35871,7 @@ const _c0$T = a0 => ({ name: "currency-dollar", source: a0 });
35859
35871
  const _c1$r = a0 => ({ name: "document-text", source: a0 });
35860
35872
  const _c2$j = a0 => ({ name: "academic-cap", source: a0 });
35861
35873
  const _c3$f = a0 => ({ name: "information-circle", source: a0 });
35862
- const _c4$9 = a0 => ({ name: "signal", source: a0 });
35874
+ const _c4$a = a0 => ({ name: "signal", source: a0 });
35863
35875
  const _c5$7 = a0 => ({ name: "wrench-screwdriver", source: a0 });
35864
35876
  function PriceTierCardComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
35865
35877
  i0.ɵɵelementStart(0, "p", 7);
@@ -36039,7 +36051,7 @@ function PriceTierCardComponent_Conditional_27_Conditional_7_Template(rf, ctx) {
36039
36051
  const ctx_r0 = i0.ɵɵnextContext(2);
36040
36052
  i0.ɵɵproperty("ngClass", ctx_r0.getCompetitiveGapSectionClasses());
36041
36053
  i0.ɵɵadvance(2);
36042
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(6, _c4$9, ctx_r0.IconSourceEnum.HEROICONS))("ngClass", ctx_r0.getExpandedIconClasses());
36054
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(6, _c4$a, ctx_r0.IconSourceEnum.HEROICONS))("ngClass", ctx_r0.getExpandedIconClasses());
36043
36055
  i0.ɵɵadvance();
36044
36056
  i0.ɵɵproperty("ngClass", ctx_r0.getExpandedTitleClasses());
36045
36057
  i0.ɵɵadvance(2);
@@ -36695,7 +36707,7 @@ const _c0$S = () => ({ name: "cube", source: "HEROICONS" });
36695
36707
  const _c1$q = () => ({ name: "currency-dollar", source: "HEROICONS" });
36696
36708
  const _c2$i = () => ({ name: "chart-bar", source: "HEROICONS" });
36697
36709
  const _c3$e = a0 => ({ name: "chart-bar", source: a0 });
36698
- const _c4$8 = a0 => ({ name: "academic-cap", source: a0 });
36710
+ const _c4$9 = a0 => ({ name: "academic-cap", source: a0 });
36699
36711
  const _c5$6 = a0 => ({ name: "information-circle", source: a0 });
36700
36712
  const _c6$2 = a0 => ({ name: "signal", source: a0 });
36701
36713
  const _c7$1 = a0 => ({ name: "wrench-screwdriver", source: a0 });
@@ -36928,7 +36940,7 @@ function ProductCategoryCardComponent_Conditional_18_Conditional_5_Template(rf,
36928
36940
  const ctx_r0 = i0.ɵɵnextContext(2);
36929
36941
  i0.ɵɵproperty("ngClass", ctx_r0.getCompetitiveGapSectionClasses());
36930
36942
  i0.ɵɵadvance(2);
36931
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(6, _c4$8, ctx_r0.IconSourceEnum.HEROICONS))("ngClass", ctx_r0.getExpandedIconClasses());
36943
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(6, _c4$9, ctx_r0.IconSourceEnum.HEROICONS))("ngClass", ctx_r0.getExpandedIconClasses());
36932
36944
  i0.ɵɵadvance();
36933
36945
  i0.ɵɵproperty("ngClass", ctx_r0.getExpandedTitleClasses());
36934
36946
  i0.ɵɵadvance(2);
@@ -37851,7 +37863,7 @@ const _c0$Q = a0 => ({ name: "shield-check", source: a0 });
37851
37863
  const _c1$p = a0 => ({ name: "building-storefront", source: a0 });
37852
37864
  const _c2$h = a0 => ({ name: "academic-cap", source: a0 });
37853
37865
  const _c3$d = a0 => ({ name: "information-circle", source: a0 });
37854
- const _c4$7 = a0 => ({ name: "signal", source: a0 });
37866
+ const _c4$8 = a0 => ({ name: "signal", source: a0 });
37855
37867
  const _c5$5 = a0 => ({ name: "wrench-screwdriver", source: a0 });
37856
37868
  function EnhancedListItemCardComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
37857
37869
  i0.ɵɵelementStart(0, "div", 2);
@@ -37984,7 +37996,7 @@ function EnhancedListItemCardComponent_Conditional_22_Conditional_7_Template(rf,
37984
37996
  const ctx_r0 = i0.ɵɵnextContext(2);
37985
37997
  i0.ɵɵproperty("ngClass", ctx_r0.getCompetitiveGapSectionClasses());
37986
37998
  i0.ɵɵadvance(2);
37987
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(6, _c4$7, ctx_r0.IconSourceEnum.HEROICONS))("ngClass", ctx_r0.getExpandedIconClasses());
37999
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(6, _c4$8, ctx_r0.IconSourceEnum.HEROICONS))("ngClass", ctx_r0.getExpandedIconClasses());
37988
38000
  i0.ɵɵadvance();
37989
38001
  i0.ɵɵproperty("ngClass", ctx_r0.getExpandedTitleClasses());
37990
38002
  i0.ɵɵadvance(2);
@@ -41814,7 +41826,7 @@ const ProfileAnalysisModalComponent_Conditional_0_Conditional_28_Conditional_4_D
41814
41826
  const ProfileAnalysisModalComponent_Conditional_0_Conditional_28_Conditional_5_Defer_2_DepsFn = () => [Promise.resolve().then(function () { return pieChart_component; }).then(m => m.PieChartComponent)];
41815
41827
  const ProfileAnalysisModalComponent_Conditional_0_Conditional_28_Conditional_6_Defer_2_DepsFn = () => [Promise.resolve().then(function () { return areaChart_component; }).then(m => m.AreaChartComponent)];
41816
41828
  const _c3$b = a0 => ({ name: "arrow-left", source: a0 });
41817
- const _c4$6 = a0 => ({ name: "chevron-right", source: a0 });
41829
+ const _c4$7 = a0 => ({ name: "chevron-right", source: a0 });
41818
41830
  const _forTrack0$H = ($index, $item) => $item.performanceItemId || $index;
41819
41831
  const _forTrack1$6 = ($index, $item) => $item.id || $index;
41820
41832
  const _forTrack2$2 = ($index, $item) => $item.metric || $index;
@@ -41848,7 +41860,7 @@ function ProfileAnalysisModalComponent_Conditional_0_Conditional_7_For_5_Conditi
41848
41860
  const ctx_r1 = i0.ɵɵnextContext(3);
41849
41861
  i0.ɵɵconditional(crumb_r5.stackIndex !== undefined || crumb_r5.backSteps !== undefined ? 0 : 1);
41850
41862
  i0.ɵɵadvance(2);
41851
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(2, _c4$6, ctx_r1.IconSourceEnum.HEROICONS));
41863
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(2, _c4$7, ctx_r1.IconSourceEnum.HEROICONS));
41852
41864
  } }
41853
41865
  function ProfileAnalysisModalComponent_Conditional_0_Conditional_7_For_5_Conditional_1_Template(rf, ctx) { if (rf & 1) {
41854
41866
  i0.ɵɵelementStart(0, "span", 40);
@@ -43274,6 +43286,7 @@ class ProfileAnalysisModalComponent {
43274
43286
  this.modalService.modalState$
43275
43287
  .pipe(takeUntilDestroyed())
43276
43288
  .subscribe(state => {
43289
+ console.log('[ProfileAnalysisModal] Received modal state:', state.type, state);
43277
43290
  // Types that this modal handles (only update previousState for these)
43278
43291
  const handledTypes = [
43279
43292
  'goal-detail', 'goal-objectives', 'objective-strategies', 'strategy-recommendations',
@@ -43564,12 +43577,14 @@ class ProfileAnalysisModalComponent {
43564
43577
  this.currentCharts.set(state.charts || []);
43565
43578
  }
43566
43579
  else if (state.type === 'metric' && state.data) {
43580
+ console.log('[ProfileAnalysisModal] Handling metric type, opening modal');
43567
43581
  const metric = state.data;
43568
43582
  this.modalData.set(metric);
43569
43583
  const formattedName = metric.metric ? this.metricFormatter.formatMetricName(metric.metric) : 'Metric Details';
43570
43584
  this.modalTitle.set(formattedName);
43571
43585
  this.modalType.set('metric');
43572
43586
  this.isOpen.set(true);
43587
+ console.log('[ProfileAnalysisModal] isOpen set to true, modalType:', this.modalType());
43573
43588
  const stack = state.navigationStack || [];
43574
43589
  this.navigationStack.set(stack);
43575
43590
  this.currentCharts.set(state.charts || []);
@@ -44609,7 +44624,7 @@ const _c0$L = a0 => ({ name: "light-bulb", source: a0 });
44609
44624
  const _c1$l = a0 => ({ name: "trophy", source: a0 });
44610
44625
  const _c2$e = a0 => ({ name: "academic-cap", source: a0 });
44611
44626
  const _c3$a = a0 => ({ name: "signal", source: a0 });
44612
- const _c4$5 = a0 => ({ name: "wrench-screwdriver", source: a0 });
44627
+ const _c4$6 = a0 => ({ name: "wrench-screwdriver", source: a0 });
44613
44628
  const _c5$4 = a0 => ({ name: "link", source: a0 });
44614
44629
  function CompetitiveGapModalComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
44615
44630
  i0.ɵɵelementStart(0, "span", 7);
@@ -44718,7 +44733,7 @@ function CompetitiveGapModalComponent_Conditional_13_Template(rf, ctx) { if (rf
44718
44733
  const ctx_r0 = i0.ɵɵnextContext();
44719
44734
  i0.ɵɵproperty("ngClass", ctx_r0.sectionClasses());
44720
44735
  i0.ɵɵadvance(2);
44721
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(4, _c4$5, ctx_r0.iconSource))("ngClass", ctx_r0.sectionIconClasses());
44736
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(4, _c4$6, ctx_r0.iconSource))("ngClass", ctx_r0.sectionIconClasses());
44722
44737
  i0.ɵɵadvance();
44723
44738
  i0.ɵɵproperty("ngClass", ctx_r0.sectionTitleClasses());
44724
44739
  i0.ɵɵadvance(3);
@@ -47004,7 +47019,7 @@ const _c0$H = ["dashboardContainer"];
47004
47019
  const _c1$h = () => ({});
47005
47020
  const _c2$c = () => [1, 2, 3, 4, 5, 6];
47006
47021
  const _c3$8 = () => [1, 2, 3];
47007
- const _c4$4 = () => [1, 2, 3, 4];
47022
+ const _c4$5 = () => [1, 2, 3, 4];
47008
47023
  const _c5$3 = () => [1, 2];
47009
47024
  const _forTrack0$F = ($index, $item) => $item.value;
47010
47025
  function SymphiqFunnelAnalysisDashboardComponent_Conditional_7_For_6_Template(rf, ctx) { if (rf & 1) {
@@ -47686,7 +47701,7 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_18_Conditional_4_Co
47686
47701
  i0.ɵɵadvance();
47687
47702
  i0.ɵɵproperty("width", "80px")("height", "36px")("isLightMode", ctx_r2.isLightMode());
47688
47703
  i0.ɵɵadvance(2);
47689
- i0.ɵɵrepeater(i0.ɵɵpureFunction0(13, _c4$4));
47704
+ i0.ɵɵrepeater(i0.ɵɵpureFunction0(13, _c4$5));
47690
47705
  } }
47691
47706
  function SymphiqFunnelAnalysisDashboardComponent_Conditional_18_Conditional_4_Conditional_28_Template(rf, ctx) { if (rf & 1) {
47692
47707
  i0.ɵɵelementStart(0, "div", 115);
@@ -47779,7 +47794,7 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_18_Conditional_4_Co
47779
47794
  i0.ɵɵelementEnd();
47780
47795
  } if (rf & 2) {
47781
47796
  i0.ɵɵadvance();
47782
- i0.ɵɵrepeater(i0.ɵɵpureFunction0(0, _c4$4));
47797
+ i0.ɵɵrepeater(i0.ɵɵpureFunction0(0, _c4$5));
47783
47798
  } }
47784
47799
  function SymphiqFunnelAnalysisDashboardComponent_Conditional_18_Conditional_4_Conditional_29_For_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
47785
47800
  i0.ɵɵconditionalCreate(0, SymphiqFunnelAnalysisDashboardComponent_Conditional_18_Conditional_4_Conditional_29_For_2_Conditional_2_Conditional_0_Template, 3, 0, "div", 132)(1, SymphiqFunnelAnalysisDashboardComponent_Conditional_18_Conditional_4_Conditional_29_For_2_Conditional_2_Conditional_1_Template, 3, 0, "div", 133)(2, SymphiqFunnelAnalysisDashboardComponent_Conditional_18_Conditional_4_Conditional_29_For_2_Conditional_2_Conditional_2_Template, 3, 1, "div", 132);
@@ -47970,7 +47985,7 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_18_Conditional_5_Co
47970
47985
  i0.ɵɵadvance();
47971
47986
  i0.ɵɵproperty("width", "100px")("height", "24px")("isLightMode", ctx_r2.isLightMode());
47972
47987
  i0.ɵɵadvance(2);
47973
- i0.ɵɵrepeater(i0.ɵɵpureFunction0(7, _c4$4));
47988
+ i0.ɵɵrepeater(i0.ɵɵpureFunction0(7, _c4$5));
47974
47989
  } }
47975
47990
  function SymphiqFunnelAnalysisDashboardComponent_Conditional_18_Conditional_5_Conditional_16_Template(rf, ctx) { if (rf & 1) {
47976
47991
  i0.ɵɵelementStart(0, "div", 80);
@@ -69659,7 +69674,7 @@ const _c0$u = a0 => ({ name: "chart-bar", source: a0 });
69659
69674
  const _c1$d = a0 => ({ name: "arrow-right", source: a0 });
69660
69675
  const _c2$b = a0 => ({ name: "signal", source: a0 });
69661
69676
  const _c3$7 = (a0, a1) => ({ name: a0, source: a1 });
69662
- const _c4$3 = a0 => ({ name: "flag", source: a0 });
69677
+ const _c4$4 = a0 => ({ name: "flag", source: a0 });
69663
69678
  const _c5$2 = a0 => ({ name: "arrow-trending-up", source: a0 });
69664
69679
  const _c6$1 = a0 => ({ name: "heart", source: a0 });
69665
69680
  const _c7 = a0 => ({ name: "light-bulb", source: a0 });
@@ -69725,7 +69740,7 @@ function MetricExecutiveSummaryComponent_Conditional_15_Template(rf, ctx) { if (
69725
69740
  const ctx_r0 = i0.ɵɵnextContext();
69726
69741
  i0.ɵɵproperty("ngClass", ctx_r0.metricCardClasses());
69727
69742
  i0.ɵɵadvance(2);
69728
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(6, _c4$3, ctx_r0.iconSource))("ngClass", ctx_r0.metricLabelClasses());
69743
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(6, _c4$4, ctx_r0.iconSource))("ngClass", ctx_r0.metricLabelClasses());
69729
69744
  i0.ɵɵadvance();
69730
69745
  i0.ɵɵproperty("ngClass", ctx_r0.metricLabelClasses());
69731
69746
  i0.ɵɵadvance(2);
@@ -69734,6 +69749,27 @@ function MetricExecutiveSummaryComponent_Conditional_15_Template(rf, ctx) { if (
69734
69749
  i0.ɵɵtextInterpolate1(" ", ctx_r0.summary().targetValue, " ");
69735
69750
  } }
69736
69751
  function MetricExecutiveSummaryComponent_Conditional_16_Template(rf, ctx) { if (rf & 1) {
69752
+ i0.ɵɵelementStart(0, "div", 12)(1, "div", 19);
69753
+ i0.ɵɵelement(2, "symphiq-icon", 20);
69754
+ i0.ɵɵelementStart(3, "span", 21);
69755
+ i0.ɵɵtext(4, " Projected ");
69756
+ i0.ɵɵelementEnd()();
69757
+ i0.ɵɵelementStart(5, "div", 22);
69758
+ i0.ɵɵtext(6);
69759
+ i0.ɵɵelementEnd()();
69760
+ } if (rf & 2) {
69761
+ const ctx_r0 = i0.ɵɵnextContext();
69762
+ i0.ɵɵproperty("ngClass", ctx_r0.metricCardClasses());
69763
+ i0.ɵɵadvance(2);
69764
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(6, _c0$u, ctx_r0.iconSource))("ngClass", ctx_r0.metricLabelClasses());
69765
+ i0.ɵɵadvance();
69766
+ i0.ɵɵproperty("ngClass", ctx_r0.metricLabelClasses());
69767
+ i0.ɵɵadvance(2);
69768
+ i0.ɵɵproperty("ngClass", ctx_r0.metricValueClasses());
69769
+ i0.ɵɵadvance();
69770
+ i0.ɵɵtextInterpolate1(" ", ctx_r0.projectedValue(), " ");
69771
+ } }
69772
+ function MetricExecutiveSummaryComponent_Conditional_17_Template(rf, ctx) { if (rf & 1) {
69737
69773
  i0.ɵɵelementStart(0, "div", 12)(1, "div", 19);
69738
69774
  i0.ɵɵelement(2, "symphiq-icon", 20);
69739
69775
  i0.ɵɵelementStart(3, "span", 21);
@@ -69754,7 +69790,7 @@ function MetricExecutiveSummaryComponent_Conditional_16_Template(rf, ctx) { if (
69754
69790
  i0.ɵɵadvance();
69755
69791
  i0.ɵɵtextInterpolate1(" ", ctx_r0.summary().pacingStatus, " ");
69756
69792
  } }
69757
- function MetricExecutiveSummaryComponent_Conditional_17_Template(rf, ctx) { if (rf & 1) {
69793
+ function MetricExecutiveSummaryComponent_Conditional_18_Template(rf, ctx) { if (rf & 1) {
69758
69794
  i0.ɵɵelementStart(0, "div", 12)(1, "div", 19);
69759
69795
  i0.ɵɵelement(2, "symphiq-icon", 20);
69760
69796
  i0.ɵɵelementStart(3, "span", 21);
@@ -69776,7 +69812,7 @@ function MetricExecutiveSummaryComponent_Conditional_17_Template(rf, ctx) { if (
69776
69812
  i0.ɵɵadvance();
69777
69813
  i0.ɵɵtextInterpolate1(" ", (tmp_6_0 = ctx_r0.summary().metricHealth) == null ? null : tmp_6_0.replace("_", " "), " ");
69778
69814
  } }
69779
- function MetricExecutiveSummaryComponent_Conditional_23_Conditional_4_Template(rf, ctx) { if (rf & 1) {
69815
+ function MetricExecutiveSummaryComponent_Conditional_24_Conditional_4_Template(rf, ctx) { if (rf & 1) {
69780
69816
  i0.ɵɵelementStart(0, "div", 28);
69781
69817
  i0.ɵɵelement(1, "symphiq-napkin-visual-placeholder", 31);
69782
69818
  i0.ɵɵelementEnd();
@@ -69785,12 +69821,12 @@ function MetricExecutiveSummaryComponent_Conditional_23_Conditional_4_Template(r
69785
69821
  i0.ɵɵadvance();
69786
69822
  i0.ɵɵproperty("visual", ctx_r0.summary().napkinVisual)("viewMode", ctx_r0.viewMode());
69787
69823
  } }
69788
- function MetricExecutiveSummaryComponent_Conditional_23_Template(rf, ctx) { if (rf & 1) {
69824
+ function MetricExecutiveSummaryComponent_Conditional_24_Template(rf, ctx) { if (rf & 1) {
69789
69825
  i0.ɵɵelementStart(0, "div", 16)(1, "h3", 26);
69790
69826
  i0.ɵɵtext(2, " Analysis Narrative ");
69791
69827
  i0.ɵɵelementEnd();
69792
69828
  i0.ɵɵelementStart(3, "div", 27);
69793
- i0.ɵɵconditionalCreate(4, MetricExecutiveSummaryComponent_Conditional_23_Conditional_4_Template, 2, 2, "div", 28);
69829
+ i0.ɵɵconditionalCreate(4, MetricExecutiveSummaryComponent_Conditional_24_Conditional_4_Template, 2, 2, "div", 28);
69794
69830
  i0.ɵɵelementStart(5, "p", 29);
69795
69831
  i0.ɵɵtext(6);
69796
69832
  i0.ɵɵelementEnd();
@@ -69809,7 +69845,7 @@ function MetricExecutiveSummaryComponent_Conditional_23_Template(rf, ctx) { if (
69809
69845
  i0.ɵɵadvance();
69810
69846
  i0.ɵɵtextInterpolate1(" ", ctx_r0.summary().narrative, " ");
69811
69847
  } }
69812
- function MetricExecutiveSummaryComponent_Conditional_24_For_5_Conditional_8_Template(rf, ctx) { if (rf & 1) {
69848
+ function MetricExecutiveSummaryComponent_Conditional_25_For_5_Conditional_8_Template(rf, ctx) { if (rf & 1) {
69813
69849
  i0.ɵɵelementStart(0, "div", 40)(1, "div", 41);
69814
69850
  i0.ɵɵelement(2, "symphiq-icon", 42);
69815
69851
  i0.ɵɵelementStart(3, "div")(4, "span", 43);
@@ -69831,10 +69867,10 @@ function MetricExecutiveSummaryComponent_Conditional_24_For_5_Conditional_8_Temp
69831
69867
  i0.ɵɵadvance();
69832
69868
  i0.ɵɵtextInterpolate1(" ", priority_r4.expectedImpact, " ");
69833
69869
  } }
69834
- function MetricExecutiveSummaryComponent_Conditional_24_For_5_Template(rf, ctx) { if (rf & 1) {
69870
+ function MetricExecutiveSummaryComponent_Conditional_25_For_5_Template(rf, ctx) { if (rf & 1) {
69835
69871
  const _r2 = i0.ɵɵgetCurrentView();
69836
69872
  i0.ɵɵelementStart(0, "button", 35);
69837
- i0.ɵɵlistener("click", function MetricExecutiveSummaryComponent_Conditional_24_For_5_Template_button_click_0_listener() { const ctx_r2 = i0.ɵɵrestoreView(_r2); const priority_r4 = ctx_r2.$implicit; const $index_r5 = ctx_r2.$index; const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.priorityDetailClick.emit({ priority: priority_r4, index: $index_r5 })); });
69873
+ i0.ɵɵlistener("click", function MetricExecutiveSummaryComponent_Conditional_25_For_5_Template_button_click_0_listener() { const ctx_r2 = i0.ɵɵrestoreView(_r2); const priority_r4 = ctx_r2.$implicit; const $index_r5 = ctx_r2.$index; const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.priorityDetailClick.emit({ priority: priority_r4, index: $index_r5 })); });
69838
69874
  i0.ɵɵelementStart(1, "div", 36)(2, "span", 37);
69839
69875
  i0.ɵɵtext(3);
69840
69876
  i0.ɵɵelementEnd();
@@ -69844,7 +69880,7 @@ function MetricExecutiveSummaryComponent_Conditional_24_For_5_Template(rf, ctx)
69844
69880
  i0.ɵɵelementStart(6, "p", 39);
69845
69881
  i0.ɵɵtext(7);
69846
69882
  i0.ɵɵelementEnd();
69847
- i0.ɵɵconditionalCreate(8, MetricExecutiveSummaryComponent_Conditional_24_For_5_Conditional_8_Template, 8, 8, "div", 40);
69883
+ i0.ɵɵconditionalCreate(8, MetricExecutiveSummaryComponent_Conditional_25_For_5_Conditional_8_Template, 8, 8, "div", 40);
69848
69884
  i0.ɵɵelementEnd();
69849
69885
  } if (rf & 2) {
69850
69886
  const priority_r4 = ctx.$implicit;
@@ -69866,12 +69902,12 @@ function MetricExecutiveSummaryComponent_Conditional_24_For_5_Template(rf, ctx)
69866
69902
  i0.ɵɵadvance();
69867
69903
  i0.ɵɵconditional(priority_r4.expectedImpact ? 8 : -1);
69868
69904
  } }
69869
- function MetricExecutiveSummaryComponent_Conditional_24_Template(rf, ctx) { if (rf & 1) {
69905
+ function MetricExecutiveSummaryComponent_Conditional_25_Template(rf, ctx) { if (rf & 1) {
69870
69906
  i0.ɵɵelementStart(0, "div", 17)(1, "h3", 32);
69871
69907
  i0.ɵɵtext(2, "Top Priorities");
69872
69908
  i0.ɵɵelementEnd();
69873
69909
  i0.ɵɵelementStart(3, "div", 33);
69874
- i0.ɵɵrepeaterCreate(4, MetricExecutiveSummaryComponent_Conditional_24_For_5_Template, 9, 8, "button", 34, i0.ɵɵrepeaterTrackByIndex);
69910
+ i0.ɵɵrepeaterCreate(4, MetricExecutiveSummaryComponent_Conditional_25_For_5_Template, 9, 8, "button", 34, i0.ɵɵrepeaterTrackByIndex);
69875
69911
  i0.ɵɵelementEnd()();
69876
69912
  } if (rf & 2) {
69877
69913
  const ctx_r0 = i0.ɵɵnextContext();
@@ -69880,7 +69916,7 @@ function MetricExecutiveSummaryComponent_Conditional_24_Template(rf, ctx) { if (
69880
69916
  i0.ɵɵadvance(3);
69881
69917
  i0.ɵɵrepeater(ctx_r0.summary().topPriorities);
69882
69918
  } }
69883
- function MetricExecutiveSummaryComponent_Conditional_25_For_5_Conditional_12_Template(rf, ctx) { if (rf & 1) {
69919
+ function MetricExecutiveSummaryComponent_Conditional_26_For_5_Conditional_12_Template(rf, ctx) { if (rf & 1) {
69884
69920
  i0.ɵɵelementStart(0, "div", 53);
69885
69921
  i0.ɵɵelement(1, "symphiq-icon", 15);
69886
69922
  i0.ɵɵelementStart(2, "span");
@@ -69895,7 +69931,7 @@ function MetricExecutiveSummaryComponent_Conditional_25_For_5_Conditional_12_Tem
69895
69931
  i0.ɵɵadvance(2);
69896
69932
  i0.ɵɵtextInterpolate(win_r6.estimatedTimeframe);
69897
69933
  } }
69898
- function MetricExecutiveSummaryComponent_Conditional_25_For_5_Conditional_13_Template(rf, ctx) { if (rf & 1) {
69934
+ function MetricExecutiveSummaryComponent_Conditional_26_For_5_Conditional_13_Template(rf, ctx) { if (rf & 1) {
69899
69935
  i0.ɵɵelementStart(0, "div", 54)(1, "h4", 21);
69900
69936
  i0.ɵɵtext(2, " Related Goal ");
69901
69937
  i0.ɵɵelementEnd();
@@ -69909,7 +69945,7 @@ function MetricExecutiveSummaryComponent_Conditional_25_For_5_Conditional_13_Tem
69909
69945
  i0.ɵɵadvance(2);
69910
69946
  i0.ɵɵproperty("relatedGoalIds", i0.ɵɵpureFunction1(4, _c9, win_r6.relatedGoalId))("allGoals", ctx_r0.allGoals() || i0.ɵɵpureFunction0(6, _c10))("viewMode", ctx_r0.viewMode());
69911
69947
  } }
69912
- function MetricExecutiveSummaryComponent_Conditional_25_For_5_Template(rf, ctx) { if (rf & 1) {
69948
+ function MetricExecutiveSummaryComponent_Conditional_26_For_5_Template(rf, ctx) { if (rf & 1) {
69913
69949
  i0.ɵɵelementStart(0, "div", 47)(1, "div", 48)(2, "div", 49)(3, "span", 37);
69914
69950
  i0.ɵɵtext(4);
69915
69951
  i0.ɵɵelementEnd();
@@ -69922,8 +69958,8 @@ function MetricExecutiveSummaryComponent_Conditional_25_For_5_Template(rf, ctx)
69922
69958
  i0.ɵɵelementStart(10, "span", 52);
69923
69959
  i0.ɵɵtext(11);
69924
69960
  i0.ɵɵelementEnd()();
69925
- i0.ɵɵconditionalCreate(12, MetricExecutiveSummaryComponent_Conditional_25_For_5_Conditional_12_Template, 4, 5, "div", 53);
69926
- i0.ɵɵconditionalCreate(13, MetricExecutiveSummaryComponent_Conditional_25_For_5_Conditional_13_Template, 4, 7, "div", 54);
69961
+ i0.ɵɵconditionalCreate(12, MetricExecutiveSummaryComponent_Conditional_26_For_5_Conditional_12_Template, 4, 5, "div", 53);
69962
+ i0.ɵɵconditionalCreate(13, MetricExecutiveSummaryComponent_Conditional_26_For_5_Conditional_13_Template, 4, 7, "div", 54);
69927
69963
  i0.ɵɵelementEnd()();
69928
69964
  } if (rf & 2) {
69929
69965
  const win_r6 = ctx.$implicit;
@@ -69951,12 +69987,12 @@ function MetricExecutiveSummaryComponent_Conditional_25_For_5_Template(rf, ctx)
69951
69987
  i0.ɵɵadvance();
69952
69988
  i0.ɵɵconditional(win_r6.relatedGoalId && ctx_r0.allGoals() ? 13 : -1);
69953
69989
  } }
69954
- function MetricExecutiveSummaryComponent_Conditional_25_Template(rf, ctx) { if (rf & 1) {
69990
+ function MetricExecutiveSummaryComponent_Conditional_26_Template(rf, ctx) { if (rf & 1) {
69955
69991
  i0.ɵɵelementStart(0, "div", 18)(1, "h3", 45);
69956
69992
  i0.ɵɵtext(2, "Quick Wins");
69957
69993
  i0.ɵɵelementEnd();
69958
69994
  i0.ɵɵelementStart(3, "div", 46);
69959
- i0.ɵɵrepeaterCreate(4, MetricExecutiveSummaryComponent_Conditional_25_For_5_Template, 14, 11, "div", 47, i0.ɵɵrepeaterTrackByIndex);
69995
+ i0.ɵɵrepeaterCreate(4, MetricExecutiveSummaryComponent_Conditional_26_For_5_Template, 14, 11, "div", 47, i0.ɵɵrepeaterTrackByIndex);
69960
69996
  i0.ɵɵelementEnd()();
69961
69997
  } if (rf & 2) {
69962
69998
  const ctx_r0 = i0.ɵɵnextContext();
@@ -69976,6 +70012,7 @@ class MetricExecutiveSummaryComponent {
69976
70012
  this.viewMetricDetailsClick = output();
69977
70013
  this.iconSource = IconSourceEnum.HEROICONS;
69978
70014
  this.isDark = computed(() => this.viewMode() === ViewModeEnum.DARK, ...(ngDevMode ? [{ debugName: "isDark" }] : []));
70015
+ this.projectedValue = computed(() => this.summary().projectedValue, ...(ngDevMode ? [{ debugName: "projectedValue" }] : []));
69979
70016
  this.bannerClasses = computed(() => this.isDark()
69980
70017
  ? 'bg-gradient-to-br from-slate-800/50 to-slate-800/30 border border-slate-700/50'
69981
70018
  : 'bg-gradient-to-br from-white to-slate-50/50 border border-slate-200', ...(ngDevMode ? [{ debugName: "bannerClasses" }] : []));
@@ -70065,7 +70102,9 @@ class MetricExecutiveSummaryComponent {
70065
70102
  }
70066
70103
  handleViewMetricDetailsClick() {
70067
70104
  console.log('[MetricExecutiveSummary] View Metric Details button clicked!');
70105
+ console.log('[MetricExecutiveSummary] viewMetricDetailsClick output exists:', !!this.viewMetricDetailsClick);
70068
70106
  this.viewMetricDetailsClick.emit();
70107
+ console.log('[MetricExecutiveSummary] Event emitted');
70069
70108
  }
70070
70109
  getYoyIcon() {
70071
70110
  const change = this.summary().yoyChange;
@@ -70158,7 +70197,7 @@ class MetricExecutiveSummaryComponent {
70158
70197
  return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();
70159
70198
  }
70160
70199
  static { this.ɵfac = function MetricExecutiveSummaryComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MetricExecutiveSummaryComponent)(); }; }
70161
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MetricExecutiveSummaryComponent, selectors: [["symphiq-metric-executive-summary"]], inputs: { viewMode: [1, "viewMode"], summary: [1, "summary"], metricName: [1, "metricName"], allGoals: [1, "allGoals"] }, outputs: { topPrioritiesClick: "topPrioritiesClick", priorityDetailClick: "priorityDetailClick", viewMetricDetailsClick: "viewMetricDetailsClick" }, decls: 26, vars: 22, consts: [["id", "section-metric-executive-summary", 1, "space-y-6", "scroll-mt-24"], [1, "rounded-2xl", "p-8", "shadow-xl", 3, "ngClass"], [1, "space-y-6"], [1, "flex", "items-start", "justify-between", "gap-4"], [1, "flex-1"], [1, "flex", "items-center", "gap-3", "mb-3"], [3, "icon", "size", "ngClass"], [1, "text-3xl", "font-bold", 3, "ngClass"], [1, "text-lg", "leading-relaxed", 3, "ngClass"], [3, "grade", "gradeRationale", "viewMode"], ["type", "button", 1, "w-full", "text-left", "cursor-pointer", "group", 3, "click"], [1, "grid", "grid-cols-1", "md:grid-cols-2", "lg:grid-cols-4", "gap-4"], [1, "rounded-xl", "p-4", "transition-all", "duration-200", "group-hover:scale-[1.02]", "group-hover:shadow-lg", 3, "ngClass"], [1, "flex", "items-center", "justify-center", "mt-4"], [1, "inline-flex", "items-center", "gap-2", "px-4", "py-2", "rounded-lg", "text-sm", "font-semibold", "transition-all", "duration-200", "group-hover:scale-105", 3, "ngClass"], ["size", "w-4 h-4", 3, "icon"], [1, "rounded-xl", "p-6", "mt-6", 3, "ngClass"], [1, "mt-6"], ["id", "quick-wins-section", 1, "mt-8", "scroll-mt-24"], [1, "flex", "items-center", "gap-2", "mb-2"], ["size", "w-4 h-4", 3, "icon", "ngClass"], [1, "text-xs", "font-semibold", "uppercase", "tracking-wider", 3, "ngClass"], [1, "text-2xl", "font-bold", 3, "ngClass"], [1, "flex", "items-center", "gap-1", "mt-2"], [1, "text-sm", "font-medium", 3, "ngClass"], [1, "text-xl", "font-bold", 3, "ngClass"], [1, "text-lg", "font-semibold", "mb-3", 3, "ngClass"], [1, "relative"], [1, "mb-6", "lg:float-left", "lg:mr-6", "lg:mb-4", "lg:max-w-[66%]"], [1, "text-sm", "leading-relaxed", "whitespace-pre-line", 3, "ngClass"], [1, "clear-both"], [3, "visual", "viewMode"], [1, "text-xl", "font-bold", "mb-4", 3, "ngClass"], [1, "grid", "grid-cols-1", "md:grid-cols-2", "gap-4"], ["type", "button", 1, "rounded-xl", "p-6", "text-left", "transition-all", "duration-200", "hover:scale-[1.02]", "active:scale-[0.98]", "cursor-pointer", 3, "ngClass"], ["type", "button", 1, "rounded-xl", "p-6", "text-left", "transition-all", "duration-200", "hover:scale-[1.02]", "active:scale-[0.98]", "cursor-pointer", 3, "click", "ngClass"], [1, "flex", "items-start", "gap-3", "mb-3"], [1, "flex-shrink-0", "w-8", "h-8", "rounded-full", "flex", "items-center", "justify-center", "text-sm", "font-bold", 3, "ngClass"], [1, "text-lg", "font-semibold", "flex-1", 3, "ngClass"], [1, "text-sm", "leading-relaxed", "mb-3", 3, "ngClass"], [1, "rounded-lg", "p-3", 3, "ngClass"], [1, "flex", "items-start", "gap-2"], ["size", "w-4 h-4", 1, "mt-0.5", 3, "icon", "ngClass"], [1, "text-xs", "font-semibold", "uppercase", "tracking-wider", "block", "mb-1", 3, "ngClass"], [1, "text-xs", "leading-relaxed", 3, "ngClass"], [1, "text-xl", "font-bold", "mb-6", 3, "ngClass"], [1, "grid", "grid-cols-1", "md:grid-cols-2", "gap-6"], [1, "rounded-xl", "p-6", "transition-all", "duration-300", 3, "ngClass"], [1, "space-y-4"], [1, "flex", "items-start", "gap-3"], [1, "font-semibold", "leading-tight", "flex-1", 3, "ngClass"], [1, "flex", "flex-wrap", "gap-2"], [1, "px-3", "py-1", "rounded-full", "text-xs", "font-semibold", 3, "ngClass"], [1, "flex", "items-center", "gap-2", "text-sm", 3, "ngClass"], [1, "space-y-2"], [3, "relatedGoalIds", "allGoals", "viewMode"]], template: function MetricExecutiveSummaryComponent_Template(rf, ctx) { if (rf & 1) {
70200
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MetricExecutiveSummaryComponent, selectors: [["symphiq-metric-executive-summary"]], inputs: { viewMode: [1, "viewMode"], summary: [1, "summary"], metricName: [1, "metricName"], allGoals: [1, "allGoals"] }, outputs: { topPrioritiesClick: "topPrioritiesClick", priorityDetailClick: "priorityDetailClick", viewMetricDetailsClick: "viewMetricDetailsClick" }, decls: 27, vars: 23, consts: [["id", "section-metric-executive-summary", 1, "space-y-6", "scroll-mt-24"], [1, "rounded-2xl", "p-8", "shadow-xl", 3, "ngClass"], [1, "space-y-6"], [1, "flex", "items-start", "justify-between", "gap-4"], [1, "flex-1"], [1, "flex", "items-center", "gap-3", "mb-3"], [3, "icon", "size", "ngClass"], [1, "text-3xl", "font-bold", 3, "ngClass"], [1, "text-lg", "leading-relaxed", 3, "ngClass"], [3, "grade", "gradeRationale", "viewMode"], ["type", "button", 1, "w-full", "text-left", "cursor-pointer", "group", 3, "click"], [1, "grid", "grid-cols-1", "md:grid-cols-2", "lg:grid-cols-4", "gap-4"], [1, "rounded-xl", "p-4", "transition-all", "duration-200", "group-hover:scale-[1.02]", "group-hover:shadow-lg", 3, "ngClass"], [1, "flex", "items-center", "justify-center", "mt-4"], [1, "inline-flex", "items-center", "gap-2", "px-4", "py-2", "rounded-lg", "text-sm", "font-semibold", "transition-all", "duration-200", "group-hover:scale-105", 3, "ngClass"], ["size", "w-4 h-4", 3, "icon"], [1, "rounded-xl", "p-6", "mt-6", 3, "ngClass"], [1, "mt-6"], ["id", "quick-wins-section", 1, "mt-8", "scroll-mt-24"], [1, "flex", "items-center", "gap-2", "mb-2"], ["size", "w-4 h-4", 3, "icon", "ngClass"], [1, "text-xs", "font-semibold", "uppercase", "tracking-wider", 3, "ngClass"], [1, "text-2xl", "font-bold", 3, "ngClass"], [1, "flex", "items-center", "gap-1", "mt-2"], [1, "text-sm", "font-medium", 3, "ngClass"], [1, "text-xl", "font-bold", 3, "ngClass"], [1, "text-lg", "font-semibold", "mb-3", 3, "ngClass"], [1, "relative"], [1, "mb-6", "lg:float-left", "lg:mr-6", "lg:mb-4", "lg:max-w-[66%]"], [1, "text-sm", "leading-relaxed", "whitespace-pre-line", 3, "ngClass"], [1, "clear-both"], [3, "visual", "viewMode"], [1, "text-xl", "font-bold", "mb-4", 3, "ngClass"], [1, "grid", "grid-cols-1", "md:grid-cols-2", "gap-4"], ["type", "button", 1, "rounded-xl", "p-6", "text-left", "transition-all", "duration-200", "hover:scale-[1.02]", "active:scale-[0.98]", "cursor-pointer", 3, "ngClass"], ["type", "button", 1, "rounded-xl", "p-6", "text-left", "transition-all", "duration-200", "hover:scale-[1.02]", "active:scale-[0.98]", "cursor-pointer", 3, "click", "ngClass"], [1, "flex", "items-start", "gap-3", "mb-3"], [1, "flex-shrink-0", "w-8", "h-8", "rounded-full", "flex", "items-center", "justify-center", "text-sm", "font-bold", 3, "ngClass"], [1, "text-lg", "font-semibold", "flex-1", 3, "ngClass"], [1, "text-sm", "leading-relaxed", "mb-3", 3, "ngClass"], [1, "rounded-lg", "p-3", 3, "ngClass"], [1, "flex", "items-start", "gap-2"], ["size", "w-4 h-4", 1, "mt-0.5", 3, "icon", "ngClass"], [1, "text-xs", "font-semibold", "uppercase", "tracking-wider", "block", "mb-1", 3, "ngClass"], [1, "text-xs", "leading-relaxed", 3, "ngClass"], [1, "text-xl", "font-bold", "mb-6", 3, "ngClass"], [1, "grid", "grid-cols-1", "md:grid-cols-2", "gap-6"], [1, "rounded-xl", "p-6", "transition-all", "duration-300", 3, "ngClass"], [1, "space-y-4"], [1, "flex", "items-start", "gap-3"], [1, "font-semibold", "leading-tight", "flex-1", 3, "ngClass"], [1, "flex", "flex-wrap", "gap-2"], [1, "px-3", "py-1", "rounded-full", "text-xs", "font-semibold", 3, "ngClass"], [1, "flex", "items-center", "gap-2", "text-sm", 3, "ngClass"], [1, "space-y-2"], [3, "relatedGoalIds", "allGoals", "viewMode"]], template: function MetricExecutiveSummaryComponent_Template(rf, ctx) { if (rf & 1) {
70162
70201
  i0.ɵɵelementStart(0, "section", 0)(1, "div", 1)(2, "div", 2)(3, "div", 3)(4, "div", 4)(5, "div", 5);
70163
70202
  i0.ɵɵelement(6, "symphiq-icon", 6);
70164
70203
  i0.ɵɵelementStart(7, "h2", 7);
@@ -70176,23 +70215,24 @@ class MetricExecutiveSummaryComponent {
70176
70215
  i0.ɵɵconditionalCreate(15, MetricExecutiveSummaryComponent_Conditional_15_Template, 7, 8, "div", 12);
70177
70216
  i0.ɵɵconditionalCreate(16, MetricExecutiveSummaryComponent_Conditional_16_Template, 7, 8, "div", 12);
70178
70217
  i0.ɵɵconditionalCreate(17, MetricExecutiveSummaryComponent_Conditional_17_Template, 7, 8, "div", 12);
70218
+ i0.ɵɵconditionalCreate(18, MetricExecutiveSummaryComponent_Conditional_18_Template, 7, 8, "div", 12);
70179
70219
  i0.ɵɵelementEnd();
70180
- i0.ɵɵelementStart(18, "div", 13)(19, "div", 14)(20, "span");
70181
- i0.ɵɵtext(21, "View Metric Details");
70220
+ i0.ɵɵelementStart(19, "div", 13)(20, "div", 14)(21, "span");
70221
+ i0.ɵɵtext(22, "View Metric Details");
70182
70222
  i0.ɵɵelementEnd();
70183
- i0.ɵɵelement(22, "symphiq-icon", 15);
70223
+ i0.ɵɵelement(23, "symphiq-icon", 15);
70184
70224
  i0.ɵɵelementEnd()()();
70185
- i0.ɵɵconditionalCreate(23, MetricExecutiveSummaryComponent_Conditional_23_Template, 8, 5, "div", 16);
70186
- i0.ɵɵconditionalCreate(24, MetricExecutiveSummaryComponent_Conditional_24_Template, 6, 1, "div", 17);
70187
- i0.ɵɵconditionalCreate(25, MetricExecutiveSummaryComponent_Conditional_25_Template, 6, 1, "div", 18);
70225
+ i0.ɵɵconditionalCreate(24, MetricExecutiveSummaryComponent_Conditional_24_Template, 8, 5, "div", 16);
70226
+ i0.ɵɵconditionalCreate(25, MetricExecutiveSummaryComponent_Conditional_25_Template, 6, 1, "div", 17);
70227
+ i0.ɵɵconditionalCreate(26, MetricExecutiveSummaryComponent_Conditional_26_Template, 6, 1, "div", 18);
70188
70228
  i0.ɵɵelementEnd()()();
70189
70229
  } if (rf & 2) {
70190
- let tmp_16_0;
70191
70230
  let tmp_17_0;
70231
+ let tmp_18_0;
70192
70232
  i0.ɵɵadvance();
70193
70233
  i0.ɵɵproperty("ngClass", ctx.bannerClasses());
70194
70234
  i0.ɵɵadvance(5);
70195
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(18, _c0$u, ctx.iconSource))("size", "w-8 h-8")("ngClass", ctx.iconClasses());
70235
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(19, _c0$u, ctx.iconSource))("size", "w-8 h-8")("ngClass", ctx.iconClasses());
70196
70236
  i0.ɵɵadvance();
70197
70237
  i0.ɵɵproperty("ngClass", ctx.titleClasses());
70198
70238
  i0.ɵɵadvance();
@@ -70208,19 +70248,21 @@ class MetricExecutiveSummaryComponent {
70208
70248
  i0.ɵɵadvance();
70209
70249
  i0.ɵɵconditional(ctx.summary().targetValue ? 15 : -1);
70210
70250
  i0.ɵɵadvance();
70211
- i0.ɵɵconditional(ctx.summary().pacingStatus ? 16 : -1);
70251
+ i0.ɵɵconditional(ctx.projectedValue() ? 16 : -1);
70212
70252
  i0.ɵɵadvance();
70213
- i0.ɵɵconditional(ctx.summary().metricHealth ? 17 : -1);
70253
+ i0.ɵɵconditional(ctx.summary().pacingStatus ? 17 : -1);
70254
+ i0.ɵɵadvance();
70255
+ i0.ɵɵconditional(ctx.summary().metricHealth ? 18 : -1);
70214
70256
  i0.ɵɵadvance(2);
70215
70257
  i0.ɵɵproperty("ngClass", ctx.viewDetailsButtonClasses());
70216
70258
  i0.ɵɵadvance(3);
70217
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(20, _c1$d, ctx.iconSource));
70259
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(21, _c1$d, ctx.iconSource));
70218
70260
  i0.ɵɵadvance();
70219
- i0.ɵɵconditional(ctx.summary().narrative ? 23 : -1);
70261
+ i0.ɵɵconditional(ctx.summary().narrative ? 24 : -1);
70220
70262
  i0.ɵɵadvance();
70221
- i0.ɵɵconditional(ctx.summary().topPriorities && (((tmp_16_0 = ctx.summary().topPriorities) == null ? null : tmp_16_0.length) ?? 0) > 0 ? 24 : -1);
70263
+ i0.ɵɵconditional(ctx.summary().topPriorities && (((tmp_17_0 = ctx.summary().topPriorities) == null ? null : tmp_17_0.length) ?? 0) > 0 ? 25 : -1);
70222
70264
  i0.ɵɵadvance();
70223
- i0.ɵɵconditional(ctx.summary().quickWins && (((tmp_17_0 = ctx.summary().quickWins) == null ? null : tmp_17_0.length) ?? 0) > 0 ? 25 : -1);
70265
+ i0.ɵɵconditional(ctx.summary().quickWins && (((tmp_18_0 = ctx.summary().quickWins) == null ? null : tmp_18_0.length) ?? 0) > 0 ? 26 : -1);
70224
70266
  } }, dependencies: [CommonModule, i1$1.NgClass, GradeBadgeComponent,
70225
70267
  SymphiqIconComponent,
70226
70268
  NapkinVisualPlaceholderComponent,
@@ -70328,6 +70370,25 @@ class MetricExecutiveSummaryComponent {
70328
70370
  </div>
70329
70371
  }
70330
70372
 
70373
+ <!-- Projected Value -->
70374
+ @if (projectedValue()) {
70375
+ <div [ngClass]="metricCardClasses()" class="rounded-xl p-4 transition-all duration-200 group-hover:scale-[1.02] group-hover:shadow-lg">
70376
+ <div class="flex items-center gap-2 mb-2">
70377
+ <symphiq-icon
70378
+ [icon]="{ name: 'chart-bar', source: iconSource }"
70379
+ size="w-4 h-4"
70380
+ [ngClass]="metricLabelClasses()"
70381
+ />
70382
+ <span [ngClass]="metricLabelClasses()" class="text-xs font-semibold uppercase tracking-wider">
70383
+ Projected
70384
+ </span>
70385
+ </div>
70386
+ <div [ngClass]="metricValueClasses()" class="text-2xl font-bold">
70387
+ {{ projectedValue() }}
70388
+ </div>
70389
+ </div>
70390
+ }
70391
+
70331
70392
  <!-- Pacing Status -->
70332
70393
  @if (summary().pacingStatus) {
70333
70394
  <div [ngClass]="metricCardClasses()" class="rounded-xl p-4 transition-all duration-200 group-hover:scale-[1.02] group-hover:shadow-lg">
@@ -70515,7 +70576,7 @@ class MetricExecutiveSummaryComponent {
70515
70576
  `
70516
70577
  }]
70517
70578
  }], null, { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], summary: [{ type: i0.Input, args: [{ isSignal: true, alias: "summary", required: true }] }], metricName: [{ type: i0.Input, args: [{ isSignal: true, alias: "metricName", required: false }] }], allGoals: [{ type: i0.Input, args: [{ isSignal: true, alias: "allGoals", required: false }] }], topPrioritiesClick: [{ type: i0.Output, args: ["topPrioritiesClick"] }], priorityDetailClick: [{ type: i0.Output, args: ["priorityDetailClick"] }], viewMetricDetailsClick: [{ type: i0.Output, args: ["viewMetricDetailsClick"] }] }); })();
70518
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MetricExecutiveSummaryComponent, { className: "MetricExecutiveSummaryComponent", filePath: "lib/components/profile-analysis-shop-dashboard/metric-executive-summary.component.ts", lineNumber: 295 }); })();
70579
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MetricExecutiveSummaryComponent, { className: "MetricExecutiveSummaryComponent", filePath: "lib/components/profile-analysis-shop-dashboard/metric-executive-summary.component.ts", lineNumber: 314 }); })();
70519
70580
 
70520
70581
  const _c0$t = a0 => ({ name: "chevron-right", source: a0 });
70521
70582
  function GoalCardComponent_Conditional_13_Template(rf, ctx) { if (rf & 1) {
@@ -74915,6 +74976,28 @@ const _c0$l = (a0, a1) => ({ name: a0, source: a1 });
74915
74976
  const _c1$9 = a0 => ({ name: "signal", source: a0 });
74916
74977
  const _c2$9 = a0 => ({ name: "calendar", source: a0 });
74917
74978
  const _c3$5 = a0 => ({ name: "flag", source: a0 });
74979
+ const _c4$3 = a0 => ({ name: "chart-bar", source: a0 });
74980
+ function PerformanceMetricsCardComponent_Conditional_32_Template(rf, ctx) { if (rf & 1) {
74981
+ i0.ɵɵelementStart(0, "div", 8)(1, "div", 9);
74982
+ i0.ɵɵelement(2, "symphiq-icon", 10);
74983
+ i0.ɵɵelementStart(3, "span", 11);
74984
+ i0.ɵɵtext(4, " Projected ");
74985
+ i0.ɵɵelementEnd()();
74986
+ i0.ɵɵelementStart(5, "div", 12);
74987
+ i0.ɵɵtext(6);
74988
+ i0.ɵɵelementEnd()();
74989
+ } if (rf & 2) {
74990
+ const ctx_r0 = i0.ɵɵnextContext();
74991
+ i0.ɵɵproperty("ngClass", ctx_r0.metricBoxClasses());
74992
+ i0.ɵɵadvance(2);
74993
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(6, _c4$3, ctx_r0.iconSource))("ngClass", ctx_r0.labelClasses());
74994
+ i0.ɵɵadvance();
74995
+ i0.ɵɵproperty("ngClass", ctx_r0.labelClasses());
74996
+ i0.ɵɵadvance(2);
74997
+ i0.ɵɵproperty("ngClass", ctx_r0.valueClasses());
74998
+ i0.ɵɵadvance();
74999
+ i0.ɵɵtextInterpolate1(" ", ctx_r0.metrics().projectedValue, " ");
75000
+ } }
74918
75001
  class PerformanceMetricsCardComponent {
74919
75002
  constructor() {
74920
75003
  this.metrics = signal({
@@ -74923,7 +75006,8 @@ class PerformanceMetricsCardComponent {
74923
75006
  targetValue: '0',
74924
75007
  pacingStatus: PacingStatusEnum.ON_TRACK,
74925
75008
  percentToTarget: '0%',
74926
- trendDirection: ProfileAnalysisTrendDirectionEnum.STABLE
75009
+ trendDirection: ProfileAnalysisTrendDirectionEnum.STABLE,
75010
+ projectedValue: undefined
74927
75011
  }, ...(ngDevMode ? [{ debugName: "metrics" }] : []));
74928
75012
  this.viewMode = signal(ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "viewMode" }] : []));
74929
75013
  this.iconSource = IconSourceEnum.HEROICONS;
@@ -75058,13 +75142,15 @@ class PerformanceMetricsCardComponent {
75058
75142
  effect(() => {
75059
75143
  const val = this.performanceMetrics();
75060
75144
  if (val) {
75145
+ const valWithProjected = val;
75061
75146
  this.metrics.set({
75062
75147
  currentValue: val.currentValue ?? '0',
75063
75148
  previousYearValue: val.previousYearValue ?? '0',
75064
75149
  targetValue: val.targetValue ?? '0',
75065
75150
  pacingStatus: val.pacingStatus ?? PacingStatusEnum.ON_TRACK,
75066
75151
  percentToTarget: val.percentToTarget ?? '0%',
75067
- trendDirection: val.trendDirection ?? ProfileAnalysisTrendDirectionEnum.STABLE
75152
+ trendDirection: val.trendDirection ?? ProfileAnalysisTrendDirectionEnum.STABLE,
75153
+ projectedValue: valWithProjected.projectedValue
75068
75154
  });
75069
75155
  }
75070
75156
  });
@@ -75073,7 +75159,7 @@ class PerformanceMetricsCardComponent {
75073
75159
  });
75074
75160
  }
75075
75161
  static { this.ɵfac = function PerformanceMetricsCardComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PerformanceMetricsCardComponent)(); }; }
75076
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PerformanceMetricsCardComponent, selectors: [["symphiq-performance-metrics-card"]], inputs: { performanceMetrics: [1, "performanceMetrics"], mode: [1, "mode"] }, decls: 40, vars: 41, consts: [[1, "rounded-xl", "p-6", "shadow-lg", 3, "ngClass"], [1, "flex", "items-center", "justify-between", "mb-6"], [1, "text-lg", "font-bold", 3, "ngClass"], [1, "flex", "items-center", "gap-2"], [1, "px-3", "py-1", "rounded-full", "text-xs", "font-bold", "uppercase", "tracking-wider", 3, "ngClass"], [1, "px-3", "py-1", "rounded-full", "text-xs", "font-bold", "uppercase", "tracking-wider", "flex", "items-center", "gap-1", 3, "ngClass"], ["size", "w-3 h-3", 3, "icon"], [1, "grid", "grid-cols-1", "md:grid-cols-3", "gap-4"], [1, "rounded-lg", "p-4", 3, "ngClass"], [1, "flex", "items-center", "gap-2", "mb-2"], ["size", "w-4 h-4", 3, "icon", "ngClass"], [1, "text-xs", "font-semibold", "uppercase", "tracking-wider", 3, "ngClass"], [1, "text-2xl", "font-bold", 3, "ngClass"], [1, "mt-6"], [1, "flex", "items-center", "justify-between", "mb-2"], [1, "text-sm", "font-semibold", 3, "ngClass"], [1, "w-full", "h-3", "rounded-full", "overflow-hidden", 3, "ngClass"], [1, "h-full", "rounded-full", "transition-all", "duration-500", 3, "ngClass"]], template: function PerformanceMetricsCardComponent_Template(rf, ctx) { if (rf & 1) {
75162
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PerformanceMetricsCardComponent, selectors: [["symphiq-performance-metrics-card"]], inputs: { performanceMetrics: [1, "performanceMetrics"], mode: [1, "mode"] }, decls: 41, vars: 42, consts: [[1, "rounded-xl", "p-6", "shadow-lg", 3, "ngClass"], [1, "flex", "items-center", "justify-between", "mb-6"], [1, "text-lg", "font-bold", 3, "ngClass"], [1, "flex", "items-center", "gap-2"], [1, "px-3", "py-1", "rounded-full", "text-xs", "font-bold", "uppercase", "tracking-wider", 3, "ngClass"], [1, "px-3", "py-1", "rounded-full", "text-xs", "font-bold", "uppercase", "tracking-wider", "flex", "items-center", "gap-1", 3, "ngClass"], ["size", "w-3 h-3", 3, "icon"], [1, "grid", "grid-cols-1", "md:grid-cols-2", "lg:grid-cols-4", "gap-4"], [1, "rounded-lg", "p-4", 3, "ngClass"], [1, "flex", "items-center", "gap-2", "mb-2"], ["size", "w-4 h-4", 3, "icon", "ngClass"], [1, "text-xs", "font-semibold", "uppercase", "tracking-wider", 3, "ngClass"], [1, "text-2xl", "font-bold", 3, "ngClass"], [1, "mt-6"], [1, "flex", "items-center", "justify-between", "mb-2"], [1, "text-sm", "font-semibold", 3, "ngClass"], [1, "w-full", "h-3", "rounded-full", "overflow-hidden", 3, "ngClass"], [1, "h-full", "rounded-full", "transition-all", "duration-500", 3, "ngClass"]], template: function PerformanceMetricsCardComponent_Template(rf, ctx) { if (rf & 1) {
75077
75163
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "h3", 2);
75078
75164
  i0.ɵɵtext(3, " Performance Metrics ");
75079
75165
  i0.ɵɵelementEnd();
@@ -75107,15 +75193,17 @@ class PerformanceMetricsCardComponent {
75107
75193
  i0.ɵɵelementEnd()();
75108
75194
  i0.ɵɵelementStart(30, "div", 12);
75109
75195
  i0.ɵɵtext(31);
75110
- i0.ɵɵelementEnd()()();
75111
- i0.ɵɵelementStart(32, "div", 13)(33, "div", 14)(34, "span", 15);
75112
- i0.ɵɵtext(35, " Progress to Target ");
75196
+ i0.ɵɵelementEnd()();
75197
+ i0.ɵɵconditionalCreate(32, PerformanceMetricsCardComponent_Conditional_32_Template, 7, 8, "div", 8);
75113
75198
  i0.ɵɵelementEnd();
75114
- i0.ɵɵelementStart(36, "span", 2);
75115
- i0.ɵɵtext(37);
75199
+ i0.ɵɵelementStart(33, "div", 13)(34, "div", 14)(35, "span", 15);
75200
+ i0.ɵɵtext(36, " Progress to Target ");
75201
+ i0.ɵɵelementEnd();
75202
+ i0.ɵɵelementStart(37, "span", 2);
75203
+ i0.ɵɵtext(38);
75116
75204
  i0.ɵɵelementEnd()();
75117
- i0.ɵɵelementStart(38, "div", 16);
75118
- i0.ɵɵelement(39, "div", 17);
75205
+ i0.ɵɵelementStart(39, "div", 16);
75206
+ i0.ɵɵelement(40, "div", 17);
75119
75207
  i0.ɵɵelementEnd()()();
75120
75208
  } if (rf & 2) {
75121
75209
  i0.ɵɵproperty("ngClass", ctx.cardClasses());
@@ -75128,13 +75216,13 @@ class PerformanceMetricsCardComponent {
75128
75216
  i0.ɵɵadvance();
75129
75217
  i0.ɵɵproperty("ngClass", ctx.trendBadgeClasses());
75130
75218
  i0.ɵɵadvance();
75131
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction2(32, _c0$l, ctx.trendIcon(), ctx.iconSource));
75219
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction2(33, _c0$l, ctx.trendIcon(), ctx.iconSource));
75132
75220
  i0.ɵɵadvance();
75133
75221
  i0.ɵɵtextInterpolate1(" ", ctx.metrics().trendDirection, " ");
75134
75222
  i0.ɵɵadvance(2);
75135
75223
  i0.ɵɵproperty("ngClass", ctx.metricBoxClasses());
75136
75224
  i0.ɵɵadvance(2);
75137
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(35, _c1$9, ctx.iconSource))("ngClass", ctx.labelClasses());
75225
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(36, _c1$9, ctx.iconSource))("ngClass", ctx.labelClasses());
75138
75226
  i0.ɵɵadvance();
75139
75227
  i0.ɵɵproperty("ngClass", ctx.labelClasses());
75140
75228
  i0.ɵɵadvance(2);
@@ -75144,7 +75232,7 @@ class PerformanceMetricsCardComponent {
75144
75232
  i0.ɵɵadvance();
75145
75233
  i0.ɵɵproperty("ngClass", ctx.metricBoxClasses());
75146
75234
  i0.ɵɵadvance(2);
75147
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(37, _c2$9, ctx.iconSource))("ngClass", ctx.labelClasses());
75235
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(38, _c2$9, ctx.iconSource))("ngClass", ctx.labelClasses());
75148
75236
  i0.ɵɵadvance();
75149
75237
  i0.ɵɵproperty("ngClass", ctx.labelClasses());
75150
75238
  i0.ɵɵadvance(2);
@@ -75154,13 +75242,15 @@ class PerformanceMetricsCardComponent {
75154
75242
  i0.ɵɵadvance();
75155
75243
  i0.ɵɵproperty("ngClass", ctx.metricBoxClasses());
75156
75244
  i0.ɵɵadvance(2);
75157
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(39, _c3$5, ctx.iconSource))("ngClass", ctx.labelClasses());
75245
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(40, _c3$5, ctx.iconSource))("ngClass", ctx.labelClasses());
75158
75246
  i0.ɵɵadvance();
75159
75247
  i0.ɵɵproperty("ngClass", ctx.labelClasses());
75160
75248
  i0.ɵɵadvance(2);
75161
75249
  i0.ɵɵproperty("ngClass", ctx.valueClasses());
75162
75250
  i0.ɵɵadvance();
75163
75251
  i0.ɵɵtextInterpolate1(" ", ctx.metrics().targetValue, " ");
75252
+ i0.ɵɵadvance();
75253
+ i0.ɵɵconditional(ctx.metrics().projectedValue ? 32 : -1);
75164
75254
  i0.ɵɵadvance(3);
75165
75255
  i0.ɵɵproperty("ngClass", ctx.labelClasses());
75166
75256
  i0.ɵɵadvance(2);
@@ -75200,7 +75290,7 @@ class PerformanceMetricsCardComponent {
75200
75290
  </div>
75201
75291
 
75202
75292
  <!-- Metrics Grid -->
75203
- <div class="grid grid-cols-1 md:grid-cols-3 gap-4">
75293
+ <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4">
75204
75294
  <!-- Current Value -->
75205
75295
  <div [ngClass]="metricBoxClasses()" class="rounded-lg p-4">
75206
75296
  <div class="flex items-center gap-2 mb-2">
@@ -75251,6 +75341,25 @@ class PerformanceMetricsCardComponent {
75251
75341
  {{ metrics().targetValue }}
75252
75342
  </div>
75253
75343
  </div>
75344
+
75345
+ <!-- Projected Value -->
75346
+ @if (metrics().projectedValue) {
75347
+ <div [ngClass]="metricBoxClasses()" class="rounded-lg p-4">
75348
+ <div class="flex items-center gap-2 mb-2">
75349
+ <symphiq-icon
75350
+ [icon]="{ name: 'chart-bar', source: iconSource }"
75351
+ size="w-4 h-4"
75352
+ [ngClass]="labelClasses()"
75353
+ />
75354
+ <span [ngClass]="labelClasses()" class="text-xs font-semibold uppercase tracking-wider">
75355
+ Projected
75356
+ </span>
75357
+ </div>
75358
+ <div [ngClass]="valueClasses()" class="text-2xl font-bold">
75359
+ {{ metrics().projectedValue }}
75360
+ </div>
75361
+ </div>
75362
+ }
75254
75363
  </div>
75255
75364
 
75256
75365
  <!-- Progress to Target -->
@@ -75274,7 +75383,7 @@ class PerformanceMetricsCardComponent {
75274
75383
  </div>
75275
75384
  `, styles: ["@keyframes pulse-glow{0%,to{box-shadow:0 0 #ef4444b3}50%{box-shadow:0 0 0 8px #ef444400}}.pulse-critical{animation:pulse-glow 2s infinite}@keyframes badge-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}.badge-pulse{animation:badge-pulse 2s infinite}\n"] }]
75276
75385
  }], () => [], { performanceMetrics: [{ type: i0.Input, args: [{ isSignal: true, alias: "performanceMetrics", required: false }] }], mode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mode", required: false }] }] }); })();
75277
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PerformanceMetricsCardComponent, { className: "PerformanceMetricsCardComponent", filePath: "lib/components/profile-analysis-shop-dashboard/cards/performance-metrics-card.component.ts", lineNumber: 138 }); })();
75386
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PerformanceMetricsCardComponent, { className: "PerformanceMetricsCardComponent", filePath: "lib/components/profile-analysis-shop-dashboard/cards/performance-metrics-card.component.ts", lineNumber: 157 }); })();
75278
75387
 
75279
75388
  const _c0$k = a0 => ({ name: "funnel", source: a0 });
75280
75389
  const _c1$8 = a0 => ({ name: "chart-bar-square", source: a0 });
@@ -100364,25 +100473,36 @@ class SymphiqProfileAnalysisMetricDashboardComponent {
100364
100473
  chartsForMetric(metric) {
100365
100474
  const metricId = metric.performanceItemId;
100366
100475
  const metricName = metric.metric;
100367
- if (!metricId && !metricName)
100476
+ console.log('[chartsForMetric] Called with metric:', metricName, 'performanceItemId:', metricId);
100477
+ if (!metricId && !metricName) {
100478
+ console.log('[chartsForMetric] No metricId or metricName, returning empty');
100368
100479
  return [];
100480
+ }
100369
100481
  const allCharts = this.allCharts();
100482
+ console.log('[chartsForMetric] Total allCharts:', allCharts.length);
100483
+ console.log('[chartsForMetric] Chart performanceItemIds:', allCharts.map(c => c.performanceItemId));
100370
100484
  const matchingCharts = [];
100485
+ const metricNameLower = metricName?.toLowerCase() || '';
100486
+ const metricNameNormalized = metricNameLower.replace(/\s+/g, '_');
100487
+ console.log('[chartsForMetric] metricNameNormalized:', metricNameNormalized);
100371
100488
  for (const chart of allCharts) {
100372
100489
  const chartId = chart.performanceItemId || '';
100373
100490
  const chartIdLower = chartId.toLowerCase();
100374
- const metricNameLower = metricName?.toLowerCase() || '';
100375
100491
  if (metricId) {
100376
100492
  const prefix = metricId + '_';
100377
100493
  if (chartId === metricId || chartId.startsWith(prefix)) {
100494
+ console.log('[chartsForMetric] Matched by metricId:', chartId);
100378
100495
  matchingCharts.push(chart);
100379
100496
  continue;
100380
100497
  }
100381
100498
  }
100382
- if (metricName && chartIdLower.includes(metricNameLower.replace(/_/g, ' ').replace(/ /g, '_'))) {
100499
+ if (metricName && chartIdLower.includes(metricNameNormalized)) {
100500
+ console.log('[chartsForMetric] Matched by name:', chartId, 'contains', metricNameNormalized);
100383
100501
  matchingCharts.push(chart);
100384
100502
  }
100385
100503
  }
100504
+ console.log('[chartsForMetric] Matching charts count:', matchingCharts.length);
100505
+ console.log('[chartsForMetric] Matching chart IDs:', matchingCharts.map(c => c.performanceItemId));
100386
100506
  return matchingCharts;
100387
100507
  }
100388
100508
  handleViewMetricDetailsClick() {
@@ -100406,8 +100526,10 @@ class SymphiqProfileAnalysisMetricDashboardComponent {
100406
100526
  console.log('[ViewMetricDetails] Found metric in allMetrics:', metric);
100407
100527
  if (metric) {
100408
100528
  console.log('[ViewMetricDetails] Opening modal with metric from allMetrics');
100529
+ console.log('[ViewMetricDetails] Metric performanceItemId:', metric.performanceItemId);
100409
100530
  const charts = this.chartsForMetric(metric);
100410
100531
  console.log('[ViewMetricDetails] Filtered charts count:', charts.length);
100532
+ console.log('[ViewMetricDetails] Filtered chart IDs:', charts.map((c) => c.performanceItemId));
100411
100533
  this.modalService.openMetricModal(metric, charts);
100412
100534
  }
100413
100535
  else {
@@ -100421,8 +100543,10 @@ class SymphiqProfileAnalysisMetricDashboardComponent {
100421
100543
  description: summary.gradeRationale
100422
100544
  };
100423
100545
  console.log('[ViewMetricDetails] Opening modal with constructed metric:', constructedMetric);
100546
+ console.log('[ViewMetricDetails] Constructed metric performanceItemId:', constructedMetric.performanceItemId);
100424
100547
  const charts = this.chartsForMetric(constructedMetric);
100425
100548
  console.log('[ViewMetricDetails] Filtered charts count:', charts.length);
100549
+ console.log('[ViewMetricDetails] Filtered chart IDs:', charts.map((c) => c.performanceItemId));
100426
100550
  this.modalService.openMetricModal(constructedMetric, charts);
100427
100551
  }
100428
100552
  else {