@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,10 +1,10 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Injectable, EventEmitter, Component, ChangeDetectionStrategy, Input, Output, ContentChild, InjectionToken, Inject, Directive, PLATFORM_ID, NgModule } from '@angular/core';
|
|
3
|
-
import * as
|
|
3
|
+
import * as i5 from '@angular/common';
|
|
4
4
|
import { isPlatformBrowser, CommonModule } from '@angular/common';
|
|
5
5
|
import * as am4core from '@amcharts/amcharts4/core';
|
|
6
6
|
import * as am4charts from '@amcharts/amcharts4/charts';
|
|
7
|
-
import * as
|
|
7
|
+
import * as i3 from '@esfaenza/extensions';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Adapter Base da reimplementare per trasformare i dati da una libreria di grafici a questa per evitare di riscrivere tutto il codice di
|
|
@@ -223,13 +223,13 @@ class LegendPad {
|
|
|
223
223
|
*/
|
|
224
224
|
class Limit {
|
|
225
225
|
/** @ignore */
|
|
226
|
-
constructor(upper,
|
|
226
|
+
constructor(upper, upperlabel, uppercolor, lower, lowerlabel, lowercolor) {
|
|
227
227
|
this.upper = upper;
|
|
228
|
-
this.
|
|
229
|
-
this.
|
|
228
|
+
this.upperlabel = upperlabel;
|
|
229
|
+
this.uppercolor = uppercolor;
|
|
230
230
|
this.lower = lower;
|
|
231
|
-
this.
|
|
232
|
-
this.
|
|
231
|
+
this.lowerlabel = lowerlabel;
|
|
232
|
+
this.lowercolor = lowercolor;
|
|
233
233
|
}
|
|
234
234
|
}
|
|
235
235
|
|
|
@@ -358,7 +358,7 @@ class PageChartSelector {
|
|
|
358
358
|
}
|
|
359
359
|
}
|
|
360
360
|
PageChartSelector.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: PageChartSelector, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
361
|
-
PageChartSelector.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: PageChartSelector, selector: "chart-pager", inputs: { Items: "Items", Dtos: "Dtos", BrowseDelayMs: "BrowseDelayMs", StartIndex: "StartIndex" }, outputs: { onPageChange: "onPageChange" }, queries: [{ propertyName: "headerInner_tr", first: true, predicate: ["header_inner"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"(Items || Dtos) && (Items || Dtos).length > 0\" class=\"pcs-no-selection\">\r\n <div class=\"pcs-button pcs-backward\">\r\n <svg class=\"pcs-svg-header\">\r\n <g class=\"pcs-svg-button-container\" role=\"button\" (click)=\"currentpage != 1 && Previous(); $event.stopPropagation(); $event.preventDefault();\">\r\n <!--Pulsante e freccettina all'interno-->\r\n <g class=\"pcs-svg-button\" [style.cursor]=\"currentpage == 1 ? 'not-allowed' : 'pointer'\"><path d=\"M3,0 L53.027,0 a3,3 0 0 1 3,3 L56.027,36.817 a3,3 0 0 1 -3,3 L3,39.817 a3,3 0 0 1 -3,-3 L0,3 a3,3 0 0 1 3,-3 Z\"></path></g>\r\n <g class=\"pcs-svg-arrow pcs-svg-arrow-left\"><path d=\"M26,14H10l5.17-6.79A2,2,0,0,0,12,4.79l-7.62,10a2,2,0,0,0,0,2.42l7.62,10a2,2,0,0,0,3.18-2.42L10,18H26a2,2,0,0,0,0-4Z\"></path></g>\r\n </g>\r\n </svg>\r\n </div>\r\n <div class=\"pcs-infos\">\r\n <ng-container *ngIf=\"headerInner_tr\">\r\n <ng-container *ngTemplateOutlet=\"headerInner_tr; context : {$implicit: (Items || Dtos)[currentpage - 1]}\"></ng-container>\r\n </ng-container>\r\n </div>\r\n <div class=\"pcs-button pcs-forward\">\r\n <svg class=\"pcs-svg-header\">\r\n <g class=\"pcs-svg-button-container\" role=\"button\" (click)=\"(Items || Dtos).length != currentpage && Next(); $event.stopPropagation(); $event.preventDefault();\">\r\n <!--Pulsante e freccettina all'interno-->\r\n <g class=\"pcs-svg-button\" [style.cursor]=\"(Items || Dtos).length == currentpage ? 'not-allowed' : 'pointer'\"><path d=\"M3,0 L53.027,0 a3,3 0 0 1 3,3 L56.027,36.817 a3,3 0 0 1 -3,3 L3,39.817 a3,3 0 0 1 -3,-3 L0,3 a3,3 0 0 1 3,-3 Z\"></path></g>\r\n <g class=\"pcs-svg-arrow pcs-svg-arrow-right\"><path d=\"M26,14H10l5.17-6.79A2,2,0,0,0,12,4.79l-7.62,10a2,2,0,0,0,0,2.42l7.62,10a2,2,0,0,0,3.18-2.42L10,18H26a2,2,0,0,0,0-4Z\"></path></g>\r\n </g>\r\n </svg>\r\n </div>\r\n <div style=\"clear: both;\"></div>\r\n</div>", styles: [".pcs-button{width:60px}.pcs-forward{float:right;text-align:end}.pcs-backward{float:left}.pcs-svg-header{width:57px;height:40px}.pcs-svg-button-container{outline:currentcolor none medium}.pcs-svg-arrow{pointer-events:none;fill:#555}.pcs-svg-arrow-right{transform:translate(44px,36px) rotate(180deg)}.pcs-svg-arrow-left{transform:translate(13px,4px)}.pcs-svg-button{fill:#d9d9d9;stroke:#fff;fill-opacity:1;stroke-opacity:1}.pcs-svg-button:hover{fill:#a3a3a3;cursor:pointer}.pcs-infos{width:calc(100% - 120px);height:44px;float:left}.pcs-no-selection{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}\n"], directives: [{ type:
|
|
361
|
+
PageChartSelector.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: PageChartSelector, selector: "chart-pager", inputs: { Items: "Items", Dtos: "Dtos", BrowseDelayMs: "BrowseDelayMs", StartIndex: "StartIndex" }, outputs: { onPageChange: "onPageChange" }, queries: [{ propertyName: "headerInner_tr", first: true, predicate: ["header_inner"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"(Items || Dtos) && (Items || Dtos).length > 0\" class=\"pcs-no-selection\">\r\n <div class=\"pcs-button pcs-backward\">\r\n <svg class=\"pcs-svg-header\">\r\n <g class=\"pcs-svg-button-container\" role=\"button\" (click)=\"currentpage != 1 && Previous(); $event.stopPropagation(); $event.preventDefault();\">\r\n <!--Pulsante e freccettina all'interno-->\r\n <g class=\"pcs-svg-button\" [style.cursor]=\"currentpage == 1 ? 'not-allowed' : 'pointer'\"><path d=\"M3,0 L53.027,0 a3,3 0 0 1 3,3 L56.027,36.817 a3,3 0 0 1 -3,3 L3,39.817 a3,3 0 0 1 -3,-3 L0,3 a3,3 0 0 1 3,-3 Z\"></path></g>\r\n <g class=\"pcs-svg-arrow pcs-svg-arrow-left\"><path d=\"M26,14H10l5.17-6.79A2,2,0,0,0,12,4.79l-7.62,10a2,2,0,0,0,0,2.42l7.62,10a2,2,0,0,0,3.18-2.42L10,18H26a2,2,0,0,0,0-4Z\"></path></g>\r\n </g>\r\n </svg>\r\n </div>\r\n <div class=\"pcs-infos\">\r\n <ng-container *ngIf=\"headerInner_tr\">\r\n <ng-container *ngTemplateOutlet=\"headerInner_tr; context : {$implicit: (Items || Dtos)[currentpage - 1]}\"></ng-container>\r\n </ng-container>\r\n </div>\r\n <div class=\"pcs-button pcs-forward\">\r\n <svg class=\"pcs-svg-header\">\r\n <g class=\"pcs-svg-button-container\" role=\"button\" (click)=\"(Items || Dtos).length != currentpage && Next(); $event.stopPropagation(); $event.preventDefault();\">\r\n <!--Pulsante e freccettina all'interno-->\r\n <g class=\"pcs-svg-button\" [style.cursor]=\"(Items || Dtos).length == currentpage ? 'not-allowed' : 'pointer'\"><path d=\"M3,0 L53.027,0 a3,3 0 0 1 3,3 L56.027,36.817 a3,3 0 0 1 -3,3 L3,39.817 a3,3 0 0 1 -3,-3 L0,3 a3,3 0 0 1 3,-3 Z\"></path></g>\r\n <g class=\"pcs-svg-arrow pcs-svg-arrow-right\"><path d=\"M26,14H10l5.17-6.79A2,2,0,0,0,12,4.79l-7.62,10a2,2,0,0,0,0,2.42l7.62,10a2,2,0,0,0,3.18-2.42L10,18H26a2,2,0,0,0,0-4Z\"></path></g>\r\n </g>\r\n </svg>\r\n </div>\r\n <div style=\"clear: both;\"></div>\r\n</div>", styles: [".pcs-button{width:60px}.pcs-forward{float:right;text-align:end}.pcs-backward{float:left}.pcs-svg-header{width:57px;height:40px}.pcs-svg-button-container{outline:currentcolor none medium}.pcs-svg-arrow{pointer-events:none;fill:#555}.pcs-svg-arrow-right{transform:translate(44px,36px) rotate(180deg)}.pcs-svg-arrow-left{transform:translate(13px,4px)}.pcs-svg-button{fill:#d9d9d9;stroke:#fff;fill-opacity:1;stroke-opacity:1}.pcs-svg-button:hover{fill:#a3a3a3;cursor:pointer}.pcs-infos{width:calc(100% - 120px);height:44px;float:left}.pcs-no-selection{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}\n"], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
362
362
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: PageChartSelector, decorators: [{
|
|
363
363
|
type: Component,
|
|
364
364
|
args: [{ selector: "chart-pager", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"(Items || Dtos) && (Items || Dtos).length > 0\" class=\"pcs-no-selection\">\r\n <div class=\"pcs-button pcs-backward\">\r\n <svg class=\"pcs-svg-header\">\r\n <g class=\"pcs-svg-button-container\" role=\"button\" (click)=\"currentpage != 1 && Previous(); $event.stopPropagation(); $event.preventDefault();\">\r\n <!--Pulsante e freccettina all'interno-->\r\n <g class=\"pcs-svg-button\" [style.cursor]=\"currentpage == 1 ? 'not-allowed' : 'pointer'\"><path d=\"M3,0 L53.027,0 a3,3 0 0 1 3,3 L56.027,36.817 a3,3 0 0 1 -3,3 L3,39.817 a3,3 0 0 1 -3,-3 L0,3 a3,3 0 0 1 3,-3 Z\"></path></g>\r\n <g class=\"pcs-svg-arrow pcs-svg-arrow-left\"><path d=\"M26,14H10l5.17-6.79A2,2,0,0,0,12,4.79l-7.62,10a2,2,0,0,0,0,2.42l7.62,10a2,2,0,0,0,3.18-2.42L10,18H26a2,2,0,0,0,0-4Z\"></path></g>\r\n </g>\r\n </svg>\r\n </div>\r\n <div class=\"pcs-infos\">\r\n <ng-container *ngIf=\"headerInner_tr\">\r\n <ng-container *ngTemplateOutlet=\"headerInner_tr; context : {$implicit: (Items || Dtos)[currentpage - 1]}\"></ng-container>\r\n </ng-container>\r\n </div>\r\n <div class=\"pcs-button pcs-forward\">\r\n <svg class=\"pcs-svg-header\">\r\n <g class=\"pcs-svg-button-container\" role=\"button\" (click)=\"(Items || Dtos).length != currentpage && Next(); $event.stopPropagation(); $event.preventDefault();\">\r\n <!--Pulsante e freccettina all'interno-->\r\n <g class=\"pcs-svg-button\" [style.cursor]=\"(Items || Dtos).length == currentpage ? 'not-allowed' : 'pointer'\"><path d=\"M3,0 L53.027,0 a3,3 0 0 1 3,3 L56.027,36.817 a3,3 0 0 1 -3,3 L3,39.817 a3,3 0 0 1 -3,-3 L0,3 a3,3 0 0 1 3,-3 Z\"></path></g>\r\n <g class=\"pcs-svg-arrow pcs-svg-arrow-right\"><path d=\"M26,14H10l5.17-6.79A2,2,0,0,0,12,4.79l-7.62,10a2,2,0,0,0,0,2.42l7.62,10a2,2,0,0,0,3.18-2.42L10,18H26a2,2,0,0,0,0-4Z\"></path></g>\r\n </g>\r\n </svg>\r\n </div>\r\n <div style=\"clear: both;\"></div>\r\n</div>", styles: [".pcs-button{width:60px}.pcs-forward{float:right;text-align:end}.pcs-backward{float:left}.pcs-svg-header{width:57px;height:40px}.pcs-svg-button-container{outline:currentcolor none medium}.pcs-svg-arrow{pointer-events:none;fill:#555}.pcs-svg-arrow-right{transform:translate(44px,36px) rotate(180deg)}.pcs-svg-arrow-left{transform:translate(13px,4px)}.pcs-svg-button{fill:#d9d9d9;stroke:#fff;fill-opacity:1;stroke-opacity:1}.pcs-svg-button:hover{fill:#a3a3a3;cursor:pointer}.pcs-infos{width:calc(100% - 120px);height:44px;float:left}.pcs-no-selection{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}\n"] }]
|
|
@@ -377,113 +377,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
|
|
|
377
377
|
args: ['header_inner', { static: false }]
|
|
378
378
|
}] } });
|
|
379
379
|
|
|
380
|
-
/**
|
|
381
|
-
* Token che identifica il Locale di default per tutti i grafici, può essere sovrascritto dalle impostazioni locali (Settings e Input)
|
|
382
|
-
*/
|
|
383
|
-
const ESC_LOCALE = new InjectionToken('ESC_LOCALE');
|
|
384
|
-
/**
|
|
385
|
-
* Token che identifica il default per l'utilizzo o meno delle Animazioni per tutti i grafici, può essere sovrascritto dalle impostazioni locali (Settings e Input)
|
|
386
|
-
*/
|
|
387
|
-
const ESC_ANIMATIONS = new InjectionToken('ESC_ANIMATIONS');
|
|
388
|
-
/**
|
|
389
|
-
* Token che identifica il Tema di default per tutti i grafici, può essere sovrascritto dalle impostazioni locali (Settings e Input)
|
|
390
|
-
*/
|
|
391
|
-
const ESC_THEME = new InjectionToken('ESC_THEME');
|
|
392
|
-
/**
|
|
393
|
-
* Token che identifica l'utilizzo o meno del sistema di Log per l'intera libreria
|
|
394
|
-
*/
|
|
395
|
-
const ESC_LOGS = new InjectionToken('ESC_LOGS');
|
|
396
|
-
|
|
397
|
-
/**
|
|
398
|
-
* 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
|
|
399
|
-
*/
|
|
400
|
-
class ChartDispatcher {
|
|
401
|
-
/**
|
|
402
|
-
* @ignore
|
|
403
|
-
*/
|
|
404
|
-
constructor(logs) {
|
|
405
|
-
this.logs = logs;
|
|
406
|
-
/**
|
|
407
|
-
* Coda di inizializzazioni ancora da eseguire. Quando questa è vuota significa che nessuno sta creando grafici
|
|
408
|
-
*/
|
|
409
|
-
this.Initializations = [];
|
|
410
|
-
/**
|
|
411
|
-
* Lista dei grafici inizializzati e attivi in un dato momento (viene registrata la proprietà **name**). Non è possibile registrare due grafici con lo stesso identificativo
|
|
412
|
-
*/
|
|
413
|
-
this.InitializedGraphs = [];
|
|
414
|
-
}
|
|
415
|
-
/**
|
|
416
|
-
* Registra un grafico da visualizzare insieme alla propria funzione di creazione. Quest'ultima sarà differita fino a che tutti i grafici
|
|
417
|
-
* precedentemente registati non hanno finito la fase di inizializzazione
|
|
418
|
-
*
|
|
419
|
-
* @param {string} name Identificativo del grafico da registrare
|
|
420
|
-
* @param {Function} chartCreationFunction Funzione che fisicamente dovrà occuparsi della creazione del grafico
|
|
421
|
-
*/
|
|
422
|
-
register(name, chartCreationFunction) {
|
|
423
|
-
if (this.InitializedGraphs.indexOf(name) != -1)
|
|
424
|
-
throw "Attempting to register a duplicate chart '" + name + "'. Make sure the 'name' properties of your charts are univoque";
|
|
425
|
-
this.log("DISPATCHER: Registering chart creation function execution for " + name);
|
|
426
|
-
this.Initializations.push({ name: name, function: chartCreationFunction });
|
|
427
|
-
if (this.Initializations.length == 1) {
|
|
428
|
-
this.log("DISPATCHER: Initial drain started");
|
|
429
|
-
this.drainInitQueues();
|
|
430
|
-
}
|
|
431
|
-
}
|
|
432
|
-
/**
|
|
433
|
-
* Deregistra un grafico presente. Chiamata generalmente al dispose del grafico in questione quando non dev'essere più mostrato nella pagina corrente
|
|
434
|
-
*
|
|
435
|
-
* @param {string} name Identificativo del grafico da deregistrare
|
|
436
|
-
*/
|
|
437
|
-
deregisterGraph(name) {
|
|
438
|
-
let index = this.InitializedGraphs.indexOf(name);
|
|
439
|
-
if (index == -1) {
|
|
440
|
-
//Questo succede quando si cerca di distruggere il grafico mentre sta venendo graficato
|
|
441
|
-
this.log("DISPATCHER: Registration missing for chart " + name + " it was probably destroyed during load");
|
|
442
|
-
return;
|
|
443
|
-
}
|
|
444
|
-
this.log("DISPATCHER: Chart deregistered " + name);
|
|
445
|
-
this.InitializedGraphs.splice(index, 1);
|
|
446
|
-
}
|
|
447
|
-
/**
|
|
448
|
-
* Metodo che esegue in maniera sequenziale le funzioni di inizializzazione dei grafici finché presenti
|
|
449
|
-
* in modo che nessun grafico possa essere inizializzato contemporaneamente ad un altro.
|
|
450
|
-
*
|
|
451
|
-
* Questo è il punto chiave che permette di avere per ogni grafico temi e locale differenti
|
|
452
|
-
*/
|
|
453
|
-
drainInitQueues() {
|
|
454
|
-
let toExecute = this.Initializations[0];
|
|
455
|
-
this.log("DISPATCHER: Executing initialization function for chart " + toExecute.name);
|
|
456
|
-
toExecute.function().then(() => {
|
|
457
|
-
this.log("DISPATCHER: initialization for chart " + toExecute.name + " is done");
|
|
458
|
-
this.InitializedGraphs.push(toExecute.name);
|
|
459
|
-
this.Initializations.splice(0, 1);
|
|
460
|
-
if (this.Initializations.length >= 1) {
|
|
461
|
-
this.log("DISPATCHER: Found queued initializations. Continuing");
|
|
462
|
-
this.drainInitQueues();
|
|
463
|
-
}
|
|
464
|
-
else
|
|
465
|
-
this.log("DISPATCHER: queue is over, nothing more to do");
|
|
466
|
-
});
|
|
467
|
-
}
|
|
468
|
-
/**
|
|
469
|
-
* @ignore
|
|
470
|
-
*/
|
|
471
|
-
log(text) {
|
|
472
|
-
if (this.logs)
|
|
473
|
-
console.log("@esfaenza/es-charts: " + text);
|
|
474
|
-
}
|
|
475
|
-
}
|
|
476
|
-
ChartDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ChartDispatcher, deps: [{ token: ESC_LOGS }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
477
|
-
ChartDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ChartDispatcher });
|
|
478
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ChartDispatcher, decorators: [{
|
|
479
|
-
type: Injectable
|
|
480
|
-
}], ctorParameters: function () {
|
|
481
|
-
return [{ type: undefined, decorators: [{
|
|
482
|
-
type: Inject,
|
|
483
|
-
args: [ESC_LOGS]
|
|
484
|
-
}] }];
|
|
485
|
-
} });
|
|
486
|
-
|
|
487
380
|
/** @ignore */
|
|
488
381
|
const _spiritedaway = 'spiritedaway';
|
|
489
382
|
/** @ignore */
|
|
@@ -745,6 +638,113 @@ class ChartLoader {
|
|
|
745
638
|
}
|
|
746
639
|
}
|
|
747
640
|
|
|
641
|
+
/**
|
|
642
|
+
* Token che identifica il Locale di default per tutti i grafici, può essere sovrascritto dalle impostazioni locali (Settings e Input)
|
|
643
|
+
*/
|
|
644
|
+
const ESC_LOCALE = new InjectionToken('ESC_LOCALE');
|
|
645
|
+
/**
|
|
646
|
+
* Token che identifica il default per l'utilizzo o meno delle Animazioni per tutti i grafici, può essere sovrascritto dalle impostazioni locali (Settings e Input)
|
|
647
|
+
*/
|
|
648
|
+
const ESC_ANIMATIONS = new InjectionToken('ESC_ANIMATIONS');
|
|
649
|
+
/**
|
|
650
|
+
* Token che identifica il Tema di default per tutti i grafici, può essere sovrascritto dalle impostazioni locali (Settings e Input)
|
|
651
|
+
*/
|
|
652
|
+
const ESC_THEME = new InjectionToken('ESC_THEME');
|
|
653
|
+
/**
|
|
654
|
+
* Token che identifica l'utilizzo o meno del sistema di Log per l'intera libreria
|
|
655
|
+
*/
|
|
656
|
+
const ESC_LOGS = new InjectionToken('ESC_LOGS');
|
|
657
|
+
|
|
658
|
+
/**
|
|
659
|
+
* 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
|
|
660
|
+
*/
|
|
661
|
+
class ChartDispatcher {
|
|
662
|
+
/**
|
|
663
|
+
* @ignore
|
|
664
|
+
*/
|
|
665
|
+
constructor(logs) {
|
|
666
|
+
this.logs = logs;
|
|
667
|
+
/**
|
|
668
|
+
* Coda di inizializzazioni ancora da eseguire. Quando questa è vuota significa che nessuno sta creando grafici
|
|
669
|
+
*/
|
|
670
|
+
this.Initializations = [];
|
|
671
|
+
/**
|
|
672
|
+
* Lista dei grafici inizializzati e attivi in un dato momento (viene registrata la proprietà **name**). Non è possibile registrare due grafici con lo stesso identificativo
|
|
673
|
+
*/
|
|
674
|
+
this.InitializedGraphs = [];
|
|
675
|
+
}
|
|
676
|
+
/**
|
|
677
|
+
* Registra un grafico da visualizzare insieme alla propria funzione di creazione. Quest'ultima sarà differita fino a che tutti i grafici
|
|
678
|
+
* precedentemente registati non hanno finito la fase di inizializzazione
|
|
679
|
+
*
|
|
680
|
+
* @param {string} name Identificativo del grafico da registrare
|
|
681
|
+
* @param {Function} chartCreationFunction Funzione che fisicamente dovrà occuparsi della creazione del grafico
|
|
682
|
+
*/
|
|
683
|
+
register(name, chartCreationFunction) {
|
|
684
|
+
if (this.InitializedGraphs.indexOf(name) != -1)
|
|
685
|
+
throw "Attempting to register a duplicate chart '" + name + "'. Make sure the 'name' properties of your charts are univoque";
|
|
686
|
+
this.log("DISPATCHER: Registering chart creation function execution for " + name);
|
|
687
|
+
this.Initializations.push({ name: name, function: chartCreationFunction });
|
|
688
|
+
if (this.Initializations.length == 1) {
|
|
689
|
+
this.log("DISPATCHER: Initial drain started");
|
|
690
|
+
this.drainInitQueues();
|
|
691
|
+
}
|
|
692
|
+
}
|
|
693
|
+
/**
|
|
694
|
+
* Deregistra un grafico presente. Chiamata generalmente al dispose del grafico in questione quando non dev'essere più mostrato nella pagina corrente
|
|
695
|
+
*
|
|
696
|
+
* @param {string} name Identificativo del grafico da deregistrare
|
|
697
|
+
*/
|
|
698
|
+
deregisterGraph(name) {
|
|
699
|
+
let index = this.InitializedGraphs.indexOf(name);
|
|
700
|
+
if (index == -1) {
|
|
701
|
+
//Questo succede quando si cerca di distruggere il grafico mentre sta venendo graficato
|
|
702
|
+
this.log("DISPATCHER: Registration missing for chart " + name + " it was probably destroyed during load");
|
|
703
|
+
return;
|
|
704
|
+
}
|
|
705
|
+
this.log("DISPATCHER: Chart deregistered " + name);
|
|
706
|
+
this.InitializedGraphs.splice(index, 1);
|
|
707
|
+
}
|
|
708
|
+
/**
|
|
709
|
+
* Metodo che esegue in maniera sequenziale le funzioni di inizializzazione dei grafici finché presenti
|
|
710
|
+
* in modo che nessun grafico possa essere inizializzato contemporaneamente ad un altro.
|
|
711
|
+
*
|
|
712
|
+
* Questo è il punto chiave che permette di avere per ogni grafico temi e locale differenti
|
|
713
|
+
*/
|
|
714
|
+
drainInitQueues() {
|
|
715
|
+
let toExecute = this.Initializations[0];
|
|
716
|
+
this.log("DISPATCHER: Executing initialization function for chart " + toExecute.name);
|
|
717
|
+
toExecute.function().then(() => {
|
|
718
|
+
this.log("DISPATCHER: initialization for chart " + toExecute.name + " is done");
|
|
719
|
+
this.InitializedGraphs.push(toExecute.name);
|
|
720
|
+
this.Initializations.splice(0, 1);
|
|
721
|
+
if (this.Initializations.length >= 1) {
|
|
722
|
+
this.log("DISPATCHER: Found queued initializations. Continuing");
|
|
723
|
+
this.drainInitQueues();
|
|
724
|
+
}
|
|
725
|
+
else
|
|
726
|
+
this.log("DISPATCHER: queue is over, nothing more to do");
|
|
727
|
+
});
|
|
728
|
+
}
|
|
729
|
+
/**
|
|
730
|
+
* @ignore
|
|
731
|
+
*/
|
|
732
|
+
log(text) {
|
|
733
|
+
if (this.logs)
|
|
734
|
+
console.log("@esfaenza/es-charts: " + text);
|
|
735
|
+
}
|
|
736
|
+
}
|
|
737
|
+
ChartDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ChartDispatcher, deps: [{ token: ESC_LOGS }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
738
|
+
ChartDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ChartDispatcher });
|
|
739
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ChartDispatcher, decorators: [{
|
|
740
|
+
type: Injectable
|
|
741
|
+
}], ctorParameters: function () {
|
|
742
|
+
return [{ type: undefined, decorators: [{
|
|
743
|
+
type: Inject,
|
|
744
|
+
args: [ESC_LOGS]
|
|
745
|
+
}] }];
|
|
746
|
+
} });
|
|
747
|
+
|
|
748
748
|
/**
|
|
749
749
|
* Componente Grafico Base che gestisce tutte le cose comuni dei vari grafici istanziabili, come la presenza o menu di una legenda,
|
|
750
750
|
* il tema utilizzato, il locale del singolo grafico, ecc ecc...
|
|
@@ -1136,11 +1136,11 @@ class LineChartService {
|
|
|
1136
1136
|
let range = yAxis.axisRanges.create();
|
|
1137
1137
|
range.value = dataConverted.limit.upper;
|
|
1138
1138
|
range.label.inside = true;
|
|
1139
|
-
range.label.text = dataConverted.limit.
|
|
1139
|
+
range.label.text = dataConverted.limit.upperlabel;
|
|
1140
1140
|
range.label.fill = range.grid.stroke;
|
|
1141
1141
|
range.label.verticalCenter = "bottom";
|
|
1142
|
-
range.label.stroke = am4core.color(dataConverted.limit.
|
|
1143
|
-
range.grid.stroke = am4core.color(dataConverted.limit.
|
|
1142
|
+
range.label.stroke = am4core.color(dataConverted.limit.uppercolor || "#F92200");
|
|
1143
|
+
range.grid.stroke = am4core.color(dataConverted.limit.uppercolor || "#F92200");
|
|
1144
1144
|
range.grid.strokeWidth = 2;
|
|
1145
1145
|
range.grid.strokeOpacity = 1;
|
|
1146
1146
|
}
|
|
@@ -1148,11 +1148,11 @@ class LineChartService {
|
|
|
1148
1148
|
let range = yAxis.axisRanges.create();
|
|
1149
1149
|
range.value = dataConverted.limit.lower;
|
|
1150
1150
|
range.label.inside = true;
|
|
1151
|
-
range.label.text = dataConverted.limit.
|
|
1151
|
+
range.label.text = dataConverted.limit.lowerlabel;
|
|
1152
1152
|
range.label.fill = range.grid.stroke;
|
|
1153
1153
|
range.label.verticalCenter = "bottom";
|
|
1154
|
-
range.label.stroke = am4core.color(dataConverted.limit.
|
|
1155
|
-
range.grid.stroke = am4core.color(dataConverted.limit.
|
|
1154
|
+
range.label.stroke = am4core.color(dataConverted.limit.lowercolor || "#F92200");
|
|
1155
|
+
range.grid.stroke = am4core.color(dataConverted.limit.lowercolor || "#F92200");
|
|
1156
1156
|
range.grid.strokeWidth = 2;
|
|
1157
1157
|
range.grid.strokeOpacity = 1;
|
|
1158
1158
|
}
|
|
@@ -1222,7 +1222,7 @@ class LineChartService {
|
|
|
1222
1222
|
series.strokeWidth = (_b = settings === null || settings === void 0 ? void 0 : settings.StrokeSize) !== null && _b !== void 0 ? _b : 1;
|
|
1223
1223
|
series.connect = !gapsAllowed;
|
|
1224
1224
|
series.minBulletDistance = 10;
|
|
1225
|
-
series.tooltipText = this.singleDataSet ? "" : "{name}: [bold]{valueY}[/]";
|
|
1225
|
+
series.tooltipText = this.singleDataSet ? "" : s.name ? "{name}: [bold]{valueY}[/]" : "[bold]{valueY}[/]";
|
|
1226
1226
|
series.tooltip.pointerOrientation = "vertical";
|
|
1227
1227
|
series.tooltip.background.fillOpacity = 0.5;
|
|
1228
1228
|
series.tooltip.label.padding(12, 12, 12, 12);
|
|
@@ -1261,7 +1261,7 @@ class LineChartService {
|
|
|
1261
1261
|
var text = "[bold]{dateX.formatDate()}[/]\n";
|
|
1262
1262
|
this.ChartInstance.series.each((item) => {
|
|
1263
1263
|
let uom = " [font-style: italic]" + series.dataFields.measureUnit || "" + "[/]";
|
|
1264
|
-
text += "[" + item.stroke.hex + "]●[/] " + item.name + ": [bold]{" + item.dataFields.valueY + "}[/]" + uom + "\n";
|
|
1264
|
+
text += "[" + item.stroke.hex + "]●[/] " + (item.name ? (item.name + ": ") : "") + "[bold]{" + item.dataFields.valueY + "}[/]" + uom + "\n";
|
|
1265
1265
|
});
|
|
1266
1266
|
return text;
|
|
1267
1267
|
});
|
|
@@ -1335,26 +1335,7 @@ class LineChartService {
|
|
|
1335
1335
|
this.ChartInstance.addData(data);
|
|
1336
1336
|
return;
|
|
1337
1337
|
}
|
|
1338
|
-
|
|
1339
|
-
var relativeSerie = dataConverted.series.find(t => t.name == s.name);
|
|
1340
|
-
// Una serie del grafico è stata ggiornata, ordino i datapoint e li aggiungo
|
|
1341
|
-
var correctOrder = true;
|
|
1342
|
-
var prevDate = null;
|
|
1343
|
-
for (let v = 0; v < relativeSerie.values.length; v++) {
|
|
1344
|
-
if (!prevDate)
|
|
1345
|
-
prevDate = relativeSerie.values[v].d;
|
|
1346
|
-
else if (relativeSerie.values[v].d < prevDate) {
|
|
1347
|
-
correctOrder = false;
|
|
1348
|
-
break;
|
|
1349
|
-
}
|
|
1350
|
-
}
|
|
1351
|
-
if (!correctOrder)
|
|
1352
|
-
relativeSerie.values.sort((d1, d2) => d1.d.getTime() - d2.d.getTime());
|
|
1353
|
-
for (let v = 0; v < relativeSerie.values.length; v++) {
|
|
1354
|
-
let obj = relativeSerie.values[v];
|
|
1355
|
-
s.addData({ date: obj.d, value: obj.v });
|
|
1356
|
-
}
|
|
1357
|
-
});
|
|
1338
|
+
throw "Impossibile aggiornare i dati senza unire il dataset. Si prega di impostare [MergeDatasets] a true";
|
|
1358
1339
|
}
|
|
1359
1340
|
/** Partendo da dati divisi per seriue genera un dataset unito con la data come chiave e i vari valori dopo */
|
|
1360
1341
|
generateSingleDataset(data) {
|
|
@@ -1441,155 +1422,22 @@ class LineChartService {
|
|
|
1441
1422
|
}
|
|
1442
1423
|
|
|
1443
1424
|
/**
|
|
1444
|
-
* Classe il cui unico scopo è gestire il setup e rendering di un
|
|
1425
|
+
* Classe il cui unico scopo è gestire il setup e rendering di un PieChart
|
|
1445
1426
|
*/
|
|
1446
|
-
class
|
|
1427
|
+
class PieChartService {
|
|
1447
1428
|
/** @ignore */
|
|
1448
1429
|
constructor(Adapter) {
|
|
1449
1430
|
this.Adapter = Adapter;
|
|
1450
|
-
//******************** Funzione di throttling per non spammare richieste in caso di animazioni attivate
|
|
1451
|
-
//TODO: spostarla in un metodo di utilità (esfaenza/extensions)
|
|
1452
1431
|
/** @ignore */
|
|
1453
|
-
this.
|
|
1432
|
+
this.ViewAbsoluteValues = true;
|
|
1454
1433
|
}
|
|
1455
1434
|
/**
|
|
1456
|
-
* Metodo che data una coppia Dati - Impostazioni li utilizza per creare e visualizzare un
|
|
1435
|
+
* Metodo che data una coppia Dati - Impostazioni li utilizza per creare e visualizzare un PieChart
|
|
1457
1436
|
*/
|
|
1458
1437
|
graphicate(data, settings) {
|
|
1459
|
-
var _a, _b, _c, _d
|
|
1438
|
+
var _a, _b, _c, _d;
|
|
1460
1439
|
if (settings.Timeline) {
|
|
1461
|
-
console.error("Timeline not supported for
|
|
1462
|
-
return null;
|
|
1463
|
-
}
|
|
1464
|
-
let dataConverted = this.Adapter ? this.Adapter.adaptDataForAreaChart(data) : data;
|
|
1465
|
-
let showTicks = settings.ShowTicks == null ? true : settings === null || settings === void 0 ? void 0 : settings.ShowTicks;
|
|
1466
|
-
let interval = dataConverted.interval;
|
|
1467
|
-
//Per evitare di dimenticarmeli e gestire comunque bene gli ngif ecc...
|
|
1468
|
-
am4core.options.autoDispose = true;
|
|
1469
|
-
this.ChartInstance = am4core.create(settings.Name, am4charts.XYChart);
|
|
1470
|
-
let ChartInstanceCasted = this.ChartInstance;
|
|
1471
|
-
if (settings.Legend) {
|
|
1472
|
-
ChartInstanceCasted.legend = new am4charts.Legend();
|
|
1473
|
-
ChartInstanceCasted.legend.position = (_a = settings === null || settings === void 0 ? void 0 : settings.LegendPosition) !== null && _a !== void 0 ? _a : 'right';
|
|
1474
|
-
ChartInstanceCasted.legend.itemContainers.template.tooltipText = "{category}";
|
|
1475
|
-
if (settings.LegendPadding) {
|
|
1476
|
-
let template = this.ChartInstance.legend.itemContainers.template;
|
|
1477
|
-
template.paddingTop = (_b = settings.LegendPadding.top) !== null && _b !== void 0 ? _b : 0;
|
|
1478
|
-
template.paddingBottom = (_c = settings.LegendPadding.bottom) !== null && _c !== void 0 ? _c : 0;
|
|
1479
|
-
template.paddingLeft = (_d = settings.LegendPadding.left) !== null && _d !== void 0 ? _d : 0;
|
|
1480
|
-
template.paddingRight = (_e = settings.LegendPadding.right) !== null && _e !== void 0 ? _e : 0;
|
|
1481
|
-
}
|
|
1482
|
-
}
|
|
1483
|
-
let yAxis = ChartInstanceCasted.yAxes.push(new am4charts.ValueAxis());
|
|
1484
|
-
yAxis.tooltip.disabled = true;
|
|
1485
|
-
if (settings.YAxisTitle) {
|
|
1486
|
-
yAxis.title.text = settings.YAxisTitle;
|
|
1487
|
-
yAxis.title.fontWeight = "bold";
|
|
1488
|
-
}
|
|
1489
|
-
yAxis.min = 0;
|
|
1490
|
-
let dateAxis = ChartInstanceCasted.xAxes.push(new am4charts.DateAxis());
|
|
1491
|
-
dateAxis.renderer.minGridDistance = (_f = settings === null || settings === void 0 ? void 0 : settings.MinGridDistance) !== null && _f !== void 0 ? _f : 50;
|
|
1492
|
-
dateAxis.startLocation = 0.5;
|
|
1493
|
-
dateAxis.endLocation = 0.5;
|
|
1494
|
-
if (settings.XAxisTitle) {
|
|
1495
|
-
dateAxis.title.text = settings.XAxisTitle;
|
|
1496
|
-
dateAxis.title.fontWeight = "bold";
|
|
1497
|
-
}
|
|
1498
|
-
if (showTicks) {
|
|
1499
|
-
dateAxis.renderer.ticks.template.disabled = false;
|
|
1500
|
-
dateAxis.renderer.ticks.template.strokeOpacity = 1;
|
|
1501
|
-
dateAxis.renderer.ticks.template.stroke = am4core.color("#495C43");
|
|
1502
|
-
dateAxis.renderer.ticks.template.strokeWidth = 2;
|
|
1503
|
-
dateAxis.renderer.ticks.template.length = 10;
|
|
1504
|
-
dateAxis.renderer.ticks.template.location = 0;
|
|
1505
|
-
}
|
|
1506
|
-
if (!!interval)
|
|
1507
|
-
dateAxis.baseInterval = { count: interval.count, timeUnit: interval.timeunit };
|
|
1508
|
-
// Unisco il dataset e tiro fuori i dati
|
|
1509
|
-
let chartData = [];
|
|
1510
|
-
let seriesToMakeCache = {};
|
|
1511
|
-
let seriesToMake = [];
|
|
1512
|
-
for (let i = 0; i < dataConverted.groups.length; i++) {
|
|
1513
|
-
let group = dataConverted.groups[i];
|
|
1514
|
-
let dataItem = { date: group.name };
|
|
1515
|
-
for (let ii = 0; ii < group.values.length; ii++) {
|
|
1516
|
-
let val = group.values[ii];
|
|
1517
|
-
dataItem[val.k] = val.v;
|
|
1518
|
-
if (!seriesToMakeCache[val.k]) {
|
|
1519
|
-
seriesToMakeCache[val.k] = true;
|
|
1520
|
-
seriesToMake.push(val.k);
|
|
1521
|
-
}
|
|
1522
|
-
}
|
|
1523
|
-
chartData.push(dataItem);
|
|
1524
|
-
}
|
|
1525
|
-
ChartInstanceCasted.data = chartData;
|
|
1526
|
-
//---------------------------------------------------------
|
|
1527
|
-
seriesToMake.forEach(s => { this.createSeries(ChartInstanceCasted, s); });
|
|
1528
|
-
ChartInstanceCasted.cursor = new am4charts.XYCursor();
|
|
1529
|
-
ChartInstanceCasted.cursor.xAxis = dateAxis;
|
|
1530
|
-
dateAxis.events.on("startchanged", t => this.emitSelectionChanged(t, settings));
|
|
1531
|
-
dateAxis.events.on("endchanged", t => this.emitSelectionChanged(t, settings));
|
|
1532
|
-
return this;
|
|
1533
|
-
}
|
|
1534
|
-
/** @ignore */
|
|
1535
|
-
refreshData(data) {
|
|
1536
|
-
//TODO:IMPL
|
|
1537
|
-
}
|
|
1538
|
-
/** @ignore */
|
|
1539
|
-
emitSelectionChanged(ev, settings) {
|
|
1540
|
-
if (settings.OnSelectionChangedCallback) {
|
|
1541
|
-
this.throttla("selchange", () => {
|
|
1542
|
-
var axis = ev.target;
|
|
1543
|
-
var start = new Date(axis.minZoomed);
|
|
1544
|
-
var end = new Date(axis.maxZoomed);
|
|
1545
|
-
var initial = axis.min == axis.minZoomed && axis.max == axis.maxZoomed;
|
|
1546
|
-
settings.OnSelectionChangedCallback({ from: start, to: end, initial: initial });
|
|
1547
|
-
}, 150);
|
|
1548
|
-
}
|
|
1549
|
-
}
|
|
1550
|
-
/** @ignore */
|
|
1551
|
-
createSeries(chart, name) {
|
|
1552
|
-
let series = chart.series.push(new am4charts.LineSeries());
|
|
1553
|
-
series.dataFields.dateX = "date";
|
|
1554
|
-
series.name = name[0].toUpperCase() + name.slice(1);
|
|
1555
|
-
series.dataFields.valueY = name;
|
|
1556
|
-
series.tooltipText = "[#000]{valueY.value}[/]";
|
|
1557
|
-
//series.tooltip.background.fill = am4core.color("#FFF");
|
|
1558
|
-
series.tooltip.getStrokeFromObject = true;
|
|
1559
|
-
series.tooltip.background.strokeWidth = 3;
|
|
1560
|
-
series.tooltip.getFillFromObject = false;
|
|
1561
|
-
series.fillOpacity = 0.6;
|
|
1562
|
-
series.strokeWidth = 2;
|
|
1563
|
-
series.stacked = true;
|
|
1564
|
-
return series;
|
|
1565
|
-
}
|
|
1566
|
-
/** @ignore */
|
|
1567
|
-
throttla(id, func, throttleTime) {
|
|
1568
|
-
//Se ho la funzione che vuole eseguire ripulisco quel timeout
|
|
1569
|
-
if (this.executionTimers[id])
|
|
1570
|
-
clearTimeout(this.executionTimers[id]);
|
|
1571
|
-
//Ricreo il timeout per eseguire quella funzione dopo throttleTime millisecondi
|
|
1572
|
-
this.executionTimers[id] = setTimeout(() => { func(); this.executionTimers[id] = null; }, throttleTime);
|
|
1573
|
-
}
|
|
1574
|
-
}
|
|
1575
|
-
|
|
1576
|
-
/**
|
|
1577
|
-
* Classe il cui unico scopo è gestire il setup e rendering di un PieChart
|
|
1578
|
-
*/
|
|
1579
|
-
class PieChartService {
|
|
1580
|
-
/** @ignore */
|
|
1581
|
-
constructor(Adapter) {
|
|
1582
|
-
this.Adapter = Adapter;
|
|
1583
|
-
/** @ignore */
|
|
1584
|
-
this.ViewAbsoluteValues = true;
|
|
1585
|
-
}
|
|
1586
|
-
/**
|
|
1587
|
-
* Metodo che data una coppia Dati - Impostazioni li utilizza per creare e visualizzare un PieChart
|
|
1588
|
-
*/
|
|
1589
|
-
graphicate(data, settings) {
|
|
1590
|
-
var _a, _b, _c, _d;
|
|
1591
|
-
if (settings.Timeline) {
|
|
1592
|
-
console.error("Timeline not supported for pie chart");
|
|
1440
|
+
console.error("Timeline not supported for pie chart");
|
|
1593
1441
|
return null;
|
|
1594
1442
|
}
|
|
1595
1443
|
//Per evitare di dimenticarmeli e gestire comunque bene gli ngif ecc...
|
|
@@ -1684,15 +1532,13 @@ class PieChartService {
|
|
|
1684
1532
|
}
|
|
1685
1533
|
|
|
1686
1534
|
/**
|
|
1687
|
-
* Classe il cui unico scopo è gestire il setup e rendering di un
|
|
1535
|
+
* Classe il cui unico scopo è gestire il setup e rendering di un VerticalChart
|
|
1688
1536
|
*/
|
|
1689
|
-
class
|
|
1537
|
+
class VerticalChartService {
|
|
1690
1538
|
/** @ignore */
|
|
1691
1539
|
constructor(Adapter) {
|
|
1692
1540
|
this.Adapter = Adapter;
|
|
1693
1541
|
/** @ignore */
|
|
1694
|
-
this.DefaultGroupPaddingPercentage = 5;
|
|
1695
|
-
/** @ignore */
|
|
1696
1542
|
this.dangerZone = 50;
|
|
1697
1543
|
/** @ignore */
|
|
1698
1544
|
this.LabelWidth = 150;
|
|
@@ -1704,10 +1550,10 @@ class Vertical2DChartService {
|
|
|
1704
1550
|
this.DefaultColumnWidthPercentage = 85;
|
|
1705
1551
|
}
|
|
1706
1552
|
/**
|
|
1707
|
-
* Metodo che data una coppia Dati - Impostazioni li utilizza per creare e visualizzare un
|
|
1553
|
+
* Metodo che data una coppia Dati - Impostazioni li utilizza per creare e visualizzare un VerticalChart
|
|
1708
1554
|
*/
|
|
1709
1555
|
graphicate(data, settings) {
|
|
1710
|
-
var _a, _b, _c, _d, _e, _f, _g, _h
|
|
1556
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
1711
1557
|
if (settings.Timeline) {
|
|
1712
1558
|
console.error("Timeline not supported for vertical chart");
|
|
1713
1559
|
return null;
|
|
@@ -1716,6 +1562,8 @@ class Vertical2DChartService {
|
|
|
1716
1562
|
am4core.options.autoDispose = true;
|
|
1717
1563
|
this.ChartInstance = am4core.create(settings.Name, am4charts.XYChart);
|
|
1718
1564
|
let ChartInstanceCasted = this.ChartInstance;
|
|
1565
|
+
let dataConverted = this.Adapter ? this.Adapter.adaptDataForVerticalChart(data) : data;
|
|
1566
|
+
ChartInstanceCasted.data = dataConverted.values;
|
|
1719
1567
|
if (settings.Legend) {
|
|
1720
1568
|
ChartInstanceCasted.legend = new am4charts.Legend();
|
|
1721
1569
|
ChartInstanceCasted.legend.position = (_a = settings === null || settings === void 0 ? void 0 : settings.LegendPosition) !== null && _a !== void 0 ? _a : 'right';
|
|
@@ -1738,15 +1586,12 @@ class Vertical2DChartService {
|
|
|
1738
1586
|
categoryAxis.title.text = settings.XAxisTitle;
|
|
1739
1587
|
categoryAxis.title.fontWeight = "bold";
|
|
1740
1588
|
}
|
|
1741
|
-
|
|
1742
|
-
categoryAxis.dataFields.category = 'key';
|
|
1743
|
-
categoryAxis.renderer.cellStartLocation = am4core.percent((_f = settings.GroupPaddingPercentage) !== null && _f !== void 0 ? _f : this.DefaultGroupPaddingPercentage).value;
|
|
1744
|
-
categoryAxis.renderer.cellEndLocation = am4core.percent(100 - ((_g = settings.GroupPaddingPercentage) !== null && _g !== void 0 ? _g : this.DefaultGroupPaddingPercentage)).value;
|
|
1589
|
+
categoryAxis.dataFields.category = "k";
|
|
1745
1590
|
categoryAxis.renderer.grid.template.location = 0;
|
|
1746
|
-
categoryAxis.renderer.minGridDistance = (
|
|
1591
|
+
categoryAxis.renderer.minGridDistance = (_f = settings === null || settings === void 0 ? void 0 : settings.MinGridDistance) !== null && _f !== void 0 ? _f : 30;
|
|
1747
1592
|
let label = categoryAxis.renderer.labels.template;
|
|
1748
1593
|
label.truncate = true;
|
|
1749
|
-
label.maxWidth = (
|
|
1594
|
+
label.maxWidth = (_g = settings.LabelWidth) !== null && _g !== void 0 ? _g : this.LabelWidth;
|
|
1750
1595
|
label.tooltipText = "{category}";
|
|
1751
1596
|
if ((settings === null || settings === void 0 ? void 0 : settings.AdaptLabelSizeAndOrientation) == null ? true : settings === null || settings === void 0 ? void 0 : settings.AdaptLabelSizeAndOrientation) {
|
|
1752
1597
|
categoryAxis.events.on("sizechanged", (ev) => {
|
|
@@ -1770,88 +1615,35 @@ class Vertical2DChartService {
|
|
|
1770
1615
|
}
|
|
1771
1616
|
});
|
|
1772
1617
|
}
|
|
1773
|
-
|
|
1774
|
-
let
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
|
|
1784
|
-
ChartInstanceCasted.data = dataConverted;
|
|
1785
|
-
if (dataPreConverted.colorInfos)
|
|
1786
|
-
ChartInstanceCasted.colors.list = dataPreConverted.colorInfos.map(c => am4core.color(c.color));
|
|
1787
|
-
//Prendo la prima categoria e mi baso sulle proprietà per dfeinire le serie
|
|
1788
|
-
for (let prop in dataConverted[0])
|
|
1789
|
-
if (prop !== "key")
|
|
1790
|
-
this.createSeries(ChartInstanceCasted, settings, prop, prop);
|
|
1618
|
+
// Create series
|
|
1619
|
+
let series = ChartInstanceCasted.series.push(new am4charts.ColumnSeries());
|
|
1620
|
+
series.dataFields.valueY = "v";
|
|
1621
|
+
series.dataFields.categoryX = "k";
|
|
1622
|
+
series.name = "";
|
|
1623
|
+
series.columns.template.tooltipText = "{categoryX}: [bold]{valueY}[/]";
|
|
1624
|
+
series.columns.template.fillOpacity = .8;
|
|
1625
|
+
series.columns.template.width = am4core.percent((_h = settings.ColumnWidthPercentage) !== null && _h !== void 0 ? _h : this.DefaultColumnWidthPercentage);
|
|
1626
|
+
let columnTemplate = series.columns.template;
|
|
1627
|
+
columnTemplate.strokeWidth = 2;
|
|
1628
|
+
columnTemplate.strokeOpacity = 1;
|
|
1791
1629
|
return this;
|
|
1792
1630
|
}
|
|
1793
1631
|
/** @ignore */
|
|
1794
1632
|
refreshData(data) {
|
|
1795
1633
|
//TODO:IMPL
|
|
1796
1634
|
}
|
|
1797
|
-
/** @ignore */
|
|
1798
|
-
createSeries(chart, settings, value, name) {
|
|
1799
|
-
var _a;
|
|
1800
|
-
let series = chart.series.push(new am4charts.ColumnSeries());
|
|
1801
|
-
series.dataFields.valueY = value;
|
|
1802
|
-
series.dataFields.categoryX = 'key';
|
|
1803
|
-
series.name = name;
|
|
1804
|
-
series.columns.template.tooltipText = "{name} {categoryX}: [bold]{valueY}[/]";
|
|
1805
|
-
series.columns.template.fillOpacity = .8;
|
|
1806
|
-
series.columns.template.width = am4core.percent((_a = settings.ColumnWidthPercentage) !== null && _a !== void 0 ? _a : this.DefaultColumnWidthPercentage);
|
|
1807
|
-
series.events.on("hidden", () => this.arrangeColumns);
|
|
1808
|
-
series.events.on("shown", () => this.arrangeColumns);
|
|
1809
|
-
return series;
|
|
1810
|
-
}
|
|
1811
|
-
/** @ignore */
|
|
1812
|
-
arrangeColumns() {
|
|
1813
|
-
let ChartInstanceCasted = this.ChartInstance;
|
|
1814
|
-
let series = ChartInstanceCasted.series.getIndex(0);
|
|
1815
|
-
let xAxis = ChartInstanceCasted.xAxes.getIndex(0);
|
|
1816
|
-
let w = 1 - xAxis.renderer.cellStartLocation - (1 - xAxis.renderer.cellEndLocation);
|
|
1817
|
-
if (series.dataItems.length > 1) {
|
|
1818
|
-
let x0 = xAxis.getX(series.dataItems.getIndex(0), "categoryX");
|
|
1819
|
-
let x1 = xAxis.getX(series.dataItems.getIndex(1), "categoryX");
|
|
1820
|
-
let delta = ((x1 - x0) / ChartInstanceCasted.series.length) * w;
|
|
1821
|
-
if (am4core.isNumber(delta)) {
|
|
1822
|
-
let middle = ChartInstanceCasted.series.length / 2;
|
|
1823
|
-
let newIndex = 0;
|
|
1824
|
-
ChartInstanceCasted.series.each((series) => {
|
|
1825
|
-
if (!series.isHidden && !series.isHiding) {
|
|
1826
|
-
series.dummyData = newIndex;
|
|
1827
|
-
newIndex++;
|
|
1828
|
-
}
|
|
1829
|
-
else {
|
|
1830
|
-
series.dummyData = ChartInstanceCasted.series.indexOf(series);
|
|
1831
|
-
}
|
|
1832
|
-
});
|
|
1833
|
-
let visibleCount = newIndex;
|
|
1834
|
-
let newMiddle = visibleCount / 2;
|
|
1835
|
-
ChartInstanceCasted.series.each((series) => {
|
|
1836
|
-
let trueIndex = ChartInstanceCasted.series.indexOf(series);
|
|
1837
|
-
let newIndex = series.dummyData;
|
|
1838
|
-
let dx = (newIndex - trueIndex + middle - newMiddle) * delta;
|
|
1839
|
-
series.animate({ property: "dx", to: dx }, series.interpolationDuration, series.interpolationEasing);
|
|
1840
|
-
series.bulletsContainer.animate({ property: "dx", to: dx }, series.interpolationDuration, series.interpolationEasing);
|
|
1841
|
-
});
|
|
1842
|
-
}
|
|
1843
|
-
}
|
|
1844
|
-
}
|
|
1845
1635
|
}
|
|
1846
1636
|
|
|
1847
1637
|
/**
|
|
1848
|
-
* Classe il cui unico scopo è gestire il setup e rendering di un
|
|
1638
|
+
* Classe il cui unico scopo è gestire il setup e rendering di un Vertical2DChart
|
|
1849
1639
|
*/
|
|
1850
|
-
class
|
|
1640
|
+
class Vertical2DChartService {
|
|
1851
1641
|
/** @ignore */
|
|
1852
1642
|
constructor(Adapter) {
|
|
1853
1643
|
this.Adapter = Adapter;
|
|
1854
1644
|
/** @ignore */
|
|
1645
|
+
this.DefaultGroupPaddingPercentage = 5;
|
|
1646
|
+
/** @ignore */
|
|
1855
1647
|
this.dangerZone = 50;
|
|
1856
1648
|
/** @ignore */
|
|
1857
1649
|
this.LabelWidth = 150;
|
|
@@ -1863,10 +1655,10 @@ class VerticalChartService {
|
|
|
1863
1655
|
this.DefaultColumnWidthPercentage = 85;
|
|
1864
1656
|
}
|
|
1865
1657
|
/**
|
|
1866
|
-
* Metodo che data una coppia Dati - Impostazioni li utilizza per creare e visualizzare un
|
|
1658
|
+
* Metodo che data una coppia Dati - Impostazioni li utilizza per creare e visualizzare un Vertical2DChart
|
|
1867
1659
|
*/
|
|
1868
1660
|
graphicate(data, settings) {
|
|
1869
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
1661
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
1870
1662
|
if (settings.Timeline) {
|
|
1871
1663
|
console.error("Timeline not supported for vertical chart");
|
|
1872
1664
|
return null;
|
|
@@ -1875,8 +1667,6 @@ class VerticalChartService {
|
|
|
1875
1667
|
am4core.options.autoDispose = true;
|
|
1876
1668
|
this.ChartInstance = am4core.create(settings.Name, am4charts.XYChart);
|
|
1877
1669
|
let ChartInstanceCasted = this.ChartInstance;
|
|
1878
|
-
let dataConverted = this.Adapter ? this.Adapter.adaptDataForVerticalChart(data) : data;
|
|
1879
|
-
ChartInstanceCasted.data = dataConverted.values;
|
|
1880
1670
|
if (settings.Legend) {
|
|
1881
1671
|
ChartInstanceCasted.legend = new am4charts.Legend();
|
|
1882
1672
|
ChartInstanceCasted.legend.position = (_a = settings === null || settings === void 0 ? void 0 : settings.LegendPosition) !== null && _a !== void 0 ? _a : 'right';
|
|
@@ -1899,12 +1689,15 @@ class VerticalChartService {
|
|
|
1899
1689
|
categoryAxis.title.text = settings.XAxisTitle;
|
|
1900
1690
|
categoryAxis.title.fontWeight = "bold";
|
|
1901
1691
|
}
|
|
1902
|
-
|
|
1692
|
+
yAxis.min = 0;
|
|
1693
|
+
categoryAxis.dataFields.category = 'key';
|
|
1694
|
+
categoryAxis.renderer.cellStartLocation = am4core.percent((_f = settings.GroupPaddingPercentage) !== null && _f !== void 0 ? _f : this.DefaultGroupPaddingPercentage).value;
|
|
1695
|
+
categoryAxis.renderer.cellEndLocation = am4core.percent(100 - ((_g = settings.GroupPaddingPercentage) !== null && _g !== void 0 ? _g : this.DefaultGroupPaddingPercentage)).value;
|
|
1903
1696
|
categoryAxis.renderer.grid.template.location = 0;
|
|
1904
|
-
categoryAxis.renderer.minGridDistance = (
|
|
1697
|
+
categoryAxis.renderer.minGridDistance = (_h = settings === null || settings === void 0 ? void 0 : settings.MinGridDistance) !== null && _h !== void 0 ? _h : 30;
|
|
1905
1698
|
let label = categoryAxis.renderer.labels.template;
|
|
1906
1699
|
label.truncate = true;
|
|
1907
|
-
label.maxWidth = (
|
|
1700
|
+
label.maxWidth = (_j = settings.LabelWidth) !== null && _j !== void 0 ? _j : this.LabelWidth;
|
|
1908
1701
|
label.tooltipText = "{category}";
|
|
1909
1702
|
if ((settings === null || settings === void 0 ? void 0 : settings.AdaptLabelSizeAndOrientation) == null ? true : settings === null || settings === void 0 ? void 0 : settings.AdaptLabelSizeAndOrientation) {
|
|
1910
1703
|
categoryAxis.events.on("sizechanged", (ev) => {
|
|
@@ -1928,23 +1721,78 @@ class VerticalChartService {
|
|
|
1928
1721
|
}
|
|
1929
1722
|
});
|
|
1930
1723
|
}
|
|
1931
|
-
|
|
1932
|
-
let
|
|
1933
|
-
|
|
1934
|
-
|
|
1935
|
-
|
|
1936
|
-
|
|
1937
|
-
|
|
1938
|
-
|
|
1939
|
-
|
|
1940
|
-
|
|
1941
|
-
|
|
1724
|
+
let dataPreConverted = this.Adapter ? this.Adapter.adaptDataForVertical2DChart(data) : data;
|
|
1725
|
+
let dataConverted = [];
|
|
1726
|
+
for (let i = 0; i < dataPreConverted.groups.length; i++) {
|
|
1727
|
+
let item = dataPreConverted.groups[i];
|
|
1728
|
+
let obj = { key: item.name };
|
|
1729
|
+
for (let p = 0; p < item.values.length; p++) {
|
|
1730
|
+
let value = item.values[p];
|
|
1731
|
+
obj[value.k] = value.v;
|
|
1732
|
+
}
|
|
1733
|
+
dataConverted.push(obj);
|
|
1734
|
+
}
|
|
1735
|
+
ChartInstanceCasted.data = dataConverted;
|
|
1736
|
+
if (dataPreConverted.colorInfos)
|
|
1737
|
+
ChartInstanceCasted.colors.list = dataPreConverted.colorInfos.map(c => am4core.color(c.color));
|
|
1738
|
+
//Prendo la prima categoria e mi baso sulle proprietà per dfeinire le serie
|
|
1739
|
+
for (let prop in dataConverted[0])
|
|
1740
|
+
if (prop !== "key")
|
|
1741
|
+
this.createSeries(ChartInstanceCasted, settings, prop, prop);
|
|
1942
1742
|
return this;
|
|
1943
1743
|
}
|
|
1944
1744
|
/** @ignore */
|
|
1945
1745
|
refreshData(data) {
|
|
1946
1746
|
//TODO:IMPL
|
|
1947
1747
|
}
|
|
1748
|
+
/** @ignore */
|
|
1749
|
+
createSeries(chart, settings, value, name) {
|
|
1750
|
+
var _a;
|
|
1751
|
+
let series = chart.series.push(new am4charts.ColumnSeries());
|
|
1752
|
+
series.dataFields.valueY = value;
|
|
1753
|
+
series.dataFields.categoryX = 'key';
|
|
1754
|
+
series.name = name;
|
|
1755
|
+
series.columns.template.tooltipText = "{name} {categoryX}: [bold]{valueY}[/]";
|
|
1756
|
+
series.columns.template.fillOpacity = .8;
|
|
1757
|
+
series.columns.template.width = am4core.percent((_a = settings.ColumnWidthPercentage) !== null && _a !== void 0 ? _a : this.DefaultColumnWidthPercentage);
|
|
1758
|
+
series.events.on("hidden", () => this.arrangeColumns);
|
|
1759
|
+
series.events.on("shown", () => this.arrangeColumns);
|
|
1760
|
+
return series;
|
|
1761
|
+
}
|
|
1762
|
+
/** @ignore */
|
|
1763
|
+
arrangeColumns() {
|
|
1764
|
+
let ChartInstanceCasted = this.ChartInstance;
|
|
1765
|
+
let series = ChartInstanceCasted.series.getIndex(0);
|
|
1766
|
+
let xAxis = ChartInstanceCasted.xAxes.getIndex(0);
|
|
1767
|
+
let w = 1 - xAxis.renderer.cellStartLocation - (1 - xAxis.renderer.cellEndLocation);
|
|
1768
|
+
if (series.dataItems.length > 1) {
|
|
1769
|
+
let x0 = xAxis.getX(series.dataItems.getIndex(0), "categoryX");
|
|
1770
|
+
let x1 = xAxis.getX(series.dataItems.getIndex(1), "categoryX");
|
|
1771
|
+
let delta = ((x1 - x0) / ChartInstanceCasted.series.length) * w;
|
|
1772
|
+
if (am4core.isNumber(delta)) {
|
|
1773
|
+
let middle = ChartInstanceCasted.series.length / 2;
|
|
1774
|
+
let newIndex = 0;
|
|
1775
|
+
ChartInstanceCasted.series.each((series) => {
|
|
1776
|
+
if (!series.isHidden && !series.isHiding) {
|
|
1777
|
+
series.dummyData = newIndex;
|
|
1778
|
+
newIndex++;
|
|
1779
|
+
}
|
|
1780
|
+
else {
|
|
1781
|
+
series.dummyData = ChartInstanceCasted.series.indexOf(series);
|
|
1782
|
+
}
|
|
1783
|
+
});
|
|
1784
|
+
let visibleCount = newIndex;
|
|
1785
|
+
let newMiddle = visibleCount / 2;
|
|
1786
|
+
ChartInstanceCasted.series.each((series) => {
|
|
1787
|
+
let trueIndex = ChartInstanceCasted.series.indexOf(series);
|
|
1788
|
+
let newIndex = series.dummyData;
|
|
1789
|
+
let dx = (newIndex - trueIndex + middle - newMiddle) * delta;
|
|
1790
|
+
series.animate({ property: "dx", to: dx }, series.interpolationDuration, series.interpolationEasing);
|
|
1791
|
+
series.bulletsContainer.animate({ property: "dx", to: dx }, series.interpolationDuration, series.interpolationEasing);
|
|
1792
|
+
});
|
|
1793
|
+
}
|
|
1794
|
+
}
|
|
1795
|
+
}
|
|
1948
1796
|
}
|
|
1949
1797
|
|
|
1950
1798
|
/**
|
|
@@ -2072,6 +1920,139 @@ class VerticalStackedChartService {
|
|
|
2072
1920
|
}
|
|
2073
1921
|
}
|
|
2074
1922
|
|
|
1923
|
+
/**
|
|
1924
|
+
* Classe il cui unico scopo è gestire il setup e rendering di un AreaChart
|
|
1925
|
+
*/
|
|
1926
|
+
class AreaChartService {
|
|
1927
|
+
/** @ignore */
|
|
1928
|
+
constructor(Adapter) {
|
|
1929
|
+
this.Adapter = Adapter;
|
|
1930
|
+
//******************** Funzione di throttling per non spammare richieste in caso di animazioni attivate
|
|
1931
|
+
//TODO: spostarla in un metodo di utilità (esfaenza/extensions)
|
|
1932
|
+
/** @ignore */
|
|
1933
|
+
this.executionTimers = {};
|
|
1934
|
+
}
|
|
1935
|
+
/**
|
|
1936
|
+
* Metodo che data una coppia Dati - Impostazioni li utilizza per creare e visualizzare un AreaChart
|
|
1937
|
+
*/
|
|
1938
|
+
graphicate(data, settings) {
|
|
1939
|
+
var _a, _b, _c, _d, _e, _f;
|
|
1940
|
+
if (settings.Timeline) {
|
|
1941
|
+
console.error("Timeline not supported for area chart");
|
|
1942
|
+
return null;
|
|
1943
|
+
}
|
|
1944
|
+
let dataConverted = this.Adapter ? this.Adapter.adaptDataForAreaChart(data) : data;
|
|
1945
|
+
let showTicks = settings.ShowTicks == null ? true : settings === null || settings === void 0 ? void 0 : settings.ShowTicks;
|
|
1946
|
+
let interval = dataConverted.interval;
|
|
1947
|
+
//Per evitare di dimenticarmeli e gestire comunque bene gli ngif ecc...
|
|
1948
|
+
am4core.options.autoDispose = true;
|
|
1949
|
+
this.ChartInstance = am4core.create(settings.Name, am4charts.XYChart);
|
|
1950
|
+
let ChartInstanceCasted = this.ChartInstance;
|
|
1951
|
+
if (settings.Legend) {
|
|
1952
|
+
ChartInstanceCasted.legend = new am4charts.Legend();
|
|
1953
|
+
ChartInstanceCasted.legend.position = (_a = settings === null || settings === void 0 ? void 0 : settings.LegendPosition) !== null && _a !== void 0 ? _a : 'right';
|
|
1954
|
+
ChartInstanceCasted.legend.itemContainers.template.tooltipText = "{category}";
|
|
1955
|
+
if (settings.LegendPadding) {
|
|
1956
|
+
let template = this.ChartInstance.legend.itemContainers.template;
|
|
1957
|
+
template.paddingTop = (_b = settings.LegendPadding.top) !== null && _b !== void 0 ? _b : 0;
|
|
1958
|
+
template.paddingBottom = (_c = settings.LegendPadding.bottom) !== null && _c !== void 0 ? _c : 0;
|
|
1959
|
+
template.paddingLeft = (_d = settings.LegendPadding.left) !== null && _d !== void 0 ? _d : 0;
|
|
1960
|
+
template.paddingRight = (_e = settings.LegendPadding.right) !== null && _e !== void 0 ? _e : 0;
|
|
1961
|
+
}
|
|
1962
|
+
}
|
|
1963
|
+
let yAxis = ChartInstanceCasted.yAxes.push(new am4charts.ValueAxis());
|
|
1964
|
+
yAxis.tooltip.disabled = true;
|
|
1965
|
+
if (settings.YAxisTitle) {
|
|
1966
|
+
yAxis.title.text = settings.YAxisTitle;
|
|
1967
|
+
yAxis.title.fontWeight = "bold";
|
|
1968
|
+
}
|
|
1969
|
+
yAxis.min = 0;
|
|
1970
|
+
let dateAxis = ChartInstanceCasted.xAxes.push(new am4charts.DateAxis());
|
|
1971
|
+
dateAxis.renderer.minGridDistance = (_f = settings === null || settings === void 0 ? void 0 : settings.MinGridDistance) !== null && _f !== void 0 ? _f : 50;
|
|
1972
|
+
dateAxis.startLocation = 0.5;
|
|
1973
|
+
dateAxis.endLocation = 0.5;
|
|
1974
|
+
if (settings.XAxisTitle) {
|
|
1975
|
+
dateAxis.title.text = settings.XAxisTitle;
|
|
1976
|
+
dateAxis.title.fontWeight = "bold";
|
|
1977
|
+
}
|
|
1978
|
+
if (showTicks) {
|
|
1979
|
+
dateAxis.renderer.ticks.template.disabled = false;
|
|
1980
|
+
dateAxis.renderer.ticks.template.strokeOpacity = 1;
|
|
1981
|
+
dateAxis.renderer.ticks.template.stroke = am4core.color("#495C43");
|
|
1982
|
+
dateAxis.renderer.ticks.template.strokeWidth = 2;
|
|
1983
|
+
dateAxis.renderer.ticks.template.length = 10;
|
|
1984
|
+
dateAxis.renderer.ticks.template.location = 0;
|
|
1985
|
+
}
|
|
1986
|
+
if (!!interval)
|
|
1987
|
+
dateAxis.baseInterval = { count: interval.count, timeUnit: interval.timeunit };
|
|
1988
|
+
// Unisco il dataset e tiro fuori i dati
|
|
1989
|
+
let chartData = [];
|
|
1990
|
+
let seriesToMakeCache = {};
|
|
1991
|
+
let seriesToMake = [];
|
|
1992
|
+
for (let i = 0; i < dataConverted.groups.length; i++) {
|
|
1993
|
+
let group = dataConverted.groups[i];
|
|
1994
|
+
let dataItem = { date: group.name };
|
|
1995
|
+
for (let ii = 0; ii < group.values.length; ii++) {
|
|
1996
|
+
let val = group.values[ii];
|
|
1997
|
+
dataItem[val.k] = val.v;
|
|
1998
|
+
if (!seriesToMakeCache[val.k]) {
|
|
1999
|
+
seriesToMakeCache[val.k] = true;
|
|
2000
|
+
seriesToMake.push(val.k);
|
|
2001
|
+
}
|
|
2002
|
+
}
|
|
2003
|
+
chartData.push(dataItem);
|
|
2004
|
+
}
|
|
2005
|
+
ChartInstanceCasted.data = chartData;
|
|
2006
|
+
//---------------------------------------------------------
|
|
2007
|
+
seriesToMake.forEach(s => { this.createSeries(ChartInstanceCasted, s); });
|
|
2008
|
+
ChartInstanceCasted.cursor = new am4charts.XYCursor();
|
|
2009
|
+
ChartInstanceCasted.cursor.xAxis = dateAxis;
|
|
2010
|
+
dateAxis.events.on("startchanged", t => this.emitSelectionChanged(t, settings));
|
|
2011
|
+
dateAxis.events.on("endchanged", t => this.emitSelectionChanged(t, settings));
|
|
2012
|
+
return this;
|
|
2013
|
+
}
|
|
2014
|
+
/** @ignore */
|
|
2015
|
+
refreshData(data) {
|
|
2016
|
+
//TODO:IMPL
|
|
2017
|
+
}
|
|
2018
|
+
/** @ignore */
|
|
2019
|
+
emitSelectionChanged(ev, settings) {
|
|
2020
|
+
if (settings.OnSelectionChangedCallback) {
|
|
2021
|
+
this.throttla("selchange", () => {
|
|
2022
|
+
var axis = ev.target;
|
|
2023
|
+
var start = new Date(axis.minZoomed);
|
|
2024
|
+
var end = new Date(axis.maxZoomed);
|
|
2025
|
+
var initial = axis.min == axis.minZoomed && axis.max == axis.maxZoomed;
|
|
2026
|
+
settings.OnSelectionChangedCallback({ from: start, to: end, initial: initial });
|
|
2027
|
+
}, 150);
|
|
2028
|
+
}
|
|
2029
|
+
}
|
|
2030
|
+
/** @ignore */
|
|
2031
|
+
createSeries(chart, name) {
|
|
2032
|
+
let series = chart.series.push(new am4charts.LineSeries());
|
|
2033
|
+
series.dataFields.dateX = "date";
|
|
2034
|
+
series.name = name[0].toUpperCase() + name.slice(1);
|
|
2035
|
+
series.dataFields.valueY = name;
|
|
2036
|
+
series.tooltipText = "[#000]{valueY.value}[/]";
|
|
2037
|
+
//series.tooltip.background.fill = am4core.color("#FFF");
|
|
2038
|
+
series.tooltip.getStrokeFromObject = true;
|
|
2039
|
+
series.tooltip.background.strokeWidth = 3;
|
|
2040
|
+
series.tooltip.getFillFromObject = false;
|
|
2041
|
+
series.fillOpacity = 0.6;
|
|
2042
|
+
series.strokeWidth = 2;
|
|
2043
|
+
series.stacked = true;
|
|
2044
|
+
return series;
|
|
2045
|
+
}
|
|
2046
|
+
/** @ignore */
|
|
2047
|
+
throttla(id, func, throttleTime) {
|
|
2048
|
+
//Se ho la funzione che vuole eseguire ripulisco quel timeout
|
|
2049
|
+
if (this.executionTimers[id])
|
|
2050
|
+
clearTimeout(this.executionTimers[id]);
|
|
2051
|
+
//Ricreo il timeout per eseguire quella funzione dopo throttleTime millisecondi
|
|
2052
|
+
this.executionTimers[id] = setTimeout(() => { func(); this.executionTimers[id] = null; }, throttleTime);
|
|
2053
|
+
}
|
|
2054
|
+
}
|
|
2055
|
+
|
|
2075
2056
|
/**
|
|
2076
2057
|
* Componente specifico per la graficazione di un qualsiasi tipo di grafico.
|
|
2077
2058
|
*
|
|
@@ -2145,13 +2126,13 @@ class EsChartComponent extends BaseChartComponent {
|
|
|
2145
2126
|
}
|
|
2146
2127
|
}
|
|
2147
2128
|
}
|
|
2148
|
-
EsChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsChartComponent, deps: [{ token: i0.ElementRef }, { token: ChartLoader }, { token: ChartDispatcher }, { token:
|
|
2149
|
-
EsChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: EsChartComponent, selector: "es-chart", inputs: { Type: "Type", Data: "Data", DataArray: "DataArray" }, 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: PageChartSelector, selector: "chart-pager", inputs: ["Items", "Dtos", "BrowseDelayMs", "StartIndex"], outputs: ["onPageChange"] }], directives: [{ type:
|
|
2129
|
+
EsChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsChartComponent, deps: [{ token: i0.ElementRef }, { token: ChartLoader }, { token: ChartDispatcher }, { token: i3.DateService }, { token: BaseAdapter }, { token: i0.NgZone }, { token: PLATFORM_ID }, { token: ESC_LOGS }, { token: ESC_ANIMATIONS }, { token: ESC_LOCALE }, { token: ESC_THEME }], target: i0.ɵɵFactoryTarget.Component });
|
|
2130
|
+
EsChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: EsChartComponent, selector: "es-chart", inputs: { Type: "Type", Data: "Data", DataArray: "DataArray" }, 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: 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 });
|
|
2150
2131
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsChartComponent, decorators: [{
|
|
2151
2132
|
type: Component,
|
|
2152
2133
|
args: [{ selector: 'es-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"] }]
|
|
2153
2134
|
}], ctorParameters: function () {
|
|
2154
|
-
return [{ type: i0.ElementRef }, { type: ChartLoader }, { type: ChartDispatcher }, { type:
|
|
2135
|
+
return [{ type: i0.ElementRef }, { type: ChartLoader }, { type: ChartDispatcher }, { type: i3.DateService }, { type: BaseAdapter }, { type: i0.NgZone }, { type: Object, decorators: [{
|
|
2155
2136
|
type: Inject,
|
|
2156
2137
|
args: [PLATFORM_ID]
|
|
2157
2138
|
}] }, { type: undefined, decorators: [{
|
|
@@ -2219,7 +2200,7 @@ class EsAreaChartComponent extends BaseChartComponent {
|
|
|
2219
2200
|
}
|
|
2220
2201
|
}
|
|
2221
2202
|
EsAreaChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsAreaChartComponent, deps: [{ token: i0.ElementRef }, { token: ChartLoader }, { token: ChartDispatcher }, { token: BaseAdapter }, { token: i0.NgZone }, { token: PLATFORM_ID }, { token: ESC_LOGS }, { token: ESC_ANIMATIONS }, { token: ESC_LOCALE }, { token: ESC_THEME }], target: i0.ɵɵFactoryTarget.Component });
|
|
2222
|
-
EsAreaChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: EsAreaChartComponent, selector: "es-area-chart", inputs: { Data: "Data", DataArray: "DataArray" }, 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: PageChartSelector, selector: "chart-pager", inputs: ["Items", "Dtos", "BrowseDelayMs", "StartIndex"], outputs: ["onPageChange"] }], directives: [{ type:
|
|
2203
|
+
EsAreaChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: EsAreaChartComponent, selector: "es-area-chart", inputs: { Data: "Data", DataArray: "DataArray" }, 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: 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 });
|
|
2223
2204
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsAreaChartComponent, decorators: [{
|
|
2224
2205
|
type: Component,
|
|
2225
2206
|
args: [{ selector: 'es-area-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"] }]
|
|
@@ -2300,13 +2281,13 @@ class EsLineChartComponent extends BaseChartComponent {
|
|
|
2300
2281
|
return new LineChartService(this.adapter, this.dateService).graphicate(this.Data, settingsCasted);
|
|
2301
2282
|
}
|
|
2302
2283
|
}
|
|
2303
|
-
EsLineChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsLineChartComponent, deps: [{ token: i0.ElementRef }, { token: ChartLoader }, { token: ChartDispatcher }, { token: BaseAdapter }, { token:
|
|
2304
|
-
EsLineChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: EsLineChartComponent, selector: "es-line-chart", inputs: { Data: "Data", DataArray: "DataArray", Step: "Step", DataGroupBucketSize: "DataGroupBucketSize", DataGroupingThreshold: "DataGroupingThreshold", StrokeSize: "StrokeSize", AllowGaps: "AllowGaps", MergeDatasets: "MergeDatasets", FinalInstants: "FinalInstants", Min: "Min", Max: "Max", Fill: "Fill" }, 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: PageChartSelector, selector: "chart-pager", inputs: ["Items", "Dtos", "BrowseDelayMs", "StartIndex"], outputs: ["onPageChange"] }], directives: [{ type:
|
|
2284
|
+
EsLineChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsLineChartComponent, deps: [{ token: i0.ElementRef }, { token: ChartLoader }, { token: ChartDispatcher }, { token: BaseAdapter }, { token: i3.DateService }, { token: i0.NgZone }, { token: PLATFORM_ID }, { token: ESC_LOGS }, { token: ESC_ANIMATIONS }, { token: ESC_LOCALE }, { token: ESC_THEME }], target: i0.ɵɵFactoryTarget.Component });
|
|
2285
|
+
EsLineChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: EsLineChartComponent, selector: "es-line-chart", inputs: { Data: "Data", DataArray: "DataArray", Step: "Step", DataGroupBucketSize: "DataGroupBucketSize", DataGroupingThreshold: "DataGroupingThreshold", StrokeSize: "StrokeSize", AllowGaps: "AllowGaps", MergeDatasets: "MergeDatasets", FinalInstants: "FinalInstants", Min: "Min", Max: "Max", Fill: "Fill" }, 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: 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 });
|
|
2305
2286
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsLineChartComponent, decorators: [{
|
|
2306
2287
|
type: Component,
|
|
2307
2288
|
args: [{ selector: 'es-line-chart', changeDetection: ChangeDetectionStrategy.OnPush, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"] }]
|
|
2308
2289
|
}], ctorParameters: function () {
|
|
2309
|
-
return [{ type: i0.ElementRef }, { type: ChartLoader }, { type: ChartDispatcher }, { type: BaseAdapter }, { type:
|
|
2290
|
+
return [{ type: i0.ElementRef }, { type: ChartLoader }, { type: ChartDispatcher }, { type: BaseAdapter }, { type: i3.DateService }, { type: i0.NgZone }, { type: Object, decorators: [{
|
|
2310
2291
|
type: Inject,
|
|
2311
2292
|
args: [PLATFORM_ID]
|
|
2312
2293
|
}] }, { type: undefined, decorators: [{
|
|
@@ -2399,7 +2380,7 @@ class EsPieChartComponent extends BaseChartComponent {
|
|
|
2399
2380
|
}
|
|
2400
2381
|
}
|
|
2401
2382
|
EsPieChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsPieChartComponent, deps: [{ token: i0.ElementRef }, { token: ChartLoader }, { token: ChartDispatcher }, { token: BaseAdapter }, { token: i0.NgZone }, { token: PLATFORM_ID }, { token: ESC_LOGS }, { token: ESC_ANIMATIONS }, { token: ESC_LOCALE }, { token: ESC_THEME }], target: i0.ɵɵFactoryTarget.Component });
|
|
2402
|
-
EsPieChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: EsPieChartComponent, selector: "es-pie-chart", inputs: { Data: "Data", DataArray: "DataArray", HideZeroes: "HideZeroes", Mode3D: "Mode3D", DonutRadiusPercentage: "DonutRadiusPercentage", LabelsWrap: "LabelsWrap", LabelsTruncate: "LabelsTruncate", LabelsWidth: "LabelsWidth", LabelsVisible: "LabelsVisible" }, usesInheritance: true, ngImport: i0, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"], components: [{ type: PageChartSelector, selector: "chart-pager", inputs: ["Items", "Dtos", "BrowseDelayMs", "StartIndex"], outputs: ["onPageChange"] }], directives: [{ type:
|
|
2383
|
+
EsPieChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: EsPieChartComponent, selector: "es-pie-chart", inputs: { Data: "Data", DataArray: "DataArray", HideZeroes: "HideZeroes", Mode3D: "Mode3D", DonutRadiusPercentage: "DonutRadiusPercentage", LabelsWrap: "LabelsWrap", LabelsTruncate: "LabelsTruncate", LabelsWidth: "LabelsWidth", LabelsVisible: "LabelsVisible" }, usesInheritance: true, ngImport: i0, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"], components: [{ type: 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 });
|
|
2403
2384
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsPieChartComponent, decorators: [{
|
|
2404
2385
|
type: Component,
|
|
2405
2386
|
args: [{ selector: 'es-pie-chart', changeDetection: ChangeDetectionStrategy.OnPush, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"] }]
|
|
@@ -2490,7 +2471,7 @@ class EsVertical2DChartComponent extends BaseChartComponent {
|
|
|
2490
2471
|
}
|
|
2491
2472
|
}
|
|
2492
2473
|
EsVertical2DChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsVertical2DChartComponent, deps: [{ token: i0.ElementRef }, { token: ChartLoader }, { token: ChartDispatcher }, { token: BaseAdapter }, { token: i0.NgZone }, { token: PLATFORM_ID }, { token: ESC_LOGS }, { token: ESC_ANIMATIONS }, { token: ESC_LOCALE }, { token: ESC_THEME }], target: i0.ɵɵFactoryTarget.Component });
|
|
2493
|
-
EsVertical2DChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: EsVertical2DChartComponent, selector: "es-vertical-2d-chart", inputs: { Data: "Data", DataArray: "DataArray", ColumnWidthPercentage: "ColumnWidthPercentage", GroupPaddingPercentage: "GroupPaddingPercentage", 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: PageChartSelector, selector: "chart-pager", inputs: ["Items", "Dtos", "BrowseDelayMs", "StartIndex"], outputs: ["onPageChange"] }], directives: [{ type:
|
|
2474
|
+
EsVertical2DChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: EsVertical2DChartComponent, selector: "es-vertical-2d-chart", inputs: { Data: "Data", DataArray: "DataArray", ColumnWidthPercentage: "ColumnWidthPercentage", GroupPaddingPercentage: "GroupPaddingPercentage", 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: 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 });
|
|
2494
2475
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsVertical2DChartComponent, decorators: [{
|
|
2495
2476
|
type: Component,
|
|
2496
2477
|
args: [{ selector: 'es-vertical-2d-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"] }]
|
|
@@ -2578,7 +2559,7 @@ class EsVerticalChartComponent extends BaseChartComponent {
|
|
|
2578
2559
|
}
|
|
2579
2560
|
}
|
|
2580
2561
|
EsVerticalChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsVerticalChartComponent, deps: [{ token: i0.ElementRef }, { token: ChartLoader }, { token: ChartDispatcher }, { token: BaseAdapter }, { token: i0.NgZone }, { token: PLATFORM_ID }, { token: ESC_LOGS }, { token: ESC_ANIMATIONS }, { token: ESC_LOCALE }, { token: ESC_THEME }], target: i0.ɵɵFactoryTarget.Component });
|
|
2581
|
-
EsVerticalChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: EsVerticalChartComponent, selector: "es-vertical-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: PageChartSelector, selector: "chart-pager", inputs: ["Items", "Dtos", "BrowseDelayMs", "StartIndex"], outputs: ["onPageChange"] }], directives: [{ type:
|
|
2562
|
+
EsVerticalChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: EsVerticalChartComponent, selector: "es-vertical-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: 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 });
|
|
2582
2563
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsVerticalChartComponent, decorators: [{
|
|
2583
2564
|
type: Component,
|
|
2584
2565
|
args: [{ selector: 'es-vertical-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"] }]
|
|
@@ -2664,7 +2645,7 @@ class EsVerticalStackedChartComponent extends BaseChartComponent {
|
|
|
2664
2645
|
}
|
|
2665
2646
|
}
|
|
2666
2647
|
EsVerticalStackedChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsVerticalStackedChartComponent, deps: [{ token: i0.ElementRef }, { token: ChartLoader }, { token: ChartDispatcher }, { token: BaseAdapter }, { token: i0.NgZone }, { token: PLATFORM_ID }, { token: ESC_LOGS }, { token: ESC_ANIMATIONS }, { token: ESC_LOCALE }, { token: ESC_THEME }], target: i0.ɵɵFactoryTarget.Component });
|
|
2667
|
-
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: PageChartSelector, selector: "chart-pager", inputs: ["Items", "Dtos", "BrowseDelayMs", "StartIndex"], outputs: ["onPageChange"] }], directives: [{ type:
|
|
2648
|
+
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: 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 });
|
|
2668
2649
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsVerticalStackedChartComponent, decorators: [{
|
|
2669
2650
|
type: Component,
|
|
2670
2651
|
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"] }]
|