territories-dashboard-lib 0.1.22__py3-none-any.whl → 0.1.23__py3-none-any.whl

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.

Potentially problematic release.


This version of territories-dashboard-lib might be problematic. Click here for more details.

@@ -5,14 +5,30 @@ import { COLORS } from "../enums.mjs";
5
5
  import { addEmptyGraphMessage } from "./utils.mjs";
6
6
  import { formatIndicatorValue } from "../format.mjs";
7
7
 
8
- function getPlugins(indicator) {
8
+ function getPlugins(indicator, total) {
9
+ function getLabelFromValue(value) {
10
+ return `${formatIndicatorValue(value)} ${indicator.unite}`;
11
+ }
9
12
  return {
10
13
  datalabels: {
11
- display: (ctx) => {
12
- if (!ctx.dataset.data[ctx.dataIndex]) {
13
- return false;
14
- }
15
- return "auto";
14
+ display: (context) => {
15
+ const chart = context.chart;
16
+ const canvasWidth = chart.canvas.width;
17
+ const value = context.dataset.data[context.dataIndex];
18
+ const barWidth = (value / total) * canvasWidth;
19
+ const label = getLabelFromValue(value);
20
+
21
+ // --- measure text width in pixels ---
22
+ const ctx = chart.ctx;
23
+ const font = Chart.helpers.toFont(Chart.defaults.font);
24
+ ctx.font = font.string;
25
+ const labelWidth = ctx.measureText(label).width;
26
+
27
+ // Add some padding
28
+ const padding = 4;
29
+
30
+ // Only display label if it fits
31
+ return labelWidth + padding < barWidth;
16
32
  },
17
33
  color: (context) => {
18
34
  const bgColor = context.dataset.backgroundColor;
@@ -23,14 +39,14 @@ function getPlugins(indicator) {
23
39
  font: {
24
40
  weight: "bold",
25
41
  },
26
- formatter: (value) =>
27
- `${formatIndicatorValue(value)} ${indicator.unite}`,
42
+ formatter: getLabelFromValue,
28
43
  },
29
44
  tooltip: getToolTip(indicator.unite),
30
45
  };
31
46
  }
32
47
 
33
48
  function makeProportionsChart(indicator) {
49
+ console.log("PROPORTIONS");
34
50
  const { territory_name: label } = getParams();
35
51
 
36
52
  const ctx = document.getElementById("proportionsChart");
@@ -54,6 +70,8 @@ function makeProportionsChart(indicator) {
54
70
  return;
55
71
  }
56
72
 
73
+ const total = datasets.map((d) => d.data[0]).reduce((a, b) => a + b, 0);
74
+
57
75
  setBackgroundInDatasets(datasets);
58
76
 
59
77
  const data = {
@@ -63,7 +81,7 @@ function makeProportionsChart(indicator) {
63
81
  const options = {
64
82
  indexAxis: "y",
65
83
  maintainAspectRatio: false,
66
- plugins: getPlugins(indicator),
84
+ plugins: getPlugins(indicator, total),
67
85
  scales: {
68
86
  x: {
69
87
  display: false,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: territories-dashboard-lib
3
- Version: 0.1.22
3
+ Version: 0.1.23
4
4
  Summary: Librairie pour la visualisation d'indicateurs territoriaux.
5
5
  Author-email: Bastien <bastien@prune.sh>
6
6
  Classifier: Programming Language :: Python :: 3
@@ -99,7 +99,7 @@ territories_dashboard_lib/website_lib/static/territories_dashboard_lib/website/j
99
99
  territories_dashboard_lib/website_lib/static/territories_dashboard_lib/website/js/pages/indicators/details/histogram.mjs,sha256=OhsSDo-TGwO2zaqRwOCVQlyHwc-elInd6r0aYay8dmo,3836
100
100
  territories_dashboard_lib/website_lib/static/territories_dashboard_lib/website/js/pages/indicators/details/map.mjs,sha256=V55_6F3VdKkFvcLTBlhfPMJVHY-rqqkS-jmf-Ja0NJE,647
101
101
  territories_dashboard_lib/website_lib/static/territories_dashboard_lib/website/js/pages/indicators/details/page.mjs,sha256=ELBGPptCWPcOOOyfvKfNk5OxldWneflemWUEPPbYTCY,3309
102
- territories_dashboard_lib/website_lib/static/territories_dashboard_lib/website/js/pages/indicators/details/proportions.mjs,sha256=vr90rb_ODLFb7DXWDjUilnURCbtCEck92jqJhI1lyDY,2143
102
+ territories_dashboard_lib/website_lib/static/territories_dashboard_lib/website/js/pages/indicators/details/proportions.mjs,sha256=wHof0_c0F5iItUBXG7nTmiiZwB0XhSihv3XEm0uKDfU,2928
103
103
  territories_dashboard_lib/website_lib/static/territories_dashboard_lib/website/js/pages/indicators/details/sankey.mjs,sha256=BmyO_NdcbscGREk2SyzddvbF2UUhWH56QrsZqeE-YOw,747
104
104
  territories_dashboard_lib/website_lib/static/territories_dashboard_lib/website/js/pages/indicators/details/table.mjs,sha256=8DBZXWe_R4h7ZoDZVEpLRaE3M7V-H-j9F2hUoCWFwqI,6893
105
105
  territories_dashboard_lib/website_lib/static/territories_dashboard_lib/website/js/pages/indicators/details/top10.mjs,sha256=OF_7hftvhUZ8mOPSWDEPmLy8KoqIx31xEW0x89OVFS8,2006
@@ -177,8 +177,8 @@ territories_dashboard_lib/website_lib/templates/territories_dashboard_lib/websit
177
177
  territories_dashboard_lib/website_lib/templates/territories_dashboard_lib/website/svg/delete-back.svg,sha256=fJPjkZT2jdTcW2nmwr7YtBayOmQKOxiGNyO8bM8jP2U,618
178
178
  territories_dashboard_lib/website_lib/templatetags/htmlparams.py,sha256=jWXlmT-nFh7YefVP_zJSXEA1YgT37wnWqelPhmj7UoM,2092
179
179
  territories_dashboard_lib/website_lib/templatetags/other_filters.py,sha256=EEczSQi8lJZ_rfceuXQz3iF1SIxh5d-3-liTY8lkKtU,944
180
- territories_dashboard_lib-0.1.22.dist-info/licenses/licence.md,sha256=9Tat8mM_Yyww-wmWps8avlOhzumqEUGYy8853tKy7aE,7804
181
- territories_dashboard_lib-0.1.22.dist-info/METADATA,sha256=2HkHTiCOOJUN-tD9uAtqLbF9hwWLJyyzBkHrbcloBRI,6191
182
- territories_dashboard_lib-0.1.22.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
183
- territories_dashboard_lib-0.1.22.dist-info/top_level.txt,sha256=Cih-lil8CSXTpDZV6fgHKIKIBtUjDaNpmkiuW2TSzsk,26
184
- territories_dashboard_lib-0.1.22.dist-info/RECORD,,
180
+ territories_dashboard_lib-0.1.23.dist-info/licenses/licence.md,sha256=9Tat8mM_Yyww-wmWps8avlOhzumqEUGYy8853tKy7aE,7804
181
+ territories_dashboard_lib-0.1.23.dist-info/METADATA,sha256=iSLvtbGMWe276d7wEqrI4vWmONL1gdZvDc9jln-xFl8,6191
182
+ territories_dashboard_lib-0.1.23.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
183
+ territories_dashboard_lib-0.1.23.dist-info/top_level.txt,sha256=Cih-lil8CSXTpDZV6fgHKIKIBtUjDaNpmkiuW2TSzsk,26
184
+ territories_dashboard_lib-0.1.23.dist-info/RECORD,,