@eric-emg/symphiq-components 1.2.216 → 1.2.218
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 +39 -153
- package/fesm2022/symphiq-components.mjs.map +1 -1
- package/index.d.ts +22 -22
- package/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -2920,18 +2920,9 @@ function calculateRelatedMetricRatios(funnelMetrics, baselineValues) {
|
|
|
2920
2920
|
return ratios;
|
|
2921
2921
|
}
|
|
2922
2922
|
function calculateMetricTargetsFromRevenueReverse(revenueTarget, priorYearRevenue, funnelMetrics, baselineValues) {
|
|
2923
|
-
console.log('\n🔄 === REVERSE REVENUE CALCULATOR START ===');
|
|
2924
|
-
console.log('📊 Inputs:');
|
|
2925
|
-
console.log(' - Revenue Target:', revenueTarget);
|
|
2926
|
-
console.log(' - Prior Year Revenue:', priorYearRevenue);
|
|
2927
|
-
console.log(' - Funnel Metrics Count:', funnelMetrics.length);
|
|
2928
|
-
console.log(' - Baseline Values:', Array.from(baselineValues.entries()));
|
|
2929
2923
|
const revenuePercentageIncrease = ((revenueTarget - priorYearRevenue) / priorYearRevenue) * 100;
|
|
2930
|
-
console.log(' - Revenue % Increase:', revenuePercentageIncrease.toFixed(2) + '%');
|
|
2931
2924
|
const funnelRatios = calculateFunnelRatios(funnelMetrics, baselineValues);
|
|
2932
|
-
console.log('\n📈 Funnel Ratios:', Array.from(funnelRatios.entries()));
|
|
2933
2925
|
const relatedRatios = calculateRelatedMetricRatios(funnelMetrics, baselineValues);
|
|
2934
|
-
console.log('📈 Related Metric Ratios:', Array.from(relatedRatios.entries()));
|
|
2935
2926
|
const sortedFunnelMetrics = [...funnelMetrics].sort((a, b) => {
|
|
2936
2927
|
const aFunnel = a.funnelInd ?? 999;
|
|
2937
2928
|
const bFunnel = b.funnelInd ?? 999;
|
|
@@ -2946,14 +2937,12 @@ function calculateMetricTargetsFromRevenueReverse(revenueTarget, priorYearRevenu
|
|
|
2946
2937
|
.map(fm => fm.relatedMetric)
|
|
2947
2938
|
.filter(Boolean);
|
|
2948
2939
|
const stageTargets = new Map();
|
|
2949
|
-
console.log('\n🎯 Calculating Stage Targets (Reverse Order):');
|
|
2950
2940
|
let currentRevenue = revenueTarget;
|
|
2951
2941
|
for (let i = stages.length - 1; i >= 0; i--) {
|
|
2952
2942
|
const stage = stages[i];
|
|
2953
2943
|
const baseline = baselineValues.get(stage) || 0;
|
|
2954
2944
|
if (i === stages.length - 1) {
|
|
2955
2945
|
stageTargets.set(stage, currentRevenue);
|
|
2956
|
-
console.log(` Stage ${i} (${stage}): ${currentRevenue.toFixed(2)} (Revenue Stage)`);
|
|
2957
2946
|
}
|
|
2958
2947
|
else {
|
|
2959
2948
|
const nextStage = stages[i + 1];
|
|
@@ -2963,17 +2952,14 @@ function calculateMetricTargetsFromRevenueReverse(revenueTarget, priorYearRevenu
|
|
|
2963
2952
|
const nextStageTarget = stageTargets.get(nextStage) || 0;
|
|
2964
2953
|
currentRevenue = nextStageTarget / ratio;
|
|
2965
2954
|
stageTargets.set(stage, currentRevenue);
|
|
2966
|
-
console.log(` Stage ${i} (${stage}): ${currentRevenue.toFixed(2)} (calculated from ${nextStage} with ratio ${ratio.toFixed(4)})`);
|
|
2967
2955
|
}
|
|
2968
2956
|
else {
|
|
2969
2957
|
const increaseNeeded = revenueTarget / baseline;
|
|
2970
2958
|
const calculatedValue = baseline * increaseNeeded;
|
|
2971
2959
|
stageTargets.set(stage, calculatedValue);
|
|
2972
|
-
console.log(` Stage ${i} (${stage}): ${calculatedValue.toFixed(2)} (fallback: baseline * ${increaseNeeded.toFixed(4)})`);
|
|
2973
2960
|
}
|
|
2974
2961
|
}
|
|
2975
2962
|
}
|
|
2976
|
-
console.log('🎯 Final Stage Targets:', Array.from(stageTargets.entries()));
|
|
2977
2963
|
const metricCalculations = [];
|
|
2978
2964
|
const stageGroups = new Map();
|
|
2979
2965
|
sortedFunnelMetrics.forEach(fm => {
|
|
@@ -2984,49 +2970,36 @@ function calculateMetricTargetsFromRevenueReverse(revenueTarget, priorYearRevenu
|
|
|
2984
2970
|
stageGroups.get(fm.funnelMetric).push(fm);
|
|
2985
2971
|
}
|
|
2986
2972
|
});
|
|
2987
|
-
console.log('\n📊 Calculating Individual Metric Targets:');
|
|
2988
2973
|
stageGroups.forEach((metrics, funnelStage) => {
|
|
2989
2974
|
const stageTarget = stageTargets.get(funnelStage);
|
|
2990
2975
|
const stageBaseline = baselineValues.get(funnelStage) || 0;
|
|
2991
2976
|
const stageIncrease = stageTarget ? stageTarget - stageBaseline : 0;
|
|
2992
|
-
console.log(`\n 📍 Funnel Stage: ${funnelStage}`);
|
|
2993
|
-
console.log(` - Stage Target: ${stageTarget?.toFixed(2)}`);
|
|
2994
|
-
console.log(` - Stage Baseline: ${stageBaseline.toFixed(2)}`);
|
|
2995
|
-
console.log(` - Stage Increase: ${stageIncrease.toFixed(2)}`);
|
|
2996
2977
|
metrics.forEach(fm => {
|
|
2997
2978
|
if (!fm.relatedMetric)
|
|
2998
2979
|
return;
|
|
2999
2980
|
const currentValue = baselineValues.get(fm.relatedMetric) || 0;
|
|
3000
2981
|
const isFunnelStage = fm.funnelMetric === fm.relatedMetric;
|
|
3001
|
-
console.log(`\n 🔹 Metric: ${fm.relatedMetric}${isFunnelStage ? ' (STAGE)' : ''}`);
|
|
3002
|
-
console.log(` Current Value: ${currentValue.toFixed(2)}`);
|
|
3003
2982
|
let targetValue;
|
|
3004
2983
|
let percentageIncrease;
|
|
3005
2984
|
if (isFunnelStage && stageTarget !== undefined) {
|
|
3006
2985
|
targetValue = stageTarget;
|
|
3007
2986
|
percentageIncrease = currentValue > 0 ? ((targetValue - currentValue) / currentValue) * 100 : 0;
|
|
3008
|
-
console.log(` Method: Direct Stage Target`);
|
|
3009
2987
|
}
|
|
3010
2988
|
else if (fm.relatedMetric === MetricEnum.BOUNCE_RATE) {
|
|
3011
2989
|
const stageTargetValue = stageTargets.get(funnelStage) || stageBaseline;
|
|
3012
2990
|
const stageIncreaseRatio = stageBaseline > 0 ? stageTargetValue / stageBaseline : 1;
|
|
3013
2991
|
targetValue = currentValue / stageIncreaseRatio;
|
|
3014
2992
|
percentageIncrease = currentValue > 0 ? ((targetValue - currentValue) / currentValue) * 100 : 0;
|
|
3015
|
-
console.log(` Method: Bounce Rate (inverse)`);
|
|
3016
|
-
console.log(` Stage Increase Ratio: ${stageIncreaseRatio.toFixed(4)}`);
|
|
3017
2993
|
}
|
|
3018
2994
|
else if (isDerivedMetric(fm.relatedMetric)) {
|
|
3019
2995
|
targetValue = currentValue;
|
|
3020
2996
|
percentageIncrease = 0;
|
|
3021
|
-
console.log(` Method: Derived Metric (no change)`);
|
|
3022
2997
|
}
|
|
3023
2998
|
else if (isRateMetric(fm.relatedMetric)) {
|
|
3024
2999
|
const stageTargetValue = stageTargets.get(funnelStage) || stageBaseline;
|
|
3025
3000
|
const stageIncreaseRatio = stageBaseline > 0 ? stageTargetValue / stageBaseline : 1;
|
|
3026
3001
|
targetValue = currentValue * stageIncreaseRatio;
|
|
3027
3002
|
percentageIncrease = currentValue > 0 ? ((targetValue - currentValue) / currentValue) * 100 : 0;
|
|
3028
|
-
console.log(` Method: Rate Metric (proportional scaling)`);
|
|
3029
|
-
console.log(` Stage Increase Ratio: ${stageIncreaseRatio.toFixed(4)}`);
|
|
3030
3003
|
}
|
|
3031
3004
|
else {
|
|
3032
3005
|
const ratioKey = `${fm.relatedMetric}_to_${funnelStage}`;
|
|
@@ -3042,23 +3015,14 @@ function calculateMetricTargetsFromRevenueReverse(revenueTarget, priorYearRevenu
|
|
|
3042
3015
|
const metricIncreaseNeeded = impactRatio > 0 ? avgIncreaseNeeded / impactRatio : avgIncreaseNeeded;
|
|
3043
3016
|
targetValue = currentValue + metricIncreaseNeeded;
|
|
3044
3017
|
percentageIncrease = currentValue > 0 ? ((targetValue - currentValue) / currentValue) * 100 : 0;
|
|
3045
|
-
console.log(` Method: Related Metric with Impact Ratio`);
|
|
3046
|
-
console.log(` Num Related Metrics: ${numRelatedMetrics}`);
|
|
3047
|
-
console.log(` Avg Increase Needed: ${avgIncreaseNeeded.toFixed(2)}`);
|
|
3048
|
-
console.log(` Impact Ratio: ${impactRatio.toFixed(4)}`);
|
|
3049
|
-
console.log(` Metric Increase Needed: ${metricIncreaseNeeded.toFixed(2)}`);
|
|
3050
3018
|
}
|
|
3051
3019
|
else {
|
|
3052
3020
|
const stageTargetValue = stageTargets.get(funnelStage) || stageBaseline;
|
|
3053
3021
|
const stageIncreaseRatio = stageBaseline > 0 ? stageTargetValue / stageBaseline : 1;
|
|
3054
3022
|
targetValue = currentValue * stageIncreaseRatio;
|
|
3055
3023
|
percentageIncrease = currentValue > 0 ? ((targetValue - currentValue) / currentValue) * 100 : 0;
|
|
3056
|
-
console.log(` Method: Proportional to Stage`);
|
|
3057
|
-
console.log(` Stage Increase Ratio: ${stageIncreaseRatio.toFixed(4)}`);
|
|
3058
3024
|
}
|
|
3059
3025
|
}
|
|
3060
|
-
console.log(` ✅ Target Value: ${targetValue.toFixed(2)}`);
|
|
3061
|
-
console.log(` ✅ % Increase: ${percentageIncrease.toFixed(2)}%`);
|
|
3062
3026
|
metricCalculations.push({
|
|
3063
3027
|
metric: fm.relatedMetric,
|
|
3064
3028
|
funnelMetric: fm.funnelMetric,
|
|
@@ -3072,34 +3036,19 @@ function calculateMetricTargetsFromRevenueReverse(revenueTarget, priorYearRevenu
|
|
|
3072
3036
|
});
|
|
3073
3037
|
});
|
|
3074
3038
|
});
|
|
3075
|
-
console.log('\n✅ Total Metric Calculations:', metricCalculations.length);
|
|
3076
3039
|
const validation = validateRevenueTarget(revenueTarget, metricCalculations, baselineValues, funnelRatios);
|
|
3077
|
-
console.log('\n🔍 Validation Results:');
|
|
3078
|
-
console.log(' - Target Revenue:', revenueTarget.toFixed(2));
|
|
3079
|
-
console.log(' - Calculated Revenue:', validation.calculatedRevenue.toFixed(2));
|
|
3080
|
-
console.log(' - Difference:', validation.difference.toFixed(2));
|
|
3081
|
-
console.log(' - % Difference:', validation.percentageDifference.toFixed(4) + '%');
|
|
3082
|
-
console.log(' - Within Tolerance:', validation.withinTolerance);
|
|
3083
3040
|
let adjustmentApplied = 0;
|
|
3084
3041
|
if (Math.abs(validation.difference) > 0.01) {
|
|
3085
|
-
console.log('\n⚙️ Applying Precision Adjustment...');
|
|
3086
3042
|
metricCalculations.forEach(calc => {
|
|
3087
3043
|
if (calc.isFunnelStage && calc.metric !== MetricEnum.BOUNCE_RATE) {
|
|
3088
|
-
const oldValue = calc.targetValue;
|
|
3089
3044
|
calc.targetValue += validation.difference / stages.length;
|
|
3090
3045
|
calc.percentageIncrease = calc.currentValue > 0
|
|
3091
3046
|
? ((calc.targetValue - calc.currentValue) / calc.currentValue) * 100
|
|
3092
3047
|
: 0;
|
|
3093
|
-
console.log(` Adjusted ${calc.metric}: ${oldValue.toFixed(2)} → ${calc.targetValue.toFixed(2)}`);
|
|
3094
3048
|
}
|
|
3095
3049
|
});
|
|
3096
3050
|
adjustmentApplied = validation.difference;
|
|
3097
|
-
console.log(' Total Adjustment Applied:', adjustmentApplied.toFixed(2));
|
|
3098
3051
|
}
|
|
3099
|
-
else {
|
|
3100
|
-
console.log('\n✅ No adjustment needed - within tolerance');
|
|
3101
|
-
}
|
|
3102
|
-
console.log('\n🏁 === REVERSE REVENUE CALCULATOR END ===\n');
|
|
3103
3052
|
return {
|
|
3104
3053
|
revenueTarget,
|
|
3105
3054
|
revenuePercentageIncrease,
|
|
@@ -54809,8 +54758,6 @@ function getPacingDisplayInfo(pacingPercentage, status, isDark) {
|
|
|
54809
54758
|
};
|
|
54810
54759
|
}
|
|
54811
54760
|
function calculateMetricPacing(projectedValue, targetValue, increaseBad = false) {
|
|
54812
|
-
console.group(`[PACING] calculateMetricPacing`);
|
|
54813
|
-
console.log('[PACING] Input:', { projectedValue, targetValue, increaseBad });
|
|
54814
54761
|
let pacingPercentage = targetValue > 0
|
|
54815
54762
|
? ((projectedValue - targetValue) / targetValue) * 100
|
|
54816
54763
|
: 0;
|
|
@@ -54818,8 +54765,6 @@ function calculateMetricPacing(projectedValue, targetValue, increaseBad = false)
|
|
|
54818
54765
|
pacingPercentage = -pacingPercentage;
|
|
54819
54766
|
}
|
|
54820
54767
|
const status = calculatePacingStatus(projectedValue, targetValue, increaseBad);
|
|
54821
|
-
console.log('[PACING] Result:', { pacingPercentage, status, projectedValue });
|
|
54822
|
-
console.groupEnd();
|
|
54823
54768
|
return {
|
|
54824
54769
|
pacingPercentage,
|
|
54825
54770
|
status,
|
|
@@ -54827,27 +54772,15 @@ function calculateMetricPacing(projectedValue, targetValue, increaseBad = false)
|
|
|
54827
54772
|
};
|
|
54828
54773
|
}
|
|
54829
54774
|
function extractProjectedValue(pacingResponse, metricEnum) {
|
|
54830
|
-
console.group(`[PACING] extractProjectedValue for ${metricEnum}`);
|
|
54831
54775
|
if (!pacingResponse) {
|
|
54832
|
-
console.log('[PACING] No pacingResponse provided - returning null');
|
|
54833
|
-
console.groupEnd();
|
|
54834
54776
|
return null;
|
|
54835
54777
|
}
|
|
54836
54778
|
const resp = pacingResponse;
|
|
54837
|
-
console.log('[PACING] pacingResponse structure:', {
|
|
54838
|
-
hasProjectedMetricValues: !!resp.projectedMetricValues,
|
|
54839
|
-
projectedMetricValuesCount: resp.projectedMetricValues?.length ?? 0
|
|
54840
|
-
});
|
|
54841
54779
|
const projectedMetric = resp.projectedMetricValues?.find((m) => m.metric === metricEnum);
|
|
54842
|
-
console.log('[PACING] Found projectedMetric for', metricEnum, ':', projectedMetric ? { metric: projectedMetric.metric, value: projectedMetric.value } : null);
|
|
54843
54780
|
if (!projectedMetric?.value) {
|
|
54844
|
-
console.log('[PACING] No projectedMetric found - returning null');
|
|
54845
|
-
console.groupEnd();
|
|
54846
54781
|
return null;
|
|
54847
54782
|
}
|
|
54848
54783
|
const projectedValue = parseFloat(projectedMetric.value);
|
|
54849
|
-
console.log('[PACING] Returning projectedValue:', projectedValue);
|
|
54850
|
-
console.groupEnd();
|
|
54851
54784
|
return projectedValue;
|
|
54852
54785
|
}
|
|
54853
54786
|
|
|
@@ -55126,29 +55059,16 @@ class FunnelMetricsVisualizationComponent {
|
|
|
55126
55059
|
this.funnelStages = computed(() => {
|
|
55127
55060
|
const calcs = this.calculations();
|
|
55128
55061
|
const pacingResponse = this.pacingMetrics();
|
|
55129
|
-
console.group('[PACING] funnelStages computed');
|
|
55130
|
-
console.log('[PACING] calculations count:', calcs.length);
|
|
55131
|
-
console.log('[PACING] calculations:', calcs.map(c => ({ metric: c.metric, isFunnelStage: c.isFunnelStage, funnelMetric: c.funnelMetric })));
|
|
55132
|
-
console.log('[PACING] pacingResponse exists:', !!pacingResponse);
|
|
55133
|
-
if (pacingResponse) {
|
|
55134
|
-
console.log('[PACING] pacingResponse raw:', JSON.stringify(pacingResponse, null, 2));
|
|
55135
|
-
}
|
|
55136
55062
|
const grouped = new Map();
|
|
55137
55063
|
const stageMetrics = calcs.filter(c => c.isFunnelStage);
|
|
55138
55064
|
const relatedMetrics = calcs.filter(c => !c.isFunnelStage);
|
|
55139
|
-
console.log('[PACING] stageMetrics count:', stageMetrics.length);
|
|
55140
|
-
console.log('[PACING] stageMetrics:', stageMetrics.map(s => s.metric));
|
|
55141
|
-
console.log('[PACING] relatedMetrics count:', relatedMetrics.length);
|
|
55142
55065
|
stageMetrics.forEach(stageMetric => {
|
|
55143
55066
|
const related = relatedMetrics.filter(rm => rm.funnelMetric === stageMetric.metric);
|
|
55144
|
-
console.log(`[PACING] Processing stage: ${stageMetric.metric}`);
|
|
55145
55067
|
const stageProjectedValue = extractProjectedValue(pacingResponse, stageMetric.metric);
|
|
55146
|
-
console.log(`[PACING] stageProjectedValue for ${stageMetric.metric}:`, stageProjectedValue);
|
|
55147
55068
|
const stageIncreaseBad = MetricEnumUtil.increaseBad(stageMetric.metric);
|
|
55148
55069
|
const stagePacingInfo = stageProjectedValue !== null
|
|
55149
55070
|
? calculateMetricPacing(stageProjectedValue, stageMetric.targetValue, stageIncreaseBad)
|
|
55150
55071
|
: null;
|
|
55151
|
-
console.log(`[PACING] stagePacingInfo for ${stageMetric.metric}:`, stagePacingInfo);
|
|
55152
55072
|
const relatedWithPacing = related.map(relMetric => {
|
|
55153
55073
|
const relProjectedValue = extractProjectedValue(pacingResponse, relMetric.metric);
|
|
55154
55074
|
const relIncreaseBad = MetricEnumUtil.increaseBad(relMetric.metric);
|
|
@@ -55168,12 +55088,6 @@ class FunnelMetricsVisualizationComponent {
|
|
|
55168
55088
|
const bInd = b.stageMetric.funnelInd ?? 999;
|
|
55169
55089
|
return aInd - bInd;
|
|
55170
55090
|
});
|
|
55171
|
-
console.log('[PACING] Final funnelStages result:', result.map(r => ({
|
|
55172
|
-
stage: r.stageMetric.metric,
|
|
55173
|
-
hasPacingInfo: !!r.pacingInfo,
|
|
55174
|
-
pacingPercentage: r.pacingInfo?.pacingPercentage
|
|
55175
|
-
})));
|
|
55176
|
-
console.groupEnd();
|
|
55177
55091
|
return result;
|
|
55178
55092
|
}, ...(ngDevMode ? [{ debugName: "funnelStages" }] : []));
|
|
55179
55093
|
}
|
|
@@ -56405,7 +56319,7 @@ function InitialTargetSettingComponent_Conditional_36_Conditional_8_Template(rf,
|
|
|
56405
56319
|
} }
|
|
56406
56320
|
function InitialTargetSettingComponent_Conditional_36_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
56407
56321
|
const _r6 = i0.ɵɵgetCurrentView();
|
|
56408
|
-
i0.ɵɵelementStart(0, "button",
|
|
56322
|
+
i0.ɵɵelementStart(0, "button", 60);
|
|
56409
56323
|
i0.ɵɵlistener("click", function InitialTargetSettingComponent_Conditional_36_Conditional_9_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r0 = i0.ɵɵnextContext(2); ctx_r0.handleAdjustTarget(); return i0.ɵɵresetView($event.stopPropagation()); });
|
|
56410
56324
|
i0.ɵɵtext(1, " Adjust Revenue Target ");
|
|
56411
56325
|
i0.ɵɵelementEnd();
|
|
@@ -56428,14 +56342,14 @@ function InitialTargetSettingComponent_Conditional_36_Conditional_29_Template(rf
|
|
|
56428
56342
|
i0.ɵɵelementStart(10, "p", 59);
|
|
56429
56343
|
i0.ɵɵtext(11);
|
|
56430
56344
|
i0.ɵɵelementEnd()();
|
|
56431
|
-
i0.ɵɵelementStart(12, "div")(13, "div",
|
|
56345
|
+
i0.ɵɵelementStart(12, "div")(13, "div", 61)(14, "p", 15);
|
|
56432
56346
|
i0.ɵɵtext(15, " Additional Growth Needed ");
|
|
56433
56347
|
i0.ɵɵelementEnd();
|
|
56434
|
-
i0.ɵɵelementStart(16, "button",
|
|
56348
|
+
i0.ɵɵelementStart(16, "button", 62);
|
|
56435
56349
|
i0.ɵɵlistener("click", function InitialTargetSettingComponent_Conditional_36_Conditional_29_Template_button_click_16_listener($event) { i0.ɵɵrestoreView(_r7); return i0.ɵɵresetView($event.stopPropagation()); });
|
|
56436
56350
|
i0.ɵɵnamespaceSVG();
|
|
56437
|
-
i0.ɵɵelementStart(17, "svg",
|
|
56438
|
-
i0.ɵɵelement(18, "path",
|
|
56351
|
+
i0.ɵɵelementStart(17, "svg", 63);
|
|
56352
|
+
i0.ɵɵelement(18, "path", 64);
|
|
56439
56353
|
i0.ɵɵelementEnd()()();
|
|
56440
56354
|
i0.ɵɵnamespaceHTML();
|
|
56441
56355
|
i0.ɵɵelementStart(19, "p", 59);
|
|
@@ -56466,17 +56380,6 @@ function InitialTargetSettingComponent_Conditional_36_Conditional_29_Template(rf
|
|
|
56466
56380
|
i0.ɵɵadvance();
|
|
56467
56381
|
i0.ɵɵtextInterpolate2(" ", ctx_r0.gapToClose().amount > 0 ? "+" : "", "", ctx_r0.formatPercentage(ctx_r0.gapToClose().percentage, 1), " ");
|
|
56468
56382
|
} }
|
|
56469
|
-
function InitialTargetSettingComponent_Conditional_36_Conditional_30_Template(rf, ctx) { if (rf & 1) {
|
|
56470
|
-
const _r8 = i0.ɵɵgetCurrentView();
|
|
56471
|
-
i0.ɵɵelementStart(0, "div", 60)(1, "button", 66);
|
|
56472
|
-
i0.ɵɵlistener("click", function InitialTargetSettingComponent_Conditional_36_Conditional_30_Template_button_click_1_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r0 = i0.ɵɵnextContext(2); ctx_r0.toggleDetails(); return i0.ɵɵresetView($event.stopPropagation()); });
|
|
56473
|
-
i0.ɵɵtext(2, " Show Less ");
|
|
56474
|
-
i0.ɵɵelementEnd()();
|
|
56475
|
-
} if (rf & 2) {
|
|
56476
|
-
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
56477
|
-
i0.ɵɵadvance();
|
|
56478
|
-
i0.ɵɵproperty("ngClass", ctx_r0.learnMoreButtonClasses());
|
|
56479
|
-
} }
|
|
56480
56383
|
function InitialTargetSettingComponent_Conditional_36_Template(rf, ctx) { if (rf & 1) {
|
|
56481
56384
|
i0.ɵɵelementStart(0, "div", 28)(1, "div")(2, "div", 48)(3, "div")(4, "p", 49);
|
|
56482
56385
|
i0.ɵɵtext(5);
|
|
@@ -56506,18 +56409,18 @@ function InitialTargetSettingComponent_Conditional_36_Template(rf, ctx) { if (rf
|
|
|
56506
56409
|
i0.ɵɵtext(28);
|
|
56507
56410
|
i0.ɵɵelementEnd()()()();
|
|
56508
56411
|
i0.ɵɵconditionalCreate(29, InitialTargetSettingComponent_Conditional_36_Conditional_29_Template, 21, 13, "div", 54);
|
|
56509
|
-
i0.ɵɵconditionalCreate(30, InitialTargetSettingComponent_Conditional_36_Conditional_30_Template, 3, 1, "div", 60);
|
|
56510
56412
|
i0.ɵɵelementEnd()()()();
|
|
56511
56413
|
} if (rf & 2) {
|
|
56512
56414
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
56513
56415
|
i0.ɵɵproperty("ngClass", ctx_r0.calculatedValuesCardClasses());
|
|
56514
56416
|
i0.ɵɵadvance();
|
|
56515
|
-
i0.ɵɵclassProp("space-y-6", ctx_r0.calculationState() !== "results"
|
|
56417
|
+
i0.ɵɵclassProp("space-y-6", ctx_r0.calculationState() !== "results");
|
|
56516
56418
|
i0.ɵɵadvance(3);
|
|
56517
56419
|
i0.ɵɵproperty("ngClass", ctx_r0.calculatedLabelClasses());
|
|
56518
56420
|
i0.ɵɵadvance();
|
|
56519
56421
|
i0.ɵɵtextInterpolate1(" ", ctx_r0.currentYear(), " Revenue Target ");
|
|
56520
56422
|
i0.ɵɵadvance();
|
|
56423
|
+
i0.ɵɵclassProp("text-3xl", ctx_r0.calculationState() !== "results" || ctx_r0.detailsExpanded())("text-lg", ctx_r0.calculationState() === "results" && !ctx_r0.detailsExpanded());
|
|
56521
56424
|
i0.ɵɵproperty("ngClass", ctx_r0.calculatedValueClasses());
|
|
56522
56425
|
i0.ɵɵadvance();
|
|
56523
56426
|
i0.ɵɵconditional(ctx_r0.calculationState() === "results" && ctx_r0.targets() === undefined && ctx_r0.submittedAbsoluteInput() !== null ? 7 : 8);
|
|
@@ -56547,19 +56450,24 @@ function InitialTargetSettingComponent_Conditional_36_Template(rf, ctx) { if (rf
|
|
|
56547
56450
|
i0.ɵɵtextInterpolate1(" +", ctx_r0.formatPercentage(ctx_r0.percentageIncrease(), 1), " ");
|
|
56548
56451
|
i0.ɵɵadvance();
|
|
56549
56452
|
i0.ɵɵconditional(ctx_r0.currentPaceProjection() > 0 && ctx_r0.gapToClose().amount !== 0 ? 29 : -1);
|
|
56550
|
-
i0.ɵɵadvance();
|
|
56551
|
-
i0.ɵɵconditional(ctx_r0.calculationState() === "results" && ctx_r0.detailsExpanded() ? 30 : -1);
|
|
56552
56453
|
} }
|
|
56553
56454
|
function InitialTargetSettingComponent_Conditional_37_Template(rf, ctx) { if (rf & 1) {
|
|
56554
|
-
const
|
|
56555
|
-
i0.ɵɵelementStart(0, "div", 29)(1, "button",
|
|
56556
|
-
i0.ɵɵlistener("click", function InitialTargetSettingComponent_Conditional_37_Template_button_click_1_listener($event) { i0.ɵɵrestoreView(
|
|
56557
|
-
i0.ɵɵtext(2
|
|
56558
|
-
i0.ɵɵ
|
|
56455
|
+
const _r8 = i0.ɵɵgetCurrentView();
|
|
56456
|
+
i0.ɵɵelementStart(0, "div", 29)(1, "button", 65);
|
|
56457
|
+
i0.ɵɵlistener("click", function InitialTargetSettingComponent_Conditional_37_Template_button_click_1_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r0 = i0.ɵɵnextContext(); ctx_r0.toggleDetails(); return i0.ɵɵresetView($event.stopPropagation()); });
|
|
56458
|
+
i0.ɵɵtext(2);
|
|
56459
|
+
i0.ɵɵnamespaceSVG();
|
|
56460
|
+
i0.ɵɵelementStart(3, "svg", 66);
|
|
56461
|
+
i0.ɵɵelement(4, "path", 36);
|
|
56462
|
+
i0.ɵɵelementEnd()()();
|
|
56559
56463
|
} if (rf & 2) {
|
|
56560
56464
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
56561
56465
|
i0.ɵɵadvance();
|
|
56562
56466
|
i0.ɵɵproperty("ngClass", ctx_r0.learnMoreButtonClasses());
|
|
56467
|
+
i0.ɵɵadvance();
|
|
56468
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r0.detailsExpanded() ? "Show Less" : "Learn More", " ");
|
|
56469
|
+
i0.ɵɵadvance();
|
|
56470
|
+
i0.ɵɵclassProp("chevron-rotate-expanded", ctx_r0.detailsExpanded());
|
|
56563
56471
|
} }
|
|
56564
56472
|
function InitialTargetSettingComponent_Conditional_38_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
56565
56473
|
i0.ɵɵelement(0, "symphiq-area-chart", 24);
|
|
@@ -56674,33 +56582,16 @@ class InitialTargetSettingComponent {
|
|
|
56674
56582
|
}, ...(ngDevMode ? [{ debugName: "percentageIncrease" }] : []));
|
|
56675
56583
|
this.displayedMetricCalculations = computed(() => {
|
|
56676
56584
|
const response = this.storedResponse();
|
|
56677
|
-
const pacingData = this.pacingMetrics();
|
|
56678
|
-
console.group('[PACING] displayedMetricCalculations computed');
|
|
56679
|
-
console.log('[PACING] storedResponse exists:', !!response);
|
|
56680
|
-
console.log('[PACING] pacingMetrics exists:', !!pacingData);
|
|
56681
|
-
if (pacingData) {
|
|
56682
|
-
console.log('[PACING] pacingMetrics summary:', {
|
|
56683
|
-
soFarMetricValuesCount: pacingData.soFarMetricValues?.length ?? 0,
|
|
56684
|
-
soFarMetrics: pacingData.soFarMetricValues?.map(m => ({ metric: m.metric, value: m.value })),
|
|
56685
|
-
projectedMetricValuesCount: pacingData.projectedMetricValues?.length ?? 0,
|
|
56686
|
-
lastYearMetricValuesMonthlyCount: pacingData.lastYearMetricValuesMonthly?.length ?? 0,
|
|
56687
|
-
lastYearUniqueMetrics: [...new Set(pacingData.lastYearMetricValuesMonthly?.map(m => m.metric))]
|
|
56688
|
-
});
|
|
56689
|
-
}
|
|
56690
56585
|
if (!response) {
|
|
56691
|
-
console.log('[PACING] No storedResponse - returning empty array');
|
|
56692
|
-
console.groupEnd();
|
|
56693
56586
|
return [];
|
|
56694
56587
|
}
|
|
56695
56588
|
const results = [];
|
|
56696
56589
|
if (response.funnelMetricValues) {
|
|
56697
|
-
console.log('[PACING] Processing funnelMetricValues:', response.funnelMetricValues.length);
|
|
56698
56590
|
response.funnelMetricValues.forEach((metricValue) => {
|
|
56699
56591
|
const metric = metricValue.metric;
|
|
56700
56592
|
const funnelMetric = this.funnelMetrics().find(fm => fm.funnelMetric === metric && fm.funnelMetric === fm.relatedMetric);
|
|
56701
56593
|
const currentValue = sumMetricFromUiData(this.mainUiData(), metric, 'priorYear');
|
|
56702
56594
|
const { targetValue, percentageIncrease } = this.parseMetricValue(metricValue.value);
|
|
56703
|
-
console.log(`[PACING] Stage metric ${metric}:`, { currentValue, targetValue, percentageIncrease, funnelInd: funnelMetric?.funnelInd });
|
|
56704
56595
|
results.push({
|
|
56705
56596
|
metric,
|
|
56706
56597
|
funnelMetric: metric,
|
|
@@ -56715,7 +56606,6 @@ class InitialTargetSettingComponent {
|
|
|
56715
56606
|
});
|
|
56716
56607
|
}
|
|
56717
56608
|
if (response.relatedMetricTargets) {
|
|
56718
|
-
console.log('[PACING] Processing relatedMetricTargets:', response.relatedMetricTargets.length);
|
|
56719
56609
|
response.relatedMetricTargets.forEach((metricValue) => {
|
|
56720
56610
|
const metric = metricValue.metric;
|
|
56721
56611
|
const funnelMetric = this.funnelMetrics().find(fm => fm.relatedMetric === metric);
|
|
@@ -56734,10 +56624,6 @@ class InitialTargetSettingComponent {
|
|
|
56734
56624
|
});
|
|
56735
56625
|
});
|
|
56736
56626
|
}
|
|
56737
|
-
console.log('[PACING] Final results count:', results.length);
|
|
56738
|
-
console.log('[PACING] Stage metrics:', results.filter(r => r.isFunnelStage).map(r => r.metric));
|
|
56739
|
-
console.log('[PACING] Related metrics:', results.filter(r => !r.isFunnelStage).map(r => r.metric));
|
|
56740
|
-
console.groupEnd();
|
|
56741
56627
|
return results;
|
|
56742
56628
|
}, ...(ngDevMode ? [{ debugName: "displayedMetricCalculations" }] : []));
|
|
56743
56629
|
this.displayedTargetRevenue = computed(() => {
|
|
@@ -57112,7 +56998,7 @@ class InitialTargetSettingComponent {
|
|
|
57112
56998
|
let _t;
|
|
57113
56999
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.absoluteInputRef = _t.first);
|
|
57114
57000
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.percentageInputRef = _t.first);
|
|
57115
|
-
} }, inputs: { viewMode: [1, "viewMode"], funnelMetrics: [1, "funnelMetrics"], mainUiData: [1, "mainUiData"], trendUiData: [1, "trendUiData"], shopId: [1, "shopId"], pacingMetrics: [1, "pacingMetrics"], dataResults: [1, "dataResults"], reverseCalculationResponse: [1, "reverseCalculationResponse"], targets: [1, "targets"] }, outputs: { targetsCreated: "targetsCreated", calculateRevenueRequest: "calculateRevenueRequest" }, decls: 43, vars: 37, consts: [["absoluteInputRef", ""], ["percentageInputRef", ""], [1, "space-y-8", "pb-32"], [1, "rounded-2xl", "border", "shadow-lg", "p-8", 3, "click", "ngClass"], [1, "flex", "items-center", "justify-between", "mb-6"], [1, "text-2xl", "font-bold", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-6", "h-6", "chevron-rotate", 3, "chevron-rotate-expanded", "ngClass"], [1, "flex", "flex-col", "gap-8"], [1, "grid", "lg:grid-cols-2", "gap-8"], [1, "flex", "flex-col", "gap-4"], [1, "p-6", "rounded-xl", "border-2", 3, "click", "ngClass"], [1, "flex", "flex-wrap", "gap-4", "place-content-between"], [1, "flex", "items-center", "gap-2"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4", 3, "ngClass"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"], [1, "text-xs", "font-medium", "uppercase", "tracking-wider", 3, "ngClass"], [1, "text-lg", "font-bold", 3, "ngClass"], [1, "form-area-collapse"], [1, "form-area-content"], [1, "space-y-6"], [1, "chart-in-column"], [1, "chart-in-column-content"], [1, "text-sm", "font-semibold", "mb-3", 3, "ngClass"], [1, "rounded-xl", "border", "p-4", 3, "ngClass"], [3, "chart", "showAxisLabels", "viewMode", "currencySymbol", "height"], [1, "h-64", "flex", "items-center", "justify-center"], [1, "calculated-card-enter", "order-first", "lg:order-last"], [1, "calculated-card-content"], [1, "p-6", "rounded-xl", "border-2", "h-full", 3, "ngClass"], [1, "flex", "justify-center"], [1, "w-full"], [1, "metrics-section-enter"], [1, "metrics-section-content"], [1, "rounded-2xl", "border", "shadow-lg", "p-8", 3, "ngClass"], [3, "submitClick", "cancelClick", "viewMode", "isValid", "isSubmitting", "validationMessage", "buttonText", "showCancelButton"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-6", "h-6", "chevron-rotate", 3, "ngClass"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M19 9l-7 7-7-7"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"], [1, "flex", "gap-2"], [1, "flex-1", "py-2", "px-4", "rounded-lg", "text-sm", "font-semibold", "transition-all", 3, "click", "ngClass"], [1, "relative"], [1, "flex", "justify-end"], [1, "absolute", "left-4", "top-1/2", "-translate-y-1/2", "text-xl", "font-bold", 3, "ngClass"], ["type", "number", "placeholder", "0", "min", "0", "step", "1000", 1, "w-full", "pl-10", "pr-4", "py-4", "rounded-xl", "text-2xl", "font-bold", "border-2", "transition-all", 3, "ngModelChange", "ngModel", "ngClass"], ["type", "number", "placeholder", "0", "min", "0", "max", "1000", "step", "0.1", 1, "w-full", "pr-10", "pl-4", "py-4", "rounded-xl", "text-2xl", "font-bold", "border-2", "transition-all", 3, "ngModelChange", "ngModel", "ngClass"], [1, "absolute", "right-4", "top-1/2", "-translate-y-1/2", "text-xl", "font-bold", 3, "ngClass"], [1, "px-4", "py-2", "rounded-lg", "text-sm", "font-semibold", "transition-all", 3, "click", "ngClass"], [1, "text-sm", 3, "ngClass"], [1, "flex", "items-center", "justify-between"], [1, "text-xs", "font-medium", "uppercase", "tracking-wider", "mb-1", 3, "ngClass"], [1, "
|
|
57001
|
+
} }, inputs: { viewMode: [1, "viewMode"], funnelMetrics: [1, "funnelMetrics"], mainUiData: [1, "mainUiData"], trendUiData: [1, "trendUiData"], shopId: [1, "shopId"], pacingMetrics: [1, "pacingMetrics"], dataResults: [1, "dataResults"], reverseCalculationResponse: [1, "reverseCalculationResponse"], targets: [1, "targets"] }, outputs: { targetsCreated: "targetsCreated", calculateRevenueRequest: "calculateRevenueRequest" }, decls: 43, vars: 37, consts: [["absoluteInputRef", ""], ["percentageInputRef", ""], [1, "space-y-8", "pb-32"], [1, "rounded-2xl", "border", "shadow-lg", "p-8", 3, "click", "ngClass"], [1, "flex", "items-center", "justify-between", "mb-6"], [1, "text-2xl", "font-bold", 3, "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-6", "h-6", "chevron-rotate", 3, "chevron-rotate-expanded", "ngClass"], [1, "flex", "flex-col", "gap-8"], [1, "grid", "lg:grid-cols-2", "gap-8"], [1, "flex", "flex-col", "gap-4"], [1, "p-6", "rounded-xl", "border-2", 3, "click", "ngClass"], [1, "flex", "flex-wrap", "gap-4", "place-content-between"], [1, "flex", "items-center", "gap-2"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4", 3, "ngClass"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"], [1, "text-xs", "font-medium", "uppercase", "tracking-wider", 3, "ngClass"], [1, "text-lg", "font-bold", 3, "ngClass"], [1, "form-area-collapse"], [1, "form-area-content"], [1, "space-y-6"], [1, "chart-in-column"], [1, "chart-in-column-content"], [1, "text-sm", "font-semibold", "mb-3", 3, "ngClass"], [1, "rounded-xl", "border", "p-4", 3, "ngClass"], [3, "chart", "showAxisLabels", "viewMode", "currencySymbol", "height"], [1, "h-64", "flex", "items-center", "justify-center"], [1, "calculated-card-enter", "order-first", "lg:order-last"], [1, "calculated-card-content"], [1, "p-6", "rounded-xl", "border-2", "h-full", 3, "ngClass"], [1, "flex", "justify-center"], [1, "w-full"], [1, "metrics-section-enter"], [1, "metrics-section-content"], [1, "rounded-2xl", "border", "shadow-lg", "p-8", 3, "ngClass"], [3, "submitClick", "cancelClick", "viewMode", "isValid", "isSubmitting", "validationMessage", "buttonText", "showCancelButton"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-6", "h-6", "chevron-rotate", 3, "ngClass"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M19 9l-7 7-7-7"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"], [1, "flex", "gap-2"], [1, "flex-1", "py-2", "px-4", "rounded-lg", "text-sm", "font-semibold", "transition-all", 3, "click", "ngClass"], [1, "relative"], [1, "flex", "justify-end"], [1, "absolute", "left-4", "top-1/2", "-translate-y-1/2", "text-xl", "font-bold", 3, "ngClass"], ["type", "number", "placeholder", "0", "min", "0", "step", "1000", 1, "w-full", "pl-10", "pr-4", "py-4", "rounded-xl", "text-2xl", "font-bold", "border-2", "transition-all", 3, "ngModelChange", "ngModel", "ngClass"], ["type", "number", "placeholder", "0", "min", "0", "max", "1000", "step", "0.1", 1, "w-full", "pr-10", "pl-4", "py-4", "rounded-xl", "text-2xl", "font-bold", "border-2", "transition-all", 3, "ngModelChange", "ngModel", "ngClass"], [1, "absolute", "right-4", "top-1/2", "-translate-y-1/2", "text-xl", "font-bold", 3, "ngClass"], [1, "px-4", "py-2", "rounded-lg", "text-sm", "font-semibold", "transition-all", 3, "click", "ngClass"], [1, "text-sm", 3, "ngClass"], [1, "flex", "items-center", "justify-between"], [1, "text-xs", "font-medium", "uppercase", "tracking-wider", "mb-1", 3, "ngClass"], [1, "font-bold", "transition-all", "duration-300", 3, "ngClass"], [1, "px-4", "py-2", "rounded-lg", "text-sm", "font-semibold", "transition-all", "whitespace-nowrap", 3, "ngClass"], [1, "details-collapse"], [1, "details-collapse-content"], [1, "relative", "pt-6", "mt-6"], [1, "absolute", "top-0", "left-0", "right-0", "flex", "items-center", "-translate-y-1/2"], [1, "flex-1", "h-px", 3, "ngClass"], [1, "px-3", "py-1", "rounded-full", "text-xs", "font-semibold", "whitespace-nowrap", 3, "ngClass"], [1, "grid", "grid-cols-2", "gap-4", "pt-2"], [1, "text-xl", "font-bold", 3, "ngClass"], [1, "px-4", "py-2", "rounded-lg", "text-sm", "font-semibold", "transition-all", "whitespace-nowrap", 3, "click", "ngClass"], [1, "flex", "items-center", "gap-1", "mb-1"], ["type", "button", "tooltipType", "markdown", "tooltipPosition", "top", 1, "flex-shrink-0", "w-4", "h-4", "rounded-full", "inline-flex", "items-center", "justify-center", "transition-colors", 3, "click", "ngClass", "libSymphiqTooltip"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-3", "h-3"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"], [1, "text-sm", "font-semibold", "transition-all", "inline-flex", "items-center", "gap-1", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4", "chevron-rotate"], [1, "mb-6"], [1, "text-2xl", "font-bold", "mb-2", 3, "ngClass"], [3, "viewMode", "calculations", "pacingMetrics"]], template: function InitialTargetSettingComponent_Template(rf, ctx) { if (rf & 1) {
|
|
57116
57002
|
i0.ɵɵelementStart(0, "div", 2);
|
|
57117
57003
|
i0.ɵɵelement(1, "symphiq-tooltip-container");
|
|
57118
57004
|
i0.ɵɵelementStart(2, "div", 3);
|
|
@@ -57148,9 +57034,9 @@ class InitialTargetSettingComponent {
|
|
|
57148
57034
|
i0.ɵɵconditionalCreate(32, InitialTargetSettingComponent_Conditional_32_Template, 1, 5, "symphiq-area-chart", 24)(33, InitialTargetSettingComponent_Conditional_33_Template, 3, 1, "div", 25);
|
|
57149
57035
|
i0.ɵɵelementEnd()()()()();
|
|
57150
57036
|
i0.ɵɵelementStart(34, "div", 26)(35, "div", 27);
|
|
57151
|
-
i0.ɵɵconditionalCreate(36, InitialTargetSettingComponent_Conditional_36_Template,
|
|
57037
|
+
i0.ɵɵconditionalCreate(36, InitialTargetSettingComponent_Conditional_36_Template, 30, 25, "div", 28);
|
|
57152
57038
|
i0.ɵɵelementEnd()()();
|
|
57153
|
-
i0.ɵɵconditionalCreate(37, InitialTargetSettingComponent_Conditional_37_Template,
|
|
57039
|
+
i0.ɵɵconditionalCreate(37, InitialTargetSettingComponent_Conditional_37_Template, 5, 4, "div", 29);
|
|
57154
57040
|
i0.ɵɵconditionalCreate(38, InitialTargetSettingComponent_Conditional_38_Template, 6, 3, "div", 30);
|
|
57155
57041
|
i0.ɵɵelementEnd()();
|
|
57156
57042
|
i0.ɵɵelementStart(39, "div", 31)(40, "div", 32);
|
|
@@ -57202,7 +57088,7 @@ class InitialTargetSettingComponent {
|
|
|
57202
57088
|
i0.ɵɵadvance(2);
|
|
57203
57089
|
i0.ɵɵconditional(ctx.calculatedRevenue() > 0 ? 36 : -1);
|
|
57204
57090
|
i0.ɵɵadvance();
|
|
57205
|
-
i0.ɵɵconditional(ctx.calculationState() === "results"
|
|
57091
|
+
i0.ɵɵconditional(ctx.calculationState() === "results" ? 37 : -1);
|
|
57206
57092
|
i0.ɵɵadvance();
|
|
57207
57093
|
i0.ɵɵconditional(ctx.calculationState() !== "results" ? 38 : -1);
|
|
57208
57094
|
i0.ɵɵadvance();
|
|
@@ -57391,13 +57277,15 @@ class InitialTargetSettingComponent {
|
|
|
57391
57277
|
<div class="calculated-card-content">
|
|
57392
57278
|
@if (calculatedRevenue() > 0) {
|
|
57393
57279
|
<div [ngClass]="calculatedValuesCardClasses()" class="p-6 rounded-xl border-2 h-full">
|
|
57394
|
-
<div [class.space-y-6]="calculationState() !== 'results'
|
|
57280
|
+
<div [class.space-y-6]="calculationState() !== 'results'">
|
|
57395
57281
|
<div class="flex items-center justify-between">
|
|
57396
57282
|
<div>
|
|
57397
57283
|
<p [ngClass]="calculatedLabelClasses()" class="text-xs font-medium uppercase tracking-wider mb-1">
|
|
57398
57284
|
{{ currentYear() }} Revenue Target
|
|
57399
57285
|
</p>
|
|
57400
|
-
<p [ngClass]="calculatedValueClasses()" class="
|
|
57286
|
+
<p [ngClass]="calculatedValueClasses()" class="font-bold transition-all duration-300"
|
|
57287
|
+
[class.text-3xl]="calculationState() !== 'results' || detailsExpanded()"
|
|
57288
|
+
[class.text-lg]="calculationState() === 'results' && !detailsExpanded()">
|
|
57401
57289
|
@if (calculationState() === 'results' && targets() === undefined && submittedAbsoluteInput() !== null) {
|
|
57402
57290
|
> {{ formatCurrency(submittedAbsoluteInput()!) }}
|
|
57403
57291
|
} @else {
|
|
@@ -57489,17 +57377,7 @@ class InitialTargetSettingComponent {
|
|
|
57489
57377
|
</div>
|
|
57490
57378
|
}
|
|
57491
57379
|
|
|
57492
|
-
|
|
57493
|
-
<div class="mt-6 flex justify-center">
|
|
57494
|
-
<button
|
|
57495
|
-
(click)="toggleDetails(); $event.stopPropagation()"
|
|
57496
|
-
[ngClass]="learnMoreButtonClasses()"
|
|
57497
|
-
class="text-sm font-semibold transition-all">
|
|
57498
|
-
Show Less
|
|
57499
|
-
</button>
|
|
57500
|
-
</div>
|
|
57501
|
-
}
|
|
57502
|
-
</div>
|
|
57380
|
+
</div>
|
|
57503
57381
|
</div>
|
|
57504
57382
|
</div>
|
|
57505
57383
|
</div>
|
|
@@ -57508,13 +57386,21 @@ class InitialTargetSettingComponent {
|
|
|
57508
57386
|
</div>
|
|
57509
57387
|
</div>
|
|
57510
57388
|
|
|
57511
|
-
@if (calculationState() === 'results'
|
|
57389
|
+
@if (calculationState() === 'results') {
|
|
57512
57390
|
<div class="flex justify-center">
|
|
57513
57391
|
<button
|
|
57514
57392
|
(click)="toggleDetails(); $event.stopPropagation()"
|
|
57515
57393
|
[ngClass]="learnMoreButtonClasses()"
|
|
57516
|
-
class="text-sm font-semibold transition-all">
|
|
57517
|
-
Learn More
|
|
57394
|
+
class="text-sm font-semibold transition-all inline-flex items-center gap-1">
|
|
57395
|
+
{{ detailsExpanded() ? 'Show Less' : 'Learn More' }}
|
|
57396
|
+
<svg
|
|
57397
|
+
class="w-4 h-4 chevron-rotate"
|
|
57398
|
+
[class.chevron-rotate-expanded]="detailsExpanded()"
|
|
57399
|
+
fill="none"
|
|
57400
|
+
stroke="currentColor"
|
|
57401
|
+
viewBox="0 0 24 24">
|
|
57402
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" />
|
|
57403
|
+
</svg>
|
|
57518
57404
|
</button>
|
|
57519
57405
|
</div>
|
|
57520
57406
|
}
|