@esfaenza/es-charts 13.1.5 → 13.1.8

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.
Files changed (138) hide show
  1. package/esm2020/lib/adapters/BaseAdapter.mjs +50 -0
  2. package/esm2020/lib/adapters/IBaseAdapter.mjs +2 -0
  3. package/esm2020/lib/components/base/base-chart.component.mjs +13 -3
  4. package/esm2020/lib/components/chart-pager/chart-pager.component.mjs +1 -1
  5. package/esm2020/lib/components/specializations/es-area-chart.component.mjs +11 -10
  6. package/esm2020/lib/components/specializations/es-chart.component.mjs +24 -11
  7. package/esm2020/lib/components/specializations/es-line-chart.component.mjs +12 -11
  8. package/esm2020/lib/components/specializations/es-pie-chart.component.mjs +11 -10
  9. package/esm2020/lib/components/specializations/es-vertical-2d-chart.component.mjs +11 -10
  10. package/esm2020/lib/components/specializations/es-vertical-chart.component.mjs +11 -10
  11. package/esm2020/lib/components/specializations/es-vertical-stacked-chart.component.mjs +11 -10
  12. package/esm2020/lib/es-charts.module.mjs +13 -5
  13. package/esm2020/lib/models/core/ChartDispatcher.mjs +91 -0
  14. package/esm2020/lib/models/core/ChartLoader.mjs +201 -0
  15. package/esm2020/lib/models/core/ChartThemes.mjs +61 -0
  16. package/esm2020/lib/models/data/AreaChartData.mjs +16 -0
  17. package/esm2020/lib/models/data/LineChartData.mjs +16 -0
  18. package/esm2020/lib/models/data/PagedChartData.mjs +20 -0
  19. package/esm2020/lib/models/data/PieChartData.mjs +14 -0
  20. package/esm2020/lib/models/data/Vertical2DChartData.mjs +16 -0
  21. package/esm2020/lib/models/data/VerticalChartData.mjs +14 -0
  22. package/esm2020/lib/models/data/VerticalStackedChartData.mjs +14 -0
  23. package/esm2020/lib/models/data/base/DateValue.mjs +11 -0
  24. package/esm2020/lib/models/data/base/KeyValue.mjs +11 -0
  25. package/esm2020/lib/models/data/base/KeyValueColor.mjs +12 -0
  26. package/esm2020/lib/models/data/base/Limit.mjs +16 -0
  27. package/esm2020/lib/models/data/base/LineSerie.mjs +24 -0
  28. package/esm2020/lib/models/settings/AreaChartSettings.mjs +11 -0
  29. package/esm2020/lib/models/settings/LineChartSettings.mjs +11 -0
  30. package/esm2020/lib/models/settings/PieChartSettings.mjs +7 -0
  31. package/esm2020/lib/models/settings/Vertical2DChartSettings.mjs +11 -0
  32. package/esm2020/lib/models/settings/VerticalChartSettings.mjs +11 -0
  33. package/esm2020/lib/models/settings/VerticalStackedChartSettings.mjs +11 -0
  34. package/esm2020/lib/models/settings/base/BaseInterval.mjs +6 -0
  35. package/esm2020/lib/models/settings/base/BaseSettings.mjs +6 -0
  36. package/esm2020/lib/models/settings/base/LegendPad.mjs +6 -0
  37. package/esm2020/lib/services/AreaChartService.mjs +137 -0
  38. package/esm2020/lib/services/LineChartService.mjs +365 -0
  39. package/esm2020/lib/services/PieChartService.mjs +114 -0
  40. package/esm2020/lib/services/Vertical2DChartService.mjs +163 -0
  41. package/esm2020/lib/services/VerticalChartService.mjs +106 -0
  42. package/esm2020/lib/services/VerticalStackedChartService.mjs +127 -0
  43. package/esm2020/lib/services/base/IBaseService.mjs +2 -0
  44. package/esm2020/public-api.mjs +25 -25
  45. package/fesm2015/esfaenza-es-charts.mjs +442 -408
  46. package/fesm2015/esfaenza-es-charts.mjs.map +1 -1
  47. package/fesm2020/esfaenza-es-charts.mjs +431 -397
  48. package/fesm2020/esfaenza-es-charts.mjs.map +1 -1
  49. package/lib/adapters/{classes/BaseAdapter.d.ts → BaseAdapter.d.ts} +6 -1
  50. package/lib/adapters/{classes/IBaseAdapter.d.ts → IBaseAdapter.d.ts} +6 -1
  51. package/lib/components/base/base-chart.component.d.ts +17 -4
  52. package/lib/components/chart-pager/chart-pager.component.d.ts +1 -1
  53. package/lib/components/specializations/es-area-chart.component.d.ts +6 -4
  54. package/lib/components/specializations/es-chart.component.d.ts +17 -5
  55. package/lib/components/specializations/es-line-chart.component.d.ts +6 -4
  56. package/lib/components/specializations/es-pie-chart.component.d.ts +6 -4
  57. package/lib/components/specializations/es-vertical-2d-chart.component.d.ts +6 -4
  58. package/lib/components/specializations/es-vertical-chart.component.d.ts +6 -4
  59. package/lib/components/specializations/es-vertical-stacked-chart.component.d.ts +6 -4
  60. package/lib/models/core/{classes/ChartDispatcher.d.ts → ChartDispatcher.d.ts} +0 -0
  61. package/lib/models/core/{classes/ChartLoader.d.ts → ChartLoader.d.ts} +0 -0
  62. package/lib/models/core/{classes/ChartThemes.d.ts → ChartThemes.d.ts} +0 -0
  63. package/lib/models/data/{classes/AreaChartData.d.ts → AreaChartData.d.ts} +1 -1
  64. package/lib/models/data/{classes/LineChartData.d.ts → LineChartData.d.ts} +2 -2
  65. package/lib/models/data/{classes/PagedChartData.d.ts → PagedChartData.d.ts} +0 -0
  66. package/lib/models/data/{classes/PieChartData.d.ts → PieChartData.d.ts} +0 -0
  67. package/lib/models/data/{classes/Vertical2DChartData.d.ts → Vertical2DChartData.d.ts} +0 -0
  68. package/lib/models/data/{classes/VerticalChartData.d.ts → VerticalChartData.d.ts} +0 -0
  69. package/lib/models/data/{classes/VerticalStackedChartData.d.ts → VerticalStackedChartData.d.ts} +0 -0
  70. package/lib/models/data/{classes/base → base}/DateValue.d.ts +0 -0
  71. package/lib/models/data/{classes/base → base}/KeyValue.d.ts +0 -0
  72. package/lib/models/data/{classes/base → base}/KeyValueColor.d.ts +0 -0
  73. package/lib/models/data/base/Limit.d.ts +14 -0
  74. package/lib/models/data/{classes/base → base}/LineSerie.d.ts +1 -1
  75. package/lib/models/settings/{classes/AreaChartSettings.d.ts → AreaChartSettings.d.ts} +0 -0
  76. package/lib/models/settings/{classes/LineChartSettings.d.ts → LineChartSettings.d.ts} +0 -0
  77. package/lib/models/settings/{classes/PieChartSettings.d.ts → PieChartSettings.d.ts} +0 -0
  78. package/lib/models/settings/{classes/Vertical2DChartSettings.d.ts → Vertical2DChartSettings.d.ts} +0 -0
  79. package/lib/models/settings/{classes/VerticalChartSettings.d.ts → VerticalChartSettings.d.ts} +0 -0
  80. package/lib/models/settings/{classes/VerticalStackedChartSettings.d.ts → VerticalStackedChartSettings.d.ts} +0 -0
  81. package/lib/models/settings/{classes/base → base}/BaseInterval.d.ts +0 -0
  82. package/lib/models/settings/{classes/base → base}/BaseSettings.d.ts +1 -1
  83. package/lib/models/settings/{classes/base → base}/LegendPad.d.ts +0 -0
  84. package/lib/services/{classes/AreaChartService.d.ts → AreaChartService.d.ts} +5 -3
  85. package/lib/services/{classes/LineChartService.d.ts → LineChartService.d.ts} +7 -3
  86. package/lib/services/{classes/PieChartService.d.ts → PieChartService.d.ts} +5 -3
  87. package/lib/services/{classes/Vertical2DChartService.d.ts → Vertical2DChartService.d.ts} +5 -3
  88. package/lib/services/{classes/VerticalChartService.d.ts → VerticalChartService.d.ts} +5 -3
  89. package/lib/services/{classes/VerticalStackedChartService.d.ts → VerticalStackedChartService.d.ts} +5 -3
  90. package/lib/services/{classes/base → base}/IBaseService.d.ts +8 -1
  91. package/package.json +1 -1
  92. package/public-api.d.ts +24 -24
  93. package/esm2020/lib/adapters/classes/BaseAdapter.mjs +0 -50
  94. package/esm2020/lib/adapters/classes/IBaseAdapter.mjs +0 -2
  95. package/esm2020/lib/adapters/index.mjs +0 -3
  96. package/esm2020/lib/components/index.mjs +0 -9
  97. package/esm2020/lib/models/core/classes/ChartDispatcher.mjs +0 -91
  98. package/esm2020/lib/models/core/classes/ChartLoader.mjs +0 -201
  99. package/esm2020/lib/models/core/classes/ChartThemes.mjs +0 -61
  100. package/esm2020/lib/models/core/index.mjs +0 -4
  101. package/esm2020/lib/models/data/classes/AreaChartData.mjs +0 -16
  102. package/esm2020/lib/models/data/classes/LineChartData.mjs +0 -16
  103. package/esm2020/lib/models/data/classes/PagedChartData.mjs +0 -20
  104. package/esm2020/lib/models/data/classes/PieChartData.mjs +0 -14
  105. package/esm2020/lib/models/data/classes/Vertical2DChartData.mjs +0 -16
  106. package/esm2020/lib/models/data/classes/VerticalChartData.mjs +0 -14
  107. package/esm2020/lib/models/data/classes/VerticalStackedChartData.mjs +0 -14
  108. package/esm2020/lib/models/data/classes/base/DateValue.mjs +0 -11
  109. package/esm2020/lib/models/data/classes/base/KeyValue.mjs +0 -11
  110. package/esm2020/lib/models/data/classes/base/KeyValueColor.mjs +0 -12
  111. package/esm2020/lib/models/data/classes/base/Limit.mjs +0 -15
  112. package/esm2020/lib/models/data/classes/base/LineSerie.mjs +0 -24
  113. package/esm2020/lib/models/data/index.mjs +0 -13
  114. package/esm2020/lib/models/settings/classes/AreaChartSettings.mjs +0 -11
  115. package/esm2020/lib/models/settings/classes/LineChartSettings.mjs +0 -11
  116. package/esm2020/lib/models/settings/classes/PieChartSettings.mjs +0 -7
  117. package/esm2020/lib/models/settings/classes/Vertical2DChartSettings.mjs +0 -11
  118. package/esm2020/lib/models/settings/classes/VerticalChartSettings.mjs +0 -11
  119. package/esm2020/lib/models/settings/classes/VerticalStackedChartSettings.mjs +0 -11
  120. package/esm2020/lib/models/settings/classes/base/BaseInterval.mjs +0 -6
  121. package/esm2020/lib/models/settings/classes/base/BaseSettings.mjs +0 -6
  122. package/esm2020/lib/models/settings/classes/base/LegendPad.mjs +0 -6
  123. package/esm2020/lib/models/settings/index.mjs +0 -10
  124. package/esm2020/lib/services/classes/AreaChartService.mjs +0 -134
  125. package/esm2020/lib/services/classes/LineChartService.mjs +0 -356
  126. package/esm2020/lib/services/classes/PieChartService.mjs +0 -111
  127. package/esm2020/lib/services/classes/Vertical2DChartService.mjs +0 -160
  128. package/esm2020/lib/services/classes/VerticalChartService.mjs +0 -103
  129. package/esm2020/lib/services/classes/VerticalStackedChartService.mjs +0 -124
  130. package/esm2020/lib/services/classes/base/IBaseService.mjs +0 -2
  131. package/esm2020/lib/services/index.mjs +0 -8
  132. package/lib/adapters/index.d.ts +0 -2
  133. package/lib/components/index.d.ts +0 -8
  134. package/lib/models/core/index.d.ts +0 -3
  135. package/lib/models/data/classes/base/Limit.d.ts +0 -13
  136. package/lib/models/data/index.d.ts +0 -12
  137. package/lib/models/settings/index.d.ts +0 -9
  138. 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 i4 from '@angular/common';
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 i2 from '@esfaenza/extensions';
7
+ import * as i3 from '@esfaenza/extensions';
8
8
 
9
9
  /**
10
10
  * Adapter Base da reimplementare per trasformare i dati da una libreria di grafici a questa per evitare di riscrivere tutto il codice di
@@ -223,13 +223,14 @@ class LegendPad {
223
223
  */
224
224
  class Limit {
225
225
  /** @ignore */
226
- constructor(upper, upperLabel, upperColor, lower, lowerLabel, lowerColor) {
226
+ constructor(upper, upperlabel, uppercolor, lower, lowerlabel, lowercolor, fillColor = "") {
227
227
  this.upper = upper;
228
- this.upperLabel = upperLabel;
229
- this.upperColor = upperColor;
228
+ this.upperlabel = upperlabel;
229
+ this.uppercolor = uppercolor;
230
230
  this.lower = lower;
231
- this.lowerLabel = lowerLabel;
232
- this.lowerColor = lowerColor;
231
+ this.lowerlabel = lowerlabel;
232
+ this.lowercolor = lowercolor;
233
+ this.fillColor = fillColor;
233
234
  }
234
235
  }
235
236
 
@@ -358,7 +359,7 @@ class PageChartSelector {
358
359
  }
359
360
  }
360
361
  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: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
362
+ 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
363
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: PageChartSelector, decorators: [{
363
364
  type: Component,
364
365
  args: [{ selector: "chart-pager", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"(Items || Dtos) && (Items || Dtos).length > 0\" class=\"pcs-no-selection\">\r\n <div class=\"pcs-button pcs-backward\">\r\n <svg class=\"pcs-svg-header\">\r\n <g class=\"pcs-svg-button-container\" role=\"button\" (click)=\"currentpage != 1 && Previous(); $event.stopPropagation(); $event.preventDefault();\">\r\n <!--Pulsante e freccettina all'interno-->\r\n <g class=\"pcs-svg-button\" [style.cursor]=\"currentpage == 1 ? 'not-allowed' : 'pointer'\"><path d=\"M3,0 L53.027,0 a3,3 0 0 1 3,3 L56.027,36.817 a3,3 0 0 1 -3,3 L3,39.817 a3,3 0 0 1 -3,-3 L0,3 a3,3 0 0 1 3,-3 Z\"></path></g>\r\n <g class=\"pcs-svg-arrow pcs-svg-arrow-left\"><path d=\"M26,14H10l5.17-6.79A2,2,0,0,0,12,4.79l-7.62,10a2,2,0,0,0,0,2.42l7.62,10a2,2,0,0,0,3.18-2.42L10,18H26a2,2,0,0,0,0-4Z\"></path></g>\r\n </g>\r\n </svg>\r\n </div>\r\n <div class=\"pcs-infos\">\r\n <ng-container *ngIf=\"headerInner_tr\">\r\n <ng-container *ngTemplateOutlet=\"headerInner_tr; context : {$implicit: (Items || Dtos)[currentpage - 1]}\"></ng-container>\r\n </ng-container>\r\n </div>\r\n <div class=\"pcs-button pcs-forward\">\r\n <svg class=\"pcs-svg-header\">\r\n <g class=\"pcs-svg-button-container\" role=\"button\" (click)=\"(Items || Dtos).length != currentpage && Next(); $event.stopPropagation(); $event.preventDefault();\">\r\n <!--Pulsante e freccettina all'interno-->\r\n <g class=\"pcs-svg-button\" [style.cursor]=\"(Items || Dtos).length == currentpage ? 'not-allowed' : 'pointer'\"><path d=\"M3,0 L53.027,0 a3,3 0 0 1 3,3 L56.027,36.817 a3,3 0 0 1 -3,3 L3,39.817 a3,3 0 0 1 -3,-3 L0,3 a3,3 0 0 1 3,-3 Z\"></path></g>\r\n <g class=\"pcs-svg-arrow pcs-svg-arrow-right\"><path d=\"M26,14H10l5.17-6.79A2,2,0,0,0,12,4.79l-7.62,10a2,2,0,0,0,0,2.42l7.62,10a2,2,0,0,0,3.18-2.42L10,18H26a2,2,0,0,0,0-4Z\"></path></g>\r\n </g>\r\n </svg>\r\n </div>\r\n <div style=\"clear: both;\"></div>\r\n</div>", styles: [".pcs-button{width:60px}.pcs-forward{float:right;text-align:end}.pcs-backward{float:left}.pcs-svg-header{width:57px;height:40px}.pcs-svg-button-container{outline:currentcolor none medium}.pcs-svg-arrow{pointer-events:none;fill:#555}.pcs-svg-arrow-right{transform:translate(44px,36px) rotate(180deg)}.pcs-svg-arrow-left{transform:translate(13px,4px)}.pcs-svg-button{fill:#d9d9d9;stroke:#fff;fill-opacity:1;stroke-opacity:1}.pcs-svg-button:hover{fill:#a3a3a3;cursor:pointer}.pcs-infos{width:calc(100% - 120px);height:44px;float:left}.pcs-no-selection{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}\n"] }]
@@ -377,113 +378,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
377
378
  args: ['header_inner', { static: false }]
378
379
  }] } });
379
380
 
380
- /**
381
- * Token che identifica il Locale di default per tutti i grafici, può essere sovrascritto dalle impostazioni locali (Settings e Input)
382
- */
383
- const ESC_LOCALE = new InjectionToken('ESC_LOCALE');
384
- /**
385
- * Token che identifica il default per l'utilizzo o meno delle Animazioni per tutti i grafici, può essere sovrascritto dalle impostazioni locali (Settings e Input)
386
- */
387
- const ESC_ANIMATIONS = new InjectionToken('ESC_ANIMATIONS');
388
- /**
389
- * Token che identifica il Tema di default per tutti i grafici, può essere sovrascritto dalle impostazioni locali (Settings e Input)
390
- */
391
- const ESC_THEME = new InjectionToken('ESC_THEME');
392
- /**
393
- * Token che identifica l'utilizzo o meno del sistema di Log per l'intera libreria
394
- */
395
- const ESC_LOGS = new InjectionToken('ESC_LOGS');
396
-
397
- /**
398
- * Classe che si occupa del dispatch delle operazioni di rendering dei grafici utilizzando una coda per permettere ad ogni grafico di avere temi e localizzazione custom
399
- */
400
- class ChartDispatcher {
401
- /**
402
- * @ignore
403
- */
404
- constructor(logs) {
405
- this.logs = logs;
406
- /**
407
- * Coda di inizializzazioni ancora da eseguire. Quando questa è vuota significa che nessuno sta creando grafici
408
- */
409
- this.Initializations = [];
410
- /**
411
- * Lista dei grafici inizializzati e attivi in un dato momento (viene registrata la proprietà **name**). Non è possibile registrare due grafici con lo stesso identificativo
412
- */
413
- this.InitializedGraphs = [];
414
- }
415
- /**
416
- * Registra un grafico da visualizzare insieme alla propria funzione di creazione. Quest'ultima sarà differita fino a che tutti i grafici
417
- * precedentemente registati non hanno finito la fase di inizializzazione
418
- *
419
- * @param {string} name Identificativo del grafico da registrare
420
- * @param {Function} chartCreationFunction Funzione che fisicamente dovrà occuparsi della creazione del grafico
421
- */
422
- register(name, chartCreationFunction) {
423
- if (this.InitializedGraphs.indexOf(name) != -1)
424
- throw "Attempting to register a duplicate chart '" + name + "'. Make sure the 'name' properties of your charts are univoque";
425
- this.log("DISPATCHER: Registering chart creation function execution for " + name);
426
- this.Initializations.push({ name: name, function: chartCreationFunction });
427
- if (this.Initializations.length == 1) {
428
- this.log("DISPATCHER: Initial drain started");
429
- this.drainInitQueues();
430
- }
431
- }
432
- /**
433
- * Deregistra un grafico presente. Chiamata generalmente al dispose del grafico in questione quando non dev'essere più mostrato nella pagina corrente
434
- *
435
- * @param {string} name Identificativo del grafico da deregistrare
436
- */
437
- deregisterGraph(name) {
438
- let index = this.InitializedGraphs.indexOf(name);
439
- if (index == -1) {
440
- //Questo succede quando si cerca di distruggere il grafico mentre sta venendo graficato
441
- this.log("DISPATCHER: Registration missing for chart " + name + " it was probably destroyed during load");
442
- return;
443
- }
444
- this.log("DISPATCHER: Chart deregistered " + name);
445
- this.InitializedGraphs.splice(index, 1);
446
- }
447
- /**
448
- * Metodo che esegue in maniera sequenziale le funzioni di inizializzazione dei grafici finché presenti
449
- * in modo che nessun grafico possa essere inizializzato contemporaneamente ad un altro.
450
- *
451
- * Questo è il punto chiave che permette di avere per ogni grafico temi e locale differenti
452
- */
453
- drainInitQueues() {
454
- let toExecute = this.Initializations[0];
455
- this.log("DISPATCHER: Executing initialization function for chart " + toExecute.name);
456
- toExecute.function().then(() => {
457
- this.log("DISPATCHER: initialization for chart " + toExecute.name + " is done");
458
- this.InitializedGraphs.push(toExecute.name);
459
- this.Initializations.splice(0, 1);
460
- if (this.Initializations.length >= 1) {
461
- this.log("DISPATCHER: Found queued initializations. Continuing");
462
- this.drainInitQueues();
463
- }
464
- else
465
- this.log("DISPATCHER: queue is over, nothing more to do");
466
- });
467
- }
468
- /**
469
- * @ignore
470
- */
471
- log(text) {
472
- if (this.logs)
473
- console.log("@esfaenza/es-charts: " + text);
474
- }
475
- }
476
- ChartDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ChartDispatcher, deps: [{ token: ESC_LOGS }], target: i0.ɵɵFactoryTarget.Injectable });
477
- ChartDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ChartDispatcher });
478
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ChartDispatcher, decorators: [{
479
- type: Injectable
480
- }], ctorParameters: function () {
481
- return [{ type: undefined, decorators: [{
482
- type: Inject,
483
- args: [ESC_LOGS]
484
- }] }];
485
- } });
486
-
487
381
  /** @ignore */
488
382
  const _spiritedaway = 'spiritedaway';
489
383
  /** @ignore */
@@ -745,6 +639,113 @@ class ChartLoader {
745
639
  }
746
640
  }
747
641
 
642
+ /**
643
+ * Token che identifica il Locale di default per tutti i grafici, può essere sovrascritto dalle impostazioni locali (Settings e Input)
644
+ */
645
+ const ESC_LOCALE = new InjectionToken('ESC_LOCALE');
646
+ /**
647
+ * 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)
648
+ */
649
+ const ESC_ANIMATIONS = new InjectionToken('ESC_ANIMATIONS');
650
+ /**
651
+ * Token che identifica il Tema di default per tutti i grafici, può essere sovrascritto dalle impostazioni locali (Settings e Input)
652
+ */
653
+ const ESC_THEME = new InjectionToken('ESC_THEME');
654
+ /**
655
+ * Token che identifica l'utilizzo o meno del sistema di Log per l'intera libreria
656
+ */
657
+ const ESC_LOGS = new InjectionToken('ESC_LOGS');
658
+
659
+ /**
660
+ * 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
661
+ */
662
+ class ChartDispatcher {
663
+ /**
664
+ * @ignore
665
+ */
666
+ constructor(logs) {
667
+ this.logs = logs;
668
+ /**
669
+ * Coda di inizializzazioni ancora da eseguire. Quando questa è vuota significa che nessuno sta creando grafici
670
+ */
671
+ this.Initializations = [];
672
+ /**
673
+ * Lista dei grafici inizializzati e attivi in un dato momento (viene registrata la proprietà **name**). Non è possibile registrare due grafici con lo stesso identificativo
674
+ */
675
+ this.InitializedGraphs = [];
676
+ }
677
+ /**
678
+ * Registra un grafico da visualizzare insieme alla propria funzione di creazione. Quest'ultima sarà differita fino a che tutti i grafici
679
+ * precedentemente registati non hanno finito la fase di inizializzazione
680
+ *
681
+ * @param {string} name Identificativo del grafico da registrare
682
+ * @param {Function} chartCreationFunction Funzione che fisicamente dovrà occuparsi della creazione del grafico
683
+ */
684
+ register(name, chartCreationFunction) {
685
+ if (this.InitializedGraphs.indexOf(name) != -1)
686
+ throw "Attempting to register a duplicate chart '" + name + "'. Make sure the 'name' properties of your charts are univoque";
687
+ this.log("DISPATCHER: Registering chart creation function execution for " + name);
688
+ this.Initializations.push({ name: name, function: chartCreationFunction });
689
+ if (this.Initializations.length == 1) {
690
+ this.log("DISPATCHER: Initial drain started");
691
+ this.drainInitQueues();
692
+ }
693
+ }
694
+ /**
695
+ * Deregistra un grafico presente. Chiamata generalmente al dispose del grafico in questione quando non dev'essere più mostrato nella pagina corrente
696
+ *
697
+ * @param {string} name Identificativo del grafico da deregistrare
698
+ */
699
+ deregisterGraph(name) {
700
+ let index = this.InitializedGraphs.indexOf(name);
701
+ if (index == -1) {
702
+ //Questo succede quando si cerca di distruggere il grafico mentre sta venendo graficato
703
+ this.log("DISPATCHER: Registration missing for chart " + name + " it was probably destroyed during load");
704
+ return;
705
+ }
706
+ this.log("DISPATCHER: Chart deregistered " + name);
707
+ this.InitializedGraphs.splice(index, 1);
708
+ }
709
+ /**
710
+ * Metodo che esegue in maniera sequenziale le funzioni di inizializzazione dei grafici finché presenti
711
+ * in modo che nessun grafico possa essere inizializzato contemporaneamente ad un altro.
712
+ *
713
+ * Questo è il punto chiave che permette di avere per ogni grafico temi e locale differenti
714
+ */
715
+ drainInitQueues() {
716
+ let toExecute = this.Initializations[0];
717
+ this.log("DISPATCHER: Executing initialization function for chart " + toExecute.name);
718
+ toExecute.function().then(() => {
719
+ this.log("DISPATCHER: initialization for chart " + toExecute.name + " is done");
720
+ this.InitializedGraphs.push(toExecute.name);
721
+ this.Initializations.splice(0, 1);
722
+ if (this.Initializations.length >= 1) {
723
+ this.log("DISPATCHER: Found queued initializations. Continuing");
724
+ this.drainInitQueues();
725
+ }
726
+ else
727
+ this.log("DISPATCHER: queue is over, nothing more to do");
728
+ });
729
+ }
730
+ /**
731
+ * @ignore
732
+ */
733
+ log(text) {
734
+ if (this.logs)
735
+ console.log("@esfaenza/es-charts: " + text);
736
+ }
737
+ }
738
+ ChartDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ChartDispatcher, deps: [{ token: ESC_LOGS }], target: i0.ɵɵFactoryTarget.Injectable });
739
+ ChartDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ChartDispatcher });
740
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ChartDispatcher, decorators: [{
741
+ type: Injectable
742
+ }], ctorParameters: function () {
743
+ return [{ type: undefined, decorators: [{
744
+ type: Inject,
745
+ args: [ESC_LOGS]
746
+ }] }];
747
+ } });
748
+
748
749
  /**
749
750
  * Componente Grafico Base che gestisce tutte le cose comuni dei vari grafici istanziabili, come la presenza o menu di una legenda,
750
751
  * il tema utilizzato, il locale del singolo grafico, ecc ecc...
@@ -1015,6 +1016,15 @@ class BaseChartComponent {
1015
1016
  if (this.logs)
1016
1017
  console.log("@esfaenza/es-charts: " + log);
1017
1018
  }
1019
+ /**
1020
+ * Imposta lo zoom dal **from** al **to**
1021
+ *
1022
+ * @param {Date} from Inizio dello zoom
1023
+ * @param {Date} to Fine dello zoom
1024
+ */
1025
+ setSelection(from, to) {
1026
+ this.ChartService.setSelection(from, to);
1027
+ }
1018
1028
  /**
1019
1029
  * @ignore
1020
1030
  */
@@ -1131,33 +1141,57 @@ class LineChartService {
1131
1141
  yAxis.min = settings.Min;
1132
1142
  if (settings.Max)
1133
1143
  yAxis.max = settings.Max;
1134
- if (dataConverted.limit) {
1135
- if (dataConverted.limit.upper != null && dataConverted.limit.upper != undefined) {
1136
- let range = yAxis.axisRanges.create();
1137
- range.value = dataConverted.limit.upper;
1138
- range.label.inside = true;
1139
- range.label.text = dataConverted.limit.upperLabel;
1140
- range.label.fill = range.grid.stroke;
1141
- range.label.verticalCenter = "bottom";
1142
- range.label.stroke = am4core.color(dataConverted.limit.upperColor || "#F92200");
1143
- range.grid.stroke = am4core.color(dataConverted.limit.upperColor || "#F92200");
1144
- range.grid.strokeWidth = 2;
1145
- range.grid.strokeOpacity = 1;
1146
- }
1147
- if (dataConverted.limit.lower != null && dataConverted.limit.lower != undefined) {
1148
- let range = yAxis.axisRanges.create();
1149
- range.value = dataConverted.limit.lower;
1150
- range.label.inside = true;
1151
- range.label.text = dataConverted.limit.lowerLabel;
1152
- range.label.fill = range.grid.stroke;
1153
- range.label.verticalCenter = "bottom";
1154
- range.label.stroke = am4core.color(dataConverted.limit.lowerColor || "#F92200");
1155
- range.grid.stroke = am4core.color(dataConverted.limit.lowerColor || "#F92200");
1156
- range.grid.strokeWidth = 2;
1157
- range.grid.strokeOpacity = 1;
1144
+ let limitNullOrUndef = dataConverted.limit == null || dataConverted.limit == undefined;
1145
+ let limits = limitNullOrUndef ? [] : !dataConverted.limit.length ? [dataConverted.limit] : dataConverted.limit;
1146
+ if (limits.length > 0) {
1147
+ for (let i = 0; i < limits.length; i++) {
1148
+ let limit = limits[i];
1149
+ if (limit.upper != null && limit.upper != undefined && limit.lower != null && limit.lower != undefined) {
1150
+ let range = yAxis.axisRanges.create();
1151
+ range.value = limit.lower;
1152
+ range.endValue = limit.upper;
1153
+ if (limit.fillColor) {
1154
+ range.contents.stroke = am4core.color(limit.fillColor);
1155
+ range.contents.fill = range.contents.stroke;
1156
+ }
1157
+ range.label.inside = true;
1158
+ range.label.text = limit.upperlabel;
1159
+ range.label.fill = range.grid.stroke;
1160
+ range.label.verticalCenter = "bottom";
1161
+ range.label.stroke = am4core.color(limit.uppercolor || "#F92200");
1162
+ range.grid.stroke = am4core.color(limit.uppercolor || "#F92200");
1163
+ range.grid.strokeWidth = 2;
1164
+ range.grid.strokeOpacity = 1;
1165
+ }
1166
+ else if ((limit.lower == null || limit.lower == undefined) && limit.upper != null && limit.upper != undefined) {
1167
+ let range = yAxis.axisRanges.create();
1168
+ range.value = limit.upper;
1169
+ range.label.inside = true;
1170
+ range.label.text = limit.upperlabel;
1171
+ range.label.fill = range.grid.stroke;
1172
+ range.label.verticalCenter = "bottom";
1173
+ range.label.stroke = am4core.color(limit.uppercolor || "#F92200");
1174
+ range.grid.stroke = am4core.color(limit.uppercolor || "#F92200");
1175
+ range.grid.strokeWidth = 2;
1176
+ range.grid.strokeOpacity = 1;
1177
+ }
1178
+ else if ((limit.upper == null || limit.upper == undefined) && limit.lower != null && limit.lower != undefined) {
1179
+ let range = yAxis.axisRanges.create();
1180
+ range.value = limit.lower;
1181
+ range.label.inside = true;
1182
+ range.label.text = limit.lowerlabel;
1183
+ range.label.fill = range.grid.stroke;
1184
+ range.label.verticalCenter = "bottom";
1185
+ range.label.stroke = am4core.color(limit.lowercolor || "#F92200");
1186
+ range.grid.stroke = am4core.color(limit.lowercolor || "#F92200");
1187
+ range.grid.strokeWidth = 2;
1188
+ range.grid.strokeOpacity = 1;
1189
+ }
1158
1190
  }
1159
1191
  }
1160
- let dateAxis = ChartInstanceCasted.xAxes.push(new am4charts.DateAxis());
1192
+ this.dateAxis = ChartInstanceCasted.xAxes.push(new am4charts.DateAxis());
1193
+ // Per comatibilità col codice scritto quando non era a livello globale, mi scoccia sostituire
1194
+ let dateAxis = this.dateAxis;
1161
1195
  if (settings.XAxisTitle) {
1162
1196
  dateAxis.title.text = settings.XAxisTitle;
1163
1197
  dateAxis.title.fontWeight = "bold";
@@ -1328,6 +1362,10 @@ class LineChartService {
1328
1362
  return this;
1329
1363
  }
1330
1364
  /** @ignore */
1365
+ setSelection(from, to) {
1366
+ this.dateAxis.zoomToDates(from, to, true, true);
1367
+ }
1368
+ /** @ignore */
1331
1369
  refreshData(data) {
1332
1370
  let dataConverted = this.Adapter ? this.Adapter.adaptDataForLineChart(data) : data;
1333
1371
  if (this.singleDataSet) {
@@ -1335,26 +1373,7 @@ class LineChartService {
1335
1373
  this.ChartInstance.addData(data);
1336
1374
  return;
1337
1375
  }
1338
- this.ChartInstance.series.each(s => {
1339
- var relativeSerie = dataConverted.series.find(t => t.name == s.name);
1340
- // Una serie del grafico è stata ggiornata, ordino i datapoint e li aggiungo
1341
- var correctOrder = true;
1342
- var prevDate = null;
1343
- for (let v = 0; v < relativeSerie.values.length; v++) {
1344
- if (!prevDate)
1345
- prevDate = relativeSerie.values[v].d;
1346
- else if (relativeSerie.values[v].d < prevDate) {
1347
- correctOrder = false;
1348
- break;
1349
- }
1350
- }
1351
- if (!correctOrder)
1352
- relativeSerie.values.sort((d1, d2) => d1.d.getTime() - d2.d.getTime());
1353
- for (let v = 0; v < relativeSerie.values.length; v++) {
1354
- let obj = relativeSerie.values[v];
1355
- s.addData({ date: obj.d, value: obj.v });
1356
- }
1357
- });
1376
+ throw "Impossibile aggiornare i dati senza unire il dataset. Si prega di impostare [MergeDatasets] a true";
1358
1377
  }
1359
1378
  /** Partendo da dati divisi per seriue genera un dataset unito con la data come chiave e i vari valori dopo */
1360
1379
  generateSingleDataset(data) {
@@ -1441,155 +1460,22 @@ class LineChartService {
1441
1460
  }
1442
1461
 
1443
1462
  /**
1444
- * Classe il cui unico scopo è gestire il setup e rendering di un AreaChart
1463
+ * Classe il cui unico scopo è gestire il setup e rendering di un PieChart
1445
1464
  */
1446
- class AreaChartService {
1465
+ class PieChartService {
1447
1466
  /** @ignore */
1448
1467
  constructor(Adapter) {
1449
1468
  this.Adapter = Adapter;
1450
- //******************** Funzione di throttling per non spammare richieste in caso di animazioni attivate
1451
- //TODO: spostarla in un metodo di utilità (esfaenza/extensions)
1452
1469
  /** @ignore */
1453
- this.executionTimers = {};
1470
+ this.ViewAbsoluteValues = true;
1454
1471
  }
1455
1472
  /**
1456
- * Metodo che data una coppia Dati - Impostazioni li utilizza per creare e visualizzare un AreaChart
1473
+ * Metodo che data una coppia Dati - Impostazioni li utilizza per creare e visualizzare un PieChart
1457
1474
  */
1458
1475
  graphicate(data, settings) {
1459
- var _a, _b, _c, _d, _e, _f;
1476
+ var _a, _b, _c, _d;
1460
1477
  if (settings.Timeline) {
1461
- console.error("Timeline not supported for area chart");
1462
- return null;
1463
- }
1464
- let dataConverted = this.Adapter ? this.Adapter.adaptDataForAreaChart(data) : data;
1465
- let showTicks = settings.ShowTicks == null ? true : settings === null || settings === void 0 ? void 0 : settings.ShowTicks;
1466
- let interval = dataConverted.interval;
1467
- //Per evitare di dimenticarmeli e gestire comunque bene gli ngif ecc...
1468
- am4core.options.autoDispose = true;
1469
- this.ChartInstance = am4core.create(settings.Name, am4charts.XYChart);
1470
- let ChartInstanceCasted = this.ChartInstance;
1471
- if (settings.Legend) {
1472
- ChartInstanceCasted.legend = new am4charts.Legend();
1473
- ChartInstanceCasted.legend.position = (_a = settings === null || settings === void 0 ? void 0 : settings.LegendPosition) !== null && _a !== void 0 ? _a : 'right';
1474
- ChartInstanceCasted.legend.itemContainers.template.tooltipText = "{category}";
1475
- if (settings.LegendPadding) {
1476
- let template = this.ChartInstance.legend.itemContainers.template;
1477
- template.paddingTop = (_b = settings.LegendPadding.top) !== null && _b !== void 0 ? _b : 0;
1478
- template.paddingBottom = (_c = settings.LegendPadding.bottom) !== null && _c !== void 0 ? _c : 0;
1479
- template.paddingLeft = (_d = settings.LegendPadding.left) !== null && _d !== void 0 ? _d : 0;
1480
- template.paddingRight = (_e = settings.LegendPadding.right) !== null && _e !== void 0 ? _e : 0;
1481
- }
1482
- }
1483
- let yAxis = ChartInstanceCasted.yAxes.push(new am4charts.ValueAxis());
1484
- yAxis.tooltip.disabled = true;
1485
- if (settings.YAxisTitle) {
1486
- yAxis.title.text = settings.YAxisTitle;
1487
- yAxis.title.fontWeight = "bold";
1488
- }
1489
- yAxis.min = 0;
1490
- let dateAxis = ChartInstanceCasted.xAxes.push(new am4charts.DateAxis());
1491
- dateAxis.renderer.minGridDistance = (_f = settings === null || settings === void 0 ? void 0 : settings.MinGridDistance) !== null && _f !== void 0 ? _f : 50;
1492
- dateAxis.startLocation = 0.5;
1493
- dateAxis.endLocation = 0.5;
1494
- if (settings.XAxisTitle) {
1495
- dateAxis.title.text = settings.XAxisTitle;
1496
- dateAxis.title.fontWeight = "bold";
1497
- }
1498
- if (showTicks) {
1499
- dateAxis.renderer.ticks.template.disabled = false;
1500
- dateAxis.renderer.ticks.template.strokeOpacity = 1;
1501
- dateAxis.renderer.ticks.template.stroke = am4core.color("#495C43");
1502
- dateAxis.renderer.ticks.template.strokeWidth = 2;
1503
- dateAxis.renderer.ticks.template.length = 10;
1504
- dateAxis.renderer.ticks.template.location = 0;
1505
- }
1506
- if (!!interval)
1507
- dateAxis.baseInterval = { count: interval.count, timeUnit: interval.timeunit };
1508
- // Unisco il dataset e tiro fuori i dati
1509
- let chartData = [];
1510
- let seriesToMakeCache = {};
1511
- let seriesToMake = [];
1512
- for (let i = 0; i < dataConverted.groups.length; i++) {
1513
- let group = dataConverted.groups[i];
1514
- let dataItem = { date: group.name };
1515
- for (let ii = 0; ii < group.values.length; ii++) {
1516
- let val = group.values[ii];
1517
- dataItem[val.k] = val.v;
1518
- if (!seriesToMakeCache[val.k]) {
1519
- seriesToMakeCache[val.k] = true;
1520
- seriesToMake.push(val.k);
1521
- }
1522
- }
1523
- chartData.push(dataItem);
1524
- }
1525
- ChartInstanceCasted.data = chartData;
1526
- //---------------------------------------------------------
1527
- seriesToMake.forEach(s => { this.createSeries(ChartInstanceCasted, s); });
1528
- ChartInstanceCasted.cursor = new am4charts.XYCursor();
1529
- ChartInstanceCasted.cursor.xAxis = dateAxis;
1530
- dateAxis.events.on("startchanged", t => this.emitSelectionChanged(t, settings));
1531
- dateAxis.events.on("endchanged", t => this.emitSelectionChanged(t, settings));
1532
- return this;
1533
- }
1534
- /** @ignore */
1535
- refreshData(data) {
1536
- //TODO:IMPL
1537
- }
1538
- /** @ignore */
1539
- emitSelectionChanged(ev, settings) {
1540
- if (settings.OnSelectionChangedCallback) {
1541
- this.throttla("selchange", () => {
1542
- var axis = ev.target;
1543
- var start = new Date(axis.minZoomed);
1544
- var end = new Date(axis.maxZoomed);
1545
- var initial = axis.min == axis.minZoomed && axis.max == axis.maxZoomed;
1546
- settings.OnSelectionChangedCallback({ from: start, to: end, initial: initial });
1547
- }, 150);
1548
- }
1549
- }
1550
- /** @ignore */
1551
- createSeries(chart, name) {
1552
- let series = chart.series.push(new am4charts.LineSeries());
1553
- series.dataFields.dateX = "date";
1554
- series.name = name[0].toUpperCase() + name.slice(1);
1555
- series.dataFields.valueY = name;
1556
- series.tooltipText = "[#000]{valueY.value}[/]";
1557
- //series.tooltip.background.fill = am4core.color("#FFF");
1558
- series.tooltip.getStrokeFromObject = true;
1559
- series.tooltip.background.strokeWidth = 3;
1560
- series.tooltip.getFillFromObject = false;
1561
- series.fillOpacity = 0.6;
1562
- series.strokeWidth = 2;
1563
- series.stacked = true;
1564
- return series;
1565
- }
1566
- /** @ignore */
1567
- throttla(id, func, throttleTime) {
1568
- //Se ho la funzione che vuole eseguire ripulisco quel timeout
1569
- if (this.executionTimers[id])
1570
- clearTimeout(this.executionTimers[id]);
1571
- //Ricreo il timeout per eseguire quella funzione dopo throttleTime millisecondi
1572
- this.executionTimers[id] = setTimeout(() => { func(); this.executionTimers[id] = null; }, throttleTime);
1573
- }
1574
- }
1575
-
1576
- /**
1577
- * Classe il cui unico scopo è gestire il setup e rendering di un PieChart
1578
- */
1579
- class PieChartService {
1580
- /** @ignore */
1581
- constructor(Adapter) {
1582
- this.Adapter = Adapter;
1583
- /** @ignore */
1584
- this.ViewAbsoluteValues = true;
1585
- }
1586
- /**
1587
- * Metodo che data una coppia Dati - Impostazioni li utilizza per creare e visualizzare un PieChart
1588
- */
1589
- graphicate(data, settings) {
1590
- var _a, _b, _c, _d;
1591
- if (settings.Timeline) {
1592
- console.error("Timeline not supported for pie chart");
1478
+ console.error("Timeline not supported for pie chart");
1593
1479
  return null;
1594
1480
  }
1595
1481
  //Per evitare di dimenticarmeli e gestire comunque bene gli ngif ecc...
@@ -1671,6 +1557,9 @@ class PieChartService {
1671
1557
  return this;
1672
1558
  }
1673
1559
  /** @ignore */
1560
+ setSelection(from, to) {
1561
+ }
1562
+ /** @ignore */
1674
1563
  refreshData(data) {
1675
1564
  //TODO:IMPL
1676
1565
  }
@@ -1684,15 +1573,13 @@ class PieChartService {
1684
1573
  }
1685
1574
 
1686
1575
  /**
1687
- * Classe il cui unico scopo è gestire il setup e rendering di un Vertical2DChart
1576
+ * Classe il cui unico scopo è gestire il setup e rendering di un VerticalChart
1688
1577
  */
1689
- class Vertical2DChartService {
1578
+ class VerticalChartService {
1690
1579
  /** @ignore */
1691
1580
  constructor(Adapter) {
1692
1581
  this.Adapter = Adapter;
1693
1582
  /** @ignore */
1694
- this.DefaultGroupPaddingPercentage = 5;
1695
- /** @ignore */
1696
1583
  this.dangerZone = 50;
1697
1584
  /** @ignore */
1698
1585
  this.LabelWidth = 150;
@@ -1704,10 +1591,10 @@ class Vertical2DChartService {
1704
1591
  this.DefaultColumnWidthPercentage = 85;
1705
1592
  }
1706
1593
  /**
1707
- * Metodo che data una coppia Dati - Impostazioni li utilizza per creare e visualizzare un Vertical2DChart
1594
+ * Metodo che data una coppia Dati - Impostazioni li utilizza per creare e visualizzare un VerticalChart
1708
1595
  */
1709
1596
  graphicate(data, settings) {
1710
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
1597
+ var _a, _b, _c, _d, _e, _f, _g, _h;
1711
1598
  if (settings.Timeline) {
1712
1599
  console.error("Timeline not supported for vertical chart");
1713
1600
  return null;
@@ -1716,6 +1603,8 @@ class Vertical2DChartService {
1716
1603
  am4core.options.autoDispose = true;
1717
1604
  this.ChartInstance = am4core.create(settings.Name, am4charts.XYChart);
1718
1605
  let ChartInstanceCasted = this.ChartInstance;
1606
+ let dataConverted = this.Adapter ? this.Adapter.adaptDataForVerticalChart(data) : data;
1607
+ ChartInstanceCasted.data = dataConverted.values;
1719
1608
  if (settings.Legend) {
1720
1609
  ChartInstanceCasted.legend = new am4charts.Legend();
1721
1610
  ChartInstanceCasted.legend.position = (_a = settings === null || settings === void 0 ? void 0 : settings.LegendPosition) !== null && _a !== void 0 ? _a : 'right';
@@ -1738,15 +1627,12 @@ class Vertical2DChartService {
1738
1627
  categoryAxis.title.text = settings.XAxisTitle;
1739
1628
  categoryAxis.title.fontWeight = "bold";
1740
1629
  }
1741
- yAxis.min = 0;
1742
- categoryAxis.dataFields.category = 'key';
1743
- categoryAxis.renderer.cellStartLocation = am4core.percent((_f = settings.GroupPaddingPercentage) !== null && _f !== void 0 ? _f : this.DefaultGroupPaddingPercentage).value;
1744
- categoryAxis.renderer.cellEndLocation = am4core.percent(100 - ((_g = settings.GroupPaddingPercentage) !== null && _g !== void 0 ? _g : this.DefaultGroupPaddingPercentage)).value;
1630
+ categoryAxis.dataFields.category = "k";
1745
1631
  categoryAxis.renderer.grid.template.location = 0;
1746
- categoryAxis.renderer.minGridDistance = (_h = settings === null || settings === void 0 ? void 0 : settings.MinGridDistance) !== null && _h !== void 0 ? _h : 30;
1632
+ categoryAxis.renderer.minGridDistance = (_f = settings === null || settings === void 0 ? void 0 : settings.MinGridDistance) !== null && _f !== void 0 ? _f : 30;
1747
1633
  let label = categoryAxis.renderer.labels.template;
1748
1634
  label.truncate = true;
1749
- label.maxWidth = (_j = settings.LabelWidth) !== null && _j !== void 0 ? _j : this.LabelWidth;
1635
+ label.maxWidth = (_g = settings.LabelWidth) !== null && _g !== void 0 ? _g : this.LabelWidth;
1750
1636
  label.tooltipText = "{category}";
1751
1637
  if ((settings === null || settings === void 0 ? void 0 : settings.AdaptLabelSizeAndOrientation) == null ? true : settings === null || settings === void 0 ? void 0 : settings.AdaptLabelSizeAndOrientation) {
1752
1638
  categoryAxis.events.on("sizechanged", (ev) => {
@@ -1770,88 +1656,38 @@ class Vertical2DChartService {
1770
1656
  }
1771
1657
  });
1772
1658
  }
1773
- let dataPreConverted = this.Adapter ? this.Adapter.adaptDataForVertical2DChart(data) : data;
1774
- let dataConverted = [];
1775
- for (let i = 0; i < dataPreConverted.groups.length; i++) {
1776
- let item = dataPreConverted.groups[i];
1777
- let obj = { key: item.name };
1778
- for (let p = 0; p < item.values.length; p++) {
1779
- let value = item.values[p];
1780
- obj[value.k] = value.v;
1781
- }
1782
- dataConverted.push(obj);
1783
- }
1784
- ChartInstanceCasted.data = dataConverted;
1785
- if (dataPreConverted.colorInfos)
1786
- ChartInstanceCasted.colors.list = dataPreConverted.colorInfos.map(c => am4core.color(c.color));
1787
- //Prendo la prima categoria e mi baso sulle proprietà per dfeinire le serie
1788
- for (let prop in dataConverted[0])
1789
- if (prop !== "key")
1790
- this.createSeries(ChartInstanceCasted, settings, prop, prop);
1659
+ // Create series
1660
+ let series = ChartInstanceCasted.series.push(new am4charts.ColumnSeries());
1661
+ series.dataFields.valueY = "v";
1662
+ series.dataFields.categoryX = "k";
1663
+ series.name = "";
1664
+ series.columns.template.tooltipText = "{categoryX}: [bold]{valueY}[/]";
1665
+ series.columns.template.fillOpacity = .8;
1666
+ series.columns.template.width = am4core.percent((_h = settings.ColumnWidthPercentage) !== null && _h !== void 0 ? _h : this.DefaultColumnWidthPercentage);
1667
+ let columnTemplate = series.columns.template;
1668
+ columnTemplate.strokeWidth = 2;
1669
+ columnTemplate.strokeOpacity = 1;
1791
1670
  return this;
1792
1671
  }
1793
1672
  /** @ignore */
1794
- refreshData(data) {
1795
- //TODO:IMPL
1673
+ setSelection(from, to) {
1796
1674
  }
1797
1675
  /** @ignore */
1798
- createSeries(chart, settings, value, name) {
1799
- var _a;
1800
- let series = chart.series.push(new am4charts.ColumnSeries());
1801
- series.dataFields.valueY = value;
1802
- series.dataFields.categoryX = 'key';
1803
- series.name = name;
1804
- series.columns.template.tooltipText = "{name} {categoryX}: [bold]{valueY}[/]";
1805
- series.columns.template.fillOpacity = .8;
1806
- series.columns.template.width = am4core.percent((_a = settings.ColumnWidthPercentage) !== null && _a !== void 0 ? _a : this.DefaultColumnWidthPercentage);
1807
- series.events.on("hidden", () => this.arrangeColumns);
1808
- series.events.on("shown", () => this.arrangeColumns);
1809
- return series;
1810
- }
1811
- /** @ignore */
1812
- arrangeColumns() {
1813
- let ChartInstanceCasted = this.ChartInstance;
1814
- let series = ChartInstanceCasted.series.getIndex(0);
1815
- let xAxis = ChartInstanceCasted.xAxes.getIndex(0);
1816
- let w = 1 - xAxis.renderer.cellStartLocation - (1 - xAxis.renderer.cellEndLocation);
1817
- if (series.dataItems.length > 1) {
1818
- let x0 = xAxis.getX(series.dataItems.getIndex(0), "categoryX");
1819
- let x1 = xAxis.getX(series.dataItems.getIndex(1), "categoryX");
1820
- let delta = ((x1 - x0) / ChartInstanceCasted.series.length) * w;
1821
- if (am4core.isNumber(delta)) {
1822
- let middle = ChartInstanceCasted.series.length / 2;
1823
- let newIndex = 0;
1824
- ChartInstanceCasted.series.each((series) => {
1825
- if (!series.isHidden && !series.isHiding) {
1826
- series.dummyData = newIndex;
1827
- newIndex++;
1828
- }
1829
- else {
1830
- series.dummyData = ChartInstanceCasted.series.indexOf(series);
1831
- }
1832
- });
1833
- let visibleCount = newIndex;
1834
- let newMiddle = visibleCount / 2;
1835
- ChartInstanceCasted.series.each((series) => {
1836
- let trueIndex = ChartInstanceCasted.series.indexOf(series);
1837
- let newIndex = series.dummyData;
1838
- let dx = (newIndex - trueIndex + middle - newMiddle) * delta;
1839
- series.animate({ property: "dx", to: dx }, series.interpolationDuration, series.interpolationEasing);
1840
- series.bulletsContainer.animate({ property: "dx", to: dx }, series.interpolationDuration, series.interpolationEasing);
1841
- });
1842
- }
1843
- }
1676
+ refreshData(data) {
1677
+ //TODO:IMPL
1844
1678
  }
1845
1679
  }
1846
1680
 
1847
1681
  /**
1848
- * Classe il cui unico scopo è gestire il setup e rendering di un VerticalChart
1682
+ * Classe il cui unico scopo è gestire il setup e rendering di un Vertical2DChart
1849
1683
  */
1850
- class VerticalChartService {
1684
+ class Vertical2DChartService {
1851
1685
  /** @ignore */
1852
1686
  constructor(Adapter) {
1853
1687
  this.Adapter = Adapter;
1854
1688
  /** @ignore */
1689
+ this.DefaultGroupPaddingPercentage = 5;
1690
+ /** @ignore */
1855
1691
  this.dangerZone = 50;
1856
1692
  /** @ignore */
1857
1693
  this.LabelWidth = 150;
@@ -1863,10 +1699,10 @@ class VerticalChartService {
1863
1699
  this.DefaultColumnWidthPercentage = 85;
1864
1700
  }
1865
1701
  /**
1866
- * Metodo che data una coppia Dati - Impostazioni li utilizza per creare e visualizzare un VerticalChart
1702
+ * Metodo che data una coppia Dati - Impostazioni li utilizza per creare e visualizzare un Vertical2DChart
1867
1703
  */
1868
1704
  graphicate(data, settings) {
1869
- var _a, _b, _c, _d, _e, _f, _g, _h;
1705
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
1870
1706
  if (settings.Timeline) {
1871
1707
  console.error("Timeline not supported for vertical chart");
1872
1708
  return null;
@@ -1875,8 +1711,6 @@ class VerticalChartService {
1875
1711
  am4core.options.autoDispose = true;
1876
1712
  this.ChartInstance = am4core.create(settings.Name, am4charts.XYChart);
1877
1713
  let ChartInstanceCasted = this.ChartInstance;
1878
- let dataConverted = this.Adapter ? this.Adapter.adaptDataForVerticalChart(data) : data;
1879
- ChartInstanceCasted.data = dataConverted.values;
1880
1714
  if (settings.Legend) {
1881
1715
  ChartInstanceCasted.legend = new am4charts.Legend();
1882
1716
  ChartInstanceCasted.legend.position = (_a = settings === null || settings === void 0 ? void 0 : settings.LegendPosition) !== null && _a !== void 0 ? _a : 'right';
@@ -1899,12 +1733,15 @@ class VerticalChartService {
1899
1733
  categoryAxis.title.text = settings.XAxisTitle;
1900
1734
  categoryAxis.title.fontWeight = "bold";
1901
1735
  }
1902
- categoryAxis.dataFields.category = "k";
1736
+ yAxis.min = 0;
1737
+ categoryAxis.dataFields.category = 'key';
1738
+ categoryAxis.renderer.cellStartLocation = am4core.percent((_f = settings.GroupPaddingPercentage) !== null && _f !== void 0 ? _f : this.DefaultGroupPaddingPercentage).value;
1739
+ categoryAxis.renderer.cellEndLocation = am4core.percent(100 - ((_g = settings.GroupPaddingPercentage) !== null && _g !== void 0 ? _g : this.DefaultGroupPaddingPercentage)).value;
1903
1740
  categoryAxis.renderer.grid.template.location = 0;
1904
- categoryAxis.renderer.minGridDistance = (_f = settings === null || settings === void 0 ? void 0 : settings.MinGridDistance) !== null && _f !== void 0 ? _f : 30;
1741
+ categoryAxis.renderer.minGridDistance = (_h = settings === null || settings === void 0 ? void 0 : settings.MinGridDistance) !== null && _h !== void 0 ? _h : 30;
1905
1742
  let label = categoryAxis.renderer.labels.template;
1906
1743
  label.truncate = true;
1907
- label.maxWidth = (_g = settings.LabelWidth) !== null && _g !== void 0 ? _g : this.LabelWidth;
1744
+ label.maxWidth = (_j = settings.LabelWidth) !== null && _j !== void 0 ? _j : this.LabelWidth;
1908
1745
  label.tooltipText = "{category}";
1909
1746
  if ((settings === null || settings === void 0 ? void 0 : settings.AdaptLabelSizeAndOrientation) == null ? true : settings === null || settings === void 0 ? void 0 : settings.AdaptLabelSizeAndOrientation) {
1910
1747
  categoryAxis.events.on("sizechanged", (ev) => {
@@ -1928,23 +1765,81 @@ class VerticalChartService {
1928
1765
  }
1929
1766
  });
1930
1767
  }
1931
- // Create series
1932
- let series = ChartInstanceCasted.series.push(new am4charts.ColumnSeries());
1933
- series.dataFields.valueY = "v";
1934
- series.dataFields.categoryX = "k";
1935
- series.name = "";
1936
- series.columns.template.tooltipText = "{categoryX}: [bold]{valueY}[/]";
1937
- series.columns.template.fillOpacity = .8;
1938
- series.columns.template.width = am4core.percent((_h = settings.ColumnWidthPercentage) !== null && _h !== void 0 ? _h : this.DefaultColumnWidthPercentage);
1939
- let columnTemplate = series.columns.template;
1940
- columnTemplate.strokeWidth = 2;
1941
- columnTemplate.strokeOpacity = 1;
1768
+ let dataPreConverted = this.Adapter ? this.Adapter.adaptDataForVertical2DChart(data) : data;
1769
+ let dataConverted = [];
1770
+ for (let i = 0; i < dataPreConverted.groups.length; i++) {
1771
+ let item = dataPreConverted.groups[i];
1772
+ let obj = { key: item.name };
1773
+ for (let p = 0; p < item.values.length; p++) {
1774
+ let value = item.values[p];
1775
+ obj[value.k] = value.v;
1776
+ }
1777
+ dataConverted.push(obj);
1778
+ }
1779
+ ChartInstanceCasted.data = dataConverted;
1780
+ if (dataPreConverted.colorInfos)
1781
+ ChartInstanceCasted.colors.list = dataPreConverted.colorInfos.map(c => am4core.color(c.color));
1782
+ //Prendo la prima categoria e mi baso sulle proprietà per dfeinire le serie
1783
+ for (let prop in dataConverted[0])
1784
+ if (prop !== "key")
1785
+ this.createSeries(ChartInstanceCasted, settings, prop, prop);
1942
1786
  return this;
1943
1787
  }
1944
1788
  /** @ignore */
1789
+ setSelection(from, to) {
1790
+ }
1791
+ /** @ignore */
1945
1792
  refreshData(data) {
1946
1793
  //TODO:IMPL
1947
1794
  }
1795
+ /** @ignore */
1796
+ createSeries(chart, settings, value, name) {
1797
+ var _a;
1798
+ let series = chart.series.push(new am4charts.ColumnSeries());
1799
+ series.dataFields.valueY = value;
1800
+ series.dataFields.categoryX = 'key';
1801
+ series.name = name;
1802
+ series.columns.template.tooltipText = "{name} {categoryX}: [bold]{valueY}[/]";
1803
+ series.columns.template.fillOpacity = .8;
1804
+ series.columns.template.width = am4core.percent((_a = settings.ColumnWidthPercentage) !== null && _a !== void 0 ? _a : this.DefaultColumnWidthPercentage);
1805
+ series.events.on("hidden", () => this.arrangeColumns);
1806
+ series.events.on("shown", () => this.arrangeColumns);
1807
+ return series;
1808
+ }
1809
+ /** @ignore */
1810
+ arrangeColumns() {
1811
+ let ChartInstanceCasted = this.ChartInstance;
1812
+ let series = ChartInstanceCasted.series.getIndex(0);
1813
+ let xAxis = ChartInstanceCasted.xAxes.getIndex(0);
1814
+ let w = 1 - xAxis.renderer.cellStartLocation - (1 - xAxis.renderer.cellEndLocation);
1815
+ if (series.dataItems.length > 1) {
1816
+ let x0 = xAxis.getX(series.dataItems.getIndex(0), "categoryX");
1817
+ let x1 = xAxis.getX(series.dataItems.getIndex(1), "categoryX");
1818
+ let delta = ((x1 - x0) / ChartInstanceCasted.series.length) * w;
1819
+ if (am4core.isNumber(delta)) {
1820
+ let middle = ChartInstanceCasted.series.length / 2;
1821
+ let newIndex = 0;
1822
+ ChartInstanceCasted.series.each((series) => {
1823
+ if (!series.isHidden && !series.isHiding) {
1824
+ series.dummyData = newIndex;
1825
+ newIndex++;
1826
+ }
1827
+ else {
1828
+ series.dummyData = ChartInstanceCasted.series.indexOf(series);
1829
+ }
1830
+ });
1831
+ let visibleCount = newIndex;
1832
+ let newMiddle = visibleCount / 2;
1833
+ ChartInstanceCasted.series.each((series) => {
1834
+ let trueIndex = ChartInstanceCasted.series.indexOf(series);
1835
+ let newIndex = series.dummyData;
1836
+ let dx = (newIndex - trueIndex + middle - newMiddle) * delta;
1837
+ series.animate({ property: "dx", to: dx }, series.interpolationDuration, series.interpolationEasing);
1838
+ series.bulletsContainer.animate({ property: "dx", to: dx }, series.interpolationDuration, series.interpolationEasing);
1839
+ });
1840
+ }
1841
+ }
1842
+ }
1948
1843
  }
1949
1844
 
1950
1845
  /**
@@ -2051,6 +1946,9 @@ class VerticalStackedChartService {
2051
1946
  return this;
2052
1947
  }
2053
1948
  /** @ignore */
1949
+ setSelection(from, to) {
1950
+ }
1951
+ /** @ignore */
2054
1952
  refreshData(data) {
2055
1953
  //TODO:IMPL
2056
1954
  }
@@ -2072,6 +1970,142 @@ class VerticalStackedChartService {
2072
1970
  }
2073
1971
  }
2074
1972
 
1973
+ /**
1974
+ * Classe il cui unico scopo è gestire il setup e rendering di un AreaChart
1975
+ */
1976
+ class AreaChartService {
1977
+ /** @ignore */
1978
+ constructor(Adapter) {
1979
+ this.Adapter = Adapter;
1980
+ //******************** Funzione di throttling per non spammare richieste in caso di animazioni attivate
1981
+ //TODO: spostarla in un metodo di utilità (esfaenza/extensions)
1982
+ /** @ignore */
1983
+ this.executionTimers = {};
1984
+ }
1985
+ /**
1986
+ * Metodo che data una coppia Dati - Impostazioni li utilizza per creare e visualizzare un AreaChart
1987
+ */
1988
+ graphicate(data, settings) {
1989
+ var _a, _b, _c, _d, _e, _f;
1990
+ if (settings.Timeline) {
1991
+ console.error("Timeline not supported for area chart");
1992
+ return null;
1993
+ }
1994
+ let dataConverted = this.Adapter ? this.Adapter.adaptDataForAreaChart(data) : data;
1995
+ let showTicks = settings.ShowTicks == null ? true : settings === null || settings === void 0 ? void 0 : settings.ShowTicks;
1996
+ let interval = dataConverted.interval;
1997
+ //Per evitare di dimenticarmeli e gestire comunque bene gli ngif ecc...
1998
+ am4core.options.autoDispose = true;
1999
+ this.ChartInstance = am4core.create(settings.Name, am4charts.XYChart);
2000
+ let ChartInstanceCasted = this.ChartInstance;
2001
+ if (settings.Legend) {
2002
+ ChartInstanceCasted.legend = new am4charts.Legend();
2003
+ ChartInstanceCasted.legend.position = (_a = settings === null || settings === void 0 ? void 0 : settings.LegendPosition) !== null && _a !== void 0 ? _a : 'right';
2004
+ ChartInstanceCasted.legend.itemContainers.template.tooltipText = "{category}";
2005
+ if (settings.LegendPadding) {
2006
+ let template = this.ChartInstance.legend.itemContainers.template;
2007
+ template.paddingTop = (_b = settings.LegendPadding.top) !== null && _b !== void 0 ? _b : 0;
2008
+ template.paddingBottom = (_c = settings.LegendPadding.bottom) !== null && _c !== void 0 ? _c : 0;
2009
+ template.paddingLeft = (_d = settings.LegendPadding.left) !== null && _d !== void 0 ? _d : 0;
2010
+ template.paddingRight = (_e = settings.LegendPadding.right) !== null && _e !== void 0 ? _e : 0;
2011
+ }
2012
+ }
2013
+ let yAxis = ChartInstanceCasted.yAxes.push(new am4charts.ValueAxis());
2014
+ yAxis.tooltip.disabled = true;
2015
+ if (settings.YAxisTitle) {
2016
+ yAxis.title.text = settings.YAxisTitle;
2017
+ yAxis.title.fontWeight = "bold";
2018
+ }
2019
+ yAxis.min = 0;
2020
+ let dateAxis = ChartInstanceCasted.xAxes.push(new am4charts.DateAxis());
2021
+ dateAxis.renderer.minGridDistance = (_f = settings === null || settings === void 0 ? void 0 : settings.MinGridDistance) !== null && _f !== void 0 ? _f : 50;
2022
+ dateAxis.startLocation = 0.5;
2023
+ dateAxis.endLocation = 0.5;
2024
+ if (settings.XAxisTitle) {
2025
+ dateAxis.title.text = settings.XAxisTitle;
2026
+ dateAxis.title.fontWeight = "bold";
2027
+ }
2028
+ if (showTicks) {
2029
+ dateAxis.renderer.ticks.template.disabled = false;
2030
+ dateAxis.renderer.ticks.template.strokeOpacity = 1;
2031
+ dateAxis.renderer.ticks.template.stroke = am4core.color("#495C43");
2032
+ dateAxis.renderer.ticks.template.strokeWidth = 2;
2033
+ dateAxis.renderer.ticks.template.length = 10;
2034
+ dateAxis.renderer.ticks.template.location = 0;
2035
+ }
2036
+ if (!!interval)
2037
+ dateAxis.baseInterval = { count: interval.count, timeUnit: interval.timeunit };
2038
+ // Unisco il dataset e tiro fuori i dati
2039
+ let chartData = [];
2040
+ let seriesToMakeCache = {};
2041
+ let seriesToMake = [];
2042
+ for (let i = 0; i < dataConverted.groups.length; i++) {
2043
+ let group = dataConverted.groups[i];
2044
+ let dataItem = { date: group.name };
2045
+ for (let ii = 0; ii < group.values.length; ii++) {
2046
+ let val = group.values[ii];
2047
+ dataItem[val.k] = val.v;
2048
+ if (!seriesToMakeCache[val.k]) {
2049
+ seriesToMakeCache[val.k] = true;
2050
+ seriesToMake.push(val.k);
2051
+ }
2052
+ }
2053
+ chartData.push(dataItem);
2054
+ }
2055
+ ChartInstanceCasted.data = chartData;
2056
+ //---------------------------------------------------------
2057
+ seriesToMake.forEach(s => { this.createSeries(ChartInstanceCasted, s); });
2058
+ ChartInstanceCasted.cursor = new am4charts.XYCursor();
2059
+ ChartInstanceCasted.cursor.xAxis = dateAxis;
2060
+ dateAxis.events.on("startchanged", t => this.emitSelectionChanged(t, settings));
2061
+ dateAxis.events.on("endchanged", t => this.emitSelectionChanged(t, settings));
2062
+ return this;
2063
+ }
2064
+ /** @ignore */
2065
+ setSelection(from, to) {
2066
+ }
2067
+ /** @ignore */
2068
+ refreshData(data) {
2069
+ //TODO:IMPL
2070
+ }
2071
+ /** @ignore */
2072
+ emitSelectionChanged(ev, settings) {
2073
+ if (settings.OnSelectionChangedCallback) {
2074
+ this.throttla("selchange", () => {
2075
+ var axis = ev.target;
2076
+ var start = new Date(axis.minZoomed);
2077
+ var end = new Date(axis.maxZoomed);
2078
+ var initial = axis.min == axis.minZoomed && axis.max == axis.maxZoomed;
2079
+ settings.OnSelectionChangedCallback({ from: start, to: end, initial: initial });
2080
+ }, 150);
2081
+ }
2082
+ }
2083
+ /** @ignore */
2084
+ createSeries(chart, name) {
2085
+ let series = chart.series.push(new am4charts.LineSeries());
2086
+ series.dataFields.dateX = "date";
2087
+ series.name = name[0].toUpperCase() + name.slice(1);
2088
+ series.dataFields.valueY = name;
2089
+ series.tooltipText = "[#000]{valueY.value}[/]";
2090
+ //series.tooltip.background.fill = am4core.color("#FFF");
2091
+ series.tooltip.getStrokeFromObject = true;
2092
+ series.tooltip.background.strokeWidth = 3;
2093
+ series.tooltip.getFillFromObject = false;
2094
+ series.fillOpacity = 0.6;
2095
+ series.strokeWidth = 2;
2096
+ series.stacked = true;
2097
+ return series;
2098
+ }
2099
+ /** @ignore */
2100
+ throttla(id, func, throttleTime) {
2101
+ //Se ho la funzione che vuole eseguire ripulisco quel timeout
2102
+ if (this.executionTimers[id])
2103
+ clearTimeout(this.executionTimers[id]);
2104
+ //Ricreo il timeout per eseguire quella funzione dopo throttleTime millisecondi
2105
+ this.executionTimers[id] = setTimeout(() => { func(); this.executionTimers[id] = null; }, throttleTime);
2106
+ }
2107
+ }
2108
+
2075
2109
  /**
2076
2110
  * Componente specifico per la graficazione di un qualsiasi tipo di grafico.
2077
2111
  *
@@ -2145,13 +2179,13 @@ class EsChartComponent extends BaseChartComponent {
2145
2179
  }
2146
2180
  }
2147
2181
  }
2148
- EsChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsChartComponent, deps: [{ token: i0.ElementRef }, { token: ChartLoader }, { token: ChartDispatcher }, { token: i2.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 });
2149
- EsChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: EsChartComponent, selector: "es-chart", inputs: { Type: "Type", Data: "Data", DataArray: "DataArray" }, usesInheritance: true, ngImport: i0, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"], components: [{ type: PageChartSelector, selector: "chart-pager", inputs: ["Items", "Dtos", "BrowseDelayMs", "StartIndex"], outputs: ["onPageChange"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2182
+ 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 });
2183
+ EsChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: EsChartComponent, selector: "es-chart", inputs: { Type: "Type", Data: "Data", DataArray: "DataArray" }, usesInheritance: true, ngImport: i0, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"], components: [{ type: PageChartSelector, selector: "chart-pager", inputs: ["Items", "Dtos", "BrowseDelayMs", "StartIndex"], outputs: ["onPageChange"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2150
2184
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsChartComponent, decorators: [{
2151
2185
  type: Component,
2152
2186
  args: [{ selector: 'es-chart', changeDetection: ChangeDetectionStrategy.OnPush, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"] }]
2153
2187
  }], ctorParameters: function () {
2154
- return [{ type: i0.ElementRef }, { type: ChartLoader }, { type: ChartDispatcher }, { type: i2.DateService }, { type: BaseAdapter }, { type: i0.NgZone }, { type: Object, decorators: [{
2188
+ return [{ type: i0.ElementRef }, { type: ChartLoader }, { type: ChartDispatcher }, { type: i3.DateService }, { type: BaseAdapter }, { type: i0.NgZone }, { type: Object, decorators: [{
2155
2189
  type: Inject,
2156
2190
  args: [PLATFORM_ID]
2157
2191
  }] }, { type: undefined, decorators: [{
@@ -2219,7 +2253,7 @@ class EsAreaChartComponent extends BaseChartComponent {
2219
2253
  }
2220
2254
  }
2221
2255
  EsAreaChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsAreaChartComponent, deps: [{ token: i0.ElementRef }, { token: ChartLoader }, { token: ChartDispatcher }, { token: BaseAdapter }, { token: i0.NgZone }, { token: PLATFORM_ID }, { token: ESC_LOGS }, { token: ESC_ANIMATIONS }, { token: ESC_LOCALE }, { token: ESC_THEME }], target: i0.ɵɵFactoryTarget.Component });
2222
- EsAreaChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: EsAreaChartComponent, selector: "es-area-chart", inputs: { Data: "Data", DataArray: "DataArray" }, usesInheritance: true, ngImport: i0, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"], components: [{ type: PageChartSelector, selector: "chart-pager", inputs: ["Items", "Dtos", "BrowseDelayMs", "StartIndex"], outputs: ["onPageChange"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2256
+ EsAreaChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: EsAreaChartComponent, selector: "es-area-chart", inputs: { Data: "Data", DataArray: "DataArray" }, usesInheritance: true, ngImport: i0, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"], components: [{ type: PageChartSelector, selector: "chart-pager", inputs: ["Items", "Dtos", "BrowseDelayMs", "StartIndex"], outputs: ["onPageChange"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2223
2257
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsAreaChartComponent, decorators: [{
2224
2258
  type: Component,
2225
2259
  args: [{ selector: 'es-area-chart', changeDetection: ChangeDetectionStrategy.OnPush, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"] }]
@@ -2300,13 +2334,13 @@ class EsLineChartComponent extends BaseChartComponent {
2300
2334
  return new LineChartService(this.adapter, this.dateService).graphicate(this.Data, settingsCasted);
2301
2335
  }
2302
2336
  }
2303
- EsLineChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsLineChartComponent, deps: [{ token: i0.ElementRef }, { token: ChartLoader }, { token: ChartDispatcher }, { token: BaseAdapter }, { token: i2.DateService }, { token: i0.NgZone }, { token: PLATFORM_ID }, { token: ESC_LOGS }, { token: ESC_ANIMATIONS }, { token: ESC_LOCALE }, { token: ESC_THEME }], target: i0.ɵɵFactoryTarget.Component });
2304
- EsLineChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: EsLineChartComponent, selector: "es-line-chart", inputs: { Data: "Data", DataArray: "DataArray", Step: "Step", DataGroupBucketSize: "DataGroupBucketSize", DataGroupingThreshold: "DataGroupingThreshold", StrokeSize: "StrokeSize", AllowGaps: "AllowGaps", MergeDatasets: "MergeDatasets", FinalInstants: "FinalInstants", Min: "Min", Max: "Max", Fill: "Fill" }, usesInheritance: true, ngImport: i0, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"], components: [{ type: PageChartSelector, selector: "chart-pager", inputs: ["Items", "Dtos", "BrowseDelayMs", "StartIndex"], outputs: ["onPageChange"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2337
+ 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 });
2338
+ EsLineChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: EsLineChartComponent, selector: "es-line-chart", inputs: { Data: "Data", DataArray: "DataArray", Step: "Step", DataGroupBucketSize: "DataGroupBucketSize", DataGroupingThreshold: "DataGroupingThreshold", StrokeSize: "StrokeSize", AllowGaps: "AllowGaps", MergeDatasets: "MergeDatasets", FinalInstants: "FinalInstants", Min: "Min", Max: "Max", Fill: "Fill" }, usesInheritance: true, ngImport: i0, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"], components: [{ type: PageChartSelector, selector: "chart-pager", inputs: ["Items", "Dtos", "BrowseDelayMs", "StartIndex"], outputs: ["onPageChange"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2305
2339
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsLineChartComponent, decorators: [{
2306
2340
  type: Component,
2307
2341
  args: [{ selector: 'es-line-chart', changeDetection: ChangeDetectionStrategy.OnPush, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"] }]
2308
2342
  }], ctorParameters: function () {
2309
- return [{ type: i0.ElementRef }, { type: ChartLoader }, { type: ChartDispatcher }, { type: BaseAdapter }, { type: i2.DateService }, { type: i0.NgZone }, { type: Object, decorators: [{
2343
+ return [{ type: i0.ElementRef }, { type: ChartLoader }, { type: ChartDispatcher }, { type: BaseAdapter }, { type: i3.DateService }, { type: i0.NgZone }, { type: Object, decorators: [{
2310
2344
  type: Inject,
2311
2345
  args: [PLATFORM_ID]
2312
2346
  }] }, { type: undefined, decorators: [{
@@ -2399,7 +2433,7 @@ class EsPieChartComponent extends BaseChartComponent {
2399
2433
  }
2400
2434
  }
2401
2435
  EsPieChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsPieChartComponent, deps: [{ token: i0.ElementRef }, { token: ChartLoader }, { token: ChartDispatcher }, { token: BaseAdapter }, { token: i0.NgZone }, { token: PLATFORM_ID }, { token: ESC_LOGS }, { token: ESC_ANIMATIONS }, { token: ESC_LOCALE }, { token: ESC_THEME }], target: i0.ɵɵFactoryTarget.Component });
2402
- EsPieChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: EsPieChartComponent, selector: "es-pie-chart", inputs: { Data: "Data", DataArray: "DataArray", HideZeroes: "HideZeroes", Mode3D: "Mode3D", DonutRadiusPercentage: "DonutRadiusPercentage", LabelsWrap: "LabelsWrap", LabelsTruncate: "LabelsTruncate", LabelsWidth: "LabelsWidth", LabelsVisible: "LabelsVisible" }, usesInheritance: true, ngImport: i0, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"], components: [{ type: PageChartSelector, selector: "chart-pager", inputs: ["Items", "Dtos", "BrowseDelayMs", "StartIndex"], outputs: ["onPageChange"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2436
+ EsPieChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: EsPieChartComponent, selector: "es-pie-chart", inputs: { Data: "Data", DataArray: "DataArray", HideZeroes: "HideZeroes", Mode3D: "Mode3D", DonutRadiusPercentage: "DonutRadiusPercentage", LabelsWrap: "LabelsWrap", LabelsTruncate: "LabelsTruncate", LabelsWidth: "LabelsWidth", LabelsVisible: "LabelsVisible" }, usesInheritance: true, ngImport: i0, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"], components: [{ type: PageChartSelector, selector: "chart-pager", inputs: ["Items", "Dtos", "BrowseDelayMs", "StartIndex"], outputs: ["onPageChange"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2403
2437
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsPieChartComponent, decorators: [{
2404
2438
  type: Component,
2405
2439
  args: [{ selector: 'es-pie-chart', changeDetection: ChangeDetectionStrategy.OnPush, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"] }]
@@ -2490,7 +2524,7 @@ class EsVertical2DChartComponent extends BaseChartComponent {
2490
2524
  }
2491
2525
  }
2492
2526
  EsVertical2DChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsVertical2DChartComponent, deps: [{ token: i0.ElementRef }, { token: ChartLoader }, { token: ChartDispatcher }, { token: BaseAdapter }, { token: i0.NgZone }, { token: PLATFORM_ID }, { token: ESC_LOGS }, { token: ESC_ANIMATIONS }, { token: ESC_LOCALE }, { token: ESC_THEME }], target: i0.ɵɵFactoryTarget.Component });
2493
- EsVertical2DChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: EsVertical2DChartComponent, selector: "es-vertical-2d-chart", inputs: { Data: "Data", DataArray: "DataArray", ColumnWidthPercentage: "ColumnWidthPercentage", GroupPaddingPercentage: "GroupPaddingPercentage", LabelWidth: "LabelWidth", LabelVerticalOrientationCutoffWidth: "LabelVerticalOrientationCutoffWidth", LabelRightWhenCompressed: "LabelRightWhenCompressed", LabelTopWhenCompressed: "LabelTopWhenCompressed" }, usesInheritance: true, ngImport: i0, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"], components: [{ type: PageChartSelector, selector: "chart-pager", inputs: ["Items", "Dtos", "BrowseDelayMs", "StartIndex"], outputs: ["onPageChange"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2527
+ EsVertical2DChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: EsVertical2DChartComponent, selector: "es-vertical-2d-chart", inputs: { Data: "Data", DataArray: "DataArray", ColumnWidthPercentage: "ColumnWidthPercentage", GroupPaddingPercentage: "GroupPaddingPercentage", LabelWidth: "LabelWidth", LabelVerticalOrientationCutoffWidth: "LabelVerticalOrientationCutoffWidth", LabelRightWhenCompressed: "LabelRightWhenCompressed", LabelTopWhenCompressed: "LabelTopWhenCompressed" }, usesInheritance: true, ngImport: i0, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"], components: [{ type: PageChartSelector, selector: "chart-pager", inputs: ["Items", "Dtos", "BrowseDelayMs", "StartIndex"], outputs: ["onPageChange"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2494
2528
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsVertical2DChartComponent, decorators: [{
2495
2529
  type: Component,
2496
2530
  args: [{ selector: 'es-vertical-2d-chart', changeDetection: ChangeDetectionStrategy.OnPush, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"] }]
@@ -2578,7 +2612,7 @@ class EsVerticalChartComponent extends BaseChartComponent {
2578
2612
  }
2579
2613
  }
2580
2614
  EsVerticalChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsVerticalChartComponent, deps: [{ token: i0.ElementRef }, { token: ChartLoader }, { token: ChartDispatcher }, { token: BaseAdapter }, { token: i0.NgZone }, { token: PLATFORM_ID }, { token: ESC_LOGS }, { token: ESC_ANIMATIONS }, { token: ESC_LOCALE }, { token: ESC_THEME }], target: i0.ɵɵFactoryTarget.Component });
2581
- EsVerticalChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: EsVerticalChartComponent, selector: "es-vertical-chart", inputs: { Data: "Data", DataArray: "DataArray", ColumnWidthPercentage: "ColumnWidthPercentage", LabelWidth: "LabelWidth", LabelVerticalOrientationCutoffWidth: "LabelVerticalOrientationCutoffWidth", LabelRightWhenCompressed: "LabelRightWhenCompressed", LabelTopWhenCompressed: "LabelTopWhenCompressed" }, usesInheritance: true, ngImport: i0, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"], components: [{ type: PageChartSelector, selector: "chart-pager", inputs: ["Items", "Dtos", "BrowseDelayMs", "StartIndex"], outputs: ["onPageChange"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2615
+ EsVerticalChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: EsVerticalChartComponent, selector: "es-vertical-chart", inputs: { Data: "Data", DataArray: "DataArray", ColumnWidthPercentage: "ColumnWidthPercentage", LabelWidth: "LabelWidth", LabelVerticalOrientationCutoffWidth: "LabelVerticalOrientationCutoffWidth", LabelRightWhenCompressed: "LabelRightWhenCompressed", LabelTopWhenCompressed: "LabelTopWhenCompressed" }, usesInheritance: true, ngImport: i0, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"], components: [{ type: PageChartSelector, selector: "chart-pager", inputs: ["Items", "Dtos", "BrowseDelayMs", "StartIndex"], outputs: ["onPageChange"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2582
2616
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsVerticalChartComponent, decorators: [{
2583
2617
  type: Component,
2584
2618
  args: [{ selector: 'es-vertical-chart', changeDetection: ChangeDetectionStrategy.OnPush, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"] }]
@@ -2664,7 +2698,7 @@ class EsVerticalStackedChartComponent extends BaseChartComponent {
2664
2698
  }
2665
2699
  }
2666
2700
  EsVerticalStackedChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsVerticalStackedChartComponent, deps: [{ token: i0.ElementRef }, { token: ChartLoader }, { token: ChartDispatcher }, { token: BaseAdapter }, { token: i0.NgZone }, { token: PLATFORM_ID }, { token: ESC_LOGS }, { token: ESC_ANIMATIONS }, { token: ESC_LOCALE }, { token: ESC_THEME }], target: i0.ɵɵFactoryTarget.Component });
2667
- EsVerticalStackedChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: EsVerticalStackedChartComponent, selector: "es-vertical-stacked-chart", inputs: { Data: "Data", DataArray: "DataArray", ColumnWidthPercentage: "ColumnWidthPercentage", LabelWidth: "LabelWidth", LabelVerticalOrientationCutoffWidth: "LabelVerticalOrientationCutoffWidth", LabelRightWhenCompressed: "LabelRightWhenCompressed", LabelTopWhenCompressed: "LabelTopWhenCompressed" }, usesInheritance: true, ngImport: i0, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"], components: [{ type: PageChartSelector, selector: "chart-pager", inputs: ["Items", "Dtos", "BrowseDelayMs", "StartIndex"], outputs: ["onPageChange"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2701
+ EsVerticalStackedChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: EsVerticalStackedChartComponent, selector: "es-vertical-stacked-chart", inputs: { Data: "Data", DataArray: "DataArray", ColumnWidthPercentage: "ColumnWidthPercentage", LabelWidth: "LabelWidth", LabelVerticalOrientationCutoffWidth: "LabelVerticalOrientationCutoffWidth", LabelRightWhenCompressed: "LabelRightWhenCompressed", LabelTopWhenCompressed: "LabelTopWhenCompressed" }, usesInheritance: true, ngImport: i0, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"], components: [{ type: PageChartSelector, selector: "chart-pager", inputs: ["Items", "Dtos", "BrowseDelayMs", "StartIndex"], outputs: ["onPageChange"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2668
2702
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsVerticalStackedChartComponent, decorators: [{
2669
2703
  type: Component,
2670
2704
  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"] }]