@eric-emg/symphiq-components 1.2.151 → 1.2.153

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.
@@ -1,4 +1,4 @@
1
- import { ViewModeEnum, MetricStatusEnum, TrendDirectionEnum, CompetitiveScoreEnum, ChartTypeEnum, IconSourceEnum, ProfileAnalysisRecommendationPriorityEnum, ProfileItemTypeEnum, PriceVsCompetitorsEnum, DifferentiationStrengthEnum, ThreatLevelEnum, normalizeToV3, MetricEnum, AiDynamicContentStatusEnum, FocusAreaDomainEnum, FocusAreaHealthEnum, ProfileAnalysisPriorityEnum, CapabilityStateEnum, QuadrantEnum, AdvantageEnum, OverallGradeEnum, OperationalMaturityEnum, ProfileAnalysisEffortLevelEnum, ProfileAnalysisImpactLevelEnum, FocusAreaDomainEnumUtil, ProfileAnalysisTypeEnum, LineChartUseCaseEnum, BarChartUseCaseEnum } from '@jebgem/model';
1
+ import { ViewModeEnum, MetricStatusEnum, TrendDirectionEnum, CompetitiveScoreEnum, ChartTypeEnum, IconSourceEnum, ProfileAnalysisRecommendationPriorityEnum, ProfileItemTypeEnum, PriceVsCompetitorsEnum, DifferentiationStrengthEnum, ThreatLevelEnum, normalizeToV3, MetricEnum, FocusAreaDetailStatusEnum, FocusAreaDomainEnumUtil, FocusAreaDomainEnum, AiDynamicContentStatusEnum, FocusAreaHealthEnum, ProfileAnalysisPriorityEnum, CapabilityStateEnum, QuadrantEnum, AdvantageEnum, OverallGradeEnum, OperationalMaturityEnum, ProfileAnalysisEffortLevelEnum, ProfileAnalysisImpactLevelEnum, ProfileAnalysisTypeEnum, LineChartUseCaseEnum, BarChartUseCaseEnum } from '@jebgem/model';
2
2
  export * from '@jebgem/model';
3
3
  import * as i0 from '@angular/core';
4
4
  import { Injectable, signal, computed, input, ChangeDetectionStrategy, Component, output, inject, ElementRef, Renderer2, effect, Directive, HostListener, untracked, ViewChild, PLATFORM_ID, Inject, Input } from '@angular/core';
@@ -3092,7 +3092,7 @@ class CompetitiveScoreService {
3092
3092
  }]
3093
3093
  }], null, null); })();
3094
3094
 
3095
- const _forTrack0$M = ($index, $item) => $item.category;
3095
+ const _forTrack0$N = ($index, $item) => $item.category;
3096
3096
  function CompetitivePositioningSummaryComponent_Conditional_1_For_47_Conditional_12_Template(rf, ctx) { if (rf & 1) {
3097
3097
  i0.ɵɵelementStart(0, "div", 15);
3098
3098
  i0.ɵɵelement(1, "div", 37);
@@ -3251,7 +3251,7 @@ function CompetitivePositioningSummaryComponent_Conditional_1_Template(rf, ctx)
3251
3251
  i0.ɵɵelementEnd()();
3252
3252
  i0.ɵɵnamespaceHTML();
3253
3253
  i0.ɵɵelementStart(43, "div", 24)(44, "div", 25)(45, "div", 26);
3254
- i0.ɵɵrepeaterCreate(46, CompetitivePositioningSummaryComponent_Conditional_1_For_47_Template, 15, 12, "div", 27, _forTrack0$M);
3254
+ i0.ɵɵrepeaterCreate(46, CompetitivePositioningSummaryComponent_Conditional_1_For_47_Template, 15, 12, "div", 27, _forTrack0$N);
3255
3255
  i0.ɵɵelementEnd()()()();
3256
3256
  i0.ɵɵelementStart(48, "div", 28)(49, "button", 29);
3257
3257
  i0.ɵɵlistener("click", function CompetitivePositioningSummaryComponent_Conditional_1_Template_button_click_49_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.scrollToCompetitive.emit()); });
@@ -3460,7 +3460,7 @@ function CompetitivePositioningSummaryComponent_Conditional_2_Template(rf, ctx)
3460
3460
  i0.ɵɵelementStart(32, "div", 50)(33, "h4", 51);
3461
3461
  i0.ɵɵtext(34, "By Funnel Stage");
3462
3462
  i0.ɵɵelementEnd();
3463
- i0.ɵɵrepeaterCreate(35, CompetitivePositioningSummaryComponent_Conditional_2_For_36_Template, 12, 11, "div", 52, _forTrack0$M);
3463
+ i0.ɵɵrepeaterCreate(35, CompetitivePositioningSummaryComponent_Conditional_2_For_36_Template, 12, 11, "div", 52, _forTrack0$N);
3464
3464
  i0.ɵɵelementEnd();
3465
3465
  i0.ɵɵelementStart(37, "div", 28)(38, "button", 53);
3466
3466
  i0.ɵɵlistener("click", function CompetitivePositioningSummaryComponent_Conditional_2_Template_button_click_38_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.scrollToCompetitive.emit()); });
@@ -8137,7 +8137,7 @@ class MetricCardComponent {
8137
8137
  const _c0$$ = () => [1, 2, 3];
8138
8138
  const _c1$A = (a0, a1, a2) => [a0, a1, a2];
8139
8139
  const _c2$p = (a0, a1) => [a0, a1];
8140
- const _forTrack0$L = ($index, $item) => $item.metric;
8140
+ const _forTrack0$M = ($index, $item) => $item.metric;
8141
8141
  const _forTrack1$6 = ($index, $item) => $item.dimensionValue;
8142
8142
  function BreakdownSectionComponent_Conditional_0_For_7_For_4_Template(rf, ctx) { if (rf & 1) {
8143
8143
  i0.ɵɵelementStart(0, "div", 7);
@@ -8460,7 +8460,7 @@ function BreakdownSectionComponent_Conditional_1_Template(rf, ctx) { if (rf & 1)
8460
8460
  i0.ɵɵelementEnd()();
8461
8461
  i0.ɵɵconditionalCreate(6, BreakdownSectionComponent_Conditional_1_Conditional_6_Template, 3, 0, "div", 11);
8462
8462
  i0.ɵɵelementStart(7, "div", 12);
8463
- i0.ɵɵrepeaterCreate(8, BreakdownSectionComponent_Conditional_1_For_9_Template, 28, 18, "div", 13, _forTrack0$L);
8463
+ i0.ɵɵrepeaterCreate(8, BreakdownSectionComponent_Conditional_1_For_9_Template, 28, 18, "div", 13, _forTrack0$M);
8464
8464
  i0.ɵɵelementEnd()();
8465
8465
  } if (rf & 2) {
8466
8466
  const ctx_r0 = i0.ɵɵnextContext();
@@ -11499,7 +11499,7 @@ class ChartCardComponent {
11499
11499
  }], null, { chart: [{ type: i0.Input, args: [{ isSignal: true, alias: "chart", required: true }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], isLightMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLightMode", required: false }] }], chartClick: [{ type: i0.Output, args: ["chartClick"] }] }); }); })();
11500
11500
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ChartCardComponent, { className: "ChartCardComponent", filePath: "lib/components/shared/chart-card.component.ts", lineNumber: 101 }); })();
11501
11501
 
11502
- const _forTrack0$K = ($index, $item) => $item.id;
11502
+ const _forTrack0$L = ($index, $item) => $item.id;
11503
11503
  function FunnelStrengthsListModalContentComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
11504
11504
  i0.ɵɵelementStart(0, "div", 1);
11505
11505
  i0.ɵɵnamespaceSVG();
@@ -11613,7 +11613,7 @@ function FunnelStrengthsListModalContentComponent_Conditional_2_For_2_Template(r
11613
11613
  } }
11614
11614
  function FunnelStrengthsListModalContentComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
11615
11615
  i0.ɵɵelementStart(0, "div", 2);
11616
- i0.ɵɵrepeaterCreate(1, FunnelStrengthsListModalContentComponent_Conditional_2_For_2_Template, 30, 22, "button", 7, _forTrack0$K);
11616
+ i0.ɵɵrepeaterCreate(1, FunnelStrengthsListModalContentComponent_Conditional_2_For_2_Template, 30, 22, "button", 7, _forTrack0$L);
11617
11617
  i0.ɵɵelementEnd();
11618
11618
  } if (rf & 2) {
11619
11619
  const ctx_r0 = i0.ɵɵnextContext();
@@ -11823,7 +11823,7 @@ class FunnelStrengthsListModalContentComponent {
11823
11823
  }], null, { strengths: [{ type: i0.Input, args: [{ isSignal: true, alias: "strengths", required: true }] }], isLightMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLightMode", required: true }] }] }); })();
11824
11824
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FunnelStrengthsListModalContentComponent, { className: "FunnelStrengthsListModalContentComponent", filePath: "lib/components/funnel-analysis-dashboard/funnel-strengths-list-modal-content.component.ts", lineNumber: 93 }); })();
11825
11825
 
11826
- const _forTrack0$J = ($index, $item) => $item.severity;
11826
+ const _forTrack0$K = ($index, $item) => $item.severity;
11827
11827
  const _forTrack1$5 = ($index, $item) => $item.id;
11828
11828
  function FunnelWeaknessesListModalContentComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
11829
11829
  i0.ɵɵelementStart(0, "div", 1);
@@ -12002,7 +12002,7 @@ function FunnelWeaknessesListModalContentComponent_Conditional_2_For_2_Template(
12002
12002
  } }
12003
12003
  function FunnelWeaknessesListModalContentComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
12004
12004
  i0.ɵɵelementStart(0, "div", 2);
12005
- i0.ɵɵrepeaterCreate(1, FunnelWeaknessesListModalContentComponent_Conditional_2_For_2_Template, 9, 7, "div", null, _forTrack0$J);
12005
+ i0.ɵɵrepeaterCreate(1, FunnelWeaknessesListModalContentComponent_Conditional_2_For_2_Template, 9, 7, "div", null, _forTrack0$K);
12006
12006
  i0.ɵɵelementEnd();
12007
12007
  } if (rf & 2) {
12008
12008
  const ctx_r0 = i0.ɵɵnextContext();
@@ -13785,7 +13785,7 @@ class ProfileItemLookupService {
13785
13785
  }], null, null); })();
13786
13786
 
13787
13787
  const _c0$Y = a0 => ({ name: "chevron-right", source: a0 });
13788
- const _forTrack0$I = ($index, $item) => $item.id;
13788
+ const _forTrack0$J = ($index, $item) => $item.id;
13789
13789
  function RelatedAreaChipsComponent_Conditional_0_For_2_Template(rf, ctx) { if (rf & 1) {
13790
13790
  const _r1 = i0.ɵɵgetCurrentView();
13791
13791
  i0.ɵɵelementStart(0, "button", 2);
@@ -13806,7 +13806,7 @@ function RelatedAreaChipsComponent_Conditional_0_For_2_Template(rf, ctx) { if (r
13806
13806
  } }
13807
13807
  function RelatedAreaChipsComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
13808
13808
  i0.ɵɵelementStart(0, "div", 0);
13809
- i0.ɵɵrepeaterCreate(1, RelatedAreaChipsComponent_Conditional_0_For_2_Template, 4, 5, "button", 1, _forTrack0$I);
13809
+ i0.ɵɵrepeaterCreate(1, RelatedAreaChipsComponent_Conditional_0_For_2_Template, 4, 5, "button", 1, _forTrack0$J);
13810
13810
  i0.ɵɵelementEnd();
13811
13811
  } if (rf & 2) {
13812
13812
  const ctx_r2 = i0.ɵɵnextContext();
@@ -14046,7 +14046,7 @@ class CompetitorChipListComponent {
14046
14046
  }], null, { relatedCompetitorIds: [{ type: i0.Input, args: [{ isSignal: true, alias: "relatedCompetitorIds", required: false }] }], competitors: [{ type: i0.Input, args: [{ isSignal: true, alias: "competitors", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], isDark: [{ type: i0.Input, args: [{ isSignal: true, alias: "isDark", required: false }] }], inModalContext: [{ type: i0.Input, args: [{ isSignal: true, alias: "inModalContext", required: false }] }] }); })();
14047
14047
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CompetitorChipListComponent, { className: "CompetitorChipListComponent", filePath: "lib/components/business-analysis-dashboard/shared/competitor-chip-list.component.ts", lineNumber: 37 }); })();
14048
14048
 
14049
- const _forTrack0$H = ($index, $item) => $item.id;
14049
+ const _forTrack0$I = ($index, $item) => $item.id;
14050
14050
  function CompetitorContextSectionComponent_Conditional_0_Conditional_8_Template(rf, ctx) { if (rf & 1) {
14051
14051
  const _r1 = i0.ɵɵgetCurrentView();
14052
14052
  i0.ɵɵelementStart(0, "button", 8);
@@ -14129,7 +14129,7 @@ function CompetitorContextSectionComponent_Conditional_0_Template(rf, ctx) { if
14129
14129
  i0.ɵɵconditionalCreate(8, CompetitorContextSectionComponent_Conditional_0_Conditional_8_Template, 5, 4, "button", 4);
14130
14130
  i0.ɵɵelementEnd();
14131
14131
  i0.ɵɵelementStart(9, "div", 5)(10, "div", 6);
14132
- i0.ɵɵrepeaterCreate(11, CompetitorContextSectionComponent_Conditional_0_For_12_Template, 10, 6, "button", 7, _forTrack0$H);
14132
+ i0.ɵɵrepeaterCreate(11, CompetitorContextSectionComponent_Conditional_0_For_12_Template, 10, 6, "button", 7, _forTrack0$I);
14133
14133
  i0.ɵɵelementEnd()()();
14134
14134
  } if (rf & 2) {
14135
14135
  const ctx_r1 = i0.ɵɵnextContext();
@@ -14320,7 +14320,7 @@ class CompetitorContextSectionComponent {
14320
14320
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CompetitorContextSectionComponent, { className: "CompetitorContextSectionComponent", filePath: "lib/components/business-analysis-dashboard/cards/competitor-context-section.component.ts", lineNumber: 86 }); })();
14321
14321
 
14322
14322
  const _c0$W = a0 => ({ name: "chevron-right", source: a0 });
14323
- const _forTrack0$G = ($index, $item) => $item.id;
14323
+ const _forTrack0$H = ($index, $item) => $item.id;
14324
14324
  function RelatedRecommendationChipsComponent_Conditional_0_For_3_Template(rf, ctx) { if (rf & 1) {
14325
14325
  const _r1 = i0.ɵɵgetCurrentView();
14326
14326
  i0.ɵɵelementStart(0, "button", 4);
@@ -14363,7 +14363,7 @@ function RelatedRecommendationChipsComponent_Conditional_0_Conditional_4_Templat
14363
14363
  } }
14364
14364
  function RelatedRecommendationChipsComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
14365
14365
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 1);
14366
- i0.ɵɵrepeaterCreate(2, RelatedRecommendationChipsComponent_Conditional_0_For_3_Template, 5, 6, "button", 2, _forTrack0$G);
14366
+ i0.ɵɵrepeaterCreate(2, RelatedRecommendationChipsComponent_Conditional_0_For_3_Template, 5, 6, "button", 2, _forTrack0$H);
14367
14367
  i0.ɵɵelementEnd();
14368
14368
  i0.ɵɵconditionalCreate(4, RelatedRecommendationChipsComponent_Conditional_0_Conditional_4_Template, 5, 4, "button", 3);
14369
14369
  i0.ɵɵelementEnd();
@@ -14820,7 +14820,7 @@ class RelatedFunnelInsightsSectionComponent {
14820
14820
  }], null, { insightCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "insightCount", required: true }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], insightsClicked: [{ type: i0.Output, args: ["insightsClicked"] }] }); })();
14821
14821
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(RelatedFunnelInsightsSectionComponent, { className: "RelatedFunnelInsightsSectionComponent", filePath: "lib/components/business-analysis-dashboard/shared/related-funnel-insights-section.component.ts", lineNumber: 47 }); })();
14822
14822
 
14823
- const _forTrack0$F = ($index, $item) => $item.order;
14823
+ const _forTrack0$G = ($index, $item) => $item.order;
14824
14824
  function RecommendationCardComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
14825
14825
  i0.ɵɵelementStart(0, "div", 9);
14826
14826
  i0.ɵɵelement(1, "symphiq-icon", 11);
@@ -15173,7 +15173,7 @@ function RecommendationCardComponent_Conditional_13_Conditional_12_Conditional_6
15173
15173
  } }
15174
15174
  function RecommendationCardComponent_Conditional_13_Conditional_12_Conditional_6_Template(rf, ctx) { if (rf & 1) {
15175
15175
  i0.ɵɵelementStart(0, "div", 37);
15176
- i0.ɵɵrepeaterCreate(1, RecommendationCardComponent_Conditional_13_Conditional_12_Conditional_6_For_2_Template, 13, 9, "div", 41, _forTrack0$F);
15176
+ i0.ɵɵrepeaterCreate(1, RecommendationCardComponent_Conditional_13_Conditional_12_Conditional_6_For_2_Template, 13, 9, "div", 41, _forTrack0$G);
15177
15177
  i0.ɵɵelementEnd();
15178
15178
  } if (rf & 2) {
15179
15179
  const ctx_r0 = i0.ɵɵnextContext(3);
@@ -16056,7 +16056,7 @@ const ModalComponent_Conditional_0_Conditional_19_Conditional_4_Defer_2_DepsFn =
16056
16056
  const ModalComponent_Conditional_0_Conditional_19_Conditional_5_Defer_2_DepsFn = () => [Promise.resolve().then(function () { return barChart_component; }).then(m => m.BarChartComponent)];
16057
16057
  const ModalComponent_Conditional_0_Conditional_19_Conditional_6_Defer_2_DepsFn = () => [Promise.resolve().then(function () { return pieChart_component; }).then(m => m.PieChartComponent)];
16058
16058
  const ModalComponent_Conditional_0_Conditional_19_Conditional_7_Defer_2_DepsFn = () => [Promise.resolve().then(function () { return areaChart_component; }).then(m => m.AreaChartComponent)];
16059
- const _forTrack0$E = ($index, $item) => $item.id || $index;
16059
+ const _forTrack0$F = ($index, $item) => $item.id || $index;
16060
16060
  function ModalComponent_Conditional_0_Conditional_9_Template(rf, ctx) { if (rf & 1) {
16061
16061
  const _r3 = i0.ɵɵgetCurrentView();
16062
16062
  i0.ɵɵelementStart(0, "button", 13);
@@ -16430,7 +16430,7 @@ function ModalComponent_Conditional_0_Conditional_22_For_3_Template(rf, ctx) { i
16430
16430
  function ModalComponent_Conditional_0_Conditional_22_Template(rf, ctx) { if (rf & 1) {
16431
16431
  i0.ɵɵelementStart(0, "div", 22);
16432
16432
  i0.ɵɵconditionalCreate(1, ModalComponent_Conditional_0_Conditional_22_Conditional_1_Template, 2, 2, "p", 55);
16433
- i0.ɵɵrepeaterCreate(2, ModalComponent_Conditional_0_Conditional_22_For_3_Template, 2, 5, "div", null, _forTrack0$E);
16433
+ i0.ɵɵrepeaterCreate(2, ModalComponent_Conditional_0_Conditional_22_For_3_Template, 2, 5, "div", null, _forTrack0$F);
16434
16434
  i0.ɵɵelementEnd();
16435
16435
  } if (rf & 2) {
16436
16436
  const ctx_r1 = i0.ɵɵnextContext(2);
@@ -20667,7 +20667,7 @@ class NarrativeTooltipComponent {
20667
20667
  }], null, { content: [{ type: i0.Input, args: [{ isSignal: true, alias: "content", required: true }] }], isLightMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLightMode", required: false }] }] }); })();
20668
20668
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(NarrativeTooltipComponent, { className: "NarrativeTooltipComponent", filePath: "lib/components/funnel-analysis-dashboard/tooltip/narrative-tooltip.component.ts", lineNumber: 27 }); })();
20669
20669
 
20670
- const _forTrack0$D = ($index, $item) => $item.name;
20670
+ const _forTrack0$E = ($index, $item) => $item.name;
20671
20671
  function CompetitiveStatusTooltipComponent_Conditional_6_For_6_Template(rf, ctx) { if (rf & 1) {
20672
20672
  i0.ɵɵelementStart(0, "div", 7)(1, "div", 8)(2, "div", 9);
20673
20673
  i0.ɵɵelement(3, "div", 10);
@@ -20711,7 +20711,7 @@ function CompetitiveStatusTooltipComponent_Conditional_6_Template(rf, ctx) { if
20711
20711
  i0.ɵɵtext(3);
20712
20712
  i0.ɵɵelementEnd();
20713
20713
  i0.ɵɵelementStart(4, "div", 5);
20714
- i0.ɵɵrepeaterCreate(5, CompetitiveStatusTooltipComponent_Conditional_6_For_6_Template, 13, 12, "div", 6, _forTrack0$D);
20714
+ i0.ɵɵrepeaterCreate(5, CompetitiveStatusTooltipComponent_Conditional_6_For_6_Template, 13, 12, "div", 6, _forTrack0$E);
20715
20715
  i0.ɵɵelementEnd()();
20716
20716
  } if (rf & 2) {
20717
20717
  const ctx_r1 = i0.ɵɵnextContext();
@@ -20958,7 +20958,7 @@ class CompetitiveStatusTooltipComponent {
20958
20958
  }], null, { content: [{ type: i0.Input, args: [{ isSignal: true, alias: "content", required: true }] }], isLightMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLightMode", required: false }] }], currencySymbol: [{ type: i0.Input, args: [{ isSignal: true, alias: "currencySymbol", required: false }] }] }); })();
20959
20959
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CompetitiveStatusTooltipComponent, { className: "CompetitiveStatusTooltipComponent", filePath: "lib/components/funnel-analysis-dashboard/tooltip/competitive-status-tooltip.component.ts", lineNumber: 60 }); })();
20960
20960
 
20961
- const _forTrack0$C = ($index, $item) => $item.name;
20961
+ const _forTrack0$D = ($index, $item) => $item.name;
20962
20962
  function FunnelStageCompetitiveTooltipComponent_Conditional_8_For_7_Template(rf, ctx) { if (rf & 1) {
20963
20963
  i0.ɵɵelementStart(0, "div", 9)(1, "div", 10)(2, "span", 11);
20964
20964
  i0.ɵɵtext(3);
@@ -20998,7 +20998,7 @@ function FunnelStageCompetitiveTooltipComponent_Conditional_8_Template(rf, ctx)
20998
20998
  i0.ɵɵtext(4);
20999
20999
  i0.ɵɵelementEnd()();
21000
21000
  i0.ɵɵelementStart(5, "div", 8);
21001
- i0.ɵɵrepeaterCreate(6, FunnelStageCompetitiveTooltipComponent_Conditional_8_For_7_Template, 11, 9, "div", 9, _forTrack0$C);
21001
+ i0.ɵɵrepeaterCreate(6, FunnelStageCompetitiveTooltipComponent_Conditional_8_For_7_Template, 11, 9, "div", 9, _forTrack0$D);
21002
21002
  i0.ɵɵelementEnd()();
21003
21003
  } if (rf & 2) {
21004
21004
  const ctx_r1 = i0.ɵɵnextContext();
@@ -21048,7 +21048,7 @@ function FunnelStageCompetitiveTooltipComponent_Conditional_9_Template(rf, ctx)
21048
21048
  i0.ɵɵtext(4);
21049
21049
  i0.ɵɵelementEnd()();
21050
21050
  i0.ɵɵelementStart(5, "div", 8);
21051
- i0.ɵɵrepeaterCreate(6, FunnelStageCompetitiveTooltipComponent_Conditional_9_For_7_Template, 11, 9, "div", 9, _forTrack0$C);
21051
+ i0.ɵɵrepeaterCreate(6, FunnelStageCompetitiveTooltipComponent_Conditional_9_For_7_Template, 11, 9, "div", 9, _forTrack0$D);
21052
21052
  i0.ɵɵelementEnd()();
21053
21053
  } if (rf & 2) {
21054
21054
  const ctx_r1 = i0.ɵɵnextContext();
@@ -21098,7 +21098,7 @@ function FunnelStageCompetitiveTooltipComponent_Conditional_10_Template(rf, ctx)
21098
21098
  i0.ɵɵtext(4);
21099
21099
  i0.ɵɵelementEnd()();
21100
21100
  i0.ɵɵelementStart(5, "div", 8);
21101
- i0.ɵɵrepeaterCreate(6, FunnelStageCompetitiveTooltipComponent_Conditional_10_For_7_Template, 11, 9, "div", 9, _forTrack0$C);
21101
+ i0.ɵɵrepeaterCreate(6, FunnelStageCompetitiveTooltipComponent_Conditional_10_For_7_Template, 11, 9, "div", 9, _forTrack0$D);
21102
21102
  i0.ɵɵelementEnd()();
21103
21103
  } if (rf & 2) {
21104
21104
  const ctx_r1 = i0.ɵɵnextContext();
@@ -22287,7 +22287,7 @@ class MobileFABComponent {
22287
22287
  }], null, { isLightMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLightMode", required: false }] }], isCompactMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "isCompactMode", required: false }] }], isExpanded: [{ type: i0.Input, args: [{ isSignal: true, alias: "isExpanded", required: false }] }], expandedChange: [{ type: i0.Output, args: ["expandedChange"] }], scrollToTop: [{ type: i0.Output, args: ["scrollToTop"] }], toggleView: [{ type: i0.Output, args: ["toggleView"] }] }); })();
22288
22288
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MobileFABComponent, { className: "MobileFABComponent", filePath: "lib/components/funnel-analysis-dashboard/mobile-fab.component.ts", lineNumber: 75 }); })();
22289
22289
 
22290
- const _forTrack0$B = ($index, $item) => $item.id;
22290
+ const _forTrack0$C = ($index, $item) => $item.id;
22291
22291
  function MobileBottomNavComponent_For_3_Template(rf, ctx) { if (rf & 1) {
22292
22292
  const _r1 = i0.ɵɵgetCurrentView();
22293
22293
  i0.ɵɵelementStart(0, "button", 3);
@@ -22345,7 +22345,7 @@ class MobileBottomNavComponent {
22345
22345
  static { this.ɵfac = function MobileBottomNavComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MobileBottomNavComponent)(); }; }
22346
22346
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MobileBottomNavComponent, selectors: [["symphiq-mobile-bottom-nav"]], inputs: { isLightMode: [1, "isLightMode"], sections: [1, "sections"], activeSection: [1, "activeSection"] }, outputs: { navigate: "navigate" }, decls: 4, vars: 1, consts: [[1, "fixed", "bottom-0", "left-0", "right-0", "z-50", "lg:hidden", "border-t", "backdrop-blur-md", 3, "ngClass"], [1, "flex", "items-center", "justify-around", "px-2", "py-3"], [1, "flex", "flex-col", "items-center", "gap-1", "px-3", "py-2", "rounded-lg", "transition-all", "duration-200", "active:scale-95", "min-w-[64px]", 3, "ngClass"], [1, "flex", "flex-col", "items-center", "gap-1", "px-3", "py-2", "rounded-lg", "transition-all", "duration-200", "active:scale-95", "min-w-[64px]", 3, "click", "ngClass"], [1, "w-6", "h-6", 3, "innerHTML"], [1, "text-xs", "font-medium"]], template: function MobileBottomNavComponent_Template(rf, ctx) { if (rf & 1) {
22347
22347
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 1);
22348
- i0.ɵɵrepeaterCreate(2, MobileBottomNavComponent_For_3_Template, 4, 3, "button", 2, _forTrack0$B);
22348
+ i0.ɵɵrepeaterCreate(2, MobileBottomNavComponent_For_3_Template, 4, 3, "button", 2, _forTrack0$C);
22349
22349
  i0.ɵɵelementEnd()();
22350
22350
  } if (rf & 2) {
22351
22351
  i0.ɵɵproperty("ngClass", ctx.containerClass());
@@ -22550,7 +22550,7 @@ class SearchService {
22550
22550
  }], null, null); })();
22551
22551
 
22552
22552
  const _c0$U = ["searchInput"];
22553
- const _forTrack0$A = ($index, $item) => $item.id;
22553
+ const _forTrack0$B = ($index, $item) => $item.id;
22554
22554
  function SearchBarComponent_Conditional_0_Conditional_10_Template(rf, ctx) { if (rf & 1) {
22555
22555
  const _r3 = i0.ɵɵgetCurrentView();
22556
22556
  i0.ɵɵelementStart(0, "button", 18);
@@ -22643,7 +22643,7 @@ function SearchBarComponent_Conditional_0_Conditional_14_For_2_Template(rf, ctx)
22643
22643
  } }
22644
22644
  function SearchBarComponent_Conditional_0_Conditional_14_Template(rf, ctx) { if (rf & 1) {
22645
22645
  i0.ɵɵelementStart(0, "div", 15);
22646
- i0.ɵɵrepeaterCreate(1, SearchBarComponent_Conditional_0_Conditional_14_For_2_Template, 16, 12, "button", 19, _forTrack0$A);
22646
+ i0.ɵɵrepeaterCreate(1, SearchBarComponent_Conditional_0_Conditional_14_For_2_Template, 16, 12, "button", 19, _forTrack0$B);
22647
22647
  i0.ɵɵelementEnd();
22648
22648
  } if (rf & 2) {
22649
22649
  const ctx_r1 = i0.ɵɵnextContext(2);
@@ -23134,7 +23134,7 @@ class SearchHighlightDirective {
23134
23134
  }]
23135
23135
  }], () => [], { symphiqSearchHighlight: [{ type: i0.Input, args: [{ isSignal: true, alias: "libSymphiqSearchHighlight", required: false }] }], highlightId: [{ type: i0.Input, args: [{ isSignal: true, alias: "highlightId", required: false }] }] }); })();
23136
23136
 
23137
- const _forTrack0$z = ($index, $item) => $item.value;
23137
+ const _forTrack0$A = ($index, $item) => $item.value;
23138
23138
  const _forTrack1$4 = ($index, $item) => $item.performanceItemId;
23139
23139
  function CompetitiveScorecardComponent_For_12_Template(rf, ctx) { if (rf & 1) {
23140
23140
  i0.ɵɵelementStart(0, "div", 7);
@@ -23509,7 +23509,7 @@ class CompetitiveScorecardComponent {
23509
23509
  i0.ɵɵtext(9);
23510
23510
  i0.ɵɵelementEnd()()();
23511
23511
  i0.ɵɵelementStart(10, "div", 6);
23512
- i0.ɵɵrepeaterCreate(11, CompetitiveScorecardComponent_For_12_Template, 4, 7, "div", 7, _forTrack0$z);
23512
+ i0.ɵɵrepeaterCreate(11, CompetitiveScorecardComponent_For_12_Template, 4, 7, "div", 7, _forTrack0$A);
23513
23513
  i0.ɵɵelementEnd();
23514
23514
  i0.ɵɵelementStart(13, "div", 8)(14, "table", 9)(15, "thead")(16, "tr", 10)(17, "th", 11);
23515
23515
  i0.ɵɵtext(18, "Metric");
@@ -24144,7 +24144,7 @@ class SectionDividerComponent {
24144
24144
  }], null, { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], animationDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "animationDelay", required: false }] }], sectionIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "sectionIcon", required: false }] }], subsections: [{ type: i0.Input, args: [{ isSignal: true, alias: "subsections", required: false }] }] }); })();
24145
24145
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SectionDividerComponent, { className: "SectionDividerComponent", filePath: "lib/components/shared/section-divider.component.ts", lineNumber: 36 }); })();
24146
24146
 
24147
- const _forTrack0$y = ($index, $item) => $item.id;
24147
+ const _forTrack0$z = ($index, $item) => $item.id;
24148
24148
  function FloatingTocComponent_Conditional_15_Template(rf, ctx) { if (rf & 1) {
24149
24149
  i0.ɵɵnamespaceSVG();
24150
24150
  i0.ɵɵelement(0, "path", 8);
@@ -24196,7 +24196,7 @@ function FloatingTocComponent_For_19_Conditional_7_For_2_Template(rf, ctx) { if
24196
24196
  } }
24197
24197
  function FloatingTocComponent_For_19_Conditional_7_Template(rf, ctx) { if (rf & 1) {
24198
24198
  i0.ɵɵelementStart(0, "div", 17);
24199
- i0.ɵɵrepeaterCreate(1, FloatingTocComponent_For_19_Conditional_7_For_2_Template, 4, 4, "button", 19, _forTrack0$y);
24199
+ i0.ɵɵrepeaterCreate(1, FloatingTocComponent_For_19_Conditional_7_For_2_Template, 4, 4, "button", 19, _forTrack0$z);
24200
24200
  i0.ɵɵelementEnd();
24201
24201
  } if (rf & 2) {
24202
24202
  const section_r2 = i0.ɵɵnextContext().$implicit;
@@ -24592,7 +24592,7 @@ class FloatingTocComponent {
24592
24592
  i0.ɵɵelementEnd()()();
24593
24593
  i0.ɵɵnamespaceHTML();
24594
24594
  i0.ɵɵelementStart(17, "nav", 9);
24595
- i0.ɵɵrepeaterCreate(18, FloatingTocComponent_For_19_Template, 8, 6, "div", 10, _forTrack0$y);
24595
+ i0.ɵɵrepeaterCreate(18, FloatingTocComponent_For_19_Template, 8, 6, "div", 10, _forTrack0$z);
24596
24596
  i0.ɵɵelementEnd();
24597
24597
  i0.ɵɵelementStart(20, "div", 11)(21, "button", 7);
24598
24598
  i0.ɵɵlistener("click", function FloatingTocComponent_Template_button_click_21_listener() { return ctx.scrollToTop(); });
@@ -24746,7 +24746,7 @@ class FloatingTocComponent {
24746
24746
  }], null, { sections: [{ type: i0.Input, args: [{ isSignal: true, alias: "sections", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], embedded: [{ type: i0.Input, args: [{ isSignal: true, alias: "embedded", required: false }] }], containerElement: [{ type: i0.Input, args: [{ isSignal: true, alias: "containerElement", required: false }] }], scrollElement: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollElement", required: false }] }], parentHeaderOffset: [{ type: i0.Input, args: [{ isSignal: true, alias: "parentHeaderOffset", required: false }] }] }); })();
24747
24747
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FloatingTocComponent, { className: "FloatingTocComponent", filePath: "lib/components/business-analysis-dashboard/floating-toc.component.ts", lineNumber: 125 }); })();
24748
24748
 
24749
- const _forTrack0$x = ($index, $item) => $item.id;
24749
+ const _forTrack0$y = ($index, $item) => $item.id;
24750
24750
  function JourneyProgressIndicatorComponent_For_5_Conditional_2_Template(rf, ctx) { if (rf & 1) {
24751
24751
  i0.ɵɵnamespaceSVG();
24752
24752
  i0.ɵɵelementStart(0, "svg", 22);
@@ -24982,7 +24982,7 @@ function JourneyProgressIndicatorComponent_Conditional_23_Template(rf, ctx) { if
24982
24982
  i0.ɵɵtext(2, "Journey Progress");
24983
24983
  i0.ɵɵelementEnd();
24984
24984
  i0.ɵɵelementStart(3, "div", 44);
24985
- i0.ɵɵrepeaterCreate(4, JourneyProgressIndicatorComponent_Conditional_23_For_5_Template, 14, 8, "div", 45, _forTrack0$x);
24985
+ i0.ɵɵrepeaterCreate(4, JourneyProgressIndicatorComponent_Conditional_23_For_5_Template, 14, 8, "div", 45, _forTrack0$y);
24986
24986
  i0.ɵɵelementEnd()();
24987
24987
  } if (rf & 2) {
24988
24988
  const ctx_r2 = i0.ɵɵnextContext();
@@ -25203,9 +25203,7 @@ class JourneyProgressIndicatorComponent {
25203
25203
  }
25204
25204
  }
25205
25205
  handleStepClick(step, idx) {
25206
- console.log('Step clicked:', { step, idx, status: step.status });
25207
25206
  if (step.status === 'completed' || step.status === 'accessible') {
25208
- console.log('Emitting stepClick:', idx + 1);
25209
25207
  this.stepClick.emit(idx + 1);
25210
25208
  }
25211
25209
  }
@@ -25433,7 +25431,7 @@ class JourneyProgressIndicatorComponent {
25433
25431
  static { this.ɵfac = function JourneyProgressIndicatorComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || JourneyProgressIndicatorComponent)(); }; }
25434
25432
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: JourneyProgressIndicatorComponent, selectors: [["symphiq-journey-progress-indicator"]], inputs: { viewMode: [1, "viewMode"], currentStepId: [1, "currentStepId"], showNextStepAction: [1, "showNextStepAction"], forDemo: [1, "forDemo"], maxAccessibleStepId: [1, "maxAccessibleStepId"] }, outputs: { nextStepClick: "nextStepClick", stepClick: "stepClick" }, decls: 25, vars: 12, consts: [[1, "sticky", "top-[60px]", "z-40", "border-b", "pt-8", "pb-6", "px-6", "transition-all", "duration-200", "overflow-visible", 3, "ngClass"], [1, "max-w-7xl", "mx-auto", "overflow-visible"], [1, "hidden", "lg:flex", "items-start", "justify-between", "overflow-visible"], [1, "flex-1", "flex", "items-start", "justify-start", "overflow-visible"], ["type", "button", 1, "px-4", "py-2", "rounded-lg", "font-medium", "text-sm", "transition-all", "duration-200", "flex-shrink-0", "flex", "items-center", "gap-2", "whitespace-nowrap", "ml-4", "mt-0", 3, "disabled", "ngClass", "cursor-pointer", "cursor-not-allowed", "opacity-50", "hover:scale-105"], [1, "lg:hidden"], [1, "flex", "items-center", "justify-between", "gap-4"], [1, "flex-1", "flex", "items-center", "gap-3"], [1, "w-10", "h-10", "min-w-[2.5rem]", "min-h-[2.5rem]", "rounded-full", "flex", "items-center", "justify-center", "flex-shrink-0", 3, "ngClass"], ["fill", "currentColor", "viewBox", "0 0 20 20", 1, "w-5", "h-5"], [1, "w-3", "h-3", "min-w-[0.75rem]", "min-h-[0.75rem]", "rounded-full", "animate-pulse", 3, "ngClass"], [1, "text-sm", "font-bold", 3, "ngClass"], [1, "flex-1", "text-left"], [1, "flex", "items-center", "gap-1.5", "relative", 3, "mouseenter", "mouseleave", "click"], [1, "text-xs", "cursor-pointer", 3, "ngClass"], [1, "p-0.5", "rounded-full", "cursor-pointer", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-3", "h-3"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"], [1, "absolute", "top-full", "left-0", "mt-2", "w-80", "max-w-[calc(100vw-2rem)]", "p-4", "rounded-lg", "shadow-xl", "z-50", 3, "ngClass"], ["type", "button", 1, "px-3", "py-1.5", "rounded-lg", "font-medium", "text-xs", "transition-all", "duration-200", "flex-shrink-0", "flex", "items-center", "gap-1.5", "whitespace-nowrap", 3, "disabled", "ngClass", "cursor-pointer", "cursor-not-allowed", "opacity-50", "hover:scale-105"], [1, "flex", "flex-col", "items-center", "cursor-pointer", "relative", "step-column", "overflow-visible", "flex-shrink-0", 3, "mouseenter", "mouseleave"], [1, "w-8", "h-8", "min-w-[2rem]", "min-h-[2rem]", "rounded-full", "flex", "items-center", "justify-center", "flex-shrink-0", "step-circle", "relative", "z-10", "mb-1.5", 3, "click", "ngClass"], ["fill", "currentColor", "viewBox", "0 0 20 20", 1, "w-4", "h-4"], [1, "w-2.5", "h-2.5", "min-w-[0.625rem]", "min-h-[0.625rem]", "rounded-full", "animate-pulse", 3, "ngClass"], [1, "w-2", "h-2", "min-w-[0.5rem]", "min-h-[0.5rem]", "rounded-full", 3, "ngClass"], [1, "text-xs", "font-bold", 3, "ngClass"], [1, "text-[10px]", "text-center", "leading-tight", "whitespace-nowrap", "max-w-[64px]", "overflow-hidden", "text-ellipsis", 3, "click", "ngClass"], [1, "absolute", "rounded-lg", "shadow-2xl", "z-50", "pointer-events-none", 3, "ngClass", "expanded-card-right", "expanded-card-left", "top", "left", "right"], [1, "flex-1", "h-0.5", "transition-all", "duration-200", "mt-[16px]", 3, "ngClass"], ["fill-rule", "evenodd", "d", "M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z", "clip-rule", "evenodd"], [1, "absolute", "rounded-lg", "shadow-2xl", "z-50", "pointer-events-none", 3, "ngClass"], [1, "flex", "items-start", "px-4", "py-3", "expanded-content"], [1, "flex", "items-start", "gap-2", "w-full"], [1, "text-xs", "font-bold", "flex-shrink-0", "mt-0.5", 3, "ngClass"], [1, "flex", "flex-col", "gap-1", "flex-1"], [1, "text-sm", "font-bold", "leading-tight", 3, "ngClass"], [1, "text-xs", "leading-relaxed", "description-fade", 3, "ngClass"], ["type", "button", 1, "px-4", "py-2", "rounded-lg", "font-medium", "text-sm", "transition-all", "duration-200", "flex-shrink-0", "flex", "items-center", "gap-2", "whitespace-nowrap", "ml-4", "mt-0", 3, "click", "disabled", "ngClass"], ["fill", "none", "viewBox", "0 0 24 24", 1, "w-4", "h-4", "animate-spin"], ["cx", "12", "cy", "12", "r", "10", "stroke", "currentColor", "stroke-width", "4", 1, "opacity-25"], ["fill", "currentColor", "d", "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z", 1, "opacity-75"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 7l5 5m0 0l-5 5m5-5H6"], [1, "text-sm", "font-bold", "mb-3", 3, "ngClass"], [1, "space-y-2"], [1, "flex", "items-start", "gap-2"], [1, "w-6", "h-6", "min-w-[1.5rem]", "min-h-[1.5rem]", "rounded-full", "flex", "items-center", "justify-center", "flex-shrink-0", 3, "ngClass"], ["fill", "currentColor", "viewBox", "0 0 20 20", 1, "w-3", "h-3"], [1, "w-2", "h-2", "min-w-[0.5rem]", "min-h-[0.5rem]", "rounded-full", "animate-pulse", 3, "ngClass"], [1, "w-1.5", "h-1.5", "min-w-[0.375rem]", "min-h-[0.375rem]", "rounded-full", 3, "ngClass"], [1, "text-[10px]", "font-bold", 3, "ngClass"], [1, "flex-1", "min-w-0"], [1, "flex", "items-center", "gap-2"], [1, "text-xs", "font-medium", 3, "ngClass"], [1, "text-[10px]", "mt-0.5", 3, "ngClass"], ["type", "button", 1, "px-3", "py-1.5", "rounded-lg", "font-medium", "text-xs", "transition-all", "duration-200", "flex-shrink-0", "flex", "items-center", "gap-1.5", "whitespace-nowrap", 3, "click", "disabled", "ngClass"], ["fill", "none", "viewBox", "0 0 24 24", 1, "w-3.5", "h-3.5", "animate-spin"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-3.5", "h-3.5"]], template: function JourneyProgressIndicatorComponent_Template(rf, ctx) { if (rf & 1) {
25435
25433
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "div", 3);
25436
- i0.ɵɵrepeaterCreate(4, JourneyProgressIndicatorComponent_For_5_Template, 10, 12, null, null, _forTrack0$x);
25434
+ i0.ɵɵrepeaterCreate(4, JourneyProgressIndicatorComponent_For_5_Template, 10, 12, null, null, _forTrack0$y);
25437
25435
  i0.ɵɵelementEnd();
25438
25436
  i0.ɵɵconditionalCreate(6, JourneyProgressIndicatorComponent_Conditional_6_Template, 3, 11, "button", 4);
25439
25437
  i0.ɵɵelementEnd();
@@ -25485,228 +25483,228 @@ class JourneyProgressIndicatorComponent {
25485
25483
  }
25486
25484
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(JourneyProgressIndicatorComponent, [{
25487
25485
  type: Component,
25488
- args: [{ selector: 'symphiq-journey-progress-indicator', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: `
25489
- <!-- Sticky Banner Container with Minimal Padding for Glow Effects -->
25490
- <div [ngClass]="containerClasses()" class="sticky top-[60px] z-40 border-b pt-8 pb-6 px-6 transition-all duration-200 overflow-visible">
25491
- <div class="max-w-7xl mx-auto overflow-visible">
25492
- <!-- Desktop/Tablet Horizontal Layout (lg and up) -->
25493
- <div class="hidden lg:flex items-start justify-between overflow-visible">
25494
- <!-- Steps Container -->
25495
- <div class="flex-1 flex items-start justify-start overflow-visible">
25496
- @for (step of steps(); track step.id; let idx = $index; let isLast = $last) {
25497
- <!-- Step Column (Vertical Layout: Dot above, Label below) -->
25498
- <div
25499
- class="flex flex-col items-center cursor-pointer relative step-column overflow-visible flex-shrink-0"
25500
- [style.width]="'64px'"
25501
- (mouseenter)="setHoveredStep(idx)"
25502
- (mouseleave)="clearHoveredStep()">
25503
-
25504
- <!-- Icon Circle -->
25505
- <div
25506
- [ngClass]="getStepIconContainerClasses(step)"
25507
- class="w-8 h-8 min-w-[2rem] min-h-[2rem] rounded-full flex items-center justify-center flex-shrink-0 step-circle relative z-10 mb-1.5"
25508
- (click)="handleStepClick(step, idx)"
25509
- [class.cursor-pointer]="step.status === 'completed' || step.status === 'accessible'">
25510
- @if (step.status === 'completed') {
25511
- <svg class="w-4 h-4" fill="currentColor" viewBox="0 0 20 20">
25512
- <path fill-rule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd"></path>
25513
- </svg>
25514
- } @else if (step.status === 'current') {
25515
- <div class="w-2.5 h-2.5 min-w-[0.625rem] min-h-[0.625rem] rounded-full animate-pulse" [ngClass]="getCurrentDotClasses()"></div>
25516
- } @else if (step.status === 'accessible') {
25517
- <div class="w-2 h-2 min-w-[0.5rem] min-h-[0.5rem] rounded-full" [ngClass]="getAccessibleDotClasses()"></div>
25518
- } @else {
25519
- <span [ngClass]="getStepNumberClasses(step)" class="text-xs font-bold">
25520
- {{ idx + 1 }}
25521
- </span>
25522
- }
25523
- </div>
25524
-
25525
- <!-- Abbreviated Title (Always Visible) -->
25526
- <span
25527
- [ngClass]="getAbbreviatedTitleClasses(step)"
25528
- class="text-[10px] text-center leading-tight whitespace-nowrap max-w-[64px] overflow-hidden text-ellipsis"
25529
- (click)="handleStepClick(step, idx)"
25530
- [class.cursor-pointer]="step.status === 'completed' || step.status === 'accessible'">
25531
- {{ getAbbreviatedTitle(step.title) }}
25532
- </span>
25533
-
25534
- <!-- Absolute Positioned Tooltip -->
25535
- @if (hoveredStepIndex() === idx) {
25536
- <div
25537
- [ngClass]="getExpandedCardClasses(idx)"
25538
- [class.expanded-card-right]="isExpandRight(idx)"
25539
- [class.expanded-card-left]="isExpandLeft(idx)"
25540
- class="absolute rounded-lg shadow-2xl z-50 pointer-events-none"
25541
- [style.top]="'-29px'"
25542
- [style.left]="isExpandRight(idx) ? 'calc(100% + 6px)' : 'auto'"
25543
- [style.right]="isExpandLeft(idx) ? 'calc(100% + 6px)' : 'auto'">
25544
- <div class="flex items-start px-4 py-3 expanded-content">
25545
- <!-- Step Number and Title with Description -->
25546
- <div class="flex items-start gap-2 w-full">
25547
- <span [ngClass]="tooltipStepNumberClasses()" class="text-xs font-bold flex-shrink-0 mt-0.5">{{ idx + 1 }}.</span>
25548
- <div class="flex flex-col gap-1 flex-1">
25549
- <span [ngClass]="tooltipTitleClasses()" class="text-sm font-bold leading-tight">{{ step.title }}</span>
25550
- <!-- Description (Delayed Fade In) -->
25551
- @if (shouldShowDetailedTooltip()) {
25552
- <p [ngClass]="tooltipDescriptionClasses()" class="text-xs leading-relaxed description-fade">
25553
- {{ step.description }}
25554
- </p>
25555
- }
25556
- </div>
25557
- </div>
25558
- </div>
25559
- </div>
25560
- }
25561
- </div>
25562
-
25563
- <!-- Connector Line (Horizontal, stretches to fill available space) -->
25564
- @if (!isLast) {
25565
- <div [ngClass]="getConnectorClasses(step)" class="flex-1 h-0.5 transition-all duration-200 mt-[16px]"></div>
25566
- }
25567
- }
25568
- </div>
25569
-
25570
- <!-- Next Step Button -->
25571
- @if (showNextStepAction() && getNextStep()) {
25572
- <button
25573
- type="button"
25574
- (click)="handleNextStepClick()"
25575
- [disabled]="isLoading()"
25576
- [ngClass]="nextStepButtonClasses()"
25577
- class="px-4 py-2 rounded-lg font-medium text-sm transition-all duration-200 flex-shrink-0 flex items-center gap-2 whitespace-nowrap ml-4 mt-0"
25578
- [class.cursor-pointer]="!isLoading()"
25579
- [class.cursor-not-allowed]="isLoading()"
25580
- [class.opacity-50]="isLoading()"
25581
- [class.hover:scale-105]="!isLoading()">
25582
- @if (isLoading()) {
25583
- <svg class="w-4 h-4 animate-spin" fill="none" viewBox="0 0 24 24">
25584
- <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
25585
- <path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path>
25586
- </svg>
25587
- Loading...
25588
- } @else {
25589
- {{ currentStepId() === JourneyStepIdEnum.WELCOME ? 'Get Started' : 'Continue' }}
25590
- <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
25591
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 7l5 5m0 0l-5 5m5-5H6"></path>
25592
- </svg>
25593
- }
25594
- </button>
25595
- }
25596
- </div>
25597
-
25598
- <!-- Mobile Navigation (below lg) -->
25599
- <div class="lg:hidden">
25600
- <div class="flex items-center justify-between gap-4">
25601
- <!-- Current Step Display -->
25602
- <div class="flex-1 flex items-center gap-3">
25603
- <!-- Step Icon -->
25604
- <div [ngClass]="getStepIconContainerClasses(getCurrentStep())" class="w-10 h-10 min-w-[2.5rem] min-h-[2.5rem] rounded-full flex items-center justify-center flex-shrink-0">
25605
- @if (getCurrentStep().status === 'completed') {
25606
- <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
25607
- <path fill-rule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd"></path>
25608
- </svg>
25609
- } @else if (getCurrentStep().status === 'current') {
25610
- <div class="w-3 h-3 min-w-[0.75rem] min-h-[0.75rem] rounded-full animate-pulse" [ngClass]="getCurrentDotClasses()"></div>
25611
- } @else {
25612
- <span [ngClass]="getStepNumberClasses(getCurrentStep())" class="text-sm font-bold">
25613
- {{ getCurrentStepIndex() + 1 }}
25614
- </span>
25615
- }
25616
- </div>
25617
-
25618
- <!-- Step Info -->
25619
- <div class="flex-1 text-left">
25620
- <h3 [ngClass]="getStepTitleClasses(getCurrentStep())" class="text-sm font-bold">
25621
- {{ getCurrentStep().title }}
25622
- </h3>
25623
- <!-- Step Counter with Tooltip Trigger -->
25624
- <div
25625
- class="flex items-center gap-1.5 relative"
25626
- (mouseenter)="showMobileTooltip.set(true)"
25627
- (mouseleave)="showMobileTooltip.set(false)"
25628
- (click)="toggleMobileTooltip()">
25629
- <span [ngClass]="stepCounterClasses()" class="text-xs cursor-pointer">
25630
- Step {{ getCurrentStepIndex() + 1 }} of {{ steps().length }}
25631
- </span>
25632
- <div [ngClass]="tooltipTriggerClasses()" class="p-0.5 rounded-full cursor-pointer">
25633
- <svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24">
25634
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path>
25635
- </svg>
25636
- </div>
25637
-
25638
- <!-- Mobile Tooltip with All Steps -->
25639
- @if (showMobileTooltip()) {
25640
- <div [ngClass]="mobileTooltipClasses()" class="absolute top-full left-0 mt-2 w-80 max-w-[calc(100vw-2rem)] p-4 rounded-lg shadow-xl z-50">
25641
- <h4 [ngClass]="tooltipTitleClasses()" class="text-sm font-bold mb-3">Journey Progress</h4>
25642
- <div class="space-y-2">
25643
- @for (step of steps(); track step.id; let idx = $index) {
25644
- <div class="flex items-start gap-2">
25645
- <!-- Step Icon -->
25646
- <div [ngClass]="getStepIconContainerClasses(step)" class="w-6 h-6 min-w-[1.5rem] min-h-[1.5rem] rounded-full flex items-center justify-center flex-shrink-0">
25647
- @if (step.status === 'completed') {
25648
- <svg class="w-3 h-3" fill="currentColor" viewBox="0 0 20 20">
25649
- <path fill-rule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd"></path>
25650
- </svg>
25651
- } @else if (step.status === 'current') {
25652
- <div class="w-2 h-2 min-w-[0.5rem] min-h-[0.5rem] rounded-full animate-pulse" [ngClass]="getCurrentDotClasses()"></div>
25653
- } @else if (step.status === 'accessible') {
25654
- <div class="w-1.5 h-1.5 min-w-[0.375rem] min-h-[0.375rem] rounded-full" [ngClass]="getAccessibleDotClasses()"></div>
25655
- } @else {
25656
- <span [ngClass]="getStepNumberClasses(step)" class="text-[10px] font-bold">
25657
- {{ idx + 1 }}
25658
- </span>
25659
- }
25660
- </div>
25661
- <!-- Step Info -->
25662
- <div class="flex-1 min-w-0">
25663
- <div class="flex items-center gap-2">
25664
- <span [ngClass]="tooltipStepNumberClasses()" class="text-xs font-bold">{{ idx + 1 }}.</span>
25665
- <span [ngClass]="getStepTitleClasses(step)" class="text-xs font-medium">{{ step.title }}</span>
25666
- </div>
25667
- <p [ngClass]="tooltipDescriptionClasses()" class="text-[10px] mt-0.5">
25668
- {{ step.description }}
25669
- </p>
25670
- </div>
25671
- </div>
25672
- }
25673
- </div>
25674
- </div>
25675
- }
25676
- </div>
25677
- </div>
25678
- </div>
25679
-
25680
- <!-- Get Started Button -->
25681
- @if (showNextStepAction() && getNextStep() && getCurrentStep().status === 'current') {
25682
- <button
25683
- type="button"
25684
- (click)="handleNextStepClick()"
25685
- [disabled]="isLoading()"
25686
- [ngClass]="nextStepButtonClasses()"
25687
- class="px-3 py-1.5 rounded-lg font-medium text-xs transition-all duration-200 flex-shrink-0 flex items-center gap-1.5 whitespace-nowrap"
25688
- [class.cursor-pointer]="!isLoading()"
25689
- [class.cursor-not-allowed]="isLoading()"
25690
- [class.opacity-50]="isLoading()"
25691
- [class.hover:scale-105]="!isLoading()">
25692
- @if (isLoading()) {
25693
- <svg class="w-3.5 h-3.5 animate-spin" fill="none" viewBox="0 0 24 24">
25694
- <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
25695
- <path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path>
25696
- </svg>
25697
- Loading...
25698
- } @else {
25699
- {{ currentStepId() === JourneyStepIdEnum.WELCOME ? 'Get Started' : 'Continue' }}
25700
- <svg class="w-3.5 h-3.5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
25701
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 7l5 5m0 0l-5 5m5-5H6"></path>
25702
- </svg>
25703
- }
25704
- </button>
25705
- }
25706
- </div>
25707
- </div>
25708
- </div>
25709
- </div>
25486
+ args: [{ selector: 'symphiq-journey-progress-indicator', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: `
25487
+ <!-- Sticky Banner Container with Minimal Padding for Glow Effects -->
25488
+ <div [ngClass]="containerClasses()" class="sticky top-[60px] z-40 border-b pt-8 pb-6 px-6 transition-all duration-200 overflow-visible">
25489
+ <div class="max-w-7xl mx-auto overflow-visible">
25490
+ <!-- Desktop/Tablet Horizontal Layout (lg and up) -->
25491
+ <div class="hidden lg:flex items-start justify-between overflow-visible">
25492
+ <!-- Steps Container -->
25493
+ <div class="flex-1 flex items-start justify-start overflow-visible">
25494
+ @for (step of steps(); track step.id; let idx = $index; let isLast = $last) {
25495
+ <!-- Step Column (Vertical Layout: Dot above, Label below) -->
25496
+ <div
25497
+ class="flex flex-col items-center cursor-pointer relative step-column overflow-visible flex-shrink-0"
25498
+ [style.width]="'64px'"
25499
+ (mouseenter)="setHoveredStep(idx)"
25500
+ (mouseleave)="clearHoveredStep()">
25501
+
25502
+ <!-- Icon Circle -->
25503
+ <div
25504
+ [ngClass]="getStepIconContainerClasses(step)"
25505
+ class="w-8 h-8 min-w-[2rem] min-h-[2rem] rounded-full flex items-center justify-center flex-shrink-0 step-circle relative z-10 mb-1.5"
25506
+ (click)="handleStepClick(step, idx)"
25507
+ [class.cursor-pointer]="step.status === 'completed' || step.status === 'accessible'">
25508
+ @if (step.status === 'completed') {
25509
+ <svg class="w-4 h-4" fill="currentColor" viewBox="0 0 20 20">
25510
+ <path fill-rule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd"></path>
25511
+ </svg>
25512
+ } @else if (step.status === 'current') {
25513
+ <div class="w-2.5 h-2.5 min-w-[0.625rem] min-h-[0.625rem] rounded-full animate-pulse" [ngClass]="getCurrentDotClasses()"></div>
25514
+ } @else if (step.status === 'accessible') {
25515
+ <div class="w-2 h-2 min-w-[0.5rem] min-h-[0.5rem] rounded-full" [ngClass]="getAccessibleDotClasses()"></div>
25516
+ } @else {
25517
+ <span [ngClass]="getStepNumberClasses(step)" class="text-xs font-bold">
25518
+ {{ idx + 1 }}
25519
+ </span>
25520
+ }
25521
+ </div>
25522
+
25523
+ <!-- Abbreviated Title (Always Visible) -->
25524
+ <span
25525
+ [ngClass]="getAbbreviatedTitleClasses(step)"
25526
+ class="text-[10px] text-center leading-tight whitespace-nowrap max-w-[64px] overflow-hidden text-ellipsis"
25527
+ (click)="handleStepClick(step, idx)"
25528
+ [class.cursor-pointer]="step.status === 'completed' || step.status === 'accessible'">
25529
+ {{ getAbbreviatedTitle(step.title) }}
25530
+ </span>
25531
+
25532
+ <!-- Absolute Positioned Tooltip -->
25533
+ @if (hoveredStepIndex() === idx) {
25534
+ <div
25535
+ [ngClass]="getExpandedCardClasses(idx)"
25536
+ [class.expanded-card-right]="isExpandRight(idx)"
25537
+ [class.expanded-card-left]="isExpandLeft(idx)"
25538
+ class="absolute rounded-lg shadow-2xl z-50 pointer-events-none"
25539
+ [style.top]="'-29px'"
25540
+ [style.left]="isExpandRight(idx) ? 'calc(100% + 6px)' : 'auto'"
25541
+ [style.right]="isExpandLeft(idx) ? 'calc(100% + 6px)' : 'auto'">
25542
+ <div class="flex items-start px-4 py-3 expanded-content">
25543
+ <!-- Step Number and Title with Description -->
25544
+ <div class="flex items-start gap-2 w-full">
25545
+ <span [ngClass]="tooltipStepNumberClasses()" class="text-xs font-bold flex-shrink-0 mt-0.5">{{ idx + 1 }}.</span>
25546
+ <div class="flex flex-col gap-1 flex-1">
25547
+ <span [ngClass]="tooltipTitleClasses()" class="text-sm font-bold leading-tight">{{ step.title }}</span>
25548
+ <!-- Description (Delayed Fade In) -->
25549
+ @if (shouldShowDetailedTooltip()) {
25550
+ <p [ngClass]="tooltipDescriptionClasses()" class="text-xs leading-relaxed description-fade">
25551
+ {{ step.description }}
25552
+ </p>
25553
+ }
25554
+ </div>
25555
+ </div>
25556
+ </div>
25557
+ </div>
25558
+ }
25559
+ </div>
25560
+
25561
+ <!-- Connector Line (Horizontal, stretches to fill available space) -->
25562
+ @if (!isLast) {
25563
+ <div [ngClass]="getConnectorClasses(step)" class="flex-1 h-0.5 transition-all duration-200 mt-[16px]"></div>
25564
+ }
25565
+ }
25566
+ </div>
25567
+
25568
+ <!-- Next Step Button -->
25569
+ @if (showNextStepAction() && getNextStep()) {
25570
+ <button
25571
+ type="button"
25572
+ (click)="handleNextStepClick()"
25573
+ [disabled]="isLoading()"
25574
+ [ngClass]="nextStepButtonClasses()"
25575
+ class="px-4 py-2 rounded-lg font-medium text-sm transition-all duration-200 flex-shrink-0 flex items-center gap-2 whitespace-nowrap ml-4 mt-0"
25576
+ [class.cursor-pointer]="!isLoading()"
25577
+ [class.cursor-not-allowed]="isLoading()"
25578
+ [class.opacity-50]="isLoading()"
25579
+ [class.hover:scale-105]="!isLoading()">
25580
+ @if (isLoading()) {
25581
+ <svg class="w-4 h-4 animate-spin" fill="none" viewBox="0 0 24 24">
25582
+ <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
25583
+ <path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path>
25584
+ </svg>
25585
+ Loading...
25586
+ } @else {
25587
+ {{ currentStepId() === JourneyStepIdEnum.WELCOME ? 'Get Started' : 'Continue' }}
25588
+ <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
25589
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 7l5 5m0 0l-5 5m5-5H6"></path>
25590
+ </svg>
25591
+ }
25592
+ </button>
25593
+ }
25594
+ </div>
25595
+
25596
+ <!-- Mobile Navigation (below lg) -->
25597
+ <div class="lg:hidden">
25598
+ <div class="flex items-center justify-between gap-4">
25599
+ <!-- Current Step Display -->
25600
+ <div class="flex-1 flex items-center gap-3">
25601
+ <!-- Step Icon -->
25602
+ <div [ngClass]="getStepIconContainerClasses(getCurrentStep())" class="w-10 h-10 min-w-[2.5rem] min-h-[2.5rem] rounded-full flex items-center justify-center flex-shrink-0">
25603
+ @if (getCurrentStep().status === 'completed') {
25604
+ <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
25605
+ <path fill-rule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd"></path>
25606
+ </svg>
25607
+ } @else if (getCurrentStep().status === 'current') {
25608
+ <div class="w-3 h-3 min-w-[0.75rem] min-h-[0.75rem] rounded-full animate-pulse" [ngClass]="getCurrentDotClasses()"></div>
25609
+ } @else {
25610
+ <span [ngClass]="getStepNumberClasses(getCurrentStep())" class="text-sm font-bold">
25611
+ {{ getCurrentStepIndex() + 1 }}
25612
+ </span>
25613
+ }
25614
+ </div>
25615
+
25616
+ <!-- Step Info -->
25617
+ <div class="flex-1 text-left">
25618
+ <h3 [ngClass]="getStepTitleClasses(getCurrentStep())" class="text-sm font-bold">
25619
+ {{ getCurrentStep().title }}
25620
+ </h3>
25621
+ <!-- Step Counter with Tooltip Trigger -->
25622
+ <div
25623
+ class="flex items-center gap-1.5 relative"
25624
+ (mouseenter)="showMobileTooltip.set(true)"
25625
+ (mouseleave)="showMobileTooltip.set(false)"
25626
+ (click)="toggleMobileTooltip()">
25627
+ <span [ngClass]="stepCounterClasses()" class="text-xs cursor-pointer">
25628
+ Step {{ getCurrentStepIndex() + 1 }} of {{ steps().length }}
25629
+ </span>
25630
+ <div [ngClass]="tooltipTriggerClasses()" class="p-0.5 rounded-full cursor-pointer">
25631
+ <svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24">
25632
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path>
25633
+ </svg>
25634
+ </div>
25635
+
25636
+ <!-- Mobile Tooltip with All Steps -->
25637
+ @if (showMobileTooltip()) {
25638
+ <div [ngClass]="mobileTooltipClasses()" class="absolute top-full left-0 mt-2 w-80 max-w-[calc(100vw-2rem)] p-4 rounded-lg shadow-xl z-50">
25639
+ <h4 [ngClass]="tooltipTitleClasses()" class="text-sm font-bold mb-3">Journey Progress</h4>
25640
+ <div class="space-y-2">
25641
+ @for (step of steps(); track step.id; let idx = $index) {
25642
+ <div class="flex items-start gap-2">
25643
+ <!-- Step Icon -->
25644
+ <div [ngClass]="getStepIconContainerClasses(step)" class="w-6 h-6 min-w-[1.5rem] min-h-[1.5rem] rounded-full flex items-center justify-center flex-shrink-0">
25645
+ @if (step.status === 'completed') {
25646
+ <svg class="w-3 h-3" fill="currentColor" viewBox="0 0 20 20">
25647
+ <path fill-rule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd"></path>
25648
+ </svg>
25649
+ } @else if (step.status === 'current') {
25650
+ <div class="w-2 h-2 min-w-[0.5rem] min-h-[0.5rem] rounded-full animate-pulse" [ngClass]="getCurrentDotClasses()"></div>
25651
+ } @else if (step.status === 'accessible') {
25652
+ <div class="w-1.5 h-1.5 min-w-[0.375rem] min-h-[0.375rem] rounded-full" [ngClass]="getAccessibleDotClasses()"></div>
25653
+ } @else {
25654
+ <span [ngClass]="getStepNumberClasses(step)" class="text-[10px] font-bold">
25655
+ {{ idx + 1 }}
25656
+ </span>
25657
+ }
25658
+ </div>
25659
+ <!-- Step Info -->
25660
+ <div class="flex-1 min-w-0">
25661
+ <div class="flex items-center gap-2">
25662
+ <span [ngClass]="tooltipStepNumberClasses()" class="text-xs font-bold">{{ idx + 1 }}.</span>
25663
+ <span [ngClass]="getStepTitleClasses(step)" class="text-xs font-medium">{{ step.title }}</span>
25664
+ </div>
25665
+ <p [ngClass]="tooltipDescriptionClasses()" class="text-[10px] mt-0.5">
25666
+ {{ step.description }}
25667
+ </p>
25668
+ </div>
25669
+ </div>
25670
+ }
25671
+ </div>
25672
+ </div>
25673
+ }
25674
+ </div>
25675
+ </div>
25676
+ </div>
25677
+
25678
+ <!-- Get Started Button -->
25679
+ @if (showNextStepAction() && getNextStep() && getCurrentStep().status === 'current') {
25680
+ <button
25681
+ type="button"
25682
+ (click)="handleNextStepClick()"
25683
+ [disabled]="isLoading()"
25684
+ [ngClass]="nextStepButtonClasses()"
25685
+ class="px-3 py-1.5 rounded-lg font-medium text-xs transition-all duration-200 flex-shrink-0 flex items-center gap-1.5 whitespace-nowrap"
25686
+ [class.cursor-pointer]="!isLoading()"
25687
+ [class.cursor-not-allowed]="isLoading()"
25688
+ [class.opacity-50]="isLoading()"
25689
+ [class.hover:scale-105]="!isLoading()">
25690
+ @if (isLoading()) {
25691
+ <svg class="w-3.5 h-3.5 animate-spin" fill="none" viewBox="0 0 24 24">
25692
+ <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
25693
+ <path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path>
25694
+ </svg>
25695
+ Loading...
25696
+ } @else {
25697
+ {{ currentStepId() === JourneyStepIdEnum.WELCOME ? 'Get Started' : 'Continue' }}
25698
+ <svg class="w-3.5 h-3.5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
25699
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 7l5 5m0 0l-5 5m5-5H6"></path>
25700
+ </svg>
25701
+ }
25702
+ </button>
25703
+ }
25704
+ </div>
25705
+ </div>
25706
+ </div>
25707
+ </div>
25710
25708
  `, styles: [".scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-hide::-webkit-scrollbar{display:none}.step-glow-current{box-shadow:0 0 0 3px #3b82f64d;animation:pulseGlow 2s ease-in-out infinite}.step-glow-current-dark{box-shadow:0 0 0 3px #60a5fa4d;animation:pulseGlow 2s ease-in-out infinite}.step-glow-completed{box-shadow:0 0 0 2px #10b98133}.step-glow-completed-dark{box-shadow:0 0 0 2px #34d39933}.step-glow-accessible{box-shadow:0 0 0 2px #3b82f61f}.step-glow-accessible-dark{box-shadow:0 0 0 2px #60a5fa26}@keyframes pulseGlow{0%,to{box-shadow:0 0 0 3px #3b82f64d}50%{box-shadow:0 0 0 6px #3b82f61a}}.step-column{transition:all .2s cubic-bezier(.4,0,.2,1)}.step-circle{transition:all .15s cubic-bezier(.4,0,.2,1)}.step-column:hover .step-circle{transform:scale(1.05)}.expanded-card-right{animation:expandCardRight .2s cubic-bezier(.4,0,.2,1) forwards;transform-origin:left center}.expanded-card-left{animation:expandCardLeft .2s cubic-bezier(.4,0,.2,1) forwards;transform-origin:right center}@keyframes expandCardRight{0%{opacity:0;width:0;min-height:90px}to{opacity:1;width:300px;min-height:90px}}@keyframes expandCardLeft{0%{opacity:0;width:0;min-height:90px}to{opacity:1;width:300px;min-height:90px}}.description-fade{animation:fadeIn .15s ease-out forwards;opacity:0}@keyframes fadeIn{to{opacity:1}}.expanded-content{animation:contentFadeIn .15s ease-out .1s forwards;opacity:0}@keyframes contentFadeIn{to{opacity:1}}\n"] }]
25711
25709
  }], () => [], { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], currentStepId: [{ type: i0.Input, args: [{ isSignal: true, alias: "currentStepId", required: false }] }], showNextStepAction: [{ type: i0.Input, args: [{ isSignal: true, alias: "showNextStepAction", required: false }] }], forDemo: [{ type: i0.Input, args: [{ isSignal: true, alias: "forDemo", required: false }] }], maxAccessibleStepId: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxAccessibleStepId", required: false }] }], nextStepClick: [{ type: i0.Output, args: ["nextStepClick"] }], stepClick: [{ type: i0.Output, args: ["stepClick"] }] }); })();
25712
25710
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(JourneyProgressIndicatorComponent, { className: "JourneyProgressIndicatorComponent", filePath: "lib/components/business-analysis-dashboard/journey-progress-indicator.component.ts", lineNumber: 371 }); })();
@@ -27586,7 +27584,7 @@ class ViewModeSwitcherModalComponent {
27586
27584
  const _c0$S = a0 => ({ name: "check-badge", source: a0 });
27587
27585
  const _c1$y = a0 => ({ name: "check-circle", source: a0 });
27588
27586
  const _c2$o = a0 => ({ name: "chevron-right", source: a0 });
27589
- const _forTrack0$w = ($index, $item) => $item.area;
27587
+ const _forTrack0$x = ($index, $item) => $item.area;
27590
27588
  function KeyStrengthsListModalContentComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
27591
27589
  i0.ɵɵelementStart(0, "div", 1);
27592
27590
  i0.ɵɵelement(1, "symphiq-icon", 3);
@@ -27655,7 +27653,7 @@ function KeyStrengthsListModalContentComponent_Conditional_2_For_2_Template(rf,
27655
27653
  } }
27656
27654
  function KeyStrengthsListModalContentComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
27657
27655
  i0.ɵɵelementStart(0, "div", 2);
27658
- i0.ɵɵrepeaterCreate(1, KeyStrengthsListModalContentComponent_Conditional_2_For_2_Template, 15, 18, "button", 6, _forTrack0$w);
27656
+ i0.ɵɵrepeaterCreate(1, KeyStrengthsListModalContentComponent_Conditional_2_For_2_Template, 15, 18, "button", 6, _forTrack0$x);
27659
27657
  i0.ɵɵelementEnd();
27660
27658
  } if (rf & 2) {
27661
27659
  const ctx_r0 = i0.ɵɵnextContext();
@@ -27819,7 +27817,7 @@ const _c0$R = a0 => ({ name: "shield-check", source: a0 });
27819
27817
  const _c1$x = a0 => ({ name: "exclamation-triangle", source: a0 });
27820
27818
  const _c2$n = a0 => ({ name: "document-text", source: a0 });
27821
27819
  const _c3$h = a0 => ({ name: "chevron-right", source: a0 });
27822
- const _forTrack0$v = ($index, $item) => $item.area;
27820
+ const _forTrack0$w = ($index, $item) => $item.area;
27823
27821
  function CriticalGapsListModalContentComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
27824
27822
  i0.ɵɵelementStart(0, "div", 1);
27825
27823
  i0.ɵɵelement(1, "symphiq-icon", 3);
@@ -27904,7 +27902,7 @@ function CriticalGapsListModalContentComponent_Conditional_2_For_2_Template(rf,
27904
27902
  } }
27905
27903
  function CriticalGapsListModalContentComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
27906
27904
  i0.ɵɵelementStart(0, "div", 2);
27907
- i0.ɵɵrepeaterCreate(1, CriticalGapsListModalContentComponent_Conditional_2_For_2_Template, 23, 25, "button", 6, _forTrack0$v);
27905
+ i0.ɵɵrepeaterCreate(1, CriticalGapsListModalContentComponent_Conditional_2_For_2_Template, 23, 25, "button", 6, _forTrack0$w);
27908
27906
  i0.ɵɵelementEnd();
27909
27907
  } if (rf & 2) {
27910
27908
  const ctx_r0 = i0.ɵɵnextContext();
@@ -28133,7 +28131,7 @@ class CriticalGapsListModalContentComponent {
28133
28131
 
28134
28132
  const _c0$Q = a0 => ({ name: "check-circle", source: a0 });
28135
28133
  const _c1$w = a0 => ({ name: "chat-bubble-left-right", source: a0 });
28136
- const _forTrack0$u = ($index, $item) => $item.questionId;
28134
+ const _forTrack0$v = ($index, $item) => $item.questionId;
28137
28135
  function KeyStrengthDetailModalContentComponent_Conditional_13_For_6_Conditional_8_Template(rf, ctx) { if (rf & 1) {
28138
28136
  i0.ɵɵelementStart(0, "div", 19)(1, "span", 20);
28139
28137
  i0.ɵɵtext(2);
@@ -28180,7 +28178,7 @@ function KeyStrengthDetailModalContentComponent_Conditional_13_Template(rf, ctx)
28180
28178
  i0.ɵɵtext(3, " Supporting Evidence ");
28181
28179
  i0.ɵɵelementEnd();
28182
28180
  i0.ɵɵelementStart(4, "div", 12);
28183
- i0.ɵɵrepeaterCreate(5, KeyStrengthDetailModalContentComponent_Conditional_13_For_6_Template, 9, 10, "div", 13, _forTrack0$u);
28181
+ i0.ɵɵrepeaterCreate(5, KeyStrengthDetailModalContentComponent_Conditional_13_For_6_Template, 9, 10, "div", 13, _forTrack0$v);
28184
28182
  i0.ɵɵelementEnd()();
28185
28183
  } if (rf & 2) {
28186
28184
  const ctx_r1 = i0.ɵɵnextContext();
@@ -28375,7 +28373,7 @@ class KeyStrengthDetailModalContentComponent {
28375
28373
  const _c0$P = a0 => ({ name: "exclamation-triangle", source: a0 });
28376
28374
  const _c1$v = a0 => ({ name: "document-text", source: a0 });
28377
28375
  const _c2$m = a0 => ({ name: "chat-bubble-left-right", source: a0 });
28378
- const _forTrack0$t = ($index, $item) => $item.questionId;
28376
+ const _forTrack0$u = ($index, $item) => $item.questionId;
28379
28377
  function CriticalGapDetailModalContentComponent_Conditional_20_For_6_Conditional_8_Template(rf, ctx) { if (rf & 1) {
28380
28378
  i0.ɵɵelementStart(0, "div", 23)(1, "p", 25);
28381
28379
  i0.ɵɵtext(2, " Gap Identified: ");
@@ -28443,7 +28441,7 @@ function CriticalGapDetailModalContentComponent_Conditional_20_Template(rf, ctx)
28443
28441
  i0.ɵɵtext(3, " Supporting Evidence ");
28444
28442
  i0.ɵɵelementEnd();
28445
28443
  i0.ɵɵelementStart(4, "div", 17);
28446
- i0.ɵɵrepeaterCreate(5, CriticalGapDetailModalContentComponent_Conditional_20_For_6_Template, 10, 11, "div", 18, _forTrack0$t);
28444
+ i0.ɵɵrepeaterCreate(5, CriticalGapDetailModalContentComponent_Conditional_20_For_6_Template, 10, 11, "div", 18, _forTrack0$u);
28447
28445
  i0.ɵɵelementEnd()();
28448
28446
  } if (rf & 2) {
28449
28447
  const ctx_r1 = i0.ɵɵnextContext();
@@ -30239,7 +30237,7 @@ const _c0$O = a0 => ({ name: "check-badge", source: a0 });
30239
30237
  const _c1$u = a0 => ({ name: "check-circle", source: a0 });
30240
30238
  const _c2$l = a0 => ({ name: "chevron-right", source: a0 });
30241
30239
  const _c3$g = a0 => ({ name: "chart-bar", source: a0 });
30242
- const _forTrack0$s = ($index, $item) => $item.capability;
30240
+ const _forTrack0$t = ($index, $item) => $item.capability;
30243
30241
  function FocusAreaStrengthsListModalContentComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
30244
30242
  i0.ɵɵelementStart(0, "div", 1);
30245
30243
  i0.ɵɵelement(1, "symphiq-icon", 3);
@@ -30354,7 +30352,7 @@ function FocusAreaStrengthsListModalContentComponent_Conditional_2_For_2_Templat
30354
30352
  } }
30355
30353
  function FocusAreaStrengthsListModalContentComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
30356
30354
  i0.ɵɵelementStart(0, "div", 2);
30357
- i0.ɵɵrepeaterCreate(1, FocusAreaStrengthsListModalContentComponent_Conditional_2_For_2_Template, 16, 18, "button", 6, _forTrack0$s);
30355
+ i0.ɵɵrepeaterCreate(1, FocusAreaStrengthsListModalContentComponent_Conditional_2_For_2_Template, 16, 18, "button", 6, _forTrack0$t);
30358
30356
  i0.ɵɵelementEnd();
30359
30357
  } if (rf & 2) {
30360
30358
  const ctx_r0 = i0.ɵɵnextContext();
@@ -30561,7 +30559,7 @@ class FocusAreaStrengthsListModalContentComponent {
30561
30559
  const _c0$N = a0 => ({ name: "exclamation-triangle", source: a0 });
30562
30560
  const _c1$t = a0 => ({ name: "exclamation-circle", source: a0 });
30563
30561
  const _c2$k = a0 => ({ name: "chevron-right", source: a0 });
30564
- function _forTrack0$r($index, $item) { return this.getGapTitle($item); }
30562
+ function _forTrack0$s($index, $item) { return this.getGapTitle($item); }
30565
30563
  function FocusAreaGapsListModalContentComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
30566
30564
  i0.ɵɵelementStart(0, "div", 1);
30567
30565
  i0.ɵɵelement(1, "symphiq-icon", 3);
@@ -30678,7 +30676,7 @@ function FocusAreaGapsListModalContentComponent_Conditional_2_For_2_Template(rf,
30678
30676
  } }
30679
30677
  function FocusAreaGapsListModalContentComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
30680
30678
  i0.ɵɵelementStart(0, "div", 2);
30681
- i0.ɵɵrepeaterCreate(1, FocusAreaGapsListModalContentComponent_Conditional_2_For_2_Template, 15, 18, "button", 6, _forTrack0$r, true);
30679
+ i0.ɵɵrepeaterCreate(1, FocusAreaGapsListModalContentComponent_Conditional_2_For_2_Template, 15, 18, "button", 6, _forTrack0$s, true);
30682
30680
  i0.ɵɵelementEnd();
30683
30681
  } if (rf & 2) {
30684
30682
  const ctx_r0 = i0.ɵɵnextContext();
@@ -30955,7 +30953,7 @@ class FocusAreaGapsListModalContentComponent {
30955
30953
  const _c0$M = a0 => ({ name: "light-bulb", source: a0 });
30956
30954
  const _c1$s = a0 => ({ name: "chevron-right", source: a0 });
30957
30955
  const _c2$j = a0 => ({ name: "chart-bar", source: a0 });
30958
- const _forTrack0$q = ($index, $item) => $item.opportunity;
30956
+ const _forTrack0$r = ($index, $item) => $item.opportunity;
30959
30957
  function FocusAreaOpportunitiesListModalContentComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
30960
30958
  i0.ɵɵelementStart(0, "div", 1);
30961
30959
  i0.ɵɵelement(1, "symphiq-icon", 3);
@@ -31046,7 +31044,7 @@ function FocusAreaOpportunitiesListModalContentComponent_Conditional_2_For_2_Tem
31046
31044
  } }
31047
31045
  function FocusAreaOpportunitiesListModalContentComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
31048
31046
  i0.ɵɵelementStart(0, "div", 2);
31049
- i0.ɵɵrepeaterCreate(1, FocusAreaOpportunitiesListModalContentComponent_Conditional_2_For_2_Template, 11, 11, "button", 6, _forTrack0$q);
31047
+ i0.ɵɵrepeaterCreate(1, FocusAreaOpportunitiesListModalContentComponent_Conditional_2_For_2_Template, 11, 11, "button", 6, _forTrack0$r);
31050
31048
  i0.ɵɵelementEnd();
31051
31049
  } if (rf & 2) {
31052
31050
  const ctx_r0 = i0.ɵɵnextContext();
@@ -31223,7 +31221,7 @@ class FocusAreaOpportunitiesListModalContentComponent {
31223
31221
 
31224
31222
  const _c0$L = a0 => ({ name: "chevron-right", source: a0 });
31225
31223
  const _c1$r = a0 => ({ name: "chat-bubble-left-right", source: a0 });
31226
- const _forTrack0$p = ($index, $item) => $item.performanceItemId;
31224
+ const _forTrack0$q = ($index, $item) => $item.performanceItemId;
31227
31225
  function FocusAreaStrengthDetailModalContentComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
31228
31226
  i0.ɵɵelementStart(0, "div")(1, "p", 2);
31229
31227
  i0.ɵɵtext(2);
@@ -31293,7 +31291,7 @@ function FocusAreaStrengthDetailModalContentComponent_Conditional_4_Template(rf,
31293
31291
  i0.ɵɵtext(2);
31294
31292
  i0.ɵɵelementEnd();
31295
31293
  i0.ɵɵelementStart(3, "div", 9);
31296
- i0.ɵɵrepeaterCreate(4, FocusAreaStrengthDetailModalContentComponent_Conditional_4_For_5_Template, 4, 5, "button", 10, _forTrack0$p);
31294
+ i0.ɵɵrepeaterCreate(4, FocusAreaStrengthDetailModalContentComponent_Conditional_4_For_5_Template, 4, 5, "button", 10, _forTrack0$q);
31297
31295
  i0.ɵɵelementEnd()();
31298
31296
  } if (rf & 2) {
31299
31297
  const ctx_r0 = i0.ɵɵnextContext();
@@ -31944,7 +31942,7 @@ class FocusAreaGapDetailModalContentComponent {
31944
31942
 
31945
31943
  const _c0$J = a0 => ({ name: "chevron-right", source: a0 });
31946
31944
  const _c1$q = () => [];
31947
- const _forTrack0$o = ($index, $item) => $item.performanceItemId;
31945
+ const _forTrack0$p = ($index, $item) => $item.performanceItemId;
31948
31946
  function FocusAreaOpportunityDetailModalContentComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
31949
31947
  i0.ɵɵelementStart(0, "div")(1, "p", 2);
31950
31948
  i0.ɵɵtext(2);
@@ -31996,7 +31994,7 @@ function FocusAreaOpportunityDetailModalContentComponent_Conditional_3_Template(
31996
31994
  i0.ɵɵtext(2);
31997
31995
  i0.ɵɵelementEnd();
31998
31996
  i0.ɵɵelementStart(3, "div", 6);
31999
- i0.ɵɵrepeaterCreate(4, FocusAreaOpportunityDetailModalContentComponent_Conditional_3_For_5_Template, 4, 5, "button", 7, _forTrack0$o);
31997
+ i0.ɵɵrepeaterCreate(4, FocusAreaOpportunityDetailModalContentComponent_Conditional_3_For_5_Template, 4, 5, "button", 7, _forTrack0$p);
32000
31998
  i0.ɵɵelementEnd()();
32001
31999
  } if (rf & 2) {
32002
32000
  const ctx_r0 = i0.ɵɵnextContext();
@@ -37139,7 +37137,7 @@ const _c4$7 = a0 => ({ name: "academic-cap", source: a0 });
37139
37137
  const _c5$5 = a0 => ({ name: "information-circle", source: a0 });
37140
37138
  const _c6$2 = a0 => ({ name: "signal", source: a0 });
37141
37139
  const _c7$1 = a0 => ({ name: "wrench-screwdriver", source: a0 });
37142
- const _forTrack0$n = ($index, $item) => $item.name;
37140
+ const _forTrack0$o = ($index, $item) => $item.name;
37143
37141
  function ProductCategoryCardComponent_Conditional_9_Template(rf, ctx) { if (rf & 1) {
37144
37142
  i0.ɵɵelementStart(0, "p", 8);
37145
37143
  i0.ɵɵtext(1);
@@ -37270,7 +37268,7 @@ function ProductCategoryCardComponent_Conditional_16_Template(rf, ctx) { if (rf
37270
37268
  i0.ɵɵelementStart(6, "symphiq-visualization-container", 21);
37271
37269
  i0.ɵɵlistener("visualizationClick", function ProductCategoryCardComponent_Conditional_16_Template_symphiq_visualization_container_visualizationClick_6_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.openHorizontalBarModal($event)); });
37272
37270
  i0.ɵɵelementStart(7, "div", 22);
37273
- i0.ɵɵrepeaterCreate(8, ProductCategoryCardComponent_Conditional_16_For_9_Template, 2, 5, "div", 23, _forTrack0$n);
37271
+ i0.ɵɵrepeaterCreate(8, ProductCategoryCardComponent_Conditional_16_For_9_Template, 2, 5, "div", 23, _forTrack0$o);
37274
37272
  i0.ɵɵelementEnd()()()();
37275
37273
  } if (rf & 2) {
37276
37274
  const ctx_r0 = i0.ɵɵnextContext();
@@ -42260,7 +42258,7 @@ const ProfileAnalysisModalComponent_Conditional_0_Conditional_31_Conditional_5_D
42260
42258
  const ProfileAnalysisModalComponent_Conditional_0_Conditional_31_Conditional_6_Defer_2_DepsFn = () => [Promise.resolve().then(function () { return areaChart_component; }).then(m => m.AreaChartComponent)];
42261
42259
  const _c3$8 = a0 => ({ name: "arrow-left", source: a0 });
42262
42260
  const _c4$5 = a0 => ({ name: "chevron-right", source: a0 });
42263
- const _forTrack0$m = ($index, $item) => $item.performanceItemId || $index;
42261
+ const _forTrack0$n = ($index, $item) => $item.performanceItemId || $index;
42264
42262
  const _forTrack1$3 = ($index, $item) => $item.id || $index;
42265
42263
  function ProfileAnalysisModalComponent_Conditional_0_Conditional_10_For_5_Conditional_0_Conditional_0_Template(rf, ctx) { if (rf & 1) {
42266
42264
  const _r4 = i0.ɵɵgetCurrentView();
@@ -42471,7 +42469,7 @@ function ProfileAnalysisModalComponent_Conditional_0_Conditional_21_For_3_Templa
42471
42469
  function ProfileAnalysisModalComponent_Conditional_0_Conditional_21_Template(rf, ctx) { if (rf & 1) {
42472
42470
  i0.ɵɵelementStart(0, "div", 20);
42473
42471
  i0.ɵɵconditionalCreate(1, ProfileAnalysisModalComponent_Conditional_0_Conditional_21_Conditional_1_Template, 2, 2, "p", 52);
42474
- i0.ɵɵrepeaterCreate(2, ProfileAnalysisModalComponent_Conditional_0_Conditional_21_For_3_Template, 13, 10, "div", 53, _forTrack0$m);
42472
+ i0.ɵɵrepeaterCreate(2, ProfileAnalysisModalComponent_Conditional_0_Conditional_21_For_3_Template, 13, 10, "div", 53, _forTrack0$n);
42475
42473
  i0.ɵɵelementEnd();
42476
42474
  } if (rf & 2) {
42477
42475
  const data_r11 = ctx;
@@ -42551,7 +42549,7 @@ function ProfileAnalysisModalComponent_Conditional_0_Conditional_22_For_3_Templa
42551
42549
  function ProfileAnalysisModalComponent_Conditional_0_Conditional_22_Template(rf, ctx) { if (rf & 1) {
42552
42550
  i0.ɵɵelementStart(0, "div", 20);
42553
42551
  i0.ɵɵconditionalCreate(1, ProfileAnalysisModalComponent_Conditional_0_Conditional_22_Conditional_1_Template, 2, 2, "p", 52);
42554
- i0.ɵɵrepeaterCreate(2, ProfileAnalysisModalComponent_Conditional_0_Conditional_22_For_3_Template, 13, 10, "div", 53, _forTrack0$m);
42552
+ i0.ɵɵrepeaterCreate(2, ProfileAnalysisModalComponent_Conditional_0_Conditional_22_For_3_Template, 13, 10, "div", 53, _forTrack0$n);
42555
42553
  i0.ɵɵelementEnd();
42556
42554
  } if (rf & 2) {
42557
42555
  const data_r14 = ctx;
@@ -42670,7 +42668,7 @@ function ProfileAnalysisModalComponent_Conditional_0_Conditional_27_Conditional_
42670
42668
  i0.ɵɵelementStart(0, "div", 69)(1, "h3", 70);
42671
42669
  i0.ɵɵtext(2, " Directly Affected Metric ");
42672
42670
  i0.ɵɵelementEnd();
42673
- i0.ɵɵrepeaterCreate(3, ProfileAnalysisModalComponent_Conditional_0_Conditional_27_Conditional_1_Conditional_0_For_4_Template, 1, 1, null, null, _forTrack0$m);
42671
+ i0.ɵɵrepeaterCreate(3, ProfileAnalysisModalComponent_Conditional_0_Conditional_27_Conditional_1_Conditional_0_For_4_Template, 1, 1, null, null, _forTrack0$n);
42674
42672
  i0.ɵɵelementEnd();
42675
42673
  } if (rf & 2) {
42676
42674
  const data_r32 = i0.ɵɵnextContext(2);
@@ -42704,7 +42702,7 @@ function ProfileAnalysisModalComponent_Conditional_0_Conditional_27_Conditional_
42704
42702
  i0.ɵɵelementStart(0, "div", 69)(1, "h3", 70);
42705
42703
  i0.ɵɵtext(2, " Indirectly Affected Metrics ");
42706
42704
  i0.ɵɵelementEnd();
42707
- i0.ɵɵrepeaterCreate(3, ProfileAnalysisModalComponent_Conditional_0_Conditional_27_Conditional_1_Conditional_1_For_4_Template, 1, 1, null, null, _forTrack0$m);
42705
+ i0.ɵɵrepeaterCreate(3, ProfileAnalysisModalComponent_Conditional_0_Conditional_27_Conditional_1_Conditional_1_For_4_Template, 1, 1, null, null, _forTrack0$n);
42708
42706
  i0.ɵɵelementEnd();
42709
42707
  } if (rf & 2) {
42710
42708
  const data_r32 = i0.ɵɵnextContext(2);
@@ -42736,7 +42734,7 @@ function ProfileAnalysisModalComponent_Conditional_0_Conditional_27_Conditional_
42736
42734
  i0.ɵɵproperty("metric", metric_r38)("isLightMode", ctx_r1.isLightMode())("animationKey", $index_r39);
42737
42735
  } }
42738
42736
  function ProfileAnalysisModalComponent_Conditional_0_Conditional_27_Conditional_2_Template(rf, ctx) { if (rf & 1) {
42739
- i0.ɵɵrepeaterCreate(0, ProfileAnalysisModalComponent_Conditional_0_Conditional_27_Conditional_2_For_1_Template, 2, 3, "div", null, _forTrack0$m);
42737
+ i0.ɵɵrepeaterCreate(0, ProfileAnalysisModalComponent_Conditional_0_Conditional_27_Conditional_2_For_1_Template, 2, 3, "div", null, _forTrack0$n);
42740
42738
  } if (rf & 2) {
42741
42739
  const data_r32 = i0.ɵɵnextContext();
42742
42740
  i0.ɵɵrepeater(data_r32.metrics);
@@ -45436,7 +45434,7 @@ const _c0$t = a0 => ({ name: "list-bullet", source: a0 });
45436
45434
  const _c1$d = a0 => ({ name: "arrow-right", source: a0 });
45437
45435
  const _c2$9 = a0 => ({ name: "check-circle", source: a0 });
45438
45436
  const _c3$6 = a0 => ({ name: "exclamation-circle", source: a0 });
45439
- const _forTrack0$l = ($index, $item) => $item.order;
45437
+ const _forTrack0$m = ($index, $item) => $item.order;
45440
45438
  function RecommendationActionStepsModalComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
45441
45439
  i0.ɵɵelementStart(0, "div", 1)(1, "div", 5);
45442
45440
  i0.ɵɵelement(2, "symphiq-icon", 6);
@@ -45590,7 +45588,7 @@ class RecommendationActionStepsModalComponent {
45590
45588
  i0.ɵɵelementStart(0, "div", 0);
45591
45589
  i0.ɵɵconditionalCreate(1, RecommendationActionStepsModalComponent_Conditional_1_Template, 8, 7, "div", 1);
45592
45590
  i0.ɵɵelementStart(2, "div", 2);
45593
- i0.ɵɵrepeaterCreate(3, RecommendationActionStepsModalComponent_For_4_Template, 13, 11, "div", 3, _forTrack0$l);
45591
+ i0.ɵɵrepeaterCreate(3, RecommendationActionStepsModalComponent_For_4_Template, 13, 11, "div", 3, _forTrack0$m);
45594
45592
  i0.ɵɵelementEnd();
45595
45593
  i0.ɵɵconditionalCreate(5, RecommendationActionStepsModalComponent_Conditional_5_Template, 4, 5, "div", 4);
45596
45594
  i0.ɵɵelementEnd();
@@ -46386,7 +46384,7 @@ const _c2$8 = () => [1, 2, 3, 4, 5, 6];
46386
46384
  const _c3$5 = () => [1, 2, 3];
46387
46385
  const _c4$3 = () => [1, 2, 3, 4];
46388
46386
  const _c5$2 = () => [1, 2];
46389
- const _forTrack0$k = ($index, $item) => $item.value;
46387
+ const _forTrack0$l = ($index, $item) => $item.value;
46390
46388
  function SymphiqFunnelAnalysisDashboardComponent_Conditional_13_Template(rf, ctx) { if (rf & 1) {
46391
46389
  i0.ɵɵelement(0, "div", 11);
46392
46390
  } }
@@ -46425,7 +46423,7 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_25_Template(rf, ctx
46425
46423
  i0.ɵɵlistener("click", function SymphiqFunnelAnalysisDashboardComponent_Conditional_25_Template_div_click_3_listener($event) { i0.ɵɵrestoreView(_r4); return i0.ɵɵresetView($event.stopPropagation()); })("mousedown", function SymphiqFunnelAnalysisDashboardComponent_Conditional_25_Template_div_mousedown_3_listener($event) { i0.ɵɵrestoreView(_r4); return i0.ɵɵresetView($event.stopPropagation()); })("pointerdown", function SymphiqFunnelAnalysisDashboardComponent_Conditional_25_Template_div_pointerdown_3_listener($event) { i0.ɵɵrestoreView(_r4); return i0.ɵɵresetView($event.stopPropagation()); });
46426
46424
  i0.ɵɵelementStart(4, "select", 48);
46427
46425
  i0.ɵɵlistener("ngModelChange", function SymphiqFunnelAnalysisDashboardComponent_Conditional_25_Template_select_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.changeSectionFilter($event)); });
46428
- i0.ɵɵrepeaterCreate(5, SymphiqFunnelAnalysisDashboardComponent_Conditional_25_For_6_Template, 2, 2, "option", 49, _forTrack0$k);
46426
+ i0.ɵɵrepeaterCreate(5, SymphiqFunnelAnalysisDashboardComponent_Conditional_25_For_6_Template, 2, 2, "option", 49, _forTrack0$l);
46429
46427
  i0.ɵɵelementEnd()()();
46430
46428
  } if (rf & 2) {
46431
46429
  const ctx_r2 = i0.ɵɵnextContext();
@@ -46505,7 +46503,7 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_46_Template(rf, ctx
46505
46503
  i0.ɵɵlistener("click", function SymphiqFunnelAnalysisDashboardComponent_Conditional_46_Template_div_click_0_listener($event) { i0.ɵɵrestoreView(_r7); return i0.ɵɵresetView($event.stopPropagation()); })("mousedown", function SymphiqFunnelAnalysisDashboardComponent_Conditional_46_Template_div_mousedown_0_listener($event) { i0.ɵɵrestoreView(_r7); return i0.ɵɵresetView($event.stopPropagation()); })("pointerdown", function SymphiqFunnelAnalysisDashboardComponent_Conditional_46_Template_div_pointerdown_0_listener($event) { i0.ɵɵrestoreView(_r7); return i0.ɵɵresetView($event.stopPropagation()); });
46506
46504
  i0.ɵɵelementStart(1, "select", 54);
46507
46505
  i0.ɵɵlistener("ngModelChange", function SymphiqFunnelAnalysisDashboardComponent_Conditional_46_Template_select_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.changeSectionFilter($event)); });
46508
- i0.ɵɵrepeaterCreate(2, SymphiqFunnelAnalysisDashboardComponent_Conditional_46_For_3_Template, 2, 2, "option", 49, _forTrack0$k);
46506
+ i0.ɵɵrepeaterCreate(2, SymphiqFunnelAnalysisDashboardComponent_Conditional_46_For_3_Template, 2, 2, "option", 49, _forTrack0$l);
46509
46507
  i0.ɵɵelementEnd()();
46510
46508
  } if (rf & 2) {
46511
46509
  const ctx_r2 = i0.ɵɵnextContext();
@@ -47251,7 +47249,7 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Te
47251
47249
  i0.ɵɵconditionalCreate(14, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Conditional_14_Template, 2, 0, "div", 122);
47252
47250
  i0.ɵɵelementStart(15, "select", 123);
47253
47251
  i0.ɵɵlistener("ngModelChange", function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Template_select_ngModelChange_15_listener($event) { i0.ɵɵrestoreView(_r26); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.changeCategoryFilter($event)); });
47254
- i0.ɵɵrepeaterCreate(16, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_For_17_Template, 2, 1, null, null, _forTrack0$k);
47252
+ i0.ɵɵrepeaterCreate(16, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_For_17_Template, 2, 1, null, null, _forTrack0$l);
47255
47253
  i0.ɵɵelementEnd();
47256
47254
  i0.ɵɵelementStart(18, "button", 124);
47257
47255
  i0.ɵɵlistener("click", function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Template_button_click_18_listener() { i0.ɵɵrestoreView(_r26); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.toggleSortOrder()); });
@@ -47265,7 +47263,7 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Te
47265
47263
  i0.ɵɵtext(23, "Sort");
47266
47264
  i0.ɵɵelementEnd()()()();
47267
47265
  i0.ɵɵelementStart(24, "div", 127)(25, "div", 128);
47268
- i0.ɵɵrepeaterCreate(26, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_For_27_Template, 1, 1, null, null, _forTrack0$k);
47266
+ i0.ɵɵrepeaterCreate(26, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_For_27_Template, 1, 1, null, null, _forTrack0$l);
47269
47267
  i0.ɵɵelementEnd()()();
47270
47268
  i0.ɵɵconditionalCreate(28, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Conditional_28_Template, 3, 1, "div", 129)(29, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Conditional_29_Template, 4, 5, "div", 130);
47271
47269
  i0.ɵɵelementEnd()();
@@ -47442,7 +47440,7 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_Te
47442
47440
  i0.ɵɵconditionalCreate(12, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_Conditional_12_Template, 2, 0, "div", 122);
47443
47441
  i0.ɵɵelementStart(13, "select", 164);
47444
47442
  i0.ɵɵlistener("ngModelChange", function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_Template_select_ngModelChange_13_listener($event) { i0.ɵɵrestoreView(_r36); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.changeBreakdownFilter($event)); });
47445
- i0.ɵɵrepeaterCreate(14, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_For_15_Template, 2, 1, null, null, _forTrack0$k);
47443
+ i0.ɵɵrepeaterCreate(14, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_For_15_Template, 2, 1, null, null, _forTrack0$l);
47446
47444
  i0.ɵɵelementEnd()()();
47447
47445
  i0.ɵɵconditionalCreate(16, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_Conditional_16_Template, 3, 1, "div", 95)(17, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_Conditional_17_Template, 4, 5, "div", 165);
47448
47446
  i0.ɵɵelementEnd()();
@@ -47553,7 +47551,7 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_6_Te
47553
47551
  i0.ɵɵconditionalCreate(13, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_6_Conditional_13_Template, 2, 0, "div", 122);
47554
47552
  i0.ɵɵelementStart(14, "select", 123);
47555
47553
  i0.ɵɵlistener("ngModelChange", function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_6_Template_select_ngModelChange_14_listener($event) { i0.ɵɵrestoreView(_r40); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.changeCompetitiveFilter($event)); });
47556
- i0.ɵɵrepeaterCreate(15, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_6_For_16_Template, 2, 1, null, null, _forTrack0$k);
47554
+ i0.ɵɵrepeaterCreate(15, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_6_For_16_Template, 2, 1, null, null, _forTrack0$l);
47557
47555
  i0.ɵɵelementEnd()()();
47558
47556
  i0.ɵɵconditionalCreate(17, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_6_Conditional_17_Template, 6, 5, "div", 95)(18, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_6_Conditional_18_Template, 1, 6, "symphiq-competitive-intelligence-view", 92);
47559
47557
  i0.ɵɵelementEnd()();
@@ -50119,7 +50117,7 @@ function getTrendClasses(trendPercent, viewMode) {
50119
50117
  }
50120
50118
  }
50121
50119
 
50122
- const _forTrack0$j = ($index, $item) => $item.performanceItemId;
50120
+ const _forTrack0$k = ($index, $item) => $item.performanceItemId;
50123
50121
  function SymphiqFunnelAnalysisPreviewComponent_Conditional_12_Template(rf, ctx) { if (rf & 1) {
50124
50122
  i0.ɵɵelementStart(0, "div", 17)(1, "p", 18);
50125
50123
  i0.ɵɵtext(2);
@@ -50738,7 +50736,7 @@ class SymphiqFunnelAnalysisPreviewComponent {
50738
50736
  i0.ɵɵconditionalCreate(12, SymphiqFunnelAnalysisPreviewComponent_Conditional_12_Template, 3, 7, "div", 9);
50739
50737
  i0.ɵɵconditionalCreate(13, SymphiqFunnelAnalysisPreviewComponent_Conditional_13_Template, 18, 23, "div", 10);
50740
50738
  i0.ɵɵelementStart(14, "div", 11);
50741
- i0.ɵɵrepeaterCreate(15, SymphiqFunnelAnalysisPreviewComponent_For_16_Template, 10, 17, "div", 12, _forTrack0$j);
50739
+ i0.ɵɵrepeaterCreate(15, SymphiqFunnelAnalysisPreviewComponent_For_16_Template, 10, 17, "div", 12, _forTrack0$k);
50742
50740
  i0.ɵɵelementEnd();
50743
50741
  i0.ɵɵconditionalCreate(17, SymphiqFunnelAnalysisPreviewComponent_Conditional_17_Template, 9, 11, "div", 9);
50744
50742
  i0.ɵɵconditionalCreate(18, SymphiqFunnelAnalysisPreviewComponent_Conditional_18_Template, 14, 19, "div", 9);
@@ -50981,7 +50979,7 @@ class SymphiqFunnelAnalysisPreviewComponent {
50981
50979
  }], () => [], { analysisInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "funnelAnalysis", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], scrollElement: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollElement", required: false }] }], onViewAnalysis: [{ type: i0.Output, args: ["onViewAnalysis"] }] }); })();
50982
50980
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqFunnelAnalysisPreviewComponent, { className: "SymphiqFunnelAnalysisPreviewComponent", filePath: "lib/components/funnel-analysis-preview/symphiq-funnel-analysis-preview.component.ts", lineNumber: 228 }); })();
50983
50981
 
50984
- const _forTrack0$i = ($index, $item) => $item.id;
50982
+ const _forTrack0$j = ($index, $item) => $item.id;
50985
50983
  function SymphiqWelcomeDashboardComponent_For_65_Template(rf, ctx) { if (rf & 1) {
50986
50984
  i0.ɵɵelementStart(0, "div", 31)(1, "div", 36)(2, "div", 37)(3, "span", 38);
50987
50985
  i0.ɵɵtext(4);
@@ -51276,7 +51274,7 @@ class SymphiqWelcomeDashboardComponent {
51276
51274
  i0.ɵɵtext(62, " Your Onboarding Journey ");
51277
51275
  i0.ɵɵelementEnd();
51278
51276
  i0.ɵɵelementStart(63, "div", 30);
51279
- i0.ɵɵrepeaterCreate(64, SymphiqWelcomeDashboardComponent_For_65_Template, 9, 3, "div", 31, _forTrack0$i);
51277
+ i0.ɵɵrepeaterCreate(64, SymphiqWelcomeDashboardComponent_For_65_Template, 9, 3, "div", 31, _forTrack0$j);
51280
51278
  i0.ɵɵelementEnd()()();
51281
51279
  i0.ɵɵelementStart(66, "div", 32);
51282
51280
  i0.ɵɵnamespaceSVG();
@@ -51517,212 +51515,981 @@ class SymphiqWelcomeDashboardComponent {
51517
51515
  }] }); })();
51518
51516
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqWelcomeDashboardComponent, { className: "SymphiqWelcomeDashboardComponent", filePath: "lib/components/welcome-dashboard/symphiq-welcome-dashboard.component.ts", lineNumber: 201 }); })();
51519
51517
 
51520
- const _c0$q = ["shopNameInput"];
51521
- function SymphiqCreateAccountDashboardComponent_Conditional_23_Conditional_27_Template(rf, ctx) { if (rf & 1) {
51522
- i0.ɵɵtext(0, " Shopify ");
51523
- } }
51524
- function SymphiqCreateAccountDashboardComponent_Conditional_23_Conditional_28_Template(rf, ctx) { if (rf & 1) {
51525
- i0.ɵɵtext(0);
51518
+ function FocusAreaQuestionComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
51519
+ i0.ɵɵelementStart(0, "span", 6);
51520
+ i0.ɵɵtext(1, " Not answered yet ");
51521
+ i0.ɵɵelementEnd();
51526
51522
  } if (rf & 2) {
51527
- const ctx_r1 = i0.ɵɵnextContext(2);
51528
- i0.ɵɵtextInterpolate1(" ", ctx_r1.accountData().otherPlatformName || "Other", " ");
51523
+ const ctx_r0 = i0.ɵɵnextContext();
51524
+ i0.ɵɵproperty("ngClass", ctx_r0.notAnsweredBadgeClasses());
51529
51525
  } }
51530
- function SymphiqCreateAccountDashboardComponent_Conditional_23_Template(rf, ctx) { if (rf & 1) {
51531
- const _r1 = i0.ɵɵgetCurrentView();
51532
- i0.ɵɵelementStart(0, "div", 14)(1, "div", 16)(2, "div", 17)(3, "div")(4, "h2", 18);
51533
- i0.ɵɵtext(5, " Account Details ");
51534
- i0.ɵɵelementEnd();
51535
- i0.ɵɵelementStart(6, "p", 1);
51536
- i0.ɵɵtext(7, " Your shop information ");
51537
- i0.ɵɵelementEnd()();
51538
- i0.ɵɵelementStart(8, "button", 19);
51539
- i0.ɵɵlistener("click", function SymphiqCreateAccountDashboardComponent_Conditional_23_Template_button_click_8_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.enableEditMode()); });
51540
- i0.ɵɵnamespaceSVG();
51541
- i0.ɵɵelementStart(9, "svg", 20);
51542
- i0.ɵɵelement(10, "path", 21);
51543
- i0.ɵɵelementEnd();
51544
- i0.ɵɵtext(11, " Edit ");
51545
- i0.ɵɵelementEnd()();
51546
- i0.ɵɵnamespaceHTML();
51547
- i0.ɵɵelementStart(12, "div", 22)(13, "div")(14, "label", 23);
51548
- i0.ɵɵtext(15, " Shop Name ");
51549
- i0.ɵɵelementEnd();
51550
- i0.ɵɵelementStart(16, "p", 24);
51551
- i0.ɵɵtext(17);
51552
- i0.ɵɵelementEnd()();
51553
- i0.ɵɵelementStart(18, "div")(19, "label", 23);
51554
- i0.ɵɵtext(20, " Shop URL ");
51555
- i0.ɵɵelementEnd();
51556
- i0.ɵɵelementStart(21, "a", 25);
51557
- i0.ɵɵtext(22);
51558
- i0.ɵɵelementEnd()();
51559
- i0.ɵɵelementStart(23, "div")(24, "label", 23);
51560
- i0.ɵɵtext(25, " Shop Platform ");
51561
- i0.ɵɵelementEnd();
51562
- i0.ɵɵelementStart(26, "p", 24);
51563
- i0.ɵɵconditionalCreate(27, SymphiqCreateAccountDashboardComponent_Conditional_23_Conditional_27_Template, 1, 0)(28, SymphiqCreateAccountDashboardComponent_Conditional_23_Conditional_28_Template, 1, 1);
51564
- i0.ɵɵelementEnd()();
51565
- i0.ɵɵelementStart(29, "div")(30, "label", 23);
51566
- i0.ɵɵtext(31, " Company Name ");
51526
+ function FocusAreaQuestionComponent_Conditional_14_Template(rf, ctx) { if (rf & 1) {
51527
+ i0.ɵɵelement(0, "div", 12);
51528
+ } }
51529
+ function FocusAreaQuestionComponent_Conditional_24_Template(rf, ctx) { if (rf & 1) {
51530
+ i0.ɵɵelement(0, "div", 12);
51531
+ } }
51532
+ function FocusAreaQuestionComponent_Conditional_34_Template(rf, ctx) { if (rf & 1) {
51533
+ i0.ɵɵelement(0, "div", 12);
51534
+ } }
51535
+ function FocusAreaQuestionComponent_Conditional_47_For_2_Template(rf, ctx) { if (rf & 1) {
51536
+ i0.ɵɵelementStart(0, "span", 25);
51537
+ i0.ɵɵtext(1);
51567
51538
  i0.ɵɵelementEnd();
51568
- i0.ɵɵelementStart(32, "p", 24);
51569
- i0.ɵɵtext(33);
51570
- i0.ɵɵelementEnd()()()()();
51571
51539
  } if (rf & 2) {
51572
- const ctx_r1 = i0.ɵɵnextContext();
51573
- i0.ɵɵproperty("ngClass", ctx_r1.containerClasses());
51574
- i0.ɵɵadvance();
51575
- i0.ɵɵproperty("ngClass", ctx_r1.contentClasses());
51576
- i0.ɵɵadvance(3);
51577
- i0.ɵɵproperty("ngClass", ctx_r1.sectionTitleClasses());
51578
- i0.ɵɵadvance(2);
51579
- i0.ɵɵproperty("ngClass", ctx_r1.sectionDescriptionClasses());
51580
- i0.ɵɵadvance(2);
51581
- i0.ɵɵproperty("ngClass", ctx_r1.editButtonClasses());
51582
- i0.ɵɵadvance(6);
51583
- i0.ɵɵproperty("ngClass", ctx_r1.viewLabelClasses());
51584
- i0.ɵɵadvance(2);
51585
- i0.ɵɵproperty("ngClass", ctx_r1.viewValueClasses());
51586
- i0.ɵɵadvance();
51587
- i0.ɵɵtextInterpolate1(" ", ctx_r1.accountData().shopName, " ");
51588
- i0.ɵɵadvance(2);
51589
- i0.ɵɵproperty("ngClass", ctx_r1.viewLabelClasses());
51590
- i0.ɵɵadvance(2);
51591
- i0.ɵɵproperty("href", ctx_r1.accountData().shopUrl, i0.ɵɵsanitizeUrl)("ngClass", ctx_r1.viewLinkClasses());
51592
- i0.ɵɵadvance();
51593
- i0.ɵɵtextInterpolate1(" ", ctx_r1.accountData().shopUrl, " ");
51594
- i0.ɵɵadvance(2);
51595
- i0.ɵɵproperty("ngClass", ctx_r1.viewLabelClasses());
51596
- i0.ɵɵadvance(2);
51597
- i0.ɵɵproperty("ngClass", ctx_r1.viewValueClasses());
51598
- i0.ɵɵadvance();
51599
- i0.ɵɵconditional(ctx_r1.accountData().shopPlatform === ctx_r1.ShopPlatformEnum.SHOPIFY ? 27 : 28);
51600
- i0.ɵɵadvance(3);
51601
- i0.ɵɵproperty("ngClass", ctx_r1.viewLabelClasses());
51602
- i0.ɵɵadvance(2);
51603
- i0.ɵɵproperty("ngClass", ctx_r1.viewValueClasses());
51540
+ const tool_r2 = ctx.$implicit;
51541
+ const ctx_r0 = i0.ɵɵnextContext(2);
51542
+ i0.ɵɵproperty("ngClass", ctx_r0.toolChipClasses());
51604
51543
  i0.ɵɵadvance();
51605
- i0.ɵɵtextInterpolate1(" ", ctx_r1.accountData().companyName, " ");
51544
+ i0.ɵɵtextInterpolate1(" ", tool_r2, " ");
51606
51545
  } }
51607
- function SymphiqCreateAccountDashboardComponent_Conditional_24_Conditional_15_Template(rf, ctx) { if (rf & 1) {
51608
- i0.ɵɵelementStart(0, "p", 31);
51609
- i0.ɵɵtext(1, " Shop name is required ");
51546
+ function FocusAreaQuestionComponent_Conditional_47_Template(rf, ctx) { if (rf & 1) {
51547
+ i0.ɵɵelementStart(0, "div", 21);
51548
+ i0.ɵɵrepeaterCreate(1, FocusAreaQuestionComponent_Conditional_47_For_2_Template, 2, 2, "span", 25, i0.ɵɵrepeaterTrackByIdentity);
51610
51549
  i0.ɵɵelementEnd();
51611
51550
  } if (rf & 2) {
51612
- const ctx_r1 = i0.ɵɵnextContext(2);
51613
- i0.ɵɵproperty("ngClass", ctx_r1.errorClasses());
51551
+ const ctx_r0 = i0.ɵɵnextContext();
51552
+ i0.ɵɵadvance();
51553
+ i0.ɵɵrepeater(ctx_r0.selectedTools());
51614
51554
  } }
51615
- function SymphiqCreateAccountDashboardComponent_Conditional_24_Conditional_25_Template(rf, ctx) { if (rf & 1) {
51616
- i0.ɵɵelementStart(0, "p", 31);
51617
- i0.ɵɵtext(1, " Shop URL is required ");
51555
+ function FocusAreaQuestionComponent_Conditional_48_Template(rf, ctx) { if (rf & 1) {
51556
+ i0.ɵɵelementStart(0, "span", 22);
51557
+ i0.ɵɵtext(1, " None specified - Click to select ");
51618
51558
  i0.ɵɵelementEnd();
51619
51559
  } if (rf & 2) {
51620
- const ctx_r1 = i0.ɵɵnextContext(2);
51621
- i0.ɵɵproperty("ngClass", ctx_r1.errorClasses());
51622
- } }
51623
- function SymphiqCreateAccountDashboardComponent_Conditional_24_Conditional_36_Template(rf, ctx) { if (rf & 1) {
51624
- i0.ɵɵelement(0, "div", 41);
51625
- } }
51626
- function SymphiqCreateAccountDashboardComponent_Conditional_24_Conditional_44_Template(rf, ctx) { if (rf & 1) {
51627
- i0.ɵɵelement(0, "div", 41);
51560
+ const ctx_r0 = i0.ɵɵnextContext();
51561
+ i0.ɵɵproperty("ngClass", ctx_r0.placeholderClasses());
51628
51562
  } }
51629
- function SymphiqCreateAccountDashboardComponent_Conditional_24_Conditional_48_Conditional_6_Template(rf, ctx) { if (rf & 1) {
51630
- i0.ɵɵelementStart(0, "p", 31);
51631
- i0.ɵɵtext(1, " Platform name is required ");
51563
+ class FocusAreaQuestionComponent {
51564
+ constructor() {
51565
+ this.focusAreaDomain = input.required(...(ngDevMode ? [{ debugName: "focusAreaDomain" }] : []));
51566
+ this.selectedStatus = input(null, ...(ngDevMode ? [{ debugName: "selectedStatus" }] : []));
51567
+ this.selectedTools = input(null, ...(ngDevMode ? [{ debugName: "selectedTools" }] : []));
51568
+ this.viewMode = input(ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "viewMode" }] : []));
51569
+ this.title = input.required(...(ngDevMode ? [{ debugName: "title" }] : []));
51570
+ this.description = input.required(...(ngDevMode ? [{ debugName: "description" }] : []));
51571
+ this.isAnswered = computed(() => this.selectedStatus() !== null, ...(ngDevMode ? [{ debugName: "isAnswered" }] : []));
51572
+ this.statusChange = output();
51573
+ this.toolsClick = output();
51574
+ this.FocusAreaDetailStatusEnum = FocusAreaDetailStatusEnum;
51575
+ }
51576
+ isLightMode() {
51577
+ return this.viewMode() === ViewModeEnum.LIGHT;
51578
+ }
51579
+ onStatusChange(status) {
51580
+ this.statusChange.emit(status);
51581
+ }
51582
+ onToolsClick() {
51583
+ this.toolsClick.emit();
51584
+ }
51585
+ containerClasses() {
51586
+ return this.isLightMode()
51587
+ ? 'bg-white border-slate-200'
51588
+ : 'bg-slate-800 border-slate-700';
51589
+ }
51590
+ contentClasses() {
51591
+ return this.isLightMode()
51592
+ ? 'bg-gradient-to-br from-white to-slate-50'
51593
+ : 'bg-gradient-to-br from-slate-800 to-slate-900';
51594
+ }
51595
+ titleClasses() {
51596
+ return this.isLightMode()
51597
+ ? 'text-slate-900'
51598
+ : 'text-white';
51599
+ }
51600
+ descriptionClasses() {
51601
+ return this.isLightMode()
51602
+ ? 'text-slate-600'
51603
+ : 'text-slate-400';
51604
+ }
51605
+ notAnsweredBadgeClasses() {
51606
+ return this.isLightMode()
51607
+ ? 'bg-orange-100 text-orange-700 border border-orange-200'
51608
+ : 'bg-orange-900/30 text-orange-400 border border-orange-700';
51609
+ }
51610
+ radioOptionClasses(status) {
51611
+ const isSelected = this.selectedStatus() === status;
51612
+ const base = 'transition-all duration-200';
51613
+ if (status === FocusAreaDetailStatusEnum.ENGAGED) {
51614
+ return this.isLightMode()
51615
+ ? isSelected ? `${base} opacity-100` : `${base} opacity-100 hover:opacity-100`
51616
+ : isSelected ? `${base} opacity-100` : `${base} opacity-100 hover:opacity-100`;
51617
+ }
51618
+ if (status === FocusAreaDetailStatusEnum.NOT_ENGAGED_BUT_WANT_TO) {
51619
+ return this.isLightMode()
51620
+ ? isSelected ? `${base} opacity-100` : `${base} opacity-100 hover:opacity-100`
51621
+ : isSelected ? `${base} opacity-100` : `${base} opacity-100 hover:opacity-100`;
51622
+ }
51623
+ return this.isLightMode()
51624
+ ? isSelected ? `${base} opacity-100` : `${base} opacity-100 hover:opacity-100`
51625
+ : isSelected ? `${base} opacity-100` : `${base} opacity-100 hover:opacity-100`;
51626
+ }
51627
+ radioIndicatorClasses(status) {
51628
+ const isSelected = this.selectedStatus() === status;
51629
+ if (status === FocusAreaDetailStatusEnum.ENGAGED) {
51630
+ return this.isLightMode()
51631
+ ? isSelected ? 'border-emerald-500 text-emerald-600' : 'border-slate-300 text-slate-300'
51632
+ : isSelected ? 'border-emerald-400 text-emerald-400' : 'border-slate-600 text-slate-600';
51633
+ }
51634
+ if (status === FocusAreaDetailStatusEnum.NOT_ENGAGED_BUT_WANT_TO) {
51635
+ return this.isLightMode()
51636
+ ? isSelected ? 'border-blue-500 text-blue-600' : 'border-slate-300 text-slate-300'
51637
+ : isSelected ? 'border-blue-400 text-blue-400' : 'border-slate-600 text-slate-600';
51638
+ }
51639
+ return this.isLightMode()
51640
+ ? isSelected ? 'border-rose-500 text-rose-600' : 'border-slate-300 text-slate-300'
51641
+ : isSelected ? 'border-rose-400 text-rose-400' : 'border-slate-600 text-slate-600';
51642
+ }
51643
+ radioLabelClasses(status) {
51644
+ const isSelected = this.selectedStatus() === status;
51645
+ if (status === FocusAreaDetailStatusEnum.ENGAGED) {
51646
+ return this.isLightMode()
51647
+ ? isSelected ? 'text-emerald-700' : 'text-slate-900'
51648
+ : isSelected ? 'text-emerald-300' : 'text-white';
51649
+ }
51650
+ if (status === FocusAreaDetailStatusEnum.NOT_ENGAGED_BUT_WANT_TO) {
51651
+ return this.isLightMode()
51652
+ ? isSelected ? 'text-blue-700' : 'text-slate-900'
51653
+ : isSelected ? 'text-blue-300' : 'text-white';
51654
+ }
51655
+ return this.isLightMode()
51656
+ ? isSelected ? 'text-rose-700' : 'text-slate-900'
51657
+ : isSelected ? 'text-rose-300' : 'text-white';
51658
+ }
51659
+ radioDescriptionClasses() {
51660
+ return this.isLightMode()
51661
+ ? 'text-slate-600'
51662
+ : 'text-slate-400';
51663
+ }
51664
+ toolsLabelClasses() {
51665
+ return this.isLightMode()
51666
+ ? 'text-slate-700'
51667
+ : 'text-slate-300';
51668
+ }
51669
+ toolsButtonClasses() {
51670
+ return this.isLightMode()
51671
+ ? 'bg-white border-slate-300 hover:border-blue-400 hover:bg-blue-50 text-slate-900'
51672
+ : 'bg-slate-700 border-slate-600 hover:border-blue-400 hover:bg-slate-600 text-white';
51673
+ }
51674
+ toolChipClasses() {
51675
+ return this.isLightMode()
51676
+ ? 'bg-blue-100 text-blue-700 border border-blue-200'
51677
+ : 'bg-blue-900/30 text-blue-300 border border-blue-700';
51678
+ }
51679
+ placeholderClasses() {
51680
+ return this.isLightMode()
51681
+ ? 'text-slate-500'
51682
+ : 'text-slate-400';
51683
+ }
51684
+ editIconClasses() {
51685
+ return this.isLightMode()
51686
+ ? 'text-slate-400'
51687
+ : 'text-slate-500';
51688
+ }
51689
+ static { this.ɵfac = function FocusAreaQuestionComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || FocusAreaQuestionComponent)(); }; }
51690
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FocusAreaQuestionComponent, selectors: [["symphiq-focus-area-question"]], inputs: { focusAreaDomain: [1, "focusAreaDomain"], selectedStatus: [1, "selectedStatus"], selectedTools: [1, "selectedTools"], viewMode: [1, "viewMode"], title: [1, "title"], description: [1, "description"] }, outputs: { statusChange: "statusChange", toolsClick: "toolsClick" }, decls: 51, vars: 31, consts: [[1, "rounded-xl", "border-2", "overflow-hidden", 3, "ngClass"], [1, "p-6", 3, "ngClass"], [1, "flex", "items-start", "justify-between", "mb-4"], [1, "flex-1"], [1, "text-lg", "font-bold", "mb-2", 3, "ngClass"], [1, "text-sm", "leading-relaxed", 3, "ngClass"], [1, "ml-3", "px-3", "py-1", "rounded-full", "text-xs", "font-semibold", "whitespace-nowrap", "flex-shrink-0", 3, "ngClass"], [1, "space-y-3", "mt-5"], [1, "cursor-pointer", "block", 3, "ngClass"], ["type", "radio", 1, "sr-only", 3, "change", "checked"], [1, "flex", "items-center", "gap-3", "p-4", "rounded-lg", "border-2", "transition-all", "duration-200"], [1, "w-5", "h-5", "rounded-full", "border-2", "flex", "items-center", "justify-center", "flex-shrink-0", 3, "ngClass"], [1, "w-3", "h-3", "rounded-full", "bg-current"], [1, "font-semibold", "text-sm", 3, "ngClass"], [1, "text-xs", "mt-0.5", 3, "ngClass"], [1, "grid", "transition-all", "duration-300", "ease-in-out"], [1, "overflow-hidden"], [1, "mt-4"], [1, "block", "text-sm", "font-semibold", "mb-2", 3, "ngClass"], ["type", "button", 1, "w-full", "px-4", "py-3", "rounded-lg", "border-2", "transition-all", "duration-200", "hover:scale-[1.01]", "flex", "items-center", "justify-between", "cursor-pointer", 3, "click", "ngClass"], [1, "flex", "items-center", "gap-2", "flex-1", "min-w-0"], [1, "flex", "flex-wrap", "gap-1.5"], [1, "text-sm", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4", "flex-shrink-0", "ml-2", 3, "ngClass"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"], [1, "px-2", "py-1", "rounded", "text-xs", "font-medium", 3, "ngClass"]], template: function FocusAreaQuestionComponent_Template(rf, ctx) { if (rf & 1) {
51691
+ i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "div", 3)(4, "h3", 4);
51692
+ i0.ɵɵtext(5);
51693
+ i0.ɵɵelementEnd();
51694
+ i0.ɵɵelementStart(6, "p", 5);
51695
+ i0.ɵɵtext(7);
51696
+ i0.ɵɵelementEnd()();
51697
+ i0.ɵɵconditionalCreate(8, FocusAreaQuestionComponent_Conditional_8_Template, 2, 1, "span", 6);
51698
+ i0.ɵɵelementEnd();
51699
+ i0.ɵɵelementStart(9, "div", 7)(10, "label", 8)(11, "input", 9);
51700
+ i0.ɵɵlistener("change", function FocusAreaQuestionComponent_Template_input_change_11_listener() { return ctx.onStatusChange(ctx.FocusAreaDetailStatusEnum.ENGAGED); });
51701
+ i0.ɵɵelementEnd();
51702
+ i0.ɵɵelementStart(12, "div", 10)(13, "div", 11);
51703
+ i0.ɵɵconditionalCreate(14, FocusAreaQuestionComponent_Conditional_14_Template, 1, 0, "div", 12);
51704
+ i0.ɵɵelementEnd();
51705
+ i0.ɵɵelementStart(15, "div", 3)(16, "div", 13);
51706
+ i0.ɵɵtext(17, " Engaged ");
51707
+ i0.ɵɵelementEnd();
51708
+ i0.ɵɵelementStart(18, "div", 14);
51709
+ i0.ɵɵtext(19, " We are currently engaged in this area ");
51710
+ i0.ɵɵelementEnd()()()();
51711
+ i0.ɵɵelementStart(20, "label", 8)(21, "input", 9);
51712
+ i0.ɵɵlistener("change", function FocusAreaQuestionComponent_Template_input_change_21_listener() { return ctx.onStatusChange(ctx.FocusAreaDetailStatusEnum.NOT_ENGAGED_BUT_WANT_TO); });
51713
+ i0.ɵɵelementEnd();
51714
+ i0.ɵɵelementStart(22, "div", 10)(23, "div", 11);
51715
+ i0.ɵɵconditionalCreate(24, FocusAreaQuestionComponent_Conditional_24_Template, 1, 0, "div", 12);
51716
+ i0.ɵɵelementEnd();
51717
+ i0.ɵɵelementStart(25, "div", 3)(26, "div", 13);
51718
+ i0.ɵɵtext(27, " Interested ");
51719
+ i0.ɵɵelementEnd();
51720
+ i0.ɵɵelementStart(28, "div", 14);
51721
+ i0.ɵɵtext(29, " We are interested in this area but not engaged with it yet ");
51722
+ i0.ɵɵelementEnd()()()();
51723
+ i0.ɵɵelementStart(30, "label", 8)(31, "input", 9);
51724
+ i0.ɵɵlistener("change", function FocusAreaQuestionComponent_Template_input_change_31_listener() { return ctx.onStatusChange(ctx.FocusAreaDetailStatusEnum.NOT_ENGAGED_AND_NO_INTEREST); });
51725
+ i0.ɵɵelementEnd();
51726
+ i0.ɵɵelementStart(32, "div", 10)(33, "div", 11);
51727
+ i0.ɵɵconditionalCreate(34, FocusAreaQuestionComponent_Conditional_34_Template, 1, 0, "div", 12);
51728
+ i0.ɵɵelementEnd();
51729
+ i0.ɵɵelementStart(35, "div", 3)(36, "div", 13);
51730
+ i0.ɵɵtext(37, " Not interested ");
51731
+ i0.ɵɵelementEnd();
51732
+ i0.ɵɵelementStart(38, "div", 14);
51733
+ i0.ɵɵtext(39, " We have no interest in this area ");
51734
+ i0.ɵɵelementEnd()()()()();
51735
+ i0.ɵɵelementStart(40, "div", 15)(41, "div", 16)(42, "div", 17)(43, "label", 18);
51736
+ i0.ɵɵtext(44, " Marketing automation tools used ");
51737
+ i0.ɵɵelementEnd();
51738
+ i0.ɵɵelementStart(45, "button", 19);
51739
+ i0.ɵɵlistener("click", function FocusAreaQuestionComponent_Template_button_click_45_listener() { return ctx.onToolsClick(); });
51740
+ i0.ɵɵelementStart(46, "div", 20);
51741
+ i0.ɵɵconditionalCreate(47, FocusAreaQuestionComponent_Conditional_47_Template, 3, 0, "div", 21)(48, FocusAreaQuestionComponent_Conditional_48_Template, 2, 1, "span", 22);
51742
+ i0.ɵɵelementEnd();
51743
+ i0.ɵɵnamespaceSVG();
51744
+ i0.ɵɵelementStart(49, "svg", 23);
51745
+ i0.ɵɵelement(50, "path", 24);
51746
+ i0.ɵɵelementEnd()()()()()()();
51747
+ } if (rf & 2) {
51748
+ i0.ɵɵproperty("ngClass", ctx.containerClasses());
51749
+ i0.ɵɵadvance();
51750
+ i0.ɵɵproperty("ngClass", ctx.contentClasses());
51751
+ i0.ɵɵadvance(3);
51752
+ i0.ɵɵproperty("ngClass", ctx.titleClasses());
51753
+ i0.ɵɵadvance();
51754
+ i0.ɵɵtextInterpolate1(" ", ctx.title(), " ");
51755
+ i0.ɵɵadvance();
51756
+ i0.ɵɵproperty("ngClass", ctx.descriptionClasses());
51757
+ i0.ɵɵadvance();
51758
+ i0.ɵɵtextInterpolate1(" ", ctx.description(), " ");
51759
+ i0.ɵɵadvance();
51760
+ i0.ɵɵconditional(!ctx.isAnswered() ? 8 : -1);
51761
+ i0.ɵɵadvance(2);
51762
+ i0.ɵɵproperty("ngClass", ctx.radioOptionClasses(ctx.FocusAreaDetailStatusEnum.ENGAGED));
51763
+ i0.ɵɵadvance();
51764
+ i0.ɵɵproperty("checked", ctx.selectedStatus() === ctx.FocusAreaDetailStatusEnum.ENGAGED);
51765
+ i0.ɵɵadvance(2);
51766
+ i0.ɵɵproperty("ngClass", ctx.radioIndicatorClasses(ctx.FocusAreaDetailStatusEnum.ENGAGED));
51767
+ i0.ɵɵadvance();
51768
+ i0.ɵɵconditional(ctx.selectedStatus() === ctx.FocusAreaDetailStatusEnum.ENGAGED ? 14 : -1);
51769
+ i0.ɵɵadvance(2);
51770
+ i0.ɵɵproperty("ngClass", ctx.radioLabelClasses(ctx.FocusAreaDetailStatusEnum.ENGAGED));
51771
+ i0.ɵɵadvance(2);
51772
+ i0.ɵɵproperty("ngClass", ctx.radioDescriptionClasses());
51773
+ i0.ɵɵadvance(2);
51774
+ i0.ɵɵproperty("ngClass", ctx.radioOptionClasses(ctx.FocusAreaDetailStatusEnum.NOT_ENGAGED_BUT_WANT_TO));
51775
+ i0.ɵɵadvance();
51776
+ i0.ɵɵproperty("checked", ctx.selectedStatus() === ctx.FocusAreaDetailStatusEnum.NOT_ENGAGED_BUT_WANT_TO);
51777
+ i0.ɵɵadvance(2);
51778
+ i0.ɵɵproperty("ngClass", ctx.radioIndicatorClasses(ctx.FocusAreaDetailStatusEnum.NOT_ENGAGED_BUT_WANT_TO));
51779
+ i0.ɵɵadvance();
51780
+ i0.ɵɵconditional(ctx.selectedStatus() === ctx.FocusAreaDetailStatusEnum.NOT_ENGAGED_BUT_WANT_TO ? 24 : -1);
51781
+ i0.ɵɵadvance(2);
51782
+ i0.ɵɵproperty("ngClass", ctx.radioLabelClasses(ctx.FocusAreaDetailStatusEnum.NOT_ENGAGED_BUT_WANT_TO));
51783
+ i0.ɵɵadvance(2);
51784
+ i0.ɵɵproperty("ngClass", ctx.radioDescriptionClasses());
51785
+ i0.ɵɵadvance(2);
51786
+ i0.ɵɵproperty("ngClass", ctx.radioOptionClasses(ctx.FocusAreaDetailStatusEnum.NOT_ENGAGED_AND_NO_INTEREST));
51787
+ i0.ɵɵadvance();
51788
+ i0.ɵɵproperty("checked", ctx.selectedStatus() === ctx.FocusAreaDetailStatusEnum.NOT_ENGAGED_AND_NO_INTEREST);
51789
+ i0.ɵɵadvance(2);
51790
+ i0.ɵɵproperty("ngClass", ctx.radioIndicatorClasses(ctx.FocusAreaDetailStatusEnum.NOT_ENGAGED_AND_NO_INTEREST));
51791
+ i0.ɵɵadvance();
51792
+ i0.ɵɵconditional(ctx.selectedStatus() === ctx.FocusAreaDetailStatusEnum.NOT_ENGAGED_AND_NO_INTEREST ? 34 : -1);
51793
+ i0.ɵɵadvance(2);
51794
+ i0.ɵɵproperty("ngClass", ctx.radioLabelClasses(ctx.FocusAreaDetailStatusEnum.NOT_ENGAGED_AND_NO_INTEREST));
51795
+ i0.ɵɵadvance(2);
51796
+ i0.ɵɵproperty("ngClass", ctx.radioDescriptionClasses());
51797
+ i0.ɵɵadvance(2);
51798
+ i0.ɵɵstyleProp("grid-template-rows", ctx.selectedStatus() === ctx.FocusAreaDetailStatusEnum.ENGAGED ? "1fr" : "0fr");
51799
+ i0.ɵɵadvance(3);
51800
+ i0.ɵɵproperty("ngClass", ctx.toolsLabelClasses());
51801
+ i0.ɵɵadvance(2);
51802
+ i0.ɵɵproperty("ngClass", ctx.toolsButtonClasses());
51803
+ i0.ɵɵadvance(2);
51804
+ i0.ɵɵconditional(ctx.selectedTools() && ctx.selectedTools().length > 0 ? 47 : 48);
51805
+ i0.ɵɵadvance(2);
51806
+ i0.ɵɵproperty("ngClass", ctx.editIconClasses());
51807
+ } }, dependencies: [CommonModule, i1$1.NgClass], encapsulation: 2, changeDetection: 0 }); }
51808
+ }
51809
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FocusAreaQuestionComponent, [{
51810
+ type: Component,
51811
+ args: [{ selector: 'symphiq-focus-area-question', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: `
51812
+ <div [ngClass]="containerClasses()" class="rounded-xl border-2 overflow-hidden">
51813
+ <div [ngClass]="contentClasses()" class="p-6">
51814
+ <div class="flex items-start justify-between mb-4">
51815
+ <div class="flex-1">
51816
+ <h3 [ngClass]="titleClasses()" class="text-lg font-bold mb-2">
51817
+ {{ title() }}
51818
+ </h3>
51819
+ <p [ngClass]="descriptionClasses()" class="text-sm leading-relaxed">
51820
+ {{ description() }}
51821
+ </p>
51822
+ </div>
51823
+ @if (!isAnswered()) {
51824
+ <span [ngClass]="notAnsweredBadgeClasses()" class="ml-3 px-3 py-1 rounded-full text-xs font-semibold whitespace-nowrap flex-shrink-0">
51825
+ Not answered yet
51826
+ </span>
51827
+ }
51828
+ </div>
51829
+
51830
+ <div class="space-y-3 mt-5">
51831
+ <label
51832
+ [ngClass]="radioOptionClasses(FocusAreaDetailStatusEnum.ENGAGED)"
51833
+ class="cursor-pointer block">
51834
+ <input
51835
+ type="radio"
51836
+ [checked]="selectedStatus() === FocusAreaDetailStatusEnum.ENGAGED"
51837
+ (change)="onStatusChange(FocusAreaDetailStatusEnum.ENGAGED)"
51838
+ class="sr-only"
51839
+ />
51840
+ <div class="flex items-center gap-3 p-4 rounded-lg border-2 transition-all duration-200">
51841
+ <div [ngClass]="radioIndicatorClasses(FocusAreaDetailStatusEnum.ENGAGED)" class="w-5 h-5 rounded-full border-2 flex items-center justify-center flex-shrink-0">
51842
+ @if (selectedStatus() === FocusAreaDetailStatusEnum.ENGAGED) {
51843
+ <div class="w-3 h-3 rounded-full bg-current"></div>
51844
+ }
51845
+ </div>
51846
+ <div class="flex-1">
51847
+ <div [ngClass]="radioLabelClasses(FocusAreaDetailStatusEnum.ENGAGED)" class="font-semibold text-sm">
51848
+ Engaged
51849
+ </div>
51850
+ <div [ngClass]="radioDescriptionClasses()" class="text-xs mt-0.5">
51851
+ We are currently engaged in this area
51852
+ </div>
51853
+ </div>
51854
+ </div>
51855
+ </label>
51856
+
51857
+ <label
51858
+ [ngClass]="radioOptionClasses(FocusAreaDetailStatusEnum.NOT_ENGAGED_BUT_WANT_TO)"
51859
+ class="cursor-pointer block">
51860
+ <input
51861
+ type="radio"
51862
+ [checked]="selectedStatus() === FocusAreaDetailStatusEnum.NOT_ENGAGED_BUT_WANT_TO"
51863
+ (change)="onStatusChange(FocusAreaDetailStatusEnum.NOT_ENGAGED_BUT_WANT_TO)"
51864
+ class="sr-only"
51865
+ />
51866
+ <div class="flex items-center gap-3 p-4 rounded-lg border-2 transition-all duration-200">
51867
+ <div [ngClass]="radioIndicatorClasses(FocusAreaDetailStatusEnum.NOT_ENGAGED_BUT_WANT_TO)" class="w-5 h-5 rounded-full border-2 flex items-center justify-center flex-shrink-0">
51868
+ @if (selectedStatus() === FocusAreaDetailStatusEnum.NOT_ENGAGED_BUT_WANT_TO) {
51869
+ <div class="w-3 h-3 rounded-full bg-current"></div>
51870
+ }
51871
+ </div>
51872
+ <div class="flex-1">
51873
+ <div [ngClass]="radioLabelClasses(FocusAreaDetailStatusEnum.NOT_ENGAGED_BUT_WANT_TO)" class="font-semibold text-sm">
51874
+ Interested
51875
+ </div>
51876
+ <div [ngClass]="radioDescriptionClasses()" class="text-xs mt-0.5">
51877
+ We are interested in this area but not engaged with it yet
51878
+ </div>
51879
+ </div>
51880
+ </div>
51881
+ </label>
51882
+
51883
+ <label
51884
+ [ngClass]="radioOptionClasses(FocusAreaDetailStatusEnum.NOT_ENGAGED_AND_NO_INTEREST)"
51885
+ class="cursor-pointer block">
51886
+ <input
51887
+ type="radio"
51888
+ [checked]="selectedStatus() === FocusAreaDetailStatusEnum.NOT_ENGAGED_AND_NO_INTEREST"
51889
+ (change)="onStatusChange(FocusAreaDetailStatusEnum.NOT_ENGAGED_AND_NO_INTEREST)"
51890
+ class="sr-only"
51891
+ />
51892
+ <div class="flex items-center gap-3 p-4 rounded-lg border-2 transition-all duration-200">
51893
+ <div [ngClass]="radioIndicatorClasses(FocusAreaDetailStatusEnum.NOT_ENGAGED_AND_NO_INTEREST)" class="w-5 h-5 rounded-full border-2 flex items-center justify-center flex-shrink-0">
51894
+ @if (selectedStatus() === FocusAreaDetailStatusEnum.NOT_ENGAGED_AND_NO_INTEREST) {
51895
+ <div class="w-3 h-3 rounded-full bg-current"></div>
51896
+ }
51897
+ </div>
51898
+ <div class="flex-1">
51899
+ <div [ngClass]="radioLabelClasses(FocusAreaDetailStatusEnum.NOT_ENGAGED_AND_NO_INTEREST)" class="font-semibold text-sm">
51900
+ Not interested
51901
+ </div>
51902
+ <div [ngClass]="radioDescriptionClasses()" class="text-xs mt-0.5">
51903
+ We have no interest in this area
51904
+ </div>
51905
+ </div>
51906
+ </div>
51907
+ </label>
51908
+ </div>
51909
+
51910
+ <!-- Tools Field with Grid Animation -->
51911
+ <div
51912
+ class="grid transition-all duration-300 ease-in-out"
51913
+ [style.grid-template-rows]="selectedStatus() === FocusAreaDetailStatusEnum.ENGAGED ? '1fr' : '0fr'">
51914
+ <div class="overflow-hidden">
51915
+ <div class="mt-4">
51916
+ <label [ngClass]="toolsLabelClasses()" class="block text-sm font-semibold mb-2">
51917
+ Marketing automation tools used
51918
+ </label>
51919
+ <button
51920
+ type="button"
51921
+ (click)="onToolsClick()"
51922
+ [ngClass]="toolsButtonClasses()"
51923
+ class="w-full px-4 py-3 rounded-lg border-2 transition-all duration-200 hover:scale-[1.01] flex items-center justify-between cursor-pointer">
51924
+ <div class="flex items-center gap-2 flex-1 min-w-0">
51925
+ @if (selectedTools() && selectedTools()!.length > 0) {
51926
+ <div class="flex flex-wrap gap-1.5">
51927
+ @for (tool of selectedTools(); track tool) {
51928
+ <span [ngClass]="toolChipClasses()" class="px-2 py-1 rounded text-xs font-medium">
51929
+ {{ tool }}
51930
+ </span>
51931
+ }
51932
+ </div>
51933
+ } @else {
51934
+ <span [ngClass]="placeholderClasses()" class="text-sm">
51935
+ None specified - Click to select
51936
+ </span>
51937
+ }
51938
+ </div>
51939
+ <svg [ngClass]="editIconClasses()" class="w-4 h-4 flex-shrink-0 ml-2" fill="none" stroke="currentColor" viewBox="0 0 24 24">
51940
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"/>
51941
+ </svg>
51942
+ </button>
51943
+ </div>
51944
+ </div>
51945
+ </div>
51946
+ </div>
51947
+ </div>
51948
+ ` }]
51949
+ }], null, { focusAreaDomain: [{ type: i0.Input, args: [{ isSignal: true, alias: "focusAreaDomain", required: true }] }], selectedStatus: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedStatus", required: false }] }], selectedTools: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedTools", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: true }] }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: "description", required: true }] }], statusChange: [{ type: i0.Output, args: ["statusChange"] }], toolsClick: [{ type: i0.Output, args: ["toolsClick"] }] }); })();
51950
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FocusAreaQuestionComponent, { className: "FocusAreaQuestionComponent", filePath: "lib/components/create-account-dashboard/focus-area-question.component.ts", lineNumber: 156 }); })();
51951
+
51952
+ function FocusAreaToolsModalComponent_Conditional_0_Conditional_10_For_5_Template(rf, ctx) { if (rf & 1) {
51953
+ const _r3 = i0.ɵɵgetCurrentView();
51954
+ i0.ɵɵelementStart(0, "label", 17)(1, "input", 18);
51955
+ i0.ɵɵlistener("change", function FocusAreaToolsModalComponent_Conditional_0_Conditional_10_For_5_Template_input_change_1_listener($event) { const tool_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onToolToggle(tool_r4, $event)); });
51632
51956
  i0.ɵɵelementEnd();
51633
- } if (rf & 2) {
51634
- const ctx_r1 = i0.ɵɵnextContext(3);
51635
- i0.ɵɵproperty("ngClass", ctx_r1.errorClasses());
51636
- } }
51637
- function SymphiqCreateAccountDashboardComponent_Conditional_24_Conditional_48_Template(rf, ctx) { if (rf & 1) {
51638
- i0.ɵɵelementStart(0, "div")(1, "label", 28);
51639
- i0.ɵɵtext(2, " Platform Name ");
51640
- i0.ɵɵelementStart(3, "span", 29);
51641
- i0.ɵɵtext(4, "*");
51957
+ i0.ɵɵelementStart(2, "span", 19);
51958
+ i0.ɵɵtext(3);
51642
51959
  i0.ɵɵelementEnd()();
51643
- i0.ɵɵelement(5, "input", 49);
51644
- i0.ɵɵconditionalCreate(6, SymphiqCreateAccountDashboardComponent_Conditional_24_Conditional_48_Conditional_6_Template, 2, 1, "p", 31);
51645
- i0.ɵɵelementEnd();
51646
51960
  } if (rf & 2) {
51647
- const ctx_r1 = i0.ɵɵnextContext(2);
51961
+ const tool_r4 = ctx.$implicit;
51962
+ const ctx_r1 = i0.ɵɵnextContext(3);
51648
51963
  i0.ɵɵadvance();
51649
- i0.ɵɵproperty("ngClass", ctx_r1.labelClasses());
51650
- i0.ɵɵadvance(4);
51651
- i0.ɵɵproperty("ngClass", ctx_r1.inputClasses("otherPlatformName"));
51964
+ i0.ɵɵproperty("checked", ctx_r1.isToolSelected(tool_r4))("ngClass", ctx_r1.checkboxClasses());
51652
51965
  i0.ɵɵadvance();
51653
- i0.ɵɵconditional(ctx_r1.isFieldInvalid("otherPlatformName") ? 6 : -1);
51966
+ i0.ɵɵproperty("ngClass", ctx_r1.checkboxLabelClasses());
51967
+ i0.ɵɵadvance();
51968
+ i0.ɵɵtextInterpolate1(" ", tool_r4, " ");
51654
51969
  } }
51655
- function SymphiqCreateAccountDashboardComponent_Conditional_24_Conditional_60_Template(rf, ctx) { if (rf & 1) {
51656
- i0.ɵɵelementStart(0, "p", 31);
51657
- i0.ɵɵtext(1, " Company name is required ");
51970
+ function FocusAreaToolsModalComponent_Conditional_0_Conditional_10_Template(rf, ctx) { if (rf & 1) {
51971
+ i0.ɵɵelementStart(0, "div", 10)(1, "label", 15);
51972
+ i0.ɵɵtext(2, " Select tools from the list: ");
51658
51973
  i0.ɵɵelementEnd();
51974
+ i0.ɵɵelementStart(3, "div", 16);
51975
+ i0.ɵɵrepeaterCreate(4, FocusAreaToolsModalComponent_Conditional_0_Conditional_10_For_5_Template, 4, 4, "label", 17, i0.ɵɵrepeaterTrackByIdentity);
51976
+ i0.ɵɵelementEnd()();
51659
51977
  } if (rf & 2) {
51660
51978
  const ctx_r1 = i0.ɵɵnextContext(2);
51661
- i0.ɵɵproperty("ngClass", ctx_r1.errorClasses());
51979
+ i0.ɵɵadvance();
51980
+ i0.ɵɵproperty("ngClass", ctx_r1.labelClasses());
51981
+ i0.ɵɵadvance(3);
51982
+ i0.ɵɵrepeater(ctx_r1.predefinedTools());
51662
51983
  } }
51663
- function SymphiqCreateAccountDashboardComponent_Conditional_24_Template(rf, ctx) { if (rf & 1) {
51664
- const _r3 = i0.ɵɵgetCurrentView();
51665
- i0.ɵɵelementStart(0, "div", 14)(1, "div", 16)(2, "div", 26)(3, "h2", 18);
51666
- i0.ɵɵtext(4, " Create Account ");
51667
- i0.ɵɵelementEnd();
51668
- i0.ɵɵelementStart(5, "p", 1);
51669
- i0.ɵɵtext(6, " Enter your shop details to get started with Symphiq ");
51670
- i0.ɵɵelementEnd()();
51671
- i0.ɵɵelementStart(7, "form", 27)(8, "div")(9, "label", 28);
51672
- i0.ɵɵtext(10, " Shop Name ");
51673
- i0.ɵɵelementStart(11, "span", 29);
51674
- i0.ɵɵtext(12, "*");
51675
- i0.ɵɵelementEnd()();
51676
- i0.ɵɵelement(13, "input", 30, 0);
51677
- i0.ɵɵconditionalCreate(15, SymphiqCreateAccountDashboardComponent_Conditional_24_Conditional_15_Template, 2, 1, "p", 31);
51678
- i0.ɵɵelementEnd();
51679
- i0.ɵɵelementStart(16, "div")(17, "label", 28);
51680
- i0.ɵɵtext(18, " Shop URL ");
51681
- i0.ɵɵelementStart(19, "span", 29);
51682
- i0.ɵɵtext(20, "*");
51683
- i0.ɵɵelementEnd()();
51684
- i0.ɵɵelementStart(21, "div", 32)(22, "span", 33);
51685
- i0.ɵɵtext(23, " https:// ");
51686
- i0.ɵɵelementEnd();
51687
- i0.ɵɵelement(24, "input", 34);
51984
+ function FocusAreaToolsModalComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
51985
+ const _r1 = i0.ɵɵgetCurrentView();
51986
+ i0.ɵɵelementStart(0, "div", 1);
51987
+ i0.ɵɵlistener("click", function FocusAreaToolsModalComponent_Conditional_0_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onBackdropClick()); });
51988
+ i0.ɵɵelement(1, "div", 2);
51989
+ i0.ɵɵelementStart(2, "div", 3);
51990
+ i0.ɵɵlistener("click", function FocusAreaToolsModalComponent_Conditional_0_Template_div_click_2_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView($event.stopPropagation()); });
51991
+ i0.ɵɵelementStart(3, "div", 4)(4, "h3", 5);
51992
+ i0.ɵɵtext(5);
51688
51993
  i0.ɵɵelementEnd();
51689
- i0.ɵɵconditionalCreate(25, SymphiqCreateAccountDashboardComponent_Conditional_24_Conditional_25_Template, 2, 1, "p", 31);
51994
+ i0.ɵɵelementStart(6, "button", 6);
51995
+ i0.ɵɵlistener("click", function FocusAreaToolsModalComponent_Conditional_0_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onClose()); });
51996
+ i0.ɵɵnamespaceSVG();
51997
+ i0.ɵɵelementStart(7, "svg", 7);
51998
+ i0.ɵɵelement(8, "path", 8);
51999
+ i0.ɵɵelementEnd()()();
52000
+ i0.ɵɵnamespaceHTML();
52001
+ i0.ɵɵelementStart(9, "div", 9);
52002
+ i0.ɵɵconditionalCreate(10, FocusAreaToolsModalComponent_Conditional_0_Conditional_10_Template, 6, 1, "div", 10);
52003
+ i0.ɵɵelementStart(11, "div")(12, "label", 11);
52004
+ i0.ɵɵtext(13, " Other tools, separated by commas or returns: ");
51690
52005
  i0.ɵɵelementEnd();
51691
- i0.ɵɵelementStart(26, "div")(27, "label", 35);
51692
- i0.ɵɵtext(28, " Shop Platform ");
51693
- i0.ɵɵelementStart(29, "span", 29);
51694
- i0.ɵɵtext(30, "*");
51695
- i0.ɵɵelementEnd()();
51696
- i0.ɵɵelementStart(31, "div", 36)(32, "label", 37);
51697
- i0.ɵɵelement(33, "input", 38);
51698
- i0.ɵɵelementStart(34, "div", 39)(35, "div", 40);
51699
- i0.ɵɵconditionalCreate(36, SymphiqCreateAccountDashboardComponent_Conditional_24_Conditional_36_Template, 1, 0, "div", 41);
52006
+ i0.ɵɵelementStart(14, "textarea", 12);
52007
+ i0.ɵɵtwoWayListener("ngModelChange", function FocusAreaToolsModalComponent_Conditional_0_Template_textarea_ngModelChange_14_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.otherToolsText, $event) || (ctx_r1.otherToolsText = $event); return i0.ɵɵresetView($event); });
52008
+ i0.ɵɵelementEnd()()();
52009
+ i0.ɵɵelementStart(15, "div", 13)(16, "button", 14);
52010
+ i0.ɵɵlistener("click", function FocusAreaToolsModalComponent_Conditional_0_Template_button_click_16_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onClose()); });
52011
+ i0.ɵɵtext(17, " Cancel ");
51700
52012
  i0.ɵɵelementEnd();
51701
- i0.ɵɵelementStart(37, "div", 42)(38, "div", 43);
51702
- i0.ɵɵtext(39, " Shopify ");
52013
+ i0.ɵɵelementStart(18, "button", 14);
52014
+ i0.ɵɵlistener("click", function FocusAreaToolsModalComponent_Conditional_0_Template_button_click_18_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onSave()); });
52015
+ i0.ɵɵtext(19, " Save ");
51703
52016
  i0.ɵɵelementEnd()()()();
51704
- i0.ɵɵelementStart(40, "label", 37);
51705
- i0.ɵɵelement(41, "input", 38);
51706
- i0.ɵɵelementStart(42, "div", 39)(43, "div", 40);
51707
- i0.ɵɵconditionalCreate(44, SymphiqCreateAccountDashboardComponent_Conditional_24_Conditional_44_Template, 1, 0, "div", 41);
52017
+ } if (rf & 2) {
52018
+ const ctx_r1 = i0.ɵɵnextContext();
52019
+ i0.ɵɵadvance();
52020
+ i0.ɵɵproperty("ngClass", ctx_r1.backdropClasses());
52021
+ i0.ɵɵadvance();
52022
+ i0.ɵɵproperty("ngClass", ctx_r1.containerClasses());
52023
+ i0.ɵɵadvance();
52024
+ i0.ɵɵproperty("ngClass", ctx_r1.headerClasses());
52025
+ i0.ɵɵadvance();
52026
+ i0.ɵɵproperty("ngClass", ctx_r1.titleClasses());
52027
+ i0.ɵɵadvance();
52028
+ i0.ɵɵtextInterpolate1(" Tools used for ", ctx_r1.focusAreaTitle(), " ");
52029
+ i0.ɵɵadvance();
52030
+ i0.ɵɵproperty("ngClass", ctx_r1.closeButtonClasses());
52031
+ i0.ɵɵadvance(4);
52032
+ i0.ɵɵconditional(ctx_r1.predefinedTools().length > 0 ? 10 : -1);
52033
+ i0.ɵɵadvance(2);
52034
+ i0.ɵɵproperty("ngClass", ctx_r1.labelClasses());
52035
+ i0.ɵɵadvance(2);
52036
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r1.otherToolsText);
52037
+ i0.ɵɵproperty("ngClass", ctx_r1.textareaClasses());
52038
+ i0.ɵɵadvance();
52039
+ i0.ɵɵproperty("ngClass", ctx_r1.footerClasses());
52040
+ i0.ɵɵadvance();
52041
+ i0.ɵɵproperty("ngClass", ctx_r1.cancelButtonClasses());
52042
+ i0.ɵɵadvance(2);
52043
+ i0.ɵɵproperty("ngClass", ctx_r1.saveButtonClasses());
52044
+ } }
52045
+ class FocusAreaToolsModalComponent {
52046
+ constructor() {
52047
+ this.isOpen = input(false, ...(ngDevMode ? [{ debugName: "isOpen" }] : []));
52048
+ this.focusAreaDomain = input.required(...(ngDevMode ? [{ debugName: "focusAreaDomain" }] : []));
52049
+ this.focusAreaTitle = input.required(...(ngDevMode ? [{ debugName: "focusAreaTitle" }] : []));
52050
+ this.selectedTools = input([], ...(ngDevMode ? [{ debugName: "selectedTools" }] : []));
52051
+ this.viewMode = input(ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "viewMode" }] : []));
52052
+ this.close = output();
52053
+ this.save = output();
52054
+ this.selectedPredefinedTools = signal(new Set(), ...(ngDevMode ? [{ debugName: "selectedPredefinedTools" }] : []));
52055
+ this.otherToolsText = signal('', ...(ngDevMode ? [{ debugName: "otherToolsText" }] : []));
52056
+ this.predefinedTools = signal([], ...(ngDevMode ? [{ debugName: "predefinedTools" }] : []));
52057
+ effect(() => {
52058
+ const domain = this.focusAreaDomain();
52059
+ const tools = FocusAreaDomainEnumUtil.topTools(domain);
52060
+ this.predefinedTools.set(tools);
52061
+ });
52062
+ effect(() => {
52063
+ const tools = this.selectedTools();
52064
+ const predefined = this.predefinedTools();
52065
+ const selectedSet = new Set();
52066
+ const otherTools = [];
52067
+ tools.forEach(tool => {
52068
+ if (predefined.includes(tool)) {
52069
+ selectedSet.add(tool);
52070
+ }
52071
+ else {
52072
+ otherTools.push(tool);
52073
+ }
52074
+ });
52075
+ this.selectedPredefinedTools.set(selectedSet);
52076
+ this.otherToolsText.set(otherTools.join(', '));
52077
+ });
52078
+ }
52079
+ onEscapeKey() {
52080
+ if (this.isOpen()) {
52081
+ this.onClose();
52082
+ }
52083
+ }
52084
+ isLightMode() {
52085
+ return this.viewMode() === ViewModeEnum.LIGHT;
52086
+ }
52087
+ isToolSelected(tool) {
52088
+ return this.selectedPredefinedTools().has(tool);
52089
+ }
52090
+ onToolToggle(tool, event) {
52091
+ const checkbox = event.target;
52092
+ const newSet = new Set(this.selectedPredefinedTools());
52093
+ if (checkbox.checked) {
52094
+ newSet.add(tool);
52095
+ }
52096
+ else {
52097
+ newSet.delete(tool);
52098
+ }
52099
+ this.selectedPredefinedTools.set(newSet);
52100
+ }
52101
+ onBackdropClick() {
52102
+ this.onClose();
52103
+ }
52104
+ onClose() {
52105
+ this.close.emit();
52106
+ }
52107
+ onSave() {
52108
+ const predefined = Array.from(this.selectedPredefinedTools());
52109
+ const otherText = this.otherToolsText();
52110
+ const otherTools = otherText
52111
+ .split(/[,\n\r]+/)
52112
+ .map(t => t.trim())
52113
+ .filter(t => t.length > 0);
52114
+ const allTools = [...predefined, ...otherTools];
52115
+ this.save.emit(allTools);
52116
+ }
52117
+ backdropClasses() {
52118
+ return this.isLightMode()
52119
+ ? 'bg-black/15'
52120
+ : 'bg-black/40';
52121
+ }
52122
+ containerClasses() {
52123
+ return this.isLightMode()
52124
+ ? 'bg-white border border-slate-200'
52125
+ : 'bg-slate-800 border border-slate-700';
52126
+ }
52127
+ headerClasses() {
52128
+ return this.isLightMode()
52129
+ ? 'bg-gradient-to-r from-white to-slate-50 border-slate-200'
52130
+ : 'bg-gradient-to-r from-slate-800 to-slate-900 border-slate-700';
52131
+ }
52132
+ titleClasses() {
52133
+ return this.isLightMode()
52134
+ ? 'text-slate-900'
52135
+ : 'text-white';
52136
+ }
52137
+ closeButtonClasses() {
52138
+ return this.isLightMode()
52139
+ ? 'text-slate-500 hover:bg-slate-100 hover:text-slate-700'
52140
+ : 'text-slate-400 hover:bg-slate-700 hover:text-slate-200';
52141
+ }
52142
+ labelClasses() {
52143
+ return this.isLightMode()
52144
+ ? 'text-slate-700'
52145
+ : 'text-slate-300';
52146
+ }
52147
+ checkboxClasses() {
52148
+ return this.isLightMode()
52149
+ ? 'text-blue-600 border-slate-300 focus:ring-blue-500'
52150
+ : 'text-blue-400 border-slate-600 focus:ring-blue-400 bg-slate-700';
52151
+ }
52152
+ checkboxLabelClasses() {
52153
+ return this.isLightMode()
52154
+ ? 'text-slate-700'
52155
+ : 'text-slate-300';
52156
+ }
52157
+ textareaClasses() {
52158
+ return this.isLightMode()
52159
+ ? 'bg-white text-slate-900 placeholder-slate-400 border-slate-300 focus:border-blue-500 focus:ring-blue-500'
52160
+ : 'bg-slate-700 text-white placeholder-slate-500 border-slate-600 focus:border-blue-400 focus:ring-blue-400';
52161
+ }
52162
+ footerClasses() {
52163
+ return this.isLightMode()
52164
+ ? 'bg-gradient-to-r from-slate-50 to-white border-slate-200'
52165
+ : 'bg-gradient-to-r from-slate-900 to-slate-800 border-slate-700';
52166
+ }
52167
+ cancelButtonClasses() {
52168
+ return this.isLightMode()
52169
+ ? 'bg-slate-200 text-slate-700 hover:bg-slate-300'
52170
+ : 'bg-slate-700 text-slate-300 hover:bg-slate-600';
52171
+ }
52172
+ saveButtonClasses() {
52173
+ return this.isLightMode()
52174
+ ? 'bg-gradient-to-r from-blue-600 to-cyan-600 hover:from-blue-700 hover:to-cyan-700 text-white'
52175
+ : 'bg-gradient-to-r from-blue-500 to-cyan-500 hover:from-blue-600 hover:to-cyan-600 text-white';
52176
+ }
52177
+ static { this.ɵfac = function FocusAreaToolsModalComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || FocusAreaToolsModalComponent)(); }; }
52178
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FocusAreaToolsModalComponent, selectors: [["symphiq-focus-area-tools-modal"]], hostBindings: function FocusAreaToolsModalComponent_HostBindings(rf, ctx) { if (rf & 1) {
52179
+ i0.ɵɵlistener("keydown.escape", function FocusAreaToolsModalComponent_keydown_escape_HostBindingHandler() { return ctx.onEscapeKey(); }, i0.ɵɵresolveDocument);
52180
+ } }, inputs: { isOpen: [1, "isOpen"], focusAreaDomain: [1, "focusAreaDomain"], focusAreaTitle: [1, "focusAreaTitle"], selectedTools: [1, "selectedTools"], viewMode: [1, "viewMode"] }, outputs: { close: "close", save: "save" }, decls: 1, vars: 1, consts: [[1, "fixed", "inset-0", "z-[10002]", "flex", "items-center", "justify-center", "px-4"], [1, "fixed", "inset-0", "z-[10002]", "flex", "items-center", "justify-center", "px-4", 3, "click"], [1, "absolute", "inset-0", "backdrop-blur-sm", "animate-fade-in", "z-[10002]", 3, "ngClass"], [1, "relative", "w-full", "max-w-2xl", "rounded-2xl", "shadow-2xl", "animate-scale-in", "z-[10003]", "max-h-[90vh]", "flex", "flex-col", 3, "click", "ngClass"], [1, "px-6", "py-4", "border-b", "flex", "items-center", "justify-between", 3, "ngClass"], [1, "text-xl", "font-bold", 3, "ngClass"], ["type", "button", 1, "w-8", "h-8", "rounded-lg", "flex", "items-center", "justify-center", "transition-colors", "cursor-pointer", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-5", "h-5"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M6 18L18 6M6 6l12 12"], [1, "flex-1", "overflow-y-auto", "p-6"], [1, "mb-6"], [1, "block", "text-sm", "font-semibold", "mb-2", 3, "ngClass"], ["rows", "4", "placeholder", "Enter other tools (e.g., Custom Tool, Another Tool)", 1, "w-full", "px-4", "py-3", "rounded-lg", "border-2", "transition-all", "duration-200", "focus:outline-none", "focus:ring-2", 3, "ngModelChange", "ngModel", "ngClass"], [1, "px-6", "py-4", "border-t", "flex", "items-center", "justify-end", "gap-3", 3, "ngClass"], ["type", "button", 1, "px-6", "py-2.5", "rounded-lg", "font-semibold", "text-sm", "transition-all", "duration-200", "cursor-pointer", "hover:scale-105", 3, "click", "ngClass"], [1, "block", "text-sm", "font-semibold", "mb-3", 3, "ngClass"], [1, "grid", "grid-cols-1", "sm:grid-cols-2", "gap-3"], [1, "flex", "items-center", "gap-2", "cursor-pointer"], ["type", "checkbox", 1, "w-4", "h-4", "rounded", "border-2", "transition-all", "duration-200", 3, "change", "checked", "ngClass"], [1, "text-sm", 3, "ngClass"]], template: function FocusAreaToolsModalComponent_Template(rf, ctx) { if (rf & 1) {
52181
+ i0.ɵɵconditionalCreate(0, FocusAreaToolsModalComponent_Conditional_0_Template, 20, 13, "div", 0);
52182
+ } if (rf & 2) {
52183
+ i0.ɵɵconditional(ctx.isOpen() ? 0 : -1);
52184
+ } }, dependencies: [CommonModule, i1$1.NgClass, FormsModule, i2$1.DefaultValueAccessor, i2$1.NgControlStatus, i2$1.NgModel], styles: ["@keyframes _ngcontent-%COMP%_fade-in{0%{opacity:0}to{opacity:1}}@keyframes _ngcontent-%COMP%_scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.animate-fade-in[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_fade-in .2s ease-out}.animate-scale-in[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_scale-in .2s ease-out}"], changeDetection: 0 }); }
52185
+ }
52186
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FocusAreaToolsModalComponent, [{
52187
+ type: Component,
52188
+ args: [{ selector: 'symphiq-focus-area-tools-modal', standalone: true, imports: [CommonModule, FormsModule], changeDetection: ChangeDetectionStrategy.OnPush, template: `
52189
+ @if (isOpen()) {
52190
+ <div
52191
+ class="fixed inset-0 z-[10002] flex items-center justify-center px-4"
52192
+ (click)="onBackdropClick()">
52193
+ <div
52194
+ [ngClass]="backdropClasses()"
52195
+ class="absolute inset-0 backdrop-blur-sm animate-fade-in z-[10002]"></div>
52196
+
52197
+ <div
52198
+ [ngClass]="containerClasses()"
52199
+ class="relative w-full max-w-2xl rounded-2xl shadow-2xl animate-scale-in z-[10003] max-h-[90vh] flex flex-col"
52200
+ (click)="$event.stopPropagation()">
52201
+
52202
+ <!-- Header -->
52203
+ <div [ngClass]="headerClasses()" class="px-6 py-4 border-b flex items-center justify-between">
52204
+ <h3 [ngClass]="titleClasses()" class="text-xl font-bold">
52205
+ Tools used for {{ focusAreaTitle() }}
52206
+ </h3>
52207
+ <button
52208
+ type="button"
52209
+ (click)="onClose()"
52210
+ [ngClass]="closeButtonClasses()"
52211
+ class="w-8 h-8 rounded-lg flex items-center justify-center transition-colors cursor-pointer">
52212
+ <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
52213
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"/>
52214
+ </svg>
52215
+ </button>
52216
+ </div>
52217
+
52218
+ <!-- Content -->
52219
+ <div class="flex-1 overflow-y-auto p-6">
52220
+ <!-- Predefined Tools -->
52221
+ @if (predefinedTools().length > 0) {
52222
+ <div class="mb-6">
52223
+ <label [ngClass]="labelClasses()" class="block text-sm font-semibold mb-3">
52224
+ Select tools from the list:
52225
+ </label>
52226
+ <div class="grid grid-cols-1 sm:grid-cols-2 gap-3">
52227
+ @for (tool of predefinedTools(); track tool) {
52228
+ <label class="flex items-center gap-2 cursor-pointer">
52229
+ <input
52230
+ type="checkbox"
52231
+ [checked]="isToolSelected(tool)"
52232
+ (change)="onToolToggle(tool, $event)"
52233
+ [ngClass]="checkboxClasses()"
52234
+ class="w-4 h-4 rounded border-2 transition-all duration-200"
52235
+ />
52236
+ <span [ngClass]="checkboxLabelClasses()" class="text-sm">
52237
+ {{ tool }}
52238
+ </span>
52239
+ </label>
52240
+ }
52241
+ </div>
52242
+ </div>
52243
+ }
52244
+
52245
+ <!-- Other Tools -->
52246
+ <div>
52247
+ <label [ngClass]="labelClasses()" class="block text-sm font-semibold mb-2">
52248
+ Other tools, separated by commas or returns:
52249
+ </label>
52250
+ <textarea
52251
+ [(ngModel)]="otherToolsText"
52252
+ [ngClass]="textareaClasses()"
52253
+ class="w-full px-4 py-3 rounded-lg border-2 transition-all duration-200 focus:outline-none focus:ring-2"
52254
+ rows="4"
52255
+ placeholder="Enter other tools (e.g., Custom Tool, Another Tool)"></textarea>
52256
+ </div>
52257
+ </div>
52258
+
52259
+ <!-- Footer -->
52260
+ <div [ngClass]="footerClasses()" class="px-6 py-4 border-t flex items-center justify-end gap-3">
52261
+ <button
52262
+ type="button"
52263
+ (click)="onClose()"
52264
+ [ngClass]="cancelButtonClasses()"
52265
+ class="px-6 py-2.5 rounded-lg font-semibold text-sm transition-all duration-200 cursor-pointer hover:scale-105">
52266
+ Cancel
52267
+ </button>
52268
+ <button
52269
+ type="button"
52270
+ (click)="onSave()"
52271
+ [ngClass]="saveButtonClasses()"
52272
+ class="px-6 py-2.5 rounded-lg font-semibold text-sm transition-all duration-200 cursor-pointer hover:scale-105">
52273
+ Save
52274
+ </button>
52275
+ </div>
52276
+ </div>
52277
+ </div>
52278
+ }
52279
+ `, styles: ["@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.animate-fade-in{animation:fade-in .2s ease-out}.animate-scale-in{animation:scale-in .2s ease-out}\n"] }]
52280
+ }], () => [], { isOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "isOpen", required: false }] }], focusAreaDomain: [{ type: i0.Input, args: [{ isSignal: true, alias: "focusAreaDomain", required: true }] }], focusAreaTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "focusAreaTitle", required: true }] }], selectedTools: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedTools", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], close: [{ type: i0.Output, args: ["close"] }], save: [{ type: i0.Output, args: ["save"] }], onEscapeKey: [{
52281
+ type: HostListener,
52282
+ args: ['document:keydown.escape']
52283
+ }] }); })();
52284
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FocusAreaToolsModalComponent, { className: "FocusAreaToolsModalComponent", filePath: "lib/components/create-account-dashboard/focus-area-tools-modal.component.ts", lineNumber: 143 }); })();
52285
+
52286
+ const _c0$q = ["shopNameInput"];
52287
+ const _forTrack0$i = ($index, $item) => $item.focusAreaDomain;
52288
+ function SymphiqCreateAccountDashboardComponent_Conditional_23_Conditional_27_Template(rf, ctx) { if (rf & 1) {
52289
+ i0.ɵɵtext(0, " Shopify ");
52290
+ } }
52291
+ function SymphiqCreateAccountDashboardComponent_Conditional_23_Conditional_28_Template(rf, ctx) { if (rf & 1) {
52292
+ i0.ɵɵtext(0);
52293
+ } if (rf & 2) {
52294
+ const ctx_r1 = i0.ɵɵnextContext(2);
52295
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.accountData().otherPlatformName || "Other", " ");
52296
+ } }
52297
+ function SymphiqCreateAccountDashboardComponent_Conditional_23_Template(rf, ctx) { if (rf & 1) {
52298
+ const _r1 = i0.ɵɵgetCurrentView();
52299
+ i0.ɵɵelementStart(0, "div", 14)(1, "div", 18)(2, "div", 19)(3, "div")(4, "h2", 20);
52300
+ i0.ɵɵtext(5, " Shop Details ");
52301
+ i0.ɵɵelementEnd();
52302
+ i0.ɵɵelementStart(6, "p", 1);
52303
+ i0.ɵɵtext(7, " Your shop information ");
52304
+ i0.ɵɵelementEnd()();
52305
+ i0.ɵɵelementStart(8, "button", 21);
52306
+ i0.ɵɵlistener("click", function SymphiqCreateAccountDashboardComponent_Conditional_23_Template_button_click_8_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.enableEditMode()); });
52307
+ i0.ɵɵnamespaceSVG();
52308
+ i0.ɵɵelementStart(9, "svg", 22);
52309
+ i0.ɵɵelement(10, "path", 23);
52310
+ i0.ɵɵelementEnd();
52311
+ i0.ɵɵtext(11, " Edit ");
52312
+ i0.ɵɵelementEnd()();
52313
+ i0.ɵɵnamespaceHTML();
52314
+ i0.ɵɵelementStart(12, "div", 24)(13, "div")(14, "label", 25);
52315
+ i0.ɵɵtext(15, " Shop Name ");
51708
52316
  i0.ɵɵelementEnd();
51709
- i0.ɵɵelementStart(45, "div", 42)(46, "div", 43);
52317
+ i0.ɵɵelementStart(16, "p", 26);
52318
+ i0.ɵɵtext(17);
52319
+ i0.ɵɵelementEnd()();
52320
+ i0.ɵɵelementStart(18, "div")(19, "label", 25);
52321
+ i0.ɵɵtext(20, " Shop URL ");
52322
+ i0.ɵɵelementEnd();
52323
+ i0.ɵɵelementStart(21, "a", 27);
52324
+ i0.ɵɵtext(22);
52325
+ i0.ɵɵelementEnd()();
52326
+ i0.ɵɵelementStart(23, "div")(24, "label", 25);
52327
+ i0.ɵɵtext(25, " Shop Platform ");
52328
+ i0.ɵɵelementEnd();
52329
+ i0.ɵɵelementStart(26, "p", 26);
52330
+ i0.ɵɵconditionalCreate(27, SymphiqCreateAccountDashboardComponent_Conditional_23_Conditional_27_Template, 1, 0)(28, SymphiqCreateAccountDashboardComponent_Conditional_23_Conditional_28_Template, 1, 1);
52331
+ i0.ɵɵelementEnd()();
52332
+ i0.ɵɵelementStart(29, "div")(30, "label", 25);
52333
+ i0.ɵɵtext(31, " Company Name ");
52334
+ i0.ɵɵelementEnd();
52335
+ i0.ɵɵelementStart(32, "p", 26);
52336
+ i0.ɵɵtext(33);
52337
+ i0.ɵɵelementEnd()()()()();
52338
+ } if (rf & 2) {
52339
+ const ctx_r1 = i0.ɵɵnextContext();
52340
+ i0.ɵɵproperty("ngClass", ctx_r1.containerClasses());
52341
+ i0.ɵɵadvance();
52342
+ i0.ɵɵproperty("ngClass", ctx_r1.contentClasses());
52343
+ i0.ɵɵadvance(3);
52344
+ i0.ɵɵproperty("ngClass", ctx_r1.sectionTitleClasses());
52345
+ i0.ɵɵadvance(2);
52346
+ i0.ɵɵproperty("ngClass", ctx_r1.sectionDescriptionClasses());
52347
+ i0.ɵɵadvance(2);
52348
+ i0.ɵɵproperty("ngClass", ctx_r1.editButtonClasses());
52349
+ i0.ɵɵadvance(6);
52350
+ i0.ɵɵproperty("ngClass", ctx_r1.viewLabelClasses());
52351
+ i0.ɵɵadvance(2);
52352
+ i0.ɵɵproperty("ngClass", ctx_r1.viewValueClasses());
52353
+ i0.ɵɵadvance();
52354
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.accountData().shopName, " ");
52355
+ i0.ɵɵadvance(2);
52356
+ i0.ɵɵproperty("ngClass", ctx_r1.viewLabelClasses());
52357
+ i0.ɵɵadvance(2);
52358
+ i0.ɵɵproperty("href", ctx_r1.accountData().shopUrl, i0.ɵɵsanitizeUrl)("ngClass", ctx_r1.viewLinkClasses());
52359
+ i0.ɵɵadvance();
52360
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.accountData().shopUrl, " ");
52361
+ i0.ɵɵadvance(2);
52362
+ i0.ɵɵproperty("ngClass", ctx_r1.viewLabelClasses());
52363
+ i0.ɵɵadvance(2);
52364
+ i0.ɵɵproperty("ngClass", ctx_r1.viewValueClasses());
52365
+ i0.ɵɵadvance();
52366
+ i0.ɵɵconditional(ctx_r1.accountData().shopPlatform === ctx_r1.ShopPlatformEnum.SHOPIFY ? 27 : 28);
52367
+ i0.ɵɵadvance(3);
52368
+ i0.ɵɵproperty("ngClass", ctx_r1.viewLabelClasses());
52369
+ i0.ɵɵadvance(2);
52370
+ i0.ɵɵproperty("ngClass", ctx_r1.viewValueClasses());
52371
+ i0.ɵɵadvance();
52372
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.accountData().companyName, " ");
52373
+ } }
52374
+ function SymphiqCreateAccountDashboardComponent_Conditional_24_Conditional_15_Template(rf, ctx) { if (rf & 1) {
52375
+ i0.ɵɵelementStart(0, "p", 33);
52376
+ i0.ɵɵtext(1, " Shop name is required ");
52377
+ i0.ɵɵelementEnd();
52378
+ } if (rf & 2) {
52379
+ const ctx_r1 = i0.ɵɵnextContext(2);
52380
+ i0.ɵɵproperty("ngClass", ctx_r1.errorClasses());
52381
+ } }
52382
+ function SymphiqCreateAccountDashboardComponent_Conditional_24_Conditional_25_Template(rf, ctx) { if (rf & 1) {
52383
+ i0.ɵɵelementStart(0, "p", 33);
52384
+ i0.ɵɵtext(1, " Shop URL is required ");
52385
+ i0.ɵɵelementEnd();
52386
+ } if (rf & 2) {
52387
+ const ctx_r1 = i0.ɵɵnextContext(2);
52388
+ i0.ɵɵproperty("ngClass", ctx_r1.errorClasses());
52389
+ } }
52390
+ function SymphiqCreateAccountDashboardComponent_Conditional_24_Conditional_36_Template(rf, ctx) { if (rf & 1) {
52391
+ i0.ɵɵelement(0, "div", 43);
52392
+ } }
52393
+ function SymphiqCreateAccountDashboardComponent_Conditional_24_Conditional_44_Template(rf, ctx) { if (rf & 1) {
52394
+ i0.ɵɵelement(0, "div", 43);
52395
+ } }
52396
+ function SymphiqCreateAccountDashboardComponent_Conditional_24_Conditional_48_Conditional_6_Template(rf, ctx) { if (rf & 1) {
52397
+ i0.ɵɵelementStart(0, "p", 33);
52398
+ i0.ɵɵtext(1, " Platform name is required ");
52399
+ i0.ɵɵelementEnd();
52400
+ } if (rf & 2) {
52401
+ const ctx_r1 = i0.ɵɵnextContext(3);
52402
+ i0.ɵɵproperty("ngClass", ctx_r1.errorClasses());
52403
+ } }
52404
+ function SymphiqCreateAccountDashboardComponent_Conditional_24_Conditional_48_Template(rf, ctx) { if (rf & 1) {
52405
+ i0.ɵɵelementStart(0, "div")(1, "label", 30);
52406
+ i0.ɵɵtext(2, " Platform Name ");
52407
+ i0.ɵɵelementStart(3, "span", 31);
52408
+ i0.ɵɵtext(4, "*");
52409
+ i0.ɵɵelementEnd()();
52410
+ i0.ɵɵelement(5, "input", 51);
52411
+ i0.ɵɵconditionalCreate(6, SymphiqCreateAccountDashboardComponent_Conditional_24_Conditional_48_Conditional_6_Template, 2, 1, "p", 33);
52412
+ i0.ɵɵelementEnd();
52413
+ } if (rf & 2) {
52414
+ const ctx_r1 = i0.ɵɵnextContext(2);
52415
+ i0.ɵɵadvance();
52416
+ i0.ɵɵproperty("ngClass", ctx_r1.labelClasses());
52417
+ i0.ɵɵadvance(4);
52418
+ i0.ɵɵproperty("ngClass", ctx_r1.inputClasses("otherPlatformName"));
52419
+ i0.ɵɵadvance();
52420
+ i0.ɵɵconditional(ctx_r1.isFieldInvalid("otherPlatformName") ? 6 : -1);
52421
+ } }
52422
+ function SymphiqCreateAccountDashboardComponent_Conditional_24_Conditional_60_Template(rf, ctx) { if (rf & 1) {
52423
+ i0.ɵɵelementStart(0, "p", 33);
52424
+ i0.ɵɵtext(1, " Company name is required ");
52425
+ i0.ɵɵelementEnd();
52426
+ } if (rf & 2) {
52427
+ const ctx_r1 = i0.ɵɵnextContext(2);
52428
+ i0.ɵɵproperty("ngClass", ctx_r1.errorClasses());
52429
+ } }
52430
+ function SymphiqCreateAccountDashboardComponent_Conditional_24_Template(rf, ctx) { if (rf & 1) {
52431
+ const _r3 = i0.ɵɵgetCurrentView();
52432
+ i0.ɵɵelementStart(0, "div", 14)(1, "div", 18)(2, "div", 28)(3, "h2", 20);
52433
+ i0.ɵɵtext(4, " Shop Details ");
52434
+ i0.ɵɵelementEnd();
52435
+ i0.ɵɵelementStart(5, "p", 1);
52436
+ i0.ɵɵtext(6, " Enter your shop details to get started with Symphiq ");
52437
+ i0.ɵɵelementEnd()();
52438
+ i0.ɵɵelementStart(7, "form", 29)(8, "div")(9, "label", 30);
52439
+ i0.ɵɵtext(10, " Shop Name ");
52440
+ i0.ɵɵelementStart(11, "span", 31);
52441
+ i0.ɵɵtext(12, "*");
52442
+ i0.ɵɵelementEnd()();
52443
+ i0.ɵɵelement(13, "input", 32, 0);
52444
+ i0.ɵɵconditionalCreate(15, SymphiqCreateAccountDashboardComponent_Conditional_24_Conditional_15_Template, 2, 1, "p", 33);
52445
+ i0.ɵɵelementEnd();
52446
+ i0.ɵɵelementStart(16, "div")(17, "label", 30);
52447
+ i0.ɵɵtext(18, " Shop URL ");
52448
+ i0.ɵɵelementStart(19, "span", 31);
52449
+ i0.ɵɵtext(20, "*");
52450
+ i0.ɵɵelementEnd()();
52451
+ i0.ɵɵelementStart(21, "div", 34)(22, "span", 35);
52452
+ i0.ɵɵtext(23, " https:// ");
52453
+ i0.ɵɵelementEnd();
52454
+ i0.ɵɵelement(24, "input", 36);
52455
+ i0.ɵɵelementEnd();
52456
+ i0.ɵɵconditionalCreate(25, SymphiqCreateAccountDashboardComponent_Conditional_24_Conditional_25_Template, 2, 1, "p", 33);
52457
+ i0.ɵɵelementEnd();
52458
+ i0.ɵɵelementStart(26, "div")(27, "label", 37);
52459
+ i0.ɵɵtext(28, " Shop Platform ");
52460
+ i0.ɵɵelementStart(29, "span", 31);
52461
+ i0.ɵɵtext(30, "*");
52462
+ i0.ɵɵelementEnd()();
52463
+ i0.ɵɵelementStart(31, "div", 38)(32, "label", 39);
52464
+ i0.ɵɵelement(33, "input", 40);
52465
+ i0.ɵɵelementStart(34, "div", 41)(35, "div", 42);
52466
+ i0.ɵɵconditionalCreate(36, SymphiqCreateAccountDashboardComponent_Conditional_24_Conditional_36_Template, 1, 0, "div", 43);
52467
+ i0.ɵɵelementEnd();
52468
+ i0.ɵɵelementStart(37, "div", 44)(38, "div", 45);
52469
+ i0.ɵɵtext(39, " Shopify ");
52470
+ i0.ɵɵelementEnd()()()();
52471
+ i0.ɵɵelementStart(40, "label", 39);
52472
+ i0.ɵɵelement(41, "input", 40);
52473
+ i0.ɵɵelementStart(42, "div", 41)(43, "div", 42);
52474
+ i0.ɵɵconditionalCreate(44, SymphiqCreateAccountDashboardComponent_Conditional_24_Conditional_44_Template, 1, 0, "div", 43);
52475
+ i0.ɵɵelementEnd();
52476
+ i0.ɵɵelementStart(45, "div", 44)(46, "div", 45);
51710
52477
  i0.ɵɵtext(47, " Other ");
51711
52478
  i0.ɵɵelementEnd()()()()()();
51712
52479
  i0.ɵɵconditionalCreate(48, SymphiqCreateAccountDashboardComponent_Conditional_24_Conditional_48_Template, 7, 3, "div");
51713
- i0.ɵɵelementStart(49, "div")(50, "label", 28);
52480
+ i0.ɵɵelementStart(49, "div")(50, "label", 30);
51714
52481
  i0.ɵɵtext(51, " Company Name ");
51715
- i0.ɵɵelementStart(52, "span", 29);
52482
+ i0.ɵɵelementStart(52, "span", 31);
51716
52483
  i0.ɵɵtext(53, "*");
51717
52484
  i0.ɵɵelementEnd()();
51718
- i0.ɵɵelement(54, "input", 44);
51719
- i0.ɵɵelementStart(55, "div", 45)(56, "label", 46)(57, "input", 47);
52485
+ i0.ɵɵelement(54, "input", 46);
52486
+ i0.ɵɵelementStart(55, "div", 47)(56, "label", 48)(57, "input", 49);
51720
52487
  i0.ɵɵlistener("change", function SymphiqCreateAccountDashboardComponent_Conditional_24_Template_input_change_57_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleSameAsShopName()); });
51721
52488
  i0.ɵɵelementEnd();
51722
- i0.ɵɵelementStart(58, "span", 48);
52489
+ i0.ɵɵelementStart(58, "span", 50);
51723
52490
  i0.ɵɵtext(59, " Same as Shop Name ");
51724
52491
  i0.ɵɵelementEnd()()();
51725
- i0.ɵɵconditionalCreate(60, SymphiqCreateAccountDashboardComponent_Conditional_24_Conditional_60_Template, 2, 1, "p", 31);
52492
+ i0.ɵɵconditionalCreate(60, SymphiqCreateAccountDashboardComponent_Conditional_24_Conditional_60_Template, 2, 1, "p", 33);
51726
52493
  i0.ɵɵelementEnd()()()();
51727
52494
  } if (rf & 2) {
51728
52495
  let tmp_18_0;
@@ -51788,67 +52555,299 @@ function SymphiqCreateAccountDashboardComponent_Conditional_24_Template(rf, ctx)
51788
52555
  i0.ɵɵadvance(2);
51789
52556
  i0.ɵɵconditional(ctx_r1.isFieldInvalid("companyName") ? 60 : -1);
51790
52557
  } }
51791
- function SymphiqCreateAccountDashboardComponent_Conditional_25_Conditional_3_Template(rf, ctx) { if (rf & 1) {
51792
- const _r5 = i0.ɵɵgetCurrentView();
51793
- i0.ɵɵelementStart(0, "button", 54);
51794
- i0.ɵɵlistener("click", function SymphiqCreateAccountDashboardComponent_Conditional_25_Conditional_3_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.cancelEditMode()); });
52558
+ function SymphiqCreateAccountDashboardComponent_Conditional_25_Conditional_12_For_6_Conditional_6_For_5_Template(rf, ctx) { if (rf & 1) {
52559
+ i0.ɵɵelementStart(0, "span", 62);
52560
+ i0.ɵɵtext(1);
52561
+ i0.ɵɵelementEnd();
52562
+ } if (rf & 2) {
52563
+ const tool_r5 = ctx.$implicit;
52564
+ const ctx_r1 = i0.ɵɵnextContext(5);
52565
+ i0.ɵɵproperty("ngClass", ctx_r1.toolChipViewClasses());
52566
+ i0.ɵɵadvance();
52567
+ i0.ɵɵtextInterpolate1(" ", tool_r5, " ");
52568
+ } }
52569
+ function SymphiqCreateAccountDashboardComponent_Conditional_25_Conditional_12_For_6_Conditional_6_Template(rf, ctx) { if (rf & 1) {
52570
+ i0.ɵɵelementStart(0, "div", 59)(1, "span", 60);
52571
+ i0.ɵɵtext(2, "Tools:");
52572
+ i0.ɵɵelementEnd();
52573
+ i0.ɵɵelementStart(3, "div", 61);
52574
+ i0.ɵɵrepeaterCreate(4, SymphiqCreateAccountDashboardComponent_Conditional_25_Conditional_12_For_6_Conditional_6_For_5_Template, 2, 2, "span", 62, i0.ɵɵrepeaterTrackByIdentity);
52575
+ i0.ɵɵelementEnd()();
52576
+ } if (rf & 2) {
52577
+ const focusArea_r6 = i0.ɵɵnextContext().$implicit;
52578
+ const ctx_r1 = i0.ɵɵnextContext(3);
52579
+ i0.ɵɵadvance();
52580
+ i0.ɵɵproperty("ngClass", ctx_r1.toolsLabelViewClasses());
52581
+ i0.ɵɵadvance(3);
52582
+ i0.ɵɵrepeater(focusArea_r6.tools);
52583
+ } }
52584
+ function SymphiqCreateAccountDashboardComponent_Conditional_25_Conditional_12_For_6_Template(rf, ctx) { if (rf & 1) {
52585
+ i0.ɵɵelementStart(0, "div", 55)(1, "div", 56)(2, "h4", 57);
52586
+ i0.ɵɵtext(3);
52587
+ i0.ɵɵelementEnd();
52588
+ i0.ɵɵelementStart(4, "span", 58);
52589
+ i0.ɵɵtext(5, " Engaged ");
52590
+ i0.ɵɵelementEnd()();
52591
+ i0.ɵɵconditionalCreate(6, SymphiqCreateAccountDashboardComponent_Conditional_25_Conditional_12_For_6_Conditional_6_Template, 6, 1, "div", 59);
52592
+ i0.ɵɵelementEnd();
52593
+ } if (rf & 2) {
52594
+ const focusArea_r6 = ctx.$implicit;
52595
+ const ctx_r1 = i0.ɵɵnextContext(3);
52596
+ i0.ɵɵproperty("ngClass", ctx_r1.focusAreaViewCardClasses("engaged"));
52597
+ i0.ɵɵadvance(2);
52598
+ i0.ɵɵproperty("ngClass", ctx_r1.focusAreaViewTitleClasses());
52599
+ i0.ɵɵadvance();
52600
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.getFocusAreaTitle(focusArea_r6.focusAreaDomain), " ");
52601
+ i0.ɵɵadvance();
52602
+ i0.ɵɵproperty("ngClass", ctx_r1.statusBadgeClasses("engaged"));
52603
+ i0.ɵɵadvance(2);
52604
+ i0.ɵɵconditional(focusArea_r6.tools && focusArea_r6.tools.length > 0 ? 6 : -1);
52605
+ } }
52606
+ function SymphiqCreateAccountDashboardComponent_Conditional_25_Conditional_12_Template(rf, ctx) { if (rf & 1) {
52607
+ i0.ɵɵelementStart(0, "div", 28)(1, "h3", 52);
52608
+ i0.ɵɵelement(2, "span", 53);
52609
+ i0.ɵɵtext(3);
52610
+ i0.ɵɵelementEnd();
52611
+ i0.ɵɵelementStart(4, "div", 54);
52612
+ i0.ɵɵrepeaterCreate(5, SymphiqCreateAccountDashboardComponent_Conditional_25_Conditional_12_For_6_Template, 7, 5, "div", 55, _forTrack0$i);
52613
+ i0.ɵɵelementEnd()();
52614
+ } if (rf & 2) {
52615
+ const ctx_r1 = i0.ɵɵnextContext(2);
52616
+ i0.ɵɵadvance();
52617
+ i0.ɵɵproperty("ngClass", ctx_r1.groupTitleClasses("engaged"));
52618
+ i0.ɵɵadvance(2);
52619
+ i0.ɵɵtextInterpolate1(" Engaged In (", ctx_r1.engagedFocusAreas().length, ") ");
52620
+ i0.ɵɵadvance(2);
52621
+ i0.ɵɵrepeater(ctx_r1.engagedFocusAreas());
52622
+ } }
52623
+ function SymphiqCreateAccountDashboardComponent_Conditional_25_Conditional_13_For_6_Template(rf, ctx) { if (rf & 1) {
52624
+ i0.ɵɵelementStart(0, "div", 65)(1, "h4", 57);
52625
+ i0.ɵɵtext(2);
52626
+ i0.ɵɵelementEnd()();
52627
+ } if (rf & 2) {
52628
+ const focusArea_r7 = ctx.$implicit;
52629
+ const ctx_r1 = i0.ɵɵnextContext(3);
52630
+ i0.ɵɵproperty("ngClass", ctx_r1.focusAreaViewCardClasses("interested"));
52631
+ i0.ɵɵadvance();
52632
+ i0.ɵɵproperty("ngClass", ctx_r1.focusAreaViewTitleClasses());
52633
+ i0.ɵɵadvance();
52634
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.getFocusAreaTitle(focusArea_r7.focusAreaDomain), " ");
52635
+ } }
52636
+ function SymphiqCreateAccountDashboardComponent_Conditional_25_Conditional_13_Template(rf, ctx) { if (rf & 1) {
52637
+ i0.ɵɵelementStart(0, "div", 28)(1, "h3", 52);
52638
+ i0.ɵɵelement(2, "span", 63);
52639
+ i0.ɵɵtext(3);
52640
+ i0.ɵɵelementEnd();
52641
+ i0.ɵɵelementStart(4, "div", 64);
52642
+ i0.ɵɵrepeaterCreate(5, SymphiqCreateAccountDashboardComponent_Conditional_25_Conditional_13_For_6_Template, 3, 3, "div", 65, _forTrack0$i);
52643
+ i0.ɵɵelementEnd()();
52644
+ } if (rf & 2) {
52645
+ const ctx_r1 = i0.ɵɵnextContext(2);
52646
+ i0.ɵɵadvance();
52647
+ i0.ɵɵproperty("ngClass", ctx_r1.groupTitleClasses("interested"));
52648
+ i0.ɵɵadvance(2);
52649
+ i0.ɵɵtextInterpolate1(" Interested In (", ctx_r1.interestedFocusAreas().length, ") ");
52650
+ i0.ɵɵadvance(2);
52651
+ i0.ɵɵrepeater(ctx_r1.interestedFocusAreas());
52652
+ } }
52653
+ function SymphiqCreateAccountDashboardComponent_Conditional_25_Conditional_14_For_6_Template(rf, ctx) { if (rf & 1) {
52654
+ i0.ɵɵelementStart(0, "div", 68)(1, "span", 60);
52655
+ i0.ɵɵtext(2);
52656
+ i0.ɵɵelementEnd()();
52657
+ } if (rf & 2) {
52658
+ const focusArea_r8 = ctx.$implicit;
52659
+ const ctx_r1 = i0.ɵɵnextContext(3);
52660
+ i0.ɵɵproperty("ngClass", ctx_r1.focusAreaViewCardClasses("not-interested"));
52661
+ i0.ɵɵadvance();
52662
+ i0.ɵɵproperty("ngClass", ctx_r1.focusAreaViewTitleSmallClasses());
52663
+ i0.ɵɵadvance();
52664
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.getFocusAreaTitle(focusArea_r8.focusAreaDomain), " ");
52665
+ } }
52666
+ function SymphiqCreateAccountDashboardComponent_Conditional_25_Conditional_14_Template(rf, ctx) { if (rf & 1) {
52667
+ i0.ɵɵelementStart(0, "div")(1, "h3", 52);
52668
+ i0.ɵɵelement(2, "span", 66);
52669
+ i0.ɵɵtext(3);
52670
+ i0.ɵɵelementEnd();
52671
+ i0.ɵɵelementStart(4, "div", 67);
52672
+ i0.ɵɵrepeaterCreate(5, SymphiqCreateAccountDashboardComponent_Conditional_25_Conditional_14_For_6_Template, 3, 3, "div", 68, _forTrack0$i);
52673
+ i0.ɵɵelementEnd()();
52674
+ } if (rf & 2) {
52675
+ const ctx_r1 = i0.ɵɵnextContext(2);
52676
+ i0.ɵɵadvance();
52677
+ i0.ɵɵproperty("ngClass", ctx_r1.groupTitleClasses("not-interested"));
52678
+ i0.ɵɵadvance(2);
52679
+ i0.ɵɵtextInterpolate1(" Not Interested (", ctx_r1.notInterestedFocusAreas().length, ") ");
52680
+ i0.ɵɵadvance(2);
52681
+ i0.ɵɵrepeater(ctx_r1.notInterestedFocusAreas());
52682
+ } }
52683
+ function SymphiqCreateAccountDashboardComponent_Conditional_25_Template(rf, ctx) { if (rf & 1) {
52684
+ const _r4 = i0.ɵɵgetCurrentView();
52685
+ i0.ɵɵelementStart(0, "div", 15)(1, "div", 18)(2, "div", 19)(3, "div")(4, "h2", 20);
52686
+ i0.ɵɵtext(5, " Focus Areas ");
52687
+ i0.ɵɵelementEnd();
52688
+ i0.ɵɵelementStart(6, "p", 1);
52689
+ i0.ɵɵtext(7, " Your marketing and operational focus areas ");
52690
+ i0.ɵɵelementEnd()();
52691
+ i0.ɵɵelementStart(8, "button", 21);
52692
+ i0.ɵɵlistener("click", function SymphiqCreateAccountDashboardComponent_Conditional_25_Template_button_click_8_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.enableFocusAreasEditMode()); });
52693
+ i0.ɵɵnamespaceSVG();
52694
+ i0.ɵɵelementStart(9, "svg", 22);
52695
+ i0.ɵɵelement(10, "path", 23);
52696
+ i0.ɵɵelementEnd();
52697
+ i0.ɵɵtext(11, " Edit ");
52698
+ i0.ɵɵelementEnd()();
52699
+ i0.ɵɵconditionalCreate(12, SymphiqCreateAccountDashboardComponent_Conditional_25_Conditional_12_Template, 7, 2, "div", 28);
52700
+ i0.ɵɵconditionalCreate(13, SymphiqCreateAccountDashboardComponent_Conditional_25_Conditional_13_Template, 7, 2, "div", 28);
52701
+ i0.ɵɵconditionalCreate(14, SymphiqCreateAccountDashboardComponent_Conditional_25_Conditional_14_Template, 7, 2, "div");
52702
+ i0.ɵɵelementEnd()();
52703
+ } if (rf & 2) {
52704
+ const ctx_r1 = i0.ɵɵnextContext();
52705
+ i0.ɵɵproperty("ngClass", ctx_r1.containerClasses());
52706
+ i0.ɵɵadvance();
52707
+ i0.ɵɵproperty("ngClass", ctx_r1.contentClasses());
52708
+ i0.ɵɵadvance(3);
52709
+ i0.ɵɵproperty("ngClass", ctx_r1.sectionTitleClasses());
52710
+ i0.ɵɵadvance(2);
52711
+ i0.ɵɵproperty("ngClass", ctx_r1.sectionDescriptionClasses());
52712
+ i0.ɵɵadvance(2);
52713
+ i0.ɵɵproperty("ngClass", ctx_r1.editButtonClasses());
52714
+ i0.ɵɵadvance(4);
52715
+ i0.ɵɵconditional(ctx_r1.engagedFocusAreas().length > 0 ? 12 : -1);
52716
+ i0.ɵɵadvance();
52717
+ i0.ɵɵconditional(ctx_r1.interestedFocusAreas().length > 0 ? 13 : -1);
52718
+ i0.ɵɵadvance();
52719
+ i0.ɵɵconditional(ctx_r1.notInterestedFocusAreas().length > 0 ? 14 : -1);
52720
+ } }
52721
+ function SymphiqCreateAccountDashboardComponent_Conditional_26_For_13_Conditional_1_Template(rf, ctx) { if (rf & 1) {
52722
+ i0.ɵɵelement(0, "div", 72);
52723
+ } if (rf & 2) {
52724
+ const ctx_r1 = i0.ɵɵnextContext(3);
52725
+ i0.ɵɵproperty("ngClass", ctx_r1.dividerClasses());
52726
+ } }
52727
+ function SymphiqCreateAccountDashboardComponent_Conditional_26_For_13_Template(rf, ctx) { if (rf & 1) {
52728
+ const _r9 = i0.ɵɵgetCurrentView();
52729
+ i0.ɵɵelementStart(0, "symphiq-focus-area-question", 71);
52730
+ i0.ɵɵlistener("statusChange", function SymphiqCreateAccountDashboardComponent_Conditional_26_For_13_Template_symphiq_focus_area_question_statusChange_0_listener($event) { const domain_r10 = i0.ɵɵrestoreView(_r9).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onFocusAreaStatusChange(domain_r10, $event)); })("toolsClick", function SymphiqCreateAccountDashboardComponent_Conditional_26_For_13_Template_symphiq_focus_area_question_toolsClick_0_listener() { const domain_r10 = i0.ɵɵrestoreView(_r9).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onFocusAreaToolsClick(domain_r10)); });
52731
+ i0.ɵɵelementEnd();
52732
+ i0.ɵɵconditionalCreate(1, SymphiqCreateAccountDashboardComponent_Conditional_26_For_13_Conditional_1_Template, 1, 1, "div", 72);
52733
+ } if (rf & 2) {
52734
+ const domain_r10 = ctx.$implicit;
52735
+ const ɵ$index_340_r11 = ctx.$index;
52736
+ const ctx_r1 = i0.ɵɵnextContext(2);
52737
+ i0.ɵɵproperty("focusAreaDomain", domain_r10)("selectedStatus", ctx_r1.getFocusAreaStatus(domain_r10))("selectedTools", ctx_r1.getFocusAreaTools(domain_r10))("viewMode", ctx_r1.viewMode())("title", ctx_r1.getFocusAreaTitle(domain_r10))("description", ctx_r1.getFocusAreaDescription(domain_r10));
52738
+ i0.ɵɵadvance();
52739
+ i0.ɵɵconditional(ɵ$index_340_r11 < ctx_r1.allFocusAreaDomains().length - 1 ? 1 : -1);
52740
+ } }
52741
+ function SymphiqCreateAccountDashboardComponent_Conditional_26_Template(rf, ctx) { if (rf & 1) {
52742
+ i0.ɵɵelementStart(0, "div", 15)(1, "div", 18)(2, "div", 28)(3, "div", 69)(4, "div")(5, "h2", 20);
52743
+ i0.ɵɵtext(6, " Focus Areas ");
52744
+ i0.ɵɵelementEnd();
52745
+ i0.ɵɵelementStart(7, "p", 1);
52746
+ i0.ɵɵtext(8, " Tell us about your marketing and operational focus areas ");
52747
+ i0.ɵɵelementEnd()();
52748
+ i0.ɵɵelementStart(9, "div", 70);
52749
+ i0.ɵɵtext(10);
52750
+ i0.ɵɵelementEnd()()();
52751
+ i0.ɵɵelementStart(11, "div", 24);
52752
+ i0.ɵɵrepeaterCreate(12, SymphiqCreateAccountDashboardComponent_Conditional_26_For_13_Template, 2, 7, null, null, i0.ɵɵrepeaterTrackByIdentity);
52753
+ i0.ɵɵelementEnd()()();
52754
+ } if (rf & 2) {
52755
+ const ctx_r1 = i0.ɵɵnextContext();
52756
+ i0.ɵɵproperty("ngClass", ctx_r1.containerClasses());
52757
+ i0.ɵɵadvance();
52758
+ i0.ɵɵproperty("ngClass", ctx_r1.contentClasses());
52759
+ i0.ɵɵadvance(4);
52760
+ i0.ɵɵproperty("ngClass", ctx_r1.sectionTitleClasses());
52761
+ i0.ɵɵadvance(2);
52762
+ i0.ɵɵproperty("ngClass", ctx_r1.sectionDescriptionClasses());
52763
+ i0.ɵɵadvance(2);
52764
+ i0.ɵɵproperty("ngClass", ctx_r1.progressBadgeClasses());
52765
+ i0.ɵɵadvance();
52766
+ i0.ɵɵtextInterpolate2(" ", ctx_r1.focusAreasAnswered(), " of ", ctx_r1.totalFocusAreas(), " answered ");
52767
+ i0.ɵɵadvance(2);
52768
+ i0.ɵɵrepeater(ctx_r1.allFocusAreaDomains());
52769
+ } }
52770
+ function SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_2_Template(rf, ctx) { if (rf & 1) {
52771
+ i0.ɵɵelementStart(0, "div", 74);
52772
+ i0.ɵɵtext(1);
52773
+ i0.ɵɵelementEnd();
52774
+ } if (rf & 2) {
52775
+ const ctx_r1 = i0.ɵɵnextContext(2);
52776
+ i0.ɵɵproperty("ngClass", ctx_r1.validationMessageClasses());
52777
+ i0.ɵɵadvance();
52778
+ i0.ɵɵtextInterpolate3(" Please answer all ", ctx_r1.totalFocusAreas(), " focus area questions before creating your account. ", ctx_r1.focusAreasAnswered(), " of ", ctx_r1.totalFocusAreas(), " completed. ");
52779
+ } }
52780
+ function SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_4_Template(rf, ctx) { if (rf & 1) {
52781
+ const _r13 = i0.ɵɵgetCurrentView();
52782
+ i0.ɵɵelementStart(0, "button", 78);
52783
+ i0.ɵɵlistener("click", function SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_4_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.focusAreasEditMode() ? ctx_r1.cancelFocusAreasEditMode() : ctx_r1.cancelEditMode()); });
51795
52784
  i0.ɵɵtext(1, " Cancel ");
51796
52785
  i0.ɵɵelementEnd();
51797
52786
  } if (rf & 2) {
51798
52787
  const ctx_r1 = i0.ɵɵnextContext(2);
51799
52788
  i0.ɵɵproperty("ngClass", ctx_r1.cancelButtonClasses());
51800
52789
  } }
51801
- function SymphiqCreateAccountDashboardComponent_Conditional_25_Conditional_5_Conditional_3_Template(rf, ctx) { if (rf & 1) {
52790
+ function SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_6_Conditional_3_Template(rf, ctx) { if (rf & 1) {
52791
+ i0.ɵɵtext(0, " Saving Focus Areas... ");
52792
+ } }
52793
+ function SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_6_Conditional_4_Template(rf, ctx) { if (rf & 1) {
51802
52794
  i0.ɵɵtext(0, " Updating Account... ");
51803
52795
  } }
51804
- function SymphiqCreateAccountDashboardComponent_Conditional_25_Conditional_5_Conditional_4_Template(rf, ctx) { if (rf & 1) {
52796
+ function SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_6_Conditional_5_Template(rf, ctx) { if (rf & 1) {
51805
52797
  i0.ɵɵtext(0, " Creating Account... ");
51806
52798
  } }
51807
- function SymphiqCreateAccountDashboardComponent_Conditional_25_Conditional_5_Template(rf, ctx) { if (rf & 1) {
52799
+ function SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_6_Template(rf, ctx) { if (rf & 1) {
51808
52800
  i0.ɵɵnamespaceSVG();
51809
- i0.ɵɵelementStart(0, "svg", 55);
51810
- i0.ɵɵelement(1, "circle", 56)(2, "path", 57);
52801
+ i0.ɵɵelementStart(0, "svg", 79);
52802
+ i0.ɵɵelement(1, "circle", 80)(2, "path", 81);
51811
52803
  i0.ɵɵelementEnd();
51812
- i0.ɵɵconditionalCreate(3, SymphiqCreateAccountDashboardComponent_Conditional_25_Conditional_5_Conditional_3_Template, 1, 0)(4, SymphiqCreateAccountDashboardComponent_Conditional_25_Conditional_5_Conditional_4_Template, 1, 0);
52804
+ i0.ɵɵconditionalCreate(3, SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_6_Conditional_3_Template, 1, 0)(4, SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_6_Conditional_4_Template, 1, 0)(5, SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_6_Conditional_5_Template, 1, 0);
51813
52805
  } if (rf & 2) {
51814
52806
  const ctx_r1 = i0.ɵɵnextContext(2);
51815
52807
  i0.ɵɵadvance(3);
51816
- i0.ɵɵconditional(ctx_r1.accountData() && ctx_r1.editMode() ? 3 : 4);
52808
+ i0.ɵɵconditional(ctx_r1.focusAreasEditMode() ? 3 : ctx_r1.accountData() && ctx_r1.editMode() ? 4 : 5);
51817
52809
  } }
51818
- function SymphiqCreateAccountDashboardComponent_Conditional_25_Conditional_6_Conditional_0_Template(rf, ctx) { if (rf & 1) {
51819
- i0.ɵɵtext(0, " Edit Account ");
52810
+ function SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_7_Conditional_0_Template(rf, ctx) { if (rf & 1) {
52811
+ i0.ɵɵtext(0, " Save Focus Areas ");
51820
52812
  } }
51821
- function SymphiqCreateAccountDashboardComponent_Conditional_25_Conditional_6_Conditional_1_Template(rf, ctx) { if (rf & 1) {
52813
+ function SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_7_Conditional_1_Template(rf, ctx) { if (rf & 1) {
52814
+ i0.ɵɵtext(0, " Save Changes ");
52815
+ } }
52816
+ function SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_7_Conditional_2_Template(rf, ctx) { if (rf & 1) {
51822
52817
  i0.ɵɵtext(0, " Create Account ");
51823
52818
  } }
51824
- function SymphiqCreateAccountDashboardComponent_Conditional_25_Conditional_6_Template(rf, ctx) { if (rf & 1) {
51825
- i0.ɵɵconditionalCreate(0, SymphiqCreateAccountDashboardComponent_Conditional_25_Conditional_6_Conditional_0_Template, 1, 0)(1, SymphiqCreateAccountDashboardComponent_Conditional_25_Conditional_6_Conditional_1_Template, 1, 0);
52819
+ function SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_7_Template(rf, ctx) { if (rf & 1) {
52820
+ i0.ɵɵconditionalCreate(0, SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_7_Conditional_0_Template, 1, 0)(1, SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_7_Conditional_1_Template, 1, 0)(2, SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_7_Conditional_2_Template, 1, 0);
51826
52821
  i0.ɵɵnamespaceSVG();
51827
- i0.ɵɵelementStart(2, "svg", 58);
51828
- i0.ɵɵelement(3, "path", 59);
52822
+ i0.ɵɵelementStart(3, "svg", 82);
52823
+ i0.ɵɵelement(4, "path", 83);
51829
52824
  i0.ɵɵelementEnd();
51830
52825
  } if (rf & 2) {
51831
52826
  const ctx_r1 = i0.ɵɵnextContext(2);
51832
- i0.ɵɵconditional(ctx_r1.accountData() && ctx_r1.editMode() ? 0 : 1);
52827
+ i0.ɵɵconditional(ctx_r1.focusAreasEditMode() ? 0 : ctx_r1.accountData() && ctx_r1.editMode() ? 1 : 2);
51833
52828
  } }
51834
- function SymphiqCreateAccountDashboardComponent_Conditional_25_Template(rf, ctx) { if (rf & 1) {
51835
- const _r4 = i0.ɵɵgetCurrentView();
51836
- i0.ɵɵelementStart(0, "div", 15)(1, "div", 50)(2, "div", 51);
51837
- i0.ɵɵconditionalCreate(3, SymphiqCreateAccountDashboardComponent_Conditional_25_Conditional_3_Template, 2, 1, "button", 52);
51838
- i0.ɵɵelementStart(4, "button", 53);
51839
- i0.ɵɵlistener("click", function SymphiqCreateAccountDashboardComponent_Conditional_25_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.handleContinue()); });
51840
- i0.ɵɵconditionalCreate(5, SymphiqCreateAccountDashboardComponent_Conditional_25_Conditional_5_Template, 5, 1)(6, SymphiqCreateAccountDashboardComponent_Conditional_25_Conditional_6_Template, 4, 1);
52829
+ function SymphiqCreateAccountDashboardComponent_Conditional_28_Template(rf, ctx) { if (rf & 1) {
52830
+ const _r12 = i0.ɵɵgetCurrentView();
52831
+ i0.ɵɵelementStart(0, "div", 17)(1, "div", 73);
52832
+ i0.ɵɵconditionalCreate(2, SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_2_Template, 2, 4, "div", 74);
52833
+ i0.ɵɵelementStart(3, "div", 75);
52834
+ i0.ɵɵconditionalCreate(4, SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_4_Template, 2, 1, "button", 76);
52835
+ i0.ɵɵelementStart(5, "button", 77);
52836
+ i0.ɵɵlistener("click", function SymphiqCreateAccountDashboardComponent_Conditional_28_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.focusAreasEditMode() ? ctx_r1.handleSaveFocusAreas() : ctx_r1.handleContinue()); });
52837
+ i0.ɵɵconditionalCreate(6, SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_6_Template, 6, 1)(7, SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_7_Template, 5, 1);
51841
52838
  i0.ɵɵelementEnd()()()();
51842
52839
  } if (rf & 2) {
51843
52840
  const ctx_r1 = i0.ɵɵnextContext();
51844
52841
  i0.ɵɵproperty("ngClass", ctx_r1.stickyButtonContainerClasses());
51845
- i0.ɵɵadvance(3);
51846
- i0.ɵɵconditional(ctx_r1.accountData() && ctx_r1.editMode() ? 3 : -1);
52842
+ i0.ɵɵadvance(2);
52843
+ i0.ɵɵconditional(!ctx_r1.allFocusAreasAnswered() && !ctx_r1.accountData() ? 2 : -1);
52844
+ i0.ɵɵadvance(2);
52845
+ i0.ɵɵconditional(ctx_r1.accountData() && ctx_r1.editMode() || ctx_r1.accountData() && ctx_r1.focusAreasEditMode() ? 4 : -1);
51847
52846
  i0.ɵɵadvance();
51848
52847
  i0.ɵɵclassProp("cursor-pointer", ctx_r1.isButtonEnabled())("cursor-not-allowed", !ctx_r1.isButtonEnabled())("opacity-50", !ctx_r1.isButtonEnabled())("hover:scale-105", ctx_r1.isButtonEnabled());
51849
52848
  i0.ɵɵproperty("disabled", !ctx_r1.isButtonEnabled())("ngClass", ctx_r1.continueButtonClasses());
51850
52849
  i0.ɵɵadvance();
51851
- i0.ɵɵconditional(ctx_r1.isLoading() ? 5 : 6);
52850
+ i0.ɵɵconditional(ctx_r1.isLoading() ? 6 : 7);
51852
52851
  } }
51853
52852
  var ShopPlatformEnum;
51854
52853
  (function (ShopPlatformEnum) {
@@ -51913,6 +52912,57 @@ class SymphiqCreateAccountDashboardComponent {
51913
52912
  this.originalFormValue = null;
51914
52913
  this.ShopPlatformEnum = ShopPlatformEnum;
51915
52914
  this.JourneyStepIdEnum = JourneyStepIdEnum;
52915
+ this.FocusAreaDomainEnum = FocusAreaDomainEnum;
52916
+ this.FocusAreaDetailStatusEnum = FocusAreaDetailStatusEnum;
52917
+ this.focusAreasEditMode = signal(false, ...(ngDevMode ? [{ debugName: "focusAreasEditMode" }] : []));
52918
+ this.toolsModalOpen = signal(false, ...(ngDevMode ? [{ debugName: "toolsModalOpen" }] : []));
52919
+ this.currentEditingFocusArea = signal(null, ...(ngDevMode ? [{ debugName: "currentEditingFocusArea" }] : []));
52920
+ this.focusAreasMap = signal(new Map(), ...(ngDevMode ? [{ debugName: "focusAreasMap" }] : []));
52921
+ this.originalFocusAreasMap = null;
52922
+ this.allFocusAreaDomains = signal(FocusAreaDomainEnumUtil.sorted(), ...(ngDevMode ? [{ debugName: "allFocusAreaDomains" }] : []));
52923
+ this.totalFocusAreas = computed(() => this.allFocusAreaDomains().length, ...(ngDevMode ? [{ debugName: "totalFocusAreas" }] : []));
52924
+ this.focusAreasAnswered = computed(() => {
52925
+ const map = this.focusAreasMap();
52926
+ let count = 0;
52927
+ for (const [_, value] of map) {
52928
+ if (value.status !== null) {
52929
+ count++;
52930
+ }
52931
+ }
52932
+ return count;
52933
+ }, ...(ngDevMode ? [{ debugName: "focusAreasAnswered" }] : []));
52934
+ this.allFocusAreasAnswered = computed(() => {
52935
+ return this.focusAreasAnswered() === this.totalFocusAreas();
52936
+ }, ...(ngDevMode ? [{ debugName: "allFocusAreasAnswered" }] : []));
52937
+ this.currentEditingFocusAreaTitle = computed(() => {
52938
+ const domain = this.currentEditingFocusArea();
52939
+ return domain ? FocusAreaDomainEnumUtil.title(domain) : '';
52940
+ }, ...(ngDevMode ? [{ debugName: "currentEditingFocusAreaTitle" }] : []));
52941
+ this.currentEditingTools = computed(() => {
52942
+ const domain = this.currentEditingFocusArea();
52943
+ if (!domain)
52944
+ return [];
52945
+ const data = this.focusAreasMap().get(domain);
52946
+ return data?.tools || [];
52947
+ }, ...(ngDevMode ? [{ debugName: "currentEditingTools" }] : []));
52948
+ this.engagedFocusAreas = computed(() => {
52949
+ const data = this.accountData();
52950
+ if (!data?.focusAreaDetails)
52951
+ return [];
52952
+ return data.focusAreaDetails.filter(fa => fa.status === FocusAreaDetailStatusEnum.ENGAGED);
52953
+ }, ...(ngDevMode ? [{ debugName: "engagedFocusAreas" }] : []));
52954
+ this.interestedFocusAreas = computed(() => {
52955
+ const data = this.accountData();
52956
+ if (!data?.focusAreaDetails)
52957
+ return [];
52958
+ return data.focusAreaDetails.filter(fa => fa.status === FocusAreaDetailStatusEnum.NOT_ENGAGED_BUT_WANT_TO);
52959
+ }, ...(ngDevMode ? [{ debugName: "interestedFocusAreas" }] : []));
52960
+ this.notInterestedFocusAreas = computed(() => {
52961
+ const data = this.accountData();
52962
+ if (!data?.focusAreaDetails)
52963
+ return [];
52964
+ return data.focusAreaDetails.filter(fa => fa.status === FocusAreaDetailStatusEnum.NOT_ENGAGED_AND_NO_INTEREST);
52965
+ }, ...(ngDevMode ? [{ debugName: "notInterestedFocusAreas" }] : []));
51916
52966
  this.accountForm = this.fb.group({
51917
52967
  shopName: ['', Validators.required],
51918
52968
  shopUrl: ['', Validators.required],
@@ -51920,13 +52970,17 @@ class SymphiqCreateAccountDashboardComponent {
51920
52970
  otherPlatformName: [''],
51921
52971
  companyName: ['', Validators.required]
51922
52972
  });
52973
+ this.initializeFocusAreasMap();
51923
52974
  effect(() => {
51924
52975
  const data = this.accountData();
51925
- if (data && !this.editMode()) {
52976
+ if (data && !this.editMode() && !this.focusAreasEditMode()) {
51926
52977
  this.accountForm.patchValue(data);
51927
52978
  if (data.shopName === data.companyName) {
51928
52979
  this.sameAsShopName.set(true);
51929
52980
  }
52981
+ if (data.focusAreaDetails) {
52982
+ this.loadFocusAreasFromData(data.focusAreaDetails);
52983
+ }
51930
52984
  }
51931
52985
  });
51932
52986
  this.accountForm.get('shopPlatform')?.valueChanges.subscribe(value => {
@@ -52006,21 +53060,123 @@ class SymphiqCreateAccountDashboardComponent {
52006
53060
  isButtonEnabled() {
52007
53061
  if (this.isLoading())
52008
53062
  return false;
53063
+ if (this.focusAreasEditMode()) {
53064
+ return this.allFocusAreasAnswered();
53065
+ }
52009
53066
  if (!this.isFormValid())
52010
53067
  return false;
53068
+ if (!this.accountData()) {
53069
+ return this.allFocusAreasAnswered();
53070
+ }
52011
53071
  if (this.accountData() && this.editMode()) {
52012
53072
  return this.formChanged();
52013
53073
  }
52014
53074
  return true;
52015
53075
  }
52016
53076
  handleContinue() {
52017
- if (this.accountForm.valid && !this.isLoading()) {
53077
+ if (this.accountForm.valid && this.allFocusAreasAnswered() && !this.isLoading()) {
52018
53078
  this.isLoading.set(true);
52019
- const formData = this.accountForm.value;
53079
+ const formData = {
53080
+ ...this.accountForm.value,
53081
+ focusAreaDetails: this.getFocusAreaDetailsFromMap()
53082
+ };
52020
53083
  this.onCreateAccount.emit(formData);
52021
53084
  this.editMode.set(false);
52022
53085
  }
52023
53086
  }
53087
+ handleSaveFocusAreas() {
53088
+ if (this.allFocusAreasAnswered() && !this.isLoading()) {
53089
+ this.isLoading.set(true);
53090
+ const formData = {
53091
+ ...this.accountData(),
53092
+ focusAreaDetails: this.getFocusAreaDetailsFromMap()
53093
+ };
53094
+ this.onCreateAccount.emit(formData);
53095
+ this.focusAreasEditMode.set(false);
53096
+ }
53097
+ }
53098
+ initializeFocusAreasMap() {
53099
+ const map = new Map();
53100
+ this.allFocusAreaDomains().forEach(domain => {
53101
+ map.set(domain, { status: null, tools: [] });
53102
+ });
53103
+ this.focusAreasMap.set(map);
53104
+ }
53105
+ loadFocusAreasFromData(focusAreaDetails) {
53106
+ const map = new Map();
53107
+ this.allFocusAreaDomains().forEach(domain => {
53108
+ const detail = focusAreaDetails.find(fa => fa.focusAreaDomain === domain);
53109
+ if (detail) {
53110
+ map.set(domain, {
53111
+ status: detail.status || null,
53112
+ tools: detail.tools || []
53113
+ });
53114
+ }
53115
+ else {
53116
+ map.set(domain, { status: null, tools: [] });
53117
+ }
53118
+ });
53119
+ this.focusAreasMap.set(map);
53120
+ }
53121
+ getFocusAreaDetailsFromMap() {
53122
+ const details = [];
53123
+ this.focusAreasMap().forEach((value, domain) => {
53124
+ if (value.status !== null) {
53125
+ details.push({
53126
+ focusAreaDomain: domain,
53127
+ status: value.status,
53128
+ tools: value.tools
53129
+ });
53130
+ }
53131
+ });
53132
+ return details;
53133
+ }
53134
+ getFocusAreaStatus(domain) {
53135
+ return this.focusAreasMap().get(domain)?.status || null;
53136
+ }
53137
+ getFocusAreaTools(domain) {
53138
+ return this.focusAreasMap().get(domain)?.tools || [];
53139
+ }
53140
+ getFocusAreaTitle(domain) {
53141
+ return FocusAreaDomainEnumUtil.title(domain);
53142
+ }
53143
+ getFocusAreaDescription(domain) {
53144
+ return FocusAreaDomainEnumUtil.subtitle(domain);
53145
+ }
53146
+ onFocusAreaStatusChange(domain, status) {
53147
+ const map = new Map(this.focusAreasMap());
53148
+ const current = map.get(domain) || { status: null, tools: [] };
53149
+ map.set(domain, { ...current, status });
53150
+ this.focusAreasMap.set(map);
53151
+ }
53152
+ onFocusAreaToolsClick(domain) {
53153
+ this.currentEditingFocusArea.set(domain);
53154
+ this.toolsModalOpen.set(true);
53155
+ }
53156
+ onToolsModalClose() {
53157
+ this.toolsModalOpen.set(false);
53158
+ this.currentEditingFocusArea.set(null);
53159
+ }
53160
+ onToolsModalSave(tools) {
53161
+ const domain = this.currentEditingFocusArea();
53162
+ if (domain) {
53163
+ const map = new Map(this.focusAreasMap());
53164
+ const current = map.get(domain) || { status: null, tools: [] };
53165
+ map.set(domain, { ...current, tools });
53166
+ this.focusAreasMap.set(map);
53167
+ }
53168
+ this.onToolsModalClose();
53169
+ }
53170
+ enableFocusAreasEditMode() {
53171
+ this.originalFocusAreasMap = new Map(this.focusAreasMap());
53172
+ this.focusAreasEditMode.set(true);
53173
+ }
53174
+ cancelFocusAreasEditMode() {
53175
+ if (this.originalFocusAreasMap) {
53176
+ this.focusAreasMap.set(new Map(this.originalFocusAreasMap));
53177
+ }
53178
+ this.focusAreasEditMode.set(false);
53179
+ }
52024
53180
  isLightMode() {
52025
53181
  return this.viewMode() === ViewModeEnum.LIGHT;
52026
53182
  }
@@ -52176,6 +53332,91 @@ class SymphiqCreateAccountDashboardComponent {
52176
53332
  ? 'bg-gradient-to-r from-blue-600 to-cyan-600 hover:from-blue-700 hover:to-cyan-700 text-white'
52177
53333
  : 'bg-gradient-to-r from-blue-500 to-cyan-500 hover:from-blue-600 hover:to-cyan-600 text-white';
52178
53334
  }
53335
+ progressBadgeClasses() {
53336
+ const allAnswered = this.allFocusAreasAnswered();
53337
+ return this.isLightMode()
53338
+ ? allAnswered
53339
+ ? 'bg-emerald-100 text-emerald-700 border border-emerald-200'
53340
+ : 'bg-blue-100 text-blue-700 border border-blue-200'
53341
+ : allAnswered
53342
+ ? 'bg-emerald-900/30 text-emerald-400 border border-emerald-700'
53343
+ : 'bg-blue-900/30 text-blue-400 border border-blue-700';
53344
+ }
53345
+ dividerClasses() {
53346
+ return this.isLightMode()
53347
+ ? 'border-t border-slate-200'
53348
+ : 'border-t border-slate-700';
53349
+ }
53350
+ groupTitleClasses(type) {
53351
+ if (type === 'engaged') {
53352
+ return this.isLightMode()
53353
+ ? 'text-emerald-700'
53354
+ : 'text-emerald-400';
53355
+ }
53356
+ if (type === 'interested') {
53357
+ return this.isLightMode()
53358
+ ? 'text-blue-700'
53359
+ : 'text-blue-400';
53360
+ }
53361
+ return this.isLightMode()
53362
+ ? 'text-slate-600'
53363
+ : 'text-slate-400';
53364
+ }
53365
+ focusAreaViewCardClasses(type) {
53366
+ if (type === 'engaged') {
53367
+ return this.isLightMode()
53368
+ ? 'bg-emerald-50 border-emerald-500'
53369
+ : 'bg-emerald-900/10 border-emerald-600';
53370
+ }
53371
+ if (type === 'interested') {
53372
+ return this.isLightMode()
53373
+ ? 'bg-blue-50 border-blue-500'
53374
+ : 'bg-blue-900/10 border-blue-600';
53375
+ }
53376
+ return this.isLightMode()
53377
+ ? 'bg-slate-100'
53378
+ : 'bg-slate-700/50';
53379
+ }
53380
+ focusAreaViewTitleClasses() {
53381
+ return this.isLightMode()
53382
+ ? 'text-slate-900'
53383
+ : 'text-white';
53384
+ }
53385
+ focusAreaViewTitleSmallClasses() {
53386
+ return this.isLightMode()
53387
+ ? 'text-slate-600'
53388
+ : 'text-slate-400';
53389
+ }
53390
+ statusBadgeClasses(type) {
53391
+ if (type === 'engaged') {
53392
+ return this.isLightMode()
53393
+ ? 'bg-emerald-100 text-emerald-700'
53394
+ : 'bg-emerald-900/30 text-emerald-300';
53395
+ }
53396
+ if (type === 'interested') {
53397
+ return this.isLightMode()
53398
+ ? 'bg-blue-100 text-blue-700'
53399
+ : 'bg-blue-900/30 text-blue-300';
53400
+ }
53401
+ return this.isLightMode()
53402
+ ? 'bg-slate-200 text-slate-700'
53403
+ : 'bg-slate-700 text-slate-300';
53404
+ }
53405
+ toolsLabelViewClasses() {
53406
+ return this.isLightMode()
53407
+ ? 'text-slate-600'
53408
+ : 'text-slate-400';
53409
+ }
53410
+ toolChipViewClasses() {
53411
+ return this.isLightMode()
53412
+ ? 'bg-white text-emerald-700 border border-emerald-200'
53413
+ : 'bg-slate-800 text-emerald-300 border border-emerald-700';
53414
+ }
53415
+ validationMessageClasses() {
53416
+ return this.isLightMode()
53417
+ ? 'bg-orange-50 text-orange-700 border border-orange-200'
53418
+ : 'bg-orange-900/30 text-orange-400 border border-orange-700';
53419
+ }
52179
53420
  static { this.ɵfac = function SymphiqCreateAccountDashboardComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SymphiqCreateAccountDashboardComponent)(); }; }
52180
53421
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SymphiqCreateAccountDashboardComponent, selectors: [["symphiq-create-account-dashboard"]], viewQuery: function SymphiqCreateAccountDashboardComponent_Query(rf, ctx) { if (rf & 1) {
52181
53422
  i0.ɵɵviewQuery(_c0$q, 5);
@@ -52184,7 +53425,7 @@ class SymphiqCreateAccountDashboardComponent {
52184
53425
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.shopNameInput = _t.first);
52185
53426
  } }, hostBindings: function SymphiqCreateAccountDashboardComponent_HostBindings(rf, ctx) { if (rf & 1) {
52186
53427
  i0.ɵɵlistener("scroll", function SymphiqCreateAccountDashboardComponent_scroll_HostBindingHandler($event) { return ctx.onScroll($event); }, i0.ɵɵresolveWindow);
52187
- } }, inputs: { embedded: [1, "embedded"], parentHeaderOffset: [1, "parentHeaderOffset"], viewMode: [1, "viewMode"], scrollEvent: [1, "scrollEvent"], scrollElement: [1, "scrollElement"], accountData: [1, "accountData"], forDemo: [1, "forDemo"], showNextStepAction: [1, "showNextStepAction"], maxAccessibleStepId: [1, "maxAccessibleStepId"] }, outputs: { onCreateAccount: "onCreateAccount", stepClick: "stepClick", nextStepClick: "nextStepClick" }, decls: 26, vars: 44, consts: [["shopNameInput", ""], [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, "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-3"], [1, "flex-1", "min-w-0", "mr-4"], [3, "stepClick", "nextStepClick", "viewMode", "currentStepId", "showNextStepAction", "forDemo", "maxAccessibleStepId"], [1, "relative", "pb-32"], [1, "max-w-3xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-8"], [1, "rounded-2xl", "border", "shadow-lg", "overflow-hidden", 3, "ngClass"], [1, "fixed", "bottom-0", "left-0", "right-0", "z-50", "border-t", "backdrop-blur-sm", 3, "ngClass"], [1, "px-8", "py-8", 3, "ngClass"], [1, "flex", "items-start", "justify-between", "mb-6"], [1, "text-2xl", "font-bold", "mb-2", 3, "ngClass"], ["type", "button", 1, "px-4", "py-2", "rounded-lg", "font-medium", "text-sm", "transition-all", "duration-200", "hover:scale-105", "flex", "items-center", "gap-2", "cursor-pointer", 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", "M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"], [1, "space-y-4"], [1, "block", "text-sm", "font-medium", "mb-1", 3, "ngClass"], [1, "text-base", 3, "ngClass"], ["target", "_blank", "rel", "noopener noreferrer", 1, "text-base", "hover:underline", 3, "href", "ngClass"], [1, "mb-6"], [1, "space-y-6", 3, "formGroup"], [1, "block", "text-sm", "font-semibold", "mb-2", 3, "ngClass"], [1, "text-red-500"], ["type", "text", "formControlName", "shopName", "placeholder", "Enter your shop name", 1, "w-full", "px-4", "py-3", "rounded-lg", "border-2", "transition-all", "duration-200", "focus:outline-none", "focus:ring-2", 3, "ngClass"], [1, "mt-1", "text-sm", 3, "ngClass"], [1, "flex", "items-center"], [1, "px-4", "py-3", "rounded-l-lg", "border-2", "border-r-0", "text-sm", "font-medium", 3, "ngClass"], ["type", "text", "formControlName", "shopUrl", "placeholder", "yourshop.com", 1, "flex-1", "px-4", "py-3", "rounded-r-lg", "border-2", "transition-all", "duration-200", "focus:outline-none", "focus:ring-2", 3, "ngClass"], [1, "block", "text-sm", "font-semibold", "mb-3", 3, "ngClass"], [1, "grid", "grid-cols-1", "sm:grid-cols-2", "gap-4"], [1, "cursor-pointer", 3, "ngClass"], ["type", "radio", "formControlName", "shopPlatform", 1, "sr-only", 3, "value"], [1, "flex", "items-center", "gap-3", "p-4", "rounded-lg", "border-2", "transition-all", "duration-200"], [1, "w-5", "h-5", "rounded-full", "border-2", "flex", "items-center", "justify-center", "flex-shrink-0", 3, "ngClass"], [1, "w-3", "h-3", "rounded-full", "bg-current"], [1, "flex-1"], [1, "font-semibold", 3, "ngClass"], ["type", "text", "formControlName", "companyName", "placeholder", "Enter company name", 1, "w-full", "px-4", "py-3", "rounded-lg", "border-2", "transition-all", "duration-200", "focus:outline-none", "focus:ring-2", 3, "ngClass", "readonly"], [1, "mt-2"], [1, "flex", "items-center", "gap-2", "cursor-pointer"], ["type", "checkbox", 1, "w-4", "h-4", "rounded", "border-2", "transition-all", "duration-200", 3, "change", "checked", "ngClass"], [1, "text-sm", 3, "ngClass"], ["type", "text", "formControlName", "otherPlatformName", "placeholder", "Enter platform name (e.g., WooCommerce, Magento)", 1, "w-full", "px-4", "py-3", "rounded-lg", "border-2", "transition-all", "duration-200", "focus:outline-none", "focus:ring-2", 3, "ngClass"], [1, "max-w-3xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-4"], [1, "flex", "items-center", "gap-3"], ["type", "button", 1, "px-6", "py-4", "rounded-xl", "font-bold", "text-base", "transition-all", "duration-200", "flex", "items-center", "justify-center", "gap-2", "cursor-pointer", "hover:scale-105", 3, "ngClass"], ["type", "button", 1, "flex-1", "px-6", "py-4", "rounded-xl", "font-bold", "text-lg", "transition-all", "duration-200", "flex", "items-center", "justify-center", "gap-3", "shadow-lg", 3, "click", "disabled", "ngClass"], ["type", "button", 1, "px-6", "py-4", "rounded-xl", "font-bold", "text-base", "transition-all", "duration-200", "flex", "items-center", "justify-center", "gap-2", "cursor-pointer", "hover:scale-105", 3, "click", "ngClass"], ["fill", "none", "viewBox", "0 0 24 24", 1, "w-6", "h-6", "animate-spin"], ["cx", "12", "cy", "12", "r", "10", "stroke", "currentColor", "stroke-width", "4", 1, "opacity-25"], ["fill", "currentColor", "d", "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z", 1, "opacity-75"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-6", "h-6"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 7l5 5m0 0l-5 5m5-5H6"]], template: function SymphiqCreateAccountDashboardComponent_Template(rf, ctx) { if (rf & 1) {
53428
+ } }, inputs: { embedded: [1, "embedded"], parentHeaderOffset: [1, "parentHeaderOffset"], viewMode: [1, "viewMode"], scrollEvent: [1, "scrollEvent"], scrollElement: [1, "scrollElement"], accountData: [1, "accountData"], forDemo: [1, "forDemo"], showNextStepAction: [1, "showNextStepAction"], maxAccessibleStepId: [1, "maxAccessibleStepId"] }, outputs: { onCreateAccount: "onCreateAccount", stepClick: "stepClick", nextStepClick: "nextStepClick" }, decls: 29, vars: 51, consts: [["shopNameInput", ""], [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, "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-3"], [1, "flex-1", "min-w-0", "mr-4"], [3, "stepClick", "nextStepClick", "viewMode", "currentStepId", "showNextStepAction", "forDemo", "maxAccessibleStepId"], [1, "relative", "pb-32"], [1, "max-w-3xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-8"], [1, "rounded-2xl", "border", "shadow-lg", "overflow-hidden", "mb-8", 3, "ngClass"], [1, "rounded-2xl", "border", "shadow-lg", "overflow-hidden", 3, "ngClass"], [3, "close", "save", "isOpen", "focusAreaDomain", "focusAreaTitle", "selectedTools", "viewMode"], [1, "fixed", "bottom-0", "left-0", "right-0", "z-50", "border-t", "backdrop-blur-sm", 3, "ngClass"], [1, "px-8", "py-8", 3, "ngClass"], [1, "flex", "items-start", "justify-between", "mb-6"], [1, "text-2xl", "font-bold", "mb-2", 3, "ngClass"], ["type", "button", 1, "px-4", "py-2", "rounded-lg", "font-medium", "text-sm", "transition-all", "duration-200", "hover:scale-105", "flex", "items-center", "gap-2", "cursor-pointer", 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", "M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"], [1, "space-y-4"], [1, "block", "text-sm", "font-medium", "mb-1", 3, "ngClass"], [1, "text-base", 3, "ngClass"], ["target", "_blank", "rel", "noopener noreferrer", 1, "text-base", "hover:underline", 3, "href", "ngClass"], [1, "mb-6"], [1, "space-y-6", 3, "formGroup"], [1, "block", "text-sm", "font-semibold", "mb-2", 3, "ngClass"], [1, "text-red-500"], ["type", "text", "formControlName", "shopName", "placeholder", "Enter your shop name", 1, "w-full", "px-4", "py-3", "rounded-lg", "border-2", "transition-all", "duration-200", "focus:outline-none", "focus:ring-2", 3, "ngClass"], [1, "mt-1", "text-sm", 3, "ngClass"], [1, "flex", "items-center"], [1, "px-4", "py-3", "rounded-l-lg", "border-2", "border-r-0", "text-sm", "font-medium", 3, "ngClass"], ["type", "text", "formControlName", "shopUrl", "placeholder", "yourshop.com", 1, "flex-1", "px-4", "py-3", "rounded-r-lg", "border-2", "transition-all", "duration-200", "focus:outline-none", "focus:ring-2", 3, "ngClass"], [1, "block", "text-sm", "font-semibold", "mb-3", 3, "ngClass"], [1, "grid", "grid-cols-1", "sm:grid-cols-2", "gap-4"], [1, "cursor-pointer", 3, "ngClass"], ["type", "radio", "formControlName", "shopPlatform", 1, "sr-only", 3, "value"], [1, "flex", "items-center", "gap-3", "p-4", "rounded-lg", "border-2", "transition-all", "duration-200"], [1, "w-5", "h-5", "rounded-full", "border-2", "flex", "items-center", "justify-center", "flex-shrink-0", 3, "ngClass"], [1, "w-3", "h-3", "rounded-full", "bg-current"], [1, "flex-1"], [1, "font-semibold", 3, "ngClass"], ["type", "text", "formControlName", "companyName", "placeholder", "Enter company name", 1, "w-full", "px-4", "py-3", "rounded-lg", "border-2", "transition-all", "duration-200", "focus:outline-none", "focus:ring-2", 3, "ngClass", "readonly"], [1, "mt-2"], [1, "flex", "items-center", "gap-2", "cursor-pointer"], ["type", "checkbox", 1, "w-4", "h-4", "rounded", "border-2", "transition-all", "duration-200", 3, "change", "checked", "ngClass"], [1, "text-sm", 3, "ngClass"], ["type", "text", "formControlName", "otherPlatformName", "placeholder", "Enter platform name (e.g., WooCommerce, Magento)", 1, "w-full", "px-4", "py-3", "rounded-lg", "border-2", "transition-all", "duration-200", "focus:outline-none", "focus:ring-2", 3, "ngClass"], [1, "text-base", "font-bold", "mb-3", "flex", "items-center", "gap-2", 3, "ngClass"], [1, "w-2", "h-2", "rounded-full", "bg-emerald-500"], [1, "space-y-3"], [1, "p-4", "rounded-lg", "border-l-4", 3, "ngClass"], [1, "flex", "items-start", "justify-between", "mb-2"], [1, "font-semibold", "text-sm", 3, "ngClass"], [1, "px-2", "py-0.5", "rounded", "text-xs", "font-semibold", "whitespace-nowrap", 3, "ngClass"], [1, "flex", "items-center", "gap-2", "mt-2"], [1, "text-xs", "font-medium", 3, "ngClass"], [1, "flex", "flex-wrap", "gap-1.5"], [1, "px-2", "py-0.5", "rounded", "text-xs", 3, "ngClass"], [1, "w-2", "h-2", "rounded-full", "bg-blue-500"], [1, "grid", "grid-cols-1", "sm:grid-cols-2", "gap-3"], [1, "p-3", "rounded-lg", "border-l-4", 3, "ngClass"], [1, "w-2", "h-2", "rounded-full", "bg-slate-400"], [1, "grid", "grid-cols-2", "sm:grid-cols-3", "gap-2"], [1, "p-2", "rounded", "text-center", 3, "ngClass"], [1, "flex", "items-start", "justify-between"], [1, "px-4", "py-2", "rounded-lg", "text-sm", "font-semibold", "whitespace-nowrap", 3, "ngClass"], [3, "statusChange", "toolsClick", "focusAreaDomain", "selectedStatus", "selectedTools", "viewMode", "title", "description"], [1, "my-4", 3, "ngClass"], [1, "max-w-3xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-4"], [1, "mb-3", "p-3", "rounded-lg", "text-sm", 3, "ngClass"], [1, "flex", "items-center", "gap-3"], ["type", "button", 1, "px-6", "py-4", "rounded-xl", "font-bold", "text-base", "transition-all", "duration-200", "flex", "items-center", "justify-center", "gap-2", "cursor-pointer", "hover:scale-105", 3, "ngClass"], ["type", "button", 1, "flex-1", "px-6", "py-4", "rounded-xl", "font-bold", "text-lg", "transition-all", "duration-200", "flex", "items-center", "justify-center", "gap-3", "shadow-lg", 3, "click", "disabled", "ngClass"], ["type", "button", 1, "px-6", "py-4", "rounded-xl", "font-bold", "text-base", "transition-all", "duration-200", "flex", "items-center", "justify-center", "gap-2", "cursor-pointer", "hover:scale-105", 3, "click", "ngClass"], ["fill", "none", "viewBox", "0 0 24 24", 1, "w-6", "h-6", "animate-spin"], ["cx", "12", "cy", "12", "r", "10", "stroke", "currentColor", "stroke-width", "4", 1, "opacity-25"], ["fill", "currentColor", "d", "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z", 1, "opacity-75"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-6", "h-6"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 7l5 5m0 0l-5 5m5-5H6"]], template: function SymphiqCreateAccountDashboardComponent_Template(rf, ctx) { if (rf & 1) {
52188
53429
  i0.ɵɵelementStart(0, "div", 1)(1, "div");
52189
53430
  i0.ɵɵelement(2, "div", 2);
52190
53431
  i0.ɵɵelementEnd();
@@ -52204,8 +53445,13 @@ class SymphiqCreateAccountDashboardComponent {
52204
53445
  i0.ɵɵelementStart(21, "main", 12)(22, "div", 13);
52205
53446
  i0.ɵɵconditionalCreate(23, SymphiqCreateAccountDashboardComponent_Conditional_23_Template, 34, 18, "div", 14);
52206
53447
  i0.ɵɵconditionalCreate(24, SymphiqCreateAccountDashboardComponent_Conditional_24_Template, 61, 35, "div", 14);
53448
+ i0.ɵɵconditionalCreate(25, SymphiqCreateAccountDashboardComponent_Conditional_25_Template, 15, 8, "div", 15);
53449
+ i0.ɵɵconditionalCreate(26, SymphiqCreateAccountDashboardComponent_Conditional_26_Template, 14, 7, "div", 15);
52207
53450
  i0.ɵɵelementEnd()();
52208
- i0.ɵɵconditionalCreate(25, SymphiqCreateAccountDashboardComponent_Conditional_25_Template, 7, 13, "div", 15);
53451
+ i0.ɵɵelementStart(27, "symphiq-focus-area-tools-modal", 16);
53452
+ i0.ɵɵlistener("close", function SymphiqCreateAccountDashboardComponent_Template_symphiq_focus_area_tools_modal_close_27_listener() { return ctx.onToolsModalClose(); })("save", function SymphiqCreateAccountDashboardComponent_Template_symphiq_focus_area_tools_modal_save_27_listener($event) { return ctx.onToolsModalSave($event); });
53453
+ i0.ɵɵelementEnd();
53454
+ i0.ɵɵconditionalCreate(28, SymphiqCreateAccountDashboardComponent_Conditional_28_Template, 8, 14, "div", 17);
52209
53455
  i0.ɵɵelementEnd()();
52210
53456
  } if (rf & 2) {
52211
53457
  i0.ɵɵproperty("ngClass", ctx.getContainerClasses());
@@ -52235,383 +53481,551 @@ class SymphiqCreateAccountDashboardComponent {
52235
53481
  i0.ɵɵadvance(2);
52236
53482
  i0.ɵɵproperty("viewMode", ctx.viewMode())("currentStepId", ctx.JourneyStepIdEnum.CREATE_ACCOUNT)("showNextStepAction", ctx.showNextStepAction())("forDemo", ctx.forDemo())("maxAccessibleStepId", ctx.maxAccessibleStepId());
52237
53483
  i0.ɵɵadvance(3);
52238
- i0.ɵɵconditional(ctx.accountData() && !ctx.editMode() ? 23 : -1);
53484
+ i0.ɵɵconditional(ctx.accountData() && !ctx.editMode() && !ctx.focusAreasEditMode() ? 23 : -1);
52239
53485
  i0.ɵɵadvance();
52240
53486
  i0.ɵɵconditional(!ctx.accountData() || ctx.editMode() ? 24 : -1);
52241
53487
  i0.ɵɵadvance();
52242
- i0.ɵɵconditional(!ctx.accountData() || ctx.editMode() ? 25 : -1);
52243
- } }, dependencies: [CommonModule, i1$1.NgClass, ReactiveFormsModule, i2$1.ɵNgNoValidate, i2$1.DefaultValueAccessor, i2$1.RadioControlValueAccessor, i2$1.NgControlStatus, i2$1.NgControlStatusGroup, i2$1.FormGroupDirective, i2$1.FormControlName, JourneyProgressIndicatorComponent], styles: ["[_nghost-%COMP%]{display:block}.animated-bubbles[_ngcontent-%COMP%]{overflow:hidden}.animated-bubbles[_ngcontent-%COMP%]:before, .animated-bubbles[_ngcontent-%COMP%]:after{content:\"\";position:absolute;border-radius:50%;animation:_ngcontent-%COMP%_float 20s infinite ease-in-out;opacity:.05}.animated-bubbles[_ngcontent-%COMP%]:before{width:600px;height:600px;background:radial-gradient(circle,#3b82f6 0%,transparent 70%);top:-300px;left:-300px;animation-delay:-5s}.animated-bubbles[_ngcontent-%COMP%]:after{width:800px;height:800px;background:radial-gradient(circle,#06b6d4 0%,transparent 70%);bottom:-400px;right:-400px;animation-delay:-10s}.animated-bubbles.light-mode[_ngcontent-%COMP%]:before, .animated-bubbles.light-mode[_ngcontent-%COMP%]:after{opacity:.03}@keyframes _ngcontent-%COMP%_float{0%,to{transform:translate(0) scale(1)}33%{transform:translate(50px,-50px) scale(1.1)}66%{transform:translate(-30px,30px) scale(.9)}}"], changeDetection: 0 }); }
53488
+ i0.ɵɵconditional(ctx.accountData() && ctx.accountData().focusAreaDetails && !ctx.focusAreasEditMode() ? 25 : -1);
53489
+ i0.ɵɵadvance();
53490
+ i0.ɵɵconditional(!ctx.accountData() || ctx.focusAreasEditMode() ? 26 : -1);
53491
+ i0.ɵɵadvance();
53492
+ i0.ɵɵproperty("isOpen", ctx.toolsModalOpen())("focusAreaDomain", ctx.currentEditingFocusArea())("focusAreaTitle", ctx.currentEditingFocusAreaTitle())("selectedTools", ctx.currentEditingTools())("viewMode", ctx.viewMode());
53493
+ i0.ɵɵadvance();
53494
+ i0.ɵɵconditional(!ctx.accountData() || ctx.editMode() || ctx.focusAreasEditMode() ? 28 : -1);
53495
+ } }, dependencies: [CommonModule, i1$1.NgClass, ReactiveFormsModule, i2$1.ɵNgNoValidate, i2$1.DefaultValueAccessor, i2$1.RadioControlValueAccessor, i2$1.NgControlStatus, i2$1.NgControlStatusGroup, i2$1.FormGroupDirective, i2$1.FormControlName, JourneyProgressIndicatorComponent, FocusAreaQuestionComponent, FocusAreaToolsModalComponent], styles: ["[_nghost-%COMP%]{display:block}.animated-bubbles[_ngcontent-%COMP%]{overflow:hidden}.animated-bubbles[_ngcontent-%COMP%]:before, .animated-bubbles[_ngcontent-%COMP%]:after{content:\"\";position:absolute;border-radius:50%;animation:_ngcontent-%COMP%_float 20s infinite ease-in-out;opacity:.05}.animated-bubbles[_ngcontent-%COMP%]:before{width:600px;height:600px;background:radial-gradient(circle,#3b82f6 0%,transparent 70%);top:-300px;left:-300px;animation-delay:-5s}.animated-bubbles[_ngcontent-%COMP%]:after{width:800px;height:800px;background:radial-gradient(circle,#06b6d4 0%,transparent 70%);bottom:-400px;right:-400px;animation-delay:-10s}.animated-bubbles.light-mode[_ngcontent-%COMP%]:before, .animated-bubbles.light-mode[_ngcontent-%COMP%]:after{opacity:.03}@keyframes _ngcontent-%COMP%_float{0%,to{transform:translate(0) scale(1)}33%{transform:translate(50px,-50px) scale(1.1)}66%{transform:translate(-30px,30px) scale(.9)}}"], changeDetection: 0 }); }
52244
53496
  }
52245
53497
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SymphiqCreateAccountDashboardComponent, [{
52246
53498
  type: Component,
52247
- args: [{ selector: 'symphiq-create-account-dashboard', standalone: true, imports: [CommonModule, ReactiveFormsModule, JourneyProgressIndicatorComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: `
52248
- <div [ngClass]="getContainerClasses()">
52249
- <!-- Scroll Progress Bar -->
52250
- <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'">
52251
- <div
52252
- [style.width.%]="scrollProgress()"
52253
- [ngClass]="isLightMode() ? 'bg-gradient-to-r from-blue-500 to-cyan-500' : 'bg-gradient-to-r from-blue-400 to-cyan-400'"
52254
- class="h-full transition-all duration-200 ease-out">
52255
- </div>
52256
- </div>
52257
-
52258
- <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>
52259
-
52260
- <div class="relative z-[51]">
52261
- <header [ngClass]="getHeaderClasses()" class="sticky top-0 z-50">
52262
- <!-- Expanded Header -->
52263
- <div
52264
- class="transition-all duration-300 ease-in-out overflow-hidden"
52265
- [class.max-h-0]="headerScrollService.isScrolled()"
52266
- [class.opacity-0]="headerScrollService.isScrolled()"
52267
- [class.max-h-96]="!headerScrollService.isScrolled()"
52268
- [class.opacity-100]="!headerScrollService.isScrolled()">
52269
- <div
52270
- class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8"
52271
- [class.pointer-events-none]="headerScrollService.isScrolled()"
52272
- [class.pointer-events-auto]="!headerScrollService.isScrolled()">
52273
- <div class="flex items-center justify-between">
52274
- <div>
52275
- <h1 [ngClass]="getMainTitleClasses()">
52276
- Create Account
52277
- </h1>
52278
- <p [ngClass]="getSubtitleClasses()">
52279
- Tell us about your shop
52280
- </p>
52281
- </div>
52282
- </div>
52283
- </div>
52284
- </div>
52285
-
52286
- <!-- Condensed Header -->
52287
- <div
52288
- class="transition-all duration-300 ease-in-out overflow-hidden"
52289
- [class.max-h-0]="!headerScrollService.isScrolled()"
52290
- [class.opacity-0]="!headerScrollService.isScrolled()"
52291
- [class.max-h-20]="headerScrollService.isScrolled()"
52292
- [class.opacity-100]="headerScrollService.isScrolled()">
52293
- <div
52294
- class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-3"
52295
- [class.pointer-events-none]="!headerScrollService.isScrolled()"
52296
- [class.pointer-events-auto]="headerScrollService.isScrolled()">
52297
- <div class="flex items-center justify-between">
52298
- <div class="flex-1 min-w-0 mr-4">
52299
- <h1 [ngClass]="isLightMode() ? 'text-xl font-bold bg-gradient-to-r from-blue-600 to-cyan-600 bg-clip-text text-transparent truncate' : 'text-xl font-bold bg-gradient-to-r from-blue-400 to-cyan-400 bg-clip-text text-transparent truncate'">
52300
- Create Account
52301
- </h1>
52302
- </div>
52303
- </div>
52304
- </div>
52305
- </div>
52306
- </header>
52307
-
52308
- <!-- Journey Progress Indicator -->
52309
- <symphiq-journey-progress-indicator
52310
- [viewMode]="viewMode()"
52311
- [currentStepId]="JourneyStepIdEnum.CREATE_ACCOUNT"
52312
- [showNextStepAction]="showNextStepAction()"
52313
- [forDemo]="forDemo()"
52314
- [maxAccessibleStepId]="maxAccessibleStepId()"
52315
- (stepClick)="stepClick.emit($event)"
52316
- (nextStepClick)="nextStepClick.emit()"
52317
- />
52318
-
52319
- <main class="relative pb-32">
52320
- <div class="max-w-3xl mx-auto px-4 sm:px-6 lg:px-8 py-8">
52321
- <!-- View Mode: Display Account Data -->
52322
- @if (accountData() && !editMode()) {
52323
- <div [ngClass]="containerClasses()" class="rounded-2xl border shadow-lg overflow-hidden">
52324
- <div [ngClass]="contentClasses()" class="px-8 py-8">
52325
- <div class="flex items-start justify-between mb-6">
52326
- <div>
52327
- <h2 [ngClass]="sectionTitleClasses()" class="text-2xl font-bold mb-2">
52328
- Account Details
52329
- </h2>
52330
- <p [ngClass]="sectionDescriptionClasses()">
52331
- Your shop information
52332
- </p>
52333
- </div>
52334
- <button
52335
- type="button"
52336
- (click)="enableEditMode()"
52337
- [ngClass]="editButtonClasses()"
52338
- class="px-4 py-2 rounded-lg font-medium text-sm transition-all duration-200 hover:scale-105 flex items-center gap-2 cursor-pointer">
52339
- <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
52340
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"/>
52341
- </svg>
52342
- Edit
52343
- </button>
52344
- </div>
52345
-
52346
- <div class="space-y-4">
52347
- <div>
52348
- <label [ngClass]="viewLabelClasses()" class="block text-sm font-medium mb-1">
52349
- Shop Name
52350
- </label>
52351
- <p [ngClass]="viewValueClasses()" class="text-base">
52352
- {{ accountData()!.shopName }}
52353
- </p>
52354
- </div>
52355
-
52356
- <div>
52357
- <label [ngClass]="viewLabelClasses()" class="block text-sm font-medium mb-1">
52358
- Shop URL
52359
- </label>
52360
- <a [href]="accountData()!.shopUrl" target="_blank" rel="noopener noreferrer"
52361
- [ngClass]="viewLinkClasses()"
52362
- class="text-base hover:underline">
52363
- {{ accountData()!.shopUrl }}
52364
- </a>
52365
- </div>
52366
-
52367
- <div>
52368
- <label [ngClass]="viewLabelClasses()" class="block text-sm font-medium mb-1">
52369
- Shop Platform
52370
- </label>
52371
- <p [ngClass]="viewValueClasses()" class="text-base">
52372
- @if (accountData()!.shopPlatform === ShopPlatformEnum.SHOPIFY) {
52373
- Shopify
52374
- } @else {
52375
- {{ accountData()!.otherPlatformName || 'Other' }}
52376
- }
52377
- </p>
52378
- </div>
52379
-
52380
- <div>
52381
- <label [ngClass]="viewLabelClasses()" class="block text-sm font-medium mb-1">
52382
- Company Name
52383
- </label>
52384
- <p [ngClass]="viewValueClasses()" class="text-base">
52385
- {{ accountData()!.companyName }}
52386
- </p>
52387
- </div>
52388
- </div>
52389
- </div>
52390
- </div>
52391
- }
52392
-
52393
- <!-- Edit Mode: Form -->
52394
- @if (!accountData() || editMode()) {
52395
- <div [ngClass]="containerClasses()" class="rounded-2xl border shadow-lg overflow-hidden">
52396
- <div [ngClass]="contentClasses()" class="px-8 py-8">
52397
- <div class="mb-6">
52398
- <h2 [ngClass]="sectionTitleClasses()" class="text-2xl font-bold mb-2">
52399
- Create Account
52400
- </h2>
52401
- <p [ngClass]="sectionDescriptionClasses()">
52402
- Enter your shop details to get started with Symphiq
52403
- </p>
52404
- </div>
52405
-
52406
- <form [formGroup]="accountForm" class="space-y-6">
52407
- <!-- Shop Name -->
52408
- <div>
52409
- <label [ngClass]="labelClasses()" class="block text-sm font-semibold mb-2">
52410
- Shop Name <span class="text-red-500">*</span>
52411
- </label>
52412
- <input
52413
- #shopNameInput
52414
- type="text"
52415
- formControlName="shopName"
52416
- [ngClass]="inputClasses('shopName')"
52417
- class="w-full px-4 py-3 rounded-lg border-2 transition-all duration-200 focus:outline-none focus:ring-2"
52418
- placeholder="Enter your shop name"
52419
- />
52420
- @if (isFieldInvalid('shopName')) {
52421
- <p [ngClass]="errorClasses()" class="mt-1 text-sm">
52422
- Shop name is required
52423
- </p>
52424
- }
52425
- </div>
52426
-
52427
- <!-- Shop URL -->
52428
- <div>
52429
- <label [ngClass]="labelClasses()" class="block text-sm font-semibold mb-2">
52430
- Shop URL <span class="text-red-500">*</span>
52431
- </label>
52432
- <div class="flex items-center">
52433
- <span [ngClass]="urlPrefixClasses()" class="px-4 py-3 rounded-l-lg border-2 border-r-0 text-sm font-medium">
52434
- https://
52435
- </span>
52436
- <input
52437
- type="text"
52438
- formControlName="shopUrl"
52439
- [ngClass]="urlInputClasses('shopUrl')"
52440
- class="flex-1 px-4 py-3 rounded-r-lg border-2 transition-all duration-200 focus:outline-none focus:ring-2"
52441
- placeholder="yourshop.com"
52442
- />
52443
- </div>
52444
- @if (isFieldInvalid('shopUrl')) {
52445
- <p [ngClass]="errorClasses()" class="mt-1 text-sm">
52446
- Shop URL is required
52447
- </p>
52448
- }
52449
- </div>
52450
-
52451
- <!-- Shop Platform -->
52452
- <div>
52453
- <label [ngClass]="labelClasses()" class="block text-sm font-semibold mb-3">
52454
- Shop Platform <span class="text-red-500">*</span>
52455
- </label>
52456
- <div class="grid grid-cols-1 sm:grid-cols-2 gap-4">
52457
- <label [ngClass]="radioPlatformClasses(ShopPlatformEnum.SHOPIFY)" class="cursor-pointer">
52458
- <input
52459
- type="radio"
52460
- formControlName="shopPlatform"
52461
- [value]="ShopPlatformEnum.SHOPIFY"
52462
- class="sr-only"
52463
- />
52464
- <div class="flex items-center gap-3 p-4 rounded-lg border-2 transition-all duration-200">
52465
- <div [ngClass]="radioIndicatorClasses(ShopPlatformEnum.SHOPIFY)" class="w-5 h-5 rounded-full border-2 flex items-center justify-center flex-shrink-0">
52466
- @if (accountForm.get('shopPlatform')?.value === ShopPlatformEnum.SHOPIFY) {
52467
- <div class="w-3 h-3 rounded-full bg-current"></div>
52468
- }
52469
- </div>
52470
- <div class="flex-1">
52471
- <div [ngClass]="radioLabelClasses()" class="font-semibold">
52472
- Shopify
52473
- </div>
52474
- </div>
52475
- </div>
52476
- </label>
52477
-
52478
- <label [ngClass]="radioPlatformClasses(ShopPlatformEnum.OTHER)" class="cursor-pointer">
52479
- <input
52480
- type="radio"
52481
- formControlName="shopPlatform"
52482
- [value]="ShopPlatformEnum.OTHER"
52483
- class="sr-only"
52484
- />
52485
- <div class="flex items-center gap-3 p-4 rounded-lg border-2 transition-all duration-200">
52486
- <div [ngClass]="radioIndicatorClasses(ShopPlatformEnum.OTHER)" class="w-5 h-5 rounded-full border-2 flex items-center justify-center flex-shrink-0">
52487
- @if (accountForm.get('shopPlatform')?.value === ShopPlatformEnum.OTHER) {
52488
- <div class="w-3 h-3 rounded-full bg-current"></div>
52489
- }
52490
- </div>
52491
- <div class="flex-1">
52492
- <div [ngClass]="radioLabelClasses()" class="font-semibold">
52493
- Other
52494
- </div>
52495
- </div>
52496
- </div>
52497
- </label>
52498
- </div>
52499
- </div>
52500
-
52501
- <!-- Other Platform Name (Conditional) -->
52502
- @if (accountForm.get('shopPlatform')?.value === ShopPlatformEnum.OTHER) {
52503
- <div>
52504
- <label [ngClass]="labelClasses()" class="block text-sm font-semibold mb-2">
52505
- Platform Name <span class="text-red-500">*</span>
52506
- </label>
52507
- <input
52508
- type="text"
52509
- formControlName="otherPlatformName"
52510
- [ngClass]="inputClasses('otherPlatformName')"
52511
- class="w-full px-4 py-3 rounded-lg border-2 transition-all duration-200 focus:outline-none focus:ring-2"
52512
- placeholder="Enter platform name (e.g., WooCommerce, Magento)"
52513
- />
52514
- @if (isFieldInvalid('otherPlatformName')) {
52515
- <p [ngClass]="errorClasses()" class="mt-1 text-sm">
52516
- Platform name is required
52517
- </p>
52518
- }
52519
- </div>
52520
- }
52521
-
52522
- <!-- Company Name -->
52523
- <div>
52524
- <label [ngClass]="labelClasses()" class="block text-sm font-semibold mb-2">
52525
- Company Name <span class="text-red-500">*</span>
52526
- </label>
52527
- <input
52528
- type="text"
52529
- formControlName="companyName"
52530
- [ngClass]="inputClasses('companyName')"
52531
- [readonly]="sameAsShopName()"
52532
- class="w-full px-4 py-3 rounded-lg border-2 transition-all duration-200 focus:outline-none focus:ring-2"
52533
- [class.cursor-not-allowed]="sameAsShopName()"
52534
- [class.opacity-60]="sameAsShopName()"
52535
- placeholder="Enter company name"
52536
- />
52537
- <div class="mt-2">
52538
- <label class="flex items-center gap-2 cursor-pointer">
52539
- <input
52540
- type="checkbox"
52541
- [checked]="sameAsShopName()"
52542
- (change)="toggleSameAsShopName()"
52543
- [ngClass]="checkboxClasses()"
52544
- class="w-4 h-4 rounded border-2 transition-all duration-200"
52545
- />
52546
- <span [ngClass]="checkboxLabelClasses()" class="text-sm">
52547
- Same as Shop Name
52548
- </span>
52549
- </label>
52550
- </div>
52551
- @if (isFieldInvalid('companyName')) {
52552
- <p [ngClass]="errorClasses()" class="mt-1 text-sm">
52553
- Company name is required
52554
- </p>
52555
- }
52556
- </div>
52557
- </form>
52558
- </div>
52559
- </div>
52560
- }
52561
- </div>
52562
- </main>
52563
-
52564
- <!-- Sticky Continue Button -->
52565
- @if (!accountData() || editMode()) {
52566
- <div [ngClass]="stickyButtonContainerClasses()" class="fixed bottom-0 left-0 right-0 z-50 border-t backdrop-blur-sm">
52567
- <div class="max-w-3xl mx-auto px-4 sm:px-6 lg:px-8 py-4">
52568
- <div class="flex items-center gap-3">
52569
- @if (accountData() && editMode()) {
52570
- <button
52571
- type="button"
52572
- (click)="cancelEditMode()"
52573
- [ngClass]="cancelButtonClasses()"
52574
- class="px-6 py-4 rounded-xl font-bold text-base transition-all duration-200 flex items-center justify-center gap-2 cursor-pointer hover:scale-105">
52575
- Cancel
52576
- </button>
52577
- }
52578
- <button
52579
- type="button"
52580
- (click)="handleContinue()"
52581
- [disabled]="!isButtonEnabled()"
52582
- [ngClass]="continueButtonClasses()"
52583
- class="flex-1 px-6 py-4 rounded-xl font-bold text-lg transition-all duration-200 flex items-center justify-center gap-3 shadow-lg"
52584
- [class.cursor-pointer]="isButtonEnabled()"
52585
- [class.cursor-not-allowed]="!isButtonEnabled()"
52586
- [class.opacity-50]="!isButtonEnabled()"
52587
- [class.hover:scale-105]="isButtonEnabled()">
52588
- @if (isLoading()) {
52589
- <svg class="w-6 h-6 animate-spin" fill="none" viewBox="0 0 24 24">
52590
- <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
52591
- <path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path>
52592
- </svg>
52593
- @if (accountData() && editMode()) {
52594
- Updating Account...
52595
- } @else {
52596
- Creating Account...
52597
- }
52598
- } @else {
52599
- @if (accountData() && editMode()) {
52600
- Edit Account
52601
- } @else {
52602
- Create Account
52603
- }
52604
- <svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24">
52605
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 7l5 5m0 0l-5 5m5-5H6"/>
52606
- </svg>
52607
- }
52608
- </button>
52609
- </div>
52610
- </div>
52611
- </div>
52612
- }
52613
- </div>
52614
- </div>
53499
+ args: [{ selector: 'symphiq-create-account-dashboard', standalone: true, imports: [CommonModule, ReactiveFormsModule, JourneyProgressIndicatorComponent, FocusAreaQuestionComponent, FocusAreaToolsModalComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: `
53500
+ <div [ngClass]="getContainerClasses()">
53501
+ <!-- Scroll Progress Bar -->
53502
+ <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'">
53503
+ <div
53504
+ [style.width.%]="scrollProgress()"
53505
+ [ngClass]="isLightMode() ? 'bg-gradient-to-r from-blue-500 to-cyan-500' : 'bg-gradient-to-r from-blue-400 to-cyan-400'"
53506
+ class="h-full transition-all duration-200 ease-out">
53507
+ </div>
53508
+ </div>
53509
+
53510
+ <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>
53511
+
53512
+ <div class="relative z-[51]">
53513
+ <header [ngClass]="getHeaderClasses()" class="sticky top-0 z-50">
53514
+ <!-- Expanded Header -->
53515
+ <div
53516
+ class="transition-all duration-300 ease-in-out overflow-hidden"
53517
+ [class.max-h-0]="headerScrollService.isScrolled()"
53518
+ [class.opacity-0]="headerScrollService.isScrolled()"
53519
+ [class.max-h-96]="!headerScrollService.isScrolled()"
53520
+ [class.opacity-100]="!headerScrollService.isScrolled()">
53521
+ <div
53522
+ class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8"
53523
+ [class.pointer-events-none]="headerScrollService.isScrolled()"
53524
+ [class.pointer-events-auto]="!headerScrollService.isScrolled()">
53525
+ <div class="flex items-center justify-between">
53526
+ <div>
53527
+ <h1 [ngClass]="getMainTitleClasses()">
53528
+ Create Account
53529
+ </h1>
53530
+ <p [ngClass]="getSubtitleClasses()">
53531
+ Tell us about your shop
53532
+ </p>
53533
+ </div>
53534
+ </div>
53535
+ </div>
53536
+ </div>
53537
+
53538
+ <!-- Condensed Header -->
53539
+ <div
53540
+ class="transition-all duration-300 ease-in-out overflow-hidden"
53541
+ [class.max-h-0]="!headerScrollService.isScrolled()"
53542
+ [class.opacity-0]="!headerScrollService.isScrolled()"
53543
+ [class.max-h-20]="headerScrollService.isScrolled()"
53544
+ [class.opacity-100]="headerScrollService.isScrolled()">
53545
+ <div
53546
+ class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-3"
53547
+ [class.pointer-events-none]="!headerScrollService.isScrolled()"
53548
+ [class.pointer-events-auto]="headerScrollService.isScrolled()">
53549
+ <div class="flex items-center justify-between">
53550
+ <div class="flex-1 min-w-0 mr-4">
53551
+ <h1 [ngClass]="isLightMode() ? 'text-xl font-bold bg-gradient-to-r from-blue-600 to-cyan-600 bg-clip-text text-transparent truncate' : 'text-xl font-bold bg-gradient-to-r from-blue-400 to-cyan-400 bg-clip-text text-transparent truncate'">
53552
+ Create Account
53553
+ </h1>
53554
+ </div>
53555
+ </div>
53556
+ </div>
53557
+ </div>
53558
+ </header>
53559
+
53560
+ <!-- Journey Progress Indicator -->
53561
+ <symphiq-journey-progress-indicator
53562
+ [viewMode]="viewMode()"
53563
+ [currentStepId]="JourneyStepIdEnum.CREATE_ACCOUNT"
53564
+ [showNextStepAction]="showNextStepAction()"
53565
+ [forDemo]="forDemo()"
53566
+ [maxAccessibleStepId]="maxAccessibleStepId()"
53567
+ (stepClick)="stepClick.emit($event)"
53568
+ (nextStepClick)="nextStepClick.emit()"
53569
+ />
53570
+
53571
+ <main class="relative pb-32">
53572
+ <div class="max-w-3xl mx-auto px-4 sm:px-6 lg:px-8 py-8">
53573
+ <!-- View Mode: Display Account Data -->
53574
+ @if (accountData() && !editMode() && !focusAreasEditMode()) {
53575
+ <div [ngClass]="containerClasses()" class="rounded-2xl border shadow-lg overflow-hidden mb-8">
53576
+ <div [ngClass]="contentClasses()" class="px-8 py-8">
53577
+ <div class="flex items-start justify-between mb-6">
53578
+ <div>
53579
+ <h2 [ngClass]="sectionTitleClasses()" class="text-2xl font-bold mb-2">
53580
+ Shop Details
53581
+ </h2>
53582
+ <p [ngClass]="sectionDescriptionClasses()">
53583
+ Your shop information
53584
+ </p>
53585
+ </div>
53586
+ <button
53587
+ type="button"
53588
+ (click)="enableEditMode()"
53589
+ [ngClass]="editButtonClasses()"
53590
+ class="px-4 py-2 rounded-lg font-medium text-sm transition-all duration-200 hover:scale-105 flex items-center gap-2 cursor-pointer">
53591
+ <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
53592
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"/>
53593
+ </svg>
53594
+ Edit
53595
+ </button>
53596
+ </div>
53597
+
53598
+ <div class="space-y-4">
53599
+ <div>
53600
+ <label [ngClass]="viewLabelClasses()" class="block text-sm font-medium mb-1">
53601
+ Shop Name
53602
+ </label>
53603
+ <p [ngClass]="viewValueClasses()" class="text-base">
53604
+ {{ accountData()!.shopName }}
53605
+ </p>
53606
+ </div>
53607
+
53608
+ <div>
53609
+ <label [ngClass]="viewLabelClasses()" class="block text-sm font-medium mb-1">
53610
+ Shop URL
53611
+ </label>
53612
+ <a [href]="accountData()!.shopUrl" target="_blank" rel="noopener noreferrer"
53613
+ [ngClass]="viewLinkClasses()"
53614
+ class="text-base hover:underline">
53615
+ {{ accountData()!.shopUrl }}
53616
+ </a>
53617
+ </div>
53618
+
53619
+ <div>
53620
+ <label [ngClass]="viewLabelClasses()" class="block text-sm font-medium mb-1">
53621
+ Shop Platform
53622
+ </label>
53623
+ <p [ngClass]="viewValueClasses()" class="text-base">
53624
+ @if (accountData()!.shopPlatform === ShopPlatformEnum.SHOPIFY) {
53625
+ Shopify
53626
+ } @else {
53627
+ {{ accountData()!.otherPlatformName || 'Other' }}
53628
+ }
53629
+ </p>
53630
+ </div>
53631
+
53632
+ <div>
53633
+ <label [ngClass]="viewLabelClasses()" class="block text-sm font-medium mb-1">
53634
+ Company Name
53635
+ </label>
53636
+ <p [ngClass]="viewValueClasses()" class="text-base">
53637
+ {{ accountData()!.companyName }}
53638
+ </p>
53639
+ </div>
53640
+ </div>
53641
+ </div>
53642
+ </div>
53643
+ }
53644
+
53645
+ <!-- Edit Mode: Form -->
53646
+ @if (!accountData() || editMode()) {
53647
+ <div [ngClass]="containerClasses()" class="rounded-2xl border shadow-lg overflow-hidden mb-8">
53648
+ <div [ngClass]="contentClasses()" class="px-8 py-8">
53649
+ <div class="mb-6">
53650
+ <h2 [ngClass]="sectionTitleClasses()" class="text-2xl font-bold mb-2">
53651
+ Shop Details
53652
+ </h2>
53653
+ <p [ngClass]="sectionDescriptionClasses()">
53654
+ Enter your shop details to get started with Symphiq
53655
+ </p>
53656
+ </div>
53657
+
53658
+ <form [formGroup]="accountForm" class="space-y-6">
53659
+ <!-- Shop Name -->
53660
+ <div>
53661
+ <label [ngClass]="labelClasses()" class="block text-sm font-semibold mb-2">
53662
+ Shop Name <span class="text-red-500">*</span>
53663
+ </label>
53664
+ <input
53665
+ #shopNameInput
53666
+ type="text"
53667
+ formControlName="shopName"
53668
+ [ngClass]="inputClasses('shopName')"
53669
+ class="w-full px-4 py-3 rounded-lg border-2 transition-all duration-200 focus:outline-none focus:ring-2"
53670
+ placeholder="Enter your shop name"
53671
+ />
53672
+ @if (isFieldInvalid('shopName')) {
53673
+ <p [ngClass]="errorClasses()" class="mt-1 text-sm">
53674
+ Shop name is required
53675
+ </p>
53676
+ }
53677
+ </div>
53678
+
53679
+ <!-- Shop URL -->
53680
+ <div>
53681
+ <label [ngClass]="labelClasses()" class="block text-sm font-semibold mb-2">
53682
+ Shop URL <span class="text-red-500">*</span>
53683
+ </label>
53684
+ <div class="flex items-center">
53685
+ <span [ngClass]="urlPrefixClasses()" class="px-4 py-3 rounded-l-lg border-2 border-r-0 text-sm font-medium">
53686
+ https://
53687
+ </span>
53688
+ <input
53689
+ type="text"
53690
+ formControlName="shopUrl"
53691
+ [ngClass]="urlInputClasses('shopUrl')"
53692
+ class="flex-1 px-4 py-3 rounded-r-lg border-2 transition-all duration-200 focus:outline-none focus:ring-2"
53693
+ placeholder="yourshop.com"
53694
+ />
53695
+ </div>
53696
+ @if (isFieldInvalid('shopUrl')) {
53697
+ <p [ngClass]="errorClasses()" class="mt-1 text-sm">
53698
+ Shop URL is required
53699
+ </p>
53700
+ }
53701
+ </div>
53702
+
53703
+ <!-- Shop Platform -->
53704
+ <div>
53705
+ <label [ngClass]="labelClasses()" class="block text-sm font-semibold mb-3">
53706
+ Shop Platform <span class="text-red-500">*</span>
53707
+ </label>
53708
+ <div class="grid grid-cols-1 sm:grid-cols-2 gap-4">
53709
+ <label [ngClass]="radioPlatformClasses(ShopPlatformEnum.SHOPIFY)" class="cursor-pointer">
53710
+ <input
53711
+ type="radio"
53712
+ formControlName="shopPlatform"
53713
+ [value]="ShopPlatformEnum.SHOPIFY"
53714
+ class="sr-only"
53715
+ />
53716
+ <div class="flex items-center gap-3 p-4 rounded-lg border-2 transition-all duration-200">
53717
+ <div [ngClass]="radioIndicatorClasses(ShopPlatformEnum.SHOPIFY)" class="w-5 h-5 rounded-full border-2 flex items-center justify-center flex-shrink-0">
53718
+ @if (accountForm.get('shopPlatform')?.value === ShopPlatformEnum.SHOPIFY) {
53719
+ <div class="w-3 h-3 rounded-full bg-current"></div>
53720
+ }
53721
+ </div>
53722
+ <div class="flex-1">
53723
+ <div [ngClass]="radioLabelClasses()" class="font-semibold">
53724
+ Shopify
53725
+ </div>
53726
+ </div>
53727
+ </div>
53728
+ </label>
53729
+
53730
+ <label [ngClass]="radioPlatformClasses(ShopPlatformEnum.OTHER)" class="cursor-pointer">
53731
+ <input
53732
+ type="radio"
53733
+ formControlName="shopPlatform"
53734
+ [value]="ShopPlatformEnum.OTHER"
53735
+ class="sr-only"
53736
+ />
53737
+ <div class="flex items-center gap-3 p-4 rounded-lg border-2 transition-all duration-200">
53738
+ <div [ngClass]="radioIndicatorClasses(ShopPlatformEnum.OTHER)" class="w-5 h-5 rounded-full border-2 flex items-center justify-center flex-shrink-0">
53739
+ @if (accountForm.get('shopPlatform')?.value === ShopPlatformEnum.OTHER) {
53740
+ <div class="w-3 h-3 rounded-full bg-current"></div>
53741
+ }
53742
+ </div>
53743
+ <div class="flex-1">
53744
+ <div [ngClass]="radioLabelClasses()" class="font-semibold">
53745
+ Other
53746
+ </div>
53747
+ </div>
53748
+ </div>
53749
+ </label>
53750
+ </div>
53751
+ </div>
53752
+
53753
+ <!-- Other Platform Name (Conditional) -->
53754
+ @if (accountForm.get('shopPlatform')?.value === ShopPlatformEnum.OTHER) {
53755
+ <div>
53756
+ <label [ngClass]="labelClasses()" class="block text-sm font-semibold mb-2">
53757
+ Platform Name <span class="text-red-500">*</span>
53758
+ </label>
53759
+ <input
53760
+ type="text"
53761
+ formControlName="otherPlatformName"
53762
+ [ngClass]="inputClasses('otherPlatformName')"
53763
+ class="w-full px-4 py-3 rounded-lg border-2 transition-all duration-200 focus:outline-none focus:ring-2"
53764
+ placeholder="Enter platform name (e.g., WooCommerce, Magento)"
53765
+ />
53766
+ @if (isFieldInvalid('otherPlatformName')) {
53767
+ <p [ngClass]="errorClasses()" class="mt-1 text-sm">
53768
+ Platform name is required
53769
+ </p>
53770
+ }
53771
+ </div>
53772
+ }
53773
+
53774
+ <!-- Company Name -->
53775
+ <div>
53776
+ <label [ngClass]="labelClasses()" class="block text-sm font-semibold mb-2">
53777
+ Company Name <span class="text-red-500">*</span>
53778
+ </label>
53779
+ <input
53780
+ type="text"
53781
+ formControlName="companyName"
53782
+ [ngClass]="inputClasses('companyName')"
53783
+ [readonly]="sameAsShopName()"
53784
+ class="w-full px-4 py-3 rounded-lg border-2 transition-all duration-200 focus:outline-none focus:ring-2"
53785
+ [class.cursor-not-allowed]="sameAsShopName()"
53786
+ [class.opacity-60]="sameAsShopName()"
53787
+ placeholder="Enter company name"
53788
+ />
53789
+ <div class="mt-2">
53790
+ <label class="flex items-center gap-2 cursor-pointer">
53791
+ <input
53792
+ type="checkbox"
53793
+ [checked]="sameAsShopName()"
53794
+ (change)="toggleSameAsShopName()"
53795
+ [ngClass]="checkboxClasses()"
53796
+ class="w-4 h-4 rounded border-2 transition-all duration-200"
53797
+ />
53798
+ <span [ngClass]="checkboxLabelClasses()" class="text-sm">
53799
+ Same as Shop Name
53800
+ </span>
53801
+ </label>
53802
+ </div>
53803
+ @if (isFieldInvalid('companyName')) {
53804
+ <p [ngClass]="errorClasses()" class="mt-1 text-sm">
53805
+ Company name is required
53806
+ </p>
53807
+ }
53808
+ </div>
53809
+ </form>
53810
+ </div>
53811
+ </div>
53812
+ }
53813
+
53814
+ <!-- Focus Areas Card - View Mode -->
53815
+ @if (accountData() && accountData()!.focusAreaDetails && !focusAreasEditMode()) {
53816
+ <div [ngClass]="containerClasses()" class="rounded-2xl border shadow-lg overflow-hidden">
53817
+ <div [ngClass]="contentClasses()" class="px-8 py-8">
53818
+ <div class="flex items-start justify-between mb-6">
53819
+ <div>
53820
+ <h2 [ngClass]="sectionTitleClasses()" class="text-2xl font-bold mb-2">
53821
+ Focus Areas
53822
+ </h2>
53823
+ <p [ngClass]="sectionDescriptionClasses()">
53824
+ Your marketing and operational focus areas
53825
+ </p>
53826
+ </div>
53827
+ <button
53828
+ type="button"
53829
+ (click)="enableFocusAreasEditMode()"
53830
+ [ngClass]="editButtonClasses()"
53831
+ class="px-4 py-2 rounded-lg font-medium text-sm transition-all duration-200 hover:scale-105 flex items-center gap-2 cursor-pointer">
53832
+ <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
53833
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"/>
53834
+ </svg>
53835
+ Edit
53836
+ </button>
53837
+ </div>
53838
+
53839
+ <!-- Grouped by Status -->
53840
+ @if (engagedFocusAreas().length > 0) {
53841
+ <div class="mb-6">
53842
+ <h3 [ngClass]="groupTitleClasses('engaged')" class="text-base font-bold mb-3 flex items-center gap-2">
53843
+ <span class="w-2 h-2 rounded-full bg-emerald-500"></span>
53844
+ Engaged In ({{ engagedFocusAreas().length }})
53845
+ </h3>
53846
+ <div class="space-y-3">
53847
+ @for (focusArea of engagedFocusAreas(); track focusArea.focusAreaDomain) {
53848
+ <div [ngClass]="focusAreaViewCardClasses('engaged')" class="p-4 rounded-lg border-l-4">
53849
+ <div class="flex items-start justify-between mb-2">
53850
+ <h4 [ngClass]="focusAreaViewTitleClasses()" class="font-semibold text-sm">
53851
+ {{ getFocusAreaTitle(focusArea.focusAreaDomain!) }}
53852
+ </h4>
53853
+ <span [ngClass]="statusBadgeClasses('engaged')" class="px-2 py-0.5 rounded text-xs font-semibold whitespace-nowrap">
53854
+ Engaged
53855
+ </span>
53856
+ </div>
53857
+ @if (focusArea.tools && focusArea.tools.length > 0) {
53858
+ <div class="flex items-center gap-2 mt-2">
53859
+ <span [ngClass]="toolsLabelViewClasses()" class="text-xs font-medium">Tools:</span>
53860
+ <div class="flex flex-wrap gap-1.5">
53861
+ @for (tool of focusArea.tools; track tool) {
53862
+ <span [ngClass]="toolChipViewClasses()" class="px-2 py-0.5 rounded text-xs">
53863
+ {{ tool }}
53864
+ </span>
53865
+ }
53866
+ </div>
53867
+ </div>
53868
+ }
53869
+ </div>
53870
+ }
53871
+ </div>
53872
+ </div>
53873
+ }
53874
+
53875
+ @if (interestedFocusAreas().length > 0) {
53876
+ <div class="mb-6">
53877
+ <h3 [ngClass]="groupTitleClasses('interested')" class="text-base font-bold mb-3 flex items-center gap-2">
53878
+ <span class="w-2 h-2 rounded-full bg-blue-500"></span>
53879
+ Interested In ({{ interestedFocusAreas().length }})
53880
+ </h3>
53881
+ <div class="grid grid-cols-1 sm:grid-cols-2 gap-3">
53882
+ @for (focusArea of interestedFocusAreas(); track focusArea.focusAreaDomain) {
53883
+ <div [ngClass]="focusAreaViewCardClasses('interested')" class="p-3 rounded-lg border-l-4">
53884
+ <h4 [ngClass]="focusAreaViewTitleClasses()" class="font-semibold text-sm">
53885
+ {{ getFocusAreaTitle(focusArea.focusAreaDomain!) }}
53886
+ </h4>
53887
+ </div>
53888
+ }
53889
+ </div>
53890
+ </div>
53891
+ }
53892
+
53893
+ @if (notInterestedFocusAreas().length > 0) {
53894
+ <div>
53895
+ <h3 [ngClass]="groupTitleClasses('not-interested')" class="text-base font-bold mb-3 flex items-center gap-2">
53896
+ <span class="w-2 h-2 rounded-full bg-slate-400"></span>
53897
+ Not Interested ({{ notInterestedFocusAreas().length }})
53898
+ </h3>
53899
+ <div class="grid grid-cols-2 sm:grid-cols-3 gap-2">
53900
+ @for (focusArea of notInterestedFocusAreas(); track focusArea.focusAreaDomain) {
53901
+ <div [ngClass]="focusAreaViewCardClasses('not-interested')" class="p-2 rounded text-center">
53902
+ <span [ngClass]="focusAreaViewTitleSmallClasses()" class="text-xs font-medium">
53903
+ {{ getFocusAreaTitle(focusArea.focusAreaDomain!) }}
53904
+ </span>
53905
+ </div>
53906
+ }
53907
+ </div>
53908
+ </div>
53909
+ }
53910
+ </div>
53911
+ </div>
53912
+ }
53913
+
53914
+ <!-- Focus Areas Card - Edit Mode -->
53915
+ @if (!accountData() || focusAreasEditMode()) {
53916
+ <div [ngClass]="containerClasses()" class="rounded-2xl border shadow-lg overflow-hidden">
53917
+ <div [ngClass]="contentClasses()" class="px-8 py-8">
53918
+ <div class="mb-6">
53919
+ <div class="flex items-start justify-between">
53920
+ <div>
53921
+ <h2 [ngClass]="sectionTitleClasses()" class="text-2xl font-bold mb-2">
53922
+ Focus Areas
53923
+ </h2>
53924
+ <p [ngClass]="sectionDescriptionClasses()">
53925
+ Tell us about your marketing and operational focus areas
53926
+ </p>
53927
+ </div>
53928
+ <div [ngClass]="progressBadgeClasses()" class="px-4 py-2 rounded-lg text-sm font-semibold whitespace-nowrap">
53929
+ {{ focusAreasAnswered() }} of {{ totalFocusAreas() }} answered
53930
+ </div>
53931
+ </div>
53932
+ </div>
53933
+
53934
+ <div class="space-y-4">
53935
+ @for (domain of allFocusAreaDomains(); track domain; let i = $index) {
53936
+ <symphiq-focus-area-question
53937
+ [focusAreaDomain]="domain"
53938
+ [selectedStatus]="getFocusAreaStatus(domain)"
53939
+ [selectedTools]="getFocusAreaTools(domain)"
53940
+ [viewMode]="viewMode()"
53941
+ [title]="getFocusAreaTitle(domain)"
53942
+ [description]="getFocusAreaDescription(domain)"
53943
+ (statusChange)="onFocusAreaStatusChange(domain, $event)"
53944
+ (toolsClick)="onFocusAreaToolsClick(domain)"
53945
+ />
53946
+ @if (i < allFocusAreaDomains().length - 1) {
53947
+ <div [ngClass]="dividerClasses()" class="my-4"></div>
53948
+ }
53949
+ }
53950
+ </div>
53951
+ </div>
53952
+ </div>
53953
+ }
53954
+ </div>
53955
+ </main>
53956
+
53957
+ <!-- Tools Selection Modal -->
53958
+ <symphiq-focus-area-tools-modal
53959
+ [isOpen]="toolsModalOpen()"
53960
+ [focusAreaDomain]="currentEditingFocusArea()!"
53961
+ [focusAreaTitle]="currentEditingFocusAreaTitle()"
53962
+ [selectedTools]="currentEditingTools()"
53963
+ [viewMode]="viewMode()"
53964
+ (close)="onToolsModalClose()"
53965
+ (save)="onToolsModalSave($event)"
53966
+ />
53967
+
53968
+ <!-- Sticky Continue Button -->
53969
+ @if (!accountData() || editMode() || focusAreasEditMode()) {
53970
+ <div [ngClass]="stickyButtonContainerClasses()" class="fixed bottom-0 left-0 right-0 z-50 border-t backdrop-blur-sm">
53971
+ <div class="max-w-3xl mx-auto px-4 sm:px-6 lg:px-8 py-4">
53972
+ @if (!allFocusAreasAnswered() && !accountData()) {
53973
+ <div [ngClass]="validationMessageClasses()" class="mb-3 p-3 rounded-lg text-sm">
53974
+ Please answer all {{ totalFocusAreas() }} focus area questions before creating your account.
53975
+ {{ focusAreasAnswered() }} of {{ totalFocusAreas() }} completed.
53976
+ </div>
53977
+ }
53978
+ <div class="flex items-center gap-3">
53979
+ @if ((accountData() && editMode()) || (accountData() && focusAreasEditMode())) {
53980
+ <button
53981
+ type="button"
53982
+ (click)="focusAreasEditMode() ? cancelFocusAreasEditMode() : cancelEditMode()"
53983
+ [ngClass]="cancelButtonClasses()"
53984
+ class="px-6 py-4 rounded-xl font-bold text-base transition-all duration-200 flex items-center justify-center gap-2 cursor-pointer hover:scale-105">
53985
+ Cancel
53986
+ </button>
53987
+ }
53988
+ <button
53989
+ type="button"
53990
+ (click)="focusAreasEditMode() ? handleSaveFocusAreas() : handleContinue()"
53991
+ [disabled]="!isButtonEnabled()"
53992
+ [ngClass]="continueButtonClasses()"
53993
+ class="flex-1 px-6 py-4 rounded-xl font-bold text-lg transition-all duration-200 flex items-center justify-center gap-3 shadow-lg"
53994
+ [class.cursor-pointer]="isButtonEnabled()"
53995
+ [class.cursor-not-allowed]="!isButtonEnabled()"
53996
+ [class.opacity-50]="!isButtonEnabled()"
53997
+ [class.hover:scale-105]="isButtonEnabled()">
53998
+ @if (isLoading()) {
53999
+ <svg class="w-6 h-6 animate-spin" fill="none" viewBox="0 0 24 24">
54000
+ <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
54001
+ <path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path>
54002
+ </svg>
54003
+ @if (focusAreasEditMode()) {
54004
+ Saving Focus Areas...
54005
+ } @else if (accountData() && editMode()) {
54006
+ Updating Account...
54007
+ } @else {
54008
+ Creating Account...
54009
+ }
54010
+ } @else {
54011
+ @if (focusAreasEditMode()) {
54012
+ Save Focus Areas
54013
+ } @else if (accountData() && editMode()) {
54014
+ Save Changes
54015
+ } @else {
54016
+ Create Account
54017
+ }
54018
+ <svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24">
54019
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 7l5 5m0 0l-5 5m5-5H6"/>
54020
+ </svg>
54021
+ }
54022
+ </button>
54023
+ </div>
54024
+ </div>
54025
+ </div>
54026
+ }
54027
+ </div>
54028
+ </div>
52615
54029
  `, styles: [":host{display:block}.animated-bubbles{overflow:hidden}.animated-bubbles:before,.animated-bubbles:after{content:\"\";position:absolute;border-radius:50%;animation:float 20s infinite ease-in-out;opacity:.05}.animated-bubbles:before{width:600px;height:600px;background:radial-gradient(circle,#3b82f6 0%,transparent 70%);top:-300px;left:-300px;animation-delay:-5s}.animated-bubbles:after{width:800px;height:800px;background:radial-gradient(circle,#06b6d4 0%,transparent 70%);bottom:-400px;right:-400px;animation-delay:-10s}.animated-bubbles.light-mode:before,.animated-bubbles.light-mode:after{opacity:.03}@keyframes float{0%,to{transform:translate(0) scale(1)}33%{transform:translate(50px,-50px) scale(1.1)}66%{transform:translate(-30px,30px) scale(.9)}}\n"] }]
52616
54030
  }], () => [], { embedded: [{ type: i0.Input, args: [{ isSignal: true, alias: "embedded", required: false }] }], parentHeaderOffset: [{ type: i0.Input, args: [{ isSignal: true, alias: "parentHeaderOffset", 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 }] }], accountData: [{ type: i0.Input, args: [{ isSignal: true, alias: "accountData", required: false }] }], forDemo: [{ type: i0.Input, args: [{ isSignal: true, alias: "forDemo", required: false }] }], showNextStepAction: [{ type: i0.Input, args: [{ isSignal: true, alias: "showNextStepAction", required: false }] }], maxAccessibleStepId: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxAccessibleStepId", required: false }] }], onCreateAccount: [{ type: i0.Output, args: ["onCreateAccount"] }], stepClick: [{ type: i0.Output, args: ["stepClick"] }], nextStepClick: [{ type: i0.Output, args: ["nextStepClick"] }], shopNameInput: [{
52617
54031
  type: ViewChild,
@@ -52620,7 +54034,7 @@ class SymphiqCreateAccountDashboardComponent {
52620
54034
  type: HostListener,
52621
54035
  args: ['window:scroll', ['$event']]
52622
54036
  }] }); })();
52623
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqCreateAccountDashboardComponent, { className: "SymphiqCreateAccountDashboardComponent", filePath: "lib/components/create-account-dashboard/symphiq-create-account-dashboard.component.ts", lineNumber: 464 }); })();
54037
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqCreateAccountDashboardComponent, { className: "SymphiqCreateAccountDashboardComponent", filePath: "lib/components/create-account-dashboard/symphiq-create-account-dashboard.component.ts", lineNumber: 629 }); })();
52624
54038
 
52625
54039
  class SymphiqConnectGaDashboardComponent {
52626
54040
  constructor() {
@@ -57375,254 +58789,254 @@ class SymphiqBusinessAnalysisDashboardComponent {
57375
58789
  }
57376
58790
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SymphiqBusinessAnalysisDashboardComponent, [{
57377
58791
  type: Component,
57378
- args: [{ selector: 'symphiq-business-analysis-dashboard', standalone: true, imports: [CommonModule, ProfileSectionComponent, SectionNavigationComponent, FloatingTocComponent, FloatingBackButtonComponent, TooltipContainerComponent, SectionDividerComponent, BusinessAnalysisModalComponent, SearchButtonComponent, SearchModalComponent, ViewModeSwitcherModalComponent, JourneyProgressIndicatorComponent, WelcomeBannerComponent, RecommendationsTiledGridComponent, CollapsibleSectionGroupComponent, ContentGenerationProgressComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: `
57379
- <div [ngClass]="getContainerClasses()">
57380
- <!-- Scroll Progress Bar (fixed at top) -->
57381
- <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'">
57382
- <div
57383
- [style.width.%]="scrollProgress()"
57384
- [ngClass]="isLightMode() ? 'bg-gradient-to-r from-blue-500 to-purple-500' : 'bg-gradient-to-r from-blue-400 to-purple-400'"
57385
- class="h-full transition-all duration-200 ease-out">
57386
- </div>
57387
- </div>
57388
-
57389
- <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>
57390
-
57391
- <div class="relative z-[51]">
57392
- <header [ngClass]="getHeaderClasses()" class="sticky top-0 z-50">
57393
- <!-- Expanded Header (default state) -->
57394
- <div
57395
- class="transition-all duration-300 ease-in-out overflow-hidden"
57396
- [class.max-h-0]="headerScrollService.isScrolled()"
57397
- [class.opacity-0]="headerScrollService.isScrolled()"
57398
- [class.max-h-96]="!headerScrollService.isScrolled()"
57399
- [class.opacity-100]="!headerScrollService.isScrolled()">
57400
- <div
57401
- class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8"
57402
- [class.pointer-events-none]="headerScrollService.isScrolled()"
57403
- [class.pointer-events-auto]="!headerScrollService.isScrolled()">
57404
- <div class="flex items-center justify-between">
57405
- <div>
57406
- <h1 [ngClass]="getMainTitleClasses()">
57407
- {{ currentProfile()?.profileStructured?.businessName || 'Business Analysis' }}
57408
- </h1>
57409
- <p [ngClass]="getSubtitleClasses()">
57410
- Business Profile & Analysis
57411
- </p>
57412
- </div>
57413
- @if (profile()?.selfContentStatus === AiDynamicContentStatusEnum.GENERATED) {
57414
- <div class="flex items-center gap-2">
57415
- <symphiq-search-button
57416
- [isLightMode]="isLightMode()"
57417
- (searchClick)="openSearch()"
57418
- />
57419
- <button
57420
- type="button"
57421
- (click)="openViewModeSwitcher()"
57422
- [ngClass]="getViewModeButtonClasses()"
57423
- 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">
57424
- <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
57425
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
57426
- <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>
57427
- </svg>
57428
- <span>{{ displayModeLabel() }}</span>
57429
- </button>
57430
- </div>
57431
- }
57432
- </div>
57433
- </div>
57434
- </div>
57435
-
57436
- <!-- Condensed Header (scrolled state) -->
57437
- <div
57438
- class="transition-all duration-300 ease-in-out overflow-hidden"
57439
- [class.max-h-0]="!headerScrollService.isScrolled()"
57440
- [class.opacity-0]="!headerScrollService.isScrolled()"
57441
- [class.max-h-20]="headerScrollService.isScrolled()"
57442
- [class.opacity-100]="headerScrollService.isScrolled()">
57443
- <div
57444
- class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-3"
57445
- [class.pointer-events-none]="!headerScrollService.isScrolled()"
57446
- [class.pointer-events-auto]="headerScrollService.isScrolled()">
57447
- <div class="flex items-center justify-between">
57448
- <div class="flex-1 min-w-0 mr-4">
57449
- <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'">
57450
- {{ currentProfile()?.profileStructured?.businessName || 'Business Analysis' }}
57451
- </h1>
57452
- </div>
57453
- <div class="flex items-center gap-4">
57454
- @if (!isSimplifiedView()) {
57455
- <div class="flex items-center gap-2 text-sm flex-shrink-0">
57456
- <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()">
57457
- {{ currentSectionTitle() }}
57458
- </span>
57459
- @if (currentSubsectionTitle()) {
57460
- <span [ngClass]="isLightMode() ? 'text-slate-400' : 'text-slate-500'" class="transition-opacity duration-300" [class.opacity-0]="subsectionTitleFading()" [class.opacity-100]="!subsectionTitleFading()">›</span>
57461
- <span [ngClass]="isLightMode() ? 'text-slate-500' : 'text-slate-500'" class="transition-opacity duration-300" [class.opacity-0]="subsectionTitleFading()" [class.opacity-100]="!subsectionTitleFading()">
57462
- {{ currentSubsectionTitle() }}
57463
- </span>
57464
- }
57465
- </div>
57466
- }
57467
- @if (profile()?.selfContentStatus === AiDynamicContentStatusEnum.GENERATED) {
57468
- <symphiq-search-button
57469
- [isLightMode]="isLightMode()"
57470
- [minimized]="true"
57471
- (searchClick)="openSearch()"
57472
- />
57473
- <button
57474
- type="button"
57475
- (click)="openViewModeSwitcher()"
57476
- [ngClass]="getViewModeButtonClasses()"
57477
- 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">
57478
- <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
57479
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
57480
- <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>
57481
- </svg>
57482
- </button>
57483
- }
57484
- </div>
57485
- </div>
57486
- </div>
57487
- </div>
57488
- </header>
57489
-
57490
- <main class="relative">
57491
- @if (isContentGenerating()) {
57492
- <!-- Journey Progress Banner (always show when not onboarded) -->
57493
- @if (!isOnboarded()) {
57494
- <symphiq-journey-progress-indicator
57495
- [viewMode]="viewMode()"
57496
- [currentStepId]="JourneyStepIdEnum.BUSINESS_ANALYSIS"
57497
- [showNextStepAction]="false"
57498
- [forDemo]="forDemo()"
57499
- [maxAccessibleStepId]="maxAccessibleStepId()"
57500
- (stepClick)="stepClick.emit($event)"
57501
- (nextStepClick)="nextStepClick.emit()"
57502
- />
57503
- }
57504
-
57505
- <!-- Content Generation Progress Component -->
57506
- <symphiq-content-generation-progress
57507
- [viewMode]="viewMode()"
57508
- [title]="'We are generating a new Business Analysis for ' + (currentProfile()?.profileStructured?.businessName || 'your business') + '.'"
57509
- [subtitle]="'It will appear here when ready. You can check back later as this will take a few minutes to complete.'"
57510
- />
57511
- } @else {
57512
- @if (isSimplifiedView()) {
57513
- <!-- Journey Progress Banner - Full Width Sticky (only show when not onboarded) -->
57514
- @if (!isOnboarded()) {
57515
- <symphiq-journey-progress-indicator
57516
- [viewMode]="viewMode()"
57517
- [currentStepId]="JourneyStepIdEnum.BUSINESS_ANALYSIS"
57518
- [showNextStepAction]="showNextStepAction()"
57519
- [forDemo]="forDemo()"
57520
- [maxAccessibleStepId]="maxAccessibleStepId()"
57521
- (stepClick)="stepClick.emit($event)"
57522
- (nextStepClick)="nextStepClick.emit()"
57523
- />
57524
- }
57525
-
57526
- <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8">
57527
- <div class="mb-8">
57528
- <symphiq-welcome-banner
57529
- [viewMode]="viewMode()"
57530
- [businessName]="currentProfile()?.profileStructured?.businessName || 'your business'"
57531
- [isOnboarded]="isOnboarded()"
57532
- />
57533
- </div>
57534
-
57535
- <div class="mb-8">
57536
- <symphiq-recommendations-tiled-grid
57537
- [recommendations]="recommendationItems()"
57538
- [viewMode]="viewMode()"
57539
- (viewMoreClick)="openRecommendationDetailsModal($event)"
57540
- />
57541
- </div>
57542
-
57543
- <div>
57544
- <symphiq-collapsible-section-group
57545
- [sections]="nonRecommendationSections()"
57546
- [viewMode]="viewMode()"
57547
- />
57548
- </div>
57549
- </div>
57550
- } @else {
57551
- @for (section of sections(); track trackBySectionId($index, section); let idx = $index; let last = $last) {
57552
- <symphiq-profile-section
57553
- [section]="section"
57554
- [viewMode]="viewMode()"
57555
- [forceExpanded]="!isCompactView()"
57556
- />
57557
- @if (!last) {
57558
- <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
57559
- <symphiq-section-divider
57560
- [viewMode]="viewMode()"
57561
- [subsections]="sections()[idx + 1].subsections || []" />
57562
- </div>
57563
- }
57564
- }
57565
- }
57566
- }
57567
- </main>
57568
-
57569
- @if (!isSimplifiedView()) {
57570
- <symphiq-section-navigation
57571
- [sections]="sections()"
57572
- [viewMode]="viewMode()"
57573
- [embedded]="embedded()"
57574
- [scrollElement]="scrollElement() ?? undefined"
57575
- />
57576
- }
57577
-
57578
- @if (!isSimplifiedView()) {
57579
- <symphiq-floating-toc
57580
- [sections]="sections()"
57581
- [viewMode]="viewMode()"
57582
- [embedded]="embedded()"
57583
- [scrollElement]="scrollElement() ?? undefined"
57584
- />
57585
- }
57586
-
57587
- <symphiq-floating-back-button
57588
- [viewMode]="viewMode()"
57589
- [embedded]="embedded()"
57590
- />
57591
- </div>
57592
-
57593
- @if (isLoading()) {
57594
- <div [ngClass]="getLoadingOverlayClasses()">
57595
- <div [ngClass]="getSpinnerClasses()"></div>
57596
- </div>
57597
- }
57598
-
57599
- <symphiq-tooltip-container />
57600
- <symphiq-business-analysis-modal
57601
- [isLightMode]="isLightMode()"
57602
- (viewInContextRequested)="handleViewInContext($event)" />
57603
-
57604
- <symphiq-search-modal
57605
- [isLightMode]="isLightMode()"
57606
- [isOpen]="searchService.isSearchOpen()"
57607
- [searchQuery]="searchService.getSearchQuery()"
57608
- [results]="searchService.searchResults()"
57609
- [hasResults]="searchService.hasResults()"
57610
- [selectedIndex]="selectedSearchIndex()"
57611
- [placeholder]="'Search sections, items, and analysis...'"
57612
- (searchChange)="onSearchChange($event)"
57613
- (resultSelected)="onSearchResultSelected($event)"
57614
- (close)="closeSearch()"
57615
- />
57616
-
57617
- <symphiq-view-mode-switcher-modal
57618
- [isOpen]="isViewModeSwitcherOpen()"
57619
- [currentMode]="displayMode()"
57620
- [viewMode]="viewMode()"
57621
- [isLoading]="isViewModeSwitching()"
57622
- (close)="closeViewModeSwitcher()"
57623
- (modeSelected)="handleDisplayModeChange($event)"
57624
- />
57625
- </div>
58792
+ args: [{ selector: 'symphiq-business-analysis-dashboard', standalone: true, imports: [CommonModule, ProfileSectionComponent, SectionNavigationComponent, FloatingTocComponent, FloatingBackButtonComponent, TooltipContainerComponent, SectionDividerComponent, BusinessAnalysisModalComponent, SearchButtonComponent, SearchModalComponent, ViewModeSwitcherModalComponent, JourneyProgressIndicatorComponent, WelcomeBannerComponent, RecommendationsTiledGridComponent, CollapsibleSectionGroupComponent, ContentGenerationProgressComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: `
58793
+ <div [ngClass]="getContainerClasses()">
58794
+ <!-- Scroll Progress Bar (fixed at top) -->
58795
+ <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'">
58796
+ <div
58797
+ [style.width.%]="scrollProgress()"
58798
+ [ngClass]="isLightMode() ? 'bg-gradient-to-r from-blue-500 to-purple-500' : 'bg-gradient-to-r from-blue-400 to-purple-400'"
58799
+ class="h-full transition-all duration-200 ease-out">
58800
+ </div>
58801
+ </div>
58802
+
58803
+ <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>
58804
+
58805
+ <div class="relative z-[51]">
58806
+ <header [ngClass]="getHeaderClasses()" class="sticky top-0 z-50">
58807
+ <!-- Expanded Header (default state) -->
58808
+ <div
58809
+ class="transition-all duration-300 ease-in-out overflow-hidden"
58810
+ [class.max-h-0]="headerScrollService.isScrolled()"
58811
+ [class.opacity-0]="headerScrollService.isScrolled()"
58812
+ [class.max-h-96]="!headerScrollService.isScrolled()"
58813
+ [class.opacity-100]="!headerScrollService.isScrolled()">
58814
+ <div
58815
+ class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8"
58816
+ [class.pointer-events-none]="headerScrollService.isScrolled()"
58817
+ [class.pointer-events-auto]="!headerScrollService.isScrolled()">
58818
+ <div class="flex items-center justify-between">
58819
+ <div>
58820
+ <h1 [ngClass]="getMainTitleClasses()">
58821
+ {{ currentProfile()?.profileStructured?.businessName || 'Business Analysis' }}
58822
+ </h1>
58823
+ <p [ngClass]="getSubtitleClasses()">
58824
+ Business Profile & Analysis
58825
+ </p>
58826
+ </div>
58827
+ @if (profile()?.selfContentStatus === AiDynamicContentStatusEnum.GENERATED) {
58828
+ <div class="flex items-center gap-2">
58829
+ <symphiq-search-button
58830
+ [isLightMode]="isLightMode()"
58831
+ (searchClick)="openSearch()"
58832
+ />
58833
+ <button
58834
+ type="button"
58835
+ (click)="openViewModeSwitcher()"
58836
+ [ngClass]="getViewModeButtonClasses()"
58837
+ 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">
58838
+ <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
58839
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
58840
+ <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>
58841
+ </svg>
58842
+ <span>{{ displayModeLabel() }}</span>
58843
+ </button>
58844
+ </div>
58845
+ }
58846
+ </div>
58847
+ </div>
58848
+ </div>
58849
+
58850
+ <!-- Condensed Header (scrolled state) -->
58851
+ <div
58852
+ class="transition-all duration-300 ease-in-out overflow-hidden"
58853
+ [class.max-h-0]="!headerScrollService.isScrolled()"
58854
+ [class.opacity-0]="!headerScrollService.isScrolled()"
58855
+ [class.max-h-20]="headerScrollService.isScrolled()"
58856
+ [class.opacity-100]="headerScrollService.isScrolled()">
58857
+ <div
58858
+ class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-3"
58859
+ [class.pointer-events-none]="!headerScrollService.isScrolled()"
58860
+ [class.pointer-events-auto]="headerScrollService.isScrolled()">
58861
+ <div class="flex items-center justify-between">
58862
+ <div class="flex-1 min-w-0 mr-4">
58863
+ <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'">
58864
+ {{ currentProfile()?.profileStructured?.businessName || 'Business Analysis' }}
58865
+ </h1>
58866
+ </div>
58867
+ <div class="flex items-center gap-4">
58868
+ @if (!isSimplifiedView()) {
58869
+ <div class="flex items-center gap-2 text-sm flex-shrink-0">
58870
+ <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()">
58871
+ {{ currentSectionTitle() }}
58872
+ </span>
58873
+ @if (currentSubsectionTitle()) {
58874
+ <span [ngClass]="isLightMode() ? 'text-slate-400' : 'text-slate-500'" class="transition-opacity duration-300" [class.opacity-0]="subsectionTitleFading()" [class.opacity-100]="!subsectionTitleFading()">›</span>
58875
+ <span [ngClass]="isLightMode() ? 'text-slate-500' : 'text-slate-500'" class="transition-opacity duration-300" [class.opacity-0]="subsectionTitleFading()" [class.opacity-100]="!subsectionTitleFading()">
58876
+ {{ currentSubsectionTitle() }}
58877
+ </span>
58878
+ }
58879
+ </div>
58880
+ }
58881
+ @if (profile()?.selfContentStatus === AiDynamicContentStatusEnum.GENERATED) {
58882
+ <symphiq-search-button
58883
+ [isLightMode]="isLightMode()"
58884
+ [minimized]="true"
58885
+ (searchClick)="openSearch()"
58886
+ />
58887
+ <button
58888
+ type="button"
58889
+ (click)="openViewModeSwitcher()"
58890
+ [ngClass]="getViewModeButtonClasses()"
58891
+ 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">
58892
+ <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
58893
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
58894
+ <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>
58895
+ </svg>
58896
+ </button>
58897
+ }
58898
+ </div>
58899
+ </div>
58900
+ </div>
58901
+ </div>
58902
+ </header>
58903
+
58904
+ <main class="relative">
58905
+ @if (isContentGenerating()) {
58906
+ <!-- Journey Progress Banner (always show when not onboarded) -->
58907
+ @if (!isOnboarded()) {
58908
+ <symphiq-journey-progress-indicator
58909
+ [viewMode]="viewMode()"
58910
+ [currentStepId]="JourneyStepIdEnum.BUSINESS_ANALYSIS"
58911
+ [showNextStepAction]="false"
58912
+ [forDemo]="forDemo()"
58913
+ [maxAccessibleStepId]="maxAccessibleStepId()"
58914
+ (stepClick)="stepClick.emit($event)"
58915
+ (nextStepClick)="nextStepClick.emit()"
58916
+ />
58917
+ }
58918
+
58919
+ <!-- Content Generation Progress Component -->
58920
+ <symphiq-content-generation-progress
58921
+ [viewMode]="viewMode()"
58922
+ [title]="'We are generating a new Business Analysis for ' + (currentProfile()?.profileStructured?.businessName || 'your business') + '.'"
58923
+ [subtitle]="'It will appear here when ready. You can check back later as this will take a few minutes to complete.'"
58924
+ />
58925
+ } @else {
58926
+ @if (isSimplifiedView()) {
58927
+ <!-- Journey Progress Banner - Full Width Sticky (only show when not onboarded) -->
58928
+ @if (!isOnboarded()) {
58929
+ <symphiq-journey-progress-indicator
58930
+ [viewMode]="viewMode()"
58931
+ [currentStepId]="JourneyStepIdEnum.BUSINESS_ANALYSIS"
58932
+ [showNextStepAction]="showNextStepAction()"
58933
+ [forDemo]="forDemo()"
58934
+ [maxAccessibleStepId]="maxAccessibleStepId()"
58935
+ (stepClick)="stepClick.emit($event)"
58936
+ (nextStepClick)="nextStepClick.emit()"
58937
+ />
58938
+ }
58939
+
58940
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8">
58941
+ <div class="mb-8">
58942
+ <symphiq-welcome-banner
58943
+ [viewMode]="viewMode()"
58944
+ [businessName]="currentProfile()?.profileStructured?.businessName || 'your business'"
58945
+ [isOnboarded]="isOnboarded()"
58946
+ />
58947
+ </div>
58948
+
58949
+ <div class="mb-8">
58950
+ <symphiq-recommendations-tiled-grid
58951
+ [recommendations]="recommendationItems()"
58952
+ [viewMode]="viewMode()"
58953
+ (viewMoreClick)="openRecommendationDetailsModal($event)"
58954
+ />
58955
+ </div>
58956
+
58957
+ <div>
58958
+ <symphiq-collapsible-section-group
58959
+ [sections]="nonRecommendationSections()"
58960
+ [viewMode]="viewMode()"
58961
+ />
58962
+ </div>
58963
+ </div>
58964
+ } @else {
58965
+ @for (section of sections(); track trackBySectionId($index, section); let idx = $index; let last = $last) {
58966
+ <symphiq-profile-section
58967
+ [section]="section"
58968
+ [viewMode]="viewMode()"
58969
+ [forceExpanded]="!isCompactView()"
58970
+ />
58971
+ @if (!last) {
58972
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
58973
+ <symphiq-section-divider
58974
+ [viewMode]="viewMode()"
58975
+ [subsections]="sections()[idx + 1].subsections || []" />
58976
+ </div>
58977
+ }
58978
+ }
58979
+ }
58980
+ }
58981
+ </main>
58982
+
58983
+ @if (!isSimplifiedView()) {
58984
+ <symphiq-section-navigation
58985
+ [sections]="sections()"
58986
+ [viewMode]="viewMode()"
58987
+ [embedded]="embedded()"
58988
+ [scrollElement]="scrollElement() ?? undefined"
58989
+ />
58990
+ }
58991
+
58992
+ @if (!isSimplifiedView()) {
58993
+ <symphiq-floating-toc
58994
+ [sections]="sections()"
58995
+ [viewMode]="viewMode()"
58996
+ [embedded]="embedded()"
58997
+ [scrollElement]="scrollElement() ?? undefined"
58998
+ />
58999
+ }
59000
+
59001
+ <symphiq-floating-back-button
59002
+ [viewMode]="viewMode()"
59003
+ [embedded]="embedded()"
59004
+ />
59005
+ </div>
59006
+
59007
+ @if (isLoading()) {
59008
+ <div [ngClass]="getLoadingOverlayClasses()">
59009
+ <div [ngClass]="getSpinnerClasses()"></div>
59010
+ </div>
59011
+ }
59012
+
59013
+ <symphiq-tooltip-container />
59014
+ <symphiq-business-analysis-modal
59015
+ [isLightMode]="isLightMode()"
59016
+ (viewInContextRequested)="handleViewInContext($event)" />
59017
+
59018
+ <symphiq-search-modal
59019
+ [isLightMode]="isLightMode()"
59020
+ [isOpen]="searchService.isSearchOpen()"
59021
+ [searchQuery]="searchService.getSearchQuery()"
59022
+ [results]="searchService.searchResults()"
59023
+ [hasResults]="searchService.hasResults()"
59024
+ [selectedIndex]="selectedSearchIndex()"
59025
+ [placeholder]="'Search sections, items, and analysis...'"
59026
+ (searchChange)="onSearchChange($event)"
59027
+ (resultSelected)="onSearchResultSelected($event)"
59028
+ (close)="closeSearch()"
59029
+ />
59030
+
59031
+ <symphiq-view-mode-switcher-modal
59032
+ [isOpen]="isViewModeSwitcherOpen()"
59033
+ [currentMode]="displayMode()"
59034
+ [viewMode]="viewMode()"
59035
+ [isLoading]="isViewModeSwitching()"
59036
+ (close)="closeViewModeSwitcher()"
59037
+ (modeSelected)="handleDisplayModeChange($event)"
59038
+ />
59039
+ </div>
57626
59040
  `, 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"] }]
57627
59041
  }], () => [], { 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 }] }], stepClick: [{ type: i0.Output, args: ["stepClick"] }], nextStepClick: [{ type: i0.Output, args: ["nextStepClick"] }], onScroll: [{
57628
59042
  type: HostListener,
@@ -103391,5 +104805,5 @@ const PROFILE_ANALYSIS_METRIC_SCREEN_PAGE_VIEWS = ({
103391
104805
  * Generated bundle index. Do not edit.
103392
104806
  */
103393
104807
 
103394
- export { AreaChartComponent, BUSINESS_PROFILE, BarChartComponent, BreakdownSectionComponent, BusinessAnalysisModalComponent, BusinessProfileSearchService, ChartCardComponent, ChartContainerComponent, ChartThemeService, CircularProgressComponent, CompetitivePositioningSummaryComponent, CompetitorAnalysisCardComponent, ConfidenceLevelCardComponent, ContentGenerationProgressComponent, CrossDashboardRelationshipsService, FUNNEL_ANALYSIS, FloatingBackButtonComponent, FloatingTocComponent, FocusAreaDetailCardComponent, FocusAreaExecutiveSummaryComponent, FunnelOrderService, GradeBadgeComponent, HeaderScrollService, HierarchyDisplayComponent, HorizontalBarComponent, IconService, InsightCardComponent, JourneyProgressIndicatorComponent, JourneyStepIdEnum, LineChartComponent, MetricCardComponent, MetricExecutiveSummaryComponent, MetricFormatterService, MetricListItemComponent, MetricWelcomeBannerComponent, MobileBottomNavComponent, MobileFABComponent, ModalComponent, ModalService, NapkinVisualPlaceholderComponent, NavigationStateService, OpportunityHighlightBannerComponent, OverallAssessmentComponent, PROFILE_ANALYSIS_FOCUS_AREA_AFFILIATE, PROFILE_ANALYSIS_METRIC_SCREEN_PAGE_VIEWS, PROFILE_ANALYSIS_SHOP, PieChartComponent, ProfileItemCardComponent, ProfileSectionComponent, ProfileSubsectionComponent, RelatedContentSidebarComponent, ScrollDepthService, ScrollProgressBarComponent, SearchButtonComponent, SearchModalComponent, SectionDividerComponent, SectionNavigationComponent, ShadowElevationDirective, ShopPlatformEnum, ShopWelcomeBannerComponent, SkeletonBarComponent, SkeletonCardBaseComponent, SkeletonCircleComponent, SkeletonCompetitorCardComponent, SkeletonCustomerSegmentCardComponent, SkeletonFocusAreaCardComponent, SkeletonGenericCardComponent, SkeletonLoaderComponent, SkeletonPriceTierCardComponent, SkeletonProductCategoryCardComponent, SkeletonRegionCardComponent, SkeletonSeasonCardComponent, SymphiqBusinessAnalysisDashboardComponent, SymphiqConnectGaDashboardComponent, SymphiqCreateAccountDashboardComponent, SymphiqFunnelAnalysisDashboardComponent, SymphiqFunnelAnalysisPreviewComponent, SymphiqIconComponent, SymphiqProfileAnalysisDashboardComponent, SymphiqWelcomeDashboardComponent, TooltipContainerComponent, TooltipDataService, TooltipDirective, TooltipService, ViewModeService, ViewportAnimationDirective, VisualizationContainerComponent, getBadgeLabelClasses, getButtonClasses, getCategoryBadgeClasses, getCategoryColor, getCompetitiveBadgeClasses, getContainerClasses, getFooterClasses, getGradeBadgeClasses, getHeaderClasses, getInsightsBadgeClasses, getInsightsCardClasses, getMetricLabelClasses, getMetricMiniCardClasses, getMetricValueClasses, getNarrativeTextClasses, getRevenueCardClasses, getRevenueIconClasses, getStatusBadgeClasses, getStatusDotClasses, getStatusIconClasses, getStatusSummaryClasses, getSubtitleClasses, getTitleClasses, getTrendClasses, getTrendIconClasses, getTrendValueClasses, isLightMode };
104808
+ export { AreaChartComponent, BUSINESS_PROFILE, BarChartComponent, BreakdownSectionComponent, BusinessAnalysisModalComponent, BusinessProfileSearchService, ChartCardComponent, ChartContainerComponent, ChartThemeService, CircularProgressComponent, CompetitivePositioningSummaryComponent, CompetitorAnalysisCardComponent, ConfidenceLevelCardComponent, ContentGenerationProgressComponent, CrossDashboardRelationshipsService, FUNNEL_ANALYSIS, FloatingBackButtonComponent, FloatingTocComponent, FocusAreaDetailCardComponent, FocusAreaExecutiveSummaryComponent, FocusAreaQuestionComponent, FocusAreaToolsModalComponent, FunnelOrderService, GradeBadgeComponent, HeaderScrollService, HierarchyDisplayComponent, HorizontalBarComponent, IconService, InsightCardComponent, JourneyProgressIndicatorComponent, JourneyStepIdEnum, LineChartComponent, MetricCardComponent, MetricExecutiveSummaryComponent, MetricFormatterService, MetricListItemComponent, MetricWelcomeBannerComponent, MobileBottomNavComponent, MobileFABComponent, ModalComponent, ModalService, NapkinVisualPlaceholderComponent, NavigationStateService, OpportunityHighlightBannerComponent, OverallAssessmentComponent, PROFILE_ANALYSIS_FOCUS_AREA_AFFILIATE, PROFILE_ANALYSIS_METRIC_SCREEN_PAGE_VIEWS, PROFILE_ANALYSIS_SHOP, PieChartComponent, ProfileItemCardComponent, ProfileSectionComponent, ProfileSubsectionComponent, RelatedContentSidebarComponent, ScrollDepthService, ScrollProgressBarComponent, SearchButtonComponent, SearchModalComponent, SectionDividerComponent, SectionNavigationComponent, ShadowElevationDirective, ShopPlatformEnum, ShopWelcomeBannerComponent, SkeletonBarComponent, SkeletonCardBaseComponent, SkeletonCircleComponent, SkeletonCompetitorCardComponent, SkeletonCustomerSegmentCardComponent, SkeletonFocusAreaCardComponent, SkeletonGenericCardComponent, SkeletonLoaderComponent, SkeletonPriceTierCardComponent, SkeletonProductCategoryCardComponent, SkeletonRegionCardComponent, SkeletonSeasonCardComponent, SymphiqBusinessAnalysisDashboardComponent, SymphiqConnectGaDashboardComponent, SymphiqCreateAccountDashboardComponent, SymphiqFunnelAnalysisDashboardComponent, SymphiqFunnelAnalysisPreviewComponent, SymphiqIconComponent, SymphiqProfileAnalysisDashboardComponent, SymphiqWelcomeDashboardComponent, TooltipContainerComponent, TooltipDataService, TooltipDirective, TooltipService, ViewModeService, ViewportAnimationDirective, VisualizationContainerComponent, getBadgeLabelClasses, getButtonClasses, getCategoryBadgeClasses, getCategoryColor, getCompetitiveBadgeClasses, getContainerClasses, getFooterClasses, getGradeBadgeClasses, getHeaderClasses, getInsightsBadgeClasses, getInsightsCardClasses, getMetricLabelClasses, getMetricMiniCardClasses, getMetricValueClasses, getNarrativeTextClasses, getRevenueCardClasses, getRevenueIconClasses, getStatusBadgeClasses, getStatusDotClasses, getStatusIconClasses, getStatusSummaryClasses, getSubtitleClasses, getTitleClasses, getTrendClasses, getTrendIconClasses, getTrendValueClasses, isLightMode };
103395
104809
  //# sourceMappingURL=symphiq-components.mjs.map