using MaBibli.Shared.Entites; namespace MaBibli.Client.Composants; /// Libellés français des énumérations, au même endroit pour toute l'interface. public static class Libelles { public static string Format(Format format) => format switch { MaBibli.Shared.Entites.Format.Physique => "Physique", MaBibli.Shared.Entites.Format.Numerique => "Numérique", _ => format.ToString(), }; /// /// Libellé du type de document. « Non précisé » ne s'affiche pas sur une fiche : /// c'est l'absence de choix, et l'interface ne montre que ce qui a été choisi. Le libellé /// existe pour les boutons de saisie et de filtre, où il faut bien nommer l'option. /// public static string TypeDocument(TypeDocument type) => type switch { MaBibli.Shared.Entites.TypeDocument.NonPrecise => "Non précisé", MaBibli.Shared.Entites.TypeDocument.Roman => "Roman", MaBibli.Shared.Entites.TypeDocument.BandeDessinee => "BD", _ => type.ToString(), }; /// /// Libellé d'un rôle d'auteur. « Non précisé » ne s'affiche jamais sur une fiche : c'est /// l'absence de choix, pas une information. /// public static string RoleAuteur(RoleAuteur role) => role switch { MaBibli.Shared.Entites.RoleAuteur.NonPrecise => "Non précisé", MaBibli.Shared.Entites.RoleAuteur.Scenario => "Scénario", MaBibli.Shared.Entites.RoleAuteur.Dessin => "Dessin", MaBibli.Shared.Entites.RoleAuteur.Couleurs => "Couleurs", _ => role.ToString(), }; public static string Statut(Statut statut) => statut switch { MaBibli.Shared.Entites.Statut.ALire => "À lire", MaBibli.Shared.Entites.Statut.EnCours => "En cours", MaBibli.Shared.Entites.Statut.Lu => "Lu", _ => statut.ToString(), }; /// Classe CSS associée au statut, pour la pastille de couleur. public static string ClasseStatut(Statut statut) => statut switch { MaBibli.Shared.Entites.Statut.ALire => "statut-a-lire", MaBibli.Shared.Entites.Statut.EnCours => "statut-en-cours", MaBibli.Shared.Entites.Statut.Lu => "statut-lu", _ => string.Empty, }; /// /// Classe CSS associée au type de document, pour la pastille de couleur (A2, CLAUDE.md) : /// le filtre doit reprendre le même vocabulaire visuel que la carte, pas des segments neutres. /// « Non précisé » n'a pas de couleur : ce n'est pas une valeur choisie. /// public static string ClasseTypeDocument(TypeDocument type) => type switch { MaBibli.Shared.Entites.TypeDocument.Roman => "type-roman", MaBibli.Shared.Entites.TypeDocument.BandeDessinee => "type-bd", _ => string.Empty, }; }