@eric-emg/symphiq-components 1.2.245 → 1.2.247
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 +90 -69
- package/fesm2022/symphiq-components.mjs.map +1 -1
- package/index.d.ts +38 -36
- package/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -56705,7 +56705,8 @@ class LineChartComponent {
|
|
|
56705
56705
|
// Check for explicit keywords
|
|
56706
56706
|
if (name.includes('last year') ||
|
|
56707
56707
|
name.includes('prior year') ||
|
|
56708
|
-
name.includes('previous year')
|
|
56708
|
+
name.includes('previous year') ||
|
|
56709
|
+
name.includes('comparison')) {
|
|
56709
56710
|
return true;
|
|
56710
56711
|
}
|
|
56711
56712
|
// Check for year patterns - extract any 4-digit year and compare to current year
|
|
@@ -56716,6 +56717,13 @@ class LineChartComponent {
|
|
|
56716
56717
|
}
|
|
56717
56718
|
return false;
|
|
56718
56719
|
}
|
|
56720
|
+
isProjectionSeries(seriesData) {
|
|
56721
|
+
if (!seriesData || !seriesData.name) {
|
|
56722
|
+
return false;
|
|
56723
|
+
}
|
|
56724
|
+
const name = seriesData.name.toLowerCase();
|
|
56725
|
+
return name.includes('projection') || name.includes('projected') || name.includes('target');
|
|
56726
|
+
}
|
|
56719
56727
|
extractMetricName(seriesName) {
|
|
56720
56728
|
// Extract metric name from series name by removing year patterns
|
|
56721
56729
|
// e.g., "Purchase Revenue (2025)" -> "Purchase Revenue"
|
|
@@ -56916,6 +56924,8 @@ class LineChartComponent {
|
|
|
56916
56924
|
const seriesColor = color(seriesColorValue);
|
|
56917
56925
|
// Check if this is a prior year series for YoY charts
|
|
56918
56926
|
const isPriorYear = isYoYChart && this.isPriorYearSeries(seriesData);
|
|
56927
|
+
const isProjection = this.isProjectionSeries(seriesData);
|
|
56928
|
+
console.log('[LineChart] Series:', seriesData.name, { isPriorYear, isProjection, isYoYChart, dataPoints: parsedData.length });
|
|
56919
56929
|
if (!this.chartElement || !this.root)
|
|
56920
56930
|
return;
|
|
56921
56931
|
const series = this.chartElement.series.push(LineSeries.new(this.root, {
|
|
@@ -56927,23 +56937,32 @@ class LineChartComponent {
|
|
|
56927
56937
|
stroke: seriesColor
|
|
56928
56938
|
}));
|
|
56929
56939
|
// Store valueFormat and prior year flag in userData for tooltip formatting
|
|
56930
|
-
series.set('userData', { valueFormat: seriesData.valueFormat, isPriorYear });
|
|
56940
|
+
series.set('userData', { valueFormat: seriesData.valueFormat, isPriorYear, isProjection });
|
|
56931
56941
|
// Disable individual series tooltips - use floating tooltip instead
|
|
56932
56942
|
series.set('tooltip', undefined);
|
|
56933
|
-
// Configure stroke styling based on
|
|
56943
|
+
// Configure stroke styling based on series type
|
|
56934
56944
|
series.strokes.template.setAll({
|
|
56935
|
-
strokeWidth: 2
|
|
56945
|
+
strokeWidth: isPriorYear ? 2 : 3
|
|
56936
56946
|
});
|
|
56937
56947
|
if (isPriorYear) {
|
|
56938
56948
|
// Apply dashed line and reduced opacity for prior year data
|
|
56939
56949
|
series.strokes.template.setAll({
|
|
56940
56950
|
strokeDasharray: [5, 5],
|
|
56941
|
-
strokeOpacity: 0.
|
|
56951
|
+
strokeOpacity: 0.5
|
|
56942
56952
|
});
|
|
56943
|
-
// Also set on each individual stroke
|
|
56944
56953
|
series.strokes.each((stroke) => {
|
|
56945
56954
|
stroke.set('strokeDasharray', [5, 5]);
|
|
56946
|
-
stroke.set('strokeOpacity', 0.
|
|
56955
|
+
stroke.set('strokeOpacity', 0.5);
|
|
56956
|
+
});
|
|
56957
|
+
}
|
|
56958
|
+
else if (isProjection) {
|
|
56959
|
+
// Apply dotted line for projection data
|
|
56960
|
+
series.strokes.template.setAll({
|
|
56961
|
+
strokeDasharray: [10, 5],
|
|
56962
|
+
strokeWidth: 3
|
|
56963
|
+
});
|
|
56964
|
+
series.strokes.each((stroke) => {
|
|
56965
|
+
stroke.set('strokeDasharray', [10, 5]);
|
|
56947
56966
|
});
|
|
56948
56967
|
}
|
|
56949
56968
|
// Add bullets with larger hit area for better hover detection
|
|
@@ -56953,7 +56972,7 @@ class LineChartComponent {
|
|
|
56953
56972
|
fill: seriesColor
|
|
56954
56973
|
};
|
|
56955
56974
|
if (isPriorYear) {
|
|
56956
|
-
bulletConfig['fillOpacity'] = 0.
|
|
56975
|
+
bulletConfig['fillOpacity'] = 0.5;
|
|
56957
56976
|
}
|
|
56958
56977
|
if (!this.root)
|
|
56959
56978
|
return Bullet.new({}, { sprite: Circle.new({}, {}) });
|
|
@@ -57058,12 +57077,13 @@ class ProgressToTargetChartComponent {
|
|
|
57058
57077
|
pinchZoomX: false,
|
|
57059
57078
|
pinchZoomY: false,
|
|
57060
57079
|
layout: this.root.verticalLayout,
|
|
57061
|
-
paddingTop:
|
|
57080
|
+
paddingTop: 30,
|
|
57062
57081
|
paddingBottom: 0,
|
|
57063
57082
|
paddingLeft: 0,
|
|
57064
57083
|
paddingRight: 0
|
|
57065
57084
|
}));
|
|
57066
57085
|
this.chart.zoomOutButton.set('forceHidden', true);
|
|
57086
|
+
this.chart.plotContainer.set('maskContent', false);
|
|
57067
57087
|
const xRenderer = AxisRendererX.new(this.root, {
|
|
57068
57088
|
strokeOpacity: 0.1
|
|
57069
57089
|
});
|
|
@@ -57106,7 +57126,7 @@ class ProgressToTargetChartComponent {
|
|
|
57106
57126
|
}
|
|
57107
57127
|
];
|
|
57108
57128
|
this.yAxis.data.setAll(categoryDataItems);
|
|
57109
|
-
const paceColors = this.getPaceColors();
|
|
57129
|
+
const paceColors = this.getPaceColors(status);
|
|
57110
57130
|
const currentColors = this.getCurrentColors(status);
|
|
57111
57131
|
const paceSeries = this.chart.series.push(ColumnSeries.new(this.root, {
|
|
57112
57132
|
name: 'Pace',
|
|
@@ -57219,11 +57239,25 @@ class ProgressToTargetChartComponent {
|
|
|
57219
57239
|
}
|
|
57220
57240
|
return max * 1.1;
|
|
57221
57241
|
}
|
|
57222
|
-
getPaceColors() {
|
|
57223
|
-
|
|
57224
|
-
|
|
57225
|
-
|
|
57226
|
-
|
|
57242
|
+
getPaceColors(status) {
|
|
57243
|
+
switch (status) {
|
|
57244
|
+
case 'ahead':
|
|
57245
|
+
return {
|
|
57246
|
+
color1: color(0x17B26A),
|
|
57247
|
+
color2: color(0x10b981)
|
|
57248
|
+
};
|
|
57249
|
+
case 'on-pace':
|
|
57250
|
+
return {
|
|
57251
|
+
color1: color(0x0BA5EC),
|
|
57252
|
+
color2: color(0x0284C7)
|
|
57253
|
+
};
|
|
57254
|
+
case 'behind':
|
|
57255
|
+
default:
|
|
57256
|
+
return {
|
|
57257
|
+
color1: color(0xF04438),
|
|
57258
|
+
color2: color(0xdc2626)
|
|
57259
|
+
};
|
|
57260
|
+
}
|
|
57227
57261
|
}
|
|
57228
57262
|
getCurrentColors(status) {
|
|
57229
57263
|
switch (status) {
|
|
@@ -57251,7 +57285,7 @@ class ProgressToTargetChartComponent {
|
|
|
57251
57285
|
} if (rf & 2) {
|
|
57252
57286
|
let _t;
|
|
57253
57287
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.chartDiv = _t.first);
|
|
57254
|
-
} }, inputs: { data: [1, "data"], viewMode: [1, "viewMode"] }, decls: 3, vars: 0, consts: [["chartdiv", ""], [1, "progress-chart-container"], [1, "chart", 2, "width", "100%", "height", "
|
|
57288
|
+
} }, inputs: { data: [1, "data"], viewMode: [1, "viewMode"] }, decls: 3, vars: 0, consts: [["chartdiv", ""], [1, "progress-chart-container"], [1, "chart", 2, "width", "100%", "height", "160px"]], template: function ProgressToTargetChartComponent_Template(rf, ctx) { if (rf & 1) {
|
|
57255
57289
|
i0.ɵɵdomElementStart(0, "div", 1);
|
|
57256
57290
|
i0.ɵɵdomElement(1, "div", 2, 0);
|
|
57257
57291
|
i0.ɵɵdomElementEnd();
|
|
@@ -57261,7 +57295,7 @@ class ProgressToTargetChartComponent {
|
|
|
57261
57295
|
type: Component,
|
|
57262
57296
|
args: [{ selector: 'symphiq-progress-to-target-chart', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: `
|
|
57263
57297
|
<div class="progress-chart-container">
|
|
57264
|
-
<div #chartdiv class="chart" style="width: 100%; height:
|
|
57298
|
+
<div #chartdiv class="chart" style="width: 100%; height: 160px;"></div>
|
|
57265
57299
|
</div>
|
|
57266
57300
|
`, styles: [".progress-chart-container{width:100%}\n"] }]
|
|
57267
57301
|
}], () => [], { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], chartDiv: [{
|
|
@@ -57318,14 +57352,7 @@ function MetricReportModalComponent_Conditional_0_Conditional_64_Template(rf, ct
|
|
|
57318
57352
|
i0.ɵɵelementStart(2, "div", 25)(3, "p", 28);
|
|
57319
57353
|
i0.ɵɵtext(4);
|
|
57320
57354
|
i0.ɵɵelementEnd()();
|
|
57321
|
-
i0.ɵɵ
|
|
57322
|
-
i0.ɵɵtext(8, "Progress to Target");
|
|
57323
|
-
i0.ɵɵelementEnd();
|
|
57324
|
-
i0.ɵɵelementStart(9, "span");
|
|
57325
|
-
i0.ɵɵtext(10);
|
|
57326
|
-
i0.ɵɵelementEnd()();
|
|
57327
|
-
i0.ɵɵelement(11, "symphiq-progress-to-target-chart", 37);
|
|
57328
|
-
i0.ɵɵelementEnd();
|
|
57355
|
+
i0.ɵɵelement(5, "symphiq-progress-to-target-chart", 35);
|
|
57329
57356
|
} if (rf & 2) {
|
|
57330
57357
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
57331
57358
|
i0.ɵɵadvance();
|
|
@@ -57334,17 +57361,13 @@ function MetricReportModalComponent_Conditional_0_Conditional_64_Template(rf, ct
|
|
|
57334
57361
|
i0.ɵɵproperty("ngClass", ctx_r1.descriptionClasses());
|
|
57335
57362
|
i0.ɵɵadvance();
|
|
57336
57363
|
i0.ɵɵtextInterpolate1(" ", ctx_r1.gapAnalysisText(), " ");
|
|
57337
|
-
i0.ɵɵadvance(2);
|
|
57338
|
-
i0.ɵɵproperty("ngClass", ctx_r1.labelClasses());
|
|
57339
|
-
i0.ɵɵadvance(4);
|
|
57340
|
-
i0.ɵɵtextInterpolate(ctx_r1.formatPercentage(ctx_r1.progressToTarget(), 1));
|
|
57341
57364
|
i0.ɵɵadvance();
|
|
57342
57365
|
i0.ɵɵproperty("data", ctx_r1.progressToTargetData())("viewMode", ctx_r1.viewMode());
|
|
57343
57366
|
} }
|
|
57344
57367
|
function MetricReportModalComponent_Conditional_0_Conditional_65_For_15_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
57345
|
-
i0.ɵɵelementStart(0, "button",
|
|
57368
|
+
i0.ɵɵelementStart(0, "button", 45);
|
|
57346
57369
|
i0.ɵɵnamespaceSVG();
|
|
57347
|
-
i0.ɵɵelementStart(1, "svg",
|
|
57370
|
+
i0.ɵɵelementStart(1, "svg", 51);
|
|
57348
57371
|
i0.ɵɵelement(2, "path", 33);
|
|
57349
57372
|
i0.ɵɵelementEnd()();
|
|
57350
57373
|
} if (rf & 2) {
|
|
@@ -57353,20 +57376,20 @@ function MetricReportModalComponent_Conditional_0_Conditional_65_For_15_Conditio
|
|
|
57353
57376
|
i0.ɵɵproperty("ngClass", ctx_r1.infoIconClasses())("libSymphiqTooltip", ctx_r1.getMarkdownTooltipContent(metric_r3.description, ctx_r1.getMetricTitle(metric_r3)));
|
|
57354
57377
|
} }
|
|
57355
57378
|
function MetricReportModalComponent_Conditional_0_Conditional_65_For_15_Template(rf, ctx) { if (rf & 1) {
|
|
57356
|
-
i0.ɵɵelementStart(0, "tr",
|
|
57379
|
+
i0.ɵɵelementStart(0, "tr", 41)(1, "td", 42)(2, "div", 43)(3, "span", 44);
|
|
57357
57380
|
i0.ɵɵtext(4);
|
|
57358
57381
|
i0.ɵɵelementEnd();
|
|
57359
|
-
i0.ɵɵconditionalCreate(5, MetricReportModalComponent_Conditional_0_Conditional_65_For_15_Conditional_5_Template, 3, 2, "button",
|
|
57382
|
+
i0.ɵɵconditionalCreate(5, MetricReportModalComponent_Conditional_0_Conditional_65_For_15_Conditional_5_Template, 3, 2, "button", 45);
|
|
57360
57383
|
i0.ɵɵelementEnd()();
|
|
57361
|
-
i0.ɵɵelementStart(6, "td",
|
|
57384
|
+
i0.ɵɵelementStart(6, "td", 46)(7, "span", 47);
|
|
57362
57385
|
i0.ɵɵtext(8);
|
|
57363
57386
|
i0.ɵɵelementEnd()();
|
|
57364
|
-
i0.ɵɵelementStart(9, "td",
|
|
57387
|
+
i0.ɵɵelementStart(9, "td", 46)(10, "div", 48)(11, "span", 44);
|
|
57365
57388
|
i0.ɵɵtext(12);
|
|
57366
57389
|
i0.ɵɵelementEnd();
|
|
57367
57390
|
i0.ɵɵnamespaceSVG();
|
|
57368
|
-
i0.ɵɵelementStart(13, "svg",
|
|
57369
|
-
i0.ɵɵelement(14, "path",
|
|
57391
|
+
i0.ɵɵelementStart(13, "svg", 49);
|
|
57392
|
+
i0.ɵɵelement(14, "path", 50);
|
|
57370
57393
|
i0.ɵɵelementEnd()()()();
|
|
57371
57394
|
} if (rf & 2) {
|
|
57372
57395
|
const metric_r3 = ctx.$implicit;
|
|
@@ -57389,17 +57412,17 @@ function MetricReportModalComponent_Conditional_0_Conditional_65_Template(rf, ct
|
|
|
57389
57412
|
i0.ɵɵelementStart(0, "div", 16)(1, "h4", 17);
|
|
57390
57413
|
i0.ɵɵtext(2, " Contributing Metrics ");
|
|
57391
57414
|
i0.ɵɵelementEnd();
|
|
57392
|
-
i0.ɵɵelementStart(3, "div",
|
|
57415
|
+
i0.ɵɵelementStart(3, "div", 36)(4, "table", 37)(5, "thead")(6, "tr", 38)(7, "th", 39);
|
|
57393
57416
|
i0.ɵɵtext(8, "Metric");
|
|
57394
57417
|
i0.ɵɵelementEnd();
|
|
57395
|
-
i0.ɵɵelementStart(9, "th",
|
|
57418
|
+
i0.ɵɵelementStart(9, "th", 40);
|
|
57396
57419
|
i0.ɵɵtext(10, "Target");
|
|
57397
57420
|
i0.ɵɵelementEnd();
|
|
57398
|
-
i0.ɵɵelementStart(11, "th",
|
|
57421
|
+
i0.ɵɵelementStart(11, "th", 40);
|
|
57399
57422
|
i0.ɵɵtext(12, "Improve by");
|
|
57400
57423
|
i0.ɵɵelementEnd()()();
|
|
57401
57424
|
i0.ɵɵelementStart(13, "tbody");
|
|
57402
|
-
i0.ɵɵrepeaterCreate(14, MetricReportModalComponent_Conditional_0_Conditional_65_For_15_Template, 15, 7, "tr",
|
|
57425
|
+
i0.ɵɵrepeaterCreate(14, MetricReportModalComponent_Conditional_0_Conditional_65_For_15_Template, 15, 7, "tr", 41, _forTrack0$i);
|
|
57403
57426
|
i0.ɵɵelementEnd()()()();
|
|
57404
57427
|
} if (rf & 2) {
|
|
57405
57428
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
@@ -57415,10 +57438,10 @@ function MetricReportModalComponent_Conditional_0_Conditional_66_Template(rf, ct
|
|
|
57415
57438
|
i0.ɵɵelementStart(0, "div", 29)(1, "h4", 17);
|
|
57416
57439
|
i0.ɵɵtext(2, " Pace ");
|
|
57417
57440
|
i0.ɵɵelementEnd();
|
|
57418
|
-
i0.ɵɵelementStart(3, "div",
|
|
57419
|
-
i0.ɵɵelement(4, "symphiq-line-chart",
|
|
57441
|
+
i0.ɵɵelementStart(3, "div", 52);
|
|
57442
|
+
i0.ɵɵelement(4, "symphiq-line-chart", 53);
|
|
57420
57443
|
i0.ɵɵelementEnd();
|
|
57421
|
-
i0.ɵɵelementStart(5, "p",
|
|
57444
|
+
i0.ɵɵelementStart(5, "p", 54);
|
|
57422
57445
|
i0.ɵɵtext(6);
|
|
57423
57446
|
i0.ɵɵelementEnd()();
|
|
57424
57447
|
} if (rf & 2) {
|
|
@@ -57512,7 +57535,7 @@ function MetricReportModalComponent_Conditional_0_Template(rf, ctx) { if (rf & 1
|
|
|
57512
57535
|
i0.ɵɵelementStart(62, "p", 28);
|
|
57513
57536
|
i0.ɵɵtext(63);
|
|
57514
57537
|
i0.ɵɵelementEnd()();
|
|
57515
|
-
i0.ɵɵconditionalCreate(64, MetricReportModalComponent_Conditional_0_Conditional_64_Template,
|
|
57538
|
+
i0.ɵɵconditionalCreate(64, MetricReportModalComponent_Conditional_0_Conditional_64_Template, 6, 10);
|
|
57516
57539
|
i0.ɵɵelementEnd();
|
|
57517
57540
|
i0.ɵɵconditionalCreate(65, MetricReportModalComponent_Conditional_0_Conditional_65_Template, 16, 3, "div", 16);
|
|
57518
57541
|
i0.ɵɵconditionalCreate(66, MetricReportModalComponent_Conditional_0_Conditional_66_Template, 7, 8, "div", 29);
|
|
@@ -57785,6 +57808,11 @@ class MetricReportModalComponent {
|
|
|
57785
57808
|
const currentYearData = this.generateCurrentYearData(pacingResponse, metric.metric);
|
|
57786
57809
|
const priorYearData = this.generatePriorYearData(pacingResponse, metric.metric);
|
|
57787
57810
|
const projectionData = this.generateProjectionData(pacingResponse, metric.metric);
|
|
57811
|
+
console.log('[PaceChart] Metric:', metric.metric);
|
|
57812
|
+
console.log('[PaceChart] Current Year Data:', currentYearData);
|
|
57813
|
+
console.log('[PaceChart] Prior Year Data:', priorYearData);
|
|
57814
|
+
console.log('[PaceChart] Projection Data:', projectionData);
|
|
57815
|
+
console.log('[PaceChart] Pacing Response:', pacingResponse);
|
|
57788
57816
|
return {
|
|
57789
57817
|
chartType: 'LINE',
|
|
57790
57818
|
title: 'Pace',
|
|
@@ -57809,6 +57837,11 @@ class MetricReportModalComponent {
|
|
|
57809
57837
|
};
|
|
57810
57838
|
}, ...(ngDevMode ? [{ debugName: "pacingChartData" }] : []));
|
|
57811
57839
|
}
|
|
57840
|
+
formatDateForChart(year, month, day) {
|
|
57841
|
+
const m = String(month + 1).padStart(2, '0');
|
|
57842
|
+
const d = String(day).padStart(2, '0');
|
|
57843
|
+
return `${year}-${m}-${d}`;
|
|
57844
|
+
}
|
|
57812
57845
|
generateCurrentYearData(pacingResponse, metricEnum) {
|
|
57813
57846
|
const data = [];
|
|
57814
57847
|
const currentYear = this.currentYear();
|
|
@@ -57817,9 +57850,8 @@ class MetricReportModalComponent {
|
|
|
57817
57850
|
metricValues.forEach(mv => {
|
|
57818
57851
|
if (mv.date && mv.value) {
|
|
57819
57852
|
const originalDate = new Date(mv.date);
|
|
57820
|
-
const date = new Date(currentYear, originalDate.getMonth(), 15);
|
|
57821
57853
|
data.push({
|
|
57822
|
-
date:
|
|
57854
|
+
date: this.formatDateForChart(currentYear, originalDate.getMonth(), 15),
|
|
57823
57855
|
value: parseFloat(mv.value)
|
|
57824
57856
|
});
|
|
57825
57857
|
}
|
|
@@ -57830,10 +57862,9 @@ class MetricReportModalComponent {
|
|
|
57830
57862
|
const now = new Date();
|
|
57831
57863
|
const currentMonth = now.getMonth();
|
|
57832
57864
|
for (let i = 0; i <= currentMonth; i++) {
|
|
57833
|
-
const date = new Date(currentYear, i, 15);
|
|
57834
57865
|
const value = baseValue * ((i + 1) / 12);
|
|
57835
57866
|
data.push({
|
|
57836
|
-
date:
|
|
57867
|
+
date: this.formatDateForChart(currentYear, i, 15),
|
|
57837
57868
|
value: Math.round(value * 100) / 100
|
|
57838
57869
|
});
|
|
57839
57870
|
}
|
|
@@ -57848,9 +57879,8 @@ class MetricReportModalComponent {
|
|
|
57848
57879
|
metricValues.forEach(mv => {
|
|
57849
57880
|
if (mv.date && mv.value) {
|
|
57850
57881
|
const originalDate = new Date(mv.date);
|
|
57851
|
-
const date = new Date(currentYear, originalDate.getMonth(), 15);
|
|
57852
57882
|
data.push({
|
|
57853
|
-
date:
|
|
57883
|
+
date: this.formatDateForChart(currentYear, originalDate.getMonth(), 15),
|
|
57854
57884
|
value: parseFloat(mv.value)
|
|
57855
57885
|
});
|
|
57856
57886
|
}
|
|
@@ -57859,10 +57889,9 @@ class MetricReportModalComponent {
|
|
|
57859
57889
|
if (data.length === 0) {
|
|
57860
57890
|
const baseValue = this.metricData()?.currentValue || 1000;
|
|
57861
57891
|
for (let i = 0; i < 12; i++) {
|
|
57862
|
-
const date = new Date(currentYear, i, 15);
|
|
57863
57892
|
const value = baseValue * ((i + 1) / 12) * 0.9;
|
|
57864
57893
|
data.push({
|
|
57865
|
-
date:
|
|
57894
|
+
date: this.formatDateForChart(currentYear, i, 15),
|
|
57866
57895
|
value: Math.round(value * 100) / 100
|
|
57867
57896
|
});
|
|
57868
57897
|
}
|
|
@@ -57877,9 +57906,8 @@ class MetricReportModalComponent {
|
|
|
57877
57906
|
metricValues.forEach(mv => {
|
|
57878
57907
|
if (mv.date && mv.value) {
|
|
57879
57908
|
const originalDate = new Date(mv.date);
|
|
57880
|
-
const date = new Date(currentYear, originalDate.getMonth(), 15);
|
|
57881
57909
|
data.push({
|
|
57882
|
-
date:
|
|
57910
|
+
date: this.formatDateForChart(currentYear, originalDate.getMonth(), 15),
|
|
57883
57911
|
value: parseFloat(mv.value)
|
|
57884
57912
|
});
|
|
57885
57913
|
}
|
|
@@ -57890,10 +57918,9 @@ class MetricReportModalComponent {
|
|
|
57890
57918
|
const now = new Date();
|
|
57891
57919
|
const currentMonth = now.getMonth();
|
|
57892
57920
|
for (let i = currentMonth; i < 12; i++) {
|
|
57893
|
-
const date = new Date(currentYear, i, 15);
|
|
57894
57921
|
const value = targetValue * ((i + 1) / 12);
|
|
57895
57922
|
data.push({
|
|
57896
|
-
date:
|
|
57923
|
+
date: this.formatDateForChart(currentYear, i, 15),
|
|
57897
57924
|
value: Math.round(value * 100) / 100
|
|
57898
57925
|
});
|
|
57899
57926
|
}
|
|
@@ -58044,7 +58071,7 @@ class MetricReportModalComponent {
|
|
|
58044
58071
|
: 'bg-slate-700 hover:bg-slate-600 text-white';
|
|
58045
58072
|
}
|
|
58046
58073
|
static { this.ɵfac = function MetricReportModalComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MetricReportModalComponent)(); }; }
|
|
58047
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MetricReportModalComponent, selectors: [["symphiq-metric-report-modal"]], inputs: { viewMode: [1, "viewMode"], metricEnum: [1, "metricEnum"], metricData: [1, "metricData"], contributingMetrics: [1, "contributingMetrics"], pacingMetrics: [1, "pacingMetrics"], isOpen: [1, "isOpen"] }, outputs: { closed: "closed" }, decls: 1, vars: 1, consts: [[1, "fixed", "inset-0", "overflow-y-auto", "z-50"], [1, "fixed", "inset-0", "overflow-y-auto", "z-50", 3, "click"], [1, "flex", "items-center", "justify-center", "min-h-screen", "px-4", "pt-4", "pb-20", "text-center", "sm:block", "sm:p-0"], ["aria-hidden", "true", 1, "fixed", "inset-0", "backdrop-blur-md", 3, "ngClass"], ["aria-hidden", "true", 1, "hidden", "sm:inline-block", "sm:align-middle", "sm:h-screen"], [1, "relative", "inline-block", "align-bottom", "rounded-2xl", "text-left", "overflow-hidden", "shadow-xl", "sm:my-8", "sm:align-middle", "sm:w-full", "sm:max-w-4xl", "border", "backdrop-blur-xl", 3, "click", "ngClass"], [1, "px-6", "py-5", "border-b", "backdrop-blur-sm", "sticky", "top-0", "z-10", 3, "ngClass"], [1, "flex", "items-start", "justify-between"], [1, "flex-1"], [1, "flex", "items-center", "gap-3", "mb-2"], [1, "text-xl", "font-bold", 3, "ngClass"], ["type", "button", "tooltipType", "markdown", "tooltipPosition", "right", 1, "flex-shrink-0", "w-7", "h-7", "rounded-full", "inline-flex", "items-center", "justify-center", "transition-colors", "self-center", 3, "ngClass", "libSymphiqTooltip"], [1, "ml-4", "transition-all", "rounded-lg", "p-1", "hover:scale-110", "active:scale-90", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-6", "h-6"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M6 18L18 6M6 6l12 12"], [1, "px-6", "py-6", "max-h-[70vh]", "overflow-y-auto", "backdrop-blur-sm", 3, "ngClass"], [1, "rounded-xl", "p-6", "mb-6", 3, "ngClass"], [1, "text-sm", "font-semibold", "uppercase", "tracking-wider", "mb-4", 3, "ngClass"], [1, "grid", "grid-cols-1", "sm:grid-cols-2", "lg:grid-cols-3", "gap-6"], [1, "mb-1.5"], [1, "text-xs", "font-medium", "uppercase", "tracking-wider", 3, "ngClass"], [1, "text-xs", 3, "ngClass"], [1, "text-xl", "font-bold", "mb-2", 3, "ngClass"], [3, "viewMode", "percentageChange", "metric", "priorYear", "isCompact"], [1, "text-xs", "font-medium", "uppercase", "tracking-wider", "mb-1.5", 3, "ngClass"], [1, "mb-4"], [1, "text-xs", "font-medium", "uppercase", "tracking-wider", "mb-2", 3, "ngClass"], [1, "text-3xl", "font-extrabold", "mb-3", 3, "ngClass"], [1, "text-sm", "leading-relaxed", 3, "ngClass"], [1, "rounded-xl", "p-6", 3, "ngClass"], [1, "px-6", "py-4", "border-t", 3, "ngClass"], [1, "w-full", "px-4", "py-2", "rounded-lg", "transition-all", "font-medium", "hover:scale-[1.02]", "active:scale-[0.98]", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"], [3, "viewMode", "pacingPercentage", "status", "showAsFullText", "isCompact", "showEmphasizedPercentage"], [
|
|
58074
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MetricReportModalComponent, selectors: [["symphiq-metric-report-modal"]], inputs: { viewMode: [1, "viewMode"], metricEnum: [1, "metricEnum"], metricData: [1, "metricData"], contributingMetrics: [1, "contributingMetrics"], pacingMetrics: [1, "pacingMetrics"], isOpen: [1, "isOpen"] }, outputs: { closed: "closed" }, decls: 1, vars: 1, consts: [[1, "fixed", "inset-0", "overflow-y-auto", "z-50"], [1, "fixed", "inset-0", "overflow-y-auto", "z-50", 3, "click"], [1, "flex", "items-center", "justify-center", "min-h-screen", "px-4", "pt-4", "pb-20", "text-center", "sm:block", "sm:p-0"], ["aria-hidden", "true", 1, "fixed", "inset-0", "backdrop-blur-md", 3, "ngClass"], ["aria-hidden", "true", 1, "hidden", "sm:inline-block", "sm:align-middle", "sm:h-screen"], [1, "relative", "inline-block", "align-bottom", "rounded-2xl", "text-left", "overflow-hidden", "shadow-xl", "sm:my-8", "sm:align-middle", "sm:w-full", "sm:max-w-4xl", "border", "backdrop-blur-xl", 3, "click", "ngClass"], [1, "px-6", "py-5", "border-b", "backdrop-blur-sm", "sticky", "top-0", "z-10", 3, "ngClass"], [1, "flex", "items-start", "justify-between"], [1, "flex-1"], [1, "flex", "items-center", "gap-3", "mb-2"], [1, "text-xl", "font-bold", 3, "ngClass"], ["type", "button", "tooltipType", "markdown", "tooltipPosition", "right", 1, "flex-shrink-0", "w-7", "h-7", "rounded-full", "inline-flex", "items-center", "justify-center", "transition-colors", "self-center", 3, "ngClass", "libSymphiqTooltip"], [1, "ml-4", "transition-all", "rounded-lg", "p-1", "hover:scale-110", "active:scale-90", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-6", "h-6"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M6 18L18 6M6 6l12 12"], [1, "px-6", "py-6", "max-h-[70vh]", "overflow-y-auto", "backdrop-blur-sm", 3, "ngClass"], [1, "rounded-xl", "p-6", "mb-6", 3, "ngClass"], [1, "text-sm", "font-semibold", "uppercase", "tracking-wider", "mb-4", 3, "ngClass"], [1, "grid", "grid-cols-1", "sm:grid-cols-2", "lg:grid-cols-3", "gap-6"], [1, "mb-1.5"], [1, "text-xs", "font-medium", "uppercase", "tracking-wider", 3, "ngClass"], [1, "text-xs", 3, "ngClass"], [1, "text-xl", "font-bold", "mb-2", 3, "ngClass"], [3, "viewMode", "percentageChange", "metric", "priorYear", "isCompact"], [1, "text-xs", "font-medium", "uppercase", "tracking-wider", "mb-1.5", 3, "ngClass"], [1, "mb-4"], [1, "text-xs", "font-medium", "uppercase", "tracking-wider", "mb-2", 3, "ngClass"], [1, "text-3xl", "font-extrabold", "mb-3", 3, "ngClass"], [1, "text-sm", "leading-relaxed", 3, "ngClass"], [1, "rounded-xl", "p-6", 3, "ngClass"], [1, "px-6", "py-4", "border-t", 3, "ngClass"], [1, "w-full", "px-4", "py-2", "rounded-lg", "transition-all", "font-medium", "hover:scale-[1.02]", "active:scale-[0.98]", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"], [3, "viewMode", "pacingPercentage", "status", "showAsFullText", "isCompact", "showEmphasizedPercentage"], [3, "data", "viewMode"], [1, "overflow-x-auto"], [1, "w-full"], [1, "border-b", 3, "ngClass"], [1, "text-left", "py-3", "px-4", "text-xs", "font-semibold", "uppercase", "tracking-wider"], [1, "text-right", "py-3", "px-4", "text-xs", "font-semibold", "uppercase", "tracking-wider"], [1, "border-b", "transition-colors", 3, "ngClass"], [1, "py-3", "px-4"], [1, "flex", "items-center", "gap-2"], [1, "text-sm", "font-medium"], ["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, "py-3", "px-4", "text-right"], [1, "text-sm", "font-semibold", 3, "ngClass"], [1, "flex", "items-center", "justify-end", "gap-2"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4", "text-emerald-500"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-3", "h-3"], [1, "min-h-[400px]"], [3, "chart", "showAxisLabels", "viewMode", "currencySymbol"], [1, "text-sm", "leading-relaxed", "mt-4", 3, "ngClass"]], template: function MetricReportModalComponent_Template(rf, ctx) { if (rf & 1) {
|
|
58048
58075
|
i0.ɵɵconditionalCreate(0, MetricReportModalComponent_Conditional_0_Template, 70, 51, "div", 0);
|
|
58049
58076
|
} if (rf & 2) {
|
|
58050
58077
|
i0.ɵɵconditional(ctx.isOpen() ? 0 : -1);
|
|
@@ -58287,16 +58314,10 @@ class MetricReportModalComponent {
|
|
|
58287
58314
|
</div>
|
|
58288
58315
|
|
|
58289
58316
|
<!-- Progress to Target Chart -->
|
|
58290
|
-
<
|
|
58291
|
-
|
|
58292
|
-
|
|
58293
|
-
|
|
58294
|
-
</div>
|
|
58295
|
-
<symphiq-progress-to-target-chart
|
|
58296
|
-
[data]="progressToTargetData()"
|
|
58297
|
-
[viewMode]="viewMode()"
|
|
58298
|
-
/>
|
|
58299
|
-
</div>
|
|
58317
|
+
<symphiq-progress-to-target-chart
|
|
58318
|
+
[data]="progressToTargetData()"
|
|
58319
|
+
[viewMode]="viewMode()"
|
|
58320
|
+
/>
|
|
58300
58321
|
}
|
|
58301
58322
|
</div>
|
|
58302
58323
|
|
|
@@ -58404,7 +58425,7 @@ class MetricReportModalComponent {
|
|
|
58404
58425
|
`
|
|
58405
58426
|
}]
|
|
58406
58427
|
}], null, { viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], metricEnum: [{ type: i0.Input, args: [{ isSignal: true, alias: "metricEnum", required: false }] }], metricData: [{ type: i0.Input, args: [{ isSignal: true, alias: "metricData", required: false }] }], contributingMetrics: [{ type: i0.Input, args: [{ isSignal: true, alias: "contributingMetrics", required: false }] }], pacingMetrics: [{ type: i0.Input, args: [{ isSignal: true, alias: "pacingMetrics", required: false }] }], isOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "isOpen", required: false }] }], closed: [{ type: i0.Output, args: ["closed"] }] }); })();
|
|
58407
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MetricReportModalComponent, { className: "MetricReportModalComponent", filePath: "lib/components/revenue-calculator-dashboard/metric-report-modal.component.ts", lineNumber:
|
|
58428
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MetricReportModalComponent, { className: "MetricReportModalComponent", filePath: "lib/components/revenue-calculator-dashboard/metric-report-modal.component.ts", lineNumber: 343 }); })();
|
|
58408
58429
|
|
|
58409
58430
|
const _c0$q = ["absoluteInputRef"];
|
|
58410
58431
|
const _c1$b = ["percentageInputRef"];
|