@esfaenza/es-charts 15.2.7 → 16.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.
- package/{esm2020 → esm2022}/esfaenza-es-charts.mjs +4 -4
- package/{esm2020 → esm2022}/lib/adapters/BaseAdapter.mjs +50 -50
- package/{esm2020 → esm2022}/lib/adapters/IBaseAdapter.mjs +1 -1
- package/{esm2020 → esm2022}/lib/components/base/base-chart.component.mjs +350 -350
- package/{esm2020 → esm2022}/lib/components/chart-pager/chart-pager.component.mjs +89 -89
- package/{esm2020 → esm2022}/lib/components/specializations/es-area-chart.component.mjs +77 -77
- package/{esm2020 → esm2022}/lib/components/specializations/es-chart.component.mjs +122 -122
- package/{esm2020 → esm2022}/lib/components/specializations/es-line-chart.component.mjs +112 -112
- package/{esm2020 → esm2022}/lib/components/specializations/es-pie-chart.component.mjs +98 -98
- package/{esm2020 → esm2022}/lib/components/specializations/es-vertical-2d-chart.component.mjs +95 -95
- package/{esm2020 → esm2022}/lib/components/specializations/es-vertical-chart.component.mjs +92 -92
- package/{esm2020 → esm2022}/lib/components/specializations/es-vertical-stacked-chart.component.mjs +92 -92
- package/{esm2020 → esm2022}/lib/es-charts.module.mjs +67 -67
- package/{esm2020 → esm2022}/lib/models/EsChaartsModuleConfig.mjs +5 -5
- package/{esm2020 → esm2022}/lib/models/core/ChartDispatcher.mjs +91 -91
- package/{esm2020 → esm2022}/lib/models/core/ChartLoader.mjs +212 -212
- package/{esm2020 → esm2022}/lib/models/core/ChartThemes.mjs +60 -60
- package/{esm2020 → esm2022}/lib/models/data/AreaChartData.mjs +15 -15
- package/{esm2020 → esm2022}/lib/models/data/LineChartData.mjs +15 -15
- package/{esm2020 → esm2022}/lib/models/data/PagedChartData.mjs +19 -19
- package/{esm2020 → esm2022}/lib/models/data/PieChartData.mjs +13 -13
- package/{esm2020 → esm2022}/lib/models/data/Vertical2DChartData.mjs +15 -15
- package/{esm2020 → esm2022}/lib/models/data/VerticalChartData.mjs +13 -13
- package/{esm2020 → esm2022}/lib/models/data/VerticalStackedChartData.mjs +13 -13
- package/{esm2020 → esm2022}/lib/models/data/base/DateValue.mjs +10 -10
- package/{esm2020 → esm2022}/lib/models/data/base/KeyValue.mjs +10 -10
- package/{esm2020 → esm2022}/lib/models/data/base/KeyValueColor.mjs +12 -12
- package/{esm2020 → esm2022}/lib/models/data/base/Limit.mjs +15 -15
- package/{esm2020 → esm2022}/lib/models/data/base/LineSerie.mjs +27 -27
- package/{esm2020 → esm2022}/lib/models/settings/AreaChartSettings.mjs +10 -10
- package/{esm2020 → esm2022}/lib/models/settings/LineChartSettings.mjs +10 -10
- package/{esm2020 → esm2022}/lib/models/settings/PieChartSettings.mjs +6 -6
- package/{esm2020 → esm2022}/lib/models/settings/Vertical2DChartSettings.mjs +10 -10
- package/{esm2020 → esm2022}/lib/models/settings/VerticalChartSettings.mjs +10 -10
- package/{esm2020 → esm2022}/lib/models/settings/VerticalStackedChartSettings.mjs +10 -10
- package/{esm2020 → esm2022}/lib/models/settings/base/BaseInterval.mjs +5 -5
- package/{esm2020 → esm2022}/lib/models/settings/base/BaseSettings.mjs +5 -5
- package/{esm2020 → esm2022}/lib/models/settings/base/LegendPad.mjs +5 -5
- package/esm2022/lib/services/AreaChartService.mjs +157 -0
- package/esm2022/lib/services/LineChartService.mjs +392 -0
- package/{esm2020 → esm2022}/lib/services/PieChartService.mjs +113 -113
- package/{esm2020 → esm2022}/lib/services/Vertical2DChartService.mjs +162 -162
- package/{esm2020 → esm2022}/lib/services/VerticalChartService.mjs +113 -113
- package/{esm2020 → esm2022}/lib/services/VerticalStackedChartService.mjs +126 -126
- package/{esm2020 → esm2022}/lib/services/base/IBaseService.mjs +1 -1
- package/{esm2020 → esm2022}/lib/tokens.mjs +13 -13
- package/{esm2020 → esm2022}/public-api.mjs +38 -38
- package/{fesm2020 → fesm2022}/esfaenza-es-charts.mjs +2728 -2688
- package/fesm2022/esfaenza-es-charts.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/adapters/BaseAdapter.d.ts +40 -40
- package/lib/adapters/IBaseAdapter.d.ts +35 -35
- package/lib/components/base/base-chart.component.d.ts +304 -304
- package/lib/components/chart-pager/chart-pager.component.d.ts +70 -70
- package/lib/components/specializations/es-area-chart.component.d.ts +53 -53
- package/lib/components/specializations/es-chart.component.d.ts +71 -71
- package/lib/components/specializations/es-line-chart.component.d.ts +112 -112
- package/lib/components/specializations/es-pie-chart.component.d.ts +81 -81
- package/lib/components/specializations/es-vertical-2d-chart.component.d.ts +79 -79
- package/lib/components/specializations/es-vertical-chart.component.d.ts +74 -74
- package/lib/components/specializations/es-vertical-stacked-chart.component.d.ts +74 -74
- package/lib/es-charts.module.d.ts +18 -18
- package/lib/models/EsChaartsModuleConfig.d.ts +24 -24
- package/lib/models/core/ChartDispatcher.d.ts +46 -46
- package/lib/models/core/ChartLoader.d.ts +92 -92
- package/lib/models/core/ChartThemes.d.ts +23 -23
- package/lib/models/data/AreaChartData.d.ts +22 -22
- package/lib/models/data/LineChartData.d.ts +16 -16
- package/lib/models/data/PagedChartData.d.ts +23 -23
- package/lib/models/data/PieChartData.d.ts +13 -13
- package/lib/models/data/Vertical2DChartData.d.ts +27 -27
- package/lib/models/data/VerticalChartData.d.ts +13 -13
- package/lib/models/data/VerticalStackedChartData.d.ts +21 -21
- package/lib/models/data/base/DateValue.d.ts +9 -9
- package/lib/models/data/base/KeyValue.d.ts +9 -9
- package/lib/models/data/base/KeyValueColor.d.ts +11 -11
- package/lib/models/data/base/Limit.d.ts +14 -14
- package/lib/models/data/base/LineSerie.d.ts +28 -28
- package/lib/models/settings/AreaChartSettings.d.ts +10 -10
- package/lib/models/settings/LineChartSettings.d.ts +67 -67
- package/lib/models/settings/PieChartSettings.d.ts +34 -34
- package/lib/models/settings/Vertical2DChartSettings.d.ts +36 -36
- package/lib/models/settings/VerticalChartSettings.d.ts +31 -31
- package/lib/models/settings/VerticalStackedChartSettings.d.ts +31 -31
- package/lib/models/settings/base/BaseInterval.d.ts +13 -13
- package/lib/models/settings/base/BaseSettings.d.ts +67 -67
- package/lib/models/settings/base/LegendPad.d.ts +21 -21
- package/lib/services/AreaChartService.d.ts +32 -31
- package/lib/services/LineChartService.d.ts +48 -47
- package/lib/services/PieChartService.d.ts +27 -27
- package/lib/services/Vertical2DChartService.d.ts +39 -39
- package/lib/services/VerticalChartService.d.ts +33 -33
- package/lib/services/VerticalStackedChartService.d.ts +35 -35
- package/lib/services/base/IBaseService.d.ts +38 -38
- package/lib/tokens.d.ts +13 -13
- package/package.json +11 -17
- package/public-api.d.ts +35 -35
- package/esm2020/lib/services/AreaChartService.mjs +0 -137
- package/esm2020/lib/services/LineChartService.mjs +0 -372
- package/fesm2015/esfaenza-es-charts.mjs +0 -2829
- package/fesm2015/esfaenza-es-charts.mjs.map +0 -1
- package/fesm2020/esfaenza-es-charts.mjs.map +0 -1
|
@@ -1,38 +1,38 @@
|
|
|
1
|
-
import { BaseAdapter } from '../../adapters/BaseAdapter';
|
|
2
|
-
/**
|
|
3
|
-
* Interfaccia rappresentante una Service di graficamento generica
|
|
4
|
-
*/
|
|
5
|
-
export interface IBaseService<T> {
|
|
6
|
-
/**
|
|
7
|
-
* Adattatore che si occupa della trasformazione fra una tipologia di dati qualsiasi e i Dto utilizzati da questa libreria
|
|
8
|
-
*/
|
|
9
|
-
Adapter: BaseAdapter;
|
|
10
|
-
/**
|
|
11
|
-
* Istanza del grafico vera e propria
|
|
12
|
-
*/
|
|
13
|
-
ChartInstance: T;
|
|
14
|
-
/**
|
|
15
|
-
* Crea e disegna il grafico la prima volta
|
|
16
|
-
*
|
|
17
|
-
* @param {string} name Nome del grafico (Chiave univoca)
|
|
18
|
-
* @param {any} data Dati del grafico, o tipo specifico o tipolegacy che si occuperà di convertire l'**Adapter**
|
|
19
|
-
* @param {any} settings Impostazione per la generazione del grafico
|
|
20
|
-
* @returns {IBaseService<T>} Se stessa nello stato successivo alla graficazione
|
|
21
|
-
*/
|
|
22
|
-
graphicate(name: string, data: any, settings: any): IBaseService<T>;
|
|
23
|
-
/**
|
|
24
|
-
* Aggiorna la sorgente dati del grafico senza ricrearlo da 0. Da usare al posto dei destroy-rebuild
|
|
25
|
-
*
|
|
26
|
-
* NOTA BENE: Mancano le implementazioni, eventualmente svilupparle
|
|
27
|
-
*
|
|
28
|
-
* @param {any} data Nuovi dati da sostituire a quelli precedenti
|
|
29
|
-
*/
|
|
30
|
-
refreshData(data: any): void;
|
|
31
|
-
/**
|
|
32
|
-
* Imposta lo zoom dal **from** al **to**
|
|
33
|
-
*
|
|
34
|
-
* @param {Date} from Inizio dello zoom
|
|
35
|
-
* @param {Date} to Fine dello zoom
|
|
36
|
-
*/
|
|
37
|
-
setSelection(from: Date, to: Date): void;
|
|
38
|
-
}
|
|
1
|
+
import { BaseAdapter } from '../../adapters/BaseAdapter';
|
|
2
|
+
/**
|
|
3
|
+
* Interfaccia rappresentante una Service di graficamento generica
|
|
4
|
+
*/
|
|
5
|
+
export interface IBaseService<T> {
|
|
6
|
+
/**
|
|
7
|
+
* Adattatore che si occupa della trasformazione fra una tipologia di dati qualsiasi e i Dto utilizzati da questa libreria
|
|
8
|
+
*/
|
|
9
|
+
Adapter: BaseAdapter;
|
|
10
|
+
/**
|
|
11
|
+
* Istanza del grafico vera e propria
|
|
12
|
+
*/
|
|
13
|
+
ChartInstance: T;
|
|
14
|
+
/**
|
|
15
|
+
* Crea e disegna il grafico la prima volta
|
|
16
|
+
*
|
|
17
|
+
* @param {string} name Nome del grafico (Chiave univoca)
|
|
18
|
+
* @param {any} data Dati del grafico, o tipo specifico o tipolegacy che si occuperà di convertire l'**Adapter**
|
|
19
|
+
* @param {any} settings Impostazione per la generazione del grafico
|
|
20
|
+
* @returns {IBaseService<T>} Se stessa nello stato successivo alla graficazione
|
|
21
|
+
*/
|
|
22
|
+
graphicate(name: string, data: any, settings: any): IBaseService<T>;
|
|
23
|
+
/**
|
|
24
|
+
* Aggiorna la sorgente dati del grafico senza ricrearlo da 0. Da usare al posto dei destroy-rebuild
|
|
25
|
+
*
|
|
26
|
+
* NOTA BENE: Mancano le implementazioni, eventualmente svilupparle
|
|
27
|
+
*
|
|
28
|
+
* @param {any} data Nuovi dati da sostituire a quelli precedenti
|
|
29
|
+
*/
|
|
30
|
+
refreshData(data: any): void;
|
|
31
|
+
/**
|
|
32
|
+
* Imposta lo zoom dal **from** al **to**
|
|
33
|
+
*
|
|
34
|
+
* @param {Date} from Inizio dello zoom
|
|
35
|
+
* @param {Date} to Fine dello zoom
|
|
36
|
+
*/
|
|
37
|
+
setSelection(from: Date, to: Date): void;
|
|
38
|
+
}
|
package/lib/tokens.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
2
|
-
/**
|
|
3
|
-
* Token che identifica il default per l'utilizzo o meno delle Animazioni per tutti i grafici, può essere sovrascritto dalle impostazioni locali (Settings e Input)
|
|
4
|
-
*/
|
|
5
|
-
export declare const ESC_ANIMATIONS: InjectionToken<boolean>;
|
|
6
|
-
/**
|
|
7
|
-
* Token che identifica il Tema di default per tutti i grafici, può essere sovrascritto dalle impostazioni locali (Settings e Input)
|
|
8
|
-
*/
|
|
9
|
-
export declare const ESC_THEME: InjectionToken<string>;
|
|
10
|
-
/**
|
|
11
|
-
* Token che identifica l'utilizzo o meno del sistema di Log per l'intera libreria
|
|
12
|
-
*/
|
|
13
|
-
export declare const ESC_DEBUG_MODE: InjectionToken<string>;
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
/**
|
|
3
|
+
* Token che identifica il default per l'utilizzo o meno delle Animazioni per tutti i grafici, può essere sovrascritto dalle impostazioni locali (Settings e Input)
|
|
4
|
+
*/
|
|
5
|
+
export declare const ESC_ANIMATIONS: InjectionToken<boolean>;
|
|
6
|
+
/**
|
|
7
|
+
* Token che identifica il Tema di default per tutti i grafici, può essere sovrascritto dalle impostazioni locali (Settings e Input)
|
|
8
|
+
*/
|
|
9
|
+
export declare const ESC_THEME: InjectionToken<string>;
|
|
10
|
+
/**
|
|
11
|
+
* Token che identifica l'utilizzo o meno del sistema di Log per l'intera libreria
|
|
12
|
+
*/
|
|
13
|
+
export declare const ESC_DEBUG_MODE: InjectionToken<string>;
|
package/package.json
CHANGED
|
@@ -1,22 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@esfaenza/es-charts",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "16.2.0",
|
|
4
4
|
"dependencies": {
|
|
5
5
|
"tslib": "^2.0.0"
|
|
6
6
|
},
|
|
7
7
|
"peerDependencies": {
|
|
8
|
-
"@amcharts/amcharts4": "4.10.
|
|
9
|
-
"@angular/common": "^
|
|
10
|
-
"@angular/core": "^
|
|
11
|
-
"@esfaenza/extensions": "^
|
|
12
|
-
"@esfaenza/localizations": "^
|
|
13
|
-
"dayjs": "1.11.
|
|
8
|
+
"@amcharts/amcharts4": "4.10.39",
|
|
9
|
+
"@angular/common": "^16.2.12",
|
|
10
|
+
"@angular/core": "^16.2.12",
|
|
11
|
+
"@esfaenza/extensions": "^16.2.0",
|
|
12
|
+
"@esfaenza/localizations": "^16.2.0",
|
|
13
|
+
"dayjs": "1.11.13"
|
|
14
14
|
},
|
|
15
|
-
"module": "
|
|
16
|
-
"es2020": "fesm2020/esfaenza-es-charts.mjs",
|
|
17
|
-
"esm2020": "esm2020/esfaenza-es-charts.mjs",
|
|
18
|
-
"fesm2020": "fesm2020/esfaenza-es-charts.mjs",
|
|
19
|
-
"fesm2015": "fesm2015/esfaenza-es-charts.mjs",
|
|
15
|
+
"module": "fesm2022/esfaenza-es-charts.mjs",
|
|
20
16
|
"typings": "index.d.ts",
|
|
21
17
|
"exports": {
|
|
22
18
|
"./package.json": {
|
|
@@ -24,11 +20,9 @@
|
|
|
24
20
|
},
|
|
25
21
|
".": {
|
|
26
22
|
"types": "./index.d.ts",
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"node": "./fesm2015/esfaenza-es-charts.mjs",
|
|
31
|
-
"default": "./fesm2020/esfaenza-es-charts.mjs"
|
|
23
|
+
"esm2022": "./esm2022/esfaenza-es-charts.mjs",
|
|
24
|
+
"esm": "./esm2022/esfaenza-es-charts.mjs",
|
|
25
|
+
"default": "./fesm2022/esfaenza-es-charts.mjs"
|
|
32
26
|
}
|
|
33
27
|
},
|
|
34
28
|
"sideEffects": false
|
package/public-api.d.ts
CHANGED
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
export * from './lib/adapters/BaseAdapter';
|
|
2
|
-
export * from './lib/adapters/IBaseAdapter';
|
|
3
|
-
export * from './lib/models/data/LineChartData';
|
|
4
|
-
export * from './lib/models/data/PieChartData';
|
|
5
|
-
export * from './lib/models/data/AreaChartData';
|
|
6
|
-
export * from './lib/models/data/Vertical2DChartData';
|
|
7
|
-
export * from './lib/models/data/VerticalChartData';
|
|
8
|
-
export * from './lib/models/data/VerticalStackedChartData';
|
|
9
|
-
export * from './lib/models/settings/AreaChartSettings';
|
|
10
|
-
export * from './lib/models/settings/LineChartSettings';
|
|
11
|
-
export * from './lib/models/settings/PieChartSettings';
|
|
12
|
-
export * from './lib/models/settings/Vertical2DChartSettings';
|
|
13
|
-
export * from './lib/models/settings/VerticalChartSettings';
|
|
14
|
-
export * from './lib/models/settings/VerticalStackedChartSettings';
|
|
15
|
-
export * from './lib/models/settings/base/BaseSettings';
|
|
16
|
-
export * from './lib/models/settings/base/BaseInterval';
|
|
17
|
-
export * from './lib/models/settings/base/LegendPad';
|
|
18
|
-
export * from './lib/models/data/base/Limit';
|
|
19
|
-
export * from './lib/models/data/base/DateValue';
|
|
20
|
-
export * from './lib/models/data/base/KeyValue';
|
|
21
|
-
export * from './lib/models/data/base/KeyValueColor';
|
|
22
|
-
export * from './lib/models/data/base/LineSerie';
|
|
23
|
-
export * from './lib/components/chart-pager/chart-pager.component';
|
|
24
|
-
export * from './lib/components/base/base-chart.component';
|
|
25
|
-
export * from './lib/components/specializations/es-chart.component';
|
|
26
|
-
export * from './lib/components/specializations/es-area-chart.component';
|
|
27
|
-
export * from './lib/components/specializations/es-line-chart.component';
|
|
28
|
-
export * from './lib/components/specializations/es-pie-chart.component';
|
|
29
|
-
export * from './lib/components/specializations/es-vertical-2d-chart.component';
|
|
30
|
-
export * from './lib/components/specializations/es-vertical-chart.component';
|
|
31
|
-
export * from './lib/components/specializations/es-vertical-stacked-chart.component';
|
|
32
|
-
export * from './lib/models/core/ChartThemes';
|
|
33
|
-
export * from './lib/models/data/PagedChartData';
|
|
34
|
-
export * from './lib/es-charts.module';
|
|
35
|
-
export * from './lib/tokens';
|
|
1
|
+
export * from './lib/adapters/BaseAdapter';
|
|
2
|
+
export * from './lib/adapters/IBaseAdapter';
|
|
3
|
+
export * from './lib/models/data/LineChartData';
|
|
4
|
+
export * from './lib/models/data/PieChartData';
|
|
5
|
+
export * from './lib/models/data/AreaChartData';
|
|
6
|
+
export * from './lib/models/data/Vertical2DChartData';
|
|
7
|
+
export * from './lib/models/data/VerticalChartData';
|
|
8
|
+
export * from './lib/models/data/VerticalStackedChartData';
|
|
9
|
+
export * from './lib/models/settings/AreaChartSettings';
|
|
10
|
+
export * from './lib/models/settings/LineChartSettings';
|
|
11
|
+
export * from './lib/models/settings/PieChartSettings';
|
|
12
|
+
export * from './lib/models/settings/Vertical2DChartSettings';
|
|
13
|
+
export * from './lib/models/settings/VerticalChartSettings';
|
|
14
|
+
export * from './lib/models/settings/VerticalStackedChartSettings';
|
|
15
|
+
export * from './lib/models/settings/base/BaseSettings';
|
|
16
|
+
export * from './lib/models/settings/base/BaseInterval';
|
|
17
|
+
export * from './lib/models/settings/base/LegendPad';
|
|
18
|
+
export * from './lib/models/data/base/Limit';
|
|
19
|
+
export * from './lib/models/data/base/DateValue';
|
|
20
|
+
export * from './lib/models/data/base/KeyValue';
|
|
21
|
+
export * from './lib/models/data/base/KeyValueColor';
|
|
22
|
+
export * from './lib/models/data/base/LineSerie';
|
|
23
|
+
export * from './lib/components/chart-pager/chart-pager.component';
|
|
24
|
+
export * from './lib/components/base/base-chart.component';
|
|
25
|
+
export * from './lib/components/specializations/es-chart.component';
|
|
26
|
+
export * from './lib/components/specializations/es-area-chart.component';
|
|
27
|
+
export * from './lib/components/specializations/es-line-chart.component';
|
|
28
|
+
export * from './lib/components/specializations/es-pie-chart.component';
|
|
29
|
+
export * from './lib/components/specializations/es-vertical-2d-chart.component';
|
|
30
|
+
export * from './lib/components/specializations/es-vertical-chart.component';
|
|
31
|
+
export * from './lib/components/specializations/es-vertical-stacked-chart.component';
|
|
32
|
+
export * from './lib/models/core/ChartThemes';
|
|
33
|
+
export * from './lib/models/data/PagedChartData';
|
|
34
|
+
export * from './lib/es-charts.module';
|
|
35
|
+
export * from './lib/tokens';
|
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
import * as am4core from "@amcharts/amcharts4/core";
|
|
2
|
-
import * as am4charts from "@amcharts/amcharts4/charts";
|
|
3
|
-
/**
|
|
4
|
-
* Classe il cui unico scopo è gestire il setup e rendering di un AreaChart
|
|
5
|
-
*/
|
|
6
|
-
export class AreaChartService {
|
|
7
|
-
/** @ignore */
|
|
8
|
-
constructor(Adapter) {
|
|
9
|
-
this.Adapter = Adapter;
|
|
10
|
-
//******************** Funzione di throttling per non spammare richieste in caso di animazioni attivate
|
|
11
|
-
//TODO: spostarla in un metodo di utilità (esfaenza/extensions)
|
|
12
|
-
/** @ignore */
|
|
13
|
-
this.executionTimers = {};
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Metodo che data una coppia Dati - Impostazioni li utilizza per creare e visualizzare un AreaChart
|
|
17
|
-
*/
|
|
18
|
-
graphicate(data, settings) {
|
|
19
|
-
if (settings.Timeline) {
|
|
20
|
-
console.error("Timeline not supported for area chart");
|
|
21
|
-
return null;
|
|
22
|
-
}
|
|
23
|
-
let dataConverted = this.Adapter ? this.Adapter.adaptDataForAreaChart(data) : data;
|
|
24
|
-
let showTicks = settings.ShowTicks == null ? true : settings?.ShowTicks;
|
|
25
|
-
let interval = dataConverted.interval;
|
|
26
|
-
//Per evitare di dimenticarmeli e gestire comunque bene gli ngif ecc...
|
|
27
|
-
am4core.options.autoDispose = true;
|
|
28
|
-
this.ChartInstance = am4core.create(settings.Name, am4charts.XYChart);
|
|
29
|
-
let ChartInstanceCasted = this.ChartInstance;
|
|
30
|
-
if (settings.Legend) {
|
|
31
|
-
ChartInstanceCasted.legend = new am4charts.Legend();
|
|
32
|
-
ChartInstanceCasted.legend.position = settings?.LegendPosition ?? 'right';
|
|
33
|
-
ChartInstanceCasted.legend.itemContainers.template.tooltipText = "{category}";
|
|
34
|
-
if (settings.LegendPadding) {
|
|
35
|
-
let template = this.ChartInstance.legend.itemContainers.template;
|
|
36
|
-
template.paddingTop = settings.LegendPadding.top ?? 0;
|
|
37
|
-
template.paddingBottom = settings.LegendPadding.bottom ?? 0;
|
|
38
|
-
template.paddingLeft = settings.LegendPadding.left ?? 0;
|
|
39
|
-
template.paddingRight = settings.LegendPadding.right ?? 0;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
let yAxis = ChartInstanceCasted.yAxes.push(new am4charts.ValueAxis());
|
|
43
|
-
yAxis.tooltip.disabled = true;
|
|
44
|
-
if (settings.YAxisTitle) {
|
|
45
|
-
yAxis.title.text = settings.YAxisTitle;
|
|
46
|
-
yAxis.title.fontWeight = "bold";
|
|
47
|
-
}
|
|
48
|
-
yAxis.min = 0;
|
|
49
|
-
let dateAxis = ChartInstanceCasted.xAxes.push(new am4charts.DateAxis());
|
|
50
|
-
dateAxis.renderer.minGridDistance = settings?.MinGridDistance ?? 50;
|
|
51
|
-
dateAxis.startLocation = 0.5;
|
|
52
|
-
dateAxis.endLocation = 0.5;
|
|
53
|
-
if (settings.XAxisTitle) {
|
|
54
|
-
dateAxis.title.text = settings.XAxisTitle;
|
|
55
|
-
dateAxis.title.fontWeight = "bold";
|
|
56
|
-
}
|
|
57
|
-
if (showTicks) {
|
|
58
|
-
dateAxis.renderer.ticks.template.disabled = false;
|
|
59
|
-
dateAxis.renderer.ticks.template.strokeOpacity = 1;
|
|
60
|
-
dateAxis.renderer.ticks.template.stroke = am4core.color("#495C43");
|
|
61
|
-
dateAxis.renderer.ticks.template.strokeWidth = 2;
|
|
62
|
-
dateAxis.renderer.ticks.template.length = 10;
|
|
63
|
-
dateAxis.renderer.ticks.template.location = 0;
|
|
64
|
-
}
|
|
65
|
-
if (!!interval)
|
|
66
|
-
dateAxis.baseInterval = { count: interval.count, timeUnit: interval.timeunit };
|
|
67
|
-
// Unisco il dataset e tiro fuori i dati
|
|
68
|
-
let chartData = [];
|
|
69
|
-
let seriesToMakeCache = {};
|
|
70
|
-
let seriesToMake = [];
|
|
71
|
-
for (let i = 0; i < dataConverted.groups.length; i++) {
|
|
72
|
-
let group = dataConverted.groups[i];
|
|
73
|
-
let dataItem = { date: group.name };
|
|
74
|
-
for (let ii = 0; ii < group.values.length; ii++) {
|
|
75
|
-
let val = group.values[ii];
|
|
76
|
-
dataItem[val.k] = val.v;
|
|
77
|
-
if (!seriesToMakeCache[val.k]) {
|
|
78
|
-
seriesToMakeCache[val.k] = true;
|
|
79
|
-
seriesToMake.push(val.k);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
chartData.push(dataItem);
|
|
83
|
-
}
|
|
84
|
-
ChartInstanceCasted.data = chartData;
|
|
85
|
-
//---------------------------------------------------------
|
|
86
|
-
seriesToMake.forEach(s => { this.createSeries(ChartInstanceCasted, s); });
|
|
87
|
-
ChartInstanceCasted.cursor = new am4charts.XYCursor();
|
|
88
|
-
ChartInstanceCasted.cursor.xAxis = dateAxis;
|
|
89
|
-
dateAxis.events.on("startchanged", t => this.emitSelectionChanged(t, settings));
|
|
90
|
-
dateAxis.events.on("endchanged", t => this.emitSelectionChanged(t, settings));
|
|
91
|
-
return this;
|
|
92
|
-
}
|
|
93
|
-
/** @ignore */
|
|
94
|
-
setSelection(from, to) {
|
|
95
|
-
}
|
|
96
|
-
/** @ignore */
|
|
97
|
-
refreshData(data) {
|
|
98
|
-
//TODO:IMPL
|
|
99
|
-
}
|
|
100
|
-
/** @ignore */
|
|
101
|
-
emitSelectionChanged(ev, settings) {
|
|
102
|
-
if (settings.OnSelectionChangedCallback) {
|
|
103
|
-
this.throttla("selchange", () => {
|
|
104
|
-
var axis = ev.target;
|
|
105
|
-
var start = new Date(axis.minZoomed);
|
|
106
|
-
var end = new Date(axis.maxZoomed);
|
|
107
|
-
var initial = axis.min == axis.minZoomed && axis.max == axis.maxZoomed;
|
|
108
|
-
settings.OnSelectionChangedCallback({ from: start, to: end, initial: initial });
|
|
109
|
-
}, 150);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
/** @ignore */
|
|
113
|
-
createSeries(chart, name) {
|
|
114
|
-
let series = chart.series.push(new am4charts.LineSeries());
|
|
115
|
-
series.dataFields.dateX = "date";
|
|
116
|
-
series.name = name[0].toUpperCase() + name.slice(1);
|
|
117
|
-
series.dataFields.valueY = name;
|
|
118
|
-
series.tooltipText = "[#000]{valueY.value}[/]";
|
|
119
|
-
//series.tooltip.background.fill = am4core.color("#FFF");
|
|
120
|
-
series.tooltip.getStrokeFromObject = true;
|
|
121
|
-
series.tooltip.background.strokeWidth = 3;
|
|
122
|
-
series.tooltip.getFillFromObject = false;
|
|
123
|
-
series.fillOpacity = 0.6;
|
|
124
|
-
series.strokeWidth = 2;
|
|
125
|
-
series.stacked = true;
|
|
126
|
-
return series;
|
|
127
|
-
}
|
|
128
|
-
/** @ignore */
|
|
129
|
-
throttla(id, func, throttleTime) {
|
|
130
|
-
//Se ho la funzione che vuole eseguire ripulisco quel timeout
|
|
131
|
-
if (this.executionTimers[id])
|
|
132
|
-
clearTimeout(this.executionTimers[id]);
|
|
133
|
-
//Ricreo il timeout per eseguire quella funzione dopo throttleTime millisecondi
|
|
134
|
-
this.executionTimers[id] = setTimeout(() => { func(); this.executionTimers[id] = null; }, throttleTime);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJlYUNoYXJ0U2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VzLWNoYXJ0cy9zcmMvbGliL3NlcnZpY2VzL0FyZWFDaGFydFNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxLQUFLLE9BQU8sTUFBTSwwQkFBMEIsQ0FBQztBQUNwRCxPQUFPLEtBQUssU0FBUyxNQUFNLDRCQUE0QixDQUFDO0FBRXhEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGdCQUFnQjtJQUszQixjQUFjO0lBQ2QsWUFBbUIsT0FBb0I7UUFBcEIsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQXNJdkMsdUdBQXVHO1FBQ3ZHLCtEQUErRDtRQUMvRCxjQUFjO1FBQ04sb0JBQWUsR0FBNkIsRUFBRSxDQUFDO0lBeklaLENBQUM7SUFFNUM7O09BRUc7SUFDSSxVQUFVLENBQUMsSUFBeUIsRUFBRSxRQUEyQjtRQUN0RSxJQUFJLFFBQVEsQ0FBQyxRQUFRLEVBQUU7WUFDckIsT0FBTyxDQUFDLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO1lBQ3ZELE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxJQUFJLGFBQWEsR0FBa0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ2xHLElBQUksU0FBUyxHQUFHLFFBQVEsQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUM7UUFDeEUsSUFBSSxRQUFRLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQztRQUV0Qyx1RUFBdUU7UUFDdkUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBRW5DLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxD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QztRQUN0QixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBTUQsY0FBYztJQUNOLFFBQVEsQ0FBQyxFQUFVLEVBQUUsSUFBYyxFQUFFLFlBQW9CO1FBQy9ELDZEQUE2RDtRQUM3RCxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1lBQzFCLFlBQVksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFekMsK0VBQStFO1FBQy9FLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDMUcsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUJhc2VTZXJ2aWNlIH0gZnJvbSAnLi9iYXNlL0lCYXNlU2VydmljZSc7XHJcbmltcG9ydCB7IEJhc2VBZGFwdGVyIH0gZnJvbSAnLi4vYWRhcHRlcnMvQmFzZUFkYXB0ZXInO1xyXG5pbXBvcnQgeyBBcmVhQ2hhcnREYXRhIH0gZnJvbSAnLi4vbW9kZWxzL2RhdGEvQXJlYUNoYXJ0RGF0YSc7XHJcbmltcG9ydCB7IEFyZWFDaGFydFNldHRpbmdzIH0gZnJvbSAnLi4vbW9kZWxzL3NldHRpbmdzL0FyZWFDaGFydFNldHRpbmdzJztcclxuXHJcbmltcG9ydCAqIGFzIGFtNGNvcmUgZnJvbSBcIkBhbWNoYXJ0cy9hbWNoYXJ0czQvY29yZVwiO1xyXG5pbXBvcnQgKiBhcyBhbTRjaGFydHMgZnJvbSBcIkBhbWNoYXJ0cy9hbWNoYXJ0czQvY2hhcnRzXCI7XHJcblxyXG4vKipcclxuICogQ2xhc3NlIGlsIGN1aSB1bmljbyBzY29wbyDDqCBnZXN0aXJlIGlsIHNldHVwIGUgcmVuZGVyaW5nIGRpIHVuIEFyZWFDaGFydFxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEFyZWFDaGFydFNlcnZpY2UgaW1wbGVtZW50cyBJQmFzZVNlcnZpY2U8YW00Y2hhcnRzLlhZQ2hhcnQ+IHtcclxuXHJcbiAgLyoqIEBpZ25vcmUgKi9cclxuICBwdWJsaWMgQ2hhcnRJbnN0YW5jZTogYW00Y2hhcnRzLlhZQ2hhcnQ7XHJcblxyXG4gIC8qKiBAaWdub3JlICovXHJcbiAgY29uc3RydWN0b3IocHVibGljIEFkYXB0ZXI6IEJhc2VBZGFwdGVyKSB7IH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0b2RvIGNoZSBkYXRhIHVuYSBjb3BwaWEgRGF0aSAtIEltcG9zdGF6aW9uaSBsaSB1dGlsaXp6YSBwZXIgY3JlYXJlIGUgdmlzdWFsaXp6YXJlIHVuIEFyZWFDaGFydFxyXG4gICAqL1xyXG4gIHB1YmxpYyBncmFwaGljYXRlKGRhdGE6IEFyZWFDaGFydERhdGEgfCBhbnksIHNldHRpbmdzOiBBcmVhQ2hhcnRTZXR0aW5ncyk6IElCYXNlU2VydmljZTxhbTRjaGFydHMuWFlDaGFydD4ge1xyXG4gICAgaWYgKHNldHRpbmdzLlRpbWVsaW5lKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJUaW1lbGluZSBub3Qgc3VwcG9ydGVkIGZvciBhcmVhIGNoYXJ0XCIpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIGxldCBkYXRhQ29udmVydGVkOiBBcmVhQ2hhcnREYXRhID0gdGhpcy5BZGFwdGVyID8gdGhpcy5BZGFwdGVyLmFkYXB0RGF0YUZvckFyZWFDaGFydChkYXRhKSA6IGRhdGE7XHJcbiAgICBsZXQgc2hvd1RpY2tzID0gc2V0dGluZ3MuU2hvd1RpY2tzID09IG51bGwgPyB0cnVlIDogc2V0dGluZ3M/LlNob3dUaWNrcztcclxuICAgIGxldCBpbnRlcnZhbCA9IGRhdGFDb252ZXJ0ZWQuaW50ZXJ2YWw7XHJcblxyXG4gICAgLy9QZXIgZXZpdGFyZSBkaSBkaW1lbnRpY2FybWVsaSBlIGdlc3RpcmUgY29tdW5xdWUgYmVuZSBnbGkgbmdpZiBlY2MuLi5cclxuICAgIGFtNGNvcmUub3B0aW9ucy5hdXRvRGlzcG9zZSA9IHRydWU7XHJcblxyXG4gICAgdGhpcy5DaGFydEluc3RhbmNlID0gYW00Y29yZS5jcmVhdGUoc2V0dGluZ3MuTmFtZSwgYW00Y2hhcnRzLlhZQ2hhcnQpO1xyXG4gICAgbGV0IENoYXJ0SW5zdGFuY2VDYXN0ZWQgPSA8YW00Y2hhcnRzLlhZQ2hhcnQ+dGhpcy5DaGFydEluc3RhbmNlO1xyXG5cclxuICAgIGlmIChzZXR0aW5ncy5MZWdlbmQpIHtcclxuICAgICAgQ2hhcnRJbnN0YW5jZUNhc3RlZC5sZWdlbmQgPSBuZXcgYW00Y2hhcnRzLkxlZ2VuZCgpO1xyXG4gICAgICBDaGFydEluc3RhbmNlQ2FzdGVkLmxlZ2VuZC5wb3NpdGlvbiA9IHNldHRpbmdzPy5MZWdlbmRQb3NpdGlvbiA/PyAncmlnaHQnO1xyXG4gICAgICBDaGFydEluc3RhbmNlQ2FzdGVkLmxlZ2VuZC5pdGVtQ29udGFpbmVycy50ZW1wbGF0ZS50b29sdGlwVGV4dCA9IFwie2NhdGVnb3J5fVwiO1xyXG5cclxuICAgICAgaWYgKHNldHRpbmdzLkxlZ2VuZFBhZGRpbmcpIHtcclxuICAgICAgICBsZXQgdGVtcGxhdGUgPSB0aGlzLkNoYXJ0SW5zdGFuY2UubGVnZW5kLml0ZW1Db250YWluZXJzLnRlbXBsYXRlO1xyXG4gICAgICAgIHRlbXBsYXRlLnBhZGRpbmdUb3AgPSBzZXR0aW5ncy5MZWdlbmRQYWRkaW5nLnRvcCA/PyAwO1xyXG4gICAgICAgIHRlbXBsYXRlLnBhZGRpbmdCb3R0b20gPSBzZXR0aW5ncy5MZWdlbmRQYWRkaW5nLmJvdHRvbSA/PyAwO1xyXG4gICAgICAgIHRlbXBsYXRlLnBhZGRpbmdMZWZ0ID0gc2V0dGluZ3MuTGVnZW5kUGFkZGluZy5sZWZ0ID8/IDA7XHJcbiAgICAgICAgdGVtcGxhdGUucGFkZGluZ1JpZ2h0ID0gc2V0dGluZ3MuTGVnZW5kUGFkZGluZy5yaWdodCA/PyAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHlBeGlzID0gQ2hhcnRJbnN0YW5jZUNhc3RlZC55QXhlcy5wdXNoKG5ldyBhbTRjaGFydHMuVmFsdWVBeGlzKCkpO1xyXG4gICAgeUF4aXMudG9vbHRpcC5kaXNhYmxlZCA9IHRydWU7XHJcbiAgICBpZiAoc2V0dGluZ3MuWUF4aXNUaXRsZSkge1xyXG4gICAgICB5QXhpcy50aXRsZS50ZXh0ID0gc2V0dGluZ3MuWUF4aXNUaXRsZVxyXG4gICAgICB5QXhpcy50aXRsZS5mb250V2VpZ2h0ID0gXCJib2xkXCI7XHJcbiAgICB9XHJcbiAgICB5QXhpcy5taW4gPSAwO1xyXG5cclxuICAgIGxldCBkYXRlQXhpcyA9IENoYXJ0SW5zdGFuY2VDYXN0ZWQueEF4ZXMucHVzaChuZXcgYW00Y2hhcnRzLkRhdGVBeGlzKCkpO1xyXG4gICAgZGF0ZUF4aXMucmVuZGVyZXIubWluR3JpZERpc3RhbmNlID0gc2V0dGluZ3M/Lk1pbkdyaWREaXN0YW5jZSA/PyA1MDtcclxuICAgIGRhdGVBeGlzLnN0YXJ0TG9jYXRpb24gPSAwLjU7XHJcbiAgICBkYXRlQXhpcy5lbmRMb2NhdGlvbiA9IDAuNTtcclxuXHJcbiAgICBpZiAoc2V0dGluZ3MuWEF4aXNUaXRsZSkge1xyXG4gICAgICBkYXRlQXhpcy50aXRsZS50ZXh0ID0gc2V0dGluZ3MuWEF4aXNUaXRsZVxyXG4gICAgICBkYXRlQXhpcy50aXRsZS5mb250V2VpZ2h0ID0gXCJib2xkXCI7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHNob3dUaWNrcykge1xyXG4gICAgICBkYXRlQXhpcy5yZW5kZXJlci50aWNrcy50ZW1wbGF0ZS5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICBkYXRlQXhpcy5yZW5kZXJlci50aWNrcy50ZW1wbGF0ZS5zdHJva2VPcGFjaXR5ID0gMTtcclxuICAgICAgZGF0ZUF4aXMucmVuZGVyZXIudGlja3MudGVtcGxhdGUuc3Ryb2tlID0gYW00Y29yZS5jb2xvcihcIiM0OTVDNDNcIik7XHJcbiAgICAgIGRhdGVBeGlzLnJlbmRlcmVyLnRpY2tzLnRlbXBsYXRlLnN0cm9rZVdpZHRoID0gMjtcclxuICAgICAgZGF0ZUF4aXMucmVuZGVyZXIudGlja3MudGVtcGxhdGUubGVuZ3RoID0gMTA7XHJcbiAgICAgIGRhdGVBeGlzLnJlbmRlcmVyLnRpY2tzLnRlbXBsYXRlLmxvY2F0aW9uID0gMDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoISFpbnRlcnZhbClcclxuICAgICAgZGF0ZUF4aXMuYmFzZUludGVydmFsID0geyBjb3VudDogaW50ZXJ2YWwuY291bnQsIHRpbWVVbml0OiBpbnRlcnZhbC50aW1ldW5pdCB9O1xyXG5cclxuICAgIC8vIFVuaXNjbyBpbCBkYXRhc2V0IGUgdGlybyBmdW9yaSBpIGRhdGlcclxuICAgIGxldCBjaGFydERhdGEgPSBbXTtcclxuICAgIGxldCBzZXJpZXNUb01ha2VDYWNoZTogeyBbaW5kZXg6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xyXG4gICAgbGV0IHNlcmllc1RvTWFrZTogc3RyaW5nW10gPSBbXTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YUNvbnZlcnRlZC5ncm91cHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IGdyb3VwID0gZGF0YUNvbnZlcnRlZC5ncm91cHNbaV07XHJcbiAgICAgIGxldCBkYXRhSXRlbSA9IHsgZGF0ZTogZ3JvdXAubmFtZSB9O1xyXG4gICAgICBmb3IgKGxldCBpaSA9IDA7IGlpIDwgZ3JvdXAudmFsdWVzLmxlbmd0aDsgaWkrKykge1xyXG4gICAgICAgIGxldCB2YWwgPSBncm91cC52YWx1ZXNbaWldO1xyXG4gICAgICAgIGRhdGFJdGVtW3ZhbC5rXSA9IHZhbC52O1xyXG4gICAgICAgIGlmICghc2VyaWVzVG9NYWtlQ2FjaGVbdmFsLmtdKSB7XHJcbiAgICAgICAgICBzZXJpZXNUb01ha2VDYWNoZVt2YWwua10gPSB0cnVlO1xyXG4gICAgICAgICAgc2VyaWVzVG9NYWtlLnB1c2godmFsLmspO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBjaGFydERhdGEucHVzaChkYXRhSXRlbSk7XHJcbiAgICB9XHJcbiAgICBDaGFydEluc3RhbmNlQ2FzdGVkLmRhdGEgPSBjaGFydERhdGE7XHJcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuICAgIHNlcmllc1RvTWFrZS5mb3JFYWNoKHMgPT4geyB0aGlzLmNyZWF0ZVNlcmllcyhDaGFydEluc3RhbmNlQ2FzdGVkLCBzKTsgfSk7XHJcblxyXG4gICAgQ2hhcnRJbnN0YW5jZUNhc3RlZC5jdXJzb3IgPSBuZXcgYW00Y2hhcnRzLlhZQ3Vyc29yKCk7XHJcbiAgICBDaGFydEluc3RhbmNlQ2FzdGVkLmN1cnNvci54QXhpcyA9IGRhdGVBeGlzO1xyXG5cclxuICAgIGRhdGVBeGlzLmV2ZW50cy5vbihcInN0YXJ0Y2hhbmdlZFwiLCB0ID0+IHRoaXMuZW1pdFNlbGVjdGlvbkNoYW5nZWQodCwgc2V0dGluZ3MpKTtcclxuICAgIGRhdGVBeGlzLmV2ZW50cy5vbihcImVuZGNoYW5nZWRcIiwgdCA9PiB0aGlzLmVtaXRTZWxlY3Rpb25DaGFuZ2VkKHQsIHNldHRpbmdzKSk7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKiBAaWdub3JlICovXHJcbiAgc2V0U2VsZWN0aW9uKGZyb206IERhdGUsIHRvOiBEYXRlKTogdm9pZCB7XHJcblxyXG4gIH1cclxuXHJcbiAgLyoqIEBpZ25vcmUgKi9cclxuICBwdWJsaWMgcmVmcmVzaERhdGEoZGF0YTogQXJlYUNoYXJ0RGF0YSB8IGFueSkge1xyXG4gICAgLy9UT0RPOklNUExcclxuICB9XHJcblxyXG4gIC8qKiBAaWdub3JlICovXHJcbiAgcHJpdmF0ZSBlbWl0U2VsZWN0aW9uQ2hhbmdlZChldiwgc2V0dGluZ3MpIHtcclxuICAgIGlmICgoPGFueT5zZXR0aW5ncykuT25TZWxlY3Rpb25DaGFuZ2VkQ2FsbGJhY2spIHtcclxuICAgICAgdGhpcy50aHJvdHRsYShcInNlbGNoYW5nZVwiLCAoKSA9PiB7XHJcbiAgICAgICAgdmFyIGF4aXMgPSA8YW00Y2hhcnRzLkRhdGVBeGlzPmV2LnRhcmdldFxyXG4gICAgICAgIHZhciBzdGFydCA9IG5ldyBEYXRlKGF4aXMubWluWm9vbWVkKTtcclxuICAgICAgICB2YXIgZW5kID0gbmV3IERhdGUoYXhpcy5tYXhab29tZWQpO1xyXG4gICAgICAgIHZhciBpbml0aWFsID0gYXhpcy5taW4gPT0gYXhpcy5taW5ab29tZWQgJiYgYXhpcy5tYXggPT0gYXhpcy5tYXhab29tZWQ7XHJcbiAgICAgICAgKDxhbnk+c2V0dGluZ3MpLk9uU2VsZWN0aW9uQ2hhbmdlZENhbGxiYWNrKHsgZnJvbTogc3RhcnQsIHRvOiBlbmQsIGluaXRpYWw6IGluaXRpYWwgfSk7XHJcbiAgICAgIH0sIDE1MClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBAaWdub3JlICovXHJcbiAgcHJpdmF0ZSBjcmVhdGVTZXJpZXMoY2hhcnQ6IGFueSwgbmFtZTogc3RyaW5nKSB7XHJcbiAgICBsZXQgc2VyaWVzOiBhbTRjaGFydHMuTGluZVNlcmllcyA9IGNoYXJ0LnNlcmllcy5wdXNoKG5ldyBhbTRjaGFydHMuTGluZVNlcmllcygpKVxyXG4gICAgc2VyaWVzLmRhdGFGaWVsZHMuZGF0ZVggPSBcImRhdGVcIjtcclxuICAgIHNlcmllcy5uYW1lID0gbmFtZVswXS50b1VwcGVyQ2FzZSgpICsgbmFtZS5zbGljZSgxKTtcclxuICAgIHNlcmllcy5kYXRhRmllbGRzLnZhbHVlWSA9IG5hbWU7XHJcbiAgICBzZXJpZXMudG9vbHRpcFRleHQgPSBcIlsjMDAwXXt2YWx1ZVkudmFsdWV9Wy9dXCI7XHJcbiAgICAvL3Nlcmllcy50b29sdGlwLmJhY2tncm91bmQuZmlsbCA9IGFtNGNvcmUuY29sb3IoXCIjRkZGXCIpO1xyXG4gICAgc2VyaWVzLnRvb2x0aXAuZ2V0U3Ryb2tlRnJvbU9iamVjdCA9IHRydWU7XHJcbiAgICBzZXJpZXMudG9vbHRpcC5iYWNrZ3JvdW5kLnN0cm9rZVdpZHRoID0gMztcclxuICAgIHNlcmllcy50b29sdGlwLmdldEZpbGxGcm9tT2JqZWN0ID0gZmFsc2U7XHJcbiAgICBzZXJpZXMuZmlsbE9wYWNpdHkgPSAwLjY7XHJcbiAgICBzZXJpZXMuc3Ryb2tlV2lkdGggPSAyO1xyXG4gICAgc2VyaWVzLnN0YWNrZWQgPSB0cnVlO1xyXG4gICAgcmV0dXJuIHNlcmllcztcclxuICB9XHJcblxyXG4gIC8vKioqKioqKioqKioqKioqKioqKiogRnVuemlvbmUgZGkgdGhyb3R0bGluZyBwZXIgbm9uIHNwYW1tYXJlIHJpY2hpZXN0ZSBpbiBjYXNvIGRpIGFuaW1hemlvbmkgYXR0aXZhdGVcclxuICAvL1RPRE86IHNwb3N0YXJsYSBpbiB1biBtZXRvZG8gZGkgdXRpbGl0w6AgKGVzZmFlbnphL2V4dGVuc2lvbnMpXHJcbiAgLyoqIEBpZ25vcmUgKi9cclxuICBwcml2YXRlIGV4ZWN1dGlvblRpbWVyczogeyBbaW5kZXg6IHN0cmluZ106IGFueSB9ID0ge307XHJcbiAgLyoqIEBpZ25vcmUgKi9cclxuICBwcml2YXRlIHRocm90dGxhKGlkOiBzdHJpbmcsIGZ1bmM6IEZ1bmN0aW9uLCB0aHJvdHRsZVRpbWU6IG51bWJlcik6IHZvaWQge1xyXG4gICAgLy9TZSBobyBsYSBmdW56aW9uZSBjaGUgdnVvbGUgZXNlZ3VpcmUgcmlwdWxpc2NvIHF1ZWwgdGltZW91dFxyXG4gICAgaWYgKHRoaXMuZXhlY3V0aW9uVGltZXJzW2lkXSlcclxuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuZXhlY3V0aW9uVGltZXJzW2lkXSk7XHJcblxyXG4gICAgLy9SaWNyZW8gaWwgdGltZW91dCBwZXIgZXNlZ3VpcmUgcXVlbGxhIGZ1bnppb25lIGRvcG8gdGhyb3R0bGVUaW1lIG1pbGxpc2Vjb25kaVxyXG4gICAgdGhpcy5leGVjdXRpb25UaW1lcnNbaWRdID0gc2V0VGltZW91dCgoKSA9PiB7IGZ1bmMoKTsgdGhpcy5leGVjdXRpb25UaW1lcnNbaWRdID0gbnVsbDsgfSwgdGhyb3R0bGVUaW1lKTtcclxuICB9XHJcbiAgLy8qKioqKioqKioqKioqKioqKioqKioqKioqXHJcbn0iXX0=
|