@eric-emg/symphiq-components 1.2.257 → 1.2.259
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 +102 -85
- package/fesm2022/symphiq-components.mjs.map +1 -1
- package/index.d.ts +9 -9
- package/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -59184,9 +59184,9 @@ function InitialTargetSettingComponent_Conditional_36_Template(rf, ctx) { if (rf
|
|
|
59184
59184
|
i0.ɵɵclassProp("lg:text-3xl", ctx_r0.calculationState() !== "results" || ctx_r0.detailsExpanded());
|
|
59185
59185
|
i0.ɵɵproperty("ngClass", ctx_r0.calculatedValueClasses());
|
|
59186
59186
|
i0.ɵɵadvance();
|
|
59187
|
-
i0.ɵɵconditional(ctx_r0.calculationState() === "results" && ctx_r0.
|
|
59187
|
+
i0.ɵɵconditional(ctx_r0.calculationState() === "results" && !ctx_r0.hasExistingTargets() && ctx_r0.submittedAbsoluteInput() !== null ? 7 : 8);
|
|
59188
59188
|
i0.ɵɵadvance(2);
|
|
59189
|
-
i0.ɵɵconditional(ctx_r0.calculationState() === "results" && ctx_r0.
|
|
59189
|
+
i0.ɵɵconditional(ctx_r0.calculationState() === "results" && !ctx_r0.hasExistingTargets() ? 9 : -1);
|
|
59190
59190
|
i0.ɵɵadvance();
|
|
59191
59191
|
i0.ɵɵclassProp("details-collapse-expanded", ctx_r0.calculationState() !== "results" || ctx_r0.detailsExpanded());
|
|
59192
59192
|
i0.ɵɵadvance(4);
|
|
@@ -59274,10 +59274,19 @@ function InitialTargetSettingComponent_Conditional_40_Template(rf, ctx) { if (rf
|
|
|
59274
59274
|
i0.ɵɵadvance(2);
|
|
59275
59275
|
i0.ɵɵproperty("ngClass", ctx_r0.sectionDescriptionClasses());
|
|
59276
59276
|
i0.ɵɵadvance();
|
|
59277
|
-
i0.ɵɵconditional(ctx_r0.
|
|
59277
|
+
i0.ɵɵconditional(!ctx_r0.hasExistingTargets() && ctx_r0.submittedAbsoluteInput() !== null ? 5 : 6);
|
|
59278
59278
|
i0.ɵɵadvance(2);
|
|
59279
59279
|
i0.ɵɵproperty("viewMode", ctx_r0.viewMode())("calculations", ctx_r0.displayedMetricCalculations())("pacingMetrics", ctx_r0.pacingMetrics());
|
|
59280
59280
|
} }
|
|
59281
|
+
function InitialTargetSettingComponent_Conditional_41_Template(rf, ctx) { if (rf & 1) {
|
|
59282
|
+
const _r10 = i0.ɵɵgetCurrentView();
|
|
59283
|
+
i0.ɵɵelementStart(0, "symphiq-sticky-submit-bar", 69);
|
|
59284
|
+
i0.ɵɵlistener("submitClick", function InitialTargetSettingComponent_Conditional_41_Template_symphiq_sticky_submit_bar_submitClick_0_listener() { i0.ɵɵrestoreView(_r10); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.handleSubmitClick()); })("cancelClick", function InitialTargetSettingComponent_Conditional_41_Template_symphiq_sticky_submit_bar_cancelClick_0_listener() { i0.ɵɵrestoreView(_r10); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.handleCancel()); });
|
|
59285
|
+
i0.ɵɵelementEnd();
|
|
59286
|
+
} if (rf & 2) {
|
|
59287
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
59288
|
+
i0.ɵɵproperty("viewMode", ctx_r0.viewMode())("isValid", ctx_r0.isValid())("isSubmitting", ctx_r0.isCalculating())("validationMessage", ctx_r0.validationMessage())("buttonText", ctx_r0.submitButtonText())("showCancelButton", ctx_r0.calculationState() === "input" && ctx_r0.hasStoredResponse());
|
|
59289
|
+
} }
|
|
59281
59290
|
class InitialTargetSettingComponent {
|
|
59282
59291
|
constructor() {
|
|
59283
59292
|
this.viewMode = input(ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "viewMode" }] : []));
|
|
@@ -59320,6 +59329,10 @@ class InitialTargetSettingComponent {
|
|
|
59320
59329
|
this.animatedGapAmount = signal(0, ...(ngDevMode ? [{ debugName: "animatedGapAmount" }] : []));
|
|
59321
59330
|
this.animatedGapPercentage = signal(0, ...(ngDevMode ? [{ debugName: "animatedGapPercentage" }] : []));
|
|
59322
59331
|
this.animationFrameId = null;
|
|
59332
|
+
this.hasExistingTargets = computed(() => {
|
|
59333
|
+
const targets = this.targets();
|
|
59334
|
+
return targets !== undefined && targets.length > 0;
|
|
59335
|
+
}, ...(ngDevMode ? [{ debugName: "hasExistingTargets" }] : []));
|
|
59323
59336
|
this.priorYearRevenue = computed(() => {
|
|
59324
59337
|
return sumMetricFromUiData(this.mainUiData(), MetricEnum.PURCHASE_REVENUE, 'priorYear');
|
|
59325
59338
|
}, ...(ngDevMode ? [{ debugName: "priorYearRevenue" }] : []));
|
|
@@ -59363,6 +59376,10 @@ class InitialTargetSettingComponent {
|
|
|
59363
59376
|
return this.calculatedRevenue() > this.priorYearRevenue();
|
|
59364
59377
|
}, ...(ngDevMode ? [{ debugName: "isTargetValid" }] : []));
|
|
59365
59378
|
this.displayedMetricCalculations = computed(() => {
|
|
59379
|
+
const targets = this.targets();
|
|
59380
|
+
if (targets && targets.length > 0) {
|
|
59381
|
+
return this.buildCalculationsFromTargets(targets);
|
|
59382
|
+
}
|
|
59366
59383
|
const response = this.storedResponse();
|
|
59367
59384
|
if (!response) {
|
|
59368
59385
|
return [];
|
|
@@ -59409,6 +59426,13 @@ class InitialTargetSettingComponent {
|
|
|
59409
59426
|
return results;
|
|
59410
59427
|
}, ...(ngDevMode ? [{ debugName: "displayedMetricCalculations" }] : []));
|
|
59411
59428
|
this.displayedTargetRevenue = computed(() => {
|
|
59429
|
+
const targets = this.targets();
|
|
59430
|
+
if (targets && targets.length > 0) {
|
|
59431
|
+
const revenueTarget = targets.find(t => t.metric === MetricEnum.PURCHASE_REVENUE);
|
|
59432
|
+
if (revenueTarget && revenueTarget.amount !== undefined) {
|
|
59433
|
+
return revenueTarget.amount;
|
|
59434
|
+
}
|
|
59435
|
+
}
|
|
59412
59436
|
if (this.calculationState() !== 'results') {
|
|
59413
59437
|
return this.calculatedRevenue();
|
|
59414
59438
|
}
|
|
@@ -59486,6 +59510,13 @@ class InitialTargetSettingComponent {
|
|
|
59486
59510
|
title: 'Current Pace Projection',
|
|
59487
59511
|
markdown: 'This is your projected year-end revenue based on your current performance trends. It extrapolates your year-to-date results to estimate where you will finish the year if you maintain your current pace.'
|
|
59488
59512
|
};
|
|
59513
|
+
effect(() => {
|
|
59514
|
+
const targets = this.targets();
|
|
59515
|
+
if (targets && targets.length > 0) {
|
|
59516
|
+
this.calculationState.set('results');
|
|
59517
|
+
this.detailsExpanded.set(false);
|
|
59518
|
+
}
|
|
59519
|
+
}, { allowSignalWrites: true });
|
|
59489
59520
|
effect(() => {
|
|
59490
59521
|
const response = this.reverseCalculationResponse();
|
|
59491
59522
|
if (response) {
|
|
@@ -59535,6 +59566,47 @@ class InitialTargetSettingComponent {
|
|
|
59535
59566
|
};
|
|
59536
59567
|
this.animationFrameId = requestAnimationFrame(animate);
|
|
59537
59568
|
}
|
|
59569
|
+
buildCalculationsFromTargets(targets) {
|
|
59570
|
+
const results = [];
|
|
59571
|
+
const funnelMetrics = this.funnelMetrics();
|
|
59572
|
+
for (const target of targets) {
|
|
59573
|
+
const metric = target.metric;
|
|
59574
|
+
if (!metric)
|
|
59575
|
+
continue;
|
|
59576
|
+
const targetValue = target.amount ?? 0;
|
|
59577
|
+
const currentValue = sumMetricFromUiData(this.mainUiData(), metric, 'priorYear');
|
|
59578
|
+
const percentageIncrease = currentValue > 0 ? ((targetValue - currentValue) / currentValue) * 100 : 0;
|
|
59579
|
+
const funnelMetricMatch = funnelMetrics.find(fm => fm.funnelMetric === metric && fm.funnelMetric === fm.relatedMetric);
|
|
59580
|
+
const relatedMetricMatch = funnelMetrics.find(fm => fm.relatedMetric === metric && fm.funnelMetric !== fm.relatedMetric);
|
|
59581
|
+
if (funnelMetricMatch) {
|
|
59582
|
+
results.push({
|
|
59583
|
+
metric,
|
|
59584
|
+
funnelMetric: metric,
|
|
59585
|
+
currentValue,
|
|
59586
|
+
targetValue,
|
|
59587
|
+
percentageIncrease,
|
|
59588
|
+
isFunnelStage: true,
|
|
59589
|
+
funnelInd: funnelMetricMatch.funnelInd,
|
|
59590
|
+
relatedInd: 0,
|
|
59591
|
+
description: funnelMetricMatch.funnelMetricDescription
|
|
59592
|
+
});
|
|
59593
|
+
}
|
|
59594
|
+
else if (relatedMetricMatch) {
|
|
59595
|
+
results.push({
|
|
59596
|
+
metric,
|
|
59597
|
+
funnelMetric: relatedMetricMatch.funnelMetric,
|
|
59598
|
+
currentValue,
|
|
59599
|
+
targetValue,
|
|
59600
|
+
percentageIncrease,
|
|
59601
|
+
isFunnelStage: false,
|
|
59602
|
+
funnelInd: relatedMetricMatch.funnelInd,
|
|
59603
|
+
relatedInd: relatedMetricMatch.relatedInd,
|
|
59604
|
+
description: relatedMetricMatch.relatedMetricDescription
|
|
59605
|
+
});
|
|
59606
|
+
}
|
|
59607
|
+
}
|
|
59608
|
+
return results;
|
|
59609
|
+
}
|
|
59538
59610
|
parseMetricValue(value) {
|
|
59539
59611
|
if (!value)
|
|
59540
59612
|
return { targetValue: 0, percentageIncrease: 0 };
|
|
@@ -59838,7 +59910,7 @@ class InitialTargetSettingComponent {
|
|
|
59838
59910
|
let _t;
|
|
59839
59911
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.absoluteInputRef = _t.first);
|
|
59840
59912
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.percentageInputRef = _t.first);
|
|
59841
|
-
} }, inputs: { viewMode: [1, "viewMode"], funnelMetrics: [1, "funnelMetrics"], mainUiData: [1, "mainUiData"], trendUiData: [1, "trendUiData"], shopId: [1, "shopId"], pacingMetrics: [1, "pacingMetrics"], dataResults: [1, "dataResults"], reverseCalculationResponse: [1, "reverseCalculationResponse"], targets: [1, "targets"] }, outputs: { targetsCreated: "targetsCreated", calculateRevenueRequest: "calculateRevenueRequest" }, decls: 43, vars:
|
|
59913
|
+
} }, inputs: { viewMode: [1, "viewMode"], funnelMetrics: [1, "funnelMetrics"], mainUiData: [1, "mainUiData"], trendUiData: [1, "trendUiData"], shopId: [1, "shopId"], pacingMetrics: [1, "pacingMetrics"], dataResults: [1, "dataResults"], reverseCalculationResponse: [1, "reverseCalculationResponse"], targets: [1, "targets"] }, outputs: { targetsCreated: "targetsCreated", calculateRevenueRequest: "calculateRevenueRequest" }, decls: 43, vars: 46, consts: [["absoluteInputRef", ""], ["percentageInputRef", ""], [1, "space-y-8", "pb-32"], [1, "rounded-2xl", "border", "shadow-lg", "p-8", 3, "click", "ngClass"], [1, "flex", "items-center", "justify-between", "mb-6"], [1, "text-2xl", "font-bold", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-6", "h-6", "chevron-rotate", 3, "chevron-rotate-expanded", "ngClass"], [1, "flex", "flex-col", "gap-4"], [1, "grid", "lg:grid-cols-2", "gap-4"], [1, "p-6", "rounded-xl", "border-2", 3, "click", "ngClass"], [1, "flex", "flex-wrap", "gap-4", "place-content-between"], [1, "flex", "items-center", "gap-2"], ["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", "M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"], [1, "text-xs", "font-medium", "uppercase", "tracking-wider", 3, "ngClass"], [1, "text-lg", "font-bold", 3, "ngClass"], [1, "form-area-collapse"], [1, "form-area-content"], [1, "space-y-6"], [1, "chart-in-column"], [1, "chart-in-column-content"], [1, "text-sm", "font-semibold", "mb-3", 3, "ngClass"], [1, "rounded-xl", "border", "p-4", 3, "ngClass"], [3, "chart", "showAxisLabels", "viewMode", "currencySymbol", "height"], [1, "h-64", "flex", "items-center", "justify-center"], [1, "calculated-card-enter", "order-first", "lg:order-last"], [1, "calculated-card-content"], [1, "p-6", "rounded-xl", "border-2", 3, "ngClass", "h-full"], [1, "w-full"], [1, "metrics-section-enter"], [1, "metrics-section-content"], [1, "rounded-2xl", "border", "shadow-lg", "p-8", 3, "ngClass"], [3, "viewMode", "isValid", "isSubmitting", "validationMessage", "buttonText", "showCancelButton"], [3, "closed", "viewMode", "metricEnum", "metricData", "contributingMetrics", "pacingMetrics", "trendChartData", "isOpen"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-6", "h-6", "chevron-rotate", 3, "ngClass"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M19 9l-7 7-7-7"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"], [1, "flex", "items-center", "gap-1"], ["type", "button", "tooltipType", "markdown", "tooltipPosition", "top", 1, "flex-shrink-0", "w-4", "h-4", "rounded-full", "inline-flex", "items-center", "justify-center", "transition-colors", 3, "click", "ngClass", "libSymphiqTooltip"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-3", "h-3"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"], [1, "flex", "gap-2"], [1, "flex-1", "py-2", "px-4", "rounded-lg", "text-sm", "font-semibold", "transition-all", 3, "click", "ngClass"], [1, "relative"], [1, "flex", "justify-end"], [1, "absolute", "left-4", "top-1/2", "-translate-y-1/2", "text-xl", "font-bold", 3, "ngClass"], ["type", "number", "placeholder", "0", "min", "0", "step", "1000", 1, "w-full", "pl-10", "pr-4", "py-4", "rounded-xl", "text-2xl", "font-bold", "border-2", "transition-all", 3, "ngModelChange", "ngModel", "ngClass"], ["type", "number", "placeholder", "0", "min", "0", "max", "1000", "step", "0.1", 1, "w-full", "pr-10", "pl-4", "py-4", "rounded-xl", "text-2xl", "font-bold", "border-2", "transition-all", 3, "ngModelChange", "ngModel", "ngClass"], [1, "absolute", "right-4", "top-1/2", "-translate-y-1/2", "text-xl", "font-bold", 3, "ngClass"], [1, "px-4", "py-2", "rounded-lg", "text-sm", "font-semibold", "transition-all", 3, "click", "ngClass"], [1, "text-sm", 3, "ngClass"], [1, "p-6", "rounded-xl", "border-2", 3, "ngClass"], [1, "flex", "items-center", "justify-between"], [1, "font-bold", "transition-all", "duration-300", "text-lg", 3, "ngClass"], [1, "px-4", "py-2", "rounded-lg", "text-sm", "font-semibold", "transition-all", "whitespace-nowrap", 3, "ngClass"], [1, "details-collapse"], [1, "details-collapse-content"], [1, "relative", "pt-6", "mt-6"], [1, "absolute", "top-0", "left-0", "right-0", "flex", "items-center", "-translate-y-1/2"], [1, "flex-1", "h-px", 3, "ngClass"], [1, "px-3", "py-1", "rounded-full", "text-xs", "font-semibold", "whitespace-nowrap", 3, "ngClass"], [1, "grid", "grid-cols-2", "gap-4", "pt-2"], [1, "text-xs", "font-medium", "uppercase", "tracking-wider", "mb-1", 3, "ngClass"], [1, "text-xl", "font-bold", 3, "ngClass"], [1, "px-4", "py-2", "rounded-lg", "text-sm", "font-semibold", "transition-all", "whitespace-nowrap", 3, "click", "ngClass"], [1, "flex", "items-center", "gap-1", "mb-1"], [1, "mb-6"], [1, "text-2xl", "font-bold", "mb-2", 3, "ngClass"], [3, "viewStageReport", "viewRelatedMetricReport", "viewMode", "calculations", "pacingMetrics"], [3, "submitClick", "cancelClick", "viewMode", "isValid", "isSubmitting", "validationMessage", "buttonText", "showCancelButton"]], template: function InitialTargetSettingComponent_Template(rf, ctx) { if (rf & 1) {
|
|
59842
59914
|
i0.ɵɵelementStart(0, "div", 2);
|
|
59843
59915
|
i0.ɵɵelement(1, "symphiq-tooltip-container");
|
|
59844
59916
|
i0.ɵɵelementStart(2, "div", 3);
|
|
@@ -59881,9 +59953,7 @@ class InitialTargetSettingComponent {
|
|
|
59881
59953
|
i0.ɵɵelementStart(38, "div", 29)(39, "div", 30);
|
|
59882
59954
|
i0.ɵɵconditionalCreate(40, InitialTargetSettingComponent_Conditional_40_Template, 8, 7, "div", 31);
|
|
59883
59955
|
i0.ɵɵelementEnd()();
|
|
59884
|
-
i0.ɵɵ
|
|
59885
|
-
i0.ɵɵlistener("submitClick", function InitialTargetSettingComponent_Template_symphiq_sticky_submit_bar_submitClick_41_listener() { return ctx.handleSubmitClick(); })("cancelClick", function InitialTargetSettingComponent_Template_symphiq_sticky_submit_bar_cancelClick_41_listener() { return ctx.handleCancel(); });
|
|
59886
|
-
i0.ɵɵelementEnd();
|
|
59956
|
+
i0.ɵɵconditionalCreate(41, InitialTargetSettingComponent_Conditional_41_Template, 1, 6, "symphiq-sticky-submit-bar", 32);
|
|
59887
59957
|
i0.ɵɵelementStart(42, "symphiq-metric-report-modal", 33);
|
|
59888
59958
|
i0.ɵɵlistener("closed", function InitialTargetSettingComponent_Template_symphiq_metric_report_modal_closed_42_listener() { return ctx.closeMetricReport(); });
|
|
59889
59959
|
i0.ɵɵelementEnd()();
|
|
@@ -59936,7 +60006,7 @@ class InitialTargetSettingComponent {
|
|
|
59936
60006
|
i0.ɵɵadvance(2);
|
|
59937
60007
|
i0.ɵɵconditional(ctx.showMetricsVisualization() ? 40 : -1);
|
|
59938
60008
|
i0.ɵɵadvance();
|
|
59939
|
-
i0.ɵɵ
|
|
60009
|
+
i0.ɵɵconditional(!ctx.hasExistingTargets() ? 41 : -1);
|
|
59940
60010
|
i0.ɵɵadvance();
|
|
59941
60011
|
i0.ɵɵproperty("viewMode", ctx.viewMode())("metricEnum", ctx.selectedMetricEnum())("metricData", ctx.selectedMetricData())("contributingMetrics", ctx.selectedContributingMetrics())("pacingMetrics", ctx.pacingMetrics())("trendChartData", ctx.revenueChartData())("isOpen", ctx.isMetricReportOpen());
|
|
59942
60012
|
} }, dependencies: [CommonModule, i1$1.NgClass, FormsModule, i2$1.DefaultValueAccessor, i2$1.NumberValueAccessor, i2$1.NgControlStatus, i2$1.MinValidator, i2$1.MaxValidator, i2$1.NgModel, FunnelMetricsVisualizationComponent,
|
|
@@ -60147,14 +60217,14 @@ class InitialTargetSettingComponent {
|
|
|
60147
60217
|
</p>
|
|
60148
60218
|
<p [ngClass]="calculatedValueClasses()" class="font-bold transition-all duration-300 text-lg"
|
|
60149
60219
|
[class.lg:text-3xl]="calculationState() !== 'results' || detailsExpanded()">
|
|
60150
|
-
@if (calculationState() === 'results' &&
|
|
60220
|
+
@if (calculationState() === 'results' && !hasExistingTargets() && submittedAbsoluteInput() !== null) {
|
|
60151
60221
|
> {{ formatCurrency(submittedAbsoluteInput()!) }}
|
|
60152
60222
|
} @else {
|
|
60153
60223
|
{{ formatCurrency(displayedTargetRevenue()) }}
|
|
60154
60224
|
}
|
|
60155
60225
|
</p>
|
|
60156
60226
|
</div>
|
|
60157
|
-
@if (calculationState() === 'results' &&
|
|
60227
|
+
@if (calculationState() === 'results' && !hasExistingTargets()) {
|
|
60158
60228
|
<button
|
|
60159
60229
|
(click)="handleAdjustTarget(); $event.stopPropagation()"
|
|
60160
60230
|
[ngClass]="secondaryButtonClasses()"
|
|
@@ -60299,7 +60369,7 @@ class InitialTargetSettingComponent {
|
|
|
60299
60369
|
Contributing Metrics
|
|
60300
60370
|
</h2>
|
|
60301
60371
|
<p [ngClass]="sectionDescriptionClasses()" class="text-sm">
|
|
60302
|
-
@if (
|
|
60372
|
+
@if (!hasExistingTargets() && submittedAbsoluteInput() !== null) {
|
|
60303
60373
|
To achieve your revenue target of over {{ formatCurrency(submittedAbsoluteInput()!) }}, the following metrics need to improve by these amounts. These improvements compound through your funnel to drive revenue growth.
|
|
60304
60374
|
} @else {
|
|
60305
60375
|
To achieve your revenue target of {{ formatCurrency(displayedTargetRevenue()) }}, the following metrics need to improve by these amounts. These improvements compound through your funnel to drive revenue growth.
|
|
@@ -60319,16 +60389,18 @@ class InitialTargetSettingComponent {
|
|
|
60319
60389
|
</div>
|
|
60320
60390
|
</div>
|
|
60321
60391
|
|
|
60322
|
-
|
|
60323
|
-
|
|
60324
|
-
|
|
60325
|
-
|
|
60326
|
-
|
|
60327
|
-
|
|
60328
|
-
|
|
60329
|
-
|
|
60330
|
-
|
|
60331
|
-
|
|
60392
|
+
@if (!hasExistingTargets()) {
|
|
60393
|
+
<symphiq-sticky-submit-bar
|
|
60394
|
+
[viewMode]="viewMode()"
|
|
60395
|
+
[isValid]="isValid()"
|
|
60396
|
+
[isSubmitting]="isCalculating()"
|
|
60397
|
+
[validationMessage]="validationMessage()"
|
|
60398
|
+
[buttonText]="submitButtonText()"
|
|
60399
|
+
[showCancelButton]="calculationState() === 'input' && hasStoredResponse()"
|
|
60400
|
+
(submitClick)="handleSubmitClick()"
|
|
60401
|
+
(cancelClick)="handleCancel()"
|
|
60402
|
+
/>
|
|
60403
|
+
}
|
|
60332
60404
|
|
|
60333
60405
|
<!-- Metric Report Modal -->
|
|
60334
60406
|
<symphiq-metric-report-modal
|
|
@@ -60350,7 +60422,7 @@ class InitialTargetSettingComponent {
|
|
|
60350
60422
|
type: ViewChild,
|
|
60351
60423
|
args: ['percentageInputRef']
|
|
60352
60424
|
}], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], funnelMetrics: [{ type: i0.Input, args: [{ isSignal: true, alias: "funnelMetrics", required: false }] }], mainUiData: [{ type: i0.Input, args: [{ isSignal: true, alias: "mainUiData", required: false }] }], trendUiData: [{ type: i0.Input, args: [{ isSignal: true, alias: "trendUiData", required: false }] }], shopId: [{ type: i0.Input, args: [{ isSignal: true, alias: "shopId", required: false }] }], pacingMetrics: [{ type: i0.Input, args: [{ isSignal: true, alias: "pacingMetrics", required: false }] }], dataResults: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataResults", required: false }] }], reverseCalculationResponse: [{ type: i0.Input, args: [{ isSignal: true, alias: "reverseCalculationResponse", required: false }] }], targets: [{ type: i0.Input, args: [{ isSignal: true, alias: "targets", required: false }] }], targetsCreated: [{ type: i0.Output, args: ["targetsCreated"] }], calculateRevenueRequest: [{ type: i0.Output, args: ["calculateRevenueRequest"] }] }); })();
|
|
60353
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(InitialTargetSettingComponent, { className: "InitialTargetSettingComponent", filePath: "lib/components/revenue-calculator-dashboard/initial-target-setting.component.ts", lineNumber:
|
|
60425
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(InitialTargetSettingComponent, { className: "InitialTargetSettingComponent", filePath: "lib/components/revenue-calculator-dashboard/initial-target-setting.component.ts", lineNumber: 538 }); })();
|
|
60354
60426
|
|
|
60355
60427
|
function IndeterminateSpinnerComponent_For_5_Template(rf, ctx) { if (rf & 1) {
|
|
60356
60428
|
i0.ɵɵelement(0, "div", 5);
|
|
@@ -60528,36 +60600,10 @@ function SymphiqRevenueCalculatorDashboardComponent_Conditional_25_Template(rf,
|
|
|
60528
60600
|
i0.ɵɵelementEnd()();
|
|
60529
60601
|
} if (rf & 2) {
|
|
60530
60602
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
60531
|
-
i0.ɵɵproperty("viewMode", ctx_r0.viewMode())("dataLoadStatus", ctx_r0.dataLoadStatus() ?? ctx_r0.ShopDataLoadStatusEnum.NOT_LOADED)("hasTargets",
|
|
60603
|
+
i0.ɵɵproperty("viewMode", ctx_r0.viewMode())("dataLoadStatus", ctx_r0.dataLoadStatus() ?? ctx_r0.ShopDataLoadStatusEnum.NOT_LOADED)("hasTargets", ctx_r0.hasCurrentYearTargets());
|
|
60532
60604
|
i0.ɵɵadvance(2);
|
|
60533
60605
|
i0.ɵɵproperty("viewMode", ctx_r0.viewMode())("funnelMetrics", ctx_r0.funnelMetrics() ?? i0.ɵɵpureFunction0(12, _c0$p))("mainUiData", ctx_r0.mainUiData())("trendUiData", ctx_r0.trendUiData())("shopId", ctx_r0.shopId())("pacingMetrics", ctx_r0.pacingResponse())("dataResults", ctx_r0.dataResults())("reverseCalculationResponse", ctx_r0.reverseCalculationResponse())("targets", ctx_r0.targets());
|
|
60534
60606
|
} }
|
|
60535
|
-
function SymphiqRevenueCalculatorDashboardComponent_Conditional_26_Template(rf, ctx) { if (rf & 1) {
|
|
60536
|
-
i0.ɵɵelement(0, "symphiq-revenue-calculator-welcome-banner", 14);
|
|
60537
|
-
i0.ɵɵelementStart(1, "div", 23)(2, "div", 24)(3, "div", 25);
|
|
60538
|
-
i0.ɵɵnamespaceSVG();
|
|
60539
|
-
i0.ɵɵelementStart(4, "svg", 26);
|
|
60540
|
-
i0.ɵɵelement(5, "path", 27);
|
|
60541
|
-
i0.ɵɵelementEnd()();
|
|
60542
|
-
i0.ɵɵnamespaceHTML();
|
|
60543
|
-
i0.ɵɵelementStart(6, "h3", 28);
|
|
60544
|
-
i0.ɵɵtext(7, " Revenue Calculator Dashboard ");
|
|
60545
|
-
i0.ɵɵelementEnd();
|
|
60546
|
-
i0.ɵɵelementStart(8, "p", 29);
|
|
60547
|
-
i0.ɵɵtext(9, " Your targets are set! The full revenue calculator dashboard with pacing and insights will be displayed here. ");
|
|
60548
|
-
i0.ɵɵelementEnd()()();
|
|
60549
|
-
} if (rf & 2) {
|
|
60550
|
-
const ctx_r0 = i0.ɵɵnextContext();
|
|
60551
|
-
i0.ɵɵproperty("viewMode", ctx_r0.viewMode())("dataLoadStatus", ctx_r0.dataLoadStatus() ?? ctx_r0.ShopDataLoadStatusEnum.NOT_LOADED)("hasTargets", true);
|
|
60552
|
-
i0.ɵɵadvance();
|
|
60553
|
-
i0.ɵɵproperty("ngClass", ctx_r0.placeholderContainerClasses());
|
|
60554
|
-
i0.ɵɵadvance(3);
|
|
60555
|
-
i0.ɵɵproperty("ngClass", ctx_r0.placeholderIconClasses());
|
|
60556
|
-
i0.ɵɵadvance(2);
|
|
60557
|
-
i0.ɵɵproperty("ngClass", ctx_r0.placeholderTitleClasses());
|
|
60558
|
-
i0.ɵɵadvance(2);
|
|
60559
|
-
i0.ɵɵproperty("ngClass", ctx_r0.placeholderTextClasses());
|
|
60560
|
-
} }
|
|
60561
60607
|
dayjs.extend(utc);
|
|
60562
60608
|
class SymphiqRevenueCalculatorDashboardComponent {
|
|
60563
60609
|
constructor() {
|
|
@@ -60715,7 +60761,7 @@ class SymphiqRevenueCalculatorDashboardComponent {
|
|
|
60715
60761
|
static { this.ɵfac = function SymphiqRevenueCalculatorDashboardComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SymphiqRevenueCalculatorDashboardComponent)(); }; }
|
|
60716
60762
|
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SymphiqRevenueCalculatorDashboardComponent, selectors: [["symphiq-revenue-calculator-dashboard"]], hostBindings: function SymphiqRevenueCalculatorDashboardComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
60717
60763
|
i0.ɵɵlistener("scroll", function SymphiqRevenueCalculatorDashboardComponent_scroll_HostBindingHandler($event) { return ctx.onWindowScroll($event); }, i0.ɵɵresolveWindow);
|
|
60718
|
-
} }, inputs: { viewMode: [1, "viewMode"], isLoading: [1, "isLoading"], dataLoadStatus: [1, "dataLoadStatus"], targets: [1, "targets"], funnelMetrics: [1, "funnelMetrics"], mainUiData: [1, "mainUiData"], ytdComparisonUiData: [1, "ytdComparisonUiData"], 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"], reverseCalculationResponse: [1, "reverseCalculationResponse"] }, outputs: { stepClick: "stepClick", nextStepClick: "nextStepClick", targetsCreated: "targetsCreated", calculateRevenueRequest: "calculateRevenueRequest" }, decls:
|
|
60764
|
+
} }, inputs: { viewMode: [1, "viewMode"], isLoading: [1, "isLoading"], dataLoadStatus: [1, "dataLoadStatus"], targets: [1, "targets"], funnelMetrics: [1, "funnelMetrics"], mainUiData: [1, "mainUiData"], ytdComparisonUiData: [1, "ytdComparisonUiData"], 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"], reverseCalculationResponse: [1, "reverseCalculationResponse"] }, outputs: { stepClick: "stepClick", nextStepClick: "nextStepClick", targetsCreated: "targetsCreated", calculateRevenueRequest: "calculateRevenueRequest" }, decls: 26, 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", "calculateRevenueRequest", "viewMode", "funnelMetrics", "mainUiData", "trendUiData", "shopId", "pacingMetrics", "dataResults", "reverseCalculationResponse", "targets"]], template: function SymphiqRevenueCalculatorDashboardComponent_Template(rf, ctx) { if (rf & 1) {
|
|
60719
60765
|
i0.ɵɵelementStart(0, "div", 0)(1, "div");
|
|
60720
60766
|
i0.ɵɵelement(2, "div", 1);
|
|
60721
60767
|
i0.ɵɵelementEnd();
|
|
@@ -60733,7 +60779,7 @@ class SymphiqRevenueCalculatorDashboardComponent {
|
|
|
60733
60779
|
i0.ɵɵlistener("stepClick", function SymphiqRevenueCalculatorDashboardComponent_Template_symphiq_journey_progress_indicator_stepClick_20_listener($event) { return ctx.stepClick.emit($event); })("nextStepClick", function SymphiqRevenueCalculatorDashboardComponent_Template_symphiq_journey_progress_indicator_nextStepClick_20_listener() { return ctx.nextStepClick.emit(); });
|
|
60734
60780
|
i0.ɵɵelementEnd();
|
|
60735
60781
|
i0.ɵɵelementStart(21, "main", 11)(22, "div", 6);
|
|
60736
|
-
i0.ɵɵconditionalCreate(23, SymphiqRevenueCalculatorDashboardComponent_Conditional_23_Template, 2, 1, "div", 12)(24, SymphiqRevenueCalculatorDashboardComponent_Conditional_24_Template, 10, 8)(25, SymphiqRevenueCalculatorDashboardComponent_Conditional_25_Template, 3, 13)
|
|
60782
|
+
i0.ɵɵconditionalCreate(23, SymphiqRevenueCalculatorDashboardComponent_Conditional_23_Template, 2, 1, "div", 12)(24, SymphiqRevenueCalculatorDashboardComponent_Conditional_24_Template, 10, 8)(25, SymphiqRevenueCalculatorDashboardComponent_Conditional_25_Template, 3, 13);
|
|
60737
60783
|
i0.ɵɵelementEnd()()()();
|
|
60738
60784
|
} if (rf & 2) {
|
|
60739
60785
|
i0.ɵɵproperty("ngClass", ctx.getContainerClasses());
|
|
@@ -60763,7 +60809,7 @@ class SymphiqRevenueCalculatorDashboardComponent {
|
|
|
60763
60809
|
i0.ɵɵadvance(2);
|
|
60764
60810
|
i0.ɵɵproperty("viewMode", ctx.viewMode())("currentStepId", ctx.JourneyStepIdEnum.REVENUE_CALCULATOR)("showNextStepAction", ctx.hasCurrentYearTargets())("forDemo", ctx.forDemo())("maxAccessibleStepId", ctx.maxAccessibleStepId());
|
|
60765
60811
|
i0.ɵɵadvance(3);
|
|
60766
|
-
i0.ɵɵconditional(ctx.isLoading() ? 23 : ctx.dataLoadStatus() !== ctx.ShopDataLoadStatusEnum.FULLY_LOADED ? 24 :
|
|
60812
|
+
i0.ɵɵconditional(ctx.isLoading() ? 23 : ctx.dataLoadStatus() !== ctx.ShopDataLoadStatusEnum.FULLY_LOADED ? 24 : 25);
|
|
60767
60813
|
} }, dependencies: [CommonModule, i1$1.NgClass, JourneyProgressIndicatorComponent,
|
|
60768
60814
|
RevenueCalculatorWelcomeBannerComponent,
|
|
60769
60815
|
InitialTargetSettingComponent,
|
|
@@ -60901,12 +60947,12 @@ class SymphiqRevenueCalculatorDashboardComponent {
|
|
|
60901
60947
|
</div>
|
|
60902
60948
|
}
|
|
60903
60949
|
|
|
60904
|
-
<!-- State
|
|
60905
|
-
@else
|
|
60950
|
+
<!-- State 3: Target Setting / Results (isLoading = false && dataLoadStatus === FULLY_LOADED) -->
|
|
60951
|
+
@else {
|
|
60906
60952
|
<symphiq-revenue-calculator-welcome-banner
|
|
60907
60953
|
[viewMode]="viewMode()"
|
|
60908
60954
|
[dataLoadStatus]="dataLoadStatus() ?? ShopDataLoadStatusEnum.NOT_LOADED"
|
|
60909
|
-
[hasTargets]="
|
|
60955
|
+
[hasTargets]="hasCurrentYearTargets()"
|
|
60910
60956
|
/>
|
|
60911
60957
|
|
|
60912
60958
|
<div class="mt-8">
|
|
@@ -60926,35 +60972,6 @@ class SymphiqRevenueCalculatorDashboardComponent {
|
|
|
60926
60972
|
</div>
|
|
60927
60973
|
}
|
|
60928
60974
|
|
|
60929
|
-
<!-- State 3b: Final Dashboard (isLoading = false && dataLoadStatus === FULLY_LOADED && hasCurrentYearTargets) -->
|
|
60930
|
-
@else {
|
|
60931
|
-
<symphiq-revenue-calculator-welcome-banner
|
|
60932
|
-
[viewMode]="viewMode()"
|
|
60933
|
-
[dataLoadStatus]="dataLoadStatus() ?? ShopDataLoadStatusEnum.NOT_LOADED"
|
|
60934
|
-
[hasTargets]="true"
|
|
60935
|
-
/>
|
|
60936
|
-
|
|
60937
|
-
<!-- Placeholder for Revenue Calculator Content -->
|
|
60938
|
-
<div [ngClass]="placeholderContainerClasses()" class="mt-8 rounded-2xl border-2 border-dashed p-12">
|
|
60939
|
-
<div class="text-center space-y-4">
|
|
60940
|
-
<div class="flex justify-center">
|
|
60941
|
-
<svg [ngClass]="placeholderIconClasses()" class="w-16 h-16" fill="none" stroke="currentColor"
|
|
60942
|
-
viewBox="0 0 24 24">
|
|
60943
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
|
60944
|
-
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>
|
|
60945
|
-
</svg>
|
|
60946
|
-
</div>
|
|
60947
|
-
<h3 [ngClass]="placeholderTitleClasses()" class="text-2xl font-bold">
|
|
60948
|
-
Revenue Calculator Dashboard
|
|
60949
|
-
</h3>
|
|
60950
|
-
<p [ngClass]="placeholderTextClasses()" class="text-base max-w-2xl mx-auto">
|
|
60951
|
-
Your targets are set! The full revenue calculator dashboard with pacing and insights will be
|
|
60952
|
-
displayed here.
|
|
60953
|
-
</p>
|
|
60954
|
-
</div>
|
|
60955
|
-
</div>
|
|
60956
|
-
}
|
|
60957
|
-
|
|
60958
60975
|
</div>
|
|
60959
60976
|
</main>
|
|
60960
60977
|
</div>
|
|
@@ -60965,7 +60982,7 @@ class SymphiqRevenueCalculatorDashboardComponent {
|
|
|
60965
60982
|
type: HostListener,
|
|
60966
60983
|
args: ['window:scroll', ['$event']]
|
|
60967
60984
|
}] }); })();
|
|
60968
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqRevenueCalculatorDashboardComponent, { className: "SymphiqRevenueCalculatorDashboardComponent", filePath: "lib/components/revenue-calculator-dashboard/symphiq-revenue-calculator-dashboard.component.ts", lineNumber:
|
|
60985
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqRevenueCalculatorDashboardComponent, { className: "SymphiqRevenueCalculatorDashboardComponent", filePath: "lib/components/revenue-calculator-dashboard/symphiq-revenue-calculator-dashboard.component.ts", lineNumber: 198 }); })();
|
|
60969
60986
|
|
|
60970
60987
|
function HierarchyDisplayComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
60971
60988
|
i0.ɵɵelementStart(0, "div", 1)(1, "div", 1);
|