@eric-emg/symphiq-components 1.2.95 → 1.2.96
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/fesm2022/symphiq-components.mjs +32076 -11323
- package/fesm2022/symphiq-components.mjs.map +1 -1
- package/index.d.ts +979 -51
- package/index.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/styles.css +91 -0
- package/styles.css +1502 -88
package/index.d.ts
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import * as _jebgem_model from '@jebgem/model';
|
|
2
|
-
import { InsightBlockInterface, PerformanceMetricInterface, AiChartInterface, ViewModeEnum, BreakdownMetricInterface, UserInterface, FunnelAnalysisInterface, OverallAssessmentInterface } 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';
|
|
3
3
|
export * from '@jebgem/model';
|
|
4
4
|
import * as _angular_core from '@angular/core';
|
|
5
|
-
import { AfterViewInit, ElementRef, WritableSignal, OnInit, OnDestroy } from '@angular/core';
|
|
5
|
+
import { AfterViewInit, ElementRef, WritableSignal, OnInit, OnDestroy, OnChanges, SimpleChanges, Renderer2, EventEmitter } from '@angular/core';
|
|
6
6
|
import * as rxjs from 'rxjs';
|
|
7
|
-
import
|
|
8
|
-
import {
|
|
7
|
+
import { Observable } from 'rxjs';
|
|
8
|
+
import { HttpClient } from '@angular/common/http';
|
|
9
|
+
import * as _angular_platform_browser from '@angular/platform-browser';
|
|
10
|
+
import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
|
|
9
11
|
|
|
10
12
|
interface FunnelMetricOrder {
|
|
11
13
|
metric: string;
|
|
@@ -32,8 +34,13 @@ declare class FunnelOrderService {
|
|
|
32
34
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<FunnelOrderService>;
|
|
33
35
|
}
|
|
34
36
|
|
|
37
|
+
interface VisualizationData {
|
|
38
|
+
type: 'horizontal-bar' | 'circular-progress' | 'napkin-visual' | 'custom';
|
|
39
|
+
title: string;
|
|
40
|
+
data: unknown;
|
|
41
|
+
}
|
|
35
42
|
interface ModalState {
|
|
36
|
-
type: 'insight' | 'metric' | 'chart' | 'insights-list' | 'metrics-list' | 'recommendations-list' | 'competitive-analysis' | null;
|
|
43
|
+
type: 'insight' | 'metric' | 'chart' | 'insights-list' | 'metrics-list' | 'charts-list' | 'recommendations-list' | 'competitive-analysis' | 'competitive-gap' | 'visualization' | 'recommendation-action-steps' | null;
|
|
37
44
|
data: InsightBlockInterface | InsightBlockInterface[] | PerformanceMetricInterface | PerformanceMetricInterface[] | AiChartInterface | {
|
|
38
45
|
metrics: PerformanceMetricInterface[];
|
|
39
46
|
insightContext?: {
|
|
@@ -42,6 +49,14 @@ interface ModalState {
|
|
|
42
49
|
businessContext: string;
|
|
43
50
|
priority: number;
|
|
44
51
|
};
|
|
52
|
+
} | {
|
|
53
|
+
charts: AiChartInterface[];
|
|
54
|
+
insightContext?: {
|
|
55
|
+
title: string;
|
|
56
|
+
description: string;
|
|
57
|
+
businessContext: string;
|
|
58
|
+
priority: number;
|
|
59
|
+
};
|
|
45
60
|
} | {
|
|
46
61
|
recommendations: string[];
|
|
47
62
|
insightContext: {
|
|
@@ -58,7 +73,14 @@ interface ModalState {
|
|
|
58
73
|
competitiveAnalysis: string;
|
|
59
74
|
priority: number;
|
|
60
75
|
};
|
|
61
|
-
} |
|
|
76
|
+
} | {
|
|
77
|
+
item: ProfileItemInterface;
|
|
78
|
+
viewMode: ViewModeEnum;
|
|
79
|
+
} | {
|
|
80
|
+
title?: string;
|
|
81
|
+
actionSteps: ProfileAnalysisRecommendationActionStepInterface[];
|
|
82
|
+
viewMode: ViewModeEnum;
|
|
83
|
+
} | VisualizationData | null;
|
|
62
84
|
charts: AiChartInterface[];
|
|
63
85
|
previousState?: ModalState | null;
|
|
64
86
|
expandedSection?: string;
|
|
@@ -76,6 +98,12 @@ declare class ModalService {
|
|
|
76
98
|
businessContext: string;
|
|
77
99
|
priority: number;
|
|
78
100
|
}): void;
|
|
101
|
+
openChartsListModal(charts: AiChartInterface[], insightContext?: {
|
|
102
|
+
title: string;
|
|
103
|
+
description: string;
|
|
104
|
+
businessContext: string;
|
|
105
|
+
priority: number;
|
|
106
|
+
}): void;
|
|
79
107
|
openRecommendationsListModal(recommendations: string[], insightContext: {
|
|
80
108
|
title: string;
|
|
81
109
|
description: string;
|
|
@@ -89,6 +117,9 @@ declare class ModalService {
|
|
|
89
117
|
competitiveAnalysis: string;
|
|
90
118
|
priority: number;
|
|
91
119
|
}): void;
|
|
120
|
+
openVisualizationModal(visualization: VisualizationData, previousState?: ModalState): void;
|
|
121
|
+
openCompetitiveGapModal(item: ProfileItemInterface, viewMode: ViewModeEnum, previousState?: ModalState): void;
|
|
122
|
+
openRecommendationActionStepsModal(title: string | undefined, actionSteps: ProfileAnalysisRecommendationActionStepInterface[], viewMode: ViewModeEnum, previousState?: ModalState): void;
|
|
92
123
|
goBack(previousState: ModalState): void;
|
|
93
124
|
closeModal(): void;
|
|
94
125
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ModalService, never>;
|
|
@@ -153,7 +184,7 @@ interface MetricValueTooltipContent {
|
|
|
153
184
|
};
|
|
154
185
|
}
|
|
155
186
|
interface StatusBadgeTooltipContent {
|
|
156
|
-
status:
|
|
187
|
+
status: MetricStatusEnum;
|
|
157
188
|
pacingPercentage?: number;
|
|
158
189
|
currentValue?: number;
|
|
159
190
|
projectedValue?: number;
|
|
@@ -171,7 +202,7 @@ interface TrendIndicatorTooltipContent {
|
|
|
171
202
|
currentValue: number;
|
|
172
203
|
priorValue: number;
|
|
173
204
|
trendPercent: number;
|
|
174
|
-
trendDirection:
|
|
205
|
+
trendDirection: TrendDirectionEnum;
|
|
175
206
|
isInverseMetric?: boolean;
|
|
176
207
|
unit?: string;
|
|
177
208
|
status?: string;
|
|
@@ -204,7 +235,7 @@ interface BreakdownRowTooltipContent {
|
|
|
204
235
|
interface CompetitiveBenchmarkTooltipContent {
|
|
205
236
|
industry: string;
|
|
206
237
|
metricBenchmark: string;
|
|
207
|
-
competitiveScore:
|
|
238
|
+
competitiveScore: CompetitiveScoreEnum;
|
|
208
239
|
description: string;
|
|
209
240
|
keyOpportunities: string;
|
|
210
241
|
metricName?: string;
|
|
@@ -224,7 +255,7 @@ interface NarrativeTooltipContent {
|
|
|
224
255
|
narrative: string;
|
|
225
256
|
}
|
|
226
257
|
interface CompetitiveStatusTooltipContent {
|
|
227
|
-
status:
|
|
258
|
+
status: CompetitiveScoreEnum;
|
|
228
259
|
statusDescription: string;
|
|
229
260
|
metrics: Array<{
|
|
230
261
|
name: string;
|
|
@@ -234,7 +265,7 @@ interface CompetitiveStatusTooltipContent {
|
|
|
234
265
|
max: number;
|
|
235
266
|
};
|
|
236
267
|
unit: string;
|
|
237
|
-
status?:
|
|
268
|
+
status?: CompetitiveScoreEnum;
|
|
238
269
|
}>;
|
|
239
270
|
}
|
|
240
271
|
interface FunnelStageCompetitiveTooltipContent {
|
|
@@ -272,9 +303,9 @@ interface FunnelStageCompetitiveTooltipContent {
|
|
|
272
303
|
declare class TooltipDataService {
|
|
273
304
|
private formatCache;
|
|
274
305
|
private metricLookupCache;
|
|
275
|
-
extractMetricTooltipData(metric: PerformanceMetricInterface, chart?:
|
|
306
|
+
extractMetricTooltipData(metric: PerformanceMetricInterface, chart?: AiChartInterface): MetricValueTooltipContent;
|
|
276
307
|
extractStatusTooltipData(metric: PerformanceMetricInterface): StatusBadgeTooltipContent;
|
|
277
|
-
extractTrendTooltipData(metric: PerformanceMetricInterface, chart?:
|
|
308
|
+
extractTrendTooltipData(metric: PerformanceMetricInterface, chart?: AiChartInterface): TrendIndicatorTooltipContent;
|
|
278
309
|
extractPriorityTooltipData(insight: InsightBlockInterface): PriorityBadgeTooltipContent;
|
|
279
310
|
extractBreakdownRowTooltipData(metric: PerformanceMetricInterface): BreakdownRowTooltipContent;
|
|
280
311
|
findMetricByName(name: string, metrics: PerformanceMetricInterface[]): PerformanceMetricInterface | undefined;
|
|
@@ -456,27 +487,154 @@ declare class MetricFormatterService {
|
|
|
456
487
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<MetricFormatterService>;
|
|
457
488
|
}
|
|
458
489
|
|
|
490
|
+
interface HeaderScrollConfig {
|
|
491
|
+
collapseThreshold?: number;
|
|
492
|
+
expandThreshold?: number;
|
|
493
|
+
stateChangeCooldown?: number;
|
|
494
|
+
debounceDelay?: number;
|
|
495
|
+
}
|
|
496
|
+
declare class HeaderScrollService {
|
|
497
|
+
private readonly DEFAULT_COLLAPSE_THRESHOLD;
|
|
498
|
+
private readonly DEFAULT_EXPAND_THRESHOLD;
|
|
499
|
+
private readonly DEFAULT_STATE_CHANGE_COOLDOWN;
|
|
500
|
+
private readonly DEFAULT_DEBOUNCE_DELAY;
|
|
501
|
+
isScrolled: _angular_core.WritableSignal<boolean>;
|
|
502
|
+
scrollProgress: _angular_core.WritableSignal<number>;
|
|
503
|
+
private scrollTimeout;
|
|
504
|
+
private lastStateChangeTime;
|
|
505
|
+
private isProgrammaticScroll;
|
|
506
|
+
private config;
|
|
507
|
+
configure(config: HeaderScrollConfig): void;
|
|
508
|
+
handleScroll(embedded?: boolean): void;
|
|
509
|
+
resetHeaderState(): void;
|
|
510
|
+
resetState(): void;
|
|
511
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<HeaderScrollService, never>;
|
|
512
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<HeaderScrollService>;
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
declare class IconService {
|
|
516
|
+
private http;
|
|
517
|
+
private sanitizer;
|
|
518
|
+
private cache;
|
|
519
|
+
constructor(http: HttpClient, sanitizer: DomSanitizer);
|
|
520
|
+
getIcon(name: string | undefined, size?: string): Observable<SafeHtml>;
|
|
521
|
+
private processSvg;
|
|
522
|
+
private getDefaultIcon;
|
|
523
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<IconService, never>;
|
|
524
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<IconService>;
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
type ShadowLevel = 'none' | 'sm' | 'md' | 'lg' | 'xl';
|
|
528
|
+
interface ScrollDepthInfo {
|
|
529
|
+
scrollTop: number;
|
|
530
|
+
scrollHeight: number;
|
|
531
|
+
clientHeight: number;
|
|
532
|
+
scrollPercentage: number;
|
|
533
|
+
shadowLevel: ShadowLevel;
|
|
534
|
+
}
|
|
535
|
+
declare class ScrollDepthService {
|
|
536
|
+
private scrollDepthSubjects;
|
|
537
|
+
trackScrollDepth(element: HTMLElement | Window, id: string): Observable<ScrollDepthInfo>;
|
|
538
|
+
private calculateScrollInfo;
|
|
539
|
+
private calculateShadowLevel;
|
|
540
|
+
cleanup(id: string): void;
|
|
541
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ScrollDepthService, never>;
|
|
542
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<ScrollDepthService>;
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
interface NavigationState {
|
|
546
|
+
sourceElementId: string | null;
|
|
547
|
+
sourceScrollPosition: number;
|
|
548
|
+
sourceViewportCoords: {
|
|
549
|
+
x: number;
|
|
550
|
+
y: number;
|
|
551
|
+
} | null;
|
|
552
|
+
targetElementId: string | null;
|
|
553
|
+
isBackButtonVisible: boolean;
|
|
554
|
+
targetScrollPosition: number;
|
|
555
|
+
}
|
|
556
|
+
declare class NavigationStateService {
|
|
557
|
+
private navigationState;
|
|
558
|
+
getNavigationState(): _angular_core.Signal<NavigationState>;
|
|
559
|
+
setNavigationState(sourceElementId: string, sourceScrollPosition: number, sourceViewportCoords: {
|
|
560
|
+
x: number;
|
|
561
|
+
y: number;
|
|
562
|
+
}, targetElementId: string): void;
|
|
563
|
+
showBackButton(): void;
|
|
564
|
+
hideBackButton(): void;
|
|
565
|
+
clearNavigationState(): void;
|
|
566
|
+
hasNavigationState(): boolean;
|
|
567
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavigationStateService, never>;
|
|
568
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<NavigationStateService>;
|
|
569
|
+
}
|
|
570
|
+
|
|
571
|
+
interface BusinessSearchResult {
|
|
572
|
+
id: string;
|
|
573
|
+
type: 'section' | 'subsection' | 'item';
|
|
574
|
+
itemType?: string;
|
|
575
|
+
title: string;
|
|
576
|
+
description: string;
|
|
577
|
+
score: number;
|
|
578
|
+
sectionId?: string;
|
|
579
|
+
sectionTitle?: string;
|
|
580
|
+
subsectionId?: string;
|
|
581
|
+
subsectionTitle?: string;
|
|
582
|
+
data: ProfileSectionInterface | ProfileSubsectionInterface | ProfileItemInterface;
|
|
583
|
+
matchedFields: string[];
|
|
584
|
+
}
|
|
585
|
+
declare class BusinessProfileSearchService {
|
|
586
|
+
private searchQuery;
|
|
587
|
+
private allSections;
|
|
588
|
+
private allSubsections;
|
|
589
|
+
private allItems;
|
|
590
|
+
isSearchOpen: _angular_core.WritableSignal<boolean>;
|
|
591
|
+
highlightedResultId: _angular_core.WritableSignal<string | null>;
|
|
592
|
+
activeSearchResult: _angular_core.WritableSignal<BusinessSearchResult | null>;
|
|
593
|
+
searchResults: _angular_core.Signal<BusinessSearchResult[]>;
|
|
594
|
+
hasResults: _angular_core.Signal<boolean>;
|
|
595
|
+
setSearchQuery(query: string): void;
|
|
596
|
+
getSearchQuery(): string;
|
|
597
|
+
setProfile(profile: ProfileInterface): void;
|
|
598
|
+
openSearch(): void;
|
|
599
|
+
closeSearch(): void;
|
|
600
|
+
highlightResult(id: string): void;
|
|
601
|
+
clearHighlight(): void;
|
|
602
|
+
setActiveResult(result: BusinessSearchResult | null): void;
|
|
603
|
+
clearActiveResult(): void;
|
|
604
|
+
private buildSectionDescription;
|
|
605
|
+
private buildSubsectionDescription;
|
|
606
|
+
private buildItemDescription;
|
|
607
|
+
private scoreItem;
|
|
608
|
+
private fuzzyMatch;
|
|
609
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BusinessProfileSearchService, never>;
|
|
610
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<BusinessProfileSearchService>;
|
|
611
|
+
}
|
|
612
|
+
|
|
459
613
|
declare class ModalComponent {
|
|
460
614
|
isLightMode: _angular_core.InputSignal<boolean>;
|
|
461
615
|
viewMode: _angular_core.InputSignal<ViewModeEnum>;
|
|
462
616
|
private metricNameCache;
|
|
463
617
|
private allMetricsSignal;
|
|
464
618
|
private modalStateSignal;
|
|
619
|
+
Math: Math;
|
|
620
|
+
private animatedMetricValues;
|
|
621
|
+
private animatedTrendValues;
|
|
622
|
+
private animationFrames;
|
|
465
623
|
isOpen: _angular_core.Signal<boolean>;
|
|
466
|
-
modalType: _angular_core.Signal<"
|
|
624
|
+
modalType: _angular_core.Signal<"insight" | "metric" | "chart" | "insights-list" | "metrics-list" | "charts-list" | "recommendations-list" | "competitive-analysis" | null>;
|
|
467
625
|
charts: _angular_core.Signal<AiChartInterface[]>;
|
|
468
626
|
modalKey: _angular_core.Signal<number>;
|
|
469
627
|
insightData: _angular_core.Signal<InsightBlockInterface | null>;
|
|
470
628
|
metricData: _angular_core.Signal<PerformanceMetricInterface | null>;
|
|
471
629
|
chartData: _angular_core.Signal<AiChartInterface | null>;
|
|
472
630
|
chartDescription: _angular_core.Signal<string>;
|
|
473
|
-
chartType: _angular_core.Signal<
|
|
631
|
+
chartType: _angular_core.Signal<_jebgem_model.ChartTypeEnum | null>;
|
|
474
632
|
chartLineData: _angular_core.Signal<AiChartInterface | null>;
|
|
475
633
|
chartBarData: _angular_core.Signal<AiChartInterface | null>;
|
|
476
634
|
chartPieData: _angular_core.Signal<AiChartInterface | null>;
|
|
477
635
|
chartAreaData: _angular_core.Signal<AiChartInterface | null>;
|
|
478
636
|
insightsListData: _angular_core.Signal<InsightBlockInterface[] | null>;
|
|
479
|
-
metricsListData: _angular_core.Signal<
|
|
637
|
+
metricsListData: _angular_core.Signal<AiChartInterface | PerformanceMetricInterface | InsightBlockInterface | (PerformanceMetricInterface | InsightBlockInterface)[] | null>;
|
|
480
638
|
metricsListMetrics: _angular_core.Signal<PerformanceMetricInterface[]>;
|
|
481
639
|
metricsListInsightContext: _angular_core.Signal<{
|
|
482
640
|
title: string;
|
|
@@ -484,7 +642,15 @@ declare class ModalComponent {
|
|
|
484
642
|
businessContext: string;
|
|
485
643
|
priority: number;
|
|
486
644
|
} | null>;
|
|
487
|
-
|
|
645
|
+
chartsListData: _angular_core.Signal<AiChartInterface | PerformanceMetricInterface | InsightBlockInterface | (PerformanceMetricInterface | InsightBlockInterface)[] | null>;
|
|
646
|
+
chartsListCharts: _angular_core.Signal<AiChartInterface[]>;
|
|
647
|
+
chartsListInsightContext: _angular_core.Signal<{
|
|
648
|
+
title: string;
|
|
649
|
+
description: string;
|
|
650
|
+
businessContext: string;
|
|
651
|
+
priority: number;
|
|
652
|
+
} | null>;
|
|
653
|
+
recommendationsListData: _angular_core.Signal<AiChartInterface | PerformanceMetricInterface | InsightBlockInterface | (PerformanceMetricInterface | InsightBlockInterface)[] | null>;
|
|
488
654
|
recommendationsListRecommendations: _angular_core.Signal<string[]>;
|
|
489
655
|
recommendationsListInsightContext: _angular_core.Signal<{
|
|
490
656
|
title: string;
|
|
@@ -492,7 +658,7 @@ declare class ModalComponent {
|
|
|
492
658
|
businessContext: string;
|
|
493
659
|
priority: number;
|
|
494
660
|
} | null>;
|
|
495
|
-
competitiveAnalysisData: _angular_core.Signal<
|
|
661
|
+
competitiveAnalysisData: _angular_core.Signal<AiChartInterface | PerformanceMetricInterface | InsightBlockInterface | (PerformanceMetricInterface | InsightBlockInterface)[] | null>;
|
|
496
662
|
competitiveAnalysisContext: _angular_core.Signal<{
|
|
497
663
|
title: string;
|
|
498
664
|
description: string;
|
|
@@ -507,12 +673,12 @@ declare class ModalComponent {
|
|
|
507
673
|
allCharts: _angular_core.Signal<AiChartInterface[]>;
|
|
508
674
|
hasPreviousState: _angular_core.Signal<boolean>;
|
|
509
675
|
currentModalState: _angular_core.Signal<{
|
|
510
|
-
type: "insight" | "metric" | "chart" | "insights-list" | "metrics-list" | "recommendations-list" | "competitive-analysis" | null;
|
|
676
|
+
type: "insight" | "metric" | "chart" | "insights-list" | "metrics-list" | "charts-list" | "recommendations-list" | "competitive-analysis" | null;
|
|
511
677
|
data: InsightBlockInterface | PerformanceMetricInterface | AiChartInterface | (InsightBlockInterface | PerformanceMetricInterface)[] | null;
|
|
512
678
|
charts: AiChartInterface[];
|
|
513
679
|
openedAt: number;
|
|
514
680
|
previousState: {
|
|
515
|
-
type: "insight" | "metric" | "chart" | "insights-list" | "metrics-list" | "recommendations-list" | "competitive-analysis";
|
|
681
|
+
type: "insight" | "metric" | "chart" | "insights-list" | "metrics-list" | "charts-list" | "recommendations-list" | "competitive-analysis";
|
|
516
682
|
data: InsightBlockInterface | PerformanceMetricInterface | AiChartInterface | (InsightBlockInterface | PerformanceMetricInterface)[];
|
|
517
683
|
charts: AiChartInterface[];
|
|
518
684
|
previousState: null;
|
|
@@ -530,8 +696,17 @@ declare class ModalComponent {
|
|
|
530
696
|
closeModal(): void;
|
|
531
697
|
openInsightModal(insight: InsightBlockInterface): void;
|
|
532
698
|
openMetricModalFromList(metric: PerformanceMetricInterface): void;
|
|
699
|
+
openChartModalFromList(chart: AiChartInterface): void;
|
|
533
700
|
goBack(): void;
|
|
534
701
|
formatMetricName(name: string): string;
|
|
702
|
+
formatMetricValue(metric: PerformanceMetricInterface): string;
|
|
703
|
+
getMetricTrendClass(metric: PerformanceMetricInterface): string;
|
|
704
|
+
animateMetricsList(metrics: PerformanceMetricInterface[]): void;
|
|
705
|
+
animateMetricValue(index: number, targetValue: number): void;
|
|
706
|
+
animateMetricTrend(index: number, targetTrend: number): void;
|
|
707
|
+
getAnimatedMetricValue(index: number): number;
|
|
708
|
+
getAnimatedTrendValue(index: number): number;
|
|
709
|
+
formatAnimatedMetricValue(metric: PerformanceMetricInterface, animatedValue: number): string;
|
|
535
710
|
setMetricsAndInsights(metrics: PerformanceMetricInterface[], insights: InsightBlockInterface[], allCharts?: AiChartInterface[]): void;
|
|
536
711
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ModalComponent, never>;
|
|
537
712
|
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>;
|
|
@@ -590,21 +765,6 @@ declare class SearchService {
|
|
|
590
765
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<SearchService>;
|
|
591
766
|
}
|
|
592
767
|
|
|
593
|
-
interface GestureDetail {
|
|
594
|
-
type: string;
|
|
595
|
-
startX: number;
|
|
596
|
-
startY: number;
|
|
597
|
-
startTime: number;
|
|
598
|
-
currentX: number;
|
|
599
|
-
currentY: number;
|
|
600
|
-
velocityX: number;
|
|
601
|
-
velocityY: number;
|
|
602
|
-
deltaX: number;
|
|
603
|
-
deltaY: number;
|
|
604
|
-
currentTime: number;
|
|
605
|
-
event: UIEvent;
|
|
606
|
-
data?: any;
|
|
607
|
-
}
|
|
608
768
|
interface ScrollBaseDetail {
|
|
609
769
|
isScrolling: boolean;
|
|
610
770
|
}
|
|
@@ -626,6 +786,7 @@ declare class SymphiqFunnelAnalysisDashboardComponent implements AfterViewInit {
|
|
|
626
786
|
private tooltipService;
|
|
627
787
|
modalComponent?: ModalComponent;
|
|
628
788
|
dashboardContainer?: ElementRef<HTMLElement>;
|
|
789
|
+
protected readonly ViewModeEnum: typeof ViewModeEnum;
|
|
629
790
|
requestedByUser: _angular_core.InputSignal<UserInterface | undefined>;
|
|
630
791
|
viewMode: _angular_core.InputSignal<ViewModeEnum>;
|
|
631
792
|
funnelAnalysis: _angular_core.InputSignal<FunnelAnalysisInterface | undefined>;
|
|
@@ -728,6 +889,7 @@ declare class SymphiqFunnelAnalysisDashboardComponent implements AfterViewInit {
|
|
|
728
889
|
showPerformanceMetrics: _angular_core.Signal<boolean>;
|
|
729
890
|
showPerformanceBreakdowns: _angular_core.Signal<boolean>;
|
|
730
891
|
showCompetitiveIntelligence: _angular_core.Signal<boolean>;
|
|
892
|
+
tocSections: _angular_core.Signal<ProfileSectionInterface[]>;
|
|
731
893
|
private dateFormatCache;
|
|
732
894
|
constructor(funnelOrderService: FunnelOrderService, viewModeService: ViewModeService, searchService: SearchService, tooltipService: TooltipService);
|
|
733
895
|
ngAfterViewInit(): void;
|
|
@@ -841,7 +1003,7 @@ declare class MetricCardComponent {
|
|
|
841
1003
|
competitiveScoreBadgeLightClass: _angular_core.Signal<string>;
|
|
842
1004
|
competitiveScoreBadgeDarkClass: _angular_core.Signal<string>;
|
|
843
1005
|
competitiveScoreBadgeClass: _angular_core.Signal<string>;
|
|
844
|
-
competitiveScoreTextClass: _angular_core.Signal<"
|
|
1006
|
+
competitiveScoreTextClass: _angular_core.Signal<"" | "text-blue-400" | "text-emerald-600" | "text-blue-700" | "text-orange-600">;
|
|
845
1007
|
competitiveComparisonDefaultClass: _angular_core.Signal<"text-slate-700" | "text-slate-300">;
|
|
846
1008
|
competitiveComparisonClass: _angular_core.Signal<"text-slate-700" | "text-slate-300" | "text-emerald-600 font-semibold" | "text-orange-600 font-semibold">;
|
|
847
1009
|
getCompetitiveScoreIcon(): string;
|
|
@@ -886,6 +1048,9 @@ declare class InsightCardComponent {
|
|
|
886
1048
|
descriptionClass: _angular_core.Signal<string>;
|
|
887
1049
|
metricButtonClass: _angular_core.Signal<string>;
|
|
888
1050
|
recommendationItemClass: _angular_core.Signal<string>;
|
|
1051
|
+
recommendationsContainerLightClass: _angular_core.Signal<string>;
|
|
1052
|
+
recommendationsContainerDarkClass: _angular_core.Signal<string>;
|
|
1053
|
+
recommendationsContainerClass: _angular_core.Signal<string>;
|
|
889
1054
|
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">;
|
|
890
1055
|
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">;
|
|
891
1056
|
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">;
|
|
@@ -904,7 +1069,7 @@ declare class InsightCardComponent {
|
|
|
904
1069
|
formatMetricName(name: string): string;
|
|
905
1070
|
openMetricModal(metricName: string): void;
|
|
906
1071
|
openMetricsModal(): void;
|
|
907
|
-
|
|
1072
|
+
openChartsModal(): void;
|
|
908
1073
|
openCompetitiveAnalysisModal(): void;
|
|
909
1074
|
openChartModal(chart: AiChartInterface): void;
|
|
910
1075
|
handleHeaderClick(event: Event): void;
|
|
@@ -1342,11 +1507,9 @@ declare class SymphiqFunnelAnalysisPreviewComponent {
|
|
|
1342
1507
|
insightsCount: _angular_core.Signal<any>;
|
|
1343
1508
|
revenueMetric: _angular_core.Signal<PerformanceMetricInterface | undefined>;
|
|
1344
1509
|
topMetrics: _angular_core.Signal<PerformanceMetricInterface[]>;
|
|
1345
|
-
statusLabel: _angular_core.Signal<any>;
|
|
1346
|
-
statusIcon: _angular_core.Signal<"↑" | "→" | "⚠" | "•">;
|
|
1347
1510
|
formattedRevenueValue: _angular_core.Signal<string>;
|
|
1348
1511
|
formattedRevenueTrend: _angular_core.Signal<string>;
|
|
1349
|
-
revenueStatusIcon: _angular_core.Signal<"
|
|
1512
|
+
revenueStatusIcon: _angular_core.Signal<"⚠" | "↑" | "→" | "•">;
|
|
1350
1513
|
hasCompetitiveData: _angular_core.Signal<boolean>;
|
|
1351
1514
|
hasOverallCompetitiveBenchmark: _angular_core.Signal<boolean>;
|
|
1352
1515
|
overallCompetitiveDescription: _angular_core.Signal<any>;
|
|
@@ -1387,7 +1550,7 @@ declare class SymphiqFunnelAnalysisPreviewComponent {
|
|
|
1387
1550
|
competitiveTooltip: _angular_core.Signal<{
|
|
1388
1551
|
industry: any;
|
|
1389
1552
|
metricBenchmark: string;
|
|
1390
|
-
competitiveScore: "LAGGING" | "
|
|
1553
|
+
competitiveScore: "LAGGING" | "COMPETITIVE" | "LEADING";
|
|
1391
1554
|
description: string;
|
|
1392
1555
|
keyOpportunities: string;
|
|
1393
1556
|
}>;
|
|
@@ -1428,7 +1591,7 @@ declare class SymphiqFunnelAnalysisPreviewComponent {
|
|
|
1428
1591
|
buttonClass: _angular_core.Signal<string>;
|
|
1429
1592
|
competitiveBadgeClass: _angular_core.Signal<string>;
|
|
1430
1593
|
shouldPulseCompetitiveBadge: _angular_core.Signal<boolean>;
|
|
1431
|
-
overallCompetitiveStatusBadgeClass: _angular_core.Signal<"border-2 bg-gradient-to-
|
|
1594
|
+
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">;
|
|
1432
1595
|
shouldPulseOverallCompetitive: _angular_core.Signal<boolean>;
|
|
1433
1596
|
statusIconClass: _angular_core.Signal<string>;
|
|
1434
1597
|
insightsCardClass: _angular_core.Signal<string>;
|
|
@@ -1440,7 +1603,7 @@ declare class SymphiqFunnelAnalysisPreviewComponent {
|
|
|
1440
1603
|
getMetricLabel(metric: PerformanceMetricInterface): string;
|
|
1441
1604
|
formatMetricValue(metric: PerformanceMetricInterface): string;
|
|
1442
1605
|
formatTrend(metric: PerformanceMetricInterface): string;
|
|
1443
|
-
getMetricTooltip(metric: PerformanceMetricInterface):
|
|
1606
|
+
getMetricTooltip(metric: PerformanceMetricInterface): MetricValueTooltipContent;
|
|
1444
1607
|
private formatCurrency;
|
|
1445
1608
|
private formatPercent;
|
|
1446
1609
|
private getGradeExplanation;
|
|
@@ -1451,6 +1614,493 @@ declare class SymphiqFunnelAnalysisPreviewComponent {
|
|
|
1451
1614
|
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>;
|
|
1452
1615
|
}
|
|
1453
1616
|
|
|
1617
|
+
declare class ProfileItemLookupService {
|
|
1618
|
+
private profileData;
|
|
1619
|
+
setProfile(profile: ProfileInterface | undefined): void;
|
|
1620
|
+
findItemById(id: string): ProfileItemInterface | undefined;
|
|
1621
|
+
findItemsByIds(ids: string[]): ProfileItemInterface[];
|
|
1622
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProfileItemLookupService, never>;
|
|
1623
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<ProfileItemLookupService>;
|
|
1624
|
+
}
|
|
1625
|
+
|
|
1626
|
+
declare class ProfileContextService {
|
|
1627
|
+
private contextIndex;
|
|
1628
|
+
indexProfile(sections: any[], recommendations?: ProfileAnalysisRecommendationInterface[]): void;
|
|
1629
|
+
getRegions(): ProfileItemInterface[];
|
|
1630
|
+
getSeasons(): ProfileItemInterface[];
|
|
1631
|
+
getPriceTiers(): ProfileItemInterface[];
|
|
1632
|
+
getCustomerSegments(): ProfileItemInterface[];
|
|
1633
|
+
getProductCategories(): ProfileItemInterface[];
|
|
1634
|
+
getFocusAreas(): ProfileItemInterface[];
|
|
1635
|
+
getItemById(id: string): ProfileItemInterface | undefined;
|
|
1636
|
+
getItemsByIds(ids: string[]): ProfileItemInterface[];
|
|
1637
|
+
getCompetitors(): ProfileItemInterface[];
|
|
1638
|
+
getRecommendationById(id: string): ProfileAnalysisRecommendationInterface | undefined;
|
|
1639
|
+
getCompetitorsByIds(ids: string[]): ProfileItemInterface[];
|
|
1640
|
+
getRecommendationsByProfileItemIds(itemIds: string[]): ProfileAnalysisRecommendationInterface[];
|
|
1641
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProfileContextService, never>;
|
|
1642
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<ProfileContextService>;
|
|
1643
|
+
}
|
|
1644
|
+
|
|
1645
|
+
declare class SymphiqBusinessAnalysisDashboardComponent implements OnInit, AfterViewInit, OnDestroy {
|
|
1646
|
+
requestedByUser?: {
|
|
1647
|
+
firstName: string;
|
|
1648
|
+
lastName: string;
|
|
1649
|
+
};
|
|
1650
|
+
viewMode: ViewModeEnum;
|
|
1651
|
+
embedded: boolean;
|
|
1652
|
+
scrollEvent?: Event;
|
|
1653
|
+
scrollElement?: HTMLElement;
|
|
1654
|
+
isLoading: boolean;
|
|
1655
|
+
useSampleData: boolean;
|
|
1656
|
+
profile?: ProfileInterface;
|
|
1657
|
+
protected headerScrollService: HeaderScrollService;
|
|
1658
|
+
protected lookupService: ProfileItemLookupService;
|
|
1659
|
+
protected navigationService: NavigationStateService;
|
|
1660
|
+
protected profileContextService: ProfileContextService;
|
|
1661
|
+
protected searchService: BusinessProfileSearchService;
|
|
1662
|
+
protected currentProfile: _angular_core.WritableSignal<ProfileInterface | undefined>;
|
|
1663
|
+
protected scrollProgress: _angular_core.Signal<number>;
|
|
1664
|
+
protected isLightMode: _angular_core.Signal<boolean>;
|
|
1665
|
+
protected isCompactView: _angular_core.WritableSignal<boolean>;
|
|
1666
|
+
protected currentSectionTitle: _angular_core.WritableSignal<string>;
|
|
1667
|
+
protected currentSubsectionTitle: _angular_core.WritableSignal<string>;
|
|
1668
|
+
protected sectionTitleFading: _angular_core.WritableSignal<boolean>;
|
|
1669
|
+
protected subsectionTitleFading: _angular_core.WritableSignal<boolean>;
|
|
1670
|
+
protected selectedSearchIndex: _angular_core.WritableSignal<number>;
|
|
1671
|
+
protected sections: _angular_core.Signal<ProfileSectionInterface[]>;
|
|
1672
|
+
private subsectionObserver?;
|
|
1673
|
+
private sectionUpdateTimeout?;
|
|
1674
|
+
private subsectionUpdateTimeout?;
|
|
1675
|
+
private lastSectionTitle;
|
|
1676
|
+
private lastSubsectionTitle;
|
|
1677
|
+
private scrollToTargetHandler?;
|
|
1678
|
+
private lastScrollY;
|
|
1679
|
+
private scrollDirection;
|
|
1680
|
+
private scrollDirectionHandler?;
|
|
1681
|
+
protected sectionHasContent(section: ProfileSectionInterface): boolean;
|
|
1682
|
+
protected subsectionHasContent(subsection: ProfileSubsectionInterface): boolean;
|
|
1683
|
+
constructor();
|
|
1684
|
+
onScroll(): void;
|
|
1685
|
+
protected toggleExpandedView(): void;
|
|
1686
|
+
handleKeyDown(event: KeyboardEvent): void;
|
|
1687
|
+
protected openSearch(): void;
|
|
1688
|
+
protected closeSearch(): void;
|
|
1689
|
+
protected onSearchChange(query: string): void;
|
|
1690
|
+
protected onSearchResultSelected(result: BusinessSearchResult): void;
|
|
1691
|
+
private scrollToSearchResult;
|
|
1692
|
+
private highlightAndPulseItem;
|
|
1693
|
+
ngOnInit(): void;
|
|
1694
|
+
ngAfterViewInit(): void;
|
|
1695
|
+
ngOnDestroy(): void;
|
|
1696
|
+
protected getContainerClasses(): string;
|
|
1697
|
+
protected getBackgroundClasses(): string;
|
|
1698
|
+
protected getMeshGradientClasses(): string;
|
|
1699
|
+
protected getTopoPatternClasses(): string;
|
|
1700
|
+
protected getOrbClasses(index: number): string;
|
|
1701
|
+
protected getHeaderClasses(): string;
|
|
1702
|
+
protected getMainTitleClasses(): string;
|
|
1703
|
+
protected getSubtitleClasses(): string;
|
|
1704
|
+
protected getLoadingOverlayClasses(): string;
|
|
1705
|
+
protected getSpinnerClasses(): string;
|
|
1706
|
+
protected trackBySectionId(index: number, section: ProfileSectionInterface): string | number;
|
|
1707
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SymphiqBusinessAnalysisDashboardComponent, never>;
|
|
1708
|
+
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; }; }, {}, never, never, true, never>;
|
|
1709
|
+
}
|
|
1710
|
+
|
|
1711
|
+
declare class ProfileSectionComponent {
|
|
1712
|
+
private sectionSignal;
|
|
1713
|
+
set section(value: ProfileSectionInterface | undefined);
|
|
1714
|
+
get section(): ProfileSectionInterface | null;
|
|
1715
|
+
viewMode: ViewModeEnum;
|
|
1716
|
+
forceExpanded: boolean;
|
|
1717
|
+
protected visibleSubsections: _angular_core.Signal<ProfileSubsectionInterface[]>;
|
|
1718
|
+
protected subsectionHasContent(subsection: ProfileSubsectionInterface): boolean;
|
|
1719
|
+
protected getContainerClasses(): string;
|
|
1720
|
+
protected getIconContainerClasses(): string;
|
|
1721
|
+
protected getTitleClasses(): string;
|
|
1722
|
+
protected getDividerClasses(): string;
|
|
1723
|
+
protected trackBySubsectionId(index: number, subsection: ProfileSubsectionInterface): string | number;
|
|
1724
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProfileSectionComponent, never>;
|
|
1725
|
+
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>;
|
|
1726
|
+
}
|
|
1727
|
+
|
|
1728
|
+
declare class ProfileSubsectionComponent {
|
|
1729
|
+
subsection?: ProfileSubsectionInterface;
|
|
1730
|
+
viewMode: ViewModeEnum;
|
|
1731
|
+
parentSectionTitle?: string;
|
|
1732
|
+
subsectionIndex: number;
|
|
1733
|
+
forceExpanded: boolean;
|
|
1734
|
+
private sanitizer;
|
|
1735
|
+
private profileContextService;
|
|
1736
|
+
protected ProfileItemTypeEnum: typeof ProfileItemTypeEnum;
|
|
1737
|
+
protected sortedItems: _angular_core.Signal<ProfileItemInterface[]>;
|
|
1738
|
+
protected formatContentWithLineBreaks(content: string): SafeHtml;
|
|
1739
|
+
protected getContainerClasses(): string;
|
|
1740
|
+
protected getIconClasses(): string;
|
|
1741
|
+
protected getTitleClasses(): string;
|
|
1742
|
+
protected getContentClasses(): string;
|
|
1743
|
+
protected getVisualContainerClasses(): string;
|
|
1744
|
+
protected getDisplayContent(): string | null;
|
|
1745
|
+
protected trackByItemId(index: number, item: ProfileItemInterface): string | number;
|
|
1746
|
+
protected getCompetitiveBenchmark(): any;
|
|
1747
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProfileSubsectionComponent, never>;
|
|
1748
|
+
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>;
|
|
1749
|
+
}
|
|
1750
|
+
|
|
1751
|
+
declare class ProfileItemCardComponent {
|
|
1752
|
+
item?: ProfileItemInterface;
|
|
1753
|
+
viewMode: ViewModeEnum;
|
|
1754
|
+
subsectionId?: string;
|
|
1755
|
+
forceExpanded: boolean;
|
|
1756
|
+
animationIndex: number;
|
|
1757
|
+
isLoading: boolean;
|
|
1758
|
+
protected isRecommendation(): boolean;
|
|
1759
|
+
protected getCardClasses(): string;
|
|
1760
|
+
protected getIconClasses(): string;
|
|
1761
|
+
protected getLabelClasses(): string;
|
|
1762
|
+
protected getValueClasses(): string;
|
|
1763
|
+
protected getItemIcon(): IconObjectInterface$1 | undefined;
|
|
1764
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProfileItemCardComponent, never>;
|
|
1765
|
+
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>;
|
|
1766
|
+
}
|
|
1767
|
+
|
|
1768
|
+
declare class NapkinVisualPlaceholderComponent implements OnInit, OnChanges {
|
|
1769
|
+
visual?: NapkinVisualInterface;
|
|
1770
|
+
viewMode: ViewModeEnum;
|
|
1771
|
+
private sanitizer;
|
|
1772
|
+
private modalService;
|
|
1773
|
+
ngOnInit(): void;
|
|
1774
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
1775
|
+
protected hasSvgData(): boolean;
|
|
1776
|
+
protected getSvgDataForViewMode(): string | undefined;
|
|
1777
|
+
protected getSanitizedSvg(): SafeHtml;
|
|
1778
|
+
protected getSvgContainerClasses(): string;
|
|
1779
|
+
protected getContainerClasses(): string;
|
|
1780
|
+
protected getIconContainerClasses(): string;
|
|
1781
|
+
protected getTitleClasses(): string;
|
|
1782
|
+
protected getSubtitleClasses(): string;
|
|
1783
|
+
protected getBadgeClasses(): string;
|
|
1784
|
+
protected getStyleLabel(styleId?: string): string;
|
|
1785
|
+
protected getExpandIconClasses(): string;
|
|
1786
|
+
protected openModal(): void;
|
|
1787
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NapkinVisualPlaceholderComponent, never>;
|
|
1788
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NapkinVisualPlaceholderComponent, "symphiq-napkin-visual-placeholder", never, { "visual": { "alias": "visual"; "required": false; }; "viewMode": { "alias": "viewMode"; "required": false; }; }, {}, never, never, true, never>;
|
|
1789
|
+
}
|
|
1790
|
+
|
|
1791
|
+
declare class HierarchyDisplayComponent {
|
|
1792
|
+
hierarchyData?: HierarchyDataInterface;
|
|
1793
|
+
viewMode: ViewModeEnum;
|
|
1794
|
+
protected getNodeClasses(level: number): string;
|
|
1795
|
+
protected getNodeIconClasses(level: number): string;
|
|
1796
|
+
protected getNodeLabelClasses(): string;
|
|
1797
|
+
protected getNodeTextClasses(): string;
|
|
1798
|
+
protected getConnectorClasses(): string;
|
|
1799
|
+
protected getCompetitiveMetricsClasses(): string;
|
|
1800
|
+
protected getCompetitiveMetricsTitleClasses(): string;
|
|
1801
|
+
protected hasCompetitiveMetrics(): boolean;
|
|
1802
|
+
protected getIndustryMarketShare(): number | undefined;
|
|
1803
|
+
protected getCompetitorOverlap(): number | undefined;
|
|
1804
|
+
protected getMarketShareType(share: number): 'advantage' | 'parity' | 'disadvantage' | 'opportunity' | 'threat';
|
|
1805
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<HierarchyDisplayComponent, never>;
|
|
1806
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<HierarchyDisplayComponent, "symphiq-hierarchy-display", never, { "hierarchyData": { "alias": "hierarchyData"; "required": false; }; "viewMode": { "alias": "viewMode"; "required": false; }; }, {}, never, never, true, never>;
|
|
1807
|
+
}
|
|
1808
|
+
|
|
1809
|
+
declare class SectionNavigationComponent implements OnInit {
|
|
1810
|
+
sections: ProfileSectionInterface[];
|
|
1811
|
+
viewMode: ViewModeEnum;
|
|
1812
|
+
embedded: boolean;
|
|
1813
|
+
protected activeSection: _angular_core.WritableSignal<number>;
|
|
1814
|
+
ngOnInit(): void;
|
|
1815
|
+
protected getNavClasses(): string;
|
|
1816
|
+
protected getDotClasses(index: number): string;
|
|
1817
|
+
protected getDotInnerClasses(index: number): string;
|
|
1818
|
+
protected scrollToSection(sectionId: string): void;
|
|
1819
|
+
protected trackBySectionId(index: number, section: ProfileSectionInterface): string | number;
|
|
1820
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SectionNavigationComponent, never>;
|
|
1821
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SectionNavigationComponent, "symphiq-section-navigation", never, { "sections": { "alias": "sections"; "required": false; }; "viewMode": { "alias": "viewMode"; "required": false; }; "embedded": { "alias": "embedded"; "required": false; }; }, {}, never, never, true, never>;
|
|
1822
|
+
}
|
|
1823
|
+
|
|
1824
|
+
declare class FloatingTocComponent implements OnInit, OnDestroy {
|
|
1825
|
+
sections: ProfileSectionInterface[];
|
|
1826
|
+
viewMode: ViewModeEnum;
|
|
1827
|
+
embedded: boolean;
|
|
1828
|
+
protected isHovered: _angular_core.WritableSignal<boolean>;
|
|
1829
|
+
protected isPinned: _angular_core.WritableSignal<boolean>;
|
|
1830
|
+
protected activeSection: _angular_core.WritableSignal<string>;
|
|
1831
|
+
protected activeSubsection: _angular_core.WritableSignal<string>;
|
|
1832
|
+
protected expandedSections: _angular_core.WritableSignal<Set<string>>;
|
|
1833
|
+
private readonly HEADER_OFFSET;
|
|
1834
|
+
protected tocSections: _angular_core.Signal<{
|
|
1835
|
+
id: string;
|
|
1836
|
+
title: string;
|
|
1837
|
+
icon: _jebgem_model.IconObjectInterface | undefined;
|
|
1838
|
+
subsections: {
|
|
1839
|
+
id: string;
|
|
1840
|
+
title: string;
|
|
1841
|
+
parentId: string;
|
|
1842
|
+
}[];
|
|
1843
|
+
}[]>;
|
|
1844
|
+
private observer?;
|
|
1845
|
+
ngOnInit(): void;
|
|
1846
|
+
ngOnDestroy(): void;
|
|
1847
|
+
private setupIntersectionObserver;
|
|
1848
|
+
protected onMouseEnter(): void;
|
|
1849
|
+
protected onMouseLeave(): void;
|
|
1850
|
+
protected togglePinned(): void;
|
|
1851
|
+
protected isSectionExpanded(sectionId: string): boolean;
|
|
1852
|
+
protected scrollToSection(sectionId: string): void;
|
|
1853
|
+
protected scrollToSubsection(subsectionId: string): void;
|
|
1854
|
+
protected scrollToTop(): void;
|
|
1855
|
+
protected getOuterContainerClasses(): string;
|
|
1856
|
+
protected getInnerContainerClasses(): string;
|
|
1857
|
+
protected getCollapsedIconClasses(): string;
|
|
1858
|
+
protected getExpandedContentClasses(): string;
|
|
1859
|
+
protected getBorderClasses(): string;
|
|
1860
|
+
protected getHeaderIconClasses(): string;
|
|
1861
|
+
protected getHeaderTextClasses(): string;
|
|
1862
|
+
protected getPinButtonClasses(): string;
|
|
1863
|
+
protected getScrollbarClasses(): string;
|
|
1864
|
+
protected getSectionButtonClasses(sectionId: string): string;
|
|
1865
|
+
protected getSectionIconClasses(sectionId: string): string;
|
|
1866
|
+
protected getActiveIndicatorClasses(): string;
|
|
1867
|
+
protected getSubsectionButtonClasses(subsectionId: string): string;
|
|
1868
|
+
protected getActiveSubIndicatorClasses(): string;
|
|
1869
|
+
protected getBackToTopButtonClasses(): string;
|
|
1870
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FloatingTocComponent, never>;
|
|
1871
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FloatingTocComponent, "symphiq-floating-toc", never, { "sections": { "alias": "sections"; "required": false; }; "viewMode": { "alias": "viewMode"; "required": false; }; "embedded": { "alias": "embedded"; "required": false; }; }, {}, never, never, true, never>;
|
|
1872
|
+
}
|
|
1873
|
+
|
|
1874
|
+
declare class FloatingBackButtonComponent implements OnInit, OnDestroy {
|
|
1875
|
+
viewMode: ViewModeEnum;
|
|
1876
|
+
embedded: boolean;
|
|
1877
|
+
private navigationService;
|
|
1878
|
+
private readonly HEADER_OFFSET;
|
|
1879
|
+
protected navigationState: _angular_core.Signal<NavigationState>;
|
|
1880
|
+
protected isVisible: _angular_core.Signal<boolean>;
|
|
1881
|
+
ngOnInit(): void;
|
|
1882
|
+
ngOnDestroy(): void;
|
|
1883
|
+
protected navigateBack(): void;
|
|
1884
|
+
protected close(): void;
|
|
1885
|
+
protected getOuterContainerClasses(): string;
|
|
1886
|
+
protected getInnerContainerClasses(): string;
|
|
1887
|
+
protected getBackButtonClasses(): string;
|
|
1888
|
+
protected getCloseButtonClasses(): string;
|
|
1889
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FloatingBackButtonComponent, never>;
|
|
1890
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FloatingBackButtonComponent, "symphiq-floating-back-button", never, { "viewMode": { "alias": "viewMode"; "required": false; }; "embedded": { "alias": "embedded"; "required": false; }; }, {}, never, never, true, never>;
|
|
1891
|
+
}
|
|
1892
|
+
|
|
1893
|
+
declare class BusinessAnalysisModalComponent implements OnInit {
|
|
1894
|
+
isLightMode: _angular_core.InputSignal<boolean>;
|
|
1895
|
+
private modalService;
|
|
1896
|
+
private sanitizer;
|
|
1897
|
+
isOpen: _angular_core.WritableSignal<boolean>;
|
|
1898
|
+
modalType: _angular_core.WritableSignal<string | null>;
|
|
1899
|
+
modalTitle: _angular_core.WritableSignal<string>;
|
|
1900
|
+
visualizationData: _angular_core.WritableSignal<VisualizationData | null>;
|
|
1901
|
+
competitiveGapData: _angular_core.WritableSignal<{
|
|
1902
|
+
item: ProfileItemInterface;
|
|
1903
|
+
viewMode: ViewModeEnum;
|
|
1904
|
+
} | null>;
|
|
1905
|
+
recommendationActionStepsData: _angular_core.WritableSignal<{
|
|
1906
|
+
title?: string;
|
|
1907
|
+
actionSteps: ProfileAnalysisRecommendationActionStepInterface[];
|
|
1908
|
+
viewMode: ViewModeEnum;
|
|
1909
|
+
} | null>;
|
|
1910
|
+
visualizationType: _angular_core.Signal<"horizontal-bar" | "circular-progress" | "napkin-visual" | "custom" | null>;
|
|
1911
|
+
horizontalBarData: _angular_core.Signal<{
|
|
1912
|
+
percentage: number;
|
|
1913
|
+
label: string;
|
|
1914
|
+
value: string;
|
|
1915
|
+
gradient?: string;
|
|
1916
|
+
}[] | null>;
|
|
1917
|
+
circularProgressData: _angular_core.Signal<{
|
|
1918
|
+
percentage: number;
|
|
1919
|
+
progressColor?: string;
|
|
1920
|
+
backgroundColor?: string;
|
|
1921
|
+
} | null>;
|
|
1922
|
+
napkinVisualData: _angular_core.Signal<{
|
|
1923
|
+
svgData: string;
|
|
1924
|
+
viewMode?: string;
|
|
1925
|
+
styleId?: string;
|
|
1926
|
+
} | null>;
|
|
1927
|
+
competitiveGapItem: _angular_core.Signal<ProfileItemInterface | undefined>;
|
|
1928
|
+
constructor();
|
|
1929
|
+
ngOnInit(): void;
|
|
1930
|
+
getSanitizedSvg(): SafeHtml;
|
|
1931
|
+
closeModal(): void;
|
|
1932
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BusinessAnalysisModalComponent, never>;
|
|
1933
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<BusinessAnalysisModalComponent, "symphiq-business-analysis-modal", never, { "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1934
|
+
}
|
|
1935
|
+
|
|
1936
|
+
declare class HorizontalBarComponent implements OnInit, OnDestroy {
|
|
1937
|
+
percentage: number;
|
|
1938
|
+
label: string;
|
|
1939
|
+
value: string;
|
|
1940
|
+
height: number;
|
|
1941
|
+
showLabel: boolean;
|
|
1942
|
+
gradient: string;
|
|
1943
|
+
isDark: boolean;
|
|
1944
|
+
animationDuration: number;
|
|
1945
|
+
animationDelay: number;
|
|
1946
|
+
private elementRef;
|
|
1947
|
+
private observer?;
|
|
1948
|
+
private animationFrame?;
|
|
1949
|
+
private hasAnimated;
|
|
1950
|
+
protected animatedPercentage: _angular_core.WritableSignal<number>;
|
|
1951
|
+
ngOnInit(): void;
|
|
1952
|
+
ngOnDestroy(): void;
|
|
1953
|
+
private setupObserver;
|
|
1954
|
+
private animateProgress;
|
|
1955
|
+
protected animatedDisplayValue(): string;
|
|
1956
|
+
get backgroundClasses(): string;
|
|
1957
|
+
get barClasses(): string;
|
|
1958
|
+
get labelClasses(): string;
|
|
1959
|
+
get valueClasses(): string;
|
|
1960
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<HorizontalBarComponent, never>;
|
|
1961
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<HorizontalBarComponent, "symphiq-horizontal-bar", never, { "percentage": { "alias": "percentage"; "required": false; }; "label": { "alias": "label"; "required": false; }; "value": { "alias": "value"; "required": false; }; "height": { "alias": "height"; "required": false; }; "showLabel": { "alias": "showLabel"; "required": false; }; "gradient": { "alias": "gradient"; "required": false; }; "isDark": { "alias": "isDark"; "required": false; }; "animationDuration": { "alias": "animationDuration"; "required": false; }; "animationDelay": { "alias": "animationDelay"; "required": false; }; }, {}, never, never, true, never>;
|
|
1962
|
+
}
|
|
1963
|
+
|
|
1964
|
+
declare class CircularProgressComponent implements OnInit, OnDestroy {
|
|
1965
|
+
percentage: number;
|
|
1966
|
+
size: number;
|
|
1967
|
+
strokeWidth: number;
|
|
1968
|
+
progressColor: string;
|
|
1969
|
+
backgroundColor: string;
|
|
1970
|
+
showPercentage: boolean;
|
|
1971
|
+
textClasses: string;
|
|
1972
|
+
strokeLinecap: 'butt' | 'round' | 'square';
|
|
1973
|
+
animationDuration: number;
|
|
1974
|
+
animationDelay: number;
|
|
1975
|
+
private elementRef;
|
|
1976
|
+
private observer?;
|
|
1977
|
+
private animationFrame?;
|
|
1978
|
+
private hasAnimated;
|
|
1979
|
+
protected animatedPercentage: _angular_core.WritableSignal<number>;
|
|
1980
|
+
ngOnInit(): void;
|
|
1981
|
+
ngOnDestroy(): void;
|
|
1982
|
+
private setupObserver;
|
|
1983
|
+
private animateProgress;
|
|
1984
|
+
get radius(): number;
|
|
1985
|
+
get circumference(): number;
|
|
1986
|
+
protected animatedOffset(): number;
|
|
1987
|
+
protected animatedDisplayValue(): string;
|
|
1988
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CircularProgressComponent, never>;
|
|
1989
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CircularProgressComponent, "symphiq-circular-progress", never, { "percentage": { "alias": "percentage"; "required": false; }; "size": { "alias": "size"; "required": false; }; "strokeWidth": { "alias": "strokeWidth"; "required": false; }; "progressColor": { "alias": "progressColor"; "required": false; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; }; "showPercentage": { "alias": "showPercentage"; "required": false; }; "textClasses": { "alias": "textClasses"; "required": false; }; "strokeLinecap": { "alias": "strokeLinecap"; "required": false; }; "animationDuration": { "alias": "animationDuration"; "required": false; }; "animationDelay": { "alias": "animationDelay"; "required": false; }; }, {}, never, never, true, never>;
|
|
1990
|
+
}
|
|
1991
|
+
|
|
1992
|
+
type VisualizationType = 'horizontal-bar' | 'circular-progress' | 'custom';
|
|
1993
|
+
declare class VisualizationContainerComponent {
|
|
1994
|
+
isLightMode: _angular_core.InputSignal<boolean>;
|
|
1995
|
+
visualizationType: _angular_core.InputSignal<VisualizationType>;
|
|
1996
|
+
visualizationData: _angular_core.InputSignal<unknown>;
|
|
1997
|
+
disableInteraction: _angular_core.InputSignal<boolean>;
|
|
1998
|
+
visualizationClick: _angular_core.OutputEmitterRef<{
|
|
1999
|
+
type: VisualizationType;
|
|
2000
|
+
data: unknown;
|
|
2001
|
+
}>;
|
|
2002
|
+
containerClass: _angular_core.Signal<"" | "cursor-pointer">;
|
|
2003
|
+
iconClass: _angular_core.Signal<"text-slate-400 group-hover:text-blue-500" | "text-slate-500 group-hover:text-blue-400">;
|
|
2004
|
+
onExpandClick(event: Event): void;
|
|
2005
|
+
onVisualizationClick(event: Event): void;
|
|
2006
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<VisualizationContainerComponent, never>;
|
|
2007
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<VisualizationContainerComponent, "symphiq-visualization-container", never, { "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; "visualizationType": { "alias": "visualizationType"; "required": false; "isSignal": true; }; "visualizationData": { "alias": "visualizationData"; "required": false; "isSignal": true; }; "disableInteraction": { "alias": "disableInteraction"; "required": false; "isSignal": true; }; }, { "visualizationClick": "visualizationClick"; }, never, ["*"], true, never>;
|
|
2008
|
+
}
|
|
2009
|
+
|
|
2010
|
+
declare class ScrollProgressBarComponent {
|
|
2011
|
+
set progress(value: number);
|
|
2012
|
+
isLightMode: boolean;
|
|
2013
|
+
embedded: boolean;
|
|
2014
|
+
protected scrollProgress: _angular_core.WritableSignal<number>;
|
|
2015
|
+
protected getContainerClasses(): string;
|
|
2016
|
+
protected getGradientClasses(): string;
|
|
2017
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ScrollProgressBarComponent, never>;
|
|
2018
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ScrollProgressBarComponent, "symphiq-scroll-progress-bar", never, { "progress": { "alias": "progress"; "required": false; }; "isLightMode": { "alias": "isLightMode"; "required": false; }; "embedded": { "alias": "embedded"; "required": false; }; }, {}, never, never, true, never>;
|
|
2019
|
+
}
|
|
2020
|
+
|
|
2021
|
+
interface IconObjectInterface {
|
|
2022
|
+
name?: string;
|
|
2023
|
+
source?: 'HEROICONS' | string;
|
|
2024
|
+
}
|
|
2025
|
+
declare class SymphiqIconComponent {
|
|
2026
|
+
private iconService;
|
|
2027
|
+
set icon(value: IconObjectInterface | undefined);
|
|
2028
|
+
set size(value: string);
|
|
2029
|
+
set customClass(value: string);
|
|
2030
|
+
private iconSignal;
|
|
2031
|
+
private sizeSignal;
|
|
2032
|
+
private customClassSignal;
|
|
2033
|
+
protected containerClass: _angular_core.Signal<string>;
|
|
2034
|
+
private iconRequest$;
|
|
2035
|
+
protected iconHtml: _angular_core.Signal<"" | _angular_platform_browser.SafeHtml>;
|
|
2036
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SymphiqIconComponent, never>;
|
|
2037
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SymphiqIconComponent, "symphiq-icon", never, { "icon": { "alias": "icon"; "required": false; }; "size": { "alias": "size"; "required": false; }; "customClass": { "alias": "customClass"; "required": false; }; }, {}, never, never, true, never>;
|
|
2038
|
+
}
|
|
2039
|
+
|
|
2040
|
+
declare class SectionDividerComponent {
|
|
2041
|
+
viewMode: ViewModeEnum;
|
|
2042
|
+
animationDelay: string;
|
|
2043
|
+
private subsectionsSignal;
|
|
2044
|
+
set subsections(value: ProfileSubsectionInterface[] | undefined);
|
|
2045
|
+
protected displayIcons: _angular_core.Signal<_jebgem_model.IconObjectInterface[]>;
|
|
2046
|
+
protected isLightMode(): boolean;
|
|
2047
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SectionDividerComponent, never>;
|
|
2048
|
+
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>;
|
|
2049
|
+
}
|
|
2050
|
+
|
|
2051
|
+
declare class SearchButtonComponent {
|
|
2052
|
+
isLightMode: _angular_core.InputSignal<boolean>;
|
|
2053
|
+
minimized: _angular_core.InputSignal<boolean>;
|
|
2054
|
+
title: _angular_core.InputSignal<string>;
|
|
2055
|
+
searchClick: _angular_core.OutputEmitterRef<void>;
|
|
2056
|
+
buttonClass: _angular_core.Signal<"bg-slate-100 text-slate-700 hover:bg-slate-200 hover:text-slate-900" | "bg-slate-800 text-slate-300 hover:bg-slate-700 hover:text-white">;
|
|
2057
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SearchButtonComponent, never>;
|
|
2058
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SearchButtonComponent, "symphiq-search-button", never, { "isLightMode": { "alias": "isLightMode"; "required": false; "isSignal": true; }; "minimized": { "alias": "minimized"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; }, { "searchClick": "searchClick"; }, never, never, true, never>;
|
|
2059
|
+
}
|
|
2060
|
+
|
|
2061
|
+
declare class SearchModalComponent {
|
|
2062
|
+
searchInput?: ElementRef<HTMLInputElement>;
|
|
2063
|
+
isLightMode: _angular_core.InputSignal<boolean>;
|
|
2064
|
+
isOpen: _angular_core.InputSignal<boolean>;
|
|
2065
|
+
searchQuery: _angular_core.InputSignal<string>;
|
|
2066
|
+
results: _angular_core.InputSignal<BusinessSearchResult[]>;
|
|
2067
|
+
hasResults: _angular_core.InputSignal<boolean>;
|
|
2068
|
+
selectedIndex: _angular_core.InputSignal<number>;
|
|
2069
|
+
placeholder: _angular_core.InputSignal<string>;
|
|
2070
|
+
searchChange: _angular_core.OutputEmitterRef<string>;
|
|
2071
|
+
resultSelected: _angular_core.OutputEmitterRef<BusinessSearchResult>;
|
|
2072
|
+
close: _angular_core.OutputEmitterRef<void>;
|
|
2073
|
+
constructor();
|
|
2074
|
+
onSearchChange(query: string): void;
|
|
2075
|
+
clearSearch(): void;
|
|
2076
|
+
closeModal(): void;
|
|
2077
|
+
selectResult(result: BusinessSearchResult): void;
|
|
2078
|
+
getResultClass(index: number): string;
|
|
2079
|
+
getTypeIconBgClass(type: string): string;
|
|
2080
|
+
getTypeIconClass(type: string): string;
|
|
2081
|
+
getTypeBadgeText(result: BusinessSearchResult): string;
|
|
2082
|
+
containerClass: _angular_core.Signal<"bg-white border border-slate-200" | "bg-slate-800 border border-slate-700">;
|
|
2083
|
+
inputClass: _angular_core.Signal<"bg-white text-slate-900 placeholder-slate-400" | "bg-slate-800 text-white placeholder-slate-500">;
|
|
2084
|
+
iconClass: _angular_core.Signal<"text-slate-400" | "text-slate-500">;
|
|
2085
|
+
clearButtonClass: _angular_core.Signal<"bg-slate-100 text-slate-600 hover:bg-slate-200" | "bg-slate-700 text-slate-300 hover:bg-slate-600">;
|
|
2086
|
+
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">;
|
|
2087
|
+
resultsContainerClass: _angular_core.Signal<"border-slate-200" | "border-slate-700">;
|
|
2088
|
+
resultTitleClass: _angular_core.Signal<"text-slate-900" | "text-white">;
|
|
2089
|
+
resultDescClass: _angular_core.Signal<"text-slate-600" | "text-slate-400">;
|
|
2090
|
+
breadcrumbClass: _angular_core.Signal<string>;
|
|
2091
|
+
typeBadgeClass: _angular_core.Signal<"bg-slate-100 text-slate-600" | "bg-slate-700 text-slate-300">;
|
|
2092
|
+
arrowClass: _angular_core.Signal<"text-slate-400" | "text-slate-500">;
|
|
2093
|
+
emptyStateClass: _angular_core.Signal<"border-slate-200" | "border-slate-700">;
|
|
2094
|
+
emptyIconClass: _angular_core.Signal<"text-slate-600" | "text-slate-300">;
|
|
2095
|
+
emptyTitleClass: _angular_core.Signal<"text-slate-900" | "text-white">;
|
|
2096
|
+
emptyDescClass: _angular_core.Signal<"text-slate-600" | "text-slate-400">;
|
|
2097
|
+
shortcutsClass: _angular_core.Signal<"bg-slate-900/50 border-slate-700" | "bg-slate-50 border-slate-200">;
|
|
2098
|
+
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">;
|
|
2099
|
+
shortcutTextClass: _angular_core.Signal<"text-slate-600" | "text-slate-400">;
|
|
2100
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SearchModalComponent, never>;
|
|
2101
|
+
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>;
|
|
2102
|
+
}
|
|
2103
|
+
|
|
1454
2104
|
declare class ChartContainerComponent {
|
|
1455
2105
|
chart: _angular_core.InputSignal<AiChartInterface>;
|
|
1456
2106
|
isLightMode: _angular_core.InputSignal<boolean>;
|
|
@@ -1460,12 +2110,13 @@ declare class ChartContainerComponent {
|
|
|
1460
2110
|
viewMode: _angular_core.InputSignal<ViewModeEnum>;
|
|
1461
2111
|
chartClick: _angular_core.OutputEmitterRef<AiChartInterface>;
|
|
1462
2112
|
isExpanded: _angular_core.WritableSignal<boolean>;
|
|
2113
|
+
protected ChartTypeEnum: typeof ChartTypeEnum;
|
|
1463
2114
|
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">;
|
|
1464
2115
|
headerClass: _angular_core.Signal<"border-slate-200" | "border-slate-700">;
|
|
1465
2116
|
titleClass: _angular_core.Signal<"text-slate-900" | "text-white">;
|
|
1466
2117
|
descriptionClass: _angular_core.Signal<"text-slate-600" | "text-slate-400">;
|
|
1467
2118
|
iconClass: _angular_core.Signal<"text-slate-400 group-hover:text-blue-500" | "text-slate-500 group-hover:text-blue-400">;
|
|
1468
|
-
chartIconClass: _angular_core.Signal<"bg-blue-
|
|
2119
|
+
chartIconClass: _angular_core.Signal<"bg-blue-500/20 text-blue-400" | "bg-blue-100 text-blue-600">;
|
|
1469
2120
|
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">;
|
|
1470
2121
|
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">;
|
|
1471
2122
|
isCollapsible: _angular_core.Signal<boolean>;
|
|
@@ -1482,7 +2133,7 @@ declare class LineChartComponent implements OnInit, AfterViewInit, OnDestroy {
|
|
|
1482
2133
|
chart: _angular_core.InputSignal<AiChartInterface>;
|
|
1483
2134
|
showAxisLabels: _angular_core.InputSignal<boolean>;
|
|
1484
2135
|
viewMode: _angular_core.InputSignal<ViewModeEnum>;
|
|
1485
|
-
chartHeight: _angular_core.Signal<"
|
|
2136
|
+
chartHeight: _angular_core.Signal<"133px" | "500px">;
|
|
1486
2137
|
cursorColor: _angular_core.Signal<9741240 | 16777215>;
|
|
1487
2138
|
tooltipTextColor: _angular_core.Signal<0 | 16777215>;
|
|
1488
2139
|
chartHash: _angular_core.Signal<string>;
|
|
@@ -1525,7 +2176,7 @@ declare class BarChartComponent implements OnInit, AfterViewInit, OnDestroy {
|
|
|
1525
2176
|
chart: _angular_core.InputSignal<AiChartInterface>;
|
|
1526
2177
|
showAxisLabels: _angular_core.InputSignal<boolean>;
|
|
1527
2178
|
viewMode: _angular_core.InputSignal<ViewModeEnum>;
|
|
1528
|
-
chartHeight: _angular_core.Signal<"
|
|
2179
|
+
chartHeight: _angular_core.Signal<"175px" | "500px">;
|
|
1529
2180
|
cursorColor: _angular_core.Signal<9741240 | 16777215>;
|
|
1530
2181
|
tooltipTextColor: _angular_core.Signal<0 | 16777215>;
|
|
1531
2182
|
chartHash: _angular_core.Signal<string>;
|
|
@@ -1561,7 +2212,7 @@ declare class PieChartComponent implements OnInit, AfterViewInit, OnDestroy {
|
|
|
1561
2212
|
chart: _angular_core.InputSignal<AiChartInterface>;
|
|
1562
2213
|
showAxisLabels: _angular_core.InputSignal<boolean>;
|
|
1563
2214
|
viewMode: _angular_core.InputSignal<ViewModeEnum>;
|
|
1564
|
-
chartHeight: _angular_core.Signal<"
|
|
2215
|
+
chartHeight: _angular_core.Signal<"200px" | "500px">;
|
|
1565
2216
|
chartHash: _angular_core.Signal<string>;
|
|
1566
2217
|
chartDiv: ElementRef;
|
|
1567
2218
|
private root?;
|
|
@@ -1596,7 +2247,7 @@ declare class AreaChartComponent implements OnInit, AfterViewInit, OnDestroy {
|
|
|
1596
2247
|
chart: _angular_core.InputSignal<AiChartInterface>;
|
|
1597
2248
|
showAxisLabels: _angular_core.InputSignal<boolean>;
|
|
1598
2249
|
viewMode: _angular_core.InputSignal<ViewModeEnum>;
|
|
1599
|
-
chartHeight: _angular_core.Signal<"
|
|
2250
|
+
chartHeight: _angular_core.Signal<"133px" | "500px">;
|
|
1600
2251
|
cursorColor: _angular_core.Signal<9741240 | 16777215>;
|
|
1601
2252
|
chartHash: _angular_core.Signal<string>;
|
|
1602
2253
|
chartDiv: ElementRef;
|
|
@@ -1630,6 +2281,7 @@ declare class AreaChartComponent implements OnInit, AfterViewInit, OnDestroy {
|
|
|
1630
2281
|
declare class TooltipContainerComponent {
|
|
1631
2282
|
isLightMode: _angular_core.WritableSignal<boolean>;
|
|
1632
2283
|
private tooltipService;
|
|
2284
|
+
private navigationService;
|
|
1633
2285
|
private elementRef;
|
|
1634
2286
|
private renderer;
|
|
1635
2287
|
private tooltipStateSignal;
|
|
@@ -1661,6 +2313,7 @@ declare class TooltipContainerComponent {
|
|
|
1661
2313
|
containerClass: _angular_core.Signal<"" | "-translate-x-1/2">;
|
|
1662
2314
|
contentClass: _angular_core.Signal<"bg-white/95 border-slate-300 text-slate-900" | "bg-slate-800/95 border-slate-600 text-white">;
|
|
1663
2315
|
textClass: _angular_core.Signal<"text-slate-700" | "text-slate-200">;
|
|
2316
|
+
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">;
|
|
1664
2317
|
transformStyle: _angular_core.Signal<"none" | "translateX(-192px)">;
|
|
1665
2318
|
constructor();
|
|
1666
2319
|
onTooltipMouseEnter(): void;
|
|
@@ -1668,6 +2321,7 @@ declare class TooltipContainerComponent {
|
|
|
1668
2321
|
private calculateLeft;
|
|
1669
2322
|
private calculateTop;
|
|
1670
2323
|
private findTransformedAncestor;
|
|
2324
|
+
scrollToTarget(targetId: string): void;
|
|
1671
2325
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TooltipContainerComponent, never>;
|
|
1672
2326
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TooltipContainerComponent, "symphiq-tooltip-container", never, {}, {}, never, never, true, never>;
|
|
1673
2327
|
}
|
|
@@ -1689,7 +2343,6 @@ declare class TooltipDirective implements OnDestroy {
|
|
|
1689
2343
|
onMouseEnter(event: MouseEvent): void;
|
|
1690
2344
|
onMouseMove(event: MouseEvent): void;
|
|
1691
2345
|
onMouseLeave(): void;
|
|
1692
|
-
onMouseEnterAgain(): void;
|
|
1693
2346
|
onFocus(): void;
|
|
1694
2347
|
onBlur(): void;
|
|
1695
2348
|
private scheduleShow;
|
|
@@ -1701,8 +2354,266 @@ declare class TooltipDirective implements OnDestroy {
|
|
|
1701
2354
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TooltipDirective, "[libSymphiqTooltip]", never, { "symphiqTooltip": { "alias": "libSymphiqTooltip"; "required": false; "isSignal": true; }; "tooltipType": { "alias": "tooltipType"; "required": false; "isSignal": true; }; "tooltipPosition": { "alias": "tooltipPosition"; "required": false; "isSignal": true; }; "tooltipDelay": { "alias": "tooltipDelay"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1702
2355
|
}
|
|
1703
2356
|
|
|
2357
|
+
declare class ShadowElevationDirective implements OnInit, OnDestroy {
|
|
2358
|
+
private el;
|
|
2359
|
+
private renderer;
|
|
2360
|
+
private scrollDepthService;
|
|
2361
|
+
private platformId;
|
|
2362
|
+
scrollContainer?: HTMLElement | 'window';
|
|
2363
|
+
shadowOffset: number;
|
|
2364
|
+
private subscription?;
|
|
2365
|
+
private containerId;
|
|
2366
|
+
private currentShadowClass;
|
|
2367
|
+
private currentBorderClass;
|
|
2368
|
+
private currentBackgroundClass;
|
|
2369
|
+
private intersectionObserver?;
|
|
2370
|
+
private isVisible;
|
|
2371
|
+
constructor(el: ElementRef<HTMLElement>, renderer: Renderer2, scrollDepthService: ScrollDepthService, platformId: Object);
|
|
2372
|
+
ngOnInit(): void;
|
|
2373
|
+
private setupIntersectionObserver;
|
|
2374
|
+
private updateShadow;
|
|
2375
|
+
private getShadowClasses;
|
|
2376
|
+
ngOnDestroy(): void;
|
|
2377
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ShadowElevationDirective, never>;
|
|
2378
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ShadowElevationDirective, "[symphiqShadowElevation]", never, { "scrollContainer": { "alias": "symphiqShadowElevation"; "required": false; }; "shadowOffset": { "alias": "shadowOffset"; "required": false; }; }, {}, never, never, true, never>;
|
|
2379
|
+
}
|
|
2380
|
+
|
|
2381
|
+
type AnimationType = 'fade-in' | 'slide-up' | 'slide-left' | 'slide-right' | 'zoom-in' | 'none';
|
|
2382
|
+
declare class ViewportAnimationDirective implements OnInit, OnDestroy {
|
|
2383
|
+
private el;
|
|
2384
|
+
private renderer;
|
|
2385
|
+
symphiqViewportAnimation: AnimationType;
|
|
2386
|
+
animationDelay: number;
|
|
2387
|
+
animationDuration: number;
|
|
2388
|
+
staggerIndex: number;
|
|
2389
|
+
staggerDelay: number;
|
|
2390
|
+
threshold: number;
|
|
2391
|
+
rootMargin: string;
|
|
2392
|
+
once: boolean;
|
|
2393
|
+
private observer?;
|
|
2394
|
+
private hasAnimated;
|
|
2395
|
+
constructor(el: ElementRef, renderer: Renderer2);
|
|
2396
|
+
ngOnInit(): void;
|
|
2397
|
+
ngOnDestroy(): void;
|
|
2398
|
+
private setupInitialState;
|
|
2399
|
+
private setupObserver;
|
|
2400
|
+
private animateIn;
|
|
2401
|
+
private animateOut;
|
|
2402
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ViewportAnimationDirective, never>;
|
|
2403
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ViewportAnimationDirective, "[symphiqViewportAnimation]", never, { "symphiqViewportAnimation": { "alias": "symphiqViewportAnimation"; "required": false; }; "animationDelay": { "alias": "animationDelay"; "required": false; }; "animationDuration": { "alias": "animationDuration"; "required": false; }; "staggerIndex": { "alias": "staggerIndex"; "required": false; }; "staggerDelay": { "alias": "staggerDelay"; "required": false; }; "threshold": { "alias": "threshold"; "required": false; }; "rootMargin": { "alias": "rootMargin"; "required": false; }; "once": { "alias": "once"; "required": false; }; }, {}, never, never, true, never>;
|
|
2404
|
+
}
|
|
2405
|
+
|
|
2406
|
+
type BadgeType = 'primary' | 'success' | 'warning' | 'info' | 'premium' | 'default' | 'danger' | 'neutral';
|
|
2407
|
+
|
|
2408
|
+
declare class FocusAreaDetailCardComponent {
|
|
2409
|
+
item?: ProfileItemInterface;
|
|
2410
|
+
viewMode: ViewModeEnum;
|
|
2411
|
+
set forceExpanded(value: boolean);
|
|
2412
|
+
animationIndex: number;
|
|
2413
|
+
protected IconSourceEnum: typeof IconSourceEnum;
|
|
2414
|
+
protected isExpanded: _angular_core.WritableSignal<boolean>;
|
|
2415
|
+
private _forceExpanded;
|
|
2416
|
+
private _hasAnimated;
|
|
2417
|
+
private modalService;
|
|
2418
|
+
private profileContextService;
|
|
2419
|
+
protected isDark: _angular_core.Signal<boolean>;
|
|
2420
|
+
protected isActuallyExpanded: _angular_core.Signal<boolean>;
|
|
2421
|
+
protected forceExpandedValue: _angular_core.Signal<boolean>;
|
|
2422
|
+
protected shouldAnimateExpand: _angular_core.Signal<boolean>;
|
|
2423
|
+
protected iconSize: _angular_core.Signal<"w-6 h-6" | "w-7 h-7">;
|
|
2424
|
+
protected relatedRecommendations: _angular_core.Signal<_jebgem_model.ProfileAnalysisRecommendationInterface[]>;
|
|
2425
|
+
protected statusLabel: _angular_core.Signal<string>;
|
|
2426
|
+
protected statusBadgeType: _angular_core.Signal<BadgeType>;
|
|
2427
|
+
protected statusIcon: _angular_core.Signal<IconObjectInterface$1>;
|
|
2428
|
+
protected insightsIcon: _angular_core.Signal<IconObjectInterface$1>;
|
|
2429
|
+
protected recommendationsIcon: _angular_core.Signal<IconObjectInterface$1>;
|
|
2430
|
+
protected relatedIcon: _angular_core.Signal<IconObjectInterface$1>;
|
|
2431
|
+
protected cardClasses: _angular_core.Signal<string>;
|
|
2432
|
+
protected iconClasses: _angular_core.Signal<string>;
|
|
2433
|
+
protected labelClasses: _angular_core.Signal<string>;
|
|
2434
|
+
protected descriptionClasses: _angular_core.Signal<"text-sm text-slate-400 mt-1 leading-relaxed" | "text-sm text-slate-600 mt-1 leading-relaxed">;
|
|
2435
|
+
protected metaLabelClasses: _angular_core.Signal<"text-xs font-medium text-slate-400 uppercase tracking-wide" | "text-xs font-medium text-slate-600 uppercase tracking-wide">;
|
|
2436
|
+
protected toolChipClasses: _angular_core.Signal<"px-2.5 py-1 rounded-md bg-emerald-500/10 text-emerald-300 text-xs border border-emerald-500/30" | "px-2.5 py-1 rounded-md bg-emerald-50 text-emerald-700 text-xs border border-emerald-200">;
|
|
2437
|
+
protected expandedSectionClasses: _angular_core.Signal<"p-4 rounded-lg bg-slate-700/30 border border-slate-600/30" | "p-4 rounded-lg bg-slate-50 border border-slate-200">;
|
|
2438
|
+
protected expandedIconClasses: _angular_core.Signal<"text-blue-400" | "text-blue-600">;
|
|
2439
|
+
protected expandedTitleClasses: _angular_core.Signal<"text-sm font-semibold text-white" | "text-sm font-semibold text-slate-900">;
|
|
2440
|
+
protected insightItemClasses: _angular_core.Signal<"text-sm text-slate-300 leading-relaxed flex" | "text-sm text-slate-600 leading-relaxed flex">;
|
|
2441
|
+
protected expandButtonClasses: _angular_core.Signal<"text-sm font-medium text-blue-400" | "text-sm font-medium text-blue-600">;
|
|
2442
|
+
protected chevronClasses: _angular_core.Signal<"text-blue-400" | "text-blue-600">;
|
|
2443
|
+
protected toggleExpanded(): void;
|
|
2444
|
+
protected openCompetitiveGapModal(): void;
|
|
2445
|
+
onExpandItem(event: CustomEvent): void;
|
|
2446
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FocusAreaDetailCardComponent, never>;
|
|
2447
|
+
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>;
|
|
2448
|
+
}
|
|
2449
|
+
|
|
2450
|
+
interface CompetitorContext {
|
|
2451
|
+
geographic?: ProfileItemInterface[];
|
|
2452
|
+
price?: ProfileItemInterface[];
|
|
2453
|
+
seasonal?: ProfileItemInterface[];
|
|
2454
|
+
audience?: ProfileItemInterface[];
|
|
2455
|
+
product?: ProfileItemInterface[];
|
|
2456
|
+
focusAreas?: ProfileItemInterface[];
|
|
2457
|
+
}
|
|
2458
|
+
|
|
2459
|
+
declare class CompetitorAnalysisCardComponent {
|
|
2460
|
+
item?: ProfileItemInterface;
|
|
2461
|
+
viewMode: ViewModeEnum;
|
|
2462
|
+
set forceExpanded(value: boolean);
|
|
2463
|
+
animationIndex: number;
|
|
2464
|
+
protected IconSourceEnum: typeof IconSourceEnum;
|
|
2465
|
+
protected isExpanded: _angular_core.WritableSignal<boolean>;
|
|
2466
|
+
private _forceExpanded;
|
|
2467
|
+
private _hasAnimated;
|
|
2468
|
+
private modalService;
|
|
2469
|
+
private profileContextService;
|
|
2470
|
+
private navigationService;
|
|
2471
|
+
protected isDark: _angular_core.Signal<boolean>;
|
|
2472
|
+
protected isActuallyExpanded: _angular_core.Signal<boolean>;
|
|
2473
|
+
protected forceExpandedValue: _angular_core.Signal<boolean>;
|
|
2474
|
+
protected shouldAnimateExpand: _angular_core.Signal<boolean>;
|
|
2475
|
+
protected iconSize: _angular_core.Signal<"w-6 h-6" | "w-7 h-7">;
|
|
2476
|
+
protected hasCompanyInfo: _angular_core.Signal<boolean>;
|
|
2477
|
+
protected competitorContext: _angular_core.Signal<CompetitorContext | undefined>;
|
|
2478
|
+
protected hasAnyContext: _angular_core.Signal<boolean>;
|
|
2479
|
+
protected threatLevelLabel: _angular_core.Signal<string>;
|
|
2480
|
+
protected threatLevelBadgeType: _angular_core.Signal<BadgeType>;
|
|
2481
|
+
protected threatLevelIcon: _angular_core.Signal<IconObjectInterface$1>;
|
|
2482
|
+
protected getStrengthArea(strength: any): string;
|
|
2483
|
+
protected getStrengthText(strength: any): string;
|
|
2484
|
+
protected getWeaknessArea(weakness: any): string;
|
|
2485
|
+
protected getWeaknessText(weakness: any): string;
|
|
2486
|
+
protected websiteIcon: _angular_core.Signal<IconObjectInterface$1>;
|
|
2487
|
+
protected strategyIcon: _angular_core.Signal<IconObjectInterface$1>;
|
|
2488
|
+
protected strengthIcon: _angular_core.Signal<IconObjectInterface$1>;
|
|
2489
|
+
protected weaknessIcon: _angular_core.Signal<IconObjectInterface$1>;
|
|
2490
|
+
protected advantageIcon: _angular_core.Signal<IconObjectInterface$1>;
|
|
2491
|
+
protected vulnerabilityIcon: _angular_core.Signal<IconObjectInterface$1>;
|
|
2492
|
+
protected relatedIcon: _angular_core.Signal<IconObjectInterface$1>;
|
|
2493
|
+
protected contextIcon: _angular_core.Signal<IconObjectInterface$1>;
|
|
2494
|
+
protected cardClasses: _angular_core.Signal<string>;
|
|
2495
|
+
protected iconClasses: _angular_core.Signal<string>;
|
|
2496
|
+
protected labelClasses: _angular_core.Signal<string>;
|
|
2497
|
+
protected descriptionClasses: _angular_core.Signal<"text-sm text-slate-400 mt-1 leading-relaxed" | "text-sm text-slate-600 mt-1 leading-relaxed">;
|
|
2498
|
+
protected infoBoxClasses: _angular_core.Signal<"p-2.5 rounded-lg bg-slate-700/30 border border-slate-600/30" | "p-2.5 rounded-lg bg-slate-50 border border-slate-200">;
|
|
2499
|
+
protected infoLabelClasses: _angular_core.Signal<"text-xs text-slate-400 mb-0.5" | "text-xs text-slate-600 mb-0.5">;
|
|
2500
|
+
protected infoValueClasses: _angular_core.Signal<"text-sm font-semibold text-white" | "text-sm font-semibold text-slate-900">;
|
|
2501
|
+
protected linkClasses: _angular_core.Signal<"text-sm text-blue-400 hover:text-blue-300 underline transition-colors" | "text-sm text-blue-600 hover:text-blue-700 underline transition-colors">;
|
|
2502
|
+
protected listItemClasses: _angular_core.Signal<"text-sm text-slate-200 leading-relaxed flex items-start" | "text-sm text-slate-600 leading-relaxed flex items-start">;
|
|
2503
|
+
protected expandedSectionClasses: _angular_core.Signal<"p-4 rounded-lg bg-slate-700/30 border border-slate-600/30" | "p-4 rounded-lg bg-slate-50 border border-slate-200">;
|
|
2504
|
+
protected expandedIconClasses: _angular_core.Signal<"text-blue-400" | "text-blue-600">;
|
|
2505
|
+
protected expandedTitleClasses: _angular_core.Signal<"text-sm font-semibold text-white" | "text-sm font-semibold text-slate-900">;
|
|
2506
|
+
protected expandedTextClasses: _angular_core.Signal<"text-sm text-slate-300 leading-relaxed" | "text-sm text-slate-600 leading-relaxed">;
|
|
2507
|
+
protected expandButtonClasses: _angular_core.Signal<"text-sm font-medium text-blue-400" | "text-sm font-medium text-blue-600">;
|
|
2508
|
+
protected chevronClasses: _angular_core.Signal<"text-blue-400" | "text-blue-600">;
|
|
2509
|
+
protected toggleExpanded(): void;
|
|
2510
|
+
protected navigateToItem(item: ProfileItemInterface): void;
|
|
2511
|
+
onExpandItem(event: CustomEvent): void;
|
|
2512
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CompetitorAnalysisCardComponent, never>;
|
|
2513
|
+
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>;
|
|
2514
|
+
}
|
|
2515
|
+
|
|
2516
|
+
declare class OpportunityHighlightBannerComponent {
|
|
2517
|
+
title: string;
|
|
2518
|
+
message?: string;
|
|
2519
|
+
isDark: boolean;
|
|
2520
|
+
bannerClick: EventEmitter<void>;
|
|
2521
|
+
protected iconSource: IconSourceEnum;
|
|
2522
|
+
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">;
|
|
2523
|
+
protected iconContainerClasses: _angular_core.Signal<"bg-amber-500/20 text-amber-400" | "bg-amber-100 text-amber-600">;
|
|
2524
|
+
protected titleClasses: _angular_core.Signal<"text-amber-300" | "text-amber-900">;
|
|
2525
|
+
protected badgeClasses: _angular_core.Signal<"bg-amber-500/30 text-amber-300" | "bg-amber-200 text-amber-800">;
|
|
2526
|
+
protected messageClasses: _angular_core.Signal<"text-amber-700" | "text-amber-400/90">;
|
|
2527
|
+
protected chevronClasses: _angular_core.Signal<"text-amber-600" | "text-amber-400">;
|
|
2528
|
+
handleClick(event: Event): void;
|
|
2529
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<OpportunityHighlightBannerComponent, never>;
|
|
2530
|
+
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>;
|
|
2531
|
+
}
|
|
2532
|
+
|
|
2533
|
+
declare class SkeletonCardBaseComponent {
|
|
2534
|
+
viewMode: ViewModeEnum;
|
|
2535
|
+
protected getCardClasses(): string;
|
|
2536
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkeletonCardBaseComponent, never>;
|
|
2537
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkeletonCardBaseComponent, "symphiq-skeleton-card-base", never, { "viewMode": { "alias": "viewMode"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
2538
|
+
}
|
|
2539
|
+
declare class SkeletonBarComponent {
|
|
2540
|
+
viewMode: ViewModeEnum;
|
|
2541
|
+
width: string;
|
|
2542
|
+
height: string;
|
|
2543
|
+
protected getClasses(): string;
|
|
2544
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkeletonBarComponent, never>;
|
|
2545
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkeletonBarComponent, "symphiq-skeleton-bar", never, { "viewMode": { "alias": "viewMode"; "required": false; }; "width": { "alias": "width"; "required": false; }; "height": { "alias": "height"; "required": false; }; }, {}, never, never, true, never>;
|
|
2546
|
+
}
|
|
2547
|
+
declare class SkeletonCircleComponent {
|
|
2548
|
+
viewMode: ViewModeEnum;
|
|
2549
|
+
size: string;
|
|
2550
|
+
protected getClasses(): string;
|
|
2551
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkeletonCircleComponent, never>;
|
|
2552
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkeletonCircleComponent, "symphiq-skeleton-circle", never, { "viewMode": { "alias": "viewMode"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
|
|
2553
|
+
}
|
|
2554
|
+
|
|
2555
|
+
declare class SkeletonCustomerSegmentCardComponent {
|
|
2556
|
+
viewMode: ViewModeEnum;
|
|
2557
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkeletonCustomerSegmentCardComponent, never>;
|
|
2558
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkeletonCustomerSegmentCardComponent, "symphiq-skeleton-customer-segment-card", never, { "viewMode": { "alias": "viewMode"; "required": false; }; }, {}, never, never, true, never>;
|
|
2559
|
+
}
|
|
2560
|
+
|
|
2561
|
+
declare class SkeletonProductCategoryCardComponent {
|
|
2562
|
+
viewMode: ViewModeEnum;
|
|
2563
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkeletonProductCategoryCardComponent, never>;
|
|
2564
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkeletonProductCategoryCardComponent, "symphiq-skeleton-product-category-card", never, { "viewMode": { "alias": "viewMode"; "required": false; }; }, {}, never, never, true, never>;
|
|
2565
|
+
}
|
|
2566
|
+
|
|
2567
|
+
declare class SkeletonGenericCardComponent {
|
|
2568
|
+
viewMode: ViewModeEnum;
|
|
2569
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkeletonGenericCardComponent, never>;
|
|
2570
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkeletonGenericCardComponent, "symphiq-skeleton-generic-card", never, { "viewMode": { "alias": "viewMode"; "required": false; }; }, {}, never, never, true, never>;
|
|
2571
|
+
}
|
|
2572
|
+
declare class SkeletonRegionCardComponent {
|
|
2573
|
+
viewMode: ViewModeEnum;
|
|
2574
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkeletonRegionCardComponent, never>;
|
|
2575
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkeletonRegionCardComponent, "symphiq-skeleton-region-card", never, { "viewMode": { "alias": "viewMode"; "required": false; }; }, {}, never, never, true, never>;
|
|
2576
|
+
}
|
|
2577
|
+
declare class SkeletonSeasonCardComponent {
|
|
2578
|
+
viewMode: ViewModeEnum;
|
|
2579
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkeletonSeasonCardComponent, never>;
|
|
2580
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkeletonSeasonCardComponent, "symphiq-skeleton-season-card", never, { "viewMode": { "alias": "viewMode"; "required": false; }; }, {}, never, never, true, never>;
|
|
2581
|
+
}
|
|
2582
|
+
declare class SkeletonPriceTierCardComponent {
|
|
2583
|
+
viewMode: ViewModeEnum;
|
|
2584
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkeletonPriceTierCardComponent, never>;
|
|
2585
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkeletonPriceTierCardComponent, "symphiq-skeleton-price-tier-card", never, { "viewMode": { "alias": "viewMode"; "required": false; }; }, {}, never, never, true, never>;
|
|
2586
|
+
}
|
|
2587
|
+
|
|
2588
|
+
declare class SkeletonFocusAreaCardComponent {
|
|
2589
|
+
viewMode: ViewModeEnum;
|
|
2590
|
+
protected isDark: _angular_core.Signal<boolean>;
|
|
2591
|
+
protected iconSkeletonClasses: _angular_core.Signal<"w-12 h-12 bg-slate-700" | "w-12 h-12 bg-slate-200">;
|
|
2592
|
+
protected titleSkeletonClasses: _angular_core.Signal<"bg-slate-200" | "bg-slate-700">;
|
|
2593
|
+
protected textSkeletonClasses: _angular_core.Signal<"bg-slate-200" | "bg-slate-700">;
|
|
2594
|
+
protected badgeSkeletonClasses: _angular_core.Signal<"bg-slate-200" | "bg-slate-700">;
|
|
2595
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkeletonFocusAreaCardComponent, never>;
|
|
2596
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkeletonFocusAreaCardComponent, "symphiq-skeleton-focus-area-card", never, { "viewMode": { "alias": "viewMode"; "required": false; }; }, {}, never, never, true, never>;
|
|
2597
|
+
}
|
|
2598
|
+
|
|
2599
|
+
declare class SkeletonCompetitorCardComponent {
|
|
2600
|
+
viewMode: ViewModeEnum;
|
|
2601
|
+
protected isDark: _angular_core.Signal<boolean>;
|
|
2602
|
+
protected iconSkeletonClasses: _angular_core.Signal<"w-12 h-12 bg-slate-700" | "w-12 h-12 bg-slate-200">;
|
|
2603
|
+
protected titleSkeletonClasses: _angular_core.Signal<"bg-slate-200" | "bg-slate-700">;
|
|
2604
|
+
protected textSkeletonClasses: _angular_core.Signal<"bg-slate-200" | "bg-slate-700">;
|
|
2605
|
+
protected boxSkeletonClasses: _angular_core.Signal<"bg-slate-200" | "bg-slate-700">;
|
|
2606
|
+
protected badgeSkeletonClasses: _angular_core.Signal<"bg-slate-200" | "bg-slate-700">;
|
|
2607
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkeletonCompetitorCardComponent, never>;
|
|
2608
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkeletonCompetitorCardComponent, "symphiq-skeleton-competitor-card", never, { "viewMode": { "alias": "viewMode"; "required": false; }; }, {}, never, never, true, never>;
|
|
2609
|
+
}
|
|
2610
|
+
|
|
1704
2611
|
declare const FUNNEL_ANALYSIS: FunnelAnalysisInterface;
|
|
1705
2612
|
|
|
2613
|
+
declare const BUSINESS_PROFILE: ProfileInterface;
|
|
2614
|
+
declare const RCC_BUSINESS_PROFILE: ProfileInterface;
|
|
2615
|
+
declare const HAMMETON_BUSINESS_PROFILE: ProfileInterface;
|
|
2616
|
+
|
|
1706
2617
|
/**
|
|
1707
2618
|
* Shared Theme Color Utilities
|
|
1708
2619
|
*
|
|
@@ -1812,6 +2723,23 @@ declare function getStatusDotClasses(status: string, viewMode: ViewModeEnum): st
|
|
|
1812
2723
|
*/
|
|
1813
2724
|
declare function getTrendClasses(trendPercent: number, viewMode: ViewModeEnum): string;
|
|
1814
2725
|
|
|
1815
|
-
|
|
1816
|
-
|
|
2726
|
+
/**
|
|
2727
|
+
* Utility for generating consistent colors for dynamic category badges
|
|
2728
|
+
*/
|
|
2729
|
+
interface CategoryColorPalette {
|
|
2730
|
+
light: string;
|
|
2731
|
+
dark: string;
|
|
2732
|
+
}
|
|
2733
|
+
/**
|
|
2734
|
+
* Gets a consistent color palette for a given category
|
|
2735
|
+
* Same category will always return the same color
|
|
2736
|
+
*/
|
|
2737
|
+
declare function getCategoryColor(category: string): CategoryColorPalette;
|
|
2738
|
+
/**
|
|
2739
|
+
* Gets the appropriate color classes for a category badge
|
|
2740
|
+
*/
|
|
2741
|
+
declare function getCategoryBadgeClasses(category: string, isDark: boolean): string;
|
|
2742
|
+
|
|
2743
|
+
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 };
|
|
2744
|
+
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 };
|
|
1817
2745
|
//# sourceMappingURL=index.d.ts.map
|