@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 sumMetricFromUiData(uiData, metricToSum) {
57515
- if (!uiData?.convertedDataResults) {
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?.forEach((row) => {
57525
- const metricValue = parseFloat(row.metricValues?.[metricIndex] || '0');
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
- }], null, { absoluteInputRef: [{
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"] }] }); })();