@eric-emg/symphiq-components 1.2.377 → 1.2.381

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.
@@ -88523,8 +88523,8 @@ const _c1$2 = ["stickySentinel"];
88523
88523
  const _c2$1 = ["stickyHeader"];
88524
88524
  const _c3$1 = ["questionTitle"];
88525
88525
  const _forTrack0$2 = ($index, $item) => $item.tempId;
88526
- function ShopProfileQuestionAnswerComponent_Conditional_16_Template(rf, ctx) { if (rf & 1) {
88527
- i0.ɵɵelementStart(0, "div", 15);
88526
+ function ShopProfileQuestionAnswerComponent_Conditional_18_Template(rf, ctx) { if (rf & 1) {
88527
+ i0.ɵɵelementStart(0, "div", 16);
88528
88528
  i0.ɵɵtext(1);
88529
88529
  i0.ɵɵelementEnd();
88530
88530
  } if (rf & 2) {
@@ -88533,41 +88533,73 @@ function ShopProfileQuestionAnswerComponent_Conditional_16_Template(rf, ctx) { i
88533
88533
  i0.ɵɵadvance();
88534
88534
  i0.ɵɵtextInterpolate1(" Shop > ", ctx_r1.breadcrumbPath(), " ");
88535
88535
  } }
88536
- function ShopProfileQuestionAnswerComponent_Conditional_21_Template(rf, ctx) { if (rf & 1) {
88537
- i0.ɵɵelementStart(0, "p", 18);
88538
- i0.ɵɵtext(1);
88536
+ function ShopProfileQuestionAnswerComponent_Conditional_19_Template(rf, ctx) { if (rf & 1) {
88537
+ i0.ɵɵelementStart(0, "div", 17);
88538
+ i0.ɵɵelement(1, "div", 27)(2, "div", 28);
88539
+ i0.ɵɵelementEnd();
88540
+ } if (rf & 2) {
88541
+ const ctx_r1 = i0.ɵɵnextContext();
88542
+ i0.ɵɵadvance();
88543
+ i0.ɵɵproperty("ngClass", ctx_r1.skeletonClasses());
88544
+ i0.ɵɵadvance();
88545
+ i0.ɵɵproperty("ngClass", ctx_r1.skeletonClasses());
88546
+ } }
88547
+ function ShopProfileQuestionAnswerComponent_Conditional_20_Template(rf, ctx) { if (rf & 1) {
88548
+ i0.ɵɵelementStart(0, "h2", 18, 3);
88549
+ i0.ɵɵtext(2);
88550
+ i0.ɵɵelementEnd();
88551
+ } if (rf & 2) {
88552
+ const ctx_r1 = i0.ɵɵnextContext();
88553
+ i0.ɵɵproperty("ngClass", ctx_r1.questionTextClasses());
88554
+ i0.ɵɵadvance(2);
88555
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.question().question, " ");
88556
+ } }
88557
+ function ShopProfileQuestionAnswerComponent_Conditional_22_Template(rf, ctx) { if (rf & 1) {
88558
+ i0.ɵɵelementStart(0, "div", 20);
88559
+ i0.ɵɵelement(1, "div", 29)(2, "div", 30);
88539
88560
  i0.ɵɵelementEnd();
88540
88561
  } if (rf & 2) {
88541
88562
  const ctx_r1 = i0.ɵɵnextContext();
88563
+ i0.ɵɵadvance();
88564
+ i0.ɵɵproperty("ngClass", ctx_r1.skeletonClasses());
88565
+ i0.ɵɵadvance();
88566
+ i0.ɵɵproperty("ngClass", ctx_r1.skeletonClasses());
88567
+ } }
88568
+ function ShopProfileQuestionAnswerComponent_Conditional_23_Conditional_0_Template(rf, ctx) { if (rf & 1) {
88569
+ i0.ɵɵelementStart(0, "p", 31);
88570
+ i0.ɵɵtext(1);
88571
+ i0.ɵɵelementEnd();
88572
+ } if (rf & 2) {
88573
+ const ctx_r1 = i0.ɵɵnextContext(2);
88542
88574
  i0.ɵɵproperty("ngClass", ctx_r1.contextTextClasses());
88543
88575
  i0.ɵɵadvance();
88544
88576
  i0.ɵɵtextInterpolate1(" ", ctx_r1.question().context, " ");
88545
88577
  } }
88546
- function ShopProfileQuestionAnswerComponent_Conditional_22_For_8_Template(rf, ctx) { if (rf & 1) {
88547
- i0.ɵɵelementStart(0, "span", 43);
88578
+ function ShopProfileQuestionAnswerComponent_Conditional_23_Conditional_1_For_8_Template(rf, ctx) { if (rf & 1) {
88579
+ i0.ɵɵelementStart(0, "span", 38);
88548
88580
  i0.ɵɵtext(1);
88549
88581
  i0.ɵɵelementEnd();
88550
88582
  } if (rf & 2) {
88551
88583
  const focusArea_r3 = ctx.$implicit;
88552
- const ctx_r1 = i0.ɵɵnextContext(2);
88584
+ const ctx_r1 = i0.ɵɵnextContext(3);
88553
88585
  i0.ɵɵproperty("ngClass", ctx_r1.focusAreaChipClasses());
88554
88586
  i0.ɵɵadvance();
88555
88587
  i0.ɵɵtextInterpolate1(" ", ctx_r1.getFocusAreaTitle(focusArea_r3), " ");
88556
88588
  } }
88557
- function ShopProfileQuestionAnswerComponent_Conditional_22_Template(rf, ctx) { if (rf & 1) {
88558
- i0.ɵɵelementStart(0, "div", 19)(1, "div", 38)(2, "span", 39);
88589
+ function ShopProfileQuestionAnswerComponent_Conditional_23_Conditional_1_Template(rf, ctx) { if (rf & 1) {
88590
+ i0.ɵɵelementStart(0, "div", 32)(1, "div", 33)(2, "span", 34);
88559
88591
  i0.ɵɵtext(3);
88560
88592
  i0.ɵɵelementEnd();
88561
88593
  i0.ɵɵnamespaceSVG();
88562
- i0.ɵɵelementStart(4, "svg", 40);
88563
- i0.ɵɵelement(5, "path", 41);
88594
+ i0.ɵɵelementStart(4, "svg", 35);
88595
+ i0.ɵɵelement(5, "path", 36);
88564
88596
  i0.ɵɵelementEnd()();
88565
88597
  i0.ɵɵnamespaceHTML();
88566
- i0.ɵɵelementStart(6, "div", 42);
88567
- i0.ɵɵrepeaterCreate(7, ShopProfileQuestionAnswerComponent_Conditional_22_For_8_Template, 2, 2, "span", 43, i0.ɵɵrepeaterTrackByIdentity);
88598
+ i0.ɵɵelementStart(6, "div", 37);
88599
+ i0.ɵɵrepeaterCreate(7, ShopProfileQuestionAnswerComponent_Conditional_23_Conditional_1_For_8_Template, 2, 2, "span", 38, i0.ɵɵrepeaterTrackByIdentity);
88568
88600
  i0.ɵɵelementEnd()();
88569
88601
  } if (rf & 2) {
88570
- const ctx_r1 = i0.ɵɵnextContext();
88602
+ const ctx_r1 = i0.ɵɵnextContext(2);
88571
88603
  i0.ɵɵadvance(2);
88572
88604
  i0.ɵɵproperty("ngClass", ctx_r1.relatedLabelClasses());
88573
88605
  i0.ɵɵadvance();
@@ -88577,35 +88609,125 @@ function ShopProfileQuestionAnswerComponent_Conditional_22_Template(rf, ctx) { i
88577
88609
  i0.ɵɵadvance(3);
88578
88610
  i0.ɵɵrepeater(ctx_r1.relatedFocusAreas());
88579
88611
  } }
88580
- function ShopProfileQuestionAnswerComponent_For_26_Template(rf, ctx) { if (rf & 1) {
88581
- const _r4 = i0.ɵɵgetCurrentView();
88582
- i0.ɵɵelementStart(0, "label", 22)(1, "input", 44);
88583
- i0.ɵɵlistener("change", function ShopProfileQuestionAnswerComponent_For_26_Template_input_change_1_listener() { const option_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleAnswer(option_r5.text)); });
88612
+ function ShopProfileQuestionAnswerComponent_Conditional_23_Template(rf, ctx) { if (rf & 1) {
88613
+ i0.ɵɵconditionalCreate(0, ShopProfileQuestionAnswerComponent_Conditional_23_Conditional_0_Template, 2, 2, "p", 31);
88614
+ i0.ɵɵconditionalCreate(1, ShopProfileQuestionAnswerComponent_Conditional_23_Conditional_1_Template, 9, 3, "div", 32);
88615
+ } if (rf & 2) {
88616
+ const ctx_r1 = i0.ɵɵnextContext();
88617
+ i0.ɵɵconditional(ctx_r1.question().context ? 0 : -1);
88618
+ i0.ɵɵadvance();
88619
+ i0.ɵɵconditional(ctx_r1.relatedFocusAreas().length > 0 ? 1 : -1);
88620
+ } }
88621
+ function ShopProfileQuestionAnswerComponent_Conditional_25_Template(rf, ctx) { if (rf & 1) {
88622
+ i0.ɵɵelementStart(0, "div", 22);
88623
+ i0.ɵɵelement(1, "symphiq-indeterminate-spinner", 39);
88624
+ i0.ɵɵelementStart(2, "p", 40);
88625
+ i0.ɵɵtext(3, "Saving your answer...");
88626
+ i0.ɵɵelementEnd()();
88627
+ } if (rf & 2) {
88628
+ const ctx_r1 = i0.ɵɵnextContext();
88629
+ i0.ɵɵadvance();
88630
+ i0.ɵɵproperty("viewMode", ctx_r1.viewMode());
88631
+ i0.ɵɵadvance();
88632
+ i0.ɵɵproperty("ngClass", ctx_r1.savingTextClasses());
88633
+ } }
88634
+ function ShopProfileQuestionAnswerComponent_Conditional_26_For_2_Template(rf, ctx) { if (rf & 1) {
88635
+ const _r5 = i0.ɵɵgetCurrentView();
88636
+ i0.ɵɵelementStart(0, "label", 42)(1, "input", 52);
88637
+ i0.ɵɵlistener("change", function ShopProfileQuestionAnswerComponent_Conditional_26_For_2_Template_input_change_1_listener() { const option_r6 = i0.ɵɵrestoreView(_r5).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.toggleAnswer(option_r6.text)); });
88584
88638
  i0.ɵɵelementEnd();
88585
- i0.ɵɵelementStart(2, "span", 45);
88639
+ i0.ɵɵelementStart(2, "span", 53);
88586
88640
  i0.ɵɵtext(3);
88587
88641
  i0.ɵɵelementEnd()();
88588
88642
  } if (rf & 2) {
88589
- const option_r5 = ctx.$implicit;
88590
- const ctx_r1 = i0.ɵɵnextContext();
88643
+ const option_r6 = ctx.$implicit;
88644
+ const ctx_r1 = i0.ɵɵnextContext(2);
88591
88645
  i0.ɵɵproperty("ngClass", ctx_r1.checkboxRowClasses());
88592
88646
  i0.ɵɵadvance();
88593
- i0.ɵɵproperty("checked", option_r5.isSelected)("ngClass", ctx_r1.checkboxClasses());
88647
+ i0.ɵɵproperty("checked", option_r6.isSelected)("ngClass", ctx_r1.checkboxClasses());
88594
88648
  i0.ɵɵadvance();
88595
88649
  i0.ɵɵproperty("ngClass", ctx_r1.checkboxLabelClasses());
88596
88650
  i0.ɵɵadvance();
88597
- i0.ɵɵtextInterpolate1(" ", option_r5.text, " ");
88651
+ i0.ɵɵtextInterpolate1(" ", option_r6.text, " ");
88598
88652
  } }
88599
- function ShopProfileQuestionAnswerComponent_Conditional_37_Template(rf, ctx) { if (rf & 1) {
88600
- const _r6 = i0.ɵɵgetCurrentView();
88601
- i0.ɵɵelementStart(0, "button", 46);
88602
- i0.ɵɵlistener("click", function ShopProfileQuestionAnswerComponent_Conditional_37_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleAddOtherAnswers()); });
88653
+ function ShopProfileQuestionAnswerComponent_Conditional_26_Conditional_13_Template(rf, ctx) { if (rf & 1) {
88654
+ const _r7 = i0.ɵɵgetCurrentView();
88655
+ i0.ɵɵelementStart(0, "button", 54);
88656
+ i0.ɵɵlistener("click", function ShopProfileQuestionAnswerComponent_Conditional_26_Conditional_13_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.toggleAddOtherAnswers()); });
88603
88657
  i0.ɵɵtext(1, " Add other answers ");
88604
88658
  i0.ɵɵelementEnd();
88605
88659
  } if (rf & 2) {
88606
- const ctx_r1 = i0.ɵɵnextContext();
88660
+ const ctx_r1 = i0.ɵɵnextContext(2);
88607
88661
  i0.ɵɵproperty("ngClass", ctx_r1.addOtherAnswersButtonClasses());
88608
88662
  } }
88663
+ function ShopProfileQuestionAnswerComponent_Conditional_26_Template(rf, ctx) { if (rf & 1) {
88664
+ const _r4 = i0.ɵɵgetCurrentView();
88665
+ i0.ɵɵelementStart(0, "div", 41);
88666
+ i0.ɵɵrepeaterCreate(1, ShopProfileQuestionAnswerComponent_Conditional_26_For_2_Template, 4, 5, "label", 42, _forTrack0$2);
88667
+ i0.ɵɵelementEnd();
88668
+ i0.ɵɵelementStart(3, "div", 43)(4, "div", 44)(5, "div", 45)(6, "div", 46)(7, "textarea", 47);
88669
+ i0.ɵɵtwoWayListener("ngModelChange", function ShopProfileQuestionAnswerComponent_Conditional_26_Template_textarea_ngModelChange_7_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.customAnswerText, $event) || (ctx_r1.customAnswerText = $event); return i0.ɵɵresetView($event); });
88670
+ i0.ɵɵelementEnd();
88671
+ i0.ɵɵelementStart(8, "div", 48)(9, "button", 49);
88672
+ i0.ɵɵlistener("click", function ShopProfileQuestionAnswerComponent_Conditional_26_Template_button_click_9_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.cancelCustomAnswers()); });
88673
+ i0.ɵɵtext(10, " Cancel ");
88674
+ i0.ɵɵelementEnd();
88675
+ i0.ɵɵelementStart(11, "button", 50);
88676
+ i0.ɵɵlistener("click", function ShopProfileQuestionAnswerComponent_Conditional_26_Template_button_click_11_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.addCustomAnswers()); });
88677
+ i0.ɵɵtext(12, " Add ");
88678
+ i0.ɵɵelementEnd()()()()();
88679
+ i0.ɵɵconditionalCreate(13, ShopProfileQuestionAnswerComponent_Conditional_26_Conditional_13_Template, 2, 1, "button", 51);
88680
+ i0.ɵɵelementEnd();
88681
+ } if (rf & 2) {
88682
+ const ctx_r1 = i0.ɵɵnextContext();
88683
+ i0.ɵɵadvance();
88684
+ i0.ɵɵrepeater(ctx_r1.answerOptions());
88685
+ i0.ɵɵadvance(3);
88686
+ i0.ɵɵstyleProp("grid-template-rows", ctx_r1.addOtherAnswersExpanded() ? "1fr" : "0fr");
88687
+ i0.ɵɵadvance(3);
88688
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r1.customAnswerText);
88689
+ i0.ɵɵproperty("ngClass", ctx_r1.textareaClasses());
88690
+ i0.ɵɵadvance(2);
88691
+ i0.ɵɵproperty("ngClass", ctx_r1.cancelButtonClasses());
88692
+ i0.ɵɵadvance(2);
88693
+ i0.ɵɵproperty("disabled", !ctx_r1.canAddCustomAnswers())("ngClass", ctx_r1.addButtonClasses());
88694
+ i0.ɵɵadvance(2);
88695
+ i0.ɵɵconditional(!ctx_r1.addOtherAnswersExpanded() ? 13 : -1);
88696
+ } }
88697
+ function ShopProfileQuestionAnswerComponent_Conditional_30_Template(rf, ctx) { if (rf & 1) {
88698
+ i0.ɵɵnamespaceSVG();
88699
+ i0.ɵɵelementStart(0, "svg", 55);
88700
+ i0.ɵɵelement(1, "circle", 56)(2, "path", 57);
88701
+ i0.ɵɵelementEnd();
88702
+ i0.ɵɵnamespaceHTML();
88703
+ i0.ɵɵelementStart(3, "span");
88704
+ i0.ɵɵtext(4, "Saving...");
88705
+ i0.ɵɵelementEnd();
88706
+ } }
88707
+ function ShopProfileQuestionAnswerComponent_Conditional_31_Template(rf, ctx) { if (rf & 1) {
88708
+ i0.ɵɵelementStart(0, "span");
88709
+ i0.ɵɵtext(1, "Save");
88710
+ i0.ɵɵelementEnd();
88711
+ } }
88712
+ function ShopProfileQuestionAnswerComponent_Conditional_33_Template(rf, ctx) { if (rf & 1) {
88713
+ i0.ɵɵnamespaceSVG();
88714
+ i0.ɵɵelementStart(0, "svg", 55);
88715
+ i0.ɵɵelement(1, "circle", 56)(2, "path", 57);
88716
+ i0.ɵɵelementEnd();
88717
+ i0.ɵɵnamespaceHTML();
88718
+ i0.ɵɵelementStart(3, "span");
88719
+ i0.ɵɵtext(4, "Saving...");
88720
+ i0.ɵɵelementEnd();
88721
+ } }
88722
+ function ShopProfileQuestionAnswerComponent_Conditional_34_Template(rf, ctx) { if (rf & 1) {
88723
+ i0.ɵɵelementStart(0, "span");
88724
+ i0.ɵɵtext(1, "Save & next unanswered");
88725
+ i0.ɵɵelementEnd();
88726
+ i0.ɵɵnamespaceSVG();
88727
+ i0.ɵɵelementStart(2, "svg", 58);
88728
+ i0.ɵɵelement(3, "path", 59);
88729
+ i0.ɵɵelementEnd();
88730
+ } }
88609
88731
  class ShopProfileQuestionAnswerComponent {
88610
88732
  constructor() {
88611
88733
  this.question = input.required(...(ngDevMode ? [{ debugName: "question" }] : []));
@@ -88618,11 +88740,18 @@ class ShopProfileQuestionAnswerComponent {
88618
88740
  this.backClick = output();
88619
88741
  this.saveClick = output();
88620
88742
  this.saveAndNextClick = output();
88743
+ this.navigateToList = output();
88744
+ this.navigateToNextQuestion = output();
88621
88745
  this.ngZone = inject(NgZone);
88622
88746
  this.isSticky = false;
88623
88747
  this.selectedAnswerTexts = signal([], ...(ngDevMode ? [{ debugName: "selectedAnswerTexts" }] : []));
88624
88748
  this.addOtherAnswersExpanded = signal(false, ...(ngDevMode ? [{ debugName: "addOtherAnswersExpanded" }] : []));
88625
88749
  this.customAnswerText = signal('', ...(ngDevMode ? [{ debugName: "customAnswerText" }] : []));
88750
+ this.isSaving = signal(false, ...(ngDevMode ? [{ debugName: "isSaving" }] : []));
88751
+ this.pendingSaveAction = signal(null, ...(ngDevMode ? [{ debugName: "pendingSaveAction" }] : []));
88752
+ this.pendingQuestionId = signal(null, ...(ngDevMode ? [{ debugName: "pendingQuestionId" }] : []));
88753
+ this.isCountAnimating = signal(false, ...(ngDevMode ? [{ debugName: "isCountAnimating" }] : []));
88754
+ this.previousAnsweredCount = signal(null, ...(ngDevMode ? [{ debugName: "previousAnsweredCount" }] : []));
88626
88755
  this.answerOptions = computed(() => {
88627
88756
  const q = this.question();
88628
88757
  const potentialAnswers = q.potentialAnswers || [];
@@ -88662,10 +88791,12 @@ class ShopProfileQuestionAnswerComponent {
88662
88791
  }
88663
88792
  }, ...(ngDevMode ? [{ debugName: "breadcrumbPath" }] : []));
88664
88793
  this.unansweredQuestions = computed(() => {
88665
- return this.filteredQuestions().filter(q => !q.answered);
88794
+ const answers = this.profileShopAnswers();
88795
+ return this.filteredQuestions().filter(q => !answers.some(a => a.profileQuestionId === q.id));
88666
88796
  }, ...(ngDevMode ? [{ debugName: "unansweredQuestions" }] : []));
88667
88797
  this.answeredCount = computed(() => {
88668
- return this.filteredQuestions().filter(q => q.answered).length;
88798
+ const answers = this.profileShopAnswers();
88799
+ return this.filteredQuestions().filter(q => answers.some(a => a.profileQuestionId === q.id)).length;
88669
88800
  }, ...(ngDevMode ? [{ debugName: "answeredCount" }] : []));
88670
88801
  this.totalCount = computed(() => {
88671
88802
  return this.filteredQuestions().length;
@@ -88680,12 +88811,10 @@ class ShopProfileQuestionAnswerComponent {
88680
88811
  return this.customAnswerText().trim().length > 0;
88681
88812
  }, ...(ngDevMode ? [{ debugName: "canAddCustomAnswers" }] : []));
88682
88813
  this.saveButtonsDisabled = computed(() => {
88683
- return this.selectedAnswerTexts().length === 0 || this.addOtherAnswersExpanded();
88814
+ return this.selectedAnswerTexts().length === 0 || this.addOtherAnswersExpanded() || this.isSaving();
88684
88815
  }, ...(ngDevMode ? [{ debugName: "saveButtonsDisabled" }] : []));
88685
88816
  this.stickyState = false;
88686
88817
  this.lastStickyChange = 0;
88687
- this.stickyChangeCount = 0;
88688
- // Initialize selected answers from existing profile answers
88689
88818
  effect(() => {
88690
88819
  const questionId = this.question().id;
88691
88820
  const existingAnswers = this.profileShopAnswers()
@@ -88693,6 +88822,34 @@ class ShopProfileQuestionAnswerComponent {
88693
88822
  .map(a => a.answer || '');
88694
88823
  this.selectedAnswerTexts.set(existingAnswers);
88695
88824
  });
88825
+ effect(() => {
88826
+ const answers = this.profileShopAnswers();
88827
+ const pendingId = this.pendingQuestionId();
88828
+ const pendingAction = this.pendingSaveAction();
88829
+ if (pendingId !== null && pendingAction !== null) {
88830
+ const hasAnswerForQuestion = answers.some(a => a.profileQuestionId === pendingId);
88831
+ if (hasAnswerForQuestion) {
88832
+ this.isSaving.set(false);
88833
+ if (pendingAction === 'save') {
88834
+ this.navigateToList.emit();
88835
+ }
88836
+ else if (pendingAction === 'saveAndNext') {
88837
+ this.navigateToNextQuestion.emit();
88838
+ }
88839
+ this.pendingQuestionId.set(null);
88840
+ this.pendingSaveAction.set(null);
88841
+ }
88842
+ }
88843
+ });
88844
+ effect(() => {
88845
+ const currentCount = this.answeredCount();
88846
+ const prevCount = this.previousAnsweredCount();
88847
+ if (prevCount !== null && currentCount > prevCount) {
88848
+ this.isCountAnimating.set(true);
88849
+ setTimeout(() => this.isCountAnimating.set(false), 400);
88850
+ }
88851
+ this.previousAnsweredCount.set(currentCount);
88852
+ });
88696
88853
  }
88697
88854
  ngAfterViewInit() {
88698
88855
  this.setupStickyObserver();
@@ -88706,47 +88863,32 @@ class ShopProfileQuestionAnswerComponent {
88706
88863
  const header = this.stickyHeader?.nativeElement;
88707
88864
  const title = this.questionTitle?.nativeElement;
88708
88865
  if (!sentinel || !scrollRoot || !header) {
88709
- console.log('[StickyDebug] Setup failed - missing elements:', { sentinel: !!sentinel, scrollRoot: !!scrollRoot, header: !!header });
88710
88866
  return;
88711
88867
  }
88712
- console.log('[StickyDebug] Setting up IntersectionObserver');
88713
88868
  this.ngZone.runOutsideAngular(() => {
88714
88869
  this.intersectionObserver = new IntersectionObserver((entries) => {
88715
88870
  entries.forEach((entry) => {
88716
88871
  const now = Date.now();
88717
88872
  const timeSinceLastChange = now - this.lastStickyChange;
88718
88873
  const newStickyState = !entry.isIntersecting;
88719
- this.stickyChangeCount++;
88720
- console.log(`[StickyDebug #${this.stickyChangeCount}] isIntersecting: ${entry.isIntersecting}, boundingClientRect.top: ${entry.boundingClientRect.top.toFixed(1)}, intersectionRatio: ${entry.intersectionRatio.toFixed(3)}, currentSticky: ${this.stickyState}, newSticky: ${newStickyState}, timeSinceLastChange: ${timeSinceLastChange}ms`);
88721
- // Debounce: ignore changes within 250ms (longer than the 200ms CSS transition) to prevent flip-flopping
88722
- if (timeSinceLastChange < 250 && this.stickyState !== newStickyState) {
88723
- console.log(`[StickyDebug] DEBOUNCED - ignoring change from ${this.stickyState} to ${newStickyState} (only ${timeSinceLastChange}ms since last change)`);
88874
+ if (timeSinceLastChange < 350 && this.stickyState !== newStickyState) {
88724
88875
  return;
88725
88876
  }
88726
88877
  if (this.stickyState === newStickyState) {
88727
- console.log(`[StickyDebug] No state change needed (already ${this.stickyState})`);
88728
88878
  return;
88729
88879
  }
88730
88880
  this.stickyState = newStickyState;
88731
88881
  this.lastStickyChange = now;
88732
88882
  if (newStickyState) {
88733
- console.log('[StickyDebug] Applying sticky classes');
88734
- header.classList.add('shadow-md');
88735
- header.classList.add('is-sticky');
88883
+ header.classList.add('shadow-md', 'is-sticky');
88736
88884
  title?.classList.add('is-sticky');
88737
88885
  }
88738
88886
  else {
88739
- console.log('[StickyDebug] Removing sticky classes');
88740
- header.classList.remove('shadow-md');
88741
- header.classList.remove('is-sticky');
88887
+ header.classList.remove('shadow-md', 'is-sticky');
88742
88888
  title?.classList.remove('is-sticky');
88743
88889
  }
88744
88890
  });
88745
- }, {
88746
- root: scrollRoot,
88747
- threshold: 0,
88748
- rootMargin: '-20px 0px 0px 0px'
88749
- });
88891
+ }, { root: scrollRoot, threshold: 0, rootMargin: '-20px 0px 0px 0px' });
88750
88892
  this.intersectionObserver.observe(sentinel);
88751
88893
  });
88752
88894
  }
@@ -88792,10 +88934,26 @@ class ShopProfileQuestionAnswerComponent {
88792
88934
  this.addOtherAnswersExpanded.set(false);
88793
88935
  }
88794
88936
  onSave() {
88795
- this.saveClick.emit();
88937
+ const questionId = this.question().id;
88938
+ this.isSaving.set(true);
88939
+ this.pendingSaveAction.set('save');
88940
+ this.pendingQuestionId.set(questionId);
88941
+ const event = {
88942
+ profileQuestionId: questionId,
88943
+ answers: this.selectedAnswerTexts()
88944
+ };
88945
+ this.saveClick.emit(event);
88796
88946
  }
88797
88947
  onSaveAndNext() {
88798
- this.saveAndNextClick.emit();
88948
+ const questionId = this.question().id;
88949
+ this.isSaving.set(true);
88950
+ this.pendingSaveAction.set('saveAndNext');
88951
+ this.pendingQuestionId.set(questionId);
88952
+ const event = {
88953
+ profileQuestionId: questionId,
88954
+ answers: this.selectedAnswerTexts()
88955
+ };
88956
+ this.saveAndNextClick.emit(event);
88799
88957
  }
88800
88958
  getFocusAreaTitle(focusArea) {
88801
88959
  return FocusAreaDomainEnumUtil.title(focusArea);
@@ -88823,6 +88981,16 @@ class ShopProfileQuestionAnswerComponent {
88823
88981
  isLightMode() {
88824
88982
  return this.viewMode() === ViewModeEnum.LIGHT;
88825
88983
  }
88984
+ skeletonClasses() {
88985
+ return this.isLightMode()
88986
+ ? 'bg-slate-200'
88987
+ : 'bg-slate-700';
88988
+ }
88989
+ savingTextClasses() {
88990
+ return this.isLightMode()
88991
+ ? 'text-slate-600'
88992
+ : 'text-slate-400';
88993
+ }
88826
88994
  statusHeaderClasses() {
88827
88995
  return this.isLightMode()
88828
88996
  ? 'bg-slate-50/50 border-slate-200'
@@ -88955,7 +89123,7 @@ class ShopProfileQuestionAnswerComponent {
88955
89123
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.stickySentinel = _t.first);
88956
89124
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.stickyHeader = _t.first);
88957
89125
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.questionTitle = _t.first);
88958
- } }, inputs: { question: [1, "question"], viewMode: [1, "viewMode"], viewType: [1, "viewType"], selectedCategoryId: [1, "selectedCategoryId"], selectedFocusAreaId: [1, "selectedFocusAreaId"], filteredQuestions: [1, "filteredQuestions"], profileShopAnswers: [1, "profileShopAnswers"] }, outputs: { backClick: "backClick", saveClick: "saveClick", saveAndNextClick: "saveAndNextClick" }, decls: 47, vars: 28, consts: [["scrollContainer", ""], ["stickySentinel", ""], ["stickyHeader", ""], ["questionTitle", ""], [1, "flex", "flex-col", "h-full"], [1, "flex-1", "overflow-y-auto"], [1, "px-6", "py-4", "border-b", 3, "ngClass"], [1, "text-sm", "font-semibold", "mb-3", 3, "ngClass"], [1, "flex", "items-center", "gap-3"], [1, "flex-1"], [1, "h-2", "rounded-full", "overflow-hidden", 3, "ngClass"], [1, "h-full", "transition-all", "duration-500", "ease-out", "rounded-full", 3, "ngClass"], [1, "text-sm", "font-medium", "whitespace-nowrap", 3, "ngClass"], [1, "h-0"], [1, "sticky", "top-0", "z-10", "px-6", "py-4", "transition-all", "duration-200", 3, "ngClass"], [1, "text-sm", "italic", "mb-2", 3, "ngClass"], [1, "font-bold", "text-2xl", "[&.is-sticky]:text-lg", "transition-all", "duration-200", 3, "ngClass"], [1, "px-6"], [1, "text-sm", "leading-relaxed", "mt-3", 3, "ngClass"], [1, "mt-4"], [1, "px-6", "py-6"], [1, "space-y-3", "mb-4"], [1, "flex", "items-start", "gap-3", "p-4", "rounded-lg", "cursor-pointer", "transition-all", "duration-200", "hover:scale-[1.01]", 3, "ngClass"], [1, "mb-6"], [1, "grid", "transition-[grid-template-rows]", "duration-300", "ease-in-out"], [1, "overflow-hidden", "min-h-0"], [1, "pb-4"], ["rows", "5", "placeholder", "Enter your answer(s) here, separated by returns.", 1, "w-full", "px-4", "py-3", "rounded-lg", "border-2", "text-sm", "resize-y", "transition-colors", "duration-200", "focus:ring-2", "focus:ring-offset-2", 3, "ngModelChange", "ngModel", "ngClass"], [1, "flex", "items-center", "gap-3", "mt-3"], ["type", "button", 1, "px-5", "py-2.5", "rounded-lg", "font-medium", "text-sm", "transition-all", "duration-200", "hover:scale-105", "active:scale-95", 3, "click", "ngClass"], ["type", "button", 1, "flex-1", "px-5", "py-2.5", "rounded-lg", "font-medium", "text-sm", "transition-all", "duration-200", "disabled:opacity-50", "disabled:cursor-not-allowed", "disabled:hover:scale-100", 3, "click", "disabled", "ngClass"], ["type", "button", 1, "w-full", "px-5", "py-3", "rounded-lg", "font-medium", "text-sm", "transition-all", "duration-200", "border-2", "hover:scale-[1.01]", "active:scale-[0.99]", 3, "ngClass"], [1, "px-6", "py-4", "border-t", "sticky", "bottom-0", "z-10", 3, "ngClass"], [1, "flex", "items-center", "gap-4"], ["type", "button", 1, "px-5", "py-2.5", "rounded-lg", "font-medium", "text-sm", "transition-all", "duration-200", "border", "disabled:opacity-50", "disabled:cursor-not-allowed", "hover:scale-[1.02]", "active:scale-95", "disabled:hover:scale-100", 3, "click", "disabled", "ngClass"], ["type", "button", 1, "flex-1", "px-5", "py-2.5", "rounded-lg", "font-medium", "text-sm", "transition-all", "duration-200", "flex", "items-center", "justify-center", "gap-2", "disabled:opacity-50", "disabled:cursor-not-allowed", "hover:scale-[1.01]", "active:scale-[0.99]", "disabled:hover:scale-100", 3, "click", "disabled", "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", "M9 5l7 7-7 7"], [1, "flex", "items-center", "gap-2", "mb-2"], [1, "text-xs", "font-semibold", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4", 3, "ngClass"], ["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, "flex", "flex-wrap", "gap-2"], [1, "px-3", "py-1.5", "rounded-full", "text-xs", "font-medium", 3, "ngClass"], ["type", "checkbox", 1, "mt-0.5", "w-5", "h-5", "rounded", "border-2", "cursor-pointer", "transition-all", "duration-200", "focus:ring-2", "focus:ring-offset-2", 3, "change", "checked", "ngClass"], [1, "text-base", "flex-1", 3, "ngClass"], ["type", "button", 1, "w-full", "px-5", "py-3", "rounded-lg", "font-medium", "text-sm", "transition-all", "duration-200", "border-2", "hover:scale-[1.01]", "active:scale-[0.99]", 3, "click", "ngClass"]], template: function ShopProfileQuestionAnswerComponent_Template(rf, ctx) { if (rf & 1) {
89126
+ } }, inputs: { question: [1, "question"], viewMode: [1, "viewMode"], viewType: [1, "viewType"], selectedCategoryId: [1, "selectedCategoryId"], selectedFocusAreaId: [1, "selectedFocusAreaId"], filteredQuestions: [1, "filteredQuestions"], profileShopAnswers: [1, "profileShopAnswers"] }, outputs: { backClick: "backClick", saveClick: "saveClick", saveAndNextClick: "saveAndNextClick", navigateToList: "navigateToList", navigateToNextQuestion: "navigateToNextQuestion" }, decls: 35, vars: 25, consts: [["scrollContainer", ""], ["stickySentinel", ""], ["stickyHeader", ""], ["questionTitle", ""], [1, "flex", "flex-col", "h-full"], [1, "flex-1", "overflow-y-auto"], [1, "px-6", "py-4", "border-b", 3, "ngClass"], [1, "text-sm", "font-semibold", "mb-3", 3, "ngClass"], [1, "flex", "items-center", "gap-3"], [1, "flex-1"], [1, "h-2", "rounded-full", "overflow-hidden", 3, "ngClass"], [1, "h-full", "transition-all", "duration-500", "ease-out", "rounded-full", 3, "ngClass"], [1, "text-sm", "font-medium", "whitespace-nowrap", 3, "ngClass"], [1, "inline-block", "tabular-nums", "transition-transform", "duration-300"], [1, "h-0"], [1, "sticky", "top-0", "z-10", "px-6", "py-4", "transition-all", "duration-200", 3, "ngClass"], [1, "text-sm", "italic", "mb-2", 3, "ngClass"], [1, "space-y-2"], [1, "font-bold", "text-2xl", "[&.is-sticky]:text-lg", "transition-all", "duration-200", 3, "ngClass"], [1, "px-6"], [1, "mt-3", "space-y-2"], [1, "px-6", "py-6"], [1, "flex", "flex-col", "items-center", "justify-center", "py-12"], [1, "px-6", "py-4", "border-t", "sticky", "bottom-0", "z-10", 3, "ngClass"], [1, "flex", "items-center", "gap-4"], ["type", "button", 1, "px-5", "py-2.5", "rounded-lg", "font-medium", "text-sm", "transition-all", "duration-200", "border", "disabled:opacity-50", "disabled:cursor-not-allowed", "hover:scale-[1.02]", "active:scale-95", "disabled:hover:scale-100", "flex", "items-center", "justify-center", "gap-2", "min-w-[80px]", 3, "click", "disabled", "ngClass"], ["type", "button", 1, "flex-1", "px-5", "py-2.5", "rounded-lg", "font-medium", "text-sm", "transition-all", "duration-200", "flex", "items-center", "justify-center", "gap-2", "disabled:opacity-50", "disabled:cursor-not-allowed", "hover:scale-[1.01]", "active:scale-[0.99]", "disabled:hover:scale-100", 3, "click", "disabled", "ngClass"], [1, "h-7", "rounded", "w-3/4", "animate-pulse", 3, "ngClass"], [1, "h-7", "rounded", "w-1/2", "animate-pulse", 3, "ngClass"], [1, "h-4", "rounded", "w-full", "animate-pulse", 3, "ngClass"], [1, "h-4", "rounded", "w-5/6", "animate-pulse", 3, "ngClass"], [1, "text-sm", "leading-relaxed", "mt-3", 3, "ngClass"], [1, "mt-4"], [1, "flex", "items-center", "gap-2", "mb-2"], [1, "text-xs", "font-semibold", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4", 3, "ngClass"], ["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, "flex", "flex-wrap", "gap-2"], [1, "px-3", "py-1.5", "rounded-full", "text-xs", "font-medium", 3, "ngClass"], ["size", "medium", 3, "viewMode"], [1, "mt-4", "text-sm", "font-medium", 3, "ngClass"], [1, "space-y-3", "mb-4"], [1, "flex", "items-start", "gap-3", "p-4", "rounded-lg", "cursor-pointer", "transition-all", "duration-200", "hover:scale-[1.01]", 3, "ngClass"], [1, "mb-6"], [1, "grid", "transition-[grid-template-rows]", "duration-300", "ease-in-out"], [1, "overflow-hidden", "min-h-0"], [1, "pb-4"], ["rows", "5", "placeholder", "Enter your answer(s) here, separated by returns.", 1, "w-full", "px-4", "py-3", "rounded-lg", "border-2", "text-sm", "resize-y", "transition-colors", "duration-200", "focus:ring-2", "focus:ring-offset-2", 3, "ngModelChange", "ngModel", "ngClass"], [1, "flex", "items-center", "gap-3", "mt-3"], ["type", "button", 1, "px-5", "py-2.5", "rounded-lg", "font-medium", "text-sm", "transition-all", "duration-200", "hover:scale-105", "active:scale-95", 3, "click", "ngClass"], ["type", "button", 1, "flex-1", "px-5", "py-2.5", "rounded-lg", "font-medium", "text-sm", "transition-all", "duration-200", "disabled:opacity-50", "disabled:cursor-not-allowed", "disabled:hover:scale-100", 3, "click", "disabled", "ngClass"], ["type", "button", 1, "w-full", "px-5", "py-3", "rounded-lg", "font-medium", "text-sm", "transition-all", "duration-200", "border-2", "hover:scale-[1.01]", "active:scale-[0.99]", 3, "ngClass"], ["type", "checkbox", 1, "mt-0.5", "w-5", "h-5", "rounded", "border-2", "cursor-pointer", "transition-all", "duration-200", "focus:ring-2", "focus:ring-offset-2", 3, "change", "checked", "ngClass"], [1, "text-base", "flex-1", 3, "ngClass"], ["type", "button", 1, "w-full", "px-5", "py-3", "rounded-lg", "font-medium", "text-sm", "transition-all", "duration-200", "border-2", "hover:scale-[1.01]", "active:scale-[0.99]", 3, "click", "ngClass"], ["xmlns", "http://www.w3.org/2000/svg", "fill", "none", "viewBox", "0 0 24 24", 1, "animate-spin", "h-4", "w-4"], ["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", "M9 5l7 7-7 7"]], template: function ShopProfileQuestionAnswerComponent_Template(rf, ctx) { if (rf & 1) {
88959
89127
  const _r1 = i0.ɵɵgetCurrentView();
88960
89128
  i0.ɵɵelementStart(0, "div", 4)(1, "div", 5, 0)(3, "div", 6)(4, "h4", 7);
88961
89129
  i0.ɵɵtext(5, " Unanswered questions status ");
@@ -88963,48 +89131,30 @@ class ShopProfileQuestionAnswerComponent {
88963
89131
  i0.ɵɵelementStart(6, "div", 8)(7, "div", 9)(8, "div", 10);
88964
89132
  i0.ɵɵelement(9, "div", 11);
88965
89133
  i0.ɵɵelementEnd()();
88966
- i0.ɵɵelementStart(10, "div", 12);
88967
- i0.ɵɵtext(11);
88968
- i0.ɵɵelementEnd()()();
88969
- i0.ɵɵelement(12, "div", 13, 1);
88970
- i0.ɵɵelementStart(14, "div", 14, 2);
88971
- i0.ɵɵconditionalCreate(16, ShopProfileQuestionAnswerComponent_Conditional_16_Template, 2, 2, "div", 15);
88972
- i0.ɵɵelementStart(17, "h2", 16, 3);
88973
- i0.ɵɵtext(19);
88974
- i0.ɵɵelementEnd()();
88975
- i0.ɵɵelementStart(20, "div", 17);
88976
- i0.ɵɵconditionalCreate(21, ShopProfileQuestionAnswerComponent_Conditional_21_Template, 2, 2, "p", 18);
88977
- i0.ɵɵconditionalCreate(22, ShopProfileQuestionAnswerComponent_Conditional_22_Template, 9, 3, "div", 19);
88978
- i0.ɵɵelementEnd();
88979
- i0.ɵɵelementStart(23, "div", 20)(24, "div", 21);
88980
- i0.ɵɵrepeaterCreate(25, ShopProfileQuestionAnswerComponent_For_26_Template, 4, 5, "label", 22, _forTrack0$2);
88981
- i0.ɵɵelementEnd();
88982
- i0.ɵɵelementStart(27, "div", 23)(28, "div", 24)(29, "div", 25)(30, "div", 26)(31, "textarea", 27);
88983
- i0.ɵɵtwoWayListener("ngModelChange", function ShopProfileQuestionAnswerComponent_Template_textarea_ngModelChange_31_listener($event) { i0.ɵɵrestoreView(_r1); i0.ɵɵtwoWayBindingSet(ctx.customAnswerText, $event) || (ctx.customAnswerText = $event); return i0.ɵɵresetView($event); });
88984
- i0.ɵɵelementEnd();
88985
- i0.ɵɵelementStart(32, "div", 28)(33, "button", 29);
88986
- i0.ɵɵlistener("click", function ShopProfileQuestionAnswerComponent_Template_button_click_33_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.cancelCustomAnswers()); });
88987
- i0.ɵɵtext(34, " Cancel ");
89134
+ i0.ɵɵelementStart(10, "div", 12)(11, "span", 13);
89135
+ i0.ɵɵtext(12);
88988
89136
  i0.ɵɵelementEnd();
88989
- i0.ɵɵelementStart(35, "button", 30);
88990
- i0.ɵɵlistener("click", function ShopProfileQuestionAnswerComponent_Template_button_click_35_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.addCustomAnswers()); });
88991
- i0.ɵɵtext(36, " Add ");
88992
- i0.ɵɵelementEnd()()()()();
88993
- i0.ɵɵconditionalCreate(37, ShopProfileQuestionAnswerComponent_Conditional_37_Template, 2, 1, "button", 31);
89137
+ i0.ɵɵtext(13);
88994
89138
  i0.ɵɵelementEnd()()();
88995
- i0.ɵɵelementStart(38, "div", 32)(39, "div", 33)(40, "button", 34);
88996
- i0.ɵɵlistener("click", function ShopProfileQuestionAnswerComponent_Template_button_click_40_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onSave()); });
88997
- i0.ɵɵtext(41, " Save ");
89139
+ i0.ɵɵelement(14, "div", 14, 1);
89140
+ i0.ɵɵelementStart(16, "div", 15, 2);
89141
+ i0.ɵɵconditionalCreate(18, ShopProfileQuestionAnswerComponent_Conditional_18_Template, 2, 2, "div", 16);
89142
+ i0.ɵɵconditionalCreate(19, ShopProfileQuestionAnswerComponent_Conditional_19_Template, 3, 2, "div", 17)(20, ShopProfileQuestionAnswerComponent_Conditional_20_Template, 3, 2, "h2", 18);
88998
89143
  i0.ɵɵelementEnd();
88999
- i0.ɵɵelementStart(42, "button", 35);
89000
- i0.ɵɵlistener("click", function ShopProfileQuestionAnswerComponent_Template_button_click_42_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onSaveAndNext()); });
89001
- i0.ɵɵelementStart(43, "span");
89002
- i0.ɵɵtext(44, "Save & next unanswered");
89144
+ i0.ɵɵelementStart(21, "div", 19);
89145
+ i0.ɵɵconditionalCreate(22, ShopProfileQuestionAnswerComponent_Conditional_22_Template, 3, 2, "div", 20)(23, ShopProfileQuestionAnswerComponent_Conditional_23_Template, 2, 2);
89003
89146
  i0.ɵɵelementEnd();
89004
- i0.ɵɵnamespaceSVG();
89005
- i0.ɵɵelementStart(45, "svg", 36);
89006
- i0.ɵɵelement(46, "path", 37);
89007
- i0.ɵɵelementEnd()()()()();
89147
+ i0.ɵɵelementStart(24, "div", 21);
89148
+ i0.ɵɵconditionalCreate(25, ShopProfileQuestionAnswerComponent_Conditional_25_Template, 4, 2, "div", 22)(26, ShopProfileQuestionAnswerComponent_Conditional_26_Template, 14, 8);
89149
+ i0.ɵɵelementEnd()();
89150
+ i0.ɵɵelementStart(27, "div", 23)(28, "div", 24)(29, "button", 25);
89151
+ i0.ɵɵlistener("click", function ShopProfileQuestionAnswerComponent_Template_button_click_29_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onSave()); });
89152
+ i0.ɵɵconditionalCreate(30, ShopProfileQuestionAnswerComponent_Conditional_30_Template, 5, 0)(31, ShopProfileQuestionAnswerComponent_Conditional_31_Template, 2, 0, "span");
89153
+ i0.ɵɵelementEnd();
89154
+ i0.ɵɵelementStart(32, "button", 26);
89155
+ i0.ɵɵlistener("click", function ShopProfileQuestionAnswerComponent_Template_button_click_32_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onSaveAndNext()); });
89156
+ i0.ɵɵconditionalCreate(33, ShopProfileQuestionAnswerComponent_Conditional_33_Template, 5, 0)(34, ShopProfileQuestionAnswerComponent_Conditional_34_Template, 4, 0);
89157
+ i0.ɵɵelementEnd()()()();
89008
89158
  } if (rf & 2) {
89009
89159
  i0.ɵɵadvance(3);
89010
89160
  i0.ɵɵproperty("ngClass", ctx.statusHeaderClasses());
@@ -89018,39 +89168,32 @@ class ShopProfileQuestionAnswerComponent {
89018
89168
  i0.ɵɵadvance();
89019
89169
  i0.ɵɵproperty("ngClass", ctx.progressTextClasses());
89020
89170
  i0.ɵɵadvance();
89021
- i0.ɵɵtextInterpolate2(" ", ctx.answeredCount(), " / ", ctx.totalCount(), " answered ");
89171
+ i0.ɵɵclassProp("scale-125", ctx.isCountAnimating())("text-emerald-400", ctx.isCountAnimating());
89172
+ i0.ɵɵadvance();
89173
+ i0.ɵɵtextInterpolate(ctx.answeredCount());
89174
+ i0.ɵɵadvance();
89175
+ i0.ɵɵtextInterpolate1(" / ", ctx.totalCount(), " answered ");
89022
89176
  i0.ɵɵadvance(3);
89023
89177
  i0.ɵɵproperty("ngClass", ctx.stickyHeaderClasses());
89024
89178
  i0.ɵɵadvance(2);
89025
- i0.ɵɵconditional(ctx.viewType() !== "all" ? 16 : -1);
89026
- i0.ɵɵadvance();
89027
- i0.ɵɵproperty("ngClass", ctx.questionTextClasses());
89028
- i0.ɵɵadvance(2);
89029
- i0.ɵɵtextInterpolate1(" ", ctx.question().question, " ");
89030
- i0.ɵɵadvance(2);
89031
- i0.ɵɵconditional(ctx.question().context ? 21 : -1);
89179
+ i0.ɵɵconditional(ctx.viewType() !== "all" ? 18 : -1);
89032
89180
  i0.ɵɵadvance();
89033
- i0.ɵɵconditional(ctx.relatedFocusAreas().length > 0 ? 22 : -1);
89034
- i0.ɵɵadvance(3);
89035
- i0.ɵɵrepeater(ctx.answerOptions());
89181
+ i0.ɵɵconditional(ctx.isSaving() ? 19 : 20);
89036
89182
  i0.ɵɵadvance(3);
89037
- i0.ɵɵstyleProp("grid-template-rows", ctx.addOtherAnswersExpanded() ? "1fr" : "0fr");
89183
+ i0.ɵɵconditional(ctx.isSaving() ? 22 : 23);
89038
89184
  i0.ɵɵadvance(3);
89039
- i0.ɵɵtwoWayProperty("ngModel", ctx.customAnswerText);
89040
- i0.ɵɵproperty("ngClass", ctx.textareaClasses());
89041
- i0.ɵɵadvance(2);
89042
- i0.ɵɵproperty("ngClass", ctx.cancelButtonClasses());
89043
- i0.ɵɵadvance(2);
89044
- i0.ɵɵproperty("disabled", !ctx.canAddCustomAnswers())("ngClass", ctx.addButtonClasses());
89185
+ i0.ɵɵconditional(ctx.isSaving() ? 25 : 26);
89045
89186
  i0.ɵɵadvance(2);
89046
- i0.ɵɵconditional(!ctx.addOtherAnswersExpanded() ? 37 : -1);
89047
- i0.ɵɵadvance();
89048
89187
  i0.ɵɵproperty("ngClass", ctx.footerClasses());
89049
89188
  i0.ɵɵadvance(2);
89050
89189
  i0.ɵɵproperty("disabled", ctx.saveButtonsDisabled())("ngClass", ctx.saveButtonClasses());
89190
+ i0.ɵɵadvance();
89191
+ i0.ɵɵconditional(ctx.isSaving() && ctx.pendingSaveAction() === "save" ? 30 : 31);
89051
89192
  i0.ɵɵadvance(2);
89052
89193
  i0.ɵɵproperty("disabled", ctx.saveButtonsDisabled())("ngClass", ctx.saveAndNextButtonClasses());
89053
- } }, dependencies: [CommonModule, i1$1.NgClass, FormsModule, i2$1.DefaultValueAccessor, i2$1.NgControlStatus, i2$1.NgModel], encapsulation: 2, data: { animation: [
89194
+ i0.ɵɵadvance();
89195
+ i0.ɵɵconditional(ctx.isSaving() && ctx.pendingSaveAction() === "saveAndNext" ? 33 : 34);
89196
+ } }, dependencies: [CommonModule, i1$1.NgClass, FormsModule, i2$1.DefaultValueAccessor, i2$1.NgControlStatus, i2$1.NgModel, IndeterminateSpinnerComponent], encapsulation: 2, data: { animation: [
89054
89197
  trigger('fadeIn', [
89055
89198
  transition(':enter', [
89056
89199
  style({ opacity: 0 }),
@@ -89064,7 +89207,7 @@ class ShopProfileQuestionAnswerComponent {
89064
89207
  args: [{
89065
89208
  selector: 'symphiq-shop-profile-question-answer',
89066
89209
  standalone: true,
89067
- imports: [CommonModule, FormsModule],
89210
+ imports: [CommonModule, FormsModule, IndeterminateSpinnerComponent],
89068
89211
  changeDetection: ChangeDetectionStrategy.OnPush,
89069
89212
  animations: [
89070
89213
  trigger('fadeIn', [
@@ -89074,175 +89217,217 @@ class ShopProfileQuestionAnswerComponent {
89074
89217
  ])
89075
89218
  ])
89076
89219
  ],
89077
- template: `
89078
- <div class="flex flex-col h-full">
89079
- <!-- Scrollable Content -->
89080
- <div #scrollContainer class="flex-1 overflow-y-auto">
89081
- <!-- Unanswered Questions Status -->
89082
- <div [ngClass]="statusHeaderClasses()" class="px-6 py-4 border-b">
89083
- <h4 [ngClass]="statusTitleClasses()" class="text-sm font-semibold mb-3">
89084
- Unanswered questions status
89085
- </h4>
89086
- <div class="flex items-center gap-3">
89087
- <div class="flex-1">
89088
- <div [ngClass]="progressBarContainerClasses()" class="h-2 rounded-full overflow-hidden">
89089
- <div
89090
- [ngClass]="progressBarFillClasses()"
89091
- class="h-full transition-all duration-500 ease-out rounded-full"
89092
- [style.width.%]="progressPercentage()"></div>
89093
- </div>
89094
- </div>
89095
- <div [ngClass]="progressTextClasses()" class="text-sm font-medium whitespace-nowrap">
89096
- {{ answeredCount() }} / {{ totalCount() }} answered
89097
- </div>
89098
- </div>
89099
- </div>
89100
-
89101
- <!-- Sentinel for intersection observer -->
89102
- <div #stickySentinel class="h-0"></div>
89103
-
89104
- <!-- Sticky Question Header -->
89105
- <div #stickyHeader [ngClass]="stickyHeaderClasses()" class="sticky top-0 z-10 px-6 py-4 transition-all duration-200">
89106
- <!-- Breadcrumb - hide for All Questions mode -->
89107
- @if (viewType() !== 'all') {
89108
- <div [ngClass]="breadcrumbClasses()" class="text-sm italic mb-2">
89109
- Shop > {{ breadcrumbPath() }}
89110
- </div>
89111
- }
89112
-
89113
- <!-- Question - animates from text-2xl to text-lg when sticky -->
89114
- <h2 #questionTitle [ngClass]="questionTextClasses()" class="font-bold text-2xl [&.is-sticky]:text-lg transition-all duration-200">
89115
- {{ question().question }}
89116
- </h2>
89117
- </div>
89118
-
89119
- <!-- Context and Focus Areas - scroll under sticky header -->
89120
- <div class="px-6">
89121
- <!-- Context -->
89122
- @if (question().context) {
89123
- <p [ngClass]="contextTextClasses()" class="text-sm leading-relaxed mt-3">
89124
- {{ question().context }}
89125
- </p>
89126
- }
89127
-
89128
- <!-- Related Focus Areas -->
89129
- @if (relatedFocusAreas().length > 0) {
89130
- <div class="mt-4">
89131
- <div class="flex items-center gap-2 mb-2">
89132
- <span [ngClass]="relatedLabelClasses()" class="text-xs font-semibold">
89133
- Related to {{ relatedFocusAreas().length }} focus area(s)
89134
- </span>
89135
- <svg class="w-4 h-4" [ngClass]="relatedLabelClasses()" fill="none" stroke="currentColor" viewBox="0 0 24 24">
89136
- <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>
89137
- </svg>
89138
- </div>
89139
- <div class="flex flex-wrap gap-2">
89140
- @for (focusArea of relatedFocusAreas(); track focusArea) {
89141
- <span [ngClass]="focusAreaChipClasses()" class="px-3 py-1.5 rounded-full text-xs font-medium">
89142
- {{ getFocusAreaTitle(focusArea) }}
89143
- </span>
89144
- }
89145
- </div>
89146
- </div>
89147
- }
89148
- </div>
89149
-
89150
- <div class="px-6 py-6">
89151
-
89152
- <!-- Answer Options -->
89153
- <div class="space-y-3 mb-4">
89154
- @for (option of answerOptions(); track option.tempId) {
89155
- <label
89156
- [ngClass]="checkboxRowClasses()"
89157
- class="flex items-start gap-3 p-4 rounded-lg cursor-pointer transition-all duration-200 hover:scale-[1.01]">
89158
- <input
89159
- type="checkbox"
89160
- [checked]="option.isSelected"
89161
- (change)="toggleAnswer(option.text)"
89162
- [ngClass]="checkboxClasses()"
89163
- class="mt-0.5 w-5 h-5 rounded border-2 cursor-pointer transition-all duration-200 focus:ring-2 focus:ring-offset-2" />
89164
- <span [ngClass]="checkboxLabelClasses()" class="text-base flex-1">
89165
- {{ option.text }}
89166
- </span>
89167
- </label>
89168
- }
89169
- </div>
89170
-
89171
- <!-- Add Other Answers -->
89172
- <div class="mb-6">
89173
- <div
89174
- class="grid transition-[grid-template-rows] duration-300 ease-in-out"
89175
- [style.grid-template-rows]="addOtherAnswersExpanded() ? '1fr' : '0fr'">
89176
- <div class="overflow-hidden min-h-0">
89177
- <div class="pb-4">
89178
- <textarea
89179
- [(ngModel)]="customAnswerText"
89180
- [ngClass]="textareaClasses()"
89181
- class="w-full px-4 py-3 rounded-lg border-2 text-sm resize-y transition-colors duration-200 focus:ring-2 focus:ring-offset-2"
89182
- rows="5"
89183
- placeholder="Enter your answer(s) here, separated by returns."></textarea>
89184
- <div class="flex items-center gap-3 mt-3">
89185
- <button
89186
- type="button"
89187
- (click)="cancelCustomAnswers()"
89188
- [ngClass]="cancelButtonClasses()"
89189
- class="px-5 py-2.5 rounded-lg font-medium text-sm transition-all duration-200 hover:scale-105 active:scale-95">
89190
- Cancel
89191
- </button>
89192
- <button
89193
- type="button"
89194
- (click)="addCustomAnswers()"
89195
- [disabled]="!canAddCustomAnswers()"
89196
- [ngClass]="addButtonClasses()"
89197
- class="flex-1 px-5 py-2.5 rounded-lg font-medium text-sm transition-all duration-200 disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:scale-100">
89198
- Add
89199
- </button>
89200
- </div>
89201
- </div>
89202
- </div>
89203
- </div>
89204
-
89205
- @if (!addOtherAnswersExpanded()) {
89206
- <button
89207
- type="button"
89208
- (click)="toggleAddOtherAnswers()"
89209
- [ngClass]="addOtherAnswersButtonClasses()"
89210
- class="w-full px-5 py-3 rounded-lg font-medium text-sm transition-all duration-200 border-2 hover:scale-[1.01] active:scale-[0.99]">
89211
- Add other answers
89212
- </button>
89213
- }
89214
- </div>
89215
- </div>
89216
- </div>
89217
-
89218
- <!-- Sticky Footer -->
89219
- <div [ngClass]="footerClasses()" class="px-6 py-4 border-t sticky bottom-0 z-10">
89220
- <div class="flex items-center gap-4">
89221
- <button
89222
- type="button"
89223
- (click)="onSave()"
89224
- [disabled]="saveButtonsDisabled()"
89225
- [ngClass]="saveButtonClasses()"
89226
- class="px-5 py-2.5 rounded-lg font-medium text-sm transition-all duration-200 border disabled:opacity-50 disabled:cursor-not-allowed hover:scale-[1.02] active:scale-95 disabled:hover:scale-100">
89227
- Save
89228
- </button>
89229
- <button
89230
- type="button"
89231
- (click)="onSaveAndNext()"
89232
- [disabled]="saveButtonsDisabled()"
89233
- [ngClass]="saveAndNextButtonClasses()"
89234
- class="flex-1 px-5 py-2.5 rounded-lg font-medium text-sm transition-all duration-200 flex items-center justify-center gap-2 disabled:opacity-50 disabled:cursor-not-allowed hover:scale-[1.01] active:scale-[0.99] disabled:hover:scale-100">
89235
- <span>Save & next unanswered</span>
89236
- <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
89237
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path>
89238
- </svg>
89239
- </button>
89240
- </div>
89241
- </div>
89242
- </div>
89220
+ template: `
89221
+ <div class="flex flex-col h-full">
89222
+ <!-- Scrollable Content -->
89223
+ <div #scrollContainer class="flex-1 overflow-y-auto">
89224
+ <!-- Unanswered Questions Status -->
89225
+ <div [ngClass]="statusHeaderClasses()" class="px-6 py-4 border-b">
89226
+ <h4 [ngClass]="statusTitleClasses()" class="text-sm font-semibold mb-3">
89227
+ Unanswered questions status
89228
+ </h4>
89229
+ <div class="flex items-center gap-3">
89230
+ <div class="flex-1">
89231
+ <div [ngClass]="progressBarContainerClasses()" class="h-2 rounded-full overflow-hidden">
89232
+ <div
89233
+ [ngClass]="progressBarFillClasses()"
89234
+ class="h-full transition-all duration-500 ease-out rounded-full"
89235
+ [style.width.%]="progressPercentage()"></div>
89236
+ </div>
89237
+ </div>
89238
+ <div [ngClass]="progressTextClasses()" class="text-sm font-medium whitespace-nowrap">
89239
+ <span
89240
+ class="inline-block tabular-nums transition-transform duration-300"
89241
+ [class.scale-125]="isCountAnimating()"
89242
+ [class.text-emerald-400]="isCountAnimating()">{{ answeredCount() }}</span> / {{ totalCount() }} answered
89243
+ </div>
89244
+ </div>
89245
+ </div>
89246
+
89247
+ <!-- Sentinel for intersection observer -->
89248
+ <div #stickySentinel class="h-0"></div>
89249
+
89250
+ <!-- Sticky Question Header -->
89251
+ <div #stickyHeader [ngClass]="stickyHeaderClasses()" class="sticky top-0 z-10 px-6 py-4 transition-all duration-200">
89252
+ <!-- Breadcrumb - hide for All Questions mode -->
89253
+ @if (viewType() !== 'all') {
89254
+ <div [ngClass]="breadcrumbClasses()" class="text-sm italic mb-2">
89255
+ Shop > {{ breadcrumbPath() }}
89256
+ </div>
89257
+ }
89258
+
89259
+ <!-- Question - animates from text-2xl to text-lg when sticky -->
89260
+ @if (isSaving()) {
89261
+ <div class="space-y-2">
89262
+ <div [ngClass]="skeletonClasses()" class="h-7 rounded w-3/4 animate-pulse"></div>
89263
+ <div [ngClass]="skeletonClasses()" class="h-7 rounded w-1/2 animate-pulse"></div>
89264
+ </div>
89265
+ } @else {
89266
+ <h2 #questionTitle [ngClass]="questionTextClasses()" class="font-bold text-2xl [&.is-sticky]:text-lg transition-all duration-200">
89267
+ {{ question().question }}
89268
+ </h2>
89269
+ }
89270
+ </div>
89271
+
89272
+ <!-- Context and Focus Areas - scroll under sticky header -->
89273
+ <div class="px-6">
89274
+ @if (isSaving()) {
89275
+ <!-- Skeleton for context -->
89276
+ <div class="mt-3 space-y-2">
89277
+ <div [ngClass]="skeletonClasses()" class="h-4 rounded w-full animate-pulse"></div>
89278
+ <div [ngClass]="skeletonClasses()" class="h-4 rounded w-5/6 animate-pulse"></div>
89279
+ </div>
89280
+ } @else {
89281
+ <!-- Context -->
89282
+ @if (question().context) {
89283
+ <p [ngClass]="contextTextClasses()" class="text-sm leading-relaxed mt-3">
89284
+ {{ question().context }}
89285
+ </p>
89286
+ }
89287
+
89288
+ <!-- Related Focus Areas -->
89289
+ @if (relatedFocusAreas().length > 0) {
89290
+ <div class="mt-4">
89291
+ <div class="flex items-center gap-2 mb-2">
89292
+ <span [ngClass]="relatedLabelClasses()" class="text-xs font-semibold">
89293
+ Related to {{ relatedFocusAreas().length }} focus area(s)
89294
+ </span>
89295
+ <svg class="w-4 h-4" [ngClass]="relatedLabelClasses()" fill="none" stroke="currentColor" viewBox="0 0 24 24">
89296
+ <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>
89297
+ </svg>
89298
+ </div>
89299
+ <div class="flex flex-wrap gap-2">
89300
+ @for (focusArea of relatedFocusAreas(); track focusArea) {
89301
+ <span [ngClass]="focusAreaChipClasses()" class="px-3 py-1.5 rounded-full text-xs font-medium">
89302
+ {{ getFocusAreaTitle(focusArea) }}
89303
+ </span>
89304
+ }
89305
+ </div>
89306
+ </div>
89307
+ }
89308
+ }
89309
+ </div>
89310
+
89311
+ <div class="px-6 py-6">
89312
+
89313
+ @if (isSaving()) {
89314
+ <!-- Loading spinner for answers -->
89315
+ <div class="flex flex-col items-center justify-center py-12">
89316
+ <symphiq-indeterminate-spinner [viewMode]="viewMode()" size="medium" />
89317
+ <p [ngClass]="savingTextClasses()" class="mt-4 text-sm font-medium">Saving your answer...</p>
89318
+ </div>
89319
+ } @else {
89320
+ <!-- Answer Options -->
89321
+ <div class="space-y-3 mb-4">
89322
+ @for (option of answerOptions(); track option.tempId) {
89323
+ <label
89324
+ [ngClass]="checkboxRowClasses()"
89325
+ class="flex items-start gap-3 p-4 rounded-lg cursor-pointer transition-all duration-200 hover:scale-[1.01]">
89326
+ <input
89327
+ type="checkbox"
89328
+ [checked]="option.isSelected"
89329
+ (change)="toggleAnswer(option.text)"
89330
+ [ngClass]="checkboxClasses()"
89331
+ class="mt-0.5 w-5 h-5 rounded border-2 cursor-pointer transition-all duration-200 focus:ring-2 focus:ring-offset-2" />
89332
+ <span [ngClass]="checkboxLabelClasses()" class="text-base flex-1">
89333
+ {{ option.text }}
89334
+ </span>
89335
+ </label>
89336
+ }
89337
+ </div>
89338
+
89339
+ <!-- Add Other Answers -->
89340
+ <div class="mb-6">
89341
+ <div
89342
+ class="grid transition-[grid-template-rows] duration-300 ease-in-out"
89343
+ [style.grid-template-rows]="addOtherAnswersExpanded() ? '1fr' : '0fr'">
89344
+ <div class="overflow-hidden min-h-0">
89345
+ <div class="pb-4">
89346
+ <textarea
89347
+ [(ngModel)]="customAnswerText"
89348
+ [ngClass]="textareaClasses()"
89349
+ class="w-full px-4 py-3 rounded-lg border-2 text-sm resize-y transition-colors duration-200 focus:ring-2 focus:ring-offset-2"
89350
+ rows="5"
89351
+ placeholder="Enter your answer(s) here, separated by returns."></textarea>
89352
+ <div class="flex items-center gap-3 mt-3">
89353
+ <button
89354
+ type="button"
89355
+ (click)="cancelCustomAnswers()"
89356
+ [ngClass]="cancelButtonClasses()"
89357
+ class="px-5 py-2.5 rounded-lg font-medium text-sm transition-all duration-200 hover:scale-105 active:scale-95">
89358
+ Cancel
89359
+ </button>
89360
+ <button
89361
+ type="button"
89362
+ (click)="addCustomAnswers()"
89363
+ [disabled]="!canAddCustomAnswers()"
89364
+ [ngClass]="addButtonClasses()"
89365
+ class="flex-1 px-5 py-2.5 rounded-lg font-medium text-sm transition-all duration-200 disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:scale-100">
89366
+ Add
89367
+ </button>
89368
+ </div>
89369
+ </div>
89370
+ </div>
89371
+ </div>
89372
+
89373
+ @if (!addOtherAnswersExpanded()) {
89374
+ <button
89375
+ type="button"
89376
+ (click)="toggleAddOtherAnswers()"
89377
+ [ngClass]="addOtherAnswersButtonClasses()"
89378
+ class="w-full px-5 py-3 rounded-lg font-medium text-sm transition-all duration-200 border-2 hover:scale-[1.01] active:scale-[0.99]">
89379
+ Add other answers
89380
+ </button>
89381
+ }
89382
+ </div>
89383
+ }
89384
+ </div>
89385
+ </div>
89386
+
89387
+ <!-- Sticky Footer -->
89388
+ <div [ngClass]="footerClasses()" class="px-6 py-4 border-t sticky bottom-0 z-10">
89389
+ <div class="flex items-center gap-4">
89390
+ <button
89391
+ type="button"
89392
+ (click)="onSave()"
89393
+ [disabled]="saveButtonsDisabled()"
89394
+ [ngClass]="saveButtonClasses()"
89395
+ class="px-5 py-2.5 rounded-lg font-medium text-sm transition-all duration-200 border disabled:opacity-50 disabled:cursor-not-allowed hover:scale-[1.02] active:scale-95 disabled:hover:scale-100 flex items-center justify-center gap-2 min-w-[80px]">
89396
+ @if (isSaving() && pendingSaveAction() === 'save') {
89397
+ <svg class="animate-spin h-4 w-4" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24">
89398
+ <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
89399
+ <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>
89400
+ </svg>
89401
+ <span>Saving...</span>
89402
+ } @else {
89403
+ <span>Save</span>
89404
+ }
89405
+ </button>
89406
+ <button
89407
+ type="button"
89408
+ (click)="onSaveAndNext()"
89409
+ [disabled]="saveButtonsDisabled()"
89410
+ [ngClass]="saveAndNextButtonClasses()"
89411
+ class="flex-1 px-5 py-2.5 rounded-lg font-medium text-sm transition-all duration-200 flex items-center justify-center gap-2 disabled:opacity-50 disabled:cursor-not-allowed hover:scale-[1.01] active:scale-[0.99] disabled:hover:scale-100">
89412
+ @if (isSaving() && pendingSaveAction() === 'saveAndNext') {
89413
+ <svg class="animate-spin h-4 w-4" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24">
89414
+ <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
89415
+ <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>
89416
+ </svg>
89417
+ <span>Saving...</span>
89418
+ } @else {
89419
+ <span>Save & next unanswered</span>
89420
+ <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
89421
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path>
89422
+ </svg>
89423
+ }
89424
+ </button>
89425
+ </div>
89426
+ </div>
89427
+ </div>
89243
89428
  `
89244
89429
  }]
89245
- }], () => [], { question: [{ type: i0.Input, args: [{ isSignal: true, alias: "question", required: true }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], viewType: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewType", required: false }] }], selectedCategoryId: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedCategoryId", required: false }] }], selectedFocusAreaId: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedFocusAreaId", required: false }] }], filteredQuestions: [{ type: i0.Input, args: [{ isSignal: true, alias: "filteredQuestions", required: false }] }], profileShopAnswers: [{ type: i0.Input, args: [{ isSignal: true, alias: "profileShopAnswers", required: false }] }], backClick: [{ type: i0.Output, args: ["backClick"] }], saveClick: [{ type: i0.Output, args: ["saveClick"] }], saveAndNextClick: [{ type: i0.Output, args: ["saveAndNextClick"] }], scrollContainer: [{
89430
+ }], () => [], { question: [{ type: i0.Input, args: [{ isSignal: true, alias: "question", required: true }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], viewType: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewType", required: false }] }], selectedCategoryId: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedCategoryId", required: false }] }], selectedFocusAreaId: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedFocusAreaId", required: false }] }], filteredQuestions: [{ type: i0.Input, args: [{ isSignal: true, alias: "filteredQuestions", required: false }] }], profileShopAnswers: [{ type: i0.Input, args: [{ isSignal: true, alias: "profileShopAnswers", required: false }] }], backClick: [{ type: i0.Output, args: ["backClick"] }], saveClick: [{ type: i0.Output, args: ["saveClick"] }], saveAndNextClick: [{ type: i0.Output, args: ["saveAndNextClick"] }], navigateToList: [{ type: i0.Output, args: ["navigateToList"] }], navigateToNextQuestion: [{ type: i0.Output, args: ["navigateToNextQuestion"] }], scrollContainer: [{
89246
89431
  type: ViewChild,
89247
89432
  args: ['scrollContainer']
89248
89433
  }], stickySentinel: [{
@@ -89255,7 +89440,7 @@ class ShopProfileQuestionAnswerComponent {
89255
89440
  type: ViewChild,
89256
89441
  args: ['questionTitle']
89257
89442
  }] }); })();
89258
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ShopProfileQuestionAnswerComponent, { className: "ShopProfileQuestionAnswerComponent", filePath: "lib/components/profile-analysis-dashboard/cards/shop-profile-question-answer.component.ts", lineNumber: 209 }); })();
89443
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ShopProfileQuestionAnswerComponent, { className: "ShopProfileQuestionAnswerComponent", filePath: "lib/components/profile-analysis-dashboard/cards/shop-profile-question-answer.component.ts", lineNumber: 259 }); })();
89259
89444
 
89260
89445
  const _c0$4 = ["modalContent"];
89261
89446
  const _c1$1 = ["modalWrapper"];
@@ -89367,7 +89552,7 @@ function ShopProfileQuestionsModalComponent_Conditional_0_Conditional_9_Conditio
89367
89552
  function ShopProfileQuestionsModalComponent_Conditional_0_Conditional_9_Conditional_14_Template(rf, ctx) { if (rf & 1) {
89368
89553
  const _r7 = i0.ɵɵgetCurrentView();
89369
89554
  i0.ɵɵelementStart(0, "symphiq-shop-profile-question-answer", 36);
89370
- i0.ɵɵlistener("backClick", function ShopProfileQuestionsModalComponent_Conditional_0_Conditional_9_Conditional_14_Template_symphiq_shop_profile_question_answer_backClick_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onBackFromAnswerMode()); })("saveClick", function ShopProfileQuestionsModalComponent_Conditional_0_Conditional_9_Conditional_14_Template_symphiq_shop_profile_question_answer_saveClick_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onSaveAnswer()); })("saveAndNextClick", function ShopProfileQuestionsModalComponent_Conditional_0_Conditional_9_Conditional_14_Template_symphiq_shop_profile_question_answer_saveAndNextClick_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onSaveAndNextAnswer()); });
89555
+ i0.ɵɵlistener("backClick", function ShopProfileQuestionsModalComponent_Conditional_0_Conditional_9_Conditional_14_Template_symphiq_shop_profile_question_answer_backClick_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onBackFromAnswerMode()); })("saveClick", function ShopProfileQuestionsModalComponent_Conditional_0_Conditional_9_Conditional_14_Template_symphiq_shop_profile_question_answer_saveClick_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onSaveAnswer($event)); })("saveAndNextClick", function ShopProfileQuestionsModalComponent_Conditional_0_Conditional_9_Conditional_14_Template_symphiq_shop_profile_question_answer_saveAndNextClick_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onSaveAndNextAnswer($event)); })("navigateToList", function ShopProfileQuestionsModalComponent_Conditional_0_Conditional_9_Conditional_14_Template_symphiq_shop_profile_question_answer_navigateToList_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onNavigateToList()); })("navigateToNextQuestion", function ShopProfileQuestionsModalComponent_Conditional_0_Conditional_9_Conditional_14_Template_symphiq_shop_profile_question_answer_navigateToNextQuestion_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onNavigateToNextQuestion()); });
89371
89556
  i0.ɵɵelementEnd();
89372
89557
  } if (rf & 2) {
89373
89558
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -89448,6 +89633,7 @@ class ShopProfileQuestionsModalComponent {
89448
89633
  this.viewMode = input(ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "viewMode" }] : []));
89449
89634
  this.close = output();
89450
89635
  this.questionAnswerClick = output();
89636
+ this.answerSave = output();
89451
89637
  this.renderer = inject(Renderer2);
89452
89638
  this.document = inject(DOCUMENT);
89453
89639
  this.hostElement = inject(ElementRef);
@@ -89500,7 +89686,8 @@ class ShopProfileQuestionsModalComponent {
89500
89686
  return [];
89501
89687
  }, ...(ngDevMode ? [{ debugName: "filteredQuestions" }] : []));
89502
89688
  this.answeredCount = computed(() => {
89503
- return this.filteredQuestions().filter(q => q.answered === true).length;
89689
+ const answers = this.profileShopAnswers();
89690
+ return this.filteredQuestions().filter(q => answers.some(a => a.profileQuestionId === q.id)).length;
89504
89691
  }, ...(ngDevMode ? [{ debugName: "answeredCount" }] : []));
89505
89692
  this.totalCount = computed(() => {
89506
89693
  return this.filteredQuestions().length;
@@ -89519,7 +89706,9 @@ class ShopProfileQuestionsModalComponent {
89519
89706
  this.moveModalToBody();
89520
89707
  this.modalReady.set(true);
89521
89708
  if (this.startDirectAnswer()) {
89522
- const firstUnanswered = this.filteredQuestions().find(q => !q.answered);
89709
+ const answers = this.profileShopAnswers();
89710
+ const isAnswered = (q) => answers.some(a => a.profileQuestionId === q.id);
89711
+ const firstUnanswered = this.filteredQuestions().find(q => !isAnswered(q));
89523
89712
  if (firstUnanswered) {
89524
89713
  this.answerModeActive.set(true);
89525
89714
  this.questionForAnswer.set(firstUnanswered);
@@ -89575,11 +89764,38 @@ class ShopProfileQuestionsModalComponent {
89575
89764
  this.navigationHistory.set([]);
89576
89765
  }
89577
89766
  }
89578
- onSaveAnswer() {
89579
- // Placeholder for save logic
89767
+ onSaveAnswer(event) {
89768
+ this.answerSave.emit(event);
89769
+ }
89770
+ onSaveAndNextAnswer(event) {
89771
+ this.answerSave.emit(event);
89580
89772
  }
89581
- onSaveAndNextAnswer() {
89582
- // Placeholder for save and next logic
89773
+ onNavigateToList() {
89774
+ this.answerModeActive.set(false);
89775
+ this.questionForAnswer.set(null);
89776
+ this.navigationHistory.set([]);
89777
+ }
89778
+ onNavigateToNextQuestion() {
89779
+ const currentQuestion = this.questionForAnswer();
89780
+ if (currentQuestion) {
89781
+ const questions = this.filteredQuestions();
89782
+ const answers = this.profileShopAnswers();
89783
+ const isAnswered = (q) => answers.some(a => a.profileQuestionId === q.id);
89784
+ const currentIndex = questions.findIndex(q => q.id === currentQuestion.id);
89785
+ const nextUnanswered = questions.slice(currentIndex + 1).find(q => !isAnswered(q))
89786
+ || questions.slice(0, currentIndex).find(q => !isAnswered(q));
89787
+ if (nextUnanswered) {
89788
+ this.questionForAnswer.set(nextUnanswered);
89789
+ if (nextUnanswered.id) {
89790
+ this.navigationHistory.set([...this.navigationHistory(), nextUnanswered.id]);
89791
+ }
89792
+ }
89793
+ else {
89794
+ this.answerModeActive.set(false);
89795
+ this.questionForAnswer.set(null);
89796
+ this.navigationHistory.set([]);
89797
+ }
89798
+ }
89583
89799
  }
89584
89800
  formatCategoryName(category) {
89585
89801
  return category
@@ -89696,7 +89912,7 @@ class ShopProfileQuestionsModalComponent {
89696
89912
  let _t;
89697
89913
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.modalContent = _t.first);
89698
89914
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.modalWrapper = _t.first);
89699
- } }, inputs: { isOpen: [1, "isOpen"], questions: [1, "questions"], profileShopAnswers: [1, "profileShopAnswers"], users: [1, "users"], selectedCategoryId: [1, "selectedCategoryId"], selectedFocusAreaId: [1, "selectedFocusAreaId"], showAllQuestions: [1, "showAllQuestions"], startDirectAnswer: [1, "startDirectAnswer"], viewMode: [1, "viewMode"] }, outputs: { close: "close", questionAnswerClick: "questionAnswerClick" }, decls: 1, vars: 1, consts: [["modalWrapper", ""], ["modalContent", ""], [1, "fixed", "inset-0", "overflow-y-auto", "z-[9000]"], [1, "fixed", "inset-0", "overflow-y-auto", "z-[9000]", 3, "click"], [1, "flex", "items-center", "justify-center", "min-h-screen", "px-4", "pt-4", "pb-20", "text-center", "sm:block", "sm:p-0"], ["aria-hidden", "true", 1, "fixed", "inset-0", "backdrop-blur-sm", 3, "ngClass"], ["aria-hidden", "true", 1, "hidden", "sm:inline-block", "sm:align-middle", "sm:h-screen"], [1, "relative", "inline-block", "align-bottom", "rounded-2xl", "text-left", "overflow-hidden", "shadow-xl", "sm:my-8", "sm:align-middle", "sm:w-full", "sm:max-w-4xl", "border", "backdrop-blur-xl", 3, "click", "ngClass"], [1, "px-6", "py-5", "border-b", "backdrop-blur-sm", "sticky", "top-0", "z-10", 3, "ngClass"], [1, "flex", "items-start", "justify-between"], [1, "flex-1"], [1, "text-xs", "font-semibold", "uppercase", "tracking-wider", "mb-1", 3, "ngClass"], [1, "text-xl", "font-bold", "mb-3", 3, "ngClass"], [1, "space-y-2"], [1, "h-2", "rounded-full", "overflow-hidden", 3, "ngClass"], [1, "h-full", "transition-all", "duration-500", "ease-out", "rounded-full", 3, "ngClass"], [1, "text-sm", "font-medium", 3, "ngClass"], ["type", "button", 1, "transition-all", "rounded-lg", "p-1", "hover:scale-110", "active:scale-90", "cursor-pointer", "relative", "ml-4", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-6", "h-6"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M6 18L18 6M6 6l12 12"], [1, "px-6", "py-8", "max-h-[70vh]", "overflow-y-auto", "backdrop-blur-sm", 3, "ngClass"], [1, "text-center", "py-12"], [1, "flex", "flex-col", "gap-6"], [1, "w-16", "h-16", "mx-auto", "mb-4", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-full", "h-full"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "1.5", "d", "M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"], [1, "text-lg", "font-semibold", "mb-2", 3, "ngClass"], [1, "text-sm", 3, "ngClass"], [3, "question", "viewMode", "viewType", "profileShopAnswers", "users"], [3, "answerClick", "question", "viewMode", "viewType", "profileShopAnswers", "users"], [1, "flex", "items-center", "gap-3"], ["type", "button", 1, "transition-all", "rounded-lg", "p-1", "hover:scale-110", "active:scale-90", "cursor-pointer", 3, "click", "ngClass"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M15 19l-7-7 7-7"], [1, "text-xl", "font-bold", 3, "ngClass"], [1, "h-[70vh]", "overflow-hidden"], [1, "block", "h-full", 3, "question", "viewMode", "viewType", "selectedCategoryId", "selectedFocusAreaId", "filteredQuestions", "profileShopAnswers"], [1, "block", "h-full", 3, "backClick", "saveClick", "saveAndNextClick", "question", "viewMode", "viewType", "selectedCategoryId", "selectedFocusAreaId", "filteredQuestions", "profileShopAnswers"]], template: function ShopProfileQuestionsModalComponent_Template(rf, ctx) { if (rf & 1) {
89915
+ } }, inputs: { isOpen: [1, "isOpen"], questions: [1, "questions"], profileShopAnswers: [1, "profileShopAnswers"], users: [1, "users"], selectedCategoryId: [1, "selectedCategoryId"], selectedFocusAreaId: [1, "selectedFocusAreaId"], showAllQuestions: [1, "showAllQuestions"], startDirectAnswer: [1, "startDirectAnswer"], viewMode: [1, "viewMode"] }, outputs: { close: "close", questionAnswerClick: "questionAnswerClick", answerSave: "answerSave" }, decls: 1, vars: 1, consts: [["modalWrapper", ""], ["modalContent", ""], [1, "fixed", "inset-0", "overflow-y-auto", "z-[9000]"], [1, "fixed", "inset-0", "overflow-y-auto", "z-[9000]", 3, "click"], [1, "flex", "items-center", "justify-center", "min-h-screen", "px-4", "pt-4", "pb-20", "text-center", "sm:block", "sm:p-0"], ["aria-hidden", "true", 1, "fixed", "inset-0", "backdrop-blur-sm", 3, "ngClass"], ["aria-hidden", "true", 1, "hidden", "sm:inline-block", "sm:align-middle", "sm:h-screen"], [1, "relative", "inline-block", "align-bottom", "rounded-2xl", "text-left", "overflow-hidden", "shadow-xl", "sm:my-8", "sm:align-middle", "sm:w-full", "sm:max-w-4xl", "border", "backdrop-blur-xl", 3, "click", "ngClass"], [1, "px-6", "py-5", "border-b", "backdrop-blur-sm", "sticky", "top-0", "z-10", 3, "ngClass"], [1, "flex", "items-start", "justify-between"], [1, "flex-1"], [1, "text-xs", "font-semibold", "uppercase", "tracking-wider", "mb-1", 3, "ngClass"], [1, "text-xl", "font-bold", "mb-3", 3, "ngClass"], [1, "space-y-2"], [1, "h-2", "rounded-full", "overflow-hidden", 3, "ngClass"], [1, "h-full", "transition-all", "duration-500", "ease-out", "rounded-full", 3, "ngClass"], [1, "text-sm", "font-medium", 3, "ngClass"], ["type", "button", 1, "transition-all", "rounded-lg", "p-1", "hover:scale-110", "active:scale-90", "cursor-pointer", "relative", "ml-4", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-6", "h-6"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M6 18L18 6M6 6l12 12"], [1, "px-6", "py-8", "max-h-[70vh]", "overflow-y-auto", "backdrop-blur-sm", 3, "ngClass"], [1, "text-center", "py-12"], [1, "flex", "flex-col", "gap-6"], [1, "w-16", "h-16", "mx-auto", "mb-4", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-full", "h-full"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "1.5", "d", "M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"], [1, "text-lg", "font-semibold", "mb-2", 3, "ngClass"], [1, "text-sm", 3, "ngClass"], [3, "question", "viewMode", "viewType", "profileShopAnswers", "users"], [3, "answerClick", "question", "viewMode", "viewType", "profileShopAnswers", "users"], [1, "flex", "items-center", "gap-3"], ["type", "button", 1, "transition-all", "rounded-lg", "p-1", "hover:scale-110", "active:scale-90", "cursor-pointer", 3, "click", "ngClass"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M15 19l-7-7 7-7"], [1, "text-xl", "font-bold", 3, "ngClass"], [1, "h-[70vh]", "overflow-hidden"], [1, "block", "h-full", 3, "question", "viewMode", "viewType", "selectedCategoryId", "selectedFocusAreaId", "filteredQuestions", "profileShopAnswers"], [1, "block", "h-full", 3, "backClick", "saveClick", "saveAndNextClick", "navigateToList", "navigateToNextQuestion", "question", "viewMode", "viewType", "selectedCategoryId", "selectedFocusAreaId", "filteredQuestions", "profileShopAnswers"]], template: function ShopProfileQuestionsModalComponent_Template(rf, ctx) { if (rf & 1) {
89700
89916
  i0.ɵɵconditionalCreate(0, ShopProfileQuestionsModalComponent_Conditional_0_Template, 10, 5, "div", 2);
89701
89917
  } if (rf & 2) {
89702
89918
  i0.ɵɵconditional(ctx.isOpen() ? 0 : -1);
@@ -89885,8 +90101,10 @@ class ShopProfileQuestionsModalComponent {
89885
90101
  [filteredQuestions]="filteredQuestions()"
89886
90102
  [profileShopAnswers]="profileShopAnswers()"
89887
90103
  (backClick)="onBackFromAnswerMode()"
89888
- (saveClick)="onSaveAnswer()"
89889
- (saveAndNextClick)="onSaveAndNextAnswer()" />
90104
+ (saveClick)="onSaveAnswer($event)"
90105
+ (saveAndNextClick)="onSaveAndNextAnswer($event)"
90106
+ (navigateToList)="onNavigateToList()"
90107
+ (navigateToNextQuestion)="onNavigateToNextQuestion()" />
89890
90108
  }
89891
90109
  </div>
89892
90110
  }
@@ -89896,14 +90114,14 @@ class ShopProfileQuestionsModalComponent {
89896
90114
  }
89897
90115
  `
89898
90116
  }]
89899
- }], () => [], { isOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "isOpen", required: false }] }], questions: [{ type: i0.Input, args: [{ isSignal: true, alias: "questions", required: false }] }], profileShopAnswers: [{ type: i0.Input, args: [{ isSignal: true, alias: "profileShopAnswers", required: false }] }], users: [{ type: i0.Input, args: [{ isSignal: true, alias: "users", required: false }] }], selectedCategoryId: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedCategoryId", required: false }] }], selectedFocusAreaId: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedFocusAreaId", required: false }] }], showAllQuestions: [{ type: i0.Input, args: [{ isSignal: true, alias: "showAllQuestions", required: false }] }], startDirectAnswer: [{ type: i0.Input, args: [{ isSignal: true, alias: "startDirectAnswer", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], close: [{ type: i0.Output, args: ["close"] }], questionAnswerClick: [{ type: i0.Output, args: ["questionAnswerClick"] }], modalContent: [{
90117
+ }], () => [], { isOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "isOpen", required: false }] }], questions: [{ type: i0.Input, args: [{ isSignal: true, alias: "questions", required: false }] }], profileShopAnswers: [{ type: i0.Input, args: [{ isSignal: true, alias: "profileShopAnswers", required: false }] }], users: [{ type: i0.Input, args: [{ isSignal: true, alias: "users", required: false }] }], selectedCategoryId: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedCategoryId", required: false }] }], selectedFocusAreaId: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedFocusAreaId", required: false }] }], showAllQuestions: [{ type: i0.Input, args: [{ isSignal: true, alias: "showAllQuestions", required: false }] }], startDirectAnswer: [{ type: i0.Input, args: [{ isSignal: true, alias: "startDirectAnswer", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], close: [{ type: i0.Output, args: ["close"] }], questionAnswerClick: [{ type: i0.Output, args: ["questionAnswerClick"] }], answerSave: [{ type: i0.Output, args: ["answerSave"] }], modalContent: [{
89900
90118
  type: ViewChild,
89901
90119
  args: ['modalContent']
89902
90120
  }], modalWrapper: [{
89903
90121
  type: ViewChild,
89904
90122
  args: ['modalWrapper']
89905
90123
  }] }); })();
89906
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ShopProfileQuestionsModalComponent, { className: "ShopProfileQuestionsModalComponent", filePath: "lib/components/profile-analysis-dashboard/cards/shop-profile-questions-modal.component.ts", lineNumber: 199 }); })();
90124
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ShopProfileQuestionsModalComponent, { className: "ShopProfileQuestionsModalComponent", filePath: "lib/components/profile-analysis-dashboard/cards/shop-profile-questions-modal.component.ts", lineNumber: 201 }); })();
89907
90125
 
89908
90126
  const _c0$3 = ["chartdiv"];
89909
90127
  function ShopProfileStatusCardComponent_Conditional_20_Template(rf, ctx) { if (rf & 1) {
@@ -89959,6 +90177,7 @@ class ShopProfileStatusCardComponent {
89959
90177
  this.startAnsweringAll = input(false, ...(ngDevMode ? [{ debugName: "startAnsweringAll" }] : []));
89960
90178
  this.startCategoryQuestions = output();
89961
90179
  this.questionAnswerRequested = output();
90180
+ this.answerSave = output();
89962
90181
  this.currentView = signal('category', ...(ngDevMode ? [{ debugName: "currentView" }] : []));
89963
90182
  this.questionsModalOpen = signal(false, ...(ngDevMode ? [{ debugName: "questionsModalOpen" }] : []));
89964
90183
  this.selectedCategoryId = signal(null, ...(ngDevMode ? [{ debugName: "selectedCategoryId" }] : []));
@@ -90090,6 +90309,9 @@ class ShopProfileStatusCardComponent {
90090
90309
  onQuestionAnswerClick(question) {
90091
90310
  this.questionAnswerRequested.emit(question);
90092
90311
  }
90312
+ onAnswerSave(event) {
90313
+ this.answerSave.emit(event);
90314
+ }
90093
90315
  formatCategoryName(category) {
90094
90316
  return category
90095
90317
  .split('_')
@@ -90260,7 +90482,7 @@ class ShopProfileStatusCardComponent {
90260
90482
  } if (rf & 2) {
90261
90483
  let _t;
90262
90484
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.chartDiv = _t.first);
90263
- } }, inputs: { viewMode: [1, "viewMode"], totalQuestions: [1, "totalQuestions"], answeredQuestions: [1, "answeredQuestions"], questions: [1, "questions"], profileShopAnswers: [1, "profileShopAnswers"], users: [1, "users"], startAnsweringAll: [1, "startAnsweringAll"] }, outputs: { startCategoryQuestions: "startCategoryQuestions", questionAnswerRequested: "questionAnswerRequested" }, decls: 27, vars: 21, consts: [["chartdiv", ""], [1, "rounded-2xl", "border", "shadow-lg", "overflow-hidden", 3, "ngClass"], [1, "px-6", "py-5", "border-b", 3, "ngClass"], [1, "flex", "items-center", "justify-between"], [1, "flex", "items-center", "gap-3"], [1, "p-2.5", "rounded-lg", 3, "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", "M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01"], [1, "text-xl", "font-bold", 3, "ngClass"], [1, "text-sm", "mt-0.5", 3, "ngClass"], [1, "p-6", 3, "ngClass"], [1, "flex", "flex-wrap", "items-center", "gap-6", "mb-8"], [1, "rounded-xl", "p-6", "flex-1", "min-w-[300px]", 3, "ngClass"], [1, "flex", "items-start", "gap-4"], [1, "flex-shrink-0", "p-2", "rounded-lg", 3, "ngClass"], ["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, "flex-1"], [1, "leading-relaxed", 3, "ngClass"], [1, "flex-shrink-0"], [1, "w-[250px]", "h-[250px]"], [3, "close", "questionAnswerClick", "isOpen", "questions", "profileShopAnswers", "users", "selectedCategoryId", "selectedFocusAreaId", "showAllQuestions", "startDirectAnswer", "viewMode"], [1, "font-semibold", "text-lg", "mb-3", 3, "ngClass"], [1, "flex", "justify-center", "mb-6"], [3, "viewChanged", "viewMode", "currentView"], [3, "itemClick", "viewMode", "items"]], template: function ShopProfileStatusCardComponent_Template(rf, ctx) { if (rf & 1) {
90485
+ } }, inputs: { viewMode: [1, "viewMode"], totalQuestions: [1, "totalQuestions"], answeredQuestions: [1, "answeredQuestions"], questions: [1, "questions"], profileShopAnswers: [1, "profileShopAnswers"], users: [1, "users"], startAnsweringAll: [1, "startAnsweringAll"] }, outputs: { startCategoryQuestions: "startCategoryQuestions", questionAnswerRequested: "questionAnswerRequested", answerSave: "answerSave" }, decls: 27, vars: 21, consts: [["chartdiv", ""], [1, "rounded-2xl", "border", "shadow-lg", "overflow-hidden", 3, "ngClass"], [1, "px-6", "py-5", "border-b", 3, "ngClass"], [1, "flex", "items-center", "justify-between"], [1, "flex", "items-center", "gap-3"], [1, "p-2.5", "rounded-lg", 3, "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", "M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01"], [1, "text-xl", "font-bold", 3, "ngClass"], [1, "text-sm", "mt-0.5", 3, "ngClass"], [1, "p-6", 3, "ngClass"], [1, "flex", "flex-wrap", "items-center", "gap-6", "mb-8"], [1, "rounded-xl", "p-6", "flex-1", "min-w-[300px]", 3, "ngClass"], [1, "flex", "items-start", "gap-4"], [1, "flex-shrink-0", "p-2", "rounded-lg", 3, "ngClass"], ["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, "flex-1"], [1, "leading-relaxed", 3, "ngClass"], [1, "flex-shrink-0"], [1, "w-[250px]", "h-[250px]"], [3, "close", "questionAnswerClick", "answerSave", "isOpen", "questions", "profileShopAnswers", "users", "selectedCategoryId", "selectedFocusAreaId", "showAllQuestions", "startDirectAnswer", "viewMode"], [1, "font-semibold", "text-lg", "mb-3", 3, "ngClass"], [1, "flex", "justify-center", "mb-6"], [3, "viewChanged", "viewMode", "currentView"], [3, "itemClick", "viewMode", "items"]], template: function ShopProfileStatusCardComponent_Template(rf, ctx) { if (rf & 1) {
90264
90486
  const _r1 = i0.ɵɵgetCurrentView();
90265
90487
  i0.ɵɵelementStart(0, "div", 1)(1, "div", 2)(2, "div", 3)(3, "div", 4)(4, "div", 5);
90266
90488
  i0.ɵɵnamespaceSVG();
@@ -90289,7 +90511,7 @@ class ShopProfileStatusCardComponent {
90289
90511
  i0.ɵɵconditionalCreate(25, ShopProfileStatusCardComponent_Conditional_25_Template, 3, 4);
90290
90512
  i0.ɵɵelementEnd()();
90291
90513
  i0.ɵɵelementStart(26, "symphiq-shop-profile-questions-modal", 20);
90292
- i0.ɵɵlistener("close", function ShopProfileStatusCardComponent_Template_symphiq_shop_profile_questions_modal_close_26_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onQuestionsModalClose()); })("questionAnswerClick", function ShopProfileStatusCardComponent_Template_symphiq_shop_profile_questions_modal_questionAnswerClick_26_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onQuestionAnswerClick($event)); });
90514
+ i0.ɵɵlistener("close", function ShopProfileStatusCardComponent_Template_symphiq_shop_profile_questions_modal_close_26_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onQuestionsModalClose()); })("questionAnswerClick", function ShopProfileStatusCardComponent_Template_symphiq_shop_profile_questions_modal_questionAnswerClick_26_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onQuestionAnswerClick($event)); })("answerSave", function ShopProfileStatusCardComponent_Template_symphiq_shop_profile_questions_modal_answerSave_26_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onAnswerSave($event)); });
90293
90515
  i0.ɵɵelementEnd();
90294
90516
  } if (rf & 2) {
90295
90517
  i0.ɵɵproperty("ngClass", ctx.containerClasses());
@@ -90412,14 +90634,15 @@ class ShopProfileStatusCardComponent {
90412
90634
  [startDirectAnswer]="startDirectAnswer()"
90413
90635
  [viewMode]="viewMode()"
90414
90636
  (close)="onQuestionsModalClose()"
90415
- (questionAnswerClick)="onQuestionAnswerClick($event)" />
90637
+ (questionAnswerClick)="onQuestionAnswerClick($event)"
90638
+ (answerSave)="onAnswerSave($event)" />
90416
90639
  `
90417
90640
  }]
90418
- }], null, { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], totalQuestions: [{ type: i0.Input, args: [{ isSignal: true, alias: "totalQuestions", required: false }] }], answeredQuestions: [{ type: i0.Input, args: [{ isSignal: true, alias: "answeredQuestions", required: false }] }], questions: [{ type: i0.Input, args: [{ isSignal: true, alias: "questions", required: false }] }], profileShopAnswers: [{ type: i0.Input, args: [{ isSignal: true, alias: "profileShopAnswers", required: false }] }], users: [{ type: i0.Input, args: [{ isSignal: true, alias: "users", required: false }] }], startAnsweringAll: [{ type: i0.Input, args: [{ isSignal: true, alias: "startAnsweringAll", required: false }] }], startCategoryQuestions: [{ type: i0.Output, args: ["startCategoryQuestions"] }], questionAnswerRequested: [{ type: i0.Output, args: ["questionAnswerRequested"] }], chartDiv: [{
90641
+ }], null, { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], totalQuestions: [{ type: i0.Input, args: [{ isSignal: true, alias: "totalQuestions", required: false }] }], answeredQuestions: [{ type: i0.Input, args: [{ isSignal: true, alias: "answeredQuestions", required: false }] }], questions: [{ type: i0.Input, args: [{ isSignal: true, alias: "questions", required: false }] }], profileShopAnswers: [{ type: i0.Input, args: [{ isSignal: true, alias: "profileShopAnswers", required: false }] }], users: [{ type: i0.Input, args: [{ isSignal: true, alias: "users", required: false }] }], startAnsweringAll: [{ type: i0.Input, args: [{ isSignal: true, alias: "startAnsweringAll", required: false }] }], startCategoryQuestions: [{ type: i0.Output, args: ["startCategoryQuestions"] }], questionAnswerRequested: [{ type: i0.Output, args: ["questionAnswerRequested"] }], answerSave: [{ type: i0.Output, args: ["answerSave"] }], chartDiv: [{
90419
90642
  type: ViewChild,
90420
90643
  args: ['chartdiv', { static: false }]
90421
90644
  }] }); })();
90422
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ShopProfileStatusCardComponent, { className: "ShopProfileStatusCardComponent", filePath: "lib/components/profile-analysis-dashboard/cards/shop-profile-status-card.component.ts", lineNumber: 125 }); })();
90645
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ShopProfileStatusCardComponent, { className: "ShopProfileStatusCardComponent", filePath: "lib/components/profile-analysis-dashboard/cards/shop-profile-status-card.component.ts", lineNumber: 127 }); })();
90423
90646
 
90424
90647
  function ShopProfileStickyFooterComponent_Conditional_7_Template(rf, ctx) { if (rf & 1) {
90425
90648
  i0.ɵɵelementStart(0, "div", 5);
@@ -91266,7 +91489,7 @@ function SymphiqProfileAnalysisDashboardComponent_Conditional_8_Template(rf, ctx
91266
91489
  function SymphiqProfileAnalysisDashboardComponent_Conditional_9_Conditional_0_Template(rf, ctx) { if (rf & 1) {
91267
91490
  const _r3 = i0.ɵɵgetCurrentView();
91268
91491
  i0.ɵɵelementStart(0, "div", 30)(1, "symphiq-shop-profile-status-card", 31, 0);
91269
- i0.ɵɵlistener("startCategoryQuestions", function SymphiqProfileAnalysisDashboardComponent_Conditional_9_Conditional_0_Template_symphiq_shop_profile_status_card_startCategoryQuestions_1_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.handleStartCategoryQuestions($event)); });
91492
+ i0.ɵɵlistener("startCategoryQuestions", function SymphiqProfileAnalysisDashboardComponent_Conditional_9_Conditional_0_Template_symphiq_shop_profile_status_card_startCategoryQuestions_1_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.handleStartCategoryQuestions($event)); })("answerSave", function SymphiqProfileAnalysisDashboardComponent_Conditional_9_Conditional_0_Template_symphiq_shop_profile_status_card_answerSave_1_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.handleProfileQuestionAnswerSave($event)); });
91270
91493
  i0.ɵɵelementEnd()();
91271
91494
  } if (rf & 2) {
91272
91495
  const ctx_r1 = i0.ɵɵnextContext(2);
@@ -91903,6 +92126,7 @@ class SymphiqProfileAnalysisDashboardComponent {
91903
92126
  this.checkoutPlanClick = output();
91904
92127
  this.answerShopProfileQuestions = output();
91905
92128
  this.continueShopProfileQuestions = output();
92129
+ this.profileQuestionAnswerSave = output();
91906
92130
  this.isCurrencySelectionLoading = signal(false, ...(ngDevMode ? [{ debugName: "isCurrencySelectionLoading" }] : []));
91907
92131
  this.selectedCurrency = signal(null, ...(ngDevMode ? [{ debugName: "selectedCurrency" }] : []));
91908
92132
  this.isPlanLoading = signal(false, ...(ngDevMode ? [{ debugName: "isPlanLoading" }] : []));
@@ -92775,6 +92999,9 @@ class SymphiqProfileAnalysisDashboardComponent {
92775
92999
  handleStartCategoryQuestions(categoryId) {
92776
93000
  this.answerShopProfileQuestions.emit(categoryId);
92777
93001
  }
93002
+ handleProfileQuestionAnswerSave(event) {
93003
+ this.profileQuestionAnswerSave.emit(event);
93004
+ }
92778
93005
  handleShopProfileContinueClick() {
92779
93006
  if (this.shopProfileStatusCard) {
92780
93007
  this.shopProfileStatusCard.openAllQuestionsAnswerMode();
@@ -92790,7 +93017,7 @@ class SymphiqProfileAnalysisDashboardComponent {
92790
93017
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.shopProfileStatusCard = _t.first);
92791
93018
  } }, hostBindings: function SymphiqProfileAnalysisDashboardComponent_HostBindings(rf, ctx) { if (rf & 1) {
92792
93019
  i0.ɵɵlistener("scroll", function SymphiqProfileAnalysisDashboardComponent_scroll_HostBindingHandler($event) { return ctx.onWindowScroll($event); }, i0.ɵɵresolveWindow);
92793
- } }, inputs: { viewMode: [1, "viewMode"], requestedByUser: [1, "requestedByUser"], createdDate: [1, "createdDate"], embedded: [1, "embedded"], profileAnalysis: [1, "profileAnalysis"], profile: [1, "profile"], funnelAnalysis: [1, "funnelAnalysis"], analysisType: [1, "analysisType"], focusAreaDetails: [1, "focusAreaDetails"], account: [1, "account"], profileShop: [1, "profileShop"], profileShopQuestions: [1, "profileShopQuestions"], profileShopAnswers: [1, "profileShopAnswers"], profileShopAnswerHistories: [1, "profileShopAnswerHistories"], itemStatusProfileShop: [1, "itemStatusProfileShop"], itemStatusProfileAnalysis: [1, "itemStatusProfileAnalysis"], planCardInfos: [1, "planCardInfos"], isOnboarded: [1, "isOnboarded"], scrollEvent: [1, "scrollEvent"], scrollElement: [1, "scrollElement"], users: [1, "users"], isLoading: [1, "isLoading"], forDemo: [1, "forDemo"], maxAccessibleStepId: [1, "maxAccessibleStepId"] }, outputs: { stepClick: "stepClick", nextStepClick: "nextStepClick", currencySelectionClick: "currencySelectionClick", editCurrencyClick: "editCurrencyClick", periodUnitChanged: "periodUnitChanged", planSelected: "planSelected", checkoutPlanClick: "checkoutPlanClick", answerShopProfileQuestions: "answerShopProfileQuestions", continueShopProfileQuestions: "continueShopProfileQuestions" }, features: [i0.ɵɵNgOnChangesFeature], decls: 30, vars: 51, consts: [["shopProfileStatusCard", ""], [1, "min-h-screen", "relative", 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, "h-full", "transition-all", "duration-200", "ease-out", 3, "ngClass"], [1, "relative", "z-[51]"], [3, "searchClick", "viewModeClick", "title", "subtitle", "currentSection", "viewMode", "viewModeLabel", "isLoading", "requestedByUser", "createdDate"], [3, "viewMode", "currentStepId", "showNextStepAction", "forDemo", "maxAccessibleStepId"], [1, "relative", "z-10", "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-12", "space-y-12"], [1, "mb-12"], [3, "sections", "viewMode", "embedded", "scrollElement"], [3, "close", "isOpen", "isLightMode"], [3, "close", "modeSelected", "isOpen", "currentMode", "viewMode"], [3, "isLightMode", "allMetrics", "allInsights", "allBusinessInsights", "allCharts"], [3, "goal", "viewMode", "isInModal", "allMetrics", "allCharts", "allInsights", "currentModalState", "businessProfile"], [3, "goal", "viewMode"], [3, "objective", "goalTitle", "viewMode"], [3, "strategy", "objectiveTitle", "goalTitle", "viewMode", "allMetrics", "allCharts", "allInsights", "allBusinessInsights", "currentModalState"], [3, "category", "viewMode", "scrollToSection"], [3, "strength", "viewMode", "allFunnelStrengths", "currentModalState"], [3, "gap", "viewMode", "allGoals", "allWeaknesses", "currentModalState"], [3, "opportunity", "viewMode", "allStrengths", "currentModalState"], [3, "isLightMode", "viewMode", "allMetrics", "allInsights", "allCharts"], [3, "isLightMode"], [3, "viewMode", "isEnabled", "isLoading"], [3, "viewMode", "totalQuestions", "answeredQuestions"], [1, "fixed", "bottom-0", "left-0", "right-0", "z-50", "border-t", "backdrop-blur-lg", 3, "ngClass"], [3, "nextStepClick", "stepClick", "viewMode", "currentStepId", "showNextStepAction", "forDemo", "maxAccessibleStepId"], [3, "viewMode", "businessName", "isOnboarded"], [3, "viewMode", "focusAreaDomain", "focusAreaName", "focusAreaDetails"], [3, "viewMode", "metricName", "isOnboarded"], [1, "mb-8"], [3, "startCategoryQuestions", "viewMode", "totalQuestions", "answeredQuestions", "questions", "profileShopAnswers", "users"], [1, "rounded-2xl", "border", "shadow-lg", "overflow-hidden", 3, "ngClass"], [3, "goals", "viewMode"], ["title", "Generating Your Shop Profile", "subtitle", "We're analyzing your data to create shop specific questions and answers. They will appear when ready.", 3, "itemStatus", "viewMode"], [3, "viewMoreClick", "goals", "viewMode"], [1, "mb-32"], [3, "viewMode", "selectedCurrency"], [3, "currencySelected", "viewMode", "isLoading", "initialCurrency"], [3, "viewMode"], [3, "periodUnitChanged", "planSelected", "editCurrency", "checkout", "viewMode", "selectedCurrency", "planCardInfos", "isLoading", "selectedPeriodUnit"], [3, "editCurrency", "viewMode", "selectedCurrency"], [3, "sections", "viewMode", "executiveSummary", "focusAreaExecutiveSummary", "metricExecutiveSummary", "metricName", "allGoals", "allMetrics", "allCharts", "allInsights", "businessProfile"], ["id", "section-executive-summary", 1, "space-y-6", "scroll-mt-24"], [3, "viewMode", "summary", "allGoals"], [3, "viewMode", "summary", "metricName", "allGoals"], [1, "space-y-8"], [1, "rounded-2xl", "p-8", "shadow-xl", 3, "ngClass"], [1, "space-y-6"], [1, "flex", "items-start", "justify-between", "gap-4"], [1, "flex-1"], [1, "text-2xl", "font-bold", "mb-3", 3, "ngClass"], [1, "text-lg", "leading-relaxed", 3, "ngClass"], [3, "grade", "gradeRationale", "viewMode"], [1, "rounded-xl", "p-6", 3, "ngClass"], [1, "grid", "grid-cols-1", "md:grid-cols-3", "gap-4"], ["type", "button", 1, "p-4", "rounded-xl", "text-left", "transition-all", "duration-200", "hover:scale-[1.02]", "active:scale-[0.98]", "group", "cursor-pointer", 3, "click", "ngClass"], [1, "text-xs", "font-semibold", "uppercase", "mb-1", 3, "ngClass"], [1, "text-3xl", "font-bold", "mb-2", 3, "ngClass"], [1, "flex", "items-center", "gap-1.5", "text-xs", "font-medium"], [3, "ngClass"], ["size", "w-4 h-4", 1, "transition-transform", "group-hover:translate-x-1", 3, "icon", "ngClass"], ["size", "w-4 h-4", 1, "transition-transform", "group-hover:translate-y-1", "animate-bounce", 3, "icon", "ngClass"], ["id", "quick-wins-section", 1, "space-y-4", "scroll-mt-24"], [1, "text-lg", "font-semibold", "mb-3", 3, "ngClass"], [1, "relative"], [1, "mb-6", "lg:float-left", "lg:mr-6", "lg:mb-4", "lg:max-w-[66%]"], [1, "text-sm", "leading-relaxed", "whitespace-pre-line", 3, "ngClass"], [1, "clear-both"], [3, "visual", "viewMode"], [1, "text-xl", "font-bold", 3, "ngClass"], [1, "grid", "grid-cols-1", "lg:grid-cols-2", "gap-6"], [1, "rounded-xl", "p-6", "transition-all", "duration-300", 3, "ngClass"], [1, "space-y-4"], [1, "flex", "items-start", "gap-3"], [1, "flex-shrink-0", "w-8", "h-8", "rounded-full", "flex", "items-center", "justify-center", "text-sm", "font-bold", 3, "ngClass"], [1, "font-semibold", "leading-tight", "flex-1", 3, "ngClass"], [1, "flex", "flex-wrap", "gap-2"], [1, "px-3", "py-1", "rounded-full", "text-xs", "font-semibold", 3, "ngClass"], [1, "flex", "items-center", "gap-2", "text-sm", 3, "ngClass"], [1, "space-y-2"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"], [1, "text-xs", "font-semibold", "uppercase", "tracking-wider", 3, "ngClass"], [3, "relatedGoalIds", "allGoals", "viewMode"], [3, "topPrioritiesClick", "priorityDetailClick", "viewMode", "summary", "allGoals"], [3, "topPrioritiesClick", "priorityDetailClick", "viewMode", "summary", "metricName", "allGoals"], [3, "viewMode", "sectionIcon"], [1, "rounded-xl", "p-8", "scroll-mt-24", 3, "id", "ngClass"], [1, "flex", "items-start", "gap-3", "mb-6"], [1, "flex-shrink-0", "w-12", "h-12", "rounded-xl", "flex", "items-center", "justify-center", 3, "ngClass"], [1, "text-2xl", "font-bold", 3, "ngClass"], [1, "mb-6", "flex", "flex-col", "lg:flex-row", "gap-6", "items-start", 3, "lg:flex-row-reverse"], [3, "section", "executiveSummary", "viewMode", "sectionIndex", "allGoals", "allMetrics", "allCharts", "allInsights", "businessProfile"], ["size", "w-6 h-6", 3, "icon"], [1, "mb-6", "flex", "flex-col", "lg:flex-row", "gap-6", "items-start"], [1, "w-full", "lg:w-2/3"], [1, "w-full", 3, "lg:w-1/3", "lg:w-full"], [1, "w-full"], [3, "continueClick", "viewMode", "isEnabled", "isLoading"], [3, "continueClick", "viewMode", "totalQuestions", "answeredQuestions"], [1, "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-4"], [1, "flex", "items-center", "gap-4"], [1, "px-6", "py-4", "rounded-xl", "font-semibold", "text-lg", "transition-all", "duration-300", "cursor-pointer", 3, "click", "ngClass"], [1, "flex-1", "px-6", "py-4", "rounded-xl", "font-semibold", "text-lg", "transition-all", "duration-300", "flex", "items-center", "justify-center", "gap-3", "shadow-2xl", 3, "click", "disabled", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-6", "h-6", "transition-transform", "duration-200"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 7l5 5m0 0l-5 5m5-5H6"]], template: function SymphiqProfileAnalysisDashboardComponent_Template(rf, ctx) { if (rf & 1) {
93020
+ } }, inputs: { viewMode: [1, "viewMode"], requestedByUser: [1, "requestedByUser"], createdDate: [1, "createdDate"], embedded: [1, "embedded"], profileAnalysis: [1, "profileAnalysis"], profile: [1, "profile"], funnelAnalysis: [1, "funnelAnalysis"], analysisType: [1, "analysisType"], focusAreaDetails: [1, "focusAreaDetails"], account: [1, "account"], profileShop: [1, "profileShop"], profileShopQuestions: [1, "profileShopQuestions"], profileShopAnswers: [1, "profileShopAnswers"], profileShopAnswerHistories: [1, "profileShopAnswerHistories"], itemStatusProfileShop: [1, "itemStatusProfileShop"], itemStatusProfileAnalysis: [1, "itemStatusProfileAnalysis"], planCardInfos: [1, "planCardInfos"], isOnboarded: [1, "isOnboarded"], scrollEvent: [1, "scrollEvent"], scrollElement: [1, "scrollElement"], users: [1, "users"], isLoading: [1, "isLoading"], forDemo: [1, "forDemo"], maxAccessibleStepId: [1, "maxAccessibleStepId"] }, outputs: { stepClick: "stepClick", nextStepClick: "nextStepClick", currencySelectionClick: "currencySelectionClick", editCurrencyClick: "editCurrencyClick", periodUnitChanged: "periodUnitChanged", planSelected: "planSelected", checkoutPlanClick: "checkoutPlanClick", answerShopProfileQuestions: "answerShopProfileQuestions", continueShopProfileQuestions: "continueShopProfileQuestions", profileQuestionAnswerSave: "profileQuestionAnswerSave" }, features: [i0.ɵɵNgOnChangesFeature], decls: 30, vars: 51, consts: [["shopProfileStatusCard", ""], [1, "min-h-screen", "relative", 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, "h-full", "transition-all", "duration-200", "ease-out", 3, "ngClass"], [1, "relative", "z-[51]"], [3, "searchClick", "viewModeClick", "title", "subtitle", "currentSection", "viewMode", "viewModeLabel", "isLoading", "requestedByUser", "createdDate"], [3, "viewMode", "currentStepId", "showNextStepAction", "forDemo", "maxAccessibleStepId"], [1, "relative", "z-10", "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-12", "space-y-12"], [1, "mb-12"], [3, "sections", "viewMode", "embedded", "scrollElement"], [3, "close", "isOpen", "isLightMode"], [3, "close", "modeSelected", "isOpen", "currentMode", "viewMode"], [3, "isLightMode", "allMetrics", "allInsights", "allBusinessInsights", "allCharts"], [3, "goal", "viewMode", "isInModal", "allMetrics", "allCharts", "allInsights", "currentModalState", "businessProfile"], [3, "goal", "viewMode"], [3, "objective", "goalTitle", "viewMode"], [3, "strategy", "objectiveTitle", "goalTitle", "viewMode", "allMetrics", "allCharts", "allInsights", "allBusinessInsights", "currentModalState"], [3, "category", "viewMode", "scrollToSection"], [3, "strength", "viewMode", "allFunnelStrengths", "currentModalState"], [3, "gap", "viewMode", "allGoals", "allWeaknesses", "currentModalState"], [3, "opportunity", "viewMode", "allStrengths", "currentModalState"], [3, "isLightMode", "viewMode", "allMetrics", "allInsights", "allCharts"], [3, "isLightMode"], [3, "viewMode", "isEnabled", "isLoading"], [3, "viewMode", "totalQuestions", "answeredQuestions"], [1, "fixed", "bottom-0", "left-0", "right-0", "z-50", "border-t", "backdrop-blur-lg", 3, "ngClass"], [3, "nextStepClick", "stepClick", "viewMode", "currentStepId", "showNextStepAction", "forDemo", "maxAccessibleStepId"], [3, "viewMode", "businessName", "isOnboarded"], [3, "viewMode", "focusAreaDomain", "focusAreaName", "focusAreaDetails"], [3, "viewMode", "metricName", "isOnboarded"], [1, "mb-8"], [3, "startCategoryQuestions", "answerSave", "viewMode", "totalQuestions", "answeredQuestions", "questions", "profileShopAnswers", "users"], [1, "rounded-2xl", "border", "shadow-lg", "overflow-hidden", 3, "ngClass"], [3, "goals", "viewMode"], ["title", "Generating Your Shop Profile", "subtitle", "We're analyzing your data to create shop specific questions and answers. They will appear when ready.", 3, "itemStatus", "viewMode"], [3, "viewMoreClick", "goals", "viewMode"], [1, "mb-32"], [3, "viewMode", "selectedCurrency"], [3, "currencySelected", "viewMode", "isLoading", "initialCurrency"], [3, "viewMode"], [3, "periodUnitChanged", "planSelected", "editCurrency", "checkout", "viewMode", "selectedCurrency", "planCardInfos", "isLoading", "selectedPeriodUnit"], [3, "editCurrency", "viewMode", "selectedCurrency"], [3, "sections", "viewMode", "executiveSummary", "focusAreaExecutiveSummary", "metricExecutiveSummary", "metricName", "allGoals", "allMetrics", "allCharts", "allInsights", "businessProfile"], ["id", "section-executive-summary", 1, "space-y-6", "scroll-mt-24"], [3, "viewMode", "summary", "allGoals"], [3, "viewMode", "summary", "metricName", "allGoals"], [1, "space-y-8"], [1, "rounded-2xl", "p-8", "shadow-xl", 3, "ngClass"], [1, "space-y-6"], [1, "flex", "items-start", "justify-between", "gap-4"], [1, "flex-1"], [1, "text-2xl", "font-bold", "mb-3", 3, "ngClass"], [1, "text-lg", "leading-relaxed", 3, "ngClass"], [3, "grade", "gradeRationale", "viewMode"], [1, "rounded-xl", "p-6", 3, "ngClass"], [1, "grid", "grid-cols-1", "md:grid-cols-3", "gap-4"], ["type", "button", 1, "p-4", "rounded-xl", "text-left", "transition-all", "duration-200", "hover:scale-[1.02]", "active:scale-[0.98]", "group", "cursor-pointer", 3, "click", "ngClass"], [1, "text-xs", "font-semibold", "uppercase", "mb-1", 3, "ngClass"], [1, "text-3xl", "font-bold", "mb-2", 3, "ngClass"], [1, "flex", "items-center", "gap-1.5", "text-xs", "font-medium"], [3, "ngClass"], ["size", "w-4 h-4", 1, "transition-transform", "group-hover:translate-x-1", 3, "icon", "ngClass"], ["size", "w-4 h-4", 1, "transition-transform", "group-hover:translate-y-1", "animate-bounce", 3, "icon", "ngClass"], ["id", "quick-wins-section", 1, "space-y-4", "scroll-mt-24"], [1, "text-lg", "font-semibold", "mb-3", 3, "ngClass"], [1, "relative"], [1, "mb-6", "lg:float-left", "lg:mr-6", "lg:mb-4", "lg:max-w-[66%]"], [1, "text-sm", "leading-relaxed", "whitespace-pre-line", 3, "ngClass"], [1, "clear-both"], [3, "visual", "viewMode"], [1, "text-xl", "font-bold", 3, "ngClass"], [1, "grid", "grid-cols-1", "lg:grid-cols-2", "gap-6"], [1, "rounded-xl", "p-6", "transition-all", "duration-300", 3, "ngClass"], [1, "space-y-4"], [1, "flex", "items-start", "gap-3"], [1, "flex-shrink-0", "w-8", "h-8", "rounded-full", "flex", "items-center", "justify-center", "text-sm", "font-bold", 3, "ngClass"], [1, "font-semibold", "leading-tight", "flex-1", 3, "ngClass"], [1, "flex", "flex-wrap", "gap-2"], [1, "px-3", "py-1", "rounded-full", "text-xs", "font-semibold", 3, "ngClass"], [1, "flex", "items-center", "gap-2", "text-sm", 3, "ngClass"], [1, "space-y-2"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"], [1, "text-xs", "font-semibold", "uppercase", "tracking-wider", 3, "ngClass"], [3, "relatedGoalIds", "allGoals", "viewMode"], [3, "topPrioritiesClick", "priorityDetailClick", "viewMode", "summary", "allGoals"], [3, "topPrioritiesClick", "priorityDetailClick", "viewMode", "summary", "metricName", "allGoals"], [3, "viewMode", "sectionIcon"], [1, "rounded-xl", "p-8", "scroll-mt-24", 3, "id", "ngClass"], [1, "flex", "items-start", "gap-3", "mb-6"], [1, "flex-shrink-0", "w-12", "h-12", "rounded-xl", "flex", "items-center", "justify-center", 3, "ngClass"], [1, "text-2xl", "font-bold", 3, "ngClass"], [1, "mb-6", "flex", "flex-col", "lg:flex-row", "gap-6", "items-start", 3, "lg:flex-row-reverse"], [3, "section", "executiveSummary", "viewMode", "sectionIndex", "allGoals", "allMetrics", "allCharts", "allInsights", "businessProfile"], ["size", "w-6 h-6", 3, "icon"], [1, "mb-6", "flex", "flex-col", "lg:flex-row", "gap-6", "items-start"], [1, "w-full", "lg:w-2/3"], [1, "w-full", 3, "lg:w-1/3", "lg:w-full"], [1, "w-full"], [3, "continueClick", "viewMode", "isEnabled", "isLoading"], [3, "continueClick", "viewMode", "totalQuestions", "answeredQuestions"], [1, "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-4"], [1, "flex", "items-center", "gap-4"], [1, "px-6", "py-4", "rounded-xl", "font-semibold", "text-lg", "transition-all", "duration-300", "cursor-pointer", 3, "click", "ngClass"], [1, "flex-1", "px-6", "py-4", "rounded-xl", "font-semibold", "text-lg", "transition-all", "duration-300", "flex", "items-center", "justify-center", "gap-3", "shadow-2xl", 3, "click", "disabled", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-6", "h-6", "transition-transform", "duration-200"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 7l5 5m0 0l-5 5m5-5H6"]], template: function SymphiqProfileAnalysisDashboardComponent_Template(rf, ctx) { if (rf & 1) {
92794
93021
  i0.ɵɵelementStart(0, "div", 1);
92795
93022
  i0.ɵɵelement(1, "div", 2);
92796
93023
  i0.ɵɵelementStart(2, "div");
@@ -92991,6 +93218,7 @@ class SymphiqProfileAnalysisDashboardComponent {
92991
93218
  [profileShopAnswers]="profileShopAnswers() || []"
92992
93219
  [users]="users() || []"
92993
93220
  (startCategoryQuestions)="handleStartCategoryQuestions($event)"
93221
+ (answerSave)="handleProfileQuestionAnswerSave($event)"
92994
93222
  />
92995
93223
  </div>
92996
93224
  }
@@ -93557,11 +93785,11 @@ class SymphiqProfileAnalysisDashboardComponent {
93557
93785
  }], shopProfileStatusCard: [{
93558
93786
  type: ViewChild,
93559
93787
  args: ['shopProfileStatusCard']
93560
- }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], requestedByUser: [{ type: i0.Input, args: [{ isSignal: true, alias: "requestedByUser", required: false }] }], createdDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "createdDate", required: false }] }], embedded: [{ type: i0.Input, args: [{ isSignal: true, alias: "embedded", required: false }] }], profileAnalysis: [{ type: i0.Input, args: [{ isSignal: true, alias: "profileAnalysis", required: false }] }], profile: [{ type: i0.Input, args: [{ isSignal: true, alias: "profile", required: false }] }], funnelAnalysis: [{ type: i0.Input, args: [{ isSignal: true, alias: "funnelAnalysis", required: false }] }], analysisType: [{ type: i0.Input, args: [{ isSignal: true, alias: "analysisType", required: false }] }], focusAreaDetails: [{ type: i0.Input, args: [{ isSignal: true, alias: "focusAreaDetails", required: false }] }], account: [{ type: i0.Input, args: [{ isSignal: true, alias: "account", required: false }] }], profileShop: [{ type: i0.Input, args: [{ isSignal: true, alias: "profileShop", required: false }] }], profileShopQuestions: [{ type: i0.Input, args: [{ isSignal: true, alias: "profileShopQuestions", required: false }] }], profileShopAnswers: [{ type: i0.Input, args: [{ isSignal: true, alias: "profileShopAnswers", required: false }] }], profileShopAnswerHistories: [{ type: i0.Input, args: [{ isSignal: true, alias: "profileShopAnswerHistories", required: false }] }], itemStatusProfileShop: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemStatusProfileShop", required: false }] }], itemStatusProfileAnalysis: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemStatusProfileAnalysis", required: false }] }], planCardInfos: [{ type: i0.Input, args: [{ isSignal: true, alias: "planCardInfos", required: false }] }], isOnboarded: [{ type: i0.Input, args: [{ isSignal: true, alias: "isOnboarded", required: false }] }], scrollEvent: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollEvent", required: false }] }], scrollElement: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollElement", required: false }] }], users: [{ type: i0.Input, args: [{ isSignal: true, alias: "users", required: false }] }], isLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLoading", 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"] }], currencySelectionClick: [{ type: i0.Output, args: ["currencySelectionClick"] }], editCurrencyClick: [{ type: i0.Output, args: ["editCurrencyClick"] }], periodUnitChanged: [{ type: i0.Output, args: ["periodUnitChanged"] }], planSelected: [{ type: i0.Output, args: ["planSelected"] }], checkoutPlanClick: [{ type: i0.Output, args: ["checkoutPlanClick"] }], answerShopProfileQuestions: [{ type: i0.Output, args: ["answerShopProfileQuestions"] }], continueShopProfileQuestions: [{ type: i0.Output, args: ["continueShopProfileQuestions"] }], onWindowScroll: [{
93788
+ }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], requestedByUser: [{ type: i0.Input, args: [{ isSignal: true, alias: "requestedByUser", required: false }] }], createdDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "createdDate", required: false }] }], embedded: [{ type: i0.Input, args: [{ isSignal: true, alias: "embedded", required: false }] }], profileAnalysis: [{ type: i0.Input, args: [{ isSignal: true, alias: "profileAnalysis", required: false }] }], profile: [{ type: i0.Input, args: [{ isSignal: true, alias: "profile", required: false }] }], funnelAnalysis: [{ type: i0.Input, args: [{ isSignal: true, alias: "funnelAnalysis", required: false }] }], analysisType: [{ type: i0.Input, args: [{ isSignal: true, alias: "analysisType", required: false }] }], focusAreaDetails: [{ type: i0.Input, args: [{ isSignal: true, alias: "focusAreaDetails", required: false }] }], account: [{ type: i0.Input, args: [{ isSignal: true, alias: "account", required: false }] }], profileShop: [{ type: i0.Input, args: [{ isSignal: true, alias: "profileShop", required: false }] }], profileShopQuestions: [{ type: i0.Input, args: [{ isSignal: true, alias: "profileShopQuestions", required: false }] }], profileShopAnswers: [{ type: i0.Input, args: [{ isSignal: true, alias: "profileShopAnswers", required: false }] }], profileShopAnswerHistories: [{ type: i0.Input, args: [{ isSignal: true, alias: "profileShopAnswerHistories", required: false }] }], itemStatusProfileShop: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemStatusProfileShop", required: false }] }], itemStatusProfileAnalysis: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemStatusProfileAnalysis", required: false }] }], planCardInfos: [{ type: i0.Input, args: [{ isSignal: true, alias: "planCardInfos", required: false }] }], isOnboarded: [{ type: i0.Input, args: [{ isSignal: true, alias: "isOnboarded", required: false }] }], scrollEvent: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollEvent", required: false }] }], scrollElement: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollElement", required: false }] }], users: [{ type: i0.Input, args: [{ isSignal: true, alias: "users", required: false }] }], isLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLoading", 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"] }], currencySelectionClick: [{ type: i0.Output, args: ["currencySelectionClick"] }], editCurrencyClick: [{ type: i0.Output, args: ["editCurrencyClick"] }], periodUnitChanged: [{ type: i0.Output, args: ["periodUnitChanged"] }], planSelected: [{ type: i0.Output, args: ["planSelected"] }], checkoutPlanClick: [{ type: i0.Output, args: ["checkoutPlanClick"] }], answerShopProfileQuestions: [{ type: i0.Output, args: ["answerShopProfileQuestions"] }], continueShopProfileQuestions: [{ type: i0.Output, args: ["continueShopProfileQuestions"] }], profileQuestionAnswerSave: [{ type: i0.Output, args: ["profileQuestionAnswerSave"] }], onWindowScroll: [{
93561
93789
  type: HostListener,
93562
93790
  args: ['window:scroll', ['$event']]
93563
93791
  }] }); })();
93564
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqProfileAnalysisDashboardComponent, { className: "SymphiqProfileAnalysisDashboardComponent", filePath: "lib/components/profile-analysis-dashboard/symphiq-profile-analysis-dashboard.component.ts", lineNumber: 769 }); })();
93792
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqProfileAnalysisDashboardComponent, { className: "SymphiqProfileAnalysisDashboardComponent", filePath: "lib/components/profile-analysis-dashboard/symphiq-profile-analysis-dashboard.component.ts", lineNumber: 771 }); })();
93565
93793
 
93566
93794
  class ScrollProgressBarComponent {
93567
93795
  constructor() {
@@ -94542,5 +94770,5 @@ var pieChart_component = /*#__PURE__*/Object.freeze({
94542
94770
  * Generated bundle index. Do not edit.
94543
94771
  */
94544
94772
 
94545
- export { AreaChartComponent, BarChartComponent, BreakdownSectionComponent, BusinessAnalysisModalComponent, BusinessProfileSearchService, ChartCardComponent, ChartContainerComponent, ChartThemeService, CircularProgressComponent, CompetitivePositioningSummaryComponent, CompetitorAnalysisCardComponent, ConfettiService, ConfidenceLevelCardComponent, ContentGenerationProgressComponent, ContentGenerationProgressWithConfettiComponent, CrossDashboardRelationshipsService, DataLoaderService, FloatingBackButtonComponent, FloatingTocComponent, FocusAreaDetailCardComponent, FocusAreaExecutiveSummaryComponent, FocusAreaQuestionComponent, FocusAreaToolsModalComponent, FunnelOrderService, GradeBadgeComponent, HeaderScrollService, HierarchyDisplayComponent, HorizontalBarComponent, IconService, IndeterminateSpinnerComponent, InsightCardComponent, JourneyProgressIndicatorComponent, JourneyStepIdEnum, LineChartComponent, MetricCardComponent, MetricExecutiveSummaryComponent, MetricFormatterService, MetricListItemComponent, MetricReportModalComponent, MetricWelcomeBannerComponent, MobileBottomNavComponent, MobileFABComponent, ModalComponent, ModalService, NapkinVisualPlaceholderComponent, NavigationStateService, OpportunityHighlightBannerComponent, OverallAssessmentComponent, PacingStatusBadgeComponent, PieChartComponent, ProfileItemCardComponent, ProfileSectionComponent, ProfileSubsectionComponent, RelatedContentSidebarComponent, RevenueCalculatorService, RevenueCalculatorWelcomeBannerComponent, ScrollDepthService, ScrollProgressBarComponent, SearchButtonComponent, SearchModalComponent, SectionDividerComponent, SectionNavigationComponent, ShadowElevationDirective, ShopPlatformEnum, ShopProfileCategoryListComponent, ShopProfileQuestionCardComponent, ShopProfileQuestionsModalComponent, ShopProfileStatusCardComponent, ShopProfileStickyFooterComponent, ShopProfileViewToggleComponent, ShopWelcomeBannerComponent, SkeletonBarComponent, SkeletonCardBaseComponent, SkeletonCircleComponent, SkeletonCompetitorCardComponent, SkeletonCustomerSegmentCardComponent, SkeletonFocusAreaCardComponent, SkeletonGenericCardComponent, SkeletonLoaderComponent, SkeletonPriceTierCardComponent, SkeletonProductCategoryCardComponent, SkeletonRegionCardComponent, SkeletonSeasonCardComponent, StickySubscriptionContinueButtonComponent, SubscriptionValuePropositionCardComponent, SymphiqBusinessAnalysisDashboardComponent, SymphiqConnectGaDashboardComponent, SymphiqCreateAccountDashboardComponent, SymphiqFunnelAnalysisDashboardComponent, SymphiqFunnelAnalysisPreviewComponent, SymphiqIconComponent, SymphiqProfileAnalysisDashboardComponent, SymphiqRevenueCalculatorDashboardComponent, SymphiqWelcomeDashboardComponent, TargetChangeBadgeComponent, TooltipContainerComponent, TooltipDataService, TooltipDirective, TooltipService, UserAvatarComponent, UserDisplayComponent, ViewModeService, ViewportAnimationDirective, VisualizationContainerComponent, calculateFunnelRatios, calculateMetricTargetsFromRevenue, calculateMetricTargetsFromRevenueReverse, calculateRelatedMetricRatios, generateTargetsFromCalculations, getBadgeLabelClasses, getButtonClasses, getCategoryBadgeClasses, getCategoryColor, getCompetitiveBadgeClasses, getContainerClasses, getFooterClasses, getFunnelStageMetrics, getGradeBadgeClasses, getHeaderClasses, getInsightsBadgeClasses, getInsightsCardClasses, getMetricLabelClasses, getMetricMiniCardClasses, getMetricValueClasses, getNarrativeTextClasses, getRevenueCardClasses, getRevenueIconClasses, getStatusBadgeClasses, getStatusDotClasses, getStatusIconClasses, getStatusSummaryClasses, getSubtitleClasses, getTitleClasses, getTrendClasses, getTrendIconClasses, getTrendValueClasses, groupMetricsByFunnelStage, isLightMode, validateRevenueTarget };
94773
+ export { AreaChartComponent, BarChartComponent, BreakdownSectionComponent, BusinessAnalysisModalComponent, BusinessProfileSearchService, ChartCardComponent, ChartContainerComponent, ChartThemeService, CircularProgressComponent, CompetitivePositioningSummaryComponent, CompetitorAnalysisCardComponent, ConfettiService, ConfidenceLevelCardComponent, ContentGenerationProgressComponent, ContentGenerationProgressWithConfettiComponent, CrossDashboardRelationshipsService, DataLoaderService, FloatingBackButtonComponent, FloatingTocComponent, FocusAreaDetailCardComponent, FocusAreaExecutiveSummaryComponent, FocusAreaQuestionComponent, FocusAreaToolsModalComponent, FunnelOrderService, GradeBadgeComponent, HeaderScrollService, HierarchyDisplayComponent, HorizontalBarComponent, IconService, IndeterminateSpinnerComponent, InsightCardComponent, JourneyProgressIndicatorComponent, JourneyStepIdEnum, LineChartComponent, MetricCardComponent, MetricExecutiveSummaryComponent, MetricFormatterService, MetricListItemComponent, MetricReportModalComponent, MetricWelcomeBannerComponent, MobileBottomNavComponent, MobileFABComponent, ModalComponent, ModalService, NapkinVisualPlaceholderComponent, NavigationStateService, OpportunityHighlightBannerComponent, OverallAssessmentComponent, PacingStatusBadgeComponent, PieChartComponent, ProfileItemCardComponent, ProfileSectionComponent, ProfileSubsectionComponent, RelatedContentSidebarComponent, RevenueCalculatorService, RevenueCalculatorWelcomeBannerComponent, ScrollDepthService, ScrollProgressBarComponent, SearchButtonComponent, SearchModalComponent, SectionDividerComponent, SectionNavigationComponent, ShadowElevationDirective, ShopPlatformEnum, ShopProfileCategoryListComponent, ShopProfileQuestionAnswerComponent, ShopProfileQuestionCardComponent, ShopProfileQuestionsModalComponent, ShopProfileStatusCardComponent, ShopProfileStickyFooterComponent, ShopProfileViewToggleComponent, ShopWelcomeBannerComponent, SkeletonBarComponent, SkeletonCardBaseComponent, SkeletonCircleComponent, SkeletonCompetitorCardComponent, SkeletonCustomerSegmentCardComponent, SkeletonFocusAreaCardComponent, SkeletonGenericCardComponent, SkeletonLoaderComponent, SkeletonPriceTierCardComponent, SkeletonProductCategoryCardComponent, SkeletonRegionCardComponent, SkeletonSeasonCardComponent, StickySubscriptionContinueButtonComponent, SubscriptionValuePropositionCardComponent, SymphiqBusinessAnalysisDashboardComponent, SymphiqConnectGaDashboardComponent, SymphiqCreateAccountDashboardComponent, SymphiqFunnelAnalysisDashboardComponent, SymphiqFunnelAnalysisPreviewComponent, SymphiqIconComponent, SymphiqProfileAnalysisDashboardComponent, SymphiqRevenueCalculatorDashboardComponent, SymphiqWelcomeDashboardComponent, TargetChangeBadgeComponent, TooltipContainerComponent, TooltipDataService, TooltipDirective, TooltipService, UserAvatarComponent, UserDisplayComponent, ViewModeService, ViewportAnimationDirective, VisualizationContainerComponent, calculateFunnelRatios, calculateMetricTargetsFromRevenue, calculateMetricTargetsFromRevenueReverse, calculateRelatedMetricRatios, generateTargetsFromCalculations, getBadgeLabelClasses, getButtonClasses, getCategoryBadgeClasses, getCategoryColor, getCompetitiveBadgeClasses, getContainerClasses, getFooterClasses, getFunnelStageMetrics, getGradeBadgeClasses, getHeaderClasses, getInsightsBadgeClasses, getInsightsCardClasses, getMetricLabelClasses, getMetricMiniCardClasses, getMetricValueClasses, getNarrativeTextClasses, getRevenueCardClasses, getRevenueIconClasses, getStatusBadgeClasses, getStatusDotClasses, getStatusIconClasses, getStatusSummaryClasses, getSubtitleClasses, getTitleClasses, getTrendClasses, getTrendIconClasses, getTrendValueClasses, groupMetricsByFunnelStage, isLightMode, validateRevenueTarget };
94546
94774
  //# sourceMappingURL=symphiq-components.mjs.map