nuxeo-development-framework 5.3.0 → 5.3.2
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 +3143 -604
- 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/containers/ndf-table/ndf-table.component.js +81 -33
- 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/components/tables/ndf-table/services/index.js +2 -1
- package/esm2015/lib/components/tables/ndf-table/services/ndf-table-configuration.service.js +28 -0
- package/esm2015/lib/core/env/env-manager.js +1 -1
- 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 +2778 -437
- 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/containers/ndf-table/ndf-table.component.d.ts +33 -14
- 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/components/tables/ndf-table/services/index.d.ts +1 -0
- package/lib/components/tables/ndf-table/services/ndf-table-configuration.service.d.ts +14 -0
- package/lib/core/env/env-manager.d.ts +1 -0
- 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,144 @@
|
|
|
1
|
+
import { getColor, getTextColor } from '../utility';
|
|
2
|
+
export const chartDataLabels = {
|
|
3
|
+
id: 'chartDataLabels',
|
|
4
|
+
afterDatasetsDraw(chart, args, plugins) {
|
|
5
|
+
var _a;
|
|
6
|
+
const { ctx } = chart;
|
|
7
|
+
ctx.save();
|
|
8
|
+
switch ((_a = chart.config) === null || _a === void 0 ? void 0 : _a.type) {
|
|
9
|
+
case 'bar':
|
|
10
|
+
barChartLabels(chart);
|
|
11
|
+
break;
|
|
12
|
+
case 'pie':
|
|
13
|
+
pieChartLabels(chart);
|
|
14
|
+
break;
|
|
15
|
+
case 'doughnut':
|
|
16
|
+
doughnutChartLabels(chart);
|
|
17
|
+
break;
|
|
18
|
+
}
|
|
19
|
+
ctx.restore();
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
function barChartLabels(chart) {
|
|
23
|
+
var _a;
|
|
24
|
+
const { ctx, data } = chart;
|
|
25
|
+
const isHorizontalChart = ((_a = chart.options) === null || _a === void 0 ? void 0 : _a.indexAxis) === 'y';
|
|
26
|
+
const { isHorizontalReversed } = isBarChartReversed(chart);
|
|
27
|
+
chart.data.datasets.forEach((dataset, datasetIndex) => {
|
|
28
|
+
const meta = chart.getDatasetMeta(datasetIndex);
|
|
29
|
+
const totalSum = dataset.data.reduce((sum, currentValue) => sum + currentValue, 0);
|
|
30
|
+
meta.data.forEach((dataPoint, index) => {
|
|
31
|
+
if (!dataPoint)
|
|
32
|
+
return;
|
|
33
|
+
const percentage = (dataset.data[index] / totalSum) * 100;
|
|
34
|
+
const isVisible = chart.getDataVisibility(index);
|
|
35
|
+
if (!percentage || !isVisible) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
const bgColor = dataset.backgroundColor[index];
|
|
39
|
+
const textColor = getTextColor(bgColor);
|
|
40
|
+
const fontSize = Math.max(12, Math.min(percentage / 2, 14));
|
|
41
|
+
ctx.textAlign = 'center';
|
|
42
|
+
ctx.textBaseline = 'middle';
|
|
43
|
+
ctx.font = `normal ${fontSize}px sans-serif`;
|
|
44
|
+
ctx.fillStyle = textColor;
|
|
45
|
+
const text = `${percentage.toFixed()}%`;
|
|
46
|
+
const { width, height } = getTextMetrics(ctx, text);
|
|
47
|
+
const textHeight = height || 12;
|
|
48
|
+
const textWidth = width || 30;
|
|
49
|
+
if (isHorizontalChart) {
|
|
50
|
+
if ((dataPoint === null || dataPoint === void 0 ? void 0 : dataPoint.width) > 0) {
|
|
51
|
+
const textPadding = 20;
|
|
52
|
+
const offset = textPadding + textWidth <= dataPoint.width ? textWidth : textWidth >= dataPoint.width ? 0 : 10;
|
|
53
|
+
const x = dataPoint.x + (isHorizontalReversed ? offset : -offset);
|
|
54
|
+
ctx.fillStyle = dataPoint.width <= textWidth ? getColor('--chart-value-default-color', '#000') : textColor;
|
|
55
|
+
if (percentage) {
|
|
56
|
+
ctx.fillText(text, x, dataPoint.y);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
if ((dataPoint === null || dataPoint === void 0 ? void 0 : dataPoint.height) > 0) {
|
|
62
|
+
const y = textHeight >= dataPoint.height ? dataPoint.y - 10 : dataPoint.y + 10;
|
|
63
|
+
ctx.fillStyle = textHeight >= dataPoint.height ? getColor('--chart-value-default-color', '#000') : textColor;
|
|
64
|
+
if (!percentage) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
ctx.fillText(text, dataPoint.x, y);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
function doughnutChartLabels(chart) {
|
|
74
|
+
const { ctx, data } = chart;
|
|
75
|
+
chart.data.datasets.forEach((dataset, datasetIndex) => {
|
|
76
|
+
const meta = chart.getDatasetMeta(datasetIndex);
|
|
77
|
+
const totalSum = dataset.data.reduce((sum, currentValue) => sum + currentValue, 0);
|
|
78
|
+
meta.data.forEach((arc, index) => {
|
|
79
|
+
if (!arc)
|
|
80
|
+
return;
|
|
81
|
+
const percentage = (dataset.data[index] / totalSum) * 100;
|
|
82
|
+
const isVisible = chart.getDataVisibility(index);
|
|
83
|
+
if (!percentage || !isVisible) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
const midAngle = (arc.startAngle + arc.endAngle) / 2;
|
|
87
|
+
const x = arc.x + Math.cos(midAngle) * (arc.outerRadius / 1.2);
|
|
88
|
+
const y = arc.y + Math.sin(midAngle) * (arc.outerRadius / 1.2);
|
|
89
|
+
const fontSize = Math.max(12, Math.min(percentage / 2, 14));
|
|
90
|
+
const bgColor = dataset.backgroundColor[index] || '#00000';
|
|
91
|
+
prepareText(ctx, fontSize, bgColor);
|
|
92
|
+
ctx.fillText(`${percentage.toFixed()}%`, x, y);
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
function pieChartLabels(chart) {
|
|
97
|
+
const { ctx, data } = chart;
|
|
98
|
+
chart.data.datasets.forEach((dataset, datasetIndex) => {
|
|
99
|
+
const meta = chart.getDatasetMeta(datasetIndex);
|
|
100
|
+
const totalSum = dataset.data.reduce((sum, currentValue) => sum + currentValue, 0);
|
|
101
|
+
meta.data.forEach((arc, index) => {
|
|
102
|
+
if (!arc)
|
|
103
|
+
return;
|
|
104
|
+
const percentage = (dataset.data[index] / totalSum) * 100;
|
|
105
|
+
const isVisible = chart.getDataVisibility(index);
|
|
106
|
+
if (!percentage || !isVisible) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
const midAngle = (arc.startAngle + arc.endAngle) / 2;
|
|
110
|
+
const x = arc.x + Math.cos(midAngle) * (arc.outerRadius / 1.5);
|
|
111
|
+
const y = arc.y + Math.sin(midAngle) * (arc.outerRadius / 1.5);
|
|
112
|
+
const fontSize = Math.max(12, Math.min(percentage / 2, 14));
|
|
113
|
+
const bgColor = dataset.backgroundColor[index] || '#00000';
|
|
114
|
+
prepareText(ctx, fontSize, bgColor);
|
|
115
|
+
ctx.fillText(`${percentage.toFixed()}%`, x, y);
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
function isBarChartReversed(chart) {
|
|
120
|
+
var _a, _b;
|
|
121
|
+
const scales = chart.options.scales;
|
|
122
|
+
const isVerticalReversed = ((_a = scales === null || scales === void 0 ? void 0 : scales.y) === null || _a === void 0 ? void 0 : _a.reverse) === true;
|
|
123
|
+
const isHorizontalReversed = ((_b = scales === null || scales === void 0 ? void 0 : scales.x) === null || _b === void 0 ? void 0 : _b.reverse) === true;
|
|
124
|
+
return {
|
|
125
|
+
isVerticalReversed,
|
|
126
|
+
isHorizontalReversed
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
function getTextMetrics(ctx, text) {
|
|
130
|
+
const metrics = ctx.measureText(text);
|
|
131
|
+
const textHeight = metrics.actualBoundingBoxAscent + metrics.actualBoundingBoxDescent;
|
|
132
|
+
return {
|
|
133
|
+
height: textHeight,
|
|
134
|
+
width: metrics.width
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
function prepareText(ctx, fontSize, bgColor) {
|
|
138
|
+
const textColor = getTextColor(bgColor || getColor('--chart-value-default-color', '#000'));
|
|
139
|
+
ctx.font = `bold ${fontSize}px sans-serif`;
|
|
140
|
+
ctx.textAlign = 'center';
|
|
141
|
+
ctx.textBaseline = 'middle';
|
|
142
|
+
ctx.fillStyle = textColor;
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1sYWJlbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3JlcG9ydHMvY2hhcnRzL3BsdWdpbnMvZGF0YS1sYWJlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFcEQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFzQjtJQUNqRCxFQUFFLEVBQUUsaUJBQWlCO0lBQ3JCLGlCQUFpQixDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsT0FBTzs7UUFDckMsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEtBQUssQ0FBQztRQUN0QixHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFWCxRQUFRLE1BQUMsS0FBSyxDQUFDLE1BQTZCLDBDQUFFLElBQUksRUFBRTtZQUNuRCxLQUFLLEtBQUs7Z0JBQ1QsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN0QixNQUFNO1lBQ1AsS0FBSyxLQUFLO2dCQUNULGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDdEIsTUFBTTtZQUNQLEtBQUssVUFBVTtnQkFDZCxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDM0IsTUFBTTtTQUNQO1FBRUQsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2YsQ0FBQztDQUNELENBQUM7QUFFRixTQUFTLGNBQWMsQ0FBQyxLQUF5Qzs7SUFDaEUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFDNUIsTUFBTSxpQkFBaUIsR0FBRyxDQUFBLE1BQUEsS0FBSyxDQUFDLE9BQU8sMENBQUUsU0FBUyxNQUFLLEdBQUcsQ0FBQztJQUMzRCxNQUFNLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxrQkFBa0Is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O1FBQ04sTUFBTSxFQUFFLFVBQVU7UUFDbEIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO0tBQ3BCLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsR0FBNkIsRUFBRSxRQUFnQixFQUFFLE9BQWU7SUFDcEYsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLE9BQU8sSUFBSSxRQUFRLENBQUMsNkJBQTZCLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUMzRixHQUFHLENBQUMsSUFBSSxHQUFHLFFBQVEsUUFBUSxlQUFlLENBQUM7SUFDM0MsR0FBRyxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7SUFDekIsR0FBRyxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUM7SUFDNUIsR0FBRyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7QUFDM0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFyY0VsZW1lbnQsIENoYXJ0LCBQbHVnaW4gfSBmcm9tICdjaGFydC5qcyc7XHJcbmltcG9ydCB7IENoYXJ0Q29uZmlndXJhdGlvbiwgQ2hhcnRUeXBlIH0gZnJvbSAnY2hhcnQuanMvZGlzdC90eXBlcyc7XHJcblxyXG5pbXBvcnQgQmFyRWxlbWVudCBmcm9tICdjaGFydC5qcy9kaXN0L2VsZW1lbnRzL2VsZW1lbnQuYmFyJztcclxuaW1wb3J0IHsgZ2V0Q29sb3IsIGdldFRleHRDb2xvciB9IGZyb20gJy4uL3V0aWxpdHknO1xyXG5cclxuZXhwb3J0IGNvbnN0IGNoYXJ0RGF0YUxhYmVsczogUGx1Z2luPENoYXJ0VHlwZT4gPSB7XHJcblx0aWQ6ICdjaGFydERhdGFMYWJlbHMnLFxyXG5cdGFmdGVyRGF0YXNldHNEcmF3KGNoYXJ0LCBhcmdzLCBwbHVnaW5zKSB7XHJcblx0XHRjb25zdCB7IGN0eCB9ID0gY2hhcnQ7XHJcblx0XHRjdHguc2F2ZSgpO1xyXG5cclxuXHRcdHN3aXRjaCAoKGNoYXJ0LmNvbmZpZyBhcyBDaGFydENvbmZpZ3VyYXRpb24pPy50eXBlKSB7XHJcblx0XHRcdGNhc2UgJ2Jhcic6XHJcblx0XHRcdFx0YmFyQ2hhcnRMYWJlbHMoY2hhcnQpO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlICdwaWUnOlxyXG5cdFx0XHRcdHBpZUNoYXJ0TGFiZWxzKGNoYXJ0KTtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSAnZG91Z2hudXQnOlxyXG5cdFx0XHRcdGRvdWdobnV0Q2hhcnRMYWJlbHMoY2hhcnQpO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0fVxyXG5cclxuXHRcdGN0eC5yZXN0b3JlKCk7XHJcblx0fVxyXG59O1xyXG5cclxuZnVuY3Rpb24gYmFyQ2hhcnRMYWJlbHMoY2hhcnQ6IENoYXJ0PENoYXJ0VHlwZSwgdW5rbm93biwgdW5rbm93bj4pIHtcclxuXHRjb25zdCB7IGN0eCwgZGF0YSB9ID0gY2hhcnQ7XHJcblx0Y29uc3QgaXNIb3Jpem9udGFsQ2hhcnQgPSBjaGFydC5vcHRpb25zPy5pbmRleEF4aXMgPT09ICd5JztcclxuXHRjb25zdCB7IGlzSG9yaXpvbnRhbFJldmVyc2VkIH0gPSBpc0JhckNoYXJ0UmV2ZXJzZWQoY2hhcnQpO1xyXG5cclxuXHRjaGFydC5kYXRhLmRhdGFzZXRzLmZvckVhY2goKGRhdGFzZXQsIGRhdGFzZXRJbmRleCkgPT4ge1xyXG5cdFx0Y29uc3QgbWV0YSA9IGNoYXJ0LmdldERhdGFzZXRNZXRhKGRhdGFzZXRJbmRleCk7XHJcblxyXG5cdFx0Y29uc3QgdG90YWxTdW0gPSAoZGF0YXNldC5kYXRhIGFzIFtdKS5yZWR1Y2UoKHN1bSwgY3VycmVudFZhbHVlKSA9PiBzdW0gKyBjdXJyZW50VmFsdWUsIDApO1xyXG5cclxuXHRcdG1ldGEuZGF0YS5mb3JFYWNoKChkYXRhUG9pbnQ6IEJhckVsZW1lbnQsIGluZGV4KSA9PiB7XHJcblx0XHRcdGlmICghZGF0YVBvaW50KSByZXR1cm47XHJcblx0XHRcdGNvbnN0IHBlcmNlbnRhZ2UgPSAoZGF0YXNldC5kYXRhW2luZGV4XSAvIHRvdGFsU3VtKSAqIDEwMDtcclxuXHRcdFx0Y29uc3QgaXNWaXNpYmxlID0gY2hhcnQuZ2V0RGF0YVZpc2liaWxpdHkoaW5kZXgpO1xyXG5cdFx0XHRpZiAoIXBlcmNlbnRhZ2UgfHwgIWlzVmlzaWJsZSkge1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Y29uc3QgYmdDb2xvciA9IGRhdGFzZXQuYmFja2dyb3VuZENvbG9yW2luZGV4XTtcclxuXHRcdFx0Y29uc3QgdGV4dENvbG9yID0gZ2V0VGV4dENvbG9yKGJnQ29sb3IpO1xyXG5cclxuXHRcdFx0Y29uc3QgZm9udFNpemUgPSBNYXRoLm1heCgxMiwgTWF0aC5taW4ocGVyY2VudGFnZSAvIDIsIDE0KSk7XHJcblxyXG5cdFx0XHRjdHgudGV4dEFsaWduID0gJ2NlbnRlcic7XHJcblx0XHRcdGN0eC50ZXh0QmFzZWxpbmUgPSAnbWlkZGxlJztcclxuXHRcdFx0Y3R4LmZvbnQgPSBgbm9ybWFsICR7Zm9udFNpemV9cHggc2Fucy1zZXJpZmA7XHJcblx0XHRcdGN0eC5maWxsU3R5bGUgPSB0ZXh0Q29sb3I7XHJcblxyXG5cdFx0XHRjb25zdCB0ZXh0ID0gYCR7cGVyY2VudGFnZS50b0ZpeGVkKCl9JWA7XHJcblxyXG5cdFx0XHRjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9IGdldFRleHRNZXRyaWNzKGN0eCwgdGV4dCk7XHJcblxyXG5cdFx0XHRjb25zdCB0ZXh0SGVpZ2h0ID0gaGVpZ2h0IHx8IDEyO1xyXG5cdFx0XHRjb25zdCB0ZXh0V2lkdGggPSB3aWR0aCB8fCAzMDtcclxuXHJcblx0XHRcdGlmIChpc0hvcml6b250YWxDaGFydCkge1xyXG5cdFx0XHRcdGlmIChkYXRhUG9pbnQ/LndpZHRoID4gMCkge1xyXG5cdFx0XHRcdFx0Y29uc3QgdGV4dFBhZGRpbmcgPSAyMDtcclxuXHRcdFx0XHRcdGNvbnN0IG9mZnNldCA9IHRleHRQYWRkaW5nICsgdGV4dFdpZHRoIDw9IGRhdGFQb2ludC53aWR0aCA/IHRleHRXaWR0aCA6IHRleHRXaWR0aCA+PSBkYXRhUG9pbnQud2lkdGggPyAwIDogMTA7XHJcblxyXG5cdFx0XHRcdFx0Y29uc3QgeCA9IGRhdGFQb2ludC54ICsgKGlzSG9yaXpvbnRhbFJldmVyc2VkID8gb2Zmc2V0IDogLW9mZnNldCk7XHJcblx0XHRcdFx0XHRjdHguZmlsbFN0eWxlID0gZGF0YVBvaW50LndpZHRoIDw9IHRleHRXaWR0aCA/IGdldENvbG9yKCctLWNoYXJ0LXZhbHVlLWRlZmF1bHQtY29sb3InLCAnIzAwMCcpIDogdGV4dENvbG9yO1xyXG5cclxuXHRcdFx0XHRcdGlmIChwZXJjZW50YWdlKSB7XHJcblx0XHRcdFx0XHRcdGN0eC5maWxsVGV4dCh0ZXh0LCB4LCBkYXRhUG9pbnQueSk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdGlmIChkYXRhUG9pbnQ/LmhlaWdodCA+IDApIHtcclxuXHRcdFx0XHRcdGNvbnN0IHkgPSB0ZXh0SGVpZ2h0ID49IGRhdGFQb2ludC5oZWlnaHQgPyBkYXRhUG9pbnQueSAtIDEwIDogZGF0YVBvaW50LnkgKyAxMDtcclxuXHRcdFx0XHRcdGN0eC5maWxsU3R5bGUgPSB0ZXh0SGVpZ2h0ID49IGRhdGFQb2ludC5oZWlnaHQgPyBnZXRDb2xvcignLS1jaGFydC12YWx1ZS1kZWZhdWx0LWNvbG9yJywgJyMwMDAnKSA6IHRleHRDb2xvcjtcclxuXHRcdFx0XHRcdGlmICghcGVyY2VudGFnZSkge1xyXG5cdFx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRjdHguZmlsbFRleHQodGV4dCwgZGF0YVBvaW50LngsIHkpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRvdWdobnV0Q2hhcnRMYWJlbHMoY2hhcnQ6IENoYXJ0PENoYXJ0VHlwZSwgdW5rbm93biwgdW5rbm93bj4pIHtcclxuXHRjb25zdCB7IGN0eCwgZGF0YSB9ID0gY2hhcnQ7XHJcblxyXG5cdGNoYXJ0LmRhdGEuZGF0YXNldHMuZm9yRWFjaCgoZGF0YXNldCwgZGF0YXNldEluZGV4KSA9PiB7XHJcblx0XHRjb25zdCBtZXRhID0gY2hhcnQuZ2V0RGF0YXNldE1ldGEoZGF0YXNldEluZGV4KTtcclxuXHJcblx0XHRjb25zdCB0b3RhbFN1bSA9IChkYXRhc2V0LmRhdGEgYXMgW10pLnJlZHVjZSgoc3VtLCBjdXJyZW50VmFsdWUpID0+IHN1bSArIGN1cnJlbnRWYWx1ZSwgMCk7XHJcblxyXG5cdFx0bWV0YS5kYXRhLmZvckVhY2goKGFyYzogQXJjRWxlbWVudCwgaW5kZXgpID0+IHtcclxuXHRcdFx0aWYgKCFhcmMpIHJldHVybjtcclxuXHJcblx0XHRcdGNvbnN0IHBlcmNlbnRhZ2UgPSAoZGF0YXNldC5kYXRhW2luZGV4XSAvIHRvdGFsU3VtKSAqIDEwMDtcclxuXHRcdFx0Y29uc3QgaXNWaXNpYmxlID0gY2hhcnQuZ2V0RGF0YVZpc2liaWxpdHkoaW5kZXgpO1xyXG5cdFx0XHRpZiAoIXBlcmNlbnRhZ2UgfHwgIWlzVmlzaWJsZSkge1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Y29uc3QgbWlkQW5nbGUgPSAoYXJjLnN0YXJ0QW5nbGUgKyBhcmMuZW5kQW5nbGUpIC8gMjtcclxuXHRcdFx0Y29uc3QgeCA9IGFyYy54ICsgTWF0aC5jb3MobWlkQW5nbGUpICogKGFyYy5vdXRlclJhZGl1cyAvIDEuMik7XHJcblx0XHRcdGNvbnN0IHkgPSBhcmMueSArIE1hdGguc2luKG1pZEFuZ2xlKSAqIChhcmMub3V0ZXJSYWRpdXMgLyAxLjIpO1xyXG5cclxuXHRcdFx0Y29uc3QgZm9udFNpemUgPSBNYXRoLm1heCgxMiwgTWF0aC5taW4ocGVyY2VudGFnZSAvIDIsIDE0KSk7XHJcblx0XHRcdGNvbnN0IGJnQ29sb3IgPSBkYXRhc2V0LmJhY2tncm91bmRDb2xvcltpbmRleF0gfHwgJyMwMDAwMCc7XHJcblx0XHRcdHByZXBhcmVUZXh0KGN0eCwgZm9udFNpemUsIGJnQ29sb3IpO1xyXG5cdFx0XHRjdHguZmlsbFRleHQoYCR7cGVyY2VudGFnZS50b0ZpeGVkKCl9JWAsIHgsIHkpO1xyXG5cdFx0fSk7XHJcblx0fSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHBpZUNoYXJ0TGFiZWxzKGNoYXJ0OiBDaGFydDxDaGFydFR5cGUsIHVua25vd24sIHVua25vd24+KSB7XHJcblx0Y29uc3QgeyBjdHgsIGRhdGEgfSA9IGNoYXJ0O1xyXG5cclxuXHRjaGFydC5kYXRhLmRhdGFzZXRzLmZvckVhY2goKGRhdGFzZXQsIGRhdGFzZXRJbmRleCkgPT4ge1xyXG5cdFx0Y29uc3QgbWV0YSA9IGNoYXJ0LmdldERhdGFzZXRNZXRhKGRhdGFzZXRJbmRleCk7XHJcblxyXG5cdFx0Y29uc3QgdG90YWxTdW0gPSAoZGF0YXNldC5kYXRhIGFzIFtdKS5yZWR1Y2UoKHN1bSwgY3VycmVudFZhbHVlKSA9PiBzdW0gKyBjdXJyZW50VmFsdWUsIDApO1xyXG5cclxuXHRcdG1ldGEuZGF0YS5mb3JFYWNoKChhcmM6IEFyY0VsZW1lbnQsIGluZGV4KSA9PiB7XHJcblx0XHRcdGlmICghYXJjKSByZXR1cm47XHJcblxyXG5cdFx0XHRjb25zdCBwZXJjZW50YWdlID0gKGRhdGFzZXQuZGF0YVtpbmRleF0gLyB0b3RhbFN1bSkgKiAxMDA7XHJcblx0XHRcdGNvbnN0IGlzVmlzaWJsZSA9IGNoYXJ0LmdldERhdGFWaXNpYmlsaXR5KGluZGV4KTtcclxuXHRcdFx0aWYgKCFwZXJjZW50YWdlIHx8ICFpc1Zpc2libGUpIHtcclxuXHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGNvbnN0IG1pZEFuZ2xlID0gKGFyYy5zdGFydEFuZ2xlICsgYXJjLmVuZEFuZ2xlKSAvIDI7XHJcblxyXG5cdFx0XHRjb25zdCB4ID0gYXJjLnggKyBNYXRoLmNvcyhtaWRBbmdsZSkgKiAoYXJjLm91dGVyUmFkaXVzIC8gMS41KTtcclxuXHJcblx0XHRcdGNvbnN0IHkgPSBhcmMueSArIE1hdGguc2luKG1pZEFuZ2xlKSAqIChhcmMub3V0ZXJSYWRpdXMgLyAxLjUpO1xyXG5cclxuXHRcdFx0Y29uc3QgZm9udFNpemUgPSBNYXRoLm1heCgxMiwgTWF0aC5taW4ocGVyY2VudGFnZSAvIDIsIDE0KSk7XHJcblx0XHRcdGNvbnN0IGJnQ29sb3IgPSBkYXRhc2V0LmJhY2tncm91bmRDb2xvcltpbmRleF0gfHwgJyMwMDAwMCc7XHJcblx0XHRcdHByZXBhcmVUZXh0KGN0eCwgZm9udFNpemUsIGJnQ29sb3IpO1xyXG5cclxuXHRcdFx0Y3R4LmZpbGxUZXh0KGAke3BlcmNlbnRhZ2UudG9GaXhlZCgpfSVgLCB4LCB5KTtcclxuXHRcdH0pO1xyXG5cdH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0JhckNoYXJ0UmV2ZXJzZWQoY2hhcnQ6IENoYXJ0PENoYXJ0VHlwZSwgdW5rbm93biwgdW5rbm93bj4pIHtcclxuXHRjb25zdCBzY2FsZXMgPSBjaGFydC5vcHRpb25zLnNjYWxlcztcclxuXHJcblx0Y29uc3QgaXNWZXJ0aWNhbFJldmVyc2VkID0gc2NhbGVzPy55Py5yZXZlcnNlID09PSB0cnVlO1xyXG5cclxuXHRjb25zdCBpc0hvcml6b250YWxSZXZlcnNlZCA9IHNjYWxlcz8ueD8ucmV2ZXJzZSA9PT0gdHJ1ZTtcclxuXHJcblx0cmV0dXJuIHtcclxuXHRcdGlzVmVydGljYWxSZXZlcnNlZCxcclxuXHRcdGlzSG9yaXpvbnRhbFJldmVyc2VkXHJcblx0fTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0VGV4dE1ldHJpY3MoY3R4OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQsIHRleHQ6IHN0cmluZykge1xyXG5cdGNvbnN0IG1ldHJpY3MgPSBjdHgubWVhc3VyZVRleHQodGV4dCk7XHJcblxyXG5cdGNvbnN0IHRleHRIZWlnaHQgPSBtZXRyaWNzLmFjdHVhbEJvdW5kaW5nQm94QXNjZW50ICsgbWV0cmljcy5hY3R1YWxCb3VuZGluZ0JveERlc2NlbnQ7XHJcblx0cmV0dXJuIHtcclxuXHRcdGhlaWdodDogdGV4dEhlaWdodCxcclxuXHRcdHdpZHRoOiBtZXRyaWNzLndpZHRoXHJcblx0fTtcclxufVxyXG5cclxuZnVuY3Rpb24gcHJlcGFyZVRleHQoY3R4OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQsIGZvbnRTaXplOiBudW1iZXIsIGJnQ29sb3I6IHN0cmluZykge1xyXG5cdGNvbnN0IHRleHRDb2xvciA9IGdldFRleHRDb2xvcihiZ0NvbG9yIHx8IGdldENvbG9yKCctLWNoYXJ0LXZhbHVlLWRlZmF1bHQtY29sb3InLCAnIzAwMCcpKTtcclxuXHRjdHguZm9udCA9IGBib2xkICR7Zm9udFNpemV9cHggc2Fucy1zZXJpZmA7XHJcblx0Y3R4LnRleHRBbGlnbiA9ICdjZW50ZXInO1xyXG5cdGN0eC50ZXh0QmFzZWxpbmUgPSAnbWlkZGxlJztcclxuXHRjdHguZmlsbFN0eWxlID0gdGV4dENvbG9yO1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export const centerText = {
|
|
2
|
+
id: 'centerText',
|
|
3
|
+
beforeDatasetDraw: (chart, args, options) => {
|
|
4
|
+
var _a;
|
|
5
|
+
const { ctx, data, config } = chart;
|
|
6
|
+
if (!['doughnut', 'pie'].includes(config['type'])) {
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
const datasetMeta = chart.getDatasetMeta(0);
|
|
10
|
+
if (!data || !datasetMeta.data.length) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
ctx.save();
|
|
14
|
+
const xCoor = datasetMeta.data[0].x;
|
|
15
|
+
const yCoor = datasetMeta.data[0].y;
|
|
16
|
+
const totalData = data.datasets[0].data.reduce((sum, value) => sum + value, 0);
|
|
17
|
+
ctx.font = (options === null || options === void 0 ? void 0 : options.font) || 'bold 1rem sans-serif';
|
|
18
|
+
ctx.fillStyle = (options === null || options === void 0 ? void 0 : options.color) || 'black';
|
|
19
|
+
ctx.textBaseline = 'middle';
|
|
20
|
+
ctx.textAlign = 'center';
|
|
21
|
+
ctx.fillText((_a = options === null || options === void 0 ? void 0 : options.text) !== null && _a !== void 0 ? _a : `${totalData}`, xCoor, yCoor);
|
|
22
|
+
ctx.restore();
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG91Z2hudXQtY2VudGVyLXRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3JlcG9ydHMvY2hhcnRzL3BsdWdpbnMvZG91Z2hudXQtY2VudGVyLXRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUErQjtJQUNwRCxFQUFFLEVBQUUsWUFBWTtJQUNoQixpQkFBaUIsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsT0FBMEIsRUFBRSxFQUFFOztRQUM3RCxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFFcEMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRTtZQUNqRCxPQUFPO1NBQ1I7UUFFRCxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNyQyxPQUFPO1NBQ1I7UUFDRCxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFWCxNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQyxNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVwQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRS9FLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsSUFBSSxLQUFJLHNCQUFzQixDQUFDO1FBQ25ELEdBQUcsQ0FBQyxTQUFTLEdBQUcsQ0FBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsS0FBSyxLQUFJLE9BQU8sQ0FBQztRQUMxQyxHQUFHLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQztRQUM1QixHQUFHLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUN6QixHQUFHLENBQUMsUUFBUSxDQUFDLE1BQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLElBQUksbUNBQUksR0FBRyxTQUFTLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUQsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBRWhCLENBQUM7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGx1Z2luIH0gZnJvbSAnY2hhcnQuanMnO1xyXG5pbXBvcnQgeyBUZXh0Q2VudGVyT3B0aW9ucyB9IGZyb20gJy4uL21vZGVscyc7XHJcblxyXG5leHBvcnQgY29uc3QgY2VudGVyVGV4dDogUGx1Z2luPCdkb3VnaG51dCcgfCAncGllJz4gPSB7XHJcbiAgaWQ6ICdjZW50ZXJUZXh0JyxcclxuICBiZWZvcmVEYXRhc2V0RHJhdzogKGNoYXJ0LCBhcmdzLCBvcHRpb25zOiBUZXh0Q2VudGVyT3B0aW9ucykgPT4ge1xyXG4gICAgY29uc3QgeyBjdHgsIGRhdGEsIGNvbmZpZyB9ID0gY2hhcnQ7XHJcblxyXG4gICAgaWYgKCFbJ2RvdWdobnV0JywgJ3BpZSddLmluY2x1ZGVzKGNvbmZpZ1sndHlwZSddKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZGF0YXNldE1ldGEgPSBjaGFydC5nZXREYXRhc2V0TWV0YSgwKTtcclxuICAgIGlmICghZGF0YSB8fCAhZGF0YXNldE1ldGEuZGF0YS5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY3R4LnNhdmUoKTtcclxuXHJcbiAgICBjb25zdCB4Q29vciA9IGRhdGFzZXRNZXRhLmRhdGFbMF0ueDtcclxuICAgIGNvbnN0IHlDb29yID0gZGF0YXNldE1ldGEuZGF0YVswXS55O1xyXG5cclxuICAgIGNvbnN0IHRvdGFsRGF0YSA9IGRhdGEuZGF0YXNldHNbMF0uZGF0YS5yZWR1Y2UoKHN1bSwgdmFsdWUpID0+IHN1bSArIHZhbHVlLCAwKTtcclxuXHJcbiAgICBjdHguZm9udCA9IG9wdGlvbnM/LmZvbnQgfHwgJ2JvbGQgMXJlbSBzYW5zLXNlcmlmJztcclxuICAgIGN0eC5maWxsU3R5bGUgPSBvcHRpb25zPy5jb2xvciB8fCAnYmxhY2snO1xyXG4gICAgY3R4LnRleHRCYXNlbGluZSA9ICdtaWRkbGUnO1xyXG4gICAgY3R4LnRleHRBbGlnbiA9ICdjZW50ZXInO1xyXG4gICAgY3R4LmZpbGxUZXh0KG9wdGlvbnM/LnRleHQgPz8gYCR7dG90YWxEYXRhfWAsIHhDb29yLCB5Q29vcik7XHJcbiAgICBjdHgucmVzdG9yZSgpO1xyXG5cclxuICB9LFxyXG59O1xyXG4iXX0=
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export const doughnutEmptyState = {
|
|
2
|
+
id: 'emptyDoughnut',
|
|
3
|
+
afterDraw(chart, args, options) {
|
|
4
|
+
const { datasets } = chart.data;
|
|
5
|
+
if (!['doughnut', 'pie'].includes(chart.config['type'])) {
|
|
6
|
+
return;
|
|
7
|
+
}
|
|
8
|
+
const { color, lineWidth, radiusDecrease, backgroundColor, text, fontColor, showMessage, font } = options;
|
|
9
|
+
const hasData = datasets.some((set) => !![...set.data].filter(Boolean).length);
|
|
10
|
+
if (!hasData) {
|
|
11
|
+
const { chartArea: { left, top, right, bottom }, ctx } = chart;
|
|
12
|
+
const centerX = (left + right) / 2;
|
|
13
|
+
const centerY = (top + bottom) / 2;
|
|
14
|
+
const r = Math.min(right - left, bottom - top) / 2;
|
|
15
|
+
ctx.beginPath();
|
|
16
|
+
ctx.lineWidth = lineWidth || 1;
|
|
17
|
+
ctx.strokeStyle = color || 'rgba(0, 0, 0, 0.1)';
|
|
18
|
+
ctx.arc(centerX, centerY, r - (radiusDecrease || 0), 0, 2 * Math.PI);
|
|
19
|
+
ctx.fillStyle = backgroundColor || 'rgba(0, 0, 0, 0.03)';
|
|
20
|
+
ctx.fill();
|
|
21
|
+
ctx.stroke();
|
|
22
|
+
if (showMessage) {
|
|
23
|
+
// Draw the empty message
|
|
24
|
+
ctx.fillStyle = fontColor || '#000';
|
|
25
|
+
ctx.font = font || 'bold 1rem sans-serif';
|
|
26
|
+
ctx.textAlign = 'center';
|
|
27
|
+
ctx.textBaseline = 'middle';
|
|
28
|
+
ctx.fillText(text || 'No Data', centerX, centerY);
|
|
29
|
+
}
|
|
30
|
+
ctx.restore();
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG91Z2hudXQtZW1wdHktc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3JlcG9ydHMvY2hhcnRzL3BsdWdpbnMvZG91Z2hudXQtZW1wdHktc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQStCO0lBQzdELEVBQUUsRUFBRSxlQUFlO0lBQ25CLFNBQVMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLE9BQTZCO1FBQ25ELE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBRWhDLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFO1lBQ3hELE9BQU87U0FDUDtRQUVELE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBRTFHLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUvRSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2IsTUFBTSxFQUNMLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUN2QyxHQUFHLEVBQ0gsR0FBRyxLQUFLLENBQUM7WUFDVixNQUFNLE9BQU8sR0FBRyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbkMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ25DLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksRUFBRSxNQUFNLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRW5ELEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNoQixHQUFHLENBQUMsU0FBUyxHQUFHLFNBQVMsSUFBSSxDQUFDLENBQUM7WUFDL0IsR0FBRyxDQUFDLFdBQVcsR0FBRyxLQUFLLElBQUksb0JBQW9CLENBQUM7WUFDaEQsR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLGNBQWMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNyRSxHQUFHLENBQUMsU0FBUyxHQUFHLGVBQWUsSUFBSSxxQkFBcUIsQ0FBQztZQUN6RCxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDWCxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFYixJQUFJLFdBQVcsRUFBRTtnQkFDaEIseUJBQXlCO2dCQUN6QixHQUFHLENBQUMsU0FBUyxHQUFHLFNBQVMsSUFBSSxNQUFNLENBQUM7Z0JBQ3BDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxJQUFJLHNCQUFzQixDQUFDO2dCQUMxQyxHQUFHLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztnQkFDekIsR0FBRyxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUM7Z0JBQzVCLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7YUFDbEQ7WUFDRCxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDZDtJQUNGLENBQUM7Q0FDRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGx1Z2luIH0gZnJvbSAnY2hhcnQuanMnO1xyXG5pbXBvcnQgeyBFbXB0eURvdWdobnV0T3B0aW9ucyB9IGZyb20gJy4uL21vZGVscyc7XHJcblxyXG5leHBvcnQgY29uc3QgZG91Z2hudXRFbXB0eVN0YXRlOiBQbHVnaW48J2RvdWdobnV0JyB8ICdwaWUnPiA9IHtcclxuXHRpZDogJ2VtcHR5RG91Z2hudXQnLFxyXG5cdGFmdGVyRHJhdyhjaGFydCwgYXJncywgb3B0aW9uczogRW1wdHlEb3VnaG51dE9wdGlvbnMpIHtcclxuXHRcdGNvbnN0IHsgZGF0YXNldHMgfSA9IGNoYXJ0LmRhdGE7XHJcblxyXG5cdFx0aWYgKCFbJ2RvdWdobnV0JywgJ3BpZSddLmluY2x1ZGVzKGNoYXJ0LmNvbmZpZ1sndHlwZSddKSkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3QgeyBjb2xvciwgbGluZVdpZHRoLCByYWRpdXNEZWNyZWFzZSwgYmFja2dyb3VuZENvbG9yLCB0ZXh0LCBmb250Q29sb3IsIHNob3dNZXNzYWdlLCBmb250IH0gPSBvcHRpb25zO1xyXG5cclxuXHRcdGNvbnN0IGhhc0RhdGEgPSBkYXRhc2V0cy5zb21lKChzZXQpID0+ICEhWy4uLnNldC5kYXRhXS5maWx0ZXIoQm9vbGVhbikubGVuZ3RoKTtcclxuXHJcblx0XHRpZiAoIWhhc0RhdGEpIHtcclxuXHRcdFx0Y29uc3Qge1xyXG5cdFx0XHRcdGNoYXJ0QXJlYTogeyBsZWZ0LCB0b3AsIHJpZ2h0LCBib3R0b20gfSxcclxuXHRcdFx0XHRjdHhcclxuXHRcdFx0fSA9IGNoYXJ0O1xyXG5cdFx0XHRjb25zdCBjZW50ZXJYID0gKGxlZnQgKyByaWdodCkgLyAyO1xyXG5cdFx0XHRjb25zdCBjZW50ZXJZID0gKHRvcCArIGJvdHRvbSkgLyAyO1xyXG5cdFx0XHRjb25zdCByID0gTWF0aC5taW4ocmlnaHQgLSBsZWZ0LCBib3R0b20gLSB0b3ApIC8gMjtcclxuXHJcblx0XHRcdGN0eC5iZWdpblBhdGgoKTtcclxuXHRcdFx0Y3R4LmxpbmVXaWR0aCA9IGxpbmVXaWR0aCB8fCAxO1xyXG5cdFx0XHRjdHguc3Ryb2tlU3R5bGUgPSBjb2xvciB8fCAncmdiYSgwLCAwLCAwLCAwLjEpJztcclxuXHRcdFx0Y3R4LmFyYyhjZW50ZXJYLCBjZW50ZXJZLCByIC0gKHJhZGl1c0RlY3JlYXNlIHx8IDApLCAwLCAyICogTWF0aC5QSSk7XHJcblx0XHRcdGN0eC5maWxsU3R5bGUgPSBiYWNrZ3JvdW5kQ29sb3IgfHwgJ3JnYmEoMCwgMCwgMCwgMC4wMyknO1xyXG5cdFx0XHRjdHguZmlsbCgpO1xyXG5cdFx0XHRjdHguc3Ryb2tlKCk7XHJcblxyXG5cdFx0XHRpZiAoc2hvd01lc3NhZ2UpIHtcclxuXHRcdFx0XHQvLyBEcmF3IHRoZSBlbXB0eSBtZXNzYWdlXHJcblx0XHRcdFx0Y3R4LmZpbGxTdHlsZSA9IGZvbnRDb2xvciB8fCAnIzAwMCc7XHJcblx0XHRcdFx0Y3R4LmZvbnQgPSBmb250IHx8ICdib2xkIDFyZW0gc2Fucy1zZXJpZic7XHJcblx0XHRcdFx0Y3R4LnRleHRBbGlnbiA9ICdjZW50ZXInO1xyXG5cdFx0XHRcdGN0eC50ZXh0QmFzZWxpbmUgPSAnbWlkZGxlJztcclxuXHRcdFx0XHRjdHguZmlsbFRleHQodGV4dCB8fCAnTm8gRGF0YScsIGNlbnRlclgsIGNlbnRlclkpO1xyXG5cdFx0XHR9XHJcblx0XHRcdGN0eC5yZXN0b3JlKCk7XHJcblx0XHR9XHJcblx0fVxyXG59O1xyXG4iXX0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from './doughnut-center-text';
|
|
2
|
+
export * from './doughnut-empty-state';
|
|
3
|
+
export * from './legend-margin';
|
|
4
|
+
export * from './scrollable-legends';
|
|
5
|
+
export * from './data-labels';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3JlcG9ydHMvY2hhcnRzL3BsdWdpbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZG91Z2hudXQtY2VudGVyLXRleHQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2RvdWdobnV0LWVtcHR5LXN0YXRlJztcclxuZXhwb3J0ICogZnJvbSAnLi9sZWdlbmQtbWFyZ2luJztcclxuZXhwb3J0ICogZnJvbSAnLi9zY3JvbGxhYmxlLWxlZ2VuZHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2RhdGEtbGFiZWxzJztcclxuIl19
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export const legendMargin = {
|
|
2
|
+
id: 'legendMargin',
|
|
3
|
+
afterInit(chart, args, options) {
|
|
4
|
+
const { legend } = chart;
|
|
5
|
+
const originalFit = legend.fit;
|
|
6
|
+
const margin = (options === null || options === void 0 ? void 0 : options.margin) || 0;
|
|
7
|
+
legend.fit = function fit() {
|
|
8
|
+
if (originalFit) {
|
|
9
|
+
originalFit.bind(this);
|
|
10
|
+
}
|
|
11
|
+
this.height += margin;
|
|
12
|
+
return;
|
|
13
|
+
};
|
|
14
|
+
},
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVnZW5kLW1hcmdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvcmVwb3J0cy9jaGFydHMvcGx1Z2lucy9sZWdlbmQtbWFyZ2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBc0I7SUFDN0MsRUFBRSxFQUFFLGNBQWM7SUFDbEIsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsT0FBcUI7UUFDMUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQztRQUN6QixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDO1FBQy9CLE1BQU0sTUFBTSxHQUFHLENBQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLE1BQU0sS0FBSSxDQUFDLENBQUM7UUFDcEMsTUFBTSxDQUFDLEdBQUcsR0FBRyxTQUFTLEdBQUc7WUFDdkIsSUFBSSxXQUFXLEVBQUU7Z0JBQ2YsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUN4QjtZQUNELElBQUksQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDO1lBQ3RCLE9BQU87UUFDVCxDQUFDLENBQUM7SUFDSixDQUFDO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYXJ0VHlwZSwgUGx1Z2luIH0gZnJvbSAnY2hhcnQuanMnO1xyXG5pbXBvcnQgeyBMZWdlbmRNYXJnaW4gfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IGxlZ2VuZE1hcmdpbjogUGx1Z2luPENoYXJ0VHlwZT4gPSB7XHJcbiAgaWQ6ICdsZWdlbmRNYXJnaW4nLFxyXG4gIGFmdGVySW5pdChjaGFydCwgYXJncywgb3B0aW9uczogTGVnZW5kTWFyZ2luKSB7XHJcbiAgICBjb25zdCB7IGxlZ2VuZCB9ID0gY2hhcnQ7XHJcbiAgICBjb25zdCBvcmlnaW5hbEZpdCA9IGxlZ2VuZC5maXQ7XHJcbiAgICBjb25zdCBtYXJnaW4gPSBvcHRpb25zPy5tYXJnaW4gfHwgMDtcclxuICAgIGxlZ2VuZC5maXQgPSBmdW5jdGlvbiBmaXQoKSB7XHJcbiAgICAgIGlmIChvcmlnaW5hbEZpdCkge1xyXG4gICAgICAgIG9yaWdpbmFsRml0LmJpbmQodGhpcyk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5oZWlnaHQgKz0gbWFyZ2luO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9O1xyXG4gIH0sXHJcbn07XHJcbiJdfQ==
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
export const scrollableLegends = {
|
|
2
|
+
id: 'scrollableLegends',
|
|
3
|
+
beforeInit(chart, args, options) {
|
|
4
|
+
var _a;
|
|
5
|
+
if ((_a = chart.options.plugins) === null || _a === void 0 ? void 0 : _a.legend) {
|
|
6
|
+
chart.options.plugins.legend.display = false;
|
|
7
|
+
}
|
|
8
|
+
},
|
|
9
|
+
afterUpdate(chart, args, options) {
|
|
10
|
+
const { containerClass = 'chart-legends' } = options;
|
|
11
|
+
const { canvas } = chart;
|
|
12
|
+
function createLabel(item) {
|
|
13
|
+
const div = document.createElement('div');
|
|
14
|
+
div.className = `${containerClass}__legend`;
|
|
15
|
+
div.onclick = () => {
|
|
16
|
+
const { type } = chart.config;
|
|
17
|
+
if (type === 'pie' || type === 'doughnut') {
|
|
18
|
+
chart.toggleDataVisibility(item.index);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
chart.setDatasetVisibility(item.datasetIndex, !chart.isDatasetVisible(item.datasetIndex));
|
|
22
|
+
}
|
|
23
|
+
chart.update();
|
|
24
|
+
};
|
|
25
|
+
const boxSpan = document.createElement('small');
|
|
26
|
+
boxSpan.className = `${containerClass}__box`;
|
|
27
|
+
boxSpan.style.background = `${item.fillStyle}`;
|
|
28
|
+
boxSpan.style.borderColor = `${item.strokeStyle}`;
|
|
29
|
+
boxSpan.style.borderWidth = item.lineWidth + 'px';
|
|
30
|
+
const textContainer = document.createElement('span');
|
|
31
|
+
textContainer.className = `${containerClass}__text`;
|
|
32
|
+
textContainer.style.color = `${item.fontColor}`;
|
|
33
|
+
textContainer.style.textDecoration = item.hidden ? 'line-through' : '';
|
|
34
|
+
const text = document.createTextNode(item.text);
|
|
35
|
+
textContainer.appendChild(text);
|
|
36
|
+
div.appendChild(boxSpan);
|
|
37
|
+
div.appendChild(textContainer);
|
|
38
|
+
return div;
|
|
39
|
+
}
|
|
40
|
+
if (canvas) {
|
|
41
|
+
const parentElement = canvas.parentElement.parentElement;
|
|
42
|
+
const items = chart.options.plugins.legend.labels.generateLabels(chart);
|
|
43
|
+
let container = parentElement.querySelector(`.${containerClass}`);
|
|
44
|
+
if (!container) {
|
|
45
|
+
container = document.createElement('div');
|
|
46
|
+
container.className = containerClass;
|
|
47
|
+
container.id = 'chart-legends';
|
|
48
|
+
parentElement.appendChild(container);
|
|
49
|
+
}
|
|
50
|
+
container.innerHTML = ``;
|
|
51
|
+
const labels = items.filter((itm) => !!itm.text);
|
|
52
|
+
if (labels.length > 0) {
|
|
53
|
+
container.classList.add('has-items');
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
container.classList.remove('has-items');
|
|
57
|
+
}
|
|
58
|
+
items.forEach((item) => {
|
|
59
|
+
if (!item.text)
|
|
60
|
+
return;
|
|
61
|
+
const div = createLabel(item);
|
|
62
|
+
container.appendChild(div);
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYWJsZS1sZWdlbmRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9yZXBvcnRzL2NoYXJ0cy9wbHVnaW5zL3Njcm9sbGFibGUtbGVnZW5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBc0I7SUFDbkQsRUFBRSxFQUFFLG1CQUFtQjtJQUN2QixVQUFVLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxPQUFpQzs7UUFDeEQsSUFBSSxNQUFBLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTywwQ0FBRSxNQUFNLEVBQUU7WUFDbEMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7U0FDN0M7SUFDRixDQUFDO0lBQ0QsV0FBVyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsT0FBaUM7UUFDekQsTUFBTSxFQUFFLGNBQWMsR0FBRyxlQUFlLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFFckQsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQztRQUV6QixTQUFTLFdBQVcsQ0FBQyxJQUFnQjtZQUNwQyxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzFDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsR0FBRyxjQUFjLFVBQVUsQ0FBQztZQUM1QyxHQUFHLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRTtnQkFDbEIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQyxNQUE0QixDQUFDO2dCQUNwRCxJQUFJLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLFVBQVUsRUFBRTtvQkFDMUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FB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QU0sR0FBRyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDOUIsU0FBUyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM1QixDQUFDLENBQUMsQ0FBQztTQUNIO0lBQ0YsQ0FBQztDQUNELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFydFR5cGUsIExlZ2VuZEl0ZW0sIFBsdWdpbiB9IGZyb20gJ2NoYXJ0LmpzJztcclxuaW1wb3J0IHsgQ2hhcnRDb25maWd1cmF0aW9uIH0gZnJvbSAnY2hhcnQuanMvZGlzdC90eXBlcyc7XHJcblxyXG5leHBvcnQgdHlwZSBTY3JvbGxhYmxlTGVnZW5kc09wdGlvbnMgPSB7IGNvbnRhaW5lckNsYXNzPzogc3RyaW5nOyBhY3RpdmU6IGJvb2xlYW4gfTtcclxuXHJcbmV4cG9ydCBjb25zdCBzY3JvbGxhYmxlTGVnZW5kczogUGx1Z2luPENoYXJ0VHlwZT4gPSB7XHJcblx0aWQ6ICdzY3JvbGxhYmxlTGVnZW5kcycsXHJcblx0YmVmb3JlSW5pdChjaGFydCwgYXJncywgb3B0aW9uczogU2Nyb2xsYWJsZUxlZ2VuZHNPcHRpb25zKSB7XHJcblx0XHRpZiAoY2hhcnQub3B0aW9ucy5wbHVnaW5zPy5sZWdlbmQpIHtcclxuXHRcdFx0Y2hhcnQub3B0aW9ucy5wbHVnaW5zLmxlZ2VuZC5kaXNwbGF5ID0gZmFsc2U7XHJcblx0XHR9XHJcblx0fSxcclxuXHRhZnRlclVwZGF0ZShjaGFydCwgYXJncywgb3B0aW9uczogU2Nyb2xsYWJsZUxlZ2VuZHNPcHRpb25zKSB7XHJcblx0XHRjb25zdCB7IGNvbnRhaW5lckNsYXNzID0gJ2NoYXJ0LWxlZ2VuZHMnIH0gPSBvcHRpb25zO1xyXG5cclxuXHRcdGNvbnN0IHsgY2FudmFzIH0gPSBjaGFydDtcclxuXHJcblx0XHRmdW5jdGlvbiBjcmVhdGVMYWJlbChpdGVtOiBMZWdlbmRJdGVtKSB7XHJcblx0XHRcdGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG5cdFx0XHRkaXYuY2xhc3NOYW1lID0gYCR7Y29udGFpbmVyQ2xhc3N9X19sZWdlbmRgO1xyXG5cdFx0XHRkaXYub25jbGljayA9ICgpID0+IHtcclxuXHRcdFx0XHRjb25zdCB7IHR5cGUgfSA9IGNoYXJ0LmNvbmZpZyBhcyBDaGFydENvbmZpZ3VyYXRpb247XHJcblx0XHRcdFx0aWYgKHR5cGUgPT09ICdwaWUnIHx8IHR5cGUgPT09ICdkb3VnaG51dCcpIHtcclxuXHRcdFx0XHRcdGNoYXJ0LnRvZ2dsZURhdGFWaXNpYmlsaXR5KGl0ZW0uaW5kZXgpO1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRjaGFydC5zZXREYXRhc2V0VmlzaWJpbGl0eShpdGVtLmRhdGFzZXRJbmRleCwgIWNoYXJ0LmlzRGF0YXNldFZpc2libGUoaXRlbS5kYXRhc2V0SW5kZXgpKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0Y2hhcnQudXBkYXRlKCk7XHJcblx0XHRcdH07XHJcblxyXG5cdFx0XHRjb25zdCBib3hTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc21hbGwnKSBhcyBIVE1MU3BhbkVsZW1lbnQ7XHJcblx0XHRcdGJveFNwYW4uY2xhc3NOYW1lID0gYCR7Y29udGFpbmVyQ2xhc3N9X19ib3hgO1xyXG5cdFx0XHRib3hTcGFuLnN0eWxlLmJhY2tncm91bmQgPSBgJHtpdGVtLmZpbGxTdHlsZX1gO1xyXG5cdFx0XHRib3hTcGFuLnN0eWxlLmJvcmRlckNvbG9yID0gYCR7aXRlbS5zdHJva2VTdHlsZX1gO1xyXG5cdFx0XHRib3hTcGFuLnN0eWxlLmJvcmRlcldpZHRoID0gaXRlbS5saW5lV2lkdGggKyAncHgnO1xyXG5cclxuXHRcdFx0Y29uc3QgdGV4dENvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcclxuXHRcdFx0dGV4dENvbnRhaW5lci5jbGFzc05hbWUgPSBgJHtjb250YWluZXJDbGFzc31fX3RleHRgO1xyXG5cdFx0XHR0ZXh0Q29udGFpbmVyLnN0eWxlLmNvbG9yID0gYCR7aXRlbS5mb250Q29sb3J9YDtcclxuXHRcdFx0dGV4dENvbnRhaW5lci5zdHlsZS50ZXh0RGVjb3JhdGlvbiA9IGl0ZW0uaGlkZGVuID8gJ2xpbmUtdGhyb3VnaCcgOiAnJztcclxuXHRcdFx0Y29uc3QgdGV4dCA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGl0ZW0udGV4dCk7XHJcblx0XHRcdHRleHRDb250YWluZXIuYXBwZW5kQ2hpbGQodGV4dCk7XHJcblxyXG5cdFx0XHRkaXYuYXBwZW5kQ2hpbGQoYm94U3Bhbik7XHJcblx0XHRcdGRpdi5hcHBlbmRDaGlsZCh0ZXh0Q29udGFpbmVyKTtcclxuXHRcdFx0cmV0dXJuIGRpdjtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoY2FudmFzKSB7XHJcblx0XHRcdGNvbnN0IHBhcmVudEVsZW1lbnQgPSBjYW52YXMucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50O1xyXG5cdFx0XHRjb25zdCBpdGVtcyA9IGNoYXJ0Lm9wdGlvbnMucGx1Z2lucy5sZWdlbmQubGFiZWxzLmdlbmVyYXRlTGFiZWxzKGNoYXJ0KTtcclxuXHRcdFx0bGV0IGNvbnRhaW5lciA9IHBhcmVudEVsZW1lbnQucXVlcnlTZWxlY3RvcihgLiR7Y29udGFpbmVyQ2xhc3N9YCkgYXMgSFRNTERpdkVsZW1lbnQ7XHJcblx0XHRcdGlmICghY29udGFpbmVyKSB7XHJcblx0XHRcdFx0Y29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcblx0XHRcdFx0Y29udGFpbmVyLmNsYXNzTmFtZSA9IGNvbnRhaW5lckNsYXNzO1xyXG5cdFx0XHRcdGNvbnRhaW5lci5pZCA9ICdjaGFydC1sZWdlbmRzJztcclxuXHRcdFx0XHRwYXJlbnRFbGVtZW50LmFwcGVuZENoaWxkKGNvbnRhaW5lcik7XHJcblx0XHRcdH1cclxuXHRcdFx0Y29udGFpbmVyLmlubmVySFRNTCA9IGBgO1xyXG5cdFx0XHRjb25zdCBsYWJlbHMgPSBpdGVtcy5maWx0ZXIoKGl0bSkgPT4gISFpdG0udGV4dCk7XHJcblx0XHRcdGlmIChsYWJlbHMubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdGNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCdoYXMtaXRlbXMnKTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRjb250YWluZXIuY2xhc3NMaXN0LnJlbW92ZSgnaGFzLWl0ZW1zJyk7XHJcblx0XHRcdH1cclxuXHRcdFx0aXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG5cdFx0XHRcdGlmICghaXRlbS50ZXh0KSByZXR1cm47XHJcblx0XHRcdFx0Y29uc3QgZGl2ID0gY3JlYXRlTGFiZWwoaXRlbSk7XHJcblx0XHRcdFx0Y29udGFpbmVyLmFwcGVuZENoaWxkKGRpdik7XHJcblx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cdH1cclxufTtcclxuIl19
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './chart.const';
|
|
2
|
+
export * from './chart.token';
|
|
3
|
+
export * from './charts.module';
|
|
4
|
+
export * from './components';
|
|
5
|
+
export * as ChartDefaults from './defaults';
|
|
6
|
+
export * from './models';
|
|
7
|
+
export * as ChartPlugins from './plugins';
|
|
8
|
+
export * from './services';
|
|
9
|
+
export * as ChartUtils from './utility';
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvcmVwb3J0cy9jaGFydHMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLE9BQU8sS0FBSyxhQUFhLE1BQU0sWUFBWSxDQUFDO0FBQzVDLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLE9BQU8sS0FBSyxZQUFZLE1BQU0sV0FBVyxDQUFDO0FBQzFDLGNBQWMsWUFBWSxDQUFDO0FBQzNCLE9BQU8sS0FBSyxVQUFVLE1BQU0sV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jaGFydC5jb25zdCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY2hhcnQudG9rZW4nO1xyXG5leHBvcnQgKiBmcm9tICcuL2NoYXJ0cy5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMnO1xyXG5leHBvcnQgKiBhcyBDaGFydERlZmF1bHRzIGZyb20gJy4vZGVmYXVsdHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL21vZGVscyc7XHJcbmV4cG9ydCAqIGFzIENoYXJ0UGx1Z2lucyBmcm9tICcuL3BsdWdpbnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzJztcclxuZXhwb3J0ICogYXMgQ2hhcnRVdGlscyBmcm9tICcuL3V0aWxpdHknO1xyXG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './statistic.service';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3JlcG9ydHMvY2hhcnRzL3NlcnZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3N0YXRpc3RpYy5zZXJ2aWNlJztcclxuIl19
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import _ from 'lodash';
|
|
3
|
+
import { iif, of, throwError } from 'rxjs';
|
|
4
|
+
import { catchError, map, retry, tap } from 'rxjs/operators';
|
|
5
|
+
import { BaseService } from '../../../../shared/services';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class StatisticService extends BaseService {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this._cache = new Map();
|
|
11
|
+
}
|
|
12
|
+
prepareConfig(data) {
|
|
13
|
+
this.translatePrefix = data === null || data === void 0 ? void 0 : data.translatePrefix;
|
|
14
|
+
this.bindValue = data === null || data === void 0 ? void 0 : data.bindValue;
|
|
15
|
+
}
|
|
16
|
+
getStatistic({ pageProvider, headers, params, ignoreCache }) {
|
|
17
|
+
const key = this._generateKey({ pageProvider, headers, params });
|
|
18
|
+
const _getDataFromRemote$ = this.query(pageProvider, params, headers).pipe(tap((data) => {
|
|
19
|
+
this._cache.set(key, data);
|
|
20
|
+
}));
|
|
21
|
+
return iif(() => this._cache.has(key) && !ignoreCache, of(this._cache.get(key)), _getDataFromRemote$);
|
|
22
|
+
}
|
|
23
|
+
prepareStatistic(config, params = {}) {
|
|
24
|
+
var _a;
|
|
25
|
+
const hasOnQueryMethod = (config === null || config === void 0 ? void 0 : config.onQuery) && _.isFunction(config.onQuery);
|
|
26
|
+
let _response = null;
|
|
27
|
+
return this.getStatistic({
|
|
28
|
+
params: hasOnQueryMethod ? config === null || config === void 0 ? void 0 : config.onQuery(params) : params,
|
|
29
|
+
pageProvider: config.pageProvider,
|
|
30
|
+
headers: config === null || config === void 0 ? void 0 : config.headers,
|
|
31
|
+
ignoreCache: config === null || config === void 0 ? void 0 : config.ignoreCache,
|
|
32
|
+
}).pipe(retry((_a = config === null || config === void 0 ? void 0 : config.retryCount) !== null && _a !== void 0 ? _a : 2), catchError((error) => {
|
|
33
|
+
if (config === null || config === void 0 ? void 0 : config.onError) {
|
|
34
|
+
config === null || config === void 0 ? void 0 : config.onError(error);
|
|
35
|
+
}
|
|
36
|
+
return throwError(() => error);
|
|
37
|
+
}), map((res) => {
|
|
38
|
+
_response = res;
|
|
39
|
+
return _.get(res, config.propertyPath);
|
|
40
|
+
}), map((rawData) => {
|
|
41
|
+
if (config === null || config === void 0 ? void 0 : config.transformData) {
|
|
42
|
+
return config === null || config === void 0 ? void 0 : config.transformData(rawData, _response);
|
|
43
|
+
}
|
|
44
|
+
return rawData.map((item) => {
|
|
45
|
+
return {
|
|
46
|
+
key: this._getLabel(item, config),
|
|
47
|
+
docCount: this._getValue(item, config),
|
|
48
|
+
};
|
|
49
|
+
});
|
|
50
|
+
}));
|
|
51
|
+
}
|
|
52
|
+
_generateKey({ pageProvider = '', headers = {}, params = {}, }) {
|
|
53
|
+
const stringifySorted = (obj) => JSON.stringify(obj, Object.keys(obj).sort());
|
|
54
|
+
const rawKey = `${pageProvider}_${stringifySorted(headers)}_${stringifySorted(params)}`;
|
|
55
|
+
return btoa(encodeURIComponent(rawKey));
|
|
56
|
+
}
|
|
57
|
+
_getLabel(item, config) {
|
|
58
|
+
const translate = (key) => this.translateService.instant(`${this.translatePrefix}.${key}`);
|
|
59
|
+
const label = (config === null || config === void 0 ? void 0 : config.bindLabel) ? _.get(item, config.bindLabel) : null;
|
|
60
|
+
return label || translate(item.key);
|
|
61
|
+
}
|
|
62
|
+
_getValue(item, config) {
|
|
63
|
+
const bindValue = (config === null || config === void 0 ? void 0 : config.bindValue) || this.bindValue;
|
|
64
|
+
return bindValue ? _.get(item, bindValue) : item.docCount;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
StatisticService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: StatisticService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
68
|
+
StatisticService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: StatisticService, providedIn: 'root' });
|
|
69
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: StatisticService, decorators: [{
|
|
70
|
+
type: Injectable,
|
|
71
|
+
args: [{
|
|
72
|
+
providedIn: 'root',
|
|
73
|
+
}]
|
|
74
|
+
}] });
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGlzdGljLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3JlcG9ydHMvY2hhcnRzL3NlcnZpY2VzL3N0YXRpc3RpYy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQVcxRCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsV0FBVztJQUhqRDs7UUFJVSxXQUFNLEdBQUcsSUFBSSxHQUFHLEVBQWdDLENBQUM7S0E2RjFEO0lBeEZDLGFBQWEsQ0FBQyxJQUFzRDtRQUNsRSxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxlQUFlLENBQUM7UUFDN0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsU0FBUyxDQUFDO0lBQ25DLENBQUM7SUFFRCxZQUFZLENBQUMsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQWU7UUFDdEUsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUVqRSxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxL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LE1BQU07NEZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7IGlpZiwgT2JzZXJ2YWJsZSwgb2YsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCByZXRyeSwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBOdXhlb1BhZ2luYXRpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvbW9kZWxzJztcclxuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvc2VydmljZXMnO1xyXG5pbXBvcnQgeyBTdGF0aXN0aWNCdWNrZXQsIFN0YXRpc3RpY1JlcXVlc3RDb25maWcgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5cclxudHlwZSBRdWVyeVBhcmFtcyA9IFBpY2s8XHJcbiAgU3RhdGlzdGljUmVxdWVzdENvbmZpZyxcclxuICAncGFnZVByb3ZpZGVyJyB8ICdoZWFkZXJzJyB8ICdwYXJhbXMnIHwgJ2lnbm9yZUNhY2hlJ1xyXG4+O1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFN0YXRpc3RpY1NlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBfY2FjaGUgPSBuZXcgTWFwPHN0cmluZywgTnV4ZW9QYWdpbmF0aW9uPGFueT4+KCk7XHJcblxyXG4gIHByaXZhdGUgdHJhbnNsYXRlUHJlZml4OiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBiaW5kVmFsdWU6IHN0cmluZztcclxuXHJcbiAgcHJlcGFyZUNvbmZpZyhkYXRhOiB7IHRyYW5zbGF0ZVByZWZpeD86IHN0cmluZzsgYmluZFZhbHVlPzogc3RyaW5nIH0pIHtcclxuICAgIHRoaXMudHJhbnNsYXRlUHJlZml4ID0gZGF0YT8udHJhbnNsYXRlUHJlZml4O1xyXG4gICAgdGhpcy5iaW5kVmFsdWUgPSBkYXRhPy5iaW5kVmFsdWU7XHJcbiAgfVxyXG5cclxuICBnZXRTdGF0aXN0aWMoeyBwYWdlUHJvdmlkZXIsIGhlYWRlcnMsIHBhcmFtcywgaWdub3JlQ2FjaGUgfTogUXVlcnlQYXJhbXMpIHtcclxuICAgIGNvbnN0IGtleSA9IHRoaXMuX2dlbmVyYXRlS2V5KHsgcGFnZVByb3ZpZGVyLCBoZWFkZXJzLCBwYXJhbXMgfSk7XHJcblxyXG4gICAgY29uc3QgX2dldERhdGFGcm9tUmVtb3RlJCA9IHRoaXMucXVlcnk8TnV4ZW9QYWdpbmF0aW9uPGFueT4+KFxyXG4gICAgICBwYWdlUHJvdmlkZXIsXHJcbiAgICAgIHBhcmFtcyxcclxuICAgICAgaGVhZGVyc1xyXG4gICAgKS5waXBlKFxyXG4gICAgICB0YXAoKGRhdGEpID0+IHtcclxuICAgICAgICB0aGlzLl9jYWNoZS5zZXQoa2V5LCBkYXRhKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcblxyXG4gICAgcmV0dXJuIGlpZihcclxuICAgICAgKCkgPT4gdGhpcy5fY2FjaGUuaGFzKGtleSkgJiYgIWlnbm9yZUNhY2hlLFxyXG4gICAgICBvZih0aGlzLl9jYWNoZS5nZXQoa2V5KSksXHJcbiAgICAgIF9nZXREYXRhRnJvbVJlbW90ZSRcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcmVwYXJlU3RhdGlzdGljKFxyXG4gICAgY29uZmlnOiBTdGF0aXN0aWNSZXF1ZXN0Q29uZmlnLFxyXG4gICAgcGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge31cclxuICApOiBPYnNlcnZhYmxlPFN0YXRpc3RpY0J1Y2tldFtdPiB7XHJcbiAgICBjb25zdCBoYXNPblF1ZXJ5TWV0aG9kID0gY29uZmlnPy5vblF1ZXJ5ICYmIF8uaXNGdW5jdGlvbihjb25maWcub25RdWVyeSk7XHJcbiAgICBsZXQgX3Jlc3BvbnNlID0gbnVsbDtcclxuICAgIHJldHVybiB0aGlzLmdldFN0YXRpc3RpYyh7XHJcbiAgICAgIHBhcmFtczogaGFzT25RdWVyeU1ldGhvZCA/IGNvbmZpZz8ub25RdWVyeShwYXJhbXMpIDogcGFyYW1zLFxyXG4gICAgICBwYWdlUHJvdmlkZXI6IGNvbmZpZy5wYWdlUHJvdmlkZXIsXHJcbiAgICAgIGhlYWRlcnM6IGNvbmZpZz8uaGVhZGVycyxcclxuICAgICAgaWdub3JlQ2FjaGU6IGNvbmZpZz8uaWdub3JlQ2FjaGUsXHJcbiAgICB9KS5waXBlKFxyXG4gICAgICByZXRyeShjb25maWc/LnJldHJ5Q291bnQgPz8gMiksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBFcnJvcikgPT4ge1xyXG4gICAgICAgIGlmIChjb25maWc/Lm9uRXJyb3IpIHtcclxuICAgICAgICAgIGNvbmZpZz8ub25FcnJvcihlcnJvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKTtcclxuICAgICAgfSksXHJcbiAgICAgIG1hcCgocmVzKSA9PiB7XHJcbiAgICAgICAgX3Jlc3BvbnNlID0gcmVzO1xyXG4gICAgICAgIHJldHVybiBfLmdldChyZXMsIGNvbmZpZy5wcm9wZXJ0eVBhdGgpIGFzIFN0YXRpc3RpY0J1Y2tldFtdO1xyXG4gICAgICB9KSxcclxuICAgICAgbWFwKChyYXdEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKGNvbmZpZz8udHJhbnNmb3JtRGF0YSkge1xyXG4gICAgICAgICAgcmV0dXJuIGNvbmZpZz8udHJhbnNmb3JtRGF0YShyYXdEYXRhLCBfcmVzcG9uc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmF3RGF0YS5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGtleTogdGhpcy5fZ2V0TGFiZWwoaXRlbSwgY29uZmlnKSxcclxuICAgICAgICAgICAgZG9jQ291bnQ6IHRoaXMuX2dldFZhbHVlKGl0ZW0sIGNvbmZpZyksXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dlbmVyYXRlS2V5KHtcclxuICAgIHBhZ2VQcm92aWRlciA9ICcnLFxyXG4gICAgaGVhZGVycyA9IHt9LFxyXG4gICAgcGFyYW1zID0ge30sXHJcbiAgfTogUXVlcnlQYXJhbXMpOiBzdHJpbmcge1xyXG4gICAgY29uc3Qgc3RyaW5naWZ5U29ydGVkID0gKG9iajogYW55KTogc3RyaW5nID0+XHJcbiAgICAgIEpTT04uc3RyaW5naWZ5KG9iaiwgT2JqZWN0LmtleXMob2JqKS5zb3J0KCkpO1xyXG5cclxuICAgIGNvbnN0IHJhd0tleSA9IGAke3BhZ2VQcm92aWRlcn1fJHtzdHJpbmdpZnlTb3J0ZWQoaGVhZGVycyl9XyR7c3RyaW5naWZ5U29ydGVkKFxyXG4gICAgICBwYXJhbXNcclxuICAgICl9YDtcclxuXHJcbiAgICByZXR1cm4gYnRvYShlbmNvZGVVUklDb21wb25lbnQocmF3S2V5KSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXRMYWJlbChpdGVtOiBTdGF0aXN0aWNCdWNrZXQsIGNvbmZpZzogU3RhdGlzdGljUmVxdWVzdENvbmZpZyk6IGFueSB7XHJcbiAgICBjb25zdCB0cmFuc2xhdGUgPSAoa2V5OiBzdHJpbmcpID0+XHJcbiAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGAke3RoaXMudHJhbnNsYXRlUHJlZml4fS4ke2tleX1gKTtcclxuICAgIGNvbnN0IGxhYmVsID0gY29uZmlnPy5iaW5kTGFiZWwgPyBfLmdldChpdGVtLCBjb25maWcuYmluZExhYmVsKSA6IG51bGw7XHJcbiAgICByZXR1cm4gbGFiZWwgfHwgdHJhbnNsYXRlKGl0ZW0ua2V5KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dldFZhbHVlKGl0ZW06IFN0YXRpc3RpY0J1Y2tldCwgY29uZmlnOiBTdGF0aXN0aWNSZXF1ZXN0Q29uZmlnKTogYW55IHtcclxuICAgIGNvbnN0IGJpbmRWYWx1ZSA9IGNvbmZpZz8uYmluZFZhbHVlIHx8IHRoaXMuYmluZFZhbHVlO1xyXG4gICAgcmV0dXJuIGJpbmRWYWx1ZSA/IF8uZ2V0KGl0ZW0sIGJpbmRWYWx1ZSkgOiBpdGVtLmRvY0NvdW50O1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import colorLib from '@kurkle/color';
|
|
2
|
+
export function transparentize(value, opacity) {
|
|
3
|
+
var alpha = opacity === undefined ? 0.5 : 1 - opacity;
|
|
4
|
+
return colorLib(value).alpha(alpha).rgbString();
|
|
5
|
+
}
|
|
6
|
+
export function colorToHex(color) {
|
|
7
|
+
// Helper function to convert a single component to hex
|
|
8
|
+
function componentToHex(c) {
|
|
9
|
+
const hex = c.toString(16);
|
|
10
|
+
return hex.length === 1 ? '0' + hex : hex;
|
|
11
|
+
}
|
|
12
|
+
// Helper function to validate and parse a color component
|
|
13
|
+
function parseComponent(value, maxValue) {
|
|
14
|
+
value = parseFloat(value);
|
|
15
|
+
return isNaN(value) ? 0 : Math.min(maxValue, Math.max(0, value));
|
|
16
|
+
}
|
|
17
|
+
if (typeof color === 'string') {
|
|
18
|
+
// If the input is a string, attempt to parse it as a CSS color
|
|
19
|
+
const tempDiv = document.createElement('div');
|
|
20
|
+
tempDiv.style.color = color;
|
|
21
|
+
document.body.appendChild(tempDiv);
|
|
22
|
+
const computedColor = window.getComputedStyle(tempDiv).color;
|
|
23
|
+
document.body.removeChild(tempDiv);
|
|
24
|
+
color = computedColor;
|
|
25
|
+
}
|
|
26
|
+
if (color.startsWith('#')) {
|
|
27
|
+
// Hexadecimal color
|
|
28
|
+
return color.toUpperCase();
|
|
29
|
+
}
|
|
30
|
+
else if (color.startsWith('rgb') || color.startsWith('hsl')) {
|
|
31
|
+
// RGB, RGBA, HSL, HSLA color
|
|
32
|
+
const rgba = color.match(/(0?\.?\d{1,3})%?\b/g).map((component, index) => {
|
|
33
|
+
return index < 3 ? Math.round(parseComponent(component, 255)) : parseFloat(component);
|
|
34
|
+
});
|
|
35
|
+
return `#${componentToHex(rgba[0])}${componentToHex(rgba[1])}${componentToHex(rgba[2])}`;
|
|
36
|
+
}
|
|
37
|
+
// Unsupported color format, return input
|
|
38
|
+
return color;
|
|
39
|
+
}
|
|
40
|
+
// Function to convert hex to RGB
|
|
41
|
+
export function hexToRgb(hex) {
|
|
42
|
+
let r = parseInt(hex.slice(1, 3), 16);
|
|
43
|
+
let g = parseInt(hex.slice(3, 5), 16);
|
|
44
|
+
let b = parseInt(hex.slice(5, 7), 16);
|
|
45
|
+
return { r, g, b };
|
|
46
|
+
}
|
|
47
|
+
// Function to convert RGB to hex
|
|
48
|
+
export function rgbToHex(r, g, b) {
|
|
49
|
+
return `#${((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1).toUpperCase()}`;
|
|
50
|
+
}
|
|
51
|
+
// Function to create a tint (lighten the color)
|
|
52
|
+
export function createTint(color, amount) {
|
|
53
|
+
const { r, g, b } = hexToRgb(color);
|
|
54
|
+
return rgbToHex(Math.min(255, r + amount), Math.min(255, g + amount), Math.min(255, b + amount));
|
|
55
|
+
}
|
|
56
|
+
// Function to create a shade (darken the color)
|
|
57
|
+
export function createShade(color, amount) {
|
|
58
|
+
const { r, g, b } = hexToRgb(color);
|
|
59
|
+
return rgbToHex(Math.max(0, r - amount), Math.max(0, g - amount), Math.max(0, b - amount));
|
|
60
|
+
}
|
|
61
|
+
// Function to create multiple tints or shades
|
|
62
|
+
export function createColorVariants(color, length, type = 'tint', amount = 43) {
|
|
63
|
+
let variants = [];
|
|
64
|
+
for (let i = 1; i <= length; i++) {
|
|
65
|
+
if (type === 'tint') {
|
|
66
|
+
variants.push(createTint(color, i * amount)); // Adjust the step size (here it's 40)
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
variants.push(createShade(color, i * amount)); // Adjust the step size (here it's 20)
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return variants;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9yZXBvcnRzL2NoYXJ0cy91dGlsaXR5L2NvbG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFFBQVEsTUFBTSxlQUFlLENBQUM7QUFFckMsTUFBTSxVQUFVLGNBQWMsQ0FBQyxLQUFhLEVBQUUsT0FBZTtJQUM1RCxJQUFJLEtBQUssR0FBRyxPQUFPLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUM7SUFDdEQsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0FBQ2pELENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUFDLEtBQUs7SUFDL0IsdURBQXVEO0lBQ3ZELFNBQVMsY0FBYyxDQUFDLENBQUM7UUFDeEIsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMzQixPQUFPLEdBQUcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDM0MsQ0FBQztJQUVELDBEQUEwRDtJQUMxRCxTQUFTLGNBQWMsQ0FBQyxLQUFLLEVBQUUsUUFBUTtRQUN0QyxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxD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QU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxzQ0FBc0M7U0FDckY7S0FDRDtJQUNELE9BQU8sUUFBUSxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY29sb3JMaWIgZnJvbSAnQGt1cmtsZS9jb2xvcic7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNwYXJlbnRpemUodmFsdWU6IHN0cmluZywgb3BhY2l0eTogbnVtYmVyKSB7XHJcblx0dmFyIGFscGhhID0gb3BhY2l0eSA9PT0gdW5kZWZpbmVkID8gMC41IDogMSAtIG9wYWNpdHk7XHJcblx0cmV0dXJuIGNvbG9yTGliKHZhbHVlKS5hbHBoYShhbHBoYSkucmdiU3RyaW5nKCk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjb2xvclRvSGV4KGNvbG9yKSB7XHJcblx0Ly8gSGVscGVyIGZ1bmN0aW9uIHRvIGNvbnZlcnQgYSBzaW5nbGUgY29tcG9uZW50IHRvIGhleFxyXG5cdGZ1bmN0aW9uIGNvbXBvbmVudFRvSGV4KGMpIHtcclxuXHRcdGNvbnN0IGhleCA9IGMudG9TdHJpbmcoMTYpO1xyXG5cdFx0cmV0dXJuIGhleC5sZW5ndGggPT09IDEgPyAnMCcgKyBoZXggOiBoZXg7XHJcblx0fVxyXG5cclxuXHQvLyBIZWxwZXIgZnVuY3Rpb24gdG8gdmFsaWRhdGUgYW5kIHBhcnNlIGEgY29sb3IgY29tcG9uZW50XHJcblx0ZnVuY3Rpb24gcGFyc2VDb21wb25lbnQodmFsdWUsIG1heFZhbHVlKSB7XHJcblx0XHR2YWx1ZSA9IHBhcnNlRmxvYXQodmFsdWUpO1xyXG5cdFx0cmV0dXJuIGlzTmFOKHZhbHVlKSA/IDAgOiBNYXRoLm1pbihtYXhWYWx1ZSwgTWF0aC5tYXgoMCwgdmFsdWUpKTtcclxuXHR9XHJcblxyXG5cdGlmICh0eXBlb2YgY29sb3IgPT09ICdzdHJpbmcnKSB7XHJcblx0XHQvLyBJZiB0aGUgaW5wdXQgaXMgYSBzdHJpbmcsIGF0dGVtcHQgdG8gcGFyc2UgaXQgYXMgYSBDU1MgY29sb3JcclxuXHRcdGNvbnN0IHRlbXBEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuXHRcdHRlbXBEaXYuc3R5bGUuY29sb3IgPSBjb2xvcjtcclxuXHRcdGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGVtcERpdik7XHJcblx0XHRjb25zdCBjb21wdXRlZENvbG9yID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGVtcERpdikuY29sb3I7XHJcblx0XHRkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHRlbXBEaXYpO1xyXG5cdFx0Y29sb3IgPSBjb21wdXRlZENvbG9yO1xyXG5cdH1cclxuXHJcblx0aWYgKGNvbG9yLnN0YXJ0c1dpdGgoJyMnKSkge1xyXG5cdFx0Ly8gSGV4YWRlY2ltYWwgY29sb3JcclxuXHRcdHJldHVybiBjb2xvci50b1VwcGVyQ2FzZSgpO1xyXG5cdH0gZWxzZSBpZiAoY29sb3Iuc3RhcnRzV2l0aCgncmdiJykgfHwgY29sb3Iuc3RhcnRzV2l0aCgnaHNsJykpIHtcclxuXHRcdC8vIFJHQiwgUkdCQSwgSFNMLCBIU0xBIGNvbG9yXHJcblx0XHRjb25zdCByZ2JhID0gY29sb3IubWF0Y2goLygwP1xcLj9cXGR7MSwzfSklP1xcYi9nKS5tYXAoKGNvbXBvbmVudCwgaW5kZXgpID0+IHtcclxuXHRcdFx0cmV0dXJuIGluZGV4IDwgMyA/IE1hdGgucm91bmQocGFyc2VDb21wb25lbnQoY29tcG9uZW50LCAyNTUpKSA6IHBhcnNlRmxvYXQoY29tcG9uZW50KTtcclxuXHRcdH0pO1xyXG5cclxuXHRcdHJldHVybiBgIyR7Y29tcG9uZW50VG9IZXgocmdiYVswXSl9JHtjb21wb25lbnRUb0hleChyZ2JhWzFdKX0ke2NvbXBvbmVudFRvSGV4KHJnYmFbMl0pfWA7XHJcblx0fVxyXG5cclxuXHQvLyBVbnN1cHBvcnRlZCBjb2xvciBmb3JtYXQsIHJldHVybiBpbnB1dFxyXG5cdHJldHVybiBjb2xvcjtcclxufVxyXG5cclxuLy8gRnVuY3Rpb24gdG8gY29udmVydCBoZXggdG8gUkdCXHJcbmV4cG9ydCBmdW5jdGlvbiBoZXhUb1JnYihoZXg6IHN0cmluZyk6IHsgcjogbnVtYmVyOyBnOiBudW1iZXI7IGI6IG51bWJlciB9IHtcclxuXHRsZXQgciA9IHBhcnNlSW50KGhleC5zbGljZSgxLCAzKSwgMTYpO1xyXG5cdGxldCBnID0gcGFyc2VJbnQoaGV4LnNsaWNlKDMsIDUpLCAxNik7XHJcblx0bGV0IGIgPSBwYXJzZUludChoZXguc2xpY2UoNSwgNyksIDE2KTtcclxuXHRyZXR1cm4geyByLCBnLCBiIH07XHJcbn1cclxuXHJcbi8vIEZ1bmN0aW9uIHRvIGNvbnZlcnQgUkdCIHRvIGhleFxyXG5leHBvcnQgZnVuY3Rpb24gcmdiVG9IZXgocjogbnVtYmVyLCBnOiBudW1iZXIsIGI6IG51bWJlcik6IHN0cmluZyB7XHJcblx0cmV0dXJuIGAjJHsoKDEgPDwgMjQpICsgKHIgPDwgMTYpICsgKGcgPDwgOCkgKyBiKS50b1N0cmluZygxNikuc2xpY2UoMSkudG9VcHBlckNhc2UoKX1gO1xyXG59XHJcblxyXG4vLyBGdW5jdGlvbiB0byBjcmVhdGUgYSB0aW50IChsaWdodGVuIHRoZSBjb2xvcilcclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRpbnQoY29sb3I6IHN0cmluZywgYW1vdW50OiBudW1iZXIpOiBzdHJpbmcge1xyXG5cdGNvbnN0IHsgciwgZywgYiB9ID0gaGV4VG9SZ2IoY29sb3IpO1xyXG5cdHJldHVybiByZ2JUb0hleChNYXRoLm1pbigyNTUsIHIgKyBhbW91bnQpLCBNYXRoLm1pbigyNTUsIGcgKyBhbW91bnQpLCBNYXRoLm1pbigyNTUsIGIgKyBhbW91bnQpKTtcclxufVxyXG5cclxuLy8gRnVuY3Rpb24gdG8gY3JlYXRlIGEgc2hhZGUgKGRhcmtlbiB0aGUgY29sb3IpXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTaGFkZShjb2xvcjogc3RyaW5nLCBhbW91bnQ6IG51bWJlcik6IHN0cmluZyB7XHJcblx0Y29uc3QgeyByLCBnLCBiIH0gPSBoZXhUb1JnYihjb2xvcik7XHJcblx0cmV0dXJuIHJnYlRvSGV4KE1hdGgubWF4KDAsIHIgLSBhbW91bnQpLCBNYXRoLm1heCgwLCBnIC0gYW1vdW50KSwgTWF0aC5tYXgoMCwgYiAtIGFtb3VudCkpO1xyXG59XHJcblxyXG4vLyBGdW5jdGlvbiB0byBjcmVhdGUgbXVsdGlwbGUgdGludHMgb3Igc2hhZGVzXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDb2xvclZhcmlhbnRzKFxyXG5cdGNvbG9yOiBzdHJpbmcsXHJcblx0bGVuZ3RoOiBudW1iZXIsXHJcblx0dHlwZTogJ3RpbnQnIHwgJ3NoYWRlJyA9ICd0aW50JyxcclxuXHRhbW91bnQgPSA0M1xyXG4pOiBzdHJpbmdbXSB7XHJcblx0bGV0IHZhcmlhbnRzOiBzdHJpbmdbXSA9IFtdO1xyXG5cdGZvciAobGV0IGkgPSAxOyBpIDw9IGxlbmd0aDsgaSsrKSB7XHJcblx0XHRpZiAodHlwZSA9PT0gJ3RpbnQnKSB7XHJcblx0XHRcdHZhcmlhbnRzLnB1c2goY3JlYXRlVGludChjb2xvciwgaSAqIGFtb3VudCkpOyAvLyBBZGp1c3QgdGhlIHN0ZXAgc2l6ZSAoaGVyZSBpdCdzIDQwKVxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dmFyaWFudHMucHVzaChjcmVhdGVTaGFkZShjb2xvciwgaSAqIGFtb3VudCkpOyAvLyBBZGp1c3QgdGhlIHN0ZXAgc2l6ZSAoaGVyZSBpdCdzIDIwKVxyXG5cdFx0fVxyXG5cdH1cclxuXHRyZXR1cm4gdmFyaWFudHM7XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export function flatArray(data) {
|
|
2
|
+
return data.reduce((acc, curr) => acc.concat(curr), []);
|
|
3
|
+
}
|
|
4
|
+
export function isObject(obj) {
|
|
5
|
+
return obj && typeof obj === 'object';
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9yZXBvcnRzL2NoYXJ0cy91dGlsaXR5L2NvbW1vbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLFVBQVUsU0FBUyxDQUFzQixJQUFXO0lBQ3pELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDekQsQ0FBQztBQUVELE1BQU0sVUFBVSxRQUFRLENBQ3ZCLEdBQVE7SUFFUixPQUFPLEdBQUcsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLENBQUM7QUFDdkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYXJ0RGF0YXNldCwgQ2hhcnRUeXBlIH0gZnJvbSAnY2hhcnQuanMnO1xyXG5pbXBvcnQgeyBTdGF0aXN0aWNCdWNrZXQgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGZsYXRBcnJheTxUID0gU3RhdGlzdGljQnVja2V0PihkYXRhOiBUW11bXSk6IFRbXSB7XHJcblx0cmV0dXJuIGRhdGEucmVkdWNlKChhY2MsIGN1cnIpID0+IGFjYy5jb25jYXQoY3VyciksIFtdKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzT2JqZWN0PFQgZXh0ZW5kcyBDaGFydFR5cGU+KFxyXG5cdG9iajogYW55XHJcbik6IG9iaiBpcyBQYXJ0aWFsPENoYXJ0RGF0YXNldDxUPj4ge1xyXG5cdHJldHVybiBvYmogJiYgdHlwZW9mIG9iaiA9PT0gJ29iamVjdCc7XHJcbn1cclxuIl19
|