[(#REM) Tag - Tag @author Jonathan OCHEJ @license MIT - https://github.com/GouvernementFR/dsfr/blob/main/LICENSE.md @see https://www.systeme-de-design.gouv.fr/elements-d-interface/composants/tag @param id - optionnel Identifiant unique utilisé pour l'attribut HTML `id` du composant. @param class - optionnel Ajoute les classes spécifiées à l'attribut HTML `class` du composant. @param texte - obligatoire @param type (cliquable|selectionnable|supprimable|simple) Par défaut, le tag est sans interaction, `type=simple`. Le tag sélectionnable n'autorise pas de couleur d'accentuation. Le tag supprimable n'autorise pas de couleur d'accentuation ni d'icône personnalisée. @param selectionne (oui|non) État de sélection du tag. Par défaut, le tag n'est pas sélectionné. Pris en compte uniquement pour un tag avec `type=selectionnable`. @param taille (petite|moyenne) Par défaut le composant est proposé en taille `moyenne`. @param lien - url du lien Url du lien du tag. Pris en compte uniquement pour un tag avec `type=simple`. @param lien_titre Dans le cas d'un tag cliquable, un attribut `title` peut être ajouté pour préciser la cible du lien. @param lien_cible (_blank|_self|_parent|_top) Le lien externe `_blank` doit être utilisé pour les liens pointant vers un autre site et ouvrant un nouvel onglet/une nouvelle page. @param lien_texte_ouvre_une_nouvelle_fenetre Si la cible du lien est externe, vous pouvez préciser le texte affiché au survole du lien @param desactive (oui|non) L'état désactivé indique que l'utilisateur ne peut pas interagir avec le tag. @param icone Nom de l'icône DSFR (ex: thumb-up-line, lightbulb-fill, error-line, etc...) @param couleur Nom de la couleur illustrative DSFR de la charte de l'État (ex: green-emeraude, brown-caramel, purple-glycine, etc...) ] #SET{texte,#ENV**{texte}|textebrut} [(#GET{texte}|oui) #SET{balise,p} #SET{class,#ARRAY} #SET{attributs,#ARRAY} #SET{class,#GET{class}|dsfr_class_ajouter{fr-tag}} #SET{attributs,#GET{attributs}|dsfr_attribut_definir{id,#ENV**{id}|dsfr_id}} #SET{type,#LISTE{cliquable,selectionnable,supprimable}|find{#ENV{type}}|oui|?{#ENV{type},simple}} [(#GET{type}|=={cliquable}|oui) #SET{balise,button} ] [(#GET{type}|=={selectionnable}|oui) #SET{balise,button} #SET{attributs,#GET{attributs}|dsfr_attribut_definir{aria-pressed,false}} [(#ENV{selectionne}|=={oui}|oui) #SET{attributs,#GET{attributs}|dsfr_attribut_definir{aria-pressed,true}} ] ] [(#GET{type}|=={supprimable}|oui) #SET{balise,button} #SET{class,#GET{class}|dsfr_class_ajouter{fr-tag--dismiss}} #SET{attributs,#GET{attributs}|dsfr_attribut_definir{aria-label,#VAL{dsfr_composants:retirer_filtre}|_T{#ARRAY{filtre,#GET{texte}}}}} ] #SET{lien,#ENV{lien}|calculer_url} [(#GET{lien}|et{#GET{type}|=={simple}|oui}|oui) #SET{balise,a} #SET{attributs,#GET{attributs}|dsfr_attribut_definir{href,#GET{lien}}} #SET{attributs,#GET{attributs}|dsfr_attribut_definir{title,#ENV{lien_titre}}} [(#REM)] [(#ENV{lien_cible}|non|et{#GET{lien}|lien_is_url_externe}|oui) [(#VAL{_blank}|setenv{lien_cible})] ] #SET{attributs,#GET{attributs}|dsfr_attribut_definir{target,#ENV{lien_cible}}} [(#ENV{lien_cible}|=={_blank}|oui) #SET{attributs,#GET{attributs}|dsfr_attribut_definir{title,#GET{attributs/title,#GET{texte}}|concat{' - ',#ENV{lien_texte_ouvre_une_nouvelle_fenetre}|?{#ENV{lien_texte_ouvre_une_nouvelle_fenetre},#VAL{dsfr_composants:ouvre_une_nouvelle_fenetre}|_T}}}} ] [(#REM)] [(#GET{lien}|lien_is_url_externe|oui) #SET{attributs,#GET{attributs}|dsfr_attribut_definir{rel,noopener external}} ] ] [(#ENV{taille}|=={petite}|oui) #SET{class,#GET{class}|dsfr_class_ajouter{fr-tag--sm}} ] [(#ENV{icone}|et{#DSFR_ICONES|table_valeur{#ENV{icone}}}|oui) [(#GET{type}|=={supprimable}|non) #SET{class,#GET{class}|dsfr_class_ajouter{fr-icon-#ENV{icone}}} #SET{class,#GET{class}|dsfr_class_ajouter{fr-tag--icon-left}} ] ] [(#ENV{couleur}|et{#DSFR_COULEURS{illustrative}|table_valeur{#ENV{couleur}}}|oui) [(#GET{type}|=={selectionnable}|ou{#GET{type}|=={supprimable}}|non) #SET{class,#GET{class}|dsfr_class_ajouter{fr-tag--#ENV{couleur}}} ] ] [(#ENV{desactive}|=={oui}|oui) #SET{attributs,#GET{attributs}|dsfr_attribut_supprimer{href}} #SET{attributs,#GET{attributs}|dsfr_attribut_supprimer{target}} #SET{attributs,#GET{attributs}|dsfr_attribut_supprimer{title}} #SET{attributs,#GET{attributs}|dsfr_attribut_supprimer{rel}} [(#GET{balise}|=={a}|oui) #SET{attributs,#GET{attributs}|dsfr_attribut_definir{aria-disabled,true}} #SET{attributs,#GET{attributs}|dsfr_attribut_definir{role,link}} ] [(#GET{balise}|=={button}|oui) #SET{attributs,#GET{attributs}|dsfr_attribut_definir{disabled,booleen}} ] ] <[(#GET{balise})][ class="(#GET{class}|dsfr_class_ajouter{#ENV{class}}|dsfr_class)"][ (#GET{attributs}|dsfr_attributs)]>[(#GET{texte})] ] #FILTRE{trim}