@eric-emg/symphiq-components 1.2.231 → 1.2.232
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 +368 -316
- package/fesm2022/symphiq-components.mjs.map +1 -1
- package/index.d.ts +58 -1
- package/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/styles.css +41 -9
|
@@ -54795,7 +54795,7 @@ function extractProjectedValue(pacingResponse, metricEnum) {
|
|
|
54795
54795
|
}
|
|
54796
54796
|
|
|
54797
54797
|
function PacingStatusBadgeComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
54798
|
-
i0.ɵɵelementStart(0, "div",
|
|
54798
|
+
i0.ɵɵelementStart(0, "div", 1)(1, "div", 1)(2, "span", 1);
|
|
54799
54799
|
i0.ɵɵtext(3);
|
|
54800
54800
|
i0.ɵɵelementEnd();
|
|
54801
54801
|
i0.ɵɵtext(4);
|
|
@@ -54805,8 +54805,10 @@ function PacingStatusBadgeComponent_Conditional_0_Template(rf, ctx) { if (rf & 1
|
|
|
54805
54805
|
i0.ɵɵelementEnd()()();
|
|
54806
54806
|
} if (rf & 2) {
|
|
54807
54807
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
54808
|
+
i0.ɵɵclassMap(ctx_r0.containerSizeClasses());
|
|
54808
54809
|
i0.ɵɵproperty("ngClass", ctx_r0.containerClasses());
|
|
54809
54810
|
i0.ɵɵadvance();
|
|
54811
|
+
i0.ɵɵclassMap(ctx_r0.overlaySizeClasses());
|
|
54810
54812
|
i0.ɵɵproperty("ngClass", ctx_r0.overlayBadgeClasses());
|
|
54811
54813
|
i0.ɵɵadvance();
|
|
54812
54814
|
i0.ɵɵclassMap(ctx_r0.iconSizeClasses());
|
|
@@ -54821,7 +54823,7 @@ function PacingStatusBadgeComponent_Conditional_0_Template(rf, ctx) { if (rf & 1
|
|
|
54821
54823
|
i0.ɵɵtextInterpolate(ctx_r0.displayTextWithoutPercentage());
|
|
54822
54824
|
} }
|
|
54823
54825
|
function PacingStatusBadgeComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
54824
|
-
i0.ɵɵelementStart(0, "div",
|
|
54826
|
+
i0.ɵɵelementStart(0, "div", 1)(1, "span", 1);
|
|
54825
54827
|
i0.ɵɵtext(2);
|
|
54826
54828
|
i0.ɵɵelementEnd();
|
|
54827
54829
|
i0.ɵɵelementStart(3, "span");
|
|
@@ -54855,6 +54857,12 @@ class PacingStatusBadgeComponent {
|
|
|
54855
54857
|
const info = this.displayInfo();
|
|
54856
54858
|
return `${info.bgClass} ${info.borderClass} border`;
|
|
54857
54859
|
}, ...(ngDevMode ? [{ debugName: "containerClasses" }] : []));
|
|
54860
|
+
this.containerSizeClasses = computed(() => {
|
|
54861
|
+
const compact = this.isCompact();
|
|
54862
|
+
return compact
|
|
54863
|
+
? 'inline-flex flex-row items-center rounded-full pl-1.5 overflow-visible'
|
|
54864
|
+
: 'inline-flex flex-row items-center rounded-full pl-2 overflow-visible';
|
|
54865
|
+
}, ...(ngDevMode ? [{ debugName: "containerSizeClasses" }] : []));
|
|
54858
54866
|
this.badgeClasses = computed(() => {
|
|
54859
54867
|
const info = this.displayInfo();
|
|
54860
54868
|
return `${info.bgClass} ${info.colorClass} ${info.borderClass}`;
|
|
@@ -54863,9 +54871,9 @@ class PacingStatusBadgeComponent {
|
|
|
54863
54871
|
const isCompact = this.isCompact();
|
|
54864
54872
|
const baseClasses = 'inline-flex items-center gap-1.5 font-semibold transition-all';
|
|
54865
54873
|
if (isCompact) {
|
|
54866
|
-
return `${baseClasses} px-2.5 py-
|
|
54874
|
+
return `${baseClasses} px-2.5 py-0.5 text-xs`;
|
|
54867
54875
|
}
|
|
54868
|
-
return `${baseClasses} px-3 py-
|
|
54876
|
+
return `${baseClasses} px-3 py-0.5 text-xs`;
|
|
54869
54877
|
}, ...(ngDevMode ? [{ debugName: "sizeClasses" }] : []));
|
|
54870
54878
|
this.fullBadgeSizeClasses = computed(() => {
|
|
54871
54879
|
const isCompact = this.isCompact();
|
|
@@ -54916,15 +54924,32 @@ class PacingStatusBadgeComponent {
|
|
|
54916
54924
|
return textWithoutPercentage;
|
|
54917
54925
|
}, ...(ngDevMode ? [{ debugName: "displayTextWithoutPercentage" }] : []));
|
|
54918
54926
|
this.overlayBadgeClasses = computed(() => {
|
|
54919
|
-
const
|
|
54920
|
-
const
|
|
54921
|
-
|
|
54922
|
-
|
|
54927
|
+
const status = this.status();
|
|
54928
|
+
const isDark = this.viewMode() === ViewModeEnum.DARK;
|
|
54929
|
+
if (status === 'ahead') {
|
|
54930
|
+
return isDark
|
|
54931
|
+
? 'bg-gradient-to-r from-emerald-700 to-emerald-600 text-emerald-100 border-emerald-500'
|
|
54932
|
+
: 'bg-gradient-to-r from-emerald-600 to-emerald-500 text-white border-emerald-400';
|
|
54933
|
+
}
|
|
54934
|
+
if (status === 'on-pace') {
|
|
54935
|
+
return isDark
|
|
54936
|
+
? 'bg-gradient-to-r from-amber-700 to-amber-600 text-amber-100 border-amber-500'
|
|
54937
|
+
: 'bg-gradient-to-r from-amber-600 to-amber-500 text-white border-amber-400';
|
|
54938
|
+
}
|
|
54939
|
+
return isDark
|
|
54940
|
+
? 'bg-gradient-to-r from-red-700 to-red-600 text-red-100 border-red-500'
|
|
54941
|
+
: 'bg-gradient-to-r from-red-600 to-red-500 text-white border-red-400';
|
|
54923
54942
|
}, ...(ngDevMode ? [{ debugName: "overlayBadgeClasses" }] : []));
|
|
54943
|
+
this.overlaySizeClasses = computed(() => {
|
|
54944
|
+
const compact = this.isCompact();
|
|
54945
|
+
return compact
|
|
54946
|
+
? 'px-2 py-1.5 rounded text-sm font-extrabold tracking-tight border shadow-md transition-all duration-200 -my-1 -mr-1 z-10 inline-flex items-center gap-0.5'
|
|
54947
|
+
: 'px-2.5 py-2 rounded-md text-sm font-extrabold tracking-tight border-2 shadow-lg transition-all duration-200 -my-1.5 -mr-1 z-10 inline-flex items-center gap-1';
|
|
54948
|
+
}, ...(ngDevMode ? [{ debugName: "overlaySizeClasses" }] : []));
|
|
54924
54949
|
}
|
|
54925
54950
|
static { this.ɵfac = function PacingStatusBadgeComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PacingStatusBadgeComponent)(); }; }
|
|
54926
|
-
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: [[
|
|
54927
|
-
i0.ɵɵconditionalCreate(0, PacingStatusBadgeComponent_Conditional_0_Template, 8,
|
|
54951
|
+
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: [[3, "ngClass", "class"], [3, "ngClass"]], template: function PacingStatusBadgeComponent_Template(rf, ctx) { if (rf & 1) {
|
|
54952
|
+
i0.ɵɵconditionalCreate(0, PacingStatusBadgeComponent_Conditional_0_Template, 8, 14, "div", 0)(1, PacingStatusBadgeComponent_Conditional_1_Template, 5, 8, "div", 0);
|
|
54928
54953
|
} if (rf & 2) {
|
|
54929
54954
|
i0.ɵɵconditional(ctx.showEmphasizedPercentage() && ctx.hasPercentage() ? 0 : 1);
|
|
54930
54955
|
} }, dependencies: [CommonModule, i1$1.NgClass], encapsulation: 2, changeDetection: 0 }); }
|
|
@@ -54936,59 +54961,173 @@ class PacingStatusBadgeComponent {
|
|
|
54936
54961
|
standalone: true,
|
|
54937
54962
|
imports: [CommonModule],
|
|
54938
54963
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
54939
|
-
template: `
|
|
54940
|
-
@if (showEmphasizedPercentage() && hasPercentage()) {
|
|
54941
|
-
<div [ngClass]="containerClasses()" class="
|
|
54942
|
-
<div [ngClass]="overlayBadgeClasses()"
|
|
54943
|
-
|
|
54944
|
-
|
|
54945
|
-
|
|
54946
|
-
|
|
54947
|
-
|
|
54948
|
-
|
|
54949
|
-
|
|
54950
|
-
|
|
54951
|
-
|
|
54952
|
-
|
|
54953
|
-
|
|
54954
|
-
|
|
54955
|
-
|
|
54956
|
-
|
|
54957
|
-
[
|
|
54958
|
-
|
|
54959
|
-
|
|
54960
|
-
|
|
54961
|
-
|
|
54962
|
-
</span>
|
|
54963
|
-
|
|
54964
|
-
|
|
54965
|
-
}
|
|
54964
|
+
template: `
|
|
54965
|
+
@if (showEmphasizedPercentage() && hasPercentage()) {
|
|
54966
|
+
<div [ngClass]="containerClasses()" [class]="containerSizeClasses()">
|
|
54967
|
+
<div [ngClass]="overlayBadgeClasses()" [class]="overlaySizeClasses()">
|
|
54968
|
+
<span [ngClass]="iconClasses()" [class]="iconSizeClasses()">
|
|
54969
|
+
{{ iconSymbol() }}
|
|
54970
|
+
</span>
|
|
54971
|
+
{{ extractPercentage() }}
|
|
54972
|
+
</div>
|
|
54973
|
+
<div
|
|
54974
|
+
[class]="sizeClasses()"
|
|
54975
|
+
>
|
|
54976
|
+
<span>{{ displayTextWithoutPercentage() }}</span>
|
|
54977
|
+
</div>
|
|
54978
|
+
</div>
|
|
54979
|
+
} @else {
|
|
54980
|
+
<div
|
|
54981
|
+
[ngClass]="badgeClasses()"
|
|
54982
|
+
[class]="fullBadgeSizeClasses()"
|
|
54983
|
+
>
|
|
54984
|
+
<span [ngClass]="iconClasses()" [class]="iconSizeClasses()">
|
|
54985
|
+
{{ iconSymbol() }}
|
|
54986
|
+
</span>
|
|
54987
|
+
<span>{{ displayText() }}</span>
|
|
54988
|
+
</div>
|
|
54989
|
+
}
|
|
54966
54990
|
`
|
|
54967
54991
|
}]
|
|
54968
54992
|
}], 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 }] }] }); })();
|
|
54969
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PacingStatusBadgeComponent, { className: "PacingStatusBadgeComponent", filePath: "lib/components/revenue-calculator-dashboard/pacing-status-badge.component.ts", lineNumber:
|
|
54993
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PacingStatusBadgeComponent, { className: "PacingStatusBadgeComponent", filePath: "lib/components/revenue-calculator-dashboard/pacing-status-badge.component.ts", lineNumber: 39 }); })();
|
|
54994
|
+
|
|
54995
|
+
class TargetChangeBadgeComponent {
|
|
54996
|
+
constructor() {
|
|
54997
|
+
this.viewMode = input(ViewModeEnum.LIGHT, ...(ngDevMode ? [{ debugName: "viewMode" }] : []));
|
|
54998
|
+
this.percentageChange = input(0, ...(ngDevMode ? [{ debugName: "percentageChange" }] : []));
|
|
54999
|
+
this.metric = input('', ...(ngDevMode ? [{ debugName: "metric" }] : []));
|
|
55000
|
+
this.priorYear = input(new Date().getFullYear() - 1, ...(ngDevMode ? [{ debugName: "priorYear" }] : []));
|
|
55001
|
+
this.isCompact = input(false, ...(ngDevMode ? [{ debugName: "isCompact" }] : []));
|
|
55002
|
+
this.isDark = computed(() => this.viewMode() === ViewModeEnum.DARK, ...(ngDevMode ? [{ debugName: "isDark" }] : []));
|
|
55003
|
+
this.isIncreaseBad = computed(() => {
|
|
55004
|
+
const metricStr = this.metric();
|
|
55005
|
+
if (!metricStr)
|
|
55006
|
+
return false;
|
|
55007
|
+
return MetricEnumUtil.increaseBad(metricStr);
|
|
55008
|
+
}, ...(ngDevMode ? [{ debugName: "isIncreaseBad" }] : []));
|
|
55009
|
+
this.iconSymbol = computed(() => {
|
|
55010
|
+
const change = this.percentageChange();
|
|
55011
|
+
if (change > 0)
|
|
55012
|
+
return '↗';
|
|
55013
|
+
if (change < 0)
|
|
55014
|
+
return '↘';
|
|
55015
|
+
return '→';
|
|
55016
|
+
}, ...(ngDevMode ? [{ debugName: "iconSymbol" }] : []));
|
|
55017
|
+
this.percentageText = computed(() => {
|
|
55018
|
+
const sign = this.isIncreaseBad() ? '' : '+';
|
|
55019
|
+
const absValue = Math.abs(this.percentageChange());
|
|
55020
|
+
return `${sign}${formatPercentage(absValue, 1)}`;
|
|
55021
|
+
}, ...(ngDevMode ? [{ debugName: "percentageText" }] : []));
|
|
55022
|
+
this.descriptionText = computed(() => {
|
|
55023
|
+
const action = this.isIncreaseBad() ? 'decrease from' : 'increase over';
|
|
55024
|
+
return `${action} ${this.priorYear()}`;
|
|
55025
|
+
}, ...(ngDevMode ? [{ debugName: "descriptionText" }] : []));
|
|
55026
|
+
this.containerClasses = computed(() => {
|
|
55027
|
+
const dark = this.isDark();
|
|
55028
|
+
return dark
|
|
55029
|
+
? 'bg-purple-500/30 border-purple-400/30'
|
|
55030
|
+
: 'bg-purple-100 border-purple-300';
|
|
55031
|
+
}, ...(ngDevMode ? [{ debugName: "containerClasses" }] : []));
|
|
55032
|
+
this.containerSizeClasses = computed(() => {
|
|
55033
|
+
const compact = this.isCompact();
|
|
55034
|
+
return compact
|
|
55035
|
+
? 'inline-flex flex-row items-center rounded-full border pl-1.5 overflow-visible'
|
|
55036
|
+
: 'inline-flex flex-row items-center rounded-full border pl-2 overflow-visible';
|
|
55037
|
+
}, ...(ngDevMode ? [{ debugName: "containerSizeClasses" }] : []));
|
|
55038
|
+
this.overlayClasses = computed(() => {
|
|
55039
|
+
const dark = this.isDark();
|
|
55040
|
+
return dark
|
|
55041
|
+
? 'bg-gradient-to-r from-purple-700 to-purple-600 text-purple-100 border-purple-500'
|
|
55042
|
+
: 'bg-gradient-to-r from-purple-600 to-purple-500 text-white border-purple-400';
|
|
55043
|
+
}, ...(ngDevMode ? [{ debugName: "overlayClasses" }] : []));
|
|
55044
|
+
this.overlaySizeClasses = computed(() => {
|
|
55045
|
+
const compact = this.isCompact();
|
|
55046
|
+
return compact
|
|
55047
|
+
? 'px-2 py-1.5 rounded text-sm font-extrabold tracking-tight border shadow-md transition-all duration-200 -my-1 -mr-1 z-10 inline-flex items-center gap-0.5'
|
|
55048
|
+
: 'px-2.5 py-2 rounded-md font-extrabold text-base tracking-tight border-2 shadow-lg transition-all duration-200 -my-1.5 -mr-1 z-10 inline-flex items-center gap-1';
|
|
55049
|
+
}, ...(ngDevMode ? [{ debugName: "overlaySizeClasses" }] : []));
|
|
55050
|
+
this.iconSizeClass = computed(() => {
|
|
55051
|
+
return this.isCompact() ? 'text-sm' : 'text-base';
|
|
55052
|
+
}, ...(ngDevMode ? [{ debugName: "iconSizeClass" }] : []));
|
|
55053
|
+
this.descriptionSizeClasses = computed(() => {
|
|
55054
|
+
const compact = this.isCompact();
|
|
55055
|
+
return compact
|
|
55056
|
+
? 'px-2.5 py-0.5 text-xs font-semibold inline-block'
|
|
55057
|
+
: 'px-3 py-0.5 font-semibold text-xs inline-block';
|
|
55058
|
+
}, ...(ngDevMode ? [{ debugName: "descriptionSizeClasses" }] : []));
|
|
55059
|
+
}
|
|
55060
|
+
static { this.ɵfac = function TargetChangeBadgeComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TargetChangeBadgeComponent)(); }; }
|
|
55061
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TargetChangeBadgeComponent, selectors: [["symphiq-target-change-badge"]], inputs: { viewMode: [1, "viewMode"], percentageChange: [1, "percentageChange"], metric: [1, "metric"], priorYear: [1, "priorYear"], isCompact: [1, "isCompact"] }, decls: 7, vars: 13, consts: [[3, "ngClass"]], template: function TargetChangeBadgeComponent_Template(rf, ctx) { if (rf & 1) {
|
|
55062
|
+
i0.ɵɵelementStart(0, "div", 0)(1, "div", 0)(2, "span");
|
|
55063
|
+
i0.ɵɵtext(3);
|
|
55064
|
+
i0.ɵɵelementEnd();
|
|
55065
|
+
i0.ɵɵtext(4);
|
|
55066
|
+
i0.ɵɵelementEnd();
|
|
55067
|
+
i0.ɵɵelementStart(5, "div");
|
|
55068
|
+
i0.ɵɵtext(6);
|
|
55069
|
+
i0.ɵɵelementEnd()();
|
|
55070
|
+
} if (rf & 2) {
|
|
55071
|
+
i0.ɵɵclassMap(ctx.containerSizeClasses());
|
|
55072
|
+
i0.ɵɵproperty("ngClass", ctx.containerClasses());
|
|
55073
|
+
i0.ɵɵadvance();
|
|
55074
|
+
i0.ɵɵclassMap(ctx.overlaySizeClasses());
|
|
55075
|
+
i0.ɵɵproperty("ngClass", ctx.overlayClasses());
|
|
55076
|
+
i0.ɵɵadvance();
|
|
55077
|
+
i0.ɵɵclassMap(ctx.iconSizeClass());
|
|
55078
|
+
i0.ɵɵadvance();
|
|
55079
|
+
i0.ɵɵtextInterpolate(ctx.iconSymbol());
|
|
55080
|
+
i0.ɵɵadvance();
|
|
55081
|
+
i0.ɵɵtextInterpolate1(" ", ctx.percentageText(), " ");
|
|
55082
|
+
i0.ɵɵadvance();
|
|
55083
|
+
i0.ɵɵclassMap(ctx.descriptionSizeClasses());
|
|
55084
|
+
i0.ɵɵadvance();
|
|
55085
|
+
i0.ɵɵtextInterpolate1(" ", ctx.descriptionText(), " ");
|
|
55086
|
+
} }, dependencies: [CommonModule, i1$1.NgClass], encapsulation: 2, changeDetection: 0 }); }
|
|
55087
|
+
}
|
|
55088
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TargetChangeBadgeComponent, [{
|
|
55089
|
+
type: Component,
|
|
55090
|
+
args: [{
|
|
55091
|
+
selector: 'symphiq-target-change-badge',
|
|
55092
|
+
standalone: true,
|
|
55093
|
+
imports: [CommonModule],
|
|
55094
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
55095
|
+
template: `
|
|
55096
|
+
<div [ngClass]="containerClasses()" [class]="containerSizeClasses()">
|
|
55097
|
+
<div [ngClass]="overlayClasses()" [class]="overlaySizeClasses()">
|
|
55098
|
+
<span [class]="iconSizeClass()">{{ iconSymbol() }}</span>
|
|
55099
|
+
{{ percentageText() }}
|
|
55100
|
+
</div>
|
|
55101
|
+
<div [class]="descriptionSizeClasses()">
|
|
55102
|
+
{{ descriptionText() }}
|
|
55103
|
+
</div>
|
|
55104
|
+
</div>
|
|
55105
|
+
`
|
|
55106
|
+
}]
|
|
55107
|
+
}], null, { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], percentageChange: [{ type: i0.Input, args: [{ isSignal: true, alias: "percentageChange", required: false }] }], metric: [{ type: i0.Input, args: [{ isSignal: true, alias: "metric", required: false }] }], priorYear: [{ type: i0.Input, args: [{ isSignal: true, alias: "priorYear", required: false }] }], isCompact: [{ type: i0.Input, args: [{ isSignal: true, alias: "isCompact", required: false }] }] }); })();
|
|
55108
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TargetChangeBadgeComponent, { className: "TargetChangeBadgeComponent", filePath: "lib/components/revenue-calculator-dashboard/target-change-badge.component.ts", lineNumber: 23 }); })();
|
|
54970
55109
|
|
|
54971
55110
|
const _forTrack0$i = ($index, $item) => $item.stageMetric.metric;
|
|
54972
55111
|
const _forTrack1$3 = ($index, $item) => $item.calc.metric;
|
|
54973
55112
|
function FunnelMetricsVisualizationComponent_For_4_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
54974
55113
|
i0.ɵɵelementStart(0, "button", 7);
|
|
54975
55114
|
i0.ɵɵnamespaceSVG();
|
|
54976
|
-
i0.ɵɵelementStart(1, "svg",
|
|
54977
|
-
i0.ɵɵelement(2, "path",
|
|
55115
|
+
i0.ɵɵelementStart(1, "svg", 13);
|
|
55116
|
+
i0.ɵɵelement(2, "path", 14);
|
|
54978
55117
|
i0.ɵɵelementEnd()();
|
|
54979
55118
|
} if (rf & 2) {
|
|
54980
55119
|
const stage_r1 = i0.ɵɵnextContext().$implicit;
|
|
54981
55120
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
54982
55121
|
i0.ɵɵproperty("ngClass", ctx_r1.infoIconClasses())("libSymphiqTooltip", ctx_r1.getMarkdownTooltipContent(stage_r1.stageMetric.description, ctx_r1.getMetricTitle(stage_r1.stageMetric)));
|
|
54983
55122
|
} }
|
|
54984
|
-
function
|
|
55123
|
+
function FunnelMetricsVisualizationComponent_For_4_Conditional_19_Template(rf, ctx) { if (rf & 1) {
|
|
54985
55124
|
i0.ɵɵelementStart(0, "div")(1, "p", 9);
|
|
54986
55125
|
i0.ɵɵtext(2);
|
|
54987
55126
|
i0.ɵɵelementEnd();
|
|
54988
55127
|
i0.ɵɵelementStart(3, "p", 11);
|
|
54989
55128
|
i0.ɵɵtext(4);
|
|
54990
55129
|
i0.ɵɵelementEnd();
|
|
54991
|
-
i0.ɵɵelement(5, "symphiq-pacing-status-badge",
|
|
55130
|
+
i0.ɵɵelement(5, "symphiq-pacing-status-badge", 15);
|
|
54992
55131
|
i0.ɵɵelementEnd();
|
|
54993
55132
|
} if (rf & 2) {
|
|
54994
55133
|
const stage_r1 = i0.ɵɵnextContext().$implicit;
|
|
@@ -55004,25 +55143,25 @@ function FunnelMetricsVisualizationComponent_For_4_Conditional_25_Template(rf, c
|
|
|
55004
55143
|
i0.ɵɵadvance();
|
|
55005
55144
|
i0.ɵɵproperty("viewMode", ctx_r1.viewMode())("pacingPercentage", stage_r1.pacingInfo.pacingPercentage)("status", stage_r1.pacingInfo.status)("showAsFullText", true)("showEmphasizedPercentage", true);
|
|
55006
55145
|
} }
|
|
55007
|
-
function
|
|
55008
|
-
i0.ɵɵelementStart(0, "button",
|
|
55146
|
+
function FunnelMetricsVisualizationComponent_For_4_Conditional_20_For_6_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
55147
|
+
i0.ɵɵelementStart(0, "button", 23);
|
|
55009
55148
|
i0.ɵɵnamespaceSVG();
|
|
55010
|
-
i0.ɵɵelementStart(1, "svg",
|
|
55011
|
-
i0.ɵɵelement(2, "path",
|
|
55149
|
+
i0.ɵɵelementStart(1, "svg", 29);
|
|
55150
|
+
i0.ɵɵelement(2, "path", 14);
|
|
55012
55151
|
i0.ɵɵelementEnd()();
|
|
55013
55152
|
} if (rf & 2) {
|
|
55014
55153
|
const metric_r3 = i0.ɵɵnextContext().$implicit;
|
|
55015
55154
|
const ctx_r1 = i0.ɵɵnextContext(3);
|
|
55016
55155
|
i0.ɵɵproperty("ngClass", ctx_r1.infoIconClasses())("libSymphiqTooltip", ctx_r1.getMarkdownTooltipContent(metric_r3.calc.description, ctx_r1.getMetricTitle(metric_r3.calc)));
|
|
55017
55156
|
} }
|
|
55018
|
-
function
|
|
55019
|
-
i0.ɵɵelementStart(0, "div")(1, "p",
|
|
55157
|
+
function FunnelMetricsVisualizationComponent_For_4_Conditional_20_For_6_Conditional_17_Template(rf, ctx) { if (rf & 1) {
|
|
55158
|
+
i0.ɵɵelementStart(0, "div")(1, "p", 25);
|
|
55020
55159
|
i0.ɵɵtext(2);
|
|
55021
55160
|
i0.ɵɵelementEnd();
|
|
55022
|
-
i0.ɵɵelementStart(3, "p",
|
|
55161
|
+
i0.ɵɵelementStart(3, "p", 27);
|
|
55023
55162
|
i0.ɵɵtext(4);
|
|
55024
55163
|
i0.ɵɵelementEnd();
|
|
55025
|
-
i0.ɵɵelement(5, "symphiq-pacing-status-badge",
|
|
55164
|
+
i0.ɵɵelement(5, "symphiq-pacing-status-badge", 30);
|
|
55026
55165
|
i0.ɵɵelementEnd();
|
|
55027
55166
|
} if (rf & 2) {
|
|
55028
55167
|
const metric_r3 = i0.ɵɵnextContext().$implicit;
|
|
@@ -55038,33 +55177,27 @@ function FunnelMetricsVisualizationComponent_For_4_Conditional_26_For_6_Conditio
|
|
|
55038
55177
|
i0.ɵɵadvance();
|
|
55039
55178
|
i0.ɵɵproperty("viewMode", ctx_r1.viewMode())("pacingPercentage", metric_r3.pacingInfo.pacingPercentage)("status", metric_r3.pacingInfo.status)("showAsFullText", true)("isCompact", true)("showEmphasizedPercentage", true);
|
|
55040
55179
|
} }
|
|
55041
|
-
function
|
|
55042
|
-
i0.ɵɵelementStart(0, "div",
|
|
55180
|
+
function FunnelMetricsVisualizationComponent_For_4_Conditional_20_For_6_Template(rf, ctx) { if (rf & 1) {
|
|
55181
|
+
i0.ɵɵelementStart(0, "div", 20)(1, "div", 21)(2, "p", 22);
|
|
55043
55182
|
i0.ɵɵtext(3);
|
|
55044
55183
|
i0.ɵɵelementEnd();
|
|
55045
|
-
i0.ɵɵconditionalCreate(4,
|
|
55184
|
+
i0.ɵɵconditionalCreate(4, FunnelMetricsVisualizationComponent_For_4_Conditional_20_For_6_Conditional_4_Template, 3, 2, "button", 23);
|
|
55046
55185
|
i0.ɵɵelementEnd();
|
|
55047
|
-
i0.ɵɵelementStart(5, "div",
|
|
55186
|
+
i0.ɵɵelementStart(5, "div", 24)(6, "div")(7, "p", 25);
|
|
55048
55187
|
i0.ɵɵtext(8);
|
|
55049
55188
|
i0.ɵɵelementEnd();
|
|
55050
|
-
i0.ɵɵelementStart(9, "p",
|
|
55189
|
+
i0.ɵɵelementStart(9, "p", 26);
|
|
55051
55190
|
i0.ɵɵtext(10);
|
|
55052
55191
|
i0.ɵɵelementEnd()();
|
|
55053
|
-
i0.ɵɵelementStart(11, "div")(12, "p",
|
|
55192
|
+
i0.ɵɵelementStart(11, "div")(12, "p", 25);
|
|
55054
55193
|
i0.ɵɵtext(13);
|
|
55055
55194
|
i0.ɵɵelementEnd();
|
|
55056
|
-
i0.ɵɵelementStart(14, "p",
|
|
55195
|
+
i0.ɵɵelementStart(14, "p", 27);
|
|
55057
55196
|
i0.ɵɵtext(15);
|
|
55058
55197
|
i0.ɵɵelementEnd();
|
|
55059
|
-
i0.ɵɵ
|
|
55060
|
-
i0.ɵɵtext(19);
|
|
55061
|
-
i0.ɵɵelementEnd();
|
|
55062
|
-
i0.ɵɵtext(20);
|
|
55198
|
+
i0.ɵɵelement(16, "symphiq-target-change-badge", 28);
|
|
55063
55199
|
i0.ɵɵelementEnd();
|
|
55064
|
-
i0.ɵɵ
|
|
55065
|
-
i0.ɵɵtext(22);
|
|
55066
|
-
i0.ɵɵelementEnd()()();
|
|
55067
|
-
i0.ɵɵconditionalCreate(23, FunnelMetricsVisualizationComponent_For_4_Conditional_26_For_6_Conditional_23_Template, 6, 10, "div");
|
|
55200
|
+
i0.ɵɵconditionalCreate(17, FunnelMetricsVisualizationComponent_For_4_Conditional_20_For_6_Conditional_17_Template, 6, 10, "div");
|
|
55068
55201
|
i0.ɵɵelementEnd()();
|
|
55069
55202
|
} if (rf & 2) {
|
|
55070
55203
|
const metric_r3 = ctx.$implicit;
|
|
@@ -55093,25 +55226,17 @@ function FunnelMetricsVisualizationComponent_For_4_Conditional_26_For_6_Template
|
|
|
55093
55226
|
i0.ɵɵadvance();
|
|
55094
55227
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.formatMetricValue(metric_r3.calc.targetValue, metric_r3.calc.metric, false), " ");
|
|
55095
55228
|
i0.ɵɵadvance();
|
|
55096
|
-
i0.ɵɵproperty("
|
|
55097
|
-
i0.ɵɵadvance();
|
|
55098
|
-
i0.ɵɵproperty("ngClass", ctx_r1.overlayBadgeClasses(metric_r3.calc.percentageIncrease, metric_r3.calc.metric, true));
|
|
55099
|
-
i0.ɵɵadvance(2);
|
|
55100
|
-
i0.ɵɵtextInterpolate(ctx_r1.getGrowthIconSymbol(metric_r3.calc.percentageIncrease));
|
|
55101
|
-
i0.ɵɵadvance();
|
|
55102
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r1.getPercentageOnly(metric_r3.calc.percentageIncrease, metric_r3.calc.metric), " ");
|
|
55103
|
-
i0.ɵɵadvance(2);
|
|
55104
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r1.getDescriptionOnly(metric_r3.calc.percentageIncrease, metric_r3.calc.metric), " ");
|
|
55229
|
+
i0.ɵɵproperty("viewMode", ctx_r1.viewMode())("percentageChange", metric_r3.calc.percentageIncrease)("metric", metric_r3.calc.metric)("priorYear", ctx_r1.priorYear())("isCompact", true);
|
|
55105
55230
|
i0.ɵɵadvance();
|
|
55106
|
-
i0.ɵɵconditional(metric_r3.pacingInfo ?
|
|
55231
|
+
i0.ɵɵconditional(metric_r3.pacingInfo ? 17 : -1);
|
|
55107
55232
|
} }
|
|
55108
|
-
function
|
|
55109
|
-
i0.ɵɵelement(0, "div",
|
|
55110
|
-
i0.ɵɵelementStart(1, "div",
|
|
55233
|
+
function FunnelMetricsVisualizationComponent_For_4_Conditional_20_Template(rf, ctx) { if (rf & 1) {
|
|
55234
|
+
i0.ɵɵelement(0, "div", 16);
|
|
55235
|
+
i0.ɵɵelementStart(1, "div", 17)(2, "p", 18);
|
|
55111
55236
|
i0.ɵɵtext(3, " Related Metrics ");
|
|
55112
55237
|
i0.ɵɵelementEnd();
|
|
55113
|
-
i0.ɵɵelementStart(4, "div",
|
|
55114
|
-
i0.ɵɵrepeaterCreate(5,
|
|
55238
|
+
i0.ɵɵelementStart(4, "div", 19);
|
|
55239
|
+
i0.ɵɵrepeaterCreate(5, FunnelMetricsVisualizationComponent_For_4_Conditional_20_For_6_Template, 18, 18, "div", 20, _forTrack1$3);
|
|
55115
55240
|
i0.ɵɵelementEnd()();
|
|
55116
55241
|
} if (rf & 2) {
|
|
55117
55242
|
const stage_r1 = i0.ɵɵnextContext().$implicit;
|
|
@@ -55140,17 +55265,11 @@ function FunnelMetricsVisualizationComponent_For_4_Template(rf, ctx) { if (rf &
|
|
|
55140
55265
|
i0.ɵɵelementStart(16, "p", 11);
|
|
55141
55266
|
i0.ɵɵtext(17);
|
|
55142
55267
|
i0.ɵɵelementEnd();
|
|
55143
|
-
i0.ɵɵ
|
|
55144
|
-
i0.ɵɵtext(21);
|
|
55145
|
-
i0.ɵɵelementEnd();
|
|
55146
|
-
i0.ɵɵtext(22);
|
|
55268
|
+
i0.ɵɵelement(18, "symphiq-target-change-badge", 12);
|
|
55147
55269
|
i0.ɵɵelementEnd();
|
|
55148
|
-
i0.ɵɵ
|
|
55149
|
-
i0.ɵɵtext(24);
|
|
55150
|
-
i0.ɵɵelementEnd()()();
|
|
55151
|
-
i0.ɵɵconditionalCreate(25, FunnelMetricsVisualizationComponent_For_4_Conditional_25_Template, 6, 9, "div");
|
|
55270
|
+
i0.ɵɵconditionalCreate(19, FunnelMetricsVisualizationComponent_For_4_Conditional_19_Template, 6, 9, "div");
|
|
55152
55271
|
i0.ɵɵelementEnd();
|
|
55153
|
-
i0.ɵɵconditionalCreate(
|
|
55272
|
+
i0.ɵɵconditionalCreate(20, FunnelMetricsVisualizationComponent_For_4_Conditional_20_Template, 7, 2);
|
|
55154
55273
|
i0.ɵɵelementEnd();
|
|
55155
55274
|
} if (rf & 2) {
|
|
55156
55275
|
const stage_r1 = ctx.$implicit;
|
|
@@ -55179,19 +55298,11 @@ function FunnelMetricsVisualizationComponent_For_4_Template(rf, ctx) { if (rf &
|
|
|
55179
55298
|
i0.ɵɵadvance();
|
|
55180
55299
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.formatMetricValue(stage_r1.stageMetric.targetValue, stage_r1.stageMetric.metric, false), " ");
|
|
55181
55300
|
i0.ɵɵadvance();
|
|
55182
|
-
i0.ɵɵproperty("
|
|
55183
|
-
i0.ɵɵadvance();
|
|
55184
|
-
i0.ɵɵproperty("ngClass", ctx_r1.overlayBadgeClasses(stage_r1.stageMetric.percentageIncrease, stage_r1.stageMetric.metric));
|
|
55185
|
-
i0.ɵɵadvance(2);
|
|
55186
|
-
i0.ɵɵtextInterpolate(ctx_r1.getGrowthIconSymbol(stage_r1.stageMetric.percentageIncrease));
|
|
55187
|
-
i0.ɵɵadvance();
|
|
55188
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r1.getPercentageOnly(stage_r1.stageMetric.percentageIncrease, stage_r1.stageMetric.metric), " ");
|
|
55189
|
-
i0.ɵɵadvance(2);
|
|
55190
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r1.getDescriptionOnly(stage_r1.stageMetric.percentageIncrease, stage_r1.stageMetric.metric), " ");
|
|
55301
|
+
i0.ɵɵproperty("viewMode", ctx_r1.viewMode())("percentageChange", stage_r1.stageMetric.percentageIncrease)("metric", stage_r1.stageMetric.metric)("priorYear", ctx_r1.priorYear());
|
|
55191
55302
|
i0.ɵɵadvance();
|
|
55192
|
-
i0.ɵɵconditional(stage_r1.pacingInfo ?
|
|
55303
|
+
i0.ɵɵconditional(stage_r1.pacingInfo ? 19 : -1);
|
|
55193
55304
|
i0.ɵɵadvance();
|
|
55194
|
-
i0.ɵɵconditional(stage_r1.relatedMetrics.length > 0 ?
|
|
55305
|
+
i0.ɵɵconditional(stage_r1.relatedMetrics.length > 0 ? 20 : -1);
|
|
55195
55306
|
} }
|
|
55196
55307
|
class FunnelMetricsVisualizationComponent {
|
|
55197
55308
|
constructor() {
|
|
@@ -55251,21 +55362,6 @@ class FunnelMetricsVisualizationComponent {
|
|
|
55251
55362
|
? 'text-slate-300'
|
|
55252
55363
|
: 'text-slate-600';
|
|
55253
55364
|
}
|
|
55254
|
-
containerBadgeClasses() {
|
|
55255
|
-
return this.viewMode() === ViewModeEnum.DARK
|
|
55256
|
-
? 'bg-purple-500/30 border-purple-400/30'
|
|
55257
|
-
: 'bg-purple-100 border-purple-300';
|
|
55258
|
-
}
|
|
55259
|
-
relatedContainerBadgeClasses() {
|
|
55260
|
-
return this.viewMode() === ViewModeEnum.DARK
|
|
55261
|
-
? 'bg-purple-800/60 border-purple-700/50'
|
|
55262
|
-
: 'bg-purple-50 border-purple-200';
|
|
55263
|
-
}
|
|
55264
|
-
percentageBadgeClasses() {
|
|
55265
|
-
return this.viewMode() === ViewModeEnum.DARK
|
|
55266
|
-
? 'bg-purple-500/30 text-purple-200 border border-purple-400/30'
|
|
55267
|
-
: 'bg-purple-100 text-purple-700 border border-purple-300';
|
|
55268
|
-
}
|
|
55269
55365
|
labelClasses() {
|
|
55270
55366
|
return this.viewMode() === ViewModeEnum.DARK
|
|
55271
55367
|
? 'text-slate-400'
|
|
@@ -55306,11 +55402,6 @@ class FunnelMetricsVisualizationComponent {
|
|
|
55306
55402
|
? 'text-slate-200'
|
|
55307
55403
|
: 'text-slate-800';
|
|
55308
55404
|
}
|
|
55309
|
-
relatedPercentageBadgeClasses() {
|
|
55310
|
-
return this.viewMode() === ViewModeEnum.DARK
|
|
55311
|
-
? 'bg-purple-800/60 text-purple-200'
|
|
55312
|
-
: 'bg-purple-50 text-purple-800 border border-purple-200';
|
|
55313
|
-
}
|
|
55314
55405
|
relatedLabelClasses() {
|
|
55315
55406
|
return this.viewMode() === ViewModeEnum.DARK
|
|
55316
55407
|
? 'text-slate-300'
|
|
@@ -55334,28 +55425,6 @@ class FunnelMetricsVisualizationComponent {
|
|
|
55334
55425
|
formatPercentage(value, decimals) {
|
|
55335
55426
|
return formatPercentage(value, decimals);
|
|
55336
55427
|
}
|
|
55337
|
-
getTargetIncreaseText(percentageIncrease, metric) {
|
|
55338
|
-
const sign = MetricEnumUtil.increaseBad(metric) ? '' : '+';
|
|
55339
|
-
const absValue = Math.abs(percentageIncrease);
|
|
55340
|
-
return `${sign}${formatPercentage(absValue, 1)} increase over ${this.priorYear()}`;
|
|
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
|
-
if (isDark) {
|
|
55353
|
-
return 'bg-purple-500/30 text-purple-200 border-purple-400/30';
|
|
55354
|
-
}
|
|
55355
|
-
else {
|
|
55356
|
-
return 'bg-purple-100 text-purple-700 border-purple-300';
|
|
55357
|
-
}
|
|
55358
|
-
}
|
|
55359
55428
|
formatMetricValue(value, metric, fromUiData = true) {
|
|
55360
55429
|
if (metric.includes('REVENUE')) {
|
|
55361
55430
|
return formatCurrency(value);
|
|
@@ -55381,197 +55450,180 @@ class FunnelMetricsVisualizationComponent {
|
|
|
55381
55450
|
getMarkdownTooltipContent(markdown, title) {
|
|
55382
55451
|
return { title, markdown };
|
|
55383
55452
|
}
|
|
55384
|
-
getGrowthSign(metric) {
|
|
55385
|
-
return MetricEnumUtil.increaseBad(metric) ? '-' : '+';
|
|
55386
|
-
}
|
|
55387
|
-
getGrowthIconSymbol(percentageIncrease) {
|
|
55388
|
-
if (percentageIncrease > 0)
|
|
55389
|
-
return '↗';
|
|
55390
|
-
if (percentageIncrease < 0)
|
|
55391
|
-
return '↘';
|
|
55392
|
-
return '→';
|
|
55393
|
-
}
|
|
55394
55453
|
static { this.ɵfac = function FunnelMetricsVisualizationComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || FunnelMetricsVisualizationComponent)(); }; }
|
|
55395
|
-
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"], [
|
|
55454
|
+
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"], [3, "viewMode", "percentageChange", "metric", "priorYear"], ["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"], [3, "viewMode", "percentageChange", "metric", "priorYear", "isCompact"], ["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) {
|
|
55396
55455
|
i0.ɵɵelementStart(0, "div", 0);
|
|
55397
55456
|
i0.ɵɵelement(1, "symphiq-tooltip-container");
|
|
55398
55457
|
i0.ɵɵelementStart(2, "div", 1);
|
|
55399
|
-
i0.ɵɵrepeaterCreate(3, FunnelMetricsVisualizationComponent_For_4_Template,
|
|
55458
|
+
i0.ɵɵrepeaterCreate(3, FunnelMetricsVisualizationComponent_For_4_Template, 21, 18, "div", 2, _forTrack0$i);
|
|
55400
55459
|
i0.ɵɵelementEnd()();
|
|
55401
55460
|
} if (rf & 2) {
|
|
55402
55461
|
i0.ɵɵadvance(3);
|
|
55403
55462
|
i0.ɵɵrepeater(ctx.funnelStages());
|
|
55404
|
-
} }, dependencies: [CommonModule, i1$1.NgClass, PacingStatusBadgeComponent, TooltipDirective, TooltipContainerComponent], encapsulation: 2, changeDetection: 0 }); }
|
|
55463
|
+
} }, dependencies: [CommonModule, i1$1.NgClass, PacingStatusBadgeComponent, TargetChangeBadgeComponent, TooltipDirective, TooltipContainerComponent], encapsulation: 2, changeDetection: 0 }); }
|
|
55405
55464
|
}
|
|
55406
55465
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FunnelMetricsVisualizationComponent, [{
|
|
55407
55466
|
type: Component,
|
|
55408
55467
|
args: [{
|
|
55409
55468
|
selector: 'symphiq-funnel-metrics-visualization',
|
|
55410
55469
|
standalone: true,
|
|
55411
|
-
imports: [CommonModule, PacingStatusBadgeComponent, TooltipDirective, TooltipContainerComponent],
|
|
55470
|
+
imports: [CommonModule, PacingStatusBadgeComponent, TargetChangeBadgeComponent, TooltipDirective, TooltipContainerComponent],
|
|
55412
55471
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
55413
|
-
template: `
|
|
55414
|
-
<div class="space-y-6">
|
|
55415
|
-
<symphiq-tooltip-container />
|
|
55416
|
-
<div class="space-y-8">
|
|
55417
|
-
@for (stage of funnelStages(); track stage.stageMetric.metric) {
|
|
55418
|
-
<div [ngClass]="stageCardClasses()" class="rounded-xl p-6 border-2 transition-all duration-200">
|
|
55419
|
-
<div class="flex items-start justify-between mb-6">
|
|
55420
|
-
<div class="flex-1">
|
|
55421
|
-
<div class="flex items-center gap-2 mb-1">
|
|
55422
|
-
<h3 [ngClass]="stageTitleClasses()" class="text-lg font-bold leading-tight m-0">
|
|
55423
|
-
{{ getMetricTitle(stage.stageMetric) }}
|
|
55424
|
-
</h3>
|
|
55425
|
-
@if (stage.stageMetric.description) {
|
|
55426
|
-
<button
|
|
55427
|
-
type="button"
|
|
55428
|
-
[ngClass]="infoIconClasses()"
|
|
55429
|
-
class="flex-shrink-0 w-6 h-6 rounded-full inline-flex items-center justify-center transition-colors"
|
|
55430
|
-
[libSymphiqTooltip]="getMarkdownTooltipContent(stage.stageMetric.description, getMetricTitle(stage.stageMetric))"
|
|
55431
|
-
tooltipType="markdown"
|
|
55432
|
-
tooltipPosition="right">
|
|
55433
|
-
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
55434
|
-
<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" />
|
|
55435
|
-
</svg>
|
|
55436
|
-
</button>
|
|
55437
|
-
}
|
|
55438
|
-
</div>
|
|
55439
|
-
</div>
|
|
55440
|
-
</div>
|
|
55441
|
-
|
|
55442
|
-
<div class="grid grid-cols-2 lg:grid-cols-3 gap-6 mb-4">
|
|
55443
|
-
<div>
|
|
55444
|
-
<p [ngClass]="labelClasses()" class="text-xs font-medium uppercase tracking-wider mb-2">
|
|
55445
|
-
{{ priorYear() }} Actual
|
|
55446
|
-
</p>
|
|
55447
|
-
<p [ngClass]="valueClasses()" class="text-2xl font-bold">
|
|
55448
|
-
{{ formatMetricValue(stage.stageMetric.currentValue, stage.stageMetric.metric) }}
|
|
55449
|
-
</p>
|
|
55450
|
-
</div>
|
|
55451
|
-
<div>
|
|
55452
|
-
<p [ngClass]="labelClasses()" class="text-xs font-medium uppercase tracking-wider mb-2">
|
|
55453
|
-
{{ currentYear() }} Target
|
|
55454
|
-
</p>
|
|
55455
|
-
<p [ngClass]="targetValueClasses()" class="text-2xl font-bold mb-3">
|
|
55456
|
-
{{ formatMetricValue(stage.stageMetric.targetValue, stage.stageMetric.metric, false) }}
|
|
55457
|
-
</p>
|
|
55458
|
-
<
|
|
55459
|
-
|
|
55460
|
-
|
|
55461
|
-
|
|
55462
|
-
|
|
55463
|
-
|
|
55464
|
-
|
|
55465
|
-
|
|
55466
|
-
|
|
55467
|
-
|
|
55468
|
-
|
|
55469
|
-
|
|
55470
|
-
|
|
55471
|
-
|
|
55472
|
-
|
|
55473
|
-
|
|
55474
|
-
|
|
55475
|
-
|
|
55476
|
-
|
|
55477
|
-
|
|
55478
|
-
[
|
|
55479
|
-
|
|
55480
|
-
|
|
55481
|
-
|
|
55482
|
-
|
|
55483
|
-
|
|
55484
|
-
|
|
55485
|
-
|
|
55486
|
-
|
|
55487
|
-
|
|
55488
|
-
|
|
55489
|
-
|
|
55490
|
-
|
|
55491
|
-
|
|
55492
|
-
|
|
55493
|
-
|
|
55494
|
-
|
|
55495
|
-
|
|
55496
|
-
|
|
55497
|
-
|
|
55498
|
-
|
|
55499
|
-
|
|
55500
|
-
|
|
55501
|
-
|
|
55502
|
-
|
|
55503
|
-
|
|
55504
|
-
|
|
55505
|
-
|
|
55506
|
-
class="
|
|
55507
|
-
|
|
55508
|
-
|
|
55509
|
-
|
|
55510
|
-
|
|
55511
|
-
|
|
55512
|
-
|
|
55513
|
-
|
|
55514
|
-
|
|
55515
|
-
|
|
55516
|
-
|
|
55517
|
-
|
|
55518
|
-
|
|
55519
|
-
|
|
55520
|
-
|
|
55521
|
-
|
|
55522
|
-
|
|
55523
|
-
|
|
55524
|
-
|
|
55525
|
-
|
|
55526
|
-
|
|
55527
|
-
|
|
55528
|
-
|
|
55529
|
-
|
|
55530
|
-
|
|
55531
|
-
|
|
55532
|
-
|
|
55533
|
-
|
|
55534
|
-
|
|
55535
|
-
|
|
55536
|
-
|
|
55537
|
-
|
|
55538
|
-
<
|
|
55539
|
-
{{
|
|
55540
|
-
</
|
|
55541
|
-
|
|
55542
|
-
|
|
55543
|
-
|
|
55544
|
-
|
|
55545
|
-
|
|
55546
|
-
|
|
55547
|
-
|
|
55548
|
-
|
|
55549
|
-
|
|
55550
|
-
|
|
55551
|
-
|
|
55552
|
-
|
|
55553
|
-
|
|
55554
|
-
|
|
55555
|
-
|
|
55556
|
-
|
|
55557
|
-
|
|
55558
|
-
|
|
55559
|
-
|
|
55560
|
-
|
|
55561
|
-
|
|
55562
|
-
|
|
55563
|
-
|
|
55564
|
-
</div>
|
|
55565
|
-
</div>
|
|
55566
|
-
}
|
|
55567
|
-
</div>
|
|
55568
|
-
}
|
|
55569
|
-
</div>
|
|
55570
|
-
</div>
|
|
55472
|
+
template: `
|
|
55473
|
+
<div class="space-y-6">
|
|
55474
|
+
<symphiq-tooltip-container />
|
|
55475
|
+
<div class="space-y-8">
|
|
55476
|
+
@for (stage of funnelStages(); track stage.stageMetric.metric) {
|
|
55477
|
+
<div [ngClass]="stageCardClasses()" class="rounded-xl p-6 border-2 transition-all duration-200">
|
|
55478
|
+
<div class="flex items-start justify-between mb-6">
|
|
55479
|
+
<div class="flex-1">
|
|
55480
|
+
<div class="flex items-center gap-2 mb-1">
|
|
55481
|
+
<h3 [ngClass]="stageTitleClasses()" class="text-lg font-bold leading-tight m-0">
|
|
55482
|
+
{{ getMetricTitle(stage.stageMetric) }}
|
|
55483
|
+
</h3>
|
|
55484
|
+
@if (stage.stageMetric.description) {
|
|
55485
|
+
<button
|
|
55486
|
+
type="button"
|
|
55487
|
+
[ngClass]="infoIconClasses()"
|
|
55488
|
+
class="flex-shrink-0 w-6 h-6 rounded-full inline-flex items-center justify-center transition-colors"
|
|
55489
|
+
[libSymphiqTooltip]="getMarkdownTooltipContent(stage.stageMetric.description, getMetricTitle(stage.stageMetric))"
|
|
55490
|
+
tooltipType="markdown"
|
|
55491
|
+
tooltipPosition="right">
|
|
55492
|
+
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
55493
|
+
<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" />
|
|
55494
|
+
</svg>
|
|
55495
|
+
</button>
|
|
55496
|
+
}
|
|
55497
|
+
</div>
|
|
55498
|
+
</div>
|
|
55499
|
+
</div>
|
|
55500
|
+
|
|
55501
|
+
<div class="grid grid-cols-2 lg:grid-cols-3 gap-6 mb-4">
|
|
55502
|
+
<div>
|
|
55503
|
+
<p [ngClass]="labelClasses()" class="text-xs font-medium uppercase tracking-wider mb-2">
|
|
55504
|
+
{{ priorYear() }} Actual
|
|
55505
|
+
</p>
|
|
55506
|
+
<p [ngClass]="valueClasses()" class="text-2xl font-bold">
|
|
55507
|
+
{{ formatMetricValue(stage.stageMetric.currentValue, stage.stageMetric.metric) }}
|
|
55508
|
+
</p>
|
|
55509
|
+
</div>
|
|
55510
|
+
<div>
|
|
55511
|
+
<p [ngClass]="labelClasses()" class="text-xs font-medium uppercase tracking-wider mb-2">
|
|
55512
|
+
{{ currentYear() }} Target
|
|
55513
|
+
</p>
|
|
55514
|
+
<p [ngClass]="targetValueClasses()" class="text-2xl font-bold mb-3">
|
|
55515
|
+
{{ formatMetricValue(stage.stageMetric.targetValue, stage.stageMetric.metric, false) }}
|
|
55516
|
+
</p>
|
|
55517
|
+
<symphiq-target-change-badge
|
|
55518
|
+
[viewMode]="viewMode()"
|
|
55519
|
+
[percentageChange]="stage.stageMetric.percentageIncrease"
|
|
55520
|
+
[metric]="stage.stageMetric.metric"
|
|
55521
|
+
[priorYear]="priorYear()"
|
|
55522
|
+
/>
|
|
55523
|
+
</div>
|
|
55524
|
+
@if (stage.pacingInfo) {
|
|
55525
|
+
<div>
|
|
55526
|
+
<p [ngClass]="labelClasses()" class="text-xs font-medium uppercase tracking-wider mb-2">
|
|
55527
|
+
Pace for {{ currentYear() }}
|
|
55528
|
+
</p>
|
|
55529
|
+
<p [ngClass]="projectedValueClasses()" class="text-2xl font-bold mb-3">
|
|
55530
|
+
{{ formatMetricValue(stage.pacingInfo.projectedValue, stage.stageMetric.metric, false) }}
|
|
55531
|
+
</p>
|
|
55532
|
+
<symphiq-pacing-status-badge
|
|
55533
|
+
[viewMode]="viewMode()"
|
|
55534
|
+
[pacingPercentage]="stage.pacingInfo.pacingPercentage"
|
|
55535
|
+
[status]="stage.pacingInfo.status"
|
|
55536
|
+
[showAsFullText]="true"
|
|
55537
|
+
[showEmphasizedPercentage]="true"
|
|
55538
|
+
/>
|
|
55539
|
+
</div>
|
|
55540
|
+
}
|
|
55541
|
+
</div>
|
|
55542
|
+
|
|
55543
|
+
@if (stage.relatedMetrics.length > 0) {
|
|
55544
|
+
<div [ngClass]="dividerClasses()" class="my-4"></div>
|
|
55545
|
+
|
|
55546
|
+
<div class="space-y-3">
|
|
55547
|
+
<p [ngClass]="relatedTitleClasses()" class="text-xs font-semibold uppercase tracking-wider mb-3">
|
|
55548
|
+
Related Metrics
|
|
55549
|
+
</p>
|
|
55550
|
+
<div class="grid gap-3">
|
|
55551
|
+
@for (metric of stage.relatedMetrics; track metric.calc.metric) {
|
|
55552
|
+
<div [ngClass]="relatedMetricCardClasses()" class="p-4 rounded-lg">
|
|
55553
|
+
<div class="flex items-center gap-2 mb-4">
|
|
55554
|
+
<p [ngClass]="relatedMetricNameClasses()" class="text-xs font-semibold leading-tight">
|
|
55555
|
+
{{ getMetricTitle(metric.calc) }}
|
|
55556
|
+
</p>
|
|
55557
|
+
@if (metric.calc.description) {
|
|
55558
|
+
<button
|
|
55559
|
+
type="button"
|
|
55560
|
+
[ngClass]="infoIconClasses()"
|
|
55561
|
+
class="flex-shrink-0 w-5 h-5 rounded-full inline-flex items-center justify-center transition-colors"
|
|
55562
|
+
[libSymphiqTooltip]="getMarkdownTooltipContent(metric.calc.description, getMetricTitle(metric.calc))"
|
|
55563
|
+
tooltipType="markdown"
|
|
55564
|
+
tooltipPosition="right">
|
|
55565
|
+
<svg class="w-3.5 h-3.5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
55566
|
+
<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" />
|
|
55567
|
+
</svg>
|
|
55568
|
+
</button>
|
|
55569
|
+
}
|
|
55570
|
+
</div>
|
|
55571
|
+
<div class="grid grid-cols-2 lg:grid-cols-3 gap-4">
|
|
55572
|
+
<div>
|
|
55573
|
+
<p [ngClass]="relatedLabelClasses()" class="text-xs font-medium uppercase tracking-wider mb-1.5">
|
|
55574
|
+
{{ priorYear() }} Actual
|
|
55575
|
+
</p>
|
|
55576
|
+
<p [ngClass]="relatedValueClasses()" class="text-lg font-bold">
|
|
55577
|
+
{{ formatMetricValue(metric.calc.currentValue, metric.calc.metric) }}
|
|
55578
|
+
</p>
|
|
55579
|
+
</div>
|
|
55580
|
+
<div>
|
|
55581
|
+
<p [ngClass]="relatedLabelClasses()" class="text-xs font-medium uppercase tracking-wider mb-1.5">
|
|
55582
|
+
{{ currentYear() }} Target
|
|
55583
|
+
</p>
|
|
55584
|
+
<p [ngClass]="relatedTargetValueClasses()" class="text-lg font-bold mb-2">
|
|
55585
|
+
{{ formatMetricValue(metric.calc.targetValue, metric.calc.metric, false) }}
|
|
55586
|
+
</p>
|
|
55587
|
+
<symphiq-target-change-badge
|
|
55588
|
+
[viewMode]="viewMode()"
|
|
55589
|
+
[percentageChange]="metric.calc.percentageIncrease"
|
|
55590
|
+
[metric]="metric.calc.metric"
|
|
55591
|
+
[priorYear]="priorYear()"
|
|
55592
|
+
[isCompact]="true"
|
|
55593
|
+
/>
|
|
55594
|
+
</div>
|
|
55595
|
+
@if (metric.pacingInfo) {
|
|
55596
|
+
<div>
|
|
55597
|
+
<p [ngClass]="relatedLabelClasses()" class="text-xs font-medium uppercase tracking-wider mb-1.5">
|
|
55598
|
+
Pace for {{ currentYear() }}
|
|
55599
|
+
</p>
|
|
55600
|
+
<p [ngClass]="relatedProjectedValueClasses()" class="text-lg font-bold mb-2">
|
|
55601
|
+
{{ formatMetricValue(metric.pacingInfo.projectedValue, metric.calc.metric, false) }}
|
|
55602
|
+
</p>
|
|
55603
|
+
<symphiq-pacing-status-badge
|
|
55604
|
+
[viewMode]="viewMode()"
|
|
55605
|
+
[pacingPercentage]="metric.pacingInfo.pacingPercentage"
|
|
55606
|
+
[status]="metric.pacingInfo.status"
|
|
55607
|
+
[showAsFullText]="true"
|
|
55608
|
+
[isCompact]="true"
|
|
55609
|
+
[showEmphasizedPercentage]="true"
|
|
55610
|
+
/>
|
|
55611
|
+
</div>
|
|
55612
|
+
}
|
|
55613
|
+
</div>
|
|
55614
|
+
</div>
|
|
55615
|
+
}
|
|
55616
|
+
</div>
|
|
55617
|
+
</div>
|
|
55618
|
+
}
|
|
55619
|
+
</div>
|
|
55620
|
+
}
|
|
55621
|
+
</div>
|
|
55622
|
+
</div>
|
|
55571
55623
|
`
|
|
55572
55624
|
}]
|
|
55573
55625
|
}], 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 }] }] }); })();
|
|
55574
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FunnelMetricsVisualizationComponent, { className: "FunnelMetricsVisualizationComponent", filePath: "lib/components/revenue-calculator-dashboard/funnel-metrics-visualization.component.ts", lineNumber:
|
|
55626
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FunnelMetricsVisualizationComponent, { className: "FunnelMetricsVisualizationComponent", filePath: "lib/components/revenue-calculator-dashboard/funnel-metrics-visualization.component.ts", lineNumber: 170 }); })();
|
|
55575
55627
|
|
|
55576
55628
|
function StickySubmitBarComponent_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
55577
55629
|
i0.ɵɵelementStart(0, "div", 4);
|
|
@@ -84478,5 +84530,5 @@ var pieChart_component = /*#__PURE__*/Object.freeze({
|
|
|
84478
84530
|
* Generated bundle index. Do not edit.
|
|
84479
84531
|
*/
|
|
84480
84532
|
|
|
84481
|
-
export { AreaChartComponent, BarChartComponent, BreakdownSectionComponent, BusinessAnalysisModalComponent, BusinessProfileSearchService, ChartCardComponent, ChartContainerComponent, ChartThemeService, CircularProgressComponent, CompetitivePositioningSummaryComponent, CompetitorAnalysisCardComponent, ConfettiService, ConfidenceLevelCardComponent, ContentGenerationProgressComponent, ContentGenerationProgressWithConfettiComponent, CrossDashboardRelationshipsService, DataLoaderService, FloatingBackButtonComponent, FloatingTocComponent, FocusAreaDetailCardComponent, FocusAreaExecutiveSummaryComponent, FocusAreaQuestionComponent, FocusAreaToolsModalComponent, FunnelOrderService, GradeBadgeComponent, HeaderScrollService, HierarchyDisplayComponent, HorizontalBarComponent, IconService, IndeterminateSpinnerComponent, InsightCardComponent, JourneyProgressIndicatorComponent, JourneyStepIdEnum, LineChartComponent, MetricCardComponent, MetricExecutiveSummaryComponent, MetricFormatterService, MetricListItemComponent, MetricWelcomeBannerComponent, MobileBottomNavComponent, MobileFABComponent, ModalComponent, ModalService, NapkinVisualPlaceholderComponent, NavigationStateService, OpportunityHighlightBannerComponent, OverallAssessmentComponent, PieChartComponent, ProfileItemCardComponent, ProfileSectionComponent, ProfileSubsectionComponent, RelatedContentSidebarComponent, RevenueCalculatorService, RevenueCalculatorWelcomeBannerComponent, ScrollDepthService, ScrollProgressBarComponent, SearchButtonComponent, SearchModalComponent, SectionDividerComponent, SectionNavigationComponent, ShadowElevationDirective, ShopPlatformEnum, ShopWelcomeBannerComponent, SkeletonBarComponent, SkeletonCardBaseComponent, SkeletonCircleComponent, SkeletonCompetitorCardComponent, SkeletonCustomerSegmentCardComponent, SkeletonFocusAreaCardComponent, SkeletonGenericCardComponent, SkeletonLoaderComponent, SkeletonPriceTierCardComponent, SkeletonProductCategoryCardComponent, SkeletonRegionCardComponent, SkeletonSeasonCardComponent, SymphiqBusinessAnalysisDashboardComponent, SymphiqConnectGaDashboardComponent, SymphiqCreateAccountDashboardComponent, SymphiqFunnelAnalysisDashboardComponent, SymphiqFunnelAnalysisPreviewComponent, SymphiqIconComponent, SymphiqProfileAnalysisDashboardComponent, SymphiqRevenueCalculatorDashboardComponent, SymphiqWelcomeDashboardComponent, TooltipContainerComponent, TooltipDataService, TooltipDirective, TooltipService, ViewModeService, ViewportAnimationDirective, VisualizationContainerComponent, calculateFunnelRatios, calculateMetricTargetsFromRevenue, calculateMetricTargetsFromRevenueReverse, calculateRelatedMetricRatios, generateTargetsFromCalculations, getBadgeLabelClasses, getButtonClasses, getCategoryBadgeClasses, getCategoryColor, getCompetitiveBadgeClasses, getContainerClasses, getFooterClasses, getFunnelStageMetrics, getGradeBadgeClasses, getHeaderClasses, getInsightsBadgeClasses, getInsightsCardClasses, getMetricLabelClasses, getMetricMiniCardClasses, getMetricValueClasses, getNarrativeTextClasses, getRevenueCardClasses, getRevenueIconClasses, getStatusBadgeClasses, getStatusDotClasses, getStatusIconClasses, getStatusSummaryClasses, getSubtitleClasses, getTitleClasses, getTrendClasses, getTrendIconClasses, getTrendValueClasses, groupMetricsByFunnelStage, isLightMode, validateRevenueTarget };
|
|
84533
|
+
export { AreaChartComponent, BarChartComponent, BreakdownSectionComponent, BusinessAnalysisModalComponent, BusinessProfileSearchService, ChartCardComponent, ChartContainerComponent, ChartThemeService, CircularProgressComponent, CompetitivePositioningSummaryComponent, CompetitorAnalysisCardComponent, ConfettiService, ConfidenceLevelCardComponent, ContentGenerationProgressComponent, ContentGenerationProgressWithConfettiComponent, CrossDashboardRelationshipsService, DataLoaderService, FloatingBackButtonComponent, FloatingTocComponent, FocusAreaDetailCardComponent, FocusAreaExecutiveSummaryComponent, FocusAreaQuestionComponent, FocusAreaToolsModalComponent, FunnelOrderService, GradeBadgeComponent, HeaderScrollService, HierarchyDisplayComponent, HorizontalBarComponent, IconService, IndeterminateSpinnerComponent, InsightCardComponent, JourneyProgressIndicatorComponent, JourneyStepIdEnum, LineChartComponent, MetricCardComponent, MetricExecutiveSummaryComponent, MetricFormatterService, MetricListItemComponent, MetricWelcomeBannerComponent, MobileBottomNavComponent, MobileFABComponent, ModalComponent, ModalService, NapkinVisualPlaceholderComponent, NavigationStateService, OpportunityHighlightBannerComponent, OverallAssessmentComponent, PacingStatusBadgeComponent, PieChartComponent, ProfileItemCardComponent, ProfileSectionComponent, ProfileSubsectionComponent, RelatedContentSidebarComponent, RevenueCalculatorService, RevenueCalculatorWelcomeBannerComponent, ScrollDepthService, ScrollProgressBarComponent, SearchButtonComponent, SearchModalComponent, SectionDividerComponent, SectionNavigationComponent, ShadowElevationDirective, ShopPlatformEnum, ShopWelcomeBannerComponent, SkeletonBarComponent, SkeletonCardBaseComponent, SkeletonCircleComponent, SkeletonCompetitorCardComponent, SkeletonCustomerSegmentCardComponent, SkeletonFocusAreaCardComponent, SkeletonGenericCardComponent, SkeletonLoaderComponent, SkeletonPriceTierCardComponent, SkeletonProductCategoryCardComponent, SkeletonRegionCardComponent, SkeletonSeasonCardComponent, SymphiqBusinessAnalysisDashboardComponent, SymphiqConnectGaDashboardComponent, SymphiqCreateAccountDashboardComponent, SymphiqFunnelAnalysisDashboardComponent, SymphiqFunnelAnalysisPreviewComponent, SymphiqIconComponent, SymphiqProfileAnalysisDashboardComponent, SymphiqRevenueCalculatorDashboardComponent, SymphiqWelcomeDashboardComponent, TargetChangeBadgeComponent, TooltipContainerComponent, TooltipDataService, TooltipDirective, TooltipService, ViewModeService, ViewportAnimationDirective, VisualizationContainerComponent, calculateFunnelRatios, calculateMetricTargetsFromRevenue, calculateMetricTargetsFromRevenueReverse, calculateRelatedMetricRatios, generateTargetsFromCalculations, getBadgeLabelClasses, getButtonClasses, getCategoryBadgeClasses, getCategoryColor, getCompetitiveBadgeClasses, getContainerClasses, getFooterClasses, getFunnelStageMetrics, getGradeBadgeClasses, getHeaderClasses, getInsightsBadgeClasses, getInsightsCardClasses, getMetricLabelClasses, getMetricMiniCardClasses, getMetricValueClasses, getNarrativeTextClasses, getRevenueCardClasses, getRevenueIconClasses, getStatusBadgeClasses, getStatusDotClasses, getStatusIconClasses, getStatusSummaryClasses, getSubtitleClasses, getTitleClasses, getTrendClasses, getTrendIconClasses, getTrendValueClasses, groupMetricsByFunnelStage, isLightMode, validateRevenueTarget };
|
|
84482
84534
|
//# sourceMappingURL=symphiq-components.mjs.map
|