@eric-emg/symphiq-components 1.2.225 → 1.2.227
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 +341 -253
- package/fesm2022/symphiq-components.mjs.map +1 -1
- package/index.d.ts +4 -4
- package/package.json +1 -1
- package/src/styles.css +328 -322
- package/styles.css +39 -18
|
@@ -54722,6 +54722,16 @@ function formatPacingDisplay(pacingPercentage) {
|
|
|
54722
54722
|
}
|
|
54723
54723
|
return `${sign}${formatted}% behind`;
|
|
54724
54724
|
}
|
|
54725
|
+
function formatPacingDisplayFullText(pacingPercentage, status) {
|
|
54726
|
+
const formatted = Math.abs(pacingPercentage).toFixed(1);
|
|
54727
|
+
if (status === 'ahead') {
|
|
54728
|
+
return `Pacing at ${formatted}% above target`;
|
|
54729
|
+
}
|
|
54730
|
+
if (status === 'on-pace') {
|
|
54731
|
+
return `Pacing on target`;
|
|
54732
|
+
}
|
|
54733
|
+
return `Pacing at ${formatted}% below target`;
|
|
54734
|
+
}
|
|
54725
54735
|
function calculateGapToTarget(projectedValue, targetValue) {
|
|
54726
54736
|
const amount = targetValue - projectedValue;
|
|
54727
54737
|
const percentage = projectedValue > 0 ? (amount / projectedValue) * 100 : 0;
|
|
@@ -54789,6 +54799,8 @@ class PacingStatusBadgeComponent {
|
|
|
54789
54799
|
this.viewMode = input(ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "viewMode" }] : []));
|
|
54790
54800
|
this.pacingPercentage = input(0, ...(ngDevMode ? [{ debugName: "pacingPercentage" }] : []));
|
|
54791
54801
|
this.status = input('on-pace', ...(ngDevMode ? [{ debugName: "status" }] : []));
|
|
54802
|
+
this.showAsFullText = input(false, ...(ngDevMode ? [{ debugName: "showAsFullText" }] : []));
|
|
54803
|
+
this.isCompact = input(false, ...(ngDevMode ? [{ debugName: "isCompact" }] : []));
|
|
54792
54804
|
this.displayInfo = computed(() => {
|
|
54793
54805
|
const isDark = this.viewMode() === ViewModeEnum.DARK;
|
|
54794
54806
|
return getPacingDisplayInfo(this.pacingPercentage(), this.status(), isDark);
|
|
@@ -54797,9 +54809,20 @@ class PacingStatusBadgeComponent {
|
|
|
54797
54809
|
const info = this.displayInfo();
|
|
54798
54810
|
return `${info.bgClass} ${info.colorClass} ${info.borderClass}`;
|
|
54799
54811
|
}, ...(ngDevMode ? [{ debugName: "badgeClasses" }] : []));
|
|
54812
|
+
this.sizeClasses = computed(() => {
|
|
54813
|
+
const isCompact = this.isCompact();
|
|
54814
|
+
const baseClasses = 'inline-flex items-center gap-1.5 rounded-lg border font-semibold transition-all';
|
|
54815
|
+
if (isCompact) {
|
|
54816
|
+
return `${baseClasses} px-2.5 py-1 text-xs`;
|
|
54817
|
+
}
|
|
54818
|
+
return `${baseClasses} px-3 py-1.5 text-xs`;
|
|
54819
|
+
}, ...(ngDevMode ? [{ debugName: "sizeClasses" }] : []));
|
|
54800
54820
|
this.iconClasses = computed(() => {
|
|
54801
54821
|
return this.displayInfo().colorClass;
|
|
54802
54822
|
}, ...(ngDevMode ? [{ debugName: "iconClasses" }] : []));
|
|
54823
|
+
this.iconSizeClasses = computed(() => {
|
|
54824
|
+
return this.isCompact() ? 'text-sm' : 'text-base';
|
|
54825
|
+
}, ...(ngDevMode ? [{ debugName: "iconSizeClasses" }] : []));
|
|
54803
54826
|
this.iconSymbol = computed(() => {
|
|
54804
54827
|
const status = this.status();
|
|
54805
54828
|
if (status === 'ahead')
|
|
@@ -54809,20 +54832,25 @@ class PacingStatusBadgeComponent {
|
|
|
54809
54832
|
return '→';
|
|
54810
54833
|
}, ...(ngDevMode ? [{ debugName: "iconSymbol" }] : []));
|
|
54811
54834
|
this.displayText = computed(() => {
|
|
54835
|
+
if (this.showAsFullText()) {
|
|
54836
|
+
return formatPacingDisplayFullText(this.pacingPercentage(), this.status());
|
|
54837
|
+
}
|
|
54812
54838
|
return this.displayInfo().displayText;
|
|
54813
54839
|
}, ...(ngDevMode ? [{ debugName: "displayText" }] : []));
|
|
54814
54840
|
}
|
|
54815
54841
|
static { this.ɵfac = function PacingStatusBadgeComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PacingStatusBadgeComponent)(); }; }
|
|
54816
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PacingStatusBadgeComponent, selectors: [["symphiq-pacing-status-badge"]], inputs: { viewMode: [1, "viewMode"], pacingPercentage: [1, "pacingPercentage"], status: [1, "status"]
|
|
54817
|
-
i0.ɵɵelementStart(0, "div", 0)(1, "span",
|
|
54842
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PacingStatusBadgeComponent, selectors: [["symphiq-pacing-status-badge"]], inputs: { viewMode: [1, "viewMode"], pacingPercentage: [1, "pacingPercentage"], status: [1, "status"], showAsFullText: [1, "showAsFullText"], isCompact: [1, "isCompact"] }, decls: 5, vars: 8, consts: [[3, "ngClass"]], template: function PacingStatusBadgeComponent_Template(rf, ctx) { if (rf & 1) {
|
|
54843
|
+
i0.ɵɵelementStart(0, "div", 0)(1, "span", 0);
|
|
54818
54844
|
i0.ɵɵtext(2);
|
|
54819
54845
|
i0.ɵɵelementEnd();
|
|
54820
54846
|
i0.ɵɵelementStart(3, "span");
|
|
54821
54847
|
i0.ɵɵtext(4);
|
|
54822
54848
|
i0.ɵɵelementEnd()();
|
|
54823
54849
|
} if (rf & 2) {
|
|
54850
|
+
i0.ɵɵclassMap(ctx.sizeClasses());
|
|
54824
54851
|
i0.ɵɵproperty("ngClass", ctx.badgeClasses());
|
|
54825
54852
|
i0.ɵɵadvance();
|
|
54853
|
+
i0.ɵɵclassMap(ctx.iconSizeClasses());
|
|
54826
54854
|
i0.ɵɵproperty("ngClass", ctx.iconClasses());
|
|
54827
54855
|
i0.ɵɵadvance();
|
|
54828
54856
|
i0.ɵɵtextInterpolate1(" ", ctx.iconSymbol(), " ");
|
|
@@ -54840,16 +54868,16 @@ class PacingStatusBadgeComponent {
|
|
|
54840
54868
|
template: `
|
|
54841
54869
|
<div
|
|
54842
54870
|
[ngClass]="badgeClasses()"
|
|
54843
|
-
class="
|
|
54871
|
+
[class]="sizeClasses()"
|
|
54844
54872
|
>
|
|
54845
|
-
<span [ngClass]="iconClasses()" class="
|
|
54873
|
+
<span [ngClass]="iconClasses()" [class]="iconSizeClasses()">
|
|
54846
54874
|
{{ iconSymbol() }}
|
|
54847
54875
|
</span>
|
|
54848
54876
|
<span>{{ displayText() }}</span>
|
|
54849
54877
|
</div>
|
|
54850
54878
|
`
|
|
54851
54879
|
}]
|
|
54852
|
-
}], null, { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], pacingPercentage: [{ type: i0.Input, args: [{ isSignal: true, alias: "pacingPercentage", required: false }] }], status: [{ type: i0.Input, args: [{ isSignal: true, alias: "status", required: false }] }] }); })();
|
|
54880
|
+
}], null, { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], pacingPercentage: [{ type: i0.Input, args: [{ isSignal: true, alias: "pacingPercentage", required: false }] }], status: [{ type: i0.Input, args: [{ isSignal: true, alias: "status", required: false }] }], showAsFullText: [{ type: i0.Input, args: [{ isSignal: true, alias: "showAsFullText", required: false }] }], isCompact: [{ type: i0.Input, args: [{ isSignal: true, alias: "isCompact", required: false }] }] }); })();
|
|
54853
54881
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PacingStatusBadgeComponent, { className: "PacingStatusBadgeComponent", filePath: "lib/components/revenue-calculator-dashboard/pacing-status-badge.component.ts", lineNumber: 23 }); })();
|
|
54854
54882
|
|
|
54855
54883
|
const _forTrack0$i = ($index, $item) => $item.stageMetric.metric;
|
|
@@ -54857,124 +54885,134 @@ const _forTrack1$3 = ($index, $item) => $item.calc.metric;
|
|
|
54857
54885
|
function FunnelMetricsVisualizationComponent_For_4_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
54858
54886
|
i0.ɵɵelementStart(0, "button", 7);
|
|
54859
54887
|
i0.ɵɵnamespaceSVG();
|
|
54860
|
-
i0.ɵɵelementStart(1, "svg",
|
|
54861
|
-
i0.ɵɵelement(2, "path",
|
|
54888
|
+
i0.ɵɵelementStart(1, "svg", 13);
|
|
54889
|
+
i0.ɵɵelement(2, "path", 14);
|
|
54862
54890
|
i0.ɵɵelementEnd()();
|
|
54863
54891
|
} if (rf & 2) {
|
|
54864
54892
|
const stage_r1 = i0.ɵɵnextContext().$implicit;
|
|
54865
54893
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
54866
54894
|
i0.ɵɵproperty("ngClass", ctx_r1.infoIconClasses())("libSymphiqTooltip", ctx_r1.getMarkdownTooltipContent(stage_r1.stageMetric.description, ctx_r1.getMetricTitle(stage_r1.stageMetric)));
|
|
54867
54895
|
} }
|
|
54868
|
-
function
|
|
54869
|
-
i0.ɵɵ
|
|
54870
|
-
} if (rf & 2) {
|
|
54871
|
-
const stage_r1 = i0.ɵɵnextContext().$implicit;
|
|
54872
|
-
const ctx_r1 = i0.ɵɵnextContext();
|
|
54873
|
-
i0.ɵɵproperty("viewMode", ctx_r1.viewMode())("pacingPercentage", stage_r1.pacingInfo.pacingPercentage)("status", stage_r1.pacingInfo.status);
|
|
54874
|
-
} }
|
|
54875
|
-
function FunnelMetricsVisualizationComponent_For_4_Conditional_17_Template(rf, ctx) { if (rf & 1) {
|
|
54876
|
-
i0.ɵɵelementStart(0, "div")(1, "p", 12);
|
|
54896
|
+
function FunnelMetricsVisualizationComponent_For_4_Conditional_20_Template(rf, ctx) { if (rf & 1) {
|
|
54897
|
+
i0.ɵɵelementStart(0, "div")(1, "p", 9);
|
|
54877
54898
|
i0.ɵɵtext(2);
|
|
54878
54899
|
i0.ɵɵelementEnd();
|
|
54879
|
-
i0.ɵɵelementStart(3, "p",
|
|
54900
|
+
i0.ɵɵelementStart(3, "p", 11);
|
|
54880
54901
|
i0.ɵɵtext(4);
|
|
54881
|
-
i0.ɵɵelementEnd()
|
|
54902
|
+
i0.ɵɵelementEnd();
|
|
54903
|
+
i0.ɵɵelement(5, "symphiq-pacing-status-badge", 15);
|
|
54904
|
+
i0.ɵɵelementEnd();
|
|
54882
54905
|
} if (rf & 2) {
|
|
54883
54906
|
const stage_r1 = i0.ɵɵnextContext().$implicit;
|
|
54884
54907
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
54885
54908
|
i0.ɵɵadvance();
|
|
54886
54909
|
i0.ɵɵproperty("ngClass", ctx_r1.labelClasses());
|
|
54887
54910
|
i0.ɵɵadvance();
|
|
54888
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r1.currentYear(), "
|
|
54911
|
+
i0.ɵɵtextInterpolate1(" Pace for ", ctx_r1.currentYear(), " ");
|
|
54889
54912
|
i0.ɵɵadvance();
|
|
54890
54913
|
i0.ɵɵproperty("ngClass", ctx_r1.projectedValueClasses());
|
|
54891
54914
|
i0.ɵɵadvance();
|
|
54892
54915
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.formatMetricValue(stage_r1.pacingInfo.projectedValue, stage_r1.stageMetric.metric, false), " ");
|
|
54916
|
+
i0.ɵɵadvance();
|
|
54917
|
+
i0.ɵɵproperty("viewMode", ctx_r1.viewMode())("pacingPercentage", stage_r1.pacingInfo.pacingPercentage)("status", stage_r1.pacingInfo.status)("showAsFullText", true);
|
|
54893
54918
|
} }
|
|
54894
|
-
function
|
|
54895
|
-
i0.ɵɵelementStart(0, "button",
|
|
54919
|
+
function FunnelMetricsVisualizationComponent_For_4_Conditional_21_For_6_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
54920
|
+
i0.ɵɵelementStart(0, "button", 23);
|
|
54896
54921
|
i0.ɵɵnamespaceSVG();
|
|
54897
54922
|
i0.ɵɵelementStart(1, "svg", 29);
|
|
54898
|
-
i0.ɵɵelement(2, "path",
|
|
54923
|
+
i0.ɵɵelement(2, "path", 14);
|
|
54899
54924
|
i0.ɵɵelementEnd()();
|
|
54900
54925
|
} if (rf & 2) {
|
|
54901
54926
|
const metric_r3 = i0.ɵɵnextContext().$implicit;
|
|
54902
54927
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
54903
54928
|
i0.ɵɵproperty("ngClass", ctx_r1.infoIconClasses())("libSymphiqTooltip", ctx_r1.getMarkdownTooltipContent(metric_r3.calc.description, ctx_r1.getMetricTitle(metric_r3.calc)));
|
|
54904
54929
|
} }
|
|
54905
|
-
function
|
|
54906
|
-
i0.ɵɵ
|
|
54907
|
-
} if (rf & 2) {
|
|
54908
|
-
const metric_r3 = i0.ɵɵnextContext().$implicit;
|
|
54909
|
-
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
54910
|
-
i0.ɵɵproperty("viewMode", ctx_r1.viewMode())("pacingPercentage", metric_r3.pacingInfo.pacingPercentage)("status", metric_r3.pacingInfo.status);
|
|
54911
|
-
} }
|
|
54912
|
-
function FunnelMetricsVisualizationComponent_For_4_Conditional_23_For_6_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
54913
|
-
i0.ɵɵelementStart(0, "div")(1, "p", 28);
|
|
54930
|
+
function FunnelMetricsVisualizationComponent_For_4_Conditional_21_For_6_Conditional_18_Template(rf, ctx) { if (rf & 1) {
|
|
54931
|
+
i0.ɵɵelementStart(0, "div")(1, "p", 25);
|
|
54914
54932
|
i0.ɵɵtext(2);
|
|
54915
|
-
i0.ɵɵelementEnd()
|
|
54933
|
+
i0.ɵɵelementEnd();
|
|
54934
|
+
i0.ɵɵelementStart(3, "p", 27);
|
|
54935
|
+
i0.ɵɵtext(4);
|
|
54936
|
+
i0.ɵɵelementEnd();
|
|
54937
|
+
i0.ɵɵelement(5, "symphiq-pacing-status-badge", 30);
|
|
54938
|
+
i0.ɵɵelementEnd();
|
|
54916
54939
|
} if (rf & 2) {
|
|
54917
54940
|
const metric_r3 = i0.ɵɵnextContext().$implicit;
|
|
54918
54941
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
54919
54942
|
i0.ɵɵadvance();
|
|
54920
54943
|
i0.ɵɵproperty("ngClass", ctx_r1.relatedLabelClasses());
|
|
54921
54944
|
i0.ɵɵadvance();
|
|
54922
|
-
i0.ɵɵtextInterpolate1("
|
|
54945
|
+
i0.ɵɵtextInterpolate1(" Pace for ", ctx_r1.currentYear(), " ");
|
|
54946
|
+
i0.ɵɵadvance();
|
|
54947
|
+
i0.ɵɵproperty("ngClass", ctx_r1.relatedProjectedValueClasses());
|
|
54948
|
+
i0.ɵɵadvance();
|
|
54949
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.formatMetricValue(metric_r3.pacingInfo.projectedValue, metric_r3.calc.metric, false), " ");
|
|
54950
|
+
i0.ɵɵadvance();
|
|
54951
|
+
i0.ɵɵproperty("viewMode", ctx_r1.viewMode())("pacingPercentage", metric_r3.pacingInfo.pacingPercentage)("status", metric_r3.pacingInfo.status)("showAsFullText", true)("isCompact", true);
|
|
54923
54952
|
} }
|
|
54924
|
-
function
|
|
54925
|
-
i0.ɵɵelementStart(0, "div", 20)(1, "div", 21)(2, "
|
|
54926
|
-
i0.ɵɵtext(
|
|
54953
|
+
function FunnelMetricsVisualizationComponent_For_4_Conditional_21_For_6_Template(rf, ctx) { if (rf & 1) {
|
|
54954
|
+
i0.ɵɵelementStart(0, "div", 20)(1, "div", 21)(2, "p", 22);
|
|
54955
|
+
i0.ɵɵtext(3);
|
|
54927
54956
|
i0.ɵɵelementEnd();
|
|
54928
|
-
i0.ɵɵconditionalCreate(
|
|
54957
|
+
i0.ɵɵconditionalCreate(4, FunnelMetricsVisualizationComponent_For_4_Conditional_21_For_6_Conditional_4_Template, 3, 2, "button", 23);
|
|
54929
54958
|
i0.ɵɵelementEnd();
|
|
54930
|
-
i0.ɵɵelementStart(6, "div", 25);
|
|
54931
|
-
i0.ɵɵ
|
|
54932
|
-
i0.ɵɵ
|
|
54933
|
-
i0.ɵɵ
|
|
54934
|
-
i0.ɵɵ
|
|
54935
|
-
i0.ɵɵelementStart(10, "div", 27)(11, "div")(12, "p", 28);
|
|
54936
|
-
i0.ɵɵtext(13);
|
|
54959
|
+
i0.ɵɵelementStart(5, "div", 24)(6, "div")(7, "p", 25);
|
|
54960
|
+
i0.ɵɵtext(8);
|
|
54961
|
+
i0.ɵɵelementEnd();
|
|
54962
|
+
i0.ɵɵelementStart(9, "p", 26);
|
|
54963
|
+
i0.ɵɵtext(10);
|
|
54937
54964
|
i0.ɵɵelementEnd()();
|
|
54938
|
-
i0.ɵɵ
|
|
54939
|
-
i0.ɵɵ
|
|
54965
|
+
i0.ɵɵelementStart(11, "div")(12, "p", 25);
|
|
54966
|
+
i0.ɵɵtext(13);
|
|
54967
|
+
i0.ɵɵelementEnd();
|
|
54968
|
+
i0.ɵɵelementStart(14, "p", 27);
|
|
54969
|
+
i0.ɵɵtext(15);
|
|
54970
|
+
i0.ɵɵelementEnd();
|
|
54971
|
+
i0.ɵɵelementStart(16, "div", 28);
|
|
54940
54972
|
i0.ɵɵtext(17);
|
|
54941
|
-
i0.ɵɵelementEnd()()
|
|
54973
|
+
i0.ɵɵelementEnd()();
|
|
54974
|
+
i0.ɵɵconditionalCreate(18, FunnelMetricsVisualizationComponent_For_4_Conditional_21_For_6_Conditional_18_Template, 6, 9, "div");
|
|
54975
|
+
i0.ɵɵelementEnd()();
|
|
54942
54976
|
} if (rf & 2) {
|
|
54943
54977
|
const metric_r3 = ctx.$implicit;
|
|
54944
54978
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
54945
54979
|
i0.ɵɵproperty("ngClass", ctx_r1.relatedMetricCardClasses());
|
|
54946
|
-
i0.ɵɵadvance(
|
|
54980
|
+
i0.ɵɵadvance(2);
|
|
54947
54981
|
i0.ɵɵproperty("ngClass", ctx_r1.relatedMetricNameClasses());
|
|
54948
54982
|
i0.ɵɵadvance();
|
|
54949
54983
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.getMetricTitle(metric_r3.calc), " ");
|
|
54950
54984
|
i0.ɵɵadvance();
|
|
54951
|
-
i0.ɵɵconditional(metric_r3.calc.description ?
|
|
54952
|
-
i0.ɵɵadvance(
|
|
54953
|
-
i0.ɵɵ
|
|
54985
|
+
i0.ɵɵconditional(metric_r3.calc.description ? 4 : -1);
|
|
54986
|
+
i0.ɵɵadvance(3);
|
|
54987
|
+
i0.ɵɵproperty("ngClass", ctx_r1.relatedLabelClasses());
|
|
54954
54988
|
i0.ɵɵadvance();
|
|
54955
|
-
i0.ɵɵ
|
|
54989
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.priorYear(), " Actual ");
|
|
54956
54990
|
i0.ɵɵadvance();
|
|
54957
|
-
i0.ɵɵ
|
|
54991
|
+
i0.ɵɵproperty("ngClass", ctx_r1.relatedValueClasses());
|
|
54958
54992
|
i0.ɵɵadvance();
|
|
54959
|
-
i0.ɵɵ
|
|
54993
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.formatMetricValue(metric_r3.calc.currentValue, metric_r3.calc.metric), " ");
|
|
54960
54994
|
i0.ɵɵadvance(2);
|
|
54961
54995
|
i0.ɵɵproperty("ngClass", ctx_r1.relatedLabelClasses());
|
|
54962
54996
|
i0.ɵɵadvance();
|
|
54963
|
-
i0.ɵɵ
|
|
54997
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.currentYear(), " Target ");
|
|
54998
|
+
i0.ɵɵadvance();
|
|
54999
|
+
i0.ɵɵproperty("ngClass", ctx_r1.relatedTargetValueClasses());
|
|
54964
55000
|
i0.ɵɵadvance();
|
|
54965
|
-
i0.ɵɵ
|
|
54966
|
-
i0.ɵɵadvance(2);
|
|
54967
|
-
i0.ɵɵproperty("ngClass", ctx_r1.relatedLabelClasses());
|
|
55001
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.formatMetricValue(metric_r3.calc.targetValue, metric_r3.calc.metric, false), " ");
|
|
54968
55002
|
i0.ɵɵadvance();
|
|
54969
|
-
i0.ɵɵ
|
|
55003
|
+
i0.ɵɵproperty("ngClass", ctx_r1.relatedPercentageBadgeClasses());
|
|
55004
|
+
i0.ɵɵadvance();
|
|
55005
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.getTargetIncreaseText(metric_r3.calc.percentageIncrease, metric_r3.calc.metric), " ");
|
|
55006
|
+
i0.ɵɵadvance();
|
|
55007
|
+
i0.ɵɵconditional(metric_r3.pacingInfo ? 18 : -1);
|
|
54970
55008
|
} }
|
|
54971
|
-
function
|
|
55009
|
+
function FunnelMetricsVisualizationComponent_For_4_Conditional_21_Template(rf, ctx) { if (rf & 1) {
|
|
54972
55010
|
i0.ɵɵelement(0, "div", 16);
|
|
54973
55011
|
i0.ɵɵelementStart(1, "div", 17)(2, "p", 18);
|
|
54974
55012
|
i0.ɵɵtext(3, " Related Metrics ");
|
|
54975
55013
|
i0.ɵɵelementEnd();
|
|
54976
55014
|
i0.ɵɵelementStart(4, "div", 19);
|
|
54977
|
-
i0.ɵɵrepeaterCreate(5,
|
|
55015
|
+
i0.ɵɵrepeaterCreate(5, FunnelMetricsVisualizationComponent_For_4_Conditional_21_For_6_Template, 19, 15, "div", 20, _forTrack1$3);
|
|
54978
55016
|
i0.ɵɵelementEnd()();
|
|
54979
55017
|
} if (rf & 2) {
|
|
54980
55018
|
const stage_r1 = i0.ɵɵnextContext().$implicit;
|
|
@@ -54990,26 +55028,25 @@ function FunnelMetricsVisualizationComponent_For_4_Template(rf, ctx) { if (rf &
|
|
|
54990
55028
|
i0.ɵɵtext(5);
|
|
54991
55029
|
i0.ɵɵelementEnd();
|
|
54992
55030
|
i0.ɵɵconditionalCreate(6, FunnelMetricsVisualizationComponent_For_4_Conditional_6_Template, 3, 2, "button", 7);
|
|
54993
|
-
i0.ɵɵelementEnd()();
|
|
54994
|
-
i0.ɵɵelementStart(7, "div", 8);
|
|
54995
|
-
i0.ɵɵconditionalCreate(8, FunnelMetricsVisualizationComponent_For_4_Conditional_8_Template, 1, 3, "symphiq-pacing-status-badge", 9);
|
|
54996
|
-
i0.ɵɵelementStart(9, "div", 10);
|
|
54997
|
-
i0.ɵɵtext(10);
|
|
54998
55031
|
i0.ɵɵelementEnd()()();
|
|
54999
|
-
i0.ɵɵelementStart(
|
|
55000
|
-
i0.ɵɵtext(
|
|
55032
|
+
i0.ɵɵelementStart(7, "div", 8)(8, "div")(9, "p", 9);
|
|
55033
|
+
i0.ɵɵtext(10);
|
|
55001
55034
|
i0.ɵɵelementEnd();
|
|
55002
|
-
i0.ɵɵelementStart(
|
|
55003
|
-
i0.ɵɵtext(
|
|
55035
|
+
i0.ɵɵelementStart(11, "p", 10);
|
|
55036
|
+
i0.ɵɵtext(12);
|
|
55004
55037
|
i0.ɵɵelementEnd()();
|
|
55005
|
-
i0.ɵɵ
|
|
55006
|
-
i0.ɵɵ
|
|
55007
|
-
i0.ɵɵtext(20);
|
|
55038
|
+
i0.ɵɵelementStart(13, "div")(14, "p", 9);
|
|
55039
|
+
i0.ɵɵtext(15);
|
|
55008
55040
|
i0.ɵɵelementEnd();
|
|
55009
|
-
i0.ɵɵelementStart(
|
|
55010
|
-
i0.ɵɵtext(
|
|
55011
|
-
i0.ɵɵelementEnd()
|
|
55012
|
-
i0.ɵɵ
|
|
55041
|
+
i0.ɵɵelementStart(16, "p", 11);
|
|
55042
|
+
i0.ɵɵtext(17);
|
|
55043
|
+
i0.ɵɵelementEnd();
|
|
55044
|
+
i0.ɵɵelementStart(18, "div", 12);
|
|
55045
|
+
i0.ɵɵtext(19);
|
|
55046
|
+
i0.ɵɵelementEnd()();
|
|
55047
|
+
i0.ɵɵconditionalCreate(20, FunnelMetricsVisualizationComponent_For_4_Conditional_20_Template, 6, 8, "div");
|
|
55048
|
+
i0.ɵɵelementEnd();
|
|
55049
|
+
i0.ɵɵconditionalCreate(21, FunnelMetricsVisualizationComponent_For_4_Conditional_21_Template, 7, 2);
|
|
55013
55050
|
i0.ɵɵelementEnd();
|
|
55014
55051
|
} if (rf & 2) {
|
|
55015
55052
|
const stage_r1 = ctx.$implicit;
|
|
@@ -55021,12 +55058,6 @@ function FunnelMetricsVisualizationComponent_For_4_Template(rf, ctx) { if (rf &
|
|
|
55021
55058
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.getMetricTitle(stage_r1.stageMetric), " ");
|
|
55022
55059
|
i0.ɵɵadvance();
|
|
55023
55060
|
i0.ɵɵconditional(stage_r1.stageMetric.description ? 6 : -1);
|
|
55024
|
-
i0.ɵɵadvance(2);
|
|
55025
|
-
i0.ɵɵconditional(stage_r1.pacingInfo ? 8 : -1);
|
|
55026
|
-
i0.ɵɵadvance();
|
|
55027
|
-
i0.ɵɵproperty("ngClass", ctx_r1.percentageBadgeClasses());
|
|
55028
|
-
i0.ɵɵadvance();
|
|
55029
|
-
i0.ɵɵtextInterpolate2(" ", ctx_r1.getGrowthSign(stage_r1.stageMetric.metric), "", ctx_r1.formatPercentage(ctx_r1.Math.abs(stage_r1.stageMetric.percentageIncrease), 1), " ");
|
|
55030
55061
|
i0.ɵɵadvance(3);
|
|
55031
55062
|
i0.ɵɵproperty("ngClass", ctx_r1.labelClasses());
|
|
55032
55063
|
i0.ɵɵadvance();
|
|
@@ -55035,8 +55066,6 @@ function FunnelMetricsVisualizationComponent_For_4_Template(rf, ctx) { if (rf &
|
|
|
55035
55066
|
i0.ɵɵproperty("ngClass", ctx_r1.valueClasses());
|
|
55036
55067
|
i0.ɵɵadvance();
|
|
55037
55068
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.formatMetricValue(stage_r1.stageMetric.currentValue, stage_r1.stageMetric.metric), " ");
|
|
55038
|
-
i0.ɵɵadvance();
|
|
55039
|
-
i0.ɵɵconditional(stage_r1.pacingInfo ? 17 : -1);
|
|
55040
55069
|
i0.ɵɵadvance(2);
|
|
55041
55070
|
i0.ɵɵproperty("ngClass", ctx_r1.labelClasses());
|
|
55042
55071
|
i0.ɵɵadvance();
|
|
@@ -55046,7 +55075,13 @@ function FunnelMetricsVisualizationComponent_For_4_Template(rf, ctx) { if (rf &
|
|
|
55046
55075
|
i0.ɵɵadvance();
|
|
55047
55076
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.formatMetricValue(stage_r1.stageMetric.targetValue, stage_r1.stageMetric.metric, false), " ");
|
|
55048
55077
|
i0.ɵɵadvance();
|
|
55049
|
-
i0.ɵɵ
|
|
55078
|
+
i0.ɵɵproperty("ngClass", ctx_r1.percentageBadgeClasses());
|
|
55079
|
+
i0.ɵɵadvance();
|
|
55080
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.getTargetIncreaseText(stage_r1.stageMetric.percentageIncrease, stage_r1.stageMetric.metric), " ");
|
|
55081
|
+
i0.ɵɵadvance();
|
|
55082
|
+
i0.ɵɵconditional(stage_r1.pacingInfo ? 20 : -1);
|
|
55083
|
+
i0.ɵɵadvance();
|
|
55084
|
+
i0.ɵɵconditional(stage_r1.relatedMetrics.length > 0 ? 21 : -1);
|
|
55050
55085
|
} }
|
|
55051
55086
|
class FunnelMetricsVisualizationComponent {
|
|
55052
55087
|
constructor() {
|
|
@@ -55153,17 +55188,37 @@ class FunnelMetricsVisualizationComponent {
|
|
|
55153
55188
|
}
|
|
55154
55189
|
relatedPercentageBadgeClasses() {
|
|
55155
55190
|
return this.viewMode() === ViewModeEnum.DARK
|
|
55156
|
-
? 'bg-purple-
|
|
55157
|
-
: 'bg-purple-50 text-purple-
|
|
55191
|
+
? 'bg-purple-800/60 text-purple-200'
|
|
55192
|
+
: 'bg-purple-50 text-purple-800 border border-purple-200';
|
|
55158
55193
|
}
|
|
55159
55194
|
relatedLabelClasses() {
|
|
55160
55195
|
return this.viewMode() === ViewModeEnum.DARK
|
|
55161
|
-
? 'text-slate-
|
|
55162
|
-
: 'text-slate-
|
|
55196
|
+
? 'text-slate-300'
|
|
55197
|
+
: 'text-slate-700';
|
|
55198
|
+
}
|
|
55199
|
+
relatedValueClasses() {
|
|
55200
|
+
return this.viewMode() === ViewModeEnum.DARK
|
|
55201
|
+
? 'text-white'
|
|
55202
|
+
: 'text-slate-950';
|
|
55203
|
+
}
|
|
55204
|
+
relatedTargetValueClasses() {
|
|
55205
|
+
return this.viewMode() === ViewModeEnum.DARK
|
|
55206
|
+
? 'text-purple-200'
|
|
55207
|
+
: 'text-purple-800';
|
|
55208
|
+
}
|
|
55209
|
+
relatedProjectedValueClasses() {
|
|
55210
|
+
return this.viewMode() === ViewModeEnum.DARK
|
|
55211
|
+
? 'text-amber-200'
|
|
55212
|
+
: 'text-amber-800';
|
|
55163
55213
|
}
|
|
55164
55214
|
formatPercentage(value, decimals) {
|
|
55165
55215
|
return formatPercentage(value, decimals);
|
|
55166
55216
|
}
|
|
55217
|
+
getTargetIncreaseText(percentageIncrease, metric) {
|
|
55218
|
+
const sign = MetricEnumUtil.increaseBad(metric) ? '' : '+';
|
|
55219
|
+
const absValue = Math.abs(percentageIncrease);
|
|
55220
|
+
return `${sign}${formatPercentage(absValue, 1)} increase over ${this.priorYear()}`;
|
|
55221
|
+
}
|
|
55167
55222
|
formatMetricValue(value, metric, fromUiData = true) {
|
|
55168
55223
|
if (metric.includes('REVENUE')) {
|
|
55169
55224
|
return formatCurrency(value);
|
|
@@ -55193,11 +55248,11 @@ class FunnelMetricsVisualizationComponent {
|
|
|
55193
55248
|
return MetricEnumUtil.increaseBad(metric) ? '-' : '+';
|
|
55194
55249
|
}
|
|
55195
55250
|
static { this.ɵfac = function FunnelMetricsVisualizationComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || FunnelMetricsVisualizationComponent)(); }; }
|
|
55196
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FunnelMetricsVisualizationComponent, selectors: [["symphiq-funnel-metrics-visualization"]], inputs: { viewMode: [1, "viewMode"], calculations: [1, "calculations"], pacingMetrics: [1, "pacingMetrics"] }, decls: 5, vars: 0, consts: [[1, "space-y-6"], [1, "space-y-8"], [1, "rounded-xl", "p-6", "border-2", "transition-all", "duration-200", 3, "ngClass"], [1, "flex", "items-start", "justify-between", "mb-
|
|
55251
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FunnelMetricsVisualizationComponent, selectors: [["symphiq-funnel-metrics-visualization"]], inputs: { viewMode: [1, "viewMode"], calculations: [1, "calculations"], pacingMetrics: [1, "pacingMetrics"] }, decls: 5, vars: 0, consts: [[1, "space-y-6"], [1, "space-y-8"], [1, "rounded-xl", "p-6", "border-2", "transition-all", "duration-200", 3, "ngClass"], [1, "flex", "items-start", "justify-between", "mb-6"], [1, "flex-1"], [1, "flex", "items-center", "gap-2", "mb-1"], [1, "text-lg", "font-bold", "leading-tight", "m-0", 3, "ngClass"], ["type", "button", "tooltipType", "markdown", "tooltipPosition", "right", 1, "flex-shrink-0", "w-6", "h-6", "rounded-full", "inline-flex", "items-center", "justify-center", "transition-colors", 3, "ngClass", "libSymphiqTooltip"], [1, "grid", "grid-cols-3", "gap-6", "mb-4"], [1, "text-xs", "font-medium", "uppercase", "tracking-wider", "mb-2", 3, "ngClass"], [1, "text-2xl", "font-bold", 3, "ngClass"], [1, "text-2xl", "font-bold", "mb-3", 3, "ngClass"], [1, "px-3", "py-1.5", "rounded-lg", "font-semibold", "text-xs", "inline-block", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"], [3, "viewMode", "pacingPercentage", "status", "showAsFullText"], [1, "my-4", 3, "ngClass"], [1, "space-y-3"], [1, "text-xs", "font-semibold", "uppercase", "tracking-wider", "mb-3", 3, "ngClass"], [1, "grid", "gap-3"], [1, "p-4", "rounded-lg", 3, "ngClass"], [1, "flex", "items-center", "gap-2", "mb-4"], [1, "text-xs", "font-semibold", "leading-tight", 3, "ngClass"], ["type", "button", "tooltipType", "markdown", "tooltipPosition", "right", 1, "flex-shrink-0", "w-5", "h-5", "rounded-full", "inline-flex", "items-center", "justify-center", "transition-colors", 3, "ngClass", "libSymphiqTooltip"], [1, "grid", "grid-cols-3", "gap-4"], [1, "text-xs", "font-medium", "uppercase", "tracking-wider", "mb-1.5", 3, "ngClass"], [1, "text-lg", "font-bold", 3, "ngClass"], [1, "text-lg", "font-bold", "mb-2", 3, "ngClass"], [1, "px-2.5", "py-1", "rounded", "text-xs", "font-semibold", "inline-block", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-3.5", "h-3.5"], [3, "viewMode", "pacingPercentage", "status", "showAsFullText", "isCompact"]], template: function FunnelMetricsVisualizationComponent_Template(rf, ctx) { if (rf & 1) {
|
|
55197
55252
|
i0.ɵɵelementStart(0, "div", 0);
|
|
55198
55253
|
i0.ɵɵelement(1, "symphiq-tooltip-container");
|
|
55199
55254
|
i0.ɵɵelementStart(2, "div", 1);
|
|
55200
|
-
i0.ɵɵrepeaterCreate(3, FunnelMetricsVisualizationComponent_For_4_Template,
|
|
55255
|
+
i0.ɵɵrepeaterCreate(3, FunnelMetricsVisualizationComponent_For_4_Template, 22, 16, "div", 2, _forTrack0$i);
|
|
55201
55256
|
i0.ɵɵelementEnd()();
|
|
55202
55257
|
} if (rf & 2) {
|
|
55203
55258
|
i0.ɵɵadvance(3);
|
|
@@ -55211,144 +55266,152 @@ class FunnelMetricsVisualizationComponent {
|
|
|
55211
55266
|
standalone: true,
|
|
55212
55267
|
imports: [CommonModule, PacingStatusBadgeComponent, TooltipDirective, TooltipContainerComponent],
|
|
55213
55268
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
55214
|
-
template: `
|
|
55215
|
-
<div class="space-y-6">
|
|
55216
|
-
<symphiq-tooltip-container />
|
|
55217
|
-
<div class="space-y-8">
|
|
55218
|
-
@for (stage of funnelStages(); track stage.stageMetric.metric) {
|
|
55219
|
-
<div [ngClass]="stageCardClasses()" class="rounded-xl p-6 border-2 transition-all duration-200">
|
|
55220
|
-
<div class="flex items-start justify-between mb-
|
|
55221
|
-
<div class="flex-1">
|
|
55222
|
-
<div class="flex items-center gap-2 mb-1">
|
|
55223
|
-
<h3 [ngClass]="stageTitleClasses()" class="text-lg font-bold leading-tight m-0">
|
|
55224
|
-
{{ getMetricTitle(stage.stageMetric) }}
|
|
55225
|
-
</h3>
|
|
55226
|
-
@if (stage.stageMetric.description) {
|
|
55227
|
-
<button
|
|
55228
|
-
type="button"
|
|
55229
|
-
[ngClass]="infoIconClasses()"
|
|
55230
|
-
class="flex-shrink-0 w-6 h-6 rounded-full inline-flex items-center justify-center transition-colors"
|
|
55231
|
-
[libSymphiqTooltip]="getMarkdownTooltipContent(stage.stageMetric.description, getMetricTitle(stage.stageMetric))"
|
|
55232
|
-
tooltipType="markdown"
|
|
55233
|
-
tooltipPosition="right">
|
|
55234
|
-
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
55235
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" />
|
|
55236
|
-
</svg>
|
|
55237
|
-
</button>
|
|
55238
|
-
}
|
|
55239
|
-
</div>
|
|
55240
|
-
</div>
|
|
55241
|
-
|
|
55242
|
-
|
|
55243
|
-
|
|
55244
|
-
|
|
55245
|
-
|
|
55246
|
-
|
|
55247
|
-
|
|
55248
|
-
|
|
55249
|
-
|
|
55250
|
-
|
|
55251
|
-
|
|
55252
|
-
|
|
55253
|
-
|
|
55254
|
-
|
|
55255
|
-
|
|
55256
|
-
|
|
55257
|
-
|
|
55258
|
-
|
|
55259
|
-
|
|
55260
|
-
|
|
55261
|
-
|
|
55262
|
-
|
|
55263
|
-
|
|
55264
|
-
|
|
55265
|
-
|
|
55266
|
-
|
|
55267
|
-
|
|
55268
|
-
|
|
55269
|
-
|
|
55270
|
-
|
|
55271
|
-
|
|
55272
|
-
|
|
55273
|
-
|
|
55274
|
-
|
|
55275
|
-
|
|
55276
|
-
|
|
55277
|
-
</
|
|
55278
|
-
|
|
55279
|
-
|
|
55280
|
-
|
|
55281
|
-
|
|
55282
|
-
|
|
55283
|
-
|
|
55284
|
-
|
|
55285
|
-
|
|
55286
|
-
|
|
55287
|
-
|
|
55288
|
-
<
|
|
55289
|
-
|
|
55290
|
-
|
|
55291
|
-
|
|
55292
|
-
|
|
55293
|
-
|
|
55294
|
-
|
|
55295
|
-
|
|
55296
|
-
<
|
|
55297
|
-
|
|
55298
|
-
|
|
55299
|
-
|
|
55300
|
-
|
|
55301
|
-
|
|
55302
|
-
|
|
55303
|
-
|
|
55304
|
-
|
|
55305
|
-
|
|
55306
|
-
|
|
55307
|
-
|
|
55308
|
-
|
|
55309
|
-
|
|
55310
|
-
|
|
55311
|
-
|
|
55312
|
-
|
|
55313
|
-
|
|
55314
|
-
|
|
55315
|
-
|
|
55316
|
-
|
|
55317
|
-
|
|
55318
|
-
|
|
55319
|
-
|
|
55320
|
-
|
|
55321
|
-
|
|
55322
|
-
|
|
55323
|
-
|
|
55324
|
-
|
|
55325
|
-
|
|
55326
|
-
|
|
55327
|
-
|
|
55328
|
-
|
|
55329
|
-
|
|
55330
|
-
|
|
55331
|
-
|
|
55332
|
-
|
|
55333
|
-
|
|
55334
|
-
|
|
55335
|
-
|
|
55336
|
-
|
|
55337
|
-
|
|
55338
|
-
|
|
55339
|
-
|
|
55340
|
-
|
|
55341
|
-
|
|
55342
|
-
|
|
55343
|
-
|
|
55344
|
-
|
|
55345
|
-
|
|
55346
|
-
|
|
55347
|
-
|
|
55269
|
+
template: `
|
|
55270
|
+
<div class="space-y-6">
|
|
55271
|
+
<symphiq-tooltip-container />
|
|
55272
|
+
<div class="space-y-8">
|
|
55273
|
+
@for (stage of funnelStages(); track stage.stageMetric.metric) {
|
|
55274
|
+
<div [ngClass]="stageCardClasses()" class="rounded-xl p-6 border-2 transition-all duration-200">
|
|
55275
|
+
<div class="flex items-start justify-between mb-6">
|
|
55276
|
+
<div class="flex-1">
|
|
55277
|
+
<div class="flex items-center gap-2 mb-1">
|
|
55278
|
+
<h3 [ngClass]="stageTitleClasses()" class="text-lg font-bold leading-tight m-0">
|
|
55279
|
+
{{ getMetricTitle(stage.stageMetric) }}
|
|
55280
|
+
</h3>
|
|
55281
|
+
@if (stage.stageMetric.description) {
|
|
55282
|
+
<button
|
|
55283
|
+
type="button"
|
|
55284
|
+
[ngClass]="infoIconClasses()"
|
|
55285
|
+
class="flex-shrink-0 w-6 h-6 rounded-full inline-flex items-center justify-center transition-colors"
|
|
55286
|
+
[libSymphiqTooltip]="getMarkdownTooltipContent(stage.stageMetric.description, getMetricTitle(stage.stageMetric))"
|
|
55287
|
+
tooltipType="markdown"
|
|
55288
|
+
tooltipPosition="right">
|
|
55289
|
+
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
55290
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" />
|
|
55291
|
+
</svg>
|
|
55292
|
+
</button>
|
|
55293
|
+
}
|
|
55294
|
+
</div>
|
|
55295
|
+
</div>
|
|
55296
|
+
</div>
|
|
55297
|
+
|
|
55298
|
+
<div class="grid grid-cols-3 gap-6 mb-4">
|
|
55299
|
+
<div>
|
|
55300
|
+
<p [ngClass]="labelClasses()" class="text-xs font-medium uppercase tracking-wider mb-2">
|
|
55301
|
+
{{ priorYear() }} Actual
|
|
55302
|
+
</p>
|
|
55303
|
+
<p [ngClass]="valueClasses()" class="text-2xl font-bold">
|
|
55304
|
+
{{ formatMetricValue(stage.stageMetric.currentValue, stage.stageMetric.metric) }}
|
|
55305
|
+
</p>
|
|
55306
|
+
</div>
|
|
55307
|
+
<div>
|
|
55308
|
+
<p [ngClass]="labelClasses()" class="text-xs font-medium uppercase tracking-wider mb-2">
|
|
55309
|
+
{{ currentYear() }} Target
|
|
55310
|
+
</p>
|
|
55311
|
+
<p [ngClass]="targetValueClasses()" class="text-2xl font-bold mb-3">
|
|
55312
|
+
{{ formatMetricValue(stage.stageMetric.targetValue, stage.stageMetric.metric, false) }}
|
|
55313
|
+
</p>
|
|
55314
|
+
<div [ngClass]="percentageBadgeClasses()" class="px-3 py-1.5 rounded-lg font-semibold text-xs inline-block">
|
|
55315
|
+
{{ getTargetIncreaseText(stage.stageMetric.percentageIncrease, stage.stageMetric.metric) }}
|
|
55316
|
+
</div>
|
|
55317
|
+
</div>
|
|
55318
|
+
@if (stage.pacingInfo) {
|
|
55319
|
+
<div>
|
|
55320
|
+
<p [ngClass]="labelClasses()" class="text-xs font-medium uppercase tracking-wider mb-2">
|
|
55321
|
+
Pace for {{ currentYear() }}
|
|
55322
|
+
</p>
|
|
55323
|
+
<p [ngClass]="projectedValueClasses()" class="text-2xl font-bold mb-3">
|
|
55324
|
+
{{ formatMetricValue(stage.pacingInfo.projectedValue, stage.stageMetric.metric, false) }}
|
|
55325
|
+
</p>
|
|
55326
|
+
<symphiq-pacing-status-badge
|
|
55327
|
+
[viewMode]="viewMode()"
|
|
55328
|
+
[pacingPercentage]="stage.pacingInfo.pacingPercentage"
|
|
55329
|
+
[status]="stage.pacingInfo.status"
|
|
55330
|
+
[showAsFullText]="true"
|
|
55331
|
+
/>
|
|
55332
|
+
</div>
|
|
55333
|
+
}
|
|
55334
|
+
</div>
|
|
55335
|
+
|
|
55336
|
+
@if (stage.relatedMetrics.length > 0) {
|
|
55337
|
+
<div [ngClass]="dividerClasses()" class="my-4"></div>
|
|
55338
|
+
|
|
55339
|
+
<div class="space-y-3">
|
|
55340
|
+
<p [ngClass]="relatedTitleClasses()" class="text-xs font-semibold uppercase tracking-wider mb-3">
|
|
55341
|
+
Related Metrics
|
|
55342
|
+
</p>
|
|
55343
|
+
<div class="grid gap-3">
|
|
55344
|
+
@for (metric of stage.relatedMetrics; track metric.calc.metric) {
|
|
55345
|
+
<div [ngClass]="relatedMetricCardClasses()" class="p-4 rounded-lg">
|
|
55346
|
+
<div class="flex items-center gap-2 mb-4">
|
|
55347
|
+
<p [ngClass]="relatedMetricNameClasses()" class="text-xs font-semibold leading-tight">
|
|
55348
|
+
{{ getMetricTitle(metric.calc) }}
|
|
55349
|
+
</p>
|
|
55350
|
+
@if (metric.calc.description) {
|
|
55351
|
+
<button
|
|
55352
|
+
type="button"
|
|
55353
|
+
[ngClass]="infoIconClasses()"
|
|
55354
|
+
class="flex-shrink-0 w-5 h-5 rounded-full inline-flex items-center justify-center transition-colors"
|
|
55355
|
+
[libSymphiqTooltip]="getMarkdownTooltipContent(metric.calc.description, getMetricTitle(metric.calc))"
|
|
55356
|
+
tooltipType="markdown"
|
|
55357
|
+
tooltipPosition="right">
|
|
55358
|
+
<svg class="w-3.5 h-3.5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
55359
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" />
|
|
55360
|
+
</svg>
|
|
55361
|
+
</button>
|
|
55362
|
+
}
|
|
55363
|
+
</div>
|
|
55364
|
+
<div class="grid grid-cols-3 gap-4">
|
|
55365
|
+
<div>
|
|
55366
|
+
<p [ngClass]="relatedLabelClasses()" class="text-xs font-medium uppercase tracking-wider mb-1.5">
|
|
55367
|
+
{{ priorYear() }} Actual
|
|
55368
|
+
</p>
|
|
55369
|
+
<p [ngClass]="relatedValueClasses()" class="text-lg font-bold">
|
|
55370
|
+
{{ formatMetricValue(metric.calc.currentValue, metric.calc.metric) }}
|
|
55371
|
+
</p>
|
|
55372
|
+
</div>
|
|
55373
|
+
<div>
|
|
55374
|
+
<p [ngClass]="relatedLabelClasses()" class="text-xs font-medium uppercase tracking-wider mb-1.5">
|
|
55375
|
+
{{ currentYear() }} Target
|
|
55376
|
+
</p>
|
|
55377
|
+
<p [ngClass]="relatedTargetValueClasses()" class="text-lg font-bold mb-2">
|
|
55378
|
+
{{ formatMetricValue(metric.calc.targetValue, metric.calc.metric, false) }}
|
|
55379
|
+
</p>
|
|
55380
|
+
<div [ngClass]="relatedPercentageBadgeClasses()" class="px-2.5 py-1 rounded text-xs font-semibold inline-block">
|
|
55381
|
+
{{ getTargetIncreaseText(metric.calc.percentageIncrease, metric.calc.metric) }}
|
|
55382
|
+
</div>
|
|
55383
|
+
</div>
|
|
55384
|
+
@if (metric.pacingInfo) {
|
|
55385
|
+
<div>
|
|
55386
|
+
<p [ngClass]="relatedLabelClasses()" class="text-xs font-medium uppercase tracking-wider mb-1.5">
|
|
55387
|
+
Pace for {{ currentYear() }}
|
|
55388
|
+
</p>
|
|
55389
|
+
<p [ngClass]="relatedProjectedValueClasses()" class="text-lg font-bold mb-2">
|
|
55390
|
+
{{ formatMetricValue(metric.pacingInfo.projectedValue, metric.calc.metric, false) }}
|
|
55391
|
+
</p>
|
|
55392
|
+
<symphiq-pacing-status-badge
|
|
55393
|
+
[viewMode]="viewMode()"
|
|
55394
|
+
[pacingPercentage]="metric.pacingInfo.pacingPercentage"
|
|
55395
|
+
[status]="metric.pacingInfo.status"
|
|
55396
|
+
[showAsFullText]="true"
|
|
55397
|
+
[isCompact]="true"
|
|
55398
|
+
/>
|
|
55399
|
+
</div>
|
|
55400
|
+
}
|
|
55401
|
+
</div>
|
|
55402
|
+
</div>
|
|
55403
|
+
}
|
|
55404
|
+
</div>
|
|
55405
|
+
</div>
|
|
55406
|
+
}
|
|
55407
|
+
</div>
|
|
55408
|
+
}
|
|
55409
|
+
</div>
|
|
55410
|
+
</div>
|
|
55348
55411
|
`
|
|
55349
55412
|
}]
|
|
55350
55413
|
}], null, { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], calculations: [{ type: i0.Input, args: [{ isSignal: true, alias: "calculations", required: false }] }], pacingMetrics: [{ type: i0.Input, args: [{ isSignal: true, alias: "pacingMetrics", required: false }] }] }); })();
|
|
55351
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FunnelMetricsVisualizationComponent, { className: "FunnelMetricsVisualizationComponent", filePath: "lib/components/revenue-calculator-dashboard/funnel-metrics-visualization.component.ts", lineNumber:
|
|
55414
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FunnelMetricsVisualizationComponent, { className: "FunnelMetricsVisualizationComponent", filePath: "lib/components/revenue-calculator-dashboard/funnel-metrics-visualization.component.ts", lineNumber: 160 }); })();
|
|
55352
55415
|
|
|
55353
55416
|
function StickySubmitBarComponent_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
55354
55417
|
i0.ɵɵelementStart(0, "div", 4);
|
|
@@ -56355,6 +56418,24 @@ function InitialTargetSettingComponent_Conditional_36_Conditional_29_Template(rf
|
|
|
56355
56418
|
function InitialTargetSettingComponent_Conditional_36_Conditional_30_Template(rf, ctx) { if (rf & 1) {
|
|
56356
56419
|
i0.ɵɵtext(0, " -- ");
|
|
56357
56420
|
} }
|
|
56421
|
+
function InitialTargetSettingComponent_Conditional_36_Conditional_31_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
56422
|
+
i0.ɵɵtext(0);
|
|
56423
|
+
} if (rf & 2) {
|
|
56424
|
+
const ctx_r0 = i0.ɵɵnextContext(3);
|
|
56425
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r0.formatCurrency(ctx_r0.animatedGapAmount()), " ");
|
|
56426
|
+
} }
|
|
56427
|
+
function InitialTargetSettingComponent_Conditional_36_Conditional_31_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
56428
|
+
i0.ɵɵtext(0, " -- ");
|
|
56429
|
+
} }
|
|
56430
|
+
function InitialTargetSettingComponent_Conditional_36_Conditional_31_Conditional_21_Template(rf, ctx) { if (rf & 1) {
|
|
56431
|
+
i0.ɵɵtext(0);
|
|
56432
|
+
} if (rf & 2) {
|
|
56433
|
+
const ctx_r0 = i0.ɵɵnextContext(3);
|
|
56434
|
+
i0.ɵɵtextInterpolate2(" ", ctx_r0.gapToClose().amount > 0 ? "+" : "", "", ctx_r0.formatPercentage(ctx_r0.animatedGapPercentage(), 1), " ");
|
|
56435
|
+
} }
|
|
56436
|
+
function InitialTargetSettingComponent_Conditional_36_Conditional_31_Conditional_22_Template(rf, ctx) { if (rf & 1) {
|
|
56437
|
+
i0.ɵɵtext(0, " -- ");
|
|
56438
|
+
} }
|
|
56358
56439
|
function InitialTargetSettingComponent_Conditional_36_Conditional_31_Template(rf, ctx) { if (rf & 1) {
|
|
56359
56440
|
const _r8 = i0.ɵɵgetCurrentView();
|
|
56360
56441
|
i0.ɵɵelementStart(0, "div", 56)(1, "div", 57);
|
|
@@ -56368,20 +56449,20 @@ function InitialTargetSettingComponent_Conditional_36_Conditional_31_Template(rf
|
|
|
56368
56449
|
i0.ɵɵtext(9, " Gap to Close ");
|
|
56369
56450
|
i0.ɵɵelementEnd();
|
|
56370
56451
|
i0.ɵɵelementStart(10, "p", 62);
|
|
56371
|
-
i0.ɵɵ
|
|
56452
|
+
i0.ɵɵconditionalCreate(11, InitialTargetSettingComponent_Conditional_36_Conditional_31_Conditional_11_Template, 1, 1)(12, InitialTargetSettingComponent_Conditional_36_Conditional_31_Conditional_12_Template, 1, 0);
|
|
56372
56453
|
i0.ɵɵelementEnd()();
|
|
56373
|
-
i0.ɵɵelementStart(
|
|
56374
|
-
i0.ɵɵtext(
|
|
56454
|
+
i0.ɵɵelementStart(13, "div")(14, "div", 64)(15, "p", 14);
|
|
56455
|
+
i0.ɵɵtext(16, " Additional Growth Needed ");
|
|
56375
56456
|
i0.ɵɵelementEnd();
|
|
56376
|
-
i0.ɵɵelementStart(
|
|
56377
|
-
i0.ɵɵlistener("click", function
|
|
56457
|
+
i0.ɵɵelementStart(17, "button", 37);
|
|
56458
|
+
i0.ɵɵlistener("click", function InitialTargetSettingComponent_Conditional_36_Conditional_31_Template_button_click_17_listener($event) { i0.ɵɵrestoreView(_r8); return i0.ɵɵresetView($event.stopPropagation()); });
|
|
56378
56459
|
i0.ɵɵnamespaceSVG();
|
|
56379
|
-
i0.ɵɵelementStart(
|
|
56380
|
-
i0.ɵɵelement(
|
|
56460
|
+
i0.ɵɵelementStart(18, "svg", 38);
|
|
56461
|
+
i0.ɵɵelement(19, "path", 39);
|
|
56381
56462
|
i0.ɵɵelementEnd()()();
|
|
56382
56463
|
i0.ɵɵnamespaceHTML();
|
|
56383
|
-
i0.ɵɵelementStart(
|
|
56384
|
-
i0.ɵɵ
|
|
56464
|
+
i0.ɵɵelementStart(20, "p", 62);
|
|
56465
|
+
i0.ɵɵconditionalCreate(21, InitialTargetSettingComponent_Conditional_36_Conditional_31_Conditional_21_Template, 1, 2)(22, InitialTargetSettingComponent_Conditional_36_Conditional_31_Conditional_22_Template, 1, 0);
|
|
56385
56466
|
i0.ɵɵelementEnd()()()();
|
|
56386
56467
|
} if (rf & 2) {
|
|
56387
56468
|
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
@@ -56398,15 +56479,15 @@ function InitialTargetSettingComponent_Conditional_36_Conditional_31_Template(rf
|
|
|
56398
56479
|
i0.ɵɵadvance(2);
|
|
56399
56480
|
i0.ɵɵproperty("ngClass", ctx_r0.calculatedSecondaryClasses());
|
|
56400
56481
|
i0.ɵɵadvance();
|
|
56401
|
-
i0.ɵɵ
|
|
56402
|
-
i0.ɵɵadvance(
|
|
56482
|
+
i0.ɵɵconditional(ctx_r0.isTargetValid() ? 11 : 12);
|
|
56483
|
+
i0.ɵɵadvance(4);
|
|
56403
56484
|
i0.ɵɵproperty("ngClass", ctx_r0.calculatedLabelClasses());
|
|
56404
56485
|
i0.ɵɵadvance(2);
|
|
56405
56486
|
i0.ɵɵproperty("ngClass", ctx_r0.infoIconClasses())("libSymphiqTooltip", ctx_r0.additionalGrowthTooltip);
|
|
56406
56487
|
i0.ɵɵadvance(3);
|
|
56407
56488
|
i0.ɵɵproperty("ngClass", ctx_r0.calculatedSecondaryClasses());
|
|
56408
56489
|
i0.ɵɵadvance();
|
|
56409
|
-
i0.ɵɵ
|
|
56490
|
+
i0.ɵɵconditional(ctx_r0.isTargetValid() ? 21 : 22);
|
|
56410
56491
|
} }
|
|
56411
56492
|
function InitialTargetSettingComponent_Conditional_36_Template(rf, ctx) { if (rf & 1) {
|
|
56412
56493
|
i0.ɵɵelementStart(0, "div", 50)(1, "div")(2, "div", 51)(3, "div")(4, "p", 14);
|
|
@@ -56436,7 +56517,7 @@ function InitialTargetSettingComponent_Conditional_36_Template(rf, ctx) { if (rf
|
|
|
56436
56517
|
i0.ɵɵelementStart(28, "p", 62);
|
|
56437
56518
|
i0.ɵɵconditionalCreate(29, InitialTargetSettingComponent_Conditional_36_Conditional_29_Template, 1, 1)(30, InitialTargetSettingComponent_Conditional_36_Conditional_30_Template, 1, 0);
|
|
56438
56519
|
i0.ɵɵelementEnd()()()();
|
|
56439
|
-
i0.ɵɵconditionalCreate(31, InitialTargetSettingComponent_Conditional_36_Conditional_31_Template,
|
|
56520
|
+
i0.ɵɵconditionalCreate(31, InitialTargetSettingComponent_Conditional_36_Conditional_31_Template, 23, 12, "div", 56);
|
|
56440
56521
|
i0.ɵɵelementEnd()()()();
|
|
56441
56522
|
} if (rf & 2) {
|
|
56442
56523
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
@@ -56447,7 +56528,7 @@ function InitialTargetSettingComponent_Conditional_36_Template(rf, ctx) { if (rf
|
|
|
56447
56528
|
i0.ɵɵadvance();
|
|
56448
56529
|
i0.ɵɵtextInterpolate1(" ", ctx_r0.currentYear(), " Revenue Target ");
|
|
56449
56530
|
i0.ɵɵadvance();
|
|
56450
|
-
i0.ɵɵclassProp("text-3xl", ctx_r0.calculationState() !== "results" || ctx_r0.detailsExpanded())
|
|
56531
|
+
i0.ɵɵclassProp("lg:text-3xl", ctx_r0.calculationState() !== "results" || ctx_r0.detailsExpanded());
|
|
56451
56532
|
i0.ɵɵproperty("ngClass", ctx_r0.calculatedValueClasses());
|
|
56452
56533
|
i0.ɵɵadvance();
|
|
56453
56534
|
i0.ɵɵconditional(ctx_r0.calculationState() === "results" && ctx_r0.targets() === undefined && ctx_r0.submittedAbsoluteInput() !== null ? 7 : 8);
|
|
@@ -56476,7 +56557,7 @@ function InitialTargetSettingComponent_Conditional_36_Template(rf, ctx) { if (rf
|
|
|
56476
56557
|
i0.ɵɵadvance();
|
|
56477
56558
|
i0.ɵɵconditional(ctx_r0.isTargetValid() ? 29 : 30);
|
|
56478
56559
|
i0.ɵɵadvance(2);
|
|
56479
|
-
i0.ɵɵconditional(ctx_r0.currentPaceProjection() > 0
|
|
56560
|
+
i0.ɵɵconditional(ctx_r0.currentPaceProjection() > 0 ? 31 : -1);
|
|
56480
56561
|
} }
|
|
56481
56562
|
function InitialTargetSettingComponent_Conditional_37_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
56482
56563
|
i0.ɵɵelement(0, "symphiq-area-chart", 23);
|
|
@@ -57077,7 +57158,7 @@ class InitialTargetSettingComponent {
|
|
|
57077
57158
|
let _t;
|
|
57078
57159
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.absoluteInputRef = _t.first);
|
|
57079
57160
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.percentageInputRef = _t.first);
|
|
57080
|
-
} }, 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: 42, vars: 44, 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, "submitClick", "cancelClick", "viewMode", "isValid", "isSubmitting", "validationMessage", "buttonText", "showCancelButton"], ["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", 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, "viewMode", "calculations", "pacingMetrics"]], template: function InitialTargetSettingComponent_Template(rf, ctx) { if (rf & 1) {
|
|
57161
|
+
} }, 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: 42, vars: 44, 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, "submitClick", "cancelClick", "viewMode", "isValid", "isSubmitting", "validationMessage", "buttonText", "showCancelButton"], ["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, "viewMode", "calculations", "pacingMetrics"]], template: function InitialTargetSettingComponent_Template(rf, ctx) { if (rf & 1) {
|
|
57081
57162
|
i0.ɵɵelementStart(0, "div", 2);
|
|
57082
57163
|
i0.ɵɵelement(1, "symphiq-tooltip-container");
|
|
57083
57164
|
i0.ɵɵelementStart(2, "div", 3);
|
|
@@ -57113,7 +57194,7 @@ class InitialTargetSettingComponent {
|
|
|
57113
57194
|
i0.ɵɵconditionalCreate(32, InitialTargetSettingComponent_Conditional_32_Template, 1, 5, "symphiq-area-chart", 23)(33, InitialTargetSettingComponent_Conditional_33_Template, 3, 1, "div", 24);
|
|
57114
57195
|
i0.ɵɵelementEnd()()()()();
|
|
57115
57196
|
i0.ɵɵelementStart(34, "div", 25)(35, "div", 26);
|
|
57116
|
-
i0.ɵɵconditionalCreate(36, InitialTargetSettingComponent_Conditional_36_Template, 32,
|
|
57197
|
+
i0.ɵɵconditionalCreate(36, InitialTargetSettingComponent_Conditional_36_Template, 32, 23, "div", 27);
|
|
57117
57198
|
i0.ɵɵelementEnd()()();
|
|
57118
57199
|
i0.ɵɵconditionalCreate(37, InitialTargetSettingComponent_Conditional_37_Template, 6, 3, "div", 28);
|
|
57119
57200
|
i0.ɵɵelementEnd()();
|
|
@@ -57126,7 +57207,7 @@ class InitialTargetSettingComponent {
|
|
|
57126
57207
|
} if (rf & 2) {
|
|
57127
57208
|
i0.ɵɵadvance(2);
|
|
57128
57209
|
i0.ɵɵstyleProp("top", ctx.calculationState() === "results" ? "148px" : "auto");
|
|
57129
|
-
i0.ɵɵclassProp("cursor-pointer", ctx.calculationState() === "results")("sticky", ctx.calculationState() === "results")("z-30", ctx.calculationState() === "results");
|
|
57210
|
+
i0.ɵɵclassProp("cursor-pointer", ctx.calculationState() === "results")("lg:sticky", ctx.calculationState() === "results")("z-30", ctx.calculationState() === "results");
|
|
57130
57211
|
i0.ɵɵproperty("ngClass", ctx.sectionCardClasses(true));
|
|
57131
57212
|
i0.ɵɵadvance(2);
|
|
57132
57213
|
i0.ɵɵproperty("ngClass", ctx.sectionTitleClasses());
|
|
@@ -57194,7 +57275,7 @@ class InitialTargetSettingComponent {
|
|
|
57194
57275
|
<symphiq-tooltip-container />
|
|
57195
57276
|
<div [ngClass]="sectionCardClasses(true)" class="rounded-2xl border shadow-lg p-8"
|
|
57196
57277
|
[class.cursor-pointer]="calculationState() === 'results'"
|
|
57197
|
-
[class.sticky]="calculationState() === 'results'"
|
|
57278
|
+
[class.lg:sticky]="calculationState() === 'results'"
|
|
57198
57279
|
[style.top]="calculationState() === 'results' ? '148px' : 'auto'"
|
|
57199
57280
|
[class.z-30]="calculationState() === 'results'"
|
|
57200
57281
|
(click)="onCardClick()">
|
|
@@ -57377,9 +57458,8 @@ class InitialTargetSettingComponent {
|
|
|
57377
57458
|
<p [ngClass]="calculatedLabelClasses()" class="text-xs font-medium uppercase tracking-wider">
|
|
57378
57459
|
{{ currentYear() }} Revenue Target
|
|
57379
57460
|
</p>
|
|
57380
|
-
<p [ngClass]="calculatedValueClasses()" class="font-bold transition-all duration-300"
|
|
57381
|
-
[class.text-3xl]="calculationState() !== 'results' || detailsExpanded()"
|
|
57382
|
-
[class.text-lg]="calculationState() === 'results' && !detailsExpanded()">
|
|
57461
|
+
<p [ngClass]="calculatedValueClasses()" class="font-bold transition-all duration-300 text-lg"
|
|
57462
|
+
[class.lg:text-3xl]="calculationState() !== 'results' || detailsExpanded()">
|
|
57383
57463
|
@if (calculationState() === 'results' && targets() === undefined && submittedAbsoluteInput() !== null) {
|
|
57384
57464
|
> {{ formatCurrency(submittedAbsoluteInput()!) }}
|
|
57385
57465
|
} @else {
|
|
@@ -57435,7 +57515,7 @@ class InitialTargetSettingComponent {
|
|
|
57435
57515
|
</div>
|
|
57436
57516
|
</div>
|
|
57437
57517
|
|
|
57438
|
-
@if (currentPaceProjection() > 0
|
|
57518
|
+
@if (currentPaceProjection() > 0) {
|
|
57439
57519
|
<div class="relative pt-6 mt-6">
|
|
57440
57520
|
<div class="absolute top-0 left-0 right-0 flex items-center -translate-y-1/2">
|
|
57441
57521
|
<div class="flex-1 h-px" [ngClass]="dividerBorderClasses()"></div>
|
|
@@ -57450,7 +57530,11 @@ class InitialTargetSettingComponent {
|
|
|
57450
57530
|
Gap to Close
|
|
57451
57531
|
</p>
|
|
57452
57532
|
<p [ngClass]="calculatedSecondaryClasses()" class="text-xl font-bold">
|
|
57453
|
-
|
|
57533
|
+
@if (isTargetValid()) {
|
|
57534
|
+
{{ formatCurrency(animatedGapAmount()) }}
|
|
57535
|
+
} @else {
|
|
57536
|
+
--
|
|
57537
|
+
}
|
|
57454
57538
|
</p>
|
|
57455
57539
|
</div>
|
|
57456
57540
|
<div>
|
|
@@ -57472,7 +57556,11 @@ class InitialTargetSettingComponent {
|
|
|
57472
57556
|
</button>
|
|
57473
57557
|
</div>
|
|
57474
57558
|
<p [ngClass]="calculatedSecondaryClasses()" class="text-xl font-bold">
|
|
57475
|
-
|
|
57559
|
+
@if (isTargetValid()) {
|
|
57560
|
+
{{ gapToClose().amount > 0 ? '+' : '' }}{{ formatPercentage(animatedGapPercentage(), 1) }}
|
|
57561
|
+
} @else {
|
|
57562
|
+
--
|
|
57563
|
+
}
|
|
57476
57564
|
</p>
|
|
57477
57565
|
</div>
|
|
57478
57566
|
</div>
|
|
@@ -57561,7 +57649,7 @@ class InitialTargetSettingComponent {
|
|
|
57561
57649
|
type: ViewChild,
|
|
57562
57650
|
args: ['percentageInputRef']
|
|
57563
57651
|
}], 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"] }] }); })();
|
|
57564
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(InitialTargetSettingComponent, { className: "InitialTargetSettingComponent", filePath: "lib/components/revenue-calculator-dashboard/initial-target-setting.component.ts", lineNumber:
|
|
57652
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(InitialTargetSettingComponent, { className: "InitialTargetSettingComponent", filePath: "lib/components/revenue-calculator-dashboard/initial-target-setting.component.ts", lineNumber: 520 }); })();
|
|
57565
57653
|
|
|
57566
57654
|
function IndeterminateSpinnerComponent_For_5_Template(rf, ctx) { if (rf & 1) {
|
|
57567
57655
|
i0.ɵɵelement(0, "div", 5);
|