diff --git a/src/main/resources/META-INF/resources/templates/components/shared/README_KPI.md b/src/main/resources/META-INF/resources/templates/components/shared/README_KPI.md new file mode 100644 index 0000000..6b27a0d --- /dev/null +++ b/src/main/resources/META-INF/resources/templates/components/shared/README_KPI.md @@ -0,0 +1,240 @@ +# 📊 Composants KPI Réutilisables - Écosystème LionsDev + +**Version**: 2.0.0 +**Date**: 2025-01-29 +**Pattern**: WOU/DRY (Write Once Use / Don't Repeat Yourself) + +--- + +## 🎯 Vue d'Ensemble + +Ces composants KPI (Indicateurs de Performance) sont conçus pour être **100% réutilisables** dans tous les projets de l'écosystème **lionsdev**. Ils suivent les meilleures pratiques de PrimeFaces Freya et offrent une expérience utilisateur cohérente. + +--- + +## 📦 Composants Disponibles + +### 1. **kpi-card.xhtml** - Carte KPI Individuelle + +Composant principal pour afficher un indicateur de performance unique. + +**Localisation**: `/templates/components/shared/cards/kpi-card.xhtml` + +**Paramètres principaux**: +- `title` (requis) - Titre du KPI +- `value` (requis) - Valeur à afficher +- `icon` (requis) - Icône PrimeIcons +- `iconColor` (requis) - Couleur de l'icône +- `growthValue` (optionnel) - Valeur de croissance +- `growthLabel` (optionnel) - Libellé de croissance +- `progressValue` (optionnel) - Barre de progression 0-100 +- `statusIcon`, `statusLabel`, `statusValue` (optionnel) - Mode statut +- `clickable` (défaut: false) - Rendre cliquable +- `clickOutcome` (optionnel) - Redirection au clic + +**Exemple simple**: +```xhtml + + + + + + +``` + +**Exemple avec croissance**: +```xhtml + + + + + + + + + +``` + +**Exemple avec statut**: +```xhtml + + + + + + + + + +``` + +--- + +### 2. **kpi-group.xhtml** - Groupe de KPI + +Composant composite pour organiser plusieurs KPI dans une grille. + +**Localisation**: `/templates/components/shared/dashboard/kpi-group.xhtml` + +**Paramètres**: +- `title` (optionnel) - Titre de la section +- `columns` (défaut: 4) - Nombre de colonnes (1-6) +- `colSize` (optionnel) - Taille personnalisée + +**Exemple**: +```xhtml + + + + + + + + + + + + + + +``` + +--- + +### 3. **dashboard-section.xhtml** - Section Dashboard + +Composant composite pour créer des sections de dashboard réutilisables. + +**Localisation**: `/templates/components/shared/dashboard/dashboard-section.xhtml` + +**Paramètres**: +- `title` (requis) - Titre de la section +- `description` (optionnel) - Description +- `icon` (optionnel) - Icône +- `colSize` (défaut: "col-12") - Taille de colonne +- `showCard` (défaut: true) - Envelopper dans une carte + +**Exemple**: +```xhtml + + + + + + +
+
+ +
+
+
+
+``` + +--- + +### 4. **user-stat-card.xhtml** - Wrapper de Compatibilité + +Wrapper de compatibilité ascendante qui délègue à `kpi-card.xhtml`. + +**Note**: Pour de nouvelles implémentations, utilisez directement `kpi-card.xhtml`. + +--- + +## 🎨 Couleurs Disponibles + +Utilisez les couleurs PrimeFlex pour `iconColor`: +- `blue-600`, `blue-500`, `blue-400` +- `green-600`, `green-500`, `green-400` +- `purple-600`, `purple-500`, `purple-400` +- `orange-600`, `orange-500`, `orange-400` +- `red-600`, `red-500`, `red-400` +- `cyan-600`, `cyan-500`, `cyan-400` +- `pink-600`, `pink-500`, `pink-400` + +--- + +## 📐 Tailles de Colonnes + +Utilisez les classes PrimeFlex pour `colSize`: +- `col-12` - Pleine largeur +- `col-12 md:col-6` - 2 colonnes sur tablette+ +- `col-12 md:col-6 lg:col-3` - 4 colonnes sur desktop (défaut) +- `col-12 md:col-4` - 3 colonnes +- `col-12 md:col-6 lg:col-2` - 6 colonnes + +--- + +## 🔄 Réutilisabilité dans l'Écosystème LionsDev + +Ces composants peuvent être utilisés dans: +- ✅ **lions-user-manager** (module actuel) +- ✅ **unionflow** (via dépendance Maven) +- ✅ **btpxpress** (via dépendance Maven) +- ✅ **Tout autre projet lionsdev** (via dépendance Maven) + +**Avantages**: +- Code DRY (Don't Repeat Yourself) +- Interface utilisateur cohérente +- Maintenance centralisée +- Évolutivité garantie + +--- + +## 📝 Bonnes Pratiques + +1. **Toujours utiliser `kpi-card.xhtml`** pour de nouveaux KPI +2. **Utiliser `kpi-group.xhtml`** pour organiser plusieurs KPI +3. **Utiliser `dashboard-section.xhtml`** pour structurer les dashboards +4. **Respecter les conventions de couleurs** PrimeFlex +5. **Documenter les paramètres personnalisés** dans votre code + +--- + +## 🚀 Exemple Complet de Dashboard + +```xhtml +
+ +
+ + + +
+ + +
+
+ + + + + + + +
+
+ + + + + + + + +
+``` + +--- + +## 📚 Documentation Complète + +Pour plus de détails, consultez: +- `/templates/components/README.md` - Documentation générale +- Code source des composants avec commentaires JSDoc + +--- + +**Auteur**: Lions User Manager Team +**Licence**: Écosystème LionsDev + diff --git a/src/main/resources/META-INF/resources/templates/components/shared/cards/kpi-card-content.xhtml b/src/main/resources/META-INF/resources/templates/components/shared/cards/kpi-card-content.xhtml new file mode 100644 index 0000000..4459412 --- /dev/null +++ b/src/main/resources/META-INF/resources/templates/components/shared/cards/kpi-card-content.xhtml @@ -0,0 +1,102 @@ + + +
+ +
+ #{title} +
+ +
+
+ + +
#{value}
+ + + +
#{subtitle}
+
+ + + + + + + +
+ + #{statusLabel} + #{statusValue} +
+
+ +
Aucun #{statusLabel}
+
+
+
+ + + + + + + +
+ + +#{growthValue} + + #{growthLabel} + +
+
+ +
#{noDataLabel}
+
+
+
+ + + + +
+ + + + +#{growthValue}% + + + + #{growthValue}% + + + + #{growthLabel} + +
+
+ +
#{noDataLabel}
+
+
+
+
+
+
+ + + + + +
+ +
+ diff --git a/src/main/resources/META-INF/resources/templates/components/shared/cards/kpi-card.xhtml b/src/main/resources/META-INF/resources/templates/components/shared/cards/kpi-card.xhtml new file mode 100644 index 0000000..44b18b5 --- /dev/null +++ b/src/main/resources/META-INF/resources/templates/components/shared/cards/kpi-card.xhtml @@ -0,0 +1,95 @@ + + + + + + + + + + + +
+ + + +
+ + + + + + + + + + + + + + + + + +
+
+
+ + +
+ + + + + + + + + + + + + + + + + +
+
+
+ +
+ + + + + + + + + + + + + + + + + +
+
+
+
+ +
diff --git a/src/main/resources/META-INF/resources/templates/components/shared/cards/user-stat-card.xhtml b/src/main/resources/META-INF/resources/templates/components/shared/cards/user-stat-card.xhtml index 255aef3..d278915 100644 --- a/src/main/resources/META-INF/resources/templates/components/shared/cards/user-stat-card.xhtml +++ b/src/main/resources/META-INF/resources/templates/components/shared/cards/user-stat-card.xhtml @@ -7,10 +7,10 @@ - - - -
- - - -
-
- #{title} -
- -
-
- -
#{value}
- - -
#{subtitle}
-
- - -
- - - #{trend >= 0 ? '+' : ''}#{trend}% - - - #{trendLabel} - -
-
-
-
-
- - -
-
- #{title} -
- -
-
- -
#{value}
- - -
#{subtitle}
-
- - -
- - - #{trend >= 0 ? '+' : ''}#{trend}% - - - #{trendLabel} - -
-
-
-
-
-
+ + + + + + + + + + + + + + diff --git a/src/main/resources/META-INF/resources/templates/components/shared/dashboard/dashboard-section.xhtml b/src/main/resources/META-INF/resources/templates/components/shared/dashboard/dashboard-section.xhtml new file mode 100644 index 0000000..48dab69 --- /dev/null +++ b/src/main/resources/META-INF/resources/templates/components/shared/dashboard/dashboard-section.xhtml @@ -0,0 +1,77 @@ + + + + + + + +
+ + +
+ +
+ + + +
#{title}
+
+
+ +

#{description}

+
+ + + +
+
+ + +
+ + + +
#{title}
+
+
+ +

#{description}

+
+ + + +
+
+
+ +
+ diff --git a/src/main/resources/META-INF/resources/templates/components/shared/dashboard/kpi-group.xhtml b/src/main/resources/META-INF/resources/templates/components/shared/dashboard/kpi-group.xhtml new file mode 100644 index 0000000..b95c26f --- /dev/null +++ b/src/main/resources/META-INF/resources/templates/components/shared/dashboard/kpi-group.xhtml @@ -0,0 +1,78 @@ + + + + + + --> + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
#{title}
+
+
+ + + +
+
+ +
+