nuxeo-development-framework 5.3.0 → 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 (237) hide show
  1. package/bundles/nuxeo-development-framework.umd.js +3029 -568
  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/services/index.js +2 -2
  105. package/esm2015/public-api.js +8 -6
  106. package/fesm2015/nuxeo-development-framework.js +2677 -405
  107. package/fesm2015/nuxeo-development-framework.js.map +1 -1
  108. package/lib/components/{charts → reports/charts}/components/base-chart.component.d.ts +1 -1
  109. package/lib/components/reports/charts/index.d.ts +1 -0
  110. package/lib/components/reports/charts/plugins/data-labels.d.ts +3 -0
  111. package/lib/components/{charts → reports/charts}/plugins/index.d.ts +2 -0
  112. package/lib/components/reports/charts/plugins/scrollable-legends.d.ts +6 -0
  113. package/lib/components/{charts → reports/charts}/services/statistic.service.d.ts +2 -2
  114. package/lib/components/reports/charts/utility/css.d.ts +45 -0
  115. package/lib/components/{charts → reports/charts}/utility/index.d.ts +1 -0
  116. package/lib/components/reports/ndf-reports/base/base-chart.d.ts +27 -0
  117. package/lib/components/reports/ndf-reports/base/base-graph.report.d.ts +19 -0
  118. package/lib/components/reports/ndf-reports/base/base-report.d.ts +58 -0
  119. package/lib/components/reports/ndf-reports/charts-components/digit-chart/digit-chart.component.d.ts +14 -0
  120. package/lib/components/reports/ndf-reports/charts-components/graph-chart/graph-chart.component.d.ts +23 -0
  121. package/lib/components/reports/ndf-reports/charts-components/graph-chart/graph-chart.service.d.ts +6 -0
  122. package/lib/components/reports/ndf-reports/charts-components/index.d.ts +2 -0
  123. package/lib/components/reports/ndf-reports/components/_parts/chart-type-selector/chart-type-selector.component.d.ts +23 -0
  124. package/lib/components/reports/ndf-reports/components/_parts/graph-dialog/graph-dialog.component.d.ts +17 -0
  125. package/lib/components/reports/ndf-reports/components/_parts/index.d.ts +4 -0
  126. package/lib/components/reports/ndf-reports/components/_parts/time-group-selector/time-group-selector.component.d.ts +21 -0
  127. package/lib/components/reports/ndf-reports/components/_parts/timeline-dialog/timeline-dialog.component.d.ts +19 -0
  128. package/lib/components/reports/ndf-reports/components/chart-panel.component.d.ts +13 -0
  129. package/lib/components/reports/ndf-reports/components/digit-report/digit-report.component.d.ts +7 -0
  130. package/lib/components/reports/ndf-reports/components/dynamic-timeline-report/dynamic-timeline-report.component.d.ts +20 -0
  131. package/lib/components/reports/ndf-reports/components/graph-report/graph-report.component.d.ts +12 -0
  132. package/lib/components/reports/ndf-reports/components/index.d.ts +5 -0
  133. package/lib/components/reports/ndf-reports/constants/charts-types.d.ts +12 -0
  134. package/lib/components/reports/ndf-reports/constants/index.d.ts +2 -0
  135. package/lib/components/reports/ndf-reports/constants/time-group.d.ts +6 -0
  136. package/lib/components/reports/ndf-reports/containers/index.d.ts +2 -0
  137. package/lib/components/reports/ndf-reports/containers/ndf-report/ndf-report.component.d.ts +32 -0
  138. package/lib/components/reports/ndf-reports/containers/ndf-reports/ndf-reports.component.d.ts +92 -0
  139. package/lib/components/reports/ndf-reports/directives/index.d.ts +1 -0
  140. package/lib/components/reports/ndf-reports/directives/scrollable-div.directive.d.ts +14 -0
  141. package/lib/components/reports/ndf-reports/index.d.ts +1 -0
  142. package/lib/components/reports/ndf-reports/models/base.d.ts +18 -0
  143. package/lib/components/reports/ndf-reports/models/common.d.ts +20 -0
  144. package/lib/components/reports/ndf-reports/models/details.d.ts +16 -0
  145. package/lib/components/reports/ndf-reports/models/dialog-data.d.ts +12 -0
  146. package/lib/components/reports/ndf-reports/models/digit.d.ts +17 -0
  147. package/lib/components/reports/ndf-reports/models/dynamic-line.d.ts +52 -0
  148. package/lib/components/reports/ndf-reports/models/graph.d.ts +56 -0
  149. package/lib/components/reports/ndf-reports/models/index.d.ts +12 -0
  150. package/lib/components/reports/ndf-reports/models/ndf-reports.config.d.ts +22 -0
  151. package/lib/components/reports/ndf-reports/models/report-config.d.ts +5 -0
  152. package/lib/components/reports/ndf-reports/models/report-data-source.d.ts +7 -0
  153. package/lib/components/reports/ndf-reports/models/report-response.model.d.ts +4 -0
  154. package/lib/components/reports/ndf-reports/models/request.d.ts +10 -0
  155. package/lib/components/reports/ndf-reports/ndf-reports.module.d.ts +34 -0
  156. package/lib/components/reports/ndf-reports/options/doughnut.d.ts +7 -0
  157. package/lib/components/reports/ndf-reports/options/horizontal-bar.d.ts +7 -0
  158. package/lib/components/reports/ndf-reports/options/index.d.ts +6 -0
  159. package/lib/components/reports/ndf-reports/options/line.d.ts +7 -0
  160. package/lib/components/reports/ndf-reports/options/options.d.ts +2 -0
  161. package/lib/components/reports/ndf-reports/options/pie.d.ts +7 -0
  162. package/lib/components/reports/ndf-reports/options/vertical-bar.d.ts +7 -0
  163. package/lib/components/reports/ndf-reports/public-api.d.ts +5 -0
  164. package/lib/components/reports/ndf-reports/services/base-chart-builder.service.d.ts +59 -0
  165. package/lib/components/reports/ndf-reports/services/chart-data-transformers.service.d.ts +68 -0
  166. package/lib/components/reports/ndf-reports/services/chart-manager.service.d.ts +18 -0
  167. package/lib/components/reports/ndf-reports/services/chart-plugins-registry.service.d.ts +34 -0
  168. package/lib/components/reports/ndf-reports/services/digit-chart.service.d.ts +11 -0
  169. package/lib/components/reports/ndf-reports/services/dynamic-timeline-report.service.d.ts +32 -0
  170. package/lib/components/reports/ndf-reports/services/index.d.ts +10 -0
  171. package/lib/components/reports/ndf-reports/services/ndf-reports.service.d.ts +19 -0
  172. package/lib/components/reports/ndf-reports/services/report-config-mapper.service.d.ts +34 -0
  173. package/lib/components/reports/ndf-reports/services/report-transform.service.d.ts +18 -0
  174. package/lib/components/reports/ndf-reports/services/reports-state.service.d.ts +7 -0
  175. package/lib/components/reports/ndf-reports/utilities/index.d.ts +1 -0
  176. package/lib/components/reports/ndf-reports/utilities/reports-table.mapper.d.ts +3 -0
  177. package/lib/components/tables/ndf-table/filters-panel/index.d.ts +0 -1
  178. package/lib/components/tables/ndf-table/filters-panel/models/types-helper.d.ts +1 -9
  179. package/lib/components/tables/ndf-table/filters-panel/services/aggregation-field.service.d.ts +1 -1
  180. package/lib/components/tables/ndf-table/filters-panel/services/index.d.ts +0 -1
  181. package/lib/core/services/index.d.ts +1 -0
  182. package/lib/{components/tables/ndf-table/filters-panel → core}/services/ndf-transform.service.d.ts +7 -1
  183. package/lib/shared/components/index.d.ts +2 -2
  184. package/lib/shared/services/index.d.ts +1 -1
  185. package/package.json +1 -1
  186. package/public-api.d.ts +7 -5
  187. package/esm2015/lib/components/charts/chart.const.js +0 -3
  188. package/esm2015/lib/components/charts/chart.token.js +0 -3
  189. package/esm2015/lib/components/charts/charts.module.js +0 -19
  190. package/esm2015/lib/components/charts/components/base-chart.component.js +0 -41
  191. package/esm2015/lib/components/charts/components/chart.component.js +0 -127
  192. package/esm2015/lib/components/charts/components/data-chart.component.js +0 -167
  193. package/esm2015/lib/components/charts/components/index.js +0 -4
  194. package/esm2015/lib/components/charts/defaults/bar.js +0 -18
  195. package/esm2015/lib/components/charts/defaults/doughnut.js +0 -15
  196. package/esm2015/lib/components/charts/defaults/index.js +0 -5
  197. package/esm2015/lib/components/charts/defaults/line.js +0 -25
  198. package/esm2015/lib/components/charts/defaults/pie.js +0 -15
  199. package/esm2015/lib/components/charts/index.js +0 -10
  200. package/esm2015/lib/components/charts/models/index.js +0 -5
  201. package/esm2015/lib/components/charts/models/options.js +0 -2
  202. package/esm2015/lib/components/charts/models/plugins-options.js +0 -2
  203. package/esm2015/lib/components/charts/models/response.js +0 -2
  204. package/esm2015/lib/components/charts/models/statistic-request-config.js +0 -2
  205. package/esm2015/lib/components/charts/plugins/doughnut-center-text.js +0 -25
  206. package/esm2015/lib/components/charts/plugins/doughnut-empty-state.js +0 -34
  207. package/esm2015/lib/components/charts/plugins/index.js +0 -4
  208. package/esm2015/lib/components/charts/plugins/legend-margin.js +0 -16
  209. package/esm2015/lib/components/charts/services/index.js +0 -2
  210. package/esm2015/lib/components/charts/services/statistic.service.js +0 -75
  211. package/esm2015/lib/components/charts/utility/colors.js +0 -79
  212. package/esm2015/lib/components/charts/utility/common.js +0 -7
  213. package/esm2015/lib/components/charts/utility/index.js +0 -3
  214. package/esm2015/lib/components/tables/ndf-table/filters-panel/services/ndf-transform.service.js +0 -80
  215. /package/lib/components/{charts → reports/charts}/chart.const.d.ts +0 -0
  216. /package/lib/components/{charts → reports/charts}/chart.token.d.ts +0 -0
  217. /package/lib/components/{charts → reports/charts}/charts.module.d.ts +0 -0
  218. /package/lib/components/{charts → reports/charts}/components/chart.component.d.ts +0 -0
  219. /package/lib/components/{charts → reports/charts}/components/data-chart.component.d.ts +0 -0
  220. /package/lib/components/{charts → reports/charts}/components/index.d.ts +0 -0
  221. /package/lib/components/{charts → reports/charts}/defaults/bar.d.ts +0 -0
  222. /package/lib/components/{charts → reports/charts}/defaults/doughnut.d.ts +0 -0
  223. /package/lib/components/{charts → reports/charts}/defaults/index.d.ts +0 -0
  224. /package/lib/components/{charts → reports/charts}/defaults/line.d.ts +0 -0
  225. /package/lib/components/{charts → reports/charts}/defaults/pie.d.ts +0 -0
  226. /package/lib/components/{charts → reports/charts}/models/index.d.ts +0 -0
  227. /package/lib/components/{charts → reports/charts}/models/options.d.ts +0 -0
  228. /package/lib/components/{charts → reports/charts}/models/plugins-options.d.ts +0 -0
  229. /package/lib/components/{charts → reports/charts}/models/response.d.ts +0 -0
  230. /package/lib/components/{charts → reports/charts}/models/statistic-request-config.d.ts +0 -0
  231. /package/lib/components/{charts → reports/charts}/plugins/doughnut-center-text.d.ts +0 -0
  232. /package/lib/components/{charts → reports/charts}/plugins/doughnut-empty-state.d.ts +0 -0
  233. /package/lib/components/{charts → reports/charts}/plugins/legend-margin.d.ts +0 -0
  234. /package/lib/components/{charts/index.d.ts → reports/charts/public-api.d.ts} +0 -0
  235. /package/lib/components/{charts → reports/charts}/services/index.d.ts +0 -0
  236. /package/lib/components/{charts → reports/charts}/utility/colors.d.ts +0 -0
  237. /package/lib/components/{charts → reports/charts}/utility/common.d.ts +0 -0
@@ -0,0 +1,132 @@
1
+ /**
2
+ * Retrieves the value of a CSS variable or returns a default value if the variable is not defined.
3
+ *
4
+ * @param {string} key - The name of the CSS variable to retrieve (e.g., `--variable-name`).
5
+ * @param {string | number} defaultValue - The default value to return if the CSS variable is not defined.
6
+ * @returns {string | number} - The value of the CSS variable or the provided default value.
7
+ */
8
+ export function getCssVariable(key, defaultValue) {
9
+ const root = document.documentElement;
10
+ const computedStyle = getComputedStyle(root);
11
+ return computedStyle.getPropertyValue(key).trim() || defaultValue;
12
+ }
13
+ /**
14
+ * Retrieves the value of a CSS variable or returns a default color if the variable is not defined.
15
+ *
16
+ * @param {string} key - The name of the CSS variable to retrieve (e.g., `--variable-name`).
17
+ * @param {string} [defaultColor='#444'] - The default color to return if the CSS variable is not defined.
18
+ * @returns {string} - The value of the CSS variable or the provided default color.
19
+ */
20
+ export function getColor(key, defaultColor) {
21
+ return getCssVariable(key, defaultColor || '#444');
22
+ }
23
+ /**
24
+ * Retrieves the grid color for the specified axis.
25
+ *
26
+ * @param {'x' | 'y'} axis - The axis for which to retrieve the grid color ('x' or 'y').
27
+ * @returns {string} - The grid color as a CSS value.
28
+ */
29
+ export const getGridColor = (axis) => {
30
+ return getColor(`--chart-grid-${axis}-color`, '#cecece');
31
+ };
32
+ /**
33
+ * Retrieves the ticks color for the specified axis.
34
+ *
35
+ * @param {'x' | 'y'} axis - The axis for which to retrieve the ticks color ('x' or 'y').
36
+ * @returns {string} - The ticks color as a CSS value.
37
+ */
38
+ export const getTicksColor = (axis) => {
39
+ return getColor(`--chart-ticks-${axis}-color`);
40
+ };
41
+ /**
42
+ * Retrieves an array of colors based on CSS variables or fallback to default colors.
43
+ *
44
+ * @param {number} [length=14] - The number of colors to retrieve.
45
+ * @param staticColors
46
+ * @returns {string[]} - An array of color codes.
47
+ */
48
+ export const getColors = (length = 14, staticColors = [
49
+ '#47763b',
50
+ '#c8a791',
51
+ '#00837b',
52
+ '#b78b1c',
53
+ '#636569',
54
+ '#a84047',
55
+ '#f7f8f9',
56
+ '#fd6670',
57
+ '#00dca5',
58
+ '#fbb62c',
59
+ '#596973',
60
+ '#5a1496',
61
+ '#3c3cf0',
62
+ '#f17205' // Bright orange
63
+ ]) => {
64
+ const root = document.documentElement;
65
+ const computedStyle = getComputedStyle(root);
66
+ const colors = [];
67
+ for (let index = 0; index < length; index++) {
68
+ const color = computedStyle.getPropertyValue(`--chart-color-${index}`).trim() || staticColors[index];
69
+ colors.push(color);
70
+ }
71
+ return colors;
72
+ };
73
+ /**
74
+ * Determines the appropriate text color (light or dark) based on the luminance of the given background color.
75
+ *
76
+ * @param {string} backgroundColor - The background color in hexadecimal (e.g., `#ffffff`) or RGB format (e.g., `rgb(255, 255, 255)`).
77
+ * @returns {string} - The text color, either the dark color (`--chart-value-dark-color`) or the light color (`--chart-value-light-color`).
78
+ */
79
+ export function getTextColor(backgroundColor) {
80
+ const darkColor = getColor('--chart-value-dark-color', '#000');
81
+ const lightColor = getColor('--chart-value-light-color', '#fff');
82
+ let rgb = null;
83
+ if (backgroundColor.startsWith('#')) {
84
+ rgb = hexToRgb(backgroundColor);
85
+ }
86
+ else if (backgroundColor.startsWith('rgb')) {
87
+ rgb = parseRgbString(backgroundColor);
88
+ }
89
+ else {
90
+ return darkColor; // Default fallback
91
+ }
92
+ /**
93
+ * Converts an RGB component to its linearized value for luminance calculation.
94
+ *
95
+ * @param {number} c - The RGB component value (0-255).
96
+ * @returns {number} - The linearized value.
97
+ */
98
+ function toLinear(c) {
99
+ c /= 255;
100
+ return c <= 0.03928 ? c / 12.92 : Math.pow((c + 0.055) / 1.055, 2.4);
101
+ }
102
+ const [r, g, b] = rgb.map(toLinear);
103
+ const luminance = 0.2126 * r + 0.7152 * g + 0.0722 * b;
104
+ return luminance > 0.6 ? darkColor : lightColor;
105
+ }
106
+ /*
107
+ * Converts a hexadecimal color code to an RGB array.
108
+ *
109
+ * @param {string} hex - The hexadecimal color code (e.g., `#fff` or `#ffffff`).
110
+ * @returns {number[]} - An array containing the RGB values [red, green, blue].
111
+ */
112
+ function hexToRgb(hex) {
113
+ hex = hex.replace(/^#/, '');
114
+ if (hex.length === 3) {
115
+ hex = hex
116
+ .split('')
117
+ .map((char) => char + char)
118
+ .join('');
119
+ }
120
+ const bigint = parseInt(hex, 16);
121
+ return [(bigint >> 16) & 255, (bigint >> 8) & 255, bigint & 255];
122
+ }
123
+ /**
124
+ * Parses an RGB string and extracts the numeric RGB values.
125
+ *
126
+ * @param {string} rgbString - The RGB string (e.g., `rgb(255, 255, 255)`).
127
+ * @returns {number[]} - An array containing the RGB values [red, green, blue].
128
+ */
129
+ function parseRgbString(rgbString) {
130
+ return rgbString.match(/\d+/g).map(Number);
131
+ }
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9yZXBvcnRzL2NoYXJ0cy91dGlsaXR5L2Nzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLEdBQVcsRUFBRSxZQUE4QjtJQUN6RSxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDO0lBQ3RDLE1BQU0sYUFBYSxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdDLE9BQU8sYUFBYSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLFlBQVksQ0FBQztBQUNuRSxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLFFBQVEsQ0FBQyxHQUFXLEVBQUUsWUFBcUI7SUFDMUQsT0FBTyxjQUFjLENBQUMsR0FBRyxFQUFFLFlBQVksSUFBSSxNQUFNLENBQVcsQ0FBQztBQUM5RCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxJQUFlLEVBQVUsRUFBRTtJQUN2RCxPQUFPLFFBQVEsQ0FBQyxnQkFBZ0IsSUFBSSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDMUQsQ0FBQyxDQUFDO0FBRUY7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxJQUFlLEVBQVUsRUFBRTtJQUN4RCxPQUFPLFFBQVEsQ0FBQyxpQkFBaUIsSUFBSSxRQUFRLENBQUMsQ0FBQztBQUNoRCxDQUFDLENBQUM7QUFFRjs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FDeEIsU0FBaUIsRUFBRSxFQUNuQixZQUFZLEdBQUc7SUFDZCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUyxDQUFDLGdCQUFnQjtDQUMxQixFQUNVLEVBQUU7SUFDYixNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDO0lBQ3RDLE1BQU0sYUFBYSxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdDLE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztJQUM1QixLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQzVDLE1BQU0sS0FBSyxHQUFHLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUNuQjtJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2YsQ0FBQyxDQUFDO0FBRUY7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFDLGVBQXVCO0lBQ25ELE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQywwQkFBMEIsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMvRCxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsMkJBQTJCLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFFakUsSUFBSSxHQUFHLEdBQVEsSUFBSSxDQUFDO0lBRXBCLElBQUksZUFBZSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUNwQyxHQUFHLEdBQUcsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0tBQ2hDO1NBQU0sSUFBSSxlQUFlLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQzdDLEdBQUcsR0FBRyxjQUFjLENBQUMsZUFBZSxDQUFDLENBQUM7S0FDdEM7U0FBTTtRQUNOLE9BQU8sU0FBUyxDQUFDLENBQUMsbUJBQW1CO0tBQ3JDO0lBRUQ7Ozs7O09BS0c7SUFDSCxTQUFTLFFBQVEsQ0FBQyxDQUFTO1FBQzFCLENBQUMsSUFBSSxHQUFHLENBQUM7UUFDVCxPQUFPLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BDLE1BQU0sU0FBUyxHQUFHLE1BQU0sR0FBRyxDQUFDLEdBQUcsTUFBTSxHQUFHLENBQUMsR0FBRyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBRXZELE9BQU8sU0FBUyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7QUFDakQsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBUyxRQUFRLENBQUMsR0FBRztJQUNwQixHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDNUIsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUNyQixHQUFHLEdBQUcsR0FBRzthQUNQLEtBQUssQ0FBQyxFQUFFLENBQUM7YUFDVCxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7YUFDMUIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0tBQ1g7SUFDRCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2pDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQztBQUNsRSxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFTLGNBQWMsQ0FBQyxTQUFpQjtJQUN4QyxPQUFPLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzVDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogUmV0cmlldmVzIHRoZSB2YWx1ZSBvZiBhIENTUyB2YXJpYWJsZSBvciByZXR1cm5zIGEgZGVmYXVsdCB2YWx1ZSBpZiB0aGUgdmFyaWFibGUgaXMgbm90IGRlZmluZWQuXHJcbiAqXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUgbmFtZSBvZiB0aGUgQ1NTIHZhcmlhYmxlIHRvIHJldHJpZXZlIChlLmcuLCBgLS12YXJpYWJsZS1uYW1lYCkuXHJcbiAqIEBwYXJhbSB7c3RyaW5nIHwgbnVtYmVyfSBkZWZhdWx0VmFsdWUgLSBUaGUgZGVmYXVsdCB2YWx1ZSB0byByZXR1cm4gaWYgdGhlIENTUyB2YXJpYWJsZSBpcyBub3QgZGVmaW5lZC5cclxuICogQHJldHVybnMge3N0cmluZyB8IG51bWJlcn0gLSBUaGUgdmFsdWUgb2YgdGhlIENTUyB2YXJpYWJsZSBvciB0aGUgcHJvdmlkZWQgZGVmYXVsdCB2YWx1ZS5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRDc3NWYXJpYWJsZShrZXk6IHN0cmluZywgZGVmYXVsdFZhbHVlPzogc3RyaW5nIHwgbnVtYmVyKTogc3RyaW5nIHwgbnVtYmVyIHtcclxuXHRjb25zdCByb290ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xyXG5cdGNvbnN0IGNvbXB1dGVkU3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKHJvb3QpO1xyXG5cdHJldHVybiBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoa2V5KS50cmltKCkgfHwgZGVmYXVsdFZhbHVlO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0cmlldmVzIHRoZSB2YWx1ZSBvZiBhIENTUyB2YXJpYWJsZSBvciByZXR1cm5zIGEgZGVmYXVsdCBjb2xvciBpZiB0aGUgdmFyaWFibGUgaXMgbm90IGRlZmluZWQuXHJcbiAqXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUgbmFtZSBvZiB0aGUgQ1NTIHZhcmlhYmxlIHRvIHJldHJpZXZlIChlLmcuLCBgLS12YXJpYWJsZS1uYW1lYCkuXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBbZGVmYXVsdENvbG9yPScjNDQ0J10gLSBUaGUgZGVmYXVsdCBjb2xvciB0byByZXR1cm4gaWYgdGhlIENTUyB2YXJpYWJsZSBpcyBub3QgZGVmaW5lZC5cclxuICogQHJldHVybnMge3N0cmluZ30gLSBUaGUgdmFsdWUgb2YgdGhlIENTUyB2YXJpYWJsZSBvciB0aGUgcHJvdmlkZWQgZGVmYXVsdCBjb2xvci5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRDb2xvcihrZXk6IHN0cmluZywgZGVmYXVsdENvbG9yPzogc3RyaW5nKTogc3RyaW5nIHtcclxuXHRyZXR1cm4gZ2V0Q3NzVmFyaWFibGUoa2V5LCBkZWZhdWx0Q29sb3IgfHwgJyM0NDQnKSBhcyBzdHJpbmc7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXRyaWV2ZXMgdGhlIGdyaWQgY29sb3IgZm9yIHRoZSBzcGVjaWZpZWQgYXhpcy5cclxuICpcclxuICogQHBhcmFtIHsneCcgfCAneSd9IGF4aXMgLSBUaGUgYXhpcyBmb3Igd2hpY2ggdG8gcmV0cmlldmUgdGhlIGdyaWQgY29sb3IgKCd4JyBvciAneScpLlxyXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIFRoZSBncmlkIGNvbG9yIGFzIGEgQ1NTIHZhbHVlLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGdldEdyaWRDb2xvciA9IChheGlzOiAneCcgfCAneScpOiBzdHJpbmcgPT4ge1xyXG5cdHJldHVybiBnZXRDb2xvcihgLS1jaGFydC1ncmlkLSR7YXhpc30tY29sb3JgLCAnI2NlY2VjZScpO1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIFJldHJpZXZlcyB0aGUgdGlja3MgY29sb3IgZm9yIHRoZSBzcGVjaWZpZWQgYXhpcy5cclxuICpcclxuICogQHBhcmFtIHsneCcgfCAneSd9IGF4aXMgLSBUaGUgYXhpcyBmb3Igd2hpY2ggdG8gcmV0cmlldmUgdGhlIHRpY2tzIGNvbG9yICgneCcgb3IgJ3knKS5cclxuICogQHJldHVybnMge3N0cmluZ30gLSBUaGUgdGlja3MgY29sb3IgYXMgYSBDU1MgdmFsdWUuXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgZ2V0VGlja3NDb2xvciA9IChheGlzOiAneCcgfCAneScpOiBzdHJpbmcgPT4ge1xyXG5cdHJldHVybiBnZXRDb2xvcihgLS1jaGFydC10aWNrcy0ke2F4aXN9LWNvbG9yYCk7XHJcbn07XHJcblxyXG4vKipcclxuICogUmV0cmlldmVzIGFuIGFycmF5IG9mIGNvbG9ycyBiYXNlZCBvbiBDU1MgdmFyaWFibGVzIG9yIGZhbGxiYWNrIHRvIGRlZmF1bHQgY29sb3JzLlxyXG4gKlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW2xlbmd0aD0xNF0gLSBUaGUgbnVtYmVyIG9mIGNvbG9ycyB0byByZXRyaWV2ZS5cclxuICogQHBhcmFtIHN0YXRpY0NvbG9yc1xyXG4gKiBAcmV0dXJucyB7c3RyaW5nW119IC0gQW4gYXJyYXkgb2YgY29sb3IgY29kZXMuXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgZ2V0Q29sb3JzID0gKFxyXG5cdGxlbmd0aDogbnVtYmVyID0gMTQsXHJcblx0c3RhdGljQ29sb3JzID0gW1xyXG5cdFx0JyM0Nzc2M2InLCAvLyBEYXJrIGdyZWVuXHJcblx0XHQnI2M4YTc5MScsIC8vIEJlaWdlXHJcblx0XHQnIzAwODM3YicsIC8vIFRlYWxcclxuXHRcdCcjYjc4YjFjJywgLy8gTXVzdGFyZFxyXG5cdFx0JyM2MzY1NjknLCAvLyBHcmF5XHJcblx0XHQnI2E4NDA0NycsIC8vIFJlZFxyXG5cdFx0JyNmN2Y4ZjknLCAvLyBMaWdodCBncmF5XHJcblx0XHQnI2ZkNjY3MCcsIC8vIFBpbmtcclxuXHRcdCcjMDBkY2E1JywgLy8gQXF1YVxyXG5cdFx0JyNmYmI2MmMnLCAvLyBPcmFuZ2VcclxuXHRcdCcjNTk2OTczJywgLy8gU3RlZWwgYmx1ZVxyXG5cdFx0JyM1YTE0OTYnLCAvLyBQdXJwbGVcclxuXHRcdCcjM2MzY2YwJywgLy8gQmx1ZVxyXG5cdFx0JyNmMTcyMDUnIC8vIEJyaWdodCBvcmFuZ2VcclxuXHRdXHJcbik6IHN0cmluZ1tdID0+IHtcclxuXHRjb25zdCByb290ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xyXG5cdGNvbnN0IGNvbXB1dGVkU3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKHJvb3QpO1xyXG5cdGNvbnN0IGNvbG9yczogc3RyaW5nW10gPSBbXTtcclxuXHRmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCsrKSB7XHJcblx0XHRjb25zdCBjb2xvciA9IGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShgLS1jaGFydC1jb2xvci0ke2luZGV4fWApLnRyaW0oKSB8fCBzdGF0aWNDb2xvcnNbaW5kZXhdO1xyXG5cdFx0Y29sb3JzLnB1c2goY29sb3IpO1xyXG5cdH1cclxuXHJcblx0cmV0dXJuIGNvbG9ycztcclxufTtcclxuXHJcbi8qKlxyXG4gKiBEZXRlcm1pbmVzIHRoZSBhcHByb3ByaWF0ZSB0ZXh0IGNvbG9yIChsaWdodCBvciBkYXJrKSBiYXNlZCBvbiB0aGUgbHVtaW5hbmNlIG9mIHRoZSBnaXZlbiBiYWNrZ3JvdW5kIGNvbG9yLlxyXG4gKlxyXG4gKiBAcGFyYW0ge3N0cmluZ30gYmFja2dyb3VuZENvbG9yIC0gVGhlIGJhY2tncm91bmQgY29sb3IgaW4gaGV4YWRlY2ltYWwgKGUuZy4sIGAjZmZmZmZmYCkgb3IgUkdCIGZvcm1hdCAoZS5nLiwgYHJnYigyNTUsIDI1NSwgMjU1KWApLlxyXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIFRoZSB0ZXh0IGNvbG9yLCBlaXRoZXIgdGhlIGRhcmsgY29sb3IgKGAtLWNoYXJ0LXZhbHVlLWRhcmstY29sb3JgKSBvciB0aGUgbGlnaHQgY29sb3IgKGAtLWNoYXJ0LXZhbHVlLWxpZ2h0LWNvbG9yYCkuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGV4dENvbG9yKGJhY2tncm91bmRDb2xvcjogc3RyaW5nKTogc3RyaW5nIHtcclxuXHRjb25zdCBkYXJrQ29sb3IgPSBnZXRDb2xvcignLS1jaGFydC12YWx1ZS1kYXJrLWNvbG9yJywgJyMwMDAnKTtcclxuXHRjb25zdCBsaWdodENvbG9yID0gZ2V0Q29sb3IoJy0tY2hhcnQtdmFsdWUtbGlnaHQtY29sb3InLCAnI2ZmZicpO1xyXG5cclxuXHRsZXQgcmdiOiBhbnkgPSBudWxsO1xyXG5cclxuXHRpZiAoYmFja2dyb3VuZENvbG9yLnN0YXJ0c1dpdGgoJyMnKSkge1xyXG5cdFx0cmdiID0gaGV4VG9SZ2IoYmFja2dyb3VuZENvbG9yKTtcclxuXHR9IGVsc2UgaWYgKGJhY2tncm91bmRDb2xvci5zdGFydHNXaXRoKCdyZ2InKSkge1xyXG5cdFx0cmdiID0gcGFyc2VSZ2JTdHJpbmcoYmFja2dyb3VuZENvbG9yKTtcclxuXHR9IGVsc2Uge1xyXG5cdFx0cmV0dXJuIGRhcmtDb2xvcjsgLy8gRGVmYXVsdCBmYWxsYmFja1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQ29udmVydHMgYW4gUkdCIGNvbXBvbmVudCB0byBpdHMgbGluZWFyaXplZCB2YWx1ZSBmb3IgbHVtaW5hbmNlIGNhbGN1bGF0aW9uLlxyXG5cdCAqXHJcblx0ICogQHBhcmFtIHtudW1iZXJ9IGMgLSBUaGUgUkdCIGNvbXBvbmVudCB2YWx1ZSAoMC0yNTUpLlxyXG5cdCAqIEByZXR1cm5zIHtudW1iZXJ9IC0gVGhlIGxpbmVhcml6ZWQgdmFsdWUuXHJcblx0ICovXHJcblx0ZnVuY3Rpb24gdG9MaW5lYXIoYzogbnVtYmVyKTogbnVtYmVyIHtcclxuXHRcdGMgLz0gMjU1O1xyXG5cdFx0cmV0dXJuIGMgPD0gMC4wMzkyOCA/IGMgLyAxMi45MiA6IE1hdGgucG93KChjICsgMC4wNTUpIC8gMS4wNTUsIDIuNCk7XHJcblx0fVxyXG5cclxuXHRjb25zdCBbciwgZywgYl0gPSByZ2IubWFwKHRvTGluZWFyKTtcclxuXHRjb25zdCBsdW1pbmFuY2UgPSAwLjIxMjYgKiByICsgMC43MTUyICogZyArIDAuMDcyMiAqIGI7XHJcblxyXG5cdHJldHVybiBsdW1pbmFuY2UgPiAwLjYgPyBkYXJrQ29sb3IgOiBsaWdodENvbG9yO1xyXG59XHJcblxyXG4vKlxyXG4gKiBDb252ZXJ0cyBhIGhleGFkZWNpbWFsIGNvbG9yIGNvZGUgdG8gYW4gUkdCIGFycmF5LlxyXG4gKlxyXG4gKiBAcGFyYW0ge3N0cmluZ30gaGV4IC0gVGhlIGhleGFkZWNpbWFsIGNvbG9yIGNvZGUgKGUuZy4sIGAjZmZmYCBvciBgI2ZmZmZmZmApLlxyXG4gKiBAcmV0dXJucyB7bnVtYmVyW119IC0gQW4gYXJyYXkgY29udGFpbmluZyB0aGUgUkdCIHZhbHVlcyBbcmVkLCBncmVlbiwgYmx1ZV0uXHJcbiAqL1xyXG5mdW5jdGlvbiBoZXhUb1JnYihoZXgpIHtcclxuXHRoZXggPSBoZXgucmVwbGFjZSgvXiMvLCAnJyk7XHJcblx0aWYgKGhleC5sZW5ndGggPT09IDMpIHtcclxuXHRcdGhleCA9IGhleFxyXG5cdFx0XHQuc3BsaXQoJycpXHJcblx0XHRcdC5tYXAoKGNoYXIpID0+IGNoYXIgKyBjaGFyKVxyXG5cdFx0XHQuam9pbignJyk7XHJcblx0fVxyXG5cdGNvbnN0IGJpZ2ludCA9IHBhcnNlSW50KGhleCwgMTYpO1xyXG5cdHJldHVybiBbKGJpZ2ludCA+PiAxNikgJiAyNTUsIChiaWdpbnQgPj4gOCkgJiAyNTUsIGJpZ2ludCAmIDI1NV07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBQYXJzZXMgYW4gUkdCIHN0cmluZyBhbmQgZXh0cmFjdHMgdGhlIG51bWVyaWMgUkdCIHZhbHVlcy5cclxuICpcclxuICogQHBhcmFtIHtzdHJpbmd9IHJnYlN0cmluZyAtIFRoZSBSR0Igc3RyaW5nIChlLmcuLCBgcmdiKDI1NSwgMjU1LCAyNTUpYCkuXHJcbiAqIEByZXR1cm5zIHtudW1iZXJbXX0gLSBBbiBhcnJheSBjb250YWluaW5nIHRoZSBSR0IgdmFsdWVzIFtyZWQsIGdyZWVuLCBibHVlXS5cclxuICovXHJcbmZ1bmN0aW9uIHBhcnNlUmdiU3RyaW5nKHJnYlN0cmluZzogc3RyaW5nKTogbnVtYmVyW10ge1xyXG5cdHJldHVybiByZ2JTdHJpbmcubWF0Y2goL1xcZCsvZykubWFwKE51bWJlcik7XHJcbn1cclxuIl19
@@ -0,0 +1,4 @@
1
+ export * from './colors';
2
+ export * from './common';
3
+ export * from './css';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3JlcG9ydHMvY2hhcnRzL3V0aWxpdHkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxPQUFPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbG9ycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29tbW9uJztcclxuZXhwb3J0ICogZnJvbSAnLi9jc3MnO1xyXG4iXX0=
@@ -0,0 +1,53 @@
1
+ import { Directive, EventEmitter, Input, Output } from '@angular/core';
2
+ import { DestroySubject } from '../../../../shared/components';
3
+ import { BehaviorSubject, ReplaySubject } from 'rxjs';
4
+ import { TranslateService } from '@ngx-translate/core';
5
+ import { distinctUntilChanged, filter, takeUntil } from 'rxjs/operators';
6
+ import _ from 'lodash';
7
+ import * as i0 from "@angular/core";
8
+ export class BaseChart extends DestroySubject {
9
+ constructor(injector) {
10
+ super();
11
+ this.injector = injector;
12
+ this._translateService = this.injector.get(TranslateService);
13
+ this._rebuildTriggerSub = new BehaviorSubject(false);
14
+ this._dataSub = new ReplaySubject(null);
15
+ this._configSub = new ReplaySubject(null);
16
+ this._isInitialized = false;
17
+ this.onReady = new EventEmitter();
18
+ this._subscribeToLanguage();
19
+ }
20
+ set data(data) {
21
+ this._data = data;
22
+ this._dataSub.next(data);
23
+ }
24
+ get data() {
25
+ return this._data;
26
+ }
27
+ set config(config) {
28
+ this._config = _.cloneDeep(config);
29
+ this._configSub.next(this._config);
30
+ }
31
+ get config() {
32
+ return this._config;
33
+ }
34
+ _subscribeToLanguage() {
35
+ this._translateService.onLangChange
36
+ .pipe(distinctUntilChanged((pre, next) => pre.lang == next.lang), filter(() => this._isInitialized), takeUntil(this.destroy$))
37
+ .subscribe((_) => {
38
+ this._rebuildTriggerSub.next(true);
39
+ });
40
+ }
41
+ }
42
+ BaseChart.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BaseChart, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive });
43
+ BaseChart.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: BaseChart, inputs: { data: "data", config: "config" }, outputs: { onReady: "onReady" }, usesInheritance: true, ngImport: i0 });
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BaseChart, decorators: [{
45
+ type: Directive
46
+ }], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { data: [{
47
+ type: Input
48
+ }], config: [{
49
+ type: Input
50
+ }], onReady: [{
51
+ type: Output
52
+ }] } });
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jaGFydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvcmVwb3J0cy9uZGYtcmVwb3J0cy9iYXNlL2Jhc2UtY2hhcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVksS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFL0QsT0FBTyxFQUFFLGVBQWUsRUFBYyxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RSxPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7O0FBR3ZCLE1BQU0sT0FBZ0IsU0FBYSxTQUFRLGNBQWM7SUFnQ3hELFlBQW1CLFFBQWtCO1FBQ3BDLEtBQUssRUFBRSxDQUFDO1FBRFUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQTdCM0Isc0JBQWlCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUMvQyx1QkFBa0IsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNsRSxhQUFRLEdBQUcsSUFBSSxhQUFhLENBQXNCLElBQUksQ0FBQyxDQUFDO1FBQ3hELGVBQVUsR0FBRyxJQUFJLGFBQWEsQ0FBSSxJQUFJLENBQUMsQ0FBQztRQUV4QyxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQXNCdkIsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7UUFJN0MsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQXhCRCxJQUFhLElBQUksQ0FBQyxJQUF5QjtRQUMxQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ1AsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ25CLENBQUM7SUFHRCxJQUFhLE1BQU0sQ0FBQyxNQUFTO1FBQzVCLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUksTUFBTTtRQUNULE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUNyQixDQUFDO0lBU1Msb0JBQW9CO1FBQzdCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZO2FBQ2pDLElBQUksQ0FDSixvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxFQUMxRCxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUNqQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUN4QjthQUNBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2hCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzt1R0EvQ29CLFNBQVM7MkZBQVQsU0FBUzs0RkFBVCxTQUFTO2tCQUQ5QixTQUFTOytGQVlJLElBQUk7c0JBQWhCLEtBQUs7Z0JBVU8sTUFBTTtzQkFBbEIsS0FBSztnQkFTSSxPQUFPO3NCQUFoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIEluamVjdG9yLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBEZXN0cm95U3ViamVjdCB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzJztcclxuXHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgQ2hhcnQgZnJvbSAnY2hhcnQuanMvYXV0byc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBSZXBvcnRSZXNwb25zZU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzJztcclxuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcclxuXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUNoYXJ0PFQ+IGV4dGVuZHMgRGVzdHJveVN1YmplY3Qge1xyXG5cdHB1YmxpYyBhYnN0cmFjdCByZXBvcnQkOiBPYnNlcnZhYmxlPGFueT47XHJcblxyXG5cdHByb3RlY3RlZCBfdHJhbnNsYXRlU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KFRyYW5zbGF0ZVNlcnZpY2UpO1xyXG5cdHByb3RlY3RlZCByZWFkb25seSBfcmVidWlsZFRyaWdnZXJTdWIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRwcm90ZWN0ZWQgX2RhdGFTdWIgPSBuZXcgUmVwbGF5U3ViamVjdDxSZXBvcnRSZXNwb25zZU1vZGVsPihudWxsKTtcclxuXHRwcm90ZWN0ZWQgX2NvbmZpZ1N1YiA9IG5ldyBSZXBsYXlTdWJqZWN0PFQ+KG51bGwpO1xyXG5cclxuXHRwcm90ZWN0ZWQgX2lzSW5pdGlhbGl6ZWQgPSBmYWxzZTtcclxuXHRwcml2YXRlIF9kYXRhOiBSZXBvcnRSZXNwb25zZU1vZGVsO1xyXG5cclxuXHRASW5wdXQoKSBzZXQgZGF0YShkYXRhOiBSZXBvcnRSZXNwb25zZU1vZGVsKSB7XHJcblx0XHR0aGlzLl9kYXRhID0gZGF0YTtcclxuXHRcdHRoaXMuX2RhdGFTdWIubmV4dChkYXRhKTtcclxuXHR9XHJcblxyXG5cdGdldCBkYXRhKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuX2RhdGE7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIF9jb25maWc6IFQ7XHJcblx0QElucHV0KCkgc2V0IGNvbmZpZyhjb25maWc6IFQpIHtcclxuXHRcdHRoaXMuX2NvbmZpZyA9IF8uY2xvbmVEZWVwKGNvbmZpZyk7XHJcblx0XHR0aGlzLl9jb25maWdTdWIubmV4dCh0aGlzLl9jb25maWcpO1xyXG5cdH1cclxuXHJcblx0Z2V0IGNvbmZpZygpIHtcclxuXHRcdHJldHVybiB0aGlzLl9jb25maWc7XHJcblx0fVxyXG5cclxuXHRAT3V0cHV0KCkgb25SZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXI8Q2hhcnQ+KCk7XHJcblxyXG5cdGNvbnN0cnVjdG9yKHB1YmxpYyBpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuXHRcdHN1cGVyKCk7XHJcblx0XHR0aGlzLl9zdWJzY3JpYmVUb0xhbmd1YWdlKCk7XHJcblx0fVxyXG5cclxuXHRwcm90ZWN0ZWQgX3N1YnNjcmliZVRvTGFuZ3VhZ2UoKSB7XHJcblx0XHR0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLm9uTGFuZ0NoYW5nZVxyXG5cdFx0XHQucGlwZShcclxuXHRcdFx0XHRkaXN0aW5jdFVudGlsQ2hhbmdlZCgocHJlLCBuZXh0KSA9PiBwcmUubGFuZyA9PSBuZXh0LmxhbmcpLFxyXG5cdFx0XHRcdGZpbHRlcigoKSA9PiB0aGlzLl9pc0luaXRpYWxpemVkKSxcclxuXHRcdFx0XHR0YWtlVW50aWwodGhpcy5kZXN0cm95JClcclxuXHRcdFx0KVxyXG5cdFx0XHQuc3Vic2NyaWJlKChfKSA9PiB7XHJcblx0XHRcdFx0dGhpcy5fcmVidWlsZFRyaWdnZXJTdWIubmV4dCh0cnVlKTtcclxuXHRcdFx0fSk7XHJcblx0fVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,37 @@
1
+ import { __rest } from "tslib";
2
+ import { ChangeDetectorRef, Directive } from '@angular/core';
3
+ import { BaseReport } from './base-report';
4
+ import { TranslateService } from '@ngx-translate/core';
5
+ import { MatDialog } from '@angular/material/dialog';
6
+ import { GraphDialogComponent } from '../components/_parts';
7
+ import * as i0 from "@angular/core";
8
+ export class BaseGraphReport extends BaseReport {
9
+ constructor() {
10
+ super(...arguments);
11
+ this._translateService = this.injector.get(TranslateService);
12
+ this._cdr = this.injector.get(ChangeDetectorRef);
13
+ this._dialog = this.injector.get(MatDialog);
14
+ }
15
+ openGraphDialog(_options) {
16
+ var _a;
17
+ const { config, data, component, criteria } = _options || {
18
+ config: this.config,
19
+ data: this.data,
20
+ component: GraphDialogComponent
21
+ };
22
+ const _b = ((_a = this.config) === null || _a === void 0 ? void 0 : _a.dialog) || {}, { active, width, height, maxWidth } = _b, options = __rest(_b, ["active", "width", "height", "maxWidth"]);
23
+ this._dialog.open(component, Object.assign(Object.assign({}, options), { width: width || '100%', height: height || '100%', maxWidth: maxWidth || '100%', direction: this.direction, data: {
24
+ config: config,
25
+ data: data,
26
+ title: config.label,
27
+ direction: this.direction,
28
+ criteria: criteria
29
+ } }));
30
+ }
31
+ }
32
+ BaseGraphReport.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BaseGraphReport, deps: null, target: i0.ɵɵFactoryTarget.Directive });
33
+ BaseGraphReport.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: BaseGraphReport, usesInheritance: true, ngImport: i0 });
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BaseGraphReport, decorators: [{
35
+ type: Directive
36
+ }] });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1ncmFwaC5yZXBvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3JlcG9ydHMvbmRmLXJlcG9ydHMvYmFzZS9iYXNlLWdyYXBoLnJlcG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVM3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFHNUQsTUFBTSxPQUFnQixlQUdwQixTQUFRLFVBQWdDO0lBSjFDOztRQUtXLHNCQUFpQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDeEQsU0FBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDNUMsWUFBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0tBOEJqRDtJQTVCQSxlQUFlLENBQUMsUUFLZjs7UUFDQSxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEdBQUcsUUFBUSxJQUFJO1lBQ3pELE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixTQUFTLEVBQUUsb0JBQW9CO1NBQy9CLENBQUM7UUFFRixNQUFNLEtBQWtELENBQUEsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxNQUFNLEtBQUksRUFBRSxFQUEzRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsT0FBMEMsRUFBckMsT0FBTyxjQUE3Qyx5Q0FBK0MsQ0FBNEIsQ0FBQztRQUNsRixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLGtDQUN2QixPQUFPLEtBQ1YsS0FBSyxFQUFFLEtBQUssSUFBSSxNQUFNLEVBQ3RCLE1BQU0sRUFBRSxNQUFNLElBQUksTUFBTSxFQUN4QixRQUFRLEVBQUUsUUFBUSxJQUFJLE1BQU0sRUFDNUIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQ3pCLElBQUksRUFBRTtnQkFDTCxNQUFNLEVBQUUsTUFBTTtnQkFDZCxJQUFJLEVBQUUsSUFBSTtnQkFDVixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7Z0JBQ25CLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztnQkFDekIsUUFBUSxFQUFFLFFBQVE7YUFDbEIsSUFDQSxDQUFDO0lBQ0osQ0FBQzs7NkdBbkNvQixlQUFlO2lHQUFmLGVBQWU7NEZBQWYsZUFBZTtrQkFEcEMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuXHRDcml0ZXJpYU1vZGVsLFxyXG5cdER5bmFtaWNMaW5lQ2hhcnQsXHJcblx0RHluYW1pY0xpbmVDaGFydERlZmluaXRpb24sXHJcblx0R3JhcGhDaGFydCxcclxuXHRHcmFwaENoYXJ0RGVmaW5pdGlvbixcclxuXHRSZXBvcnRSZXNwb25zZU1vZGVsXHJcbn0gZnJvbSAnLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgQmFzZVJlcG9ydCB9IGZyb20gJy4vYmFzZS1yZXBvcnQnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IEdyYXBoRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9fcGFydHMnO1xyXG5cclxuQERpcmVjdGl2ZSgpIC8vR3JhcGhDaGFydCB8IER5bmFtaWNMaW5lQ2hhcnRcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VHcmFwaFJlcG9ydDxcclxuXHRURGVmaW5pdGlvbiBleHRlbmRzIEdyYXBoQ2hhcnREZWZpbml0aW9uIHwgRHluYW1pY0xpbmVDaGFydERlZmluaXRpb24sXHJcblx0VENvbmZpZyBleHRlbmRzIEdyYXBoQ2hhcnQgfCBEeW5hbWljTGluZUNoYXJ0XHJcbj4gZXh0ZW5kcyBCYXNlUmVwb3J0PFREZWZpbml0aW9uLCBUQ29uZmlnPiB7XHJcblx0cHJvdGVjdGVkIF90cmFuc2xhdGVTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoVHJhbnNsYXRlU2VydmljZSk7XHJcblx0cHJvdGVjdGVkIF9jZHIgPSB0aGlzLmluamVjdG9yLmdldChDaGFuZ2VEZXRlY3RvclJlZik7XHJcblx0cHJvdGVjdGVkIF9kaWFsb2cgPSB0aGlzLmluamVjdG9yLmdldChNYXREaWFsb2cpO1xyXG5cclxuXHRvcGVuR3JhcGhEaWFsb2coX29wdGlvbnM/OiB7XHJcblx0XHRjb25maWc/OiBHcmFwaENoYXJ0IHwgRHluYW1pY0xpbmVDaGFydDtcclxuXHRcdGRhdGE/OiBSZXBvcnRSZXNwb25zZU1vZGVsO1xyXG5cdFx0Y29tcG9uZW50PzogYW55O1xyXG5cdFx0Y3JpdGVyaWE/OiBDcml0ZXJpYU1vZGVsO1xyXG5cdH0pIHtcclxuXHRcdGNvbnN0IHsgY29uZmlnLCBkYXRhLCBjb21wb25lbnQsIGNyaXRlcmlhIH0gPSBfb3B0aW9ucyB8fCB7XHJcblx0XHRcdGNvbmZpZzogdGhpcy5jb25maWcsXHJcblx0XHRcdGRhdGE6IHRoaXMuZGF0YSxcclxuXHRcdFx0Y29tcG9uZW50OiBHcmFwaERpYWxvZ0NvbXBvbmVudFxyXG5cdFx0fTtcclxuXHJcblx0XHRjb25zdCB7IGFjdGl2ZSwgd2lkdGgsIGhlaWdodCwgbWF4V2lkdGgsIC4uLm9wdGlvbnMgfSA9IHRoaXMuY29uZmlnPy5kaWFsb2cgfHwge307XHJcblx0XHR0aGlzLl9kaWFsb2cub3Blbihjb21wb25lbnQsIHtcclxuXHRcdFx0Li4ub3B0aW9ucyxcclxuXHRcdFx0d2lkdGg6IHdpZHRoIHx8ICcxMDAlJyxcclxuXHRcdFx0aGVpZ2h0OiBoZWlnaHQgfHwgJzEwMCUnLFxyXG5cdFx0XHRtYXhXaWR0aDogbWF4V2lkdGggfHwgJzEwMCUnLFxyXG5cdFx0XHRkaXJlY3Rpb246IHRoaXMuZGlyZWN0aW9uLFxyXG5cdFx0XHRkYXRhOiB7XHJcblx0XHRcdFx0Y29uZmlnOiBjb25maWcsXHJcblx0XHRcdFx0ZGF0YTogZGF0YSxcclxuXHRcdFx0XHR0aXRsZTogY29uZmlnLmxhYmVsLFxyXG5cdFx0XHRcdGRpcmVjdGlvbjogdGhpcy5kaXJlY3Rpb24sXHJcblx0XHRcdFx0Y3JpdGVyaWE6IGNyaXRlcmlhXHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxufVxyXG4iXX0=
@@ -0,0 +1,68 @@
1
+ import { Directive, EventEmitter, Input, Output } from '@angular/core';
2
+ import { DestroySubject } from '../../../../shared/components';
3
+ import { BehaviorSubject, ReplaySubject } from 'rxjs';
4
+ import _ from 'lodash';
5
+ import { REPORT_MODE } from '../constants';
6
+ import { ReportConfigMapperService } from '../services';
7
+ import * as i0 from "@angular/core";
8
+ export class BaseReport extends DestroySubject {
9
+ constructor(injector) {
10
+ super();
11
+ this.injector = injector;
12
+ this._configMapperService = this.injector.get(ReportConfigMapperService);
13
+ this._configSub = new BehaviorSubject(null);
14
+ this.config$ = this._configSub.asObservable();
15
+ this.direction = 'rtl';
16
+ this._criteriaSub = new ReplaySubject(null);
17
+ this.criteria$ = this._criteriaSub.asObservable();
18
+ this.onNavigate = new EventEmitter();
19
+ this.onOpen = new EventEmitter();
20
+ }
21
+ set definition(obj) {
22
+ if (obj) {
23
+ this._configSub.next(this._prepareConfig(obj));
24
+ }
25
+ }
26
+ get config() {
27
+ return this._configSub.getValue();
28
+ }
29
+ set criteria(value) {
30
+ this._criteria = _.cloneDeep(value);
31
+ this._criteriaSub.next(this._criteria);
32
+ }
33
+ get criteria() {
34
+ return this._criteria;
35
+ }
36
+ navigate() {
37
+ this.onNavigate.emit({
38
+ report: this.config,
39
+ data: this.data
40
+ });
41
+ }
42
+ _prepareConfig(obj) {
43
+ const mappers = {
44
+ [REPORT_MODE.graph]: this._configMapperService.prepareGraphConfig,
45
+ [REPORT_MODE.digit]: this._configMapperService.prepareDigitConfig,
46
+ [REPORT_MODE.dynamicLine]: this._configMapperService.prepareGraphLineConfig
47
+ };
48
+ return mappers[obj.mode].call(this._configMapperService, obj);
49
+ }
50
+ }
51
+ BaseReport.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BaseReport, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive });
52
+ BaseReport.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: BaseReport, inputs: { definition: "definition", direction: "direction", data: "data", criteria: "criteria" }, outputs: { onNavigate: "onNavigate", onOpen: "onOpen" }, usesInheritance: true, ngImport: i0 });
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BaseReport, decorators: [{
54
+ type: Directive
55
+ }], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { definition: [{
56
+ type: Input
57
+ }], direction: [{
58
+ type: Input
59
+ }], data: [{
60
+ type: Input
61
+ }], criteria: [{
62
+ type: Input
63
+ }], onNavigate: [{
64
+ type: Output
65
+ }], onOpen: [{
66
+ type: Output
67
+ }] } });
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1yZXBvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3JlcG9ydHMvbmRmLXJlcG9ydHMvYmFzZS9iYXNlLXJlcG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBWSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2pGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RCxPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMzQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBR3hELE1BQU0sT0FBZ0IsVUFHcEIsU0FBUSxjQUFjO0lBc0N2QixZQUFtQixRQUFrQjtRQUNwQyxLQUFLLEVBQUUsQ0FBQztRQURVLGFBQVEsR0FBUixRQUFRLENBQVU7UUFyQ3BCLHlCQUFvQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFFM0UsZUFBVSxHQUFHLElBQUksZUFBZSxDQUFVLElBQUksQ0FBQyxDQUFDO1FBQzFELFlBQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBWWhDLGNBQVMsR0FBYyxLQUFLLENBQUM7UUFHNUIsaUJBQVksR0FBRyxJQUFJLGFBQWEsQ0FBZ0IsSUFBSSxDQUFDLENBQUM7UUFDaEUsY0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7UUFXbkMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUduQyxDQUFDO1FBRUssV0FBTSxHQUFHLElBQUksWUFBWSxFQUFpQixDQUFDO0lBSXJELENBQUM7SUFsQ0QsSUFBYSxVQUFVLENBQUMsR0FBZ0I7UUFDdkMsSUFBSSxHQUFHLEVBQUU7WUFDUixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDL0M7SUFDRixDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFRRCxJQUFhLFFBQVEsQ0FBQyxLQUFvQjtRQUN6QyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDWCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDdkIsQ0FBQztJQWFELFFBQVE7UUFDUCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztZQUNwQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1NBQ2YsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVPLGNBQWMsQ0FBQyxHQUFnQjtRQUN0QyxNQUFNLE9BQU8sR0FBRztZQUNmLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxrQkFBa0I7WUFDakUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGtCQUFrQjtZQUNqRSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsc0JBQXNCO1NBQzNFLENBQUM7UUFFRixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLENBQVksQ0FBQztJQUMxRSxDQUFDOzt3R0E1RG9CLFVBQVU7NEZBQVYsVUFBVTs0RkFBVixVQUFVO2tCQUQvQixTQUFTOytGQVVJLFVBQVU7c0JBQXRCLEtBQUs7Z0JBVUcsU0FBUztzQkFBakIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBS08sUUFBUTtzQkFBcEIsS0FBSztnQkFTSSxVQUFVO3NCQUFuQixNQUFNO2dCQUtHLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBJbmplY3RvciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDcml0ZXJpYU1vZGVsLCBSZXBvcnRDb25maWdNb2RlbCwgUmVwb3J0RGVmaW5pdGlvbk1vZGVsLCBSZXBvcnRSZXNwb25zZU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgRGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xyXG5pbXBvcnQgeyBEZXN0cm95U3ViamVjdCB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7IFJFUE9SVF9NT0RFIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcclxuaW1wb3J0IHsgUmVwb3J0Q29uZmlnTWFwcGVyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzJztcclxuXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZVJlcG9ydDxcclxuXHRURGVmaW5pdGlvbiBleHRlbmRzIFJlcG9ydERlZmluaXRpb25Nb2RlbCxcclxuXHRUQ29uZmlnIGV4dGVuZHMgUmVwb3J0Q29uZmlnTW9kZWxcclxuPiBleHRlbmRzIERlc3Ryb3lTdWJqZWN0IHtcclxuXHRwcml2YXRlIHJlYWRvbmx5IF9jb25maWdNYXBwZXJTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoUmVwb3J0Q29uZmlnTWFwcGVyU2VydmljZSk7XHJcblxyXG5cdHByb3RlY3RlZCBfY29uZmlnU3ViID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUQ29uZmlnPihudWxsKTtcclxuXHRjb25maWckID0gdGhpcy5fY29uZmlnU3ViLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuXHRASW5wdXQoKSBzZXQgZGVmaW5pdGlvbihvYmo6IFREZWZpbml0aW9uKSB7XHJcblx0XHRpZiAob2JqKSB7XHJcblx0XHRcdHRoaXMuX2NvbmZpZ1N1Yi5uZXh0KHRoaXMuX3ByZXBhcmVDb25maWcob2JqKSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRnZXQgY29uZmlnKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuX2NvbmZpZ1N1Yi5nZXRWYWx1ZSgpO1xyXG5cdH1cclxuXHJcblx0QElucHV0KCkgZGlyZWN0aW9uOiBEaXJlY3Rpb24gPSAncnRsJztcclxuXHRASW5wdXQoKSBkYXRhOiBSZXBvcnRSZXNwb25zZU1vZGVsO1xyXG5cclxuXHRwcm90ZWN0ZWQgX2NyaXRlcmlhU3ViID0gbmV3IFJlcGxheVN1YmplY3Q8Q3JpdGVyaWFNb2RlbD4obnVsbCk7XHJcblx0Y3JpdGVyaWEkID0gdGhpcy5fY3JpdGVyaWFTdWIuYXNPYnNlcnZhYmxlKCk7XHJcblx0cHJpdmF0ZSBfY3JpdGVyaWE6IENyaXRlcmlhTW9kZWw7XHJcblx0QElucHV0KCkgc2V0IGNyaXRlcmlhKHZhbHVlOiBDcml0ZXJpYU1vZGVsKSB7XHJcblx0XHR0aGlzLl9jcml0ZXJpYSA9IF8uY2xvbmVEZWVwKHZhbHVlKTtcclxuXHRcdHRoaXMuX2NyaXRlcmlhU3ViLm5leHQodGhpcy5fY3JpdGVyaWEpO1xyXG5cdH1cclxuXHJcblx0Z2V0IGNyaXRlcmlhKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuX2NyaXRlcmlhO1xyXG5cdH1cclxuXHJcblx0QE91dHB1dCgpIG9uTmF2aWdhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPHtcclxuXHRcdHJlcG9ydDogVENvbmZpZztcclxuXHRcdGRhdGE6IFJlcG9ydFJlc3BvbnNlTW9kZWw7XHJcblx0fT4oKTtcclxuXHJcblx0QE91dHB1dCgpIG9uT3BlbiA9IG5ldyBFdmVudEVtaXR0ZXI8Q3JpdGVyaWFNb2RlbD4oKTtcclxuXHJcblx0Y29uc3RydWN0b3IocHVibGljIGluamVjdG9yOiBJbmplY3Rvcikge1xyXG5cdFx0c3VwZXIoKTtcclxuXHR9XHJcblxyXG5cdG5hdmlnYXRlKCkge1xyXG5cdFx0dGhpcy5vbk5hdmlnYXRlLmVtaXQoe1xyXG5cdFx0XHRyZXBvcnQ6IHRoaXMuY29uZmlnLFxyXG5cdFx0XHRkYXRhOiB0aGlzLmRhdGFcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfcHJlcGFyZUNvbmZpZyhvYmo6IFREZWZpbml0aW9uKTogVENvbmZpZyB7XHJcblx0XHRjb25zdCBtYXBwZXJzID0ge1xyXG5cdFx0XHRbUkVQT1JUX01PREUuZ3JhcGhdOiB0aGlzLl9jb25maWdNYXBwZXJTZXJ2aWNlLnByZXBhcmVHcmFwaENvbmZpZyxcclxuXHRcdFx0W1JFUE9SVF9NT0RFLmRpZ2l0XTogdGhpcy5fY29uZmlnTWFwcGVyU2VydmljZS5wcmVwYXJlRGlnaXRDb25maWcsXHJcblx0XHRcdFtSRVBPUlRfTU9ERS5keW5hbWljTGluZV06IHRoaXMuX2NvbmZpZ01hcHBlclNlcnZpY2UucHJlcGFyZUdyYXBoTGluZUNvbmZpZ1xyXG5cdFx0fTtcclxuXHJcblx0XHRyZXR1cm4gbWFwcGVyc1tvYmoubW9kZV0uY2FsbCh0aGlzLl9jb25maWdNYXBwZXJTZXJ2aWNlLCBvYmopIGFzIFRDb25maWc7XHJcblx0fVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,36 @@
1
+ import { Component } from '@angular/core';
2
+ import { BaseChart } from '../../base/base-chart';
3
+ import { combineLatest } from 'rxjs';
4
+ import { DigitChartService } from '../../services';
5
+ import { finalize, switchMap } from 'rxjs/operators';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common";
8
+ export class DigitChartComponent extends BaseChart {
9
+ constructor() {
10
+ super(...arguments);
11
+ this._digitService = this.injector.get(DigitChartService);
12
+ }
13
+ ngOnInit() {
14
+ this.report$ = this._prepareChart();
15
+ }
16
+ _prepareChart() {
17
+ return combineLatest([
18
+ this._dataSub.asObservable(),
19
+ this._configSub.asObservable(),
20
+ this._rebuildTriggerSub.asObservable()
21
+ ]).pipe(switchMap(([response, config]) => this._digitService.prepareChart(response, config)), finalize(() => {
22
+ this._isInitialized = true;
23
+ }));
24
+ }
25
+ }
26
+ DigitChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DigitChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
27
+ DigitChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DigitChartComponent, selector: "app-digit-chart", usesInheritance: true, ngImport: i0, template: "<div class=\"digit-chart__content\">{{ report$ | async }}\r\n</div>\r\n", styles: [".digit-chart__content{font-size:var(--dc-font-size, clamp(1.2rem, 10vw, 5rem));color:var(--digit-chart-color, currentColor)}\n"], pipes: { "async": i1.AsyncPipe } });
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DigitChartComponent, decorators: [{
29
+ type: Component,
30
+ args: [{
31
+ selector: 'app-digit-chart',
32
+ templateUrl: './digit-chart.component.html',
33
+ styleUrls: ['./digit-chart.component.scss']
34
+ }]
35
+ }] });
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXQtY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9yZXBvcnRzL25kZi1yZXBvcnRzL2NoYXJ0cy1jb21wb25lbnRzL2RpZ2l0LWNoYXJ0L2RpZ2l0LWNoYXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvcmVwb3J0cy9uZGYtcmVwb3J0cy9jaGFydHMtY29tcG9uZW50cy9kaWdpdC1jaGFydC9kaWdpdC1jaGFydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRCxPQUFPLEVBQUUsYUFBYSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQU9yRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsU0FBcUI7SUFMOUQ7O1FBTVcsa0JBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0tBb0IvRDtJQWhCQSxRQUFRO1FBQ1AsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVPLGFBQWE7UUFDcEIsT0FBTyxhQUFhLENBQUM7WUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUU7WUFDNUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUU7WUFDOUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRTtTQUN0QyxDQUFDLENBQUMsSUFBSSxDQUNOLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUMsRUFDcEYsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNiLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUNGLENBQUM7SUFDSCxDQUFDOztpSEFwQlcsbUJBQW1CO3FHQUFuQixtQkFBbUIsOEVDWmhDLHlFQUVBOzRGRFVhLG1CQUFtQjtrQkFML0IsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixXQUFXLEVBQUUsOEJBQThCO29CQUMzQyxTQUFTLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQztpQkFDM0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCYXNlQ2hhcnQgfSBmcm9tICcuLi8uLi9iYXNlL2Jhc2UtY2hhcnQnO1xyXG5pbXBvcnQgeyBEaWdpdENoYXJ0IH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBEaWdpdENoYXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgZmluYWxpemUsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnYXBwLWRpZ2l0LWNoYXJ0JyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vZGlnaXQtY2hhcnQuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL2RpZ2l0LWNoYXJ0LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIERpZ2l0Q2hhcnRDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ2hhcnQ8RGlnaXRDaGFydD4gaW1wbGVtZW50cyBPbkluaXQge1xyXG5cdHByb3RlY3RlZCBfZGlnaXRTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoRGlnaXRDaGFydFNlcnZpY2UpO1xyXG5cclxuXHRwdWJsaWMgcmVwb3J0JDogT2JzZXJ2YWJsZTxhbnk+O1xyXG5cclxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHRcdHRoaXMucmVwb3J0JCA9IHRoaXMuX3ByZXBhcmVDaGFydCgpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfcHJlcGFyZUNoYXJ0KCkge1xyXG5cdFx0cmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xyXG5cdFx0XHR0aGlzLl9kYXRhU3ViLmFzT2JzZXJ2YWJsZSgpLFxyXG5cdFx0XHR0aGlzLl9jb25maWdTdWIuYXNPYnNlcnZhYmxlKCksXHJcblx0XHRcdHRoaXMuX3JlYnVpbGRUcmlnZ2VyU3ViLmFzT2JzZXJ2YWJsZSgpXHJcblx0XHRdKS5waXBlKFxyXG5cdFx0XHRzd2l0Y2hNYXAoKFtyZXNwb25zZSwgY29uZmlnXSkgPT4gdGhpcy5fZGlnaXRTZXJ2aWNlLnByZXBhcmVDaGFydChyZXNwb25zZSwgY29uZmlnKSksXHJcblx0XHRcdGZpbmFsaXplKCgpID0+IHtcclxuXHRcdFx0XHR0aGlzLl9pc0luaXRpYWxpemVkID0gdHJ1ZTtcclxuXHRcdFx0fSlcclxuXHRcdCk7XHJcblx0fVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJkaWdpdC1jaGFydF9fY29udGVudFwiPnt7IHJlcG9ydCQgfCBhc3luYyB9fVxyXG48L2Rpdj5cclxuIl19
@@ -0,0 +1,65 @@
1
+ import { Component } from '@angular/core';
2
+ import { BaseChart } from '../../base/base-chart';
3
+ import { combineLatest } from 'rxjs';
4
+ import { switchMap, tap } from 'rxjs/operators';
5
+ import { GraphChartService } from './graph-chart.service';
6
+ import { ChartManagerService } from '../../services';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "../../../charts/components/chart.component";
9
+ import * as i2 from "@angular/common";
10
+ export class GraphChartComponent extends BaseChart {
11
+ constructor() {
12
+ super(...arguments);
13
+ this._chartHelperService = this.injector.get(ChartManagerService);
14
+ this._graphService = this.injector.get(GraphChartService);
15
+ }
16
+ ngOnInit() {
17
+ this.report$ = this._prepareChart();
18
+ }
19
+ chartReady(chart) {
20
+ this.onReady.emit(chart);
21
+ this.chart = chart;
22
+ this._chartHelperService.setChart(chart);
23
+ this._printListener = (event) => {
24
+ this.chart.resize();
25
+ };
26
+ window.addEventListener('beforeprint', this._printListener);
27
+ queueMicrotask(() => {
28
+ this.chart.resize();
29
+ });
30
+ }
31
+ _prepareChart() {
32
+ return combineLatest([
33
+ this._dataSub.asObservable(),
34
+ this._configSub.asObservable(),
35
+ this._rebuildTriggerSub.asObservable()
36
+ ]).pipe(switchMap(([response, config]) => {
37
+ return this._graphService.prepareChart(response, config);
38
+ }), tap((data) => {
39
+ this._isInitialized = true;
40
+ }));
41
+ }
42
+ printChart() {
43
+ this._chartHelperService.printChart(this.chart.id, this._translateService.instant(this.config.label));
44
+ }
45
+ resizeChart() {
46
+ this.chart.resize();
47
+ }
48
+ ngOnDestroy() {
49
+ super.ngOnDestroy();
50
+ if (this.chart) {
51
+ this._chartHelperService.destroy(this.chart.id);
52
+ }
53
+ }
54
+ }
55
+ GraphChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: GraphChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
56
+ GraphChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: GraphChartComponent, selector: "app-graph-chart", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"report$ | async as report\">\r\n\t<div class=\"chart-legends\"></div>\r\n\t<app-chart\r\n\t\t[type]=\"report.config.type\"\r\n\t\t[data]=\"report.data\"\r\n\t\t[options]=\"report.config?.options\"\r\n\t\t[plugins]=\"report.config?.plugins\"\r\n\t\t[responsive]=\"true\"\r\n\t\t(onReady)=\"chartReady($event)\"\r\n\t\tclass=\"app-chart\"\r\n\t></app-chart>\r\n</ng-container>\r\n", styles: [":host{--chart-height: var(--graph-chart-height, 300px);display:var(--graph-chart-display, flex);flex-direction:var(--graph-chart-direction, row);justify-content:var(--graph-chart-justify-content, between);align-items:var(--graph-chart-align-items, center);grid-gap:var(--graph-chart-gap, .5rem);gap:var(--graph-chart-gap, .5rem)}.app-chart{min-width:var(--app-chart-min-width, 0);min-height:var(--app-chart-min-height, 0);height:var(--app-chart-height, auto);width:var(--app-chart-width, 100%);padding:var(--app-chart-padding, 1rem);display:flex;align-items:center;justify-content:center;align-self:stretch}@media print{.app-chart ::ng-deep canvas{max-width:100%!important}}::ng-deep .chart-legends{max-height:var(--chart-legends-height, var(--chart-height));min-width:var(--chart-legends-width, 0);overflow:auto;font-size:1rem;text-align:start;display:flex;flex-direction:column;grid-gap:.2rem;gap:.2rem;padding-block:.5rem}::ng-deep .chart-legends:empty{--chart-legends-width: 0;display:none}::ng-deep .chart-legends.has-items{--chart-legends-width: 200px}::ng-deep .chart-legends__legend{display:flex;align-items:baseline;-webkit-user-select:none;user-select:none;cursor:default}::ng-deep .chart-legends__box{width:var(--chart-legends-box-width, 8px);height:var(--chart-legends-box-height, 8px);border-radius:var(--chart-legends-radius, 50%);margin-inline:var(--chart-legends-box-inline, 0 .5rem);display:inline-block;flex-shrink:0}\n"], components: [{ type: i1.ChartComponent, selector: "app-chart", inputs: ["data", "options"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i2.AsyncPipe } });
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: GraphChartComponent, decorators: [{
58
+ type: Component,
59
+ args: [{
60
+ selector: 'app-graph-chart',
61
+ templateUrl: './graph-chart.component.html',
62
+ styleUrls: ['./graph-chart.component.scss']
63
+ }]
64
+ }] });
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGgtY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9yZXBvcnRzL25kZi1yZXBvcnRzL2NoYXJ0cy1jb21wb25lbnRzL2dyYXBoLWNoYXJ0L2dyYXBoLWNoYXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvcmVwb3J0cy9uZGYtcmVwb3J0cy9jaGFydHMtY29tcG9uZW50cy9ncmFwaC1jaGFydC9ncmFwaC1jaGFydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFbEQsT0FBTyxFQUFFLGFBQWEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBUXJELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxTQUFxQjtJQUw5RDs7UUFNVyx3QkFBbUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzdELGtCQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztLQXFEL0Q7SUE5Q0EsUUFBUTtRQUNQLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBWTtRQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUMvQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3JCLENBQUMsQ0FBQztRQUNGLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzVELGNBQWMsQ0FBQyxHQUFHLEVBQUU7WUFDbkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFTyxhQUFhO1FBQ3BCLE9BQU8sYUFBYSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFO1lBQzVCLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFO1lBQzlCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUU7U0FDdEMsQ0FBQyxDQUFDLElBQUksQ0FDTixTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFO1lBQ2hDLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzFELENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ1osSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQ0YsQ0FBQztJQUNILENBQUM7SUFFRCxVQUFVO1FBQ1QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN2RyxDQUFDO0lBRUQsV0FBVztRQUNWLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFdBQVc7UUFDVixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEIsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2YsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ2hEO0lBQ0YsQ0FBQzs7aUhBdERXLG1CQUFtQjtxR0FBbkIsbUJBQW1CLDhFQ2RoQyxrWkFZQTs0RkRFYSxtQkFBbUI7a0JBTC9CLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsV0FBVyxFQUFFLDhCQUE4QjtvQkFDM0MsU0FBUyxFQUFFLENBQUMsOEJBQThCLENBQUM7aUJBQzNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCYXNlQ2hhcnQgfSBmcm9tICcuLi8uLi9iYXNlL2Jhc2UtY2hhcnQnO1xyXG5pbXBvcnQgeyBHcmFwaENoYXJ0LCBHcmFwaENoYXJ0RGVmaW5pdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEdyYXBoQ2hhcnRTZXJ2aWNlIH0gZnJvbSAnLi9ncmFwaC1jaGFydC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2hhcnRNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IENoYXJ0IGZyb20gJ2NoYXJ0LmpzL2F1dG8nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdhcHAtZ3JhcGgtY2hhcnQnLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9ncmFwaC1jaGFydC5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmxzOiBbJy4vZ3JhcGgtY2hhcnQuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgR3JhcGhDaGFydENvbXBvbmVudCBleHRlbmRzIEJhc2VDaGFydDxHcmFwaENoYXJ0PiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHRwcm90ZWN0ZWQgX2NoYXJ0SGVscGVyU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KENoYXJ0TWFuYWdlclNlcnZpY2UpO1xyXG5cdHByb3RlY3RlZCBfZ3JhcGhTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoR3JhcGhDaGFydFNlcnZpY2UpO1xyXG5cclxuXHRjaGFydDogQ2hhcnQ7XHJcblx0cHJvdGVjdGVkIF9wcmludExpc3RlbmVyOiBFdmVudExpc3RlbmVyO1xyXG5cclxuXHRwdWJsaWMgcmVwb3J0JDogT2JzZXJ2YWJsZTxhbnk+O1xyXG5cclxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHRcdHRoaXMucmVwb3J0JCA9IHRoaXMuX3ByZXBhcmVDaGFydCgpO1xyXG5cdH1cclxuXHJcblx0Y2hhcnRSZWFkeShjaGFydDogQ2hhcnQpIHtcclxuXHRcdHRoaXMub25SZWFkeS5lbWl0KGNoYXJ0KTtcclxuXHRcdHRoaXMuY2hhcnQgPSBjaGFydDtcclxuXHRcdHRoaXMuX2NoYXJ0SGVscGVyU2VydmljZS5zZXRDaGFydChjaGFydCk7XHJcblx0XHR0aGlzLl9wcmludExpc3RlbmVyID0gKGV2ZW50KSA9PiB7XHJcblx0XHRcdHRoaXMuY2hhcnQucmVzaXplKCk7XHJcblx0XHR9O1xyXG5cdFx0d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2JlZm9yZXByaW50JywgdGhpcy5fcHJpbnRMaXN0ZW5lcik7XHJcblx0XHRxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XHJcblx0XHRcdHRoaXMuY2hhcnQucmVzaXplKCk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgX3ByZXBhcmVDaGFydCgpIHtcclxuXHRcdHJldHVybiBjb21iaW5lTGF0ZXN0KFtcclxuXHRcdFx0dGhpcy5fZGF0YVN1Yi5hc09ic2VydmFibGUoKSxcclxuXHRcdFx0dGhpcy5fY29uZmlnU3ViLmFzT2JzZXJ2YWJsZSgpLFxyXG5cdFx0XHR0aGlzLl9yZWJ1aWxkVHJpZ2dlclN1Yi5hc09ic2VydmFibGUoKVxyXG5cdFx0XSkucGlwZShcclxuXHRcdFx0c3dpdGNoTWFwKChbcmVzcG9uc2UsIGNvbmZpZ10pID0+IHtcclxuXHRcdFx0XHRyZXR1cm4gdGhpcy5fZ3JhcGhTZXJ2aWNlLnByZXBhcmVDaGFydChyZXNwb25zZSwgY29uZmlnKTtcclxuXHRcdFx0fSksXHJcblx0XHRcdHRhcCgoZGF0YSkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuX2lzSW5pdGlhbGl6ZWQgPSB0cnVlO1xyXG5cdFx0XHR9KVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdHByaW50Q2hhcnQoKSB7XHJcblx0XHR0aGlzLl9jaGFydEhlbHBlclNlcnZpY2UucHJpbnRDaGFydCh0aGlzLmNoYXJ0LmlkLCB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQodGhpcy5jb25maWcubGFiZWwpKTtcclxuXHR9XHJcblxyXG5cdHJlc2l6ZUNoYXJ0KCkge1xyXG5cdFx0dGhpcy5jaGFydC5yZXNpemUoKTtcclxuXHR9XHJcblxyXG5cdG5nT25EZXN0cm95KCkge1xyXG5cdFx0c3VwZXIubmdPbkRlc3Ryb3koKTtcclxuXHRcdGlmICh0aGlzLmNoYXJ0KSB7XHJcblx0XHRcdHRoaXMuX2NoYXJ0SGVscGVyU2VydmljZS5kZXN0cm95KHRoaXMuY2hhcnQuaWQpO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwicmVwb3J0JCB8IGFzeW5jIGFzIHJlcG9ydFwiPlxyXG5cdDxkaXYgY2xhc3M9XCJjaGFydC1sZWdlbmRzXCI+PC9kaXY+XHJcblx0PGFwcC1jaGFydFxyXG5cdFx0W3R5cGVdPVwicmVwb3J0LmNvbmZpZy50eXBlXCJcclxuXHRcdFtkYXRhXT1cInJlcG9ydC5kYXRhXCJcclxuXHRcdFtvcHRpb25zXT1cInJlcG9ydC5jb25maWc/Lm9wdGlvbnNcIlxyXG5cdFx0W3BsdWdpbnNdPVwicmVwb3J0LmNvbmZpZz8ucGx1Z2luc1wiXHJcblx0XHRbcmVzcG9uc2l2ZV09XCJ0cnVlXCJcclxuXHRcdChvblJlYWR5KT1cImNoYXJ0UmVhZHkoJGV2ZW50KVwiXHJcblx0XHRjbGFzcz1cImFwcC1jaGFydFwiXHJcblx0PjwvYXBwLWNoYXJ0PlxyXG48L25nLWNvbnRhaW5lcj5cclxuIl19
@@ -0,0 +1,14 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { BaseChartBuilderService } from '../../services/base-chart-builder.service';
3
+ import * as i0 from "@angular/core";
4
+ export class GraphChartService extends BaseChartBuilderService {
5
+ }
6
+ GraphChartService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: GraphChartService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
7
+ GraphChartService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: GraphChartService, providedIn: 'root' });
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: GraphChartService, decorators: [{
9
+ type: Injectable,
10
+ args: [{
11
+ providedIn: 'root'
12
+ }]
13
+ }] });
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGgtY2hhcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvcmVwb3J0cy9uZGYtcmVwb3J0cy9jaGFydHMtY29tcG9uZW50cy9ncmFwaC1jaGFydC9ncmFwaC1jaGFydC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7O0FBS3BGLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSx1QkFBdUI7OytHQUFqRCxpQkFBaUI7bUhBQWpCLGlCQUFpQixjQUZqQixNQUFNOzRGQUVOLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDWCxVQUFVLEVBQUUsTUFBTTtpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJhc2VDaGFydEJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYmFzZS1jaGFydC1idWlsZGVyLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG5cdHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgR3JhcGhDaGFydFNlcnZpY2UgZXh0ZW5kcyBCYXNlQ2hhcnRCdWlsZGVyU2VydmljZSB7fVxyXG4iXX0=
@@ -0,0 +1,3 @@
1
+ export * from './digit-chart/digit-chart.component';
2
+ export * from './graph-chart/graph-chart.component';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3JlcG9ydHMvbmRmLXJlcG9ydHMvY2hhcnRzLWNvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHFDQUFxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kaWdpdC1jaGFydC9kaWdpdC1jaGFydC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2dyYXBoLWNoYXJ0L2dyYXBoLWNoYXJ0LmNvbXBvbmVudCc7XHJcbiJdfQ==
@@ -0,0 +1,71 @@
1
+ import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
2
+ import { CHARTS_TYPES } from '../../../constants';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/material/icon";
5
+ import * as i2 from "@angular/cdk/bidi";
6
+ import * as i3 from "@angular/common";
7
+ import * as i4 from "@angular/material/tooltip";
8
+ import * as i5 from "@ngx-translate/core";
9
+ export class ChartTypeSelectorComponent {
10
+ constructor() {
11
+ this.types = this._prepareTypes();
12
+ this.selectedType = null;
13
+ this.typeChange = new EventEmitter();
14
+ }
15
+ set type(type) {
16
+ this.selectedType = {
17
+ icon: this._getIcon(type),
18
+ type: type
19
+ };
20
+ }
21
+ get type() {
22
+ var _a;
23
+ return (_a = this.selectedType) === null || _a === void 0 ? void 0 : _a.type;
24
+ }
25
+ changeType(type) {
26
+ this.selectedType = type;
27
+ this.typeChange.emit(type.type);
28
+ }
29
+ _prepareTypes() {
30
+ return Object.values(CHARTS_TYPES)
31
+ .filter((type) => ![CHARTS_TYPES.line].includes(type))
32
+ .map((type) => ({
33
+ icon: this._getIcon(type),
34
+ type: type,
35
+ label: `CHARTS.${type}`
36
+ }));
37
+ }
38
+ _getIcon(type) {
39
+ var _a;
40
+ const icons = {
41
+ [CHARTS_TYPES.verticalBar]: 'bar_chart',
42
+ [CHARTS_TYPES.horizontalBar]: 'align_horizontal_left',
43
+ [CHARTS_TYPES.doughnut]: 'donut_large',
44
+ [CHARTS_TYPES.line]: 'show_chart',
45
+ [CHARTS_TYPES.pie]: 'pie_chart'
46
+ };
47
+ return (_a = icons[type]) !== null && _a !== void 0 ? _a : '';
48
+ }
49
+ }
50
+ ChartTypeSelectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ChartTypeSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
51
+ ChartTypeSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ChartTypeSelectorComponent, selector: "chart-type-selector", inputs: { direction: "direction", type: "type" }, outputs: { typeChange: "typeChange" }, host: { properties: { "attr.dir": "direction" }, classAttribute: "chart-type-selector" }, ngImport: i0, template: "<div [dir]=\"direction\" class=\"font-light flex items-center rounded-lg gap-2 chart-type-selector__wrapper p-1\">\r\n\t<button\r\n\t\tclass=\"chart-type-selector__item rounded\"\r\n\t\t*ngFor=\"let type of types\"\r\n\t\t(click)=\"changeType(type)\"\r\n\t\t[class.selected]=\"type.type === selectedType?.type\"\r\n\t\t[matTooltip]=\"type.label | translate\"\r\n\t>\r\n\t\t<mat-icon>{{ type.icon }}</mat-icon>\r\n\t</button>\r\n</div>\r\n", styles: [".chart-type-selector__wrapper{border:var(--chart-type-border, 1px solid var(--border-color))}.chart-type-selector__item{background:var(--chart-type-background, transparent);color:var(--chart-type-color, currentColor);box-shadow:var(--chart-type-shadow, unset);width:var(--chart-type-width, 35px);height:var(--chart-type-height, 35px);flex-grow:1;display:grid;place-items:center}.chart-type-selector__item .mat-icon{color:var(--main-color, currentColor)}.chart-type-selector__item:hover{--chart-type-shadow: var(--chart-type-hover-shadow, 0 0 0 1px var(--main-color))}.chart-type-selector__item.selected{--chart-type-background: var(--chart-type-active-background, var(--main-color));--chart-type-color: var(--chart-type-active-color, var(--main-hover))}.chart-type-selector__item.selected .mat-icon{color:currentColor!important}\n"], components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i2.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], pipes: { "translate": i5.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ChartTypeSelectorComponent, decorators: [{
53
+ type: Component,
54
+ args: [{
55
+ selector: 'chart-type-selector',
56
+ templateUrl: './chart-type-selector.component.html',
57
+ styleUrls: ['./chart-type-selector.component.scss'],
58
+ encapsulation: ViewEncapsulation.None,
59
+ host: {
60
+ class: 'chart-type-selector',
61
+ '[attr.dir]': 'direction'
62
+ }
63
+ }]
64
+ }], propDecorators: { direction: [{
65
+ type: Input
66
+ }], type: [{
67
+ type: Input
68
+ }], typeChange: [{
69
+ type: Output
70
+ }] } });
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtdHlwZS1zZWxlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3JlcG9ydHMvbmRmLXJlcG9ydHMvY29tcG9uZW50cy9fcGFydHMvY2hhcnQtdHlwZS1zZWxlY3Rvci9jaGFydC10eXBlLXNlbGVjdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvcmVwb3J0cy9uZGYtcmVwb3J0cy9jb21wb25lbnRzL19wYXJ0cy9jaGFydC10eXBlLXNlbGVjdG9yL2NoYXJ0LXR5cGUtc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7QUFlbEQsTUFBTSxPQUFPLDBCQUEwQjtJQVZ2QztRQVdDLFVBQUssR0FBb0IsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRTlDLGlCQUFZLEdBQWtCLElBQUksQ0FBQztRQWV6QixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQztLQTRCdEQ7SUF2Q0EsSUFBYSxJQUFJLENBQUMsSUFBZ0I7UUFDakMsSUFBSSxDQUFDLFlBQVksR0FBRztZQUNuQixJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDekIsSUFBSSxFQUFFLElBQUk7U0FDVixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksSUFBSTs7UUFDUCxPQUFPLE1BQUEsSUFBSSxDQUFDLFlBQVksMENBQUUsSUFBSSxDQUFDO0lBQ2hDLENBQUM7SUFJRCxVQUFVLENBQUMsSUFBbUI7UUFDN0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFTyxhQUFhO1FBQ3BCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7YUFDaEMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFXLENBQUMsQ0FBQzthQUM1RCxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDekIsSUFBSSxFQUFFLElBQUk7WUFDVixLQUFLLEVBQUUsVUFBVSxJQUFJLEVBQUU7U0FDdkIsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRU8sUUFBUSxDQUFDLElBQWdCOztRQUNoQyxNQUFNLEtBQUssR0FBRztZQUNiLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxFQUFFLFdBQVc7WUFDdkMsQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLEVBQUUsdUJBQXVCO1lBQ3JELENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFFLGFBQWE7WUFDdEMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsWUFBWTtZQUNqQyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxXQUFXO1NBQy9CLENBQUM7UUFFRixPQUFPLE1BQUEsS0FBSyxDQUFDLElBQUksQ0FBQyxtQ0FBSSxFQUFFLENBQUM7SUFDMUIsQ0FBQzs7d0hBN0NXLDBCQUEwQjs0R0FBMUIsMEJBQTBCLDhPQ2pCdkMsd2JBV0E7NEZETWEsMEJBQTBCO2tCQVZ0QyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFdBQVcsRUFBRSxzQ0FBc0M7b0JBQ25ELFNBQVMsRUFBRSxDQUFDLHNDQUFzQyxDQUFDO29CQUNuRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsSUFBSSxFQUFFO3dCQUNMLEtBQUssRUFBRSxxQkFBcUI7d0JBQzVCLFlBQVksRUFBRSxXQUFXO3FCQUN6QjtpQkFDRDs4QkFNUyxTQUFTO3NCQUFqQixLQUFLO2dCQUVPLElBQUk7c0JBQWhCLEtBQUs7Z0JBV0ksVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENIQVJUU19UWVBFUyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IENoYXJ0VHlwZXMgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xyXG5cclxudHlwZSBDaGFydFR5cGVJdGVtID0geyBpY29uOiBzdHJpbmc7IHR5cGU6IENoYXJ0VHlwZXM7IGxhYmVsPzogc3RyaW5nIH07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2NoYXJ0LXR5cGUtc2VsZWN0b3InLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9jaGFydC10eXBlLXNlbGVjdG9yLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi9jaGFydC10eXBlLXNlbGVjdG9yLmNvbXBvbmVudC5zY3NzJ10sXHJcblx0ZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuXHRob3N0OiB7XHJcblx0XHRjbGFzczogJ2NoYXJ0LXR5cGUtc2VsZWN0b3InLFxyXG5cdFx0J1thdHRyLmRpcl0nOiAnZGlyZWN0aW9uJ1xyXG5cdH1cclxufSlcclxuZXhwb3J0IGNsYXNzIENoYXJ0VHlwZVNlbGVjdG9yQ29tcG9uZW50IHtcclxuXHR0eXBlczogQ2hhcnRUeXBlSXRlbVtdID0gdGhpcy5fcHJlcGFyZVR5cGVzKCk7XHJcblxyXG5cdHNlbGVjdGVkVHlwZTogQ2hhcnRUeXBlSXRlbSA9IG51bGw7XHJcblxyXG5cdEBJbnB1dCgpIGRpcmVjdGlvbjogRGlyZWN0aW9uO1xyXG5cclxuXHRASW5wdXQoKSBzZXQgdHlwZSh0eXBlOiBDaGFydFR5cGVzKSB7XHJcblx0XHR0aGlzLnNlbGVjdGVkVHlwZSA9IHtcclxuXHRcdFx0aWNvbjogdGhpcy5fZ2V0SWNvbih0eXBlKSxcclxuXHRcdFx0dHlwZTogdHlwZVxyXG5cdFx0fTtcclxuXHR9XHJcblxyXG5cdGdldCB0eXBlKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuc2VsZWN0ZWRUeXBlPy50eXBlO1xyXG5cdH1cclxuXHJcblx0QE91dHB1dCgpIHR5cGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPENoYXJ0VHlwZXM+KCk7XHJcblxyXG5cdGNoYW5nZVR5cGUodHlwZTogQ2hhcnRUeXBlSXRlbSk6IHZvaWQge1xyXG5cdFx0dGhpcy5zZWxlY3RlZFR5cGUgPSB0eXBlO1xyXG5cdFx0dGhpcy50eXBlQ2hhbmdlLmVtaXQodHlwZS50eXBlKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgX3ByZXBhcmVUeXBlcygpOiBDaGFydFR5cGVJdGVtW10ge1xyXG5cdFx0cmV0dXJuIE9iamVjdC52YWx1ZXMoQ0hBUlRTX1RZUEVTKVxyXG5cdFx0XHQuZmlsdGVyKCh0eXBlKSA9PiAhW0NIQVJUU19UWVBFUy5saW5lXS5pbmNsdWRlcyh0eXBlIGFzIGFueSkpXHJcblx0XHRcdC5tYXAoKHR5cGUpID0+ICh7XHJcblx0XHRcdFx0aWNvbjogdGhpcy5fZ2V0SWNvbih0eXBlKSxcclxuXHRcdFx0XHR0eXBlOiB0eXBlLFxyXG5cdFx0XHRcdGxhYmVsOiBgQ0hBUlRTLiR7dHlwZX1gXHJcblx0XHRcdH0pKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgX2dldEljb24odHlwZTogQ2hhcnRUeXBlcykge1xyXG5cdFx0Y29uc3QgaWNvbnMgPSB7XHJcblx0XHRcdFtDSEFSVFNfVFlQRVMudmVydGljYWxCYXJdOiAnYmFyX2NoYXJ0JyxcclxuXHRcdFx0W0NIQVJUU19UWVBFUy5ob3Jpem9udGFsQmFyXTogJ2FsaWduX2hvcml6b250YWxfbGVmdCcsXHJcblx0XHRcdFtDSEFSVFNfVFlQRVMuZG91Z2hudXRdOiAnZG9udXRfbGFyZ2UnLFxyXG5cdFx0XHRbQ0hBUlRTX1RZUEVTLmxpbmVdOiAnc2hvd19jaGFydCcsXHJcblx0XHRcdFtDSEFSVFNfVFlQRVMucGllXTogJ3BpZV9jaGFydCdcclxuXHRcdH07XHJcblxyXG5cdFx0cmV0dXJuIGljb25zW3R5cGVdID8/ICcnO1xyXG5cdH1cclxufVxyXG4iLCI8ZGl2IFtkaXJdPVwiZGlyZWN0aW9uXCIgY2xhc3M9XCJmb250LWxpZ2h0IGZsZXggaXRlbXMtY2VudGVyIHJvdW5kZWQtbGcgZ2FwLTIgY2hhcnQtdHlwZS1zZWxlY3Rvcl9fd3JhcHBlciBwLTFcIj5cclxuXHQ8YnV0dG9uXHJcblx0XHRjbGFzcz1cImNoYXJ0LXR5cGUtc2VsZWN0b3JfX2l0ZW0gcm91bmRlZFwiXHJcblx0XHQqbmdGb3I9XCJsZXQgdHlwZSBvZiB0eXBlc1wiXHJcblx0XHQoY2xpY2spPVwiY2hhbmdlVHlwZSh0eXBlKVwiXHJcblx0XHRbY2xhc3Muc2VsZWN0ZWRdPVwidHlwZS50eXBlID09PSBzZWxlY3RlZFR5cGU/LnR5cGVcIlxyXG5cdFx0W21hdFRvb2x0aXBdPVwidHlwZS5sYWJlbCB8IHRyYW5zbGF0ZVwiXHJcblx0PlxyXG5cdFx0PG1hdC1pY29uPnt7IHR5cGUuaWNvbiB9fTwvbWF0LWljb24+XHJcblx0PC9idXR0b24+XHJcbjwvZGl2PlxyXG4iXX0=