@eric-emg/symphiq-components 1.3.63 → 1.3.65

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.
@@ -140,6 +140,14 @@ class ModalService {
140
140
  getCurrentState() {
141
141
  return this.modalState.value;
142
142
  }
143
+ updateNavigationStack(stack) {
144
+ const current = this.modalState.value;
145
+ this.modalState.next({
146
+ ...current,
147
+ navigationStack: stack,
148
+ previousState: stack.length > 0 ? stack[stack.length - 1] : null
149
+ });
150
+ }
143
151
  /**
144
152
  * Checks if the current modal context is from Profile Analysis Dashboard
145
153
  * by looking at the current modal state and navigation stack
@@ -25734,13 +25742,20 @@ class ConfidenceLevelCardComponent {
25734
25742
  qualitativeStatus: 'Complete Profile',
25735
25743
  quantitativeStatus: 'Full Analytics',
25736
25744
  description: 'Journey complete! Symphiq has all the context needed to deliver highly accurate, personalized recommendations. As you execute and your business evolves, keep your profiles updated for continued precision.'
25745
+ },
25746
+ 'unified-analysis': {
25747
+ grade: 'A+',
25748
+ percentage: 100,
25749
+ qualitativeStatus: 'Shop + Focus Areas + Metrics',
25750
+ quantitativeStatus: 'Full Synthesis',
25751
+ description: 'Maximum synthesis achieved! Symphiq has combined insights from all your source analyses—Shop, Focus Areas, and Metrics—into unified strategic goals. These recommendations represent the most comprehensive, cross-domain insights available for your business.'
25737
25752
  }
25738
25753
  };
25739
25754
  return dataMap[stepId] || dataMap['business-analysis'];
25740
25755
  }, ...(ngDevMode ? [{ debugName: "confidenceData" }] : []));
25741
25756
  this.shouldPulse = computed(() => {
25742
25757
  const grade = this.confidenceData().grade;
25743
- return grade.startsWith('C') || grade.startsWith('D') || grade.startsWith('F');
25758
+ return grade === 'A+' || grade.startsWith('C') || grade.startsWith('D') || grade.startsWith('F');
25744
25759
  }, ...(ngDevMode ? [{ debugName: "shouldPulse" }] : []));
25745
25760
  this.isLightMode = computed(() => this.viewMode() === ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "isLightMode" }] : []));
25746
25761
  this.effectivePotentialPercentage = computed(() => {
@@ -25758,7 +25773,7 @@ class ConfidenceLevelCardComponent {
25758
25773
  this.backgroundOverlayClasses = computed(() => {
25759
25774
  const grade = this.confidenceData().grade;
25760
25775
  const isDark = !this.isLightMode();
25761
- if (grade === 'A') {
25776
+ if (grade.startsWith('A')) {
25762
25777
  return isDark
25763
25778
  ? 'bg-gradient-to-br from-emerald-500/30 via-teal-500/20 to-emerald-500/30'
25764
25779
  : 'bg-gradient-to-br from-emerald-400/20 via-teal-400/10 to-emerald-400/20';
@@ -25793,7 +25808,7 @@ class ConfidenceLevelCardComponent {
25793
25808
  }, ...(ngDevMode ? [{ debugName: "gradeBadgeContainerClasses" }] : []));
25794
25809
  this.glowEffectClasses = computed(() => {
25795
25810
  const grade = this.confidenceData().grade;
25796
- if (grade === 'A') {
25811
+ if (grade.startsWith('A')) {
25797
25812
  return 'bg-emerald-500';
25798
25813
  }
25799
25814
  else if (grade.startsWith('B')) {
@@ -25807,7 +25822,7 @@ class ConfidenceLevelCardComponent {
25807
25822
  this.gradeBadgeClasses = computed(() => {
25808
25823
  const grade = this.confidenceData().grade;
25809
25824
  const isDark = !this.isLightMode();
25810
- if (grade === 'A') {
25825
+ if (grade.startsWith('A')) {
25811
25826
  return isDark
25812
25827
  ? 'bg-gradient-to-br from-emerald-500/30 to-teal-500/30 border-2 border-emerald-500/50 shadow-[0_0_20px_rgba(16,185,129,0.3)]'
25813
25828
  : 'bg-gradient-to-br from-emerald-50 to-teal-50 border-2 border-emerald-300/50 shadow-[0_0_20px_rgba(16,185,129,0.2)]';
@@ -25829,7 +25844,7 @@ class ConfidenceLevelCardComponent {
25829
25844
  this.gradeLabelClasses = computed(() => {
25830
25845
  const grade = this.confidenceData().grade;
25831
25846
  const isDark = !this.isLightMode();
25832
- if (grade === 'A') {
25847
+ if (grade.startsWith('A')) {
25833
25848
  return isDark ? 'text-emerald-300' : 'text-emerald-700';
25834
25849
  }
25835
25850
  else if (grade.startsWith('B')) {
@@ -25843,7 +25858,7 @@ class ConfidenceLevelCardComponent {
25843
25858
  this.gradeValueClasses = computed(() => {
25844
25859
  const grade = this.confidenceData().grade;
25845
25860
  const isDark = !this.isLightMode();
25846
- if (grade === 'A') {
25861
+ if (grade.startsWith('A')) {
25847
25862
  return isDark
25848
25863
  ? 'bg-gradient-to-b from-emerald-300 to-emerald-500 bg-clip-text text-transparent'
25849
25864
  : 'bg-gradient-to-b from-emerald-600 to-emerald-800 bg-clip-text text-transparent';
@@ -25873,7 +25888,7 @@ class ConfidenceLevelCardComponent {
25873
25888
  this.progressValueClasses = computed(() => {
25874
25889
  const grade = this.confidenceData().grade;
25875
25890
  const isDark = !this.isLightMode();
25876
- if (grade === 'A') {
25891
+ if (grade.startsWith('A')) {
25877
25892
  return isDark ? 'text-emerald-400' : 'text-emerald-600';
25878
25893
  }
25879
25894
  else if (grade.startsWith('B')) {
@@ -25893,7 +25908,7 @@ class ConfidenceLevelCardComponent {
25893
25908
  this.progressBarClasses = computed(() => {
25894
25909
  const grade = this.confidenceData().grade;
25895
25910
  const baseClasses = 'rounded-full overflow-hidden';
25896
- if (grade === 'A') {
25911
+ if (grade.startsWith('A')) {
25897
25912
  return `${baseClasses} bg-gradient-to-r from-emerald-500 via-teal-500 to-emerald-600`;
25898
25913
  }
25899
25914
  else if (grade.startsWith('B')) {
@@ -25909,7 +25924,7 @@ class ConfidenceLevelCardComponent {
25909
25924
  }, ...(ngDevMode ? [{ debugName: "shimmerClasses" }] : []));
25910
25925
  this.progressGlowClasses = computed(() => {
25911
25926
  const grade = this.confidenceData().grade;
25912
- if (grade === 'A') {
25927
+ if (grade.startsWith('A')) {
25913
25928
  return 'bg-gradient-to-r from-emerald-500 to-teal-500';
25914
25929
  }
25915
25930
  else if (grade.startsWith('B')) {
@@ -25980,7 +25995,7 @@ class ConfidenceLevelCardComponent {
25980
25995
  this.currentStepBadgeClasses = computed(() => {
25981
25996
  const grade = this.confidenceData().currentStepGrade;
25982
25997
  const isDark = !this.isLightMode();
25983
- if (grade === 'A') {
25998
+ if (grade?.startsWith('A')) {
25984
25999
  return isDark
25985
26000
  ? 'bg-emerald-500/20 text-emerald-400'
25986
26001
  : 'bg-emerald-100 text-emerald-700';
@@ -26008,7 +26023,7 @@ class ConfidenceLevelCardComponent {
26008
26023
  this.nextDashboardBadgeClasses = computed(() => {
26009
26024
  const grade = this.confidenceData().nextDashboardGrade;
26010
26025
  const isDark = !this.isLightMode();
26011
- if (grade === 'A') {
26026
+ if (grade?.startsWith('A')) {
26012
26027
  return isDark
26013
26028
  ? 'bg-emerald-500/10 text-emerald-500'
26014
26029
  : 'bg-emerald-50 text-emerald-600';
@@ -104269,6 +104284,7 @@ function UnifiedDashboardModalComponent_Conditional_0_Template(rf, ctx) { if (rf
104269
104284
  class UnifiedDashboardModalComponent {
104270
104285
  constructor() {
104271
104286
  this.viewMode = input(ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "viewMode" }] : []));
104287
+ this.loadingSourceAnalysisId = input(...(ngDevMode ? [undefined, { debugName: "loadingSourceAnalysisId" }] : []));
104272
104288
  this.priorityActionGoalClick = output();
104273
104289
  this.priorityActionRecommendationClick = output();
104274
104290
  this.sourceAnalysisClickRequest = output();
@@ -104405,11 +104421,7 @@ class UnifiedDashboardModalComponent {
104405
104421
  return data.loadedSourceAnalysisIds.map(id => parseInt(id, 10)).filter(id => !isNaN(id));
104406
104422
  }, ...(ngDevMode ? [{ debugName: "loadedSourceAnalysisIdsAsNumbers" }] : []));
104407
104423
  this.loadingSourceAnalysisIdAsNumber = computed(() => {
104408
- const data = this.unifiedGoalData();
104409
- if (!data?.loadingSourceAnalysisId)
104410
- return undefined;
104411
- const num = parseInt(data.loadingSourceAnalysisId, 10);
104412
- return isNaN(num) ? undefined : num;
104424
+ return this.loadingSourceAnalysisId();
104413
104425
  }, ...(ngDevMode ? [{ debugName: "loadingSourceAnalysisIdAsNumber" }] : []));
104414
104426
  this.modalDepth = computed(() => {
104415
104427
  let depth = 0;
@@ -104639,6 +104651,9 @@ class UnifiedDashboardModalComponent {
104639
104651
  const data = state.data;
104640
104652
  return data?.strategy?.title || 'Recommendations';
104641
104653
  }
104654
+ if (state.type === 'priority-actions-list') {
104655
+ return 'Priority Actions';
104656
+ }
104642
104657
  return 'Unknown';
104643
104658
  }
104644
104659
  onPriorityActionGoalClick(goalId) {
@@ -104681,7 +104696,7 @@ class UnifiedDashboardModalComponent {
104681
104696
  let _t;
104682
104697
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.modalContent = _t.first);
104683
104698
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.modalWrapper = _t.first);
104684
- } }, inputs: { viewMode: [1, "viewMode"] }, outputs: { priorityActionGoalClick: "priorityActionGoalClick", priorityActionRecommendationClick: "priorityActionRecommendationClick", sourceAnalysisClickRequest: "sourceAnalysisClickRequest" }, decls: 1, vars: 1, consts: [["modalWrapper", ""], ["modalContent", ""], [1, "fixed", "inset-0", "flex", "items-center", "justify-center", "p-4", "overflow-y-auto", 3, "z-index", "visibility"], [1, "fixed", "inset-0", "flex", "items-center", "justify-center", "p-4", "overflow-y-auto"], ["aria-hidden", "true", 1, "fixed", "inset-0", "backdrop-blur-sm", "transition-opacity", "duration-200", 3, "click", "ngClass"], [1, "relative", "w-full", "max-w-6xl", "rounded-2xl", "text-left", "overflow-hidden", "shadow-xl", "border", "backdrop-blur-xl", 3, "click", "ngClass"], [1, "px-6", "py-5", "border-b", "backdrop-blur-sm", 3, "ngClass"], [1, "flex", "items-start", "justify-between"], [1, "flex", "items-start", "gap-3", "flex-1", "min-w-0"], ["type", "button", 1, "mt-0.5", "p-1.5", "rounded-lg", "transition-all", "hover:scale-105", "active:scale-95", "cursor-pointer", "flex-shrink-0", 3, "ngClass"], [1, "flex-1", "min-w-0"], [1, "flex", "items-center", "gap-1.5", "mb-2", "text-xs"], [1, "flex", "items-center", "gap-2", "mb-2"], [1, "text-xl", "font-bold", "leading-tight", 3, "ngClass"], [1, "flex", "items-center", "gap-2", "ml-4", "flex-shrink-0"], [3, "priority", "viewMode"], [3, "timeframe", "viewMode"], ["type", "button", 1, "transition-all", "rounded-lg", "p-1", "hover:scale-110", "active:scale-90", "cursor-pointer", "relative", "ml-4", "flex-shrink-0", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-6", "h-6"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M6 18L18 6M6 6l12 12"], [1, "px-6", "py-8", "max-h-[80vh]", "overflow-y-auto", "backdrop-blur-sm", 3, "ngClass"], [3, "goal", "allMetrics", "allCharts", "loadedSourceAnalysisIds", "loadingSourceAnalysisId", "viewMode", "currentModalState"], [3, "objectives", "goalTitle", "viewMode"], [3, "goal", "contributingMetrics", "viewMode"], [3, "objective", "viewMode"], [3, "strategy", "viewMode", "allMetrics", "allCharts", "allInsights", "goalTitle", "objectiveTitle", "currentModalState"], [3, "items", "viewMode", "selectedIndex"], ["type", "button", 1, "mt-0.5", "p-1.5", "rounded-lg", "transition-all", "hover:scale-105", "active:scale-95", "cursor-pointer", "flex-shrink-0", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-5", "h-5"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M15 19l-7-7 7-7"], [1, "font-medium", 3, "ngClass"], ["type", "button", 1, "hover:underline", "cursor-pointer", "transition-colors", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-3", "h-3", "flex-shrink-0", 3, "ngClass"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 5l7 7-7 7"], [1, "text-xs", "font-semibold", "uppercase", "tracking-wider", 3, "ngClass"], [3, "sourceAnalysisClick", "metricClick", "contributingMetricsClick", "showObjectives", "close", "goal", "allMetrics", "allCharts", "loadedSourceAnalysisIds", "loadingSourceAnalysisId", "viewMode", "currentModalState"], [3, "metricClick", "goal", "contributingMetrics", "viewMode"], [3, "goalClick", "recommendationClick", "items", "viewMode", "selectedIndex"]], template: function UnifiedDashboardModalComponent_Template(rf, ctx) { if (rf & 1) {
104699
+ } }, inputs: { viewMode: [1, "viewMode"], loadingSourceAnalysisId: [1, "loadingSourceAnalysisId"] }, outputs: { priorityActionGoalClick: "priorityActionGoalClick", priorityActionRecommendationClick: "priorityActionRecommendationClick", sourceAnalysisClickRequest: "sourceAnalysisClickRequest" }, decls: 1, vars: 1, consts: [["modalWrapper", ""], ["modalContent", ""], [1, "fixed", "inset-0", "flex", "items-center", "justify-center", "p-4", "overflow-y-auto", 3, "z-index", "visibility"], [1, "fixed", "inset-0", "flex", "items-center", "justify-center", "p-4", "overflow-y-auto"], ["aria-hidden", "true", 1, "fixed", "inset-0", "backdrop-blur-sm", "transition-opacity", "duration-200", 3, "click", "ngClass"], [1, "relative", "w-full", "max-w-6xl", "rounded-2xl", "text-left", "overflow-hidden", "shadow-xl", "border", "backdrop-blur-xl", 3, "click", "ngClass"], [1, "px-6", "py-5", "border-b", "backdrop-blur-sm", 3, "ngClass"], [1, "flex", "items-start", "justify-between"], [1, "flex", "items-start", "gap-3", "flex-1", "min-w-0"], ["type", "button", 1, "mt-0.5", "p-1.5", "rounded-lg", "transition-all", "hover:scale-105", "active:scale-95", "cursor-pointer", "flex-shrink-0", 3, "ngClass"], [1, "flex-1", "min-w-0"], [1, "flex", "items-center", "gap-1.5", "mb-2", "text-xs"], [1, "flex", "items-center", "gap-2", "mb-2"], [1, "text-xl", "font-bold", "leading-tight", 3, "ngClass"], [1, "flex", "items-center", "gap-2", "ml-4", "flex-shrink-0"], [3, "priority", "viewMode"], [3, "timeframe", "viewMode"], ["type", "button", 1, "transition-all", "rounded-lg", "p-1", "hover:scale-110", "active:scale-90", "cursor-pointer", "relative", "ml-4", "flex-shrink-0", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-6", "h-6"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M6 18L18 6M6 6l12 12"], [1, "px-6", "py-8", "max-h-[80vh]", "overflow-y-auto", "backdrop-blur-sm", 3, "ngClass"], [3, "goal", "allMetrics", "allCharts", "loadedSourceAnalysisIds", "loadingSourceAnalysisId", "viewMode", "currentModalState"], [3, "objectives", "goalTitle", "viewMode"], [3, "goal", "contributingMetrics", "viewMode"], [3, "objective", "viewMode"], [3, "strategy", "viewMode", "allMetrics", "allCharts", "allInsights", "goalTitle", "objectiveTitle", "currentModalState"], [3, "items", "viewMode", "selectedIndex"], ["type", "button", 1, "mt-0.5", "p-1.5", "rounded-lg", "transition-all", "hover:scale-105", "active:scale-95", "cursor-pointer", "flex-shrink-0", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-5", "h-5"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M15 19l-7-7 7-7"], [1, "font-medium", 3, "ngClass"], ["type", "button", 1, "hover:underline", "cursor-pointer", "transition-colors", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-3", "h-3", "flex-shrink-0", 3, "ngClass"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 5l7 7-7 7"], [1, "text-xs", "font-semibold", "uppercase", "tracking-wider", 3, "ngClass"], [3, "sourceAnalysisClick", "metricClick", "contributingMetricsClick", "showObjectives", "close", "goal", "allMetrics", "allCharts", "loadedSourceAnalysisIds", "loadingSourceAnalysisId", "viewMode", "currentModalState"], [3, "metricClick", "goal", "contributingMetrics", "viewMode"], [3, "goalClick", "recommendationClick", "items", "viewMode", "selectedIndex"]], template: function UnifiedDashboardModalComponent_Template(rf, ctx) { if (rf & 1) {
104685
104700
  i0.ɵɵconditionalCreate(0, UnifiedDashboardModalComponent_Conditional_0_Template, 27, 32, "div", 2);
104686
104701
  } if (rf & 2) {
104687
104702
  i0.ɵɵconditional(ctx.isOpen() ? 0 : -1);
@@ -104904,7 +104919,7 @@ class UnifiedDashboardModalComponent {
104904
104919
  }
104905
104920
  `
104906
104921
  }]
104907
- }], () => [], { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], priorityActionGoalClick: [{ type: i0.Output, args: ["priorityActionGoalClick"] }], priorityActionRecommendationClick: [{ type: i0.Output, args: ["priorityActionRecommendationClick"] }], sourceAnalysisClickRequest: [{ type: i0.Output, args: ["sourceAnalysisClickRequest"] }], modalContent: [{
104922
+ }], () => [], { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], loadingSourceAnalysisId: [{ type: i0.Input, args: [{ isSignal: true, alias: "loadingSourceAnalysisId", required: false }] }], priorityActionGoalClick: [{ type: i0.Output, args: ["priorityActionGoalClick"] }], priorityActionRecommendationClick: [{ type: i0.Output, args: ["priorityActionRecommendationClick"] }], sourceAnalysisClickRequest: [{ type: i0.Output, args: ["sourceAnalysisClickRequest"] }], modalContent: [{
104908
104923
  type: ViewChild,
104909
104924
  args: ['modalContent']
104910
104925
  }], modalWrapper: [{
@@ -104919,6 +104934,33 @@ function UnifiedWelcomeBannerComponent_Conditional_8_Template(rf, ctx) { if (rf
104919
104934
  function UnifiedWelcomeBannerComponent_Conditional_9_Template(rf, ctx) { if (rf & 1) {
104920
104935
  i0.ɵɵtext(0, " Welcome to Your Unified Analysis ");
104921
104936
  } }
104937
+ function UnifiedWelcomeBannerComponent_Conditional_18_Template(rf, ctx) { if (rf & 1) {
104938
+ i0.ɵɵelementStart(0, "div", 12)(1, "div", 17);
104939
+ i0.ɵɵnamespaceSVG();
104940
+ i0.ɵɵelementStart(2, "svg", 18);
104941
+ i0.ɵɵelement(3, "path", 5);
104942
+ i0.ɵɵelementEnd()();
104943
+ i0.ɵɵnamespaceHTML();
104944
+ i0.ɵɵelementStart(4, "div", 6)(5, "p", 19);
104945
+ i0.ɵɵtext(6);
104946
+ i0.ɵɵelementEnd();
104947
+ i0.ɵɵelementStart(7, "p", 20);
104948
+ i0.ɵɵtext(8);
104949
+ i0.ɵɵelementEnd()()();
104950
+ } if (rf & 2) {
104951
+ const ctx_r0 = i0.ɵɵnextContext();
104952
+ i0.ɵɵproperty("ngClass", ctx_r0.synthesisBannerClasses());
104953
+ i0.ɵɵadvance();
104954
+ i0.ɵɵproperty("ngClass", ctx_r0.synthesisBannerIconClasses());
104955
+ i0.ɵɵadvance(4);
104956
+ i0.ɵɵproperty("ngClass", ctx_r0.synthesisBannerTitleClasses());
104957
+ i0.ɵɵadvance();
104958
+ i0.ɵɵtextInterpolate1(" ", ctx_r0.unifiedGoalsCount(), " Unified Goals Synthesized ");
104959
+ i0.ɵɵadvance();
104960
+ i0.ɵɵproperty("ngClass", ctx_r0.synthesisBannerTextClasses());
104961
+ i0.ɵɵadvance();
104962
+ i0.ɵɵtextInterpolate3(" We've combined ", ctx_r0.sourceGoalsCount(), " goals from ", ctx_r0.sourceAnalysesCount(), " source analyses into actionable strategic priorities for ", ctx_r0.businessName(), ". ");
104963
+ } }
104922
104964
  class UnifiedWelcomeBannerComponent {
104923
104965
  constructor() {
104924
104966
  this.viewMode = input(ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "viewMode" }] : []));
@@ -104928,6 +104970,7 @@ class UnifiedWelcomeBannerComponent {
104928
104970
  this.isUnifiedAnalysisComplete = input(false, ...(ngDevMode ? [{ debugName: "isUnifiedAnalysisComplete" }] : []));
104929
104971
  this.sourceAnalysesCount = input(0, ...(ngDevMode ? [{ debugName: "sourceAnalysesCount" }] : []));
104930
104972
  this.unifiedGoalsCount = input(0, ...(ngDevMode ? [{ debugName: "unifiedGoalsCount" }] : []));
104973
+ this.sourceGoalsCount = input(0, ...(ngDevMode ? [{ debugName: "sourceGoalsCount" }] : []));
104931
104974
  this.whatYoullSeeBelowItems = [
104932
104975
  { title: 'Unified Goals', description: 'Strategic goals synthesized from all your source analyses with clear priorities and expected impact' },
104933
104976
  { title: 'Implementation Timeline', description: 'A phased roadmap showing when to tackle each goal for optimal results' },
@@ -104955,9 +104998,17 @@ class UnifiedWelcomeBannerComponent {
104955
104998
  ? 'text-white'
104956
104999
  : 'bg-gradient-to-r from-emerald-600 to-cyan-600 bg-clip-text text-transparent', ...(ngDevMode ? [{ debugName: "titleClasses" }] : []));
104957
105000
  this.textClasses = computed(() => this.isDark() ? 'text-slate-300' : 'text-slate-700', ...(ngDevMode ? [{ debugName: "textClasses" }] : []));
105001
+ this.synthesisBannerClasses = computed(() => this.isDark()
105002
+ ? 'bg-gradient-to-r from-blue-900/40 to-indigo-900/40 border border-blue-700/50'
105003
+ : 'bg-gradient-to-r from-blue-50 to-indigo-50 border border-blue-200', ...(ngDevMode ? [{ debugName: "synthesisBannerClasses" }] : []));
105004
+ this.synthesisBannerIconClasses = computed(() => this.isDark()
105005
+ ? 'bg-blue-500/20 text-blue-400'
105006
+ : 'bg-blue-100 text-blue-600', ...(ngDevMode ? [{ debugName: "synthesisBannerIconClasses" }] : []));
105007
+ this.synthesisBannerTitleClasses = computed(() => this.isDark() ? 'text-white' : 'text-slate-900', ...(ngDevMode ? [{ debugName: "synthesisBannerTitleClasses" }] : []));
105008
+ this.synthesisBannerTextClasses = computed(() => this.isDark() ? 'text-slate-300' : 'text-slate-700', ...(ngDevMode ? [{ debugName: "synthesisBannerTextClasses" }] : []));
104958
105009
  }
104959
105010
  static { this.ɵfac = function UnifiedWelcomeBannerComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || UnifiedWelcomeBannerComponent)(); }; }
104960
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UnifiedWelcomeBannerComponent, selectors: [["symphiq-unified-welcome-banner"]], inputs: { viewMode: [1, "viewMode"], businessName: [1, "businessName"], isOnboarded: [1, "isOnboarded"], analysisDate: [1, "analysisDate"], isUnifiedAnalysisComplete: [1, "isUnifiedAnalysisComplete"], sourceAnalysesCount: [1, "sourceAnalysesCount"], unifiedGoalsCount: [1, "unifiedGoalsCount"] }, decls: 22, vars: 15, consts: [[1, "rounded-2xl", "border", "shadow-lg", "overflow-hidden", 3, "ngClass"], [1, "px-8", "py-8", 3, "ngClass"], [1, "flex", "items-start", "gap-6"], [1, "flex-shrink-0", "w-16", "h-16", "rounded-2xl", "flex", "items-center", "justify-center", 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", "sm:text-3xl", "font-bold", "mb-3", 3, "ngClass"], [1, "grid", "grid-cols-1", "lg:grid-cols-3", "gap-6", "mb-6"], [1, "lg:col-span-2", "space-y-3"], [1, "text-base", "leading-relaxed", 3, "ngClass"], [1, "font-semibold"], [1, "lg:col-span-1"], ["currentStepId", "unified-analysis", 3, "viewMode", "isCurrentStepComplete"], [1, "mt-6", "block", 3, "viewMode", "items", "analysisDate"], ["title", "Maximize Your Unified Insights", "onboardedTitle", "Keep Your Unified Goals Current", "description", "To get the most comprehensive unified goals, ensure you've completed your Shop Analysis, Focus Area Analyses, and Metric Analyses. The more context Symphiq has about your business, the more precise and actionable your unified recommendations become.", "onboardedDescription", "As you complete more analyses or update existing ones, your Unified Goals will be refined to reflect your current business context. Regenerate your unified analysis periodically to ensure recommendations stay aligned with your evolving strategy and priorities.", 1, "mt-6", "block", 3, "viewMode", "isOnboarded"]], template: function UnifiedWelcomeBannerComponent_Template(rf, ctx) { if (rf & 1) {
105011
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UnifiedWelcomeBannerComponent, selectors: [["symphiq-unified-welcome-banner"]], inputs: { viewMode: [1, "viewMode"], businessName: [1, "businessName"], isOnboarded: [1, "isOnboarded"], analysisDate: [1, "analysisDate"], isUnifiedAnalysisComplete: [1, "isUnifiedAnalysisComplete"], sourceAnalysesCount: [1, "sourceAnalysesCount"], unifiedGoalsCount: [1, "unifiedGoalsCount"], sourceGoalsCount: [1, "sourceGoalsCount"] }, decls: 23, vars: 16, consts: [[1, "rounded-2xl", "border", "shadow-lg", "overflow-hidden", 3, "ngClass"], [1, "px-8", "py-8", 3, "ngClass"], [1, "flex", "items-start", "gap-6"], [1, "flex-shrink-0", "w-16", "h-16", "rounded-2xl", "flex", "items-center", "justify-center", 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", "sm:text-3xl", "font-bold", "mb-3", 3, "ngClass"], [1, "grid", "grid-cols-1", "lg:grid-cols-3", "gap-6", "mb-6"], [1, "lg:col-span-2", "space-y-3"], [1, "text-base", "leading-relaxed", 3, "ngClass"], [1, "font-semibold"], [1, "mt-4", "p-4", "rounded-xl", "flex", "items-start", "gap-4", 3, "ngClass"], [1, "lg:col-span-1"], ["currentStepId", "unified-analysis", 3, "viewMode", "isCurrentStepComplete"], [1, "mt-6", "block", 3, "viewMode", "items", "analysisDate"], ["title", "Maximize Your Unified Insights", "onboardedTitle", "Keep Your Unified Goals Current", "description", "To get the most comprehensive unified goals, ensure you've completed your Shop Analysis, Focus Area Analyses, and Metric Analyses. The more context Symphiq has about your business, the more precise and actionable your unified recommendations become.", "onboardedDescription", "As you complete more analyses or update existing ones, your Unified Goals will be refined to reflect your current business context. Regenerate your unified analysis periodically to ensure recommendations stay aligned with your evolving strategy and priorities.", 1, "mt-6", "block", 3, "viewMode", "isOnboarded"], [1, "flex-shrink-0", "p-2", "rounded-lg", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-5", "h-5"], [1, "font-semibold", "text-base", "mb-1", 3, "ngClass"], [1, "text-sm", 3, "ngClass"]], template: function UnifiedWelcomeBannerComponent_Template(rf, ctx) { if (rf & 1) {
104961
105012
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "div", 3);
104962
105013
  i0.ɵɵnamespaceSVG();
104963
105014
  i0.ɵɵelementStart(4, "svg", 4);
@@ -104974,11 +105025,13 @@ class UnifiedWelcomeBannerComponent {
104974
105025
  i0.ɵɵtext(16, "Why this matters:");
104975
105026
  i0.ɵɵelementEnd();
104976
105027
  i0.ɵɵtext(17, " Instead of managing separate recommendations from each analysis, the Unified Analysis consolidates them into actionable goals with clear priorities, timelines, and expected impact. This ensures you focus on what will drive the most value for your business. ");
105028
+ i0.ɵɵelementEnd();
105029
+ i0.ɵɵconditionalCreate(18, UnifiedWelcomeBannerComponent_Conditional_18_Template, 9, 8, "div", 12);
105030
+ i0.ɵɵelementEnd();
105031
+ i0.ɵɵelementStart(19, "div", 13);
105032
+ i0.ɵɵelement(20, "symphiq-confidence-level-card", 14);
104977
105033
  i0.ɵɵelementEnd()();
104978
- i0.ɵɵelementStart(18, "div", 12);
104979
- i0.ɵɵelement(19, "symphiq-confidence-level-card", 13);
104980
- i0.ɵɵelementEnd()();
104981
- i0.ɵɵelement(20, "symphiq-what-youll-see-below", 14)(21, "symphiq-continue-your-journey", 15);
105034
+ i0.ɵɵelement(21, "symphiq-what-youll-see-below", 15)(22, "symphiq-continue-your-journey", 16);
104982
105035
  i0.ɵɵelementEnd()()()();
104983
105036
  } if (rf & 2) {
104984
105037
  i0.ɵɵproperty("ngClass", ctx.containerClasses());
@@ -104996,7 +105049,9 @@ class UnifiedWelcomeBannerComponent {
104996
105049
  i0.ɵɵtextInterpolate1(" The Unified Analysis synthesizes insights from all your source analyses\u2014Shop Analysis, Focus Area Analyses, and Metric Analyses\u2014into cohesive strategic goals for ", ctx.businessName(), ". These unified goals represent the highest-priority opportunities identified across your entire business context. ");
104997
105050
  i0.ɵɵadvance();
104998
105051
  i0.ɵɵproperty("ngClass", ctx.textClasses());
104999
- i0.ɵɵadvance(5);
105052
+ i0.ɵɵadvance(4);
105053
+ i0.ɵɵconditional(ctx.unifiedGoalsCount() > 0 ? 18 : -1);
105054
+ i0.ɵɵadvance(2);
105000
105055
  i0.ɵɵproperty("viewMode", ctx.viewMode())("isCurrentStepComplete", ctx.isUnifiedAnalysisComplete());
105001
105056
  i0.ɵɵadvance();
105002
105057
  i0.ɵɵproperty("viewMode", ctx.viewMode())("items", ctx.whatYoullSeeBelowItems)("analysisDate", ctx.formattedAnalysisDate());
@@ -105038,6 +105093,25 @@ class UnifiedWelcomeBannerComponent {
105038
105093
  <p [ngClass]="textClasses()" class="text-base leading-relaxed">
105039
105094
  <strong class="font-semibold">Why this matters:</strong> Instead of managing separate recommendations from each analysis, the Unified Analysis consolidates them into actionable goals with clear priorities, timelines, and expected impact. This ensures you focus on what will drive the most value for your business.
105040
105095
  </p>
105096
+
105097
+ <!-- Synthesis Summary Banner -->
105098
+ @if (unifiedGoalsCount() > 0) {
105099
+ <div [ngClass]="synthesisBannerClasses()" class="mt-4 p-4 rounded-xl flex items-start gap-4">
105100
+ <div [ngClass]="synthesisBannerIconClasses()" class="flex-shrink-0 p-2 rounded-lg">
105101
+ <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
105102
+ <path 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"></path>
105103
+ </svg>
105104
+ </div>
105105
+ <div class="flex-1">
105106
+ <p [ngClass]="synthesisBannerTitleClasses()" class="font-semibold text-base mb-1">
105107
+ {{ unifiedGoalsCount() }} Unified Goals Synthesized
105108
+ </p>
105109
+ <p [ngClass]="synthesisBannerTextClasses()" class="text-sm">
105110
+ We've combined {{ sourceGoalsCount() }} goals from {{ sourceAnalysesCount() }} source analyses into actionable strategic priorities for {{ businessName() }}.
105111
+ </p>
105112
+ </div>
105113
+ </div>
105114
+ }
105041
105115
  </div>
105042
105116
 
105043
105117
  <div class="lg:col-span-1">
@@ -105071,8 +105145,8 @@ class UnifiedWelcomeBannerComponent {
105071
105145
  </div>
105072
105146
  `
105073
105147
  }]
105074
- }], null, { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], businessName: [{ type: i0.Input, args: [{ isSignal: true, alias: "businessName", required: false }] }], isOnboarded: [{ type: i0.Input, args: [{ isSignal: true, alias: "isOnboarded", required: false }] }], analysisDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "analysisDate", required: false }] }], isUnifiedAnalysisComplete: [{ type: i0.Input, args: [{ isSignal: true, alias: "isUnifiedAnalysisComplete", required: false }] }], sourceAnalysesCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "sourceAnalysesCount", required: false }] }], unifiedGoalsCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "unifiedGoalsCount", required: false }] }] }); })();
105075
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UnifiedWelcomeBannerComponent, { className: "UnifiedWelcomeBannerComponent", filePath: "lib/components/profile-analysis-unified-dashboard/unified-welcome-banner.component.ts", lineNumber: 73 }); })();
105148
+ }], null, { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], businessName: [{ type: i0.Input, args: [{ isSignal: true, alias: "businessName", required: false }] }], isOnboarded: [{ type: i0.Input, args: [{ isSignal: true, alias: "isOnboarded", required: false }] }], analysisDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "analysisDate", required: false }] }], isUnifiedAnalysisComplete: [{ type: i0.Input, args: [{ isSignal: true, alias: "isUnifiedAnalysisComplete", required: false }] }], sourceAnalysesCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "sourceAnalysesCount", required: false }] }], unifiedGoalsCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "unifiedGoalsCount", required: false }] }], sourceGoalsCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "sourceGoalsCount", required: false }] }] }); })();
105149
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UnifiedWelcomeBannerComponent, { className: "UnifiedWelcomeBannerComponent", filePath: "lib/components/profile-analysis-unified-dashboard/unified-welcome-banner.component.ts", lineNumber: 92 }); })();
105076
105150
 
105077
105151
  const _c0$7 = () => [];
105078
105152
  const _c1$3 = a0 => ({ name: "flag", source: a0 });
@@ -105135,7 +105209,7 @@ function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Condition
105135
105209
  i0.ɵɵelementEnd();
105136
105210
  } if (rf & 2) {
105137
105211
  const ctx_r1 = i0.ɵɵnextContext(2);
105138
- i0.ɵɵproperty("viewMode", ctx_r1.viewMode())("businessName", ctx_r1.businessName())("isOnboarded", ctx_r1.isOnboarded())("analysisDate", ctx_r1.unifiedAnalysisDate())("isUnifiedAnalysisComplete", !ctx_r1.isLoading() && !ctx_r1.isGenerating())("sourceAnalysesCount", ctx_r1.sourceAnalysesCount())("unifiedGoalsCount", ctx_r1.unifiedGoals().length);
105212
+ i0.ɵɵproperty("viewMode", ctx_r1.viewMode())("businessName", ctx_r1.businessName())("isOnboarded", ctx_r1.isOnboarded())("analysisDate", ctx_r1.unifiedAnalysisDate())("isUnifiedAnalysisComplete", !ctx_r1.isLoading() && !ctx_r1.isGenerating())("sourceAnalysesCount", ctx_r1.sourceAnalysesCount())("unifiedGoalsCount", ctx_r1.unifiedGoals().length)("sourceGoalsCount", ctx_r1.totalSourceGoalsCount());
105139
105213
  i0.ɵɵadvance();
105140
105214
  i0.ɵɵproperty("summary", ctx_r1.executiveSummary())("viewMode", ctx_r1.viewMode())("shopCounts", ctx_r1.shopCounts())("focusAreaCounts", ctx_r1.focusAreaCounts())("metricCounts", ctx_r1.metricCounts());
105141
105215
  i0.ɵɵadvance();
@@ -105187,7 +105261,7 @@ function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Condition
105187
105261
  function SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Template(rf, ctx) { if (rf & 1) {
105188
105262
  i0.ɵɵelementStart(0, "main", 16);
105189
105263
  i0.ɵɵconditionalCreate(1, SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_1_Template, 1, 2, "symphiq-loading-card", 17);
105190
- i0.ɵɵconditionalCreate(2, SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Template, 6, 21);
105264
+ i0.ɵɵconditionalCreate(2, SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_2_Template, 6, 22);
105191
105265
  i0.ɵɵconditionalCreate(3, SymphiqProfileAnalysisUnifiedDashboardComponent_Conditional_6_Conditional_3_Template, 1, 1);
105192
105266
  i0.ɵɵelementEnd();
105193
105267
  } if (rf & 2) {
@@ -105460,16 +105534,9 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
105460
105534
  this.priorityMatrix = computed(() => {
105461
105535
  const matrixData = this.analysisData()?.unifiedPriorityMatrix;
105462
105536
  const goals = this.unifiedGoals();
105463
- console.log('[PriorityMatrix] Raw matrixData:', matrixData);
105464
- console.log('[PriorityMatrix] Goals available:', goals.map(g => ({ id: g.id, title: g.title })));
105465
105537
  if (matrixData) {
105466
- console.log('[PriorityMatrix] quickWins items:', matrixData.quickWins);
105467
- console.log('[PriorityMatrix] majorProjects items:', matrixData.majorProjects);
105468
- console.log('[PriorityMatrix] fillIns items:', matrixData.fillIns);
105469
- console.log('[PriorityMatrix] thankless items:', matrixData.thankless);
105470
105538
  const findGoal = (id, quadrant) => {
105471
105539
  const found = goals.find(g => g.id === id);
105472
- console.log(`[PriorityMatrix] ${quadrant} - Looking for goal id="${id}", found:`, found ? found.title : 'NOT FOUND');
105473
105540
  return found;
105474
105541
  };
105475
105542
  const result = {
@@ -105478,15 +105545,8 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
105478
105545
  fillIns: (matrixData.fillIns || []).map(item => findGoal(item.relatedGoalId, 'fillIns')).filter((g) => !!g),
105479
105546
  thankless: (matrixData.thankless || []).map(item => findGoal(item.relatedGoalId, 'thankless')).filter((g) => !!g)
105480
105547
  };
105481
- console.log('[PriorityMatrix] Final result:', {
105482
- quickWins: result.quickWins.length,
105483
- majorProjects: result.majorProjects.length,
105484
- fillIns: result.fillIns.length,
105485
- thankless: result.thankless.length
105486
- });
105487
105548
  return result;
105488
105549
  }
105489
- console.log('[PriorityMatrix] No matrixData, using fallback based on priority');
105490
105550
  return {
105491
105551
  quickWins: goals.filter(g => g.priority === 'HIGH'),
105492
105552
  majorProjects: goals.filter(g => g.priority === 'MEDIUM'),
@@ -105705,13 +105765,43 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
105705
105765
  }
105706
105766
  }
105707
105767
  onPriorityActionRecommendationClick(recommendationId) {
105708
- const result = this.findRecommendationInSourceAnalyses(recommendationId);
105709
- if (result) {
105710
- this.modalService.navigateToSourceRecommendation(result.recommendation, result.strategy, result.objective, result.goal, result.sourceAnalysisRef, result.unifiedGoal, this.viewMode());
105768
+ const unifiedResult = this.findRecommendationInUnifiedGoals(recommendationId);
105769
+ if (unifiedResult) {
105770
+ const currentState = this.modalService.getCurrentState();
105771
+ this.modalService.openStrategyRecommendationsModal(unifiedResult.strategy, unifiedResult.objective.title, unifiedResult.goal.title, this.viewMode(), recommendationId, unifiedResult.goal, unifiedResult.objective);
105772
+ const newState = this.modalService.getCurrentState();
105773
+ if (currentState.type === 'priority-actions-list') {
105774
+ this.modalService.updateNavigationStack([currentState, ...(newState.navigationStack || [])]);
105775
+ }
105776
+ return;
105777
+ }
105778
+ const sourceResult = this.findRecommendationInSourceAnalyses(recommendationId);
105779
+ if (sourceResult) {
105780
+ this.modalService.navigateToSourceRecommendation(sourceResult.recommendation, sourceResult.strategy, sourceResult.objective, sourceResult.goal, sourceResult.sourceAnalysisRef, sourceResult.unifiedGoal, this.viewMode());
105711
105781
  }
105712
105782
  else {
105713
- console.warn('[Priority Actions] Recommendation not found in loaded source analyses. ID:', recommendationId);
105783
+ console.warn('[Priority Actions] Recommendation not found. ID:', recommendationId);
105784
+ }
105785
+ }
105786
+ findRecommendationInUnifiedGoals(recommendationId) {
105787
+ const unifiedGoals = this.unifiedGoals();
105788
+ for (const goal of unifiedGoals) {
105789
+ for (const objective of goal.objectives || []) {
105790
+ for (const strategy of objective.strategies || []) {
105791
+ for (const recommendation of strategy.recommendations || []) {
105792
+ if (recommendation.id === recommendationId) {
105793
+ return {
105794
+ recommendation,
105795
+ strategy,
105796
+ objective: objective,
105797
+ goal
105798
+ };
105799
+ }
105800
+ }
105801
+ }
105802
+ }
105714
105803
  }
105804
+ return null;
105715
105805
  }
105716
105806
  findRecommendationInSourceAnalyses(recommendationId) {
105717
105807
  const sourceAnalysesMap = this.sourceAnalysesMap();
@@ -106096,7 +106186,7 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
106096
106186
  static { this.ɵfac = function SymphiqProfileAnalysisUnifiedDashboardComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SymphiqProfileAnalysisUnifiedDashboardComponent)(); }; }
106097
106187
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SymphiqProfileAnalysisUnifiedDashboardComponent, selectors: [["symphiq-profile-analysis-unified-dashboard"]], hostBindings: function SymphiqProfileAnalysisUnifiedDashboardComponent_HostBindings(rf, ctx) { if (rf & 1) {
106098
106188
  i0.ɵɵlistener("scroll", function SymphiqProfileAnalysisUnifiedDashboardComponent_scroll_HostBindingHandler() { return ctx.onScroll(); }, i0.ɵɵresolveWindow);
106099
- } }, 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: 16, vars: 31, 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, "priorityActionGoalClick", "priorityActionRecommendationClick", "sourceAnalysisClickRequest", "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", "block", 3, "viewMode", "businessName", "isOnboarded", "analysisDate", "isUnifiedAnalysisComplete", "sourceAnalysesCount", "unifiedGoalsCount"], [3, "viewAllPriorityActionsClick", "summary", "viewMode", "shopCounts", "focusAreaCounts", "metricCounts"], ["id", "section-unified-goals", 1, "space-y-6", "scroll-mt-24"], [3, "goalClick", "timeline", "viewMode", "goals"], [3, "goalClick", "matrix", "viewMode"], [3, "goalClick", "steps", "viewMode", "goals"], [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, "flex-1"], [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) {
106189
+ } }, 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: 16, vars: 32, 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, "priorityActionGoalClick", "priorityActionRecommendationClick", "sourceAnalysisClickRequest", "viewMode", "loadingSourceAnalysisId"], [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", "block", 3, "viewMode", "businessName", "isOnboarded", "analysisDate", "isUnifiedAnalysisComplete", "sourceAnalysesCount", "unifiedGoalsCount", "sourceGoalsCount"], [3, "viewAllPriorityActionsClick", "summary", "viewMode", "shopCounts", "focusAreaCounts", "metricCounts"], ["id", "section-unified-goals", 1, "space-y-6", "scroll-mt-24"], [3, "goalClick", "timeline", "viewMode", "goals"], [3, "goalClick", "matrix", "viewMode"], [3, "goalClick", "steps", "viewMode", "goals"], [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, "flex-1"], [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) {
106100
106190
  i0.ɵɵelementStart(0, "div", 0);
106101
106191
  i0.ɵɵelement(1, "div", 1)(2, "symphiq-scroll-progress-bar", 2);
106102
106192
  i0.ɵɵelementStart(3, "div", 3)(4, "symphiq-dashboard-header", 4);
@@ -106139,11 +106229,11 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
106139
106229
  i0.ɵɵadvance();
106140
106230
  i0.ɵɵconditional(!ctx.isLoading() && ctx.isGenerating() ? 11 : -1);
106141
106231
  i0.ɵɵadvance(2);
106142
- i0.ɵɵproperty("viewMode", ctx.viewMode());
106232
+ i0.ɵɵproperty("viewMode", ctx.viewMode())("loadingSourceAnalysisId", ctx.loadingSourceAnalysisId());
106143
106233
  i0.ɵɵadvance();
106144
106234
  i0.ɵɵproperty("isLightMode", ctx.isLightMode());
106145
106235
  i0.ɵɵadvance();
106146
- i0.ɵɵproperty("isLightMode", ctx.isLightMode())("allInsights", i0.ɵɵpureFunction0(30, _c0$7))("allMetrics", ctx.allMetrics())("allCharts", ctx.allCharts());
106236
+ i0.ɵɵproperty("isLightMode", ctx.isLightMode())("allInsights", i0.ɵɵpureFunction0(31, _c0$7))("allMetrics", ctx.allMetrics())("allCharts", ctx.allCharts());
106147
106237
  } }, dependencies: [CommonModule, i1$1.NgClass, DashboardHeaderComponent,
106148
106238
  ScrollProgressBarComponent,
106149
106239
  SearchModalComponent,
@@ -106262,6 +106352,7 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
106262
106352
  [isUnifiedAnalysisComplete]="!isLoading() && !isGenerating()"
106263
106353
  [sourceAnalysesCount]="sourceAnalysesCount()"
106264
106354
  [unifiedGoalsCount]="unifiedGoals().length"
106355
+ [sourceGoalsCount]="totalSourceGoalsCount()"
106265
106356
  />
106266
106357
 
106267
106358
  <!-- Executive Summary -->
@@ -106410,6 +106501,7 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
106410
106501
 
106411
106502
  <symphiq-unified-dashboard-modal
106412
106503
  [viewMode]="viewMode()"
106504
+ [loadingSourceAnalysisId]="loadingSourceAnalysisId()"
106413
106505
  (priorityActionGoalClick)="onPriorityActionGoalClick($event)"
106414
106506
  (priorityActionRecommendationClick)="onPriorityActionRecommendationClick($event)"
106415
106507
  (sourceAnalysisClickRequest)="handleSourceAnalysisClickFromModal($event)"
@@ -106428,7 +106520,7 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
106428
106520
  type: HostListener,
106429
106521
  args: ['window:scroll']
106430
106522
  }] }); })();
106431
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqProfileAnalysisUnifiedDashboardComponent, { className: "SymphiqProfileAnalysisUnifiedDashboardComponent", filePath: "lib/components/profile-analysis-unified-dashboard/symphiq-profile-analysis-unified-dashboard.component.ts", lineNumber: 342 }); })();
106523
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqProfileAnalysisUnifiedDashboardComponent, { className: "SymphiqProfileAnalysisUnifiedDashboardComponent", filePath: "lib/components/profile-analysis-unified-dashboard/symphiq-profile-analysis-unified-dashboard.component.ts", lineNumber: 344 }); })();
106432
106524
 
106433
106525
  function SymphiqProfileMetricsAnalysesDashboardComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
106434
106526
  const _r1 = i0.ɵɵgetCurrentView();