@eric-emg/symphiq-components 1.2.150 → 1.2.152

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);
@@ -24829,11 +24829,11 @@ function JourneyProgressIndicatorComponent_For_5_Template(rf, ctx) { if (rf & 1)
24829
24829
  i0.ɵɵelementStart(0, "div", 20);
24830
24830
  i0.ɵɵlistener("mouseenter", function JourneyProgressIndicatorComponent_For_5_Template_div_mouseenter_0_listener() { const ɵ$index_9_r2 = i0.ɵɵrestoreView(_r1).$index; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.setHoveredStep(ɵ$index_9_r2)); })("mouseleave", function JourneyProgressIndicatorComponent_For_5_Template_div_mouseleave_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.clearHoveredStep()); });
24831
24831
  i0.ɵɵelementStart(1, "div", 21);
24832
- i0.ɵɵlistener("click", function JourneyProgressIndicatorComponent_For_5_Template_div_click_1_listener() { const ctx_r3 = i0.ɵɵrestoreView(_r1); const step_r5 = ctx_r3.$implicit; const ɵ$index_9_r2 = ctx_r3.$index; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView((step_r5.status === "completed" || step_r5.status === "accessible") && ctx_r2.stepClick.emit(ɵ$index_9_r2 + 1)); });
24832
+ i0.ɵɵlistener("click", function JourneyProgressIndicatorComponent_For_5_Template_div_click_1_listener() { const ctx_r3 = i0.ɵɵrestoreView(_r1); const step_r5 = ctx_r3.$implicit; const ɵ$index_9_r2 = ctx_r3.$index; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.handleStepClick(step_r5, ɵ$index_9_r2)); });
24833
24833
  i0.ɵɵconditionalCreate(2, JourneyProgressIndicatorComponent_For_5_Conditional_2_Template, 2, 0, ":svg:svg", 22)(3, JourneyProgressIndicatorComponent_For_5_Conditional_3_Template, 1, 1, "div", 23)(4, JourneyProgressIndicatorComponent_For_5_Conditional_4_Template, 1, 1, "div", 24)(5, JourneyProgressIndicatorComponent_For_5_Conditional_5_Template, 2, 2, "span", 25);
24834
24834
  i0.ɵɵelementEnd();
24835
24835
  i0.ɵɵelementStart(6, "span", 26);
24836
- i0.ɵɵlistener("click", function JourneyProgressIndicatorComponent_For_5_Template_span_click_6_listener() { const ctx_r6 = i0.ɵɵrestoreView(_r1); const step_r5 = ctx_r6.$implicit; const ɵ$index_9_r2 = ctx_r6.$index; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView((step_r5.status === "completed" || step_r5.status === "accessible") && ctx_r2.stepClick.emit(ɵ$index_9_r2 + 1)); });
24836
+ i0.ɵɵlistener("click", function JourneyProgressIndicatorComponent_For_5_Template_span_click_6_listener() { const ctx_r6 = i0.ɵɵrestoreView(_r1); const step_r5 = ctx_r6.$implicit; const ɵ$index_9_r2 = ctx_r6.$index; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.handleStepClick(step_r5, ɵ$index_9_r2)); });
24837
24837
  i0.ɵɵtext(7);
24838
24838
  i0.ɵɵelementEnd();
24839
24839
  i0.ɵɵconditionalCreate(8, JourneyProgressIndicatorComponent_For_5_Conditional_8_Template, 9, 16, "div", 27);
@@ -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();
@@ -25202,6 +25202,11 @@ class JourneyProgressIndicatorComponent {
25202
25202
  this.nextStepClick.emit();
25203
25203
  }
25204
25204
  }
25205
+ handleStepClick(step, idx) {
25206
+ if (step.status === 'completed' || step.status === 'accessible') {
25207
+ this.stepClick.emit(idx + 1);
25208
+ }
25209
+ }
25205
25210
  // Mobile navigation methods
25206
25211
  getCurrentStepIndex() {
25207
25212
  return this.mobileStepIndex();
@@ -25426,7 +25431,7 @@ class JourneyProgressIndicatorComponent {
25426
25431
  static { this.ɵfac = function JourneyProgressIndicatorComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || JourneyProgressIndicatorComponent)(); }; }
25427
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) {
25428
25433
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "div", 3);
25429
- 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);
25430
25435
  i0.ɵɵelementEnd();
25431
25436
  i0.ɵɵconditionalCreate(6, JourneyProgressIndicatorComponent_Conditional_6_Template, 3, 11, "button", 4);
25432
25437
  i0.ɵɵelementEnd();
@@ -25478,228 +25483,228 @@ class JourneyProgressIndicatorComponent {
25478
25483
  }
25479
25484
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(JourneyProgressIndicatorComponent, [{
25480
25485
  type: Component,
25481
- args: [{ selector: 'symphiq-journey-progress-indicator', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: `
25482
- <!-- Sticky Banner Container with Minimal Padding for Glow Effects -->
25483
- <div [ngClass]="containerClasses()" class="sticky top-[60px] z-40 border-b pt-8 pb-6 px-6 transition-all duration-200 overflow-visible">
25484
- <div class="max-w-7xl mx-auto overflow-visible">
25485
- <!-- Desktop/Tablet Horizontal Layout (lg and up) -->
25486
- <div class="hidden lg:flex items-start justify-between overflow-visible">
25487
- <!-- Steps Container -->
25488
- <div class="flex-1 flex items-start justify-start overflow-visible">
25489
- @for (step of steps(); track step.id; let idx = $index; let isLast = $last) {
25490
- <!-- Step Column (Vertical Layout: Dot above, Label below) -->
25491
- <div
25492
- class="flex flex-col items-center cursor-pointer relative step-column overflow-visible flex-shrink-0"
25493
- [style.width]="'64px'"
25494
- (mouseenter)="setHoveredStep(idx)"
25495
- (mouseleave)="clearHoveredStep()">
25496
-
25497
- <!-- Icon Circle -->
25498
- <div
25499
- [ngClass]="getStepIconContainerClasses(step)"
25500
- 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"
25501
- (click)="(step.status === 'completed' || step.status === 'accessible') && stepClick.emit(idx + 1)"
25502
- [class.cursor-pointer]="step.status === 'completed' || step.status === 'accessible'">
25503
- @if (step.status === 'completed') {
25504
- <svg class="w-4 h-4" fill="currentColor" viewBox="0 0 20 20">
25505
- <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>
25506
- </svg>
25507
- } @else if (step.status === 'current') {
25508
- <div class="w-2.5 h-2.5 min-w-[0.625rem] min-h-[0.625rem] rounded-full animate-pulse" [ngClass]="getCurrentDotClasses()"></div>
25509
- } @else if (step.status === 'accessible') {
25510
- <div class="w-2 h-2 min-w-[0.5rem] min-h-[0.5rem] rounded-full" [ngClass]="getAccessibleDotClasses()"></div>
25511
- } @else {
25512
- <span [ngClass]="getStepNumberClasses(step)" class="text-xs font-bold">
25513
- {{ idx + 1 }}
25514
- </span>
25515
- }
25516
- </div>
25517
-
25518
- <!-- Abbreviated Title (Always Visible) -->
25519
- <span
25520
- [ngClass]="getAbbreviatedTitleClasses(step)"
25521
- class="text-[10px] text-center leading-tight whitespace-nowrap max-w-[64px] overflow-hidden text-ellipsis"
25522
- (click)="(step.status === 'completed' || step.status === 'accessible') && stepClick.emit(idx + 1)"
25523
- [class.cursor-pointer]="step.status === 'completed' || step.status === 'accessible'">
25524
- {{ getAbbreviatedTitle(step.title) }}
25525
- </span>
25526
-
25527
- <!-- Absolute Positioned Tooltip -->
25528
- @if (hoveredStepIndex() === idx) {
25529
- <div
25530
- [ngClass]="getExpandedCardClasses(idx)"
25531
- [class.expanded-card-right]="isExpandRight(idx)"
25532
- [class.expanded-card-left]="isExpandLeft(idx)"
25533
- class="absolute rounded-lg shadow-2xl z-50 pointer-events-none"
25534
- [style.top]="'-29px'"
25535
- [style.left]="isExpandRight(idx) ? 'calc(100% + 6px)' : 'auto'"
25536
- [style.right]="isExpandLeft(idx) ? 'calc(100% + 6px)' : 'auto'">
25537
- <div class="flex items-start px-4 py-3 expanded-content">
25538
- <!-- Step Number and Title with Description -->
25539
- <div class="flex items-start gap-2 w-full">
25540
- <span [ngClass]="tooltipStepNumberClasses()" class="text-xs font-bold flex-shrink-0 mt-0.5">{{ idx + 1 }}.</span>
25541
- <div class="flex flex-col gap-1 flex-1">
25542
- <span [ngClass]="tooltipTitleClasses()" class="text-sm font-bold leading-tight">{{ step.title }}</span>
25543
- <!-- Description (Delayed Fade In) -->
25544
- @if (shouldShowDetailedTooltip()) {
25545
- <p [ngClass]="tooltipDescriptionClasses()" class="text-xs leading-relaxed description-fade">
25546
- {{ step.description }}
25547
- </p>
25548
- }
25549
- </div>
25550
- </div>
25551
- </div>
25552
- </div>
25553
- }
25554
- </div>
25555
-
25556
- <!-- Connector Line (Horizontal, stretches to fill available space) -->
25557
- @if (!isLast) {
25558
- <div [ngClass]="getConnectorClasses(step)" class="flex-1 h-0.5 transition-all duration-200 mt-[16px]"></div>
25559
- }
25560
- }
25561
- </div>
25562
-
25563
- <!-- Next Step Button -->
25564
- @if (showNextStepAction() && getNextStep()) {
25565
- <button
25566
- type="button"
25567
- (click)="handleNextStepClick()"
25568
- [disabled]="isLoading()"
25569
- [ngClass]="nextStepButtonClasses()"
25570
- 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"
25571
- [class.cursor-pointer]="!isLoading()"
25572
- [class.cursor-not-allowed]="isLoading()"
25573
- [class.opacity-50]="isLoading()"
25574
- [class.hover:scale-105]="!isLoading()">
25575
- @if (isLoading()) {
25576
- <svg class="w-4 h-4 animate-spin" fill="none" viewBox="0 0 24 24">
25577
- <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
25578
- <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>
25579
- </svg>
25580
- Loading...
25581
- } @else {
25582
- {{ currentStepId() === JourneyStepIdEnum.WELCOME ? 'Get Started' : 'Continue' }}
25583
- <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
25584
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 7l5 5m0 0l-5 5m5-5H6"></path>
25585
- </svg>
25586
- }
25587
- </button>
25588
- }
25589
- </div>
25590
-
25591
- <!-- Mobile Navigation (below lg) -->
25592
- <div class="lg:hidden">
25593
- <div class="flex items-center justify-between gap-4">
25594
- <!-- Current Step Display -->
25595
- <div class="flex-1 flex items-center gap-3">
25596
- <!-- Step Icon -->
25597
- <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">
25598
- @if (getCurrentStep().status === 'completed') {
25599
- <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
25600
- <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>
25601
- </svg>
25602
- } @else if (getCurrentStep().status === 'current') {
25603
- <div class="w-3 h-3 min-w-[0.75rem] min-h-[0.75rem] rounded-full animate-pulse" [ngClass]="getCurrentDotClasses()"></div>
25604
- } @else {
25605
- <span [ngClass]="getStepNumberClasses(getCurrentStep())" class="text-sm font-bold">
25606
- {{ getCurrentStepIndex() + 1 }}
25607
- </span>
25608
- }
25609
- </div>
25610
-
25611
- <!-- Step Info -->
25612
- <div class="flex-1 text-left">
25613
- <h3 [ngClass]="getStepTitleClasses(getCurrentStep())" class="text-sm font-bold">
25614
- {{ getCurrentStep().title }}
25615
- </h3>
25616
- <!-- Step Counter with Tooltip Trigger -->
25617
- <div
25618
- class="flex items-center gap-1.5 relative"
25619
- (mouseenter)="showMobileTooltip.set(true)"
25620
- (mouseleave)="showMobileTooltip.set(false)"
25621
- (click)="toggleMobileTooltip()">
25622
- <span [ngClass]="stepCounterClasses()" class="text-xs cursor-pointer">
25623
- Step {{ getCurrentStepIndex() + 1 }} of {{ steps().length }}
25624
- </span>
25625
- <div [ngClass]="tooltipTriggerClasses()" class="p-0.5 rounded-full cursor-pointer">
25626
- <svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24">
25627
- <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>
25628
- </svg>
25629
- </div>
25630
-
25631
- <!-- Mobile Tooltip with All Steps -->
25632
- @if (showMobileTooltip()) {
25633
- <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">
25634
- <h4 [ngClass]="tooltipTitleClasses()" class="text-sm font-bold mb-3">Journey Progress</h4>
25635
- <div class="space-y-2">
25636
- @for (step of steps(); track step.id; let idx = $index) {
25637
- <div class="flex items-start gap-2">
25638
- <!-- Step Icon -->
25639
- <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">
25640
- @if (step.status === 'completed') {
25641
- <svg class="w-3 h-3" fill="currentColor" viewBox="0 0 20 20">
25642
- <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>
25643
- </svg>
25644
- } @else if (step.status === 'current') {
25645
- <div class="w-2 h-2 min-w-[0.5rem] min-h-[0.5rem] rounded-full animate-pulse" [ngClass]="getCurrentDotClasses()"></div>
25646
- } @else if (step.status === 'accessible') {
25647
- <div class="w-1.5 h-1.5 min-w-[0.375rem] min-h-[0.375rem] rounded-full" [ngClass]="getAccessibleDotClasses()"></div>
25648
- } @else {
25649
- <span [ngClass]="getStepNumberClasses(step)" class="text-[10px] font-bold">
25650
- {{ idx + 1 }}
25651
- </span>
25652
- }
25653
- </div>
25654
- <!-- Step Info -->
25655
- <div class="flex-1 min-w-0">
25656
- <div class="flex items-center gap-2">
25657
- <span [ngClass]="tooltipStepNumberClasses()" class="text-xs font-bold">{{ idx + 1 }}.</span>
25658
- <span [ngClass]="getStepTitleClasses(step)" class="text-xs font-medium">{{ step.title }}</span>
25659
- </div>
25660
- <p [ngClass]="tooltipDescriptionClasses()" class="text-[10px] mt-0.5">
25661
- {{ step.description }}
25662
- </p>
25663
- </div>
25664
- </div>
25665
- }
25666
- </div>
25667
- </div>
25668
- }
25669
- </div>
25670
- </div>
25671
- </div>
25672
-
25673
- <!-- Get Started Button -->
25674
- @if (showNextStepAction() && getNextStep() && getCurrentStep().status === 'current') {
25675
- <button
25676
- type="button"
25677
- (click)="handleNextStepClick()"
25678
- [disabled]="isLoading()"
25679
- [ngClass]="nextStepButtonClasses()"
25680
- 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"
25681
- [class.cursor-pointer]="!isLoading()"
25682
- [class.cursor-not-allowed]="isLoading()"
25683
- [class.opacity-50]="isLoading()"
25684
- [class.hover:scale-105]="!isLoading()">
25685
- @if (isLoading()) {
25686
- <svg class="w-3.5 h-3.5 animate-spin" fill="none" viewBox="0 0 24 24">
25687
- <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
25688
- <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>
25689
- </svg>
25690
- Loading...
25691
- } @else {
25692
- {{ currentStepId() === JourneyStepIdEnum.WELCOME ? 'Get Started' : 'Continue' }}
25693
- <svg class="w-3.5 h-3.5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
25694
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 7l5 5m0 0l-5 5m5-5H6"></path>
25695
- </svg>
25696
- }
25697
- </button>
25698
- }
25699
- </div>
25700
- </div>
25701
- </div>
25702
- </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>
25703
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"] }]
25704
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"] }] }); })();
25705
25710
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(JourneyProgressIndicatorComponent, { className: "JourneyProgressIndicatorComponent", filePath: "lib/components/business-analysis-dashboard/journey-progress-indicator.component.ts", lineNumber: 371 }); })();
@@ -27579,7 +27584,7 @@ class ViewModeSwitcherModalComponent {
27579
27584
  const _c0$S = a0 => ({ name: "check-badge", source: a0 });
27580
27585
  const _c1$y = a0 => ({ name: "check-circle", source: a0 });
27581
27586
  const _c2$o = a0 => ({ name: "chevron-right", source: a0 });
27582
- const _forTrack0$w = ($index, $item) => $item.area;
27587
+ const _forTrack0$x = ($index, $item) => $item.area;
27583
27588
  function KeyStrengthsListModalContentComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
27584
27589
  i0.ɵɵelementStart(0, "div", 1);
27585
27590
  i0.ɵɵelement(1, "symphiq-icon", 3);
@@ -27648,7 +27653,7 @@ function KeyStrengthsListModalContentComponent_Conditional_2_For_2_Template(rf,
27648
27653
  } }
27649
27654
  function KeyStrengthsListModalContentComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
27650
27655
  i0.ɵɵelementStart(0, "div", 2);
27651
- 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);
27652
27657
  i0.ɵɵelementEnd();
27653
27658
  } if (rf & 2) {
27654
27659
  const ctx_r0 = i0.ɵɵnextContext();
@@ -27812,7 +27817,7 @@ const _c0$R = a0 => ({ name: "shield-check", source: a0 });
27812
27817
  const _c1$x = a0 => ({ name: "exclamation-triangle", source: a0 });
27813
27818
  const _c2$n = a0 => ({ name: "document-text", source: a0 });
27814
27819
  const _c3$h = a0 => ({ name: "chevron-right", source: a0 });
27815
- const _forTrack0$v = ($index, $item) => $item.area;
27820
+ const _forTrack0$w = ($index, $item) => $item.area;
27816
27821
  function CriticalGapsListModalContentComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
27817
27822
  i0.ɵɵelementStart(0, "div", 1);
27818
27823
  i0.ɵɵelement(1, "symphiq-icon", 3);
@@ -27897,7 +27902,7 @@ function CriticalGapsListModalContentComponent_Conditional_2_For_2_Template(rf,
27897
27902
  } }
27898
27903
  function CriticalGapsListModalContentComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
27899
27904
  i0.ɵɵelementStart(0, "div", 2);
27900
- 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);
27901
27906
  i0.ɵɵelementEnd();
27902
27907
  } if (rf & 2) {
27903
27908
  const ctx_r0 = i0.ɵɵnextContext();
@@ -28126,7 +28131,7 @@ class CriticalGapsListModalContentComponent {
28126
28131
 
28127
28132
  const _c0$Q = a0 => ({ name: "check-circle", source: a0 });
28128
28133
  const _c1$w = a0 => ({ name: "chat-bubble-left-right", source: a0 });
28129
- const _forTrack0$u = ($index, $item) => $item.questionId;
28134
+ const _forTrack0$v = ($index, $item) => $item.questionId;
28130
28135
  function KeyStrengthDetailModalContentComponent_Conditional_13_For_6_Conditional_8_Template(rf, ctx) { if (rf & 1) {
28131
28136
  i0.ɵɵelementStart(0, "div", 19)(1, "span", 20);
28132
28137
  i0.ɵɵtext(2);
@@ -28173,7 +28178,7 @@ function KeyStrengthDetailModalContentComponent_Conditional_13_Template(rf, ctx)
28173
28178
  i0.ɵɵtext(3, " Supporting Evidence ");
28174
28179
  i0.ɵɵelementEnd();
28175
28180
  i0.ɵɵelementStart(4, "div", 12);
28176
- 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);
28177
28182
  i0.ɵɵelementEnd()();
28178
28183
  } if (rf & 2) {
28179
28184
  const ctx_r1 = i0.ɵɵnextContext();
@@ -28368,7 +28373,7 @@ class KeyStrengthDetailModalContentComponent {
28368
28373
  const _c0$P = a0 => ({ name: "exclamation-triangle", source: a0 });
28369
28374
  const _c1$v = a0 => ({ name: "document-text", source: a0 });
28370
28375
  const _c2$m = a0 => ({ name: "chat-bubble-left-right", source: a0 });
28371
- const _forTrack0$t = ($index, $item) => $item.questionId;
28376
+ const _forTrack0$u = ($index, $item) => $item.questionId;
28372
28377
  function CriticalGapDetailModalContentComponent_Conditional_20_For_6_Conditional_8_Template(rf, ctx) { if (rf & 1) {
28373
28378
  i0.ɵɵelementStart(0, "div", 23)(1, "p", 25);
28374
28379
  i0.ɵɵtext(2, " Gap Identified: ");
@@ -28436,7 +28441,7 @@ function CriticalGapDetailModalContentComponent_Conditional_20_Template(rf, ctx)
28436
28441
  i0.ɵɵtext(3, " Supporting Evidence ");
28437
28442
  i0.ɵɵelementEnd();
28438
28443
  i0.ɵɵelementStart(4, "div", 17);
28439
- 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);
28440
28445
  i0.ɵɵelementEnd()();
28441
28446
  } if (rf & 2) {
28442
28447
  const ctx_r1 = i0.ɵɵnextContext();
@@ -30232,7 +30237,7 @@ const _c0$O = a0 => ({ name: "check-badge", source: a0 });
30232
30237
  const _c1$u = a0 => ({ name: "check-circle", source: a0 });
30233
30238
  const _c2$l = a0 => ({ name: "chevron-right", source: a0 });
30234
30239
  const _c3$g = a0 => ({ name: "chart-bar", source: a0 });
30235
- const _forTrack0$s = ($index, $item) => $item.capability;
30240
+ const _forTrack0$t = ($index, $item) => $item.capability;
30236
30241
  function FocusAreaStrengthsListModalContentComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
30237
30242
  i0.ɵɵelementStart(0, "div", 1);
30238
30243
  i0.ɵɵelement(1, "symphiq-icon", 3);
@@ -30347,7 +30352,7 @@ function FocusAreaStrengthsListModalContentComponent_Conditional_2_For_2_Templat
30347
30352
  } }
30348
30353
  function FocusAreaStrengthsListModalContentComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
30349
30354
  i0.ɵɵelementStart(0, "div", 2);
30350
- 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);
30351
30356
  i0.ɵɵelementEnd();
30352
30357
  } if (rf & 2) {
30353
30358
  const ctx_r0 = i0.ɵɵnextContext();
@@ -30554,7 +30559,7 @@ class FocusAreaStrengthsListModalContentComponent {
30554
30559
  const _c0$N = a0 => ({ name: "exclamation-triangle", source: a0 });
30555
30560
  const _c1$t = a0 => ({ name: "exclamation-circle", source: a0 });
30556
30561
  const _c2$k = a0 => ({ name: "chevron-right", source: a0 });
30557
- function _forTrack0$r($index, $item) { return this.getGapTitle($item); }
30562
+ function _forTrack0$s($index, $item) { return this.getGapTitle($item); }
30558
30563
  function FocusAreaGapsListModalContentComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
30559
30564
  i0.ɵɵelementStart(0, "div", 1);
30560
30565
  i0.ɵɵelement(1, "symphiq-icon", 3);
@@ -30671,7 +30676,7 @@ function FocusAreaGapsListModalContentComponent_Conditional_2_For_2_Template(rf,
30671
30676
  } }
30672
30677
  function FocusAreaGapsListModalContentComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
30673
30678
  i0.ɵɵelementStart(0, "div", 2);
30674
- 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);
30675
30680
  i0.ɵɵelementEnd();
30676
30681
  } if (rf & 2) {
30677
30682
  const ctx_r0 = i0.ɵɵnextContext();
@@ -30948,7 +30953,7 @@ class FocusAreaGapsListModalContentComponent {
30948
30953
  const _c0$M = a0 => ({ name: "light-bulb", source: a0 });
30949
30954
  const _c1$s = a0 => ({ name: "chevron-right", source: a0 });
30950
30955
  const _c2$j = a0 => ({ name: "chart-bar", source: a0 });
30951
- const _forTrack0$q = ($index, $item) => $item.opportunity;
30956
+ const _forTrack0$r = ($index, $item) => $item.opportunity;
30952
30957
  function FocusAreaOpportunitiesListModalContentComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
30953
30958
  i0.ɵɵelementStart(0, "div", 1);
30954
30959
  i0.ɵɵelement(1, "symphiq-icon", 3);
@@ -31039,7 +31044,7 @@ function FocusAreaOpportunitiesListModalContentComponent_Conditional_2_For_2_Tem
31039
31044
  } }
31040
31045
  function FocusAreaOpportunitiesListModalContentComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
31041
31046
  i0.ɵɵelementStart(0, "div", 2);
31042
- 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);
31043
31048
  i0.ɵɵelementEnd();
31044
31049
  } if (rf & 2) {
31045
31050
  const ctx_r0 = i0.ɵɵnextContext();
@@ -31216,7 +31221,7 @@ class FocusAreaOpportunitiesListModalContentComponent {
31216
31221
 
31217
31222
  const _c0$L = a0 => ({ name: "chevron-right", source: a0 });
31218
31223
  const _c1$r = a0 => ({ name: "chat-bubble-left-right", source: a0 });
31219
- const _forTrack0$p = ($index, $item) => $item.performanceItemId;
31224
+ const _forTrack0$q = ($index, $item) => $item.performanceItemId;
31220
31225
  function FocusAreaStrengthDetailModalContentComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
31221
31226
  i0.ɵɵelementStart(0, "div")(1, "p", 2);
31222
31227
  i0.ɵɵtext(2);
@@ -31286,7 +31291,7 @@ function FocusAreaStrengthDetailModalContentComponent_Conditional_4_Template(rf,
31286
31291
  i0.ɵɵtext(2);
31287
31292
  i0.ɵɵelementEnd();
31288
31293
  i0.ɵɵelementStart(3, "div", 9);
31289
- 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);
31290
31295
  i0.ɵɵelementEnd()();
31291
31296
  } if (rf & 2) {
31292
31297
  const ctx_r0 = i0.ɵɵnextContext();
@@ -31937,7 +31942,7 @@ class FocusAreaGapDetailModalContentComponent {
31937
31942
 
31938
31943
  const _c0$J = a0 => ({ name: "chevron-right", source: a0 });
31939
31944
  const _c1$q = () => [];
31940
- const _forTrack0$o = ($index, $item) => $item.performanceItemId;
31945
+ const _forTrack0$p = ($index, $item) => $item.performanceItemId;
31941
31946
  function FocusAreaOpportunityDetailModalContentComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
31942
31947
  i0.ɵɵelementStart(0, "div")(1, "p", 2);
31943
31948
  i0.ɵɵtext(2);
@@ -31989,7 +31994,7 @@ function FocusAreaOpportunityDetailModalContentComponent_Conditional_3_Template(
31989
31994
  i0.ɵɵtext(2);
31990
31995
  i0.ɵɵelementEnd();
31991
31996
  i0.ɵɵelementStart(3, "div", 6);
31992
- 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);
31993
31998
  i0.ɵɵelementEnd()();
31994
31999
  } if (rf & 2) {
31995
32000
  const ctx_r0 = i0.ɵɵnextContext();
@@ -37132,7 +37137,7 @@ const _c4$7 = a0 => ({ name: "academic-cap", source: a0 });
37132
37137
  const _c5$5 = a0 => ({ name: "information-circle", source: a0 });
37133
37138
  const _c6$2 = a0 => ({ name: "signal", source: a0 });
37134
37139
  const _c7$1 = a0 => ({ name: "wrench-screwdriver", source: a0 });
37135
- const _forTrack0$n = ($index, $item) => $item.name;
37140
+ const _forTrack0$o = ($index, $item) => $item.name;
37136
37141
  function ProductCategoryCardComponent_Conditional_9_Template(rf, ctx) { if (rf & 1) {
37137
37142
  i0.ɵɵelementStart(0, "p", 8);
37138
37143
  i0.ɵɵtext(1);
@@ -37263,7 +37268,7 @@ function ProductCategoryCardComponent_Conditional_16_Template(rf, ctx) { if (rf
37263
37268
  i0.ɵɵelementStart(6, "symphiq-visualization-container", 21);
37264
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)); });
37265
37270
  i0.ɵɵelementStart(7, "div", 22);
37266
- 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);
37267
37272
  i0.ɵɵelementEnd()()()();
37268
37273
  } if (rf & 2) {
37269
37274
  const ctx_r0 = i0.ɵɵnextContext();
@@ -42253,7 +42258,7 @@ const ProfileAnalysisModalComponent_Conditional_0_Conditional_31_Conditional_5_D
42253
42258
  const ProfileAnalysisModalComponent_Conditional_0_Conditional_31_Conditional_6_Defer_2_DepsFn = () => [Promise.resolve().then(function () { return areaChart_component; }).then(m => m.AreaChartComponent)];
42254
42259
  const _c3$8 = a0 => ({ name: "arrow-left", source: a0 });
42255
42260
  const _c4$5 = a0 => ({ name: "chevron-right", source: a0 });
42256
- const _forTrack0$m = ($index, $item) => $item.performanceItemId || $index;
42261
+ const _forTrack0$n = ($index, $item) => $item.performanceItemId || $index;
42257
42262
  const _forTrack1$3 = ($index, $item) => $item.id || $index;
42258
42263
  function ProfileAnalysisModalComponent_Conditional_0_Conditional_10_For_5_Conditional_0_Conditional_0_Template(rf, ctx) { if (rf & 1) {
42259
42264
  const _r4 = i0.ɵɵgetCurrentView();
@@ -42464,7 +42469,7 @@ function ProfileAnalysisModalComponent_Conditional_0_Conditional_21_For_3_Templa
42464
42469
  function ProfileAnalysisModalComponent_Conditional_0_Conditional_21_Template(rf, ctx) { if (rf & 1) {
42465
42470
  i0.ɵɵelementStart(0, "div", 20);
42466
42471
  i0.ɵɵconditionalCreate(1, ProfileAnalysisModalComponent_Conditional_0_Conditional_21_Conditional_1_Template, 2, 2, "p", 52);
42467
- 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);
42468
42473
  i0.ɵɵelementEnd();
42469
42474
  } if (rf & 2) {
42470
42475
  const data_r11 = ctx;
@@ -42544,7 +42549,7 @@ function ProfileAnalysisModalComponent_Conditional_0_Conditional_22_For_3_Templa
42544
42549
  function ProfileAnalysisModalComponent_Conditional_0_Conditional_22_Template(rf, ctx) { if (rf & 1) {
42545
42550
  i0.ɵɵelementStart(0, "div", 20);
42546
42551
  i0.ɵɵconditionalCreate(1, ProfileAnalysisModalComponent_Conditional_0_Conditional_22_Conditional_1_Template, 2, 2, "p", 52);
42547
- 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);
42548
42553
  i0.ɵɵelementEnd();
42549
42554
  } if (rf & 2) {
42550
42555
  const data_r14 = ctx;
@@ -42663,7 +42668,7 @@ function ProfileAnalysisModalComponent_Conditional_0_Conditional_27_Conditional_
42663
42668
  i0.ɵɵelementStart(0, "div", 69)(1, "h3", 70);
42664
42669
  i0.ɵɵtext(2, " Directly Affected Metric ");
42665
42670
  i0.ɵɵelementEnd();
42666
- 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);
42667
42672
  i0.ɵɵelementEnd();
42668
42673
  } if (rf & 2) {
42669
42674
  const data_r32 = i0.ɵɵnextContext(2);
@@ -42697,7 +42702,7 @@ function ProfileAnalysisModalComponent_Conditional_0_Conditional_27_Conditional_
42697
42702
  i0.ɵɵelementStart(0, "div", 69)(1, "h3", 70);
42698
42703
  i0.ɵɵtext(2, " Indirectly Affected Metrics ");
42699
42704
  i0.ɵɵelementEnd();
42700
- 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);
42701
42706
  i0.ɵɵelementEnd();
42702
42707
  } if (rf & 2) {
42703
42708
  const data_r32 = i0.ɵɵnextContext(2);
@@ -42729,7 +42734,7 @@ function ProfileAnalysisModalComponent_Conditional_0_Conditional_27_Conditional_
42729
42734
  i0.ɵɵproperty("metric", metric_r38)("isLightMode", ctx_r1.isLightMode())("animationKey", $index_r39);
42730
42735
  } }
42731
42736
  function ProfileAnalysisModalComponent_Conditional_0_Conditional_27_Conditional_2_Template(rf, ctx) { if (rf & 1) {
42732
- 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);
42733
42738
  } if (rf & 2) {
42734
42739
  const data_r32 = i0.ɵɵnextContext();
42735
42740
  i0.ɵɵrepeater(data_r32.metrics);
@@ -45429,7 +45434,7 @@ const _c0$t = a0 => ({ name: "list-bullet", source: a0 });
45429
45434
  const _c1$d = a0 => ({ name: "arrow-right", source: a0 });
45430
45435
  const _c2$9 = a0 => ({ name: "check-circle", source: a0 });
45431
45436
  const _c3$6 = a0 => ({ name: "exclamation-circle", source: a0 });
45432
- const _forTrack0$l = ($index, $item) => $item.order;
45437
+ const _forTrack0$m = ($index, $item) => $item.order;
45433
45438
  function RecommendationActionStepsModalComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
45434
45439
  i0.ɵɵelementStart(0, "div", 1)(1, "div", 5);
45435
45440
  i0.ɵɵelement(2, "symphiq-icon", 6);
@@ -45583,7 +45588,7 @@ class RecommendationActionStepsModalComponent {
45583
45588
  i0.ɵɵelementStart(0, "div", 0);
45584
45589
  i0.ɵɵconditionalCreate(1, RecommendationActionStepsModalComponent_Conditional_1_Template, 8, 7, "div", 1);
45585
45590
  i0.ɵɵelementStart(2, "div", 2);
45586
- 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);
45587
45592
  i0.ɵɵelementEnd();
45588
45593
  i0.ɵɵconditionalCreate(5, RecommendationActionStepsModalComponent_Conditional_5_Template, 4, 5, "div", 4);
45589
45594
  i0.ɵɵelementEnd();
@@ -46379,7 +46384,7 @@ const _c2$8 = () => [1, 2, 3, 4, 5, 6];
46379
46384
  const _c3$5 = () => [1, 2, 3];
46380
46385
  const _c4$3 = () => [1, 2, 3, 4];
46381
46386
  const _c5$2 = () => [1, 2];
46382
- const _forTrack0$k = ($index, $item) => $item.value;
46387
+ const _forTrack0$l = ($index, $item) => $item.value;
46383
46388
  function SymphiqFunnelAnalysisDashboardComponent_Conditional_13_Template(rf, ctx) { if (rf & 1) {
46384
46389
  i0.ɵɵelement(0, "div", 11);
46385
46390
  } }
@@ -46418,7 +46423,7 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_25_Template(rf, ctx
46418
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()); });
46419
46424
  i0.ɵɵelementStart(4, "select", 48);
46420
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)); });
46421
- 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);
46422
46427
  i0.ɵɵelementEnd()()();
46423
46428
  } if (rf & 2) {
46424
46429
  const ctx_r2 = i0.ɵɵnextContext();
@@ -46498,7 +46503,7 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_46_Template(rf, ctx
46498
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()); });
46499
46504
  i0.ɵɵelementStart(1, "select", 54);
46500
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)); });
46501
- 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);
46502
46507
  i0.ɵɵelementEnd()();
46503
46508
  } if (rf & 2) {
46504
46509
  const ctx_r2 = i0.ɵɵnextContext();
@@ -47244,7 +47249,7 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Te
47244
47249
  i0.ɵɵconditionalCreate(14, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Conditional_14_Template, 2, 0, "div", 122);
47245
47250
  i0.ɵɵelementStart(15, "select", 123);
47246
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)); });
47247
- 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);
47248
47253
  i0.ɵɵelementEnd();
47249
47254
  i0.ɵɵelementStart(18, "button", 124);
47250
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()); });
@@ -47258,7 +47263,7 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_4_Te
47258
47263
  i0.ɵɵtext(23, "Sort");
47259
47264
  i0.ɵɵelementEnd()()()();
47260
47265
  i0.ɵɵelementStart(24, "div", 127)(25, "div", 128);
47261
- 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);
47262
47267
  i0.ɵɵelementEnd()()();
47263
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);
47264
47269
  i0.ɵɵelementEnd()();
@@ -47435,7 +47440,7 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_Te
47435
47440
  i0.ɵɵconditionalCreate(12, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_5_Conditional_12_Template, 2, 0, "div", 122);
47436
47441
  i0.ɵɵelementStart(13, "select", 164);
47437
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)); });
47438
- 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);
47439
47444
  i0.ɵɵelementEnd()()();
47440
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);
47441
47446
  i0.ɵɵelementEnd()();
@@ -47546,7 +47551,7 @@ function SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_6_Te
47546
47551
  i0.ɵɵconditionalCreate(13, SymphiqFunnelAnalysisDashboardComponent_Conditional_51_Conditional_6_Conditional_13_Template, 2, 0, "div", 122);
47547
47552
  i0.ɵɵelementStart(14, "select", 123);
47548
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)); });
47549
- 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);
47550
47555
  i0.ɵɵelementEnd()()();
47551
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);
47552
47557
  i0.ɵɵelementEnd()();
@@ -50112,7 +50117,7 @@ function getTrendClasses(trendPercent, viewMode) {
50112
50117
  }
50113
50118
  }
50114
50119
 
50115
- const _forTrack0$j = ($index, $item) => $item.performanceItemId;
50120
+ const _forTrack0$k = ($index, $item) => $item.performanceItemId;
50116
50121
  function SymphiqFunnelAnalysisPreviewComponent_Conditional_12_Template(rf, ctx) { if (rf & 1) {
50117
50122
  i0.ɵɵelementStart(0, "div", 17)(1, "p", 18);
50118
50123
  i0.ɵɵtext(2);
@@ -50731,7 +50736,7 @@ class SymphiqFunnelAnalysisPreviewComponent {
50731
50736
  i0.ɵɵconditionalCreate(12, SymphiqFunnelAnalysisPreviewComponent_Conditional_12_Template, 3, 7, "div", 9);
50732
50737
  i0.ɵɵconditionalCreate(13, SymphiqFunnelAnalysisPreviewComponent_Conditional_13_Template, 18, 23, "div", 10);
50733
50738
  i0.ɵɵelementStart(14, "div", 11);
50734
- 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);
50735
50740
  i0.ɵɵelementEnd();
50736
50741
  i0.ɵɵconditionalCreate(17, SymphiqFunnelAnalysisPreviewComponent_Conditional_17_Template, 9, 11, "div", 9);
50737
50742
  i0.ɵɵconditionalCreate(18, SymphiqFunnelAnalysisPreviewComponent_Conditional_18_Template, 14, 19, "div", 9);
@@ -50974,7 +50979,7 @@ class SymphiqFunnelAnalysisPreviewComponent {
50974
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"] }] }); })();
50975
50980
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqFunnelAnalysisPreviewComponent, { className: "SymphiqFunnelAnalysisPreviewComponent", filePath: "lib/components/funnel-analysis-preview/symphiq-funnel-analysis-preview.component.ts", lineNumber: 228 }); })();
50976
50981
 
50977
- const _forTrack0$i = ($index, $item) => $item.id;
50982
+ const _forTrack0$j = ($index, $item) => $item.id;
50978
50983
  function SymphiqWelcomeDashboardComponent_For_65_Template(rf, ctx) { if (rf & 1) {
50979
50984
  i0.ɵɵelementStart(0, "div", 31)(1, "div", 36)(2, "div", 37)(3, "span", 38);
50980
50985
  i0.ɵɵtext(4);
@@ -51269,7 +51274,7 @@ class SymphiqWelcomeDashboardComponent {
51269
51274
  i0.ɵɵtext(62, " Your Onboarding Journey ");
51270
51275
  i0.ɵɵelementEnd();
51271
51276
  i0.ɵɵelementStart(63, "div", 30);
51272
- 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);
51273
51278
  i0.ɵɵelementEnd()()();
51274
51279
  i0.ɵɵelementStart(66, "div", 32);
51275
51280
  i0.ɵɵnamespaceSVG();
@@ -51510,212 +51515,981 @@ class SymphiqWelcomeDashboardComponent {
51510
51515
  }] }); })();
51511
51516
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqWelcomeDashboardComponent, { className: "SymphiqWelcomeDashboardComponent", filePath: "lib/components/welcome-dashboard/symphiq-welcome-dashboard.component.ts", lineNumber: 201 }); })();
51512
51517
 
51513
- const _c0$q = ["shopNameInput"];
51514
- function SymphiqCreateAccountDashboardComponent_Conditional_23_Conditional_27_Template(rf, ctx) { if (rf & 1) {
51515
- i0.ɵɵtext(0, " Shopify ");
51516
- } }
51517
- function SymphiqCreateAccountDashboardComponent_Conditional_23_Conditional_28_Template(rf, ctx) { if (rf & 1) {
51518
- 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();
51519
51522
  } if (rf & 2) {
51520
- const ctx_r1 = i0.ɵɵnextContext(2);
51521
- i0.ɵɵtextInterpolate1(" ", ctx_r1.accountData().otherPlatformName || "Other", " ");
51523
+ const ctx_r0 = i0.ɵɵnextContext();
51524
+ i0.ɵɵproperty("ngClass", ctx_r0.notAnsweredBadgeClasses());
51522
51525
  } }
51523
- function SymphiqCreateAccountDashboardComponent_Conditional_23_Template(rf, ctx) { if (rf & 1) {
51524
- const _r1 = i0.ɵɵgetCurrentView();
51525
- i0.ɵɵelementStart(0, "div", 14)(1, "div", 16)(2, "div", 17)(3, "div")(4, "h2", 18);
51526
- i0.ɵɵtext(5, " Account Details ");
51527
- i0.ɵɵelementEnd();
51528
- i0.ɵɵelementStart(6, "p", 1);
51529
- i0.ɵɵtext(7, " Your shop information ");
51530
- i0.ɵɵelementEnd()();
51531
- i0.ɵɵelementStart(8, "button", 19);
51532
- 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()); });
51533
- i0.ɵɵnamespaceSVG();
51534
- i0.ɵɵelementStart(9, "svg", 20);
51535
- i0.ɵɵelement(10, "path", 21);
51536
- i0.ɵɵelementEnd();
51537
- i0.ɵɵtext(11, " Edit ");
51538
- i0.ɵɵelementEnd()();
51539
- i0.ɵɵnamespaceHTML();
51540
- i0.ɵɵelementStart(12, "div", 22)(13, "div")(14, "label", 23);
51541
- i0.ɵɵtext(15, " Shop Name ");
51542
- i0.ɵɵelementEnd();
51543
- i0.ɵɵelementStart(16, "p", 24);
51544
- i0.ɵɵtext(17);
51545
- i0.ɵɵelementEnd()();
51546
- i0.ɵɵelementStart(18, "div")(19, "label", 23);
51547
- i0.ɵɵtext(20, " Shop URL ");
51548
- i0.ɵɵelementEnd();
51549
- i0.ɵɵelementStart(21, "a", 25);
51550
- i0.ɵɵtext(22);
51551
- i0.ɵɵelementEnd()();
51552
- i0.ɵɵelementStart(23, "div")(24, "label", 23);
51553
- i0.ɵɵtext(25, " Shop Platform ");
51554
- i0.ɵɵelementEnd();
51555
- i0.ɵɵelementStart(26, "p", 24);
51556
- i0.ɵɵconditionalCreate(27, SymphiqCreateAccountDashboardComponent_Conditional_23_Conditional_27_Template, 1, 0)(28, SymphiqCreateAccountDashboardComponent_Conditional_23_Conditional_28_Template, 1, 1);
51557
- i0.ɵɵelementEnd()();
51558
- i0.ɵɵelementStart(29, "div")(30, "label", 23);
51559
- 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);
51560
51538
  i0.ɵɵelementEnd();
51561
- i0.ɵɵelementStart(32, "p", 24);
51562
- i0.ɵɵtext(33);
51563
- i0.ɵɵelementEnd()()()()();
51564
51539
  } if (rf & 2) {
51565
- const ctx_r1 = i0.ɵɵnextContext();
51566
- i0.ɵɵproperty("ngClass", ctx_r1.containerClasses());
51567
- i0.ɵɵadvance();
51568
- i0.ɵɵproperty("ngClass", ctx_r1.contentClasses());
51569
- i0.ɵɵadvance(3);
51570
- i0.ɵɵproperty("ngClass", ctx_r1.sectionTitleClasses());
51571
- i0.ɵɵadvance(2);
51572
- i0.ɵɵproperty("ngClass", ctx_r1.sectionDescriptionClasses());
51573
- i0.ɵɵadvance(2);
51574
- i0.ɵɵproperty("ngClass", ctx_r1.editButtonClasses());
51575
- i0.ɵɵadvance(6);
51576
- i0.ɵɵproperty("ngClass", ctx_r1.viewLabelClasses());
51577
- i0.ɵɵadvance(2);
51578
- i0.ɵɵproperty("ngClass", ctx_r1.viewValueClasses());
51579
- i0.ɵɵadvance();
51580
- i0.ɵɵtextInterpolate1(" ", ctx_r1.accountData().shopName, " ");
51581
- i0.ɵɵadvance(2);
51582
- i0.ɵɵproperty("ngClass", ctx_r1.viewLabelClasses());
51583
- i0.ɵɵadvance(2);
51584
- i0.ɵɵproperty("href", ctx_r1.accountData().shopUrl, i0.ɵɵsanitizeUrl)("ngClass", ctx_r1.viewLinkClasses());
51585
- i0.ɵɵadvance();
51586
- i0.ɵɵtextInterpolate1(" ", ctx_r1.accountData().shopUrl, " ");
51587
- i0.ɵɵadvance(2);
51588
- i0.ɵɵproperty("ngClass", ctx_r1.viewLabelClasses());
51589
- i0.ɵɵadvance(2);
51590
- i0.ɵɵproperty("ngClass", ctx_r1.viewValueClasses());
51591
- i0.ɵɵadvance();
51592
- i0.ɵɵconditional(ctx_r1.accountData().shopPlatform === ctx_r1.ShopPlatformEnum.SHOPIFY ? 27 : 28);
51593
- i0.ɵɵadvance(3);
51594
- i0.ɵɵproperty("ngClass", ctx_r1.viewLabelClasses());
51595
- i0.ɵɵadvance(2);
51596
- 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());
51597
51543
  i0.ɵɵadvance();
51598
- i0.ɵɵtextInterpolate1(" ", ctx_r1.accountData().companyName, " ");
51544
+ i0.ɵɵtextInterpolate1(" ", tool_r2, " ");
51599
51545
  } }
51600
- function SymphiqCreateAccountDashboardComponent_Conditional_24_Conditional_15_Template(rf, ctx) { if (rf & 1) {
51601
- i0.ɵɵelementStart(0, "p", 31);
51602
- 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);
51603
51549
  i0.ɵɵelementEnd();
51604
51550
  } if (rf & 2) {
51605
- const ctx_r1 = i0.ɵɵnextContext(2);
51606
- i0.ɵɵproperty("ngClass", ctx_r1.errorClasses());
51551
+ const ctx_r0 = i0.ɵɵnextContext();
51552
+ i0.ɵɵadvance();
51553
+ i0.ɵɵrepeater(ctx_r0.selectedTools());
51607
51554
  } }
51608
- function SymphiqCreateAccountDashboardComponent_Conditional_24_Conditional_25_Template(rf, ctx) { if (rf & 1) {
51609
- i0.ɵɵelementStart(0, "p", 31);
51610
- 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 ");
51611
51558
  i0.ɵɵelementEnd();
51612
51559
  } if (rf & 2) {
51613
- const ctx_r1 = i0.ɵɵnextContext(2);
51614
- i0.ɵɵproperty("ngClass", ctx_r1.errorClasses());
51615
- } }
51616
- function SymphiqCreateAccountDashboardComponent_Conditional_24_Conditional_36_Template(rf, ctx) { if (rf & 1) {
51617
- i0.ɵɵelement(0, "div", 41);
51618
- } }
51619
- function SymphiqCreateAccountDashboardComponent_Conditional_24_Conditional_44_Template(rf, ctx) { if (rf & 1) {
51620
- i0.ɵɵelement(0, "div", 41);
51560
+ const ctx_r0 = i0.ɵɵnextContext();
51561
+ i0.ɵɵproperty("ngClass", ctx_r0.placeholderClasses());
51621
51562
  } }
51622
- function SymphiqCreateAccountDashboardComponent_Conditional_24_Conditional_48_Conditional_6_Template(rf, ctx) { if (rf & 1) {
51623
- i0.ɵɵelementStart(0, "p", 31);
51624
- 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)); });
51625
51956
  i0.ɵɵelementEnd();
51626
- } if (rf & 2) {
51627
- const ctx_r1 = i0.ɵɵnextContext(3);
51628
- i0.ɵɵproperty("ngClass", ctx_r1.errorClasses());
51629
- } }
51630
- function SymphiqCreateAccountDashboardComponent_Conditional_24_Conditional_48_Template(rf, ctx) { if (rf & 1) {
51631
- i0.ɵɵelementStart(0, "div")(1, "label", 28);
51632
- i0.ɵɵtext(2, " Platform Name ");
51633
- i0.ɵɵelementStart(3, "span", 29);
51634
- i0.ɵɵtext(4, "*");
51957
+ i0.ɵɵelementStart(2, "span", 19);
51958
+ i0.ɵɵtext(3);
51635
51959
  i0.ɵɵelementEnd()();
51636
- i0.ɵɵelement(5, "input", 49);
51637
- i0.ɵɵconditionalCreate(6, SymphiqCreateAccountDashboardComponent_Conditional_24_Conditional_48_Conditional_6_Template, 2, 1, "p", 31);
51638
- i0.ɵɵelementEnd();
51639
51960
  } if (rf & 2) {
51640
- const ctx_r1 = i0.ɵɵnextContext(2);
51961
+ const tool_r4 = ctx.$implicit;
51962
+ const ctx_r1 = i0.ɵɵnextContext(3);
51641
51963
  i0.ɵɵadvance();
51642
- i0.ɵɵproperty("ngClass", ctx_r1.labelClasses());
51643
- i0.ɵɵadvance(4);
51644
- i0.ɵɵproperty("ngClass", ctx_r1.inputClasses("otherPlatformName"));
51964
+ i0.ɵɵproperty("checked", ctx_r1.isToolSelected(tool_r4))("ngClass", ctx_r1.checkboxClasses());
51645
51965
  i0.ɵɵadvance();
51646
- i0.ɵɵconditional(ctx_r1.isFieldInvalid("otherPlatformName") ? 6 : -1);
51966
+ i0.ɵɵproperty("ngClass", ctx_r1.checkboxLabelClasses());
51967
+ i0.ɵɵadvance();
51968
+ i0.ɵɵtextInterpolate1(" ", tool_r4, " ");
51647
51969
  } }
51648
- function SymphiqCreateAccountDashboardComponent_Conditional_24_Conditional_60_Template(rf, ctx) { if (rf & 1) {
51649
- i0.ɵɵelementStart(0, "p", 31);
51650
- 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: ");
51651
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()();
51652
51977
  } if (rf & 2) {
51653
51978
  const ctx_r1 = i0.ɵɵnextContext(2);
51654
- 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());
51655
51983
  } }
51656
- function SymphiqCreateAccountDashboardComponent_Conditional_24_Template(rf, ctx) { if (rf & 1) {
51657
- const _r3 = i0.ɵɵgetCurrentView();
51658
- i0.ɵɵelementStart(0, "div", 14)(1, "div", 16)(2, "div", 26)(3, "h2", 18);
51659
- i0.ɵɵtext(4, " Create Account ");
51660
- i0.ɵɵelementEnd();
51661
- i0.ɵɵelementStart(5, "p", 1);
51662
- i0.ɵɵtext(6, " Enter your shop details to get started with Symphiq ");
51663
- i0.ɵɵelementEnd()();
51664
- i0.ɵɵelementStart(7, "form", 27)(8, "div")(9, "label", 28);
51665
- i0.ɵɵtext(10, " Shop Name ");
51666
- i0.ɵɵelementStart(11, "span", 29);
51667
- i0.ɵɵtext(12, "*");
51668
- i0.ɵɵelementEnd()();
51669
- i0.ɵɵelement(13, "input", 30, 0);
51670
- i0.ɵɵconditionalCreate(15, SymphiqCreateAccountDashboardComponent_Conditional_24_Conditional_15_Template, 2, 1, "p", 31);
51671
- i0.ɵɵelementEnd();
51672
- i0.ɵɵelementStart(16, "div")(17, "label", 28);
51673
- i0.ɵɵtext(18, " Shop URL ");
51674
- i0.ɵɵelementStart(19, "span", 29);
51675
- i0.ɵɵtext(20, "*");
51676
- i0.ɵɵelementEnd()();
51677
- i0.ɵɵelementStart(21, "div", 32)(22, "span", 33);
51678
- i0.ɵɵtext(23, " https:// ");
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);
51679
51993
  i0.ɵɵelementEnd();
51680
- i0.ɵɵelement(24, "input", 34);
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: ");
51681
52005
  i0.ɵɵelementEnd();
51682
- i0.ɵɵconditionalCreate(25, SymphiqCreateAccountDashboardComponent_Conditional_24_Conditional_25_Template, 2, 1, "p", 31);
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 ");
51683
52012
  i0.ɵɵelementEnd();
51684
- i0.ɵɵelementStart(26, "div")(27, "label", 35);
51685
- i0.ɵɵtext(28, " Shop Platform ");
51686
- i0.ɵɵelementStart(29, "span", 29);
51687
- i0.ɵɵtext(30, "*");
51688
- i0.ɵɵelementEnd()();
51689
- i0.ɵɵelementStart(31, "div", 36)(32, "label", 37);
51690
- i0.ɵɵelement(33, "input", 38);
51691
- i0.ɵɵelementStart(34, "div", 39)(35, "div", 40);
51692
- i0.ɵɵconditionalCreate(36, SymphiqCreateAccountDashboardComponent_Conditional_24_Conditional_36_Template, 1, 0, "div", 41);
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 ");
52016
+ i0.ɵɵelementEnd()()()();
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 ");
52316
+ i0.ɵɵelementEnd();
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 ");
51693
52399
  i0.ɵɵelementEnd();
51694
- i0.ɵɵelementStart(37, "div", 42)(38, "div", 43);
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);
51695
52469
  i0.ɵɵtext(39, " Shopify ");
51696
52470
  i0.ɵɵelementEnd()()()();
51697
- i0.ɵɵelementStart(40, "label", 37);
51698
- i0.ɵɵelement(41, "input", 38);
51699
- i0.ɵɵelementStart(42, "div", 39)(43, "div", 40);
51700
- i0.ɵɵconditionalCreate(44, SymphiqCreateAccountDashboardComponent_Conditional_24_Conditional_44_Template, 1, 0, "div", 41);
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);
51701
52475
  i0.ɵɵelementEnd();
51702
- i0.ɵɵelementStart(45, "div", 42)(46, "div", 43);
52476
+ i0.ɵɵelementStart(45, "div", 44)(46, "div", 45);
51703
52477
  i0.ɵɵtext(47, " Other ");
51704
52478
  i0.ɵɵelementEnd()()()()()();
51705
52479
  i0.ɵɵconditionalCreate(48, SymphiqCreateAccountDashboardComponent_Conditional_24_Conditional_48_Template, 7, 3, "div");
51706
- i0.ɵɵelementStart(49, "div")(50, "label", 28);
52480
+ i0.ɵɵelementStart(49, "div")(50, "label", 30);
51707
52481
  i0.ɵɵtext(51, " Company Name ");
51708
- i0.ɵɵelementStart(52, "span", 29);
52482
+ i0.ɵɵelementStart(52, "span", 31);
51709
52483
  i0.ɵɵtext(53, "*");
51710
52484
  i0.ɵɵelementEnd()();
51711
- i0.ɵɵelement(54, "input", 44);
51712
- 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);
51713
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()); });
51714
52488
  i0.ɵɵelementEnd();
51715
- i0.ɵɵelementStart(58, "span", 48);
52489
+ i0.ɵɵelementStart(58, "span", 50);
51716
52490
  i0.ɵɵtext(59, " Same as Shop Name ");
51717
52491
  i0.ɵɵelementEnd()()();
51718
- 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);
51719
52493
  i0.ɵɵelementEnd()()()();
51720
52494
  } if (rf & 2) {
51721
52495
  let tmp_18_0;
@@ -51781,67 +52555,299 @@ function SymphiqCreateAccountDashboardComponent_Conditional_24_Template(rf, ctx)
51781
52555
  i0.ɵɵadvance(2);
51782
52556
  i0.ɵɵconditional(ctx_r1.isFieldInvalid("companyName") ? 60 : -1);
51783
52557
  } }
51784
- function SymphiqCreateAccountDashboardComponent_Conditional_25_Conditional_3_Template(rf, ctx) { if (rf & 1) {
51785
- const _r5 = i0.ɵɵgetCurrentView();
51786
- i0.ɵɵelementStart(0, "button", 54);
51787
- 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()); });
51788
52784
  i0.ɵɵtext(1, " Cancel ");
51789
52785
  i0.ɵɵelementEnd();
51790
52786
  } if (rf & 2) {
51791
52787
  const ctx_r1 = i0.ɵɵnextContext(2);
51792
52788
  i0.ɵɵproperty("ngClass", ctx_r1.cancelButtonClasses());
51793
52789
  } }
51794
- 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) {
51795
52794
  i0.ɵɵtext(0, " Updating Account... ");
51796
52795
  } }
51797
- 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) {
51798
52797
  i0.ɵɵtext(0, " Creating Account... ");
51799
52798
  } }
51800
- 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) {
51801
52800
  i0.ɵɵnamespaceSVG();
51802
- i0.ɵɵelementStart(0, "svg", 55);
51803
- i0.ɵɵelement(1, "circle", 56)(2, "path", 57);
52801
+ i0.ɵɵelementStart(0, "svg", 79);
52802
+ i0.ɵɵelement(1, "circle", 80)(2, "path", 81);
51804
52803
  i0.ɵɵelementEnd();
51805
- 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);
51806
52805
  } if (rf & 2) {
51807
52806
  const ctx_r1 = i0.ɵɵnextContext(2);
51808
52807
  i0.ɵɵadvance(3);
51809
- 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);
52809
+ } }
52810
+ function SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_7_Conditional_0_Template(rf, ctx) { if (rf & 1) {
52811
+ i0.ɵɵtext(0, " Save Focus Areas ");
51810
52812
  } }
51811
- function SymphiqCreateAccountDashboardComponent_Conditional_25_Conditional_6_Conditional_0_Template(rf, ctx) { if (rf & 1) {
51812
- i0.ɵɵtext(0, " Edit Account ");
52813
+ function SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_7_Conditional_1_Template(rf, ctx) { if (rf & 1) {
52814
+ i0.ɵɵtext(0, " Save Changes ");
51813
52815
  } }
51814
- function SymphiqCreateAccountDashboardComponent_Conditional_25_Conditional_6_Conditional_1_Template(rf, ctx) { if (rf & 1) {
52816
+ function SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_7_Conditional_2_Template(rf, ctx) { if (rf & 1) {
51815
52817
  i0.ɵɵtext(0, " Create Account ");
51816
52818
  } }
51817
- function SymphiqCreateAccountDashboardComponent_Conditional_25_Conditional_6_Template(rf, ctx) { if (rf & 1) {
51818
- 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);
51819
52821
  i0.ɵɵnamespaceSVG();
51820
- i0.ɵɵelementStart(2, "svg", 58);
51821
- i0.ɵɵelement(3, "path", 59);
52822
+ i0.ɵɵelementStart(3, "svg", 82);
52823
+ i0.ɵɵelement(4, "path", 83);
51822
52824
  i0.ɵɵelementEnd();
51823
52825
  } if (rf & 2) {
51824
52826
  const ctx_r1 = i0.ɵɵnextContext(2);
51825
- 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);
51826
52828
  } }
51827
- function SymphiqCreateAccountDashboardComponent_Conditional_25_Template(rf, ctx) { if (rf & 1) {
51828
- const _r4 = i0.ɵɵgetCurrentView();
51829
- i0.ɵɵelementStart(0, "div", 15)(1, "div", 50)(2, "div", 51);
51830
- i0.ɵɵconditionalCreate(3, SymphiqCreateAccountDashboardComponent_Conditional_25_Conditional_3_Template, 2, 1, "button", 52);
51831
- i0.ɵɵelementStart(4, "button", 53);
51832
- 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()); });
51833
- 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);
51834
52838
  i0.ɵɵelementEnd()()()();
51835
52839
  } if (rf & 2) {
51836
52840
  const ctx_r1 = i0.ɵɵnextContext();
51837
52841
  i0.ɵɵproperty("ngClass", ctx_r1.stickyButtonContainerClasses());
51838
- i0.ɵɵadvance(3);
51839
- 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);
51840
52846
  i0.ɵɵadvance();
51841
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());
51842
52848
  i0.ɵɵproperty("disabled", !ctx_r1.isButtonEnabled())("ngClass", ctx_r1.continueButtonClasses());
51843
52849
  i0.ɵɵadvance();
51844
- i0.ɵɵconditional(ctx_r1.isLoading() ? 5 : 6);
52850
+ i0.ɵɵconditional(ctx_r1.isLoading() ? 6 : 7);
51845
52851
  } }
51846
52852
  var ShopPlatformEnum;
51847
52853
  (function (ShopPlatformEnum) {
@@ -51906,6 +52912,57 @@ class SymphiqCreateAccountDashboardComponent {
51906
52912
  this.originalFormValue = null;
51907
52913
  this.ShopPlatformEnum = ShopPlatformEnum;
51908
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" }] : []));
51909
52966
  this.accountForm = this.fb.group({
51910
52967
  shopName: ['', Validators.required],
51911
52968
  shopUrl: ['', Validators.required],
@@ -51913,13 +52970,17 @@ class SymphiqCreateAccountDashboardComponent {
51913
52970
  otherPlatformName: [''],
51914
52971
  companyName: ['', Validators.required]
51915
52972
  });
52973
+ this.initializeFocusAreasMap();
51916
52974
  effect(() => {
51917
52975
  const data = this.accountData();
51918
- if (data && !this.editMode()) {
52976
+ if (data && !this.editMode() && !this.focusAreasEditMode()) {
51919
52977
  this.accountForm.patchValue(data);
51920
52978
  if (data.shopName === data.companyName) {
51921
52979
  this.sameAsShopName.set(true);
51922
52980
  }
52981
+ if (data.focusAreaDetails) {
52982
+ this.loadFocusAreasFromData(data.focusAreaDetails);
52983
+ }
51923
52984
  }
51924
52985
  });
51925
52986
  this.accountForm.get('shopPlatform')?.valueChanges.subscribe(value => {
@@ -51999,21 +53060,123 @@ class SymphiqCreateAccountDashboardComponent {
51999
53060
  isButtonEnabled() {
52000
53061
  if (this.isLoading())
52001
53062
  return false;
53063
+ if (this.focusAreasEditMode()) {
53064
+ return this.allFocusAreasAnswered();
53065
+ }
52002
53066
  if (!this.isFormValid())
52003
53067
  return false;
53068
+ if (!this.accountData()) {
53069
+ return this.allFocusAreasAnswered();
53070
+ }
52004
53071
  if (this.accountData() && this.editMode()) {
52005
53072
  return this.formChanged();
52006
53073
  }
52007
53074
  return true;
52008
53075
  }
52009
53076
  handleContinue() {
52010
- if (this.accountForm.valid && !this.isLoading()) {
53077
+ if (this.accountForm.valid && this.allFocusAreasAnswered() && !this.isLoading()) {
52011
53078
  this.isLoading.set(true);
52012
- const formData = this.accountForm.value;
53079
+ const formData = {
53080
+ ...this.accountForm.value,
53081
+ focusAreaDetails: this.getFocusAreaDetailsFromMap()
53082
+ };
52013
53083
  this.onCreateAccount.emit(formData);
52014
53084
  this.editMode.set(false);
52015
53085
  }
52016
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
+ }
52017
53180
  isLightMode() {
52018
53181
  return this.viewMode() === ViewModeEnum.LIGHT;
52019
53182
  }
@@ -52169,6 +53332,91 @@ class SymphiqCreateAccountDashboardComponent {
52169
53332
  ? 'bg-gradient-to-r from-blue-600 to-cyan-600 hover:from-blue-700 hover:to-cyan-700 text-white'
52170
53333
  : 'bg-gradient-to-r from-blue-500 to-cyan-500 hover:from-blue-600 hover:to-cyan-600 text-white';
52171
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
+ }
52172
53420
  static { this.ɵfac = function SymphiqCreateAccountDashboardComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SymphiqCreateAccountDashboardComponent)(); }; }
52173
53421
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SymphiqCreateAccountDashboardComponent, selectors: [["symphiq-create-account-dashboard"]], viewQuery: function SymphiqCreateAccountDashboardComponent_Query(rf, ctx) { if (rf & 1) {
52174
53422
  i0.ɵɵviewQuery(_c0$q, 5);
@@ -52177,7 +53425,7 @@ class SymphiqCreateAccountDashboardComponent {
52177
53425
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.shopNameInput = _t.first);
52178
53426
  } }, hostBindings: function SymphiqCreateAccountDashboardComponent_HostBindings(rf, ctx) { if (rf & 1) {
52179
53427
  i0.ɵɵlistener("scroll", function SymphiqCreateAccountDashboardComponent_scroll_HostBindingHandler($event) { return ctx.onScroll($event); }, i0.ɵɵresolveWindow);
52180
- } }, 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) {
52181
53429
  i0.ɵɵelementStart(0, "div", 1)(1, "div");
52182
53430
  i0.ɵɵelement(2, "div", 2);
52183
53431
  i0.ɵɵelementEnd();
@@ -52197,8 +53445,13 @@ class SymphiqCreateAccountDashboardComponent {
52197
53445
  i0.ɵɵelementStart(21, "main", 12)(22, "div", 13);
52198
53446
  i0.ɵɵconditionalCreate(23, SymphiqCreateAccountDashboardComponent_Conditional_23_Template, 34, 18, "div", 14);
52199
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);
52200
53450
  i0.ɵɵelementEnd()();
52201
- 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);
52202
53455
  i0.ɵɵelementEnd()();
52203
53456
  } if (rf & 2) {
52204
53457
  i0.ɵɵproperty("ngClass", ctx.getContainerClasses());
@@ -52228,383 +53481,551 @@ class SymphiqCreateAccountDashboardComponent {
52228
53481
  i0.ɵɵadvance(2);
52229
53482
  i0.ɵɵproperty("viewMode", ctx.viewMode())("currentStepId", ctx.JourneyStepIdEnum.CREATE_ACCOUNT)("showNextStepAction", ctx.showNextStepAction())("forDemo", ctx.forDemo())("maxAccessibleStepId", ctx.maxAccessibleStepId());
52230
53483
  i0.ɵɵadvance(3);
52231
- i0.ɵɵconditional(ctx.accountData() && !ctx.editMode() ? 23 : -1);
53484
+ i0.ɵɵconditional(ctx.accountData() && !ctx.editMode() && !ctx.focusAreasEditMode() ? 23 : -1);
52232
53485
  i0.ɵɵadvance();
52233
53486
  i0.ɵɵconditional(!ctx.accountData() || ctx.editMode() ? 24 : -1);
52234
53487
  i0.ɵɵadvance();
52235
- i0.ɵɵconditional(!ctx.accountData() || ctx.editMode() ? 25 : -1);
52236
- } }, 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 }); }
52237
53496
  }
52238
53497
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SymphiqCreateAccountDashboardComponent, [{
52239
53498
  type: Component,
52240
- args: [{ selector: 'symphiq-create-account-dashboard', standalone: true, imports: [CommonModule, ReactiveFormsModule, JourneyProgressIndicatorComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: `
52241
- <div [ngClass]="getContainerClasses()">
52242
- <!-- Scroll Progress Bar -->
52243
- <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'">
52244
- <div
52245
- [style.width.%]="scrollProgress()"
52246
- [ngClass]="isLightMode() ? 'bg-gradient-to-r from-blue-500 to-cyan-500' : 'bg-gradient-to-r from-blue-400 to-cyan-400'"
52247
- class="h-full transition-all duration-200 ease-out">
52248
- </div>
52249
- </div>
52250
-
52251
- <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>
52252
-
52253
- <div class="relative z-[51]">
52254
- <header [ngClass]="getHeaderClasses()" class="sticky top-0 z-50">
52255
- <!-- Expanded Header -->
52256
- <div
52257
- class="transition-all duration-300 ease-in-out overflow-hidden"
52258
- [class.max-h-0]="headerScrollService.isScrolled()"
52259
- [class.opacity-0]="headerScrollService.isScrolled()"
52260
- [class.max-h-96]="!headerScrollService.isScrolled()"
52261
- [class.opacity-100]="!headerScrollService.isScrolled()">
52262
- <div
52263
- class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8"
52264
- [class.pointer-events-none]="headerScrollService.isScrolled()"
52265
- [class.pointer-events-auto]="!headerScrollService.isScrolled()">
52266
- <div class="flex items-center justify-between">
52267
- <div>
52268
- <h1 [ngClass]="getMainTitleClasses()">
52269
- Create Account
52270
- </h1>
52271
- <p [ngClass]="getSubtitleClasses()">
52272
- Tell us about your shop
52273
- </p>
52274
- </div>
52275
- </div>
52276
- </div>
52277
- </div>
52278
-
52279
- <!-- Condensed Header -->
52280
- <div
52281
- class="transition-all duration-300 ease-in-out overflow-hidden"
52282
- [class.max-h-0]="!headerScrollService.isScrolled()"
52283
- [class.opacity-0]="!headerScrollService.isScrolled()"
52284
- [class.max-h-20]="headerScrollService.isScrolled()"
52285
- [class.opacity-100]="headerScrollService.isScrolled()">
52286
- <div
52287
- class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-3"
52288
- [class.pointer-events-none]="!headerScrollService.isScrolled()"
52289
- [class.pointer-events-auto]="headerScrollService.isScrolled()">
52290
- <div class="flex items-center justify-between">
52291
- <div class="flex-1 min-w-0 mr-4">
52292
- <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'">
52293
- Create Account
52294
- </h1>
52295
- </div>
52296
- </div>
52297
- </div>
52298
- </div>
52299
- </header>
52300
-
52301
- <!-- Journey Progress Indicator -->
52302
- <symphiq-journey-progress-indicator
52303
- [viewMode]="viewMode()"
52304
- [currentStepId]="JourneyStepIdEnum.CREATE_ACCOUNT"
52305
- [showNextStepAction]="showNextStepAction()"
52306
- [forDemo]="forDemo()"
52307
- [maxAccessibleStepId]="maxAccessibleStepId()"
52308
- (stepClick)="stepClick.emit($event)"
52309
- (nextStepClick)="nextStepClick.emit()"
52310
- />
52311
-
52312
- <main class="relative pb-32">
52313
- <div class="max-w-3xl mx-auto px-4 sm:px-6 lg:px-8 py-8">
52314
- <!-- View Mode: Display Account Data -->
52315
- @if (accountData() && !editMode()) {
52316
- <div [ngClass]="containerClasses()" class="rounded-2xl border shadow-lg overflow-hidden">
52317
- <div [ngClass]="contentClasses()" class="px-8 py-8">
52318
- <div class="flex items-start justify-between mb-6">
52319
- <div>
52320
- <h2 [ngClass]="sectionTitleClasses()" class="text-2xl font-bold mb-2">
52321
- Account Details
52322
- </h2>
52323
- <p [ngClass]="sectionDescriptionClasses()">
52324
- Your shop information
52325
- </p>
52326
- </div>
52327
- <button
52328
- type="button"
52329
- (click)="enableEditMode()"
52330
- [ngClass]="editButtonClasses()"
52331
- 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">
52332
- <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
52333
- <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"/>
52334
- </svg>
52335
- Edit
52336
- </button>
52337
- </div>
52338
-
52339
- <div class="space-y-4">
52340
- <div>
52341
- <label [ngClass]="viewLabelClasses()" class="block text-sm font-medium mb-1">
52342
- Shop Name
52343
- </label>
52344
- <p [ngClass]="viewValueClasses()" class="text-base">
52345
- {{ accountData()!.shopName }}
52346
- </p>
52347
- </div>
52348
-
52349
- <div>
52350
- <label [ngClass]="viewLabelClasses()" class="block text-sm font-medium mb-1">
52351
- Shop URL
52352
- </label>
52353
- <a [href]="accountData()!.shopUrl" target="_blank" rel="noopener noreferrer"
52354
- [ngClass]="viewLinkClasses()"
52355
- class="text-base hover:underline">
52356
- {{ accountData()!.shopUrl }}
52357
- </a>
52358
- </div>
52359
-
52360
- <div>
52361
- <label [ngClass]="viewLabelClasses()" class="block text-sm font-medium mb-1">
52362
- Shop Platform
52363
- </label>
52364
- <p [ngClass]="viewValueClasses()" class="text-base">
52365
- @if (accountData()!.shopPlatform === ShopPlatformEnum.SHOPIFY) {
52366
- Shopify
52367
- } @else {
52368
- {{ accountData()!.otherPlatformName || 'Other' }}
52369
- }
52370
- </p>
52371
- </div>
52372
-
52373
- <div>
52374
- <label [ngClass]="viewLabelClasses()" class="block text-sm font-medium mb-1">
52375
- Company Name
52376
- </label>
52377
- <p [ngClass]="viewValueClasses()" class="text-base">
52378
- {{ accountData()!.companyName }}
52379
- </p>
52380
- </div>
52381
- </div>
52382
- </div>
52383
- </div>
52384
- }
52385
-
52386
- <!-- Edit Mode: Form -->
52387
- @if (!accountData() || editMode()) {
52388
- <div [ngClass]="containerClasses()" class="rounded-2xl border shadow-lg overflow-hidden">
52389
- <div [ngClass]="contentClasses()" class="px-8 py-8">
52390
- <div class="mb-6">
52391
- <h2 [ngClass]="sectionTitleClasses()" class="text-2xl font-bold mb-2">
52392
- Create Account
52393
- </h2>
52394
- <p [ngClass]="sectionDescriptionClasses()">
52395
- Enter your shop details to get started with Symphiq
52396
- </p>
52397
- </div>
52398
-
52399
- <form [formGroup]="accountForm" class="space-y-6">
52400
- <!-- Shop Name -->
52401
- <div>
52402
- <label [ngClass]="labelClasses()" class="block text-sm font-semibold mb-2">
52403
- Shop Name <span class="text-red-500">*</span>
52404
- </label>
52405
- <input
52406
- #shopNameInput
52407
- type="text"
52408
- formControlName="shopName"
52409
- [ngClass]="inputClasses('shopName')"
52410
- class="w-full px-4 py-3 rounded-lg border-2 transition-all duration-200 focus:outline-none focus:ring-2"
52411
- placeholder="Enter your shop name"
52412
- />
52413
- @if (isFieldInvalid('shopName')) {
52414
- <p [ngClass]="errorClasses()" class="mt-1 text-sm">
52415
- Shop name is required
52416
- </p>
52417
- }
52418
- </div>
52419
-
52420
- <!-- Shop URL -->
52421
- <div>
52422
- <label [ngClass]="labelClasses()" class="block text-sm font-semibold mb-2">
52423
- Shop URL <span class="text-red-500">*</span>
52424
- </label>
52425
- <div class="flex items-center">
52426
- <span [ngClass]="urlPrefixClasses()" class="px-4 py-3 rounded-l-lg border-2 border-r-0 text-sm font-medium">
52427
- https://
52428
- </span>
52429
- <input
52430
- type="text"
52431
- formControlName="shopUrl"
52432
- [ngClass]="urlInputClasses('shopUrl')"
52433
- class="flex-1 px-4 py-3 rounded-r-lg border-2 transition-all duration-200 focus:outline-none focus:ring-2"
52434
- placeholder="yourshop.com"
52435
- />
52436
- </div>
52437
- @if (isFieldInvalid('shopUrl')) {
52438
- <p [ngClass]="errorClasses()" class="mt-1 text-sm">
52439
- Shop URL is required
52440
- </p>
52441
- }
52442
- </div>
52443
-
52444
- <!-- Shop Platform -->
52445
- <div>
52446
- <label [ngClass]="labelClasses()" class="block text-sm font-semibold mb-3">
52447
- Shop Platform <span class="text-red-500">*</span>
52448
- </label>
52449
- <div class="grid grid-cols-1 sm:grid-cols-2 gap-4">
52450
- <label [ngClass]="radioPlatformClasses(ShopPlatformEnum.SHOPIFY)" class="cursor-pointer">
52451
- <input
52452
- type="radio"
52453
- formControlName="shopPlatform"
52454
- [value]="ShopPlatformEnum.SHOPIFY"
52455
- class="sr-only"
52456
- />
52457
- <div class="flex items-center gap-3 p-4 rounded-lg border-2 transition-all duration-200">
52458
- <div [ngClass]="radioIndicatorClasses(ShopPlatformEnum.SHOPIFY)" class="w-5 h-5 rounded-full border-2 flex items-center justify-center flex-shrink-0">
52459
- @if (accountForm.get('shopPlatform')?.value === ShopPlatformEnum.SHOPIFY) {
52460
- <div class="w-3 h-3 rounded-full bg-current"></div>
52461
- }
52462
- </div>
52463
- <div class="flex-1">
52464
- <div [ngClass]="radioLabelClasses()" class="font-semibold">
52465
- Shopify
52466
- </div>
52467
- </div>
52468
- </div>
52469
- </label>
52470
-
52471
- <label [ngClass]="radioPlatformClasses(ShopPlatformEnum.OTHER)" class="cursor-pointer">
52472
- <input
52473
- type="radio"
52474
- formControlName="shopPlatform"
52475
- [value]="ShopPlatformEnum.OTHER"
52476
- class="sr-only"
52477
- />
52478
- <div class="flex items-center gap-3 p-4 rounded-lg border-2 transition-all duration-200">
52479
- <div [ngClass]="radioIndicatorClasses(ShopPlatformEnum.OTHER)" class="w-5 h-5 rounded-full border-2 flex items-center justify-center flex-shrink-0">
52480
- @if (accountForm.get('shopPlatform')?.value === ShopPlatformEnum.OTHER) {
52481
- <div class="w-3 h-3 rounded-full bg-current"></div>
52482
- }
52483
- </div>
52484
- <div class="flex-1">
52485
- <div [ngClass]="radioLabelClasses()" class="font-semibold">
52486
- Other
52487
- </div>
52488
- </div>
52489
- </div>
52490
- </label>
52491
- </div>
52492
- </div>
52493
-
52494
- <!-- Other Platform Name (Conditional) -->
52495
- @if (accountForm.get('shopPlatform')?.value === ShopPlatformEnum.OTHER) {
52496
- <div>
52497
- <label [ngClass]="labelClasses()" class="block text-sm font-semibold mb-2">
52498
- Platform Name <span class="text-red-500">*</span>
52499
- </label>
52500
- <input
52501
- type="text"
52502
- formControlName="otherPlatformName"
52503
- [ngClass]="inputClasses('otherPlatformName')"
52504
- class="w-full px-4 py-3 rounded-lg border-2 transition-all duration-200 focus:outline-none focus:ring-2"
52505
- placeholder="Enter platform name (e.g., WooCommerce, Magento)"
52506
- />
52507
- @if (isFieldInvalid('otherPlatformName')) {
52508
- <p [ngClass]="errorClasses()" class="mt-1 text-sm">
52509
- Platform name is required
52510
- </p>
52511
- }
52512
- </div>
52513
- }
52514
-
52515
- <!-- Company Name -->
52516
- <div>
52517
- <label [ngClass]="labelClasses()" class="block text-sm font-semibold mb-2">
52518
- Company Name <span class="text-red-500">*</span>
52519
- </label>
52520
- <input
52521
- type="text"
52522
- formControlName="companyName"
52523
- [ngClass]="inputClasses('companyName')"
52524
- [readonly]="sameAsShopName()"
52525
- class="w-full px-4 py-3 rounded-lg border-2 transition-all duration-200 focus:outline-none focus:ring-2"
52526
- [class.cursor-not-allowed]="sameAsShopName()"
52527
- [class.opacity-60]="sameAsShopName()"
52528
- placeholder="Enter company name"
52529
- />
52530
- <div class="mt-2">
52531
- <label class="flex items-center gap-2 cursor-pointer">
52532
- <input
52533
- type="checkbox"
52534
- [checked]="sameAsShopName()"
52535
- (change)="toggleSameAsShopName()"
52536
- [ngClass]="checkboxClasses()"
52537
- class="w-4 h-4 rounded border-2 transition-all duration-200"
52538
- />
52539
- <span [ngClass]="checkboxLabelClasses()" class="text-sm">
52540
- Same as Shop Name
52541
- </span>
52542
- </label>
52543
- </div>
52544
- @if (isFieldInvalid('companyName')) {
52545
- <p [ngClass]="errorClasses()" class="mt-1 text-sm">
52546
- Company name is required
52547
- </p>
52548
- }
52549
- </div>
52550
- </form>
52551
- </div>
52552
- </div>
52553
- }
52554
- </div>
52555
- </main>
52556
-
52557
- <!-- Sticky Continue Button -->
52558
- @if (!accountData() || editMode()) {
52559
- <div [ngClass]="stickyButtonContainerClasses()" class="fixed bottom-0 left-0 right-0 z-50 border-t backdrop-blur-sm">
52560
- <div class="max-w-3xl mx-auto px-4 sm:px-6 lg:px-8 py-4">
52561
- <div class="flex items-center gap-3">
52562
- @if (accountData() && editMode()) {
52563
- <button
52564
- type="button"
52565
- (click)="cancelEditMode()"
52566
- [ngClass]="cancelButtonClasses()"
52567
- 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">
52568
- Cancel
52569
- </button>
52570
- }
52571
- <button
52572
- type="button"
52573
- (click)="handleContinue()"
52574
- [disabled]="!isButtonEnabled()"
52575
- [ngClass]="continueButtonClasses()"
52576
- 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"
52577
- [class.cursor-pointer]="isButtonEnabled()"
52578
- [class.cursor-not-allowed]="!isButtonEnabled()"
52579
- [class.opacity-50]="!isButtonEnabled()"
52580
- [class.hover:scale-105]="isButtonEnabled()">
52581
- @if (isLoading()) {
52582
- <svg class="w-6 h-6 animate-spin" fill="none" viewBox="0 0 24 24">
52583
- <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
52584
- <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>
52585
- </svg>
52586
- @if (accountData() && editMode()) {
52587
- Updating Account...
52588
- } @else {
52589
- Creating Account...
52590
- }
52591
- } @else {
52592
- @if (accountData() && editMode()) {
52593
- Edit Account
52594
- } @else {
52595
- Create Account
52596
- }
52597
- <svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24">
52598
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 7l5 5m0 0l-5 5m5-5H6"/>
52599
- </svg>
52600
- }
52601
- </button>
52602
- </div>
52603
- </div>
52604
- </div>
52605
- }
52606
- </div>
52607
- </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>
52608
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"] }]
52609
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: [{
52610
54031
  type: ViewChild,
@@ -52613,7 +54034,7 @@ class SymphiqCreateAccountDashboardComponent {
52613
54034
  type: HostListener,
52614
54035
  args: ['window:scroll', ['$event']]
52615
54036
  }] }); })();
52616
- (() => { (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 }); })();
52617
54038
 
52618
54039
  class SymphiqConnectGaDashboardComponent {
52619
54040
  constructor() {
@@ -57368,254 +58789,254 @@ class SymphiqBusinessAnalysisDashboardComponent {
57368
58789
  }
57369
58790
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SymphiqBusinessAnalysisDashboardComponent, [{
57370
58791
  type: Component,
57371
- 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: `
57372
- <div [ngClass]="getContainerClasses()">
57373
- <!-- Scroll Progress Bar (fixed at top) -->
57374
- <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'">
57375
- <div
57376
- [style.width.%]="scrollProgress()"
57377
- [ngClass]="isLightMode() ? 'bg-gradient-to-r from-blue-500 to-purple-500' : 'bg-gradient-to-r from-blue-400 to-purple-400'"
57378
- class="h-full transition-all duration-200 ease-out">
57379
- </div>
57380
- </div>
57381
-
57382
- <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>
57383
-
57384
- <div class="relative z-[51]">
57385
- <header [ngClass]="getHeaderClasses()" class="sticky top-0 z-50">
57386
- <!-- Expanded Header (default state) -->
57387
- <div
57388
- class="transition-all duration-300 ease-in-out overflow-hidden"
57389
- [class.max-h-0]="headerScrollService.isScrolled()"
57390
- [class.opacity-0]="headerScrollService.isScrolled()"
57391
- [class.max-h-96]="!headerScrollService.isScrolled()"
57392
- [class.opacity-100]="!headerScrollService.isScrolled()">
57393
- <div
57394
- class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8"
57395
- [class.pointer-events-none]="headerScrollService.isScrolled()"
57396
- [class.pointer-events-auto]="!headerScrollService.isScrolled()">
57397
- <div class="flex items-center justify-between">
57398
- <div>
57399
- <h1 [ngClass]="getMainTitleClasses()">
57400
- {{ currentProfile()?.profileStructured?.businessName || 'Business Analysis' }}
57401
- </h1>
57402
- <p [ngClass]="getSubtitleClasses()">
57403
- Business Profile & Analysis
57404
- </p>
57405
- </div>
57406
- @if (profile()?.selfContentStatus === AiDynamicContentStatusEnum.GENERATED) {
57407
- <div class="flex items-center gap-2">
57408
- <symphiq-search-button
57409
- [isLightMode]="isLightMode()"
57410
- (searchClick)="openSearch()"
57411
- />
57412
- <button
57413
- type="button"
57414
- (click)="openViewModeSwitcher()"
57415
- [ngClass]="getViewModeButtonClasses()"
57416
- 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">
57417
- <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
57418
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
57419
- <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>
57420
- </svg>
57421
- <span>{{ displayModeLabel() }}</span>
57422
- </button>
57423
- </div>
57424
- }
57425
- </div>
57426
- </div>
57427
- </div>
57428
-
57429
- <!-- Condensed Header (scrolled state) -->
57430
- <div
57431
- class="transition-all duration-300 ease-in-out overflow-hidden"
57432
- [class.max-h-0]="!headerScrollService.isScrolled()"
57433
- [class.opacity-0]="!headerScrollService.isScrolled()"
57434
- [class.max-h-20]="headerScrollService.isScrolled()"
57435
- [class.opacity-100]="headerScrollService.isScrolled()">
57436
- <div
57437
- class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-3"
57438
- [class.pointer-events-none]="!headerScrollService.isScrolled()"
57439
- [class.pointer-events-auto]="headerScrollService.isScrolled()">
57440
- <div class="flex items-center justify-between">
57441
- <div class="flex-1 min-w-0 mr-4">
57442
- <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'">
57443
- {{ currentProfile()?.profileStructured?.businessName || 'Business Analysis' }}
57444
- </h1>
57445
- </div>
57446
- <div class="flex items-center gap-4">
57447
- @if (!isSimplifiedView()) {
57448
- <div class="flex items-center gap-2 text-sm flex-shrink-0">
57449
- <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()">
57450
- {{ currentSectionTitle() }}
57451
- </span>
57452
- @if (currentSubsectionTitle()) {
57453
- <span [ngClass]="isLightMode() ? 'text-slate-400' : 'text-slate-500'" class="transition-opacity duration-300" [class.opacity-0]="subsectionTitleFading()" [class.opacity-100]="!subsectionTitleFading()">›</span>
57454
- <span [ngClass]="isLightMode() ? 'text-slate-500' : 'text-slate-500'" class="transition-opacity duration-300" [class.opacity-0]="subsectionTitleFading()" [class.opacity-100]="!subsectionTitleFading()">
57455
- {{ currentSubsectionTitle() }}
57456
- </span>
57457
- }
57458
- </div>
57459
- }
57460
- @if (profile()?.selfContentStatus === AiDynamicContentStatusEnum.GENERATED) {
57461
- <symphiq-search-button
57462
- [isLightMode]="isLightMode()"
57463
- [minimized]="true"
57464
- (searchClick)="openSearch()"
57465
- />
57466
- <button
57467
- type="button"
57468
- (click)="openViewModeSwitcher()"
57469
- [ngClass]="getViewModeButtonClasses()"
57470
- 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">
57471
- <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
57472
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path>
57473
- <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>
57474
- </svg>
57475
- </button>
57476
- }
57477
- </div>
57478
- </div>
57479
- </div>
57480
- </div>
57481
- </header>
57482
-
57483
- <main class="relative">
57484
- @if (isContentGenerating()) {
57485
- <!-- Journey Progress Banner (always show when not onboarded) -->
57486
- @if (!isOnboarded()) {
57487
- <symphiq-journey-progress-indicator
57488
- [viewMode]="viewMode()"
57489
- [currentStepId]="JourneyStepIdEnum.BUSINESS_ANALYSIS"
57490
- [showNextStepAction]="false"
57491
- [forDemo]="forDemo()"
57492
- [maxAccessibleStepId]="maxAccessibleStepId()"
57493
- (stepClick)="stepClick.emit($event)"
57494
- (nextStepClick)="nextStepClick.emit()"
57495
- />
57496
- }
57497
-
57498
- <!-- Content Generation Progress Component -->
57499
- <symphiq-content-generation-progress
57500
- [viewMode]="viewMode()"
57501
- [title]="'We are generating a new Business Analysis for ' + (currentProfile()?.profileStructured?.businessName || 'your business') + '.'"
57502
- [subtitle]="'It will appear here when ready. You can check back later as this will take a few minutes to complete.'"
57503
- />
57504
- } @else {
57505
- @if (isSimplifiedView()) {
57506
- <!-- Journey Progress Banner - Full Width Sticky (only show when not onboarded) -->
57507
- @if (!isOnboarded()) {
57508
- <symphiq-journey-progress-indicator
57509
- [viewMode]="viewMode()"
57510
- [currentStepId]="JourneyStepIdEnum.BUSINESS_ANALYSIS"
57511
- [showNextStepAction]="showNextStepAction()"
57512
- [forDemo]="forDemo()"
57513
- [maxAccessibleStepId]="maxAccessibleStepId()"
57514
- (stepClick)="stepClick.emit($event)"
57515
- (nextStepClick)="nextStepClick.emit()"
57516
- />
57517
- }
57518
-
57519
- <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8">
57520
- <div class="mb-8">
57521
- <symphiq-welcome-banner
57522
- [viewMode]="viewMode()"
57523
- [businessName]="currentProfile()?.profileStructured?.businessName || 'your business'"
57524
- [isOnboarded]="isOnboarded()"
57525
- />
57526
- </div>
57527
-
57528
- <div class="mb-8">
57529
- <symphiq-recommendations-tiled-grid
57530
- [recommendations]="recommendationItems()"
57531
- [viewMode]="viewMode()"
57532
- (viewMoreClick)="openRecommendationDetailsModal($event)"
57533
- />
57534
- </div>
57535
-
57536
- <div>
57537
- <symphiq-collapsible-section-group
57538
- [sections]="nonRecommendationSections()"
57539
- [viewMode]="viewMode()"
57540
- />
57541
- </div>
57542
- </div>
57543
- } @else {
57544
- @for (section of sections(); track trackBySectionId($index, section); let idx = $index; let last = $last) {
57545
- <symphiq-profile-section
57546
- [section]="section"
57547
- [viewMode]="viewMode()"
57548
- [forceExpanded]="!isCompactView()"
57549
- />
57550
- @if (!last) {
57551
- <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
57552
- <symphiq-section-divider
57553
- [viewMode]="viewMode()"
57554
- [subsections]="sections()[idx + 1].subsections || []" />
57555
- </div>
57556
- }
57557
- }
57558
- }
57559
- }
57560
- </main>
57561
-
57562
- @if (!isSimplifiedView()) {
57563
- <symphiq-section-navigation
57564
- [sections]="sections()"
57565
- [viewMode]="viewMode()"
57566
- [embedded]="embedded()"
57567
- [scrollElement]="scrollElement() ?? undefined"
57568
- />
57569
- }
57570
-
57571
- @if (!isSimplifiedView()) {
57572
- <symphiq-floating-toc
57573
- [sections]="sections()"
57574
- [viewMode]="viewMode()"
57575
- [embedded]="embedded()"
57576
- [scrollElement]="scrollElement() ?? undefined"
57577
- />
57578
- }
57579
-
57580
- <symphiq-floating-back-button
57581
- [viewMode]="viewMode()"
57582
- [embedded]="embedded()"
57583
- />
57584
- </div>
57585
-
57586
- @if (isLoading()) {
57587
- <div [ngClass]="getLoadingOverlayClasses()">
57588
- <div [ngClass]="getSpinnerClasses()"></div>
57589
- </div>
57590
- }
57591
-
57592
- <symphiq-tooltip-container />
57593
- <symphiq-business-analysis-modal
57594
- [isLightMode]="isLightMode()"
57595
- (viewInContextRequested)="handleViewInContext($event)" />
57596
-
57597
- <symphiq-search-modal
57598
- [isLightMode]="isLightMode()"
57599
- [isOpen]="searchService.isSearchOpen()"
57600
- [searchQuery]="searchService.getSearchQuery()"
57601
- [results]="searchService.searchResults()"
57602
- [hasResults]="searchService.hasResults()"
57603
- [selectedIndex]="selectedSearchIndex()"
57604
- [placeholder]="'Search sections, items, and analysis...'"
57605
- (searchChange)="onSearchChange($event)"
57606
- (resultSelected)="onSearchResultSelected($event)"
57607
- (close)="closeSearch()"
57608
- />
57609
-
57610
- <symphiq-view-mode-switcher-modal
57611
- [isOpen]="isViewModeSwitcherOpen()"
57612
- [currentMode]="displayMode()"
57613
- [viewMode]="viewMode()"
57614
- [isLoading]="isViewModeSwitching()"
57615
- (close)="closeViewModeSwitcher()"
57616
- (modeSelected)="handleDisplayModeChange($event)"
57617
- />
57618
- </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>
57619
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"] }]
57620
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: [{
57621
59042
  type: HostListener,
@@ -103384,5 +104805,5 @@ const PROFILE_ANALYSIS_METRIC_SCREEN_PAGE_VIEWS = ({
103384
104805
  * Generated bundle index. Do not edit.
103385
104806
  */
103386
104807
 
103387
- 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 };
103388
104809
  //# sourceMappingURL=symphiq-components.mjs.map