@gouvfr/dsfr 1.4.0 → 1.4.1
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/.config/config.js +1 -1
- package/.config/icon-deprecated.scss +1 -1
- package/.config/icon.scss +1 -1
- package/dist/component/accordion/accordion.css +1 -1
- package/dist/component/accordion/accordion.legacy.css +1 -1
- package/dist/component/accordion/accordion.legacy.min.css +1 -1
- package/dist/component/accordion/accordion.main.css +1 -1
- package/dist/component/accordion/accordion.main.min.css +1 -1
- package/dist/component/accordion/accordion.min.css +1 -1
- package/dist/component/accordion/accordion.module.js +2 -2
- package/dist/component/accordion/accordion.module.js.map +1 -1
- package/dist/component/accordion/accordion.module.min.js +1 -1
- package/dist/component/accordion/accordion.module.min.js.map +1 -1
- package/dist/component/accordion/accordion.nomodule.js +2 -2
- package/dist/component/accordion/accordion.nomodule.js.map +1 -1
- package/dist/component/accordion/accordion.nomodule.min.js +1 -1
- package/dist/component/accordion/accordion.nomodule.min.js.map +1 -1
- package/dist/component/alert/alert.css +1 -1
- package/dist/component/alert/alert.legacy.css +1 -1
- package/dist/component/alert/alert.legacy.min.css +2 -2
- package/dist/component/alert/alert.main.css +1 -1
- package/dist/component/alert/alert.main.min.css +1 -1
- package/dist/component/alert/alert.min.css +2 -2
- package/dist/component/badge/badge.css +1 -1
- package/dist/component/badge/badge.legacy.css +1 -1
- package/dist/component/badge/badge.legacy.min.css +1 -1
- package/dist/component/badge/badge.main.css +1 -1
- package/dist/component/badge/badge.main.min.css +1 -1
- package/dist/component/badge/badge.min.css +1 -1
- package/dist/component/breadcrumb/breadcrumb.css +1 -1
- package/dist/component/breadcrumb/breadcrumb.legacy.css +1 -1
- package/dist/component/breadcrumb/breadcrumb.legacy.min.css +1 -1
- package/dist/component/breadcrumb/breadcrumb.main.css +1 -1
- package/dist/component/breadcrumb/breadcrumb.main.min.css +1 -1
- package/dist/component/breadcrumb/breadcrumb.min.css +1 -1
- package/dist/component/breadcrumb/breadcrumb.module.js +2 -2
- package/dist/component/breadcrumb/breadcrumb.module.js.map +1 -1
- package/dist/component/breadcrumb/breadcrumb.module.min.js +1 -1
- package/dist/component/breadcrumb/breadcrumb.module.min.js.map +1 -1
- package/dist/component/breadcrumb/breadcrumb.nomodule.js +2 -2
- package/dist/component/breadcrumb/breadcrumb.nomodule.js.map +1 -1
- package/dist/component/breadcrumb/breadcrumb.nomodule.min.js +1 -1
- package/dist/component/breadcrumb/breadcrumb.nomodule.min.js.map +1 -1
- package/dist/component/button/button.css +1 -1
- package/dist/component/button/button.legacy.css +1 -1
- package/dist/component/button/button.legacy.min.css +1 -1
- package/dist/component/button/button.main.css +1 -1
- package/dist/component/button/button.main.min.css +1 -1
- package/dist/component/button/button.min.css +1 -1
- package/dist/component/button/button.module.js +2 -2
- package/dist/component/button/button.module.js.map +1 -1
- package/dist/component/button/button.module.min.js +1 -1
- package/dist/component/button/button.module.min.js.map +1 -1
- package/dist/component/button/button.nomodule.js +2 -2
- package/dist/component/button/button.nomodule.js.map +1 -1
- package/dist/component/button/button.nomodule.min.js +1 -1
- package/dist/component/button/button.nomodule.min.js.map +1 -1
- package/dist/component/callout/callout.css +1 -1
- package/dist/component/callout/callout.legacy.css +1 -1
- package/dist/component/callout/callout.legacy.min.css +1 -1
- package/dist/component/callout/callout.main.css +1 -1
- package/dist/component/callout/callout.main.min.css +1 -1
- package/dist/component/callout/callout.min.css +1 -1
- package/dist/component/card/card.css +1 -1
- package/dist/component/card/card.legacy.css +1 -1
- package/dist/component/card/card.legacy.min.css +1 -1
- package/dist/component/card/card.main.css +1 -1
- package/dist/component/card/card.main.min.css +1 -1
- package/dist/component/card/card.min.css +1 -1
- package/dist/component/checkbox/checkbox.css +1 -1
- package/dist/component/checkbox/checkbox.legacy.css +1 -1
- package/dist/component/checkbox/checkbox.legacy.min.css +1 -1
- package/dist/component/checkbox/checkbox.main.css +1 -1
- package/dist/component/checkbox/checkbox.main.min.css +1 -1
- package/dist/component/checkbox/checkbox.min.css +1 -1
- package/dist/component/component.css +74 -233
- package/dist/component/component.css.map +1 -1
- package/dist/component/component.legacy.css +33 -21
- package/dist/component/component.legacy.css.map +1 -1
- package/dist/component/component.legacy.min.css +2 -2
- package/dist/component/component.legacy.min.css.map +1 -1
- package/dist/component/component.main.css +42 -213
- package/dist/component/component.main.css.map +1 -1
- package/dist/component/component.main.min.css +2 -2
- package/dist/component/component.main.min.css.map +1 -1
- package/dist/component/component.min.css +3 -3
- package/dist/component/component.min.css.map +1 -1
- package/dist/component/component.module.js +2 -2
- package/dist/component/component.module.js.map +1 -1
- package/dist/component/component.module.min.js +1 -1
- package/dist/component/component.module.min.js.map +1 -1
- package/dist/component/component.nomodule.js +2 -2
- package/dist/component/component.nomodule.js.map +1 -1
- package/dist/component/component.nomodule.min.js +1 -1
- package/dist/component/component.nomodule.min.js.map +1 -1
- package/dist/component/connect/connect.css +1 -1
- package/dist/component/connect/connect.legacy.css +1 -1
- package/dist/component/connect/connect.legacy.min.css +1 -1
- package/dist/component/connect/connect.main.css +1 -1
- package/dist/component/connect/connect.main.min.css +1 -1
- package/dist/component/connect/connect.min.css +1 -1
- package/dist/component/consent/consent.css +1 -1
- package/dist/component/consent/consent.legacy.css +1 -1
- package/dist/component/consent/consent.legacy.min.css +1 -1
- package/dist/component/consent/consent.main.css +1 -1
- package/dist/component/consent/consent.main.min.css +1 -1
- package/dist/component/consent/consent.min.css +1 -1
- package/dist/component/content/content.css +1 -1
- package/dist/component/content/content.legacy.css +1 -1
- package/dist/component/content/content.legacy.min.css +1 -1
- package/dist/component/content/content.main.css +1 -1
- package/dist/component/content/content.main.min.css +1 -1
- package/dist/component/content/content.min.css +1 -1
- package/dist/component/display/display.module.js +2 -2
- package/dist/component/display/display.module.js.map +1 -1
- package/dist/component/display/display.module.min.js +1 -1
- package/dist/component/display/display.module.min.js.map +1 -1
- package/dist/component/display/display.nomodule.js +2 -2
- package/dist/component/display/display.nomodule.js.map +1 -1
- package/dist/component/display/display.nomodule.min.js +1 -1
- package/dist/component/display/display.nomodule.min.js.map +1 -1
- package/dist/component/follow/follow.css +13 -200
- package/dist/component/follow/follow.css.map +1 -1
- package/dist/component/follow/follow.legacy.css +1 -1
- package/dist/component/follow/follow.legacy.min.css +1 -1
- package/dist/component/follow/follow.main.css +13 -200
- package/dist/component/follow/follow.main.css.map +1 -1
- package/dist/component/follow/follow.main.min.css +2 -2
- package/dist/component/follow/follow.main.min.css.map +1 -1
- package/dist/component/follow/follow.min.css +2 -2
- package/dist/component/follow/follow.min.css.map +1 -1
- package/dist/component/footer/footer.css +1 -1
- package/dist/component/footer/footer.legacy.css +1 -1
- package/dist/component/footer/footer.legacy.min.css +1 -1
- package/dist/component/footer/footer.main.css +1 -1
- package/dist/component/footer/footer.main.min.css +1 -1
- package/dist/component/footer/footer.min.css +1 -1
- package/dist/component/form/form.css +1 -1
- package/dist/component/form/form.legacy.css +1 -1
- package/dist/component/form/form.legacy.min.css +1 -1
- package/dist/component/form/form.main.css +1 -1
- package/dist/component/form/form.main.min.css +1 -1
- package/dist/component/form/form.min.css +1 -1
- package/dist/component/header/header.css +1 -1
- package/dist/component/header/header.legacy.css +1 -1
- package/dist/component/header/header.legacy.min.css +1 -1
- package/dist/component/header/header.main.css +1 -1
- package/dist/component/header/header.main.min.css +1 -1
- package/dist/component/header/header.min.css +1 -1
- package/dist/component/header/header.module.js +2 -2
- package/dist/component/header/header.module.js.map +1 -1
- package/dist/component/header/header.module.min.js +1 -1
- package/dist/component/header/header.module.min.js.map +1 -1
- package/dist/component/header/header.nomodule.js +2 -2
- package/dist/component/header/header.nomodule.js.map +1 -1
- package/dist/component/header/header.nomodule.min.js +1 -1
- package/dist/component/header/header.nomodule.min.js.map +1 -1
- package/dist/component/highlight/highlight.css +1 -1
- package/dist/component/highlight/highlight.legacy.css +1 -1
- package/dist/component/highlight/highlight.legacy.min.css +1 -1
- package/dist/component/highlight/highlight.main.css +1 -1
- package/dist/component/highlight/highlight.main.min.css +1 -1
- package/dist/component/highlight/highlight.min.css +1 -1
- package/dist/component/input/input.css +1 -1
- package/dist/component/input/input.legacy.css +1 -1
- package/dist/component/input/input.legacy.min.css +1 -1
- package/dist/component/input/input.main.css +1 -1
- package/dist/component/input/input.main.min.css +1 -1
- package/dist/component/input/input.min.css +1 -1
- package/dist/component/link/link.css +1 -1
- package/dist/component/link/link.legacy.css +1 -1
- package/dist/component/link/link.legacy.min.css +1 -1
- package/dist/component/link/link.main.css +1 -1
- package/dist/component/link/link.main.min.css +1 -1
- package/dist/component/link/link.min.css +1 -1
- package/dist/component/logo/logo.css +1 -1
- package/dist/component/logo/logo.legacy.css +1 -1
- package/dist/component/logo/logo.legacy.min.css +1 -1
- package/dist/component/logo/logo.main.css +1 -1
- package/dist/component/logo/logo.main.min.css +1 -1
- package/dist/component/logo/logo.min.css +1 -1
- package/dist/component/modal/modal.css +1 -1
- package/dist/component/modal/modal.legacy.css +1 -1
- package/dist/component/modal/modal.legacy.min.css +1 -1
- package/dist/component/modal/modal.main.css +1 -1
- package/dist/component/modal/modal.main.min.css +1 -1
- package/dist/component/modal/modal.min.css +1 -1
- package/dist/component/modal/modal.module.js +2 -2
- package/dist/component/modal/modal.module.js.map +1 -1
- package/dist/component/modal/modal.module.min.js +1 -1
- package/dist/component/modal/modal.module.min.js.map +1 -1
- package/dist/component/modal/modal.nomodule.js +2 -2
- package/dist/component/modal/modal.nomodule.js.map +1 -1
- package/dist/component/modal/modal.nomodule.min.js +1 -1
- package/dist/component/modal/modal.nomodule.min.js.map +1 -1
- package/dist/component/navigation/navigation.css +1 -1
- package/dist/component/navigation/navigation.legacy.css +1 -1
- package/dist/component/navigation/navigation.legacy.min.css +1 -1
- package/dist/component/navigation/navigation.main.css +1 -1
- package/dist/component/navigation/navigation.main.min.css +1 -1
- package/dist/component/navigation/navigation.min.css +1 -1
- package/dist/component/navigation/navigation.module.js +2 -2
- package/dist/component/navigation/navigation.module.js.map +1 -1
- package/dist/component/navigation/navigation.module.min.js +1 -1
- package/dist/component/navigation/navigation.module.min.js.map +1 -1
- package/dist/component/navigation/navigation.nomodule.js +2 -2
- package/dist/component/navigation/navigation.nomodule.js.map +1 -1
- package/dist/component/navigation/navigation.nomodule.min.js +1 -1
- package/dist/component/navigation/navigation.nomodule.min.js.map +1 -1
- package/dist/component/pagination/pagination.css +1 -1
- package/dist/component/pagination/pagination.legacy.css +1 -1
- package/dist/component/pagination/pagination.legacy.min.css +1 -1
- package/dist/component/pagination/pagination.main.css +1 -1
- package/dist/component/pagination/pagination.main.min.css +1 -1
- package/dist/component/pagination/pagination.min.css +1 -1
- package/dist/component/quote/quote.css +1 -1
- package/dist/component/quote/quote.legacy.css +1 -1
- package/dist/component/quote/quote.legacy.min.css +1 -1
- package/dist/component/quote/quote.main.css +1 -1
- package/dist/component/quote/quote.main.min.css +1 -1
- package/dist/component/quote/quote.min.css +1 -1
- package/dist/component/radio/radio.css +1 -1
- package/dist/component/radio/radio.legacy.css +1 -1
- package/dist/component/radio/radio.legacy.min.css +1 -1
- package/dist/component/radio/radio.main.css +1 -1
- package/dist/component/radio/radio.main.min.css +1 -1
- package/dist/component/radio/radio.min.css +1 -1
- package/dist/component/search/search.css +1 -1
- package/dist/component/search/search.legacy.css +1 -1
- package/dist/component/search/search.legacy.min.css +1 -1
- package/dist/component/search/search.main.css +1 -1
- package/dist/component/search/search.main.min.css +1 -1
- package/dist/component/search/search.min.css +1 -1
- package/dist/component/select/select.css +1 -1
- package/dist/component/select/select.legacy.css +1 -1
- package/dist/component/select/select.legacy.min.css +1 -1
- package/dist/component/select/select.main.css +1 -1
- package/dist/component/select/select.main.min.css +1 -1
- package/dist/component/select/select.min.css +1 -1
- package/dist/component/share/share.css +1 -1
- package/dist/component/share/share.legacy.css +1 -1
- package/dist/component/share/share.legacy.min.css +1 -1
- package/dist/component/share/share.main.css +1 -1
- package/dist/component/share/share.main.min.css +2 -2
- package/dist/component/share/share.min.css +2 -2
- package/dist/component/sidemenu/sidemenu.css +1 -1
- package/dist/component/sidemenu/sidemenu.legacy.css +1 -1
- package/dist/component/sidemenu/sidemenu.legacy.min.css +1 -1
- package/dist/component/sidemenu/sidemenu.main.css +1 -1
- package/dist/component/sidemenu/sidemenu.main.min.css +1 -1
- package/dist/component/sidemenu/sidemenu.min.css +1 -1
- package/dist/component/sidemenu/sidemenu.module.js +2 -2
- package/dist/component/sidemenu/sidemenu.module.js.map +1 -1
- package/dist/component/sidemenu/sidemenu.module.min.js +1 -1
- package/dist/component/sidemenu/sidemenu.module.min.js.map +1 -1
- package/dist/component/sidemenu/sidemenu.nomodule.js +2 -2
- package/dist/component/sidemenu/sidemenu.nomodule.js.map +1 -1
- package/dist/component/sidemenu/sidemenu.nomodule.min.js +1 -1
- package/dist/component/sidemenu/sidemenu.nomodule.min.js.map +1 -1
- package/dist/component/skiplink/skiplink.css +1 -1
- package/dist/component/skiplink/skiplink.legacy.css +1 -1
- package/dist/component/skiplink/skiplink.legacy.min.css +1 -1
- package/dist/component/skiplink/skiplink.main.css +1 -1
- package/dist/component/skiplink/skiplink.main.min.css +1 -1
- package/dist/component/skiplink/skiplink.min.css +1 -1
- package/dist/component/summary/summary.css +1 -1
- package/dist/component/summary/summary.legacy.css +1 -1
- package/dist/component/summary/summary.legacy.min.css +2 -2
- package/dist/component/summary/summary.main.css +1 -1
- package/dist/component/summary/summary.main.min.css +1 -1
- package/dist/component/summary/summary.min.css +2 -2
- package/dist/component/tab/tab.css +1 -1
- package/dist/component/tab/tab.legacy.css +1 -1
- package/dist/component/tab/tab.legacy.min.css +1 -1
- package/dist/component/tab/tab.main.css +1 -1
- package/dist/component/tab/tab.main.min.css +1 -1
- package/dist/component/tab/tab.min.css +1 -1
- package/dist/component/tab/tab.module.js +2 -2
- package/dist/component/tab/tab.module.js.map +1 -1
- package/dist/component/tab/tab.module.min.js +1 -1
- package/dist/component/tab/tab.module.min.js.map +1 -1
- package/dist/component/tab/tab.nomodule.js +2 -2
- package/dist/component/tab/tab.nomodule.js.map +1 -1
- package/dist/component/tab/tab.nomodule.min.js +1 -1
- package/dist/component/tab/tab.nomodule.min.js.map +1 -1
- package/dist/component/table/table.css +1 -1
- package/dist/component/table/table.legacy.css +1 -1
- package/dist/component/table/table.legacy.min.css +1 -1
- package/dist/component/table/table.main.css +1 -1
- package/dist/component/table/table.main.min.css +1 -1
- package/dist/component/table/table.min.css +1 -1
- package/dist/component/table/table.module.js +2 -2
- package/dist/component/table/table.module.js.map +1 -1
- package/dist/component/table/table.module.min.js +1 -1
- package/dist/component/table/table.module.min.js.map +1 -1
- package/dist/component/table/table.nomodule.js +2 -2
- package/dist/component/table/table.nomodule.js.map +1 -1
- package/dist/component/table/table.nomodule.min.js +1 -1
- package/dist/component/table/table.nomodule.min.js.map +1 -1
- package/dist/component/tag/tag.css +112 -80
- package/dist/component/tag/tag.css.map +1 -1
- package/dist/component/tag/tag.legacy.css +61 -55
- package/dist/component/tag/tag.legacy.css.map +1 -1
- package/dist/component/tag/tag.legacy.min.css +2 -2
- package/dist/component/tag/tag.legacy.min.css.map +1 -1
- package/dist/component/tag/tag.main.css +52 -26
- package/dist/component/tag/tag.main.css.map +1 -1
- package/dist/component/tag/tag.main.min.css +2 -2
- package/dist/component/tag/tag.main.min.css.map +1 -1
- package/dist/component/tag/tag.min.css +2 -2
- package/dist/component/tag/tag.min.css.map +1 -1
- package/dist/component/tag/tag.module.js +2 -2
- package/dist/component/tag/tag.module.js.map +1 -1
- package/dist/component/tag/tag.module.min.js +1 -1
- package/dist/component/tag/tag.module.min.js.map +1 -1
- package/dist/component/tag/tag.nomodule.js +2 -2
- package/dist/component/tag/tag.nomodule.js.map +1 -1
- package/dist/component/tag/tag.nomodule.min.js +1 -1
- package/dist/component/tag/tag.nomodule.min.js.map +1 -1
- package/dist/component/tile/tile.css +1 -1
- package/dist/component/tile/tile.legacy.css +1 -1
- package/dist/component/tile/tile.legacy.min.css +1 -1
- package/dist/component/tile/tile.main.css +1 -1
- package/dist/component/tile/tile.main.min.css +1 -1
- package/dist/component/tile/tile.min.css +1 -1
- package/dist/component/toggle/toggle.css +1 -1
- package/dist/component/toggle/toggle.legacy.css +1 -1
- package/dist/component/toggle/toggle.legacy.min.css +1 -1
- package/dist/component/toggle/toggle.main.css +1 -1
- package/dist/component/toggle/toggle.main.min.css +1 -1
- package/dist/component/toggle/toggle.min.css +1 -1
- package/dist/component/toggle/toggle.module.js +2 -2
- package/dist/component/toggle/toggle.module.js.map +1 -1
- package/dist/component/toggle/toggle.module.min.js +1 -1
- package/dist/component/toggle/toggle.module.min.js.map +1 -1
- package/dist/component/toggle/toggle.nomodule.js +2 -2
- package/dist/component/toggle/toggle.nomodule.js.map +1 -1
- package/dist/component/toggle/toggle.nomodule.min.js +1 -1
- package/dist/component/toggle/toggle.nomodule.min.js.map +1 -1
- package/dist/component/upload/upload.css +1 -1
- package/dist/component/upload/upload.min.css +1 -1
- package/dist/core/core.css +3 -3
- package/dist/core/core.css.map +1 -1
- package/dist/core/core.legacy.css +1 -1
- package/dist/core/core.legacy.min.css +1 -1
- package/dist/core/core.main.css +3 -3
- package/dist/core/core.main.css.map +1 -1
- package/dist/core/core.main.min.css +3 -3
- package/dist/core/core.main.min.css.map +1 -1
- package/dist/core/core.min.css +3 -3
- package/dist/core/core.min.css.map +1 -1
- package/dist/core/core.module.js +2 -2
- package/dist/core/core.module.js.map +1 -1
- package/dist/core/core.module.min.js +2 -2
- package/dist/core/core.module.min.js.map +1 -1
- package/dist/core/core.nomodule.js +2 -2
- package/dist/core/core.nomodule.js.map +1 -1
- package/dist/core/core.nomodule.min.js +2 -2
- package/dist/core/core.nomodule.min.js.map +1 -1
- package/dist/dsfr/dsfr.css +76 -235
- package/dist/dsfr/dsfr.css.map +1 -1
- package/dist/dsfr/dsfr.legacy.css +33 -21
- package/dist/dsfr/dsfr.legacy.css.map +1 -1
- package/dist/dsfr/dsfr.legacy.min.css +2 -2
- package/dist/dsfr/dsfr.legacy.min.css.map +1 -1
- package/dist/dsfr/dsfr.main.css +44 -215
- package/dist/dsfr/dsfr.main.css.map +1 -1
- package/dist/dsfr/dsfr.main.min.css +3 -3
- package/dist/dsfr/dsfr.main.min.css.map +1 -1
- package/dist/dsfr/dsfr.min.css +4 -4
- package/dist/dsfr/dsfr.min.css.map +1 -1
- package/dist/dsfr/dsfr.module.js +2 -2
- package/dist/dsfr/dsfr.module.js.map +1 -1
- package/dist/dsfr/dsfr.module.min.js +2 -2
- package/dist/dsfr/dsfr.module.min.js.map +1 -1
- package/dist/dsfr/dsfr.nomodule.js +2 -2
- package/dist/dsfr/dsfr.nomodule.js.map +1 -1
- package/dist/dsfr/dsfr.nomodule.min.js +2 -2
- package/dist/dsfr/dsfr.nomodule.min.js.map +1 -1
- package/dist/legacy/legacy.nomodule.js +1 -1
- package/dist/legacy/legacy.nomodule.min.js +1 -1
- package/dist/scheme/scheme.css +1 -1
- package/dist/scheme/scheme.min.css +1 -1
- package/dist/scheme/scheme.module.js +2 -2
- package/dist/scheme/scheme.module.js.map +1 -1
- package/dist/scheme/scheme.module.min.js +1 -1
- package/dist/scheme/scheme.module.min.js.map +1 -1
- package/example/component/accordion/index.html +164 -188
- package/example/component/breadcrumb/index.html +6 -6
- package/example/component/callout/index.html +10 -10
- package/example/component/card/index.html +8 -8
- package/example/component/checkbox/index.html +32 -32
- package/example/component/connect/index.html +4 -127
- package/example/component/consent/index.html +8 -8
- package/example/component/content/index.html +30 -30
- package/example/component/display/index.html +46 -46
- package/example/component/follow/index.html +16 -16
- package/example/component/footer/index.html +20 -20
- package/example/component/form/index.html +24 -24
- package/example/component/header/index.html +208 -208
- package/example/component/highlight/index.html +8 -8
- package/example/component/input/index.html +44 -44
- package/example/component/link/index.html +14 -14
- package/example/component/modal/index.html +80 -80
- package/example/component/navigation/index.html +34 -34
- package/example/component/pagination/index.html +12 -12
- package/example/component/quote/index.html +8 -8
- package/example/component/radio/index.html +38 -38
- package/example/component/select/index.html +10 -10
- package/example/component/share/index.html +10 -10
- package/example/component/sidemenu/index.html +456 -456
- package/example/component/skiplink/index.html +23 -23
- package/example/component/summary/index.html +2 -2
- package/example/component/tab/index.html +236 -238
- package/example/component/table/index.html +104 -104
- package/example/component/tag/index.html +50 -50
- package/example/component/tile/index.html +34 -34
- package/example/component/toggle/index.html +130 -130
- package/package.json +1 -1
- package/src/component/connect/example/index.ejs +3 -3
- package/src/component/connect/example/sample/connect-default.ejs +1 -2
- package/src/component/connect/example/sample/connect-plus.ejs +1 -2
- package/src/component/connect/template/ejs/connect.ejs +6 -1
- package/src/component/follow/deprecated/style/_module.scss +7 -1
- package/src/component/follow/deprecated/style/_tool.scss +3 -7
- package/src/component/tag/style/_scheme.scss +13 -22
- package/src/component/tag/style/_tool.scss +27 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.module.min.js","sources":["../../.config/config.js","../../src/core/api.js","../../src/component/accordion/script/accordion/accordion-selector.js","../../src/component/accordion/script/accordion/accordions-group.js","../../src/component/accordion/index.js","../../src/component/accordion/main.js","../../src/component/button/script/button/button-selector.js","../../src/component/button/index.js","../../src/component/button/main.js","../../src/component/breadcrumb/script/breadcrumb/breadcrumb.js","../../src/component/breadcrumb/script/breadcrumb/breadcrumb-selector.js","../../src/component/breadcrumb/index.js","../../src/component/breadcrumb/main.js","../../src/component/toggle/script/toggle/toggle-input.js","../../src/component/toggle/script/toggle/toggle-status-label.js","../../src/component/toggle/script/toggle/toggle-selector.js","../../src/component/toggle/index.js","../../src/component/toggle/main.js","../../src/component/sidemenu/script/sidemenu/sidemenu-selector.js","../../src/component/sidemenu/script/sidemenu/sidemenu-list.js","../../src/component/sidemenu/index.js","../../src/component/sidemenu/main.js","../../src/component/modal/script/modal/modal-selector.js","../../src/component/modal/script/modal/modal-button.js","../../src/component/modal/script/modal/modal-attribute.js","../../src/component/modal/script/modal/modal.js","../../src/component/modal/script/modal/focus-trap.js","../../src/component/modal/script/modal/modals-group.js","../../src/component/modal/script/modal/modal-body.js","../../src/component/modal/index.js","../../src/component/modal/main.js","../../src/component/navigation/script/navigation/navigation-selector.js","../../src/component/navigation/script/navigation/navigation-item.js","../../src/component/navigation/script/navigation/navigation-mouse-position.js","../../src/component/navigation/script/navigation/navigation.js","../../src/component/navigation/index.js","../../src/component/navigation/main.js","../../src/component/tab/script/tab/tab-button.js","../../src/component/tab/script/tab/tab-selector.js","../../src/component/tab/script/tab/tab-panel-direction.js","../../src/component/tab/script/tab/tab-panel.js","../../src/component/tab/script/tab/tabs-group.js","../../src/component/tab/script/tab/tabs-list.js","../../src/component/tab/index.js","../../src/component/tab/main.js","../../src/component/table/script/table/table-emission.js","../../src/component/table/script/table/table.js","../../src/component/table/script/table/table-selector.js","../../src/component/table/script/table/table-element.js","../../src/component/table/script/table/table-caption.js","../../src/component/table/index.js","../../src/component/table/main.js","../../src/component/tag/script/tag/tag-selector.js","../../src/component/tag/index.js","../../src/component/tag/main.js","../../src/component/header/script/header/header-selector.js","../../src/component/header/script/header/header-links.js","../../src/component/header/script/header/header-modal.js","../../src/component/header/index.js","../../src/component/header/main.js","../../src/component/display/script/display/display-selector.js","../../src/component/display/script/display/display.js","../../src/component/display/index.js","../../src/component/display/main.js"],"sourcesContent":["const config = {\r\n prefix: 'fr',\r\n namespace: 'dsfr',\r\n organisation: '@gouvfr',\r\n version: '1.4.0'\r\n};\r\n\r\nexport default config;\r\n","import config from './config.js';\nconst api = window[config.namespace];\nexport default api;\n","import api from '../../api.js';\n\nexport const AccordionSelector = {\n GROUP: api.internals.ns.selector('accordions-group'),\n COLLAPSE: `${api.internals.ns.selector('accordion')} > ${api.internals.ns.selector('collapse')}`\n};\n","import api from '../../api.js';\nimport { AccordionSelector } from './accordion-selector.js';\n\nclass AccordionsGroup extends api.core.CollapsesGroup {\n static get instanceClassName () {\n return 'AccordionsGroup';\n }\n\n validate (member) {\n return member.node.matches(AccordionSelector.COLLAPSE);\n }\n}\n\nexport { AccordionsGroup };\n","import api from './api.js';\nimport { AccordionsGroup } from './script/accordion/accordions-group.js';\nimport { AccordionSelector } from './script/accordion/accordion-selector.js';\n\napi.accordion = {\n AccordionSelector: AccordionSelector,\n AccordionsGroup: AccordionsGroup\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.accordion.AccordionSelector.GROUP, api.accordion.AccordionsGroup);\n\nexport default api;\n","import api from '../../api.js';\n\nexport const ButtonSelector = {\n EQUISIZED_BUTTON: `${api.internals.ns.selector('btns-group--equisized')} ${api.internals.ns.selector('btn')}`,\n EQUISIZED_GROUP: api.internals.ns.selector('btns-group--equisized')\n};\n","import api from './api.js';\nimport { ButtonSelector } from './script/button/button-selector';\n\napi.button = {\n ButtonSelector: ButtonSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.button.ButtonSelector.EQUISIZED_BUTTON, api.core.Equisized);\napi.internals.register(api.button.ButtonSelector.EQUISIZED_GROUP, api.core.EquisizedsGroup);\n\nexport default api;\n","import api from '../../api.js';\n\nclass Breadcrumb extends api.core.Instance {\n constructor () {\n super();\n this.count = 0;\n this.focusing = this.focus.bind(this);\n }\n\n static get instanceClassName () {\n return 'Breadcrumb';\n }\n\n init () {\n this.getCollapse();\n this.isResizing = true;\n }\n\n get proxy () {\n const scope = this;\n return Object.assign(super.proxy, {\n focus: scope.focus.bind(scope),\n disclose: scope.collapse.disclose.bind(scope.collapse)\n });\n }\n\n getCollapse () {\n const collapse = this.collapse;\n if (collapse) {\n collapse.listen(api.core.DisclosureEvent.DISCLOSE, this.focusing);\n } else {\n this.addAscent(api.core.DisclosureEmission.ADDED, this.getCollapse.bind(this));\n }\n }\n\n resize () {\n const collapse = this.collapse;\n const links = this.links;\n if (!collapse || !links.length) return;\n\n if (this.isBreakpoint(api.core.Breakpoints.MD)) {\n if (collapse.buttonHasFocus) links[0].focus();\n } else {\n if (links.indexOf(document.activeElement) > -1) collapse.focus();\n }\n }\n\n get links () {\n return [...this.querySelectorAll('a[href]')];\n }\n\n get collapse () {\n return this.element.getDescendantInstances(api.core.Collapse.instanceClassName, null, true)[0];\n }\n\n focus () {\n this.count = 0;\n this._focus();\n }\n\n _focus () {\n const link = this.links[0];\n if (!link) return;\n link.focus();\n this.request(this.verify.bind(this));\n }\n\n verify () {\n this.count++;\n if (this.count > 100) return;\n const link = this.links[0];\n if (!link) return;\n if (document.activeElement !== link) this._focus();\n }\n}\n\nexport { Breadcrumb };\n","import api from '../../api.js';\n\nexport const BreadcrumbSelector = {\n BREADCRUMB: api.internals.ns.selector('breadcrumb')\n};\n","import api from './api.js';\nimport { Breadcrumb } from './script/breadcrumb/breadcrumb.js';\nimport { BreadcrumbSelector } from './script/breadcrumb/breadcrumb-selector.js';\n\napi.breadcrumb = {\n BreadcrumbSelector: BreadcrumbSelector,\n Breadcrumb: Breadcrumb\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.breadcrumb.BreadcrumbSelector.BREADCRUMB, api.breadcrumb.Breadcrumb);\n\nexport default api;\n","import api from '../../api.js';\n\nclass ToggleInput extends api.core.Instance {\n static get instanceClassName () {\n return 'ToggleInput';\n }\n\n get isChecked () {\n return this.hasAttribute('checked');\n }\n}\n\nexport { ToggleInput };\n","import api from '../../api.js';\nimport { ToggleInput } from './toggle-input.js';\n\nclass ToggleStatusLabel extends api.core.Instance {\n static get instanceClassName () {\n return 'ToggleStatusLabel';\n }\n\n init () {\n this.register(`input[id=\"${this.getAttribute('for')}\"]`, ToggleInput);\n this.update();\n this.isSwappingFont = true;\n }\n\n get proxy () {\n const scope = this;\n return Object.assign(super.proxy, {\n update: scope.update.bind(scope)\n });\n }\n\n get input () {\n return this.getRegisteredInstances('ToggleInput')[0];\n }\n\n update () {\n this.node.style.removeProperty('--toggle-status-width');\n const checked = this.input.isChecked;\n\n const style = getComputedStyle(this.node, ':before');\n let maxWidth = parseFloat(style.width);\n this.input.node.checked = !checked;\n\n const style2 = getComputedStyle(this.node, ':before');\n const width = parseFloat(style2.width);\n if (width > maxWidth) maxWidth = width;\n this.input.node.checked = checked;\n\n this.node.style.setProperty('--toggle-status-width', (maxWidth / 16) + 'rem');\n }\n\n swapFont (families) {\n this.update();\n }\n}\n\nexport { ToggleStatusLabel };\n","import api from '../../api.js';\n\nexport const ToggleSelector = {\n STATUS_LABEL: `${api.internals.ns.selector('toggle__label')}${api.internals.ns.attr.selector('checked-label')}${api.internals.ns.attr.selector('unchecked-label')}`\n};\n","import api from './api.js';\nimport { ToggleStatusLabel } from './script/toggle/toggle-status-label.js';\nimport { ToggleSelector } from './script/toggle/toggle-selector.js';\n// import { ToggleInput } from './script/toggle/toggle-input.js';\n\napi.toggle = {\n ToggleStatusLabel: ToggleStatusLabel,\n ToggleSelector: ToggleSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.toggle.ToggleSelector.STATUS_LABEL, api.toggle.ToggleStatusLabel);\n\nexport default api;\n","import api from '../../api.js';\n\nexport const SidemenuSelector = {\n LIST: api.internals.ns.selector('sidemenu__list'),\n COLLAPSE: `${api.internals.ns.selector('sidemenu__item')} > ${api.internals.ns.selector('collapse')}`\n};\n","import api from '../../api.js';\nimport { SidemenuSelector } from './sidemenu-selector.js';\n\nclass SidemenuList extends api.core.CollapsesGroup {\n static get instanceClassName () {\n return 'SidemenuList';\n }\n\n validate (member) {\n return member.node.matches(SidemenuSelector.COLLAPSE);\n }\n}\n\nexport { SidemenuList };\n","import api from './api.js';\nimport { SidemenuList } from './script/sidemenu/sidemenu-list.js';\nimport { SidemenuSelector } from './script/sidemenu/sidemenu-selector.js';\n\napi.sidemenu = {\n SidemenuList: SidemenuList,\n SidemenuSelector: SidemenuSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.sidemenu.SidemenuSelector.LIST, api.sidemenu.SidemenuList);\n\nexport default api;\n","import api from '../../api.js';\n\nexport const ModalSelector = {\n MODAL: api.internals.ns.selector('modal'),\n SCROLL_SHADOW: api.internals.ns.selector('scroll-shadow'),\n BODY: api.internals.ns.selector('modal__body')\n};\n","import api from '../../api.js';\n\nclass ModalButton extends api.core.DisclosureButton {\n constructor () {\n super(api.core.DisclosureType.OPENED);\n }\n\n static get instanceClassName () {\n return 'ModalButton';\n }\n}\n\nexport { ModalButton };\n","import api from '../../api';\n\nexport const ModalAttribute = {\n CONCEALING_BACKDROP: api.internals.ns.attr('concealing-backdrop')\n};\n","import api from '../../api.js';\nimport { ModalSelector } from './modal-selector.js';\nimport { ModalButton } from './modal-button.js';\nimport { ModalAttribute } from './modal-attribute';\n\nclass Modal extends api.core.Disclosure {\n constructor () {\n super(api.core.DisclosureType.OPENED, ModalSelector.MODAL, ModalButton, 'ModalsGroup');\n this.scrolling = this.resize.bind(this, false);\n this.resizing = this.resize.bind(this, true);\n }\n\n static get instanceClassName () {\n return 'Modal';\n }\n\n init () {\n super.init();\n this.listen('click', this.click.bind(this));\n this.listenKey(api.core.KeyCodes.ESCAPE, this.conceal.bind(this, false, false), true, true);\n }\n\n get body () {\n return this.element.getDescendantInstances('ModalBody', 'Modal')[0];\n }\n\n click (e) {\n if (e.target === this.node && this.getAttribute(ModalAttribute.CONCEALING_BACKDROP) !== 'false') this.conceal();\n }\n\n disclose (withhold) {\n if (!super.disclose(withhold)) return false;\n if (this.body) this.body.activate();\n this.isScrollLocked = true;\n this.setAttribute('aria-modal', 'true');\n this.setAttribute('open', 'true');\n return true;\n }\n\n conceal (withhold, preventFocus) {\n if (!super.conceal(withhold, preventFocus)) return false;\n this.isScrollLocked = false;\n this.removeAttribute('aria-modal');\n this.removeAttribute('open');\n if (this.body) this.body.deactivate();\n return true;\n }\n}\n\nexport { Modal };\n","import api from '../../api.js';\n\nconst unordereds = [\n '[tabindex=\"0\"]',\n 'a[href]',\n 'button:not([disabled])',\n 'input:not([disabled])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n 'audio[controls]',\n 'video[controls]',\n '[contenteditable]:not([contenteditable=\"false\"])',\n 'details>summary:first-of-type',\n 'details',\n 'iframe'\n];\n\nconst UNORDEREDS = unordereds.join();\n\nconst ordereds = [\n '[tabindex]:not([tabindex=\"-1\"]):not([tabindex=\"0\"])'\n];\n\nconst ORDEREDS = ordereds.join();\n\nconst IS_STUNNING = false;\n\nconst isFocusable = (element, container) => {\n if (!(element instanceof Element)) return false;\n const style = window.getComputedStyle(element);\n if (!style) return false;\n if (style.visibility === 'hidden') return false;\n if (container === undefined) container = element;\n\n while (container.contains(element)) {\n if (style.display === 'none') return false;\n element = element.parentElement;\n }\n\n return true;\n};\n\nclass FocusTrap {\n constructor (onTrap, onUntrap) {\n this.element = null;\n this.activeElement = null;\n this.onTrap = onTrap;\n this.onUntrap = onUntrap;\n this.waiting = this.wait.bind(this);\n this.handling = this.handle.bind(this);\n this.focusing = this.maintainFocus.bind(this);\n this.current = null;\n }\n\n get trapped () { return this.element !== null; }\n\n trap (element) {\n if (this.trapped) this.untrap();\n\n this.element = element;\n this.isTrapping = true;\n this.wait();\n\n if (this.onTrap) this.onTrap();\n }\n\n wait () {\n if (!isFocusable(this.element)) {\n window.requestAnimationFrame(this.waiting);\n return;\n }\n\n this.trapping();\n }\n\n trapping () {\n if (!this.isTrapping) return;\n this.isTrapping = false;\n const focusables = this.focusables;\n if (focusables.length) focusables[0].focus();\n this.element.setAttribute('aria-modal', true);\n window.addEventListener('keydown', this.handling);\n document.body.addEventListener('focus', this.focusing, true);\n\n if (IS_STUNNING) {\n this.stunneds = [];\n this.stun(document.body);\n }\n }\n\n stun (node) {\n for (const child of node.children) {\n if (child === this.element) continue;\n if (child.contains(this.element)) {\n this.stun(child);\n continue;\n }\n this.stunneds.push(new Stunned(child));\n }\n }\n\n maintainFocus (event) {\n if (!this.element.contains(event.target)) {\n const focusables = this.focusables;\n if (focusables.length === 0) return;\n const first = focusables[0];\n event.preventDefault();\n first.focus();\n }\n }\n\n handle (e) {\n if (e.keyCode !== 9) return;\n\n const focusables = this.focusables;\n if (focusables.length === 0) return;\n\n const first = focusables[0];\n const last = focusables[focusables.length - 1];\n\n const index = focusables.indexOf(document.activeElement);\n\n if (e.shiftKey) {\n if (!this.element.contains(document.activeElement) || index < 1) {\n e.preventDefault();\n last.focus();\n } else if (document.activeElement.tabIndex > 0 || focusables[index - 1].tabIndex > 0) {\n e.preventDefault();\n focusables[index - 1].focus();\n }\n } else {\n if (!this.element.contains(document.activeElement) || index === focusables.length - 1 || index === -1) {\n e.preventDefault();\n first.focus();\n } else if (document.activeElement.tabIndex > 0) {\n e.preventDefault();\n focusables[index + 1].focus();\n }\n }\n }\n\n get focusables () {\n let unordereds = api.internals.dom.querySelectorAllArray(this.element, UNORDEREDS);\n\n /**\n * filtrage des radiobutttons de même name (la navigations d'un groupe de radio se fait à la flèche et non pas au tab\n **/\n const radios = api.internals.dom.querySelectorAllArray(document.documentElement, 'input[type=\"radio\"]');\n\n if (radios.length) {\n const groups = {};\n\n for (const radio of radios) {\n const name = radio.getAttribute('name');\n if (groups[name] === undefined) groups[name] = new RadioButtonGroup(name);\n groups[name].push(radio);\n }\n\n unordereds = unordereds.filter((unordered) => {\n if (unordered.tagName.toLowerCase() !== 'input' || unordered.getAttribute('type').toLowerCase() !== 'radio') return true;\n const name = unordered.getAttribute('name');\n return groups[name].keep(unordered);\n });\n }\n\n const ordereds = api.internals.dom.querySelectorAllArray(this.element, ORDEREDS);\n\n ordereds.sort((a, b) => a.tabIndex - b.tabIndex);\n\n const noDuplicates = unordereds.filter((element) => ordereds.indexOf(element) === -1);\n const concateneds = ordereds.concat(noDuplicates);\n return concateneds.filter((element) => element.tabIndex !== '-1' && isFocusable(element, this.element));\n }\n\n untrap () {\n if (!this.trapped) return;\n this.isTrapping = false;\n\n this.element.removeAttribute('aria-modal');\n window.removeEventListener('keydown', this.handling);\n document.body.removeEventListener('focus', this.focusing, true);\n\n this.element = null;\n\n if (IS_STUNNING) {\n for (const stunned of this.stunneds) stunned.unstun();\n this.stunneds = [];\n }\n\n if (this.onUntrap) this.onUntrap();\n }\n\n dispose () {\n this.untrap();\n }\n}\n\nclass Stunned {\n constructor (element) {\n this.element = element;\n // this.hidden = element.getAttribute('aria-hidden');\n this.inert = element.getAttribute('inert');\n\n // this.element.setAttribute('aria-hidden', true);\n this.element.setAttribute('inert', '');\n }\n\n unstun () {\n /*\n if (this.hidden === null) this.element.removeAttribute('aria-hidden');\n else this.element.setAttribute('aria-hidden', this.hidden);\n */\n\n if (this.inert === null) this.element.removeAttribute('inert');\n else this.element.setAttribute('inert', this.inert);\n }\n}\n\nclass RadioButtonGroup {\n constructor (name) {\n this.name = name;\n this.buttons = [];\n }\n\n push (button) {\n this.buttons.push(button);\n if (button === document.activeElement || button.checked || this.selected === undefined) this.selected = button;\n }\n\n keep (button) {\n return this.selected === button;\n }\n}\n\nexport { FocusTrap };\n","import api from '../../api.js';\nimport { FocusTrap } from './focus-trap.js';\n\nclass ModalsGroup extends api.core.DisclosuresGroup {\n constructor () {\n super('Modal', false);\n this.focusTrap = new FocusTrap();\n }\n\n static get instanceClassName () {\n return 'ModalsGroup';\n }\n\n apply (value, initial) {\n super.apply(value, initial);\n if (this.current === null) this.focusTrap.untrap();\n else this.focusTrap.trap(this.current.node);\n }\n}\n\nexport { ModalsGroup };\n","import api from '../../api.js';\nimport { ModalSelector } from './modal-selector.js';\n\nconst OFFSET = 32; // 32px => 8v => 2rem\n\nclass ModalBody extends api.core.Instance {\n static get instanceClassName () {\n return 'ModalBody';\n }\n\n init () {\n this.listen('scroll', this.shade.bind(this));\n }\n\n activate () {\n this.isResizing = true;\n this.resize();\n }\n\n deactivate () {\n this.isResizing = false;\n }\n\n shade () {\n if (this.node.scrollHeight > this.node.clientHeight) {\n if (this.node.offsetHeight + this.node.scrollTop >= this.node.scrollHeight) {\n this.removeClass(ModalSelector.SCROLL_SHADOW);\n } else {\n this.addClass(ModalSelector.SCROLL_SHADOW);\n }\n } else {\n this.removeClass(ModalSelector.SCROLL_SHADOW);\n }\n }\n\n resize () {\n this.adjust();\n this.request(this.adjust.bind(this));\n }\n\n adjust () {\n const offset = OFFSET * (this.isBreakpoint(api.core.Breakpoints.MD) ? 2 : 1);\n if (this.isLegacy) this.style.maxHeight = `${window.innerHeight - offset}px`;\n else this.style.setProperty('--modal-max-height', `${window.innerHeight - offset}px`);\n this.shade();\n }\n}\n\nexport { ModalBody };\n","import api from './api.js';\n\nimport { Modal } from './script/modal/modal.js';\nimport { ModalButton } from './script/modal/modal-button.js';\nimport { ModalsGroup } from './script/modal/modals-group.js';\nimport { ModalBody } from './script/modal/modal-body.js';\nimport { ModalSelector } from './script/modal/modal-selector.js';\n\napi.modal = {\n Modal: Modal,\n ModalButton: ModalButton,\n ModalBody: ModalBody,\n ModalsGroup: ModalsGroup,\n ModalSelector: ModalSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.modal.ModalSelector.MODAL, api.modal.Modal);\napi.internals.register(api.modal.ModalSelector.BODY, api.modal.ModalBody);\napi.internals.register(api.core.RootSelector.ROOT, api.modal.ModalsGroup);\n\nexport default api;\n","import api from '../../api.js';\n\nexport const NavigationSelector = {\n NAVIGATION: api.internals.ns.selector('nav'),\n COLLAPSE: `${api.internals.ns.selector('nav__item')} > ${api.internals.ns.selector('collapse')}`,\n ITEM: api.internals.ns.selector('nav__item'),\n ITEM_RIGHT: api.internals.ns('nav__item--align-right'),\n MENU: api.internals.ns.selector('menu')\n};\n","import api from '../../api.js';\nimport { NavigationSelector } from './navigation-selector.js';\n\nclass NavigationItem extends api.core.Instance {\n constructor () {\n super();\n this._isRightAligned = false;\n }\n\n static get instanceClassName () {\n return 'NavigationItem';\n }\n\n init () {\n this.addAscent(api.core.DisclosureEmission.ADDED, this.calculate.bind(this));\n this.addAscent(api.core.DisclosureEmission.REMOVED, this.calculate.bind(this));\n this.isResizing = true;\n this.calculate();\n }\n\n resize () {\n this.calculate();\n }\n\n calculate () {\n const collapse = this.element.getDescendantInstances(api.core.Collapse.instanceClassName, null, true)[0];\n if (collapse && this.isBreakpoint(api.core.Breakpoints.LG) && collapse.element.node.matches(NavigationSelector.MENU)) {\n const right = this.element.node.parentElement.getBoundingClientRect().right;\n const width = collapse.element.node.getBoundingClientRect().width;\n const left = this.element.node.getBoundingClientRect().left;\n this.isRightAligned = left + width > right;\n } else this.isRightAligned = false;\n }\n\n get isRightAligned () {\n return this._isRightAligned;\n }\n\n set isRightAligned (value) {\n if (this._isRightAligned === value) return;\n this._isRightAligned = value;\n if (value) api.internals.dom.addClass(this.element.node, NavigationSelector.ITEM_RIGHT);\n else api.internals.dom.removeClass(this.element.node, NavigationSelector.ITEM_RIGHT);\n }\n}\n\nexport { NavigationItem };\n","export const NavigationMousePosition = {\n NONE: -1,\n INSIDE: 0,\n OUTSIDE: 1\n};\n","import api from '../../api.js';\nimport { NavigationSelector } from './navigation-selector.js';\nimport { NavigationMousePosition } from './navigation-mouse-position.js';\n\nclass Navigation extends api.core.CollapsesGroup {\n static get instanceClassName () {\n return 'Navigation';\n }\n\n init () {\n super.init();\n this.clicked = false;\n this.out = false;\n this.listen('focusout', this.focusOut.bind(this));\n this.listen('mousedown', this.down.bind(this));\n }\n\n validate (member) {\n return member.element.node.matches(NavigationSelector.COLLAPSE);\n }\n\n down (e) {\n if (!this.isBreakpoint(api.core.Breakpoints.LG) || this.index === -1 || !this.current) return;\n this.position = this.current.element.node.contains(e.target) ? NavigationMousePosition.INSIDE : NavigationMousePosition.OUTSIDE;\n this.request(this.getPosition.bind(this));\n }\n\n focusOut (e) {\n if (!this.isBreakpoint(api.core.Breakpoints.LG)) return;\n this.out = true;\n this.request(this.getPosition.bind(this));\n }\n\n getPosition () {\n if (this.out) {\n switch (this.position) {\n case NavigationMousePosition.OUTSIDE:\n this.index = -1;\n break;\n\n case NavigationMousePosition.INSIDE:\n if (this.current) this.current.focus();\n break;\n\n default:\n if (this.index > -1 && !this.current.hasFocus) this.index = -1;\n }\n }\n this.position = NavigationMousePosition.NONE;\n this.out = false;\n }\n\n get index () { return super.index; }\n\n set index (value) {\n if (value === -1 && this.current !== null && this.current.hasFocus) this.current.focus();\n super.index = value;\n }\n}\n\nexport { Navigation };\n","import api from './api.js';\nimport { NavigationItem } from './script/navigation/navigation-item.js';\nimport { Navigation } from './script/navigation/navigation.js';\nimport { NavigationSelector } from './script/navigation/navigation-selector.js';\nimport { NavigationMousePosition } from './script/navigation/navigation-mouse-position.js';\n\napi.navigation = {\n Navigation: Navigation,\n NavigationItem: NavigationItem,\n NavigationMousePosition: NavigationMousePosition,\n NavigationSelector: NavigationSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.navigation.NavigationSelector.NAVIGATION, api.navigation.Navigation);\napi.internals.register(api.navigation.NavigationSelector.ITEM, api.navigation.NavigationItem);\n\nexport default api;\n","import api from '../../api.js';\n\n/**\n * TabButton correspond au bouton cliquable qui change le panel\n * TabButton étend de DisclosureButton qui ajoute/enelve l'attribut aria-selected,\n * Et change l'attributte tabindex a 0 si le boutton est actif (value=true), -1 s'il n'est pas actif (value=false)\n */\nclass TabButton extends api.core.DisclosureButton {\n constructor () {\n super(api.core.DisclosureType.SELECT);\n }\n\n static get instanceClassName () {\n return 'TabButton';\n }\n\n apply (value) {\n super.apply(value);\n if (this.isPrimary) {\n this.setAttribute('tabindex', value ? '0' : '-1');\n if (value) {\n if (this.list) this.list.focalize(this);\n }\n }\n }\n\n get list () {\n return this.element.getAscendantInstance('TabsList', 'TabsGroup');\n }\n}\n\nexport { TabButton };\n","import api from '../../api.js';\n\nexport const TabSelector = {\n TAB: api.internals.ns.selector('tabs__tab'),\n GROUP: api.internals.ns.selector('tabs'),\n PANEL: api.internals.ns.selector('tabs__panel'),\n LIST: api.internals.ns.selector('tabs__list'),\n SHADOW: api.internals.ns.selector('tabs__shadow'),\n SHADOW_LEFT: api.internals.ns.selector('tabs__shadow--left'),\n SHADOW_RIGHT: api.internals.ns.selector('tabs__shadow--right'),\n PANEL_START: api.internals.ns.selector('tabs__panel--direction-start'),\n PANEL_END: api.internals.ns.selector('tabs__panel--direction-end')\n};\n","export const TabPanelDirection = {\n START: 'direction-start',\n END: 'direction-end',\n NONE: 'none'\n};\n","import api from '../../api.js';\nimport { TabButton } from './tab-button.js';\nimport { TabSelector } from './tab-selector.js';\nimport { TabPanelDirection } from './tab-panel-direction.js';\n\n/**\n * Tab coorespond au panel d'un élement Tabs (tab panel)\n * Tab étend disclosure qui ajoute/enleve le modifier --selected,\n * et ajoute/eleve l'attribut hidden, sur le panel\n */\nclass TabPanel extends api.core.Disclosure {\n constructor () {\n super(api.core.DisclosureType.SELECT, TabSelector.PANEL, TabButton, 'TabsGroup');\n this._direction = TabPanelDirection.NONE;\n this._isPreventingTransition = false;\n }\n\n static get instanceClassName () {\n return 'TabPanel';\n }\n\n get direction () {\n return this._direction;\n }\n\n set direction (value) {\n if (value === this._direction) return;\n switch (this._direction) {\n case TabPanelDirection.START:\n this.removeClass(TabSelector.PANEL_START);\n break;\n\n case TabPanelDirection.END:\n this.removeClass(TabSelector.PANEL_END);\n break;\n\n case TabPanelDirection.NONE:\n break;\n\n default:\n return;\n }\n\n this._direction = value;\n\n switch (this._direction) {\n case TabPanelDirection.START:\n this.addClass(TabSelector.PANEL_START);\n break;\n\n case TabPanelDirection.END:\n this.addClass(TabSelector.PANEL_END);\n break;\n }\n }\n\n get isPreventingTransition () {\n return this._isPreventingTransition;\n }\n\n set isPreventingTransition (value) {\n if (this._isPreventingTransition === value) return;\n if (value) this.addClass(api.internals.motion.TransitionSelector.NONE);\n else this.removeClass(api.internals.motion.TransitionSelector.NONE);\n this._isPreventingTransition = value === true;\n }\n\n translate (direction, initial) {\n this.isPreventingTransition = initial;\n this.direction = direction;\n }\n\n reset () {\n this.group.index = 0;\n }\n}\n\nexport { TabPanel };\n","import api from '../../api.js';\nimport { TabPanelDirection } from './tab-panel-direction.js';\n\n/**\n* TabGroup est la classe étendue de DiscosuresGroup\n* Correspond à un objet Tabs avec plusieurs tab-button & Tab (panel)\n*/\nclass TabsGroup extends api.core.DisclosuresGroup {\n constructor () {\n super('TabPanel');\n }\n\n static get instanceClassName () {\n return 'TabsGroup';\n }\n\n init () {\n super.init();\n this.listen('transitionend', this.transitionend.bind(this));\n this.listenKey(api.core.KeyCodes.RIGHT, this.pressRight.bind(this), true, true);\n this.listenKey(api.core.KeyCodes.LEFT, this.pressLeft.bind(this), true, true);\n this.listenKey(api.core.KeyCodes.HOME, this.pressHome.bind(this), true, true);\n this.listenKey(api.core.KeyCodes.END, this.pressEnd.bind(this), true, true);\n this.isRendering = true;\n\n if (this.list) this.list.apply();\n }\n\n get list () {\n return this.element.getDescendantInstances('TabsList', 'TabsGroup', true)[0];\n }\n\n transitionend (e) {\n this.isPreventingTransition = true;\n }\n\n get buttonHasFocus () {\n return this.members.some(member => member.buttonHasFocus);\n }\n\n /**\n * Selectionne l'element suivant de la liste si on est sur un bouton\n * Si on est à la fin on retourne au début\n */\n pressRight () {\n if (this.buttonHasFocus) {\n if (this.index < this.length - 1) {\n this.index++;\n } else {\n this.index = 0;\n }\n\n this.focus();\n }\n };\n\n /**\n * Selectionne l'element précédent de la liste si on est sur un bouton\n * Si on est au debut retourne a la fin\n */\n pressLeft () {\n if (this.buttonHasFocus) {\n if (this.index > 0) {\n this.index--;\n } else {\n this.index = this.length - 1;\n }\n\n this.focus();\n }\n };\n\n /**\n * Selectionne le permier element de la liste si on est sur un bouton\n */\n pressHome () {\n if (this.buttonHasFocus) {\n this.index = 0;\n this.focus();\n }\n };\n\n /**\n * Selectionne le dernier element de la liste si on est sur un bouton\n */\n pressEnd () {\n if (this.buttonHasFocus) {\n this.index = this.length - 1;\n this.focus();\n }\n };\n\n focus () {\n if (this.current) {\n this.current.focus();\n }\n }\n\n apply () {\n for (let i = 0; i < this._index; i++) this.members[i].translate(TabPanelDirection.START);\n this.current.translate(TabPanelDirection.NONE);\n for (let i = this._index + 1; i < this.length; i++) this.members[i].translate(TabPanelDirection.END);\n this.isPreventingTransition = false;\n }\n\n get isPreventingTransition () {\n return this._isPreventingTransition;\n }\n\n set isPreventingTransition (value) {\n if (this._isPreventingTransition === value) return;\n if (value) this.addClass(api.internals.motion.TransitionSelector.NONE);\n else this.removeClass(api.internals.motion.TransitionSelector.NONE);\n this._isPreventingTransition = value === true;\n }\n\n render () {\n if (this.current === null) return;\n const paneHeight = Math.round(this.current.node.offsetHeight);\n if (this.panelHeight === paneHeight) return;\n this.panelHeight = paneHeight;\n let listHeight = 0;\n if (this.list) listHeight = this.list.node.offsetHeight;\n this.style.setProperty('--tabs-height', (this.panelHeight + listHeight) + 'px');\n }\n}\n\nexport { TabsGroup };\n","import api from '../../api.js';\nimport { TabSelector } from './tab-selector';\n\nconst FOCALIZE_OFFSET = 16;\nconst SCROLL_OFFSET = 16; // valeur en px du scroll avant laquelle le shadow s'active ou se desactive\n\nclass TabsList extends api.core.Instance {\n static get instanceClassName () {\n return 'TabsList';\n }\n\n init () {\n this.listen('scroll', this.scroll.bind(this));\n this.isResizing = true;\n }\n\n get group () {\n return this.element.getAscendantInstance('TabsGroup', 'TabsList');\n }\n\n focalize (btn) {\n const btnRect = btn.getRect();\n const listRect = this.getRect();\n const actualScroll = this.node.scrollLeft;\n if (btnRect.left < listRect.left) this.node.scrollTo(actualScroll - listRect.left + btnRect.left - FOCALIZE_OFFSET, 0);\n else if (btnRect.right > listRect.right) this.node.scrollTo(actualScroll - listRect.right + btnRect.right + FOCALIZE_OFFSET, 0);\n }\n\n get isScrolling () {\n return this._isScrolling;\n }\n\n set isScrolling (value) {\n if (this._isScrolling === value) return;\n this._isScrolling = value;\n this.apply();\n }\n\n apply () {\n if (!this.group) return;\n if (this._isScrolling) {\n this.group.addClass(TabSelector.SHADOW);\n this.scroll();\n } else {\n this.group.removeClass(TabSelector.SHADOW_RIGHT);\n this.group.removeClass(TabSelector.SHADOW_LEFT);\n this.group.removeClass(TabSelector.SHADOW);\n }\n }\n\n /* ajoute la classe fr-table__shadow-left ou fr-table__shadow-right sur fr-table en fonction d'une valeur de scroll et du sens (right, left) */\n scroll () {\n if (!this.group) return;\n const scrollLeft = this.node.scrollLeft;\n const isMin = scrollLeft <= SCROLL_OFFSET;\n const max = this.node.scrollWidth - this.node.clientWidth - SCROLL_OFFSET;\n\n const isMax = Math.abs(scrollLeft) >= max;\n const isRtl = document.documentElement.getAttribute('dir') === 'rtl';\n const minSelector = isRtl ? TabSelector.SHADOW_RIGHT : TabSelector.SHADOW_LEFT;\n const maxSelector = isRtl ? TabSelector.SHADOW_LEFT : TabSelector.SHADOW_RIGHT;\n\n if (isMin) {\n this.group.removeClass(minSelector);\n } else {\n this.group.addClass(minSelector);\n }\n\n if (isMax) {\n this.group.removeClass(maxSelector);\n } else {\n this.group.addClass(maxSelector);\n }\n }\n\n resize () {\n this.isScrolling = this.node.scrollWidth > this.node.clientWidth + SCROLL_OFFSET;\n }\n\n dispose () {\n this.isScrolling = false;\n }\n}\n\nexport { TabsList };\n","import api from './api.js';\nimport { TabPanel } from './script/tab/tab-panel.js';\nimport { TabButton } from './script/tab/tab-button.js';\nimport { TabsGroup } from './script/tab/tabs-group.js';\nimport { TabsList } from './script/tab/tabs-list.js';\nimport { TabSelector } from './script/tab/tab-selector.js';\n\napi.tab = {\n TabPanel: TabPanel,\n TabButton: TabButton,\n TabsGroup: TabsGroup,\n TabsList: TabsList,\n TabSelector: TabSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.tab.TabSelector.PANEL, api.tab.TabPanel);\napi.internals.register(api.tab.TabSelector.GROUP, api.tab.TabsGroup);\napi.internals.register(api.tab.TabSelector.LIST, api.tab.TabsList);\n\nexport default api;\n","import api from '../../api.js';\n\nexport const TableEmission = {\n SCROLLABLE: api.internals.ns.emission('table', 'scrollable'),\n CHANGE: api.internals.ns.emission('table', 'change'),\n CAPTION_HEIGHT: api.internals.ns.emission('table', 'captionheight')\n};\n","import api from '../../api.js';\nimport { TableEmission } from './table-emission.js';\n\nconst PADDING = '1rem'; // padding de 4v sur le caption\n\nclass Table extends api.core.Instance {\n static get instanceClassName () {\n return 'Table';\n }\n\n init () {\n this.addAscent(TableEmission.CAPTION_HEIGHT, this.setCaptionHeight.bind(this));\n }\n\n setCaptionHeight (value) {\n this.setProperty('--table-offset', `calc(${value}px + ${PADDING})`);\n }\n}\n\nexport { Table };\n","import api from '../../api.js';\n\nexport const TableSelector = {\n TABLE: api.internals.ns.selector('table'),\n SHADOW: api.internals.ns.selector('table__shadow'),\n SHADOW_LEFT: api.internals.ns.selector('table__shadow--left'),\n SHADOW_RIGHT: api.internals.ns.selector('table__shadow--right'),\n ELEMENT: `${api.internals.ns.selector('table')}:not(${api.internals.ns.selector('table--no-scroll')}) table`,\n CAPTION: `${api.internals.ns.selector('table')} table caption`\n};\n","import api from '../../api.js';\nimport { TableSelector } from './table-selector.js';\n\nconst SCROLL_OFFSET = 8; // valeur en px du scroll avant laquelle le shadow s'active ou se desactive\n\nclass TableElement extends api.core.Instance {\n static get instanceClassName () {\n return 'TableElement';\n }\n\n init () {\n this.listen('scroll', this.scroll.bind(this));\n this.content = this.querySelector('tbody');\n this.isResizing = true;\n }\n\n get isScrolling () {\n return this._isScrolling;\n }\n\n set isScrolling (value) {\n if (this._isScrolling === value) return;\n this._isScrolling = value;\n\n if (value) {\n this.addClass(TableSelector.SHADOW);\n this.scroll();\n } else {\n this.removeClass(TableSelector.SHADOW);\n this.removeClass(TableSelector.SHADOW_LEFT);\n this.removeClass(TableSelector.SHADOW_RIGHT);\n }\n }\n\n /* ajoute la classe fr-table__shadow-left ou fr-table__shadow-right sur fr-table en fonction d'une valeur de scroll et du sens (right, left) */\n scroll () {\n const isMin = this.node.scrollLeft <= SCROLL_OFFSET;\n const max = this.content.offsetWidth - this.node.offsetWidth - SCROLL_OFFSET;\n const isMax = Math.abs(this.node.scrollLeft) >= max;\n const isRtl = document.documentElement.getAttribute('dir') === 'rtl';\n const minSelector = isRtl ? TableSelector.SHADOW_RIGHT : TableSelector.SHADOW_LEFT;\n const maxSelector = isRtl ? TableSelector.SHADOW_LEFT : TableSelector.SHADOW_RIGHT;\n\n if (isMin) {\n this.removeClass(minSelector);\n } else {\n this.addClass(minSelector);\n }\n\n if (isMax) {\n this.removeClass(maxSelector);\n } else {\n this.addClass(maxSelector);\n }\n }\n\n resize () {\n this.isScrolling = this.content.offsetWidth > this.node.offsetWidth;\n }\n\n dispose () {\n this.isScrolling = false;\n }\n}\n\nexport { TableElement };\n","import api from '../../api.js';\nimport { TableEmission } from './table-emission.js';\n\nclass TableCaption extends api.core.Instance {\n static get instanceClassName () {\n return 'TableCaption';\n }\n\n init () {\n this.height = 0;\n this.isResizing = true;\n }\n\n resize () {\n const height = this.getRect().height;\n if (this.height === height) return;\n this.height = height;\n this.ascend(TableEmission.CAPTION_HEIGHT, height);\n }\n}\n\nexport { TableCaption };\n","import api from './api.js';\nimport { Table } from './script/table/table.js';\nimport { TableElement } from './script/table/table-element.js';\nimport { TableSelector } from './script/table/table-selector.js';\nimport { TableCaption } from './script/table/table-caption.js';\n\napi.table = {\n Table: Table,\n TableElement: TableElement,\n TableCaption: TableCaption,\n TableSelector: TableSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.table.TableSelector.TABLE, api.table.Table);\napi.internals.register(api.table.TableSelector.ELEMENT, api.table.TableElement);\napi.internals.register(api.table.TableSelector.CAPTION, api.table.TableCaption);\n\nexport default api;\n","import api from '../../api.js';\n\nexport const TagSelector = {\n TAG_PRESSABLE: `${api.internals.ns.selector('tag')}[aria-pressed]`\n};\n","import api from './api.js';\nimport { TagSelector } from './script/tag/tag-selector';\n\napi.tag = {\n TagSelector: TagSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.tag.TagSelector.TAG_PRESSABLE, api.core.Toggle);\n\nexport default api;\n","import api from '../../api.js';\n\nexport const HeaderSelector = {\n HEADER: api.internals.ns.selector('header'),\n TOOLS_LINKS: api.internals.ns.selector('header__tools-links'),\n MENU_LINKS: api.internals.ns.selector('header__menu-links'),\n BUTTONS: `${api.internals.ns.selector('header__tools-links')} ${api.internals.ns.selector('btns-group')}, ${api.internals.ns.selector('header__tools-links')} ${api.internals.ns.selector('links-group')}`,\n MODALS: `${api.internals.ns.selector('header__search')}${api.internals.ns.selector('modal')}, ${api.internals.ns.selector('header__menu')}${api.internals.ns.selector('modal')}`\n};\n","import api from '../../api.js';\nimport { HeaderSelector } from './header-selector.js';\n\nclass HeaderLinks extends api.core.Instance {\n static get instanceClassName () {\n return 'HeaderLinks';\n }\n\n init () {\n const header = this.queryParentSelector(HeaderSelector.HEADER);\n this.toolsLinks = header.querySelector(HeaderSelector.TOOLS_LINKS);\n this.menuLinks = header.querySelector(HeaderSelector.MENU_LINKS);\n\n const toolsHtml = this.toolsLinks.innerHTML.replace(/ +/g, ' ');\n const menuHtml = this.menuLinks.innerHTML.replace(/ +/g, ' ');\n\n if (toolsHtml === menuHtml) return;\n\n switch (api.mode) {\n case api.Modes.ANGULAR:\n case api.Modes.REACT:\n case api.Modes.VUE:\n api.inspector.warn(`header__tools-links content is different from header__menu-links content.\nAs you're using a dynamic framework, you should handle duplication of this content yourself, please refer to documentation: \n${api.header.doc}`);\n break;\n\n default:\n this.menuLinks.innerHTML = this.toolsLinks.innerHTML;\n }\n }\n}\n\nexport { HeaderLinks };\n","import api from '../../api.js';\n\nclass HeaderModal extends api.core.Instance {\n static get instanceClassName () {\n return 'HeaderModal';\n }\n\n init () {\n this.isResizing = true;\n }\n\n resize () {\n if (this.isBreakpoint(api.core.Breakpoints.LG)) this.unqualify();\n else this.qualify();\n }\n\n qualify () {\n this.setAttribute('role', 'dialog');\n const modal = this.element.getInstance('Modal');\n if (!modal) return;\n const buttons = modal.buttons;\n let id = '';\n for (const button of buttons) {\n id = button.id || id;\n if (button.isPrimary && id) break;\n }\n this.setAttribute('aria-labelledby', id);\n }\n\n unqualify () {\n const modal = this.element.getInstance('Modal');\n if (modal) modal.conceal();\n this.removeAttribute('role');\n this.removeAttribute('aria-labelledby');\n }\n}\n\nexport { HeaderModal };\n","import api from './api.js';\nimport { HeaderLinks } from './script/header/header-links.js';\nimport { HeaderModal } from './script/header/header-modal.js';\nimport { HeaderSelector } from './script/header/header-selector.js';\n\napi.header = {\n HeaderLinks: HeaderLinks,\n HeaderModal: HeaderModal,\n HeaderSelector: HeaderSelector,\n doc: 'https://gouvfr.atlassian.net/wiki/spaces/DB/pages/222789846/En-t+te+-+Header'\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.header.HeaderSelector.BUTTONS, api.header.HeaderLinks);\napi.internals.register(api.header.HeaderSelector.MODALS, api.header.HeaderModal);\n\nexport default api;\n","import api from '../../api.js';\n\nexport const DisplaySelector = {\n DISPLAY: api.internals.ns.selector('display'),\n RADIO_BUTTONS: `input[name=\"${api.internals.ns('radios-theme')}\"]`,\n FIELDSET: api.internals.ns.selector('fieldset')\n};\n","import api from '../../api.js';\nimport { DisplaySelector } from './display-selector.js';\n\nclass Display extends api.core.Instance {\n static get instanceClassName () {\n return 'Display';\n }\n\n init () {\n this.radios = this.querySelectorAll(DisplaySelector.RADIO_BUTTONS);\n\n if (api.scheme) {\n this.changing = this.change.bind(this);\n for (const radio of this.radios) radio.addEventListener('change', this.changing);\n this.addDescent(api.scheme.SchemeEmission.SCHEME, this.apply.bind(this));\n this.ascend(api.scheme.SchemeEmission.ASK);\n } else {\n this.querySelector(DisplaySelector.FIELDSET).setAttribute('disabled', '');\n }\n }\n\n get scheme () {\n return this._scheme;\n }\n\n set scheme (value) {\n if (this._scheme === value || !api.scheme) return;\n switch (value) {\n case api.scheme.SchemeValue.SYSTEM:\n case api.scheme.SchemeValue.LIGHT:\n case api.scheme.SchemeValue.DARK:\n this._scheme = value;\n for (const radio of this.radios) {\n radio.checked = radio.value === value;\n }\n this.ascend(api.scheme.SchemeEmission.SCHEME, value);\n break;\n }\n }\n\n change () {\n for (const radio of this.radios) {\n if (radio.checked) {\n this.scheme = radio.value;\n return;\n }\n }\n }\n\n apply (value) {\n this.scheme = value;\n }\n\n dispose () {\n for (const radio of this.radios) radio.removeEventListener('change', this.changing);\n }\n}\n\nexport { Display };\n","import api from './api.js';\nimport { Display } from './script/display/display.js';\nimport { DisplaySelector } from './script/display/display-selector.js';\n\napi.display = {\n Display: Display,\n DisplaySelector: DisplaySelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.display.DisplaySelector.DISPLAY, api.display.Display);\n\nexport default api;\n"],"names":["api","window","AccordionSelector","GROUP","internals","ns","selector","COLLAPSE","AccordionsGroup","core","CollapsesGroup","instanceClassName","validate","member","node","matches","accordion","register","ButtonSelector","EQUISIZED_BUTTON","EQUISIZED_GROUP","button","Equisized","EquisizedsGroup","Breadcrumb","Instance","constructor","super","this","count","focusing","focus","bind","init","getCollapse","isResizing","proxy","scope","Object","assign","disclose","collapse","listen","DisclosureEvent","DISCLOSE","addAscent","DisclosureEmission","ADDED","resize","links","length","isBreakpoint","Breakpoints","MD","buttonHasFocus","indexOf","document","activeElement","querySelectorAll","element","getDescendantInstances","Collapse","_focus","link","request","verify","BreadcrumbSelector","BREADCRUMB","breadcrumb","ToggleInput","isChecked","hasAttribute","ToggleStatusLabel","getAttribute","update","isSwappingFont","input","getRegisteredInstances","style","removeProperty","checked","getComputedStyle","maxWidth","parseFloat","width","style2","setProperty","swapFont","families","ToggleSelector","STATUS_LABEL","attr","toggle","SidemenuSelector","LIST","SidemenuList","sidemenu","ModalSelector","MODAL","SCROLL_SHADOW","BODY","ModalButton","DisclosureButton","DisclosureType","OPENED","ModalAttribute","CONCEALING_BACKDROP","Modal","Disclosure","scrolling","resizing","click","listenKey","KeyCodes","ESCAPE","conceal","body","e","target","withhold","activate","isScrollLocked","setAttribute","preventFocus","removeAttribute","deactivate","UNORDEREDS","join","ORDEREDS","isFocusable","container","Element","visibility","undefined","contains","display","parentElement","FocusTrap","onTrap","onUntrap","waiting","wait","handling","handle","maintainFocus","current","trapped","trap","untrap","isTrapping","trapping","requestAnimationFrame","focusables","addEventListener","stun","child","children","stunneds","push","Stunned","event","first","preventDefault","keyCode","last","index","shiftKey","tabIndex","unordereds","dom","querySelectorAllArray","radios","documentElement","groups","radio","name","RadioButtonGroup","filter","unordered","tagName","toLowerCase","keep","ordereds","sort","a","b","noDuplicates","concat","removeEventListener","dispose","inert","unstun","buttons","selected","ModalsGroup","DisclosuresGroup","focusTrap","apply","value","initial","ModalBody","shade","scrollHeight","clientHeight","offsetHeight","scrollTop","removeClass","addClass","adjust","offset","isLegacy","maxHeight","innerHeight","modal","RootSelector","ROOT","NavigationSelector","NAVIGATION","ITEM","ITEM_RIGHT","MENU","NavigationItem","_isRightAligned","calculate","REMOVED","LG","right","getBoundingClientRect","left","isRightAligned","NavigationMousePosition","NONE","INSIDE","OUTSIDE","Navigation","clicked","out","focusOut","down","position","getPosition","hasFocus","navigation","TabButton","SELECT","isPrimary","list","focalize","getAscendantInstance","TabSelector","TAB","PANEL","SHADOW","SHADOW_LEFT","SHADOW_RIGHT","PANEL_START","PANEL_END","TabPanelDirection","TabPanel","_direction","_isPreventingTransition","direction","isPreventingTransition","motion","TransitionSelector","translate","reset","group","TabsGroup","transitionend","RIGHT","pressRight","LEFT","pressLeft","HOME","pressHome","END","pressEnd","isRendering","members","some","i","_index","render","paneHeight","Math","round","panelHeight","listHeight","TabsList","scroll","btn","btnRect","getRect","listRect","actualScroll","scrollLeft","scrollTo","isScrolling","_isScrolling","isMin","max","scrollWidth","clientWidth","isMax","abs","isRtl","minSelector","maxSelector","tab","TableEmission","SCROLLABLE","emission","CHANGE","CAPTION_HEIGHT","Table","setCaptionHeight","TableSelector","TABLE","ELEMENT","CAPTION","TableElement","content","querySelector","offsetWidth","TableCaption","height","ascend","table","TagSelector","TAG_PRESSABLE","tag","Toggle","HeaderSelector","HEADER","TOOLS_LINKS","MENU_LINKS","BUTTONS","MODALS","HeaderLinks","header","queryParentSelector","toolsLinks","menuLinks","innerHTML","replace","mode","Modes","ANGULAR","REACT","VUE","inspector","warn","doc","HeaderModal","unqualify","qualify","getInstance","id","DisplaySelector","DISPLAY","RADIO_BUTTONS","FIELDSET","Display","scheme","changing","change","addDescent","SchemeEmission","SCHEME","ASK","_scheme","SchemeValue","SYSTEM","LIGHT","DARK"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"component.module.min.js","sources":["../../.config/config.js","../../src/core/api.js","../../src/component/accordion/script/accordion/accordion-selector.js","../../src/component/accordion/script/accordion/accordions-group.js","../../src/component/accordion/index.js","../../src/component/accordion/main.js","../../src/component/button/script/button/button-selector.js","../../src/component/button/index.js","../../src/component/button/main.js","../../src/component/breadcrumb/script/breadcrumb/breadcrumb.js","../../src/component/breadcrumb/script/breadcrumb/breadcrumb-selector.js","../../src/component/breadcrumb/index.js","../../src/component/breadcrumb/main.js","../../src/component/toggle/script/toggle/toggle-input.js","../../src/component/toggle/script/toggle/toggle-status-label.js","../../src/component/toggle/script/toggle/toggle-selector.js","../../src/component/toggle/index.js","../../src/component/toggle/main.js","../../src/component/sidemenu/script/sidemenu/sidemenu-selector.js","../../src/component/sidemenu/script/sidemenu/sidemenu-list.js","../../src/component/sidemenu/index.js","../../src/component/sidemenu/main.js","../../src/component/modal/script/modal/modal-selector.js","../../src/component/modal/script/modal/modal-button.js","../../src/component/modal/script/modal/modal-attribute.js","../../src/component/modal/script/modal/modal.js","../../src/component/modal/script/modal/focus-trap.js","../../src/component/modal/script/modal/modals-group.js","../../src/component/modal/script/modal/modal-body.js","../../src/component/modal/index.js","../../src/component/modal/main.js","../../src/component/navigation/script/navigation/navigation-selector.js","../../src/component/navigation/script/navigation/navigation-item.js","../../src/component/navigation/script/navigation/navigation-mouse-position.js","../../src/component/navigation/script/navigation/navigation.js","../../src/component/navigation/index.js","../../src/component/navigation/main.js","../../src/component/tab/script/tab/tab-button.js","../../src/component/tab/script/tab/tab-selector.js","../../src/component/tab/script/tab/tab-panel-direction.js","../../src/component/tab/script/tab/tab-panel.js","../../src/component/tab/script/tab/tabs-group.js","../../src/component/tab/script/tab/tabs-list.js","../../src/component/tab/index.js","../../src/component/tab/main.js","../../src/component/table/script/table/table-emission.js","../../src/component/table/script/table/table.js","../../src/component/table/script/table/table-selector.js","../../src/component/table/script/table/table-element.js","../../src/component/table/script/table/table-caption.js","../../src/component/table/index.js","../../src/component/table/main.js","../../src/component/tag/script/tag/tag-selector.js","../../src/component/tag/index.js","../../src/component/tag/main.js","../../src/component/header/script/header/header-selector.js","../../src/component/header/script/header/header-links.js","../../src/component/header/script/header/header-modal.js","../../src/component/header/index.js","../../src/component/header/main.js","../../src/component/display/script/display/display-selector.js","../../src/component/display/script/display/display.js","../../src/component/display/index.js","../../src/component/display/main.js"],"sourcesContent":["const config = {\r\n prefix: 'fr',\r\n namespace: 'dsfr',\r\n organisation: '@gouvfr',\r\n version: '1.4.1'\r\n};\r\n\r\nexport default config;\r\n","import config from './config.js';\nconst api = window[config.namespace];\nexport default api;\n","import api from '../../api.js';\n\nexport const AccordionSelector = {\n GROUP: api.internals.ns.selector('accordions-group'),\n COLLAPSE: `${api.internals.ns.selector('accordion')} > ${api.internals.ns.selector('collapse')}`\n};\n","import api from '../../api.js';\nimport { AccordionSelector } from './accordion-selector.js';\n\nclass AccordionsGroup extends api.core.CollapsesGroup {\n static get instanceClassName () {\n return 'AccordionsGroup';\n }\n\n validate (member) {\n return member.node.matches(AccordionSelector.COLLAPSE);\n }\n}\n\nexport { AccordionsGroup };\n","import api from './api.js';\nimport { AccordionsGroup } from './script/accordion/accordions-group.js';\nimport { AccordionSelector } from './script/accordion/accordion-selector.js';\n\napi.accordion = {\n AccordionSelector: AccordionSelector,\n AccordionsGroup: AccordionsGroup\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.accordion.AccordionSelector.GROUP, api.accordion.AccordionsGroup);\n\nexport default api;\n","import api from '../../api.js';\n\nexport const ButtonSelector = {\n EQUISIZED_BUTTON: `${api.internals.ns.selector('btns-group--equisized')} ${api.internals.ns.selector('btn')}`,\n EQUISIZED_GROUP: api.internals.ns.selector('btns-group--equisized')\n};\n","import api from './api.js';\nimport { ButtonSelector } from './script/button/button-selector';\n\napi.button = {\n ButtonSelector: ButtonSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.button.ButtonSelector.EQUISIZED_BUTTON, api.core.Equisized);\napi.internals.register(api.button.ButtonSelector.EQUISIZED_GROUP, api.core.EquisizedsGroup);\n\nexport default api;\n","import api from '../../api.js';\n\nclass Breadcrumb extends api.core.Instance {\n constructor () {\n super();\n this.count = 0;\n this.focusing = this.focus.bind(this);\n }\n\n static get instanceClassName () {\n return 'Breadcrumb';\n }\n\n init () {\n this.getCollapse();\n this.isResizing = true;\n }\n\n get proxy () {\n const scope = this;\n return Object.assign(super.proxy, {\n focus: scope.focus.bind(scope),\n disclose: scope.collapse.disclose.bind(scope.collapse)\n });\n }\n\n getCollapse () {\n const collapse = this.collapse;\n if (collapse) {\n collapse.listen(api.core.DisclosureEvent.DISCLOSE, this.focusing);\n } else {\n this.addAscent(api.core.DisclosureEmission.ADDED, this.getCollapse.bind(this));\n }\n }\n\n resize () {\n const collapse = this.collapse;\n const links = this.links;\n if (!collapse || !links.length) return;\n\n if (this.isBreakpoint(api.core.Breakpoints.MD)) {\n if (collapse.buttonHasFocus) links[0].focus();\n } else {\n if (links.indexOf(document.activeElement) > -1) collapse.focus();\n }\n }\n\n get links () {\n return [...this.querySelectorAll('a[href]')];\n }\n\n get collapse () {\n return this.element.getDescendantInstances(api.core.Collapse.instanceClassName, null, true)[0];\n }\n\n focus () {\n this.count = 0;\n this._focus();\n }\n\n _focus () {\n const link = this.links[0];\n if (!link) return;\n link.focus();\n this.request(this.verify.bind(this));\n }\n\n verify () {\n this.count++;\n if (this.count > 100) return;\n const link = this.links[0];\n if (!link) return;\n if (document.activeElement !== link) this._focus();\n }\n}\n\nexport { Breadcrumb };\n","import api from '../../api.js';\n\nexport const BreadcrumbSelector = {\n BREADCRUMB: api.internals.ns.selector('breadcrumb')\n};\n","import api from './api.js';\nimport { Breadcrumb } from './script/breadcrumb/breadcrumb.js';\nimport { BreadcrumbSelector } from './script/breadcrumb/breadcrumb-selector.js';\n\napi.breadcrumb = {\n BreadcrumbSelector: BreadcrumbSelector,\n Breadcrumb: Breadcrumb\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.breadcrumb.BreadcrumbSelector.BREADCRUMB, api.breadcrumb.Breadcrumb);\n\nexport default api;\n","import api from '../../api.js';\n\nclass ToggleInput extends api.core.Instance {\n static get instanceClassName () {\n return 'ToggleInput';\n }\n\n get isChecked () {\n return this.hasAttribute('checked');\n }\n}\n\nexport { ToggleInput };\n","import api from '../../api.js';\nimport { ToggleInput } from './toggle-input.js';\n\nclass ToggleStatusLabel extends api.core.Instance {\n static get instanceClassName () {\n return 'ToggleStatusLabel';\n }\n\n init () {\n this.register(`input[id=\"${this.getAttribute('for')}\"]`, ToggleInput);\n this.update();\n this.isSwappingFont = true;\n }\n\n get proxy () {\n const scope = this;\n return Object.assign(super.proxy, {\n update: scope.update.bind(scope)\n });\n }\n\n get input () {\n return this.getRegisteredInstances('ToggleInput')[0];\n }\n\n update () {\n this.node.style.removeProperty('--toggle-status-width');\n const checked = this.input.isChecked;\n\n const style = getComputedStyle(this.node, ':before');\n let maxWidth = parseFloat(style.width);\n this.input.node.checked = !checked;\n\n const style2 = getComputedStyle(this.node, ':before');\n const width = parseFloat(style2.width);\n if (width > maxWidth) maxWidth = width;\n this.input.node.checked = checked;\n\n this.node.style.setProperty('--toggle-status-width', (maxWidth / 16) + 'rem');\n }\n\n swapFont (families) {\n this.update();\n }\n}\n\nexport { ToggleStatusLabel };\n","import api from '../../api.js';\n\nexport const ToggleSelector = {\n STATUS_LABEL: `${api.internals.ns.selector('toggle__label')}${api.internals.ns.attr.selector('checked-label')}${api.internals.ns.attr.selector('unchecked-label')}`\n};\n","import api from './api.js';\nimport { ToggleStatusLabel } from './script/toggle/toggle-status-label.js';\nimport { ToggleSelector } from './script/toggle/toggle-selector.js';\n// import { ToggleInput } from './script/toggle/toggle-input.js';\n\napi.toggle = {\n ToggleStatusLabel: ToggleStatusLabel,\n ToggleSelector: ToggleSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.toggle.ToggleSelector.STATUS_LABEL, api.toggle.ToggleStatusLabel);\n\nexport default api;\n","import api from '../../api.js';\n\nexport const SidemenuSelector = {\n LIST: api.internals.ns.selector('sidemenu__list'),\n COLLAPSE: `${api.internals.ns.selector('sidemenu__item')} > ${api.internals.ns.selector('collapse')}`\n};\n","import api from '../../api.js';\nimport { SidemenuSelector } from './sidemenu-selector.js';\n\nclass SidemenuList extends api.core.CollapsesGroup {\n static get instanceClassName () {\n return 'SidemenuList';\n }\n\n validate (member) {\n return member.node.matches(SidemenuSelector.COLLAPSE);\n }\n}\n\nexport { SidemenuList };\n","import api from './api.js';\nimport { SidemenuList } from './script/sidemenu/sidemenu-list.js';\nimport { SidemenuSelector } from './script/sidemenu/sidemenu-selector.js';\n\napi.sidemenu = {\n SidemenuList: SidemenuList,\n SidemenuSelector: SidemenuSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.sidemenu.SidemenuSelector.LIST, api.sidemenu.SidemenuList);\n\nexport default api;\n","import api from '../../api.js';\n\nexport const ModalSelector = {\n MODAL: api.internals.ns.selector('modal'),\n SCROLL_SHADOW: api.internals.ns.selector('scroll-shadow'),\n BODY: api.internals.ns.selector('modal__body')\n};\n","import api from '../../api.js';\n\nclass ModalButton extends api.core.DisclosureButton {\n constructor () {\n super(api.core.DisclosureType.OPENED);\n }\n\n static get instanceClassName () {\n return 'ModalButton';\n }\n}\n\nexport { ModalButton };\n","import api from '../../api';\n\nexport const ModalAttribute = {\n CONCEALING_BACKDROP: api.internals.ns.attr('concealing-backdrop')\n};\n","import api from '../../api.js';\nimport { ModalSelector } from './modal-selector.js';\nimport { ModalButton } from './modal-button.js';\nimport { ModalAttribute } from './modal-attribute';\n\nclass Modal extends api.core.Disclosure {\n constructor () {\n super(api.core.DisclosureType.OPENED, ModalSelector.MODAL, ModalButton, 'ModalsGroup');\n this.scrolling = this.resize.bind(this, false);\n this.resizing = this.resize.bind(this, true);\n }\n\n static get instanceClassName () {\n return 'Modal';\n }\n\n init () {\n super.init();\n this.listen('click', this.click.bind(this));\n this.listenKey(api.core.KeyCodes.ESCAPE, this.conceal.bind(this, false, false), true, true);\n }\n\n get body () {\n return this.element.getDescendantInstances('ModalBody', 'Modal')[0];\n }\n\n click (e) {\n if (e.target === this.node && this.getAttribute(ModalAttribute.CONCEALING_BACKDROP) !== 'false') this.conceal();\n }\n\n disclose (withhold) {\n if (!super.disclose(withhold)) return false;\n if (this.body) this.body.activate();\n this.isScrollLocked = true;\n this.setAttribute('aria-modal', 'true');\n this.setAttribute('open', 'true');\n return true;\n }\n\n conceal (withhold, preventFocus) {\n if (!super.conceal(withhold, preventFocus)) return false;\n this.isScrollLocked = false;\n this.removeAttribute('aria-modal');\n this.removeAttribute('open');\n if (this.body) this.body.deactivate();\n return true;\n }\n}\n\nexport { Modal };\n","import api from '../../api.js';\n\nconst unordereds = [\n '[tabindex=\"0\"]',\n 'a[href]',\n 'button:not([disabled])',\n 'input:not([disabled])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n 'audio[controls]',\n 'video[controls]',\n '[contenteditable]:not([contenteditable=\"false\"])',\n 'details>summary:first-of-type',\n 'details',\n 'iframe'\n];\n\nconst UNORDEREDS = unordereds.join();\n\nconst ordereds = [\n '[tabindex]:not([tabindex=\"-1\"]):not([tabindex=\"0\"])'\n];\n\nconst ORDEREDS = ordereds.join();\n\nconst IS_STUNNING = false;\n\nconst isFocusable = (element, container) => {\n if (!(element instanceof Element)) return false;\n const style = window.getComputedStyle(element);\n if (!style) return false;\n if (style.visibility === 'hidden') return false;\n if (container === undefined) container = element;\n\n while (container.contains(element)) {\n if (style.display === 'none') return false;\n element = element.parentElement;\n }\n\n return true;\n};\n\nclass FocusTrap {\n constructor (onTrap, onUntrap) {\n this.element = null;\n this.activeElement = null;\n this.onTrap = onTrap;\n this.onUntrap = onUntrap;\n this.waiting = this.wait.bind(this);\n this.handling = this.handle.bind(this);\n this.focusing = this.maintainFocus.bind(this);\n this.current = null;\n }\n\n get trapped () { return this.element !== null; }\n\n trap (element) {\n if (this.trapped) this.untrap();\n\n this.element = element;\n this.isTrapping = true;\n this.wait();\n\n if (this.onTrap) this.onTrap();\n }\n\n wait () {\n if (!isFocusable(this.element)) {\n window.requestAnimationFrame(this.waiting);\n return;\n }\n\n this.trapping();\n }\n\n trapping () {\n if (!this.isTrapping) return;\n this.isTrapping = false;\n const focusables = this.focusables;\n if (focusables.length) focusables[0].focus();\n this.element.setAttribute('aria-modal', true);\n window.addEventListener('keydown', this.handling);\n document.body.addEventListener('focus', this.focusing, true);\n\n if (IS_STUNNING) {\n this.stunneds = [];\n this.stun(document.body);\n }\n }\n\n stun (node) {\n for (const child of node.children) {\n if (child === this.element) continue;\n if (child.contains(this.element)) {\n this.stun(child);\n continue;\n }\n this.stunneds.push(new Stunned(child));\n }\n }\n\n maintainFocus (event) {\n if (!this.element.contains(event.target)) {\n const focusables = this.focusables;\n if (focusables.length === 0) return;\n const first = focusables[0];\n event.preventDefault();\n first.focus();\n }\n }\n\n handle (e) {\n if (e.keyCode !== 9) return;\n\n const focusables = this.focusables;\n if (focusables.length === 0) return;\n\n const first = focusables[0];\n const last = focusables[focusables.length - 1];\n\n const index = focusables.indexOf(document.activeElement);\n\n if (e.shiftKey) {\n if (!this.element.contains(document.activeElement) || index < 1) {\n e.preventDefault();\n last.focus();\n } else if (document.activeElement.tabIndex > 0 || focusables[index - 1].tabIndex > 0) {\n e.preventDefault();\n focusables[index - 1].focus();\n }\n } else {\n if (!this.element.contains(document.activeElement) || index === focusables.length - 1 || index === -1) {\n e.preventDefault();\n first.focus();\n } else if (document.activeElement.tabIndex > 0) {\n e.preventDefault();\n focusables[index + 1].focus();\n }\n }\n }\n\n get focusables () {\n let unordereds = api.internals.dom.querySelectorAllArray(this.element, UNORDEREDS);\n\n /**\n * filtrage des radiobutttons de même name (la navigations d'un groupe de radio se fait à la flèche et non pas au tab\n **/\n const radios = api.internals.dom.querySelectorAllArray(document.documentElement, 'input[type=\"radio\"]');\n\n if (radios.length) {\n const groups = {};\n\n for (const radio of radios) {\n const name = radio.getAttribute('name');\n if (groups[name] === undefined) groups[name] = new RadioButtonGroup(name);\n groups[name].push(radio);\n }\n\n unordereds = unordereds.filter((unordered) => {\n if (unordered.tagName.toLowerCase() !== 'input' || unordered.getAttribute('type').toLowerCase() !== 'radio') return true;\n const name = unordered.getAttribute('name');\n return groups[name].keep(unordered);\n });\n }\n\n const ordereds = api.internals.dom.querySelectorAllArray(this.element, ORDEREDS);\n\n ordereds.sort((a, b) => a.tabIndex - b.tabIndex);\n\n const noDuplicates = unordereds.filter((element) => ordereds.indexOf(element) === -1);\n const concateneds = ordereds.concat(noDuplicates);\n return concateneds.filter((element) => element.tabIndex !== '-1' && isFocusable(element, this.element));\n }\n\n untrap () {\n if (!this.trapped) return;\n this.isTrapping = false;\n\n this.element.removeAttribute('aria-modal');\n window.removeEventListener('keydown', this.handling);\n document.body.removeEventListener('focus', this.focusing, true);\n\n this.element = null;\n\n if (IS_STUNNING) {\n for (const stunned of this.stunneds) stunned.unstun();\n this.stunneds = [];\n }\n\n if (this.onUntrap) this.onUntrap();\n }\n\n dispose () {\n this.untrap();\n }\n}\n\nclass Stunned {\n constructor (element) {\n this.element = element;\n // this.hidden = element.getAttribute('aria-hidden');\n this.inert = element.getAttribute('inert');\n\n // this.element.setAttribute('aria-hidden', true);\n this.element.setAttribute('inert', '');\n }\n\n unstun () {\n /*\n if (this.hidden === null) this.element.removeAttribute('aria-hidden');\n else this.element.setAttribute('aria-hidden', this.hidden);\n */\n\n if (this.inert === null) this.element.removeAttribute('inert');\n else this.element.setAttribute('inert', this.inert);\n }\n}\n\nclass RadioButtonGroup {\n constructor (name) {\n this.name = name;\n this.buttons = [];\n }\n\n push (button) {\n this.buttons.push(button);\n if (button === document.activeElement || button.checked || this.selected === undefined) this.selected = button;\n }\n\n keep (button) {\n return this.selected === button;\n }\n}\n\nexport { FocusTrap };\n","import api from '../../api.js';\nimport { FocusTrap } from './focus-trap.js';\n\nclass ModalsGroup extends api.core.DisclosuresGroup {\n constructor () {\n super('Modal', false);\n this.focusTrap = new FocusTrap();\n }\n\n static get instanceClassName () {\n return 'ModalsGroup';\n }\n\n apply (value, initial) {\n super.apply(value, initial);\n if (this.current === null) this.focusTrap.untrap();\n else this.focusTrap.trap(this.current.node);\n }\n}\n\nexport { ModalsGroup };\n","import api from '../../api.js';\nimport { ModalSelector } from './modal-selector.js';\n\nconst OFFSET = 32; // 32px => 8v => 2rem\n\nclass ModalBody extends api.core.Instance {\n static get instanceClassName () {\n return 'ModalBody';\n }\n\n init () {\n this.listen('scroll', this.shade.bind(this));\n }\n\n activate () {\n this.isResizing = true;\n this.resize();\n }\n\n deactivate () {\n this.isResizing = false;\n }\n\n shade () {\n if (this.node.scrollHeight > this.node.clientHeight) {\n if (this.node.offsetHeight + this.node.scrollTop >= this.node.scrollHeight) {\n this.removeClass(ModalSelector.SCROLL_SHADOW);\n } else {\n this.addClass(ModalSelector.SCROLL_SHADOW);\n }\n } else {\n this.removeClass(ModalSelector.SCROLL_SHADOW);\n }\n }\n\n resize () {\n this.adjust();\n this.request(this.adjust.bind(this));\n }\n\n adjust () {\n const offset = OFFSET * (this.isBreakpoint(api.core.Breakpoints.MD) ? 2 : 1);\n if (this.isLegacy) this.style.maxHeight = `${window.innerHeight - offset}px`;\n else this.style.setProperty('--modal-max-height', `${window.innerHeight - offset}px`);\n this.shade();\n }\n}\n\nexport { ModalBody };\n","import api from './api.js';\n\nimport { Modal } from './script/modal/modal.js';\nimport { ModalButton } from './script/modal/modal-button.js';\nimport { ModalsGroup } from './script/modal/modals-group.js';\nimport { ModalBody } from './script/modal/modal-body.js';\nimport { ModalSelector } from './script/modal/modal-selector.js';\n\napi.modal = {\n Modal: Modal,\n ModalButton: ModalButton,\n ModalBody: ModalBody,\n ModalsGroup: ModalsGroup,\n ModalSelector: ModalSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.modal.ModalSelector.MODAL, api.modal.Modal);\napi.internals.register(api.modal.ModalSelector.BODY, api.modal.ModalBody);\napi.internals.register(api.core.RootSelector.ROOT, api.modal.ModalsGroup);\n\nexport default api;\n","import api from '../../api.js';\n\nexport const NavigationSelector = {\n NAVIGATION: api.internals.ns.selector('nav'),\n COLLAPSE: `${api.internals.ns.selector('nav__item')} > ${api.internals.ns.selector('collapse')}`,\n ITEM: api.internals.ns.selector('nav__item'),\n ITEM_RIGHT: api.internals.ns('nav__item--align-right'),\n MENU: api.internals.ns.selector('menu')\n};\n","import api from '../../api.js';\nimport { NavigationSelector } from './navigation-selector.js';\n\nclass NavigationItem extends api.core.Instance {\n constructor () {\n super();\n this._isRightAligned = false;\n }\n\n static get instanceClassName () {\n return 'NavigationItem';\n }\n\n init () {\n this.addAscent(api.core.DisclosureEmission.ADDED, this.calculate.bind(this));\n this.addAscent(api.core.DisclosureEmission.REMOVED, this.calculate.bind(this));\n this.isResizing = true;\n this.calculate();\n }\n\n resize () {\n this.calculate();\n }\n\n calculate () {\n const collapse = this.element.getDescendantInstances(api.core.Collapse.instanceClassName, null, true)[0];\n if (collapse && this.isBreakpoint(api.core.Breakpoints.LG) && collapse.element.node.matches(NavigationSelector.MENU)) {\n const right = this.element.node.parentElement.getBoundingClientRect().right;\n const width = collapse.element.node.getBoundingClientRect().width;\n const left = this.element.node.getBoundingClientRect().left;\n this.isRightAligned = left + width > right;\n } else this.isRightAligned = false;\n }\n\n get isRightAligned () {\n return this._isRightAligned;\n }\n\n set isRightAligned (value) {\n if (this._isRightAligned === value) return;\n this._isRightAligned = value;\n if (value) api.internals.dom.addClass(this.element.node, NavigationSelector.ITEM_RIGHT);\n else api.internals.dom.removeClass(this.element.node, NavigationSelector.ITEM_RIGHT);\n }\n}\n\nexport { NavigationItem };\n","export const NavigationMousePosition = {\n NONE: -1,\n INSIDE: 0,\n OUTSIDE: 1\n};\n","import api from '../../api.js';\nimport { NavigationSelector } from './navigation-selector.js';\nimport { NavigationMousePosition } from './navigation-mouse-position.js';\n\nclass Navigation extends api.core.CollapsesGroup {\n static get instanceClassName () {\n return 'Navigation';\n }\n\n init () {\n super.init();\n this.clicked = false;\n this.out = false;\n this.listen('focusout', this.focusOut.bind(this));\n this.listen('mousedown', this.down.bind(this));\n }\n\n validate (member) {\n return member.element.node.matches(NavigationSelector.COLLAPSE);\n }\n\n down (e) {\n if (!this.isBreakpoint(api.core.Breakpoints.LG) || this.index === -1 || !this.current) return;\n this.position = this.current.element.node.contains(e.target) ? NavigationMousePosition.INSIDE : NavigationMousePosition.OUTSIDE;\n this.request(this.getPosition.bind(this));\n }\n\n focusOut (e) {\n if (!this.isBreakpoint(api.core.Breakpoints.LG)) return;\n this.out = true;\n this.request(this.getPosition.bind(this));\n }\n\n getPosition () {\n if (this.out) {\n switch (this.position) {\n case NavigationMousePosition.OUTSIDE:\n this.index = -1;\n break;\n\n case NavigationMousePosition.INSIDE:\n if (this.current) this.current.focus();\n break;\n\n default:\n if (this.index > -1 && !this.current.hasFocus) this.index = -1;\n }\n }\n this.position = NavigationMousePosition.NONE;\n this.out = false;\n }\n\n get index () { return super.index; }\n\n set index (value) {\n if (value === -1 && this.current !== null && this.current.hasFocus) this.current.focus();\n super.index = value;\n }\n}\n\nexport { Navigation };\n","import api from './api.js';\nimport { NavigationItem } from './script/navigation/navigation-item.js';\nimport { Navigation } from './script/navigation/navigation.js';\nimport { NavigationSelector } from './script/navigation/navigation-selector.js';\nimport { NavigationMousePosition } from './script/navigation/navigation-mouse-position.js';\n\napi.navigation = {\n Navigation: Navigation,\n NavigationItem: NavigationItem,\n NavigationMousePosition: NavigationMousePosition,\n NavigationSelector: NavigationSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.navigation.NavigationSelector.NAVIGATION, api.navigation.Navigation);\napi.internals.register(api.navigation.NavigationSelector.ITEM, api.navigation.NavigationItem);\n\nexport default api;\n","import api from '../../api.js';\n\n/**\n * TabButton correspond au bouton cliquable qui change le panel\n * TabButton étend de DisclosureButton qui ajoute/enelve l'attribut aria-selected,\n * Et change l'attributte tabindex a 0 si le boutton est actif (value=true), -1 s'il n'est pas actif (value=false)\n */\nclass TabButton extends api.core.DisclosureButton {\n constructor () {\n super(api.core.DisclosureType.SELECT);\n }\n\n static get instanceClassName () {\n return 'TabButton';\n }\n\n apply (value) {\n super.apply(value);\n if (this.isPrimary) {\n this.setAttribute('tabindex', value ? '0' : '-1');\n if (value) {\n if (this.list) this.list.focalize(this);\n }\n }\n }\n\n get list () {\n return this.element.getAscendantInstance('TabsList', 'TabsGroup');\n }\n}\n\nexport { TabButton };\n","import api from '../../api.js';\n\nexport const TabSelector = {\n TAB: api.internals.ns.selector('tabs__tab'),\n GROUP: api.internals.ns.selector('tabs'),\n PANEL: api.internals.ns.selector('tabs__panel'),\n LIST: api.internals.ns.selector('tabs__list'),\n SHADOW: api.internals.ns.selector('tabs__shadow'),\n SHADOW_LEFT: api.internals.ns.selector('tabs__shadow--left'),\n SHADOW_RIGHT: api.internals.ns.selector('tabs__shadow--right'),\n PANEL_START: api.internals.ns.selector('tabs__panel--direction-start'),\n PANEL_END: api.internals.ns.selector('tabs__panel--direction-end')\n};\n","export const TabPanelDirection = {\n START: 'direction-start',\n END: 'direction-end',\n NONE: 'none'\n};\n","import api from '../../api.js';\nimport { TabButton } from './tab-button.js';\nimport { TabSelector } from './tab-selector.js';\nimport { TabPanelDirection } from './tab-panel-direction.js';\n\n/**\n * Tab coorespond au panel d'un élement Tabs (tab panel)\n * Tab étend disclosure qui ajoute/enleve le modifier --selected,\n * et ajoute/eleve l'attribut hidden, sur le panel\n */\nclass TabPanel extends api.core.Disclosure {\n constructor () {\n super(api.core.DisclosureType.SELECT, TabSelector.PANEL, TabButton, 'TabsGroup');\n this._direction = TabPanelDirection.NONE;\n this._isPreventingTransition = false;\n }\n\n static get instanceClassName () {\n return 'TabPanel';\n }\n\n get direction () {\n return this._direction;\n }\n\n set direction (value) {\n if (value === this._direction) return;\n switch (this._direction) {\n case TabPanelDirection.START:\n this.removeClass(TabSelector.PANEL_START);\n break;\n\n case TabPanelDirection.END:\n this.removeClass(TabSelector.PANEL_END);\n break;\n\n case TabPanelDirection.NONE:\n break;\n\n default:\n return;\n }\n\n this._direction = value;\n\n switch (this._direction) {\n case TabPanelDirection.START:\n this.addClass(TabSelector.PANEL_START);\n break;\n\n case TabPanelDirection.END:\n this.addClass(TabSelector.PANEL_END);\n break;\n }\n }\n\n get isPreventingTransition () {\n return this._isPreventingTransition;\n }\n\n set isPreventingTransition (value) {\n if (this._isPreventingTransition === value) return;\n if (value) this.addClass(api.internals.motion.TransitionSelector.NONE);\n else this.removeClass(api.internals.motion.TransitionSelector.NONE);\n this._isPreventingTransition = value === true;\n }\n\n translate (direction, initial) {\n this.isPreventingTransition = initial;\n this.direction = direction;\n }\n\n reset () {\n this.group.index = 0;\n }\n}\n\nexport { TabPanel };\n","import api from '../../api.js';\nimport { TabPanelDirection } from './tab-panel-direction.js';\n\n/**\n* TabGroup est la classe étendue de DiscosuresGroup\n* Correspond à un objet Tabs avec plusieurs tab-button & Tab (panel)\n*/\nclass TabsGroup extends api.core.DisclosuresGroup {\n constructor () {\n super('TabPanel');\n }\n\n static get instanceClassName () {\n return 'TabsGroup';\n }\n\n init () {\n super.init();\n this.listen('transitionend', this.transitionend.bind(this));\n this.listenKey(api.core.KeyCodes.RIGHT, this.pressRight.bind(this), true, true);\n this.listenKey(api.core.KeyCodes.LEFT, this.pressLeft.bind(this), true, true);\n this.listenKey(api.core.KeyCodes.HOME, this.pressHome.bind(this), true, true);\n this.listenKey(api.core.KeyCodes.END, this.pressEnd.bind(this), true, true);\n this.isRendering = true;\n\n if (this.list) this.list.apply();\n }\n\n get list () {\n return this.element.getDescendantInstances('TabsList', 'TabsGroup', true)[0];\n }\n\n transitionend (e) {\n this.isPreventingTransition = true;\n }\n\n get buttonHasFocus () {\n return this.members.some(member => member.buttonHasFocus);\n }\n\n /**\n * Selectionne l'element suivant de la liste si on est sur un bouton\n * Si on est à la fin on retourne au début\n */\n pressRight () {\n if (this.buttonHasFocus) {\n if (this.index < this.length - 1) {\n this.index++;\n } else {\n this.index = 0;\n }\n\n this.focus();\n }\n };\n\n /**\n * Selectionne l'element précédent de la liste si on est sur un bouton\n * Si on est au debut retourne a la fin\n */\n pressLeft () {\n if (this.buttonHasFocus) {\n if (this.index > 0) {\n this.index--;\n } else {\n this.index = this.length - 1;\n }\n\n this.focus();\n }\n };\n\n /**\n * Selectionne le permier element de la liste si on est sur un bouton\n */\n pressHome () {\n if (this.buttonHasFocus) {\n this.index = 0;\n this.focus();\n }\n };\n\n /**\n * Selectionne le dernier element de la liste si on est sur un bouton\n */\n pressEnd () {\n if (this.buttonHasFocus) {\n this.index = this.length - 1;\n this.focus();\n }\n };\n\n focus () {\n if (this.current) {\n this.current.focus();\n }\n }\n\n apply () {\n for (let i = 0; i < this._index; i++) this.members[i].translate(TabPanelDirection.START);\n this.current.translate(TabPanelDirection.NONE);\n for (let i = this._index + 1; i < this.length; i++) this.members[i].translate(TabPanelDirection.END);\n this.isPreventingTransition = false;\n }\n\n get isPreventingTransition () {\n return this._isPreventingTransition;\n }\n\n set isPreventingTransition (value) {\n if (this._isPreventingTransition === value) return;\n if (value) this.addClass(api.internals.motion.TransitionSelector.NONE);\n else this.removeClass(api.internals.motion.TransitionSelector.NONE);\n this._isPreventingTransition = value === true;\n }\n\n render () {\n if (this.current === null) return;\n const paneHeight = Math.round(this.current.node.offsetHeight);\n if (this.panelHeight === paneHeight) return;\n this.panelHeight = paneHeight;\n let listHeight = 0;\n if (this.list) listHeight = this.list.node.offsetHeight;\n this.style.setProperty('--tabs-height', (this.panelHeight + listHeight) + 'px');\n }\n}\n\nexport { TabsGroup };\n","import api from '../../api.js';\nimport { TabSelector } from './tab-selector';\n\nconst FOCALIZE_OFFSET = 16;\nconst SCROLL_OFFSET = 16; // valeur en px du scroll avant laquelle le shadow s'active ou se desactive\n\nclass TabsList extends api.core.Instance {\n static get instanceClassName () {\n return 'TabsList';\n }\n\n init () {\n this.listen('scroll', this.scroll.bind(this));\n this.isResizing = true;\n }\n\n get group () {\n return this.element.getAscendantInstance('TabsGroup', 'TabsList');\n }\n\n focalize (btn) {\n const btnRect = btn.getRect();\n const listRect = this.getRect();\n const actualScroll = this.node.scrollLeft;\n if (btnRect.left < listRect.left) this.node.scrollTo(actualScroll - listRect.left + btnRect.left - FOCALIZE_OFFSET, 0);\n else if (btnRect.right > listRect.right) this.node.scrollTo(actualScroll - listRect.right + btnRect.right + FOCALIZE_OFFSET, 0);\n }\n\n get isScrolling () {\n return this._isScrolling;\n }\n\n set isScrolling (value) {\n if (this._isScrolling === value) return;\n this._isScrolling = value;\n this.apply();\n }\n\n apply () {\n if (!this.group) return;\n if (this._isScrolling) {\n this.group.addClass(TabSelector.SHADOW);\n this.scroll();\n } else {\n this.group.removeClass(TabSelector.SHADOW_RIGHT);\n this.group.removeClass(TabSelector.SHADOW_LEFT);\n this.group.removeClass(TabSelector.SHADOW);\n }\n }\n\n /* ajoute la classe fr-table__shadow-left ou fr-table__shadow-right sur fr-table en fonction d'une valeur de scroll et du sens (right, left) */\n scroll () {\n if (!this.group) return;\n const scrollLeft = this.node.scrollLeft;\n const isMin = scrollLeft <= SCROLL_OFFSET;\n const max = this.node.scrollWidth - this.node.clientWidth - SCROLL_OFFSET;\n\n const isMax = Math.abs(scrollLeft) >= max;\n const isRtl = document.documentElement.getAttribute('dir') === 'rtl';\n const minSelector = isRtl ? TabSelector.SHADOW_RIGHT : TabSelector.SHADOW_LEFT;\n const maxSelector = isRtl ? TabSelector.SHADOW_LEFT : TabSelector.SHADOW_RIGHT;\n\n if (isMin) {\n this.group.removeClass(minSelector);\n } else {\n this.group.addClass(minSelector);\n }\n\n if (isMax) {\n this.group.removeClass(maxSelector);\n } else {\n this.group.addClass(maxSelector);\n }\n }\n\n resize () {\n this.isScrolling = this.node.scrollWidth > this.node.clientWidth + SCROLL_OFFSET;\n }\n\n dispose () {\n this.isScrolling = false;\n }\n}\n\nexport { TabsList };\n","import api from './api.js';\nimport { TabPanel } from './script/tab/tab-panel.js';\nimport { TabButton } from './script/tab/tab-button.js';\nimport { TabsGroup } from './script/tab/tabs-group.js';\nimport { TabsList } from './script/tab/tabs-list.js';\nimport { TabSelector } from './script/tab/tab-selector.js';\n\napi.tab = {\n TabPanel: TabPanel,\n TabButton: TabButton,\n TabsGroup: TabsGroup,\n TabsList: TabsList,\n TabSelector: TabSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.tab.TabSelector.PANEL, api.tab.TabPanel);\napi.internals.register(api.tab.TabSelector.GROUP, api.tab.TabsGroup);\napi.internals.register(api.tab.TabSelector.LIST, api.tab.TabsList);\n\nexport default api;\n","import api from '../../api.js';\n\nexport const TableEmission = {\n SCROLLABLE: api.internals.ns.emission('table', 'scrollable'),\n CHANGE: api.internals.ns.emission('table', 'change'),\n CAPTION_HEIGHT: api.internals.ns.emission('table', 'captionheight')\n};\n","import api from '../../api.js';\nimport { TableEmission } from './table-emission.js';\n\nconst PADDING = '1rem'; // padding de 4v sur le caption\n\nclass Table extends api.core.Instance {\n static get instanceClassName () {\n return 'Table';\n }\n\n init () {\n this.addAscent(TableEmission.CAPTION_HEIGHT, this.setCaptionHeight.bind(this));\n }\n\n setCaptionHeight (value) {\n this.setProperty('--table-offset', `calc(${value}px + ${PADDING})`);\n }\n}\n\nexport { Table };\n","import api from '../../api.js';\n\nexport const TableSelector = {\n TABLE: api.internals.ns.selector('table'),\n SHADOW: api.internals.ns.selector('table__shadow'),\n SHADOW_LEFT: api.internals.ns.selector('table__shadow--left'),\n SHADOW_RIGHT: api.internals.ns.selector('table__shadow--right'),\n ELEMENT: `${api.internals.ns.selector('table')}:not(${api.internals.ns.selector('table--no-scroll')}) table`,\n CAPTION: `${api.internals.ns.selector('table')} table caption`\n};\n","import api from '../../api.js';\nimport { TableSelector } from './table-selector.js';\n\nconst SCROLL_OFFSET = 8; // valeur en px du scroll avant laquelle le shadow s'active ou se desactive\n\nclass TableElement extends api.core.Instance {\n static get instanceClassName () {\n return 'TableElement';\n }\n\n init () {\n this.listen('scroll', this.scroll.bind(this));\n this.content = this.querySelector('tbody');\n this.isResizing = true;\n }\n\n get isScrolling () {\n return this._isScrolling;\n }\n\n set isScrolling (value) {\n if (this._isScrolling === value) return;\n this._isScrolling = value;\n\n if (value) {\n this.addClass(TableSelector.SHADOW);\n this.scroll();\n } else {\n this.removeClass(TableSelector.SHADOW);\n this.removeClass(TableSelector.SHADOW_LEFT);\n this.removeClass(TableSelector.SHADOW_RIGHT);\n }\n }\n\n /* ajoute la classe fr-table__shadow-left ou fr-table__shadow-right sur fr-table en fonction d'une valeur de scroll et du sens (right, left) */\n scroll () {\n const isMin = this.node.scrollLeft <= SCROLL_OFFSET;\n const max = this.content.offsetWidth - this.node.offsetWidth - SCROLL_OFFSET;\n const isMax = Math.abs(this.node.scrollLeft) >= max;\n const isRtl = document.documentElement.getAttribute('dir') === 'rtl';\n const minSelector = isRtl ? TableSelector.SHADOW_RIGHT : TableSelector.SHADOW_LEFT;\n const maxSelector = isRtl ? TableSelector.SHADOW_LEFT : TableSelector.SHADOW_RIGHT;\n\n if (isMin) {\n this.removeClass(minSelector);\n } else {\n this.addClass(minSelector);\n }\n\n if (isMax) {\n this.removeClass(maxSelector);\n } else {\n this.addClass(maxSelector);\n }\n }\n\n resize () {\n this.isScrolling = this.content.offsetWidth > this.node.offsetWidth;\n }\n\n dispose () {\n this.isScrolling = false;\n }\n}\n\nexport { TableElement };\n","import api from '../../api.js';\nimport { TableEmission } from './table-emission.js';\n\nclass TableCaption extends api.core.Instance {\n static get instanceClassName () {\n return 'TableCaption';\n }\n\n init () {\n this.height = 0;\n this.isResizing = true;\n }\n\n resize () {\n const height = this.getRect().height;\n if (this.height === height) return;\n this.height = height;\n this.ascend(TableEmission.CAPTION_HEIGHT, height);\n }\n}\n\nexport { TableCaption };\n","import api from './api.js';\nimport { Table } from './script/table/table.js';\nimport { TableElement } from './script/table/table-element.js';\nimport { TableSelector } from './script/table/table-selector.js';\nimport { TableCaption } from './script/table/table-caption.js';\n\napi.table = {\n Table: Table,\n TableElement: TableElement,\n TableCaption: TableCaption,\n TableSelector: TableSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.table.TableSelector.TABLE, api.table.Table);\napi.internals.register(api.table.TableSelector.ELEMENT, api.table.TableElement);\napi.internals.register(api.table.TableSelector.CAPTION, api.table.TableCaption);\n\nexport default api;\n","import api from '../../api.js';\n\nexport const TagSelector = {\n TAG_PRESSABLE: `${api.internals.ns.selector('tag')}[aria-pressed]`\n};\n","import api from './api.js';\nimport { TagSelector } from './script/tag/tag-selector';\n\napi.tag = {\n TagSelector: TagSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.tag.TagSelector.TAG_PRESSABLE, api.core.Toggle);\n\nexport default api;\n","import api from '../../api.js';\n\nexport const HeaderSelector = {\n HEADER: api.internals.ns.selector('header'),\n TOOLS_LINKS: api.internals.ns.selector('header__tools-links'),\n MENU_LINKS: api.internals.ns.selector('header__menu-links'),\n BUTTONS: `${api.internals.ns.selector('header__tools-links')} ${api.internals.ns.selector('btns-group')}, ${api.internals.ns.selector('header__tools-links')} ${api.internals.ns.selector('links-group')}`,\n MODALS: `${api.internals.ns.selector('header__search')}${api.internals.ns.selector('modal')}, ${api.internals.ns.selector('header__menu')}${api.internals.ns.selector('modal')}`\n};\n","import api from '../../api.js';\nimport { HeaderSelector } from './header-selector.js';\n\nclass HeaderLinks extends api.core.Instance {\n static get instanceClassName () {\n return 'HeaderLinks';\n }\n\n init () {\n const header = this.queryParentSelector(HeaderSelector.HEADER);\n this.toolsLinks = header.querySelector(HeaderSelector.TOOLS_LINKS);\n this.menuLinks = header.querySelector(HeaderSelector.MENU_LINKS);\n\n const toolsHtml = this.toolsLinks.innerHTML.replace(/ +/g, ' ');\n const menuHtml = this.menuLinks.innerHTML.replace(/ +/g, ' ');\n\n if (toolsHtml === menuHtml) return;\n\n switch (api.mode) {\n case api.Modes.ANGULAR:\n case api.Modes.REACT:\n case api.Modes.VUE:\n api.inspector.warn(`header__tools-links content is different from header__menu-links content.\nAs you're using a dynamic framework, you should handle duplication of this content yourself, please refer to documentation: \n${api.header.doc}`);\n break;\n\n default:\n this.menuLinks.innerHTML = this.toolsLinks.innerHTML;\n }\n }\n}\n\nexport { HeaderLinks };\n","import api from '../../api.js';\n\nclass HeaderModal extends api.core.Instance {\n static get instanceClassName () {\n return 'HeaderModal';\n }\n\n init () {\n this.isResizing = true;\n }\n\n resize () {\n if (this.isBreakpoint(api.core.Breakpoints.LG)) this.unqualify();\n else this.qualify();\n }\n\n qualify () {\n this.setAttribute('role', 'dialog');\n const modal = this.element.getInstance('Modal');\n if (!modal) return;\n const buttons = modal.buttons;\n let id = '';\n for (const button of buttons) {\n id = button.id || id;\n if (button.isPrimary && id) break;\n }\n this.setAttribute('aria-labelledby', id);\n }\n\n unqualify () {\n const modal = this.element.getInstance('Modal');\n if (modal) modal.conceal();\n this.removeAttribute('role');\n this.removeAttribute('aria-labelledby');\n }\n}\n\nexport { HeaderModal };\n","import api from './api.js';\nimport { HeaderLinks } from './script/header/header-links.js';\nimport { HeaderModal } from './script/header/header-modal.js';\nimport { HeaderSelector } from './script/header/header-selector.js';\n\napi.header = {\n HeaderLinks: HeaderLinks,\n HeaderModal: HeaderModal,\n HeaderSelector: HeaderSelector,\n doc: 'https://gouvfr.atlassian.net/wiki/spaces/DB/pages/222789846/En-t+te+-+Header'\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.header.HeaderSelector.BUTTONS, api.header.HeaderLinks);\napi.internals.register(api.header.HeaderSelector.MODALS, api.header.HeaderModal);\n\nexport default api;\n","import api from '../../api.js';\n\nexport const DisplaySelector = {\n DISPLAY: api.internals.ns.selector('display'),\n RADIO_BUTTONS: `input[name=\"${api.internals.ns('radios-theme')}\"]`,\n FIELDSET: api.internals.ns.selector('fieldset')\n};\n","import api from '../../api.js';\nimport { DisplaySelector } from './display-selector.js';\n\nclass Display extends api.core.Instance {\n static get instanceClassName () {\n return 'Display';\n }\n\n init () {\n this.radios = this.querySelectorAll(DisplaySelector.RADIO_BUTTONS);\n\n if (api.scheme) {\n this.changing = this.change.bind(this);\n for (const radio of this.radios) radio.addEventListener('change', this.changing);\n this.addDescent(api.scheme.SchemeEmission.SCHEME, this.apply.bind(this));\n this.ascend(api.scheme.SchemeEmission.ASK);\n } else {\n this.querySelector(DisplaySelector.FIELDSET).setAttribute('disabled', '');\n }\n }\n\n get scheme () {\n return this._scheme;\n }\n\n set scheme (value) {\n if (this._scheme === value || !api.scheme) return;\n switch (value) {\n case api.scheme.SchemeValue.SYSTEM:\n case api.scheme.SchemeValue.LIGHT:\n case api.scheme.SchemeValue.DARK:\n this._scheme = value;\n for (const radio of this.radios) {\n radio.checked = radio.value === value;\n }\n this.ascend(api.scheme.SchemeEmission.SCHEME, value);\n break;\n }\n }\n\n change () {\n for (const radio of this.radios) {\n if (radio.checked) {\n this.scheme = radio.value;\n return;\n }\n }\n }\n\n apply (value) {\n this.scheme = value;\n }\n\n dispose () {\n for (const radio of this.radios) radio.removeEventListener('change', this.changing);\n }\n}\n\nexport { Display };\n","import api from './api.js';\nimport { Display } from './script/display/display.js';\nimport { DisplaySelector } from './script/display/display-selector.js';\n\napi.display = {\n Display: Display,\n DisplaySelector: DisplaySelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.display.DisplaySelector.DISPLAY, api.display.Display);\n\nexport default api;\n"],"names":["api","window","AccordionSelector","GROUP","internals","ns","selector","COLLAPSE","AccordionsGroup","core","CollapsesGroup","instanceClassName","validate","member","node","matches","accordion","register","ButtonSelector","EQUISIZED_BUTTON","EQUISIZED_GROUP","button","Equisized","EquisizedsGroup","Breadcrumb","Instance","constructor","super","this","count","focusing","focus","bind","init","getCollapse","isResizing","proxy","scope","Object","assign","disclose","collapse","listen","DisclosureEvent","DISCLOSE","addAscent","DisclosureEmission","ADDED","resize","links","length","isBreakpoint","Breakpoints","MD","buttonHasFocus","indexOf","document","activeElement","querySelectorAll","element","getDescendantInstances","Collapse","_focus","link","request","verify","BreadcrumbSelector","BREADCRUMB","breadcrumb","ToggleInput","isChecked","hasAttribute","ToggleStatusLabel","getAttribute","update","isSwappingFont","input","getRegisteredInstances","style","removeProperty","checked","getComputedStyle","maxWidth","parseFloat","width","style2","setProperty","swapFont","families","ToggleSelector","STATUS_LABEL","attr","toggle","SidemenuSelector","LIST","SidemenuList","sidemenu","ModalSelector","MODAL","SCROLL_SHADOW","BODY","ModalButton","DisclosureButton","DisclosureType","OPENED","ModalAttribute","CONCEALING_BACKDROP","Modal","Disclosure","scrolling","resizing","click","listenKey","KeyCodes","ESCAPE","conceal","body","e","target","withhold","activate","isScrollLocked","setAttribute","preventFocus","removeAttribute","deactivate","UNORDEREDS","join","ORDEREDS","isFocusable","container","Element","visibility","undefined","contains","display","parentElement","FocusTrap","onTrap","onUntrap","waiting","wait","handling","handle","maintainFocus","current","trapped","trap","untrap","isTrapping","trapping","requestAnimationFrame","focusables","addEventListener","stun","child","children","stunneds","push","Stunned","event","first","preventDefault","keyCode","last","index","shiftKey","tabIndex","unordereds","dom","querySelectorAllArray","radios","documentElement","groups","radio","name","RadioButtonGroup","filter","unordered","tagName","toLowerCase","keep","ordereds","sort","a","b","noDuplicates","concat","removeEventListener","dispose","inert","unstun","buttons","selected","ModalsGroup","DisclosuresGroup","focusTrap","apply","value","initial","ModalBody","shade","scrollHeight","clientHeight","offsetHeight","scrollTop","removeClass","addClass","adjust","offset","isLegacy","maxHeight","innerHeight","modal","RootSelector","ROOT","NavigationSelector","NAVIGATION","ITEM","ITEM_RIGHT","MENU","NavigationItem","_isRightAligned","calculate","REMOVED","LG","right","getBoundingClientRect","left","isRightAligned","NavigationMousePosition","NONE","INSIDE","OUTSIDE","Navigation","clicked","out","focusOut","down","position","getPosition","hasFocus","navigation","TabButton","SELECT","isPrimary","list","focalize","getAscendantInstance","TabSelector","TAB","PANEL","SHADOW","SHADOW_LEFT","SHADOW_RIGHT","PANEL_START","PANEL_END","TabPanelDirection","TabPanel","_direction","_isPreventingTransition","direction","isPreventingTransition","motion","TransitionSelector","translate","reset","group","TabsGroup","transitionend","RIGHT","pressRight","LEFT","pressLeft","HOME","pressHome","END","pressEnd","isRendering","members","some","i","_index","render","paneHeight","Math","round","panelHeight","listHeight","TabsList","scroll","btn","btnRect","getRect","listRect","actualScroll","scrollLeft","scrollTo","isScrolling","_isScrolling","isMin","max","scrollWidth","clientWidth","isMax","abs","isRtl","minSelector","maxSelector","tab","TableEmission","SCROLLABLE","emission","CHANGE","CAPTION_HEIGHT","Table","setCaptionHeight","TableSelector","TABLE","ELEMENT","CAPTION","TableElement","content","querySelector","offsetWidth","TableCaption","height","ascend","table","TagSelector","TAG_PRESSABLE","tag","Toggle","HeaderSelector","HEADER","TOOLS_LINKS","MENU_LINKS","BUTTONS","MODALS","HeaderLinks","header","queryParentSelector","toolsLinks","menuLinks","innerHTML","replace","mode","Modes","ANGULAR","REACT","VUE","inspector","warn","doc","HeaderModal","unqualify","qualify","getInstance","id","DisplaySelector","DISPLAY","RADIO_BUTTONS","FIELDSET","Display","scheme","changing","change","addDescent","SchemeEmission","SCHEME","ASK","_scheme","SchemeValue","SYSTEM","LIGHT","DARK"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! DSFR v1.4.
|
|
1
|
+
/*! DSFR v1.4.1 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions) */
|
|
2
2
|
|
|
3
3
|
(function () {
|
|
4
4
|
'use strict';
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
prefix: 'fr',
|
|
8
8
|
namespace: 'dsfr',
|
|
9
9
|
organisation: '@gouvfr',
|
|
10
|
-
version: '1.4.
|
|
10
|
+
version: '1.4.1'
|
|
11
11
|
};
|
|
12
12
|
|
|
13
13
|
var api = window[config.namespace];
|