@esfaenza/es-charts 13.1.2 → 13.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) 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 +20 -5
  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 +15 -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 +134 -0
  38. package/esm2020/lib/services/LineChartService.mjs +337 -0
  39. package/esm2020/lib/services/PieChartService.mjs +111 -0
  40. package/esm2020/lib/services/Vertical2DChartService.mjs +160 -0
  41. package/esm2020/lib/services/VerticalChartService.mjs +103 -0
  42. package/esm2020/lib/services/VerticalStackedChartService.mjs +124 -0
  43. package/esm2020/lib/services/base/IBaseService.mjs +2 -0
  44. package/esm2020/public-api.mjs +26 -25
  45. package/fesm2015/esfaenza-es-charts.mjs +420 -393
  46. package/fesm2015/esfaenza-es-charts.mjs.map +1 -1
  47. package/fesm2020/esfaenza-es-charts.mjs +409 -382
  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 +20 -5
  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} +0 -0
  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/{classes/base → base}/Limit.d.ts +0 -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} +3 -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} +3 -3
  87. package/lib/services/{classes/Vertical2DChartService.d.ts → Vertical2DChartService.d.ts} +3 -3
  88. package/lib/services/{classes/VerticalChartService.d.ts → VerticalChartService.d.ts} +3 -3
  89. package/lib/services/{classes/VerticalStackedChartService.d.ts → VerticalStackedChartService.d.ts} +3 -3
  90. package/lib/services/{classes/base → base}/IBaseService.d.ts +1 -1
  91. package/package.json +2 -2
  92. package/public-api.d.ts +25 -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 -324
  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/index.d.ts +0 -12
  136. package/lib/models/settings/index.d.ts +0 -9
  137. 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
@@ -358,7 +358,7 @@ class PageChartSelector {
358
358
  }
359
359
  }
360
360
  PageChartSelector.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: PageChartSelector, deps: [], target: i0.ɵɵFactoryTarget.Component });
361
- PageChartSelector.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: PageChartSelector, selector: "chart-pager", inputs: { Items: "Items", Dtos: "Dtos", BrowseDelayMs: "BrowseDelayMs", StartIndex: "StartIndex" }, outputs: { onPageChange: "onPageChange" }, queries: [{ propertyName: "headerInner_tr", first: true, predicate: ["header_inner"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"(Items || Dtos) && (Items || Dtos).length > 0\" class=\"pcs-no-selection\">\r\n <div class=\"pcs-button pcs-backward\">\r\n <svg class=\"pcs-svg-header\">\r\n <g class=\"pcs-svg-button-container\" role=\"button\" (click)=\"currentpage != 1 && Previous(); $event.stopPropagation(); $event.preventDefault();\">\r\n <!--Pulsante e freccettina all'interno-->\r\n <g class=\"pcs-svg-button\" [style.cursor]=\"currentpage == 1 ? 'not-allowed' : 'pointer'\"><path d=\"M3,0 L53.027,0 a3,3 0 0 1 3,3 L56.027,36.817 a3,3 0 0 1 -3,3 L3,39.817 a3,3 0 0 1 -3,-3 L0,3 a3,3 0 0 1 3,-3 Z\"></path></g>\r\n <g class=\"pcs-svg-arrow pcs-svg-arrow-left\"><path d=\"M26,14H10l5.17-6.79A2,2,0,0,0,12,4.79l-7.62,10a2,2,0,0,0,0,2.42l7.62,10a2,2,0,0,0,3.18-2.42L10,18H26a2,2,0,0,0,0-4Z\"></path></g>\r\n </g>\r\n </svg>\r\n </div>\r\n <div class=\"pcs-infos\">\r\n <ng-container *ngIf=\"headerInner_tr\">\r\n <ng-container *ngTemplateOutlet=\"headerInner_tr; context : {$implicit: (Items || Dtos)[currentpage - 1]}\"></ng-container>\r\n </ng-container>\r\n </div>\r\n <div class=\"pcs-button pcs-forward\">\r\n <svg class=\"pcs-svg-header\">\r\n <g class=\"pcs-svg-button-container\" role=\"button\" (click)=\"(Items || Dtos).length != currentpage && Next(); $event.stopPropagation(); $event.preventDefault();\">\r\n <!--Pulsante e freccettina all'interno-->\r\n <g class=\"pcs-svg-button\" [style.cursor]=\"(Items || Dtos).length == currentpage ? 'not-allowed' : 'pointer'\"><path d=\"M3,0 L53.027,0 a3,3 0 0 1 3,3 L56.027,36.817 a3,3 0 0 1 -3,3 L3,39.817 a3,3 0 0 1 -3,-3 L0,3 a3,3 0 0 1 3,-3 Z\"></path></g>\r\n <g class=\"pcs-svg-arrow pcs-svg-arrow-right\"><path d=\"M26,14H10l5.17-6.79A2,2,0,0,0,12,4.79l-7.62,10a2,2,0,0,0,0,2.42l7.62,10a2,2,0,0,0,3.18-2.42L10,18H26a2,2,0,0,0,0-4Z\"></path></g>\r\n </g>\r\n </svg>\r\n </div>\r\n <div style=\"clear: both;\"></div>\r\n</div>", styles: [".pcs-button{width:60px}.pcs-forward{float:right;text-align:end}.pcs-backward{float:left}.pcs-svg-header{width:57px;height:40px}.pcs-svg-button-container{outline:currentcolor none medium}.pcs-svg-arrow{pointer-events:none;fill:#555}.pcs-svg-arrow-right{transform:translate(44px,36px) rotate(180deg)}.pcs-svg-arrow-left{transform:translate(13px,4px)}.pcs-svg-button{fill:#d9d9d9;stroke:#fff;fill-opacity:1;stroke-opacity:1}.pcs-svg-button:hover{fill:#a3a3a3;cursor:pointer}.pcs-infos{width:calc(100% - 120px);height:44px;float:left}.pcs-no-selection{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}\n"], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
361
+ PageChartSelector.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: PageChartSelector, selector: "chart-pager", inputs: { Items: "Items", Dtos: "Dtos", BrowseDelayMs: "BrowseDelayMs", StartIndex: "StartIndex" }, outputs: { onPageChange: "onPageChange" }, queries: [{ propertyName: "headerInner_tr", first: true, predicate: ["header_inner"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"(Items || Dtos) && (Items || Dtos).length > 0\" class=\"pcs-no-selection\">\r\n <div class=\"pcs-button pcs-backward\">\r\n <svg class=\"pcs-svg-header\">\r\n <g class=\"pcs-svg-button-container\" role=\"button\" (click)=\"currentpage != 1 && Previous(); $event.stopPropagation(); $event.preventDefault();\">\r\n <!--Pulsante e freccettina all'interno-->\r\n <g class=\"pcs-svg-button\" [style.cursor]=\"currentpage == 1 ? 'not-allowed' : 'pointer'\"><path d=\"M3,0 L53.027,0 a3,3 0 0 1 3,3 L56.027,36.817 a3,3 0 0 1 -3,3 L3,39.817 a3,3 0 0 1 -3,-3 L0,3 a3,3 0 0 1 3,-3 Z\"></path></g>\r\n <g class=\"pcs-svg-arrow pcs-svg-arrow-left\"><path d=\"M26,14H10l5.17-6.79A2,2,0,0,0,12,4.79l-7.62,10a2,2,0,0,0,0,2.42l7.62,10a2,2,0,0,0,3.18-2.42L10,18H26a2,2,0,0,0,0-4Z\"></path></g>\r\n </g>\r\n </svg>\r\n </div>\r\n <div class=\"pcs-infos\">\r\n <ng-container *ngIf=\"headerInner_tr\">\r\n <ng-container *ngTemplateOutlet=\"headerInner_tr; context : {$implicit: (Items || Dtos)[currentpage - 1]}\"></ng-container>\r\n </ng-container>\r\n </div>\r\n <div class=\"pcs-button pcs-forward\">\r\n <svg class=\"pcs-svg-header\">\r\n <g class=\"pcs-svg-button-container\" role=\"button\" (click)=\"(Items || Dtos).length != currentpage && Next(); $event.stopPropagation(); $event.preventDefault();\">\r\n <!--Pulsante e freccettina all'interno-->\r\n <g class=\"pcs-svg-button\" [style.cursor]=\"(Items || Dtos).length == currentpage ? 'not-allowed' : 'pointer'\"><path d=\"M3,0 L53.027,0 a3,3 0 0 1 3,3 L56.027,36.817 a3,3 0 0 1 -3,3 L3,39.817 a3,3 0 0 1 -3,-3 L0,3 a3,3 0 0 1 3,-3 Z\"></path></g>\r\n <g class=\"pcs-svg-arrow pcs-svg-arrow-right\"><path d=\"M26,14H10l5.17-6.79A2,2,0,0,0,12,4.79l-7.62,10a2,2,0,0,0,0,2.42l7.62,10a2,2,0,0,0,3.18-2.42L10,18H26a2,2,0,0,0,0-4Z\"></path></g>\r\n </g>\r\n </svg>\r\n </div>\r\n <div style=\"clear: both;\"></div>\r\n</div>", styles: [".pcs-button{width:60px}.pcs-forward{float:right;text-align:end}.pcs-backward{float:left}.pcs-svg-header{width:57px;height:40px}.pcs-svg-button-container{outline:currentcolor none medium}.pcs-svg-arrow{pointer-events:none;fill:#555}.pcs-svg-arrow-right{transform:translate(44px,36px) rotate(180deg)}.pcs-svg-arrow-left{transform:translate(13px,4px)}.pcs-svg-button{fill:#d9d9d9;stroke:#fff;fill-opacity:1;stroke-opacity:1}.pcs-svg-button:hover{fill:#a3a3a3;cursor:pointer}.pcs-infos{width:calc(100% - 120px);height:44px;float:left}.pcs-no-selection{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}\n"], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
362
362
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: PageChartSelector, decorators: [{
363
363
  type: Component,
364
364
  args: [{ selector: "chart-pager", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"(Items || Dtos) && (Items || Dtos).length > 0\" class=\"pcs-no-selection\">\r\n <div class=\"pcs-button pcs-backward\">\r\n <svg class=\"pcs-svg-header\">\r\n <g class=\"pcs-svg-button-container\" role=\"button\" (click)=\"currentpage != 1 && Previous(); $event.stopPropagation(); $event.preventDefault();\">\r\n <!--Pulsante e freccettina all'interno-->\r\n <g class=\"pcs-svg-button\" [style.cursor]=\"currentpage == 1 ? 'not-allowed' : 'pointer'\"><path d=\"M3,0 L53.027,0 a3,3 0 0 1 3,3 L56.027,36.817 a3,3 0 0 1 -3,3 L3,39.817 a3,3 0 0 1 -3,-3 L0,3 a3,3 0 0 1 3,-3 Z\"></path></g>\r\n <g class=\"pcs-svg-arrow pcs-svg-arrow-left\"><path d=\"M26,14H10l5.17-6.79A2,2,0,0,0,12,4.79l-7.62,10a2,2,0,0,0,0,2.42l7.62,10a2,2,0,0,0,3.18-2.42L10,18H26a2,2,0,0,0,0-4Z\"></path></g>\r\n </g>\r\n </svg>\r\n </div>\r\n <div class=\"pcs-infos\">\r\n <ng-container *ngIf=\"headerInner_tr\">\r\n <ng-container *ngTemplateOutlet=\"headerInner_tr; context : {$implicit: (Items || Dtos)[currentpage - 1]}\"></ng-container>\r\n </ng-container>\r\n </div>\r\n <div class=\"pcs-button pcs-forward\">\r\n <svg class=\"pcs-svg-header\">\r\n <g class=\"pcs-svg-button-container\" role=\"button\" (click)=\"(Items || Dtos).length != currentpage && Next(); $event.stopPropagation(); $event.preventDefault();\">\r\n <!--Pulsante e freccettina all'interno-->\r\n <g class=\"pcs-svg-button\" [style.cursor]=\"(Items || Dtos).length == currentpage ? 'not-allowed' : 'pointer'\"><path d=\"M3,0 L53.027,0 a3,3 0 0 1 3,3 L56.027,36.817 a3,3 0 0 1 -3,3 L3,39.817 a3,3 0 0 1 -3,-3 L0,3 a3,3 0 0 1 3,-3 Z\"></path></g>\r\n <g class=\"pcs-svg-arrow pcs-svg-arrow-right\"><path d=\"M26,14H10l5.17-6.79A2,2,0,0,0,12,4.79l-7.62,10a2,2,0,0,0,0,2.42l7.62,10a2,2,0,0,0,3.18-2.42L10,18H26a2,2,0,0,0,0-4Z\"></path></g>\r\n </g>\r\n </svg>\r\n </div>\r\n <div style=\"clear: both;\"></div>\r\n</div>", styles: [".pcs-button{width:60px}.pcs-forward{float:right;text-align:end}.pcs-backward{float:left}.pcs-svg-header{width:57px;height:40px}.pcs-svg-button-container{outline:currentcolor none medium}.pcs-svg-arrow{pointer-events:none;fill:#555}.pcs-svg-arrow-right{transform:translate(44px,36px) rotate(180deg)}.pcs-svg-arrow-left{transform:translate(13px,4px)}.pcs-svg-button{fill:#d9d9d9;stroke:#fff;fill-opacity:1;stroke-opacity:1}.pcs-svg-button:hover{fill:#a3a3a3;cursor:pointer}.pcs-infos{width:calc(100% - 120px);height:44px;float:left}.pcs-no-selection{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}\n"] }]
@@ -377,113 +377,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
377
377
  args: ['header_inner', { static: false }]
378
378
  }] } });
379
379
 
380
- /**
381
- * Token che identifica il Locale di default per tutti i grafici, può essere sovrascritto dalle impostazioni locali (Settings e Input)
382
- */
383
- const ESC_LOCALE = new InjectionToken('ESC_LOCALE');
384
- /**
385
- * Token che identifica il default per l'utilizzo o meno delle Animazioni per tutti i grafici, può essere sovrascritto dalle impostazioni locali (Settings e Input)
386
- */
387
- const ESC_ANIMATIONS = new InjectionToken('ESC_ANIMATIONS');
388
- /**
389
- * Token che identifica il Tema di default per tutti i grafici, può essere sovrascritto dalle impostazioni locali (Settings e Input)
390
- */
391
- const ESC_THEME = new InjectionToken('ESC_THEME');
392
- /**
393
- * Token che identifica l'utilizzo o meno del sistema di Log per l'intera libreria
394
- */
395
- const ESC_LOGS = new InjectionToken('ESC_LOGS');
396
-
397
- /**
398
- * Classe che si occupa del dispatch delle operazioni di rendering dei grafici utilizzando una coda per permettere ad ogni grafico di avere temi e localizzazione custom
399
- */
400
- class ChartDispatcher {
401
- /**
402
- * @ignore
403
- */
404
- constructor(logs) {
405
- this.logs = logs;
406
- /**
407
- * Coda di inizializzazioni ancora da eseguire. Quando questa è vuota significa che nessuno sta creando grafici
408
- */
409
- this.Initializations = [];
410
- /**
411
- * Lista dei grafici inizializzati e attivi in un dato momento (viene registrata la proprietà **name**). Non è possibile registrare due grafici con lo stesso identificativo
412
- */
413
- this.InitializedGraphs = [];
414
- }
415
- /**
416
- * Registra un grafico da visualizzare insieme alla propria funzione di creazione. Quest'ultima sarà differita fino a che tutti i grafici
417
- * precedentemente registati non hanno finito la fase di inizializzazione
418
- *
419
- * @param {string} name Identificativo del grafico da registrare
420
- * @param {Function} chartCreationFunction Funzione che fisicamente dovrà occuparsi della creazione del grafico
421
- */
422
- register(name, chartCreationFunction) {
423
- if (this.InitializedGraphs.indexOf(name) != -1)
424
- throw "Attempting to register a duplicate chart '" + name + "'. Make sure the 'name' properties of your charts are univoque";
425
- this.log("DISPATCHER: Registering chart creation function execution for " + name);
426
- this.Initializations.push({ name: name, function: chartCreationFunction });
427
- if (this.Initializations.length == 1) {
428
- this.log("DISPATCHER: Initial drain started");
429
- this.drainInitQueues();
430
- }
431
- }
432
- /**
433
- * Deregistra un grafico presente. Chiamata generalmente al dispose del grafico in questione quando non dev'essere più mostrato nella pagina corrente
434
- *
435
- * @param {string} name Identificativo del grafico da deregistrare
436
- */
437
- deregisterGraph(name) {
438
- let index = this.InitializedGraphs.indexOf(name);
439
- if (index == -1) {
440
- //Questo succede quando si cerca di distruggere il grafico mentre sta venendo graficato
441
- this.log("DISPATCHER: Registration missing for chart " + name + " it was probably destroyed during load");
442
- return;
443
- }
444
- this.log("DISPATCHER: Chart deregistered " + name);
445
- this.InitializedGraphs.splice(index, 1);
446
- }
447
- /**
448
- * Metodo che esegue in maniera sequenziale le funzioni di inizializzazione dei grafici finché presenti
449
- * in modo che nessun grafico possa essere inizializzato contemporaneamente ad un altro.
450
- *
451
- * Questo è il punto chiave che permette di avere per ogni grafico temi e locale differenti
452
- */
453
- drainInitQueues() {
454
- let toExecute = this.Initializations[0];
455
- this.log("DISPATCHER: Executing initialization function for chart " + toExecute.name);
456
- toExecute.function().then(() => {
457
- this.log("DISPATCHER: initialization for chart " + toExecute.name + " is done");
458
- this.InitializedGraphs.push(toExecute.name);
459
- this.Initializations.splice(0, 1);
460
- if (this.Initializations.length >= 1) {
461
- this.log("DISPATCHER: Found queued initializations. Continuing");
462
- this.drainInitQueues();
463
- }
464
- else
465
- this.log("DISPATCHER: queue is over, nothing more to do");
466
- });
467
- }
468
- /**
469
- * @ignore
470
- */
471
- log(text) {
472
- if (this.logs)
473
- console.log("@esfaenza/es-charts: " + text);
474
- }
475
- }
476
- ChartDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ChartDispatcher, deps: [{ token: ESC_LOGS }], target: i0.ɵɵFactoryTarget.Injectable });
477
- ChartDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ChartDispatcher });
478
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ChartDispatcher, decorators: [{
479
- type: Injectable
480
- }], ctorParameters: function () {
481
- return [{ type: undefined, decorators: [{
482
- type: Inject,
483
- args: [ESC_LOGS]
484
- }] }];
485
- } });
486
-
487
380
  /** @ignore */
488
381
  const _spiritedaway = 'spiritedaway';
489
382
  /** @ignore */
@@ -745,6 +638,113 @@ class ChartLoader {
745
638
  }
746
639
  }
747
640
 
641
+ /**
642
+ * Token che identifica il Locale di default per tutti i grafici, può essere sovrascritto dalle impostazioni locali (Settings e Input)
643
+ */
644
+ const ESC_LOCALE = new InjectionToken('ESC_LOCALE');
645
+ /**
646
+ * Token che identifica il default per l'utilizzo o meno delle Animazioni per tutti i grafici, può essere sovrascritto dalle impostazioni locali (Settings e Input)
647
+ */
648
+ const ESC_ANIMATIONS = new InjectionToken('ESC_ANIMATIONS');
649
+ /**
650
+ * Token che identifica il Tema di default per tutti i grafici, può essere sovrascritto dalle impostazioni locali (Settings e Input)
651
+ */
652
+ const ESC_THEME = new InjectionToken('ESC_THEME');
653
+ /**
654
+ * Token che identifica l'utilizzo o meno del sistema di Log per l'intera libreria
655
+ */
656
+ const ESC_LOGS = new InjectionToken('ESC_LOGS');
657
+
658
+ /**
659
+ * Classe che si occupa del dispatch delle operazioni di rendering dei grafici utilizzando una coda per permettere ad ogni grafico di avere temi e localizzazione custom
660
+ */
661
+ class ChartDispatcher {
662
+ /**
663
+ * @ignore
664
+ */
665
+ constructor(logs) {
666
+ this.logs = logs;
667
+ /**
668
+ * Coda di inizializzazioni ancora da eseguire. Quando questa è vuota significa che nessuno sta creando grafici
669
+ */
670
+ this.Initializations = [];
671
+ /**
672
+ * Lista dei grafici inizializzati e attivi in un dato momento (viene registrata la proprietà **name**). Non è possibile registrare due grafici con lo stesso identificativo
673
+ */
674
+ this.InitializedGraphs = [];
675
+ }
676
+ /**
677
+ * Registra un grafico da visualizzare insieme alla propria funzione di creazione. Quest'ultima sarà differita fino a che tutti i grafici
678
+ * precedentemente registati non hanno finito la fase di inizializzazione
679
+ *
680
+ * @param {string} name Identificativo del grafico da registrare
681
+ * @param {Function} chartCreationFunction Funzione che fisicamente dovrà occuparsi della creazione del grafico
682
+ */
683
+ register(name, chartCreationFunction) {
684
+ if (this.InitializedGraphs.indexOf(name) != -1)
685
+ throw "Attempting to register a duplicate chart '" + name + "'. Make sure the 'name' properties of your charts are univoque";
686
+ this.log("DISPATCHER: Registering chart creation function execution for " + name);
687
+ this.Initializations.push({ name: name, function: chartCreationFunction });
688
+ if (this.Initializations.length == 1) {
689
+ this.log("DISPATCHER: Initial drain started");
690
+ this.drainInitQueues();
691
+ }
692
+ }
693
+ /**
694
+ * Deregistra un grafico presente. Chiamata generalmente al dispose del grafico in questione quando non dev'essere più mostrato nella pagina corrente
695
+ *
696
+ * @param {string} name Identificativo del grafico da deregistrare
697
+ */
698
+ deregisterGraph(name) {
699
+ let index = this.InitializedGraphs.indexOf(name);
700
+ if (index == -1) {
701
+ //Questo succede quando si cerca di distruggere il grafico mentre sta venendo graficato
702
+ this.log("DISPATCHER: Registration missing for chart " + name + " it was probably destroyed during load");
703
+ return;
704
+ }
705
+ this.log("DISPATCHER: Chart deregistered " + name);
706
+ this.InitializedGraphs.splice(index, 1);
707
+ }
708
+ /**
709
+ * Metodo che esegue in maniera sequenziale le funzioni di inizializzazione dei grafici finché presenti
710
+ * in modo che nessun grafico possa essere inizializzato contemporaneamente ad un altro.
711
+ *
712
+ * Questo è il punto chiave che permette di avere per ogni grafico temi e locale differenti
713
+ */
714
+ drainInitQueues() {
715
+ let toExecute = this.Initializations[0];
716
+ this.log("DISPATCHER: Executing initialization function for chart " + toExecute.name);
717
+ toExecute.function().then(() => {
718
+ this.log("DISPATCHER: initialization for chart " + toExecute.name + " is done");
719
+ this.InitializedGraphs.push(toExecute.name);
720
+ this.Initializations.splice(0, 1);
721
+ if (this.Initializations.length >= 1) {
722
+ this.log("DISPATCHER: Found queued initializations. Continuing");
723
+ this.drainInitQueues();
724
+ }
725
+ else
726
+ this.log("DISPATCHER: queue is over, nothing more to do");
727
+ });
728
+ }
729
+ /**
730
+ * @ignore
731
+ */
732
+ log(text) {
733
+ if (this.logs)
734
+ console.log("@esfaenza/es-charts: " + text);
735
+ }
736
+ }
737
+ ChartDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ChartDispatcher, deps: [{ token: ESC_LOGS }], target: i0.ɵɵFactoryTarget.Injectable });
738
+ ChartDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ChartDispatcher });
739
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ChartDispatcher, decorators: [{
740
+ type: Injectable
741
+ }], ctorParameters: function () {
742
+ return [{ type: undefined, decorators: [{
743
+ type: Inject,
744
+ args: [ESC_LOGS]
745
+ }] }];
746
+ } });
747
+
748
748
  /**
749
749
  * Componente Grafico Base che gestisce tutte le cose comuni dei vari grafici istanziabili, come la presenza o menu di una legenda,
750
750
  * il tema utilizzato, il locale del singolo grafico, ecc ecc...
@@ -799,6 +799,11 @@ class BaseChartComponent {
799
799
  * Evento lanciato al termine del caricamento di una nuova pagina del grafico
800
800
  */
801
801
  this.onLoadEnd = new EventEmitter();
802
+ /**
803
+ * Evento lanciato al termine della creazione del grafico referenziando l'istanza nativa del grafico creato in modo da poter effettuare modifiche
804
+ * post inizializzazione lato applicativo
805
+ */
806
+ this.chartLoaded = new EventEmitter();
802
807
  /**
803
808
  * Serve a decidere se sarà presente l'interfaccia di paginazione
804
809
  */
@@ -887,7 +892,7 @@ class BaseChartComponent {
887
892
  this.Chart = this.ChartService.ChartInstance;
888
893
  if (!this.Chart)
889
894
  this.log("Chart " + this.name + ": Could not create graph");
890
- return this.Charter.applyLocale(this.Chart, this.Locale).then(() => this.initDone = true);
895
+ return this.Charter.applyLocale(this.Chart, this.Locale).then(() => { this.initDone = true; this.chartLoaded.emit(this); });
891
896
  })
892
897
  ]);
893
898
  }
@@ -986,6 +991,13 @@ class BaseChartComponent {
986
991
  });
987
992
  this.Dispatcher.register(this.name, () => { return this.loadChart(); });
988
993
  }
994
+ /**
995
+ * Permette di aggiungere un blocco di dati in maniera "live" ad un grafico
996
+ */
997
+ addData(chartData) {
998
+ this.ChartService.refreshData(chartData);
999
+ }
1000
+ ;
989
1001
  /**
990
1002
  * Funzione che si occupa di caricare i temi necessari per il grafico in oggetto. Prima applica il tema, poi, se serve, applica le animazioni
991
1003
  */
@@ -1015,7 +1027,7 @@ class BaseChartComponent {
1015
1027
  }
1016
1028
  }
1017
1029
  BaseChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BaseChartComponent, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
1018
- BaseChartComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BaseChartComponent, inputs: { XTitle: "XTitle", YTitle: "YTitle", Settings: "Settings", Legend: "Legend", LegendPosition: "LegendPosition", Timeline: "Timeline", name: "name", Animations: "Animations", Theme: "Theme", Locale: "Locale", HideSeriesOnLabelClick: "HideSeriesOnLabelClick", MinGridDistance: "MinGridDistance", AdaptLabelSizeAndOrientation: "AdaptLabelSizeAndOrientation", LegendPadding: "LegendPadding", DataDtos: "DataDtos", DataDtoStartIndex: "DataDtoStartIndex", DataRetrieve: "DataRetrieve", BrowseDelayMs: "BrowseDelayMs" }, outputs: { onSelectionChanged: "onSelectionChanged", onSeriesClicked: "onSeriesClicked", onLoadStart: "onLoadStart", onLoadEnd: "onLoadEnd" }, queries: [{ propertyName: "header_tr", first: true, predicate: ["header"], descendants: true }, { propertyName: "loading_template", first: true, predicate: ["loading"], descendants: true }], usesOnChanges: true, ngImport: i0 });
1030
+ BaseChartComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BaseChartComponent, inputs: { XTitle: "XTitle", YTitle: "YTitle", Settings: "Settings", Legend: "Legend", LegendPosition: "LegendPosition", Timeline: "Timeline", name: "name", Animations: "Animations", Theme: "Theme", Locale: "Locale", HideSeriesOnLabelClick: "HideSeriesOnLabelClick", MinGridDistance: "MinGridDistance", AdaptLabelSizeAndOrientation: "AdaptLabelSizeAndOrientation", LegendPadding: "LegendPadding", DataDtos: "DataDtos", DataDtoStartIndex: "DataDtoStartIndex", DataRetrieve: "DataRetrieve", BrowseDelayMs: "BrowseDelayMs" }, outputs: { onSelectionChanged: "onSelectionChanged", onSeriesClicked: "onSeriesClicked", onLoadStart: "onLoadStart", onLoadEnd: "onLoadEnd", chartLoaded: "chartLoaded" }, queries: [{ propertyName: "header_tr", first: true, predicate: ["header"], descendants: true }, { propertyName: "loading_template", first: true, predicate: ["loading"], descendants: true }], usesOnChanges: true, ngImport: i0 });
1019
1031
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BaseChartComponent, decorators: [{
1020
1032
  type: Directive
1021
1033
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: Object }, { type: i0.NgZone }, { type: ChartLoader }, { type: ChartDispatcher }, { type: undefined }, { type: undefined }, { type: undefined }, { type: undefined }]; }, propDecorators: { XTitle: [{
@@ -1068,6 +1080,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
1068
1080
  type: Output
1069
1081
  }], onLoadEnd: [{
1070
1082
  type: Output
1083
+ }], chartLoaded: [{
1084
+ type: Output
1071
1085
  }] } });
1072
1086
 
1073
1087
  /**
@@ -1082,6 +1096,8 @@ class LineChartService {
1082
1096
  this.DataGroupBucketSize = 1500;
1083
1097
  /** @ignore */
1084
1098
  this.OpacityOnSelected = 0.3;
1099
+ /** @ignore */
1100
+ this.singleDataSet = false;
1085
1101
  //******************** Funzione di throttling per non spammare richieste in caso di animazioni attivate
1086
1102
  //TODO: spostarla in un metodo di utilità (esfaenza/extensions)
1087
1103
  /** @ignore */
@@ -1094,7 +1110,7 @@ class LineChartService {
1094
1110
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
1095
1111
  let dataConverted = this.Adapter ? this.Adapter.adaptDataForLineChart(data) : data;
1096
1112
  let threshold = (_a = settings.DataGroupingThreshold) !== null && _a !== void 0 ? _a : 3000;
1097
- let singleDataSet = (_b = settings.MergeDatasets) !== null && _b !== void 0 ? _b : false;
1113
+ this.singleDataSet = (_b = settings.MergeDatasets) !== null && _b !== void 0 ? _b : false;
1098
1114
  let showTicks = settings.ShowTicks == null ? true : settings === null || settings === void 0 ? void 0 : settings.ShowTicks;
1099
1115
  let dataShouldBeGrouped = Math.max(...dataConverted.series.map(t => t.values.length)) > threshold;
1100
1116
  let showTimeline = settings.Timeline || dataShouldBeGrouped;
@@ -1173,31 +1189,9 @@ class LineChartService {
1173
1189
  let seriesColors = [];
1174
1190
  let defaultIndex = 0;
1175
1191
  //-- Generazione di un unico dataset invece che N, per poter gestire un unico tooltip
1176
- if (singleDataSet) {
1177
- let dto = {};
1178
- dataConverted.series.forEach((vs, index) => {
1179
- for (let i = 0; i < vs.values.length; i++) {
1180
- var dataitem = vs.values[i];
1181
- var indexer = new Date(dataitem.d).valueOf();
1182
- if (!dto[indexer])
1183
- dto[indexer] = {};
1184
- dto[indexer]['v' + index] = dataitem.v;
1185
- }
1186
- });
1187
- var dates = Object.keys(dto);
1188
- let singleDS = [];
1189
- for (let i = 0; i < dates.length; i++) {
1190
- let values = dto[dates[i]];
1191
- let item = { d: new Date(parseInt(dates[i])) };
1192
- var vals = Object.keys(values);
1193
- for (let ii = 0; ii < vals.length; ii++) {
1194
- let series = vals[ii];
1195
- let singleVal = values[series];
1196
- item[series] = singleVal;
1197
- }
1198
- singleDS.push(item);
1199
- }
1200
- this.ChartInstance.data = singleDS;
1192
+ if (this.singleDataSet) {
1193
+ this.ChartInstance.data = this.generateSingleDataset(dataConverted);
1194
+ ;
1201
1195
  dateAxis.cursorTooltipEnabled = false;
1202
1196
  }
1203
1197
  //-- Fine generazione
@@ -1221,14 +1215,14 @@ class LineChartService {
1221
1215
  s.values.sort((d1, d2) => d1.d.getTime() - d2.d.getTime());
1222
1216
  let fill = s.fill != null && s.fill != undefined ? s.fill : ((_a = settings === null || settings === void 0 ? void 0 : settings.Fill) !== null && _a !== void 0 ? _a : false);
1223
1217
  let series = (settings === null || settings === void 0 ? void 0 : settings.Step) ? new am4charts.StepLineSeries() : new am4charts.LineSeries();
1224
- series.dataFields.valueY = "v" + (singleDataSet ? index : "");
1218
+ series.dataFields.valueY = "v" + (this.singleDataSet ? index : "");
1225
1219
  series.dataFields.dateX = "d";
1226
1220
  series.dataFields.measureUnit = s.uom;
1227
1221
  series.name = s.name;
1228
1222
  series.strokeWidth = (_b = settings === null || settings === void 0 ? void 0 : settings.StrokeSize) !== null && _b !== void 0 ? _b : 1;
1229
1223
  series.connect = !gapsAllowed;
1230
1224
  series.minBulletDistance = 10;
1231
- series.tooltipText = singleDataSet ? "" : "{name}: [bold]{valueY}[/]";
1225
+ series.tooltipText = this.singleDataSet ? "" : s.name ? "{name}: [bold]{valueY}[/]" : "[bold]{valueY}[/]";
1232
1226
  series.tooltip.pointerOrientation = "vertical";
1233
1227
  series.tooltip.background.fillOpacity = 0.5;
1234
1228
  series.tooltip.label.padding(12, 12, 12, 12);
@@ -1236,7 +1230,7 @@ class LineChartService {
1236
1230
  series.stacked = fill;
1237
1231
  //Dataset singolo, i dati sono registrati a livello di chart, creo il tooltip che permette di vederli tutti insieme
1238
1232
  //altrimenti assegno i dati della serie direttamente alla serie
1239
- if (singleDataSet) {
1233
+ if (this.singleDataSet) {
1240
1234
  series.tooltip.getFillFromObject = false;
1241
1235
  series.tooltip.background.fill = am4core.color("#eee");
1242
1236
  series.tooltip.label.fill = am4core.color("#00");
@@ -1267,7 +1261,7 @@ class LineChartService {
1267
1261
  var text = "[bold]{dateX.formatDate()}[/]\n";
1268
1262
  this.ChartInstance.series.each((item) => {
1269
1263
  let uom = " [font-style: italic]" + series.dataFields.measureUnit || "" + "[/]";
1270
- text += "[" + item.stroke.hex + "]●[/] " + item.name + ": [bold]{" + item.dataFields.valueY + "}[/]" + uom + "\n";
1264
+ text += "[" + item.stroke.hex + "]●[/] " + (item.name ? (item.name + ": ") : "") + "[bold]{" + item.dataFields.valueY + "}[/]" + uom + "\n";
1271
1265
  });
1272
1266
  return text;
1273
1267
  });
@@ -1326,7 +1320,7 @@ class LineChartService {
1326
1320
  //******************************************************************************************************************************
1327
1321
  this.ChartInstance.cursor.xAxis = dateAxis;
1328
1322
  this.ChartInstance.cursor.yAxis = yAxis;
1329
- if (singleDataSet)
1323
+ if (this.singleDataSet)
1330
1324
  this.ChartInstance.cursor.maxTooltipDistance = -1;
1331
1325
  //TODO: Cercare di capire perché è figlio di puttana......
1332
1326
  dateAxis.events.on("startchanged", t => this.emitSelectionChanged(t, settings));
@@ -1335,7 +1329,40 @@ class LineChartService {
1335
1329
  }
1336
1330
  /** @ignore */
1337
1331
  refreshData(data) {
1338
- //TODO:IMPL
1332
+ let dataConverted = this.Adapter ? this.Adapter.adaptDataForLineChart(data) : data;
1333
+ if (this.singleDataSet) {
1334
+ var data = this.generateSingleDataset(dataConverted);
1335
+ this.ChartInstance.addData(data);
1336
+ return;
1337
+ }
1338
+ throw "Impossibile aggiornare i dati senza unire il dataset. Si prega di impostare [MergeDatasets] a true";
1339
+ }
1340
+ /** Partendo da dati divisi per seriue genera un dataset unito con la data come chiave e i vari valori dopo */
1341
+ generateSingleDataset(data) {
1342
+ let dto = {};
1343
+ data.series.forEach((vs, index) => {
1344
+ for (let i = 0; i < vs.values.length; i++) {
1345
+ var dataitem = vs.values[i];
1346
+ var indexer = new Date(dataitem.d).valueOf();
1347
+ if (!dto[indexer])
1348
+ dto[indexer] = {};
1349
+ dto[indexer]['v' + index] = dataitem.v;
1350
+ }
1351
+ });
1352
+ var dates = Object.keys(dto);
1353
+ var ret = [];
1354
+ for (let i = 0; i < dates.length; i++) {
1355
+ let values = dto[dates[i]];
1356
+ let item = { d: new Date(parseInt(dates[i])) };
1357
+ var vals = Object.keys(values);
1358
+ for (let ii = 0; ii < vals.length; ii++) {
1359
+ let series = vals[ii];
1360
+ let singleVal = values[series];
1361
+ item[series] = singleVal;
1362
+ }
1363
+ ret.push(item);
1364
+ }
1365
+ return ret;
1339
1366
  }
1340
1367
  /** @ignore */
1341
1368
  emitSelectionChanged(ev, settings) {
@@ -1395,155 +1422,22 @@ class LineChartService {
1395
1422
  }
1396
1423
 
1397
1424
  /**
1398
- * Classe il cui unico scopo è gestire il setup e rendering di un AreaChart
1425
+ * Classe il cui unico scopo è gestire il setup e rendering di un PieChart
1399
1426
  */
1400
- class AreaChartService {
1427
+ class PieChartService {
1401
1428
  /** @ignore */
1402
1429
  constructor(Adapter) {
1403
1430
  this.Adapter = Adapter;
1404
- //******************** Funzione di throttling per non spammare richieste in caso di animazioni attivate
1405
- //TODO: spostarla in un metodo di utilità (esfaenza/extensions)
1406
1431
  /** @ignore */
1407
- this.executionTimers = {};
1432
+ this.ViewAbsoluteValues = true;
1408
1433
  }
1409
1434
  /**
1410
- * Metodo che data una coppia Dati - Impostazioni li utilizza per creare e visualizzare un AreaChart
1435
+ * Metodo che data una coppia Dati - Impostazioni li utilizza per creare e visualizzare un PieChart
1411
1436
  */
1412
1437
  graphicate(data, settings) {
1413
- var _a, _b, _c, _d, _e, _f;
1438
+ var _a, _b, _c, _d;
1414
1439
  if (settings.Timeline) {
1415
- console.error("Timeline not supported for area chart");
1416
- return null;
1417
- }
1418
- let dataConverted = this.Adapter ? this.Adapter.adaptDataForAreaChart(data) : data;
1419
- let showTicks = settings.ShowTicks == null ? true : settings === null || settings === void 0 ? void 0 : settings.ShowTicks;
1420
- let interval = dataConverted.interval;
1421
- //Per evitare di dimenticarmeli e gestire comunque bene gli ngif ecc...
1422
- am4core.options.autoDispose = true;
1423
- this.ChartInstance = am4core.create(settings.Name, am4charts.XYChart);
1424
- let ChartInstanceCasted = this.ChartInstance;
1425
- if (settings.Legend) {
1426
- ChartInstanceCasted.legend = new am4charts.Legend();
1427
- ChartInstanceCasted.legend.position = (_a = settings === null || settings === void 0 ? void 0 : settings.LegendPosition) !== null && _a !== void 0 ? _a : 'right';
1428
- ChartInstanceCasted.legend.itemContainers.template.tooltipText = "{category}";
1429
- if (settings.LegendPadding) {
1430
- let template = this.ChartInstance.legend.itemContainers.template;
1431
- template.paddingTop = (_b = settings.LegendPadding.top) !== null && _b !== void 0 ? _b : 0;
1432
- template.paddingBottom = (_c = settings.LegendPadding.bottom) !== null && _c !== void 0 ? _c : 0;
1433
- template.paddingLeft = (_d = settings.LegendPadding.left) !== null && _d !== void 0 ? _d : 0;
1434
- template.paddingRight = (_e = settings.LegendPadding.right) !== null && _e !== void 0 ? _e : 0;
1435
- }
1436
- }
1437
- let yAxis = ChartInstanceCasted.yAxes.push(new am4charts.ValueAxis());
1438
- yAxis.tooltip.disabled = true;
1439
- if (settings.YAxisTitle) {
1440
- yAxis.title.text = settings.YAxisTitle;
1441
- yAxis.title.fontWeight = "bold";
1442
- }
1443
- yAxis.min = 0;
1444
- let dateAxis = ChartInstanceCasted.xAxes.push(new am4charts.DateAxis());
1445
- dateAxis.renderer.minGridDistance = (_f = settings === null || settings === void 0 ? void 0 : settings.MinGridDistance) !== null && _f !== void 0 ? _f : 50;
1446
- dateAxis.startLocation = 0.5;
1447
- dateAxis.endLocation = 0.5;
1448
- if (settings.XAxisTitle) {
1449
- dateAxis.title.text = settings.XAxisTitle;
1450
- dateAxis.title.fontWeight = "bold";
1451
- }
1452
- if (showTicks) {
1453
- dateAxis.renderer.ticks.template.disabled = false;
1454
- dateAxis.renderer.ticks.template.strokeOpacity = 1;
1455
- dateAxis.renderer.ticks.template.stroke = am4core.color("#495C43");
1456
- dateAxis.renderer.ticks.template.strokeWidth = 2;
1457
- dateAxis.renderer.ticks.template.length = 10;
1458
- dateAxis.renderer.ticks.template.location = 0;
1459
- }
1460
- if (!!interval)
1461
- dateAxis.baseInterval = { count: interval.count, timeUnit: interval.timeunit };
1462
- // Unisco il dataset e tiro fuori i dati
1463
- let chartData = [];
1464
- let seriesToMakeCache = {};
1465
- let seriesToMake = [];
1466
- for (let i = 0; i < dataConverted.groups.length; i++) {
1467
- let group = dataConverted.groups[i];
1468
- let dataItem = { date: group.name };
1469
- for (let ii = 0; ii < group.values.length; ii++) {
1470
- let val = group.values[ii];
1471
- dataItem[val.k] = val.v;
1472
- if (!seriesToMakeCache[val.k]) {
1473
- seriesToMakeCache[val.k] = true;
1474
- seriesToMake.push(val.k);
1475
- }
1476
- }
1477
- chartData.push(dataItem);
1478
- }
1479
- ChartInstanceCasted.data = chartData;
1480
- //---------------------------------------------------------
1481
- seriesToMake.forEach(s => { this.createSeries(ChartInstanceCasted, s); });
1482
- ChartInstanceCasted.cursor = new am4charts.XYCursor();
1483
- ChartInstanceCasted.cursor.xAxis = dateAxis;
1484
- dateAxis.events.on("startchanged", t => this.emitSelectionChanged(t, settings));
1485
- dateAxis.events.on("endchanged", t => this.emitSelectionChanged(t, settings));
1486
- return this;
1487
- }
1488
- /** @ignore */
1489
- refreshData(data) {
1490
- //TODO:IMPL
1491
- }
1492
- /** @ignore */
1493
- emitSelectionChanged(ev, settings) {
1494
- if (settings.OnSelectionChangedCallback) {
1495
- this.throttla("selchange", () => {
1496
- var axis = ev.target;
1497
- var start = new Date(axis.minZoomed);
1498
- var end = new Date(axis.maxZoomed);
1499
- var initial = axis.min == axis.minZoomed && axis.max == axis.maxZoomed;
1500
- settings.OnSelectionChangedCallback({ from: start, to: end, initial: initial });
1501
- }, 150);
1502
- }
1503
- }
1504
- /** @ignore */
1505
- createSeries(chart, name) {
1506
- let series = chart.series.push(new am4charts.LineSeries());
1507
- series.dataFields.dateX = "date";
1508
- series.name = name[0].toUpperCase() + name.slice(1);
1509
- series.dataFields.valueY = name;
1510
- series.tooltipText = "[#000]{valueY.value}[/]";
1511
- //series.tooltip.background.fill = am4core.color("#FFF");
1512
- series.tooltip.getStrokeFromObject = true;
1513
- series.tooltip.background.strokeWidth = 3;
1514
- series.tooltip.getFillFromObject = false;
1515
- series.fillOpacity = 0.6;
1516
- series.strokeWidth = 2;
1517
- series.stacked = true;
1518
- return series;
1519
- }
1520
- /** @ignore */
1521
- throttla(id, func, throttleTime) {
1522
- //Se ho la funzione che vuole eseguire ripulisco quel timeout
1523
- if (this.executionTimers[id])
1524
- clearTimeout(this.executionTimers[id]);
1525
- //Ricreo il timeout per eseguire quella funzione dopo throttleTime millisecondi
1526
- this.executionTimers[id] = setTimeout(() => { func(); this.executionTimers[id] = null; }, throttleTime);
1527
- }
1528
- }
1529
-
1530
- /**
1531
- * Classe il cui unico scopo è gestire il setup e rendering di un PieChart
1532
- */
1533
- class PieChartService {
1534
- /** @ignore */
1535
- constructor(Adapter) {
1536
- this.Adapter = Adapter;
1537
- /** @ignore */
1538
- this.ViewAbsoluteValues = true;
1539
- }
1540
- /**
1541
- * Metodo che data una coppia Dati - Impostazioni li utilizza per creare e visualizzare un PieChart
1542
- */
1543
- graphicate(data, settings) {
1544
- var _a, _b, _c, _d;
1545
- if (settings.Timeline) {
1546
- console.error("Timeline not supported for pie chart");
1440
+ console.error("Timeline not supported for pie chart");
1547
1441
  return null;
1548
1442
  }
1549
1443
  //Per evitare di dimenticarmeli e gestire comunque bene gli ngif ecc...
@@ -1638,15 +1532,13 @@ class PieChartService {
1638
1532
  }
1639
1533
 
1640
1534
  /**
1641
- * Classe il cui unico scopo è gestire il setup e rendering di un Vertical2DChart
1535
+ * Classe il cui unico scopo è gestire il setup e rendering di un VerticalChart
1642
1536
  */
1643
- class Vertical2DChartService {
1537
+ class VerticalChartService {
1644
1538
  /** @ignore */
1645
1539
  constructor(Adapter) {
1646
1540
  this.Adapter = Adapter;
1647
1541
  /** @ignore */
1648
- this.DefaultGroupPaddingPercentage = 5;
1649
- /** @ignore */
1650
1542
  this.dangerZone = 50;
1651
1543
  /** @ignore */
1652
1544
  this.LabelWidth = 150;
@@ -1658,10 +1550,10 @@ class Vertical2DChartService {
1658
1550
  this.DefaultColumnWidthPercentage = 85;
1659
1551
  }
1660
1552
  /**
1661
- * Metodo che data una coppia Dati - Impostazioni li utilizza per creare e visualizzare un Vertical2DChart
1553
+ * Metodo che data una coppia Dati - Impostazioni li utilizza per creare e visualizzare un VerticalChart
1662
1554
  */
1663
1555
  graphicate(data, settings) {
1664
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
1556
+ var _a, _b, _c, _d, _e, _f, _g, _h;
1665
1557
  if (settings.Timeline) {
1666
1558
  console.error("Timeline not supported for vertical chart");
1667
1559
  return null;
@@ -1670,6 +1562,8 @@ class Vertical2DChartService {
1670
1562
  am4core.options.autoDispose = true;
1671
1563
  this.ChartInstance = am4core.create(settings.Name, am4charts.XYChart);
1672
1564
  let ChartInstanceCasted = this.ChartInstance;
1565
+ let dataConverted = this.Adapter ? this.Adapter.adaptDataForVerticalChart(data) : data;
1566
+ ChartInstanceCasted.data = dataConverted.values;
1673
1567
  if (settings.Legend) {
1674
1568
  ChartInstanceCasted.legend = new am4charts.Legend();
1675
1569
  ChartInstanceCasted.legend.position = (_a = settings === null || settings === void 0 ? void 0 : settings.LegendPosition) !== null && _a !== void 0 ? _a : 'right';
@@ -1692,15 +1586,12 @@ class Vertical2DChartService {
1692
1586
  categoryAxis.title.text = settings.XAxisTitle;
1693
1587
  categoryAxis.title.fontWeight = "bold";
1694
1588
  }
1695
- yAxis.min = 0;
1696
- categoryAxis.dataFields.category = 'key';
1697
- categoryAxis.renderer.cellStartLocation = am4core.percent((_f = settings.GroupPaddingPercentage) !== null && _f !== void 0 ? _f : this.DefaultGroupPaddingPercentage).value;
1698
- categoryAxis.renderer.cellEndLocation = am4core.percent(100 - ((_g = settings.GroupPaddingPercentage) !== null && _g !== void 0 ? _g : this.DefaultGroupPaddingPercentage)).value;
1589
+ categoryAxis.dataFields.category = "k";
1699
1590
  categoryAxis.renderer.grid.template.location = 0;
1700
- categoryAxis.renderer.minGridDistance = (_h = settings === null || settings === void 0 ? void 0 : settings.MinGridDistance) !== null && _h !== void 0 ? _h : 30;
1591
+ categoryAxis.renderer.minGridDistance = (_f = settings === null || settings === void 0 ? void 0 : settings.MinGridDistance) !== null && _f !== void 0 ? _f : 30;
1701
1592
  let label = categoryAxis.renderer.labels.template;
1702
1593
  label.truncate = true;
1703
- label.maxWidth = (_j = settings.LabelWidth) !== null && _j !== void 0 ? _j : this.LabelWidth;
1594
+ label.maxWidth = (_g = settings.LabelWidth) !== null && _g !== void 0 ? _g : this.LabelWidth;
1704
1595
  label.tooltipText = "{category}";
1705
1596
  if ((settings === null || settings === void 0 ? void 0 : settings.AdaptLabelSizeAndOrientation) == null ? true : settings === null || settings === void 0 ? void 0 : settings.AdaptLabelSizeAndOrientation) {
1706
1597
  categoryAxis.events.on("sizechanged", (ev) => {
@@ -1724,88 +1615,35 @@ class Vertical2DChartService {
1724
1615
  }
1725
1616
  });
1726
1617
  }
1727
- let dataPreConverted = this.Adapter ? this.Adapter.adaptDataForVertical2DChart(data) : data;
1728
- let dataConverted = [];
1729
- for (let i = 0; i < dataPreConverted.groups.length; i++) {
1730
- let item = dataPreConverted.groups[i];
1731
- let obj = { key: item.name };
1732
- for (let p = 0; p < item.values.length; p++) {
1733
- let value = item.values[p];
1734
- obj[value.k] = value.v;
1735
- }
1736
- dataConverted.push(obj);
1737
- }
1738
- ChartInstanceCasted.data = dataConverted;
1739
- if (dataPreConverted.colorInfos)
1740
- ChartInstanceCasted.colors.list = dataPreConverted.colorInfos.map(c => am4core.color(c.color));
1741
- //Prendo la prima categoria e mi baso sulle proprietà per dfeinire le serie
1742
- for (let prop in dataConverted[0])
1743
- if (prop !== "key")
1744
- this.createSeries(ChartInstanceCasted, settings, prop, prop);
1618
+ // Create series
1619
+ let series = ChartInstanceCasted.series.push(new am4charts.ColumnSeries());
1620
+ series.dataFields.valueY = "v";
1621
+ series.dataFields.categoryX = "k";
1622
+ series.name = "";
1623
+ series.columns.template.tooltipText = "{categoryX}: [bold]{valueY}[/]";
1624
+ series.columns.template.fillOpacity = .8;
1625
+ series.columns.template.width = am4core.percent((_h = settings.ColumnWidthPercentage) !== null && _h !== void 0 ? _h : this.DefaultColumnWidthPercentage);
1626
+ let columnTemplate = series.columns.template;
1627
+ columnTemplate.strokeWidth = 2;
1628
+ columnTemplate.strokeOpacity = 1;
1745
1629
  return this;
1746
1630
  }
1747
1631
  /** @ignore */
1748
1632
  refreshData(data) {
1749
1633
  //TODO:IMPL
1750
1634
  }
1751
- /** @ignore */
1752
- createSeries(chart, settings, value, name) {
1753
- var _a;
1754
- let series = chart.series.push(new am4charts.ColumnSeries());
1755
- series.dataFields.valueY = value;
1756
- series.dataFields.categoryX = 'key';
1757
- series.name = name;
1758
- series.columns.template.tooltipText = "{name} {categoryX}: [bold]{valueY}[/]";
1759
- series.columns.template.fillOpacity = .8;
1760
- series.columns.template.width = am4core.percent((_a = settings.ColumnWidthPercentage) !== null && _a !== void 0 ? _a : this.DefaultColumnWidthPercentage);
1761
- series.events.on("hidden", () => this.arrangeColumns);
1762
- series.events.on("shown", () => this.arrangeColumns);
1763
- return series;
1764
- }
1765
- /** @ignore */
1766
- arrangeColumns() {
1767
- let ChartInstanceCasted = this.ChartInstance;
1768
- let series = ChartInstanceCasted.series.getIndex(0);
1769
- let xAxis = ChartInstanceCasted.xAxes.getIndex(0);
1770
- let w = 1 - xAxis.renderer.cellStartLocation - (1 - xAxis.renderer.cellEndLocation);
1771
- if (series.dataItems.length > 1) {
1772
- let x0 = xAxis.getX(series.dataItems.getIndex(0), "categoryX");
1773
- let x1 = xAxis.getX(series.dataItems.getIndex(1), "categoryX");
1774
- let delta = ((x1 - x0) / ChartInstanceCasted.series.length) * w;
1775
- if (am4core.isNumber(delta)) {
1776
- let middle = ChartInstanceCasted.series.length / 2;
1777
- let newIndex = 0;
1778
- ChartInstanceCasted.series.each((series) => {
1779
- if (!series.isHidden && !series.isHiding) {
1780
- series.dummyData = newIndex;
1781
- newIndex++;
1782
- }
1783
- else {
1784
- series.dummyData = ChartInstanceCasted.series.indexOf(series);
1785
- }
1786
- });
1787
- let visibleCount = newIndex;
1788
- let newMiddle = visibleCount / 2;
1789
- ChartInstanceCasted.series.each((series) => {
1790
- let trueIndex = ChartInstanceCasted.series.indexOf(series);
1791
- let newIndex = series.dummyData;
1792
- let dx = (newIndex - trueIndex + middle - newMiddle) * delta;
1793
- series.animate({ property: "dx", to: dx }, series.interpolationDuration, series.interpolationEasing);
1794
- series.bulletsContainer.animate({ property: "dx", to: dx }, series.interpolationDuration, series.interpolationEasing);
1795
- });
1796
- }
1797
- }
1798
- }
1799
1635
  }
1800
1636
 
1801
1637
  /**
1802
- * Classe il cui unico scopo è gestire il setup e rendering di un VerticalChart
1638
+ * Classe il cui unico scopo è gestire il setup e rendering di un Vertical2DChart
1803
1639
  */
1804
- class VerticalChartService {
1640
+ class Vertical2DChartService {
1805
1641
  /** @ignore */
1806
1642
  constructor(Adapter) {
1807
1643
  this.Adapter = Adapter;
1808
1644
  /** @ignore */
1645
+ this.DefaultGroupPaddingPercentage = 5;
1646
+ /** @ignore */
1809
1647
  this.dangerZone = 50;
1810
1648
  /** @ignore */
1811
1649
  this.LabelWidth = 150;
@@ -1817,10 +1655,10 @@ class VerticalChartService {
1817
1655
  this.DefaultColumnWidthPercentage = 85;
1818
1656
  }
1819
1657
  /**
1820
- * Metodo che data una coppia Dati - Impostazioni li utilizza per creare e visualizzare un VerticalChart
1658
+ * Metodo che data una coppia Dati - Impostazioni li utilizza per creare e visualizzare un Vertical2DChart
1821
1659
  */
1822
1660
  graphicate(data, settings) {
1823
- var _a, _b, _c, _d, _e, _f, _g, _h;
1661
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
1824
1662
  if (settings.Timeline) {
1825
1663
  console.error("Timeline not supported for vertical chart");
1826
1664
  return null;
@@ -1829,8 +1667,6 @@ class VerticalChartService {
1829
1667
  am4core.options.autoDispose = true;
1830
1668
  this.ChartInstance = am4core.create(settings.Name, am4charts.XYChart);
1831
1669
  let ChartInstanceCasted = this.ChartInstance;
1832
- let dataConverted = this.Adapter ? this.Adapter.adaptDataForVerticalChart(data) : data;
1833
- ChartInstanceCasted.data = dataConverted.values;
1834
1670
  if (settings.Legend) {
1835
1671
  ChartInstanceCasted.legend = new am4charts.Legend();
1836
1672
  ChartInstanceCasted.legend.position = (_a = settings === null || settings === void 0 ? void 0 : settings.LegendPosition) !== null && _a !== void 0 ? _a : 'right';
@@ -1853,12 +1689,15 @@ class VerticalChartService {
1853
1689
  categoryAxis.title.text = settings.XAxisTitle;
1854
1690
  categoryAxis.title.fontWeight = "bold";
1855
1691
  }
1856
- categoryAxis.dataFields.category = "k";
1692
+ yAxis.min = 0;
1693
+ categoryAxis.dataFields.category = 'key';
1694
+ categoryAxis.renderer.cellStartLocation = am4core.percent((_f = settings.GroupPaddingPercentage) !== null && _f !== void 0 ? _f : this.DefaultGroupPaddingPercentage).value;
1695
+ categoryAxis.renderer.cellEndLocation = am4core.percent(100 - ((_g = settings.GroupPaddingPercentage) !== null && _g !== void 0 ? _g : this.DefaultGroupPaddingPercentage)).value;
1857
1696
  categoryAxis.renderer.grid.template.location = 0;
1858
- categoryAxis.renderer.minGridDistance = (_f = settings === null || settings === void 0 ? void 0 : settings.MinGridDistance) !== null && _f !== void 0 ? _f : 30;
1697
+ categoryAxis.renderer.minGridDistance = (_h = settings === null || settings === void 0 ? void 0 : settings.MinGridDistance) !== null && _h !== void 0 ? _h : 30;
1859
1698
  let label = categoryAxis.renderer.labels.template;
1860
1699
  label.truncate = true;
1861
- label.maxWidth = (_g = settings.LabelWidth) !== null && _g !== void 0 ? _g : this.LabelWidth;
1700
+ label.maxWidth = (_j = settings.LabelWidth) !== null && _j !== void 0 ? _j : this.LabelWidth;
1862
1701
  label.tooltipText = "{category}";
1863
1702
  if ((settings === null || settings === void 0 ? void 0 : settings.AdaptLabelSizeAndOrientation) == null ? true : settings === null || settings === void 0 ? void 0 : settings.AdaptLabelSizeAndOrientation) {
1864
1703
  categoryAxis.events.on("sizechanged", (ev) => {
@@ -1882,23 +1721,78 @@ class VerticalChartService {
1882
1721
  }
1883
1722
  });
1884
1723
  }
1885
- // Create series
1886
- let series = ChartInstanceCasted.series.push(new am4charts.ColumnSeries());
1887
- series.dataFields.valueY = "v";
1888
- series.dataFields.categoryX = "k";
1889
- series.name = "";
1890
- series.columns.template.tooltipText = "{categoryX}: [bold]{valueY}[/]";
1891
- series.columns.template.fillOpacity = .8;
1892
- series.columns.template.width = am4core.percent((_h = settings.ColumnWidthPercentage) !== null && _h !== void 0 ? _h : this.DefaultColumnWidthPercentage);
1893
- let columnTemplate = series.columns.template;
1894
- columnTemplate.strokeWidth = 2;
1895
- columnTemplate.strokeOpacity = 1;
1724
+ let dataPreConverted = this.Adapter ? this.Adapter.adaptDataForVertical2DChart(data) : data;
1725
+ let dataConverted = [];
1726
+ for (let i = 0; i < dataPreConverted.groups.length; i++) {
1727
+ let item = dataPreConverted.groups[i];
1728
+ let obj = { key: item.name };
1729
+ for (let p = 0; p < item.values.length; p++) {
1730
+ let value = item.values[p];
1731
+ obj[value.k] = value.v;
1732
+ }
1733
+ dataConverted.push(obj);
1734
+ }
1735
+ ChartInstanceCasted.data = dataConverted;
1736
+ if (dataPreConverted.colorInfos)
1737
+ ChartInstanceCasted.colors.list = dataPreConverted.colorInfos.map(c => am4core.color(c.color));
1738
+ //Prendo la prima categoria e mi baso sulle proprietà per dfeinire le serie
1739
+ for (let prop in dataConverted[0])
1740
+ if (prop !== "key")
1741
+ this.createSeries(ChartInstanceCasted, settings, prop, prop);
1896
1742
  return this;
1897
1743
  }
1898
1744
  /** @ignore */
1899
1745
  refreshData(data) {
1900
1746
  //TODO:IMPL
1901
1747
  }
1748
+ /** @ignore */
1749
+ createSeries(chart, settings, value, name) {
1750
+ var _a;
1751
+ let series = chart.series.push(new am4charts.ColumnSeries());
1752
+ series.dataFields.valueY = value;
1753
+ series.dataFields.categoryX = 'key';
1754
+ series.name = name;
1755
+ series.columns.template.tooltipText = "{name} {categoryX}: [bold]{valueY}[/]";
1756
+ series.columns.template.fillOpacity = .8;
1757
+ series.columns.template.width = am4core.percent((_a = settings.ColumnWidthPercentage) !== null && _a !== void 0 ? _a : this.DefaultColumnWidthPercentage);
1758
+ series.events.on("hidden", () => this.arrangeColumns);
1759
+ series.events.on("shown", () => this.arrangeColumns);
1760
+ return series;
1761
+ }
1762
+ /** @ignore */
1763
+ arrangeColumns() {
1764
+ let ChartInstanceCasted = this.ChartInstance;
1765
+ let series = ChartInstanceCasted.series.getIndex(0);
1766
+ let xAxis = ChartInstanceCasted.xAxes.getIndex(0);
1767
+ let w = 1 - xAxis.renderer.cellStartLocation - (1 - xAxis.renderer.cellEndLocation);
1768
+ if (series.dataItems.length > 1) {
1769
+ let x0 = xAxis.getX(series.dataItems.getIndex(0), "categoryX");
1770
+ let x1 = xAxis.getX(series.dataItems.getIndex(1), "categoryX");
1771
+ let delta = ((x1 - x0) / ChartInstanceCasted.series.length) * w;
1772
+ if (am4core.isNumber(delta)) {
1773
+ let middle = ChartInstanceCasted.series.length / 2;
1774
+ let newIndex = 0;
1775
+ ChartInstanceCasted.series.each((series) => {
1776
+ if (!series.isHidden && !series.isHiding) {
1777
+ series.dummyData = newIndex;
1778
+ newIndex++;
1779
+ }
1780
+ else {
1781
+ series.dummyData = ChartInstanceCasted.series.indexOf(series);
1782
+ }
1783
+ });
1784
+ let visibleCount = newIndex;
1785
+ let newMiddle = visibleCount / 2;
1786
+ ChartInstanceCasted.series.each((series) => {
1787
+ let trueIndex = ChartInstanceCasted.series.indexOf(series);
1788
+ let newIndex = series.dummyData;
1789
+ let dx = (newIndex - trueIndex + middle - newMiddle) * delta;
1790
+ series.animate({ property: "dx", to: dx }, series.interpolationDuration, series.interpolationEasing);
1791
+ series.bulletsContainer.animate({ property: "dx", to: dx }, series.interpolationDuration, series.interpolationEasing);
1792
+ });
1793
+ }
1794
+ }
1795
+ }
1902
1796
  }
1903
1797
 
1904
1798
  /**
@@ -2026,6 +1920,139 @@ class VerticalStackedChartService {
2026
1920
  }
2027
1921
  }
2028
1922
 
1923
+ /**
1924
+ * Classe il cui unico scopo è gestire il setup e rendering di un AreaChart
1925
+ */
1926
+ class AreaChartService {
1927
+ /** @ignore */
1928
+ constructor(Adapter) {
1929
+ this.Adapter = Adapter;
1930
+ //******************** Funzione di throttling per non spammare richieste in caso di animazioni attivate
1931
+ //TODO: spostarla in un metodo di utilità (esfaenza/extensions)
1932
+ /** @ignore */
1933
+ this.executionTimers = {};
1934
+ }
1935
+ /**
1936
+ * Metodo che data una coppia Dati - Impostazioni li utilizza per creare e visualizzare un AreaChart
1937
+ */
1938
+ graphicate(data, settings) {
1939
+ var _a, _b, _c, _d, _e, _f;
1940
+ if (settings.Timeline) {
1941
+ console.error("Timeline not supported for area chart");
1942
+ return null;
1943
+ }
1944
+ let dataConverted = this.Adapter ? this.Adapter.adaptDataForAreaChart(data) : data;
1945
+ let showTicks = settings.ShowTicks == null ? true : settings === null || settings === void 0 ? void 0 : settings.ShowTicks;
1946
+ let interval = dataConverted.interval;
1947
+ //Per evitare di dimenticarmeli e gestire comunque bene gli ngif ecc...
1948
+ am4core.options.autoDispose = true;
1949
+ this.ChartInstance = am4core.create(settings.Name, am4charts.XYChart);
1950
+ let ChartInstanceCasted = this.ChartInstance;
1951
+ if (settings.Legend) {
1952
+ ChartInstanceCasted.legend = new am4charts.Legend();
1953
+ ChartInstanceCasted.legend.position = (_a = settings === null || settings === void 0 ? void 0 : settings.LegendPosition) !== null && _a !== void 0 ? _a : 'right';
1954
+ ChartInstanceCasted.legend.itemContainers.template.tooltipText = "{category}";
1955
+ if (settings.LegendPadding) {
1956
+ let template = this.ChartInstance.legend.itemContainers.template;
1957
+ template.paddingTop = (_b = settings.LegendPadding.top) !== null && _b !== void 0 ? _b : 0;
1958
+ template.paddingBottom = (_c = settings.LegendPadding.bottom) !== null && _c !== void 0 ? _c : 0;
1959
+ template.paddingLeft = (_d = settings.LegendPadding.left) !== null && _d !== void 0 ? _d : 0;
1960
+ template.paddingRight = (_e = settings.LegendPadding.right) !== null && _e !== void 0 ? _e : 0;
1961
+ }
1962
+ }
1963
+ let yAxis = ChartInstanceCasted.yAxes.push(new am4charts.ValueAxis());
1964
+ yAxis.tooltip.disabled = true;
1965
+ if (settings.YAxisTitle) {
1966
+ yAxis.title.text = settings.YAxisTitle;
1967
+ yAxis.title.fontWeight = "bold";
1968
+ }
1969
+ yAxis.min = 0;
1970
+ let dateAxis = ChartInstanceCasted.xAxes.push(new am4charts.DateAxis());
1971
+ dateAxis.renderer.minGridDistance = (_f = settings === null || settings === void 0 ? void 0 : settings.MinGridDistance) !== null && _f !== void 0 ? _f : 50;
1972
+ dateAxis.startLocation = 0.5;
1973
+ dateAxis.endLocation = 0.5;
1974
+ if (settings.XAxisTitle) {
1975
+ dateAxis.title.text = settings.XAxisTitle;
1976
+ dateAxis.title.fontWeight = "bold";
1977
+ }
1978
+ if (showTicks) {
1979
+ dateAxis.renderer.ticks.template.disabled = false;
1980
+ dateAxis.renderer.ticks.template.strokeOpacity = 1;
1981
+ dateAxis.renderer.ticks.template.stroke = am4core.color("#495C43");
1982
+ dateAxis.renderer.ticks.template.strokeWidth = 2;
1983
+ dateAxis.renderer.ticks.template.length = 10;
1984
+ dateAxis.renderer.ticks.template.location = 0;
1985
+ }
1986
+ if (!!interval)
1987
+ dateAxis.baseInterval = { count: interval.count, timeUnit: interval.timeunit };
1988
+ // Unisco il dataset e tiro fuori i dati
1989
+ let chartData = [];
1990
+ let seriesToMakeCache = {};
1991
+ let seriesToMake = [];
1992
+ for (let i = 0; i < dataConverted.groups.length; i++) {
1993
+ let group = dataConverted.groups[i];
1994
+ let dataItem = { date: group.name };
1995
+ for (let ii = 0; ii < group.values.length; ii++) {
1996
+ let val = group.values[ii];
1997
+ dataItem[val.k] = val.v;
1998
+ if (!seriesToMakeCache[val.k]) {
1999
+ seriesToMakeCache[val.k] = true;
2000
+ seriesToMake.push(val.k);
2001
+ }
2002
+ }
2003
+ chartData.push(dataItem);
2004
+ }
2005
+ ChartInstanceCasted.data = chartData;
2006
+ //---------------------------------------------------------
2007
+ seriesToMake.forEach(s => { this.createSeries(ChartInstanceCasted, s); });
2008
+ ChartInstanceCasted.cursor = new am4charts.XYCursor();
2009
+ ChartInstanceCasted.cursor.xAxis = dateAxis;
2010
+ dateAxis.events.on("startchanged", t => this.emitSelectionChanged(t, settings));
2011
+ dateAxis.events.on("endchanged", t => this.emitSelectionChanged(t, settings));
2012
+ return this;
2013
+ }
2014
+ /** @ignore */
2015
+ refreshData(data) {
2016
+ //TODO:IMPL
2017
+ }
2018
+ /** @ignore */
2019
+ emitSelectionChanged(ev, settings) {
2020
+ if (settings.OnSelectionChangedCallback) {
2021
+ this.throttla("selchange", () => {
2022
+ var axis = ev.target;
2023
+ var start = new Date(axis.minZoomed);
2024
+ var end = new Date(axis.maxZoomed);
2025
+ var initial = axis.min == axis.minZoomed && axis.max == axis.maxZoomed;
2026
+ settings.OnSelectionChangedCallback({ from: start, to: end, initial: initial });
2027
+ }, 150);
2028
+ }
2029
+ }
2030
+ /** @ignore */
2031
+ createSeries(chart, name) {
2032
+ let series = chart.series.push(new am4charts.LineSeries());
2033
+ series.dataFields.dateX = "date";
2034
+ series.name = name[0].toUpperCase() + name.slice(1);
2035
+ series.dataFields.valueY = name;
2036
+ series.tooltipText = "[#000]{valueY.value}[/]";
2037
+ //series.tooltip.background.fill = am4core.color("#FFF");
2038
+ series.tooltip.getStrokeFromObject = true;
2039
+ series.tooltip.background.strokeWidth = 3;
2040
+ series.tooltip.getFillFromObject = false;
2041
+ series.fillOpacity = 0.6;
2042
+ series.strokeWidth = 2;
2043
+ series.stacked = true;
2044
+ return series;
2045
+ }
2046
+ /** @ignore */
2047
+ throttla(id, func, throttleTime) {
2048
+ //Se ho la funzione che vuole eseguire ripulisco quel timeout
2049
+ if (this.executionTimers[id])
2050
+ clearTimeout(this.executionTimers[id]);
2051
+ //Ricreo il timeout per eseguire quella funzione dopo throttleTime millisecondi
2052
+ this.executionTimers[id] = setTimeout(() => { func(); this.executionTimers[id] = null; }, throttleTime);
2053
+ }
2054
+ }
2055
+
2029
2056
  /**
2030
2057
  * Componente specifico per la graficazione di un qualsiasi tipo di grafico.
2031
2058
  *
@@ -2099,13 +2126,13 @@ class EsChartComponent extends BaseChartComponent {
2099
2126
  }
2100
2127
  }
2101
2128
  }
2102
- 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 });
2103
- 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 });
2129
+ EsChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsChartComponent, deps: [{ token: i0.ElementRef }, { token: ChartLoader }, { token: ChartDispatcher }, { token: i3.DateService }, { token: BaseAdapter }, { token: i0.NgZone }, { token: PLATFORM_ID }, { token: ESC_LOGS }, { token: ESC_ANIMATIONS }, { token: ESC_LOCALE }, { token: ESC_THEME }], target: i0.ɵɵFactoryTarget.Component });
2130
+ EsChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: EsChartComponent, selector: "es-chart", inputs: { Type: "Type", Data: "Data", DataArray: "DataArray" }, usesInheritance: true, ngImport: i0, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"], components: [{ type: PageChartSelector, selector: "chart-pager", inputs: ["Items", "Dtos", "BrowseDelayMs", "StartIndex"], outputs: ["onPageChange"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2104
2131
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsChartComponent, decorators: [{
2105
2132
  type: Component,
2106
2133
  args: [{ selector: 'es-chart', changeDetection: ChangeDetectionStrategy.OnPush, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"] }]
2107
2134
  }], ctorParameters: function () {
2108
- return [{ type: i0.ElementRef }, { type: ChartLoader }, { type: ChartDispatcher }, { type: i2.DateService }, { type: BaseAdapter }, { type: i0.NgZone }, { type: Object, decorators: [{
2135
+ return [{ type: i0.ElementRef }, { type: ChartLoader }, { type: ChartDispatcher }, { type: i3.DateService }, { type: BaseAdapter }, { type: i0.NgZone }, { type: Object, decorators: [{
2109
2136
  type: Inject,
2110
2137
  args: [PLATFORM_ID]
2111
2138
  }] }, { type: undefined, decorators: [{
@@ -2173,7 +2200,7 @@ class EsAreaChartComponent extends BaseChartComponent {
2173
2200
  }
2174
2201
  }
2175
2202
  EsAreaChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsAreaChartComponent, deps: [{ token: i0.ElementRef }, { token: ChartLoader }, { token: ChartDispatcher }, { token: BaseAdapter }, { token: i0.NgZone }, { token: PLATFORM_ID }, { token: ESC_LOGS }, { token: ESC_ANIMATIONS }, { token: ESC_LOCALE }, { token: ESC_THEME }], target: i0.ɵɵFactoryTarget.Component });
2176
- 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 });
2203
+ EsAreaChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: EsAreaChartComponent, selector: "es-area-chart", inputs: { Data: "Data", DataArray: "DataArray" }, usesInheritance: true, ngImport: i0, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"], components: [{ type: PageChartSelector, selector: "chart-pager", inputs: ["Items", "Dtos", "BrowseDelayMs", "StartIndex"], outputs: ["onPageChange"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2177
2204
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsAreaChartComponent, decorators: [{
2178
2205
  type: Component,
2179
2206
  args: [{ selector: 'es-area-chart', changeDetection: ChangeDetectionStrategy.OnPush, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"] }]
@@ -2254,13 +2281,13 @@ class EsLineChartComponent extends BaseChartComponent {
2254
2281
  return new LineChartService(this.adapter, this.dateService).graphicate(this.Data, settingsCasted);
2255
2282
  }
2256
2283
  }
2257
- 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 });
2258
- 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 });
2284
+ EsLineChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsLineChartComponent, deps: [{ token: i0.ElementRef }, { token: ChartLoader }, { token: ChartDispatcher }, { token: BaseAdapter }, { token: i3.DateService }, { token: i0.NgZone }, { token: PLATFORM_ID }, { token: ESC_LOGS }, { token: ESC_ANIMATIONS }, { token: ESC_LOCALE }, { token: ESC_THEME }], target: i0.ɵɵFactoryTarget.Component });
2285
+ EsLineChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: EsLineChartComponent, selector: "es-line-chart", inputs: { Data: "Data", DataArray: "DataArray", Step: "Step", DataGroupBucketSize: "DataGroupBucketSize", DataGroupingThreshold: "DataGroupingThreshold", StrokeSize: "StrokeSize", AllowGaps: "AllowGaps", MergeDatasets: "MergeDatasets", FinalInstants: "FinalInstants", Min: "Min", Max: "Max", Fill: "Fill" }, usesInheritance: true, ngImport: i0, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"], components: [{ type: PageChartSelector, selector: "chart-pager", inputs: ["Items", "Dtos", "BrowseDelayMs", "StartIndex"], outputs: ["onPageChange"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2259
2286
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsLineChartComponent, decorators: [{
2260
2287
  type: Component,
2261
2288
  args: [{ selector: 'es-line-chart', changeDetection: ChangeDetectionStrategy.OnPush, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"] }]
2262
2289
  }], ctorParameters: function () {
2263
- return [{ type: i0.ElementRef }, { type: ChartLoader }, { type: ChartDispatcher }, { type: BaseAdapter }, { type: i2.DateService }, { type: i0.NgZone }, { type: Object, decorators: [{
2290
+ return [{ type: i0.ElementRef }, { type: ChartLoader }, { type: ChartDispatcher }, { type: BaseAdapter }, { type: i3.DateService }, { type: i0.NgZone }, { type: Object, decorators: [{
2264
2291
  type: Inject,
2265
2292
  args: [PLATFORM_ID]
2266
2293
  }] }, { type: undefined, decorators: [{
@@ -2353,7 +2380,7 @@ class EsPieChartComponent extends BaseChartComponent {
2353
2380
  }
2354
2381
  }
2355
2382
  EsPieChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsPieChartComponent, deps: [{ token: i0.ElementRef }, { token: ChartLoader }, { token: ChartDispatcher }, { token: BaseAdapter }, { token: i0.NgZone }, { token: PLATFORM_ID }, { token: ESC_LOGS }, { token: ESC_ANIMATIONS }, { token: ESC_LOCALE }, { token: ESC_THEME }], target: i0.ɵɵFactoryTarget.Component });
2356
- 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 });
2383
+ EsPieChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: EsPieChartComponent, selector: "es-pie-chart", inputs: { Data: "Data", DataArray: "DataArray", HideZeroes: "HideZeroes", Mode3D: "Mode3D", DonutRadiusPercentage: "DonutRadiusPercentage", LabelsWrap: "LabelsWrap", LabelsTruncate: "LabelsTruncate", LabelsWidth: "LabelsWidth", LabelsVisible: "LabelsVisible" }, usesInheritance: true, ngImport: i0, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"], components: [{ type: PageChartSelector, selector: "chart-pager", inputs: ["Items", "Dtos", "BrowseDelayMs", "StartIndex"], outputs: ["onPageChange"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2357
2384
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsPieChartComponent, decorators: [{
2358
2385
  type: Component,
2359
2386
  args: [{ selector: 'es-pie-chart', changeDetection: ChangeDetectionStrategy.OnPush, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"] }]
@@ -2444,7 +2471,7 @@ class EsVertical2DChartComponent extends BaseChartComponent {
2444
2471
  }
2445
2472
  }
2446
2473
  EsVertical2DChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsVertical2DChartComponent, deps: [{ token: i0.ElementRef }, { token: ChartLoader }, { token: ChartDispatcher }, { token: BaseAdapter }, { token: i0.NgZone }, { token: PLATFORM_ID }, { token: ESC_LOGS }, { token: ESC_ANIMATIONS }, { token: ESC_LOCALE }, { token: ESC_THEME }], target: i0.ɵɵFactoryTarget.Component });
2447
- 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 });
2474
+ EsVertical2DChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: EsVertical2DChartComponent, selector: "es-vertical-2d-chart", inputs: { Data: "Data", DataArray: "DataArray", ColumnWidthPercentage: "ColumnWidthPercentage", GroupPaddingPercentage: "GroupPaddingPercentage", LabelWidth: "LabelWidth", LabelVerticalOrientationCutoffWidth: "LabelVerticalOrientationCutoffWidth", LabelRightWhenCompressed: "LabelRightWhenCompressed", LabelTopWhenCompressed: "LabelTopWhenCompressed" }, usesInheritance: true, ngImport: i0, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"], components: [{ type: PageChartSelector, selector: "chart-pager", inputs: ["Items", "Dtos", "BrowseDelayMs", "StartIndex"], outputs: ["onPageChange"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2448
2475
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsVertical2DChartComponent, decorators: [{
2449
2476
  type: Component,
2450
2477
  args: [{ selector: 'es-vertical-2d-chart', changeDetection: ChangeDetectionStrategy.OnPush, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"] }]
@@ -2532,7 +2559,7 @@ class EsVerticalChartComponent extends BaseChartComponent {
2532
2559
  }
2533
2560
  }
2534
2561
  EsVerticalChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsVerticalChartComponent, deps: [{ token: i0.ElementRef }, { token: ChartLoader }, { token: ChartDispatcher }, { token: BaseAdapter }, { token: i0.NgZone }, { token: PLATFORM_ID }, { token: ESC_LOGS }, { token: ESC_ANIMATIONS }, { token: ESC_LOCALE }, { token: ESC_THEME }], target: i0.ɵɵFactoryTarget.Component });
2535
- 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 });
2562
+ EsVerticalChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: EsVerticalChartComponent, selector: "es-vertical-chart", inputs: { Data: "Data", DataArray: "DataArray", ColumnWidthPercentage: "ColumnWidthPercentage", LabelWidth: "LabelWidth", LabelVerticalOrientationCutoffWidth: "LabelVerticalOrientationCutoffWidth", LabelRightWhenCompressed: "LabelRightWhenCompressed", LabelTopWhenCompressed: "LabelTopWhenCompressed" }, usesInheritance: true, ngImport: i0, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"], components: [{ type: PageChartSelector, selector: "chart-pager", inputs: ["Items", "Dtos", "BrowseDelayMs", "StartIndex"], outputs: ["onPageChange"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2536
2563
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsVerticalChartComponent, decorators: [{
2537
2564
  type: Component,
2538
2565
  args: [{ selector: 'es-vertical-chart', changeDetection: ChangeDetectionStrategy.OnPush, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"] }]
@@ -2618,7 +2645,7 @@ class EsVerticalStackedChartComponent extends BaseChartComponent {
2618
2645
  }
2619
2646
  }
2620
2647
  EsVerticalStackedChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsVerticalStackedChartComponent, deps: [{ token: i0.ElementRef }, { token: ChartLoader }, { token: ChartDispatcher }, { token: BaseAdapter }, { token: i0.NgZone }, { token: PLATFORM_ID }, { token: ESC_LOGS }, { token: ESC_ANIMATIONS }, { token: ESC_LOCALE }, { token: ESC_THEME }], target: i0.ɵɵFactoryTarget.Component });
2621
- 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 });
2648
+ EsVerticalStackedChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: EsVerticalStackedChartComponent, selector: "es-vertical-stacked-chart", inputs: { Data: "Data", DataArray: "DataArray", ColumnWidthPercentage: "ColumnWidthPercentage", LabelWidth: "LabelWidth", LabelVerticalOrientationCutoffWidth: "LabelVerticalOrientationCutoffWidth", LabelRightWhenCompressed: "LabelRightWhenCompressed", LabelTopWhenCompressed: "LabelTopWhenCompressed" }, usesInheritance: true, ngImport: i0, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"], components: [{ type: PageChartSelector, selector: "chart-pager", inputs: ["Items", "Dtos", "BrowseDelayMs", "StartIndex"], outputs: ["onPageChange"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2622
2649
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: EsVerticalStackedChartComponent, decorators: [{
2623
2650
  type: Component,
2624
2651
  args: [{ selector: 'es-vertical-stacked-chart', changeDetection: ChangeDetectionStrategy.OnPush, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"] }]
@@ -2737,5 +2764,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
2737
2764
  * Generated bundle index. Do not edit.
2738
2765
  */
2739
2766
 
2740
- export { AreaChartData, AreaChartSettings, BaseAdapter, BaseInterval, BaseSettings, ChartThemes, DateValue, EsAreaChartComponent, EsChartComponent, EsChartsModule, EsLineChartComponent, EsPieChartComponent, EsVertical2DChartComponent, EsVerticalChartComponent, EsVerticalStackedChartComponent, KeyValue, KeyValueColor, LegendPad, Limit, LineChartData, LineChartSettings, LineSerie, PageChartSelector, PagedChartData, PieChartData, PieChartSettings, Vertical2DChartData, Vertical2DChartSettings, VerticalChartData, VerticalChartSettings, VerticalStackedChartData, VerticalStackedChartSettings };
2767
+ export { AreaChartData, AreaChartSettings, BaseAdapter, BaseChartComponent, BaseInterval, BaseSettings, ChartThemes, DateValue, EsAreaChartComponent, EsChartComponent, EsChartsModule, EsLineChartComponent, EsPieChartComponent, EsVertical2DChartComponent, EsVerticalChartComponent, EsVerticalStackedChartComponent, KeyValue, KeyValueColor, LegendPad, Limit, LineChartData, LineChartSettings, LineSerie, PageChartSelector, PagedChartData, PieChartData, PieChartSettings, Vertical2DChartData, Vertical2DChartSettings, VerticalChartData, VerticalChartSettings, VerticalStackedChartData, VerticalStackedChartSettings };
2741
2768
  //# sourceMappingURL=esfaenza-es-charts.mjs.map