@lab-anssi/ui-kit 1.61.3 → 1.62.0
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.
- package/README.md +102 -21
- package/dist/assets/assets.d.ts +1 -0
- package/dist/assets/assets.js +1 -0
- package/dist/assets/dsfr-icons.css +1 -0
- package/dist/composants/Alerte.svelte +83 -0
- package/dist/composants/Alerte.svelte.d.ts +32 -0
- package/dist/composants/AncresParcours.svelte +132 -0
- package/dist/composants/AncresParcours.svelte.d.ts +11 -0
- package/dist/composants/BandeauPage.svelte +218 -0
- package/dist/composants/BandeauPage.svelte.d.ts +58 -0
- package/dist/composants/BlocFonctionnalites.svelte +570 -0
- package/dist/composants/BlocFonctionnalites.svelte.d.ts +105 -0
- package/dist/composants/Bouton.svelte +156 -0
- package/dist/composants/Bouton.svelte.d.ts +36 -0
- package/dist/composants/CentreAide.svelte +223 -0
- package/dist/composants/CentreAide.svelte.d.ts +41 -0
- package/dist/composants/FiltresCatalogue.svelte +147 -0
- package/dist/composants/FiltresCatalogue.svelte.d.ts +15 -0
- package/dist/composants/Icone.svelte +42 -0
- package/dist/composants/Icone.svelte.d.ts +7 -0
- package/dist/composants/Lien.svelte +233 -0
- package/dist/composants/Lien.svelte.d.ts +39 -0
- package/dist/composants/MultiSelect.svelte +931 -0
- package/dist/composants/MultiSelect.svelte.d.ts +51 -0
- package/dist/composants/Reactions.svelte +360 -0
- package/dist/composants/Reactions.svelte.d.ts +23 -0
- package/dist/composants/ResumePssi.svelte +92 -0
- package/dist/composants/ResumePssi.svelte.d.ts +6 -0
- package/dist/composants/Tag.svelte +113 -0
- package/dist/composants/Tag.svelte.d.ts +35 -0
- package/dist/composants/blog/BandeauTitre.svelte +150 -0
- package/dist/composants/blog/BandeauTitre.svelte.d.ts +29 -0
- package/dist/composants/blog/CarteArticle.svelte +69 -0
- package/dist/composants/blog/CarteArticle.svelte.d.ts +8 -0
- package/dist/composants/blog/IconeChevronBas.svelte +22 -0
- package/dist/composants/blog/IconeChevronBas.svelte.d.ts +26 -0
- package/dist/composants/blog/IconeMenuLateral.svelte +15 -0
- package/dist/composants/blog/IconeMenuLateral.svelte.d.ts +26 -0
- package/dist/composants/blog/ListeArticles.svelte +62 -0
- package/dist/composants/blog/ListeArticles.svelte.d.ts +9 -0
- package/dist/composants/blog/ListeDeroulante.svelte +57 -0
- package/dist/composants/blog/ListeDeroulante.svelte.d.ts +10 -0
- package/dist/composants/blog/PageCrisp.svelte +244 -0
- package/dist/composants/blog/PageCrisp.svelte.d.ts +8 -0
- package/dist/composants/blog/SommaireBureau.svelte +64 -0
- package/dist/composants/blog/SommaireBureau.svelte.d.ts +9 -0
- package/dist/composants/blog/SommaireMobile.svelte +115 -0
- package/dist/composants/blog/SommaireMobile.svelte.d.ts +9 -0
- package/dist/composants/carrousel-tuiles/CarrouselTuiles.svelte +184 -0
- package/dist/composants/carrousel-tuiles/CarrouselTuiles.svelte.d.ts +34 -0
- package/dist/composants/carrousel-tuiles/IconeFlecheDroite.svelte +16 -0
- package/dist/composants/carrousel-tuiles/IconeFlecheDroite.svelte.d.ts +26 -0
- package/dist/composants/carrousel-tuiles/IconeFlecheGauche.svelte +12 -0
- package/dist/composants/carrousel-tuiles/IconeFlecheGauche.svelte.d.ts +26 -0
- package/dist/composants/carrousel-tuiles/Tuile.svelte +72 -0
- package/dist/composants/carrousel-tuiles/Tuile.svelte.d.ts +10 -0
- package/dist/composants/icones/Fleche.svelte +25 -0
- package/dist/composants/icones/Fleche.svelte.d.ts +6 -0
- package/dist/composants/icones/LienExterne.svelte +20 -0
- package/dist/composants/icones/LienExterne.svelte.d.ts +6 -0
- package/dist/composants/marelle/Etape.svelte +165 -0
- package/dist/composants/marelle/Etape.svelte.d.ts +32 -0
- package/dist/composants/marelle/Marelle.svelte +97 -0
- package/dist/composants/marelle/Marelle.svelte.d.ts +44 -0
- package/dist/composants/mes-services-cyber/bandeau/Bandeau.svelte +158 -0
- package/dist/composants/mes-services-cyber/bandeau/Bandeau.svelte.d.ts +3 -0
- package/dist/composants/mes-services-cyber/lien/LienDiagnosticCyber.svelte +125 -0
- package/dist/composants/mes-services-cyber/lien/LienDiagnosticCyber.svelte.d.ts +7 -0
- package/dist/composants/pied-de-page/NavigationPiedDePage.svelte +62 -0
- package/dist/composants/pied-de-page/NavigationPiedDePage.svelte.d.ts +6 -0
- package/dist/composants/suite-cyber/AccueilSuiteCyber.svelte +96 -0
- package/dist/composants/suite-cyber/AccueilSuiteCyber.svelte.d.ts +6 -0
- package/dist/composants/suite-cyber/LiensSuiteCyber.svelte +99 -0
- package/dist/composants/suite-cyber/LiensSuiteCyber.svelte.d.ts +14 -0
- package/dist/composants/suite-cyber/SuiteCyber.svelte +296 -0
- package/dist/composants/suite-cyber/SuiteCyber.svelte.d.ts +6 -0
- package/dist/composants/vitrines-produits/briques/Brique.svelte +50 -0
- package/dist/composants/vitrines-produits/briques/Brique.svelte.d.ts +9 -0
- package/dist/composants/vitrines-produits/briques/BriqueContenuADeuxColonnes.svelte +144 -0
- package/dist/composants/vitrines-produits/briques/BriqueContenuADeuxColonnes.svelte.d.ts +29 -0
- package/dist/composants/vitrines-produits/briques/BriqueHero.svelte +246 -0
- package/dist/composants/vitrines-produits/briques/BriqueHero.svelte.d.ts +31 -0
- package/dist/composants/vitrines-produits/briques/BriqueTitreMultimedia.svelte +50 -0
- package/dist/composants/vitrines-produits/briques/BriqueTitreMultimedia.svelte.d.ts +25 -0
- package/dist/composants/vitrines-produits/briques/LecteurVideo.svelte +14 -0
- package/dist/composants/vitrines-produits/briques/LecteurVideo.svelte.d.ts +9 -0
- package/dist/composants/vitrines-produits/briques/PresentationANSSI.svelte +148 -0
- package/dist/composants/vitrines-produits/briques/PresentationANSSI.svelte.d.ts +37 -0
- package/dist/composants/vitrines-produits/briques/RejoindreLaCommunaute.svelte +139 -0
- package/dist/composants/vitrines-produits/briques/RejoindreLaCommunaute.svelte.d.ts +36 -0
- package/dist/composants/vitrines-produits/briques/temoignages/IconeTemoignage.svelte +18 -0
- package/dist/composants/vitrines-produits/briques/temoignages/IconeTemoignage.svelte.d.ts +26 -0
- package/dist/composants/vitrines-produits/briques/temoignages/Temoignages.svelte +168 -0
- package/dist/composants/vitrines-produits/briques/temoignages/Temoignages.svelte.d.ts +13 -0
- package/dist/directives/actions.svelte.d.ts +32 -0
- package/dist/directives/actions.svelte.js +158 -0
- package/dist/dsfr/DsfrAccordion.svelte +889 -0
- package/dist/dsfr/DsfrAccordion.svelte.d.ts +40 -0
- package/dist/dsfr/DsfrAlert.svelte +2097 -0
- package/dist/dsfr/DsfrAlert.svelte.d.ts +36 -0
- package/dist/dsfr/DsfrBadge.svelte +532 -0
- package/dist/dsfr/DsfrBadge.svelte.d.ts +41 -0
- package/dist/dsfr/DsfrBadgesGroup.svelte +610 -0
- package/dist/dsfr/DsfrBadgesGroup.svelte.d.ts +25 -0
- package/dist/dsfr/DsfrBreadcrumb.svelte +657 -0
- package/dist/dsfr/DsfrBreadcrumb.svelte.d.ts +25 -0
- package/dist/dsfr/DsfrButton.svelte +1821 -0
- package/dist/dsfr/DsfrButton.svelte.d.ts +68 -0
- package/dist/dsfr/DsfrButtonsGroup.svelte +1896 -0
- package/dist/dsfr/DsfrButtonsGroup.svelte.d.ts +36 -0
- package/dist/dsfr/DsfrCallout.svelte +242 -0
- package/dist/dsfr/DsfrCallout.svelte.d.ts +46 -0
- package/dist/dsfr/DsfrCard.svelte +10223 -0
- package/dist/dsfr/DsfrCard.svelte.d.ts +102 -0
- package/dist/dsfr/DsfrCheckbox.svelte +1280 -0
- package/dist/dsfr/DsfrCheckbox.svelte.d.ts +69 -0
- package/dist/dsfr/DsfrCheckboxesGroup.svelte +1532 -0
- package/dist/dsfr/DsfrCheckboxesGroup.svelte.d.ts +73 -0
- package/dist/dsfr/DsfrConnect.svelte +511 -0
- package/dist/dsfr/DsfrConnect.svelte.d.ts +15 -0
- package/dist/dsfr/DsfrContainer.svelte +894 -0
- package/dist/dsfr/DsfrContainer.svelte.d.ts +31 -0
- package/dist/dsfr/DsfrContent.svelte +1140 -0
- package/dist/dsfr/DsfrContent.svelte.d.ts +60 -0
- package/dist/dsfr/DsfrDropdown.svelte +335 -0
- package/dist/dsfr/DsfrDropdown.svelte.d.ts +73 -0
- package/dist/dsfr/DsfrFooter.svelte +2370 -0
- package/dist/dsfr/DsfrFooter.svelte.d.ts +77 -0
- package/dist/dsfr/DsfrHeader.svelte +4162 -0
- package/dist/dsfr/DsfrHeader.svelte.d.ts +131 -0
- package/dist/dsfr/DsfrHighlight.svelte +294 -0
- package/dist/dsfr/DsfrHighlight.svelte.d.ts +33 -0
- package/dist/dsfr/DsfrInput.svelte +1270 -0
- package/dist/dsfr/DsfrInput.svelte.d.ts +86 -0
- package/dist/dsfr/DsfrLabel.svelte +438 -0
- package/dist/dsfr/DsfrLabel.svelte.d.ts +65 -0
- package/dist/dsfr/DsfrLink.svelte +1007 -0
- package/dist/dsfr/DsfrLink.svelte.d.ts +66 -0
- package/dist/dsfr/DsfrLogo.svelte +228 -0
- package/dist/dsfr/DsfrLogo.svelte.d.ts +11 -0
- package/dist/dsfr/DsfrMessagesGroup.svelte +260 -0
- package/dist/dsfr/DsfrMessagesGroup.svelte.d.ts +46 -0
- package/dist/dsfr/DsfrModal.svelte +2983 -0
- package/dist/dsfr/DsfrModal.svelte.d.ts +56 -0
- package/dist/dsfr/DsfrNavigation.svelte +7626 -0
- package/dist/dsfr/DsfrNotice.svelte +2948 -0
- package/dist/dsfr/DsfrNotice.svelte.d.ts +37 -0
- package/dist/dsfr/DsfrPagination.svelte +1036 -0
- package/dist/dsfr/DsfrPagination.svelte.d.ts +35 -0
- package/dist/dsfr/DsfrQuote.svelte +646 -0
- package/dist/dsfr/DsfrQuote.svelte.d.ts +29 -0
- package/dist/dsfr/DsfrRadio.svelte +1307 -0
- package/dist/dsfr/DsfrRadio.svelte.d.ts +37 -0
- package/dist/dsfr/DsfrRadiosGroup.svelte +1629 -0
- package/dist/dsfr/DsfrRadiosGroup.svelte.d.ts +76 -0
- package/dist/dsfr/DsfrRange.svelte +1329 -0
- package/dist/dsfr/DsfrRange.svelte.d.ts +77 -0
- package/dist/dsfr/DsfrSearch.svelte +2015 -0
- package/dist/dsfr/DsfrSearch.svelte.d.ts +51 -0
- package/dist/dsfr/DsfrSegmented.svelte +422 -0
- package/dist/dsfr/DsfrSegmented.svelte.d.ts +34 -0
- package/dist/dsfr/DsfrSelect.svelte +1068 -0
- package/dist/dsfr/DsfrSelect.svelte.d.ts +86 -0
- package/dist/dsfr/DsfrShare.svelte +2228 -0
- package/dist/dsfr/DsfrShare.svelte.d.ts +40 -0
- package/dist/dsfr/DsfrSideMenu.svelte +1211 -0
- package/dist/dsfr/DsfrSideMenu.svelte.d.ts +34 -0
- package/dist/dsfr/DsfrSkipLink.svelte +990 -0
- package/dist/dsfr/DsfrSkipLink.svelte.d.ts +13 -0
- package/dist/dsfr/DsfrStepper.svelte +340 -0
- package/dist/dsfr/DsfrStepper.svelte.d.ts +18 -0
- package/dist/dsfr/DsfrTable.svelte +829 -0
- package/dist/dsfr/DsfrTable.svelte.d.ts +202 -0
- package/dist/dsfr/DsfrTabnav.svelte +1149 -0
- package/dist/dsfr/DsfrTabnav.svelte.d.ts +36 -0
- package/dist/dsfr/DsfrTabs.svelte +926 -0
- package/dist/dsfr/DsfrTabs.svelte.d.ts +28 -0
- package/dist/dsfr/DsfrTag.svelte +1269 -0
- package/dist/dsfr/DsfrTag.svelte.d.ts +59 -0
- package/dist/dsfr/DsfrTagsGroup.svelte +1351 -0
- package/dist/dsfr/DsfrTagsGroup.svelte.d.ts +37 -0
- package/dist/dsfr/DsfrTextarea.svelte +1385 -0
- package/dist/dsfr/DsfrTextarea.svelte.d.ts +72 -0
- package/dist/dsfr/DsfrTile.svelte +7645 -0
- package/dist/dsfr/DsfrTile.svelte.d.ts +79 -0
- package/dist/dsfr/DsfrToggle.svelte +1453 -0
- package/dist/dsfr/DsfrToggle.svelte.d.ts +56 -0
- package/dist/dsfr/DsfrTooltip.svelte +396 -0
- package/dist/dsfr/DsfrTooltip.svelte.d.ts +36 -0
- package/dist/dsfr/DsfrTranscription.svelte +2962 -0
- package/dist/dsfr/DsfrTranscription.svelte.d.ts +39 -0
- package/dist/dsfr/DsfrTranslate.svelte +1384 -0
- package/dist/dsfr/DsfrTranslate.svelte.d.ts +19 -0
- package/dist/dsfr/DsfrUser.svelte +736 -0
- package/dist/dsfr/DsfrUser.svelte.d.ts +65 -0
- package/dist/index.d.ts +79 -0
- package/dist/index.js +79 -0
- package/dist/styles/apparence-bouton.scss +154 -0
- package/dist/styles/dsfr-icons.css +1 -0
- package/dist/styles/dsfr-icons.scss +4 -0
- package/dist/styles/dsfr-variables.scss +28 -0
- package/dist/styles/mixins-dsfr.scss +226 -0
- package/dist/styles/mixins.scss +51 -0
- package/dist/types/commun.d.ts +63 -0
- package/dist/types/commun.js +1 -0
- package/dist/types/global.d.ts +24 -0
- package/dist/types/global.js +9 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.js +1 -0
- package/dist/ui-kit-components.json +142 -100
- package/dist/utilitaires/createFormValidation.svelte.d.ts +34 -0
- package/dist/utilitaires/createFormValidation.svelte.js +183 -0
- package/dist/utilitaires/icons-stylesheet.d.ts +370 -0
- package/dist/utilitaires/icons-stylesheet.js +33 -0
- package/dist/utilitaires/index.d.ts +14 -0
- package/dist/utilitaires/index.js +26 -0
- package/dist/web-types.json +149 -101
- package/dist/webcomponents/lab-anssi-ui-kit.iife.js +36 -9
- package/dist/webcomponents/lab-anssi-ui-kit.jsx.d.ts +42 -24
- package/package.json +49 -43
- package/dist/index.html +0 -0
|
@@ -0,0 +1,829 @@
|
|
|
1
|
+
<svelte:options
|
|
2
|
+
customElement={{
|
|
3
|
+
tag: "dsfr-table",
|
|
4
|
+
props: {
|
|
5
|
+
id: { attribute: "id", type: "String" },
|
|
6
|
+
caption: { attribute: "caption", type: "String" },
|
|
7
|
+
captionDetail: { attribute: "caption-detail", type: "String" },
|
|
8
|
+
noCaption: { attribute: "no-caption", type: "Boolean" },
|
|
9
|
+
captionBottom: { attribute: "caption-bottom", type: "Boolean" },
|
|
10
|
+
bordered: { attribute: "bordered", type: "Boolean" },
|
|
11
|
+
noScroll: { attribute: "no-scroll", type: "Boolean" },
|
|
12
|
+
multiline: { attribute: "multiline", type: "Boolean" },
|
|
13
|
+
layoutFixed: { attribute: "layout-fixed", type: "Boolean" },
|
|
14
|
+
size: { attribute: "size", type: "String" },
|
|
15
|
+
fixedFirstCellHead: { attribute: "fixed-first-cell-head", type: "Boolean" },
|
|
16
|
+
hasHeader: { attribute: "has-header", type: "Boolean" },
|
|
17
|
+
hasHeaderSegmented: { attribute: "has-header-segmented", type: "Boolean" },
|
|
18
|
+
hasHeaderSearch: { attribute: "has-header-search", type: "Boolean" },
|
|
19
|
+
hasHeaderDetails: { attribute: "has-header-details", type: "Boolean" },
|
|
20
|
+
headerDetails: { attribute: "header-details", type: "String" },
|
|
21
|
+
hasHeaderButtons: { attribute: "has-header-buttons", type: "Boolean" },
|
|
22
|
+
hasFooter: { attribute: "has-footer", type: "Boolean" },
|
|
23
|
+
hasFooterSelect: { attribute: "has-footer-select", type: "Boolean" },
|
|
24
|
+
hasFooterPagination: { attribute: "has-footer-pagination", type: "Boolean" },
|
|
25
|
+
hasFooterButtons: { attribute: "has-footer-buttons", type: "Boolean" },
|
|
26
|
+
table: { attribute: "table", type: "Object" },
|
|
27
|
+
columns: { attribute: "columns", type: "Array" },
|
|
28
|
+
rows: { attribute: "rows", type: "Array" },
|
|
29
|
+
itemsPerPage: { attribute: "items-per-page", type: "Array" },
|
|
30
|
+
totalRows: { attribute: "total-rows", type: "Number" },
|
|
31
|
+
rich: { attribute: "rich", type: "Boolean" },
|
|
32
|
+
selectable: { attribute: "selectable", type: "Boolean" },
|
|
33
|
+
selectAll: { attribute: "select-all", type: "Boolean" },
|
|
34
|
+
rowKey: { attribute: "row-key", type: "String" },
|
|
35
|
+
selectedRowKeys: { attribute: "selected-row-keys", type: "Array" },
|
|
36
|
+
disabledRowKeys: { attribute: "disabled-row-keys", type: "Array" },
|
|
37
|
+
},
|
|
38
|
+
}}
|
|
39
|
+
/>
|
|
40
|
+
|
|
41
|
+
<script lang="ts">import { setThemeable } from "../utilitaires";
|
|
42
|
+
import { setIndeterminate } from "../directives/actions.svelte";
|
|
43
|
+
import DsfrPagination from "./DsfrPagination.svelte";
|
|
44
|
+
import DsfrSelect from "./DsfrSelect.svelte";
|
|
45
|
+
setThemeable($host());
|
|
46
|
+
let wrapperEl = $state();
|
|
47
|
+
let captionEl = $state();
|
|
48
|
+
/**
|
|
49
|
+
* Observateur de redimensionnement qui met à jour le décalage du tableau en fonction de la hauteur de la légende.
|
|
50
|
+
* Calcule la hauteur de la légende et définit la variable CSS `--table-offset` pour ajuster l'espacement du wrapper.
|
|
51
|
+
* Le callback `update` est appelé chaque fois que la légende change de taille.
|
|
52
|
+
*/
|
|
53
|
+
$effect(() => {
|
|
54
|
+
if (noCaption || !wrapperEl || !captionEl) {
|
|
55
|
+
wrapperEl?.style.removeProperty("--table-offset");
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
const update = () => {
|
|
59
|
+
wrapperEl.style.removeProperty("--table-offset");
|
|
60
|
+
const height = captionEl.getBoundingClientRect().height;
|
|
61
|
+
wrapperEl.style.setProperty("--table-offset", `calc(${height}px + 1rem)`);
|
|
62
|
+
};
|
|
63
|
+
update();
|
|
64
|
+
const observer = new ResizeObserver(update);
|
|
65
|
+
observer.observe(captionEl);
|
|
66
|
+
return () => observer.disconnect();
|
|
67
|
+
});
|
|
68
|
+
let { id, caption, captionDetail, noCaption = false, captionBottom = false, bordered = false, noScroll = false, multiline = false, layoutFixed = false, size = "md", fixedFirstCellHead = false, hasHeader = false, hasHeaderSegmented = false, hasHeaderSearch = false, hasHeaderDetails = false, headerDetails, hasHeaderButtons = false, hasFooter = false, hasFooterSelect = false, hasFooterPagination = false, hasFooterButtons = false, table, columns, rows, itemsPerPage = [
|
|
69
|
+
5,
|
|
70
|
+
10,
|
|
71
|
+
20
|
|
72
|
+
], totalRows, onpagechanged, onrowsperpagechanged, rich = false, selectable = false, selectAll = false, rowKey, selectedRowKeys, disabledRowKeys, onselectionchanged } = $props();
|
|
73
|
+
// Génère l'en-tête du tableau à partir de `columns` si fournies _(custom API)_, sinon à partir de `table` _(API DSFR)_.
|
|
74
|
+
let computedThead = $derived(columns ? [columns.map((col) => ({
|
|
75
|
+
content: col.label,
|
|
76
|
+
size: col.size,
|
|
77
|
+
align: col.align,
|
|
78
|
+
valign: col.valign,
|
|
79
|
+
fixed: col.fixed,
|
|
80
|
+
sort: col.sort,
|
|
81
|
+
inline: col.inline,
|
|
82
|
+
multiline: col.multiline
|
|
83
|
+
}))] : table?.thead ?? []);
|
|
84
|
+
// Génère le corps du tableau à partir de `rows` et `columns` si fournies _(custom API)_, sinon à partir de `table` _(API DSFR)_.
|
|
85
|
+
let computedTbodies = $derived(rows && columns ? [rows.map((row) => columns.map((col) => ({
|
|
86
|
+
content: row[col.key] != null ? String(row[col.key]) : "",
|
|
87
|
+
align: col.align,
|
|
88
|
+
valign: col.valign,
|
|
89
|
+
fixed: col.fixed,
|
|
90
|
+
inline: col.inline,
|
|
91
|
+
multiline: col.multiline
|
|
92
|
+
})))] : table?.tbodies ?? []);
|
|
93
|
+
// En mode serveur (présence de `totalRows`), le consommateur final gère le découpage, le composant lui affiche toutes les lignes reçues.
|
|
94
|
+
// En mode client (mode par défaut), le composant calcule lui-même le nombre total depuis les données.
|
|
95
|
+
let isServerSide = $derived(totalRows !== undefined);
|
|
96
|
+
let nbRows = $derived(isServerSide ? totalRows ?? 0 : computedTbodies[0]?.length ?? 0);
|
|
97
|
+
let rowsPerPage = $derived(itemsPerPage[0]);
|
|
98
|
+
let currentPage = $state(1);
|
|
99
|
+
let totalPages = $derived(Math.ceil(nbRows / rowsPerPage));
|
|
100
|
+
// Calcule les lignes à afficher en fonction du mode (serveur/client) et de la pagination
|
|
101
|
+
let displayedRows = $derived.by(() => {
|
|
102
|
+
const allRows = computedTbodies[0] ?? [];
|
|
103
|
+
// En mode serveur, toutes les lignes reçues sont déjà filtrées par le parent
|
|
104
|
+
if (isServerSide) return allRows;
|
|
105
|
+
// Sans pagination ni sélection, afficher toutes les lignes
|
|
106
|
+
if (!hasFooterSelect && !hasFooterPagination) return allRows;
|
|
107
|
+
// Découper les lignes selon la page courante et le nombre de lignes par page
|
|
108
|
+
return allRows.slice((currentPage - 1) * rowsPerPage, currentPage * rowsPerPage);
|
|
109
|
+
});
|
|
110
|
+
let paginationPages = $derived(Array.from({ length: totalPages }, (_, i) => ({
|
|
111
|
+
label: String(i + 1),
|
|
112
|
+
title: `Page ${i + 1}`,
|
|
113
|
+
href: "#",
|
|
114
|
+
displayedLg: false
|
|
115
|
+
})));
|
|
116
|
+
/**
|
|
117
|
+
* Gère le changement du nombre de lignes à afficher par page.
|
|
118
|
+
* Réinitialise la page courante à 1 et émet l'événement associé.
|
|
119
|
+
*
|
|
120
|
+
* @param {string} value - La nouvelle valeur du nombre de lignes par page (sous forme de chaîne)
|
|
121
|
+
*/
|
|
122
|
+
function handleRowsPerPageChange(value) {
|
|
123
|
+
const newValue = parseInt(value, 10);
|
|
124
|
+
rowsPerPage = newValue;
|
|
125
|
+
currentPage = 1;
|
|
126
|
+
onrowsperpagechanged?.(newValue);
|
|
127
|
+
$host()?.dispatchEvent(new CustomEvent("rowsperpagechanged", {
|
|
128
|
+
detail: newValue,
|
|
129
|
+
bubbles: true
|
|
130
|
+
}));
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Gère le changement de page.
|
|
134
|
+
* Met à jour la page courante et émet l'événement associé.
|
|
135
|
+
*
|
|
136
|
+
* @param {number} page - La nouvelle page courante
|
|
137
|
+
*/
|
|
138
|
+
function handlePageChange(page) {
|
|
139
|
+
currentPage = page;
|
|
140
|
+
onpagechanged?.(page);
|
|
141
|
+
$host()?.dispatchEvent(new CustomEvent("pagechanged", {
|
|
142
|
+
detail: page,
|
|
143
|
+
bubbles: true
|
|
144
|
+
}));
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Récupère la clé d'une ligne.
|
|
148
|
+
* En l'absence de `rowKey`, l'index de la ligne sert d'identifiant.
|
|
149
|
+
*
|
|
150
|
+
* @param row - La ligne dont on veut obtenir la clé
|
|
151
|
+
* @param rowIndex - L'index de la ligne
|
|
152
|
+
*
|
|
153
|
+
* @returns La clé de la ligne (propriété `rowKey` ou index)
|
|
154
|
+
*/
|
|
155
|
+
function getRowKey(row, rowIndex) {
|
|
156
|
+
if (rowKey && row[rowKey] != null) return row[rowKey];
|
|
157
|
+
return rowIndex;
|
|
158
|
+
}
|
|
159
|
+
let internalSelectedKeys = $state([]);
|
|
160
|
+
let isSelectionControlled = $derived(selectedRowKeys !== undefined);
|
|
161
|
+
let activeSelectedKeys = $derived(isSelectionControlled ? selectedRowKeys ?? [] : internalSelectedKeys);
|
|
162
|
+
let selectedKeysSet = $derived(new Set(activeSelectedKeys));
|
|
163
|
+
let disabledKeysSet = $derived(new Set(disabledRowKeys ?? []));
|
|
164
|
+
let displayedRowKeys = $derived.by(() => {
|
|
165
|
+
if (!selectable || !selectAll) return [];
|
|
166
|
+
return displayedRows.map((_, index) => {
|
|
167
|
+
const rowIndex = (currentPage - 1) * rowsPerPage + index;
|
|
168
|
+
const originalRow = rows?.[isServerSide ? index : rowIndex] ?? {};
|
|
169
|
+
return getRowKey(originalRow, rowIndex);
|
|
170
|
+
}).filter((key) => !disabledKeysSet.has(key));
|
|
171
|
+
});
|
|
172
|
+
let allRowsSelected = $derived(displayedRowKeys.length > 0 && displayedRowKeys.every((key) => selectedKeysSet.has(key)));
|
|
173
|
+
let someRowsSelected = $derived(displayedRowKeys.some((key) => selectedKeysSet.has(key)) && !allRowsSelected);
|
|
174
|
+
/**
|
|
175
|
+
* Vérifie si une ligne est actuellement sélectionnée.
|
|
176
|
+
*
|
|
177
|
+
* @param row - La ligne à vérifier
|
|
178
|
+
* @param rowIndex - L'index de la ligne
|
|
179
|
+
*
|
|
180
|
+
* @returns `true` si la ligne est sélectionnée, `false` sinon
|
|
181
|
+
*/
|
|
182
|
+
function isRowSelected(row, rowIndex) {
|
|
183
|
+
return selectedKeysSet.has(getRowKey(row, rowIndex));
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Vérifie si une ligne est actuellement désactivée.
|
|
187
|
+
*
|
|
188
|
+
* @param row - La ligne à vérifier
|
|
189
|
+
* @param rowIndex - L'index de la ligne
|
|
190
|
+
*
|
|
191
|
+
* @returns `true` si la ligne est désactivée, `false` sinon
|
|
192
|
+
*/
|
|
193
|
+
function isRowDisabled(row, rowIndex) {
|
|
194
|
+
return disabledKeysSet.has(getRowKey(row, rowIndex));
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Gère la sélection ou la désélection d'une ligne du tableau.
|
|
198
|
+
*
|
|
199
|
+
* Met à jour l'état interne de sélection (ou contrôlé de l'extérieur) et déclenche
|
|
200
|
+
* les callbacks et événements appropriés avec la liste mise à jour des clés sélectionnées
|
|
201
|
+
* et des lignes correspondantes.
|
|
202
|
+
*
|
|
203
|
+
* @param row - La ligne à sélectionner ou désélectionner
|
|
204
|
+
* @param rowIndex - L'index de la ligne dans le tableau
|
|
205
|
+
* @param checked - Indique si la ligne doit être sélectionnée (`true`) ou désélectionnée (`false`)
|
|
206
|
+
*/
|
|
207
|
+
function handleRowSelection(row, rowIndex, checked) {
|
|
208
|
+
const key = getRowKey(row, rowIndex);
|
|
209
|
+
// eslint-disable-next-line svelte/prefer-svelte-reactivity
|
|
210
|
+
const updatedSelection = new Set(activeSelectedKeys);
|
|
211
|
+
if (checked) updatedSelection.add(key);
|
|
212
|
+
else updatedSelection.delete(key);
|
|
213
|
+
const updatedKeys = Array.from(updatedSelection);
|
|
214
|
+
const updatedRows = (rows ?? []).filter((r, i) => updatedSelection.has(getRowKey(r, i)));
|
|
215
|
+
if (!isSelectionControlled) internalSelectedKeys = updatedKeys;
|
|
216
|
+
onselectionchanged?.(updatedKeys, updatedRows);
|
|
217
|
+
$host()?.dispatchEvent(new CustomEvent("selectionchanged", {
|
|
218
|
+
detail: {
|
|
219
|
+
keys: updatedKeys,
|
|
220
|
+
rows: updatedRows
|
|
221
|
+
},
|
|
222
|
+
bubbles: true
|
|
223
|
+
}));
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Sélectionne ou désélectionne toutes les lignes actuellement affichées,
|
|
227
|
+
* puis émet l'événement de changement de sélection.
|
|
228
|
+
*
|
|
229
|
+
* @param checked - Indique si toutes les lignes visibles doivent être sélectionnées (`true`) ou désélectionnées (`false`).
|
|
230
|
+
*/
|
|
231
|
+
function handleSelectAll(checked) {
|
|
232
|
+
// eslint-disable-next-line svelte/prefer-svelte-reactivity
|
|
233
|
+
const updatedSelection = new Set(activeSelectedKeys);
|
|
234
|
+
for (const key of displayedRowKeys) {
|
|
235
|
+
if (checked) updatedSelection.add(key);
|
|
236
|
+
else updatedSelection.delete(key);
|
|
237
|
+
}
|
|
238
|
+
const updatedKeys = Array.from(updatedSelection);
|
|
239
|
+
const updatedRows = (rows ?? []).filter((r, i) => updatedSelection.has(getRowKey(r, i)));
|
|
240
|
+
if (!isSelectionControlled) internalSelectedKeys = updatedKeys;
|
|
241
|
+
onselectionchanged?.(updatedKeys, updatedRows);
|
|
242
|
+
$host()?.dispatchEvent(new CustomEvent("selectionchanged", {
|
|
243
|
+
detail: {
|
|
244
|
+
keys: updatedKeys,
|
|
245
|
+
rows: updatedRows
|
|
246
|
+
},
|
|
247
|
+
bubbles: true
|
|
248
|
+
}));
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Action Svelte : crée un `<slot name="...">` programmatiquement dans le `<td>`,
|
|
252
|
+
* en déplaçant le contenu Svelte existant comme fallback du slot.
|
|
253
|
+
* Contourne la restriction compile-time de Svelte sur les noms de slot dynamiques.
|
|
254
|
+
* Est un no-op si `slotName` est null (mode non-rich).
|
|
255
|
+
*/
|
|
256
|
+
function cellSlot(node, slotName) {
|
|
257
|
+
if (!slotName) return;
|
|
258
|
+
const slot = document.createElement("slot");
|
|
259
|
+
slot.name = slotName;
|
|
260
|
+
while (node.firstChild) {
|
|
261
|
+
slot.appendChild(node.firstChild);
|
|
262
|
+
}
|
|
263
|
+
node.appendChild(slot);
|
|
264
|
+
return {
|
|
265
|
+
update(newSlotName) {
|
|
266
|
+
if (newSlotName) slot.name = newSlotName;
|
|
267
|
+
},
|
|
268
|
+
destroy() {
|
|
269
|
+
while (slot.firstChild) {
|
|
270
|
+
node.insertBefore(slot.firstChild, slot);
|
|
271
|
+
}
|
|
272
|
+
slot.remove();
|
|
273
|
+
}
|
|
274
|
+
};
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Action Svelte : observe la hauteur du `<tr>` et synchronise la CSS custom property `--row-height`,
|
|
278
|
+
* reproduisant le comportement de `table-row.js` du DSFR.
|
|
279
|
+
*/
|
|
280
|
+
function rowHeight(node, enabled) {
|
|
281
|
+
const ROW_HEIGHT_OFFSET_PX = 2;
|
|
282
|
+
let height = 0;
|
|
283
|
+
let observer;
|
|
284
|
+
const update = () => {
|
|
285
|
+
const newHeight = node.getBoundingClientRect().height + ROW_HEIGHT_OFFSET_PX;
|
|
286
|
+
if (height === newHeight) return;
|
|
287
|
+
height = newHeight;
|
|
288
|
+
node.style.setProperty("--row-height", `${height}px`);
|
|
289
|
+
};
|
|
290
|
+
const start = () => {
|
|
291
|
+
if (observer) return;
|
|
292
|
+
update();
|
|
293
|
+
observer = new ResizeObserver(update);
|
|
294
|
+
observer.observe(node);
|
|
295
|
+
};
|
|
296
|
+
const stop = () => {
|
|
297
|
+
observer?.disconnect();
|
|
298
|
+
observer = undefined;
|
|
299
|
+
height = 0;
|
|
300
|
+
node.style.removeProperty("--row-height");
|
|
301
|
+
};
|
|
302
|
+
if (enabled) start();
|
|
303
|
+
return {
|
|
304
|
+
update(newEnabled) {
|
|
305
|
+
if (newEnabled) start();
|
|
306
|
+
else stop();
|
|
307
|
+
},
|
|
308
|
+
destroy() {
|
|
309
|
+
stop();
|
|
310
|
+
}
|
|
311
|
+
};
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* Génère les classes CSS applicables à une cellule de tableau en fonction de ses propriétés.
|
|
315
|
+
*
|
|
316
|
+
* @param cell La cellule dont les classes doivent être générées
|
|
317
|
+
* @param isHeader Indique si la cellule est un en-tête de colonne
|
|
318
|
+
* @param forceFixed Force l'application de la classe de cellule fixe
|
|
319
|
+
* @returns Les classes CSS à appliquer à la cellule
|
|
320
|
+
*/
|
|
321
|
+
function getCellClasses(cell, isHeader = false, forceFixed = false) {
|
|
322
|
+
const classes = [];
|
|
323
|
+
if ("size" in cell && cell.size) classes.push(`fr-col--${cell.size}`);
|
|
324
|
+
if (cell.align === "center") classes.push("fr-cell--center");
|
|
325
|
+
if (cell.align === "right") classes.push("fr-cell--right");
|
|
326
|
+
if (cell.valign === "top") classes.push("fr-cell--top");
|
|
327
|
+
if (cell.valign === "bottom") classes.push("fr-cell--bottom");
|
|
328
|
+
if (forceFixed || cell.fixed === true) classes.push("fr-cell--fixed");
|
|
329
|
+
else if (typeof cell.fixed === "string") classes.push(`fr-cell--fixed@${cell.fixed}`);
|
|
330
|
+
if (cell.inline) classes.push("fr-cell--inline");
|
|
331
|
+
if (cell.multiline) classes.push("fr-cell--multiline");
|
|
332
|
+
if (isHeader && "sort" in cell && cell.sort) classes.push("fr-cell--sort");
|
|
333
|
+
return classes;
|
|
334
|
+
}
|
|
335
|
+
</script>
|
|
336
|
+
|
|
337
|
+
<div
|
|
338
|
+
id={id ? `${id}-component` : undefined}
|
|
339
|
+
class={["fr-table", `fr-table--${size}`]}
|
|
340
|
+
class:fr-table--no-caption={noCaption}
|
|
341
|
+
class:fr-table--caption-bottom={!noCaption && captionBottom}
|
|
342
|
+
class:fr-table--bordered={bordered}
|
|
343
|
+
class:fr-table--no-scroll={noScroll}
|
|
344
|
+
class:fr-table--multiline={multiline}
|
|
345
|
+
class:fr-table--layout-fixed={layoutFixed}
|
|
346
|
+
data-fr-js-table="true"
|
|
347
|
+
>
|
|
348
|
+
{#if hasHeader}
|
|
349
|
+
<div class="fr-table__header">
|
|
350
|
+
{#if hasHeaderSegmented}
|
|
351
|
+
<slot name="headersegmented"></slot>
|
|
352
|
+
{/if}
|
|
353
|
+
|
|
354
|
+
{#if hasHeaderSearch}
|
|
355
|
+
<slot name="headersearch"></slot>
|
|
356
|
+
{/if}
|
|
357
|
+
|
|
358
|
+
{#if hasHeaderDetails && headerDetails}
|
|
359
|
+
<p class="fr-table__detail">{headerDetails}</p>
|
|
360
|
+
{/if}
|
|
361
|
+
|
|
362
|
+
{#if hasHeaderButtons}
|
|
363
|
+
<slot name="headerbuttons"></slot>
|
|
364
|
+
{/if}
|
|
365
|
+
|
|
366
|
+
<slot name="tableheader"></slot>
|
|
367
|
+
</div>
|
|
368
|
+
{/if}
|
|
369
|
+
|
|
370
|
+
<div bind:this={wrapperEl} class="fr-table__wrapper">
|
|
371
|
+
<div class="fr-table__container">
|
|
372
|
+
<div class="fr-table__content">
|
|
373
|
+
<slot name="tablecontent">
|
|
374
|
+
<table {id}>
|
|
375
|
+
<caption bind:this={captionEl}>
|
|
376
|
+
{caption}
|
|
377
|
+
{#if captionDetail}
|
|
378
|
+
<div class="fr-table__caption__desc">{captionDetail}</div>
|
|
379
|
+
{/if}
|
|
380
|
+
</caption>
|
|
381
|
+
|
|
382
|
+
{#if computedThead.length}
|
|
383
|
+
<thead>
|
|
384
|
+
{#each computedThead as row, headerRowIndex (headerRowIndex)}
|
|
385
|
+
<tr>
|
|
386
|
+
{#if selectable && headerRowIndex === 0}
|
|
387
|
+
<th class="fr-cell--fixed" role="columnheader">
|
|
388
|
+
{#if selectAll}
|
|
389
|
+
{@const selectAllId = `${id ?? "table"}-select-all`}
|
|
390
|
+
|
|
391
|
+
<div class="fr-checkbox-group fr-checkbox-group--sm">
|
|
392
|
+
<input
|
|
393
|
+
type="checkbox"
|
|
394
|
+
id={selectAllId}
|
|
395
|
+
checked={allRowsSelected}
|
|
396
|
+
use:setIndeterminate={someRowsSelected}
|
|
397
|
+
onchange={(event) =>
|
|
398
|
+
handleSelectAll((event.currentTarget as HTMLInputElement).checked)}
|
|
399
|
+
/>
|
|
400
|
+
<label class="fr-label" for={selectAllId}> Sélectionner tout </label>
|
|
401
|
+
</div>
|
|
402
|
+
{:else}
|
|
403
|
+
<span class="fr-sr-only">Sélectionner</span>
|
|
404
|
+
{/if}
|
|
405
|
+
</th>
|
|
406
|
+
{/if}
|
|
407
|
+
{#each row as cell, colIndex (colIndex)}
|
|
408
|
+
<th
|
|
409
|
+
scope="col"
|
|
410
|
+
class={getCellClasses(
|
|
411
|
+
cell,
|
|
412
|
+
true,
|
|
413
|
+
fixedFirstCellHead && headerRowIndex === 0 && colIndex === 0,
|
|
414
|
+
)}
|
|
415
|
+
>
|
|
416
|
+
{cell.content}
|
|
417
|
+
</th>
|
|
418
|
+
{/each}
|
|
419
|
+
</tr>
|
|
420
|
+
{/each}
|
|
421
|
+
</thead>
|
|
422
|
+
{/if}
|
|
423
|
+
|
|
424
|
+
{#if nbRows === 0}
|
|
425
|
+
<tbody>
|
|
426
|
+
<tr>
|
|
427
|
+
<td colspan={(computedThead[0]?.length ?? 1) + (selectable ? 1 : 0)}>
|
|
428
|
+
<slot name="empty"></slot>
|
|
429
|
+
</td>
|
|
430
|
+
</tr>
|
|
431
|
+
</tbody>
|
|
432
|
+
{:else}
|
|
433
|
+
{#each computedTbodies as tbody, tIndex (tIndex)}
|
|
434
|
+
<tbody>
|
|
435
|
+
{#each tIndex === 0 ? displayedRows : tbody as row, index (index)}
|
|
436
|
+
{@const rowIndex =
|
|
437
|
+
tIndex === 0 ? (currentPage - 1) * rowsPerPage + index : index}
|
|
438
|
+
{@const originalRow =
|
|
439
|
+
tIndex === 0 ? (rows?.[isServerSide ? index : rowIndex] ?? {}) : undefined}
|
|
440
|
+
{@const selected =
|
|
441
|
+
selectable && originalRow ? isRowSelected(originalRow, rowIndex) : undefined}
|
|
442
|
+
{@const disabled =
|
|
443
|
+
selectable && originalRow ? isRowDisabled(originalRow, rowIndex) : undefined}
|
|
444
|
+
|
|
445
|
+
<tr
|
|
446
|
+
use:rowHeight={selectable && tIndex === 0}
|
|
447
|
+
id={id ? `${id}-row-key-${rowIndex}` : undefined}
|
|
448
|
+
data-row-key={rowIndex}
|
|
449
|
+
aria-selected={selected}
|
|
450
|
+
>
|
|
451
|
+
{#if selectable && tIndex === 0 && originalRow}
|
|
452
|
+
{@const checkboxId = `${id ?? "table"}-select-checkbox-${rowIndex}`}
|
|
453
|
+
|
|
454
|
+
<th class="fr-cell--fixed" scope="row">
|
|
455
|
+
<div class="fr-checkbox-group fr-checkbox-group--sm">
|
|
456
|
+
<input
|
|
457
|
+
type="checkbox"
|
|
458
|
+
data-fr-row-select="true"
|
|
459
|
+
id={checkboxId}
|
|
460
|
+
checked={selected}
|
|
461
|
+
{disabled}
|
|
462
|
+
onchange={(event) =>
|
|
463
|
+
handleRowSelection(
|
|
464
|
+
originalRow,
|
|
465
|
+
rowIndex,
|
|
466
|
+
(event.currentTarget as HTMLInputElement).checked,
|
|
467
|
+
)}
|
|
468
|
+
/>
|
|
469
|
+
<label class="fr-label" for={checkboxId}>
|
|
470
|
+
Sélectionner la ligne {rowIndex + 1}
|
|
471
|
+
</label>
|
|
472
|
+
</div>
|
|
473
|
+
</th>
|
|
474
|
+
{/if}
|
|
475
|
+
{#each row as cell, cellIndex (cellIndex)}
|
|
476
|
+
{@const col = columns?.[cellIndex]}
|
|
477
|
+
<td
|
|
478
|
+
class={getCellClasses(cell)}
|
|
479
|
+
use:cellSlot={col && (rich || col.rich)
|
|
480
|
+
? `cell:${col.key}:${rowIndex}`
|
|
481
|
+
: null}
|
|
482
|
+
>
|
|
483
|
+
{cell.content}
|
|
484
|
+
</td>
|
|
485
|
+
{/each}
|
|
486
|
+
</tr>
|
|
487
|
+
{/each}
|
|
488
|
+
</tbody>
|
|
489
|
+
{/each}
|
|
490
|
+
{/if}
|
|
491
|
+
</table>
|
|
492
|
+
</slot>
|
|
493
|
+
</div>
|
|
494
|
+
</div>
|
|
495
|
+
</div>
|
|
496
|
+
|
|
497
|
+
{#if hasFooter}
|
|
498
|
+
<div class="fr-table__footer">
|
|
499
|
+
{#if hasFooterSelect}
|
|
500
|
+
<div class="fr-table__footer--start">
|
|
501
|
+
<p class="fr-table__detail">
|
|
502
|
+
{(currentPage - 1) * rowsPerPage + 1}-{Math.min(currentPage * rowsPerPage, nbRows)} sur {nbRows}
|
|
503
|
+
{nbRows > 1 ? "lignes" : "ligne"}
|
|
504
|
+
</p>
|
|
505
|
+
|
|
506
|
+
<slot name="footerselect">
|
|
507
|
+
{#if itemsPerPage.length > 1}
|
|
508
|
+
<DsfrSelect
|
|
509
|
+
id={`${id}-footer-select`}
|
|
510
|
+
label="Nombre de lignes par page"
|
|
511
|
+
placeholder="Nombre de lignes par page"
|
|
512
|
+
hideLabel
|
|
513
|
+
placeholderDisabled
|
|
514
|
+
value={String(rowsPerPage)}
|
|
515
|
+
options={itemsPerPage.map((item) => ({
|
|
516
|
+
value: item.toString(),
|
|
517
|
+
label: `${item} lignes par page`,
|
|
518
|
+
}))}
|
|
519
|
+
onvaluechanged={handleRowsPerPageChange}
|
|
520
|
+
/>
|
|
521
|
+
{/if}
|
|
522
|
+
</slot>
|
|
523
|
+
</div>
|
|
524
|
+
{/if}
|
|
525
|
+
|
|
526
|
+
{#if hasFooterPagination}
|
|
527
|
+
<div class="fr-table__footer--middle">
|
|
528
|
+
<slot name="footerpagination">
|
|
529
|
+
<DsfrPagination
|
|
530
|
+
pages={paginationPages}
|
|
531
|
+
currentPageIndex={currentPage}
|
|
532
|
+
hasPrevAndNext
|
|
533
|
+
prev={{ label: "Précédent", href: "#", title: "Page précédente" }}
|
|
534
|
+
next={{ label: "Suivant", href: "#", title: "Page suivante" }}
|
|
535
|
+
onpagechange={handlePageChange}
|
|
536
|
+
/>
|
|
537
|
+
</slot>
|
|
538
|
+
</div>
|
|
539
|
+
{/if}
|
|
540
|
+
|
|
541
|
+
{#if hasFooterButtons}
|
|
542
|
+
<div class="fr-table__footer--end">
|
|
543
|
+
<div class="fr-table__footer--end-wrapper">
|
|
544
|
+
<slot name="footerbuttons"></slot>
|
|
545
|
+
</div>
|
|
546
|
+
</div>
|
|
547
|
+
{/if}
|
|
548
|
+
</div>
|
|
549
|
+
{/if}
|
|
550
|
+
</div>
|
|
551
|
+
|
|
552
|
+
<style>/*!
|
|
553
|
+
* DSFR v1.14.4 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
|
|
554
|
+
*/.fr-table{--table-offset:0px;--row-height:0.125rem;--text-spacing:0;--title-spacing:0;margin-bottom:2.5rem;margin-top:1rem;position:relative}.fr-table,.fr-table__container{padding-top:var(--table-offset)}.fr-table__container{overflow:auto}.fr-table--multiline .fr-table__content td,.fr-table--multiline .fr-table__content th{white-space:normal}.fr-table__content .fr-cell--fixed .fr-checkbox-group+*,.fr-table__content .fr-cell--fixed\@lg .fr-checkbox-group+*,.fr-table__content .fr-cell--fixed\@md .fr-checkbox-group+*,.fr-table__content .fr-cell--fixed\@sm .fr-checkbox-group+*{margin-left:.5rem}.fr-table__content .fr-cell--fixed .fr-checkbox-group .fr-label,.fr-table__content .fr-cell--fixed\@lg .fr-checkbox-group .fr-label,.fr-table__content .fr-cell--fixed\@md .fr-checkbox-group .fr-label,.fr-table__content .fr-cell--fixed\@sm .fr-checkbox-group .fr-label{color:transparent;pointer-events:none;width:0}.fr-table__content .fr-cell--fixed .fr-checkbox-group .fr-label:before,.fr-table__content .fr-cell--fixed\@lg .fr-checkbox-group .fr-label:before,.fr-table__content .fr-cell--fixed\@md .fr-checkbox-group .fr-label:before,.fr-table__content .fr-cell--fixed\@sm .fr-checkbox-group .fr-label:before{left:-1.25rem}.fr-table__content .fr-cell--fixed .fr-checkbox-group input[type=checkbox],.fr-table__content .fr-cell--fixed\@lg .fr-checkbox-group input[type=checkbox],.fr-table__content .fr-cell--fixed\@md .fr-checkbox-group input[type=checkbox],.fr-table__content .fr-cell--fixed\@sm .fr-checkbox-group input[type=checkbox]{left:.25rem}.fr-table__content .fr-cell--fixed{left:0;position:sticky;z-index:1}.fr-table__content .fr-cell--center{text-align:center}.fr-table__content .fr-cell--right{text-align:right}.fr-table__content .fr-cell--top{vertical-align:top}.fr-table__content .fr-cell--bottom{vertical-align:bottom}.fr-table__content .fr-cell__title{font-weight:700}.fr-table__content .fr-cell__desc{font-weight:400}.fr-table__content .fr-cell--inline{align-items:center;display:flex;margin:0 -.5rem}.fr-table__content .fr-cell--inline>*{margin:0 .5rem}.fr-table__content .fr-cell--multiline,.fr-table__content .fr-cell--multiline *{white-space:normal}.fr-table__content .fr-cell--sort{align-items:center;display:flex;justify-content:space-between}.fr-table__content .fr-cell--sort [class*=" fr-btn--sort"],.fr-table__content .fr-cell--sort [class^=fr-btn--sort]{margin-left:1rem}.fr-table__content .fr-col--xs{min-width:4rem;white-space:normal}.fr-table__content .fr-col--sm{min-width:5rem;white-space:normal}.fr-table__content .fr-col--md{min-width:12.5rem;white-space:normal}.fr-table__content .fr-col--lg{min-width:25rem;white-space:normal}.fr-table__content table{border-collapse:collapse;border-spacing:0;width:100%}.fr-table__content table thead{position:relative}.fr-table__content table thead:before{bottom:0;content:"";display:block;height:1px;left:0;pointer-events:none;position:absolute;right:0;top:inherit;width:100%;z-index:1}.fr-table__content table thead th{--idle:transparent;--hover:var(--background-alt-grey-hover);--active:var(--background-alt-grey-active);background-color:var(--background-alt-grey);background-image:linear-gradient(0deg,var(--border-plain-grey),var(--border-plain-grey)),linear-gradient(0deg,var(--border-contrast-grey),var(--border-contrast-grey));font-weight:700}.fr-table__content table thead th[role=columnheader]{background-image:linear-gradient(0deg,var(--border-plain-grey),var(--border-plain-grey)),linear-gradient(0deg,var(--border-plain-grey),var(--border-plain-grey))}.fr-table__content table tbody th,.fr-table__content table thead th[role=columnheader]{background-position:0 100%,100% 0;background-repeat:no-repeat,no-repeat;background-size:100% 1px,1px 100%}.fr-table__content table tbody th{--idle:transparent;--hover:var(--background-alt-grey-hover);--active:var(--background-alt-grey-active);background-color:var(--background-alt-grey);background-image:linear-gradient(0deg,var(--border-contrast-grey),var(--border-contrast-grey)),linear-gradient(0deg,var(--border-plain-grey),var(--border-plain-grey))}.fr-table__content table tbody tr:after{background-image:linear-gradient(0deg,var(--border-action-high-blue-france),var(--border-action-high-blue-france)),linear-gradient(0deg,var(--border-action-high-blue-france),var(--border-action-high-blue-france)),linear-gradient(0deg,var(--border-action-high-blue-france),var(--border-action-high-blue-france)),linear-gradient(0deg,var(--border-action-high-blue-france),var(--border-action-high-blue-france));background-position:0 0,100% 0,0 0,0 100%;background-repeat:no-repeat,no-repeat,no-repeat,no-repeat;background-size:.125rem 100%,.125rem 100%,100% .125rem,0 0;height:var(--row-height);left:0;pointer-events:none;position:absolute;transform:translateY(-.125rem);width:100%;z-index:2}.fr-table__content table tbody tr[aria-selected=true]+tr:after,.fr-table__content table tbody tr[aria-selected=true]:after{content:""}.fr-table__content table tbody tr[aria-selected=true]+tr[aria-selected=true]:after{background-size:.125rem 100%,.125rem 100%,0 0,0 0}.fr-table__content table tbody tr[aria-selected=true]+tr:not([aria-selected=true]):after{background-size:0 0,0 0,100% .125rem,0 0}.fr-table__content table tbody tr:last-of-type[aria-selected=true]:after{background-size:.125rem 100%,.125rem 100%,100% .125rem,100% .125rem}.fr-table__content table tbody tr[aria-selected=true]+tr:last-of-type[aria-selected=true]:after{background-size:.125rem 100%,.125rem 100%,0 0,100% .125rem}.fr-table__content td,.fr-table__content th{background-position:100% 100%;background-repeat:no-repeat;background-size:100% 1px;display:table-cell;font-size:.875rem;line-height:1.5rem;padding:.5rem 1rem;text-align:left;vertical-align:middle;white-space:nowrap}.fr-table__content td .fr-checkbox-group,.fr-table__content th .fr-checkbox-group{display:inline-block}.fr-table__content td .fr-checkbox-group .fr-label,.fr-table__content th .fr-checkbox-group .fr-label{font-size:.875rem;line-height:1.5rem}.fr-table caption{font-size:1.375rem;font-weight:700;line-height:1.75rem;margin:var(--title-spacing);margin-bottom:1rem;position:static;text-align:left}.fr-table caption .fr-table__caption__desc{font-size:1rem;font-weight:400;line-height:1.5rem;margin-top:1rem}.fr-table__detail{color:var(--text-mention-grey);font-size:.875rem;line-height:1.5rem}.fr-table[data-fr-js-table=true] caption{position:absolute;top:0}.fr-table[data-fr-js-table=true] .fr-table__wrapper{position:relative}.fr-table[data-fr-js-table=true] .fr-table__wrapper:after{background-position:0 0,0 0,100% 100%,0 100%;background-repeat:no-repeat,no-repeat,no-repeat,no-repeat;background-size:100% 1px,1px 100%,1px 100%,100% 1px;content:"";display:block;height:calc(100% - var(--table-offset));left:0;pointer-events:none;position:absolute;top:var(--table-offset);width:100%;z-index:1}.fr-table__header .fr-search-bar,.fr-table__header .fr-segmented,.fr-table__header .fr-table__detail{margin-bottom:1rem}.fr-table__footer--start{margin-top:1rem}.fr-table__footer--start .fr-table__detail{padding-right:.5rem}.fr-table__footer--middle{align-items:center;display:flex;flex-direction:row;justify-content:center;margin-top:1rem}.fr-table__footer--middle .fr-pagination{margin-top:.75rem}.fr-table__footer--end{flex:1 0 100%;margin-top:1.5rem}.fr-table--sm .fr-table__content td,.fr-table--sm .fr-table__content th{padding:.25rem .75rem}.fr-table--lg .fr-table__content td,.fr-table--lg .fr-table__content th{padding:.75rem 1.5rem}.fr-table.fr-table--no-caption .fr-table__wrapper .fr-table__container{padding-top:0}.fr-table.fr-table--no-caption .fr-table__wrapper caption{clip:rect(0,0,0,0);border:0;display:block;height:1px;height:0;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.fr-table.fr-table--caption-bottom{margin-bottom:0}.fr-table.fr-table--caption-bottom .fr-table__wrapper{margin-bottom:calc(var(--table-offset) + 1.5rem);margin-top:0}.fr-table.fr-table--caption-bottom .fr-table__wrapper:after{bottom:0;height:100%;top:auto}.fr-table.fr-table--caption-bottom .fr-table__wrapper .fr-table__container{padding-top:0}.fr-table.fr-table--caption-bottom .fr-table__wrapper caption{caption-side:bottom;height:min-content;margin-bottom:0;margin-top:1rem}.fr-table.fr-table--caption-bottom[data-fr-js-table=true] caption{bottom:0;left:0;margin-top:1rem;position:absolute;right:0;top:100%}.fr-table.fr-table--bordered .fr-table__content td,.fr-table.fr-table--bordered .fr-table__content th{background-position:0 100%,100% 0;background-repeat:no-repeat,no-repeat;background-size:100% 1px,1px 100%}.fr-table.fr-table--no-scroll .fr-table__wrapper{width:fit-content}.fr-table.fr-table--no-scroll .fr-table__wrapper .fr-table__content table{width:auto}.fr-table.fr-table--no-scroll .fr-table__wrapper .fr-table__content table td,.fr-table.fr-table--no-scroll .fr-table__wrapper .fr-table__content table th{white-space:normal}.fr-table__wrapper:after{background-image:linear-gradient(0deg,var(--border-contrast-grey),var(--border-contrast-grey)),linear-gradient(0deg,var(--border-contrast-grey),var(--border-contrast-grey)),linear-gradient(0deg,var(--border-contrast-grey),var(--border-contrast-grey)),linear-gradient(0deg,var(--border-contrast-grey),var(--border-contrast-grey))}.fr-table__content table caption{color:var(--text-title-grey)}.fr-table__content table tbody td{--idle:transparent;--hover:var(--background-default-grey-hover);--active:var(--background-default-grey-active);background-color:var(--background-default-grey);background-image:linear-gradient(0deg,var(--border-contrast-grey),var(--border-contrast-grey)),linear-gradient(0deg,var(--border-contrast-grey),var(--border-contrast-grey))}.fr-table:before{content:"";display:block;height:0;width:100%}.fr-table:not(.fr-table--no-scroll)>table{width:100%}.fr-table>table{border-spacing:0;display:block;overflow:auto;width:100%}.fr-table>table td,.fr-table>table th{border:0;display:table-cell;font-size:.875rem;line-height:1.5rem;padding:.75rem;text-align:left;vertical-align:middle}.fr-table>table th{font-weight:700}.fr-table>table thead{--idle:transparent;--hover:var(--background-alt-grey-hover);--active:var(--background-alt-grey-active);background-color:var(--background-alt-grey);background-image:linear-gradient(0deg,var(--border-plain-grey),var(--border-plain-grey));background-position:bottom;background-repeat:no-repeat;background-size:100% 1px;color:var(--text-title-grey)}.fr-table>table thead td,.fr-table>table thead th{font-weight:700;padding-bottom:.875rem}.fr-table[data-fr-js-table=true]>table tbody,.fr-table[data-fr-js-table=true]>table thead{position:relative}.fr-table[data-fr-js-table=true]>table tbody:after,.fr-table[data-fr-js-table=true]>table thead:after{background-repeat:no-repeat,no-repeat,no-repeat;content:"";display:block;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:1}.fr-table[data-fr-js-table=true]>table thead:after{background-position:0 0,0 0,100% 100%;background-size:100% 1px,1px 100%,1px 100%}.fr-table[data-fr-js-table=true]>table tbody:after{background-position:0 0,0 100%,100% 0;background-size:1px 100%,100% 1px,1px 100%}.fr-table--no-caption{padding-top:0}.fr-table--no-caption>table caption{clip:rect(0,0,0,0);border:0;display:block;height:1px;height:0;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.fr-table--caption-bottom{margin-top:1rem;padding-top:0}.fr-table--caption-bottom>table{margin-bottom:calc(var(--table-offset) + 2.75rem)}.fr-table--caption-bottom>table caption{caption-side:bottom;height:min-content;margin-top:1rem}.fr-table--caption-bottom[data-fr-js-table=true]>table:after{bottom:0;height:100%;top:auto}.fr-table--caption-bottom[data-fr-js-table=true]>table caption{bottom:0;left:0;margin-top:1rem;position:absolute;right:0;top:100%}.fr-table--no-scroll{min-width:auto}.fr-table--no-scroll>table{overflow-x:hidden}.fr-table--no-scroll>table caption{max-width:calc(100vw - 2rem)}.fr-table--layout-fixed>table{display:table;table-layout:fixed}.fr-table--bordered>table tbody tr{background-image:linear-gradient(0deg,var(--border-default-grey),var(--border-default-grey));background-position:bottom;background-repeat:no-repeat;background-size:100% 1px}.fr-table--bordered>table tbody tr:last-child{background-image:none}.fr-table>table.fr-table__shadow:before{bottom:0;box-shadow:inset 0 0 0 0 #161616,inset 0 0 0 0 #161616;content:"";display:block;left:0;opacity:.32;pointer-events:none;position:absolute;right:0;top:var(--table-offset);transition:box-shadow .3s;z-index:1}.fr-table>table.fr-table__shadow--left:before{box-shadow:inset 2rem 0 1rem -2rem #161616,inset 0 0 0 0 #161616}.fr-table>table.fr-table__shadow--left.fr-table__shadow--right:before{box-shadow:inset 2rem 0 1rem -2rem #161616,inset -2rem 0 1rem -2rem #161616;content:"";display:block}.fr-table>table.fr-table__shadow--right:before{box-shadow:inset 0 0 0 0 #161616,inset -2rem 0 1rem -2rem #161616}.fr-table--caption-bottom>table.fr-table__shadow:before,.fr-table--no-caption>table.fr-table__shadow:before{bottom:0;content:"";display:block;left:0;position:absolute;right:0;top:0}:root[data-fr-theme=dark] .fr-table>table.fr-table__shadow:before{opacity:1}.fr-table>table caption{color:var(--text-title-grey)}.fr-table>table tbody:after,.fr-table>table thead:after{background-image:linear-gradient(0deg,var(--border-contrast-grey),var(--border-contrast-grey)),linear-gradient(0deg,var(--border-contrast-grey),var(--border-contrast-grey)),linear-gradient(0deg,var(--border-contrast-grey),var(--border-contrast-grey))}.fr-table>table tbody{--idle:transparent;--hover:var(--background-default-grey-hover);--active:var(--background-default-grey-active);background-color:var(--background-default-grey)}.fr-table>table tbody tr:nth-child(2n){--idle:transparent;--hover:var(--background-alt-grey-hover);--active:var(--background-alt-grey-active);background-color:var(--background-alt-grey)}.fr-table--green-tilleul-verveine>table:after{background-image:linear-gradient(0deg,var(--border-default-green-tilleul-verveine),var(--border-default-green-tilleul-verveine)),linear-gradient(0deg,var(--border-default-green-tilleul-verveine),var(--border-default-green-tilleul-verveine)),linear-gradient(0deg,var(--border-default-green-tilleul-verveine),var(--border-default-green-tilleul-verveine)),linear-gradient(0deg,var(--border-default-green-tilleul-verveine),var(--border-default-green-tilleul-verveine))}.fr-table--green-tilleul-verveine>table thead{--idle:transparent;--hover:var(--background-contrast-green-tilleul-verveine-hover);--active:var(--background-contrast-green-tilleul-verveine-active);background-color:var(--background-contrast-green-tilleul-verveine);background-image:linear-gradient(0deg,var(--border-plain-green-tilleul-verveine),var(--border-plain-green-tilleul-verveine))}.fr-table--green-tilleul-verveine>table tbody{--idle:transparent;--hover:var(--background-alt-green-tilleul-verveine-hover);--active:var(--background-alt-green-tilleul-verveine-active);background-color:var(--background-alt-green-tilleul-verveine)}.fr-table--green-tilleul-verveine>table tbody tr:nth-child(2n){--idle:transparent;--hover:var(--background-contrast-green-tilleul-verveine-hover);--active:var(--background-contrast-green-tilleul-verveine-active);background-color:var(--background-contrast-green-tilleul-verveine)}.fr-table--green-tilleul-verveine.fr-table--bordered>table tbody tr{background-image:linear-gradient(0deg,var(--border-default-green-tilleul-verveine),var(--border-default-green-tilleul-verveine))}.fr-table--green-tilleul-verveine.fr-table--bordered>table tbody tr:last-child{background-image:none}.fr-table--green-bourgeon>table:after{background-image:linear-gradient(0deg,var(--border-default-green-bourgeon),var(--border-default-green-bourgeon)),linear-gradient(0deg,var(--border-default-green-bourgeon),var(--border-default-green-bourgeon)),linear-gradient(0deg,var(--border-default-green-bourgeon),var(--border-default-green-bourgeon)),linear-gradient(0deg,var(--border-default-green-bourgeon),var(--border-default-green-bourgeon))}.fr-table--green-bourgeon>table thead{--idle:transparent;--hover:var(--background-contrast-green-bourgeon-hover);--active:var(--background-contrast-green-bourgeon-active);background-color:var(--background-contrast-green-bourgeon);background-image:linear-gradient(0deg,var(--border-plain-green-bourgeon),var(--border-plain-green-bourgeon))}.fr-table--green-bourgeon>table tbody{--idle:transparent;--hover:var(--background-alt-green-bourgeon-hover);--active:var(--background-alt-green-bourgeon-active);background-color:var(--background-alt-green-bourgeon)}.fr-table--green-bourgeon>table tbody tr:nth-child(2n){--idle:transparent;--hover:var(--background-contrast-green-bourgeon-hover);--active:var(--background-contrast-green-bourgeon-active);background-color:var(--background-contrast-green-bourgeon)}.fr-table--green-bourgeon.fr-table--bordered>table tbody tr{background-image:linear-gradient(0deg,var(--border-default-green-bourgeon),var(--border-default-green-bourgeon))}.fr-table--green-bourgeon.fr-table--bordered>table tbody tr:last-child{background-image:none}.fr-table--green-emeraude>table:after{background-image:linear-gradient(0deg,var(--border-default-green-emeraude),var(--border-default-green-emeraude)),linear-gradient(0deg,var(--border-default-green-emeraude),var(--border-default-green-emeraude)),linear-gradient(0deg,var(--border-default-green-emeraude),var(--border-default-green-emeraude)),linear-gradient(0deg,var(--border-default-green-emeraude),var(--border-default-green-emeraude))}.fr-table--green-emeraude>table thead{--idle:transparent;--hover:var(--background-contrast-green-emeraude-hover);--active:var(--background-contrast-green-emeraude-active);background-color:var(--background-contrast-green-emeraude);background-image:linear-gradient(0deg,var(--border-plain-green-emeraude),var(--border-plain-green-emeraude))}.fr-table--green-emeraude>table tbody{--idle:transparent;--hover:var(--background-alt-green-emeraude-hover);--active:var(--background-alt-green-emeraude-active);background-color:var(--background-alt-green-emeraude)}.fr-table--green-emeraude>table tbody tr:nth-child(2n){--idle:transparent;--hover:var(--background-contrast-green-emeraude-hover);--active:var(--background-contrast-green-emeraude-active);background-color:var(--background-contrast-green-emeraude)}.fr-table--green-emeraude.fr-table--bordered>table tbody tr{background-image:linear-gradient(0deg,var(--border-default-green-emeraude),var(--border-default-green-emeraude))}.fr-table--green-emeraude.fr-table--bordered>table tbody tr:last-child{background-image:none}.fr-table--green-menthe>table:after{background-image:linear-gradient(0deg,var(--border-default-green-menthe),var(--border-default-green-menthe)),linear-gradient(0deg,var(--border-default-green-menthe),var(--border-default-green-menthe)),linear-gradient(0deg,var(--border-default-green-menthe),var(--border-default-green-menthe)),linear-gradient(0deg,var(--border-default-green-menthe),var(--border-default-green-menthe))}.fr-table--green-menthe>table thead{--idle:transparent;--hover:var(--background-contrast-green-menthe-hover);--active:var(--background-contrast-green-menthe-active);background-color:var(--background-contrast-green-menthe);background-image:linear-gradient(0deg,var(--border-plain-green-menthe),var(--border-plain-green-menthe))}.fr-table--green-menthe>table tbody{--idle:transparent;--hover:var(--background-alt-green-menthe-hover);--active:var(--background-alt-green-menthe-active);background-color:var(--background-alt-green-menthe)}.fr-table--green-menthe>table tbody tr:nth-child(2n){--idle:transparent;--hover:var(--background-contrast-green-menthe-hover);--active:var(--background-contrast-green-menthe-active);background-color:var(--background-contrast-green-menthe)}.fr-table--green-menthe.fr-table--bordered>table tbody tr{background-image:linear-gradient(0deg,var(--border-default-green-menthe),var(--border-default-green-menthe))}.fr-table--green-menthe.fr-table--bordered>table tbody tr:last-child{background-image:none}.fr-table--green-archipel>table:after{background-image:linear-gradient(0deg,var(--border-default-green-archipel),var(--border-default-green-archipel)),linear-gradient(0deg,var(--border-default-green-archipel),var(--border-default-green-archipel)),linear-gradient(0deg,var(--border-default-green-archipel),var(--border-default-green-archipel)),linear-gradient(0deg,var(--border-default-green-archipel),var(--border-default-green-archipel))}.fr-table--green-archipel>table thead{--idle:transparent;--hover:var(--background-contrast-green-archipel-hover);--active:var(--background-contrast-green-archipel-active);background-color:var(--background-contrast-green-archipel);background-image:linear-gradient(0deg,var(--border-plain-green-archipel),var(--border-plain-green-archipel))}.fr-table--green-archipel>table tbody{--idle:transparent;--hover:var(--background-alt-green-archipel-hover);--active:var(--background-alt-green-archipel-active);background-color:var(--background-alt-green-archipel)}.fr-table--green-archipel>table tbody tr:nth-child(2n){--idle:transparent;--hover:var(--background-contrast-green-archipel-hover);--active:var(--background-contrast-green-archipel-active);background-color:var(--background-contrast-green-archipel)}.fr-table--green-archipel.fr-table--bordered>table tbody tr{background-image:linear-gradient(0deg,var(--border-default-green-archipel),var(--border-default-green-archipel))}.fr-table--green-archipel.fr-table--bordered>table tbody tr:last-child{background-image:none}.fr-table--blue-ecume>table:after{background-image:linear-gradient(0deg,var(--border-default-blue-ecume),var(--border-default-blue-ecume)),linear-gradient(0deg,var(--border-default-blue-ecume),var(--border-default-blue-ecume)),linear-gradient(0deg,var(--border-default-blue-ecume),var(--border-default-blue-ecume)),linear-gradient(0deg,var(--border-default-blue-ecume),var(--border-default-blue-ecume))}.fr-table--blue-ecume>table thead{--idle:transparent;--hover:var(--background-contrast-blue-ecume-hover);--active:var(--background-contrast-blue-ecume-active);background-color:var(--background-contrast-blue-ecume);background-image:linear-gradient(0deg,var(--border-plain-blue-ecume),var(--border-plain-blue-ecume))}.fr-table--blue-ecume>table tbody{--idle:transparent;--hover:var(--background-alt-blue-ecume-hover);--active:var(--background-alt-blue-ecume-active);background-color:var(--background-alt-blue-ecume)}.fr-table--blue-ecume>table tbody tr:nth-child(2n){--idle:transparent;--hover:var(--background-contrast-blue-ecume-hover);--active:var(--background-contrast-blue-ecume-active);background-color:var(--background-contrast-blue-ecume)}.fr-table--blue-ecume.fr-table--bordered>table tbody tr{background-image:linear-gradient(0deg,var(--border-default-blue-ecume),var(--border-default-blue-ecume))}.fr-table--blue-ecume.fr-table--bordered>table tbody tr:last-child{background-image:none}.fr-table--blue-cumulus>table:after{background-image:linear-gradient(0deg,var(--border-default-blue-cumulus),var(--border-default-blue-cumulus)),linear-gradient(0deg,var(--border-default-blue-cumulus),var(--border-default-blue-cumulus)),linear-gradient(0deg,var(--border-default-blue-cumulus),var(--border-default-blue-cumulus)),linear-gradient(0deg,var(--border-default-blue-cumulus),var(--border-default-blue-cumulus))}.fr-table--blue-cumulus>table thead{--idle:transparent;--hover:var(--background-contrast-blue-cumulus-hover);--active:var(--background-contrast-blue-cumulus-active);background-color:var(--background-contrast-blue-cumulus);background-image:linear-gradient(0deg,var(--border-plain-blue-cumulus),var(--border-plain-blue-cumulus))}.fr-table--blue-cumulus>table tbody{--idle:transparent;--hover:var(--background-alt-blue-cumulus-hover);--active:var(--background-alt-blue-cumulus-active);background-color:var(--background-alt-blue-cumulus)}.fr-table--blue-cumulus>table tbody tr:nth-child(2n){--idle:transparent;--hover:var(--background-contrast-blue-cumulus-hover);--active:var(--background-contrast-blue-cumulus-active);background-color:var(--background-contrast-blue-cumulus)}.fr-table--blue-cumulus.fr-table--bordered>table tbody tr{background-image:linear-gradient(0deg,var(--border-default-blue-cumulus),var(--border-default-blue-cumulus))}.fr-table--blue-cumulus.fr-table--bordered>table tbody tr:last-child{background-image:none}.fr-table--purple-glycine>table:after{background-image:linear-gradient(0deg,var(--border-default-purple-glycine),var(--border-default-purple-glycine)),linear-gradient(0deg,var(--border-default-purple-glycine),var(--border-default-purple-glycine)),linear-gradient(0deg,var(--border-default-purple-glycine),var(--border-default-purple-glycine)),linear-gradient(0deg,var(--border-default-purple-glycine),var(--border-default-purple-glycine))}.fr-table--purple-glycine>table thead{--idle:transparent;--hover:var(--background-contrast-purple-glycine-hover);--active:var(--background-contrast-purple-glycine-active);background-color:var(--background-contrast-purple-glycine);background-image:linear-gradient(0deg,var(--border-plain-purple-glycine),var(--border-plain-purple-glycine))}.fr-table--purple-glycine>table tbody{--idle:transparent;--hover:var(--background-alt-purple-glycine-hover);--active:var(--background-alt-purple-glycine-active);background-color:var(--background-alt-purple-glycine)}.fr-table--purple-glycine>table tbody tr:nth-child(2n){--idle:transparent;--hover:var(--background-contrast-purple-glycine-hover);--active:var(--background-contrast-purple-glycine-active);background-color:var(--background-contrast-purple-glycine)}.fr-table--purple-glycine.fr-table--bordered>table tbody tr{background-image:linear-gradient(0deg,var(--border-default-purple-glycine),var(--border-default-purple-glycine))}.fr-table--purple-glycine.fr-table--bordered>table tbody tr:last-child{background-image:none}.fr-table--pink-macaron>table:after{background-image:linear-gradient(0deg,var(--border-default-pink-macaron),var(--border-default-pink-macaron)),linear-gradient(0deg,var(--border-default-pink-macaron),var(--border-default-pink-macaron)),linear-gradient(0deg,var(--border-default-pink-macaron),var(--border-default-pink-macaron)),linear-gradient(0deg,var(--border-default-pink-macaron),var(--border-default-pink-macaron))}.fr-table--pink-macaron>table thead{--idle:transparent;--hover:var(--background-contrast-pink-macaron-hover);--active:var(--background-contrast-pink-macaron-active);background-color:var(--background-contrast-pink-macaron);background-image:linear-gradient(0deg,var(--border-plain-pink-macaron),var(--border-plain-pink-macaron))}.fr-table--pink-macaron>table tbody{--idle:transparent;--hover:var(--background-alt-pink-macaron-hover);--active:var(--background-alt-pink-macaron-active);background-color:var(--background-alt-pink-macaron)}.fr-table--pink-macaron>table tbody tr:nth-child(2n){--idle:transparent;--hover:var(--background-contrast-pink-macaron-hover);--active:var(--background-contrast-pink-macaron-active);background-color:var(--background-contrast-pink-macaron)}.fr-table--pink-macaron.fr-table--bordered>table tbody tr{background-image:linear-gradient(0deg,var(--border-default-pink-macaron),var(--border-default-pink-macaron))}.fr-table--pink-macaron.fr-table--bordered>table tbody tr:last-child{background-image:none}.fr-table--pink-tuile>table:after{background-image:linear-gradient(0deg,var(--border-default-pink-tuile),var(--border-default-pink-tuile)),linear-gradient(0deg,var(--border-default-pink-tuile),var(--border-default-pink-tuile)),linear-gradient(0deg,var(--border-default-pink-tuile),var(--border-default-pink-tuile)),linear-gradient(0deg,var(--border-default-pink-tuile),var(--border-default-pink-tuile))}.fr-table--pink-tuile>table thead{--idle:transparent;--hover:var(--background-contrast-pink-tuile-hover);--active:var(--background-contrast-pink-tuile-active);background-color:var(--background-contrast-pink-tuile);background-image:linear-gradient(0deg,var(--border-plain-pink-tuile),var(--border-plain-pink-tuile))}.fr-table--pink-tuile>table tbody{--idle:transparent;--hover:var(--background-alt-pink-tuile-hover);--active:var(--background-alt-pink-tuile-active);background-color:var(--background-alt-pink-tuile)}.fr-table--pink-tuile>table tbody tr:nth-child(2n){--idle:transparent;--hover:var(--background-contrast-pink-tuile-hover);--active:var(--background-contrast-pink-tuile-active);background-color:var(--background-contrast-pink-tuile)}.fr-table--pink-tuile.fr-table--bordered>table tbody tr{background-image:linear-gradient(0deg,var(--border-default-pink-tuile),var(--border-default-pink-tuile))}.fr-table--pink-tuile.fr-table--bordered>table tbody tr:last-child{background-image:none}.fr-table--yellow-tournesol>table:after{background-image:linear-gradient(0deg,var(--border-default-yellow-tournesol),var(--border-default-yellow-tournesol)),linear-gradient(0deg,var(--border-default-yellow-tournesol),var(--border-default-yellow-tournesol)),linear-gradient(0deg,var(--border-default-yellow-tournesol),var(--border-default-yellow-tournesol)),linear-gradient(0deg,var(--border-default-yellow-tournesol),var(--border-default-yellow-tournesol))}.fr-table--yellow-tournesol>table thead{--idle:transparent;--hover:var(--background-contrast-yellow-tournesol-hover);--active:var(--background-contrast-yellow-tournesol-active);background-color:var(--background-contrast-yellow-tournesol);background-image:linear-gradient(0deg,var(--border-plain-yellow-tournesol),var(--border-plain-yellow-tournesol))}.fr-table--yellow-tournesol>table tbody{--idle:transparent;--hover:var(--background-alt-yellow-tournesol-hover);--active:var(--background-alt-yellow-tournesol-active);background-color:var(--background-alt-yellow-tournesol)}.fr-table--yellow-tournesol>table tbody tr:nth-child(2n){--idle:transparent;--hover:var(--background-contrast-yellow-tournesol-hover);--active:var(--background-contrast-yellow-tournesol-active);background-color:var(--background-contrast-yellow-tournesol)}.fr-table--yellow-tournesol.fr-table--bordered>table tbody tr{background-image:linear-gradient(0deg,var(--border-default-yellow-tournesol),var(--border-default-yellow-tournesol))}.fr-table--yellow-tournesol.fr-table--bordered>table tbody tr:last-child{background-image:none}.fr-table--yellow-moutarde>table:after{background-image:linear-gradient(0deg,var(--border-default-yellow-moutarde),var(--border-default-yellow-moutarde)),linear-gradient(0deg,var(--border-default-yellow-moutarde),var(--border-default-yellow-moutarde)),linear-gradient(0deg,var(--border-default-yellow-moutarde),var(--border-default-yellow-moutarde)),linear-gradient(0deg,var(--border-default-yellow-moutarde),var(--border-default-yellow-moutarde))}.fr-table--yellow-moutarde>table thead{--idle:transparent;--hover:var(--background-contrast-yellow-moutarde-hover);--active:var(--background-contrast-yellow-moutarde-active);background-color:var(--background-contrast-yellow-moutarde);background-image:linear-gradient(0deg,var(--border-plain-yellow-moutarde),var(--border-plain-yellow-moutarde))}.fr-table--yellow-moutarde>table tbody{--idle:transparent;--hover:var(--background-alt-yellow-moutarde-hover);--active:var(--background-alt-yellow-moutarde-active);background-color:var(--background-alt-yellow-moutarde)}.fr-table--yellow-moutarde>table tbody tr:nth-child(2n){--idle:transparent;--hover:var(--background-contrast-yellow-moutarde-hover);--active:var(--background-contrast-yellow-moutarde-active);background-color:var(--background-contrast-yellow-moutarde)}.fr-table--yellow-moutarde.fr-table--bordered>table tbody tr{background-image:linear-gradient(0deg,var(--border-default-yellow-moutarde),var(--border-default-yellow-moutarde))}.fr-table--yellow-moutarde.fr-table--bordered>table tbody tr:last-child{background-image:none}.fr-table--orange-terre-battue>table:after{background-image:linear-gradient(0deg,var(--border-default-orange-terre-battue),var(--border-default-orange-terre-battue)),linear-gradient(0deg,var(--border-default-orange-terre-battue),var(--border-default-orange-terre-battue)),linear-gradient(0deg,var(--border-default-orange-terre-battue),var(--border-default-orange-terre-battue)),linear-gradient(0deg,var(--border-default-orange-terre-battue),var(--border-default-orange-terre-battue))}.fr-table--orange-terre-battue>table thead{--idle:transparent;--hover:var(--background-contrast-orange-terre-battue-hover);--active:var(--background-contrast-orange-terre-battue-active);background-color:var(--background-contrast-orange-terre-battue);background-image:linear-gradient(0deg,var(--border-plain-orange-terre-battue),var(--border-plain-orange-terre-battue))}.fr-table--orange-terre-battue>table tbody{--idle:transparent;--hover:var(--background-alt-orange-terre-battue-hover);--active:var(--background-alt-orange-terre-battue-active);background-color:var(--background-alt-orange-terre-battue)}.fr-table--orange-terre-battue>table tbody tr:nth-child(2n){--idle:transparent;--hover:var(--background-contrast-orange-terre-battue-hover);--active:var(--background-contrast-orange-terre-battue-active);background-color:var(--background-contrast-orange-terre-battue)}.fr-table--orange-terre-battue.fr-table--bordered>table tbody tr{background-image:linear-gradient(0deg,var(--border-default-orange-terre-battue),var(--border-default-orange-terre-battue))}.fr-table--orange-terre-battue.fr-table--bordered>table tbody tr:last-child{background-image:none}.fr-table--brown-cafe-creme>table:after{background-image:linear-gradient(0deg,var(--border-default-brown-cafe-creme),var(--border-default-brown-cafe-creme)),linear-gradient(0deg,var(--border-default-brown-cafe-creme),var(--border-default-brown-cafe-creme)),linear-gradient(0deg,var(--border-default-brown-cafe-creme),var(--border-default-brown-cafe-creme)),linear-gradient(0deg,var(--border-default-brown-cafe-creme),var(--border-default-brown-cafe-creme))}.fr-table--brown-cafe-creme>table thead{--idle:transparent;--hover:var(--background-contrast-brown-cafe-creme-hover);--active:var(--background-contrast-brown-cafe-creme-active);background-color:var(--background-contrast-brown-cafe-creme);background-image:linear-gradient(0deg,var(--border-plain-brown-cafe-creme),var(--border-plain-brown-cafe-creme))}.fr-table--brown-cafe-creme>table tbody{--idle:transparent;--hover:var(--background-alt-brown-cafe-creme-hover);--active:var(--background-alt-brown-cafe-creme-active);background-color:var(--background-alt-brown-cafe-creme)}.fr-table--brown-cafe-creme>table tbody tr:nth-child(2n){--idle:transparent;--hover:var(--background-contrast-brown-cafe-creme-hover);--active:var(--background-contrast-brown-cafe-creme-active);background-color:var(--background-contrast-brown-cafe-creme)}.fr-table--brown-cafe-creme.fr-table--bordered>table tbody tr{background-image:linear-gradient(0deg,var(--border-default-brown-cafe-creme),var(--border-default-brown-cafe-creme))}.fr-table--brown-cafe-creme.fr-table--bordered>table tbody tr:last-child{background-image:none}.fr-table--brown-caramel>table:after{background-image:linear-gradient(0deg,var(--border-default-brown-caramel),var(--border-default-brown-caramel)),linear-gradient(0deg,var(--border-default-brown-caramel),var(--border-default-brown-caramel)),linear-gradient(0deg,var(--border-default-brown-caramel),var(--border-default-brown-caramel)),linear-gradient(0deg,var(--border-default-brown-caramel),var(--border-default-brown-caramel))}.fr-table--brown-caramel>table thead{--idle:transparent;--hover:var(--background-contrast-brown-caramel-hover);--active:var(--background-contrast-brown-caramel-active);background-color:var(--background-contrast-brown-caramel);background-image:linear-gradient(0deg,var(--border-plain-brown-caramel),var(--border-plain-brown-caramel))}.fr-table--brown-caramel>table tbody{--idle:transparent;--hover:var(--background-alt-brown-caramel-hover);--active:var(--background-alt-brown-caramel-active);background-color:var(--background-alt-brown-caramel)}.fr-table--brown-caramel>table tbody tr:nth-child(2n){--idle:transparent;--hover:var(--background-contrast-brown-caramel-hover);--active:var(--background-contrast-brown-caramel-active);background-color:var(--background-contrast-brown-caramel)}.fr-table--brown-caramel.fr-table--bordered>table tbody tr{background-image:linear-gradient(0deg,var(--border-default-brown-caramel),var(--border-default-brown-caramel))}.fr-table--brown-caramel.fr-table--bordered>table tbody tr:last-child{background-image:none}.fr-table--brown-opera>table:after{background-image:linear-gradient(0deg,var(--border-default-brown-opera),var(--border-default-brown-opera)),linear-gradient(0deg,var(--border-default-brown-opera),var(--border-default-brown-opera)),linear-gradient(0deg,var(--border-default-brown-opera),var(--border-default-brown-opera)),linear-gradient(0deg,var(--border-default-brown-opera),var(--border-default-brown-opera))}.fr-table--brown-opera>table thead{--idle:transparent;--hover:var(--background-contrast-brown-opera-hover);--active:var(--background-contrast-brown-opera-active);background-color:var(--background-contrast-brown-opera);background-image:linear-gradient(0deg,var(--border-plain-brown-opera),var(--border-plain-brown-opera))}.fr-table--brown-opera>table tbody{--idle:transparent;--hover:var(--background-alt-brown-opera-hover);--active:var(--background-alt-brown-opera-active);background-color:var(--background-alt-brown-opera)}.fr-table--brown-opera>table tbody tr:nth-child(2n){--idle:transparent;--hover:var(--background-contrast-brown-opera-hover);--active:var(--background-contrast-brown-opera-active);background-color:var(--background-contrast-brown-opera)}.fr-table--brown-opera.fr-table--bordered>table tbody tr{background-image:linear-gradient(0deg,var(--border-default-brown-opera),var(--border-default-brown-opera))}.fr-table--brown-opera.fr-table--bordered>table tbody tr:last-child{background-image:none}.fr-table--beige-gris-galet>table:after{background-image:linear-gradient(0deg,var(--border-default-beige-gris-galet),var(--border-default-beige-gris-galet)),linear-gradient(0deg,var(--border-default-beige-gris-galet),var(--border-default-beige-gris-galet)),linear-gradient(0deg,var(--border-default-beige-gris-galet),var(--border-default-beige-gris-galet)),linear-gradient(0deg,var(--border-default-beige-gris-galet),var(--border-default-beige-gris-galet))}.fr-table--beige-gris-galet>table thead{--idle:transparent;--hover:var(--background-contrast-beige-gris-galet-hover);--active:var(--background-contrast-beige-gris-galet-active);background-color:var(--background-contrast-beige-gris-galet);background-image:linear-gradient(0deg,var(--border-plain-beige-gris-galet),var(--border-plain-beige-gris-galet))}.fr-table--beige-gris-galet>table tbody{--idle:transparent;--hover:var(--background-alt-beige-gris-galet-hover);--active:var(--background-alt-beige-gris-galet-active);background-color:var(--background-alt-beige-gris-galet)}.fr-table--beige-gris-galet>table tbody tr:nth-child(2n){--idle:transparent;--hover:var(--background-contrast-beige-gris-galet-hover);--active:var(--background-contrast-beige-gris-galet-active);background-color:var(--background-contrast-beige-gris-galet)}.fr-table--beige-gris-galet.fr-table--bordered>table tbody tr{background-image:linear-gradient(0deg,var(--border-default-beige-gris-galet),var(--border-default-beige-gris-galet))}.fr-table--beige-gris-galet.fr-table--bordered>table tbody tr:last-child{background-image:none}.fr-table--bordered>table tbody tr:nth-child(2n){--hover:inherit;--active:inherit;background-color:transparent}@media (min-width:36em){
|
|
555
|
+
/*! media sm */}@media (min-width:48em){
|
|
556
|
+
/*! media md */.fr-table__content .fr-cell--fixed\@md,.fr-table__content .fr-cell--fixed\@sm{left:0;position:sticky;z-index:1}.fr-table caption{font-size:1.5rem;line-height:2rem}.fr-table__header{align-items:center;display:flex;flex-direction:row;justify-content:space-between}.fr-table__header .fr-search-bar{order:1;padding-right:.5rem}.fr-table__header .fr-table__detail{flex:1;order:1;padding-right:.5rem}.fr-table__header .fr-btns-group{order:2;padding-left:.5rem;padding-right:.5rem}.fr-table__header .fr-segmented{flex:0;margin-left:auto;order:3;padding-left:.5rem}.fr-table__footer{align-items:center;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between}.fr-table__footer .fr-select-group .fr-select{width:16rem}.fr-table__footer .fr-btns-group{padding-left:.5rem}.fr-table__footer--start{align-items:center;display:flex;flex-direction:row;justify-content:flex-start}.fr-table__footer--start .fr-select-group{padding-left:.5rem;padding-right:.5rem}.fr-table__footer--start .fr-select-group .fr-select{margin-top:0}.fr-table>table td,.fr-table>table th{padding:1rem}.fr-table>table thead td,.fr-table>table thead th{padding-bottom:1.125rem}}@media (min-width:62em){
|
|
557
|
+
/*! media lg */.fr-table__content .fr-cell--fixed\@lg{left:0;position:sticky;z-index:1}.fr-table__footer--middle{display:block;padding-left:.5rem;padding-right:.5rem}.fr-table__footer--middle .fr-pagination__list{flex-wrap:nowrap}.fr-table__footer--end{flex:1 0 0}}@media (min-width:78em){
|
|
558
|
+
/*! media xl */}@media (-ms-high-contrast:active),(forced-colors:active){.fr-table__content .fr-cell--fixed .fr-checkbox-group .fr-label,.fr-table__content .fr-cell--fixed\@lg .fr-checkbox-group .fr-label,.fr-table__content .fr-cell--fixed\@md .fr-checkbox-group .fr-label,.fr-table__content .fr-cell--fixed\@sm .fr-checkbox-group .fr-label{opacity:0}.fr-table__content .fr-cell--fixed,.fr-table__content .fr-cell--fixed\@lg,.fr-table__content .fr-cell--fixed\@md,.fr-table__content .fr-cell--fixed\@sm{outline:1px solid}.fr-table__content table tbody tr:after{border:2px solid highlight}.fr-table__content td,.fr-table__content th{border:1px solid}}/*!
|
|
559
|
+
* DSFR v1.14.4 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
|
|
560
|
+
*//* ¯¯¯¯¯¯¯¯¯ *\
|
|
561
|
+
CHECKBOX
|
|
562
|
+
\* ˍˍˍˍˍˍˍˍˍ */
|
|
563
|
+
.fr-checkbox-group {
|
|
564
|
+
position: relative;
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
.fr-checkbox-group input[type=checkbox] {
|
|
568
|
+
position: absolute;
|
|
569
|
+
margin: 0;
|
|
570
|
+
width: 1.5rem;
|
|
571
|
+
height: 1.5rem;
|
|
572
|
+
opacity: 0;
|
|
573
|
+
}
|
|
574
|
+
|
|
575
|
+
.fr-checkbox-group input[type=checkbox] + label {
|
|
576
|
+
--data-uri-svg: none;
|
|
577
|
+
position: relative;
|
|
578
|
+
display: flex;
|
|
579
|
+
flex-direction: row;
|
|
580
|
+
align-items: center;
|
|
581
|
+
justify-content: flex-start;
|
|
582
|
+
flex-wrap: wrap;
|
|
583
|
+
margin-left: 2rem;
|
|
584
|
+
/**
|
|
585
|
+
* On ajoute l'icône check-line en taille sm via un pseudo element before
|
|
586
|
+
*/
|
|
587
|
+
}
|
|
588
|
+
|
|
589
|
+
.fr-checkbox-group input[type=checkbox] + label .fr-hint-text {
|
|
590
|
+
margin: 0;
|
|
591
|
+
width: 100%;
|
|
592
|
+
}
|
|
593
|
+
|
|
594
|
+
.fr-checkbox-group input[type=checkbox] + label::before {
|
|
595
|
+
content: "";
|
|
596
|
+
display: block;
|
|
597
|
+
position: absolute;
|
|
598
|
+
top: 0;
|
|
599
|
+
left: -2rem;
|
|
600
|
+
width: 1.5rem;
|
|
601
|
+
height: 1.5rem;
|
|
602
|
+
margin-right: 0.5rem;
|
|
603
|
+
border-radius: 0.25rem;
|
|
604
|
+
background-size: 0.25rem 0.25rem, calc(100% - 0.25rem) 1px, 0.25rem 0.25rem, 1px calc(100% - 0.5rem), 0.25rem 0.25rem, calc(100% - 0.5rem) 1px, 0.25rem 0.25rem, 1px calc(100% - 0.5rem), 1rem;
|
|
605
|
+
background-position: 0 0, 0.25rem 0, 100% 0, 0 0.25rem, 100% 100%, calc(100% - 0.25rem) 100%, 0 100%, 100% 0.25rem, center;
|
|
606
|
+
background-repeat: no-repeat;
|
|
607
|
+
background-image: radial-gradient(at 5px 4px, transparent 4px, var(--border-action-high-blue-france) 4px, var(--border-action-high-blue-france) 5px, transparent 6px), linear-gradient(var(--border-action-high-blue-france), var(--border-action-high-blue-france)), radial-gradient(at calc(100% - 5px) 4px, transparent 4px, var(--border-action-high-blue-france) 4px, var(--border-action-high-blue-france) 5px, transparent 6px), linear-gradient(var(--border-action-high-blue-france), var(--border-action-high-blue-france)), radial-gradient(at calc(100% - 5px) calc(100% - 4px), transparent 4px, var(--border-action-high-blue-france) 4px, var(--border-action-high-blue-france) 5px, transparent 6px), linear-gradient(var(--border-action-high-blue-france), var(--border-action-high-blue-france)), radial-gradient(at 5px calc(100% - 4px), transparent 4px, var(--border-action-high-blue-france) 4px, var(--border-action-high-blue-france) 5px, transparent 6px), linear-gradient(var(--border-action-high-blue-france), var(--border-action-high-blue-france)), var(--data-uri-svg);
|
|
608
|
+
}
|
|
609
|
+
|
|
610
|
+
.fr-checkbox-group--sm input[type=checkbox] {
|
|
611
|
+
top: 0.25rem;
|
|
612
|
+
width: 1rem;
|
|
613
|
+
height: 1rem;
|
|
614
|
+
}
|
|
615
|
+
|
|
616
|
+
.fr-checkbox-group--sm input[type=checkbox] + label {
|
|
617
|
+
margin-left: 1.5rem;
|
|
618
|
+
}
|
|
619
|
+
|
|
620
|
+
.fr-checkbox-group--sm input[type=checkbox] + label::before {
|
|
621
|
+
width: 1rem;
|
|
622
|
+
height: 1rem;
|
|
623
|
+
margin-top: 0.25rem;
|
|
624
|
+
left: -1.5rem;
|
|
625
|
+
}
|
|
626
|
+
|
|
627
|
+
.fr-checkbox-group--error::before {
|
|
628
|
+
content: "";
|
|
629
|
+
position: absolute;
|
|
630
|
+
top: 0;
|
|
631
|
+
left: -0.75rem;
|
|
632
|
+
width: 2px;
|
|
633
|
+
height: 100%;
|
|
634
|
+
background-color: var(--border-plain-error);
|
|
635
|
+
|
|
636
|
+
--idle: transparent;
|
|
637
|
+
--hover: var(--border-plain-error-hover);
|
|
638
|
+
--active: var(--border-plain-error-active);
|
|
639
|
+
}
|
|
640
|
+
|
|
641
|
+
.fr-checkbox-group--valid::before {
|
|
642
|
+
content: "";
|
|
643
|
+
position: absolute;
|
|
644
|
+
top: 0;
|
|
645
|
+
left: -0.75rem;
|
|
646
|
+
width: 2px;
|
|
647
|
+
height: 100%;
|
|
648
|
+
background-color: var(--border-plain-success);
|
|
649
|
+
|
|
650
|
+
--idle: transparent;
|
|
651
|
+
--hover: var(--border-plain-success-hover);
|
|
652
|
+
--active: var(--border-plain-success-active);
|
|
653
|
+
}
|
|
654
|
+
|
|
655
|
+
.fr-checkbox-group .fr-message:first-child {
|
|
656
|
+
margin-top: 1rem;
|
|
657
|
+
}
|
|
658
|
+
|
|
659
|
+
.fr-checkbox-group input[type=checkbox]:checked + label::before {
|
|
660
|
+
background-color: var(--background-active-blue-france);
|
|
661
|
+
background-image: radial-gradient(at 5px 4px, transparent 4px, var(--border-active-blue-france) 4px, var(--border-active-blue-france) 5px, transparent 6px), linear-gradient(var(--border-active-blue-france), var(--border-active-blue-france)), radial-gradient(at calc(100% - 5px) 4px, transparent 4px, var(--border-active-blue-france) 4px, var(--border-active-blue-france) 5px, transparent 6px), linear-gradient(var(--border-active-blue-france), var(--border-active-blue-france)), radial-gradient(at calc(100% - 5px) calc(100% - 4px), transparent 4px, var(--border-active-blue-france) 4px, var(--border-active-blue-france) 5px, transparent 6px), linear-gradient(var(--border-active-blue-france), var(--border-active-blue-france)), radial-gradient(at 5px calc(100% - 4px), transparent 4px, var(--border-active-blue-france) 4px, var(--border-active-blue-france) 5px, transparent 6px), linear-gradient(var(--border-active-blue-france), var(--border-active-blue-france)), var(--data-uri-svg);
|
|
662
|
+
|
|
663
|
+
--data-uri-svg: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%23f5f5fe' d='M10 15.17l9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/></svg>");
|
|
664
|
+
}
|
|
665
|
+
|
|
666
|
+
:root[data-fr-theme=dark] .fr-checkbox-group input[type=checkbox]:checked + label::before {
|
|
667
|
+
--data-uri-svg: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%23000091' d='M10 15.17l9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/></svg>");
|
|
668
|
+
}
|
|
669
|
+
|
|
670
|
+
.fr-checkbox-group input[type=checkbox]:disabled + label::before {
|
|
671
|
+
background-image: radial-gradient(at 5px 4px, transparent 4px, var(--background-disabled-grey) 4px, var(--background-disabled-grey) 5px, transparent 6px), linear-gradient(var(--background-disabled-grey), var(--background-disabled-grey)), radial-gradient(at calc(100% - 5px) 4px, transparent 4px, var(--background-disabled-grey) 4px, var(--background-disabled-grey) 5px, transparent 6px), linear-gradient(var(--background-disabled-grey), var(--background-disabled-grey)), radial-gradient(at calc(100% - 5px) calc(100% - 4px), transparent 4px, var(--background-disabled-grey) 4px, var(--background-disabled-grey) 5px, transparent 6px), linear-gradient(var(--background-disabled-grey), var(--background-disabled-grey)), radial-gradient(at 5px calc(100% - 4px), transparent 4px, var(--background-disabled-grey) 4px, var(--background-disabled-grey) 5px, transparent 6px), linear-gradient(var(--background-disabled-grey), var(--background-disabled-grey)), var(--data-uri-svg);
|
|
672
|
+
}
|
|
673
|
+
|
|
674
|
+
.fr-checkbox-group input[type=checkbox]:disabled:checked + label::before {
|
|
675
|
+
background-color: var(--background-disabled-grey);
|
|
676
|
+
|
|
677
|
+
--data-uri-svg: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%23929292' d='M10 15.17l9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/></svg>");
|
|
678
|
+
}
|
|
679
|
+
|
|
680
|
+
:root[data-fr-theme=dark] .fr-checkbox-group input[type=checkbox]:disabled:checked + label::before {
|
|
681
|
+
--data-uri-svg: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%23666' d='M10 15.17l9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/></svg>");
|
|
682
|
+
}
|
|
683
|
+
|
|
684
|
+
.fr-checkbox-group--error input[type=checkbox] + label,
|
|
685
|
+
.fr-checkbox-group--error input[type=checkbox]:checked + label {
|
|
686
|
+
color: var(--text-default-error);
|
|
687
|
+
}
|
|
688
|
+
|
|
689
|
+
.fr-checkbox-group--error input[type=checkbox] + label::before,
|
|
690
|
+
.fr-checkbox-group--error input[type=checkbox]:checked + label::before {
|
|
691
|
+
background-image: radial-gradient(at 5px 4px, transparent 4px, var(--border-plain-error) 4px, var(--border-plain-error) 5px, transparent 6px), linear-gradient(var(--border-plain-error), var(--border-plain-error)), radial-gradient(at calc(100% - 5px) 4px, transparent 4px, var(--border-plain-error) 4px, var(--border-plain-error) 5px, transparent 6px), linear-gradient(var(--border-plain-error), var(--border-plain-error)), radial-gradient(at calc(100% - 5px) calc(100% - 4px), transparent 4px, var(--border-plain-error) 4px, var(--border-plain-error) 5px, transparent 6px), linear-gradient(var(--border-plain-error), var(--border-plain-error)), radial-gradient(at 5px calc(100% - 4px), transparent 4px, var(--border-plain-error) 4px, var(--border-plain-error) 5px, transparent 6px), linear-gradient(var(--border-plain-error), var(--border-plain-error)), var(--data-uri-svg);
|
|
692
|
+
}
|
|
693
|
+
|
|
694
|
+
.fr-checkbox-group--valid input[type=checkbox] + label,
|
|
695
|
+
.fr-checkbox-group--valid input[type=checkbox]:checked + label {
|
|
696
|
+
color: var(--text-default-success);
|
|
697
|
+
}
|
|
698
|
+
|
|
699
|
+
.fr-checkbox-group--valid input[type=checkbox] + label::before,
|
|
700
|
+
.fr-checkbox-group--valid input[type=checkbox]:checked + label::before {
|
|
701
|
+
background-image: radial-gradient(at 5px 4px, transparent 4px, var(--border-plain-success) 4px, var(--border-plain-success) 5px, transparent 6px), linear-gradient(var(--border-plain-success), var(--border-plain-success)), radial-gradient(at calc(100% - 5px) 4px, transparent 4px, var(--border-plain-success) 4px, var(--border-plain-success) 5px, transparent 6px), linear-gradient(var(--border-plain-success), var(--border-plain-success)), radial-gradient(at calc(100% - 5px) calc(100% - 4px), transparent 4px, var(--border-plain-success) 4px, var(--border-plain-success) 5px, transparent 6px), linear-gradient(var(--border-plain-success), var(--border-plain-success)), radial-gradient(at 5px calc(100% - 4px), transparent 4px, var(--border-plain-success) 4px, var(--border-plain-success) 5px, transparent 6px), linear-gradient(var(--border-plain-success), var(--border-plain-success)), var(--data-uri-svg);
|
|
702
|
+
}
|
|
703
|
+
|
|
704
|
+
.fr-fieldset--error .fr-checkbox-group input[type=checkbox] + label::before {
|
|
705
|
+
background-image: radial-gradient(at 5px 4px, transparent 4px, var(--border-plain-error) 4px, var(--border-plain-error) 5px, transparent 6px), linear-gradient(var(--border-plain-error), var(--border-plain-error)), radial-gradient(at calc(100% - 5px) 4px, transparent 4px, var(--border-plain-error) 4px, var(--border-plain-error) 5px, transparent 6px), linear-gradient(var(--border-plain-error), var(--border-plain-error)), radial-gradient(at calc(100% - 5px) calc(100% - 4px), transparent 4px, var(--border-plain-error) 4px, var(--border-plain-error) 5px, transparent 6px), linear-gradient(var(--border-plain-error), var(--border-plain-error)), radial-gradient(at 5px calc(100% - 4px), transparent 4px, var(--border-plain-error) 4px, var(--border-plain-error) 5px, transparent 6px), linear-gradient(var(--border-plain-error), var(--border-plain-error)), var(--data-uri-svg);
|
|
706
|
+
}
|
|
707
|
+
|
|
708
|
+
.fr-fieldset--valid .fr-checkbox-group input[type=checkbox] + label::before {
|
|
709
|
+
background-image: radial-gradient(at 5px 4px, transparent 4px, var(--border-plain-success) 4px, var(--border-plain-success) 5px, transparent 6px), linear-gradient(var(--border-plain-success), var(--border-plain-success)), radial-gradient(at calc(100% - 5px) 4px, transparent 4px, var(--border-plain-success) 4px, var(--border-plain-success) 5px, transparent 6px), linear-gradient(var(--border-plain-success), var(--border-plain-success)), radial-gradient(at calc(100% - 5px) calc(100% - 4px), transparent 4px, var(--border-plain-success) 4px, var(--border-plain-success) 5px, transparent 6px), linear-gradient(var(--border-plain-success), var(--border-plain-success)), radial-gradient(at 5px calc(100% - 4px), transparent 4px, var(--border-plain-success) 4px, var(--border-plain-success) 5px, transparent 6px), linear-gradient(var(--border-plain-success), var(--border-plain-success)), var(--data-uri-svg);
|
|
710
|
+
}
|
|
711
|
+
|
|
712
|
+
.fr-fieldset .fr-fieldset__content .fr-checkbox-group--sm label::before {
|
|
713
|
+
margin-top: 0.25rem;
|
|
714
|
+
}
|
|
715
|
+
|
|
716
|
+
.fr-fieldset .fr-fieldset__content .fr-checkbox-group input[type=checkbox] {
|
|
717
|
+
margin-top: 0.75rem;
|
|
718
|
+
}
|
|
719
|
+
@media (min-width: 36em) {
|
|
720
|
+
/*! media sm */
|
|
721
|
+
}
|
|
722
|
+
@media (min-width: 48em) {
|
|
723
|
+
/*! media md */
|
|
724
|
+
}
|
|
725
|
+
@media (min-width: 62em) {
|
|
726
|
+
/*! media lg */
|
|
727
|
+
}
|
|
728
|
+
@media (min-width: 78em) {
|
|
729
|
+
/*! media xl */
|
|
730
|
+
}
|
|
731
|
+
@media (-ms-high-contrast: active), (forced-colors: active) {
|
|
732
|
+
.fr-checkbox-group input[type=checkbox] {
|
|
733
|
+
opacity: 1;
|
|
734
|
+
}
|
|
735
|
+
|
|
736
|
+
.fr-checkbox-group input[type=checkbox]:disabled + label {
|
|
737
|
+
color: graytext;
|
|
738
|
+
}
|
|
739
|
+
|
|
740
|
+
.fr-checkbox-group input[type=checkbox] + label::before {
|
|
741
|
+
display: none;
|
|
742
|
+
}
|
|
743
|
+
}
|
|
744
|
+
:host {
|
|
745
|
+
display: block;
|
|
746
|
+
text-rendering: optimizeLegibility;
|
|
747
|
+
-webkit-font-smoothing: antialiased;
|
|
748
|
+
-moz-osx-font-smoothing: grayscale;
|
|
749
|
+
-webkit-text-size-adjust: 100%;
|
|
750
|
+
font-size: 1rem;
|
|
751
|
+
line-height: 1.5rem;
|
|
752
|
+
background-color: var(--background-default-grey);
|
|
753
|
+
--idle: transparent;
|
|
754
|
+
--hover: var(--background-default-grey-hover);
|
|
755
|
+
--active: var(--background-default-grey-active);
|
|
756
|
+
color: var(--text-default-grey);
|
|
757
|
+
background-color: transparent;
|
|
758
|
+
}
|
|
759
|
+
|
|
760
|
+
.fr-table {
|
|
761
|
+
box-sizing: border-box;
|
|
762
|
+
}
|
|
763
|
+
|
|
764
|
+
.fr-checkbox-group {
|
|
765
|
+
--checkbox-gap-sm: -1.25rem;
|
|
766
|
+
}
|
|
767
|
+
.fr-checkbox-group input[type=checkbox]:checked + label::before, .fr-checkbox-group input[type=checkbox]:disabled + label::before, .fr-checkbox-group input[type=checkbox]:indeterminate + label::before {
|
|
768
|
+
--data-uri-svg: none;
|
|
769
|
+
}
|
|
770
|
+
.fr-checkbox-group input[type=checkbox]:checked + label::after, .fr-checkbox-group input[type=checkbox]:disabled + label::after, .fr-checkbox-group input[type=checkbox]:indeterminate + label::after {
|
|
771
|
+
position: absolute;
|
|
772
|
+
z-index: 1;
|
|
773
|
+
}
|
|
774
|
+
.fr-checkbox-group input[type=checkbox]:checked:not(:indeterminate) + label::after {
|
|
775
|
+
content: "";
|
|
776
|
+
display: inline-block;
|
|
777
|
+
width: var(--checkmark-size, 24px);
|
|
778
|
+
height: var(--checkmark-size, 24px);
|
|
779
|
+
background-color: var(--icon-check-color, var(--text-inverted-blue-france));
|
|
780
|
+
clip-path: polygon(41.7% 63.2%, 80% 24.9%, 85.8% 30.8%, 41.7% 75%, 15.2% 48.5%, 21% 42.6%);
|
|
781
|
+
left: var(--checkbox-gap, -2rem);
|
|
782
|
+
top: calc(var(--checkmark-size, 24px) * var(--checkmark-scale, 0.7) / 2);
|
|
783
|
+
transform: translateY(-50%);
|
|
784
|
+
scale: var(--checkmark-scale, 0.7);
|
|
785
|
+
}
|
|
786
|
+
.fr-checkbox-group input[type=checkbox]:disabled + label::after {
|
|
787
|
+
--icon-check-color: currentColor;
|
|
788
|
+
}
|
|
789
|
+
.fr-checkbox-group input[type=checkbox]:indeterminate + label::before {
|
|
790
|
+
background-color: var(--background-active-blue-france);
|
|
791
|
+
}
|
|
792
|
+
.fr-checkbox-group input[type=checkbox]:indeterminate + label::after {
|
|
793
|
+
content: "";
|
|
794
|
+
display: inline-block;
|
|
795
|
+
background-color: var(--text-inverted-blue-france);
|
|
796
|
+
width: calc(var(--checkmark-size, 24px) * 0.38);
|
|
797
|
+
height: var(--dash-height, 2px);
|
|
798
|
+
top: calc((var(--checkmark-size, 24px) - var(--dash-height, 2px)) / 2);
|
|
799
|
+
left: calc(var(--checkbox-gap, -2rem) + var(--checkmark-size, 24px) / 2);
|
|
800
|
+
transform: translateX(-50%);
|
|
801
|
+
}
|
|
802
|
+
.fr-checkbox-group .fr-label::before {
|
|
803
|
+
--data-uri-svg: none;
|
|
804
|
+
}
|
|
805
|
+
.fr-checkbox-group--sm {
|
|
806
|
+
--checkbox-gap: var(--checkbox-gap-sm, -1.5rem);
|
|
807
|
+
--checkmark-size: 1rem;
|
|
808
|
+
--checkmark-scale: 1;
|
|
809
|
+
}
|
|
810
|
+
.fr-checkbox-group--sm label::after {
|
|
811
|
+
margin-top: 0.25rem;
|
|
812
|
+
}
|
|
813
|
+
|
|
814
|
+
.fr-sr-only {
|
|
815
|
+
clip-path: inset(100%);
|
|
816
|
+
clip: rect(1px, 1px, 1px, 1px);
|
|
817
|
+
height: 1px;
|
|
818
|
+
overflow: hidden;
|
|
819
|
+
position: absolute;
|
|
820
|
+
white-space: nowrap;
|
|
821
|
+
padding: 0;
|
|
822
|
+
width: 1px;
|
|
823
|
+
}
|
|
824
|
+
|
|
825
|
+
.fr-checkbox-group input[type=checkbox]:indeterminate + label::before {
|
|
826
|
+
background-color: var(--background-active-blue-france);
|
|
827
|
+
background-image: radial-gradient(at 5px 4px, transparent 4px, var(--border-active-blue-france) 4px, var(--border-active-blue-france) 5px, transparent 6px), linear-gradient(var(--border-active-blue-france), var(--border-active-blue-france)), radial-gradient(at calc(100% - 5px) 4px, transparent 4px, var(--border-active-blue-france) 4px, var(--border-active-blue-france) 5px, transparent 6px), linear-gradient(var(--border-active-blue-france), var(--border-active-blue-france)), radial-gradient(at calc(100% - 5px) calc(100% - 4px), transparent 4px, var(--border-active-blue-france) 4px, var(--border-active-blue-france) 5px, transparent 6px), linear-gradient(var(--border-active-blue-france), var(--border-active-blue-france)), radial-gradient(at 5px calc(100% - 4px), transparent 4px, var(--border-active-blue-france) 4px, var(--border-active-blue-france) 5px, transparent 6px), linear-gradient(var(--border-active-blue-france), var(--border-active-blue-france)), var(--data-uri-svg);
|
|
828
|
+
--data-uri-svg: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%23f5f5fe' d='M5 11h14v2H5z'/></svg>");
|
|
829
|
+
}</style>
|