@esfaenza/es-charts 13.1.2 → 13.1.6
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 +20 -5
- 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 +26 -25
- package/fesm2015/esfaenza-es-charts.mjs +420 -393
- package/fesm2015/esfaenza-es-charts.mjs.map +1 -1
- package/fesm2020/esfaenza-es-charts.mjs +409 -382
- 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 +20 -5
- 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/{classes/base → base}/Limit.d.ts +0 -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} +7 -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 +2 -2
- package/public-api.d.ts +25 -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 -324
- 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/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
|
|
@@ -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...
|
|
@@ -797,6 +797,11 @@ class BaseChartComponent {
|
|
|
797
797
|
* Evento lanciato al termine del caricamento di una nuova pagina del grafico
|
|
798
798
|
*/
|
|
799
799
|
this.onLoadEnd = new EventEmitter();
|
|
800
|
+
/**
|
|
801
|
+
* Evento lanciato al termine della creazione del grafico referenziando l'istanza nativa del grafico creato in modo da poter effettuare modifiche
|
|
802
|
+
* post inizializzazione lato applicativo
|
|
803
|
+
*/
|
|
804
|
+
this.chartLoaded = new EventEmitter();
|
|
800
805
|
/**
|
|
801
806
|
* Serve a decidere se sarà presente l'interfaccia di paginazione
|
|
802
807
|
*/
|
|
@@ -884,7 +889,7 @@ class BaseChartComponent {
|
|
|
884
889
|
this.Chart = this.ChartService.ChartInstance;
|
|
885
890
|
if (!this.Chart)
|
|
886
891
|
this.log("Chart " + this.name + ": Could not create graph");
|
|
887
|
-
return this.Charter.applyLocale(this.Chart, this.Locale).then(() => this.initDone = true);
|
|
892
|
+
return this.Charter.applyLocale(this.Chart, this.Locale).then(() => { this.initDone = true; this.chartLoaded.emit(this); });
|
|
888
893
|
})
|
|
889
894
|
]);
|
|
890
895
|
}
|
|
@@ -979,6 +984,13 @@ class BaseChartComponent {
|
|
|
979
984
|
this.Chart.dispose(); this.Dispatcher.deregisterGraph(this.name); });
|
|
980
985
|
this.Dispatcher.register(this.name, () => { return this.loadChart(); });
|
|
981
986
|
}
|
|
987
|
+
/**
|
|
988
|
+
* Permette di aggiungere un blocco di dati in maniera "live" ad un grafico
|
|
989
|
+
*/
|
|
990
|
+
addData(chartData) {
|
|
991
|
+
this.ChartService.refreshData(chartData);
|
|
992
|
+
}
|
|
993
|
+
;
|
|
982
994
|
/**
|
|
983
995
|
* Funzione che si occupa di caricare i temi necessari per il grafico in oggetto. Prima applica il tema, poi, se serve, applica le animazioni
|
|
984
996
|
*/
|
|
@@ -1008,7 +1020,7 @@ class BaseChartComponent {
|
|
|
1008
1020
|
}
|
|
1009
1021
|
}
|
|
1010
1022
|
BaseChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BaseChartComponent, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
|
|
1011
|
-
BaseChartComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BaseChartComponent, inputs: { XTitle: "XTitle", YTitle: "YTitle", Settings: "Settings", Legend: "Legend", LegendPosition: "LegendPosition", Timeline: "Timeline", name: "name", Animations: "Animations", Theme: "Theme", Locale: "Locale", HideSeriesOnLabelClick: "HideSeriesOnLabelClick", MinGridDistance: "MinGridDistance", AdaptLabelSizeAndOrientation: "AdaptLabelSizeAndOrientation", LegendPadding: "LegendPadding", DataDtos: "DataDtos", DataDtoStartIndex: "DataDtoStartIndex", DataRetrieve: "DataRetrieve", BrowseDelayMs: "BrowseDelayMs" }, outputs: { onSelectionChanged: "onSelectionChanged", onSeriesClicked: "onSeriesClicked", onLoadStart: "onLoadStart", onLoadEnd: "onLoadEnd" }, queries: [{ propertyName: "header_tr", first: true, predicate: ["header"], descendants: true }, { propertyName: "loading_template", first: true, predicate: ["loading"], descendants: true }], usesOnChanges: true, ngImport: i0 });
|
|
1023
|
+
BaseChartComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BaseChartComponent, inputs: { XTitle: "XTitle", YTitle: "YTitle", Settings: "Settings", Legend: "Legend", LegendPosition: "LegendPosition", Timeline: "Timeline", name: "name", Animations: "Animations", Theme: "Theme", Locale: "Locale", HideSeriesOnLabelClick: "HideSeriesOnLabelClick", MinGridDistance: "MinGridDistance", AdaptLabelSizeAndOrientation: "AdaptLabelSizeAndOrientation", LegendPadding: "LegendPadding", DataDtos: "DataDtos", DataDtoStartIndex: "DataDtoStartIndex", DataRetrieve: "DataRetrieve", BrowseDelayMs: "BrowseDelayMs" }, outputs: { onSelectionChanged: "onSelectionChanged", onSeriesClicked: "onSeriesClicked", onLoadStart: "onLoadStart", onLoadEnd: "onLoadEnd", chartLoaded: "chartLoaded" }, queries: [{ propertyName: "header_tr", first: true, predicate: ["header"], descendants: true }, { propertyName: "loading_template", first: true, predicate: ["loading"], descendants: true }], usesOnChanges: true, ngImport: i0 });
|
|
1012
1024
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BaseChartComponent, decorators: [{
|
|
1013
1025
|
type: Directive
|
|
1014
1026
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: Object }, { type: i0.NgZone }, { type: ChartLoader }, { type: ChartDispatcher }, { type: undefined }, { type: undefined }, { type: undefined }, { type: undefined }]; }, propDecorators: { XTitle: [{
|
|
@@ -1061,6 +1073,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
|
|
|
1061
1073
|
type: Output
|
|
1062
1074
|
}], onLoadEnd: [{
|
|
1063
1075
|
type: Output
|
|
1076
|
+
}], chartLoaded: [{
|
|
1077
|
+
type: Output
|
|
1064
1078
|
}] } });
|
|
1065
1079
|
|
|
1066
1080
|
/**
|
|
@@ -1075,6 +1089,8 @@ class LineChartService {
|
|
|
1075
1089
|
this.DataGroupBucketSize = 1500;
|
|
1076
1090
|
/** @ignore */
|
|
1077
1091
|
this.OpacityOnSelected = 0.3;
|
|
1092
|
+
/** @ignore */
|
|
1093
|
+
this.singleDataSet = false;
|
|
1078
1094
|
//******************** Funzione di throttling per non spammare richieste in caso di animazioni attivate
|
|
1079
1095
|
//TODO: spostarla in un metodo di utilità (esfaenza/extensions)
|
|
1080
1096
|
/** @ignore */
|
|
@@ -1086,7 +1102,7 @@ class LineChartService {
|
|
|
1086
1102
|
graphicate(data, settings) {
|
|
1087
1103
|
let dataConverted = this.Adapter ? this.Adapter.adaptDataForLineChart(data) : data;
|
|
1088
1104
|
let threshold = settings.DataGroupingThreshold ?? 3000;
|
|
1089
|
-
|
|
1105
|
+
this.singleDataSet = settings.MergeDatasets ?? false;
|
|
1090
1106
|
let showTicks = settings.ShowTicks == null ? true : settings?.ShowTicks;
|
|
1091
1107
|
let dataShouldBeGrouped = Math.max(...dataConverted.series.map(t => t.values.length)) > threshold;
|
|
1092
1108
|
let showTimeline = settings.Timeline || dataShouldBeGrouped;
|
|
@@ -1165,31 +1181,9 @@ class LineChartService {
|
|
|
1165
1181
|
let seriesColors = [];
|
|
1166
1182
|
let defaultIndex = 0;
|
|
1167
1183
|
//-- Generazione di un unico dataset invece che N, per poter gestire un unico tooltip
|
|
1168
|
-
if (singleDataSet) {
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
for (let i = 0; i < vs.values.length; i++) {
|
|
1172
|
-
var dataitem = vs.values[i];
|
|
1173
|
-
var indexer = new Date(dataitem.d).valueOf();
|
|
1174
|
-
if (!dto[indexer])
|
|
1175
|
-
dto[indexer] = {};
|
|
1176
|
-
dto[indexer]['v' + index] = dataitem.v;
|
|
1177
|
-
}
|
|
1178
|
-
});
|
|
1179
|
-
var dates = Object.keys(dto);
|
|
1180
|
-
let singleDS = [];
|
|
1181
|
-
for (let i = 0; i < dates.length; i++) {
|
|
1182
|
-
let values = dto[dates[i]];
|
|
1183
|
-
let item = { d: new Date(parseInt(dates[i])) };
|
|
1184
|
-
var vals = Object.keys(values);
|
|
1185
|
-
for (let ii = 0; ii < vals.length; ii++) {
|
|
1186
|
-
let series = vals[ii];
|
|
1187
|
-
let singleVal = values[series];
|
|
1188
|
-
item[series] = singleVal;
|
|
1189
|
-
}
|
|
1190
|
-
singleDS.push(item);
|
|
1191
|
-
}
|
|
1192
|
-
this.ChartInstance.data = singleDS;
|
|
1184
|
+
if (this.singleDataSet) {
|
|
1185
|
+
this.ChartInstance.data = this.generateSingleDataset(dataConverted);
|
|
1186
|
+
;
|
|
1193
1187
|
dateAxis.cursorTooltipEnabled = false;
|
|
1194
1188
|
}
|
|
1195
1189
|
//-- Fine generazione
|
|
@@ -1212,14 +1206,14 @@ class LineChartService {
|
|
|
1212
1206
|
s.values.sort((d1, d2) => d1.d.getTime() - d2.d.getTime());
|
|
1213
1207
|
let fill = s.fill != null && s.fill != undefined ? s.fill : (settings?.Fill ?? false);
|
|
1214
1208
|
let series = settings?.Step ? new am4charts.StepLineSeries() : new am4charts.LineSeries();
|
|
1215
|
-
series.dataFields.valueY = "v" + (singleDataSet ? index : "");
|
|
1209
|
+
series.dataFields.valueY = "v" + (this.singleDataSet ? index : "");
|
|
1216
1210
|
series.dataFields.dateX = "d";
|
|
1217
1211
|
series.dataFields.measureUnit = s.uom;
|
|
1218
1212
|
series.name = s.name;
|
|
1219
1213
|
series.strokeWidth = settings?.StrokeSize ?? 1;
|
|
1220
1214
|
series.connect = !gapsAllowed;
|
|
1221
1215
|
series.minBulletDistance = 10;
|
|
1222
|
-
series.tooltipText = singleDataSet ? "" : "{name}: [bold]{valueY}[/]";
|
|
1216
|
+
series.tooltipText = this.singleDataSet ? "" : s.name ? "{name}: [bold]{valueY}[/]" : "[bold]{valueY}[/]";
|
|
1223
1217
|
series.tooltip.pointerOrientation = "vertical";
|
|
1224
1218
|
series.tooltip.background.fillOpacity = 0.5;
|
|
1225
1219
|
series.tooltip.label.padding(12, 12, 12, 12);
|
|
@@ -1227,7 +1221,7 @@ class LineChartService {
|
|
|
1227
1221
|
series.stacked = fill;
|
|
1228
1222
|
//Dataset singolo, i dati sono registrati a livello di chart, creo il tooltip che permette di vederli tutti insieme
|
|
1229
1223
|
//altrimenti assegno i dati della serie direttamente alla serie
|
|
1230
|
-
if (singleDataSet) {
|
|
1224
|
+
if (this.singleDataSet) {
|
|
1231
1225
|
series.tooltip.getFillFromObject = false;
|
|
1232
1226
|
series.tooltip.background.fill = am4core.color("#eee");
|
|
1233
1227
|
series.tooltip.label.fill = am4core.color("#00");
|
|
@@ -1258,7 +1252,7 @@ class LineChartService {
|
|
|
1258
1252
|
var text = "[bold]{dateX.formatDate()}[/]\n";
|
|
1259
1253
|
this.ChartInstance.series.each((item) => {
|
|
1260
1254
|
let uom = " [font-style: italic]" + series.dataFields.measureUnit || "" + "[/]";
|
|
1261
|
-
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";
|
|
1262
1256
|
});
|
|
1263
1257
|
return text;
|
|
1264
1258
|
});
|
|
@@ -1317,7 +1311,7 @@ class LineChartService {
|
|
|
1317
1311
|
//******************************************************************************************************************************
|
|
1318
1312
|
this.ChartInstance.cursor.xAxis = dateAxis;
|
|
1319
1313
|
this.ChartInstance.cursor.yAxis = yAxis;
|
|
1320
|
-
if (singleDataSet)
|
|
1314
|
+
if (this.singleDataSet)
|
|
1321
1315
|
this.ChartInstance.cursor.maxTooltipDistance = -1;
|
|
1322
1316
|
//TODO: Cercare di capire perché è figlio di puttana......
|
|
1323
1317
|
dateAxis.events.on("startchanged", t => this.emitSelectionChanged(t, settings));
|
|
@@ -1326,7 +1320,40 @@ class LineChartService {
|
|
|
1326
1320
|
}
|
|
1327
1321
|
/** @ignore */
|
|
1328
1322
|
refreshData(data) {
|
|
1329
|
-
|
|
1323
|
+
let dataConverted = this.Adapter ? this.Adapter.adaptDataForLineChart(data) : data;
|
|
1324
|
+
if (this.singleDataSet) {
|
|
1325
|
+
var data = this.generateSingleDataset(dataConverted);
|
|
1326
|
+
this.ChartInstance.addData(data);
|
|
1327
|
+
return;
|
|
1328
|
+
}
|
|
1329
|
+
throw "Impossibile aggiornare i dati senza unire il dataset. Si prega di impostare [MergeDatasets] a true";
|
|
1330
|
+
}
|
|
1331
|
+
/** Partendo da dati divisi per seriue genera un dataset unito con la data come chiave e i vari valori dopo */
|
|
1332
|
+
generateSingleDataset(data) {
|
|
1333
|
+
let dto = {};
|
|
1334
|
+
data.series.forEach((vs, index) => {
|
|
1335
|
+
for (let i = 0; i < vs.values.length; i++) {
|
|
1336
|
+
var dataitem = vs.values[i];
|
|
1337
|
+
var indexer = new Date(dataitem.d).valueOf();
|
|
1338
|
+
if (!dto[indexer])
|
|
1339
|
+
dto[indexer] = {};
|
|
1340
|
+
dto[indexer]['v' + index] = dataitem.v;
|
|
1341
|
+
}
|
|
1342
|
+
});
|
|
1343
|
+
var dates = Object.keys(dto);
|
|
1344
|
+
var ret = [];
|
|
1345
|
+
for (let i = 0; i < dates.length; i++) {
|
|
1346
|
+
let values = dto[dates[i]];
|
|
1347
|
+
let item = { d: new Date(parseInt(dates[i])) };
|
|
1348
|
+
var vals = Object.keys(values);
|
|
1349
|
+
for (let ii = 0; ii < vals.length; ii++) {
|
|
1350
|
+
let series = vals[ii];
|
|
1351
|
+
let singleVal = values[series];
|
|
1352
|
+
item[series] = singleVal;
|
|
1353
|
+
}
|
|
1354
|
+
ret.push(item);
|
|
1355
|
+
}
|
|
1356
|
+
return ret;
|
|
1330
1357
|
}
|
|
1331
1358
|
/** @ignore */
|
|
1332
1359
|
emitSelectionChanged(ev, settings) {
|
|
@@ -1386,153 +1413,21 @@ class LineChartService {
|
|
|
1386
1413
|
}
|
|
1387
1414
|
|
|
1388
1415
|
/**
|
|
1389
|
-
* 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
|
|
1390
1417
|
*/
|
|
1391
|
-
class
|
|
1418
|
+
class PieChartService {
|
|
1392
1419
|
/** @ignore */
|
|
1393
1420
|
constructor(Adapter) {
|
|
1394
1421
|
this.Adapter = Adapter;
|
|
1395
|
-
//******************** Funzione di throttling per non spammare richieste in caso di animazioni attivate
|
|
1396
|
-
//TODO: spostarla in un metodo di utilità (esfaenza/extensions)
|
|
1397
1422
|
/** @ignore */
|
|
1398
|
-
this.
|
|
1423
|
+
this.ViewAbsoluteValues = true;
|
|
1399
1424
|
}
|
|
1400
1425
|
/**
|
|
1401
|
-
* 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
|
|
1402
1427
|
*/
|
|
1403
1428
|
graphicate(data, settings) {
|
|
1404
1429
|
if (settings.Timeline) {
|
|
1405
|
-
console.error("Timeline not supported for
|
|
1406
|
-
return null;
|
|
1407
|
-
}
|
|
1408
|
-
let dataConverted = this.Adapter ? this.Adapter.adaptDataForAreaChart(data) : data;
|
|
1409
|
-
let showTicks = settings.ShowTicks == null ? true : settings?.ShowTicks;
|
|
1410
|
-
let interval = dataConverted.interval;
|
|
1411
|
-
//Per evitare di dimenticarmeli e gestire comunque bene gli ngif ecc...
|
|
1412
|
-
am4core.options.autoDispose = true;
|
|
1413
|
-
this.ChartInstance = am4core.create(settings.Name, am4charts.XYChart);
|
|
1414
|
-
let ChartInstanceCasted = this.ChartInstance;
|
|
1415
|
-
if (settings.Legend) {
|
|
1416
|
-
ChartInstanceCasted.legend = new am4charts.Legend();
|
|
1417
|
-
ChartInstanceCasted.legend.position = settings?.LegendPosition ?? 'right';
|
|
1418
|
-
ChartInstanceCasted.legend.itemContainers.template.tooltipText = "{category}";
|
|
1419
|
-
if (settings.LegendPadding) {
|
|
1420
|
-
let template = this.ChartInstance.legend.itemContainers.template;
|
|
1421
|
-
template.paddingTop = settings.LegendPadding.top ?? 0;
|
|
1422
|
-
template.paddingBottom = settings.LegendPadding.bottom ?? 0;
|
|
1423
|
-
template.paddingLeft = settings.LegendPadding.left ?? 0;
|
|
1424
|
-
template.paddingRight = settings.LegendPadding.right ?? 0;
|
|
1425
|
-
}
|
|
1426
|
-
}
|
|
1427
|
-
let yAxis = ChartInstanceCasted.yAxes.push(new am4charts.ValueAxis());
|
|
1428
|
-
yAxis.tooltip.disabled = true;
|
|
1429
|
-
if (settings.YAxisTitle) {
|
|
1430
|
-
yAxis.title.text = settings.YAxisTitle;
|
|
1431
|
-
yAxis.title.fontWeight = "bold";
|
|
1432
|
-
}
|
|
1433
|
-
yAxis.min = 0;
|
|
1434
|
-
let dateAxis = ChartInstanceCasted.xAxes.push(new am4charts.DateAxis());
|
|
1435
|
-
dateAxis.renderer.minGridDistance = settings?.MinGridDistance ?? 50;
|
|
1436
|
-
dateAxis.startLocation = 0.5;
|
|
1437
|
-
dateAxis.endLocation = 0.5;
|
|
1438
|
-
if (settings.XAxisTitle) {
|
|
1439
|
-
dateAxis.title.text = settings.XAxisTitle;
|
|
1440
|
-
dateAxis.title.fontWeight = "bold";
|
|
1441
|
-
}
|
|
1442
|
-
if (showTicks) {
|
|
1443
|
-
dateAxis.renderer.ticks.template.disabled = false;
|
|
1444
|
-
dateAxis.renderer.ticks.template.strokeOpacity = 1;
|
|
1445
|
-
dateAxis.renderer.ticks.template.stroke = am4core.color("#495C43");
|
|
1446
|
-
dateAxis.renderer.ticks.template.strokeWidth = 2;
|
|
1447
|
-
dateAxis.renderer.ticks.template.length = 10;
|
|
1448
|
-
dateAxis.renderer.ticks.template.location = 0;
|
|
1449
|
-
}
|
|
1450
|
-
if (!!interval)
|
|
1451
|
-
dateAxis.baseInterval = { count: interval.count, timeUnit: interval.timeunit };
|
|
1452
|
-
// Unisco il dataset e tiro fuori i dati
|
|
1453
|
-
let chartData = [];
|
|
1454
|
-
let seriesToMakeCache = {};
|
|
1455
|
-
let seriesToMake = [];
|
|
1456
|
-
for (let i = 0; i < dataConverted.groups.length; i++) {
|
|
1457
|
-
let group = dataConverted.groups[i];
|
|
1458
|
-
let dataItem = { date: group.name };
|
|
1459
|
-
for (let ii = 0; ii < group.values.length; ii++) {
|
|
1460
|
-
let val = group.values[ii];
|
|
1461
|
-
dataItem[val.k] = val.v;
|
|
1462
|
-
if (!seriesToMakeCache[val.k]) {
|
|
1463
|
-
seriesToMakeCache[val.k] = true;
|
|
1464
|
-
seriesToMake.push(val.k);
|
|
1465
|
-
}
|
|
1466
|
-
}
|
|
1467
|
-
chartData.push(dataItem);
|
|
1468
|
-
}
|
|
1469
|
-
ChartInstanceCasted.data = chartData;
|
|
1470
|
-
//---------------------------------------------------------
|
|
1471
|
-
seriesToMake.forEach(s => { this.createSeries(ChartInstanceCasted, s); });
|
|
1472
|
-
ChartInstanceCasted.cursor = new am4charts.XYCursor();
|
|
1473
|
-
ChartInstanceCasted.cursor.xAxis = dateAxis;
|
|
1474
|
-
dateAxis.events.on("startchanged", t => this.emitSelectionChanged(t, settings));
|
|
1475
|
-
dateAxis.events.on("endchanged", t => this.emitSelectionChanged(t, settings));
|
|
1476
|
-
return this;
|
|
1477
|
-
}
|
|
1478
|
-
/** @ignore */
|
|
1479
|
-
refreshData(data) {
|
|
1480
|
-
//TODO:IMPL
|
|
1481
|
-
}
|
|
1482
|
-
/** @ignore */
|
|
1483
|
-
emitSelectionChanged(ev, settings) {
|
|
1484
|
-
if (settings.OnSelectionChangedCallback) {
|
|
1485
|
-
this.throttla("selchange", () => {
|
|
1486
|
-
var axis = ev.target;
|
|
1487
|
-
var start = new Date(axis.minZoomed);
|
|
1488
|
-
var end = new Date(axis.maxZoomed);
|
|
1489
|
-
var initial = axis.min == axis.minZoomed && axis.max == axis.maxZoomed;
|
|
1490
|
-
settings.OnSelectionChangedCallback({ from: start, to: end, initial: initial });
|
|
1491
|
-
}, 150);
|
|
1492
|
-
}
|
|
1493
|
-
}
|
|
1494
|
-
/** @ignore */
|
|
1495
|
-
createSeries(chart, name) {
|
|
1496
|
-
let series = chart.series.push(new am4charts.LineSeries());
|
|
1497
|
-
series.dataFields.dateX = "date";
|
|
1498
|
-
series.name = name[0].toUpperCase() + name.slice(1);
|
|
1499
|
-
series.dataFields.valueY = name;
|
|
1500
|
-
series.tooltipText = "[#000]{valueY.value}[/]";
|
|
1501
|
-
//series.tooltip.background.fill = am4core.color("#FFF");
|
|
1502
|
-
series.tooltip.getStrokeFromObject = true;
|
|
1503
|
-
series.tooltip.background.strokeWidth = 3;
|
|
1504
|
-
series.tooltip.getFillFromObject = false;
|
|
1505
|
-
series.fillOpacity = 0.6;
|
|
1506
|
-
series.strokeWidth = 2;
|
|
1507
|
-
series.stacked = true;
|
|
1508
|
-
return series;
|
|
1509
|
-
}
|
|
1510
|
-
/** @ignore */
|
|
1511
|
-
throttla(id, func, throttleTime) {
|
|
1512
|
-
//Se ho la funzione che vuole eseguire ripulisco quel timeout
|
|
1513
|
-
if (this.executionTimers[id])
|
|
1514
|
-
clearTimeout(this.executionTimers[id]);
|
|
1515
|
-
//Ricreo il timeout per eseguire quella funzione dopo throttleTime millisecondi
|
|
1516
|
-
this.executionTimers[id] = setTimeout(() => { func(); this.executionTimers[id] = null; }, throttleTime);
|
|
1517
|
-
}
|
|
1518
|
-
}
|
|
1519
|
-
|
|
1520
|
-
/**
|
|
1521
|
-
* Classe il cui unico scopo è gestire il setup e rendering di un PieChart
|
|
1522
|
-
*/
|
|
1523
|
-
class PieChartService {
|
|
1524
|
-
/** @ignore */
|
|
1525
|
-
constructor(Adapter) {
|
|
1526
|
-
this.Adapter = Adapter;
|
|
1527
|
-
/** @ignore */
|
|
1528
|
-
this.ViewAbsoluteValues = true;
|
|
1529
|
-
}
|
|
1530
|
-
/**
|
|
1531
|
-
* Metodo che data una coppia Dati - Impostazioni li utilizza per creare e visualizzare un PieChart
|
|
1532
|
-
*/
|
|
1533
|
-
graphicate(data, settings) {
|
|
1534
|
-
if (settings.Timeline) {
|
|
1535
|
-
console.error("Timeline not supported for pie chart");
|
|
1430
|
+
console.error("Timeline not supported for pie chart");
|
|
1536
1431
|
return null;
|
|
1537
1432
|
}
|
|
1538
1433
|
//Per evitare di dimenticarmeli e gestire comunque bene gli ngif ecc...
|
|
@@ -1627,15 +1522,13 @@ class PieChartService {
|
|
|
1627
1522
|
}
|
|
1628
1523
|
|
|
1629
1524
|
/**
|
|
1630
|
-
* 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
|
|
1631
1526
|
*/
|
|
1632
|
-
class
|
|
1527
|
+
class VerticalChartService {
|
|
1633
1528
|
/** @ignore */
|
|
1634
1529
|
constructor(Adapter) {
|
|
1635
1530
|
this.Adapter = Adapter;
|
|
1636
1531
|
/** @ignore */
|
|
1637
|
-
this.DefaultGroupPaddingPercentage = 5;
|
|
1638
|
-
/** @ignore */
|
|
1639
1532
|
this.dangerZone = 50;
|
|
1640
1533
|
/** @ignore */
|
|
1641
1534
|
this.LabelWidth = 150;
|
|
@@ -1647,7 +1540,7 @@ class Vertical2DChartService {
|
|
|
1647
1540
|
this.DefaultColumnWidthPercentage = 85;
|
|
1648
1541
|
}
|
|
1649
1542
|
/**
|
|
1650
|
-
* 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
|
|
1651
1544
|
*/
|
|
1652
1545
|
graphicate(data, settings) {
|
|
1653
1546
|
if (settings.Timeline) {
|
|
@@ -1658,6 +1551,8 @@ class Vertical2DChartService {
|
|
|
1658
1551
|
am4core.options.autoDispose = true;
|
|
1659
1552
|
this.ChartInstance = am4core.create(settings.Name, am4charts.XYChart);
|
|
1660
1553
|
let ChartInstanceCasted = this.ChartInstance;
|
|
1554
|
+
let dataConverted = this.Adapter ? this.Adapter.adaptDataForVerticalChart(data) : data;
|
|
1555
|
+
ChartInstanceCasted.data = dataConverted.values;
|
|
1661
1556
|
if (settings.Legend) {
|
|
1662
1557
|
ChartInstanceCasted.legend = new am4charts.Legend();
|
|
1663
1558
|
ChartInstanceCasted.legend.position = settings?.LegendPosition ?? 'right';
|
|
@@ -1680,10 +1575,7 @@ class Vertical2DChartService {
|
|
|
1680
1575
|
categoryAxis.title.text = settings.XAxisTitle;
|
|
1681
1576
|
categoryAxis.title.fontWeight = "bold";
|
|
1682
1577
|
}
|
|
1683
|
-
|
|
1684
|
-
categoryAxis.dataFields.category = 'key';
|
|
1685
|
-
categoryAxis.renderer.cellStartLocation = am4core.percent(settings.GroupPaddingPercentage ?? this.DefaultGroupPaddingPercentage).value;
|
|
1686
|
-
categoryAxis.renderer.cellEndLocation = am4core.percent(100 - (settings.GroupPaddingPercentage ?? this.DefaultGroupPaddingPercentage)).value;
|
|
1578
|
+
categoryAxis.dataFields.category = "k";
|
|
1687
1579
|
categoryAxis.renderer.grid.template.location = 0;
|
|
1688
1580
|
categoryAxis.renderer.minGridDistance = settings?.MinGridDistance ?? 30;
|
|
1689
1581
|
let label = categoryAxis.renderer.labels.template;
|
|
@@ -1711,87 +1603,35 @@ class Vertical2DChartService {
|
|
|
1711
1603
|
}
|
|
1712
1604
|
});
|
|
1713
1605
|
}
|
|
1714
|
-
|
|
1715
|
-
let
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
ChartInstanceCasted.data = dataConverted;
|
|
1726
|
-
if (dataPreConverted.colorInfos)
|
|
1727
|
-
ChartInstanceCasted.colors.list = dataPreConverted.colorInfos.map(c => am4core.color(c.color));
|
|
1728
|
-
//Prendo la prima categoria e mi baso sulle proprietà per dfeinire le serie
|
|
1729
|
-
for (let prop in dataConverted[0])
|
|
1730
|
-
if (prop !== "key")
|
|
1731
|
-
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;
|
|
1732
1617
|
return this;
|
|
1733
1618
|
}
|
|
1734
1619
|
/** @ignore */
|
|
1735
1620
|
refreshData(data) {
|
|
1736
1621
|
//TODO:IMPL
|
|
1737
1622
|
}
|
|
1738
|
-
/** @ignore */
|
|
1739
|
-
createSeries(chart, settings, value, name) {
|
|
1740
|
-
let series = chart.series.push(new am4charts.ColumnSeries());
|
|
1741
|
-
series.dataFields.valueY = value;
|
|
1742
|
-
series.dataFields.categoryX = 'key';
|
|
1743
|
-
series.name = name;
|
|
1744
|
-
series.columns.template.tooltipText = "{name} {categoryX}: [bold]{valueY}[/]";
|
|
1745
|
-
series.columns.template.fillOpacity = .8;
|
|
1746
|
-
series.columns.template.width = am4core.percent(settings.ColumnWidthPercentage ?? this.DefaultColumnWidthPercentage);
|
|
1747
|
-
series.events.on("hidden", () => this.arrangeColumns);
|
|
1748
|
-
series.events.on("shown", () => this.arrangeColumns);
|
|
1749
|
-
return series;
|
|
1750
|
-
}
|
|
1751
|
-
/** @ignore */
|
|
1752
|
-
arrangeColumns() {
|
|
1753
|
-
let ChartInstanceCasted = this.ChartInstance;
|
|
1754
|
-
let series = ChartInstanceCasted.series.getIndex(0);
|
|
1755
|
-
let xAxis = ChartInstanceCasted.xAxes.getIndex(0);
|
|
1756
|
-
let w = 1 - xAxis.renderer.cellStartLocation - (1 - xAxis.renderer.cellEndLocation);
|
|
1757
|
-
if (series.dataItems.length > 1) {
|
|
1758
|
-
let x0 = xAxis.getX(series.dataItems.getIndex(0), "categoryX");
|
|
1759
|
-
let x1 = xAxis.getX(series.dataItems.getIndex(1), "categoryX");
|
|
1760
|
-
let delta = ((x1 - x0) / ChartInstanceCasted.series.length) * w;
|
|
1761
|
-
if (am4core.isNumber(delta)) {
|
|
1762
|
-
let middle = ChartInstanceCasted.series.length / 2;
|
|
1763
|
-
let newIndex = 0;
|
|
1764
|
-
ChartInstanceCasted.series.each((series) => {
|
|
1765
|
-
if (!series.isHidden && !series.isHiding) {
|
|
1766
|
-
series.dummyData = newIndex;
|
|
1767
|
-
newIndex++;
|
|
1768
|
-
}
|
|
1769
|
-
else {
|
|
1770
|
-
series.dummyData = ChartInstanceCasted.series.indexOf(series);
|
|
1771
|
-
}
|
|
1772
|
-
});
|
|
1773
|
-
let visibleCount = newIndex;
|
|
1774
|
-
let newMiddle = visibleCount / 2;
|
|
1775
|
-
ChartInstanceCasted.series.each((series) => {
|
|
1776
|
-
let trueIndex = ChartInstanceCasted.series.indexOf(series);
|
|
1777
|
-
let newIndex = series.dummyData;
|
|
1778
|
-
let dx = (newIndex - trueIndex + middle - newMiddle) * delta;
|
|
1779
|
-
series.animate({ property: "dx", to: dx }, series.interpolationDuration, series.interpolationEasing);
|
|
1780
|
-
series.bulletsContainer.animate({ property: "dx", to: dx }, series.interpolationDuration, series.interpolationEasing);
|
|
1781
|
-
});
|
|
1782
|
-
}
|
|
1783
|
-
}
|
|
1784
|
-
}
|
|
1785
1623
|
}
|
|
1786
1624
|
|
|
1787
1625
|
/**
|
|
1788
|
-
* 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
|
|
1789
1627
|
*/
|
|
1790
|
-
class
|
|
1628
|
+
class Vertical2DChartService {
|
|
1791
1629
|
/** @ignore */
|
|
1792
1630
|
constructor(Adapter) {
|
|
1793
1631
|
this.Adapter = Adapter;
|
|
1794
1632
|
/** @ignore */
|
|
1633
|
+
this.DefaultGroupPaddingPercentage = 5;
|
|
1634
|
+
/** @ignore */
|
|
1795
1635
|
this.dangerZone = 50;
|
|
1796
1636
|
/** @ignore */
|
|
1797
1637
|
this.LabelWidth = 150;
|
|
@@ -1803,7 +1643,7 @@ class VerticalChartService {
|
|
|
1803
1643
|
this.DefaultColumnWidthPercentage = 85;
|
|
1804
1644
|
}
|
|
1805
1645
|
/**
|
|
1806
|
-
* 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
|
|
1807
1647
|
*/
|
|
1808
1648
|
graphicate(data, settings) {
|
|
1809
1649
|
if (settings.Timeline) {
|
|
@@ -1814,8 +1654,6 @@ class VerticalChartService {
|
|
|
1814
1654
|
am4core.options.autoDispose = true;
|
|
1815
1655
|
this.ChartInstance = am4core.create(settings.Name, am4charts.XYChart);
|
|
1816
1656
|
let ChartInstanceCasted = this.ChartInstance;
|
|
1817
|
-
let dataConverted = this.Adapter ? this.Adapter.adaptDataForVerticalChart(data) : data;
|
|
1818
|
-
ChartInstanceCasted.data = dataConverted.values;
|
|
1819
1657
|
if (settings.Legend) {
|
|
1820
1658
|
ChartInstanceCasted.legend = new am4charts.Legend();
|
|
1821
1659
|
ChartInstanceCasted.legend.position = settings?.LegendPosition ?? 'right';
|
|
@@ -1838,7 +1676,10 @@ class VerticalChartService {
|
|
|
1838
1676
|
categoryAxis.title.text = settings.XAxisTitle;
|
|
1839
1677
|
categoryAxis.title.fontWeight = "bold";
|
|
1840
1678
|
}
|
|
1841
|
-
|
|
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;
|
|
1842
1683
|
categoryAxis.renderer.grid.template.location = 0;
|
|
1843
1684
|
categoryAxis.renderer.minGridDistance = settings?.MinGridDistance ?? 30;
|
|
1844
1685
|
let label = categoryAxis.renderer.labels.template;
|
|
@@ -1866,23 +1707,77 @@ class VerticalChartService {
|
|
|
1866
1707
|
}
|
|
1867
1708
|
});
|
|
1868
1709
|
}
|
|
1869
|
-
|
|
1870
|
-
let
|
|
1871
|
-
|
|
1872
|
-
|
|
1873
|
-
|
|
1874
|
-
|
|
1875
|
-
|
|
1876
|
-
|
|
1877
|
-
|
|
1878
|
-
|
|
1879
|
-
|
|
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);
|
|
1880
1728
|
return this;
|
|
1881
1729
|
}
|
|
1882
1730
|
/** @ignore */
|
|
1883
1731
|
refreshData(data) {
|
|
1884
1732
|
//TODO:IMPL
|
|
1885
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
|
+
}
|
|
1886
1781
|
}
|
|
1887
1782
|
|
|
1888
1783
|
/**
|
|
@@ -2007,6 +1902,138 @@ class VerticalStackedChartService {
|
|
|
2007
1902
|
}
|
|
2008
1903
|
}
|
|
2009
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
|
+
|
|
2010
2037
|
/**
|
|
2011
2038
|
* Componente specifico per la graficazione di un qualsiasi tipo di grafico.
|
|
2012
2039
|
*
|
|
@@ -2079,12 +2106,12 @@ class EsChartComponent extends BaseChartComponent {
|
|
|
2079
2106
|
}
|
|
2080
2107
|
}
|
|
2081
2108
|
}
|
|
2082
|
-
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:
|
|
2083
|
-
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 });
|
|
2084
2111
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsChartComponent, decorators: [{
|
|
2085
2112
|
type: Component,
|
|
2086
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"] }]
|
|
2087
|
-
}], 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: [{
|
|
2088
2115
|
type: Inject,
|
|
2089
2116
|
args: [PLATFORM_ID]
|
|
2090
2117
|
}] }, { type: undefined, decorators: [{
|
|
@@ -2150,7 +2177,7 @@ class EsAreaChartComponent extends BaseChartComponent {
|
|
|
2150
2177
|
}
|
|
2151
2178
|
}
|
|
2152
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 });
|
|
2153
|
-
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 });
|
|
2154
2181
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsAreaChartComponent, decorators: [{
|
|
2155
2182
|
type: Component,
|
|
2156
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"] }]
|
|
@@ -2228,12 +2255,12 @@ class EsLineChartComponent extends BaseChartComponent {
|
|
|
2228
2255
|
return new LineChartService(this.adapter, this.dateService).graphicate(this.Data, settingsCasted);
|
|
2229
2256
|
}
|
|
2230
2257
|
}
|
|
2231
|
-
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:
|
|
2232
|
-
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 });
|
|
2233
2260
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsLineChartComponent, decorators: [{
|
|
2234
2261
|
type: Component,
|
|
2235
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"] }]
|
|
2236
|
-
}], 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: [{
|
|
2237
2264
|
type: Inject,
|
|
2238
2265
|
args: [PLATFORM_ID]
|
|
2239
2266
|
}] }, { type: undefined, decorators: [{
|
|
@@ -2324,7 +2351,7 @@ class EsPieChartComponent extends BaseChartComponent {
|
|
|
2324
2351
|
}
|
|
2325
2352
|
}
|
|
2326
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 });
|
|
2327
|
-
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 });
|
|
2328
2355
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsPieChartComponent, decorators: [{
|
|
2329
2356
|
type: Component,
|
|
2330
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"] }]
|
|
@@ -2412,7 +2439,7 @@ class EsVertical2DChartComponent extends BaseChartComponent {
|
|
|
2412
2439
|
}
|
|
2413
2440
|
}
|
|
2414
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 });
|
|
2415
|
-
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 });
|
|
2416
2443
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsVertical2DChartComponent, decorators: [{
|
|
2417
2444
|
type: Component,
|
|
2418
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"] }]
|
|
@@ -2497,7 +2524,7 @@ class EsVerticalChartComponent extends BaseChartComponent {
|
|
|
2497
2524
|
}
|
|
2498
2525
|
}
|
|
2499
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 });
|
|
2500
|
-
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 });
|
|
2501
2528
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsVerticalChartComponent, decorators: [{
|
|
2502
2529
|
type: Component,
|
|
2503
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"] }]
|
|
@@ -2580,7 +2607,7 @@ class EsVerticalStackedChartComponent extends BaseChartComponent {
|
|
|
2580
2607
|
}
|
|
2581
2608
|
}
|
|
2582
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 });
|
|
2583
|
-
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 });
|
|
2584
2611
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsVerticalStackedChartComponent, decorators: [{
|
|
2585
2612
|
type: Component,
|
|
2586
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"] }]
|
|
@@ -2697,5 +2724,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
|
|
|
2697
2724
|
* Generated bundle index. Do not edit.
|
|
2698
2725
|
*/
|
|
2699
2726
|
|
|
2700
|
-
export { AreaChartData, AreaChartSettings, BaseAdapter, BaseInterval, BaseSettings, ChartThemes, DateValue, EsAreaChartComponent, EsChartComponent, EsChartsModule, EsLineChartComponent, EsPieChartComponent, EsVertical2DChartComponent, EsVerticalChartComponent, EsVerticalStackedChartComponent, KeyValue, KeyValueColor, LegendPad, Limit, LineChartData, LineChartSettings, LineSerie, PageChartSelector, PagedChartData, PieChartData, PieChartSettings, Vertical2DChartData, Vertical2DChartSettings, VerticalChartData, VerticalChartSettings, VerticalStackedChartData, VerticalStackedChartSettings };
|
|
2727
|
+
export { AreaChartData, AreaChartSettings, BaseAdapter, BaseChartComponent, BaseInterval, BaseSettings, ChartThemes, DateValue, EsAreaChartComponent, EsChartComponent, EsChartsModule, EsLineChartComponent, EsPieChartComponent, EsVertical2DChartComponent, EsVerticalChartComponent, EsVerticalStackedChartComponent, KeyValue, KeyValueColor, LegendPad, Limit, LineChartData, LineChartSettings, LineSerie, PageChartSelector, PagedChartData, PieChartData, PieChartSettings, Vertical2DChartData, Vertical2DChartSettings, VerticalChartData, VerticalChartSettings, VerticalStackedChartData, VerticalStackedChartSettings };
|
|
2701
2728
|
//# sourceMappingURL=esfaenza-es-charts.mjs.map
|