@agorapulse/ui-charts 20.1.19 → 20.2.0
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.
|
Binary file
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { inject, DestroyRef, ElementRef, input, signal, afterNextRender, effect, Directive, ChangeDetectionStrategy, Component, output } from '@angular/core';
|
|
3
|
-
import { setOptions, Chart, numberFormat } from 'highcharts';
|
|
4
|
-
import { isPlainObject, cloneDeep, round } from 'es-toolkit';
|
|
3
|
+
import { setOptions, merge, Chart, numberFormat } from 'highcharts';
|
|
5
4
|
import { mapChart } from 'highcharts/highmaps';
|
|
5
|
+
import { round } from 'es-toolkit';
|
|
6
6
|
|
|
7
7
|
var ChartColor;
|
|
8
8
|
(function (ChartColor) {
|
|
@@ -100,19 +100,7 @@ class ChartColors {
|
|
|
100
100
|
neutral: '#858FA1', // grey-60
|
|
101
101
|
negative: '#E81313', // red-100
|
|
102
102
|
};
|
|
103
|
-
|
|
104
|
-
* Heatmap / world-map palette — single shade (data-navy / data-marine) at 5 fixed opacity levels.
|
|
105
|
-
* Listed in ascending intensity (20% → 100%).
|
|
106
|
-
*/
|
|
107
|
-
static HEATMAP_BASE_RGB = [74, 106, 204];
|
|
108
|
-
static HEATMAP_OPACITIES = [0.2, 0.4, 0.6, 0.8, 1];
|
|
109
|
-
static HEATMAP_COLORS = [
|
|
110
|
-
'rgba(74, 106, 204, 0.2)',
|
|
111
|
-
'rgba(74, 106, 204, 0.4)',
|
|
112
|
-
'rgba(74, 106, 204, 0.6)',
|
|
113
|
-
'rgba(74, 106, 204, 0.8)',
|
|
114
|
-
'rgba(74, 106, 204, 1)',
|
|
115
|
-
];
|
|
103
|
+
static HEATMAP_COLOR = '#4A6ACC';
|
|
116
104
|
static SOFT_RED_COLORS = {
|
|
117
105
|
100: '#ff5353',
|
|
118
106
|
85: '#ff6d6d',
|
|
@@ -153,23 +141,6 @@ class ChartColors {
|
|
|
153
141
|
static getDataColors(count) {
|
|
154
142
|
return Array.from({ length: Math.max(count, 0) }, (_, index) => ChartColors.getDataColor(index));
|
|
155
143
|
}
|
|
156
|
-
static getColors(seriesCount, color) {
|
|
157
|
-
const colors = this.getChartColors(color);
|
|
158
|
-
switch (seriesCount) {
|
|
159
|
-
case 1:
|
|
160
|
-
return [colors[100]];
|
|
161
|
-
case 2:
|
|
162
|
-
return [colors[40], colors[100]];
|
|
163
|
-
case 3:
|
|
164
|
-
return [colors[20], colors[60], colors[100]];
|
|
165
|
-
case 4:
|
|
166
|
-
return [colors[20], colors[40], colors[60], colors[100]];
|
|
167
|
-
case 5:
|
|
168
|
-
return [colors[20], colors[40], colors[60], colors[100], colors[150]];
|
|
169
|
-
default:
|
|
170
|
-
return [colors[20], colors[40], colors[60], colors[85], colors[100], colors[150]];
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
144
|
}
|
|
174
145
|
|
|
175
146
|
class AbstractChartComponent {
|
|
@@ -281,6 +252,7 @@ class ChartOptions {
|
|
|
281
252
|
series: {
|
|
282
253
|
states: {
|
|
283
254
|
hover: { brightness: 0 },
|
|
255
|
+
inactive: { enabled: true, opacity: 0.2 },
|
|
284
256
|
},
|
|
285
257
|
connectNulls: true,
|
|
286
258
|
},
|
|
@@ -302,7 +274,9 @@ class ChartOptions {
|
|
|
302
274
|
width: 6,
|
|
303
275
|
},
|
|
304
276
|
split: false,
|
|
305
|
-
|
|
277
|
+
// Per-point tooltip — required for the hover-fade (other series dim when one is hovered).
|
|
278
|
+
// Override per-chart with `chartOptions: { tooltip: { shared: true } }` (drops the fade there).
|
|
279
|
+
shared: false,
|
|
306
280
|
useHTML: true,
|
|
307
281
|
headerFormat: `<div style="border-bottom: 1px solid ${ChartColors.GREY_COLORS[10]}; padding: 0 8px 7px">` +
|
|
308
282
|
`<div style="white-space: wrap; font-size: ${LABEL_FONT_SIZE}; color: ${ChartColors.GREY_COLORS[60]}">{point.key}</div></div>`,
|
|
@@ -340,35 +314,18 @@ class ChartOptions {
|
|
|
340
314
|
static build(options, locale) {
|
|
341
315
|
const localeOptions = buildHighchartsLocaleOptions(locale);
|
|
342
316
|
setOptions({ lang: localeOptions.lang });
|
|
343
|
-
return
|
|
317
|
+
return merge(ChartOptions.DEFAULT_OPTIONS, localeOptions, options);
|
|
344
318
|
}
|
|
345
|
-
static configure(series, options,
|
|
346
|
-
options.xAxis =
|
|
319
|
+
static configure(series, options, labelDateFormat) {
|
|
320
|
+
options.xAxis = merge({ labels: { format: `{value:${labelDateFormat ?? '%m/%d'}}` } }, options.xAxis);
|
|
347
321
|
if (series?.length) {
|
|
348
322
|
options.series = series;
|
|
349
323
|
if (options.legend) {
|
|
350
324
|
options.legend.enabled = options.legend.enabled ?? series.length >= 2;
|
|
351
325
|
}
|
|
352
|
-
options.colors = ChartColors.
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
}
|
|
356
|
-
/** Deep-merge clone (immutable). Arrays are replaced wholesale, not element-merged like `es-toolkit`'s `toMerged`. */
|
|
357
|
-
function mergeDeep(target, source) {
|
|
358
|
-
if (!isPlainObject(target) || !isPlainObject(source)) {
|
|
359
|
-
return target;
|
|
360
|
-
}
|
|
361
|
-
const output = cloneDeep(target);
|
|
362
|
-
for (const key of Object.keys(source)) {
|
|
363
|
-
const sourceValue = source[key];
|
|
364
|
-
if (isPlainObject(sourceValue)) {
|
|
365
|
-
output[key] = key in target ? mergeDeep(target[key], sourceValue) : cloneDeep(sourceValue);
|
|
366
|
-
}
|
|
367
|
-
else {
|
|
368
|
-
output[key] = sourceValue;
|
|
326
|
+
options.colors = options.colors ?? ChartColors.getDataColors(series.length);
|
|
369
327
|
}
|
|
370
328
|
}
|
|
371
|
-
return output;
|
|
372
329
|
}
|
|
373
330
|
|
|
374
331
|
class ChartBarOptions extends ChartOptions {
|
|
@@ -422,10 +379,10 @@ class ChartBarOptions extends ChartOptions {
|
|
|
422
379
|
},
|
|
423
380
|
},
|
|
424
381
|
};
|
|
425
|
-
return super.build(
|
|
382
|
+
return super.build(merge(defaultBarOptions, options), locale);
|
|
426
383
|
}
|
|
427
|
-
static configureBar(series, categories, options, opposite,
|
|
428
|
-
ChartOptions.configure(series, options,
|
|
384
|
+
static configureBar(series, categories, options, opposite, labelDateFormat) {
|
|
385
|
+
ChartOptions.configure(series, options, labelDateFormat);
|
|
429
386
|
if (categories?.length) {
|
|
430
387
|
options.xAxis.categories = categories;
|
|
431
388
|
}
|
|
@@ -463,7 +420,7 @@ class ChartBarComponent extends AbstractChartComponent {
|
|
|
463
420
|
series = input([], ...(ngDevMode ? [{ debugName: "series" }] : []));
|
|
464
421
|
initChart() {
|
|
465
422
|
const options = ChartBarOptions.buildBars(this.chartOptions(), this.stacked(), this.opposite(), this.locale());
|
|
466
|
-
ChartBarOptions.configureBar(this.series(), this.categories(), options, this.opposite(), this.
|
|
423
|
+
ChartBarOptions.configureBar(this.series(), this.categories(), options, this.opposite(), this.labelDateFormat());
|
|
467
424
|
this.chart = new Chart(this.hostElement, options);
|
|
468
425
|
}
|
|
469
426
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: ChartBarComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -506,7 +463,7 @@ class ChartColumnOptions extends ChartOptions {
|
|
|
506
463
|
minTickInterval: 1,
|
|
507
464
|
},
|
|
508
465
|
};
|
|
509
|
-
return super.build(
|
|
466
|
+
return super.build(merge(defaultColumnOptions, options), locale);
|
|
510
467
|
}
|
|
511
468
|
}
|
|
512
469
|
|
|
@@ -516,7 +473,7 @@ class ChartColumnComponent extends AbstractChartComponent {
|
|
|
516
473
|
chartInitialized = output();
|
|
517
474
|
initChart() {
|
|
518
475
|
const options = ChartColumnOptions.buildColumn(this.chartOptions(), this.stacked(), this.locale());
|
|
519
|
-
ChartColumnOptions.configure(this.series(), options, this.
|
|
476
|
+
ChartColumnOptions.configure(this.series(), options, this.labelDateFormat());
|
|
520
477
|
this.chart = new Chart(this.hostElement, options);
|
|
521
478
|
this.chartInitialized.emit(this.chart);
|
|
522
479
|
}
|
|
@@ -564,7 +521,6 @@ class ChartHeatmapOptions extends ChartOptions {
|
|
|
564
521
|
allowDecimals: false,
|
|
565
522
|
gridLineWidth: HEATMAP_CONSTANTS.GRID_LINE_WIDTH,
|
|
566
523
|
gridLineColor: COLORS.GRID_LINE,
|
|
567
|
-
min: HEATMAP_CONSTANTS.MIN_VALUE,
|
|
568
524
|
minColor: COLORS.WHITE,
|
|
569
525
|
labels: {
|
|
570
526
|
style: {
|
|
@@ -609,10 +565,11 @@ class ChartHeatmapOptions extends ChartOptions {
|
|
|
609
565
|
visible: true,
|
|
610
566
|
},
|
|
611
567
|
};
|
|
612
|
-
return super.build(
|
|
568
|
+
return super.build(merge(defaultHeatmapOptions, options), locale);
|
|
613
569
|
}
|
|
614
|
-
static configureHeatmap(categoriesX, categoriesY, series, options,
|
|
615
|
-
|
|
570
|
+
static configureHeatmap(categoriesX, categoriesY, series, options, leastLabel, mostLabel, labelDateFormat) {
|
|
571
|
+
options.colors = options.colors ?? [ChartColors.HEATMAP_COLOR];
|
|
572
|
+
super.configure(series, options, labelDateFormat);
|
|
616
573
|
if (categoriesX?.length) {
|
|
617
574
|
options.xAxis.categories = categoriesX;
|
|
618
575
|
}
|
|
@@ -622,14 +579,13 @@ class ChartHeatmapOptions extends ChartOptions {
|
|
|
622
579
|
const data = (series[0].data ?? []);
|
|
623
580
|
const maxValue = data.reduce((max, point) => Math.max(max, point.value ?? 0), 0) || HEATMAP_CONSTANTS.DEFAULT_MAX_VALUE;
|
|
624
581
|
const labelsEnabled = !!(leastLabel && mostLabel);
|
|
625
|
-
// `tickAmount` spreads ticks evenly between min and max.
|
|
626
582
|
options.colorAxis = {
|
|
627
583
|
...(options.colorAxis ?? {}),
|
|
628
584
|
visible: labelsEnabled,
|
|
629
585
|
min: HEATMAP_CONSTANTS.MIN_VALUE,
|
|
630
586
|
max: maxValue,
|
|
587
|
+
maxColor: ChartColors.HEATMAP_COLOR,
|
|
631
588
|
tickAmount: HEATMAP_CONSTANTS.DEFAULT_TICK_AMOUNT,
|
|
632
|
-
maxColor: ChartColors.getChartColors(color)[100],
|
|
633
589
|
};
|
|
634
590
|
if (labelsEnabled) {
|
|
635
591
|
options.colorAxis.labels = {
|
|
@@ -657,7 +613,7 @@ class ChartHeatmapComponent extends AbstractChartComponent {
|
|
|
657
613
|
initChart() {
|
|
658
614
|
const labels = this.legendLabels();
|
|
659
615
|
const options = ChartHeatmapOptions.build(this.chartOptions(), this.locale());
|
|
660
|
-
ChartHeatmapOptions.configureHeatmap(this.categoriesX(), this.categoriesY(), this.series(), options,
|
|
616
|
+
ChartHeatmapOptions.configureHeatmap(this.categoriesX(), this.categoriesY(), this.series(), options, labels?.least, labels?.most, this.labelDateFormat());
|
|
661
617
|
this.chart = mapChart(this.hostElement, options);
|
|
662
618
|
}
|
|
663
619
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: ChartHeatmapComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -702,7 +658,7 @@ class ChartMixedOptions extends ChartOptions {
|
|
|
702
658
|
type: 'datetime',
|
|
703
659
|
},
|
|
704
660
|
};
|
|
705
|
-
return super.build(
|
|
661
|
+
return super.build(merge(defaultOptions, options), locale);
|
|
706
662
|
}
|
|
707
663
|
}
|
|
708
664
|
|
|
@@ -713,7 +669,7 @@ class ChartMixedComponent extends AbstractChartComponent {
|
|
|
713
669
|
const splineSeries = series.find(serie => serie.type === 'spline');
|
|
714
670
|
const singleDayEnabled = splineSeries?.data?.length === 1;
|
|
715
671
|
const options = ChartMixedOptions.buildMixed(this.chartOptions(), singleDayEnabled, this.locale());
|
|
716
|
-
ChartMixedOptions.configure(series, options, this.
|
|
672
|
+
ChartMixedOptions.configure(series, options, this.labelDateFormat());
|
|
717
673
|
this.chart = new Chart(this.hostElement, options);
|
|
718
674
|
}
|
|
719
675
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: ChartMixedComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -761,10 +717,10 @@ class ChartPieOptions extends ChartOptions {
|
|
|
761
717
|
},
|
|
762
718
|
legend: innerLabels ? { symbolHeight: 10, enabled: true } : {},
|
|
763
719
|
};
|
|
764
|
-
return super.build(
|
|
720
|
+
return super.build(merge(defaultPieOptions, options), locale);
|
|
765
721
|
}
|
|
766
722
|
static configurePie(series, options, colors, labelDateFormat, innerLabels, mouseEventEnabled = true) {
|
|
767
|
-
super.configure(series, options,
|
|
723
|
+
super.configure(series, options, labelDateFormat);
|
|
768
724
|
if (innerLabels && options.legend) {
|
|
769
725
|
options.legend.enabled = true;
|
|
770
726
|
}
|
|
@@ -827,7 +783,7 @@ class ChartPieComponent extends AbstractChartComponent {
|
|
|
827
783
|
];
|
|
828
784
|
const effectiveColors = !dataAvailable
|
|
829
785
|
? [ChartColors.GREY_COLORS[10]]
|
|
830
|
-
: (this.colors() ?? ChartColors.
|
|
786
|
+
: (this.colors() ?? ChartColors.getDataColors(series[0]?.data?.length ?? 0));
|
|
831
787
|
ChartPieOptions.configurePie(effectiveSeries, options, effectiveColors, this.labelDateFormat(), innerLabels, this.mouseEventEnabled());
|
|
832
788
|
this.chart = new Chart(this.hostElement, options);
|
|
833
789
|
}
|
|
@@ -864,7 +820,7 @@ class ChartSplineOptions extends ChartOptions {
|
|
|
864
820
|
type: 'datetime',
|
|
865
821
|
},
|
|
866
822
|
};
|
|
867
|
-
return super.build(
|
|
823
|
+
return super.build(merge(defaultSplineOptions, options), locale);
|
|
868
824
|
}
|
|
869
825
|
}
|
|
870
826
|
|
|
@@ -875,7 +831,7 @@ class ChartSplineComponent extends AbstractChartComponent {
|
|
|
875
831
|
const series = this.series();
|
|
876
832
|
const singleDayEnabled = series[0]?.data?.length === 1;
|
|
877
833
|
const options = ChartSplineOptions.buildSpline(this.chartOptions(), singleDayEnabled, this.locale());
|
|
878
|
-
ChartSplineOptions.configure(series, options, this.
|
|
834
|
+
ChartSplineOptions.configure(series, options, this.labelDateFormat());
|
|
879
835
|
this.chart = new Chart(this.hostElement, options);
|
|
880
836
|
this.chartInitialized.emit(this.chart);
|
|
881
837
|
}
|
|
@@ -896,5 +852,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
|
|
|
896
852
|
* Generated bundle index. Do not edit.
|
|
897
853
|
*/
|
|
898
854
|
|
|
899
|
-
export { AbstractChartComponent, ChartBarComponent, ChartColor, ChartColors, ChartColumnComponent, ChartHeatmapComponent, ChartMixedComponent, ChartOptions, ChartPieComponent, ChartSplineComponent
|
|
855
|
+
export { AbstractChartComponent, ChartBarComponent, ChartColor, ChartColors, ChartColumnComponent, ChartHeatmapComponent, ChartMixedComponent, ChartOptions, ChartPieComponent, ChartSplineComponent };
|
|
900
856
|
//# sourceMappingURL=agorapulse-ui-charts.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agorapulse-ui-charts.mjs","sources":["../../../libs/ui-charts/src/lib/chart-colors.ts","../../../libs/ui-charts/src/lib/abstract-chart.component.ts","../../../libs/ui-charts/src/lib/chart-locale.ts","../../../libs/ui-charts/src/lib/chart-options.ts","../../../libs/ui-charts/src/lib/chart-bar/chart-bar-options.model.ts","../../../libs/ui-charts/src/lib/chart-bar/chart-bar.component.ts","../../../libs/ui-charts/src/lib/chart-column/chart-column-options.model.ts","../../../libs/ui-charts/src/lib/chart-column/chart-column.component.ts","../../../libs/ui-charts/src/lib/chart-heatmap/chart-heatmap-options.model.ts","../../../libs/ui-charts/src/lib/chart-heatmap/chart-heatmap.component.ts","../../../libs/ui-charts/src/lib/chart-mixed/chart-mixed-options.model.ts","../../../libs/ui-charts/src/lib/chart-mixed/chart-mixed.component.ts","../../../libs/ui-charts/src/lib/chart-pie/chart-pie-options.model.ts","../../../libs/ui-charts/src/lib/chart-pie/chart-pie.component.ts","../../../libs/ui-charts/src/lib/chart-spline/chart-spline-options.model.ts","../../../libs/ui-charts/src/lib/chart-spline/chart-spline.component.ts","../../../libs/ui-charts/agorapulse-ui-charts.ts"],"sourcesContent":["export enum ChartColor {\n Grey,\n Orange,\n SoftBlue,\n ElectricBlue,\n Purple,\n Green,\n}\n\nexport class ChartColors {\n static readonly SOFT_BLUE_COLORS = {\n '10': '#EFF5FC',\n '20': '#DFEDFA',\n '40': '#C0DBF4',\n '60': '#A0C8EF',\n '85': '#78B1E8',\n '100': '#61A4E4',\n '150': '#2873BA',\n };\n static readonly ELECTRIC_BLUE_COLORS = {\n '10': '#e8f4ff',\n '20': '#d1e8ff',\n '40': '#a2d1ff',\n '60': '#74bbfe',\n '85': '#3a9efe',\n '100': '#178dfe',\n '150': '#0e72d6',\n };\n static readonly ORANGE_COLORS = {\n '10': '#FFEFE9',\n '20': '#FFE1D4',\n '40': '#FFC2A8',\n '60': '#FFA47D',\n '85': '#FF7E46',\n '100': '#FF6726',\n '150': '#C83E07',\n };\n static readonly GREEN_COLORS = {\n '10': '#ECF7ED',\n '20': '#DAF1DD',\n '40': '#B5E3BB',\n '60': '#8FD498',\n '85': '#61C26D',\n '100': '#45B854',\n '150': '#0F821D',\n };\n static readonly PURPLE_COLORS = {\n '10': '#EFEDF8',\n '20': '#E0DDF2',\n '40': '#C1BBE6',\n '60': '#A398D9',\n '85': '#7C6DC9',\n '100': '#6554C0',\n '150': '#3C2C95',\n };\n static readonly GREY_COLORS = {\n '5': '#F5F5F7',\n '10': '#EAECEF',\n '20': '#D6DAE0',\n '40': '#AEB5C1',\n '60': '#858FA1',\n '85': '#5D6A82',\n '100': '#344563',\n '150': '#212E44',\n };\n\n static readonly RED_COLORS = {\n '80': '#F17171',\n '100': '#E81313',\n '150': '#D80505',\n };\n\n /**\n * Categorical data palette — 10 distinct hues used to tell apart networks, profiles, or metrics in the same chart.\n * Order is fixed and assigned by position (1st category → DATA_COLORS[0]).\n * For more than 10 categories the palette wraps; the legend is the source of truth.\n */\n static readonly DATA_COLORS = [\n '#12AABA', // data-cyan-100\n '#D98800', // data-sun-100\n '#CC2878', // data-peony-100\n '#42B85A', // data-lime-100\n '#8A62CC', // data-iris-10\n '#CC5040', // data-cherry-100\n '#3A92E8', // data-sky-100\n '#DC6A30', // data-tangerine-100\n '#12A87A', // data-emerald-100\n '#4A6ACC', // data-navy-100\n ];\n\n /**\n * Sentiment palette — fixed mapping from sentiment to brand colors.\n * Used by sentiment widgets only; not part of the categorical data palette.\n */\n static readonly SENTIMENT_COLORS = {\n positive: '#45B854', // green-100\n neutral: '#858FA1', // grey-60\n negative: '#E81313', // red-100\n };\n\n /**\n * Heatmap / world-map palette — single shade (data-navy / data-marine) at 5 fixed opacity levels.\n * Listed in ascending intensity (20% → 100%).\n */\n static readonly HEATMAP_BASE_RGB: readonly [number, number, number] = [74, 106, 204];\n static readonly HEATMAP_OPACITIES: readonly number[] = [0.2, 0.4, 0.6, 0.8, 1];\n static readonly HEATMAP_COLORS: readonly string[] = [\n 'rgba(74, 106, 204, 0.2)',\n 'rgba(74, 106, 204, 0.4)',\n 'rgba(74, 106, 204, 0.6)',\n 'rgba(74, 106, 204, 0.8)',\n 'rgba(74, 106, 204, 1)',\n ];\n\n static readonly SOFT_RED_COLORS = {\n 100: '#ff5353',\n 85: '#ff6d6d',\n 60: '#ff9898',\n 10: '#fff9f9',\n };\n\n static readonly BLACK_COLOR: string = '#000000';\n static readonly LIMIT_COLOR: string = '#E81313';\n static readonly WHITE_COLOR: string = '#FFFFFF';\n\n static getChartColors(color: ChartColor | undefined): { [shade: string]: string } {\n switch (color) {\n case ChartColor.Orange:\n return this.ORANGE_COLORS;\n case ChartColor.SoftBlue:\n return this.SOFT_BLUE_COLORS;\n case ChartColor.ElectricBlue:\n return this.ELECTRIC_BLUE_COLORS;\n case ChartColor.Purple:\n return this.PURPLE_COLORS;\n case ChartColor.Green:\n return this.GREEN_COLORS;\n default:\n return this.GREY_COLORS;\n }\n }\n\n /**\n * Returns the categorical data color at the given 0-based position.\n * Wraps modulo `DATA_COLORS.length` (10) so position 10 reuses position 0.\n */\n static getDataColor(position: number): string {\n const palette = ChartColors.DATA_COLORS;\n return palette[((position % palette.length) + palette.length) % palette.length];\n }\n\n /**\n * Returns the first `count` data colors from the categorical palette.\n * Wraps after 10 positions.\n */\n static getDataColors(count: number): string[] {\n return Array.from({ length: Math.max(count, 0) }, (_, index) => ChartColors.getDataColor(index));\n }\n\n static getColors(seriesCount: number, color: ChartColor | undefined): string[] {\n const colors = this.getChartColors(color);\n switch (seriesCount) {\n case 1:\n return [colors[100]];\n case 2:\n return [colors[40], colors[100]];\n case 3:\n return [colors[20], colors[60], colors[100]];\n case 4:\n return [colors[20], colors[40], colors[60], colors[100]];\n case 5:\n return [colors[20], colors[40], colors[60], colors[100], colors[150]];\n default:\n return [colors[20], colors[40], colors[60], colors[85], colors[100], colors[150]];\n }\n }\n}\n","import { afterNextRender, DestroyRef, Directive, effect, ElementRef, inject, input, Signal, signal } from '@angular/core';\nimport { Chart, Options } from 'highcharts';\nimport { ChartColor } from './chart-colors';\n\n@Directive()\nexport abstract class AbstractChartComponent {\n private readonly destroyRef = inject(DestroyRef);\n\n /** Highcharts renders into the host element directly. */\n protected readonly hostElement = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n\n readonly chartOptions = input<Options>({});\n readonly color = input<ChartColor>(ChartColor.ElectricBlue);\n readonly labelDateFormat = input<string>('%m/%d');\n readonly locale = input<string>('en');\n\n protected chart?: Chart;\n private readonly viewReady = signal(false);\n private resizeObserver?: ResizeObserver;\n\n /** Subclasses expose their typed series input so the base can observe it. */\n protected abstract readonly series: Signal<readonly unknown[]>;\n\n constructor() {\n afterNextRender(() => {\n this.resizeObserver = new ResizeObserver(() => this.onResize());\n this.resizeObserver.observe(this.hostElement);\n this.viewReady.set(true);\n });\n\n // Eager init on view-ready; ResizeObserver reflows as the container grows.\n effect(() => {\n if (!this.viewReady()) return;\n this.rebuild();\n });\n\n this.destroyRef.onDestroy(() => {\n this.resizeObserver?.disconnect();\n this.chart?.destroy();\n });\n }\n\n protected abstract initChart(): void;\n\n private onResize(): void {\n if (this.chart) {\n this.chart.reflow();\n } else if (this.hostElement.clientWidth > 0 && this.series().length) {\n this.rebuild();\n }\n }\n\n private rebuild(): void {\n this.chart?.destroy();\n this.chart = undefined;\n this.initChart();\n }\n}\n","import { Options } from 'highcharts';\n\n/** `lang.locale` drives Intl-based weekday/month/number formatting; we only override the tooltip date order. */\nexport function buildHighchartsLocaleOptions(locale: string): Options {\n const dayFormat = locale === 'en' ? '%A, %b %e, %Y' : '%A %e %b %Y';\n return {\n lang: { locale },\n tooltip: {\n dateTimeLabelFormats: {\n day: dayFormat,\n week: dayFormat,\n },\n },\n };\n}\n","import { cloneDeep, isPlainObject } from 'es-toolkit';\nimport { Options, SeriesOptionsType, setOptions } from 'highcharts';\nimport { ChartColor, ChartColors } from './chart-colors';\nimport { buildHighchartsLocaleOptions } from './chart-locale';\n\nconst FONT_FAMILY = \"Averta, 'Open Sans', Helvetica, sans-serif\";\nconst LABEL_FONT_SIZE = '12px';\n\nexport class ChartOptions {\n static readonly DEFAULT_DATE_FORMAT = '%A, %b %e, %Y';\n\n static readonly DEFAULT_OPTIONS: Options = {\n chart: {\n spacingRight: 20,\n zooming: {\n type: 'xy',\n resetButton: {\n theme: {\n fill: ChartColors.WHITE_COLOR,\n r: 4,\n style: {\n color: ChartColors.GREY_COLORS[100],\n fontSize: LABEL_FONT_SIZE,\n },\n states: {\n hover: { fill: ChartColors.GREY_COLORS[5] },\n },\n },\n },\n },\n panning: { enabled: true },\n panKey: 'shift',\n style: { fontFamily: FONT_FAMILY },\n },\n colorAxis: {\n labels: { style: { color: ChartColors.GREY_COLORS[60] } },\n },\n credits: { enabled: false },\n legend: {\n borderWidth: 0,\n itemStyle: {\n color: ChartColors.GREY_COLORS[60],\n fontSize: '14px',\n fontWeight: 'normal',\n },\n itemHoverStyle: {\n color: ChartColors.GREY_COLORS[100],\n fontWeight: 'bold',\n },\n },\n plotOptions: {\n series: {\n states: {\n hover: { brightness: 0 },\n },\n connectNulls: true,\n },\n },\n navigation: {\n buttonOptions: { y: 0 },\n },\n title: { text: undefined },\n tooltip: {\n backgroundColor: ChartColors.WHITE_COLOR,\n borderRadius: 4,\n borderWidth: 0,\n dateTimeLabelFormats: {},\n shadow: {\n color: ChartColors.BLACK_COLOR,\n offsetX: 0,\n offsetY: 2,\n opacity: 0.02,\n width: 6,\n },\n split: false,\n shared: true,\n useHTML: true,\n headerFormat:\n `<div style=\"border-bottom: 1px solid ${ChartColors.GREY_COLORS[10]}; padding: 0 8px 7px\">` +\n `<div style=\"white-space: wrap; font-size: ${LABEL_FONT_SIZE}; color: ${ChartColors.GREY_COLORS[60]}\">{point.key}</div></div>`,\n pointFormat:\n `<div style=\"font-size: 14px; color: ${ChartColors.GREY_COLORS[100]}; margin: 6px 8px 0 8px;\">` +\n '<span style=\"color:{point.color}\">●</span> {series.name}: <b>{point.y}</b> {point.custom.details}</div>',\n },\n xAxis: {\n gridLineColor: ChartColors.GREY_COLORS[10],\n lineColor: ChartColors.GREY_COLORS[10],\n tickColor: ChartColors.GREY_COLORS[10],\n gridLineWidth: 1,\n title: { text: null },\n labels: {\n style: {\n color: ChartColors.GREY_COLORS[85],\n fontSize: LABEL_FONT_SIZE,\n },\n },\n },\n yAxis: {\n allowDecimals: false,\n gridLineColor: ChartColors.GREY_COLORS[10],\n lineColor: ChartColors.GREY_COLORS[10],\n gridLineWidth: 1,\n title: { text: undefined },\n labels: {\n // Highcharts auto-formats per `lang.locale`.\n style: {\n color: ChartColors.GREY_COLORS[85],\n fontSize: LABEL_FONT_SIZE,\n },\n },\n },\n };\n\n static build(options: Options, locale: string): Options {\n const localeOptions = buildHighchartsLocaleOptions(locale);\n setOptions({ lang: localeOptions.lang });\n return mergeDeep(mergeDeep(ChartOptions.DEFAULT_OPTIONS, localeOptions), options);\n }\n\n static configure(series: SeriesOptionsType[], options: Options, color: ChartColor | undefined, labelDateFormat?: string): void {\n options.xAxis = mergeDeep({ labels: { format: `{value:${labelDateFormat ?? '%m/%d'}}` } }, options.xAxis);\n if (series?.length) {\n options.series = series;\n if (options.legend) {\n options.legend.enabled = options.legend.enabled ?? series.length >= 2;\n }\n options.colors = ChartColors.getColors(series.length, color);\n }\n }\n}\n\n/** Deep-merge clone (immutable). Arrays are replaced wholesale, not element-merged like `es-toolkit`'s `toMerged`. */\nexport function mergeDeep(target: any, source: any): any {\n if (!isPlainObject(target) || !isPlainObject(source)) {\n return target;\n }\n const output = cloneDeep(target) as Record<string, unknown>;\n for (const key of Object.keys(source)) {\n const sourceValue = source[key];\n if (isPlainObject(sourceValue)) {\n output[key] = key in target ? mergeDeep(target[key], sourceValue) : cloneDeep(sourceValue);\n } else {\n output[key] = sourceValue;\n }\n }\n return output;\n}\n","import { Options, PlotBarOptions, SeriesBarOptions, XAxisOptions, YAxisOptions } from 'highcharts';\nimport { ChartOptions, mergeDeep } from '../chart-options';\nimport { ChartColor } from './../chart-colors';\n\nexport class ChartBarOptions extends ChartOptions {\n static buildBars(options: Options, stacked: boolean, opposite: boolean, locale: string): Options {\n const bar: PlotBarOptions = {\n maxPointWidth: 20,\n };\n if (stacked || opposite) {\n // `opposite` = diverging left/right bars (one series flipped to negative).\n bar.stacking = 'normal';\n bar.borderRadius = { radius: '50%', scope: 'stack', where: 'end' };\n } else {\n bar.borderRadius = '50%';\n }\n\n const defaultBarOptions: Options = {\n chart: {\n type: 'bar',\n },\n legend: {\n symbolHeight: 10,\n },\n xAxis: {\n categories: undefined,\n gridLineWidth: 0,\n lineWidth: 0,\n reversed: false,\n tickWidth: 0,\n labels: {\n align: 'center',\n formatter(): string {\n if (this.value && this.value.toString().length > 16) {\n return this.value.toString().substring(0, 15) + '...';\n }\n return this.value.toString();\n },\n style: {\n width: 100,\n },\n },\n type: 'category',\n },\n yAxis: {\n type: 'linear',\n minTickInterval: 1,\n },\n plotOptions: {\n bar,\n series: {\n borderWidth: 0,\n },\n },\n };\n return super.build(mergeDeep(defaultBarOptions, options), locale);\n }\n\n static configureBar(\n series: SeriesBarOptions[],\n categories: string[],\n options: Options,\n opposite: boolean,\n color: ChartColor,\n labelDateFormat?: string\n ): void {\n ChartOptions.configure(series, options, color, labelDateFormat);\n if (categories?.length) {\n (options.xAxis as XAxisOptions).categories = categories;\n }\n if (opposite && series.length === 2) {\n const negativeSerie = series[0];\n // Flip the first series negative so it stacks left of zero.\n negativeSerie.data = negativeSerie.data?.map((point: any) => {\n if (point && isNaN(point)) {\n return { ...point, y: -Math.abs(point.y) };\n }\n if (!isNaN(point)) {\n return -Math.abs(point);\n }\n return point;\n });\n const yAxisLabels = (options.yAxis as YAxisOptions).labels;\n if (yAxisLabels) {\n yAxisLabels.formatter = function (): string {\n return Math.abs(+this.value) + '%';\n };\n }\n if (options.tooltip) {\n options.tooltip.pointFormatter = function (): string {\n return `<div style=\"font-size: 14px; color: #344563; margin: 6px 8px 0 8px;\"><span style=\"color:${\n this.color\n };\">●</span> ${this.series.name}: <b>${Math.abs(this.y ?? 0) + '%'}</b></div>`;\n };\n }\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { Chart, SeriesBarOptions } from 'highcharts';\nimport { AbstractChartComponent } from '../abstract-chart.component';\nimport { ChartBarOptions } from './chart-bar-options.model';\n\n@Component({\n selector: 'ap-chart-bar',\n template: '',\n host: { style: 'display: block' },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ChartBarComponent extends AbstractChartComponent {\n readonly categories = input<string[]>([]);\n readonly opposite = input(false);\n readonly stacked = input(false);\n readonly series = input<SeriesBarOptions[]>([]);\n\n initChart(): void {\n const options = ChartBarOptions.buildBars(this.chartOptions(), this.stacked(), this.opposite(), this.locale());\n ChartBarOptions.configureBar(\n this.series(),\n this.categories(),\n options,\n this.opposite(),\n this.color(),\n this.labelDateFormat()\n );\n this.chart = new Chart(this.hostElement, options);\n }\n}\n","import { Options, PlotColumnOptions } from 'highcharts';\nimport { ChartOptions, mergeDeep } from '../chart-options';\n\nexport class ChartColumnOptions extends ChartOptions {\n static buildColumn(options: Options, stacked: boolean, locale: string): Options {\n const column: PlotColumnOptions = {\n borderWidth: 0,\n crisp: false,\n maxPointWidth: 20,\n // Round only the value-side end; `scope: 'stack'` keeps middle segments square.\n borderRadius: stacked ? { radius: '50%', scope: 'stack', where: 'end' } : '50%',\n };\n if (stacked) {\n column.stacking = 'normal';\n }\n\n const defaultColumnOptions: Options = {\n chart: {\n type: 'column',\n },\n legend: {\n symbolHeight: 10,\n },\n plotOptions: {\n column,\n },\n xAxis: {\n type: 'datetime',\n minTickInterval: 1,\n },\n };\n return super.build(mergeDeep(defaultColumnOptions, options), locale);\n }\n}\n","import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { Chart, SeriesColumnOptions } from 'highcharts';\nimport { AbstractChartComponent } from '../abstract-chart.component';\nimport { ChartColumnOptions } from './chart-column-options.model';\n\n@Component({\n selector: 'ap-chart-column',\n template: '',\n host: { style: 'display: block' },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ChartColumnComponent extends AbstractChartComponent {\n readonly stacked = input(false);\n readonly series = input<SeriesColumnOptions[]>([]);\n\n readonly chartInitialized = output<Chart>();\n\n initChart(): void {\n const options = ChartColumnOptions.buildColumn(this.chartOptions(), this.stacked(), this.locale());\n ChartColumnOptions.configure(this.series(), options, this.color(), this.labelDateFormat());\n this.chart = new Chart(this.hostElement, options);\n this.chartInitialized.emit(this.chart);\n }\n}\n","import type {\n AxisLabelsFormatterCallbackFunction,\n ColorAxisOptions,\n Options,\n PointOptionsObject,\n SeriesHeatmapOptions,\n SeriesOptionsType,\n XAxisOptions,\n YAxisOptions,\n} from 'highcharts';\nimport { ChartColor, ChartColors } from '../chart-colors';\nimport { ChartOptions, mergeDeep } from '../chart-options';\n\nconst HEATMAP_CONSTANTS = {\n CHART_HEIGHT: 680,\n GRID_LINE_WIDTH: 2,\n BORDER_WIDTH: 1,\n FONT_SIZE: '13px',\n HEADER_FONT_SIZE: '12px',\n TOOLTIP_FONT_SIZE: '14px',\n LEGEND_SYMBOL_WIDTH: 300,\n LEGEND_SYMBOL_HEIGHT: 10,\n DEFAULT_TICK_AMOUNT: 6,\n DEFAULT_MAX_VALUE: 3,\n MIN_VALUE: 0,\n FONT_WEIGHT: 'normal',\n} as const;\n\nconst COLORS = {\n WHITE: '#FFFFFF',\n GRID_LINE: 'white',\n NULL_COLOR: 'white',\n DEFAULT_FONT_COLOR: '#858FA1',\n} as const;\n\nexport class ChartHeatmapOptions extends ChartOptions {\n static override build(options: Options, locale: string): Options {\n const defaultHeatmapOptions: Options = {\n chart: {\n type: 'heatmap',\n height: HEATMAP_CONSTANTS.CHART_HEIGHT,\n },\n colorAxis: {\n allowDecimals: false,\n gridLineWidth: HEATMAP_CONSTANTS.GRID_LINE_WIDTH,\n gridLineColor: COLORS.GRID_LINE,\n min: HEATMAP_CONSTANTS.MIN_VALUE,\n minColor: COLORS.WHITE,\n labels: {\n style: {\n fontWeight: HEATMAP_CONSTANTS.FONT_WEIGHT,\n fontSize: HEATMAP_CONSTANTS.FONT_SIZE,\n color: COLORS.DEFAULT_FONT_COLOR,\n },\n overflow: 'allow',\n },\n },\n legend: {\n enabled: true,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'bottom',\n symbolWidth: HEATMAP_CONSTANTS.LEGEND_SYMBOL_WIDTH,\n symbolHeight: HEATMAP_CONSTANTS.LEGEND_SYMBOL_HEIGHT,\n },\n plotOptions: {\n heatmap: {\n borderColor: ChartColors.GREY_COLORS[10],\n borderWidth: HEATMAP_CONSTANTS.BORDER_WIDTH,\n nullColor: COLORS.NULL_COLOR,\n },\n },\n tooltip: {\n headerFormat: '',\n pointFormat:\n `<div style=\"border-bottom: 1px solid ${ChartColors.GREY_COLORS[10]}; padding: 0 8px 7px\">` +\n `<span style=\"font-size: ${HEATMAP_CONSTANTS.HEADER_FONT_SIZE}; color: ${ChartColors.GREY_COLORS[60]}\">{point.tooltipHeaderLabel}</span></div>` +\n `<div style=\"font-size: ${HEATMAP_CONSTANTS.TOOLTIP_FONT_SIZE}; color: ${ChartColors.GREY_COLORS[100]}; margin: 6px 8px 0 8px;\">` +\n `<span style=\"color:{point.color}\">●</span> {series.name}: <b>{point.value}{point.unit}</b></div>`,\n },\n xAxis: {\n lineWidth: 1,\n tickWidth: 0,\n visible: true,\n },\n yAxis: {\n lineWidth: 0,\n labels: { step: 3 },\n reversed: true,\n visible: true,\n },\n };\n return super.build(mergeDeep(defaultHeatmapOptions, options), locale);\n }\n\n static configureHeatmap(\n categoriesX: string[],\n categoriesY: string[],\n series: SeriesOptionsType[],\n options: Options,\n color: ChartColor,\n leastLabel?: string,\n mostLabel?: string,\n labelDateFormat?: string\n ): void {\n super.configure(series, options, color, labelDateFormat);\n\n if (categoriesX?.length) {\n (options.xAxis as XAxisOptions).categories = categoriesX;\n }\n if (categoriesY?.length) {\n (options.yAxis as YAxisOptions).categories = categoriesY;\n }\n\n const data = ((series[0] as SeriesHeatmapOptions).data ?? []) as PointOptionsObject[];\n const maxValue = data.reduce((max, point) => Math.max(max, point.value ?? 0), 0) || HEATMAP_CONSTANTS.DEFAULT_MAX_VALUE;\n const labelsEnabled = !!(leastLabel && mostLabel);\n\n // `tickAmount` spreads ticks evenly between min and max.\n options.colorAxis = {\n ...(options.colorAxis ?? {}),\n visible: labelsEnabled,\n min: HEATMAP_CONSTANTS.MIN_VALUE,\n max: maxValue,\n tickAmount: HEATMAP_CONSTANTS.DEFAULT_TICK_AMOUNT,\n maxColor: ChartColors.getChartColors(color)[100],\n };\n\n if (labelsEnabled) {\n options.colorAxis.labels = {\n ...((options.colorAxis as ColorAxisOptions)?.labels ?? {}),\n formatter: createColorAxisFormatter(leastLabel, mostLabel),\n };\n }\n }\n}\n\nfunction createColorAxisFormatter(leastLabel: string, mostLabel: string): AxisLabelsFormatterCallbackFunction {\n return function () {\n if (this.value === this.axis.min) return leastLabel;\n if (this.value === this.axis.max) return mostLabel;\n return '';\n };\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { SeriesHeatmapOptions } from 'highcharts';\nimport { mapChart } from 'highcharts/highmaps';\nimport { AbstractChartComponent } from '../abstract-chart.component';\nimport { ChartHeatmapOptions } from './chart-heatmap-options.model';\n\ntype LegendLabels = { least: string; most: string };\n\n@Component({\n selector: 'ap-chart-heatmap',\n template: '',\n host: { style: 'display: block' },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ChartHeatmapComponent extends AbstractChartComponent {\n readonly categoriesX = input<string[]>([]);\n readonly categoriesY = input<string[]>([]);\n readonly series = input<SeriesHeatmapOptions[]>([]);\n readonly legendLabels = input<LegendLabels>();\n\n protected initChart(): void {\n const labels = this.legendLabels();\n const options = ChartHeatmapOptions.build(this.chartOptions(), this.locale());\n ChartHeatmapOptions.configureHeatmap(\n this.categoriesX(),\n this.categoriesY(),\n this.series(),\n options,\n this.color(),\n labels?.least,\n labels?.most,\n this.labelDateFormat()\n );\n this.chart = mapChart(this.hostElement, options);\n }\n}\n","import { Options } from 'highcharts';\nimport { ChartOptions, mergeDeep } from '../chart-options';\n\nexport class ChartMixedOptions extends ChartOptions {\n static buildMixed(options: Options, singleDayEnabled: boolean, locale: string): Options {\n const defaultOptions: Options = {\n chart: {\n type: 'column',\n },\n legend: {\n symbolHeight: 10,\n },\n plotOptions: {\n series: {\n marker: {\n enabled: singleDayEnabled,\n radius: singleDayEnabled ? 5 : 2,\n symbol: 'circle',\n },\n lineWidth: 4,\n },\n column: {\n stacking: 'normal',\n borderWidth: 0,\n maxPointWidth: 20,\n borderRadius: { radius: '50%', scope: 'stack', where: 'end' },\n },\n },\n xAxis: {\n type: 'datetime',\n },\n };\n return super.build(mergeDeep(defaultOptions, options), locale);\n }\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { Chart, SeriesOptionsType, SeriesSplineOptions } from 'highcharts';\nimport { AbstractChartComponent } from '../abstract-chart.component';\nimport { ChartMixedOptions } from './chart-mixed-options.model';\n\n@Component({\n selector: 'ap-chart-mixed',\n template: '',\n host: { style: 'display: block' },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ChartMixedComponent extends AbstractChartComponent {\n readonly series = input<SeriesOptionsType[]>([]);\n\n protected initChart(): void {\n const series = this.series();\n const splineSeries = series.find(serie => serie.type === 'spline') as SeriesSplineOptions | undefined;\n const singleDayEnabled = splineSeries?.data?.length === 1;\n const options = ChartMixedOptions.buildMixed(this.chartOptions(), singleDayEnabled, this.locale());\n ChartMixedOptions.configure(series, options, this.color(), this.labelDateFormat());\n this.chart = new Chart(this.hostElement, options);\n }\n}\n","import { round } from 'es-toolkit';\nimport { numberFormat, Options, SeriesPieOptions } from 'highcharts';\nimport { ChartColors } from '../chart-colors';\nimport { ChartOptions, mergeDeep } from '../chart-options';\n\nconst NAME_MAX_LENGTH = 30;\n// RTL scripts (Hebrew, Arabic, …).\nconst RIGHT_TO_LEFT_CHARACTERS =\n /[\\p{Script=Arabic}\\p{Script=Hebrew}\\p{Script=Syriac}\\p{Script=Thaana}\\p{Script=Nko}\\p{Script=Samaritan}\\p{Script=Mandaic}]/u;\nconst RIGHT_TO_LEFT_EMBEDDING_CHARACTER = '';\n\nexport class ChartPieOptions extends ChartOptions {\n static buildPie(options: Options, innerLabels: boolean, metricFormat: 'percentage' | 'value', locale: string): Options {\n const defaultPieOptions: Options = {\n chart: {\n type: 'pie',\n plotBackgroundColor: undefined,\n plotBorderWidth: undefined,\n plotShadow: false,\n },\n plotOptions: {\n pie: {\n dataLabels: {\n distance: innerLabels ? -40 : 30,\n useHTML: true,\n },\n innerSize: '50%',\n },\n series: {\n allowPointSelect: !innerLabels,\n dataLabels: innerLabels ? buildInnerLabels(metricFormat) : buildOuterLabels(metricFormat),\n showInLegend: innerLabels,\n },\n },\n tooltip: {\n outside: true,\n },\n legend: innerLabels ? { symbolHeight: 10, enabled: true } : {},\n };\n return super.build(mergeDeep(defaultPieOptions, options), locale);\n }\n\n static configurePie(\n series: SeriesPieOptions[],\n options: Options,\n colors: string[],\n labelDateFormat: string,\n innerLabels: boolean,\n mouseEventEnabled = true\n ): void {\n super.configure(series, options, undefined, labelDateFormat);\n if (innerLabels && options.legend) {\n options.legend.enabled = true;\n }\n if (!series?.[0]) {\n return;\n }\n options.colors = colors;\n // Otherwise we rely on Highcharts' default `states.inactive.opacity` to fade non-hovered slices.\n if (!mouseEventEnabled) {\n options.plotOptions ??= {};\n options.plotOptions.pie ??= {};\n options.plotOptions.pie.enableMouseTracking = false;\n }\n }\n}\n\nfunction buildInnerLabels(metricFormat: 'percentage' | 'value') {\n return {\n format: metricFormat === 'percentage' ? '{point.percentage:.1f}%' : '{point.y}',\n style: {\n fontSize: '16px',\n color: 'white',\n textOutline: '0',\n },\n };\n}\n\nfunction buildOuterLabels(metricFormat: 'percentage' | 'value') {\n return {\n formatter(this: { name: string; percentage?: number; y?: number | null }): string {\n const truncatedName = this.name.length > NAME_MAX_LENGTH ? this.name.substring(0, NAME_MAX_LENGTH) + '...' : this.name;\n const displayValue =\n metricFormat === 'percentage' ? numberFormat(round(this.percentage ?? 0, 1), -1) + '%' : numberFormat(this.y ?? 0, -1);\n const prefix = RIGHT_TO_LEFT_CHARACTERS.test(this.name.charAt(0)) ? RIGHT_TO_LEFT_EMBEDDING_CHARACTER : '';\n return prefix + truncatedName + ': ' + displayValue;\n },\n style: {\n fontSize: '12px',\n color: ChartColors.GREY_COLORS[60],\n },\n };\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { Chart, SeriesPieOptions } from 'highcharts';\nimport { AbstractChartComponent } from '../abstract-chart.component';\nimport { ChartColors } from '../chart-colors';\nimport { ChartPieOptions } from './chart-pie-options.model';\n\n@Component({\n selector: 'ap-chart-pie',\n template: '',\n host: { style: 'display: block' },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ChartPieComponent extends AbstractChartComponent {\n readonly innerLabels = input(false);\n readonly mouseEventEnabled = input(true);\n readonly series = input<SeriesPieOptions[]>([]);\n readonly colors = input<string[]>();\n readonly metricFormat = input<'percentage' | 'value'>('percentage');\n\n protected initChart(): void {\n const series = this.series();\n const innerLabels = this.innerLabels();\n const dataAvailable = !!series[0]?.data?.length;\n const options = ChartPieOptions.buildPie(this.chartOptions(), innerLabels, this.metricFormat(), this.locale());\n\n const effectiveSeries: SeriesPieOptions[] = dataAvailable\n ? series\n : [\n {\n type: 'pie',\n data: [{ y: 1, dataLabels: { enabled: false } }],\n enableMouseTracking: false,\n },\n ];\n\n const effectiveColors = !dataAvailable\n ? [ChartColors.GREY_COLORS[10]]\n : (this.colors() ?? ChartColors.getColors(series[0]?.data?.length ?? 0, this.color()));\n\n ChartPieOptions.configurePie(\n effectiveSeries,\n options,\n effectiveColors,\n this.labelDateFormat(),\n innerLabels,\n this.mouseEventEnabled()\n );\n this.chart = new Chart(this.hostElement, options);\n }\n}\n","import { Options } from 'highcharts';\nimport { ChartOptions, mergeDeep } from '../chart-options';\n\nexport class ChartSplineOptions extends ChartOptions {\n static buildSpline(options: Options, singleDayEnabled: boolean, locale: string): Options {\n const defaultSplineOptions: Options = {\n chart: {\n type: 'spline',\n },\n plotOptions: {\n series: {\n marker: {\n enabled: singleDayEnabled,\n radius: singleDayEnabled ? 5 : 2,\n symbol: 'circle',\n },\n lineWidth: 4\n },\n },\n xAxis: {\n type: 'datetime',\n },\n };\n return super.build(mergeDeep(defaultSplineOptions, options), locale);\n }\n}\n","import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { Chart, SeriesSplineOptions } from 'highcharts';\nimport { AbstractChartComponent } from '../abstract-chart.component';\nimport { ChartSplineOptions } from './chart-spline-options.model';\n\n@Component({\n selector: 'ap-chart-spline',\n template: '',\n host: { style: 'display: block' },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ChartSplineComponent extends AbstractChartComponent {\n readonly series = input<SeriesSplineOptions[]>([]);\n\n readonly chartInitialized = output<Chart>();\n\n protected initChart(): void {\n const series = this.series();\n const singleDayEnabled = series[0]?.data?.length === 1;\n const options = ChartSplineOptions.buildSpline(this.chartOptions(), singleDayEnabled, this.locale());\n ChartSplineOptions.configure(series, options, this.color(), this.labelDateFormat());\n this.chart = new Chart(this.hostElement, options);\n this.chartInitialized.emit(this.chart);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agorapulse-ui-charts.mjs","sources":["../../../libs/ui-charts/src/lib/chart-colors.ts","../../../libs/ui-charts/src/lib/abstract-chart.component.ts","../../../libs/ui-charts/src/lib/chart-locale.ts","../../../libs/ui-charts/src/lib/chart-options.ts","../../../libs/ui-charts/src/lib/chart-bar/chart-bar-options.model.ts","../../../libs/ui-charts/src/lib/chart-bar/chart-bar.component.ts","../../../libs/ui-charts/src/lib/chart-column/chart-column-options.model.ts","../../../libs/ui-charts/src/lib/chart-column/chart-column.component.ts","../../../libs/ui-charts/src/lib/chart-heatmap/chart-heatmap-options.model.ts","../../../libs/ui-charts/src/lib/chart-heatmap/chart-heatmap.component.ts","../../../libs/ui-charts/src/lib/chart-mixed/chart-mixed-options.model.ts","../../../libs/ui-charts/src/lib/chart-mixed/chart-mixed.component.ts","../../../libs/ui-charts/src/lib/chart-pie/chart-pie-options.model.ts","../../../libs/ui-charts/src/lib/chart-pie/chart-pie.component.ts","../../../libs/ui-charts/src/lib/chart-spline/chart-spline-options.model.ts","../../../libs/ui-charts/src/lib/chart-spline/chart-spline.component.ts","../../../libs/ui-charts/agorapulse-ui-charts.ts"],"sourcesContent":["export enum ChartColor {\n Grey,\n Orange,\n SoftBlue,\n ElectricBlue,\n Purple,\n Green,\n}\n\nexport class ChartColors {\n static readonly SOFT_BLUE_COLORS = {\n '10': '#EFF5FC',\n '20': '#DFEDFA',\n '40': '#C0DBF4',\n '60': '#A0C8EF',\n '85': '#78B1E8',\n '100': '#61A4E4',\n '150': '#2873BA',\n };\n static readonly ELECTRIC_BLUE_COLORS = {\n '10': '#e8f4ff',\n '20': '#d1e8ff',\n '40': '#a2d1ff',\n '60': '#74bbfe',\n '85': '#3a9efe',\n '100': '#178dfe',\n '150': '#0e72d6',\n };\n static readonly ORANGE_COLORS = {\n '10': '#FFEFE9',\n '20': '#FFE1D4',\n '40': '#FFC2A8',\n '60': '#FFA47D',\n '85': '#FF7E46',\n '100': '#FF6726',\n '150': '#C83E07',\n };\n static readonly GREEN_COLORS = {\n '10': '#ECF7ED',\n '20': '#DAF1DD',\n '40': '#B5E3BB',\n '60': '#8FD498',\n '85': '#61C26D',\n '100': '#45B854',\n '150': '#0F821D',\n };\n static readonly PURPLE_COLORS = {\n '10': '#EFEDF8',\n '20': '#E0DDF2',\n '40': '#C1BBE6',\n '60': '#A398D9',\n '85': '#7C6DC9',\n '100': '#6554C0',\n '150': '#3C2C95',\n };\n static readonly GREY_COLORS = {\n '5': '#F5F5F7',\n '10': '#EAECEF',\n '20': '#D6DAE0',\n '40': '#AEB5C1',\n '60': '#858FA1',\n '85': '#5D6A82',\n '100': '#344563',\n '150': '#212E44',\n };\n\n static readonly RED_COLORS = {\n '80': '#F17171',\n '100': '#E81313',\n '150': '#D80505',\n };\n\n /**\n * Categorical data palette — 10 distinct hues used to tell apart networks, profiles, or metrics in the same chart.\n * Order is fixed and assigned by position (1st category → DATA_COLORS[0]).\n * For more than 10 categories the palette wraps; the legend is the source of truth.\n */\n static readonly DATA_COLORS = [\n '#12AABA', // data-cyan-100\n '#D98800', // data-sun-100\n '#CC2878', // data-peony-100\n '#42B85A', // data-lime-100\n '#8A62CC', // data-iris-10\n '#CC5040', // data-cherry-100\n '#3A92E8', // data-sky-100\n '#DC6A30', // data-tangerine-100\n '#12A87A', // data-emerald-100\n '#4A6ACC', // data-navy-100\n ];\n\n /**\n * Sentiment palette — fixed mapping from sentiment to brand colors.\n * Used by sentiment widgets only; not part of the categorical data palette.\n */\n static readonly SENTIMENT_COLORS = {\n positive: '#45B854', // green-100\n neutral: '#858FA1', // grey-60\n negative: '#E81313', // red-100\n };\n\n static readonly HEATMAP_COLOR: string = '#4A6ACC';\n\n static readonly SOFT_RED_COLORS = {\n 100: '#ff5353',\n 85: '#ff6d6d',\n 60: '#ff9898',\n 10: '#fff9f9',\n };\n\n static readonly BLACK_COLOR: string = '#000000';\n static readonly LIMIT_COLOR: string = '#E81313';\n static readonly WHITE_COLOR: string = '#FFFFFF';\n\n static getChartColors(color: ChartColor | undefined): { [shade: string]: string } {\n switch (color) {\n case ChartColor.Orange:\n return this.ORANGE_COLORS;\n case ChartColor.SoftBlue:\n return this.SOFT_BLUE_COLORS;\n case ChartColor.ElectricBlue:\n return this.ELECTRIC_BLUE_COLORS;\n case ChartColor.Purple:\n return this.PURPLE_COLORS;\n case ChartColor.Green:\n return this.GREEN_COLORS;\n default:\n return this.GREY_COLORS;\n }\n }\n\n /**\n * Returns the categorical data color at the given 0-based position.\n * Wraps modulo `DATA_COLORS.length` (10) so position 10 reuses position 0.\n */\n static getDataColor(position: number): string {\n const palette = ChartColors.DATA_COLORS;\n return palette[((position % palette.length) + palette.length) % palette.length];\n }\n\n /**\n * Returns the first `count` data colors from the categorical palette.\n * Wraps after 10 positions.\n */\n static getDataColors(count: number): string[] {\n return Array.from({ length: Math.max(count, 0) }, (_, index) => ChartColors.getDataColor(index));\n }\n}\n","import { afterNextRender, DestroyRef, Directive, effect, ElementRef, inject, input, Signal, signal } from '@angular/core';\nimport { Chart, Options } from 'highcharts';\nimport { ChartColor } from './chart-colors';\n\n@Directive()\nexport abstract class AbstractChartComponent {\n private readonly destroyRef = inject(DestroyRef);\n\n /** Highcharts renders into the host element directly. */\n protected readonly hostElement = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n\n readonly chartOptions = input<Options>({});\n readonly color = input<ChartColor>(ChartColor.ElectricBlue);\n readonly labelDateFormat = input<string>('%m/%d');\n readonly locale = input<string>('en');\n\n protected chart?: Chart;\n private readonly viewReady = signal(false);\n private resizeObserver?: ResizeObserver;\n\n /** Subclasses expose their typed series input so the base can observe it. */\n protected abstract readonly series: Signal<readonly unknown[]>;\n\n constructor() {\n afterNextRender(() => {\n this.resizeObserver = new ResizeObserver(() => this.onResize());\n this.resizeObserver.observe(this.hostElement);\n this.viewReady.set(true);\n });\n\n // Eager init on view-ready; ResizeObserver reflows as the container grows.\n effect(() => {\n if (!this.viewReady()) return;\n this.rebuild();\n });\n\n this.destroyRef.onDestroy(() => {\n this.resizeObserver?.disconnect();\n this.chart?.destroy();\n });\n }\n\n protected abstract initChart(): void;\n\n private onResize(): void {\n if (this.chart) {\n this.chart.reflow();\n } else if (this.hostElement.clientWidth > 0 && this.series().length) {\n this.rebuild();\n }\n }\n\n private rebuild(): void {\n this.chart?.destroy();\n this.chart = undefined;\n this.initChart();\n }\n}\n","import { Options } from 'highcharts';\n\n/** `lang.locale` drives Intl-based weekday/month/number formatting; we only override the tooltip date order. */\nexport function buildHighchartsLocaleOptions(locale: string): Options {\n const dayFormat = locale === 'en' ? '%A, %b %e, %Y' : '%A %e %b %Y';\n return {\n lang: { locale },\n tooltip: {\n dateTimeLabelFormats: {\n day: dayFormat,\n week: dayFormat,\n },\n },\n };\n}\n","import { merge, Options, SeriesOptionsType, setOptions } from 'highcharts';\nimport { ChartColors } from './chart-colors';\nimport { buildHighchartsLocaleOptions } from './chart-locale';\n\nconst FONT_FAMILY = \"Averta, 'Open Sans', Helvetica, sans-serif\";\nconst LABEL_FONT_SIZE = '12px';\n\nexport class ChartOptions {\n static readonly DEFAULT_DATE_FORMAT = '%A, %b %e, %Y';\n\n static readonly DEFAULT_OPTIONS: Options = {\n chart: {\n spacingRight: 20,\n zooming: {\n type: 'xy',\n resetButton: {\n theme: {\n fill: ChartColors.WHITE_COLOR,\n r: 4,\n style: {\n color: ChartColors.GREY_COLORS[100],\n fontSize: LABEL_FONT_SIZE,\n },\n states: {\n hover: { fill: ChartColors.GREY_COLORS[5] },\n },\n },\n },\n },\n panning: { enabled: true },\n panKey: 'shift',\n style: { fontFamily: FONT_FAMILY },\n },\n colorAxis: {\n labels: { style: { color: ChartColors.GREY_COLORS[60] } },\n },\n credits: { enabled: false },\n legend: {\n borderWidth: 0,\n itemStyle: {\n color: ChartColors.GREY_COLORS[60],\n fontSize: '14px',\n fontWeight: 'normal',\n },\n itemHoverStyle: {\n color: ChartColors.GREY_COLORS[100],\n fontWeight: 'bold',\n },\n },\n plotOptions: {\n series: {\n states: {\n hover: { brightness: 0 },\n inactive: { enabled: true, opacity: 0.2 },\n },\n connectNulls: true,\n },\n },\n navigation: {\n buttonOptions: { y: 0 },\n },\n title: { text: undefined },\n tooltip: {\n backgroundColor: ChartColors.WHITE_COLOR,\n borderRadius: 4,\n borderWidth: 0,\n dateTimeLabelFormats: {},\n shadow: {\n color: ChartColors.BLACK_COLOR,\n offsetX: 0,\n offsetY: 2,\n opacity: 0.02,\n width: 6,\n },\n split: false,\n // Per-point tooltip — required for the hover-fade (other series dim when one is hovered).\n // Override per-chart with `chartOptions: { tooltip: { shared: true } }` (drops the fade there).\n shared: false,\n useHTML: true,\n headerFormat:\n `<div style=\"border-bottom: 1px solid ${ChartColors.GREY_COLORS[10]}; padding: 0 8px 7px\">` +\n `<div style=\"white-space: wrap; font-size: ${LABEL_FONT_SIZE}; color: ${ChartColors.GREY_COLORS[60]}\">{point.key}</div></div>`,\n pointFormat:\n `<div style=\"font-size: 14px; color: ${ChartColors.GREY_COLORS[100]}; margin: 6px 8px 0 8px;\">` +\n '<span style=\"color:{point.color}\">●</span> {series.name}: <b>{point.y}</b> {point.custom.details}</div>',\n },\n xAxis: {\n gridLineColor: ChartColors.GREY_COLORS[10],\n lineColor: ChartColors.GREY_COLORS[10],\n tickColor: ChartColors.GREY_COLORS[10],\n gridLineWidth: 1,\n title: { text: null },\n labels: {\n style: {\n color: ChartColors.GREY_COLORS[85],\n fontSize: LABEL_FONT_SIZE,\n },\n },\n },\n yAxis: {\n allowDecimals: false,\n gridLineColor: ChartColors.GREY_COLORS[10],\n lineColor: ChartColors.GREY_COLORS[10],\n gridLineWidth: 1,\n title: { text: undefined },\n labels: {\n // Highcharts auto-formats per `lang.locale`.\n style: {\n color: ChartColors.GREY_COLORS[85],\n fontSize: LABEL_FONT_SIZE,\n },\n },\n },\n };\n\n static build(options: Options, locale: string): Options {\n const localeOptions = buildHighchartsLocaleOptions(locale);\n setOptions({ lang: localeOptions.lang });\n return merge(ChartOptions.DEFAULT_OPTIONS, localeOptions, options);\n }\n\n static configure(series: SeriesOptionsType[], options: Options, labelDateFormat?: string): void {\n options.xAxis = merge({ labels: { format: `{value:${labelDateFormat ?? '%m/%d'}}` } }, options.xAxis);\n if (series?.length) {\n options.series = series;\n if (options.legend) {\n options.legend.enabled = options.legend.enabled ?? series.length >= 2;\n }\n options.colors = options.colors ?? ChartColors.getDataColors(series.length);\n }\n }\n}\n","import { Options, PlotBarOptions, SeriesBarOptions, XAxisOptions, YAxisOptions, merge } from 'highcharts';\nimport { ChartOptions } from '../chart-options';\n\nexport class ChartBarOptions extends ChartOptions {\n static buildBars(options: Options, stacked: boolean, opposite: boolean, locale: string): Options {\n const bar: PlotBarOptions = {\n maxPointWidth: 20,\n };\n if (stacked || opposite) {\n // `opposite` = diverging left/right bars (one series flipped to negative).\n bar.stacking = 'normal';\n bar.borderRadius = { radius: '50%', scope: 'stack', where: 'end' };\n } else {\n bar.borderRadius = '50%';\n }\n\n const defaultBarOptions: Options = {\n chart: {\n type: 'bar',\n },\n legend: {\n symbolHeight: 10,\n },\n xAxis: {\n categories: undefined,\n gridLineWidth: 0,\n lineWidth: 0,\n reversed: false,\n tickWidth: 0,\n labels: {\n align: 'center',\n formatter(): string {\n if (this.value && this.value.toString().length > 16) {\n return this.value.toString().substring(0, 15) + '...';\n }\n return this.value.toString();\n },\n style: {\n width: 100,\n },\n },\n type: 'category',\n },\n yAxis: {\n type: 'linear',\n minTickInterval: 1,\n },\n plotOptions: {\n bar,\n series: {\n borderWidth: 0,\n },\n },\n };\n return super.build(merge(defaultBarOptions, options), locale);\n }\n\n static configureBar(\n series: SeriesBarOptions[],\n categories: string[],\n options: Options,\n opposite: boolean,\n labelDateFormat?: string\n ): void {\n ChartOptions.configure(series, options, labelDateFormat);\n if (categories?.length) {\n (options.xAxis as XAxisOptions).categories = categories;\n }\n if (opposite && series.length === 2) {\n const negativeSerie = series[0];\n // Flip the first series negative so it stacks left of zero.\n negativeSerie.data = negativeSerie.data?.map((point: any) => {\n if (point && isNaN(point)) {\n return { ...point, y: -Math.abs(point.y) };\n }\n if (!isNaN(point)) {\n return -Math.abs(point);\n }\n return point;\n });\n const yAxisLabels = (options.yAxis as YAxisOptions).labels;\n if (yAxisLabels) {\n yAxisLabels.formatter = function (): string {\n return Math.abs(+this.value) + '%';\n };\n }\n if (options.tooltip) {\n options.tooltip.pointFormatter = function (): string {\n return `<div style=\"font-size: 14px; color: #344563; margin: 6px 8px 0 8px;\"><span style=\"color:${\n this.color\n };\">●</span> ${this.series.name}: <b>${Math.abs(this.y ?? 0) + '%'}</b></div>`;\n };\n }\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { Chart, SeriesBarOptions } from 'highcharts';\nimport { AbstractChartComponent } from '../abstract-chart.component';\nimport { ChartBarOptions } from './chart-bar-options.model';\n\n@Component({\n selector: 'ap-chart-bar',\n template: '',\n host: { style: 'display: block' },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ChartBarComponent extends AbstractChartComponent {\n readonly categories = input<string[]>([]);\n readonly opposite = input(false);\n readonly stacked = input(false);\n readonly series = input<SeriesBarOptions[]>([]);\n\n initChart(): void {\n const options = ChartBarOptions.buildBars(this.chartOptions(), this.stacked(), this.opposite(), this.locale());\n ChartBarOptions.configureBar(this.series(), this.categories(), options, this.opposite(), this.labelDateFormat());\n this.chart = new Chart(this.hostElement, options);\n }\n}\n","import { Options, PlotColumnOptions, merge } from 'highcharts';\nimport { ChartOptions } from '../chart-options';\n\nexport class ChartColumnOptions extends ChartOptions {\n static buildColumn(options: Options, stacked: boolean, locale: string): Options {\n const column: PlotColumnOptions = {\n borderWidth: 0,\n crisp: false,\n maxPointWidth: 20,\n // Round only the value-side end; `scope: 'stack'` keeps middle segments square.\n borderRadius: stacked ? { radius: '50%', scope: 'stack', where: 'end' } : '50%',\n };\n if (stacked) {\n column.stacking = 'normal';\n }\n\n const defaultColumnOptions: Options = {\n chart: {\n type: 'column',\n },\n legend: {\n symbolHeight: 10,\n },\n plotOptions: {\n column,\n },\n xAxis: {\n type: 'datetime',\n minTickInterval: 1,\n },\n };\n return super.build(merge(defaultColumnOptions, options), locale);\n }\n}\n","import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { Chart, SeriesColumnOptions } from 'highcharts';\nimport { AbstractChartComponent } from '../abstract-chart.component';\nimport { ChartColumnOptions } from './chart-column-options.model';\n\n@Component({\n selector: 'ap-chart-column',\n template: '',\n host: { style: 'display: block' },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ChartColumnComponent extends AbstractChartComponent {\n readonly stacked = input(false);\n readonly series = input<SeriesColumnOptions[]>([]);\n\n readonly chartInitialized = output<Chart>();\n\n initChart(): void {\n const options = ChartColumnOptions.buildColumn(this.chartOptions(), this.stacked(), this.locale());\n ChartColumnOptions.configure(this.series(), options, this.labelDateFormat());\n this.chart = new Chart(this.hostElement, options);\n this.chartInitialized.emit(this.chart);\n }\n}\n","import type {\n AxisLabelsFormatterCallbackFunction,\n ColorAxisOptions,\n Options,\n PointOptionsObject,\n SeriesHeatmapOptions,\n SeriesOptionsType,\n XAxisOptions,\n YAxisOptions,\n} from 'highcharts';\nimport { merge } from 'highcharts';\nimport { ChartColors } from '../chart-colors';\nimport { ChartOptions } from '../chart-options';\n\nconst HEATMAP_CONSTANTS = {\n CHART_HEIGHT: 680,\n GRID_LINE_WIDTH: 2,\n BORDER_WIDTH: 1,\n FONT_SIZE: '13px',\n HEADER_FONT_SIZE: '12px',\n TOOLTIP_FONT_SIZE: '14px',\n LEGEND_SYMBOL_WIDTH: 300,\n LEGEND_SYMBOL_HEIGHT: 10,\n DEFAULT_TICK_AMOUNT: 6,\n DEFAULT_MAX_VALUE: 3,\n MIN_VALUE: 0,\n FONT_WEIGHT: 'normal',\n} as const;\n\nconst COLORS = {\n WHITE: '#FFFFFF',\n GRID_LINE: 'white',\n NULL_COLOR: 'white',\n DEFAULT_FONT_COLOR: '#858FA1',\n} as const;\n\nexport class ChartHeatmapOptions extends ChartOptions {\n static override build(options: Options, locale: string): Options {\n const defaultHeatmapOptions: Options = {\n chart: {\n type: 'heatmap',\n height: HEATMAP_CONSTANTS.CHART_HEIGHT,\n },\n colorAxis: {\n allowDecimals: false,\n gridLineWidth: HEATMAP_CONSTANTS.GRID_LINE_WIDTH,\n gridLineColor: COLORS.GRID_LINE,\n minColor: COLORS.WHITE,\n labels: {\n style: {\n fontWeight: HEATMAP_CONSTANTS.FONT_WEIGHT,\n fontSize: HEATMAP_CONSTANTS.FONT_SIZE,\n color: COLORS.DEFAULT_FONT_COLOR,\n },\n overflow: 'allow',\n },\n },\n legend: {\n enabled: true,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'bottom',\n symbolWidth: HEATMAP_CONSTANTS.LEGEND_SYMBOL_WIDTH,\n symbolHeight: HEATMAP_CONSTANTS.LEGEND_SYMBOL_HEIGHT,\n },\n plotOptions: {\n heatmap: {\n borderColor: ChartColors.GREY_COLORS[10],\n borderWidth: HEATMAP_CONSTANTS.BORDER_WIDTH,\n nullColor: COLORS.NULL_COLOR,\n },\n },\n tooltip: {\n headerFormat: '',\n pointFormat:\n `<div style=\"border-bottom: 1px solid ${ChartColors.GREY_COLORS[10]}; padding: 0 8px 7px\">` +\n `<span style=\"font-size: ${HEATMAP_CONSTANTS.HEADER_FONT_SIZE}; color: ${ChartColors.GREY_COLORS[60]}\">{point.tooltipHeaderLabel}</span></div>` +\n `<div style=\"font-size: ${HEATMAP_CONSTANTS.TOOLTIP_FONT_SIZE}; color: ${ChartColors.GREY_COLORS[100]}; margin: 6px 8px 0 8px;\">` +\n `<span style=\"color:{point.color}\">●</span> {series.name}: <b>{point.value}{point.unit}</b></div>`,\n },\n xAxis: {\n lineWidth: 1,\n tickWidth: 0,\n visible: true,\n },\n yAxis: {\n lineWidth: 0,\n labels: { step: 3 },\n reversed: true,\n visible: true,\n },\n };\n return super.build(merge(defaultHeatmapOptions, options), locale);\n }\n\n static configureHeatmap(\n categoriesX: string[],\n categoriesY: string[],\n series: SeriesOptionsType[],\n options: Options,\n leastLabel?: string,\n mostLabel?: string,\n labelDateFormat?: string\n ): void {\n options.colors = options.colors ?? [ChartColors.HEATMAP_COLOR];\n super.configure(series, options, labelDateFormat);\n\n if (categoriesX?.length) {\n (options.xAxis as XAxisOptions).categories = categoriesX;\n }\n if (categoriesY?.length) {\n (options.yAxis as YAxisOptions).categories = categoriesY;\n }\n\n const data = ((series[0] as SeriesHeatmapOptions).data ?? []) as PointOptionsObject[];\n const maxValue = data.reduce((max, point) => Math.max(max, point.value ?? 0), 0) || HEATMAP_CONSTANTS.DEFAULT_MAX_VALUE;\n const labelsEnabled = !!(leastLabel && mostLabel);\n\n options.colorAxis = {\n ...(options.colorAxis ?? {}),\n visible: labelsEnabled,\n min: HEATMAP_CONSTANTS.MIN_VALUE,\n max: maxValue,\n maxColor: ChartColors.HEATMAP_COLOR,\n tickAmount: HEATMAP_CONSTANTS.DEFAULT_TICK_AMOUNT,\n };\n\n if (labelsEnabled) {\n options.colorAxis.labels = {\n ...((options.colorAxis as ColorAxisOptions)?.labels ?? {}),\n formatter: createColorAxisFormatter(leastLabel, mostLabel),\n };\n }\n }\n}\n\nfunction createColorAxisFormatter(leastLabel: string, mostLabel: string): AxisLabelsFormatterCallbackFunction {\n return function () {\n if (this.value === this.axis.min) return leastLabel;\n if (this.value === this.axis.max) return mostLabel;\n return '';\n };\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { SeriesHeatmapOptions } from 'highcharts';\nimport { mapChart } from 'highcharts/highmaps';\nimport { AbstractChartComponent } from '../abstract-chart.component';\nimport { ChartHeatmapOptions } from './chart-heatmap-options.model';\n\ntype LegendLabels = { least: string; most: string };\n\n@Component({\n selector: 'ap-chart-heatmap',\n template: '',\n host: { style: 'display: block' },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ChartHeatmapComponent extends AbstractChartComponent {\n readonly categoriesX = input<string[]>([]);\n readonly categoriesY = input<string[]>([]);\n readonly series = input<SeriesHeatmapOptions[]>([]);\n readonly legendLabels = input<LegendLabels>();\n\n protected initChart(): void {\n const labels = this.legendLabels();\n const options = ChartHeatmapOptions.build(this.chartOptions(), this.locale());\n ChartHeatmapOptions.configureHeatmap(\n this.categoriesX(),\n this.categoriesY(),\n this.series(),\n options,\n labels?.least,\n labels?.most,\n this.labelDateFormat()\n );\n this.chart = mapChart(this.hostElement, options);\n }\n}\n","import { Options, merge } from 'highcharts';\nimport { ChartOptions } from '../chart-options';\n\nexport class ChartMixedOptions extends ChartOptions {\n static buildMixed(options: Options, singleDayEnabled: boolean, locale: string): Options {\n const defaultOptions: Options = {\n chart: {\n type: 'column',\n },\n legend: {\n symbolHeight: 10,\n },\n plotOptions: {\n series: {\n marker: {\n enabled: singleDayEnabled,\n radius: singleDayEnabled ? 5 : 2,\n symbol: 'circle',\n },\n lineWidth: 4,\n },\n column: {\n stacking: 'normal',\n borderWidth: 0,\n maxPointWidth: 20,\n borderRadius: { radius: '50%', scope: 'stack', where: 'end' },\n },\n },\n xAxis: {\n type: 'datetime',\n },\n };\n return super.build(merge(defaultOptions, options), locale);\n }\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { Chart, SeriesOptionsType, SeriesSplineOptions } from 'highcharts';\nimport { AbstractChartComponent } from '../abstract-chart.component';\nimport { ChartMixedOptions } from './chart-mixed-options.model';\n\n@Component({\n selector: 'ap-chart-mixed',\n template: '',\n host: { style: 'display: block' },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ChartMixedComponent extends AbstractChartComponent {\n readonly series = input<SeriesOptionsType[]>([]);\n\n protected initChart(): void {\n const series = this.series();\n const splineSeries = series.find(serie => serie.type === 'spline') as SeriesSplineOptions | undefined;\n const singleDayEnabled = splineSeries?.data?.length === 1;\n const options = ChartMixedOptions.buildMixed(this.chartOptions(), singleDayEnabled, this.locale());\n ChartMixedOptions.configure(series, options, this.labelDateFormat());\n this.chart = new Chart(this.hostElement, options);\n }\n}\n","import { round } from 'es-toolkit';\nimport { numberFormat, Options, SeriesPieOptions, merge } from 'highcharts';\nimport { ChartColors } from '../chart-colors';\nimport { ChartOptions } from '../chart-options';\n\nconst NAME_MAX_LENGTH = 30;\n// RTL scripts (Hebrew, Arabic, …).\nconst RIGHT_TO_LEFT_CHARACTERS =\n /[\\p{Script=Arabic}\\p{Script=Hebrew}\\p{Script=Syriac}\\p{Script=Thaana}\\p{Script=Nko}\\p{Script=Samaritan}\\p{Script=Mandaic}]/u;\nconst RIGHT_TO_LEFT_EMBEDDING_CHARACTER = '';\n\nexport class ChartPieOptions extends ChartOptions {\n static buildPie(options: Options, innerLabels: boolean, metricFormat: 'percentage' | 'value', locale: string): Options {\n const defaultPieOptions: Options = {\n chart: {\n type: 'pie',\n plotBackgroundColor: undefined,\n plotBorderWidth: undefined,\n plotShadow: false,\n },\n plotOptions: {\n pie: {\n dataLabels: {\n distance: innerLabels ? -40 : 30,\n useHTML: true,\n },\n innerSize: '50%',\n },\n series: {\n allowPointSelect: !innerLabels,\n dataLabels: innerLabels ? buildInnerLabels(metricFormat) : buildOuterLabels(metricFormat),\n showInLegend: innerLabels,\n },\n },\n tooltip: {\n outside: true,\n },\n legend: innerLabels ? { symbolHeight: 10, enabled: true } : {},\n };\n return super.build(merge(defaultPieOptions, options), locale);\n }\n\n static configurePie(\n series: SeriesPieOptions[],\n options: Options,\n colors: string[],\n labelDateFormat: string,\n innerLabels: boolean,\n mouseEventEnabled = true\n ): void {\n super.configure(series, options, labelDateFormat);\n if (innerLabels && options.legend) {\n options.legend.enabled = true;\n }\n if (!series?.[0]) {\n return;\n }\n options.colors = colors;\n // Otherwise we rely on Highcharts' default `states.inactive.opacity` to fade non-hovered slices.\n if (!mouseEventEnabled) {\n options.plotOptions ??= {};\n options.plotOptions.pie ??= {};\n options.plotOptions.pie.enableMouseTracking = false;\n }\n }\n}\n\nfunction buildInnerLabels(metricFormat: 'percentage' | 'value') {\n return {\n format: metricFormat === 'percentage' ? '{point.percentage:.1f}%' : '{point.y}',\n style: {\n fontSize: '16px',\n color: 'white',\n textOutline: '0',\n },\n };\n}\n\nfunction buildOuterLabels(metricFormat: 'percentage' | 'value') {\n return {\n formatter(this: { name: string; percentage?: number; y?: number | null }): string {\n const truncatedName = this.name.length > NAME_MAX_LENGTH ? this.name.substring(0, NAME_MAX_LENGTH) + '...' : this.name;\n const displayValue =\n metricFormat === 'percentage' ? numberFormat(round(this.percentage ?? 0, 1), -1) + '%' : numberFormat(this.y ?? 0, -1);\n const prefix = RIGHT_TO_LEFT_CHARACTERS.test(this.name.charAt(0)) ? RIGHT_TO_LEFT_EMBEDDING_CHARACTER : '';\n return prefix + truncatedName + ': ' + displayValue;\n },\n style: {\n fontSize: '12px',\n color: ChartColors.GREY_COLORS[60],\n },\n };\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { Chart, SeriesPieOptions } from 'highcharts';\nimport { AbstractChartComponent } from '../abstract-chart.component';\nimport { ChartColors } from '../chart-colors';\nimport { ChartPieOptions } from './chart-pie-options.model';\n\n@Component({\n selector: 'ap-chart-pie',\n template: '',\n host: { style: 'display: block' },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ChartPieComponent extends AbstractChartComponent {\n readonly innerLabels = input(false);\n readonly mouseEventEnabled = input(true);\n readonly series = input<SeriesPieOptions[]>([]);\n readonly colors = input<string[]>();\n readonly metricFormat = input<'percentage' | 'value'>('percentage');\n\n protected initChart(): void {\n const series = this.series();\n const innerLabels = this.innerLabels();\n const dataAvailable = !!series[0]?.data?.length;\n const options = ChartPieOptions.buildPie(this.chartOptions(), innerLabels, this.metricFormat(), this.locale());\n\n const effectiveSeries: SeriesPieOptions[] = dataAvailable\n ? series\n : [\n {\n type: 'pie',\n data: [{ y: 1, dataLabels: { enabled: false } }],\n enableMouseTracking: false,\n },\n ];\n\n const effectiveColors = !dataAvailable\n ? [ChartColors.GREY_COLORS[10]]\n : (this.colors() ?? ChartColors.getDataColors(series[0]?.data?.length ?? 0));\n\n ChartPieOptions.configurePie(\n effectiveSeries,\n options,\n effectiveColors,\n this.labelDateFormat(),\n innerLabels,\n this.mouseEventEnabled()\n );\n this.chart = new Chart(this.hostElement, options);\n }\n}\n","import { Options, merge } from 'highcharts';\nimport { ChartOptions } from '../chart-options';\n\nexport class ChartSplineOptions extends ChartOptions {\n static buildSpline(options: Options, singleDayEnabled: boolean, locale: string): Options {\n const defaultSplineOptions: Options = {\n chart: {\n type: 'spline',\n },\n plotOptions: {\n series: {\n marker: {\n enabled: singleDayEnabled,\n radius: singleDayEnabled ? 5 : 2,\n symbol: 'circle',\n },\n lineWidth: 4\n },\n },\n xAxis: {\n type: 'datetime',\n },\n };\n return super.build(merge(defaultSplineOptions, options), locale);\n }\n}\n","import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { Chart, SeriesSplineOptions } from 'highcharts';\nimport { AbstractChartComponent } from '../abstract-chart.component';\nimport { ChartSplineOptions } from './chart-spline-options.model';\n\n@Component({\n selector: 'ap-chart-spline',\n template: '',\n host: { style: 'display: block' },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ChartSplineComponent extends AbstractChartComponent {\n readonly series = input<SeriesSplineOptions[]>([]);\n\n readonly chartInitialized = output<Chart>();\n\n protected initChart(): void {\n const series = this.series();\n const singleDayEnabled = series[0]?.data?.length === 1;\n const options = ChartSplineOptions.buildSpline(this.chartOptions(), singleDayEnabled, this.locale());\n ChartSplineOptions.configure(series, options, this.labelDateFormat());\n this.chart = new Chart(this.hostElement, options);\n this.chartInitialized.emit(this.chart);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;IAAY;AAAZ,CAAA,UAAY,UAAU,EAAA;AAClB,IAAA,UAAA,CAAA,UAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI;AACJ,IAAA,UAAA,CAAA,UAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM;AACN,IAAA,UAAA,CAAA,UAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ;AACR,IAAA,UAAA,CAAA,UAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAY;AACZ,IAAA,UAAA,CAAA,UAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM;AACN,IAAA,UAAA,CAAA,UAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK;AACT,CAAC,EAPW,UAAU,KAAV,UAAU,GAAA,EAAA,CAAA,CAAA;MAST,WAAW,CAAA;IACpB,OAAgB,gBAAgB,GAAG;AAC/B,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,KAAK,EAAE,SAAS;KACnB;IACD,OAAgB,oBAAoB,GAAG;AACnC,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,KAAK,EAAE,SAAS;KACnB;IACD,OAAgB,aAAa,GAAG;AAC5B,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,KAAK,EAAE,SAAS;KACnB;IACD,OAAgB,YAAY,GAAG;AAC3B,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,KAAK,EAAE,SAAS;KACnB;IACD,OAAgB,aAAa,GAAG;AAC5B,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,KAAK,EAAE,SAAS;KACnB;IACD,OAAgB,WAAW,GAAG;AAC1B,QAAA,GAAG,EAAE,SAAS;AACd,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,KAAK,EAAE,SAAS;KACnB;IAED,OAAgB,UAAU,GAAG;AACzB,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,KAAK,EAAE,SAAS;KACnB;AAED;;;;AAIG;IACH,OAAgB,WAAW,GAAG;AAC1B,QAAA,SAAS;AACT,QAAA,SAAS;AACT,QAAA,SAAS;AACT,QAAA,SAAS;AACT,QAAA,SAAS;AACT,QAAA,SAAS;AACT,QAAA,SAAS;AACT,QAAA,SAAS;AACT,QAAA,SAAS;AACT,QAAA,SAAS;KACZ;AAED;;;AAGG;IACH,OAAgB,gBAAgB,GAAG;QAC/B,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,SAAS;KACtB;AAED,IAAA,OAAgB,aAAa,GAAW,SAAS;IAEjD,OAAgB,eAAe,GAAG;AAC9B,QAAA,GAAG,EAAE,SAAS;AACd,QAAA,EAAE,EAAE,SAAS;AACb,QAAA,EAAE,EAAE,SAAS;AACb,QAAA,EAAE,EAAE,SAAS;KAChB;AAED,IAAA,OAAgB,WAAW,GAAW,SAAS;AAC/C,IAAA,OAAgB,WAAW,GAAW,SAAS;AAC/C,IAAA,OAAgB,WAAW,GAAW,SAAS;IAE/C,OAAO,cAAc,CAAC,KAA6B,EAAA;QAC/C,QAAQ,KAAK;YACT,KAAK,UAAU,CAAC,MAAM;gBAClB,OAAO,IAAI,CAAC,aAAa;YAC7B,KAAK,UAAU,CAAC,QAAQ;gBACpB,OAAO,IAAI,CAAC,gBAAgB;YAChC,KAAK,UAAU,CAAC,YAAY;gBACxB,OAAO,IAAI,CAAC,oBAAoB;YACpC,KAAK,UAAU,CAAC,MAAM;gBAClB,OAAO,IAAI,CAAC,aAAa;YAC7B,KAAK,UAAU,CAAC,KAAK;gBACjB,OAAO,IAAI,CAAC,YAAY;AAC5B,YAAA;gBACI,OAAO,IAAI,CAAC,WAAW;;IAEnC;AAEA;;;AAGG;IACH,OAAO,YAAY,CAAC,QAAgB,EAAA;AAChC,QAAA,MAAM,OAAO,GAAG,WAAW,CAAC,WAAW;QACvC,OAAO,OAAO,CAAC,CAAC,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IACnF;AAEA;;;AAGG;IACH,OAAO,aAAa,CAAC,KAAa,EAAA;AAC9B,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACpG;;;MC5IkB,sBAAsB,CAAA;AACvB,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;;AAG7B,IAAA,WAAW,GAAG,MAAM,CAA0B,UAAU,CAAC,CAAC,aAAa;AAEjF,IAAA,YAAY,GAAG,KAAK,CAAU,EAAE,wDAAC;AACjC,IAAA,KAAK,GAAG,KAAK,CAAa,UAAU,CAAC,YAAY,iDAAC;AAClD,IAAA,eAAe,GAAG,KAAK,CAAS,OAAO,2DAAC;AACxC,IAAA,MAAM,GAAG,KAAK,CAAS,IAAI,kDAAC;AAE3B,IAAA,KAAK;AACE,IAAA,SAAS,GAAG,MAAM,CAAC,KAAK,qDAAC;AAClC,IAAA,cAAc;AAKtB,IAAA,WAAA,GAAA;QACI,eAAe,CAAC,MAAK;AACjB,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC/D,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;AAC7C,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5B,QAAA,CAAC,CAAC;;QAGF,MAAM,CAAC,MAAK;AACR,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBAAE;YACvB,IAAI,CAAC,OAAO,EAAE;AAClB,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAK;AAC3B,YAAA,IAAI,CAAC,cAAc,EAAE,UAAU,EAAE;AACjC,YAAA,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE;AACzB,QAAA,CAAC,CAAC;IACN;IAIQ,QAAQ,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACZ,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;QACvB;AAAO,aAAA,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE;YACjE,IAAI,CAAC,OAAO,EAAE;QAClB;IACJ;IAEQ,OAAO,GAAA;AACX,QAAA,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE;AACrB,QAAA,IAAI,CAAC,KAAK,GAAG,SAAS;QACtB,IAAI,CAAC,SAAS,EAAE;IACpB;wGAnDkB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAD3C;;;ACFD;AACM,SAAU,4BAA4B,CAAC,MAAc,EAAA;AACvD,IAAA,MAAM,SAAS,GAAG,MAAM,KAAK,IAAI,GAAG,eAAe,GAAG,aAAa;IACnE,OAAO;QACH,IAAI,EAAE,EAAE,MAAM,EAAE;AAChB,QAAA,OAAO,EAAE;AACL,YAAA,oBAAoB,EAAE;AAClB,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,IAAI,EAAE,SAAS;AAClB,aAAA;AACJ,SAAA;KACJ;AACL;;ACVA,MAAM,WAAW,GAAG,4CAA4C;AAChE,MAAM,eAAe,GAAG,MAAM;MAEjB,YAAY,CAAA;AACrB,IAAA,OAAgB,mBAAmB,GAAG,eAAe;IAErD,OAAgB,eAAe,GAAY;AACvC,QAAA,KAAK,EAAE;AACH,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,OAAO,EAAE;AACL,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,WAAW,EAAE;AACT,oBAAA,KAAK,EAAE;wBACH,IAAI,EAAE,WAAW,CAAC,WAAW;AAC7B,wBAAA,CAAC,EAAE,CAAC;AACJ,wBAAA,KAAK,EAAE;AACH,4BAAA,KAAK,EAAE,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC;AACnC,4BAAA,QAAQ,EAAE,eAAe;AAC5B,yBAAA;AACD,wBAAA,MAAM,EAAE;4BACJ,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;AAC9C,yBAAA;AACJ,qBAAA;AACJ,iBAAA;AACJ,aAAA;AACD,YAAA,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;AAC1B,YAAA,MAAM,EAAE,OAAO;AACf,YAAA,KAAK,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE;AACrC,SAAA;AACD,QAAA,SAAS,EAAE;AACP,YAAA,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE;AAC5D,SAAA;AACD,QAAA,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;AAC3B,QAAA,MAAM,EAAE;AACJ,YAAA,WAAW,EAAE,CAAC;AACd,YAAA,SAAS,EAAE;AACP,gBAAA,KAAK,EAAE,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;AAClC,gBAAA,QAAQ,EAAE,MAAM;AAChB,gBAAA,UAAU,EAAE,QAAQ;AACvB,aAAA;AACD,YAAA,cAAc,EAAE;AACZ,gBAAA,KAAK,EAAE,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC;AACnC,gBAAA,UAAU,EAAE,MAAM;AACrB,aAAA;AACJ,SAAA;AACD,QAAA,WAAW,EAAE;AACT,YAAA,MAAM,EAAE;AACJ,gBAAA,MAAM,EAAE;AACJ,oBAAA,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE;oBACxB,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE;AAC5C,iBAAA;AACD,gBAAA,YAAY,EAAE,IAAI;AACrB,aAAA;AACJ,SAAA;AACD,QAAA,UAAU,EAAE;AACR,YAAA,aAAa,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE;AAC1B,SAAA;AACD,QAAA,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;AAC1B,QAAA,OAAO,EAAE;YACL,eAAe,EAAE,WAAW,CAAC,WAAW;AACxC,YAAA,YAAY,EAAE,CAAC;AACf,YAAA,WAAW,EAAE,CAAC;AACd,YAAA,oBAAoB,EAAE,EAAE;AACxB,YAAA,MAAM,EAAE;gBACJ,KAAK,EAAE,WAAW,CAAC,WAAW;AAC9B,gBAAA,OAAO,EAAE,CAAC;AACV,gBAAA,OAAO,EAAE,CAAC;AACV,gBAAA,OAAO,EAAE,IAAI;AACb,gBAAA,KAAK,EAAE,CAAC;AACX,aAAA;AACD,YAAA,KAAK,EAAE,KAAK;;;AAGZ,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,OAAO,EAAE,IAAI;YACb,YAAY,EACR,wCAAwC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA,sBAAA,CAAwB;gBAC3F,CAAA,0CAAA,EAA6C,eAAe,YAAY,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA,yBAAA,CAA2B;YAClI,WAAW,EACP,uCAAuC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA,0BAAA,CAA4B;gBAC/F,yGAAyG;AAChH,SAAA;AACD,QAAA,KAAK,EAAE;AACH,YAAA,aAAa,EAAE,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;AAC1C,YAAA,SAAS,EAAE,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;AACtC,YAAA,SAAS,EAAE,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;AACtC,YAAA,aAAa,EAAE,CAAC;AAChB,YAAA,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;AACrB,YAAA,MAAM,EAAE;AACJ,gBAAA,KAAK,EAAE;AACH,oBAAA,KAAK,EAAE,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;AAClC,oBAAA,QAAQ,EAAE,eAAe;AAC5B,iBAAA;AACJ,aAAA;AACJ,SAAA;AACD,QAAA,KAAK,EAAE;AACH,YAAA,aAAa,EAAE,KAAK;AACpB,YAAA,aAAa,EAAE,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;AAC1C,YAAA,SAAS,EAAE,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;AACtC,YAAA,aAAa,EAAE,CAAC;AAChB,YAAA,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;AAC1B,YAAA,MAAM,EAAE;;AAEJ,gBAAA,KAAK,EAAE;AACH,oBAAA,KAAK,EAAE,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;AAClC,oBAAA,QAAQ,EAAE,eAAe;AAC5B,iBAAA;AACJ,aAAA;AACJ,SAAA;KACJ;AAED,IAAA,OAAO,KAAK,CAAC,OAAgB,EAAE,MAAc,EAAA;AACzC,QAAA,MAAM,aAAa,GAAG,4BAA4B,CAAC,MAAM,CAAC;QAC1D,UAAU,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,aAAa,EAAE,OAAO,CAAC;IACtE;AAEA,IAAA,OAAO,SAAS,CAAC,MAA2B,EAAE,OAAgB,EAAE,eAAwB,EAAA;QACpF,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,UAAU,eAAe,IAAI,OAAO,CAAA,CAAA,CAAG,EAAE,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC;AACrG,QAAA,IAAI,MAAM,EAAE,MAAM,EAAE;AAChB,YAAA,OAAO,CAAC,MAAM,GAAG,MAAM;AACvB,YAAA,IAAI,OAAO,CAAC,MAAM,EAAE;AAChB,gBAAA,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC;YACzE;AACA,YAAA,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC;QAC/E;IACJ;;;AC/HE,MAAO,eAAgB,SAAQ,YAAY,CAAA;IAC7C,OAAO,SAAS,CAAC,OAAgB,EAAE,OAAgB,EAAE,QAAiB,EAAE,MAAc,EAAA;AAClF,QAAA,MAAM,GAAG,GAAmB;AACxB,YAAA,aAAa,EAAE,EAAE;SACpB;AACD,QAAA,IAAI,OAAO,IAAI,QAAQ,EAAE;;AAErB,YAAA,GAAG,CAAC,QAAQ,GAAG,QAAQ;AACvB,YAAA,GAAG,CAAC,YAAY,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE;QACtE;aAAO;AACH,YAAA,GAAG,CAAC,YAAY,GAAG,KAAK;QAC5B;AAEA,QAAA,MAAM,iBAAiB,GAAY;AAC/B,YAAA,KAAK,EAAE;AACH,gBAAA,IAAI,EAAE,KAAK;AACd,aAAA;AACD,YAAA,MAAM,EAAE;AACJ,gBAAA,YAAY,EAAE,EAAE;AACnB,aAAA;AACD,YAAA,KAAK,EAAE;AACH,gBAAA,UAAU,EAAE,SAAS;AACrB,gBAAA,aAAa,EAAE,CAAC;AAChB,gBAAA,SAAS,EAAE,CAAC;AACZ,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,SAAS,EAAE,CAAC;AACZ,gBAAA,MAAM,EAAE;AACJ,oBAAA,KAAK,EAAE,QAAQ;oBACf,SAAS,GAAA;AACL,wBAAA,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,EAAE,EAAE;AACjD,4BAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK;wBACzD;AACA,wBAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;oBAChC,CAAC;AACD,oBAAA,KAAK,EAAE;AACH,wBAAA,KAAK,EAAE,GAAG;AACb,qBAAA;AACJ,iBAAA;AACD,gBAAA,IAAI,EAAE,UAAU;AACnB,aAAA;AACD,YAAA,KAAK,EAAE;AACH,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,eAAe,EAAE,CAAC;AACrB,aAAA;AACD,YAAA,WAAW,EAAE;gBACT,GAAG;AACH,gBAAA,MAAM,EAAE;AACJ,oBAAA,WAAW,EAAE,CAAC;AACjB,iBAAA;AACJ,aAAA;SACJ;AACD,QAAA,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjE;IAEA,OAAO,YAAY,CACf,MAA0B,EAC1B,UAAoB,EACpB,OAAgB,EAChB,QAAiB,EACjB,eAAwB,EAAA;QAExB,YAAY,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,eAAe,CAAC;AACxD,QAAA,IAAI,UAAU,EAAE,MAAM,EAAE;AACnB,YAAA,OAAO,CAAC,KAAsB,CAAC,UAAU,GAAG,UAAU;QAC3D;QACA,IAAI,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AACjC,YAAA,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC;;AAE/B,YAAA,aAAa,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,KAAU,KAAI;AACxD,gBAAA,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;AACvB,oBAAA,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;gBAC9C;AACA,gBAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AACf,oBAAA,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;gBAC3B;AACA,gBAAA,OAAO,KAAK;AAChB,YAAA,CAAC,CAAC;AACF,YAAA,MAAM,WAAW,GAAI,OAAO,CAAC,KAAsB,CAAC,MAAM;YAC1D,IAAI,WAAW,EAAE;gBACb,WAAW,CAAC,SAAS,GAAG,YAAA;oBACpB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG;AACtC,gBAAA,CAAC;YACL;AACA,YAAA,IAAI,OAAO,CAAC,OAAO,EAAE;AACjB,gBAAA,OAAO,CAAC,OAAO,CAAC,cAAc,GAAG,YAAA;oBAC7B,OAAO,CAAA,wFAAA,EACH,IAAI,CAAC,KACT,CAAA,YAAA,EAAe,IAAI,CAAC,MAAM,CAAC,IAAI,CAAA,KAAA,EAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAA,UAAA,CAAY;AAClF,gBAAA,CAAC;YACL;QACJ;IACJ;AACH;;ACpFK,MAAO,iBAAkB,SAAQ,sBAAsB,CAAA;AAChD,IAAA,UAAU,GAAG,KAAK,CAAW,EAAE,sDAAC;AAChC,IAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,oDAAC;AACvB,IAAA,OAAO,GAAG,KAAK,CAAC,KAAK,mDAAC;AACtB,IAAA,MAAM,GAAG,KAAK,CAAqB,EAAE,kDAAC;IAE/C,SAAS,GAAA;QACL,MAAM,OAAO,GAAG,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;QAC9G,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;AAChH,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC;IACrD;wGAVS,iBAAiB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,wpBAJhB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAIH,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAN7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,QAAQ,EAAE,EAAE;AACZ,oBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE;oBACjC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAClD,iBAAA;;;ACPK,MAAO,kBAAmB,SAAQ,YAAY,CAAA;AAChD,IAAA,OAAO,WAAW,CAAC,OAAgB,EAAE,OAAgB,EAAE,MAAc,EAAA;AACjE,QAAA,MAAM,MAAM,GAAsB;AAC9B,YAAA,WAAW,EAAE,CAAC;AACd,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,aAAa,EAAE,EAAE;;YAEjB,YAAY,EAAE,OAAO,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,KAAK;SAClF;QACD,IAAI,OAAO,EAAE;AACT,YAAA,MAAM,CAAC,QAAQ,GAAG,QAAQ;QAC9B;AAEA,QAAA,MAAM,oBAAoB,GAAY;AAClC,YAAA,KAAK,EAAE;AACH,gBAAA,IAAI,EAAE,QAAQ;AACjB,aAAA;AACD,YAAA,MAAM,EAAE;AACJ,gBAAA,YAAY,EAAE,EAAE;AACnB,aAAA;AACD,YAAA,WAAW,EAAE;gBACT,MAAM;AACT,aAAA;AACD,YAAA,KAAK,EAAE;AACH,gBAAA,IAAI,EAAE,UAAU;AAChB,gBAAA,eAAe,EAAE,CAAC;AACrB,aAAA;SACJ;AACD,QAAA,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,oBAAoB,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IACpE;AACH;;ACtBK,MAAO,oBAAqB,SAAQ,sBAAsB,CAAA;AACnD,IAAA,OAAO,GAAG,KAAK,CAAC,KAAK,mDAAC;AACtB,IAAA,MAAM,GAAG,KAAK,CAAwB,EAAE,kDAAC;IAEzC,gBAAgB,GAAG,MAAM,EAAS;IAE3C,SAAS,GAAA;QACL,MAAM,OAAO,GAAG,kBAAkB,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;AAClG,QAAA,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;AAC5E,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC;QACjD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IAC1C;wGAXS,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,scAJnB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAIH,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,QAAQ,EAAE,EAAE;AACZ,oBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE;oBACjC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAClD,iBAAA;;;ACID,MAAM,iBAAiB,GAAG;AACtB,IAAA,YAAY,EAAE,GAAG;AACjB,IAAA,eAAe,EAAE,CAAC;AAClB,IAAA,YAAY,EAAE,CAAC;AACf,IAAA,SAAS,EAAE,MAAM;AACjB,IAAA,gBAAgB,EAAE,MAAM;AACxB,IAAA,iBAAiB,EAAE,MAAM;AACzB,IAAA,mBAAmB,EAAE,GAAG;AACxB,IAAA,oBAAoB,EAAE,EAAE;AACxB,IAAA,mBAAmB,EAAE,CAAC;AACtB,IAAA,iBAAiB,EAAE,CAAC;AACpB,IAAA,SAAS,EAAE,CAAC;AACZ,IAAA,WAAW,EAAE,QAAQ;CACf;AAEV,MAAM,MAAM,GAAG;AACX,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,SAAS,EAAE,OAAO;AAClB,IAAA,UAAU,EAAE,OAAO;AACnB,IAAA,kBAAkB,EAAE,SAAS;CACvB;AAEJ,MAAO,mBAAoB,SAAQ,YAAY,CAAA;AACjD,IAAA,OAAgB,KAAK,CAAC,OAAgB,EAAE,MAAc,EAAA;AAClD,QAAA,MAAM,qBAAqB,GAAY;AACnC,YAAA,KAAK,EAAE;AACH,gBAAA,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,iBAAiB,CAAC,YAAY;AACzC,aAAA;AACD,YAAA,SAAS,EAAE;AACP,gBAAA,aAAa,EAAE,KAAK;gBACpB,aAAa,EAAE,iBAAiB,CAAC,eAAe;gBAChD,aAAa,EAAE,MAAM,CAAC,SAAS;gBAC/B,QAAQ,EAAE,MAAM,CAAC,KAAK;AACtB,gBAAA,MAAM,EAAE;AACJ,oBAAA,KAAK,EAAE;wBACH,UAAU,EAAE,iBAAiB,CAAC,WAAW;wBACzC,QAAQ,EAAE,iBAAiB,CAAC,SAAS;wBACrC,KAAK,EAAE,MAAM,CAAC,kBAAkB;AACnC,qBAAA;AACD,oBAAA,QAAQ,EAAE,OAAO;AACpB,iBAAA;AACJ,aAAA;AACD,YAAA,MAAM,EAAE;AACJ,gBAAA,OAAO,EAAE,IAAI;AACb,gBAAA,MAAM,EAAE,YAAY;AACpB,gBAAA,KAAK,EAAE,QAAQ;AACf,gBAAA,aAAa,EAAE,QAAQ;gBACvB,WAAW,EAAE,iBAAiB,CAAC,mBAAmB;gBAClD,YAAY,EAAE,iBAAiB,CAAC,oBAAoB;AACvD,aAAA;AACD,YAAA,WAAW,EAAE;AACT,gBAAA,OAAO,EAAE;AACL,oBAAA,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;oBACxC,WAAW,EAAE,iBAAiB,CAAC,YAAY;oBAC3C,SAAS,EAAE,MAAM,CAAC,UAAU;AAC/B,iBAAA;AACJ,aAAA;AACD,YAAA,OAAO,EAAE;AACL,gBAAA,YAAY,EAAE,EAAE;gBAChB,WAAW,EACP,wCAAwC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA,sBAAA,CAAwB;oBAC3F,CAAA,wBAAA,EAA2B,iBAAiB,CAAC,gBAAgB,CAAA,SAAA,EAAY,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA,yCAAA,CAA2C;oBAC/I,CAAA,uBAAA,EAA0B,iBAAiB,CAAC,iBAAiB,CAAA,SAAA,EAAY,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA,0BAAA,CAA4B;oBACjI,CAAA,gGAAA,CAAkG;AACzG,aAAA;AACD,YAAA,KAAK,EAAE;AACH,gBAAA,SAAS,EAAE,CAAC;AACZ,gBAAA,SAAS,EAAE,CAAC;AACZ,gBAAA,OAAO,EAAE,IAAI;AAChB,aAAA;AACD,YAAA,KAAK,EAAE;AACH,gBAAA,SAAS,EAAE,CAAC;AACZ,gBAAA,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AACnB,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,OAAO,EAAE,IAAI;AAChB,aAAA;SACJ;AACD,QAAA,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,qBAAqB,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IACrE;AAEA,IAAA,OAAO,gBAAgB,CACnB,WAAqB,EACrB,WAAqB,EACrB,MAA2B,EAC3B,OAAgB,EAChB,UAAmB,EACnB,SAAkB,EAClB,eAAwB,EAAA;AAExB,QAAA,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;QAC9D,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,eAAe,CAAC;AAEjD,QAAA,IAAI,WAAW,EAAE,MAAM,EAAE;AACpB,YAAA,OAAO,CAAC,KAAsB,CAAC,UAAU,GAAG,WAAW;QAC5D;AACA,QAAA,IAAI,WAAW,EAAE,MAAM,EAAE;AACpB,YAAA,OAAO,CAAC,KAAsB,CAAC,UAAU,GAAG,WAAW;QAC5D;AAEA,QAAA,MAAM,IAAI,IAAK,MAAM,CAAC,CAAC,CAA0B,CAAC,IAAI,IAAI,EAAE,CAAyB;AACrF,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,iBAAiB,CAAC,iBAAiB;QACvH,MAAM,aAAa,GAAG,CAAC,EAAE,UAAU,IAAI,SAAS,CAAC;QAEjD,OAAO,CAAC,SAAS,GAAG;AAChB,YAAA,IAAI,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;AAC5B,YAAA,OAAO,EAAE,aAAa;YACtB,GAAG,EAAE,iBAAiB,CAAC,SAAS;AAChC,YAAA,GAAG,EAAE,QAAQ;YACb,QAAQ,EAAE,WAAW,CAAC,aAAa;YACnC,UAAU,EAAE,iBAAiB,CAAC,mBAAmB;SACpD;QAED,IAAI,aAAa,EAAE;AACf,YAAA,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG;gBACvB,IAAK,OAAO,CAAC,SAA8B,EAAE,MAAM,IAAI,EAAE,CAAC;AAC1D,gBAAA,SAAS,EAAE,wBAAwB,CAAC,UAAU,EAAE,SAAS,CAAC;aAC7D;QACL;IACJ;AACH;AAED,SAAS,wBAAwB,CAAC,UAAkB,EAAE,SAAiB,EAAA;IACnE,OAAO,YAAA;QACH,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG;AAAE,YAAA,OAAO,UAAU;QACnD,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG;AAAE,YAAA,OAAO,SAAS;AAClD,QAAA,OAAO,EAAE;AACb,IAAA,CAAC;AACL;;AChIM,MAAO,qBAAsB,SAAQ,sBAAsB,CAAA;AACpD,IAAA,WAAW,GAAG,KAAK,CAAW,EAAE,uDAAC;AACjC,IAAA,WAAW,GAAG,KAAK,CAAW,EAAE,uDAAC;AACjC,IAAA,MAAM,GAAG,KAAK,CAAyB,EAAE,kDAAC;IAC1C,YAAY,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,cAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAgB;IAEnC,SAAS,GAAA;AACf,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE;AAClC,QAAA,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;AAC7E,QAAA,mBAAmB,CAAC,gBAAgB,CAChC,IAAI,CAAC,WAAW,EAAE,EAClB,IAAI,CAAC,WAAW,EAAE,EAClB,IAAI,CAAC,MAAM,EAAE,EACb,OAAO,EACP,MAAM,EAAE,KAAK,EACb,MAAM,EAAE,IAAI,EACZ,IAAI,CAAC,eAAe,EAAE,CACzB;QACD,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC;IACpD;wGAnBS,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,urBAJpB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAIH,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,QAAQ,EAAE,EAAE;AACZ,oBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE;oBACjC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAClD,iBAAA;;;ACVK,MAAO,iBAAkB,SAAQ,YAAY,CAAA;AAC/C,IAAA,OAAO,UAAU,CAAC,OAAgB,EAAE,gBAAyB,EAAE,MAAc,EAAA;AACzE,QAAA,MAAM,cAAc,GAAY;AAC5B,YAAA,KAAK,EAAE;AACH,gBAAA,IAAI,EAAE,QAAQ;AACjB,aAAA;AACD,YAAA,MAAM,EAAE;AACJ,gBAAA,YAAY,EAAE,EAAE;AACnB,aAAA;AACD,YAAA,WAAW,EAAE;AACT,gBAAA,MAAM,EAAE;AACJ,oBAAA,MAAM,EAAE;AACJ,wBAAA,OAAO,EAAE,gBAAgB;wBACzB,MAAM,EAAE,gBAAgB,GAAG,CAAC,GAAG,CAAC;AAChC,wBAAA,MAAM,EAAE,QAAQ;AACnB,qBAAA;AACD,oBAAA,SAAS,EAAE,CAAC;AACf,iBAAA;AACD,gBAAA,MAAM,EAAE;AACJ,oBAAA,QAAQ,EAAE,QAAQ;AAClB,oBAAA,WAAW,EAAE,CAAC;AACd,oBAAA,aAAa,EAAE,EAAE;AACjB,oBAAA,YAAY,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE;AAChE,iBAAA;AACJ,aAAA;AACD,YAAA,KAAK,EAAE;AACH,gBAAA,IAAI,EAAE,UAAU;AACnB,aAAA;SACJ;AACD,QAAA,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAC9D;AACH;;ACvBK,MAAO,mBAAoB,SAAQ,sBAAsB,CAAA;AAClD,IAAA,MAAM,GAAG,KAAK,CAAsB,EAAE,kDAAC;IAEtC,SAAS,GAAA;AACf,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AAC5B,QAAA,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAoC;QACrG,MAAM,gBAAgB,GAAG,YAAY,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACzD,QAAA,MAAM,OAAO,GAAG,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,gBAAgB,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;AAClG,QAAA,iBAAiB,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;AACpE,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC;IACrD;wGAVS,mBAAmB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,oRAJlB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAIH,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,QAAQ,EAAE,EAAE;AACZ,oBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE;oBACjC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAClD,iBAAA;;;ACLD,MAAM,eAAe,GAAG,EAAE;AAC1B;AACA,MAAM,wBAAwB,GAC1B,6HAA6H;AACjI,MAAM,iCAAiC,GAAG,GAAG;AAEvC,MAAO,eAAgB,SAAQ,YAAY,CAAA;IAC7C,OAAO,QAAQ,CAAC,OAAgB,EAAE,WAAoB,EAAE,YAAoC,EAAE,MAAc,EAAA;AACxG,QAAA,MAAM,iBAAiB,GAAY;AAC/B,YAAA,KAAK,EAAE;AACH,gBAAA,IAAI,EAAE,KAAK;AACX,gBAAA,mBAAmB,EAAE,SAAS;AAC9B,gBAAA,eAAe,EAAE,SAAS;AAC1B,gBAAA,UAAU,EAAE,KAAK;AACpB,aAAA;AACD,YAAA,WAAW,EAAE;AACT,gBAAA,GAAG,EAAE;AACD,oBAAA,UAAU,EAAE;wBACR,QAAQ,EAAE,WAAW,GAAG,CAAC,EAAE,GAAG,EAAE;AAChC,wBAAA,OAAO,EAAE,IAAI;AAChB,qBAAA;AACD,oBAAA,SAAS,EAAE,KAAK;AACnB,iBAAA;AACD,gBAAA,MAAM,EAAE;oBACJ,gBAAgB,EAAE,CAAC,WAAW;AAC9B,oBAAA,UAAU,EAAE,WAAW,GAAG,gBAAgB,CAAC,YAAY,CAAC,GAAG,gBAAgB,CAAC,YAAY,CAAC;AACzF,oBAAA,YAAY,EAAE,WAAW;AAC5B,iBAAA;AACJ,aAAA;AACD,YAAA,OAAO,EAAE;AACL,gBAAA,OAAO,EAAE,IAAI;AAChB,aAAA;AACD,YAAA,MAAM,EAAE,WAAW,GAAG,EAAE,YAAY,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE;SACjE;AACD,QAAA,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjE;AAEA,IAAA,OAAO,YAAY,CACf,MAA0B,EAC1B,OAAgB,EAChB,MAAgB,EAChB,eAAuB,EACvB,WAAoB,EACpB,iBAAiB,GAAG,IAAI,EAAA;QAExB,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,eAAe,CAAC;AACjD,QAAA,IAAI,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE;AAC/B,YAAA,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI;QACjC;AACA,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;YACd;QACJ;AACA,QAAA,OAAO,CAAC,MAAM,GAAG,MAAM;;QAEvB,IAAI,CAAC,iBAAiB,EAAE;AACpB,YAAA,OAAO,CAAC,WAAW,KAAK,EAAE;AAC1B,YAAA,OAAO,CAAC,WAAW,CAAC,GAAG,KAAK,EAAE;YAC9B,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,mBAAmB,GAAG,KAAK;QACvD;IACJ;AACH;AAED,SAAS,gBAAgB,CAAC,YAAoC,EAAA;IAC1D,OAAO;QACH,MAAM,EAAE,YAAY,KAAK,YAAY,GAAG,yBAAyB,GAAG,WAAW;AAC/E,QAAA,KAAK,EAAE;AACH,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,WAAW,EAAE,GAAG;AACnB,SAAA;KACJ;AACL;AAEA,SAAS,gBAAgB,CAAC,YAAoC,EAAA;IAC1D,OAAO;QACH,SAAS,GAAA;AACL,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,eAAe,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,IAAI;AACtH,YAAA,MAAM,YAAY,GACd,YAAY,KAAK,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1H,MAAM,MAAM,GAAG,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,iCAAiC,GAAG,EAAE;AAC1G,YAAA,OAAO,MAAM,GAAG,aAAa,GAAG,IAAI,GAAG,YAAY;QACvD,CAAC;AACD,QAAA,KAAK,EAAE;AACH,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,KAAK,EAAE,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;AACrC,SAAA;KACJ;AACL;;AChFM,MAAO,iBAAkB,SAAQ,sBAAsB,CAAA;AAChD,IAAA,WAAW,GAAG,KAAK,CAAC,KAAK,uDAAC;AAC1B,IAAA,iBAAiB,GAAG,KAAK,CAAC,IAAI,6DAAC;AAC/B,IAAA,MAAM,GAAG,KAAK,CAAqB,EAAE,kDAAC;IACtC,MAAM,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,QAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAY;AAC1B,IAAA,YAAY,GAAG,KAAK,CAAyB,YAAY,wDAAC;IAEzD,SAAS,GAAA;AACf,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AAC5B,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;AACtC,QAAA,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM;QAC/C,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;QAE9G,MAAM,eAAe,GAAuB;AACxC,cAAE;AACF,cAAE;AACI,gBAAA;AACI,oBAAA,IAAI,EAAE,KAAK;AACX,oBAAA,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC;AAChD,oBAAA,mBAAmB,EAAE,KAAK;AAC7B,iBAAA;aACJ;QAEP,MAAM,eAAe,GAAG,CAAC;cACnB,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;eAC3B,IAAI,CAAC,MAAM,EAAE,IAAI,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;QAEhF,eAAe,CAAC,YAAY,CACxB,eAAe,EACf,OAAO,EACP,eAAe,EACf,IAAI,CAAC,eAAe,EAAE,EACtB,WAAW,EACX,IAAI,CAAC,iBAAiB,EAAE,CAC3B;AACD,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC;IACrD;wGApCS,iBAAiB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,g0BAJhB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAIH,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAN7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,QAAQ,EAAE,EAAE;AACZ,oBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE;oBACjC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAClD,iBAAA;;;ACRK,MAAO,kBAAmB,SAAQ,YAAY,CAAA;AAChD,IAAA,OAAO,WAAW,CAAC,OAAgB,EAAE,gBAAyB,EAAE,MAAc,EAAA;AAC1E,QAAA,MAAM,oBAAoB,GAAY;AAClC,YAAA,KAAK,EAAE;AACH,gBAAA,IAAI,EAAE,QAAQ;AACjB,aAAA;AACD,YAAA,WAAW,EAAE;AACT,gBAAA,MAAM,EAAE;AACJ,oBAAA,MAAM,EAAE;AACJ,wBAAA,OAAO,EAAE,gBAAgB;wBACzB,MAAM,EAAE,gBAAgB,GAAG,CAAC,GAAG,CAAC;AAChC,wBAAA,MAAM,EAAE,QAAQ;AACnB,qBAAA;AACD,oBAAA,SAAS,EAAE;AACd,iBAAA;AACJ,aAAA;AACD,YAAA,KAAK,EAAE;AACH,gBAAA,IAAI,EAAE,UAAU;AACnB,aAAA;SACJ;AACD,QAAA,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,oBAAoB,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IACpE;AACH;;ACdK,MAAO,oBAAqB,SAAQ,sBAAsB,CAAA;AACnD,IAAA,MAAM,GAAG,KAAK,CAAwB,EAAE,kDAAC;IAEzC,gBAAgB,GAAG,MAAM,EAAS;IAEjC,SAAS,GAAA;AACf,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AAC5B,QAAA,MAAM,gBAAgB,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACtD,QAAA,MAAM,OAAO,GAAG,kBAAkB,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,gBAAgB,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;AACpG,QAAA,kBAAkB,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;AACrE,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC;QACjD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IAC1C;wGAZS,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,wUAJnB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAIH,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,QAAQ,EAAE,EAAE;AACZ,oBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE;oBACjC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAClD,iBAAA;;;ACVD;;AAEG;;;;"}
|
package/index.d.ts
CHANGED
|
@@ -86,13 +86,7 @@ declare class ChartColors {
|
|
|
86
86
|
neutral: string;
|
|
87
87
|
negative: string;
|
|
88
88
|
};
|
|
89
|
-
|
|
90
|
-
* Heatmap / world-map palette — single shade (data-navy / data-marine) at 5 fixed opacity levels.
|
|
91
|
-
* Listed in ascending intensity (20% → 100%).
|
|
92
|
-
*/
|
|
93
|
-
static readonly HEATMAP_BASE_RGB: readonly [number, number, number];
|
|
94
|
-
static readonly HEATMAP_OPACITIES: readonly number[];
|
|
95
|
-
static readonly HEATMAP_COLORS: readonly string[];
|
|
89
|
+
static readonly HEATMAP_COLOR: string;
|
|
96
90
|
static readonly SOFT_RED_COLORS: {
|
|
97
91
|
100: string;
|
|
98
92
|
85: string;
|
|
@@ -115,7 +109,6 @@ declare class ChartColors {
|
|
|
115
109
|
* Wraps after 10 positions.
|
|
116
110
|
*/
|
|
117
111
|
static getDataColors(count: number): string[];
|
|
118
|
-
static getColors(seriesCount: number, color: ChartColor | undefined): string[];
|
|
119
112
|
}
|
|
120
113
|
|
|
121
114
|
declare abstract class AbstractChartComponent {
|
|
@@ -183,10 +176,8 @@ declare class ChartOptions {
|
|
|
183
176
|
static readonly DEFAULT_DATE_FORMAT = "%A, %b %e, %Y";
|
|
184
177
|
static readonly DEFAULT_OPTIONS: Options;
|
|
185
178
|
static build(options: Options, locale: string): Options;
|
|
186
|
-
static configure(series: SeriesOptionsType[], options: Options,
|
|
179
|
+
static configure(series: SeriesOptionsType[], options: Options, labelDateFormat?: string): void;
|
|
187
180
|
}
|
|
188
|
-
/** Deep-merge clone (immutable). Arrays are replaced wholesale, not element-merged like `es-toolkit`'s `toMerged`. */
|
|
189
|
-
declare function mergeDeep(target: any, source: any): any;
|
|
190
181
|
|
|
191
182
|
declare class ChartPieComponent extends AbstractChartComponent {
|
|
192
183
|
readonly innerLabels: _angular_core.InputSignal<boolean>;
|
|
@@ -207,4 +198,4 @@ declare class ChartSplineComponent extends AbstractChartComponent {
|
|
|
207
198
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ChartSplineComponent, "ap-chart-spline", never, { "series": { "alias": "series"; "required": false; "isSignal": true; }; }, { "chartInitialized": "chartInitialized"; }, never, never, true, never>;
|
|
208
199
|
}
|
|
209
200
|
|
|
210
|
-
export { AbstractChartComponent, ChartBarComponent, ChartColor, ChartColors, ChartColumnComponent, ChartHeatmapComponent, ChartMixedComponent, ChartOptions, ChartPieComponent, ChartSplineComponent
|
|
201
|
+
export { AbstractChartComponent, ChartBarComponent, ChartColor, ChartColors, ChartColumnComponent, ChartHeatmapComponent, ChartMixedComponent, ChartOptions, ChartPieComponent, ChartSplineComponent };
|
package/package.json
CHANGED
|
Binary file
|