@agorapulse/ui-charts-map 15.0.3 → 16.0.0-rc.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.
@@ -0,0 +1,5 @@
1
+ /*
2
+ * Public API Surface of ui-charts-map
3
+ */
4
+ export { ChartMapComponent } from './src/lib/chart-map/chart-map.component';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWJzL3VpLWNoYXJ0cy1tYXAvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgdWktY2hhcnRzLW1hcFxuICovXG5cbmV4cG9ydCB7IENoYXJ0TWFwQ29tcG9uZW50IH0gZnJvbSAnLi9zcmMvbGliL2NoYXJ0LW1hcC9jaGFydC1tYXAuY29tcG9uZW50JztcbiJdfQ==
@@ -0,0 +1,96 @@
1
+ export var ChartColor;
2
+ (function (ChartColor) {
3
+ ChartColor[ChartColor["Grey"] = 0] = "Grey";
4
+ ChartColor[ChartColor["Orange"] = 1] = "Orange";
5
+ ChartColor[ChartColor["SoftBlue"] = 2] = "SoftBlue";
6
+ ChartColor[ChartColor["ElectricBlue"] = 3] = "ElectricBlue";
7
+ ChartColor[ChartColor["Purple"] = 4] = "Purple";
8
+ ChartColor[ChartColor["Green"] = 5] = "Green";
9
+ })(ChartColor || (ChartColor = {}));
10
+ export class ChartColors {
11
+ static SOFT_BLUE_COLORS = {
12
+ '10': '#EFF5FC',
13
+ '20': '#DFEDFA',
14
+ '40': '#C0DBF4',
15
+ '60': '#A0C8EF',
16
+ '85': '#78B1E8',
17
+ '100': '#61A4E4',
18
+ };
19
+ static ELECTRIC_BLUE_COLORS = {
20
+ '10': '#e8f4ff',
21
+ '20': '#d1e8ff',
22
+ '40': '#a2d1ff',
23
+ '60': '#74bbfe',
24
+ '85': '#3a9efe',
25
+ '100': '#178dfe',
26
+ };
27
+ static ORANGE_COLORS = {
28
+ '10': '#FFEFE9',
29
+ '20': '#FFE1D4',
30
+ '40': '#FFC2A8',
31
+ '60': '#FFA47D',
32
+ '85': '#FF7E46',
33
+ '100': '#FF6726',
34
+ };
35
+ static GREEN_COLORS = {
36
+ '10': '#ECF7ED',
37
+ '20': '#DAF1DD',
38
+ '40': '#B5E3BB',
39
+ '60': '#8FD498',
40
+ '85': '#61C26D',
41
+ '100': '#45B854',
42
+ };
43
+ static PURPLE_COLORS = {
44
+ '10': '#EFEDF8',
45
+ '20': '#E0DDF2',
46
+ '40': '#C1BBE6',
47
+ '60': '#A398D9',
48
+ '85': '#7C6DC9',
49
+ '100': '#6554C0',
50
+ };
51
+ static GREY_COLORS = {
52
+ '10': '#EAECEF',
53
+ '20': '#D6DAE0',
54
+ '40': '#AEB5C1',
55
+ '60': '#858FA1',
56
+ '85': '#5D6A82',
57
+ '100': '#344563',
58
+ };
59
+ static BLACK_COLOR = '#000000';
60
+ static LIMIT_COLOR = '#E81313';
61
+ static WHITE_COLOR = '#FFFFFF';
62
+ static getChartColors(color) {
63
+ switch (color) {
64
+ case ChartColor.Orange:
65
+ return this.ORANGE_COLORS;
66
+ case ChartColor.SoftBlue:
67
+ return this.SOFT_BLUE_COLORS;
68
+ case ChartColor.ElectricBlue:
69
+ return this.ELECTRIC_BLUE_COLORS;
70
+ case ChartColor.Purple:
71
+ return this.PURPLE_COLORS;
72
+ case ChartColor.Green:
73
+ return this.GREEN_COLORS;
74
+ default:
75
+ return this.GREY_COLORS;
76
+ }
77
+ }
78
+ static getColors(seriesCount, color) {
79
+ const colors = this.getChartColors(color);
80
+ switch (seriesCount) {
81
+ case 1:
82
+ return [colors[100]];
83
+ case 2:
84
+ return [colors[40], colors[100]];
85
+ case 3:
86
+ return [colors[20], colors[60], colors[100]];
87
+ case 4:
88
+ return [colors[20], colors[40], colors[60], colors[100]];
89
+ case 5:
90
+ return [colors[10], colors[20], colors[40], colors[60], colors[100]];
91
+ default:
92
+ return [colors[20], colors[40], colors[60], colors[100]];
93
+ }
94
+ }
95
+ }
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtY29sb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy91aS1jaGFydHMtbWFwL3NyYy9saWIvY2hhcnQtY29sb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLFVBT1g7QUFQRCxXQUFZLFVBQVU7SUFDbEIsMkNBQUksQ0FBQTtJQUNKLCtDQUFNLENBQUE7SUFDTixtREFBUSxDQUFBO0lBQ1IsMkRBQVksQ0FBQTtJQUNaLCtDQUFNLENBQUE7SUFDTiw2Q0FBSyxDQUFBO0FBQ1QsQ0FBQyxFQVBXLFVBQVUsS0FBVixVQUFVLFFBT3JCO0FBRUQsTUFBTSxPQUFPLFdBQVc7SUFDcEIsTUFBTSxDQUFVLGdCQUFnQixHQUFHO1FBQy9CLElBQUksRUFBRSxTQUFTO1FBQ2YsSUFBSSxFQUFFLFNBQVM7UUFDZixJQUFJLEVBQUUsU0FBUztRQUNmLElBQUksRUFBRSxTQUFTO1FBQ2YsSUFBSSxFQUFFLFNBQVM7UUFDZixLQUFLLEVBQUUsU0FBUztLQUNuQixDQUFDO0lBQ0YsTUFBTSxDQUFVLG9CQUFvQixHQUFHO1FBQ25DLElBQUksRUFBRSxTQUFTO1FBQ2YsSUFBSSxFQUFFLFNBQVM7UUFDZixJQUFJLEVBQUUsU0FBUztRQUNmLElBQUksRUFBRSxTQUFTO1FBQ2YsSUFBSSxFQUFFLFNBQVM7UUFDZixLQUFLLEVBQUUsU0FBUztLQUNuQixDQUFDO0lBQ0YsTUFBTSxDQUFVLGFBQWEsR0FBRztRQUM1QixJQUFJLEVBQUUsU0FBUztRQUNmLElBQUksRUFBRSxTQUFTO1FBQ2YsSUFBSSxFQUFFLFNBQVM7UUFDZixJQUFJLEVBQUUsU0FBUztRQUNmLElBQUksRUFBRSxTQUFTO1FBQ2YsS0FBSyxFQUFFLFNBQVM7S0FDbkIsQ0FBQztJQUNGLE1BQU0sQ0FBVSxZQUFZLEdBQUc7UUFDM0IsSUFBSSxFQUFFLFNBQVM7UUFDZixJQUFJLEVBQUUsU0FBUztRQUNmLElBQUksRUFBRSxTQUFTO1FBQ2YsSUFBSSxFQUFFLFNBQVM7UUFDZixJQUFJLEVBQUUsU0FBUztRQUNmLEtBQUssRUFBRSxTQUFTO0tBQ25CLENBQUM7SUFDRixNQUFNLENBQVUsYUFBYSxHQUFHO1FBQzVCLElBQUksRUFBRSxTQUFTO1FBQ2YsSUFBSSxFQUFFLFNBQVM7UUFDZixJQUFJLEVBQUUsU0FBUztRQUNmLElBQUksRUFBRSxTQUFTO1FBQ2YsSUFBSSxFQUFFLFNBQVM7UUFDZixLQUFLLEVBQUUsU0FBUztLQUNuQixDQUFDO0lBQ0YsTUFBTSxDQUFVLFdBQVcsR0FBRztRQUMxQixJQUFJLEVBQUUsU0FBUztRQUNmLElBQUksRUFBRSxTQUFTO1FBQ2YsSUFBSSxFQUFFLFNBQVM7UUFDZixJQUFJLEVBQUUsU0FBUztRQUNmLElBQUksRUFBRSxTQUFTO1FBQ2YsS0FBSyxFQUFFLFNBQVM7S0FDbkIsQ0FBQztJQUVGLE1BQU0sQ0FBVSxXQUFXLEdBQVcsU0FBUyxDQUFDO0lBQ2hELE1BQU0sQ0FBVSxXQUFXLEdBQVcsU0FBUyxDQUFDO0lBQ2hELE1BQU0sQ0FBVSxXQUFXLEdBQVcsU0FBUyxDQUFDO0lBRWhELE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBaUI7UUFDbkMsUUFBUSxLQUFLLEVBQUU7WUFDWCxLQUFLLFVBQVUsQ0FBQyxNQUFNO2dCQUNsQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDOUIsS0FBSyxVQUFVLENBQUMsUUFBUTtnQkFDcEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7WUFDakMsS0FBSyxVQUFVLENBQUMsWUFBWTtnQkFDeEIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUM7WUFDckMsS0FBSyxVQUFVLENBQUMsTUFBTTtnQkFDbEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO1lBQzlCLEtBQUssVUFBVSxDQUFDLEtBQUs7Z0JBQ2pCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztZQUM3QjtnQkFDSSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7U0FDL0I7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxXQUFtQixFQUFFLEtBQWlCO1FBQ25ELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUMsUUFBUSxXQUFXLEVBQUU7WUFDakIsS0FBSyxDQUFDO2dCQUNGLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN6QixLQUFLLENBQUM7Z0JBQ0YsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNyQyxLQUFLLENBQUM7Z0JBQ0YsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDakQsS0FBSyxDQUFDO2dCQUNGLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUM3RCxLQUFLLENBQUM7Z0JBQ0YsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN6RTtnQkFDSSxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDaEU7SUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gQ2hhcnRDb2xvciB7XG4gICAgR3JleSxcbiAgICBPcmFuZ2UsXG4gICAgU29mdEJsdWUsXG4gICAgRWxlY3RyaWNCbHVlLFxuICAgIFB1cnBsZSxcbiAgICBHcmVlbixcbn1cblxuZXhwb3J0IGNsYXNzIENoYXJ0Q29sb3JzIHtcbiAgICBzdGF0aWMgcmVhZG9ubHkgU09GVF9CTFVFX0NPTE9SUyA9IHtcbiAgICAgICAgJzEwJzogJyNFRkY1RkMnLFxuICAgICAgICAnMjAnOiAnI0RGRURGQScsXG4gICAgICAgICc0MCc6ICcjQzBEQkY0JyxcbiAgICAgICAgJzYwJzogJyNBMEM4RUYnLFxuICAgICAgICAnODUnOiAnIzc4QjFFOCcsXG4gICAgICAgICcxMDAnOiAnIzYxQTRFNCcsXG4gICAgfTtcbiAgICBzdGF0aWMgcmVhZG9ubHkgRUxFQ1RSSUNfQkxVRV9DT0xPUlMgPSB7XG4gICAgICAgICcxMCc6ICcjZThmNGZmJyxcbiAgICAgICAgJzIwJzogJyNkMWU4ZmYnLFxuICAgICAgICAnNDAnOiAnI2EyZDFmZicsXG4gICAgICAgICc2MCc6ICcjNzRiYmZlJyxcbiAgICAgICAgJzg1JzogJyMzYTllZmUnLFxuICAgICAgICAnMTAwJzogJyMxNzhkZmUnLFxuICAgIH07XG4gICAgc3RhdGljIHJlYWRvbmx5IE9SQU5HRV9DT0xPUlMgPSB7XG4gICAgICAgICcxMCc6ICcjRkZFRkU5JyxcbiAgICAgICAgJzIwJzogJyNGRkUxRDQnLFxuICAgICAgICAnNDAnOiAnI0ZGQzJBOCcsXG4gICAgICAgICc2MCc6ICcjRkZBNDdEJyxcbiAgICAgICAgJzg1JzogJyNGRjdFNDYnLFxuICAgICAgICAnMTAwJzogJyNGRjY3MjYnLFxuICAgIH07XG4gICAgc3RhdGljIHJlYWRvbmx5IEdSRUVOX0NPTE9SUyA9IHtcbiAgICAgICAgJzEwJzogJyNFQ0Y3RUQnLFxuICAgICAgICAnMjAnOiAnI0RBRjFERCcsXG4gICAgICAgICc0MCc6ICcjQjVFM0JCJyxcbiAgICAgICAgJzYwJzogJyM4RkQ0OTgnLFxuICAgICAgICAnODUnOiAnIzYxQzI2RCcsXG4gICAgICAgICcxMDAnOiAnIzQ1Qjg1NCcsXG4gICAgfTtcbiAgICBzdGF0aWMgcmVhZG9ubHkgUFVSUExFX0NPTE9SUyA9IHtcbiAgICAgICAgJzEwJzogJyNFRkVERjgnLFxuICAgICAgICAnMjAnOiAnI0UwRERGMicsXG4gICAgICAgICc0MCc6ICcjQzFCQkU2JyxcbiAgICAgICAgJzYwJzogJyNBMzk4RDknLFxuICAgICAgICAnODUnOiAnIzdDNkRDOScsXG4gICAgICAgICcxMDAnOiAnIzY1NTRDMCcsXG4gICAgfTtcbiAgICBzdGF0aWMgcmVhZG9ubHkgR1JFWV9DT0xPUlMgPSB7XG4gICAgICAgICcxMCc6ICcjRUFFQ0VGJyxcbiAgICAgICAgJzIwJzogJyNENkRBRTAnLFxuICAgICAgICAnNDAnOiAnI0FFQjVDMScsXG4gICAgICAgICc2MCc6ICcjODU4RkExJyxcbiAgICAgICAgJzg1JzogJyM1RDZBODInLFxuICAgICAgICAnMTAwJzogJyMzNDQ1NjMnLFxuICAgIH07XG5cbiAgICBzdGF0aWMgcmVhZG9ubHkgQkxBQ0tfQ09MT1I6IHN0cmluZyA9ICcjMDAwMDAwJztcbiAgICBzdGF0aWMgcmVhZG9ubHkgTElNSVRfQ09MT1I6IHN0cmluZyA9ICcjRTgxMzEzJztcbiAgICBzdGF0aWMgcmVhZG9ubHkgV0hJVEVfQ09MT1I6IHN0cmluZyA9ICcjRkZGRkZGJztcblxuICAgIHN0YXRpYyBnZXRDaGFydENvbG9ycyhjb2xvcjogQ2hhcnRDb2xvcik6IHsgW3NoYWRlOiBzdHJpbmddOiBzdHJpbmcgfSB7XG4gICAgICAgIHN3aXRjaCAoY29sb3IpIHtcbiAgICAgICAgICAgIGNhc2UgQ2hhcnRDb2xvci5PcmFuZ2U6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuT1JBTkdFX0NPTE9SUztcbiAgICAgICAgICAgIGNhc2UgQ2hhcnRDb2xvci5Tb2Z0Qmx1ZTpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5TT0ZUX0JMVUVfQ09MT1JTO1xuICAgICAgICAgICAgY2FzZSBDaGFydENvbG9yLkVsZWN0cmljQmx1ZTpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5FTEVDVFJJQ19CTFVFX0NPTE9SUztcbiAgICAgICAgICAgIGNhc2UgQ2hhcnRDb2xvci5QdXJwbGU6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuUFVSUExFX0NPTE9SUztcbiAgICAgICAgICAgIGNhc2UgQ2hhcnRDb2xvci5HcmVlbjpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5HUkVFTl9DT0xPUlM7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLkdSRVlfQ09MT1JTO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3RhdGljIGdldENvbG9ycyhzZXJpZXNDb3VudDogbnVtYmVyLCBjb2xvcjogQ2hhcnRDb2xvcik6IHN0cmluZ1tdIHtcbiAgICAgICAgY29uc3QgY29sb3JzID0gdGhpcy5nZXRDaGFydENvbG9ycyhjb2xvcik7XG4gICAgICAgIHN3aXRjaCAoc2VyaWVzQ291bnQpIHtcbiAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICByZXR1cm4gW2NvbG9yc1sxMDBdXTtcbiAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICByZXR1cm4gW2NvbG9yc1s0MF0sIGNvbG9yc1sxMDBdXTtcbiAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICByZXR1cm4gW2NvbG9yc1syMF0sIGNvbG9yc1s2MF0sIGNvbG9yc1sxMDBdXTtcbiAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICByZXR1cm4gW2NvbG9yc1syMF0sIGNvbG9yc1s0MF0sIGNvbG9yc1s2MF0sIGNvbG9yc1sxMDBdXTtcbiAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICByZXR1cm4gW2NvbG9yc1sxMF0sIGNvbG9yc1syMF0sIGNvbG9yc1s0MF0sIGNvbG9yc1s2MF0sIGNvbG9yc1sxMDBdXTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtjb2xvcnNbMjBdLCBjb2xvcnNbNDBdLCBjb2xvcnNbNjBdLCBjb2xvcnNbMTAwXV07XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,80 @@
1
+ import geojson from '@highcharts/map-collection/custom/world-highres2.geo.json';
2
+ import { ChartColors } from '../chart-colors';
3
+ import { ChartOptions, mergeDeep } from '../chart-options';
4
+ export class ChartMapOptions extends ChartOptions {
5
+ static build(options) {
6
+ const defaultMapOptions = {
7
+ chart: {
8
+ height: 450,
9
+ map: geojson,
10
+ },
11
+ colorAxis: {
12
+ allowDecimals: false,
13
+ gridLineWidth: 2,
14
+ gridLineColor: ChartColors.WHITE_COLOR,
15
+ min: 0,
16
+ tickAmount: 6,
17
+ labels: {
18
+ style: {
19
+ fontSize: '12px',
20
+ },
21
+ },
22
+ minColor: ChartColors.SOFT_BLUE_COLORS[20],
23
+ maxColor: ChartColors.SOFT_BLUE_COLORS[100],
24
+ },
25
+ legend: {
26
+ align: 'left',
27
+ floating: true,
28
+ },
29
+ mapNavigation: {
30
+ enabled: true,
31
+ enableMouseWheelZoom: false,
32
+ buttonOptions: {
33
+ verticalAlign: 'middle',
34
+ style: {
35
+ color: ChartColors.GREY_COLORS[100],
36
+ fontSize: '16px',
37
+ fontWeight: 'normal',
38
+ },
39
+ theme: {
40
+ fill: ChartColors.WHITE_COLOR,
41
+ r: 4,
42
+ states: {
43
+ hover: {
44
+ fill: ChartColors.GREY_COLORS[10],
45
+ },
46
+ },
47
+ },
48
+ },
49
+ },
50
+ plotOptions: {
51
+ map: {
52
+ borderColor: ChartColors.WHITE_COLOR,
53
+ borderWidth: 0.5,
54
+ nullColor: '#e2e2ea',
55
+ },
56
+ },
57
+ tooltip: {
58
+ headerFormat: '',
59
+ pointFormat: '<div style="border-bottom: 1px solid #eaecef; padding: 0 8px 7px">' +
60
+ '<span style="font-size: 12px; color: #858fa1">{point.translatedName}</span></div>' +
61
+ '<div style="font-size: 14px; color: #344563; margin: 6px 8px 0 8px;">' +
62
+ '<span style="color:{point.color}">\u25CF</span> {series.name}: <b>{point.value}</b></div>',
63
+ },
64
+ xAxis: {
65
+ crosshair: true,
66
+ },
67
+ };
68
+ return super.build(mergeDeep(defaultMapOptions, options));
69
+ }
70
+ static configureMap(series, options, color, labelDateFormat) {
71
+ super.configure(series, options, color, labelDateFormat);
72
+ const colors = ChartColors.getChartColors(color);
73
+ if (options.legend) {
74
+ options.legend.enabled = true;
75
+ }
76
+ options.colorAxis.minColor = colors[20];
77
+ options.colorAxis.maxColor = colors[100];
78
+ }
79
+ }
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtbWFwLW9wdGlvbnMubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpLWNoYXJ0cy1tYXAvc3JjL2xpYi9jaGFydC1tYXAvY2hhcnQtbWFwLW9wdGlvbnMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxPQUFPLE1BQU0sMkRBQTJELENBQUM7QUFFaEYsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFELE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFM0QsTUFBTSxPQUFPLGVBQWdCLFNBQVEsWUFBWTtJQUM3QyxNQUFNLENBQVUsS0FBSyxDQUFDLE9BQTJCO1FBQzdDLE1BQU0saUJBQWlCLEdBQXVCO1lBQzFDLEtBQUssRUFBRTtnQkFDSCxNQUFNLEVBQUUsR0FBRztnQkFDWCxHQUFHLEVBQUUsT0FBTzthQUNmO1lBQ0QsU0FBUyxFQUFFO2dCQUNQLGFBQWEsRUFBRSxLQUFLO2dCQUNwQixhQUFhLEVBQUUsQ0FBQztnQkFDaEIsYUFBYSxFQUFFLFdBQVcsQ0FBQyxXQUFXO2dCQUN0QyxHQUFHLEVBQUUsQ0FBQztnQkFDTixVQUFVLEVBQUUsQ0FBQztnQkFDYixNQUFNLEVBQUU7b0JBQ0osS0FBSyxFQUFFO3dCQUNILFFBQVEsRUFBRSxNQUFNO3FCQUNuQjtpQkFDSjtnQkFDRCxRQUFRLEVBQUUsV0FBVyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztnQkFDMUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUM7YUFDOUM7WUFDRCxNQUFNLEVBQUU7Z0JBQ0osS0FBSyxFQUFFLE1BQU07Z0JBQ2IsUUFBUSxFQUFFLElBQUk7YUFDakI7WUFDRCxhQUFhLEVBQUU7Z0JBQ1gsT0FBTyxFQUFFLElBQUk7Z0JBQ2Isb0JBQW9CLEVBQUUsS0FBSztnQkFDM0IsYUFBYSxFQUFFO29CQUNYLGFBQWEsRUFBRSxRQUFRO29CQUN2QixLQUFLLEVBQUU7d0JBQ0gsS0FBSyxFQUFFLFdBQVcsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDO3dCQUNuQyxRQUFRLEVBQUUsTUFBTTt3QkFDaEIsVUFBVSxFQUFFLFFBQVE7cUJBQ3ZCO29CQUNELEtBQUssRUFBRTt3QkFDSCxJQUFJLEVBQUUsV0FBVyxDQUFDLFdBQVc7d0JBQzdCLENBQUMsRUFBRSxDQUFDO3dCQUNKLE1BQU0sRUFBRTs0QkFDSixLQUFLLEVBQUU7Z0NBQ0gsSUFBSSxFQUFFLFdBQVcsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDOzZCQUNwQzt5QkFDSjtxQkFDSjtpQkFDSjthQUNKO1lBQ0QsV0FBVyxFQUFFO2dCQUNULEdBQUcsRUFBRTtvQkFDRCxXQUFXLEVBQUUsV0FBVyxDQUFDLFdBQVc7b0JBQ3BDLFdBQVcsRUFBRSxHQUFHO29CQUNoQixTQUFTLEVBQUUsU0FBUztpQkFDdkI7YUFDSjtZQUNELE9BQU8sRUFBRTtnQkFDTCxZQUFZLEVBQUUsRUFBRTtnQkFDaEIsV0FBVyxFQUNQLG9FQUFvRTtvQkFDcEUsbUZBQW1GO29CQUNuRix1RUFBdUU7b0JBQ3ZFLDJGQUEyRjthQUNsRztZQUNELEtBQUssRUFBRTtnQkFDSCxTQUFTLEVBQUUsSUFBSTthQUNsQjtTQUNKLENBQUM7UUFDRixPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBMkIsRUFBRSxPQUFnQixFQUFFLEtBQWlCLEVBQUUsZUFBd0I7UUFDMUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxlQUFlLENBQUMsQ0FBQztRQUN6RCxNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pELElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRTtZQUNoQixPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7U0FDakM7UUFDQSxPQUFPLENBQUMsU0FBOEIsQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzdELE9BQU8sQ0FBQyxTQUE4QixDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkUsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgSGlnaGNoYXJ0cyBmcm9tICdoaWdoY2hhcnRzJztcbmltcG9ydCB7IENvbG9yQXhpc09wdGlvbnMsIE9wdGlvbnMsIFNlcmllc09wdGlvbnNUeXBlIH0gZnJvbSAnaGlnaGNoYXJ0cyc7XG5pbXBvcnQgZ2VvanNvbiBmcm9tICdAaGlnaGNoYXJ0cy9tYXAtY29sbGVjdGlvbi9jdXN0b20vd29ybGQtaGlnaHJlczIuZ2VvLmpzb24nO1xuXG5pbXBvcnQgeyBDaGFydENvbG9yLCBDaGFydENvbG9ycyB9IGZyb20gJy4uL2NoYXJ0LWNvbG9ycyc7XG5pbXBvcnQgeyBDaGFydE9wdGlvbnMsIG1lcmdlRGVlcCB9IGZyb20gJy4uL2NoYXJ0LW9wdGlvbnMnO1xuXG5leHBvcnQgY2xhc3MgQ2hhcnRNYXBPcHRpb25zIGV4dGVuZHMgQ2hhcnRPcHRpb25zIHtcbiAgICBzdGF0aWMgb3ZlcnJpZGUgYnVpbGQob3B0aW9uczogSGlnaGNoYXJ0cy5PcHRpb25zKTogSGlnaGNoYXJ0cy5PcHRpb25zIHtcbiAgICAgICAgY29uc3QgZGVmYXVsdE1hcE9wdGlvbnM6IEhpZ2hjaGFydHMuT3B0aW9ucyA9IHtcbiAgICAgICAgICAgIGNoYXJ0OiB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA0NTAsXG4gICAgICAgICAgICAgICAgbWFwOiBnZW9qc29uLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNvbG9yQXhpczoge1xuICAgICAgICAgICAgICAgIGFsbG93RGVjaW1hbHM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGdyaWRMaW5lV2lkdGg6IDIsXG4gICAgICAgICAgICAgICAgZ3JpZExpbmVDb2xvcjogQ2hhcnRDb2xvcnMuV0hJVEVfQ09MT1IsXG4gICAgICAgICAgICAgICAgbWluOiAwLFxuICAgICAgICAgICAgICAgIHRpY2tBbW91bnQ6IDYsXG4gICAgICAgICAgICAgICAgbGFiZWxzOiB7XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250U2l6ZTogJzEycHgnLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgbWluQ29sb3I6IENoYXJ0Q29sb3JzLlNPRlRfQkxVRV9DT0xPUlNbMjBdLFxuICAgICAgICAgICAgICAgIG1heENvbG9yOiBDaGFydENvbG9ycy5TT0ZUX0JMVUVfQ09MT1JTWzEwMF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGVnZW5kOiB7XG4gICAgICAgICAgICAgICAgYWxpZ246ICdsZWZ0JyxcbiAgICAgICAgICAgICAgICBmbG9hdGluZzogdHJ1ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBtYXBOYXZpZ2F0aW9uOiB7XG4gICAgICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBlbmFibGVNb3VzZVdoZWVsWm9vbTogZmFsc2UsXG4gICAgICAgICAgICAgICAgYnV0dG9uT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbEFsaWduOiAnbWlkZGxlJyxcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBDaGFydENvbG9ycy5HUkVZX0NPTE9SU1sxMDBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNpemU6ICcxNnB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRXZWlnaHQ6ICdub3JtYWwnLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB0aGVtZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbDogQ2hhcnRDb2xvcnMuV0hJVEVfQ09MT1IsXG4gICAgICAgICAgICAgICAgICAgICAgICByOiA0LFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGVzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaG92ZXI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbDogQ2hhcnRDb2xvcnMuR1JFWV9DT0xPUlNbMTBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGxvdE9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBtYXA6IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyQ29sb3I6IENoYXJ0Q29sb3JzLldISVRFX0NPTE9SLFxuICAgICAgICAgICAgICAgICAgICBib3JkZXJXaWR0aDogMC41LFxuICAgICAgICAgICAgICAgICAgICBudWxsQ29sb3I6ICcjZTJlMmVhJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRvb2x0aXA6IHtcbiAgICAgICAgICAgICAgICBoZWFkZXJGb3JtYXQ6ICcnLFxuICAgICAgICAgICAgICAgIHBvaW50Rm9ybWF0OlxuICAgICAgICAgICAgICAgICAgICAnPGRpdiBzdHlsZT1cImJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWFlY2VmOyBwYWRkaW5nOiAwIDhweCA3cHhcIj4nICtcbiAgICAgICAgICAgICAgICAgICAgJzxzcGFuIHN0eWxlPVwiZm9udC1zaXplOiAxMnB4OyBjb2xvcjogIzg1OGZhMVwiPntwb2ludC50cmFuc2xhdGVkTmFtZX08L3NwYW4+PC9kaXY+JyArXG4gICAgICAgICAgICAgICAgICAgICc8ZGl2IHN0eWxlPVwiZm9udC1zaXplOiAxNHB4OyBjb2xvcjogIzM0NDU2MzsgbWFyZ2luOiA2cHggOHB4IDAgOHB4O1wiPicgK1xuICAgICAgICAgICAgICAgICAgICAnPHNwYW4gc3R5bGU9XCJjb2xvcjp7cG9pbnQuY29sb3J9XCI+XFx1MjVDRjwvc3Bhbj4ge3Nlcmllcy5uYW1lfTogPGI+e3BvaW50LnZhbHVlfTwvYj48L2Rpdj4nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHhBeGlzOiB7XG4gICAgICAgICAgICAgICAgY3Jvc3NoYWlyOiB0cnVlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHN1cGVyLmJ1aWxkKG1lcmdlRGVlcChkZWZhdWx0TWFwT3B0aW9ucywgb3B0aW9ucykpO1xuICAgIH1cblxuICAgIHN0YXRpYyBjb25maWd1cmVNYXAoc2VyaWVzOiBTZXJpZXNPcHRpb25zVHlwZVtdLCBvcHRpb25zOiBPcHRpb25zLCBjb2xvcjogQ2hhcnRDb2xvciwgbGFiZWxEYXRlRm9ybWF0Pzogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyLmNvbmZpZ3VyZShzZXJpZXMsIG9wdGlvbnMsIGNvbG9yLCBsYWJlbERhdGVGb3JtYXQpO1xuICAgICAgICBjb25zdCBjb2xvcnMgPSBDaGFydENvbG9ycy5nZXRDaGFydENvbG9ycyhjb2xvcik7XG4gICAgICAgIGlmIChvcHRpb25zLmxlZ2VuZCkge1xuICAgICAgICAgICAgb3B0aW9ucy5sZWdlbmQuZW5hYmxlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgKG9wdGlvbnMuY29sb3JBeGlzIGFzIENvbG9yQXhpc09wdGlvbnMpLm1pbkNvbG9yID0gY29sb3JzWzIwXTtcbiAgICAgICAgKG9wdGlvbnMuY29sb3JBeGlzIGFzIENvbG9yQXhpc09wdGlvbnMpLm1heENvbG9yID0gY29sb3JzWzEwMF07XG4gICAgfVxufVxuIl19
@@ -0,0 +1,54 @@
1
+ import { Component, Input, ViewChild } from '@angular/core';
2
+ import { mapChart } from 'highcharts/highmaps';
3
+ import { ChartColor } from '../chart-colors';
4
+ import { ChartMapOptions } from './chart-map-options.model';
5
+ import * as i0 from "@angular/core";
6
+ export class ChartMapComponent {
7
+ chartRef;
8
+ chartOptions = {}; // https://api.highcharts.com/highcharts/
9
+ color = ChartColor.ElectricBlue;
10
+ labelDateFormat = '%m/%d';
11
+ series = [];
12
+ lastWidth = 0;
13
+ ngOnChanges(changes) {
14
+ if ((changes.series && !changes.series.firstChange) || (changes.color && !changes.color.firstChange)) {
15
+ this.initChart();
16
+ }
17
+ }
18
+ ngAfterViewChecked() {
19
+ if (this.chartRef && this.chartRef.nativeElement.clientWidth !== this.lastWidth) {
20
+ this.lastWidth = this.chartRef.nativeElement.clientWidth;
21
+ if (this.series && this.series.length) {
22
+ this.initChart();
23
+ }
24
+ }
25
+ }
26
+ initChart() {
27
+ if (this.series) {
28
+ this.chartOptions = ChartMapOptions.build(this.chartOptions);
29
+ ChartMapOptions.configureMap(this.series, this.chartOptions, this.color, this.labelDateFormat);
30
+ mapChart(this.chartRef.nativeElement, this.chartOptions);
31
+ }
32
+ }
33
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: ChartMapComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
34
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.10", type: ChartMapComponent, isStandalone: true, selector: "ap-chart-map", inputs: { chartOptions: "chartOptions", color: "color", labelDateFormat: "labelDateFormat", series: "series" }, viewQueries: [{ propertyName: "chartRef", first: true, predicate: ["chart"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #chart></div>\n" });
35
+ }
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: ChartMapComponent, decorators: [{
37
+ type: Component,
38
+ args: [{ selector: 'ap-chart-map', standalone: true, template: "<div #chart></div>\n" }]
39
+ }], propDecorators: { chartRef: [{
40
+ type: ViewChild,
41
+ args: ['chart']
42
+ }], chartOptions: [{
43
+ type: Input
44
+ }], color: [{
45
+ type: Input
46
+ }], labelDateFormat: [{
47
+ type: Input
48
+ }], series: [{
49
+ type: Input,
50
+ args: [{
51
+ required: true
52
+ }]
53
+ }] } });
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtbWFwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWktY2hhcnRzLW1hcC9zcmMvbGliL2NoYXJ0LW1hcC9jaGFydC1tYXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS1jaGFydHMtbWFwL3NyYy9saWIvY2hhcnQtbWFwL2NoYXJ0LW1hcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLFNBQVMsRUFBYyxLQUFLLEVBQTRCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwSCxPQUFPLEVBQUUsUUFBUSxFQUE2QixNQUFNLHFCQUFxQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBTzVELE1BQU0sT0FBTyxpQkFBaUI7SUFDTixRQUFRLENBQWM7SUFFakMsWUFBWSxHQUFZLEVBQUUsQ0FBQyxDQUFDLHlDQUF5QztJQUNyRSxLQUFLLEdBQWUsVUFBVSxDQUFDLFlBQVksQ0FBQztJQUM1QyxlQUFlLEdBQUcsT0FBTyxDQUFDO0lBR2hDLE1BQU0sR0FBdUIsRUFBRSxDQUFDO0lBRTNCLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFFdEIsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ2xHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNwQjtJQUNMLENBQUM7SUFFRCxrQkFBa0I7UUFDZCxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsV0FBVyxLQUFLLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDN0UsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7WUFDekQsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO2dCQUNuQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7YUFDcEI7U0FDSjtJQUNMLENBQUM7SUFFTyxTQUFTO1FBQ2IsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2IsSUFBSSxDQUFDLFlBQVksR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUM3RCxlQUFlLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUMvRixRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQzVEO0lBQ0wsQ0FBQzt3R0FqQ1EsaUJBQWlCOzRGQUFqQixpQkFBaUIsZ1RDVjlCLHNCQUNBOzs0RkRTYSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0ksY0FBYyxjQUVaLElBQUk7OEJBR0ksUUFBUTtzQkFBM0IsU0FBUzt1QkFBQyxPQUFPO2dCQUVULFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBR0gsTUFBTTtzQkFGUixLQUFLO3VCQUFDO3dCQUNILFFBQVEsRUFBRSxJQUFJO3FCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0NoZWNrZWQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBtYXBDaGFydCwgT3B0aW9ucywgU2VyaWVzTWFwT3B0aW9ucyB9IGZyb20gJ2hpZ2hjaGFydHMvaGlnaG1hcHMnO1xuaW1wb3J0IHsgQ2hhcnRDb2xvciB9IGZyb20gJy4uL2NoYXJ0LWNvbG9ycyc7XG5pbXBvcnQgeyBDaGFydE1hcE9wdGlvbnMgfSBmcm9tICcuL2NoYXJ0LW1hcC1vcHRpb25zLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcC1jaGFydC1tYXAnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jaGFydC1tYXAuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgQ2hhcnRNYXBDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdDaGVja2VkLCBPbkNoYW5nZXMge1xuICAgIEBWaWV3Q2hpbGQoJ2NoYXJ0JykgY2hhcnRSZWYhOiBFbGVtZW50UmVmO1xuXG4gICAgQElucHV0KCkgY2hhcnRPcHRpb25zOiBPcHRpb25zID0ge307IC8vIGh0dHBzOi8vYXBpLmhpZ2hjaGFydHMuY29tL2hpZ2hjaGFydHMvXG4gICAgQElucHV0KCkgY29sb3I6IENoYXJ0Q29sb3IgPSBDaGFydENvbG9yLkVsZWN0cmljQmx1ZTtcbiAgICBASW5wdXQoKSBsYWJlbERhdGVGb3JtYXQgPSAnJW0vJWQnO1xuICAgIEBJbnB1dCh7XG4gICAgICAgIHJlcXVpcmVkOiB0cnVlXG4gICAgfSkgc2VyaWVzOiBTZXJpZXNNYXBPcHRpb25zW10gPSBbXTtcblxuICAgIHByaXZhdGUgbGFzdFdpZHRoID0gMDtcblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKChjaGFuZ2VzLnNlcmllcyAmJiAhY2hhbmdlcy5zZXJpZXMuZmlyc3RDaGFuZ2UpIHx8IChjaGFuZ2VzLmNvbG9yICYmICFjaGFuZ2VzLmNvbG9yLmZpcnN0Q2hhbmdlKSkge1xuICAgICAgICAgICAgdGhpcy5pbml0Q2hhcnQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcbiAgICAgICAgaWYgKHRoaXMuY2hhcnRSZWYgJiYgdGhpcy5jaGFydFJlZi5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoICE9PSB0aGlzLmxhc3RXaWR0aCkge1xuICAgICAgICAgICAgdGhpcy5sYXN0V2lkdGggPSB0aGlzLmNoYXJ0UmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgICAgICAgICBpZiAodGhpcy5zZXJpZXMgJiYgdGhpcy5zZXJpZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbml0Q2hhcnQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdENoYXJ0KCkge1xuICAgICAgICBpZiAodGhpcy5zZXJpZXMpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhcnRPcHRpb25zID0gQ2hhcnRNYXBPcHRpb25zLmJ1aWxkKHRoaXMuY2hhcnRPcHRpb25zKTtcbiAgICAgICAgICAgIENoYXJ0TWFwT3B0aW9ucy5jb25maWd1cmVNYXAodGhpcy5zZXJpZXMsIHRoaXMuY2hhcnRPcHRpb25zLCB0aGlzLmNvbG9yLCB0aGlzLmxhYmVsRGF0ZUZvcm1hdCk7XG4gICAgICAgICAgICBtYXBDaGFydCh0aGlzLmNoYXJ0UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuY2hhcnRPcHRpb25zKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXYgI2NoYXJ0PjwvZGl2PlxuIl19
@@ -0,0 +1,201 @@
1
+ import { dateFormat } from 'highcharts';
2
+ import { ChartColors } from './chart-colors';
3
+ export class ChartOptions {
4
+ static DEFAULT_DATE_FORMAT = '%A, %b %e, %Y';
5
+ static DEFAULT_OPTIONS = {
6
+ /*lang: {
7
+ decimalPoint: (manager && manager.locale !== 'en') ? ',' : '.',
8
+ resetZoom: resetZoomLabel,
9
+ resetZoomTitle: resetZoomHtmlTitle,
10
+ shortMonths: [
11
+ shortJanuary, shortFebruary, shortMarch, shortApril, shortMay, shortJune,
12
+ shortJuly, shortAugust, shortSeptember, shortOctober, shortNovember, shortDecember
13
+ ],
14
+ thousandsSep: (manager && manager.locale !== 'en') ? ' ' : ',',
15
+ weekdays: this.weekDays,
16
+ zoomIn: zoomInHtmlTitle,
17
+ zoomOut: zoomOutHtmlTitle
18
+ },*/
19
+ chart: {
20
+ spacingRight: 20,
21
+ zooming: {
22
+ type: 'xy',
23
+ resetButton: {
24
+ theme: {
25
+ fill: ChartColors.WHITE_COLOR,
26
+ r: 4,
27
+ style: {
28
+ color: ChartColors.GREY_COLORS[100],
29
+ fontSize: '12px',
30
+ },
31
+ states: {
32
+ hover: {
33
+ fill: ChartColors.GREY_COLORS[10],
34
+ },
35
+ },
36
+ },
37
+ },
38
+ },
39
+ panning: {
40
+ enabled: true,
41
+ },
42
+ panKey: 'shift',
43
+ style: {
44
+ fontFamily: "Averta, 'Open Sans', Helvetica, sans-serif",
45
+ },
46
+ },
47
+ colorAxis: {
48
+ labels: {
49
+ style: {
50
+ color: ChartColors.GREY_COLORS[60],
51
+ },
52
+ },
53
+ },
54
+ credits: {
55
+ enabled: false,
56
+ },
57
+ legend: {
58
+ borderWidth: 0,
59
+ itemStyle: {
60
+ color: ChartColors.GREY_COLORS[60],
61
+ fontSize: '14px',
62
+ fontWeight: 'normal',
63
+ },
64
+ itemHoverStyle: {
65
+ color: ChartColors.GREY_COLORS[100],
66
+ fontWeight: 'bold',
67
+ },
68
+ },
69
+ plotOptions: {
70
+ series: {
71
+ states: {
72
+ hover: {
73
+ brightness: 0,
74
+ },
75
+ },
76
+ connectNulls: true,
77
+ lineWidth: 4,
78
+ },
79
+ },
80
+ navigation: {
81
+ buttonOptions: {
82
+ y: 0,
83
+ },
84
+ },
85
+ title: {
86
+ text: undefined,
87
+ },
88
+ tooltip: {
89
+ backgroundColor: ChartColors.WHITE_COLOR,
90
+ borderRadius: 4,
91
+ borderWidth: 0,
92
+ dateTimeLabelFormats: {
93
+ day: ChartOptions.DEFAULT_DATE_FORMAT,
94
+ week: ChartOptions.DEFAULT_DATE_FORMAT,
95
+ },
96
+ shadow: {
97
+ color: ChartColors.BLACK_COLOR,
98
+ offsetX: 0,
99
+ offsetY: 2,
100
+ opacity: 0.02,
101
+ width: 6,
102
+ },
103
+ split: false,
104
+ shared: true,
105
+ useHTML: true,
106
+ headerFormat: `<div style="border-bottom: 1px solid ${ChartColors.GREY_COLORS[10]}; padding: 0 8px 7px">` +
107
+ `<span style="font-size: 12px; color: ${ChartColors.GREY_COLORS[60]}">{point.key}</span></div>`,
108
+ pointFormat: `<div style="font-size: 14px; color: ${ChartColors.GREY_COLORS[100]}; margin: 6px 8px 0 8px;">` +
109
+ '<span style="color:{point.color}">\u25CF</span> {series.name}: <b>{point.y}</b></div>',
110
+ },
111
+ xAxis: {
112
+ gridLineColor: ChartColors.GREY_COLORS[10],
113
+ lineColor: ChartColors.GREY_COLORS[10],
114
+ tickColor: ChartColors.GREY_COLORS[10],
115
+ gridLineWidth: 1,
116
+ title: {
117
+ text: null,
118
+ },
119
+ labels: {
120
+ style: {
121
+ color: ChartColors.GREY_COLORS[40],
122
+ fontSize: '12px',
123
+ },
124
+ },
125
+ },
126
+ yAxis: {
127
+ allowDecimals: false,
128
+ gridLineColor: ChartColors.GREY_COLORS[10],
129
+ lineColor: ChartColors.GREY_COLORS[10],
130
+ gridLineWidth: 1,
131
+ title: {
132
+ text: null,
133
+ },
134
+ labels: {
135
+ style: {
136
+ color: ChartColors.GREY_COLORS[40],
137
+ fontSize: '12px',
138
+ },
139
+ },
140
+ },
141
+ };
142
+ static build(options) {
143
+ return mergeDeep(ChartOptions.DEFAULT_OPTIONS, options);
144
+ }
145
+ static configure(series, options, color, labelDateFormat) {
146
+ // Configure axis
147
+ options.xAxis = mergeDeep({
148
+ labels: {
149
+ formatter: function () {
150
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
151
+ // @ts-ignore
152
+ return dateFormat(labelDateFormat ? labelDateFormat : '%m/%d', this.value);
153
+ },
154
+ },
155
+ //minTickInterval: 24 * 60 * 60 * 1000 // One day
156
+ }, options.xAxis);
157
+ // Configure series
158
+ if (series && series.length) {
159
+ options.series = series;
160
+ if (options.legend) {
161
+ options.legend.enabled = series.length >= 2;
162
+ }
163
+ options.colors = ChartColors.getColors(series.length, color);
164
+ }
165
+ }
166
+ }
167
+ export function isObject(item) {
168
+ return item && typeof item === 'object' && !Array.isArray(item);
169
+ }
170
+ export function mergeDeep(target, source) {
171
+ const output = deepCopy(target);
172
+ if (isObject(target) && isObject(source)) {
173
+ Object.keys(source).forEach(key => {
174
+ if (isObject(source[key])) {
175
+ if (!(key in target))
176
+ Object.assign(output, { [key]: source[key] });
177
+ else
178
+ output[key] = mergeDeep(target[key], source[key]);
179
+ }
180
+ else {
181
+ Object.assign(output, { [key]: source[key] });
182
+ }
183
+ });
184
+ }
185
+ return output;
186
+ }
187
+ function deepCopy(source) {
188
+ if (typeof source !== 'object' || source === null) {
189
+ return source; // Return the value if source is not an object
190
+ }
191
+ // Create an array or object to hold the values
192
+ const newObject = Array.isArray(source) ? [] : {};
193
+ for (const key in source) {
194
+ if (source.hasOwnProperty(key)) {
195
+ // Recursively (deep) copy for nested objects, including arrays
196
+ newObject[key] = deepCopy(source[key]);
197
+ }
198
+ }
199
+ return newObject;
200
+ }
201
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvdWktY2hhcnRzLW1hcC9zcmMvbGliL2NoYXJ0LW9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBOEIsTUFBTSxZQUFZLENBQUM7QUFDcEUsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpELE1BQU0sT0FBTyxZQUFZO0lBQ3JCLE1BQU0sQ0FBVSxtQkFBbUIsR0FBVyxlQUFlLENBQUM7SUFDOUQsTUFBTSxDQUFVLGVBQWUsR0FBWTtRQUN2Qzs7Ozs7Ozs7Ozs7O1lBWUk7UUFDSixLQUFLLEVBQUU7WUFDSCxZQUFZLEVBQUUsRUFBRTtZQUNoQixPQUFPLEVBQUU7Z0JBQ0wsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsV0FBVyxFQUFFO29CQUNULEtBQUssRUFBRTt3QkFDSCxJQUFJLEVBQUUsV0FBVyxDQUFDLFdBQVc7d0JBQzdCLENBQUMsRUFBRSxDQUFDO3dCQUNKLEtBQUssRUFBRTs0QkFDSCxLQUFLLEVBQUUsV0FBVyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUM7NEJBQ25DLFFBQVEsRUFBRSxNQUFNO3lCQUNuQjt3QkFDRCxNQUFNLEVBQUU7NEJBQ0osS0FBSyxFQUFFO2dDQUNILElBQUksRUFBRSxXQUFXLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQzs2QkFDcEM7eUJBQ0o7cUJBQ0o7aUJBQ0o7YUFDSjtZQUNELE9BQU8sRUFBRTtnQkFDTCxPQUFPLEVBQUUsSUFBSTthQUNoQjtZQUNELE1BQU0sRUFBRSxPQUFPO1lBQ2YsS0FBSyxFQUFFO2dCQUNILFVBQVUsRUFBRSw0Q0FBNEM7YUFDM0Q7U0FDSjtRQUNELFNBQVMsRUFBRTtZQUNQLE1BQU0sRUFBRTtnQkFDSixLQUFLLEVBQUU7b0JBQ0gsS0FBSyxFQUFFLFdBQVcsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFD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WUFDOUQsU0FBaUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDbkQ7S0FDSjtJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkYXRlRm9ybWF0LCBPcHRpb25zLCBTZXJpZXNPcHRpb25zVHlwZSB9IGZyb20gJ2hpZ2hjaGFydHMnO1xuaW1wb3J0IHsgQ2hhcnRDb2xvciwgQ2hhcnRDb2xvcnMgfSBmcm9tICcuL2NoYXJ0LWNvbG9ycyc7XG5cbmV4cG9ydCBjbGFzcyBDaGFydE9wdGlvbnMge1xuICAgIHN0YXRpYyByZWFkb25seSBERUZBVUxUX0RBVEVfRk9STUFUOiBzdHJpbmcgPSAnJUEsICViICVlLCAlWSc7XG4gICAgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfT1BUSU9OUzogT3B0aW9ucyA9IHtcbiAgICAgICAgLypsYW5nOiB7XG4gICAgICAgICAgICBkZWNpbWFsUG9pbnQ6IChtYW5hZ2VyICYmIG1hbmFnZXIubG9jYWxlICE9PSAnZW4nKSA/ICcsJyA6ICcuJyxcbiAgICAgICAgICAgIHJlc2V0Wm9vbTogcmVzZXRab29tTGFiZWwsXG4gICAgICAgICAgICByZXNldFpvb21UaXRsZTogcmVzZXRab29tSHRtbFRpdGxlLFxuICAgICAgICAgICAgc2hvcnRNb250aHM6IFtcbiAgICAgICAgICAgICAgICBzaG9ydEphbnVhcnksIHNob3J0RmVicnVhcnksIHNob3J0TWFyY2gsIHNob3J0QXByaWwsIHNob3J0TWF5LCBzaG9ydEp1bmUsXG4gICAgICAgICAgICAgICAgc2hvcnRKdWx5LCBzaG9ydEF1Z3VzdCwgc2hvcnRTZXB0ZW1iZXIsIHNob3J0T2N0b2Jlciwgc2hvcnROb3ZlbWJlciwgc2hvcnREZWNlbWJlclxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHRob3VzYW5kc1NlcDogKG1hbmFnZXIgJiYgbWFuYWdlci5sb2NhbGUgIT09ICdlbicpID8gJyAnIDogJywnLFxuICAgICAgICAgICAgd2Vla2RheXM6IHRoaXMud2Vla0RheXMsXG4gICAgICAgICAgICB6b29tSW46IHpvb21Jbkh0bWxUaXRsZSxcbiAgICAgICAgICAgIHpvb21PdXQ6IHpvb21PdXRIdG1sVGl0bGVcbiAgICAgICAgfSwqL1xuICAgICAgICBjaGFydDoge1xuICAgICAgICAgICAgc3BhY2luZ1JpZ2h0OiAyMCxcbiAgICAgICAgICAgIHpvb21pbmc6IHtcbiAgICAgICAgICAgICAgICB0eXBlOiAneHknLFxuICAgICAgICAgICAgICAgIHJlc2V0QnV0dG9uOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoZW1lOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsOiBDaGFydENvbG9ycy5XSElURV9DT0xPUixcbiAgICAgICAgICAgICAgICAgICAgICAgIHI6IDQsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBDaGFydENvbG9ycy5HUkVZX0NPTE9SU1sxMDBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiAnMTJweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGVzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaG92ZXI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbDogQ2hhcnRDb2xvcnMuR1JFWV9DT0xPUlNbMTBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGFubmluZzoge1xuICAgICAgICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGFuS2V5OiAnc2hpZnQnLFxuICAgICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICBmb250RmFtaWx5OiBcIkF2ZXJ0YSwgJ09wZW4gU2FucycsIEhlbHZldGljYSwgc2Fucy1zZXJpZlwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgY29sb3JBeGlzOiB7XG4gICAgICAgICAgICBsYWJlbHM6IHtcbiAgICAgICAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogQ2hhcnRDb2xvcnMuR1JFWV9DT0xPUlNbNjBdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBjcmVkaXRzOiB7XG4gICAgICAgICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgICAgbGVnZW5kOiB7XG4gICAgICAgICAgICBib3JkZXJXaWR0aDogMCxcbiAgICAgICAgICAgIGl0ZW1TdHlsZToge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBDaGFydENvbG9ycy5HUkVZX0NPTE9SU1s2MF0sXG4gICAgICAgICAgICAgICAgZm9udFNpemU6ICcxNHB4JyxcbiAgICAgICAgICAgICAgICBmb250V2VpZ2h0OiAnbm9ybWFsJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpdGVtSG92ZXJTdHlsZToge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBDaGFydENvbG9ycy5HUkVZX0NPTE9SU1sxMDBdLFxuICAgICAgICAgICAgICAgIGZvbnRXZWlnaHQ6ICdib2xkJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHBsb3RPcHRpb25zOiB7XG4gICAgICAgICAgICBzZXJpZXM6IHtcbiAgICAgICAgICAgICAgICBzdGF0ZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgaG92ZXI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyaWdodG5lc3M6IDAsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBjb25uZWN0TnVsbHM6IHRydWUsXG4gICAgICAgICAgICAgICAgbGluZVdpZHRoOiA0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgbmF2aWdhdGlvbjoge1xuICAgICAgICAgICAgYnV0dG9uT3B0aW9uczoge1xuICAgICAgICAgICAgICAgIHk6IDAsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB0aXRsZToge1xuICAgICAgICAgICAgdGV4dDogdW5kZWZpbmVkLFxuICAgICAgICB9LFxuICAgICAgICB0b29sdGlwOiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IENoYXJ0Q29sb3JzLldISVRFX0NPTE9SLFxuICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiA0LFxuICAgICAgICAgICAgYm9yZGVyV2lkdGg6IDAsXG4gICAgICAgICAgICBkYXRlVGltZUxhYmVsRm9ybWF0czoge1xuICAgICAgICAgICAgICAgIGRheTogQ2hhcnRPcHRpb25zLkRFRkFVTFRfREFURV9GT1JNQVQsXG4gICAgICAgICAgICAgICAgd2VlazogQ2hhcnRPcHRpb25zLkRFRkFVTFRfREFURV9GT1JNQVQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2hhZG93OiB7XG4gICAgICAgICAgICAgICAgY29sb3I6IENoYXJ0Q29sb3JzLkJMQUNLX0NPTE9SLFxuICAgICAgICAgICAgICAgIG9mZnNldFg6IDAsXG4gICAgICAgICAgICAgICAgb2Zmc2V0WTogMixcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjAyLFxuICAgICAgICAgICAgICAgIHdpZHRoOiA2LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNwbGl0OiBmYWxzZSxcbiAgICAgICAgICAgIHNoYXJlZDogdHJ1ZSxcbiAgICAgICAgICAgIHVzZUhUTUw6IHRydWUsXG4gICAgICAgICAgICBoZWFkZXJGb3JtYXQ6XG4gICAgICAgICAgICAgICAgYDxkaXYgc3R5bGU9XCJib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtDaGFydENvbG9ycy5HUkVZX0NPTE9SU1sxMF19OyBwYWRkaW5nOiAwIDhweCA3cHhcIj5gICtcbiAgICAgICAgICAgICAgICBgPHNwYW4gc3R5bGU9XCJmb250LXNpemU6IDEycHg7IGNvbG9yOiAke0NoYXJ0Q29sb3JzLkdSRVlfQ09MT1JTWzYwXX1cIj57cG9pbnQua2V5fTwvc3Bhbj48L2Rpdj5gLFxuICAgICAgICAgICAgcG9pbnRGb3JtYXQ6XG4gICAgICAgICAgICAgICAgYDxkaXYgc3R5bGU9XCJmb250LXNpemU6IDE0cHg7IGNvbG9yOiAke0NoYXJ0Q29sb3JzLkdSRVlfQ09MT1JTWzEwMF19OyBtYXJnaW46IDZweCA4cHggMCA4cHg7XCI+YCArXG4gICAgICAgICAgICAgICAgJzxzcGFuIHN0eWxlPVwiY29sb3I6e3BvaW50LmNvbG9yfVwiPlxcdTI1Q0Y8L3NwYW4+IHtzZXJpZXMubmFtZX06IDxiPntwb2ludC55fTwvYj48L2Rpdj4nLFxuICAgICAgICB9LFxuICAgICAgICB4QXhpczoge1xuICAgICAgICAgICAgZ3JpZExpbmVDb2xvcjogQ2hhcnRDb2xvcnMuR1JFWV9DT0xPUlNbMTBdLFxuICAgICAgICAgICAgbGluZUNvbG9yOiBDaGFydENvbG9ycy5HUkVZX0NPTE9SU1sxMF0sXG4gICAgICAgICAgICB0aWNrQ29sb3I6IENoYXJ0Q29sb3JzLkdSRVlfQ09MT1JTWzEwXSxcbiAgICAgICAgICAgIGdyaWRMaW5lV2lkdGg6IDEsXG4gICAgICAgICAgICB0aXRsZToge1xuICAgICAgICAgICAgICAgIHRleHQ6IG51bGwsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFiZWxzOiB7XG4gICAgICAgICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IENoYXJ0Q29sb3JzLkdSRVlfQ09MT1JTWzQwXSxcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemU6ICcxMnB4JyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgeUF4aXM6IHtcbiAgICAgICAgICAgIGFsbG93RGVjaW1hbHM6IGZhbHNlLFxuICAgICAgICAgICAgZ3JpZExpbmVDb2xvcjogQ2hhcnRDb2xvcnMuR1JFWV9DT0xPUlNbMTBdLFxuICAgICAgICAgICAgbGluZUNvbG9yOiBDaGFydENvbG9ycy5HUkVZX0NPTE9SU1sxMF0sXG4gICAgICAgICAgICBncmlkTGluZVdpZHRoOiAxLFxuICAgICAgICAgICAgdGl0bGU6IHtcbiAgICAgICAgICAgICAgICB0ZXh0OiBudWxsLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhYmVsczoge1xuICAgICAgICAgICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBDaGFydENvbG9ycy5HUkVZX0NPTE9SU1s0MF0sXG4gICAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiAnMTJweCcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgfTtcblxuICAgIHN0YXRpYyBidWlsZChvcHRpb25zOiBPcHRpb25zKTogT3B0aW9ucyB7XG4gICAgICAgIHJldHVybiBtZXJnZURlZXAoQ2hhcnRPcHRpb25zLkRFRkFVTFRfT1BUSU9OUywgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgc3RhdGljIGNvbmZpZ3VyZShzZXJpZXM6IFNlcmllc09wdGlvbnNUeXBlW10sIG9wdGlvbnM6IE9wdGlvbnMsIGNvbG9yOiBDaGFydENvbG9yLCBsYWJlbERhdGVGb3JtYXQ/OiBzdHJpbmcpIHtcbiAgICAgICAgLy8gQ29uZmlndXJlIGF4aXNcbiAgICAgICAgb3B0aW9ucy54QXhpcyA9IG1lcmdlRGVlcChcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYWJlbHM6IHtcbiAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGVyOiBmdW5jdGlvbiAoKTogc3RyaW5nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXRlRm9ybWF0KGxhYmVsRGF0ZUZvcm1hdCA/IGxhYmVsRGF0ZUZvcm1hdCA6ICclbS8lZCcsIHRoaXMudmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgLy9taW5UaWNrSW50ZXJ2YWw6IDI0ICogNjAgKiA2MCAqIDEwMDAgLy8gT25lIGRheVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9wdGlvbnMueEF4aXNcbiAgICAgICAgKTtcbiAgICAgICAgLy8gQ29uZmlndXJlIHNlcmllc1xuICAgICAgICBpZiAoc2VyaWVzICYmIHNlcmllcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIG9wdGlvbnMuc2VyaWVzID0gc2VyaWVzO1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMubGVnZW5kKSB7XG4gICAgICAgICAgICAgICAgb3B0aW9ucy5sZWdlbmQuZW5hYmxlZCA9IHNlcmllcy5sZW5ndGggPj0gMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wdGlvbnMuY29sb3JzID0gQ2hhcnRDb2xvcnMuZ2V0Q29sb3JzKHNlcmllcy5sZW5ndGgsIGNvbG9yKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzT2JqZWN0KGl0ZW06IGFueSkge1xuICAgIHJldHVybiBpdGVtICYmIHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheShpdGVtKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlRGVlcCh0YXJnZXQ6IGFueSwgc291cmNlOiBhbnkpIHtcbiAgICBjb25zdCBvdXRwdXQgPSBkZWVwQ29weSh0YXJnZXQpO1xuICAgIGlmIChpc09iamVjdCh0YXJnZXQpICYmIGlzT2JqZWN0KHNvdXJjZSkpIHtcbiAgICAgICAgT2JqZWN0LmtleXMoc291cmNlKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgICBpZiAoaXNPYmplY3Qoc291cmNlW2tleV0pKSB7XG4gICAgICAgICAgICAgICAgaWYgKCEoa2V5IGluIHRhcmdldCkpIE9iamVjdC5hc3NpZ24ob3V0cHV0LCB7IFtrZXldOiBzb3VyY2Vba2V5XSB9KTtcbiAgICAgICAgICAgICAgICBlbHNlIG91dHB1dFtrZXldID0gbWVyZ2VEZWVwKHRhcmdldFtrZXldLCBzb3VyY2Vba2V5XSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ob3V0cHV0LCB7IFtrZXldOiBzb3VyY2Vba2V5XSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBvdXRwdXQ7XG59XG5cbmZ1bmN0aW9uIGRlZXBDb3B5KHNvdXJjZTogYW55KSB7XG4gICAgaWYgKHR5cGVvZiBzb3VyY2UgIT09ICdvYmplY3QnIHx8IHNvdXJjZSA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gc291cmNlOyAvLyBSZXR1cm4gdGhlIHZhbHVlIGlmIHNvdXJjZSBpcyBub3QgYW4gb2JqZWN0XG4gICAgfVxuICAgIC8vIENyZWF0ZSBhbiBhcnJheSBvciBvYmplY3QgdG8gaG9sZCB0aGUgdmFsdWVzXG4gICAgY29uc3QgbmV3T2JqZWN0ID0gQXJyYXkuaXNBcnJheShzb3VyY2UpID8gW10gOiB7fTtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBzb3VyY2UpIHtcbiAgICAgICAgaWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAvLyBSZWN1cnNpdmVseSAoZGVlcCkgY29weSBmb3IgbmVzdGVkIG9iamVjdHMsIGluY2x1ZGluZyBhcnJheXNcbiAgICAgICAgICAgIChuZXdPYmplY3QgYXMgYW55KVtrZXldID0gZGVlcENvcHkoc291cmNlW2tleV0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuZXdPYmplY3Q7XG59XG4iXX0=