@eric-emg/symphiq-components 1.2.176 → 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.
- package/fesm2022/symphiq-components.mjs +52 -37
- package/fesm2022/symphiq-components.mjs.map +1 -1
- package/index.d.ts +21 -20
- package/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -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
|
|
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
|
|
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, "
|
|
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, "
|
|
55512
|
+
i0.ɵɵtext(28, "Revenue Target Input");
|
|
55513
55513
|
i0.ɵɵelementEnd();
|
|
55514
|
-
i0.ɵɵtext(29, " \u2014 Set
|
|
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, "
|
|
55523
|
+
i0.ɵɵtext(35, "Automatic Metric Distribution");
|
|
55524
55524
|
i0.ɵɵelementEnd();
|
|
55525
|
-
i0.ɵɵtext(36, " \u2014 See
|
|
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, "
|
|
55534
|
+
i0.ɵɵtext(42, "Target Refinement Controls");
|
|
55535
55535
|
i0.ɵɵelementEnd();
|
|
55536
|
-
i0.ɵɵtext(43, " \u2014
|
|
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
|
|
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>
|
|
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">
|
|
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">
|
|
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">
|
|
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>
|
|
@@ -58196,7 +58196,6 @@ function SymphiqRevenueCalculatorDashboardComponent_Conditional_26_Template(rf,
|
|
|
58196
58196
|
} }
|
|
58197
58197
|
class SymphiqRevenueCalculatorDashboardComponent {
|
|
58198
58198
|
constructor() {
|
|
58199
|
-
this.headerScrollService = inject(HeaderScrollService);
|
|
58200
58199
|
this.viewMode = input(ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "viewMode" }] : []));
|
|
58201
58200
|
this.isLoading = input(false, ...(ngDevMode ? [{ debugName: "isLoading" }] : []));
|
|
58202
58201
|
this.dataLoadStatus = input(ShopDataLoadStatusEnum.NOT_LOADED, ...(ngDevMode ? [{ debugName: "dataLoadStatus" }] : []));
|
|
@@ -58219,6 +58218,8 @@ class SymphiqRevenueCalculatorDashboardComponent {
|
|
|
58219
58218
|
this.JourneyStepIdEnum = JourneyStepIdEnum;
|
|
58220
58219
|
this.ShopDataLoadStatusEnum = ShopDataLoadStatusEnum;
|
|
58221
58220
|
this.scrollProgress = signal(0, ...(ngDevMode ? [{ debugName: "scrollProgress" }] : []));
|
|
58221
|
+
this.isScrolled = signal(false, ...(ngDevMode ? [{ debugName: "isScrolled" }] : []));
|
|
58222
|
+
this.isProgrammaticScroll = false;
|
|
58222
58223
|
this.isLightMode = computed(() => this.viewMode() === ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "isLightMode" }] : []));
|
|
58223
58224
|
this.hasCurrentYearTargets = computed(() => {
|
|
58224
58225
|
const targets = this.targets() ?? [];
|
|
@@ -58236,15 +58237,29 @@ class SymphiqRevenueCalculatorDashboardComponent {
|
|
|
58236
58237
|
effect(() => {
|
|
58237
58238
|
const event = this.scrollEvent();
|
|
58238
58239
|
if (event?.detail) {
|
|
58239
|
-
|
|
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
|
+
}
|
|
58240
58253
|
}
|
|
58241
58254
|
}, { allowSignalWrites: true });
|
|
58242
58255
|
}
|
|
58243
58256
|
ngAfterViewInit() {
|
|
58244
|
-
this.
|
|
58257
|
+
this.isScrolled.set(false);
|
|
58258
|
+
this.scrollProgress.set(0);
|
|
58245
58259
|
}
|
|
58246
58260
|
ngOnDestroy() {
|
|
58247
|
-
this.
|
|
58261
|
+
this.isScrolled.set(false);
|
|
58262
|
+
this.scrollProgress.set(0);
|
|
58248
58263
|
}
|
|
58249
58264
|
onWindowScroll() {
|
|
58250
58265
|
if (!this.embedded()) {
|
|
@@ -58332,7 +58347,7 @@ class SymphiqRevenueCalculatorDashboardComponent {
|
|
|
58332
58347
|
i0.ɵɵtext(11, " Revenue Calculator ");
|
|
58333
58348
|
i0.ɵɵelementEnd();
|
|
58334
58349
|
i0.ɵɵelementStart(12, "p", 0);
|
|
58335
|
-
i0.ɵɵtext(13, " Set
|
|
58350
|
+
i0.ɵɵtext(13, " Set Your Revenue Target and See Required Metric Improvements ");
|
|
58336
58351
|
i0.ɵɵelementEnd()()()()();
|
|
58337
58352
|
i0.ɵɵelementStart(14, "div", 5)(15, "div", 8)(16, "div", 7)(17, "div", 9)(18, "h1", 0);
|
|
58338
58353
|
i0.ɵɵtext(19, " Revenue Calculator ");
|
|
@@ -58355,17 +58370,17 @@ class SymphiqRevenueCalculatorDashboardComponent {
|
|
|
58355
58370
|
i0.ɵɵadvance(2);
|
|
58356
58371
|
i0.ɵɵproperty("ngClass", ctx.getHeaderClasses());
|
|
58357
58372
|
i0.ɵɵadvance();
|
|
58358
|
-
i0.ɵɵclassProp("max-h-0", ctx.
|
|
58373
|
+
i0.ɵɵclassProp("max-h-0", ctx.isScrolled())("opacity-0", ctx.isScrolled())("max-h-96", !ctx.isScrolled())("opacity-100", !ctx.isScrolled());
|
|
58359
58374
|
i0.ɵɵadvance();
|
|
58360
|
-
i0.ɵɵclassProp("pointer-events-none", ctx.
|
|
58375
|
+
i0.ɵɵclassProp("pointer-events-none", ctx.isScrolled())("pointer-events-auto", !ctx.isScrolled());
|
|
58361
58376
|
i0.ɵɵadvance(3);
|
|
58362
58377
|
i0.ɵɵproperty("ngClass", ctx.getMainTitleClasses());
|
|
58363
58378
|
i0.ɵɵadvance(2);
|
|
58364
58379
|
i0.ɵɵproperty("ngClass", ctx.getSubtitleClasses());
|
|
58365
58380
|
i0.ɵɵadvance(2);
|
|
58366
|
-
i0.ɵɵclassProp("max-h-0", !ctx.
|
|
58381
|
+
i0.ɵɵclassProp("max-h-0", !ctx.isScrolled())("opacity-0", !ctx.isScrolled())("max-h-20", ctx.isScrolled())("opacity-100", ctx.isScrolled());
|
|
58367
58382
|
i0.ɵɵadvance();
|
|
58368
|
-
i0.ɵɵclassProp("pointer-events-none", !ctx.
|
|
58383
|
+
i0.ɵɵclassProp("pointer-events-none", !ctx.isScrolled())("pointer-events-auto", ctx.isScrolled());
|
|
58369
58384
|
i0.ɵɵadvance(3);
|
|
58370
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");
|
|
58371
58386
|
i0.ɵɵadvance(2);
|
|
@@ -58411,21 +58426,21 @@ class SymphiqRevenueCalculatorDashboardComponent {
|
|
|
58411
58426
|
<!-- Expanded Header -->
|
|
58412
58427
|
<div
|
|
58413
58428
|
class="transition-all duration-300 ease-in-out overflow-hidden"
|
|
58414
|
-
[class.max-h-0]="
|
|
58415
|
-
[class.opacity-0]="
|
|
58416
|
-
[class.max-h-96]="!
|
|
58417
|
-
[class.opacity-100]="!
|
|
58429
|
+
[class.max-h-0]="isScrolled()"
|
|
58430
|
+
[class.opacity-0]="isScrolled()"
|
|
58431
|
+
[class.max-h-96]="!isScrolled()"
|
|
58432
|
+
[class.opacity-100]="!isScrolled()">
|
|
58418
58433
|
<div
|
|
58419
58434
|
class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8"
|
|
58420
|
-
[class.pointer-events-none]="
|
|
58421
|
-
[class.pointer-events-auto]="!
|
|
58435
|
+
[class.pointer-events-none]="isScrolled()"
|
|
58436
|
+
[class.pointer-events-auto]="!isScrolled()">
|
|
58422
58437
|
<div class="flex items-center justify-between">
|
|
58423
58438
|
<div>
|
|
58424
58439
|
<h1 [ngClass]="getMainTitleClasses()">
|
|
58425
58440
|
Revenue Calculator
|
|
58426
58441
|
</h1>
|
|
58427
58442
|
<p [ngClass]="getSubtitleClasses()">
|
|
58428
|
-
Set
|
|
58443
|
+
Set Your Revenue Target and See Required Metric Improvements
|
|
58429
58444
|
</p>
|
|
58430
58445
|
</div>
|
|
58431
58446
|
</div>
|
|
@@ -58435,14 +58450,14 @@ class SymphiqRevenueCalculatorDashboardComponent {
|
|
|
58435
58450
|
<!-- Condensed Header -->
|
|
58436
58451
|
<div
|
|
58437
58452
|
class="transition-all duration-300 ease-in-out overflow-hidden"
|
|
58438
|
-
[class.max-h-0]="!
|
|
58439
|
-
[class.opacity-0]="!
|
|
58440
|
-
[class.max-h-20]="
|
|
58441
|
-
[class.opacity-100]="
|
|
58453
|
+
[class.max-h-0]="!isScrolled()"
|
|
58454
|
+
[class.opacity-0]="!isScrolled()"
|
|
58455
|
+
[class.max-h-20]="isScrolled()"
|
|
58456
|
+
[class.opacity-100]="isScrolled()">
|
|
58442
58457
|
<div
|
|
58443
58458
|
class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-3"
|
|
58444
|
-
[class.pointer-events-none]="!
|
|
58445
|
-
[class.pointer-events-auto]="
|
|
58459
|
+
[class.pointer-events-none]="!isScrolled()"
|
|
58460
|
+
[class.pointer-events-auto]="isScrolled()">
|
|
58446
58461
|
<div class="flex items-center justify-between">
|
|
58447
58462
|
<div class="flex-1 min-w-0 mr-4">
|
|
58448
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'">
|
|
@@ -58571,7 +58586,7 @@ class SymphiqRevenueCalculatorDashboardComponent {
|
|
|
58571
58586
|
type: HostListener,
|
|
58572
58587
|
args: ['window:scroll', ['$event']]
|
|
58573
58588
|
}] }); })();
|
|
58574
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqRevenueCalculatorDashboardComponent, { className: "SymphiqRevenueCalculatorDashboardComponent", filePath: "lib/components/revenue-calculator-dashboard/symphiq-revenue-calculator-dashboard.component.ts", lineNumber:
|
|
58589
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqRevenueCalculatorDashboardComponent, { className: "SymphiqRevenueCalculatorDashboardComponent", filePath: "lib/components/revenue-calculator-dashboard/symphiq-revenue-calculator-dashboard.component.ts", lineNumber: 219 }); })();
|
|
58575
58590
|
|
|
58576
58591
|
function HierarchyDisplayComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
58577
58592
|
i0.ɵɵelementStart(0, "div", 1)(1, "div", 1);
|