@eric-emg/symphiq-components 1.2.517 → 1.2.518
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 +1086 -1277
- package/fesm2022/symphiq-components.mjs.map +1 -1
- package/index.d.ts +28 -26
- package/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -65843,63 +65843,6 @@ class FloatingBackButtonComponent {
|
|
|
65843
65843
|
}], null, { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], embedded: [{ type: i0.Input, args: [{ isSignal: true, alias: "embedded", required: false }] }] }); })();
|
|
65844
65844
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FloatingBackButtonComponent, { className: "FloatingBackButtonComponent", filePath: "lib/components/business-analysis-dashboard/floating-back-button.component.ts", lineNumber: 70 }); })();
|
|
65845
65845
|
|
|
65846
|
-
function SearchButtonComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
65847
|
-
i0.ɵɵelementStart(0, "span");
|
|
65848
|
-
i0.ɵɵtext(1, "Search");
|
|
65849
|
-
i0.ɵɵelementEnd();
|
|
65850
|
-
} }
|
|
65851
|
-
class SearchButtonComponent {
|
|
65852
|
-
constructor() {
|
|
65853
|
-
this.isLightMode = input(false, ...(ngDevMode ? [{ debugName: "isLightMode" }] : []));
|
|
65854
|
-
this.minimized = input(false, ...(ngDevMode ? [{ debugName: "minimized" }] : []));
|
|
65855
|
-
this.title = input('Search (/ or Cmd+K)', ...(ngDevMode ? [{ debugName: "title" }] : []));
|
|
65856
|
-
this.searchClick = output();
|
|
65857
|
-
this.buttonClass = computed(() => {
|
|
65858
|
-
if (this.isLightMode()) {
|
|
65859
|
-
return 'bg-slate-100 text-slate-700 hover:bg-slate-200 hover:text-slate-900';
|
|
65860
|
-
}
|
|
65861
|
-
return 'bg-slate-800 text-slate-300 hover:bg-slate-700 hover:text-white';
|
|
65862
|
-
}, ...(ngDevMode ? [{ debugName: "buttonClass" }] : []));
|
|
65863
|
-
}
|
|
65864
|
-
static { this.ɵfac = function SearchButtonComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SearchButtonComponent)(); }; }
|
|
65865
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SearchButtonComponent, selectors: [["symphiq-search-button"]], inputs: { isLightMode: [1, "isLightMode"], minimized: [1, "minimized"], title: [1, "title"] }, outputs: { searchClick: "searchClick" }, decls: 4, vars: 9, consts: [["type", "button", 3, "click", "ngClass", "title"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"]], template: function SearchButtonComponent_Template(rf, ctx) { if (rf & 1) {
|
|
65866
|
-
i0.ɵɵelementStart(0, "button", 0);
|
|
65867
|
-
i0.ɵɵlistener("click", function SearchButtonComponent_Template_button_click_0_listener() { return ctx.searchClick.emit(); });
|
|
65868
|
-
i0.ɵɵnamespaceSVG();
|
|
65869
|
-
i0.ɵɵelementStart(1, "svg", 1);
|
|
65870
|
-
i0.ɵɵelement(2, "path", 2);
|
|
65871
|
-
i0.ɵɵelementEnd();
|
|
65872
|
-
i0.ɵɵconditionalCreate(3, SearchButtonComponent_Conditional_3_Template, 2, 0, "span");
|
|
65873
|
-
i0.ɵɵelementEnd();
|
|
65874
|
-
} if (rf & 2) {
|
|
65875
|
-
i0.ɵɵclassMap(ctx.minimized() ? "cursor-pointer p-2 rounded-lg transition-all duration-200 hover:scale-110" : "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");
|
|
65876
|
-
i0.ɵɵproperty("ngClass", ctx.buttonClass())("title", ctx.title());
|
|
65877
|
-
i0.ɵɵadvance();
|
|
65878
|
-
i0.ɵɵclassProp("w-5", ctx.minimized())("h-5", ctx.minimized());
|
|
65879
|
-
i0.ɵɵadvance(2);
|
|
65880
|
-
i0.ɵɵconditional(!ctx.minimized() ? 3 : -1);
|
|
65881
|
-
} }, dependencies: [CommonModule, i1$1.NgClass], styles: ["[_nghost-%COMP%]{display:contents}"], changeDetection: 0 }); }
|
|
65882
|
-
}
|
|
65883
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SearchButtonComponent, [{
|
|
65884
|
-
type: Component,
|
|
65885
|
-
args: [{ selector: 'symphiq-search-button', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule], template: `
|
|
65886
|
-
<button
|
|
65887
|
-
type="button"
|
|
65888
|
-
(click)="searchClick.emit()"
|
|
65889
|
-
[ngClass]="buttonClass()"
|
|
65890
|
-
[title]="title()"
|
|
65891
|
-
[class]="minimized() ? 'cursor-pointer p-2 rounded-lg transition-all duration-200 hover:scale-110' : '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'">
|
|
65892
|
-
<svg class="w-4 h-4" [class.w-5]="minimized()" [class.h-5]="minimized()" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
65893
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path>
|
|
65894
|
-
</svg>
|
|
65895
|
-
@if (!minimized()) {
|
|
65896
|
-
<span>Search</span>
|
|
65897
|
-
}
|
|
65898
|
-
</button>
|
|
65899
|
-
`, styles: [":host{display:contents}\n"] }]
|
|
65900
|
-
}], null, { isLightMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLightMode", required: false }] }], minimized: [{ type: i0.Input, args: [{ isSignal: true, alias: "minimized", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], searchClick: [{ type: i0.Output, args: ["searchClick"] }] }); })();
|
|
65901
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SearchButtonComponent, { className: "SearchButtonComponent", filePath: "lib/components/shared/search-button.component.ts", lineNumber: 30 }); })();
|
|
65902
|
-
|
|
65903
65846
|
const _c0$w = ["searchInput"];
|
|
65904
65847
|
const _forTrack0$w = ($index, $item) => $item.id;
|
|
65905
65848
|
function SearchModalComponent_Conditional_0_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
@@ -67830,17 +67773,76 @@ class CollapsibleSectionGroupComponent {
|
|
|
67830
67773
|
}], null, { sections: [{ type: i0.Input, args: [{ isSignal: true, alias: "sections", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }] }); })();
|
|
67831
67774
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CollapsibleSectionGroupComponent, { className: "CollapsibleSectionGroupComponent", filePath: "lib/components/business-analysis-dashboard/collapsible-section-group.component.ts", lineNumber: 100 }); })();
|
|
67832
67775
|
|
|
67833
|
-
|
|
67834
|
-
|
|
67776
|
+
function SearchButtonComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
67777
|
+
i0.ɵɵelementStart(0, "span");
|
|
67778
|
+
i0.ɵɵtext(1, "Search");
|
|
67779
|
+
i0.ɵɵelementEnd();
|
|
67780
|
+
} }
|
|
67781
|
+
class SearchButtonComponent {
|
|
67782
|
+
constructor() {
|
|
67783
|
+
this.isLightMode = input(false, ...(ngDevMode ? [{ debugName: "isLightMode" }] : []));
|
|
67784
|
+
this.minimized = input(false, ...(ngDevMode ? [{ debugName: "minimized" }] : []));
|
|
67785
|
+
this.title = input('Search (/ or Cmd+K)', ...(ngDevMode ? [{ debugName: "title" }] : []));
|
|
67786
|
+
this.searchClick = output();
|
|
67787
|
+
this.buttonClass = computed(() => {
|
|
67788
|
+
if (this.isLightMode()) {
|
|
67789
|
+
return 'bg-slate-100 text-slate-700 hover:bg-slate-200 hover:text-slate-900';
|
|
67790
|
+
}
|
|
67791
|
+
return 'bg-slate-800 text-slate-300 hover:bg-slate-700 hover:text-white';
|
|
67792
|
+
}, ...(ngDevMode ? [{ debugName: "buttonClass" }] : []));
|
|
67793
|
+
}
|
|
67794
|
+
static { this.ɵfac = function SearchButtonComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SearchButtonComponent)(); }; }
|
|
67795
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SearchButtonComponent, selectors: [["symphiq-search-button"]], inputs: { isLightMode: [1, "isLightMode"], minimized: [1, "minimized"], title: [1, "title"] }, outputs: { searchClick: "searchClick" }, decls: 4, vars: 9, consts: [["type", "button", 3, "click", "ngClass", "title"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"]], template: function SearchButtonComponent_Template(rf, ctx) { if (rf & 1) {
|
|
67796
|
+
i0.ɵɵelementStart(0, "button", 0);
|
|
67797
|
+
i0.ɵɵlistener("click", function SearchButtonComponent_Template_button_click_0_listener() { return ctx.searchClick.emit(); });
|
|
67798
|
+
i0.ɵɵnamespaceSVG();
|
|
67799
|
+
i0.ɵɵelementStart(1, "svg", 1);
|
|
67800
|
+
i0.ɵɵelement(2, "path", 2);
|
|
67801
|
+
i0.ɵɵelementEnd();
|
|
67802
|
+
i0.ɵɵconditionalCreate(3, SearchButtonComponent_Conditional_3_Template, 2, 0, "span");
|
|
67803
|
+
i0.ɵɵelementEnd();
|
|
67804
|
+
} if (rf & 2) {
|
|
67805
|
+
i0.ɵɵclassMap(ctx.minimized() ? "cursor-pointer p-2 rounded-lg transition-all duration-200 hover:scale-110" : "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");
|
|
67806
|
+
i0.ɵɵproperty("ngClass", ctx.buttonClass())("title", ctx.title());
|
|
67807
|
+
i0.ɵɵadvance();
|
|
67808
|
+
i0.ɵɵclassProp("w-5", ctx.minimized())("h-5", ctx.minimized());
|
|
67809
|
+
i0.ɵɵadvance(2);
|
|
67810
|
+
i0.ɵɵconditional(!ctx.minimized() ? 3 : -1);
|
|
67811
|
+
} }, dependencies: [CommonModule, i1$1.NgClass], styles: ["[_nghost-%COMP%]{display:contents}"], changeDetection: 0 }); }
|
|
67812
|
+
}
|
|
67813
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SearchButtonComponent, [{
|
|
67814
|
+
type: Component,
|
|
67815
|
+
args: [{ selector: 'symphiq-search-button', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule], template: `
|
|
67816
|
+
<button
|
|
67817
|
+
type="button"
|
|
67818
|
+
(click)="searchClick.emit()"
|
|
67819
|
+
[ngClass]="buttonClass()"
|
|
67820
|
+
[title]="title()"
|
|
67821
|
+
[class]="minimized() ? 'cursor-pointer p-2 rounded-lg transition-all duration-200 hover:scale-110' : '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'">
|
|
67822
|
+
<svg class="w-4 h-4" [class.w-5]="minimized()" [class.h-5]="minimized()" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
67823
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path>
|
|
67824
|
+
</svg>
|
|
67825
|
+
@if (!minimized()) {
|
|
67826
|
+
<span>Search</span>
|
|
67827
|
+
}
|
|
67828
|
+
</button>
|
|
67829
|
+
`, styles: [":host{display:contents}\n"] }]
|
|
67830
|
+
}], null, { isLightMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLightMode", required: false }] }], minimized: [{ type: i0.Input, args: [{ isSignal: true, alias: "minimized", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], searchClick: [{ type: i0.Output, args: ["searchClick"] }] }); })();
|
|
67831
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SearchButtonComponent, { className: "SearchButtonComponent", filePath: "lib/components/shared/search-button.component.ts", lineNumber: 30 }); })();
|
|
67832
|
+
|
|
67833
|
+
function DashboardHeaderComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
67834
|
+
i0.ɵɵelement(0, "div", 6);
|
|
67835
|
+
} }
|
|
67836
|
+
function DashboardHeaderComponent_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
67835
67837
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
67836
|
-
i0.ɵɵelementStart(0, "div",
|
|
67837
|
-
i0.ɵɵlistener("searchClick", function
|
|
67838
|
+
i0.ɵɵelementStart(0, "div", 7)(1, "symphiq-search-button", 15);
|
|
67839
|
+
i0.ɵɵlistener("searchClick", function DashboardHeaderComponent_Conditional_11_Template_symphiq_search_button_searchClick_1_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onSearchClick()); });
|
|
67838
67840
|
i0.ɵɵelementEnd();
|
|
67839
|
-
i0.ɵɵelementStart(2, "button",
|
|
67840
|
-
i0.ɵɵlistener("click", function
|
|
67841
|
+
i0.ɵɵelementStart(2, "button", 16);
|
|
67842
|
+
i0.ɵɵlistener("click", function DashboardHeaderComponent_Conditional_11_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onViewModeClick()); });
|
|
67841
67843
|
i0.ɵɵnamespaceSVG();
|
|
67842
|
-
i0.ɵɵelementStart(3, "svg",
|
|
67843
|
-
i0.ɵɵelement(4, "path",
|
|
67844
|
+
i0.ɵɵelementStart(3, "svg", 17);
|
|
67845
|
+
i0.ɵɵelement(4, "path", 18)(5, "path", 19);
|
|
67844
67846
|
i0.ɵɵelementEnd();
|
|
67845
67847
|
i0.ɵɵnamespaceHTML();
|
|
67846
67848
|
i0.ɵɵelementStart(6, "span");
|
|
@@ -67853,422 +67855,713 @@ function SymphiqBusinessAnalysisDashboardComponent_Conditional_14_Template(rf, c
|
|
|
67853
67855
|
i0.ɵɵadvance();
|
|
67854
67856
|
i0.ɵɵproperty("ngClass", ctx_r1.getViewModeButtonClasses());
|
|
67855
67857
|
i0.ɵɵadvance(5);
|
|
67856
|
-
i0.ɵɵtextInterpolate(ctx_r1.
|
|
67858
|
+
i0.ɵɵtextInterpolate(ctx_r1.viewModeLabel());
|
|
67857
67859
|
} }
|
|
67858
|
-
function
|
|
67859
|
-
i0.ɵɵelementStart(0, "
|
|
67860
|
-
i0.ɵɵtext(
|
|
67861
|
-
i0.ɵɵelementEnd();
|
|
67862
|
-
i0.ɵɵelementStart(2, "span", 26);
|
|
67863
|
-
i0.ɵɵtext(3);
|
|
67860
|
+
function DashboardHeaderComponent_Conditional_12_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
67861
|
+
i0.ɵɵelementStart(0, "div", 20)(1, "div", 21);
|
|
67862
|
+
i0.ɵɵtext(2, "Generated At");
|
|
67864
67863
|
i0.ɵɵelementEnd();
|
|
67864
|
+
i0.ɵɵelementStart(3, "div", 22);
|
|
67865
|
+
i0.ɵɵtext(4);
|
|
67866
|
+
i0.ɵɵelementEnd()();
|
|
67865
67867
|
} if (rf & 2) {
|
|
67866
67868
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
67867
|
-
i0.ɵɵclassProp("opacity-0", ctx_r1.subsectionTitleFading())("opacity-100", !ctx_r1.subsectionTitleFading());
|
|
67868
|
-
i0.ɵɵproperty("ngClass", ctx_r1.isLightMode() ? "text-slate-400" : "text-slate-500");
|
|
67869
|
-
i0.ɵɵadvance(2);
|
|
67870
|
-
i0.ɵɵclassProp("opacity-0", ctx_r1.subsectionTitleFading())("opacity-100", !ctx_r1.subsectionTitleFading());
|
|
67871
|
-
i0.ɵɵproperty("ngClass", ctx_r1.isLightMode() ? "text-slate-500" : "text-slate-500");
|
|
67872
|
-
i0.ɵɵadvance();
|
|
67873
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r1.currentSubsectionTitle(), " ");
|
|
67874
|
-
} }
|
|
67875
|
-
function SymphiqBusinessAnalysisDashboardComponent_Conditional_22_Template(rf, ctx) { if (rf & 1) {
|
|
67876
|
-
i0.ɵɵelementStart(0, "div", 12)(1, "span", 26);
|
|
67877
|
-
i0.ɵɵtext(2);
|
|
67878
|
-
i0.ɵɵelementEnd();
|
|
67879
|
-
i0.ɵɵconditionalCreate(3, SymphiqBusinessAnalysisDashboardComponent_Conditional_22_Conditional_3_Template, 4, 11);
|
|
67880
|
-
i0.ɵɵelementEnd();
|
|
67881
|
-
} if (rf & 2) {
|
|
67882
|
-
const ctx_r1 = i0.ɵɵnextContext();
|
|
67883
|
-
i0.ɵɵadvance();
|
|
67884
|
-
i0.ɵɵclassProp("opacity-0", ctx_r1.sectionTitleFading())("opacity-100", !ctx_r1.sectionTitleFading());
|
|
67885
|
-
i0.ɵɵproperty("ngClass", ctx_r1.isLightMode() ? "text-slate-600 font-medium" : "text-slate-400 font-medium");
|
|
67886
67869
|
i0.ɵɵadvance();
|
|
67887
|
-
i0.ɵɵ
|
|
67870
|
+
i0.ɵɵclassMap(ctx_r1.metaLabelClass());
|
|
67871
|
+
i0.ɵɵadvance(2);
|
|
67872
|
+
i0.ɵɵclassMap(ctx_r1.headerTitleClass());
|
|
67888
67873
|
i0.ɵɵadvance();
|
|
67889
|
-
i0.ɵɵ
|
|
67874
|
+
i0.ɵɵtextInterpolate(ctx_r1.formattedGeneratedDate());
|
|
67890
67875
|
} }
|
|
67891
|
-
function
|
|
67892
|
-
|
|
67893
|
-
i0.ɵɵ
|
|
67894
|
-
i0.ɵɵlistener("searchClick", function SymphiqBusinessAnalysisDashboardComponent_Conditional_23_Template_symphiq_search_button_searchClick_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.openSearch()); });
|
|
67876
|
+
function DashboardHeaderComponent_Conditional_12_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
67877
|
+
i0.ɵɵelementStart(0, "div", 20)(1, "div", 21);
|
|
67878
|
+
i0.ɵɵtext(2, "Requested by");
|
|
67895
67879
|
i0.ɵɵelementEnd();
|
|
67896
|
-
i0.ɵɵelementStart(
|
|
67897
|
-
i0.ɵɵ
|
|
67898
|
-
i0.ɵɵnamespaceSVG();
|
|
67899
|
-
i0.ɵɵelementStart(2, "svg", 23);
|
|
67900
|
-
i0.ɵɵelement(3, "path", 24)(4, "path", 25);
|
|
67880
|
+
i0.ɵɵelementStart(3, "div", 22);
|
|
67881
|
+
i0.ɵɵtext(4);
|
|
67901
67882
|
i0.ɵɵelementEnd()();
|
|
67902
67883
|
} if (rf & 2) {
|
|
67903
|
-
|
|
67904
|
-
i0.ɵɵ
|
|
67884
|
+
let tmp_4_0;
|
|
67885
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
67905
67886
|
i0.ɵɵadvance();
|
|
67906
|
-
i0.ɵɵ
|
|
67907
|
-
|
|
67908
|
-
|
|
67909
|
-
i0.ɵɵelementStart(0, "div", 14);
|
|
67910
|
-
i0.ɵɵelement(1, "symphiq-indeterminate-spinner", 29);
|
|
67911
|
-
i0.ɵɵelementEnd();
|
|
67912
|
-
} if (rf & 2) {
|
|
67913
|
-
const ctx_r1 = i0.ɵɵnextContext();
|
|
67887
|
+
i0.ɵɵclassMap(ctx_r1.metaLabelClass());
|
|
67888
|
+
i0.ɵɵadvance(2);
|
|
67889
|
+
i0.ɵɵclassMap(ctx_r1.headerTitleClass());
|
|
67914
67890
|
i0.ɵɵadvance();
|
|
67915
|
-
i0.ɵɵ
|
|
67891
|
+
i0.ɵɵtextInterpolate2("", (tmp_4_0 = ctx_r1.requestedByUser()) == null ? null : tmp_4_0.firstName, " ", (tmp_4_0 = ctx_r1.requestedByUser()) == null ? null : tmp_4_0.lastName);
|
|
67916
67892
|
} }
|
|
67917
|
-
function
|
|
67918
|
-
|
|
67919
|
-
i0.ɵɵ
|
|
67920
|
-
i0.ɵɵ
|
|
67893
|
+
function DashboardHeaderComponent_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
67894
|
+
i0.ɵɵelementStart(0, "div", 8);
|
|
67895
|
+
i0.ɵɵconditionalCreate(1, DashboardHeaderComponent_Conditional_12_Conditional_1_Template, 5, 5, "div", 20);
|
|
67896
|
+
i0.ɵɵconditionalCreate(2, DashboardHeaderComponent_Conditional_12_Conditional_2_Template, 5, 6, "div", 20);
|
|
67921
67897
|
i0.ɵɵelementEnd();
|
|
67922
67898
|
} if (rf & 2) {
|
|
67923
|
-
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
67924
|
-
i0.ɵɵproperty("viewMode", ctx_r1.viewMode())("currentStepId", ctx_r1.JourneyStepIdEnum.BUSINESS_ANALYSIS)("showNextStepAction", false)("forDemo", ctx_r1.forDemo())("maxAccessibleStepId", ctx_r1.maxAccessibleStepId());
|
|
67925
|
-
} }
|
|
67926
|
-
function SymphiqBusinessAnalysisDashboardComponent_Conditional_26_Template(rf, ctx) { if (rf & 1) {
|
|
67927
|
-
i0.ɵɵconditionalCreate(0, SymphiqBusinessAnalysisDashboardComponent_Conditional_26_Conditional_0_Template, 1, 5, "symphiq-journey-progress-indicator", 30);
|
|
67928
|
-
i0.ɵɵelement(1, "symphiq-content-generation-progress-with-confetti", 31);
|
|
67929
|
-
} if (rf & 2) {
|
|
67930
|
-
let tmp_4_0;
|
|
67931
|
-
let tmp_6_0;
|
|
67932
67899
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
67933
|
-
i0.ɵɵconditional(!ctx_r1.isOnboarded() ? 0 : -1);
|
|
67934
67900
|
i0.ɵɵadvance();
|
|
67935
|
-
i0.ɵɵ
|
|
67901
|
+
i0.ɵɵconditional(ctx_r1.formattedGeneratedDate() ? 1 : -1);
|
|
67902
|
+
i0.ɵɵadvance();
|
|
67903
|
+
i0.ɵɵconditional(ctx_r1.requestedByUser() ? 2 : -1);
|
|
67936
67904
|
} }
|
|
67937
|
-
function
|
|
67938
|
-
|
|
67939
|
-
i0.ɵɵ
|
|
67940
|
-
i0.ɵɵlistener("stepClick", function SymphiqBusinessAnalysisDashboardComponent_Conditional_27_Conditional_0_Conditional_0_Template_symphiq_journey_progress_indicator_stepClick_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.stepClick.emit($event)); })("nextStepClick", function SymphiqBusinessAnalysisDashboardComponent_Conditional_27_Conditional_0_Conditional_0_Template_symphiq_journey_progress_indicator_nextStepClick_0_listener() { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.nextStepClick.emit()); });
|
|
67905
|
+
function DashboardHeaderComponent_Conditional_20_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
67906
|
+
i0.ɵɵelementStart(0, "span", 23);
|
|
67907
|
+
i0.ɵɵtext(1, "\u203A");
|
|
67941
67908
|
i0.ɵɵelementEnd();
|
|
67942
|
-
|
|
67943
|
-
|
|
67944
|
-
i0.ɵɵproperty("viewMode", ctx_r1.viewMode())("currentStepId", ctx_r1.JourneyStepIdEnum.BUSINESS_ANALYSIS)("showNextStepAction", ctx_r1.showNextStepAction())("forDemo", ctx_r1.forDemo())("maxAccessibleStepId", ctx_r1.maxAccessibleStepId());
|
|
67945
|
-
} }
|
|
67946
|
-
function SymphiqBusinessAnalysisDashboardComponent_Conditional_27_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
67947
|
-
const _r5 = i0.ɵɵgetCurrentView();
|
|
67948
|
-
i0.ɵɵconditionalCreate(0, SymphiqBusinessAnalysisDashboardComponent_Conditional_27_Conditional_0_Conditional_0_Template, 1, 5, "symphiq-journey-progress-indicator", 30);
|
|
67949
|
-
i0.ɵɵelementStart(1, "div", 6)(2, "div", 33);
|
|
67950
|
-
i0.ɵɵelement(3, "symphiq-welcome-banner", 34);
|
|
67909
|
+
i0.ɵɵelementStart(2, "span", 23);
|
|
67910
|
+
i0.ɵɵtext(3);
|
|
67951
67911
|
i0.ɵɵelementEnd();
|
|
67952
|
-
i0.ɵɵelementStart(4, "div", 33)(5, "symphiq-recommendations-tiled-grid", 35);
|
|
67953
|
-
i0.ɵɵlistener("viewMoreClick", function SymphiqBusinessAnalysisDashboardComponent_Conditional_27_Conditional_0_Template_symphiq_recommendations_tiled_grid_viewMoreClick_5_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.openRecommendationDetailsModal($event)); });
|
|
67954
|
-
i0.ɵɵelementEnd()();
|
|
67955
|
-
i0.ɵɵelementStart(6, "div");
|
|
67956
|
-
i0.ɵɵelement(7, "symphiq-collapsible-section-group", 36);
|
|
67957
|
-
i0.ɵɵelementEnd()();
|
|
67958
67912
|
} if (rf & 2) {
|
|
67959
|
-
let tmp_4_0;
|
|
67960
67913
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
67961
|
-
i0.ɵɵ
|
|
67962
|
-
i0.ɵɵ
|
|
67963
|
-
i0.ɵɵproperty("viewMode", ctx_r1.viewMode())("businessName", ((tmp_4_0 = ctx_r1.currentProfile()) == null ? null : tmp_4_0.profileStructured == null ? null : tmp_4_0.profileStructured.businessName) || "your business")("isOnboarded", ctx_r1.isOnboarded());
|
|
67964
|
-
i0.ɵɵadvance(2);
|
|
67965
|
-
i0.ɵɵproperty("recommendations", ctx_r1.recommendationItems())("viewMode", ctx_r1.viewMode());
|
|
67914
|
+
i0.ɵɵclassProp("opacity-0", ctx_r1.subsectionFading())("opacity-100", !ctx_r1.subsectionFading());
|
|
67915
|
+
i0.ɵɵproperty("ngClass", ctx_r1.isLightMode() ? "text-slate-400" : "text-slate-500");
|
|
67966
67916
|
i0.ɵɵadvance(2);
|
|
67967
|
-
i0.ɵɵ
|
|
67917
|
+
i0.ɵɵclassProp("opacity-0", ctx_r1.subsectionFading())("opacity-100", !ctx_r1.subsectionFading());
|
|
67918
|
+
i0.ɵɵproperty("ngClass", ctx_r1.isLightMode() ? "text-slate-500" : "text-slate-500");
|
|
67919
|
+
i0.ɵɵadvance();
|
|
67920
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.currentSubsection(), " ");
|
|
67968
67921
|
} }
|
|
67969
|
-
function
|
|
67970
|
-
i0.ɵɵelementStart(0, "div",
|
|
67971
|
-
i0.ɵɵ
|
|
67922
|
+
function DashboardHeaderComponent_Conditional_20_Template(rf, ctx) { if (rf & 1) {
|
|
67923
|
+
i0.ɵɵelementStart(0, "div", 14)(1, "span", 23);
|
|
67924
|
+
i0.ɵɵtext(2);
|
|
67925
|
+
i0.ɵɵelementEnd();
|
|
67926
|
+
i0.ɵɵconditionalCreate(3, DashboardHeaderComponent_Conditional_20_Conditional_3_Template, 4, 11);
|
|
67972
67927
|
i0.ɵɵelementEnd();
|
|
67973
67928
|
} if (rf & 2) {
|
|
67974
|
-
const
|
|
67975
|
-
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
67929
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
67976
67930
|
i0.ɵɵadvance();
|
|
67977
|
-
i0.ɵɵ
|
|
67978
|
-
|
|
67979
|
-
function SymphiqBusinessAnalysisDashboardComponent_Conditional_27_Conditional_1_For_1_Template(rf, ctx) { if (rf & 1) {
|
|
67980
|
-
i0.ɵɵelement(0, "symphiq-profile-section", 37);
|
|
67981
|
-
i0.ɵɵconditionalCreate(1, SymphiqBusinessAnalysisDashboardComponent_Conditional_27_Conditional_1_For_1_Conditional_1_Template, 2, 3, "div", 38);
|
|
67982
|
-
} if (rf & 2) {
|
|
67983
|
-
const section_r8 = ctx.$implicit;
|
|
67984
|
-
const ɵ$index_113_r7 = ctx.$index;
|
|
67985
|
-
const ɵ$count_113_r9 = ctx.$count;
|
|
67986
|
-
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
67987
|
-
i0.ɵɵproperty("section", section_r8)("viewMode", ctx_r1.viewMode())("forceExpanded", !ctx_r1.isCompactView());
|
|
67931
|
+
i0.ɵɵclassProp("opacity-0", ctx_r1.sectionFading())("opacity-100", !ctx_r1.sectionFading());
|
|
67932
|
+
i0.ɵɵproperty("ngClass", ctx_r1.isLightMode() ? "text-slate-600 font-medium" : "text-slate-400 font-medium");
|
|
67988
67933
|
i0.ɵɵadvance();
|
|
67989
|
-
i0.ɵɵ
|
|
67990
|
-
|
|
67991
|
-
|
|
67992
|
-
i0.ɵɵrepeaterCreate(0, SymphiqBusinessAnalysisDashboardComponent_Conditional_27_Conditional_1_For_1_Template, 2, 4, null, null, i0.ɵɵcomponentInstance().trackBySectionId, true);
|
|
67993
|
-
} if (rf & 2) {
|
|
67994
|
-
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
67995
|
-
i0.ɵɵrepeater(ctx_r1.sections());
|
|
67996
|
-
} }
|
|
67997
|
-
function SymphiqBusinessAnalysisDashboardComponent_Conditional_27_Template(rf, ctx) { if (rf & 1) {
|
|
67998
|
-
i0.ɵɵconditionalCreate(0, SymphiqBusinessAnalysisDashboardComponent_Conditional_27_Conditional_0_Template, 8, 8)(1, SymphiqBusinessAnalysisDashboardComponent_Conditional_27_Conditional_1_Template, 2, 0);
|
|
67999
|
-
} if (rf & 2) {
|
|
68000
|
-
const ctx_r1 = i0.ɵɵnextContext();
|
|
68001
|
-
i0.ɵɵconditional(ctx_r1.isSimplifiedView() ? 0 : 1);
|
|
68002
|
-
} }
|
|
68003
|
-
function SymphiqBusinessAnalysisDashboardComponent_Conditional_28_Template(rf, ctx) { if (rf & 1) {
|
|
68004
|
-
i0.ɵɵelement(0, "symphiq-section-navigation", 15);
|
|
68005
|
-
} if (rf & 2) {
|
|
68006
|
-
const ctx_r1 = i0.ɵɵnextContext();
|
|
68007
|
-
i0.ɵɵproperty("sections", ctx_r1.sections())("viewMode", ctx_r1.viewMode())("embedded", ctx_r1.embedded())("scrollElement", ctx_r1.scrollElement() ?? undefined);
|
|
67934
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.currentSection(), " ");
|
|
67935
|
+
i0.ɵɵadvance();
|
|
67936
|
+
i0.ɵɵconditional(ctx_r1.currentSubsection() ? 3 : -1);
|
|
68008
67937
|
} }
|
|
68009
|
-
function
|
|
68010
|
-
i0.ɵɵ
|
|
67938
|
+
function DashboardHeaderComponent_Conditional_21_Template(rf, ctx) { if (rf & 1) {
|
|
67939
|
+
const _r3 = i0.ɵɵgetCurrentView();
|
|
67940
|
+
i0.ɵɵelementStart(0, "symphiq-search-button", 24);
|
|
67941
|
+
i0.ɵɵlistener("searchClick", function DashboardHeaderComponent_Conditional_21_Template_symphiq_search_button_searchClick_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onSearchClick()); });
|
|
67942
|
+
i0.ɵɵelementEnd();
|
|
67943
|
+
i0.ɵɵelementStart(1, "button", 25);
|
|
67944
|
+
i0.ɵɵlistener("click", function DashboardHeaderComponent_Conditional_21_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onViewModeClick()); });
|
|
67945
|
+
i0.ɵɵnamespaceSVG();
|
|
67946
|
+
i0.ɵɵelementStart(2, "svg", 17);
|
|
67947
|
+
i0.ɵɵelement(3, "path", 18)(4, "path", 19);
|
|
67948
|
+
i0.ɵɵelementEnd()();
|
|
68011
67949
|
} if (rf & 2) {
|
|
68012
67950
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
68013
|
-
i0.ɵɵproperty("
|
|
67951
|
+
i0.ɵɵproperty("isLightMode", ctx_r1.isLightMode())("minimized", true);
|
|
67952
|
+
i0.ɵɵadvance();
|
|
67953
|
+
i0.ɵɵproperty("ngClass", ctx_r1.getViewModeButtonClasses());
|
|
68014
67954
|
} }
|
|
68015
|
-
class
|
|
68016
|
-
sectionHasContent(section) {
|
|
68017
|
-
if (!section?.subsections || section.subsections.length === 0) {
|
|
68018
|
-
return false;
|
|
68019
|
-
}
|
|
68020
|
-
return section.subsections.some((subsection) => this.subsectionHasContent(subsection));
|
|
68021
|
-
}
|
|
68022
|
-
subsectionHasContent(subsection) {
|
|
68023
|
-
const hasItems = !!(subsection?.items && subsection.items.length > 0);
|
|
68024
|
-
const hasContent = !!(subsection?.content && subsection.content.trim().length > 0);
|
|
68025
|
-
const hasVisual = !!(subsection?.visual && subsection.visual.enabled);
|
|
68026
|
-
return hasItems || hasContent || hasVisual;
|
|
68027
|
-
}
|
|
67955
|
+
class DashboardHeaderComponent {
|
|
68028
67956
|
constructor() {
|
|
68029
|
-
this.embedded = input(false, ...(ngDevMode ? [{ debugName: "embedded" }] : []));
|
|
68030
|
-
this.profile = input(...(ngDevMode ? [undefined, { debugName: "profile" }] : []));
|
|
68031
|
-
this.parentHeaderOffset = input(0, ...(ngDevMode ? [{ debugName: "parentHeaderOffset" }] : []));
|
|
68032
67957
|
this.requestedByUser = input(...(ngDevMode ? [undefined, { debugName: "requestedByUser" }] : []));
|
|
67958
|
+
this.createdDate = input(...(ngDevMode ? [undefined, { debugName: "createdDate" }] : []));
|
|
67959
|
+
this.title = input('', ...(ngDevMode ? [{ debugName: "title" }] : []));
|
|
67960
|
+
this.subtitle = input('', ...(ngDevMode ? [{ debugName: "subtitle" }] : []));
|
|
68033
67961
|
this.viewMode = input(ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "viewMode" }] : []));
|
|
68034
|
-
this.
|
|
68035
|
-
this.
|
|
68036
|
-
this.
|
|
68037
|
-
this.
|
|
68038
|
-
this.
|
|
68039
|
-
this.
|
|
68040
|
-
this.
|
|
68041
|
-
this.
|
|
68042
|
-
this.
|
|
68043
|
-
this.nextStepClick = output();
|
|
68044
|
-
this.markAsReviewedClick = output();
|
|
68045
|
-
this.JourneyStepIdEnum = JourneyStepIdEnum;
|
|
68046
|
-
this.AiDynamicContentStatusEnum = AiDynamicContentStatusEnum;
|
|
68047
|
-
this.showNextStepAction = computed(() => {
|
|
68048
|
-
const profile = this.profile();
|
|
68049
|
-
if (!profile)
|
|
68050
|
-
return false;
|
|
68051
|
-
const contentGenerated = profile.selfContentStatus === AiDynamicContentStatusEnum.GENERATED;
|
|
68052
|
-
const isReviewed = profile.reviewStatus === ProfileAnalysisReviewStatusEnum.REVIEWED;
|
|
68053
|
-
return contentGenerated && isReviewed;
|
|
68054
|
-
}, ...(ngDevMode ? [{ debugName: "showNextStepAction" }] : []));
|
|
68055
|
-
this.isContentGenerating = computed(() => {
|
|
68056
|
-
const status = this.profile()?.selfContentStatus;
|
|
68057
|
-
return status === AiDynamicContentStatusEnum.REQUESTED || status === AiDynamicContentStatusEnum.GENERATING;
|
|
68058
|
-
}, ...(ngDevMode ? [{ debugName: "isContentGenerating" }] : []));
|
|
68059
|
-
this.shouldShowReviewFooter = computed(() => {
|
|
68060
|
-
const profile = this.profile();
|
|
68061
|
-
if (!profile)
|
|
68062
|
-
return false;
|
|
68063
|
-
return profile.selfContentStatus === AiDynamicContentStatusEnum.GENERATED &&
|
|
68064
|
-
profile.reviewStatus === ProfileAnalysisReviewStatusEnum.NOT_REVIEWED;
|
|
68065
|
-
}, ...(ngDevMode ? [{ debugName: "shouldShowReviewFooter" }] : []));
|
|
67962
|
+
this.viewModeLabel = input('View Mode', ...(ngDevMode ? [{ debugName: "viewModeLabel" }] : []));
|
|
67963
|
+
this.currentSection = input(...(ngDevMode ? [undefined, { debugName: "currentSection" }] : []));
|
|
67964
|
+
this.currentSubsection = input(...(ngDevMode ? [undefined, { debugName: "currentSubsection" }] : []));
|
|
67965
|
+
this.sectionFading = input(false, ...(ngDevMode ? [{ debugName: "sectionFading" }] : []));
|
|
67966
|
+
this.subsectionFading = input(false, ...(ngDevMode ? [{ debugName: "subsectionFading" }] : []));
|
|
67967
|
+
this.isLoading = input(...(ngDevMode ? [undefined, { debugName: "isLoading" }] : []));
|
|
67968
|
+
this.showControls = input(true, ...(ngDevMode ? [{ debugName: "showControls" }] : []));
|
|
67969
|
+
this.searchClick = output();
|
|
67970
|
+
this.viewModeClick = output();
|
|
68066
67971
|
this.headerScrollService = inject(HeaderScrollService);
|
|
68067
|
-
this.lookupService = inject(ProfileItemLookupService);
|
|
68068
|
-
this.navigationService = inject(NavigationStateService);
|
|
68069
|
-
this.profileContextService = inject(ProfileContextService);
|
|
68070
|
-
this.searchService = inject(BusinessProfileSearchService);
|
|
68071
|
-
this.modalService = inject(ModalService);
|
|
68072
|
-
this.confettiService = inject(ConfettiService);
|
|
68073
|
-
this.currentProfile = signal(undefined, ...(ngDevMode ? [{ debugName: "currentProfile" }] : []));
|
|
68074
|
-
this.previousContentStatus = signal(undefined, ...(ngDevMode ? [{ debugName: "previousContentStatus" }] : []));
|
|
68075
|
-
this.COLLAPSE_THRESHOLD = 20;
|
|
68076
|
-
this.EXPAND_THRESHOLD = 10;
|
|
68077
|
-
this.embeddedScrollEffect = effect(() => {
|
|
68078
|
-
const scrollEvent = this.scrollEvent();
|
|
68079
|
-
const isEmbedded = this.embedded();
|
|
68080
|
-
if (isEmbedded && !scrollEvent) {
|
|
68081
|
-
return;
|
|
68082
|
-
}
|
|
68083
|
-
if (!scrollEvent || !isEmbedded) {
|
|
68084
|
-
return;
|
|
68085
|
-
}
|
|
68086
|
-
const detail = scrollEvent.detail;
|
|
68087
|
-
if (!detail) {
|
|
68088
|
-
return;
|
|
68089
|
-
}
|
|
68090
|
-
const scrollTop = detail.scrollTop || 0;
|
|
68091
|
-
const currentState = this.headerScrollService.isScrolled();
|
|
68092
|
-
if (!currentState && scrollTop > this.COLLAPSE_THRESHOLD) {
|
|
68093
|
-
this.headerScrollService.isScrolled.set(true);
|
|
68094
|
-
}
|
|
68095
|
-
else if (currentState && scrollTop < this.EXPAND_THRESHOLD) {
|
|
68096
|
-
this.headerScrollService.isScrolled.set(false);
|
|
68097
|
-
}
|
|
68098
|
-
const scrollElement = this.scrollElement();
|
|
68099
|
-
if (scrollElement) {
|
|
68100
|
-
const scrollHeight = scrollElement.scrollHeight || 0;
|
|
68101
|
-
const clientHeight = scrollElement.clientHeight || 0;
|
|
68102
|
-
const maxScroll = scrollHeight - clientHeight;
|
|
68103
|
-
if (maxScroll > 0) {
|
|
68104
|
-
const progress = (scrollTop / maxScroll) * 100;
|
|
68105
|
-
this.headerScrollService.scrollProgress.set(Math.min(100, Math.max(0, progress)));
|
|
68106
|
-
}
|
|
68107
|
-
}
|
|
68108
|
-
}, ...(ngDevMode ? [{ debugName: "embeddedScrollEffect" }] : []));
|
|
68109
|
-
this.scrollProgress = computed(() => this.headerScrollService.scrollProgress(), ...(ngDevMode ? [{ debugName: "scrollProgress" }] : []));
|
|
68110
67972
|
this.isLightMode = computed(() => this.viewMode() === ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "isLightMode" }] : []));
|
|
68111
|
-
this.
|
|
68112
|
-
this.
|
|
68113
|
-
|
|
68114
|
-
|
|
68115
|
-
|
|
68116
|
-
|
|
68117
|
-
this.subsectionTitleFading = signal(false, ...(ngDevMode ? [{ debugName: "subsectionTitleFading" }] : []));
|
|
68118
|
-
this.selectedSearchIndex = signal(0, ...(ngDevMode ? [{ debugName: "selectedSearchIndex" }] : []));
|
|
68119
|
-
this.isViewModeSwitcherOpen = signal(false, ...(ngDevMode ? [{ debugName: "isViewModeSwitcherOpen" }] : []));
|
|
68120
|
-
this.isViewModeSwitching = signal(false, ...(ngDevMode ? [{ debugName: "isViewModeSwitching" }] : []));
|
|
68121
|
-
this.sections = computed(() => {
|
|
68122
|
-
const profile = this.currentProfile();
|
|
68123
|
-
const allSections = profile?.profileStructured?.sections || [];
|
|
68124
|
-
return allSections
|
|
68125
|
-
.filter(section => this.sectionHasContent(section))
|
|
68126
|
-
.sort((a, b) => (a.order || 0) - (b.order || 0));
|
|
68127
|
-
}, ...(ngDevMode ? [{ debugName: "sections" }] : []));
|
|
68128
|
-
this.recommendationItems = computed(() => {
|
|
68129
|
-
const profile = this.currentProfile();
|
|
68130
|
-
return profile?.profileStructured?.recommendations || [];
|
|
68131
|
-
}, ...(ngDevMode ? [{ debugName: "recommendationItems" }] : []));
|
|
68132
|
-
this.nonRecommendationSections = computed(() => {
|
|
68133
|
-
return this.sections().filter(section => section.id !== 'strategic-insights');
|
|
68134
|
-
}, ...(ngDevMode ? [{ debugName: "nonRecommendationSections" }] : []));
|
|
68135
|
-
this.displayModeLabel = computed(() => {
|
|
68136
|
-
const mode = this.displayMode();
|
|
68137
|
-
switch (mode) {
|
|
68138
|
-
case DisplayModeEnum.SIMPLIFIED:
|
|
68139
|
-
return 'Simplified';
|
|
68140
|
-
case DisplayModeEnum.COMPACT:
|
|
68141
|
-
return 'Compact';
|
|
68142
|
-
case DisplayModeEnum.EXPANDED:
|
|
68143
|
-
return 'Expanded';
|
|
68144
|
-
default:
|
|
68145
|
-
return 'View';
|
|
68146
|
-
}
|
|
68147
|
-
}, ...(ngDevMode ? [{ debugName: "displayModeLabel" }] : []));
|
|
68148
|
-
this.lastSectionTitle = '';
|
|
68149
|
-
this.lastSubsectionTitle = '';
|
|
68150
|
-
this.lastScrollY = 0;
|
|
68151
|
-
this.scrollDirection = 'down';
|
|
68152
|
-
effect(() => {
|
|
68153
|
-
const profile = this.profile();
|
|
68154
|
-
this.currentProfile.set(profile);
|
|
68155
|
-
this.lookupService.setProfile(profile);
|
|
68156
|
-
if (profile) {
|
|
68157
|
-
this.searchService.setProfile(profile);
|
|
68158
|
-
}
|
|
68159
|
-
if (profile?.profileStructured?.sections) {
|
|
68160
|
-
const recommendations = profile.profileStructured?.recommendations;
|
|
68161
|
-
this.profileContextService.indexProfile(profile.profileStructured.sections, recommendations);
|
|
68162
|
-
}
|
|
68163
|
-
});
|
|
68164
|
-
effect(() => {
|
|
68165
|
-
const currentStatus = this.profile()?.selfContentStatus;
|
|
68166
|
-
const prevStatus = this.previousContentStatus();
|
|
68167
|
-
if (prevStatus === AiDynamicContentStatusEnum.GENERATING &&
|
|
68168
|
-
currentStatus === AiDynamicContentStatusEnum.GENERATED) {
|
|
68169
|
-
this.confettiService.trigger({
|
|
68170
|
-
intensity: 'celebration',
|
|
68171
|
-
delay: 200,
|
|
68172
|
-
viewMode: this.viewMode(),
|
|
68173
|
-
});
|
|
67973
|
+
this.dateFormatCache = new StringMemoizeCache();
|
|
67974
|
+
this.formattedGeneratedDate = computed(() => {
|
|
67975
|
+
let formatted = '';
|
|
67976
|
+
const createdDate = this.createdDate();
|
|
67977
|
+
if (createdDate) {
|
|
67978
|
+
formatted = this.formatDate(createdDate.toISOString());
|
|
68174
67979
|
}
|
|
68175
|
-
|
|
68176
|
-
});
|
|
67980
|
+
return formatted;
|
|
67981
|
+
}, ...(ngDevMode ? [{ debugName: "formattedGeneratedDate" }] : []));
|
|
67982
|
+
this.headerTitleClass = computed(() => this.isLightMode() ? 'text-slate-900' : 'text-white', ...(ngDevMode ? [{ debugName: "headerTitleClass" }] : []));
|
|
67983
|
+
this.metaLabelClass = computed(() => this.isLightMode() ? 'text-slate-600' : 'text-slate-500', ...(ngDevMode ? [{ debugName: "metaLabelClass" }] : []));
|
|
68177
67984
|
}
|
|
68178
|
-
|
|
68179
|
-
this.
|
|
68180
|
-
const navState = this.navigationService.getNavigationState()();
|
|
68181
|
-
if (navState.sourceElementId && navState.targetElementId && !navState.isBackButtonVisible) {
|
|
68182
|
-
const currentScrollPosition = window.scrollY;
|
|
68183
|
-
const scrollDifference = Math.abs(currentScrollPosition - navState.targetScrollPosition);
|
|
68184
|
-
if (scrollDifference > 100) {
|
|
68185
|
-
this.navigationService.showBackButton();
|
|
68186
|
-
}
|
|
68187
|
-
}
|
|
67985
|
+
onSearchClick() {
|
|
67986
|
+
this.searchClick.emit();
|
|
68188
67987
|
}
|
|
68189
|
-
|
|
68190
|
-
|
|
68191
|
-
if (current === DisplayModeEnum.COMPACT) {
|
|
68192
|
-
this.displayMode.set(DisplayModeEnum.EXPANDED);
|
|
68193
|
-
}
|
|
68194
|
-
else if (current === DisplayModeEnum.EXPANDED) {
|
|
68195
|
-
this.displayMode.set(DisplayModeEnum.COMPACT);
|
|
68196
|
-
}
|
|
67988
|
+
onViewModeClick() {
|
|
67989
|
+
this.viewModeClick.emit();
|
|
68197
67990
|
}
|
|
68198
|
-
|
|
68199
|
-
|
|
67991
|
+
formatDate(dateString) {
|
|
67992
|
+
// Cache date formatting operations
|
|
67993
|
+
return this.dateFormatCache.get(dateString, (date) => new Date(date).toLocaleDateString('en-US', {
|
|
67994
|
+
year: 'numeric',
|
|
67995
|
+
month: 'long',
|
|
67996
|
+
day: 'numeric',
|
|
67997
|
+
}));
|
|
68200
67998
|
}
|
|
68201
|
-
|
|
68202
|
-
this.
|
|
67999
|
+
getHeaderClasses() {
|
|
68000
|
+
return this.isLightMode()
|
|
68001
|
+
? 'bg-white/95 backdrop-blur-md shadow-sm border-b border-slate-200'
|
|
68002
|
+
: 'bg-slate-900/95 backdrop-blur-md shadow-sm border-b border-slate-800';
|
|
68203
68003
|
}
|
|
68204
|
-
|
|
68205
|
-
this.
|
|
68206
|
-
|
|
68207
|
-
|
|
68208
|
-
this.displayMode.set(mode);
|
|
68209
|
-
this.isViewModeSwitching.set(false);
|
|
68210
|
-
this.closeViewModeSwitcher();
|
|
68211
|
-
}, 500);
|
|
68004
|
+
getMainTitleClasses() {
|
|
68005
|
+
return this.isLightMode()
|
|
68006
|
+
? 'text-3xl font-bold bg-gradient-to-r from-blue-600 to-purple-600 bg-clip-text text-transparent'
|
|
68007
|
+
: 'text-3xl font-bold bg-gradient-to-r from-blue-400 to-purple-400 bg-clip-text text-transparent';
|
|
68212
68008
|
}
|
|
68213
|
-
|
|
68214
|
-
this.
|
|
68009
|
+
getSubtitleClasses() {
|
|
68010
|
+
return this.isLightMode()
|
|
68011
|
+
? 'text-slate-600 mt-1 text-sm'
|
|
68012
|
+
: 'text-slate-400 mt-1 text-sm';
|
|
68215
68013
|
}
|
|
68216
|
-
|
|
68217
|
-
|
|
68218
|
-
|
|
68219
|
-
|
|
68220
|
-
label: recommendation.title,
|
|
68221
|
-
value: recommendation.description
|
|
68222
|
-
};
|
|
68223
|
-
this.modalService.openItemDetailModal(itemAdapter, this.viewMode(), 'recommendation', 'Strategic Insights', recommendation.title, undefined, this.isSimplifiedView() || this.isCompactView());
|
|
68014
|
+
getCondensedTitleClasses() {
|
|
68015
|
+
return this.isLightMode()
|
|
68016
|
+
? 'text-xl font-bold bg-gradient-to-r from-blue-600 to-purple-600 bg-clip-text text-transparent truncate'
|
|
68017
|
+
: 'text-xl font-bold bg-gradient-to-r from-blue-400 to-purple-400 bg-clip-text text-transparent truncate';
|
|
68224
68018
|
}
|
|
68225
68019
|
getViewModeButtonClasses() {
|
|
68226
|
-
|
|
68227
|
-
|
|
68228
|
-
|
|
68229
|
-
}
|
|
68230
|
-
return 'bg-white/80 border border-slate-200 text-slate-700 hover:bg-white hover:border-slate-300 shadow-sm';
|
|
68020
|
+
return this.isLightMode()
|
|
68021
|
+
? 'bg-slate-100 hover:bg-slate-200 text-slate-700 border border-slate-200'
|
|
68022
|
+
: 'bg-slate-800 hover:bg-slate-700 text-slate-300 border border-slate-700';
|
|
68231
68023
|
}
|
|
68232
|
-
|
|
68233
|
-
|
|
68234
|
-
|
|
68235
|
-
|
|
68236
|
-
|
|
68237
|
-
|
|
68238
|
-
|
|
68239
|
-
|
|
68240
|
-
|
|
68241
|
-
|
|
68242
|
-
|
|
68243
|
-
|
|
68244
|
-
|
|
68245
|
-
|
|
68246
|
-
|
|
68247
|
-
|
|
68248
|
-
|
|
68249
|
-
|
|
68250
|
-
|
|
68251
|
-
|
|
68252
|
-
|
|
68253
|
-
|
|
68254
|
-
|
|
68255
|
-
|
|
68024
|
+
static { this.ɵfac = function DashboardHeaderComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || DashboardHeaderComponent)(); }; }
|
|
68025
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DashboardHeaderComponent, selectors: [["symphiq-dashboard-header"]], inputs: { requestedByUser: [1, "requestedByUser"], createdDate: [1, "createdDate"], title: [1, "title"], subtitle: [1, "subtitle"], viewMode: [1, "viewMode"], viewModeLabel: [1, "viewModeLabel"], currentSection: [1, "currentSection"], currentSubsection: [1, "currentSubsection"], sectionFading: [1, "sectionFading"], subsectionFading: [1, "subsectionFading"], isLoading: [1, "isLoading"], showControls: [1, "showControls"] }, outputs: { searchClick: "searchClick", viewModeClick: "viewModeClick" }, decls: 22, vars: 26, consts: [[1, "sticky", "top-0", "z-50", "overflow-hidden", 2, "transition", "height 300ms ease-in-out", 3, "ngClass"], [1, "transition-opacity", "duration-300", "ease-in-out", "h-full"], [1, "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-4", "h-full", "flex", "items-center"], [1, "flex", "items-center", "justify-between", "w-full"], [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"], [1, "flex", "flex-col", "gap-4", "min-w-[180px]"], [1, "absolute", "inset-x-0", "top-0", "transition-opacity", "duration-300", "ease-in-out"], [1, "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-3.5"], [1, "flex", "items-center", "justify-between"], [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"], ["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, "text-left", "sm:text-right"], [1, "text-xs", "sm:text-sm"], [1, "text-sm", "sm:text-base", "font-medium"], [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"]], template: function DashboardHeaderComponent_Template(rf, ctx) { if (rf & 1) {
|
|
68026
|
+
i0.ɵɵelementStart(0, "header", 0)(1, "div", 1)(2, "div", 2)(3, "div", 3)(4, "div")(5, "div", 4)(6, "h1", 5);
|
|
68027
|
+
i0.ɵɵtext(7);
|
|
68028
|
+
i0.ɵɵelementEnd();
|
|
68029
|
+
i0.ɵɵconditionalCreate(8, DashboardHeaderComponent_Conditional_8_Template, 1, 0, "div", 6);
|
|
68030
|
+
i0.ɵɵelementEnd();
|
|
68031
|
+
i0.ɵɵelementStart(9, "p", 5);
|
|
68032
|
+
i0.ɵɵtext(10);
|
|
68033
|
+
i0.ɵɵelementEnd()();
|
|
68034
|
+
i0.ɵɵconditionalCreate(11, DashboardHeaderComponent_Conditional_11_Template, 8, 3, "div", 7);
|
|
68035
|
+
i0.ɵɵconditionalCreate(12, DashboardHeaderComponent_Conditional_12_Template, 3, 2, "div", 8);
|
|
68036
|
+
i0.ɵɵelementEnd()()();
|
|
68037
|
+
i0.ɵɵelementStart(13, "div", 9)(14, "div", 10)(15, "div", 11)(16, "div", 12)(17, "h1", 5);
|
|
68038
|
+
i0.ɵɵtext(18);
|
|
68039
|
+
i0.ɵɵelementEnd()();
|
|
68040
|
+
i0.ɵɵelementStart(19, "div", 13);
|
|
68041
|
+
i0.ɵɵconditionalCreate(20, DashboardHeaderComponent_Conditional_20_Template, 4, 7, "div", 14);
|
|
68042
|
+
i0.ɵɵconditionalCreate(21, DashboardHeaderComponent_Conditional_21_Template, 5, 3);
|
|
68043
|
+
i0.ɵɵelementEnd()()()()();
|
|
68044
|
+
} if (rf & 2) {
|
|
68045
|
+
i0.ɵɵstyleProp("height", ctx.headerScrollService.isScrolled() ? "52px" : "100px");
|
|
68046
|
+
i0.ɵɵproperty("ngClass", ctx.getHeaderClasses());
|
|
68047
|
+
i0.ɵɵadvance();
|
|
68048
|
+
i0.ɵɵclassProp("opacity-0", ctx.headerScrollService.isScrolled())("pointer-events-none", ctx.headerScrollService.isScrolled())("opacity-100", !ctx.headerScrollService.isScrolled());
|
|
68049
|
+
i0.ɵɵadvance(5);
|
|
68050
|
+
i0.ɵɵproperty("ngClass", ctx.getMainTitleClasses());
|
|
68051
|
+
i0.ɵɵadvance();
|
|
68052
|
+
i0.ɵɵtextInterpolate1(" ", ctx.title(), " ");
|
|
68053
|
+
i0.ɵɵadvance();
|
|
68054
|
+
i0.ɵɵconditional(ctx.isLoading() ? 8 : -1);
|
|
68055
|
+
i0.ɵɵadvance();
|
|
68056
|
+
i0.ɵɵproperty("ngClass", ctx.getSubtitleClasses());
|
|
68057
|
+
i0.ɵɵadvance();
|
|
68058
|
+
i0.ɵɵtextInterpolate1(" ", ctx.subtitle(), " ");
|
|
68059
|
+
i0.ɵɵadvance();
|
|
68060
|
+
i0.ɵɵconditional(ctx.showControls() ? 11 : -1);
|
|
68061
|
+
i0.ɵɵadvance();
|
|
68062
|
+
i0.ɵɵconditional(ctx.formattedGeneratedDate() || ctx.requestedByUser() ? 12 : -1);
|
|
68063
|
+
i0.ɵɵadvance();
|
|
68064
|
+
i0.ɵɵclassProp("opacity-0", !ctx.headerScrollService.isScrolled())("pointer-events-none", !ctx.headerScrollService.isScrolled())("opacity-100", ctx.headerScrollService.isScrolled());
|
|
68065
|
+
i0.ɵɵadvance(4);
|
|
68066
|
+
i0.ɵɵproperty("ngClass", ctx.getCondensedTitleClasses());
|
|
68067
|
+
i0.ɵɵadvance();
|
|
68068
|
+
i0.ɵɵtextInterpolate1(" ", ctx.title(), " ");
|
|
68069
|
+
i0.ɵɵadvance(2);
|
|
68070
|
+
i0.ɵɵconditional(ctx.currentSection() ? 20 : -1);
|
|
68071
|
+
i0.ɵɵadvance();
|
|
68072
|
+
i0.ɵɵconditional(ctx.showControls() ? 21 : -1);
|
|
68073
|
+
} }, dependencies: [CommonModule, i1$1.NgClass, SearchButtonComponent], encapsulation: 2, changeDetection: 0 }); }
|
|
68074
|
+
}
|
|
68075
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DashboardHeaderComponent, [{
|
|
68076
|
+
type: Component,
|
|
68077
|
+
args: [{
|
|
68078
|
+
selector: 'symphiq-dashboard-header',
|
|
68079
|
+
standalone: true,
|
|
68080
|
+
imports: [CommonModule, SearchButtonComponent],
|
|
68081
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
68082
|
+
template: `
|
|
68083
|
+
<header [ngClass]="getHeaderClasses()" class="sticky top-0 z-50 overflow-hidden" [style.height]="headerScrollService.isScrolled() ? '52px' : '100px'" style="transition: height 300ms ease-in-out;">
|
|
68084
|
+
<!-- Expanded Header (default state) -->
|
|
68085
|
+
<div
|
|
68086
|
+
class="transition-opacity duration-300 ease-in-out h-full"
|
|
68087
|
+
[class.opacity-0]="headerScrollService.isScrolled()"
|
|
68088
|
+
[class.pointer-events-none]="headerScrollService.isScrolled()"
|
|
68089
|
+
[class.opacity-100]="!headerScrollService.isScrolled()">
|
|
68090
|
+
<div
|
|
68091
|
+
class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-4 h-full flex items-center">
|
|
68092
|
+
<div class="flex items-center justify-between w-full">
|
|
68093
|
+
<div>
|
|
68094
|
+
<div class="flex items-center gap-3">
|
|
68095
|
+
<h1 [ngClass]="getMainTitleClasses()">
|
|
68096
|
+
{{ title() }}
|
|
68097
|
+
</h1>
|
|
68098
|
+
@if (isLoading()) {
|
|
68099
|
+
<div class="animate-spin w-4 h-4 border-2 border-blue-500/30 border-t-blue-500 rounded-full" title="Refreshing data..."></div>
|
|
68100
|
+
}
|
|
68101
|
+
</div>
|
|
68102
|
+
<p [ngClass]="getSubtitleClasses()">
|
|
68103
|
+
{{ subtitle() }}
|
|
68104
|
+
</p>
|
|
68105
|
+
</div>
|
|
68106
|
+
@if (showControls()) {
|
|
68107
|
+
<div class="flex items-center gap-2">
|
|
68108
|
+
<symphiq-search-button
|
|
68109
|
+
[isLightMode]="isLightMode()"
|
|
68110
|
+
(searchClick)="onSearchClick()"
|
|
68111
|
+
/>
|
|
68112
|
+
<button
|
|
68113
|
+
type="button"
|
|
68114
|
+
(click)="onViewModeClick()"
|
|
68115
|
+
[ngClass]="getViewModeButtonClasses()"
|
|
68116
|
+
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">
|
|
68117
|
+
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
68118
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
|
|
68119
|
+
<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>
|
|
68120
|
+
</svg>
|
|
68121
|
+
<span>{{ viewModeLabel() }}</span>
|
|
68122
|
+
</button>
|
|
68123
|
+
</div>
|
|
68256
68124
|
}
|
|
68257
|
-
|
|
68258
|
-
|
|
68259
|
-
|
|
68260
|
-
|
|
68261
|
-
|
|
68262
|
-
|
|
68125
|
+
@if (formattedGeneratedDate() || requestedByUser()) {
|
|
68126
|
+
<div class="flex flex-col gap-4 min-w-[180px]">
|
|
68127
|
+
@if (formattedGeneratedDate()) {
|
|
68128
|
+
<div class="text-left sm:text-right">
|
|
68129
|
+
<div [class]="metaLabelClass()" class="text-xs sm:text-sm">Generated At</div>
|
|
68130
|
+
<div [class]="headerTitleClass()" class="text-sm sm:text-base font-medium">{{ formattedGeneratedDate() }}</div>
|
|
68131
|
+
</div>
|
|
68132
|
+
}
|
|
68133
|
+
@if (requestedByUser()) {
|
|
68134
|
+
<div class="text-left sm:text-right">
|
|
68135
|
+
<div [class]="metaLabelClass()" class="text-xs sm:text-sm">Requested by</div>
|
|
68136
|
+
<div [class]="headerTitleClass()" class="text-sm sm:text-base font-medium">{{ requestedByUser()?.firstName }} {{ requestedByUser()?.lastName }}</div>
|
|
68137
|
+
</div>
|
|
68138
|
+
}
|
|
68139
|
+
</div>
|
|
68263
68140
|
}
|
|
68141
|
+
</div>
|
|
68142
|
+
</div>
|
|
68143
|
+
</div>
|
|
68144
|
+
|
|
68145
|
+
<!-- Condensed Header (scrolled state) -->
|
|
68146
|
+
<div
|
|
68147
|
+
class="absolute inset-x-0 top-0 transition-opacity duration-300 ease-in-out"
|
|
68148
|
+
[class.opacity-0]="!headerScrollService.isScrolled()"
|
|
68149
|
+
[class.pointer-events-none]="!headerScrollService.isScrolled()"
|
|
68150
|
+
[class.opacity-100]="headerScrollService.isScrolled()">
|
|
68151
|
+
<div
|
|
68152
|
+
class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-3.5">
|
|
68153
|
+
<div class="flex items-center justify-between">
|
|
68154
|
+
<div class="flex-1 min-w-0 mr-4">
|
|
68155
|
+
<h1 [ngClass]="getCondensedTitleClasses()">
|
|
68156
|
+
{{ title() }}
|
|
68157
|
+
</h1>
|
|
68158
|
+
</div>
|
|
68159
|
+
<div class="flex items-center gap-4">
|
|
68160
|
+
@if (currentSection()) {
|
|
68161
|
+
<div class="flex items-center gap-2 text-sm flex-shrink-0">
|
|
68162
|
+
<span [ngClass]="isLightMode() ? 'text-slate-600 font-medium' : 'text-slate-400 font-medium'" class="transition-opacity duration-300" [class.opacity-0]="sectionFading()" [class.opacity-100]="!sectionFading()">
|
|
68163
|
+
{{ currentSection() }}
|
|
68164
|
+
</span>
|
|
68165
|
+
@if (currentSubsection()) {
|
|
68166
|
+
<span [ngClass]="isLightMode() ? 'text-slate-400' : 'text-slate-500'" class="transition-opacity duration-300" [class.opacity-0]="subsectionFading()" [class.opacity-100]="!subsectionFading()">›</span>
|
|
68167
|
+
<span [ngClass]="isLightMode() ? 'text-slate-500' : 'text-slate-500'" class="transition-opacity duration-300" [class.opacity-0]="subsectionFading()" [class.opacity-100]="!subsectionFading()">
|
|
68168
|
+
{{ currentSubsection() }}
|
|
68169
|
+
</span>
|
|
68170
|
+
}
|
|
68171
|
+
</div>
|
|
68172
|
+
}
|
|
68173
|
+
@if (showControls()) {
|
|
68174
|
+
<symphiq-search-button
|
|
68175
|
+
[isLightMode]="isLightMode()"
|
|
68176
|
+
[minimized]="true"
|
|
68177
|
+
(searchClick)="onSearchClick()"
|
|
68178
|
+
/>
|
|
68179
|
+
<button
|
|
68180
|
+
type="button"
|
|
68181
|
+
(click)="onViewModeClick()"
|
|
68182
|
+
[ngClass]="getViewModeButtonClasses()"
|
|
68183
|
+
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">
|
|
68184
|
+
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
68185
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
|
|
68186
|
+
<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>
|
|
68187
|
+
</svg>
|
|
68188
|
+
</button>
|
|
68189
|
+
}
|
|
68190
|
+
</div>
|
|
68191
|
+
</div>
|
|
68192
|
+
</div>
|
|
68193
|
+
</div>
|
|
68194
|
+
</header>
|
|
68195
|
+
`
|
|
68196
|
+
}]
|
|
68197
|
+
}], null, { requestedByUser: [{ type: i0.Input, args: [{ isSignal: true, alias: "requestedByUser", required: false }] }], createdDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "createdDate", 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 }] }], viewModeLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewModeLabel", required: false }] }], currentSection: [{ type: i0.Input, args: [{ isSignal: true, alias: "currentSection", required: false }] }], currentSubsection: [{ type: i0.Input, args: [{ isSignal: true, alias: "currentSubsection", required: false }] }], sectionFading: [{ type: i0.Input, args: [{ isSignal: true, alias: "sectionFading", required: false }] }], subsectionFading: [{ type: i0.Input, args: [{ isSignal: true, alias: "subsectionFading", required: false }] }], isLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLoading", required: false }] }], showControls: [{ type: i0.Input, args: [{ isSignal: true, alias: "showControls", required: false }] }], searchClick: [{ type: i0.Output, args: ["searchClick"] }], viewModeClick: [{ type: i0.Output, args: ["viewModeClick"] }] }); })();
|
|
68198
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DashboardHeaderComponent, { className: "DashboardHeaderComponent", filePath: "lib/components/shared/dashboard-header.component.ts", lineNumber: 128 }); })();
|
|
68199
|
+
|
|
68200
|
+
const _c0$u = () => [];
|
|
68201
|
+
function SymphiqBusinessAnalysisDashboardComponent_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
68202
|
+
i0.ɵɵelementStart(0, "div", 6);
|
|
68203
|
+
i0.ɵɵelement(1, "symphiq-indeterminate-spinner", 13);
|
|
68204
|
+
i0.ɵɵelementEnd();
|
|
68205
|
+
} if (rf & 2) {
|
|
68206
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
68207
|
+
i0.ɵɵadvance();
|
|
68208
|
+
i0.ɵɵproperty("viewMode", ctx_r0.viewMode());
|
|
68209
|
+
} }
|
|
68210
|
+
function SymphiqBusinessAnalysisDashboardComponent_Conditional_8_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
68211
|
+
const _r2 = i0.ɵɵgetCurrentView();
|
|
68212
|
+
i0.ɵɵelementStart(0, "symphiq-journey-progress-indicator", 16);
|
|
68213
|
+
i0.ɵɵlistener("stepClick", function SymphiqBusinessAnalysisDashboardComponent_Conditional_8_Conditional_0_Template_symphiq_journey_progress_indicator_stepClick_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.stepClick.emit($event)); })("nextStepClick", function SymphiqBusinessAnalysisDashboardComponent_Conditional_8_Conditional_0_Template_symphiq_journey_progress_indicator_nextStepClick_0_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.nextStepClick.emit()); });
|
|
68214
|
+
i0.ɵɵelementEnd();
|
|
68215
|
+
} if (rf & 2) {
|
|
68216
|
+
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
68217
|
+
i0.ɵɵproperty("viewMode", ctx_r0.viewMode())("currentStepId", ctx_r0.JourneyStepIdEnum.BUSINESS_ANALYSIS)("showNextStepAction", false)("forDemo", ctx_r0.forDemo())("maxAccessibleStepId", ctx_r0.maxAccessibleStepId());
|
|
68218
|
+
} }
|
|
68219
|
+
function SymphiqBusinessAnalysisDashboardComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
68220
|
+
i0.ɵɵconditionalCreate(0, SymphiqBusinessAnalysisDashboardComponent_Conditional_8_Conditional_0_Template, 1, 5, "symphiq-journey-progress-indicator", 14);
|
|
68221
|
+
i0.ɵɵelement(1, "symphiq-content-generation-progress-with-confetti", 15);
|
|
68222
|
+
} if (rf & 2) {
|
|
68223
|
+
let tmp_4_0;
|
|
68224
|
+
let tmp_6_0;
|
|
68225
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
68226
|
+
i0.ɵɵconditional(!ctx_r0.isOnboarded() ? 0 : -1);
|
|
68227
|
+
i0.ɵɵadvance();
|
|
68228
|
+
i0.ɵɵproperty("viewMode", ctx_r0.viewMode())("itemStatus", ctx_r0.itemStatus())("currentStatus", (tmp_4_0 = ctx_r0.profile()) == null ? null : tmp_4_0.selfContentStatus)("confettiIntensity", "celebration")("title", "We are generating a new Business Analysis for " + (((tmp_6_0 = ctx_r0.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.");
|
|
68229
|
+
} }
|
|
68230
|
+
function SymphiqBusinessAnalysisDashboardComponent_Conditional_9_Conditional_0_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
68231
|
+
const _r4 = i0.ɵɵgetCurrentView();
|
|
68232
|
+
i0.ɵɵelementStart(0, "symphiq-journey-progress-indicator", 16);
|
|
68233
|
+
i0.ɵɵlistener("stepClick", function SymphiqBusinessAnalysisDashboardComponent_Conditional_9_Conditional_0_Conditional_0_Template_symphiq_journey_progress_indicator_stepClick_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.stepClick.emit($event)); })("nextStepClick", function SymphiqBusinessAnalysisDashboardComponent_Conditional_9_Conditional_0_Conditional_0_Template_symphiq_journey_progress_indicator_nextStepClick_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.nextStepClick.emit()); });
|
|
68234
|
+
i0.ɵɵelementEnd();
|
|
68235
|
+
} if (rf & 2) {
|
|
68236
|
+
const ctx_r0 = i0.ɵɵnextContext(3);
|
|
68237
|
+
i0.ɵɵproperty("viewMode", ctx_r0.viewMode())("currentStepId", ctx_r0.JourneyStepIdEnum.BUSINESS_ANALYSIS)("showNextStepAction", ctx_r0.showNextStepAction())("forDemo", ctx_r0.forDemo())("maxAccessibleStepId", ctx_r0.maxAccessibleStepId());
|
|
68238
|
+
} }
|
|
68239
|
+
function SymphiqBusinessAnalysisDashboardComponent_Conditional_9_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
68240
|
+
const _r3 = i0.ɵɵgetCurrentView();
|
|
68241
|
+
i0.ɵɵconditionalCreate(0, SymphiqBusinessAnalysisDashboardComponent_Conditional_9_Conditional_0_Conditional_0_Template, 1, 5, "symphiq-journey-progress-indicator", 14);
|
|
68242
|
+
i0.ɵɵelementStart(1, "div", 17)(2, "div", 18);
|
|
68243
|
+
i0.ɵɵelement(3, "symphiq-welcome-banner", 19);
|
|
68244
|
+
i0.ɵɵelementEnd();
|
|
68245
|
+
i0.ɵɵelementStart(4, "div", 18)(5, "symphiq-recommendations-tiled-grid", 20);
|
|
68246
|
+
i0.ɵɵlistener("viewMoreClick", function SymphiqBusinessAnalysisDashboardComponent_Conditional_9_Conditional_0_Template_symphiq_recommendations_tiled_grid_viewMoreClick_5_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.openRecommendationDetailsModal($event)); });
|
|
68247
|
+
i0.ɵɵelementEnd()();
|
|
68248
|
+
i0.ɵɵelementStart(6, "div");
|
|
68249
|
+
i0.ɵɵelement(7, "symphiq-collapsible-section-group", 21);
|
|
68250
|
+
i0.ɵɵelementEnd()();
|
|
68251
|
+
} if (rf & 2) {
|
|
68252
|
+
let tmp_4_0;
|
|
68253
|
+
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
68254
|
+
i0.ɵɵconditional(!ctx_r0.isOnboarded() ? 0 : -1);
|
|
68255
|
+
i0.ɵɵadvance(3);
|
|
68256
|
+
i0.ɵɵproperty("viewMode", ctx_r0.viewMode())("businessName", ((tmp_4_0 = ctx_r0.currentProfile()) == null ? null : tmp_4_0.profileStructured == null ? null : tmp_4_0.profileStructured.businessName) || "your business")("isOnboarded", ctx_r0.isOnboarded());
|
|
68257
|
+
i0.ɵɵadvance(2);
|
|
68258
|
+
i0.ɵɵproperty("recommendations", ctx_r0.recommendationItems())("viewMode", ctx_r0.viewMode());
|
|
68259
|
+
i0.ɵɵadvance(2);
|
|
68260
|
+
i0.ɵɵproperty("sections", ctx_r0.nonRecommendationSections())("viewMode", ctx_r0.viewMode());
|
|
68261
|
+
} }
|
|
68262
|
+
function SymphiqBusinessAnalysisDashboardComponent_Conditional_9_Conditional_1_For_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
68263
|
+
i0.ɵɵelementStart(0, "div", 23);
|
|
68264
|
+
i0.ɵɵelement(1, "symphiq-section-divider", 24);
|
|
68265
|
+
i0.ɵɵelementEnd();
|
|
68266
|
+
} if (rf & 2) {
|
|
68267
|
+
const ɵ$index_46_r5 = i0.ɵɵnextContext().$index;
|
|
68268
|
+
const ctx_r0 = i0.ɵɵnextContext(3);
|
|
68269
|
+
i0.ɵɵadvance();
|
|
68270
|
+
i0.ɵɵproperty("viewMode", ctx_r0.viewMode())("subsections", ctx_r0.sections()[ɵ$index_46_r5 + 1].subsections || i0.ɵɵpureFunction0(2, _c0$u));
|
|
68271
|
+
} }
|
|
68272
|
+
function SymphiqBusinessAnalysisDashboardComponent_Conditional_9_Conditional_1_For_1_Template(rf, ctx) { if (rf & 1) {
|
|
68273
|
+
i0.ɵɵelement(0, "symphiq-profile-section", 22);
|
|
68274
|
+
i0.ɵɵconditionalCreate(1, SymphiqBusinessAnalysisDashboardComponent_Conditional_9_Conditional_1_For_1_Conditional_1_Template, 2, 3, "div", 23);
|
|
68275
|
+
} if (rf & 2) {
|
|
68276
|
+
const section_r6 = ctx.$implicit;
|
|
68277
|
+
const ɵ$index_46_r5 = ctx.$index;
|
|
68278
|
+
const ɵ$count_46_r7 = ctx.$count;
|
|
68279
|
+
const ctx_r0 = i0.ɵɵnextContext(3);
|
|
68280
|
+
i0.ɵɵproperty("section", section_r6)("viewMode", ctx_r0.viewMode())("forceExpanded", !ctx_r0.isCompactView());
|
|
68281
|
+
i0.ɵɵadvance();
|
|
68282
|
+
i0.ɵɵconditional(!(ɵ$index_46_r5 === ɵ$count_46_r7 - 1) ? 1 : -1);
|
|
68283
|
+
} }
|
|
68284
|
+
function SymphiqBusinessAnalysisDashboardComponent_Conditional_9_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
68285
|
+
i0.ɵɵrepeaterCreate(0, SymphiqBusinessAnalysisDashboardComponent_Conditional_9_Conditional_1_For_1_Template, 2, 4, null, null, i0.ɵɵcomponentInstance().trackBySectionId, true);
|
|
68286
|
+
} if (rf & 2) {
|
|
68287
|
+
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
68288
|
+
i0.ɵɵrepeater(ctx_r0.sections());
|
|
68289
|
+
} }
|
|
68290
|
+
function SymphiqBusinessAnalysisDashboardComponent_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
68291
|
+
i0.ɵɵconditionalCreate(0, SymphiqBusinessAnalysisDashboardComponent_Conditional_9_Conditional_0_Template, 8, 8)(1, SymphiqBusinessAnalysisDashboardComponent_Conditional_9_Conditional_1_Template, 2, 0);
|
|
68292
|
+
} if (rf & 2) {
|
|
68293
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
68294
|
+
i0.ɵɵconditional(ctx_r0.isSimplifiedView() ? 0 : 1);
|
|
68295
|
+
} }
|
|
68296
|
+
function SymphiqBusinessAnalysisDashboardComponent_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
68297
|
+
i0.ɵɵelement(0, "symphiq-section-navigation", 7);
|
|
68298
|
+
} if (rf & 2) {
|
|
68299
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
68300
|
+
i0.ɵɵproperty("sections", ctx_r0.sections())("viewMode", ctx_r0.viewMode())("embedded", ctx_r0.embedded())("scrollElement", ctx_r0.scrollElement() ?? undefined);
|
|
68301
|
+
} }
|
|
68302
|
+
function SymphiqBusinessAnalysisDashboardComponent_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
68303
|
+
i0.ɵɵelement(0, "symphiq-floating-toc", 7);
|
|
68304
|
+
} if (rf & 2) {
|
|
68305
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
68306
|
+
i0.ɵɵproperty("sections", ctx_r0.sections())("viewMode", ctx_r0.viewMode())("embedded", ctx_r0.embedded())("scrollElement", ctx_r0.scrollElement() ?? undefined);
|
|
68307
|
+
} }
|
|
68308
|
+
class SymphiqBusinessAnalysisDashboardComponent {
|
|
68309
|
+
sectionHasContent(section) {
|
|
68310
|
+
if (!section?.subsections || section.subsections.length === 0) {
|
|
68311
|
+
return false;
|
|
68264
68312
|
}
|
|
68313
|
+
return section.subsections.some((subsection) => this.subsectionHasContent(subsection));
|
|
68265
68314
|
}
|
|
68266
|
-
|
|
68267
|
-
|
|
68315
|
+
subsectionHasContent(subsection) {
|
|
68316
|
+
const hasItems = !!(subsection?.items && subsection.items.length > 0);
|
|
68317
|
+
const hasContent = !!(subsection?.content && subsection.content.trim().length > 0);
|
|
68318
|
+
const hasVisual = !!(subsection?.visual && subsection.visual.enabled);
|
|
68319
|
+
return hasItems || hasContent || hasVisual;
|
|
68268
68320
|
}
|
|
68269
|
-
|
|
68270
|
-
this.
|
|
68271
|
-
this.
|
|
68321
|
+
constructor() {
|
|
68322
|
+
this.embedded = input(false, ...(ngDevMode ? [{ debugName: "embedded" }] : []));
|
|
68323
|
+
this.profile = input(...(ngDevMode ? [undefined, { debugName: "profile" }] : []));
|
|
68324
|
+
this.parentHeaderOffset = input(0, ...(ngDevMode ? [{ debugName: "parentHeaderOffset" }] : []));
|
|
68325
|
+
this.requestedByUser = input(...(ngDevMode ? [undefined, { debugName: "requestedByUser" }] : []));
|
|
68326
|
+
this.viewMode = input(ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "viewMode" }] : []));
|
|
68327
|
+
this.scrollEvent = input(...(ngDevMode ? [undefined, { debugName: "scrollEvent" }] : []));
|
|
68328
|
+
this.scrollElement = input(...(ngDevMode ? [undefined, { debugName: "scrollElement" }] : []));
|
|
68329
|
+
this.isLoading = input(false, ...(ngDevMode ? [{ debugName: "isLoading" }] : []));
|
|
68330
|
+
this.isOnboarded = input(false, ...(ngDevMode ? [{ debugName: "isOnboarded" }] : []));
|
|
68331
|
+
this.forDemo = input(false, ...(ngDevMode ? [{ debugName: "forDemo" }] : []));
|
|
68332
|
+
this.maxAccessibleStepId = input(undefined, ...(ngDevMode ? [{ debugName: "maxAccessibleStepId" }] : []));
|
|
68333
|
+
this.itemStatus = input(...(ngDevMode ? [undefined, { debugName: "itemStatus" }] : []));
|
|
68334
|
+
this.isMarkingAsReviewed = input(false, ...(ngDevMode ? [{ debugName: "isMarkingAsReviewed" }] : []));
|
|
68335
|
+
this.stepClick = output();
|
|
68336
|
+
this.nextStepClick = output();
|
|
68337
|
+
this.markAsReviewedClick = output();
|
|
68338
|
+
this.JourneyStepIdEnum = JourneyStepIdEnum;
|
|
68339
|
+
this.AiDynamicContentStatusEnum = AiDynamicContentStatusEnum;
|
|
68340
|
+
this.showNextStepAction = computed(() => {
|
|
68341
|
+
const profile = this.profile();
|
|
68342
|
+
if (!profile)
|
|
68343
|
+
return false;
|
|
68344
|
+
const contentGenerated = profile.selfContentStatus === AiDynamicContentStatusEnum.GENERATED;
|
|
68345
|
+
const isReviewed = profile.reviewStatus === ProfileAnalysisReviewStatusEnum.REVIEWED;
|
|
68346
|
+
return contentGenerated && isReviewed;
|
|
68347
|
+
}, ...(ngDevMode ? [{ debugName: "showNextStepAction" }] : []));
|
|
68348
|
+
this.isContentGenerating = computed(() => {
|
|
68349
|
+
const status = this.profile()?.selfContentStatus;
|
|
68350
|
+
return status === AiDynamicContentStatusEnum.REQUESTED || status === AiDynamicContentStatusEnum.GENERATING;
|
|
68351
|
+
}, ...(ngDevMode ? [{ debugName: "isContentGenerating" }] : []));
|
|
68352
|
+
this.shouldShowReviewFooter = computed(() => {
|
|
68353
|
+
const profile = this.profile();
|
|
68354
|
+
if (!profile)
|
|
68355
|
+
return false;
|
|
68356
|
+
return profile.selfContentStatus === AiDynamicContentStatusEnum.GENERATED &&
|
|
68357
|
+
profile.reviewStatus === ProfileAnalysisReviewStatusEnum.NOT_REVIEWED;
|
|
68358
|
+
}, ...(ngDevMode ? [{ debugName: "shouldShowReviewFooter" }] : []));
|
|
68359
|
+
this.headerScrollService = inject(HeaderScrollService);
|
|
68360
|
+
this.lookupService = inject(ProfileItemLookupService);
|
|
68361
|
+
this.navigationService = inject(NavigationStateService);
|
|
68362
|
+
this.profileContextService = inject(ProfileContextService);
|
|
68363
|
+
this.searchService = inject(BusinessProfileSearchService);
|
|
68364
|
+
this.modalService = inject(ModalService);
|
|
68365
|
+
this.confettiService = inject(ConfettiService);
|
|
68366
|
+
this.currentProfile = signal(undefined, ...(ngDevMode ? [{ debugName: "currentProfile" }] : []));
|
|
68367
|
+
this.previousContentStatus = signal(undefined, ...(ngDevMode ? [{ debugName: "previousContentStatus" }] : []));
|
|
68368
|
+
this.COLLAPSE_THRESHOLD = 20;
|
|
68369
|
+
this.EXPAND_THRESHOLD = 10;
|
|
68370
|
+
this.embeddedScrollEffect = effect(() => {
|
|
68371
|
+
const scrollEvent = this.scrollEvent();
|
|
68372
|
+
const isEmbedded = this.embedded();
|
|
68373
|
+
if (isEmbedded && !scrollEvent) {
|
|
68374
|
+
return;
|
|
68375
|
+
}
|
|
68376
|
+
if (!scrollEvent || !isEmbedded) {
|
|
68377
|
+
return;
|
|
68378
|
+
}
|
|
68379
|
+
const detail = scrollEvent.detail;
|
|
68380
|
+
if (!detail) {
|
|
68381
|
+
return;
|
|
68382
|
+
}
|
|
68383
|
+
const scrollTop = detail.scrollTop || 0;
|
|
68384
|
+
const currentState = this.headerScrollService.isScrolled();
|
|
68385
|
+
if (!currentState && scrollTop > this.COLLAPSE_THRESHOLD) {
|
|
68386
|
+
this.headerScrollService.isScrolled.set(true);
|
|
68387
|
+
}
|
|
68388
|
+
else if (currentState && scrollTop < this.EXPAND_THRESHOLD) {
|
|
68389
|
+
this.headerScrollService.isScrolled.set(false);
|
|
68390
|
+
}
|
|
68391
|
+
const scrollElement = this.scrollElement();
|
|
68392
|
+
if (scrollElement) {
|
|
68393
|
+
const scrollHeight = scrollElement.scrollHeight || 0;
|
|
68394
|
+
const clientHeight = scrollElement.clientHeight || 0;
|
|
68395
|
+
const maxScroll = scrollHeight - clientHeight;
|
|
68396
|
+
if (maxScroll > 0) {
|
|
68397
|
+
const progress = (scrollTop / maxScroll) * 100;
|
|
68398
|
+
this.headerScrollService.scrollProgress.set(Math.min(100, Math.max(0, progress)));
|
|
68399
|
+
}
|
|
68400
|
+
}
|
|
68401
|
+
}, ...(ngDevMode ? [{ debugName: "embeddedScrollEffect" }] : []));
|
|
68402
|
+
this.scrollProgress = computed(() => this.headerScrollService.scrollProgress(), ...(ngDevMode ? [{ debugName: "scrollProgress" }] : []));
|
|
68403
|
+
this.isLightMode = computed(() => this.viewMode() === ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "isLightMode" }] : []));
|
|
68404
|
+
this.displayMode = signal(DisplayModeEnum.SIMPLIFIED, ...(ngDevMode ? [{ debugName: "displayMode" }] : []));
|
|
68405
|
+
this.isCompactView = computed(() => this.displayMode() === DisplayModeEnum.COMPACT, ...(ngDevMode ? [{ debugName: "isCompactView" }] : []));
|
|
68406
|
+
this.isSimplifiedView = computed(() => this.displayMode() === DisplayModeEnum.SIMPLIFIED, ...(ngDevMode ? [{ debugName: "isSimplifiedView" }] : []));
|
|
68407
|
+
this.currentSectionTitle = signal('', ...(ngDevMode ? [{ debugName: "currentSectionTitle" }] : []));
|
|
68408
|
+
this.currentSubsectionTitle = signal('', ...(ngDevMode ? [{ debugName: "currentSubsectionTitle" }] : []));
|
|
68409
|
+
this.sectionTitleFading = signal(false, ...(ngDevMode ? [{ debugName: "sectionTitleFading" }] : []));
|
|
68410
|
+
this.subsectionTitleFading = signal(false, ...(ngDevMode ? [{ debugName: "subsectionTitleFading" }] : []));
|
|
68411
|
+
this.selectedSearchIndex = signal(0, ...(ngDevMode ? [{ debugName: "selectedSearchIndex" }] : []));
|
|
68412
|
+
this.isViewModeSwitcherOpen = signal(false, ...(ngDevMode ? [{ debugName: "isViewModeSwitcherOpen" }] : []));
|
|
68413
|
+
this.isViewModeSwitching = signal(false, ...(ngDevMode ? [{ debugName: "isViewModeSwitching" }] : []));
|
|
68414
|
+
this.sections = computed(() => {
|
|
68415
|
+
const profile = this.currentProfile();
|
|
68416
|
+
const allSections = profile?.profileStructured?.sections || [];
|
|
68417
|
+
return allSections
|
|
68418
|
+
.filter(section => this.sectionHasContent(section))
|
|
68419
|
+
.sort((a, b) => (a.order || 0) - (b.order || 0));
|
|
68420
|
+
}, ...(ngDevMode ? [{ debugName: "sections" }] : []));
|
|
68421
|
+
this.recommendationItems = computed(() => {
|
|
68422
|
+
const profile = this.currentProfile();
|
|
68423
|
+
return profile?.profileStructured?.recommendations || [];
|
|
68424
|
+
}, ...(ngDevMode ? [{ debugName: "recommendationItems" }] : []));
|
|
68425
|
+
this.nonRecommendationSections = computed(() => {
|
|
68426
|
+
return this.sections().filter(section => section.id !== 'strategic-insights');
|
|
68427
|
+
}, ...(ngDevMode ? [{ debugName: "nonRecommendationSections" }] : []));
|
|
68428
|
+
this.displayModeLabel = computed(() => {
|
|
68429
|
+
const mode = this.displayMode();
|
|
68430
|
+
switch (mode) {
|
|
68431
|
+
case DisplayModeEnum.SIMPLIFIED:
|
|
68432
|
+
return 'Simplified';
|
|
68433
|
+
case DisplayModeEnum.COMPACT:
|
|
68434
|
+
return 'Compact';
|
|
68435
|
+
case DisplayModeEnum.EXPANDED:
|
|
68436
|
+
return 'Expanded';
|
|
68437
|
+
default:
|
|
68438
|
+
return 'View';
|
|
68439
|
+
}
|
|
68440
|
+
}, ...(ngDevMode ? [{ debugName: "displayModeLabel" }] : []));
|
|
68441
|
+
this.lastSectionTitle = '';
|
|
68442
|
+
this.lastSubsectionTitle = '';
|
|
68443
|
+
this.lastScrollY = 0;
|
|
68444
|
+
this.scrollDirection = 'down';
|
|
68445
|
+
effect(() => {
|
|
68446
|
+
const profile = this.profile();
|
|
68447
|
+
this.currentProfile.set(profile);
|
|
68448
|
+
this.lookupService.setProfile(profile);
|
|
68449
|
+
if (profile) {
|
|
68450
|
+
this.searchService.setProfile(profile);
|
|
68451
|
+
}
|
|
68452
|
+
if (profile?.profileStructured?.sections) {
|
|
68453
|
+
const recommendations = profile.profileStructured?.recommendations;
|
|
68454
|
+
this.profileContextService.indexProfile(profile.profileStructured.sections, recommendations);
|
|
68455
|
+
}
|
|
68456
|
+
});
|
|
68457
|
+
effect(() => {
|
|
68458
|
+
const currentStatus = this.profile()?.selfContentStatus;
|
|
68459
|
+
const prevStatus = this.previousContentStatus();
|
|
68460
|
+
if (prevStatus === AiDynamicContentStatusEnum.GENERATING &&
|
|
68461
|
+
currentStatus === AiDynamicContentStatusEnum.GENERATED) {
|
|
68462
|
+
this.confettiService.trigger({
|
|
68463
|
+
intensity: 'celebration',
|
|
68464
|
+
delay: 200,
|
|
68465
|
+
viewMode: this.viewMode(),
|
|
68466
|
+
});
|
|
68467
|
+
}
|
|
68468
|
+
this.previousContentStatus.set(currentStatus);
|
|
68469
|
+
});
|
|
68470
|
+
}
|
|
68471
|
+
onScroll() {
|
|
68472
|
+
this.headerScrollService.handleScroll(this.embedded());
|
|
68473
|
+
const navState = this.navigationService.getNavigationState()();
|
|
68474
|
+
if (navState.sourceElementId && navState.targetElementId && !navState.isBackButtonVisible) {
|
|
68475
|
+
const currentScrollPosition = window.scrollY;
|
|
68476
|
+
const scrollDifference = Math.abs(currentScrollPosition - navState.targetScrollPosition);
|
|
68477
|
+
if (scrollDifference > 100) {
|
|
68478
|
+
this.navigationService.showBackButton();
|
|
68479
|
+
}
|
|
68480
|
+
}
|
|
68481
|
+
}
|
|
68482
|
+
toggleExpandedView() {
|
|
68483
|
+
const current = this.displayMode();
|
|
68484
|
+
if (current === DisplayModeEnum.COMPACT) {
|
|
68485
|
+
this.displayMode.set(DisplayModeEnum.EXPANDED);
|
|
68486
|
+
}
|
|
68487
|
+
else if (current === DisplayModeEnum.EXPANDED) {
|
|
68488
|
+
this.displayMode.set(DisplayModeEnum.COMPACT);
|
|
68489
|
+
}
|
|
68490
|
+
}
|
|
68491
|
+
openViewModeSwitcher() {
|
|
68492
|
+
this.isViewModeSwitcherOpen.set(true);
|
|
68493
|
+
}
|
|
68494
|
+
closeViewModeSwitcher() {
|
|
68495
|
+
this.isViewModeSwitcherOpen.set(false);
|
|
68496
|
+
}
|
|
68497
|
+
handleDisplayModeChange(mode) {
|
|
68498
|
+
this.isViewModeSwitching.set(true);
|
|
68499
|
+
// Add a small delay to show the spinner
|
|
68500
|
+
setTimeout(() => {
|
|
68501
|
+
this.displayMode.set(mode);
|
|
68502
|
+
this.isViewModeSwitching.set(false);
|
|
68503
|
+
this.closeViewModeSwitcher();
|
|
68504
|
+
}, 500);
|
|
68505
|
+
}
|
|
68506
|
+
handleMarkAsReviewedClick() {
|
|
68507
|
+
this.markAsReviewedClick.emit();
|
|
68508
|
+
}
|
|
68509
|
+
openRecommendationDetailsModal(recommendation) {
|
|
68510
|
+
const itemAdapter = {
|
|
68511
|
+
...recommendation,
|
|
68512
|
+
type: 'RECOMMENDATION',
|
|
68513
|
+
label: recommendation.title,
|
|
68514
|
+
value: recommendation.description
|
|
68515
|
+
};
|
|
68516
|
+
this.modalService.openItemDetailModal(itemAdapter, this.viewMode(), 'recommendation', 'Strategic Insights', recommendation.title, undefined, this.isSimplifiedView() || this.isCompactView());
|
|
68517
|
+
}
|
|
68518
|
+
getViewModeButtonClasses() {
|
|
68519
|
+
const isDark = this.viewMode() === ViewModeEnum.DARK;
|
|
68520
|
+
if (isDark) {
|
|
68521
|
+
return 'bg-slate-800/60 border border-slate-700/50 text-slate-300 hover:bg-slate-700/60 hover:border-slate-600/50';
|
|
68522
|
+
}
|
|
68523
|
+
return 'bg-white/80 border border-slate-200 text-slate-700 hover:bg-white hover:border-slate-300 shadow-sm';
|
|
68524
|
+
}
|
|
68525
|
+
handleKeyDown(event) {
|
|
68526
|
+
if (!this.searchService.isSearchOpen()) {
|
|
68527
|
+
if (event.key === '/' || (event.metaKey && event.key === 'k') || (event.ctrlKey && event.key === 'k')) {
|
|
68528
|
+
event.preventDefault();
|
|
68529
|
+
this.searchService.openSearch();
|
|
68530
|
+
}
|
|
68531
|
+
return;
|
|
68532
|
+
}
|
|
68533
|
+
if (event.key === 'Escape') {
|
|
68534
|
+
event.preventDefault();
|
|
68535
|
+
this.closeSearch();
|
|
68536
|
+
}
|
|
68537
|
+
else if (event.key === 'ArrowDown') {
|
|
68538
|
+
event.preventDefault();
|
|
68539
|
+
const results = this.searchService.searchResults();
|
|
68540
|
+
if (results.length > 0) {
|
|
68541
|
+
this.selectedSearchIndex.update(i => (i + 1) % results.length);
|
|
68542
|
+
}
|
|
68543
|
+
}
|
|
68544
|
+
else if (event.key === 'ArrowUp') {
|
|
68545
|
+
event.preventDefault();
|
|
68546
|
+
const results = this.searchService.searchResults();
|
|
68547
|
+
if (results.length > 0) {
|
|
68548
|
+
this.selectedSearchIndex.update(i => (i - 1 + results.length) % results.length);
|
|
68549
|
+
}
|
|
68550
|
+
}
|
|
68551
|
+
else if (event.key === 'Enter') {
|
|
68552
|
+
event.preventDefault();
|
|
68553
|
+
const results = this.searchService.searchResults();
|
|
68554
|
+
if (results.length > 0) {
|
|
68555
|
+
this.onSearchResultSelected(results[this.selectedSearchIndex()]);
|
|
68556
|
+
}
|
|
68557
|
+
}
|
|
68558
|
+
}
|
|
68559
|
+
openSearch() {
|
|
68560
|
+
this.searchService.openSearch();
|
|
68561
|
+
}
|
|
68562
|
+
closeSearch() {
|
|
68563
|
+
this.searchService.closeSearch();
|
|
68564
|
+
this.selectedSearchIndex.set(0);
|
|
68272
68565
|
}
|
|
68273
68566
|
onSearchChange(query) {
|
|
68274
68567
|
this.searchService.setSearchQuery(query);
|
|
@@ -68391,888 +68684,404 @@ class SymphiqBusinessAnalysisDashboardComponent {
|
|
|
68391
68684
|
if (this.sectionUpdateTimeout) {
|
|
68392
68685
|
clearTimeout(this.sectionUpdateTimeout);
|
|
68393
68686
|
}
|
|
68394
|
-
this.sectionUpdateTimeout = setTimeout(() => {
|
|
68395
|
-
// Double-check that we should still update (in case scroll changed rapidly)
|
|
68396
|
-
if (parentSectionTitle !== this.lastSectionTitle) {
|
|
68397
|
-
this.sectionTitleFading.set(true);
|
|
68398
|
-
setTimeout(() => {
|
|
68399
|
-
this.currentSectionTitle.set(parentSectionTitle);
|
|
68400
|
-
this.lastSectionTitle = parentSectionTitle;
|
|
68401
|
-
this.sectionTitleFading.set(false);
|
|
68402
|
-
}, 150);
|
|
68403
|
-
}
|
|
68404
|
-
}, 200); // Shorter debounce since we're now using proximity
|
|
68405
|
-
}
|
|
68406
|
-
if (subsectionChanged && this.lastSubsectionTitle !== '') {
|
|
68407
|
-
if (this.subsectionUpdateTimeout) {
|
|
68408
|
-
clearTimeout(this.subsectionUpdateTimeout);
|
|
68409
|
-
}
|
|
68410
|
-
this.subsectionUpdateTimeout = setTimeout(() => {
|
|
68411
|
-
// Double-check that we should still update
|
|
68412
|
-
if (subsectionTitle !== this.lastSubsectionTitle) {
|
|
68413
|
-
this.subsectionTitleFading.set(true);
|
|
68414
|
-
setTimeout(() => {
|
|
68415
|
-
this.currentSubsectionTitle.set(subsectionTitle);
|
|
68416
|
-
this.lastSubsectionTitle = subsectionTitle;
|
|
68417
|
-
this.subsectionTitleFading.set(false);
|
|
68418
|
-
}, 150);
|
|
68419
|
-
}
|
|
68420
|
-
}, 200); // Shorter debounce since we're now using proximity
|
|
68421
|
-
}
|
|
68422
|
-
}
|
|
68423
|
-
}, {
|
|
68424
|
-
// Use more granular thresholds for better detection
|
|
68425
|
-
threshold: [0, 0.2, 0.4, 0.6, 0.8, 1],
|
|
68426
|
-
// Focus area starts right after the header
|
|
68427
|
-
rootMargin: '-100px 0px -50% 0px',
|
|
68428
|
-
});
|
|
68429
|
-
// Observe all subsections
|
|
68430
|
-
setTimeout(() => {
|
|
68431
|
-
const subsections = document.querySelectorAll('[data-subsection-id]');
|
|
68432
|
-
subsections.forEach((subsection) => this.subsectionObserver?.observe(subsection));
|
|
68433
|
-
}, 100);
|
|
68434
|
-
// Add event listener for scroll-to-target
|
|
68435
|
-
this.scrollToTargetHandler = (event) => {
|
|
68436
|
-
const customEvent = event;
|
|
68437
|
-
const targetId = customEvent.detail;
|
|
68438
|
-
if (targetId) {
|
|
68439
|
-
// Find the element with matching data-id
|
|
68440
|
-
const targetElement = document.querySelector(`[data-id="${targetId}"]`);
|
|
68441
|
-
if (targetElement) {
|
|
68442
|
-
// Scroll to the element with offset for header
|
|
68443
|
-
const yOffset = -120; // Account for sticky header
|
|
68444
|
-
const y = targetElement.getBoundingClientRect().top + window.pageYOffset + yOffset;
|
|
68445
|
-
window.scrollTo({ top: y, behavior: 'smooth' });
|
|
68446
|
-
// Click to expand if collapsed
|
|
68447
|
-
setTimeout(() => {
|
|
68448
|
-
targetElement.click();
|
|
68449
|
-
}, 400);
|
|
68450
|
-
// Add pulse animation to border
|
|
68451
|
-
targetElement.classList.add('animate-pulse-border');
|
|
68452
|
-
setTimeout(() => {
|
|
68453
|
-
targetElement.classList.remove('animate-pulse-border');
|
|
68454
|
-
}, 2000);
|
|
68455
|
-
}
|
|
68456
|
-
}
|
|
68457
|
-
};
|
|
68458
|
-
window.addEventListener('scroll-to-target', this.scrollToTargetHandler);
|
|
68459
|
-
}
|
|
68460
|
-
ngOnDestroy() {
|
|
68461
|
-
this.subsectionObserver?.disconnect();
|
|
68462
|
-
if (this.sectionUpdateTimeout) {
|
|
68463
|
-
clearTimeout(this.sectionUpdateTimeout);
|
|
68464
|
-
}
|
|
68465
|
-
if (this.subsectionUpdateTimeout) {
|
|
68466
|
-
clearTimeout(this.subsectionUpdateTimeout);
|
|
68467
|
-
}
|
|
68468
|
-
if (this.scrollToTargetHandler) {
|
|
68469
|
-
window.removeEventListener('scroll-to-target', this.scrollToTargetHandler);
|
|
68470
|
-
}
|
|
68471
|
-
if (this.scrollDirectionHandler) {
|
|
68472
|
-
window.removeEventListener('scroll', this.scrollDirectionHandler);
|
|
68473
|
-
}
|
|
68474
|
-
}
|
|
68475
|
-
getContainerClasses() {
|
|
68476
|
-
const positioning = this.embedded() ? '' : 'relative';
|
|
68477
|
-
return `${positioning} min-h-screen`.trim();
|
|
68478
|
-
}
|
|
68479
|
-
getBackgroundClasses() {
|
|
68480
|
-
const positioning = this.embedded() ? 'absolute' : 'fixed';
|
|
68481
|
-
return `${positioning} inset-0 overflow-hidden pointer-events-none`;
|
|
68482
|
-
}
|
|
68483
|
-
getMeshGradientClasses() {
|
|
68484
|
-
const isDark = this.viewMode() === ViewModeEnum.DARK;
|
|
68485
|
-
if (isDark) {
|
|
68486
|
-
return 'absolute inset-0 opacity-30 bg-gradient-to-br from-blue-900/20 via-purple-900/20 to-slate-900';
|
|
68487
|
-
}
|
|
68488
|
-
return 'absolute inset-0 opacity-30 bg-gradient-to-br from-blue-100/50 via-purple-100/50 to-slate-50';
|
|
68489
|
-
}
|
|
68490
|
-
getTopoPatternClasses() {
|
|
68491
|
-
const isDark = this.viewMode() === ViewModeEnum.DARK;
|
|
68492
|
-
return isDark ? 'absolute inset-0 opacity-5' : 'absolute inset-0 opacity-5 mix-blend-overlay';
|
|
68493
|
-
}
|
|
68494
|
-
getOrbClasses(index) {
|
|
68495
|
-
const isDark = this.viewMode() === ViewModeEnum.DARK;
|
|
68496
|
-
if (!isDark)
|
|
68497
|
-
return 'hidden';
|
|
68498
|
-
const positions = [
|
|
68499
|
-
'absolute top-0 left-1/4 w-96 h-96 bg-blue-500/10 rounded-full blur-3xl',
|
|
68500
|
-
'absolute top-1/3 right-1/4 w-[32rem] h-[32rem] bg-purple-500/10 rounded-full blur-3xl',
|
|
68501
|
-
'absolute bottom-0 left-1/3 w-[28rem] h-[28rem] bg-blue-400/10 rounded-full blur-3xl'
|
|
68502
|
-
];
|
|
68503
|
-
return positions[index - 1] || '';
|
|
68504
|
-
}
|
|
68505
|
-
getHeaderClasses() {
|
|
68506
|
-
const isDark = this.viewMode() === ViewModeEnum.DARK;
|
|
68507
|
-
return isDark ? 'relative backdrop-blur-sm bg-slate-900/50' : 'relative backdrop-blur-sm bg-white/50';
|
|
68508
|
-
}
|
|
68509
|
-
getMainTitleClasses() {
|
|
68510
|
-
const isDark = this.viewMode() === ViewModeEnum.DARK;
|
|
68511
|
-
if (isDark) {
|
|
68512
|
-
return 'text-4xl sm:text-5xl font-bold bg-gradient-to-r from-blue-400 to-purple-400 bg-clip-text text-transparent';
|
|
68513
|
-
}
|
|
68514
|
-
return 'text-4xl sm:text-5xl font-bold bg-gradient-to-r from-blue-600 to-purple-600 bg-clip-text text-transparent';
|
|
68515
|
-
}
|
|
68516
|
-
getSubtitleClasses() {
|
|
68517
|
-
const isDark = this.viewMode() === ViewModeEnum.DARK;
|
|
68518
|
-
return isDark ? 'text-lg mt-2 text-slate-400' : 'text-lg mt-2 text-slate-600';
|
|
68519
|
-
}
|
|
68520
|
-
getLoadingOverlayClasses() {
|
|
68521
|
-
const isDark = this.viewMode() === ViewModeEnum.DARK;
|
|
68522
|
-
if (isDark) {
|
|
68523
|
-
return 'fixed inset-0 z-50 flex items-center justify-center bg-slate-900/80 backdrop-blur-sm';
|
|
68524
|
-
}
|
|
68525
|
-
return 'fixed inset-0 z-50 flex items-center justify-center bg-white/80 backdrop-blur-sm';
|
|
68526
|
-
}
|
|
68527
|
-
getSpinnerClasses() {
|
|
68528
|
-
const isDark = this.viewMode() === ViewModeEnum.DARK;
|
|
68529
|
-
if (isDark) {
|
|
68530
|
-
return 'w-16 h-16 border-4 rounded-full animate-spin border-slate-700 border-t-blue-400';
|
|
68531
|
-
}
|
|
68532
|
-
return 'w-16 h-16 border-4 rounded-full animate-spin border-slate-200 border-t-blue-600';
|
|
68533
|
-
}
|
|
68534
|
-
trackBySectionId(index, section) {
|
|
68535
|
-
return section.id || index;
|
|
68536
|
-
}
|
|
68537
|
-
static { this.ɵfac = function SymphiqBusinessAnalysisDashboardComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SymphiqBusinessAnalysisDashboardComponent)(); }; }
|
|
68538
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SymphiqBusinessAnalysisDashboardComponent, selectors: [["symphiq-business-analysis-dashboard"]], hostBindings: function SymphiqBusinessAnalysisDashboardComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
68539
|
-
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);
|
|
68540
|
-
} }, 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"], isMarkingAsReviewed: [1, "isMarkingAsReviewed"] }, outputs: { stepClick: "stepClick", nextStepClick: "nextStepClick", markAsReviewedClick: "markAsReviewedClick" }, decls: 36, vars: 64, 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"], [1, "flex", "items-center", "justify-center", "min-h-[60vh]"], [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, "markAsReviewedClick", "viewMode", "reviewStatus", "selfContentStatus", "isMarkingAsReviewed"], [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"], ["size", "large", 3, "viewMode"], [3, "viewMode", "currentStepId", "showNextStepAction", "forDemo", "maxAccessibleStepId"], [3, "viewMode", "itemStatus", "currentStatus", "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) {
|
|
68541
|
-
i0.ɵɵelementStart(0, "div", 0)(1, "div");
|
|
68542
|
-
i0.ɵɵelement(2, "div", 1);
|
|
68543
|
-
i0.ɵɵelementEnd();
|
|
68544
|
-
i0.ɵɵelement(3, "div", 2);
|
|
68545
|
-
i0.ɵɵelementStart(4, "div", 3)(5, "header", 4)(6, "div", 5)(7, "div", 6)(8, "div", 7)(9, "div")(10, "h1", 0);
|
|
68546
|
-
i0.ɵɵtext(11);
|
|
68547
|
-
i0.ɵɵelementEnd();
|
|
68548
|
-
i0.ɵɵelementStart(12, "p", 0);
|
|
68549
|
-
i0.ɵɵtext(13, " Business Profile & Analysis ");
|
|
68550
|
-
i0.ɵɵelementEnd()();
|
|
68551
|
-
i0.ɵɵconditionalCreate(14, SymphiqBusinessAnalysisDashboardComponent_Conditional_14_Template, 8, 3, "div", 8);
|
|
68552
|
-
i0.ɵɵelementEnd()()();
|
|
68553
|
-
i0.ɵɵelementStart(15, "div", 5)(16, "div", 9)(17, "div", 7)(18, "div", 10)(19, "h1", 0);
|
|
68554
|
-
i0.ɵɵtext(20);
|
|
68555
|
-
i0.ɵɵelementEnd()();
|
|
68556
|
-
i0.ɵɵelementStart(21, "div", 11);
|
|
68557
|
-
i0.ɵɵconditionalCreate(22, SymphiqBusinessAnalysisDashboardComponent_Conditional_22_Template, 4, 7, "div", 12);
|
|
68558
|
-
i0.ɵɵconditionalCreate(23, SymphiqBusinessAnalysisDashboardComponent_Conditional_23_Template, 5, 3);
|
|
68559
|
-
i0.ɵɵelementEnd()()()()();
|
|
68560
|
-
i0.ɵɵelementStart(24, "main", 13);
|
|
68561
|
-
i0.ɵɵconditionalCreate(25, SymphiqBusinessAnalysisDashboardComponent_Conditional_25_Template, 2, 1, "div", 14)(26, SymphiqBusinessAnalysisDashboardComponent_Conditional_26_Template, 2, 7)(27, SymphiqBusinessAnalysisDashboardComponent_Conditional_27_Template, 2, 1);
|
|
68562
|
-
i0.ɵɵelementEnd();
|
|
68563
|
-
i0.ɵɵconditionalCreate(28, SymphiqBusinessAnalysisDashboardComponent_Conditional_28_Template, 1, 4, "symphiq-section-navigation", 15);
|
|
68564
|
-
i0.ɵɵconditionalCreate(29, SymphiqBusinessAnalysisDashboardComponent_Conditional_29_Template, 1, 4, "symphiq-floating-toc", 15);
|
|
68565
|
-
i0.ɵɵelement(30, "symphiq-floating-back-button", 16);
|
|
68566
|
-
i0.ɵɵelementEnd();
|
|
68567
|
-
i0.ɵɵelement(31, "symphiq-tooltip-container");
|
|
68568
|
-
i0.ɵɵelementStart(32, "symphiq-business-analysis-modal", 17);
|
|
68569
|
-
i0.ɵɵlistener("viewInContextRequested", function SymphiqBusinessAnalysisDashboardComponent_Template_symphiq_business_analysis_modal_viewInContextRequested_32_listener($event) { return ctx.handleViewInContext($event); });
|
|
68570
|
-
i0.ɵɵelementEnd();
|
|
68571
|
-
i0.ɵɵelementStart(33, "symphiq-search-modal", 18);
|
|
68572
|
-
i0.ɵɵlistener("searchChange", function SymphiqBusinessAnalysisDashboardComponent_Template_symphiq_search_modal_searchChange_33_listener($event) { return ctx.onSearchChange($event); })("resultSelected", function SymphiqBusinessAnalysisDashboardComponent_Template_symphiq_search_modal_resultSelected_33_listener($event) { return ctx.onSearchResultSelected($event); })("close", function SymphiqBusinessAnalysisDashboardComponent_Template_symphiq_search_modal_close_33_listener() { return ctx.closeSearch(); });
|
|
68573
|
-
i0.ɵɵelementEnd();
|
|
68574
|
-
i0.ɵɵelementStart(34, "symphiq-view-mode-switcher-modal", 19);
|
|
68575
|
-
i0.ɵɵlistener("close", function SymphiqBusinessAnalysisDashboardComponent_Template_symphiq_view_mode_switcher_modal_close_34_listener() { return ctx.closeViewModeSwitcher(); })("modeSelected", function SymphiqBusinessAnalysisDashboardComponent_Template_symphiq_view_mode_switcher_modal_modeSelected_34_listener($event) { return ctx.handleDisplayModeChange($event); });
|
|
68576
|
-
i0.ɵɵelementEnd();
|
|
68577
|
-
i0.ɵɵelementStart(35, "symphiq-mark-as-reviewed-footer", 20);
|
|
68578
|
-
i0.ɵɵlistener("markAsReviewedClick", function SymphiqBusinessAnalysisDashboardComponent_Template_symphiq_mark_as_reviewed_footer_markAsReviewedClick_35_listener() { return ctx.handleMarkAsReviewedClick(); });
|
|
68579
|
-
i0.ɵɵelementEnd()();
|
|
68580
|
-
} if (rf & 2) {
|
|
68581
|
-
let tmp_13_0;
|
|
68582
|
-
let tmp_15_0;
|
|
68583
|
-
let tmp_23_0;
|
|
68584
|
-
let tmp_25_0;
|
|
68585
|
-
let tmp_45_0;
|
|
68586
|
-
let tmp_46_0;
|
|
68587
|
-
i0.ɵɵproperty("ngClass", ctx.getContainerClasses());
|
|
68588
|
-
i0.ɵɵadvance();
|
|
68589
|
-
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");
|
|
68590
|
-
i0.ɵɵadvance();
|
|
68591
|
-
i0.ɵɵstyleProp("width", ctx.scrollProgress(), "%");
|
|
68592
|
-
i0.ɵɵproperty("ngClass", ctx.isLightMode() ? "bg-gradient-to-r from-blue-500 to-purple-500" : "bg-gradient-to-r from-blue-400 to-purple-400");
|
|
68593
|
-
i0.ɵɵadvance();
|
|
68594
|
-
i0.ɵɵclassProp("light-mode", ctx.isLightMode());
|
|
68595
|
-
i0.ɵɵadvance(2);
|
|
68596
|
-
i0.ɵɵproperty("ngClass", ctx.getHeaderClasses());
|
|
68597
|
-
i0.ɵɵadvance();
|
|
68598
|
-
i0.ɵɵclassProp("max-h-0", ctx.headerScrollService.isScrolled())("opacity-0", ctx.headerScrollService.isScrolled())("max-h-96", !ctx.headerScrollService.isScrolled())("opacity-100", !ctx.headerScrollService.isScrolled());
|
|
68599
|
-
i0.ɵɵadvance();
|
|
68600
|
-
i0.ɵɵclassProp("pointer-events-none", ctx.headerScrollService.isScrolled())("pointer-events-auto", !ctx.headerScrollService.isScrolled());
|
|
68601
|
-
i0.ɵɵadvance(3);
|
|
68602
|
-
i0.ɵɵproperty("ngClass", ctx.getMainTitleClasses());
|
|
68603
|
-
i0.ɵɵadvance();
|
|
68604
|
-
i0.ɵɵtextInterpolate1(" ", ((tmp_13_0 = ctx.currentProfile()) == null ? null : tmp_13_0.profileStructured == null ? null : tmp_13_0.profileStructured.businessName) || "Business Analysis", " ");
|
|
68605
|
-
i0.ɵɵadvance();
|
|
68606
|
-
i0.ɵɵproperty("ngClass", ctx.getSubtitleClasses());
|
|
68607
|
-
i0.ɵɵadvance(2);
|
|
68608
|
-
i0.ɵɵconditional(((tmp_15_0 = ctx.profile()) == null ? null : tmp_15_0.selfContentStatus) === ctx.AiDynamicContentStatusEnum.GENERATED ? 14 : -1);
|
|
68609
|
-
i0.ɵɵadvance();
|
|
68610
|
-
i0.ɵɵclassProp("max-h-0", !ctx.headerScrollService.isScrolled())("opacity-0", !ctx.headerScrollService.isScrolled())("max-h-20", ctx.headerScrollService.isScrolled())("opacity-100", ctx.headerScrollService.isScrolled());
|
|
68611
|
-
i0.ɵɵadvance();
|
|
68612
|
-
i0.ɵɵclassProp("pointer-events-none", !ctx.headerScrollService.isScrolled())("pointer-events-auto", ctx.headerScrollService.isScrolled());
|
|
68613
|
-
i0.ɵɵadvance(3);
|
|
68614
|
-
i0.ɵɵproperty("ngClass", ctx.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");
|
|
68615
|
-
i0.ɵɵadvance();
|
|
68616
|
-
i0.ɵɵtextInterpolate1(" ", ((tmp_23_0 = ctx.currentProfile()) == null ? null : tmp_23_0.profileStructured == null ? null : tmp_23_0.profileStructured.businessName) || "Business Analysis", " ");
|
|
68617
|
-
i0.ɵɵadvance(2);
|
|
68618
|
-
i0.ɵɵconditional(!ctx.isSimplifiedView() ? 22 : -1);
|
|
68619
|
-
i0.ɵɵadvance();
|
|
68620
|
-
i0.ɵɵconditional(((tmp_25_0 = ctx.profile()) == null ? null : tmp_25_0.selfContentStatus) === ctx.AiDynamicContentStatusEnum.GENERATED ? 23 : -1);
|
|
68621
|
-
i0.ɵɵadvance();
|
|
68622
|
-
i0.ɵɵclassProp("pb-32", ctx.shouldShowReviewFooter());
|
|
68623
|
-
i0.ɵɵadvance();
|
|
68624
|
-
i0.ɵɵconditional(ctx.isLoading() ? 25 : ctx.isContentGenerating() ? 26 : 27);
|
|
68625
|
-
i0.ɵɵadvance(3);
|
|
68626
|
-
i0.ɵɵconditional(!ctx.isSimplifiedView() ? 28 : -1);
|
|
68627
|
-
i0.ɵɵadvance();
|
|
68628
|
-
i0.ɵɵconditional(!ctx.isSimplifiedView() ? 29 : -1);
|
|
68629
|
-
i0.ɵɵadvance();
|
|
68630
|
-
i0.ɵɵproperty("viewMode", ctx.viewMode())("embedded", ctx.embedded());
|
|
68631
|
-
i0.ɵɵadvance(2);
|
|
68632
|
-
i0.ɵɵproperty("isLightMode", ctx.isLightMode());
|
|
68633
|
-
i0.ɵɵadvance();
|
|
68634
|
-
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...");
|
|
68635
|
-
i0.ɵɵadvance();
|
|
68636
|
-
i0.ɵɵproperty("isOpen", ctx.isViewModeSwitcherOpen())("currentMode", ctx.displayMode())("viewMode", ctx.viewMode())("isLoading", ctx.isViewModeSwitching());
|
|
68637
|
-
i0.ɵɵadvance();
|
|
68638
|
-
i0.ɵɵproperty("viewMode", ctx.viewMode())("reviewStatus", (tmp_45_0 = ctx.profile()) == null ? null : tmp_45_0.reviewStatus)("selfContentStatus", (tmp_46_0 = ctx.profile()) == null ? null : tmp_46_0.selfContentStatus)("isMarkingAsReviewed", ctx.isMarkingAsReviewed());
|
|
68639
|
-
} }, dependencies: [CommonModule, i1$1.NgClass, ProfileSectionComponent, SectionNavigationComponent, FloatingTocComponent, FloatingBackButtonComponent, TooltipContainerComponent, SectionDividerComponent, BusinessAnalysisModalComponent, SearchButtonComponent, SearchModalComponent, ViewModeSwitcherModalComponent, JourneyProgressIndicatorComponent, WelcomeBannerComponent, RecommendationsTiledGridComponent, CollapsibleSectionGroupComponent, ContentGenerationProgressWithConfettiComponent, IndeterminateSpinnerComponent, MarkAsReviewedFooterComponent], 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 }); }
|
|
68640
|
-
}
|
|
68641
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SymphiqBusinessAnalysisDashboardComponent, [{
|
|
68642
|
-
type: Component,
|
|
68643
|
-
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, IndeterminateSpinnerComponent, MarkAsReviewedFooterComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: `
|
|
68644
|
-
<div [ngClass]="getContainerClasses()">
|
|
68645
|
-
<!-- Scroll Progress Bar (fixed at top) -->
|
|
68646
|
-
<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'">
|
|
68647
|
-
<div
|
|
68648
|
-
[style.width.%]="scrollProgress()"
|
|
68649
|
-
[ngClass]="isLightMode() ? 'bg-gradient-to-r from-blue-500 to-purple-500' : 'bg-gradient-to-r from-blue-400 to-purple-400'"
|
|
68650
|
-
class="h-full transition-all duration-200 ease-out">
|
|
68651
|
-
</div>
|
|
68652
|
-
</div>
|
|
68653
|
-
|
|
68654
|
-
<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>
|
|
68655
|
-
|
|
68656
|
-
<div class="relative z-[51]">
|
|
68657
|
-
<header [ngClass]="getHeaderClasses()" class="sticky top-0 z-50">
|
|
68658
|
-
<!-- Expanded Header (default state) -->
|
|
68659
|
-
<div
|
|
68660
|
-
class="transition-all duration-300 ease-in-out overflow-hidden"
|
|
68661
|
-
[class.max-h-0]="headerScrollService.isScrolled()"
|
|
68662
|
-
[class.opacity-0]="headerScrollService.isScrolled()"
|
|
68663
|
-
[class.max-h-96]="!headerScrollService.isScrolled()"
|
|
68664
|
-
[class.opacity-100]="!headerScrollService.isScrolled()">
|
|
68665
|
-
<div
|
|
68666
|
-
class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8"
|
|
68667
|
-
[class.pointer-events-none]="headerScrollService.isScrolled()"
|
|
68668
|
-
[class.pointer-events-auto]="!headerScrollService.isScrolled()">
|
|
68669
|
-
<div class="flex items-center justify-between">
|
|
68670
|
-
<div>
|
|
68671
|
-
<h1 [ngClass]="getMainTitleClasses()">
|
|
68672
|
-
{{ currentProfile()?.profileStructured?.businessName || 'Business Analysis' }}
|
|
68673
|
-
</h1>
|
|
68674
|
-
<p [ngClass]="getSubtitleClasses()">
|
|
68675
|
-
Business Profile & Analysis
|
|
68676
|
-
</p>
|
|
68677
|
-
</div>
|
|
68678
|
-
@if (profile()?.selfContentStatus === AiDynamicContentStatusEnum.GENERATED) {
|
|
68679
|
-
<div class="flex items-center gap-2">
|
|
68680
|
-
<symphiq-search-button
|
|
68681
|
-
[isLightMode]="isLightMode()"
|
|
68682
|
-
(searchClick)="openSearch()"
|
|
68683
|
-
/>
|
|
68684
|
-
<button
|
|
68685
|
-
type="button"
|
|
68686
|
-
(click)="openViewModeSwitcher()"
|
|
68687
|
-
[ngClass]="getViewModeButtonClasses()"
|
|
68688
|
-
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">
|
|
68689
|
-
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
68690
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
|
|
68691
|
-
<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>
|
|
68692
|
-
</svg>
|
|
68693
|
-
<span>{{ displayModeLabel() }}</span>
|
|
68694
|
-
</button>
|
|
68695
|
-
</div>
|
|
68696
|
-
}
|
|
68697
|
-
</div>
|
|
68698
|
-
</div>
|
|
68699
|
-
</div>
|
|
68700
|
-
|
|
68701
|
-
<!-- Condensed Header (scrolled state) -->
|
|
68702
|
-
<div
|
|
68703
|
-
class="transition-all duration-300 ease-in-out overflow-hidden"
|
|
68704
|
-
[class.max-h-0]="!headerScrollService.isScrolled()"
|
|
68705
|
-
[class.opacity-0]="!headerScrollService.isScrolled()"
|
|
68706
|
-
[class.max-h-20]="headerScrollService.isScrolled()"
|
|
68707
|
-
[class.opacity-100]="headerScrollService.isScrolled()">
|
|
68708
|
-
<div
|
|
68709
|
-
class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-3"
|
|
68710
|
-
[class.pointer-events-none]="!headerScrollService.isScrolled()"
|
|
68711
|
-
[class.pointer-events-auto]="headerScrollService.isScrolled()">
|
|
68712
|
-
<div class="flex items-center justify-between">
|
|
68713
|
-
<div class="flex-1 min-w-0 mr-4">
|
|
68714
|
-
<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'">
|
|
68715
|
-
{{ currentProfile()?.profileStructured?.businessName || 'Business Analysis' }}
|
|
68716
|
-
</h1>
|
|
68717
|
-
</div>
|
|
68718
|
-
<div class="flex items-center gap-4">
|
|
68719
|
-
@if (!isSimplifiedView()) {
|
|
68720
|
-
<div class="flex items-center gap-2 text-sm flex-shrink-0">
|
|
68721
|
-
<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()">
|
|
68722
|
-
{{ currentSectionTitle() }}
|
|
68723
|
-
</span>
|
|
68724
|
-
@if (currentSubsectionTitle()) {
|
|
68725
|
-
<span [ngClass]="isLightMode() ? 'text-slate-400' : 'text-slate-500'" class="transition-opacity duration-300" [class.opacity-0]="subsectionTitleFading()" [class.opacity-100]="!subsectionTitleFading()">›</span>
|
|
68726
|
-
<span [ngClass]="isLightMode() ? 'text-slate-500' : 'text-slate-500'" class="transition-opacity duration-300" [class.opacity-0]="subsectionTitleFading()" [class.opacity-100]="!subsectionTitleFading()">
|
|
68727
|
-
{{ currentSubsectionTitle() }}
|
|
68728
|
-
</span>
|
|
68729
|
-
}
|
|
68730
|
-
</div>
|
|
68731
|
-
}
|
|
68732
|
-
@if (profile()?.selfContentStatus === AiDynamicContentStatusEnum.GENERATED) {
|
|
68733
|
-
<symphiq-search-button
|
|
68734
|
-
[isLightMode]="isLightMode()"
|
|
68735
|
-
[minimized]="true"
|
|
68736
|
-
(searchClick)="openSearch()"
|
|
68737
|
-
/>
|
|
68738
|
-
<button
|
|
68739
|
-
type="button"
|
|
68740
|
-
(click)="openViewModeSwitcher()"
|
|
68741
|
-
[ngClass]="getViewModeButtonClasses()"
|
|
68742
|
-
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">
|
|
68743
|
-
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
68744
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
|
|
68745
|
-
<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>
|
|
68746
|
-
</svg>
|
|
68747
|
-
</button>
|
|
68748
|
-
}
|
|
68749
|
-
</div>
|
|
68750
|
-
</div>
|
|
68751
|
-
</div>
|
|
68752
|
-
</div>
|
|
68753
|
-
</header>
|
|
68754
|
-
|
|
68755
|
-
<main class="relative" [class.pb-32]="shouldShowReviewFooter()">
|
|
68756
|
-
@if (isLoading()) {
|
|
68757
|
-
<!-- Pure Loading State -->
|
|
68758
|
-
<div class="flex items-center justify-center min-h-[60vh]">
|
|
68759
|
-
<symphiq-indeterminate-spinner
|
|
68760
|
-
[viewMode]="viewMode()"
|
|
68761
|
-
size="large"
|
|
68762
|
-
/>
|
|
68763
|
-
</div>
|
|
68764
|
-
} @else if (isContentGenerating()) {
|
|
68765
|
-
<!-- Journey Progress Banner (always show when not onboarded) -->
|
|
68766
|
-
@if (!isOnboarded()) {
|
|
68767
|
-
<symphiq-journey-progress-indicator
|
|
68768
|
-
[viewMode]="viewMode()"
|
|
68769
|
-
[currentStepId]="JourneyStepIdEnum.BUSINESS_ANALYSIS"
|
|
68770
|
-
[showNextStepAction]="false"
|
|
68771
|
-
[forDemo]="forDemo()"
|
|
68772
|
-
[maxAccessibleStepId]="maxAccessibleStepId()"
|
|
68773
|
-
(stepClick)="stepClick.emit($event)"
|
|
68774
|
-
(nextStepClick)="nextStepClick.emit()"
|
|
68775
|
-
/>
|
|
68776
|
-
}
|
|
68777
|
-
|
|
68778
|
-
<!-- Content Generation Progress Component -->
|
|
68779
|
-
<symphiq-content-generation-progress-with-confetti
|
|
68780
|
-
[viewMode]="viewMode()"
|
|
68781
|
-
[itemStatus]="itemStatus()"
|
|
68782
|
-
[currentStatus]="profile()?.selfContentStatus"
|
|
68783
|
-
[confettiIntensity]="'celebration'"
|
|
68784
|
-
[title]="'We are generating a new Business Analysis for ' + (currentProfile()?.profileStructured?.businessName || 'your business') + '.'"
|
|
68785
|
-
[subtitle]="'It will appear here when ready. You can check back later as this will take a few minutes to complete.'"
|
|
68786
|
-
/>
|
|
68787
|
-
} @else {
|
|
68788
|
-
@if (isSimplifiedView()) {
|
|
68789
|
-
<!-- Journey Progress Banner - Full Width Sticky (only show when not onboarded) -->
|
|
68790
|
-
@if (!isOnboarded()) {
|
|
68791
|
-
<symphiq-journey-progress-indicator
|
|
68792
|
-
[viewMode]="viewMode()"
|
|
68793
|
-
[currentStepId]="JourneyStepIdEnum.BUSINESS_ANALYSIS"
|
|
68794
|
-
[showNextStepAction]="showNextStepAction()"
|
|
68795
|
-
[forDemo]="forDemo()"
|
|
68796
|
-
[maxAccessibleStepId]="maxAccessibleStepId()"
|
|
68797
|
-
(stepClick)="stepClick.emit($event)"
|
|
68798
|
-
(nextStepClick)="nextStepClick.emit()"
|
|
68799
|
-
/>
|
|
68800
|
-
}
|
|
68801
|
-
|
|
68802
|
-
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8">
|
|
68803
|
-
<div class="mb-8">
|
|
68804
|
-
<symphiq-welcome-banner
|
|
68805
|
-
[viewMode]="viewMode()"
|
|
68806
|
-
[businessName]="currentProfile()?.profileStructured?.businessName || 'your business'"
|
|
68807
|
-
[isOnboarded]="isOnboarded()"
|
|
68808
|
-
/>
|
|
68809
|
-
</div>
|
|
68810
|
-
|
|
68811
|
-
<div class="mb-8">
|
|
68812
|
-
<symphiq-recommendations-tiled-grid
|
|
68813
|
-
[recommendations]="recommendationItems()"
|
|
68814
|
-
[viewMode]="viewMode()"
|
|
68815
|
-
(viewMoreClick)="openRecommendationDetailsModal($event)"
|
|
68816
|
-
/>
|
|
68817
|
-
</div>
|
|
68818
|
-
|
|
68819
|
-
<div>
|
|
68820
|
-
<symphiq-collapsible-section-group
|
|
68821
|
-
[sections]="nonRecommendationSections()"
|
|
68822
|
-
[viewMode]="viewMode()"
|
|
68823
|
-
/>
|
|
68824
|
-
</div>
|
|
68825
|
-
</div>
|
|
68826
|
-
} @else {
|
|
68827
|
-
@for (section of sections(); track trackBySectionId($index, section); let idx = $index; let last = $last) {
|
|
68828
|
-
<symphiq-profile-section
|
|
68829
|
-
[section]="section"
|
|
68830
|
-
[viewMode]="viewMode()"
|
|
68831
|
-
[forceExpanded]="!isCompactView()"
|
|
68832
|
-
/>
|
|
68833
|
-
@if (!last) {
|
|
68834
|
-
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
|
68835
|
-
<symphiq-section-divider
|
|
68836
|
-
[viewMode]="viewMode()"
|
|
68837
|
-
[subsections]="sections()[idx + 1].subsections || []" />
|
|
68838
|
-
</div>
|
|
68839
|
-
}
|
|
68840
|
-
}
|
|
68841
|
-
}
|
|
68842
|
-
}
|
|
68843
|
-
</main>
|
|
68844
|
-
|
|
68845
|
-
@if (!isSimplifiedView()) {
|
|
68846
|
-
<symphiq-section-navigation
|
|
68847
|
-
[sections]="sections()"
|
|
68848
|
-
[viewMode]="viewMode()"
|
|
68849
|
-
[embedded]="embedded()"
|
|
68850
|
-
[scrollElement]="scrollElement() ?? undefined"
|
|
68851
|
-
/>
|
|
68852
|
-
}
|
|
68853
|
-
|
|
68854
|
-
@if (!isSimplifiedView()) {
|
|
68855
|
-
<symphiq-floating-toc
|
|
68856
|
-
[sections]="sections()"
|
|
68857
|
-
[viewMode]="viewMode()"
|
|
68858
|
-
[embedded]="embedded()"
|
|
68859
|
-
[scrollElement]="scrollElement() ?? undefined"
|
|
68860
|
-
/>
|
|
68861
|
-
}
|
|
68862
|
-
|
|
68863
|
-
<symphiq-floating-back-button
|
|
68864
|
-
[viewMode]="viewMode()"
|
|
68865
|
-
[embedded]="embedded()"
|
|
68866
|
-
/>
|
|
68867
|
-
</div>
|
|
68868
|
-
|
|
68869
|
-
<symphiq-tooltip-container />
|
|
68870
|
-
<symphiq-business-analysis-modal
|
|
68871
|
-
[isLightMode]="isLightMode()"
|
|
68872
|
-
(viewInContextRequested)="handleViewInContext($event)" />
|
|
68873
|
-
|
|
68874
|
-
<symphiq-search-modal
|
|
68875
|
-
[isLightMode]="isLightMode()"
|
|
68876
|
-
[isOpen]="searchService.isSearchOpen()"
|
|
68877
|
-
[searchQuery]="searchService.getSearchQuery()"
|
|
68878
|
-
[results]="searchService.searchResults()"
|
|
68879
|
-
[hasResults]="searchService.hasResults()"
|
|
68880
|
-
[selectedIndex]="selectedSearchIndex()"
|
|
68881
|
-
[placeholder]="'Search sections, items, and analysis...'"
|
|
68882
|
-
(searchChange)="onSearchChange($event)"
|
|
68883
|
-
(resultSelected)="onSearchResultSelected($event)"
|
|
68884
|
-
(close)="closeSearch()"
|
|
68885
|
-
/>
|
|
68886
|
-
|
|
68887
|
-
<symphiq-view-mode-switcher-modal
|
|
68888
|
-
[isOpen]="isViewModeSwitcherOpen()"
|
|
68889
|
-
[currentMode]="displayMode()"
|
|
68890
|
-
[viewMode]="viewMode()"
|
|
68891
|
-
[isLoading]="isViewModeSwitching()"
|
|
68892
|
-
(close)="closeViewModeSwitcher()"
|
|
68893
|
-
(modeSelected)="handleDisplayModeChange($event)"
|
|
68894
|
-
/>
|
|
68895
|
-
|
|
68896
|
-
<!-- Mark as Reviewed Sticky Footer -->
|
|
68897
|
-
<symphiq-mark-as-reviewed-footer
|
|
68898
|
-
[viewMode]="viewMode()"
|
|
68899
|
-
[reviewStatus]="profile()?.reviewStatus"
|
|
68900
|
-
[selfContentStatus]="profile()?.selfContentStatus"
|
|
68901
|
-
[isMarkingAsReviewed]="isMarkingAsReviewed()"
|
|
68902
|
-
(markAsReviewedClick)="handleMarkAsReviewedClick()"
|
|
68903
|
-
/>
|
|
68904
|
-
</div>
|
|
68905
|
-
`, 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"] }]
|
|
68906
|
-
}], () => [], { 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 }] }], isMarkingAsReviewed: [{ type: i0.Input, args: [{ isSignal: true, alias: "isMarkingAsReviewed", required: false }] }], stepClick: [{ type: i0.Output, args: ["stepClick"] }], nextStepClick: [{ type: i0.Output, args: ["nextStepClick"] }], markAsReviewedClick: [{ type: i0.Output, args: ["markAsReviewedClick"] }], onScroll: [{
|
|
68907
|
-
type: HostListener,
|
|
68908
|
-
args: ['window:scroll', ['$event']]
|
|
68909
|
-
}], handleKeyDown: [{
|
|
68910
|
-
type: HostListener,
|
|
68911
|
-
args: ['document:keydown', ['$event']]
|
|
68912
|
-
}] }); })();
|
|
68913
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqBusinessAnalysisDashboardComponent, { className: "SymphiqBusinessAnalysisDashboardComponent", filePath: "lib/components/business-analysis-dashboard/symphiq-business-analysis-dashboard.component.ts", lineNumber: 351 }); })();
|
|
68914
|
-
|
|
68915
|
-
function DashboardHeaderComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
68916
|
-
i0.ɵɵelement(0, "div", 6);
|
|
68917
|
-
} }
|
|
68918
|
-
function DashboardHeaderComponent_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
68919
|
-
const _r1 = i0.ɵɵgetCurrentView();
|
|
68920
|
-
i0.ɵɵelementStart(0, "div", 7)(1, "symphiq-search-button", 15);
|
|
68921
|
-
i0.ɵɵlistener("searchClick", function DashboardHeaderComponent_Conditional_11_Template_symphiq_search_button_searchClick_1_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onSearchClick()); });
|
|
68922
|
-
i0.ɵɵelementEnd();
|
|
68923
|
-
i0.ɵɵelementStart(2, "button", 16);
|
|
68924
|
-
i0.ɵɵlistener("click", function DashboardHeaderComponent_Conditional_11_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onViewModeClick()); });
|
|
68925
|
-
i0.ɵɵnamespaceSVG();
|
|
68926
|
-
i0.ɵɵelementStart(3, "svg", 17);
|
|
68927
|
-
i0.ɵɵelement(4, "path", 18)(5, "path", 19);
|
|
68928
|
-
i0.ɵɵelementEnd();
|
|
68929
|
-
i0.ɵɵnamespaceHTML();
|
|
68930
|
-
i0.ɵɵelementStart(6, "span");
|
|
68931
|
-
i0.ɵɵtext(7);
|
|
68932
|
-
i0.ɵɵelementEnd()()();
|
|
68933
|
-
} if (rf & 2) {
|
|
68934
|
-
const ctx_r1 = i0.ɵɵnextContext();
|
|
68935
|
-
i0.ɵɵadvance();
|
|
68936
|
-
i0.ɵɵproperty("isLightMode", ctx_r1.isLightMode());
|
|
68937
|
-
i0.ɵɵadvance();
|
|
68938
|
-
i0.ɵɵproperty("ngClass", ctx_r1.getViewModeButtonClasses());
|
|
68939
|
-
i0.ɵɵadvance(5);
|
|
68940
|
-
i0.ɵɵtextInterpolate(ctx_r1.viewModeLabel());
|
|
68941
|
-
} }
|
|
68942
|
-
function DashboardHeaderComponent_Conditional_12_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
68943
|
-
i0.ɵɵelementStart(0, "div", 20)(1, "div", 21);
|
|
68944
|
-
i0.ɵɵtext(2, "Generated At");
|
|
68945
|
-
i0.ɵɵelementEnd();
|
|
68946
|
-
i0.ɵɵelementStart(3, "div", 22);
|
|
68947
|
-
i0.ɵɵtext(4);
|
|
68948
|
-
i0.ɵɵelementEnd()();
|
|
68949
|
-
} if (rf & 2) {
|
|
68950
|
-
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
68951
|
-
i0.ɵɵadvance();
|
|
68952
|
-
i0.ɵɵclassMap(ctx_r1.metaLabelClass());
|
|
68953
|
-
i0.ɵɵadvance(2);
|
|
68954
|
-
i0.ɵɵclassMap(ctx_r1.headerTitleClass());
|
|
68955
|
-
i0.ɵɵadvance();
|
|
68956
|
-
i0.ɵɵtextInterpolate(ctx_r1.formattedGeneratedDate());
|
|
68957
|
-
} }
|
|
68958
|
-
function DashboardHeaderComponent_Conditional_12_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
68959
|
-
i0.ɵɵelementStart(0, "div", 20)(1, "div", 21);
|
|
68960
|
-
i0.ɵɵtext(2, "Requested by");
|
|
68961
|
-
i0.ɵɵelementEnd();
|
|
68962
|
-
i0.ɵɵelementStart(3, "div", 22);
|
|
68963
|
-
i0.ɵɵtext(4);
|
|
68964
|
-
i0.ɵɵelementEnd()();
|
|
68965
|
-
} if (rf & 2) {
|
|
68966
|
-
let tmp_4_0;
|
|
68967
|
-
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
68968
|
-
i0.ɵɵadvance();
|
|
68969
|
-
i0.ɵɵclassMap(ctx_r1.metaLabelClass());
|
|
68970
|
-
i0.ɵɵadvance(2);
|
|
68971
|
-
i0.ɵɵclassMap(ctx_r1.headerTitleClass());
|
|
68972
|
-
i0.ɵɵadvance();
|
|
68973
|
-
i0.ɵɵtextInterpolate2("", (tmp_4_0 = ctx_r1.requestedByUser()) == null ? null : tmp_4_0.firstName, " ", (tmp_4_0 = ctx_r1.requestedByUser()) == null ? null : tmp_4_0.lastName);
|
|
68974
|
-
} }
|
|
68975
|
-
function DashboardHeaderComponent_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
68976
|
-
i0.ɵɵelementStart(0, "div", 8);
|
|
68977
|
-
i0.ɵɵconditionalCreate(1, DashboardHeaderComponent_Conditional_12_Conditional_1_Template, 5, 5, "div", 20);
|
|
68978
|
-
i0.ɵɵconditionalCreate(2, DashboardHeaderComponent_Conditional_12_Conditional_2_Template, 5, 6, "div", 20);
|
|
68979
|
-
i0.ɵɵelementEnd();
|
|
68980
|
-
} if (rf & 2) {
|
|
68981
|
-
const ctx_r1 = i0.ɵɵnextContext();
|
|
68982
|
-
i0.ɵɵadvance();
|
|
68983
|
-
i0.ɵɵconditional(ctx_r1.formattedGeneratedDate() ? 1 : -1);
|
|
68984
|
-
i0.ɵɵadvance();
|
|
68985
|
-
i0.ɵɵconditional(ctx_r1.requestedByUser() ? 2 : -1);
|
|
68986
|
-
} }
|
|
68987
|
-
function DashboardHeaderComponent_Conditional_20_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
68988
|
-
i0.ɵɵelementStart(0, "span", 5);
|
|
68989
|
-
i0.ɵɵtext(1, "\u203A");
|
|
68990
|
-
i0.ɵɵelementEnd();
|
|
68991
|
-
i0.ɵɵelementStart(2, "span", 5);
|
|
68992
|
-
i0.ɵɵtext(3);
|
|
68993
|
-
i0.ɵɵelementEnd();
|
|
68994
|
-
} if (rf & 2) {
|
|
68995
|
-
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
68996
|
-
i0.ɵɵproperty("ngClass", ctx_r1.isLightMode() ? "text-slate-400" : "text-slate-500");
|
|
68997
|
-
i0.ɵɵadvance(2);
|
|
68998
|
-
i0.ɵɵproperty("ngClass", ctx_r1.isLightMode() ? "text-slate-500" : "text-slate-500");
|
|
68999
|
-
i0.ɵɵadvance();
|
|
69000
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r1.currentSubsection(), " ");
|
|
69001
|
-
} }
|
|
69002
|
-
function DashboardHeaderComponent_Conditional_20_Template(rf, ctx) { if (rf & 1) {
|
|
69003
|
-
i0.ɵɵelementStart(0, "div", 14)(1, "span", 5);
|
|
69004
|
-
i0.ɵɵtext(2);
|
|
69005
|
-
i0.ɵɵelementEnd();
|
|
69006
|
-
i0.ɵɵconditionalCreate(3, DashboardHeaderComponent_Conditional_20_Conditional_3_Template, 4, 3);
|
|
69007
|
-
i0.ɵɵelementEnd();
|
|
69008
|
-
} if (rf & 2) {
|
|
69009
|
-
const ctx_r1 = i0.ɵɵnextContext();
|
|
69010
|
-
i0.ɵɵadvance();
|
|
69011
|
-
i0.ɵɵproperty("ngClass", ctx_r1.isLightMode() ? "text-slate-600 font-medium" : "text-slate-400 font-medium");
|
|
69012
|
-
i0.ɵɵadvance();
|
|
69013
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r1.currentSection(), " ");
|
|
69014
|
-
i0.ɵɵadvance();
|
|
69015
|
-
i0.ɵɵconditional(ctx_r1.currentSubsection() ? 3 : -1);
|
|
69016
|
-
} }
|
|
69017
|
-
function DashboardHeaderComponent_Conditional_21_Template(rf, ctx) { if (rf & 1) {
|
|
69018
|
-
const _r3 = i0.ɵɵgetCurrentView();
|
|
69019
|
-
i0.ɵɵelementStart(0, "symphiq-search-button", 23);
|
|
69020
|
-
i0.ɵɵlistener("searchClick", function DashboardHeaderComponent_Conditional_21_Template_symphiq_search_button_searchClick_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onSearchClick()); });
|
|
69021
|
-
i0.ɵɵelementEnd();
|
|
69022
|
-
i0.ɵɵelementStart(1, "button", 24);
|
|
69023
|
-
i0.ɵɵlistener("click", function DashboardHeaderComponent_Conditional_21_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onViewModeClick()); });
|
|
69024
|
-
i0.ɵɵnamespaceSVG();
|
|
69025
|
-
i0.ɵɵelementStart(2, "svg", 17);
|
|
69026
|
-
i0.ɵɵelement(3, "path", 18)(4, "path", 19);
|
|
69027
|
-
i0.ɵɵelementEnd()();
|
|
69028
|
-
} if (rf & 2) {
|
|
69029
|
-
const ctx_r1 = i0.ɵɵnextContext();
|
|
69030
|
-
i0.ɵɵproperty("isLightMode", ctx_r1.isLightMode())("minimized", true);
|
|
69031
|
-
i0.ɵɵadvance();
|
|
69032
|
-
i0.ɵɵproperty("ngClass", ctx_r1.getViewModeButtonClasses());
|
|
69033
|
-
} }
|
|
69034
|
-
class DashboardHeaderComponent {
|
|
69035
|
-
constructor() {
|
|
69036
|
-
this.requestedByUser = input(...(ngDevMode ? [undefined, { debugName: "requestedByUser" }] : []));
|
|
69037
|
-
this.createdDate = input(...(ngDevMode ? [undefined, { debugName: "createdDate" }] : []));
|
|
69038
|
-
this.title = input('', ...(ngDevMode ? [{ debugName: "title" }] : []));
|
|
69039
|
-
this.subtitle = input('', ...(ngDevMode ? [{ debugName: "subtitle" }] : []));
|
|
69040
|
-
this.viewMode = input(ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "viewMode" }] : []));
|
|
69041
|
-
this.viewModeLabel = input('View Mode', ...(ngDevMode ? [{ debugName: "viewModeLabel" }] : []));
|
|
69042
|
-
this.currentSection = input(...(ngDevMode ? [undefined, { debugName: "currentSection" }] : []));
|
|
69043
|
-
this.currentSubsection = input(...(ngDevMode ? [undefined, { debugName: "currentSubsection" }] : []));
|
|
69044
|
-
this.isLoading = input(...(ngDevMode ? [undefined, { debugName: "isLoading" }] : []));
|
|
69045
|
-
this.showControls = input(true, ...(ngDevMode ? [{ debugName: "showControls" }] : []));
|
|
69046
|
-
this.searchClick = output();
|
|
69047
|
-
this.viewModeClick = output();
|
|
69048
|
-
this.headerScrollService = inject(HeaderScrollService);
|
|
69049
|
-
this.isLightMode = computed(() => this.viewMode() === ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "isLightMode" }] : []));
|
|
69050
|
-
this.dateFormatCache = new StringMemoizeCache();
|
|
69051
|
-
this.formattedGeneratedDate = computed(() => {
|
|
69052
|
-
let formatted = '';
|
|
69053
|
-
const createdDate = this.createdDate();
|
|
69054
|
-
if (createdDate) {
|
|
69055
|
-
formatted = this.formatDate(createdDate.toISOString());
|
|
68687
|
+
this.sectionUpdateTimeout = setTimeout(() => {
|
|
68688
|
+
// Double-check that we should still update (in case scroll changed rapidly)
|
|
68689
|
+
if (parentSectionTitle !== this.lastSectionTitle) {
|
|
68690
|
+
this.sectionTitleFading.set(true);
|
|
68691
|
+
setTimeout(() => {
|
|
68692
|
+
this.currentSectionTitle.set(parentSectionTitle);
|
|
68693
|
+
this.lastSectionTitle = parentSectionTitle;
|
|
68694
|
+
this.sectionTitleFading.set(false);
|
|
68695
|
+
}, 150);
|
|
68696
|
+
}
|
|
68697
|
+
}, 200); // Shorter debounce since we're now using proximity
|
|
68698
|
+
}
|
|
68699
|
+
if (subsectionChanged && this.lastSubsectionTitle !== '') {
|
|
68700
|
+
if (this.subsectionUpdateTimeout) {
|
|
68701
|
+
clearTimeout(this.subsectionUpdateTimeout);
|
|
68702
|
+
}
|
|
68703
|
+
this.subsectionUpdateTimeout = setTimeout(() => {
|
|
68704
|
+
// Double-check that we should still update
|
|
68705
|
+
if (subsectionTitle !== this.lastSubsectionTitle) {
|
|
68706
|
+
this.subsectionTitleFading.set(true);
|
|
68707
|
+
setTimeout(() => {
|
|
68708
|
+
this.currentSubsectionTitle.set(subsectionTitle);
|
|
68709
|
+
this.lastSubsectionTitle = subsectionTitle;
|
|
68710
|
+
this.subsectionTitleFading.set(false);
|
|
68711
|
+
}, 150);
|
|
68712
|
+
}
|
|
68713
|
+
}, 200); // Shorter debounce since we're now using proximity
|
|
68714
|
+
}
|
|
69056
68715
|
}
|
|
69057
|
-
|
|
69058
|
-
|
|
69059
|
-
|
|
69060
|
-
|
|
68716
|
+
}, {
|
|
68717
|
+
// Use more granular thresholds for better detection
|
|
68718
|
+
threshold: [0, 0.2, 0.4, 0.6, 0.8, 1],
|
|
68719
|
+
// Focus area starts right after the header
|
|
68720
|
+
rootMargin: '-100px 0px -50% 0px',
|
|
68721
|
+
});
|
|
68722
|
+
// Observe all subsections
|
|
68723
|
+
setTimeout(() => {
|
|
68724
|
+
const subsections = document.querySelectorAll('[data-subsection-id]');
|
|
68725
|
+
subsections.forEach((subsection) => this.subsectionObserver?.observe(subsection));
|
|
68726
|
+
}, 100);
|
|
68727
|
+
// Add event listener for scroll-to-target
|
|
68728
|
+
this.scrollToTargetHandler = (event) => {
|
|
68729
|
+
const customEvent = event;
|
|
68730
|
+
const targetId = customEvent.detail;
|
|
68731
|
+
if (targetId) {
|
|
68732
|
+
// Find the element with matching data-id
|
|
68733
|
+
const targetElement = document.querySelector(`[data-id="${targetId}"]`);
|
|
68734
|
+
if (targetElement) {
|
|
68735
|
+
// Scroll to the element with offset for header
|
|
68736
|
+
const yOffset = -120; // Account for sticky header
|
|
68737
|
+
const y = targetElement.getBoundingClientRect().top + window.pageYOffset + yOffset;
|
|
68738
|
+
window.scrollTo({ top: y, behavior: 'smooth' });
|
|
68739
|
+
// Click to expand if collapsed
|
|
68740
|
+
setTimeout(() => {
|
|
68741
|
+
targetElement.click();
|
|
68742
|
+
}, 400);
|
|
68743
|
+
// Add pulse animation to border
|
|
68744
|
+
targetElement.classList.add('animate-pulse-border');
|
|
68745
|
+
setTimeout(() => {
|
|
68746
|
+
targetElement.classList.remove('animate-pulse-border');
|
|
68747
|
+
}, 2000);
|
|
68748
|
+
}
|
|
68749
|
+
}
|
|
68750
|
+
};
|
|
68751
|
+
window.addEventListener('scroll-to-target', this.scrollToTargetHandler);
|
|
69061
68752
|
}
|
|
69062
|
-
|
|
69063
|
-
this.
|
|
68753
|
+
ngOnDestroy() {
|
|
68754
|
+
this.subsectionObserver?.disconnect();
|
|
68755
|
+
if (this.sectionUpdateTimeout) {
|
|
68756
|
+
clearTimeout(this.sectionUpdateTimeout);
|
|
68757
|
+
}
|
|
68758
|
+
if (this.subsectionUpdateTimeout) {
|
|
68759
|
+
clearTimeout(this.subsectionUpdateTimeout);
|
|
68760
|
+
}
|
|
68761
|
+
if (this.scrollToTargetHandler) {
|
|
68762
|
+
window.removeEventListener('scroll-to-target', this.scrollToTargetHandler);
|
|
68763
|
+
}
|
|
68764
|
+
if (this.scrollDirectionHandler) {
|
|
68765
|
+
window.removeEventListener('scroll', this.scrollDirectionHandler);
|
|
68766
|
+
}
|
|
69064
68767
|
}
|
|
69065
|
-
|
|
69066
|
-
this.
|
|
68768
|
+
getContainerClasses() {
|
|
68769
|
+
const positioning = this.embedded() ? '' : 'relative';
|
|
68770
|
+
return `${positioning} min-h-screen`.trim();
|
|
69067
68771
|
}
|
|
69068
|
-
|
|
69069
|
-
|
|
69070
|
-
return
|
|
69071
|
-
|
|
69072
|
-
|
|
69073
|
-
|
|
69074
|
-
|
|
68772
|
+
getBackgroundClasses() {
|
|
68773
|
+
const positioning = this.embedded() ? 'absolute' : 'fixed';
|
|
68774
|
+
return `${positioning} inset-0 overflow-hidden pointer-events-none`;
|
|
68775
|
+
}
|
|
68776
|
+
getMeshGradientClasses() {
|
|
68777
|
+
const isDark = this.viewMode() === ViewModeEnum.DARK;
|
|
68778
|
+
if (isDark) {
|
|
68779
|
+
return 'absolute inset-0 opacity-30 bg-gradient-to-br from-blue-900/20 via-purple-900/20 to-slate-900';
|
|
68780
|
+
}
|
|
68781
|
+
return 'absolute inset-0 opacity-30 bg-gradient-to-br from-blue-100/50 via-purple-100/50 to-slate-50';
|
|
68782
|
+
}
|
|
68783
|
+
getTopoPatternClasses() {
|
|
68784
|
+
const isDark = this.viewMode() === ViewModeEnum.DARK;
|
|
68785
|
+
return isDark ? 'absolute inset-0 opacity-5' : 'absolute inset-0 opacity-5 mix-blend-overlay';
|
|
68786
|
+
}
|
|
68787
|
+
getOrbClasses(index) {
|
|
68788
|
+
const isDark = this.viewMode() === ViewModeEnum.DARK;
|
|
68789
|
+
if (!isDark)
|
|
68790
|
+
return 'hidden';
|
|
68791
|
+
const positions = [
|
|
68792
|
+
'absolute top-0 left-1/4 w-96 h-96 bg-blue-500/10 rounded-full blur-3xl',
|
|
68793
|
+
'absolute top-1/3 right-1/4 w-[32rem] h-[32rem] bg-purple-500/10 rounded-full blur-3xl',
|
|
68794
|
+
'absolute bottom-0 left-1/3 w-[28rem] h-[28rem] bg-blue-400/10 rounded-full blur-3xl'
|
|
68795
|
+
];
|
|
68796
|
+
return positions[index - 1] || '';
|
|
69075
68797
|
}
|
|
69076
68798
|
getHeaderClasses() {
|
|
69077
|
-
|
|
69078
|
-
|
|
69079
|
-
: 'bg-slate-900/95 backdrop-blur-md shadow-sm border-b border-slate-800';
|
|
68799
|
+
const isDark = this.viewMode() === ViewModeEnum.DARK;
|
|
68800
|
+
return isDark ? 'relative backdrop-blur-sm bg-slate-900/50' : 'relative backdrop-blur-sm bg-white/50';
|
|
69080
68801
|
}
|
|
69081
68802
|
getMainTitleClasses() {
|
|
69082
|
-
|
|
69083
|
-
|
|
69084
|
-
|
|
68803
|
+
const isDark = this.viewMode() === ViewModeEnum.DARK;
|
|
68804
|
+
if (isDark) {
|
|
68805
|
+
return 'text-4xl sm:text-5xl font-bold bg-gradient-to-r from-blue-400 to-purple-400 bg-clip-text text-transparent';
|
|
68806
|
+
}
|
|
68807
|
+
return 'text-4xl sm:text-5xl font-bold bg-gradient-to-r from-blue-600 to-purple-600 bg-clip-text text-transparent';
|
|
69085
68808
|
}
|
|
69086
68809
|
getSubtitleClasses() {
|
|
69087
|
-
|
|
69088
|
-
|
|
69089
|
-
: 'text-slate-400 mt-1 text-sm';
|
|
68810
|
+
const isDark = this.viewMode() === ViewModeEnum.DARK;
|
|
68811
|
+
return isDark ? 'text-lg mt-2 text-slate-400' : 'text-lg mt-2 text-slate-600';
|
|
69090
68812
|
}
|
|
69091
|
-
|
|
69092
|
-
|
|
69093
|
-
|
|
69094
|
-
|
|
68813
|
+
getLoadingOverlayClasses() {
|
|
68814
|
+
const isDark = this.viewMode() === ViewModeEnum.DARK;
|
|
68815
|
+
if (isDark) {
|
|
68816
|
+
return 'fixed inset-0 z-50 flex items-center justify-center bg-slate-900/80 backdrop-blur-sm';
|
|
68817
|
+
}
|
|
68818
|
+
return 'fixed inset-0 z-50 flex items-center justify-center bg-white/80 backdrop-blur-sm';
|
|
69095
68819
|
}
|
|
69096
|
-
|
|
69097
|
-
|
|
69098
|
-
|
|
69099
|
-
|
|
68820
|
+
getSpinnerClasses() {
|
|
68821
|
+
const isDark = this.viewMode() === ViewModeEnum.DARK;
|
|
68822
|
+
if (isDark) {
|
|
68823
|
+
return 'w-16 h-16 border-4 rounded-full animate-spin border-slate-700 border-t-blue-400';
|
|
68824
|
+
}
|
|
68825
|
+
return 'w-16 h-16 border-4 rounded-full animate-spin border-slate-200 border-t-blue-600';
|
|
69100
68826
|
}
|
|
69101
|
-
|
|
69102
|
-
|
|
69103
|
-
|
|
69104
|
-
|
|
68827
|
+
trackBySectionId(index, section) {
|
|
68828
|
+
return section.id || index;
|
|
68829
|
+
}
|
|
68830
|
+
static { this.ɵfac = function SymphiqBusinessAnalysisDashboardComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SymphiqBusinessAnalysisDashboardComponent)(); }; }
|
|
68831
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SymphiqBusinessAnalysisDashboardComponent, selectors: [["symphiq-business-analysis-dashboard"]], hostBindings: function SymphiqBusinessAnalysisDashboardComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
68832
|
+
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);
|
|
68833
|
+
} }, 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"], isMarkingAsReviewed: [1, "isMarkingAsReviewed"] }, outputs: { stepClick: "stepClick", nextStepClick: "nextStepClick", markAsReviewedClick: "markAsReviewedClick" }, decls: 18, vars: 40, 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]"], [3, "searchClick", "viewModeClick", "title", "subtitle", "viewMode", "viewModeLabel", "currentSection", "currentSubsection", "sectionFading", "subsectionFading", "showControls"], [1, "relative"], [1, "flex", "items-center", "justify-center", "min-h-[60vh]"], [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, "markAsReviewedClick", "viewMode", "reviewStatus", "selfContentStatus", "isMarkingAsReviewed"], ["size", "large", 3, "viewMode"], [3, "viewMode", "currentStepId", "showNextStepAction", "forDemo", "maxAccessibleStepId"], [3, "viewMode", "itemStatus", "currentStatus", "confettiIntensity", "title", "subtitle"], [3, "stepClick", "nextStepClick", "viewMode", "currentStepId", "showNextStepAction", "forDemo", "maxAccessibleStepId"], [1, "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-8"], [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) {
|
|
68834
|
+
i0.ɵɵelementStart(0, "div", 0)(1, "div");
|
|
68835
|
+
i0.ɵɵelement(2, "div", 1);
|
|
69105
68836
|
i0.ɵɵelementEnd();
|
|
69106
|
-
i0.ɵɵ
|
|
68837
|
+
i0.ɵɵelement(3, "div", 2);
|
|
68838
|
+
i0.ɵɵelementStart(4, "div", 3)(5, "symphiq-dashboard-header", 4);
|
|
68839
|
+
i0.ɵɵlistener("searchClick", function SymphiqBusinessAnalysisDashboardComponent_Template_symphiq_dashboard_header_searchClick_5_listener() { return ctx.openSearch(); })("viewModeClick", function SymphiqBusinessAnalysisDashboardComponent_Template_symphiq_dashboard_header_viewModeClick_5_listener() { return ctx.openViewModeSwitcher(); });
|
|
69107
68840
|
i0.ɵɵelementEnd();
|
|
69108
|
-
i0.ɵɵelementStart(
|
|
69109
|
-
i0.ɵɵ
|
|
69110
|
-
i0.ɵɵelementEnd()
|
|
69111
|
-
i0.ɵɵconditionalCreate(
|
|
69112
|
-
i0.ɵɵconditionalCreate(
|
|
69113
|
-
i0.ɵɵ
|
|
69114
|
-
i0.ɵɵ
|
|
69115
|
-
i0.ɵɵ
|
|
68841
|
+
i0.ɵɵelementStart(6, "main", 5);
|
|
68842
|
+
i0.ɵɵconditionalCreate(7, SymphiqBusinessAnalysisDashboardComponent_Conditional_7_Template, 2, 1, "div", 6)(8, SymphiqBusinessAnalysisDashboardComponent_Conditional_8_Template, 2, 7)(9, SymphiqBusinessAnalysisDashboardComponent_Conditional_9_Template, 2, 1);
|
|
68843
|
+
i0.ɵɵelementEnd();
|
|
68844
|
+
i0.ɵɵconditionalCreate(10, SymphiqBusinessAnalysisDashboardComponent_Conditional_10_Template, 1, 4, "symphiq-section-navigation", 7);
|
|
68845
|
+
i0.ɵɵconditionalCreate(11, SymphiqBusinessAnalysisDashboardComponent_Conditional_11_Template, 1, 4, "symphiq-floating-toc", 7);
|
|
68846
|
+
i0.ɵɵelement(12, "symphiq-floating-back-button", 8);
|
|
68847
|
+
i0.ɵɵelementEnd();
|
|
68848
|
+
i0.ɵɵelement(13, "symphiq-tooltip-container");
|
|
68849
|
+
i0.ɵɵelementStart(14, "symphiq-business-analysis-modal", 9);
|
|
68850
|
+
i0.ɵɵlistener("viewInContextRequested", function SymphiqBusinessAnalysisDashboardComponent_Template_symphiq_business_analysis_modal_viewInContextRequested_14_listener($event) { return ctx.handleViewInContext($event); });
|
|
68851
|
+
i0.ɵɵelementEnd();
|
|
68852
|
+
i0.ɵɵelementStart(15, "symphiq-search-modal", 10);
|
|
68853
|
+
i0.ɵɵlistener("searchChange", function SymphiqBusinessAnalysisDashboardComponent_Template_symphiq_search_modal_searchChange_15_listener($event) { return ctx.onSearchChange($event); })("resultSelected", function SymphiqBusinessAnalysisDashboardComponent_Template_symphiq_search_modal_resultSelected_15_listener($event) { return ctx.onSearchResultSelected($event); })("close", function SymphiqBusinessAnalysisDashboardComponent_Template_symphiq_search_modal_close_15_listener() { return ctx.closeSearch(); });
|
|
68854
|
+
i0.ɵɵelementEnd();
|
|
68855
|
+
i0.ɵɵelementStart(16, "symphiq-view-mode-switcher-modal", 11);
|
|
68856
|
+
i0.ɵɵlistener("close", function SymphiqBusinessAnalysisDashboardComponent_Template_symphiq_view_mode_switcher_modal_close_16_listener() { return ctx.closeViewModeSwitcher(); })("modeSelected", function SymphiqBusinessAnalysisDashboardComponent_Template_symphiq_view_mode_switcher_modal_modeSelected_16_listener($event) { return ctx.handleDisplayModeChange($event); });
|
|
68857
|
+
i0.ɵɵelementEnd();
|
|
68858
|
+
i0.ɵɵelementStart(17, "symphiq-mark-as-reviewed-footer", 12);
|
|
68859
|
+
i0.ɵɵlistener("markAsReviewedClick", function SymphiqBusinessAnalysisDashboardComponent_Template_symphiq_mark_as_reviewed_footer_markAsReviewedClick_17_listener() { return ctx.handleMarkAsReviewedClick(); });
|
|
69116
68860
|
i0.ɵɵelementEnd()();
|
|
69117
|
-
i0.ɵɵelementStart(19, "div", 13);
|
|
69118
|
-
i0.ɵɵconditionalCreate(20, DashboardHeaderComponent_Conditional_20_Template, 4, 3, "div", 14);
|
|
69119
|
-
i0.ɵɵconditionalCreate(21, DashboardHeaderComponent_Conditional_21_Template, 5, 3);
|
|
69120
|
-
i0.ɵɵelementEnd()()()()();
|
|
69121
68861
|
} if (rf & 2) {
|
|
69122
|
-
|
|
69123
|
-
|
|
69124
|
-
|
|
69125
|
-
|
|
69126
|
-
i0.ɵɵ
|
|
69127
|
-
i0.ɵɵproperty("ngClass", ctx.getMainTitleClasses());
|
|
69128
|
-
i0.ɵɵadvance();
|
|
69129
|
-
i0.ɵɵtextInterpolate1(" ", ctx.title(), " ");
|
|
68862
|
+
let tmp_5_0;
|
|
68863
|
+
let tmp_13_0;
|
|
68864
|
+
let tmp_33_0;
|
|
68865
|
+
let tmp_34_0;
|
|
68866
|
+
i0.ɵɵproperty("ngClass", ctx.getContainerClasses());
|
|
69130
68867
|
i0.ɵɵadvance();
|
|
69131
|
-
i0.ɵɵ
|
|
68868
|
+
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");
|
|
69132
68869
|
i0.ɵɵadvance();
|
|
69133
|
-
i0.ɵɵ
|
|
68870
|
+
i0.ɵɵstyleProp("width", ctx.scrollProgress(), "%");
|
|
68871
|
+
i0.ɵɵproperty("ngClass", ctx.isLightMode() ? "bg-gradient-to-r from-blue-500 to-purple-500" : "bg-gradient-to-r from-blue-400 to-purple-400");
|
|
69134
68872
|
i0.ɵɵadvance();
|
|
69135
|
-
i0.ɵɵ
|
|
68873
|
+
i0.ɵɵclassProp("light-mode", ctx.isLightMode());
|
|
68874
|
+
i0.ɵɵadvance(2);
|
|
68875
|
+
i0.ɵɵproperty("title", ((tmp_5_0 = ctx.currentProfile()) == null ? null : tmp_5_0.profileStructured == null ? null : tmp_5_0.profileStructured.businessName) || "Business Analysis")("subtitle", "Business Profile & Analysis")("viewMode", ctx.viewMode())("viewModeLabel", ctx.displayModeLabel())("currentSection", ctx.isSimplifiedView() ? undefined : ctx.currentSectionTitle())("currentSubsection", ctx.isSimplifiedView() ? undefined : ctx.currentSubsectionTitle())("sectionFading", ctx.sectionTitleFading())("subsectionFading", ctx.subsectionTitleFading())("showControls", ((tmp_13_0 = ctx.profile()) == null ? null : tmp_13_0.selfContentStatus) === ctx.AiDynamicContentStatusEnum.GENERATED);
|
|
69136
68876
|
i0.ɵɵadvance();
|
|
69137
|
-
i0.ɵɵ
|
|
68877
|
+
i0.ɵɵclassProp("pb-32", ctx.shouldShowReviewFooter());
|
|
69138
68878
|
i0.ɵɵadvance();
|
|
69139
|
-
i0.ɵɵconditional(ctx.
|
|
68879
|
+
i0.ɵɵconditional(ctx.isLoading() ? 7 : ctx.isContentGenerating() ? 8 : 9);
|
|
68880
|
+
i0.ɵɵadvance(3);
|
|
68881
|
+
i0.ɵɵconditional(!ctx.isSimplifiedView() ? 10 : -1);
|
|
69140
68882
|
i0.ɵɵadvance();
|
|
69141
|
-
i0.ɵɵ
|
|
69142
|
-
i0.ɵɵadvance(4);
|
|
69143
|
-
i0.ɵɵproperty("ngClass", ctx.getCondensedTitleClasses());
|
|
68883
|
+
i0.ɵɵconditional(!ctx.isSimplifiedView() ? 11 : -1);
|
|
69144
68884
|
i0.ɵɵadvance();
|
|
69145
|
-
i0.ɵɵ
|
|
68885
|
+
i0.ɵɵproperty("viewMode", ctx.viewMode())("embedded", ctx.embedded());
|
|
69146
68886
|
i0.ɵɵadvance(2);
|
|
69147
|
-
i0.ɵɵ
|
|
68887
|
+
i0.ɵɵproperty("isLightMode", ctx.isLightMode());
|
|
69148
68888
|
i0.ɵɵadvance();
|
|
69149
|
-
i0.ɵɵ
|
|
69150
|
-
|
|
69151
|
-
|
|
69152
|
-
(
|
|
69153
|
-
|
|
69154
|
-
|
|
69155
|
-
|
|
69156
|
-
|
|
69157
|
-
|
|
69158
|
-
|
|
69159
|
-
|
|
69160
|
-
|
|
69161
|
-
|
|
69162
|
-
<div
|
|
69163
|
-
|
|
69164
|
-
[
|
|
69165
|
-
|
|
69166
|
-
|
|
69167
|
-
|
|
69168
|
-
|
|
69169
|
-
|
|
69170
|
-
|
|
69171
|
-
|
|
69172
|
-
|
|
69173
|
-
|
|
69174
|
-
|
|
69175
|
-
|
|
69176
|
-
|
|
69177
|
-
|
|
69178
|
-
|
|
69179
|
-
|
|
69180
|
-
|
|
69181
|
-
|
|
68889
|
+
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...");
|
|
68890
|
+
i0.ɵɵadvance();
|
|
68891
|
+
i0.ɵɵproperty("isOpen", ctx.isViewModeSwitcherOpen())("currentMode", ctx.displayMode())("viewMode", ctx.viewMode())("isLoading", ctx.isViewModeSwitching());
|
|
68892
|
+
i0.ɵɵadvance();
|
|
68893
|
+
i0.ɵɵproperty("viewMode", ctx.viewMode())("reviewStatus", (tmp_33_0 = ctx.profile()) == null ? null : tmp_33_0.reviewStatus)("selfContentStatus", (tmp_34_0 = ctx.profile()) == null ? null : tmp_34_0.selfContentStatus)("isMarkingAsReviewed", ctx.isMarkingAsReviewed());
|
|
68894
|
+
} }, dependencies: [CommonModule, i1$1.NgClass, ProfileSectionComponent, SectionNavigationComponent, FloatingTocComponent, FloatingBackButtonComponent, TooltipContainerComponent, SectionDividerComponent, BusinessAnalysisModalComponent, SearchModalComponent, ViewModeSwitcherModalComponent, JourneyProgressIndicatorComponent, WelcomeBannerComponent, RecommendationsTiledGridComponent, CollapsibleSectionGroupComponent, ContentGenerationProgressWithConfettiComponent, IndeterminateSpinnerComponent, MarkAsReviewedFooterComponent, DashboardHeaderComponent], 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 }); }
|
|
68895
|
+
}
|
|
68896
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SymphiqBusinessAnalysisDashboardComponent, [{
|
|
68897
|
+
type: Component,
|
|
68898
|
+
args: [{ selector: 'symphiq-business-analysis-dashboard', standalone: true, imports: [CommonModule, ProfileSectionComponent, SectionNavigationComponent, FloatingTocComponent, FloatingBackButtonComponent, TooltipContainerComponent, SectionDividerComponent, BusinessAnalysisModalComponent, SearchModalComponent, ViewModeSwitcherModalComponent, JourneyProgressIndicatorComponent, WelcomeBannerComponent, RecommendationsTiledGridComponent, CollapsibleSectionGroupComponent, ContentGenerationProgressWithConfettiComponent, IndeterminateSpinnerComponent, MarkAsReviewedFooterComponent, DashboardHeaderComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: `
|
|
68899
|
+
<div [ngClass]="getContainerClasses()">
|
|
68900
|
+
<!-- Scroll Progress Bar (fixed at top) -->
|
|
68901
|
+
<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'">
|
|
68902
|
+
<div
|
|
68903
|
+
[style.width.%]="scrollProgress()"
|
|
68904
|
+
[ngClass]="isLightMode() ? 'bg-gradient-to-r from-blue-500 to-purple-500' : 'bg-gradient-to-r from-blue-400 to-purple-400'"
|
|
68905
|
+
class="h-full transition-all duration-200 ease-out">
|
|
68906
|
+
</div>
|
|
68907
|
+
</div>
|
|
68908
|
+
|
|
68909
|
+
<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>
|
|
68910
|
+
|
|
68911
|
+
<div class="relative z-[51]">
|
|
68912
|
+
<symphiq-dashboard-header
|
|
68913
|
+
[title]="currentProfile()?.profileStructured?.businessName || 'Business Analysis'"
|
|
68914
|
+
[subtitle]="'Business Profile & Analysis'"
|
|
68915
|
+
[viewMode]="viewMode()"
|
|
68916
|
+
[viewModeLabel]="displayModeLabel()"
|
|
68917
|
+
[currentSection]="isSimplifiedView() ? undefined : currentSectionTitle()"
|
|
68918
|
+
[currentSubsection]="isSimplifiedView() ? undefined : currentSubsectionTitle()"
|
|
68919
|
+
[sectionFading]="sectionTitleFading()"
|
|
68920
|
+
[subsectionFading]="subsectionTitleFading()"
|
|
68921
|
+
[showControls]="profile()?.selfContentStatus === AiDynamicContentStatusEnum.GENERATED"
|
|
68922
|
+
(searchClick)="openSearch()"
|
|
68923
|
+
(viewModeClick)="openViewModeSwitcher()"
|
|
68924
|
+
/>
|
|
68925
|
+
|
|
68926
|
+
<main class="relative" [class.pb-32]="shouldShowReviewFooter()">
|
|
68927
|
+
@if (isLoading()) {
|
|
68928
|
+
<!-- Pure Loading State -->
|
|
68929
|
+
<div class="flex items-center justify-center min-h-[60vh]">
|
|
68930
|
+
<symphiq-indeterminate-spinner
|
|
68931
|
+
[viewMode]="viewMode()"
|
|
68932
|
+
size="large"
|
|
68933
|
+
/>
|
|
69182
68934
|
</div>
|
|
69183
|
-
|
|
69184
|
-
|
|
69185
|
-
|
|
69186
|
-
|
|
69187
|
-
|
|
68935
|
+
} @else if (isContentGenerating()) {
|
|
68936
|
+
<!-- Journey Progress Banner (always show when not onboarded) -->
|
|
68937
|
+
@if (!isOnboarded()) {
|
|
68938
|
+
<symphiq-journey-progress-indicator
|
|
68939
|
+
[viewMode]="viewMode()"
|
|
68940
|
+
[currentStepId]="JourneyStepIdEnum.BUSINESS_ANALYSIS"
|
|
68941
|
+
[showNextStepAction]="false"
|
|
68942
|
+
[forDemo]="forDemo()"
|
|
68943
|
+
[maxAccessibleStepId]="maxAccessibleStepId()"
|
|
68944
|
+
(stepClick)="stepClick.emit($event)"
|
|
68945
|
+
(nextStepClick)="nextStepClick.emit()"
|
|
68946
|
+
/>
|
|
68947
|
+
}
|
|
68948
|
+
|
|
68949
|
+
<!-- Content Generation Progress Component -->
|
|
68950
|
+
<symphiq-content-generation-progress-with-confetti
|
|
68951
|
+
[viewMode]="viewMode()"
|
|
68952
|
+
[itemStatus]="itemStatus()"
|
|
68953
|
+
[currentStatus]="profile()?.selfContentStatus"
|
|
68954
|
+
[confettiIntensity]="'celebration'"
|
|
68955
|
+
[title]="'We are generating a new Business Analysis for ' + (currentProfile()?.profileStructured?.businessName || 'your business') + '.'"
|
|
68956
|
+
[subtitle]="'It will appear here when ready. You can check back later as this will take a few minutes to complete.'"
|
|
68957
|
+
/>
|
|
68958
|
+
} @else {
|
|
68959
|
+
@if (isSimplifiedView()) {
|
|
68960
|
+
<!-- Journey Progress Banner - Full Width Sticky (only show when not onboarded) -->
|
|
68961
|
+
@if (!isOnboarded()) {
|
|
68962
|
+
<symphiq-journey-progress-indicator
|
|
68963
|
+
[viewMode]="viewMode()"
|
|
68964
|
+
[currentStepId]="JourneyStepIdEnum.BUSINESS_ANALYSIS"
|
|
68965
|
+
[showNextStepAction]="showNextStepAction()"
|
|
68966
|
+
[forDemo]="forDemo()"
|
|
68967
|
+
[maxAccessibleStepId]="maxAccessibleStepId()"
|
|
68968
|
+
(stepClick)="stepClick.emit($event)"
|
|
68969
|
+
(nextStepClick)="nextStepClick.emit()"
|
|
69188
68970
|
/>
|
|
69189
|
-
|
|
69190
|
-
|
|
69191
|
-
|
|
69192
|
-
|
|
69193
|
-
|
|
69194
|
-
|
|
69195
|
-
|
|
69196
|
-
|
|
69197
|
-
|
|
69198
|
-
|
|
69199
|
-
|
|
68971
|
+
}
|
|
68972
|
+
|
|
68973
|
+
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8">
|
|
68974
|
+
<div class="mb-8">
|
|
68975
|
+
<symphiq-welcome-banner
|
|
68976
|
+
[viewMode]="viewMode()"
|
|
68977
|
+
[businessName]="currentProfile()?.profileStructured?.businessName || 'your business'"
|
|
68978
|
+
[isOnboarded]="isOnboarded()"
|
|
68979
|
+
/>
|
|
68980
|
+
</div>
|
|
68981
|
+
|
|
68982
|
+
<div class="mb-8">
|
|
68983
|
+
<symphiq-recommendations-tiled-grid
|
|
68984
|
+
[recommendations]="recommendationItems()"
|
|
68985
|
+
[viewMode]="viewMode()"
|
|
68986
|
+
(viewMoreClick)="openRecommendationDetailsModal($event)"
|
|
68987
|
+
/>
|
|
68988
|
+
</div>
|
|
68989
|
+
|
|
68990
|
+
<div>
|
|
68991
|
+
<symphiq-collapsible-section-group
|
|
68992
|
+
[sections]="nonRecommendationSections()"
|
|
68993
|
+
[viewMode]="viewMode()"
|
|
68994
|
+
/>
|
|
68995
|
+
</div>
|
|
69200
68996
|
</div>
|
|
69201
|
-
}
|
|
69202
|
-
|
|
69203
|
-
|
|
69204
|
-
|
|
69205
|
-
|
|
69206
|
-
|
|
69207
|
-
|
|
69208
|
-
|
|
69209
|
-
|
|
69210
|
-
|
|
69211
|
-
|
|
69212
|
-
|
|
69213
|
-
<div [class]="headerTitleClass()" class="text-sm sm:text-base font-medium">{{ requestedByUser()?.firstName }} {{ requestedByUser()?.lastName }}</div>
|
|
68997
|
+
} @else {
|
|
68998
|
+
@for (section of sections(); track trackBySectionId($index, section); let idx = $index; let last = $last) {
|
|
68999
|
+
<symphiq-profile-section
|
|
69000
|
+
[section]="section"
|
|
69001
|
+
[viewMode]="viewMode()"
|
|
69002
|
+
[forceExpanded]="!isCompactView()"
|
|
69003
|
+
/>
|
|
69004
|
+
@if (!last) {
|
|
69005
|
+
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
|
69006
|
+
<symphiq-section-divider
|
|
69007
|
+
[viewMode]="viewMode()"
|
|
69008
|
+
[subsections]="sections()[idx + 1].subsections || []" />
|
|
69214
69009
|
</div>
|
|
69215
69010
|
}
|
|
69216
|
-
|
|
69011
|
+
}
|
|
69217
69012
|
}
|
|
69218
|
-
|
|
69219
|
-
|
|
69220
|
-
</div>
|
|
69013
|
+
}
|
|
69014
|
+
</main>
|
|
69221
69015
|
|
|
69222
|
-
|
|
69223
|
-
|
|
69224
|
-
|
|
69225
|
-
|
|
69226
|
-
|
|
69227
|
-
|
|
69228
|
-
|
|
69229
|
-
|
|
69230
|
-
|
|
69231
|
-
|
|
69232
|
-
|
|
69233
|
-
|
|
69234
|
-
|
|
69235
|
-
|
|
69236
|
-
|
|
69237
|
-
|
|
69238
|
-
|
|
69239
|
-
|
|
69240
|
-
|
|
69241
|
-
|
|
69242
|
-
|
|
69243
|
-
|
|
69244
|
-
|
|
69245
|
-
|
|
69246
|
-
|
|
69247
|
-
|
|
69248
|
-
|
|
69249
|
-
|
|
69250
|
-
|
|
69251
|
-
|
|
69252
|
-
|
|
69253
|
-
|
|
69254
|
-
|
|
69255
|
-
|
|
69256
|
-
|
|
69257
|
-
|
|
69258
|
-
|
|
69259
|
-
|
|
69260
|
-
|
|
69261
|
-
|
|
69262
|
-
|
|
69263
|
-
|
|
69264
|
-
|
|
69265
|
-
|
|
69266
|
-
|
|
69267
|
-
|
|
69268
|
-
|
|
69269
|
-
|
|
69270
|
-
|
|
69271
|
-
|
|
69272
|
-
|
|
69273
|
-
|
|
69274
|
-
|
|
69275
|
-
(
|
|
69016
|
+
@if (!isSimplifiedView()) {
|
|
69017
|
+
<symphiq-section-navigation
|
|
69018
|
+
[sections]="sections()"
|
|
69019
|
+
[viewMode]="viewMode()"
|
|
69020
|
+
[embedded]="embedded()"
|
|
69021
|
+
[scrollElement]="scrollElement() ?? undefined"
|
|
69022
|
+
/>
|
|
69023
|
+
}
|
|
69024
|
+
|
|
69025
|
+
@if (!isSimplifiedView()) {
|
|
69026
|
+
<symphiq-floating-toc
|
|
69027
|
+
[sections]="sections()"
|
|
69028
|
+
[viewMode]="viewMode()"
|
|
69029
|
+
[embedded]="embedded()"
|
|
69030
|
+
[scrollElement]="scrollElement() ?? undefined"
|
|
69031
|
+
/>
|
|
69032
|
+
}
|
|
69033
|
+
|
|
69034
|
+
<symphiq-floating-back-button
|
|
69035
|
+
[viewMode]="viewMode()"
|
|
69036
|
+
[embedded]="embedded()"
|
|
69037
|
+
/>
|
|
69038
|
+
</div>
|
|
69039
|
+
|
|
69040
|
+
<symphiq-tooltip-container />
|
|
69041
|
+
<symphiq-business-analysis-modal
|
|
69042
|
+
[isLightMode]="isLightMode()"
|
|
69043
|
+
(viewInContextRequested)="handleViewInContext($event)" />
|
|
69044
|
+
|
|
69045
|
+
<symphiq-search-modal
|
|
69046
|
+
[isLightMode]="isLightMode()"
|
|
69047
|
+
[isOpen]="searchService.isSearchOpen()"
|
|
69048
|
+
[searchQuery]="searchService.getSearchQuery()"
|
|
69049
|
+
[results]="searchService.searchResults()"
|
|
69050
|
+
[hasResults]="searchService.hasResults()"
|
|
69051
|
+
[selectedIndex]="selectedSearchIndex()"
|
|
69052
|
+
[placeholder]="'Search sections, items, and analysis...'"
|
|
69053
|
+
(searchChange)="onSearchChange($event)"
|
|
69054
|
+
(resultSelected)="onSearchResultSelected($event)"
|
|
69055
|
+
(close)="closeSearch()"
|
|
69056
|
+
/>
|
|
69057
|
+
|
|
69058
|
+
<symphiq-view-mode-switcher-modal
|
|
69059
|
+
[isOpen]="isViewModeSwitcherOpen()"
|
|
69060
|
+
[currentMode]="displayMode()"
|
|
69061
|
+
[viewMode]="viewMode()"
|
|
69062
|
+
[isLoading]="isViewModeSwitching()"
|
|
69063
|
+
(close)="closeViewModeSwitcher()"
|
|
69064
|
+
(modeSelected)="handleDisplayModeChange($event)"
|
|
69065
|
+
/>
|
|
69066
|
+
|
|
69067
|
+
<!-- Mark as Reviewed Sticky Footer -->
|
|
69068
|
+
<symphiq-mark-as-reviewed-footer
|
|
69069
|
+
[viewMode]="viewMode()"
|
|
69070
|
+
[reviewStatus]="profile()?.reviewStatus"
|
|
69071
|
+
[selfContentStatus]="profile()?.selfContentStatus"
|
|
69072
|
+
[isMarkingAsReviewed]="isMarkingAsReviewed()"
|
|
69073
|
+
(markAsReviewedClick)="handleMarkAsReviewedClick()"
|
|
69074
|
+
/>
|
|
69075
|
+
</div>
|
|
69076
|
+
`, 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"] }]
|
|
69077
|
+
}], () => [], { 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 }] }], isMarkingAsReviewed: [{ type: i0.Input, args: [{ isSignal: true, alias: "isMarkingAsReviewed", required: false }] }], stepClick: [{ type: i0.Output, args: ["stepClick"] }], nextStepClick: [{ type: i0.Output, args: ["nextStepClick"] }], markAsReviewedClick: [{ type: i0.Output, args: ["markAsReviewedClick"] }], onScroll: [{
|
|
69078
|
+
type: HostListener,
|
|
69079
|
+
args: ['window:scroll', ['$event']]
|
|
69080
|
+
}], handleKeyDown: [{
|
|
69081
|
+
type: HostListener,
|
|
69082
|
+
args: ['document:keydown', ['$event']]
|
|
69083
|
+
}] }); })();
|
|
69084
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqBusinessAnalysisDashboardComponent, { className: "SymphiqBusinessAnalysisDashboardComponent", filePath: "lib/components/business-analysis-dashboard/symphiq-business-analysis-dashboard.component.ts", lineNumber: 267 }); })();
|
|
69276
69085
|
|
|
69277
69086
|
class GradeBadgeComponent {
|
|
69278
69087
|
constructor() {
|