@eric-emg/symphiq-components 1.2.377 → 1.2.380

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.
@@ -88544,7 +88544,7 @@ function ShopProfileQuestionAnswerComponent_Conditional_21_Template(rf, ctx) { i
88544
88544
  i0.ɵɵtextInterpolate1(" ", ctx_r1.question().context, " ");
88545
88545
  } }
88546
88546
  function ShopProfileQuestionAnswerComponent_Conditional_22_For_8_Template(rf, ctx) { if (rf & 1) {
88547
- i0.ɵɵelementStart(0, "span", 43);
88547
+ i0.ɵɵelementStart(0, "span", 41);
88548
88548
  i0.ɵɵtext(1);
88549
88549
  i0.ɵɵelementEnd();
88550
88550
  } if (rf & 2) {
@@ -88555,16 +88555,16 @@ function ShopProfileQuestionAnswerComponent_Conditional_22_For_8_Template(rf, ct
88555
88555
  i0.ɵɵtextInterpolate1(" ", ctx_r1.getFocusAreaTitle(focusArea_r3), " ");
88556
88556
  } }
88557
88557
  function ShopProfileQuestionAnswerComponent_Conditional_22_Template(rf, ctx) { if (rf & 1) {
88558
- i0.ɵɵelementStart(0, "div", 19)(1, "div", 38)(2, "span", 39);
88558
+ i0.ɵɵelementStart(0, "div", 19)(1, "div", 36)(2, "span", 37);
88559
88559
  i0.ɵɵtext(3);
88560
88560
  i0.ɵɵelementEnd();
88561
88561
  i0.ɵɵnamespaceSVG();
88562
- i0.ɵɵelementStart(4, "svg", 40);
88563
- i0.ɵɵelement(5, "path", 41);
88562
+ i0.ɵɵelementStart(4, "svg", 38);
88563
+ i0.ɵɵelement(5, "path", 39);
88564
88564
  i0.ɵɵelementEnd()();
88565
88565
  i0.ɵɵnamespaceHTML();
88566
- i0.ɵɵelementStart(6, "div", 42);
88567
- i0.ɵɵrepeaterCreate(7, ShopProfileQuestionAnswerComponent_Conditional_22_For_8_Template, 2, 2, "span", 43, i0.ɵɵrepeaterTrackByIdentity);
88566
+ i0.ɵɵelementStart(6, "div", 40);
88567
+ i0.ɵɵrepeaterCreate(7, ShopProfileQuestionAnswerComponent_Conditional_22_For_8_Template, 2, 2, "span", 41, i0.ɵɵrepeaterTrackByIdentity);
88568
88568
  i0.ɵɵelementEnd()();
88569
88569
  } if (rf & 2) {
88570
88570
  const ctx_r1 = i0.ɵɵnextContext();
@@ -88579,10 +88579,10 @@ function ShopProfileQuestionAnswerComponent_Conditional_22_Template(rf, ctx) { i
88579
88579
  } }
88580
88580
  function ShopProfileQuestionAnswerComponent_For_26_Template(rf, ctx) { if (rf & 1) {
88581
88581
  const _r4 = i0.ɵɵgetCurrentView();
88582
- i0.ɵɵelementStart(0, "label", 22)(1, "input", 44);
88582
+ i0.ɵɵelementStart(0, "label", 22)(1, "input", 42);
88583
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)); });
88584
88584
  i0.ɵɵelementEnd();
88585
- i0.ɵɵelementStart(2, "span", 45);
88585
+ i0.ɵɵelementStart(2, "span", 43);
88586
88586
  i0.ɵɵtext(3);
88587
88587
  i0.ɵɵelementEnd()();
88588
88588
  } if (rf & 2) {
@@ -88598,7 +88598,7 @@ function ShopProfileQuestionAnswerComponent_For_26_Template(rf, ctx) { if (rf &
88598
88598
  } }
88599
88599
  function ShopProfileQuestionAnswerComponent_Conditional_37_Template(rf, ctx) { if (rf & 1) {
88600
88600
  const _r6 = i0.ɵɵgetCurrentView();
88601
- i0.ɵɵelementStart(0, "button", 46);
88601
+ i0.ɵɵelementStart(0, "button", 44);
88602
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()); });
88603
88603
  i0.ɵɵtext(1, " Add other answers ");
88604
88604
  i0.ɵɵelementEnd();
@@ -88606,6 +88606,40 @@ function ShopProfileQuestionAnswerComponent_Conditional_37_Template(rf, ctx) { i
88606
88606
  const ctx_r1 = i0.ɵɵnextContext();
88607
88607
  i0.ɵɵproperty("ngClass", ctx_r1.addOtherAnswersButtonClasses());
88608
88608
  } }
88609
+ function ShopProfileQuestionAnswerComponent_Conditional_41_Template(rf, ctx) { if (rf & 1) {
88610
+ i0.ɵɵnamespaceSVG();
88611
+ i0.ɵɵelementStart(0, "svg", 45);
88612
+ i0.ɵɵelement(1, "circle", 46)(2, "path", 47);
88613
+ i0.ɵɵelementEnd();
88614
+ i0.ɵɵnamespaceHTML();
88615
+ i0.ɵɵelementStart(3, "span");
88616
+ i0.ɵɵtext(4, "Saving...");
88617
+ i0.ɵɵelementEnd();
88618
+ } }
88619
+ function ShopProfileQuestionAnswerComponent_Conditional_42_Template(rf, ctx) { if (rf & 1) {
88620
+ i0.ɵɵelementStart(0, "span");
88621
+ i0.ɵɵtext(1, "Save");
88622
+ i0.ɵɵelementEnd();
88623
+ } }
88624
+ function ShopProfileQuestionAnswerComponent_Conditional_44_Template(rf, ctx) { if (rf & 1) {
88625
+ i0.ɵɵnamespaceSVG();
88626
+ i0.ɵɵelementStart(0, "svg", 45);
88627
+ i0.ɵɵelement(1, "circle", 46)(2, "path", 47);
88628
+ i0.ɵɵelementEnd();
88629
+ i0.ɵɵnamespaceHTML();
88630
+ i0.ɵɵelementStart(3, "span");
88631
+ i0.ɵɵtext(4, "Saving...");
88632
+ i0.ɵɵelementEnd();
88633
+ } }
88634
+ function ShopProfileQuestionAnswerComponent_Conditional_45_Template(rf, ctx) { if (rf & 1) {
88635
+ i0.ɵɵelementStart(0, "span");
88636
+ i0.ɵɵtext(1, "Save & next unanswered");
88637
+ i0.ɵɵelementEnd();
88638
+ i0.ɵɵnamespaceSVG();
88639
+ i0.ɵɵelementStart(2, "svg", 48);
88640
+ i0.ɵɵelement(3, "path", 49);
88641
+ i0.ɵɵelementEnd();
88642
+ } }
88609
88643
  class ShopProfileQuestionAnswerComponent {
88610
88644
  constructor() {
88611
88645
  this.question = input.required(...(ngDevMode ? [{ debugName: "question" }] : []));
@@ -88618,11 +88652,16 @@ class ShopProfileQuestionAnswerComponent {
88618
88652
  this.backClick = output();
88619
88653
  this.saveClick = output();
88620
88654
  this.saveAndNextClick = output();
88655
+ this.navigateToList = output();
88656
+ this.navigateToNextQuestion = output();
88621
88657
  this.ngZone = inject(NgZone);
88622
88658
  this.isSticky = false;
88623
88659
  this.selectedAnswerTexts = signal([], ...(ngDevMode ? [{ debugName: "selectedAnswerTexts" }] : []));
88624
88660
  this.addOtherAnswersExpanded = signal(false, ...(ngDevMode ? [{ debugName: "addOtherAnswersExpanded" }] : []));
88625
88661
  this.customAnswerText = signal('', ...(ngDevMode ? [{ debugName: "customAnswerText" }] : []));
88662
+ this.isSaving = signal(false, ...(ngDevMode ? [{ debugName: "isSaving" }] : []));
88663
+ this.pendingSaveAction = signal(null, ...(ngDevMode ? [{ debugName: "pendingSaveAction" }] : []));
88664
+ this.pendingQuestionId = signal(null, ...(ngDevMode ? [{ debugName: "pendingQuestionId" }] : []));
88626
88665
  this.answerOptions = computed(() => {
88627
88666
  const q = this.question();
88628
88667
  const potentialAnswers = q.potentialAnswers || [];
@@ -88680,12 +88719,10 @@ class ShopProfileQuestionAnswerComponent {
88680
88719
  return this.customAnswerText().trim().length > 0;
88681
88720
  }, ...(ngDevMode ? [{ debugName: "canAddCustomAnswers" }] : []));
88682
88721
  this.saveButtonsDisabled = computed(() => {
88683
- return this.selectedAnswerTexts().length === 0 || this.addOtherAnswersExpanded();
88722
+ return this.selectedAnswerTexts().length === 0 || this.addOtherAnswersExpanded() || this.isSaving();
88684
88723
  }, ...(ngDevMode ? [{ debugName: "saveButtonsDisabled" }] : []));
88685
88724
  this.stickyState = false;
88686
88725
  this.lastStickyChange = 0;
88687
- this.stickyChangeCount = 0;
88688
- // Initialize selected answers from existing profile answers
88689
88726
  effect(() => {
88690
88727
  const questionId = this.question().id;
88691
88728
  const existingAnswers = this.profileShopAnswers()
@@ -88693,6 +88730,25 @@ class ShopProfileQuestionAnswerComponent {
88693
88730
  .map(a => a.answer || '');
88694
88731
  this.selectedAnswerTexts.set(existingAnswers);
88695
88732
  });
88733
+ effect(() => {
88734
+ const answers = this.profileShopAnswers();
88735
+ const pendingId = this.pendingQuestionId();
88736
+ const pendingAction = this.pendingSaveAction();
88737
+ if (pendingId !== null && pendingAction !== null) {
88738
+ const hasAnswerForQuestion = answers.some(a => a.profileQuestionId === pendingId);
88739
+ if (hasAnswerForQuestion) {
88740
+ this.isSaving.set(false);
88741
+ if (pendingAction === 'save') {
88742
+ this.navigateToList.emit();
88743
+ }
88744
+ else if (pendingAction === 'saveAndNext') {
88745
+ this.navigateToNextQuestion.emit();
88746
+ }
88747
+ this.pendingQuestionId.set(null);
88748
+ this.pendingSaveAction.set(null);
88749
+ }
88750
+ }
88751
+ });
88696
88752
  }
88697
88753
  ngAfterViewInit() {
88698
88754
  this.setupStickyObserver();
@@ -88706,47 +88762,32 @@ class ShopProfileQuestionAnswerComponent {
88706
88762
  const header = this.stickyHeader?.nativeElement;
88707
88763
  const title = this.questionTitle?.nativeElement;
88708
88764
  if (!sentinel || !scrollRoot || !header) {
88709
- console.log('[StickyDebug] Setup failed - missing elements:', { sentinel: !!sentinel, scrollRoot: !!scrollRoot, header: !!header });
88710
88765
  return;
88711
88766
  }
88712
- console.log('[StickyDebug] Setting up IntersectionObserver');
88713
88767
  this.ngZone.runOutsideAngular(() => {
88714
88768
  this.intersectionObserver = new IntersectionObserver((entries) => {
88715
88769
  entries.forEach((entry) => {
88716
88770
  const now = Date.now();
88717
88771
  const timeSinceLastChange = now - this.lastStickyChange;
88718
88772
  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)`);
88773
+ if (timeSinceLastChange < 350 && this.stickyState !== newStickyState) {
88724
88774
  return;
88725
88775
  }
88726
88776
  if (this.stickyState === newStickyState) {
88727
- console.log(`[StickyDebug] No state change needed (already ${this.stickyState})`);
88728
88777
  return;
88729
88778
  }
88730
88779
  this.stickyState = newStickyState;
88731
88780
  this.lastStickyChange = now;
88732
88781
  if (newStickyState) {
88733
- console.log('[StickyDebug] Applying sticky classes');
88734
- header.classList.add('shadow-md');
88735
- header.classList.add('is-sticky');
88782
+ header.classList.add('shadow-md', 'is-sticky');
88736
88783
  title?.classList.add('is-sticky');
88737
88784
  }
88738
88785
  else {
88739
- console.log('[StickyDebug] Removing sticky classes');
88740
- header.classList.remove('shadow-md');
88741
- header.classList.remove('is-sticky');
88786
+ header.classList.remove('shadow-md', 'is-sticky');
88742
88787
  title?.classList.remove('is-sticky');
88743
88788
  }
88744
88789
  });
88745
- }, {
88746
- root: scrollRoot,
88747
- threshold: 0,
88748
- rootMargin: '-20px 0px 0px 0px'
88749
- });
88790
+ }, { root: scrollRoot, threshold: 0, rootMargin: '-20px 0px 0px 0px' });
88750
88791
  this.intersectionObserver.observe(sentinel);
88751
88792
  });
88752
88793
  }
@@ -88792,10 +88833,26 @@ class ShopProfileQuestionAnswerComponent {
88792
88833
  this.addOtherAnswersExpanded.set(false);
88793
88834
  }
88794
88835
  onSave() {
88795
- this.saveClick.emit();
88836
+ const questionId = this.question().id;
88837
+ this.isSaving.set(true);
88838
+ this.pendingSaveAction.set('save');
88839
+ this.pendingQuestionId.set(questionId);
88840
+ const event = {
88841
+ profileQuestionId: questionId,
88842
+ answers: this.selectedAnswerTexts()
88843
+ };
88844
+ this.saveClick.emit(event);
88796
88845
  }
88797
88846
  onSaveAndNext() {
88798
- this.saveAndNextClick.emit();
88847
+ const questionId = this.question().id;
88848
+ this.isSaving.set(true);
88849
+ this.pendingSaveAction.set('saveAndNext');
88850
+ this.pendingQuestionId.set(questionId);
88851
+ const event = {
88852
+ profileQuestionId: questionId,
88853
+ answers: this.selectedAnswerTexts()
88854
+ };
88855
+ this.saveAndNextClick.emit(event);
88799
88856
  }
88800
88857
  getFocusAreaTitle(focusArea) {
88801
88858
  return FocusAreaDomainEnumUtil.title(focusArea);
@@ -88955,7 +89012,7 @@ class ShopProfileQuestionAnswerComponent {
88955
89012
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.stickySentinel = _t.first);
88956
89013
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.stickyHeader = _t.first);
88957
89014
  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) {
89015
+ } }, 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: 46, vars: 30, 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", "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, "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"], ["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
89016
  const _r1 = i0.ɵɵgetCurrentView();
88960
89017
  i0.ɵɵelementStart(0, "div", 4)(1, "div", 5, 0)(3, "div", 6)(4, "h4", 7);
88961
89018
  i0.ɵɵtext(5, " Unanswered questions status ");
@@ -88994,17 +89051,12 @@ class ShopProfileQuestionAnswerComponent {
88994
89051
  i0.ɵɵelementEnd()()();
88995
89052
  i0.ɵɵelementStart(38, "div", 32)(39, "div", 33)(40, "button", 34);
88996
89053
  i0.ɵɵlistener("click", function ShopProfileQuestionAnswerComponent_Template_button_click_40_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onSave()); });
88997
- i0.ɵɵtext(41, " Save ");
88998
- 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");
89054
+ i0.ɵɵconditionalCreate(41, ShopProfileQuestionAnswerComponent_Conditional_41_Template, 5, 0)(42, ShopProfileQuestionAnswerComponent_Conditional_42_Template, 2, 0, "span");
89003
89055
  i0.ɵɵelementEnd();
89004
- i0.ɵɵnamespaceSVG();
89005
- i0.ɵɵelementStart(45, "svg", 36);
89006
- i0.ɵɵelement(46, "path", 37);
89007
- i0.ɵɵelementEnd()()()()();
89056
+ i0.ɵɵelementStart(43, "button", 35);
89057
+ i0.ɵɵlistener("click", function ShopProfileQuestionAnswerComponent_Template_button_click_43_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onSaveAndNext()); });
89058
+ i0.ɵɵconditionalCreate(44, ShopProfileQuestionAnswerComponent_Conditional_44_Template, 5, 0)(45, ShopProfileQuestionAnswerComponent_Conditional_45_Template, 4, 0);
89059
+ i0.ɵɵelementEnd()()()();
89008
89060
  } if (rf & 2) {
89009
89061
  i0.ɵɵadvance(3);
89010
89062
  i0.ɵɵproperty("ngClass", ctx.statusHeaderClasses());
@@ -89048,8 +89100,12 @@ class ShopProfileQuestionAnswerComponent {
89048
89100
  i0.ɵɵproperty("ngClass", ctx.footerClasses());
89049
89101
  i0.ɵɵadvance(2);
89050
89102
  i0.ɵɵproperty("disabled", ctx.saveButtonsDisabled())("ngClass", ctx.saveButtonClasses());
89103
+ i0.ɵɵadvance();
89104
+ i0.ɵɵconditional(ctx.isSaving() && ctx.pendingSaveAction() === "save" ? 41 : 42);
89051
89105
  i0.ɵɵadvance(2);
89052
89106
  i0.ɵɵproperty("disabled", ctx.saveButtonsDisabled())("ngClass", ctx.saveAndNextButtonClasses());
89107
+ i0.ɵɵadvance();
89108
+ i0.ɵɵconditional(ctx.isSaving() && ctx.pendingSaveAction() === "saveAndNext" ? 44 : 45);
89053
89109
  } }, dependencies: [CommonModule, i1$1.NgClass, FormsModule, i2$1.DefaultValueAccessor, i2$1.NgControlStatus, i2$1.NgModel], encapsulation: 2, data: { animation: [
89054
89110
  trigger('fadeIn', [
89055
89111
  transition(':enter', [
@@ -89074,175 +89130,191 @@ class ShopProfileQuestionAnswerComponent {
89074
89130
  ])
89075
89131
  ])
89076
89132
  ],
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>
89133
+ template: `
89134
+ <div class="flex flex-col h-full">
89135
+ <!-- Scrollable Content -->
89136
+ <div #scrollContainer class="flex-1 overflow-y-auto">
89137
+ <!-- Unanswered Questions Status -->
89138
+ <div [ngClass]="statusHeaderClasses()" class="px-6 py-4 border-b">
89139
+ <h4 [ngClass]="statusTitleClasses()" class="text-sm font-semibold mb-3">
89140
+ Unanswered questions status
89141
+ </h4>
89142
+ <div class="flex items-center gap-3">
89143
+ <div class="flex-1">
89144
+ <div [ngClass]="progressBarContainerClasses()" class="h-2 rounded-full overflow-hidden">
89145
+ <div
89146
+ [ngClass]="progressBarFillClasses()"
89147
+ class="h-full transition-all duration-500 ease-out rounded-full"
89148
+ [style.width.%]="progressPercentage()"></div>
89149
+ </div>
89150
+ </div>
89151
+ <div [ngClass]="progressTextClasses()" class="text-sm font-medium whitespace-nowrap">
89152
+ {{ answeredCount() }} / {{ totalCount() }} answered
89153
+ </div>
89154
+ </div>
89155
+ </div>
89156
+
89157
+ <!-- Sentinel for intersection observer -->
89158
+ <div #stickySentinel class="h-0"></div>
89159
+
89160
+ <!-- Sticky Question Header -->
89161
+ <div #stickyHeader [ngClass]="stickyHeaderClasses()" class="sticky top-0 z-10 px-6 py-4 transition-all duration-200">
89162
+ <!-- Breadcrumb - hide for All Questions mode -->
89163
+ @if (viewType() !== 'all') {
89164
+ <div [ngClass]="breadcrumbClasses()" class="text-sm italic mb-2">
89165
+ Shop > {{ breadcrumbPath() }}
89166
+ </div>
89167
+ }
89168
+
89169
+ <!-- Question - animates from text-2xl to text-lg when sticky -->
89170
+ <h2 #questionTitle [ngClass]="questionTextClasses()" class="font-bold text-2xl [&.is-sticky]:text-lg transition-all duration-200">
89171
+ {{ question().question }}
89172
+ </h2>
89173
+ </div>
89174
+
89175
+ <!-- Context and Focus Areas - scroll under sticky header -->
89176
+ <div class="px-6">
89177
+ <!-- Context -->
89178
+ @if (question().context) {
89179
+ <p [ngClass]="contextTextClasses()" class="text-sm leading-relaxed mt-3">
89180
+ {{ question().context }}
89181
+ </p>
89182
+ }
89183
+
89184
+ <!-- Related Focus Areas -->
89185
+ @if (relatedFocusAreas().length > 0) {
89186
+ <div class="mt-4">
89187
+ <div class="flex items-center gap-2 mb-2">
89188
+ <span [ngClass]="relatedLabelClasses()" class="text-xs font-semibold">
89189
+ Related to {{ relatedFocusAreas().length }} focus area(s)
89190
+ </span>
89191
+ <svg class="w-4 h-4" [ngClass]="relatedLabelClasses()" fill="none" stroke="currentColor" viewBox="0 0 24 24">
89192
+ <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>
89193
+ </svg>
89194
+ </div>
89195
+ <div class="flex flex-wrap gap-2">
89196
+ @for (focusArea of relatedFocusAreas(); track focusArea) {
89197
+ <span [ngClass]="focusAreaChipClasses()" class="px-3 py-1.5 rounded-full text-xs font-medium">
89198
+ {{ getFocusAreaTitle(focusArea) }}
89199
+ </span>
89200
+ }
89201
+ </div>
89202
+ </div>
89203
+ }
89204
+ </div>
89205
+
89206
+ <div class="px-6 py-6">
89207
+
89208
+ <!-- Answer Options -->
89209
+ <div class="space-y-3 mb-4">
89210
+ @for (option of answerOptions(); track option.tempId) {
89211
+ <label
89212
+ [ngClass]="checkboxRowClasses()"
89213
+ class="flex items-start gap-3 p-4 rounded-lg cursor-pointer transition-all duration-200 hover:scale-[1.01]">
89214
+ <input
89215
+ type="checkbox"
89216
+ [checked]="option.isSelected"
89217
+ (change)="toggleAnswer(option.text)"
89218
+ [ngClass]="checkboxClasses()"
89219
+ class="mt-0.5 w-5 h-5 rounded border-2 cursor-pointer transition-all duration-200 focus:ring-2 focus:ring-offset-2" />
89220
+ <span [ngClass]="checkboxLabelClasses()" class="text-base flex-1">
89221
+ {{ option.text }}
89222
+ </span>
89223
+ </label>
89224
+ }
89225
+ </div>
89226
+
89227
+ <!-- Add Other Answers -->
89228
+ <div class="mb-6">
89229
+ <div
89230
+ class="grid transition-[grid-template-rows] duration-300 ease-in-out"
89231
+ [style.grid-template-rows]="addOtherAnswersExpanded() ? '1fr' : '0fr'">
89232
+ <div class="overflow-hidden min-h-0">
89233
+ <div class="pb-4">
89234
+ <textarea
89235
+ [(ngModel)]="customAnswerText"
89236
+ [ngClass]="textareaClasses()"
89237
+ 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"
89238
+ rows="5"
89239
+ placeholder="Enter your answer(s) here, separated by returns."></textarea>
89240
+ <div class="flex items-center gap-3 mt-3">
89241
+ <button
89242
+ type="button"
89243
+ (click)="cancelCustomAnswers()"
89244
+ [ngClass]="cancelButtonClasses()"
89245
+ class="px-5 py-2.5 rounded-lg font-medium text-sm transition-all duration-200 hover:scale-105 active:scale-95">
89246
+ Cancel
89247
+ </button>
89248
+ <button
89249
+ type="button"
89250
+ (click)="addCustomAnswers()"
89251
+ [disabled]="!canAddCustomAnswers()"
89252
+ [ngClass]="addButtonClasses()"
89253
+ 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">
89254
+ Add
89255
+ </button>
89256
+ </div>
89257
+ </div>
89258
+ </div>
89259
+ </div>
89260
+
89261
+ @if (!addOtherAnswersExpanded()) {
89262
+ <button
89263
+ type="button"
89264
+ (click)="toggleAddOtherAnswers()"
89265
+ [ngClass]="addOtherAnswersButtonClasses()"
89266
+ 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]">
89267
+ Add other answers
89268
+ </button>
89269
+ }
89270
+ </div>
89271
+ </div>
89272
+ </div>
89273
+
89274
+ <!-- Sticky Footer -->
89275
+ <div [ngClass]="footerClasses()" class="px-6 py-4 border-t sticky bottom-0 z-10">
89276
+ <div class="flex items-center gap-4">
89277
+ <button
89278
+ type="button"
89279
+ (click)="onSave()"
89280
+ [disabled]="saveButtonsDisabled()"
89281
+ [ngClass]="saveButtonClasses()"
89282
+ 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]">
89283
+ @if (isSaving() && pendingSaveAction() === 'save') {
89284
+ <svg class="animate-spin h-4 w-4" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24">
89285
+ <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
89286
+ <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>
89287
+ </svg>
89288
+ <span>Saving...</span>
89289
+ } @else {
89290
+ <span>Save</span>
89291
+ }
89292
+ </button>
89293
+ <button
89294
+ type="button"
89295
+ (click)="onSaveAndNext()"
89296
+ [disabled]="saveButtonsDisabled()"
89297
+ [ngClass]="saveAndNextButtonClasses()"
89298
+ 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">
89299
+ @if (isSaving() && pendingSaveAction() === 'saveAndNext') {
89300
+ <svg class="animate-spin h-4 w-4" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24">
89301
+ <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
89302
+ <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>
89303
+ </svg>
89304
+ <span>Saving...</span>
89305
+ } @else {
89306
+ <span>Save & next unanswered</span>
89307
+ <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
89308
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path>
89309
+ </svg>
89310
+ }
89311
+ </button>
89312
+ </div>
89313
+ </div>
89314
+ </div>
89243
89315
  `
89244
89316
  }]
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: [{
89317
+ }], () => [], { 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
89318
  type: ViewChild,
89247
89319
  args: ['scrollContainer']
89248
89320
  }], stickySentinel: [{
@@ -89255,7 +89327,7 @@ class ShopProfileQuestionAnswerComponent {
89255
89327
  type: ViewChild,
89256
89328
  args: ['questionTitle']
89257
89329
  }] }); })();
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 }); })();
89330
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ShopProfileQuestionAnswerComponent, { className: "ShopProfileQuestionAnswerComponent", filePath: "lib/components/profile-analysis-dashboard/cards/shop-profile-question-answer.component.ts", lineNumber: 232 }); })();
89259
89331
 
89260
89332
  const _c0$4 = ["modalContent"];
89261
89333
  const _c1$1 = ["modalWrapper"];
@@ -89367,7 +89439,7 @@ function ShopProfileQuestionsModalComponent_Conditional_0_Conditional_9_Conditio
89367
89439
  function ShopProfileQuestionsModalComponent_Conditional_0_Conditional_9_Conditional_14_Template(rf, ctx) { if (rf & 1) {
89368
89440
  const _r7 = i0.ɵɵgetCurrentView();
89369
89441
  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()); });
89442
+ 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
89443
  i0.ɵɵelementEnd();
89372
89444
  } if (rf & 2) {
89373
89445
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -89448,6 +89520,7 @@ class ShopProfileQuestionsModalComponent {
89448
89520
  this.viewMode = input(ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "viewMode" }] : []));
89449
89521
  this.close = output();
89450
89522
  this.questionAnswerClick = output();
89523
+ this.answerSave = output();
89451
89524
  this.renderer = inject(Renderer2);
89452
89525
  this.document = inject(DOCUMENT);
89453
89526
  this.hostElement = inject(ElementRef);
@@ -89575,11 +89648,36 @@ class ShopProfileQuestionsModalComponent {
89575
89648
  this.navigationHistory.set([]);
89576
89649
  }
89577
89650
  }
89578
- onSaveAnswer() {
89579
- // Placeholder for save logic
89580
- }
89581
- onSaveAndNextAnswer() {
89582
- // Placeholder for save and next logic
89651
+ onSaveAnswer(event) {
89652
+ this.answerSave.emit(event);
89653
+ }
89654
+ onSaveAndNextAnswer(event) {
89655
+ this.answerSave.emit(event);
89656
+ }
89657
+ onNavigateToList() {
89658
+ this.answerModeActive.set(false);
89659
+ this.questionForAnswer.set(null);
89660
+ this.navigationHistory.set([]);
89661
+ }
89662
+ onNavigateToNextQuestion() {
89663
+ const currentQuestion = this.questionForAnswer();
89664
+ if (currentQuestion) {
89665
+ const questions = this.filteredQuestions();
89666
+ const currentIndex = questions.findIndex(q => q.id === currentQuestion.id);
89667
+ const nextUnanswered = questions.slice(currentIndex + 1).find(q => !q.answered)
89668
+ || questions.slice(0, currentIndex).find(q => !q.answered);
89669
+ if (nextUnanswered) {
89670
+ this.questionForAnswer.set(nextUnanswered);
89671
+ if (nextUnanswered.id) {
89672
+ this.navigationHistory.set([...this.navigationHistory(), nextUnanswered.id]);
89673
+ }
89674
+ }
89675
+ else {
89676
+ this.answerModeActive.set(false);
89677
+ this.questionForAnswer.set(null);
89678
+ this.navigationHistory.set([]);
89679
+ }
89680
+ }
89583
89681
  }
89584
89682
  formatCategoryName(category) {
89585
89683
  return category
@@ -89696,7 +89794,7 @@ class ShopProfileQuestionsModalComponent {
89696
89794
  let _t;
89697
89795
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.modalContent = _t.first);
89698
89796
  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) {
89797
+ } }, 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
89798
  i0.ɵɵconditionalCreate(0, ShopProfileQuestionsModalComponent_Conditional_0_Template, 10, 5, "div", 2);
89701
89799
  } if (rf & 2) {
89702
89800
  i0.ɵɵconditional(ctx.isOpen() ? 0 : -1);
@@ -89885,8 +89983,10 @@ class ShopProfileQuestionsModalComponent {
89885
89983
  [filteredQuestions]="filteredQuestions()"
89886
89984
  [profileShopAnswers]="profileShopAnswers()"
89887
89985
  (backClick)="onBackFromAnswerMode()"
89888
- (saveClick)="onSaveAnswer()"
89889
- (saveAndNextClick)="onSaveAndNextAnswer()" />
89986
+ (saveClick)="onSaveAnswer($event)"
89987
+ (saveAndNextClick)="onSaveAndNextAnswer($event)"
89988
+ (navigateToList)="onNavigateToList()"
89989
+ (navigateToNextQuestion)="onNavigateToNextQuestion()" />
89890
89990
  }
89891
89991
  </div>
89892
89992
  }
@@ -89896,14 +89996,14 @@ class ShopProfileQuestionsModalComponent {
89896
89996
  }
89897
89997
  `
89898
89998
  }]
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: [{
89999
+ }], () => [], { 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
90000
  type: ViewChild,
89901
90001
  args: ['modalContent']
89902
90002
  }], modalWrapper: [{
89903
90003
  type: ViewChild,
89904
90004
  args: ['modalWrapper']
89905
90005
  }] }); })();
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 }); })();
90006
+ (() => { (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
90007
 
89908
90008
  const _c0$3 = ["chartdiv"];
89909
90009
  function ShopProfileStatusCardComponent_Conditional_20_Template(rf, ctx) { if (rf & 1) {
@@ -89959,6 +90059,7 @@ class ShopProfileStatusCardComponent {
89959
90059
  this.startAnsweringAll = input(false, ...(ngDevMode ? [{ debugName: "startAnsweringAll" }] : []));
89960
90060
  this.startCategoryQuestions = output();
89961
90061
  this.questionAnswerRequested = output();
90062
+ this.answerSave = output();
89962
90063
  this.currentView = signal('category', ...(ngDevMode ? [{ debugName: "currentView" }] : []));
89963
90064
  this.questionsModalOpen = signal(false, ...(ngDevMode ? [{ debugName: "questionsModalOpen" }] : []));
89964
90065
  this.selectedCategoryId = signal(null, ...(ngDevMode ? [{ debugName: "selectedCategoryId" }] : []));
@@ -90090,6 +90191,9 @@ class ShopProfileStatusCardComponent {
90090
90191
  onQuestionAnswerClick(question) {
90091
90192
  this.questionAnswerRequested.emit(question);
90092
90193
  }
90194
+ onAnswerSave(event) {
90195
+ this.answerSave.emit(event);
90196
+ }
90093
90197
  formatCategoryName(category) {
90094
90198
  return category
90095
90199
  .split('_')
@@ -90260,7 +90364,7 @@ class ShopProfileStatusCardComponent {
90260
90364
  } if (rf & 2) {
90261
90365
  let _t;
90262
90366
  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) {
90367
+ } }, 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
90368
  const _r1 = i0.ɵɵgetCurrentView();
90265
90369
  i0.ɵɵelementStart(0, "div", 1)(1, "div", 2)(2, "div", 3)(3, "div", 4)(4, "div", 5);
90266
90370
  i0.ɵɵnamespaceSVG();
@@ -90289,7 +90393,7 @@ class ShopProfileStatusCardComponent {
90289
90393
  i0.ɵɵconditionalCreate(25, ShopProfileStatusCardComponent_Conditional_25_Template, 3, 4);
90290
90394
  i0.ɵɵelementEnd()();
90291
90395
  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)); });
90396
+ 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
90397
  i0.ɵɵelementEnd();
90294
90398
  } if (rf & 2) {
90295
90399
  i0.ɵɵproperty("ngClass", ctx.containerClasses());
@@ -90412,14 +90516,15 @@ class ShopProfileStatusCardComponent {
90412
90516
  [startDirectAnswer]="startDirectAnswer()"
90413
90517
  [viewMode]="viewMode()"
90414
90518
  (close)="onQuestionsModalClose()"
90415
- (questionAnswerClick)="onQuestionAnswerClick($event)" />
90519
+ (questionAnswerClick)="onQuestionAnswerClick($event)"
90520
+ (answerSave)="onAnswerSave($event)" />
90416
90521
  `
90417
90522
  }]
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: [{
90523
+ }], 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
90524
  type: ViewChild,
90420
90525
  args: ['chartdiv', { static: false }]
90421
90526
  }] }); })();
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 }); })();
90527
+ (() => { (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
90528
 
90424
90529
  function ShopProfileStickyFooterComponent_Conditional_7_Template(rf, ctx) { if (rf & 1) {
90425
90530
  i0.ɵɵelementStart(0, "div", 5);
@@ -91266,7 +91371,7 @@ function SymphiqProfileAnalysisDashboardComponent_Conditional_8_Template(rf, ctx
91266
91371
  function SymphiqProfileAnalysisDashboardComponent_Conditional_9_Conditional_0_Template(rf, ctx) { if (rf & 1) {
91267
91372
  const _r3 = i0.ɵɵgetCurrentView();
91268
91373
  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)); });
91374
+ 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
91375
  i0.ɵɵelementEnd()();
91271
91376
  } if (rf & 2) {
91272
91377
  const ctx_r1 = i0.ɵɵnextContext(2);
@@ -91903,6 +92008,7 @@ class SymphiqProfileAnalysisDashboardComponent {
91903
92008
  this.checkoutPlanClick = output();
91904
92009
  this.answerShopProfileQuestions = output();
91905
92010
  this.continueShopProfileQuestions = output();
92011
+ this.profileQuestionAnswerSave = output();
91906
92012
  this.isCurrencySelectionLoading = signal(false, ...(ngDevMode ? [{ debugName: "isCurrencySelectionLoading" }] : []));
91907
92013
  this.selectedCurrency = signal(null, ...(ngDevMode ? [{ debugName: "selectedCurrency" }] : []));
91908
92014
  this.isPlanLoading = signal(false, ...(ngDevMode ? [{ debugName: "isPlanLoading" }] : []));
@@ -92775,6 +92881,9 @@ class SymphiqProfileAnalysisDashboardComponent {
92775
92881
  handleStartCategoryQuestions(categoryId) {
92776
92882
  this.answerShopProfileQuestions.emit(categoryId);
92777
92883
  }
92884
+ handleProfileQuestionAnswerSave(event) {
92885
+ this.profileQuestionAnswerSave.emit(event);
92886
+ }
92778
92887
  handleShopProfileContinueClick() {
92779
92888
  if (this.shopProfileStatusCard) {
92780
92889
  this.shopProfileStatusCard.openAllQuestionsAnswerMode();
@@ -92790,7 +92899,7 @@ class SymphiqProfileAnalysisDashboardComponent {
92790
92899
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.shopProfileStatusCard = _t.first);
92791
92900
  } }, hostBindings: function SymphiqProfileAnalysisDashboardComponent_HostBindings(rf, ctx) { if (rf & 1) {
92792
92901
  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) {
92902
+ } }, 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
92903
  i0.ɵɵelementStart(0, "div", 1);
92795
92904
  i0.ɵɵelement(1, "div", 2);
92796
92905
  i0.ɵɵelementStart(2, "div");
@@ -92991,6 +93100,7 @@ class SymphiqProfileAnalysisDashboardComponent {
92991
93100
  [profileShopAnswers]="profileShopAnswers() || []"
92992
93101
  [users]="users() || []"
92993
93102
  (startCategoryQuestions)="handleStartCategoryQuestions($event)"
93103
+ (answerSave)="handleProfileQuestionAnswerSave($event)"
92994
93104
  />
92995
93105
  </div>
92996
93106
  }
@@ -93557,11 +93667,11 @@ class SymphiqProfileAnalysisDashboardComponent {
93557
93667
  }], shopProfileStatusCard: [{
93558
93668
  type: ViewChild,
93559
93669
  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: [{
93670
+ }], 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
93671
  type: HostListener,
93562
93672
  args: ['window:scroll', ['$event']]
93563
93673
  }] }); })();
93564
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqProfileAnalysisDashboardComponent, { className: "SymphiqProfileAnalysisDashboardComponent", filePath: "lib/components/profile-analysis-dashboard/symphiq-profile-analysis-dashboard.component.ts", lineNumber: 769 }); })();
93674
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqProfileAnalysisDashboardComponent, { className: "SymphiqProfileAnalysisDashboardComponent", filePath: "lib/components/profile-analysis-dashboard/symphiq-profile-analysis-dashboard.component.ts", lineNumber: 771 }); })();
93565
93675
 
93566
93676
  class ScrollProgressBarComponent {
93567
93677
  constructor() {
@@ -94542,5 +94652,5 @@ var pieChart_component = /*#__PURE__*/Object.freeze({
94542
94652
  * Generated bundle index. Do not edit.
94543
94653
  */
94544
94654
 
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 };
94655
+ 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
94656
  //# sourceMappingURL=symphiq-components.mjs.map