@eric-emg/symphiq-components 1.2.118 → 1.2.120
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 +841 -678
- package/fesm2022/symphiq-components.mjs.map +1 -1
- package/index.d.ts +56 -43
- package/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -51349,6 +51349,8 @@ class SectionNavigationComponent {
|
|
|
51349
51349
|
this.sections = [];
|
|
51350
51350
|
this.viewMode = ViewModeEnum.LIGHT;
|
|
51351
51351
|
this.embedded = false;
|
|
51352
|
+
this.parentHeaderOffset = 0;
|
|
51353
|
+
this.HEADER_OFFSET = 80;
|
|
51352
51354
|
this.activeSection = signal(0, ...(ngDevMode ? [{ debugName: "activeSection" }] : []));
|
|
51353
51355
|
}
|
|
51354
51356
|
ngOnInit() {
|
|
@@ -51399,14 +51401,33 @@ class SectionNavigationComponent {
|
|
|
51399
51401
|
scrollToSection(sectionId) {
|
|
51400
51402
|
const element = document.getElementById(`section-${sectionId}`);
|
|
51401
51403
|
if (element) {
|
|
51402
|
-
|
|
51404
|
+
this.scrollToElement(element);
|
|
51405
|
+
}
|
|
51406
|
+
}
|
|
51407
|
+
getScrollOffset() {
|
|
51408
|
+
return this.HEADER_OFFSET + this.parentHeaderOffset;
|
|
51409
|
+
}
|
|
51410
|
+
scrollToElement(element) {
|
|
51411
|
+
const offset = this.getScrollOffset();
|
|
51412
|
+
if (this.embedded && this.scrollElement) {
|
|
51413
|
+
const scrollContainer = this.scrollElement;
|
|
51414
|
+
const containerRect = scrollContainer.getBoundingClientRect();
|
|
51415
|
+
const elementRect = element.getBoundingClientRect();
|
|
51416
|
+
const relativeTop = elementRect.top - containerRect.top;
|
|
51417
|
+
const targetScrollTop = scrollContainer.scrollTop + relativeTop - offset;
|
|
51418
|
+
scrollContainer.scrollTo({ top: targetScrollTop, behavior: 'smooth' });
|
|
51419
|
+
}
|
|
51420
|
+
else {
|
|
51421
|
+
const elementRect = element.getBoundingClientRect();
|
|
51422
|
+
const targetScrollTop = window.scrollY + elementRect.top - offset;
|
|
51423
|
+
window.scrollTo({ top: targetScrollTop, behavior: 'smooth' });
|
|
51403
51424
|
}
|
|
51404
51425
|
}
|
|
51405
51426
|
trackBySectionId(index, section) {
|
|
51406
51427
|
return section.id || index;
|
|
51407
51428
|
}
|
|
51408
51429
|
static { this.ɵfac = function SectionNavigationComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SectionNavigationComponent)(); }; }
|
|
51409
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SectionNavigationComponent, selectors: [["symphiq-section-navigation"]], inputs: { sections: "sections", viewMode: "viewMode", embedded: "embedded" }, decls: 3, vars: 3, consts: [[3, "ngClass"], [1, "flex", "flex-col", "gap-4"], ["type", "button", 3, "ngClass", "libSymphiqTooltip", "tooltipPosition", "click", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["type", "button", 3, "click", "ngClass", "libSymphiqTooltip", "tooltipPosition"]], template: function SectionNavigationComponent_Template(rf, ctx) { if (rf & 1) {
|
|
51430
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SectionNavigationComponent, selectors: [["symphiq-section-navigation"]], inputs: { sections: "sections", viewMode: "viewMode", embedded: "embedded", scrollElement: "scrollElement", parentHeaderOffset: "parentHeaderOffset" }, decls: 3, vars: 3, consts: [[3, "ngClass"], [1, "flex", "flex-col", "gap-4"], ["type", "button", 3, "ngClass", "libSymphiqTooltip", "tooltipPosition", "click", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["type", "button", 3, "click", "ngClass", "libSymphiqTooltip", "tooltipPosition"]], template: function SectionNavigationComponent_Template(rf, ctx) { if (rf & 1) {
|
|
51410
51431
|
i0.ɵɵelementStart(0, "nav", 0)(1, "div", 1);
|
|
51411
51432
|
i0.ɵɵtemplate(2, SectionNavigationComponent_button_2_Template, 2, 5, "button", 2);
|
|
51412
51433
|
i0.ɵɵelementEnd()();
|
|
@@ -51423,22 +51444,22 @@ class SectionNavigationComponent {
|
|
|
51423
51444
|
standalone: true,
|
|
51424
51445
|
imports: [CommonModule, TooltipDirective],
|
|
51425
51446
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
51426
|
-
template: `
|
|
51427
|
-
<nav [ngClass]="getNavClasses()">
|
|
51428
|
-
<div class="flex flex-col gap-4">
|
|
51429
|
-
<button
|
|
51430
|
-
*ngFor="let section of sections; let i = index; trackBy: trackBySectionId"
|
|
51431
|
-
type="button"
|
|
51432
|
-
[ngClass]="getDotClasses(i)"
|
|
51433
|
-
(click)="scrollToSection(section.id!)"
|
|
51434
|
-
[attr.aria-label]="'Navigate to ' + section.title"
|
|
51435
|
-
[libSymphiqTooltip]="section.title"
|
|
51436
|
-
[tooltipPosition]="'left'"
|
|
51437
|
-
>
|
|
51438
|
-
<div [ngClass]="getDotInnerClasses(i)"></div>
|
|
51439
|
-
</button>
|
|
51440
|
-
</div>
|
|
51441
|
-
</nav>
|
|
51447
|
+
template: `
|
|
51448
|
+
<nav [ngClass]="getNavClasses()">
|
|
51449
|
+
<div class="flex flex-col gap-4">
|
|
51450
|
+
<button
|
|
51451
|
+
*ngFor="let section of sections; let i = index; trackBy: trackBySectionId"
|
|
51452
|
+
type="button"
|
|
51453
|
+
[ngClass]="getDotClasses(i)"
|
|
51454
|
+
(click)="scrollToSection(section.id!)"
|
|
51455
|
+
[attr.aria-label]="'Navigate to ' + section.title"
|
|
51456
|
+
[libSymphiqTooltip]="section.title"
|
|
51457
|
+
[tooltipPosition]="'left'"
|
|
51458
|
+
>
|
|
51459
|
+
<div [ngClass]="getDotInnerClasses(i)"></div>
|
|
51460
|
+
</button>
|
|
51461
|
+
</div>
|
|
51462
|
+
</nav>
|
|
51442
51463
|
`
|
|
51443
51464
|
}]
|
|
51444
51465
|
}], null, { sections: [{
|
|
@@ -51447,6 +51468,10 @@ class SectionNavigationComponent {
|
|
|
51447
51468
|
type: Input
|
|
51448
51469
|
}], embedded: [{
|
|
51449
51470
|
type: Input
|
|
51471
|
+
}], scrollElement: [{
|
|
51472
|
+
type: Input
|
|
51473
|
+
}], parentHeaderOffset: [{
|
|
51474
|
+
type: Input
|
|
51450
51475
|
}] }); })();
|
|
51451
51476
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SectionNavigationComponent, { className: "SectionNavigationComponent", filePath: "lib/components/business-analysis-dashboard/section-navigation.component.ts", lineNumber: 29 }); })();
|
|
51452
51477
|
|
|
@@ -53617,13 +53642,13 @@ function SymphiqBusinessAnalysisDashboardComponent_Conditional_43_Template(rf, c
|
|
|
53617
53642
|
i0.ɵɵelement(0, "symphiq-section-navigation", 20);
|
|
53618
53643
|
} if (rf & 2) {
|
|
53619
53644
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
53620
|
-
i0.ɵɵproperty("sections", ctx_r0.sections())("viewMode", ctx_r0.viewMode())("embedded", ctx_r0.embedded());
|
|
53645
|
+
i0.ɵɵproperty("sections", ctx_r0.sections())("viewMode", ctx_r0.viewMode())("embedded", ctx_r0.embedded())("scrollElement", ctx_r0.scrollElement() ?? undefined);
|
|
53621
53646
|
} }
|
|
53622
53647
|
function SymphiqBusinessAnalysisDashboardComponent_Conditional_44_Template(rf, ctx) { if (rf & 1) {
|
|
53623
53648
|
i0.ɵɵelement(0, "symphiq-floating-toc", 20);
|
|
53624
53649
|
} if (rf & 2) {
|
|
53625
53650
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
53626
|
-
i0.ɵɵproperty("sections", ctx_r0.sections())("viewMode", ctx_r0.viewMode())("embedded", ctx_r0.embedded());
|
|
53651
|
+
i0.ɵɵproperty("sections", ctx_r0.sections())("viewMode", ctx_r0.viewMode())("embedded", ctx_r0.embedded())("scrollElement", ctx_r0.scrollElement() ?? undefined);
|
|
53627
53652
|
} }
|
|
53628
53653
|
function SymphiqBusinessAnalysisDashboardComponent_Conditional_46_Template(rf, ctx) { if (rf & 1) {
|
|
53629
53654
|
i0.ɵɵelementStart(0, "div", 0);
|
|
@@ -54113,7 +54138,7 @@ class SymphiqBusinessAnalysisDashboardComponent {
|
|
|
54113
54138
|
static { this.ɵfac = function SymphiqBusinessAnalysisDashboardComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SymphiqBusinessAnalysisDashboardComponent)(); }; }
|
|
54114
54139
|
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SymphiqBusinessAnalysisDashboardComponent, selectors: [["symphiq-business-analysis-dashboard"]], hostBindings: function SymphiqBusinessAnalysisDashboardComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
54115
54140
|
i0.ɵɵlistener("scroll", function SymphiqBusinessAnalysisDashboardComponent_scroll_HostBindingHandler($event) { return ctx.onScroll($event); }, i0.ɵɵresolveWindow)("keydown", function SymphiqBusinessAnalysisDashboardComponent_keydown_HostBindingHandler($event) { return ctx.handleKeyDown($event); }, i0.ɵɵresolveDocument);
|
|
54116
|
-
} }, inputs: { embedded: [1, "embedded"], profile: [1, "profile"], parentHeaderOffset: [1, "parentHeaderOffset"], requestedByUser: [1, "requestedByUser"], viewMode: [1, "viewMode"], scrollEvent: [1, "scrollEvent"], scrollElement: [1, "scrollElement"], isLoading: [1, "isLoading"], isOnboarded: [1, "isOnboarded"] }, decls: 51, vars: 67, consts: [[3, "ngClass"], [1, "h-full", "transition-all", "duration-200", "ease-out", 3, "ngClass"], [1, "relative", "z-[51]"], [1, "sticky", "top-0", "z-50", 3, "ngClass"], [1, "transition-all", "duration-300", "ease-in-out", "overflow-hidden"], [1, "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-8"], [1, "flex", "items-center", "justify-between"], [1, "flex", "items-center", "gap-2"], [3, "searchClick", "isLightMode"], ["type", "button", 1, "cursor-pointer", "flex", "items-center", "gap-2", "px-3", "py-1.5", "rounded-lg", "text-xs", "font-medium", "transition-all", "duration-200", "hover:scale-105", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M15 12a3 3 0 11-6 0 3 3 0 016 0z"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"], [1, "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-3"], [1, "flex-1", "min-w-0", "mr-4"], [1, "flex", "items-center", "gap-4"], [1, "flex", "items-center", "gap-2", "text-sm", "flex-shrink-0"], [3, "searchClick", "isLightMode", "minimized"], ["type", "button", 1, "cursor-pointer", "flex", "items-center", "gap-2", "px-2", "py-1.5", "rounded-lg", "text-xs", "font-medium", "transition-all", "duration-200", "hover:scale-105", 3, "click", "ngClass"], [1, "relative"], [3, "sections", "viewMode", "embedded"], [3, "viewMode", "embedded"], [3, "viewInContextRequested", "isLightMode"], [3, "searchChange", "resultSelected", "close", "isLightMode", "isOpen", "searchQuery", "results", "hasResults", "selectedIndex", "placeholder"], [3, "close", "modeSelected", "isOpen", "currentMode", "viewMode", "isLoading"], [1, "transition-opacity", "duration-300", 3, "ngClass"], [3, "viewMode", "currentStepId", "showNextStepAction"], [1, "mb-8"], [3, "viewMode", "businessName", "isOnboarded"], [3, "viewMoreClick", "recommendations", "viewMode"], [3, "sections", "viewMode"], [3, "section", "viewMode", "forceExpanded"], [1, "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8"], [3, "viewMode", "subsections"]], template: function SymphiqBusinessAnalysisDashboardComponent_Template(rf, ctx) { if (rf & 1) {
|
|
54141
|
+
} }, inputs: { embedded: [1, "embedded"], profile: [1, "profile"], parentHeaderOffset: [1, "parentHeaderOffset"], requestedByUser: [1, "requestedByUser"], viewMode: [1, "viewMode"], scrollEvent: [1, "scrollEvent"], scrollElement: [1, "scrollElement"], isLoading: [1, "isLoading"], isOnboarded: [1, "isOnboarded"] }, decls: 51, vars: 67, consts: [[3, "ngClass"], [1, "h-full", "transition-all", "duration-200", "ease-out", 3, "ngClass"], [1, "relative", "z-[51]"], [1, "sticky", "top-0", "z-50", 3, "ngClass"], [1, "transition-all", "duration-300", "ease-in-out", "overflow-hidden"], [1, "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-8"], [1, "flex", "items-center", "justify-between"], [1, "flex", "items-center", "gap-2"], [3, "searchClick", "isLightMode"], ["type", "button", 1, "cursor-pointer", "flex", "items-center", "gap-2", "px-3", "py-1.5", "rounded-lg", "text-xs", "font-medium", "transition-all", "duration-200", "hover:scale-105", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M15 12a3 3 0 11-6 0 3 3 0 016 0z"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"], [1, "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-3"], [1, "flex-1", "min-w-0", "mr-4"], [1, "flex", "items-center", "gap-4"], [1, "flex", "items-center", "gap-2", "text-sm", "flex-shrink-0"], [3, "searchClick", "isLightMode", "minimized"], ["type", "button", 1, "cursor-pointer", "flex", "items-center", "gap-2", "px-2", "py-1.5", "rounded-lg", "text-xs", "font-medium", "transition-all", "duration-200", "hover:scale-105", 3, "click", "ngClass"], [1, "relative"], [3, "sections", "viewMode", "embedded", "scrollElement"], [3, "viewMode", "embedded"], [3, "viewInContextRequested", "isLightMode"], [3, "searchChange", "resultSelected", "close", "isLightMode", "isOpen", "searchQuery", "results", "hasResults", "selectedIndex", "placeholder"], [3, "close", "modeSelected", "isOpen", "currentMode", "viewMode", "isLoading"], [1, "transition-opacity", "duration-300", 3, "ngClass"], [3, "viewMode", "currentStepId", "showNextStepAction"], [1, "mb-8"], [3, "viewMode", "businessName", "isOnboarded"], [3, "viewMoreClick", "recommendations", "viewMode"], [3, "sections", "viewMode"], [3, "section", "viewMode", "forceExpanded"], [1, "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8"], [3, "viewMode", "subsections"]], template: function SymphiqBusinessAnalysisDashboardComponent_Template(rf, ctx) { if (rf & 1) {
|
|
54117
54142
|
i0.ɵɵelementStart(0, "div", 0)(1, "div");
|
|
54118
54143
|
i0.ɵɵelement(2, "div", 1);
|
|
54119
54144
|
i0.ɵɵelementEnd();
|
|
@@ -54157,8 +54182,8 @@ class SymphiqBusinessAnalysisDashboardComponent {
|
|
|
54157
54182
|
i0.ɵɵelementStart(40, "main", 19);
|
|
54158
54183
|
i0.ɵɵconditionalCreate(41, SymphiqBusinessAnalysisDashboardComponent_Conditional_41_Template, 8, 8)(42, SymphiqBusinessAnalysisDashboardComponent_Conditional_42_Template, 2, 0);
|
|
54159
54184
|
i0.ɵɵelementEnd();
|
|
54160
|
-
i0.ɵɵconditionalCreate(43, SymphiqBusinessAnalysisDashboardComponent_Conditional_43_Template, 1,
|
|
54161
|
-
i0.ɵɵconditionalCreate(44, SymphiqBusinessAnalysisDashboardComponent_Conditional_44_Template, 1,
|
|
54185
|
+
i0.ɵɵconditionalCreate(43, SymphiqBusinessAnalysisDashboardComponent_Conditional_43_Template, 1, 4, "symphiq-section-navigation", 20);
|
|
54186
|
+
i0.ɵɵconditionalCreate(44, SymphiqBusinessAnalysisDashboardComponent_Conditional_44_Template, 1, 4, "symphiq-floating-toc", 20);
|
|
54162
54187
|
i0.ɵɵelement(45, "symphiq-floating-back-button", 21);
|
|
54163
54188
|
i0.ɵɵelementEnd();
|
|
54164
54189
|
i0.ɵɵconditionalCreate(46, SymphiqBusinessAnalysisDashboardComponent_Conditional_46_Template, 2, 2, "div", 0);
|
|
@@ -54417,6 +54442,7 @@ class SymphiqBusinessAnalysisDashboardComponent {
|
|
|
54417
54442
|
[sections]="sections()"
|
|
54418
54443
|
[viewMode]="viewMode()"
|
|
54419
54444
|
[embedded]="embedded()"
|
|
54445
|
+
[scrollElement]="scrollElement() ?? undefined"
|
|
54420
54446
|
/>
|
|
54421
54447
|
}
|
|
54422
54448
|
|
|
@@ -54425,6 +54451,7 @@ class SymphiqBusinessAnalysisDashboardComponent {
|
|
|
54425
54451
|
[sections]="sections()"
|
|
54426
54452
|
[viewMode]="viewMode()"
|
|
54427
54453
|
[embedded]="embedded()"
|
|
54454
|
+
[scrollElement]="scrollElement() ?? undefined"
|
|
54428
54455
|
/>
|
|
54429
54456
|
}
|
|
54430
54457
|
|
|
@@ -54475,13 +54502,32 @@ class SymphiqBusinessAnalysisDashboardComponent {
|
|
|
54475
54502
|
type: HostListener,
|
|
54476
54503
|
args: ['document:keydown', ['$event']]
|
|
54477
54504
|
}] }); })();
|
|
54478
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqBusinessAnalysisDashboardComponent, { className: "SymphiqBusinessAnalysisDashboardComponent", filePath: "lib/components/business-analysis-dashboard/symphiq-business-analysis-dashboard.component.ts", lineNumber:
|
|
54505
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqBusinessAnalysisDashboardComponent, { className: "SymphiqBusinessAnalysisDashboardComponent", filePath: "lib/components/business-analysis-dashboard/symphiq-business-analysis-dashboard.component.ts", lineNumber: 303 }); })();
|
|
54479
54506
|
|
|
54480
|
-
function
|
|
54481
|
-
i0.ɵɵ
|
|
54507
|
+
function DashboardHeaderComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
54508
|
+
i0.ɵɵelement(0, "div", 6);
|
|
54509
|
+
} }
|
|
54510
|
+
function DashboardHeaderComponent_Conditional_20_Template(rf, ctx) { if (rf & 1) {
|
|
54511
|
+
i0.ɵɵelementStart(0, "div", 14)(1, "div", 15);
|
|
54512
|
+
i0.ɵɵtext(2, "Generated At");
|
|
54513
|
+
i0.ɵɵelementEnd();
|
|
54514
|
+
i0.ɵɵelementStart(3, "div", 16);
|
|
54515
|
+
i0.ɵɵtext(4);
|
|
54516
|
+
i0.ɵɵelementEnd()();
|
|
54517
|
+
} if (rf & 2) {
|
|
54518
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
54519
|
+
i0.ɵɵadvance();
|
|
54520
|
+
i0.ɵɵclassMap(ctx_r0.metaLabelClass());
|
|
54521
|
+
i0.ɵɵadvance(2);
|
|
54522
|
+
i0.ɵɵclassMap(ctx_r0.headerTitleClass());
|
|
54523
|
+
i0.ɵɵadvance();
|
|
54524
|
+
i0.ɵɵtextInterpolate(ctx_r0.formattedGeneratedDate());
|
|
54525
|
+
} }
|
|
54526
|
+
function DashboardHeaderComponent_Conditional_33_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
54527
|
+
i0.ɵɵelementStart(0, "span", 5);
|
|
54482
54528
|
i0.ɵɵtext(1, "\u203A");
|
|
54483
54529
|
i0.ɵɵelementEnd();
|
|
54484
|
-
i0.ɵɵelementStart(2, "span",
|
|
54530
|
+
i0.ɵɵelementStart(2, "span", 5);
|
|
54485
54531
|
i0.ɵɵtext(3);
|
|
54486
54532
|
i0.ɵɵelementEnd();
|
|
54487
54533
|
} if (rf & 2) {
|
|
@@ -54492,11 +54538,11 @@ function DashboardHeaderComponent_Conditional_24_Conditional_3_Template(rf, ctx)
|
|
|
54492
54538
|
i0.ɵɵadvance();
|
|
54493
54539
|
i0.ɵɵtextInterpolate1(" ", ctx_r0.currentSubsection, " ");
|
|
54494
54540
|
} }
|
|
54495
|
-
function
|
|
54496
|
-
i0.ɵɵelementStart(0, "div",
|
|
54541
|
+
function DashboardHeaderComponent_Conditional_33_Template(rf, ctx) { if (rf & 1) {
|
|
54542
|
+
i0.ɵɵelementStart(0, "div", 20)(1, "span", 5);
|
|
54497
54543
|
i0.ɵɵtext(2);
|
|
54498
54544
|
i0.ɵɵelementEnd();
|
|
54499
|
-
i0.ɵɵconditionalCreate(3,
|
|
54545
|
+
i0.ɵɵconditionalCreate(3, DashboardHeaderComponent_Conditional_33_Conditional_3_Template, 4, 3);
|
|
54500
54546
|
i0.ɵɵelementEnd();
|
|
54501
54547
|
} if (rf & 2) {
|
|
54502
54548
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
@@ -54509,6 +54555,8 @@ function DashboardHeaderComponent_Conditional_24_Template(rf, ctx) { if (rf & 1)
|
|
|
54509
54555
|
} }
|
|
54510
54556
|
class DashboardHeaderComponent {
|
|
54511
54557
|
constructor() {
|
|
54558
|
+
this.requestedByUser = input(...(ngDevMode ? [undefined, { debugName: "requestedByUser" }] : []));
|
|
54559
|
+
this.createdDate = input(...(ngDevMode ? [undefined, { debugName: "createdDate" }] : []));
|
|
54512
54560
|
this.title = '';
|
|
54513
54561
|
this.subtitle = '';
|
|
54514
54562
|
this.viewMode = ViewModeEnum.LIGHT;
|
|
@@ -54517,6 +54565,17 @@ class DashboardHeaderComponent {
|
|
|
54517
54565
|
this.viewModeClick = new EventEmitter();
|
|
54518
54566
|
this.headerScrollService = inject(HeaderScrollService);
|
|
54519
54567
|
this.isLightMode = computed(() => this.viewMode === ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "isLightMode" }] : []));
|
|
54568
|
+
this.dateFormatCache = new StringMemoizeCache();
|
|
54569
|
+
this.formattedGeneratedDate = computed(() => {
|
|
54570
|
+
let formatted = '';
|
|
54571
|
+
const createdDate = this.createdDate();
|
|
54572
|
+
if (createdDate) {
|
|
54573
|
+
formatted = this.formatDate(createdDate.toISOString());
|
|
54574
|
+
}
|
|
54575
|
+
return formatted;
|
|
54576
|
+
}, ...(ngDevMode ? [{ debugName: "formattedGeneratedDate" }] : []));
|
|
54577
|
+
this.headerTitleClass = computed(() => this.isLightMode() ? 'text-slate-900' : 'text-white', ...(ngDevMode ? [{ debugName: "headerTitleClass" }] : []));
|
|
54578
|
+
this.metaLabelClass = computed(() => this.isLightMode() ? 'text-slate-600' : 'text-slate-500', ...(ngDevMode ? [{ debugName: "metaLabelClass" }] : []));
|
|
54520
54579
|
}
|
|
54521
54580
|
onSearchClick() {
|
|
54522
54581
|
this.searchClick.emit();
|
|
@@ -54524,6 +54583,14 @@ class DashboardHeaderComponent {
|
|
|
54524
54583
|
onViewModeClick() {
|
|
54525
54584
|
this.viewModeClick.emit();
|
|
54526
54585
|
}
|
|
54586
|
+
formatDate(dateString) {
|
|
54587
|
+
// Cache date formatting operations
|
|
54588
|
+
return this.dateFormatCache.get(dateString, (date) => new Date(date).toLocaleDateString('en-US', {
|
|
54589
|
+
year: 'numeric',
|
|
54590
|
+
month: 'long',
|
|
54591
|
+
day: 'numeric',
|
|
54592
|
+
}));
|
|
54593
|
+
}
|
|
54527
54594
|
getHeaderClasses() {
|
|
54528
54595
|
return this.isLightMode()
|
|
54529
54596
|
? 'bg-white/95 backdrop-blur-md shadow-sm border-b border-slate-200'
|
|
@@ -54550,51 +54617,64 @@ class DashboardHeaderComponent {
|
|
|
54550
54617
|
: 'bg-slate-800 hover:bg-slate-700 text-slate-300 border border-slate-700';
|
|
54551
54618
|
}
|
|
54552
54619
|
static { this.ɵfac = function DashboardHeaderComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || DashboardHeaderComponent)(); }; }
|
|
54553
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DashboardHeaderComponent, selectors: [["symphiq-dashboard-header"]], inputs: { title: "title", subtitle: "subtitle", viewMode: "viewMode", viewModeLabel: "viewModeLabel", currentSection: "currentSection", currentSubsection: "currentSubsection" }, outputs: { searchClick: "searchClick", viewModeClick: "viewModeClick" }, decls:
|
|
54554
|
-
i0.ɵɵelementStart(0, "header", 0)(1, "div", 1)(2, "div", 2)(3, "div", 3)(4, "div")(5, "
|
|
54555
|
-
i0.ɵɵtext(
|
|
54620
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DashboardHeaderComponent, selectors: [["symphiq-dashboard-header"]], inputs: { requestedByUser: [1, "requestedByUser"], createdDate: [1, "createdDate"], title: "title", subtitle: "subtitle", viewMode: "viewMode", viewModeLabel: "viewModeLabel", currentSection: "currentSection", currentSubsection: "currentSubsection", isLoading: "isLoading" }, outputs: { searchClick: "searchClick", viewModeClick: "viewModeClick" }, decls: 39, vars: 46, consts: [[1, "sticky", "top-0", "z-50", 3, "ngClass"], [1, "transition-all", "duration-300", "ease-in-out", "overflow-hidden"], [1, "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-8"], [1, "flex", "items-center", "justify-between"], [1, "flex", "items-center", "gap-3"], [3, "ngClass"], ["title", "Refreshing data...", 1, "animate-spin", "w-4", "h-4", "border-2", "border-blue-500/30", "border-t-blue-500", "rounded-full"], [1, "flex", "items-center", "gap-2"], [3, "searchClick", "isLightMode"], ["type", "button", 1, "cursor-pointer", "flex", "items-center", "gap-2", "px-3", "py-1.5", "rounded-lg", "text-xs", "font-medium", "transition-all", "duration-200", "hover:scale-105", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M15 12a3 3 0 11-6 0 3 3 0 016 0z"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"], [1, "flex", "flex-col", "gap-4", "min-w-[180px]"], [1, "text-left", "sm:text-right"], [1, "text-xs", "sm:text-sm"], [1, "text-sm", "sm:text-base", "font-medium"], [1, "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-3"], [1, "flex-1", "min-w-0", "mr-4"], [1, "flex", "items-center", "gap-4"], [1, "flex", "items-center", "gap-2", "text-sm", "flex-shrink-0"], [3, "searchClick", "isLightMode", "minimized"], ["type", "button", 1, "cursor-pointer", "flex", "items-center", "gap-2", "px-2", "py-1.5", "rounded-lg", "text-xs", "font-medium", "transition-all", "duration-200", "hover:scale-105", 3, "click", "ngClass"]], template: function DashboardHeaderComponent_Template(rf, ctx) { if (rf & 1) {
|
|
54621
|
+
i0.ɵɵelementStart(0, "header", 0)(1, "div", 1)(2, "div", 2)(3, "div", 3)(4, "div")(5, "div", 4)(6, "h1", 5);
|
|
54622
|
+
i0.ɵɵtext(7);
|
|
54556
54623
|
i0.ɵɵelementEnd();
|
|
54557
|
-
i0.ɵɵ
|
|
54558
|
-
i0.ɵɵ
|
|
54624
|
+
i0.ɵɵconditionalCreate(8, DashboardHeaderComponent_Conditional_8_Template, 1, 0, "div", 6);
|
|
54625
|
+
i0.ɵɵelementEnd();
|
|
54626
|
+
i0.ɵɵelementStart(9, "p", 5);
|
|
54627
|
+
i0.ɵɵtext(10);
|
|
54559
54628
|
i0.ɵɵelementEnd()();
|
|
54560
|
-
i0.ɵɵelementStart(
|
|
54561
|
-
i0.ɵɵlistener("searchClick", function
|
|
54629
|
+
i0.ɵɵelementStart(11, "div", 7)(12, "symphiq-search-button", 8);
|
|
54630
|
+
i0.ɵɵlistener("searchClick", function DashboardHeaderComponent_Template_symphiq_search_button_searchClick_12_listener() { return ctx.onSearchClick(); });
|
|
54562
54631
|
i0.ɵɵelementEnd();
|
|
54563
|
-
i0.ɵɵelementStart(
|
|
54564
|
-
i0.ɵɵlistener("click", function
|
|
54632
|
+
i0.ɵɵelementStart(13, "button", 9);
|
|
54633
|
+
i0.ɵɵlistener("click", function DashboardHeaderComponent_Template_button_click_13_listener() { return ctx.onViewModeClick(); });
|
|
54565
54634
|
i0.ɵɵnamespaceSVG();
|
|
54566
|
-
i0.ɵɵelementStart(
|
|
54567
|
-
i0.ɵɵelement(
|
|
54635
|
+
i0.ɵɵelementStart(14, "svg", 10);
|
|
54636
|
+
i0.ɵɵelement(15, "path", 11)(16, "path", 12);
|
|
54568
54637
|
i0.ɵɵelementEnd();
|
|
54569
54638
|
i0.ɵɵnamespaceHTML();
|
|
54570
|
-
i0.ɵɵelementStart(
|
|
54571
|
-
i0.ɵɵtext(
|
|
54639
|
+
i0.ɵɵelementStart(17, "span");
|
|
54640
|
+
i0.ɵɵtext(18);
|
|
54641
|
+
i0.ɵɵelementEnd()()();
|
|
54642
|
+
i0.ɵɵelementStart(19, "div", 13);
|
|
54643
|
+
i0.ɵɵconditionalCreate(20, DashboardHeaderComponent_Conditional_20_Template, 5, 5, "div", 14);
|
|
54644
|
+
i0.ɵɵelementStart(21, "div", 14)(22, "div", 15);
|
|
54645
|
+
i0.ɵɵtext(23, "Requested by");
|
|
54646
|
+
i0.ɵɵelementEnd();
|
|
54647
|
+
i0.ɵɵelementStart(24, "div", 16);
|
|
54648
|
+
i0.ɵɵtext(25);
|
|
54572
54649
|
i0.ɵɵelementEnd()()()()()();
|
|
54573
|
-
i0.ɵɵelementStart(
|
|
54574
|
-
i0.ɵɵtext(
|
|
54650
|
+
i0.ɵɵelementStart(26, "div", 1)(27, "div", 17)(28, "div", 3)(29, "div", 18)(30, "h1", 5);
|
|
54651
|
+
i0.ɵɵtext(31);
|
|
54575
54652
|
i0.ɵɵelementEnd()();
|
|
54576
|
-
i0.ɵɵelementStart(
|
|
54577
|
-
i0.ɵɵconditionalCreate(
|
|
54578
|
-
i0.ɵɵelementStart(
|
|
54579
|
-
i0.ɵɵlistener("searchClick", function
|
|
54653
|
+
i0.ɵɵelementStart(32, "div", 19);
|
|
54654
|
+
i0.ɵɵconditionalCreate(33, DashboardHeaderComponent_Conditional_33_Template, 4, 3, "div", 20);
|
|
54655
|
+
i0.ɵɵelementStart(34, "symphiq-search-button", 21);
|
|
54656
|
+
i0.ɵɵlistener("searchClick", function DashboardHeaderComponent_Template_symphiq_search_button_searchClick_34_listener() { return ctx.onSearchClick(); });
|
|
54580
54657
|
i0.ɵɵelementEnd();
|
|
54581
|
-
i0.ɵɵelementStart(
|
|
54582
|
-
i0.ɵɵlistener("click", function
|
|
54658
|
+
i0.ɵɵelementStart(35, "button", 22);
|
|
54659
|
+
i0.ɵɵlistener("click", function DashboardHeaderComponent_Template_button_click_35_listener() { return ctx.onViewModeClick(); });
|
|
54583
54660
|
i0.ɵɵnamespaceSVG();
|
|
54584
|
-
i0.ɵɵelementStart(
|
|
54585
|
-
i0.ɵɵelement(
|
|
54661
|
+
i0.ɵɵelementStart(36, "svg", 10);
|
|
54662
|
+
i0.ɵɵelement(37, "path", 11)(38, "path", 12);
|
|
54586
54663
|
i0.ɵɵelementEnd()()()()()()();
|
|
54587
54664
|
} if (rf & 2) {
|
|
54665
|
+
let tmp_18_0;
|
|
54588
54666
|
i0.ɵɵproperty("ngClass", ctx.getHeaderClasses());
|
|
54589
54667
|
i0.ɵɵadvance();
|
|
54590
54668
|
i0.ɵɵclassProp("max-h-0", ctx.headerScrollService.isScrolled())("opacity-0", ctx.headerScrollService.isScrolled())("max-h-96", !ctx.headerScrollService.isScrolled())("opacity-100", !ctx.headerScrollService.isScrolled());
|
|
54591
54669
|
i0.ɵɵadvance();
|
|
54592
54670
|
i0.ɵɵclassProp("pointer-events-none", ctx.headerScrollService.isScrolled())("pointer-events-auto", !ctx.headerScrollService.isScrolled());
|
|
54593
|
-
i0.ɵɵadvance(
|
|
54671
|
+
i0.ɵɵadvance(4);
|
|
54594
54672
|
i0.ɵɵproperty("ngClass", ctx.getMainTitleClasses());
|
|
54595
54673
|
i0.ɵɵadvance();
|
|
54596
54674
|
i0.ɵɵtextInterpolate1(" ", ctx.title, " ");
|
|
54597
54675
|
i0.ɵɵadvance();
|
|
54676
|
+
i0.ɵɵconditional(ctx.isLoading ? 8 : -1);
|
|
54677
|
+
i0.ɵɵadvance();
|
|
54598
54678
|
i0.ɵɵproperty("ngClass", ctx.getSubtitleClasses());
|
|
54599
54679
|
i0.ɵɵadvance();
|
|
54600
54680
|
i0.ɵɵtextInterpolate1(" ", ctx.subtitle, " ");
|
|
@@ -54604,6 +54684,14 @@ class DashboardHeaderComponent {
|
|
|
54604
54684
|
i0.ɵɵproperty("ngClass", ctx.getViewModeButtonClasses());
|
|
54605
54685
|
i0.ɵɵadvance(5);
|
|
54606
54686
|
i0.ɵɵtextInterpolate(ctx.viewModeLabel);
|
|
54687
|
+
i0.ɵɵadvance(2);
|
|
54688
|
+
i0.ɵɵconditional(ctx.formattedGeneratedDate() ? 20 : -1);
|
|
54689
|
+
i0.ɵɵadvance(2);
|
|
54690
|
+
i0.ɵɵclassMap(ctx.metaLabelClass());
|
|
54691
|
+
i0.ɵɵadvance(2);
|
|
54692
|
+
i0.ɵɵclassMap(ctx.headerTitleClass());
|
|
54693
|
+
i0.ɵɵadvance();
|
|
54694
|
+
i0.ɵɵtextInterpolate2("", (tmp_18_0 = ctx.requestedByUser()) == null ? null : tmp_18_0.firstName, " ", (tmp_18_0 = ctx.requestedByUser()) == null ? null : tmp_18_0.lastName);
|
|
54607
54695
|
i0.ɵɵadvance();
|
|
54608
54696
|
i0.ɵɵclassProp("max-h-0", !ctx.headerScrollService.isScrolled())("opacity-0", !ctx.headerScrollService.isScrolled())("max-h-20", ctx.headerScrollService.isScrolled())("opacity-100", ctx.headerScrollService.isScrolled());
|
|
54609
54697
|
i0.ɵɵadvance();
|
|
@@ -54613,7 +54701,7 @@ class DashboardHeaderComponent {
|
|
|
54613
54701
|
i0.ɵɵadvance();
|
|
54614
54702
|
i0.ɵɵtextInterpolate1(" ", ctx.title, " ");
|
|
54615
54703
|
i0.ɵɵadvance(2);
|
|
54616
|
-
i0.ɵɵconditional(ctx.currentSection ?
|
|
54704
|
+
i0.ɵɵconditional(ctx.currentSection ? 33 : -1);
|
|
54617
54705
|
i0.ɵɵadvance();
|
|
54618
54706
|
i0.ɵɵproperty("isLightMode", ctx.isLightMode())("minimized", true);
|
|
54619
54707
|
i0.ɵɵadvance();
|
|
@@ -54627,103 +54715,120 @@ class DashboardHeaderComponent {
|
|
|
54627
54715
|
standalone: true,
|
|
54628
54716
|
imports: [CommonModule, SearchButtonComponent],
|
|
54629
54717
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
54630
|
-
template: `
|
|
54631
|
-
<header [ngClass]="getHeaderClasses()" class="sticky top-0 z-50">
|
|
54632
|
-
<!-- Expanded Header (default state) -->
|
|
54633
|
-
<div
|
|
54634
|
-
class="transition-all duration-300 ease-in-out overflow-hidden"
|
|
54635
|
-
[class.max-h-0]="headerScrollService.isScrolled()"
|
|
54636
|
-
[class.opacity-0]="headerScrollService.isScrolled()"
|
|
54637
|
-
[class.max-h-96]="!headerScrollService.isScrolled()"
|
|
54638
|
-
[class.opacity-100]="!headerScrollService.isScrolled()">
|
|
54639
|
-
<div
|
|
54640
|
-
class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8"
|
|
54641
|
-
[class.pointer-events-none]="headerScrollService.isScrolled()"
|
|
54642
|
-
[class.pointer-events-auto]="!headerScrollService.isScrolled()">
|
|
54643
|
-
<div class="flex items-center justify-between">
|
|
54644
|
-
<div>
|
|
54645
|
-
<
|
|
54646
|
-
|
|
54647
|
-
|
|
54648
|
-
|
|
54649
|
-
|
|
54650
|
-
|
|
54651
|
-
|
|
54652
|
-
|
|
54653
|
-
<
|
|
54654
|
-
|
|
54655
|
-
|
|
54656
|
-
|
|
54657
|
-
|
|
54658
|
-
|
|
54659
|
-
|
|
54660
|
-
|
|
54661
|
-
|
|
54662
|
-
|
|
54663
|
-
|
|
54664
|
-
|
|
54665
|
-
|
|
54666
|
-
|
|
54667
|
-
|
|
54668
|
-
|
|
54669
|
-
|
|
54670
|
-
|
|
54671
|
-
|
|
54672
|
-
|
|
54673
|
-
|
|
54674
|
-
|
|
54675
|
-
|
|
54676
|
-
|
|
54677
|
-
|
|
54678
|
-
|
|
54679
|
-
|
|
54680
|
-
|
|
54681
|
-
|
|
54682
|
-
|
|
54683
|
-
|
|
54684
|
-
|
|
54685
|
-
|
|
54686
|
-
|
|
54687
|
-
|
|
54688
|
-
|
|
54689
|
-
|
|
54690
|
-
|
|
54691
|
-
|
|
54692
|
-
|
|
54693
|
-
|
|
54694
|
-
|
|
54695
|
-
|
|
54696
|
-
|
|
54697
|
-
|
|
54698
|
-
|
|
54699
|
-
|
|
54700
|
-
|
|
54701
|
-
|
|
54702
|
-
|
|
54703
|
-
|
|
54704
|
-
|
|
54705
|
-
|
|
54706
|
-
|
|
54707
|
-
|
|
54708
|
-
|
|
54709
|
-
|
|
54710
|
-
|
|
54711
|
-
|
|
54712
|
-
|
|
54713
|
-
|
|
54714
|
-
|
|
54715
|
-
|
|
54716
|
-
|
|
54717
|
-
|
|
54718
|
-
|
|
54719
|
-
|
|
54720
|
-
|
|
54721
|
-
|
|
54722
|
-
|
|
54723
|
-
|
|
54718
|
+
template: `
|
|
54719
|
+
<header [ngClass]="getHeaderClasses()" class="sticky top-0 z-50">
|
|
54720
|
+
<!-- Expanded Header (default state) -->
|
|
54721
|
+
<div
|
|
54722
|
+
class="transition-all duration-300 ease-in-out overflow-hidden"
|
|
54723
|
+
[class.max-h-0]="headerScrollService.isScrolled()"
|
|
54724
|
+
[class.opacity-0]="headerScrollService.isScrolled()"
|
|
54725
|
+
[class.max-h-96]="!headerScrollService.isScrolled()"
|
|
54726
|
+
[class.opacity-100]="!headerScrollService.isScrolled()">
|
|
54727
|
+
<div
|
|
54728
|
+
class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8"
|
|
54729
|
+
[class.pointer-events-none]="headerScrollService.isScrolled()"
|
|
54730
|
+
[class.pointer-events-auto]="!headerScrollService.isScrolled()">
|
|
54731
|
+
<div class="flex items-center justify-between">
|
|
54732
|
+
<div>
|
|
54733
|
+
<div class="flex items-center gap-3">
|
|
54734
|
+
<h1 [ngClass]="getMainTitleClasses()">
|
|
54735
|
+
{{ title }}
|
|
54736
|
+
</h1>
|
|
54737
|
+
@if (isLoading) {
|
|
54738
|
+
<div class="animate-spin w-4 h-4 border-2 border-blue-500/30 border-t-blue-500 rounded-full" title="Refreshing data..."></div>
|
|
54739
|
+
}
|
|
54740
|
+
</div>
|
|
54741
|
+
<p [ngClass]="getSubtitleClasses()">
|
|
54742
|
+
{{ subtitle }}
|
|
54743
|
+
</p>
|
|
54744
|
+
</div>
|
|
54745
|
+
<div class="flex items-center gap-2">
|
|
54746
|
+
<symphiq-search-button
|
|
54747
|
+
[isLightMode]="isLightMode()"
|
|
54748
|
+
(searchClick)="onSearchClick()"
|
|
54749
|
+
/>
|
|
54750
|
+
<button
|
|
54751
|
+
type="button"
|
|
54752
|
+
(click)="onViewModeClick()"
|
|
54753
|
+
[ngClass]="getViewModeButtonClasses()"
|
|
54754
|
+
class="cursor-pointer flex items-center gap-2 px-3 py-1.5 rounded-lg text-xs font-medium transition-all duration-200 hover:scale-105">
|
|
54755
|
+
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
54756
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
|
|
54757
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"></path>
|
|
54758
|
+
</svg>
|
|
54759
|
+
<span>{{ viewModeLabel }}</span>
|
|
54760
|
+
</button>
|
|
54761
|
+
</div>
|
|
54762
|
+
<div class="flex flex-col gap-4 min-w-[180px]">
|
|
54763
|
+
@if (formattedGeneratedDate()) {
|
|
54764
|
+
<div class="text-left sm:text-right">
|
|
54765
|
+
<div [class]="metaLabelClass()" class="text-xs sm:text-sm">Generated At</div>
|
|
54766
|
+
<div [class]="headerTitleClass()" class="text-sm sm:text-base font-medium">{{ formattedGeneratedDate() }}</div>
|
|
54767
|
+
</div>
|
|
54768
|
+
}
|
|
54769
|
+
<div class="text-left sm:text-right">
|
|
54770
|
+
<div [class]="metaLabelClass()" class="text-xs sm:text-sm">Requested by</div>
|
|
54771
|
+
<div [class]="headerTitleClass()" class="text-sm sm:text-base font-medium">{{ requestedByUser()?.firstName }} {{ requestedByUser()?.lastName }}</div>
|
|
54772
|
+
</div>
|
|
54773
|
+
</div>
|
|
54774
|
+
</div>
|
|
54775
|
+
</div>
|
|
54776
|
+
</div>
|
|
54777
|
+
|
|
54778
|
+
<!-- Condensed Header (scrolled state) -->
|
|
54779
|
+
<div
|
|
54780
|
+
class="transition-all duration-300 ease-in-out overflow-hidden"
|
|
54781
|
+
[class.max-h-0]="!headerScrollService.isScrolled()"
|
|
54782
|
+
[class.opacity-0]="!headerScrollService.isScrolled()"
|
|
54783
|
+
[class.max-h-20]="headerScrollService.isScrolled()"
|
|
54784
|
+
[class.opacity-100]="headerScrollService.isScrolled()">
|
|
54785
|
+
<div
|
|
54786
|
+
class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-3"
|
|
54787
|
+
[class.pointer-events-none]="!headerScrollService.isScrolled()"
|
|
54788
|
+
[class.pointer-events-auto]="headerScrollService.isScrolled()">
|
|
54789
|
+
<div class="flex items-center justify-between">
|
|
54790
|
+
<div class="flex-1 min-w-0 mr-4">
|
|
54791
|
+
<h1 [ngClass]="getCondensedTitleClasses()">
|
|
54792
|
+
{{ title }}
|
|
54793
|
+
</h1>
|
|
54794
|
+
</div>
|
|
54795
|
+
<div class="flex items-center gap-4">
|
|
54796
|
+
@if (currentSection) {
|
|
54797
|
+
<div class="flex items-center gap-2 text-sm flex-shrink-0">
|
|
54798
|
+
<span [ngClass]="isLightMode() ? 'text-slate-600 font-medium' : 'text-slate-400 font-medium'">
|
|
54799
|
+
{{ currentSection }}
|
|
54800
|
+
</span>
|
|
54801
|
+
@if (currentSubsection) {
|
|
54802
|
+
<span [ngClass]="isLightMode() ? 'text-slate-400' : 'text-slate-500'">›</span>
|
|
54803
|
+
<span [ngClass]="isLightMode() ? 'text-slate-500' : 'text-slate-500'">
|
|
54804
|
+
{{ currentSubsection }}
|
|
54805
|
+
</span>
|
|
54806
|
+
}
|
|
54807
|
+
</div>
|
|
54808
|
+
}
|
|
54809
|
+
<symphiq-search-button
|
|
54810
|
+
[isLightMode]="isLightMode()"
|
|
54811
|
+
[minimized]="true"
|
|
54812
|
+
(searchClick)="onSearchClick()"
|
|
54813
|
+
/>
|
|
54814
|
+
<button
|
|
54815
|
+
type="button"
|
|
54816
|
+
(click)="onViewModeClick()"
|
|
54817
|
+
[ngClass]="getViewModeButtonClasses()"
|
|
54818
|
+
class="cursor-pointer flex items-center gap-2 px-2 py-1.5 rounded-lg text-xs font-medium transition-all duration-200 hover:scale-105">
|
|
54819
|
+
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
54820
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
|
|
54821
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"></path>
|
|
54822
|
+
</svg>
|
|
54823
|
+
</button>
|
|
54824
|
+
</div>
|
|
54825
|
+
</div>
|
|
54826
|
+
</div>
|
|
54827
|
+
</div>
|
|
54828
|
+
</header>
|
|
54724
54829
|
`
|
|
54725
54830
|
}]
|
|
54726
|
-
}], null, { title: [{
|
|
54831
|
+
}], null, { requestedByUser: [{ type: i0.Input, args: [{ isSignal: true, alias: "requestedByUser", required: false }] }], createdDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "createdDate", required: false }] }], title: [{
|
|
54727
54832
|
type: Input
|
|
54728
54833
|
}], subtitle: [{
|
|
54729
54834
|
type: Input
|
|
@@ -54735,12 +54840,14 @@ class DashboardHeaderComponent {
|
|
|
54735
54840
|
type: Input
|
|
54736
54841
|
}], currentSubsection: [{
|
|
54737
54842
|
type: Input
|
|
54843
|
+
}], isLoading: [{
|
|
54844
|
+
type: Input
|
|
54738
54845
|
}], searchClick: [{
|
|
54739
54846
|
type: Output
|
|
54740
54847
|
}], viewModeClick: [{
|
|
54741
54848
|
type: Output
|
|
54742
54849
|
}] }); })();
|
|
54743
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DashboardHeaderComponent, { className: "DashboardHeaderComponent", filePath: "lib/components/shared/dashboard-header.component.ts", lineNumber:
|
|
54850
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DashboardHeaderComponent, { className: "DashboardHeaderComponent", filePath: "lib/components/shared/dashboard-header.component.ts", lineNumber: 126 }); })();
|
|
54744
54851
|
|
|
54745
54852
|
class GradeBadgeComponent {
|
|
54746
54853
|
constructor() {
|
|
@@ -73147,13 +73254,13 @@ function SymphiqProfileAnalysisDashboardComponent_Conditional_11_Template(rf, ct
|
|
|
73147
73254
|
i0.ɵɵelement(0, "symphiq-floating-toc", 8);
|
|
73148
73255
|
} if (rf & 2) {
|
|
73149
73256
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
73150
|
-
i0.ɵɵproperty("sections", ctx_r0.tocSections())("viewMode", ctx_r0.viewMode)("embedded", ctx_r0.embedded);
|
|
73257
|
+
i0.ɵɵproperty("sections", ctx_r0.tocSections())("viewMode", ctx_r0.viewMode)("embedded", ctx_r0.embedded)("scrollElement", ctx_r0.scrollElement ?? undefined);
|
|
73151
73258
|
} }
|
|
73152
73259
|
function SymphiqProfileAnalysisDashboardComponent_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
73153
73260
|
i0.ɵɵelement(0, "symphiq-section-navigation", 8);
|
|
73154
73261
|
} if (rf & 2) {
|
|
73155
73262
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
73156
|
-
i0.ɵɵproperty("sections", ctx_r0.tocSections())("viewMode", ctx_r0.viewMode)("embedded", ctx_r0.embedded);
|
|
73263
|
+
i0.ɵɵproperty("sections", ctx_r0.tocSections())("viewMode", ctx_r0.viewMode)("embedded", ctx_r0.embedded)("scrollElement", ctx_r0.scrollElement ?? undefined);
|
|
73157
73264
|
} }
|
|
73158
73265
|
function SymphiqProfileAnalysisDashboardComponent_Conditional_16_Template(rf, ctx) { if (rf & 1) {
|
|
73159
73266
|
i0.ɵɵelement(0, "symphiq-goal-card", 12);
|
|
@@ -73211,9 +73318,45 @@ function SymphiqProfileAnalysisDashboardComponent_Conditional_23_Template(rf, ct
|
|
|
73211
73318
|
class SymphiqProfileAnalysisDashboardComponent {
|
|
73212
73319
|
constructor() {
|
|
73213
73320
|
this.viewMode = ViewModeEnum.LIGHT;
|
|
73321
|
+
this.requestedByUser = input(...(ngDevMode ? [undefined, { debugName: "requestedByUser" }] : []));
|
|
73322
|
+
this.createdDate = input(...(ngDevMode ? [undefined, { debugName: "createdDate" }] : []));
|
|
73214
73323
|
this.embedded = false;
|
|
73215
73324
|
this.analysisType = ProfileAnalysisTypeEnum.SHOP;
|
|
73216
73325
|
this.isOnboarded = false;
|
|
73326
|
+
this.COLLAPSE_THRESHOLD = 20;
|
|
73327
|
+
this.EXPAND_THRESHOLD = 10;
|
|
73328
|
+
this.embeddedScrollEffect = effect(() => {
|
|
73329
|
+
const scrollEvent = this.scrollEvent;
|
|
73330
|
+
const isEmbedded = this.embedded;
|
|
73331
|
+
if (isEmbedded && !scrollEvent) {
|
|
73332
|
+
return;
|
|
73333
|
+
}
|
|
73334
|
+
if (!scrollEvent || !isEmbedded) {
|
|
73335
|
+
return;
|
|
73336
|
+
}
|
|
73337
|
+
const detail = scrollEvent.detail;
|
|
73338
|
+
if (!detail) {
|
|
73339
|
+
return;
|
|
73340
|
+
}
|
|
73341
|
+
const scrollTop = detail.scrollTop || 0;
|
|
73342
|
+
const currentState = this.headerScrollService.isScrolled();
|
|
73343
|
+
if (!currentState && scrollTop > this.COLLAPSE_THRESHOLD) {
|
|
73344
|
+
this.headerScrollService.isScrolled.set(true);
|
|
73345
|
+
}
|
|
73346
|
+
else if (currentState && scrollTop < this.EXPAND_THRESHOLD) {
|
|
73347
|
+
this.headerScrollService.isScrolled.set(false);
|
|
73348
|
+
}
|
|
73349
|
+
const scrollElement = this.scrollElement;
|
|
73350
|
+
if (scrollElement) {
|
|
73351
|
+
const scrollHeight = scrollElement.scrollHeight || 0;
|
|
73352
|
+
const clientHeight = scrollElement.clientHeight || 0;
|
|
73353
|
+
const maxScroll = scrollHeight - clientHeight;
|
|
73354
|
+
if (maxScroll > 0) {
|
|
73355
|
+
const progress = (scrollTop / maxScroll) * 100;
|
|
73356
|
+
this.scrollProgress.set(Math.min(100, Math.max(0, progress)));
|
|
73357
|
+
}
|
|
73358
|
+
}
|
|
73359
|
+
}, ...(ngDevMode ? [{ debugName: "embeddedScrollEffect" }] : []));
|
|
73217
73360
|
// Signal version of funnelAnalysis for reactive computed signals
|
|
73218
73361
|
this.funnelAnalysisSignal = signal(undefined, ...(ngDevMode ? [{ debugName: "funnelAnalysisSignal" }] : []));
|
|
73219
73362
|
this.headerScrollService = inject(HeaderScrollService);
|
|
@@ -73879,7 +74022,7 @@ class SymphiqProfileAnalysisDashboardComponent {
|
|
|
73879
74022
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.funnelModalComponent = _t.first);
|
|
73880
74023
|
} }, hostBindings: function SymphiqProfileAnalysisDashboardComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
73881
74024
|
i0.ɵɵlistener("scroll", function SymphiqProfileAnalysisDashboardComponent_scroll_HostBindingHandler($event) { return ctx.onWindowScroll($event); }, i0.ɵɵresolveWindow);
|
|
73882
|
-
} }, inputs: { viewMode: "viewMode", embedded: "embedded", profileAnalysis: "profileAnalysis", profile: "profile", funnelAnalysis: "funnelAnalysis", analysisType: "analysisType", focusAreaDetails: "focusAreaDetails", isOnboarded: "isOnboarded" }, features: [i0.ɵɵNgOnChangesFeature], decls: 27, vars:
|
|
74025
|
+
} }, inputs: { viewMode: "viewMode", requestedByUser: [1, "requestedByUser"], createdDate: [1, "createdDate"], embedded: "embedded", profileAnalysis: "profileAnalysis", profile: "profile", funnelAnalysis: "funnelAnalysis", analysisType: "analysisType", focusAreaDetails: "focusAreaDetails", isOnboarded: "isOnboarded", scrollEvent: "scrollEvent", scrollElement: "scrollElement", isLoading: "isLoading" }, features: [i0.ɵɵNgOnChangesFeature], decls: 27, vars: 45, consts: [[1, "min-h-screen", "relative", 3, "ngClass"], [1, "h-full", "transition-all", "duration-200", "ease-out", 3, "ngClass"], [1, "fixed", "inset-0", "bg-slate-900"], [1, "relative", "z-[51]"], [3, "searchClick", "viewModeClick", "title", "subtitle", "currentSection", "viewMode", "viewModeLabel", "isLoading", "requestedByUser", "createdDate"], [3, "viewMode", "currentStepId", "showNextStepAction"], [1, "relative", "z-10", "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-12", "space-y-12"], [1, "mb-12"], [3, "sections", "viewMode", "embedded", "scrollElement"], [3, "close", "isOpen", "isLightMode"], [3, "close", "modeSelected", "isOpen", "currentMode", "viewMode"], [3, "isLightMode", "allMetrics", "allInsights", "allBusinessInsights", "allCharts"], [3, "goal", "viewMode", "isInModal", "allMetrics", "allCharts", "allInsights", "currentModalState"], [3, "goal", "viewMode"], [3, "objective", "goalTitle", "viewMode"], [3, "strategy", "objectiveTitle", "goalTitle", "viewMode", "allMetrics", "allCharts", "allInsights", "allBusinessInsights", "currentModalState"], [3, "category", "viewMode", "scrollToSection"], [3, "strength", "viewMode", "allFunnelStrengths", "currentModalState"], [3, "gap", "viewMode", "allGoals", "allWeaknesses", "currentModalState"], [3, "opportunity", "viewMode", "allStrengths", "currentModalState"], [3, "isLightMode", "viewMode", "allMetrics", "allInsights", "allCharts"], [3, "isLightMode"], [1, "absolute", "inset-0", "bg-[radial-gradient(ellipse_at_top_right,_var(--tw-gradient-stops))]", "from-slate-800", "via-slate-900", "to-slate-900"], [3, "viewMode", "businessName", "isOnboarded"], [3, "viewMode", "focusAreaDomain", "focusAreaName", "focusAreaDetails"], [3, "viewMode", "metricName", "isOnboarded"], [1, "mb-8"], [3, "viewMoreClick", "goals", "viewMode"], [3, "sections", "viewMode", "executiveSummary", "focusAreaExecutiveSummary", "metricExecutiveSummary", "metricName", "allGoals", "allMetrics", "allCharts", "allInsights"], ["id", "section-executive-summary", 1, "space-y-6", "scroll-mt-24"], [3, "viewMode", "summary", "allGoals"], [3, "viewMode", "summary", "metricName", "allGoals"], [1, "space-y-8"], [1, "rounded-2xl", "p-8", "shadow-xl", 3, "ngClass"], [1, "space-y-6"], [1, "flex", "items-start", "justify-between", "gap-4"], [1, "flex-1"], [1, "text-2xl", "font-bold", "mb-3", 3, "ngClass"], [1, "text-lg", "leading-relaxed", 3, "ngClass"], [3, "grade", "gradeRationale", "viewMode"], [1, "rounded-xl", "p-6", 3, "ngClass"], [1, "grid", "grid-cols-1", "md:grid-cols-3", "gap-4"], ["type", "button", 1, "p-4", "rounded-xl", "text-left", "transition-all", "duration-200", "hover:scale-[1.02]", "active:scale-[0.98]", "group", "cursor-pointer", 3, "click", "ngClass"], [1, "text-xs", "font-semibold", "uppercase", "mb-1", 3, "ngClass"], [1, "text-3xl", "font-bold", "mb-2", 3, "ngClass"], [1, "flex", "items-center", "gap-1.5", "text-xs", "font-medium"], [3, "ngClass"], ["size", "w-4 h-4", 1, "transition-transform", "group-hover:translate-x-1", 3, "icon", "ngClass"], ["size", "w-4 h-4", 1, "transition-transform", "group-hover:translate-y-1", "animate-bounce", 3, "icon", "ngClass"], ["id", "quick-wins-section", 1, "space-y-4", "scroll-mt-24"], [1, "text-lg", "font-semibold", "mb-3", 3, "ngClass"], [1, "relative"], [1, "mb-6", "lg:float-left", "lg:mr-6", "lg:mb-4", "lg:max-w-[66%]"], [1, "text-sm", "leading-relaxed", "whitespace-pre-line", 3, "ngClass"], [1, "clear-both"], [3, "visual", "viewMode"], [1, "text-xl", "font-bold", 3, "ngClass"], [1, "grid", "grid-cols-1", "lg:grid-cols-2", "gap-6"], [1, "rounded-xl", "p-6", "transition-all", "duration-300", 3, "ngClass"], [1, "space-y-4"], [1, "flex", "items-start", "gap-3"], [1, "flex-shrink-0", "w-8", "h-8", "rounded-full", "flex", "items-center", "justify-center", "text-sm", "font-bold", 3, "ngClass"], [1, "font-semibold", "leading-tight", "flex-1", 3, "ngClass"], [1, "flex", "flex-wrap", "gap-2"], [1, "px-3", "py-1", "rounded-full", "text-xs", "font-semibold", 3, "ngClass"], [1, "flex", "items-center", "gap-2", "text-sm", 3, "ngClass"], [1, "space-y-2"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"], [1, "text-xs", "font-semibold", "uppercase", "tracking-wider", 3, "ngClass"], [3, "relatedGoalIds", "allGoals", "viewMode"], [3, "topPrioritiesClick", "priorityDetailClick", "viewMode", "summary", "allGoals"], [3, "topPrioritiesClick", "priorityDetailClick", "viewMode", "summary", "metricName", "allGoals"], [3, "viewMode", "sectionIcon"], [1, "rounded-xl", "p-8", "scroll-mt-24", 3, "id", "ngClass"], [1, "flex", "items-start", "gap-3", "mb-6"], [1, "flex-shrink-0", "w-12", "h-12", "rounded-xl", "flex", "items-center", "justify-center", 3, "ngClass"], [1, "text-2xl", "font-bold", 3, "ngClass"], [1, "mb-6", "flex", "flex-col", "lg:flex-row", "gap-6", "items-start", 3, "lg:flex-row-reverse"], [3, "section", "executiveSummary", "viewMode", "sectionIndex", "allGoals", "allMetrics", "allCharts", "allInsights"], ["size", "w-6 h-6", 3, "icon"], [1, "mb-6", "flex", "flex-col", "lg:flex-row", "gap-6", "items-start"], [1, "w-full", "lg:w-2/3"], [1, "w-full", 3, "lg:w-1/3", "lg:w-full"], [1, "w-full"]], template: function SymphiqProfileAnalysisDashboardComponent_Template(rf, ctx) { if (rf & 1) {
|
|
73883
74026
|
i0.ɵɵelementStart(0, "div", 0)(1, "div");
|
|
73884
74027
|
i0.ɵɵelement(2, "div", 1);
|
|
73885
74028
|
i0.ɵɵelementEnd();
|
|
@@ -73893,8 +74036,8 @@ class SymphiqProfileAnalysisDashboardComponent {
|
|
|
73893
74036
|
i0.ɵɵconditionalCreate(9, SymphiqProfileAnalysisDashboardComponent_Conditional_9_Template, 3, 3);
|
|
73894
74037
|
i0.ɵɵconditionalCreate(10, SymphiqProfileAnalysisDashboardComponent_Conditional_10_Template, 5, 5);
|
|
73895
74038
|
i0.ɵɵelementEnd();
|
|
73896
|
-
i0.ɵɵconditionalCreate(11, SymphiqProfileAnalysisDashboardComponent_Conditional_11_Template, 1,
|
|
73897
|
-
i0.ɵɵconditionalCreate(12, SymphiqProfileAnalysisDashboardComponent_Conditional_12_Template, 1,
|
|
74039
|
+
i0.ɵɵconditionalCreate(11, SymphiqProfileAnalysisDashboardComponent_Conditional_11_Template, 1, 4, "symphiq-floating-toc", 8);
|
|
74040
|
+
i0.ɵɵconditionalCreate(12, SymphiqProfileAnalysisDashboardComponent_Conditional_12_Template, 1, 4, "symphiq-section-navigation", 8);
|
|
73898
74041
|
i0.ɵɵelementStart(13, "symphiq-search-modal", 9);
|
|
73899
74042
|
i0.ɵɵlistener("close", function SymphiqProfileAnalysisDashboardComponent_Template_symphiq_search_modal_close_13_listener() { return ctx.closeSearch(); });
|
|
73900
74043
|
i0.ɵɵelementEnd();
|
|
@@ -73915,14 +74058,15 @@ class SymphiqProfileAnalysisDashboardComponent {
|
|
|
73915
74058
|
i0.ɵɵelementEnd()();
|
|
73916
74059
|
} if (rf & 2) {
|
|
73917
74060
|
let tmp_5_0;
|
|
73918
|
-
let
|
|
73919
|
-
let tmp_27_0;
|
|
73920
|
-
let tmp_28_0;
|
|
74061
|
+
let tmp_12_0;
|
|
73921
74062
|
let tmp_29_0;
|
|
73922
74063
|
let tmp_30_0;
|
|
73923
74064
|
let tmp_31_0;
|
|
73924
74065
|
let tmp_32_0;
|
|
73925
74066
|
let tmp_33_0;
|
|
74067
|
+
let tmp_34_0;
|
|
74068
|
+
let tmp_35_0;
|
|
74069
|
+
let tmp_36_0;
|
|
73926
74070
|
i0.ɵɵproperty("ngClass", ctx.getContainerClasses());
|
|
73927
74071
|
i0.ɵɵadvance();
|
|
73928
74072
|
i0.ɵɵclassMap(ctx.embedded ? "sticky top-0 left-0 right-0 h-1 z-[60] bg-slate-200/30" : "fixed top-0 left-0 right-0 h-1 z-[60] bg-slate-200/30");
|
|
@@ -73932,7 +74076,7 @@ class SymphiqProfileAnalysisDashboardComponent {
|
|
|
73932
74076
|
i0.ɵɵadvance();
|
|
73933
74077
|
i0.ɵɵconditional(!ctx.isLightMode() ? 3 : -1);
|
|
73934
74078
|
i0.ɵɵadvance(2);
|
|
73935
|
-
i0.ɵɵproperty("title", ((tmp_5_0 = ctx.currentAnalysis()) == null ? null : tmp_5_0.profileAnalysisStructured == null ? null : tmp_5_0.profileAnalysisStructured.businessName) || "Profile Analysis")("subtitle", ctx.getAnalysisSubtitle())("currentSection", ctx.getAnalysisSubtitle())("viewMode", ctx.viewMode)("viewModeLabel", ctx.displayModeLabel());
|
|
74079
|
+
i0.ɵɵproperty("title", ((tmp_5_0 = ctx.currentAnalysis()) == null ? null : tmp_5_0.profileAnalysisStructured == null ? null : tmp_5_0.profileAnalysisStructured.businessName) || "Profile Analysis")("subtitle", ctx.getAnalysisSubtitle())("currentSection", ctx.getAnalysisSubtitle())("viewMode", ctx.viewMode)("viewModeLabel", ctx.displayModeLabel())("isLoading", ctx.isLoading)("requestedByUser", ctx.requestedByUser())("createdDate", (tmp_12_0 = ctx.currentAnalysis()) == null ? null : tmp_12_0.selfContentCompletedDate);
|
|
73936
74080
|
i0.ɵɵadvance();
|
|
73937
74081
|
i0.ɵɵconditional(ctx.isSimplifiedView() && !ctx.isOnboarded ? 6 : -1);
|
|
73938
74082
|
i0.ɵɵadvance(2);
|
|
@@ -73952,21 +74096,21 @@ class SymphiqProfileAnalysisDashboardComponent {
|
|
|
73952
74096
|
i0.ɵɵadvance();
|
|
73953
74097
|
i0.ɵɵproperty("isLightMode", ctx.isLightMode())("allMetrics", ctx.allMetrics())("allInsights", ctx.allInsights())("allBusinessInsights", ctx.allBusinessInsights())("allCharts", ctx.allCharts());
|
|
73954
74098
|
i0.ɵɵadvance();
|
|
73955
|
-
i0.ɵɵconditional((
|
|
74099
|
+
i0.ɵɵconditional((tmp_29_0 = ctx.modalType() === "goal-detail" && ctx.getGoalDetailData()) ? 16 : -1, tmp_29_0);
|
|
73956
74100
|
i0.ɵɵadvance();
|
|
73957
|
-
i0.ɵɵconditional((
|
|
74101
|
+
i0.ɵɵconditional((tmp_30_0 = ctx.modalType() === "goal-objectives" && ctx.getGoalDetailData()) ? 17 : -1, tmp_30_0);
|
|
73958
74102
|
i0.ɵɵadvance();
|
|
73959
|
-
i0.ɵɵconditional((
|
|
74103
|
+
i0.ɵɵconditional((tmp_31_0 = ctx.modalType() === "objective-strategies" && ctx.getObjectiveStrategiesData()) ? 18 : -1, tmp_31_0);
|
|
73960
74104
|
i0.ɵɵadvance();
|
|
73961
|
-
i0.ɵɵconditional((
|
|
74105
|
+
i0.ɵɵconditional((tmp_32_0 = ctx.modalType() === "strategy-recommendations" && ctx.getStrategyRecommendationsData()) ? 19 : -1, tmp_32_0);
|
|
73962
74106
|
i0.ɵɵadvance();
|
|
73963
|
-
i0.ɵɵconditional((
|
|
74107
|
+
i0.ɵɵconditional((tmp_33_0 = ctx.modalType() === "category-detail" && ctx.getCategoryDetailData()) ? 20 : -1, tmp_33_0);
|
|
73964
74108
|
i0.ɵɵadvance();
|
|
73965
|
-
i0.ɵɵconditional((
|
|
74109
|
+
i0.ɵɵconditional((tmp_34_0 = ctx.modalType() === "strength-detail" && ctx.getStrengthDetailData()) ? 21 : -1, tmp_34_0);
|
|
73966
74110
|
i0.ɵɵadvance();
|
|
73967
|
-
i0.ɵɵconditional((
|
|
74111
|
+
i0.ɵɵconditional((tmp_35_0 = ctx.modalType() === "gap-detail" && ctx.getGapDetailData()) ? 22 : -1, tmp_35_0);
|
|
73968
74112
|
i0.ɵɵadvance();
|
|
73969
|
-
i0.ɵɵconditional((
|
|
74113
|
+
i0.ɵɵconditional((tmp_36_0 = ctx.modalType() === "opportunity-detail" && ctx.getOpportunityDetailData()) ? 23 : -1, tmp_36_0);
|
|
73970
74114
|
i0.ɵɵadvance();
|
|
73971
74115
|
i0.ɵɵproperty("isLightMode", ctx.isLightMode())("viewMode", ctx.viewMode)("allMetrics", ctx.allMetrics())("allInsights", ctx.allInsights())("allCharts", ctx.allCharts());
|
|
73972
74116
|
i0.ɵɵadvance();
|
|
@@ -73980,514 +74124,527 @@ class SymphiqProfileAnalysisDashboardComponent {
|
|
|
73980
74124
|
standalone: true,
|
|
73981
74125
|
imports: [CommonModule, DashboardHeaderComponent, SearchModalComponent, ViewModeSwitcherModalComponent, JourneyProgressIndicatorComponent, FloatingTocComponent, SectionNavigationComponent, GradeBadgeComponent, ShopWelcomeBannerComponent, FocusAreaWelcomeBannerComponent, MetricWelcomeBannerComponent, FocusAreaExecutiveSummaryComponent, MetricExecutiveSummaryComponent, NapkinVisualPlaceholderComponent, TooltipContainerComponent, ProfileSectionContentComponent, ProfileAnalysisModalComponent, ModalComponent, GoalCardComponent, GoalObjectivesModalContentComponent, ObjectiveStrategiesModalContentComponent, StrategyRecommendationsModalContentComponent, CategoryDetailModalContentComponent, StrengthDetailModalContentComponent, GapDetailModalContentComponent, OpportunityDetailModalContentComponent, BusinessAnalysisModalComponent, SectionDividerComponent, SymphiqIconComponent, RelatedGoalChipsComponent, StrategicGoalsTiledGridComponent, CollapsibleAnalysisSectionGroupComponent],
|
|
73982
74126
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
73983
|
-
template: `
|
|
73984
|
-
<div [ngClass]="getContainerClasses()" class="min-h-screen relative">
|
|
73985
|
-
<!-- Scroll Progress Bar -->
|
|
73986
|
-
<div
|
|
73987
|
-
|
|
73988
|
-
|
|
73989
|
-
|
|
73990
|
-
|
|
73991
|
-
|
|
73992
|
-
|
|
73993
|
-
|
|
73994
|
-
|
|
73995
|
-
|
|
73996
|
-
|
|
73997
|
-
|
|
73998
|
-
|
|
73999
|
-
|
|
74000
|
-
|
|
74001
|
-
|
|
74002
|
-
|
|
74003
|
-
|
|
74004
|
-
|
|
74005
|
-
|
|
74006
|
-
|
|
74007
|
-
|
|
74008
|
-
|
|
74009
|
-
|
|
74010
|
-
|
|
74011
|
-
|
|
74012
|
-
|
|
74013
|
-
|
|
74014
|
-
|
|
74015
|
-
|
|
74016
|
-
|
|
74017
|
-
|
|
74018
|
-
|
|
74019
|
-
|
|
74020
|
-
|
|
74021
|
-
|
|
74022
|
-
|
|
74023
|
-
|
|
74024
|
-
|
|
74025
|
-
|
|
74026
|
-
|
|
74027
|
-
|
|
74028
|
-
|
|
74029
|
-
|
|
74030
|
-
|
|
74031
|
-
|
|
74032
|
-
|
|
74033
|
-
|
|
74034
|
-
|
|
74035
|
-
|
|
74036
|
-
|
|
74037
|
-
|
|
74038
|
-
|
|
74039
|
-
|
|
74040
|
-
|
|
74041
|
-
|
|
74042
|
-
|
|
74043
|
-
|
|
74044
|
-
|
|
74045
|
-
|
|
74046
|
-
|
|
74047
|
-
|
|
74048
|
-
|
|
74049
|
-
|
|
74050
|
-
|
|
74051
|
-
|
|
74052
|
-
|
|
74053
|
-
|
|
74054
|
-
|
|
74055
|
-
|
|
74056
|
-
|
|
74057
|
-
|
|
74058
|
-
|
|
74059
|
-
|
|
74060
|
-
|
|
74061
|
-
|
|
74062
|
-
|
|
74063
|
-
|
|
74064
|
-
|
|
74065
|
-
|
|
74066
|
-
|
|
74067
|
-
|
|
74068
|
-
|
|
74069
|
-
|
|
74070
|
-
|
|
74071
|
-
|
|
74072
|
-
|
|
74073
|
-
|
|
74074
|
-
|
|
74075
|
-
|
|
74076
|
-
|
|
74077
|
-
|
|
74078
|
-
|
|
74079
|
-
|
|
74080
|
-
|
|
74081
|
-
|
|
74082
|
-
|
|
74083
|
-
|
|
74084
|
-
|
|
74085
|
-
|
|
74086
|
-
|
|
74087
|
-
|
|
74088
|
-
|
|
74089
|
-
|
|
74090
|
-
|
|
74091
|
-
|
|
74092
|
-
|
|
74093
|
-
|
|
74094
|
-
|
|
74095
|
-
|
|
74096
|
-
<
|
|
74097
|
-
|
|
74098
|
-
|
|
74099
|
-
|
|
74100
|
-
|
|
74101
|
-
|
|
74102
|
-
|
|
74103
|
-
|
|
74104
|
-
|
|
74105
|
-
|
|
74106
|
-
|
|
74107
|
-
|
|
74108
|
-
|
|
74109
|
-
|
|
74110
|
-
|
|
74111
|
-
|
|
74112
|
-
|
|
74113
|
-
|
|
74114
|
-
|
|
74115
|
-
|
|
74116
|
-
<
|
|
74117
|
-
|
|
74118
|
-
|
|
74119
|
-
|
|
74120
|
-
|
|
74121
|
-
|
|
74122
|
-
|
|
74123
|
-
|
|
74124
|
-
|
|
74125
|
-
|
|
74126
|
-
|
|
74127
|
-
|
|
74128
|
-
|
|
74129
|
-
|
|
74130
|
-
|
|
74131
|
-
|
|
74132
|
-
|
|
74133
|
-
|
|
74134
|
-
|
|
74135
|
-
|
|
74136
|
-
|
|
74137
|
-
class="
|
|
74138
|
-
|
|
74139
|
-
|
|
74140
|
-
|
|
74141
|
-
|
|
74142
|
-
|
|
74143
|
-
|
|
74144
|
-
|
|
74145
|
-
|
|
74146
|
-
|
|
74147
|
-
|
|
74148
|
-
|
|
74149
|
-
|
|
74150
|
-
|
|
74151
|
-
|
|
74152
|
-
|
|
74153
|
-
|
|
74154
|
-
|
|
74155
|
-
|
|
74156
|
-
|
|
74157
|
-
|
|
74158
|
-
|
|
74159
|
-
|
|
74160
|
-
|
|
74161
|
-
|
|
74162
|
-
|
|
74163
|
-
|
|
74164
|
-
|
|
74165
|
-
|
|
74166
|
-
|
|
74167
|
-
|
|
74168
|
-
|
|
74169
|
-
|
|
74170
|
-
|
|
74171
|
-
|
|
74172
|
-
|
|
74173
|
-
|
|
74174
|
-
|
|
74175
|
-
|
|
74176
|
-
|
|
74177
|
-
|
|
74178
|
-
|
|
74179
|
-
|
|
74180
|
-
|
|
74181
|
-
|
|
74182
|
-
|
|
74183
|
-
|
|
74184
|
-
|
|
74185
|
-
|
|
74186
|
-
|
|
74187
|
-
|
|
74188
|
-
|
|
74189
|
-
|
|
74190
|
-
|
|
74191
|
-
|
|
74192
|
-
|
|
74193
|
-
|
|
74194
|
-
|
|
74195
|
-
|
|
74196
|
-
|
|
74197
|
-
|
|
74198
|
-
|
|
74199
|
-
|
|
74200
|
-
|
|
74201
|
-
|
|
74202
|
-
|
|
74203
|
-
|
|
74204
|
-
|
|
74205
|
-
|
|
74206
|
-
|
|
74207
|
-
|
|
74208
|
-
<
|
|
74209
|
-
|
|
74210
|
-
|
|
74211
|
-
|
|
74212
|
-
|
|
74213
|
-
|
|
74214
|
-
|
|
74215
|
-
|
|
74216
|
-
|
|
74217
|
-
|
|
74218
|
-
|
|
74219
|
-
|
|
74220
|
-
|
|
74221
|
-
|
|
74222
|
-
|
|
74223
|
-
|
|
74224
|
-
|
|
74225
|
-
|
|
74226
|
-
|
|
74227
|
-
|
|
74228
|
-
|
|
74229
|
-
|
|
74230
|
-
|
|
74231
|
-
|
|
74232
|
-
|
|
74233
|
-
|
|
74234
|
-
|
|
74235
|
-
|
|
74236
|
-
|
|
74237
|
-
|
|
74238
|
-
|
|
74239
|
-
|
|
74240
|
-
|
|
74241
|
-
|
|
74242
|
-
|
|
74243
|
-
|
|
74244
|
-
|
|
74245
|
-
|
|
74246
|
-
|
|
74247
|
-
|
|
74248
|
-
|
|
74249
|
-
|
|
74250
|
-
|
|
74251
|
-
|
|
74252
|
-
|
|
74253
|
-
|
|
74254
|
-
|
|
74255
|
-
|
|
74256
|
-
|
|
74257
|
-
|
|
74258
|
-
|
|
74259
|
-
|
|
74260
|
-
|
|
74261
|
-
|
|
74262
|
-
|
|
74263
|
-
|
|
74264
|
-
|
|
74265
|
-
|
|
74266
|
-
|
|
74267
|
-
|
|
74268
|
-
|
|
74269
|
-
|
|
74270
|
-
(
|
|
74271
|
-
|
|
74272
|
-
|
|
74273
|
-
|
|
74274
|
-
|
|
74275
|
-
|
|
74276
|
-
|
|
74277
|
-
|
|
74278
|
-
|
|
74279
|
-
|
|
74280
|
-
|
|
74281
|
-
(
|
|
74282
|
-
|
|
74283
|
-
|
|
74284
|
-
|
|
74285
|
-
|
|
74286
|
-
|
|
74287
|
-
|
|
74288
|
-
|
|
74289
|
-
|
|
74290
|
-
|
|
74291
|
-
|
|
74292
|
-
|
|
74293
|
-
|
|
74294
|
-
|
|
74295
|
-
|
|
74296
|
-
|
|
74297
|
-
|
|
74298
|
-
|
|
74299
|
-
|
|
74300
|
-
|
|
74301
|
-
|
|
74302
|
-
|
|
74303
|
-
|
|
74304
|
-
|
|
74305
|
-
|
|
74306
|
-
|
|
74307
|
-
|
|
74308
|
-
|
|
74309
|
-
<
|
|
74310
|
-
|
|
74311
|
-
|
|
74312
|
-
|
|
74313
|
-
|
|
74314
|
-
|
|
74315
|
-
|
|
74316
|
-
|
|
74317
|
-
|
|
74318
|
-
|
|
74319
|
-
|
|
74320
|
-
|
|
74321
|
-
|
|
74322
|
-
|
|
74323
|
-
|
|
74324
|
-
|
|
74325
|
-
|
|
74326
|
-
|
|
74327
|
-
|
|
74328
|
-
|
|
74329
|
-
|
|
74330
|
-
|
|
74331
|
-
|
|
74332
|
-
|
|
74333
|
-
|
|
74334
|
-
|
|
74335
|
-
|
|
74336
|
-
|
|
74337
|
-
|
|
74338
|
-
|
|
74339
|
-
|
|
74340
|
-
|
|
74341
|
-
|
|
74342
|
-
|
|
74343
|
-
|
|
74344
|
-
|
|
74345
|
-
|
|
74346
|
-
|
|
74347
|
-
|
|
74348
|
-
|
|
74349
|
-
|
|
74350
|
-
|
|
74351
|
-
|
|
74352
|
-
|
|
74353
|
-
|
|
74354
|
-
|
|
74355
|
-
|
|
74356
|
-
|
|
74357
|
-
|
|
74358
|
-
|
|
74359
|
-
|
|
74360
|
-
|
|
74361
|
-
|
|
74362
|
-
|
|
74363
|
-
|
|
74364
|
-
|
|
74365
|
-
|
|
74366
|
-
|
|
74367
|
-
|
|
74368
|
-
|
|
74369
|
-
|
|
74370
|
-
|
|
74371
|
-
|
|
74372
|
-
|
|
74373
|
-
|
|
74374
|
-
|
|
74375
|
-
|
|
74376
|
-
|
|
74377
|
-
|
|
74378
|
-
|
|
74379
|
-
|
|
74380
|
-
|
|
74381
|
-
|
|
74382
|
-
|
|
74383
|
-
|
|
74384
|
-
|
|
74385
|
-
(
|
|
74386
|
-
|
|
74387
|
-
|
|
74388
|
-
|
|
74389
|
-
|
|
74390
|
-
|
|
74391
|
-
|
|
74392
|
-
|
|
74393
|
-
|
|
74394
|
-
|
|
74395
|
-
|
|
74396
|
-
|
|
74397
|
-
|
|
74398
|
-
|
|
74399
|
-
|
|
74400
|
-
|
|
74401
|
-
|
|
74402
|
-
|
|
74403
|
-
|
|
74404
|
-
|
|
74405
|
-
|
|
74406
|
-
|
|
74407
|
-
|
|
74408
|
-
|
|
74409
|
-
|
|
74410
|
-
|
|
74411
|
-
|
|
74412
|
-
[
|
|
74413
|
-
[
|
|
74414
|
-
|
|
74415
|
-
|
|
74416
|
-
|
|
74417
|
-
|
|
74418
|
-
|
|
74419
|
-
|
|
74420
|
-
|
|
74421
|
-
|
|
74422
|
-
|
|
74423
|
-
|
|
74424
|
-
|
|
74425
|
-
|
|
74426
|
-
|
|
74427
|
-
|
|
74428
|
-
|
|
74429
|
-
|
|
74430
|
-
|
|
74431
|
-
|
|
74432
|
-
|
|
74433
|
-
|
|
74434
|
-
|
|
74435
|
-
|
|
74436
|
-
|
|
74437
|
-
|
|
74438
|
-
|
|
74439
|
-
|
|
74440
|
-
|
|
74441
|
-
|
|
74442
|
-
|
|
74443
|
-
|
|
74444
|
-
|
|
74445
|
-
|
|
74446
|
-
|
|
74447
|
-
|
|
74448
|
-
|
|
74449
|
-
|
|
74450
|
-
|
|
74451
|
-
|
|
74452
|
-
|
|
74453
|
-
|
|
74454
|
-
|
|
74455
|
-
|
|
74456
|
-
|
|
74457
|
-
|
|
74458
|
-
|
|
74459
|
-
|
|
74460
|
-
|
|
74461
|
-
|
|
74462
|
-
|
|
74463
|
-
|
|
74464
|
-
|
|
74465
|
-
|
|
74466
|
-
|
|
74467
|
-
|
|
74468
|
-
|
|
74469
|
-
|
|
74470
|
-
|
|
74471
|
-
|
|
74472
|
-
|
|
74473
|
-
|
|
74474
|
-
|
|
74475
|
-
|
|
74476
|
-
|
|
74477
|
-
|
|
74478
|
-
|
|
74479
|
-
|
|
74480
|
-
|
|
74481
|
-
|
|
74482
|
-
|
|
74483
|
-
|
|
74484
|
-
|
|
74485
|
-
|
|
74486
|
-
|
|
74487
|
-
|
|
74488
|
-
|
|
74489
|
-
|
|
74490
|
-
|
|
74127
|
+
template: `
|
|
74128
|
+
<div [ngClass]="getContainerClasses()" class="min-h-screen relative">
|
|
74129
|
+
<!-- Scroll Progress Bar -->
|
|
74130
|
+
<div
|
|
74131
|
+
[class]="embedded ? 'sticky top-0 left-0 right-0 h-1 z-[60] bg-slate-200/30' : 'fixed top-0 left-0 right-0 h-1 z-[60] bg-slate-200/30'">
|
|
74132
|
+
<div
|
|
74133
|
+
[style.width.%]="scrollProgress()"
|
|
74134
|
+
[ngClass]="isLightMode() ? 'bg-gradient-to-r from-blue-500 to-purple-500' : 'bg-gradient-to-r from-blue-400 to-purple-400'"
|
|
74135
|
+
class="h-full transition-all duration-200 ease-out">
|
|
74136
|
+
</div>
|
|
74137
|
+
</div>
|
|
74138
|
+
|
|
74139
|
+
<!-- Background -->
|
|
74140
|
+
@if (!isLightMode()) {
|
|
74141
|
+
<div class="fixed inset-0 bg-slate-900">
|
|
74142
|
+
<div
|
|
74143
|
+
class="absolute inset-0 bg-[radial-gradient(ellipse_at_top_right,_var(--tw-gradient-stops))] from-slate-800 via-slate-900 to-slate-900"></div>
|
|
74144
|
+
</div>
|
|
74145
|
+
}
|
|
74146
|
+
|
|
74147
|
+
<div class="relative z-[51]">
|
|
74148
|
+
<!-- Dashboard Header -->
|
|
74149
|
+
<symphiq-dashboard-header
|
|
74150
|
+
[title]="currentAnalysis()?.profileAnalysisStructured?.businessName || 'Profile Analysis'"
|
|
74151
|
+
[subtitle]="getAnalysisSubtitle()"
|
|
74152
|
+
[currentSection]="getAnalysisSubtitle()"
|
|
74153
|
+
[viewMode]="viewMode"
|
|
74154
|
+
[viewModeLabel]="displayModeLabel()"
|
|
74155
|
+
[isLoading]="isLoading"
|
|
74156
|
+
[requestedByUser]="requestedByUser()"
|
|
74157
|
+
[createdDate]="currentAnalysis()?.selfContentCompletedDate"
|
|
74158
|
+
(searchClick)="openSearch()"
|
|
74159
|
+
(viewModeClick)="openViewModeSwitcher()"
|
|
74160
|
+
/>
|
|
74161
|
+
|
|
74162
|
+
<!-- Journey Progress Banner -->
|
|
74163
|
+
@if (isSimplifiedView() && !isOnboarded) {
|
|
74164
|
+
<symphiq-journey-progress-indicator
|
|
74165
|
+
[viewMode]="viewMode"
|
|
74166
|
+
[currentStepId]="isMetricAnalysis() ? 'metric-analysis' : (isFocusAreaAnalysis() ? 'focus-area-analysis' : 'shop-analysis')"
|
|
74167
|
+
[showNextStepAction]="false"
|
|
74168
|
+
/>
|
|
74169
|
+
}
|
|
74170
|
+
|
|
74171
|
+
<!-- Main Content -->
|
|
74172
|
+
<main class="relative z-10 max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-12 space-y-12">
|
|
74173
|
+
|
|
74174
|
+
<!-- Welcome Banner (Simplified View Only) -->
|
|
74175
|
+
@if (isSimplifiedView()) {
|
|
74176
|
+
<div class="mb-12">
|
|
74177
|
+
@if (!isFocusAreaAnalysis() && !isMetricAnalysis()) {
|
|
74178
|
+
<symphiq-shop-welcome-banner
|
|
74179
|
+
[viewMode]="viewMode"
|
|
74180
|
+
[businessName]="currentAnalysis()?.profileAnalysisStructured?.businessName || 'your shop'"
|
|
74181
|
+
[isOnboarded]="isOnboarded"
|
|
74182
|
+
/>
|
|
74183
|
+
}
|
|
74184
|
+
@if (isFocusAreaAnalysis()) {
|
|
74185
|
+
<symphiq-focus-area-welcome-banner
|
|
74186
|
+
[viewMode]="viewMode"
|
|
74187
|
+
[focusAreaDomain]="focusAreaDomain()"
|
|
74188
|
+
[focusAreaName]="focusAreaName()"
|
|
74189
|
+
[focusAreaDetails]="focusAreaDetails"
|
|
74190
|
+
/>
|
|
74191
|
+
}
|
|
74192
|
+
@if (isMetricAnalysis()) {
|
|
74193
|
+
<symphiq-metric-welcome-banner
|
|
74194
|
+
[viewMode]="viewMode"
|
|
74195
|
+
[metricName]="currentAnalysis()?.profileAnalysisStructured?.metricExecutiveSummary?.metric"
|
|
74196
|
+
[isOnboarded]="isOnboarded"
|
|
74197
|
+
/>
|
|
74198
|
+
}
|
|
74199
|
+
</div>
|
|
74200
|
+
}
|
|
74201
|
+
|
|
74202
|
+
<!-- Simplified View Content -->
|
|
74203
|
+
@if (isSimplifiedView()) {
|
|
74204
|
+
<!-- Strategic Insights & Goals -->
|
|
74205
|
+
<div class="mb-8">
|
|
74206
|
+
<symphiq-strategic-goals-tiled-grid
|
|
74207
|
+
[goals]="strategicRoadmapGoals()"
|
|
74208
|
+
[viewMode]="viewMode"
|
|
74209
|
+
(viewMoreClick)="openGoalModal($event)"
|
|
74210
|
+
/>
|
|
74211
|
+
</div>
|
|
74212
|
+
|
|
74213
|
+
<!-- Supporting Business Context -->
|
|
74214
|
+
@if (nonStrategicSections().length > 0) {
|
|
74215
|
+
<div>
|
|
74216
|
+
<symphiq-collapsible-analysis-section-group
|
|
74217
|
+
[sections]="nonStrategicSections()"
|
|
74218
|
+
[viewMode]="viewMode"
|
|
74219
|
+
[executiveSummary]="executiveSummary()"
|
|
74220
|
+
[focusAreaExecutiveSummary]="focusAreaExecutiveSummary()"
|
|
74221
|
+
[metricExecutiveSummary]="metricExecutiveSummary()"
|
|
74222
|
+
[metricName]="metricName()"
|
|
74223
|
+
[allGoals]="allGoals()"
|
|
74224
|
+
[allMetrics]="allMetrics()"
|
|
74225
|
+
[allCharts]="allCharts()"
|
|
74226
|
+
[allInsights]="allInsights()"
|
|
74227
|
+
/>
|
|
74228
|
+
</div>
|
|
74229
|
+
}
|
|
74230
|
+
}
|
|
74231
|
+
|
|
74232
|
+
<!-- Compact & Expanded View Content -->
|
|
74233
|
+
@if (!isSimplifiedView()) {
|
|
74234
|
+
<!-- SHOP Executive Summary -->
|
|
74235
|
+
@if (!isFocusAreaAnalysis() && executiveSummary(); as summary) {
|
|
74236
|
+
<section id="section-executive-summary" class="space-y-6 scroll-mt-24">
|
|
74237
|
+
<!-- Summary Banner -->
|
|
74238
|
+
<div [ngClass]="getBannerClasses()" class="rounded-2xl p-8 shadow-xl">
|
|
74239
|
+
<div class="space-y-6">
|
|
74240
|
+
<div class="flex items-start justify-between gap-4">
|
|
74241
|
+
<div class="flex-1">
|
|
74242
|
+
<h2 [ngClass]="getSectionTitleClasses()" class="text-2xl font-bold mb-3">
|
|
74243
|
+
Executive Summary
|
|
74244
|
+
</h2>
|
|
74245
|
+
<p [ngClass]="getTextClasses()" class="text-lg leading-relaxed">
|
|
74246
|
+
{{ summary.gradeRationale }}
|
|
74247
|
+
</p>
|
|
74248
|
+
</div>
|
|
74249
|
+
@if (summary.overallGrade) {
|
|
74250
|
+
<symphiq-grade-badge
|
|
74251
|
+
[grade]="summary.overallGrade"
|
|
74252
|
+
[gradeRationale]="summary.gradeRationale || ''"
|
|
74253
|
+
[viewMode]="viewMode"
|
|
74254
|
+
/>
|
|
74255
|
+
}
|
|
74256
|
+
</div>
|
|
74257
|
+
|
|
74258
|
+
@if (summary.narrative) {
|
|
74259
|
+
<div [ngClass]="getNarrativeClasses()" class="rounded-xl p-6">
|
|
74260
|
+
<h3 [ngClass]="getSubheadingClasses()" class="text-lg font-semibold mb-3">
|
|
74261
|
+
Analysis Narrative
|
|
74262
|
+
</h3>
|
|
74263
|
+
<div class="relative">
|
|
74264
|
+
@if (summary.napkinVisual && summary.napkinVisual.enabled) {
|
|
74265
|
+
<div class="mb-6 lg:float-left lg:mr-6 lg:mb-4 lg:max-w-[66%]">
|
|
74266
|
+
<symphiq-napkin-visual-placeholder
|
|
74267
|
+
[visual]="summary.napkinVisual"
|
|
74268
|
+
[viewMode]="viewMode"
|
|
74269
|
+
/>
|
|
74270
|
+
</div>
|
|
74271
|
+
}
|
|
74272
|
+
<p [ngClass]="getTextClasses()" class="text-sm leading-relaxed whitespace-pre-line">
|
|
74273
|
+
{{ summary.narrative }}
|
|
74274
|
+
</p>
|
|
74275
|
+
<div class="clear-both"></div>
|
|
74276
|
+
</div>
|
|
74277
|
+
</div>
|
|
74278
|
+
}
|
|
74279
|
+
|
|
74280
|
+
<!-- Stats -->
|
|
74281
|
+
<div class="grid grid-cols-1 md:grid-cols-3 gap-4">
|
|
74282
|
+
<button
|
|
74283
|
+
type="button"
|
|
74284
|
+
(click)="onKeyStrengthsClick(summary)"
|
|
74285
|
+
[ngClass]="getKeyStrengthsStatCardClasses()"
|
|
74286
|
+
class="p-4 rounded-xl text-left transition-all duration-200 hover:scale-[1.02] active:scale-[0.98] group cursor-pointer">
|
|
74287
|
+
<div [ngClass]="getKeyStrengthsStatLabelClasses()" class="text-xs font-semibold uppercase mb-1">
|
|
74288
|
+
Key Strengths
|
|
74289
|
+
</div>
|
|
74290
|
+
<div [ngClass]="getKeyStrengthsStatValueClasses()" class="text-3xl font-bold mb-2">
|
|
74291
|
+
{{ summary.keyStrengths?.length || 0 }}
|
|
74292
|
+
</div>
|
|
74293
|
+
<div class="flex items-center gap-1.5 text-xs font-medium">
|
|
74294
|
+
<span [ngClass]="getKeyStrengthsButtonTextClasses()">View Details</span>
|
|
74295
|
+
<symphiq-icon
|
|
74296
|
+
[icon]="{ name: 'chevron-right', source: IconSourceEnum.HEROICONS }"
|
|
74297
|
+
size="w-4 h-4"
|
|
74298
|
+
[ngClass]="getKeyStrengthsButtonTextClasses()"
|
|
74299
|
+
class="transition-transform group-hover:translate-x-1"
|
|
74300
|
+
/>
|
|
74301
|
+
</div>
|
|
74302
|
+
</button>
|
|
74303
|
+
<button
|
|
74304
|
+
type="button"
|
|
74305
|
+
(click)="onCriticalGapsClick(summary)"
|
|
74306
|
+
[ngClass]="getCriticalGapsStatCardClasses()"
|
|
74307
|
+
class="p-4 rounded-xl text-left transition-all duration-200 hover:scale-[1.02] active:scale-[0.98] group cursor-pointer">
|
|
74308
|
+
<div [ngClass]="getCriticalGapsStatLabelClasses()" class="text-xs font-semibold uppercase mb-1">
|
|
74309
|
+
Critical Gaps
|
|
74310
|
+
</div>
|
|
74311
|
+
<div [ngClass]="getCriticalGapsStatValueClasses()" class="text-3xl font-bold mb-2">
|
|
74312
|
+
{{ summary.criticalGaps?.length || 0 }}
|
|
74313
|
+
</div>
|
|
74314
|
+
<div class="flex items-center gap-1.5 text-xs font-medium">
|
|
74315
|
+
<span [ngClass]="getCriticalGapsButtonTextClasses()">View Details</span>
|
|
74316
|
+
<symphiq-icon
|
|
74317
|
+
[icon]="{ name: 'chevron-right', source: IconSourceEnum.HEROICONS }"
|
|
74318
|
+
size="w-4 h-4"
|
|
74319
|
+
[ngClass]="getCriticalGapsButtonTextClasses()"
|
|
74320
|
+
class="transition-transform group-hover:translate-x-1"
|
|
74321
|
+
/>
|
|
74322
|
+
</div>
|
|
74323
|
+
</button>
|
|
74324
|
+
<button
|
|
74325
|
+
type="button"
|
|
74326
|
+
(click)="scrollToQuickWins()"
|
|
74327
|
+
[ngClass]="getQuickWinsStatCardClasses()"
|
|
74328
|
+
class="p-4 rounded-xl text-left transition-all duration-200 hover:scale-[1.02] active:scale-[0.98] group cursor-pointer">
|
|
74329
|
+
<div [ngClass]="getQuickWinsStatLabelClasses()" class="text-xs font-semibold uppercase mb-1">
|
|
74330
|
+
Quick Wins
|
|
74331
|
+
</div>
|
|
74332
|
+
<div [ngClass]="getQuickWinsStatValueClasses()" class="text-3xl font-bold mb-2">
|
|
74333
|
+
{{ summary.quickWins?.length || 0 }}
|
|
74334
|
+
</div>
|
|
74335
|
+
<div class="flex items-center gap-1.5 text-xs font-medium">
|
|
74336
|
+
<span [ngClass]="getQuickWinsButtonTextClasses()">Details Below</span>
|
|
74337
|
+
<symphiq-icon
|
|
74338
|
+
[icon]="{ name: 'chevron-down', source: IconSourceEnum.HEROICONS }"
|
|
74339
|
+
size="w-4 h-4"
|
|
74340
|
+
[ngClass]="getQuickWinsButtonTextClasses()"
|
|
74341
|
+
class="transition-transform group-hover:translate-y-1 animate-bounce"
|
|
74342
|
+
/>
|
|
74343
|
+
</div>
|
|
74344
|
+
</button>
|
|
74345
|
+
</div>
|
|
74346
|
+
</div>
|
|
74347
|
+
</div>
|
|
74348
|
+
|
|
74349
|
+
<!-- Quick Wins -->
|
|
74350
|
+
@if (summary.quickWins && summary.quickWins.length > 0) {
|
|
74351
|
+
<div id="quick-wins-section" class="space-y-4 scroll-mt-24">
|
|
74352
|
+
<h3 [ngClass]="getSectionTitleClasses()" class="text-xl font-bold">
|
|
74353
|
+
Quick Wins
|
|
74354
|
+
</h3>
|
|
74355
|
+
<div class="grid grid-cols-1 lg:grid-cols-2 gap-6">
|
|
74356
|
+
@for (win of summary.quickWins; track $index) {
|
|
74357
|
+
<div [ngClass]="getQuickWinCardClasses()"
|
|
74358
|
+
class="rounded-xl p-6 transition-all duration-300">
|
|
74359
|
+
<div class="space-y-4">
|
|
74360
|
+
<div class="flex items-start gap-3">
|
|
74361
|
+
<span [ngClass]="getNumberBadgeClasses()"
|
|
74362
|
+
class="flex-shrink-0 w-8 h-8 rounded-full flex items-center justify-center text-sm font-bold">
|
|
74363
|
+
{{ $index + 1 }}
|
|
74364
|
+
</span>
|
|
74365
|
+
<p [ngClass]="getQuickWinTextClasses()" class="font-semibold leading-tight flex-1">
|
|
74366
|
+
{{ win.action }}
|
|
74367
|
+
</p>
|
|
74368
|
+
</div>
|
|
74369
|
+
|
|
74370
|
+
<div class="flex flex-wrap gap-2">
|
|
74371
|
+
<span [ngClass]="getEffortBadgeClasses(win.effort)"
|
|
74372
|
+
class="px-3 py-1 rounded-full text-xs font-semibold">
|
|
74373
|
+
{{ formatLabel(win.effort) }} Effort
|
|
74374
|
+
</span>
|
|
74375
|
+
<span [ngClass]="getImpactBadgeClasses(win.impact)"
|
|
74376
|
+
class="px-3 py-1 rounded-full text-xs font-semibold">
|
|
74377
|
+
{{ formatLabel(win.impact) }} Impact
|
|
74378
|
+
</span>
|
|
74379
|
+
</div>
|
|
74380
|
+
|
|
74381
|
+
@if (win.estimatedTimeframe) {
|
|
74382
|
+
<div class="flex items-center gap-2 text-sm" [ngClass]="getMetaTextClasses()">
|
|
74383
|
+
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
74384
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
|
74385
|
+
d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"/>
|
|
74386
|
+
</svg>
|
|
74387
|
+
<span>{{ win.estimatedTimeframe }}</span>
|
|
74388
|
+
</div>
|
|
74389
|
+
}
|
|
74390
|
+
|
|
74391
|
+
@if (win.relatedGoalId) {
|
|
74392
|
+
<div class="space-y-2">
|
|
74393
|
+
<h4 [ngClass]="getMetaTextClasses()"
|
|
74394
|
+
class="text-xs font-semibold uppercase tracking-wider">
|
|
74395
|
+
Related Goal
|
|
74396
|
+
</h4>
|
|
74397
|
+
<symphiq-related-goal-chips
|
|
74398
|
+
[relatedGoalIds]="[win.relatedGoalId]"
|
|
74399
|
+
[allGoals]="allGoals()"
|
|
74400
|
+
[viewMode]="viewMode"
|
|
74401
|
+
/>
|
|
74402
|
+
</div>
|
|
74403
|
+
}
|
|
74404
|
+
</div>
|
|
74405
|
+
</div>
|
|
74406
|
+
}
|
|
74407
|
+
</div>
|
|
74408
|
+
</div>
|
|
74409
|
+
}
|
|
74410
|
+
</section>
|
|
74411
|
+
}
|
|
74412
|
+
|
|
74413
|
+
<!-- FOCUS_AREA Executive Summary -->
|
|
74414
|
+
@if (isFocusAreaAnalysis() && focusAreaExecutiveSummary(); as summary) {
|
|
74415
|
+
<symphiq-focus-area-executive-summary
|
|
74416
|
+
[viewMode]="viewMode"
|
|
74417
|
+
[summary]="summary"
|
|
74418
|
+
[allGoals]="allGoals()"
|
|
74419
|
+
(topPrioritiesClick)="handleTopPrioritiesClick()"
|
|
74420
|
+
(priorityDetailClick)="handlePriorityDetailClick($event)"
|
|
74421
|
+
/>
|
|
74422
|
+
}
|
|
74423
|
+
|
|
74424
|
+
<!-- METRIC Executive Summary -->
|
|
74425
|
+
@if (isMetricAnalysis() && metricExecutiveSummary(); as summary) {
|
|
74426
|
+
<symphiq-metric-executive-summary
|
|
74427
|
+
[viewMode]="viewMode"
|
|
74428
|
+
[summary]="summary"
|
|
74429
|
+
[metricName]="metricName()"
|
|
74430
|
+
[allGoals]="allGoals()"
|
|
74431
|
+
(topPrioritiesClick)="handleMetricTopPrioritiesClick()"
|
|
74432
|
+
(priorityDetailClick)="handleMetricPriorityDetailClick($event)"
|
|
74433
|
+
/>
|
|
74434
|
+
}
|
|
74435
|
+
|
|
74436
|
+
<!-- Divider Before First Section -->
|
|
74437
|
+
@if (sections(); as sectionList) {
|
|
74438
|
+
@if (sectionList.length > 0 && sectionList[0].icon) {
|
|
74439
|
+
<symphiq-section-divider
|
|
74440
|
+
[viewMode]="viewMode"
|
|
74441
|
+
[sectionIcon]="sectionList[0].icon"
|
|
74442
|
+
/>
|
|
74443
|
+
}
|
|
74444
|
+
}
|
|
74445
|
+
|
|
74446
|
+
<!-- Profile Analysis Sections -->
|
|
74447
|
+
@if (sections(); as sectionList) {
|
|
74448
|
+
<section class="space-y-8">
|
|
74449
|
+
@for (section of sectionList; track section.id; let idx = $index; let last = $last) {
|
|
74450
|
+
<div [id]="'section-' + section.id" [ngClass]="getSectionCardClasses()"
|
|
74451
|
+
class="rounded-xl p-8 scroll-mt-24">
|
|
74452
|
+
<!-- Icon and Title -->
|
|
74453
|
+
<div class="flex items-start gap-3 mb-6">
|
|
74454
|
+
@if (section.icon) {
|
|
74455
|
+
<div [ngClass]="getSectionIconClasses()"
|
|
74456
|
+
class="flex-shrink-0 w-12 h-12 rounded-xl flex items-center justify-center">
|
|
74457
|
+
<symphiq-icon [icon]="section.icon" size="w-6 h-6"></symphiq-icon>
|
|
74458
|
+
</div>
|
|
74459
|
+
}
|
|
74460
|
+
<div class="flex-1">
|
|
74461
|
+
<h3 [ngClass]="getSectionTitleClasses()" class="text-2xl font-bold">
|
|
74462
|
+
{{ section.title }}
|
|
74463
|
+
</h3>
|
|
74464
|
+
</div>
|
|
74465
|
+
</div>
|
|
74466
|
+
|
|
74467
|
+
<!-- Description and Visual Side-by-Side -->
|
|
74468
|
+
@if (section.description || (section.visual && section.visual.enabled)) {
|
|
74469
|
+
<div class="mb-6 flex flex-col lg:flex-row gap-6 items-start"
|
|
74470
|
+
[class.lg:flex-row-reverse]="idx % 2 === 0">
|
|
74471
|
+
@if (section.visual && section.visual.enabled) {
|
|
74472
|
+
<div class="w-full lg:w-2/3">
|
|
74473
|
+
<symphiq-napkin-visual-placeholder
|
|
74474
|
+
[visual]="section.visual"
|
|
74475
|
+
[viewMode]="viewMode"
|
|
74476
|
+
/>
|
|
74477
|
+
</div>
|
|
74478
|
+
}
|
|
74479
|
+
@if (section.description) {
|
|
74480
|
+
<div class="w-full"
|
|
74481
|
+
[class.lg:w-1/3]="section.visual && section.visual.enabled" [class.lg:w-full]="!section.visual || !section.visual.enabled">
|
|
74482
|
+
<p [ngClass]="getSectionDescriptionClasses()"
|
|
74483
|
+
class="text-sm leading-relaxed whitespace-pre-line">
|
|
74484
|
+
{{ section.description }}
|
|
74485
|
+
</p>
|
|
74486
|
+
</div>
|
|
74487
|
+
}
|
|
74488
|
+
</div>
|
|
74489
|
+
}
|
|
74490
|
+
|
|
74491
|
+
<!-- Section Content -->
|
|
74492
|
+
<symphiq-profile-section-content
|
|
74493
|
+
[section]="section"
|
|
74494
|
+
[executiveSummary]="section.id === 'executive-summary' ? executiveSummary() : undefined"
|
|
74495
|
+
[viewMode]="viewMode"
|
|
74496
|
+
[sectionIndex]="idx"
|
|
74497
|
+
[allGoals]="allGoals()"
|
|
74498
|
+
[allMetrics]="allMetrics()"
|
|
74499
|
+
[allCharts]="allCharts()"
|
|
74500
|
+
[allInsights]="allInsights()"
|
|
74501
|
+
/>
|
|
74502
|
+
</div>
|
|
74503
|
+
|
|
74504
|
+
<!-- Section Divider (between sections) -->
|
|
74505
|
+
@if (!last) {
|
|
74506
|
+
<symphiq-section-divider
|
|
74507
|
+
[viewMode]="viewMode"
|
|
74508
|
+
[sectionIcon]="sectionList[idx + 1].icon"
|
|
74509
|
+
/>
|
|
74510
|
+
}
|
|
74511
|
+
}
|
|
74512
|
+
</section>
|
|
74513
|
+
}
|
|
74514
|
+
}
|
|
74515
|
+
|
|
74516
|
+
</main>
|
|
74517
|
+
|
|
74518
|
+
<!-- Table of Contents (Compact & Expanded Views) -->
|
|
74519
|
+
@if (!isSimplifiedView() && sections()) {
|
|
74520
|
+
<symphiq-floating-toc
|
|
74521
|
+
[sections]="tocSections()"
|
|
74522
|
+
[viewMode]="viewMode"
|
|
74523
|
+
[embedded]="embedded"
|
|
74524
|
+
[scrollElement]="scrollElement ?? undefined"
|
|
74525
|
+
/>
|
|
74526
|
+
}
|
|
74527
|
+
|
|
74528
|
+
<!-- Section Navigation Dots (Compact & Expanded Views) -->
|
|
74529
|
+
@if (!isSimplifiedView() && sections()) {
|
|
74530
|
+
<symphiq-section-navigation
|
|
74531
|
+
[sections]="tocSections()"
|
|
74532
|
+
[viewMode]="viewMode"
|
|
74533
|
+
[embedded]="embedded"
|
|
74534
|
+
[scrollElement]="scrollElement ?? undefined"
|
|
74535
|
+
/>
|
|
74536
|
+
}
|
|
74537
|
+
|
|
74538
|
+
<!-- Search Modal -->
|
|
74539
|
+
<symphiq-search-modal
|
|
74540
|
+
[isOpen]="isSearchOpen()"
|
|
74541
|
+
[isLightMode]="isLightMode()"
|
|
74542
|
+
(close)="closeSearch()"
|
|
74543
|
+
/>
|
|
74544
|
+
|
|
74545
|
+
<!-- View Mode Switcher Modal -->
|
|
74546
|
+
<symphiq-view-mode-switcher-modal
|
|
74547
|
+
[isOpen]="isViewModeSwitcherOpen()"
|
|
74548
|
+
[currentMode]="currentDisplayMode()"
|
|
74549
|
+
[viewMode]="viewMode"
|
|
74550
|
+
(close)="closeViewModeSwitcher()"
|
|
74551
|
+
(modeSelected)="handleDisplayModeChange($event)"
|
|
74552
|
+
/>
|
|
74553
|
+
|
|
74554
|
+
<!-- Profile Analysis Modal -->
|
|
74555
|
+
<symphiq-profile-analysis-modal
|
|
74556
|
+
[isLightMode]="isLightMode()"
|
|
74557
|
+
[allMetrics]="allMetrics()"
|
|
74558
|
+
[allInsights]="allInsights()"
|
|
74559
|
+
[allBusinessInsights]="allBusinessInsights()"
|
|
74560
|
+
[allCharts]="allCharts()"
|
|
74561
|
+
>
|
|
74562
|
+
@if (modalType() === 'goal-detail' && getGoalDetailData(); as data) {
|
|
74563
|
+
<symphiq-goal-card
|
|
74564
|
+
[goal]="data.goal"
|
|
74565
|
+
[viewMode]="data.viewMode"
|
|
74566
|
+
[isInModal]="true"
|
|
74567
|
+
[allMetrics]="allMetrics()"
|
|
74568
|
+
[allCharts]="allCharts()"
|
|
74569
|
+
[allInsights]="allInsights()"
|
|
74570
|
+
[currentModalState]="getCurrentModalState()"
|
|
74571
|
+
/>
|
|
74572
|
+
}
|
|
74573
|
+
@if (modalType() === 'goal-objectives' && getGoalDetailData(); as data) {
|
|
74574
|
+
<symphiq-goal-objectives-modal-content
|
|
74575
|
+
[goal]="data.goal"
|
|
74576
|
+
[viewMode]="data.viewMode"
|
|
74577
|
+
/>
|
|
74578
|
+
}
|
|
74579
|
+
@if (modalType() === 'objective-strategies' && getObjectiveStrategiesData(); as data) {
|
|
74580
|
+
<symphiq-objective-strategies-modal-content
|
|
74581
|
+
[objective]="data.objective"
|
|
74582
|
+
[goalTitle]="data.goalTitle"
|
|
74583
|
+
[viewMode]="data.viewMode"
|
|
74584
|
+
/>
|
|
74585
|
+
}
|
|
74586
|
+
@if (modalType() === 'strategy-recommendations' && getStrategyRecommendationsData(); as data) {
|
|
74587
|
+
<symphiq-strategy-recommendations-modal-content
|
|
74588
|
+
[strategy]="data.strategy"
|
|
74589
|
+
[objectiveTitle]="data.objectiveTitle"
|
|
74590
|
+
[goalTitle]="data.goalTitle"
|
|
74591
|
+
[viewMode]="data.viewMode"
|
|
74592
|
+
[allMetrics]="allMetrics()"
|
|
74593
|
+
[allCharts]="allCharts()"
|
|
74594
|
+
[allInsights]="allInsights()"
|
|
74595
|
+
[allBusinessInsights]="allBusinessInsights()"
|
|
74596
|
+
[currentModalState]="getCurrentModalState()"
|
|
74597
|
+
/>
|
|
74598
|
+
}
|
|
74599
|
+
@if (modalType() === 'category-detail' && getCategoryDetailData(); as data) {
|
|
74600
|
+
<symphiq-category-detail-modal-content
|
|
74601
|
+
[category]="data.category"
|
|
74602
|
+
[viewMode]="data.viewMode"
|
|
74603
|
+
[scrollToSection]="data.scrollToSection"
|
|
74604
|
+
/>
|
|
74605
|
+
}
|
|
74606
|
+
@if (modalType() === 'strength-detail' && getStrengthDetailData(); as data) {
|
|
74607
|
+
<symphiq-strength-detail-modal-content
|
|
74608
|
+
[strength]="data.strength"
|
|
74609
|
+
[viewMode]="data.viewMode"
|
|
74610
|
+
[allFunnelStrengths]="funnelStrengths()"
|
|
74611
|
+
[currentModalState]="getCurrentModalState()"
|
|
74612
|
+
/>
|
|
74613
|
+
}
|
|
74614
|
+
@if (modalType() === 'gap-detail' && getGapDetailData(); as data) {
|
|
74615
|
+
<symphiq-gap-detail-modal-content
|
|
74616
|
+
[gap]="data.gap"
|
|
74617
|
+
[viewMode]="data.viewMode"
|
|
74618
|
+
[allGoals]="allGoals()"
|
|
74619
|
+
[allWeaknesses]="funnelWeaknesses()"
|
|
74620
|
+
[currentModalState]="getCurrentModalState()"
|
|
74621
|
+
/>
|
|
74622
|
+
}
|
|
74623
|
+
@if (modalType() === 'opportunity-detail' && getOpportunityDetailData(); as data) {
|
|
74624
|
+
<symphiq-opportunity-detail-modal-content
|
|
74625
|
+
[opportunity]="data.opportunity"
|
|
74626
|
+
[viewMode]="data.viewMode"
|
|
74627
|
+
[allStrengths]="funnelStrengths()"
|
|
74628
|
+
[currentModalState]="getCurrentModalState()"
|
|
74629
|
+
/>
|
|
74630
|
+
}
|
|
74631
|
+
</symphiq-profile-analysis-modal>
|
|
74632
|
+
|
|
74633
|
+
<!-- Funnel Analysis Modal (for insights and metrics from profile goals) -->
|
|
74634
|
+
<symphiq-funnel-analysis-modal
|
|
74635
|
+
[isLightMode]="isLightMode()"
|
|
74636
|
+
[viewMode]="viewMode"
|
|
74637
|
+
[allMetrics]="allMetrics()"
|
|
74638
|
+
[allInsights]="allInsights()"
|
|
74639
|
+
[allCharts]="allCharts()"
|
|
74640
|
+
/>
|
|
74641
|
+
|
|
74642
|
+
<!-- Business Analysis Modal (for napkin visuals and other content) -->
|
|
74643
|
+
<symphiq-business-analysis-modal [isLightMode]="isLightMode()"/>
|
|
74644
|
+
|
|
74645
|
+
<!-- Tooltip Container -->
|
|
74646
|
+
<symphiq-tooltip-container/>
|
|
74647
|
+
</div>
|
|
74491
74648
|
`
|
|
74492
74649
|
}]
|
|
74493
74650
|
}], () => [], { funnelModalComponent: [{
|
|
@@ -74495,7 +74652,7 @@ class SymphiqProfileAnalysisDashboardComponent {
|
|
|
74495
74652
|
args: [ModalComponent]
|
|
74496
74653
|
}], viewMode: [{
|
|
74497
74654
|
type: Input
|
|
74498
|
-
}], embedded: [{
|
|
74655
|
+
}], requestedByUser: [{ type: i0.Input, args: [{ isSignal: true, alias: "requestedByUser", required: false }] }], createdDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "createdDate", required: false }] }], embedded: [{
|
|
74499
74656
|
type: Input
|
|
74500
74657
|
}], profileAnalysis: [{
|
|
74501
74658
|
type: Input
|
|
@@ -74509,11 +74666,17 @@ class SymphiqProfileAnalysisDashboardComponent {
|
|
|
74509
74666
|
type: Input
|
|
74510
74667
|
}], isOnboarded: [{
|
|
74511
74668
|
type: Input
|
|
74669
|
+
}], scrollEvent: [{
|
|
74670
|
+
type: Input
|
|
74671
|
+
}], scrollElement: [{
|
|
74672
|
+
type: Input
|
|
74673
|
+
}], isLoading: [{
|
|
74674
|
+
type: Input
|
|
74512
74675
|
}], onWindowScroll: [{
|
|
74513
74676
|
type: HostListener,
|
|
74514
74677
|
args: ['window:scroll', ['$event']]
|
|
74515
74678
|
}] }); })();
|
|
74516
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqProfileAnalysisDashboardComponent, { className: "SymphiqProfileAnalysisDashboardComponent", filePath: "lib/components/profile-analysis-dashboard/symphiq-profile-analysis-dashboard.component.ts", lineNumber:
|
|
74679
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqProfileAnalysisDashboardComponent, { className: "SymphiqProfileAnalysisDashboardComponent", filePath: "lib/components/profile-analysis-dashboard/symphiq-profile-analysis-dashboard.component.ts", lineNumber: 613 }); })();
|
|
74517
74680
|
|
|
74518
74681
|
class ScrollProgressBarComponent {
|
|
74519
74682
|
constructor() {
|