@eric-emg/symphiq-components 1.2.190 → 1.2.192
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.
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ViewModeEnum, MetricStatusEnum, TrendDirectionEnum, CompetitiveScoreEnum, ChartTypeEnum, IconSourceEnum, ProfileAnalysisRecommendationPriorityEnum, ProfileItemTypeEnum, PriceVsCompetitorsEnum, DifferentiationStrengthEnum, ThreatLevelEnum, normalizeToV3, MetricEnum, FocusAreaDetailStatusEnum, FocusAreaDomainEnumUtil, FocusAreaDomainEnum, ShopDataLoadStatusEnum, DimensionEnum, AiDynamicContentStatusEnum, FocusAreaHealthEnum, ProfileAnalysisPriorityEnum, CapabilityStateEnum, QuadrantEnum, AdvantageEnum, OverallGradeEnum, OperationalMaturityEnum, ProfileAnalysisEffortLevelEnum, ProfileAnalysisImpactLevelEnum, ProfileAnalysisTypeEnum, LineChartUseCaseEnum, BarChartUseCaseEnum } from '@jebgem/model';
|
|
1
|
+
import { ViewModeEnum, MetricStatusEnum, TrendDirectionEnum, CompetitiveScoreEnum, ChartTypeEnum, IconSourceEnum, ProfileAnalysisRecommendationPriorityEnum, ProfileItemTypeEnum, PriceVsCompetitorsEnum, DifferentiationStrengthEnum, ThreatLevelEnum, normalizeToV3, MetricEnum, FocusAreaDetailStatusEnum, FocusAreaDomainEnumUtil, FocusAreaDomainEnum, ShopDataLoadStatusEnum, DimensionEnum, UiDataPeriodEnum, UiDataComparePeriodEnum, AiDynamicContentStatusEnum, FocusAreaHealthEnum, ProfileAnalysisPriorityEnum, CapabilityStateEnum, QuadrantEnum, AdvantageEnum, OverallGradeEnum, OperationalMaturityEnum, ProfileAnalysisEffortLevelEnum, ProfileAnalysisImpactLevelEnum, ProfileAnalysisTypeEnum, LineChartUseCaseEnum, BarChartUseCaseEnum } from '@jebgem/model';
|
|
2
2
|
export * from '@jebgem/model';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
4
|
import { Injectable, signal, computed, input, ChangeDetectionStrategy, Component, output, inject, ElementRef, Renderer2, effect, Directive, HostListener, untracked, ViewChild, PLATFORM_ID, Inject, Input } from '@angular/core';
|
|
@@ -57511,20 +57511,85 @@ function aggregateAndSortByMonth(points) {
|
|
|
57511
57511
|
});
|
|
57512
57512
|
return sortDataByMonth(Array.from(monthMap.values()));
|
|
57513
57513
|
}
|
|
57514
|
-
function
|
|
57515
|
-
if (!uiData
|
|
57514
|
+
function getConvertedDataForSource(uiData, source) {
|
|
57515
|
+
if (!uiData)
|
|
57516
|
+
return undefined;
|
|
57517
|
+
const periodInfo = uiData.periodInfo;
|
|
57518
|
+
console.group('[getConvertedDataForSource] Debug');
|
|
57519
|
+
console.log('source:', source);
|
|
57520
|
+
console.log('periodInfo:', periodInfo);
|
|
57521
|
+
console.log('period:', periodInfo?.period);
|
|
57522
|
+
console.log('comparePeriod:', periodInfo?.comparePeriod);
|
|
57523
|
+
let result;
|
|
57524
|
+
switch (source) {
|
|
57525
|
+
case 'current':
|
|
57526
|
+
result = uiData.convertedDataResults;
|
|
57527
|
+
console.log('Using convertedDataResults (current period)');
|
|
57528
|
+
break;
|
|
57529
|
+
case 'compare':
|
|
57530
|
+
result = uiData.convertedDataResultsCompare;
|
|
57531
|
+
console.log('Using convertedDataResultsCompare (compare period)');
|
|
57532
|
+
break;
|
|
57533
|
+
case 'priorYear':
|
|
57534
|
+
if (periodInfo?.period === UiDataPeriodEnum.THIS_YEAR &&
|
|
57535
|
+
periodInfo?.comparePeriod === UiDataComparePeriodEnum.PREVIOUS_PERIOD) {
|
|
57536
|
+
result = uiData.convertedDataResultsCompare;
|
|
57537
|
+
console.log('THIS_YEAR + PREVIOUS_PERIOD: Using convertedDataResultsCompare (all of last year)');
|
|
57538
|
+
}
|
|
57539
|
+
else if (periodInfo?.period === UiDataPeriodEnum.THIS_AND_LAST_YEAR) {
|
|
57540
|
+
console.log('THIS_AND_LAST_YEAR: Need to filter by year from convertedDataResults');
|
|
57541
|
+
result = uiData.convertedDataResults;
|
|
57542
|
+
}
|
|
57543
|
+
else if (periodInfo?.comparePeriod === UiDataComparePeriodEnum.SAME_PERIOD_LAST_YEAR) {
|
|
57544
|
+
result = uiData.convertedDataResultsCompare;
|
|
57545
|
+
console.log('SAME_PERIOD_LAST_YEAR: Using convertedDataResultsCompare');
|
|
57546
|
+
}
|
|
57547
|
+
else if (periodInfo?.comparePeriod === UiDataComparePeriodEnum.PREVIOUS_PERIOD) {
|
|
57548
|
+
result = uiData.convertedDataResultsCompare;
|
|
57549
|
+
console.log('PREVIOUS_PERIOD: Using convertedDataResultsCompare');
|
|
57550
|
+
}
|
|
57551
|
+
else {
|
|
57552
|
+
console.log('No matching period config for priorYear, falling back to convertedDataResultsCompare');
|
|
57553
|
+
result = uiData.convertedDataResultsCompare;
|
|
57554
|
+
}
|
|
57555
|
+
break;
|
|
57556
|
+
}
|
|
57557
|
+
console.log('Result exists:', !!result);
|
|
57558
|
+
console.groupEnd();
|
|
57559
|
+
return result;
|
|
57560
|
+
}
|
|
57561
|
+
function sumMetricFromUiData(uiData, metricToSum, source = 'current') {
|
|
57562
|
+
console.group('[sumMetricFromUiData] Debug');
|
|
57563
|
+
console.log('metricToSum:', metricToSum);
|
|
57564
|
+
console.log('source:', source);
|
|
57565
|
+
const convertedData = getConvertedDataForSource(uiData, source);
|
|
57566
|
+
if (!convertedData) {
|
|
57567
|
+
console.log('EARLY RETURN: convertedData is falsy');
|
|
57568
|
+
console.log('convertedDataResults exists:', !!uiData?.convertedDataResults);
|
|
57569
|
+
console.log('convertedDataResultsCompare exists:', !!uiData?.convertedDataResultsCompare);
|
|
57570
|
+
console.groupEnd();
|
|
57516
57571
|
return 0;
|
|
57517
57572
|
}
|
|
57518
57573
|
let total = 0;
|
|
57519
|
-
const convertedData = uiData.convertedDataResults;
|
|
57520
57574
|
const metricIndex = convertedData.metrics?.indexOf(metricToSum);
|
|
57575
|
+
console.log('Available metrics:', convertedData.metrics);
|
|
57576
|
+
console.log('metricIndex for', metricToSum, ':', metricIndex);
|
|
57521
57577
|
if (metricIndex === undefined || metricIndex === -1) {
|
|
57578
|
+
console.log('EARLY RETURN: metricIndex is undefined or -1');
|
|
57579
|
+
console.groupEnd();
|
|
57522
57580
|
return 0;
|
|
57523
57581
|
}
|
|
57524
|
-
convertedData.rows?.
|
|
57525
|
-
|
|
57582
|
+
console.log('Number of rows:', convertedData.rows?.length ?? 0);
|
|
57583
|
+
convertedData.rows?.forEach((row, idx) => {
|
|
57584
|
+
const rawValue = row.metricValues?.[metricIndex];
|
|
57585
|
+
const metricValue = parseFloat(rawValue || '0');
|
|
57586
|
+
if (idx < 3) {
|
|
57587
|
+
console.log(`Row ${idx}: raw="${rawValue}", parsed=${metricValue}`);
|
|
57588
|
+
}
|
|
57526
57589
|
total += metricValue;
|
|
57527
57590
|
});
|
|
57591
|
+
console.log('Final total:', total);
|
|
57592
|
+
console.groupEnd();
|
|
57528
57593
|
return total;
|
|
57529
57594
|
}
|
|
57530
57595
|
|
|
@@ -57540,7 +57605,7 @@ class RevenueCalculatorService {
|
|
|
57540
57605
|
return this.calculateTargetsFromRevenue(revenueTarget, mainUiData, funnelMetrics);
|
|
57541
57606
|
}
|
|
57542
57607
|
extractPriorYearRevenue(mainUiData) {
|
|
57543
|
-
return sumMetricFromUiData(mainUiData, MetricEnum.PURCHASE_REVENUE);
|
|
57608
|
+
return sumMetricFromUiData(mainUiData, MetricEnum.PURCHASE_REVENUE, 'priorYear');
|
|
57544
57609
|
}
|
|
57545
57610
|
extractBaselineValues(mainUiData, funnelMetrics) {
|
|
57546
57611
|
const baselineValues = new Map();
|
|
@@ -57549,7 +57614,7 @@ class RevenueCalculatorService {
|
|
|
57549
57614
|
}
|
|
57550
57615
|
funnelMetrics.forEach(fm => {
|
|
57551
57616
|
if (fm.relatedMetric) {
|
|
57552
|
-
const value = sumMetricFromUiData(mainUiData, fm.relatedMetric);
|
|
57617
|
+
const value = sumMetricFromUiData(mainUiData, fm.relatedMetric, 'priorYear');
|
|
57553
57618
|
baselineValues.set(fm.relatedMetric, value);
|
|
57554
57619
|
}
|
|
57555
57620
|
});
|
|
@@ -57758,7 +57823,7 @@ class InitialTargetSettingComponent {
|
|
|
57758
57823
|
this.percentageInput = signal(0, ...(ngDevMode ? [{ debugName: "percentageInput" }] : []));
|
|
57759
57824
|
this.isSubmitting = signal(false, ...(ngDevMode ? [{ debugName: "isSubmitting" }] : []));
|
|
57760
57825
|
this.priorYearRevenue = computed(() => {
|
|
57761
|
-
return sumMetricFromUiData(this.mainUiData(), MetricEnum.PURCHASE_REVENUE);
|
|
57826
|
+
return sumMetricFromUiData(this.mainUiData(), MetricEnum.PURCHASE_REVENUE, 'priorYear');
|
|
57762
57827
|
}, ...(ngDevMode ? [{ debugName: "priorYearRevenue" }] : []));
|
|
57763
57828
|
this.currentPaceProjection = computed(() => {
|
|
57764
57829
|
const pacingData = this.pacingMetrics();
|
|
@@ -57847,6 +57912,31 @@ class InitialTargetSettingComponent {
|
|
|
57847
57912
|
}, ...(ngDevMode ? [{ debugName: "revenueChartData" }] : []));
|
|
57848
57913
|
this.currentYear = computed(() => new Date().getFullYear(), ...(ngDevMode ? [{ debugName: "currentYear" }] : []));
|
|
57849
57914
|
this.priorYear = computed(() => new Date().getFullYear() - 1, ...(ngDevMode ? [{ debugName: "priorYear" }] : []));
|
|
57915
|
+
effect(() => {
|
|
57916
|
+
const mainData = this.mainUiData();
|
|
57917
|
+
console.group('[InitialTargetSetting] mainUiData Debug');
|
|
57918
|
+
console.log('mainUiData exists:', !!mainData);
|
|
57919
|
+
console.log('mainUiData:', mainData);
|
|
57920
|
+
if (mainData) {
|
|
57921
|
+
console.log('convertedDataResults exists:', !!mainData.convertedDataResults);
|
|
57922
|
+
if (mainData.convertedDataResults) {
|
|
57923
|
+
const converted = mainData.convertedDataResults;
|
|
57924
|
+
console.log('metrics array:', converted.metrics);
|
|
57925
|
+
console.log('dimensions array:', converted.dimensions);
|
|
57926
|
+
console.log('rows count:', converted.rows?.length ?? 0);
|
|
57927
|
+
console.log('first 3 rows:', converted.rows?.slice(0, 3));
|
|
57928
|
+
const metricIndex = converted.metrics?.indexOf(MetricEnum.PURCHASE_REVENUE);
|
|
57929
|
+
console.log('PURCHASE_REVENUE enum value:', MetricEnum.PURCHASE_REVENUE);
|
|
57930
|
+
console.log('PURCHASE_REVENUE index in metrics:', metricIndex);
|
|
57931
|
+
if (metricIndex !== undefined && metricIndex !== -1 && converted.rows?.length) {
|
|
57932
|
+
const sampleValues = converted.rows.slice(0, 5).map(r => r.metricValues?.[metricIndex]);
|
|
57933
|
+
console.log('Sample metric values at index', metricIndex, ':', sampleValues);
|
|
57934
|
+
}
|
|
57935
|
+
}
|
|
57936
|
+
}
|
|
57937
|
+
console.log('Computed priorYearRevenue:', this.priorYearRevenue());
|
|
57938
|
+
console.groupEnd();
|
|
57939
|
+
});
|
|
57850
57940
|
}
|
|
57851
57941
|
ngAfterViewInit() {
|
|
57852
57942
|
setTimeout(() => {
|
|
@@ -58254,7 +58344,7 @@ class InitialTargetSettingComponent {
|
|
|
58254
58344
|
</div>
|
|
58255
58345
|
`
|
|
58256
58346
|
}]
|
|
58257
|
-
}],
|
|
58347
|
+
}], () => [], { absoluteInputRef: [{
|
|
58258
58348
|
type: ViewChild,
|
|
58259
58349
|
args: ['absoluteInputRef']
|
|
58260
58350
|
}], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], funnelMetrics: [{ type: i0.Input, args: [{ isSignal: true, alias: "funnelMetrics", required: false }] }], mainUiData: [{ type: i0.Input, args: [{ isSignal: true, alias: "mainUiData", required: false }] }], trendUiData: [{ type: i0.Input, args: [{ isSignal: true, alias: "trendUiData", required: false }] }], shopId: [{ type: i0.Input, args: [{ isSignal: true, alias: "shopId", required: false }] }], pacingMetrics: [{ type: i0.Input, args: [{ isSignal: true, alias: "pacingMetrics", required: false }] }], dataResults: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataResults", required: false }] }], targetsCreated: [{ type: i0.Output, args: ["targetsCreated"] }] }); })();
|