@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.
- package/agorapulse-ui-charts-map-16.0.0-rc.0.tgz +0 -0
- package/esm2022/index.mjs +5 -0
- package/esm2022/src/lib/chart-colors.mjs +96 -0
- package/esm2022/src/lib/chart-map/chart-map-options.model.mjs +80 -0
- package/esm2022/src/lib/chart-map/chart-map.component.mjs +54 -0
- package/esm2022/src/lib/chart-options.mjs +201 -0
- package/fesm2022/agorapulse-ui-charts-map.mjs +437 -0
- package/fesm2022/agorapulse-ui-charts-map.mjs.map +1 -0
- package/index.d.ts +0 -1
- package/package.json +8 -14
- package/src/lib/chart-map/chart-map.component.d.ts +1 -2
- package/src/lib/chart-options.d.ts +1 -1
- package/agorapulse-ui-charts-map-15.0.3.tgz +0 -0
- package/esm2020/index.mjs +0 -6
- package/esm2020/src/lib/agorapulse-ui-charts-map.module.mjs +0 -29
- package/esm2020/src/lib/chart-colors.mjs +0 -96
- package/esm2020/src/lib/chart-map/chart-map-options.model.mjs +0 -78
- package/esm2020/src/lib/chart-map/chart-map.component.mjs +0 -53
- package/esm2020/src/lib/chart-options.mjs +0 -197
- package/fesm2015/agorapulse-ui-charts-map.mjs +0 -456
- package/fesm2015/agorapulse-ui-charts-map.mjs.map +0 -1
- package/fesm2020/agorapulse-ui-charts-map.mjs +0 -456
- package/fesm2020/agorapulse-ui-charts-map.mjs.map +0 -1
- package/src/lib/agorapulse-ui-charts-map.module.d.ts +0 -9
- /package/{esm2020 → esm2022}/agorapulse-ui-charts-map.mjs +0 -0
|
Binary file
|
|
@@ -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=
|