- {
- // Chargement
- isLoading ? (
-
-
-
- ) : // Pas de données
- noData ? (
-
- ) : (
- // Graphique
-
(
-
- ),
- ...config,
- },
- }}
- infos={chartInfos}
- />
- )
- }
+
+ {isLoading ? (
+
+
+
+ ) : (
+
+ )}
);
};
export default IndicateurChart;
-
-/** Génère les lignes en appliquant le style correspondant à l'id de la série */
-const generateStyledLines = ({
- series,
- lineGenerator,
- xScale,
- yScale,
-}: CustomLayerProps) => {
- return series.map(({ id, data, color }) => (
- ({
- x: (xScale as any)(d.data.x),
- y: (yScale as any)(d.data.y),
- }))
- ) || undefined
- }
- fill="none"
- stroke={color}
- style={indicateurBaseData[id].style}
- />
- ));
-};
diff --git a/app.territoiresentransitions.react/src/app/pages/collectivite/Indicateurs/chart/IndicateurChartNew.tsx b/app.territoiresentransitions.react/src/app/pages/collectivite/Indicateurs/chart/IndicateurChartNew.tsx
deleted file mode 100644
index da45a3ef80..0000000000
--- a/app.territoiresentransitions.react/src/app/pages/collectivite/Indicateurs/chart/IndicateurChartNew.tsx
+++ /dev/null
@@ -1,107 +0,0 @@
-import {
- LAYERS,
- ReactECharts,
- makeLineSeries,
- makeOption,
-} from '@/app/ui/charts/echarts';
-import SpinnerLoader from '@/app/ui/shared/SpinnerLoader';
-import { TIndicateurValeur } from '../useIndicateurValeurs';
-
-/** Data issues de l'api pour générer les données formatées pour echarts */
-/** TODO: le format devra être revu après la refonte indicateurs et la maj du fetch */
-export type IndicateurChartData = {
- /** Unité affichée pour l'axe des abscisses et le tooltip */
- unite?: string;
- /** Valeurs de l'indicateur */
- valeurs: {
- objectifs: TIndicateurValeur[];
- resultats: TIndicateurValeur[];
- };
-};
-
-/** Props du graphique générique Indicateur */
-export type IndicateurChartProps = {
- /** Data issues de l'api pour générer les données formatées pour Nivo */
- data: IndicateurChartData;
- /** Titre du graphe */
- title?: string;
- /** Booléen de chargement des données et infos du graphique */
- isLoading: boolean;
- /** Taille du graphe */
- variant?: 'thumbnail' | 'modal' | 'detail';
- /** ClassName du container */
- className?: string;
-};
-
-const IndicateurChartNew = ({
- data,
- title,
- isLoading,
- variant = 'detail',
- className,
-}: IndicateurChartProps) => {
- const { objectifs, resultats } = data.valeurs;
-
- const noData = objectifs.length === 0 && resultats.length === 0;
-
- if (noData) return null;
-
- const dataset = [
- {
- color: LAYERS.resultats.color,
- id: 'resultats',
- name: LAYERS.resultats.label,
- source: resultats.map((res) => ({
- x: new Date(res.annee, 0, 1).toISOString(),
- y: res.valeur,
- })),
- },
- {
- color: LAYERS.objectifs.color,
- id: 'objectifs',
- name: LAYERS.objectifs.label,
- source: objectifs.map((obj) => ({
- x: new Date(obj.annee, 0, 1).toISOString(),
- y: obj.valeur,
- })),
- },
- ];
-
- const style = { height: 450 };
- if (variant === 'thumbnail') style.height = 320;
- if (variant === 'modal') style.height = 550;
-
- let grid = {};
- if (variant === 'thumbnail') {
- grid = { top: '8%', bottom: '15%', right: '5%' };
- }
- if (variant === 'detail') {
- grid = { left: 32, right: 32 };
- }
-
- const option = makeOption({
- option: {
- dataset,
- series: makeLineSeries(dataset),
- grid,
- title: variant === 'detail' ? { left: 28 } : {},
- },
- titre: title,
- unite: variant !== 'thumbnail' ? data.unite : undefined,
- disableToolbox: variant !== 'modal',
- });
-
- return (
-
- {isLoading ? (
-
-
-
- ) : (
-
- )}
-
- );
-};
-
-export default IndicateurChartNew;
diff --git a/app.territoiresentransitions.react/src/app/pages/collectivite/Indicateurs/lists/IndicateurCard/IndicateurCard.tsx b/app.territoiresentransitions.react/src/app/pages/collectivite/Indicateurs/lists/IndicateurCard/IndicateurCard.tsx
index 08ae85c8ff..d16ce75f63 100644
--- a/app.territoiresentransitions.react/src/app/pages/collectivite/Indicateurs/lists/IndicateurCard/IndicateurCard.tsx
+++ b/app.territoiresentransitions.react/src/app/pages/collectivite/Indicateurs/lists/IndicateurCard/IndicateurCard.tsx
@@ -16,7 +16,6 @@ import {
IndicateurListItem,
} from '@/api/indicateurs/domain';
import { transformeValeurs } from '@/app/app/pages/collectivite/Indicateurs/Indicateur/detail/transformeValeurs';
-import { IndicateurChartProps } from '@/app/app/pages/collectivite/Indicateurs/chart/IndicateurChart';
import { useIndicateurChartInfo } from '@/app/app/pages/collectivite/Indicateurs/chart/useIndicateurChartInfo';
import BadgeIndicateurPerso from '@/app/app/pages/collectivite/Indicateurs/components/BadgeIndicateurPerso';
import BadgeOpenData from '@/app/app/pages/collectivite/Indicateurs/components/BadgeOpenData';
@@ -25,9 +24,9 @@ import PictoIndicateurComplet from '@/app/ui/pictogrammes/PictoIndicateurComplet
import PictoIndicateurVide from '@/app/ui/pictogrammes/PictoIndicateurVide';
import { BadgeACompleter } from '@/app/ui/shared/Badge/BadgeACompleter';
import DownloadIndicateurChartModal from '../../chart/DownloadIndicateurChart';
-import IndicateurChartNew, {
+import IndicateurChart, {
IndicateurChartData,
-} from '../../chart/IndicateurChartNew';
+} from '../../chart/IndicateurChart';
import { getIndicateurRestant } from './utils';
/** Props de la carte Indicateur */
@@ -49,8 +48,6 @@ export type IndicateurCardProps = {
href?: string;
/** ClassName de la carte */
className?: string;
- /** Props du composant `IndicateurChart` sans ce qui est relatif aux données */
- chart?: Omit;
/** Affiche ou masque le graphique */
hideChart?: boolean;
/** Affiche ou masque le graphique quand il n'y a pas de valeur */
@@ -125,7 +122,6 @@ export const IndicateurCardBase = ({
className,
isLoading,
definition,
- chart,
chartInfo,
isEditable = false,
hideChart = false,
@@ -258,7 +254,7 @@ export const IndicateurCardBase = ({
}
/>
) : (
- {
const { definitions, view } = props;
return (
-
+
{definitions?.map((definition) => (