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.
- package/bundles/nuxeo-development-framework.umd.js +3029 -568
- package/bundles/nuxeo-development-framework.umd.js.map +1 -1
- package/esm2015/lib/components/reports/charts/chart.const.js +3 -0
- package/esm2015/lib/components/reports/charts/chart.token.js +3 -0
- package/esm2015/lib/components/reports/charts/charts.module.js +19 -0
- package/esm2015/lib/components/reports/charts/components/base-chart.component.js +41 -0
- package/esm2015/lib/components/reports/charts/components/chart.component.js +127 -0
- package/esm2015/lib/components/reports/charts/components/data-chart.component.js +167 -0
- package/esm2015/lib/components/reports/charts/components/index.js +4 -0
- package/esm2015/lib/components/reports/charts/defaults/bar.js +18 -0
- package/esm2015/lib/components/reports/charts/defaults/doughnut.js +15 -0
- package/esm2015/lib/components/reports/charts/defaults/index.js +5 -0
- package/esm2015/lib/components/reports/charts/defaults/line.js +25 -0
- package/esm2015/lib/components/reports/charts/defaults/pie.js +15 -0
- package/esm2015/lib/components/reports/charts/index.js +2 -0
- package/esm2015/lib/components/reports/charts/models/index.js +5 -0
- package/esm2015/lib/components/reports/charts/models/options.js +2 -0
- package/esm2015/lib/components/reports/charts/models/plugins-options.js +2 -0
- package/esm2015/lib/components/reports/charts/models/response.js +2 -0
- package/esm2015/lib/components/reports/charts/models/statistic-request-config.js +2 -0
- package/esm2015/lib/components/reports/charts/plugins/data-labels.js +144 -0
- package/esm2015/lib/components/reports/charts/plugins/doughnut-center-text.js +25 -0
- package/esm2015/lib/components/reports/charts/plugins/doughnut-empty-state.js +34 -0
- package/esm2015/lib/components/reports/charts/plugins/index.js +6 -0
- package/esm2015/lib/components/reports/charts/plugins/legend-margin.js +16 -0
- package/esm2015/lib/components/reports/charts/plugins/scrollable-legends.js +67 -0
- package/esm2015/lib/components/reports/charts/public-api.js +10 -0
- package/esm2015/lib/components/reports/charts/services/index.js +2 -0
- package/esm2015/lib/components/reports/charts/services/statistic.service.js +75 -0
- package/esm2015/lib/components/reports/charts/utility/colors.js +74 -0
- package/esm2015/lib/components/reports/charts/utility/common.js +7 -0
- package/esm2015/lib/components/reports/charts/utility/css.js +132 -0
- package/esm2015/lib/components/reports/charts/utility/index.js +4 -0
- package/esm2015/lib/components/reports/ndf-reports/base/base-chart.js +53 -0
- package/esm2015/lib/components/reports/ndf-reports/base/base-graph.report.js +37 -0
- package/esm2015/lib/components/reports/ndf-reports/base/base-report.js +68 -0
- package/esm2015/lib/components/reports/ndf-reports/charts-components/digit-chart/digit-chart.component.js +36 -0
- package/esm2015/lib/components/reports/ndf-reports/charts-components/graph-chart/graph-chart.component.js +65 -0
- package/esm2015/lib/components/reports/ndf-reports/charts-components/graph-chart/graph-chart.service.js +14 -0
- package/esm2015/lib/components/reports/ndf-reports/charts-components/index.js +3 -0
- package/esm2015/lib/components/reports/ndf-reports/components/_parts/chart-type-selector/chart-type-selector.component.js +71 -0
- package/esm2015/lib/components/reports/ndf-reports/components/_parts/graph-dialog/graph-dialog.component.js +66 -0
- package/esm2015/lib/components/reports/ndf-reports/components/_parts/index.js +5 -0
- package/esm2015/lib/components/reports/ndf-reports/components/_parts/time-group-selector/time-group-selector.component.js +55 -0
- package/esm2015/lib/components/reports/ndf-reports/components/_parts/timeline-dialog/timeline-dialog.component.js +47 -0
- package/esm2015/lib/components/reports/ndf-reports/components/chart-panel.component.js +61 -0
- package/esm2015/lib/components/reports/ndf-reports/components/digit-report/digit-report.component.js +25 -0
- package/esm2015/lib/components/reports/ndf-reports/components/dynamic-timeline-report/dynamic-timeline-report.component.js +73 -0
- package/esm2015/lib/components/reports/ndf-reports/components/graph-report/graph-report.component.js +61 -0
- package/esm2015/lib/components/reports/ndf-reports/components/index.js +6 -0
- package/esm2015/lib/components/reports/ndf-reports/constants/charts-types.js +13 -0
- package/esm2015/lib/components/reports/ndf-reports/constants/index.js +3 -0
- package/esm2015/lib/components/reports/ndf-reports/constants/time-group.js +7 -0
- package/esm2015/lib/components/reports/ndf-reports/containers/index.js +3 -0
- package/esm2015/lib/components/reports/ndf-reports/containers/ndf-report/ndf-report.component.js +42 -0
- package/esm2015/lib/components/reports/ndf-reports/containers/ndf-reports/ndf-reports.component.js +245 -0
- package/esm2015/lib/components/reports/ndf-reports/directives/index.js +2 -0
- package/esm2015/lib/components/reports/ndf-reports/directives/scrollable-div.directive.js +35 -0
- package/esm2015/lib/components/reports/ndf-reports/index.js +2 -0
- package/esm2015/lib/components/reports/ndf-reports/models/base.js +2 -0
- package/esm2015/lib/components/reports/ndf-reports/models/common.js +2 -0
- package/esm2015/lib/components/reports/ndf-reports/models/details.js +2 -0
- package/esm2015/lib/components/reports/ndf-reports/models/dialog-data.js +2 -0
- package/esm2015/lib/components/reports/ndf-reports/models/digit.js +2 -0
- package/esm2015/lib/components/reports/ndf-reports/models/dynamic-line.js +2 -0
- package/esm2015/lib/components/reports/ndf-reports/models/graph.js +2 -0
- package/esm2015/lib/components/reports/ndf-reports/models/index.js +13 -0
- package/esm2015/lib/components/reports/ndf-reports/models/ndf-reports.config.js +2 -0
- package/esm2015/lib/components/reports/ndf-reports/models/report-config.js +2 -0
- package/esm2015/lib/components/reports/ndf-reports/models/report-data-source.js +2 -0
- package/esm2015/lib/components/reports/ndf-reports/models/report-response.model.js +2 -0
- package/esm2015/lib/components/reports/ndf-reports/models/request.js +2 -0
- package/esm2015/lib/components/reports/ndf-reports/ndf-reports.module.js +101 -0
- package/esm2015/lib/components/reports/ndf-reports/options/doughnut.js +29 -0
- package/esm2015/lib/components/reports/ndf-reports/options/horizontal-bar.js +48 -0
- package/esm2015/lib/components/reports/ndf-reports/options/index.js +7 -0
- package/esm2015/lib/components/reports/ndf-reports/options/line.js +41 -0
- package/esm2015/lib/components/reports/ndf-reports/options/options.js +15 -0
- package/esm2015/lib/components/reports/ndf-reports/options/pie.js +28 -0
- package/esm2015/lib/components/reports/ndf-reports/options/vertical-bar.js +41 -0
- package/esm2015/lib/components/reports/ndf-reports/public-api.js +6 -0
- package/esm2015/lib/components/reports/ndf-reports/services/base-chart-builder.service.js +103 -0
- package/esm2015/lib/components/reports/ndf-reports/services/chart-data-transformers.service.js +97 -0
- package/esm2015/lib/components/reports/ndf-reports/services/chart-manager.service.js +131 -0
- package/esm2015/lib/components/reports/ndf-reports/services/chart-plugins-registry.service.js +49 -0
- package/esm2015/lib/components/reports/ndf-reports/services/digit-chart.service.js +42 -0
- package/esm2015/lib/components/reports/ndf-reports/services/dynamic-timeline-report.service.js +72 -0
- package/esm2015/lib/components/reports/ndf-reports/services/index.js +11 -0
- package/esm2015/lib/components/reports/ndf-reports/services/ndf-reports.service.js +49 -0
- package/esm2015/lib/components/reports/ndf-reports/services/report-config-mapper.service.js +82 -0
- package/esm2015/lib/components/reports/ndf-reports/services/report-transform.service.js +98 -0
- package/esm2015/lib/components/reports/ndf-reports/services/reports-state.service.js +19 -0
- package/esm2015/lib/components/reports/ndf-reports/utilities/index.js +2 -0
- package/esm2015/lib/components/reports/ndf-reports/utilities/reports-table.mapper.js +44 -0
- package/esm2015/lib/components/spell-checker-field/spell-checker-field.module.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/filters-panel/index.js +1 -2
- package/esm2015/lib/components/tables/ndf-table/filters-panel/models/types-helper.js +1 -1
- package/esm2015/lib/components/tables/ndf-table/filters-panel/services/aggregation-field.service.js +2 -2
- package/esm2015/lib/components/tables/ndf-table/filters-panel/services/index.js +1 -2
- package/esm2015/lib/components/tables/ndf-table/ndf-table.module.js +2 -2
- package/esm2015/lib/core/services/index.js +2 -1
- package/esm2015/lib/core/services/ndf-transform.service.js +80 -0
- package/esm2015/lib/shared/components/index.js +3 -3
- package/esm2015/lib/shared/services/index.js +2 -2
- package/esm2015/public-api.js +8 -6
- package/fesm2015/nuxeo-development-framework.js +2677 -405
- package/fesm2015/nuxeo-development-framework.js.map +1 -1
- package/lib/components/{charts → reports/charts}/components/base-chart.component.d.ts +1 -1
- package/lib/components/reports/charts/index.d.ts +1 -0
- package/lib/components/reports/charts/plugins/data-labels.d.ts +3 -0
- package/lib/components/{charts → reports/charts}/plugins/index.d.ts +2 -0
- package/lib/components/reports/charts/plugins/scrollable-legends.d.ts +6 -0
- package/lib/components/{charts → reports/charts}/services/statistic.service.d.ts +2 -2
- package/lib/components/reports/charts/utility/css.d.ts +45 -0
- package/lib/components/{charts → reports/charts}/utility/index.d.ts +1 -0
- package/lib/components/reports/ndf-reports/base/base-chart.d.ts +27 -0
- package/lib/components/reports/ndf-reports/base/base-graph.report.d.ts +19 -0
- package/lib/components/reports/ndf-reports/base/base-report.d.ts +58 -0
- package/lib/components/reports/ndf-reports/charts-components/digit-chart/digit-chart.component.d.ts +14 -0
- package/lib/components/reports/ndf-reports/charts-components/graph-chart/graph-chart.component.d.ts +23 -0
- package/lib/components/reports/ndf-reports/charts-components/graph-chart/graph-chart.service.d.ts +6 -0
- package/lib/components/reports/ndf-reports/charts-components/index.d.ts +2 -0
- package/lib/components/reports/ndf-reports/components/_parts/chart-type-selector/chart-type-selector.component.d.ts +23 -0
- package/lib/components/reports/ndf-reports/components/_parts/graph-dialog/graph-dialog.component.d.ts +17 -0
- package/lib/components/reports/ndf-reports/components/_parts/index.d.ts +4 -0
- package/lib/components/reports/ndf-reports/components/_parts/time-group-selector/time-group-selector.component.d.ts +21 -0
- package/lib/components/reports/ndf-reports/components/_parts/timeline-dialog/timeline-dialog.component.d.ts +19 -0
- package/lib/components/reports/ndf-reports/components/chart-panel.component.d.ts +13 -0
- package/lib/components/reports/ndf-reports/components/digit-report/digit-report.component.d.ts +7 -0
- package/lib/components/reports/ndf-reports/components/dynamic-timeline-report/dynamic-timeline-report.component.d.ts +20 -0
- package/lib/components/reports/ndf-reports/components/graph-report/graph-report.component.d.ts +12 -0
- package/lib/components/reports/ndf-reports/components/index.d.ts +5 -0
- package/lib/components/reports/ndf-reports/constants/charts-types.d.ts +12 -0
- package/lib/components/reports/ndf-reports/constants/index.d.ts +2 -0
- package/lib/components/reports/ndf-reports/constants/time-group.d.ts +6 -0
- package/lib/components/reports/ndf-reports/containers/index.d.ts +2 -0
- package/lib/components/reports/ndf-reports/containers/ndf-report/ndf-report.component.d.ts +32 -0
- package/lib/components/reports/ndf-reports/containers/ndf-reports/ndf-reports.component.d.ts +92 -0
- package/lib/components/reports/ndf-reports/directives/index.d.ts +1 -0
- package/lib/components/reports/ndf-reports/directives/scrollable-div.directive.d.ts +14 -0
- package/lib/components/reports/ndf-reports/index.d.ts +1 -0
- package/lib/components/reports/ndf-reports/models/base.d.ts +18 -0
- package/lib/components/reports/ndf-reports/models/common.d.ts +20 -0
- package/lib/components/reports/ndf-reports/models/details.d.ts +16 -0
- package/lib/components/reports/ndf-reports/models/dialog-data.d.ts +12 -0
- package/lib/components/reports/ndf-reports/models/digit.d.ts +17 -0
- package/lib/components/reports/ndf-reports/models/dynamic-line.d.ts +52 -0
- package/lib/components/reports/ndf-reports/models/graph.d.ts +56 -0
- package/lib/components/reports/ndf-reports/models/index.d.ts +12 -0
- package/lib/components/reports/ndf-reports/models/ndf-reports.config.d.ts +22 -0
- package/lib/components/reports/ndf-reports/models/report-config.d.ts +5 -0
- package/lib/components/reports/ndf-reports/models/report-data-source.d.ts +7 -0
- package/lib/components/reports/ndf-reports/models/report-response.model.d.ts +4 -0
- package/lib/components/reports/ndf-reports/models/request.d.ts +10 -0
- package/lib/components/reports/ndf-reports/ndf-reports.module.d.ts +34 -0
- package/lib/components/reports/ndf-reports/options/doughnut.d.ts +7 -0
- package/lib/components/reports/ndf-reports/options/horizontal-bar.d.ts +7 -0
- package/lib/components/reports/ndf-reports/options/index.d.ts +6 -0
- package/lib/components/reports/ndf-reports/options/line.d.ts +7 -0
- package/lib/components/reports/ndf-reports/options/options.d.ts +2 -0
- package/lib/components/reports/ndf-reports/options/pie.d.ts +7 -0
- package/lib/components/reports/ndf-reports/options/vertical-bar.d.ts +7 -0
- package/lib/components/reports/ndf-reports/public-api.d.ts +5 -0
- package/lib/components/reports/ndf-reports/services/base-chart-builder.service.d.ts +59 -0
- package/lib/components/reports/ndf-reports/services/chart-data-transformers.service.d.ts +68 -0
- package/lib/components/reports/ndf-reports/services/chart-manager.service.d.ts +18 -0
- package/lib/components/reports/ndf-reports/services/chart-plugins-registry.service.d.ts +34 -0
- package/lib/components/reports/ndf-reports/services/digit-chart.service.d.ts +11 -0
- package/lib/components/reports/ndf-reports/services/dynamic-timeline-report.service.d.ts +32 -0
- package/lib/components/reports/ndf-reports/services/index.d.ts +10 -0
- package/lib/components/reports/ndf-reports/services/ndf-reports.service.d.ts +19 -0
- package/lib/components/reports/ndf-reports/services/report-config-mapper.service.d.ts +34 -0
- package/lib/components/reports/ndf-reports/services/report-transform.service.d.ts +18 -0
- package/lib/components/reports/ndf-reports/services/reports-state.service.d.ts +7 -0
- package/lib/components/reports/ndf-reports/utilities/index.d.ts +1 -0
- package/lib/components/reports/ndf-reports/utilities/reports-table.mapper.d.ts +3 -0
- package/lib/components/tables/ndf-table/filters-panel/index.d.ts +0 -1
- package/lib/components/tables/ndf-table/filters-panel/models/types-helper.d.ts +1 -9
- package/lib/components/tables/ndf-table/filters-panel/services/aggregation-field.service.d.ts +1 -1
- package/lib/components/tables/ndf-table/filters-panel/services/index.d.ts +0 -1
- package/lib/core/services/index.d.ts +1 -0
- package/lib/{components/tables/ndf-table/filters-panel → core}/services/ndf-transform.service.d.ts +7 -1
- package/lib/shared/components/index.d.ts +2 -2
- package/lib/shared/services/index.d.ts +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +7 -5
- package/esm2015/lib/components/charts/chart.const.js +0 -3
- package/esm2015/lib/components/charts/chart.token.js +0 -3
- package/esm2015/lib/components/charts/charts.module.js +0 -19
- package/esm2015/lib/components/charts/components/base-chart.component.js +0 -41
- package/esm2015/lib/components/charts/components/chart.component.js +0 -127
- package/esm2015/lib/components/charts/components/data-chart.component.js +0 -167
- package/esm2015/lib/components/charts/components/index.js +0 -4
- package/esm2015/lib/components/charts/defaults/bar.js +0 -18
- package/esm2015/lib/components/charts/defaults/doughnut.js +0 -15
- package/esm2015/lib/components/charts/defaults/index.js +0 -5
- package/esm2015/lib/components/charts/defaults/line.js +0 -25
- package/esm2015/lib/components/charts/defaults/pie.js +0 -15
- package/esm2015/lib/components/charts/index.js +0 -10
- package/esm2015/lib/components/charts/models/index.js +0 -5
- package/esm2015/lib/components/charts/models/options.js +0 -2
- package/esm2015/lib/components/charts/models/plugins-options.js +0 -2
- package/esm2015/lib/components/charts/models/response.js +0 -2
- package/esm2015/lib/components/charts/models/statistic-request-config.js +0 -2
- package/esm2015/lib/components/charts/plugins/doughnut-center-text.js +0 -25
- package/esm2015/lib/components/charts/plugins/doughnut-empty-state.js +0 -34
- package/esm2015/lib/components/charts/plugins/index.js +0 -4
- package/esm2015/lib/components/charts/plugins/legend-margin.js +0 -16
- package/esm2015/lib/components/charts/services/index.js +0 -2
- package/esm2015/lib/components/charts/services/statistic.service.js +0 -75
- package/esm2015/lib/components/charts/utility/colors.js +0 -79
- package/esm2015/lib/components/charts/utility/common.js +0 -7
- package/esm2015/lib/components/charts/utility/index.js +0 -3
- package/esm2015/lib/components/tables/ndf-table/filters-panel/services/ndf-transform.service.js +0 -80
- /package/lib/components/{charts → reports/charts}/chart.const.d.ts +0 -0
- /package/lib/components/{charts → reports/charts}/chart.token.d.ts +0 -0
- /package/lib/components/{charts → reports/charts}/charts.module.d.ts +0 -0
- /package/lib/components/{charts → reports/charts}/components/chart.component.d.ts +0 -0
- /package/lib/components/{charts → reports/charts}/components/data-chart.component.d.ts +0 -0
- /package/lib/components/{charts → reports/charts}/components/index.d.ts +0 -0
- /package/lib/components/{charts → reports/charts}/defaults/bar.d.ts +0 -0
- /package/lib/components/{charts → reports/charts}/defaults/doughnut.d.ts +0 -0
- /package/lib/components/{charts → reports/charts}/defaults/index.d.ts +0 -0
- /package/lib/components/{charts → reports/charts}/defaults/line.d.ts +0 -0
- /package/lib/components/{charts → reports/charts}/defaults/pie.d.ts +0 -0
- /package/lib/components/{charts → reports/charts}/models/index.d.ts +0 -0
- /package/lib/components/{charts → reports/charts}/models/options.d.ts +0 -0
- /package/lib/components/{charts → reports/charts}/models/plugins-options.d.ts +0 -0
- /package/lib/components/{charts → reports/charts}/models/response.d.ts +0 -0
- /package/lib/components/{charts → reports/charts}/models/statistic-request-config.d.ts +0 -0
- /package/lib/components/{charts → reports/charts}/plugins/doughnut-center-text.d.ts +0 -0
- /package/lib/components/{charts → reports/charts}/plugins/doughnut-empty-state.d.ts +0 -0
- /package/lib/components/{charts → reports/charts}/plugins/legend-margin.d.ts +0 -0
- /package/lib/components/{charts/index.d.ts → reports/charts/public-api.d.ts} +0 -0
- /package/lib/components/{charts → reports/charts}/services/index.d.ts +0 -0
- /package/lib/components/{charts → reports/charts}/utility/colors.d.ts +0 -0
- /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=
|