@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,112 +1,112 @@
|
|
|
1
|
-
import { Component, Input, Inject, PLATFORM_ID, ChangeDetectionStrategy } from '@angular/core';
|
|
2
|
-
import { ESC_ANIMATIONS, ESC_THEME, ESC_DEBUG_MODE } from '../../tokens';
|
|
3
|
-
import { BaseChartComponent } from '../base/base-chart.component';
|
|
4
|
-
import { LineChartSettings } from '../../models/settings/LineChartSettings';
|
|
5
|
-
import { LineChartService } from '../../services/LineChartService';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "../../models/core/ChartLoader";
|
|
8
|
-
import * as i2 from "../../models/core/ChartDispatcher";
|
|
9
|
-
import * as i3 from "../../adapters/BaseAdapter";
|
|
10
|
-
import * as i4 from "@esfaenza/extensions";
|
|
11
|
-
import * as i5 from "@esfaenza/localizations";
|
|
12
|
-
import * as i6 from "@angular/common";
|
|
13
|
-
import * as i7 from "../chart-pager/chart-pager.component";
|
|
14
|
-
/**
|
|
15
|
-
* Componente specifico per la graficazione di un grafico a Linea su un asse temporale
|
|
16
|
-
*/
|
|
17
|
-
export class EsLineChartComponent extends BaseChartComponent {
|
|
18
|
-
/**
|
|
19
|
-
* @ignore
|
|
20
|
-
*/
|
|
21
|
-
constructor(el, ChartLoader, ChartDispatcher, adapter, dateService, zone, platformId, ESC_DEBUG_MODE, ESC_ANIMATIONS, ESC_THEME, lc) {
|
|
22
|
-
super(el, platformId, zone, ChartLoader, ChartDispatcher, ESC_DEBUG_MODE, ESC_ANIMATIONS, lc.Locale, ESC_THEME);
|
|
23
|
-
this.adapter = adapter;
|
|
24
|
-
this.dateService = dateService;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Ottiene le proprietà specifiche per questa tipologia di grafico per cui serve rigraficare
|
|
28
|
-
*/
|
|
29
|
-
getSpecificPropertiesToCheck() {
|
|
30
|
-
return ["Data", "DataArray", "Step", "DataGroupBucketSize", "DataGroupingThreshold", "StrokeSize", "Stacked", "AllowGaps", "MergeDatasets", "FinalInstants", "Fill", "Min", "Max"];
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Ottiene i Settings (Ereditati dalla classe base, quindi del tipo generico **BaseSettings**) castati al tipo specifico per questo grafico
|
|
34
|
-
*
|
|
35
|
-
* @returns {LineChartSettings} Settings castati al tipo giusto
|
|
36
|
-
*/
|
|
37
|
-
getCastedSettings() {
|
|
38
|
-
return (this.Settings ?? new LineChartSettings());
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Integra i Settings base con tutti gli Input specifici di questo grafico, dando priorità ai Settings se definiti
|
|
42
|
-
*
|
|
43
|
-
* @param {LineChartSettings} settingsCasted Settings castati al tipo giusto
|
|
44
|
-
*/
|
|
45
|
-
fillSpecificSettings(settingsCasted) {
|
|
46
|
-
settingsCasted.Step = settingsCasted.Step != null ? settingsCasted.Step : this.Step;
|
|
47
|
-
settingsCasted.DataGroupBucketSize = settingsCasted.DataGroupBucketSize != null ? settingsCasted.DataGroupBucketSize : this.DataGroupBucketSize;
|
|
48
|
-
settingsCasted.StrokeSize = settingsCasted.StrokeSize != null ? settingsCasted.StrokeSize : this.StrokeSize;
|
|
49
|
-
settingsCasted.DataGroupingThreshold = settingsCasted.DataGroupingThreshold != null ? settingsCasted.DataGroupingThreshold : this.DataGroupingThreshold;
|
|
50
|
-
settingsCasted.AllowGaps = settingsCasted.AllowGaps != null ? settingsCasted.AllowGaps : this.AllowGaps;
|
|
51
|
-
settingsCasted.MergeDatasets = settingsCasted.MergeDatasets != null ? settingsCasted.MergeDatasets : this.MergeDatasets;
|
|
52
|
-
settingsCasted.FinalInstants = settingsCasted.FinalInstants != null ? settingsCasted.FinalInstants : this.FinalInstants;
|
|
53
|
-
settingsCasted.Min = settingsCasted.Min != null ? settingsCasted.Min : this.Min;
|
|
54
|
-
settingsCasted.Max = settingsCasted.Max != null ? settingsCasted.Max : this.Max;
|
|
55
|
-
settingsCasted.Fill = settingsCasted.Fill != null ? settingsCasted.Fill : this.Fill;
|
|
56
|
-
settingsCasted.Stacked = settingsCasted.Stacked != null ? settingsCasted.Stacked : this.Stacked;
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Effettua il rendering di questo grafico in base ai Settings
|
|
60
|
-
*
|
|
61
|
-
* @param {LineChartSettings} settingsCasted Impostazioni di graficazione
|
|
62
|
-
* @returns {LineChartService} La service utilizzata per il rendering nello stato subito successivo al rendering effettuato
|
|
63
|
-
*/
|
|
64
|
-
graphicate(settingsCasted) {
|
|
65
|
-
return new LineChartService(this.adapter, this.dateService).graphicate(this.Data, settingsCasted);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
71
|
-
type: Component,
|
|
72
|
-
args: [{ selector: 'es-line-chart', changeDetection: ChangeDetectionStrategy.OnPush, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background
|
|
73
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.ChartLoader }, { type: i2.ChartDispatcher }, { type: i3.BaseAdapter }, { type: i4.DateService }, { type: i0.NgZone }, { type: Object, decorators: [{
|
|
74
|
-
type: Inject,
|
|
75
|
-
args: [PLATFORM_ID]
|
|
76
|
-
}] }, { type: undefined, decorators: [{
|
|
77
|
-
type: Inject,
|
|
78
|
-
args: [ESC_DEBUG_MODE]
|
|
79
|
-
}] }, { type: undefined, decorators: [{
|
|
80
|
-
type: Inject,
|
|
81
|
-
args: [ESC_ANIMATIONS]
|
|
82
|
-
}] }, { type: undefined, decorators: [{
|
|
83
|
-
type: Inject,
|
|
84
|
-
args: [ESC_THEME]
|
|
85
|
-
}] }, { type: i5.LocalizationService }]; }, propDecorators: { Data: [{
|
|
86
|
-
type: Input
|
|
87
|
-
}], DataArray: [{
|
|
88
|
-
type: Input
|
|
89
|
-
}], Step: [{
|
|
90
|
-
type: Input
|
|
91
|
-
}], DataGroupBucketSize: [{
|
|
92
|
-
type: Input
|
|
93
|
-
}], DataGroupingThreshold: [{
|
|
94
|
-
type: Input
|
|
95
|
-
}], StrokeSize: [{
|
|
96
|
-
type: Input
|
|
97
|
-
}], AllowGaps: [{
|
|
98
|
-
type: Input
|
|
99
|
-
}], MergeDatasets: [{
|
|
100
|
-
type: Input
|
|
101
|
-
}], FinalInstants: [{
|
|
102
|
-
type: Input
|
|
103
|
-
}], Min: [{
|
|
104
|
-
type: Input
|
|
105
|
-
}], Max: [{
|
|
106
|
-
type: Input
|
|
107
|
-
}], Fill: [{
|
|
108
|
-
type: Input
|
|
109
|
-
}], Stacked: [{
|
|
110
|
-
type: Input
|
|
111
|
-
}] } });
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXMtbGluZS1jaGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcy1jaGFydHMvc3JjL2xpYi9jb21wb25lbnRzL3NwZWNpYWxpemF0aW9ucy9lcy1saW5lLWNoYXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VzLWNoYXJ0cy9zcmMvbGliL2NvbXBvbmVudHMvYmFzZS9iYXNlLWNoYXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQVUsdUJBQXVCLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFLbkgsT0FBTyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXpFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBSWxFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7Ozs7QUFJbkU7O0dBRUc7QUFPSCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsa0JBQWtCO0lBZ0YxRDs7T0FFRztJQUNILFlBQVksRUFBYyxFQUFFLFdBQXdCLEVBQUUsZUFBZ0MsRUFBVSxPQUFvQixFQUFVLFdBQXdCLEVBQUUsSUFBWSxFQUM3SSxVQUFrQixFQUNmLGNBQXVCLEVBQ3ZCLGNBQXVCLEVBQzVCLFNBQWlCLEVBQ3BDLEVBQXVCO1FBQ3ZCLEtBQUssQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztRQU5sQixZQUFPLEdBQVAs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QUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ25ILENBQUM7O2lIQXZJVSxvQkFBb0Isa0xBb0ZyQixXQUFXLGFBQ1gsY0FBYyxhQUNkLGNBQWMsYUFDZCxTQUFTO3FHQXZGUixvQkFBb0Isb1pDekJqQyx3akNBbUJ3STsyRkRNM0gsb0JBQW9CO2tCQU5oQyxTQUFTOytCQUNFLGVBQWUsbUJBR1IsdUJBQXVCLENBQUMsTUFBTTs7MEJBc0Y1QyxNQUFNOzJCQUFDLFdBQVc7OzBCQUNsQixNQUFNOzJCQUFDLGNBQWM7OzBCQUNyQixNQUFNOzJCQUFDLGNBQWM7OzBCQUNyQixNQUFNOzJCQUFDLFNBQVM7OEVBbEZWLElBQUk7c0JBQVosS0FBSztnQkFLRyxTQUFTO3NCQUFqQixLQUFLO2dCQUtHLElBQUk7c0JBQVosS0FBSztnQkFRRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBS0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUtHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBVUcsU0FBUztzQkFBakIsS0FBSztnQkFPRyxhQUFhO3NCQUFyQixLQUFLO2dCQVFHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBS0csR0FBRztzQkFBWCxLQUFLO2dCQUtHLEdBQUc7c0JBQVgsS0FBSztnQkFLRyxJQUFJO3NCQUFaLEtBQUs7Z0JBS0csT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgSW5qZWN0LCBQTEFURk9STV9JRCwgTmdab25lLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEYXRlU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvZXh0ZW5zaW9uc1wiO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnQGVzZmFlbnphL2xvY2FsaXphdGlvbnMnO1xyXG5cclxuaW1wb3J0IHsgQmFzZUFkYXB0ZXIgfSBmcm9tICcuLi8uLi9hZGFwdGVycy9CYXNlQWRhcHRlcic7XHJcbmltcG9ydCB7IEVTQ19BTklNQVRJT05TLCBFU0NfVEhFTUUsIEVTQ19ERUJVR19NT0RFIH0gZnJvbSAnLi4vLi4vdG9rZW5zJztcclxuXHJcbmltcG9ydCB7IEJhc2VDaGFydENvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UvYmFzZS1jaGFydC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDaGFydExvYWRlciB9IGZyb20gXCIuLi8uLi9tb2RlbHMvY29yZS9DaGFydExvYWRlclwiO1xyXG5pbXBvcnQgeyBDaGFydERpc3BhdGNoZXIgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2NvcmUvQ2hhcnREaXNwYXRjaGVyXCI7XHJcblxyXG5pbXBvcnQgeyBMaW5lQ2hhcnRTZXR0aW5ncyB9IGZyb20gJy4uLy4uL21vZGVscy9zZXR0aW5ncy9MaW5lQ2hhcnRTZXR0aW5ncyc7XHJcbmltcG9ydCB7IExpbmVDaGFydFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9MaW5lQ2hhcnRTZXJ2aWNlJztcclxuaW1wb3J0IHsgTGluZUNoYXJ0RGF0YSB9IGZyb20gJy4uLy4uL21vZGVscy9kYXRhL0xpbmVDaGFydERhdGEnO1xyXG5pbXBvcnQgeyBQYWdlZENoYXJ0RGF0YSB9IGZyb20gJy4uLy4uL21vZGVscy9kYXRhL1BhZ2VkQ2hhcnREYXRhJztcclxuXHJcbi8qKlxyXG4gKiBDb21wb25lbnRlIHNwZWNpZmljbyBwZXIgbGEgZ3JhZmljYXppb25lIGRpIHVuIGdyYWZpY28gYSBMaW5lYSBzdSB1biBhc3NlIHRlbXBvcmFsZVxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlcy1saW5lLWNoYXJ0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4uL2Jhc2UvYmFzZS1jaGFydC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4uL2Jhc2UvYmFzZS1jaGFydC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFc0xpbmVDaGFydENvbXBvbmVudCBleHRlbmRzIEJhc2VDaGFydENvbXBvbmVudCB7XHJcblxyXG4gIC8qKlxyXG4gICAqIERhdGkgc3BlY2lmaWNpIHBlciBpbCBncmFmaWNvIG8gZGkgdW4gdGlwbyB0cmFtdXRhYmlsZSBhbCB0aXBvICoqTGluZUNoYXJ0RGF0YSoqIGNvbCBzdXBwb3J0byBkZWwgKipCYXNlQWRhcHRlcioqXHJcbiAgICovXHJcbiAgQElucHV0KCkgRGF0YTogTGluZUNoYXJ0RGF0YSB8IGFueTtcclxuXHJcbiAgLyoqXHJcbiAgICogTGlzdGEgZGkgRGF0aSBzcGVjaWZpY2kgcGVyIHVuIGdyYWZpY28gcGFnaW5hdG8gbyBkaSBjdWkgb2duaSBibG9jY28gZGF0aSDDqCB0cmFtdXRhYmlsZSBhbCB0aXBvICoqTGluZUNoYXJ0RGF0YSoqIGNvbCBzdXBwb3J0byBkZWwgKipCYXNlQWRhcHRlcioqXHJcbiAgICovXHJcbiAgQElucHV0KCkgRGF0YUFycmF5OiBQYWdlZENoYXJ0RGF0YTxMaW5lQ2hhcnREYXRhPltdIHwgUGFnZWRDaGFydERhdGE8YW55PltdO1xyXG5cclxuICAvKipcclxuICAgKiBJbmRpY2Egc2UgbGEgY3VydmEgZGV2ZSBjb2xsZWdhcmUgZGlyZXR0YW1lbnRlIHVuIGRhdGFwb2ludCBhbGwnYWx0cm8gbyBzZSBkZXZlIGZhcmUgZGVnbGkgc3RlcFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIFN0ZXA6IGJvb2xlYW47XHJcblxyXG4gIC8qKlxyXG4gICAqIEluZGljYSBpbCBudW1lcm8gbWFzc2ltbyBkaSBkYXRhcG9pbnQgdmlzdWFsaXp6YWJpbGUgaW4gdW5hIHNpbmdvbGEgdmlzdGEgZGVsIGdyYWZpY28uIEwnZWNjZWRlbnphIHZpZW5lIHJhZ2dydXBwYXRhIGUgdmVycsOgIG1vc3RyYXRhIHN1bGxvIHpvb20uXHJcbiAgICogXHJcbiAgICogQVRURU5aSU9ORTogVXRpbGl6emFuZG8gaWwgc2lzdGVtYSBkaSBkZWZhdWx0IGRpIHJhZ2dydXBwYW1lbnRvIGRpIGFtLWNoYXJ0cyBzaSByaXNjaGlhIGRpIHRhZ2xpYXJlIHZpYSBwZXp6aSBkYSBzZXJpZSBtb2x0byBvbmR1bGF0ZVxyXG4gICAqIGluIHF1YW50byBpbCBjb21wb3J0YW1lbnRvIGRpIGRlZmF1bHQgw6ggcXVlbGxvIGRpIGVsaW1pbmFyZSBpIGRhdGFwb2ludCBjaGUgbm9uIGNpIHN0YW5ubywgbm9uIGRpIGludGVycG9sYXJsaVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIERhdGFHcm91cEJ1Y2tldFNpemU6IG51bWJlcjtcclxuXHJcbiAgLyoqXHJcbiAgICogU29nbGlhIHBlciBjb250cm9sbGFyZSBvbHRyZSBjaGUgbnVtZXJvIGRpIGRhdGFwb2ludCBpbCBncmFmaWNvIGRldmUgaW5pemlhcmUgYWQgZWZmZXR0dWFyZSByYWdncnVwcGFtZW50aSBjb25zaWRlcmFuZG8gbCdJbnB1dCAqKkRhdGFHcm91cEJ1Y2tldFNpemUqKlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIERhdGFHcm91cGluZ1RocmVzaG9sZDogbnVtYmVyO1xyXG5cclxuICAvKipcclxuICAgKiBJbmRpY2EgbGUgZGltbnNpb25pLCBpbiBwaXhlbCBkZWxsYSBsaW5lYSBkZWwgZ3JhZmljb1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIFN0cm9rZVNpemU6IG51bWJlcjtcclxuXHJcbiAgLyoqXHJcbiAgICogSW5kaWNhIHNlIHNvbm8gcGVybWVzc2kgZGVpIEdhcCBmcmEgdW4gdmFsb3JlIGUgbCdhbHRyby5cclxuICAgKiBcclxuICAgKiBOb3JtYWxtZW50ZSBxdWFuZG8gY2kgc29ubyBkZWkgYnVjaGkgbCd1bHRpbW8gZGF0YXBvaW50IGRlbCBidWNvIHZpZW5lIGNvbGxlZ2F0byBkaXJldHRhbWVudGUgYWwgcHJpbW8gZGF0YXBvaW50IGRpc3BvbmliaWxlLiBcclxuICAgKiBcclxuICAgKiBJbXBvc3RhbmRvIHF1ZXN0byBJbnB1dCBhIHRydWUgaW52ZWNlLCBwb3N0byBkaSBhdmVyIGFzc2VnbmF0byBsYSB2YXJpYWJpbGUgKippbnRlcnZhbCoqIGRlbGxhIGNsYXNzZSAqKkxpbmVDaGFydERhdGEqKiwgw6ggcG9zc2liaWxlIFxyXG4gICAqIGZhciBhcHBhcmlyZSBpbCBibG9jY28gZGkgZGF0aSBtYW5jYW50aSBjb21lIHVuIGJ1Y28gdmVybyBlIHByb3ByaW8sIHNlbnphIGFsY3VuIGNvbGxlZ2FtZW50byBmcmEgaSBkdWUgZGF0YXBvaW50IGVzdHJlbWlcclxuICAgKi9cclxuICBASW5wdXQoKSBBbGxvd0dhcHM6IGJvb2xlYW47XHJcblxyXG4gIC8qKlxyXG4gICAqIElucHV0IGNoZSBwZXJtZXR0ZSBkaSByaWVsYWJvcmFyZSBpIGRhdGkgZGVsIGdyYWZpY28gcGVyIGdlbmVyYXJlIHVuIHNvbG8gRGF0YXNldFxyXG4gICAqIFxyXG4gICAqIFZpZW5lIHV0aWxpenphdG8gc2VtcGxpY2VtZW50ZSBwZXIgZGFyZSB1biB0b29sdGlwIG1vbHRvIHBpw7kgYmVsbG8vYXZhbnphdG8gc3VsbG8gc2NvcnJpbWVudG9kZWwgY3Vyc29yZSBhbGwnaW50ZXJubyBkZWwgZ3JhZmljb1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIE1lcmdlRGF0YXNldHM6IGJvb2xlYW47XHJcblxyXG4gIC8qKlxyXG4gICAqIEluZGljYSBzZSBsZSBkYXRlIGNoZSBhcnJpdmFubyBhbGwnYXNzZSBYIGRldm9ubyBlc3NlcmUgY29uc2lkZXJhdGUgXCJJc3RhbnRlIGZpbmFsZVwiIGUgYWdnaXVzdGF0ZSBkaSBjb25zZWd1ZW56YS4gXHJcbiAgICogU2Ugbm9uIMOoIHZhbG9yaXp6YXRhIGxhIHZhcmlhYmlsZSAqKmludGVydmFsKiogZGVsbGEgY2xhc3NlICoqTGluZUNoYXJ0RGF0YSoqIG5vbiBoYSBhbGN1biBlZmZldHRvXHJcbiAgICogXHJcbiAgICogQWQgZXNlbXBpbywgbGEgZGF0YSAxNi8wNy8yMDIxIGNvbiBpbnRlcnZhbGxvIG9yYXJpbyB2ZXJyZWJiZSB0cmFzZm9ybWF0YSBpbiAxNS8wNy8yMDIxIDI0OjAwOjAwIChPdnZpYW1lbnRlIMOoIHV0aWxpenphdG8gc29sbyBsYXRvIHByZXNlbnRhemlvbmUpXHJcbiAgICovXHJcbiAgQElucHV0KCkgRmluYWxJbnN0YW50czogYm9vbGVhbjtcclxuXHJcbiAgLyoqXHJcbiAgICogR2VzdGlzY2UgaWwgbWluaW1vIGRlbGwnYXNzZSBZXHJcbiAgICovXHJcbiAgQElucHV0KCkgTWluOiBudW1iZXI7XHJcblxyXG4gIC8qKlxyXG4gICAqIEdlc3Rpc2NlIGlsIG1hc3NpbW8gZGVsbCdhc3NlIFlcclxuICAgKi9cclxuICBASW5wdXQoKSBNYXg6IG51bWJlcjtcclxuXHJcbiAgLyoqXHJcbiAgICogSW5kaWNhIHNlIGVmZmV0dHVhcmUgaWwgRmlsbCBkZWxsYSBzZXJpZSBpbiBtb2RvIGRhIG5vbiB2ZWRlcmUgc29sbyBsYSBsaW5lYSBtYSBwcm9wcmlvIGwnYXJlYSBzb3R0ZXNzYSBjb21wbGV0YW1lbnRlIGNvbG9yYXRhXHJcbiAgICovXHJcbiAgQElucHV0KCkgRmlsbDogYm9vbGVhbjtcclxuXHJcbiAgLyoqXHJcbiAgICogSW5kaWNhIHNlIGVmZmV0dHVhcmUgbG8gU3RhY2sgZGVsbGEgc2VyaWUgaW4gbW9kbyBkYSB2ZWRlcmUgdHV0dGUgbGUgbGluZWUgdW5hIHNvcHJhIGwnYWx0cmEuIEltcGxpY2l0YW1lbnRlIGluY2x1ZGUgYW5jaGUgaWwgKipGaWxsKipcclxuICAgKi9cclxuICBASW5wdXQoKSBTdGFja2VkOiBib29sZWFuO1xyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoZWw6IEVsZW1lbnRSZWYsIENoYXJ0TG9hZGVyOiBDaGFydExvYWRlciwgQ2hhcnREaXNwYXRjaGVyOiBDaGFydERpc3BhdGNoZXIsIHByaXZhdGUgYWRhcHRlcjogQmFzZUFkYXB0ZXIsIHByaXZhdGUgZGF0ZVNlcnZpY2U6IERhdGVTZXJ2aWNlLCB6b25lOiBOZ1pvbmUsXHJcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwbGF0Zm9ybUlkOiBPYmplY3QsXHJcbiAgICBASW5qZWN0KEVTQ19ERUJVR19NT0RFKSBFU0NfREVCVUdfTU9ERTogYm9vbGVhbixcclxuICAgIEBJbmplY3QoRVNDX0FOSU1BVElPTlMpIEVTQ19BTklNQVRJT05TOiBib29sZWFuLFxyXG4gICAgQEluamVjdChFU0NfVEhFTUUpIEVTQ19USEVNRTogc3RyaW5nLFxyXG4gICAgbGM6IExvY2FsaXphdGlvblNlcnZpY2UpIHtcclxuICAgIHN1cGVyKGVsLCBwbGF0Zm9ybUlkLCB6b25lLCBDaGFydExvYWRlciwgQ2hhcnREaXNwYXRjaGVyLCBFU0NfREVCVUdfTU9ERSwgRVNDX0FOSU1BVElPTlMsIGxjLkxvY2FsZSwgRVNDX1RIRU1FKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE90dGllbmUgbGUgcHJvcHJpZXTDoCBzcGVjaWZpY2hlIHBlciBxdWVzdGEgdGlwb2xvZ2lhIGRpIGdyYWZpY28gcGVyIGN1aSBzZXJ2ZSByaWdyYWZpY2FyZVxyXG4gICAqL1xyXG4gIGdldFNwZWNpZmljUHJvcGVydGllc1RvQ2hlY2soKTogc3RyaW5nW10ge1xyXG4gICAgcmV0dXJuIFtcIkRhdGFcIiwgXCJEYXRhQXJyYXlcIiwgXCJTdGVwXCIsIFwiRGF0YUdyb3VwQnVja2V0U2l6ZVwiLCBcIkRhdGFHcm91cGluZ1RocmVzaG9sZFwiLCBcIlN0cm9rZVNpemVcIiwgXCJTdGFja2VkXCIsIFwiQWxsb3dHYXBzXCIsIFwiTWVyZ2VEYXRhc2V0c1wiLCBcIkZpbmFsSW5zdGFudHNcIiwgXCJGaWxsXCIsIFwiTWluXCIsIFwiTWF4XCJdO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT3R0aWVuZSBpIFNldHRpbmdzIChFcmVkaXRhdGkgZGFsbGEgY2xhc3NlIGJhc2UsIHF1aW5kaSBkZWwgdGlwbyBnZW5lcmljbyAqKkJhc2VTZXR0aW5ncyoqKSBjYXN0YXRpIGFsIHRpcG8gc3BlY2lmaWNvIHBlciBxdWVzdG8gZ3JhZmljb1xyXG4gICAqIFxyXG4gICAqIEByZXR1cm5zIHtMaW5lQ2hhcnRTZXR0aW5nc30gU2V0dGluZ3MgY2FzdGF0aSBhbCB0aXBvIGdpdXN0b1xyXG4gICAqL1xyXG4gIGdldENhc3RlZFNldHRpbmdzKCk6IExpbmVDaGFydFNldHRpbmdzIHtcclxuICAgIHJldHVybiA8TGluZUNoYXJ0U2V0dGluZ3M+KHRoaXMuU2V0dGluZ3MgPz8gbmV3IExpbmVDaGFydFNldHRpbmdzKCkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW50ZWdyYSBpIFNldHRpbmdzIGJhc2UgY29uIHR1dHRpIGdsaSBJbnB1dCBzcGVjaWZpY2kgZGkgcXVlc3RvIGdyYWZpY28sIGRhbmRvIHByaW9yaXTDoCBhaSBTZXR0aW5ncyBzZSBkZWZpbml0aVxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB7TGluZUNoYXJ0U2V0dGluZ3N9IHNldHRpbmdzQ2FzdGVkIFNldHRpbmdzIGNhc3RhdGkgYWwgdGlwbyBnaXVzdG9cclxuICAgKi9cclxuICBmaWxsU3BlY2lmaWNTZXR0aW5ncyhzZXR0aW5nc0Nhc3RlZDogTGluZUNoYXJ0U2V0dGluZ3MpOiB2b2lkIHtcclxuICAgIHNldHRpbmdzQ2FzdGVkLlN0ZXAgPSBzZXR0aW5nc0Nhc3RlZC5TdGVwICE9IG51bGwgPyBzZXR0aW5nc0Nhc3RlZC5TdGVwIDogdGhpcy5TdGVwO1xyXG4gICAgc2V0dGluZ3NDYXN0ZWQuRGF0YUdyb3VwQnVja2V0U2l6ZSA9IHNldHRpbmdzQ2FzdGVkLkRhdGFHcm91cEJ1Y2tldFNpemUgIT0gbnVsbCA/IHNldHRpbmdzQ2FzdGVkLkRhdGFHcm91cEJ1Y2tldFNpemUgOiB0aGlzLkRhdGFHcm91cEJ1Y2tldFNpemU7XHJcbiAgICBzZXR0aW5nc0Nhc3RlZC5TdHJva2VTaXplID0gc2V0dGluZ3NDYXN0ZWQuU3Ryb2tlU2l6ZSAhPSBudWxsID8gc2V0dGluZ3NDYXN0ZWQuU3Ryb2tlU2l6ZSA6IHRoaXMuU3Ryb2tlU2l6ZTtcclxuICAgIHNldHRpbmdzQ2FzdGVkLkRhdGFHcm91cGluZ1RocmVzaG9sZCA9IHNldHRpbmdzQ2FzdGVkLkRhdGFHcm91cGluZ1RocmVzaG9sZCAhPSBudWxsID8gc2V0dGluZ3NDYXN0ZWQuRGF0YUdyb3VwaW5nVGhyZXNob2xkIDogdGhpcy5EYXRhR3JvdXBpbmdUaHJlc2hvbGQ7XHJcbiAgICBzZXR0aW5nc0Nhc3RlZC5BbGxvd0dhcHMgPSBzZXR0aW5nc0Nhc3RlZC5BbGxvd0dhcHMgIT0gbnVsbCA/IHNldHRpbmdzQ2FzdGVkLkFsbG93R2FwcyA6IHRoaXMuQWxsb3dHYXBzO1xyXG4gICAgc2V0dGluZ3NDYXN0ZWQuTWVyZ2VEYXRhc2V0cyA9IHNldHRpbmdzQ2FzdGVkLk1lcmdlRGF0YXNldHMgIT0gbnVsbCA/IHNldHRpbmdzQ2FzdGVkLk1lcmdlRGF0YXNldHMgOiB0aGlzLk1lcmdlRGF0YXNldHM7XHJcbiAgICBzZXR0aW5nc0Nhc3RlZC5GaW5hbEluc3RhbnRzID0gc2V0dGluZ3NDYXN0ZWQuRmluYWxJbnN0YW50cyAhPSBudWxsID8gc2V0dGluZ3NDYXN0ZWQuRmluYWxJbnN0YW50cyA6IHRoaXMuRmluYWxJbnN0YW50cztcclxuICAgIHNldHRpbmdzQ2FzdGVkLk1pbiA9IHNldHRpbmdzQ2FzdGVkLk1pbiAhPSBudWxsID8gc2V0dGluZ3NDYXN0ZWQuTWluIDogdGhpcy5NaW47XHJcbiAgICBzZXR0aW5nc0Nhc3RlZC5NYXggPSBzZXR0aW5nc0Nhc3RlZC5NYXggIT0gbnVsbCA/IHNldHRpbmdzQ2FzdGVkLk1heCA6IHRoaXMuTWF4O1xyXG4gICAgc2V0dGluZ3NDYXN0ZWQuRmlsbCA9IHNldHRpbmdzQ2FzdGVkLkZpbGwgIT0gbnVsbCA/IHNldHRpbmdzQ2FzdGVkLkZpbGwgOiB0aGlzLkZpbGw7XHJcbiAgICBzZXR0aW5nc0Nhc3RlZC5TdGFja2VkID0gc2V0dGluZ3NDYXN0ZWQuU3RhY2tlZCAhPSBudWxsID8gc2V0dGluZ3NDYXN0ZWQuU3RhY2tlZCA6IHRoaXMuU3RhY2tlZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVmZmV0dHVhIGlsIHJlbmRlcmluZyBkaSBxdWVzdG8gZ3JhZmljbyBpbiBiYXNlIGFpIFNldHRpbmdzXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHtMaW5lQ2hhcnRTZXR0aW5nc30gc2V0dGluZ3NDYXN0ZWQgSW1wb3N0YXppb25pIGRpIGdyYWZpY2F6aW9uZVxyXG4gICAqIEByZXR1cm5zIHtMaW5lQ2hhcnRTZXJ2aWNlfSBMYSBzZXJ2aWNlIHV0aWxpenphdGEgcGVyIGlsIHJlbmRlcmluZyBuZWxsbyBzdGF0byBzdWJpdG8gc3VjY2Vzc2l2byBhbCByZW5kZXJpbmcgZWZmZXR0dWF0b1xyXG4gICAqL1xyXG4gIGdyYXBoaWNhdGUoc2V0dGluZ3NDYXN0ZWQ6IExpbmVDaGFydFNldHRpbmdzKTogYW55IHtcclxuICAgIHJldHVybiBuZXcgTGluZUNoYXJ0U2VydmljZSh0aGlzLmFkYXB0ZXIsIHRoaXMuZGF0ZVNlcnZpY2UpLmdyYXBoaWNhdGUoPExpbmVDaGFydERhdGE+dGhpcy5EYXRhLCBzZXR0aW5nc0Nhc3RlZCk7XHJcbiAgfVxyXG59IiwiPGNoYXJ0LXBhZ2VyICpuZ0lmPVwiaXNQYWdlZFwiIChvblBhZ2VDaGFuZ2UpPVwiY2hhbmdlUGFnZSgkZXZlbnQpXCIgW0l0ZW1zXT1cIkRhdGFBcnJheVwiIFtEdG9zXT1cIkRhdGFEdG9zXCIgW1N0YXJ0SW5kZXhdPVwiRGF0YUR0b1N0YXJ0SW5kZXhcIlxyXG4gICAgW0Jyb3dzZURlbGF5TXNdPVwiQnJvd3NlRGVsYXlNc1wiPlxyXG4gICAgPG5nLXRlbXBsYXRlICNoZWFkZXJfaW5uZXIgbGV0LWhlYWRlckl0ZW0+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImhlYWRlcl90cjsgY29udGV4dCA6IHskaW1wbGljaXQ6IGhlYWRlckl0ZW19XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG48L2NoYXJ0LXBhZ2VyPlxyXG5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvYWRpbmdDaGFydCAmJiBsb2FkaW5nX3RlbXBsYXRlXCI+XHJcbiAgICA8ZGl2IHN0eWxlPVwid2lkdGg6IDEwMCU7XCIgW3N0eWxlLmhlaWdodF09XCJpc1BhZ2VkID8gJ2NhbGMoMTAwJSAtIDQ0cHgpJyA6ICcxMDAlJ1wiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2FkaW5nX3RlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG48bmctY29udGFpbmVyICpuZ0lmPVwibG9hZGluZ0NoYXJ0ICYmICFsb2FkaW5nX3RlbXBsYXRlXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZXNjLWxvYWRpbmctb3ZlcmxheVwiIHN0eWxlPVwid2lkdGg6IDEwMCU7XCIgW3N0eWxlLmhlaWdodF09XCJpc1BhZ2VkID8gJ2NhbGMoMTAwJSAtIDQ0cHgpJyA6ICcxMDAlJ1wiPlxyXG4gICAgICAgIDxwIGNsYXNzPVwibGFiZWxcIj5Mb2FkaW5nLi4uLjwvcD5cclxuICAgIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxkaXYgW2NsYXNzLmhpZGUtYmxvY2tdPVwibG9hZGluZ0NoYXJ0XCIgaWQ9XCJ7e25hbWV9fVwiIHN0eWxlPVwid2lkdGg6IDEwMCU7XCIgW3N0eWxlLmhlaWdodF09XCJpc1BhZ2VkID8gJ2NhbGMoMTAwJSAtIDQ0cHgpJyA6ICcxMDAlJ1wiPjwvZGl2PiJdfQ==
|
|
1
|
+
import { Component, Input, Inject, PLATFORM_ID, ChangeDetectionStrategy } from '@angular/core';
|
|
2
|
+
import { ESC_ANIMATIONS, ESC_THEME, ESC_DEBUG_MODE } from '../../tokens';
|
|
3
|
+
import { BaseChartComponent } from '../base/base-chart.component';
|
|
4
|
+
import { LineChartSettings } from '../../models/settings/LineChartSettings';
|
|
5
|
+
import { LineChartService } from '../../services/LineChartService';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "../../models/core/ChartLoader";
|
|
8
|
+
import * as i2 from "../../models/core/ChartDispatcher";
|
|
9
|
+
import * as i3 from "../../adapters/BaseAdapter";
|
|
10
|
+
import * as i4 from "@esfaenza/extensions";
|
|
11
|
+
import * as i5 from "@esfaenza/localizations";
|
|
12
|
+
import * as i6 from "@angular/common";
|
|
13
|
+
import * as i7 from "../chart-pager/chart-pager.component";
|
|
14
|
+
/**
|
|
15
|
+
* Componente specifico per la graficazione di un grafico a Linea su un asse temporale
|
|
16
|
+
*/
|
|
17
|
+
export class EsLineChartComponent extends BaseChartComponent {
|
|
18
|
+
/**
|
|
19
|
+
* @ignore
|
|
20
|
+
*/
|
|
21
|
+
constructor(el, ChartLoader, ChartDispatcher, adapter, dateService, zone, platformId, ESC_DEBUG_MODE, ESC_ANIMATIONS, ESC_THEME, lc) {
|
|
22
|
+
super(el, platformId, zone, ChartLoader, ChartDispatcher, ESC_DEBUG_MODE, ESC_ANIMATIONS, lc.Locale, ESC_THEME);
|
|
23
|
+
this.adapter = adapter;
|
|
24
|
+
this.dateService = dateService;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Ottiene le proprietà specifiche per questa tipologia di grafico per cui serve rigraficare
|
|
28
|
+
*/
|
|
29
|
+
getSpecificPropertiesToCheck() {
|
|
30
|
+
return ["Data", "DataArray", "Step", "DataGroupBucketSize", "DataGroupingThreshold", "StrokeSize", "Stacked", "AllowGaps", "MergeDatasets", "FinalInstants", "Fill", "Min", "Max"];
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Ottiene i Settings (Ereditati dalla classe base, quindi del tipo generico **BaseSettings**) castati al tipo specifico per questo grafico
|
|
34
|
+
*
|
|
35
|
+
* @returns {LineChartSettings} Settings castati al tipo giusto
|
|
36
|
+
*/
|
|
37
|
+
getCastedSettings() {
|
|
38
|
+
return (this.Settings ?? new LineChartSettings());
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Integra i Settings base con tutti gli Input specifici di questo grafico, dando priorità ai Settings se definiti
|
|
42
|
+
*
|
|
43
|
+
* @param {LineChartSettings} settingsCasted Settings castati al tipo giusto
|
|
44
|
+
*/
|
|
45
|
+
fillSpecificSettings(settingsCasted) {
|
|
46
|
+
settingsCasted.Step = settingsCasted.Step != null ? settingsCasted.Step : this.Step;
|
|
47
|
+
settingsCasted.DataGroupBucketSize = settingsCasted.DataGroupBucketSize != null ? settingsCasted.DataGroupBucketSize : this.DataGroupBucketSize;
|
|
48
|
+
settingsCasted.StrokeSize = settingsCasted.StrokeSize != null ? settingsCasted.StrokeSize : this.StrokeSize;
|
|
49
|
+
settingsCasted.DataGroupingThreshold = settingsCasted.DataGroupingThreshold != null ? settingsCasted.DataGroupingThreshold : this.DataGroupingThreshold;
|
|
50
|
+
settingsCasted.AllowGaps = settingsCasted.AllowGaps != null ? settingsCasted.AllowGaps : this.AllowGaps;
|
|
51
|
+
settingsCasted.MergeDatasets = settingsCasted.MergeDatasets != null ? settingsCasted.MergeDatasets : this.MergeDatasets;
|
|
52
|
+
settingsCasted.FinalInstants = settingsCasted.FinalInstants != null ? settingsCasted.FinalInstants : this.FinalInstants;
|
|
53
|
+
settingsCasted.Min = settingsCasted.Min != null ? settingsCasted.Min : this.Min;
|
|
54
|
+
settingsCasted.Max = settingsCasted.Max != null ? settingsCasted.Max : this.Max;
|
|
55
|
+
settingsCasted.Fill = settingsCasted.Fill != null ? settingsCasted.Fill : this.Fill;
|
|
56
|
+
settingsCasted.Stacked = settingsCasted.Stacked != null ? settingsCasted.Stacked : this.Stacked;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Effettua il rendering di questo grafico in base ai Settings
|
|
60
|
+
*
|
|
61
|
+
* @param {LineChartSettings} settingsCasted Impostazioni di graficazione
|
|
62
|
+
* @returns {LineChartService} La service utilizzata per il rendering nello stato subito successivo al rendering effettuato
|
|
63
|
+
*/
|
|
64
|
+
graphicate(settingsCasted) {
|
|
65
|
+
return new LineChartService(this.adapter, this.dateService).graphicate(this.Data, settingsCasted);
|
|
66
|
+
}
|
|
67
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EsLineChartComponent, deps: [{ token: i0.ElementRef }, { token: i1.ChartLoader }, { token: i2.ChartDispatcher }, { token: i3.BaseAdapter }, { token: i4.DateService }, { token: i0.NgZone }, { token: PLATFORM_ID }, { token: ESC_DEBUG_MODE }, { token: ESC_ANIMATIONS }, { token: ESC_THEME }, { token: i5.LocalizationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
68
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EsLineChartComponent, selector: "es-line-chart", inputs: { Data: "Data", DataArray: "DataArray", Step: "Step", DataGroupBucketSize: "DataGroupBucketSize", DataGroupingThreshold: "DataGroupingThreshold", StrokeSize: "StrokeSize", AllowGaps: "AllowGaps", MergeDatasets: "MergeDatasets", FinalInstants: "FinalInstants", Min: "Min", Max: "Max", Fill: "Fill", Stacked: "Stacked" }, usesInheritance: true, ngImport: i0, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i7.PageChartSelector, selector: "chart-pager", inputs: ["Items", "Dtos", "BrowseDelayMs", "StartIndex"], outputs: ["onPageChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
69
|
+
}
|
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EsLineChartComponent, decorators: [{
|
|
71
|
+
type: Component,
|
|
72
|
+
args: [{ selector: 'es-line-chart', changeDetection: ChangeDetectionStrategy.OnPush, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"] }]
|
|
73
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.ChartLoader }, { type: i2.ChartDispatcher }, { type: i3.BaseAdapter }, { type: i4.DateService }, { type: i0.NgZone }, { type: Object, decorators: [{
|
|
74
|
+
type: Inject,
|
|
75
|
+
args: [PLATFORM_ID]
|
|
76
|
+
}] }, { type: undefined, decorators: [{
|
|
77
|
+
type: Inject,
|
|
78
|
+
args: [ESC_DEBUG_MODE]
|
|
79
|
+
}] }, { type: undefined, decorators: [{
|
|
80
|
+
type: Inject,
|
|
81
|
+
args: [ESC_ANIMATIONS]
|
|
82
|
+
}] }, { type: undefined, decorators: [{
|
|
83
|
+
type: Inject,
|
|
84
|
+
args: [ESC_THEME]
|
|
85
|
+
}] }, { type: i5.LocalizationService }]; }, propDecorators: { Data: [{
|
|
86
|
+
type: Input
|
|
87
|
+
}], DataArray: [{
|
|
88
|
+
type: Input
|
|
89
|
+
}], Step: [{
|
|
90
|
+
type: Input
|
|
91
|
+
}], DataGroupBucketSize: [{
|
|
92
|
+
type: Input
|
|
93
|
+
}], DataGroupingThreshold: [{
|
|
94
|
+
type: Input
|
|
95
|
+
}], StrokeSize: [{
|
|
96
|
+
type: Input
|
|
97
|
+
}], AllowGaps: [{
|
|
98
|
+
type: Input
|
|
99
|
+
}], MergeDatasets: [{
|
|
100
|
+
type: Input
|
|
101
|
+
}], FinalInstants: [{
|
|
102
|
+
type: Input
|
|
103
|
+
}], Min: [{
|
|
104
|
+
type: Input
|
|
105
|
+
}], Max: [{
|
|
106
|
+
type: Input
|
|
107
|
+
}], Fill: [{
|
|
108
|
+
type: Input
|
|
109
|
+
}], Stacked: [{
|
|
110
|
+
type: Input
|
|
111
|
+
}] } });
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXMtbGluZS1jaGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcy1jaGFydHMvc3JjL2xpYi9jb21wb25lbnRzL3NwZWNpYWxpemF0aW9ucy9lcy1saW5lLWNoYXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VzLWNoYXJ0cy9zcmMvbGliL2NvbXBvbmVudHMvYmFzZS9iYXNlLWNoYXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQVUsdUJBQXVCLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFLbkgsT0FBTyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXpFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBSWxFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7Ozs7QUFJbkU7O0dBRUc7QUFPSCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsa0JBQWtCO0lBZ0YxRDs7T0FFRztJQUNILFlBQVksRUFBYyxFQUFFLFdBQXdCLEVBQUUsZUFBZ0MsRUFBVSxPQUFvQixFQUFVLFdBQXdCLEVBQUUsSUFBWSxFQUM3SSxVQUFrQixFQUNmLGNBQXVCLEVBQ3ZCLGNBQXVCLEVBQzVCLFNBQWlCLEVBQ3BDLEVBQXVCO1FBQ3ZCLEtBQUssQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztRQU5sQixZQUFPLEdBQVAs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QUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ25ILENBQUM7K0dBdklVLG9CQUFvQixrTEFvRnJCLFdBQVcsYUFDWCxjQUFjLGFBQ2QsY0FBYyxhQUNkLFNBQVM7bUdBdkZSLG9CQUFvQixvWkN6QmpDLHdqQ0FtQndJOzs0RkRNM0gsb0JBQW9CO2tCQU5oQyxTQUFTOytCQUNFLGVBQWUsbUJBR1IsdUJBQXVCLENBQUMsTUFBTTs7MEJBc0Y1QyxNQUFNOzJCQUFDLFdBQVc7OzBCQUNsQixNQUFNOzJCQUFDLGNBQWM7OzBCQUNyQixNQUFNOzJCQUFDLGNBQWM7OzBCQUNyQixNQUFNOzJCQUFDLFNBQVM7OEVBbEZWLElBQUk7c0JBQVosS0FBSztnQkFLRyxTQUFTO3NCQUFqQixLQUFLO2dCQUtHLElBQUk7c0JBQVosS0FBSztnQkFRRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBS0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUtHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBVUcsU0FBUztzQkFBakIsS0FBSztnQkFPRyxhQUFhO3NCQUFyQixLQUFLO2dCQVFHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBS0csR0FBRztzQkFBWCxLQUFLO2dCQUtHLEdBQUc7c0JBQVgsS0FBSztnQkFLRyxJQUFJO3NCQUFaLEtBQUs7Z0JBS0csT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgSW5qZWN0LCBQTEFURk9STV9JRCwgTmdab25lLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEYXRlU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvZXh0ZW5zaW9uc1wiO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnQGVzZmFlbnphL2xvY2FsaXphdGlvbnMnO1xyXG5cclxuaW1wb3J0IHsgQmFzZUFkYXB0ZXIgfSBmcm9tICcuLi8uLi9hZGFwdGVycy9CYXNlQWRhcHRlcic7XHJcbmltcG9ydCB7IEVTQ19BTklNQVRJT05TLCBFU0NfVEhFTUUsIEVTQ19ERUJVR19NT0RFIH0gZnJvbSAnLi4vLi4vdG9rZW5zJztcclxuXHJcbmltcG9ydCB7IEJhc2VDaGFydENvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UvYmFzZS1jaGFydC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDaGFydExvYWRlciB9IGZyb20gXCIuLi8uLi9tb2RlbHMvY29yZS9DaGFydExvYWRlclwiO1xyXG5pbXBvcnQgeyBDaGFydERpc3BhdGNoZXIgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2NvcmUvQ2hhcnREaXNwYXRjaGVyXCI7XHJcblxyXG5pbXBvcnQgeyBMaW5lQ2hhcnRTZXR0aW5ncyB9IGZyb20gJy4uLy4uL21vZGVscy9zZXR0aW5ncy9MaW5lQ2hhcnRTZXR0aW5ncyc7XHJcbmltcG9ydCB7IExpbmVDaGFydFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9MaW5lQ2hhcnRTZXJ2aWNlJztcclxuaW1wb3J0IHsgTGluZUNoYXJ0RGF0YSB9IGZyb20gJy4uLy4uL21vZGVscy9kYXRhL0xpbmVDaGFydERhdGEnO1xyXG5pbXBvcnQgeyBQYWdlZENoYXJ0RGF0YSB9IGZyb20gJy4uLy4uL21vZGVscy9kYXRhL1BhZ2VkQ2hhcnREYXRhJztcclxuXHJcbi8qKlxyXG4gKiBDb21wb25lbnRlIHNwZWNpZmljbyBwZXIgbGEgZ3JhZmljYXppb25lIGRpIHVuIGdyYWZpY28gYSBMaW5lYSBzdSB1biBhc3NlIHRlbXBvcmFsZVxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlcy1saW5lLWNoYXJ0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4uL2Jhc2UvYmFzZS1jaGFydC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4uL2Jhc2UvYmFzZS1jaGFydC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFc0xpbmVDaGFydENvbXBvbmVudCBleHRlbmRzIEJhc2VDaGFydENvbXBvbmVudCB7XHJcblxyXG4gIC8qKlxyXG4gICAqIERhdGkgc3BlY2lmaWNpIHBlciBpbCBncmFmaWNvIG8gZGkgdW4gdGlwbyB0cmFtdXRhYmlsZSBhbCB0aXBvICoqTGluZUNoYXJ0RGF0YSoqIGNvbCBzdXBwb3J0byBkZWwgKipCYXNlQWRhcHRlcioqXHJcbiAgICovXHJcbiAgQElucHV0KCkgRGF0YTogTGluZUNoYXJ0RGF0YSB8IGFueTtcclxuXHJcbiAgLyoqXHJcbiAgICogTGlzdGEgZGkgRGF0aSBzcGVjaWZpY2kgcGVyIHVuIGdyYWZpY28gcGFnaW5hdG8gbyBkaSBjdWkgb2duaSBibG9jY28gZGF0aSDDqCB0cmFtdXRhYmlsZSBhbCB0aXBvICoqTGluZUNoYXJ0RGF0YSoqIGNvbCBzdXBwb3J0byBkZWwgKipCYXNlQWRhcHRlcioqXHJcbiAgICovXHJcbiAgQElucHV0KCkgRGF0YUFycmF5OiBQYWdlZENoYXJ0RGF0YTxMaW5lQ2hhcnREYXRhPltdIHwgUGFnZWRDaGFydERhdGE8YW55PltdO1xyXG5cclxuICAvKipcclxuICAgKiBJbmRpY2Egc2UgbGEgY3VydmEgZGV2ZSBjb2xsZWdhcmUgZGlyZXR0YW1lbnRlIHVuIGRhdGFwb2ludCBhbGwnYWx0cm8gbyBzZSBkZXZlIGZhcmUgZGVnbGkgc3RlcFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIFN0ZXA6IGJvb2xlYW47XHJcblxyXG4gIC8qKlxyXG4gICAqIEluZGljYSBpbCBudW1lcm8gbWFzc2ltbyBkaSBkYXRhcG9pbnQgdmlzdWFsaXp6YWJpbGUgaW4gdW5hIHNpbmdvbGEgdmlzdGEgZGVsIGdyYWZpY28uIEwnZWNjZWRlbnphIHZpZW5lIHJhZ2dydXBwYXRhIGUgdmVycsOgIG1vc3RyYXRhIHN1bGxvIHpvb20uXHJcbiAgICogXHJcbiAgICogQVRURU5aSU9ORTogVXRpbGl6emFuZG8gaWwgc2lzdGVtYSBkaSBkZWZhdWx0IGRpIHJhZ2dydXBwYW1lbnRvIGRpIGFtLWNoYXJ0cyBzaSByaXNjaGlhIGRpIHRhZ2xpYXJlIHZpYSBwZXp6aSBkYSBzZXJpZSBtb2x0byBvbmR1bGF0ZVxyXG4gICAqIGluIHF1YW50byBpbCBjb21wb3J0YW1lbnRvIGRpIGRlZmF1bHQgw6ggcXVlbGxvIGRpIGVsaW1pbmFyZSBpIGRhdGFwb2ludCBjaGUgbm9uIGNpIHN0YW5ubywgbm9uIGRpIGludGVycG9sYXJsaVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIERhdGFHcm91cEJ1Y2tldFNpemU6IG51bWJlcjtcclxuXHJcbiAgLyoqXHJcbiAgICogU29nbGlhIHBlciBjb250cm9sbGFyZSBvbHRyZSBjaGUgbnVtZXJvIGRpIGRhdGFwb2ludCBpbCBncmFmaWNvIGRldmUgaW5pemlhcmUgYWQgZWZmZXR0dWFyZSByYWdncnVwcGFtZW50aSBjb25zaWRlcmFuZG8gbCdJbnB1dCAqKkRhdGFHcm91cEJ1Y2tldFNpemUqKlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIERhdGFHcm91cGluZ1RocmVzaG9sZDogbnVtYmVyO1xyXG5cclxuICAvKipcclxuICAgKiBJbmRpY2EgbGUgZGltbnNpb25pLCBpbiBwaXhlbCBkZWxsYSBsaW5lYSBkZWwgZ3JhZmljb1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIFN0cm9rZVNpemU6IG51bWJlcjtcclxuXHJcbiAgLyoqXHJcbiAgICogSW5kaWNhIHNlIHNvbm8gcGVybWVzc2kgZGVpIEdhcCBmcmEgdW4gdmFsb3JlIGUgbCdhbHRyby5cclxuICAgKiBcclxuICAgKiBOb3JtYWxtZW50ZSBxdWFuZG8gY2kgc29ubyBkZWkgYnVjaGkgbCd1bHRpbW8gZGF0YXBvaW50IGRlbCBidWNvIHZpZW5lIGNvbGxlZ2F0byBkaXJldHRhbWVudGUgYWwgcHJpbW8gZGF0YXBvaW50IGRpc3BvbmliaWxlLiBcclxuICAgKiBcclxuICAgKiBJbXBvc3RhbmRvIHF1ZXN0byBJbnB1dCBhIHRydWUgaW52ZWNlLCBwb3N0byBkaSBhdmVyIGFzc2VnbmF0byBsYSB2YXJpYWJpbGUgKippbnRlcnZhbCoqIGRlbGxhIGNsYXNzZSAqKkxpbmVDaGFydERhdGEqKiwgw6ggcG9zc2liaWxlIFxyXG4gICAqIGZhciBhcHBhcmlyZSBpbCBibG9jY28gZGkgZGF0aSBtYW5jYW50aSBjb21lIHVuIGJ1Y28gdmVybyBlIHByb3ByaW8sIHNlbnphIGFsY3VuIGNvbGxlZ2FtZW50byBmcmEgaSBkdWUgZGF0YXBvaW50IGVzdHJlbWlcclxuICAgKi9cclxuICBASW5wdXQoKSBBbGxvd0dhcHM6IGJvb2xlYW47XHJcblxyXG4gIC8qKlxyXG4gICAqIElucHV0IGNoZSBwZXJtZXR0ZSBkaSByaWVsYWJvcmFyZSBpIGRhdGkgZGVsIGdyYWZpY28gcGVyIGdlbmVyYXJlIHVuIHNvbG8gRGF0YXNldFxyXG4gICAqIFxyXG4gICAqIFZpZW5lIHV0aWxpenphdG8gc2VtcGxpY2VtZW50ZSBwZXIgZGFyZSB1biB0b29sdGlwIG1vbHRvIHBpw7kgYmVsbG8vYXZhbnphdG8gc3VsbG8gc2NvcnJpbWVudG9kZWwgY3Vyc29yZSBhbGwnaW50ZXJubyBkZWwgZ3JhZmljb1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIE1lcmdlRGF0YXNldHM6IGJvb2xlYW47XHJcblxyXG4gIC8qKlxyXG4gICAqIEluZGljYSBzZSBsZSBkYXRlIGNoZSBhcnJpdmFubyBhbGwnYXNzZSBYIGRldm9ubyBlc3NlcmUgY29uc2lkZXJhdGUgXCJJc3RhbnRlIGZpbmFsZVwiIGUgYWdnaXVzdGF0ZSBkaSBjb25zZWd1ZW56YS4gXHJcbiAgICogU2Ugbm9uIMOoIHZhbG9yaXp6YXRhIGxhIHZhcmlhYmlsZSAqKmludGVydmFsKiogZGVsbGEgY2xhc3NlICoqTGluZUNoYXJ0RGF0YSoqIG5vbiBoYSBhbGN1biBlZmZldHRvXHJcbiAgICogXHJcbiAgICogQWQgZXNlbXBpbywgbGEgZGF0YSAxNi8wNy8yMDIxIGNvbiBpbnRlcnZhbGxvIG9yYXJpbyB2ZXJyZWJiZSB0cmFzZm9ybWF0YSBpbiAxNS8wNy8yMDIxIDI0OjAwOjAwIChPdnZpYW1lbnRlIMOoIHV0aWxpenphdG8gc29sbyBsYXRvIHByZXNlbnRhemlvbmUpXHJcbiAgICovXHJcbiAgQElucHV0KCkgRmluYWxJbnN0YW50czogYm9vbGVhbjtcclxuXHJcbiAgLyoqXHJcbiAgICogR2VzdGlzY2UgaWwgbWluaW1vIGRlbGwnYXNzZSBZXHJcbiAgICovXHJcbiAgQElucHV0KCkgTWluOiBudW1iZXI7XHJcblxyXG4gIC8qKlxyXG4gICAqIEdlc3Rpc2NlIGlsIG1hc3NpbW8gZGVsbCdhc3NlIFlcclxuICAgKi9cclxuICBASW5wdXQoKSBNYXg6IG51bWJlcjtcclxuXHJcbiAgLyoqXHJcbiAgICogSW5kaWNhIHNlIGVmZmV0dHVhcmUgaWwgRmlsbCBkZWxsYSBzZXJpZSBpbiBtb2RvIGRhIG5vbiB2ZWRlcmUgc29sbyBsYSBsaW5lYSBtYSBwcm9wcmlvIGwnYXJlYSBzb3R0ZXNzYSBjb21wbGV0YW1lbnRlIGNvbG9yYXRhXHJcbiAgICovXHJcbiAgQElucHV0KCkgRmlsbDogYm9vbGVhbjtcclxuXHJcbiAgLyoqXHJcbiAgICogSW5kaWNhIHNlIGVmZmV0dHVhcmUgbG8gU3RhY2sgZGVsbGEgc2VyaWUgaW4gbW9kbyBkYSB2ZWRlcmUgdHV0dGUgbGUgbGluZWUgdW5hIHNvcHJhIGwnYWx0cmEuIEltcGxpY2l0YW1lbnRlIGluY2x1ZGUgYW5jaGUgaWwgKipGaWxsKipcclxuICAgKi9cclxuICBASW5wdXQoKSBTdGFja2VkOiBib29sZWFuO1xyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoZWw6IEVsZW1lbnRSZWYsIENoYXJ0TG9hZGVyOiBDaGFydExvYWRlciwgQ2hhcnREaXNwYXRjaGVyOiBDaGFydERpc3BhdGNoZXIsIHByaXZhdGUgYWRhcHRlcjogQmFzZUFkYXB0ZXIsIHByaXZhdGUgZGF0ZVNlcnZpY2U6IERhdGVTZXJ2aWNlLCB6b25lOiBOZ1pvbmUsXHJcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwbGF0Zm9ybUlkOiBPYmplY3QsXHJcbiAgICBASW5qZWN0KEVTQ19ERUJVR19NT0RFKSBFU0NfREVCVUdfTU9ERTogYm9vbGVhbixcclxuICAgIEBJbmplY3QoRVNDX0FOSU1BVElPTlMpIEVTQ19BTklNQVRJT05TOiBib29sZWFuLFxyXG4gICAgQEluamVjdChFU0NfVEhFTUUpIEVTQ19USEVNRTogc3RyaW5nLFxyXG4gICAgbGM6IExvY2FsaXphdGlvblNlcnZpY2UpIHtcclxuICAgIHN1cGVyKGVsLCBwbGF0Zm9ybUlkLCB6b25lLCBDaGFydExvYWRlciwgQ2hhcnREaXNwYXRjaGVyLCBFU0NfREVCVUdfTU9ERSwgRVNDX0FOSU1BVElPTlMsIGxjLkxvY2FsZSwgRVNDX1RIRU1FKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE90dGllbmUgbGUgcHJvcHJpZXTDoCBzcGVjaWZpY2hlIHBlciBxdWVzdGEgdGlwb2xvZ2lhIGRpIGdyYWZpY28gcGVyIGN1aSBzZXJ2ZSByaWdyYWZpY2FyZVxyXG4gICAqL1xyXG4gIGdldFNwZWNpZmljUHJvcGVydGllc1RvQ2hlY2soKTogc3RyaW5nW10ge1xyXG4gICAgcmV0dXJuIFtcIkRhdGFcIiwgXCJEYXRhQXJyYXlcIiwgXCJTdGVwXCIsIFwiRGF0YUdyb3VwQnVja2V0U2l6ZVwiLCBcIkRhdGFHcm91cGluZ1RocmVzaG9sZFwiLCBcIlN0cm9rZVNpemVcIiwgXCJTdGFja2VkXCIsIFwiQWxsb3dHYXBzXCIsIFwiTWVyZ2VEYXRhc2V0c1wiLCBcIkZpbmFsSW5zdGFudHNcIiwgXCJGaWxsXCIsIFwiTWluXCIsIFwiTWF4XCJdO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT3R0aWVuZSBpIFNldHRpbmdzIChFcmVkaXRhdGkgZGFsbGEgY2xhc3NlIGJhc2UsIHF1aW5kaSBkZWwgdGlwbyBnZW5lcmljbyAqKkJhc2VTZXR0aW5ncyoqKSBjYXN0YXRpIGFsIHRpcG8gc3BlY2lmaWNvIHBlciBxdWVzdG8gZ3JhZmljb1xyXG4gICAqIFxyXG4gICAqIEByZXR1cm5zIHtMaW5lQ2hhcnRTZXR0aW5nc30gU2V0dGluZ3MgY2FzdGF0aSBhbCB0aXBvIGdpdXN0b1xyXG4gICAqL1xyXG4gIGdldENhc3RlZFNldHRpbmdzKCk6IExpbmVDaGFydFNldHRpbmdzIHtcclxuICAgIHJldHVybiA8TGluZUNoYXJ0U2V0dGluZ3M+KHRoaXMuU2V0dGluZ3MgPz8gbmV3IExpbmVDaGFydFNldHRpbmdzKCkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW50ZWdyYSBpIFNldHRpbmdzIGJhc2UgY29uIHR1dHRpIGdsaSBJbnB1dCBzcGVjaWZpY2kgZGkgcXVlc3RvIGdyYWZpY28sIGRhbmRvIHByaW9yaXTDoCBhaSBTZXR0aW5ncyBzZSBkZWZpbml0aVxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB7TGluZUNoYXJ0U2V0dGluZ3N9IHNldHRpbmdzQ2FzdGVkIFNldHRpbmdzIGNhc3RhdGkgYWwgdGlwbyBnaXVzdG9cclxuICAgKi9cclxuICBmaWxsU3BlY2lmaWNTZXR0aW5ncyhzZXR0aW5nc0Nhc3RlZDogTGluZUNoYXJ0U2V0dGluZ3MpOiB2b2lkIHtcclxuICAgIHNldHRpbmdzQ2FzdGVkLlN0ZXAgPSBzZXR0aW5nc0Nhc3RlZC5TdGVwICE9IG51bGwgPyBzZXR0aW5nc0Nhc3RlZC5TdGVwIDogdGhpcy5TdGVwO1xyXG4gICAgc2V0dGluZ3NDYXN0ZWQuRGF0YUdyb3VwQnVja2V0U2l6ZSA9IHNldHRpbmdzQ2FzdGVkLkRhdGFHcm91cEJ1Y2tldFNpemUgIT0gbnVsbCA/IHNldHRpbmdzQ2FzdGVkLkRhdGFHcm91cEJ1Y2tldFNpemUgOiB0aGlzLkRhdGFHcm91cEJ1Y2tldFNpemU7XHJcbiAgICBzZXR0aW5nc0Nhc3RlZC5TdHJva2VTaXplID0gc2V0dGluZ3NDYXN0ZWQuU3Ryb2tlU2l6ZSAhPSBudWxsID8gc2V0dGluZ3NDYXN0ZWQuU3Ryb2tlU2l6ZSA6IHRoaXMuU3Ryb2tlU2l6ZTtcclxuICAgIHNldHRpbmdzQ2FzdGVkLkRhdGFHcm91cGluZ1RocmVzaG9sZCA9IHNldHRpbmdzQ2FzdGVkLkRhdGFHcm91cGluZ1RocmVzaG9sZCAhPSBudWxsID8gc2V0dGluZ3NDYXN0ZWQuRGF0YUdyb3VwaW5nVGhyZXNob2xkIDogdGhpcy5EYXRhR3JvdXBpbmdUaHJlc2hvbGQ7XHJcbiAgICBzZXR0aW5nc0Nhc3RlZC5BbGxvd0dhcHMgPSBzZXR0aW5nc0Nhc3RlZC5BbGxvd0dhcHMgIT0gbnVsbCA/IHNldHRpbmdzQ2FzdGVkLkFsbG93R2FwcyA6IHRoaXMuQWxsb3dHYXBzO1xyXG4gICAgc2V0dGluZ3NDYXN0ZWQuTWVyZ2VEYXRhc2V0cyA9IHNldHRpbmdzQ2FzdGVkLk1lcmdlRGF0YXNldHMgIT0gbnVsbCA/IHNldHRpbmdzQ2FzdGVkLk1lcmdlRGF0YXNldHMgOiB0aGlzLk1lcmdlRGF0YXNldHM7XHJcbiAgICBzZXR0aW5nc0Nhc3RlZC5GaW5hbEluc3RhbnRzID0gc2V0dGluZ3NDYXN0ZWQuRmluYWxJbnN0YW50cyAhPSBudWxsID8gc2V0dGluZ3NDYXN0ZWQuRmluYWxJbnN0YW50cyA6IHRoaXMuRmluYWxJbnN0YW50cztcclxuICAgIHNldHRpbmdzQ2FzdGVkLk1pbiA9IHNldHRpbmdzQ2FzdGVkLk1pbiAhPSBudWxsID8gc2V0dGluZ3NDYXN0ZWQuTWluIDogdGhpcy5NaW47XHJcbiAgICBzZXR0aW5nc0Nhc3RlZC5NYXggPSBzZXR0aW5nc0Nhc3RlZC5NYXggIT0gbnVsbCA/IHNldHRpbmdzQ2FzdGVkLk1heCA6IHRoaXMuTWF4O1xyXG4gICAgc2V0dGluZ3NDYXN0ZWQuRmlsbCA9IHNldHRpbmdzQ2FzdGVkLkZpbGwgIT0gbnVsbCA/IHNldHRpbmdzQ2FzdGVkLkZpbGwgOiB0aGlzLkZpbGw7XHJcbiAgICBzZXR0aW5nc0Nhc3RlZC5TdGFja2VkID0gc2V0dGluZ3NDYXN0ZWQuU3RhY2tlZCAhPSBudWxsID8gc2V0dGluZ3NDYXN0ZWQuU3RhY2tlZCA6IHRoaXMuU3RhY2tlZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVmZmV0dHVhIGlsIHJlbmRlcmluZyBkaSBxdWVzdG8gZ3JhZmljbyBpbiBiYXNlIGFpIFNldHRpbmdzXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHtMaW5lQ2hhcnRTZXR0aW5nc30gc2V0dGluZ3NDYXN0ZWQgSW1wb3N0YXppb25pIGRpIGdyYWZpY2F6aW9uZVxyXG4gICAqIEByZXR1cm5zIHtMaW5lQ2hhcnRTZXJ2aWNlfSBMYSBzZXJ2aWNlIHV0aWxpenphdGEgcGVyIGlsIHJlbmRlcmluZyBuZWxsbyBzdGF0byBzdWJpdG8gc3VjY2Vzc2l2byBhbCByZW5kZXJpbmcgZWZmZXR0dWF0b1xyXG4gICAqL1xyXG4gIGdyYXBoaWNhdGUoc2V0dGluZ3NDYXN0ZWQ6IExpbmVDaGFydFNldHRpbmdzKTogYW55IHtcclxuICAgIHJldHVybiBuZXcgTGluZUNoYXJ0U2VydmljZSh0aGlzLmFkYXB0ZXIsIHRoaXMuZGF0ZVNlcnZpY2UpLmdyYXBoaWNhdGUoPExpbmVDaGFydERhdGE+dGhpcy5EYXRhLCBzZXR0aW5nc0Nhc3RlZCk7XHJcbiAgfVxyXG59IiwiPGNoYXJ0LXBhZ2VyICpuZ0lmPVwiaXNQYWdlZFwiIChvblBhZ2VDaGFuZ2UpPVwiY2hhbmdlUGFnZSgkZXZlbnQpXCIgW0l0ZW1zXT1cIkRhdGFBcnJheVwiIFtEdG9zXT1cIkRhdGFEdG9zXCIgW1N0YXJ0SW5kZXhdPVwiRGF0YUR0b1N0YXJ0SW5kZXhcIlxyXG4gICAgW0Jyb3dzZURlbGF5TXNdPVwiQnJvd3NlRGVsYXlNc1wiPlxyXG4gICAgPG5nLXRlbXBsYXRlICNoZWFkZXJfaW5uZXIgbGV0LWhlYWRlckl0ZW0+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImhlYWRlcl90cjsgY29udGV4dCA6IHskaW1wbGljaXQ6IGhlYWRlckl0ZW19XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG48L2NoYXJ0LXBhZ2VyPlxyXG5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvYWRpbmdDaGFydCAmJiBsb2FkaW5nX3RlbXBsYXRlXCI+XHJcbiAgICA8ZGl2IHN0eWxlPVwid2lkdGg6IDEwMCU7XCIgW3N0eWxlLmhlaWdodF09XCJpc1BhZ2VkID8gJ2NhbGMoMTAwJSAtIDQ0cHgpJyA6ICcxMDAlJ1wiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2FkaW5nX3RlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG48bmctY29udGFpbmVyICpuZ0lmPVwibG9hZGluZ0NoYXJ0ICYmICFsb2FkaW5nX3RlbXBsYXRlXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZXNjLWxvYWRpbmctb3ZlcmxheVwiIHN0eWxlPVwid2lkdGg6IDEwMCU7XCIgW3N0eWxlLmhlaWdodF09XCJpc1BhZ2VkID8gJ2NhbGMoMTAwJSAtIDQ0cHgpJyA6ICcxMDAlJ1wiPlxyXG4gICAgICAgIDxwIGNsYXNzPVwibGFiZWxcIj5Mb2FkaW5nLi4uLjwvcD5cclxuICAgIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxkaXYgW2NsYXNzLmhpZGUtYmxvY2tdPVwibG9hZGluZ0NoYXJ0XCIgaWQ9XCJ7e25hbWV9fVwiIHN0eWxlPVwid2lkdGg6IDEwMCU7XCIgW3N0eWxlLmhlaWdodF09XCJpc1BhZ2VkID8gJ2NhbGMoMTAwJSAtIDQ0cHgpJyA6ICcxMDAlJ1wiPjwvZGl2PiJdfQ==
|
|
@@ -1,98 +1,98 @@
|
|
|
1
|
-
import { Component, Input, Inject, PLATFORM_ID, ChangeDetectionStrategy } from '@angular/core';
|
|
2
|
-
import { ESC_ANIMATIONS, ESC_THEME, ESC_DEBUG_MODE } from '../../tokens';
|
|
3
|
-
import { BaseChartComponent } from '../base/base-chart.component';
|
|
4
|
-
import { PieChartSettings } from '../../models/settings/PieChartSettings';
|
|
5
|
-
import { PieChartService } from '../../services/PieChartService';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "../../models/core/ChartLoader";
|
|
8
|
-
import * as i2 from "../../models/core/ChartDispatcher";
|
|
9
|
-
import * as i3 from "../../adapters/BaseAdapter";
|
|
10
|
-
import * as i4 from "@esfaenza/localizations";
|
|
11
|
-
import * as i5 from "@angular/common";
|
|
12
|
-
import * as i6 from "../chart-pager/chart-pager.component";
|
|
13
|
-
/**
|
|
14
|
-
* Componente specifico per la graficazione di un grafico a Torta
|
|
15
|
-
*/
|
|
16
|
-
export class EsPieChartComponent extends BaseChartComponent {
|
|
17
|
-
/**
|
|
18
|
-
* @ignore
|
|
19
|
-
*/
|
|
20
|
-
constructor(el, ChartLoader, ChartDispatcher, adapter, zone, platformId, ESC_DEBUG_MODE, ESC_ANIMATIONS, ESC_THEME, lc) {
|
|
21
|
-
super(el, platformId, zone, ChartLoader, ChartDispatcher, ESC_DEBUG_MODE, ESC_ANIMATIONS, lc.Locale, ESC_THEME);
|
|
22
|
-
this.adapter = adapter;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Ottiene le proprietà specifiche per questa tipologia di grafico per cui serve rigraficare
|
|
26
|
-
*/
|
|
27
|
-
getSpecificPropertiesToCheck() {
|
|
28
|
-
return ["Data", "DataArray", "HideZeroes", "Mode3D", "LabelsWrap", "LabelsTruncate", "LabelsWidth", "LabelsVisible"];
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Ottiene i Settings (Ereditati dalla classe base, quindi del tipo generico **BaseSettings**) castati al tipo specifico per questo grafico
|
|
32
|
-
*
|
|
33
|
-
* @returns {PieChartSettings} Settings castati al tipo giusto
|
|
34
|
-
*/
|
|
35
|
-
getCastedSettings() {
|
|
36
|
-
return (this.Settings ?? new PieChartSettings());
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Integra i Settings base con tutti gli Input specifici di questo grafico, dando priorità ai Settings se definiti
|
|
40
|
-
*
|
|
41
|
-
* @param {PieChartSettings} settingsCasted Settings castati al tipo giusto
|
|
42
|
-
*/
|
|
43
|
-
fillSpecificSettings(settingsCasted) {
|
|
44
|
-
settingsCasted.HideZeroes = settingsCasted.HideZeroes != null ? settingsCasted.HideZeroes : this.HideZeroes;
|
|
45
|
-
settingsCasted.Mode3D = settingsCasted.Mode3D != null ? settingsCasted.Mode3D : this.Mode3D;
|
|
46
|
-
settingsCasted.DonutRadiusPercentage = settingsCasted.DonutRadiusPercentage != null ? settingsCasted.DonutRadiusPercentage : this.DonutRadiusPercentage;
|
|
47
|
-
settingsCasted.LabelsWrap = settingsCasted.LabelsWrap != null ? settingsCasted.LabelsWrap : this.LabelsWrap;
|
|
48
|
-
settingsCasted.LabelsTruncate = settingsCasted.LabelsTruncate != null ? settingsCasted.LabelsTruncate : this.LabelsTruncate;
|
|
49
|
-
settingsCasted.LabelsWidth = settingsCasted.LabelsWidth != null ? settingsCasted.LabelsWidth : this.LabelsWidth;
|
|
50
|
-
settingsCasted.LabelsVisible = settingsCasted.LabelsVisible != null ? settingsCasted.LabelsVisible : this.LabelsVisible;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Effettua il rendering di questo grafico in base ai Settings
|
|
54
|
-
*
|
|
55
|
-
* @param {PieChartSettings} settingsCasted Impostazioni di graficazione
|
|
56
|
-
* @returns {PieChartService} La service utilizzata per il rendering nello stato subito successivo al rendering effettuato
|
|
57
|
-
*/
|
|
58
|
-
graphicate(settingsCasted) {
|
|
59
|
-
return new PieChartService(this.adapter).graphicate(this.Data, settingsCasted);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
65
|
-
type: Component,
|
|
66
|
-
args: [{ selector: 'es-pie-chart', changeDetection: ChangeDetectionStrategy.OnPush, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background
|
|
67
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.ChartLoader }, { type: i2.ChartDispatcher }, { type: i3.BaseAdapter }, { type: i0.NgZone }, { type: Object, decorators: [{
|
|
68
|
-
type: Inject,
|
|
69
|
-
args: [PLATFORM_ID]
|
|
70
|
-
}] }, { type: undefined, decorators: [{
|
|
71
|
-
type: Inject,
|
|
72
|
-
args: [ESC_DEBUG_MODE]
|
|
73
|
-
}] }, { type: undefined, decorators: [{
|
|
74
|
-
type: Inject,
|
|
75
|
-
args: [ESC_ANIMATIONS]
|
|
76
|
-
}] }, { type: undefined, decorators: [{
|
|
77
|
-
type: Inject,
|
|
78
|
-
args: [ESC_THEME]
|
|
79
|
-
}] }, { type: i4.LocalizationService }]; }, propDecorators: { Data: [{
|
|
80
|
-
type: Input
|
|
81
|
-
}], DataArray: [{
|
|
82
|
-
type: Input
|
|
83
|
-
}], HideZeroes: [{
|
|
84
|
-
type: Input
|
|
85
|
-
}], Mode3D: [{
|
|
86
|
-
type: Input
|
|
87
|
-
}], DonutRadiusPercentage: [{
|
|
88
|
-
type: Input
|
|
89
|
-
}], LabelsWrap: [{
|
|
90
|
-
type: Input
|
|
91
|
-
}], LabelsTruncate: [{
|
|
92
|
-
type: Input
|
|
93
|
-
}], LabelsWidth: [{
|
|
94
|
-
type: Input
|
|
95
|
-
}], LabelsVisible: [{
|
|
96
|
-
type: Input
|
|
97
|
-
}] } });
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXMtcGllLWNoYXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VzLWNoYXJ0cy9zcmMvbGliL2NvbXBvbmVudHMvc3BlY2lhbGl6YXRpb25zL2VzLXBpZS1jaGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcy1jaGFydHMvc3JjL2xpYi9jb21wb25lbnRzL2Jhc2UvYmFzZS1jaGFydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFVLHVCQUF1QixFQUFjLE1BQU0sZUFBZSxDQUFDO0FBSW5ILE9BQU8sRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUlsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7O0FBSWpFOztHQUVHO0FBT0gsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGtCQUFrQjtJQStDekQ7O09BRUc7SUFDSCxZQUFZLEVBQWMsRUFBRSxXQUF3QixFQUFFLGVBQWdDLEVBQVUsT0FBb0IsRUFBRSxJQUFZLEVBQzNHLFVBQWtCLEVBQ2YsY0FBdUIsRUFDdkIsY0FBdUIsRUFDNUIsU0FBaUIsRUFDcEMsRUFBdUI7UUFDdkIsS0FBSyxDQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBTmxCLFlBQU8sR0FBUCxPQUFPLENBQWE7SUFPcEgsQ0FBQztJQUVEOztPQUVHO0lBQ0gsNEJBQTRCO1FBQzFCLE9BQU8sQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxlQUFlLENBQUMsQ0FBQztJQUN2SCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGlCQUFpQjtRQUNmLE9BQXlCLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILG9CQUFvQixDQUFDLGNBQWdDO1FBQ25ELGNBQWMsQ0FBQyxVQUFVLEdBQUcsY0FBYyxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDNUcsY0FBYyxDQUFDLE1BQU0sR0FBRyxjQUFjLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUM1RixjQUFjLENBQUMscUJBQXFCLEdBQUcsY0FBYyxDQUFDLHFCQUFxQixJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUM7UUFDeEosY0FBYyxDQUFDLFVBQVUsR0FBRyxjQUFjLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUM1RyxjQUFjLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQzVILGNBQWMsQ0FBQyxXQUFXLEdBQUcsY0FBYyxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDaEgsY0FBYyxDQUFDLGFBQWEsR0FBRyxjQUFjLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUMxSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxVQUFVLENBQUMsY0FBZ0M7UUFDekMsT0FBTyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFlLElBQUksQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDL0YsQ0FBQzs7Z0hBbEdVLG1CQUFtQix1SkFtRHBCLFdBQVcsYUFDWCxjQUFjLGFBQ2QsY0FBYyxhQUNkLFNBQVM7b0dBdERSLG1CQUFtQixpVkN4QmhDLHdqQ0FtQndJOzJGREszSCxtQkFBbUI7a0JBTi9CLFNBQVM7K0JBQ0UsY0FBYyxtQkFHUCx1QkFBdUIsQ0FBQyxNQUFNOzswQkFxRDVDLE1BQU07MkJBQUMsV0FBVzs7MEJBQ2xCLE1BQU07MkJBQUMsY0FBYzs7MEJBQ3JCLE1BQU07MkJBQUMsY0FBYzs7MEJBQ3JCLE1BQU07MkJBQUMsU0FBUzs4RUFqRFYsSUFBSTtzQkFBWixLQUFLO2dCQUtHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBS0csVUFBVTtzQkFBbEIsS0FBSztnQkFLRyxNQUFNO3NCQUFkLEtBQUs7Z0JBS0kscUJBQXFCO3NCQUE3QixLQUFLO2dCQUtHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBS0csY0FBYztzQkFBdEIsS0FBSztnQkFLRyxXQUFXO3NCQUFuQixLQUFLO2dCQUtHLGFBQWE7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBJbmplY3QsIFBMQVRGT1JNX0lELCBOZ1pvbmUsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tICdAZXNmYWVuemEvbG9jYWxpemF0aW9ucyc7XHJcblxyXG5pbXBvcnQgeyBCYXNlQWRhcHRlciB9IGZyb20gJy4uLy4uL2FkYXB0ZXJzL0Jhc2VBZGFwdGVyJztcclxuaW1wb3J0IHsgRVNDX0FOSU1BVElPTlMsIEVTQ19USEVNRSwgRVNDX0RFQlVHX01PREUgfSBmcm9tICcuLi8uLi90b2tlbnMnO1xyXG5cclxuaW1wb3J0IHsgQmFzZUNoYXJ0Q29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS9iYXNlLWNoYXJ0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENoYXJ0TG9hZGVyIH0gZnJvbSBcIi4uLy4uL21vZGVscy9jb3JlL0NoYXJ0TG9hZGVyXCI7XHJcbmltcG9ydCB7IENoYXJ0RGlzcGF0Y2hlciB9IGZyb20gXCIuLi8uLi9tb2RlbHMvY29yZS9DaGFydERpc3BhdGNoZXJcIjtcclxuXHJcbmltcG9ydCB7IFBpZUNoYXJ0U2V0dGluZ3MgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2V0dGluZ3MvUGllQ2hhcnRTZXR0aW5ncyc7XHJcbmltcG9ydCB7IFBpZUNoYXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL1BpZUNoYXJ0U2VydmljZSc7XHJcbmltcG9ydCB7IFBpZUNoYXJ0RGF0YSB9IGZyb20gJy4uLy4uL21vZGVscy9kYXRhL1BpZUNoYXJ0RGF0YSc7XHJcbmltcG9ydCB7IFBhZ2VkQ2hhcnREYXRhIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2RhdGEvUGFnZWRDaGFydERhdGEnO1xyXG5cclxuLyoqXHJcbiAqIENvbXBvbmVudGUgc3BlY2lmaWNvIHBlciBsYSBncmFmaWNhemlvbmUgZGkgdW4gZ3JhZmljbyBhIFRvcnRhXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VzLXBpZS1jaGFydCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuLi9iYXNlL2Jhc2UtY2hhcnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuLi9iYXNlL2Jhc2UtY2hhcnQuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXNQaWVDaGFydENvbXBvbmVudCBleHRlbmRzIEJhc2VDaGFydENvbXBvbmVudCB7XHJcblxyXG4gIC8qKlxyXG4gICAqIERhdGkgc3BlY2lmaWNpIHBlciBpbCBncmFmaWNvIG8gZGkgdW4gdGlwbyB0cmFtdXRhYmlsZSBhbCB0aXBvICoqUGllQ2hhcnREYXRhKiogY29sIHN1cHBvcnRvIGRlbCAqKkJhc2VBZGFwdGVyKipcclxuICAgKi9cclxuICBASW5wdXQoKSBEYXRhOiBQaWVDaGFydERhdGEgfCBhbnk7XHJcblxyXG4gIC8qKlxyXG4gICAqIExpc3RhIGRpIERhdGkgc3BlY2lmaWNpIHBlciB1biBncmFmaWNvIHBhZ2luYXRvIG8gZGkgY3VpIG9nbmkgYmxvY2NvIGRhdGkgw6ggdHJhbXV0YWJpbGUgYWwgdGlwbyAqKlBpZUNoYXJ0RGF0YSoqIGNvbCBzdXBwb3J0byBkZWwgKipCYXNlQWRhcHRlcioqXHJcbiAgICovXHJcbiAgQElucHV0KCkgRGF0YUFycmF5OiBQYWdlZENoYXJ0RGF0YTxQaWVDaGFydERhdGE+W10gfCBQYWdlZENoYXJ0RGF0YTxhbnk+W107XHJcblxyXG4gIC8qKlxyXG4gICAqIEluZGljYSBzZSBtb3N0cmFyZSBvIG1lbm8gbGUgc2VyaWUgY29uIHBlcmNlbnR1YWxlIGEgMFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEhpZGVaZXJvZXM6IGJvb2xlYW47XHJcblxyXG4gIC8qKlxyXG4gICAqIEluZGljYSBzZSBhcHBhcmlyZSBpbiBtb2RhbGl0w6AgM0QgbyAyRFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIE1vZGUzRDogYm9vbGVhbjtcclxuXHJcbiAgLyoqXHJcbiAgICogUGVyY2VudHVhbGUgZGVsbCdhbHRlenphIGRlbCBncmFmaWNvIGNoZSB2aWVuZSB1dGlsaXp6YXRhIHBlciBjcmVhcmUgaWwgYnVjbyBhbGwnaW50ZXJubyBkZWxsYSBjaWFtYmVsbGEgKip3aW5rKiogKip3aW5rKipcclxuICAgKi9cclxuICAgQElucHV0KCkgRG9udXRSYWRpdXNQZXJjZW50YWdlOiBudW1iZXI7XHJcblxyXG4gIC8qKlxyXG4gICAqIEluZGljYSBzZSB3cmFwcGFyZSBsZSBsYWJlbCBjaGUgbm9uIHN0YW5ubyBuZWwgY29udGVuaXRvcmVcclxuICAgKi9cclxuICAgQElucHV0KCkgTGFiZWxzV3JhcDogYm9vbGVhbjtcclxuXHJcbiAgLyoqXHJcbiAgICogSW5kaWNhIHNlIHRyb25jYXJlIGxlIGxhYmVsIGNoZSBub24gc3Rhbm5vIG5lbCBjb250ZW5pdG9yZVxyXG4gICAqL1xyXG4gICBASW5wdXQoKSBMYWJlbHNUcnVuY2F0ZTogYm9vbGVhbjtcclxuXHJcbiAgLyoqXHJcbiAgICogSW5kaWNhIGxhIGRpbWVuc2lvbmUgbWFzc2ltYSBjaGUgcG9zc29ubyBhc3N1bWVyZSBsZSBsYWJlbFxyXG4gICAqL1xyXG4gICBASW5wdXQoKSBMYWJlbHNXaWR0aDogbnVtYmVyO1xyXG5cclxuICAvKipcclxuICAgKiBJbmRpY2Egc2UgbW9zdHJhcmUgbyBtZW5vIGxlIGxhYmVsc1xyXG4gICAqL1xyXG4gICBASW5wdXQoKSBMYWJlbHNWaXNpYmxlOiBib29sZWFuO1xyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoZWw6IEVsZW1lbnRSZWYsIENoYXJ0TG9hZGVyOiBDaGFydExvYWRlciwgQ2hhcnREaXNwYXRjaGVyOiBDaGFydERpc3BhdGNoZXIsIHByaXZhdGUgYWRhcHRlcjogQmFzZUFkYXB0ZXIsIHpvbmU6IE5nWm9uZSxcclxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHBsYXRmb3JtSWQ6IE9iamVjdCxcclxuICAgIEBJbmplY3QoRVNDX0RFQlVHX01PREUpIEVTQ19ERUJVR19NT0RFOiBib29sZWFuLFxyXG4gICAgQEluamVjdChFU0NfQU5JTUFUSU9OUykgRVNDX0FOSU1BVElPTlM6IGJvb2xlYW4sXHJcbiAgICBASW5qZWN0KEVTQ19USEVNRSkgRVNDX1RIRU1FOiBzdHJpbmcsXHJcbiAgICBsYzogTG9jYWxpemF0aW9uU2VydmljZSkge1xyXG4gICAgc3VwZXIoZWwsIHBsYXRmb3JtSWQsIHpvbmUsIENoYXJ0TG9hZGVyLCBDaGFydERpc3BhdGNoZXIsIEVTQ19ERUJVR19NT0RFLCBFU0NfQU5JTUFUSU9OUywgbGMuTG9jYWxlLCBFU0NfVEhFTUUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT3R0aWVuZSBsZSBwcm9wcmlldMOgIHNwZWNpZmljaGUgcGVyIHF1ZXN0YSB0aXBvbG9naWEgZGkgZ3JhZmljbyBwZXIgY3VpIHNlcnZlIHJpZ3JhZmljYXJlXHJcbiAgICovXHJcbiAgZ2V0U3BlY2lmaWNQcm9wZXJ0aWVzVG9DaGVjaygpOiBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gW1wiRGF0YVwiLCBcIkRhdGFBcnJheVwiLCBcIkhpZGVaZXJvZXNcIiwgXCJNb2RlM0RcIiwgXCJMYWJlbHNXcmFwXCIsIFwiTGFiZWxzVHJ1bmNhdGVcIiwgXCJMYWJlbHNXaWR0aFwiLCBcIkxhYmVsc1Zpc2libGVcIl07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPdHRpZW5lIGkgU2V0dGluZ3MgKEVyZWRpdGF0aSBkYWxsYSBjbGFzc2UgYmFzZSwgcXVpbmRpIGRlbCB0aXBvIGdlbmVyaWNvICoqQmFzZVNldHRpbmdzKiopIGNhc3RhdGkgYWwgdGlwbyBzcGVjaWZpY28gcGVyIHF1ZXN0byBncmFmaWNvXHJcbiAgICogXHJcbiAgICogQHJldHVybnMge1BpZUNoYXJ0U2V0dGluZ3N9IFNldHRpbmdzIGNhc3RhdGkgYWwgdGlwbyBnaXVzdG9cclxuICAgKi9cclxuICBnZXRDYXN0ZWRTZXR0aW5ncygpOiBQaWVDaGFydFNldHRpbmdzIHtcclxuICAgIHJldHVybiA8UGllQ2hhcnRTZXR0aW5ncz4odGhpcy5TZXR0aW5ncyA/PyBuZXcgUGllQ2hhcnRTZXR0aW5ncygpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEludGVncmEgaSBTZXR0aW5ncyBiYXNlIGNvbiB0dXR0aSBnbGkgSW5wdXQgc3BlY2lmaWNpIGRpIHF1ZXN0byBncmFmaWNvLCBkYW5kbyBwcmlvcml0w6AgYWkgU2V0dGluZ3Mgc2UgZGVmaW5pdGlcclxuICAgKiBcclxuICAgKiBAcGFyYW0ge1BpZUNoYXJ0U2V0dGluZ3N9IHNldHRpbmdzQ2FzdGVkIFNldHRpbmdzIGNhc3RhdGkgYWwgdGlwbyBnaXVzdG9cclxuICAgKi9cclxuICBmaWxsU3BlY2lmaWNTZXR0aW5ncyhzZXR0aW5nc0Nhc3RlZDogUGllQ2hhcnRTZXR0aW5ncyk6IHZvaWQge1xyXG4gICAgc2V0dGluZ3NDYXN0ZWQuSGlkZVplcm9lcyA9IHNldHRpbmdzQ2FzdGVkLkhpZGVaZXJvZXMgIT0gbnVsbCA/IHNldHRpbmdzQ2FzdGVkLkhpZGVaZXJvZXMgOiB0aGlzLkhpZGVaZXJvZXM7XHJcbiAgICBzZXR0aW5nc0Nhc3RlZC5Nb2RlM0QgPSBzZXR0aW5nc0Nhc3RlZC5Nb2RlM0QgIT0gbnVsbCA/IHNldHRpbmdzQ2FzdGVkLk1vZGUzRCA6IHRoaXMuTW9kZTNEO1xyXG4gICAgc2V0dGluZ3NDYXN0ZWQuRG9udXRSYWRpdXNQZXJjZW50YWdlID0gc2V0dGluZ3NDYXN0ZWQuRG9udXRSYWRpdXNQZXJjZW50YWdlICE9IG51bGwgPyBzZXR0aW5nc0Nhc3RlZC5Eb251dFJhZGl1c1BlcmNlbnRhZ2UgOiB0aGlzLkRvbnV0UmFkaXVzUGVyY2VudGFnZTtcclxuICAgIHNldHRpbmdzQ2FzdGVkLkxhYmVsc1dyYXAgPSBzZXR0aW5nc0Nhc3RlZC5MYWJlbHNXcmFwICE9IG51bGwgPyBzZXR0aW5nc0Nhc3RlZC5MYWJlbHNXcmFwIDogdGhpcy5MYWJlbHNXcmFwO1xyXG4gICAgc2V0dGluZ3NDYXN0ZWQuTGFiZWxzVHJ1bmNhdGUgPSBzZXR0aW5nc0Nhc3RlZC5MYWJlbHNUcnVuY2F0ZSAhPSBudWxsID8gc2V0dGluZ3NDYXN0ZWQuTGFiZWxzVHJ1bmNhdGUgOiB0aGlzLkxhYmVsc1RydW5jYXRlO1xyXG4gICAgc2V0dGluZ3NDYXN0ZWQuTGFiZWxzV2lkdGggPSBzZXR0aW5nc0Nhc3RlZC5MYWJlbHNXaWR0aCAhPSBudWxsID8gc2V0dGluZ3NDYXN0ZWQuTGFiZWxzV2lkdGggOiB0aGlzLkxhYmVsc1dpZHRoO1xyXG4gICAgc2V0dGluZ3NDYXN0ZWQuTGFiZWxzVmlzaWJsZSA9IHNldHRpbmdzQ2FzdGVkLkxhYmVsc1Zpc2libGUgIT0gbnVsbCA/IHNldHRpbmdzQ2FzdGVkLkxhYmVsc1Zpc2libGUgOiB0aGlzLkxhYmVsc1Zpc2libGU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFZmZldHR1YSBpbCByZW5kZXJpbmcgZGkgcXVlc3RvIGdyYWZpY28gaW4gYmFzZSBhaSBTZXR0aW5nc1xyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB7UGllQ2hhcnRTZXR0aW5nc30gc2V0dGluZ3NDYXN0ZWQgSW1wb3N0YXppb25pIGRpIGdyYWZpY2F6aW9uZVxyXG4gICAqIEByZXR1cm5zIHtQaWVDaGFydFNlcnZpY2V9IExhIHNlcnZpY2UgdXRpbGl6emF0YSBwZXIgaWwgcmVuZGVyaW5nIG5lbGxvIHN0YXRvIHN1Yml0byBzdWNjZXNzaXZvIGFsIHJlbmRlcmluZyBlZmZldHR1YXRvXHJcbiAgICovXHJcbiAgZ3JhcGhpY2F0ZShzZXR0aW5nc0Nhc3RlZDogUGllQ2hhcnRTZXR0aW5ncyk6IGFueSB7XHJcbiAgICByZXR1cm4gbmV3IFBpZUNoYXJ0U2VydmljZSh0aGlzLmFkYXB0ZXIpLmdyYXBoaWNhdGUoPFBpZUNoYXJ0RGF0YT50aGlzLkRhdGEsIHNldHRpbmdzQ2FzdGVkKTtcclxuICB9XHJcbn0iLCI8Y2hhcnQtcGFnZXIgKm5nSWY9XCJpc1BhZ2VkXCIgKG9uUGFnZUNoYW5nZSk9XCJjaGFuZ2VQYWdlKCRldmVudClcIiBbSXRlbXNdPVwiRGF0YUFycmF5XCIgW0R0b3NdPVwiRGF0YUR0b3NcIiBbU3RhcnRJbmRleF09XCJEYXRhRHRvU3RhcnRJbmRleFwiXHJcbiAgICBbQnJvd3NlRGVsYXlNc109XCJCcm93c2VEZWxheU1zXCI+XHJcbiAgICA8bmctdGVtcGxhdGUgI2hlYWRlcl9pbm5lciBsZXQtaGVhZGVySXRlbT5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZGVyX3RyOyBjb250ZXh0IDogeyRpbXBsaWNpdDogaGVhZGVySXRlbX1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbjwvY2hhcnQtcGFnZXI+XHJcblxyXG48bmctY29udGFpbmVyICpuZ0lmPVwibG9hZGluZ0NoYXJ0ICYmIGxvYWRpbmdfdGVtcGxhdGVcIj5cclxuICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDogMTAwJTtcIiBbc3R5bGUuaGVpZ2h0XT1cImlzUGFnZWQgPyAnY2FsYygxMDAlIC0gNDRweCknIDogJzEwMCUnXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxvYWRpbmdfdGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJsb2FkaW5nQ2hhcnQgJiYgIWxvYWRpbmdfdGVtcGxhdGVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJlc2MtbG9hZGluZy1vdmVybGF5XCIgc3R5bGU9XCJ3aWR0aDogMTAwJTtcIiBbc3R5bGUuaGVpZ2h0XT1cImlzUGFnZWQgPyAnY2FsYygxMDAlIC0gNDRweCknIDogJzEwMCUnXCI+XHJcbiAgICAgICAgPHAgY2xhc3M9XCJsYWJlbFwiPkxvYWRpbmcuLi4uPC9wPlxyXG4gICAgPC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuPGRpdiBbY2xhc3MuaGlkZS1ibG9ja109XCJsb2FkaW5nQ2hhcnRcIiBpZD1cInt7bmFtZX19XCIgc3R5bGU9XCJ3aWR0aDogMTAwJTtcIiBbc3R5bGUuaGVpZ2h0XT1cImlzUGFnZWQgPyAnY2FsYygxMDAlIC0gNDRweCknIDogJzEwMCUnXCI+PC9kaXY+Il19
|
|
1
|
+
import { Component, Input, Inject, PLATFORM_ID, ChangeDetectionStrategy } from '@angular/core';
|
|
2
|
+
import { ESC_ANIMATIONS, ESC_THEME, ESC_DEBUG_MODE } from '../../tokens';
|
|
3
|
+
import { BaseChartComponent } from '../base/base-chart.component';
|
|
4
|
+
import { PieChartSettings } from '../../models/settings/PieChartSettings';
|
|
5
|
+
import { PieChartService } from '../../services/PieChartService';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "../../models/core/ChartLoader";
|
|
8
|
+
import * as i2 from "../../models/core/ChartDispatcher";
|
|
9
|
+
import * as i3 from "../../adapters/BaseAdapter";
|
|
10
|
+
import * as i4 from "@esfaenza/localizations";
|
|
11
|
+
import * as i5 from "@angular/common";
|
|
12
|
+
import * as i6 from "../chart-pager/chart-pager.component";
|
|
13
|
+
/**
|
|
14
|
+
* Componente specifico per la graficazione di un grafico a Torta
|
|
15
|
+
*/
|
|
16
|
+
export class EsPieChartComponent extends BaseChartComponent {
|
|
17
|
+
/**
|
|
18
|
+
* @ignore
|
|
19
|
+
*/
|
|
20
|
+
constructor(el, ChartLoader, ChartDispatcher, adapter, zone, platformId, ESC_DEBUG_MODE, ESC_ANIMATIONS, ESC_THEME, lc) {
|
|
21
|
+
super(el, platformId, zone, ChartLoader, ChartDispatcher, ESC_DEBUG_MODE, ESC_ANIMATIONS, lc.Locale, ESC_THEME);
|
|
22
|
+
this.adapter = adapter;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Ottiene le proprietà specifiche per questa tipologia di grafico per cui serve rigraficare
|
|
26
|
+
*/
|
|
27
|
+
getSpecificPropertiesToCheck() {
|
|
28
|
+
return ["Data", "DataArray", "HideZeroes", "Mode3D", "LabelsWrap", "LabelsTruncate", "LabelsWidth", "LabelsVisible"];
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Ottiene i Settings (Ereditati dalla classe base, quindi del tipo generico **BaseSettings**) castati al tipo specifico per questo grafico
|
|
32
|
+
*
|
|
33
|
+
* @returns {PieChartSettings} Settings castati al tipo giusto
|
|
34
|
+
*/
|
|
35
|
+
getCastedSettings() {
|
|
36
|
+
return (this.Settings ?? new PieChartSettings());
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Integra i Settings base con tutti gli Input specifici di questo grafico, dando priorità ai Settings se definiti
|
|
40
|
+
*
|
|
41
|
+
* @param {PieChartSettings} settingsCasted Settings castati al tipo giusto
|
|
42
|
+
*/
|
|
43
|
+
fillSpecificSettings(settingsCasted) {
|
|
44
|
+
settingsCasted.HideZeroes = settingsCasted.HideZeroes != null ? settingsCasted.HideZeroes : this.HideZeroes;
|
|
45
|
+
settingsCasted.Mode3D = settingsCasted.Mode3D != null ? settingsCasted.Mode3D : this.Mode3D;
|
|
46
|
+
settingsCasted.DonutRadiusPercentage = settingsCasted.DonutRadiusPercentage != null ? settingsCasted.DonutRadiusPercentage : this.DonutRadiusPercentage;
|
|
47
|
+
settingsCasted.LabelsWrap = settingsCasted.LabelsWrap != null ? settingsCasted.LabelsWrap : this.LabelsWrap;
|
|
48
|
+
settingsCasted.LabelsTruncate = settingsCasted.LabelsTruncate != null ? settingsCasted.LabelsTruncate : this.LabelsTruncate;
|
|
49
|
+
settingsCasted.LabelsWidth = settingsCasted.LabelsWidth != null ? settingsCasted.LabelsWidth : this.LabelsWidth;
|
|
50
|
+
settingsCasted.LabelsVisible = settingsCasted.LabelsVisible != null ? settingsCasted.LabelsVisible : this.LabelsVisible;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Effettua il rendering di questo grafico in base ai Settings
|
|
54
|
+
*
|
|
55
|
+
* @param {PieChartSettings} settingsCasted Impostazioni di graficazione
|
|
56
|
+
* @returns {PieChartService} La service utilizzata per il rendering nello stato subito successivo al rendering effettuato
|
|
57
|
+
*/
|
|
58
|
+
graphicate(settingsCasted) {
|
|
59
|
+
return new PieChartService(this.adapter).graphicate(this.Data, settingsCasted);
|
|
60
|
+
}
|
|
61
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EsPieChartComponent, deps: [{ token: i0.ElementRef }, { token: i1.ChartLoader }, { token: i2.ChartDispatcher }, { token: i3.BaseAdapter }, { token: i0.NgZone }, { token: PLATFORM_ID }, { token: ESC_DEBUG_MODE }, { token: ESC_ANIMATIONS }, { token: ESC_THEME }, { token: i4.LocalizationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
62
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EsPieChartComponent, selector: "es-pie-chart", inputs: { Data: "Data", DataArray: "DataArray", HideZeroes: "HideZeroes", Mode3D: "Mode3D", DonutRadiusPercentage: "DonutRadiusPercentage", LabelsWrap: "LabelsWrap", LabelsTruncate: "LabelsTruncate", LabelsWidth: "LabelsWidth", LabelsVisible: "LabelsVisible" }, usesInheritance: true, ngImport: i0, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i6.PageChartSelector, selector: "chart-pager", inputs: ["Items", "Dtos", "BrowseDelayMs", "StartIndex"], outputs: ["onPageChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
63
|
+
}
|
|
64
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EsPieChartComponent, decorators: [{
|
|
65
|
+
type: Component,
|
|
66
|
+
args: [{ selector: 'es-pie-chart', changeDetection: ChangeDetectionStrategy.OnPush, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"] }]
|
|
67
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.ChartLoader }, { type: i2.ChartDispatcher }, { type: i3.BaseAdapter }, { type: i0.NgZone }, { type: Object, decorators: [{
|
|
68
|
+
type: Inject,
|
|
69
|
+
args: [PLATFORM_ID]
|
|
70
|
+
}] }, { type: undefined, decorators: [{
|
|
71
|
+
type: Inject,
|
|
72
|
+
args: [ESC_DEBUG_MODE]
|
|
73
|
+
}] }, { type: undefined, decorators: [{
|
|
74
|
+
type: Inject,
|
|
75
|
+
args: [ESC_ANIMATIONS]
|
|
76
|
+
}] }, { type: undefined, decorators: [{
|
|
77
|
+
type: Inject,
|
|
78
|
+
args: [ESC_THEME]
|
|
79
|
+
}] }, { type: i4.LocalizationService }]; }, propDecorators: { Data: [{
|
|
80
|
+
type: Input
|
|
81
|
+
}], DataArray: [{
|
|
82
|
+
type: Input
|
|
83
|
+
}], HideZeroes: [{
|
|
84
|
+
type: Input
|
|
85
|
+
}], Mode3D: [{
|
|
86
|
+
type: Input
|
|
87
|
+
}], DonutRadiusPercentage: [{
|
|
88
|
+
type: Input
|
|
89
|
+
}], LabelsWrap: [{
|
|
90
|
+
type: Input
|
|
91
|
+
}], LabelsTruncate: [{
|
|
92
|
+
type: Input
|
|
93
|
+
}], LabelsWidth: [{
|
|
94
|
+
type: Input
|
|
95
|
+
}], LabelsVisible: [{
|
|
96
|
+
type: Input
|
|
97
|
+
}] } });
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXMtcGllLWNoYXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VzLWNoYXJ0cy9zcmMvbGliL2NvbXBvbmVudHMvc3BlY2lhbGl6YXRpb25zL2VzLXBpZS1jaGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcy1jaGFydHMvc3JjL2xpYi9jb21wb25lbnRzL2Jhc2UvYmFzZS1jaGFydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFVLHVCQUF1QixFQUFjLE1BQU0sZUFBZSxDQUFDO0FBSW5ILE9BQU8sRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUlsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7O0FBSWpFOztHQUVHO0FBT0gsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGtCQUFrQjtJQStDekQ7O09BRUc7SUFDSCxZQUFZLEVBQWMsRUFBRSxXQUF3QixFQUFFLGVBQWdDLEVBQVUsT0FBb0IsRUFBRSxJQUFZLEVBQzNHLFVBQWtCLEVBQ2YsY0FBdUIsRUFDdkIsY0FBdUIsRUFDNUIsU0FBaUIsRUFDcEMsRUFBdUI7UUFDdkIsS0FBSyxDQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBTmxCLFlBQU8sR0FBUCxPQUFPLENBQWE7SUFPcEgsQ0FBQztJQUVEOztPQUVHO0lBQ0gsNEJBQTRCO1FBQzFCLE9BQU8sQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxlQUFlLENBQUMsQ0FBQztJQUN2SCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGlCQUFpQjtRQUNmLE9BQXlCLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILG9CQUFvQixDQUFDLGNBQWdDO1FBQ25ELGNBQWMsQ0FBQyxVQUFVLEdBQUcsY0FBYyxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDNUcsY0FBYyxDQUFDLE1BQU0sR0FBRyxjQUFjLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUM1RixjQUFjLENBQUMscUJBQXFCLEdBQUcsY0FBYyxDQUFDLHFCQUFxQixJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUM7UUFDeEosY0FBYyxDQUFDLFVBQVUsR0FBRyxjQUFjLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUM1RyxjQUFjLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQzVILGNBQWMsQ0FBQyxXQUFXLEdBQUcsY0FBYyxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDaEgsY0FBYyxDQUFDLGFBQWEsR0FBRyxjQUFjLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUMxSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxVQUFVLENBQUMsY0FBZ0M7UUFDekMsT0FBTyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFlLElBQUksQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDL0YsQ0FBQzsrR0FsR1UsbUJBQW1CLHVKQW1EcEIsV0FBVyxhQUNYLGNBQWMsYUFDZCxjQUFjLGFBQ2QsU0FBUzttR0F0RFIsbUJBQW1CLGlWQ3hCaEMsd2pDQW1Cd0k7OzRGREszSCxtQkFBbUI7a0JBTi9CLFNBQVM7K0JBQ0UsY0FBYyxtQkFHUCx1QkFBdUIsQ0FBQyxNQUFNOzswQkFxRDVDLE1BQU07MkJBQUMsV0FBVzs7MEJBQ2xCLE1BQU07MkJBQUMsY0FBYzs7MEJBQ3JCLE1BQU07MkJBQUMsY0FBYzs7MEJBQ3JCLE1BQU07MkJBQUMsU0FBUzs4RUFqRFYsSUFBSTtzQkFBWixLQUFLO2dCQUtHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBS0csVUFBVTtzQkFBbEIsS0FBSztnQkFLRyxNQUFNO3NCQUFkLEtBQUs7Z0JBS0kscUJBQXFCO3NCQUE3QixLQUFLO2dCQUtHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBS0csY0FBYztzQkFBdEIsS0FBSztnQkFLRyxXQUFXO3NCQUFuQixLQUFLO2dCQUtHLGFBQWE7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBJbmplY3QsIFBMQVRGT1JNX0lELCBOZ1pvbmUsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tICdAZXNmYWVuemEvbG9jYWxpemF0aW9ucyc7XHJcblxyXG5pbXBvcnQgeyBCYXNlQWRhcHRlciB9IGZyb20gJy4uLy4uL2FkYXB0ZXJzL0Jhc2VBZGFwdGVyJztcclxuaW1wb3J0IHsgRVNDX0FOSU1BVElPTlMsIEVTQ19USEVNRSwgRVNDX0RFQlVHX01PREUgfSBmcm9tICcuLi8uLi90b2tlbnMnO1xyXG5cclxuaW1wb3J0IHsgQmFzZUNoYXJ0Q29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS9iYXNlLWNoYXJ0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENoYXJ0TG9hZGVyIH0gZnJvbSBcIi4uLy4uL21vZGVscy9jb3JlL0NoYXJ0TG9hZGVyXCI7XHJcbmltcG9ydCB7IENoYXJ0RGlzcGF0Y2hlciB9IGZyb20gXCIuLi8uLi9tb2RlbHMvY29yZS9DaGFydERpc3BhdGNoZXJcIjtcclxuXHJcbmltcG9ydCB7IFBpZUNoYXJ0U2V0dGluZ3MgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2V0dGluZ3MvUGllQ2hhcnRTZXR0aW5ncyc7XHJcbmltcG9ydCB7IFBpZUNoYXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL1BpZUNoYXJ0U2VydmljZSc7XHJcbmltcG9ydCB7IFBpZUNoYXJ0RGF0YSB9IGZyb20gJy4uLy4uL21vZGVscy9kYXRhL1BpZUNoYXJ0RGF0YSc7XHJcbmltcG9ydCB7IFBhZ2VkQ2hhcnREYXRhIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2RhdGEvUGFnZWRDaGFydERhdGEnO1xyXG5cclxuLyoqXHJcbiAqIENvbXBvbmVudGUgc3BlY2lmaWNvIHBlciBsYSBncmFmaWNhemlvbmUgZGkgdW4gZ3JhZmljbyBhIFRvcnRhXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VzLXBpZS1jaGFydCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuLi9iYXNlL2Jhc2UtY2hhcnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuLi9iYXNlL2Jhc2UtY2hhcnQuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXNQaWVDaGFydENvbXBvbmVudCBleHRlbmRzIEJhc2VDaGFydENvbXBvbmVudCB7XHJcblxyXG4gIC8qKlxyXG4gICAqIERhdGkgc3BlY2lmaWNpIHBlciBpbCBncmFmaWNvIG8gZGkgdW4gdGlwbyB0cmFtdXRhYmlsZSBhbCB0aXBvICoqUGllQ2hhcnREYXRhKiogY29sIHN1cHBvcnRvIGRlbCAqKkJhc2VBZGFwdGVyKipcclxuICAgKi9cclxuICBASW5wdXQoKSBEYXRhOiBQaWVDaGFydERhdGEgfCBhbnk7XHJcblxyXG4gIC8qKlxyXG4gICAqIExpc3RhIGRpIERhdGkgc3BlY2lmaWNpIHBlciB1biBncmFmaWNvIHBhZ2luYXRvIG8gZGkgY3VpIG9nbmkgYmxvY2NvIGRhdGkgw6ggdHJhbXV0YWJpbGUgYWwgdGlwbyAqKlBpZUNoYXJ0RGF0YSoqIGNvbCBzdXBwb3J0byBkZWwgKipCYXNlQWRhcHRlcioqXHJcbiAgICovXHJcbiAgQElucHV0KCkgRGF0YUFycmF5OiBQYWdlZENoYXJ0RGF0YTxQaWVDaGFydERhdGE+W10gfCBQYWdlZENoYXJ0RGF0YTxhbnk+W107XHJcblxyXG4gIC8qKlxyXG4gICAqIEluZGljYSBzZSBtb3N0cmFyZSBvIG1lbm8gbGUgc2VyaWUgY29uIHBlcmNlbnR1YWxlIGEgMFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEhpZGVaZXJvZXM6IGJvb2xlYW47XHJcblxyXG4gIC8qKlxyXG4gICAqIEluZGljYSBzZSBhcHBhcmlyZSBpbiBtb2RhbGl0w6AgM0QgbyAyRFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIE1vZGUzRDogYm9vbGVhbjtcclxuXHJcbiAgLyoqXHJcbiAgICogUGVyY2VudHVhbGUgZGVsbCdhbHRlenphIGRlbCBncmFmaWNvIGNoZSB2aWVuZSB1dGlsaXp6YXRhIHBlciBjcmVhcmUgaWwgYnVjbyBhbGwnaW50ZXJubyBkZWxsYSBjaWFtYmVsbGEgKip3aW5rKiogKip3aW5rKipcclxuICAgKi9cclxuICAgQElucHV0KCkgRG9udXRSYWRpdXNQZXJjZW50YWdlOiBudW1iZXI7XHJcblxyXG4gIC8qKlxyXG4gICAqIEluZGljYSBzZSB3cmFwcGFyZSBsZSBsYWJlbCBjaGUgbm9uIHN0YW5ubyBuZWwgY29udGVuaXRvcmVcclxuICAgKi9cclxuICAgQElucHV0KCkgTGFiZWxzV3JhcDogYm9vbGVhbjtcclxuXHJcbiAgLyoqXHJcbiAgICogSW5kaWNhIHNlIHRyb25jYXJlIGxlIGxhYmVsIGNoZSBub24gc3Rhbm5vIG5lbCBjb250ZW5pdG9yZVxyXG4gICAqL1xyXG4gICBASW5wdXQoKSBMYWJlbHNUcnVuY2F0ZTogYm9vbGVhbjtcclxuXHJcbiAgLyoqXHJcbiAgICogSW5kaWNhIGxhIGRpbWVuc2lvbmUgbWFzc2ltYSBjaGUgcG9zc29ubyBhc3N1bWVyZSBsZSBsYWJlbFxyXG4gICAqL1xyXG4gICBASW5wdXQoKSBMYWJlbHNXaWR0aDogbnVtYmVyO1xyXG5cclxuICAvKipcclxuICAgKiBJbmRpY2Egc2UgbW9zdHJhcmUgbyBtZW5vIGxlIGxhYmVsc1xyXG4gICAqL1xyXG4gICBASW5wdXQoKSBMYWJlbHNWaXNpYmxlOiBib29sZWFuO1xyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoZWw6IEVsZW1lbnRSZWYsIENoYXJ0TG9hZGVyOiBDaGFydExvYWRlciwgQ2hhcnREaXNwYXRjaGVyOiBDaGFydERpc3BhdGNoZXIsIHByaXZhdGUgYWRhcHRlcjogQmFzZUFkYXB0ZXIsIHpvbmU6IE5nWm9uZSxcclxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHBsYXRmb3JtSWQ6IE9iamVjdCxcclxuICAgIEBJbmplY3QoRVNDX0RFQlVHX01PREUpIEVTQ19ERUJVR19NT0RFOiBib29sZWFuLFxyXG4gICAgQEluamVjdChFU0NfQU5JTUFUSU9OUykgRVNDX0FOSU1BVElPTlM6IGJvb2xlYW4sXHJcbiAgICBASW5qZWN0KEVTQ19USEVNRSkgRVNDX1RIRU1FOiBzdHJpbmcsXHJcbiAgICBsYzogTG9jYWxpemF0aW9uU2VydmljZSkge1xyXG4gICAgc3VwZXIoZWwsIHBsYXRmb3JtSWQsIHpvbmUsIENoYXJ0TG9hZGVyLCBDaGFydERpc3BhdGNoZXIsIEVTQ19ERUJVR19NT0RFLCBFU0NfQU5JTUFUSU9OUywgbGMuTG9jYWxlLCBFU0NfVEhFTUUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT3R0aWVuZSBsZSBwcm9wcmlldMOgIHNwZWNpZmljaGUgcGVyIHF1ZXN0YSB0aXBvbG9naWEgZGkgZ3JhZmljbyBwZXIgY3VpIHNlcnZlIHJpZ3JhZmljYXJlXHJcbiAgICovXHJcbiAgZ2V0U3BlY2lmaWNQcm9wZXJ0aWVzVG9DaGVjaygpOiBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gW1wiRGF0YVwiLCBcIkRhdGFBcnJheVwiLCBcIkhpZGVaZXJvZXNcIiwgXCJNb2RlM0RcIiwgXCJMYWJlbHNXcmFwXCIsIFwiTGFiZWxzVHJ1bmNhdGVcIiwgXCJMYWJlbHNXaWR0aFwiLCBcIkxhYmVsc1Zpc2libGVcIl07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPdHRpZW5lIGkgU2V0dGluZ3MgKEVyZWRpdGF0aSBkYWxsYSBjbGFzc2UgYmFzZSwgcXVpbmRpIGRlbCB0aXBvIGdlbmVyaWNvICoqQmFzZVNldHRpbmdzKiopIGNhc3RhdGkgYWwgdGlwbyBzcGVjaWZpY28gcGVyIHF1ZXN0byBncmFmaWNvXHJcbiAgICogXHJcbiAgICogQHJldHVybnMge1BpZUNoYXJ0U2V0dGluZ3N9IFNldHRpbmdzIGNhc3RhdGkgYWwgdGlwbyBnaXVzdG9cclxuICAgKi9cclxuICBnZXRDYXN0ZWRTZXR0aW5ncygpOiBQaWVDaGFydFNldHRpbmdzIHtcclxuICAgIHJldHVybiA8UGllQ2hhcnRTZXR0aW5ncz4odGhpcy5TZXR0aW5ncyA/PyBuZXcgUGllQ2hhcnRTZXR0aW5ncygpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEludGVncmEgaSBTZXR0aW5ncyBiYXNlIGNvbiB0dXR0aSBnbGkgSW5wdXQgc3BlY2lmaWNpIGRpIHF1ZXN0byBncmFmaWNvLCBkYW5kbyBwcmlvcml0w6AgYWkgU2V0dGluZ3Mgc2UgZGVmaW5pdGlcclxuICAgKiBcclxuICAgKiBAcGFyYW0ge1BpZUNoYXJ0U2V0dGluZ3N9IHNldHRpbmdzQ2FzdGVkIFNldHRpbmdzIGNhc3RhdGkgYWwgdGlwbyBnaXVzdG9cclxuICAgKi9cclxuICBmaWxsU3BlY2lmaWNTZXR0aW5ncyhzZXR0aW5nc0Nhc3RlZDogUGllQ2hhcnRTZXR0aW5ncyk6IHZvaWQge1xyXG4gICAgc2V0dGluZ3NDYXN0ZWQuSGlkZVplcm9lcyA9IHNldHRpbmdzQ2FzdGVkLkhpZGVaZXJvZXMgIT0gbnVsbCA/IHNldHRpbmdzQ2FzdGVkLkhpZGVaZXJvZXMgOiB0aGlzLkhpZGVaZXJvZXM7XHJcbiAgICBzZXR0aW5nc0Nhc3RlZC5Nb2RlM0QgPSBzZXR0aW5nc0Nhc3RlZC5Nb2RlM0QgIT0gbnVsbCA/IHNldHRpbmdzQ2FzdGVkLk1vZGUzRCA6IHRoaXMuTW9kZTNEO1xyXG4gICAgc2V0dGluZ3NDYXN0ZWQuRG9udXRSYWRpdXNQZXJjZW50YWdlID0gc2V0dGluZ3NDYXN0ZWQuRG9udXRSYWRpdXNQZXJjZW50YWdlICE9IG51bGwgPyBzZXR0aW5nc0Nhc3RlZC5Eb251dFJhZGl1c1BlcmNlbnRhZ2UgOiB0aGlzLkRvbnV0UmFkaXVzUGVyY2VudGFnZTtcclxuICAgIHNldHRpbmdzQ2FzdGVkLkxhYmVsc1dyYXAgPSBzZXR0aW5nc0Nhc3RlZC5MYWJlbHNXcmFwICE9IG51bGwgPyBzZXR0aW5nc0Nhc3RlZC5MYWJlbHNXcmFwIDogdGhpcy5MYWJlbHNXcmFwO1xyXG4gICAgc2V0dGluZ3NDYXN0ZWQuTGFiZWxzVHJ1bmNhdGUgPSBzZXR0aW5nc0Nhc3RlZC5MYWJlbHNUcnVuY2F0ZSAhPSBudWxsID8gc2V0dGluZ3NDYXN0ZWQuTGFiZWxzVHJ1bmNhdGUgOiB0aGlzLkxhYmVsc1RydW5jYXRlO1xyXG4gICAgc2V0dGluZ3NDYXN0ZWQuTGFiZWxzV2lkdGggPSBzZXR0aW5nc0Nhc3RlZC5MYWJlbHNXaWR0aCAhPSBudWxsID8gc2V0dGluZ3NDYXN0ZWQuTGFiZWxzV2lkdGggOiB0aGlzLkxhYmVsc1dpZHRoO1xyXG4gICAgc2V0dGluZ3NDYXN0ZWQuTGFiZWxzVmlzaWJsZSA9IHNldHRpbmdzQ2FzdGVkLkxhYmVsc1Zpc2libGUgIT0gbnVsbCA/IHNldHRpbmdzQ2FzdGVkLkxhYmVsc1Zpc2libGUgOiB0aGlzLkxhYmVsc1Zpc2libGU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFZmZldHR1YSBpbCByZW5kZXJpbmcgZGkgcXVlc3RvIGdyYWZpY28gaW4gYmFzZSBhaSBTZXR0aW5nc1xyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB7UGllQ2hhcnRTZXR0aW5nc30gc2V0dGluZ3NDYXN0ZWQgSW1wb3N0YXppb25pIGRpIGdyYWZpY2F6aW9uZVxyXG4gICAqIEByZXR1cm5zIHtQaWVDaGFydFNlcnZpY2V9IExhIHNlcnZpY2UgdXRpbGl6emF0YSBwZXIgaWwgcmVuZGVyaW5nIG5lbGxvIHN0YXRvIHN1Yml0byBzdWNjZXNzaXZvIGFsIHJlbmRlcmluZyBlZmZldHR1YXRvXHJcbiAgICovXHJcbiAgZ3JhcGhpY2F0ZShzZXR0aW5nc0Nhc3RlZDogUGllQ2hhcnRTZXR0aW5ncyk6IGFueSB7XHJcbiAgICByZXR1cm4gbmV3IFBpZUNoYXJ0U2VydmljZSh0aGlzLmFkYXB0ZXIpLmdyYXBoaWNhdGUoPFBpZUNoYXJ0RGF0YT50aGlzLkRhdGEsIHNldHRpbmdzQ2FzdGVkKTtcclxuICB9XHJcbn0iLCI8Y2hhcnQtcGFnZXIgKm5nSWY9XCJpc1BhZ2VkXCIgKG9uUGFnZUNoYW5nZSk9XCJjaGFuZ2VQYWdlKCRldmVudClcIiBbSXRlbXNdPVwiRGF0YUFycmF5XCIgW0R0b3NdPVwiRGF0YUR0b3NcIiBbU3RhcnRJbmRleF09XCJEYXRhRHRvU3RhcnRJbmRleFwiXHJcbiAgICBbQnJvd3NlRGVsYXlNc109XCJCcm93c2VEZWxheU1zXCI+XHJcbiAgICA8bmctdGVtcGxhdGUgI2hlYWRlcl9pbm5lciBsZXQtaGVhZGVySXRlbT5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZGVyX3RyOyBjb250ZXh0IDogeyRpbXBsaWNpdDogaGVhZGVySXRlbX1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbjwvY2hhcnQtcGFnZXI+XHJcblxyXG48bmctY29udGFpbmVyICpuZ0lmPVwibG9hZGluZ0NoYXJ0ICYmIGxvYWRpbmdfdGVtcGxhdGVcIj5cclxuICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDogMTAwJTtcIiBbc3R5bGUuaGVpZ2h0XT1cImlzUGFnZWQgPyAnY2FsYygxMDAlIC0gNDRweCknIDogJzEwMCUnXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxvYWRpbmdfdGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJsb2FkaW5nQ2hhcnQgJiYgIWxvYWRpbmdfdGVtcGxhdGVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJlc2MtbG9hZGluZy1vdmVybGF5XCIgc3R5bGU9XCJ3aWR0aDogMTAwJTtcIiBbc3R5bGUuaGVpZ2h0XT1cImlzUGFnZWQgPyAnY2FsYygxMDAlIC0gNDRweCknIDogJzEwMCUnXCI+XHJcbiAgICAgICAgPHAgY2xhc3M9XCJsYWJlbFwiPkxvYWRpbmcuLi4uPC9wPlxyXG4gICAgPC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuPGRpdiBbY2xhc3MuaGlkZS1ibG9ja109XCJsb2FkaW5nQ2hhcnRcIiBpZD1cInt7bmFtZX19XCIgc3R5bGU9XCJ3aWR0aDogMTAwJTtcIiBbc3R5bGUuaGVpZ2h0XT1cImlzUGFnZWQgPyAnY2FsYygxMDAlIC0gNDRweCknIDogJzEwMCUnXCI+PC9kaXY+Il19
|