@eric-emg/symphiq-components 1.2.175 → 1.2.177

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.
@@ -55402,7 +55402,7 @@ class RevenueCalculatorWelcomeBannerComponent {
55402
55402
  const isLoaded = this.isDataFullyLoaded();
55403
55403
  const hasTargets = this.hasTargets();
55404
55404
  if (!isLoaded) {
55405
- return "We're currently downloading your Google Analytics 4 data to establish your baseline metrics. Once your data is loaded, you'll be able to set targets for each metric and see how those improvements translate to revenue growth. This bottom-up approach ensures your revenue targets are grounded in achievable metric improvements.";
55405
+ return "We're currently downloading your Google Analytics 4 data to establish your baseline metrics. Once your data is loaded, you'll set your target revenue for the year, and Symphiq will calculate the specific metric improvements needed to reach it. You can then adjust individual metrics to align with your team's capacity and strategic priorities.";
55406
55406
  }
55407
55407
  if (isLoaded && !hasTargets) {
55408
55408
  return "Now that we have your data, it's time to set your revenue target for this year. Enter your desired revenue goal below, and we'll automatically calculate the required improvements for each funnel metric. This ensures your revenue targets are grounded in achievable, metric-level improvements.";
@@ -55486,12 +55486,12 @@ class RevenueCalculatorWelcomeBannerComponent {
55486
55486
  i0.ɵɵtext(8, " Welcome to Your Revenue Calculator ");
55487
55487
  i0.ɵɵelementEnd();
55488
55488
  i0.ɵɵelementStart(9, "div", 8)(10, "p", 9);
55489
- i0.ɵɵtext(11, " The Revenue Calculator empowers you to set metric-level targets using a bottom-up approach. Instead of working backwards from a revenue goal, you'll set realistic targets for each funnel metric, allowing Symphiq to calculate your projected revenue based on achievable improvements at every conversion stage. ");
55489
+ i0.ɵɵtext(11, " The Revenue Calculator empowers you to achieve your revenue goals with precision. Start by setting your target revenue for the year, and Symphiq will automatically calculate the specific metric improvements needed across your funnel. You can then refine individual metric targets to match your team's capabilities and strategic focus. ");
55490
55490
  i0.ɵɵelementEnd();
55491
55491
  i0.ɵɵelementStart(12, "p", 9)(13, "strong", 10);
55492
55492
  i0.ɵɵtext(14, "Why this matters:");
55493
55493
  i0.ɵɵelementEnd();
55494
- i0.ɵɵtext(15, " Bottom-up revenue targeting provides clarity and accountability. By setting specific goals for metrics like add-to-cart rate or checkout conversion, your team knows exactly what needs to improve. This precision enables you to simulate different growth scenarios and understand which metric improvements will have the greatest impact on your revenue. ");
55494
+ i0.ɵɵtext(15, " This approach bridges strategy and execution. By starting with your revenue ambition and translating it into specific, measurable metric targets, your team gains clarity on exactly what needs to improve. You maintain full control to adjust targets based on your resources, historical performance, and growth opportunities at each funnel stage. ");
55495
55495
  i0.ɵɵelementEnd()();
55496
55496
  i0.ɵɵelementStart(16, "div", 11);
55497
55497
  i0.ɵɵnamespaceSVG();
@@ -55509,9 +55509,9 @@ class RevenueCalculatorWelcomeBannerComponent {
55509
55509
  i0.ɵɵelementEnd();
55510
55510
  i0.ɵɵnamespaceHTML();
55511
55511
  i0.ɵɵelementStart(26, "span")(27, "strong", 10);
55512
- i0.ɵɵtext(28, "Metric-Level Target Setting");
55512
+ i0.ɵɵtext(28, "Revenue Target Input");
55513
55513
  i0.ɵɵelementEnd();
55514
- i0.ɵɵtext(29, " \u2014 Set specific percentage improvements for each funnel metric based on your baseline performance");
55514
+ i0.ɵɵtext(29, " \u2014 Set your desired revenue goal for the year, either as an absolute amount or percentage increase");
55515
55515
  i0.ɵɵelementEnd()();
55516
55516
  i0.ɵɵelementStart(30, "li", 16);
55517
55517
  i0.ɵɵnamespaceSVG();
@@ -55520,9 +55520,9 @@ class RevenueCalculatorWelcomeBannerComponent {
55520
55520
  i0.ɵɵelementEnd();
55521
55521
  i0.ɵɵnamespaceHTML();
55522
55522
  i0.ɵɵelementStart(33, "span")(34, "strong", 10);
55523
- i0.ɵɵtext(35, "Revenue Simulation Tools");
55523
+ i0.ɵɵtext(35, "Automatic Metric Distribution");
55524
55524
  i0.ɵɵelementEnd();
55525
- i0.ɵɵtext(36, " \u2014 See real-time revenue projections as you adjust metric targets to understand growth scenarios");
55525
+ i0.ɵɵtext(36, " \u2014 See calculated metric improvements needed across your funnel to achieve your revenue target");
55526
55526
  i0.ɵɵelementEnd()();
55527
55527
  i0.ɵɵelementStart(37, "li", 16);
55528
55528
  i0.ɵɵnamespaceSVG();
@@ -55531,9 +55531,9 @@ class RevenueCalculatorWelcomeBannerComponent {
55531
55531
  i0.ɵɵelementEnd();
55532
55532
  i0.ɵɵnamespaceHTML();
55533
55533
  i0.ɵɵelementStart(40, "span")(41, "strong", 10);
55534
- i0.ɵɵtext(42, "Funnel Stage Impact Visualization");
55534
+ i0.ɵɵtext(42, "Target Refinement Controls");
55535
55535
  i0.ɵɵelementEnd();
55536
- i0.ɵɵtext(43, " \u2014 Visualize how metric improvements cascade through your funnel to drive revenue growth");
55536
+ i0.ɵɵtext(43, " \u2014 Adjust individual metric targets to align with your team's capacity and strategic priorities");
55537
55537
  i0.ɵɵelementEnd()()()()();
55538
55538
  i0.ɵɵelementStart(44, "div", 19);
55539
55539
  i0.ɵɵnamespaceSVG();
@@ -55604,10 +55604,10 @@ class RevenueCalculatorWelcomeBannerComponent {
55604
55604
  <!-- Description (full width, no confidence card) -->
55605
55605
  <div class="space-y-3 mb-6">
55606
55606
  <p [ngClass]="textClasses()" class="text-base leading-relaxed">
55607
- The Revenue Calculator empowers you to set metric-level targets using a bottom-up approach. Instead of working backwards from a revenue goal, you'll set realistic targets for each funnel metric, allowing Symphiq to calculate your projected revenue based on achievable improvements at every conversion stage.
55607
+ The Revenue Calculator empowers you to achieve your revenue goals with precision. Start by setting your target revenue for the year, and Symphiq will automatically calculate the specific metric improvements needed across your funnel. You can then refine individual metric targets to match your team's capabilities and strategic focus.
55608
55608
  </p>
55609
55609
  <p [ngClass]="textClasses()" class="text-base leading-relaxed">
55610
- <strong class="font-semibold">Why this matters:</strong> Bottom-up revenue targeting provides clarity and accountability. By setting specific goals for metrics like add-to-cart rate or checkout conversion, your team knows exactly what needs to improve. This precision enables you to simulate different growth scenarios and understand which metric improvements will have the greatest impact on your revenue.
55610
+ <strong class="font-semibold">Why this matters:</strong> This approach bridges strategy and execution. By starting with your revenue ambition and translating it into specific, measurable metric targets, your team gains clarity on exactly what needs to improve. You maintain full control to adjust targets based on your resources, historical performance, and growth opportunities at each funnel stage.
55611
55611
  </p>
55612
55612
  </div>
55613
55613
 
@@ -55624,19 +55624,19 @@ class RevenueCalculatorWelcomeBannerComponent {
55624
55624
  <svg class="w-5 h-5 flex-shrink-0 mt-0.5" fill="currentColor" viewBox="0 0 20 20">
55625
55625
  <path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clip-rule="evenodd"></path>
55626
55626
  </svg>
55627
- <span><strong class="font-semibold">Metric-Level Target Setting</strong> — Set specific percentage improvements for each funnel metric based on your baseline performance</span>
55627
+ <span><strong class="font-semibold">Revenue Target Input</strong> — Set your desired revenue goal for the year, either as an absolute amount or percentage increase</span>
55628
55628
  </li>
55629
55629
  <li class="flex items-start gap-2">
55630
55630
  <svg class="w-5 h-5 flex-shrink-0 mt-0.5" fill="currentColor" viewBox="0 0 20 20">
55631
55631
  <path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clip-rule="evenodd"></path>
55632
55632
  </svg>
55633
- <span><strong class="font-semibold">Revenue Simulation Tools</strong> — See real-time revenue projections as you adjust metric targets to understand growth scenarios</span>
55633
+ <span><strong class="font-semibold">Automatic Metric Distribution</strong> — See calculated metric improvements needed across your funnel to achieve your revenue target</span>
55634
55634
  </li>
55635
55635
  <li class="flex items-start gap-2">
55636
55636
  <svg class="w-5 h-5 flex-shrink-0 mt-0.5" fill="currentColor" viewBox="0 0 20 20">
55637
55637
  <path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clip-rule="evenodd"></path>
55638
55638
  </svg>
55639
- <span><strong class="font-semibold">Funnel Stage Impact Visualization</strong> — Visualize how metric improvements cascade through your funnel to drive revenue growth</span>
55639
+ <span><strong class="font-semibold">Target Refinement Controls</strong> — Adjust individual metric targets to align with your team's capacity and strategic priorities</span>
55640
55640
  </li>
55641
55641
  </ul>
55642
55642
  </div>
@@ -55824,6 +55824,29 @@ function calculateMetricPacing(metric) {
55824
55824
  projectedValue
55825
55825
  };
55826
55826
  }
55827
+ function extractMetricPacing(pacingResponse, metricEnum) {
55828
+ if (!pacingResponse)
55829
+ return null;
55830
+ const soFarMetric = pacingResponse.soFarMetricValues?.find(m => m.metric === metricEnum);
55831
+ const projectedMetric = pacingResponse.projectedMetricValues?.find(m => m.metric === metricEnum);
55832
+ const lastYearMetrics = pacingResponse.lastYearMetricValuesMonthly?.filter(m => m.metric === metricEnum) || [];
55833
+ if (!soFarMetric && !projectedMetric)
55834
+ return null;
55835
+ const currentValue = soFarMetric?.value ? parseFloat(soFarMetric.value) : 0;
55836
+ const projectedValue = projectedMetric?.value ? parseFloat(projectedMetric.value) : 0;
55837
+ const priorYtdValue = lastYearMetrics.reduce((sum, m) => {
55838
+ return sum + (m.value ? parseFloat(m.value) : 0);
55839
+ }, 0);
55840
+ const pacingPercentage = priorYtdValue > 0 ? ((currentValue - priorYtdValue) / priorYtdValue) * 100 : 0;
55841
+ return {
55842
+ metric: metricEnum,
55843
+ currentValue,
55844
+ priorYtdValue,
55845
+ projectedValue,
55846
+ pacingPercentage,
55847
+ ytdVariancePercent: pacingPercentage
55848
+ };
55849
+ }
55827
55850
 
55828
55851
  class PacingStatusBadgeComponent {
55829
55852
  constructor() {
@@ -56070,21 +56093,21 @@ class FunnelMetricsVisualizationComponent {
56070
56093
  constructor() {
56071
56094
  this.viewMode = input(ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "viewMode" }] : []));
56072
56095
  this.calculations = input([], ...(ngDevMode ? [{ debugName: "calculations" }] : []));
56073
- this.pacingMetrics = input([], ...(ngDevMode ? [{ debugName: "pacingMetrics" }] : []));
56096
+ this.pacingMetrics = input(undefined, ...(ngDevMode ? [{ debugName: "pacingMetrics" }] : []));
56074
56097
  this.currentYear = computed(() => new Date().getFullYear(), ...(ngDevMode ? [{ debugName: "currentYear" }] : []));
56075
56098
  this.priorYear = computed(() => new Date().getFullYear() - 1, ...(ngDevMode ? [{ debugName: "priorYear" }] : []));
56076
56099
  this.funnelStages = computed(() => {
56077
56100
  const calcs = this.calculations();
56078
- const pacing = this.pacingMetrics();
56101
+ const pacingResponse = this.pacingMetrics();
56079
56102
  const grouped = new Map();
56080
56103
  const stageMetrics = calcs.filter(c => c.isFunnelStage);
56081
56104
  const relatedMetrics = calcs.filter(c => !c.isFunnelStage);
56082
56105
  stageMetrics.forEach(stageMetric => {
56083
56106
  const related = relatedMetrics.filter(rm => rm.funnelMetric === stageMetric.metric);
56084
- const stagePacingMetric = pacing.find(p => p.metric === stageMetric.metric);
56107
+ const stagePacingMetric = extractMetricPacing(pacingResponse, stageMetric.metric);
56085
56108
  const stagePacingInfo = stagePacingMetric ? calculateMetricPacing(stagePacingMetric) : null;
56086
56109
  const relatedWithPacing = related.map(relMetric => {
56087
- const relPacingMetric = pacing.find(p => p.metric === relMetric.metric);
56110
+ const relPacingMetric = extractMetricPacing(pacingResponse, relMetric.metric);
56088
56111
  const relPacingInfo = relPacingMetric ? calculateMetricPacing(relPacingMetric) : null;
56089
56112
  return { calc: relMetric, pacingInfo: relPacingInfo };
56090
56113
  });
@@ -57471,7 +57494,7 @@ class InitialTargetSettingComponent {
57471
57494
  this.yoyUiData = input(undefined, ...(ngDevMode ? [{ debugName: "yoyUiData" }] : []));
57472
57495
  this.trendUiData = input(undefined, ...(ngDevMode ? [{ debugName: "trendUiData" }] : []));
57473
57496
  this.shopId = input(undefined, ...(ngDevMode ? [{ debugName: "shopId" }] : []));
57474
- this.pacingMetrics = input([], ...(ngDevMode ? [{ debugName: "pacingMetrics" }] : []));
57497
+ this.pacingMetrics = input(undefined, ...(ngDevMode ? [{ debugName: "pacingMetrics" }] : []));
57475
57498
  this.dataResults = input([], ...(ngDevMode ? [{ debugName: "dataResults" }] : []));
57476
57499
  this.targetsCreated = output();
57477
57500
  this.inputMode = signal('absolute', ...(ngDevMode ? [{ debugName: "inputMode" }] : []));
@@ -57482,8 +57505,11 @@ class InitialTargetSettingComponent {
57482
57505
  return sumMetricFromUiData(this.yoyUiData(), MetricEnum.PURCHASE_REVENUE);
57483
57506
  }, ...(ngDevMode ? [{ debugName: "priorYearRevenue" }] : []));
57484
57507
  this.currentPaceProjection = computed(() => {
57485
- const revenuePacing = this.pacingMetrics().find(m => m.metric === MetricEnum.PURCHASE_REVENUE);
57486
- return revenuePacing?.projectedValue || 0;
57508
+ const pacingData = this.pacingMetrics();
57509
+ if (!pacingData || !pacingData.projectedMetricValues)
57510
+ return 0;
57511
+ const revenueMetric = pacingData.projectedMetricValues.find(m => m.metric === MetricEnum.PURCHASE_REVENUE);
57512
+ return revenueMetric?.value ? parseFloat(revenueMetric.value) : 0;
57487
57513
  }, ...(ngDevMode ? [{ debugName: "currentPaceProjection" }] : []));
57488
57514
  this.gapToClose = computed(() => {
57489
57515
  const target = this.calculatedRevenue();
@@ -58140,7 +58166,7 @@ function SymphiqRevenueCalculatorDashboardComponent_Conditional_25_Template(rf,
58140
58166
  const ctx_r0 = i0.ɵɵnextContext();
58141
58167
  i0.ɵɵproperty("viewMode", ctx_r0.viewMode())("dataLoadStatus", ctx_r0.dataLoadStatus() ?? ctx_r0.ShopDataLoadStatusEnum.NOT_LOADED)("hasTargets", false);
58142
58168
  i0.ɵɵadvance(2);
58143
- i0.ɵɵproperty("viewMode", ctx_r0.viewMode())("funnelMetrics", ctx_r0.funnelMetrics() ?? i0.ɵɵpureFunction0(11, _c0$q))("mainUiData", ctx_r0.mainUiData())("yoyUiData", ctx_r0.yoyUiData())("trendUiData", ctx_r0.trendUiData())("shopId", ctx_r0.shopId())("pacingMetrics", ctx_r0.pacingMetrics())("dataResults", ctx_r0.dataResults());
58169
+ i0.ɵɵproperty("viewMode", ctx_r0.viewMode())("funnelMetrics", ctx_r0.funnelMetrics() ?? i0.ɵɵpureFunction0(11, _c0$q))("mainUiData", ctx_r0.mainUiData())("yoyUiData", ctx_r0.yoyUiData())("trendUiData", ctx_r0.trendUiData())("shopId", ctx_r0.shopId())("pacingMetrics", ctx_r0.pacingResponse())("dataResults", ctx_r0.dataResults());
58144
58170
  } }
58145
58171
  function SymphiqRevenueCalculatorDashboardComponent_Conditional_26_Template(rf, ctx) { if (rf & 1) {
58146
58172
  i0.ɵɵelement(0, "symphiq-revenue-calculator-welcome-banner", 14);
@@ -58170,7 +58196,6 @@ function SymphiqRevenueCalculatorDashboardComponent_Conditional_26_Template(rf,
58170
58196
  } }
58171
58197
  class SymphiqRevenueCalculatorDashboardComponent {
58172
58198
  constructor() {
58173
- this.headerScrollService = inject(HeaderScrollService);
58174
58199
  this.viewMode = input(ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "viewMode" }] : []));
58175
58200
  this.isLoading = input(false, ...(ngDevMode ? [{ debugName: "isLoading" }] : []));
58176
58201
  this.dataLoadStatus = input(ShopDataLoadStatusEnum.NOT_LOADED, ...(ngDevMode ? [{ debugName: "dataLoadStatus" }] : []));
@@ -58179,7 +58204,7 @@ class SymphiqRevenueCalculatorDashboardComponent {
58179
58204
  this.mainUiData = input(undefined, ...(ngDevMode ? [{ debugName: "mainUiData" }] : []));
58180
58205
  this.yoyUiData = input(undefined, ...(ngDevMode ? [{ debugName: "yoyUiData" }] : []));
58181
58206
  this.trendUiData = input(undefined, ...(ngDevMode ? [{ debugName: "trendUiData" }] : []));
58182
- this.pacingMetrics = input([], ...(ngDevMode ? [{ debugName: "pacingMetrics" }] : []));
58207
+ this.pacingResponse = input(undefined, ...(ngDevMode ? [{ debugName: "pacingResponse" }] : []));
58183
58208
  this.dataResults = input([], ...(ngDevMode ? [{ debugName: "dataResults" }] : []));
58184
58209
  this.shopId = input(0, ...(ngDevMode ? [{ debugName: "shopId" }] : []));
58185
58210
  this.embedded = input(false, ...(ngDevMode ? [{ debugName: "embedded" }] : []));
@@ -58193,6 +58218,8 @@ class SymphiqRevenueCalculatorDashboardComponent {
58193
58218
  this.JourneyStepIdEnum = JourneyStepIdEnum;
58194
58219
  this.ShopDataLoadStatusEnum = ShopDataLoadStatusEnum;
58195
58220
  this.scrollProgress = signal(0, ...(ngDevMode ? [{ debugName: "scrollProgress" }] : []));
58221
+ this.isScrolled = signal(false, ...(ngDevMode ? [{ debugName: "isScrolled" }] : []));
58222
+ this.isProgrammaticScroll = false;
58196
58223
  this.isLightMode = computed(() => this.viewMode() === ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "isLightMode" }] : []));
58197
58224
  this.hasCurrentYearTargets = computed(() => {
58198
58225
  const targets = this.targets() ?? [];
@@ -58210,15 +58237,29 @@ class SymphiqRevenueCalculatorDashboardComponent {
58210
58237
  effect(() => {
58211
58238
  const event = this.scrollEvent();
58212
58239
  if (event?.detail) {
58213
- this.updateScrollProgress(event.detail.scrollTop);
58240
+ const scrollTop = event.detail.scrollTop;
58241
+ this.updateScrollProgress(scrollTop);
58242
+ if (!this.isProgrammaticScroll) {
58243
+ const COLLAPSE_THRESHOLD = 20;
58244
+ const EXPAND_THRESHOLD = 10;
58245
+ const currentState = this.isScrolled();
58246
+ if (!currentState && scrollTop > COLLAPSE_THRESHOLD) {
58247
+ this.isScrolled.set(true);
58248
+ }
58249
+ else if (currentState && scrollTop < EXPAND_THRESHOLD) {
58250
+ this.isScrolled.set(false);
58251
+ }
58252
+ }
58214
58253
  }
58215
58254
  }, { allowSignalWrites: true });
58216
58255
  }
58217
58256
  ngAfterViewInit() {
58218
- this.headerScrollService.resetState();
58257
+ this.isScrolled.set(false);
58258
+ this.scrollProgress.set(0);
58219
58259
  }
58220
58260
  ngOnDestroy() {
58221
- this.headerScrollService.resetState();
58261
+ this.isScrolled.set(false);
58262
+ this.scrollProgress.set(0);
58222
58263
  }
58223
58264
  onWindowScroll() {
58224
58265
  if (!this.embedded()) {
@@ -58297,7 +58338,7 @@ class SymphiqRevenueCalculatorDashboardComponent {
58297
58338
  static { this.ɵfac = function SymphiqRevenueCalculatorDashboardComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SymphiqRevenueCalculatorDashboardComponent)(); }; }
58298
58339
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SymphiqRevenueCalculatorDashboardComponent, selectors: [["symphiq-revenue-calculator-dashboard"]], hostBindings: function SymphiqRevenueCalculatorDashboardComponent_HostBindings(rf, ctx) { if (rf & 1) {
58299
58340
  i0.ɵɵlistener("scroll", function SymphiqRevenueCalculatorDashboardComponent_scroll_HostBindingHandler($event) { return ctx.onWindowScroll($event); }, i0.ɵɵresolveWindow);
58300
- } }, inputs: { viewMode: [1, "viewMode"], isLoading: [1, "isLoading"], dataLoadStatus: [1, "dataLoadStatus"], targets: [1, "targets"], funnelMetrics: [1, "funnelMetrics"], mainUiData: [1, "mainUiData"], yoyUiData: [1, "yoyUiData"], trendUiData: [1, "trendUiData"], pacingMetrics: [1, "pacingMetrics"], dataResults: [1, "dataResults"], shopId: [1, "shopId"], embedded: [1, "embedded"], scrollEvent: [1, "scrollEvent"], scrollElement: [1, "scrollElement"], forDemo: [1, "forDemo"], maxAccessibleStepId: [1, "maxAccessibleStepId"] }, outputs: { stepClick: "stepClick", nextStepClick: "nextStepClick", targetsCreated: "targetsCreated" }, decls: 27, vars: 42, consts: [[3, "ngClass"], [1, "h-full", "transition-all", "duration-200", "ease-out", 3, "ngClass"], [1, "animated-bubbles", 2, "position", "fixed", "top", "0", "left", "0", "right", "0", "bottom", "0", "width", "100vw", "height", "100vh", "z-index", "1", "pointer-events", "none"], [1, "relative", "z-[51]"], [1, "sticky", "top-0", "z-50", 3, "ngClass"], [1, "transition-all", "duration-300", "ease-in-out", "overflow-hidden"], [1, "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-8"], [1, "flex", "items-center", "justify-between"], [1, "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-3"], [1, "flex-1", "min-w-0", "mr-4"], [3, "stepClick", "nextStepClick", "viewMode", "currentStepId", "showNextStepAction", "forDemo", "maxAccessibleStepId"], [1, "relative"], [1, "flex", "items-center", "justify-center", "min-h-[400px]"], ["size", "large", 3, "viewMode"], [3, "viewMode", "dataLoadStatus", "hasTargets"], [1, "mt-8", "rounded-2xl", "border", "shadow-lg", "overflow-hidden", 3, "ngClass"], [1, "px-8", "py-12", 3, "ngClass"], [1, "flex", "flex-col", "items-center", "text-center", "space-y-6"], [1, "space-y-2"], [1, "text-xl", "font-bold", 3, "ngClass"], [1, "text-sm", "max-w-md", 3, "ngClass"], [1, "mt-8"], [3, "targetsCreated", "viewMode", "funnelMetrics", "mainUiData", "yoyUiData", "trendUiData", "shopId", "pacingMetrics", "dataResults"], [1, "mt-8", "rounded-2xl", "border-2", "border-dashed", "p-12", 3, "ngClass"], [1, "text-center", "space-y-4"], [1, "flex", "justify-center"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-16", "h-16", 3, "ngClass"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 7h6m0 10v-3m-3 3h.01M9 17h.01M9 14h.01M12 14h.01M15 11h.01M12 11h.01M9 11h.01M7 21h10a2 2 0 002-2V5a2 2 0 00-2-2H7a2 2 0 00-2 2v14a2 2 0 002 2z"], [1, "text-2xl", "font-bold", 3, "ngClass"], [1, "text-base", "max-w-2xl", "mx-auto", 3, "ngClass"]], template: function SymphiqRevenueCalculatorDashboardComponent_Template(rf, ctx) { if (rf & 1) {
58341
+ } }, inputs: { viewMode: [1, "viewMode"], isLoading: [1, "isLoading"], dataLoadStatus: [1, "dataLoadStatus"], targets: [1, "targets"], funnelMetrics: [1, "funnelMetrics"], mainUiData: [1, "mainUiData"], yoyUiData: [1, "yoyUiData"], trendUiData: [1, "trendUiData"], pacingResponse: [1, "pacingResponse"], dataResults: [1, "dataResults"], shopId: [1, "shopId"], embedded: [1, "embedded"], scrollEvent: [1, "scrollEvent"], scrollElement: [1, "scrollElement"], forDemo: [1, "forDemo"], maxAccessibleStepId: [1, "maxAccessibleStepId"] }, outputs: { stepClick: "stepClick", nextStepClick: "nextStepClick", targetsCreated: "targetsCreated" }, decls: 27, vars: 42, consts: [[3, "ngClass"], [1, "h-full", "transition-all", "duration-200", "ease-out", 3, "ngClass"], [1, "animated-bubbles", 2, "position", "fixed", "top", "0", "left", "0", "right", "0", "bottom", "0", "width", "100vw", "height", "100vh", "z-index", "1", "pointer-events", "none"], [1, "relative", "z-[51]"], [1, "sticky", "top-0", "z-50", 3, "ngClass"], [1, "transition-all", "duration-300", "ease-in-out", "overflow-hidden"], [1, "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-8"], [1, "flex", "items-center", "justify-between"], [1, "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-3"], [1, "flex-1", "min-w-0", "mr-4"], [3, "stepClick", "nextStepClick", "viewMode", "currentStepId", "showNextStepAction", "forDemo", "maxAccessibleStepId"], [1, "relative"], [1, "flex", "items-center", "justify-center", "min-h-[400px]"], ["size", "large", 3, "viewMode"], [3, "viewMode", "dataLoadStatus", "hasTargets"], [1, "mt-8", "rounded-2xl", "border", "shadow-lg", "overflow-hidden", 3, "ngClass"], [1, "px-8", "py-12", 3, "ngClass"], [1, "flex", "flex-col", "items-center", "text-center", "space-y-6"], [1, "space-y-2"], [1, "text-xl", "font-bold", 3, "ngClass"], [1, "text-sm", "max-w-md", 3, "ngClass"], [1, "mt-8"], [3, "targetsCreated", "viewMode", "funnelMetrics", "mainUiData", "yoyUiData", "trendUiData", "shopId", "pacingMetrics", "dataResults"], [1, "mt-8", "rounded-2xl", "border-2", "border-dashed", "p-12", 3, "ngClass"], [1, "text-center", "space-y-4"], [1, "flex", "justify-center"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-16", "h-16", 3, "ngClass"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 7h6m0 10v-3m-3 3h.01M9 17h.01M9 14h.01M12 14h.01M15 11h.01M12 11h.01M9 11h.01M7 21h10a2 2 0 002-2V5a2 2 0 00-2-2H7a2 2 0 00-2 2v14a2 2 0 002 2z"], [1, "text-2xl", "font-bold", 3, "ngClass"], [1, "text-base", "max-w-2xl", "mx-auto", 3, "ngClass"]], template: function SymphiqRevenueCalculatorDashboardComponent_Template(rf, ctx) { if (rf & 1) {
58301
58342
  i0.ɵɵelementStart(0, "div", 0)(1, "div");
58302
58343
  i0.ɵɵelement(2, "div", 1);
58303
58344
  i0.ɵɵelementEnd();
@@ -58306,7 +58347,7 @@ class SymphiqRevenueCalculatorDashboardComponent {
58306
58347
  i0.ɵɵtext(11, " Revenue Calculator ");
58307
58348
  i0.ɵɵelementEnd();
58308
58349
  i0.ɵɵelementStart(12, "p", 0);
58309
- i0.ɵɵtext(13, " Set Metric-Level Targets for Bottom-Up Revenue Planning ");
58350
+ i0.ɵɵtext(13, " Set Your Revenue Target and See Required Metric Improvements ");
58310
58351
  i0.ɵɵelementEnd()()()()();
58311
58352
  i0.ɵɵelementStart(14, "div", 5)(15, "div", 8)(16, "div", 7)(17, "div", 9)(18, "h1", 0);
58312
58353
  i0.ɵɵtext(19, " Revenue Calculator ");
@@ -58329,17 +58370,17 @@ class SymphiqRevenueCalculatorDashboardComponent {
58329
58370
  i0.ɵɵadvance(2);
58330
58371
  i0.ɵɵproperty("ngClass", ctx.getHeaderClasses());
58331
58372
  i0.ɵɵadvance();
58332
- i0.ɵɵclassProp("max-h-0", ctx.headerScrollService.isScrolled())("opacity-0", ctx.headerScrollService.isScrolled())("max-h-96", !ctx.headerScrollService.isScrolled())("opacity-100", !ctx.headerScrollService.isScrolled());
58373
+ i0.ɵɵclassProp("max-h-0", ctx.isScrolled())("opacity-0", ctx.isScrolled())("max-h-96", !ctx.isScrolled())("opacity-100", !ctx.isScrolled());
58333
58374
  i0.ɵɵadvance();
58334
- i0.ɵɵclassProp("pointer-events-none", ctx.headerScrollService.isScrolled())("pointer-events-auto", !ctx.headerScrollService.isScrolled());
58375
+ i0.ɵɵclassProp("pointer-events-none", ctx.isScrolled())("pointer-events-auto", !ctx.isScrolled());
58335
58376
  i0.ɵɵadvance(3);
58336
58377
  i0.ɵɵproperty("ngClass", ctx.getMainTitleClasses());
58337
58378
  i0.ɵɵadvance(2);
58338
58379
  i0.ɵɵproperty("ngClass", ctx.getSubtitleClasses());
58339
58380
  i0.ɵɵadvance(2);
58340
- i0.ɵɵclassProp("max-h-0", !ctx.headerScrollService.isScrolled())("opacity-0", !ctx.headerScrollService.isScrolled())("max-h-20", ctx.headerScrollService.isScrolled())("opacity-100", ctx.headerScrollService.isScrolled());
58381
+ i0.ɵɵclassProp("max-h-0", !ctx.isScrolled())("opacity-0", !ctx.isScrolled())("max-h-20", ctx.isScrolled())("opacity-100", ctx.isScrolled());
58341
58382
  i0.ɵɵadvance();
58342
- i0.ɵɵclassProp("pointer-events-none", !ctx.headerScrollService.isScrolled())("pointer-events-auto", ctx.headerScrollService.isScrolled());
58383
+ i0.ɵɵclassProp("pointer-events-none", !ctx.isScrolled())("pointer-events-auto", ctx.isScrolled());
58343
58384
  i0.ɵɵadvance(3);
58344
58385
  i0.ɵɵproperty("ngClass", ctx.isLightMode() ? "text-xl font-bold bg-gradient-to-r from-blue-600 to-purple-600 bg-clip-text text-transparent truncate" : "text-xl font-bold bg-gradient-to-r from-blue-400 to-purple-400 bg-clip-text text-transparent truncate");
58345
58386
  i0.ɵɵadvance(2);
@@ -58367,37 +58408,39 @@ class SymphiqRevenueCalculatorDashboardComponent {
58367
58408
  template: `
58368
58409
  <div [ngClass]="getContainerClasses()">
58369
58410
  <!-- Scroll Progress Bar -->
58370
- <div [class]="embedded() ? 'sticky top-0 left-0 right-0 h-1 z-[60] bg-slate-200/30' : 'fixed top-0 left-0 right-0 h-1 z-[60] bg-slate-200/30'">
58411
+ <div
58412
+ [class]="embedded() ? 'sticky top-0 left-0 right-0 h-1 z-[60] bg-slate-200/30' : 'fixed top-0 left-0 right-0 h-1 z-[60] bg-slate-200/30'">
58371
58413
  <div
58372
- [style.width.%]="scrollProgress()"
58373
- [ngClass]="isLightMode() ? 'bg-gradient-to-r from-blue-500 to-purple-500' : 'bg-gradient-to-r from-blue-400 to-purple-400'"
58374
- class="h-full transition-all duration-200 ease-out">
58414
+ [style.width.%]="scrollProgress()"
58415
+ [ngClass]="isLightMode() ? 'bg-gradient-to-r from-blue-500 to-purple-500' : 'bg-gradient-to-r from-blue-400 to-purple-400'"
58416
+ class="h-full transition-all duration-200 ease-out">
58375
58417
  </div>
58376
58418
  </div>
58377
58419
 
58378
58420
  <!-- Animated Background Bubbles -->
58379
- <div class="animated-bubbles" [class.light-mode]="isLightMode()" style="position: fixed; top: 0; left: 0; right: 0; bottom: 0; width: 100vw; height: 100vh; z-index: 1; pointer-events: none;"></div>
58421
+ <div class="animated-bubbles" [class.light-mode]="isLightMode()"
58422
+ style="position: fixed; top: 0; left: 0; right: 0; bottom: 0; width: 100vw; height: 100vh; z-index: 1; pointer-events: none;"></div>
58380
58423
 
58381
58424
  <div class="relative z-[51]">
58382
58425
  <header [ngClass]="getHeaderClasses()" class="sticky top-0 z-50">
58383
58426
  <!-- Expanded Header -->
58384
58427
  <div
58385
- class="transition-all duration-300 ease-in-out overflow-hidden"
58386
- [class.max-h-0]="headerScrollService.isScrolled()"
58387
- [class.opacity-0]="headerScrollService.isScrolled()"
58388
- [class.max-h-96]="!headerScrollService.isScrolled()"
58389
- [class.opacity-100]="!headerScrollService.isScrolled()">
58428
+ class="transition-all duration-300 ease-in-out overflow-hidden"
58429
+ [class.max-h-0]="isScrolled()"
58430
+ [class.opacity-0]="isScrolled()"
58431
+ [class.max-h-96]="!isScrolled()"
58432
+ [class.opacity-100]="!isScrolled()">
58390
58433
  <div
58391
- class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8"
58392
- [class.pointer-events-none]="headerScrollService.isScrolled()"
58393
- [class.pointer-events-auto]="!headerScrollService.isScrolled()">
58434
+ class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8"
58435
+ [class.pointer-events-none]="isScrolled()"
58436
+ [class.pointer-events-auto]="!isScrolled()">
58394
58437
  <div class="flex items-center justify-between">
58395
58438
  <div>
58396
58439
  <h1 [ngClass]="getMainTitleClasses()">
58397
58440
  Revenue Calculator
58398
58441
  </h1>
58399
58442
  <p [ngClass]="getSubtitleClasses()">
58400
- Set Metric-Level Targets for Bottom-Up Revenue Planning
58443
+ Set Your Revenue Target and See Required Metric Improvements
58401
58444
  </p>
58402
58445
  </div>
58403
58446
  </div>
@@ -58406,15 +58449,15 @@ class SymphiqRevenueCalculatorDashboardComponent {
58406
58449
 
58407
58450
  <!-- Condensed Header -->
58408
58451
  <div
58409
- class="transition-all duration-300 ease-in-out overflow-hidden"
58410
- [class.max-h-0]="!headerScrollService.isScrolled()"
58411
- [class.opacity-0]="!headerScrollService.isScrolled()"
58412
- [class.max-h-20]="headerScrollService.isScrolled()"
58413
- [class.opacity-100]="headerScrollService.isScrolled()">
58452
+ class="transition-all duration-300 ease-in-out overflow-hidden"
58453
+ [class.max-h-0]="!isScrolled()"
58454
+ [class.opacity-0]="!isScrolled()"
58455
+ [class.max-h-20]="isScrolled()"
58456
+ [class.opacity-100]="isScrolled()">
58414
58457
  <div
58415
- class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-3"
58416
- [class.pointer-events-none]="!headerScrollService.isScrolled()"
58417
- [class.pointer-events-auto]="headerScrollService.isScrolled()">
58458
+ class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-3"
58459
+ [class.pointer-events-none]="!isScrolled()"
58460
+ [class.pointer-events-auto]="isScrolled()">
58418
58461
  <div class="flex items-center justify-between">
58419
58462
  <div class="flex-1 min-w-0 mr-4">
58420
58463
  <h1 [ngClass]="isLightMode() ? 'text-xl font-bold bg-gradient-to-r from-blue-600 to-purple-600 bg-clip-text text-transparent truncate' : 'text-xl font-bold bg-gradient-to-r from-blue-400 to-purple-400 bg-clip-text text-transparent truncate'">
@@ -58428,13 +58471,13 @@ class SymphiqRevenueCalculatorDashboardComponent {
58428
58471
 
58429
58472
  <!-- Journey Progress Indicator -->
58430
58473
  <symphiq-journey-progress-indicator
58431
- [viewMode]="viewMode()"
58432
- [currentStepId]="JourneyStepIdEnum.REVENUE_CALCULATOR"
58433
- [showNextStepAction]="hasCurrentYearTargets()"
58434
- [forDemo]="forDemo()"
58435
- [maxAccessibleStepId]="maxAccessibleStepId()"
58436
- (stepClick)="stepClick.emit($event)"
58437
- (nextStepClick)="nextStepClick.emit()"
58474
+ [viewMode]="viewMode()"
58475
+ [currentStepId]="JourneyStepIdEnum.REVENUE_CALCULATOR"
58476
+ [showNextStepAction]="hasCurrentYearTargets()"
58477
+ [forDemo]="forDemo()"
58478
+ [maxAccessibleStepId]="maxAccessibleStepId()"
58479
+ (stepClick)="stepClick.emit($event)"
58480
+ (nextStepClick)="nextStepClick.emit()"
58438
58481
  />
58439
58482
 
58440
58483
  <main class="relative">
@@ -58444,8 +58487,8 @@ class SymphiqRevenueCalculatorDashboardComponent {
58444
58487
  @if (isLoading()) {
58445
58488
  <div class="flex items-center justify-center min-h-[400px]">
58446
58489
  <symphiq-indeterminate-spinner
58447
- [viewMode]="viewMode()"
58448
- size="large"
58490
+ [viewMode]="viewMode()"
58491
+ size="large"
58449
58492
  />
58450
58493
  </div>
58451
58494
  }
@@ -58453,25 +58496,27 @@ class SymphiqRevenueCalculatorDashboardComponent {
58453
58496
  <!-- State 2: Data Loading Message (isLoading = false && dataLoadStatus !== FULLY_LOADED) -->
58454
58497
  @else if (dataLoadStatus() !== ShopDataLoadStatusEnum.FULLY_LOADED) {
58455
58498
  <symphiq-revenue-calculator-welcome-banner
58456
- [viewMode]="viewMode()"
58457
- [dataLoadStatus]="dataLoadStatus() ?? ShopDataLoadStatusEnum.NOT_LOADED"
58458
- [hasTargets]="false"
58499
+ [viewMode]="viewMode()"
58500
+ [dataLoadStatus]="dataLoadStatus() ?? ShopDataLoadStatusEnum.NOT_LOADED"
58501
+ [hasTargets]="false"
58459
58502
  />
58460
58503
 
58461
58504
  <!-- Loading Message Card -->
58462
- <div [ngClass]="loadingMessageContainerClasses()" class="mt-8 rounded-2xl border shadow-lg overflow-hidden">
58505
+ <div [ngClass]="loadingMessageContainerClasses()"
58506
+ class="mt-8 rounded-2xl border shadow-lg overflow-hidden">
58463
58507
  <div [ngClass]="loadingMessageContentClasses()" class="px-8 py-12">
58464
58508
  <div class="flex flex-col items-center text-center space-y-6">
58465
58509
  <symphiq-indeterminate-spinner
58466
- [viewMode]="viewMode()"
58467
- size="large"
58510
+ [viewMode]="viewMode()"
58511
+ size="large"
58468
58512
  />
58469
58513
  <div class="space-y-2">
58470
58514
  <h3 [ngClass]="loadingTitleClasses()" class="text-xl font-bold">
58471
58515
  Downloading Your Google Analytics 4 Data
58472
58516
  </h3>
58473
58517
  <p [ngClass]="loadingTextClasses()" class="text-sm max-w-md">
58474
- Symphiq is fetching your historical metrics to establish baseline performance. This may take a moment as we gather your funnel data.
58518
+ Symphiq is fetching your historical metrics to establish baseline performance. This may take a
58519
+ moment as we gather your funnel data.
58475
58520
  </p>
58476
58521
  </div>
58477
58522
  </div>
@@ -58482,22 +58527,22 @@ class SymphiqRevenueCalculatorDashboardComponent {
58482
58527
  <!-- State 3a: Initial Target Setting (isLoading = false && dataLoadStatus === FULLY_LOADED && !hasCurrentYearTargets) -->
58483
58528
  @else if (!hasCurrentYearTargets()) {
58484
58529
  <symphiq-revenue-calculator-welcome-banner
58485
- [viewMode]="viewMode()"
58486
- [dataLoadStatus]="dataLoadStatus() ?? ShopDataLoadStatusEnum.NOT_LOADED"
58487
- [hasTargets]="false"
58530
+ [viewMode]="viewMode()"
58531
+ [dataLoadStatus]="dataLoadStatus() ?? ShopDataLoadStatusEnum.NOT_LOADED"
58532
+ [hasTargets]="false"
58488
58533
  />
58489
58534
 
58490
58535
  <div class="mt-8">
58491
58536
  <symphiq-initial-target-setting
58492
- [viewMode]="viewMode()"
58493
- [funnelMetrics]="funnelMetrics() ?? []"
58494
- [mainUiData]="mainUiData()"
58495
- [yoyUiData]="yoyUiData()"
58496
- [trendUiData]="trendUiData()"
58497
- [shopId]="shopId()"
58498
- [pacingMetrics]="pacingMetrics()"
58499
- [dataResults]="dataResults()"
58500
- (targetsCreated)="targetsCreated.emit($event)"
58537
+ [viewMode]="viewMode()"
58538
+ [funnelMetrics]="funnelMetrics() ?? []"
58539
+ [mainUiData]="mainUiData()"
58540
+ [yoyUiData]="yoyUiData()"
58541
+ [trendUiData]="trendUiData()"
58542
+ [shopId]="shopId()"
58543
+ [pacingMetrics]="pacingResponse()"
58544
+ [dataResults]="dataResults()"
58545
+ (targetsCreated)="targetsCreated.emit($event)"
58501
58546
  />
58502
58547
  </div>
58503
58548
  }
@@ -58505,24 +58550,27 @@ class SymphiqRevenueCalculatorDashboardComponent {
58505
58550
  <!-- State 3b: Final Dashboard (isLoading = false && dataLoadStatus === FULLY_LOADED && hasCurrentYearTargets) -->
58506
58551
  @else {
58507
58552
  <symphiq-revenue-calculator-welcome-banner
58508
- [viewMode]="viewMode()"
58509
- [dataLoadStatus]="dataLoadStatus() ?? ShopDataLoadStatusEnum.NOT_LOADED"
58510
- [hasTargets]="true"
58553
+ [viewMode]="viewMode()"
58554
+ [dataLoadStatus]="dataLoadStatus() ?? ShopDataLoadStatusEnum.NOT_LOADED"
58555
+ [hasTargets]="true"
58511
58556
  />
58512
58557
 
58513
58558
  <!-- Placeholder for Revenue Calculator Content -->
58514
58559
  <div [ngClass]="placeholderContainerClasses()" class="mt-8 rounded-2xl border-2 border-dashed p-12">
58515
58560
  <div class="text-center space-y-4">
58516
58561
  <div class="flex justify-center">
58517
- <svg [ngClass]="placeholderIconClasses()" class="w-16 h-16" fill="none" stroke="currentColor" viewBox="0 0 24 24">
58518
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 7h6m0 10v-3m-3 3h.01M9 17h.01M9 14h.01M12 14h.01M15 11h.01M12 11h.01M9 11h.01M7 21h10a2 2 0 002-2V5a2 2 0 00-2-2H7a2 2 0 00-2 2v14a2 2 0 002 2z"></path>
58562
+ <svg [ngClass]="placeholderIconClasses()" class="w-16 h-16" fill="none" stroke="currentColor"
58563
+ viewBox="0 0 24 24">
58564
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
58565
+ d="M9 7h6m0 10v-3m-3 3h.01M9 17h.01M9 14h.01M12 14h.01M15 11h.01M12 11h.01M9 11h.01M7 21h10a2 2 0 002-2V5a2 2 0 00-2-2H7a2 2 0 00-2 2v14a2 2 0 002 2z"></path>
58519
58566
  </svg>
58520
58567
  </div>
58521
58568
  <h3 [ngClass]="placeholderTitleClasses()" class="text-2xl font-bold">
58522
58569
  Revenue Calculator Dashboard
58523
58570
  </h3>
58524
58571
  <p [ngClass]="placeholderTextClasses()" class="text-base max-w-2xl mx-auto">
58525
- Your targets are set! The full revenue calculator dashboard with pacing and insights will be displayed here.
58572
+ Your targets are set! The full revenue calculator dashboard with pacing and insights will be
58573
+ displayed here.
58526
58574
  </p>
58527
58575
  </div>
58528
58576
  </div>
@@ -58534,11 +58582,11 @@ class SymphiqRevenueCalculatorDashboardComponent {
58534
58582
  </div>
58535
58583
  `
58536
58584
  }]
58537
- }], () => [], { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], isLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLoading", required: false }] }], dataLoadStatus: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataLoadStatus", required: false }] }], targets: [{ type: i0.Input, args: [{ isSignal: true, alias: "targets", required: false }] }], funnelMetrics: [{ type: i0.Input, args: [{ isSignal: true, alias: "funnelMetrics", required: false }] }], mainUiData: [{ type: i0.Input, args: [{ isSignal: true, alias: "mainUiData", required: false }] }], yoyUiData: [{ type: i0.Input, args: [{ isSignal: true, alias: "yoyUiData", required: false }] }], trendUiData: [{ type: i0.Input, args: [{ isSignal: true, alias: "trendUiData", required: false }] }], pacingMetrics: [{ type: i0.Input, args: [{ isSignal: true, alias: "pacingMetrics", required: false }] }], dataResults: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataResults", required: false }] }], shopId: [{ type: i0.Input, args: [{ isSignal: true, alias: "shopId", required: false }] }], embedded: [{ type: i0.Input, args: [{ isSignal: true, alias: "embedded", required: false }] }], scrollEvent: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollEvent", required: false }] }], scrollElement: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollElement", 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"] }], targetsCreated: [{ type: i0.Output, args: ["targetsCreated"] }], onWindowScroll: [{
58585
+ }], () => [], { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], isLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLoading", required: false }] }], dataLoadStatus: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataLoadStatus", required: false }] }], targets: [{ type: i0.Input, args: [{ isSignal: true, alias: "targets", required: false }] }], funnelMetrics: [{ type: i0.Input, args: [{ isSignal: true, alias: "funnelMetrics", required: false }] }], mainUiData: [{ type: i0.Input, args: [{ isSignal: true, alias: "mainUiData", required: false }] }], yoyUiData: [{ type: i0.Input, args: [{ isSignal: true, alias: "yoyUiData", required: false }] }], trendUiData: [{ type: i0.Input, args: [{ isSignal: true, alias: "trendUiData", required: false }] }], pacingResponse: [{ type: i0.Input, args: [{ isSignal: true, alias: "pacingResponse", required: false }] }], dataResults: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataResults", required: false }] }], shopId: [{ type: i0.Input, args: [{ isSignal: true, alias: "shopId", required: false }] }], embedded: [{ type: i0.Input, args: [{ isSignal: true, alias: "embedded", required: false }] }], scrollEvent: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollEvent", required: false }] }], scrollElement: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollElement", 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"] }], targetsCreated: [{ type: i0.Output, args: ["targetsCreated"] }], onWindowScroll: [{
58538
58586
  type: HostListener,
58539
58587
  args: ['window:scroll', ['$event']]
58540
58588
  }] }); })();
58541
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqRevenueCalculatorDashboardComponent, { className: "SymphiqRevenueCalculatorDashboardComponent", filePath: "lib/components/revenue-calculator-dashboard/symphiq-revenue-calculator-dashboard.component.ts", lineNumber: 213 }); })();
58589
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqRevenueCalculatorDashboardComponent, { className: "SymphiqRevenueCalculatorDashboardComponent", filePath: "lib/components/revenue-calculator-dashboard/symphiq-revenue-calculator-dashboard.component.ts", lineNumber: 219 }); })();
58542
58590
 
58543
58591
  function HierarchyDisplayComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
58544
58592
  i0.ɵɵelementStart(0, "div", 1)(1, "div", 1);