@eric-emg/symphiq-components 1.3.49 → 1.3.51

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.
@@ -44215,6 +44215,21 @@ class ProfileAnalysisModalComponent {
44215
44215
  }, 0);
44216
44216
  return;
44217
44217
  }
44218
+ // Close ProfileAnalysisModalComponent when navigating to unified dashboard types
44219
+ // These should be handled by UnifiedDashboardModalComponent
44220
+ const unifiedDashboardOwnedTypes = ['unified-goal-detail', 'unified-goal-objectives', 'unified-goal-related-metrics'];
44221
+ if (unifiedDashboardOwnedTypes.includes(state.type || '')) {
44222
+ console.log('[ProfileAnalysisModal] Closing - unified dashboard type detected:', state.type);
44223
+ this.isOpen.set(false);
44224
+ setTimeout(() => {
44225
+ this.modalData.set(null);
44226
+ this.modalType.set(null);
44227
+ this.modalTitle.set('');
44228
+ this.navigationStack.set([]);
44229
+ this.currentCharts.set([]);
44230
+ }, 0);
44231
+ return;
44232
+ }
44218
44233
  // Check if navigation originates from unified dashboard flow
44219
44234
  // If so, let UnifiedDashboardModalComponent handle objective-strategies and strategy-recommendations
44220
44235
  const unifiedDashboardTypes = ['objective-strategies', 'strategy-recommendations'];
@@ -44222,6 +44237,7 @@ class ProfileAnalysisModalComponent {
44222
44237
  const isFromUnifiedFlow = state.previousState?.type?.startsWith('unified-goal-') ||
44223
44238
  state.navigationStack?.some(s => s.type?.startsWith('unified-goal-'));
44224
44239
  if (isFromUnifiedFlow) {
44240
+ console.log('[ProfileAnalysisModal] Closing - unified flow detected for:', state.type);
44225
44241
  this.isOpen.set(false);
44226
44242
  setTimeout(() => {
44227
44243
  this.modalData.set(null);
@@ -44486,6 +44502,14 @@ class ProfileAnalysisModalComponent {
44486
44502
  }
44487
44503
  else if (state.type === 'metric' && state.data) {
44488
44504
  const metric = state.data;
44505
+ console.log('[ProfileAnalysisModal] Handling metric state:', {
44506
+ metricName: metric.metric,
44507
+ chartsFromState: state.charts?.length || 0,
44508
+ chartIds: state.charts?.map(c => c.performanceItemId),
44509
+ allChartsInput: this.allCharts()?.length || 0,
44510
+ navigationStackLength: state.navigationStack?.length || 0,
44511
+ navigationStackTypes: state.navigationStack?.map(s => s.type)
44512
+ });
44489
44513
  this.modalData.set(metric);
44490
44514
  const formattedName = metric.metric ? this.metricFormatter.formatMetricName(metric.metric) : 'Metric Details';
44491
44515
  this.modalTitle.set(formattedName);
@@ -101768,58 +101792,76 @@ const _forTrack0$b = ($index, $item) => $item.id;
101768
101792
  const _forTrack1$2 = ($index, $item) => $item.title;
101769
101793
  function UnifiedTimelineComponent_Conditional_0_For_8_Conditional_11_For_5_Template(rf, ctx) { if (rf & 1) {
101770
101794
  i0.ɵɵelementStart(0, "div", 19);
101771
- i0.ɵɵelement(1, "span", 21);
101772
- i0.ɵɵelementStart(2, "span", 22);
101795
+ i0.ɵɵelement(1, "span", 20);
101796
+ i0.ɵɵelementStart(2, "span", 21);
101773
101797
  i0.ɵɵtext(3);
101774
101798
  i0.ɵɵelementEnd()();
101775
101799
  } if (rf & 2) {
101776
- const milestone_r4 = ctx.$implicit;
101777
- const ctx_r2 = i0.ɵɵnextContext(4);
101778
- i0.ɵɵproperty("ngClass", ctx_r2.objectiveItemClasses());
101800
+ const milestone_r1 = ctx.$implicit;
101801
+ const ctx_r1 = i0.ɵɵnextContext(4);
101802
+ i0.ɵɵproperty("ngClass", ctx_r1.objectiveItemClasses());
101779
101803
  i0.ɵɵadvance();
101780
- i0.ɵɵproperty("ngClass", ctx_r2.getPriorityDotClasses(milestone_r4.priority));
101804
+ i0.ɵɵproperty("ngClass", ctx_r1.getPriorityDotClasses(milestone_r1.priority));
101781
101805
  i0.ɵɵadvance(2);
101782
- i0.ɵɵtextInterpolate(milestone_r4.title);
101806
+ i0.ɵɵtextInterpolate(milestone_r1.title);
101783
101807
  } }
101784
- function UnifiedTimelineComponent_Conditional_0_For_8_Conditional_11_Conditional_6_Template(rf, ctx) { if (rf & 1) {
101785
- i0.ɵɵelementStart(0, "div", 20);
101786
- i0.ɵɵtext(1);
101808
+ function UnifiedTimelineComponent_Conditional_0_For_8_Conditional_11_Template(rf, ctx) { if (rf & 1) {
101809
+ i0.ɵɵelementStart(0, "div", 15)(1, "div", 17);
101810
+ i0.ɵɵtext(2);
101787
101811
  i0.ɵɵelementEnd();
101812
+ i0.ɵɵelementStart(3, "div", 18);
101813
+ i0.ɵɵrepeaterCreate(4, UnifiedTimelineComponent_Conditional_0_For_8_Conditional_11_For_5_Template, 4, 3, "div", 19, _forTrack1$2);
101814
+ i0.ɵɵelementEnd()();
101788
101815
  } if (rf & 2) {
101789
- const phase_r2 = i0.ɵɵnextContext(2).$implicit;
101790
- const ctx_r2 = i0.ɵɵnextContext(2);
101791
- i0.ɵɵproperty("ngClass", ctx_r2.moreObjectivesClasses());
101816
+ const phase_r3 = i0.ɵɵnextContext().$implicit;
101817
+ const ctx_r1 = i0.ɵɵnextContext(2);
101792
101818
  i0.ɵɵadvance();
101793
- i0.ɵɵtextInterpolate1(" +", phase_r2.milestones.length - 3, " more milestones ");
101819
+ i0.ɵɵproperty("ngClass", ctx_r1.objectivesLabelClasses());
101820
+ i0.ɵɵadvance();
101821
+ i0.ɵɵtextInterpolate1(" Key Milestones (", phase_r3.milestones.length, ") ");
101822
+ i0.ɵɵadvance(2);
101823
+ i0.ɵɵrepeater(phase_r3.milestones);
101794
101824
  } }
101795
- function UnifiedTimelineComponent_Conditional_0_For_8_Conditional_11_Template(rf, ctx) { if (rf & 1) {
101825
+ function UnifiedTimelineComponent_Conditional_0_For_8_Conditional_12_For_5_Template(rf, ctx) { if (rf & 1) {
101826
+ const _r4 = i0.ɵɵgetCurrentView();
101827
+ i0.ɵɵelementStart(0, "div", 23);
101828
+ i0.ɵɵlistener("click", function UnifiedTimelineComponent_Conditional_0_For_8_Conditional_12_For_5_Template_div_click_0_listener() { const goal_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onGoalChipClick(goal_r5)); });
101829
+ i0.ɵɵelementStart(1, "span", 24);
101830
+ i0.ɵɵtext(2);
101831
+ i0.ɵɵelementEnd();
101832
+ i0.ɵɵnamespaceSVG();
101833
+ i0.ɵɵelementStart(3, "svg", 25);
101834
+ i0.ɵɵelement(4, "path", 26);
101835
+ i0.ɵɵelementEnd()();
101836
+ } if (rf & 2) {
101837
+ const goal_r5 = ctx.$implicit;
101838
+ const ctx_r1 = i0.ɵɵnextContext(4);
101839
+ i0.ɵɵproperty("ngClass", ctx_r1.goalChipClasses());
101840
+ i0.ɵɵadvance(2);
101841
+ i0.ɵɵtextInterpolate(goal_r5.title);
101842
+ } }
101843
+ function UnifiedTimelineComponent_Conditional_0_For_8_Conditional_12_Template(rf, ctx) { if (rf & 1) {
101796
101844
  i0.ɵɵelementStart(0, "div", 15)(1, "div", 17);
101797
101845
  i0.ɵɵtext(2);
101798
101846
  i0.ɵɵelementEnd();
101799
101847
  i0.ɵɵelementStart(3, "div", 18);
101800
- i0.ɵɵrepeaterCreate(4, UnifiedTimelineComponent_Conditional_0_For_8_Conditional_11_For_5_Template, 4, 3, "div", 19, _forTrack1$2);
101801
- i0.ɵɵconditionalCreate(6, UnifiedTimelineComponent_Conditional_0_For_8_Conditional_11_Conditional_6_Template, 2, 2, "div", 20);
101848
+ i0.ɵɵrepeaterCreate(4, UnifiedTimelineComponent_Conditional_0_For_8_Conditional_12_For_5_Template, 5, 2, "div", 22, _forTrack0$b);
101802
101849
  i0.ɵɵelementEnd()();
101803
101850
  } if (rf & 2) {
101804
- const phase_r2 = i0.ɵɵnextContext().$implicit;
101805
- const ctx_r2 = i0.ɵɵnextContext(2);
101851
+ const phase_r3 = i0.ɵɵnextContext().$implicit;
101852
+ const ctx_r1 = i0.ɵɵnextContext(2);
101806
101853
  i0.ɵɵadvance();
101807
- i0.ɵɵproperty("ngClass", ctx_r2.objectivesLabelClasses());
101854
+ i0.ɵɵproperty("ngClass", ctx_r1.objectivesLabelClasses());
101808
101855
  i0.ɵɵadvance();
101809
- i0.ɵɵtextInterpolate1(" Key Milestones (", phase_r2.milestones.length, ") ");
101810
- i0.ɵɵadvance(2);
101811
- i0.ɵɵrepeater(phase_r2.milestones.slice(0, 3));
101856
+ i0.ɵɵtextInterpolate1(" Related Goals (", ctx_r1.getGoalsForPhase(phase_r3).length, ") ");
101812
101857
  i0.ɵɵadvance(2);
101813
- i0.ɵɵconditional(phase_r2.milestones.length > 3 ? 6 : -1);
101858
+ i0.ɵɵrepeater(ctx_r1.getGoalsForPhase(phase_r3));
101814
101859
  } }
101815
101860
  function UnifiedTimelineComponent_Conditional_0_For_8_Template(rf, ctx) { if (rf & 1) {
101816
- const _r1 = i0.ɵɵgetCurrentView();
101817
101861
  i0.ɵɵelementStart(0, "div", 7)(1, "div", 8);
101818
101862
  i0.ɵɵelement(2, "div", 9);
101819
101863
  i0.ɵɵelementEnd();
101820
- i0.ɵɵelementStart(3, "div", 10);
101821
- i0.ɵɵlistener("click", function UnifiedTimelineComponent_Conditional_0_For_8_Template_div_click_3_listener() { const phase_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onPhaseClick(phase_r2)); });
101822
- i0.ɵɵelementStart(4, "div", 11)(5, "h4", 12);
101864
+ i0.ɵɵelementStart(3, "div", 10)(4, "div", 11)(5, "h4", 12);
101823
101865
  i0.ɵɵtext(6);
101824
101866
  i0.ɵɵelementEnd();
101825
101867
  i0.ɵɵelementStart(7, "span", 13);
@@ -101828,38 +101870,43 @@ function UnifiedTimelineComponent_Conditional_0_For_8_Template(rf, ctx) { if (rf
101828
101870
  i0.ɵɵelementStart(9, "p", 14);
101829
101871
  i0.ɵɵtext(10);
101830
101872
  i0.ɵɵelementEnd();
101831
- i0.ɵɵconditionalCreate(11, UnifiedTimelineComponent_Conditional_0_For_8_Conditional_11_Template, 7, 3, "div", 15);
101832
- i0.ɵɵelementStart(12, "div", 16);
101833
- i0.ɵɵtext(13);
101873
+ i0.ɵɵconditionalCreate(11, UnifiedTimelineComponent_Conditional_0_For_8_Conditional_11_Template, 6, 2, "div", 15);
101874
+ i0.ɵɵconditionalCreate(12, UnifiedTimelineComponent_Conditional_0_For_8_Conditional_12_Template, 6, 2, "div", 15);
101875
+ i0.ɵɵelementStart(13, "div", 16);
101876
+ i0.ɵɵtext(14);
101834
101877
  i0.ɵɵelementEnd()()();
101835
101878
  } if (rf & 2) {
101836
- const phase_r2 = ctx.$implicit;
101837
- const ɵ$index_16_r5 = ctx.$index;
101838
- const ctx_r2 = i0.ɵɵnextContext(2);
101879
+ const phase_r3 = ctx.$implicit;
101880
+ const ɵ$index_16_r6 = ctx.$index;
101881
+ const ctx_r1 = i0.ɵɵnextContext(2);
101839
101882
  i0.ɵɵadvance();
101840
- i0.ɵɵproperty("ngClass", ctx_r2.getPhaseNodeClasses(ɵ$index_16_r5));
101883
+ i0.ɵɵclassProp("animate-pulse-glow-blue", ɵ$index_16_r6 % 4 === 0)("animate-pulse-glow-cyan", ɵ$index_16_r6 % 4 === 1)("animate-pulse-glow-teal", ɵ$index_16_r6 % 4 === 2)("animate-pulse-glow-emerald", ɵ$index_16_r6 % 4 === 3);
101884
+ i0.ɵɵproperty("ngClass", ctx_r1.getPhaseNodeClasses(ɵ$index_16_r6));
101841
101885
  i0.ɵɵadvance();
101842
- i0.ɵɵproperty("ngClass", ctx_r2.getPhaseNodeInnerClasses(ɵ$index_16_r5));
101886
+ i0.ɵɵproperty("ngClass", ctx_r1.getPhaseNodeInnerClasses(ɵ$index_16_r6));
101843
101887
  i0.ɵɵadvance();
101844
- i0.ɵɵproperty("ngClass", ctx_r2.getPhaseCardClasses(ɵ$index_16_r5));
101888
+ i0.ɵɵclassProp("card-glow-blue", ɵ$index_16_r6 % 4 === 0)("card-glow-cyan", ɵ$index_16_r6 % 4 === 1)("card-glow-teal", ɵ$index_16_r6 % 4 === 2)("card-glow-emerald", ɵ$index_16_r6 % 4 === 3);
101889
+ i0.ɵɵproperty("ngClass", ctx_r1.getPhaseCardClasses(ɵ$index_16_r6));
101845
101890
  i0.ɵɵadvance(2);
101846
- i0.ɵɵproperty("ngClass", ctx_r2.itemTitleClasses());
101891
+ i0.ɵɵproperty("ngClass", ctx_r1.itemTitleClasses());
101847
101892
  i0.ɵɵadvance();
101848
- i0.ɵɵtextInterpolate1(" ", phase_r2.title, " ");
101893
+ i0.ɵɵtextInterpolate1(" ", phase_r3.title, " ");
101849
101894
  i0.ɵɵadvance();
101850
- i0.ɵɵproperty("ngClass", ctx_r2.getFocusThemeBadgeClasses());
101895
+ i0.ɵɵproperty("ngClass", ctx_r1.getFocusThemeBadgeClasses());
101851
101896
  i0.ɵɵadvance();
101852
- i0.ɵɵtextInterpolate1(" ", phase_r2.focusTheme, " ");
101897
+ i0.ɵɵtextInterpolate1(" ", phase_r3.focusTheme, " ");
101853
101898
  i0.ɵɵadvance();
101854
- i0.ɵɵproperty("ngClass", ctx_r2.descriptionClasses());
101899
+ i0.ɵɵproperty("ngClass", ctx_r1.descriptionClasses());
101855
101900
  i0.ɵɵadvance();
101856
- i0.ɵɵtextInterpolate(phase_r2.description);
101901
+ i0.ɵɵtextInterpolate(phase_r3.description);
101857
101902
  i0.ɵɵadvance();
101858
- i0.ɵɵconditional(phase_r2.milestones && phase_r2.milestones.length > 0 ? 11 : -1);
101903
+ i0.ɵɵconditional(phase_r3.milestones && phase_r3.milestones.length > 0 ? 11 : -1);
101859
101904
  i0.ɵɵadvance();
101860
- i0.ɵɵproperty("ngClass", ctx_r2.phaseIndicatorClasses());
101905
+ i0.ɵɵconditional(ctx_r1.getGoalsForPhase(phase_r3).length > 0 ? 12 : -1);
101861
101906
  i0.ɵɵadvance();
101862
- i0.ɵɵtextInterpolate1(" Phase ", ɵ$index_16_r5 + 1, " ");
101907
+ i0.ɵɵproperty("ngClass", ctx_r1.phaseIndicatorClasses());
101908
+ i0.ɵɵadvance();
101909
+ i0.ɵɵtextInterpolate1(" Phase ", ɵ$index_16_r6 + 1, " ");
101863
101910
  } }
101864
101911
  function UnifiedTimelineComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
101865
101912
  i0.ɵɵelementStart(0, "section", 0);
@@ -101867,26 +101914,27 @@ function UnifiedTimelineComponent_Conditional_0_Template(rf, ctx) { if (rf & 1)
101867
101914
  i0.ɵɵelementStart(3, "div", 3)(4, "div", 4);
101868
101915
  i0.ɵɵelement(5, "div", 5);
101869
101916
  i0.ɵɵelementStart(6, "div", 6);
101870
- i0.ɵɵrepeaterCreate(7, UnifiedTimelineComponent_Conditional_0_For_8_Template, 14, 12, "div", 7, _forTrack0$b);
101917
+ i0.ɵɵrepeaterCreate(7, UnifiedTimelineComponent_Conditional_0_For_8_Template, 15, 29, "div", 7, _forTrack0$b);
101871
101918
  i0.ɵɵelementEnd()()()();
101872
101919
  } if (rf & 2) {
101873
- const ctx_r2 = i0.ɵɵnextContext();
101920
+ const ctx_r1 = i0.ɵɵnextContext();
101874
101921
  i0.ɵɵadvance();
101875
- i0.ɵɵproperty("viewMode", ctx_r2.viewMode())("sectionIcon", i0.ɵɵpureFunction1(6, _c0$b, ctx_r2.IconSourceEnum.HEROICONS));
101922
+ i0.ɵɵproperty("viewMode", ctx_r1.viewMode())("sectionIcon", i0.ɵɵpureFunction1(6, _c0$b, ctx_r1.IconSourceEnum.HEROICONS));
101876
101923
  i0.ɵɵadvance();
101877
- i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(8, _c0$b, ctx_r2.IconSourceEnum.HEROICONS))("viewMode", ctx_r2.viewMode());
101924
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction1(8, _c0$b, ctx_r1.IconSourceEnum.HEROICONS))("viewMode", ctx_r1.viewMode());
101878
101925
  i0.ɵɵadvance();
101879
- i0.ɵɵproperty("ngClass", ctx_r2.containerClasses());
101926
+ i0.ɵɵproperty("ngClass", ctx_r1.containerClasses());
101880
101927
  i0.ɵɵadvance(2);
101881
- i0.ɵɵproperty("ngClass", ctx_r2.lineClasses());
101928
+ i0.ɵɵproperty("ngClass", ctx_r1.lineClasses());
101882
101929
  i0.ɵɵadvance(2);
101883
- i0.ɵɵrepeater(ctx_r2.phases());
101930
+ i0.ɵɵrepeater(ctx_r1.phases());
101884
101931
  } }
101885
101932
  class UnifiedTimelineComponent {
101886
101933
  constructor() {
101887
101934
  this.timeline = input.required(...(ngDevMode ? [{ debugName: "timeline" }] : []));
101888
101935
  this.viewMode = input(ViewModeEnum.DARK, ...(ngDevMode ? [{ debugName: "viewMode" }] : []));
101889
- this.phaseClick = output();
101936
+ this.goals = input([], ...(ngDevMode ? [{ debugName: "goals" }] : []));
101937
+ this.goalClick = output();
101890
101938
  this.IconSourceEnum = IconSourceEnum;
101891
101939
  this.phases = computed(() => {
101892
101940
  const data = this.timeline();
@@ -101923,6 +101971,9 @@ class UnifiedTimelineComponent {
101923
101971
  light: ['bg-blue-50 border border-blue-200', 'bg-cyan-50 border border-cyan-200', 'bg-teal-50 border border-teal-200', 'bg-emerald-50 border border-emerald-200'],
101924
101972
  dark: ['bg-blue-900/20 border border-blue-700/50', 'bg-cyan-900/20 border border-cyan-700/50', 'bg-teal-900/20 border border-teal-700/50', 'bg-emerald-900/20 border border-emerald-700/50']
101925
101973
  };
101974
+ this.goalChipClasses = computed(() => this.isLightMode()
101975
+ ? 'bg-violet-50 border border-violet-200 text-violet-700 hover:bg-violet-100'
101976
+ : 'bg-violet-900/30 border border-violet-700/50 text-violet-300', ...(ngDevMode ? [{ debugName: "goalChipClasses" }] : []));
101926
101977
  }
101927
101978
  getPhaseNodeClasses(idx) {
101928
101979
  const classes = this.isLightMode() ? this.nodeClasses.light : this.nodeClasses.dark;
@@ -101957,24 +102008,25 @@ class UnifiedTimelineComponent {
101957
102008
  return 'bg-blue-500';
101958
102009
  }
101959
102010
  }
101960
- onPhaseClick(phase) {
101961
- this.phaseClick.emit(phase);
102011
+ getGoalsForPhase(phase) {
102012
+ const goalIds = phase.goalIds || [];
102013
+ if (goalIds.length === 0)
102014
+ return [];
102015
+ return this.goals().filter(g => g.id && goalIds.includes(g.id));
102016
+ }
102017
+ onGoalChipClick(goal) {
102018
+ this.goalClick.emit(goal);
101962
102019
  }
101963
102020
  static { this.ɵfac = function UnifiedTimelineComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || UnifiedTimelineComponent)(); }; }
101964
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UnifiedTimelineComponent, selectors: [["symphiq-unified-timeline"]], inputs: { timeline: [1, "timeline"], viewMode: [1, "viewMode"] }, outputs: { phaseClick: "phaseClick" }, decls: 1, vars: 1, consts: [["id", "section-timeline", 1, "space-y-6", "scroll-mt-24"], [3, "viewMode", "sectionIcon"], ["title", "Implementation Timeline", 3, "icon", "viewMode"], [1, "rounded-2xl", "p-8", "shadow-xl", 3, "ngClass"], [1, "relative"], [1, "absolute", "left-6", "top-0", "bottom-0", "w-0.5", 3, "ngClass"], [1, "space-y-8"], [1, "relative", "pl-16", "group"], [1, "absolute", "left-4", "w-5", "h-5", "rounded-full", "border-4", "flex", "items-center", "justify-center", "transition-all", "group-hover:scale-125", 3, "ngClass"], [1, "w-2", "h-2", "rounded-full", 3, "ngClass"], [1, "rounded-xl", "p-5", "transition-all", "hover:shadow-lg", "cursor-pointer", 3, "click", "ngClass"], [1, "flex", "items-start", "justify-between", "gap-4", "mb-3"], [1, "text-base", "font-semibold", 3, "ngClass"], [1, "px-2", "py-1", "text-xs", "font-semibold", "rounded-full", "flex-shrink-0", 3, "ngClass"], [1, "text-sm", "mb-4", 3, "ngClass"], [1, "mt-4"], [1, "absolute", "-left-[52px]", "top-5", "text-xs", "font-bold", 3, "ngClass"], [1, "text-xs", "font-semibold", "uppercase", "mb-2", 3, "ngClass"], [1, "space-y-2"], [1, "flex", "items-start", "gap-2", "text-sm", 3, "ngClass"], [1, "text-xs", "pl-6", 3, "ngClass"], [1, "w-2", "h-2", "rounded-full", "mt-1.5", "flex-shrink-0", 3, "ngClass"], [1, "line-clamp-1"]], template: function UnifiedTimelineComponent_Template(rf, ctx) { if (rf & 1) {
102021
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UnifiedTimelineComponent, selectors: [["symphiq-unified-timeline"]], inputs: { timeline: [1, "timeline"], viewMode: [1, "viewMode"], goals: [1, "goals"] }, outputs: { goalClick: "goalClick" }, decls: 1, vars: 1, consts: [["id", "section-timeline", 1, "space-y-6", "scroll-mt-24"], [3, "viewMode", "sectionIcon"], ["title", "Implementation Timeline", 3, "icon", "viewMode"], [1, "rounded-2xl", "p-8", "shadow-xl", 3, "ngClass"], [1, "relative"], [1, "absolute", "left-6", "top-0", "bottom-0", "w-0.5", 3, "ngClass"], [1, "space-y-8"], [1, "relative", "pl-16", "group"], [1, "absolute", "left-4", "w-5", "h-5", "rounded-full", "border-4", "flex", "items-center", "justify-center", "transition-all", "duration-300", "group-hover:scale-125", 3, "ngClass"], [1, "w-2", "h-2", "rounded-full", 3, "ngClass"], [1, "rounded-xl", "p-5", "transition-all", "duration-300", 3, "ngClass"], [1, "flex", "items-start", "justify-between", "gap-4", "mb-3"], [1, "text-base", "font-semibold", 3, "ngClass"], [1, "px-2", "py-1", "text-xs", "font-semibold", "rounded-full", "flex-shrink-0", 3, "ngClass"], [1, "text-sm", "mb-4", 3, "ngClass"], [1, "mt-4"], [1, "absolute", "-left-[52px]", "top-0", "text-xs", "font-bold", 3, "ngClass"], [1, "text-xs", "font-semibold", "uppercase", "mb-2", 3, "ngClass"], [1, "space-y-2"], [1, "flex", "items-start", "gap-2", "text-sm", 3, "ngClass"], [1, "w-2", "h-2", "rounded-full", "mt-1.5", "flex-shrink-0", 3, "ngClass"], [1, "line-clamp-1"], [1, "goal-chip", "flex", "items-center", "justify-between", "gap-2", "px-3", "py-2", "rounded-lg", "cursor-pointer", 3, "ngClass"], [1, "goal-chip", "flex", "items-center", "justify-between", "gap-2", "px-3", "py-2", "rounded-lg", "cursor-pointer", 3, "click", "ngClass"], [1, "text-sm", "font-medium", "line-clamp-1"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4", "flex-shrink-0"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 5l7 7-7 7"]], template: function UnifiedTimelineComponent_Template(rf, ctx) { if (rf & 1) {
101965
102022
  i0.ɵɵconditionalCreate(0, UnifiedTimelineComponent_Conditional_0_Template, 9, 10, "section", 0);
101966
102023
  } if (rf & 2) {
101967
102024
  i0.ɵɵconditional(ctx.phases().length > 0 ? 0 : -1);
101968
- } }, dependencies: [CommonModule, i1$1.NgClass, SectionDividerComponent, SectionHeaderComponent], encapsulation: 2, changeDetection: 0 }); }
102025
+ } }, dependencies: [CommonModule, i1$1.NgClass, SectionDividerComponent, SectionHeaderComponent], styles: ["@keyframes _ngcontent-%COMP%_pulse-glow-blue{0%,to{box-shadow:0 0 5px #3b82f680,0 0 10px #3b82f64d}50%{box-shadow:0 0 15px #3b82f6cc,0 0 25px #3b82f680,0 0 35px #3b82f64d}}@keyframes _ngcontent-%COMP%_pulse-glow-cyan{0%,to{box-shadow:0 0 5px #06b6d480,0 0 10px #06b6d44d}50%{box-shadow:0 0 15px #06b6d4cc,0 0 25px #06b6d480,0 0 35px #06b6d44d}}@keyframes _ngcontent-%COMP%_pulse-glow-teal{0%,to{box-shadow:0 0 5px #14b8a680,0 0 10px #14b8a64d}50%{box-shadow:0 0 15px #14b8a6cc,0 0 25px #14b8a680,0 0 35px #14b8a64d}}@keyframes _ngcontent-%COMP%_pulse-glow-emerald{0%,to{box-shadow:0 0 5px #10b98180,0 0 10px #10b9814d}50%{box-shadow:0 0 15px #10b981cc,0 0 25px #10b98180,0 0 35px #10b9814d}}.group[_ngcontent-%COMP%]:hover .animate-pulse-glow-blue[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_pulse-glow-blue 1.5s ease-in-out infinite}.group[_ngcontent-%COMP%]:hover .animate-pulse-glow-cyan[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_pulse-glow-cyan 1.5s ease-in-out infinite}.group[_ngcontent-%COMP%]:hover .animate-pulse-glow-teal[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_pulse-glow-teal 1.5s ease-in-out infinite}.group[_ngcontent-%COMP%]:hover .animate-pulse-glow-emerald[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_pulse-glow-emerald 1.5s ease-in-out infinite}.card-glow-blue[_ngcontent-%COMP%]:hover{box-shadow:0 0 20px #3b82f666,0 0 40px #3b82f633,0 10px 30px #0000004d;border-color:#3b82f6cc!important}.card-glow-cyan[_ngcontent-%COMP%]:hover{box-shadow:0 0 20px #06b6d466,0 0 40px #06b6d433,0 10px 30px #0000004d;border-color:#06b6d4cc!important}.card-glow-teal[_ngcontent-%COMP%]:hover{box-shadow:0 0 20px #14b8a666,0 0 40px #14b8a633,0 10px 30px #0000004d;border-color:#14b8a6cc!important}.card-glow-emerald[_ngcontent-%COMP%]:hover{box-shadow:0 0 20px #10b98166,0 0 40px #10b98133,0 10px 30px #0000004d;border-color:#10b981cc!important}.goal-chip[_ngcontent-%COMP%]{transition:all .3s ease}.goal-chip[_ngcontent-%COMP%]:hover{transform:scale(1.03) translate(4px);box-shadow:0 0 15px #8b5cf680,0 0 30px #8b5cf64d;border-color:#8b5cf6cc!important}"], changeDetection: 0 }); }
101969
102026
  }
101970
102027
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UnifiedTimelineComponent, [{
101971
102028
  type: Component,
101972
- args: [{
101973
- selector: 'symphiq-unified-timeline',
101974
- standalone: true,
101975
- imports: [CommonModule, SectionDividerComponent, SectionHeaderComponent],
101976
- changeDetection: ChangeDetectionStrategy.OnPush,
101977
- template: `
102029
+ args: [{ selector: 'symphiq-unified-timeline', standalone: true, imports: [CommonModule, SectionDividerComponent, SectionHeaderComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: `
101978
102030
  @if (phases().length > 0) {
101979
102031
  <section id="section-timeline" class="space-y-6 scroll-mt-24">
101980
102032
  <symphiq-section-divider
@@ -101996,14 +102048,21 @@ class UnifiedTimelineComponent {
101996
102048
  <div class="relative pl-16 group">
101997
102049
  <div
101998
102050
  [ngClass]="getPhaseNodeClasses(idx)"
101999
- class="absolute left-4 w-5 h-5 rounded-full border-4 flex items-center justify-center transition-all group-hover:scale-125">
102051
+ class="absolute left-4 w-5 h-5 rounded-full border-4 flex items-center justify-center transition-all duration-300 group-hover:scale-125"
102052
+ [class.animate-pulse-glow-blue]="idx % 4 === 0"
102053
+ [class.animate-pulse-glow-cyan]="idx % 4 === 1"
102054
+ [class.animate-pulse-glow-teal]="idx % 4 === 2"
102055
+ [class.animate-pulse-glow-emerald]="idx % 4 === 3">
102000
102056
  <div class="w-2 h-2 rounded-full" [ngClass]="getPhaseNodeInnerClasses(idx)"></div>
102001
102057
  </div>
102002
102058
 
102003
102059
  <div
102004
102060
  [ngClass]="getPhaseCardClasses(idx)"
102005
- class="rounded-xl p-5 transition-all hover:shadow-lg cursor-pointer"
102006
- (click)="onPhaseClick(phase)">
102061
+ class="rounded-xl p-5 transition-all duration-300"
102062
+ [class.card-glow-blue]="idx % 4 === 0"
102063
+ [class.card-glow-cyan]="idx % 4 === 1"
102064
+ [class.card-glow-teal]="idx % 4 === 2"
102065
+ [class.card-glow-emerald]="idx % 4 === 3">
102007
102066
  <div class="flex items-start justify-between gap-4 mb-3">
102008
102067
  <h4 [ngClass]="itemTitleClasses()" class="text-base font-semibold">
102009
102068
  {{ phase.title }}
@@ -102021,22 +102080,38 @@ class UnifiedTimelineComponent {
102021
102080
  Key Milestones ({{ phase.milestones.length }})
102022
102081
  </div>
102023
102082
  <div class="space-y-2">
102024
- @for (milestone of phase.milestones.slice(0, 3); track milestone.title) {
102083
+ @for (milestone of phase.milestones; track milestone.title) {
102025
102084
  <div [ngClass]="objectiveItemClasses()" class="flex items-start gap-2 text-sm">
102026
102085
  <span [ngClass]="getPriorityDotClasses(milestone.priority)" class="w-2 h-2 rounded-full mt-1.5 flex-shrink-0"></span>
102027
102086
  <span class="line-clamp-1">{{ milestone.title }}</span>
102028
102087
  </div>
102029
102088
  }
102030
- @if (phase.milestones.length > 3) {
102031
- <div [ngClass]="moreObjectivesClasses()" class="text-xs pl-6">
102032
- +{{ phase.milestones.length - 3 }} more milestones
102089
+ </div>
102090
+ </div>
102091
+ }
102092
+
102093
+ @if (getGoalsForPhase(phase).length > 0) {
102094
+ <div class="mt-4">
102095
+ <div [ngClass]="objectivesLabelClasses()" class="text-xs font-semibold uppercase mb-2">
102096
+ Related Goals ({{ getGoalsForPhase(phase).length }})
102097
+ </div>
102098
+ <div class="space-y-2">
102099
+ @for (goal of getGoalsForPhase(phase); track goal.id) {
102100
+ <div
102101
+ [ngClass]="goalChipClasses()"
102102
+ class="goal-chip flex items-center justify-between gap-2 px-3 py-2 rounded-lg cursor-pointer"
102103
+ (click)="onGoalChipClick(goal)">
102104
+ <span class="text-sm font-medium line-clamp-1">{{ goal.title }}</span>
102105
+ <svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
102106
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path>
102107
+ </svg>
102033
102108
  </div>
102034
102109
  }
102035
102110
  </div>
102036
102111
  </div>
102037
102112
  }
102038
102113
 
102039
- <div [ngClass]="phaseIndicatorClasses()" class="absolute -left-[52px] top-5 text-xs font-bold">
102114
+ <div [ngClass]="phaseIndicatorClasses()" class="absolute -left-[52px] top-0 text-xs font-bold">
102040
102115
  Phase {{ idx + 1 }}
102041
102116
  </div>
102042
102117
  </div>
@@ -102047,10 +102122,9 @@ class UnifiedTimelineComponent {
102047
102122
  </div>
102048
102123
  </section>
102049
102124
  }
102050
- `
102051
- }]
102052
- }], null, { timeline: [{ type: i0.Input, args: [{ isSignal: true, alias: "timeline", required: true }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], phaseClick: [{ type: i0.Output, args: ["phaseClick"] }] }); })();
102053
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UnifiedTimelineComponent, { className: "UnifiedTimelineComponent", filePath: "lib/components/profile-analysis-unified-dashboard/cards/unified-timeline.component.ts", lineNumber: 109 }); })();
102125
+ `, styles: ["@keyframes pulse-glow-blue{0%,to{box-shadow:0 0 5px #3b82f680,0 0 10px #3b82f64d}50%{box-shadow:0 0 15px #3b82f6cc,0 0 25px #3b82f680,0 0 35px #3b82f64d}}@keyframes pulse-glow-cyan{0%,to{box-shadow:0 0 5px #06b6d480,0 0 10px #06b6d44d}50%{box-shadow:0 0 15px #06b6d4cc,0 0 25px #06b6d480,0 0 35px #06b6d44d}}@keyframes pulse-glow-teal{0%,to{box-shadow:0 0 5px #14b8a680,0 0 10px #14b8a64d}50%{box-shadow:0 0 15px #14b8a6cc,0 0 25px #14b8a680,0 0 35px #14b8a64d}}@keyframes pulse-glow-emerald{0%,to{box-shadow:0 0 5px #10b98180,0 0 10px #10b9814d}50%{box-shadow:0 0 15px #10b981cc,0 0 25px #10b98180,0 0 35px #10b9814d}}.group:hover .animate-pulse-glow-blue{animation:pulse-glow-blue 1.5s ease-in-out infinite}.group:hover .animate-pulse-glow-cyan{animation:pulse-glow-cyan 1.5s ease-in-out infinite}.group:hover .animate-pulse-glow-teal{animation:pulse-glow-teal 1.5s ease-in-out infinite}.group:hover .animate-pulse-glow-emerald{animation:pulse-glow-emerald 1.5s ease-in-out infinite}.card-glow-blue:hover{box-shadow:0 0 20px #3b82f666,0 0 40px #3b82f633,0 10px 30px #0000004d;border-color:#3b82f6cc!important}.card-glow-cyan:hover{box-shadow:0 0 20px #06b6d466,0 0 40px #06b6d433,0 10px 30px #0000004d;border-color:#06b6d4cc!important}.card-glow-teal:hover{box-shadow:0 0 20px #14b8a666,0 0 40px #14b8a633,0 10px 30px #0000004d;border-color:#14b8a6cc!important}.card-glow-emerald:hover{box-shadow:0 0 20px #10b98166,0 0 40px #10b98133,0 10px 30px #0000004d;border-color:#10b981cc!important}.goal-chip{transition:all .3s ease}.goal-chip:hover{transform:scale(1.03) translate(4px);box-shadow:0 0 15px #8b5cf680,0 0 30px #8b5cf64d;border-color:#8b5cf6cc!important}\n"] }]
102126
+ }], null, { timeline: [{ type: i0.Input, args: [{ isSignal: true, alias: "timeline", required: true }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], goals: [{ type: i0.Input, args: [{ isSignal: true, alias: "goals", required: false }] }], goalClick: [{ type: i0.Output, args: ["goalClick"] }] }); })();
102127
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UnifiedTimelineComponent, { className: "UnifiedTimelineComponent", filePath: "lib/components/profile-analysis-unified-dashboard/cards/unified-timeline.component.ts", lineNumber: 181 }); })();
102054
102128
 
102055
102129
  const _c0$a = a0 => ({ name: "squares-2x2", source: a0 });
102056
102130
  const _forTrack0$a = ($index, $item) => $item.id;
@@ -103113,7 +103187,7 @@ class SourceAnalysisTraceabilityComponent {
103113
103187
  }
103114
103188
  }
103115
103189
  static { this.ɵfac = function SourceAnalysisTraceabilityComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SourceAnalysisTraceabilityComponent)(); }; }
103116
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SourceAnalysisTraceabilityComponent, selectors: [["symphiq-source-analysis-traceability"]], inputs: { sourceAnalyses: [1, "sourceAnalyses"], loadedSourceAnalysisIds: [1, "loadedSourceAnalysisIds"], loadingSourceAnalysisId: [1, "loadingSourceAnalysisId"], viewMode: [1, "viewMode"], goal: [1, "goal"] }, outputs: { sourceAnalysisClick: "sourceAnalysisClick" }, decls: 1, vars: 1, consts: [[1, "p-5", "rounded-xl", 3, "ngClass"], [1, "text-sm", "font-semibold", "mb-4", "flex", "items-center", "gap-2", 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", "M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1"], [3, "score", "explanation", "viewMode"], [1, "grid", "grid-cols-1", "sm:grid-cols-2", "gap-3"], ["type", "button", 1, "p-4", "rounded-lg", "text-left", "transition-all", "hover:scale-[1.02]", "relative", 3, "ngClass"], ["type", "button", 1, "p-4", "rounded-lg", "text-left", "transition-all", "hover:scale-[1.02]", "relative", 3, "click", "ngClass"], [1, "absolute", "inset-0", "bg-black/10", "rounded-lg", "flex", "items-center", "justify-center"], [1, "absolute", "top-2", "right-2"], [1, "flex", "items-start", "gap-3"], [1, "w-8", "h-8", "rounded-lg", "flex", "items-center", "justify-center", "flex-shrink-0", 3, "ngClass"], [1, "flex-1", "min-w-0"], [1, "text-xs", "font-medium", "uppercase", "mb-0.5", 3, "ngClass"], [1, "text-sm", "font-medium", "truncate", 3, "ngClass"], [1, "text-xs", "mt-1", 3, "ngClass"], [1, "w-5", "h-5", "border-2", "border-current", "border-t-transparent", "rounded-full", "animate-spin"], ["fill", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4", "text-green-500"], ["d", "M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"], ["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"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M12 6V4m0 2a2 2 0 100 4m0-4a2 2 0 110 4m-6 8a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4m6 6v10m6-2a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4"], ["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"]], template: function SourceAnalysisTraceabilityComponent_Template(rf, ctx) { if (rf & 1) {
103190
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SourceAnalysisTraceabilityComponent, selectors: [["symphiq-source-analysis-traceability"]], inputs: { sourceAnalyses: [1, "sourceAnalyses"], loadedSourceAnalysisIds: [1, "loadedSourceAnalysisIds"], loadingSourceAnalysisId: [1, "loadingSourceAnalysisId"], viewMode: [1, "viewMode"], goal: [1, "goal"] }, outputs: { sourceAnalysisClick: "sourceAnalysisClick" }, decls: 1, vars: 1, consts: [[1, "p-5", "rounded-xl", "flex", "flex-col", "gap-4", 3, "ngClass"], [1, "text-sm", "font-semibold", "flex", "items-center", "gap-2", 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", "M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1"], [3, "score", "explanation", "viewMode"], [1, "grid", "grid-cols-1", "sm:grid-cols-2", "gap-3"], ["type", "button", 1, "p-4", "rounded-lg", "text-left", "transition-all", "hover:scale-[1.02]", "relative", 3, "ngClass"], ["type", "button", 1, "p-4", "rounded-lg", "text-left", "transition-all", "hover:scale-[1.02]", "relative", 3, "click", "ngClass"], [1, "absolute", "inset-0", "bg-black/10", "rounded-lg", "flex", "items-center", "justify-center"], [1, "absolute", "top-2", "right-2"], [1, "flex", "items-start", "gap-3"], [1, "w-8", "h-8", "rounded-lg", "flex", "items-center", "justify-center", "flex-shrink-0", 3, "ngClass"], [1, "flex-1", "min-w-0"], [1, "text-xs", "font-medium", "uppercase", "mb-0.5", 3, "ngClass"], [1, "text-sm", "font-medium", "truncate", 3, "ngClass"], [1, "text-xs", "mt-1", 3, "ngClass"], [1, "w-5", "h-5", "border-2", "border-current", "border-t-transparent", "rounded-full", "animate-spin"], ["fill", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4", "text-green-500"], ["d", "M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"], ["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"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M12 6V4m0 2a2 2 0 100 4m0-4a2 2 0 110 4m-6 8a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4m6 6v10m6-2a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4"], ["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"]], template: function SourceAnalysisTraceabilityComponent_Template(rf, ctx) { if (rf & 1) {
103117
103191
  i0.ɵɵconditionalCreate(0, SourceAnalysisTraceabilityComponent_Conditional_0_Template, 9, 6, "div", 0);
103118
103192
  } if (rf & 2) {
103119
103193
  let tmp_0_0;
@@ -103129,8 +103203,8 @@ class SourceAnalysisTraceabilityComponent {
103129
103203
  imports: [CommonModule, SynthesisConfidenceSectionComponent],
103130
103204
  template: `
103131
103205
  @if ((sourceAnalyses()?.length ?? 0) > 0) {
103132
- <div [ngClass]="sectionCardClasses()" class="p-5 rounded-xl">
103133
- <h4 [ngClass]="sectionTitleClasses()" class="text-sm font-semibold mb-4 flex items-center gap-2">
103206
+ <div [ngClass]="sectionCardClasses()" class="p-5 rounded-xl flex flex-col gap-4">
103207
+ <h4 [ngClass]="sectionTitleClasses()" class="text-sm font-semibold flex items-center gap-2">
103134
103208
  <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
103135
103209
  <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1"/>
103136
103210
  </svg>
@@ -103838,7 +103912,22 @@ class UnifiedDashboardModalComponent {
103838
103912
  clearTimeout(this.cleanupTimeoutId);
103839
103913
  this.cleanupTimeoutId = null;
103840
103914
  }
103841
- if (state.type !== 'unified-goal-detail' && state.type !== 'unified-goal-objectives' && state.type !== 'unified-goal-related-metrics' && state.type !== 'objective-strategies' && state.type !== 'strategy-recommendations' && state.type !== null) {
103915
+ const unifiedModalTypes = ['unified-goal-detail', 'unified-goal-objectives', 'unified-goal-related-metrics', 'objective-strategies', 'strategy-recommendations'];
103916
+ const isUnifiedType = unifiedModalTypes.includes(state.type || '');
103917
+ if (!isUnifiedType && state.type !== null) {
103918
+ // Close this modal when transitioning to a type we don't handle (e.g., metrics-list, metric)
103919
+ if (this.isOpen()) {
103920
+ console.log('[UnifiedDashboardModal] Closing - transitioning to non-unified type:', state.type);
103921
+ this.isOpen.set(false);
103922
+ this.cleanupTimeoutId = setTimeout(() => {
103923
+ this.modalType.set(null);
103924
+ this.modalData.set(null);
103925
+ this.modalTitle.set('');
103926
+ this.previousState.set(null);
103927
+ this.currentModalState.set(null);
103928
+ this.cleanupTimeoutId = null;
103929
+ }, 300);
103930
+ }
103842
103931
  return;
103843
103932
  }
103844
103933
  this.previousState.set(state.previousState ?? null);
@@ -103906,6 +103995,14 @@ class UnifiedDashboardModalComponent {
103906
103995
  return;
103907
103996
  const contributingMetricNames = data.goal.contributingMetrics || [];
103908
103997
  const contributingMetrics = data.allMetrics.filter(m => m.metric && contributingMetricNames.includes(m.metric));
103998
+ console.log('[UnifiedDashboardModal] onContributingMetricsClick:', {
103999
+ goalTitle: data.goal.title,
104000
+ contributingMetricNames,
104001
+ contributingMetricsCount: contributingMetrics.length,
104002
+ contributingMetricsPerformanceItemIds: contributingMetrics.map(m => m.performanceItemId),
104003
+ allChartsCount: data.allCharts?.length || 0,
104004
+ allChartsPerformanceItemIds: data.allCharts?.map(c => c.performanceItemId)
104005
+ });
103909
104006
  this.modalService.navigateToUnifiedGoalRelatedMetrics(data.goal, contributingMetrics, data.allCharts, this.viewMode());
103910
104007
  }
103911
104008
  onShowObjectives() {
@@ -103918,6 +104015,14 @@ class UnifiedDashboardModalComponent {
103918
104015
  const data = this.relatedMetricsData();
103919
104016
  const allCharts = data?.allCharts || [];
103920
104017
  const metricCharts = allCharts.filter(chart => chart.performanceItemId === metric.performanceItemId);
104018
+ console.log('[UnifiedDashboardModal] onRelatedMetricClick:', {
104019
+ metricName: metric.metric,
104020
+ metricPerformanceItemId: metric.performanceItemId,
104021
+ allChartsCount: allCharts.length,
104022
+ allChartsPerformanceItemIds: allCharts.map(c => c.performanceItemId),
104023
+ filteredChartsCount: metricCharts.length,
104024
+ currentModalState: this.currentModalState()?.type
104025
+ });
103921
104026
  this.modalService.openMetricModal(metric, metricCharts, this.currentModalState() ?? undefined);
103922
104027
  }
103923
104028
  navigateToBreadcrumb(index) {
@@ -104230,7 +104335,7 @@ function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Condition
104230
104335
  i0.ɵɵelementEnd();
104231
104336
  i0.ɵɵconditionalCreate(14, SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Conditional_14_Template, 6, 8, "section", 31);
104232
104337
  i0.ɵɵelementStart(15, "symphiq-unified-timeline", 32);
104233
- i0.ɵɵlistener("phaseClick", function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Template_symphiq_unified_timeline_phaseClick_15_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onTimelinePhaseClick($event)); });
104338
+ i0.ɵɵlistener("goalClick", function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Template_symphiq_unified_timeline_goalClick_15_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onGoalClick($event)); });
104234
104339
  i0.ɵɵelementEnd();
104235
104340
  i0.ɵɵelementStart(16, "symphiq-unified-priority-matrix", 33);
104236
104341
  i0.ɵɵlistener("goalClick", function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Template_symphiq_unified_priority_matrix_goalClick_16_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onGoalClick($event)); });
@@ -104257,7 +104362,7 @@ function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Condition
104257
104362
  i0.ɵɵadvance();
104258
104363
  i0.ɵɵconditional(ctx_r1.unifiedGoals().length > 0 ? 14 : -1);
104259
104364
  i0.ɵɵadvance();
104260
- i0.ɵɵproperty("timeline", ctx_r1.unifiedTimeline())("viewMode", ctx_r1.viewMode());
104365
+ i0.ɵɵproperty("timeline", ctx_r1.unifiedTimeline())("viewMode", ctx_r1.viewMode())("goals", ctx_r1.unifiedGoals());
104261
104366
  i0.ɵɵadvance();
104262
104367
  i0.ɵɵproperty("matrix", ctx_r1.priorityMatrix())("viewMode", ctx_r1.viewMode());
104263
104368
  i0.ɵɵadvance();
@@ -104303,7 +104408,7 @@ function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Condition
104303
104408
  function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Template(rf, ctx) { if (rf & 1) {
104304
104409
  i0.ɵɵelementStart(0, "main", 18);
104305
104410
  i0.ɵɵconditionalCreate(1, SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_1_Template, 1, 2, "symphiq-loading-card", 19);
104306
- i0.ɵɵconditionalCreate(2, SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Template, 18, 21);
104411
+ i0.ɵɵconditionalCreate(2, SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Template, 18, 22);
104307
104412
  i0.ɵɵconditionalCreate(3, SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_3_Template, 1, 1);
104308
104413
  i0.ɵɵelementEnd();
104309
104414
  } if (rf & 2) {
@@ -104568,15 +104673,33 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
104568
104673
  this.priorityMatrix = computed(() => {
104569
104674
  const matrixData = this.analysisData()?.unifiedPriorityMatrix;
104570
104675
  const goals = this.unifiedGoals();
104676
+ console.log('[PriorityMatrix] Raw matrixData:', matrixData);
104677
+ console.log('[PriorityMatrix] Goals available:', goals.map(g => ({ id: g.id, title: g.title })));
104571
104678
  if (matrixData) {
104572
- const findGoal = (id) => goals.find(g => g.id === id);
104573
- return {
104574
- quickWins: (matrixData.quickWins || []).map(item => findGoal(item.relatedGoalId)).filter((g) => !!g),
104575
- majorProjects: (matrixData.majorProjects || []).map(item => findGoal(item.relatedGoalId)).filter((g) => !!g),
104576
- fillIns: (matrixData.fillIns || []).map(item => findGoal(item.relatedGoalId)).filter((g) => !!g),
104577
- thankless: (matrixData.thankless || []).map(item => findGoal(item.relatedGoalId)).filter((g) => !!g)
104679
+ console.log('[PriorityMatrix] quickWins items:', matrixData.quickWins);
104680
+ console.log('[PriorityMatrix] majorProjects items:', matrixData.majorProjects);
104681
+ console.log('[PriorityMatrix] fillIns items:', matrixData.fillIns);
104682
+ console.log('[PriorityMatrix] thankless items:', matrixData.thankless);
104683
+ const findGoal = (id, quadrant) => {
104684
+ const found = goals.find(g => g.id === id);
104685
+ console.log(`[PriorityMatrix] ${quadrant} - Looking for goal id="${id}", found:`, found ? found.title : 'NOT FOUND');
104686
+ return found;
104687
+ };
104688
+ const result = {
104689
+ quickWins: (matrixData.quickWins || []).map(item => findGoal(item.relatedGoalId, 'quickWins')).filter((g) => !!g),
104690
+ majorProjects: (matrixData.majorProjects || []).map(item => findGoal(item.relatedGoalId, 'majorProjects')).filter((g) => !!g),
104691
+ fillIns: (matrixData.fillIns || []).map(item => findGoal(item.relatedGoalId, 'fillIns')).filter((g) => !!g),
104692
+ thankless: (matrixData.thankless || []).map(item => findGoal(item.relatedGoalId, 'thankless')).filter((g) => !!g)
104578
104693
  };
104694
+ console.log('[PriorityMatrix] Final result:', {
104695
+ quickWins: result.quickWins.length,
104696
+ majorProjects: result.majorProjects.length,
104697
+ fillIns: result.fillIns.length,
104698
+ thankless: result.thankless.length
104699
+ });
104700
+ return result;
104579
104701
  }
104702
+ console.log('[PriorityMatrix] No matrixData, using fallback based on priority');
104580
104703
  return {
104581
104704
  quickWins: goals.filter(g => g.priority === 'HIGH'),
104582
104705
  majorProjects: goals.filter(g => g.priority === 'MEDIUM'),
@@ -104908,15 +105031,6 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
104908
105031
  }
104909
105032
  }
104910
105033
  }
104911
- onTimelinePhaseClick(phase) {
104912
- const goalIds = phase.goalIds || [];
104913
- if (goalIds.length > 0) {
104914
- const goal = this.unifiedGoals().find(g => g.id && goalIds.includes(g.id));
104915
- if (goal) {
104916
- this.onGoalClick(goal);
104917
- }
104918
- }
104919
- }
104920
105034
  getTimelineNodeClasses(priority) {
104921
105035
  const base = this.isLightMode() ? 'bg-white' : 'bg-slate-800';
104922
105036
  switch (priority?.toUpperCase()) {
@@ -105099,7 +105213,7 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
105099
105213
  static { this.ɵfac = function SymphiqProfileAnalysisUnifiedDashboardComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SymphiqProfileAnalysisUnifiedDashboardComponent)(); }; }
105100
105214
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SymphiqProfileAnalysisUnifiedDashboardComponent, selectors: [["symphiq-profile-analysis-unified-dashboard"]], hostBindings: function SymphiqProfileAnalysisUnifiedDashboardComponent_HostBindings(rf, ctx) { if (rf & 1) {
105101
105215
  i0.ɵɵlistener("scroll", function SymphiqProfileAnalysisUnifiedDashboardComponent_scroll_HostBindingHandler() { return ctx.onScroll(); }, i0.ɵɵresolveWindow);
105102
- } }, inputs: { viewMode: [1, "viewMode"], embedded: [1, "embedded"], isLoading: [1, "isLoading"], profile: [1, "profile"], funnelAnalysis: [1, "funnelAnalysis"], unifiedProfileAnalysis: [1, "unifiedProfileAnalysis"], sourceProfileAnalyses: [1, "sourceProfileAnalyses"], isLoadingSourceAnalysis: [1, "isLoadingSourceAnalysis"], scrollEvent: [1, "scrollEvent"], scrollElement: [1, "scrollElement"], isOnboarded: [1, "isOnboarded"], forDemo: [1, "forDemo"], maxAccessibleStepId: [1, "maxAccessibleStepId"], itemStatus: [1, "itemStatus"], isMarkingAsReviewed: [1, "isMarkingAsReviewed"], requestedByUser: [1, "requestedByUser"] }, outputs: { markAsReviewedClick: "markAsReviewedClick", generateGoalsClick: "generateGoalsClick", stepClick: "stepClick", nextStepClick: "nextStepClick", sourceAnalysisRequest: "sourceAnalysisRequest" }, features: [i0.ɵɵNgOnChangesFeature], decls: 18, vars: 37, consts: [[1, "relative"], [1, "animated-bubbles", 2, "position", "fixed", "top", "0", "left", "0", "right", "0", "bottom", "0", "width", "100vw", "height", "100vh", "z-index", "1", "pointer-events", "none"], [3, "viewMode", "progress", "embedded"], [1, "relative", "z-[51]"], [3, "searchClick", "viewModeClick", "title", "subtitle", "currentSection", "viewMode", "viewModeLabel", "isLoading", "requestedByUser", "showControls", "embedded", "scrollEvent"], [3, "viewMode", "currentStepId", "showNextStepAction", "forDemo", "maxAccessibleStepId"], [1, "relative", "z-10", "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-12", "space-y-12", 3, "pb-32"], [3, "sections", "viewMode", "embedded", "scrollElement"], [3, "isLightMode", "isOpen"], [3, "viewMode", "currentMode", "isOpen"], [3, "viewMode", "selfContentStatus", "isLoading"], [3, "viewMode", "itemStatus", "currentStatus", "confettiIntensity", "title"], [3, "expandedChange", "scrollToTop", "toggleView", "isLightMode", "isCompactMode", "isExpanded"], [3, "navigate", "isLightMode", "sections", "activeSection"], [3, "viewMode"], [3, "isLightMode"], [3, "isLightMode", "allInsights", "allMetrics", "allCharts"], [3, "nextStepClick", "stepClick", "viewMode", "currentStepId", "showNextStepAction", "forDemo", "maxAccessibleStepId"], [1, "relative", "z-10", "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-12", "space-y-12"], ["title", "Loading Your Unified Analysis", "subtitle", "Please wait while we prepare your synthesized insights...", "size", "large", 3, "viewMode", "backdropBlur"], [1, "mb-12"], [1, "rounded-2xl", "p-8", "shadow-xl", "animate-fade-in-up", 3, "ngClass"], [1, "flex", "items-start", "gap-6"], [1, "p-4", "rounded-xl", "flex-shrink-0", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-8", "h-8"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"], [1, "flex-1"], [1, "text-2xl", "font-bold", "mb-2", 3, "ngClass"], [1, "text-lg", "mb-4", 3, "ngClass"], [1, "text-sm", 3, "ngClass"], [3, "keyStrengthsClick", "criticalGapsClick", "quickWinsClick", "summary", "viewMode", "shopCounts", "focusAreaCounts", "metricCounts", "quickWinsCount"], ["id", "section-unified-goals", 1, "space-y-6", "scroll-mt-24"], [3, "phaseClick", "timeline", "viewMode"], [3, "goalClick", "matrix", "viewMode"], [3, "steps", "viewMode"], [3, "viewMode", "sectionIcon"], ["title", "Unified Goals", 3, "icon", "viewMode"], [1, "grid", "gap-6", 2, "grid-template-columns", "repeat(auto-fit, minmax(340px, 1fr))"], [3, "goal", "viewMode"], [3, "goalClick", "sourceBadgeClick", "relatedMetricsClick", "learnMoreClick", "goal", "viewMode"], ["id", "section-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, "text-2xl", "font-bold", "mb-3", 3, "ngClass"], [1, "text-lg", "leading-relaxed", 3, "ngClass"], [3, "grade", "gradeRationale", "viewMode"], [3, "close", "isLightMode", "isOpen"], [3, "close", "modeSelected", "viewMode", "currentMode", "isOpen"], [3, "markAsReviewed", "viewMode", "selfContentStatus", "isLoading"]], template: function SymphiqProfileAnalysisUnifiedDashboardComponent_Template(rf, ctx) { if (rf & 1) {
105216
+ } }, inputs: { viewMode: [1, "viewMode"], embedded: [1, "embedded"], isLoading: [1, "isLoading"], profile: [1, "profile"], funnelAnalysis: [1, "funnelAnalysis"], unifiedProfileAnalysis: [1, "unifiedProfileAnalysis"], sourceProfileAnalyses: [1, "sourceProfileAnalyses"], isLoadingSourceAnalysis: [1, "isLoadingSourceAnalysis"], scrollEvent: [1, "scrollEvent"], scrollElement: [1, "scrollElement"], isOnboarded: [1, "isOnboarded"], forDemo: [1, "forDemo"], maxAccessibleStepId: [1, "maxAccessibleStepId"], itemStatus: [1, "itemStatus"], isMarkingAsReviewed: [1, "isMarkingAsReviewed"], requestedByUser: [1, "requestedByUser"] }, outputs: { markAsReviewedClick: "markAsReviewedClick", generateGoalsClick: "generateGoalsClick", stepClick: "stepClick", nextStepClick: "nextStepClick", sourceAnalysisRequest: "sourceAnalysisRequest" }, features: [i0.ɵɵNgOnChangesFeature], decls: 18, vars: 37, consts: [[1, "relative"], [1, "animated-bubbles", 2, "position", "fixed", "top", "0", "left", "0", "right", "0", "bottom", "0", "width", "100vw", "height", "100vh", "z-index", "1", "pointer-events", "none"], [3, "viewMode", "progress", "embedded"], [1, "relative", "z-[51]"], [3, "searchClick", "viewModeClick", "title", "subtitle", "currentSection", "viewMode", "viewModeLabel", "isLoading", "requestedByUser", "showControls", "embedded", "scrollEvent"], [3, "viewMode", "currentStepId", "showNextStepAction", "forDemo", "maxAccessibleStepId"], [1, "relative", "z-10", "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-12", "space-y-12", 3, "pb-32"], [3, "sections", "viewMode", "embedded", "scrollElement"], [3, "isLightMode", "isOpen"], [3, "viewMode", "currentMode", "isOpen"], [3, "viewMode", "selfContentStatus", "isLoading"], [3, "viewMode", "itemStatus", "currentStatus", "confettiIntensity", "title"], [3, "expandedChange", "scrollToTop", "toggleView", "isLightMode", "isCompactMode", "isExpanded"], [3, "navigate", "isLightMode", "sections", "activeSection"], [3, "viewMode"], [3, "isLightMode"], [3, "isLightMode", "allInsights", "allMetrics", "allCharts"], [3, "nextStepClick", "stepClick", "viewMode", "currentStepId", "showNextStepAction", "forDemo", "maxAccessibleStepId"], [1, "relative", "z-10", "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-12", "space-y-12"], ["title", "Loading Your Unified Analysis", "subtitle", "Please wait while we prepare your synthesized insights...", "size", "large", 3, "viewMode", "backdropBlur"], [1, "mb-12"], [1, "rounded-2xl", "p-8", "shadow-xl", "animate-fade-in-up", 3, "ngClass"], [1, "flex", "items-start", "gap-6"], [1, "p-4", "rounded-xl", "flex-shrink-0", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-8", "h-8"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"], [1, "flex-1"], [1, "text-2xl", "font-bold", "mb-2", 3, "ngClass"], [1, "text-lg", "mb-4", 3, "ngClass"], [1, "text-sm", 3, "ngClass"], [3, "keyStrengthsClick", "criticalGapsClick", "quickWinsClick", "summary", "viewMode", "shopCounts", "focusAreaCounts", "metricCounts", "quickWinsCount"], ["id", "section-unified-goals", 1, "space-y-6", "scroll-mt-24"], [3, "goalClick", "timeline", "viewMode", "goals"], [3, "goalClick", "matrix", "viewMode"], [3, "steps", "viewMode"], [3, "viewMode", "sectionIcon"], ["title", "Unified Goals", 3, "icon", "viewMode"], [1, "grid", "gap-6", 2, "grid-template-columns", "repeat(auto-fit, minmax(340px, 1fr))"], [3, "goal", "viewMode"], [3, "goalClick", "sourceBadgeClick", "relatedMetricsClick", "learnMoreClick", "goal", "viewMode"], ["id", "section-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, "text-2xl", "font-bold", "mb-3", 3, "ngClass"], [1, "text-lg", "leading-relaxed", 3, "ngClass"], [3, "grade", "gradeRationale", "viewMode"], [3, "close", "isLightMode", "isOpen"], [3, "close", "modeSelected", "viewMode", "currentMode", "isOpen"], [3, "markAsReviewed", "viewMode", "selfContentStatus", "isLoading"]], template: function SymphiqProfileAnalysisUnifiedDashboardComponent_Template(rf, ctx) { if (rf & 1) {
105103
105217
  i0.ɵɵelementStart(0, "div", 0);
105104
105218
  i0.ɵɵelement(1, "div", 1)(2, "symphiq-scroll-progress-bar", 2);
105105
105219
  i0.ɵɵelementStart(3, "div", 3)(4, "symphiq-dashboard-header", 4);
@@ -105332,7 +105446,8 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
105332
105446
  <symphiq-unified-timeline
105333
105447
  [timeline]="unifiedTimeline()"
105334
105448
  [viewMode]="viewMode()"
105335
- (phaseClick)="onTimelinePhaseClick($event)"
105449
+ [goals]="unifiedGoals()"
105450
+ (goalClick)="onGoalClick($event)"
105336
105451
  />
105337
105452
 
105338
105453
  <symphiq-unified-priority-matrix
@@ -105465,7 +105580,7 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
105465
105580
  type: HostListener,
105466
105581
  args: ['window:scroll']
105467
105582
  }] }); })();
105468
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqProfileAnalysisUnifiedDashboardComponent, { className: "SymphiqProfileAnalysisUnifiedDashboardComponent", filePath: "lib/components/profile-analysis-unified-dashboard/symphiq-profile-analysis-unified-dashboard.component.ts", lineNumber: 372 }); })();
105583
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqProfileAnalysisUnifiedDashboardComponent, { className: "SymphiqProfileAnalysisUnifiedDashboardComponent", filePath: "lib/components/profile-analysis-unified-dashboard/symphiq-profile-analysis-unified-dashboard.component.ts", lineNumber: 373 }); })();
105469
105584
 
105470
105585
  function SymphiqProfileMetricsAnalysesDashboardComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
105471
105586
  const _r1 = i0.ɵɵgetCurrentView();