@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,111 +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 () { return [{ type: undefined, decorators: [{
|
|
481
|
-
type: Inject,
|
|
482
|
-
args: [ESC_LOGS]
|
|
483
|
-
}] }]; } });
|
|
484
|
-
|
|
485
380
|
/** @ignore */
|
|
486
381
|
const _spiritedaway = 'spiritedaway';
|
|
487
382
|
/** @ignore */
|
|
@@ -743,6 +638,111 @@ class ChartLoader {
|
|
|
743
638
|
}
|
|
744
639
|
}
|
|
745
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 () { return [{ type: undefined, decorators: [{
|
|
742
|
+
type: Inject,
|
|
743
|
+
args: [ESC_LOGS]
|
|
744
|
+
}] }]; } });
|
|
745
|
+
|
|
746
746
|
/**
|
|
747
747
|
* Componente Grafico Base che gestisce tutte le cose comuni dei vari grafici istanziabili, come la presenza o menu di una legenda,
|
|
748
748
|
* il tema utilizzato, il locale del singolo grafico, ecc ecc...
|
|
@@ -1128,11 +1128,11 @@ class LineChartService {
|
|
|
1128
1128
|
let range = yAxis.axisRanges.create();
|
|
1129
1129
|
range.value = dataConverted.limit.upper;
|
|
1130
1130
|
range.label.inside = true;
|
|
1131
|
-
range.label.text = dataConverted.limit.
|
|
1131
|
+
range.label.text = dataConverted.limit.upperlabel;
|
|
1132
1132
|
range.label.fill = range.grid.stroke;
|
|
1133
1133
|
range.label.verticalCenter = "bottom";
|
|
1134
|
-
range.label.stroke = am4core.color(dataConverted.limit.
|
|
1135
|
-
range.grid.stroke = am4core.color(dataConverted.limit.
|
|
1134
|
+
range.label.stroke = am4core.color(dataConverted.limit.uppercolor || "#F92200");
|
|
1135
|
+
range.grid.stroke = am4core.color(dataConverted.limit.uppercolor || "#F92200");
|
|
1136
1136
|
range.grid.strokeWidth = 2;
|
|
1137
1137
|
range.grid.strokeOpacity = 1;
|
|
1138
1138
|
}
|
|
@@ -1140,11 +1140,11 @@ class LineChartService {
|
|
|
1140
1140
|
let range = yAxis.axisRanges.create();
|
|
1141
1141
|
range.value = dataConverted.limit.lower;
|
|
1142
1142
|
range.label.inside = true;
|
|
1143
|
-
range.label.text = dataConverted.limit.
|
|
1143
|
+
range.label.text = dataConverted.limit.lowerlabel;
|
|
1144
1144
|
range.label.fill = range.grid.stroke;
|
|
1145
1145
|
range.label.verticalCenter = "bottom";
|
|
1146
|
-
range.label.stroke = am4core.color(dataConverted.limit.
|
|
1147
|
-
range.grid.stroke = am4core.color(dataConverted.limit.
|
|
1146
|
+
range.label.stroke = am4core.color(dataConverted.limit.lowercolor || "#F92200");
|
|
1147
|
+
range.grid.stroke = am4core.color(dataConverted.limit.lowercolor || "#F92200");
|
|
1148
1148
|
range.grid.strokeWidth = 2;
|
|
1149
1149
|
range.grid.strokeOpacity = 1;
|
|
1150
1150
|
}
|
|
@@ -1213,7 +1213,7 @@ class LineChartService {
|
|
|
1213
1213
|
series.strokeWidth = settings?.StrokeSize ?? 1;
|
|
1214
1214
|
series.connect = !gapsAllowed;
|
|
1215
1215
|
series.minBulletDistance = 10;
|
|
1216
|
-
series.tooltipText = this.singleDataSet ? "" : "{name}: [bold]{valueY}[/]";
|
|
1216
|
+
series.tooltipText = this.singleDataSet ? "" : s.name ? "{name}: [bold]{valueY}[/]" : "[bold]{valueY}[/]";
|
|
1217
1217
|
series.tooltip.pointerOrientation = "vertical";
|
|
1218
1218
|
series.tooltip.background.fillOpacity = 0.5;
|
|
1219
1219
|
series.tooltip.label.padding(12, 12, 12, 12);
|
|
@@ -1252,7 +1252,7 @@ class LineChartService {
|
|
|
1252
1252
|
var text = "[bold]{dateX.formatDate()}[/]\n";
|
|
1253
1253
|
this.ChartInstance.series.each((item) => {
|
|
1254
1254
|
let uom = " [font-style: italic]" + series.dataFields.measureUnit || "" + "[/]";
|
|
1255
|
-
text += "[" + item.stroke.hex + "]●[/] " + item.name + ": [bold]{" + item.dataFields.valueY + "}[/]" + uom + "\n";
|
|
1255
|
+
text += "[" + item.stroke.hex + "]●[/] " + (item.name ? (item.name + ": ") : "") + "[bold]{" + item.dataFields.valueY + "}[/]" + uom + "\n";
|
|
1256
1256
|
});
|
|
1257
1257
|
return text;
|
|
1258
1258
|
});
|
|
@@ -1326,26 +1326,7 @@ class LineChartService {
|
|
|
1326
1326
|
this.ChartInstance.addData(data);
|
|
1327
1327
|
return;
|
|
1328
1328
|
}
|
|
1329
|
-
|
|
1330
|
-
var relativeSerie = dataConverted.series.find(t => t.name == s.name);
|
|
1331
|
-
// Una serie del grafico è stata ggiornata, ordino i datapoint e li aggiungo
|
|
1332
|
-
var correctOrder = true;
|
|
1333
|
-
var prevDate = null;
|
|
1334
|
-
for (let v = 0; v < relativeSerie.values.length; v++) {
|
|
1335
|
-
if (!prevDate)
|
|
1336
|
-
prevDate = relativeSerie.values[v].d;
|
|
1337
|
-
else if (relativeSerie.values[v].d < prevDate) {
|
|
1338
|
-
correctOrder = false;
|
|
1339
|
-
break;
|
|
1340
|
-
}
|
|
1341
|
-
}
|
|
1342
|
-
if (!correctOrder)
|
|
1343
|
-
relativeSerie.values.sort((d1, d2) => d1.d.getTime() - d2.d.getTime());
|
|
1344
|
-
for (let v = 0; v < relativeSerie.values.length; v++) {
|
|
1345
|
-
let obj = relativeSerie.values[v];
|
|
1346
|
-
s.addData({ date: obj.d, value: obj.v });
|
|
1347
|
-
}
|
|
1348
|
-
});
|
|
1329
|
+
throw "Impossibile aggiornare i dati senza unire il dataset. Si prega di impostare [MergeDatasets] a true";
|
|
1349
1330
|
}
|
|
1350
1331
|
/** Partendo da dati divisi per seriue genera un dataset unito con la data come chiave e i vari valori dopo */
|
|
1351
1332
|
generateSingleDataset(data) {
|
|
@@ -1432,153 +1413,21 @@ class LineChartService {
|
|
|
1432
1413
|
}
|
|
1433
1414
|
|
|
1434
1415
|
/**
|
|
1435
|
-
* Classe il cui unico scopo è gestire il setup e rendering di un
|
|
1416
|
+
* Classe il cui unico scopo è gestire il setup e rendering di un PieChart
|
|
1436
1417
|
*/
|
|
1437
|
-
class
|
|
1418
|
+
class PieChartService {
|
|
1438
1419
|
/** @ignore */
|
|
1439
1420
|
constructor(Adapter) {
|
|
1440
1421
|
this.Adapter = Adapter;
|
|
1441
|
-
//******************** Funzione di throttling per non spammare richieste in caso di animazioni attivate
|
|
1442
|
-
//TODO: spostarla in un metodo di utilità (esfaenza/extensions)
|
|
1443
1422
|
/** @ignore */
|
|
1444
|
-
this.
|
|
1423
|
+
this.ViewAbsoluteValues = true;
|
|
1445
1424
|
}
|
|
1446
1425
|
/**
|
|
1447
|
-
* Metodo che data una coppia Dati - Impostazioni li utilizza per creare e visualizzare un
|
|
1426
|
+
* Metodo che data una coppia Dati - Impostazioni li utilizza per creare e visualizzare un PieChart
|
|
1448
1427
|
*/
|
|
1449
1428
|
graphicate(data, settings) {
|
|
1450
1429
|
if (settings.Timeline) {
|
|
1451
|
-
console.error("Timeline not supported for
|
|
1452
|
-
return null;
|
|
1453
|
-
}
|
|
1454
|
-
let dataConverted = this.Adapter ? this.Adapter.adaptDataForAreaChart(data) : data;
|
|
1455
|
-
let showTicks = settings.ShowTicks == null ? true : settings?.ShowTicks;
|
|
1456
|
-
let interval = dataConverted.interval;
|
|
1457
|
-
//Per evitare di dimenticarmeli e gestire comunque bene gli ngif ecc...
|
|
1458
|
-
am4core.options.autoDispose = true;
|
|
1459
|
-
this.ChartInstance = am4core.create(settings.Name, am4charts.XYChart);
|
|
1460
|
-
let ChartInstanceCasted = this.ChartInstance;
|
|
1461
|
-
if (settings.Legend) {
|
|
1462
|
-
ChartInstanceCasted.legend = new am4charts.Legend();
|
|
1463
|
-
ChartInstanceCasted.legend.position = settings?.LegendPosition ?? 'right';
|
|
1464
|
-
ChartInstanceCasted.legend.itemContainers.template.tooltipText = "{category}";
|
|
1465
|
-
if (settings.LegendPadding) {
|
|
1466
|
-
let template = this.ChartInstance.legend.itemContainers.template;
|
|
1467
|
-
template.paddingTop = settings.LegendPadding.top ?? 0;
|
|
1468
|
-
template.paddingBottom = settings.LegendPadding.bottom ?? 0;
|
|
1469
|
-
template.paddingLeft = settings.LegendPadding.left ?? 0;
|
|
1470
|
-
template.paddingRight = settings.LegendPadding.right ?? 0;
|
|
1471
|
-
}
|
|
1472
|
-
}
|
|
1473
|
-
let yAxis = ChartInstanceCasted.yAxes.push(new am4charts.ValueAxis());
|
|
1474
|
-
yAxis.tooltip.disabled = true;
|
|
1475
|
-
if (settings.YAxisTitle) {
|
|
1476
|
-
yAxis.title.text = settings.YAxisTitle;
|
|
1477
|
-
yAxis.title.fontWeight = "bold";
|
|
1478
|
-
}
|
|
1479
|
-
yAxis.min = 0;
|
|
1480
|
-
let dateAxis = ChartInstanceCasted.xAxes.push(new am4charts.DateAxis());
|
|
1481
|
-
dateAxis.renderer.minGridDistance = settings?.MinGridDistance ?? 50;
|
|
1482
|
-
dateAxis.startLocation = 0.5;
|
|
1483
|
-
dateAxis.endLocation = 0.5;
|
|
1484
|
-
if (settings.XAxisTitle) {
|
|
1485
|
-
dateAxis.title.text = settings.XAxisTitle;
|
|
1486
|
-
dateAxis.title.fontWeight = "bold";
|
|
1487
|
-
}
|
|
1488
|
-
if (showTicks) {
|
|
1489
|
-
dateAxis.renderer.ticks.template.disabled = false;
|
|
1490
|
-
dateAxis.renderer.ticks.template.strokeOpacity = 1;
|
|
1491
|
-
dateAxis.renderer.ticks.template.stroke = am4core.color("#495C43");
|
|
1492
|
-
dateAxis.renderer.ticks.template.strokeWidth = 2;
|
|
1493
|
-
dateAxis.renderer.ticks.template.length = 10;
|
|
1494
|
-
dateAxis.renderer.ticks.template.location = 0;
|
|
1495
|
-
}
|
|
1496
|
-
if (!!interval)
|
|
1497
|
-
dateAxis.baseInterval = { count: interval.count, timeUnit: interval.timeunit };
|
|
1498
|
-
// Unisco il dataset e tiro fuori i dati
|
|
1499
|
-
let chartData = [];
|
|
1500
|
-
let seriesToMakeCache = {};
|
|
1501
|
-
let seriesToMake = [];
|
|
1502
|
-
for (let i = 0; i < dataConverted.groups.length; i++) {
|
|
1503
|
-
let group = dataConverted.groups[i];
|
|
1504
|
-
let dataItem = { date: group.name };
|
|
1505
|
-
for (let ii = 0; ii < group.values.length; ii++) {
|
|
1506
|
-
let val = group.values[ii];
|
|
1507
|
-
dataItem[val.k] = val.v;
|
|
1508
|
-
if (!seriesToMakeCache[val.k]) {
|
|
1509
|
-
seriesToMakeCache[val.k] = true;
|
|
1510
|
-
seriesToMake.push(val.k);
|
|
1511
|
-
}
|
|
1512
|
-
}
|
|
1513
|
-
chartData.push(dataItem);
|
|
1514
|
-
}
|
|
1515
|
-
ChartInstanceCasted.data = chartData;
|
|
1516
|
-
//---------------------------------------------------------
|
|
1517
|
-
seriesToMake.forEach(s => { this.createSeries(ChartInstanceCasted, s); });
|
|
1518
|
-
ChartInstanceCasted.cursor = new am4charts.XYCursor();
|
|
1519
|
-
ChartInstanceCasted.cursor.xAxis = dateAxis;
|
|
1520
|
-
dateAxis.events.on("startchanged", t => this.emitSelectionChanged(t, settings));
|
|
1521
|
-
dateAxis.events.on("endchanged", t => this.emitSelectionChanged(t, settings));
|
|
1522
|
-
return this;
|
|
1523
|
-
}
|
|
1524
|
-
/** @ignore */
|
|
1525
|
-
refreshData(data) {
|
|
1526
|
-
//TODO:IMPL
|
|
1527
|
-
}
|
|
1528
|
-
/** @ignore */
|
|
1529
|
-
emitSelectionChanged(ev, settings) {
|
|
1530
|
-
if (settings.OnSelectionChangedCallback) {
|
|
1531
|
-
this.throttla("selchange", () => {
|
|
1532
|
-
var axis = ev.target;
|
|
1533
|
-
var start = new Date(axis.minZoomed);
|
|
1534
|
-
var end = new Date(axis.maxZoomed);
|
|
1535
|
-
var initial = axis.min == axis.minZoomed && axis.max == axis.maxZoomed;
|
|
1536
|
-
settings.OnSelectionChangedCallback({ from: start, to: end, initial: initial });
|
|
1537
|
-
}, 150);
|
|
1538
|
-
}
|
|
1539
|
-
}
|
|
1540
|
-
/** @ignore */
|
|
1541
|
-
createSeries(chart, name) {
|
|
1542
|
-
let series = chart.series.push(new am4charts.LineSeries());
|
|
1543
|
-
series.dataFields.dateX = "date";
|
|
1544
|
-
series.name = name[0].toUpperCase() + name.slice(1);
|
|
1545
|
-
series.dataFields.valueY = name;
|
|
1546
|
-
series.tooltipText = "[#000]{valueY.value}[/]";
|
|
1547
|
-
//series.tooltip.background.fill = am4core.color("#FFF");
|
|
1548
|
-
series.tooltip.getStrokeFromObject = true;
|
|
1549
|
-
series.tooltip.background.strokeWidth = 3;
|
|
1550
|
-
series.tooltip.getFillFromObject = false;
|
|
1551
|
-
series.fillOpacity = 0.6;
|
|
1552
|
-
series.strokeWidth = 2;
|
|
1553
|
-
series.stacked = true;
|
|
1554
|
-
return series;
|
|
1555
|
-
}
|
|
1556
|
-
/** @ignore */
|
|
1557
|
-
throttla(id, func, throttleTime) {
|
|
1558
|
-
//Se ho la funzione che vuole eseguire ripulisco quel timeout
|
|
1559
|
-
if (this.executionTimers[id])
|
|
1560
|
-
clearTimeout(this.executionTimers[id]);
|
|
1561
|
-
//Ricreo il timeout per eseguire quella funzione dopo throttleTime millisecondi
|
|
1562
|
-
this.executionTimers[id] = setTimeout(() => { func(); this.executionTimers[id] = null; }, throttleTime);
|
|
1563
|
-
}
|
|
1564
|
-
}
|
|
1565
|
-
|
|
1566
|
-
/**
|
|
1567
|
-
* Classe il cui unico scopo è gestire il setup e rendering di un PieChart
|
|
1568
|
-
*/
|
|
1569
|
-
class PieChartService {
|
|
1570
|
-
/** @ignore */
|
|
1571
|
-
constructor(Adapter) {
|
|
1572
|
-
this.Adapter = Adapter;
|
|
1573
|
-
/** @ignore */
|
|
1574
|
-
this.ViewAbsoluteValues = true;
|
|
1575
|
-
}
|
|
1576
|
-
/**
|
|
1577
|
-
* Metodo che data una coppia Dati - Impostazioni li utilizza per creare e visualizzare un PieChart
|
|
1578
|
-
*/
|
|
1579
|
-
graphicate(data, settings) {
|
|
1580
|
-
if (settings.Timeline) {
|
|
1581
|
-
console.error("Timeline not supported for pie chart");
|
|
1430
|
+
console.error("Timeline not supported for pie chart");
|
|
1582
1431
|
return null;
|
|
1583
1432
|
}
|
|
1584
1433
|
//Per evitare di dimenticarmeli e gestire comunque bene gli ngif ecc...
|
|
@@ -1673,15 +1522,13 @@ class PieChartService {
|
|
|
1673
1522
|
}
|
|
1674
1523
|
|
|
1675
1524
|
/**
|
|
1676
|
-
* Classe il cui unico scopo è gestire il setup e rendering di un
|
|
1525
|
+
* Classe il cui unico scopo è gestire il setup e rendering di un VerticalChart
|
|
1677
1526
|
*/
|
|
1678
|
-
class
|
|
1527
|
+
class VerticalChartService {
|
|
1679
1528
|
/** @ignore */
|
|
1680
1529
|
constructor(Adapter) {
|
|
1681
1530
|
this.Adapter = Adapter;
|
|
1682
1531
|
/** @ignore */
|
|
1683
|
-
this.DefaultGroupPaddingPercentage = 5;
|
|
1684
|
-
/** @ignore */
|
|
1685
1532
|
this.dangerZone = 50;
|
|
1686
1533
|
/** @ignore */
|
|
1687
1534
|
this.LabelWidth = 150;
|
|
@@ -1693,7 +1540,7 @@ class Vertical2DChartService {
|
|
|
1693
1540
|
this.DefaultColumnWidthPercentage = 85;
|
|
1694
1541
|
}
|
|
1695
1542
|
/**
|
|
1696
|
-
* Metodo che data una coppia Dati - Impostazioni li utilizza per creare e visualizzare un
|
|
1543
|
+
* Metodo che data una coppia Dati - Impostazioni li utilizza per creare e visualizzare un VerticalChart
|
|
1697
1544
|
*/
|
|
1698
1545
|
graphicate(data, settings) {
|
|
1699
1546
|
if (settings.Timeline) {
|
|
@@ -1704,6 +1551,8 @@ class Vertical2DChartService {
|
|
|
1704
1551
|
am4core.options.autoDispose = true;
|
|
1705
1552
|
this.ChartInstance = am4core.create(settings.Name, am4charts.XYChart);
|
|
1706
1553
|
let ChartInstanceCasted = this.ChartInstance;
|
|
1554
|
+
let dataConverted = this.Adapter ? this.Adapter.adaptDataForVerticalChart(data) : data;
|
|
1555
|
+
ChartInstanceCasted.data = dataConverted.values;
|
|
1707
1556
|
if (settings.Legend) {
|
|
1708
1557
|
ChartInstanceCasted.legend = new am4charts.Legend();
|
|
1709
1558
|
ChartInstanceCasted.legend.position = settings?.LegendPosition ?? 'right';
|
|
@@ -1726,10 +1575,7 @@ class Vertical2DChartService {
|
|
|
1726
1575
|
categoryAxis.title.text = settings.XAxisTitle;
|
|
1727
1576
|
categoryAxis.title.fontWeight = "bold";
|
|
1728
1577
|
}
|
|
1729
|
-
|
|
1730
|
-
categoryAxis.dataFields.category = 'key';
|
|
1731
|
-
categoryAxis.renderer.cellStartLocation = am4core.percent(settings.GroupPaddingPercentage ?? this.DefaultGroupPaddingPercentage).value;
|
|
1732
|
-
categoryAxis.renderer.cellEndLocation = am4core.percent(100 - (settings.GroupPaddingPercentage ?? this.DefaultGroupPaddingPercentage)).value;
|
|
1578
|
+
categoryAxis.dataFields.category = "k";
|
|
1733
1579
|
categoryAxis.renderer.grid.template.location = 0;
|
|
1734
1580
|
categoryAxis.renderer.minGridDistance = settings?.MinGridDistance ?? 30;
|
|
1735
1581
|
let label = categoryAxis.renderer.labels.template;
|
|
@@ -1757,87 +1603,35 @@ class Vertical2DChartService {
|
|
|
1757
1603
|
}
|
|
1758
1604
|
});
|
|
1759
1605
|
}
|
|
1760
|
-
|
|
1761
|
-
let
|
|
1762
|
-
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
|
|
1770
|
-
|
|
1771
|
-
ChartInstanceCasted.data = dataConverted;
|
|
1772
|
-
if (dataPreConverted.colorInfos)
|
|
1773
|
-
ChartInstanceCasted.colors.list = dataPreConverted.colorInfos.map(c => am4core.color(c.color));
|
|
1774
|
-
//Prendo la prima categoria e mi baso sulle proprietà per dfeinire le serie
|
|
1775
|
-
for (let prop in dataConverted[0])
|
|
1776
|
-
if (prop !== "key")
|
|
1777
|
-
this.createSeries(ChartInstanceCasted, settings, prop, prop);
|
|
1606
|
+
// Create series
|
|
1607
|
+
let series = ChartInstanceCasted.series.push(new am4charts.ColumnSeries());
|
|
1608
|
+
series.dataFields.valueY = "v";
|
|
1609
|
+
series.dataFields.categoryX = "k";
|
|
1610
|
+
series.name = "";
|
|
1611
|
+
series.columns.template.tooltipText = "{categoryX}: [bold]{valueY}[/]";
|
|
1612
|
+
series.columns.template.fillOpacity = .8;
|
|
1613
|
+
series.columns.template.width = am4core.percent(settings.ColumnWidthPercentage ?? this.DefaultColumnWidthPercentage);
|
|
1614
|
+
let columnTemplate = series.columns.template;
|
|
1615
|
+
columnTemplate.strokeWidth = 2;
|
|
1616
|
+
columnTemplate.strokeOpacity = 1;
|
|
1778
1617
|
return this;
|
|
1779
1618
|
}
|
|
1780
1619
|
/** @ignore */
|
|
1781
1620
|
refreshData(data) {
|
|
1782
1621
|
//TODO:IMPL
|
|
1783
1622
|
}
|
|
1784
|
-
/** @ignore */
|
|
1785
|
-
createSeries(chart, settings, value, name) {
|
|
1786
|
-
let series = chart.series.push(new am4charts.ColumnSeries());
|
|
1787
|
-
series.dataFields.valueY = value;
|
|
1788
|
-
series.dataFields.categoryX = 'key';
|
|
1789
|
-
series.name = name;
|
|
1790
|
-
series.columns.template.tooltipText = "{name} {categoryX}: [bold]{valueY}[/]";
|
|
1791
|
-
series.columns.template.fillOpacity = .8;
|
|
1792
|
-
series.columns.template.width = am4core.percent(settings.ColumnWidthPercentage ?? this.DefaultColumnWidthPercentage);
|
|
1793
|
-
series.events.on("hidden", () => this.arrangeColumns);
|
|
1794
|
-
series.events.on("shown", () => this.arrangeColumns);
|
|
1795
|
-
return series;
|
|
1796
|
-
}
|
|
1797
|
-
/** @ignore */
|
|
1798
|
-
arrangeColumns() {
|
|
1799
|
-
let ChartInstanceCasted = this.ChartInstance;
|
|
1800
|
-
let series = ChartInstanceCasted.series.getIndex(0);
|
|
1801
|
-
let xAxis = ChartInstanceCasted.xAxes.getIndex(0);
|
|
1802
|
-
let w = 1 - xAxis.renderer.cellStartLocation - (1 - xAxis.renderer.cellEndLocation);
|
|
1803
|
-
if (series.dataItems.length > 1) {
|
|
1804
|
-
let x0 = xAxis.getX(series.dataItems.getIndex(0), "categoryX");
|
|
1805
|
-
let x1 = xAxis.getX(series.dataItems.getIndex(1), "categoryX");
|
|
1806
|
-
let delta = ((x1 - x0) / ChartInstanceCasted.series.length) * w;
|
|
1807
|
-
if (am4core.isNumber(delta)) {
|
|
1808
|
-
let middle = ChartInstanceCasted.series.length / 2;
|
|
1809
|
-
let newIndex = 0;
|
|
1810
|
-
ChartInstanceCasted.series.each((series) => {
|
|
1811
|
-
if (!series.isHidden && !series.isHiding) {
|
|
1812
|
-
series.dummyData = newIndex;
|
|
1813
|
-
newIndex++;
|
|
1814
|
-
}
|
|
1815
|
-
else {
|
|
1816
|
-
series.dummyData = ChartInstanceCasted.series.indexOf(series);
|
|
1817
|
-
}
|
|
1818
|
-
});
|
|
1819
|
-
let visibleCount = newIndex;
|
|
1820
|
-
let newMiddle = visibleCount / 2;
|
|
1821
|
-
ChartInstanceCasted.series.each((series) => {
|
|
1822
|
-
let trueIndex = ChartInstanceCasted.series.indexOf(series);
|
|
1823
|
-
let newIndex = series.dummyData;
|
|
1824
|
-
let dx = (newIndex - trueIndex + middle - newMiddle) * delta;
|
|
1825
|
-
series.animate({ property: "dx", to: dx }, series.interpolationDuration, series.interpolationEasing);
|
|
1826
|
-
series.bulletsContainer.animate({ property: "dx", to: dx }, series.interpolationDuration, series.interpolationEasing);
|
|
1827
|
-
});
|
|
1828
|
-
}
|
|
1829
|
-
}
|
|
1830
|
-
}
|
|
1831
1623
|
}
|
|
1832
1624
|
|
|
1833
1625
|
/**
|
|
1834
|
-
* Classe il cui unico scopo è gestire il setup e rendering di un
|
|
1626
|
+
* Classe il cui unico scopo è gestire il setup e rendering di un Vertical2DChart
|
|
1835
1627
|
*/
|
|
1836
|
-
class
|
|
1628
|
+
class Vertical2DChartService {
|
|
1837
1629
|
/** @ignore */
|
|
1838
1630
|
constructor(Adapter) {
|
|
1839
1631
|
this.Adapter = Adapter;
|
|
1840
1632
|
/** @ignore */
|
|
1633
|
+
this.DefaultGroupPaddingPercentage = 5;
|
|
1634
|
+
/** @ignore */
|
|
1841
1635
|
this.dangerZone = 50;
|
|
1842
1636
|
/** @ignore */
|
|
1843
1637
|
this.LabelWidth = 150;
|
|
@@ -1849,7 +1643,7 @@ class VerticalChartService {
|
|
|
1849
1643
|
this.DefaultColumnWidthPercentage = 85;
|
|
1850
1644
|
}
|
|
1851
1645
|
/**
|
|
1852
|
-
* Metodo che data una coppia Dati - Impostazioni li utilizza per creare e visualizzare un
|
|
1646
|
+
* Metodo che data una coppia Dati - Impostazioni li utilizza per creare e visualizzare un Vertical2DChart
|
|
1853
1647
|
*/
|
|
1854
1648
|
graphicate(data, settings) {
|
|
1855
1649
|
if (settings.Timeline) {
|
|
@@ -1860,8 +1654,6 @@ class VerticalChartService {
|
|
|
1860
1654
|
am4core.options.autoDispose = true;
|
|
1861
1655
|
this.ChartInstance = am4core.create(settings.Name, am4charts.XYChart);
|
|
1862
1656
|
let ChartInstanceCasted = this.ChartInstance;
|
|
1863
|
-
let dataConverted = this.Adapter ? this.Adapter.adaptDataForVerticalChart(data) : data;
|
|
1864
|
-
ChartInstanceCasted.data = dataConverted.values;
|
|
1865
1657
|
if (settings.Legend) {
|
|
1866
1658
|
ChartInstanceCasted.legend = new am4charts.Legend();
|
|
1867
1659
|
ChartInstanceCasted.legend.position = settings?.LegendPosition ?? 'right';
|
|
@@ -1884,7 +1676,10 @@ class VerticalChartService {
|
|
|
1884
1676
|
categoryAxis.title.text = settings.XAxisTitle;
|
|
1885
1677
|
categoryAxis.title.fontWeight = "bold";
|
|
1886
1678
|
}
|
|
1887
|
-
|
|
1679
|
+
yAxis.min = 0;
|
|
1680
|
+
categoryAxis.dataFields.category = 'key';
|
|
1681
|
+
categoryAxis.renderer.cellStartLocation = am4core.percent(settings.GroupPaddingPercentage ?? this.DefaultGroupPaddingPercentage).value;
|
|
1682
|
+
categoryAxis.renderer.cellEndLocation = am4core.percent(100 - (settings.GroupPaddingPercentage ?? this.DefaultGroupPaddingPercentage)).value;
|
|
1888
1683
|
categoryAxis.renderer.grid.template.location = 0;
|
|
1889
1684
|
categoryAxis.renderer.minGridDistance = settings?.MinGridDistance ?? 30;
|
|
1890
1685
|
let label = categoryAxis.renderer.labels.template;
|
|
@@ -1912,23 +1707,77 @@ class VerticalChartService {
|
|
|
1912
1707
|
}
|
|
1913
1708
|
});
|
|
1914
1709
|
}
|
|
1915
|
-
|
|
1916
|
-
let
|
|
1917
|
-
|
|
1918
|
-
|
|
1919
|
-
|
|
1920
|
-
|
|
1921
|
-
|
|
1922
|
-
|
|
1923
|
-
|
|
1924
|
-
|
|
1925
|
-
|
|
1710
|
+
let dataPreConverted = this.Adapter ? this.Adapter.adaptDataForVertical2DChart(data) : data;
|
|
1711
|
+
let dataConverted = [];
|
|
1712
|
+
for (let i = 0; i < dataPreConverted.groups.length; i++) {
|
|
1713
|
+
let item = dataPreConverted.groups[i];
|
|
1714
|
+
let obj = { key: item.name };
|
|
1715
|
+
for (let p = 0; p < item.values.length; p++) {
|
|
1716
|
+
let value = item.values[p];
|
|
1717
|
+
obj[value.k] = value.v;
|
|
1718
|
+
}
|
|
1719
|
+
dataConverted.push(obj);
|
|
1720
|
+
}
|
|
1721
|
+
ChartInstanceCasted.data = dataConverted;
|
|
1722
|
+
if (dataPreConverted.colorInfos)
|
|
1723
|
+
ChartInstanceCasted.colors.list = dataPreConverted.colorInfos.map(c => am4core.color(c.color));
|
|
1724
|
+
//Prendo la prima categoria e mi baso sulle proprietà per dfeinire le serie
|
|
1725
|
+
for (let prop in dataConverted[0])
|
|
1726
|
+
if (prop !== "key")
|
|
1727
|
+
this.createSeries(ChartInstanceCasted, settings, prop, prop);
|
|
1926
1728
|
return this;
|
|
1927
1729
|
}
|
|
1928
1730
|
/** @ignore */
|
|
1929
1731
|
refreshData(data) {
|
|
1930
1732
|
//TODO:IMPL
|
|
1931
1733
|
}
|
|
1734
|
+
/** @ignore */
|
|
1735
|
+
createSeries(chart, settings, value, name) {
|
|
1736
|
+
let series = chart.series.push(new am4charts.ColumnSeries());
|
|
1737
|
+
series.dataFields.valueY = value;
|
|
1738
|
+
series.dataFields.categoryX = 'key';
|
|
1739
|
+
series.name = name;
|
|
1740
|
+
series.columns.template.tooltipText = "{name} {categoryX}: [bold]{valueY}[/]";
|
|
1741
|
+
series.columns.template.fillOpacity = .8;
|
|
1742
|
+
series.columns.template.width = am4core.percent(settings.ColumnWidthPercentage ?? this.DefaultColumnWidthPercentage);
|
|
1743
|
+
series.events.on("hidden", () => this.arrangeColumns);
|
|
1744
|
+
series.events.on("shown", () => this.arrangeColumns);
|
|
1745
|
+
return series;
|
|
1746
|
+
}
|
|
1747
|
+
/** @ignore */
|
|
1748
|
+
arrangeColumns() {
|
|
1749
|
+
let ChartInstanceCasted = this.ChartInstance;
|
|
1750
|
+
let series = ChartInstanceCasted.series.getIndex(0);
|
|
1751
|
+
let xAxis = ChartInstanceCasted.xAxes.getIndex(0);
|
|
1752
|
+
let w = 1 - xAxis.renderer.cellStartLocation - (1 - xAxis.renderer.cellEndLocation);
|
|
1753
|
+
if (series.dataItems.length > 1) {
|
|
1754
|
+
let x0 = xAxis.getX(series.dataItems.getIndex(0), "categoryX");
|
|
1755
|
+
let x1 = xAxis.getX(series.dataItems.getIndex(1), "categoryX");
|
|
1756
|
+
let delta = ((x1 - x0) / ChartInstanceCasted.series.length) * w;
|
|
1757
|
+
if (am4core.isNumber(delta)) {
|
|
1758
|
+
let middle = ChartInstanceCasted.series.length / 2;
|
|
1759
|
+
let newIndex = 0;
|
|
1760
|
+
ChartInstanceCasted.series.each((series) => {
|
|
1761
|
+
if (!series.isHidden && !series.isHiding) {
|
|
1762
|
+
series.dummyData = newIndex;
|
|
1763
|
+
newIndex++;
|
|
1764
|
+
}
|
|
1765
|
+
else {
|
|
1766
|
+
series.dummyData = ChartInstanceCasted.series.indexOf(series);
|
|
1767
|
+
}
|
|
1768
|
+
});
|
|
1769
|
+
let visibleCount = newIndex;
|
|
1770
|
+
let newMiddle = visibleCount / 2;
|
|
1771
|
+
ChartInstanceCasted.series.each((series) => {
|
|
1772
|
+
let trueIndex = ChartInstanceCasted.series.indexOf(series);
|
|
1773
|
+
let newIndex = series.dummyData;
|
|
1774
|
+
let dx = (newIndex - trueIndex + middle - newMiddle) * delta;
|
|
1775
|
+
series.animate({ property: "dx", to: dx }, series.interpolationDuration, series.interpolationEasing);
|
|
1776
|
+
series.bulletsContainer.animate({ property: "dx", to: dx }, series.interpolationDuration, series.interpolationEasing);
|
|
1777
|
+
});
|
|
1778
|
+
}
|
|
1779
|
+
}
|
|
1780
|
+
}
|
|
1932
1781
|
}
|
|
1933
1782
|
|
|
1934
1783
|
/**
|
|
@@ -2053,6 +1902,138 @@ class VerticalStackedChartService {
|
|
|
2053
1902
|
}
|
|
2054
1903
|
}
|
|
2055
1904
|
|
|
1905
|
+
/**
|
|
1906
|
+
* Classe il cui unico scopo è gestire il setup e rendering di un AreaChart
|
|
1907
|
+
*/
|
|
1908
|
+
class AreaChartService {
|
|
1909
|
+
/** @ignore */
|
|
1910
|
+
constructor(Adapter) {
|
|
1911
|
+
this.Adapter = Adapter;
|
|
1912
|
+
//******************** Funzione di throttling per non spammare richieste in caso di animazioni attivate
|
|
1913
|
+
//TODO: spostarla in un metodo di utilità (esfaenza/extensions)
|
|
1914
|
+
/** @ignore */
|
|
1915
|
+
this.executionTimers = {};
|
|
1916
|
+
}
|
|
1917
|
+
/**
|
|
1918
|
+
* Metodo che data una coppia Dati - Impostazioni li utilizza per creare e visualizzare un AreaChart
|
|
1919
|
+
*/
|
|
1920
|
+
graphicate(data, settings) {
|
|
1921
|
+
if (settings.Timeline) {
|
|
1922
|
+
console.error("Timeline not supported for area chart");
|
|
1923
|
+
return null;
|
|
1924
|
+
}
|
|
1925
|
+
let dataConverted = this.Adapter ? this.Adapter.adaptDataForAreaChart(data) : data;
|
|
1926
|
+
let showTicks = settings.ShowTicks == null ? true : settings?.ShowTicks;
|
|
1927
|
+
let interval = dataConverted.interval;
|
|
1928
|
+
//Per evitare di dimenticarmeli e gestire comunque bene gli ngif ecc...
|
|
1929
|
+
am4core.options.autoDispose = true;
|
|
1930
|
+
this.ChartInstance = am4core.create(settings.Name, am4charts.XYChart);
|
|
1931
|
+
let ChartInstanceCasted = this.ChartInstance;
|
|
1932
|
+
if (settings.Legend) {
|
|
1933
|
+
ChartInstanceCasted.legend = new am4charts.Legend();
|
|
1934
|
+
ChartInstanceCasted.legend.position = settings?.LegendPosition ?? 'right';
|
|
1935
|
+
ChartInstanceCasted.legend.itemContainers.template.tooltipText = "{category}";
|
|
1936
|
+
if (settings.LegendPadding) {
|
|
1937
|
+
let template = this.ChartInstance.legend.itemContainers.template;
|
|
1938
|
+
template.paddingTop = settings.LegendPadding.top ?? 0;
|
|
1939
|
+
template.paddingBottom = settings.LegendPadding.bottom ?? 0;
|
|
1940
|
+
template.paddingLeft = settings.LegendPadding.left ?? 0;
|
|
1941
|
+
template.paddingRight = settings.LegendPadding.right ?? 0;
|
|
1942
|
+
}
|
|
1943
|
+
}
|
|
1944
|
+
let yAxis = ChartInstanceCasted.yAxes.push(new am4charts.ValueAxis());
|
|
1945
|
+
yAxis.tooltip.disabled = true;
|
|
1946
|
+
if (settings.YAxisTitle) {
|
|
1947
|
+
yAxis.title.text = settings.YAxisTitle;
|
|
1948
|
+
yAxis.title.fontWeight = "bold";
|
|
1949
|
+
}
|
|
1950
|
+
yAxis.min = 0;
|
|
1951
|
+
let dateAxis = ChartInstanceCasted.xAxes.push(new am4charts.DateAxis());
|
|
1952
|
+
dateAxis.renderer.minGridDistance = settings?.MinGridDistance ?? 50;
|
|
1953
|
+
dateAxis.startLocation = 0.5;
|
|
1954
|
+
dateAxis.endLocation = 0.5;
|
|
1955
|
+
if (settings.XAxisTitle) {
|
|
1956
|
+
dateAxis.title.text = settings.XAxisTitle;
|
|
1957
|
+
dateAxis.title.fontWeight = "bold";
|
|
1958
|
+
}
|
|
1959
|
+
if (showTicks) {
|
|
1960
|
+
dateAxis.renderer.ticks.template.disabled = false;
|
|
1961
|
+
dateAxis.renderer.ticks.template.strokeOpacity = 1;
|
|
1962
|
+
dateAxis.renderer.ticks.template.stroke = am4core.color("#495C43");
|
|
1963
|
+
dateAxis.renderer.ticks.template.strokeWidth = 2;
|
|
1964
|
+
dateAxis.renderer.ticks.template.length = 10;
|
|
1965
|
+
dateAxis.renderer.ticks.template.location = 0;
|
|
1966
|
+
}
|
|
1967
|
+
if (!!interval)
|
|
1968
|
+
dateAxis.baseInterval = { count: interval.count, timeUnit: interval.timeunit };
|
|
1969
|
+
// Unisco il dataset e tiro fuori i dati
|
|
1970
|
+
let chartData = [];
|
|
1971
|
+
let seriesToMakeCache = {};
|
|
1972
|
+
let seriesToMake = [];
|
|
1973
|
+
for (let i = 0; i < dataConverted.groups.length; i++) {
|
|
1974
|
+
let group = dataConverted.groups[i];
|
|
1975
|
+
let dataItem = { date: group.name };
|
|
1976
|
+
for (let ii = 0; ii < group.values.length; ii++) {
|
|
1977
|
+
let val = group.values[ii];
|
|
1978
|
+
dataItem[val.k] = val.v;
|
|
1979
|
+
if (!seriesToMakeCache[val.k]) {
|
|
1980
|
+
seriesToMakeCache[val.k] = true;
|
|
1981
|
+
seriesToMake.push(val.k);
|
|
1982
|
+
}
|
|
1983
|
+
}
|
|
1984
|
+
chartData.push(dataItem);
|
|
1985
|
+
}
|
|
1986
|
+
ChartInstanceCasted.data = chartData;
|
|
1987
|
+
//---------------------------------------------------------
|
|
1988
|
+
seriesToMake.forEach(s => { this.createSeries(ChartInstanceCasted, s); });
|
|
1989
|
+
ChartInstanceCasted.cursor = new am4charts.XYCursor();
|
|
1990
|
+
ChartInstanceCasted.cursor.xAxis = dateAxis;
|
|
1991
|
+
dateAxis.events.on("startchanged", t => this.emitSelectionChanged(t, settings));
|
|
1992
|
+
dateAxis.events.on("endchanged", t => this.emitSelectionChanged(t, settings));
|
|
1993
|
+
return this;
|
|
1994
|
+
}
|
|
1995
|
+
/** @ignore */
|
|
1996
|
+
refreshData(data) {
|
|
1997
|
+
//TODO:IMPL
|
|
1998
|
+
}
|
|
1999
|
+
/** @ignore */
|
|
2000
|
+
emitSelectionChanged(ev, settings) {
|
|
2001
|
+
if (settings.OnSelectionChangedCallback) {
|
|
2002
|
+
this.throttla("selchange", () => {
|
|
2003
|
+
var axis = ev.target;
|
|
2004
|
+
var start = new Date(axis.minZoomed);
|
|
2005
|
+
var end = new Date(axis.maxZoomed);
|
|
2006
|
+
var initial = axis.min == axis.minZoomed && axis.max == axis.maxZoomed;
|
|
2007
|
+
settings.OnSelectionChangedCallback({ from: start, to: end, initial: initial });
|
|
2008
|
+
}, 150);
|
|
2009
|
+
}
|
|
2010
|
+
}
|
|
2011
|
+
/** @ignore */
|
|
2012
|
+
createSeries(chart, name) {
|
|
2013
|
+
let series = chart.series.push(new am4charts.LineSeries());
|
|
2014
|
+
series.dataFields.dateX = "date";
|
|
2015
|
+
series.name = name[0].toUpperCase() + name.slice(1);
|
|
2016
|
+
series.dataFields.valueY = name;
|
|
2017
|
+
series.tooltipText = "[#000]{valueY.value}[/]";
|
|
2018
|
+
//series.tooltip.background.fill = am4core.color("#FFF");
|
|
2019
|
+
series.tooltip.getStrokeFromObject = true;
|
|
2020
|
+
series.tooltip.background.strokeWidth = 3;
|
|
2021
|
+
series.tooltip.getFillFromObject = false;
|
|
2022
|
+
series.fillOpacity = 0.6;
|
|
2023
|
+
series.strokeWidth = 2;
|
|
2024
|
+
series.stacked = true;
|
|
2025
|
+
return series;
|
|
2026
|
+
}
|
|
2027
|
+
/** @ignore */
|
|
2028
|
+
throttla(id, func, throttleTime) {
|
|
2029
|
+
//Se ho la funzione che vuole eseguire ripulisco quel timeout
|
|
2030
|
+
if (this.executionTimers[id])
|
|
2031
|
+
clearTimeout(this.executionTimers[id]);
|
|
2032
|
+
//Ricreo il timeout per eseguire quella funzione dopo throttleTime millisecondi
|
|
2033
|
+
this.executionTimers[id] = setTimeout(() => { func(); this.executionTimers[id] = null; }, throttleTime);
|
|
2034
|
+
}
|
|
2035
|
+
}
|
|
2036
|
+
|
|
2056
2037
|
/**
|
|
2057
2038
|
* Componente specifico per la graficazione di un qualsiasi tipo di grafico.
|
|
2058
2039
|
*
|
|
@@ -2125,12 +2106,12 @@ class EsChartComponent extends BaseChartComponent {
|
|
|
2125
2106
|
}
|
|
2126
2107
|
}
|
|
2127
2108
|
}
|
|
2128
|
-
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:
|
|
2129
|
-
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:
|
|
2109
|
+
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 });
|
|
2110
|
+
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 });
|
|
2130
2111
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsChartComponent, decorators: [{
|
|
2131
2112
|
type: Component,
|
|
2132
2113
|
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"] }]
|
|
2133
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: ChartLoader }, { type: ChartDispatcher }, { type:
|
|
2114
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: ChartLoader }, { type: ChartDispatcher }, { type: i3.DateService }, { type: BaseAdapter }, { type: i0.NgZone }, { type: Object, decorators: [{
|
|
2134
2115
|
type: Inject,
|
|
2135
2116
|
args: [PLATFORM_ID]
|
|
2136
2117
|
}] }, { type: undefined, decorators: [{
|
|
@@ -2196,7 +2177,7 @@ class EsAreaChartComponent extends BaseChartComponent {
|
|
|
2196
2177
|
}
|
|
2197
2178
|
}
|
|
2198
2179
|
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 });
|
|
2199
|
-
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:
|
|
2180
|
+
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 });
|
|
2200
2181
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsAreaChartComponent, decorators: [{
|
|
2201
2182
|
type: Component,
|
|
2202
2183
|
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"] }]
|
|
@@ -2274,12 +2255,12 @@ class EsLineChartComponent extends BaseChartComponent {
|
|
|
2274
2255
|
return new LineChartService(this.adapter, this.dateService).graphicate(this.Data, settingsCasted);
|
|
2275
2256
|
}
|
|
2276
2257
|
}
|
|
2277
|
-
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:
|
|
2278
|
-
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:
|
|
2258
|
+
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 });
|
|
2259
|
+
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 });
|
|
2279
2260
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsLineChartComponent, decorators: [{
|
|
2280
2261
|
type: Component,
|
|
2281
2262
|
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"] }]
|
|
2282
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: ChartLoader }, { type: ChartDispatcher }, { type: BaseAdapter }, { type:
|
|
2263
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: ChartLoader }, { type: ChartDispatcher }, { type: BaseAdapter }, { type: i3.DateService }, { type: i0.NgZone }, { type: Object, decorators: [{
|
|
2283
2264
|
type: Inject,
|
|
2284
2265
|
args: [PLATFORM_ID]
|
|
2285
2266
|
}] }, { type: undefined, decorators: [{
|
|
@@ -2370,7 +2351,7 @@ class EsPieChartComponent extends BaseChartComponent {
|
|
|
2370
2351
|
}
|
|
2371
2352
|
}
|
|
2372
2353
|
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 });
|
|
2373
|
-
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:
|
|
2354
|
+
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 });
|
|
2374
2355
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsPieChartComponent, decorators: [{
|
|
2375
2356
|
type: Component,
|
|
2376
2357
|
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"] }]
|
|
@@ -2458,7 +2439,7 @@ class EsVertical2DChartComponent extends BaseChartComponent {
|
|
|
2458
2439
|
}
|
|
2459
2440
|
}
|
|
2460
2441
|
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 });
|
|
2461
|
-
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:
|
|
2442
|
+
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 });
|
|
2462
2443
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsVertical2DChartComponent, decorators: [{
|
|
2463
2444
|
type: Component,
|
|
2464
2445
|
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"] }]
|
|
@@ -2543,7 +2524,7 @@ class EsVerticalChartComponent extends BaseChartComponent {
|
|
|
2543
2524
|
}
|
|
2544
2525
|
}
|
|
2545
2526
|
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 });
|
|
2546
|
-
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:
|
|
2527
|
+
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 });
|
|
2547
2528
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsVerticalChartComponent, decorators: [{
|
|
2548
2529
|
type: Component,
|
|
2549
2530
|
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"] }]
|
|
@@ -2626,7 +2607,7 @@ class EsVerticalStackedChartComponent extends BaseChartComponent {
|
|
|
2626
2607
|
}
|
|
2627
2608
|
}
|
|
2628
2609
|
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 });
|
|
2629
|
-
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:
|
|
2610
|
+
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 });
|
|
2630
2611
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsVerticalStackedChartComponent, decorators: [{
|
|
2631
2612
|
type: Component,
|
|
2632
2613
|
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"] }]
|