@eric-emg/symphiq-components 1.2.105 → 1.2.107

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.
package/index.d.ts CHANGED
@@ -1,13 +1,14 @@
1
1
  import * as _jebgem_model from '@jebgem/model';
2
- import { InsightBlockInterface, PerformanceMetricInterface, AiChartInterface, ProfileItemInterface, ViewModeEnum, ProfileAnalysisRecommendationActionStepInterface, MetricStatusEnum, TrendDirectionEnum, CompetitiveScoreEnum, ProfileSectionInterface, ProfileSubsectionInterface, ProfileInterface, BreakdownMetricInterface, UserInterface, FunnelAnalysisInterface, OverallAssessmentInterface, ProfileAnalysisRecommendationInterface, ProfileItemTypeEnum, IconObjectInterface as IconObjectInterface$1, NapkinVisualInterface, HierarchyDataInterface, ChartTypeEnum, IconSourceEnum } from '@jebgem/model';
2
+ import { ProfileItemInterface, ViewModeEnum, GoalV3Interface, ObjectiveV3Interface, StrategyV3Interface, OperationalCategoryInterface, CategoryStrengthInterface, CategoryGapInterface, CategoryOpportunityInterface, InsightBlockInterface, ProfileAnalysisRecommendationInterface, PerformanceMetricInterface, KeyStrengthInterface, CriticalGapInterface, FocusAreaTopPriorityInterface, AiChartInterface, ProfileAnalysisRecommendationActionStepInterface, MetricStatusEnum, TrendDirectionEnum, CompetitiveScoreEnum, ProfileSectionInterface, ProfileSubsectionInterface, ProfileInterface, BreakdownMetricInterface, UserInterface, FunnelAnalysisInterface, PerformanceOverviewStructuredV3Interface, OverallAssessmentInterface, ProfileItemTypeEnum, IconObjectInterface as IconObjectInterface$1, NapkinVisualInterface, HierarchyDataInterface, ProfileAnalysisInterface, ProfileAnalysisTypeEnum, FocusAreaDetailInterface, IconSourceEnum, FocusAreaDomainEnum, ProfileAnalysisSectionV3Interface, ExecutiveSummaryInterface, FocusAreaExecutiveSummaryInterface, MetricExecutiveSummaryInterface, ChartTypeEnum } from '@jebgem/model';
3
3
  export * from '@jebgem/model';
4
4
  import * as _angular_core from '@angular/core';
5
- import { AfterViewInit, ElementRef, WritableSignal, OnInit, OnDestroy, OnChanges, SimpleChanges, Renderer2, EventEmitter } from '@angular/core';
5
+ import { AfterViewInit, ElementRef, WritableSignal, OnInit, OnDestroy, OnChanges, SimpleChanges, EventEmitter, Renderer2 } from '@angular/core';
6
6
  import * as rxjs from 'rxjs';
7
7
  import { Observable } from 'rxjs';
8
8
  import { HttpClient } from '@angular/common/http';
9
9
  import * as _angular_platform_browser from '@angular/platform-browser';
10
10
  import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
11
+ import * as _jebgem_model_lib_funnel_analysis_performance_overview_structured_v3_interface from '@jebgem/model/lib/funnel-analysis/performance-overview-structured-v3.interface';
11
12
 
12
13
  interface FunnelMetricOrder {
13
14
  metric: string;
@@ -39,17 +40,249 @@ interface VisualizationData {
39
40
  title: string;
40
41
  data: unknown;
41
42
  }
43
+ interface FunnelStrengthInterface {
44
+ id?: string;
45
+ title?: string;
46
+ description?: string;
47
+ relatedMetrics?: string[];
48
+ category?: string;
49
+ priority?: number;
50
+ businessContext?: string;
51
+ impactScore?: number;
52
+ quantifiedValue?: string;
53
+ }
54
+ interface FunnelWeaknessInterface {
55
+ id?: string;
56
+ title?: string;
57
+ description?: string;
58
+ relatedMetrics?: string[];
59
+ category?: string;
60
+ priority?: number;
61
+ businessContext?: string;
62
+ impactScore?: number;
63
+ quantifiedValue?: string;
64
+ severityLevel?: 'CRITICAL' | 'HIGH' | 'MEDIUM';
65
+ suggestedActions?: string[];
66
+ }
67
+ interface ItemDetailModalData {
68
+ item: ProfileItemInterface;
69
+ viewMode: ViewModeEnum;
70
+ itemType?: string;
71
+ sectionTitle?: string;
72
+ subsectionTitle?: string;
73
+ isCompactMode?: boolean;
74
+ fromProfileAnalysis?: boolean;
75
+ }
76
+ interface GoalDetailModalData {
77
+ goal: GoalV3Interface;
78
+ viewMode: ViewModeEnum;
79
+ sourceCategory?: string;
80
+ sourceGapTitle?: string;
81
+ }
82
+ interface GoalObjectivesModalData {
83
+ goal: GoalV3Interface;
84
+ viewMode: ViewModeEnum;
85
+ }
86
+ interface ObjectiveStrategiesModalData {
87
+ objective: ObjectiveV3Interface;
88
+ goalTitle?: string;
89
+ viewMode: ViewModeEnum;
90
+ }
91
+ interface StrategyRecommendationsModalData {
92
+ strategy: StrategyV3Interface;
93
+ objectiveTitle?: string;
94
+ goalTitle?: string;
95
+ viewMode: ViewModeEnum;
96
+ }
97
+ interface CategoryDetailModalData {
98
+ category: OperationalCategoryInterface;
99
+ viewMode: ViewModeEnum;
100
+ scrollToSection?: 'strengths' | 'gaps' | 'opportunities';
101
+ }
102
+ interface StrengthDetailModalData {
103
+ strength: CategoryStrengthInterface;
104
+ categoryTitle: string;
105
+ viewMode: ViewModeEnum;
106
+ allFunnelStrengths?: FunnelStrengthInterface[];
107
+ }
108
+ interface GapDetailModalData {
109
+ gap: CategoryGapInterface;
110
+ categoryTitle: string;
111
+ viewMode: ViewModeEnum;
112
+ }
113
+ interface OpportunityDetailModalData {
114
+ opportunity: CategoryOpportunityInterface;
115
+ categoryTitle: string;
116
+ viewMode: ViewModeEnum;
117
+ allStrengths?: FunnelStrengthInterface[];
118
+ allGoals?: GoalV3Interface[];
119
+ }
120
+ interface GoalInsightsListModalData {
121
+ insights: InsightBlockInterface[];
122
+ goalContext: {
123
+ title: string;
124
+ description: string;
125
+ icon: string;
126
+ };
127
+ viewMode?: ViewModeEnum;
128
+ sourceCategory?: string;
129
+ sourceGapTitle?: string;
130
+ }
131
+ interface GoalBusinessInsightsListModalData {
132
+ businessInsights: ProfileAnalysisRecommendationInterface[];
133
+ goalContext: {
134
+ title: string;
135
+ description: string;
136
+ icon: string;
137
+ };
138
+ viewMode: ViewModeEnum;
139
+ sourceCategory?: string;
140
+ sourceGapTitle?: string;
141
+ }
142
+ interface RecommendationInsightsListModalData {
143
+ insights: InsightBlockInterface[];
144
+ recommendationContext: {
145
+ title: string;
146
+ description: string;
147
+ icon: string;
148
+ };
149
+ goalTitle?: string;
150
+ objectiveTitle?: string;
151
+ strategyTitle?: string;
152
+ }
153
+ interface RecommendationBusinessInsightsListModalData {
154
+ businessInsights: ProfileAnalysisRecommendationInterface[];
155
+ recommendationContext: {
156
+ title: string;
157
+ description: string;
158
+ icon: string;
159
+ };
160
+ goalTitle?: string;
161
+ objectiveTitle?: string;
162
+ strategyTitle?: string;
163
+ }
164
+ interface MetricsListModalData {
165
+ metrics: PerformanceMetricInterface[];
166
+ goalContext?: {
167
+ title: string;
168
+ description: string;
169
+ icon?: string;
170
+ businessContext?: string;
171
+ priority?: number;
172
+ };
173
+ insightContext?: {
174
+ title: string;
175
+ description: string;
176
+ businessContext: string;
177
+ priority: number;
178
+ };
179
+ recommendationContext?: {
180
+ title: string;
181
+ description: string;
182
+ };
183
+ directlyAffectedMetricId?: string;
184
+ indirectlyAffectedMetricIds?: string[];
185
+ viewMode?: ViewModeEnum;
186
+ sourceCategory?: string;
187
+ sourceGapTitle?: string;
188
+ goalTitle?: string;
189
+ objectiveTitle?: string;
190
+ strategyTitle?: string;
191
+ }
192
+ interface BusinessInsightDetailModalData {
193
+ recommendation: ProfileAnalysisRecommendationInterface;
194
+ goalContext: {
195
+ title: string;
196
+ description: string;
197
+ icon: string;
198
+ };
199
+ viewMode: ViewModeEnum;
200
+ }
201
+ interface KeyStrengthsListModalData {
202
+ keyStrengths: KeyStrengthInterface[];
203
+ viewMode: ViewModeEnum;
204
+ }
205
+ interface CriticalGapsListModalData {
206
+ criticalGaps: CriticalGapInterface[];
207
+ viewMode: ViewModeEnum;
208
+ }
209
+ interface KeyStrengthDetailModalData {
210
+ strength: KeyStrengthInterface;
211
+ viewMode: ViewModeEnum;
212
+ }
213
+ interface CriticalGapDetailModalData {
214
+ gap: CriticalGapInterface;
215
+ viewMode: ViewModeEnum;
216
+ categoryTitle?: string;
217
+ }
218
+ interface FunnelStrengthsListModalData {
219
+ strengths: FunnelStrengthInterface[];
220
+ count: number;
221
+ isLightMode: boolean;
222
+ }
223
+ interface FunnelWeaknessesListModalData {
224
+ weaknesses: FunnelWeaknessInterface[];
225
+ count: number;
226
+ isLightMode: boolean;
227
+ }
228
+ interface FunnelStrengthDetailModalData {
229
+ strength: FunnelStrengthInterface;
230
+ totalCount: number;
231
+ isLightMode: boolean;
232
+ }
233
+ interface FunnelWeaknessDetailModalData {
234
+ weakness: FunnelWeaknessInterface;
235
+ totalCount: number;
236
+ isLightMode: boolean;
237
+ }
238
+ interface TopPrioritiesListModalData {
239
+ priorities: FocusAreaTopPriorityInterface[];
240
+ viewMode: ViewModeEnum;
241
+ focusAreaName?: string;
242
+ }
243
+ interface TopPriorityDetailModalData {
244
+ priority: FocusAreaTopPriorityInterface;
245
+ index: number;
246
+ totalCount: number;
247
+ viewMode: ViewModeEnum;
248
+ focusAreaName?: string;
249
+ }
250
+ interface FocusAreaStrengthsListModalData {
251
+ strengths: CategoryStrengthInterface[];
252
+ viewMode: ViewModeEnum;
253
+ categoryTitle: string;
254
+ }
255
+ interface FocusAreaGapsListModalData {
256
+ gaps: CategoryGapInterface[];
257
+ viewMode: ViewModeEnum;
258
+ categoryTitle: string;
259
+ }
260
+ interface FocusAreaOpportunitiesListModalData {
261
+ opportunities: CategoryOpportunityInterface[];
262
+ viewMode: ViewModeEnum;
263
+ categoryTitle: string;
264
+ }
265
+ interface FocusAreaStrengthDetailModalData {
266
+ strength: CategoryStrengthInterface;
267
+ categoryTitle: string;
268
+ viewMode: ViewModeEnum;
269
+ totalCount?: number;
270
+ }
271
+ interface FocusAreaGapDetailModalData {
272
+ gap: CategoryGapInterface;
273
+ categoryTitle: string;
274
+ viewMode: ViewModeEnum;
275
+ totalCount?: number;
276
+ }
277
+ interface FocusAreaOpportunityDetailModalData {
278
+ opportunity: CategoryOpportunityInterface;
279
+ categoryTitle: string;
280
+ viewMode: ViewModeEnum;
281
+ totalCount?: number;
282
+ }
42
283
  interface ModalState {
43
- type: 'insight' | 'metric' | 'chart' | 'insights-list' | 'metrics-list' | 'charts-list' | 'recommendations-list' | 'competitive-analysis' | 'competitive-gap' | 'visualization' | 'recommendation-action-steps' | null;
284
+ type: 'insight' | 'metric' | 'chart' | 'insights-list' | 'goal-insights-list' | 'goal-business-insights-list' | 'recommendation-business-insights-list' | 'recommendation-insights-list' | 'business-insight-detail' | 'metrics-list' | 'charts-list' | 'recommendations-list' | 'competitive-analysis' | 'competitive-gap' | 'visualization' | 'recommendation-action-steps' | 'item-detail' | 'goal-detail' | 'goal-objectives' | 'objective-strategies' | 'strategy-recommendations' | 'category-detail' | 'strength-detail' | 'gap-detail' | 'opportunity-detail' | 'key-strengths-list' | 'critical-gaps-list' | 'key-strength-detail' | 'critical-gap-detail' | 'funnel-strengths-list' | 'funnel-weaknesses-list' | 'funnel-strength-detail' | 'funnel-weakness-detail' | 'top-priorities-list' | 'top-priority-detail' | 'focus-area-strengths-list' | 'focus-area-gaps-list' | 'focus-area-opportunities-list' | 'focus-area-strength-detail' | 'focus-area-gap-detail' | 'focus-area-opportunity-detail' | null;
44
285
  data: InsightBlockInterface | InsightBlockInterface[] | PerformanceMetricInterface | PerformanceMetricInterface[] | AiChartInterface | {
45
- metrics: PerformanceMetricInterface[];
46
- insightContext?: {
47
- title: string;
48
- description: string;
49
- businessContext: string;
50
- priority: number;
51
- };
52
- } | {
53
286
  charts: AiChartInterface[];
54
287
  insightContext?: {
55
288
  title: string;
@@ -80,30 +313,82 @@ interface ModalState {
80
313
  title?: string;
81
314
  actionSteps: ProfileAnalysisRecommendationActionStepInterface[];
82
315
  viewMode: ViewModeEnum;
83
- } | VisualizationData | null;
316
+ } | ItemDetailModalData | VisualizationData | GoalDetailModalData | GoalObjectivesModalData | ObjectiveStrategiesModalData | StrategyRecommendationsModalData | CategoryDetailModalData | StrengthDetailModalData | GapDetailModalData | OpportunityDetailModalData | GoalInsightsListModalData | GoalBusinessInsightsListModalData | RecommendationBusinessInsightsListModalData | RecommendationInsightsListModalData | MetricsListModalData | BusinessInsightDetailModalData | KeyStrengthsListModalData | CriticalGapsListModalData | KeyStrengthDetailModalData | CriticalGapDetailModalData | FunnelStrengthsListModalData | FunnelWeaknessesListModalData | FunnelStrengthDetailModalData | FunnelWeaknessDetailModalData | TopPrioritiesListModalData | TopPriorityDetailModalData | FocusAreaStrengthsListModalData | FocusAreaGapsListModalData | FocusAreaOpportunitiesListModalData | FocusAreaStrengthDetailModalData | FocusAreaGapDetailModalData | FocusAreaOpportunityDetailModalData | {
317
+ insight: InsightBlockInterface;
318
+ } | null;
84
319
  charts: AiChartInterface[];
85
320
  previousState?: ModalState | null;
86
321
  expandedSection?: string;
322
+ navigationStack?: ModalState[];
323
+ openedFromMainBody?: boolean;
87
324
  }
88
325
  declare class ModalService {
89
326
  private modalState;
90
327
  modalState$: rxjs.Observable<ModalState>;
328
+ viewInContextSignal: _angular_core.WritableSignal<{
329
+ itemId: string;
330
+ itemType?: string;
331
+ } | null>;
332
+ constructor();
333
+ /**
334
+ * Checks if the current modal context is from Profile Analysis Dashboard
335
+ * by looking at the current modal state and navigation stack
336
+ */
337
+ private isInProfileAnalysisContext;
91
338
  openInsightModal(insight: InsightBlockInterface, charts?: AiChartInterface[], previousState?: ModalState): void;
92
339
  openMetricModal(metric: PerformanceMetricInterface, charts?: AiChartInterface[], previousState?: ModalState, expandedSection?: string): void;
93
340
  openChartModal(chart: AiChartInterface, previousState?: ModalState): void;
94
341
  openInsightsListModal(insights: InsightBlockInterface[], charts?: AiChartInterface[]): void;
95
- openMetricsListModal(metrics: PerformanceMetricInterface[], charts?: AiChartInterface[], insightContext?: {
342
+ openGoalInsightsListModal(insights: InsightBlockInterface[], metrics: PerformanceMetricInterface[], charts: AiChartInterface[], goalContext: {
343
+ title: string;
344
+ description: string;
345
+ icon: string;
346
+ }, previousState?: ModalState, sourceCategory?: string, sourceGapTitle?: string): void;
347
+ openGoalBusinessInsightsListModal(businessInsights: ProfileAnalysisRecommendationInterface[], goalContext: {
348
+ title: string;
349
+ description: string;
350
+ icon: string;
351
+ }, viewMode: ViewModeEnum, previousState?: ModalState, sourceCategory?: string, sourceGapTitle?: string): void;
352
+ openRecommendationInsightsListModal(insights: InsightBlockInterface[], metrics: PerformanceMetricInterface[], charts: AiChartInterface[], recommendationContext: {
353
+ title: string;
354
+ description: string;
355
+ icon: string;
356
+ }, previousState?: ModalState, goalTitle?: string, objectiveTitle?: string, strategyTitle?: string): void;
357
+ openRecommendationBusinessInsightsListModal(businessInsights: ProfileAnalysisRecommendationInterface[], recommendationContext: {
358
+ title: string;
359
+ description: string;
360
+ icon: string;
361
+ }, previousState?: ModalState, goalTitle?: string, objectiveTitle?: string, strategyTitle?: string): void;
362
+ navigateToBusinessInsightDetail(recommendation: ProfileAnalysisRecommendationInterface, goalContext: {
363
+ title: string;
364
+ description: string;
365
+ icon: string;
366
+ }, viewMode: ViewModeEnum): void;
367
+ openMetricsListModal(metrics: PerformanceMetricInterface[], charts?: AiChartInterface[], goalContext?: {
96
368
  title: string;
97
369
  description: string;
98
370
  businessContext: string;
99
371
  priority: number;
372
+ }, previousState?: ModalState): void;
373
+ openGoalMetricsListModal(metrics: PerformanceMetricInterface[], charts: AiChartInterface[], goalContext: {
374
+ title: string;
375
+ description: string;
376
+ icon: string;
377
+ }, previousState?: ModalState, sourceCategory?: string, sourceGapTitle?: string): void;
378
+ openRecommendationMetricsListModal(metrics: PerformanceMetricInterface[], charts: AiChartInterface[], recommendationContext: {
379
+ title: string;
380
+ description: string;
381
+ }, directlyAffectedMetricId?: string, indirectlyAffectedMetricIds?: string[], previousState?: ModalState, hierarchyContext?: {
382
+ goalTitle?: string;
383
+ objectiveTitle?: string;
384
+ strategyTitle?: string;
100
385
  }): void;
101
386
  openChartsListModal(charts: AiChartInterface[], insightContext?: {
102
387
  title: string;
103
388
  description: string;
104
389
  businessContext: string;
105
390
  priority: number;
106
- }): void;
391
+ }, previousState?: ModalState): void;
107
392
  openRecommendationsListModal(recommendations: string[], insightContext: {
108
393
  title: string;
109
394
  description: string;
@@ -120,7 +405,42 @@ declare class ModalService {
120
405
  openVisualizationModal(visualization: VisualizationData, previousState?: ModalState): void;
121
406
  openCompetitiveGapModal(item: ProfileItemInterface, viewMode: ViewModeEnum, previousState?: ModalState): void;
122
407
  openRecommendationActionStepsModal(title: string | undefined, actionSteps: ProfileAnalysisRecommendationActionStepInterface[], viewMode: ViewModeEnum, previousState?: ModalState): void;
408
+ openItemDetailModal(item: ProfileItemInterface, viewMode: ViewModeEnum, itemType?: string, sectionTitle?: string, subsectionTitle?: string, previousState?: ModalState, isCompactMode?: boolean, fromProfileAnalysis?: boolean): void;
409
+ navigateToItemInModal(item: ProfileItemInterface, viewMode: ViewModeEnum, itemType?: string, sectionTitle?: string, subsectionTitle?: string, isCompactMode?: boolean, fromProfileAnalysis?: boolean): void;
410
+ navigateBackInModal(): void;
411
+ navigateToStackIndex(index: number): void;
412
+ triggerViewInContext(itemId: string, itemType?: string): void;
413
+ clearViewInContext(): void;
123
414
  goBack(previousState: ModalState): void;
415
+ isItemDetailModalOpen(): boolean;
416
+ openGoalDetailModal(goal: GoalV3Interface, viewMode: ViewModeEnum): void;
417
+ openGoalObjectivesModal(goal: GoalV3Interface, viewMode: ViewModeEnum): void;
418
+ navigateToGoalDetail(goal: GoalV3Interface, viewMode: ViewModeEnum): void;
419
+ navigateToGoalObjectives(goal: GoalV3Interface, viewMode: ViewModeEnum): void;
420
+ navigateToObjectiveStrategies(objective: ObjectiveV3Interface, goalTitle: string | undefined, viewMode: ViewModeEnum): void;
421
+ navigateToStrategyRecommendations(strategy: StrategyV3Interface, objectiveTitle: string | undefined, goalTitle: string | undefined, viewMode: ViewModeEnum): void;
422
+ openCategoryDetailModal(category: OperationalCategoryInterface, viewMode: ViewModeEnum, scrollToSection?: 'strengths' | 'gaps' | 'opportunities'): void;
423
+ navigateToStrengthDetail(strength: CategoryStrengthInterface, categoryTitle: string, viewMode: ViewModeEnum, allFunnelStrengths?: FunnelStrengthInterface[]): void;
424
+ navigateToGapDetail(gap: CategoryGapInterface, categoryTitle: string, viewMode: ViewModeEnum): void;
425
+ navigateToOpportunityDetail(opportunity: CategoryOpportunityInterface, categoryTitle: string, viewMode: ViewModeEnum, allStrengths?: FunnelStrengthInterface[], allGoals?: GoalV3Interface[]): void;
426
+ openKeyStrengthsListModal(keyStrengths: KeyStrengthInterface[], viewMode: ViewModeEnum): void;
427
+ openCriticalGapsListModal(criticalGaps: CriticalGapInterface[], viewMode: ViewModeEnum): void;
428
+ navigateToKeyStrengthDetail(strength: KeyStrengthInterface, viewMode: ViewModeEnum): void;
429
+ navigateToCriticalGapDetail(gap: CriticalGapInterface, viewMode: ViewModeEnum): void;
430
+ openFunnelStrengthsListModal(strengths: FunnelStrengthInterface[], isLightMode: boolean): void;
431
+ openFunnelWeaknessesListModal(weaknesses: FunnelWeaknessInterface[], isLightMode: boolean): void;
432
+ navigateToFunnelStrengthDetail(strength: FunnelStrengthInterface, isLightMode: boolean): void;
433
+ navigateToFunnelWeaknessDetail(weakness: FunnelWeaknessInterface, isLightMode: boolean): void;
434
+ openFunnelWeaknessDetailModal(weakness: InsightBlockInterface, parentModalState?: ModalState): void;
435
+ openFunnelStrengthDetailModal(strength: any, parentModalState?: ModalState): void;
436
+ openTopPrioritiesListModal(priorities: FocusAreaTopPriorityInterface[], viewMode: ViewModeEnum, focusAreaName?: string): void;
437
+ navigateToTopPriorityDetail(priority: FocusAreaTopPriorityInterface, index: number, viewMode: ViewModeEnum, focusAreaName?: string): void;
438
+ openFocusAreaStrengthsListModal(strengths: CategoryStrengthInterface[], viewMode: ViewModeEnum, categoryTitle: string): void;
439
+ navigateToFocusAreaStrengthDetail(strength: CategoryStrengthInterface, categoryTitle: string, viewMode: ViewModeEnum): void;
440
+ openFocusAreaGapsListModal(gaps: CategoryGapInterface[], viewMode: ViewModeEnum, categoryTitle: string): void;
441
+ navigateToFocusAreaGapDetail(gap: CategoryGapInterface, categoryTitle: string, viewMode: ViewModeEnum): void;
442
+ openFocusAreaOpportunitiesListModal(opportunities: CategoryOpportunityInterface[], viewMode: ViewModeEnum, categoryTitle: string): void;
443
+ navigateToFocusAreaOpportunityDetail(opportunity: CategoryOpportunityInterface, categoryTitle: string, viewMode: ViewModeEnum): void;
124
444
  closeModal(): void;
125
445
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ModalService, never>;
126
446
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<ModalService>;
@@ -182,6 +502,7 @@ interface MetricValueTooltipContent {
182
502
  current: number[];
183
503
  prior?: number[];
184
504
  };
505
+ currencySymbol?: string;
185
506
  }
186
507
  interface StatusBadgeTooltipContent {
187
508
  status: MetricStatusEnum;
@@ -196,6 +517,7 @@ interface StatusBadgeTooltipContent {
196
517
  description?: string;
197
518
  priority?: number;
198
519
  priorityExplanation?: string;
520
+ currencySymbol?: string;
199
521
  }
200
522
  interface TrendIndicatorTooltipContent {
201
523
  metricName: string;
@@ -210,6 +532,7 @@ interface TrendIndicatorTooltipContent {
210
532
  current: number[];
211
533
  prior?: number[];
212
534
  };
535
+ currencySymbol?: string;
213
536
  }
214
537
  interface PriorityBadgeTooltipContent {
215
538
  priority: number;
@@ -241,6 +564,7 @@ interface CompetitiveBenchmarkTooltipContent {
241
564
  metricName?: string;
242
565
  currentValue?: number;
243
566
  unit?: string;
567
+ currencySymbol?: string;
244
568
  }
245
569
  interface InsightsListTooltipContent {
246
570
  title: string;
@@ -267,6 +591,7 @@ interface CompetitiveStatusTooltipContent {
267
591
  unit: string;
268
592
  status?: CompetitiveScoreEnum;
269
593
  }>;
594
+ currencySymbol?: string;
270
595
  }
271
596
  interface FunnelStageCompetitiveTooltipContent {
272
597
  funnelStage: string;
@@ -298,14 +623,15 @@ interface FunnelStageCompetitiveTooltipContent {
298
623
  };
299
624
  unit: string;
300
625
  }>;
626
+ currencySymbol?: string;
301
627
  }
302
628
 
303
629
  declare class TooltipDataService {
304
630
  private formatCache;
305
631
  private metricLookupCache;
306
- extractMetricTooltipData(metric: PerformanceMetricInterface, chart?: AiChartInterface): MetricValueTooltipContent;
307
- extractStatusTooltipData(metric: PerformanceMetricInterface): StatusBadgeTooltipContent;
308
- extractTrendTooltipData(metric: PerformanceMetricInterface, chart?: AiChartInterface): TrendIndicatorTooltipContent;
632
+ extractMetricTooltipData(metric: PerformanceMetricInterface, chart?: AiChartInterface, currencySymbol?: string): MetricValueTooltipContent;
633
+ extractStatusTooltipData(metric: PerformanceMetricInterface, currencySymbol?: string): StatusBadgeTooltipContent;
634
+ extractTrendTooltipData(metric: PerformanceMetricInterface, chart?: AiChartInterface, currencySymbol?: string): TrendIndicatorTooltipContent;
309
635
  extractPriorityTooltipData(insight: InsightBlockInterface): PriorityBadgeTooltipContent;
310
636
  extractBreakdownRowTooltipData(metric: PerformanceMetricInterface): BreakdownRowTooltipContent;
311
637
  findMetricByName(name: string, metrics: PerformanceMetricInterface[]): PerformanceMetricInterface | undefined;
@@ -321,7 +647,7 @@ declare class TooltipDataService {
321
647
  getPriorityLabel(priority: number): string;
322
648
  isInverseMetric(metricName: string): boolean;
323
649
  formatDimensionValue(value?: string): string;
324
- extractCompetitiveBenchmarkTooltipData(metric: PerformanceMetricInterface): CompetitiveBenchmarkTooltipContent | null;
650
+ extractCompetitiveBenchmarkTooltipData(metric: PerformanceMetricInterface, currencySymbol?: string): CompetitiveBenchmarkTooltipContent | null;
325
651
  hasCompetitiveBenchmark(metric: PerformanceMetricInterface): boolean;
326
652
  getCompetitiveScoreLabel(score: string): string;
327
653
  private determineUnit;
@@ -330,7 +656,7 @@ declare class TooltipDataService {
330
656
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<TooltipDataService>;
331
657
  }
332
658
 
333
- type ViewMode = 'simplified' | 'compact' | 'expanded';
659
+ type ViewMode = 'compact' | 'expanded';
334
660
  type LayoutMode = 'bento' | 'grid' | 'masonry';
335
661
  declare class ViewModeService {
336
662
  private viewMode;
@@ -344,7 +670,6 @@ declare class ViewModeService {
344
670
  toggleViewMode(): void;
345
671
  setViewMode(mode: ViewMode): void;
346
672
  setLayoutMode(mode: LayoutMode): void;
347
- isSimplified(): boolean;
348
673
  isCompact(): boolean;
349
674
  isExpanded(): boolean;
350
675
  isBentoLayout(): boolean;
@@ -611,9 +936,39 @@ declare class BusinessProfileSearchService {
611
936
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<BusinessProfileSearchService>;
612
937
  }
613
938
 
939
+ interface RelatedFunnelContent {
940
+ insights: InsightBlockInterface[];
941
+ metrics: PerformanceMetricInterface[];
942
+ }
943
+ interface RelatedBusinessContent {
944
+ insights: ProfileAnalysisRecommendationInterface[];
945
+ }
946
+ interface CrossDashboardRelationships {
947
+ funnelAnalysis?: RelatedFunnelContent;
948
+ businessAnalysis?: RelatedBusinessContent;
949
+ }
950
+ declare class CrossDashboardRelationshipsService {
951
+ getRelatedFunnelInsights(goal: GoalV3Interface, allInsights: InsightBlockInterface[]): InsightBlockInterface[];
952
+ getRelatedFunnelMetrics(goal: GoalV3Interface, allMetrics: PerformanceMetricInterface[]): PerformanceMetricInterface[];
953
+ getRelatedBusinessInsights(goal: GoalV3Interface, allBusinessInsights: ProfileAnalysisRecommendationInterface[]): ProfileAnalysisRecommendationInterface[];
954
+ getRelatedContentForGoal(goal: GoalV3Interface, allInsights: InsightBlockInterface[], allMetrics: PerformanceMetricInterface[], allBusinessInsights: ProfileAnalysisRecommendationInterface[]): CrossDashboardRelationships;
955
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CrossDashboardRelationshipsService, never>;
956
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<CrossDashboardRelationshipsService>;
957
+ }
958
+
959
+ interface BreadcrumbLevel {
960
+ label: string;
961
+ clickable: boolean;
962
+ onClick?: () => void;
963
+ }
964
+
614
965
  declare class ModalComponent {
615
966
  isLightMode: _angular_core.InputSignal<boolean>;
616
967
  viewMode: _angular_core.InputSignal<ViewModeEnum>;
968
+ allMetrics: _angular_core.InputSignal<PerformanceMetricInterface[]>;
969
+ allInsights: _angular_core.InputSignal<InsightBlockInterface[]>;
970
+ allCharts: _angular_core.InputSignal<AiChartInterface[]>;
971
+ currencySymbol: _angular_core.InputSignal<string>;
617
972
  private metricNameCache;
618
973
  private allMetricsSignal;
619
974
  private modalStateSignal;
@@ -622,7 +977,7 @@ declare class ModalComponent {
622
977
  private animatedTrendValues;
623
978
  private animationFrames;
624
979
  isOpen: _angular_core.Signal<boolean>;
625
- modalType: _angular_core.Signal<"metric" | "insight" | "chart" | "insights-list" | "metrics-list" | "charts-list" | "recommendations-list" | "competitive-analysis" | null>;
980
+ modalType: _angular_core.Signal<"insight" | "metric" | "chart" | "insights-list" | "goal-insights-list" | "goal-business-insights-list" | "business-insight-detail" | "metrics-list" | "charts-list" | "recommendations-list" | "competitive-analysis" | "funnel-strengths-list" | "funnel-weaknesses-list" | "funnel-strength-detail" | "funnel-weakness-detail" | null>;
626
981
  charts: _angular_core.Signal<AiChartInterface[]>;
627
982
  modalKey: _angular_core.Signal<number>;
628
983
  insightData: _angular_core.Signal<InsightBlockInterface | null>;
@@ -635,7 +990,13 @@ declare class ModalComponent {
635
990
  chartPieData: _angular_core.Signal<AiChartInterface | null>;
636
991
  chartAreaData: _angular_core.Signal<AiChartInterface | null>;
637
992
  insightsListData: _angular_core.Signal<InsightBlockInterface[] | null>;
638
- metricsListData: _angular_core.Signal<InsightBlockInterface | PerformanceMetricInterface | AiChartInterface | (InsightBlockInterface | PerformanceMetricInterface)[] | null>;
993
+ goalInsightsListData: _angular_core.Signal<InsightBlockInterface[] | null>;
994
+ goalInsightsContext: _angular_core.Signal<{
995
+ title: string;
996
+ description: string;
997
+ icon: string;
998
+ } | null>;
999
+ metricsListData: _angular_core.Signal<InsightBlockInterface | PerformanceMetricInterface | AiChartInterface | FunnelStrengthsListModalData | FunnelWeaknessesListModalData | FunnelStrengthDetailModalData | FunnelWeaknessDetailModalData | (InsightBlockInterface | PerformanceMetricInterface)[] | null>;
639
1000
  metricsListMetrics: _angular_core.Signal<PerformanceMetricInterface[]>;
640
1001
  metricsListInsightContext: _angular_core.Signal<{
641
1002
  title: string;
@@ -643,7 +1004,7 @@ declare class ModalComponent {
643
1004
  businessContext: string;
644
1005
  priority: number;
645
1006
  } | null>;
646
- chartsListData: _angular_core.Signal<InsightBlockInterface | PerformanceMetricInterface | AiChartInterface | (InsightBlockInterface | PerformanceMetricInterface)[] | null>;
1007
+ chartsListData: _angular_core.Signal<InsightBlockInterface | PerformanceMetricInterface | AiChartInterface | FunnelStrengthsListModalData | FunnelWeaknessesListModalData | FunnelStrengthDetailModalData | FunnelWeaknessDetailModalData | (InsightBlockInterface | PerformanceMetricInterface)[] | null>;
647
1008
  chartsListCharts: _angular_core.Signal<AiChartInterface[]>;
648
1009
  chartsListInsightContext: _angular_core.Signal<{
649
1010
  title: string;
@@ -651,7 +1012,7 @@ declare class ModalComponent {
651
1012
  businessContext: string;
652
1013
  priority: number;
653
1014
  } | null>;
654
- recommendationsListData: _angular_core.Signal<InsightBlockInterface | PerformanceMetricInterface | AiChartInterface | (InsightBlockInterface | PerformanceMetricInterface)[] | null>;
1015
+ recommendationsListData: _angular_core.Signal<InsightBlockInterface | PerformanceMetricInterface | AiChartInterface | FunnelStrengthsListModalData | FunnelWeaknessesListModalData | FunnelStrengthDetailModalData | FunnelWeaknessDetailModalData | (InsightBlockInterface | PerformanceMetricInterface)[] | null>;
655
1016
  recommendationsListRecommendations: _angular_core.Signal<string[]>;
656
1017
  recommendationsListInsightContext: _angular_core.Signal<{
657
1018
  title: string;
@@ -659,7 +1020,7 @@ declare class ModalComponent {
659
1020
  businessContext: string;
660
1021
  priority: number;
661
1022
  } | null>;
662
- competitiveAnalysisData: _angular_core.Signal<InsightBlockInterface | PerformanceMetricInterface | AiChartInterface | (InsightBlockInterface | PerformanceMetricInterface)[] | null>;
1023
+ competitiveAnalysisData: _angular_core.Signal<InsightBlockInterface | PerformanceMetricInterface | AiChartInterface | FunnelStrengthsListModalData | FunnelWeaknessesListModalData | FunnelStrengthDetailModalData | FunnelWeaknessDetailModalData | (InsightBlockInterface | PerformanceMetricInterface)[] | null>;
663
1024
  competitiveAnalysisContext: _angular_core.Signal<{
664
1025
  title: string;
665
1026
  description: string;
@@ -667,37 +1028,68 @@ declare class ModalComponent {
667
1028
  competitiveAnalysis: string;
668
1029
  priority: number;
669
1030
  } | null>;
1031
+ funnelStrengthsListData: _angular_core.Signal<FunnelStrengthInterface[] | null>;
1032
+ funnelStrengthsListCount: _angular_core.Signal<number>;
1033
+ funnelWeaknessesListData: _angular_core.Signal<FunnelWeaknessInterface[] | null>;
1034
+ funnelWeaknessesListCount: _angular_core.Signal<number>;
1035
+ funnelStrengthDetailData: _angular_core.Signal<FunnelStrengthInterface | null>;
1036
+ funnelStrengthDetailTotalCount: _angular_core.Signal<number>;
1037
+ funnelWeaknessDetailData: _angular_core.Signal<FunnelWeaknessInterface | null>;
1038
+ funnelWeaknessDetailTotalCount: _angular_core.Signal<number>;
1039
+ goalBusinessInsightsListData: _angular_core.Signal<any[] | null>;
1040
+ goalBusinessInsightsContext: _angular_core.Signal<{
1041
+ title: string;
1042
+ description: string;
1043
+ icon: string;
1044
+ } | null>;
1045
+ isBusinessInsightDetailModal: _angular_core.Signal<boolean>;
1046
+ businessInsightDetailData: _angular_core.Signal<{
1047
+ recommendation: any;
1048
+ goalContext: {
1049
+ title: string;
1050
+ description: string;
1051
+ icon: string;
1052
+ };
1053
+ viewMode: ViewModeEnum;
1054
+ } | null>;
670
1055
  modalHeaderPriorityBadge: _angular_core.Signal<number | null>;
671
1056
  competitiveAnalysisPanelClass: _angular_core.Signal<string>;
672
- allMetrics: _angular_core.Signal<PerformanceMetricInterface[]>;
673
- allInsights: _angular_core.Signal<InsightBlockInterface[]>;
674
- allCharts: _angular_core.Signal<AiChartInterface[]>;
1057
+ protected computedAllMetrics: _angular_core.Signal<PerformanceMetricInterface[]>;
1058
+ protected computedAllInsights: _angular_core.Signal<InsightBlockInterface[]>;
1059
+ protected computedAllCharts: _angular_core.Signal<AiChartInterface[]>;
1060
+ protected allBusinessInsights: _angular_core.Signal<ProfileAnalysisRecommendationInterface[]>;
675
1061
  hasPreviousState: _angular_core.Signal<boolean>;
676
1062
  currentModalState: _angular_core.Signal<{
677
- type: "insight" | "metric" | "chart" | "insights-list" | "metrics-list" | "charts-list" | "recommendations-list" | "competitive-analysis" | null;
678
- data: InsightBlockInterface | PerformanceMetricInterface | AiChartInterface | (InsightBlockInterface | PerformanceMetricInterface)[] | null;
1063
+ type: "insight" | "metric" | "chart" | "insights-list" | "goal-insights-list" | "goal-business-insights-list" | "metrics-list" | "charts-list" | "recommendations-list" | "competitive-analysis" | "funnel-strengths-list" | "funnel-weaknesses-list" | "funnel-strength-detail" | "funnel-weakness-detail" | "business-insight-detail" | null;
1064
+ data: InsightBlockInterface | PerformanceMetricInterface | AiChartInterface | (InsightBlockInterface | PerformanceMetricInterface)[] | FunnelStrengthsListModalData | FunnelWeaknessesListModalData | FunnelStrengthDetailModalData | FunnelWeaknessDetailModalData | null;
679
1065
  charts: AiChartInterface[];
680
1066
  openedAt: number;
681
- previousState: {
682
- type: "insight" | "metric" | "chart" | "insights-list" | "metrics-list" | "charts-list" | "recommendations-list" | "competitive-analysis";
683
- data: InsightBlockInterface | PerformanceMetricInterface | AiChartInterface | (InsightBlockInterface | PerformanceMetricInterface)[];
684
- charts: AiChartInterface[];
685
- previousState: null;
686
- } | null;
1067
+ previousState: ModalState | null;
687
1068
  expandedSection: string | undefined;
1069
+ navigationStack: ModalState[];
688
1070
  }>;
689
1071
  expandedSection: _angular_core.Signal<string | undefined>;
690
1072
  modalTitle: _angular_core.Signal<string>;
1073
+ modalDepth: _angular_core.Signal<number>;
1074
+ baseZIndex: _angular_core.Signal<number>;
1075
+ backdropZIndex: _angular_core.Signal<number>;
1076
+ contentZIndex: _angular_core.Signal<number>;
691
1077
  private modalService;
1078
+ private breadcrumbService;
1079
+ shouldShowBreadcrumbs: _angular_core.Signal<boolean>;
1080
+ breadcrumbs: _angular_core.Signal<BreadcrumbLevel[]>;
692
1081
  constructor();
693
1082
  getInsightContextPriorityBadgeClass(priority: number): string;
694
1083
  private computeModalTitle;
695
1084
  closeModal(): void;
696
1085
  openInsightModal(insight: InsightBlockInterface): void;
1086
+ openBusinessInsightDetail(businessInsight: any): void;
697
1087
  openMetricModalFromList(metric: PerformanceMetricInterface): void;
698
1088
  openChartModalFromList(chart: AiChartInterface): void;
699
1089
  goBack(): void;
1090
+ navigateToList(): void;
700
1091
  formatMetricName(name: string): string;
1092
+ getPriorityBadgeClasses(priority: number): string;
701
1093
  formatMetricValue(metric: PerformanceMetricInterface): string;
702
1094
  getMetricTrendClass(metric: PerformanceMetricInterface): string;
703
1095
  animateMetricsList(metrics: PerformanceMetricInterface[]): void;
@@ -708,7 +1100,7 @@ declare class ModalComponent {
708
1100
  formatAnimatedMetricValue(metric: PerformanceMetricInterface, animatedValue: number): string;
709
1101
  setMetricsAndInsights(metrics: PerformanceMetricInterface[], insights: InsightBlockInterface[], allCharts?: AiChartInterface[]): void;
710
1102
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ModalComponent, never>;
711
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ModalComponent, "symphiq-funnel-analysis-modal", never, { "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1103
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ModalComponent, "symphiq-funnel-analysis-modal", never, { "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; "allMetrics": { "alias": "allMetrics"; "required": false; "isSignal": true; }; "allInsights": { "alias": "allInsights"; "required": false; "isSignal": true; }; "allCharts": { "alias": "allCharts"; "required": false; "isSignal": true; }; "currencySymbol": { "alias": "currencySymbol"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
712
1104
  }
713
1105
 
714
1106
  interface NavSection {
@@ -764,6 +1156,45 @@ declare class SearchService {
764
1156
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<SearchService>;
765
1157
  }
766
1158
 
1159
+ declare class ProfileContextService {
1160
+ private contextIndex;
1161
+ indexProfile(sections: ProfileSectionInterface[], recommendations?: ProfileAnalysisRecommendationInterface[]): void;
1162
+ getRegions(): ProfileItemInterface[];
1163
+ getSeasons(): ProfileItemInterface[];
1164
+ getPriceTiers(): ProfileItemInterface[];
1165
+ getCustomerSegments(): ProfileItemInterface[];
1166
+ getProductCategories(): ProfileItemInterface[];
1167
+ getFocusAreas(): ProfileItemInterface[];
1168
+ getItemById(id: string): ProfileItemInterface | undefined;
1169
+ getItemsByIds(ids: string[]): ProfileItemInterface[];
1170
+ getCompetitors(): ProfileItemInterface[];
1171
+ getRecommendationById(id: string): ProfileAnalysisRecommendationInterface | undefined;
1172
+ getCompetitorsByIds(ids: string[]): ProfileItemInterface[];
1173
+ getRecommendationsByProfileItemIds(itemIds: string[]): ProfileAnalysisRecommendationInterface[];
1174
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProfileContextService, never>;
1175
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<ProfileContextService>;
1176
+ }
1177
+
1178
+ declare class ProfileItemLookupService {
1179
+ private profileData;
1180
+ setProfile(profile: ProfileInterface | undefined): void;
1181
+ findItemById(id: string): ProfileItemInterface | undefined;
1182
+ findItemsByIds(ids: string[]): ProfileItemInterface[];
1183
+ findItemWithContext(id: string): {
1184
+ item: ProfileItemInterface;
1185
+ sectionTitle: string;
1186
+ subsectionTitle: string;
1187
+ } | undefined;
1188
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProfileItemLookupService, never>;
1189
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<ProfileItemLookupService>;
1190
+ }
1191
+
1192
+ declare enum DisplayModeEnum {
1193
+ SIMPLIFIED = "SIMPLIFIED",
1194
+ COMPACT = "COMPACT",
1195
+ EXPANDED = "EXPANDED"
1196
+ }
1197
+
767
1198
  interface ScrollBaseDetail {
768
1199
  isScrolling: boolean;
769
1200
  }
@@ -783,17 +1214,20 @@ declare class SymphiqFunnelAnalysisDashboardComponent implements AfterViewInit {
783
1214
  viewModeService: ViewModeService;
784
1215
  searchService: SearchService;
785
1216
  private tooltipService;
1217
+ private profileContextService;
1218
+ private profileItemLookupService;
786
1219
  modalComponent?: ModalComponent;
787
1220
  dashboardContainer?: ElementRef<HTMLElement>;
788
1221
  protected readonly ViewModeEnum: typeof ViewModeEnum;
789
1222
  requestedByUser: _angular_core.InputSignal<UserInterface | undefined>;
790
1223
  viewMode: _angular_core.InputSignal<ViewModeEnum>;
791
1224
  funnelAnalysis: _angular_core.InputSignal<FunnelAnalysisInterface | undefined>;
1225
+ businessProfile: _angular_core.InputSignal<ProfileInterface | undefined>;
792
1226
  embedded: _angular_core.InputSignal<boolean>;
793
1227
  scrollEvent: _angular_core.InputSignal<ScrollCustomEvent | null | undefined>;
794
1228
  scrollElement: _angular_core.InputSignal<HTMLElement | null | undefined>;
795
1229
  isLoading: _angular_core.InputSignal<boolean | undefined>;
796
- useSampleData: _angular_core.InputSignal<boolean>;
1230
+ isOnboarded: _angular_core.InputSignal<boolean>;
797
1231
  selectedCategory: _angular_core.WritableSignal<string>;
798
1232
  reverseSortOrder: _angular_core.WritableSignal<boolean>;
799
1233
  selectedSectionFilter: _angular_core.WritableSignal<string>;
@@ -809,6 +1243,13 @@ declare class SymphiqFunnelAnalysisDashboardComponent implements AfterViewInit {
809
1243
  isCompetitiveTransitioning: _angular_core.WritableSignal<boolean>;
810
1244
  isOverallAssessmentLoading: _angular_core.WritableSignal<boolean>;
811
1245
  areChartsLoading: _angular_core.Signal<boolean>;
1246
+ protected displayMode: _angular_core.WritableSignal<DisplayModeEnum>;
1247
+ protected isViewModeSwitcherOpen: _angular_core.WritableSignal<boolean>;
1248
+ protected isViewModeSwitching: _angular_core.WritableSignal<boolean>;
1249
+ protected isSimplifiedView: _angular_core.Signal<boolean>;
1250
+ protected isCompactView: _angular_core.Signal<boolean>;
1251
+ protected isExpandedView: _angular_core.Signal<boolean>;
1252
+ protected displayModeLabel: _angular_core.Signal<"Simplified" | "Compact" | "Expanded">;
812
1253
  private loadingStartTime;
813
1254
  private minLoadingDisplayTime;
814
1255
  private loadingTimeoutId;
@@ -824,7 +1265,10 @@ declare class SymphiqFunnelAnalysisDashboardComponent implements AfterViewInit {
824
1265
  navSections: NavSection[];
825
1266
  isLightMode: _angular_core.Signal<boolean>;
826
1267
  analysisData: _angular_core.Signal<FunnelAnalysisInterface | undefined>;
827
- performanceOverview: _angular_core.Signal<_jebgem_model.PerformanceOverviewStructuredV3Interface>;
1268
+ performanceOverview: _angular_core.Signal<PerformanceOverviewStructuredV3Interface>;
1269
+ strengths: _angular_core.Signal<_jebgem_model_lib_funnel_analysis_performance_overview_structured_v3_interface.FunnelStrengthInterface[]>;
1270
+ weaknesses: _angular_core.Signal<_jebgem_model_lib_funnel_analysis_performance_overview_structured_v3_interface.FunnelWeaknessInterface[]>;
1271
+ currencySymbol: _angular_core.Signal<string>;
828
1272
  insights: _angular_core.Signal<InsightBlockInterface[]>;
829
1273
  private allBreakdowns;
830
1274
  breakdowns: _angular_core.Signal<BreakdownMetricInterface[]>;
@@ -834,6 +1278,7 @@ declare class SymphiqFunnelAnalysisDashboardComponent implements AfterViewInit {
834
1278
  revenueValue: _angular_core.Signal<number>;
835
1279
  revenueTrend: _angular_core.Signal<number>;
836
1280
  allCharts: _angular_core.Signal<AiChartInterface[]>;
1281
+ allBusinessInsights: _angular_core.Signal<ProfileAnalysisRecommendationInterface[]>;
837
1282
  /**
838
1283
  * Pre-computed map: performanceItemId -> charts[]
839
1284
  * Enables O(1) lookups instead of array filtering on each access
@@ -841,7 +1286,7 @@ declare class SymphiqFunnelAnalysisDashboardComponent implements AfterViewInit {
841
1286
  private chartsById;
842
1287
  headerClass: _angular_core.Signal<string>;
843
1288
  headerTitleClass: _angular_core.Signal<"text-slate-900" | "text-white">;
844
- headerSubtitleClass: _angular_core.Signal<"text-slate-400" | "text-slate-600">;
1289
+ headerSubtitleClass: _angular_core.Signal<"text-slate-600" | "text-slate-400">;
845
1290
  metaLabelClass: _angular_core.Signal<"text-slate-600" | "text-slate-500">;
846
1291
  sectionTitleClass: _angular_core.Signal<"text-slate-900" | "text-white">;
847
1292
  selectClass: _angular_core.Signal<"bg-white text-slate-900 border-slate-300 hover:border-blue-400 transition-all duration-200" | "bg-slate-700 text-white border-slate-600 hover:border-slate-500 transition-all duration-200">;
@@ -890,10 +1335,13 @@ declare class SymphiqFunnelAnalysisDashboardComponent implements AfterViewInit {
890
1335
  showCompetitiveIntelligence: _angular_core.Signal<boolean>;
891
1336
  tocSections: _angular_core.Signal<ProfileSectionInterface[]>;
892
1337
  private dateFormatCache;
893
- constructor(funnelOrderService: FunnelOrderService, viewModeService: ViewModeService, searchService: SearchService, tooltipService: TooltipService);
1338
+ constructor(funnelOrderService: FunnelOrderService, viewModeService: ViewModeService, searchService: SearchService, tooltipService: TooltipService, profileContextService: ProfileContextService, profileItemLookupService: ProfileItemLookupService);
894
1339
  ngAfterViewInit(): void;
895
1340
  handleSearchResult(result: SearchResult): void;
896
1341
  clearSearchResult(): void;
1342
+ protected openViewModeSwitcher(): void;
1343
+ protected closeViewModeSwitcher(): void;
1344
+ protected handleDisplayModeChange(mode: DisplayModeEnum): void;
897
1345
  isFunnelStage(metricName: string): boolean;
898
1346
  formatDate(dateString: string): string;
899
1347
  chartsForMetric(metric: PerformanceMetricInterface): AiChartInterface[];
@@ -915,7 +1363,7 @@ declare class SymphiqFunnelAnalysisDashboardComponent implements AfterViewInit {
915
1363
  getCategoryPillClass(categoryValue: string): string;
916
1364
  formatValue(value: number): string;
917
1365
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SymphiqFunnelAnalysisDashboardComponent, never>;
918
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SymphiqFunnelAnalysisDashboardComponent, "symphiq-funnel-analysis-dashboard", never, { "requestedByUser": { "alias": "requestedByUser"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; "funnelAnalysis": { "alias": "funnelAnalysis"; "required": false; "isSignal": true; }; "embedded": { "alias": "embedded"; "required": false; "isSignal": true; }; "scrollEvent": { "alias": "scrollEvent"; "required": false; "isSignal": true; }; "scrollElement": { "alias": "scrollElement"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "useSampleData": { "alias": "useSampleData"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1366
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SymphiqFunnelAnalysisDashboardComponent, "symphiq-funnel-analysis-dashboard", never, { "requestedByUser": { "alias": "requestedByUser"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; "funnelAnalysis": { "alias": "funnelAnalysis"; "required": false; "isSignal": true; }; "businessProfile": { "alias": "businessProfile"; "required": false; "isSignal": true; }; "embedded": { "alias": "embedded"; "required": false; "isSignal": true; }; "scrollEvent": { "alias": "scrollEvent"; "required": false; "isSignal": true; }; "scrollElement": { "alias": "scrollElement"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "isOnboarded": { "alias": "isOnboarded"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
919
1367
  }
920
1368
 
921
1369
  declare class MetricCardComponent {
@@ -931,6 +1379,7 @@ declare class MetricCardComponent {
931
1379
  currentModalState: _angular_core.InputSignal<ModalState | undefined>;
932
1380
  viewMode: _angular_core.InputSignal<ViewModeEnum>;
933
1381
  initialExpandedSection: _angular_core.InputSignal<string | undefined>;
1382
+ currencySymbol: _angular_core.InputSignal<string>;
934
1383
  Math: Math;
935
1384
  milestones: number[];
936
1385
  currentYear: number;
@@ -1002,9 +1451,9 @@ declare class MetricCardComponent {
1002
1451
  competitiveScoreBadgeLightClass: _angular_core.Signal<string>;
1003
1452
  competitiveScoreBadgeDarkClass: _angular_core.Signal<string>;
1004
1453
  competitiveScoreBadgeClass: _angular_core.Signal<string>;
1005
- competitiveScoreTextClass: _angular_core.Signal<"" | "text-blue-400" | "text-emerald-600" | "text-blue-700" | "text-orange-600">;
1006
- competitiveComparisonDefaultClass: _angular_core.Signal<"text-slate-700" | "text-slate-300">;
1007
- competitiveComparisonClass: _angular_core.Signal<"text-slate-700" | "text-slate-300" | "text-emerald-600 font-semibold" | "text-orange-600 font-semibold">;
1454
+ competitiveScoreTextClass: _angular_core.Signal<"" | "text-blue-400" | "text-blue-700" | "text-orange-600" | "text-emerald-600">;
1455
+ competitiveComparisonDefaultClass: _angular_core.Signal<"text-slate-300" | "text-slate-700">;
1456
+ competitiveComparisonClass: _angular_core.Signal<"text-slate-300" | "text-slate-700" | "text-emerald-600 font-semibold" | "text-orange-600 font-semibold">;
1008
1457
  getCompetitiveScoreIcon(): string;
1009
1458
  getCompetitiveScoreLabel(): string;
1010
1459
  getCompetitiveScoreLabelFull(): string;
@@ -1015,8 +1464,10 @@ declare class MetricCardComponent {
1015
1464
  toggleCompetitiveBenchmark(): void;
1016
1465
  hasProjectedValue(): boolean;
1017
1466
  getProjectedValue(): number | undefined;
1467
+ getPriorityBadgeClasses(priority: number | undefined): string;
1468
+ getPriorityBadgeClassesHover(priority: number | undefined): string;
1018
1469
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<MetricCardComponent, never>;
1019
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<MetricCardComponent, "symphiq-funnel-analysis-metric-card", never, { "metric": { "alias": "metric"; "required": false; "isSignal": true; }; "insights": { "alias": "insights"; "required": false; "isSignal": true; }; "charts": { "alias": "charts"; "required": false; "isSignal": true; }; "allCharts": { "alias": "allCharts"; "required": false; "isSignal": true; }; "analysis": { "alias": "analysis"; "required": false; "isSignal": true; }; "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "isCompactMode": { "alias": "isCompactMode"; "required": false; "isSignal": true; }; "isInModal": { "alias": "isInModal"; "required": false; "isSignal": true; }; "currentModalState": { "alias": "currentModalState"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; "initialExpandedSection": { "alias": "initialExpandedSection"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1470
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MetricCardComponent, "symphiq-funnel-analysis-metric-card", never, { "metric": { "alias": "metric"; "required": false; "isSignal": true; }; "insights": { "alias": "insights"; "required": false; "isSignal": true; }; "charts": { "alias": "charts"; "required": false; "isSignal": true; }; "allCharts": { "alias": "allCharts"; "required": false; "isSignal": true; }; "analysis": { "alias": "analysis"; "required": false; "isSignal": true; }; "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "isCompactMode": { "alias": "isCompactMode"; "required": false; "isSignal": true; }; "isInModal": { "alias": "isInModal"; "required": false; "isSignal": true; }; "currentModalState": { "alias": "currentModalState"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; "initialExpandedSection": { "alias": "initialExpandedSection"; "required": false; "isSignal": true; }; "currencySymbol": { "alias": "currencySymbol"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1020
1471
  }
1021
1472
 
1022
1473
  declare class InsightCardComponent {
@@ -1024,12 +1475,14 @@ declare class InsightCardComponent {
1024
1475
  allMetrics: _angular_core.InputSignal<PerformanceMetricInterface[]>;
1025
1476
  charts: _angular_core.InputSignal<AiChartInterface[]>;
1026
1477
  allCharts: _angular_core.InputSignal<AiChartInterface[]>;
1478
+ allBusinessInsights: _angular_core.InputSignal<ProfileAnalysisRecommendationInterface[]>;
1027
1479
  isLightMode: _angular_core.InputSignal<boolean>;
1028
1480
  isInModal: _angular_core.InputSignal<boolean>;
1029
1481
  isLoading: _angular_core.InputSignal<boolean>;
1030
1482
  isCompactMode: _angular_core.InputSignal<boolean>;
1031
1483
  currentModalState: _angular_core.InputSignal<ModalState | undefined>;
1032
1484
  viewMode: _angular_core.InputSignal<ViewModeEnum>;
1485
+ currencySymbol: _angular_core.InputSignal<string>;
1033
1486
  isExpanded: _angular_core.WritableSignal<boolean>;
1034
1487
  isCompetitiveContextExpanded: _angular_core.WritableSignal<boolean>;
1035
1488
  lightModeTitleClass: _angular_core.Signal<string>;
@@ -1050,9 +1503,9 @@ declare class InsightCardComponent {
1050
1503
  recommendationsContainerLightClass: _angular_core.Signal<string>;
1051
1504
  recommendationsContainerDarkClass: _angular_core.Signal<string>;
1052
1505
  recommendationsContainerClass: _angular_core.Signal<string>;
1053
- priorityBadgeLightClass: _angular_core.Signal<"w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-red-100/70 text-red-700 border-red-400/60" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-amber-100/70 text-amber-700 border-amber-400/60" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-blue-100/70 text-blue-700 border-blue-400/60" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-slate-100/70 text-slate-700 border-slate-400/60">;
1054
- priorityBadgeDarkClass: _angular_core.Signal<"w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-red-500/20 text-red-400 border-red-500/50" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-amber-500/20 text-amber-400 border-amber-500/50" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-blue-500/20 text-blue-400 border-blue-500/50" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-slate-500/20 text-slate-400 border-slate-500/50">;
1055
- priorityBadgeClass: _angular_core.Signal<"w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-red-100/70 text-red-700 border-red-400/60" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-amber-100/70 text-amber-700 border-amber-400/60" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-blue-100/70 text-blue-700 border-blue-400/60" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-slate-100/70 text-slate-700 border-slate-400/60" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-red-500/20 text-red-400 border-red-500/50" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-amber-500/20 text-amber-400 border-amber-500/50" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-blue-500/20 text-blue-400 border-blue-500/50" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-slate-500/20 text-slate-400 border-slate-500/50">;
1506
+ priorityBadgeLightClass: _angular_core.Signal<"w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-amber-100/70 text-amber-700 border-amber-400/60" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-blue-100/70 text-blue-700 border-blue-400/60" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-slate-100/70 text-slate-700 border-slate-400/60" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md animate-pulse bg-red-100/70 text-red-700 border-red-400/60">;
1507
+ priorityBadgeDarkClass: _angular_core.Signal<"w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-amber-500/20 text-amber-400 border-amber-500/50" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-blue-500/20 text-blue-400 border-blue-500/50" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-slate-500/20 text-slate-400 border-slate-500/50" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md animate-pulse bg-red-500/20 text-red-400 border-red-500/50">;
1508
+ priorityBadgeClass: _angular_core.Signal<"w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-amber-100/70 text-amber-700 border-amber-400/60" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-blue-100/70 text-blue-700 border-blue-400/60" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-slate-100/70 text-slate-700 border-slate-400/60" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-amber-500/20 text-amber-400 border-amber-500/50" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-blue-500/20 text-blue-400 border-blue-500/50" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md bg-slate-500/20 text-slate-400 border-slate-500/50" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md animate-pulse bg-red-100/70 text-red-700 border-red-400/60" | "w-8 h-8 flex items-center justify-center rounded-full text-xs font-bold border-2 backdrop-blur-md animate-pulse bg-red-500/20 text-red-400 border-red-500/50">;
1056
1509
  containerLightClass: _angular_core.Signal<"transition-all duration-300 hover:shadow-2xl hover:-translate-y-1 cursor-pointer group bg-gradient-to-br from-white to-blue-50/50 border-2 border-blue-300 hover:border-blue-400 shadow-lg shadow-blue-200/50 hover:shadow-blue-300/60" | "transition-all duration-300 hover:shadow-2xl hover:-translate-y-1 cursor-pointer group bg-white border-slate-200 hover:border-blue-400 hover:shadow-blue-100/50">;
1057
1510
  containerDarkClass: _angular_core.Signal<"transition-all duration-300 hover:shadow-2xl hover:-translate-y-1 cursor-pointer group bg-gradient-to-br from-slate-800 to-blue-900/20 border-2 border-blue-500/40 hover:border-blue-400/60 shadow-lg shadow-blue-500/20 hover:shadow-blue-500/30" | "transition-all duration-300 hover:shadow-2xl hover:-translate-y-1 cursor-pointer group bg-slate-800 border-slate-700 hover:border-slate-500 hover:shadow-slate-900/50">;
1058
1511
  containerClass: _angular_core.Signal<"transition-all duration-300 hover:shadow-2xl hover:-translate-y-1 cursor-pointer group bg-gradient-to-br from-white to-blue-50/50 border-2 border-blue-300 hover:border-blue-400 shadow-lg shadow-blue-200/50 hover:shadow-blue-300/60" | "transition-all duration-300 hover:shadow-2xl hover:-translate-y-1 cursor-pointer group bg-white border-slate-200 hover:border-blue-400 hover:shadow-blue-100/50" | "transition-all duration-300 hover:shadow-2xl hover:-translate-y-1 cursor-pointer group bg-gradient-to-br from-slate-800 to-blue-900/20 border-2 border-blue-500/40 hover:border-blue-400/60 shadow-lg shadow-blue-500/20 hover:shadow-blue-500/30" | "transition-all duration-300 hover:shadow-2xl hover:-translate-y-1 cursor-pointer group bg-slate-800 border-slate-700 hover:border-slate-500 hover:shadow-slate-900/50">;
@@ -1085,13 +1538,17 @@ declare class InsightCardComponent {
1085
1538
  toggleCompetitiveContext(): void;
1086
1539
  hasCompetitiveAnalysis(): boolean;
1087
1540
  getCompetitiveAnalysis(): string;
1541
+ relatedBusinessInsights: _angular_core.Signal<ProfileAnalysisRecommendationInterface[]>;
1542
+ relatedBusinessInsightsCount: _angular_core.Signal<number>;
1543
+ hasRelatedBusinessInsights: _angular_core.Signal<boolean>;
1544
+ openRelatedBusinessInsightsModal(): void;
1088
1545
  competitiveContextPanelLightBaseClass: _angular_core.Signal<string>;
1089
1546
  competitiveContextPanelDarkBaseClass: _angular_core.Signal<string>;
1090
1547
  priorityBorderLightClass: _angular_core.Signal<"border-l-red-400" | "border-l-amber-400" | "border-l-blue-400" | "border-l-slate-400">;
1091
1548
  priorityBorderDarkClass: _angular_core.Signal<"border-l-red-500" | "border-l-amber-500" | "border-l-blue-500" | "border-l-slate-500">;
1092
1549
  competitiveContextPanelClass: _angular_core.Signal<string>;
1093
1550
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<InsightCardComponent, never>;
1094
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<InsightCardComponent, "symphiq-funnel-analysis-insight-card", never, { "insight": { "alias": "insight"; "required": false; "isSignal": true; }; "allMetrics": { "alias": "allMetrics"; "required": false; "isSignal": true; }; "charts": { "alias": "charts"; "required": false; "isSignal": true; }; "allCharts": { "alias": "allCharts"; "required": false; "isSignal": true; }; "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; "isInModal": { "alias": "isInModal"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "isCompactMode": { "alias": "isCompactMode"; "required": false; "isSignal": true; }; "currentModalState": { "alias": "currentModalState"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1551
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<InsightCardComponent, "symphiq-funnel-analysis-insight-card", never, { "insight": { "alias": "insight"; "required": false; "isSignal": true; }; "allMetrics": { "alias": "allMetrics"; "required": false; "isSignal": true; }; "charts": { "alias": "charts"; "required": false; "isSignal": true; }; "allCharts": { "alias": "allCharts"; "required": false; "isSignal": true; }; "allBusinessInsights": { "alias": "allBusinessInsights"; "required": false; "isSignal": true; }; "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; "isInModal": { "alias": "isInModal"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "isCompactMode": { "alias": "isCompactMode"; "required": false; "isSignal": true; }; "currentModalState": { "alias": "currentModalState"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; "currencySymbol": { "alias": "currencySymbol"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1095
1552
  }
1096
1553
 
1097
1554
  interface MetricGroup {
@@ -1106,6 +1563,7 @@ declare class BreakdownSectionComponent {
1106
1563
  isLightMode: _angular_core.InputSignal<boolean>;
1107
1564
  isLoading: _angular_core.InputSignal<boolean>;
1108
1565
  isCompactMode: _angular_core.InputSignal<boolean>;
1566
+ currencySymbol: _angular_core.InputSignal<string>;
1109
1567
  Math: Math;
1110
1568
  private tooltipDataService;
1111
1569
  private modalService;
@@ -1183,7 +1641,7 @@ declare class BreakdownSectionComponent {
1183
1641
  toggleMetricExpansion(metricKey: string): void;
1184
1642
  getTopPriorityMetrics(metrics: PerformanceMetricInterface[], count?: number): PerformanceMetricInterface[];
1185
1643
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BreakdownSectionComponent, never>;
1186
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<BreakdownSectionComponent, "symphiq-funnel-analysis-breakdown-section", never, { "breakdown": { "alias": "breakdown"; "required": false; "isSignal": true; }; "charts": { "alias": "charts"; "required": false; "isSignal": true; }; "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "isCompactMode": { "alias": "isCompactMode"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1644
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BreakdownSectionComponent, "symphiq-funnel-analysis-breakdown-section", never, { "breakdown": { "alias": "breakdown"; "required": false; "isSignal": true; }; "charts": { "alias": "charts"; "required": false; "isSignal": true; }; "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "isCompactMode": { "alias": "isCompactMode"; "required": false; "isSignal": true; }; "currencySymbol": { "alias": "currencySymbol"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1187
1645
  }
1188
1646
 
1189
1647
  declare class OverallAssessmentComponent {
@@ -1195,6 +1653,9 @@ declare class OverallAssessmentComponent {
1195
1653
  isLoading: _angular_core.InputSignal<boolean>;
1196
1654
  isCompactMode: _angular_core.InputSignal<boolean>;
1197
1655
  isChartsLoading: _angular_core.InputSignal<boolean>;
1656
+ strengths: _angular_core.InputSignal<any[]>;
1657
+ weaknesses: _angular_core.InputSignal<any[]>;
1658
+ currencySymbol: _angular_core.InputSignal<string>;
1198
1659
  scrollToSection: _angular_core.OutputEmitterRef<string>;
1199
1660
  private modalService;
1200
1661
  private tooltipDataService;
@@ -1228,15 +1689,15 @@ declare class OverallAssessmentComponent {
1228
1689
  darkModeRevenueIconClass: _angular_core.Signal<string>;
1229
1690
  revenueIconClass: _angular_core.Signal<string>;
1230
1691
  formattedRevenueValue: _angular_core.Signal<string>;
1231
- revenueTrendDirection: _angular_core.Signal<any>;
1692
+ revenueTrendDirection: _angular_core.Signal<TrendDirectionEnum>;
1232
1693
  isRevenueTrendPositive: _angular_core.Signal<boolean>;
1233
1694
  revenueTrendArrowPath: _angular_core.Signal<"M5.293 9.707a1 1 0 010-1.414l4-4a1 1 0 011.414 0l4 4a1 1 0 01-1.414 1.414L11 7.414V15a1 1 0 11-2 0V7.414L6.707 9.707a1 1 0 01-1.414 0z" | "M14.707 10.293a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 111.414-1.414L9 12.586V5a1 1 0 012 0v7.586l2.293-2.293a1 1 0 011.414 0z" | "M3 10h11m0 0l-4-4m4 4l-4 4">;
1234
- lightModeTrendIconClass: _angular_core.Signal<"text-emerald-600" | "text-red-600">;
1695
+ lightModeTrendIconClass: _angular_core.Signal<"text-red-600" | "text-emerald-600">;
1235
1696
  darkModeTrendIconClass: _angular_core.Signal<"text-emerald-400" | "text-red-400">;
1236
- trendIconClass: _angular_core.Signal<"text-emerald-600" | "text-emerald-400" | "text-red-600" | "text-red-400">;
1237
- lightModeTrendValueClass: _angular_core.Signal<"text-emerald-600" | "text-red-600">;
1697
+ trendIconClass: _angular_core.Signal<"text-emerald-400" | "text-red-400" | "text-red-600" | "text-emerald-600">;
1698
+ lightModeTrendValueClass: _angular_core.Signal<"text-red-600" | "text-emerald-600">;
1238
1699
  darkModeTrendValueClass: _angular_core.Signal<"text-emerald-400" | "text-red-400">;
1239
- trendValueClass: _angular_core.Signal<"text-emerald-600" | "text-emerald-400" | "text-red-600" | "text-red-400">;
1700
+ trendValueClass: _angular_core.Signal<"text-emerald-400" | "text-red-400" | "text-red-600" | "text-emerald-600">;
1240
1701
  formattedRevenueTrend: _angular_core.Signal<string>;
1241
1702
  formattedRevenueTarget: _angular_core.Signal<string>;
1242
1703
  hasRevenuePacing: _angular_core.Signal<boolean>;
@@ -1329,8 +1790,12 @@ declare class OverallAssessmentComponent {
1329
1790
  revenueTrendTooltip: _angular_core.Signal<TrendIndicatorTooltipContent | undefined>;
1330
1791
  private calculateOverallPacing;
1331
1792
  private getGradeExplanation;
1793
+ strengthsButtonClass: _angular_core.Signal<"bg-emerald-600 hover:bg-emerald-700 text-white hover:shadow-emerald-200" | "bg-emerald-500 hover:bg-emerald-600 text-slate-900 hover:shadow-emerald-500/50">;
1794
+ weaknessesButtonClass: _angular_core.Signal<"bg-red-600 hover:bg-red-700 text-white hover:shadow-red-200" | "bg-red-500 hover:bg-red-600 text-white hover:shadow-red-500/50">;
1795
+ openStrengthsModal(): void;
1796
+ openWeaknessesModal(): void;
1332
1797
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverallAssessmentComponent, never>;
1333
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<OverallAssessmentComponent, "symphiq-funnel-analysis-overall-assessment", never, { "assessment": { "alias": "assessment"; "required": false; "isSignal": true; }; "revenueMetric": { "alias": "revenueMetric"; "required": false; "isSignal": true; }; "charts": { "alias": "charts"; "required": false; "isSignal": true; }; "metrics": { "alias": "metrics"; "required": false; "isSignal": true; }; "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "isCompactMode": { "alias": "isCompactMode"; "required": false; "isSignal": true; }; "isChartsLoading": { "alias": "isChartsLoading"; "required": false; "isSignal": true; }; }, { "scrollToSection": "scrollToSection"; }, never, never, true, never>;
1798
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<OverallAssessmentComponent, "symphiq-funnel-analysis-overall-assessment", never, { "assessment": { "alias": "assessment"; "required": false; "isSignal": true; }; "revenueMetric": { "alias": "revenueMetric"; "required": false; "isSignal": true; }; "charts": { "alias": "charts"; "required": false; "isSignal": true; }; "metrics": { "alias": "metrics"; "required": false; "isSignal": true; }; "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "isCompactMode": { "alias": "isCompactMode"; "required": false; "isSignal": true; }; "isChartsLoading": { "alias": "isChartsLoading"; "required": false; "isSignal": true; }; "strengths": { "alias": "strengths"; "required": false; "isSignal": true; }; "weaknesses": { "alias": "weaknesses"; "required": false; "isSignal": true; }; "currencySymbol": { "alias": "currencySymbol"; "required": false; "isSignal": true; }; }, { "scrollToSection": "scrollToSection"; }, never, never, true, never>;
1334
1799
  }
1335
1800
 
1336
1801
  interface CompetitiveStats {
@@ -1361,6 +1826,7 @@ declare class CompetitivePositioningSummaryComponent {
1361
1826
  description?: string;
1362
1827
  keyOpportunities?: string;
1363
1828
  } | undefined>;
1829
+ currencySymbol: _angular_core.InputSignal<string>;
1364
1830
  scrollToCompetitive: _angular_core.OutputEmitterRef<void>;
1365
1831
  isExpanded: _angular_core.WritableSignal<boolean>;
1366
1832
  private funnelOrderService;
@@ -1378,7 +1844,7 @@ declare class CompetitivePositioningSummaryComponent {
1378
1844
  getScoreDotClass(type: string): string;
1379
1845
  formatCategoryName(category: string): string;
1380
1846
  competitiveScoreTooltip: _angular_core.Signal<{
1381
- industry: any;
1847
+ industry: string;
1382
1848
  metricBenchmark: string;
1383
1849
  competitiveScore: "LEADING" | "COMPETITIVE" | "LAGGING";
1384
1850
  description: string;
@@ -1396,6 +1862,7 @@ declare class CompetitivePositioningSummaryComponent {
1396
1862
  };
1397
1863
  unit: string;
1398
1864
  }[];
1865
+ currencySymbol: string;
1399
1866
  }>;
1400
1867
  competitiveTooltip: _angular_core.Signal<{
1401
1868
  status: "COMPETITIVE";
@@ -1409,6 +1876,7 @@ declare class CompetitivePositioningSummaryComponent {
1409
1876
  };
1410
1877
  unit: string;
1411
1878
  }[];
1879
+ currencySymbol: string;
1412
1880
  }>;
1413
1881
  laggingTooltip: _angular_core.Signal<{
1414
1882
  status: "LAGGING";
@@ -1422,6 +1890,7 @@ declare class CompetitivePositioningSummaryComponent {
1422
1890
  };
1423
1891
  unit: string;
1424
1892
  }[];
1893
+ currencySymbol: string;
1425
1894
  }>;
1426
1895
  private getMetricsByStatus;
1427
1896
  getFunnelStageTooltip(funnelStage: string): {
@@ -1454,10 +1923,11 @@ declare class CompetitivePositioningSummaryComponent {
1454
1923
  };
1455
1924
  unit: string;
1456
1925
  }[];
1926
+ currencySymbol: string;
1457
1927
  };
1458
1928
  private extractMetricTooltipData;
1459
1929
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<CompetitivePositioningSummaryComponent, never>;
1460
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<CompetitivePositioningSummaryComponent, "symphiq-competitive-positioning-summary", never, { "metrics": { "alias": "metrics"; "required": false; "isSignal": true; }; "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; "isCompactMode": { "alias": "isCompactMode"; "required": false; "isSignal": true; }; "overallDescription": { "alias": "overallDescription"; "required": false; "isSignal": true; }; "competitiveBenchmark": { "alias": "competitiveBenchmark"; "required": false; "isSignal": true; }; }, { "scrollToCompetitive": "scrollToCompetitive"; }, never, never, true, never>;
1930
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CompetitivePositioningSummaryComponent, "symphiq-competitive-positioning-summary", never, { "metrics": { "alias": "metrics"; "required": false; "isSignal": true; }; "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; "isCompactMode": { "alias": "isCompactMode"; "required": false; "isSignal": true; }; "overallDescription": { "alias": "overallDescription"; "required": false; "isSignal": true; }; "competitiveBenchmark": { "alias": "competitiveBenchmark"; "required": false; "isSignal": true; }; "currencySymbol": { "alias": "currencySymbol"; "required": false; "isSignal": true; }; }, { "scrollToCompetitive": "scrollToCompetitive"; }, never, never, true, never>;
1461
1931
  }
1462
1932
 
1463
1933
  declare class SkeletonLoaderComponent {
@@ -1488,7 +1958,6 @@ declare class MobileFABComponent {
1488
1958
  declare class SymphiqFunnelAnalysisPreviewComponent {
1489
1959
  analysisInput: _angular_core.InputSignal<FunnelAnalysisInterface | undefined>;
1490
1960
  viewMode: _angular_core.InputSignal<ViewModeEnum>;
1491
- useSampleData: _angular_core.InputSignal<boolean>;
1492
1961
  scrollElement: _angular_core.InputSignal<HTMLElement | null | undefined>;
1493
1962
  isLightMode: _angular_core.Signal<boolean>;
1494
1963
  onViewAnalysis: _angular_core.OutputEmitterRef<void>;
@@ -1499,26 +1968,26 @@ declare class SymphiqFunnelAnalysisPreviewComponent {
1499
1968
  constructor();
1500
1969
  analysisData: _angular_core.Signal<FunnelAnalysisInterface | undefined>;
1501
1970
  title: _angular_core.Signal<string>;
1502
- analysis: _angular_core.Signal<_jebgem_model.PerformanceOverviewStructuredV3Interface>;
1503
- overallAssessment: _angular_core.Signal<any>;
1971
+ analysis: _angular_core.Signal<PerformanceOverviewStructuredV3Interface>;
1972
+ overallAssessment: _angular_core.Signal<OverallAssessmentInterface>;
1504
1973
  metrics: _angular_core.Signal<PerformanceMetricInterface[]>;
1505
- insights: _angular_core.Signal<any>;
1506
- insightsCount: _angular_core.Signal<any>;
1974
+ insights: _angular_core.Signal<InsightBlockInterface[]>;
1975
+ insightsCount: _angular_core.Signal<number>;
1507
1976
  revenueMetric: _angular_core.Signal<PerformanceMetricInterface | undefined>;
1508
1977
  topMetrics: _angular_core.Signal<PerformanceMetricInterface[]>;
1509
1978
  formattedRevenueValue: _angular_core.Signal<string>;
1510
1979
  formattedRevenueTrend: _angular_core.Signal<string>;
1511
- revenueStatusIcon: _angular_core.Signal<"" | "" | "" | "">;
1980
+ revenueStatusIcon: _angular_core.Signal<"" | "" | "" | "">;
1512
1981
  hasCompetitiveData: _angular_core.Signal<boolean>;
1513
1982
  hasOverallCompetitiveBenchmark: _angular_core.Signal<boolean>;
1514
- overallCompetitiveDescription: _angular_core.Signal<any>;
1983
+ overallCompetitiveDescription: _angular_core.Signal<string>;
1515
1984
  getOverallCompetitiveLabel(): string;
1516
1985
  getOverallCompetitiveIcon(): string;
1517
1986
  competitiveScore: _angular_core.Signal<string>;
1518
1987
  gradeTooltip: _angular_core.Signal<{
1519
1988
  title: string;
1520
- grade: any;
1521
- explanation: any;
1989
+ grade: string;
1990
+ explanation: string;
1522
1991
  }>;
1523
1992
  revenueTooltip: _angular_core.Signal<{
1524
1993
  chartData: {
@@ -1533,6 +2002,7 @@ declare class SymphiqFunnelAnalysisPreviewComponent {
1533
2002
  unit?: string;
1534
2003
  category?: string;
1535
2004
  isInverseMetric?: boolean;
2005
+ currencySymbol?: string;
1536
2006
  } | {
1537
2007
  metricName: string;
1538
2008
  currentValue: number;
@@ -1544,10 +2014,10 @@ declare class SymphiqFunnelAnalysisPreviewComponent {
1544
2014
  progressPercent: number;
1545
2015
  }>;
1546
2016
  narrativeTooltip: _angular_core.Signal<{
1547
- narrative: any;
2017
+ narrative: string;
1548
2018
  }>;
1549
2019
  competitiveTooltip: _angular_core.Signal<{
1550
- industry: any;
2020
+ industry: string;
1551
2021
  metricBenchmark: string;
1552
2022
  competitiveScore: "LEADING" | "COMPETITIVE" | "LAGGING";
1553
2023
  description: string;
@@ -1555,19 +2025,22 @@ declare class SymphiqFunnelAnalysisPreviewComponent {
1555
2025
  }>;
1556
2026
  insightsTooltip: _angular_core.Signal<{
1557
2027
  title: string;
1558
- insights: any;
2028
+ insights: {
2029
+ title: string;
2030
+ priority: number;
2031
+ }[];
1559
2032
  remaining: number;
1560
2033
  }>;
1561
2034
  overallCompetitiveTooltip: _angular_core.Signal<{
1562
- industry: any;
1563
- metricBenchmark: any;
1564
- competitiveScore: any;
1565
- description: any;
1566
- keyOpportunities: any;
2035
+ industry: string;
2036
+ metricBenchmark: string;
2037
+ competitiveScore: string;
2038
+ description: string;
2039
+ keyOpportunities: string;
1567
2040
  }>;
1568
2041
  overallCompetitiveDescriptionTooltip: _angular_core.Signal<{
1569
2042
  title: string;
1570
- narrative: any;
2043
+ narrative: string;
1571
2044
  }>;
1572
2045
  containerClass: _angular_core.Signal<string>;
1573
2046
  headerClass: _angular_core.Signal<string>;
@@ -1590,7 +2063,7 @@ declare class SymphiqFunnelAnalysisPreviewComponent {
1590
2063
  buttonClass: _angular_core.Signal<string>;
1591
2064
  competitiveBadgeClass: _angular_core.Signal<string>;
1592
2065
  shouldPulseCompetitiveBadge: _angular_core.Signal<boolean>;
1593
- overallCompetitiveStatusBadgeClass: _angular_core.Signal<"border-2 bg-gradient-to-r from-emerald-500/30 to-emerald-500/20 text-emerald-400 border-emerald-500/40 shadow-lg shadow-emerald-500/20" | "border-2 bg-gradient-to-r from-blue-500/30 to-blue-500/20 text-blue-400 border-blue-500/40 shadow-lg shadow-blue-500/20" | "border-2 bg-gradient-to-r from-orange-500/30 to-orange-500/20 text-orange-400 border-orange-500/40 shadow-lg shadow-orange-500/20" | "border-2 bg-gradient-to-r from-slate-500/20 to-slate-500/10 text-slate-400 border-slate-500/30 shadow-lg shadow-slate-500/20" | "border-2 bg-gradient-to-br from-emerald-100/90 to-emerald-50/90 text-emerald-700 border-emerald-200/50 shadow-[2px_2px_4px_rgba(163,163,163,0.25),-2px_-2px_4px_rgba(255,255,255,0.75)]" | "border-2 bg-gradient-to-br from-blue-100/90 to-blue-50/90 text-blue-700 border-blue-200/50 shadow-[2px_2px_4px_rgba(163,163,163,0.25),-2px_-2px_4px_rgba(255,255,255,0.75)]" | "border-2 bg-gradient-to-br from-orange-100/90 to-orange-50/90 text-orange-700 border-orange-200/50 shadow-[2px_2px_4px_rgba(163,163,163,0.25),-2px_-2px_4px_rgba(255,255,255,0.75)]" | "border-2 bg-gradient-to-br from-slate-100/90 to-slate-50/90 text-slate-700 border-slate-200/50 shadow-[2px_2px_4px_rgba(163,163,163,0.25),-2px_-2px_4px_rgba(255,255,255,0.75)]">;
2066
+ overallCompetitiveStatusBadgeClass: _angular_core.Signal<"border-2 bg-gradient-to-br from-emerald-100/90 to-emerald-50/90 text-emerald-700 border-emerald-200/50 shadow-[2px_2px_4px_rgba(163,163,163,0.25),-2px_-2px_4px_rgba(255,255,255,0.75)]" | "border-2 bg-gradient-to-br from-blue-100/90 to-blue-50/90 text-blue-700 border-blue-200/50 shadow-[2px_2px_4px_rgba(163,163,163,0.25),-2px_-2px_4px_rgba(255,255,255,0.75)]" | "border-2 bg-gradient-to-br from-orange-100/90 to-orange-50/90 text-orange-700 border-orange-200/50 shadow-[2px_2px_4px_rgba(163,163,163,0.25),-2px_-2px_4px_rgba(255,255,255,0.75)]" | "border-2 bg-gradient-to-br from-slate-100/90 to-slate-50/90 text-slate-700 border-slate-200/50 shadow-[2px_2px_4px_rgba(163,163,163,0.25),-2px_-2px_4px_rgba(255,255,255,0.75)]" | "border-2 bg-gradient-to-r from-emerald-500/30 to-emerald-500/20 text-emerald-400 border-emerald-500/40 shadow-lg shadow-emerald-500/20" | "border-2 bg-gradient-to-r from-blue-500/30 to-blue-500/20 text-blue-400 border-blue-500/40 shadow-lg shadow-blue-500/20" | "border-2 bg-gradient-to-r from-orange-500/30 to-orange-500/20 text-orange-400 border-orange-500/40 shadow-lg shadow-orange-500/20" | "border-2 bg-gradient-to-r from-slate-500/20 to-slate-500/10 text-slate-400 border-slate-500/30 shadow-lg shadow-slate-500/20">;
1594
2067
  shouldPulseOverallCompetitive: _angular_core.Signal<boolean>;
1595
2068
  statusIconClass: _angular_core.Signal<string>;
1596
2069
  insightsCardClass: _angular_core.Signal<string>;
@@ -1610,60 +2083,7 @@ declare class SymphiqFunnelAnalysisPreviewComponent {
1610
2083
  private extractChartData;
1611
2084
  handleViewAnalysis(): void;
1612
2085
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SymphiqFunnelAnalysisPreviewComponent, never>;
1613
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SymphiqFunnelAnalysisPreviewComponent, "symphiq-funnel-analysis-preview", never, { "analysisInput": { "alias": "funnelAnalysis"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; "useSampleData": { "alias": "useSampleData"; "required": false; "isSignal": true; }; "scrollElement": { "alias": "scrollElement"; "required": false; "isSignal": true; }; }, { "onViewAnalysis": "onViewAnalysis"; }, never, never, true, never>;
1614
- }
1615
-
1616
- type JourneyStep = 'business-analysis' | 'revenue-targets' | 'funnel-analysis' | 'shop-analysis' | 'focus-areas-analysis' | 'metrics-analysis';
1617
- interface UserPreferences {
1618
- viewMode: ViewMode;
1619
- currentJourneyStep: JourneyStep;
1620
- completedSteps: JourneyStep[];
1621
- hasSeenWelcome: boolean;
1622
- }
1623
- declare class UserPreferencesService {
1624
- private readonly STORAGE_KEY;
1625
- private preferences;
1626
- constructor();
1627
- getPreferences(): _angular_core.Signal<UserPreferences>;
1628
- setViewMode(mode: ViewMode): void;
1629
- setCurrentJourneyStep(step: JourneyStep): void;
1630
- completeJourneyStep(step: JourneyStep): void;
1631
- setHasSeenWelcome(seen: boolean): void;
1632
- resetPreferences(): void;
1633
- private loadPreferences;
1634
- private savePreferences;
1635
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<UserPreferencesService, never>;
1636
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<UserPreferencesService>;
1637
- }
1638
-
1639
- type ComponentViewMode = 'simplified' | 'compact' | 'expanded';
1640
-
1641
- declare class ProfileItemLookupService {
1642
- private profileData;
1643
- setProfile(profile: ProfileInterface | undefined): void;
1644
- findItemById(id: string): ProfileItemInterface | undefined;
1645
- findItemsByIds(ids: string[]): ProfileItemInterface[];
1646
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProfileItemLookupService, never>;
1647
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<ProfileItemLookupService>;
1648
- }
1649
-
1650
- declare class ProfileContextService {
1651
- private contextIndex;
1652
- indexProfile(sections: any[], recommendations?: ProfileAnalysisRecommendationInterface[]): void;
1653
- getRegions(): ProfileItemInterface[];
1654
- getSeasons(): ProfileItemInterface[];
1655
- getPriceTiers(): ProfileItemInterface[];
1656
- getCustomerSegments(): ProfileItemInterface[];
1657
- getProductCategories(): ProfileItemInterface[];
1658
- getFocusAreas(): ProfileItemInterface[];
1659
- getItemById(id: string): ProfileItemInterface | undefined;
1660
- getItemsByIds(ids: string[]): ProfileItemInterface[];
1661
- getCompetitors(): ProfileItemInterface[];
1662
- getRecommendationById(id: string): ProfileAnalysisRecommendationInterface | undefined;
1663
- getCompetitorsByIds(ids: string[]): ProfileItemInterface[];
1664
- getRecommendationsByProfileItemIds(itemIds: string[]): ProfileAnalysisRecommendationInterface[];
1665
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProfileContextService, never>;
1666
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<ProfileContextService>;
2086
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SymphiqFunnelAnalysisPreviewComponent, "symphiq-funnel-analysis-preview", never, { "analysisInput": { "alias": "funnelAnalysis"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; "scrollElement": { "alias": "scrollElement"; "required": false; "isSignal": true; }; }, { "onViewAnalysis": "onViewAnalysis"; }, never, never, true, never>;
1667
2087
  }
1668
2088
 
1669
2089
  declare class SymphiqBusinessAnalysisDashboardComponent implements OnInit, AfterViewInit, OnDestroy {
@@ -1676,27 +2096,32 @@ declare class SymphiqBusinessAnalysisDashboardComponent implements OnInit, After
1676
2096
  scrollEvent?: Event;
1677
2097
  scrollElement?: HTMLElement;
1678
2098
  isLoading: boolean;
1679
- useSampleData: boolean;
1680
2099
  profile?: ProfileInterface;
1681
2100
  parentHeaderOffset: number;
2101
+ isOnboarded: boolean;
1682
2102
  protected headerScrollService: HeaderScrollService;
1683
2103
  protected lookupService: ProfileItemLookupService;
1684
2104
  protected navigationService: NavigationStateService;
1685
2105
  protected profileContextService: ProfileContextService;
1686
2106
  protected searchService: BusinessProfileSearchService;
1687
- protected userPreferencesService: UserPreferencesService;
2107
+ protected modalService: ModalService;
1688
2108
  protected currentProfile: _angular_core.WritableSignal<ProfileInterface | undefined>;
1689
2109
  protected scrollProgress: _angular_core.Signal<number>;
1690
2110
  protected isLightMode: _angular_core.Signal<boolean>;
1691
- protected isCompactView: _angular_core.WritableSignal<boolean>;
1692
- protected currentComponentViewMode: _angular_core.WritableSignal<ComponentViewMode>;
2111
+ protected displayMode: _angular_core.WritableSignal<DisplayModeEnum>;
2112
+ protected isCompactView: _angular_core.Signal<boolean>;
2113
+ protected isSimplifiedView: _angular_core.Signal<boolean>;
1693
2114
  protected currentSectionTitle: _angular_core.WritableSignal<string>;
1694
2115
  protected currentSubsectionTitle: _angular_core.WritableSignal<string>;
1695
2116
  protected sectionTitleFading: _angular_core.WritableSignal<boolean>;
1696
2117
  protected subsectionTitleFading: _angular_core.WritableSignal<boolean>;
1697
2118
  protected selectedSearchIndex: _angular_core.WritableSignal<number>;
1698
- protected userPreferences: _angular_core.Signal<UserPreferences>;
2119
+ protected isViewModeSwitcherOpen: _angular_core.WritableSignal<boolean>;
2120
+ protected isViewModeSwitching: _angular_core.WritableSignal<boolean>;
1699
2121
  protected sections: _angular_core.Signal<ProfileSectionInterface[]>;
2122
+ protected recommendationItems: _angular_core.Signal<ProfileAnalysisRecommendationInterface[]>;
2123
+ protected nonRecommendationSections: _angular_core.Signal<ProfileSectionInterface[]>;
2124
+ protected displayModeLabel: _angular_core.Signal<"Simplified" | "Compact" | "Expanded" | "View">;
1700
2125
  private subsectionObserver?;
1701
2126
  private sectionUpdateTimeout?;
1702
2127
  private subsectionUpdateTimeout?;
@@ -1710,18 +2135,21 @@ declare class SymphiqBusinessAnalysisDashboardComponent implements OnInit, After
1710
2135
  protected subsectionHasContent(subsection: ProfileSubsectionInterface): boolean;
1711
2136
  constructor();
1712
2137
  onScroll(): void;
1713
- protected setViewMode(mode: ComponentViewMode): void;
1714
2138
  protected toggleExpandedView(): void;
1715
- protected isSimplifiedMode(): boolean;
1716
- protected onWelcomeGetStarted(): void;
1717
- protected onWelcomeDismiss(): void;
1718
- protected onAnalyzeFunnel(): void;
1719
- protected onExploreMore(): void;
2139
+ protected openViewModeSwitcher(): void;
2140
+ protected closeViewModeSwitcher(): void;
2141
+ protected handleDisplayModeChange(mode: DisplayModeEnum): void;
2142
+ protected openRecommendationDetailsModal(recommendation: ProfileAnalysisRecommendationInterface): void;
2143
+ protected getViewModeButtonClasses(): string;
1720
2144
  handleKeyDown(event: KeyboardEvent): void;
1721
2145
  protected openSearch(): void;
1722
2146
  protected closeSearch(): void;
1723
2147
  protected onSearchChange(query: string): void;
1724
2148
  protected onSearchResultSelected(result: BusinessSearchResult): void;
2149
+ protected handleViewInContext(event: {
2150
+ itemId: string;
2151
+ itemType?: string;
2152
+ }): void;
1725
2153
  private scrollToSearchResult;
1726
2154
  private highlightAndPulseItem;
1727
2155
  ngOnInit(): void;
@@ -1739,7 +2167,7 @@ declare class SymphiqBusinessAnalysisDashboardComponent implements OnInit, After
1739
2167
  protected getSpinnerClasses(): string;
1740
2168
  protected trackBySectionId(index: number, section: ProfileSectionInterface): string | number;
1741
2169
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SymphiqBusinessAnalysisDashboardComponent, never>;
1742
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SymphiqBusinessAnalysisDashboardComponent, "symphiq-business-analysis-dashboard", never, { "requestedByUser": { "alias": "requestedByUser"; "required": false; }; "viewMode": { "alias": "viewMode"; "required": false; }; "embedded": { "alias": "embedded"; "required": false; }; "scrollEvent": { "alias": "scrollEvent"; "required": false; }; "scrollElement": { "alias": "scrollElement"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; "useSampleData": { "alias": "useSampleData"; "required": false; }; "profile": { "alias": "profile"; "required": false; }; "parentHeaderOffset": { "alias": "parentHeaderOffset"; "required": false; }; }, {}, never, never, true, never>;
2170
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SymphiqBusinessAnalysisDashboardComponent, "symphiq-business-analysis-dashboard", never, { "requestedByUser": { "alias": "requestedByUser"; "required": false; }; "viewMode": { "alias": "viewMode"; "required": false; }; "embedded": { "alias": "embedded"; "required": false; }; "scrollEvent": { "alias": "scrollEvent"; "required": false; }; "scrollElement": { "alias": "scrollElement"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; "profile": { "alias": "profile"; "required": false; }; "parentHeaderOffset": { "alias": "parentHeaderOffset"; "required": false; }; "isOnboarded": { "alias": "isOnboarded"; "required": false; }; }, {}, never, never, true, never>;
1743
2171
  }
1744
2172
 
1745
2173
  declare class ProfileSectionComponent {
@@ -1749,11 +2177,12 @@ declare class ProfileSectionComponent {
1749
2177
  viewMode: ViewModeEnum;
1750
2178
  forceExpanded: boolean;
1751
2179
  protected visibleSubsections: _angular_core.Signal<ProfileSubsectionInterface[]>;
2180
+ protected isDark: _angular_core.Signal<boolean>;
2181
+ protected containerClasses: _angular_core.Signal<"relative" | "relative bg-slate-50/50">;
2182
+ protected iconContainerClasses: _angular_core.Signal<"p-4 rounded-2xl bg-gradient-to-br from-blue-500/20 to-purple-500/20 text-blue-400" | "p-4 rounded-2xl bg-gradient-to-br from-blue-100 to-purple-100 text-blue-600">;
2183
+ protected titleClasses: _angular_core.Signal<"text-3xl font-bold text-white" | "text-3xl font-bold text-slate-900">;
2184
+ protected dividerClasses: _angular_core.Signal<"h-1 w-24 rounded-full mt-3 bg-gradient-to-r from-blue-500 to-purple-500" | "h-1 w-24 rounded-full mt-3 bg-gradient-to-r from-blue-600 to-purple-600">;
1752
2185
  protected subsectionHasContent(subsection: ProfileSubsectionInterface): boolean;
1753
- protected getContainerClasses(): string;
1754
- protected getIconContainerClasses(): string;
1755
- protected getTitleClasses(): string;
1756
- protected getDividerClasses(): string;
1757
2186
  protected trackBySubsectionId(index: number, subsection: ProfileSubsectionInterface): string | number;
1758
2187
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProfileSectionComponent, never>;
1759
2188
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ProfileSectionComponent, "symphiq-profile-section", never, { "section": { "alias": "section"; "required": false; }; "viewMode": { "alias": "viewMode"; "required": false; }; "forceExpanded": { "alias": "forceExpanded"; "required": false; }; }, {}, never, never, true, never>;
@@ -1768,16 +2197,24 @@ declare class ProfileSubsectionComponent {
1768
2197
  private sanitizer;
1769
2198
  private profileContextService;
1770
2199
  protected ProfileItemTypeEnum: typeof ProfileItemTypeEnum;
2200
+ protected isDark: _angular_core.Signal<boolean>;
1771
2201
  protected sortedItems: _angular_core.Signal<ProfileItemInterface[]>;
2202
+ private contentCache;
1772
2203
  protected formatContentWithLineBreaks(content: string): SafeHtml;
1773
- protected getContainerClasses(): string;
1774
- protected getIconClasses(): string;
1775
- protected getTitleClasses(): string;
1776
- protected getContentClasses(): string;
1777
- protected getVisualContainerClasses(): string;
2204
+ protected containerClasses: _angular_core.Signal<"p-6 rounded-xl bg-slate-800/30 border border-slate-700/50" | "p-6 rounded-xl bg-white border border-slate-200 shadow-sm">;
2205
+ protected iconClasses: _angular_core.Signal<"p-2 rounded-lg flex-shrink-0 bg-purple-500/10 text-purple-400" | "p-2 rounded-lg flex-shrink-0 bg-purple-50 text-purple-600">;
2206
+ protected titleClasses: _angular_core.Signal<"text-xl font-bold text-white" | "text-xl font-bold text-slate-900">;
2207
+ protected contentClasses: _angular_core.Signal<"mt-2 text-base leading-relaxed text-slate-300" | "mt-2 text-base leading-relaxed text-slate-600">;
2208
+ protected visualContainerClasses: _angular_core.Signal<"mb-6 lg:float-left lg:mr-6 lg:mb-4 lg:max-w-[66%]" | "mb-6 lg:float-right lg:ml-6 lg:mb-4 lg:max-w-[66%]">;
1778
2209
  protected getDisplayContent(): string | null;
1779
2210
  protected trackByItemId(index: number, item: ProfileItemInterface): string | number;
1780
- protected getCompetitiveBenchmark(): any;
2211
+ protected getCompetitiveBenchmark(): {
2212
+ industry: string;
2213
+ metricBenchmark: string | null;
2214
+ competitiveScore: 'LEADING' | 'COMPETITIVE' | 'LAGGING';
2215
+ description: string;
2216
+ keyOpportunities: string;
2217
+ } | undefined;
1781
2218
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProfileSubsectionComponent, never>;
1782
2219
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ProfileSubsectionComponent, "symphiq-profile-subsection", never, { "subsection": { "alias": "subsection"; "required": false; }; "viewMode": { "alias": "viewMode"; "required": false; }; "parentSectionTitle": { "alias": "parentSectionTitle"; "required": false; }; "subsectionIndex": { "alias": "subsectionIndex"; "required": false; }; "forceExpanded": { "alias": "forceExpanded"; "required": false; }; }, {}, never, never, true, never>;
1783
2220
  }
@@ -1789,6 +2226,8 @@ declare class ProfileItemCardComponent {
1789
2226
  forceExpanded: boolean;
1790
2227
  animationIndex: number;
1791
2228
  isLoading: boolean;
2229
+ inModalContext: boolean;
2230
+ isCompactMode: boolean;
1792
2231
  protected isRecommendation(): boolean;
1793
2232
  protected getCardClasses(): string;
1794
2233
  protected getIconClasses(): string;
@@ -1796,7 +2235,7 @@ declare class ProfileItemCardComponent {
1796
2235
  protected getValueClasses(): string;
1797
2236
  protected getItemIcon(): IconObjectInterface$1 | undefined;
1798
2237
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProfileItemCardComponent, never>;
1799
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ProfileItemCardComponent, "symphiq-profile-item-card", never, { "item": { "alias": "item"; "required": false; }; "viewMode": { "alias": "viewMode"; "required": false; }; "subsectionId": { "alias": "subsectionId"; "required": false; }; "forceExpanded": { "alias": "forceExpanded"; "required": false; }; "animationIndex": { "alias": "animationIndex"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; }, {}, never, never, true, never>;
2238
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ProfileItemCardComponent, "symphiq-profile-item-card", never, { "item": { "alias": "item"; "required": false; }; "viewMode": { "alias": "viewMode"; "required": false; }; "subsectionId": { "alias": "subsectionId"; "required": false; }; "forceExpanded": { "alias": "forceExpanded"; "required": false; }; "animationIndex": { "alias": "animationIndex"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; "inModalContext": { "alias": "inModalContext"; "required": false; }; "isCompactMode": { "alias": "isCompactMode"; "required": false; }; }, {}, never, never, true, never>;
1800
2239
  }
1801
2240
 
1802
2241
  declare class NapkinVisualPlaceholderComponent implements OnInit, OnChanges {
@@ -1875,7 +2314,7 @@ declare class FloatingTocComponent implements OnInit, OnDestroy {
1875
2314
  protected tocSections: _angular_core.Signal<{
1876
2315
  id: string;
1877
2316
  title: string;
1878
- icon: _jebgem_model.IconObjectInterface | undefined;
2317
+ icon: IconObjectInterface$1 | undefined;
1879
2318
  subsections: {
1880
2319
  id: string;
1881
2320
  title: string;
@@ -1936,8 +2375,13 @@ declare class FloatingBackButtonComponent implements OnInit, OnDestroy {
1936
2375
 
1937
2376
  declare class BusinessAnalysisModalComponent implements OnInit {
1938
2377
  isLightMode: _angular_core.InputSignal<boolean>;
2378
+ viewInContextRequested: _angular_core.OutputEmitterRef<{
2379
+ itemId: string;
2380
+ itemType?: string;
2381
+ }>;
1939
2382
  private modalService;
1940
2383
  private sanitizer;
2384
+ modalContent?: ElementRef<HTMLDivElement>;
1941
2385
  isOpen: _angular_core.WritableSignal<boolean>;
1942
2386
  modalType: _angular_core.WritableSignal<string | null>;
1943
2387
  modalTitle: _angular_core.WritableSignal<string>;
@@ -1951,6 +2395,10 @@ declare class BusinessAnalysisModalComponent implements OnInit {
1951
2395
  actionSteps: ProfileAnalysisRecommendationActionStepInterface[];
1952
2396
  viewMode: ViewModeEnum;
1953
2397
  } | null>;
2398
+ itemDetailModalData: _angular_core.WritableSignal<ItemDetailModalData | null>;
2399
+ navigationStack: _angular_core.WritableSignal<ItemDetailModalData[]>;
2400
+ itemDetailData: _angular_core.Signal<ItemDetailModalData | null>;
2401
+ previousState: _angular_core.WritableSignal<any>;
1954
2402
  visualizationType: _angular_core.Signal<"horizontal-bar" | "circular-progress" | "napkin-visual" | "custom" | null>;
1955
2403
  horizontalBarData: _angular_core.Signal<{
1956
2404
  percentage: number;
@@ -1972,9 +2420,361 @@ declare class BusinessAnalysisModalComponent implements OnInit {
1972
2420
  constructor();
1973
2421
  ngOnInit(): void;
1974
2422
  getSanitizedSvg(): SafeHtml;
2423
+ handleViewInContext(): void;
2424
+ handleNavigateBack(event?: Event): void;
2425
+ handleNavigateToBreadcrumb(index: number, event?: Event): void;
2426
+ scrollModalToTop(): void;
2427
+ protected hasNavigationHistory(): boolean;
2428
+ protected getBreadcrumbs(): Array<{
2429
+ label: string;
2430
+ }>;
2431
+ protected getBreadcrumbClasses(): string;
2432
+ protected getBackButtonClasses(): string;
2433
+ protected getBreadcrumbLinkClasses(): string;
1975
2434
  closeModal(): void;
1976
2435
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BusinessAnalysisModalComponent, never>;
1977
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<BusinessAnalysisModalComponent, "symphiq-business-analysis-modal", never, { "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2436
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BusinessAnalysisModalComponent, "symphiq-business-analysis-modal", never, { "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; }, { "viewInContextRequested": "viewInContextRequested"; }, never, never, true, never>;
2437
+ }
2438
+
2439
+ type ProfileModalData = {
2440
+ goal: GoalV3Interface;
2441
+ viewMode: ViewModeEnum;
2442
+ } | {
2443
+ goal: GoalV3Interface;
2444
+ viewMode: ViewModeEnum;
2445
+ } | {
2446
+ objective: ObjectiveV3Interface;
2447
+ goalTitle?: string;
2448
+ viewMode: ViewModeEnum;
2449
+ } | {
2450
+ strategy: StrategyV3Interface;
2451
+ objectiveTitle?: string;
2452
+ goalTitle?: string;
2453
+ viewMode: ViewModeEnum;
2454
+ } | {
2455
+ category: OperationalCategoryInterface;
2456
+ viewMode: ViewModeEnum;
2457
+ scrollToSection?: 'strengths' | 'gaps' | 'opportunities';
2458
+ } | {
2459
+ strength: CategoryStrengthInterface;
2460
+ categoryTitle: string;
2461
+ viewMode: ViewModeEnum;
2462
+ } | {
2463
+ gap: CategoryGapInterface;
2464
+ categoryTitle: string;
2465
+ viewMode: ViewModeEnum;
2466
+ } | {
2467
+ opportunity: CategoryOpportunityInterface;
2468
+ categoryTitle: string;
2469
+ viewMode: ViewModeEnum;
2470
+ } | null;
2471
+ declare class SymphiqProfileAnalysisDashboardComponent implements OnInit, OnChanges, OnDestroy, AfterViewInit {
2472
+ funnelModalComponent?: ModalComponent;
2473
+ viewMode: ViewModeEnum;
2474
+ constructor();
2475
+ embedded: boolean;
2476
+ profileAnalysis?: ProfileAnalysisInterface;
2477
+ profile?: ProfileInterface;
2478
+ funnelAnalysis?: FunnelAnalysisInterface;
2479
+ analysisType: ProfileAnalysisTypeEnum;
2480
+ focusAreaDetails?: FocusAreaDetailInterface[];
2481
+ isOnboarded: boolean;
2482
+ protected funnelAnalysisSignal: _angular_core.WritableSignal<FunnelAnalysisInterface | undefined>;
2483
+ protected readonly headerScrollService: HeaderScrollService;
2484
+ protected readonly modalService: ModalService;
2485
+ protected readonly viewModeService: ViewModeService;
2486
+ protected readonly profileContextService: ProfileContextService;
2487
+ protected readonly profileItemLookupService: ProfileItemLookupService;
2488
+ protected readonly IconSourceEnum: typeof IconSourceEnum;
2489
+ protected currentAnalysis: _angular_core.WritableSignal<ProfileAnalysisInterface | undefined>;
2490
+ protected scrollProgress: _angular_core.WritableSignal<number>;
2491
+ protected currentDisplayMode: _angular_core.WritableSignal<DisplayModeEnum>;
2492
+ protected isSearchOpen: _angular_core.WritableSignal<boolean>;
2493
+ protected isViewModeSwitcherOpen: _angular_core.WritableSignal<boolean>;
2494
+ protected modalType: _angular_core.WritableSignal<string | null>;
2495
+ protected modalData: _angular_core.WritableSignal<ProfileModalData>;
2496
+ protected currentModalNavigationStack: _angular_core.WritableSignal<ModalState[]>;
2497
+ protected isLightMode: _angular_core.Signal<boolean>;
2498
+ protected isSimplifiedView: _angular_core.Signal<boolean>;
2499
+ protected isFocusAreaAnalysis: _angular_core.Signal<boolean>;
2500
+ protected isMetricAnalysis: _angular_core.Signal<boolean>;
2501
+ protected isShopAnalysis: _angular_core.Signal<boolean>;
2502
+ focusAreaDomain: _angular_core.Signal<FocusAreaDomainEnum | undefined>;
2503
+ protected focusAreaName: _angular_core.Signal<string>;
2504
+ protected metricName: _angular_core.Signal<string>;
2505
+ protected focusAreaExecutiveSummary: _angular_core.Signal<{
2506
+ gradeRationale: string | undefined;
2507
+ overallGrade?: _jebgem_model.OverallGradeEnum;
2508
+ focusAreaHealth?: _jebgem_model.FocusAreaHealthEnum;
2509
+ narrative?: string;
2510
+ topPriorities?: _jebgem_model.FocusAreaTopPriorityInterface[];
2511
+ quickWins?: _jebgem_model.QuickWinItemInterface[];
2512
+ napkinVisual?: _jebgem_model.NapkinVisualInterface;
2513
+ } | undefined>;
2514
+ protected metricExecutiveSummary: _angular_core.Signal<{
2515
+ gradeRationale: string | undefined;
2516
+ narrative: string | undefined;
2517
+ metric?: string;
2518
+ overallGrade?: _jebgem_model.OverallGradeEnum;
2519
+ metricHealth?: _jebgem_model.MetricHealthEnum;
2520
+ currentValue?: string;
2521
+ targetValue?: string;
2522
+ pacingStatus?: _jebgem_model.PacingStatusEnum;
2523
+ yoyChange?: string;
2524
+ topPriorities?: _jebgem_model.MetricTopPriorityInterface[];
2525
+ quickWins?: _jebgem_model.QuickWinItemInterface[];
2526
+ napkinVisual?: _jebgem_model.NapkinVisualInterface;
2527
+ } | undefined>;
2528
+ protected executiveSummary: _angular_core.Signal<{
2529
+ gradeRationale: string | undefined;
2530
+ overallGrade?: _jebgem_model.OverallGradeEnum;
2531
+ operationalMaturity?: _jebgem_model.OperationalMaturityEnum;
2532
+ narrative?: string;
2533
+ keyStrengths?: _jebgem_model.KeyStrengthInterface[];
2534
+ criticalGaps?: _jebgem_model.CriticalGapInterface[];
2535
+ quickWins?: _jebgem_model.QuickWinItemInterface[];
2536
+ napkinVisual?: _jebgem_model.NapkinVisualInterface;
2537
+ } | undefined>;
2538
+ protected sections: _angular_core.Signal<ProfileAnalysisSectionV3Interface[] | undefined>;
2539
+ protected allGoals: _angular_core.Signal<GoalV3Interface[]>;
2540
+ protected strategicRoadmapGoals: _angular_core.Signal<GoalV3Interface[]>;
2541
+ protected nonStrategicSections: _angular_core.Signal<ProfileAnalysisSectionV3Interface[]>;
2542
+ protected tocSections: _angular_core.Signal<{
2543
+ id: string;
2544
+ title: string;
2545
+ subsections: never[];
2546
+ }[]>;
2547
+ protected displayModeLabel: _angular_core.Signal<string>;
2548
+ protected allMetrics: _angular_core.Signal<PerformanceMetricInterface[]>;
2549
+ protected allCharts: _angular_core.Signal<AiChartInterface[]>;
2550
+ protected allInsights: _angular_core.Signal<_jebgem_model.InsightBlockInterface[]>;
2551
+ protected funnelWeaknesses: _angular_core.Signal<_jebgem_model_lib_funnel_analysis_performance_overview_structured_v3_interface.FunnelWeaknessInterface[]>;
2552
+ protected funnelStrengths: _angular_core.Signal<_jebgem_model_lib_funnel_analysis_performance_overview_structured_v3_interface.FunnelStrengthInterface[]>;
2553
+ protected allBusinessInsights: _angular_core.Signal<ProfileAnalysisRecommendationInterface[]>;
2554
+ onWindowScroll(): void;
2555
+ ngOnChanges(changes: SimpleChanges): void;
2556
+ ngOnInit(): void;
2557
+ ngAfterViewInit(): void;
2558
+ ngOnDestroy(): void;
2559
+ protected openSearch(): void;
2560
+ protected closeSearch(): void;
2561
+ protected openViewModeSwitcher(): void;
2562
+ protected closeViewModeSwitcher(): void;
2563
+ protected openGoalModal(goal: GoalV3Interface): void;
2564
+ protected handleTopPrioritiesClick(): void;
2565
+ protected handlePriorityDetailClick(event: {
2566
+ priority: any;
2567
+ index: number;
2568
+ }): void;
2569
+ protected handleMetricTopPrioritiesClick(): void;
2570
+ protected handleMetricPriorityDetailClick(priority: any): void;
2571
+ private getFocusAreaName;
2572
+ protected getCurrentModalState(): ModalState;
2573
+ protected getGoalDetailData(): {
2574
+ goal: GoalV3Interface;
2575
+ viewMode: ViewModeEnum;
2576
+ } | null;
2577
+ protected getObjectiveStrategiesData(): {
2578
+ objective: ObjectiveV3Interface;
2579
+ goalTitle?: string;
2580
+ viewMode: ViewModeEnum;
2581
+ } | null;
2582
+ protected getStrategyRecommendationsData(): {
2583
+ strategy: StrategyV3Interface;
2584
+ objectiveTitle?: string;
2585
+ goalTitle?: string;
2586
+ viewMode: ViewModeEnum;
2587
+ } | null;
2588
+ protected getCategoryDetailData(): {
2589
+ category: OperationalCategoryInterface;
2590
+ viewMode: ViewModeEnum;
2591
+ scrollToSection?: 'strengths' | 'gaps' | 'opportunities';
2592
+ } | null;
2593
+ protected getStrengthDetailData(): {
2594
+ strength: CategoryStrengthInterface;
2595
+ categoryTitle: string;
2596
+ viewMode: ViewModeEnum;
2597
+ } | null;
2598
+ protected getGapDetailData(): {
2599
+ gap: CategoryGapInterface;
2600
+ categoryTitle: string;
2601
+ viewMode: ViewModeEnum;
2602
+ } | null;
2603
+ protected getOpportunityDetailData(): {
2604
+ opportunity: CategoryOpportunityInterface;
2605
+ categoryTitle: string;
2606
+ viewMode: ViewModeEnum;
2607
+ } | null;
2608
+ protected handleDisplayModeChange(mode: DisplayModeEnum): void;
2609
+ protected getAnalysisTypeLabel(): string;
2610
+ protected getAnalysisSubtitle(): string;
2611
+ protected getGradeDisplay(): string;
2612
+ protected getContainerClasses(): string;
2613
+ protected getBannerClasses(): string;
2614
+ protected getSectionTitleClasses(): string;
2615
+ protected getSubheadingClasses(): string;
2616
+ protected getTextClasses(): string;
2617
+ protected getNarrativeClasses(): string;
2618
+ protected getKeyStrengthsStatCardClasses(): string;
2619
+ protected getKeyStrengthsStatLabelClasses(): string;
2620
+ protected getKeyStrengthsStatValueClasses(): string;
2621
+ protected getKeyStrengthsButtonTextClasses(): string;
2622
+ protected getCriticalGapsStatCardClasses(): string;
2623
+ protected getCriticalGapsStatLabelClasses(): string;
2624
+ protected getCriticalGapsStatValueClasses(): string;
2625
+ protected getCriticalGapsButtonTextClasses(): string;
2626
+ protected getQuickWinsStatCardClasses(): string;
2627
+ protected getQuickWinsStatLabelClasses(): string;
2628
+ protected getQuickWinsStatValueClasses(): string;
2629
+ protected getQuickWinsButtonTextClasses(): string;
2630
+ protected getQuickWinCardClasses(): string;
2631
+ protected getQuickWinTextClasses(): string;
2632
+ protected getNumberBadgeClasses(): string;
2633
+ protected getEffortBadgeClasses(effort?: string): string;
2634
+ protected getImpactBadgeClasses(impact?: string): string;
2635
+ protected getMetaTextClasses(): string;
2636
+ protected formatLabel(label?: string): string;
2637
+ protected getSectionCardClasses(): string;
2638
+ protected getSectionIconClasses(): string;
2639
+ protected getSectionDescriptionClasses(): string;
2640
+ private formatGradeInText;
2641
+ protected onKeyStrengthsClick(summary: ExecutiveSummaryInterface): void;
2642
+ protected onCriticalGapsClick(summary: ExecutiveSummaryInterface): void;
2643
+ protected scrollToQuickWins(): void;
2644
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SymphiqProfileAnalysisDashboardComponent, never>;
2645
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SymphiqProfileAnalysisDashboardComponent, "symphiq-profile-analysis-dashboard", never, { "viewMode": { "alias": "viewMode"; "required": false; }; "embedded": { "alias": "embedded"; "required": false; }; "profileAnalysis": { "alias": "profileAnalysis"; "required": false; }; "profile": { "alias": "profile"; "required": false; }; "funnelAnalysis": { "alias": "funnelAnalysis"; "required": false; }; "analysisType": { "alias": "analysisType"; "required": false; }; "focusAreaDetails": { "alias": "focusAreaDetails"; "required": false; }; "isOnboarded": { "alias": "isOnboarded"; "required": false; }; }, {}, never, never, true, never>;
2646
+ }
2647
+
2648
+ declare class ShopWelcomeBannerComponent {
2649
+ viewMode: ViewModeEnum;
2650
+ businessName: string;
2651
+ isOnboarded: boolean;
2652
+ protected containerClasses(): string;
2653
+ protected contentClasses(): string;
2654
+ protected iconContainerClasses(): string;
2655
+ protected titleClasses(): string;
2656
+ protected textClasses(): string;
2657
+ protected highlightBoxClasses(): string;
2658
+ protected highlightIconClasses(): string;
2659
+ protected highlightTitleClasses(): string;
2660
+ protected highlightListClasses(): string;
2661
+ protected nextStepsBoxClasses(): string;
2662
+ protected nextStepsIconClasses(): string;
2663
+ protected nextStepsTitleClasses(): string;
2664
+ protected nextStepsTextClasses(): string;
2665
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ShopWelcomeBannerComponent, never>;
2666
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ShopWelcomeBannerComponent, "symphiq-shop-welcome-banner", never, { "viewMode": { "alias": "viewMode"; "required": false; }; "businessName": { "alias": "businessName"; "required": false; }; "isOnboarded": { "alias": "isOnboarded"; "required": false; }; }, {}, never, never, true, never>;
2667
+ }
2668
+
2669
+ declare class MetricWelcomeBannerComponent {
2670
+ viewMode: ViewModeEnum;
2671
+ metricName?: string;
2672
+ isOnboarded: boolean;
2673
+ protected readonly IconSourceEnum: typeof IconSourceEnum;
2674
+ protected metricDisplayName: _angular_core.Signal<string>;
2675
+ protected metricIcon: _angular_core.Signal<{
2676
+ name: string;
2677
+ source: IconSourceEnum;
2678
+ }>;
2679
+ protected containerClasses(): string;
2680
+ protected contentClasses(): string;
2681
+ protected iconContainerClasses(): string;
2682
+ protected titleClasses(): string;
2683
+ protected textClasses(): string;
2684
+ protected highlightBoxClasses(): string;
2685
+ protected highlightIconClasses(): string;
2686
+ protected highlightTitleClasses(): string;
2687
+ protected highlightListClasses(): string;
2688
+ protected nextStepsBoxClasses(): string;
2689
+ protected nextStepsIconClasses(): string;
2690
+ protected nextStepsTitleClasses(): string;
2691
+ protected nextStepsTextClasses(): string;
2692
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MetricWelcomeBannerComponent, never>;
2693
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MetricWelcomeBannerComponent, "symphiq-metric-welcome-banner", never, { "viewMode": { "alias": "viewMode"; "required": false; }; "metricName": { "alias": "metricName"; "required": false; }; "isOnboarded": { "alias": "isOnboarded"; "required": false; }; }, {}, never, never, true, never>;
2694
+ }
2695
+
2696
+ declare class FocusAreaExecutiveSummaryComponent {
2697
+ viewMode: ViewModeEnum;
2698
+ summary?: FocusAreaExecutiveSummaryInterface;
2699
+ allGoals: GoalV3Interface[];
2700
+ topPrioritiesClick: EventEmitter<void>;
2701
+ priorityDetailClick: EventEmitter<{
2702
+ priority: FocusAreaTopPriorityInterface;
2703
+ index: number;
2704
+ }>;
2705
+ protected readonly IconSourceEnum: typeof IconSourceEnum;
2706
+ protected onTopPrioritiesClick(): void;
2707
+ protected onPriorityDetailClick(event: {
2708
+ priority: FocusAreaTopPriorityInterface;
2709
+ index: number;
2710
+ }): void;
2711
+ protected scrollToQuickWins(): void;
2712
+ protected formatLabel(label?: string): string;
2713
+ protected getBannerClasses(): string;
2714
+ protected getSectionTitleClasses(): string;
2715
+ protected getSubheadingClasses(): string;
2716
+ protected getTextClasses(): string;
2717
+ protected getNarrativeClasses(): string;
2718
+ protected getTopPrioritiesStatCardClasses(): string;
2719
+ protected getTopPrioritiesStatLabelClasses(): string;
2720
+ protected getTopPrioritiesStatValueClasses(): string;
2721
+ protected getTopPrioritiesButtonTextClasses(): string;
2722
+ protected getQuickWinsStatCardClasses(): string;
2723
+ protected getQuickWinsStatLabelClasses(): string;
2724
+ protected getQuickWinsStatValueClasses(): string;
2725
+ protected getQuickWinsButtonTextClasses(): string;
2726
+ protected getQuickWinCardClasses(): string;
2727
+ protected getQuickWinTextClasses(): string;
2728
+ protected getNumberBadgeClasses(): string;
2729
+ protected getEffortBadgeClasses(effort?: string): string;
2730
+ protected getImpactBadgeClasses(impact?: string): string;
2731
+ protected getMetaTextClasses(): string;
2732
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FocusAreaExecutiveSummaryComponent, never>;
2733
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FocusAreaExecutiveSummaryComponent, "symphiq-focus-area-executive-summary", never, { "viewMode": { "alias": "viewMode"; "required": false; }; "summary": { "alias": "summary"; "required": false; }; "allGoals": { "alias": "allGoals"; "required": false; }; }, { "topPrioritiesClick": "topPrioritiesClick"; "priorityDetailClick": "priorityDetailClick"; }, never, never, true, never>;
2734
+ }
2735
+
2736
+ declare class MetricExecutiveSummaryComponent {
2737
+ viewMode: ViewModeEnum;
2738
+ summary: MetricExecutiveSummaryInterface;
2739
+ metricName: string;
2740
+ allGoals?: GoalV3Interface[];
2741
+ topPrioritiesClick: EventEmitter<void>;
2742
+ priorityDetailClick: EventEmitter<any>;
2743
+ protected iconSource: IconSourceEnum;
2744
+ protected isDark: _angular_core.Signal<boolean>;
2745
+ protected bannerClasses: _angular_core.Signal<"bg-gradient-to-br from-slate-800/50 to-slate-800/30 border border-slate-700/50" | "bg-gradient-to-br from-white to-slate-50/50 border border-slate-200">;
2746
+ protected titleClasses: _angular_core.Signal<"text-slate-100" | "text-slate-900">;
2747
+ protected textClasses: _angular_core.Signal<"text-slate-300" | "text-slate-700">;
2748
+ protected iconClasses: _angular_core.Signal<"text-blue-400" | "text-blue-600">;
2749
+ protected healthBadgeClasses: _angular_core.Signal<string>;
2750
+ protected pacingBadgeClasses: _angular_core.Signal<string>;
2751
+ protected metricCardClasses: _angular_core.Signal<"bg-white border border-slate-200" | "bg-slate-800/50 border border-slate-700/50">;
2752
+ protected metricLabelClasses: _angular_core.Signal<"text-slate-600" | "text-slate-400">;
2753
+ protected metricValueClasses: _angular_core.Signal<"text-slate-100" | "text-slate-900">;
2754
+ protected yoyChangeClasses: _angular_core.Signal<"text-slate-600" | "text-slate-400" | "text-emerald-400" | "text-red-400" | "text-red-600" | "text-emerald-600">;
2755
+ protected getYoyIcon(): string;
2756
+ protected getPacingValueClasses(): string;
2757
+ protected getHealthValueClasses(): string;
2758
+ protected narrativeClasses: _angular_core.Signal<"bg-white border border-slate-200" | "bg-slate-800/50 border border-slate-600/20">;
2759
+ protected narrativeTitleClasses: _angular_core.Signal<"text-slate-200" | "text-slate-800">;
2760
+ protected narrativeTextClasses: _angular_core.Signal<"text-slate-600" | "text-slate-400">;
2761
+ protected sectionTitleClasses: _angular_core.Signal<"text-slate-100" | "text-slate-900">;
2762
+ protected priorityCardClasses: _angular_core.Signal<"bg-slate-800/50 border border-slate-700/50 hover:border-slate-600/70" | "bg-white border border-slate-200 hover:border-slate-300">;
2763
+ protected priorityNumberClasses: _angular_core.Signal<"bg-blue-500/20 text-blue-300" | "bg-blue-100 text-blue-800">;
2764
+ protected priorityTitleClasses: _angular_core.Signal<"text-slate-100" | "text-slate-900">;
2765
+ protected priorityTextClasses: _angular_core.Signal<"text-slate-300" | "text-slate-700">;
2766
+ protected impactBoxClasses: _angular_core.Signal<"bg-slate-800/30 border border-slate-700/30" | "bg-slate-50/50 border border-slate-200">;
2767
+ protected impactLabelClasses: _angular_core.Signal<"text-blue-400" | "text-blue-600">;
2768
+ protected impactTextClasses: _angular_core.Signal<"text-slate-600" | "text-slate-400">;
2769
+ protected quickWinCardClasses: _angular_core.Signal<"bg-white border border-slate-200" | "bg-slate-800/50 border border-slate-700/50">;
2770
+ protected numberBadgeClasses: _angular_core.Signal<"bg-blue-500/20 text-blue-300" | "bg-blue-100 text-blue-800">;
2771
+ protected quickWinTextClasses: _angular_core.Signal<"text-slate-100" | "text-slate-900">;
2772
+ protected metaTextClasses: _angular_core.Signal<"text-slate-600" | "text-slate-400">;
2773
+ protected getEffortBadgeClasses(effort: string | undefined): string;
2774
+ protected getImpactBadgeClasses(impact: string | undefined): string;
2775
+ protected formatLabel(str: string | undefined): string;
2776
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MetricExecutiveSummaryComponent, never>;
2777
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MetricExecutiveSummaryComponent, "symphiq-metric-executive-summary", never, { "viewMode": { "alias": "viewMode"; "required": false; }; "summary": { "alias": "summary"; "required": false; }; "metricName": { "alias": "metricName"; "required": false; }; "allGoals": { "alias": "allGoals"; "required": false; }; }, { "topPrioritiesClick": "topPrioritiesClick"; "priorityDetailClick": "priorityDetailClick"; }, never, never, true, never>;
1978
2778
  }
1979
2779
 
1980
2780
  declare class HorizontalBarComponent implements OnInit, OnDestroy {
@@ -2044,7 +2844,7 @@ declare class VisualizationContainerComponent {
2044
2844
  data: unknown;
2045
2845
  }>;
2046
2846
  containerClass: _angular_core.Signal<"" | "cursor-pointer">;
2047
- iconClass: _angular_core.Signal<"text-slate-400 group-hover:text-blue-500" | "text-slate-500 group-hover:text-blue-400">;
2847
+ iconClass: _angular_core.Signal<"text-slate-500 group-hover:text-blue-400" | "text-slate-400 group-hover:text-blue-500">;
2048
2848
  onExpandClick(event: Event): void;
2049
2849
  onVisualizationClick(event: Event): void;
2050
2850
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<VisualizationContainerComponent, never>;
@@ -2084,12 +2884,13 @@ declare class SymphiqIconComponent {
2084
2884
  declare class SectionDividerComponent {
2085
2885
  viewMode: ViewModeEnum;
2086
2886
  animationDelay: string;
2887
+ sectionIcon?: IconObjectInterface$1;
2087
2888
  private subsectionsSignal;
2088
2889
  set subsections(value: ProfileSubsectionInterface[] | undefined);
2089
- protected displayIcons: _angular_core.Signal<_jebgem_model.IconObjectInterface[]>;
2890
+ protected displayIcons: _angular_core.Signal<IconObjectInterface$1[]>;
2090
2891
  protected isLightMode(): boolean;
2091
2892
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SectionDividerComponent, never>;
2092
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SectionDividerComponent, "symphiq-section-divider", never, { "viewMode": { "alias": "viewMode"; "required": false; }; "animationDelay": { "alias": "animationDelay"; "required": false; }; "subsections": { "alias": "subsections"; "required": false; }; }, {}, never, never, true, never>;
2893
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SectionDividerComponent, "symphiq-section-divider", never, { "viewMode": { "alias": "viewMode"; "required": false; }; "animationDelay": { "alias": "animationDelay"; "required": false; }; "sectionIcon": { "alias": "sectionIcon"; "required": false; }; "subsections": { "alias": "subsections"; "required": false; }; }, {}, never, never, true, never>;
2093
2894
  }
2094
2895
 
2095
2896
  declare class SearchButtonComponent {
@@ -2128,23 +2929,157 @@ declare class SearchModalComponent {
2128
2929
  iconClass: _angular_core.Signal<"text-slate-400" | "text-slate-500">;
2129
2930
  clearButtonClass: _angular_core.Signal<"bg-slate-100 text-slate-600 hover:bg-slate-200" | "bg-slate-700 text-slate-300 hover:bg-slate-600">;
2130
2931
  closeButtonClass: _angular_core.Signal<"text-slate-400 hover:text-slate-600 hover:bg-slate-100" | "text-slate-500 hover:text-slate-300 hover:bg-slate-700">;
2131
- resultsContainerClass: _angular_core.Signal<"border-slate-200" | "border-slate-700">;
2932
+ resultsContainerClass: _angular_core.Signal<"border-slate-700" | "border-slate-200">;
2132
2933
  resultTitleClass: _angular_core.Signal<"text-slate-900" | "text-white">;
2133
- resultDescClass: _angular_core.Signal<"text-slate-400" | "text-slate-600">;
2934
+ resultDescClass: _angular_core.Signal<"text-slate-600" | "text-slate-400">;
2134
2935
  breadcrumbClass: _angular_core.Signal<string>;
2135
2936
  typeBadgeClass: _angular_core.Signal<"bg-slate-100 text-slate-600" | "bg-slate-700 text-slate-300">;
2136
2937
  arrowClass: _angular_core.Signal<"text-slate-400" | "text-slate-500">;
2137
- emptyStateClass: _angular_core.Signal<"border-slate-200" | "border-slate-700">;
2138
- emptyIconClass: _angular_core.Signal<"text-slate-600" | "text-slate-300">;
2938
+ emptyStateClass: _angular_core.Signal<"border-slate-700" | "border-slate-200">;
2939
+ emptyIconClass: _angular_core.Signal<"text-slate-300" | "text-slate-600">;
2139
2940
  emptyTitleClass: _angular_core.Signal<"text-slate-900" | "text-white">;
2140
- emptyDescClass: _angular_core.Signal<"text-slate-400" | "text-slate-600">;
2141
- shortcutsClass: _angular_core.Signal<"bg-slate-900/50 border-slate-700" | "bg-slate-50 border-slate-200">;
2941
+ emptyDescClass: _angular_core.Signal<"text-slate-600" | "text-slate-400">;
2942
+ shortcutsClass: _angular_core.Signal<"bg-slate-50 border-slate-200" | "bg-slate-900/50 border-slate-700">;
2142
2943
  kbdClass: _angular_core.Signal<"bg-white border border-slate-300 text-slate-700 shadow-sm" | "bg-slate-700 border border-slate-600 text-slate-300">;
2143
- shortcutTextClass: _angular_core.Signal<"text-slate-400" | "text-slate-600">;
2944
+ shortcutTextClass: _angular_core.Signal<"text-slate-600" | "text-slate-400">;
2144
2945
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SearchModalComponent, never>;
2145
2946
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SearchModalComponent, "symphiq-search-modal", never, { "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; "isOpen": { "alias": "isOpen"; "required": false; "isSignal": true; }; "searchQuery": { "alias": "searchQuery"; "required": false; "isSignal": true; }; "results": { "alias": "results"; "required": false; "isSignal": true; }; "hasResults": { "alias": "hasResults"; "required": false; "isSignal": true; }; "selectedIndex": { "alias": "selectedIndex"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; }, { "searchChange": "searchChange"; "resultSelected": "resultSelected"; "close": "close"; }, never, never, true, never>;
2146
2947
  }
2147
2948
 
2949
+ declare class GradeBadgeComponent {
2950
+ grade: _angular_core.InputSignal<string>;
2951
+ gradeRationale: _angular_core.InputSignal<string>;
2952
+ label: _angular_core.InputSignal<string>;
2953
+ viewMode: _angular_core.InputSignal<ViewModeEnum>;
2954
+ tooltipPosition: _angular_core.InputSignal<"top" | "left" | "right" | "bottom">;
2955
+ isLightMode: _angular_core.Signal<boolean>;
2956
+ formattedGrade: _angular_core.Signal<string>;
2957
+ shouldPulse: _angular_core.Signal<boolean>;
2958
+ tooltip: _angular_core.Signal<{
2959
+ title: string;
2960
+ grade: string;
2961
+ explanation: string;
2962
+ }>;
2963
+ private formatGrade;
2964
+ badgeLabelClass: _angular_core.Signal<"text-slate-600" | "text-slate-400">;
2965
+ gradeBadgeClass: _angular_core.Signal<string>;
2966
+ private getGradeBadgeClassLight;
2967
+ private getGradeBadgeClassDark;
2968
+ private getGradeExplanation;
2969
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<GradeBadgeComponent, never>;
2970
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<GradeBadgeComponent, "symphiq-grade-badge", never, { "grade": { "alias": "grade"; "required": false; "isSignal": true; }; "gradeRationale": { "alias": "gradeRationale"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; "tooltipPosition": { "alias": "tooltipPosition"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2971
+ }
2972
+
2973
+ declare class ChartCardComponent {
2974
+ chart: _angular_core.InputSignal<AiChartInterface>;
2975
+ viewMode: _angular_core.InputSignal<ViewModeEnum>;
2976
+ isLightMode: _angular_core.InputSignal<boolean>;
2977
+ chartClick: _angular_core.OutputEmitterRef<AiChartInterface>;
2978
+ protected readonly ChartTypeEnum: typeof ChartTypeEnum;
2979
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChartCardComponent, never>;
2980
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ChartCardComponent, "symphiq-chart-card", never, { "chart": { "alias": "chart"; "required": true; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; }, { "chartClick": "chartClick"; }, never, never, true, never>;
2981
+ }
2982
+
2983
+ declare class MetricListItemComponent {
2984
+ metric: _angular_core.InputSignal<PerformanceMetricInterface>;
2985
+ isLightMode: _angular_core.InputSignal<boolean>;
2986
+ animationKey: _angular_core.InputSignal<number>;
2987
+ currencySymbol: _angular_core.InputSignal<string>;
2988
+ metricClick: _angular_core.OutputEmitterRef<PerformanceMetricInterface>;
2989
+ private metricNameCache;
2990
+ private animatedValueSignal;
2991
+ private animatedTrendSignal;
2992
+ private animationFrame;
2993
+ private trendAnimationFrame;
2994
+ animatedValue: _angular_core.Signal<number>;
2995
+ animatedTrendValue: _angular_core.Signal<number>;
2996
+ constructor();
2997
+ formatMetricName(name: string): string;
2998
+ formatAnimatedMetricValue(metric: PerformanceMetricInterface, animatedValue: number): string;
2999
+ getMetricTrendClass(metric: PerformanceMetricInterface): string;
3000
+ private animateValue;
3001
+ private animateTrend;
3002
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MetricListItemComponent, never>;
3003
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MetricListItemComponent, "symphiq-metric-list-item", never, { "metric": { "alias": "metric"; "required": true; "isSignal": true; }; "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; "animationKey": { "alias": "animationKey"; "required": false; "isSignal": true; }; "currencySymbol": { "alias": "currencySymbol"; "required": false; "isSignal": true; }; }, { "metricClick": "metricClick"; }, never, never, true, never>;
3004
+ }
3005
+
3006
+ interface ConfidenceData {
3007
+ grade: string;
3008
+ percentage: number;
3009
+ qualitativeStatus: string;
3010
+ quantitativeStatus: string;
3011
+ description: string;
3012
+ }
3013
+ declare class ConfidenceLevelCardComponent implements OnInit, OnDestroy {
3014
+ viewMode: ViewModeEnum;
3015
+ currentStepId: string;
3016
+ focusAreaDetails?: FocusAreaDetailInterface[];
3017
+ currentFocusAreaDomain?: FocusAreaDomainEnum;
3018
+ currentMetric?: string;
3019
+ private elementRef;
3020
+ private observer?;
3021
+ private animationFrame?;
3022
+ protected hasAnimated: _angular_core.WritableSignal<boolean>;
3023
+ protected animatedPercentage: _angular_core.WritableSignal<number>;
3024
+ ngOnInit(): void;
3025
+ ngOnDestroy(): void;
3026
+ private setupObserver;
3027
+ private animateProgress;
3028
+ private calculateFocusAreaPercentage;
3029
+ private calculateMetricPercentage;
3030
+ private getMetricGrade;
3031
+ private getMetricQualitativeStatus;
3032
+ private getMetricDescription;
3033
+ protected confidenceData: _angular_core.Signal<ConfidenceData>;
3034
+ protected shouldPulse: _angular_core.Signal<boolean>;
3035
+ protected isLightMode: _angular_core.Signal<boolean>;
3036
+ protected cardContainerClasses: _angular_core.Signal<"border-2 shadow-2xl bg-slate-800/60 border-slate-700/50 backdrop-blur-xl" | "border-2 shadow-2xl bg-white/90 border-slate-200/50 backdrop-blur-xl shadow-slate-200/50">;
3037
+ protected backgroundOverlayClasses: _angular_core.Signal<"bg-gradient-to-br from-emerald-500/30 via-teal-500/20 to-emerald-500/30" | "bg-gradient-to-br from-emerald-400/20 via-teal-400/10 to-emerald-400/20" | "bg-gradient-to-br from-blue-500/30 via-cyan-500/20 to-blue-500/30" | "bg-gradient-to-br from-blue-400/20 via-cyan-400/10 to-blue-400/20" | "bg-gradient-to-br from-orange-500/30 via-amber-500/20 to-orange-500/30" | "bg-gradient-to-br from-orange-400/20 via-amber-400/10 to-orange-400/20" | "bg-gradient-to-br from-red-500/30 via-rose-500/20 to-red-500/30" | "bg-gradient-to-br from-red-400/20 via-rose-400/10 to-red-400/20">;
3038
+ protected titleClasses: _angular_core.Signal<"text-white" | "bg-gradient-to-r from-slate-700 to-slate-900 bg-clip-text text-transparent">;
3039
+ protected subtitleClasses: _angular_core.Signal<"text-slate-600" | "text-slate-400">;
3040
+ protected gradeBadgeContainerClasses: _angular_core.Signal<string>;
3041
+ protected glowEffectClasses: _angular_core.Signal<"bg-emerald-500" | "bg-blue-500" | "bg-orange-500" | "bg-red-500">;
3042
+ protected gradeBadgeClasses: _angular_core.Signal<"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)]" | "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)]" | "bg-gradient-to-br from-blue-500/30 to-cyan-500/30 border-2 border-blue-500/50 shadow-[0_0_20px_rgba(59,130,246,0.3)]" | "bg-gradient-to-br from-blue-50 to-cyan-50 border-2 border-blue-300/50 shadow-[0_0_20px_rgba(59,130,246,0.2)]" | "bg-gradient-to-br from-orange-500/30 to-amber-500/30 border-2 border-orange-500/50 shadow-[0_0_20px_rgba(249,115,22,0.3)]" | "bg-gradient-to-br from-orange-50 to-amber-50 border-2 border-orange-300/50 shadow-[0_0_20px_rgba(249,115,22,0.2)]" | "bg-gradient-to-br from-red-500/30 to-rose-500/30 border-2 border-red-500/50 shadow-[0_0_20px_rgba(239,68,68,0.3)]" | "bg-gradient-to-br from-red-50 to-rose-50 border-2 border-red-300/50 shadow-[0_0_20px_rgba(239,68,68,0.2)]">;
3043
+ protected gradeLabelClasses: _angular_core.Signal<"text-blue-700" | "text-emerald-700" | "text-red-700" | "text-orange-700" | "text-emerald-300" | "text-blue-300" | "text-orange-300" | "text-red-300">;
3044
+ protected gradeValueClasses: _angular_core.Signal<"bg-gradient-to-b from-emerald-300 to-emerald-500 bg-clip-text text-transparent" | "bg-gradient-to-b from-emerald-600 to-emerald-800 bg-clip-text text-transparent" | "bg-gradient-to-b from-blue-300 to-blue-500 bg-clip-text text-transparent" | "bg-gradient-to-b from-blue-600 to-blue-800 bg-clip-text text-transparent" | "bg-gradient-to-b from-orange-300 to-orange-500 bg-clip-text text-transparent" | "bg-gradient-to-b from-orange-600 to-orange-800 bg-clip-text text-transparent" | "bg-gradient-to-b from-red-300 to-red-500 bg-clip-text text-transparent" | "bg-gradient-to-b from-red-600 to-red-800 bg-clip-text text-transparent">;
3045
+ protected descriptionClasses: _angular_core.Signal<"text-slate-300" | "text-slate-700">;
3046
+ protected progressLabelClasses: _angular_core.Signal<"text-slate-300" | "text-slate-700">;
3047
+ protected progressValueClasses: _angular_core.Signal<"text-blue-400" | "text-blue-600" | "text-emerald-400" | "text-red-400" | "text-red-600" | "text-orange-600" | "text-orange-400" | "text-emerald-600">;
3048
+ protected progressTrackClasses: _angular_core.Signal<"bg-slate-700/50 shadow-inner" | "bg-slate-200 shadow-inner">;
3049
+ protected progressBarClasses: _angular_core.Signal<"rounded-full overflow-hidden bg-gradient-to-r from-emerald-500 via-teal-500 to-emerald-600" | "rounded-full overflow-hidden bg-gradient-to-r from-blue-500 via-cyan-500 to-blue-600" | "rounded-full overflow-hidden bg-gradient-to-r from-orange-500 via-amber-500 to-orange-600" | "rounded-full overflow-hidden bg-gradient-to-r from-red-500 via-rose-500 to-red-600">;
3050
+ protected shimmerClasses: _angular_core.Signal<string>;
3051
+ protected progressGlowClasses: _angular_core.Signal<"bg-gradient-to-r from-emerald-500 to-teal-500" | "bg-gradient-to-r from-blue-500 to-cyan-500" | "bg-gradient-to-r from-orange-500 to-amber-500" | "bg-gradient-to-r from-red-500 to-rose-500">;
3052
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ConfidenceLevelCardComponent, never>;
3053
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ConfidenceLevelCardComponent, "symphiq-confidence-level-card", never, { "viewMode": { "alias": "viewMode"; "required": false; }; "currentStepId": { "alias": "currentStepId"; "required": false; }; "focusAreaDetails": { "alias": "focusAreaDetails"; "required": false; }; "currentFocusAreaDomain": { "alias": "currentFocusAreaDomain"; "required": false; }; "currentMetric": { "alias": "currentMetric"; "required": false; }; }, {}, never, never, true, never>;
3054
+ }
3055
+
3056
+ declare class RelatedContentSidebarComponent {
3057
+ relatedContent: _angular_core.InputSignal<CrossDashboardRelationships | null>;
3058
+ viewMode: _angular_core.InputSignal<ViewModeEnum>;
3059
+ funnelInsightsClicked: _angular_core.OutputEmitterRef<void>;
3060
+ funnelMetricsClicked: _angular_core.OutputEmitterRef<void>;
3061
+ businessInsightsClicked: _angular_core.OutputEmitterRef<void>;
3062
+ protected isLightMode: _angular_core.Signal<boolean>;
3063
+ protected hasFunnelContent: _angular_core.Signal<boolean>;
3064
+ protected hasBusinessContent: _angular_core.Signal<boolean>;
3065
+ protected hasRelatedContent: _angular_core.Signal<boolean>;
3066
+ protected funnelInsightsCount: _angular_core.Signal<number>;
3067
+ protected funnelMetricsCount: _angular_core.Signal<number>;
3068
+ protected businessInsightsCount: _angular_core.Signal<number>;
3069
+ protected headerClasses: _angular_core.Signal<"text-slate-600" | "text-slate-400">;
3070
+ protected buttonClasses: _angular_core.Signal<"bg-slate-800/50 border-slate-700 hover:border-blue-500/50 hover:bg-slate-700/50" | "bg-slate-50 border-slate-200 hover:border-blue-500/50 hover:bg-slate-100">;
3071
+ protected iconBgClasses: _angular_core.Signal<"bg-blue-100 text-blue-600" | "bg-blue-900/30 text-blue-400">;
3072
+ protected iconClasses: _angular_core.Signal<"text-blue-400" | "text-blue-600">;
3073
+ protected countClasses: _angular_core.Signal<"text-slate-900" | "text-white">;
3074
+ protected labelClasses: _angular_core.Signal<"text-slate-600" | "text-slate-400">;
3075
+ protected chevronClasses: _angular_core.Signal<"text-slate-400 group-hover:text-blue-600" | "text-slate-500 group-hover:text-blue-400">;
3076
+ protected onFunnelInsightsClick(): void;
3077
+ protected onFunnelMetricsClick(): void;
3078
+ protected onBusinessInsightsClick(): void;
3079
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RelatedContentSidebarComponent, never>;
3080
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<RelatedContentSidebarComponent, "symphiq-related-content-sidebar", never, { "relatedContent": { "alias": "relatedContent"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; }, { "funnelInsightsClicked": "funnelInsightsClicked"; "funnelMetricsClicked": "funnelMetricsClicked"; "businessInsightsClicked": "businessInsightsClicked"; }, never, never, true, never>;
3081
+ }
3082
+
2148
3083
  declare class ChartContainerComponent {
2149
3084
  chart: _angular_core.InputSignal<AiChartInterface>;
2150
3085
  isLightMode: _angular_core.InputSignal<boolean>;
@@ -2152,15 +3087,16 @@ declare class ChartContainerComponent {
2152
3087
  isCompactMode: _angular_core.InputSignal<boolean>;
2153
3088
  collapsibleIn: _angular_core.InputSignal<"compact" | "expanded" | "never">;
2154
3089
  viewMode: _angular_core.InputSignal<ViewModeEnum>;
3090
+ currencySymbol: _angular_core.InputSignal<string>;
2155
3091
  chartClick: _angular_core.OutputEmitterRef<AiChartInterface>;
2156
3092
  isExpanded: _angular_core.WritableSignal<boolean>;
2157
3093
  protected ChartTypeEnum: typeof ChartTypeEnum;
2158
3094
  containerClass: _angular_core.Signal<"bg-white border-slate-200 hover:border-blue-300 hover:shadow-blue-100/50" | "bg-slate-800 border-slate-700 hover:border-slate-600 hover:shadow-slate-900/50">;
2159
- headerClass: _angular_core.Signal<"border-slate-200" | "border-slate-700">;
3095
+ headerClass: _angular_core.Signal<"border-slate-700" | "border-slate-200">;
2160
3096
  titleClass: _angular_core.Signal<"text-slate-900" | "text-white">;
2161
- descriptionClass: _angular_core.Signal<"text-slate-400" | "text-slate-600">;
2162
- iconClass: _angular_core.Signal<"text-slate-400 group-hover:text-blue-500" | "text-slate-500 group-hover:text-blue-400">;
2163
- chartIconClass: _angular_core.Signal<"bg-blue-100 text-blue-600" | "bg-blue-500/20 text-blue-400">;
3097
+ descriptionClass: _angular_core.Signal<"text-slate-600" | "text-slate-400">;
3098
+ iconClass: _angular_core.Signal<"text-slate-500 group-hover:text-blue-400" | "text-slate-400 group-hover:text-blue-500">;
3099
+ chartIconClass: _angular_core.Signal<"bg-blue-500/20 text-blue-400" | "bg-blue-100 text-blue-600">;
2164
3100
  expandButtonClass: _angular_core.Signal<"bg-blue-100 text-blue-600 hover:bg-blue-200" | "bg-blue-500/20 text-blue-400 hover:bg-blue-500/30">;
2165
3101
  closeButtonClass: _angular_core.Signal<"bg-slate-100 text-slate-600 hover:bg-slate-200" | "bg-slate-700/50 text-slate-400 hover:bg-slate-600/50">;
2166
3102
  isCollapsible: _angular_core.Signal<boolean>;
@@ -2170,14 +3106,15 @@ declare class ChartContainerComponent {
2170
3106
  onChartClick(event: Event): void;
2171
3107
  toggleExpand(event: Event): void;
2172
3108
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChartContainerComponent, never>;
2173
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ChartContainerComponent, "symphiq-chart-container", never, { "chart": { "alias": "chart"; "required": false; "isSignal": true; }; "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "isCompactMode": { "alias": "isCompactMode"; "required": false; "isSignal": true; }; "collapsibleIn": { "alias": "collapsibleIn"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; }, { "chartClick": "chartClick"; }, never, never, true, never>;
3109
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ChartContainerComponent, "symphiq-chart-container", never, { "chart": { "alias": "chart"; "required": false; "isSignal": true; }; "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "isCompactMode": { "alias": "isCompactMode"; "required": false; "isSignal": true; }; "collapsibleIn": { "alias": "collapsibleIn"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; "currencySymbol": { "alias": "currencySymbol"; "required": false; "isSignal": true; }; }, { "chartClick": "chartClick"; }, never, never, true, never>;
2174
3110
  }
2175
3111
 
2176
3112
  declare class LineChartComponent implements OnInit, AfterViewInit, OnDestroy {
2177
3113
  chart: _angular_core.InputSignal<AiChartInterface>;
2178
3114
  showAxisLabels: _angular_core.InputSignal<boolean>;
2179
3115
  viewMode: _angular_core.InputSignal<ViewModeEnum>;
2180
- chartHeight: _angular_core.Signal<"500px" | "133px">;
3116
+ currencySymbol: _angular_core.InputSignal<string>;
3117
+ chartHeight: _angular_core.Signal<"133px" | "500px">;
2181
3118
  cursorColor: _angular_core.Signal<9741240 | 16777215>;
2182
3119
  tooltipTextColor: _angular_core.Signal<0 | 16777215>;
2183
3120
  chartHash: _angular_core.Signal<string>;
@@ -2213,14 +3150,15 @@ declare class LineChartComponent implements OnInit, AfterViewInit, OnDestroy {
2213
3150
  private extractMetricName;
2214
3151
  private createChart;
2215
3152
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<LineChartComponent, never>;
2216
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<LineChartComponent, "symphiq-line-chart", never, { "chart": { "alias": "chart"; "required": false; "isSignal": true; }; "showAxisLabels": { "alias": "showAxisLabels"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
3153
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<LineChartComponent, "symphiq-line-chart", never, { "chart": { "alias": "chart"; "required": false; "isSignal": true; }; "showAxisLabels": { "alias": "showAxisLabels"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; "currencySymbol": { "alias": "currencySymbol"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2217
3154
  }
2218
3155
 
2219
3156
  declare class BarChartComponent implements OnInit, AfterViewInit, OnDestroy {
2220
3157
  chart: _angular_core.InputSignal<AiChartInterface>;
2221
3158
  showAxisLabels: _angular_core.InputSignal<boolean>;
2222
3159
  viewMode: _angular_core.InputSignal<ViewModeEnum>;
2223
- chartHeight: _angular_core.Signal<"500px" | "175px">;
3160
+ currencySymbol: _angular_core.InputSignal<string>;
3161
+ chartHeight: _angular_core.Signal<"175px" | "500px">;
2224
3162
  cursorColor: _angular_core.Signal<9741240 | 16777215>;
2225
3163
  tooltipTextColor: _angular_core.Signal<0 | 16777215>;
2226
3164
  chartHash: _angular_core.Signal<string>;
@@ -2249,14 +3187,15 @@ declare class BarChartComponent implements OnInit, AfterViewInit, OnDestroy {
2249
3187
  private cleanupIntersectionObserver;
2250
3188
  private createChart;
2251
3189
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BarChartComponent, never>;
2252
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<BarChartComponent, "symphiq-bar-chart", never, { "chart": { "alias": "chart"; "required": false; "isSignal": true; }; "showAxisLabels": { "alias": "showAxisLabels"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
3190
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BarChartComponent, "symphiq-bar-chart", never, { "chart": { "alias": "chart"; "required": false; "isSignal": true; }; "showAxisLabels": { "alias": "showAxisLabels"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; "currencySymbol": { "alias": "currencySymbol"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2253
3191
  }
2254
3192
 
2255
3193
  declare class PieChartComponent implements OnInit, AfterViewInit, OnDestroy {
2256
3194
  chart: _angular_core.InputSignal<AiChartInterface>;
2257
3195
  showAxisLabels: _angular_core.InputSignal<boolean>;
2258
3196
  viewMode: _angular_core.InputSignal<ViewModeEnum>;
2259
- chartHeight: _angular_core.Signal<"500px" | "200px">;
3197
+ currencySymbol: _angular_core.InputSignal<string>;
3198
+ chartHeight: _angular_core.Signal<"200px" | "500px">;
2260
3199
  chartHash: _angular_core.Signal<string>;
2261
3200
  chartDiv: ElementRef;
2262
3201
  private root?;
@@ -2284,14 +3223,15 @@ declare class PieChartComponent implements OnInit, AfterViewInit, OnDestroy {
2284
3223
  private formatValue;
2285
3224
  private createChart;
2286
3225
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<PieChartComponent, never>;
2287
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<PieChartComponent, "symphiq-pie-chart", never, { "chart": { "alias": "chart"; "required": false; "isSignal": true; }; "showAxisLabels": { "alias": "showAxisLabels"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
3226
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<PieChartComponent, "symphiq-pie-chart", never, { "chart": { "alias": "chart"; "required": false; "isSignal": true; }; "showAxisLabels": { "alias": "showAxisLabels"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; "currencySymbol": { "alias": "currencySymbol"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2288
3227
  }
2289
3228
 
2290
3229
  declare class AreaChartComponent implements OnInit, AfterViewInit, OnDestroy {
2291
3230
  chart: _angular_core.InputSignal<AiChartInterface>;
2292
3231
  showAxisLabels: _angular_core.InputSignal<boolean>;
2293
3232
  viewMode: _angular_core.InputSignal<ViewModeEnum>;
2294
- chartHeight: _angular_core.Signal<"500px" | "133px">;
3233
+ currencySymbol: _angular_core.InputSignal<string>;
3234
+ chartHeight: _angular_core.Signal<"133px" | "500px">;
2295
3235
  cursorColor: _angular_core.Signal<9741240 | 16777215>;
2296
3236
  chartHash: _angular_core.Signal<string>;
2297
3237
  chartDiv: ElementRef;
@@ -2319,7 +3259,7 @@ declare class AreaChartComponent implements OnInit, AfterViewInit, OnDestroy {
2319
3259
  private cleanupIntersectionObserver;
2320
3260
  private createChart;
2321
3261
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AreaChartComponent, never>;
2322
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AreaChartComponent, "symphiq-area-chart", never, { "chart": { "alias": "chart"; "required": false; "isSignal": true; }; "showAxisLabels": { "alias": "showAxisLabels"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
3262
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AreaChartComponent, "symphiq-area-chart", never, { "chart": { "alias": "chart"; "required": false; "isSignal": true; }; "showAxisLabels": { "alias": "showAxisLabels"; "required": false; "isSignal": true; }; "viewMode": { "alias": "viewMode"; "required": false; "isSignal": true; }; "currencySymbol": { "alias": "currencySymbol"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2323
3263
  }
2324
3264
 
2325
3265
  declare class TooltipContainerComponent {
@@ -2332,7 +3272,7 @@ declare class TooltipContainerComponent {
2332
3272
  isVisible: _angular_core.Signal<boolean>;
2333
3273
  tooltipType: _angular_core.Signal<string | null>;
2334
3274
  tooltipContent: _angular_core.Signal<string | Record<string, unknown> | undefined>;
2335
- tooltipPosition: _angular_core.Signal<"top" | "auto" | "bottom" | "left" | "right">;
3275
+ tooltipPosition: _angular_core.Signal<"auto" | "top" | "left" | "right" | "bottom">;
2336
3276
  targetRect: _angular_core.Signal<DOMRect | null>;
2337
3277
  mousePosition: _angular_core.Signal<{
2338
3278
  x: number;
@@ -2356,7 +3296,7 @@ declare class TooltipContainerComponent {
2356
3296
  shouldCenter: _angular_core.Signal<boolean>;
2357
3297
  containerClass: _angular_core.Signal<"" | "-translate-x-1/2">;
2358
3298
  contentClass: _angular_core.Signal<"bg-white/95 border-slate-300 text-slate-900" | "bg-slate-800/95 border-slate-600 text-white">;
2359
- textClass: _angular_core.Signal<"text-slate-200" | "text-slate-700">;
3299
+ textClass: _angular_core.Signal<"text-slate-700" | "text-slate-200">;
2360
3300
  viewMoreButtonClass: _angular_core.Signal<"bg-blue-50 text-blue-700 border border-blue-200 hover:bg-blue-200 hover:border-blue-400 hover:text-blue-800 active:bg-blue-300" | "bg-blue-500/10 text-blue-400 border border-blue-500/20 hover:bg-blue-500/30 hover:border-blue-500/40 hover:text-blue-300 active:bg-blue-500/40">;
2361
3301
  transformStyle: _angular_core.Signal<"none" | "translateX(-192px)">;
2362
3302
  constructor();
@@ -2436,6 +3376,8 @@ declare class ViewportAnimationDirective implements OnInit, OnDestroy {
2436
3376
  once: boolean;
2437
3377
  private observer?;
2438
3378
  private hasAnimated;
3379
+ private isFirstObservation;
3380
+ private shouldSkipAnimation;
2439
3381
  constructor(el: ElementRef, renderer: Renderer2);
2440
3382
  ngOnInit(): void;
2441
3383
  ngOnDestroy(): void;
@@ -2455,11 +3397,14 @@ declare class FocusAreaDetailCardComponent {
2455
3397
  set forceExpanded(value: boolean);
2456
3398
  animationIndex: number;
2457
3399
  protected IconSourceEnum: typeof IconSourceEnum;
2458
- protected isExpanded: _angular_core.WritableSignal<boolean>;
3400
+ private _isExpanded;
3401
+ protected isCompetitiveGapExpanded: _angular_core.WritableSignal<boolean>;
2459
3402
  private _forceExpanded;
2460
3403
  private _hasAnimated;
2461
3404
  private modalService;
2462
3405
  private profileContextService;
3406
+ private viewModeService;
3407
+ protected isExpanded: _angular_core.Signal<boolean>;
2463
3408
  protected isDark: _angular_core.Signal<boolean>;
2464
3409
  protected isActuallyExpanded: _angular_core.Signal<boolean>;
2465
3410
  protected forceExpandedValue: _angular_core.Signal<boolean>;
@@ -2485,8 +3430,11 @@ declare class FocusAreaDetailCardComponent {
2485
3430
  protected expandButtonClasses: _angular_core.Signal<"text-sm font-medium text-blue-400" | "text-sm font-medium text-blue-600">;
2486
3431
  protected chevronClasses: _angular_core.Signal<"text-blue-400" | "text-blue-600">;
2487
3432
  protected toggleExpanded(): void;
2488
- protected openCompetitiveGapModal(): void;
3433
+ protected toggleCompetitiveGap(): void;
2489
3434
  onExpandItem(event: CustomEvent): void;
3435
+ protected getCompetitiveGapSectionClasses(): string;
3436
+ protected getToolChipClasses(): string;
3437
+ protected formatFocusAreaStatus(status: string): string;
2490
3438
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FocusAreaDetailCardComponent, never>;
2491
3439
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<FocusAreaDetailCardComponent, "symphiq-focus-area-detail-card", never, { "item": { "alias": "item"; "required": false; }; "viewMode": { "alias": "viewMode"; "required": false; }; "forceExpanded": { "alias": "forceExpanded"; "required": false; }; "animationIndex": { "alias": "animationIndex"; "required": false; }; }, {}, never, never, true, never>;
2492
3440
  }
@@ -2500,11 +3448,18 @@ interface CompetitorContext {
2500
3448
  focusAreas?: ProfileItemInterface[];
2501
3449
  }
2502
3450
 
3451
+ interface StrengthOrWeaknessObject {
3452
+ area?: string;
3453
+ assessment?: string;
3454
+ text?: string;
3455
+ }
3456
+ type StrengthOrWeakness = string | StrengthOrWeaknessObject;
2503
3457
  declare class CompetitorAnalysisCardComponent {
2504
3458
  item?: ProfileItemInterface;
2505
3459
  viewMode: ViewModeEnum;
2506
3460
  set forceExpanded(value: boolean);
2507
3461
  animationIndex: number;
3462
+ inModalContext: boolean;
2508
3463
  protected IconSourceEnum: typeof IconSourceEnum;
2509
3464
  protected isExpanded: _angular_core.WritableSignal<boolean>;
2510
3465
  private _forceExpanded;
@@ -2512,21 +3467,26 @@ declare class CompetitorAnalysisCardComponent {
2512
3467
  private modalService;
2513
3468
  private profileContextService;
2514
3469
  private navigationService;
3470
+ private lookupService;
3471
+ private viewModeService;
2515
3472
  protected isDark: _angular_core.Signal<boolean>;
3473
+ protected displayMode: _angular_core.Signal<ViewMode>;
2516
3474
  protected isActuallyExpanded: _angular_core.Signal<boolean>;
2517
- protected forceExpandedValue: _angular_core.Signal<boolean>;
3475
+ protected isExpandedMode: _angular_core.Signal<boolean>;
2518
3476
  protected shouldAnimateExpand: _angular_core.Signal<boolean>;
2519
3477
  protected iconSize: _angular_core.Signal<"w-6 h-6" | "w-7 h-7">;
3478
+ protected animationType: _angular_core.Signal<"none" | "slide-up">;
3479
+ constructor();
2520
3480
  protected hasCompanyInfo: _angular_core.Signal<boolean>;
2521
3481
  protected competitorContext: _angular_core.Signal<CompetitorContext | undefined>;
2522
3482
  protected hasAnyContext: _angular_core.Signal<boolean>;
2523
3483
  protected threatLevelLabel: _angular_core.Signal<string>;
2524
3484
  protected threatLevelBadgeType: _angular_core.Signal<BadgeType>;
2525
3485
  protected threatLevelIcon: _angular_core.Signal<IconObjectInterface$1>;
2526
- protected getStrengthArea(strength: any): string;
2527
- protected getStrengthText(strength: any): string;
2528
- protected getWeaknessArea(weakness: any): string;
2529
- protected getWeaknessText(weakness: any): string;
3486
+ protected getStrengthArea(strength: StrengthOrWeakness): string;
3487
+ protected getStrengthText(strength: StrengthOrWeakness): string;
3488
+ protected getWeaknessArea(weakness: StrengthOrWeakness): string;
3489
+ protected getWeaknessText(weakness: StrengthOrWeakness): string;
2530
3490
  protected websiteIcon: _angular_core.Signal<IconObjectInterface$1>;
2531
3491
  protected strategyIcon: _angular_core.Signal<IconObjectInterface$1>;
2532
3492
  protected strengthIcon: _angular_core.Signal<IconObjectInterface$1>;
@@ -2554,13 +3514,14 @@ declare class CompetitorAnalysisCardComponent {
2554
3514
  protected navigateToItem(item: ProfileItemInterface): void;
2555
3515
  onExpandItem(event: CustomEvent): void;
2556
3516
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<CompetitorAnalysisCardComponent, never>;
2557
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<CompetitorAnalysisCardComponent, "symphiq-competitor-analysis-card", never, { "item": { "alias": "item"; "required": false; }; "viewMode": { "alias": "viewMode"; "required": false; }; "forceExpanded": { "alias": "forceExpanded"; "required": false; }; "animationIndex": { "alias": "animationIndex"; "required": false; }; }, {}, never, never, true, never>;
3517
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CompetitorAnalysisCardComponent, "symphiq-competitor-analysis-card", never, { "item": { "alias": "item"; "required": false; }; "viewMode": { "alias": "viewMode"; "required": false; }; "forceExpanded": { "alias": "forceExpanded"; "required": false; }; "animationIndex": { "alias": "animationIndex"; "required": false; }; "inModalContext": { "alias": "inModalContext"; "required": false; }; }, {}, never, never, true, never>;
2558
3518
  }
2559
3519
 
2560
3520
  declare class OpportunityHighlightBannerComponent {
2561
3521
  title: string;
2562
3522
  message?: string;
2563
3523
  isDark: boolean;
3524
+ isExpanded: boolean;
2564
3525
  bannerClick: EventEmitter<void>;
2565
3526
  protected iconSource: IconSourceEnum;
2566
3527
  protected bannerClasses: _angular_core.Signal<"bg-gradient-to-r from-amber-500/10 to-orange-500/10 border-l-amber-500 border-r border-t border-b border-amber-500/30" | "bg-gradient-to-r from-amber-50 to-orange-50 border-l-amber-500 border-r border-t border-b border-amber-200">;
@@ -2571,7 +3532,7 @@ declare class OpportunityHighlightBannerComponent {
2571
3532
  protected chevronClasses: _angular_core.Signal<"text-amber-600" | "text-amber-400">;
2572
3533
  handleClick(event: Event): void;
2573
3534
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<OpportunityHighlightBannerComponent, never>;
2574
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<OpportunityHighlightBannerComponent, "symphiq-opportunity-highlight-banner", never, { "title": { "alias": "title"; "required": false; }; "message": { "alias": "message"; "required": false; }; "isDark": { "alias": "isDark"; "required": false; }; }, { "bannerClick": "bannerClick"; }, never, never, true, never>;
3535
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<OpportunityHighlightBannerComponent, "symphiq-opportunity-highlight-banner", never, { "title": { "alias": "title"; "required": false; }; "message": { "alias": "message"; "required": false; }; "isDark": { "alias": "isDark"; "required": false; }; "isExpanded": { "alias": "isExpanded"; "required": false; }; }, { "bannerClick": "bannerClick"; }, never, never, true, never>;
2575
3536
  }
2576
3537
 
2577
3538
  declare class SkeletonCardBaseComponent {
@@ -2655,8 +3616,12 @@ declare class SkeletonCompetitorCardComponent {
2655
3616
  declare const FUNNEL_ANALYSIS: FunnelAnalysisInterface;
2656
3617
 
2657
3618
  declare const BUSINESS_PROFILE: ProfileInterface;
2658
- declare const RCC_BUSINESS_PROFILE: ProfileInterface;
2659
- declare const HAMMETON_BUSINESS_PROFILE: ProfileInterface;
3619
+
3620
+ declare const PROFILE_ANALYSIS_SHOP: ProfileAnalysisInterface;
3621
+
3622
+ declare const PROFILE_ANALYSIS_FOCUS_AREA_AFFILIATE: ProfileAnalysisInterface;
3623
+
3624
+ declare const PROFILE_ANALYSIS_METRIC_SCREEN_PAGE_VIEWS: ProfileAnalysisInterface;
2660
3625
 
2661
3626
  /**
2662
3627
  * Shared Theme Color Utilities
@@ -2784,6 +3749,6 @@ declare function getCategoryColor(category: string): CategoryColorPalette;
2784
3749
  */
2785
3750
  declare function getCategoryBadgeClasses(category: string, isDark: boolean): string;
2786
3751
 
2787
- export { AreaChartComponent, BUSINESS_PROFILE, BarChartComponent, BreakdownSectionComponent, BusinessAnalysisModalComponent, BusinessProfileSearchService, ChartContainerComponent, ChartThemeService, CircularProgressComponent, CompetitivePositioningSummaryComponent, CompetitorAnalysisCardComponent, FUNNEL_ANALYSIS, FloatingBackButtonComponent, FloatingTocComponent, FocusAreaDetailCardComponent, FunnelOrderService, HAMMETON_BUSINESS_PROFILE, HeaderScrollService, HierarchyDisplayComponent, HorizontalBarComponent, IconService, InsightCardComponent, LineChartComponent, MetricCardComponent, MetricFormatterService, MobileBottomNavComponent, MobileFABComponent, ModalComponent, ModalService, NapkinVisualPlaceholderComponent, NavigationStateService, OpportunityHighlightBannerComponent, OverallAssessmentComponent, PieChartComponent, ProfileItemCardComponent, ProfileSectionComponent, ProfileSubsectionComponent, RCC_BUSINESS_PROFILE, ScrollDepthService, ScrollProgressBarComponent, SearchButtonComponent, SearchModalComponent, SectionDividerComponent, SectionNavigationComponent, ShadowElevationDirective, SkeletonBarComponent, SkeletonCardBaseComponent, SkeletonCircleComponent, SkeletonCompetitorCardComponent, SkeletonCustomerSegmentCardComponent, SkeletonFocusAreaCardComponent, SkeletonGenericCardComponent, SkeletonLoaderComponent, SkeletonPriceTierCardComponent, SkeletonProductCategoryCardComponent, SkeletonRegionCardComponent, SkeletonSeasonCardComponent, SymphiqBusinessAnalysisDashboardComponent, SymphiqFunnelAnalysisDashboardComponent, SymphiqFunnelAnalysisPreviewComponent, SymphiqIconComponent, TooltipContainerComponent, TooltipDataService, TooltipDirective, TooltipService, ViewModeService, ViewportAnimationDirective, VisualizationContainerComponent, getBadgeLabelClasses, getButtonClasses, getCategoryBadgeClasses, getCategoryColor, getCompetitiveBadgeClasses, getContainerClasses, getFooterClasses, getGradeBadgeClasses, getHeaderClasses, getInsightsBadgeClasses, getInsightsCardClasses, getMetricLabelClasses, getMetricMiniCardClasses, getMetricValueClasses, getNarrativeTextClasses, getRevenueCardClasses, getRevenueIconClasses, getStatusBadgeClasses, getStatusDotClasses, getStatusIconClasses, getStatusSummaryClasses, getSubtitleClasses, getTitleClasses, getTrendClasses, getTrendIconClasses, getTrendValueClasses, isLightMode };
2788
- export type { AnimationType, BusinessSearchResult, CategoryColorPalette, ChartThemeColors, FunnelMetricOrder, HeaderScrollConfig, LayoutMode, Metric, ModalState, NavSection, NavigationState, ScrollBaseCustomEvent, ScrollBaseDetail, ScrollCustomEvent, ScrollDepthInfo, ScrollDetail, SemanticColors, ShadowLevel, ThemeColorContext, ThemeMode, TooltipPosition, TooltipState, TooltipType, ViewMode, ViewportBounds, VisualizationData, VisualizationType };
3752
+ export { AreaChartComponent, BUSINESS_PROFILE, BarChartComponent, BreakdownSectionComponent, BusinessAnalysisModalComponent, BusinessProfileSearchService, ChartCardComponent, ChartContainerComponent, ChartThemeService, CircularProgressComponent, CompetitivePositioningSummaryComponent, CompetitorAnalysisCardComponent, ConfidenceLevelCardComponent, CrossDashboardRelationshipsService, FUNNEL_ANALYSIS, FloatingBackButtonComponent, FloatingTocComponent, FocusAreaDetailCardComponent, FocusAreaExecutiveSummaryComponent, FunnelOrderService, GradeBadgeComponent, HeaderScrollService, HierarchyDisplayComponent, HorizontalBarComponent, IconService, InsightCardComponent, LineChartComponent, MetricCardComponent, MetricExecutiveSummaryComponent, MetricFormatterService, MetricListItemComponent, MetricWelcomeBannerComponent, MobileBottomNavComponent, MobileFABComponent, ModalComponent, ModalService, NapkinVisualPlaceholderComponent, NavigationStateService, OpportunityHighlightBannerComponent, OverallAssessmentComponent, PROFILE_ANALYSIS_FOCUS_AREA_AFFILIATE, PROFILE_ANALYSIS_METRIC_SCREEN_PAGE_VIEWS, PROFILE_ANALYSIS_SHOP, PieChartComponent, ProfileItemCardComponent, ProfileSectionComponent, ProfileSubsectionComponent, RelatedContentSidebarComponent, ScrollDepthService, ScrollProgressBarComponent, SearchButtonComponent, SearchModalComponent, SectionDividerComponent, SectionNavigationComponent, ShadowElevationDirective, ShopWelcomeBannerComponent, SkeletonBarComponent, SkeletonCardBaseComponent, SkeletonCircleComponent, SkeletonCompetitorCardComponent, SkeletonCustomerSegmentCardComponent, SkeletonFocusAreaCardComponent, SkeletonGenericCardComponent, SkeletonLoaderComponent, SkeletonPriceTierCardComponent, SkeletonProductCategoryCardComponent, SkeletonRegionCardComponent, SkeletonSeasonCardComponent, SymphiqBusinessAnalysisDashboardComponent, SymphiqFunnelAnalysisDashboardComponent, SymphiqFunnelAnalysisPreviewComponent, SymphiqIconComponent, SymphiqProfileAnalysisDashboardComponent, TooltipContainerComponent, TooltipDataService, TooltipDirective, TooltipService, ViewModeService, ViewportAnimationDirective, VisualizationContainerComponent, getBadgeLabelClasses, getButtonClasses, getCategoryBadgeClasses, getCategoryColor, getCompetitiveBadgeClasses, getContainerClasses, getFooterClasses, getGradeBadgeClasses, getHeaderClasses, getInsightsBadgeClasses, getInsightsCardClasses, getMetricLabelClasses, getMetricMiniCardClasses, getMetricValueClasses, getNarrativeTextClasses, getRevenueCardClasses, getRevenueIconClasses, getStatusBadgeClasses, getStatusDotClasses, getStatusIconClasses, getStatusSummaryClasses, getSubtitleClasses, getTitleClasses, getTrendClasses, getTrendIconClasses, getTrendValueClasses, isLightMode };
3753
+ export type { AnimationType, BusinessInsightDetailModalData, BusinessSearchResult, CategoryColorPalette, CategoryDetailModalData, ChartThemeColors, CriticalGapDetailModalData, CriticalGapsListModalData, CrossDashboardRelationships, FocusAreaGapDetailModalData, FocusAreaGapsListModalData, FocusAreaOpportunitiesListModalData, FocusAreaOpportunityDetailModalData, FocusAreaStrengthDetailModalData, FocusAreaStrengthsListModalData, FunnelMetricOrder, FunnelStrengthDetailModalData, FunnelStrengthInterface, FunnelStrengthsListModalData, FunnelWeaknessDetailModalData, FunnelWeaknessInterface, FunnelWeaknessesListModalData, GapDetailModalData, GoalBusinessInsightsListModalData, GoalDetailModalData, GoalInsightsListModalData, GoalObjectivesModalData, HeaderScrollConfig, ItemDetailModalData, KeyStrengthDetailModalData, KeyStrengthsListModalData, LayoutMode, Metric, MetricsListModalData, ModalState, NavSection, NavigationState, ObjectiveStrategiesModalData, OpportunityDetailModalData, RecommendationBusinessInsightsListModalData, RecommendationInsightsListModalData, RelatedBusinessContent, RelatedFunnelContent, ScrollBaseCustomEvent, ScrollBaseDetail, ScrollCustomEvent, ScrollDepthInfo, ScrollDetail, SemanticColors, ShadowLevel, StrategyRecommendationsModalData, StrengthDetailModalData, ThemeColorContext, ThemeMode, TooltipPosition, TooltipState, TooltipType, TopPrioritiesListModalData, TopPriorityDetailModalData, ViewMode, ViewportBounds, VisualizationData, VisualizationType };
2789
3754
  //# sourceMappingURL=index.d.ts.map