@esfaenza/es-charts 13.1.4 → 13.1.7
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/lib/adapters/BaseAdapter.mjs +50 -0
- package/esm2020/lib/adapters/IBaseAdapter.mjs +2 -0
- package/esm2020/lib/components/base/base-chart.component.mjs +4 -3
- package/esm2020/lib/components/chart-pager/chart-pager.component.mjs +1 -1
- package/esm2020/lib/components/specializations/es-area-chart.component.mjs +11 -10
- package/esm2020/lib/components/specializations/es-chart.component.mjs +24 -11
- package/esm2020/lib/components/specializations/es-line-chart.component.mjs +12 -11
- package/esm2020/lib/components/specializations/es-pie-chart.component.mjs +11 -10
- package/esm2020/lib/components/specializations/es-vertical-2d-chart.component.mjs +11 -10
- package/esm2020/lib/components/specializations/es-vertical-chart.component.mjs +11 -10
- package/esm2020/lib/components/specializations/es-vertical-stacked-chart.component.mjs +11 -10
- package/esm2020/lib/es-charts.module.mjs +13 -5
- package/esm2020/lib/models/core/ChartDispatcher.mjs +91 -0
- package/esm2020/lib/models/core/ChartLoader.mjs +201 -0
- package/esm2020/lib/models/core/ChartThemes.mjs +61 -0
- package/esm2020/lib/models/data/AreaChartData.mjs +16 -0
- package/esm2020/lib/models/data/LineChartData.mjs +16 -0
- package/esm2020/lib/models/data/PagedChartData.mjs +20 -0
- package/esm2020/lib/models/data/PieChartData.mjs +14 -0
- package/esm2020/lib/models/data/Vertical2DChartData.mjs +16 -0
- package/esm2020/lib/models/data/VerticalChartData.mjs +14 -0
- package/esm2020/lib/models/data/VerticalStackedChartData.mjs +14 -0
- package/esm2020/lib/models/data/base/DateValue.mjs +11 -0
- package/esm2020/lib/models/data/base/KeyValue.mjs +11 -0
- package/esm2020/lib/models/data/base/KeyValueColor.mjs +12 -0
- package/esm2020/lib/models/data/base/Limit.mjs +15 -0
- package/esm2020/lib/models/data/base/LineSerie.mjs +24 -0
- package/esm2020/lib/models/settings/AreaChartSettings.mjs +11 -0
- package/esm2020/lib/models/settings/LineChartSettings.mjs +11 -0
- package/esm2020/lib/models/settings/PieChartSettings.mjs +7 -0
- package/esm2020/lib/models/settings/Vertical2DChartSettings.mjs +11 -0
- package/esm2020/lib/models/settings/VerticalChartSettings.mjs +11 -0
- package/esm2020/lib/models/settings/VerticalStackedChartSettings.mjs +11 -0
- package/esm2020/lib/models/settings/base/BaseInterval.mjs +6 -0
- package/esm2020/lib/models/settings/base/BaseSettings.mjs +6 -0
- package/esm2020/lib/models/settings/base/LegendPad.mjs +6 -0
- package/esm2020/lib/services/AreaChartService.mjs +134 -0
- package/esm2020/lib/services/LineChartService.mjs +337 -0
- package/esm2020/lib/services/PieChartService.mjs +111 -0
- package/esm2020/lib/services/Vertical2DChartService.mjs +160 -0
- package/esm2020/lib/services/VerticalChartService.mjs +103 -0
- package/esm2020/lib/services/VerticalStackedChartService.mjs +124 -0
- package/esm2020/lib/services/base/IBaseService.mjs +2 -0
- package/esm2020/public-api.mjs +25 -25
- package/fesm2015/esfaenza-es-charts.mjs +372 -391
- package/fesm2015/esfaenza-es-charts.mjs.map +1 -1
- package/fesm2020/esfaenza-es-charts.mjs +361 -380
- package/fesm2020/esfaenza-es-charts.mjs.map +1 -1
- package/lib/adapters/{classes/BaseAdapter.d.ts → BaseAdapter.d.ts} +6 -1
- package/lib/adapters/{classes/IBaseAdapter.d.ts → IBaseAdapter.d.ts} +6 -1
- package/lib/components/base/base-chart.component.d.ts +10 -4
- package/lib/components/chart-pager/chart-pager.component.d.ts +1 -1
- package/lib/components/specializations/es-area-chart.component.d.ts +6 -4
- package/lib/components/specializations/es-chart.component.d.ts +17 -5
- package/lib/components/specializations/es-line-chart.component.d.ts +6 -4
- package/lib/components/specializations/es-pie-chart.component.d.ts +6 -4
- package/lib/components/specializations/es-vertical-2d-chart.component.d.ts +6 -4
- package/lib/components/specializations/es-vertical-chart.component.d.ts +6 -4
- package/lib/components/specializations/es-vertical-stacked-chart.component.d.ts +6 -4
- package/lib/models/core/{classes/ChartDispatcher.d.ts → ChartDispatcher.d.ts} +0 -0
- package/lib/models/core/{classes/ChartLoader.d.ts → ChartLoader.d.ts} +0 -0
- package/lib/models/core/{classes/ChartThemes.d.ts → ChartThemes.d.ts} +0 -0
- package/lib/models/data/{classes/AreaChartData.d.ts → AreaChartData.d.ts} +1 -1
- package/lib/models/data/{classes/LineChartData.d.ts → LineChartData.d.ts} +0 -0
- package/lib/models/data/{classes/PagedChartData.d.ts → PagedChartData.d.ts} +0 -0
- package/lib/models/data/{classes/PieChartData.d.ts → PieChartData.d.ts} +0 -0
- package/lib/models/data/{classes/Vertical2DChartData.d.ts → Vertical2DChartData.d.ts} +0 -0
- package/lib/models/data/{classes/VerticalChartData.d.ts → VerticalChartData.d.ts} +0 -0
- package/lib/models/data/{classes/VerticalStackedChartData.d.ts → VerticalStackedChartData.d.ts} +0 -0
- package/lib/models/data/{classes/base → base}/DateValue.d.ts +0 -0
- package/lib/models/data/{classes/base → base}/KeyValue.d.ts +0 -0
- package/lib/models/data/{classes/base → base}/KeyValueColor.d.ts +0 -0
- package/lib/models/data/base/Limit.d.ts +13 -0
- package/lib/models/data/{classes/base → base}/LineSerie.d.ts +1 -1
- package/lib/models/settings/{classes/AreaChartSettings.d.ts → AreaChartSettings.d.ts} +0 -0
- package/lib/models/settings/{classes/LineChartSettings.d.ts → LineChartSettings.d.ts} +0 -0
- package/lib/models/settings/{classes/PieChartSettings.d.ts → PieChartSettings.d.ts} +0 -0
- package/lib/models/settings/{classes/Vertical2DChartSettings.d.ts → Vertical2DChartSettings.d.ts} +0 -0
- package/lib/models/settings/{classes/VerticalChartSettings.d.ts → VerticalChartSettings.d.ts} +0 -0
- package/lib/models/settings/{classes/VerticalStackedChartSettings.d.ts → VerticalStackedChartSettings.d.ts} +0 -0
- package/lib/models/settings/{classes/base → base}/BaseInterval.d.ts +0 -0
- package/lib/models/settings/{classes/base → base}/BaseSettings.d.ts +1 -1
- package/lib/models/settings/{classes/base → base}/LegendPad.d.ts +0 -0
- package/lib/services/{classes/AreaChartService.d.ts → AreaChartService.d.ts} +3 -3
- package/lib/services/{classes/LineChartService.d.ts → LineChartService.d.ts} +3 -3
- package/lib/services/{classes/PieChartService.d.ts → PieChartService.d.ts} +3 -3
- package/lib/services/{classes/Vertical2DChartService.d.ts → Vertical2DChartService.d.ts} +3 -3
- package/lib/services/{classes/VerticalChartService.d.ts → VerticalChartService.d.ts} +3 -3
- package/lib/services/{classes/VerticalStackedChartService.d.ts → VerticalStackedChartService.d.ts} +3 -3
- package/lib/services/{classes/base → base}/IBaseService.d.ts +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +24 -24
- package/esm2020/lib/adapters/classes/BaseAdapter.mjs +0 -50
- package/esm2020/lib/adapters/classes/IBaseAdapter.mjs +0 -2
- package/esm2020/lib/adapters/index.mjs +0 -3
- package/esm2020/lib/components/index.mjs +0 -9
- package/esm2020/lib/models/core/classes/ChartDispatcher.mjs +0 -91
- package/esm2020/lib/models/core/classes/ChartLoader.mjs +0 -201
- package/esm2020/lib/models/core/classes/ChartThemes.mjs +0 -61
- package/esm2020/lib/models/core/index.mjs +0 -4
- package/esm2020/lib/models/data/classes/AreaChartData.mjs +0 -16
- package/esm2020/lib/models/data/classes/LineChartData.mjs +0 -16
- package/esm2020/lib/models/data/classes/PagedChartData.mjs +0 -20
- package/esm2020/lib/models/data/classes/PieChartData.mjs +0 -14
- package/esm2020/lib/models/data/classes/Vertical2DChartData.mjs +0 -16
- package/esm2020/lib/models/data/classes/VerticalChartData.mjs +0 -14
- package/esm2020/lib/models/data/classes/VerticalStackedChartData.mjs +0 -14
- package/esm2020/lib/models/data/classes/base/DateValue.mjs +0 -11
- package/esm2020/lib/models/data/classes/base/KeyValue.mjs +0 -11
- package/esm2020/lib/models/data/classes/base/KeyValueColor.mjs +0 -12
- package/esm2020/lib/models/data/classes/base/Limit.mjs +0 -15
- package/esm2020/lib/models/data/classes/base/LineSerie.mjs +0 -24
- package/esm2020/lib/models/data/index.mjs +0 -13
- package/esm2020/lib/models/settings/classes/AreaChartSettings.mjs +0 -11
- package/esm2020/lib/models/settings/classes/LineChartSettings.mjs +0 -11
- package/esm2020/lib/models/settings/classes/PieChartSettings.mjs +0 -7
- package/esm2020/lib/models/settings/classes/Vertical2DChartSettings.mjs +0 -11
- package/esm2020/lib/models/settings/classes/VerticalChartSettings.mjs +0 -11
- package/esm2020/lib/models/settings/classes/VerticalStackedChartSettings.mjs +0 -11
- package/esm2020/lib/models/settings/classes/base/BaseInterval.mjs +0 -6
- package/esm2020/lib/models/settings/classes/base/BaseSettings.mjs +0 -6
- package/esm2020/lib/models/settings/classes/base/LegendPad.mjs +0 -6
- package/esm2020/lib/models/settings/index.mjs +0 -10
- package/esm2020/lib/services/classes/AreaChartService.mjs +0 -134
- package/esm2020/lib/services/classes/LineChartService.mjs +0 -356
- package/esm2020/lib/services/classes/PieChartService.mjs +0 -111
- package/esm2020/lib/services/classes/Vertical2DChartService.mjs +0 -160
- package/esm2020/lib/services/classes/VerticalChartService.mjs +0 -103
- package/esm2020/lib/services/classes/VerticalStackedChartService.mjs +0 -124
- package/esm2020/lib/services/classes/base/IBaseService.mjs +0 -2
- package/esm2020/lib/services/index.mjs +0 -8
- package/lib/adapters/index.d.ts +0 -2
- package/lib/components/index.d.ts +0 -8
- package/lib/models/core/index.d.ts +0 -3
- package/lib/models/data/classes/base/Limit.d.ts +0 -13
- package/lib/models/data/index.d.ts +0 -12
- package/lib/models/settings/index.d.ts +0 -9
- package/lib/services/index.d.ts +0 -7
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { Component, Input, Inject, PLATFORM_ID, ChangeDetectionStrategy } from '@angular/core';
|
|
2
2
|
import { ESC_ANIMATIONS, ESC_LOCALE, ESC_THEME, ESC_LOGS } from '../../tokens';
|
|
3
3
|
import { BaseChartComponent } from '../base/base-chart.component';
|
|
4
|
-
import { VerticalStackedChartSettings } from '../../models/settings';
|
|
5
|
-
import { VerticalStackedChartService } from '../../services';
|
|
4
|
+
import { VerticalStackedChartSettings } from '../../models/settings/VerticalStackedChartSettings';
|
|
5
|
+
import { VerticalStackedChartService } from '../../services/VerticalStackedChartService';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "../../models/core";
|
|
8
|
-
import * as i2 from "../../
|
|
9
|
-
import * as i3 from "
|
|
10
|
-
import * as i4 from "
|
|
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 "../chart-pager/chart-pager.component";
|
|
11
|
+
import * as i5 from "@angular/common";
|
|
11
12
|
/**
|
|
12
13
|
* Componente specifico per la graficazione di un grafico a Barre in modalità Stacked (una serie sopra l'altra)
|
|
13
14
|
*/
|
|
@@ -55,12 +56,12 @@ export class EsVerticalStackedChartComponent extends BaseChartComponent {
|
|
|
55
56
|
return new VerticalStackedChartService(this.adapter).graphicate(this.Data, settingsCasted);
|
|
56
57
|
}
|
|
57
58
|
}
|
|
58
|
-
EsVerticalStackedChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsVerticalStackedChartComponent, deps: [{ token: i0.ElementRef }, { token: i1.ChartLoader }, { token:
|
|
59
|
-
EsVerticalStackedChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: EsVerticalStackedChartComponent, selector: "es-vertical-stacked-chart", inputs: { Data: "Data", DataArray: "DataArray", ColumnWidthPercentage: "ColumnWidthPercentage", LabelWidth: "LabelWidth", LabelVerticalOrientationCutoffWidth: "LabelVerticalOrientationCutoffWidth", LabelRightWhenCompressed: "LabelRightWhenCompressed", LabelTopWhenCompressed: "LabelTopWhenCompressed" }, 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"], components: [{ type:
|
|
59
|
+
EsVerticalStackedChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsVerticalStackedChartComponent, deps: [{ token: i0.ElementRef }, { token: i1.ChartLoader }, { token: i2.ChartDispatcher }, { token: i3.BaseAdapter }, { token: i0.NgZone }, { token: PLATFORM_ID }, { token: ESC_LOGS }, { token: ESC_ANIMATIONS }, { token: ESC_LOCALE }, { token: ESC_THEME }], target: i0.ɵɵFactoryTarget.Component });
|
|
60
|
+
EsVerticalStackedChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: EsVerticalStackedChartComponent, selector: "es-vertical-stacked-chart", inputs: { Data: "Data", DataArray: "DataArray", ColumnWidthPercentage: "ColumnWidthPercentage", LabelWidth: "LabelWidth", LabelVerticalOrientationCutoffWidth: "LabelVerticalOrientationCutoffWidth", LabelRightWhenCompressed: "LabelRightWhenCompressed", LabelTopWhenCompressed: "LabelTopWhenCompressed" }, 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"], components: [{ type: i4.PageChartSelector, selector: "chart-pager", inputs: ["Items", "Dtos", "BrowseDelayMs", "StartIndex"], outputs: ["onPageChange"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
60
61
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsVerticalStackedChartComponent, decorators: [{
|
|
61
62
|
type: Component,
|
|
62
63
|
args: [{ selector: 'es-vertical-stacked-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"] }]
|
|
63
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.ChartLoader }, { type:
|
|
64
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.ChartLoader }, { type: i2.ChartDispatcher }, { type: i3.BaseAdapter }, { type: i0.NgZone }, { type: Object, decorators: [{
|
|
64
65
|
type: Inject,
|
|
65
66
|
args: [PLATFORM_ID]
|
|
66
67
|
}] }, { type: undefined, decorators: [{
|
|
@@ -90,4 +91,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
|
|
|
90
91
|
}], LabelTopWhenCompressed: [{
|
|
91
92
|
type: Input
|
|
92
93
|
}] } });
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXMtdmVydGljYWwtc3RhY2tlZC1jaGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcy1jaGFydHMvc3JjL2xpYi9jb21wb25lbnRzL3NwZWNpYWxpemF0aW9ucy9lcy12ZXJ0aWNhbC1zdGFja2VkLWNoYXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VzLWNoYXJ0cy9zcmMvbGliL2NvbXBvbmVudHMvYmFzZS9iYXNlLWNoYXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQVUsdUJBQXVCLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFHbkgsT0FBTyxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUvRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUdsRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBRzdEOztHQUVHO0FBT0gsTUFBTSxPQUFPLCtCQUFnQyxTQUFRLGtCQUFrQjtJQXNDckU7O09BRUc7SUFDSCxZQUFZLEVBQWMsRUFBRSxXQUF3QixFQUFFLGVBQWdDLEVBQVUsT0FBb0IsRUFBRSxJQUFZLEVBQzNHLFVBQWtCLEVBQ3JCLFFBQWlCLEVBQ1gsY0FBdUIsRUFDM0IsVUFBa0IsRUFDbkIsU0FBaUI7UUFDcEMsS0FBSyxDQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFOYixZQUFPLEdBQVAsT0FBTyxDQUFhO0lBT3BILENBQUM7SUFFRDs7T0FFRztJQUNILDRCQUE0QjtRQUMxQixPQUFPLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsaUJBQWlCO1FBQ2YsT0FBcUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksNEJBQTRCLEVBQUUsQ0FBQyxDQUFDO0lBQzdGLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsb0JBQW9CLENBQUMsY0FBNEM7UUFDL0QsY0FBYyxDQUFDLHFCQUFxQixHQUFHLGNBQWMsQ0FBQyxxQkFBcUIsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDO1FBQ3hKLGNBQWMsQ0FBQyxVQUFVLEdBQUcsY0FBYyxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDNUcsY0FBYyxDQUFDLG1DQUFtQyxHQUFHLGNBQWMsQ0FBQyxtQ0FBbUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG1DQUFtQyxDQUFDO1FBQ2hOLGNBQWMsQ0FBQyx3QkFBd0IsR0FBRyxjQUFjLENBQUMsd0JBQXdCLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQztRQUNwSyxjQUFjLENBQUMsc0JBQXNCLEdBQUcsY0FBYyxDQUFDLHNCQUFzQixJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUM7SUFDOUosQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsVUFBVSxDQUFDLGNBQTRDO1FBQ3JELE9BQU8sSUFBSSwyQkFBMkIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUEyQixJQUFJLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ3ZILENBQUM7OzRIQXZGVSwrQkFBK0IsdUpBMENoQyxXQUFXLGFBQ1gsUUFBUSxhQUNSLGNBQWMsYUFDZCxVQUFVLGFBQ1YsU0FBUztnSEE5Q1IsK0JBQStCLHdZQ3JCNUMsd2pDQW1Cd0k7MkZERTNILCtCQUErQjtrQkFOM0MsU0FBUzsrQkFDRSwyQkFBMkIsbUJBR3BCLHVCQUF1QixDQUFDLE1BQU07MExBNENaLE1BQU07MEJBQXRDLE1BQU07MkJBQUMsV0FBVzs7MEJBQ2xCLE1BQU07MkJBQUMsUUFBUTs7MEJBQ2YsTUFBTTsyQkFBQyxjQUFjOzswQkFDckIsTUFBTTsyQkFBQyxVQUFVOzswQkFDakIsTUFBTTsyQkFBQyxTQUFTOzRDQXpDVixJQUFJO3NCQUFaLEtBQUs7Z0JBS0csU0FBUztzQkFBakIsS0FBSztnQkFNSSxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBS0csVUFBVTtzQkFBbEIsS0FBSztnQkFLRyxtQ0FBbUM7c0JBQTNDLEtBQUs7Z0JBS0csd0JBQXdCO3NCQUFoQyxLQUFLO2dCQUtHLHNCQUFzQjtzQkFBOUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIEluamVjdCwgUExBVEZPUk1fSUQsIE5nWm9uZSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEJhc2VBZGFwdGVyIH0gZnJvbSAnLi4vLi4vYWRhcHRlcnMnO1xyXG5pbXBvcnQgeyBFU0NfQU5JTUFUSU9OUywgRVNDX0xPQ0FMRSwgRVNDX1RIRU1FLCBFU0NfTE9HUyB9IGZyb20gJy4uLy4uL3Rva2Vucyc7XHJcblxyXG5pbXBvcnQgeyBCYXNlQ2hhcnRDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlL2Jhc2UtY2hhcnQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ2hhcnRMb2FkZXIsIENoYXJ0RGlzcGF0Y2hlciB9IGZyb20gXCIuLi8uLi9tb2RlbHMvY29yZVwiO1xyXG5cclxuaW1wb3J0IHsgVmVydGljYWxTdGFja2VkQ2hhcnRTZXR0aW5ncyB9IGZyb20gJy4uLy4uL21vZGVscy9zZXR0aW5ncyc7XHJcbmltcG9ydCB7IFZlcnRpY2FsU3RhY2tlZENoYXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgVmVydGljYWxTdGFja2VkQ2hhcnREYXRhLCBQYWdlZENoYXJ0RGF0YSB9IGZyb20gJy4uLy4uL21vZGVscy9kYXRhJztcclxuXHJcbi8qKlxyXG4gKiBDb21wb25lbnRlIHNwZWNpZmljbyBwZXIgbGEgZ3JhZmljYXppb25lIGRpIHVuIGdyYWZpY28gYSBCYXJyZSBpbiBtb2RhbGl0w6AgU3RhY2tlZCAodW5hIHNlcmllIHNvcHJhIGwnYWx0cmEpXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VzLXZlcnRpY2FsLXN0YWNrZWQtY2hhcnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi4vYmFzZS9iYXNlLWNoYXJ0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi4vYmFzZS9iYXNlLWNoYXJ0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEVzVmVydGljYWxTdGFja2VkQ2hhcnRDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ2hhcnRDb21wb25lbnQge1xyXG5cclxuICAvKipcclxuICAgKiBEYXRpIHNwZWNpZmljaSBwZXIgaWwgZ3JhZmljbyBvIGRpIHVuIHRpcG8gdHJhbXV0YWJpbGUgYWwgdGlwbyAqKlZlcnRpY2FsU3RhY2tlZENoYXJ0RGF0YSoqIGNvbCBzdXBwb3J0byBkZWwgKipCYXNlQWRhcHRlcioqXHJcbiAgICovXHJcbiAgQElucHV0KCkgRGF0YTogVmVydGljYWxTdGFja2VkQ2hhcnREYXRhIHwgYW55O1xyXG5cclxuICAvKipcclxuICAgKiBMaXN0YSBkaSBEYXRpIHNwZWNpZmljaSBwZXIgdW4gZ3JhZmljbyBwYWdpbmF0byBvIGRpIGN1aSBvZ25pIGJsb2NjbyBkYXRpIMOoIHRyYW11dGFiaWxlIGFsIHRpcG8gKipWZXJ0aWNhbFN0YWNrZWRDaGFydERhdGEqKiBjb2wgc3VwcG9ydG8gZGVsICoqQmFzZUFkYXB0ZXIqKlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIERhdGFBcnJheTogUGFnZWRDaGFydERhdGE8VmVydGljYWxTdGFja2VkQ2hhcnREYXRhPltdIHwgUGFnZWRDaGFydERhdGE8YW55PltdO1xyXG5cclxuICAvKipcclxuICAgKiBJbmRpY2EgbGEgcGVyY2VudHVhbGUgZGkgY2VsbGEgY2hlIGxhIGNvbG9ubmEgYW5kcsOgIGEgcmllbXBpcmUuIFVuIHZhbG9yZSBwYXJpIGEgMTAwIHJpZW1waXLDoCBsYSBjZWxsYSBjb21wbGV0YW1lbnRlIFxyXG4gICAqIGUgdHV0dGUgbGUgYmFycmUgcmlzdWx0ZXJhbm5vIGFwcGljY2ljYXRlIGwndW4gbCdhbHRyYVxyXG4gICAqL1xyXG4gICBASW5wdXQoKSBDb2x1bW5XaWR0aFBlcmNlbnRhZ2U6IG51bWJlcjtcclxuXHJcbiAgIC8qKlxyXG4gICAgKiBJbmRpY2EgbGUgZGltZW5zaW9uaSBtYXNzaW1lIGRlbGxhIGxhYmVsIGFzc29jaWF0YSBhIHVuIGdydXBwbyBkaSBiYXJyZVxyXG4gICAgKi9cclxuICAgQElucHV0KCkgTGFiZWxXaWR0aDogbnVtYmVyO1xyXG4gXHJcbiAgIC8qKlxyXG4gICAgKiBJbmRpY2EgbGEgZGltZW5zaW9uZSBtYXNzaW1hIHNvdHRvIGxhIHF1YWxlIGxhIGxhYmVsIGFzc29jaWF0YSBhIHVuIGdydXBwbyBkaSBiYXJyZSBzaSBpbmNsaW5hIGNlcmNhbmRvIGRpIG9jY3VwYXJlIG1lbm8gc3BhemlvXHJcbiAgICAqL1xyXG4gICBASW5wdXQoKSBMYWJlbFZlcnRpY2FsT3JpZW50YXRpb25DdXRvZmZXaWR0aDogbnVtYmVyO1xyXG4gXHJcbiAgIC8qKlxyXG4gICAgKiBJbmRpY2EgdW4gb2Zmc2V0IG9yaXp6b250YWxlIGRhIGFwcGxpY2FyZSBhbGxhIGxhYmVsIGFzc29jaWF0YSBhIHVuIGdydXBwbyBkaSBiYXJyZSBxdWFsb3JhIGZvc3NlIGNvbXByZXNzYSBhIGNhdXNhIGRlbGxhIG1hbmNhbnphIGRpIHNwYXppb1xyXG4gICAgKi9cclxuICAgQElucHV0KCkgTGFiZWxSaWdodFdoZW5Db21wcmVzc2VkOiBudW1iZXI7XHJcbiBcclxuICAgLyoqXHJcbiAgICAqIEluZGljYSB1biBvZmZzZXQgdmVydGljYWxlIGRhIGFwcGxpY2FyZSBhbGxhIGxhYmVsIGFzc29jaWF0YSBhIHVuIGdydXBwbyBkaSBiYXJyZSBxdWFsb3JhIGZvc3NlIGNvbXByZXNzYSBhIGNhdXNhIGRlbGxhIG1hbmNhbnphIGRpIHNwYXppb1xyXG4gICAgKi9cclxuICAgQElucHV0KCkgTGFiZWxUb3BXaGVuQ29tcHJlc3NlZDogbnVtYmVyO1xyXG4gIFxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihlbDogRWxlbWVudFJlZiwgQ2hhcnRMb2FkZXI6IENoYXJ0TG9hZGVyLCBDaGFydERpc3BhdGNoZXI6IENoYXJ0RGlzcGF0Y2hlciwgcHJpdmF0ZSBhZGFwdGVyOiBCYXNlQWRhcHRlciwgem9uZTogTmdab25lLFxyXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcGxhdGZvcm1JZDogT2JqZWN0LFxyXG4gICAgQEluamVjdChFU0NfTE9HUykgRVNDX0xPR1M6IGJvb2xlYW4sXHJcbiAgICBASW5qZWN0KEVTQ19BTklNQVRJT05TKSBFU0NfQU5JTUFUSU9OUzogYm9vbGVhbixcclxuICAgIEBJbmplY3QoRVNDX0xPQ0FMRSkgRVNDX0xPQ0FMRTogc3RyaW5nLFxyXG4gICAgQEluamVjdChFU0NfVEhFTUUpIEVTQ19USEVNRTogc3RyaW5nKSB7XHJcbiAgICBzdXBlcihlbCwgcGxhdGZvcm1JZCwgem9uZSwgQ2hhcnRMb2FkZXIsIENoYXJ0RGlzcGF0Y2hlciwgRVNDX0xPR1MsIEVTQ19BTklNQVRJT05TLCBFU0NfTE9DQUxFLCBFU0NfVEhFTUUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT3R0aWVuZSBsZSBwcm9wcmlldMOgIHNwZWNpZmljaGUgcGVyIHF1ZXN0YSB0aXBvbG9naWEgZGkgZ3JhZmljbyBwZXIgY3VpIHNlcnZlIHJpZ3JhZmljYXJlXHJcbiAgICovXHJcbiAgZ2V0U3BlY2lmaWNQcm9wZXJ0aWVzVG9DaGVjaygpOiBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gW1wiRGF0YVwiLCBcIkRhdGFBcnJheVwiXTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE90dGllbmUgaSBTZXR0aW5ncyAoRXJlZGl0YXRpIGRhbGxhIGNsYXNzZSBiYXNlLCBxdWluZGkgZGVsIHRpcG8gZ2VuZXJpY28gKipCYXNlU2V0dGluZ3MqKikgY2FzdGF0aSBhbCB0aXBvIHNwZWNpZmljbyBwZXIgcXVlc3RvIGdyYWZpY29cclxuICAgKiBcclxuICAgKiBAcmV0dXJucyB7VmVydGljYWxTdGFja2VkQ2hhcnRTZXR0aW5nc30gU2V0dGluZ3MgY2FzdGF0aSBhbCB0aXBvIGdpdXN0b1xyXG4gICAqL1xyXG4gIGdldENhc3RlZFNldHRpbmdzKCk6IFZlcnRpY2FsU3RhY2tlZENoYXJ0U2V0dGluZ3Mge1xyXG4gICAgcmV0dXJuIDxWZXJ0aWNhbFN0YWNrZWRDaGFydFNldHRpbmdzPih0aGlzLlNldHRpbmdzID8/IG5ldyBWZXJ0aWNhbFN0YWNrZWRDaGFydFNldHRpbmdzKCkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW50ZWdyYSBpIFNldHRpbmdzIGJhc2UgY29uIHR1dHRpIGdsaSBJbnB1dCBzcGVjaWZpY2kgZGkgcXVlc3RvIGdyYWZpY28sIGRhbmRvIHByaW9yaXTDoCBhaSBTZXR0aW5ncyBzZSBkZWZpbml0aVxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB7VmVydGljYWxTdGFja2VkQ2hhcnRTZXR0aW5nc30gc2V0dGluZ3NDYXN0ZWQgU2V0dGluZ3MgY2FzdGF0aSBhbCB0aXBvIGdpdXN0b1xyXG4gICAqL1xyXG4gIGZpbGxTcGVjaWZpY1NldHRpbmdzKHNldHRpbmdzQ2FzdGVkOiBWZXJ0aWNhbFN0YWNrZWRDaGFydFNldHRpbmdzKTogdm9pZCB7XHJcbiAgICBzZXR0aW5nc0Nhc3RlZC5Db2x1bW5XaWR0aFBlcmNlbnRhZ2UgPSBzZXR0aW5nc0Nhc3RlZC5Db2x1bW5XaWR0aFBlcmNlbnRhZ2UgIT0gbnVsbCA/IHNldHRpbmdzQ2FzdGVkLkNvbHVtbldpZHRoUGVyY2VudGFnZSA6IHRoaXMuQ29sdW1uV2lkdGhQZXJjZW50YWdlO1xyXG4gICAgc2V0dGluZ3NDYXN0ZWQuTGFiZWxXaWR0aCA9IHNldHRpbmdzQ2FzdGVkLkxhYmVsV2lkdGggIT0gbnVsbCA/IHNldHRpbmdzQ2FzdGVkLkxhYmVsV2lkdGggOiB0aGlzLkxhYmVsV2lkdGg7XHJcbiAgICBzZXR0aW5nc0Nhc3RlZC5MYWJlbFZlcnRpY2FsT3JpZW50YXRpb25DdXRvZmZXaWR0aCA9IHNldHRpbmdzQ2FzdGVkLkxhYmVsVmVydGljYWxPcmllbnRhdGlvbkN1dG9mZldpZHRoICE9IG51bGwgPyBzZXR0aW5nc0Nhc3RlZC5MYWJlbFZlcnRpY2FsT3JpZW50YXRpb25DdXRvZmZXaWR0aCA6IHRoaXMuTGFiZWxWZXJ0aWNhbE9yaWVudGF0aW9uQ3V0b2ZmV2lkdGg7XHJcbiAgICBzZXR0aW5nc0Nhc3RlZC5MYWJlbFJpZ2h0V2hlbkNvbXByZXNzZWQgPSBzZXR0aW5nc0Nhc3RlZC5MYWJlbFJpZ2h0V2hlbkNvbXByZXNzZWQgIT0gbnVsbCA/IHNldHRpbmdzQ2FzdGVkLkxhYmVsUmlnaHRXaGVuQ29tcHJlc3NlZCA6IHRoaXMuTGFiZWxSaWdodFdoZW5Db21wcmVzc2VkO1xyXG4gICAgc2V0dGluZ3NDYXN0ZWQuTGFiZWxUb3BXaGVuQ29tcHJlc3NlZCA9IHNldHRpbmdzQ2FzdGVkLkxhYmVsVG9wV2hlbkNvbXByZXNzZWQgIT0gbnVsbCA/IHNldHRpbmdzQ2FzdGVkLkxhYmVsVG9wV2hlbkNvbXByZXNzZWQgOiB0aGlzLkxhYmVsVG9wV2hlbkNvbXByZXNzZWQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFZmZldHR1YSBpbCByZW5kZXJpbmcgZGkgcXVlc3RvIGdyYWZpY28gaW4gYmFzZSBhaSBTZXR0aW5nc1xyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB7VmVydGljYWxTdGFja2VkQ2hhcnRTZXR0aW5nc30gc2V0dGluZ3NDYXN0ZWQgSW1wb3N0YXppb25pIGRpIGdyYWZpY2F6aW9uZVxyXG4gICAqIEByZXR1cm5zIHtWZXJ0aWNhbFN0YWNrZWRDaGFydFNlcnZpY2V9IExhIHNlcnZpY2UgdXRpbGl6emF0YSBwZXIgaWwgcmVuZGVyaW5nIG5lbGxvIHN0YXRvIHN1Yml0byBzdWNjZXNzaXZvIGFsIHJlbmRlcmluZyBlZmZldHR1YXRvXHJcbiAgICovXHJcbiAgZ3JhcGhpY2F0ZShzZXR0aW5nc0Nhc3RlZDogVmVydGljYWxTdGFja2VkQ2hhcnRTZXR0aW5ncyk6IGFueSB7XHJcbiAgICByZXR1cm4gbmV3IFZlcnRpY2FsU3RhY2tlZENoYXJ0U2VydmljZSh0aGlzLmFkYXB0ZXIpLmdyYXBoaWNhdGUoPFZlcnRpY2FsU3RhY2tlZENoYXJ0RGF0YT50aGlzLkRhdGEsIHNldHRpbmdzQ2FzdGVkKTtcclxuICB9XHJcbn0iLCI8Y2hhcnQtcGFnZXIgKm5nSWY9XCJpc1BhZ2VkXCIgKG9uUGFnZUNoYW5nZSk9XCJjaGFuZ2VQYWdlKCRldmVudClcIiBbSXRlbXNdPVwiRGF0YUFycmF5XCIgW0R0b3NdPVwiRGF0YUR0b3NcIiBbU3RhcnRJbmRleF09XCJEYXRhRHRvU3RhcnRJbmRleFwiXHJcbiAgICBbQnJvd3NlRGVsYXlNc109XCJCcm93c2VEZWxheU1zXCI+XHJcbiAgICA8bmctdGVtcGxhdGUgI2hlYWRlcl9pbm5lciBsZXQtaGVhZGVySXRlbT5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZGVyX3RyOyBjb250ZXh0IDogeyRpbXBsaWNpdDogaGVhZGVySXRlbX1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbjwvY2hhcnQtcGFnZXI+XHJcblxyXG48bmctY29udGFpbmVyICpuZ0lmPVwibG9hZGluZ0NoYXJ0ICYmIGxvYWRpbmdfdGVtcGxhdGVcIj5cclxuICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDogMTAwJTtcIiBbc3R5bGUuaGVpZ2h0XT1cImlzUGFnZWQgPyAnY2FsYygxMDAlIC0gNDRweCknIDogJzEwMCUnXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxvYWRpbmdfdGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJsb2FkaW5nQ2hhcnQgJiYgIWxvYWRpbmdfdGVtcGxhdGVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJlc2MtbG9hZGluZy1vdmVybGF5XCIgc3R5bGU9XCJ3aWR0aDogMTAwJTtcIiBbc3R5bGUuaGVpZ2h0XT1cImlzUGFnZWQgPyAnY2FsYygxMDAlIC0gNDRweCknIDogJzEwMCUnXCI+XHJcbiAgICAgICAgPHAgY2xhc3M9XCJsYWJlbFwiPkxvYWRpbmcuLi4uPC9wPlxyXG4gICAgPC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuPGRpdiBbY2xhc3MuaGlkZS1ibG9ja109XCJsb2FkaW5nQ2hhcnRcIiBpZD1cInt7bmFtZX19XCIgc3R5bGU9XCJ3aWR0aDogMTAwJTtcIiBbc3R5bGUuaGVpZ2h0XT1cImlzUGFnZWQgPyAnY2FsYygxMDAlIC0gNDRweCknIDogJzEwMCUnXCI+PC9kaXY+Il19
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXMtdmVydGljYWwtc3RhY2tlZC1jaGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcy1jaGFydHMvc3JjL2xpYi9jb21wb25lbnRzL3NwZWNpYWxpemF0aW9ucy9lcy12ZXJ0aWNhbC1zdGFja2VkLWNoYXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VzLWNoYXJ0cy9zcmMvbGliL2NvbXBvbmVudHMvYmFzZS9iYXNlLWNoYXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQVUsdUJBQXVCLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFHbkgsT0FBTyxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUvRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUlsRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNsRyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7Ozs7OztBQUl6Rjs7R0FFRztBQU9ILE1BQU0sT0FBTywrQkFBZ0MsU0FBUSxrQkFBa0I7SUFzQ3JFOztPQUVHO0lBQ0gsWUFBWSxFQUFjLEVBQUUsV0FBd0IsRUFBRSxlQUFnQyxFQUFVLE9BQW9CLEVBQUUsSUFBWSxFQUMzRyxVQUFrQixFQUNyQixRQUFpQixFQUNYLGNBQXVCLEVBQzNCLFVBQWtCLEVBQ25CLFNBQWlCO1FBQ3BDLEtBQUssQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBTmIsWUFBTyxHQUFQLE9BQU8sQ0FBYTtJQU9wSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCw0QkFBNEI7UUFDMUIsT0FBTyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGlCQUFpQjtRQUNmLE9BQXFDLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLDRCQUE0QixFQUFFLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILG9CQUFvQixDQUFDLGNBQTRDO1FBQy9ELGNBQWMsQ0FBQyxxQkFBcUIsR0FBRyxjQUFjLENBQUMscUJBQXFCLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztRQUN4SixjQUFjLENBQUMsVUFBVSxHQUFHLGNBQWMsQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQzVHLGNBQWMsQ0FBQyxtQ0FBbUMsR0FBRyxjQUFjLENBQUMsbUNBQW1DLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsbUNBQW1DLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQztRQUNoTixjQUFjLENBQUMsd0JBQXdCLEdBQUcsY0FBYyxDQUFDLHdCQUF3QixJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUM7UUFDcEssY0FBYyxDQUFDLHNCQUFzQixHQUFHLGNBQWMsQ0FBQyxzQkFBc0IsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDO0lBQzlKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFVBQVUsQ0FBQyxjQUE0QztRQUNyRCxPQUFPLElBQUksMkJBQTJCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBMkIsSUFBSSxDQUFDLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQztJQUN2SCxDQUFDOzs0SEF2RlUsK0JBQStCLHVKQTBDaEMsV0FBVyxhQUNYLFFBQVEsYUFDUixjQUFjLGFBQ2QsVUFBVSxhQUNWLFNBQVM7Z0hBOUNSLCtCQUErQix3WUN2QjVDLHdqQ0FtQndJOzJGREkzSCwrQkFBK0I7a0JBTjNDLFNBQVM7K0JBQ0UsMkJBQTJCLG1CQUdwQix1QkFBdUIsQ0FBQyxNQUFNOzBMQTRDWixNQUFNOzBCQUF0QyxNQUFNOzJCQUFDLFdBQVc7OzBCQUNsQixNQUFNOzJCQUFDLFFBQVE7OzBCQUNmLE1BQU07MkJBQUMsY0FBYzs7MEJBQ3JCLE1BQU07MkJBQUMsVUFBVTs7MEJBQ2pCLE1BQU07MkJBQUMsU0FBUzs0Q0F6Q1YsSUFBSTtzQkFBWixLQUFLO2dCQUtHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBTUkscUJBQXFCO3NCQUE3QixLQUFLO2dCQUtHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBS0csbUNBQW1DO3NCQUEzQyxLQUFLO2dCQUtHLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFLRyxzQkFBc0I7c0JBQTlCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBJbmplY3QsIFBMQVRGT1JNX0lELCBOZ1pvbmUsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBCYXNlQWRhcHRlciB9IGZyb20gJy4uLy4uL2FkYXB0ZXJzL0Jhc2VBZGFwdGVyJztcclxuaW1wb3J0IHsgRVNDX0FOSU1BVElPTlMsIEVTQ19MT0NBTEUsIEVTQ19USEVNRSwgRVNDX0xPR1MgfSBmcm9tICcuLi8uLi90b2tlbnMnO1xyXG5cclxuaW1wb3J0IHsgQmFzZUNoYXJ0Q29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS9iYXNlLWNoYXJ0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENoYXJ0TG9hZGVyIH0gZnJvbSBcIi4uLy4uL21vZGVscy9jb3JlL0NoYXJ0TG9hZGVyXCI7XHJcbmltcG9ydCB7IENoYXJ0RGlzcGF0Y2hlciB9IGZyb20gXCIuLi8uLi9tb2RlbHMvY29yZS9DaGFydERpc3BhdGNoZXJcIjtcclxuXHJcbmltcG9ydCB7IFZlcnRpY2FsU3RhY2tlZENoYXJ0U2V0dGluZ3MgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2V0dGluZ3MvVmVydGljYWxTdGFja2VkQ2hhcnRTZXR0aW5ncyc7XHJcbmltcG9ydCB7IFZlcnRpY2FsU3RhY2tlZENoYXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL1ZlcnRpY2FsU3RhY2tlZENoYXJ0U2VydmljZSc7XHJcbmltcG9ydCB7IFZlcnRpY2FsU3RhY2tlZENoYXJ0RGF0YSB9IGZyb20gJy4uLy4uL21vZGVscy9kYXRhL1ZlcnRpY2FsU3RhY2tlZENoYXJ0RGF0YSc7XHJcbmltcG9ydCB7IFBhZ2VkQ2hhcnREYXRhIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2RhdGEvUGFnZWRDaGFydERhdGEnO1xyXG5cclxuLyoqXHJcbiAqIENvbXBvbmVudGUgc3BlY2lmaWNvIHBlciBsYSBncmFmaWNhemlvbmUgZGkgdW4gZ3JhZmljbyBhIEJhcnJlIGluIG1vZGFsaXTDoCBTdGFja2VkICh1bmEgc2VyaWUgc29wcmEgbCdhbHRyYSlcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZXMtdmVydGljYWwtc3RhY2tlZC1jaGFydCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuLi9iYXNlL2Jhc2UtY2hhcnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuLi9iYXNlL2Jhc2UtY2hhcnQuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXNWZXJ0aWNhbFN0YWNrZWRDaGFydENvbXBvbmVudCBleHRlbmRzIEJhc2VDaGFydENvbXBvbmVudCB7XHJcblxyXG4gIC8qKlxyXG4gICAqIERhdGkgc3BlY2lmaWNpIHBlciBpbCBncmFmaWNvIG8gZGkgdW4gdGlwbyB0cmFtdXRhYmlsZSBhbCB0aXBvICoqVmVydGljYWxTdGFja2VkQ2hhcnREYXRhKiogY29sIHN1cHBvcnRvIGRlbCAqKkJhc2VBZGFwdGVyKipcclxuICAgKi9cclxuICBASW5wdXQoKSBEYXRhOiBWZXJ0aWNhbFN0YWNrZWRDaGFydERhdGEgfCBhbnk7XHJcblxyXG4gIC8qKlxyXG4gICAqIExpc3RhIGRpIERhdGkgc3BlY2lmaWNpIHBlciB1biBncmFmaWNvIHBhZ2luYXRvIG8gZGkgY3VpIG9nbmkgYmxvY2NvIGRhdGkgw6ggdHJhbXV0YWJpbGUgYWwgdGlwbyAqKlZlcnRpY2FsU3RhY2tlZENoYXJ0RGF0YSoqIGNvbCBzdXBwb3J0byBkZWwgKipCYXNlQWRhcHRlcioqXHJcbiAgICovXHJcbiAgQElucHV0KCkgRGF0YUFycmF5OiBQYWdlZENoYXJ0RGF0YTxWZXJ0aWNhbFN0YWNrZWRDaGFydERhdGE+W10gfCBQYWdlZENoYXJ0RGF0YTxhbnk+W107XHJcblxyXG4gIC8qKlxyXG4gICAqIEluZGljYSBsYSBwZXJjZW50dWFsZSBkaSBjZWxsYSBjaGUgbGEgY29sb25uYSBhbmRyw6AgYSByaWVtcGlyZS4gVW4gdmFsb3JlIHBhcmkgYSAxMDAgcmllbXBpcsOgIGxhIGNlbGxhIGNvbXBsZXRhbWVudGUgXHJcbiAgICogZSB0dXR0ZSBsZSBiYXJyZSByaXN1bHRlcmFubm8gYXBwaWNjaWNhdGUgbCd1biBsJ2FsdHJhXHJcbiAgICovXHJcbiAgIEBJbnB1dCgpIENvbHVtbldpZHRoUGVyY2VudGFnZTogbnVtYmVyO1xyXG5cclxuICAgLyoqXHJcbiAgICAqIEluZGljYSBsZSBkaW1lbnNpb25pIG1hc3NpbWUgZGVsbGEgbGFiZWwgYXNzb2NpYXRhIGEgdW4gZ3J1cHBvIGRpIGJhcnJlXHJcbiAgICAqL1xyXG4gICBASW5wdXQoKSBMYWJlbFdpZHRoOiBudW1iZXI7XHJcbiBcclxuICAgLyoqXHJcbiAgICAqIEluZGljYSBsYSBkaW1lbnNpb25lIG1hc3NpbWEgc290dG8gbGEgcXVhbGUgbGEgbGFiZWwgYXNzb2NpYXRhIGEgdW4gZ3J1cHBvIGRpIGJhcnJlIHNpIGluY2xpbmEgY2VyY2FuZG8gZGkgb2NjdXBhcmUgbWVubyBzcGF6aW9cclxuICAgICovXHJcbiAgIEBJbnB1dCgpIExhYmVsVmVydGljYWxPcmllbnRhdGlvbkN1dG9mZldpZHRoOiBudW1iZXI7XHJcbiBcclxuICAgLyoqXHJcbiAgICAqIEluZGljYSB1biBvZmZzZXQgb3JpenpvbnRhbGUgZGEgYXBwbGljYXJlIGFsbGEgbGFiZWwgYXNzb2NpYXRhIGEgdW4gZ3J1cHBvIGRpIGJhcnJlIHF1YWxvcmEgZm9zc2UgY29tcHJlc3NhIGEgY2F1c2EgZGVsbGEgbWFuY2FuemEgZGkgc3BhemlvXHJcbiAgICAqL1xyXG4gICBASW5wdXQoKSBMYWJlbFJpZ2h0V2hlbkNvbXByZXNzZWQ6IG51bWJlcjtcclxuIFxyXG4gICAvKipcclxuICAgICogSW5kaWNhIHVuIG9mZnNldCB2ZXJ0aWNhbGUgZGEgYXBwbGljYXJlIGFsbGEgbGFiZWwgYXNzb2NpYXRhIGEgdW4gZ3J1cHBvIGRpIGJhcnJlIHF1YWxvcmEgZm9zc2UgY29tcHJlc3NhIGEgY2F1c2EgZGVsbGEgbWFuY2FuemEgZGkgc3BhemlvXHJcbiAgICAqL1xyXG4gICBASW5wdXQoKSBMYWJlbFRvcFdoZW5Db21wcmVzc2VkOiBudW1iZXI7XHJcbiAgXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKGVsOiBFbGVtZW50UmVmLCBDaGFydExvYWRlcjogQ2hhcnRMb2FkZXIsIENoYXJ0RGlzcGF0Y2hlcjogQ2hhcnREaXNwYXRjaGVyLCBwcml2YXRlIGFkYXB0ZXI6IEJhc2VBZGFwdGVyLCB6b25lOiBOZ1pvbmUsXHJcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwbGF0Zm9ybUlkOiBPYmplY3QsXHJcbiAgICBASW5qZWN0KEVTQ19MT0dTKSBFU0NfTE9HUzogYm9vbGVhbixcclxuICAgIEBJbmplY3QoRVNDX0FOSU1BVElPTlMpIEVTQ19BTklNQVRJT05TOiBib29sZWFuLFxyXG4gICAgQEluamVjdChFU0NfTE9DQUxFKSBFU0NfTE9DQUxFOiBzdHJpbmcsXHJcbiAgICBASW5qZWN0KEVTQ19USEVNRSkgRVNDX1RIRU1FOiBzdHJpbmcpIHtcclxuICAgIHN1cGVyKGVsLCBwbGF0Zm9ybUlkLCB6b25lLCBDaGFydExvYWRlciwgQ2hhcnREaXNwYXRjaGVyLCBFU0NfTE9HUywgRVNDX0FOSU1BVElPTlMsIEVTQ19MT0NBTEUsIEVTQ19USEVNRSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPdHRpZW5lIGxlIHByb3ByaWV0w6Agc3BlY2lmaWNoZSBwZXIgcXVlc3RhIHRpcG9sb2dpYSBkaSBncmFmaWNvIHBlciBjdWkgc2VydmUgcmlncmFmaWNhcmVcclxuICAgKi9cclxuICBnZXRTcGVjaWZpY1Byb3BlcnRpZXNUb0NoZWNrKCk6IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiBbXCJEYXRhXCIsIFwiRGF0YUFycmF5XCJdO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT3R0aWVuZSBpIFNldHRpbmdzIChFcmVkaXRhdGkgZGFsbGEgY2xhc3NlIGJhc2UsIHF1aW5kaSBkZWwgdGlwbyBnZW5lcmljbyAqKkJhc2VTZXR0aW5ncyoqKSBjYXN0YXRpIGFsIHRpcG8gc3BlY2lmaWNvIHBlciBxdWVzdG8gZ3JhZmljb1xyXG4gICAqIFxyXG4gICAqIEByZXR1cm5zIHtWZXJ0aWNhbFN0YWNrZWRDaGFydFNldHRpbmdzfSBTZXR0aW5ncyBjYXN0YXRpIGFsIHRpcG8gZ2l1c3RvXHJcbiAgICovXHJcbiAgZ2V0Q2FzdGVkU2V0dGluZ3MoKTogVmVydGljYWxTdGFja2VkQ2hhcnRTZXR0aW5ncyB7XHJcbiAgICByZXR1cm4gPFZlcnRpY2FsU3RhY2tlZENoYXJ0U2V0dGluZ3M+KHRoaXMuU2V0dGluZ3MgPz8gbmV3IFZlcnRpY2FsU3RhY2tlZENoYXJ0U2V0dGluZ3MoKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbnRlZ3JhIGkgU2V0dGluZ3MgYmFzZSBjb24gdHV0dGkgZ2xpIElucHV0IHNwZWNpZmljaSBkaSBxdWVzdG8gZ3JhZmljbywgZGFuZG8gcHJpb3JpdMOgIGFpIFNldHRpbmdzIHNlIGRlZmluaXRpXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHtWZXJ0aWNhbFN0YWNrZWRDaGFydFNldHRpbmdzfSBzZXR0aW5nc0Nhc3RlZCBTZXR0aW5ncyBjYXN0YXRpIGFsIHRpcG8gZ2l1c3RvXHJcbiAgICovXHJcbiAgZmlsbFNwZWNpZmljU2V0dGluZ3Moc2V0dGluZ3NDYXN0ZWQ6IFZlcnRpY2FsU3RhY2tlZENoYXJ0U2V0dGluZ3MpOiB2b2lkIHtcclxuICAgIHNldHRpbmdzQ2FzdGVkLkNvbHVtbldpZHRoUGVyY2VudGFnZSA9IHNldHRpbmdzQ2FzdGVkLkNvbHVtbldpZHRoUGVyY2VudGFnZSAhPSBudWxsID8gc2V0dGluZ3NDYXN0ZWQuQ29sdW1uV2lkdGhQZXJjZW50YWdlIDogdGhpcy5Db2x1bW5XaWR0aFBlcmNlbnRhZ2U7XHJcbiAgICBzZXR0aW5nc0Nhc3RlZC5MYWJlbFdpZHRoID0gc2V0dGluZ3NDYXN0ZWQuTGFiZWxXaWR0aCAhPSBudWxsID8gc2V0dGluZ3NDYXN0ZWQuTGFiZWxXaWR0aCA6IHRoaXMuTGFiZWxXaWR0aDtcclxuICAgIHNldHRpbmdzQ2FzdGVkLkxhYmVsVmVydGljYWxPcmllbnRhdGlvbkN1dG9mZldpZHRoID0gc2V0dGluZ3NDYXN0ZWQuTGFiZWxWZXJ0aWNhbE9yaWVudGF0aW9uQ3V0b2ZmV2lkdGggIT0gbnVsbCA/IHNldHRpbmdzQ2FzdGVkLkxhYmVsVmVydGljYWxPcmllbnRhdGlvbkN1dG9mZldpZHRoIDogdGhpcy5MYWJlbFZlcnRpY2FsT3JpZW50YXRpb25DdXRvZmZXaWR0aDtcclxuICAgIHNldHRpbmdzQ2FzdGVkLkxhYmVsUmlnaHRXaGVuQ29tcHJlc3NlZCA9IHNldHRpbmdzQ2FzdGVkLkxhYmVsUmlnaHRXaGVuQ29tcHJlc3NlZCAhPSBudWxsID8gc2V0dGluZ3NDYXN0ZWQuTGFiZWxSaWdodFdoZW5Db21wcmVzc2VkIDogdGhpcy5MYWJlbFJpZ2h0V2hlbkNvbXByZXNzZWQ7XHJcbiAgICBzZXR0aW5nc0Nhc3RlZC5MYWJlbFRvcFdoZW5Db21wcmVzc2VkID0gc2V0dGluZ3NDYXN0ZWQuTGFiZWxUb3BXaGVuQ29tcHJlc3NlZCAhPSBudWxsID8gc2V0dGluZ3NDYXN0ZWQuTGFiZWxUb3BXaGVuQ29tcHJlc3NlZCA6IHRoaXMuTGFiZWxUb3BXaGVuQ29tcHJlc3NlZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVmZmV0dHVhIGlsIHJlbmRlcmluZyBkaSBxdWVzdG8gZ3JhZmljbyBpbiBiYXNlIGFpIFNldHRpbmdzXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHtWZXJ0aWNhbFN0YWNrZWRDaGFydFNldHRpbmdzfSBzZXR0aW5nc0Nhc3RlZCBJbXBvc3RhemlvbmkgZGkgZ3JhZmljYXppb25lXHJcbiAgICogQHJldHVybnMge1ZlcnRpY2FsU3RhY2tlZENoYXJ0U2VydmljZX0gTGEgc2VydmljZSB1dGlsaXp6YXRhIHBlciBpbCByZW5kZXJpbmcgbmVsbG8gc3RhdG8gc3ViaXRvIHN1Y2Nlc3Npdm8gYWwgcmVuZGVyaW5nIGVmZmV0dHVhdG9cclxuICAgKi9cclxuICBncmFwaGljYXRlKHNldHRpbmdzQ2FzdGVkOiBWZXJ0aWNhbFN0YWNrZWRDaGFydFNldHRpbmdzKTogYW55IHtcclxuICAgIHJldHVybiBuZXcgVmVydGljYWxTdGFja2VkQ2hhcnRTZXJ2aWNlKHRoaXMuYWRhcHRlcikuZ3JhcGhpY2F0ZSg8VmVydGljYWxTdGFja2VkQ2hhcnREYXRhPnRoaXMuRGF0YSwgc2V0dGluZ3NDYXN0ZWQpO1xyXG4gIH1cclxufSIsIjxjaGFydC1wYWdlciAqbmdJZj1cImlzUGFnZWRcIiAob25QYWdlQ2hhbmdlKT1cImNoYW5nZVBhZ2UoJGV2ZW50KVwiIFtJdGVtc109XCJEYXRhQXJyYXlcIiBbRHRvc109XCJEYXRhRHRvc1wiIFtTdGFydEluZGV4XT1cIkRhdGFEdG9TdGFydEluZGV4XCJcclxuICAgIFtCcm93c2VEZWxheU1zXT1cIkJyb3dzZURlbGF5TXNcIj5cclxuICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyX2lubmVyIGxldC1oZWFkZXJJdGVtPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXJfdHI7IGNvbnRleHQgOiB7JGltcGxpY2l0OiBoZWFkZXJJdGVtfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuPC9jaGFydC1wYWdlcj5cclxuXHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJsb2FkaW5nQ2hhcnQgJiYgbG9hZGluZ190ZW1wbGF0ZVwiPlxyXG4gICAgPGRpdiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiIFtzdHlsZS5oZWlnaHRdPVwiaXNQYWdlZCA/ICdjYWxjKDEwMCUgLSA0NHB4KScgOiAnMTAwJSdcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9hZGluZ190ZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvYWRpbmdDaGFydCAmJiAhbG9hZGluZ190ZW1wbGF0ZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImVzYy1sb2FkaW5nLW92ZXJsYXlcIiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiIFtzdHlsZS5oZWlnaHRdPVwiaXNQYWdlZCA/ICdjYWxjKDEwMCUgLSA0NHB4KScgOiAnMTAwJSdcIj5cclxuICAgICAgICA8cCBjbGFzcz1cImxhYmVsXCI+TG9hZGluZy4uLi48L3A+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG48ZGl2IFtjbGFzcy5oaWRlLWJsb2NrXT1cImxvYWRpbmdDaGFydFwiIGlkPVwie3tuYW1lfX1cIiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiIFtzdHlsZS5oZWlnaHRdPVwiaXNQYWdlZCA/ICdjYWxjKDEwMCUgLSA0NHB4KScgOiAnMTAwJSdcIj48L2Rpdj4iXX0=
|
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
import { NgModule } from '@angular/core';
|
|
2
|
-
import { EsChartComponent, EsLineChartComponent, EsAreaChartComponent, EsPieChartComponent, EsVertical2DChartComponent, EsVerticalChartComponent, EsVerticalStackedChartComponent, PageChartSelector } from '../lib/components';
|
|
3
|
-
import { ChartLoader, ChartDispatcher } from './models/core';
|
|
4
|
-
import { BaseAdapter } from './adapters';
|
|
5
|
-
import { ESC_LOCALE, ESC_ANIMATIONS, ESC_THEME, ESC_LOGS } from './tokens';
|
|
6
2
|
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { ChartLoader } from './models/core/ChartLoader';
|
|
4
|
+
import { ChartDispatcher } from './models/core/ChartDispatcher';
|
|
5
|
+
import { BaseAdapter } from './adapters/BaseAdapter';
|
|
6
|
+
import { ESC_LOCALE, ESC_ANIMATIONS, ESC_THEME, ESC_LOGS } from './tokens';
|
|
7
|
+
import { EsLineChartComponent } from "./components/specializations/es-line-chart.component";
|
|
8
|
+
import { EsAreaChartComponent } from "./components/specializations/es-area-chart.component";
|
|
9
|
+
import { EsPieChartComponent } from "./components/specializations/es-pie-chart.component";
|
|
10
|
+
import { EsVertical2DChartComponent } from "./components/specializations/es-vertical-2d-chart.component";
|
|
11
|
+
import { EsVerticalChartComponent } from "./components/specializations/es-vertical-chart.component";
|
|
12
|
+
import { EsVerticalStackedChartComponent } from "./components/specializations/es-vertical-stacked-chart.component";
|
|
13
|
+
import { PageChartSelector } from "./components/chart-pager/chart-pager.component";
|
|
14
|
+
import { EsChartComponent } from "./components/specializations/es-chart.component";
|
|
7
15
|
import * as i0 from "@angular/core";
|
|
8
16
|
/** Componenti esportati dal modulo */
|
|
9
17
|
const COMPONENTS = [
|
|
@@ -58,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
|
|
|
58
66
|
exports: [...COMPONENTS]
|
|
59
67
|
}]
|
|
60
68
|
}] });
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXMtY2hhcnRzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2VzLWNoYXJ0cy9zcmMvbGliL2VzLWNoYXJ0cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXJELE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFM0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDNUYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDNUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDMUYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDekcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDcEcsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDbkgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDbkYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saURBQWlELENBQUM7O0FBR25GLHNDQUFzQztBQUN0QyxNQUFNLFVBQVUsR0FBRztJQUNqQixnQkFBZ0I7SUFDaEIsb0JBQW9CO0lBQ3BCLG1CQUFtQjtJQUNuQiwwQkFBMEI7SUFDMUIsd0JBQXdCO0lBQ3hCLCtCQUErQjtJQUMvQixpQkFBaUI7SUFDakIsb0JBQW9CO0NBQ3JCLENBQUE7QUFRRCxNQUFNLE9BQU8sY0FBYztJQUV6QixNQUFNLENBQUMsT0FBTyxDQUFDLE1BQTZCO1FBQzFDLE9BQU87WUFDTCxRQUFRLEVBQUUsY0FBYztZQUN4QixTQUFTLEVBQUU7Z0JBQ1QsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxJQUFJLE9BQU8sRUFBRTtnQkFDNUQsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFO2dCQUM3RixFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLElBQUksY0FBYyxFQUFFO2dCQUNqRSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxTQUFTLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUU7Z0JBQ3RGLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sSUFBSSxXQUFXLEVBQUU7Z0JBQ2xFLHVEQUF1RDtnQkFDdkQsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxJQUFJLFdBQVcsQ0FBQyxNQUFNLEVBQUUsU0FBUyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLEVBQUU7YUFDM0c7U0FDRixDQUFDO0lBQ0osQ0FBQzs7MkdBZlUsY0FBYzs0R0FBZCxjQUFjLGlCQWhCekIsZ0JBQWdCO1FBQ2hCLG9CQUFvQjtRQUNwQixtQkFBbUI7UUFDbkIsMEJBQTBCO1FBQzFCLHdCQUF3QjtRQUN4QiwrQkFBK0I7UUFDL0IsaUJBQWlCO1FBQ2pCLG9CQUFvQixhQUlWLFlBQVksYUFYdEIsZ0JBQWdCO1FBQ2hCLG9CQUFvQjtRQUNwQixtQkFBbUI7UUFDbkIsMEJBQTBCO1FBQzFCLHdCQUF3QjtRQUN4QiwrQkFBK0I7UUFDL0IsaUJBQWlCO1FBQ2pCLG9CQUFvQjs0R0FTVCxjQUFjLGFBSGQsQ0FBQyxlQUFlLENBQUMsWUFGbkIsQ0FBQyxZQUFZLENBQUM7MkZBS1osY0FBYztrQkFOMUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLFlBQVksRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDO29CQUM3QixTQUFTLEVBQUUsQ0FBQyxlQUFlLENBQUM7b0JBQzVCLE9BQU8sRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDO2lCQUN6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlLCBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5pbXBvcnQgeyBFc0NoYXJ0c01vZHVsZUNvbmZpZyB9IGZyb20gJy4vbW9kZWxzL0VzQ2hhYXJ0c01vZHVsZUNvbmZpZyc7XHJcbmltcG9ydCB7IENoYXJ0TG9hZGVyIH0gZnJvbSAnLi9tb2RlbHMvY29yZS9DaGFydExvYWRlcic7XHJcbmltcG9ydCB7IENoYXJ0RGlzcGF0Y2hlciB9IGZyb20gJy4vbW9kZWxzL2NvcmUvQ2hhcnREaXNwYXRjaGVyJztcclxuaW1wb3J0IHsgQmFzZUFkYXB0ZXIgfSBmcm9tICcuL2FkYXB0ZXJzL0Jhc2VBZGFwdGVyJztcclxuXHJcbmltcG9ydCB7IEVTQ19MT0NBTEUsIEVTQ19BTklNQVRJT05TLCBFU0NfVEhFTUUsIEVTQ19MT0dTIH0gZnJvbSAnLi90b2tlbnMnO1xyXG5cclxuaW1wb3J0IHsgRXNMaW5lQ2hhcnRDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL3NwZWNpYWxpemF0aW9ucy9lcy1saW5lLWNoYXJ0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBFc0FyZWFDaGFydENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvc3BlY2lhbGl6YXRpb25zL2VzLWFyZWEtY2hhcnQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEVzUGllQ2hhcnRDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL3NwZWNpYWxpemF0aW9ucy9lcy1waWUtY2hhcnQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEVzVmVydGljYWwyRENoYXJ0Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9zcGVjaWFsaXphdGlvbnMvZXMtdmVydGljYWwtMmQtY2hhcnQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEVzVmVydGljYWxDaGFydENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvc3BlY2lhbGl6YXRpb25zL2VzLXZlcnRpY2FsLWNoYXJ0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBFc1ZlcnRpY2FsU3RhY2tlZENoYXJ0Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9zcGVjaWFsaXphdGlvbnMvZXMtdmVydGljYWwtc3RhY2tlZC1jaGFydC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgUGFnZUNoYXJ0U2VsZWN0b3IgfSBmcm9tIFwiLi9jb21wb25lbnRzL2NoYXJ0LXBhZ2VyL2NoYXJ0LXBhZ2VyLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBFc0NoYXJ0Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9zcGVjaWFsaXphdGlvbnMvZXMtY2hhcnQuY29tcG9uZW50XCI7XHJcblxyXG5cclxuLyoqIENvbXBvbmVudGkgZXNwb3J0YXRpIGRhbCBtb2R1bG8gKi9cclxuY29uc3QgQ09NUE9ORU5UUyA9IFtcclxuICBFc0NoYXJ0Q29tcG9uZW50LFxyXG4gIEVzTGluZUNoYXJ0Q29tcG9uZW50LFxyXG4gIEVzUGllQ2hhcnRDb21wb25lbnQsXHJcbiAgRXNWZXJ0aWNhbDJEQ2hhcnRDb21wb25lbnQsXHJcbiAgRXNWZXJ0aWNhbENoYXJ0Q29tcG9uZW50LFxyXG4gIEVzVmVydGljYWxTdGFja2VkQ2hhcnRDb21wb25lbnQsXHJcbiAgUGFnZUNoYXJ0U2VsZWN0b3IsXHJcbiAgRXNBcmVhQ2hhcnRDb21wb25lbnRcclxuXVxyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcclxuICBkZWNsYXJhdGlvbnM6IFsuLi5DT01QT05FTlRTXSxcclxuICBwcm92aWRlcnM6IFtDaGFydERpc3BhdGNoZXJdLFxyXG4gIGV4cG9ydHM6IFsuLi5DT01QT05FTlRTXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXNDaGFydHNNb2R1bGUge1xyXG5cclxuICBzdGF0aWMgZm9yUm9vdChjb25maWc/OiBFc0NoYXJ0c01vZHVsZUNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8RXNDaGFydHNNb2R1bGU+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG5nTW9kdWxlOiBFc0NoYXJ0c01vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgeyBwcm92aWRlOiBFU0NfTE9DQUxFLCB1c2VWYWx1ZTogY29uZmlnPy5sb2NhbGUgfHwgJ2l0LUlUJyB9LFxyXG4gICAgICAgIHsgcHJvdmlkZTogRVNDX0FOSU1BVElPTlMsIHVzZVZhbHVlOiBjb25maWc/LmFuaW1hdGlvbnMgPT0gbnVsbCA/IHRydWUgOiBjb25maWc/LmFuaW1hdGlvbnMgfSxcclxuICAgICAgICB7IHByb3ZpZGU6IEVTQ19USEVNRSwgdXNlVmFsdWU6IGNvbmZpZz8udGhlbWUgfHwgJ3NwaXJpdGVkYXdheScgfSxcclxuICAgICAgICB7IHByb3ZpZGU6IEVTQ19MT0dTLCB1c2VWYWx1ZTogY29uZmlnPy5kZWJ1Z01vZGUgPT0gbnVsbCA/IGZhbHNlIDogY29uZmlnPy5kZWJ1Z01vZGUgfSxcclxuICAgICAgICB7IHByb3ZpZGU6IEJhc2VBZGFwdGVyLCB1c2VDbGFzczogY29uZmlnPy5hZGFwdGVyIHx8IEJhc2VBZGFwdGVyIH0sXHJcbiAgICAgICAgLy8gU2luZ2xldG9uIGNhdHRpdmEgYnkgRW1hLiBWZXJpZmljYXJlIHN0cmFkZSBtaWdsaW9yaVxyXG4gICAgICAgIHsgcHJvdmlkZTogQ2hhcnRMb2FkZXIsIHVzZVZhbHVlOiBuZXcgQ2hhcnRMb2FkZXIoY29uZmlnPy5kZWJ1Z01vZGUgPT0gbnVsbCA/IGZhbHNlIDogY29uZmlnPy5kZWJ1Z01vZGUpIH1cclxuICAgICAgXVxyXG4gICAgfTtcclxuICB9XHJcbn0iXX0=
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { Injectable, Inject } from '@angular/core';
|
|
2
|
+
import { ESC_LOGS } from '../../tokens';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* Classe che si occupa del dispatch delle operazioni di rendering dei grafici utilizzando una coda per permettere ad ogni grafico di avere temi e localizzazione custom
|
|
6
|
+
*/
|
|
7
|
+
export class ChartDispatcher {
|
|
8
|
+
/**
|
|
9
|
+
* @ignore
|
|
10
|
+
*/
|
|
11
|
+
constructor(logs) {
|
|
12
|
+
this.logs = logs;
|
|
13
|
+
/**
|
|
14
|
+
* Coda di inizializzazioni ancora da eseguire. Quando questa è vuota significa che nessuno sta creando grafici
|
|
15
|
+
*/
|
|
16
|
+
this.Initializations = [];
|
|
17
|
+
/**
|
|
18
|
+
* Lista dei grafici inizializzati e attivi in un dato momento (viene registrata la proprietà **name**). Non è possibile registrare due grafici con lo stesso identificativo
|
|
19
|
+
*/
|
|
20
|
+
this.InitializedGraphs = [];
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Registra un grafico da visualizzare insieme alla propria funzione di creazione. Quest'ultima sarà differita fino a che tutti i grafici
|
|
24
|
+
* precedentemente registati non hanno finito la fase di inizializzazione
|
|
25
|
+
*
|
|
26
|
+
* @param {string} name Identificativo del grafico da registrare
|
|
27
|
+
* @param {Function} chartCreationFunction Funzione che fisicamente dovrà occuparsi della creazione del grafico
|
|
28
|
+
*/
|
|
29
|
+
register(name, chartCreationFunction) {
|
|
30
|
+
if (this.InitializedGraphs.indexOf(name) != -1)
|
|
31
|
+
throw "Attempting to register a duplicate chart '" + name + "'. Make sure the 'name' properties of your charts are univoque";
|
|
32
|
+
this.log("DISPATCHER: Registering chart creation function execution for " + name);
|
|
33
|
+
this.Initializations.push({ name: name, function: chartCreationFunction });
|
|
34
|
+
if (this.Initializations.length == 1) {
|
|
35
|
+
this.log("DISPATCHER: Initial drain started");
|
|
36
|
+
this.drainInitQueues();
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Deregistra un grafico presente. Chiamata generalmente al dispose del grafico in questione quando non dev'essere più mostrato nella pagina corrente
|
|
41
|
+
*
|
|
42
|
+
* @param {string} name Identificativo del grafico da deregistrare
|
|
43
|
+
*/
|
|
44
|
+
deregisterGraph(name) {
|
|
45
|
+
let index = this.InitializedGraphs.indexOf(name);
|
|
46
|
+
if (index == -1) {
|
|
47
|
+
//Questo succede quando si cerca di distruggere il grafico mentre sta venendo graficato
|
|
48
|
+
this.log("DISPATCHER: Registration missing for chart " + name + " it was probably destroyed during load");
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
this.log("DISPATCHER: Chart deregistered " + name);
|
|
52
|
+
this.InitializedGraphs.splice(index, 1);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Metodo che esegue in maniera sequenziale le funzioni di inizializzazione dei grafici finché presenti
|
|
56
|
+
* in modo che nessun grafico possa essere inizializzato contemporaneamente ad un altro.
|
|
57
|
+
*
|
|
58
|
+
* Questo è il punto chiave che permette di avere per ogni grafico temi e locale differenti
|
|
59
|
+
*/
|
|
60
|
+
drainInitQueues() {
|
|
61
|
+
let toExecute = this.Initializations[0];
|
|
62
|
+
this.log("DISPATCHER: Executing initialization function for chart " + toExecute.name);
|
|
63
|
+
toExecute.function().then(() => {
|
|
64
|
+
this.log("DISPATCHER: initialization for chart " + toExecute.name + " is done");
|
|
65
|
+
this.InitializedGraphs.push(toExecute.name);
|
|
66
|
+
this.Initializations.splice(0, 1);
|
|
67
|
+
if (this.Initializations.length >= 1) {
|
|
68
|
+
this.log("DISPATCHER: Found queued initializations. Continuing");
|
|
69
|
+
this.drainInitQueues();
|
|
70
|
+
}
|
|
71
|
+
else
|
|
72
|
+
this.log("DISPATCHER: queue is over, nothing more to do");
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* @ignore
|
|
77
|
+
*/
|
|
78
|
+
log(text) {
|
|
79
|
+
if (this.logs)
|
|
80
|
+
console.log("@esfaenza/es-charts: " + text);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
ChartDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ChartDispatcher, deps: [{ token: ESC_LOGS }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
84
|
+
ChartDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ChartDispatcher });
|
|
85
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ChartDispatcher, decorators: [{
|
|
86
|
+
type: Injectable
|
|
87
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
88
|
+
type: Inject,
|
|
89
|
+
args: [ESC_LOGS]
|
|
90
|
+
}] }]; } });
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hhcnREaXNwYXRjaGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXMtY2hhcnRzL3NyYy9saWIvbW9kZWxzL2NvcmUvQ2hhcnREaXNwYXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBRXhDOztHQUVHO0FBRUgsTUFBTSxPQUFPLGVBQWU7SUFZeEI7O09BRUc7SUFDSCxZQUFzQyxJQUFhO1FBQWIsU0FBSSxHQUFKLElBQUksQ0FBUztRQWJuRDs7V0FFRztRQUNLLG9CQUFlLEdBQXNDLEVBQUUsQ0FBQztRQUVoRTs7V0FFRztRQUNLLHNCQUFpQixHQUFhLEVBQUUsQ0FBQztJQUtjLENBQUM7SUFFeEQ7Ozs7OztPQU1HO0lBQ0ksUUFBUSxDQUFDLElBQVksRUFBRSxxQkFBK0I7UUFDekQsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMxQyxNQUFNLDRDQUE0QyxHQUFHLElBQUksR0FBRyxnRUFBZ0UsQ0FBQztRQUVqSSxJQUFJLENBQUMsR0FBRyxDQUFDLGdFQUFnRSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ2xGLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBQzNFLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxHQUFHLENBQUMsbUNBQW1DLENBQUMsQ0FBQztZQUM5QyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDMUI7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGVBQWUsQ0FBQyxJQUFZO1FBQy9CLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakQsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDLEVBQ2Y7WUFDSSx1RkFBdUY7WUFDdkYsSUFBSSxDQUFDLEdBQUcsQ0FBQyw2Q0FBNkMsR0FBRyxJQUFJLEdBQUcsd0NBQXdDLENBQUMsQ0FBQztZQUMxRyxPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsR0FBRyxDQUFDLGlDQUFpQyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQzNDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLGVBQWU7UUFDbkIsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsR0FBRyxDQUFDLDBEQUEwRCxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV0RixTQUFTLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUMzQixJQUFJLENBQUMsR0FBRyxDQUFDLHVDQUF1QyxHQUFHLFNBQVMsQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLENBQUM7WUFDaEYsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDNUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO2dCQUNsQyxJQUFJLENBQUMsR0FBRyxDQUFDLHNEQUFzRCxDQUFDLENBQUM7Z0JBQ2pFLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQzthQUMxQjs7Z0JBRUcsSUFBSSxDQUFDLEdBQUcsQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1FBQ2xFLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOztPQUVHO0lBQ0ssR0FBRyxDQUFDLElBQVk7UUFDcEIsSUFBSSxJQUFJLENBQUMsSUFBSTtZQUNULE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDcEQsQ0FBQzs7NEdBbkZRLGVBQWUsa0JBZUosUUFBUTtnSEFmbkIsZUFBZTsyRkFBZixlQUFlO2tCQUQzQixVQUFVOzswQkFnQk0sTUFBTTsyQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBFU0NfTE9HUyB9IGZyb20gJy4uLy4uL3Rva2Vucyc7XHJcblxyXG4vKipcclxuICogQ2xhc3NlIGNoZSBzaSBvY2N1cGEgZGVsIGRpc3BhdGNoIGRlbGxlIG9wZXJhemlvbmkgZGkgcmVuZGVyaW5nIGRlaSBncmFmaWNpIHV0aWxpenphbmRvIHVuYSBjb2RhIHBlciBwZXJtZXR0ZXJlIGFkIG9nbmkgZ3JhZmljbyBkaSBhdmVyZSB0ZW1pIGUgbG9jYWxpenphemlvbmUgY3VzdG9tXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDaGFydERpc3BhdGNoZXIge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29kYSBkaSBpbml6aWFsaXp6YXppb25pIGFuY29yYSBkYSBlc2VndWlyZS4gUXVhbmRvIHF1ZXN0YSDDqCB2dW90YSBzaWduaWZpY2EgY2hlIG5lc3N1bm8gc3RhIGNyZWFuZG8gZ3JhZmljaVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIEluaXRpYWxpemF0aW9uczogeyBuYW1lOiBzdHJpbmcsIGZ1bmN0aW9uOiBhbnkgfVtdID0gW107XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBMaXN0YSBkZWkgZ3JhZmljaSBpbml6aWFsaXp6YXRpIGUgYXR0aXZpIGluIHVuIGRhdG8gbW9tZW50byAodmllbmUgcmVnaXN0cmF0YSBsYSBwcm9wcmlldMOgICoqbmFtZSoqKS4gTm9uIMOoIHBvc3NpYmlsZSByZWdpc3RyYXJlIGR1ZSBncmFmaWNpIGNvbiBsbyBzdGVzc28gaWRlbnRpZmljYXRpdm9cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBJbml0aWFsaXplZEdyYXBoczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBpZ25vcmVcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoQEluamVjdChFU0NfTE9HUykgcHJpdmF0ZSBsb2dzOiBib29sZWFuKSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlZ2lzdHJhIHVuIGdyYWZpY28gZGEgdmlzdWFsaXp6YXJlIGluc2llbWUgYWxsYSBwcm9wcmlhIGZ1bnppb25lIGRpIGNyZWF6aW9uZS4gUXVlc3QndWx0aW1hIHNhcsOgIGRpZmZlcml0YSBmaW5vIGEgY2hlIHR1dHRpIGkgZ3JhZmljaVxyXG4gICAgICogcHJlY2VkZW50ZW1lbnRlIHJlZ2lzdGF0aSBub24gaGFubm8gZmluaXRvIGxhIGZhc2UgZGkgaW5pemlhbGl6emF6aW9uZVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSBJZGVudGlmaWNhdGl2byBkZWwgZ3JhZmljbyBkYSByZWdpc3RyYXJlXHJcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBjaGFydENyZWF0aW9uRnVuY3Rpb24gRnVuemlvbmUgY2hlIGZpc2ljYW1lbnRlIGRvdnLDoCBvY2N1cGFyc2kgZGVsbGEgY3JlYXppb25lIGRlbCBncmFmaWNvXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWdpc3RlcihuYW1lOiBzdHJpbmcsIGNoYXJ0Q3JlYXRpb25GdW5jdGlvbjogRnVuY3Rpb24pIHtcclxuICAgICAgICBpZiAodGhpcy5Jbml0aWFsaXplZEdyYXBocy5pbmRleE9mKG5hbWUpICE9IC0xKVxyXG4gICAgICAgICAgICB0aHJvdyBcIkF0dGVtcHRpbmcgdG8gcmVnaXN0ZXIgYSBkdXBsaWNhdGUgY2hhcnQgJ1wiICsgbmFtZSArIFwiJy4gTWFrZSBzdXJlIHRoZSAnbmFtZScgcHJvcGVydGllcyBvZiB5b3VyIGNoYXJ0cyBhcmUgdW5pdm9xdWVcIjtcclxuXHJcbiAgICAgICAgdGhpcy5sb2coXCJESVNQQVRDSEVSOiBSZWdpc3RlcmluZyBjaGFydCBjcmVhdGlvbiBmdW5jdGlvbiBleGVjdXRpb24gZm9yIFwiICsgbmFtZSk7XHJcbiAgICAgICAgdGhpcy5Jbml0aWFsaXphdGlvbnMucHVzaCh7IG5hbWU6IG5hbWUsIGZ1bmN0aW9uOiBjaGFydENyZWF0aW9uRnVuY3Rpb24gfSk7XHJcbiAgICAgICAgaWYgKHRoaXMuSW5pdGlhbGl6YXRpb25zLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9nKFwiRElTUEFUQ0hFUjogSW5pdGlhbCBkcmFpbiBzdGFydGVkXCIpO1xyXG4gICAgICAgICAgICB0aGlzLmRyYWluSW5pdFF1ZXVlcygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIERlcmVnaXN0cmEgdW4gZ3JhZmljbyBwcmVzZW50ZS4gQ2hpYW1hdGEgZ2VuZXJhbG1lbnRlIGFsIGRpc3Bvc2UgZGVsIGdyYWZpY28gaW4gcXVlc3Rpb25lIHF1YW5kbyBub24gZGV2J2Vzc2VyZSBwacO5IG1vc3RyYXRvIG5lbGxhIHBhZ2luYSBjb3JyZW50ZVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSBJZGVudGlmaWNhdGl2byBkZWwgZ3JhZmljbyBkYSBkZXJlZ2lzdHJhcmVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGRlcmVnaXN0ZXJHcmFwaChuYW1lOiBzdHJpbmcpIHtcclxuICAgICAgICBsZXQgaW5kZXggPSB0aGlzLkluaXRpYWxpemVkR3JhcGhzLmluZGV4T2YobmFtZSk7XHJcbiAgICAgICAgaWYgKGluZGV4ID09IC0xKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgLy9RdWVzdG8gc3VjY2VkZSBxdWFuZG8gc2kgY2VyY2EgZGkgZGlzdHJ1Z2dlcmUgaWwgZ3JhZmljbyBtZW50cmUgc3RhIHZlbmVuZG8gZ3JhZmljYXRvXHJcbiAgICAgICAgICAgIHRoaXMubG9nKFwiRElTUEFUQ0hFUjogUmVnaXN0cmF0aW9uIG1pc3NpbmcgZm9yIGNoYXJ0IFwiICsgbmFtZSArIFwiIGl0IHdhcyBwcm9iYWJseSBkZXN0cm95ZWQgZHVyaW5nIGxvYWRcIik7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMubG9nKFwiRElTUEFUQ0hFUjogQ2hhcnQgZGVyZWdpc3RlcmVkIFwiICsgbmFtZSk7XHJcbiAgICAgICAgdGhpcy5Jbml0aWFsaXplZEdyYXBocy5zcGxpY2UoaW5kZXgsIDEpXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNZXRvZG8gY2hlIGVzZWd1ZSBpbiBtYW5pZXJhIHNlcXVlbnppYWxlIGxlIGZ1bnppb25pIGRpIGluaXppYWxpenphemlvbmUgZGVpIGdyYWZpY2kgZmluY2jDqSBwcmVzZW50aSBcclxuICAgICAqIGluIG1vZG8gY2hlIG5lc3N1biBncmFmaWNvIHBvc3NhIGVzc2VyZSBpbml6aWFsaXp6YXRvIGNvbnRlbXBvcmFuZWFtZW50ZSBhZCB1biBhbHRyby5cclxuICAgICAqIFxyXG4gICAgICogUXVlc3RvIMOoIGlsIHB1bnRvIGNoaWF2ZSBjaGUgcGVybWV0dGUgZGkgYXZlcmUgcGVyIG9nbmkgZ3JhZmljbyB0ZW1pIGUgbG9jYWxlIGRpZmZlcmVudGlcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBkcmFpbkluaXRRdWV1ZXMoKSB7XHJcbiAgICAgICAgbGV0IHRvRXhlY3V0ZSA9IHRoaXMuSW5pdGlhbGl6YXRpb25zWzBdO1xyXG4gICAgICAgIHRoaXMubG9nKFwiRElTUEFUQ0hFUjogRXhlY3V0aW5nIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uIGZvciBjaGFydCBcIiArIHRvRXhlY3V0ZS5uYW1lKTtcclxuXHJcbiAgICAgICAgdG9FeGVjdXRlLmZ1bmN0aW9uKCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubG9nKFwiRElTUEFUQ0hFUjogaW5pdGlhbGl6YXRpb24gZm9yIGNoYXJ0IFwiICsgdG9FeGVjdXRlLm5hbWUgKyBcIiBpcyBkb25lXCIpO1xyXG4gICAgICAgICAgICB0aGlzLkluaXRpYWxpemVkR3JhcGhzLnB1c2godG9FeGVjdXRlLm5hbWUpO1xyXG4gICAgICAgICAgICB0aGlzLkluaXRpYWxpemF0aW9ucy5zcGxpY2UoMCwgMSk7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLkluaXRpYWxpemF0aW9ucy5sZW5ndGggPj0gMSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2coXCJESVNQQVRDSEVSOiBGb3VuZCBxdWV1ZWQgaW5pdGlhbGl6YXRpb25zLiBDb250aW51aW5nXCIpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kcmFpbkluaXRRdWV1ZXMoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvZyhcIkRJU1BBVENIRVI6IHF1ZXVlIGlzIG92ZXIsIG5vdGhpbmcgbW9yZSB0byBkb1wiKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBpZ25vcmVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBsb2codGV4dDogc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKHRoaXMubG9ncylcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJAZXNmYWVuemEvZXMtY2hhcnRzOiBcIiArIHRleHQpO1xyXG4gICAgfVxyXG59Il19
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import { ChartThemes } from './ChartThemes';
|
|
2
|
+
/**
|
|
3
|
+
* Classe di supporto al caricamento dinamico dei vari pezzi di amcharts che mi servono per il grafico (temi, locali, ecc...)
|
|
4
|
+
*
|
|
5
|
+
* Essenzialmente ogni volta che viene creato un grafico, questo acquisisce il tema e il locale applicato IN QUEL MOMENTO,
|
|
6
|
+
* questo significa che per creare due grafici con temi diversi bisogna fare:
|
|
7
|
+
*
|
|
8
|
+
* 1) Caricamento tema 1
|
|
9
|
+
*
|
|
10
|
+
* 2) Creazione grafico 1
|
|
11
|
+
*
|
|
12
|
+
* 3) Scaricamento tema 1
|
|
13
|
+
*
|
|
14
|
+
* 3) Caricamento tema 2
|
|
15
|
+
*
|
|
16
|
+
* 4) Creazione grafico 2
|
|
17
|
+
*
|
|
18
|
+
*/
|
|
19
|
+
export class ChartLoader {
|
|
20
|
+
/**
|
|
21
|
+
* @ignore
|
|
22
|
+
*/
|
|
23
|
+
constructor(logs) {
|
|
24
|
+
this.logs = logs;
|
|
25
|
+
/**
|
|
26
|
+
* Indica se attualmente ho le animazioni caricate in modo da non ricaricarle inutilmente
|
|
27
|
+
*/
|
|
28
|
+
this.AnimationsAreLoaded = false;
|
|
29
|
+
/**
|
|
30
|
+
* Indica l'ultimo tema caricato in modo da non ricaricarlo inutilmente qualora il prossimo grafico da creare richieda lo stesso tema
|
|
31
|
+
*/
|
|
32
|
+
this.LastLoadedTheme = "";
|
|
33
|
+
/**
|
|
34
|
+
* Cache dei temi (moduli caricati dinamicamente)
|
|
35
|
+
*/
|
|
36
|
+
this.themeCache = {};
|
|
37
|
+
/**
|
|
38
|
+
* Cache delle localizzazioni (moduli caricati dinamicamente)
|
|
39
|
+
*/
|
|
40
|
+
this.localizationCache = {};
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Applica il tema con le animazioni all'istanza globale di amCharts
|
|
44
|
+
*
|
|
45
|
+
* @param {Object} chartsCore Istanza globale di amCharts
|
|
46
|
+
* @returns {Promise} Promise che identifica la fine del caricamento
|
|
47
|
+
*/
|
|
48
|
+
applyAnimations(chartsCore) {
|
|
49
|
+
if (!this.AnimationsAreLoaded) {
|
|
50
|
+
return this.importIfNeeded('themes', ChartThemes.animated).then(() => {
|
|
51
|
+
this.log("CORE: Applying theme " + ChartThemes.animated);
|
|
52
|
+
chartsCore.useTheme(this.themeCache[ChartThemes.animated]);
|
|
53
|
+
this.AnimationsAreLoaded = true;
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
this.log("CORE: theme already applyed " + ChartThemes.animated);
|
|
58
|
+
return new Promise((resolve) => { resolve(true); });
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* De-applica il tema con le animazioni dall'istanza globale di amCharts
|
|
63
|
+
*
|
|
64
|
+
* @param {Object} chartsCore Istanza globale di amCharts
|
|
65
|
+
* @returns {Promise} Promise che identifica la fine dello scarico
|
|
66
|
+
*/
|
|
67
|
+
unapplyAnimations(chartsCore) {
|
|
68
|
+
if (this.AnimationsAreLoaded) {
|
|
69
|
+
this.log("CORE: Animations in use, unapplying theme " + ChartThemes.animated);
|
|
70
|
+
chartsCore.unuseTheme(this.themeCache[ChartThemes.animated]);
|
|
71
|
+
this.AnimationsAreLoaded = false;
|
|
72
|
+
}
|
|
73
|
+
else
|
|
74
|
+
this.log("CORE: Animations already unused, no need to unapply them");
|
|
75
|
+
return new Promise((resolve) => { resolve(true); });
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Applica il tema specificato all'istanza globale di amCharts
|
|
79
|
+
*
|
|
80
|
+
* @param {Object} chartsCore Istanza globale di amCharts
|
|
81
|
+
* @param {'spiritedaway' | 'moonrisekingdom' | 'frozen' | 'dark' | 'kelly' | 'material' | 'dataviz' | 'none'} theme Tema da applicare
|
|
82
|
+
* @returns {Promise} Promise che identifica la fine del caricamento
|
|
83
|
+
*/
|
|
84
|
+
applyTheme(chartsCore, theme) {
|
|
85
|
+
// Ultimo tema applicato è lo stesso che mi è stato richiesto di applicare --> NO-OP
|
|
86
|
+
if (this.LastLoadedTheme == theme) {
|
|
87
|
+
this.log("CORE: theme already applied " + theme);
|
|
88
|
+
return new Promise((resolve) => { resolve(true); });
|
|
89
|
+
}
|
|
90
|
+
// Scarico il tema precedente a prescindere, ormai non mi serve più
|
|
91
|
+
this.unapplyPreviousTheme(chartsCore);
|
|
92
|
+
// Il tema è il none --> registro la cosa e basta, il tema precedente è stato rimosso subito qui sopra ^
|
|
93
|
+
if (theme == ChartThemes.none) {
|
|
94
|
+
this.LastLoadedTheme = ChartThemes.none;
|
|
95
|
+
return new Promise((resolve) => { resolve(true); });
|
|
96
|
+
}
|
|
97
|
+
// Il tema è diverso dal precedente e non è il tema vuoto --> Importo il tema specificato se non presente in memoria e lo applico al grafico attuale
|
|
98
|
+
return this.importIfNeeded('themes', theme).then(() => {
|
|
99
|
+
this.log("CORE: Applying theme " + theme);
|
|
100
|
+
chartsCore.useTheme(this.themeCache[theme]);
|
|
101
|
+
this.LastLoadedTheme = theme;
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* De-applica il tema precedente dall'istanza globale di amCharts
|
|
106
|
+
*
|
|
107
|
+
* @param {Object} chartsCore Istanza globale di amCharts
|
|
108
|
+
*/
|
|
109
|
+
unapplyPreviousTheme(chartsCore) {
|
|
110
|
+
if (!this.LastLoadedTheme || this.LastLoadedTheme == ChartThemes.none)
|
|
111
|
+
return;
|
|
112
|
+
this.log("CORE: Unapplying previously used theme " + this.LastLoadedTheme);
|
|
113
|
+
chartsCore.unuseTheme(this.themeCache[this.LastLoadedTheme]);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Applica il locale specificato all'istanza specifica del grafico
|
|
117
|
+
*
|
|
118
|
+
* @param {amCharts.Chart} chart Istanza specifica del grafico a cui applicare il locale
|
|
119
|
+
* @param {string} locale Locale da applicare
|
|
120
|
+
* @returns {Promise} Promise che identifica la fine del caricamento
|
|
121
|
+
*/
|
|
122
|
+
applyLocale(chart, locale) {
|
|
123
|
+
return this.importIfNeeded('lang', locale).then(() => {
|
|
124
|
+
this.log("Chart " + chart.htmlContainer.id + ": applying locale " + locale);
|
|
125
|
+
chart.language.locale = this.localizationCache[locale];
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Permette di importare, se serve un dato tema o localizzazione
|
|
130
|
+
*
|
|
131
|
+
* @param {'lang' | 'themes'} what Oggetto da importare, se localizzazione o tema
|
|
132
|
+
* @param {string} item Chiave dell'oggetto da importare
|
|
133
|
+
*
|
|
134
|
+
* @returns {Promise} Promise che identifica la fine del caricamento
|
|
135
|
+
*/
|
|
136
|
+
importIfNeeded(what, item) {
|
|
137
|
+
// Se sto cercando di caricare qualcosa di già caricato non faccio nulla
|
|
138
|
+
if (!(what == 'themes' && !this.themeCache[item]) && !(what == 'lang' && !this.localizationCache[item])) {
|
|
139
|
+
this.log("CORE: " + (what == 'lang' ? "Language " : "Theme ") + item + " already loaded");
|
|
140
|
+
return new Promise((resolve) => { resolve(true); });
|
|
141
|
+
}
|
|
142
|
+
this.log("CORE: Loading " + (what == 'lang' ? "language " : "theme ") + item);
|
|
143
|
+
/*
|
|
144
|
+
* ****************************
|
|
145
|
+
* ******** ATTENZIONE ********
|
|
146
|
+
* ****************************
|
|
147
|
+
*
|
|
148
|
+
* Se stai vedendo questo codice di import e stai valutando di riscriverlo come:
|
|
149
|
+
*
|
|
150
|
+
* V V
|
|
151
|
+
* import(`@amcharts/amcharts4/${what}/${item}`).then(module => {
|
|
152
|
+
* if (what == 'themes') this.themeCache[item] = module.default;
|
|
153
|
+
* else if (what == 'lang') this.localizationCache[item] = module.default;
|
|
154
|
+
* });
|
|
155
|
+
*
|
|
156
|
+
* Sappi che è una pessima idea. Gli import sono valutati da webpack in compiletime per generare i chunk,
|
|
157
|
+
* mettere la navigazione agli import con la concatenazione viene preso malissimo ed essenzialmente dice a webpack
|
|
158
|
+
* di tirare su e bundlare l'intera node_modules. Divertente, no?
|
|
159
|
+
*
|
|
160
|
+
*/
|
|
161
|
+
switch (what) {
|
|
162
|
+
case 'themes':
|
|
163
|
+
switch (item) {
|
|
164
|
+
case ChartThemes.spiritedaway:
|
|
165
|
+
return import("@amcharts/amcharts4/themes/spiritedaway").then(theme => this.themeCache[item] = theme.default);
|
|
166
|
+
case ChartThemes.moonrisekingdom:
|
|
167
|
+
return import("@amcharts/amcharts4/themes/moonrisekingdom").then(theme => this.themeCache[item] = theme.default);
|
|
168
|
+
case ChartThemes.frozen:
|
|
169
|
+
return import("@amcharts/amcharts4/themes/frozen").then(theme => this.themeCache[item] = theme.default);
|
|
170
|
+
case ChartThemes.dark:
|
|
171
|
+
return import("@amcharts/amcharts4/themes/dark").then(theme => this.themeCache[item] = theme.default);
|
|
172
|
+
case ChartThemes.kelly:
|
|
173
|
+
return import("@amcharts/amcharts4/themes/kelly").then(theme => this.themeCache[item] = theme.default);
|
|
174
|
+
case ChartThemes.material:
|
|
175
|
+
return import("@amcharts/amcharts4/themes/material").then(theme => this.themeCache[item] = theme.default);
|
|
176
|
+
case ChartThemes.dataviz:
|
|
177
|
+
return import("@amcharts/amcharts4/themes/dataviz").then(theme => this.themeCache[item] = theme.default);
|
|
178
|
+
case ChartThemes.animated:
|
|
179
|
+
return import("@amcharts/amcharts4/themes/animated").then(theme => this.themeCache[item] = theme.default);
|
|
180
|
+
}
|
|
181
|
+
break;
|
|
182
|
+
case 'lang':
|
|
183
|
+
switch (item) {
|
|
184
|
+
case 'it-IT':
|
|
185
|
+
return import("@amcharts/amcharts4/lang/it_IT").then(lang => this.localizationCache[item] = lang.default);
|
|
186
|
+
case 'en-US':
|
|
187
|
+
return import("@amcharts/amcharts4/lang/en_US").then(lang => this.localizationCache[item] = lang.default);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
this.log("CORE: Loading Failed. " + (what == 'lang' ? "Language " : "Theme") + " not recognized: " + item);
|
|
191
|
+
return new Promise((resolve) => { resolve(true); });
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* @ignore
|
|
195
|
+
*/
|
|
196
|
+
log(text) {
|
|
197
|
+
if (this.logs)
|
|
198
|
+
console.log("@esfaenza/es-charts: " + text);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hhcnRMb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcy1jaGFydHMvc3JjL2xpYi9tb2RlbHMvY29yZS9DaGFydExvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRTNDOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsTUFBTSxPQUFPLFdBQVc7SUFzQnRCOztPQUVHO0lBQ0gsWUFBb0IsSUFBYTtRQUFiLFNBQUksR0FBSixJQUFJLENBQVM7UUF2QmpDOztXQUVHO1FBQ0ssd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBRTdDOztXQUVHO1FBQ0ssb0JBQWUsR0FBVyxFQUFFLENBQUM7UUFFckM7O1dBRUc7UUFDSyxlQUFVLEdBQU8sRUFBRSxDQUFDO1FBRTVCOztXQUVHO1FBQ0ssc0JBQWlCLEdBQU8sRUFBRSxDQUFDO0lBS0UsQ0FBQztJQUV0Qzs7Ozs7T0FLRztJQUNJLGVBQWUsQ0FBQyxVQUFlO1FBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDN0IsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDbkUsSUFBSSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3pELFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFDM0QsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztZQUNsQyxDQUFDLENBQUMsQ0FBQztTQUNKO2FBQ0k7WUFDSCxJQUFJLENBQUMsR0FBRyxDQUFDLDhCQUE4QixHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNoRSxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNwRDtJQUNILENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGlCQUFpQixDQUFDLFVBQWU7UUFDL0IsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDNUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyw0Q0FBNEMsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDOUUsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQzdELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUM7U0FDbEM7O1lBRUMsSUFBSSxDQUFDLEdBQUcsQ0FBQywwREFBMEQsQ0FBQyxDQUFDO1FBQ3ZFLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxVQUFVLENBQUMsVUFBZSxFQUFFLEtBQXlHO1FBQ25JLG9GQUFvRjtRQUNwRixJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksS0FBSyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxHQUFHLENBQUMsOEJBQThCLEdBQUcsS0FBSyxDQUFDLENBQUM7WUFDakQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDcEQ7UUFFRCxtRUFBbUU7UUFDbkUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBRXJDLHdHQUF3RztRQUN4RyxJQUFJLEtBQUssSUFBSSxXQUFXLENBQUMsSUFBSSxFQUFFO1lBQzdCLElBQUksQ0FBQyxlQUFlLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQztZQUN4QyxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNwRDtRQUVELG9KQUFvSjtRQUNwSixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDcEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsR0FBRyxLQUFLLENBQUMsQ0FBQztZQUMxQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsb0JBQW9CLENBQUMsVUFBZTtRQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsZUFBZSxJQUFJLFdBQVcsQ0FBQyxJQUFJO1lBQ25FLE9BQU87UUFFVCxJQUFJLENBQUMsR0FBRyxDQUFDLHlDQUF5QyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMzRSxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUE7SUFDOUQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFdBQVcsQ0FBQyxLQUFVLEVBQUUsTUFBYztRQUNwQyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDbkQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxFQUFFLEdBQUcsb0JBQW9CLEdBQUcsTUFBTSxDQUFDLENBQUM7WUFDNUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxjQUFjLENBQUMsSUFBdUIsRUFBRSxJQUFZO1FBRWxELHdFQUF3RTtRQUN4RSxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUU7WUFDdkcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksR0FBRyxpQkFBaUIsQ0FBQyxDQUFDO1lBQzFGLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3BEO1FBRUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFFOUU7Ozs7Ozs7Ozs7Ozs7Ozs7O1dBaUJHO1FBRUgsUUFBUSxJQUFJLEVBQUU7WUFDWixLQUFLLFFBQVE7Z0JBQ1gsUUFBUSxJQUFJLEVBQUU7b0JBQ1osS0FBSyxXQUFXLENBQUMsWUFBWTt3QkFDM0IsT0FBTyxNQUFNLENBQUMseUNBQXlDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDaEgsS0FBSyxXQUFXLENBQUMsZUFBZTt3QkFDOUIsT0FBTyxNQUFNLENBQUMsNENBQTRDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDbkgsS0FBSyxXQUFXLENBQUMsTUFBTTt3QkFDckIsT0FBTyxNQUFNLENBQUMsbUNBQW1DLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDMUcsS0FBSyxXQUFXLENBQUMsSUFBSTt3QkFDbkIsT0FBTyxNQUFNLENBQUMsaUNBQWlDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDeEcsS0FBSyxXQUFXLENBQUMsS0FBSzt3QkFDcEIsT0FBTyxNQUFNLENBQUMsa0NBQWtDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDekcsS0FBSyxXQUFXLENBQUMsUUFBUTt3QkFDdkIsT0FBTyxNQUFNLENBQUMscUNBQXFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDNUcsS0FBSyxXQUFXLENBQUMsT0FBTzt3QkFDdEIsT0FBTyxNQUFNLENBQUMsb0NBQW9DLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDM0csS0FBSyxXQUFXLENBQUMsUUFBUTt3QkFDdkIsT0FBTyxNQUFNLENBQUMscUNBQXFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztpQkFDN0c7Z0JBQ0QsTUFBTTtZQUNSLEtBQUssTUFBTTtnQkFDVCxRQUFRLElBQUksRUFBRTtvQkFDWixLQUFLLE9BQU87d0JBQ1YsT0FBTyxNQUFNLENBQUMsZ0NBQWdDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUM1RyxLQUFLLE9BQU87d0JBQ1YsT0FBTyxNQUFNLENBQUMsZ0NBQWdDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2lCQUM3RztTQUNKO1FBRUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsR0FBRyxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDM0csT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsR0FBRyxDQUFDLElBQVk7UUFDZCxJQUFJLElBQUksQ0FBQyxJQUFJO1lBQ1gsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUNoRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFydFRoZW1lcyB9IGZyb20gJy4vQ2hhcnRUaGVtZXMnXHJcblxyXG4vKipcclxuICogQ2xhc3NlIGRpIHN1cHBvcnRvIGFsIGNhcmljYW1lbnRvIGRpbmFtaWNvIGRlaSB2YXJpIHBlenppIGRpIGFtY2hhcnRzIGNoZSBtaSBzZXJ2b25vIHBlciBpbCBncmFmaWNvICh0ZW1pLCBsb2NhbGksIGVjYy4uLilcclxuICogXHJcbiAqIEVzc2VuemlhbG1lbnRlIG9nbmkgdm9sdGEgY2hlIHZpZW5lIGNyZWF0byB1biBncmFmaWNvLCBxdWVzdG8gYWNxdWlzaXNjZSBpbCB0ZW1hIGUgaWwgbG9jYWxlIGFwcGxpY2F0byBJTiBRVUVMIE1PTUVOVE8sXHJcbiAqIHF1ZXN0byBzaWduaWZpY2EgY2hlIHBlciBjcmVhcmUgZHVlIGdyYWZpY2kgY29uIHRlbWkgZGl2ZXJzaSBiaXNvZ25hIGZhcmU6XHJcbiAqIFxyXG4gKiAxKSBDYXJpY2FtZW50byB0ZW1hIDFcclxuICogXHJcbiAqIDIpIENyZWF6aW9uZSBncmFmaWNvIDFcclxuICogXHJcbiAqIDMpIFNjYXJpY2FtZW50byB0ZW1hIDFcclxuICogXHJcbiAqIDMpIENhcmljYW1lbnRvIHRlbWEgMlxyXG4gKiBcclxuICogNCkgQ3JlYXppb25lIGdyYWZpY28gMlxyXG4gKiBcclxuICovXHJcbmV4cG9ydCBjbGFzcyBDaGFydExvYWRlciB7XHJcblxyXG4gIC8qKlxyXG4gICAqIEluZGljYSBzZSBhdHR1YWxtZW50ZSBobyBsZSBhbmltYXppb25pIGNhcmljYXRlIGluIG1vZG8gZGEgbm9uIHJpY2FyaWNhcmxlIGludXRpbG1lbnRlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBBbmltYXRpb25zQXJlTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIEluZGljYSBsJ3VsdGltbyB0ZW1hIGNhcmljYXRvIGluIG1vZG8gZGEgbm9uIHJpY2FyaWNhcmxvIGludXRpbG1lbnRlIHF1YWxvcmEgaWwgcHJvc3NpbW8gZ3JhZmljbyBkYSBjcmVhcmUgcmljaGllZGEgbG8gc3Rlc3NvIHRlbWFcclxuICAgKi9cclxuICBwcml2YXRlIExhc3RMb2FkZWRUaGVtZTogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgLyoqXHJcbiAgICogQ2FjaGUgZGVpIHRlbWkgKG1vZHVsaSBjYXJpY2F0aSBkaW5hbWljYW1lbnRlKVxyXG4gICAqL1xyXG4gIHByaXZhdGUgdGhlbWVDYWNoZToge30gPSB7fTtcclxuXHJcbiAgLyoqXHJcbiAgICogQ2FjaGUgZGVsbGUgbG9jYWxpenphemlvbmkgKG1vZHVsaSBjYXJpY2F0aSBkaW5hbWljYW1lbnRlKVxyXG4gICAqL1xyXG4gIHByaXZhdGUgbG9jYWxpemF0aW9uQ2FjaGU6IHt9ID0ge307XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxvZ3M6IGJvb2xlYW4pIHsgfVxyXG5cclxuICAvKipcclxuICAgKiBBcHBsaWNhIGlsIHRlbWEgY29uIGxlIGFuaW1hemlvbmkgYWxsJ2lzdGFuemEgZ2xvYmFsZSBkaSBhbUNoYXJ0c1xyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBjaGFydHNDb3JlIElzdGFuemEgZ2xvYmFsZSBkaSBhbUNoYXJ0c1xyXG4gICAqIEByZXR1cm5zIHtQcm9taXNlfSBQcm9taXNlIGNoZSBpZGVudGlmaWNhIGxhIGZpbmUgZGVsIGNhcmljYW1lbnRvXHJcbiAgICovXHJcbiAgcHVibGljIGFwcGx5QW5pbWF0aW9ucyhjaGFydHNDb3JlOiBhbnkpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgaWYgKCF0aGlzLkFuaW1hdGlvbnNBcmVMb2FkZWQpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuaW1wb3J0SWZOZWVkZWQoJ3RoZW1lcycsIENoYXJ0VGhlbWVzLmFuaW1hdGVkKS50aGVuKCgpID0+IHtcclxuICAgICAgICB0aGlzLmxvZyhcIkNPUkU6IEFwcGx5aW5nIHRoZW1lIFwiICsgQ2hhcnRUaGVtZXMuYW5pbWF0ZWQpO1xyXG4gICAgICAgIGNoYXJ0c0NvcmUudXNlVGhlbWUodGhpcy50aGVtZUNhY2hlW0NoYXJ0VGhlbWVzLmFuaW1hdGVkXSk7XHJcbiAgICAgICAgdGhpcy5BbmltYXRpb25zQXJlTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5sb2coXCJDT1JFOiB0aGVtZSBhbHJlYWR5IGFwcGx5ZWQgXCIgKyBDaGFydFRoZW1lcy5hbmltYXRlZCk7XHJcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKHRydWUpIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGUtYXBwbGljYSBpbCB0ZW1hIGNvbiBsZSBhbmltYXppb25pIGRhbGwnaXN0YW56YSBnbG9iYWxlIGRpIGFtQ2hhcnRzXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHtPYmplY3R9IGNoYXJ0c0NvcmUgSXN0YW56YSBnbG9iYWxlIGRpIGFtQ2hhcnRzXHJcbiAgICogQHJldHVybnMge1Byb21pc2V9IFByb21pc2UgY2hlIGlkZW50aWZpY2EgbGEgZmluZSBkZWxsbyBzY2FyaWNvXHJcbiAgICovXHJcbiAgdW5hcHBseUFuaW1hdGlvbnMoY2hhcnRzQ29yZTogYW55KTogUHJvbWlzZTxhbnk+IHtcclxuICAgIGlmICh0aGlzLkFuaW1hdGlvbnNBcmVMb2FkZWQpIHtcclxuICAgICAgdGhpcy5sb2coXCJDT1JFOiBBbmltYXRpb25zIGluIHVzZSwgdW5hcHBseWluZyB0aGVtZSBcIiArIENoYXJ0VGhlbWVzLmFuaW1hdGVkKTtcclxuICAgICAgY2hhcnRzQ29yZS51bnVzZVRoZW1lKHRoaXMudGhlbWVDYWNoZVtDaGFydFRoZW1lcy5hbmltYXRlZF0pO1xyXG4gICAgICB0aGlzLkFuaW1hdGlvbnNBcmVMb2FkZWQgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5sb2coXCJDT1JFOiBBbmltYXRpb25zIGFscmVhZHkgdW51c2VkLCBubyBuZWVkIHRvIHVuYXBwbHkgdGhlbVwiKTtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyByZXNvbHZlKHRydWUpIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQXBwbGljYSBpbCB0ZW1hIHNwZWNpZmljYXRvIGFsbCdpc3RhbnphIGdsb2JhbGUgZGkgYW1DaGFydHNcclxuICAgKiBcclxuICAgKiBAcGFyYW0ge09iamVjdH0gY2hhcnRzQ29yZSBJc3RhbnphIGdsb2JhbGUgZGkgYW1DaGFydHNcclxuICAgKiBAcGFyYW0geydzcGlyaXRlZGF3YXknIHwgJ21vb25yaXNla2luZ2RvbScgfCAnZnJvemVuJyB8ICdkYXJrJyB8ICdrZWxseScgfCAnbWF0ZXJpYWwnIHwgJ2RhdGF2aXonIHwgJ25vbmUnfSB0aGVtZSBUZW1hIGRhIGFwcGxpY2FyZVxyXG4gICAqIEByZXR1cm5zIHtQcm9taXNlfSBQcm9taXNlIGNoZSBpZGVudGlmaWNhIGxhIGZpbmUgZGVsIGNhcmljYW1lbnRvXHJcbiAgICovXHJcbiAgYXBwbHlUaGVtZShjaGFydHNDb3JlOiBhbnksIHRoZW1lOiAnc3Bpcml0ZWRhd2F5JyB8ICdtb29ucmlzZWtpbmdkb20nIHwgJ2Zyb3plbicgfCAnZGFyaycgfCAna2VsbHknIHwgJ21hdGVyaWFsJyB8ICdkYXRhdml6JyB8ICdub25lJyk6IFByb21pc2U8YW55PiB7XHJcbiAgICAvLyBVbHRpbW8gdGVtYSBhcHBsaWNhdG8gw6ggbG8gc3Rlc3NvIGNoZSBtaSDDqCBzdGF0byByaWNoaWVzdG8gZGkgYXBwbGljYXJlIC0tPiBOTy1PUFxyXG4gICAgaWYgKHRoaXMuTGFzdExvYWRlZFRoZW1lID09IHRoZW1lKSB7XHJcbiAgICAgIHRoaXMubG9nKFwiQ09SRTogdGhlbWUgYWxyZWFkeSBhcHBsaWVkIFwiICsgdGhlbWUpO1xyXG4gICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSh0cnVlKSB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBTY2FyaWNvIGlsIHRlbWEgcHJlY2VkZW50ZSBhIHByZXNjaW5kZXJlLCBvcm1haSBub24gbWkgc2VydmUgcGnDuVxyXG4gICAgdGhpcy51bmFwcGx5UHJldmlvdXNUaGVtZShjaGFydHNDb3JlKVxyXG5cclxuICAgIC8vIElsIHRlbWEgw6ggaWwgbm9uZSAtLT4gcmVnaXN0cm8gbGEgY29zYSBlIGJhc3RhLCBpbCB0ZW1hIHByZWNlZGVudGUgw6ggc3RhdG8gcmltb3NzbyBzdWJpdG8gcXVpIHNvcHJhIF5cclxuICAgIGlmICh0aGVtZSA9PSBDaGFydFRoZW1lcy5ub25lKSB7XHJcbiAgICAgIHRoaXMuTGFzdExvYWRlZFRoZW1lID0gQ2hhcnRUaGVtZXMubm9uZTtcclxuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7IHJlc29sdmUodHJ1ZSkgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gSWwgdGVtYSDDqCBkaXZlcnNvIGRhbCBwcmVjZWRlbnRlIGUgbm9uIMOoIGlsIHRlbWEgdnVvdG8gLS0+IEltcG9ydG8gaWwgdGVtYSBzcGVjaWZpY2F0byBzZSBub24gcHJlc2VudGUgaW4gbWVtb3JpYSBlIGxvIGFwcGxpY28gYWwgZ3JhZmljbyBhdHR1YWxlXHJcbiAgICByZXR1cm4gdGhpcy5pbXBvcnRJZk5lZWRlZCgndGhlbWVzJywgdGhlbWUpLnRoZW4oKCkgPT4ge1xyXG4gICAgICB0aGlzLmxvZyhcIkNPUkU6IEFwcGx5aW5nIHRoZW1lIFwiICsgdGhlbWUpO1xyXG4gICAgICBjaGFydHNDb3JlLnVzZVRoZW1lKHRoaXMudGhlbWVDYWNoZVt0aGVtZV0pO1xyXG4gICAgICB0aGlzLkxhc3RMb2FkZWRUaGVtZSA9IHRoZW1lO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZS1hcHBsaWNhIGlsIHRlbWEgcHJlY2VkZW50ZSBkYWxsJ2lzdGFuemEgZ2xvYmFsZSBkaSBhbUNoYXJ0c1xyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBjaGFydHNDb3JlIElzdGFuemEgZ2xvYmFsZSBkaSBhbUNoYXJ0c1xyXG4gICAqL1xyXG4gIHVuYXBwbHlQcmV2aW91c1RoZW1lKGNoYXJ0c0NvcmU6IGFueSkge1xyXG4gICAgaWYgKCF0aGlzLkxhc3RMb2FkZWRUaGVtZSB8fCB0aGlzLkxhc3RMb2FkZWRUaGVtZSA9PSBDaGFydFRoZW1lcy5ub25lKVxyXG4gICAgICByZXR1cm47XHJcblxyXG4gICAgdGhpcy5sb2coXCJDT1JFOiBVbmFwcGx5aW5nIHByZXZpb3VzbHkgdXNlZCB0aGVtZSBcIiArIHRoaXMuTGFzdExvYWRlZFRoZW1lKTtcclxuICAgIGNoYXJ0c0NvcmUudW51c2VUaGVtZSh0aGlzLnRoZW1lQ2FjaGVbdGhpcy5MYXN0TG9hZGVkVGhlbWVdKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQXBwbGljYSBpbCBsb2NhbGUgc3BlY2lmaWNhdG8gYWxsJ2lzdGFuemEgc3BlY2lmaWNhIGRlbCBncmFmaWNvXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHthbUNoYXJ0cy5DaGFydH0gY2hhcnQgSXN0YW56YSBzcGVjaWZpY2EgZGVsIGdyYWZpY28gYSBjdWkgYXBwbGljYXJlIGlsIGxvY2FsZVxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBsb2NhbGUgTG9jYWxlIGRhIGFwcGxpY2FyZVxyXG4gICAqIEByZXR1cm5zIHtQcm9taXNlfSBQcm9taXNlIGNoZSBpZGVudGlmaWNhIGxhIGZpbmUgZGVsIGNhcmljYW1lbnRvXHJcbiAgICovXHJcbiAgYXBwbHlMb2NhbGUoY2hhcnQ6IGFueSwgbG9jYWxlOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaW1wb3J0SWZOZWVkZWQoJ2xhbmcnLCBsb2NhbGUpLnRoZW4oKCkgPT4ge1xyXG4gICAgICB0aGlzLmxvZyhcIkNoYXJ0IFwiICsgY2hhcnQuaHRtbENvbnRhaW5lci5pZCArIFwiOiBhcHBseWluZyBsb2NhbGUgXCIgKyBsb2NhbGUpO1xyXG4gICAgICBjaGFydC5sYW5ndWFnZS5sb2NhbGUgPSB0aGlzLmxvY2FsaXphdGlvbkNhY2hlW2xvY2FsZV07XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFBlcm1ldHRlIGRpIGltcG9ydGFyZSwgc2Ugc2VydmUgdW4gZGF0byB0ZW1hIG8gbG9jYWxpenphemlvbmVcclxuICAgKiBcclxuICAgKiBAcGFyYW0geydsYW5nJyB8ICd0aGVtZXMnfSB3aGF0IE9nZ2V0dG8gZGEgaW1wb3J0YXJlLCBzZSBsb2NhbGl6emF6aW9uZSBvIHRlbWFcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gaXRlbSBDaGlhdmUgZGVsbCdvZ2dldHRvIGRhIGltcG9ydGFyZVxyXG4gICAqIFxyXG4gICAqIEByZXR1cm5zIHtQcm9taXNlfSBQcm9taXNlIGNoZSBpZGVudGlmaWNhIGxhIGZpbmUgZGVsIGNhcmljYW1lbnRvXHJcbiAgICovXHJcbiAgaW1wb3J0SWZOZWVkZWQod2hhdDogJ2xhbmcnIHwgJ3RoZW1lcycsIGl0ZW06IHN0cmluZyk6IFByb21pc2U8YW55PiB7XHJcblxyXG4gICAgLy8gU2Ugc3RvIGNlcmNhbmRvIGRpIGNhcmljYXJlIHF1YWxjb3NhIGRpIGdpw6AgY2FyaWNhdG8gbm9uIGZhY2NpbyBudWxsYVxyXG4gICAgaWYgKCEod2hhdCA9PSAndGhlbWVzJyAmJiAhdGhpcy50aGVtZUNhY2hlW2l0ZW1dKSAmJiAhKHdoYXQgPT0gJ2xhbmcnICYmICF0aGlzLmxvY2FsaXphdGlvbkNhY2hlW2l0ZW1dKSkge1xyXG4gICAgICB0aGlzLmxvZyhcIkNPUkU6IFwiICsgKHdoYXQgPT0gJ2xhbmcnID8gXCJMYW5ndWFnZSBcIiA6IFwiVGhlbWUgXCIpICsgaXRlbSArIFwiIGFscmVhZHkgbG9hZGVkXCIpO1xyXG4gICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSh0cnVlKSB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmxvZyhcIkNPUkU6IExvYWRpbmcgXCIgKyAod2hhdCA9PSAnbGFuZycgPyBcImxhbmd1YWdlIFwiIDogXCJ0aGVtZSBcIikgKyBpdGVtKTtcclxuXHJcbiAgICAvKlxyXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKioqKioqKiogQVRURU5aSU9ORSAqKioqKioqKlxyXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgICogXHJcbiAgICAgKiAgU2Ugc3RhaSB2ZWRlbmRvIHF1ZXN0byBjb2RpY2UgZGkgaW1wb3J0IGUgc3RhaSB2YWx1dGFuZG8gZGkgcmlzY3JpdmVybG8gY29tZTpcclxuICAgICAqIFxyXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgViAgICAgICBWICAgXHJcbiAgICAgKiAgICAgIGltcG9ydChgQGFtY2hhcnRzL2FtY2hhcnRzNC8ke3doYXR9LyR7aXRlbX1gKS50aGVuKG1vZHVsZSA9PiB7XHJcbiAgICAgKiAgICAgICAgaWYgKHdoYXQgPT0gJ3RoZW1lcycpIHRoaXMudGhlbWVDYWNoZVtpdGVtXSA9IG1vZHVsZS5kZWZhdWx0O1xyXG4gICAgICogICAgICAgIGVsc2UgaWYgKHdoYXQgPT0gJ2xhbmcnKSB0aGlzLmxvY2FsaXphdGlvbkNhY2hlW2l0ZW1dID0gbW9kdWxlLmRlZmF1bHQ7XHJcbiAgICAgKiAgICAgIH0pO1xyXG4gICAgICogXHJcbiAgICAgKiAgU2FwcGkgY2hlIMOoIHVuYSBwZXNzaW1hIGlkZWEuIEdsaSBpbXBvcnQgc29ubyB2YWx1dGF0aSBkYSB3ZWJwYWNrIGluIGNvbXBpbGV0aW1lIHBlciBnZW5lcmFyZSBpIGNodW5rLFxyXG4gICAgICogIG1ldHRlcmUgbGEgbmF2aWdhemlvbmUgYWdsaSBpbXBvcnQgY29uIGxhIGNvbmNhdGVuYXppb25lIHZpZW5lIHByZXNvIG1hbGlzc2ltbyBlZCBlc3NlbnppYWxtZW50ZSBkaWNlIGEgd2VicGFja1xyXG4gICAgICogIGRpIHRpcmFyZSBzdSBlIGJ1bmRsYXJlIGwnaW50ZXJhIG5vZGVfbW9kdWxlcy4gRGl2ZXJ0ZW50ZSwgbm8/XHJcbiAgICAgKlxyXG4gICAgICovXHJcblxyXG4gICAgc3dpdGNoICh3aGF0KSB7XHJcbiAgICAgIGNhc2UgJ3RoZW1lcyc6XHJcbiAgICAgICAgc3dpdGNoIChpdGVtKSB7XHJcbiAgICAgICAgICBjYXNlIENoYXJ0VGhlbWVzLnNwaXJpdGVkYXdheTpcclxuICAgICAgICAgICAgcmV0dXJuIGltcG9ydChcIkBhbWNoYXJ0cy9hbWNoYXJ0czQvdGhlbWVzL3NwaXJpdGVkYXdheVwiKS50aGVuKHRoZW1lID0+IHRoaXMudGhlbWVDYWNoZVtpdGVtXSA9IHRoZW1lLmRlZmF1bHQpO1xyXG4gICAgICAgICAgY2FzZSBDaGFydFRoZW1lcy5tb29ucmlzZWtpbmdkb206XHJcbiAgICAgICAgICAgIHJldHVybiBpbXBvcnQoXCJAYW1jaGFydHMvYW1jaGFydHM0L3RoZW1lcy9tb29ucmlzZWtpbmdkb21cIikudGhlbih0aGVtZSA9PiB0aGlzLnRoZW1lQ2FjaGVbaXRlbV0gPSB0aGVtZS5kZWZhdWx0KTtcclxuICAgICAgICAgIGNhc2UgQ2hhcnRUaGVtZXMuZnJvemVuOlxyXG4gICAgICAgICAgICByZXR1cm4gaW1wb3J0KFwiQGFtY2hhcnRzL2FtY2hhcnRzNC90aGVtZXMvZnJvemVuXCIpLnRoZW4odGhlbWUgPT4gdGhpcy50aGVtZUNhY2hlW2l0ZW1dID0gdGhlbWUuZGVmYXVsdCk7XHJcbiAgICAgICAgICBjYXNlIENoYXJ0VGhlbWVzLmRhcms6XHJcbiAgICAgICAgICAgIHJldHVybiBpbXBvcnQoXCJAYW1jaGFydHMvYW1jaGFydHM0L3RoZW1lcy9kYXJrXCIpLnRoZW4odGhlbWUgPT4gdGhpcy50aGVtZUNhY2hlW2l0ZW1dID0gdGhlbWUuZGVmYXVsdCk7XHJcbiAgICAgICAgICBjYXNlIENoYXJ0VGhlbWVzLmtlbGx5OlxyXG4gICAgICAgICAgICByZXR1cm4gaW1wb3J0KFwiQGFtY2hhcnRzL2FtY2hhcnRzNC90aGVtZXMva2VsbHlcIikudGhlbih0aGVtZSA9PiB0aGlzLnRoZW1lQ2FjaGVbaXRlbV0gPSB0aGVtZS5kZWZhdWx0KTtcclxuICAgICAgICAgIGNhc2UgQ2hhcnRUaGVtZXMubWF0ZXJpYWw6XHJcbiAgICAgICAgICAgIHJldHVybiBpbXBvcnQoXCJAYW1jaGFydHMvYW1jaGFydHM0L3RoZW1lcy9tYXRlcmlhbFwiKS50aGVuKHRoZW1lID0+IHRoaXMudGhlbWVDYWNoZVtpdGVtXSA9IHRoZW1lLmRlZmF1bHQpO1xyXG4gICAgICAgICAgY2FzZSBDaGFydFRoZW1lcy5kYXRhdml6OlxyXG4gICAgICAgICAgICByZXR1cm4gaW1wb3J0KFwiQGFtY2hhcnRzL2FtY2hhcnRzNC90aGVtZXMvZGF0YXZpelwiKS50aGVuKHRoZW1lID0+IHRoaXMudGhlbWVDYWNoZVtpdGVtXSA9IHRoZW1lLmRlZmF1bHQpO1xyXG4gICAgICAgICAgY2FzZSBDaGFydFRoZW1lcy5hbmltYXRlZDpcclxuICAgICAgICAgICAgcmV0dXJuIGltcG9ydChcIkBhbWNoYXJ0cy9hbWNoYXJ0czQvdGhlbWVzL2FuaW1hdGVkXCIpLnRoZW4odGhlbWUgPT4gdGhpcy50aGVtZUNhY2hlW2l0ZW1dID0gdGhlbWUuZGVmYXVsdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdsYW5nJzpcclxuICAgICAgICBzd2l0Y2ggKGl0ZW0pIHtcclxuICAgICAgICAgIGNhc2UgJ2l0LUlUJzpcclxuICAgICAgICAgICAgcmV0dXJuIGltcG9ydChcIkBhbWNoYXJ0cy9hbWNoYXJ0czQvbGFuZy9pdF9JVFwiKS50aGVuKGxhbmcgPT4gdGhpcy5sb2NhbGl6YXRpb25DYWNoZVtpdGVtXSA9IGxhbmcuZGVmYXVsdCk7XHJcbiAgICAgICAgICBjYXNlICdlbi1VUyc6XHJcbiAgICAgICAgICAgIHJldHVybiBpbXBvcnQoXCJAYW1jaGFydHMvYW1jaGFydHM0L2xhbmcvZW5fVVNcIikudGhlbihsYW5nID0+IHRoaXMubG9jYWxpemF0aW9uQ2FjaGVbaXRlbV0gPSBsYW5nLmRlZmF1bHQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmxvZyhcIkNPUkU6IExvYWRpbmcgRmFpbGVkLiBcIiArICh3aGF0ID09ICdsYW5nJyA/IFwiTGFuZ3VhZ2UgXCIgOiBcIlRoZW1lXCIpICsgXCIgbm90IHJlY29nbml6ZWQ6IFwiICsgaXRlbSk7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgcmVzb2x2ZSh0cnVlKSB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBsb2codGV4dDogc3RyaW5nKSB7XHJcbiAgICBpZiAodGhpcy5sb2dzKVxyXG4gICAgICBjb25zb2xlLmxvZyhcIkBlc2ZhZW56YS9lcy1jaGFydHM6IFwiICsgdGV4dCk7XHJcbiAgfVxyXG59Il19
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/** @ignore */
|
|
2
|
+
const _spiritedaway = 'spiritedaway';
|
|
3
|
+
/** @ignore */
|
|
4
|
+
const _moonrisekingdom = 'moonrisekingdom';
|
|
5
|
+
/** @ignore */
|
|
6
|
+
const _frozen = 'frozen';
|
|
7
|
+
/** @ignore */
|
|
8
|
+
const _dark = 'dark';
|
|
9
|
+
/** @ignore */
|
|
10
|
+
const _kelly = 'kelly';
|
|
11
|
+
/** @ignore */
|
|
12
|
+
const _material = 'material';
|
|
13
|
+
/** @ignore */
|
|
14
|
+
const _dataviz = 'dataviz';
|
|
15
|
+
/** @ignore */
|
|
16
|
+
const _none = 'none';
|
|
17
|
+
/** @ignore */
|
|
18
|
+
const _animated = 'animated';
|
|
19
|
+
/**
|
|
20
|
+
* Classe per enumerare i temi disponibili nella libreria
|
|
21
|
+
*/
|
|
22
|
+
// @dynamic
|
|
23
|
+
export class ChartThemes {
|
|
24
|
+
get spiritedaway() { return _spiritedaway; }
|
|
25
|
+
;
|
|
26
|
+
get moonrisekingdom() { return _moonrisekingdom; }
|
|
27
|
+
;
|
|
28
|
+
get frozen() { return _frozen; }
|
|
29
|
+
;
|
|
30
|
+
get dark() { return _dark; }
|
|
31
|
+
;
|
|
32
|
+
get kelly() { return _kelly; }
|
|
33
|
+
;
|
|
34
|
+
get material() { return _material; }
|
|
35
|
+
;
|
|
36
|
+
get dataviz() { return _dataviz; }
|
|
37
|
+
;
|
|
38
|
+
get none() { return _none; }
|
|
39
|
+
;
|
|
40
|
+
get animated() { return _animated; }
|
|
41
|
+
;
|
|
42
|
+
static get spiritedaway() { return _spiritedaway; }
|
|
43
|
+
;
|
|
44
|
+
static get moonrisekingdom() { return _moonrisekingdom; }
|
|
45
|
+
;
|
|
46
|
+
static get frozen() { return _frozen; }
|
|
47
|
+
;
|
|
48
|
+
static get dark() { return _dark; }
|
|
49
|
+
;
|
|
50
|
+
static get kelly() { return _kelly; }
|
|
51
|
+
;
|
|
52
|
+
static get material() { return _material; }
|
|
53
|
+
;
|
|
54
|
+
static get dataviz() { return _dataviz; }
|
|
55
|
+
;
|
|
56
|
+
static get none() { return _none; }
|
|
57
|
+
;
|
|
58
|
+
static get animated() { return _animated; }
|
|
59
|
+
;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hhcnRUaGVtZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcy1jaGFydHMvc3JjL2xpYi9tb2RlbHMvY29yZS9DaGFydFRoZW1lcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjO0FBQ2QsTUFBTSxhQUFhLEdBQVcsY0FBYyxDQUFDO0FBQzdDLGNBQWM7QUFDZCxNQUFNLGdCQUFnQixHQUFXLGlCQUFpQixDQUFDO0FBQ25ELGNBQWM7QUFDZCxNQUFNLE9BQU8sR0FBVyxRQUFRLENBQUM7QUFDakMsY0FBYztBQUNkLE1BQU0sS0FBSyxHQUFXLE1BQU0sQ0FBQztBQUM3QixjQUFjO0FBQ2QsTUFBTSxNQUFNLEdBQVcsT0FBTyxDQUFDO0FBQy9CLGNBQWM7QUFDZCxNQUFNLFNBQVMsR0FBVyxVQUFVLENBQUM7QUFDckMsY0FBYztBQUNkLE1BQU0sUUFBUSxHQUFXLFNBQVMsQ0FBQztBQUNuQyxjQUFjO0FBQ2QsTUFBTSxLQUFLLEdBQVcsTUFBTSxDQUFDO0FBQzdCLGNBQWM7QUFDZCxNQUFNLFNBQVMsR0FBVyxVQUFVLENBQUM7QUFFckM7O0dBRUc7QUFDSCxXQUFXO0FBQ1gsTUFBTSxPQUFPLFdBQVc7SUFDdEIsSUFBVyxZQUFZLEtBQUssT0FBTyxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQUEsQ0FBQztJQUNwRCxJQUFXLGVBQWUsS0FBSyxPQUFPLGdCQUFnQixDQUFDLENBQUMsQ0FBQztJQUFBLENBQUM7SUFDMUQsSUFBVyxNQUFNLEtBQUssT0FBTyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQUEsQ0FBQztJQUN4QyxJQUFXLElBQUksS0FBSyxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFBQSxDQUFDO0lBQ3BDLElBQVcsS0FBSyxLQUFLLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQztJQUFBLENBQUM7SUFDdEMsSUFBVyxRQUFRLEtBQUssT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQUEsQ0FBQztJQUM1QyxJQUFXLE9BQU8sS0FBSyxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFBQSxDQUFDO0lBQzFDLElBQVcsSUFBSSxLQUFLLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQztJQUFBLENBQUM7SUFDcEMsSUFBVyxRQUFRLEtBQUssT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQUEsQ0FBQztJQUVyQyxNQUFNLEtBQUssWUFBWSxLQUFLLE9BQU8sYUFBYSxDQUFDLENBQUMsQ0FBQztJQUFBLENBQUM7SUFDcEQsTUFBTSxLQUFLLGVBQWUsS0FBSyxPQUFPLGdCQUFnQixDQUFDLENBQUMsQ0FBQztJQUFBLENBQUM7SUFDMUQsTUFBTSxLQUFLLE1BQU0sS0FBSyxPQUFPLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFBQSxDQUFDO0lBQ3hDLE1BQU0sS0FBSyxJQUFJLEtBQUssT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQUEsQ0FBQztJQUNwQyxNQUFNLEtBQUssS0FBSyxLQUFLLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQztJQUFBLENBQUM7SUFDdEMsTUFBTSxLQUFLLFFBQVEsS0FBSyxPQUFPLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFBQSxDQUFDO0lBQzVDLE1BQU0sS0FBSyxPQUFPLEtBQUssT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQUEsQ0FBQztJQUMxQyxNQUFNLEtBQUssSUFBSSxLQUFLLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQztJQUFBLENBQUM7SUFDcEMsTUFBTSxLQUFLLFFBQVEsS0FBSyxPQUFPLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFBQSxDQUFDO0NBQ3BEIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBpZ25vcmUgKi9cclxuY29uc3QgX3NwaXJpdGVkYXdheTogc3RyaW5nID0gJ3NwaXJpdGVkYXdheSc7XHJcbi8qKiBAaWdub3JlICovXHJcbmNvbnN0IF9tb29ucmlzZWtpbmdkb206IHN0cmluZyA9ICdtb29ucmlzZWtpbmdkb20nO1xyXG4vKiogQGlnbm9yZSAqL1xyXG5jb25zdCBfZnJvemVuOiBzdHJpbmcgPSAnZnJvemVuJztcclxuLyoqIEBpZ25vcmUgKi9cclxuY29uc3QgX2Rhcms6IHN0cmluZyA9ICdkYXJrJztcclxuLyoqIEBpZ25vcmUgKi9cclxuY29uc3QgX2tlbGx5OiBzdHJpbmcgPSAna2VsbHknO1xyXG4vKiogQGlnbm9yZSAqL1xyXG5jb25zdCBfbWF0ZXJpYWw6IHN0cmluZyA9ICdtYXRlcmlhbCc7XHJcbi8qKiBAaWdub3JlICovXHJcbmNvbnN0IF9kYXRhdml6OiBzdHJpbmcgPSAnZGF0YXZpeic7XHJcbi8qKiBAaWdub3JlICovXHJcbmNvbnN0IF9ub25lOiBzdHJpbmcgPSAnbm9uZSc7XHJcbi8qKiBAaWdub3JlICovXHJcbmNvbnN0IF9hbmltYXRlZDogc3RyaW5nID0gJ2FuaW1hdGVkJztcclxuXHJcbi8qKlxyXG4gKiBDbGFzc2UgcGVyIGVudW1lcmFyZSBpIHRlbWkgZGlzcG9uaWJpbGkgbmVsbGEgbGlicmVyaWFcclxuICovXHJcbi8vIEBkeW5hbWljXHJcbmV4cG9ydCBjbGFzcyBDaGFydFRoZW1lcyB7XHJcbiAgcHVibGljIGdldCBzcGlyaXRlZGF3YXkoKSB7IHJldHVybiBfc3Bpcml0ZWRhd2F5OyB9O1xyXG4gIHB1YmxpYyBnZXQgbW9vbnJpc2VraW5nZG9tKCkgeyByZXR1cm4gX21vb25yaXNla2luZ2RvbTsgfTtcclxuICBwdWJsaWMgZ2V0IGZyb3plbigpIHsgcmV0dXJuIF9mcm96ZW47IH07XHJcbiAgcHVibGljIGdldCBkYXJrKCkgeyByZXR1cm4gX2Rhcms7IH07XHJcbiAgcHVibGljIGdldCBrZWxseSgpIHsgcmV0dXJuIF9rZWxseTsgfTtcclxuICBwdWJsaWMgZ2V0IG1hdGVyaWFsKCkgeyByZXR1cm4gX21hdGVyaWFsOyB9O1xyXG4gIHB1YmxpYyBnZXQgZGF0YXZpeigpIHsgcmV0dXJuIF9kYXRhdml6OyB9O1xyXG4gIHB1YmxpYyBnZXQgbm9uZSgpIHsgcmV0dXJuIF9ub25lOyB9O1xyXG4gIHB1YmxpYyBnZXQgYW5pbWF0ZWQoKSB7IHJldHVybiBfYW5pbWF0ZWQ7IH07XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0IHNwaXJpdGVkYXdheSgpIHsgcmV0dXJuIF9zcGlyaXRlZGF3YXk7IH07XHJcbiAgcHVibGljIHN0YXRpYyBnZXQgbW9vbnJpc2VraW5nZG9tKCkgeyByZXR1cm4gX21vb25yaXNla2luZ2RvbTsgfTtcclxuICBwdWJsaWMgc3RhdGljIGdldCBmcm96ZW4oKSB7IHJldHVybiBfZnJvemVuOyB9O1xyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0IGRhcmsoKSB7IHJldHVybiBfZGFyazsgfTtcclxuICBwdWJsaWMgc3RhdGljIGdldCBrZWxseSgpIHsgcmV0dXJuIF9rZWxseTsgfTtcclxuICBwdWJsaWMgc3RhdGljIGdldCBtYXRlcmlhbCgpIHsgcmV0dXJuIF9tYXRlcmlhbDsgfTtcclxuICBwdWJsaWMgc3RhdGljIGdldCBkYXRhdml6KCkgeyByZXR1cm4gX2RhdGF2aXo7IH07XHJcbiAgcHVibGljIHN0YXRpYyBnZXQgbm9uZSgpIHsgcmV0dXJuIF9ub25lOyB9O1xyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0IGFuaW1hdGVkKCkgeyByZXR1cm4gX2FuaW1hdGVkOyB9O1xyXG59Il19
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dati relativi a un grafico di tipo AreaChart
|
|
3
|
+
*/
|
|
4
|
+
export class AreaChartData {
|
|
5
|
+
/**
|
|
6
|
+
* Costruttore
|
|
7
|
+
*
|
|
8
|
+
* @param {{ name: Date; values: KeyValue[]; }[]} groups Gruppi di valori raggruppati per data
|
|
9
|
+
* @param {BaseInterval} interval Intervallo della serie. Viene utilizzato per gestire eventuali Gap
|
|
10
|
+
*/
|
|
11
|
+
constructor(groups = [], interval) {
|
|
12
|
+
this.groups = groups;
|
|
13
|
+
this.interval = interval;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJlYUNoYXJ0RGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VzLWNoYXJ0cy9zcmMvbGliL21vZGVscy9kYXRhL0FyZWFDaGFydERhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0E7O0dBRUc7QUFDSCxNQUFNLE9BQU8sYUFBYTtJQUV0Qjs7Ozs7T0FLRztJQUNILFlBQW1CLFNBQWdELEVBQUUsRUFBUyxRQUF1QjtRQUFsRixXQUFNLEdBQU4sTUFBTSxDQUE0QztRQUFTLGFBQVEsR0FBUixRQUFRLENBQWU7SUFBSSxDQUFDO0NBQzdHIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUludGVydmFsIH0gZnJvbSAnLi4vc2V0dGluZ3MvYmFzZS9CYXNlSW50ZXJ2YWwnO1xyXG5pbXBvcnQgeyBLZXlWYWx1ZSB9IGZyb20gJy4vYmFzZS9LZXlWYWx1ZSc7XHJcblxyXG4vKipcclxuICogRGF0aSByZWxhdGl2aSBhIHVuIGdyYWZpY28gZGkgdGlwbyBBcmVhQ2hhcnRcclxuICovXHJcbmV4cG9ydCBjbGFzcyBBcmVhQ2hhcnREYXRhIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvc3RydXR0b3JlXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7eyBuYW1lOiBEYXRlOyB2YWx1ZXM6IEtleVZhbHVlW107IH1bXX0gZ3JvdXBzIEdydXBwaSBkaSB2YWxvcmkgcmFnZ3J1cHBhdGkgcGVyIGRhdGFcclxuICAgICAqIEBwYXJhbSB7QmFzZUludGVydmFsfSBpbnRlcnZhbCBJbnRlcnZhbGxvIGRlbGxhIHNlcmllLiBWaWVuZSB1dGlsaXp6YXRvIHBlciBnZXN0aXJlIGV2ZW50dWFsaSBHYXBcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IocHVibGljIGdyb3VwczogeyBuYW1lOiBEYXRlOyB2YWx1ZXM6IEtleVZhbHVlW107IH1bXSA9IFtdLCBwdWJsaWMgaW50ZXJ2YWw/OiBCYXNlSW50ZXJ2YWwpIHsgfVxyXG59Il19
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dati relativi a un grafico di tipo LineChart
|
|
3
|
+
*/
|
|
4
|
+
export class LineChartData {
|
|
5
|
+
/**
|
|
6
|
+
* Costruttore
|
|
7
|
+
*
|
|
8
|
+
* @param {LineSerie[]} series Lista di serie da graficare
|
|
9
|
+
* @param {{upper: lower}}
|
|
10
|
+
*/
|
|
11
|
+
constructor(series = [], limit) {
|
|
12
|
+
this.series = series;
|
|
13
|
+
this.limit = limit;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGluZUNoYXJ0RGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VzLWNoYXJ0cy9zcmMvbGliL21vZGVscy9kYXRhL0xpbmVDaGFydERhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0E7O0dBRUc7QUFDSCxNQUFNLE9BQU8sYUFBYTtJQUV0Qjs7Ozs7T0FLRztJQUNILFlBQW1CLFNBQXNCLEVBQUUsRUFBUyxLQUFhO1FBQTlDLFdBQU0sR0FBTixNQUFNLENBQWtCO1FBQVMsVUFBSyxHQUFMLEtBQUssQ0FBUTtJQUFJLENBQUM7Q0FDekUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMaW1pdCB9IGZyb20gJy4vYmFzZS9MaW1pdCc7XHJcbmltcG9ydCB7IExpbmVTZXJpZSB9IGZyb20gJy4vYmFzZS9MaW5lU2VyaWUnO1xyXG5cclxuLyoqXHJcbiAqIERhdGkgcmVsYXRpdmkgYSB1biBncmFmaWNvIGRpIHRpcG8gTGluZUNoYXJ0XHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgTGluZUNoYXJ0RGF0YSB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb3N0cnV0dG9yZVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge0xpbmVTZXJpZVtdfSBzZXJpZXMgTGlzdGEgZGkgc2VyaWUgZGEgZ3JhZmljYXJlXHJcbiAgICAgKiBAcGFyYW0ge3t1cHBlcjogbG93ZXJ9fVxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgc2VyaWVzOiBMaW5lU2VyaWVbXSA9IFtdLCBwdWJsaWMgbGltaXQ/OiBMaW1pdCkgeyB9XHJcbn0iXX0=
|