@eric-emg/symphiq-components 1.2.161 → 1.2.162
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 +437 -277
- package/fesm2022/symphiq-components.mjs.map +1 -1
- package/index.d.ts +38 -4
- package/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -7,6 +7,7 @@ import { map, catchError, shareReplay, debounceTime, switchMap } from 'rxjs/oper
|
|
|
7
7
|
import * as i1 from '@angular/common/http';
|
|
8
8
|
import * as i2 from '@angular/platform-browser';
|
|
9
9
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
10
|
+
import confetti from 'canvas-confetti';
|
|
10
11
|
import * as i1$1 from '@angular/common';
|
|
11
12
|
import { NgClass, CommonModule, isPlatformBrowser, DOCUMENT } from '@angular/common';
|
|
12
13
|
import * as i2$1 from '@angular/forms';
|
|
@@ -2436,6 +2437,103 @@ class CrossDashboardRelationshipsService {
|
|
|
2436
2437
|
}]
|
|
2437
2438
|
}], null, null); })();
|
|
2438
2439
|
|
|
2440
|
+
class ConfettiService {
|
|
2441
|
+
constructor() {
|
|
2442
|
+
this.lightModeColors = [
|
|
2443
|
+
'#3b82f6',
|
|
2444
|
+
'#06b6d4',
|
|
2445
|
+
'#a855f7',
|
|
2446
|
+
'#60a5fa',
|
|
2447
|
+
'#22d3ee'
|
|
2448
|
+
];
|
|
2449
|
+
this.darkModeColors = [
|
|
2450
|
+
'#60a5fa',
|
|
2451
|
+
'#22d3ee',
|
|
2452
|
+
'#c084fc',
|
|
2453
|
+
'#93c5fd',
|
|
2454
|
+
'#67e8f9'
|
|
2455
|
+
];
|
|
2456
|
+
}
|
|
2457
|
+
getColors(customColors) {
|
|
2458
|
+
if (customColors && customColors.length > 0) {
|
|
2459
|
+
return customColors;
|
|
2460
|
+
}
|
|
2461
|
+
const isDarkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
|
|
2462
|
+
return isDarkMode ? this.darkModeColors : this.lightModeColors;
|
|
2463
|
+
}
|
|
2464
|
+
getIntensityConfig(intensity) {
|
|
2465
|
+
switch (intensity) {
|
|
2466
|
+
case 'subtle':
|
|
2467
|
+
return {
|
|
2468
|
+
bursts: 2,
|
|
2469
|
+
particleCount: 30,
|
|
2470
|
+
spread: 45,
|
|
2471
|
+
startVelocity: 20,
|
|
2472
|
+
scalar: 0.7
|
|
2473
|
+
};
|
|
2474
|
+
case 'celebration':
|
|
2475
|
+
return {
|
|
2476
|
+
bursts: 4,
|
|
2477
|
+
particleCount: 100,
|
|
2478
|
+
spread: 80,
|
|
2479
|
+
startVelocity: 35,
|
|
2480
|
+
scalar: 1.2
|
|
2481
|
+
};
|
|
2482
|
+
case 'normal':
|
|
2483
|
+
default:
|
|
2484
|
+
return {
|
|
2485
|
+
bursts: 3,
|
|
2486
|
+
particleCount: 60,
|
|
2487
|
+
spread: 60,
|
|
2488
|
+
startVelocity: 25,
|
|
2489
|
+
scalar: 1.0
|
|
2490
|
+
};
|
|
2491
|
+
}
|
|
2492
|
+
}
|
|
2493
|
+
trigger(config = {}) {
|
|
2494
|
+
const { intensity = 'normal', colors: customColors, delay = 200 } = config;
|
|
2495
|
+
const intensityConfig = this.getIntensityConfig(intensity);
|
|
2496
|
+
const colors = this.getColors(customColors);
|
|
2497
|
+
setTimeout(() => {
|
|
2498
|
+
this.fireConfetti(intensityConfig, colors);
|
|
2499
|
+
}, delay);
|
|
2500
|
+
}
|
|
2501
|
+
fireConfetti(config, colors) {
|
|
2502
|
+
const { bursts, particleCount, spread, startVelocity, scalar } = config;
|
|
2503
|
+
let burstCount = 0;
|
|
2504
|
+
const burstInterval = setInterval(() => {
|
|
2505
|
+
if (burstCount >= bursts) {
|
|
2506
|
+
clearInterval(burstInterval);
|
|
2507
|
+
return;
|
|
2508
|
+
}
|
|
2509
|
+
const x = 0.5;
|
|
2510
|
+
const y = 0.5;
|
|
2511
|
+
confetti({
|
|
2512
|
+
particleCount,
|
|
2513
|
+
spread,
|
|
2514
|
+
startVelocity,
|
|
2515
|
+
origin: { x, y },
|
|
2516
|
+
colors,
|
|
2517
|
+
scalar,
|
|
2518
|
+
gravity: 1.2,
|
|
2519
|
+
decay: 0.94,
|
|
2520
|
+
ticks: 200,
|
|
2521
|
+
shapes: ['circle', 'square'],
|
|
2522
|
+
zIndex: 100
|
|
2523
|
+
});
|
|
2524
|
+
burstCount++;
|
|
2525
|
+
}, 150);
|
|
2526
|
+
}
|
|
2527
|
+
static { this.ɵfac = function ConfettiService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ConfettiService)(); }; }
|
|
2528
|
+
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ConfettiService, factory: ConfettiService.ɵfac, providedIn: 'root' }); }
|
|
2529
|
+
}
|
|
2530
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ConfettiService, [{
|
|
2531
|
+
type: Injectable,
|
|
2532
|
+
args: [{
|
|
2533
|
+
providedIn: 'root'
|
|
2534
|
+
}]
|
|
2535
|
+
}], null, null); })();
|
|
2536
|
+
|
|
2439
2537
|
const _c0$13 = a0 => ["skeleton-loader", "rounded-lg", "relative", "overflow-hidden", a0];
|
|
2440
2538
|
const _c1$C = a0 => ["skeleton-shimmer-overlay", "absolute", "inset-0", "bg-gradient-to-r", a0];
|
|
2441
2539
|
class SkeletonLoaderComponent {
|
|
@@ -57836,13 +57934,12 @@ class CollapsibleSectionGroupComponent {
|
|
|
57836
57934
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CollapsibleSectionGroupComponent, { className: "CollapsibleSectionGroupComponent", filePath: "lib/components/business-analysis-dashboard/collapsible-section-group.component.ts", lineNumber: 100 }); })();
|
|
57837
57935
|
|
|
57838
57936
|
function ContentGenerationProgressComponent_Conditional_20_Template(rf, ctx) { if (rf & 1) {
|
|
57839
|
-
i0.ɵɵelementStart(0, "div",
|
|
57840
|
-
i0.ɵɵelement(
|
|
57841
|
-
i0.ɵɵelementEnd()
|
|
57937
|
+
i0.ɵɵelementStart(0, "div", 17);
|
|
57938
|
+
i0.ɵɵelement(1, "div", 20)(2, "div", 21)(3, "div", 22)(4, "div", 23)(5, "div", 24);
|
|
57939
|
+
i0.ɵɵelementEnd();
|
|
57842
57940
|
} if (rf & 2) {
|
|
57843
57941
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
57844
|
-
i0.ɵɵ
|
|
57845
|
-
i0.ɵɵadvance(2);
|
|
57942
|
+
i0.ɵɵadvance();
|
|
57846
57943
|
i0.ɵɵstyleProp("left", ctx_r0.progressPercentage(), "%");
|
|
57847
57944
|
i0.ɵɵproperty("ngClass", ctx_r0.dotClasses());
|
|
57848
57945
|
i0.ɵɵadvance();
|
|
@@ -57859,7 +57956,7 @@ function ContentGenerationProgressComponent_Conditional_20_Template(rf, ctx) { i
|
|
|
57859
57956
|
i0.ɵɵproperty("ngClass", ctx_r0.dotClasses());
|
|
57860
57957
|
} }
|
|
57861
57958
|
function ContentGenerationProgressComponent_Conditional_21_Template(rf, ctx) { if (rf & 1) {
|
|
57862
|
-
i0.ɵɵelement(0, "div",
|
|
57959
|
+
i0.ɵɵelement(0, "div", 25);
|
|
57863
57960
|
} if (rf & 2) {
|
|
57864
57961
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
57865
57962
|
i0.ɵɵstyleProp("left", ctx_r0.progressPercentage(), "%");
|
|
@@ -57941,7 +58038,7 @@ class ContentGenerationProgressComponent {
|
|
|
57941
58038
|
}, ...(ngDevMode ? [{ debugName: "percentageClasses" }] : []));
|
|
57942
58039
|
}
|
|
57943
58040
|
static { this.ɵfac = function ContentGenerationProgressComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ContentGenerationProgressComponent)(); }; }
|
|
57944
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ContentGenerationProgressComponent, selectors: [["symphiq-content-generation-progress"]], inputs: { itemStatus: [1, "itemStatus"], title: [1, "title"], subtitle: [1, "subtitle"], viewMode: [1, "viewMode"], showIcon: [1, "showIcon"] }, decls: 25, vars: 17, consts: [[1, "min-h-[60vh]", "flex", "items-center", "justify-center", "px-4", "py-12", 3, "ngClass"], [1, "max-w-3xl", "w-full", "space-y-8"], [1, "text-center", "space-y-3"], [1, "flex", "items-center", "justify-center", "mb-4"], [1, "relative", "w-20", "h-20", "rounded-2xl", "flex", "items-center", "justify-center", "icon-pulse", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-10", "h-10"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 10V3L4 14h7v7l9-11h-7z"], [1, "absolute", "inset-0", "rounded-2xl", "icon-glow"], [1, "text-3xl", "sm:text-4xl", "font-bold", 3, "ngClass"], [1, "text-base", "sm:text-lg", "max-w-2xl", "mx-auto", 3, "ngClass"], [1, "space-y-4"], [1, "text-center"], [1, "text-lg", "sm:text-xl", "font-medium", "message-fade", 3, "ngClass"], [1, "relative", "h-3", "rounded-full", "overflow-visible", 3, "ngClass"], [1, "absolute", "inset-0", "rounded-full", 3, "ngClass"], [1, "absolute", "inset-y-0", "left-0", "rounded-full", "transition-all", "duration-700", "ease-out", "overflow-hidden", 3, "ngClass"], [1, "absolute", "inset-0", "shimmer-effect"], [1, "absolute", "inset-0", "overflow-
|
|
58041
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ContentGenerationProgressComponent, selectors: [["symphiq-content-generation-progress"]], inputs: { itemStatus: [1, "itemStatus"], title: [1, "title"], subtitle: [1, "subtitle"], viewMode: [1, "viewMode"], showIcon: [1, "showIcon"] }, decls: 25, vars: 17, consts: [[1, "min-h-[60vh]", "flex", "items-center", "justify-center", "px-4", "py-12", 3, "ngClass"], [1, "max-w-3xl", "w-full", "space-y-8"], [1, "text-center", "space-y-3"], [1, "flex", "items-center", "justify-center", "mb-4"], [1, "relative", "w-20", "h-20", "rounded-2xl", "flex", "items-center", "justify-center", "icon-pulse", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-10", "h-10"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 10V3L4 14h7v7l9-11h-7z"], [1, "absolute", "inset-0", "rounded-2xl", "icon-glow"], [1, "text-3xl", "sm:text-4xl", "font-bold", 3, "ngClass"], [1, "text-base", "sm:text-lg", "max-w-2xl", "mx-auto", 3, "ngClass"], [1, "space-y-4"], [1, "text-center"], [1, "text-lg", "sm:text-xl", "font-medium", "message-fade", 3, "ngClass"], [1, "relative", "h-3", "rounded-full", "overflow-visible", 3, "ngClass"], [1, "absolute", "inset-0", "rounded-full", 3, "ngClass"], [1, "absolute", "inset-y-0", "left-0", "rounded-full", "transition-all", "duration-700", "ease-out", "overflow-hidden", 3, "ngClass"], [1, "absolute", "inset-0", "shimmer-effect"], [1, "absolute", "inset-0", "overflow-visible", "pointer-events-none"], [1, "absolute", "top-1/2", "-translate-y-1/2", "w-4", "h-4", "rounded-full", "blur-md", "transition-all", "duration-700", "ease-out", 2, "margin-left", "-8px", 3, "ngClass", "left"], [1, "text-sm", "font-medium", "tabular-nums", 3, "ngClass"], [1, "dot", "dot-1", 3, "ngClass"], [1, "dot", "dot-2", 3, "ngClass"], [1, "dot", "dot-3", 3, "ngClass"], [1, "dot", "dot-4", 3, "ngClass"], [1, "dot", "dot-5", 3, "ngClass"], [1, "absolute", "top-1/2", "-translate-y-1/2", "w-4", "h-4", "rounded-full", "blur-md", "transition-all", "duration-700", "ease-out", 2, "margin-left", "-8px", 3, "ngClass"]], template: function ContentGenerationProgressComponent_Template(rf, ctx) { if (rf & 1) {
|
|
57945
58042
|
i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "div", 3)(4, "div", 4);
|
|
57946
58043
|
i0.ɵɵnamespaceSVG();
|
|
57947
58044
|
i0.ɵɵelementStart(5, "svg", 5);
|
|
@@ -57964,7 +58061,7 @@ class ContentGenerationProgressComponent {
|
|
|
57964
58061
|
i0.ɵɵelementStart(18, "div", 15);
|
|
57965
58062
|
i0.ɵɵelement(19, "div", 16);
|
|
57966
58063
|
i0.ɵɵelementEnd();
|
|
57967
|
-
i0.ɵɵconditionalCreate(20, ContentGenerationProgressComponent_Conditional_20_Template,
|
|
58064
|
+
i0.ɵɵconditionalCreate(20, ContentGenerationProgressComponent_Conditional_20_Template, 6, 15, "div", 17);
|
|
57968
58065
|
i0.ɵɵconditionalCreate(21, ContentGenerationProgressComponent_Conditional_21_Template, 1, 3, "div", 18);
|
|
57969
58066
|
i0.ɵɵelementEnd();
|
|
57970
58067
|
i0.ɵɵelementStart(22, "div", 11)(23, "span", 19);
|
|
@@ -58001,7 +58098,7 @@ class ContentGenerationProgressComponent {
|
|
|
58001
58098
|
i0.ɵɵproperty("ngClass", ctx.percentageClasses());
|
|
58002
58099
|
i0.ɵɵadvance();
|
|
58003
58100
|
i0.ɵɵtextInterpolate1(" ", ctx.progressPercentage(), "% complete ");
|
|
58004
|
-
} }, dependencies: [CommonModule, i1$1.NgClass], styles: ["@keyframes _ngcontent-%COMP%_icon-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.9}}@keyframes _ngcontent-%COMP%_icon-glow-pulse{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.6;transform:scale(1.2)}}@keyframes _ngcontent-%COMP%_shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes _ngcontent-%COMP%_dots-move{0%{transform:translate(0);opacity:0}10%{opacity:1}
|
|
58101
|
+
} }, dependencies: [CommonModule, i1$1.NgClass], styles: ["@keyframes _ngcontent-%COMP%_icon-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.9}}@keyframes _ngcontent-%COMP%_icon-glow-pulse{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.6;transform:scale(1.2)}}@keyframes _ngcontent-%COMP%_shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes _ngcontent-%COMP%_dots-move{0%{transform:translate(0) scale(.8);opacity:0}10%{opacity:1;transform:translate(10px) scale(1)}25%{transform:translate(30px) scale(1.2)}40%{transform:translate(50px) scale(1)}55%{transform:translate(70px) scale(1.2)}70%{transform:translate(90px) scale(1)}85%{transform:translate(110px) scale(1.2);opacity:1}to{transform:translate(130px) scale(.8);opacity:0}}@keyframes _ngcontent-%COMP%_message-fade{0%,to{opacity:1}50%{opacity:.7}}.icon-pulse[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_icon-pulse 2s ease-in-out infinite}.icon-glow[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_icon-glow-pulse 2s ease-in-out infinite}.shimmer-effect[_ngcontent-%COMP%]{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.3) 50%,transparent 100%);animation:_ngcontent-%COMP%_shimmer 2s ease-in-out infinite}.message-fade[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_message-fade 3s ease-in-out infinite}.dot[_ngcontent-%COMP%]{position:absolute;top:50%;width:6px;height:6px;border-radius:50%;margin-top:-3px;margin-left:-3px;animation:_ngcontent-%COMP%_dots-move 3s ease-in-out infinite}.dot-1[_ngcontent-%COMP%]{animation-delay:0s}.dot-2[_ngcontent-%COMP%]{animation-delay:.5s}.dot-3[_ngcontent-%COMP%]{animation-delay:1s}.dot-4[_ngcontent-%COMP%]{animation-delay:1.5s}.dot-5[_ngcontent-%COMP%]{animation-delay:2s}@media (prefers-reduced-motion: reduce){.icon-pulse[_ngcontent-%COMP%], .icon-glow[_ngcontent-%COMP%], .shimmer-effect[_ngcontent-%COMP%], .message-fade[_ngcontent-%COMP%], .dot[_ngcontent-%COMP%]{animation:none}}"], changeDetection: 0 }); }
|
|
58005
58102
|
}
|
|
58006
58103
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ContentGenerationProgressComponent, [{
|
|
58007
58104
|
type: Component,
|
|
@@ -58051,16 +58148,14 @@ class ContentGenerationProgressComponent {
|
|
|
58051
58148
|
<div class="absolute inset-0 shimmer-effect"></div>
|
|
58052
58149
|
</div>
|
|
58053
58150
|
|
|
58054
|
-
<!-- Animated Dots Overlay (
|
|
58151
|
+
<!-- Animated Dots Overlay (emerges from the solid bar edge) -->
|
|
58055
58152
|
@if (progressPercentage() > 0 && progressPercentage() < 100) {
|
|
58056
|
-
<div class="absolute inset-0 overflow-
|
|
58057
|
-
<div class="
|
|
58058
|
-
|
|
58059
|
-
|
|
58060
|
-
|
|
58061
|
-
|
|
58062
|
-
<div [ngClass]="dotClasses()" [style.left.%]="progressPercentage()" class="dot dot-5"></div>
|
|
58063
|
-
</div>
|
|
58153
|
+
<div class="absolute inset-0 overflow-visible pointer-events-none">
|
|
58154
|
+
<div [ngClass]="dotClasses()" [style.left.%]="progressPercentage()" class="dot dot-1"></div>
|
|
58155
|
+
<div [ngClass]="dotClasses()" [style.left.%]="progressPercentage()" class="dot dot-2"></div>
|
|
58156
|
+
<div [ngClass]="dotClasses()" [style.left.%]="progressPercentage()" class="dot dot-3"></div>
|
|
58157
|
+
<div [ngClass]="dotClasses()" [style.left.%]="progressPercentage()" class="dot dot-4"></div>
|
|
58158
|
+
<div [ngClass]="dotClasses()" [style.left.%]="progressPercentage()" class="dot dot-5"></div>
|
|
58064
58159
|
</div>
|
|
58065
58160
|
}
|
|
58066
58161
|
|
|
@@ -58084,9 +58179,72 @@ class ContentGenerationProgressComponent {
|
|
|
58084
58179
|
</div>
|
|
58085
58180
|
</div>
|
|
58086
58181
|
</div>
|
|
58087
|
-
`, styles: ["@keyframes icon-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.9}}@keyframes icon-glow-pulse{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.6;transform:scale(1.2)}}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes dots-move{0%{transform:translate(0);opacity:0}10%{opacity:1}
|
|
58182
|
+
`, styles: ["@keyframes icon-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.9}}@keyframes icon-glow-pulse{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.6;transform:scale(1.2)}}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes dots-move{0%{transform:translate(0) scale(.8);opacity:0}10%{opacity:1;transform:translate(10px) scale(1)}25%{transform:translate(30px) scale(1.2)}40%{transform:translate(50px) scale(1)}55%{transform:translate(70px) scale(1.2)}70%{transform:translate(90px) scale(1)}85%{transform:translate(110px) scale(1.2);opacity:1}to{transform:translate(130px) scale(.8);opacity:0}}@keyframes message-fade{0%,to{opacity:1}50%{opacity:.7}}.icon-pulse{animation:icon-pulse 2s ease-in-out infinite}.icon-glow{animation:icon-glow-pulse 2s ease-in-out infinite}.shimmer-effect{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.3) 50%,transparent 100%);animation:shimmer 2s ease-in-out infinite}.message-fade{animation:message-fade 3s ease-in-out infinite}.dot{position:absolute;top:50%;width:6px;height:6px;border-radius:50%;margin-top:-3px;margin-left:-3px;animation:dots-move 3s ease-in-out infinite}.dot-1{animation-delay:0s}.dot-2{animation-delay:.5s}.dot-3{animation-delay:1s}.dot-4{animation-delay:1.5s}.dot-5{animation-delay:2s}@media (prefers-reduced-motion: reduce){.icon-pulse,.icon-glow,.shimmer-effect,.message-fade,.dot{animation:none}}\n"] }]
|
|
58088
58183
|
}], null, { itemStatus: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemStatus", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], showIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIcon", required: false }] }] }); })();
|
|
58089
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ContentGenerationProgressComponent, { className: "ContentGenerationProgressComponent", filePath: "lib/components/shared/content-generation-progress.component.ts", lineNumber:
|
|
58184
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ContentGenerationProgressComponent, { className: "ContentGenerationProgressComponent", filePath: "lib/components/shared/content-generation-progress.component.ts", lineNumber: 224 }); })();
|
|
58185
|
+
|
|
58186
|
+
class ContentGenerationProgressWithConfettiComponent {
|
|
58187
|
+
constructor() {
|
|
58188
|
+
this.itemStatus = input(...(ngDevMode ? [undefined, { debugName: "itemStatus" }] : []));
|
|
58189
|
+
this.title = input('Generating Your Analysis', ...(ngDevMode ? [{ debugName: "title" }] : []));
|
|
58190
|
+
this.subtitle = input('This will appear when ready. You can check back later as this will take a few minutes to complete.', ...(ngDevMode ? [{ debugName: "subtitle" }] : []));
|
|
58191
|
+
this.viewMode = input(ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "viewMode" }] : []));
|
|
58192
|
+
this.showIcon = input(true, ...(ngDevMode ? [{ debugName: "showIcon" }] : []));
|
|
58193
|
+
this.profile = input(...(ngDevMode ? [undefined, { debugName: "profile" }] : []));
|
|
58194
|
+
this.confettiIntensity = input('normal', ...(ngDevMode ? [{ debugName: "confettiIntensity" }] : []));
|
|
58195
|
+
this.enableConfetti = input(true, ...(ngDevMode ? [{ debugName: "enableConfetti" }] : []));
|
|
58196
|
+
this.confettiDelay = input(200, ...(ngDevMode ? [{ debugName: "confettiDelay" }] : []));
|
|
58197
|
+
this.confettiService = inject(ConfettiService);
|
|
58198
|
+
this.hasCelebrated = signal(false, ...(ngDevMode ? [{ debugName: "hasCelebrated" }] : []));
|
|
58199
|
+
effect(() => {
|
|
58200
|
+
const currentProfile = this.profile();
|
|
58201
|
+
const currentStatus = currentProfile?.selfContentStatus;
|
|
58202
|
+
if (!this.enableConfetti()) {
|
|
58203
|
+
return;
|
|
58204
|
+
}
|
|
58205
|
+
if (currentStatus === AiDynamicContentStatusEnum.GENERATED && !this.hasCelebrated()) {
|
|
58206
|
+
untracked(() => {
|
|
58207
|
+
this.confettiService.trigger({
|
|
58208
|
+
intensity: this.confettiIntensity(),
|
|
58209
|
+
delay: this.confettiDelay()
|
|
58210
|
+
});
|
|
58211
|
+
this.hasCelebrated.set(true);
|
|
58212
|
+
});
|
|
58213
|
+
}
|
|
58214
|
+
if (currentStatus === AiDynamicContentStatusEnum.REQUESTED ||
|
|
58215
|
+
currentStatus === AiDynamicContentStatusEnum.GENERATING) {
|
|
58216
|
+
untracked(() => {
|
|
58217
|
+
this.hasCelebrated.set(false);
|
|
58218
|
+
});
|
|
58219
|
+
}
|
|
58220
|
+
});
|
|
58221
|
+
}
|
|
58222
|
+
static { this.ɵfac = function ContentGenerationProgressWithConfettiComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ContentGenerationProgressWithConfettiComponent)(); }; }
|
|
58223
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ContentGenerationProgressWithConfettiComponent, selectors: [["symphiq-content-generation-progress-with-confetti"]], inputs: { itemStatus: [1, "itemStatus"], title: [1, "title"], subtitle: [1, "subtitle"], viewMode: [1, "viewMode"], showIcon: [1, "showIcon"], profile: [1, "profile"], confettiIntensity: [1, "confettiIntensity"], enableConfetti: [1, "enableConfetti"], confettiDelay: [1, "confettiDelay"] }, decls: 1, vars: 5, consts: [[3, "itemStatus", "title", "subtitle", "viewMode", "showIcon"]], template: function ContentGenerationProgressWithConfettiComponent_Template(rf, ctx) { if (rf & 1) {
|
|
58224
|
+
i0.ɵɵelement(0, "symphiq-content-generation-progress", 0);
|
|
58225
|
+
} if (rf & 2) {
|
|
58226
|
+
i0.ɵɵproperty("itemStatus", ctx.itemStatus())("title", ctx.title())("subtitle", ctx.subtitle())("viewMode", ctx.viewMode())("showIcon", ctx.showIcon());
|
|
58227
|
+
} }, dependencies: [ContentGenerationProgressComponent], encapsulation: 2, changeDetection: 0 }); }
|
|
58228
|
+
}
|
|
58229
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ContentGenerationProgressWithConfettiComponent, [{
|
|
58230
|
+
type: Component,
|
|
58231
|
+
args: [{
|
|
58232
|
+
selector: 'symphiq-content-generation-progress-with-confetti',
|
|
58233
|
+
standalone: true,
|
|
58234
|
+
imports: [ContentGenerationProgressComponent],
|
|
58235
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
58236
|
+
template: `
|
|
58237
|
+
<symphiq-content-generation-progress
|
|
58238
|
+
[itemStatus]="itemStatus()"
|
|
58239
|
+
[title]="title()"
|
|
58240
|
+
[subtitle]="subtitle()"
|
|
58241
|
+
[viewMode]="viewMode()"
|
|
58242
|
+
[showIcon]="showIcon()"
|
|
58243
|
+
/>
|
|
58244
|
+
`
|
|
58245
|
+
}]
|
|
58246
|
+
}], () => [], { itemStatus: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemStatus", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], showIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIcon", required: false }] }], profile: [{ type: i0.Input, args: [{ isSignal: true, alias: "profile", required: false }] }], confettiIntensity: [{ type: i0.Input, args: [{ isSignal: true, alias: "confettiIntensity", required: false }] }], enableConfetti: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableConfetti", required: false }] }], confettiDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "confettiDelay", required: false }] }] }); })();
|
|
58247
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ContentGenerationProgressWithConfettiComponent, { className: "ContentGenerationProgressWithConfettiComponent", filePath: "lib/components/shared/content-generation-progress-with-confetti.component.ts", lineNumber: 29 }); })();
|
|
58090
58248
|
|
|
58091
58249
|
const _c0$n = () => [];
|
|
58092
58250
|
function SymphiqBusinessAnalysisDashboardComponent_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
@@ -58174,13 +58332,13 @@ function SymphiqBusinessAnalysisDashboardComponent_Conditional_25_Conditional_0_
|
|
|
58174
58332
|
} }
|
|
58175
58333
|
function SymphiqBusinessAnalysisDashboardComponent_Conditional_25_Template(rf, ctx) { if (rf & 1) {
|
|
58176
58334
|
i0.ɵɵconditionalCreate(0, SymphiqBusinessAnalysisDashboardComponent_Conditional_25_Conditional_0_Template, 1, 5, "symphiq-journey-progress-indicator", 27);
|
|
58177
|
-
i0.ɵɵelement(1, "symphiq-content-generation-progress", 28);
|
|
58335
|
+
i0.ɵɵelement(1, "symphiq-content-generation-progress-with-confetti", 28);
|
|
58178
58336
|
} if (rf & 2) {
|
|
58179
|
-
let
|
|
58337
|
+
let tmp_6_0;
|
|
58180
58338
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
58181
58339
|
i0.ɵɵconditional(!ctx_r1.isOnboarded() ? 0 : -1);
|
|
58182
58340
|
i0.ɵɵadvance();
|
|
58183
|
-
i0.ɵɵproperty("viewMode", ctx_r1.viewMode())("itemStatus", ctx_r1.itemStatus())("title", "We are generating a new Business Analysis for " + (((
|
|
58341
|
+
i0.ɵɵproperty("viewMode", ctx_r1.viewMode())("itemStatus", ctx_r1.itemStatus())("profile", ctx_r1.profile())("confettiIntensity", "celebration")("title", "We are generating a new Business Analysis for " + (((tmp_6_0 = ctx_r1.currentProfile()) == null ? null : tmp_6_0.profileStructured == null ? null : tmp_6_0.profileStructured.businessName) || "your business") + ".")("subtitle", "It will appear here when ready. You can check back later as this will take a few minutes to complete.");
|
|
58184
58342
|
} }
|
|
58185
58343
|
function SymphiqBusinessAnalysisDashboardComponent_Conditional_26_Conditional_0_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
58186
58344
|
const _r6 = i0.ɵɵgetCurrentView();
|
|
@@ -58760,7 +58918,7 @@ class SymphiqBusinessAnalysisDashboardComponent {
|
|
|
58760
58918
|
static { this.ɵfac = function SymphiqBusinessAnalysisDashboardComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SymphiqBusinessAnalysisDashboardComponent)(); }; }
|
|
58761
58919
|
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SymphiqBusinessAnalysisDashboardComponent, selectors: [["symphiq-business-analysis-dashboard"]], hostBindings: function SymphiqBusinessAnalysisDashboardComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
58762
58920
|
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);
|
|
58763
|
-
} }, 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"], forDemo: [1, "forDemo"], maxAccessibleStepId: [1, "maxAccessibleStepId"], itemStatus: [1, "itemStatus"] }, outputs: { stepClick: "stepClick", nextStepClick: "nextStepClick" }, decls: 35, vars: 59, consts: [[3, "ngClass"], [1, "h-full", "transition-all", "duration-200", "ease-out", 3, "ngClass"], [1, "animated-bubbles", 2, "position", "fixed", "top", "0", "left", "0", "right", "0", "bottom", "0", "width", "100vw", "height", "100vh", "z-index", "1", "pointer-events", "none"], [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"], [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"], [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"], [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, "transition-opacity", "duration-300", 3, "ngClass"], [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"], [3, "viewMode", "currentStepId", "showNextStepAction", "forDemo", "maxAccessibleStepId"], [3, "viewMode", "itemStatus", "title", "subtitle"], [3, "stepClick", "nextStepClick", "viewMode", "currentStepId", "showNextStepAction", "forDemo", "maxAccessibleStepId"], [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) {
|
|
58921
|
+
} }, 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"], forDemo: [1, "forDemo"], maxAccessibleStepId: [1, "maxAccessibleStepId"], itemStatus: [1, "itemStatus"] }, outputs: { stepClick: "stepClick", nextStepClick: "nextStepClick" }, decls: 35, vars: 59, consts: [[3, "ngClass"], [1, "h-full", "transition-all", "duration-200", "ease-out", 3, "ngClass"], [1, "animated-bubbles", 2, "position", "fixed", "top", "0", "left", "0", "right", "0", "bottom", "0", "width", "100vw", "height", "100vh", "z-index", "1", "pointer-events", "none"], [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"], [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"], [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"], [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, "transition-opacity", "duration-300", 3, "ngClass"], [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"], [3, "viewMode", "currentStepId", "showNextStepAction", "forDemo", "maxAccessibleStepId"], [3, "viewMode", "itemStatus", "profile", "confettiIntensity", "title", "subtitle"], [3, "stepClick", "nextStepClick", "viewMode", "currentStepId", "showNextStepAction", "forDemo", "maxAccessibleStepId"], [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) {
|
|
58764
58922
|
i0.ɵɵelementStart(0, "div", 0)(1, "div");
|
|
58765
58923
|
i0.ɵɵelement(2, "div", 1);
|
|
58766
58924
|
i0.ɵɵelementEnd();
|
|
@@ -58781,7 +58939,7 @@ class SymphiqBusinessAnalysisDashboardComponent {
|
|
|
58781
58939
|
i0.ɵɵconditionalCreate(23, SymphiqBusinessAnalysisDashboardComponent_Conditional_23_Template, 5, 3);
|
|
58782
58940
|
i0.ɵɵelementEnd()()()()();
|
|
58783
58941
|
i0.ɵɵelementStart(24, "main", 13);
|
|
58784
|
-
i0.ɵɵconditionalCreate(25, SymphiqBusinessAnalysisDashboardComponent_Conditional_25_Template, 2,
|
|
58942
|
+
i0.ɵɵconditionalCreate(25, SymphiqBusinessAnalysisDashboardComponent_Conditional_25_Template, 2, 7)(26, SymphiqBusinessAnalysisDashboardComponent_Conditional_26_Template, 2, 1);
|
|
58785
58943
|
i0.ɵɵelementEnd();
|
|
58786
58944
|
i0.ɵɵconditionalCreate(27, SymphiqBusinessAnalysisDashboardComponent_Conditional_27_Template, 1, 4, "symphiq-section-navigation", 14);
|
|
58787
58945
|
i0.ɵɵconditionalCreate(28, SymphiqBusinessAnalysisDashboardComponent_Conditional_28_Template, 1, 4, "symphiq-floating-toc", 14);
|
|
@@ -58853,259 +59011,261 @@ class SymphiqBusinessAnalysisDashboardComponent {
|
|
|
58853
59011
|
i0.ɵɵproperty("isLightMode", ctx.isLightMode())("isOpen", ctx.searchService.isSearchOpen())("searchQuery", ctx.searchService.getSearchQuery())("results", ctx.searchService.searchResults())("hasResults", ctx.searchService.hasResults())("selectedIndex", ctx.selectedSearchIndex())("placeholder", "Search sections, items, and analysis...");
|
|
58854
59012
|
i0.ɵɵadvance();
|
|
58855
59013
|
i0.ɵɵproperty("isOpen", ctx.isViewModeSwitcherOpen())("currentMode", ctx.displayMode())("viewMode", ctx.viewMode())("isLoading", ctx.isViewModeSwitching());
|
|
58856
|
-
} }, dependencies: [CommonModule, i1$1.NgClass, ProfileSectionComponent, SectionNavigationComponent, FloatingTocComponent, FloatingBackButtonComponent, TooltipContainerComponent, SectionDividerComponent, BusinessAnalysisModalComponent, SearchButtonComponent, SearchModalComponent, ViewModeSwitcherModalComponent, JourneyProgressIndicatorComponent, WelcomeBannerComponent, RecommendationsTiledGridComponent, CollapsibleSectionGroupComponent,
|
|
59014
|
+
} }, dependencies: [CommonModule, i1$1.NgClass, ProfileSectionComponent, SectionNavigationComponent, FloatingTocComponent, FloatingBackButtonComponent, TooltipContainerComponent, SectionDividerComponent, BusinessAnalysisModalComponent, SearchButtonComponent, SearchModalComponent, ViewModeSwitcherModalComponent, JourneyProgressIndicatorComponent, WelcomeBannerComponent, RecommendationsTiledGridComponent, CollapsibleSectionGroupComponent, ContentGenerationProgressWithConfettiComponent], styles: ["[_nghost-%COMP%]{display:block}@keyframes _ngcontent-%COMP%_spin{to{transform:rotate(360deg)}}@keyframes _ngcontent-%COMP%_pulse-highlight{0%,to{transform:scale(1);box-shadow:0 0 #3b82f6b3}50%{transform:scale(1.02);box-shadow:0 0 20px 8px #3b82f64d}}[_nghost-%COMP%] .search-highlight-pulse{animation:_ngcontent-%COMP%_pulse-highlight 2s ease-in-out;border-color:#3b82f6!important}"], changeDetection: 0 }); }
|
|
58857
59015
|
}
|
|
58858
59016
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SymphiqBusinessAnalysisDashboardComponent, [{
|
|
58859
59017
|
type: Component,
|
|
58860
|
-
args: [{ selector: 'symphiq-business-analysis-dashboard', standalone: true, imports: [CommonModule, ProfileSectionComponent, SectionNavigationComponent, FloatingTocComponent, FloatingBackButtonComponent, TooltipContainerComponent, SectionDividerComponent, BusinessAnalysisModalComponent, SearchButtonComponent, SearchModalComponent, ViewModeSwitcherModalComponent, JourneyProgressIndicatorComponent, WelcomeBannerComponent, RecommendationsTiledGridComponent, CollapsibleSectionGroupComponent,
|
|
58861
|
-
<div [ngClass]="getContainerClasses()">
|
|
58862
|
-
<!-- Scroll Progress Bar (fixed at top) -->
|
|
58863
|
-
<div [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'">
|
|
58864
|
-
<div
|
|
58865
|
-
[style.width.%]="scrollProgress()"
|
|
58866
|
-
[ngClass]="isLightMode() ? 'bg-gradient-to-r from-blue-500 to-purple-500' : 'bg-gradient-to-r from-blue-400 to-purple-400'"
|
|
58867
|
-
class="h-full transition-all duration-200 ease-out">
|
|
58868
|
-
</div>
|
|
58869
|
-
</div>
|
|
58870
|
-
|
|
58871
|
-
<div class="animated-bubbles" [class.light-mode]="isLightMode()" style="position: fixed; top: 0; left: 0; right: 0; bottom: 0; width: 100vw; height: 100vh; z-index: 1; pointer-events: none;"></div>
|
|
58872
|
-
|
|
58873
|
-
<div class="relative z-[51]">
|
|
58874
|
-
<header [ngClass]="getHeaderClasses()" class="sticky top-0 z-50">
|
|
58875
|
-
<!-- Expanded Header (default state) -->
|
|
58876
|
-
<div
|
|
58877
|
-
class="transition-all duration-300 ease-in-out overflow-hidden"
|
|
58878
|
-
[class.max-h-0]="headerScrollService.isScrolled()"
|
|
58879
|
-
[class.opacity-0]="headerScrollService.isScrolled()"
|
|
58880
|
-
[class.max-h-96]="!headerScrollService.isScrolled()"
|
|
58881
|
-
[class.opacity-100]="!headerScrollService.isScrolled()">
|
|
58882
|
-
<div
|
|
58883
|
-
class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8"
|
|
58884
|
-
[class.pointer-events-none]="headerScrollService.isScrolled()"
|
|
58885
|
-
[class.pointer-events-auto]="!headerScrollService.isScrolled()">
|
|
58886
|
-
<div class="flex items-center justify-between">
|
|
58887
|
-
<div>
|
|
58888
|
-
<h1 [ngClass]="getMainTitleClasses()">
|
|
58889
|
-
{{ currentProfile()?.profileStructured?.businessName || 'Business Analysis' }}
|
|
58890
|
-
</h1>
|
|
58891
|
-
<p [ngClass]="getSubtitleClasses()">
|
|
58892
|
-
Business Profile & Analysis
|
|
58893
|
-
</p>
|
|
58894
|
-
</div>
|
|
58895
|
-
@if (profile()?.selfContentStatus === AiDynamicContentStatusEnum.GENERATED) {
|
|
58896
|
-
<div class="flex items-center gap-2">
|
|
58897
|
-
<symphiq-search-button
|
|
58898
|
-
[isLightMode]="isLightMode()"
|
|
58899
|
-
(searchClick)="openSearch()"
|
|
58900
|
-
/>
|
|
58901
|
-
<button
|
|
58902
|
-
type="button"
|
|
58903
|
-
(click)="openViewModeSwitcher()"
|
|
58904
|
-
[ngClass]="getViewModeButtonClasses()"
|
|
58905
|
-
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">
|
|
58906
|
-
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
58907
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
|
|
58908
|
-
<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>
|
|
58909
|
-
</svg>
|
|
58910
|
-
<span>{{ displayModeLabel() }}</span>
|
|
58911
|
-
</button>
|
|
58912
|
-
</div>
|
|
58913
|
-
}
|
|
58914
|
-
</div>
|
|
58915
|
-
</div>
|
|
58916
|
-
</div>
|
|
58917
|
-
|
|
58918
|
-
<!-- Condensed Header (scrolled state) -->
|
|
58919
|
-
<div
|
|
58920
|
-
class="transition-all duration-300 ease-in-out overflow-hidden"
|
|
58921
|
-
[class.max-h-0]="!headerScrollService.isScrolled()"
|
|
58922
|
-
[class.opacity-0]="!headerScrollService.isScrolled()"
|
|
58923
|
-
[class.max-h-20]="headerScrollService.isScrolled()"
|
|
58924
|
-
[class.opacity-100]="headerScrollService.isScrolled()">
|
|
58925
|
-
<div
|
|
58926
|
-
class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-3"
|
|
58927
|
-
[class.pointer-events-none]="!headerScrollService.isScrolled()"
|
|
58928
|
-
[class.pointer-events-auto]="headerScrollService.isScrolled()">
|
|
58929
|
-
<div class="flex items-center justify-between">
|
|
58930
|
-
<div class="flex-1 min-w-0 mr-4">
|
|
58931
|
-
<h1 [ngClass]="isLightMode() ? 'text-xl font-bold bg-gradient-to-r from-blue-600 to-purple-600 bg-clip-text text-transparent truncate' : 'text-xl font-bold bg-gradient-to-r from-blue-400 to-purple-400 bg-clip-text text-transparent truncate'">
|
|
58932
|
-
{{ currentProfile()?.profileStructured?.businessName || 'Business Analysis' }}
|
|
58933
|
-
</h1>
|
|
58934
|
-
</div>
|
|
58935
|
-
<div class="flex items-center gap-4">
|
|
58936
|
-
@if (!isSimplifiedView()) {
|
|
58937
|
-
<div class="flex items-center gap-2 text-sm flex-shrink-0">
|
|
58938
|
-
<span [ngClass]="isLightMode() ? 'text-slate-600 font-medium' : 'text-slate-400 font-medium'" class="transition-opacity duration-300" [class.opacity-0]="sectionTitleFading()" [class.opacity-100]="!sectionTitleFading()">
|
|
58939
|
-
{{ currentSectionTitle() }}
|
|
58940
|
-
</span>
|
|
58941
|
-
@if (currentSubsectionTitle()) {
|
|
58942
|
-
<span [ngClass]="isLightMode() ? 'text-slate-400' : 'text-slate-500'" class="transition-opacity duration-300" [class.opacity-0]="subsectionTitleFading()" [class.opacity-100]="!subsectionTitleFading()">›</span>
|
|
58943
|
-
<span [ngClass]="isLightMode() ? 'text-slate-500' : 'text-slate-500'" class="transition-opacity duration-300" [class.opacity-0]="subsectionTitleFading()" [class.opacity-100]="!subsectionTitleFading()">
|
|
58944
|
-
{{ currentSubsectionTitle() }}
|
|
58945
|
-
</span>
|
|
58946
|
-
}
|
|
58947
|
-
</div>
|
|
58948
|
-
}
|
|
58949
|
-
@if (profile()?.selfContentStatus === AiDynamicContentStatusEnum.GENERATED) {
|
|
58950
|
-
<symphiq-search-button
|
|
58951
|
-
[isLightMode]="isLightMode()"
|
|
58952
|
-
[minimized]="true"
|
|
58953
|
-
(searchClick)="openSearch()"
|
|
58954
|
-
/>
|
|
58955
|
-
<button
|
|
58956
|
-
type="button"
|
|
58957
|
-
(click)="openViewModeSwitcher()"
|
|
58958
|
-
[ngClass]="getViewModeButtonClasses()"
|
|
58959
|
-
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">
|
|
58960
|
-
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
58961
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
|
|
58962
|
-
<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>
|
|
58963
|
-
</svg>
|
|
58964
|
-
</button>
|
|
58965
|
-
}
|
|
58966
|
-
</div>
|
|
58967
|
-
</div>
|
|
58968
|
-
</div>
|
|
58969
|
-
</div>
|
|
58970
|
-
</header>
|
|
58971
|
-
|
|
58972
|
-
<main class="relative">
|
|
58973
|
-
@if (isContentGenerating()) {
|
|
58974
|
-
<!-- Journey Progress Banner (always show when not onboarded) -->
|
|
58975
|
-
@if (!isOnboarded()) {
|
|
58976
|
-
<symphiq-journey-progress-indicator
|
|
58977
|
-
[viewMode]="viewMode()"
|
|
58978
|
-
[currentStepId]="JourneyStepIdEnum.BUSINESS_ANALYSIS"
|
|
58979
|
-
[showNextStepAction]="false"
|
|
58980
|
-
[forDemo]="forDemo()"
|
|
58981
|
-
[maxAccessibleStepId]="maxAccessibleStepId()"
|
|
58982
|
-
(stepClick)="stepClick.emit($event)"
|
|
58983
|
-
(nextStepClick)="nextStepClick.emit()"
|
|
58984
|
-
/>
|
|
58985
|
-
}
|
|
58986
|
-
|
|
58987
|
-
<!-- Content Generation Progress Component -->
|
|
58988
|
-
<symphiq-content-generation-progress
|
|
58989
|
-
[viewMode]="viewMode()"
|
|
58990
|
-
[itemStatus]="itemStatus()"
|
|
58991
|
-
[
|
|
58992
|
-
[
|
|
58993
|
-
|
|
58994
|
-
|
|
58995
|
-
|
|
58996
|
-
|
|
58997
|
-
|
|
58998
|
-
|
|
58999
|
-
|
|
59000
|
-
|
|
59001
|
-
[
|
|
59002
|
-
[
|
|
59003
|
-
[
|
|
59004
|
-
|
|
59005
|
-
|
|
59006
|
-
|
|
59007
|
-
|
|
59008
|
-
|
|
59009
|
-
|
|
59010
|
-
|
|
59011
|
-
|
|
59012
|
-
|
|
59013
|
-
|
|
59014
|
-
[
|
|
59015
|
-
|
|
59016
|
-
|
|
59017
|
-
|
|
59018
|
-
|
|
59019
|
-
|
|
59020
|
-
|
|
59021
|
-
|
|
59022
|
-
|
|
59023
|
-
|
|
59024
|
-
|
|
59025
|
-
|
|
59026
|
-
|
|
59027
|
-
|
|
59028
|
-
|
|
59029
|
-
|
|
59030
|
-
|
|
59031
|
-
|
|
59032
|
-
|
|
59033
|
-
|
|
59034
|
-
|
|
59035
|
-
|
|
59036
|
-
|
|
59037
|
-
|
|
59038
|
-
[
|
|
59039
|
-
|
|
59040
|
-
|
|
59041
|
-
|
|
59042
|
-
|
|
59043
|
-
|
|
59044
|
-
|
|
59045
|
-
|
|
59046
|
-
|
|
59047
|
-
|
|
59048
|
-
|
|
59049
|
-
|
|
59050
|
-
|
|
59051
|
-
|
|
59052
|
-
|
|
59053
|
-
|
|
59054
|
-
|
|
59055
|
-
|
|
59056
|
-
[
|
|
59057
|
-
[
|
|
59058
|
-
|
|
59059
|
-
|
|
59060
|
-
|
|
59061
|
-
|
|
59062
|
-
|
|
59063
|
-
|
|
59064
|
-
|
|
59065
|
-
[
|
|
59066
|
-
[
|
|
59067
|
-
|
|
59068
|
-
|
|
59069
|
-
|
|
59070
|
-
|
|
59071
|
-
|
|
59072
|
-
|
|
59073
|
-
|
|
59074
|
-
|
|
59075
|
-
|
|
59076
|
-
|
|
59077
|
-
|
|
59078
|
-
|
|
59079
|
-
|
|
59080
|
-
|
|
59081
|
-
|
|
59082
|
-
|
|
59083
|
-
|
|
59084
|
-
|
|
59085
|
-
|
|
59086
|
-
|
|
59087
|
-
|
|
59088
|
-
|
|
59089
|
-
|
|
59090
|
-
[
|
|
59091
|
-
[
|
|
59092
|
-
[
|
|
59093
|
-
[
|
|
59094
|
-
[
|
|
59095
|
-
|
|
59096
|
-
|
|
59097
|
-
(
|
|
59098
|
-
|
|
59099
|
-
|
|
59100
|
-
|
|
59101
|
-
|
|
59102
|
-
|
|
59103
|
-
[
|
|
59104
|
-
[
|
|
59105
|
-
|
|
59106
|
-
|
|
59107
|
-
|
|
59108
|
-
|
|
59018
|
+
args: [{ selector: 'symphiq-business-analysis-dashboard', standalone: true, imports: [CommonModule, ProfileSectionComponent, SectionNavigationComponent, FloatingTocComponent, FloatingBackButtonComponent, TooltipContainerComponent, SectionDividerComponent, BusinessAnalysisModalComponent, SearchButtonComponent, SearchModalComponent, ViewModeSwitcherModalComponent, JourneyProgressIndicatorComponent, WelcomeBannerComponent, RecommendationsTiledGridComponent, CollapsibleSectionGroupComponent, ContentGenerationProgressWithConfettiComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: `
|
|
59019
|
+
<div [ngClass]="getContainerClasses()">
|
|
59020
|
+
<!-- Scroll Progress Bar (fixed at top) -->
|
|
59021
|
+
<div [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'">
|
|
59022
|
+
<div
|
|
59023
|
+
[style.width.%]="scrollProgress()"
|
|
59024
|
+
[ngClass]="isLightMode() ? 'bg-gradient-to-r from-blue-500 to-purple-500' : 'bg-gradient-to-r from-blue-400 to-purple-400'"
|
|
59025
|
+
class="h-full transition-all duration-200 ease-out">
|
|
59026
|
+
</div>
|
|
59027
|
+
</div>
|
|
59028
|
+
|
|
59029
|
+
<div class="animated-bubbles" [class.light-mode]="isLightMode()" style="position: fixed; top: 0; left: 0; right: 0; bottom: 0; width: 100vw; height: 100vh; z-index: 1; pointer-events: none;"></div>
|
|
59030
|
+
|
|
59031
|
+
<div class="relative z-[51]">
|
|
59032
|
+
<header [ngClass]="getHeaderClasses()" class="sticky top-0 z-50">
|
|
59033
|
+
<!-- Expanded Header (default state) -->
|
|
59034
|
+
<div
|
|
59035
|
+
class="transition-all duration-300 ease-in-out overflow-hidden"
|
|
59036
|
+
[class.max-h-0]="headerScrollService.isScrolled()"
|
|
59037
|
+
[class.opacity-0]="headerScrollService.isScrolled()"
|
|
59038
|
+
[class.max-h-96]="!headerScrollService.isScrolled()"
|
|
59039
|
+
[class.opacity-100]="!headerScrollService.isScrolled()">
|
|
59040
|
+
<div
|
|
59041
|
+
class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8"
|
|
59042
|
+
[class.pointer-events-none]="headerScrollService.isScrolled()"
|
|
59043
|
+
[class.pointer-events-auto]="!headerScrollService.isScrolled()">
|
|
59044
|
+
<div class="flex items-center justify-between">
|
|
59045
|
+
<div>
|
|
59046
|
+
<h1 [ngClass]="getMainTitleClasses()">
|
|
59047
|
+
{{ currentProfile()?.profileStructured?.businessName || 'Business Analysis' }}
|
|
59048
|
+
</h1>
|
|
59049
|
+
<p [ngClass]="getSubtitleClasses()">
|
|
59050
|
+
Business Profile & Analysis
|
|
59051
|
+
</p>
|
|
59052
|
+
</div>
|
|
59053
|
+
@if (profile()?.selfContentStatus === AiDynamicContentStatusEnum.GENERATED) {
|
|
59054
|
+
<div class="flex items-center gap-2">
|
|
59055
|
+
<symphiq-search-button
|
|
59056
|
+
[isLightMode]="isLightMode()"
|
|
59057
|
+
(searchClick)="openSearch()"
|
|
59058
|
+
/>
|
|
59059
|
+
<button
|
|
59060
|
+
type="button"
|
|
59061
|
+
(click)="openViewModeSwitcher()"
|
|
59062
|
+
[ngClass]="getViewModeButtonClasses()"
|
|
59063
|
+
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">
|
|
59064
|
+
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
59065
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
|
|
59066
|
+
<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>
|
|
59067
|
+
</svg>
|
|
59068
|
+
<span>{{ displayModeLabel() }}</span>
|
|
59069
|
+
</button>
|
|
59070
|
+
</div>
|
|
59071
|
+
}
|
|
59072
|
+
</div>
|
|
59073
|
+
</div>
|
|
59074
|
+
</div>
|
|
59075
|
+
|
|
59076
|
+
<!-- Condensed Header (scrolled state) -->
|
|
59077
|
+
<div
|
|
59078
|
+
class="transition-all duration-300 ease-in-out overflow-hidden"
|
|
59079
|
+
[class.max-h-0]="!headerScrollService.isScrolled()"
|
|
59080
|
+
[class.opacity-0]="!headerScrollService.isScrolled()"
|
|
59081
|
+
[class.max-h-20]="headerScrollService.isScrolled()"
|
|
59082
|
+
[class.opacity-100]="headerScrollService.isScrolled()">
|
|
59083
|
+
<div
|
|
59084
|
+
class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-3"
|
|
59085
|
+
[class.pointer-events-none]="!headerScrollService.isScrolled()"
|
|
59086
|
+
[class.pointer-events-auto]="headerScrollService.isScrolled()">
|
|
59087
|
+
<div class="flex items-center justify-between">
|
|
59088
|
+
<div class="flex-1 min-w-0 mr-4">
|
|
59089
|
+
<h1 [ngClass]="isLightMode() ? 'text-xl font-bold bg-gradient-to-r from-blue-600 to-purple-600 bg-clip-text text-transparent truncate' : 'text-xl font-bold bg-gradient-to-r from-blue-400 to-purple-400 bg-clip-text text-transparent truncate'">
|
|
59090
|
+
{{ currentProfile()?.profileStructured?.businessName || 'Business Analysis' }}
|
|
59091
|
+
</h1>
|
|
59092
|
+
</div>
|
|
59093
|
+
<div class="flex items-center gap-4">
|
|
59094
|
+
@if (!isSimplifiedView()) {
|
|
59095
|
+
<div class="flex items-center gap-2 text-sm flex-shrink-0">
|
|
59096
|
+
<span [ngClass]="isLightMode() ? 'text-slate-600 font-medium' : 'text-slate-400 font-medium'" class="transition-opacity duration-300" [class.opacity-0]="sectionTitleFading()" [class.opacity-100]="!sectionTitleFading()">
|
|
59097
|
+
{{ currentSectionTitle() }}
|
|
59098
|
+
</span>
|
|
59099
|
+
@if (currentSubsectionTitle()) {
|
|
59100
|
+
<span [ngClass]="isLightMode() ? 'text-slate-400' : 'text-slate-500'" class="transition-opacity duration-300" [class.opacity-0]="subsectionTitleFading()" [class.opacity-100]="!subsectionTitleFading()">›</span>
|
|
59101
|
+
<span [ngClass]="isLightMode() ? 'text-slate-500' : 'text-slate-500'" class="transition-opacity duration-300" [class.opacity-0]="subsectionTitleFading()" [class.opacity-100]="!subsectionTitleFading()">
|
|
59102
|
+
{{ currentSubsectionTitle() }}
|
|
59103
|
+
</span>
|
|
59104
|
+
}
|
|
59105
|
+
</div>
|
|
59106
|
+
}
|
|
59107
|
+
@if (profile()?.selfContentStatus === AiDynamicContentStatusEnum.GENERATED) {
|
|
59108
|
+
<symphiq-search-button
|
|
59109
|
+
[isLightMode]="isLightMode()"
|
|
59110
|
+
[minimized]="true"
|
|
59111
|
+
(searchClick)="openSearch()"
|
|
59112
|
+
/>
|
|
59113
|
+
<button
|
|
59114
|
+
type="button"
|
|
59115
|
+
(click)="openViewModeSwitcher()"
|
|
59116
|
+
[ngClass]="getViewModeButtonClasses()"
|
|
59117
|
+
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">
|
|
59118
|
+
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
59119
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
|
|
59120
|
+
<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>
|
|
59121
|
+
</svg>
|
|
59122
|
+
</button>
|
|
59123
|
+
}
|
|
59124
|
+
</div>
|
|
59125
|
+
</div>
|
|
59126
|
+
</div>
|
|
59127
|
+
</div>
|
|
59128
|
+
</header>
|
|
59129
|
+
|
|
59130
|
+
<main class="relative">
|
|
59131
|
+
@if (isContentGenerating()) {
|
|
59132
|
+
<!-- Journey Progress Banner (always show when not onboarded) -->
|
|
59133
|
+
@if (!isOnboarded()) {
|
|
59134
|
+
<symphiq-journey-progress-indicator
|
|
59135
|
+
[viewMode]="viewMode()"
|
|
59136
|
+
[currentStepId]="JourneyStepIdEnum.BUSINESS_ANALYSIS"
|
|
59137
|
+
[showNextStepAction]="false"
|
|
59138
|
+
[forDemo]="forDemo()"
|
|
59139
|
+
[maxAccessibleStepId]="maxAccessibleStepId()"
|
|
59140
|
+
(stepClick)="stepClick.emit($event)"
|
|
59141
|
+
(nextStepClick)="nextStepClick.emit()"
|
|
59142
|
+
/>
|
|
59143
|
+
}
|
|
59144
|
+
|
|
59145
|
+
<!-- Content Generation Progress Component -->
|
|
59146
|
+
<symphiq-content-generation-progress-with-confetti
|
|
59147
|
+
[viewMode]="viewMode()"
|
|
59148
|
+
[itemStatus]="itemStatus()"
|
|
59149
|
+
[profile]="profile()"
|
|
59150
|
+
[confettiIntensity]="'celebration'"
|
|
59151
|
+
[title]="'We are generating a new Business Analysis for ' + (currentProfile()?.profileStructured?.businessName || 'your business') + '.'"
|
|
59152
|
+
[subtitle]="'It will appear here when ready. You can check back later as this will take a few minutes to complete.'"
|
|
59153
|
+
/>
|
|
59154
|
+
} @else {
|
|
59155
|
+
@if (isSimplifiedView()) {
|
|
59156
|
+
<!-- Journey Progress Banner - Full Width Sticky (only show when not onboarded) -->
|
|
59157
|
+
@if (!isOnboarded()) {
|
|
59158
|
+
<symphiq-journey-progress-indicator
|
|
59159
|
+
[viewMode]="viewMode()"
|
|
59160
|
+
[currentStepId]="JourneyStepIdEnum.BUSINESS_ANALYSIS"
|
|
59161
|
+
[showNextStepAction]="showNextStepAction()"
|
|
59162
|
+
[forDemo]="forDemo()"
|
|
59163
|
+
[maxAccessibleStepId]="maxAccessibleStepId()"
|
|
59164
|
+
(stepClick)="stepClick.emit($event)"
|
|
59165
|
+
(nextStepClick)="nextStepClick.emit()"
|
|
59166
|
+
/>
|
|
59167
|
+
}
|
|
59168
|
+
|
|
59169
|
+
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8">
|
|
59170
|
+
<div class="mb-8">
|
|
59171
|
+
<symphiq-welcome-banner
|
|
59172
|
+
[viewMode]="viewMode()"
|
|
59173
|
+
[businessName]="currentProfile()?.profileStructured?.businessName || 'your business'"
|
|
59174
|
+
[isOnboarded]="isOnboarded()"
|
|
59175
|
+
/>
|
|
59176
|
+
</div>
|
|
59177
|
+
|
|
59178
|
+
<div class="mb-8">
|
|
59179
|
+
<symphiq-recommendations-tiled-grid
|
|
59180
|
+
[recommendations]="recommendationItems()"
|
|
59181
|
+
[viewMode]="viewMode()"
|
|
59182
|
+
(viewMoreClick)="openRecommendationDetailsModal($event)"
|
|
59183
|
+
/>
|
|
59184
|
+
</div>
|
|
59185
|
+
|
|
59186
|
+
<div>
|
|
59187
|
+
<symphiq-collapsible-section-group
|
|
59188
|
+
[sections]="nonRecommendationSections()"
|
|
59189
|
+
[viewMode]="viewMode()"
|
|
59190
|
+
/>
|
|
59191
|
+
</div>
|
|
59192
|
+
</div>
|
|
59193
|
+
} @else {
|
|
59194
|
+
@for (section of sections(); track trackBySectionId($index, section); let idx = $index; let last = $last) {
|
|
59195
|
+
<symphiq-profile-section
|
|
59196
|
+
[section]="section"
|
|
59197
|
+
[viewMode]="viewMode()"
|
|
59198
|
+
[forceExpanded]="!isCompactView()"
|
|
59199
|
+
/>
|
|
59200
|
+
@if (!last) {
|
|
59201
|
+
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
|
59202
|
+
<symphiq-section-divider
|
|
59203
|
+
[viewMode]="viewMode()"
|
|
59204
|
+
[subsections]="sections()[idx + 1].subsections || []" />
|
|
59205
|
+
</div>
|
|
59206
|
+
}
|
|
59207
|
+
}
|
|
59208
|
+
}
|
|
59209
|
+
}
|
|
59210
|
+
</main>
|
|
59211
|
+
|
|
59212
|
+
@if (!isSimplifiedView()) {
|
|
59213
|
+
<symphiq-section-navigation
|
|
59214
|
+
[sections]="sections()"
|
|
59215
|
+
[viewMode]="viewMode()"
|
|
59216
|
+
[embedded]="embedded()"
|
|
59217
|
+
[scrollElement]="scrollElement() ?? undefined"
|
|
59218
|
+
/>
|
|
59219
|
+
}
|
|
59220
|
+
|
|
59221
|
+
@if (!isSimplifiedView()) {
|
|
59222
|
+
<symphiq-floating-toc
|
|
59223
|
+
[sections]="sections()"
|
|
59224
|
+
[viewMode]="viewMode()"
|
|
59225
|
+
[embedded]="embedded()"
|
|
59226
|
+
[scrollElement]="scrollElement() ?? undefined"
|
|
59227
|
+
/>
|
|
59228
|
+
}
|
|
59229
|
+
|
|
59230
|
+
<symphiq-floating-back-button
|
|
59231
|
+
[viewMode]="viewMode()"
|
|
59232
|
+
[embedded]="embedded()"
|
|
59233
|
+
/>
|
|
59234
|
+
</div>
|
|
59235
|
+
|
|
59236
|
+
@if (isLoading()) {
|
|
59237
|
+
<div [ngClass]="getLoadingOverlayClasses()">
|
|
59238
|
+
<div [ngClass]="getSpinnerClasses()"></div>
|
|
59239
|
+
</div>
|
|
59240
|
+
}
|
|
59241
|
+
|
|
59242
|
+
<symphiq-tooltip-container />
|
|
59243
|
+
<symphiq-business-analysis-modal
|
|
59244
|
+
[isLightMode]="isLightMode()"
|
|
59245
|
+
(viewInContextRequested)="handleViewInContext($event)" />
|
|
59246
|
+
|
|
59247
|
+
<symphiq-search-modal
|
|
59248
|
+
[isLightMode]="isLightMode()"
|
|
59249
|
+
[isOpen]="searchService.isSearchOpen()"
|
|
59250
|
+
[searchQuery]="searchService.getSearchQuery()"
|
|
59251
|
+
[results]="searchService.searchResults()"
|
|
59252
|
+
[hasResults]="searchService.hasResults()"
|
|
59253
|
+
[selectedIndex]="selectedSearchIndex()"
|
|
59254
|
+
[placeholder]="'Search sections, items, and analysis...'"
|
|
59255
|
+
(searchChange)="onSearchChange($event)"
|
|
59256
|
+
(resultSelected)="onSearchResultSelected($event)"
|
|
59257
|
+
(close)="closeSearch()"
|
|
59258
|
+
/>
|
|
59259
|
+
|
|
59260
|
+
<symphiq-view-mode-switcher-modal
|
|
59261
|
+
[isOpen]="isViewModeSwitcherOpen()"
|
|
59262
|
+
[currentMode]="displayMode()"
|
|
59263
|
+
[viewMode]="viewMode()"
|
|
59264
|
+
[isLoading]="isViewModeSwitching()"
|
|
59265
|
+
(close)="closeViewModeSwitcher()"
|
|
59266
|
+
(modeSelected)="handleDisplayModeChange($event)"
|
|
59267
|
+
/>
|
|
59268
|
+
</div>
|
|
59109
59269
|
`, styles: [":host{display:block}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse-highlight{0%,to{transform:scale(1);box-shadow:0 0 #3b82f6b3}50%{transform:scale(1.02);box-shadow:0 0 20px 8px #3b82f64d}}:host ::ng-deep .search-highlight-pulse{animation:pulse-highlight 2s ease-in-out;border-color:#3b82f6!important}\n"] }]
|
|
59110
59270
|
}], () => [], { embedded: [{ type: i0.Input, args: [{ isSignal: true, alias: "embedded", required: false }] }], profile: [{ type: i0.Input, args: [{ isSignal: true, alias: "profile", required: false }] }], parentHeaderOffset: [{ type: i0.Input, args: [{ isSignal: true, alias: "parentHeaderOffset", required: false }] }], requestedByUser: [{ type: i0.Input, args: [{ isSignal: true, alias: "requestedByUser", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], scrollEvent: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollEvent", required: false }] }], scrollElement: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollElement", required: false }] }], isLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLoading", required: false }] }], isOnboarded: [{ type: i0.Input, args: [{ isSignal: true, alias: "isOnboarded", required: false }] }], forDemo: [{ type: i0.Input, args: [{ isSignal: true, alias: "forDemo", required: false }] }], maxAccessibleStepId: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxAccessibleStepId", required: false }] }], itemStatus: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemStatus", required: false }] }], stepClick: [{ type: i0.Output, args: ["stepClick"] }], nextStepClick: [{ type: i0.Output, args: ["nextStepClick"] }], onScroll: [{
|
|
59111
59271
|
type: HostListener,
|
|
@@ -59114,7 +59274,7 @@ class SymphiqBusinessAnalysisDashboardComponent {
|
|
|
59114
59274
|
type: HostListener,
|
|
59115
59275
|
args: ['document:keydown', ['$event']]
|
|
59116
59276
|
}] }); })();
|
|
59117
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqBusinessAnalysisDashboardComponent, { className: "SymphiqBusinessAnalysisDashboardComponent", filePath: "lib/components/business-analysis-dashboard/symphiq-business-analysis-dashboard.component.ts", lineNumber:
|
|
59277
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqBusinessAnalysisDashboardComponent, { className: "SymphiqBusinessAnalysisDashboardComponent", filePath: "lib/components/business-analysis-dashboard/symphiq-business-analysis-dashboard.component.ts", lineNumber: 335 }); })();
|
|
59118
59278
|
|
|
59119
59279
|
function DashboardHeaderComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
59120
59280
|
i0.ɵɵelement(0, "div", 6);
|
|
@@ -104874,5 +105034,5 @@ const PROFILE_ANALYSIS_METRIC_SCREEN_PAGE_VIEWS = ({
|
|
|
104874
105034
|
* Generated bundle index. Do not edit.
|
|
104875
105035
|
*/
|
|
104876
105036
|
|
|
104877
|
-
export { AreaChartComponent, BUSINESS_PROFILE, BarChartComponent, BreakdownSectionComponent, BusinessAnalysisModalComponent, BusinessProfileSearchService, ChartCardComponent, ChartContainerComponent, ChartThemeService, CircularProgressComponent, CompetitivePositioningSummaryComponent, CompetitorAnalysisCardComponent, ConfidenceLevelCardComponent, ContentGenerationProgressComponent, CrossDashboardRelationshipsService, FUNNEL_ANALYSIS, FloatingBackButtonComponent, FloatingTocComponent, FocusAreaDetailCardComponent, FocusAreaExecutiveSummaryComponent, FocusAreaQuestionComponent, FocusAreaToolsModalComponent, FunnelOrderService, GradeBadgeComponent, HeaderScrollService, HierarchyDisplayComponent, HorizontalBarComponent, IconService, InsightCardComponent, JourneyProgressIndicatorComponent, JourneyStepIdEnum, LineChartComponent, MetricCardComponent, MetricExecutiveSummaryComponent, MetricFormatterService, MetricListItemComponent, MetricWelcomeBannerComponent, MobileBottomNavComponent, MobileFABComponent, ModalComponent, ModalService, NapkinVisualPlaceholderComponent, NavigationStateService, OpportunityHighlightBannerComponent, OverallAssessmentComponent, PROFILE_ANALYSIS_FOCUS_AREA_AFFILIATE, PROFILE_ANALYSIS_METRIC_SCREEN_PAGE_VIEWS, PROFILE_ANALYSIS_SHOP, PieChartComponent, ProfileItemCardComponent, ProfileSectionComponent, ProfileSubsectionComponent, RelatedContentSidebarComponent, ScrollDepthService, ScrollProgressBarComponent, SearchButtonComponent, SearchModalComponent, SectionDividerComponent, SectionNavigationComponent, ShadowElevationDirective, ShopPlatformEnum, ShopWelcomeBannerComponent, SkeletonBarComponent, SkeletonCardBaseComponent, SkeletonCircleComponent, SkeletonCompetitorCardComponent, SkeletonCustomerSegmentCardComponent, SkeletonFocusAreaCardComponent, SkeletonGenericCardComponent, SkeletonLoaderComponent, SkeletonPriceTierCardComponent, SkeletonProductCategoryCardComponent, SkeletonRegionCardComponent, SkeletonSeasonCardComponent, SymphiqBusinessAnalysisDashboardComponent, SymphiqConnectGaDashboardComponent, SymphiqCreateAccountDashboardComponent, SymphiqFunnelAnalysisDashboardComponent, SymphiqFunnelAnalysisPreviewComponent, SymphiqIconComponent, SymphiqProfileAnalysisDashboardComponent, SymphiqWelcomeDashboardComponent, 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 };
|
|
105037
|
+
export { AreaChartComponent, BUSINESS_PROFILE, BarChartComponent, BreakdownSectionComponent, BusinessAnalysisModalComponent, BusinessProfileSearchService, ChartCardComponent, ChartContainerComponent, ChartThemeService, CircularProgressComponent, CompetitivePositioningSummaryComponent, CompetitorAnalysisCardComponent, ConfettiService, ConfidenceLevelCardComponent, ContentGenerationProgressComponent, ContentGenerationProgressWithConfettiComponent, CrossDashboardRelationshipsService, FUNNEL_ANALYSIS, FloatingBackButtonComponent, FloatingTocComponent, FocusAreaDetailCardComponent, FocusAreaExecutiveSummaryComponent, FocusAreaQuestionComponent, FocusAreaToolsModalComponent, FunnelOrderService, GradeBadgeComponent, HeaderScrollService, HierarchyDisplayComponent, HorizontalBarComponent, IconService, InsightCardComponent, JourneyProgressIndicatorComponent, JourneyStepIdEnum, LineChartComponent, MetricCardComponent, MetricExecutiveSummaryComponent, MetricFormatterService, MetricListItemComponent, MetricWelcomeBannerComponent, MobileBottomNavComponent, MobileFABComponent, ModalComponent, ModalService, NapkinVisualPlaceholderComponent, NavigationStateService, OpportunityHighlightBannerComponent, OverallAssessmentComponent, PROFILE_ANALYSIS_FOCUS_AREA_AFFILIATE, PROFILE_ANALYSIS_METRIC_SCREEN_PAGE_VIEWS, PROFILE_ANALYSIS_SHOP, PieChartComponent, ProfileItemCardComponent, ProfileSectionComponent, ProfileSubsectionComponent, RelatedContentSidebarComponent, ScrollDepthService, ScrollProgressBarComponent, SearchButtonComponent, SearchModalComponent, SectionDividerComponent, SectionNavigationComponent, ShadowElevationDirective, ShopPlatformEnum, ShopWelcomeBannerComponent, SkeletonBarComponent, SkeletonCardBaseComponent, SkeletonCircleComponent, SkeletonCompetitorCardComponent, SkeletonCustomerSegmentCardComponent, SkeletonFocusAreaCardComponent, SkeletonGenericCardComponent, SkeletonLoaderComponent, SkeletonPriceTierCardComponent, SkeletonProductCategoryCardComponent, SkeletonRegionCardComponent, SkeletonSeasonCardComponent, SymphiqBusinessAnalysisDashboardComponent, SymphiqConnectGaDashboardComponent, SymphiqCreateAccountDashboardComponent, SymphiqFunnelAnalysisDashboardComponent, SymphiqFunnelAnalysisPreviewComponent, SymphiqIconComponent, SymphiqProfileAnalysisDashboardComponent, SymphiqWelcomeDashboardComponent, 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 };
|
|
104878
105038
|
//# sourceMappingURL=symphiq-components.mjs.map
|