nuxeo-development-framework 5.2.9 → 5.3.1

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 (241) hide show
  1. package/bundles/nuxeo-development-framework.umd.js +3064 -571
  2. package/bundles/nuxeo-development-framework.umd.js.map +1 -1
  3. package/esm2015/lib/components/reports/charts/chart.const.js +3 -0
  4. package/esm2015/lib/components/reports/charts/chart.token.js +3 -0
  5. package/esm2015/lib/components/reports/charts/charts.module.js +19 -0
  6. package/esm2015/lib/components/reports/charts/components/base-chart.component.js +41 -0
  7. package/esm2015/lib/components/reports/charts/components/chart.component.js +127 -0
  8. package/esm2015/lib/components/reports/charts/components/data-chart.component.js +167 -0
  9. package/esm2015/lib/components/reports/charts/components/index.js +4 -0
  10. package/esm2015/lib/components/reports/charts/defaults/bar.js +18 -0
  11. package/esm2015/lib/components/reports/charts/defaults/doughnut.js +15 -0
  12. package/esm2015/lib/components/reports/charts/defaults/index.js +5 -0
  13. package/esm2015/lib/components/reports/charts/defaults/line.js +25 -0
  14. package/esm2015/lib/components/reports/charts/defaults/pie.js +15 -0
  15. package/esm2015/lib/components/reports/charts/index.js +2 -0
  16. package/esm2015/lib/components/reports/charts/models/index.js +5 -0
  17. package/esm2015/lib/components/reports/charts/models/options.js +2 -0
  18. package/esm2015/lib/components/reports/charts/models/plugins-options.js +2 -0
  19. package/esm2015/lib/components/reports/charts/models/response.js +2 -0
  20. package/esm2015/lib/components/reports/charts/models/statistic-request-config.js +2 -0
  21. package/esm2015/lib/components/reports/charts/plugins/data-labels.js +144 -0
  22. package/esm2015/lib/components/reports/charts/plugins/doughnut-center-text.js +25 -0
  23. package/esm2015/lib/components/reports/charts/plugins/doughnut-empty-state.js +34 -0
  24. package/esm2015/lib/components/reports/charts/plugins/index.js +6 -0
  25. package/esm2015/lib/components/reports/charts/plugins/legend-margin.js +16 -0
  26. package/esm2015/lib/components/reports/charts/plugins/scrollable-legends.js +67 -0
  27. package/esm2015/lib/components/reports/charts/public-api.js +10 -0
  28. package/esm2015/lib/components/reports/charts/services/index.js +2 -0
  29. package/esm2015/lib/components/reports/charts/services/statistic.service.js +75 -0
  30. package/esm2015/lib/components/reports/charts/utility/colors.js +74 -0
  31. package/esm2015/lib/components/reports/charts/utility/common.js +7 -0
  32. package/esm2015/lib/components/reports/charts/utility/css.js +132 -0
  33. package/esm2015/lib/components/reports/charts/utility/index.js +4 -0
  34. package/esm2015/lib/components/reports/ndf-reports/base/base-chart.js +53 -0
  35. package/esm2015/lib/components/reports/ndf-reports/base/base-graph.report.js +37 -0
  36. package/esm2015/lib/components/reports/ndf-reports/base/base-report.js +68 -0
  37. package/esm2015/lib/components/reports/ndf-reports/charts-components/digit-chart/digit-chart.component.js +36 -0
  38. package/esm2015/lib/components/reports/ndf-reports/charts-components/graph-chart/graph-chart.component.js +65 -0
  39. package/esm2015/lib/components/reports/ndf-reports/charts-components/graph-chart/graph-chart.service.js +14 -0
  40. package/esm2015/lib/components/reports/ndf-reports/charts-components/index.js +3 -0
  41. package/esm2015/lib/components/reports/ndf-reports/components/_parts/chart-type-selector/chart-type-selector.component.js +71 -0
  42. package/esm2015/lib/components/reports/ndf-reports/components/_parts/graph-dialog/graph-dialog.component.js +66 -0
  43. package/esm2015/lib/components/reports/ndf-reports/components/_parts/index.js +5 -0
  44. package/esm2015/lib/components/reports/ndf-reports/components/_parts/time-group-selector/time-group-selector.component.js +55 -0
  45. package/esm2015/lib/components/reports/ndf-reports/components/_parts/timeline-dialog/timeline-dialog.component.js +47 -0
  46. package/esm2015/lib/components/reports/ndf-reports/components/chart-panel.component.js +61 -0
  47. package/esm2015/lib/components/reports/ndf-reports/components/digit-report/digit-report.component.js +25 -0
  48. package/esm2015/lib/components/reports/ndf-reports/components/dynamic-timeline-report/dynamic-timeline-report.component.js +73 -0
  49. package/esm2015/lib/components/reports/ndf-reports/components/graph-report/graph-report.component.js +61 -0
  50. package/esm2015/lib/components/reports/ndf-reports/components/index.js +6 -0
  51. package/esm2015/lib/components/reports/ndf-reports/constants/charts-types.js +13 -0
  52. package/esm2015/lib/components/reports/ndf-reports/constants/index.js +3 -0
  53. package/esm2015/lib/components/reports/ndf-reports/constants/time-group.js +7 -0
  54. package/esm2015/lib/components/reports/ndf-reports/containers/index.js +3 -0
  55. package/esm2015/lib/components/reports/ndf-reports/containers/ndf-report/ndf-report.component.js +42 -0
  56. package/esm2015/lib/components/reports/ndf-reports/containers/ndf-reports/ndf-reports.component.js +245 -0
  57. package/esm2015/lib/components/reports/ndf-reports/directives/index.js +2 -0
  58. package/esm2015/lib/components/reports/ndf-reports/directives/scrollable-div.directive.js +35 -0
  59. package/esm2015/lib/components/reports/ndf-reports/index.js +2 -0
  60. package/esm2015/lib/components/reports/ndf-reports/models/base.js +2 -0
  61. package/esm2015/lib/components/reports/ndf-reports/models/common.js +2 -0
  62. package/esm2015/lib/components/reports/ndf-reports/models/details.js +2 -0
  63. package/esm2015/lib/components/reports/ndf-reports/models/dialog-data.js +2 -0
  64. package/esm2015/lib/components/reports/ndf-reports/models/digit.js +2 -0
  65. package/esm2015/lib/components/reports/ndf-reports/models/dynamic-line.js +2 -0
  66. package/esm2015/lib/components/reports/ndf-reports/models/graph.js +2 -0
  67. package/esm2015/lib/components/reports/ndf-reports/models/index.js +13 -0
  68. package/esm2015/lib/components/reports/ndf-reports/models/ndf-reports.config.js +2 -0
  69. package/esm2015/lib/components/reports/ndf-reports/models/report-config.js +2 -0
  70. package/esm2015/lib/components/reports/ndf-reports/models/report-data-source.js +2 -0
  71. package/esm2015/lib/components/reports/ndf-reports/models/report-response.model.js +2 -0
  72. package/esm2015/lib/components/reports/ndf-reports/models/request.js +2 -0
  73. package/esm2015/lib/components/reports/ndf-reports/ndf-reports.module.js +101 -0
  74. package/esm2015/lib/components/reports/ndf-reports/options/doughnut.js +29 -0
  75. package/esm2015/lib/components/reports/ndf-reports/options/horizontal-bar.js +48 -0
  76. package/esm2015/lib/components/reports/ndf-reports/options/index.js +7 -0
  77. package/esm2015/lib/components/reports/ndf-reports/options/line.js +41 -0
  78. package/esm2015/lib/components/reports/ndf-reports/options/options.js +15 -0
  79. package/esm2015/lib/components/reports/ndf-reports/options/pie.js +28 -0
  80. package/esm2015/lib/components/reports/ndf-reports/options/vertical-bar.js +41 -0
  81. package/esm2015/lib/components/reports/ndf-reports/public-api.js +6 -0
  82. package/esm2015/lib/components/reports/ndf-reports/services/base-chart-builder.service.js +103 -0
  83. package/esm2015/lib/components/reports/ndf-reports/services/chart-data-transformers.service.js +97 -0
  84. package/esm2015/lib/components/reports/ndf-reports/services/chart-manager.service.js +131 -0
  85. package/esm2015/lib/components/reports/ndf-reports/services/chart-plugins-registry.service.js +49 -0
  86. package/esm2015/lib/components/reports/ndf-reports/services/digit-chart.service.js +42 -0
  87. package/esm2015/lib/components/reports/ndf-reports/services/dynamic-timeline-report.service.js +72 -0
  88. package/esm2015/lib/components/reports/ndf-reports/services/index.js +11 -0
  89. package/esm2015/lib/components/reports/ndf-reports/services/ndf-reports.service.js +49 -0
  90. package/esm2015/lib/components/reports/ndf-reports/services/report-config-mapper.service.js +82 -0
  91. package/esm2015/lib/components/reports/ndf-reports/services/report-transform.service.js +98 -0
  92. package/esm2015/lib/components/reports/ndf-reports/services/reports-state.service.js +19 -0
  93. package/esm2015/lib/components/reports/ndf-reports/utilities/index.js +2 -0
  94. package/esm2015/lib/components/reports/ndf-reports/utilities/reports-table.mapper.js +44 -0
  95. package/esm2015/lib/components/spell-checker-field/spell-checker-field.module.js +1 -1
  96. package/esm2015/lib/components/tables/ndf-table/filters-panel/index.js +1 -2
  97. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/types-helper.js +1 -1
  98. package/esm2015/lib/components/tables/ndf-table/filters-panel/services/aggregation-field.service.js +2 -2
  99. package/esm2015/lib/components/tables/ndf-table/filters-panel/services/index.js +1 -2
  100. package/esm2015/lib/components/tables/ndf-table/ndf-table.module.js +2 -2
  101. package/esm2015/lib/core/services/index.js +2 -1
  102. package/esm2015/lib/core/services/ndf-transform.service.js +80 -0
  103. package/esm2015/lib/shared/components/index.js +3 -3
  104. package/esm2015/lib/shared/components/nuxeo-dialog/nuxeo.dialog.js +3 -1
  105. package/esm2015/lib/shared/services/base/base.service.js +7 -4
  106. package/esm2015/lib/shared/services/index.js +2 -2
  107. package/esm2015/lib/shared-services/apis-errors-messages.service.js +31 -0
  108. package/esm2015/public-api.js +9 -6
  109. package/fesm2015/nuxeo-development-framework.js +2710 -408
  110. package/fesm2015/nuxeo-development-framework.js.map +1 -1
  111. package/lib/components/{charts → reports/charts}/components/base-chart.component.d.ts +1 -1
  112. package/lib/components/reports/charts/index.d.ts +1 -0
  113. package/lib/components/reports/charts/plugins/data-labels.d.ts +3 -0
  114. package/lib/components/{charts → reports/charts}/plugins/index.d.ts +2 -0
  115. package/lib/components/reports/charts/plugins/scrollable-legends.d.ts +6 -0
  116. package/lib/components/{charts → reports/charts}/services/statistic.service.d.ts +2 -2
  117. package/lib/components/reports/charts/utility/css.d.ts +45 -0
  118. package/lib/components/{charts → reports/charts}/utility/index.d.ts +1 -0
  119. package/lib/components/reports/ndf-reports/base/base-chart.d.ts +27 -0
  120. package/lib/components/reports/ndf-reports/base/base-graph.report.d.ts +19 -0
  121. package/lib/components/reports/ndf-reports/base/base-report.d.ts +58 -0
  122. package/lib/components/reports/ndf-reports/charts-components/digit-chart/digit-chart.component.d.ts +14 -0
  123. package/lib/components/reports/ndf-reports/charts-components/graph-chart/graph-chart.component.d.ts +23 -0
  124. package/lib/components/reports/ndf-reports/charts-components/graph-chart/graph-chart.service.d.ts +6 -0
  125. package/lib/components/reports/ndf-reports/charts-components/index.d.ts +2 -0
  126. package/lib/components/reports/ndf-reports/components/_parts/chart-type-selector/chart-type-selector.component.d.ts +23 -0
  127. package/lib/components/reports/ndf-reports/components/_parts/graph-dialog/graph-dialog.component.d.ts +17 -0
  128. package/lib/components/reports/ndf-reports/components/_parts/index.d.ts +4 -0
  129. package/lib/components/reports/ndf-reports/components/_parts/time-group-selector/time-group-selector.component.d.ts +21 -0
  130. package/lib/components/reports/ndf-reports/components/_parts/timeline-dialog/timeline-dialog.component.d.ts +19 -0
  131. package/lib/components/reports/ndf-reports/components/chart-panel.component.d.ts +13 -0
  132. package/lib/components/reports/ndf-reports/components/digit-report/digit-report.component.d.ts +7 -0
  133. package/lib/components/reports/ndf-reports/components/dynamic-timeline-report/dynamic-timeline-report.component.d.ts +20 -0
  134. package/lib/components/reports/ndf-reports/components/graph-report/graph-report.component.d.ts +12 -0
  135. package/lib/components/reports/ndf-reports/components/index.d.ts +5 -0
  136. package/lib/components/reports/ndf-reports/constants/charts-types.d.ts +12 -0
  137. package/lib/components/reports/ndf-reports/constants/index.d.ts +2 -0
  138. package/lib/components/reports/ndf-reports/constants/time-group.d.ts +6 -0
  139. package/lib/components/reports/ndf-reports/containers/index.d.ts +2 -0
  140. package/lib/components/reports/ndf-reports/containers/ndf-report/ndf-report.component.d.ts +32 -0
  141. package/lib/components/reports/ndf-reports/containers/ndf-reports/ndf-reports.component.d.ts +92 -0
  142. package/lib/components/reports/ndf-reports/directives/index.d.ts +1 -0
  143. package/lib/components/reports/ndf-reports/directives/scrollable-div.directive.d.ts +14 -0
  144. package/lib/components/reports/ndf-reports/index.d.ts +1 -0
  145. package/lib/components/reports/ndf-reports/models/base.d.ts +18 -0
  146. package/lib/components/reports/ndf-reports/models/common.d.ts +20 -0
  147. package/lib/components/reports/ndf-reports/models/details.d.ts +16 -0
  148. package/lib/components/reports/ndf-reports/models/dialog-data.d.ts +12 -0
  149. package/lib/components/reports/ndf-reports/models/digit.d.ts +17 -0
  150. package/lib/components/reports/ndf-reports/models/dynamic-line.d.ts +52 -0
  151. package/lib/components/reports/ndf-reports/models/graph.d.ts +56 -0
  152. package/lib/components/reports/ndf-reports/models/index.d.ts +12 -0
  153. package/lib/components/reports/ndf-reports/models/ndf-reports.config.d.ts +22 -0
  154. package/lib/components/reports/ndf-reports/models/report-config.d.ts +5 -0
  155. package/lib/components/reports/ndf-reports/models/report-data-source.d.ts +7 -0
  156. package/lib/components/reports/ndf-reports/models/report-response.model.d.ts +4 -0
  157. package/lib/components/reports/ndf-reports/models/request.d.ts +10 -0
  158. package/lib/components/reports/ndf-reports/ndf-reports.module.d.ts +34 -0
  159. package/lib/components/reports/ndf-reports/options/doughnut.d.ts +7 -0
  160. package/lib/components/reports/ndf-reports/options/horizontal-bar.d.ts +7 -0
  161. package/lib/components/reports/ndf-reports/options/index.d.ts +6 -0
  162. package/lib/components/reports/ndf-reports/options/line.d.ts +7 -0
  163. package/lib/components/reports/ndf-reports/options/options.d.ts +2 -0
  164. package/lib/components/reports/ndf-reports/options/pie.d.ts +7 -0
  165. package/lib/components/reports/ndf-reports/options/vertical-bar.d.ts +7 -0
  166. package/lib/components/reports/ndf-reports/public-api.d.ts +5 -0
  167. package/lib/components/reports/ndf-reports/services/base-chart-builder.service.d.ts +59 -0
  168. package/lib/components/reports/ndf-reports/services/chart-data-transformers.service.d.ts +68 -0
  169. package/lib/components/reports/ndf-reports/services/chart-manager.service.d.ts +18 -0
  170. package/lib/components/reports/ndf-reports/services/chart-plugins-registry.service.d.ts +34 -0
  171. package/lib/components/reports/ndf-reports/services/digit-chart.service.d.ts +11 -0
  172. package/lib/components/reports/ndf-reports/services/dynamic-timeline-report.service.d.ts +32 -0
  173. package/lib/components/reports/ndf-reports/services/index.d.ts +10 -0
  174. package/lib/components/reports/ndf-reports/services/ndf-reports.service.d.ts +19 -0
  175. package/lib/components/reports/ndf-reports/services/report-config-mapper.service.d.ts +34 -0
  176. package/lib/components/reports/ndf-reports/services/report-transform.service.d.ts +18 -0
  177. package/lib/components/reports/ndf-reports/services/reports-state.service.d.ts +7 -0
  178. package/lib/components/reports/ndf-reports/utilities/index.d.ts +1 -0
  179. package/lib/components/reports/ndf-reports/utilities/reports-table.mapper.d.ts +3 -0
  180. package/lib/components/tables/ndf-table/filters-panel/index.d.ts +0 -1
  181. package/lib/components/tables/ndf-table/filters-panel/models/types-helper.d.ts +1 -9
  182. package/lib/components/tables/ndf-table/filters-panel/services/aggregation-field.service.d.ts +1 -1
  183. package/lib/components/tables/ndf-table/filters-panel/services/index.d.ts +0 -1
  184. package/lib/core/services/index.d.ts +1 -0
  185. package/lib/{components/tables/ndf-table/filters-panel → core}/services/ndf-transform.service.d.ts +7 -1
  186. package/lib/shared/components/index.d.ts +2 -2
  187. package/lib/shared/services/index.d.ts +1 -1
  188. package/lib/shared-services/apis-errors-messages.service.d.ts +11 -0
  189. package/package.json +1 -1
  190. package/public-api.d.ts +8 -5
  191. package/esm2015/lib/components/charts/chart.const.js +0 -3
  192. package/esm2015/lib/components/charts/chart.token.js +0 -3
  193. package/esm2015/lib/components/charts/charts.module.js +0 -19
  194. package/esm2015/lib/components/charts/components/base-chart.component.js +0 -41
  195. package/esm2015/lib/components/charts/components/chart.component.js +0 -127
  196. package/esm2015/lib/components/charts/components/data-chart.component.js +0 -167
  197. package/esm2015/lib/components/charts/components/index.js +0 -4
  198. package/esm2015/lib/components/charts/defaults/bar.js +0 -18
  199. package/esm2015/lib/components/charts/defaults/doughnut.js +0 -15
  200. package/esm2015/lib/components/charts/defaults/index.js +0 -5
  201. package/esm2015/lib/components/charts/defaults/line.js +0 -25
  202. package/esm2015/lib/components/charts/defaults/pie.js +0 -15
  203. package/esm2015/lib/components/charts/index.js +0 -10
  204. package/esm2015/lib/components/charts/models/index.js +0 -5
  205. package/esm2015/lib/components/charts/models/options.js +0 -2
  206. package/esm2015/lib/components/charts/models/plugins-options.js +0 -2
  207. package/esm2015/lib/components/charts/models/response.js +0 -2
  208. package/esm2015/lib/components/charts/models/statistic-request-config.js +0 -2
  209. package/esm2015/lib/components/charts/plugins/doughnut-center-text.js +0 -25
  210. package/esm2015/lib/components/charts/plugins/doughnut-empty-state.js +0 -34
  211. package/esm2015/lib/components/charts/plugins/index.js +0 -4
  212. package/esm2015/lib/components/charts/plugins/legend-margin.js +0 -16
  213. package/esm2015/lib/components/charts/services/index.js +0 -2
  214. package/esm2015/lib/components/charts/services/statistic.service.js +0 -75
  215. package/esm2015/lib/components/charts/utility/colors.js +0 -79
  216. package/esm2015/lib/components/charts/utility/common.js +0 -7
  217. package/esm2015/lib/components/charts/utility/index.js +0 -3
  218. package/esm2015/lib/components/tables/ndf-table/filters-panel/services/ndf-transform.service.js +0 -80
  219. /package/lib/components/{charts → reports/charts}/chart.const.d.ts +0 -0
  220. /package/lib/components/{charts → reports/charts}/chart.token.d.ts +0 -0
  221. /package/lib/components/{charts → reports/charts}/charts.module.d.ts +0 -0
  222. /package/lib/components/{charts → reports/charts}/components/chart.component.d.ts +0 -0
  223. /package/lib/components/{charts → reports/charts}/components/data-chart.component.d.ts +0 -0
  224. /package/lib/components/{charts → reports/charts}/components/index.d.ts +0 -0
  225. /package/lib/components/{charts → reports/charts}/defaults/bar.d.ts +0 -0
  226. /package/lib/components/{charts → reports/charts}/defaults/doughnut.d.ts +0 -0
  227. /package/lib/components/{charts → reports/charts}/defaults/index.d.ts +0 -0
  228. /package/lib/components/{charts → reports/charts}/defaults/line.d.ts +0 -0
  229. /package/lib/components/{charts → reports/charts}/defaults/pie.d.ts +0 -0
  230. /package/lib/components/{charts → reports/charts}/models/index.d.ts +0 -0
  231. /package/lib/components/{charts → reports/charts}/models/options.d.ts +0 -0
  232. /package/lib/components/{charts → reports/charts}/models/plugins-options.d.ts +0 -0
  233. /package/lib/components/{charts → reports/charts}/models/response.d.ts +0 -0
  234. /package/lib/components/{charts → reports/charts}/models/statistic-request-config.d.ts +0 -0
  235. /package/lib/components/{charts → reports/charts}/plugins/doughnut-center-text.d.ts +0 -0
  236. /package/lib/components/{charts → reports/charts}/plugins/doughnut-empty-state.d.ts +0 -0
  237. /package/lib/components/{charts → reports/charts}/plugins/legend-margin.d.ts +0 -0
  238. /package/lib/components/{charts/index.d.ts → reports/charts/public-api.d.ts} +0 -0
  239. /package/lib/components/{charts → reports/charts}/services/index.d.ts +0 -0
  240. /package/lib/components/{charts → reports/charts}/utility/colors.d.ts +0 -0
  241. /package/lib/components/{charts → reports/charts}/utility/common.d.ts +0 -0
@@ -0,0 +1,131 @@
1
+ import { __awaiter } from "tslib";
2
+ import { DOCUMENT } from '@angular/common';
3
+ import { Inject, Injectable } from '@angular/core';
4
+ import { Chart } from 'chart.js/auto';
5
+ import * as moment from 'moment';
6
+ import { ChartPlugins } from '../../charts';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@ngx-translate/core";
9
+ export class ChartManagerService {
10
+ constructor(_translateService, _document) {
11
+ this._translateService = _translateService;
12
+ this._document = _document;
13
+ this._charts = new Map();
14
+ }
15
+ setChart(chart) {
16
+ this._charts.set(chart.id, chart);
17
+ }
18
+ getChart(id) {
19
+ return this._charts.get(id);
20
+ }
21
+ resizeCharts() {
22
+ this._charts.forEach((chart) => {
23
+ if (chart.canvas && chart.canvas.ownerDocument) {
24
+ chart.resize();
25
+ }
26
+ });
27
+ }
28
+ destroy(id) {
29
+ const _chart = this._charts.get(id);
30
+ if (_chart) {
31
+ _chart.destroy();
32
+ this._charts.delete(id);
33
+ }
34
+ }
35
+ destroyAll() {
36
+ this._charts.forEach((chart) => {
37
+ chart.destroy();
38
+ });
39
+ this._charts.clear();
40
+ }
41
+ printChart(id, label) {
42
+ return __awaiter(this, void 0, void 0, function* () {
43
+ const _chart = this._charts.get(id);
44
+ if (!_chart) {
45
+ return;
46
+ }
47
+ const { chart, destroy: destroyTempChart } = yield this._createHiddenCanvasForExport(_chart, label);
48
+ if (!chart) {
49
+ return;
50
+ }
51
+ const imageLink = this._document.createElement('a');
52
+ const date = moment().format('YYYY-MM-DD_HH-mm-ss');
53
+ imageLink.href = chart.canvas.toDataURL('image/jpeg', 0.9);
54
+ imageLink.download = `${label}-${date}.jpg`;
55
+ imageLink.click();
56
+ destroyTempChart();
57
+ });
58
+ }
59
+ _createHiddenCanvasForExport(chart, label) {
60
+ const currentLang = this._translateService.currentLang;
61
+ return new Promise((resolve) => {
62
+ var _a;
63
+ const padding = 40;
64
+ const hiddenCanvas = this._document.createElement('canvas');
65
+ const [width, height] = [1024, 600];
66
+ hiddenCanvas.style.width = `${width}px`;
67
+ hiddenCanvas.style.height = `${height}px`;
68
+ hiddenCanvas.width = width;
69
+ hiddenCanvas.height = height;
70
+ hiddenCanvas.id = 'hiddenCanvas';
71
+ this._document.body.appendChild(hiddenCanvas);
72
+ const hiddenChart = new Chart(hiddenCanvas, {
73
+ type: (_a = chart.config) === null || _a === void 0 ? void 0 : _a.type,
74
+ data: chart.config.data,
75
+ options: Object.assign(Object.assign({}, chart.config.options), { animation: false, responsive: false, layout: {
76
+ padding: padding
77
+ }, plugins: Object.assign(Object.assign({}, chart.config.options.plugins), { title: {
78
+ display: true,
79
+ text: label,
80
+ padding: {
81
+ top: 0,
82
+ bottom: 30
83
+ }
84
+ }, legend: {
85
+ display: true,
86
+ rtl: currentLang == 'ar',
87
+ position: currentLang == 'ar' ? 'right' : 'left'
88
+ } }) }),
89
+ plugins: [
90
+ ChartPlugins.chartDataLabels,
91
+ {
92
+ id: 'canvasBackgroundColor',
93
+ beforeDraw: (chart, args, options) => {
94
+ const { ctx } = chart;
95
+ ctx.save();
96
+ ctx.globalCompositeOperation = 'destination-over';
97
+ ctx.fillStyle = 'white';
98
+ ctx.fillRect(0, 0, chart.width, chart.height);
99
+ ctx.restore();
100
+ }
101
+ },
102
+ {
103
+ id: 'onReady',
104
+ afterRender: function (chart, options) {
105
+ resolve({
106
+ chart: chart,
107
+ destroy: () => {
108
+ chart.destroy();
109
+ document.body.removeChild(hiddenCanvas);
110
+ }
111
+ });
112
+ }
113
+ }
114
+ ]
115
+ });
116
+ hiddenChart.render();
117
+ });
118
+ }
119
+ }
120
+ ChartManagerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ChartManagerService, deps: [{ token: i1.TranslateService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
121
+ ChartManagerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ChartManagerService, providedIn: 'root' });
122
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ChartManagerService, decorators: [{
123
+ type: Injectable,
124
+ args: [{
125
+ providedIn: 'root'
126
+ }]
127
+ }], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: Document, decorators: [{
128
+ type: Inject,
129
+ args: [DOCUMENT]
130
+ }] }]; } });
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtbWFuYWdlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9yZXBvcnRzL25kZi1yZXBvcnRzL3NlcnZpY2VzL2NoYXJ0LW1hbmFnZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEMsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFFakMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQzs7O0FBSzVDLE1BQU0sT0FBTyxtQkFBbUI7SUFHL0IsWUFDUyxpQkFBbUMsRUFDakIsU0FBbUI7UUFEckMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUNqQixjQUFTLEdBQVQsU0FBUyxDQUFVO1FBSnRDLFlBQU8sR0FBRyxJQUFJLEdBQUcsRUFBMEIsQ0FBQztJQUtqRCxDQUFDO0lBRUosUUFBUSxDQUFDLEtBQVk7UUFDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsUUFBUSxDQUFDLEVBQW1CO1FBQzNCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELFlBQVk7UUFDWCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzlCLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxLQUFLLENB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U0FBUzt3QkFDYixXQUFXLEVBQUUsVUFBVSxLQUFLLEVBQUUsT0FBTzs0QkFDcEMsT0FBTyxDQUFDO2dDQUNQLEtBQUssRUFBRSxLQUFLO2dDQUNaLE9BQU8sRUFBRSxHQUFHLEVBQUU7b0NBQ2IsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO29DQUNoQixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztnQ0FDekMsQ0FBQzs2QkFDRCxDQUFDLENBQUM7d0JBQ0osQ0FBQztxQkFDRDtpQkFDRDthQUNELENBQUMsQ0FBQztZQUNILFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7O2lIQW5JVyxtQkFBbUIsa0RBS3RCLFFBQVE7cUhBTEwsbUJBQW1CLGNBRm5CLE1BQU07NEZBRU4sbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNYLFVBQVUsRUFBRSxNQUFNO2lCQUNsQjt5RkFNc0MsUUFBUTswQkFBNUMsTUFBTTsyQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBDaGFydCB9IGZyb20gJ2NoYXJ0LmpzL2F1dG8nO1xyXG5pbXBvcnQgKiBhcyBtb21lbnQgZnJvbSAnbW9tZW50JztcclxuaW1wb3J0IHsgQ2hhcnRDb25maWd1cmF0aW9uIH0gZnJvbSAnY2hhcnQuanMvZGlzdC90eXBlcyc7XHJcbmltcG9ydCB7IENoYXJ0UGx1Z2lucyB9IGZyb20gJy4uLy4uL2NoYXJ0cyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcblx0cHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGFydE1hbmFnZXJTZXJ2aWNlIHtcclxuXHRwcml2YXRlIF9jaGFydHMgPSBuZXcgTWFwPHN0cmluZyB8IG51bWJlciwgQ2hhcnQ+KCk7XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJpdmF0ZSBfdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcclxuXHRcdEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgX2RvY3VtZW50OiBEb2N1bWVudFxyXG5cdCkge31cclxuXHJcblx0c2V0Q2hhcnQoY2hhcnQ6IENoYXJ0KSB7XHJcblx0XHR0aGlzLl9jaGFydHMuc2V0KGNoYXJ0LmlkLCBjaGFydCk7XHJcblx0fVxyXG5cclxuXHRnZXRDaGFydChpZDogc3RyaW5nIHwgbnVtYmVyKTogQ2hhcnQge1xyXG5cdFx0cmV0dXJuIHRoaXMuX2NoYXJ0cy5nZXQoaWQpO1xyXG5cdH1cclxuXHJcblx0cmVzaXplQ2hhcnRzKCkge1xyXG5cdFx0dGhpcy5fY2hhcnRzLmZvckVhY2goKGNoYXJ0KSA9PiB7XHJcblx0XHRcdGlmIChjaGFydC5jYW52YXMgJiYgY2hhcnQuY2FudmFzLm93bmVyRG9jdW1lbnQpIHtcclxuXHRcdFx0XHRjaGFydC5yZXNpemUoKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRkZXN0cm95KGlkOiBzdHJpbmcgfCBudW1iZXIpIHtcclxuXHRcdGNvbnN0IF9jaGFydCA9IHRoaXMuX2NoYXJ0cy5nZXQoaWQpO1xyXG5cdFx0aWYgKF9jaGFydCkge1xyXG5cdFx0XHRfY2hhcnQuZGVzdHJveSgpO1xyXG5cdFx0XHR0aGlzLl9jaGFydHMuZGVsZXRlKGlkKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGRlc3Ryb3lBbGwoKSB7XHJcblx0XHR0aGlzLl9jaGFydHMuZm9yRWFjaCgoY2hhcnQpID0+IHtcclxuXHRcdFx0Y2hhcnQuZGVzdHJveSgpO1xyXG5cdFx0fSk7XHJcblx0XHR0aGlzLl9jaGFydHMuY2xlYXIoKTtcclxuXHR9XHJcblxyXG5cdGFzeW5jIHByaW50Q2hhcnQoaWQ6IHN0cmluZyB8IG51bWJlciwgbGFiZWw6IHN0cmluZykge1xyXG5cdFx0Y29uc3QgX2NoYXJ0ID0gdGhpcy5fY2hhcnRzLmdldChpZCk7XHJcblx0XHRpZiAoIV9jaGFydCkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3QgeyBjaGFydCwgZGVzdHJveTogZGVzdHJveVRlbXBDaGFydCB9ID0gYXdhaXQgdGhpcy5fY3JlYXRlSGlkZGVuQ2FudmFzRm9yRXhwb3J0KF9jaGFydCwgbGFiZWwpO1xyXG5cdFx0aWYgKCFjaGFydCkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3QgaW1hZ2VMaW5rID0gdGhpcy5fZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG5cdFx0Y29uc3QgZGF0ZSA9IG1vbWVudCgpLmZvcm1hdCgnWVlZWS1NTS1ERF9ISC1tbS1zcycpO1xyXG5cdFx0aW1hZ2VMaW5rLmhyZWYgPSBjaGFydC5jYW52YXMudG9EYXRhVVJMKCdpbWFnZS9qcGVnJywgMC45KTtcclxuXHRcdGltYWdlTGluay5kb3dubG9hZCA9IGAke2xhYmVsfS0ke2RhdGV9LmpwZ2A7XHJcblx0XHRpbWFnZUxpbmsuY2xpY2soKTtcclxuXHRcdGRlc3Ryb3lUZW1wQ2hhcnQoKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgX2NyZWF0ZUhpZGRlbkNhbnZhc0ZvckV4cG9ydChjaGFydDogQ2hhcnQsIGxhYmVsOiBzdHJpbmcpIHtcclxuXHRcdGNvbnN0IGN1cnJlbnRMYW5nID0gdGhpcy5fdHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZztcclxuXHJcblx0XHRyZXR1cm4gbmV3IFByb21pc2U8eyBjaGFydDogQ2hhcnQ7IGRlc3Ryb3k6ICgpID0+IHZvaWQgfT4oKHJlc29sdmUpID0+IHtcclxuXHRcdFx0Y29uc3QgcGFkZGluZyA9IDQwO1xyXG5cclxuXHRcdFx0Y29uc3QgaGlkZGVuQ2FudmFzID0gdGhpcy5fZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XHJcblx0XHRcdGNvbnN0IFt3aWR0aCwgaGVpZ2h0XSA9IFsxMDI0LCA2MDBdO1xyXG5cclxuXHRcdFx0aGlkZGVuQ2FudmFzLnN0eWxlLndpZHRoID0gYCR7d2lkdGh9cHhgO1xyXG5cdFx0XHRoaWRkZW5DYW52YXMuc3R5bGUuaGVpZ2h0ID0gYCR7aGVpZ2h0fXB4YDtcclxuXHRcdFx0aGlkZGVuQ2FudmFzLndpZHRoID0gd2lkdGg7XHJcblx0XHRcdGhpZGRlbkNhbnZhcy5oZWlnaHQgPSBoZWlnaHQ7XHJcblx0XHRcdGhpZGRlbkNhbnZhcy5pZCA9ICdoaWRkZW5DYW52YXMnO1xyXG5cclxuXHRcdFx0dGhpcy5fZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChoaWRkZW5DYW52YXMpO1xyXG5cclxuXHRcdFx0Y29uc3QgaGlkZGVuQ2hhcnQgPSBuZXcgQ2hhcnQoaGlkZGVuQ2FudmFzLCB7XHJcblx0XHRcdFx0dHlwZTogKGNoYXJ0LmNvbmZpZyBhcyBDaGFydENvbmZpZ3VyYXRpb24pPy50eXBlLFxyXG5cdFx0XHRcdGRhdGE6IGNoYXJ0LmNvbmZpZy5kYXRhLFxyXG5cdFx0XHRcdG9wdGlvbnM6IHtcclxuXHRcdFx0XHRcdC4uLmNoYXJ0LmNvbmZpZy5vcHRpb25zLFxyXG5cdFx0XHRcdFx0YW5pbWF0aW9uOiBmYWxzZSxcclxuXHRcdFx0XHRcdHJlc3BvbnNpdmU6IGZhbHNlLFxyXG5cdFx0XHRcdFx0bGF5b3V0OiB7XHJcblx0XHRcdFx0XHRcdHBhZGRpbmc6IHBhZGRpbmdcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRwbHVnaW5zOiB7XHJcblx0XHRcdFx0XHRcdC4uLmNoYXJ0LmNvbmZpZy5vcHRpb25zLnBsdWdpbnMsXHJcblx0XHRcdFx0XHRcdHRpdGxlOiB7XHJcblx0XHRcdFx0XHRcdFx0ZGlzcGxheTogdHJ1ZSxcclxuXHRcdFx0XHRcdFx0XHR0ZXh0OiBsYWJlbCxcclxuXHRcdFx0XHRcdFx0XHRwYWRkaW5nOiB7XHJcblx0XHRcdFx0XHRcdFx0XHR0b3A6IDAsXHJcblx0XHRcdFx0XHRcdFx0XHRib3R0b206IDMwXHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0XHRsZWdlbmQ6IHtcclxuXHRcdFx0XHRcdFx0XHRkaXNwbGF5OiB0cnVlLFxyXG5cdFx0XHRcdFx0XHRcdHJ0bDogY3VycmVudExhbmcgPT0gJ2FyJyxcclxuXHRcdFx0XHRcdFx0XHRwb3NpdGlvbjogY3VycmVudExhbmcgPT0gJ2FyJyA/ICdyaWdodCcgOiAnbGVmdCdcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0cGx1Z2luczogW1xyXG5cdFx0XHRcdFx0Q2hhcnRQbHVnaW5zLmNoYXJ0RGF0YUxhYmVscyxcclxuXHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0aWQ6ICdjYW52YXNCYWNrZ3JvdW5kQ29sb3InLFxyXG5cdFx0XHRcdFx0XHRiZWZvcmVEcmF3OiAoY2hhcnQsIGFyZ3MsIG9wdGlvbnMpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRjb25zdCB7IGN0eCB9ID0gY2hhcnQ7XHJcblx0XHRcdFx0XHRcdFx0Y3R4LnNhdmUoKTtcclxuXHRcdFx0XHRcdFx0XHRjdHguZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uID0gJ2Rlc3RpbmF0aW9uLW92ZXInO1xyXG5cdFx0XHRcdFx0XHRcdGN0eC5maWxsU3R5bGUgPSAnd2hpdGUnO1xyXG5cdFx0XHRcdFx0XHRcdGN0eC5maWxsUmVjdCgwLCAwLCBjaGFydC53aWR0aCwgY2hhcnQuaGVpZ2h0KTtcclxuXHRcdFx0XHRcdFx0XHRjdHgucmVzdG9yZSgpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRpZDogJ29uUmVhZHknLFxyXG5cdFx0XHRcdFx0XHRhZnRlclJlbmRlcjogZnVuY3Rpb24gKGNoYXJ0LCBvcHRpb25zKSB7XHJcblx0XHRcdFx0XHRcdFx0cmVzb2x2ZSh7XHJcblx0XHRcdFx0XHRcdFx0XHRjaGFydDogY2hhcnQsXHJcblx0XHRcdFx0XHRcdFx0XHRkZXN0cm95OiAoKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGNoYXJ0LmRlc3Ryb3koKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChoaWRkZW5DYW52YXMpO1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XVxyXG5cdFx0XHR9KTtcclxuXHRcdFx0aGlkZGVuQ2hhcnQucmVuZGVyKCk7XHJcblx0XHR9KTtcclxuXHR9XHJcbn1cclxuIl19
@@ -0,0 +1,49 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ChartPluginsRegistry {
4
+ constructor() {
5
+ this._plugins = new Map();
6
+ }
7
+ register(key, plugin) {
8
+ if (typeof key === 'object') {
9
+ Object.entries(key).forEach(([key, fn]) => this._plugins.set(key, fn));
10
+ return;
11
+ }
12
+ if (typeof key === 'string' && plugin) {
13
+ this._plugins.set(key, plugin);
14
+ }
15
+ }
16
+ /**
17
+ * Check if a plugin exists with the given key
18
+ * @param key The plugin key to check
19
+ * @returns True if the plugin exists, false otherwise
20
+ */
21
+ has(key) {
22
+ return this._plugins.has(key);
23
+ }
24
+ /**
25
+ * Get a plugin by its key
26
+ * @param key The key of the plugin to retrieve
27
+ * @returns The plugin instance or undefined if not found
28
+ */
29
+ get(key) {
30
+ return this._plugins.get(key);
31
+ }
32
+ /**
33
+ * Remove a plugin by its key
34
+ * @param key The key of the plugin to remove
35
+ * @returns True if the plugin was removed, false if it didn't exist
36
+ */
37
+ delete(key) {
38
+ return this._plugins.delete(key);
39
+ }
40
+ }
41
+ ChartPluginsRegistry.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ChartPluginsRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
42
+ ChartPluginsRegistry.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ChartPluginsRegistry, providedIn: 'root' });
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ChartPluginsRegistry, decorators: [{
44
+ type: Injectable,
45
+ args: [{
46
+ providedIn: 'root'
47
+ }]
48
+ }] });
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtcGx1Z2lucy1yZWdpc3RyeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9yZXBvcnRzL25kZi1yZXBvcnRzL3NlcnZpY2VzL2NoYXJ0LXBsdWdpbnMtcmVnaXN0cnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU0zQyxNQUFNLE9BQU8sb0JBQW9CO0lBSGpDO1FBSWtCLGFBQVEsR0FBbUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztLQWdEdEU7SUFyQ0EsUUFBUSxDQUFDLEdBQStDLEVBQUUsTUFBMEI7UUFDbkYsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUU7WUFDNUIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDdkUsT0FBTztTQUNQO1FBRUQsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksTUFBTSxFQUFFO1lBQ3RDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztTQUMvQjtJQUNGLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksR0FBRyxDQUFDLEdBQVc7UUFDckIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEdBQUcsQ0FBQyxHQUFXO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsR0FBVztRQUN4QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7O2tIQWhEVyxvQkFBb0I7c0hBQXBCLG9CQUFvQixjQUZwQixNQUFNOzRGQUVOLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDWCxVQUFVLEVBQUUsTUFBTTtpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENoYXJ0VHlwZSwgUGx1Z2luIH0gZnJvbSAnY2hhcnQuanMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG5cdHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2hhcnRQbHVnaW5zUmVnaXN0cnkge1xyXG5cdHByaXZhdGUgcmVhZG9ubHkgX3BsdWdpbnM6IE1hcDxzdHJpbmcsIFBsdWdpbjxDaGFydFR5cGU+PiA9IG5ldyBNYXAoKTtcclxuXHJcblx0LyoqXHJcblx0ICogUmVnaXN0ZXIgYSBwbHVnaW4gb3IgbXVsdGlwbGUgcGx1Z2lucy5cclxuXHQgKlxyXG5cdCAqIEBwYXJhbSB7c3RyaW5nIHwgUmVjb3JkPHN0cmluZywgUGx1Z2luPENoYXJ0VHlwZT4+fSBrZXkgLSBUaGUga2V5IG9mIHRoZSBwbHVnaW4gdG8gcmVnaXN0ZXIgb3IgYW4gb2JqZWN0IGNvbnRhaW5pbmcgbXVsdGlwbGUgcGx1Z2lucy5cclxuXHQgKiBAcGFyYW0ge1BsdWdpbjxDaGFydFR5cGU+fSBbcGx1Z2luXSAtIFRoZSBwbHVnaW4gaW5zdGFuY2UgdG8gcmVnaXN0ZXIgKGlmIGBrZXlgIGlzIGEgc3RyaW5nKS5cclxuXHQgKiBAcmV0dXJucyB7dm9pZH1cclxuXHQgKi9cclxuXHRyZWdpc3RlcihrZXk6IHN0cmluZywgcGx1Z2luOiBQbHVnaW48Q2hhcnRUeXBlPik6IHZvaWQ7XHJcblx0cmVnaXN0ZXIocGx1Z2luczogUmVjb3JkPHN0cmluZywgUGx1Z2luPENoYXJ0VHlwZT4+KTogdm9pZDtcclxuXHRyZWdpc3RlcihrZXk6IHN0cmluZyB8IFJlY29yZDxzdHJpbmcsIFBsdWdpbjxDaGFydFR5cGU+PiwgcGx1Z2luPzogUGx1Z2luPENoYXJ0VHlwZT4pOiB2b2lkIHtcclxuXHRcdGlmICh0eXBlb2Yga2V5ID09PSAnb2JqZWN0Jykge1xyXG5cdFx0XHRPYmplY3QuZW50cmllcyhrZXkpLmZvckVhY2goKFtrZXksIGZuXSkgPT4gdGhpcy5fcGx1Z2lucy5zZXQoa2V5LCBmbikpO1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHR5cGVvZiBrZXkgPT09ICdzdHJpbmcnICYmIHBsdWdpbikge1xyXG5cdFx0XHR0aGlzLl9wbHVnaW5zLnNldChrZXksIHBsdWdpbik7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBDaGVjayBpZiBhIHBsdWdpbiBleGlzdHMgd2l0aCB0aGUgZ2l2ZW4ga2V5XHJcblx0ICogQHBhcmFtIGtleSBUaGUgcGx1Z2luIGtleSB0byBjaGVja1xyXG5cdCAqIEByZXR1cm5zIFRydWUgaWYgdGhlIHBsdWdpbiBleGlzdHMsIGZhbHNlIG90aGVyd2lzZVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBoYXMoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcclxuXHRcdHJldHVybiB0aGlzLl9wbHVnaW5zLmhhcyhrZXkpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogR2V0IGEgcGx1Z2luIGJ5IGl0cyBrZXlcclxuXHQgKiBAcGFyYW0ga2V5IFRoZSBrZXkgb2YgdGhlIHBsdWdpbiB0byByZXRyaWV2ZVxyXG5cdCAqIEByZXR1cm5zIFRoZSBwbHVnaW4gaW5zdGFuY2Ugb3IgdW5kZWZpbmVkIGlmIG5vdCBmb3VuZFxyXG5cdCAqL1xyXG5cdHB1YmxpYyBnZXQoa2V5OiBzdHJpbmcpOiBQbHVnaW48Q2hhcnRUeXBlPiB8IHVuZGVmaW5lZCB7XHJcblx0XHRyZXR1cm4gdGhpcy5fcGx1Z2lucy5nZXQoa2V5KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFJlbW92ZSBhIHBsdWdpbiBieSBpdHMga2V5XHJcblx0ICogQHBhcmFtIGtleSBUaGUga2V5IG9mIHRoZSBwbHVnaW4gdG8gcmVtb3ZlXHJcblx0ICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgcGx1Z2luIHdhcyByZW1vdmVkLCBmYWxzZSBpZiBpdCBkaWRuJ3QgZXhpc3RcclxuXHQgKi9cclxuXHRwdWJsaWMgZGVsZXRlKGtleTogc3RyaW5nKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gdGhpcy5fcGx1Z2lucy5kZWxldGUoa2V5KTtcclxuXHR9XHJcbn1cclxuIl19
@@ -0,0 +1,42 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { of } from 'rxjs';
3
+ import { map } from 'rxjs/operators';
4
+ import _ from 'lodash';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "./chart-data-transformers.service";
7
+ export class DigitChartService {
8
+ constructor(_dataTransformers) {
9
+ this._dataTransformers = _dataTransformers;
10
+ }
11
+ prepareChart(response, config) {
12
+ if (!config.datasource) {
13
+ console.warn('No datasource provided for chart configuration');
14
+ return of(null);
15
+ }
16
+ return of(config.datasource).pipe(map((sourceConfig) => {
17
+ const rawData = _.get(response, sourceConfig.propertyPath);
18
+ if (this._dataTransformers.hasDigitsTransformer(sourceConfig === null || sourceConfig === void 0 ? void 0 : sourceConfig.transformer)) {
19
+ const adapter = this._dataTransformers.getDigitsTransformer(sourceConfig === null || sourceConfig === void 0 ? void 0 : sourceConfig.transformer);
20
+ return adapter(rawData, response);
21
+ }
22
+ if (_.isObject(rawData)) {
23
+ return _.get(rawData, sourceConfig === null || sourceConfig === void 0 ? void 0 : sourceConfig.bindValue, rawData);
24
+ }
25
+ if (Array.isArray(rawData)) {
26
+ return rawData.reduce((acc, item) => {
27
+ acc += Number(_.get(item, sourceConfig === null || sourceConfig === void 0 ? void 0 : sourceConfig.bindValue, item.docCount));
28
+ }, 0);
29
+ }
30
+ return rawData;
31
+ }));
32
+ }
33
+ }
34
+ DigitChartService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DigitChartService, deps: [{ token: i1.ChartDataTransformers }], target: i0.ɵɵFactoryTarget.Injectable });
35
+ DigitChartService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DigitChartService, providedIn: 'root' });
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DigitChartService, decorators: [{
37
+ type: Injectable,
38
+ args: [{
39
+ providedIn: 'root'
40
+ }]
41
+ }], ctorParameters: function () { return [{ type: i1.ChartDataTransformers }]; } });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXQtY2hhcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvcmVwb3J0cy9uZGYtcmVwb3J0cy9zZXJ2aWNlcy9kaWdpdC1jaGFydC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDOzs7QUFNdkIsTUFBTSxPQUFPLGlCQUFpQjtJQUM3QixZQUE2QixpQkFBd0M7UUFBeEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUF1QjtJQUFHLENBQUM7SUFFekUsWUFBWSxDQUFDLFFBQTZCLEVBQUUsTUFBa0I7UUFDN0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUU7WUFDdkIsT0FBTyxDQUFDLElBQUksQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO1lBQy9ELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2hCO1FBQ0QsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FDaEMsR0FBRyxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUU7WUFDcEIsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzNELElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLFlBQVksYUFBWixZQUFZLHVCQUFaLFlBQVksQ0FBRSxXQUFXLENBQUMsRUFBRTtnQkFDM0UsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLFlBQVksYUFBWixZQUFZLHVCQUFaLFlBQVksQ0FBRSxXQUFXLENBQUMsQ0FBQztnQkFDdkYsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO2FBQ2xDO1lBQ0QsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUN4QixPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLFlBQVksYUFBWixZQUFZLHVCQUFaLFlBQVksQ0FBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7YUFDeEQ7WUFFRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQzNCLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRTtvQkFDbkMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxZQUFZLGFBQVosWUFBWSx1QkFBWixZQUFZLENBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO2dCQUNwRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDTjtZQUVELE9BQU8sT0FBTyxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUNGLENBQUM7SUFDSCxDQUFDOzsrR0E1QlcsaUJBQWlCO21IQUFqQixpQkFBaUIsY0FGakIsTUFBTTs0RkFFTixpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1gsVUFBVSxFQUFFLE1BQU07aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEaWdpdENoYXJ0LCBSZXBvcnRSZXNwb25zZU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBDaGFydERhdGFUcmFuc2Zvcm1lcnMgfSBmcm9tICcuL2NoYXJ0LWRhdGEtdHJhbnNmb3JtZXJzLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG5cdHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRGlnaXRDaGFydFNlcnZpY2Uge1xyXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgX2RhdGFUcmFuc2Zvcm1lcnM6IENoYXJ0RGF0YVRyYW5zZm9ybWVycykge31cclxuXHJcblx0cHJlcGFyZUNoYXJ0KHJlc3BvbnNlOiBSZXBvcnRSZXNwb25zZU1vZGVsLCBjb25maWc6IERpZ2l0Q2hhcnQpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0aWYgKCFjb25maWcuZGF0YXNvdXJjZSkge1xyXG5cdFx0XHRjb25zb2xlLndhcm4oJ05vIGRhdGFzb3VyY2UgcHJvdmlkZWQgZm9yIGNoYXJ0IGNvbmZpZ3VyYXRpb24nKTtcclxuXHRcdFx0cmV0dXJuIG9mKG51bGwpO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIG9mKGNvbmZpZy5kYXRhc291cmNlKS5waXBlKFxyXG5cdFx0XHRtYXAoKHNvdXJjZUNvbmZpZykgPT4ge1xyXG5cdFx0XHRcdGNvbnN0IHJhd0RhdGEgPSBfLmdldChyZXNwb25zZSwgc291cmNlQ29uZmlnLnByb3BlcnR5UGF0aCk7XHJcblx0XHRcdFx0aWYgKHRoaXMuX2RhdGFUcmFuc2Zvcm1lcnMuaGFzRGlnaXRzVHJhbnNmb3JtZXIoc291cmNlQ29uZmlnPy50cmFuc2Zvcm1lcikpIHtcclxuXHRcdFx0XHRcdGNvbnN0IGFkYXB0ZXIgPSB0aGlzLl9kYXRhVHJhbnNmb3JtZXJzLmdldERpZ2l0c1RyYW5zZm9ybWVyKHNvdXJjZUNvbmZpZz8udHJhbnNmb3JtZXIpO1xyXG5cdFx0XHRcdFx0cmV0dXJuIGFkYXB0ZXIocmF3RGF0YSwgcmVzcG9uc2UpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAoXy5pc09iamVjdChyYXdEYXRhKSkge1xyXG5cdFx0XHRcdFx0cmV0dXJuIF8uZ2V0KHJhd0RhdGEsIHNvdXJjZUNvbmZpZz8uYmluZFZhbHVlLCByYXdEYXRhKTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdGlmIChBcnJheS5pc0FycmF5KHJhd0RhdGEpKSB7XHJcblx0XHRcdFx0XHRyZXR1cm4gcmF3RGF0YS5yZWR1Y2UoKGFjYywgaXRlbSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRhY2MgKz0gTnVtYmVyKF8uZ2V0KGl0ZW0sIHNvdXJjZUNvbmZpZz8uYmluZFZhbHVlLCBpdGVtLmRvY0NvdW50KSk7XHJcblx0XHRcdFx0XHR9LCAwKTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdHJldHVybiByYXdEYXRhO1xyXG5cdFx0XHR9KVxyXG5cdFx0KTtcclxuXHR9XHJcbn1cclxuIl19
@@ -0,0 +1,72 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { BehaviorSubject, forkJoin, of, pipe, ReplaySubject } from 'rxjs';
3
+ import { catchError, finalize, switchMap } from 'rxjs/operators';
4
+ import _ from 'lodash';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "./index";
7
+ export class DynamicTimelineReportService {
8
+ constructor(_ndfReportsService) {
9
+ this._ndfReportsService = _ndfReportsService;
10
+ this._rebuildTriggerSub = new BehaviorSubject(false);
11
+ this.rebuild$ = this._rebuildTriggerSub.asObservable();
12
+ this._isInitialized = false;
13
+ this.isLoadingResult = false;
14
+ this._selectedGroupSub = new ReplaySubject();
15
+ this.selectedGroup$ = this._selectedGroupSub.asObservable();
16
+ }
17
+ updateSelectedGroup(selected) {
18
+ if (!this._selectedGroup) {
19
+ this._selectedGroup = selected || 'week';
20
+ }
21
+ this._selectedGroupSub.next(this._selectedGroup);
22
+ }
23
+ changeGroup(group) {
24
+ this._selectedGroup = group;
25
+ this._rebuildTriggerSub.next(true);
26
+ }
27
+ rebuild() {
28
+ this._rebuildTriggerSub.next(true);
29
+ }
30
+ prepareData() {
31
+ return pipe(switchMap(([config, criteria]) => {
32
+ var _a;
33
+ const request = config === null || config === void 0 ? void 0 : config.request;
34
+ if (!request) {
35
+ return of(null);
36
+ }
37
+ this.updateSelectedGroup((_a = config === null || config === void 0 ? void 0 : config.group) === null || _a === void 0 ? void 0 : _a.selected);
38
+ this.payload = _.merge(criteria || {}, this._prepareSelectedGroups(config));
39
+ const data$ = this._ndfReportsService.getData(request, this.payload).pipe(catchError((error) => {
40
+ console.error(error);
41
+ return of(null);
42
+ }), finalize(() => {
43
+ this.isLoadingResult = false;
44
+ }));
45
+ return forkJoin({
46
+ config: of(config),
47
+ data: data$
48
+ });
49
+ }));
50
+ }
51
+ _prepareSelectedGroups(config) {
52
+ const data = config.datasource.map((source) => {
53
+ var _a;
54
+ return ({
55
+ name: source.aggregation,
56
+ interval: this._selectedGroup || ((_a = config === null || config === void 0 ? void 0 : config.group) === null || _a === void 0 ? void 0 : _a.selected) || 'week'
57
+ });
58
+ });
59
+ return {
60
+ payload: {
61
+ aggregationNames: data
62
+ }
63
+ };
64
+ }
65
+ }
66
+ DynamicTimelineReportService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicTimelineReportService, deps: [{ token: i1.NdfReportsService }], target: i0.ɵɵFactoryTarget.Injectable });
67
+ DynamicTimelineReportService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicTimelineReportService, providedIn: 'root' });
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicTimelineReportService, decorators: [{
69
+ type: Injectable,
70
+ args: [{ providedIn: 'root' }]
71
+ }], ctorParameters: function () { return [{ type: i1.NdfReportsService }]; } });
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy10aW1lbGluZS1yZXBvcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvcmVwb3J0cy9uZGYtcmVwb3J0cy9zZXJ2aWNlcy9keW5hbWljLXRpbWVsaW5lLXJlcG9ydC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDOzs7QUFJdkIsTUFBTSxPQUFPLDRCQUE0QjtJQU14QyxZQUFvQixrQkFBcUM7UUFBckMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUxoRCx1QkFBa0IsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUN6RCxhQUFRLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzNELG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBSWhCLHNCQUFpQixHQUFHLElBQUksYUFBYSxFQUFjLENBQUM7UUFFNUQsbUJBQWMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFKSyxDQUFDO0lBUTdELG1CQUFtQixDQUFDLFFBQXFCO1FBQ3hDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxjQUFjLEdBQUcsUUFBUSxJQUFJLE1BQU0sQ0FBQztTQUN6QztRQUNELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxXQUFXLENBQUMsS0FBaUI7UUFDNUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDNUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsT0FBTztRQUNOLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELFdBQVc7UUFDVixPQUFPLElBQUksQ0FDVixTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQTZDLEVBQUUsRUFBRTs7WUFDNUUsTUFBTSxPQUFPLEdBQUcsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLE9BQU8sQ0FBQztZQUNoQyxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNiLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ2hCO1lBQ0QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQUEsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLEtBQUssMENBQUUsUUFBUSxDQUFDLENBQUM7WUFFbEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFFNUUsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDeEUsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ3BCLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3JCLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pCLENBQUMsQ0FBQyxFQUNGLFFBQVEsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7WUFDOUIsQ0FBQyxDQUFDLENBQ0YsQ0FBQztZQUNGLE9BQU8sUUFBUSxDQUFDO2dCQUNmLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDO2dCQUNsQixJQUFJLEVBQUUsS0FBSzthQUNYLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUNGLENBQUM7SUFDSCxDQUFDO0lBRU8sc0JBQXNCLENBQUMsTUFBd0I7UUFDdEQsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTs7WUFBQyxPQUFBLENBQUM7Z0JBQy9DLElBQUksRUFBRSxNQUFNLENBQUMsV0FBVztnQkFDeEIsUUFBUSxFQUFFLElBQUksQ0FBQyxjQUFjLEtBQUksTUFBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsS0FBSywwQ0FBRSxRQUFRLENBQUEsSUFBSSxNQUFNO2FBQ2xFLENBQUMsQ0FBQTtTQUFBLENBQUMsQ0FBQztRQUVKLE9BQU87WUFDTixPQUFPLEVBQUU7Z0JBQ1IsZ0JBQWdCLEVBQUUsSUFBSTthQUN0QjtTQUNELENBQUM7SUFDSCxDQUFDOzswSEFyRVcsNEJBQTRCOzhIQUE1Qiw0QkFBNEIsY0FEZixNQUFNOzRGQUNuQiw0QkFBNEI7a0JBRHhDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZvcmtKb2luLCBvZiwgcGlwZSwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDcml0ZXJpYU1vZGVsLCBEeW5hbWljTGluZUNoYXJ0LCBUaW1lR3JvdXBzIH0gZnJvbSAnLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmluYWxpemUsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHsgTmRmUmVwb3J0c1NlcnZpY2UgfSBmcm9tICcuL2luZGV4JztcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBEeW5hbWljVGltZWxpbmVSZXBvcnRTZXJ2aWNlIHtcclxuXHRyZWFkb25seSBfcmVidWlsZFRyaWdnZXJTdWIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRyZWFkb25seSByZWJ1aWxkJCA9IHRoaXMuX3JlYnVpbGRUcmlnZ2VyU3ViLmFzT2JzZXJ2YWJsZSgpO1xyXG5cdF9pc0luaXRpYWxpemVkID0gZmFsc2U7XHJcblx0aXNMb2FkaW5nUmVzdWx0ID0gZmFsc2U7XHJcblxyXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgX25kZlJlcG9ydHNTZXJ2aWNlOiBOZGZSZXBvcnRzU2VydmljZSkge31cclxuXHJcblx0cHJpdmF0ZSBfc2VsZWN0ZWRHcm91cFN1YiA9IG5ldyBSZXBsYXlTdWJqZWN0PFRpbWVHcm91cHM+KCk7XHJcblx0cHJpdmF0ZSBfc2VsZWN0ZWRHcm91cDogVGltZUdyb3VwcztcclxuXHRzZWxlY3RlZEdyb3VwJCA9IHRoaXMuX3NlbGVjdGVkR3JvdXBTdWIuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG5cdHBheWxvYWQ6IENyaXRlcmlhTW9kZWw7XHJcblxyXG5cdHVwZGF0ZVNlbGVjdGVkR3JvdXAoc2VsZWN0ZWQ/OiBUaW1lR3JvdXBzKSB7XHJcblx0XHRpZiAoIXRoaXMuX3NlbGVjdGVkR3JvdXApIHtcclxuXHRcdFx0dGhpcy5fc2VsZWN0ZWRHcm91cCA9IHNlbGVjdGVkIHx8ICd3ZWVrJztcclxuXHRcdH1cclxuXHRcdHRoaXMuX3NlbGVjdGVkR3JvdXBTdWIubmV4dCh0aGlzLl9zZWxlY3RlZEdyb3VwKTtcclxuXHR9XHJcblxyXG5cdGNoYW5nZUdyb3VwKGdyb3VwOiBUaW1lR3JvdXBzKSB7XHJcblx0XHR0aGlzLl9zZWxlY3RlZEdyb3VwID0gZ3JvdXA7XHJcblx0XHR0aGlzLl9yZWJ1aWxkVHJpZ2dlclN1Yi5uZXh0KHRydWUpO1xyXG5cdH1cclxuXHJcblx0cmVidWlsZCgpIHtcclxuXHRcdHRoaXMuX3JlYnVpbGRUcmlnZ2VyU3ViLm5leHQodHJ1ZSk7XHJcblx0fVxyXG5cclxuXHRwcmVwYXJlRGF0YSgpIHtcclxuXHRcdHJldHVybiBwaXBlKFxyXG5cdFx0XHRzd2l0Y2hNYXAoKFtjb25maWcsIGNyaXRlcmlhXTogW0R5bmFtaWNMaW5lQ2hhcnQsIENyaXRlcmlhTW9kZWwsIGJvb2xlYW5dKSA9PiB7XHJcblx0XHRcdFx0Y29uc3QgcmVxdWVzdCA9IGNvbmZpZz8ucmVxdWVzdDtcclxuXHRcdFx0XHRpZiAoIXJlcXVlc3QpIHtcclxuXHRcdFx0XHRcdHJldHVybiBvZihudWxsKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dGhpcy51cGRhdGVTZWxlY3RlZEdyb3VwKGNvbmZpZz8uZ3JvdXA/LnNlbGVjdGVkKTtcclxuXHJcblx0XHRcdFx0dGhpcy5wYXlsb2FkID0gXy5tZXJnZShjcml0ZXJpYSB8fCB7fSwgdGhpcy5fcHJlcGFyZVNlbGVjdGVkR3JvdXBzKGNvbmZpZykpO1xyXG5cclxuXHRcdFx0XHRjb25zdCBkYXRhJCA9IHRoaXMuX25kZlJlcG9ydHNTZXJ2aWNlLmdldERhdGEocmVxdWVzdCwgdGhpcy5wYXlsb2FkKS5waXBlKFxyXG5cdFx0XHRcdFx0Y2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5lcnJvcihlcnJvcik7XHJcblx0XHRcdFx0XHRcdHJldHVybiBvZihudWxsKTtcclxuXHRcdFx0XHRcdH0pLFxyXG5cdFx0XHRcdFx0ZmluYWxpemUoKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmlzTG9hZGluZ1Jlc3VsdCA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0fSlcclxuXHRcdFx0XHQpO1xyXG5cdFx0XHRcdHJldHVybiBmb3JrSm9pbih7XHJcblx0XHRcdFx0XHRjb25maWc6IG9mKGNvbmZpZyksXHJcblx0XHRcdFx0XHRkYXRhOiBkYXRhJFxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9KVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgX3ByZXBhcmVTZWxlY3RlZEdyb3Vwcyhjb25maWc6IER5bmFtaWNMaW5lQ2hhcnQpIHtcclxuXHRcdGNvbnN0IGRhdGEgPSBjb25maWcuZGF0YXNvdXJjZS5tYXAoKHNvdXJjZSkgPT4gKHtcclxuXHRcdFx0bmFtZTogc291cmNlLmFnZ3JlZ2F0aW9uLFxyXG5cdFx0XHRpbnRlcnZhbDogdGhpcy5fc2VsZWN0ZWRHcm91cCB8fCBjb25maWc/Lmdyb3VwPy5zZWxlY3RlZCB8fCAnd2VlaydcclxuXHRcdH0pKTtcclxuXHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHRwYXlsb2FkOiB7XHJcblx0XHRcdFx0YWdncmVnYXRpb25OYW1lczogZGF0YVxyXG5cdFx0XHR9XHJcblx0XHR9O1xyXG5cdH1cclxufVxyXG4iXX0=
@@ -0,0 +1,11 @@
1
+ export * from './ndf-reports.service';
2
+ export * from './chart-manager.service';
3
+ export * from './report-transform.service';
4
+ export * from './dynamic-timeline-report.service';
5
+ export * from './reports-state.service';
6
+ export * from './digit-chart.service';
7
+ export * from './base-chart-builder.service';
8
+ export * from './chart-data-transformers.service';
9
+ export * from './chart-plugins-registry.service';
10
+ export * from './report-config-mapper.service';
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3JlcG9ydHMvbmRmLXJlcG9ydHMvc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxnQ0FBZ0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbmRmLXJlcG9ydHMuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY2hhcnQtbWFuYWdlci5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9yZXBvcnQtdHJhbnNmb3JtLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2R5bmFtaWMtdGltZWxpbmUtcmVwb3J0LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3JlcG9ydHMtc3RhdGUuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZGlnaXQtY2hhcnQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYmFzZS1jaGFydC1idWlsZGVyLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NoYXJ0LWRhdGEtdHJhbnNmb3JtZXJzLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NoYXJ0LXBsdWdpbnMtcmVnaXN0cnkuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcmVwb3J0LWNvbmZpZy1tYXBwZXIuc2VydmljZSc7XHJcbiJdfQ==
@@ -0,0 +1,49 @@
1
+ import { Injectable } from '@angular/core';
2
+ import _ from 'lodash';
3
+ import { BaseService } from '../../../../shared/services';
4
+ import * as i0 from "@angular/core";
5
+ export class NdfReportsService extends BaseService {
6
+ getData(request, criteria = {}) {
7
+ return (request === null || request === void 0 ? void 0 : request.customUrl) ? this._customQuery(request, criteria) : this._query(request, criteria);
8
+ }
9
+ _query(request, criteria) {
10
+ const { params } = this._prepareRequest(request, criteria);
11
+ return this.query({
12
+ pageProvider: request.pageProvider,
13
+ headers: request === null || request === void 0 ? void 0 : request.headers,
14
+ params: params
15
+ });
16
+ }
17
+ _customQuery(request, criteria) {
18
+ var _a;
19
+ const { params, payload } = this._prepareRequest(request, criteria);
20
+ return this.request({
21
+ type: ((_a = request.customUrl) === null || _a === void 0 ? void 0 : _a.method) || 'get',
22
+ endpoint: request.customUrl.url,
23
+ headers: request === null || request === void 0 ? void 0 : request.headers,
24
+ queryParams: params,
25
+ payload: payload
26
+ });
27
+ }
28
+ _prepareRequest(request, criteria) {
29
+ const params = Object.assign(Object.assign({ pageSize: 1 }, ((request === null || request === void 0 ? void 0 : request.params) || {})), ((criteria === null || criteria === void 0 ? void 0 : criteria.params) || {}));
30
+ const payload = _.mergeWith(request.payload || {}, (criteria === null || criteria === void 0 ? void 0 : criteria.payload) || {}, (objValue, srcValue, key) => {
31
+ if (Array.isArray(objValue) && key === 'predicateList') {
32
+ return objValue.concat(srcValue);
33
+ }
34
+ });
35
+ return {
36
+ params,
37
+ payload
38
+ };
39
+ }
40
+ }
41
+ NdfReportsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfReportsService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
42
+ NdfReportsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfReportsService, providedIn: 'root' });
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfReportsService, decorators: [{
44
+ type: Injectable,
45
+ args: [{
46
+ providedIn: 'root'
47
+ }]
48
+ }] });
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmRmLXJlcG9ydHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvcmVwb3J0cy9uZGYtcmVwb3J0cy9zZXJ2aWNlcy9uZGYtcmVwb3J0cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7QUFXMUQsTUFBTSxPQUFPLGlCQUFrQixTQUFRLFdBQVc7SUFDakQsT0FBTyxDQUFDLE9BQTBCLEVBQUUsV0FBeUIsRUFBRTtRQUM5RCxPQUFPLENBQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFNBQVMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ25HLENBQUM7SUFDTyxNQUFNLENBQUMsT0FBMEIsRUFBRSxRQUFzQjtRQUNoRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFM0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFtQjtZQUNuQyxZQUFZLEVBQUUsT0FBTyxDQUFDLFlBQVk7WUFDbEMsT0FBTyxFQUFFLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxPQUFPO1lBQ3pCLE1BQU0sRUFBRSxNQUFNO1NBQ2QsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVPLFlBQVksQ0FBQyxPQUEwQixFQUFFLFFBQXNCOztRQUN0RSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRXBFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBbUI7WUFDckMsSUFBSSxFQUFFLENBQUEsTUFBQSxPQUFPLENBQUMsU0FBUywwQ0FBRSxNQUFNLEtBQUksS0FBSztZQUN4QyxRQUFRLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHO1lBQy9CLE9BQU8sRUFBRSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsT0FBTztZQUN6QixXQUFXLEVBQUUsTUFBTTtZQUNuQixPQUFPLEVBQUUsT0FBTztTQUNoQixDQUFDLENBQUM7SUFDSixDQUFDO0lBRU8sZUFBZSxDQUFDLE9BQTBCLEVBQUUsUUFBc0I7UUFDekUsTUFBTSxNQUFNLGlDQUNYLFFBQVEsRUFBRSxDQUFDLElBQ1IsQ0FBQyxDQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxNQUFNLEtBQUksRUFBRSxDQUFDLEdBQ3ZCLENBQUMsQ0FBQSxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsTUFBTSxLQUFJLEVBQUUsQ0FBQyxDQUMzQixDQUFDO1FBRUYsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLEVBQUUsRUFBRSxDQUFBLFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsQ0FBRSxPQUFPLEtBQUksRUFBRSxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUN2RyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxLQUFLLGVBQWUsRUFBRTtnQkFDdkQsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ2pDO1FBQ0YsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPO1lBQ04sTUFBTTtZQUNOLE9BQU87U0FDUCxDQUFDO0lBQ0gsQ0FBQzs7K0dBM0NXLGlCQUFpQjttSEFBakIsaUJBQWlCLGNBRmpCLE1BQU07NEZBRU4saUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNYLFVBQVUsRUFBRSxNQUFNO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHsgQXBpUmVzcG9uc2VNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvc2VydmljZXMnO1xyXG5pbXBvcnQgeyBOZGZSZXBvcnRzUmVxdWVzdCB9IGZyb20gJy4uL21vZGVscyc7XHJcblxyXG50eXBlIENyaXRlcmlhVHlwZSA9IHtcclxuXHRwYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG5cdHBheWxvYWQ/OiB7IHByZWRpY2F0ZUxpc3Q6IGFueVtdIH0gJiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG59O1xyXG5cclxuQEluamVjdGFibGUoe1xyXG5cdHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTmRmUmVwb3J0c1NlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSB7XHJcblx0Z2V0RGF0YShyZXF1ZXN0OiBOZGZSZXBvcnRzUmVxdWVzdCwgY3JpdGVyaWE6IENyaXRlcmlhVHlwZSA9IHt9KSB7XHJcblx0XHRyZXR1cm4gcmVxdWVzdD8uY3VzdG9tVXJsID8gdGhpcy5fY3VzdG9tUXVlcnkocmVxdWVzdCwgY3JpdGVyaWEpIDogdGhpcy5fcXVlcnkocmVxdWVzdCwgY3JpdGVyaWEpO1xyXG5cdH1cclxuXHRwcml2YXRlIF9xdWVyeShyZXF1ZXN0OiBOZGZSZXBvcnRzUmVxdWVzdCwgY3JpdGVyaWE6IENyaXRlcmlhVHlwZSkge1xyXG5cdFx0Y29uc3QgeyBwYXJhbXMgfSA9IHRoaXMuX3ByZXBhcmVSZXF1ZXN0KHJlcXVlc3QsIGNyaXRlcmlhKTtcclxuXHJcblx0XHRyZXR1cm4gdGhpcy5xdWVyeTxBcGlSZXNwb25zZU1vZGVsPih7XHJcblx0XHRcdHBhZ2VQcm92aWRlcjogcmVxdWVzdC5wYWdlUHJvdmlkZXIsXHJcblx0XHRcdGhlYWRlcnM6IHJlcXVlc3Q/LmhlYWRlcnMsXHJcblx0XHRcdHBhcmFtczogcGFyYW1zXHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgX2N1c3RvbVF1ZXJ5KHJlcXVlc3Q6IE5kZlJlcG9ydHNSZXF1ZXN0LCBjcml0ZXJpYTogQ3JpdGVyaWFUeXBlKSB7XHJcblx0XHRjb25zdCB7IHBhcmFtcywgcGF5bG9hZCB9ID0gdGhpcy5fcHJlcGFyZVJlcXVlc3QocmVxdWVzdCwgY3JpdGVyaWEpO1xyXG5cclxuXHRcdHJldHVybiB0aGlzLnJlcXVlc3Q8QXBpUmVzcG9uc2VNb2RlbD4oe1xyXG5cdFx0XHR0eXBlOiByZXF1ZXN0LmN1c3RvbVVybD8ubWV0aG9kIHx8ICdnZXQnLFxyXG5cdFx0XHRlbmRwb2ludDogcmVxdWVzdC5jdXN0b21VcmwudXJsLFxyXG5cdFx0XHRoZWFkZXJzOiByZXF1ZXN0Py5oZWFkZXJzLFxyXG5cdFx0XHRxdWVyeVBhcmFtczogcGFyYW1zLFxyXG5cdFx0XHRwYXlsb2FkOiBwYXlsb2FkXHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgX3ByZXBhcmVSZXF1ZXN0KHJlcXVlc3Q6IE5kZlJlcG9ydHNSZXF1ZXN0LCBjcml0ZXJpYTogQ3JpdGVyaWFUeXBlKSB7XHJcblx0XHRjb25zdCBwYXJhbXMgPSB7XHJcblx0XHRcdHBhZ2VTaXplOiAxLFxyXG5cdFx0XHQuLi4ocmVxdWVzdD8ucGFyYW1zIHx8IHt9KSxcclxuXHRcdFx0Li4uKGNyaXRlcmlhPy5wYXJhbXMgfHwge30pXHJcblx0XHR9O1xyXG5cclxuXHRcdGNvbnN0IHBheWxvYWQgPSBfLm1lcmdlV2l0aChyZXF1ZXN0LnBheWxvYWQgfHwge30sIGNyaXRlcmlhPy5wYXlsb2FkIHx8IHt9LCAob2JqVmFsdWUsIHNyY1ZhbHVlLCBrZXkpID0+IHtcclxuXHRcdFx0aWYgKEFycmF5LmlzQXJyYXkob2JqVmFsdWUpICYmIGtleSA9PT0gJ3ByZWRpY2F0ZUxpc3QnKSB7XHJcblx0XHRcdFx0cmV0dXJuIG9ialZhbHVlLmNvbmNhdChzcmNWYWx1ZSk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cclxuXHRcdHJldHVybiB7XHJcblx0XHRcdHBhcmFtcyxcclxuXHRcdFx0cGF5bG9hZFxyXG5cdFx0fTtcclxuXHR9XHJcbn1cclxuIl19
@@ -0,0 +1,82 @@
1
+ import { __rest } from "tslib";
2
+ import { Injectable } from '@angular/core';
3
+ import { ChartUtils } from '../../charts';
4
+ import { getChartsOptions, getDoughnutOptions, getHorizontalBarOptions, getLineOptions, getPieOptions, getVerticalBarOptions } from '../options';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "./chart-plugins-registry.service";
7
+ export class ReportConfigMapperService {
8
+ constructor(_chartPluginsRegistry) {
9
+ this._chartPluginsRegistry = _chartPluginsRegistry;
10
+ }
11
+ /**
12
+ * Prepares a graph chart configuration by converting plugin names to actual plugin objects
13
+ * @param config The graph chart definition
14
+ * @returns The prepared graph chart with plugin objects
15
+ */
16
+ prepareGraphConfig(config) {
17
+ const _a = config.chart, { plugins, colors, options, direction, overrides } = _a, rest = __rest(_a, ["plugins", "colors", "options", "direction", "overrides"]);
18
+ const chart = Object.assign(Object.assign({}, rest), { overrides: getChartsOptions(overrides), options: this._getChartOptions(config.chart.type, options, direction) });
19
+ if (Array.isArray(plugins) && plugins.length > 0) {
20
+ chart.plugins = this._preparePlugins(plugins);
21
+ }
22
+ chart.colors = [...(colors || []), ...ChartUtils.getColors()];
23
+ return Object.assign(Object.assign({}, config), { chart: chart });
24
+ }
25
+ /**
26
+ * Prepares a dynamic line chart configuration by converting plugin names to actual plugin objects
27
+ * @param config The dynamic line chart definition
28
+ * @returns The prepared dynamic line chart with plugin objects
29
+ */
30
+ prepareGraphLineConfig(config) {
31
+ const _a = config.chart, { plugins, options } = _a, rest = __rest(_a, ["plugins", "options"]);
32
+ const chart = Object.assign(Object.assign({}, rest), { options: getLineOptions(options) });
33
+ if (Array.isArray(plugins) && plugins.length > 0) {
34
+ chart.plugins = this._preparePlugins(plugins);
35
+ }
36
+ const _colors = [...((config === null || config === void 0 ? void 0 : config.colors) || []), ...ChartUtils.getColors()];
37
+ return Object.assign(Object.assign({}, config), { colors: _colors, chart: chart });
38
+ }
39
+ /**
40
+ * Prepares a digit chart configuration
41
+ * @param config The digit chart definition
42
+ * @returns The prepared digit chart (currently just returns the input as is)
43
+ */
44
+ prepareDigitConfig(config) {
45
+ return config;
46
+ }
47
+ /**
48
+ * Converts an array of plugin names to an array of plugin objects
49
+ * @param plugins Array of plugin names
50
+ * @returns Array of plugin objects or undefined if no plugins
51
+ */
52
+ _preparePlugins(plugins) {
53
+ return plugins.reduce((acc, plgName) => {
54
+ const plugin = this._chartPluginsRegistry.get(plgName);
55
+ if (plugin) {
56
+ return [...acc, plugin];
57
+ }
58
+ return acc;
59
+ }, []);
60
+ }
61
+ _getChartOptions(type, options, direction = 'horizontal') {
62
+ var _a;
63
+ const _optionsMap = {
64
+ verticalBar: getVerticalBarOptions,
65
+ horizontalBar: getHorizontalBarOptions,
66
+ doughnut: getDoughnutOptions,
67
+ line: getLineOptions,
68
+ pie: getPieOptions
69
+ };
70
+ const key = type === 'bar' ? `${direction}Bar` : type;
71
+ return ((_a = _optionsMap[key]) === null || _a === void 0 ? void 0 : _a.call(_optionsMap, options)) || {};
72
+ }
73
+ }
74
+ ReportConfigMapperService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ReportConfigMapperService, deps: [{ token: i1.ChartPluginsRegistry }], target: i0.ɵɵFactoryTarget.Injectable });
75
+ ReportConfigMapperService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ReportConfigMapperService, providedIn: 'root' });
76
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ReportConfigMapperService, decorators: [{
77
+ type: Injectable,
78
+ args: [{
79
+ providedIn: 'root'
80
+ }]
81
+ }], ctorParameters: function () { return [{ type: i1.ChartPluginsRegistry }]; } });
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWNvbmZpZy1tYXBwZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvcmVwb3J0cy9uZGYtcmVwb3J0cy9zZXJ2aWNlcy9yZXBvcnQtY29uZmlnLW1hcHBlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBYTNDLE9BQU8sRUFBRSxVQUFVLEVBQTRCLE1BQU0sY0FBYyxDQUFDO0FBRXBFLE9BQU8sRUFDTixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLHVCQUF1QixFQUN2QixjQUFjLEVBQ2QsYUFBYSxFQUNiLHFCQUFxQixFQUNyQixNQUFNLFlBQVksQ0FBQzs7O0FBS3BCLE1BQU0sT0FBTyx5QkFBeUI7SUFDckMsWUFBNkIscUJBQTJDO1FBQTNDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBc0I7SUFBRyxDQUFDO0lBRTVFOzs7O09BSUc7SUFDSCxrQkFBa0IsQ0FBQyxNQUE0QjtRQUM5QyxNQUFNLEtBQThELE1BQU0sQ0FBQyxLQUFLLEVBQTFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsT0FBMEIsRUFBckIsSUFBSSxjQUF6RCwwREFBMkQsQ0FBZSxDQUFDO1FBRWpGLE1BQU0sS0FBSyxtQ0FDUCxJQUFJLEtBQ1AsU0FBUyxFQUFFLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxFQUN0QyxPQUFPLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsR0FDckUsQ0FBQztRQUVGLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNqRCxLQUFLLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDOUM7UUFFRCxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBRTlELE9BQU8sZ0NBQ0gsTUFBTSxLQUNULEtBQUssRUFBRSxLQUFLLEdBQ0UsQ0FBQztJQUNqQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILHNCQUFzQixDQUFDLE1BQWtDO1FBQ3hELE1BQU0sS0FBZ0MsTUFBTSxDQUFDLEtBQUssRUFBNUMsRUFBRSxPQUFPLEVBQUUsT0FBTyxPQUEwQixFQUFyQixJQUFJLGNBQTNCLHNCQUE2QixDQUFlLENBQUM7UUFFbkQsTUFBTSxLQUFLLG1DQUNQLElBQUksS0FDUCxPQUFPLEVBQUUsY0FBYyxDQUFDLE9BQU8sQ0FBQyxHQUNoQyxDQUFDO1FBQ0YsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ2pELEtBQUssQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUM5QztRQUNELE1BQU0sT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUEsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLE1BQU0sS0FBSSxFQUFFLENBQUMsRUFBRSxHQUFHLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBRXZFLE9BQU8sZ0NBQ0gsTUFBTSxLQUNULE1BQU0sRUFBRSxPQUFPLEVBQ2YsS0FBSyxFQUFFLEtBQUssR0FDUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsa0JBQWtCLENBQUMsTUFBNEI7UUFDOUMsT0FBTyxNQUFvQixDQUFDO0lBQzdCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssZUFBZSxDQUFDLE9BQWlCO1FBQ3hDLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUN0QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZELElBQUksTUFBTSxFQUFFO2dCQUNYLE9BQU8sQ0FBQyxHQUFHLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQzthQUN4QjtZQUNELE9BQU8sR0FBRyxDQUFDO1FBQ1osQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVPLGdCQUFnQixDQUN2QixJQUFlLEVBQ2YsT0FBcUIsRUFDckIsWUFBdUMsWUFBWTs7UUFFbkQsTUFBTSxXQUFXLEdBQUc7WUFDbkIsV0FBVyxFQUFFLHFCQUFxQjtZQUNsQyxhQUFhLEVBQUUsdUJBQXVCO1lBQ3RDLFFBQVEsRUFBRSxrQkFBa0I7WUFDNUIsSUFBSSxFQUFFLGNBQWM7WUFDcEIsR0FBRyxFQUFFLGFBQWE7U0FDbEIsQ0FBQztRQUVGLE1BQU0sR0FBRyxHQUFHLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUN0RCxPQUFPLENBQUEsTUFBQSxXQUFXLENBQUMsR0FBRyxDQUFDLCtDQUFoQixXQUFXLEVBQVEsT0FBTyxDQUFDLEtBQUksRUFBRSxDQUFDO0lBQzFDLENBQUM7O3VIQTVGVyx5QkFBeUI7MkhBQXpCLHlCQUF5QixjQUZ6QixNQUFNOzRGQUVOLHlCQUF5QjtrQkFIckMsVUFBVTttQkFBQztvQkFDWCxVQUFVLEVBQUUsTUFBTTtpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcblx0RGlnaXRDaGFydCxcclxuXHREaWdpdENoYXJ0RGVmaW5pdGlvbixcclxuXHREeW5hbWljTGluZUNoYXJ0LFxyXG5cdER5bmFtaWNMaW5lQ2hhcnREZWZpbml0aW9uLFxyXG5cdER5bmFtaWNMaW5lQ2hhcnRPcHRpb25zLFxyXG5cdEdyYXBoQ2hhcnQsXHJcblx0R3JhcGhDaGFydERlZmluaXRpb24sXHJcblx0R3JhcGhDaGFydE9wdGlvbnNcclxufSBmcm9tICcuLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBDaGFydFBsdWdpbnNSZWdpc3RyeSB9IGZyb20gJy4vY2hhcnQtcGx1Z2lucy1yZWdpc3RyeS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2hhcnRPcHRpb25zLCBDaGFydFR5cGUsIFBsdWdpbiB9IGZyb20gJ2NoYXJ0LmpzJztcclxuaW1wb3J0IHsgQ2hhcnRVdGlscywgQ3VzdG9tUGx1Z2luQ2hhcnRPcHRpb25zIH0gZnJvbSAnLi4vLi4vY2hhcnRzJztcclxuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHtcclxuXHRnZXRDaGFydHNPcHRpb25zLFxyXG5cdGdldERvdWdobnV0T3B0aW9ucyxcclxuXHRnZXRIb3Jpem9udGFsQmFyT3B0aW9ucyxcclxuXHRnZXRMaW5lT3B0aW9ucyxcclxuXHRnZXRQaWVPcHRpb25zLFxyXG5cdGdldFZlcnRpY2FsQmFyT3B0aW9uc1xyXG59IGZyb20gJy4uL29wdGlvbnMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG5cdHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVwb3J0Q29uZmlnTWFwcGVyU2VydmljZSB7XHJcblx0Y29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBfY2hhcnRQbHVnaW5zUmVnaXN0cnk6IENoYXJ0UGx1Z2luc1JlZ2lzdHJ5KSB7fVxyXG5cclxuXHQvKipcclxuXHQgKiBQcmVwYXJlcyBhIGdyYXBoIGNoYXJ0IGNvbmZpZ3VyYXRpb24gYnkgY29udmVydGluZyBwbHVnaW4gbmFtZXMgdG8gYWN0dWFsIHBsdWdpbiBvYmplY3RzXHJcblx0ICogQHBhcmFtIGNvbmZpZyBUaGUgZ3JhcGggY2hhcnQgZGVmaW5pdGlvblxyXG5cdCAqIEByZXR1cm5zIFRoZSBwcmVwYXJlZCBncmFwaCBjaGFydCB3aXRoIHBsdWdpbiBvYmplY3RzXHJcblx0ICovXHJcblx0cHJlcGFyZUdyYXBoQ29uZmlnKGNvbmZpZzogR3JhcGhDaGFydERlZmluaXRpb24pOiBHcmFwaENoYXJ0IHtcclxuXHRcdGNvbnN0IHsgcGx1Z2lucywgY29sb3JzLCBvcHRpb25zLCBkaXJlY3Rpb24sIG92ZXJyaWRlcywgLi4ucmVzdCB9ID0gY29uZmlnLmNoYXJ0O1xyXG5cclxuXHRcdGNvbnN0IGNoYXJ0OiBHcmFwaENoYXJ0T3B0aW9ucyA9IHtcclxuXHRcdFx0Li4ucmVzdCxcclxuXHRcdFx0b3ZlcnJpZGVzOiBnZXRDaGFydHNPcHRpb25zKG92ZXJyaWRlcyksXHJcblx0XHRcdG9wdGlvbnM6IHRoaXMuX2dldENoYXJ0T3B0aW9ucyhjb25maWcuY2hhcnQudHlwZSwgb3B0aW9ucywgZGlyZWN0aW9uKVxyXG5cdFx0fTtcclxuXHJcblx0XHRpZiAoQXJyYXkuaXNBcnJheShwbHVnaW5zKSAmJiBwbHVnaW5zLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0Y2hhcnQucGx1Z2lucyA9IHRoaXMuX3ByZXBhcmVQbHVnaW5zKHBsdWdpbnMpO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNoYXJ0LmNvbG9ycyA9IFsuLi4oY29sb3JzIHx8IFtdKSwgLi4uQ2hhcnRVdGlscy5nZXRDb2xvcnMoKV07XHJcblxyXG5cdFx0cmV0dXJuIHtcclxuXHRcdFx0Li4uY29uZmlnLFxyXG5cdFx0XHRjaGFydDogY2hhcnRcclxuXHRcdH0gYXMgR3JhcGhDaGFydDtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFByZXBhcmVzIGEgZHluYW1pYyBsaW5lIGNoYXJ0IGNvbmZpZ3VyYXRpb24gYnkgY29udmVydGluZyBwbHVnaW4gbmFtZXMgdG8gYWN0dWFsIHBsdWdpbiBvYmplY3RzXHJcblx0ICogQHBhcmFtIGNvbmZpZyBUaGUgZHluYW1pYyBsaW5lIGNoYXJ0IGRlZmluaXRpb25cclxuXHQgKiBAcmV0dXJucyBUaGUgcHJlcGFyZWQgZHluYW1pYyBsaW5lIGNoYXJ0IHdpdGggcGx1Z2luIG9iamVjdHNcclxuXHQgKi9cclxuXHRwcmVwYXJlR3JhcGhMaW5lQ29uZmlnKGNvbmZpZzogRHluYW1pY0xpbmVDaGFydERlZmluaXRpb24pOiBEeW5hbWljTGluZUNoYXJ0IHtcclxuXHRcdGNvbnN0IHsgcGx1Z2lucywgb3B0aW9ucywgLi4ucmVzdCB9ID0gY29uZmlnLmNoYXJ0O1xyXG5cclxuXHRcdGNvbnN0IGNoYXJ0OiBEeW5hbWljTGluZUNoYXJ0T3B0aW9ucyA9IHtcclxuXHRcdFx0Li4ucmVzdCxcclxuXHRcdFx0b3B0aW9uczogZ2V0TGluZU9wdGlvbnMob3B0aW9ucylcclxuXHRcdH07XHJcblx0XHRpZiAoQXJyYXkuaXNBcnJheShwbHVnaW5zKSAmJiBwbHVnaW5zLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0Y2hhcnQucGx1Z2lucyA9IHRoaXMuX3ByZXBhcmVQbHVnaW5zKHBsdWdpbnMpO1xyXG5cdFx0fVxyXG5cdFx0Y29uc3QgX2NvbG9ycyA9IFsuLi4oY29uZmlnPy5jb2xvcnMgfHwgW10pLCAuLi5DaGFydFV0aWxzLmdldENvbG9ycygpXTtcclxuXHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHQuLi5jb25maWcsXHJcblx0XHRcdGNvbG9yczogX2NvbG9ycyxcclxuXHRcdFx0Y2hhcnQ6IGNoYXJ0XHJcblx0XHR9IGFzIER5bmFtaWNMaW5lQ2hhcnQ7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBQcmVwYXJlcyBhIGRpZ2l0IGNoYXJ0IGNvbmZpZ3VyYXRpb25cclxuXHQgKiBAcGFyYW0gY29uZmlnIFRoZSBkaWdpdCBjaGFydCBkZWZpbml0aW9uXHJcblx0ICogQHJldHVybnMgVGhlIHByZXBhcmVkIGRpZ2l0IGNoYXJ0IChjdXJyZW50bHkganVzdCByZXR1cm5zIHRoZSBpbnB1dCBhcyBpcylcclxuXHQgKi9cclxuXHRwcmVwYXJlRGlnaXRDb25maWcoY29uZmlnOiBEaWdpdENoYXJ0RGVmaW5pdGlvbik6IERpZ2l0Q2hhcnQge1xyXG5cdFx0cmV0dXJuIGNvbmZpZyBhcyBEaWdpdENoYXJ0O1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQ29udmVydHMgYW4gYXJyYXkgb2YgcGx1Z2luIG5hbWVzIHRvIGFuIGFycmF5IG9mIHBsdWdpbiBvYmplY3RzXHJcblx0ICogQHBhcmFtIHBsdWdpbnMgQXJyYXkgb2YgcGx1Z2luIG5hbWVzXHJcblx0ICogQHJldHVybnMgQXJyYXkgb2YgcGx1Z2luIG9iamVjdHMgb3IgdW5kZWZpbmVkIGlmIG5vIHBsdWdpbnNcclxuXHQgKi9cclxuXHRwcml2YXRlIF9wcmVwYXJlUGx1Z2lucyhwbHVnaW5zOiBzdHJpbmdbXSk6IHVuZGVmaW5lZCB8IFBsdWdpbjxDaGFydFR5cGU+W10ge1xyXG5cdFx0cmV0dXJuIHBsdWdpbnMucmVkdWNlKChhY2MsIHBsZ05hbWUpID0+IHtcclxuXHRcdFx0Y29uc3QgcGx1Z2luID0gdGhpcy5fY2hhcnRQbHVnaW5zUmVnaXN0cnkuZ2V0KHBsZ05hbWUpO1xyXG5cdFx0XHRpZiAocGx1Z2luKSB7XHJcblx0XHRcdFx0cmV0dXJuIFsuLi5hY2MsIHBsdWdpbl07XHJcblx0XHRcdH1cclxuXHRcdFx0cmV0dXJuIGFjYztcclxuXHRcdH0sIFtdKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgX2dldENoYXJ0T3B0aW9ucyhcclxuXHRcdHR5cGU6IENoYXJ0VHlwZSxcclxuXHRcdG9wdGlvbnM6IENoYXJ0T3B0aW9ucyxcclxuXHRcdGRpcmVjdGlvbjogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJyA9ICdob3Jpem9udGFsJ1xyXG5cdCkge1xyXG5cdFx0Y29uc3QgX29wdGlvbnNNYXAgPSB7XHJcblx0XHRcdHZlcnRpY2FsQmFyOiBnZXRWZXJ0aWNhbEJhck9wdGlvbnMsXHJcblx0XHRcdGhvcml6b250YWxCYXI6IGdldEhvcml6b250YWxCYXJPcHRpb25zLFxyXG5cdFx0XHRkb3VnaG51dDogZ2V0RG91Z2hudXRPcHRpb25zLFxyXG5cdFx0XHRsaW5lOiBnZXRMaW5lT3B0aW9ucyxcclxuXHRcdFx0cGllOiBnZXRQaWVPcHRpb25zXHJcblx0XHR9O1xyXG5cclxuXHRcdGNvbnN0IGtleSA9IHR5cGUgPT09ICdiYXInID8gYCR7ZGlyZWN0aW9ufUJhcmAgOiB0eXBlO1xyXG5cdFx0cmV0dXJuIF9vcHRpb25zTWFwW2tleV0/LihvcHRpb25zKSB8fCB7fTtcclxuXHR9XHJcbn1cclxuIl19
@@ -0,0 +1,98 @@
1
+ import { Injectable } from '@angular/core';
2
+ import _ from 'lodash';
3
+ import { forkJoin, of } from 'rxjs';
4
+ import { map } from 'rxjs/operators';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../../../../core/services";
7
+ export class ReportTransformService {
8
+ constructor(_ndfTransformService) {
9
+ this._ndfTransformService = _ndfTransformService;
10
+ }
11
+ _extractDataFormats(data) {
12
+ const extractedData = _.flatMap(data, (item) => {
13
+ if (Array.isArray(item === null || item === void 0 ? void 0 : item.datasource)) {
14
+ return _.filter(item.datasource, (source) => source.dataFormat);
15
+ }
16
+ return [];
17
+ });
18
+ return _.groupBy(extractedData, 'dataFormat');
19
+ }
20
+ prepareData(reportData, config) {
21
+ var _a;
22
+ const fields = this._extractDataFormats(config.reports.items);
23
+ if (!((_a = Object.values(fields)) === null || _a === void 0 ? void 0 : _a.length)) {
24
+ return of(reportData);
25
+ }
26
+ const observables$ = Object.entries(fields).map(([key, value]) => {
27
+ return this._transformDataFormat(key, value, reportData);
28
+ });
29
+ return forkJoin(observables$).pipe(map((data) => {
30
+ return this._updateBuckets(data, reportData);
31
+ }));
32
+ }
33
+ _updateBuckets(data, reportData) {
34
+ if (!(data === null || data === void 0 ? void 0 : data.length)) {
35
+ return reportData;
36
+ }
37
+ data.forEach((localizedBuckets) => {
38
+ localizedBuckets.forEach((item) => {
39
+ _.set(reportData, item.propertyPath, item.buckets);
40
+ });
41
+ });
42
+ return reportData;
43
+ }
44
+ _key(k) {
45
+ return `${k}`.split('/').pop();
46
+ }
47
+ _transformDataFormat(dataFormat, values, reportData) {
48
+ if (!this._ndfTransformService.has(dataFormat)) {
49
+ throw new Error(`No transformer defined for type: ${dataFormat}`);
50
+ }
51
+ const formats = this._extractBuckets(values, reportData);
52
+ const keys = this._getUniqueKeysFromFormats(formats);
53
+ if (keys.length) {
54
+ return this._ndfTransformService
55
+ .transform(dataFormat, keys)
56
+ .pipe(map((response) => this._applyLocalization(formats, response)));
57
+ }
58
+ return of([]);
59
+ }
60
+ _getUniqueKeysFromFormats(formats) {
61
+ return _.uniq(_.flatMap(formats, (item) => _.map(item.buckets, (bk) => this._key(bk.key))));
62
+ }
63
+ _extractBuckets(values, reportData) {
64
+ return values
65
+ .map((value) => {
66
+ const buckets = _.get(reportData, value.propertyPath);
67
+ if (buckets === null || buckets === void 0 ? void 0 : buckets.length) {
68
+ return Object.assign(Object.assign({}, value), { buckets: buckets });
69
+ }
70
+ })
71
+ .filter(Boolean);
72
+ }
73
+ _applyLocalization(formats, response) {
74
+ return !!(response === null || response === void 0 ? void 0 : response.length)
75
+ ? formats.map((format) => {
76
+ format.buckets.forEach((bucket) => {
77
+ const cacheItem = _.find(response, { code: this._key(bucket.key) });
78
+ if (cacheItem) {
79
+ bucket.localized = {
80
+ ar: cacheItem.arabicTitle,
81
+ en: cacheItem.englishTitle
82
+ };
83
+ }
84
+ });
85
+ return format;
86
+ })
87
+ : [];
88
+ }
89
+ }
90
+ ReportTransformService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ReportTransformService, deps: [{ token: i1.NdfTransformService }], target: i0.ɵɵFactoryTarget.Injectable });
91
+ ReportTransformService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ReportTransformService, providedIn: 'root' });
92
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ReportTransformService, decorators: [{
93
+ type: Injectable,
94
+ args: [{
95
+ providedIn: 'root'
96
+ }]
97
+ }], ctorParameters: function () { return [{ type: i1.NdfTransformService }]; } });
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXRyYW5zZm9ybS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9yZXBvcnRzL25kZi1yZXBvcnRzL3NlcnZpY2VzL3JlcG9ydC10cmFuc2Zvcm0uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQVdyQyxNQUFNLE9BQU8sc0JBQXNCO0lBQ2xDLFlBQTZCLG9CQUF5QztRQUF6Qyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO0lBQUcsQ0FBQztJQUVsRSxtQkFBbUIsQ0FBQyxJQUE2QjtRQUN4RCxNQUFNLGFBQWEsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO1lBQzlDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsVUFBVSxDQUFDLEVBQUU7Z0JBQ3BDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDaEU7WUFDRCxPQUFPLEVBQUUsQ0FBQztRQUNYLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsV0FBVyxDQUFDLFVBQTRCLEVBQUUsTUFBd0I7O1FBQ2pFLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTlELElBQUksQ0FBQyxDQUFBLE1BQUEsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsMENBQUUsTUFBTSxDQUFBLEVBQUU7WUFDbkMsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDdEI7UUFFRCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDaEUsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxFQUFFLEtBQVksRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNqRSxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FDakMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDWixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUNGLENBQUM7SUFDSCxDQUFDO0lBRU8sY0FBYyxDQUFDLElBQWlDLEVBQUUsVUFBd0M7UUFDakcsSUFBSSxDQUFDLENBQUEsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLE1BQU0sQ0FBQSxFQUFFO1lBQ2xCLE9BQU8sVUFBVSxDQUFDO1NBQ2xCO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGdCQUFnQixFQUFFLEVBQUU7WUFDakMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ2pDLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3BELENBQUMsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLFVBQVUsQ0FBQztJQUNuQixDQUFDO0lBRU8sSUFBSSxDQUFDLENBQVM7UUFDckIsT0FBTyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRU8sb0JBQW9CLENBQzNCLFVBQWtCLEVBQ2xCLE1BQStELEVBQy9ELFVBQTRCO1FBRTVCLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQy9DLE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLFVBQVUsRUFBRSxDQUFDLENBQUM7U0FDbEU7UUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztRQUV6RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFckQsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2hCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQjtpQkFDOUIsU0FBUyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUM7aUJBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3RFO1FBRUQsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDZixDQUFDO0lBRU8seUJBQXlCLENBQUMsT0FBYztRQUMvQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0YsQ0FBQztJQUVPLGVBQWUsQ0FDdEIsTUFBK0QsRUFDL0QsVUFBNEI7UUFFNUIsT0FBTyxNQUFNO2FBQ1gsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDZCxNQUFNLE9BQU8sR0FBc0IsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3pFLElBQUksT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLE1BQU0sRUFBRTtnQkFDcEIsdUNBQ0ksS0FBSyxLQUNSLE9BQU8sRUFBRSxPQUFPLElBQ2Y7YUFDRjtRQUNGLENBQUMsQ0FBQzthQUNELE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQixDQUFDO0lBRU8sa0JBQWtCLENBQUMsT0FBYyxFQUFFLFFBQWU7UUFDekQsT0FBTyxDQUFDLENBQUMsQ0FBQSxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsTUFBTSxDQUFBO1lBQ3hCLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ3ZCLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7b0JBQ2pDLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDcEUsSUFBSSxTQUFTLEVBQUU7d0JBQ2QsTUFBTSxDQUFDLFNBQVMsR0FBRzs0QkFDbEIsRUFBRSxFQUFFLFNBQVMsQ0FBQyxXQUFXOzRCQUN6QixFQUFFLEVBQUUsU0FBUyxDQUFDLFlBQVk7eUJBQzFCLENBQUM7cUJBQ0Y7Z0JBQ0YsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsT0FBTyxNQUFNLENBQUM7WUFDZixDQUFDLENBQUM7WUFDSCxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ1AsQ0FBQzs7b0hBM0dXLHNCQUFzQjt3SEFBdEIsc0JBQXNCLGNBRnRCLE1BQU07NEZBRU4sc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNYLFVBQVUsRUFBRSxNQUFNO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7IGZvcmtKb2luLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEFwaVJlc3BvbnNlTW9kZWwsIEVudHJ5TW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IE5kZlRyYW5zZm9ybVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgU3RhdGlzdGljQnVja2V0IH0gZnJvbSAnLi4vLi4vY2hhcnRzJztcclxuaW1wb3J0IHsgTmRmUmVwb3J0c0NvbmZpZywgUmVwb3J0RGVmaW5pdGlvbk1vZGVsLCBSZXBvcnREYXRhU291cmNlIH0gZnJvbSAnLi4vbW9kZWxzJztcclxuXHJcbnR5cGUgTG9jYWxpemVTdGF0aXN0aWNCdWNrZXQgPSBTdGF0aXN0aWNCdWNrZXQgJiB7IGVuOiBzdHJpbmc7IGFyOiBzdHJpbmcgfTtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuXHRwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFJlcG9ydFRyYW5zZm9ybVNlcnZpY2Uge1xyXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgX25kZlRyYW5zZm9ybVNlcnZpY2U6IE5kZlRyYW5zZm9ybVNlcnZpY2UpIHt9XHJcblxyXG5cdHByaXZhdGUgX2V4dHJhY3REYXRhRm9ybWF0cyhkYXRhOiBSZXBvcnREZWZpbml0aW9uTW9kZWxbXSkge1xyXG5cdFx0Y29uc3QgZXh0cmFjdGVkRGF0YSA9IF8uZmxhdE1hcChkYXRhLCAoaXRlbSkgPT4ge1xyXG5cdFx0XHRpZiAoQXJyYXkuaXNBcnJheShpdGVtPy5kYXRhc291cmNlKSkge1xyXG5cdFx0XHRcdHJldHVybiBfLmZpbHRlcihpdGVtLmRhdGFzb3VyY2UsIChzb3VyY2UpID0+IHNvdXJjZS5kYXRhRm9ybWF0KTtcclxuXHRcdFx0fVxyXG5cdFx0XHRyZXR1cm4gW107XHJcblx0XHR9KTtcclxuXHRcdHJldHVybiBfLmdyb3VwQnkoZXh0cmFjdGVkRGF0YSwgJ2RhdGFGb3JtYXQnKTtcclxuXHR9XHJcblxyXG5cdHByZXBhcmVEYXRhKHJlcG9ydERhdGE6IEFwaVJlc3BvbnNlTW9kZWwsIGNvbmZpZzogTmRmUmVwb3J0c0NvbmZpZykge1xyXG5cdFx0Y29uc3QgZmllbGRzID0gdGhpcy5fZXh0cmFjdERhdGFGb3JtYXRzKGNvbmZpZy5yZXBvcnRzLml0ZW1zKTtcclxuXHJcblx0XHRpZiAoIU9iamVjdC52YWx1ZXMoZmllbGRzKT8ubGVuZ3RoKSB7XHJcblx0XHRcdHJldHVybiBvZihyZXBvcnREYXRhKTtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBvYnNlcnZhYmxlcyQgPSBPYmplY3QuZW50cmllcyhmaWVsZHMpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiB7XHJcblx0XHRcdHJldHVybiB0aGlzLl90cmFuc2Zvcm1EYXRhRm9ybWF0KGtleSwgdmFsdWUgYXMgYW55LCByZXBvcnREYXRhKTtcclxuXHRcdH0pO1xyXG5cclxuXHRcdHJldHVybiBmb3JrSm9pbihvYnNlcnZhYmxlcyQpLnBpcGUoXHJcblx0XHRcdG1hcCgoZGF0YSkgPT4ge1xyXG5cdFx0XHRcdHJldHVybiB0aGlzLl91cGRhdGVCdWNrZXRzKGRhdGEsIHJlcG9ydERhdGEpO1xyXG5cdFx0XHR9KVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgX3VwZGF0ZUJ1Y2tldHMoZGF0YTogTG9jYWxpemVTdGF0aXN0aWNCdWNrZXRbXVtdLCByZXBvcnREYXRhOiBBcGlSZXNwb25zZU1vZGVsPEVudHJ5TW9kZWw+KTogYW55IHtcclxuXHRcdGlmICghZGF0YT8ubGVuZ3RoKSB7XHJcblx0XHRcdHJldHVybiByZXBvcnREYXRhO1xyXG5cdFx0fVxyXG5cclxuXHRcdGRhdGEuZm9yRWFjaCgobG9jYWxpemVkQnVja2V0cykgPT4ge1xyXG5cdFx0XHRsb2NhbGl6ZWRCdWNrZXRzLmZvckVhY2goKGl0ZW0pID0+IHtcclxuXHRcdFx0XHRfLnNldChyZXBvcnREYXRhLCBpdGVtLnByb3BlcnR5UGF0aCwgaXRlbS5idWNrZXRzKTtcclxuXHRcdFx0fSk7XHJcblx0XHR9KTtcclxuXHJcblx0XHRyZXR1cm4gcmVwb3J0RGF0YTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgX2tleShrOiBzdHJpbmcpIHtcclxuXHRcdHJldHVybiBgJHtrfWAuc3BsaXQoJy8nKS5wb3AoKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgX3RyYW5zZm9ybURhdGFGb3JtYXQoXHJcblx0XHRkYXRhRm9ybWF0OiBzdHJpbmcsXHJcblx0XHR2YWx1ZXM6IFBpY2s8UmVwb3J0RGF0YVNvdXJjZSwgJ3Byb3BlcnR5UGF0aCcgfCAnZGF0YUZvcm1hdCc+W10sXHJcblx0XHRyZXBvcnREYXRhOiBBcGlSZXNwb25zZU1vZGVsXHJcblx0KSB7XHJcblx0XHRpZiAoIXRoaXMuX25kZlRyYW5zZm9ybVNlcnZpY2UuaGFzKGRhdGFGb3JtYXQpKSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcihgTm8gdHJhbnNmb3JtZXIgZGVmaW5lZCBmb3IgdHlwZTogJHtkYXRhRm9ybWF0fWApO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IGZvcm1hdHMgPSB0aGlzLl9leHRyYWN0QnVja2V0cyh2YWx1ZXMsIHJlcG9ydERhdGEpO1xyXG5cclxuXHRcdGNvbnN0IGtleXMgPSB0aGlzLl9nZXRVbmlxdWVLZXlzRnJvbUZvcm1hdHMoZm9ybWF0cyk7XHJcblxyXG5cdFx0aWYgKGtleXMubGVuZ3RoKSB7XHJcblx0XHRcdHJldHVybiB0aGlzLl9uZGZUcmFuc2Zvcm1TZXJ2aWNlXHJcblx0XHRcdFx0LnRyYW5zZm9ybShkYXRhRm9ybWF0LCBrZXlzKVxyXG5cdFx0XHRcdC5waXBlKG1hcCgocmVzcG9uc2UpID0+IHRoaXMuX2FwcGx5TG9jYWxpemF0aW9uKGZvcm1hdHMsIHJlc3BvbnNlKSkpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBvZihbXSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIF9nZXRVbmlxdWVLZXlzRnJvbUZvcm1hdHMoZm9ybWF0czogYW55W10pIHtcclxuXHRcdHJldHVybiBfLnVuaXEoXy5mbGF0TWFwKGZvcm1hdHMsIChpdGVtKSA9PiBfLm1hcChpdGVtLmJ1Y2tldHMsIChiaykgPT4gdGhpcy5fa2V5KGJrLmtleSkpKSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIF9leHRyYWN0QnVja2V0cyhcclxuXHRcdHZhbHVlczogUGljazxSZXBvcnREYXRhU291cmNlLCAncHJvcGVydHlQYXRoJyB8ICdkYXRhRm9ybWF0Jz5bXSxcclxuXHRcdHJlcG9ydERhdGE6IEFwaVJlc3BvbnNlTW9kZWxcclxuXHQpIHtcclxuXHRcdHJldHVybiB2YWx1ZXNcclxuXHRcdFx0Lm1hcCgodmFsdWUpID0+IHtcclxuXHRcdFx0XHRjb25zdCBidWNrZXRzOiBTdGF0aXN0aWNCdWNrZXRbXSA9IF8uZ2V0KHJlcG9ydERhdGEsIHZhbHVlLnByb3BlcnR5UGF0aCk7XHJcblx0XHRcdFx0aWYgKGJ1Y2tldHM/Lmxlbmd0aCkge1xyXG5cdFx0XHRcdFx0cmV0dXJuIHtcclxuXHRcdFx0XHRcdFx0Li4udmFsdWUsXHJcblx0XHRcdFx0XHRcdGJ1Y2tldHM6IGJ1Y2tldHNcclxuXHRcdFx0XHRcdH07XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KVxyXG5cdFx0XHQuZmlsdGVyKEJvb2xlYW4pO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfYXBwbHlMb2NhbGl6YXRpb24oZm9ybWF0czogYW55W10sIHJlc3BvbnNlOiBhbnlbXSkge1xyXG5cdFx0cmV0dXJuICEhcmVzcG9uc2U/Lmxlbmd0aFxyXG5cdFx0XHQ/IGZvcm1hdHMubWFwKChmb3JtYXQpID0+IHtcclxuXHRcdFx0XHRcdGZvcm1hdC5idWNrZXRzLmZvckVhY2goKGJ1Y2tldCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRjb25zdCBjYWNoZUl0ZW0gPSBfLmZpbmQocmVzcG9uc2UsIHsgY29kZTogdGhpcy5fa2V5KGJ1Y2tldC5rZXkpIH0pO1xyXG5cdFx0XHRcdFx0XHRpZiAoY2FjaGVJdGVtKSB7XHJcblx0XHRcdFx0XHRcdFx0YnVja2V0LmxvY2FsaXplZCA9IHtcclxuXHRcdFx0XHRcdFx0XHRcdGFyOiBjYWNoZUl0ZW0uYXJhYmljVGl0bGUsXHJcblx0XHRcdFx0XHRcdFx0XHRlbjogY2FjaGVJdGVtLmVuZ2xpc2hUaXRsZVxyXG5cdFx0XHRcdFx0XHRcdH07XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0cmV0dXJuIGZvcm1hdDtcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHQ6IFtdO1xyXG5cdH1cclxufVxyXG4iXX0=