@eric-emg/symphiq-components 1.2.227 → 1.2.228
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 +248 -78
- package/fesm2022/symphiq-components.mjs.map +1 -1
- package/package.json +1 -1
- package/styles.css +148 -0
|
@@ -54794,6 +54794,53 @@ function extractProjectedValue(pacingResponse, metricEnum) {
|
|
|
54794
54794
|
return projectedValue;
|
|
54795
54795
|
}
|
|
54796
54796
|
|
|
54797
|
+
function PacingStatusBadgeComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
54798
|
+
i0.ɵɵelementStart(0, "div", 0)(1, "div", 2);
|
|
54799
|
+
i0.ɵɵtext(2);
|
|
54800
|
+
i0.ɵɵelementEnd();
|
|
54801
|
+
i0.ɵɵelementStart(3, "div", 3)(4, "span", 3);
|
|
54802
|
+
i0.ɵɵtext(5);
|
|
54803
|
+
i0.ɵɵelementEnd();
|
|
54804
|
+
i0.ɵɵelementStart(6, "span");
|
|
54805
|
+
i0.ɵɵtext(7);
|
|
54806
|
+
i0.ɵɵelementEnd()()();
|
|
54807
|
+
} if (rf & 2) {
|
|
54808
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
54809
|
+
i0.ɵɵadvance();
|
|
54810
|
+
i0.ɵɵclassMap(ctx_r0.overlayPositionClasses());
|
|
54811
|
+
i0.ɵɵproperty("ngClass", ctx_r0.overlayBadgeClasses());
|
|
54812
|
+
i0.ɵɵadvance();
|
|
54813
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r0.extractPercentage(), " ");
|
|
54814
|
+
i0.ɵɵadvance();
|
|
54815
|
+
i0.ɵɵclassMap(ctx_r0.sizeClasses());
|
|
54816
|
+
i0.ɵɵproperty("ngClass", ctx_r0.badgeClasses());
|
|
54817
|
+
i0.ɵɵadvance();
|
|
54818
|
+
i0.ɵɵclassMap(ctx_r0.iconSizeClasses());
|
|
54819
|
+
i0.ɵɵproperty("ngClass", ctx_r0.iconClasses());
|
|
54820
|
+
i0.ɵɵadvance();
|
|
54821
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r0.iconSymbol(), " ");
|
|
54822
|
+
i0.ɵɵadvance(2);
|
|
54823
|
+
i0.ɵɵtextInterpolate(ctx_r0.displayTextWithoutPercentage());
|
|
54824
|
+
} }
|
|
54825
|
+
function PacingStatusBadgeComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
54826
|
+
i0.ɵɵelementStart(0, "div", 3)(1, "span", 3);
|
|
54827
|
+
i0.ɵɵtext(2);
|
|
54828
|
+
i0.ɵɵelementEnd();
|
|
54829
|
+
i0.ɵɵelementStart(3, "span");
|
|
54830
|
+
i0.ɵɵtext(4);
|
|
54831
|
+
i0.ɵɵelementEnd()();
|
|
54832
|
+
} if (rf & 2) {
|
|
54833
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
54834
|
+
i0.ɵɵclassMap(ctx_r0.sizeClasses());
|
|
54835
|
+
i0.ɵɵproperty("ngClass", ctx_r0.badgeClasses());
|
|
54836
|
+
i0.ɵɵadvance();
|
|
54837
|
+
i0.ɵɵclassMap(ctx_r0.iconSizeClasses());
|
|
54838
|
+
i0.ɵɵproperty("ngClass", ctx_r0.iconClasses());
|
|
54839
|
+
i0.ɵɵadvance();
|
|
54840
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r0.iconSymbol(), " ");
|
|
54841
|
+
i0.ɵɵadvance(2);
|
|
54842
|
+
i0.ɵɵtextInterpolate(ctx_r0.displayText());
|
|
54843
|
+
} }
|
|
54797
54844
|
class PacingStatusBadgeComponent {
|
|
54798
54845
|
constructor() {
|
|
54799
54846
|
this.viewMode = input(ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "viewMode" }] : []));
|
|
@@ -54801,6 +54848,7 @@ class PacingStatusBadgeComponent {
|
|
|
54801
54848
|
this.status = input('on-pace', ...(ngDevMode ? [{ debugName: "status" }] : []));
|
|
54802
54849
|
this.showAsFullText = input(false, ...(ngDevMode ? [{ debugName: "showAsFullText" }] : []));
|
|
54803
54850
|
this.isCompact = input(false, ...(ngDevMode ? [{ debugName: "isCompact" }] : []));
|
|
54851
|
+
this.showEmphasizedPercentage = input(false, ...(ngDevMode ? [{ debugName: "showEmphasizedPercentage" }] : []));
|
|
54804
54852
|
this.displayInfo = computed(() => {
|
|
54805
54853
|
const isDark = this.viewMode() === ViewModeEnum.DARK;
|
|
54806
54854
|
return getPacingDisplayInfo(this.pacingPercentage(), this.status(), isDark);
|
|
@@ -54811,11 +54859,16 @@ class PacingStatusBadgeComponent {
|
|
|
54811
54859
|
}, ...(ngDevMode ? [{ debugName: "badgeClasses" }] : []));
|
|
54812
54860
|
this.sizeClasses = computed(() => {
|
|
54813
54861
|
const isCompact = this.isCompact();
|
|
54862
|
+
const showEmphasized = this.showEmphasizedPercentage();
|
|
54814
54863
|
const baseClasses = 'inline-flex items-center gap-1.5 rounded-lg border font-semibold transition-all';
|
|
54815
54864
|
if (isCompact) {
|
|
54816
|
-
return
|
|
54865
|
+
return showEmphasized
|
|
54866
|
+
? `${baseClasses} px-2.5 py-1 pt-2.5 text-xs`
|
|
54867
|
+
: `${baseClasses} px-2.5 py-1 text-xs`;
|
|
54817
54868
|
}
|
|
54818
|
-
return
|
|
54869
|
+
return showEmphasized
|
|
54870
|
+
? `${baseClasses} px-3 py-1.5 pt-3 text-xs`
|
|
54871
|
+
: `${baseClasses} px-3 py-1.5 text-xs`;
|
|
54819
54872
|
}, ...(ngDevMode ? [{ debugName: "sizeClasses" }] : []));
|
|
54820
54873
|
this.iconClasses = computed(() => {
|
|
54821
54874
|
return this.displayInfo().colorClass;
|
|
@@ -54837,25 +54890,59 @@ class PacingStatusBadgeComponent {
|
|
|
54837
54890
|
}
|
|
54838
54891
|
return this.displayInfo().displayText;
|
|
54839
54892
|
}, ...(ngDevMode ? [{ debugName: "displayText" }] : []));
|
|
54893
|
+
this.extractPercentage = computed(() => {
|
|
54894
|
+
const fullText = this.showAsFullText()
|
|
54895
|
+
? formatPacingDisplayFullText(this.pacingPercentage(), this.status())
|
|
54896
|
+
: this.displayInfo().displayText;
|
|
54897
|
+
const match = fullText.match(/(\d+\.?\d*%)/);
|
|
54898
|
+
return match ? match[1] : '';
|
|
54899
|
+
}, ...(ngDevMode ? [{ debugName: "extractPercentage" }] : []));
|
|
54900
|
+
this.displayTextWithoutPercentage = computed(() => {
|
|
54901
|
+
const fullText = this.showAsFullText()
|
|
54902
|
+
? formatPacingDisplayFullText(this.pacingPercentage(), this.status())
|
|
54903
|
+
: this.displayInfo().displayText;
|
|
54904
|
+
const textWithoutPercentage = fullText.replace(/\s*at\s*\d+\.?\d*%\s*/, ' ').replace(/\s+/, ' ');
|
|
54905
|
+
return textWithoutPercentage;
|
|
54906
|
+
}, ...(ngDevMode ? [{ debugName: "displayTextWithoutPercentage" }] : []));
|
|
54907
|
+
this.overlayBadgeClasses = computed(() => {
|
|
54908
|
+
const isDark = this.viewMode() === ViewModeEnum.DARK;
|
|
54909
|
+
const status = this.status();
|
|
54910
|
+
const isCompact = this.isCompact();
|
|
54911
|
+
const baseClasses = 'px-2.5 py-0.5 rounded-md font-extrabold tracking-tight';
|
|
54912
|
+
const sizeClass = isCompact ? 'text-xs' : 'text-sm';
|
|
54913
|
+
if (isDark) {
|
|
54914
|
+
if (status === 'ahead') {
|
|
54915
|
+
return `${baseClasses} ${sizeClass} bg-emerald-500/95 text-white border-emerald-400/50 shadow-emerald-500/50`;
|
|
54916
|
+
}
|
|
54917
|
+
else if (status === 'behind') {
|
|
54918
|
+
return `${baseClasses} ${sizeClass} bg-rose-500/95 text-white border-rose-400/50 shadow-rose-500/50`;
|
|
54919
|
+
}
|
|
54920
|
+
else {
|
|
54921
|
+
return `${baseClasses} ${sizeClass} bg-amber-500/95 text-white border-amber-400/50 shadow-amber-500/50`;
|
|
54922
|
+
}
|
|
54923
|
+
}
|
|
54924
|
+
else {
|
|
54925
|
+
if (status === 'ahead') {
|
|
54926
|
+
return `${baseClasses} ${sizeClass} bg-emerald-600 text-white border-emerald-500 shadow-emerald-600/50`;
|
|
54927
|
+
}
|
|
54928
|
+
else if (status === 'behind') {
|
|
54929
|
+
return `${baseClasses} ${sizeClass} bg-rose-600 text-white border-rose-500 shadow-rose-600/50`;
|
|
54930
|
+
}
|
|
54931
|
+
else {
|
|
54932
|
+
return `${baseClasses} ${sizeClass} bg-amber-600 text-white border-amber-500 shadow-amber-600/50`;
|
|
54933
|
+
}
|
|
54934
|
+
}
|
|
54935
|
+
}, ...(ngDevMode ? [{ debugName: "overlayBadgeClasses" }] : []));
|
|
54936
|
+
this.overlayPositionClasses = computed(() => {
|
|
54937
|
+
const isCompact = this.isCompact();
|
|
54938
|
+
return isCompact ? '-top-0.5 left-1.5' : '-top-1 left-2';
|
|
54939
|
+
}, ...(ngDevMode ? [{ debugName: "overlayPositionClasses" }] : []));
|
|
54840
54940
|
}
|
|
54841
54941
|
static { this.ɵfac = function PacingStatusBadgeComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PacingStatusBadgeComponent)(); }; }
|
|
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:
|
|
54843
|
-
i0.ɵɵ
|
|
54844
|
-
i0.ɵɵtext(2);
|
|
54845
|
-
i0.ɵɵelementEnd();
|
|
54846
|
-
i0.ɵɵelementStart(3, "span");
|
|
54847
|
-
i0.ɵɵtext(4);
|
|
54848
|
-
i0.ɵɵelementEnd()();
|
|
54942
|
+
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"], showEmphasizedPercentage: [1, "showEmphasizedPercentage"] }, decls: 2, vars: 1, consts: [[1, "relative", "inline-flex"], [3, "ngClass", "class"], [1, "absolute", "z-10", "border-2", "shadow-lg", "transition-all", "duration-200", 3, "ngClass"], [3, "ngClass"]], template: function PacingStatusBadgeComponent_Template(rf, ctx) { if (rf & 1) {
|
|
54943
|
+
i0.ɵɵconditionalCreate(0, PacingStatusBadgeComponent_Conditional_0_Template, 8, 12, "div", 0)(1, PacingStatusBadgeComponent_Conditional_1_Template, 5, 8, "div", 1);
|
|
54849
54944
|
} if (rf & 2) {
|
|
54850
|
-
i0.ɵɵ
|
|
54851
|
-
i0.ɵɵproperty("ngClass", ctx.badgeClasses());
|
|
54852
|
-
i0.ɵɵadvance();
|
|
54853
|
-
i0.ɵɵclassMap(ctx.iconSizeClasses());
|
|
54854
|
-
i0.ɵɵproperty("ngClass", ctx.iconClasses());
|
|
54855
|
-
i0.ɵɵadvance();
|
|
54856
|
-
i0.ɵɵtextInterpolate1(" ", ctx.iconSymbol(), " ");
|
|
54857
|
-
i0.ɵɵadvance(2);
|
|
54858
|
-
i0.ɵɵtextInterpolate(ctx.displayText());
|
|
54945
|
+
i0.ɵɵconditional(ctx.showEmphasizedPercentage() ? 0 : 1);
|
|
54859
54946
|
} }, dependencies: [CommonModule, i1$1.NgClass], encapsulation: 2, changeDetection: 0 }); }
|
|
54860
54947
|
}
|
|
54861
54948
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PacingStatusBadgeComponent, [{
|
|
@@ -54866,41 +54953,60 @@ class PacingStatusBadgeComponent {
|
|
|
54866
54953
|
imports: [CommonModule],
|
|
54867
54954
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
54868
54955
|
template: `
|
|
54869
|
-
|
|
54870
|
-
|
|
54871
|
-
|
|
54872
|
-
|
|
54873
|
-
|
|
54874
|
-
|
|
54875
|
-
|
|
54876
|
-
|
|
54877
|
-
|
|
54956
|
+
@if (showEmphasizedPercentage()) {
|
|
54957
|
+
<div class="relative inline-flex">
|
|
54958
|
+
<div [ngClass]="overlayBadgeClasses()"
|
|
54959
|
+
[class]="overlayPositionClasses()"
|
|
54960
|
+
class="absolute z-10 border-2 shadow-lg transition-all duration-200">
|
|
54961
|
+
{{ extractPercentage() }}
|
|
54962
|
+
</div>
|
|
54963
|
+
<div
|
|
54964
|
+
[ngClass]="badgeClasses()"
|
|
54965
|
+
[class]="sizeClasses()"
|
|
54966
|
+
>
|
|
54967
|
+
<span [ngClass]="iconClasses()" [class]="iconSizeClasses()">
|
|
54968
|
+
{{ iconSymbol() }}
|
|
54969
|
+
</span>
|
|
54970
|
+
<span>{{ displayTextWithoutPercentage() }}</span>
|
|
54971
|
+
</div>
|
|
54972
|
+
</div>
|
|
54973
|
+
} @else {
|
|
54974
|
+
<div
|
|
54975
|
+
[ngClass]="badgeClasses()"
|
|
54976
|
+
[class]="sizeClasses()"
|
|
54977
|
+
>
|
|
54978
|
+
<span [ngClass]="iconClasses()" [class]="iconSizeClasses()">
|
|
54979
|
+
{{ iconSymbol() }}
|
|
54980
|
+
</span>
|
|
54981
|
+
<span>{{ displayText() }}</span>
|
|
54982
|
+
</div>
|
|
54983
|
+
}
|
|
54878
54984
|
`
|
|
54879
54985
|
}]
|
|
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 }] }] }); })();
|
|
54881
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PacingStatusBadgeComponent, { className: "PacingStatusBadgeComponent", filePath: "lib/components/revenue-calculator-dashboard/pacing-status-badge.component.ts", lineNumber:
|
|
54986
|
+
}], 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 }] }], showEmphasizedPercentage: [{ type: i0.Input, args: [{ isSignal: true, alias: "showEmphasizedPercentage", required: false }] }] }); })();
|
|
54987
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PacingStatusBadgeComponent, { className: "PacingStatusBadgeComponent", filePath: "lib/components/revenue-calculator-dashboard/pacing-status-badge.component.ts", lineNumber: 42 }); })();
|
|
54882
54988
|
|
|
54883
54989
|
const _forTrack0$i = ($index, $item) => $item.stageMetric.metric;
|
|
54884
54990
|
const _forTrack1$3 = ($index, $item) => $item.calc.metric;
|
|
54885
54991
|
function FunnelMetricsVisualizationComponent_For_4_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
54886
54992
|
i0.ɵɵelementStart(0, "button", 7);
|
|
54887
54993
|
i0.ɵɵnamespaceSVG();
|
|
54888
|
-
i0.ɵɵelementStart(1, "svg",
|
|
54889
|
-
i0.ɵɵelement(2, "path",
|
|
54994
|
+
i0.ɵɵelementStart(1, "svg", 15);
|
|
54995
|
+
i0.ɵɵelement(2, "path", 16);
|
|
54890
54996
|
i0.ɵɵelementEnd()();
|
|
54891
54997
|
} if (rf & 2) {
|
|
54892
54998
|
const stage_r1 = i0.ɵɵnextContext().$implicit;
|
|
54893
54999
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
54894
55000
|
i0.ɵɵproperty("ngClass", ctx_r1.infoIconClasses())("libSymphiqTooltip", ctx_r1.getMarkdownTooltipContent(stage_r1.stageMetric.description, ctx_r1.getMetricTitle(stage_r1.stageMetric)));
|
|
54895
55001
|
} }
|
|
54896
|
-
function
|
|
55002
|
+
function FunnelMetricsVisualizationComponent_For_4_Conditional_23_Template(rf, ctx) { if (rf & 1) {
|
|
54897
55003
|
i0.ɵɵelementStart(0, "div")(1, "p", 9);
|
|
54898
55004
|
i0.ɵɵtext(2);
|
|
54899
55005
|
i0.ɵɵelementEnd();
|
|
54900
55006
|
i0.ɵɵelementStart(3, "p", 11);
|
|
54901
55007
|
i0.ɵɵtext(4);
|
|
54902
55008
|
i0.ɵɵelementEnd();
|
|
54903
|
-
i0.ɵɵelement(5, "symphiq-pacing-status-badge",
|
|
55009
|
+
i0.ɵɵelement(5, "symphiq-pacing-status-badge", 17);
|
|
54904
55010
|
i0.ɵɵelementEnd();
|
|
54905
55011
|
} if (rf & 2) {
|
|
54906
55012
|
const stage_r1 = i0.ɵɵnextContext().$implicit;
|
|
@@ -54914,27 +55020,27 @@ function FunnelMetricsVisualizationComponent_For_4_Conditional_20_Template(rf, c
|
|
|
54914
55020
|
i0.ɵɵadvance();
|
|
54915
55021
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.formatMetricValue(stage_r1.pacingInfo.projectedValue, stage_r1.stageMetric.metric, false), " ");
|
|
54916
55022
|
i0.ɵɵadvance();
|
|
54917
|
-
i0.ɵɵproperty("viewMode", ctx_r1.viewMode())("pacingPercentage", stage_r1.pacingInfo.pacingPercentage)("status", stage_r1.pacingInfo.status)("showAsFullText", true);
|
|
55023
|
+
i0.ɵɵproperty("viewMode", ctx_r1.viewMode())("pacingPercentage", stage_r1.pacingInfo.pacingPercentage)("status", stage_r1.pacingInfo.status)("showAsFullText", true)("showEmphasizedPercentage", true);
|
|
54918
55024
|
} }
|
|
54919
|
-
function
|
|
54920
|
-
i0.ɵɵelementStart(0, "button",
|
|
55025
|
+
function FunnelMetricsVisualizationComponent_For_4_Conditional_24_For_6_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
55026
|
+
i0.ɵɵelementStart(0, "button", 25);
|
|
54921
55027
|
i0.ɵɵnamespaceSVG();
|
|
54922
|
-
i0.ɵɵelementStart(1, "svg",
|
|
54923
|
-
i0.ɵɵelement(2, "path",
|
|
55028
|
+
i0.ɵɵelementStart(1, "svg", 32);
|
|
55029
|
+
i0.ɵɵelement(2, "path", 16);
|
|
54924
55030
|
i0.ɵɵelementEnd()();
|
|
54925
55031
|
} if (rf & 2) {
|
|
54926
55032
|
const metric_r3 = i0.ɵɵnextContext().$implicit;
|
|
54927
55033
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
54928
55034
|
i0.ɵɵproperty("ngClass", ctx_r1.infoIconClasses())("libSymphiqTooltip", ctx_r1.getMarkdownTooltipContent(metric_r3.calc.description, ctx_r1.getMetricTitle(metric_r3.calc)));
|
|
54929
55035
|
} }
|
|
54930
|
-
function
|
|
54931
|
-
i0.ɵɵelementStart(0, "div")(1, "p",
|
|
55036
|
+
function FunnelMetricsVisualizationComponent_For_4_Conditional_24_For_6_Conditional_21_Template(rf, ctx) { if (rf & 1) {
|
|
55037
|
+
i0.ɵɵelementStart(0, "div")(1, "p", 27);
|
|
54932
55038
|
i0.ɵɵtext(2);
|
|
54933
55039
|
i0.ɵɵelementEnd();
|
|
54934
|
-
i0.ɵɵelementStart(3, "p",
|
|
55040
|
+
i0.ɵɵelementStart(3, "p", 29);
|
|
54935
55041
|
i0.ɵɵtext(4);
|
|
54936
55042
|
i0.ɵɵelementEnd();
|
|
54937
|
-
i0.ɵɵelement(5, "symphiq-pacing-status-badge",
|
|
55043
|
+
i0.ɵɵelement(5, "symphiq-pacing-status-badge", 33);
|
|
54938
55044
|
i0.ɵɵelementEnd();
|
|
54939
55045
|
} if (rf & 2) {
|
|
54940
55046
|
const metric_r3 = i0.ɵɵnextContext().$implicit;
|
|
@@ -54948,30 +55054,33 @@ function FunnelMetricsVisualizationComponent_For_4_Conditional_21_For_6_Conditio
|
|
|
54948
55054
|
i0.ɵɵadvance();
|
|
54949
55055
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.formatMetricValue(metric_r3.pacingInfo.projectedValue, metric_r3.calc.metric, false), " ");
|
|
54950
55056
|
i0.ɵɵadvance();
|
|
54951
|
-
i0.ɵɵproperty("viewMode", ctx_r1.viewMode())("pacingPercentage", metric_r3.pacingInfo.pacingPercentage)("status", metric_r3.pacingInfo.status)("showAsFullText", true)("isCompact", true);
|
|
55057
|
+
i0.ɵɵproperty("viewMode", ctx_r1.viewMode())("pacingPercentage", metric_r3.pacingInfo.pacingPercentage)("status", metric_r3.pacingInfo.status)("showAsFullText", true)("isCompact", true)("showEmphasizedPercentage", true);
|
|
54952
55058
|
} }
|
|
54953
|
-
function
|
|
54954
|
-
i0.ɵɵelementStart(0, "div",
|
|
55059
|
+
function FunnelMetricsVisualizationComponent_For_4_Conditional_24_For_6_Template(rf, ctx) { if (rf & 1) {
|
|
55060
|
+
i0.ɵɵelementStart(0, "div", 22)(1, "div", 23)(2, "p", 24);
|
|
54955
55061
|
i0.ɵɵtext(3);
|
|
54956
55062
|
i0.ɵɵelementEnd();
|
|
54957
|
-
i0.ɵɵconditionalCreate(4,
|
|
55063
|
+
i0.ɵɵconditionalCreate(4, FunnelMetricsVisualizationComponent_For_4_Conditional_24_For_6_Conditional_4_Template, 3, 2, "button", 25);
|
|
54958
55064
|
i0.ɵɵelementEnd();
|
|
54959
|
-
i0.ɵɵelementStart(5, "div",
|
|
55065
|
+
i0.ɵɵelementStart(5, "div", 26)(6, "div")(7, "p", 27);
|
|
54960
55066
|
i0.ɵɵtext(8);
|
|
54961
55067
|
i0.ɵɵelementEnd();
|
|
54962
|
-
i0.ɵɵelementStart(9, "p",
|
|
55068
|
+
i0.ɵɵelementStart(9, "p", 28);
|
|
54963
55069
|
i0.ɵɵtext(10);
|
|
54964
55070
|
i0.ɵɵelementEnd()();
|
|
54965
|
-
i0.ɵɵelementStart(11, "div")(12, "p",
|
|
55071
|
+
i0.ɵɵelementStart(11, "div")(12, "p", 27);
|
|
54966
55072
|
i0.ɵɵtext(13);
|
|
54967
55073
|
i0.ɵɵelementEnd();
|
|
54968
|
-
i0.ɵɵelementStart(14, "p",
|
|
55074
|
+
i0.ɵɵelementStart(14, "p", 29);
|
|
54969
55075
|
i0.ɵɵtext(15);
|
|
54970
55076
|
i0.ɵɵelementEnd();
|
|
54971
|
-
i0.ɵɵelementStart(16, "div",
|
|
54972
|
-
i0.ɵɵtext(
|
|
54973
|
-
i0.ɵɵelementEnd()
|
|
54974
|
-
i0.ɵɵ
|
|
55077
|
+
i0.ɵɵelementStart(16, "div", 12)(17, "div", 30);
|
|
55078
|
+
i0.ɵɵtext(18);
|
|
55079
|
+
i0.ɵɵelementEnd();
|
|
55080
|
+
i0.ɵɵelementStart(19, "div", 31);
|
|
55081
|
+
i0.ɵɵtext(20);
|
|
55082
|
+
i0.ɵɵelementEnd()()();
|
|
55083
|
+
i0.ɵɵconditionalCreate(21, FunnelMetricsVisualizationComponent_For_4_Conditional_24_For_6_Conditional_21_Template, 6, 10, "div");
|
|
54975
55084
|
i0.ɵɵelementEnd()();
|
|
54976
55085
|
} if (rf & 2) {
|
|
54977
55086
|
const metric_r3 = ctx.$implicit;
|
|
@@ -54999,20 +55108,24 @@ function FunnelMetricsVisualizationComponent_For_4_Conditional_21_For_6_Template
|
|
|
54999
55108
|
i0.ɵɵproperty("ngClass", ctx_r1.relatedTargetValueClasses());
|
|
55000
55109
|
i0.ɵɵadvance();
|
|
55001
55110
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.formatMetricValue(metric_r3.calc.targetValue, metric_r3.calc.metric, false), " ");
|
|
55111
|
+
i0.ɵɵadvance(2);
|
|
55112
|
+
i0.ɵɵproperty("ngClass", ctx_r1.overlayBadgeClasses(metric_r3.calc.percentageIncrease, metric_r3.calc.metric, true));
|
|
55113
|
+
i0.ɵɵadvance();
|
|
55114
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.getPercentageOnly(metric_r3.calc.percentageIncrease, metric_r3.calc.metric), " ");
|
|
55002
55115
|
i0.ɵɵadvance();
|
|
55003
55116
|
i0.ɵɵproperty("ngClass", ctx_r1.relatedPercentageBadgeClasses());
|
|
55004
55117
|
i0.ɵɵadvance();
|
|
55005
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r1.
|
|
55118
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.getDescriptionOnly(metric_r3.calc.percentageIncrease, metric_r3.calc.metric), " ");
|
|
55006
55119
|
i0.ɵɵadvance();
|
|
55007
|
-
i0.ɵɵconditional(metric_r3.pacingInfo ?
|
|
55120
|
+
i0.ɵɵconditional(metric_r3.pacingInfo ? 21 : -1);
|
|
55008
55121
|
} }
|
|
55009
|
-
function
|
|
55010
|
-
i0.ɵɵelement(0, "div",
|
|
55011
|
-
i0.ɵɵelementStart(1, "div",
|
|
55122
|
+
function FunnelMetricsVisualizationComponent_For_4_Conditional_24_Template(rf, ctx) { if (rf & 1) {
|
|
55123
|
+
i0.ɵɵelement(0, "div", 18);
|
|
55124
|
+
i0.ɵɵelementStart(1, "div", 19)(2, "p", 20);
|
|
55012
55125
|
i0.ɵɵtext(3, " Related Metrics ");
|
|
55013
55126
|
i0.ɵɵelementEnd();
|
|
55014
|
-
i0.ɵɵelementStart(4, "div",
|
|
55015
|
-
i0.ɵɵrepeaterCreate(5,
|
|
55127
|
+
i0.ɵɵelementStart(4, "div", 21);
|
|
55128
|
+
i0.ɵɵrepeaterCreate(5, FunnelMetricsVisualizationComponent_For_4_Conditional_24_For_6_Template, 22, 17, "div", 22, _forTrack1$3);
|
|
55016
55129
|
i0.ɵɵelementEnd()();
|
|
55017
55130
|
} if (rf & 2) {
|
|
55018
55131
|
const stage_r1 = i0.ɵɵnextContext().$implicit;
|
|
@@ -55041,12 +55154,15 @@ function FunnelMetricsVisualizationComponent_For_4_Template(rf, ctx) { if (rf &
|
|
|
55041
55154
|
i0.ɵɵelementStart(16, "p", 11);
|
|
55042
55155
|
i0.ɵɵtext(17);
|
|
55043
55156
|
i0.ɵɵelementEnd();
|
|
55044
|
-
i0.ɵɵelementStart(18, "div", 12);
|
|
55045
|
-
i0.ɵɵtext(
|
|
55046
|
-
i0.ɵɵelementEnd()
|
|
55047
|
-
i0.ɵɵ
|
|
55157
|
+
i0.ɵɵelementStart(18, "div", 12)(19, "div", 13);
|
|
55158
|
+
i0.ɵɵtext(20);
|
|
55159
|
+
i0.ɵɵelementEnd();
|
|
55160
|
+
i0.ɵɵelementStart(21, "div", 14);
|
|
55161
|
+
i0.ɵɵtext(22);
|
|
55162
|
+
i0.ɵɵelementEnd()()();
|
|
55163
|
+
i0.ɵɵconditionalCreate(23, FunnelMetricsVisualizationComponent_For_4_Conditional_23_Template, 6, 9, "div");
|
|
55048
55164
|
i0.ɵɵelementEnd();
|
|
55049
|
-
i0.ɵɵconditionalCreate(
|
|
55165
|
+
i0.ɵɵconditionalCreate(24, FunnelMetricsVisualizationComponent_For_4_Conditional_24_Template, 7, 2);
|
|
55050
55166
|
i0.ɵɵelementEnd();
|
|
55051
55167
|
} if (rf & 2) {
|
|
55052
55168
|
const stage_r1 = ctx.$implicit;
|
|
@@ -55074,14 +55190,18 @@ function FunnelMetricsVisualizationComponent_For_4_Template(rf, ctx) { if (rf &
|
|
|
55074
55190
|
i0.ɵɵproperty("ngClass", ctx_r1.targetValueClasses());
|
|
55075
55191
|
i0.ɵɵadvance();
|
|
55076
55192
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.formatMetricValue(stage_r1.stageMetric.targetValue, stage_r1.stageMetric.metric, false), " ");
|
|
55193
|
+
i0.ɵɵadvance(2);
|
|
55194
|
+
i0.ɵɵproperty("ngClass", ctx_r1.overlayBadgeClasses(stage_r1.stageMetric.percentageIncrease, stage_r1.stageMetric.metric));
|
|
55195
|
+
i0.ɵɵadvance();
|
|
55196
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.getPercentageOnly(stage_r1.stageMetric.percentageIncrease, stage_r1.stageMetric.metric), " ");
|
|
55077
55197
|
i0.ɵɵadvance();
|
|
55078
55198
|
i0.ɵɵproperty("ngClass", ctx_r1.percentageBadgeClasses());
|
|
55079
55199
|
i0.ɵɵadvance();
|
|
55080
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r1.
|
|
55200
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.getDescriptionOnly(stage_r1.stageMetric.percentageIncrease, stage_r1.stageMetric.metric), " ");
|
|
55081
55201
|
i0.ɵɵadvance();
|
|
55082
|
-
i0.ɵɵconditional(stage_r1.pacingInfo ?
|
|
55202
|
+
i0.ɵɵconditional(stage_r1.pacingInfo ? 23 : -1);
|
|
55083
55203
|
i0.ɵɵadvance();
|
|
55084
|
-
i0.ɵɵconditional(stage_r1.relatedMetrics.length > 0 ?
|
|
55204
|
+
i0.ɵɵconditional(stage_r1.relatedMetrics.length > 0 ? 24 : -1);
|
|
55085
55205
|
} }
|
|
55086
55206
|
class FunnelMetricsVisualizationComponent {
|
|
55087
55207
|
constructor() {
|
|
@@ -55219,6 +55339,42 @@ class FunnelMetricsVisualizationComponent {
|
|
|
55219
55339
|
const absValue = Math.abs(percentageIncrease);
|
|
55220
55340
|
return `${sign}${formatPercentage(absValue, 1)} increase over ${this.priorYear()}`;
|
|
55221
55341
|
}
|
|
55342
|
+
getPercentageOnly(percentageIncrease, metric) {
|
|
55343
|
+
const sign = MetricEnumUtil.increaseBad(metric) ? '' : '+';
|
|
55344
|
+
const absValue = Math.abs(percentageIncrease);
|
|
55345
|
+
return `${sign}${formatPercentage(absValue, 1)}`;
|
|
55346
|
+
}
|
|
55347
|
+
getDescriptionOnly(percentageIncrease, metric) {
|
|
55348
|
+
return `increase over ${this.priorYear()}`;
|
|
55349
|
+
}
|
|
55350
|
+
overlayBadgeClasses(percentageIncrease, metric, isCompact = false) {
|
|
55351
|
+
const isDark = this.viewMode() === ViewModeEnum.DARK;
|
|
55352
|
+
const isIncrease = !MetricEnumUtil.increaseBad(metric);
|
|
55353
|
+
if (isDark) {
|
|
55354
|
+
if (isIncrease) {
|
|
55355
|
+
return isCompact
|
|
55356
|
+
? 'bg-emerald-500/95 text-white border-emerald-400/50 shadow-emerald-500/40'
|
|
55357
|
+
: 'bg-emerald-500/95 text-white border-emerald-400/50 shadow-emerald-500/50';
|
|
55358
|
+
}
|
|
55359
|
+
else {
|
|
55360
|
+
return isCompact
|
|
55361
|
+
? 'bg-purple-500/95 text-white border-purple-400/50 shadow-purple-500/40'
|
|
55362
|
+
: 'bg-purple-500/95 text-white border-purple-400/50 shadow-purple-500/50';
|
|
55363
|
+
}
|
|
55364
|
+
}
|
|
55365
|
+
else {
|
|
55366
|
+
if (isIncrease) {
|
|
55367
|
+
return isCompact
|
|
55368
|
+
? 'bg-emerald-600 text-white border-emerald-500 shadow-emerald-600/40'
|
|
55369
|
+
: 'bg-emerald-600 text-white border-emerald-500 shadow-emerald-600/50';
|
|
55370
|
+
}
|
|
55371
|
+
else {
|
|
55372
|
+
return isCompact
|
|
55373
|
+
? 'bg-purple-600 text-white border-purple-500 shadow-purple-600/40'
|
|
55374
|
+
: 'bg-purple-600 text-white border-purple-500 shadow-purple-600/50';
|
|
55375
|
+
}
|
|
55376
|
+
}
|
|
55377
|
+
}
|
|
55222
55378
|
formatMetricValue(value, metric, fromUiData = true) {
|
|
55223
55379
|
if (metric.includes('REVENUE')) {
|
|
55224
55380
|
return formatCurrency(value);
|
|
@@ -55248,11 +55404,11 @@ class FunnelMetricsVisualizationComponent {
|
|
|
55248
55404
|
return MetricEnumUtil.increaseBad(metric) ? '-' : '+';
|
|
55249
55405
|
}
|
|
55250
55406
|
static { this.ɵfac = function FunnelMetricsVisualizationComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || FunnelMetricsVisualizationComponent)(); }; }
|
|
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) {
|
|
55407
|
+
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-2", "lg: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, "relative", "inline-flex"], [1, "absolute", "-top-1", "left-2", "px-2.5", "py-0.5", "rounded-md", "font-extrabold", "text-sm", "tracking-tight", "z-10", "border-2", "shadow-lg", "transition-all", "duration-200", 3, "ngClass"], [1, "px-3", "py-1.5", "pt-3", "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", "showEmphasizedPercentage"], [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-2", "lg: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, "absolute", "-top-0.5", "left-1.5", "px-2", "py-0.5", "rounded", "text-xs", "font-extrabold", "tracking-tight", "z-10", "border", "shadow-md", "transition-all", "duration-200", 3, "ngClass"], [1, "px-2.5", "py-1", "pt-2.5", "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", "showEmphasizedPercentage"]], template: function FunnelMetricsVisualizationComponent_Template(rf, ctx) { if (rf & 1) {
|
|
55252
55408
|
i0.ɵɵelementStart(0, "div", 0);
|
|
55253
55409
|
i0.ɵɵelement(1, "symphiq-tooltip-container");
|
|
55254
55410
|
i0.ɵɵelementStart(2, "div", 1);
|
|
55255
|
-
i0.ɵɵrepeaterCreate(3, FunnelMetricsVisualizationComponent_For_4_Template,
|
|
55411
|
+
i0.ɵɵrepeaterCreate(3, FunnelMetricsVisualizationComponent_For_4_Template, 25, 18, "div", 2, _forTrack0$i);
|
|
55256
55412
|
i0.ɵɵelementEnd()();
|
|
55257
55413
|
} if (rf & 2) {
|
|
55258
55414
|
i0.ɵɵadvance(3);
|
|
@@ -55295,7 +55451,7 @@ class FunnelMetricsVisualizationComponent {
|
|
|
55295
55451
|
</div>
|
|
55296
55452
|
</div>
|
|
55297
55453
|
|
|
55298
|
-
<div class="grid grid-cols-3 gap-6 mb-4">
|
|
55454
|
+
<div class="grid grid-cols-2 lg:grid-cols-3 gap-6 mb-4">
|
|
55299
55455
|
<div>
|
|
55300
55456
|
<p [ngClass]="labelClasses()" class="text-xs font-medium uppercase tracking-wider mb-2">
|
|
55301
55457
|
{{ priorYear() }} Actual
|
|
@@ -55311,8 +55467,14 @@ class FunnelMetricsVisualizationComponent {
|
|
|
55311
55467
|
<p [ngClass]="targetValueClasses()" class="text-2xl font-bold mb-3">
|
|
55312
55468
|
{{ formatMetricValue(stage.stageMetric.targetValue, stage.stageMetric.metric, false) }}
|
|
55313
55469
|
</p>
|
|
55314
|
-
<div
|
|
55315
|
-
|
|
55470
|
+
<div class="relative inline-flex">
|
|
55471
|
+
<div [ngClass]="overlayBadgeClasses(stage.stageMetric.percentageIncrease, stage.stageMetric.metric)"
|
|
55472
|
+
class="absolute -top-1 left-2 px-2.5 py-0.5 rounded-md font-extrabold text-sm tracking-tight z-10 border-2 shadow-lg transition-all duration-200">
|
|
55473
|
+
{{ getPercentageOnly(stage.stageMetric.percentageIncrease, stage.stageMetric.metric) }}
|
|
55474
|
+
</div>
|
|
55475
|
+
<div [ngClass]="percentageBadgeClasses()" class="px-3 py-1.5 pt-3 rounded-lg font-semibold text-xs inline-block">
|
|
55476
|
+
{{ getDescriptionOnly(stage.stageMetric.percentageIncrease, stage.stageMetric.metric) }}
|
|
55477
|
+
</div>
|
|
55316
55478
|
</div>
|
|
55317
55479
|
</div>
|
|
55318
55480
|
@if (stage.pacingInfo) {
|
|
@@ -55328,6 +55490,7 @@ class FunnelMetricsVisualizationComponent {
|
|
|
55328
55490
|
[pacingPercentage]="stage.pacingInfo.pacingPercentage"
|
|
55329
55491
|
[status]="stage.pacingInfo.status"
|
|
55330
55492
|
[showAsFullText]="true"
|
|
55493
|
+
[showEmphasizedPercentage]="true"
|
|
55331
55494
|
/>
|
|
55332
55495
|
</div>
|
|
55333
55496
|
}
|
|
@@ -55361,7 +55524,7 @@ class FunnelMetricsVisualizationComponent {
|
|
|
55361
55524
|
</button>
|
|
55362
55525
|
}
|
|
55363
55526
|
</div>
|
|
55364
|
-
<div class="grid grid-cols-3 gap-4">
|
|
55527
|
+
<div class="grid grid-cols-2 lg:grid-cols-3 gap-4">
|
|
55365
55528
|
<div>
|
|
55366
55529
|
<p [ngClass]="relatedLabelClasses()" class="text-xs font-medium uppercase tracking-wider mb-1.5">
|
|
55367
55530
|
{{ priorYear() }} Actual
|
|
@@ -55377,8 +55540,14 @@ class FunnelMetricsVisualizationComponent {
|
|
|
55377
55540
|
<p [ngClass]="relatedTargetValueClasses()" class="text-lg font-bold mb-2">
|
|
55378
55541
|
{{ formatMetricValue(metric.calc.targetValue, metric.calc.metric, false) }}
|
|
55379
55542
|
</p>
|
|
55380
|
-
<div
|
|
55381
|
-
|
|
55543
|
+
<div class="relative inline-flex">
|
|
55544
|
+
<div [ngClass]="overlayBadgeClasses(metric.calc.percentageIncrease, metric.calc.metric, true)"
|
|
55545
|
+
class="absolute -top-0.5 left-1.5 px-2 py-0.5 rounded text-xs font-extrabold tracking-tight z-10 border shadow-md transition-all duration-200">
|
|
55546
|
+
{{ getPercentageOnly(metric.calc.percentageIncrease, metric.calc.metric) }}
|
|
55547
|
+
</div>
|
|
55548
|
+
<div [ngClass]="relatedPercentageBadgeClasses()" class="px-2.5 py-1 pt-2.5 rounded text-xs font-semibold inline-block">
|
|
55549
|
+
{{ getDescriptionOnly(metric.calc.percentageIncrease, metric.calc.metric) }}
|
|
55550
|
+
</div>
|
|
55382
55551
|
</div>
|
|
55383
55552
|
</div>
|
|
55384
55553
|
@if (metric.pacingInfo) {
|
|
@@ -55395,6 +55564,7 @@ class FunnelMetricsVisualizationComponent {
|
|
|
55395
55564
|
[status]="metric.pacingInfo.status"
|
|
55396
55565
|
[showAsFullText]="true"
|
|
55397
55566
|
[isCompact]="true"
|
|
55567
|
+
[showEmphasizedPercentage]="true"
|
|
55398
55568
|
/>
|
|
55399
55569
|
</div>
|
|
55400
55570
|
}
|
|
@@ -55411,7 +55581,7 @@ class FunnelMetricsVisualizationComponent {
|
|
|
55411
55581
|
`
|
|
55412
55582
|
}]
|
|
55413
55583
|
}], 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 }] }] }); })();
|
|
55414
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FunnelMetricsVisualizationComponent, { className: "FunnelMetricsVisualizationComponent", filePath: "lib/components/revenue-calculator-dashboard/funnel-metrics-visualization.component.ts", lineNumber:
|
|
55584
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FunnelMetricsVisualizationComponent, { className: "FunnelMetricsVisualizationComponent", filePath: "lib/components/revenue-calculator-dashboard/funnel-metrics-visualization.component.ts", lineNumber: 174 }); })();
|
|
55415
55585
|
|
|
55416
55586
|
function StickySubmitBarComponent_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
55417
55587
|
i0.ɵɵelementStart(0, "div", 4);
|