@villedemontreal/angular-ui 16.0.7 → 16.0.9

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.
@@ -1 +1 @@
1
- {"version":3,"file":"villedemontreal-angular-ui.mjs","sources":["../../../projects/angular-ui/src/lib/core/colors.ts","../../../projects/angular-ui/src/lib/icon/icons-dictionary.ts","../../../projects/angular-ui/src/lib/icon/bao-icon-registry.ts","../../../projects/angular-ui/src/lib/icon/icon.component.ts","../../../projects/angular-ui/src/lib/icon/module.ts","../../../projects/angular-ui/src/lib/button/button.component.ts","../../../projects/angular-ui/src/lib/button/button.component.html","../../../projects/angular-ui/src/lib/button/module.ts","../../../projects/angular-ui/src/lib/alert/alert.component.ts","../../../projects/angular-ui/src/lib/alert/alert.component.html","../../../projects/angular-ui/src/lib/alert/module.ts","../../../projects/angular-ui/src/lib/alert/index.ts","../../../projects/angular-ui/src/lib/breadcrumb/breadcrumb.component.ts","../../../projects/angular-ui/src/lib/breadcrumb/breadcrumb.component.html","../../../projects/angular-ui/src/lib/breadcrumb/module.ts","../../../projects/angular-ui/src/lib/breadcrumb/index.ts","../../../projects/angular-ui/src/lib/button/index.ts","../../../projects/angular-ui/src/lib/card/card.component.ts","../../../projects/angular-ui/src/lib/card/card.component.html","../../../projects/angular-ui/src/lib/card/module.ts","../../../projects/angular-ui/src/lib/card/index.ts","../../../projects/angular-ui/src/lib/common-components/error-text/errorText.component.ts","../../../projects/angular-ui/src/lib/common-components/guiding-text/guidingText.component.ts","../../../projects/angular-ui/src/lib/common-components/label-text/labelText.component.ts","../../../projects/angular-ui/src/lib/common-components/title-text/titleText.component.ts","../../../projects/angular-ui/src/lib/common-components/module.ts","../../../projects/angular-ui/src/lib/checkbox/checkbox-group.component.ts","../../../projects/angular-ui/src/lib/checkbox/checkbox-group.component.html","../../../projects/angular-ui/src/lib/checkbox/checkbox.component.ts","../../../projects/angular-ui/src/lib/checkbox/checkbox.component.html","../../../projects/angular-ui/src/lib/checkbox/module.ts","../../../projects/angular-ui/src/lib/checkbox/index.ts","../../../projects/angular-ui/src/lib/common-components/index.ts","../../../projects/angular-ui/src/lib/header-info/header-info.component.ts","../../../projects/angular-ui/src/lib/header-info/header-info.html","../../../projects/angular-ui/src/lib/header-info/header-info-title-group.html","../../../projects/angular-ui/src/lib/header-info/module.ts","../../../projects/angular-ui/src/lib/header-info/index.ts","../../../projects/angular-ui/src/lib/icon/index.ts","../../../projects/angular-ui/src/lib/list/list.component.ts","../../../projects/angular-ui/src/lib/list/list-item.component.html","../../../projects/angular-ui/src/lib/list/module.ts","../../../projects/angular-ui/src/lib/list/index.ts","../../../projects/angular-ui/src/lib/radio/radio-group.component.ts","../../../projects/angular-ui/src/lib/radio/radio-group.component.html","../../../projects/angular-ui/src/lib/radio/radio.component.ts","../../../projects/angular-ui/src/lib/radio/radio.component.html","../../../projects/angular-ui/src/lib/radio/module.ts","../../../projects/angular-ui/src/lib/radio/index.ts","../../../projects/angular-ui/src/lib/tag/tag.component.ts","../../../projects/angular-ui/src/lib/tag/tag.component.html","../../../projects/angular-ui/src/lib/tag/module.ts","../../../projects/angular-ui/src/lib/tag/index.ts","../../../projects/angular-ui/src/lib/summary/summary.component.ts","../../../projects/angular-ui/src/lib/summary/summary.component.html","../../../projects/angular-ui/src/lib/summary/list-summary.component.ts","../../../projects/angular-ui/src/lib/summary/module.ts","../../../projects/angular-ui/src/lib/summary/index.ts","../../../projects/angular-ui/src/lib/avatar/avatar.component.ts","../../../projects/angular-ui/src/lib/avatar/avatar.component.html","../../../projects/angular-ui/src/lib/avatar/module.ts","../../../projects/angular-ui/src/lib/avatar/index.ts","../../../projects/angular-ui/src/lib/tabs/tabs.component.ts","../../../projects/angular-ui/src/lib/tabs/tabs.component.html","../../../projects/angular-ui/src/lib/tabs/module.ts","../../../projects/angular-ui/src/lib/tabs/index.ts","../../../projects/angular-ui/src/lib/modal/modal-config.ts","../../../projects/angular-ui/src/lib/modal/modal-container.ts","../../../projects/angular-ui/src/lib/modal/modal-container.component.html","../../../projects/angular-ui/src/lib/modal/modal-ref.ts","../../../projects/angular-ui/src/lib/modal/modal.ts","../../../projects/angular-ui/src/lib/modal/modal-directives.ts","../../../projects/angular-ui/src/lib/modal/module.ts","../../../projects/angular-ui/src/lib/hyperlink/hyperlink.component.ts","../../../projects/angular-ui/src/lib/hyperlink/hyperlink.component.html","../../../projects/angular-ui/src/lib/hyperlink/module.ts","../../../projects/angular-ui/src/lib/hyperlink/index.ts","../../../projects/angular-ui/src/lib/dropdown-menu/dropdown-menu.component.ts","../../../projects/angular-ui/src/lib/dropdown-menu/dropdown-menu.component.html","../../../projects/angular-ui/src/lib/dropdown-menu/module.ts","../../../projects/angular-ui/src/lib/dropdown-menu/index.ts","../../../projects/angular-ui/src/lib/file/file-preview.component.ts","../../../projects/angular-ui/src/lib/file/file-preview.component.html","../../../projects/angular-ui/src/lib/file/file-intl.ts","../../../projects/angular-ui/src/lib/file/file-input.component.ts","../../../projects/angular-ui/src/lib/file/file-input.component.html","../../../projects/angular-ui/src/lib/file/module.ts","../../../projects/angular-ui/src/lib/snack-bar/snack-bar-config.ts","../../../projects/angular-ui/src/lib/snack-bar/snack-bar-ref.ts","../../../projects/angular-ui/src/lib/snack-bar/simple-snack-bar.component.ts","../../../projects/angular-ui/src/lib/snack-bar/simple-snack-bar.component.html","../../../projects/angular-ui/src/lib/snack-bar/snack-bar-animations.ts","../../../projects/angular-ui/src/lib/snack-bar/snack-bar-container.ts","../../../projects/angular-ui/src/lib/snack-bar/snack-bar-container.html","../../../projects/angular-ui/src/lib/snack-bar/snack-bar.ts","../../../projects/angular-ui/src/lib/snack-bar/module.ts","../../../projects/angular-ui/src/lib/core/breakpoints.ts","../../../projects/angular-ui/src/lib/core/index.ts","../../../projects/angular-ui/src/lib/system-header/system-header.component.ts","../../../projects/angular-ui/src/lib/system-header/system-header.component.html","../../../projects/angular-ui/src/lib/system-header/module.ts","../../../projects/angular-ui/src/lib/system-header/index.ts","../../../projects/angular-ui/src/lib/bao.module.ts","../../../projects/angular-ui/src/lib/badge/badge.component.ts","../../../projects/angular-ui/src/lib/badge/badge.component.html","../../../projects/angular-ui/src/lib/badge/module.ts","../../../projects/angular-ui/src/lib/badge/index.ts","../../../projects/angular-ui/src/lib/shared/index.ts","../../../projects/angular-ui/src/lib/modal/index.ts","../../../projects/angular-ui/src/lib/file/index.ts","../../../projects/angular-ui/src/lib/snack-bar/index.ts","../../../projects/angular-ui/src/public-api.ts","../../../projects/angular-ui/src/villedemontreal-angular-ui.ts"],"sourcesContent":["/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport const enum BaoColors {\n ACTION = 'action',\n PRIMARY = 'primary',\n PRIMARY_REVERSED = 'primary-reversed',\n SECONDARY = 'secondary',\n TERTIARY = 'tertiary',\n INFORMATIVE = 'informative',\n NEGATIVE = 'negative',\n POSITIVE = 'positive',\n WARNING = 'warning'\n}\n\nexport function baoColorToHex(baoColor: BaoColors): string {\n switch (baoColor) {\n case BaoColors.ACTION:\n return '#097D6C';\n case BaoColors.PRIMARY:\n return '#000000';\n case BaoColors.PRIMARY_REVERSED:\n return '#FFFFFF';\n case BaoColors.SECONDARY:\n return '#637381';\n case BaoColors.TERTIARY:\n return '#ADB5BD';\n case BaoColors.INFORMATIVE:\n return '#0079C4';\n case BaoColors.NEGATIVE:\n return '#D3310A';\n case BaoColors.POSITIVE:\n return '#0DA566';\n case BaoColors.WARNING:\n return '#FFB833';\n default:\n return '#097D6C';\n }\n}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport const ICONS_DCT: { [iconName: string]: string } = {\n 'icon-anchor':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M12 1a4 4 0 011 7.874v12.071A9.004 9.004 0 0020.946 13H19a1 1 0 110-2h3a1 1 0 011 1c0 6.075-4.925 11-11 11a1 1 0 01-1-1V8.874A4.002 4.002 0 0112 1zM5 11a1 1 0 110 2H3.055a9.003 9.003 0 005.372 7.263 1 1 0 01-.795 1.835A11.001 11.001 0 011 12a1 1 0 011-1h3zm7-8a2 2 0 100 4 2 2 0 000-4z'/>\",\n 'icon-apps':\n \"<path fill-rule='evenodd' d='M4 1h4a3 3 0 013 3v4a3 3 0 01-3 3H4a3 3 0 01-3-3V4a3 3 0 013-3zm0 2a1 1 0 00-1 1v4a1 1 0 001 1h4a1 1 0 001-1V4a1 1 0 00-1-1H4zm0 10h4a3 3 0 013 3v4a3 3 0 01-3 3H4a3 3 0 01-3-3v-4a3 3 0 013-3zm0 2a1 1 0 00-1 1v4a1 1 0 001 1h4a1 1 0 001-1v-4a1 1 0 00-1-1H4zM16 1h4a3 3 0 013 3v4a3 3 0 01-3 3h-4a3 3 0 01-3-3V4a3 3 0 013-3zm0 2a1 1 0 00-1 1v4a1 1 0 001 1h4a1 1 0 001-1V4a1 1 0 00-1-1h-4zm4 18a1 1 0 010 2h-4a3 3 0 01-3-3v-4a3 3 0 013-3h4a3 3 0 013 3v3a1 1 0 01-2 0v-3a1 1 0 00-1-1h-4a1 1 0 00-1 1v4a1 1 0 001 1h4z'/>\",\n 'icon-archive':\n \"<path fill-rule='evenodd' d='M2 9H1a1 1 0 01-1-1V3a1 1 0 011-1h22a1 1 0 011 1v5a1 1 0 01-1 1H4v11h16v-8a1 1 0 012 0v9a1 1 0 01-1 1H3a1 1 0 01-1-1V9zm0-5v3h20V4H2zm8 9a1 1 0 010-2h4a1 1 0 010 2h-4z'/>\",\n 'icon-arrow-left':\n \"<path fill-rule='evenodd' d='M3.073 11.624a1 1 0 00.22 1.083l6 6a1 1 0 001.414-1.414L6.414 13H20a1 1 0 000-2H4a1 1 0 00-.921.61zm7.634-4.917a1 1 0 10-1.414-1.414L6.258 8.328a1 1 0 101.414 1.414l3.035-3.035z'/>\",\n 'icon-arrow-right':\n \"<path fill-rule='evenodd' d='M20.927 11.624a1 1 0 01-.22 1.083l-6 6a1 1 0 01-1.414-1.414L17.586 13H4a1 1 0 010-2h16a1 1 0 01.921.61zm-7.634-4.917a1 1 0 111.414-1.414l3.035 3.035a1 1 0 11-1.414 1.414l-3.035-3.035z'/>\",\n 'icon-bell-active':\n \"<path fill-rule='evenodd' d='M12 1a1 1 0 01.993.883L13 2v1.07c3.392.486 6 3.404 6 6.93v4.172c0 1.545.614 3.028 1.707 4.12.63.63.184 1.708-.707 1.708h-5l-.005.176A3 3 0 019 20.001L4 20c-.89 0-1.337-1.077-.707-1.707A5.828 5.828 0 005 14.172V10a7.002 7.002 0 016-6.93V2a1 1 0 011-1zm1 19h-2a1 1 0 002 0zM12 5a5 5 0 00-5 5v4.172C7 15.524 6.65 16.84 6 18h12c-.65-1.16-1-2.476-1-3.828V10a5 5 0 00-5-5zM5.6 1.793a1 1 0 010 1.414 8.967 8.967 0 00-2.636 6.364 1 1 0 11-2 0c0-2.898 1.132-5.688 3.222-7.778a1 1 0 011.415 0zm14.143 0a10.967 10.967 0 013.221 7.778 1 1 0 01-2 0 8.967 8.967 0 00-2.636-6.364 1 1 0 111.415-1.414z'/>\",\n 'icon-bell-off':\n \"<path fill-rule='evenodd' d='M1.613.21l.094.083 22 22a1 1 0 01-1.32 1.497l-.094-.083L18.584 20H15V20a3 3 0 01-6 0v-.001L4 20c-.852 0-1.297-.986-.783-1.623l.076-.084A5.828 5.828 0 005 14.172c0-.029.001-.057.003-.085L5 14v-4c0-1.004.248-1.875.75-2.832L.294 1.708A1 1 0 011.613.21zM11 19.999V20a1 1 0 002 0v-.001h-2zM7.257 8.674c-.15.385-.23.747-.252 1.126L7 10v4l-.005.083.005.089c0 1.24-.294 2.449-.844 3.535L6 18l10.584-.001-9.327-9.325zM12 1a1 1 0 01.993.883L13 2l.001 1.071A7.002 7.002 0 0119 10v3a1 1 0 01-2 0v-3a5 5 0 00-7.172-4.505 1 1 0 11-.87-1.8A6.955 6.955 0 0111 3.07V2a1 1 0 011-1z'/>\",\n 'icon-bell':\n \"<path fill-rule='evenodd' d='M12 1a1 1 0 011 1l.001 1.071A7.002 7.002 0 0119 10v4.172c0 1.545.614 3.028 1.707 4.12.63.63.184 1.708-.707 1.708h-5a3 3 0 01-6 0H4c-.89 0-1.337-1.077-.707-1.707A5.828 5.828 0 005 14.172V10a7.002 7.002 0 016-6.93V2a1 1 0 011-1zm1 19h-2a1 1 0 002 0zM12 5a5 5 0 00-5 5v4.172C7 15.524 6.65 16.84 6 18h12c-.65-1.16-1-2.476-1-3.828V10a5 5 0 00-5-5z'/>\",\n 'icon-bolt':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M11 15v7c0 .99 1.283 1.378 1.832.555l8-12A1 1 0 0020 9h-7V2c0-.99-1.283-1.378-1.832-.555l-8 12A1 1 0 004 15h7zm0-9.697V10a1 1 0 001 1h6.131L13 18.697V14a1 1 0 00-1-1H5.868L11 5.303z'/>\",\n 'icon-book':\n \"<path fill-rule='evenodd' d='M11 7.5l-.4-.3A11 11 0 005 5.046v10.993a13 13 0 016 2.007V7.5zm2 0v10.546a13 13 0 016-2.007V5.046A11 11 0 0013.4 7.2l-.4.3zM3 7V4a1 1 0 011-1 13 13 0 017.8 2.6l.2.15.2-.15A13 13 0 0120 3a1 1 0 011 1v3h2a1 1 0 011 1v2a1 1 0 01-2 0V9h-1v8a1 1 0 01-1 1 11 11 0 00-4.583 1H22v-5a1 1 0 012 0v6a1 1 0 01-1 1H1a1 1 0 01-1-1V8a1 1 0 011-1h2zm0 2H2v10h6.583A11 11 0 004 18a1 1 0 01-1-1V9z'/>\",\n 'icon-briefcase':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M14 2h-4a3 3 0 00-3 3v1H4a3 3 0 00-3 3v2.977a1 1 0 000 .046V19a3 3 0 003 3h16a3 3 0 003-3v-3a1 1 0 10-2 0v3a1 1 0 01-1 1H4a1 1 0 01-1-1v-5.523l8.629 3.451a1 1 0 00.742 0l9.979-3.99a1.002 1.002 0 00.65-.961V9a3 3 0 00-3-3h-3V5a3 3 0 00-3-3zm7 9.323V9a1 1 0 00-1-1H4a1 1 0 00-1 1v2.323l9 3.6 9-3.6zM15 6H9V5a1 1 0 011-1h4a1 1 0 011 1v1z'/>\",\n 'icon-calendar':\n \"<path fill-rule='evenodd' d='M20 10H4v9a1 1 0 001 1h14a1 1 0 001-1v-2a1 1 0 012 0v2a3 3 0 01-3 3H5a3 3 0 01-3-3V5a3 3 0 013-3h2V1a1 1 0 112 0v1h6V1a1 1 0 012 0v1h2a3 3 0 013 3v8a1 1 0 01-2 0v-3zm0-2V5a1 1 0 00-1-1h-2v1a1 1 0 01-2 0V4H9v1a1 1 0 11-2 0V4H5a1 1 0 00-1 1v3h16z'/>\",\n 'icon-cell-phone':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M4 4C4 2.34315 5.34315 1 7 1H17C18.6569 1 20 2.34315 20 4V20C20 21.6569 18.6569 23 17 23H7C5.34315 23 4 21.6569 4 20V4ZM6 4C6 3.44772 6.44772 3 7 3H17C17.5523 3 18 3.44772 18 4V20C18 20.5523 17.5523 21 17 21H7C6.44771 21 6 20.5523 6 20V4ZM12 19C12.5523 19 13 18.5523 13 18C13 17.4477 12.5523 17 12 17C11.4477 17 11 17.4477 11 18C11 18.5523 11.4477 19 12 19Z' />\",\n 'icon-check-circle-full':\n \"<path fill-rule='evenodd' d='M12 23C5.925 23 1 18.075 1 12S5.925 1 12 1s11 4.925 11 11-4.925 11-11 11zm3.293-13.707L11 13.586l-1.293-1.293a1 1 0 10-1.414 1.414l2 2a1 1 0 001.414 0l5-5a1 1 0 10-1.414-1.414z'/>\",\n 'icon-check-circle':\n \"<path fill-rule='evenodd' d='M21.542 17.477a1 1 0 01-1.734-.997A8.953 8.953 0 0021 12a9 9 0 10-9 9 8.953 8.953 0 004.484-1.195 1 1 0 01.998 1.733A10.953 10.953 0 0112 23C5.925 23 1 18.075 1 12S5.925 1 12 1s11 4.925 11 11c0 1.948-.508 3.824-1.458 5.477zm-6.25-8.184a1 1 0 011.415 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L11 13.586l4.293-4.293z'/>\",\n 'icon-check':\n \"<path fill-rule='evenodd' d='M19.293 6.293a1 1 0 011.414 1.414l-7.947 7.948a1 1 0 01-1.415-1.415l7.948-7.947zm-9.586 11a1 1 0 11-1.414 1.414l-5-5a1 1 0 011.414-1.414l5 5z'/>\",\n 'icon-chevron-down':\n \"<path fill-rule='evenodd' d='M12 12.586l3.293-3.293a1 1 0 011.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L12 12.586z'/>\",\n 'icon-chevron-left':\n \"<path fill-rule='evenodd' d='M11.414 12l3.293-3.293a1 1 0 00-1.414-1.414l-4 4a1 1 0 000 1.414l4 4a1 1 0 001.414-1.414L11.414 12z'/>\",\n 'icon-chevron-right':\n \"<path fill-rule='evenodd' d='M12.586 12L9.293 8.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414-1.414L12.586 12z'/>\",\n 'icon-chevron-up':\n \"<path fill-rule='evenodd' d='M12 11.414l3.293 3.293a1 1 0 001.414-1.414l-4-4a1 1 0 00-1.414 0l-4 4a1 1 0 001.414 1.414L12 11.414z'/>\",\n 'icon-clipboard':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M9 1h6a2 2 0 012 2h1a3 3 0 013 3v10a1 1 0 11-2 0V6a1 1 0 00-1-1h-1a2 2 0 01-2 2H9a2 2 0 01-2-2H6a1 1 0 00-1 1v14a1 1 0 001 1h12a1 1 0 001-1 1 1 0 112 0 3 3 0 01-3 3H6a3 3 0 01-3-3V6a3 3 0 013-3h1a2 2 0 012-2zm0 3v1h6V3H9v1z'/>\",\n 'icon-clock':\n \"<path fill-rule='evenodd' d='M21.542 17.477a1 1 0 01-1.734-.997A8.953 8.953 0 0021 12a9 9 0 10-9 9 8.953 8.953 0 004.484-1.195 1 1 0 01.998 1.733A10.953 10.953 0 0112 23C5.925 23 1 18.075 1 12S5.925 1 12 1s11 4.925 11 11c0 1.948-.508 3.824-1.458 5.477zM13 6v5.586l2.707 2.707a1 1 0 01-1.414 1.414l-3-3A1 1 0 0111 12V6a1 1 0 012 0z'/>\",\n 'icon-comment':\n \"<path fill-rule='evenodd' d='M4 18.586V5a1 1 0 011-1h14a1 1 0 000-2H5a3 3 0 00-3 3v16c0 .89 1.077 1.337 1.707.707L7.414 18H19a3 3 0 003-3V6a1 1 0 00-2 0v9a1 1 0 01-1 1H7a1 1 0 00-.707.293L4 18.586z'/>\",\n 'icon-cone-fill':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M9.82 2a1 1 0 00-.98.804L8.2 6h7.6l-.64-3.196A1 1 0 0014.18 2H9.82zm6.78 8H7.4l-.8 4h10.8l-.8-4zm1.18 12H5a1 1 0 01-1-1v-2a1 1 0 011-1H19a1 1 0 011 1v2a1 1 0 01-1 1h-1.22z'/>\",\n 'icon-cone':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M10 2h2a1 1 0 01.117 1.993L12 4h-1.18l-.601 3h3.561l-.358-1.79a1 1 0 011.932-.505l.03.113L17.818 17H19a1 1 0 011 1v3a1 1 0 01-1 1H5a1 1 0 01-1-1v-3a1 1 0 011-1h1.18L9.02 2.804a1 1 0 01.862-.797L10 2h2-2zm8 17H6v1h12v-1zm-2.82-5H8.819l-.6 3h7.561l-.6-3zm-1-5H9.819l-.6 3h5.561l-.6-3z'/>\",\n 'icon-copy':\n \"<path fill-rule='evenodd' d='M11 8h9a3 3 0 013 3v9a3 3 0 01-3 3h-9a3 3 0 01-3-3v-9a3 3 0 013-3zm0 2a1 1 0 00-1 1v9a1 1 0 001 1h9a1 1 0 001-1v-9a1 1 0 00-1-1h-9zm-6 4a1 1 0 010 2H4a3 3 0 01-3-3V4a3 3 0 013-3h9a3 3 0 013 3v1a1 1 0 01-2 0V4a1 1 0 00-1-1H4a1 1 0 00-1 1v9a1 1 0 001 1h1z'/>\",\n 'icon-copyright':\n \"<path fill-rule='evenodd' d='M12 23c6.075 0 11-4.925 11-11S18.075 1 12 1 1 5.925 1 12s4.925 11 11 11zm0-2a9 9 0 110-18 9 9 0 010 18zm3.536-12.536a5 5 0 100 7.072 1 1 0 00-1.415-1.415 3 3 0 110-4.242 1 1 0 001.415-1.415z'/>\",\n 'icon-cut':\n \"<path fill-rule='evenodd' d='M11.586 12L9.032 9.446a4 4 0 111.414-1.414L13 10.586l7.293-7.293a1 1 0 011.414 1.414l-11.26 11.261a4 4 0 11-1.414-1.414L11.585 12zM8.449 7.378A2 2 0 105.55 4.622a2 2 0 002.9 2.756zm-.07 9.173a2 2 0 10-2.756 2.899 2 2 0 002.755-2.9zm6.385-1.363a1 1 0 011.412-1.416l5.53 5.52a1 1 0 01-1.412 1.416l-5.53-5.52z'/>\",\n 'icon-delivery':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M15 4H2v5a1 1 0 01-2 0V3a1 1 0 011-1h15a1 1 0 011 1v4h3a1 1 0 01.707.293l3 3A1 1 0 0124 11v5a1 1 0 01-1 1h-1.337a3.5 3.5 0 11-6.326 0H8.663a3.5 3.5 0 11-6.326 0H1a1 1 0 01-1-1v-3a1 1 0 112 0v2h13V4zm3.5 13a1.5 1.5 0 100 3 1.5 1.5 0 000-3zm0-2H22v-3.586L19.586 9H17v6h1.5zM4 18.5a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0z'/>\",\n 'icon-dot-bullet': \"<circle cx='12' cy='12' r='4' fill-rule='evenodd'/>\",\n 'icon-dot-interpunct': \"<circle cx='12' cy='12' r='2' fill-rule='evenodd'/>\",\n 'icon-download':\n \"<path fill-rule='evenodd' d='M12.376 15.927a1 1 0 01-1.083-.22l-5-5a1 1 0 011.414-1.414L11 12.586V3a1 1 0 012 0v12a1 1 0 01-.61.921zM20 15a1 1 0 012 0v4a3 3 0 01-3 3H5a3 3 0 01-3-3v-4a1 1 0 012 0v4a1 1 0 001 1h14a1 1 0 001-1v-4zm-3.707-5.707a1 1 0 011.414 1.414l-2 2a1 1 0 01-1.414-1.414l2-2z'/>\",\n 'icon-droplet':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M11.293 1.293a1 1 0 011.414 0l2 2a1 1 0 01-1.414 1.414L12 3.414 8.707 6.707C6.321 9.093 5 11.38 5 13a7 7 0 1014 0c0-1.465-.915-3.295-2.744-5.332a1 1 0 111.488-1.336C19.872 8.702 21 10.957 21 13a9 9 0 11-18 0c0-2.268 1.567-4.982 4.293-7.707l4-4zm2.828 8.171a1 1 0 011.415 0 5 5 0 010 7.071 1 1 0 11-1.415-1.414 3 3 0 000-4.242 1 1 0 010-1.415z'/>\",\n 'icon-duplicate':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M16 4a8 8 0 11-4 14.93A8 8 0 1112 5.07 7.949 7.949 0 0116 4zM8 6a6 6 0 102.251 11.563A7.975 7.975 0 018 12c0-2.162.857-4.123 2.25-5.563A5.959 5.959 0 008 6zm8 0c-.796 0-1.556.155-2.251.437A7.975 7.975 0 0116 12a7.974 7.974 0 01-2.25 5.563A6 6 0 1016 6z'/>\",\n 'icon-edit':\n \"<path fill-rule='evenodd' d='M15.707 4.707a1 1 0 00-1.414-1.414l-2 2-10 10A1 1 0 002 16v5a1 1 0 001 1h5a1 1 0 00.707-.293l10-10 3-3a1 1 0 000-1.414l-3-3a1 1 0 10-1.414 1.414L19.586 8 18 9.586 14.414 6l1.293-1.293zM13 7.414l-9 9V20h3.586l9-9L13 7.414z'/>\",\n 'icon-email':\n \"<path fill-rule='evenodd' d='M1 6.012v-.03A3.006 3.006 0 014 3h16a3.006 3.006 0 013 2.983V18c0 1.652-1.348 3-3 3h-2a1 1 0 010-2h2c.548 0 1-.452 1-1V7.92l-8.427 5.9a1 1 0 01-1.146 0L3 7.92V18c0 .548.452 1 1 1h10a1 1 0 010 2H4c-1.652 0-3-1.348-3-3V6.012zM20 5H4c-.388 0-.728.227-.893.554L12 11.779l8.893-6.225A1.006 1.006 0 0020 5z'/>\",\n 'icon-error':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M21.542 17.477a1 1 0 11-1.734-.997A8.953 8.953 0 0021 12a9 9 0 10-9 9 8.954 8.954 0 004.484-1.195 1 1 0 11.998 1.733A10.952 10.952 0 0112 23C5.925 23 1 18.075 1 12S5.925 1 12 1s11 4.925 11 11c0 1.948-.508 3.824-1.458 5.477zM11 7a1 1 0 112 0v6a1 1 0 11-2 0V7zm1 9a1 1 0 100 2 1 1 0 000-2z'/>\",\n 'icon-exclamation':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M10.074 1a1 1 0 00-.997 1.071l.857 12a1 1 0 00.997.929h2.138a1 1 0 00.997-.929l.857-12A1 1 0 0013.927 1h-3.852zM12 17a3 3 0 100 6 3 3 0 000-6z'/>\",\n 'icon-externallink':\n \"<path fill-rule='evenodd' d='M16.586 6H13a1 1 0 010-2h6a1 1 0 011 1v6a1 1 0 01-2 0V7.414l-6.293 6.293a1 1 0 01-1.414-1.414L16.586 6zM16 15a1 1 0 012 0v2a3 3 0 01-3 3H7a3 3 0 01-3-3V9a3 3 0 013-3h2a1 1 0 110 2H7a1 1 0 00-1 1v8a1 1 0 001 1h8a1 1 0 001-1v-2z'/>\",\n 'icon-eye-off':\n \"<path fill-rule='evenodd' d='M16.371 17.786l-2.321-2.322A4 4 0 018.536 9.95L5.987 7.401a17.45 17.45 0 00-3.844 4.602 18.513 18.513 0 002.462 3.313C6.776 17.632 9.255 19 11.984 19a9.07 9.07 0 004.387-1.214zm2.264-.565a1 1 0 01.022.022l5.05 5.05a1 1 0 01-1.414 1.414l-4.467-4.467A11.089 11.089 0 0112 21c-3.38 0-6.339-1.632-8.855-4.316a20.492 20.492 0 01-2.25-2.891 15.188 15.188 0 01-.79-1.346 1 1 0 01.014-.92 19.45 19.45 0 014.45-5.544L.292 1.707A1 1 0 111.707.293L6.755 5.34a1 1 0 01.022.022l3.806 3.806.007.007 4.234 4.234.007.007 3.804 3.804zm-8.607-5.779a1.999 1.999 0 002.53 2.53l-2.53-2.53zm11.398-.15a18.513 18.513 0 00-2.03-2.608C17.223 6.368 14.745 5 11.997 5a8.12 8.12 0 00-1.87.214 1 1 0 01-.456-1.948A10.116 10.116 0 0112 3c3.38 0 6.339 1.632 8.855 4.316a20.492 20.492 0 012.25 2.891c.385.596.649 1.065.79 1.346a1 1 0 01-.013.918 19.5 19.5 0 01-2.277 3.363 1 1 0 01-1.53-1.288 17.5 17.5 0 001.783-2.548c-.126-.217-.27-.454-.432-.705z'/>\",\n 'icon-eye':\n \"<path fill-rule='evenodd' d='M2.574 12.707c.575.89 1.254 1.781 2.03 2.61C6.777 17.631 9.255 19 12 19c2.745 0 5.224-1.368 7.395-3.684A18.513 18.513 0 0021.86 12a18.513 18.513 0 00-2.464-3.316C17.224 6.368 14.745 5 12 5 9.255 5 6.776 6.368 4.605 8.684A18.513 18.513 0 002.14 12c.126.218.27.455.433.707zM.106 11.553c.14-.281.404-.75.788-1.346a20.492 20.492 0 012.251-2.89C5.661 4.631 8.62 3 12 3c3.38 0 6.339 1.632 8.855 4.316a20.492 20.492 0 012.25 2.891c.385.596.649 1.065.79 1.346a1 1 0 010 .894c-.141.281-.405.75-.79 1.346a20.492 20.492 0 01-2.25 2.89C18.339 19.369 15.38 21 12 21c-3.38 0-6.339-1.632-8.855-4.316a20.492 20.492 0 01-2.25-2.891 15.188 15.188 0 01-.79-1.346 1 1 0 010-.894zM12 16a4 4 0 110-8 4 4 0 010 8zm0-2a2 2 0 100-4 2 2 0 000 4z'/>\",\n 'icon-file-edit':\n \"<path fill-rule='evenodd' d='M16 8.414l-7 7V18h2.586l7-7L16 8.414zM17.414 7L20 9.586 21.586 8 19 5.414 17.414 7zm-4.707 12.707A1 1 0 0112 20H8a1 1 0 01-1-1v-4a1 1 0 01.293-.707l11-11a1 1 0 011.414 0l4 4a1 1 0 010 1.414l-11 11zM16 0a1 1 0 010 2H6a1 1 0 00-1 1v18a1 1 0 001 1h12a1 1 0 001-1v-4a1 1 0 012 0v4a3 3 0 01-3 3H6a3 3 0 01-3-3V3a3 3 0 013-3h10z'/>\",\n 'icon-file-pdf':\n \"<path fill-rule='evenodd' d='M21 13h1a1 1 0 010 2h-1v2a1 1 0 01-2 0v-6a1 1 0 011-1h3a1 1 0 010 2h-2v1zm-6-8.586V7h2.586L15 4.414zm5.707 2.879C21.337 7.923 20.891 9 20 9h-6a1 1 0 01-1-1V3H6a1 1 0 00-1 1v16a1 1 0 001 1h12a1 1 0 001-1 1 1 0 012 0 3 3 0 01-3 3H6a3 3 0 01-3-3V4a3 3 0 013-3h8a1 1 0 01.707.293l6 6zM10 13a1 1 0 00-1-1v2a1 1 0 001-1zm-1 4c0 1.333-2 1.333-2 0v-6a1 1 0 011-1h1a3 3 0 010 6v1zm6-1a1 1 0 001-1v-2a1 1 0 00-1-1v4zm-1-6h1a3 3 0 013 3v2a3 3 0 01-3 3h-1a1 1 0 01-1-1v-6a1 1 0 011-1z'/>\",\n 'icon-file':\n \"<path fill-rule='evenodd' d='M15 4.414V7h2.586L15 4.414zm5.707 2.879C21.337 7.923 20.891 9 20 9h-6a1 1 0 01-1-1V3H6a1 1 0 00-1 1v16a1 1 0 001 1h12a1 1 0 001-1v-8a1 1 0 012 0v8a3 3 0 01-3 3H6a3 3 0 01-3-3V4a3 3 0 013-3h8a1 1 0 01.707.293l6 6z'/>\",\n 'icon-filters':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M5 10V3a1 1 0 00-2 0v7a1 1 0 102 0zm-1 3H1a1 1 0 100 2h2v6a1 1 0 102 0v-6h2a1 1 0 100-2H4zm9-1v9a1 1 0 11-2 0v-9a1 1 0 112 0zM9 9h6a1 1 0 100-2h-2V3a1 1 0 10-2 0v4H9a1 1 0 100 2zm12 8v4a1 1 0 11-2 0v-4h-2a1 1 0 110-2h6a1 1 0 110 2h-2zm0-5V3a1 1 0 10-2 0v9a1 1 0 102 0z'/>\",\n 'icon-flag':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M6.246 3.428A4.09 4.09 0 006 3.536v9.86C6.82 13.143 7.814 13 9 13c1.417 0 2.383.276 4.371 1.072 1.762.704 2.546.928 3.629.928.73 0 1.361-.063 1.902-.177a1 1 0 11.413 1.956c-.68.144-1.45.221-2.315.221-1.417 0-2.383-.276-4.371-1.072C10.867 15.224 10.083 15 9 15c-1.189 0-2.094.165-2.754.428a4.077 4.077 0 00-.246.108V22a1 1 0 11-2 0V3a1 1 0 01.293-.707c.22-.22.614-.483 1.21-.721C6.407 1.21 7.564 1 9 1c1.417 0 2.383.276 4.371 1.072C15.133 2.776 15.917 3 17 3c1.189 0 2.094-.165 2.754-.428.341-.137.508-.249.539-.28C20.923 1.663 22 2.11 22 3v9a1 1 0 11-2 0V4.604c-.82.253-1.814.396-3 .396-1.417 0-2.383-.276-4.371-1.072C10.867 3.224 10.083 3 9 3c-1.189 0-2.094.165-2.754.428z'/>\",\n 'icon-folder':\n \"<path fill-rule='evenodd' d='M8.465 4l1.703 2.555A1 1 0 0011 7h9a1 1 0 011 1v10a1 1 0 002 0V8a3 3 0 00-3-3h-8.465L9.832 2.445A1 1 0 009 2H4a3 3 0 00-3 3v14a3 3 0 003 3h16a1 1 0 000-2H4a1 1 0 01-1-1V5a1 1 0 011-1h4.465z'/>\",\n 'icon-heart':\n \"<path fill-rule='evenodd' d='M12 4.256l-.353-.353a6.501 6.501 0 00-9.194 9.194l8.84 8.84a1 1 0 001.414 0l5.78-5.78a1 1 0 00-1.414-1.414L12 19.816l-8.133-8.133a4.501 4.501 0 016.366-6.366l1.06 1.06a1 1 0 001.414 0l1.06-1.06a4.5 4.5 0 116.366 6.366 1 1 0 001.414 1.414A6.5 6.5 0 0016.95 1.998a6.5 6.5 0 00-4.597 1.905L12 4.256z'/>\",\n 'icon-help':\n \"<path fill-rule='evenodd' d='M21.542 17.477a1 1 0 01-1.734-.997A8.953 8.953 0 0021 12a9 9 0 10-9 9 8.953 8.953 0 004.484-1.195 1 1 0 01.998 1.733A10.953 10.953 0 0112 23C5.925 23 1 18.075 1 12S5.925 1 12 1s11 4.925 11 11c0 1.948-.508 3.824-1.458 5.477zm-11.498-8.14a1 1 0 01-1.887-.664 4 4 0 017.773 1.332c0 1.28-.758 2.29-1.945 3.082a7.575 7.575 0 01-1.739.867 1 1 0 01-.632-1.898 5.988 5.988 0 001.262-.633c.687-.459 1.054-.948 1.054-1.42a2 2 0 00-3.886-.666zm1.26 8.375a1 1 0 111.413-1.414 1 1 0 01-1.414 1.414z'/>\",\n 'icon-home':\n \"<path fill-rule='evenodd' d='M5 11v10h4v-6a1 1 0 011-1h4a1 1 0 011 1v6h4v-7a1 1 0 012 0v8a1 1 0 01-1 1h-6a1 1 0 01-1-1v-6h-2v6a1 1 0 01-1 1H4a1 1 0 01-1-1V11H2c-.945 0-1.363-1.19-.625-1.78l10-8a1 1 0 011.25 0l10 8c.738.59.32 1.78-.625 1.78H5zm14.15-2L12 3.28 4.85 9h14.3z'/>\",\n 'icon-image':\n \"<path fill-rule='evenodd' d='M20 12.586V5a1 1 0 00-1-1H5a1 1 0 00-1 1v14a1 1 0 001 1h14a1 1 0 001-1v-3.586l-4.046-4.045-7.295 6.384a1 1 0 01-1.318-1.506l8-7a1 1 0 011.366.046L20 12.586zM5 2h14a3 3 0 013 3v14a3 3 0 01-3 3H5a3 3 0 01-3-3V5a3 3 0 013-3zm3.5 9a2.5 2.5 0 110-5 2.5 2.5 0 010 5zm0-2a.5.5 0 100-1 .5.5 0 000 1z'/>\",\n 'icon-info':\n \"<path fill-rule='evenodd' d='M21.542 17.477a1 1 0 01-1.734-.997A8.953 8.953 0 0021 12a9 9 0 10-9 9 8.953 8.953 0 004.484-1.195 1 1 0 01.998 1.733A10.953 10.953 0 0112 23C5.925 23 1 18.075 1 12S5.925 1 12 1s11 4.925 11 11c0 1.948-.508 3.824-1.458 5.477zM12 6a1 1 0 110 2 1 1 0 010-2zm-1 6h-1a1 1 0 010-2h2a1 1 0 011 1v6a1 1 0 01-2 0v-5z'/>\",\n 'icon-key':\n \"<path fill-rule='evenodd' d='M15 10.414l-3.07 3.07a6.017 6.017 0 01.936 5.067 1 1 0 01-1.933-.513 4.012 4.012 0 00-1.054-3.885 4.018 4.018 0 00-5.634.05 4.017 4.017 0 00-.056 5.626A4.018 4.018 0 008.08 20.89a1 1 0 01.513 1.933 6.022 6.022 0 01-5.836-1.597 6.02 6.02 0 017.741-9.14l9.794-9.793a1 1 0 011.414 1.414L20.414 5l2.293 2.293a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0L15 10.414zM16.414 9L18 10.586 20.586 8 19 6.414 16.414 9z'/>\",\n 'icon-layers':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M19.764 7L12 10.882 4.236 7l8.211-4.106a1 1 0 10-.894-1.788l-10 5a1 1 0 000 1.788l10 5a1 1 0 00.894 0l10-5a1 1 0 000-1.788l-6-3a1 1 0 10-.894 1.788L19.763 7zM12 20.882l-9.553-4.776a1 1 0 10-.894 1.788l10 5a1 1 0 00.894 0l10-5a1 1 0 10-.894-1.788L12 20.882zm-10.894-9.33a1 1 0 011.341-.446L12 15.882l9.553-4.776a1 1 0 11.894 1.788l-10 5a1 1 0 01-.894 0l-10-5a1 1 0 01-.447-1.341z'/>\",\n 'icon-link':\n \"<path fill-rule='evenodd' d='M15 8a1 1 0 010-2h3a6 6 0 010 12h-3a1 1 0 010-2h3a4 4 0 100-8h-3zm-6 8a1 1 0 010 2H6A6 6 0 116 6h3a1 1 0 110 2H6a4 4 0 100 8h3zm-1-3a1 1 0 010-2h8a1 1 0 010 2H8z'/>\",\n 'icon-list':\n \"<path fill-rule='evenodd' d='M8 7a1 1 0 110-2h10a1 1 0 010 2H8zm0 6a1 1 0 010-2h13a1 1 0 010 2H8zm0 6a1 1 0 010-2h6a1 1 0 010 2H8zM3 7a1 1 0 110-2h1a1 1 0 110 2H3zm0 6a1 1 0 010-2h1a1 1 0 010 2H3zm0 6a1 1 0 010-2h1a1 1 0 010 2H3z'/>\",\n 'icon-location':\n \"<path fill-rule='evenodd' d='M12 1c4.883 0 9 4.215 9 9 0 2.099-.613 4.151-1.826 6.143a1 1 0 01-1.708-1.04C18.493 13.415 19 11.72 19 10c0-3.69-3.232-7-7-7s-7 3.31-7 7c0 3.636 2.283 7.213 6.958 10.728a99.323 99.323 0 003.03-2.638 1 1 0 111.356 1.47c-.797.736-2.03 1.803-3.701 3.206a1 1 0 01-1.227.046C5.846 18.808 3 14.539 3 10c0-4.785 4.117-9 9-9zm0 5a4 4 0 110 8 4 4 0 010-8zm0 2a2 2 0 100 4 2 2 0 000-4z'/>\",\n 'icon-lock':\n \"<path fill-rule='evenodd' d='M6 9V7a6 6 0 1112 0v2h1a1 1 0 011 1v12a1 1 0 01-1 1H5a1 1 0 01-1-1V10a1 1 0 011-1h1zm2 0h8V7a4 4 0 10-8 0v2zm-2 2v10h12V11H6zm6 6a1 1 0 110-2 1 1 0 010 2z'/>\",\n 'icon-loction':\n \"<path fill-rule='evenodd' d='M14.988 18.09a1 1 0 111.356 1.47c-.797.736-2.03 1.803-3.701 3.206a1 1 0 01-1.227.046C5.846 18.808 3 14.539 3 10c0-4.785 4.117-9 9-9s9 4.215 9 9c0 2.099-.613 4.151-1.826 6.143a1 1 0 01-1.708-1.04C18.493 13.415 19 11.72 19 10c0-3.69-3.232-7-7-7s-7 3.31-7 7c0 3.636 2.283 7.213 6.958 10.728a99.323 99.323 0 003.03-2.638zM12 14a4 4 0 110-8 4 4 0 010 8zm0-2a2 2 0 100-4 2 2 0 000 4z'/>\",\n 'icon-log-in':\n \"<path fill-rule='evenodd' d='M16.927 11.624a1 1 0 01-.22 1.083l-5 5a1 1 0 01-1.414-1.414L13.586 13H3a1 1 0 010-2h13a1 1 0 01.921.61l.006.014zm-6.634-3.917a1 1 0 011.414-1.414l2.035 2.035a1 1 0 11-1.414 1.414l-2.035-2.035zM13 3a1 1 0 010-2h6a3 3 0 013 3v16a3 3 0 01-3 3h-6a1 1 0 010-2h6a1 1 0 001-1V4a1 1 0 00-1-1h-6z'/>\",\n 'icon-log-out':\n \"<path fill-rule='evenodd' d='M21.927 11.624a1 1 0 01-.22 1.083l-5 5a1 1 0 01-1.414-1.414L18.586 13H8a1 1 0 010-2h13a1 1 0 01.921.61l.006.014zm-6.634-3.917a1 1 0 111.414-1.414l2.035 2.035a1 1 0 11-1.414 1.414l-2.035-2.035zM11 21a1 1 0 010 2H5a3 3 0 01-3-3V4a3 3 0 013-3h6a1 1 0 010 2H5a1 1 0 00-1 1v16a1 1 0 001 1h6z'/>\",\n 'icon-map':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M8.007 1c.166.001.321.042.458.115l7.504 3.751 6.535-3.734A1 1 0 0124 2v4a1 1 0 11-2 0V3.723L17 6.58v13.697l5-2.857V10a1 1 0 012 0v8a1 1 0 01-.504.868l-6.985 3.992A.994.994 0 0116 23h-.003a.989.989 0 01-.462-.115L8.03 19.134l-6.535 3.734A1 1 0 010 22V6a1 1 0 01.504-.868L7.489 1.14A.995.995 0 018.007 1zM7 3.723L2 6.58v13.697l5-2.857V3.723zm2 13.659l6 3V6.618l-6-3v13.764z'/>\",\n 'icon-menu':\n \"<path fill-rule='evenodd' d='M3 13a1 1 0 010-2h18a1 1 0 010 2H3zm.176-6C2.526 7 2 6.552 2 6s.527-1 1.176-1h17.648C21.474 5 22 5.448 22 6s-.527 1-1.176 1H3.176zM3 19a1 1 0 010-2h10a1 1 0 010 2H3zm14-2h4a1 1 0 010 2h-4a1 1 0 010-2z'/>\",\n 'icon-minus-circle-full':\n \"<path fill-rule='evenodd' d='M12 23C5.925 23 1 18.075 1 12S5.925 1 12 1s11 4.925 11 11-4.925 11-11 11zM8 11a1 1 0 000 2h8a1 1 0 000-2H8z'/>\",\n 'icon-minus-circle':\n \"<path fill-rule='evenodd' d='M8 11h8a1 1 0 010 2H8a1 1 0 010-2zm13.542 6.477a1 1 0 01-1.734-.997A8.953 8.953 0 0021 12a9 9 0 10-9 9 8.953 8.953 0 004.484-1.195 1 1 0 01.998 1.733A10.953 10.953 0 0112 23C5.925 23 1 18.075 1 12S5.925 1 12 1s11 4.925 11 11c0 1.948-.508 3.824-1.458 5.477z'/>\",\n 'icon-minus':\n \"<path fill-rule='evenodd' d='M5 13a1 1 0 010-2h14a1 1 0 010 2H5z'/>\",\n 'icon-money':\n \"<path fill-rule='evenodd' d='M11 17h-1a2 2 0 01-2-2 1 1 0 012 0h4a1 1 0 000-2h-4a3 3 0 010-6h1V6a1 1 0 012 0v1h1a2 2 0 012 2 1 1 0 01-2 0h-4a1 1 0 100 2h4a3 3 0 010 6h-1v1a1 1 0 01-2 0v-1zm10.542.477a1 1 0 01-1.734-.997A8.953 8.953 0 0021 12a9 9 0 10-9 9 8.953 8.953 0 004.484-1.195 1 1 0 01.998 1.733A10.953 10.953 0 0112 23C5.925 23 1 18.075 1 12S5.925 1 12 1s11 4.925 11 11c0 1.948-.508 3.824-1.458 5.477z'/>\",\n 'icon-more-horizontal':\n \"<path fill-rule='evenodd' d='M18 14a2 2 0 110-4 2 2 0 010 4zm-6 0a2 2 0 110-4 2 2 0 010 4zm-6 0a2 2 0 110-4 2 2 0 010 4z'/>\",\n 'icon-more-vertical':\n \"<path fill-rule='evenodd' d='M12 8a2 2 0 110-4 2 2 0 010 4zm0 6a2 2 0 110-4 2 2 0 010 4zm0 6a2 2 0 110-4 2 2 0 010 4z'/>\",\n 'icon-music':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M10 18V5.847l11.164-1.86a1 1 0 10-.328-1.973l-12 2A1 1 0 008 5v9.535A4 4 0 1010 18zm-2 0a2 2 0 10-4 0 2 2 0 004 0zM21 6a1 1 0 00-1 1v5.535A4 4 0 1022 16V7a1 1 0 00-1-1zm-3 8a2 2 0 110 4 2 2 0 010-4z'/>\",\n 'icon-package':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M20.5 5.404A3 3 0 0122 8v6a1 1 0 11-2 0V8.18l-7 4.374v8.024l6.504-3.716a1 1 0 11.992 1.736L13.5 22.596a3 3 0 01-2.996.002L3.5 18.596A3 3 0 012 16V7.999a3.002 3.002 0 011.504-2.597L10.5 1.404a2.998 2.998 0 012.996-.002L20.5 5.404zM11 20.578l-6.504-3.716A.998.998 0 014 15.999v-7.82l7 4.375v8.024zm1.5-17.442l6.162 3.521L16.4 8.071 9.935 4.03l1.561-.893c.313-.18.695-.18 1.004-.002zm-4.536 2.02l6.55 4.094L12 10.82 5.338 6.658l2.626-1.5z'/>\",\n 'icon-paperclip':\n \"<path fill-rule='evenodd' d='M20.733 10.343l-9.19 9.19a5.003 5.003 0 11-7.076-7.076l9.19-9.19a3.002 3.002 0 014.246 4.246l-9.2 9.19a1.001 1.001 0 11-1.416-1.416l8.49-8.48a1 1 0 00-1.414-1.415l-8.49 8.48a3.001 3.001 0 104.244 4.245l9.2-9.19a5.002 5.002 0 10-7.074-7.074l-9.19 9.19a7.003 7.003 0 009.904 9.904l9.19-9.19a1 1 0 00-1.414-1.414z'/>\",\n 'icon-partner-bell':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M16.892 13.073a3.393 3.393 0 00-.637-1.4c-.635-.838-1.663-1.368-3.055-1.368-2.164 0-3.495 1.47-3.889 3.019-.354-1.092-1.3-1.83-2.301-2.14.753-.55 1.147-1.335 1.147-2.231 0-.832-.346-1.59-.926-2.082C6.381 6.148 5.221 6 3.793 6H1v12.058h.794c.535-.001 1.074-.002 1.603 0 .706.004 1.395 0 2.037-.026 2.033-.082 3.425-1.105 3.87-2.642.153.683.448 1.24.832 1.663.783.862 1.918 1.199 3.061 1.199 1.408 0 2.425-.409 3.12-1.034l-.995-1.17c-.5.378-1.144.6-1.867.6-1.417-.004-2.042-.9-2.098-1.763h5.535v3.173h2.073V6.06h-2.073v7.013zM3.707 7.629H3.13v3.175h.68c.376 0 .642-.02.827-.058C5.74 10.52 5.94 9.696 5.94 9.17c0-.62-.297-1.117-.922-1.36-.317-.122-.756-.182-1.312-.182zm.933 8.722c.257 0 .575-.01.834-.057 1.182-.213 1.684-.998 1.684-1.93 0-.9-.545-1.579-1.492-1.827-.277-.072-.759-.12-1.185-.12H3.13v3.934H4.64zm8.544-4.476c-.957 0-1.606.632-1.789 1.51h3.55c-.166-.944-.803-1.51-1.761-1.51zM20.35 6.06h2.038v11.998H20.35V6.06z'/>\",\n 'icon-partner-hydroquebec':\n \"<path d='M12.989 16.286a6.842 6.842 0 111.292-1.29c.344.257 1.897 1.41 2.063 1.613a1140.2 1140.2 0 01-.256-2.383l5.73 4.288.014.125-4.235-1.863.348 3.224-4.957-3.713zm-1.625-1.284c-.789-.59-3.873-2.833-3.873-2.833h3.013c.173.135 1.521 1.14 2.178 1.63l-.001.002c.622-.82.99-1.847.99-2.96 0-2.694-2.162-4.877-4.828-4.877-2.667 0-4.83 2.183-4.83 4.877s2.163 4.877 4.83 4.877c.924 0 1.786-.262 2.52-.716h.001z'/>\",\n 'icon-phone':\n \"<path fill-rule='evenodd' d='M14.62 13.974a3.013 3.013 0 013.173-.677c.842.313 1.716.53 2.607.648a1 1 0 01-.26 1.983 13.938 13.938 0 01-3.047-.758 1.012 1.012 0 00-1.064.223l-1.277 1.275a1 1 0 01-1.2.162 17.074 17.074 0 01-6.41-6.396 1 1 0 01.163-1.203l1.273-1.27c.277-.28.366-.695.227-1.064-.367-.982-.622-2.001-.758-3.03-.07-.5-.503-.872-1.02-.867H4.01a1.013 1.013 0 00-1.007 1.082 18.846 18.846 0 002.936 8.27 18.6 18.6 0 005.733 5.72 18.91 18.91 0 008.225 2.924 1.008 1.008 0 001.102-1.011v-2.011a1 1 0 112 0v2.006a3.005 3.005 0 01-.976 2.23 3.023 3.023 0 01-2.324.776 20.916 20.916 0 01-9.106-3.23 20.58 20.58 0 01-6.336-6.322 20.85 20.85 0 01-3.245-9.156 3.005 3.005 0 01.776-2.299A3.014 3.014 0 014.009 1h3.007a3.012 3.012 0 013.013 2.596c.117.889.335 1.761.648 2.599.414 1.1.15 2.339-.682 3.178l-.723.72a15.074 15.074 0 004.619 4.61l.729-.728z'/>\",\n 'icon-plus-circle-full':\n \"<path fill-rule='evenodd' d='M11 11H8a1 1 0 000 2h3v3a1 1 0 002 0v-3h3a1 1 0 000-2h-3V8a1 1 0 00-2 0v3zm1 12C5.925 23 1 18.075 1 12S5.925 1 12 1s11 4.925 11 11-4.925 11-11 11z'/>\",\n 'icon-plus-circle':\n \"<path fill-rule='evenodd' d='M11 11V8a1 1 0 012 0v3h3a1 1 0 010 2h-3v3a1 1 0 01-2 0v-3H8a1 1 0 010-2h3zm10.542 6.477a1 1 0 01-1.734-.997A8.953 8.953 0 0021 12a9 9 0 10-9 9 8.953 8.953 0 004.484-1.195 1 1 0 01.998 1.733A10.953 10.953 0 0112 23C5.925 23 1 18.075 1 12S5.925 1 12 1s11 4.925 11 11c0 1.948-.508 3.824-1.458 5.477z'/>\",\n 'icon-plus':\n \"<path fill-rule='evenodd' d='M11 13H5a1 1 0 010-2h6V5a1 1 0 012 0v14a1 1 0 01-2 0v-6zm5 0a1 1 0 010-2h3a1 1 0 010 2h-3z'/>\",\n 'icon-position':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M11 21a1 1 0 102 0v-1.062A8.004 8.004 0 0019.938 13H21a1 1 0 100-2h-1.062A8.004 8.004 0 0013 4.062V3a1 1 0 10-2 0v1.062A8.004 8.004 0 004.062 11H3a1 1 0 100 2h1.062A8.004 8.004 0 0011 19.938V21zm0-5v1.917A6.005 6.005 0 016.083 13H8a1 1 0 100-2H6.083A6.005 6.005 0 0111 6.083V8a1 1 0 102 0V6.083A6.005 6.005 0 0117.917 11H16a1 1 0 100 2h1.917A6.005 6.005 0 0113 17.917V16a1 1 0 10-2 0zm1-3a1 1 0 100-2 1 1 0 000 2z'/>\",\n 'icon-print':\n \"<path fill-rule='evenodd' d='M19 19v1a1 1 0 01-2 0v-5H7v6h8a1 1 0 010 2H6a1 1 0 01-1-1v-3H4a3 3 0 01-3-3v-5a3 3 0 013-3h1V2a1 1 0 011-1h12a1 1 0 011 1v6h1a3 3 0 013 3v5a3 3 0 01-3 3h-1zm0-2h1a1 1 0 001-1v-5a1 1 0 00-1-1H4a1 1 0 00-1 1v5a1 1 0 001 1h1v-3a1 1 0 011-1h12a1 1 0 011 1v3zM7 8h10V3H7v5z'/>\",\n 'icon-refresh':\n \"<path fill-rule='evenodd' d='M22 7.688V4a1 1 0 012 0v6a1 1 0 01-1 1h-6a1 1 0 010-2h3.476l-2.823-2.653a8 8 0 00-13.2 2.987 1 1 0 11-1.886-.668 10 10 0 017.22-6.417 9.985 9.985 0 019.258 2.662L22 7.688zM2 16.312V20a1 1 0 01-2 0v-6a1 1 0 011-1h6a1 1 0 010 2H3.524l2.823 2.653a8 8 0 0013.2-2.987 1 1 0 011.886.668 10 10 0 01-7.22 6.417 9.985 9.985 0 01-9.258-2.662L2 16.312z'/>\",\n 'icon-road':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M11 4l-.25 4h2.5L13 4h3.22a1 1 0 01.97.757l3.5 14A1 1 0 0119.72 20H14l-.25-4h-3.5L10 20H4.28a1 1 0 01-.97-1.242l3.5-14A1 1 0 017.78 4H11zm2.375 6h-2.75l-.25 4h3.25l-.25-4z'/>\",\n 'icon-save':\n \"<path fill-rule='evenodd' d='M6 4H5a1 1 0 00-1 1v14a1 1 0 001 1h1v-7a1 1 0 011-1h10a1 1 0 011 1v7h1a1 1 0 001-1 1 1 0 012 0 3 3 0 01-3 3H5a3 3 0 01-3-3V5a3 3 0 013-3h11a1 1 0 01.707.293l5 5A1 1 0 0122 8v7a1 1 0 01-2 0V8.414L15.586 4H8v3h7a1 1 0 010 2H7a1 1 0 01-1-1V4zm2 16h8v-6H8v6z'/>\",\n 'icon-search':\n \"<path fill-rule='evenodd' d='M15.707 14.293l6 6a1 1 0 01-1.414 1.414l-5.34-5.34C13.575 17.42 11.833 18 10 18a8 8 0 117.67-5.718 1 1 0 11-1.918-.57A6 6 0 1010 16c1.663 0 3.209-.62 4.292-1.706a1 1 0 011.414-.002z'/>\",\n 'icon-send':\n \"<path fill-rule='evenodd' d='M21.649 1.063a1 1 0 011.288 1.288l-6.993 19.98a1 1 0 11-1.888-.661L19.61 5.806l-7.416 7.415 1.72 3.873a1 1 0 01-1.827.812l-1.844-4.148-8.648-3.844c-.828-.368-.78-1.559.076-1.858l19.979-6.993zm-10.87 10.744l7.415-7.416-13.483 4.72 6.068 2.696z'/>\",\n 'icon-settings':\n \"<path fill-rule='evenodd' d='M16 12a1 1 0 01-2 0 2 2 0 10-2 2 1 1 0 010 2 4 4 0 114-4zm4.83-3H21a3 3 0 010 6h-.086a.65.65 0 00-.595.394l-.004.01a.647.647 0 00.122.709l.06.06a3 3 0 11-4.244 4.244l-.052-.052a.654.654 0 00-.727-.126.649.649 0 00-.394.591V21a3 3 0 01-6 0v-.067c-.006-.266-.175-.502-.484-.618a.647.647 0 00-.709.122l-.06.06a3 3 0 11-4.244-4.244l.052-.052a.654.654 0 00.126-.727.649.649 0 00-.591-.394H3a3 3 0 010-6h.067c.266-.006.502-.175.618-.484a.647.647 0 00-.122-.709l-.06-.06a3 3 0 114.244-4.244l.052.052a.65.65 0 00.717.13 1 1 0 01.2-.064A.647.647 0 009 3.17V3a3 3 0 016 0v.086c.001.26.156.493.404.6a.647.647 0 00.709-.123l.06-.06a3 3 0 114.244 4.244l-.052.052a.65.65 0 00-.13.717 1 1 0 01.064.2.647.647 0 00.531.284zm.08 4H21a1 1 0 000-2h-.174a2.65 2.65 0 01-2.425-1.606 1 1 0 01-.073-.264 2.655 2.655 0 01.615-2.737l.06-.06a1 1 0 10-1.416-1.416l-.068.068a2.646 2.646 0 01-2.913.534A2.651 2.651 0 0113 3.09V3a1 1 0 00-2 0v.174a2.65 2.65 0 01-1.606 2.425 1 1 0 01-.264.073 2.655 2.655 0 01-2.737-.615l-.06-.06a1 1 0 10-1.416 1.416l.068.068c.757.774.967 1.932.554 2.864A2.657 2.657 0 013.09 11.08H3a1 1 0 000 2h.174a2.646 2.646 0 012.42 1.596 2.654 2.654 0 01-.537 2.931l-.06.06a1 1 0 101.416 1.416l.068-.068c.774-.757 1.932-.967 2.864-.554a2.657 2.657 0 011.735 2.449V21a1 1 0 002 0v-.174a2.646 2.646 0 011.596-2.42 2.654 2.654 0 012.931.537l.06.06a1 1 0 101.416-1.416l-.068-.068a2.65 2.65 0 01-.532-2.918A2.651 2.651 0 0120.91 13z'/>\",\n 'icon-share':\n \"<path fill-rule='evenodd' d='M9.85 10.912a4.003 4.003 0 010 2.175l5.311 3.095A4 4 0 0122 19a1 1 0 01-2 0 2 2 0 00-3.662-1.112 1.01 1.01 0 01-.123.208A2 2 0 0018 21a1 1 0 010 2 4 4 0 01-3.85-5.092l-5.308-3.094a4 4 0 110-5.63L14.15 6.09A4.003 4.003 0 0118 1a4 4 0 11-2.842 6.815L9.85 10.912zm-2.094.13a1.016 1.016 0 01-.056-.097A1.999 1.999 0 004 12a2 2 0 103.756-.959zM16.3 6.054A1.999 1.999 0 0020 5a2 2 0 10-3.7 1.055z'/>\",\n 'icon-shoppingbag':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M19 5H5l1.5-2h11L19 5zm2.6 1.8a.996.996 0 01-.61.2H4v13a1 1 0 001 1h14a1 1 0 001-1v-9a1 1 0 112 0v9a3 3 0 01-3 3H5a3 3 0 01-3-3V6a1 1 0 01.2-.6l3-4A1 1 0 016 1h12a1 1 0 01.8.4l3 4a1 1 0 01-.2 1.4zM12 13a3 3 0 003-3 1 1 0 112 0 5 5 0 01-10 0 1 1 0 112 0 3 3 0 003 3z'/>\",\n 'icon-social-facebook':\n \"<title> Icon/social-facebook </title> <path d='M23 12.067C23 5.955 18.075 1 12 1S1 5.955 1 12.067C1 17.591 5.023 22.17 10.281 23v-7.734H7.488v-3.199h2.793V9.63c0-2.774 1.642-4.306 4.155-4.306 1.204 0 2.462.216 2.462.216v2.724h-1.387c-1.366 0-1.792.853-1.792 1.728v2.076h3.05l-.487 3.2h-2.563V23C18.977 22.17 23 17.591 23 12.067' fill-rule='evenodd'/>\",\n 'icon-social-flickr':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M2 4a2 2 0 012-2h16a2 2 0 012 2v16a2 2 0 01-2 2H4a2 2 0 01-2-2V4zm9 8a3 3 0 11-6 0 3 3 0 016 0zm5 3a3 3 0 100-6 3 3 0 000 6z'/>\",\n 'icon-social-instagram':\n \"<path fill-rule='evenodd' d='M7.8 2h8.4C19.4 2 22 4.6 22 7.8v8.4a5.8 5.8 0 01-5.8 5.8H7.8C4.6 22 2 19.4 2 16.2V7.8A5.8 5.8 0 017.8 2zm-.2 2A3.6 3.6 0 004 7.6v8.8C4 18.39 5.61 20 7.6 20h8.8a3.6 3.6 0 003.6-3.6V7.6C20 5.61 18.39 4 16.4 4H7.6zm9.65 1.5a1.25 1.25 0 110 2.5 1.25 1.25 0 010-2.5zM12 7a5 5 0 110 10 5 5 0 010-10zm0 2a3 3 0 100 6 3 3 0 000-6z'/>\",\n 'icon-social-linkedin':\n \"<path fill-rule='evenodd' d='M4 2h16a2 2 0 012 2v16a2 2 0 01-2 2H4a2 2 0 01-2-2V4a2 2 0 012-2zm15.222 11.333c0-2-1.622-3.622-3.622-3.622-.944 0-2.044.578-2.578 1.445V9.922h-3.1v9.3h3.1v-5.478a1.55 1.55 0 011.545-1.555c.859 0 1.555.696 1.555 1.555v5.478h3.1v-5.889zM8.178 6.311A1.873 1.873 0 006.31 4.433c-1.037 0-1.878.841-1.878 1.878a1.873 1.873 0 003.745 0zm-.322 12.911v-9.3H4.778v9.3h3.078z'/>\",\n 'icon-social-twitter':\n \"<path fill-rule='evenodd' d='M19.965 8.508c0-.175-.004-.35-.012-.522A8.277 8.277 0 0022 5.894a8.292 8.292 0 01-2.356.636 4.064 4.064 0 001.804-2.234c-.793.462-1.671.799-2.606.98A4.13 4.13 0 0015.847 4c-2.266 0-4.104 1.809-4.104 4.039 0 .317.036.625.107.92a11.712 11.712 0 01-8.458-4.22 3.977 3.977 0 00-.556 2.03 4.02 4.02 0 001.826 3.363 4.122 4.122 0 01-1.858-.505l-.001.051c0 1.957 1.415 3.59 3.292 3.96a4.176 4.176 0 01-1.853.07c.522 1.604 2.037 2.772 3.833 2.805a8.317 8.317 0 01-5.096 1.729c-.331 0-.658-.019-.979-.056A11.751 11.751 0 008.29 20c7.547 0 11.675-6.155 11.675-11.492z'/>\",\n 'icon-social-youtube':\n \"<path fill-rule='evenodd' d='M22.547 7.19c.471 1.565.453 4.826.453 4.826s0 3.245-.453 4.81c-.254.856-.997 1.532-1.94 1.762C18.888 19 12 19 12 19s-6.868 0-8.608-.428c-.942-.23-1.685-.906-1.939-1.763C1 15.261 1 12 1 12s0-3.245.453-4.81c.254-.856 1.015-1.548 1.94-1.778C5.112 5 12 5 12 5s6.886 0 8.608.428c.942.23 1.685.906 1.939 1.763zM15 12l-5-3v6l5-3z'/>\",\n 'icon-star':\n \"<path fill-rule='evenodd' d='M15.754 7.346l6.39.935a1 1 0 01.554 1.705l-4.623 4.503 1.09 6.362a1 1 0 01-1.45 1.054L12 18.9l-5.715 3.005a1 1 0 01-1.45-1.054l1.09-6.362-4.623-4.503a1 1 0 01.553-1.705l6.39-.935 2.858-5.789a1 1 0 011.794 0l2.857 5.79zm-.809 1.903a1 1 0 01-.752-.546L12 4.259 9.807 8.703a1 1 0 01-.752.546l-4.907.718 3.55 3.457a1 1 0 01.288.885l-.838 4.883 4.387-2.307a1 1 0 01.93 0l4.387 2.307-.838-4.883a1 1 0 01.288-.885l3.55-3.457-4.907-.718z'/>\",\n 'icon-steps':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M15 7a1 1 0 00-1 1v8a1 1 0 001 1h8a1 1 0 001-1V8a1 1 0 00-1-1h-8zm1 2h6v6h-6V9zm-9 1a1 1 0 00-1 1v5a1 1 0 001 1h5a1 1 0 001-1v-5a1 1 0 00-1-1H7zm1 5v-3h3v3H8zm-8-2a1 1 0 011-1h3a1 1 0 011 1v3a1 1 0 01-1 1H1a1 1 0 01-1-1v-3zm2 1v1h1v-1H2z'/>\",\n 'icon-table':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M4 22a2 2 0 01-1.995-1.85L2 20V4a2 2 0 011.85-1.995L4 2h16a2 2 0 011.994 1.85L22 4v10a1 1 0 01-1.993.117L20 14V9H9v11h11v-2a1 1 0 011.993-.117L22 18v2a2 2 0 01-1.85 1.994L20 22H4zM7 9H4v11h3V9zm0-5H4v3h3V4zm13 0H9v3h11V4z'/>\",\n 'icon-tag':\n \"<path fill-rule='evenodd' d='M4 12.586l8.293 8.293a1 1 0 001.414 0l7.172-7.172a1 1 0 000-1.414 1 1 0 111.414-1.414 3 3 0 010 4.242l-7.172 7.172a3 3 0 01-4.242 0l-8.586-8.586A1 1 0 012 13V3a1 1 0 011-1h10a1 1 0 01.707.293l6 6a1 1 0 11-1.414 1.414L12.586 4H4v8.586zM8.5 11a2.5 2.5 0 110-5 2.5 2.5 0 010 5zm0-2a.5.5 0 100-1 .5.5 0 000 1z'/>\",\n 'icon-thumb-down-full':\n \"<path fill-rule='evenodd' d='M13.914 22.406A1 1 0 0113 23a4 4 0 01-4-4v-3H4.351a3 3 0 01-3-3.452l1.38-8.998A2.997 2.997 0 015.72 1H19.652a3.31 3.31 0 013.339 2.866L23 4v7l-.009.134A3.305 3.305 0 0119.67 14h-2.02l-3.736 8.406zM18 12h1.688A1.31 1.31 0 0021 10.923V4.077A1.315 1.315 0 0019.67 3H18v9z'/>\",\n 'icon-thumb-down':\n \"<path fill-rule='evenodd' d='M17 1h2.652a3.31 3.31 0 013.339 2.866L23 4v7l-.009.134A3.305 3.305 0 0119.67 14h-2.02l-3.736 8.406A1 1 0 0113 23a4 4 0 01-4-4v-3H4.351a3 3 0 01-3-3.452l1.38-8.998A2.997 2.997 0 015.72 1H13a1 1 0 010 2H5.709a1 1 0 00-1 .852l-1.38 8.998A1 1 0 004.34 14H10a1 1 0 011 1v4a2 2 0 001.392 1.906L16 12.788V2a1 1 0 011-1zm1 2v9h1.688A1.31 1.31 0 0021 10.923V4.077A1.315 1.315 0 0019.67 3H18z'/>\",\n 'icon-thumb-up-full':\n \"<path fill-rule='evenodd' d='M6.35 10l3.736-8.406A1 1 0 0111 1a4 4 0 014 4v3h4.649a3 3 0 013 3.452l-1.38 8.998A3 3 0 0118.275 23H4a3 3 0 01-3-3v-7a3 3 0 013-3h2.35zM4 12a1 1 0 00-1 1v7a1 1 0 001 1h2v-9H4z'/>\",\n 'icon-thumb-up':\n \"<path fill-rule='evenodd' d='M7.707 22.707A.997.997 0 017 23H4a3 3 0 01-3-3v-7a3 3 0 013-3h2.35l3.736-8.406A1 1 0 0111 1a4 4 0 014 4v3h4.649a3 3 0 013 3.452l-1.38 8.998A2.997 2.997 0 0118.28 23H11a1 1 0 010-2h7.291a1 1 0 001-.852l1.38-8.998A1 1 0 0019.66 10H14a1 1 0 01-1-1V5a2 2 0 00-1.392-1.906L8 11.212V22a.997.997 0 01-.293.707zM6 12H4a1 1 0 00-1 1v7a1 1 0 001 1h2v-9z'/>\",\n 'icon-ticket':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M13.293 1.293a1 1 0 011.414 0l2.495 2.495.005.005a.997.997 0 010 1.414c-.338.338-.36 1.055.086 1.5.445.445 1.162.424 1.5.086a.996.996 0 011.414 0l.005.005 2.495 2.495a1 1 0 010 1.414l-5 5-7 7a1 1 0 01-1.414 0l-2.5-2.5a1 1 0 01.03-1.443 1.122 1.122 0 00-1.616-1.557 1 1 0 01-1.414 0l-2.5-2.5a1 1 0 010-1.414l7-7 5-5zM17 13.586l-1.793-1.793a1 1 0 00-1.414 1.414L15.586 15 10 20.586l-1.2-1.2A3.123 3.123 0 004.614 15.2l-1.2-1.2L9 8.414l1.793 1.793a1 1 0 001.414-1.414L10.414 7 14 3.414l1.214 1.214c-.527 1.168-.223 2.606.665 3.493.888.888 2.325 1.192 3.493.665L20.586 10 17 13.586z'/>\",\n 'icon-trash':\n \"<path fill-rule='evenodd' d='M7 5V4a3 3 0 013-3h4a3 3 0 013 3v1h4a1 1 0 010 2H6v13a1 1 0 001 1h10a1 1 0 001-1V10a1 1 0 012 0v10a3 3 0 01-3 3H7a3 3 0 01-3-3V7H3a1 1 0 110-2h4zm2 0h6V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v1zm0 6a1 1 0 012 0v6a1 1 0 01-2 0v-6zm4 0a1 1 0 012 0v6a1 1 0 01-2 0v-6z'/>\",\n 'icon-unlock':\n \"<path fill-rule='evenodd' d='M6 9V7.001a6 6 0 015.397-5.976c1.586-.16 3.025.244 4.223 1.19a1 1 0 11-1.24 1.57c-.785-.62-1.705-.879-2.782-.77A4 4 0 008 7v2h11a1 1 0 011 1v12a1 1 0 01-1 1H5a1 1 0 01-1-1V10a1 1 0 011-1h1zm6 8a1 1 0 110-2 1 1 0 010 2zm-6-6v10h12V11H6z'/>\",\n 'icon-upload':\n \"<path fill-rule='evenodd' d='M12.39 2.079A1 1 0 0113 3v12a1 1 0 01-2 0V5.414L7.707 8.707a1 1 0 01-1.414-1.414l5-5a1 1 0 011.083-.22zM20 15a1 1 0 012 0v4a3 3 0 01-3 3H5a3 3 0 01-3-3v-4a1 1 0 012 0v4a1 1 0 001 1h14a1 1 0 001-1v-4zm-2.293-7.707a1 1 0 11-1.414 1.414l-2-2a1 1 0 111.414-1.414l2 2z'/>\",\n 'icon-user-circle':\n \"<path fill-rule='evenodd' d='M6 18.708V18a3 3 0 013-3h6a3 3 0 013 3v2.631c0 .145-.03.282-.086.406a.996.996 0 01-.432.501A10.953 10.953 0 0112 23C5.925 23 1 18.075 1 12S5.925 1 12 1s11 4.925 11 11c0 1.948-.508 3.824-1.458 5.477a1 1 0 01-1.734-.997A8.953 8.953 0 0021 12a9 9 0 10-15 6.708zm1.998 1.355c1.205.6 2.564.937 4.002.937 1.41 0 2.77-.324 4-.935V18a1 1 0 00-1-1H9a1 1 0 00-1 1v2c0 .021 0 .042-.002.063zM12 14a4 4 0 110-8 4 4 0 010 8zm0-2a2 2 0 100-4 2 2 0 000 4z'/>\",\n 'icon-user':\n \"<path fill-rule='evenodd' d='M21 21a1 1 0 01-2 0v-2a3 3 0 00-3-3H8a3 3 0 00-3 3v2a1 1 0 01-2 0v-2a5 5 0 015-5h8a5 5 0 015 5v2zM14.509 2.674a1 1 0 11-1.005 1.73A3 3 0 1015 7a1 1 0 012 0 5 5 0 11-2.491-4.326z'/>\",\n 'icon-users':\n \"<path fill-rule='evenodd' d='M18 21a1 1 0 01-2 0v-2a3 3 0 00-3-3H5a3 3 0 00-3 3v2a1 1 0 01-2 0v-2a5 5 0 015-5h8a5 5 0 015 5v2zm6 0a1 1 0 01-2 0v-2a3 3 0 00-2.25-2.902 1 1 0 11.5-1.936A5 5 0 0124 19v2zM15.752 4.099a1 1 0 11.496-1.938 5 5 0 010 9.688 1 1 0 01-.496-1.938 3 3 0 000-5.812zm-9.26-1.425A5 5 0 114 7a1 1 0 111.999 0 3 3 0 101.496-2.596 1 1 0 01-1.005-1.73z'/>\",\n 'icon-warning':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M12.857 4.373a1 1 0 00-1.714 0L2.675 18.485A1 1 0 003.532 20h16.936a1 1 0 00.857-1.515l-1.183-1.97a1 1 0 011.716-1.03l1.182 1.971c1.2 2-.24 4.544-2.572 4.544H3.532C1.201 22-.24 19.456.96 17.456L9.428 3.344c1.165-1.942 3.98-1.942 5.144 0l4.886 8.142a1 1 0 11-1.715 1.028l-4.885-8.141zM11 9a1 1 0 112 0v5a1 1 0 11-2 0V9zm1 7a1 1 0 100 2 1 1 0 000-2z'/>\",\n 'icon-website':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M20.176 17.845a1 1 0 001.366-.368A10.953 10.953 0 0023 12c0-6.075-4.925-11-11-11S1 5.925 1 12s4.925 11 11 11c1.95 0 3.828-.509 5.482-1.462a1 1 0 10-.998-1.733 8.93 8.93 0 01-2.21.905A16.301 16.301 0 0016.95 13h3.995a8.932 8.932 0 01-1.137 3.48 1 1 0 00.368 1.365zm.77-6.845h-3.999a16.331 16.331 0 00-2.673-7.71A9.008 9.008 0 0120.945 11zM9.725 3.29A9.008 9.008 0 003.055 11H7.05a16.3 16.3 0 012.676-7.71zM3.055 13a9.008 9.008 0 006.671 7.71A16.331 16.331 0 017.053 13H3.055zM12 20.45A14.3 14.3 0 019.058 13h5.887A14.288 14.288 0 0112 20.45zM9.055 11h5.887A14.3 14.3 0 0012 3.55 14.288 14.288 0 009.055 11z'/>\",\n 'icon-wheelchair':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M21 3.5a2.5 2.5 0 10-5 0 2.5 2.5 0 005 0zm-3 0a.5.5 0 111 0 .5.5 0 01-1 0zM8.707 7.707l2.42-2.42 1.303.868-6.086 6.087a6.166 6.166 0 00-.064.05A1 1 0 007.52 13.86a3.987 3.987 0 01.106-.081 3.995 3.995 0 015.201.393 4 4 0 11-6.794 2.304 1 1 0 10-1.983-.26A6 6 0 1015.198 14h2.622l-.806 4.836a1 1 0 101.972.328l1-6A1 1 0 0019 12h-4.586l1.568-1.568a3 3 0 00-.457-4.617l-.955-.637a.917.917 0 00-.033-.021l-2.982-1.99a1 1 0 00-1.262.126l-3 3a1 1 0 001.414 1.414zm5.42-.42l-3.726 3.726c.614.04 1.217.176 1.79.4.03-.042.064-.082.102-.12l2.275-2.275a1 1 0 00-.152-1.54l-.289-.191z'/>\",\n 'icon-x-circle-full':\n \"<path fill-rule='evenodd' d='M10.586 12l-2.829 2.828a1 1 0 001.415 1.415L12 13.414l2.828 2.829a1 1 0 001.415-1.415L13.414 12l2.829-2.828a1 1 0 10-1.415-1.415L12 10.586 9.172 7.757a1 1 0 00-1.415 1.415L10.586 12zM12 23C5.925 23 1 18.075 1 12S5.925 1 12 1s11 4.925 11 11-4.925 11-11 11z'/>\",\n 'icon-x-circle':\n \"<path fill-rule='evenodd' d='M10.586 12L7.757 9.172a1 1 0 011.415-1.415L12 10.586l2.828-2.829a1 1 0 011.415 1.415L13.414 12l2.829 2.828a1 1 0 01-1.415 1.415L12 13.414l-2.828 2.829a1 1 0 11-1.415-1.415L10.586 12zm10.956 5.477a1 1 0 01-1.734-.997A8.953 8.953 0 0021 12a9 9 0 10-9 9 8.953 8.953 0 004.484-1.195 1 1 0 01.998 1.733A10.953 10.953 0 0112 23C5.925 23 1 18.075 1 12S5.925 1 12 1s11 4.925 11 11c0 1.948-.508 3.824-1.458 5.477z'/>\",\n 'icon-x':\n \"<path fill-rule='evenodd' d='M12 13.414l-5.293 5.293a1 1 0 11-1.414-1.414L10.586 12 5.293 6.707a1 1 0 011.414-1.414l12 12a1 1 0 01-1.414 1.414L12 13.414zm5.293-8.121a1 1 0 011.414 1.414l-3 3a1 1 0 11-1.414-1.414l3-3z'/>\",\n 'icon-spinner':\n \"<path d='M24 12C24 14.3734 23.2962 16.6935 21.9776 18.6668C20.6591 20.6402 18.7849 22.1783 16.5922 23.0866C14.3995 23.9948 11.9867 24.2324 9.65892 23.7694C7.33114 23.3064 5.19295 22.1635 3.51472 20.4853C1.83649 18.8071 0.693599 16.6689 0.230577 14.3411C-0.232446 12.0133 0.00519403 9.60051 0.913446 7.4078C1.8217 5.21509 3.35977 3.34094 5.33316 2.02236C7.30655 0.703788 9.62662 -2.83022e-08 12 0L12 3C10.22 3 8.47991 3.52784 6.99987 4.51677C5.51983 5.50571 4.36627 6.91131 3.68508 8.55585C3.0039 10.2004 2.82567 12.01 3.17293 13.7558C3.5202 15.5016 4.37737 17.1053 5.63604 18.364C6.89471 19.6226 8.49836 20.4798 10.2442 20.8271C11.99 21.1743 13.7996 20.9961 15.4442 20.3149C17.0887 19.6337 18.4943 18.4802 19.4832 17.0001C20.4722 15.5201 21 13.78 21 12H24Z'/>\",\n 'icon-emergency':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M11.067 7.87a.957.957 0 011.914 0v4.786a.957.957 0 11-1.914 0V7.87zM12.024 15.527a.958.958 0 10.001 1.916.958.958 0 00-.001-1.916z M9.878 1.879a3 3 0 014.243 0l8 7.999a3 3 0 010 4.242l-7.999 8.001a3 3 0 01-4.242 0l-8.001-7.999a3 3 0 010-4.242l7.999-8.001zm2.829 1.414a1 1 0 00-1.415 0l-8 8a1 1 0 00.001 1.415l8 8a1 1 0 001.415 0l8-8.002a1 1 0 000-1.414l-8.001-8z'/>\",\n 'icon-error-octagon':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M34.9 27C35.3971 27 35.8 26.597 35.8 26.1C35.8 25.6029 35.3971 25.2 34.9 25.2C34.4029 25.2 34 25.6029 34 26.1C34 26.597 34.4029 27 34.9 27Z' /><path fill-rule='evenodd' clip-rule='evenodd' d='M13.493 13.4928C13.8835 13.1023 14.5167 13.1023 14.9072 13.4928L26.5072 25.0928C26.8977 25.4834 26.8977 26.1165 26.5072 26.5071C26.1167 26.8976 25.4835 26.8976 25.093 26.5071L13.493 14.9071C13.1024 14.5165 13.1024 13.8834 13.493 13.4928Z' /><path fill-rule='evenodd' clip-rule='evenodd' d='M26.5072 13.4928C26.8977 13.8834 26.8977 14.5165 26.5072 14.9071L14.8072 26.6071C14.4167 26.9976 13.7835 26.9976 13.393 26.6071C13.0025 26.2165 13.0025 25.5834 13.393 25.1928L25.093 13.4928C25.4835 13.1023 26.1167 13.1023 26.5072 13.4928Z' /><path fill-rule='evenodd' clip-rule='evenodd' d='M12.7929 3.59294C12.9805 3.40541 13.2348 3.30005 13.5 3.30005H26.5C26.7653 3.30005 27.0196 3.40541 27.2072 3.59294L36.4072 12.7929C36.5947 12.9805 36.7001 13.2348 36.7001 13.5V23.5C36.7001 24.0523 36.2523 24.5 35.7001 24.5C35.1478 24.5 34.7001 24.0523 34.7001 23.5V13.9143L26.0858 5.30005H13.9143L5.30005 13.9143V26.0858L13.9143 34.7001H26.0858L32.8929 27.8929C33.2835 27.5024 33.9166 27.5024 34.3072 27.8929C34.6977 28.2835 34.6977 28.9166 34.3072 29.3072L27.2072 36.4072C27.0196 36.5947 26.7653 36.7001 26.5 36.7001H13.5C13.2348 36.7001 12.9805 36.5947 12.7929 36.4072L3.59294 27.2072C3.40541 27.0196 3.30005 26.7653 3.30005 26.5V13.5C3.30005 13.2348 3.40541 12.9805 3.59294 12.7929L12.7929 3.59294Z'/>\"\n};\n\n/* 40x40 illlustrative icons - https://zeroheight.com/575tugn0n/v/0/p/39c76f-icones-illustratives/t/page-39c76f-32902091-13 */\nexport const ILLUSTRATIVE_ICONS = ['icon-error-octagon'];\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, SecurityContext } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { ICONS_DCT, ILLUSTRATIVE_ICONS } from './icons-dictionary';\n\nconst SVG_PREFIX = `<?xml version=\"1.0\" encoding=\"UTF-8\"?><!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\"><svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" role=\"img\">`;\nconst SVG_SUFFIX = `</svg>`;\n\n@Injectable({ providedIn: 'root' })\nexport class BaoIconDictionary {\n constructor(\n @Inject(DOCUMENT) private document: any,\n private domSanitizer: DomSanitizer\n ) {}\n\n public getNamedSvgIcon(iconName: string): SVGElement {\n const rawIconString = this.getRawIconStringFromIconName(iconName);\n const literal = this.domSanitizer.bypassSecurityTrustHtml(rawIconString);\n const svgString = this.domSanitizer.sanitize(SecurityContext.HTML, literal);\n return this.svgElementFromString(svgString || '');\n }\n\n private getRawIconStringFromIconName(iconName: string) {\n const iconSvgPath = ICONS_DCT[iconName] || '';\n const iconSvgPrefix = ILLUSTRATIVE_ICONS.includes(iconName)\n ? SVG_PREFIX.replace('0 0 24 24', '0 0 40 40')\n : SVG_PREFIX;\n return `${iconSvgPrefix}${iconSvgPath}${SVG_SUFFIX}`;\n }\n\n private svgElementFromString(svgString: string): SVGElement {\n const div = this.document.createElement('DIV');\n div.innerHTML = svgString;\n const svg = div.querySelector('svg') as SVGElement;\n return svg;\n }\n}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n Renderer2,\n ViewEncapsulation\n} from '@angular/core';\nimport { BaoColors, baoColorToHex } from '../core/colors';\nimport { BaoIconDictionary as BaoIconRegistry } from './bao-icon-registry';\n\nconst SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\nconst TITLE = 'title';\n\n/**\n * Component to display an icon. It can be used in the following ways:\n *\n * - Specify the svgIcon input to load an SVG icon from a preset list of icons.\n * Examples:\n * `<bao-icon svgIcon=\"heart\"></bao-icon>`\n */\n@Component({\n template: '<ng-content></ng-content>',\n selector: 'bao-icon',\n exportAs: 'baoIcon',\n styleUrls: ['./icon.component.scss'],\n host: {\n '[class.bao-icon]': 'true',\n '[class.notranslate]': 'true',\n '[class.bao-icon-medium]': 'size === \"medium\"',\n '[class.bao-icon-small]': 'size === \"small\"',\n '[class.bao-icon-x-small]': 'size === \"x-small\"',\n '[class.bao-icon-xx-small]': 'size === \"xx-small\"',\n '[attr.data-bao-icon-type]': '\"svg\"',\n '[style.color]': 'hexColor'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BaoIconComponent implements OnDestroy {\n /** The color of the icon, if not specified the icon's parent current text color will be used */\n @Input() public color: BaoColors;\n\n /**\n * The size of the icon\n */\n @Input() public size: 'medium' | 'small' | 'x-small' | 'xx-small' = 'x-small';\n\n private _svgIcon: string;\n private _title: string;\n private _titleId: string;\n\n // Keeps track of the elements and attributes that we've prefixed with the current path.\n private _elementsWithExternalReferences?: Map<\n Element,\n { name: string; value: string }[]\n >;\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private iconRegistry: BaoIconRegistry,\n private renderer: Renderer2\n ) {\n this._titleId = '';\n this._title = '';\n this._svgIcon = '';\n }\n\n /** Name of the icon in the SVG icon set. */\n @Input()\n get svgIcon(): string {\n return this._svgIcon;\n }\n\n /** Title that will be used as an aria-label for the icon */\n @Input()\n get title(): string {\n return this._title;\n }\n\n get hexColor(): string | void {\n if (this.color) {\n return baoColorToHex(this.color);\n }\n }\n\n get titleId(): string {\n return this._titleId;\n }\n\n set svgIcon(value: string) {\n if (value !== this._svgIcon) {\n if (value) {\n this.updateSvgIcon(value, this.title);\n } else if (this._svgIcon) {\n this.clearSvgElement();\n }\n this._svgIcon = value;\n this.renderer.addClass(\n this.elementRef.nativeElement,\n `bao-${this._svgIcon}`\n );\n }\n }\n\n set title(value: string) {\n if (value !== this._title) {\n this._title = value;\n this._titleId = this.generateUniqueTitleId();\n this.updateSvgIcon(this.svgIcon, value);\n }\n }\n\n public ngOnDestroy() {\n if (this._elementsWithExternalReferences) {\n this._elementsWithExternalReferences.clear();\n }\n }\n\n private setSvgElement(svg: SVGElement) {\n this.clearSvgElement();\n // Workaround for IE11 and Edge ignoring `style` tags inside dynamically-created SVGs.\n // See: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/10898469/\n // Do this before inserting the element into the DOM, in order to avoid a style recalculation.\n const styleTags = svg.querySelectorAll('style');\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < styleTags.length; i++) {\n styleTags[i].textContent += ' ';\n }\n this.elementRef.nativeElement.appendChild(svg);\n }\n\n private clearSvgElement() {\n const layoutElement: HTMLElement = this.elementRef.nativeElement;\n let childCount = layoutElement.childNodes.length;\n\n if (this._elementsWithExternalReferences) {\n this._elementsWithExternalReferences.clear();\n }\n\n // Remove existing non-element child nodes and SVGs, and add the new SVG element. Note that\n // we can't use innerHTML, because IE will throw if the element has a data binding.\n while (childCount--) {\n const child = layoutElement.childNodes[childCount];\n\n // 1 corresponds to Node.ELEMENT_NODE. We remove all non-element nodes in order to get rid\n // of any loose text nodes, as well as any SVG elements in order to remove any old icons.\n if (child.nodeType !== 1 || child.nodeName.toLowerCase() === 'svg') {\n layoutElement.removeChild(child);\n }\n }\n }\n\n // Sets a new SVG icon with a particular name.\n private updateSvgIcon(\n iconName: string | undefined,\n title: string | undefined\n ) {\n if (iconName) {\n let svg = this.iconRegistry.getNamedSvgIcon(iconName);\n if (title) {\n svg = this.addTitleToSVG(svg, title);\n this.removeTitleAttributeFromHost();\n }\n\n if (!title) {\n svg.setAttribute('aria-hidden', 'true');\n }\n\n this.setSvgElement(svg);\n }\n }\n\n private addTitleToSVG(svg: SVGElement, title: string) {\n const titleNode = this.renderer.createElement(TITLE, SVG_NAMESPACE);\n titleNode.id = this._titleId;\n const titleText = this.renderer.createText(title);\n this.renderer.appendChild(titleNode, titleText);\n this.renderer.appendChild(svg, titleNode);\n svg.setAttribute('aria-labelledby', this._titleId);\n return svg;\n }\n\n private removeTitleAttributeFromHost() {\n this.renderer.removeAttribute(this.elementRef.nativeElement, 'title');\n }\n\n private generateUniqueTitleId(): string {\n return this.title\n ? `${this.title\n .replace(/[^A-Z0-9]+/gi, '')\n .toLocaleLowerCase()}-${Math.floor(\n Math.random() * 10000000000000000\n )}`\n : '';\n }\n}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { BaoIconComponent } from './icon.component';\n\nconst ICON_DIRECTIVES = [BaoIconComponent];\n\n@NgModule({\n imports: [CommonModule],\n declarations: ICON_DIRECTIVES,\n exports: ICON_DIRECTIVES\n})\nexport class BaoIconModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n ViewEncapsulation\n} from '@angular/core';\n\nconst BAO_ICON_NODE_NAME = 'BAO-ICON';\nconst LOADING_SPINNER_CLASS = 'loading-spinner';\n\n@Component({\n /**\n * There are a few cases where you give a component an attribute, such as\n * when you want to augment a built-in element. For example, Material Design\n * uses this technique with <button mat-button>. However, you wouldn't\n * use this technique on a custom element.\n */\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'button[bao-button]',\n styleUrls: ['./button.component.scss'],\n templateUrl: './button.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'bao-button',\n '[class.bao-button-utility]': 'displayType === \"utility\"',\n '[class.bao-button-editorial]': 'displayType === \"editorial\"',\n '[class.bao-button-primary]': 'level === \"primary\"',\n '[class.bao-button-secondary]': 'level === \"secondary\"',\n '[class.bao-button-tertiary]': 'level === \"tertiary\"',\n '[class.bao-button-large]': 'size === \"large\"',\n '[class.bao-button-medium]': 'size === \"medium\"',\n '[class.bao-button-small]': 'size === \"small\"',\n '[class.bao-button-reversed]': 'reversed === true',\n '[class.bao-button-loading]': 'loading === true',\n '[class.bao-button-no-text]': 'noText === true',\n '[class.bao-button-full-width]': 'fullWidth === true'\n }\n})\nexport class BaoButtonComponent implements AfterContentInit {\n /**\n * The display type of the button\n */\n @Input() public displayType: 'utility' | 'editorial' = 'utility';\n /**\n * The hierarchy level of the button\n */\n @Input() public level: 'primary' | 'secondary' | 'tertiary' = 'primary';\n /**\n * The size of the button\n */\n @Input() public size: 'large' | 'medium' | 'small' = 'medium';\n /**\n * Flag to set the button in loading state\n */\n @Input() public loading = false;\n /**\n * Flag to set the button reversed color mode\n */\n @Input() public reversed = false;\n /**\n * The aria-label of the loading spinner if it displayed alone\n */\n @Input() public loadingSpinnerAriaLabel = 'chargement';\n /**\n * Allows the button to grow to the width of it's container\n */\n @Input() public fullWidth = false;\n\n /**\n * If there is no text, some margin/padding will be different, i.e. for the spinner\n */\n public noText = false;\n\n /**\n * If the icon is on the right of the label, the loading spinner will need to be on the right of the label\n */\n public rightIcon = false;\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private cdr: ChangeDetectorRef\n ) {}\n\n get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n public ngAfterContentInit() {\n const childNodes = Array.from(this.nativeElement.childNodes);\n const textIndex = childNodes.findIndex(c => c.nodeType === Node.TEXT_NODE);\n this.noText = textIndex === -1;\n const iconIdex = childNodes.findIndex(\n c =>\n c.nodeName === BAO_ICON_NODE_NAME &&\n !(c as HTMLElement).classList.contains(LOADING_SPINNER_CLASS)\n );\n this.rightIcon = iconIdex > textIndex;\n this.cdr.detectChanges();\n }\n}\n","<bao-icon\n *ngIf=\"loading && !rightIcon\"\n class=\"loading-spinner\"\n svgIcon=\"icon-spinner\"\n [title]=\"loadingSpinnerAriaLabel\"\n></bao-icon>\n<ng-content></ng-content>\n<bao-icon\n *ngIf=\"loading && rightIcon\"\n class=\"loading-spinner loading-spinner-right\"\n svgIcon=\"icon-spinner\"\n [title]=\"loadingSpinnerAriaLabel\"\n></bao-icon>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { BaoIconModule } from '../icon/module';\nimport { BaoButtonComponent } from './button.component';\n\nconst BUTTON_DIRECTIVES = [BaoButtonComponent];\n\n@NgModule({\n imports: [CommonModule, BaoIconModule],\n declarations: BUTTON_DIRECTIVES,\n exports: [...BUTTON_DIRECTIVES, BaoIconModule]\n})\nexport class BaoButtonModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport {\n Component,\n Directive,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n ViewEncapsulation\n} from '@angular/core';\n\n/**\n * Content of an alert, intended for use within `<bao-alert>`. This component is an optional\n * convenience for use with other convenience elements, such as `<bao-alert-title>`; any custom\n * content block element may be used in its place.\n *\n * BaoAlertContent provides no behaviors, instead serving as a purely visual treatment.\n */\n\n/**\n * Title of an alert, intended for use within `<bao-alert>`. This component is an optional\n * convenience for one variety of alert title; any custom title element may be used in its place.\n *\n * BaoAlertTitle provides no behaviors, instead serving as a purely visual treatment.\n */\n@Directive({\n selector: 'bao-alert-title',\n host: { class: 'bao-alert-title' }\n})\nexport class BaoAlertTitle {}\n\n/**\n * Content of an alert, intended for use within `<bao-alert>`. This component is an optional\n * convenience for use with other convenience elements, such as `<bao-alert-title>`; any custom\n * content block element may be used in its place.\n *\n * BaoAlertContent provides no behaviors, instead serving as a purely visual treatment.\n */\n@Directive({\n selector: 'bao-alert-content',\n host: { class: 'bao-alert-content' }\n})\nexport class BaoAlertContent {}\n\n/**\n * Bottom area of an alert that contains action buttons, intended for use within `<bao-alert>`.\n * This component is an optional convenience for use with other convenience elements, such as\n * `<bao-alert-content>`; any custom action block element may be used in its place.\n *\n * BaoAlertActions provides no behaviors, instead serving as a purely visual treatment.\n */\n@Directive({\n selector: 'bao-alert-actions',\n exportAs: 'baoAlertActions',\n host: {\n class: 'bao-alert-actions'\n }\n})\nexport class BaoAlertActions {}\n\n/**\n * Link inside an alert message, intended for use within `<bao-alert>`.\n * This component is an optional convenience for use with other convenience elements, such as\n * `<bao-alert-content>`; any custom action block element may be used in its place.\n *\n * BaoAlertLink provides no behaviors, instead serving as a purely visual treatment.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'bao-alert-link',\n host: {\n class: 'bao-alert-link'\n }\n})\nexport class BaoAlertLink {}\n\n/**\n * BAO alert component. Alerts should be used when the message concerns an\n * external subject or a part of the page\n *\n * See https://zeroheight.com/575tugn0n/p/03c51f-messages-dalerte/t/80b47c\n *\n * BaoAlertComponent provides no behaviors, instead serving as a purely visual treatment.\n */\n@Component({\n selector: 'bao-alert',\n templateUrl: './alert.component.html',\n styleUrls: ['./alert.component.scss'],\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'bao-alert bao-alert-with-icon bao-alert-dismissible fade show',\n '[class.bao-alert-success]': 'type === \"success\"',\n '[class.bao-alert-danger]': 'type === \"danger\"',\n '[class.bao-alert-warning]': 'type === \"warning\"',\n '[class.bao-alert-info]': 'type === \"info\"',\n '[class.bao-alert-emergency]': 'type === \"emergency\"',\n role: 'alert'\n }\n})\nexport class BaoAlertComponent implements OnChanges {\n /**\n * Alert type\n */\n @Input() public type:\n | 'success'\n | 'danger'\n | 'warning'\n | 'emergency'\n | 'info' = 'info';\n @Input() public dismissible = false;\n @Input() public alertTypeTitle?: string;\n @Input() public dismissibleButtonAriaLabel?: string = 'Cacher le message';\n\n @Output() public dismiss = new EventEmitter();\n public iconType: string;\n public iconTitle: string;\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes['type']) {\n this.iconType = this.alertTypeIcon(changes['type'].currentValue);\n this.iconTitle =\n this.alertTypeTitle ||\n this.alertTitleIcon(changes['type'].currentValue);\n }\n }\n\n public alertTypeIcon(value: string): any {\n const typesAlertIcon = {\n success: 'icon-check-circle',\n danger: 'icon-error',\n warning: 'icon-warning',\n emergency: 'icon-emergency',\n default: 'icon-info'\n };\n return (typesAlertIcon as any)[value] || typesAlertIcon.default;\n }\n public alertTitleIcon(value: string): any {\n const titleIcon = {\n success: 'Succès',\n danger: 'Erreur',\n warning: 'Attention',\n emergency: 'Urgence',\n default: 'Information'\n };\n return (titleIcon as any)[value] || titleIcon.default;\n }\n\n public onDismissClicked() {\n this.dismiss.emit();\n }\n}\n","<bao-icon [svgIcon]=\"iconType\" [title]=\"iconTitle\"></bao-icon>\n<div class=\"bao-alert-content-container\">\n <ng-content></ng-content>\n</div>\n<button\n bao-button\n *ngIf=\"dismissible\"\n type=\"utility\"\n level=\"tertiary\"\n data-dismiss=\"alert\"\n role=\"button\"\n [attr.aria-label]=\"dismissibleButtonAriaLabel\"\n (click)=\"onDismissClicked()\"\n>\n <bao-icon svgIcon=\"icon-x\"></bao-icon>\n</button>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { CommonModule } from '@angular/common';\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { BaoButtonModule } from '../button/module';\nimport { BaoIconModule } from '../icon/module';\nimport {\n BaoAlertActions,\n BaoAlertComponent,\n BaoAlertContent,\n BaoAlertLink,\n BaoAlertTitle\n} from './alert.component';\n\nconst ALERT_DIRECTIVES = [\n BaoAlertTitle,\n BaoAlertContent,\n BaoAlertActions,\n BaoAlertLink,\n BaoAlertComponent\n];\n\n@NgModule({\n imports: [CommonModule, BaoIconModule, BaoButtonModule],\n declarations: ALERT_DIRECTIVES,\n exports: [...ALERT_DIRECTIVES, BaoIconModule, BaoButtonModule],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class BaoAlertModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './module';\nexport * from './alert.component';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n Renderer2,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\n\nconst LAST_NODE_ATTRIBUTE = { 'aria-current': 'page' };\n\n@Component({\n selector: 'bao-breadcrumb',\n templateUrl: './breadcrumb.component.html',\n styleUrls: ['./breadcrumb.component.scss'],\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'bao-breadcrumb'\n }\n})\nexport class BaoBreadcrumbComponent implements AfterViewInit {\n @ViewChild('container', { static: false })\n private staticContainer: ElementRef;\n\n constructor(private renderer: Renderer2) {}\n\n public ngAfterViewInit() {\n this.setLastLinkAttribute();\n }\n\n public onContentChange() {\n this.setLastLinkAttribute();\n }\n\n private setLastLinkAttribute() {\n const children = Array.from(this.staticContainer.nativeElement.children);\n this.renderer.setAttribute(\n children[children.length - 1],\n Object.keys(LAST_NODE_ATTRIBUTE)[0],\n Object.values(LAST_NODE_ATTRIBUTE)[0]\n );\n }\n}\n","<nav\n #container\n class=\"bao-breadcrumb-nav\"\n aria-label=\"Breadcrumb\"\n (cdkObserveContent)=\"onContentChange()\"\n>\n <ng-content></ng-content>\n</nav>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { ObserversModule } from '@angular/cdk/observers';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { BaoBreadcrumbComponent } from './breadcrumb.component';\n\nconst BREADCRUMB_DIRECTIVES = [BaoBreadcrumbComponent];\n\n@NgModule({\n imports: [CommonModule, ObserversModule],\n declarations: [BREADCRUMB_DIRECTIVES],\n exports: [BREADCRUMB_DIRECTIVES]\n})\nexport class BaoBreadcrumbModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './module';\nexport * from './breadcrumb.component';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './module';\nexport * from './button.component';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\n\nimport {\n ChangeDetectionStrategy,\n Component,\n Directive,\n Input,\n ViewEncapsulation\n} from '@angular/core';\n\n/**\n * A basic content container component that adds the styles of a BAO design card.\n *\n * While this component can be used alone, it also provides a number\n * of preset styles for common card sections, including:\n * * bao-card-body\n * * bao-card-title\n * * bao-card-bao-text-interface\n * * More to come!\n */\n@Component({\n selector: 'bao-card, [bao-card], [baoCard]',\n templateUrl: 'card.component.html',\n styleUrls: ['./card.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'bao-card',\n '[class.bao-card-large-padding]': 'padding === \"large\"'\n }\n})\nexport class BaoCardComponent {\n @Input()\n public padding: 'normal' | 'large' = 'normal';\n}\n\n/**\n * Header of a card, needed as it's used as a selector in the API.\n */\n@Directive({\n selector: 'bao-card-header, [bao-card-header], [baoCardHeader]',\n host: { class: 'bao-card-header' }\n})\nexport class BaoCardHeader {}\n\n/**\n * Body of a card, needed as it's used as a selector in the API.\n */\n@Directive({\n selector: 'bao-card-content, [bao-card-content], [baoCardContent]',\n host: { class: 'bao-card-content' }\n})\nexport class BaoCardContent {}\n\n/**\n * Title of a card, needed as it's used as a selector in the API.\n */\n@Directive({\n selector: `bao-card-title, [bao-card-title], [baoCardTitle]`,\n host: {\n class: 'bao-card-title'\n }\n})\nexport class BaoCardTitle {}\n\n/**\n * Text of a card, needed as it's used as a selector in the API.\n */\n@Directive({\n selector: `bao-card-text-interface, [bao-card-text-interface], [baoCardTextInterface]`,\n host: {\n class: 'bao-card-text-interface'\n }\n})\nexport class BaoCardTextInterface {}\n","<ng-content select=\"bao-card-header\"></ng-content>\n<ng-content select=\"bao-card-content\"></ng-content>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport {\n BaoCardComponent,\n BaoCardContent,\n BaoCardHeader,\n BaoCardTextInterface,\n BaoCardTitle\n} from './card.component';\n\nconst CARD_DIRECTIVES = [\n BaoCardComponent,\n BaoCardContent,\n BaoCardHeader,\n BaoCardTextInterface,\n BaoCardTitle\n];\n\n@NgModule({\n imports: [CommonModule],\n declarations: [CARD_DIRECTIVES],\n exports: [CARD_DIRECTIVES]\n})\nexport class BaoCardModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './module';\nexport * from './card.component';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'bao-error, [bao-error]',\n template: '<div class=\"bao-error\"><ng-content></ng-content></div>',\n styleUrls: ['./errorText.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class BaoErrorTextComponent {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'bao-guiding-text, [bao-guiding-text]',\n template: '<div class=\"bao-guiding-text\"><ng-content></ng-content></div>',\n styleUrls: ['./guidingText.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class BaoGuidingTextComponent {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'bao-label, [bao-label]',\n encapsulation: ViewEncapsulation.None,\n template: '<ng-content></ng-content><span *ngIf=\"required\">&nbsp;*</span>',\n styleUrls: ['./labelText.component.scss'],\n host: { class: 'bao-label' }\n})\nexport class BaoLabelTextComponent {\n @Input() public required = false;\n}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'bao-title-text, [bao-title-text]',\n template: '<div class=\"bao-title-text\"><ng-content></ng-content></div>',\n styleUrls: ['./titleText.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class BaoTitleTextComponent {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { BaoErrorTextComponent } from './error-text/errorText.component';\nimport { BaoGuidingTextComponent } from './guiding-text/guidingText.component';\nimport { BaoLabelTextComponent } from './label-text/labelText.component';\nimport { BaoTitleTextComponent } from './title-text/titleText.component';\n\nconst DIRECTIVES = [\n BaoErrorTextComponent,\n BaoGuidingTextComponent,\n BaoLabelTextComponent,\n BaoTitleTextComponent\n];\n\n@NgModule({\n imports: [CommonModule],\n declarations: DIRECTIVES,\n exports: DIRECTIVES\n})\nexport class BaoCommonComponentsModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\n\n/**\n * Unique ID for each checkbox group counter\n */\nlet checkboxGroupNextUniqueId = 0;\n\n@Component({\n selector: 'bao-checkbox-group, [bao-checkbox-group]',\n templateUrl: './checkbox-group.component.html',\n styleUrls: ['./checkbox-group.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class BaoCheckboxGroupComponent implements AfterViewInit {\n /**\n * The checkbox group ID. It is set dynamically with an unique ID by default\n */\n @Input() public id: string;\n\n @ViewChild('container', { static: false })\n private staticContainer: ElementRef;\n\n /**\n * The aria-describedby id for web accessibilty\n */\n public ariaDescribedby?: string = undefined;\n\n private _uniqueId = `bao-checkbox-group-${++checkboxGroupNextUniqueId}`;\n\n constructor(private cdr: ChangeDetectorRef) {\n if (!this.id) {\n this.id = this._uniqueId;\n }\n }\n\n public ngAfterViewInit() {\n this.setAriaDescribedByToDescription();\n this.cdr.detectChanges();\n }\n\n public onContentChange() {\n this.setAriaDescribedByToDescription();\n }\n\n /**\n * Set the aria-describedby property to bao-guiding-text if available\n */\n private setAriaDescribedByToDescription() {\n const children = Array.from(this.staticContainer.nativeElement.children);\n if (children.length === 0) {\n this.showAriaDescribedBy(false);\n return;\n }\n\n this.showAriaDescribedBy(true);\n }\n\n private showAriaDescribedBy(value: boolean) {\n this.ariaDescribedby = value ? `${this.id}-ariadescribedby` : undefined;\n }\n}\n","<fieldset\n class=\"bao-checkbox-group\"\n [id]=\"id\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n>\n <ng-content></ng-content>\n <div\n class=\"bao-checkbox-group-description\"\n [attr.id]=\"ariaDescribedby\"\n #container\n (cdkObserveContent)=\"onContentChange()\"\n >\n <ng-content\n select=\"bao-error, [bao-error], bao-guiding-text, [bao-guiding-text]\"\n ></ng-content>\n </div>\n</fieldset>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n/**\n * Checkbox state for aria-checked property\n */\nexport const enum eCheckboxAriaState {\n TRUE = 'true',\n FALSE = 'false',\n MIXED = 'mixed'\n}\n\n/**\n * Unique ID for each checkbox counter\n */\nlet checkboxNextUniqueId = 0;\n\n@Component({\n selector: 'bao-checkbox, [bao-checkbox]',\n templateUrl: 'checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => BaoCheckboxComponent),\n multi: true\n }\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'bao-checkbox',\n '[class.bao-checkbox-inline]': 'inline',\n '[class.bao-checkbox-checked]': 'checked',\n '[class.bao-checkbox-indeterminate]': 'indeterminate',\n '[class.bao-checkbox-disabled]': 'disabled',\n '[class.bao-checkbox-card]': 'brandBorder',\n '[class.bao-checkbox-required]': 'required',\n '[class.bao-checkbox-hidden-label]': 'hiddenLabel'\n }\n})\nexport class BaoCheckboxComponent\n implements ControlValueAccessor, AfterViewInit, OnInit, OnDestroy\n{\n /**\n * The checkbox ID. It is set dynamically with an unique ID by default\n */\n @Input() public id: string;\n\n /**\n * The aria-label for web accessibility\n */\n @Input('aria-label') public ariaLabel?: string;\n\n /**\n * Whether the checkbox has a border and is considered as a card.\n */\n @Input() public brandBorder = false;\n\n /**\n * Whether the checkbox is inline.\n */\n @Input() public inline = false;\n\n /**\n * The name property of the checkbox\n */\n @Input() public name?: string;\n\n /**\n * The visible state of the label\n */\n @Input() public hiddenLabel = false;\n\n /**\n * Emitted object on change event\n */\n @Output() public readonly change: EventEmitter<boolean> =\n new EventEmitter<boolean>();\n\n /**\n * Inderminate value of the checkbox whenever\n */\n @Output() public readonly indeterminateChange: EventEmitter<boolean> =\n new EventEmitter<boolean>();\n\n /**\n * Reference to the input html element\n */\n @ViewChild('input', { static: false })\n private inputElement: ElementRef<HTMLInputElement>;\n\n /**\n * The aria-describedby id for web accessibilty\n */\n public ariaDescribedby?: string;\n\n /**\n * The aria-labeledby id for web accessibilty\n */\n public ariaLabelledby?: string;\n\n /**\n * The ID of the input html element\n */\n public inputID: string;\n\n private _disabled = false;\n private _checked = false;\n private _indeterminate = false;\n private _uniqueId = `bao-checkbox-${++checkboxNextUniqueId}`;\n private _required: boolean;\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private cdr: ChangeDetectorRef,\n private focusMonitor: FocusMonitor\n ) {\n if (!this.id) {\n this.id = this._uniqueId;\n }\n }\n\n /**\n * Whether the checkbox is checked. Default value : false\n */\n @Input()\n get checked(): boolean {\n return this._checked;\n }\n\n /**\n * Whether the checkbox is disabled. Default value : false\n */\n @Input()\n get disabled() {\n return this._disabled;\n }\n\n /**\n * Whether the checkbox is required. Default value : false\n */\n @Input()\n get required(): boolean {\n return this._required;\n }\n\n /**\n * Whether the checkbox is indeterminate. Default value : false\n */\n @Input()\n get indeterminate(): boolean {\n return this._indeterminate;\n }\n\n get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n set checked(value: boolean) {\n if (value !== this.checked) {\n this._checked = value;\n this.cdr.markForCheck();\n }\n }\n\n set disabled(value: boolean) {\n // In the case the value is string or boolean\n const newValue = value;\n\n if (newValue !== this.disabled) {\n this._disabled = newValue;\n this.cdr.markForCheck();\n }\n }\n\n set required(value: boolean) {\n this._required = value;\n }\n\n set indeterminate(value: boolean) {\n const newValue = value;\n\n if (newValue !== this._indeterminate) {\n this._indeterminate = newValue;\n this.indeterminateChange.emit(this._indeterminate);\n }\n // Update the inderteminate value of the html element object\n this.syncIndeterminate(this._indeterminate);\n }\n\n public ngOnInit() {\n // Set all unique ids for the html elements\n this.inputID = `${this.id}-input`;\n this.ariaLabelledby = `${this.id}-arialabelledby`;\n }\n\n public ngAfterViewInit() {\n this.focusMonitor.monitor(this.elementRef, true).subscribe(focusOrigin => {\n if (!focusOrigin) {\n // When a focused element becomes disabled, the browser *immediately* fires a blur event.\n // Angular does not expect events to be raised during change detection, so any state change\n // (such as a form control's 'ng-touched') will cause a changed-after-checked error.\n // See https://github.com/angular/angular/issues/17793. To work around this, we defer\n // telling the form control it has been touched until the next tick.\n Promise.resolve()\n .then(() => {\n this.onTouch();\n this.cdr.markForCheck();\n })\n .catch(() => undefined);\n }\n });\n\n this.setAriaDescribedByToDescription();\n this.syncIndeterminate(this.indeterminate);\n }\n\n public ngOnDestroy() {\n this.focusMonitor.stopMonitoring(this.elementRef);\n }\n\n /**\n * Implement ControlValueAccessor\n */\n public writeValue(value: any) {\n this.checked = !!value;\n }\n\n /**\n * Implement ControlValueAccessor\n */\n public registerOnChange(fn: (value: any) => void) {\n this.onModelChange = fn;\n }\n\n /**\n * Implement ControlValueAccessor\n */\n public registerOnTouched(fn: any) {\n this.onTouch = fn;\n }\n\n /**\n * Implement ControlValueAccessor\n */\n public setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n public focus(origin?: FocusOrigin, options?: FocusOptions): void {\n if (origin) {\n this.focusMonitor.focusVia(this.inputElement, origin, options);\n } else {\n this.inputElement.nativeElement.focus(options);\n }\n }\n\n /**\n * Whenever there is change on the input html element\n */\n public onInteractionEvent(event: Event) {\n // We always have to stop propagation on the change event.\n // Otherwise the change event, from the input element, will bubble up and\n // emit its event object to the `change` output.\n event.stopPropagation();\n }\n\n /**\n * Whenever there is click event triggered on the checkbox\n */\n public onInputClick(event: Event) {\n event.stopPropagation();\n this.toggle();\n this.emitChangeEvent();\n }\n\n /**\n * Get the value for the aria-checked property (web accessibility)\n */\n public getAriaState(): eCheckboxAriaState {\n if (this.checked) {\n return eCheckboxAriaState.TRUE;\n }\n\n return this.indeterminate\n ? eCheckboxAriaState.MIXED\n : eCheckboxAriaState.FALSE;\n }\n\n /**\n * Emit new values whenever the checkbox object has change.\n */\n private emitChangeEvent() {\n this.onModelChange(this.checked);\n this.change.emit(this.checked);\n this.syncChecked(this.checked);\n }\n\n /**\n * Set the checked property on the input html element\n */\n private syncChecked(value: boolean) {\n if (this.inputElement) {\n this.inputElement.nativeElement.checked = value;\n }\n }\n\n /**\n * Set the indeterminate property on the input html element\n */\n private syncIndeterminate(value: boolean) {\n if (this.inputElement) {\n this.inputElement.nativeElement.indeterminate = value;\n }\n }\n\n /**\n * Set the aria-describedby property to bao-checkbox-description\n */\n private setAriaDescribedByToDescription() {\n const childNodes = Array.from(this.nativeElement.childNodes);\n const labelNode = childNodes.find(x => {\n return x.nodeName === 'LABEL';\n });\n if (labelNode) {\n const labelChildNodes = Array.from(labelNode.childNodes);\n const descriptionNode = labelChildNodes.find(x => {\n return x.nodeName === 'BAO-CHECKBOX-DESCRIPTION';\n });\n\n if (descriptionNode) {\n this.ariaDescribedby = `${this.id}-ariadescribedby`;\n (descriptionNode as HTMLElement).setAttribute(\n 'id',\n this.ariaDescribedby\n );\n } else {\n this.ariaDescribedby = undefined;\n }\n\n this.cdr.detectChanges();\n }\n }\n\n /**\n * Set checked value\n */\n private toggle() {\n this.checked = !this.checked;\n }\n\n private onModelChange: (value: any) => void = () => undefined;\n private onTouch: () => void = () => undefined;\n}\n\n@Directive({\n selector:\n 'bao-checkbox-description, [bao-checkbox-description], [baoCheckboxDescription]',\n host: { class: 'bao-checkbox-description' }\n})\nexport class BaoCheckBoxDescription {}\n","<input\n #input\n type=\"checkbox\"\n [id]=\"inputID\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [attr.name]=\"name\"\n [required]=\"required\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n [attr.aria-checked]=\"getAriaState()\"\n (change)=\"onInteractionEvent($event)\"\n (click)=\"onInputClick($event)\"\n role=\"checkbox\"\n/>\n<label class=\"bao-checkbox-content-container\" [attr.for]=\"inputID\">\n <div class=\"bao-checkbox-label\" [id]=\"ariaLabelledby\">\n <ng-content></ng-content>\n </div>\n <ng-content\n select=\"bao-checkbox-description, [bao-checkbox-description], [baoCheckboxDescription]\"\n ></ng-content>\n</label>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { ObserversModule } from '@angular/cdk/observers';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { BaoCommonComponentsModule } from '../common-components/module';\nimport { BaoCheckboxGroupComponent } from './checkbox-group.component';\nimport {\n BaoCheckboxComponent,\n BaoCheckBoxDescription\n} from './checkbox.component';\n\nconst CHECKBOX_DIRECTIVES = [\n BaoCheckboxComponent,\n BaoCheckboxGroupComponent,\n BaoCheckBoxDescription\n];\n\n@NgModule({\n imports: [CommonModule, BaoCommonComponentsModule, ObserversModule],\n declarations: CHECKBOX_DIRECTIVES,\n exports: CHECKBOX_DIRECTIVES\n})\nexport class BaoCheckboxModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './module';\nexport * from './checkbox.component';\nexport * from './checkbox-group.component';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './module';\nexport * from './error-text/errorText.component';\nexport * from './guiding-text/guidingText.component';\nexport * from './label-text/labelText.component';\nexport * from './title-text/titleText.component';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport {\n ChangeDetectionStrategy,\n Component,\n Directive,\n Input,\n ViewEncapsulation\n} from '@angular/core';\n\n/**\n * A basic content container component that adds the styles of a BAO header-info\n *\n * While this component can be used alone, it also provides a number\n * of preset styles for common header-info sections, including:\n * - bao-header-info-title-group\n * - bao-header-info-content\n * - bao-header-info-title\n * - bao-header-info-surtitle\n * - bao-header-info-subtitle\n */\n@Component({\n selector: 'bao-header-info',\n templateUrl: 'header-info.html',\n styleUrls: ['header-info.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'bao-document-heading',\n '[class.document-heading-left-notch]': 'notch === \"left\"'\n }\n})\nexport class BaoHeaderInfoComponent {\n @Input() public notch: '' | 'left' | 'center' = '';\n @Input() public imageUrl = '';\n @Input() public brandBorder = false;\n}\n\n@Component({\n selector: 'bao-header-info-title-group',\n templateUrl: 'header-info-title-group.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'bao-header-info-title-group'\n }\n})\nexport class BaoHeaderInfoTitleGroupComponent {}\n\n@Directive({\n selector: 'bao-header-info-content',\n host: {\n class: 'bao-header-info-content'\n }\n})\nexport class BaoHeaderInfoContent {}\n\n@Directive({\n selector:\n 'bao-header-info-surtitle, [bao-header-info-surtitle], [baoHeaderInfoSurtitle]',\n host: {\n class: 'document-heading-surtitle'\n }\n})\nexport class BaoHeaderInfoSurtitle {}\n\n@Directive({\n selector:\n 'bao-header-info-subtitle, [bao-header-info-subtitle], [baoHeaderInfoSubtitle]',\n host: {\n class: 'document-heading-subtitle'\n }\n})\nexport class BaoHeaderInfoSubtitle {}\n\n@Directive({\n selector:\n 'bao-header-info-title, [bao-header-info-title], [baoHeaderInfoTitle]',\n host: {\n class: 'document-heading-title'\n }\n})\nexport class BaoHeaderInfoTitle {}\n","<div *ngIf=\"imageUrl\" class=\"document-heading-image-container\">\n <div\n [ngStyle]=\"{\n 'background-image': 'url(\\'' + imageUrl + '\\')'}\"\n class=\"document-heading-background\"\n ></div>\n</div>\n\n<div class=\"bao-container document-heading-header-container\">\n <div class=\"bao-row document-heading-header\">\n <div class=\"bao-col-12 bao-col-lg-7\">\n <ng-content select=\"bao-header-info-title-group\"></ng-content>\n <div class=\"bao-header-content\">\n <ng-content></ng-content>\n </div>\n <div *ngIf=\"brandBorder\" class=\"brand-border-bottom\"></div>\n </div>\n </div>\n <div *ngIf=\"notch\" class=\"document-heading-wrapper notch\">\n <div class=\"document-heading-content-wrapper\">\n <div class=\"document-heading-content\"></div>\n </div>\n </div>\n</div>\n","<ng-content></ng-content>\n<ng-content\n select=\"bao-header-surtitle, [bao-header-surtitle], [baoHeaderSurtitle], \n bao-header-title, [bao-header-title], [baoHeaderTitle],\n bao-header-subtitle, [bao-header-subtitle], [baoHeaderSubtitle]\"\n></ng-content>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport {\n BaoHeaderInfoComponent,\n BaoHeaderInfoContent,\n BaoHeaderInfoSubtitle,\n BaoHeaderInfoSurtitle,\n BaoHeaderInfoTitle,\n BaoHeaderInfoTitleGroupComponent\n} from './header-info.component';\n\nconst DIRECTIVES = [\n BaoHeaderInfoComponent,\n BaoHeaderInfoContent,\n BaoHeaderInfoTitleGroupComponent,\n BaoHeaderInfoSubtitle,\n BaoHeaderInfoSurtitle,\n BaoHeaderInfoTitle\n];\n\n@NgModule({\n imports: [CommonModule],\n declarations: DIRECTIVES,\n exports: DIRECTIVES\n})\nexport class BaoHeaderInfoModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './module';\nexport * from './header-info.component';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './module';\nexport * from './icon.component';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { Component, Directive, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'bao-list-item, [bao-list-item]',\n templateUrl: './list-item.component.html',\n styleUrls: ['./list.component.scss'],\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'bao-list-item',\n role: 'listitem'\n }\n})\nexport class BaoListItem {}\n\n@Directive({\n selector: 'bao-list, [bao-list]',\n host: {\n class: 'bao-list',\n role: 'list'\n }\n})\nexport class BaoList {}\n\n@Directive({\n selector: 'bao-nav-list, [bao-nav-list]',\n host: {\n class: 'bao-list',\n role: 'navigation'\n }\n})\nexport class BaoNavList {}\n\n@Directive({\n selector: 'bao-list-item-description, [bao-list-item-description]',\n host: {\n class: 'bao-list-item-description'\n }\n})\nexport class BaoListItemDescription {}\n\n@Directive({\n selector: 'bao-list-item-title, [bao-list-item-title]',\n host: {\n class: 'bao-list-item-title'\n }\n})\nexport class BaoListItemTitle {}\n","<div class=\"bao-list-item-header\">\n <ng-content select=\"baoIconItemType, [baoIconItemType]\"></ng-content>\n</div>\n<div class=\"bao-list-item-content\">\n <div class=\"bao-list-item-text\">\n <ng-content></ng-content>\n </div>\n <div class=\"bao-list-item-tag\">\n <ng-content\n select=\"bao-tag, [bao-tag], baoIconTag, [baoIconTag]\"\n ></ng-content>\n </div>\n</div>\n<div class=\"bao-list-item-actions\">\n <ng-content\n select=\"bao-button, [bao-button], bao-dropdown-menu, [bao-dropdown-menu]\"\n >\n </ng-content>\n</div>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport {\n BaoList,\n BaoListItem,\n BaoListItemDescription,\n BaoListItemTitle,\n BaoNavList\n} from './list.component';\n\nconst DIRECTIVES = [\n BaoListItem,\n BaoList,\n BaoNavList,\n BaoListItemDescription,\n BaoListItemTitle\n];\n\n@NgModule({\n imports: [CommonModule],\n declarations: DIRECTIVES,\n exports: DIRECTIVES\n})\nexport class BaoListModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './module';\nexport * from './list.component';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n InjectionToken,\n Input,\n Output,\n QueryList,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BaoRadioButtonComponent } from '.';\n\n/**\n * We have to inject the radio button group and all its children to each child.\n */\nexport const BAO_RADIO_GROUP = new InjectionToken<BaoRadioButtonGroupComponent>(\n 'BaoRadioButtonGroup'\n);\n/**\n * Unique ID for each radio group counter\n */\nlet radioGroupNextUniqueId = 0;\n\n@Component({\n selector:\n 'bao-radio-button-group, [bao-radio-button-group], [baoRadioButtonGroup]',\n exportAs: 'baoRadioGroup',\n templateUrl: './radio-group.component.html',\n styleUrls: ['./radio-group.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => BaoRadioButtonGroupComponent),\n multi: true\n },\n { provide: BAO_RADIO_GROUP, useExisting: BaoRadioButtonGroupComponent }\n ]\n})\nexport class BaoRadioButtonGroupComponent\n implements AfterContentInit, ControlValueAccessor, AfterViewInit\n{\n /**\n * The checkbox group ID. It is set dynamically with an unique ID by default\n */\n @Input() public id: string;\n\n /**\n * Emit the value of the selected radio button\n */\n @Output() public readonly change: EventEmitter<string> =\n new EventEmitter<string>();\n\n @ContentChildren(forwardRef(() => BaoRadioButtonComponent), {\n descendants: true\n })\n @ViewChild('container', { static: false })\n private staticContainer: ElementRef;\n\n /**\n * The aria-describedby for web accessibilty\n */\n public ariaDescribedby: string | null = null;\n\n private _radios: QueryList<BaoRadioButtonComponent>;\n private _value: string | null = null;\n private _name: string | null = null;\n private _selected: BaoRadioButtonComponent | null = null;\n private _isInitialized = false;\n private _disabled = false;\n private _required = false;\n\n private _uniqueId = `bao-checkbox-group-${++radioGroupNextUniqueId}`;\n\n constructor(private cdr: ChangeDetectorRef) {\n if (!this.id) {\n this.id = this._uniqueId;\n }\n }\n\n /**\n * Define the name property of all radio buttons. Default : null\n */\n @Input()\n get name(): string | null {\n return this._name;\n }\n\n /**\n * Define the value of the selected radio button. Default : null\n */\n @Input()\n get value(): string | null {\n return this._value;\n }\n\n /**\n * Define which radio button is selected. Default : null\n */\n @Input()\n get selected() {\n return this._selected;\n }\n\n /**\n * Whether the radio button groupd is disabled. Default : false\n */\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n /**\n * Whether the radio button groupd is required. Default : false\n */\n @Input()\n get required(): boolean {\n return this._required;\n }\n\n set name(value: string | null) {\n this._name = value;\n this.updateRadioButtonNames();\n }\n\n set value(newValue: string | null) {\n if (this._value !== newValue) {\n this._value = newValue;\n this.updateSelectedRadioFromValue();\n this.checkSelectedRadioButton();\n }\n }\n\n set selected(selected: BaoRadioButtonComponent | null) {\n this._selected = selected;\n this.value = selected ? selected.value : null;\n this.checkSelectedRadioButton();\n }\n\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n this.markRadiosForCheck();\n }\n\n set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n this.markRadiosForCheck();\n }\n\n public ngAfterContentInit() {\n this._isInitialized = true;\n }\n\n public ngAfterViewInit() {\n this.setAriaDescribedByToDescription();\n this.cdr.detectChanges();\n }\n\n /**\n * Implement ControlValueAccessor\n */\n public writeValue(value: string) {\n this.value = value;\n this.cdr.markForCheck();\n }\n\n /**\n * Implement ControlValueAccessor\n */\n public registerOnChange(fn: (value: any) => void) {\n this.onModelChange = fn;\n }\n\n /**\n * Implement ControlValueAccessor\n */\n public registerOnTouched(fn: any) {\n this.onTouch = fn;\n }\n\n /**\n * Implement ControlValueAccessor\n */\n public setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n /**\n * onTouch() called from the button children\n */\n public onGroupTouch() {\n if (this.onTouch) {\n this.onTouch();\n }\n }\n\n /**\n * Update all radio button name\n */\n public updateRadioButtonNames(): void {\n if (this._radios) {\n this._radios.forEach((radio: BaoRadioButtonComponent) => {\n radio.name = this.name;\n radio.markForCheck();\n });\n }\n }\n\n /**\n * Define which radio button is selected.\n */\n public updateSelectedRadioFromValue(): void {\n const isAlreadySelected =\n this._selected !== null && this._selected.value === this._value;\n if (this._radios && !isAlreadySelected) {\n this._selected = null;\n this._radios.forEach((radio: BaoRadioButtonComponent) => {\n radio.checked = this.value === radio.value;\n if (radio.checked) {\n this._selected = radio;\n }\n });\n }\n }\n\n /**\n * Update checked property on selected radio button\n */\n public checkSelectedRadioButton() {\n if (this._selected && !this._selected.checked) {\n this._selected.checked = true;\n }\n }\n\n /**\n * Emit the value of the new selected radio button\n */\n public emitChangeEvent(): void {\n if (this._isInitialized) {\n this.change.emit(this.value);\n }\n }\n\n /**\n * Call markForCheck function on all radio buttons since one of the parent inputs could't have change meanwhile. Prevent change detection error.\n */\n public markRadiosForCheck() {\n if (this._radios) {\n this._radios.forEach((radio: BaoRadioButtonComponent) =>\n radio.markForCheck()\n );\n }\n }\n\n public onContentChange() {\n this.setAriaDescribedByToDescription();\n }\n\n public onModelChange: (value: any) => void = () => undefined;\n\n /**\n * Set the aria-describedby property to bao-guiding-text if available\n */\n private setAriaDescribedByToDescription() {\n const children = Array.from(this.staticContainer.nativeElement.children);\n if (children.length === 0) {\n this.showAriaDescribedBy(false);\n return;\n }\n\n this.showAriaDescribedBy(true);\n }\n\n private showAriaDescribedBy(value: boolean) {\n this.ariaDescribedby = value ? `${this.id}-ariadescribedby` : null;\n }\n\n private onTouch: () => any = () => undefined;\n}\n","<fieldset\n role=\"radiogroup\"\n class=\"bao-radio-button-group\"\n [id]=\"id\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n>\n <ng-content></ng-content>\n <div\n class=\"bao-radio-button-group-description\"\n [attr.id]=\"ariaDescribedby\"\n #container\n (cdkObserveContent)=\"onContentChange()\"\n >\n <ng-content\n select=\"bao-error, [bao-error], bao-guiding-text, [bao-guiding-text]\"\n ></ng-content>\n </div>\n</fieldset>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { UniqueSelectionDispatcher } from '@angular/cdk/collections';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n BAO_RADIO_GROUP,\n BaoRadioButtonGroupComponent\n} from './radio-group.component';\n\n/**\n * Unique ID for each radio button\n */\nlet radioNextUniqueId = 0;\n\n@Component({\n selector: 'bao-radio-button, [bao-radio-button]',\n templateUrl: 'radio.component.html',\n styleUrls: ['./radio.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => BaoRadioButtonComponent),\n multi: true\n }\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'bao-radio-button',\n '[class.bao-radio-button-inline]': 'inline',\n '[class.bao-radio-button-checked]': 'checked',\n '[class.bao-radio-button-disabled]': 'disabled',\n '[class.bao-radio-button-card]': 'brandBorder',\n '[class.bao-radio-button-hidden-label]': 'hiddenLabel'\n }\n})\nexport class BaoRadioButtonComponent\n implements AfterViewInit, OnInit, OnDestroy\n{\n /**\n * The radio button ID. It is set dynamically with an unique ID by default\n */\n @Input() public id: string;\n\n /**\n * The aria-label for web accessibility\n */\n @Input('aria-label') public ariaLabel: string | null = null;\n\n /**\n * Whether the radio button has a border and is considered as a card.\n */\n @Input() public brandBorder = false;\n\n /**\n * Whether the radio button is inline.\n */\n @Input() public inline = false;\n\n /**\n * The name property of the radio button\n */\n @Input() public name: string | null = null;\n\n /**\n * The visible state of the label\n */\n @Input() public hiddenLabel = false;\n\n /**\n * Emitted boolean on change\n */\n @Output() public readonly change: EventEmitter<string> =\n new EventEmitter<string>();\n\n /**\n * Reference to the input html element\n */\n @ViewChild('input', { static: false })\n private inputElement: ElementRef<HTMLInputElement>;\n\n /**\n * The radio buttons group\n */\n public radioGroup: BaoRadioButtonGroupComponent;\n\n /**\n * The aria-describedby id for web accessibilty\n */\n public ariaDescribedby: string | null = null;\n\n /**\n * The aria-labeledby id for web accessibilty\n */\n public ariaLabelledby: string | null = null;\n\n /**\n * The ID of the input html element\n */\n public inputID: string;\n\n private _checked = false;\n private _disabled = false;\n private _required = false;\n private _value: string | null = null;\n private _uniqueId = `bao-radio-button-${++radioNextUniqueId}`;\n\n constructor(\n @Optional()\n @Inject(BAO_RADIO_GROUP)\n radioGroup: BaoRadioButtonGroupComponent,\n private elementRef: ElementRef<HTMLElement>,\n private cdr: ChangeDetectorRef,\n private focusMonitor: FocusMonitor,\n private radioDispatcher: UniqueSelectionDispatcher\n ) {\n this.radioGroup = radioGroup;\n this._removeUniqueSelectionListener = radioDispatcher.listen(\n (id: string, name: string) => {\n if (id !== this.id && name === this.name) {\n this.checked = false;\n }\n }\n );\n if (!this.id) {\n this.id = this._uniqueId;\n }\n }\n\n /**\n * Whether the radio button is checked. Default : false\n */\n @Input()\n get checked(): boolean {\n return this._checked;\n }\n\n /**\n * Define the radio button value. Default : null\n */\n @Input()\n get value(): string {\n return this._value;\n }\n\n /**\n * Whether the radio button is disabled. Default : false\n */\n @Input()\n get disabled(): boolean {\n return this._disabled || (this.radioGroup && this.radioGroup.disabled);\n }\n\n /**\n * Whether the radio button is required. Default : false\n */\n @Input()\n get required(): boolean {\n return this._required || (this.radioGroup && this.radioGroup.required);\n }\n\n get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n set checked(value: boolean) {\n const newCheckedState = coerceBooleanProperty(value);\n if (this._checked !== newCheckedState) {\n this._checked = newCheckedState;\n if (\n newCheckedState &&\n this.radioGroup &&\n this.radioGroup.value !== this.value\n ) {\n this.radioGroup.selected = this;\n } else if (\n !newCheckedState &&\n this.radioGroup &&\n this.radioGroup.value === this.value\n ) {\n this.radioGroup.selected = null;\n }\n\n if (newCheckedState) {\n this.radioDispatcher.notify(this.id, this.name);\n }\n this.cdr.markForCheck();\n }\n }\n\n set value(value: string) {\n if (value !== this._value) {\n this._value = value;\n if (this.radioGroup) {\n if (!this.checked) {\n this.checked = this.radioGroup.value === value;\n }\n if (this.checked) {\n this.radioGroup.selected = this;\n }\n }\n }\n }\n\n set disabled(value: boolean) {\n this.setDisabled(coerceBooleanProperty(value));\n }\n\n set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n }\n\n public focus(options?: FocusOptions, origin?: FocusOrigin): void {\n if (origin) {\n this.focusMonitor.focusVia(this.inputElement, origin, options);\n } else {\n this.inputElement.nativeElement.focus(options);\n }\n }\n\n /**\n * Method called from the parent as one of the parent input has changed. Prevent change detection error.\n */\n public markForCheck() {\n this.cdr.markForCheck();\n }\n\n public ngOnInit() {\n // Set all unique ids for the html elements\n this.inputID = `${this.id}-input`;\n this.ariaLabelledby = `${this.id}-arialabelledby`;\n\n if (this.radioGroup) {\n this.checked = this.radioGroup.value === this._value;\n\n if (this.checked) {\n this.radioGroup.selected = this;\n }\n\n this.name = this.radioGroup.name;\n }\n }\n\n public ngAfterViewInit() {\n this.focusMonitor\n .monitor(this.inputElement, true)\n .subscribe(focusOrigin => {\n if (!focusOrigin && this.radioGroup) {\n this.radioGroup.onGroupTouch();\n }\n });\n\n this.setAriaDescribedByToDescription();\n }\n\n public ngOnDestroy() {\n this.focusMonitor.stopMonitoring(this.inputElement);\n this._removeUniqueSelectionListener;\n }\n\n /**\n * Emit the new value from the selected radio-button and the parent\n */\n public onInputInteraction(event: Event) {\n event.stopPropagation();\n if (!this.checked && !this.disabled) {\n const groupValueChanged =\n this.radioGroup && this.value !== this.radioGroup.value;\n this.checked = true;\n this.emitChangeEvent();\n\n if (this.radioGroup) {\n this.radioGroup.onModelChange(this.value);\n if (groupValueChanged) {\n this.radioGroup.emitChangeEvent();\n }\n }\n }\n }\n\n private emitChangeEvent(): void {\n this.change.emit(this.value);\n }\n\n private setDisabled(value: boolean) {\n if (this._disabled !== value) {\n this._disabled = value;\n this.cdr.markForCheck();\n }\n }\n\n /**\n * Set the id property to bao-radio-button-description as a description to the input\n */\n private setAriaDescribedByToDescription() {\n const childNodes = Array.from(this.nativeElement.childNodes);\n const labelNode = childNodes.find(x => {\n return x.nodeName === 'LABEL';\n });\n if (labelNode) {\n const labelChildNodes = Array.from(labelNode.childNodes);\n const descriptionNode = labelChildNodes.find(x => {\n return x.nodeName === 'BAO-RADIO-BUTTON-DESCRIPTION';\n });\n\n if (descriptionNode) {\n this.ariaDescribedby = `${this.id}-ariadescribedby`;\n (descriptionNode as HTMLElement).setAttribute(\n 'id',\n this.ariaDescribedby\n );\n } else {\n this.ariaDescribedby = null;\n }\n\n this.cdr.detectChanges();\n }\n }\n\n /** Unregister function for radioDispatcher */\n private _removeUniqueSelectionListener: () => void = () => undefined;\n}\n\n@Directive({\n selector:\n 'bao-radio-button-description, [bao-radio-button-description], [baoRadioButtonDescription]',\n host: { class: 'bao-radio-button-description' }\n})\nexport class BaoRadioDescription {}\n","<input\n #input\n type=\"radio\"\n [id]=\"inputID\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [required]=\"required\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n (change)=\"onInputInteraction($event)\"\n role=\"radio\"\n/>\n<label class=\"bao-radio-button-content-container\" [attr.for]=\"inputID\">\n <div class=\"bao-radio-button-label\" [id]=\"ariaLabelledby\">\n <ng-content></ng-content>\n </div>\n <ng-content\n select=\"bao-radio-button-description, [bao-radio-button-description], [baoRadioButtonDescription]\"\n ></ng-content>\n</label>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { ObserversModule } from '@angular/cdk/observers';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { BaoButtonModule } from '../button';\nimport { BaoCommonComponentsModule } from '../common-components/module';\nimport { BaoRadioButtonGroupComponent } from './radio-group.component';\nimport {\n BaoRadioButtonComponent,\n BaoRadioDescription\n} from './radio.component';\n\nconst RADIO_DIRECTIVES = [\n BaoRadioButtonComponent,\n BaoRadioDescription,\n BaoRadioButtonGroupComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n BaoCommonComponentsModule,\n BaoButtonModule,\n ObserversModule\n ],\n declarations: RADIO_DIRECTIVES,\n exports: RADIO_DIRECTIVES\n})\nexport class BaoRadioModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './module';\nexport * from './radio.component';\nexport * from './radio-group.component';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n Renderer2,\n ViewEncapsulation\n} from '@angular/core';\n\nconst SPAN = 'span';\nconst SPAN_TEXT_PROPERTY = 'textContent';\nconst SCREEN_READER_CLASS_NAME = 'sr-only';\nconst BAO_ICON = 'bao-icon';\nconst HAS_ICON = 'has-icon';\n\n@Component({\n selector: 'bao-tag, [bao-tag], [baoTag]',\n templateUrl: './tag.component.html',\n styleUrls: ['./tag.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'bao-tag',\n '[class.bao-tag-neutral-light]':\n 'type === \"neutral\" && variant === \"light\"',\n '[class.bao-tag-neutral-strong]':\n 'type === \"neutral\" && variant === \"strong\"',\n '[class.bao-tag-info-light]': 'type === \"info\" && variant === \"light\"',\n '[class.bao-tag-info-strong]': 'type === \"info\" && variant === \"strong\"',\n '[class.bao-tag-positive-light]':\n 'type === \"positive\" && variant === \"light\"',\n '[class.bao-tag-positive-strong]':\n 'type === \"positive\" && variant === \"strong\"',\n '[class.bao-tag-alert-light]': 'type === \"alert\" && variant === \"light\"',\n '[class.bao-tag-alert-strong]': 'type === \"alert\" && variant === \"strong\"',\n '[class.bao-tag-negative-light]':\n 'type === \"negative\" && variant === \"light\"',\n '[class.bao-tag-negative-strong]':\n 'type === \"negative\" && variant === \"strong\"'\n }\n})\nexport class BaoTagComponent implements AfterViewInit {\n /**\n * The color of the tag.\n */\n @Input() public type: 'neutral' | 'info' | 'positive' | 'alert' | 'negative' =\n 'neutral';\n\n /**\n * The shade of the tags color.\n */\n @Input() public variant: 'light' | 'strong' = 'light';\n\n /**\n * The hidden text for screen readers.\n */\n @Input() public hiddenText = 'Étiquette';\n\n constructor(\n private renderer: Renderer2,\n private elementRef: ElementRef<HTMLElement>\n ) {}\n\n get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n public ngAfterViewInit() {\n this.addHiddenText();\n this.addIconClass();\n }\n\n private addHiddenText() {\n const screenReaderSpan = this.renderer.createElement(SPAN);\n this.renderer.setProperty(\n screenReaderSpan,\n SPAN_TEXT_PROPERTY,\n this.hiddenText\n );\n this.renderer.addClass(screenReaderSpan, SCREEN_READER_CLASS_NAME);\n const labelChild = Array.from(this.nativeElement.children).find(\n c => c.localName === SPAN\n );\n this.renderer.insertBefore(\n this.nativeElement,\n screenReaderSpan,\n labelChild\n );\n }\n\n private addIconClass() {\n const children = Array.from(this.nativeElement.children);\n if (children.some(c => c.localName === BAO_ICON)) {\n this.renderer.addClass(this.nativeElement, HAS_ICON);\n }\n }\n}\n","<ng-content select=\"bao-icon\"></ng-content>\n<ng-content></ng-content>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { BaoTagComponent } from './tag.component';\n\nconst TAG_DIRECTIVES = [BaoTagComponent];\n\n@NgModule({\n imports: [CommonModule],\n declarations: [TAG_DIRECTIVES],\n exports: [TAG_DIRECTIVES]\n})\nexport class BaoTagModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './module';\nexport * from './tag.component';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport {\n ChangeDetectionStrategy,\n Component,\n Directive,\n ElementRef,\n Input,\n ViewEncapsulation,\n AfterViewInit,\n OnInit\n} from '@angular/core';\nimport { EDisplayMode } from '../shared';\n\nlet summaryUniqueId = 0;\n@Component({\n selector: 'bao-summary, [bao-summary], [baoSummary]',\n templateUrl: './summary.component.html',\n styleUrls: ['./summary.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'bao-summary',\n '[class.bao-displaymode-compact]': 'displayMode === \"compact\"'\n }\n})\nexport class BaoSummaryComponent implements OnInit, AfterViewInit {\n /**\n * Set display mode\n * RESPONSIVE (viewport width <=> is 576px)\n * COMPACT (viewport width < 576px)\n */\n @Input() public displayMode = EDisplayMode.RESPONSIVE;\n\n /**\n * Set value of unique ID for bao-label\n */\n @Input() public id: string;\n\n /**\n * The aria-describebdy-error id for web accessibility\n * only when error section appears\n */\n public ariaDescribedbyError?: string;\n\n /**\n * The aria-describebdy-text id for web accessibility\n * only when we have de guidance text\n */\n public ariaDescribedbyGuidingText?: string;\n\n /**\n * The aria-labelledby id for web accessibility\n */\n public ariaLabelledby?: string;\n\n /**\n * Initialize the ID for summary\n */\n private _uniqueId = `bao-summary-${++summaryUniqueId}`;\n\n private attribues: string;\n\n constructor(private elementRef: ElementRef<HTMLElement>) {\n if (!this.id) {\n this.id = this._uniqueId;\n }\n }\n\n get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n public ngOnInit() {\n this.ariaDescribedbyError = `${this.id}-ariadescribedby-error`;\n this.ariaDescribedbyGuidingText = `${this.id}-ariadescribedby-guiding-text`;\n\n this.ariaLabelledby = `${this.id}-arialabelledby`;\n }\n\n public ngAfterViewInit() {\n this.setAriaDescribedByToDescription();\n }\n\n public setAriaDescribedByToDescription() {\n const baoLabel = this.elementNode('BAO-LABEL');\n const baoError = this.elementNode('BAO-ERROR');\n const baoGuidingText = this.elementNode('BAO-GUIDING-TEXT');\n const summaryDiv = this.elementNode('DIV');\n\n if (summaryDiv) {\n const summaryText = this.elementNode('DIV', summaryDiv);\n\n if (summaryText && baoLabel) {\n (baoLabel as HTMLElement).setAttribute('id', this.ariaLabelledby);\n (summaryText as HTMLElement).setAttribute(\n 'aria-labelledby',\n this.ariaLabelledby\n );\n }\n\n if (summaryText && baoGuidingText) {\n (baoGuidingText as HTMLElement).setAttribute(\n 'id',\n this.ariaDescribedbyGuidingText\n );\n (summaryText as HTMLElement).setAttribute(\n 'aria-describedby',\n this.ariaDescribedbyGuidingText\n );\n }\n\n if (summaryText && baoError) {\n (baoError as HTMLElement).setAttribute('id', this.ariaDescribedbyError);\n this.attribues = baoGuidingText\n ? `${this.ariaDescribedbyError}, ${this.ariaDescribedbyGuidingText}`\n : this.ariaDescribedbyError;\n (summaryText as HTMLElement).setAttribute(\n 'aria-describedby',\n this.attribues\n );\n }\n }\n }\n\n private elementNode(name: string, nativeElt?: Node): Node {\n const childNodes = nativeElt\n ? Array.from(nativeElt.childNodes)\n : Array.from(this.nativeElement.childNodes);\n const element = childNodes.find(x => x.nodeName === name);\n\n return element;\n }\n}\n\n@Directive({\n selector:\n 'bao-summary-description, [bao-summary-description], [baoSummaryDescription]',\n host: { class: 'bao-summary-description' }\n})\nexport class BaoSummaryDescription {}\n","<ng-content select=\"bao-label\"></ng-content>\n<ng-content select=\"bao-guiding-text, [bao-guiding-text]\"></ng-content>\n\n<div class=\"bao-summary-content\">\n <div class=\"bao-summary-text\">\n <ng-content select=\"bao-title-text, [bao-title-text]\"></ng-content>\n <ng-content select=\"bao-summary-description\"></ng-content>\n <ng-content\n select=\"bao-list-summary, [bao-list-summary], [baoListSummary]\"\n ></ng-content>\n </div>\n <ng-content select=\"button[bao-button]\"></ng-content>\n</div>\n<ng-content select=\"bao-error, [bao-error]\"></ng-content>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation\n} from '@angular/core';\n\n@Component({\n selector:\n 'bao-list-summary-item, [bao-list-summary-item], [baoListSummaryItem]',\n template: `<ng-content></ng-content>`,\n styleUrls: ['./list-summary.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'bao-list-summary-item',\n role: 'listitem'\n }\n})\nexport class BaoListSummaryItem {}\n\n@Component({\n selector: 'bao-list-summary, [bao-list-summary], [baoListSummary]',\n template: `<ng-content></ng-content>`,\n styles: ['.bao-list-summary { padding-left:2rem }'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'bao-list-summary',\n role: 'list'\n }\n})\nexport class BaoListSummary {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { BaoCommonComponentsModule } from '../common-components';\nimport {\n BaoSummaryComponent,\n BaoSummaryDescription\n} from './summary.component';\nimport { BaoListSummary, BaoListSummaryItem } from './list-summary.component';\n\nconst SUMMARY_DIRECTIVES = [\n BaoSummaryComponent,\n BaoSummaryDescription,\n BaoListSummary,\n BaoListSummaryItem\n];\n\n@NgModule({\n imports: [CommonModule, BaoCommonComponentsModule],\n declarations: SUMMARY_DIRECTIVES,\n exports: SUMMARY_DIRECTIVES\n})\nexport class BaoSummaryModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './module';\nexport * from './summary.component';\nexport * from './list-summary.component';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\n\nimport {\n AfterViewInit,\n Component,\n Directive,\n ElementRef,\n Input,\n Renderer2,\n ViewEncapsulation\n} from '@angular/core';\n\n@Directive({\n selector: 'bao-avatar-content, [bao-avatar-content]',\n exportAs: 'baoAvatarContent',\n host: {\n class: 'bao-avatar-content'\n }\n})\nexport class BaoAvatarContent {}\n\nconst SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\nconst SVG_PROFILE_ICON =\n \"<svg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'><circle cx='12' cy='12' r='12' fill='#DEE2E6'/><path fill-rule='evenodd' clip-rule='evenodd' d='M20.6328 20.3314C18.4504 22.5932 15.3877 24 11.9964 24C8.60514 24 5.54243 22.5932 3.36 20.3314C3.99242 18.9554 5.38284 18 6.99642 18H16.9964C18.61 18 20.0004 18.9554 20.6328 20.3314ZM17.9964 10C17.9964 13.3137 15.3101 16 11.9964 16C8.68272 16 5.99642 13.3137 5.99642 10C5.99642 6.68629 8.68272 4 11.9964 4C15.3101 4 17.9964 6.68629 17.9964 10Z' fill='#ADB2BD'/></svg>\";\nconst SCREEN_READER_CLASS_NAME = 'sr-only';\nconst SPAN_TEXT_PROPERTY = 'textContent';\n@Component({\n selector: 'bao-avatar',\n templateUrl: './avatar.component.html',\n styleUrls: ['./avatar.component.scss'],\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'bao-avatar',\n '[class.bao-avatar-color-1]': 'color === \"background-color-1\"',\n '[class.bao-avatar-color-2]': 'color === \"background-color-2\"',\n '[class.bao-avatar-color-3]': 'color === \"background-color-3\"',\n '[class.bao-avatar-color-4]': 'color === \"background-color-4\"',\n '[class.bao-avatar-color-5]': 'color === \"background-color-5\"',\n '[class.bao-avatar-color-6]': 'color === \"background-color-6\"',\n '[class.bao-avatar-color-7]': 'color === \"background-color-7\"',\n '[class.bao-avatar-color-8]': 'color === \"background-color-8\"',\n '[class.bao-avatar-color-9]': 'color === \"background-color-9\"',\n '[class.bao-avatar-color-10]': 'color === \"background-color-10\"'\n }\n})\nexport class BaoAvatarComponent implements AfterViewInit {\n /**\n * Name of the profile to be used as title of the avatar.\n */\n @Input() public profileName = 'Avatar du profil';\n\n /**\n * ID of the background color to be used if avatar's content is text.\n */\n @Input() public color:\n | 'background-color-1'\n | 'background-color-2'\n | 'background-color-3'\n | 'background-color-4'\n | 'background-color-5'\n | 'background-color-6'\n | 'background-color-7'\n | 'background-color-8'\n | 'background-color-9'\n | 'background-color-10' = 'background-color-1';\n\n constructor(\n private renderer: Renderer2,\n private elementRef: ElementRef<HTMLElement>\n ) {}\n\n get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n if (!this.nativeElement.childNodes.length) {\n this.addIcon();\n }\n if (this.nativeElement.firstChild.nodeName === 'SPAN') {\n this.formatInitials(this.nativeElement.firstChild);\n }\n this.setProfileName(this.profileName, this.nativeElement.firstChild);\n }\n\n private addIcon(): void {\n const div = this.renderer.createElement('DIV');\n div.innerHTML = SVG_PROFILE_ICON;\n const svg = div.querySelector('svg') as SVGElement;\n const titleNode = this.renderer.createElement('title', SVG_NAMESPACE);\n const titleText = this.renderer.createText(this.profileName);\n this.renderer.appendChild(titleNode, titleText);\n this.renderer.insertBefore(svg, titleNode, svg.firstChild);\n this.renderer.appendChild(this.nativeElement, svg);\n }\n\n private setProfileName(name: string, content: Node): void {\n switch (content.nodeName) {\n case 'IMG':\n this.renderer.setAttribute(content, 'alt', name);\n break;\n case 'SPAN':\n this.renderer.setAttribute(content, 'aria-hidden', 'true');\n const screenReaderSpan = this.renderer.createElement('span');\n this.renderer.setProperty(screenReaderSpan, SPAN_TEXT_PROPERTY, name);\n this.renderer.addClass(screenReaderSpan, SCREEN_READER_CLASS_NAME);\n this.renderer.insertBefore(\n this.nativeElement,\n screenReaderSpan,\n content\n );\n break;\n }\n }\n\n private formatInitials(content: Node): void {\n this.renderer.setValue(\n content.firstChild,\n content.firstChild.nodeValue.slice(0, 2)\n );\n this.renderer.addClass(this.nativeElement, 'display-color');\n }\n}\n","<ng-content select=\"bao-avatar-content, [bao-avatar-content]\"></ng-content>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { BaoAvatarComponent, BaoAvatarContent } from './avatar.component';\n\nconst AVATAR_DIRECTIVES = [BaoAvatarComponent, BaoAvatarContent];\n\n@NgModule({\n imports: [CommonModule],\n declarations: [AVATAR_DIRECTIVES],\n exports: [AVATAR_DIRECTIVES]\n})\nexport class BaoAvatarModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './module';\nexport * from './avatar.component';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\n\nimport {\n AfterContentInit,\n AfterViewInit,\n Component,\n ContentChild,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnDestroy,\n Output,\n QueryList,\n Renderer2,\n ViewEncapsulation\n} from '@angular/core';\n\n/**\n * Unique number to generate a unique ID\n */\nlet tabsNextUniqueId = 0;\n@Directive({\n selector: 'bao-tab-header, [bao-tab-header]',\n exportAs: 'baoTabHeader',\n host: {\n class: 'bao-tab-header'\n }\n})\nexport class BaoTabHeader implements AfterViewInit {\n /**\n * Emits its index when tab is clicked\n */\n @Output() public onTabClick: EventEmitter<string> =\n new EventEmitter<string>();\n\n constructor(\n private renderer: Renderer2,\n private elementRef: ElementRef<HTMLElement>\n ) {}\n\n get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n @HostListener('click', ['$event.target'])\n onClick(el: HTMLElement) {\n const tabIndex = el.id.split('-')[el.id.split('-').length - 1];\n this.onTabClick.emit(tabIndex);\n }\n\n ngAfterViewInit(): void {\n this.renderer.setAttribute(this.nativeElement, 'role', 'tab');\n this.renderer.setAttribute(this.nativeElement, 'aria-selected', 'false');\n this.renderer.setAttribute(this.nativeElement, 'tabindex', '-1');\n }\n}\n\n@Directive({\n selector: 'bao-panel, [bao-panel]',\n exportAs: 'baoPanel',\n host: {\n class: 'bao-panel'\n }\n})\nexport class BaoTabPanel implements AfterViewInit {\n constructor(\n private renderer: Renderer2,\n private elementRef: ElementRef<HTMLElement>\n ) {}\n\n get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n this.renderer.setAttribute(this.nativeElement, 'role', 'tabpanel');\n this.renderer.setAttribute(this.nativeElement, 'hidden', 'true');\n this.renderer.setAttribute(this.nativeElement, 'tabindex', '0');\n this.renderer.setAttribute(this.nativeElement, 'aria-expanded', 'false');\n }\n}\n\n@Component({\n selector: 'bao-tablist, [bao-tablist]',\n templateUrl: './tabs.component.html',\n styleUrls: ['./tabs.component.scss'],\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'bao-tablist',\n '[class.bao-tablist-small]': 'size === \"small\"',\n '[class.bao-tablist-medium]': 'size === \"medium\"',\n '[class.bao-tablist-large]': 'size === \"large\"'\n }\n})\nexport class BaoTablistComponent\n implements AfterViewInit, AfterContentInit, OnDestroy\n{\n @ContentChildren(BaoTabHeader) tabHeaders: QueryList<BaoTabHeader>;\n\n /**\n * Size of the tabs displayed\n */\n @Input() public size: 'small' | 'medium' | 'large' = 'large';\n\n /**\n * Optionnal value to be used as aria-label property on tablist component\n */\n @Input() public ariaLabel = 'onglets';\n\n /**\n * Emits the index of the new active tab\n */\n @Output() public activeTabChange: EventEmitter<string> =\n new EventEmitter<string>();\n\n /**\n * Index of the tab that is currently active\n */\n private activeTabIndex: string;\n\n /**\n * Unique ID for every instance of BaoTablist component\n */\n private uniqueId: string;\n\n constructor(\n private renderer: Renderer2,\n private elementRef: ElementRef<HTMLElement>\n ) {\n this.uniqueId = `bao-tablist-${tabsNextUniqueId++}`;\n }\n\n get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n get tabs(): HTMLCollection {\n return this.elementRef.nativeElement.children;\n }\n\n @HostListener('window:keydown.arrowleft')\n leftKeyEvent() {\n if (document.activeElement.parentElement.id === this.uniqueId) {\n this.activeTabIndex = this.getNextActivableTabIndex(\n parseInt(this.activeTabIndex),\n false\n );\n this.changeActiveTab(this.activeTabIndex, true);\n this.activeTabChange.emit(this.activeTabIndex);\n }\n }\n\n @HostListener('window:keydown.arrowright')\n rightKeyEvent() {\n if (document.activeElement.parentElement.id === this.uniqueId) {\n this.activeTabIndex = this.getNextActivableTabIndex(\n parseInt(this.activeTabIndex),\n true\n );\n this.changeActiveTab(this.activeTabIndex, true);\n this.activeTabChange.emit(this.activeTabIndex);\n }\n }\n\n /**\n * Makes the focus visible on tab header when changing from mouse to keyboard navigation\n */\n @HostListener('window:keydown.tab')\n tabKeyEvent() {\n if (document.activeElement.parentElement.id === this.uniqueId) {\n this.renderer.addClass(this.tabs[this.activeTabIndex], 'focus-visible');\n }\n }\n\n /**\n * Makes the focus visible on tab header when changing from mouse to keyboard navigation\n */\n @HostListener('window:keydown.shift.tab')\n tabShiftKeyEvent() {\n if (document.activeElement.parentElement.id === this.uniqueId) {\n this.renderer.addClass(this.tabs[this.activeTabIndex], 'focus-visible');\n }\n }\n\n ngAfterViewInit(): void {\n this.setTablistAttributes();\n if (this.nativeElement.childElementCount) {\n this.setInitialActiveTab();\n }\n }\n\n ngAfterContentInit(): void {\n this.tabHeaders.forEach((tab: BaoTabHeader) => {\n tab.onTabClick.subscribe((index: string) => {\n this.renderer.removeClass(this.tabs[index], 'focus-visible');\n this.activeTabIndex = index;\n this.changeActiveTab(index, false);\n this.activeTabChange.emit(index);\n });\n });\n }\n\n ngOnDestroy(): void {\n this.tabHeaders.forEach((tab: BaoTabHeader) => {\n tab.onTabClick.unsubscribe();\n });\n }\n\n private setTablistAttributes(): void {\n this.renderer.setAttribute(this.nativeElement, 'role', 'tablist');\n this.renderer.setAttribute(\n this.nativeElement,\n 'aria-label',\n this.ariaLabel\n );\n this.renderer.setProperty(this.nativeElement, 'id', this.uniqueId);\n }\n\n private setInitialActiveTab(): void {\n const firstTabIndex = Array.from(this.tabs).findIndex(\n (tab: HTMLElement) => !tab.attributes['disabled']\n );\n this.activeTabIndex = firstTabIndex.toString();\n this.renderer.setAttribute(\n this.tabs[firstTabIndex],\n 'aria-selected',\n 'true'\n );\n this.renderer.addClass(this.tabs[firstTabIndex], 'active');\n this.renderer.addClass(this.tabs[firstTabIndex], 'focus-visible');\n this.renderer.removeAttribute(this.tabs[firstTabIndex], 'tabindex');\n }\n\n private changeActiveTab(\n newActiveTabIndex: string,\n isFocusVisible: boolean\n ): void {\n Array.from(this.tabs).forEach((tab: HTMLElement) => {\n if (tab.id === `bao-tab-${newActiveTabIndex}`) {\n if (isFocusVisible) {\n this.renderer.addClass(tab, 'focus-visible');\n }\n this.renderer.setAttribute(tab, 'aria-selected', 'true');\n this.renderer.addClass(tab, 'active');\n this.renderer.removeAttribute(tab, 'tabindex');\n tab.focus();\n } else {\n this.renderer.setAttribute(tab, 'aria-selected', 'false');\n this.renderer.removeClass(tab, 'active');\n this.renderer.setAttribute(tab, 'tabindex', '-1');\n this.renderer.removeClass(tab, 'focus-visible');\n }\n });\n }\n\n /**\n * Finds the next activable tab index when navigating with left and right arrow keys\n * @param currentIndex Tab index which currently has focus\n * @param isRight Whether the tab navigation is going in the right direction or not\n * @returns Index of the new tab that will receive focus\n */\n private getNextActivableTabIndex(\n currentIndex: number,\n isRight: boolean\n ): string {\n const nextIndex = isRight ? currentIndex + 1 : currentIndex - 1;\n const nextIndexInTablist =\n ((nextIndex % this.tabs.length) + this.tabs.length) % this.tabs.length;\n if (this.tabs[nextIndexInTablist].attributes['disabled']) {\n return this.getNextActivableTabIndex(nextIndexInTablist, isRight);\n }\n return nextIndexInTablist.toString();\n }\n}\n\n@Directive({\n selector: 'bao-tabs, [bao-tabs]',\n exportAs: 'baoTabs',\n host: {\n class: 'bao-tabs'\n }\n})\nexport class BaoTabsContainer\n implements AfterViewInit, AfterContentInit, OnDestroy\n{\n @ContentChild(BaoTablistComponent) tablist: BaoTablistComponent;\n\n private panelIdPrefix = 'bao-panel-';\n private tabIdPrefix = 'bao-tab-';\n\n constructor(\n private renderer: Renderer2,\n private elementRef: ElementRef<HTMLElement>\n ) {}\n\n get tabs(): HTMLCollection {\n return this.elementRef.nativeElement.querySelector('.bao-tablist').children;\n }\n\n get panels(): NodeListOf<Element> {\n return this.elementRef.nativeElement.querySelectorAll('.bao-panel');\n }\n\n ngAfterViewInit(): void {\n this.setInitialActivePanel();\n Array.from(this.tabs).forEach((tab: HTMLElement, idx) => {\n const tabId = `${this.tabIdPrefix}${idx}`;\n const panelId = `${this.panelIdPrefix}${idx}`;\n this.renderer.setProperty(tab, 'id', tabId);\n this.renderer.setProperty(this.panels[idx], 'id', panelId);\n this.renderer.setAttribute(tab, 'aria-controls', panelId);\n this.renderer.setAttribute(this.panels[idx], 'aria-labelledby', tabId);\n });\n }\n\n ngAfterContentInit(): void {\n this.tablist.activeTabChange.subscribe((index: string) =>\n this.changeActivePanel(index)\n );\n }\n\n ngOnDestroy(): void {\n this.tablist.activeTabChange.unsubscribe();\n }\n\n private setInitialActivePanel(): void {\n const firstTabIndex = Array.from(this.tabs).findIndex(\n (tab: HTMLElement) => !tab.attributes['disabled']\n );\n this.renderer.removeAttribute(this.panels[firstTabIndex], 'hidden');\n this.renderer.setAttribute(\n this.panels[firstTabIndex],\n 'aria-expanded',\n 'true'\n );\n }\n\n private changeActivePanel(newActiveId: string): void {\n this.panels.forEach((panel: Element) => {\n if (panel.id === `${this.panelIdPrefix}${newActiveId}`) {\n this.renderer.removeAttribute(panel, 'hidden');\n this.renderer.setAttribute(panel, 'aria-expanded', 'true');\n } else {\n this.renderer.setAttribute(panel, 'hidden', 'true');\n this.renderer.setAttribute(panel, 'aria-expanded', 'false');\n }\n });\n }\n}\n","<ng-content></ng-content>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport {\n BaoTablistComponent,\n BaoTabHeader,\n BaoTabPanel,\n BaoTabsContainer\n} from './tabs.component';\n\nconst TABS_DIRECTIVES = [\n BaoTabsContainer,\n BaoTablistComponent,\n BaoTabHeader,\n BaoTabPanel\n];\n\n@NgModule({\n imports: [CommonModule],\n declarations: [TABS_DIRECTIVES],\n exports: [TABS_DIRECTIVES]\n})\nexport class BaoTabsModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './module';\nexport * from './tabs.component';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\n\nimport { ViewContainerRef, Injector } from '@angular/core';\nimport { Direction } from '@angular/cdk/bidi';\nimport { ScrollStrategy } from '@angular/cdk/overlay';\n\nexport enum eModalDesktopWidthSize {\n SMALL = 'bao-modal-sm', // 500px\n MEDIUM = 'bao-modal-md', // 800px\n LARGE = 'bao-modal-lg' // Full width minus 32px (global margin : left and rigth)\n}\n\nexport enum eModalMobileWidthSize {\n FULL = 'bao-modal-mobil-full', // Full width on mobile screen\n COMPACT = 'bao-modal-mobil-compact' // 300px\n}\n\nexport interface BaoModalConfig {\n size?: eModalDesktopWidthSize;\n mobileSize?: eModalMobileWidthSize;\n data?: unknown;\n ariaLabelledBy?: string;\n}\n\n/** Options for where to set focus to automatically on dialog open */\nexport type AutoFocusTarget = 'dialog' | 'first-tabbable' | 'first-heading';\n\n/** Valid ARIA roles for a dialog element. */\nexport type ModalRole = 'dialog' | 'alertdialog';\n\n/** Possible overrides for a dialog's position. */\nexport interface ModalPosition {\n /** Override for the dialog's top position. */\n top?: string;\n\n /** Override for the dialog's bottom position. */\n bottom?: string;\n\n /** Override for the dialog's left position. */\n left?: string;\n\n /** Override for the dialog's right position. */\n right?: string;\n}\n\n/**\n * Configuration for opening a modal dialog with the BaoModal service.\n */\nexport class BaoModalInitialConfig<D = unknown> {\n /**\n * Where the attached component should live in Angular's *logical* component tree.\n * This affects what is available for injection and the change detection order for the\n * component instantiated inside of the dialog. This does not affect where the dialog\n * content will be rendered.\n */\n viewContainerRef?: ViewContainerRef;\n\n /**\n * Injector used for the instantiation of the component to be attached. If provided,\n * takes precedence over the injector indirectly provided by `ViewContainerRef`.\n */\n injector?: Injector;\n\n /** ID for the dialog. If omitted, a unique one will be generated. */\n id?: string;\n\n /** The ARIA role of the dialog element. */\n role?: ModalRole = 'dialog';\n\n /** Custom class for the overlay pane. */\n panelClass?: string | string[] = '';\n\n /** Whether the dialog has a backdrop. */\n hasBackdrop?: boolean = true;\n\n /** Custom class for the backdrop. */\n backdropClass?: string | string[] = '';\n\n /** Whether the user can use escape or clicking on the backdrop to close the modal. */\n disableClose?: boolean = false;\n\n /** Width of the dialog. */\n width?: string = '';\n\n /** Height of the dialog. */\n height?: string = '';\n\n /** Min-width of the dialog. If a number is provided, assumes pixel units. */\n minWidth?: number | string;\n\n /** Min-height of the dialog. If a number is provided, assumes pixel units. */\n minHeight?: number | string;\n\n /** Max-width of the dialog. If a number is provided, assumes pixel units. Defaults to 80vw. */\n maxWidth?: number | string = '80vw';\n\n /** Max-height of the dialog. If a number is provided, assumes pixel units. */\n maxHeight?: number | string;\n\n /** Position overrides. */\n position?: ModalPosition;\n\n /** Data being injected into the child component. */\n data?: D | null = null;\n\n /** Layout direction for the dialog's content. */\n direction?: Direction;\n\n /** ID of the element that describes the dialog. */\n ariaDescribedBy?: string | null = null;\n\n /** ID of the element that labels the dialog. */\n ariaLabelledBy?: string | null = null;\n\n /** Aria label to assign to the dialog element. */\n ariaLabel?: string | null = null;\n\n /**\n * Where the dialog should focus on open.\n */\n autoFocus?: AutoFocusTarget | string = 'first-tabbable';\n\n /**\n * Whether the dialog should restore focus to the\n * previously-focused element, after it's closed.\n */\n restoreFocus?: boolean = true;\n\n /** Whether to wait for the opening animation to finish before trapping focus. */\n delayFocusTrap?: boolean = true;\n\n /** Scroll strategy to be used for the dialog. */\n scrollStrategy?: ScrollStrategy;\n\n /**\n * Whether the dialog should close when the user goes backwards/forwards in history.\n * Note that this usually doesn't include clicking on links (unless the user is using\n * the `HashLocationStrategy`).\n */\n closeOnNavigation?: boolean = true;\n}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport {\n FocusMonitor,\n FocusOrigin,\n ConfigurableFocusTrap,\n ConfigurableFocusTrapFactory,\n InteractivityChecker\n} from '@angular/cdk/a11y';\nimport { _getFocusedElementPierceShadowDom } from '@angular/cdk/platform';\nimport {\n BasePortalOutlet,\n CdkPortalOutlet,\n ComponentPortal,\n TemplatePortal\n} from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n EventEmitter,\n Inject,\n NgZone,\n Optional,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { BaoModalInitialConfig } from './modal-config';\n\n/** Event that captures the state of modal container animations. */\ninterface DialogAnimationEvent {\n state: 'opened' | 'opening' | 'closing' | 'closed';\n totalTime: number;\n}\n\n/**\n * Throws an exception for the case when a ComponentPortal is\n * attached to a DomPortalOutlet without an origin.\n * @docs-private\n */\nexport function throwBaoModalContentAlreadyAttachedError() {\n throw Error(\n 'Attempting to attach modal content after content is already attached'\n );\n}\n\n/**\n * Base class for the `BaoModalContainer`. The base class does not implement\n * animations as these are left to implementers of the modal container.\n */\n@Directive()\nexport abstract class _BaoModalContainerBase extends BasePortalOutlet {\n /** The portal outlet inside of this container into which the modal content will be loaded. */\n @ViewChild(CdkPortalOutlet, { static: true }) _portalOutlet: CdkPortalOutlet;\n\n /** Emits when an animation state changes. */\n public _animationStateChanged = new EventEmitter<DialogAnimationEvent>();\n\n /**\n * Type of interaction that led to the modal being closed. This is used to determine\n * whether the focus style will be applied when returning focus to its original location\n * after the modal is closed.\n */\n public _closeInteractionType: FocusOrigin | null = null;\n\n /** ID of the element that should be considered as the modal's label. */\n public _ariaLabelledBy: string | null;\n\n /** ID for the container DOM element. */\n public _id: string;\n\n protected _document: Document;\n\n /** The class that traps and manages focus within the modal. */\n private _focusTrap: ConfigurableFocusTrap;\n\n /** Element that was focused before the modal was opened. Save this to restore upon close. */\n private _elementFocusedBeforeDialogWasOpened: HTMLElement | null = null;\n\n constructor(\n protected _elementRef: ElementRef,\n protected _focusTrapFactory: ConfigurableFocusTrapFactory,\n protected _changeDetectorRef: ChangeDetectorRef,\n @Optional() @Inject(DOCUMENT) _document: any,\n /** The modal configuration. */\n public _config: BaoModalInitialConfig,\n private readonly _interactivityChecker: InteractivityChecker,\n private readonly _ngZone: NgZone,\n private _focusMonitor?: FocusMonitor\n ) {\n super();\n this._ariaLabelledBy = _config.ariaLabelledBy || null;\n this._document = _document;\n }\n\n /** Initializes the modal container with the attached content. */\n public _initializeWithAttachedContent() {\n this._setupFocusTrap();\n // Save the previously focused element. This element will be re-focused\n // when the modal closes.\n this._capturePreviouslyFocusedElement();\n }\n\n /**\n * Attach a ComponentPortal as content to this modal container.\n */\n public attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n return this._portalOutlet.attachComponentPortal(portal);\n }\n\n /**\n * Attach a TemplatePortal as content to this modal container.\n */\n public attachTemplatePortal<C>(\n portal: TemplatePortal<C>\n ): EmbeddedViewRef<C> {\n return this._portalOutlet.attachTemplatePortal(portal);\n }\n\n /** Moves focus back into the modal if it was moved out. */\n public async _recaptureFocus() {\n if (!this._containsFocus()) {\n await this._trapFocus();\n }\n }\n\n /**\n * Moves the focus inside the focus trap. When autoFocus is not set to 'modal', if focus\n * cannot be moved then focus will go to the modal container.\n */\n protected async _trapFocus() {\n const element = this._elementRef.nativeElement;\n // If were to attempt to focus immediately, then the content of the modal would not yet be\n // ready in instances where change detection has to run first. To deal with this, we simply\n // wait for the microtask queue to be empty when setting focus when autoFocus isn't set to\n // modal. If the element inside the modal can't be focused, then the container is focused\n // so the user can't tab into other elements behind it.\n switch (this._config.autoFocus) {\n case 'modal':\n // Ensure that focus is on the modal container. It's possible that a different\n // component tried to move focus while the open animation was running. See:\n // https://github.com/angular/components/issues/16215. Note that we only want to do this\n // if the focus isn't inside the modal already, because it's possible that the consumer\n // turned off `autoFocus` in order to move focus themselves.\n if (!this._containsFocus()) {\n element.focus();\n }\n break;\n case 'first-tabbable':\n // If we weren't able to find a focusable element in the modal, then focus the modal\n // container instead.\n const focusedSuccessfully =\n await this._focusTrap.focusInitialElementWhenReady();\n if (!focusedSuccessfully) {\n this._focusDialogContainer();\n }\n break;\n case 'first-heading':\n this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role=\"heading\"]');\n break;\n default:\n this._focusByCssSelector(this._config.autoFocus);\n break;\n }\n }\n\n /** Restores focus to the element that was focused before the modal opened. */\n protected _restoreFocus() {\n const previousElement = this._elementFocusedBeforeDialogWasOpened;\n\n // We need the extra check, because IE can set the `activeElement` to null in some cases.\n if (\n this._config.restoreFocus &&\n previousElement &&\n typeof previousElement.focus === 'function'\n ) {\n const activeElement = _getFocusedElementPierceShadowDom();\n const element = this._elementRef.nativeElement;\n\n // Make sure that focus is still inside the modal or is on the body (usually because a\n // non-focusable element like the backdrop was clicked) before moving it. It's possible that\n // the consumer moved it themselves before the animation was done, in which case we shouldn't\n // do anything.\n if (\n !activeElement ||\n activeElement === this._document.body ||\n activeElement === element ||\n element.contains(activeElement)\n ) {\n if (this._focusMonitor) {\n this._focusMonitor.focusVia(\n previousElement,\n this._closeInteractionType\n );\n this._closeInteractionType = null;\n } else {\n previousElement.focus();\n }\n }\n }\n\n if (this._focusTrap) {\n this._focusTrap.destroy();\n }\n }\n\n /**\n * Focuses the provided element. If the element is not focusable, it will add a tabIndex\n * attribute to forcefully focus it. The attribute is removed after focus is moved.\n */\n private _forceFocus(element: HTMLElement, options?: FocusOptions) {\n if (!this._interactivityChecker.isFocusable(element)) {\n element.tabIndex = -1;\n // The tabindex attribute should be removed to avoid navigating to that element again\n this._ngZone.runOutsideAngular(() => {\n element.addEventListener('blur', () =>\n element.removeAttribute('tabindex')\n );\n element.addEventListener('mousedown', () =>\n element.removeAttribute('tabindex')\n );\n });\n }\n element.focus(options);\n }\n\n /**\n * Focuses the first element that matches the given selector within the focus trap.\n */\n private _focusByCssSelector(selector: string, options?: FocusOptions) {\n const elementToFocus = this._elementRef.nativeElement.querySelector(\n selector\n ) as HTMLElement | null;\n if (elementToFocus) {\n this._forceFocus(elementToFocus, options);\n }\n }\n\n /** Sets up the focus trap. */\n private _setupFocusTrap() {\n this._focusTrap = this._focusTrapFactory.create(\n this._elementRef.nativeElement\n );\n }\n\n /** Captures the element that was focused before the modal was opened. */\n private _capturePreviouslyFocusedElement() {\n if (this._document) {\n this._elementFocusedBeforeDialogWasOpened =\n _getFocusedElementPierceShadowDom();\n }\n }\n\n /** Focuses the modal container. */\n private _focusDialogContainer() {\n // Note that there is no focus method when rendering on the server.\n if (this._elementRef.nativeElement.focus) {\n this._elementRef.nativeElement.focus();\n }\n }\n\n /** Returns whether focus is inside the modal. */\n private _containsFocus() {\n const element = this._elementRef.nativeElement as HTMLElement;\n const activeElement = _getFocusedElementPierceShadowDom();\n return element === activeElement || element.contains(activeElement);\n }\n\n /** Starts the modal exit animation. */\n abstract _startExitAnimation(): void;\n abstract _startOpenAnimation(): void;\n}\n\n@Component({\n selector: 'bao-modal-container',\n templateUrl: 'modal-container.component.html',\n styleUrls: ['modal-container.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Default,\n host: {\n class: 'bao-modal-container',\n tabindex: '-1',\n 'aria-modal': 'true',\n '[id]': '_id',\n '[attr.role]': '_config.role',\n '[attr.aria-labelledby]': '_config.ariaLabel ? null : _ariaLabelledBy',\n '[attr.aria-label]': '_config.ariaLabel',\n '[attr.aria-describedby]': '_config.ariaDescribedBy || null'\n }\n})\nexport class BaoModalContainer extends _BaoModalContainerBase {\n /** State of the modal animation. */\n _state: 'void' | 'enter' | 'exit' = 'enter';\n\n public _startOpenAnimation() {\n this._animationStateChanged.emit({ state: 'opening', totalTime: 20 });\n void Promise.resolve().then(() => this._finishDialogOpen());\n }\n\n /** Starts the modal exit animation. */\n public _startExitAnimation(): void {\n this._animationStateChanged.emit({ state: 'closed', totalTime: 20 });\n }\n\n private _finishDialogOpen() {\n this._openAnimationDone(20);\n }\n\n private _openAnimationDone(totalTime: number) {\n if (this._config.delayFocusTrap) {\n void this._trapFocus();\n }\n this._animationStateChanged.next({ state: 'opened', totalTime });\n }\n}\n","<ng-template cdkPortalOutlet></ng-template>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { FocusOrigin } from '@angular/cdk/a11y';\nimport { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';\nimport { GlobalPositionStrategy, OverlayRef } from '@angular/cdk/overlay';\nimport { filter, Observable, Subject, take } from 'rxjs';\nimport { ModalPosition } from './modal-config';\nimport { _BaoModalContainerBase } from './modal-container';\n\n// Counter for unique modal ids.\nlet uniqueId = 0;\n\n/** Possible states of the lifecycle of a modal. */\nexport const enum BaoModalState {\n OPEN,\n CLOSING,\n CLOSED\n}\n\n/**\n * Reference to a modal opened via the BaoModalService.\n */\nexport class BaoModalRef<T, R = unknown> {\n /** The instance of component opened into the modal. */\n public componentInstance: T;\n\n /** Whether the user is allowed to close the modal. */\n public disableClose: boolean | undefined =\n this._containerInstance._config.disableClose;\n\n /** Subject for notifying the user that the modal has finished opening. */\n private readonly _afterOpened = new Subject<void>();\n\n /** Subject for notifying the user that the modal has finished closing. */\n private readonly _afterClosed = new Subject<R | undefined>();\n\n /** Subject for notifying the user that the modal has started closing. */\n private readonly _beforeClosed = new Subject<R | undefined>();\n\n /** Result to be passed to afterClosed. */\n private _result: R | undefined;\n\n /** Handle to the timeout that's running as a fallback in case the exit animation doesn't fire. */\n private _closeFallbackTimeout: any;\n\n /** Current state of the modal. */\n private _state = BaoModalState.OPEN;\n\n constructor(\n private _overlayRef: OverlayRef,\n public _containerInstance: _BaoModalContainerBase,\n /** Id of the modal. */\n readonly id: string = `bao-modal-${uniqueId++}`\n ) {\n // Pass the id along to the container.\n _containerInstance._id = id;\n\n // Emit when opening animation completes\n _containerInstance._animationStateChanged\n .pipe(\n filter(event => event.state === 'opened'),\n take(1)\n )\n .subscribe(() => {\n this._afterOpened.next();\n this._afterOpened.complete();\n });\n\n // Dispose overlay when closing animation is complete\n _containerInstance._animationStateChanged\n .pipe(\n filter(event => event.state === 'closed'),\n take(1)\n )\n .subscribe(() => {\n clearTimeout(this._closeFallbackTimeout);\n this._finishModalClose();\n });\n\n _overlayRef.detachments().subscribe(() => {\n this._beforeClosed.next(this._result);\n this._beforeClosed.complete();\n this._afterClosed.next(this._result);\n this._afterClosed.complete();\n this.componentInstance = null;\n this._overlayRef.dispose();\n });\n\n _overlayRef\n .keydownEvents()\n .pipe(\n filter(event => {\n return (\n event.keyCode === ESCAPE &&\n !this.disableClose &&\n !hasModifierKey(event)\n );\n })\n )\n .subscribe(event => {\n event.preventDefault();\n _closeModalVia(this, 'keyboard');\n });\n\n _overlayRef.backdropClick().subscribe(async () => {\n if (this.disableClose) {\n await this._containerInstance._recaptureFocus();\n } else {\n _closeModalVia(this, 'mouse');\n }\n });\n }\n\n /**\n * Close the modal.\n * @param modalResult Optional result to return to the modal opener.\n */\n public close(modalResult?: R): void {\n this._result = modalResult;\n\n // Transition the backdrop in parallel to the modal.\n this._containerInstance._animationStateChanged\n .pipe(\n filter(event => event.state === 'closing'),\n take(1)\n )\n .subscribe(event => {\n this._beforeClosed.next(modalResult);\n this._beforeClosed.complete();\n this._overlayRef.detachBackdrop();\n // The logic that disposes of the overlay depends on the exit animation completing, however\n // it isn't guaranteed if the parent view is destroyed while it's running. Add a fallback\n // timeout which will clean everything up if the animation hasn't fired within the specified\n // amount of time plus 100ms. We don't need to run this outside the NgZone, because for the\n // vast majority of cases the timeout will have been cleared before it has the chance to fire.\n this._closeFallbackTimeout = setTimeout(\n () => this._finishModalClose(),\n (event.totalTime as number) + 100\n );\n });\n\n this._state = BaoModalState.CLOSING;\n this._containerInstance._startExitAnimation();\n }\n\n public startOpenAnimation(): void {\n this._containerInstance._startOpenAnimation();\n }\n\n /**\n * Gets an observable that is notified when the modal is finished opening.\n */\n public afterOpened(): Observable<void> {\n return this._afterOpened;\n }\n\n /**\n * Gets an observable that is notified when the modal is finished closing.\n */\n public afterClosed(): Observable<R | undefined> {\n return this._afterClosed;\n }\n\n /**\n * Gets an observable that is notified when the modal has started closing.\n */\n public beforeClosed(): Observable<R | undefined> {\n return this._beforeClosed;\n }\n\n /**\n * Gets an observable that emits when the overlay's backdrop has been clicked.\n */\n public backdropClick(): Observable<MouseEvent> {\n return this._overlayRef.backdropClick();\n }\n\n /**\n * Gets an observable that emits when keydown events are targeted on the overlay.\n */\n public keydownEvents(): Observable<KeyboardEvent> {\n return this._overlayRef.keydownEvents();\n }\n\n /**\n * Updates the dialog's position.\n */\n public updatePosition(position?: ModalPosition): this {\n const strategy = this._getPositionStrategy();\n\n if (position && (position.left || position.right)) {\n position.left\n ? strategy.left(position.left)\n : strategy.right(position.right);\n } else {\n strategy.centerHorizontally();\n }\n\n if (position && (position.top || position.bottom)) {\n position.top\n ? strategy.top(position.top)\n : strategy.bottom(position.bottom);\n } else {\n strategy.centerVertically();\n }\n\n this._overlayRef.updatePosition();\n\n return this;\n }\n\n /**\n * Updates the modal's width and height.\n */\n public updateSize(width = '', height = ''): this {\n this._overlayRef.updateSize({ width, height });\n this._overlayRef.updatePosition();\n return this;\n }\n\n /** Add a CSS class or an array of classes to the overlay pane. */\n public addPanelClass(classes: string | string[]): this {\n this._overlayRef.addPanelClass(classes);\n return this;\n }\n\n /** Remove a CSS class or an array of classes from the overlay pane. */\n public removePanelClass(classes: string | string[]): this {\n this._overlayRef.removePanelClass(classes);\n return this;\n }\n\n /** Gets the current state of the modal's lifecycle. */\n public getState(): BaoModalState {\n return this._state;\n }\n\n /**\n * Finishes the modal close by updating the state of the modal\n * and disposing the overlay.\n */\n private _finishModalClose() {\n this._state = BaoModalState.CLOSED;\n this._overlayRef.dispose();\n }\n\n /** Fetches the position strategy object from the overlay ref. */\n private _getPositionStrategy(): GlobalPositionStrategy {\n return this._overlayRef.getConfig()\n .positionStrategy as GlobalPositionStrategy;\n }\n}\n\n/**\n * Closes the modal with the specified interaction type. This is currently not part of\n * `BaoModalRef` as that would conflict with custom modal ref mocks provided in tests.\n * More details. See: https://github.com/angular/components/pull/9257#issuecomment-651342226.\n */\nexport function _closeModalVia<R>(\n ref: BaoModalRef<R>,\n interactionType: FocusOrigin,\n result?: R\n) {\n // Some mock modal ref instances in tests do not have the `_containerInstance` property.\n // For those, we keep the behavior as is and do not deal with the interaction type.\n if (ref._containerInstance !== undefined) {\n ref._containerInstance._closeInteractionType = interactionType;\n }\n return ref.close(result);\n}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\n\n/* eslint-disable @typescript-eslint/no-unsafe-return*/\nimport {\n Directive,\n Injectable,\n InjectionToken,\n Injector,\n OnDestroy,\n Optional,\n SkipSelf,\n StaticProvider,\n TemplateRef,\n Type\n} from '@angular/core';\nimport { defer, Observable, startWith, Subject, Subscription } from 'rxjs';\nimport { BaoModalContainer, _BaoModalContainerBase } from './modal-container';\nimport { BaoModalRef } from './modal-ref';\nimport {\n BaoModalConfig,\n BaoModalInitialConfig,\n eModalDesktopWidthSize,\n eModalMobileWidthSize\n} from './modal-config';\nimport {\n ComponentType,\n Overlay,\n OverlayConfig,\n OverlayContainer,\n OverlayRef\n} from '@angular/cdk/overlay';\nimport { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\n\n/** Injection token that can be used to access the data that was passed in to a modal. */\nexport const BAO_MODAL_DATA = new InjectionToken<unknown>('BaoModalData');\n\n@Directive()\nexport abstract class BaoModalBase<C extends _BaoModalContainerBase>\n implements OnDestroy\n{\n public readonly afterAllClosed: Observable<void> = defer(() =>\n this.openModals.length\n ? this.getAfterAllClosed()\n : this.getAfterAllClosed().pipe(startWith(undefined))\n );\n\n private _openModalsAtThisLevel: BaoModalRef<unknown>[] = [];\n private readonly _afterAllClosedAtThisLevel = new Subject<void>();\n private readonly _afterOpenedAtThisLevel = new Subject<\n BaoModalRef<unknown>\n >();\n private _ariaHiddenElements = new Map<Element, string | null>();\n private _modalAnimatingOpen = false;\n private _animationStateSubscriptions: Subscription;\n private _lastModalRef: BaoModalRef<unknown>;\n\n constructor(\n private _overlay: Overlay,\n private _injector: Injector,\n private _parentModal: BaoModalBase<C> | undefined,\n private _overlayContainer: OverlayContainer,\n private _modalRefConstructor: Type<BaoModalRef<unknown>>,\n private _modalContainerType: Type<C>,\n private _modalDataToken: InjectionToken<unknown>\n ) {}\n\n /** Keeps track of the currently-open modals. */\n public get openModals(): BaoModalRef<unknown>[] {\n return this._parentModal\n ? this._parentModal.openModals\n : this._openModalsAtThisLevel;\n }\n\n /** Stream that emits when a modal has been opened. */\n public get afterOpened(): Subject<BaoModalRef<unknown>> {\n // Maybe typescript version difference\n return this._parentModal\n ? this._parentModal.afterOpened\n : this._afterOpenedAtThisLevel;\n }\n\n public getAfterAllClosed(): Subject<void> {\n const parent = this._parentModal;\n return parent\n ? parent.getAfterAllClosed()\n : this._afterAllClosedAtThisLevel;\n }\n\n /**\n * Opens a modal modal containing the given template.\n */\n public open<T>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n config?: BaoModalConfig\n ): BaoModalRef<unknown> {\n const conf = this._applyConfigDefaults(config, new BaoModalInitialConfig());\n\n // If there is a modal that is currently animating open, return the MatmodalRef of that modal\n if (this._modalAnimatingOpen) {\n return this._lastModalRef;\n }\n\n const overlayRef = this._createOverlay(conf);\n const modalContainer = this._attachModalContainer(overlayRef, conf);\n\n const modalRef = this._attachModalContent<T>(\n componentOrTemplateRef,\n modalContainer,\n overlayRef,\n conf\n );\n this._lastModalRef = modalRef;\n\n // If this is the first modal that we're opening, hide all the non-overlay content.\n if (!this.openModals.length) {\n this._hideNonModalContentFromAssistiveTechnology();\n }\n\n this.openModals.push(modalRef);\n modalRef.afterClosed().subscribe(() => this._removeOpenModal(modalRef));\n this.afterOpened.next(modalRef);\n\n // Notify the modal container that the content has been attached.\n modalContainer._initializeWithAttachedContent();\n\n return modalRef;\n }\n\n /**\n * Closes all of the currently-open modals.\n */\n public closeAll(): void {\n this._closeModals(this.openModals);\n }\n\n /**\n * Finds an open modal by its id.\n */\n public getModalById(id: string): BaoModalRef<unknown> | undefined {\n return this.openModals.find(modal => modal.id === id);\n }\n\n public ngOnDestroy() {\n // Only close the modals at this level on destroy\n // since the parent service may still be active.\n this._closeModals(this._openModalsAtThisLevel);\n this._afterAllClosedAtThisLevel.complete();\n this._afterOpenedAtThisLevel.complete();\n // Clean up any subscriptions to modals that never finished opening.\n if (this._animationStateSubscriptions) {\n this._animationStateSubscriptions.unsubscribe();\n }\n }\n\n /**\n * Creates the overlay into which the modal will be loaded.\n */\n private _createOverlay(config: BaoModalInitialConfig): OverlayRef {\n const overlayConfig = this._getOverlayConfig(config);\n return this._overlay.create(overlayConfig);\n }\n\n /**\n * Creates an overlay config from a modal config.\n */\n private _getOverlayConfig(config: BaoModalInitialConfig): OverlayConfig {\n const state = new OverlayConfig({\n positionStrategy: this._overlay.position().global(),\n scrollStrategy: this._overlay.scrollStrategies.block(),\n panelClass: config.panelClass,\n hasBackdrop: config.hasBackdrop,\n disposeOnNavigation: config.closeOnNavigation\n });\n\n if (config.backdropClass) {\n state.backdropClass = config.backdropClass;\n }\n\n return state;\n }\n\n /**\n * Attaches a modal container to a modal's already-created overlay.\n */\n private _attachModalContainer(\n overlay: OverlayRef,\n config: BaoModalInitialConfig\n ): C {\n const userInjector =\n config && config.viewContainerRef && config.viewContainerRef.injector;\n const injector = Injector.create({\n parent: userInjector || this._injector,\n providers: [{ provide: BaoModalInitialConfig, useValue: config }]\n });\n\n const containerPortal = new ComponentPortal(\n this._modalContainerType,\n config.viewContainerRef,\n injector\n );\n const containerRef = overlay.attach<C>(containerPortal);\n containerRef.instance._startOpenAnimation();\n\n return containerRef.instance;\n }\n\n /**\n * Attaches the user-provided component to the already-created modal container.\n */\n private _attachModalContent<T>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n modalContainer: C,\n overlayRef: OverlayRef,\n config: BaoModalInitialConfig\n ): BaoModalRef<unknown> {\n // Create a reference to the modal we're creating in order to give the user a handle\n // to modify and close it.\n const modalRef = new this._modalRefConstructor(\n overlayRef,\n modalContainer,\n config.id\n );\n\n if (componentOrTemplateRef instanceof TemplateRef) {\n modalContainer.attachTemplatePortal(\n new TemplatePortal(componentOrTemplateRef, null, <unknown>{\n $implicit: config.data,\n modalRef\n })\n );\n } else {\n const injector = this._createInjector(config, modalRef, modalContainer);\n const contentRef = modalContainer.attachComponentPortal<T>(\n new ComponentPortal(\n componentOrTemplateRef,\n config.viewContainerRef,\n injector\n )\n );\n modalRef.componentInstance = contentRef.instance;\n }\n\n modalRef\n .updateSize(config.width, config.height)\n .updatePosition(config.position);\n\n return modalRef;\n }\n\n /**\n * Creates a custom injector to be used inside the modal. This allows a component loaded inside\n * of a modal to close itself and, optionally, to return a value.\n */\n private _createInjector(\n config: BaoModalInitialConfig,\n modalRef: BaoModalRef<unknown>,\n modalContainer: C\n ): Injector {\n const userInjector =\n config && config.viewContainerRef && config.viewContainerRef.injector;\n\n // The modal container should be provided as the modal container and the modal's\n // content are created out of the same `ViewContainerRef` and as such, are siblings\n // for injector purposes. To allow the hierarchy that is expected, the modal\n // container is explicitly provided in the injector.\n const providers: StaticProvider[] = [\n { provide: this._modalContainerType, useValue: modalContainer },\n { provide: this._modalDataToken, useValue: config.data },\n { provide: this._modalRefConstructor, useValue: modalRef }\n ];\n\n return Injector.create({\n parent: userInjector || this._injector,\n providers\n });\n }\n\n /**\n * Removes a modal from the array of open modals.\n */\n private _removeOpenModal(modalRef: BaoModalRef<unknown>) {\n const index = this.openModals.indexOf(modalRef);\n\n if (index > -1) {\n this.openModals.splice(index, 1);\n\n // If all the modals were closed, remove/restore the `aria-hidden`\n // to a the siblings and emit to the `afterAllClosed` stream.\n if (!this.openModals.length) {\n this._ariaHiddenElements.forEach((previousValue, element) => {\n if (previousValue) {\n element.setAttribute('aria-hidden', previousValue);\n } else {\n element.removeAttribute('aria-hidden');\n }\n });\n\n this._ariaHiddenElements.clear();\n this.getAfterAllClosed().next();\n }\n }\n }\n\n /**\n * Hides all of the content that isn't an overlay from assistive technology.\n */\n private _hideNonModalContentFromAssistiveTechnology() {\n const overlayContainer = this._overlayContainer.getContainerElement();\n\n // Ensure that the overlay container is attached to the DOM.\n if (overlayContainer.parentElement) {\n const siblings = overlayContainer.parentElement.children;\n\n for (let i = siblings.length - 1; i > -1; i--) {\n const sibling = siblings[i];\n\n if (\n sibling !== overlayContainer &&\n sibling.nodeName !== 'SCRIPT' &&\n sibling.nodeName !== 'STYLE' &&\n !sibling.hasAttribute('aria-live')\n ) {\n this._ariaHiddenElements.set(\n sibling,\n sibling.getAttribute('aria-hidden')\n );\n sibling.setAttribute('aria-hidden', 'true');\n }\n }\n }\n }\n\n /** Closes all of the modals in an array. */\n private _closeModals(modals: BaoModalRef<unknown>[]) {\n let i = modals.length;\n while (i--) {\n modals[i].close();\n }\n }\n\n /**\n * Applies default options to the modal config.\n */\n private _applyConfigDefaults(\n config?: BaoModalConfig,\n defaultOptions?: BaoModalInitialConfig\n ): BaoModalInitialConfig {\n const desktopClass = config?.size || eModalDesktopWidthSize.SMALL;\n const mobilClass = config?.mobileSize || eModalMobileWidthSize.FULL;\n const data = config?.data || null;\n const ariaLabelledBy = config?.ariaLabelledBy || null;\n\n return {\n ...defaultOptions,\n ...{\n panelClass: [desktopClass, mobilClass],\n ariaLabelledBy,\n data\n }\n };\n }\n}\n\n/**\n * Service to open modal.\n */\n@Injectable()\nexport class BaoModal extends BaoModalBase<BaoModalContainer> {\n constructor(\n overlay: Overlay,\n injector: Injector,\n @Optional() @SkipSelf() parentModal: BaoModal,\n overlayContainer: OverlayContainer\n ) {\n super(\n overlay,\n injector,\n parentModal,\n overlayContainer,\n BaoModalRef,\n BaoModalContainer,\n BAO_MODAL_DATA\n );\n }\n}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\n\nimport {\n Directive,\n Input,\n OnChanges,\n OnInit,\n Optional,\n SimpleChanges,\n ElementRef\n} from '@angular/core';\nimport { BaoModal } from './modal';\nimport { _closeModalVia, BaoModalRef } from './modal-ref';\n\n/**\n * Button that will close the current dialog.\n */\n@Directive({\n selector: '[bao-modal-close], [baoModalClose]',\n exportAs: 'BaoModalClose',\n host: {\n '(click)': '_onButtonClick($event)',\n '[attr.aria-label]': 'ariaLabel || null',\n '[attr.type]': 'type'\n }\n})\nexport class BaoModalClose implements OnInit, OnChanges {\n /** Screenreader label for the button. */\n @Input('aria-label') ariaLabel: string;\n\n /** Default to \"button\" to prevents accidental form submits. */\n @Input() type: 'submit' | 'button' | 'reset' = 'button';\n\n /** Dialog close input. */\n @Input('bao-modal-close') dialogResult: unknown;\n\n @Input('baoModalClose') _baoModalClose: unknown;\n\n constructor(\n @Optional() public modalRef: BaoModalRef<unknown> | null,\n private _elementRef: ElementRef<HTMLElement>,\n private _dialog: BaoModal\n ) {}\n\n ngOnInit() {\n if (!this.modalRef) {\n // When this directive is included in a dialog via TemplateRef (rather than being\n // in a Component), the modalRef isn't available via injection because embedded\n // views cannot be given a custom injector. Instead, we look up the modalRef by\n // ID. This must occur in `onInit`, as the ID binding for the dialog container won't\n // be resolved at constructor time.\n this.modalRef =\n getClosestDialog(this._elementRef, this._dialog.openModals) || null;\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const proxiedChange =\n changes['_baoModalClose'] || changes['_baoModalCloseResult'];\n\n if (proxiedChange) {\n this.dialogResult = proxiedChange.currentValue;\n }\n }\n\n _onButtonClick(event: MouseEvent) {\n // Determinate the focus origin using the click event, because using the FocusMonitor will\n // result in incorrect origins. Most of the time, close buttons will be auto focused in the\n // dialog, and therefore clicking the button won't result in a focus change. This means that\n // the FocusMonitor won't detect any origin change, and will always output `program`.\n _closeModalVia(\n this.modalRef,\n event.screenX === 0 && event.screenY === 0 ? 'keyboard' : 'mouse',\n this.dialogResult\n );\n }\n}\n\n/**\n * Finds the closest BaoModalRef to an element by looking at the DOM.\n */\nfunction getClosestDialog(\n element: ElementRef<HTMLElement>,\n openDialogs: BaoModalRef<unknown>[]\n): BaoModalRef<unknown> | null {\n let parent: HTMLElement | null = element.nativeElement.parentElement;\n\n while (parent && !parent.classList.contains('bao-modal-container')) {\n parent = parent.parentElement;\n }\n\n return parent ? openDialogs.find(dialog => dialog.id === parent.id) : null;\n}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { BaoModal } from './modal';\nimport { BaoModalContainer } from './modal-container';\nimport { BaoModalClose } from './modal-directives';\n\nconst MODAL_DIRECTIVES = [BaoModalContainer, BaoModalClose];\n\n@NgModule({\n imports: [CommonModule, OverlayModule, PortalModule],\n declarations: MODAL_DIRECTIVES,\n exports: MODAL_DIRECTIVES,\n providers: [BaoModal]\n})\nexport class BaoModalModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\n\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n Renderer2,\n ViewEncapsulation\n} from '@angular/core';\n\nconst BAO_ICON = 'bao-icon';\nconst LINK_ELEMENT = 'a';\nconst HAS_LEFT_ICON = 'has-left-icon';\nconst HAS_RIGHT_ICON = 'has-right-icon';\nconst LIST_PARENT = 'bao-hyperlink-list-parent';\n\n@Component({\n selector: 'bao-hyperlink, [bao-hyperlink]',\n templateUrl: './hyperlink.component.html',\n styleUrls: ['./hyperlink.component.scss'],\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'bao-hyperlink',\n '[class.bao-hyperlink-medium]': 'size === \"medium\"',\n '[class.bao-hyperlink-small]': 'size === \"small\"',\n '[class.bao-hyperlink-extra-small]': 'size === \"extra-small\"'\n }\n})\nexport class BaoHyperlinkComponent implements AfterViewInit {\n /**\n * Size of the link when it's in a list.\n */\n @Input() public size?: 'extra-small' | 'small' | 'medium' = 'medium';\n\n constructor(\n private renderer: Renderer2,\n private elementRef: ElementRef<HTMLElement>\n ) {}\n\n get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n public ngAfterViewInit() {\n this.setIcon();\n this.addIconClass();\n }\n\n private setIcon() {\n const parentName = this.nativeElement.parentElement.localName;\n if (parentName === 'ul') {\n this.renderer.addClass(this.nativeElement.parentElement, LIST_PARENT);\n } else {\n // Icon in inline hyperlink must always be positioned after label.\n const children = Array.from(this.nativeElement.children);\n const iconIndex = children.findIndex(c => c.localName === BAO_ICON);\n if (iconIndex > -1) {\n const labelIndex = children.findIndex(\n c => c.localName === LINK_ELEMENT\n );\n // Set icon's size to match text's lineHeight.\n const lineHeight = getComputedStyle(children[labelIndex])['lineHeight'];\n this.renderer.setStyle(children[iconIndex], 'height', lineHeight);\n this.renderer.setStyle(children[iconIndex], 'width', lineHeight);\n if (iconIndex < labelIndex) {\n const iconElement = children[iconIndex];\n this.renderer.removeChild(this.nativeElement, children[iconIndex]);\n this.renderer.appendChild(this.nativeElement, iconElement);\n }\n }\n }\n }\n\n private addIconClass() {\n const children = Array.from(this.nativeElement.children);\n const iconIndex = children.findIndex(c => c.localName === BAO_ICON);\n if (iconIndex > -1) {\n const labelIndex = children.findIndex(c => c.localName === LINK_ELEMENT);\n const iconClass = iconIndex < labelIndex ? HAS_LEFT_ICON : HAS_RIGHT_ICON;\n this.renderer.addClass(this.nativeElement, iconClass);\n }\n }\n}\n","<ng-content></ng-content>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { BaoHyperlinkComponent } from './hyperlink.component';\n\nconst HYPERLINK_DIRECTIVES = [BaoHyperlinkComponent];\n\n@NgModule({\n imports: [CommonModule],\n declarations: [HYPERLINK_DIRECTIVES],\n exports: [HYPERLINK_DIRECTIVES]\n})\nexport class BaoHyperlinkModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\n\nexport * from './module';\nexport * from './hyperlink.component';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\n\nimport {\n ConnectedPosition,\n Overlay,\n OverlayConfig,\n OverlayRef\n} from '@angular/cdk/overlay';\nimport { DomPortal } from '@angular/cdk/portal';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n QueryList,\n Renderer2,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\n/**\n * Unique ID for each dropdown menu\n */\nlet dropdownMenuUniqueId = 0;\n@Directive({\n selector: 'bao-dropdown-menu-item, [bao-dropdown-menu-item]',\n host: {\n class: 'bao-dropdown-menu-item',\n '[class.bao-dropdown-menu-item-disabled]': 'disabled===true'\n }\n})\nexport class BaoDropdownMenuItem implements AfterViewInit, OnChanges {\n /**\n * Is the list item disabled\n */\n @Input() public disabled = false;\n\n /**\n * Emits when menu item is clicked\n */\n @Output() public itemClicked = new EventEmitter();\n\n constructor(\n private renderer: Renderer2,\n private elementRef: ElementRef<HTMLElement>,\n private _parent: BaoDropdownMenuComponent\n ) {}\n\n get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n @HostListener('window:keyup.space')\n spaceKeyEvent() {\n if (document.activeElement == this.nativeElement) {\n this.nativeElement.click();\n }\n }\n\n @HostListener('click', ['$event.target'])\n onClick(el: HTMLElement) {\n if (this.nativeElement.attributes['href']) {\n this._parent.setNavigationAttribute(this.nativeElement);\n }\n // Prevent double-click on checkbox input that undoes the toggle\n if (!el.classList.contains('bao-checkbox-content-container')) {\n this.propagateClick();\n }\n }\n\n @HostListener('window:keyup.enter')\n enterKeyEvent() {\n if (document.activeElement == this.nativeElement) {\n if (this.nativeElement.attributes['href']) {\n this._parent.setNavigationAttribute(this.nativeElement);\n }\n this.propagateClick();\n }\n }\n\n public ngAfterViewInit(): void {\n this.addContentDiv();\n if (!this.disabled) {\n this.renderer.setAttribute(this.nativeElement, 'tabIndex', '0');\n }\n this.addPaddingClass();\n // Remove input element inside item from keyboard navigation sequence\n if (this.nativeElement.classList.contains('has-element-left')) {\n this.renderer.setAttribute(\n this.nativeElement.children.item(0).firstElementChild,\n 'tabIndex',\n '-1'\n );\n }\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes['disabled'] && changes['disabled'].currentValue == true) {\n this.disableItem();\n }\n }\n\n /** Regroups label and description in a new div to help with layout */\n private addContentDiv(): void {\n const children = Array.from(this.nativeElement.children);\n const labelIndex = children.findIndex(\n c => c.localName === 'bao-dropdown-menu-item-label'\n );\n const labelElement = children[labelIndex];\n this.renderer.removeChild(this.nativeElement, children[labelIndex]);\n const contentDiv = this.renderer.createElement('div');\n this.renderer.addClass(contentDiv, 'bao-dropdown-menu-item-content');\n this.renderer.appendChild(this.nativeElement, contentDiv);\n this.renderer.appendChild(contentDiv, labelElement);\n const descriptionIndex = children.findIndex(\n c => c.localName === 'bao-dropdown-menu-item-description'\n );\n if (descriptionIndex > 0) {\n const descriptionElement = children[descriptionIndex];\n this.renderer.removeChild(this.nativeElement, children[descriptionIndex]);\n this.renderer.appendChild(contentDiv, descriptionElement);\n }\n }\n\n private addPaddingClass(): void {\n const children = Array.from(this.nativeElement.children);\n // Menu item has extra element next to label\n if (children.length > 1) {\n // Only toggle element can be on the right\n if (children.findIndex(c => c.localName === 'bao-toggle') > 0) {\n this.renderer.addClass(this.nativeElement, 'has-element-right');\n }\n // Icon, checkbox, radio button or avatar must be on the left\n else {\n this.renderer.addClass(this.nativeElement, 'has-element-left');\n }\n }\n }\n\n private disableItem(): void {\n if (this.disabled) {\n this.renderer.setAttribute(this.nativeElement, 'aria-disabled', 'true');\n this.renderer.setAttribute(this.nativeElement, 'tabIndex', '-1');\n }\n }\n\n /**\n * This method propagates a click event to menu item children with inputs (checkbox, radio button).\n * It emits event to close menu if item does not contain an input.\n */\n private propagateClick(): void {\n let closeMenu = true;\n for (let i = 0; i < this.nativeElement.children.length; i++) {\n if (\n this.nativeElement.children.item(i).firstElementChild.localName ==\n 'input'\n ) {\n (\n this.nativeElement.children.item(i).firstElementChild as HTMLElement\n ).click();\n closeMenu = false;\n }\n }\n if (closeMenu) {\n this.itemClicked.emit();\n }\n }\n}\n@Component({\n selector: 'bao-dropdown-menu',\n templateUrl: './dropdown-menu.component.html',\n styleUrls: ['./dropdown-menu.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'bao-dropdown-menu-container',\n '[class.bao-overlay-transparent-backdrop]': 'isOpen===false',\n '[class.bao-dropdown-menu-closed]': 'isOpen===false',\n '[attr.aria-expanded]': 'isOpen'\n }\n})\nexport class BaoDropdownMenuComponent\n implements AfterContentInit, AfterViewInit\n{\n /**\n * Fired when the dropdown-menu changes its 'isOpen' value\n */\n @Output() public isOpenChange = new EventEmitter<boolean>();\n\n /**\n * Fired when menu is closed by key event triggered from menu item\n */\n @Output() public isClosedByKeyEvent = new EventEmitter();\n\n /**\n * Content of menu to be loaded inside Overlay\n */\n @ViewChild('menuContent') _menuContent: ElementRef<HTMLElement>;\n\n /**\n * All list items inside menu\n */\n @ContentChildren(BaoDropdownMenuItem, { descendants: true })\n _listItems: QueryList<BaoDropdownMenuItem>;\n\n /**\n * Unique identifier of the dropdown menu\n */\n readonly menuId = `bao-dropdown-menu-${++dropdownMenuUniqueId}`;\n\n /**\n * Is the dropwdown menu currently open\n */\n private _isOpen = false;\n\n /**\n * Reference to portal which is attached to Overlay\n */\n private _menuPortal: DomPortal;\n\n /**\n * Index of currently active list item\n */\n private _activeItemIndex: number;\n\n constructor(\n private cdr: ChangeDetectorRef,\n private renderer: Renderer2,\n private elementRef: ElementRef<HTMLElement>\n ) {}\n\n get isOpen(): boolean {\n return this._isOpen;\n }\n get activeItemIndex(): number {\n return this._activeItemIndex;\n }\n get menuPortal(): DomPortal {\n return this._menuPortal;\n }\n get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n set isOpen(isOpen: boolean) {\n this._isOpen = isOpen;\n this.cdr.detectChanges();\n this.isOpenChange.emit(isOpen);\n }\n set activeItemIndex(index: number) {\n this._activeItemIndex = index;\n }\n\n @HostListener('window:keyup.arrowup')\n upKeyEvent() {\n if (this.isOpen) {\n const index = isNaN(this._activeItemIndex) ? -1 : this._activeItemIndex;\n const nextIndex = this.getNextActivableItemIndex(index, false);\n if (nextIndex > -1) {\n this.focusNextItem(nextIndex);\n }\n }\n }\n\n @HostListener('window:keyup.arrowdown')\n downKeyEvent() {\n if (this.isOpen) {\n const index = isNaN(this._activeItemIndex) ? -1 : this._activeItemIndex;\n const nextIndex = this.getNextActivableItemIndex(index, true);\n if (nextIndex > -1) {\n this.focusNextItem(nextIndex);\n }\n }\n }\n\n /** Prevents focus to be lost when TAB has reached end of menu */\n @HostListener('window:keydown.tab')\n tabKeyEvent() {\n if (this.isOpen) {\n if (document.activeElement === this._listItems.last.nativeElement) {\n this.isClosedByKeyEvent.emit();\n }\n }\n }\n\n @HostListener('window:keyup.tab')\n tabUpKeyEvent() {\n if (this.isOpen) {\n this._activeItemIndex = this._listItems.reduce((acc, element, index) => {\n if (element.nativeElement === document.activeElement) {\n acc = index;\n }\n\n return acc;\n }, -1);\n }\n }\n\n /** Prevents focus to be lost when SHIFT + TAB has reached beginning of menu */\n @HostListener('window:keydown.shift.tab')\n shiftTabKeyEvent() {\n if (this.isOpen) {\n if (document.activeElement === this._listItems.first.nativeElement) {\n this.isClosedByKeyEvent.emit();\n }\n }\n }\n\n public ngAfterViewInit(): void {\n this.renderer.setAttribute(this.nativeElement, 'id', this.menuId);\n this._menuPortal = new DomPortal(this._menuContent);\n }\n\n public ngAfterContentInit(): void {\n this._listItems.forEach(\n (item: BaoDropdownMenuItem): Subscription =>\n item.itemClicked.subscribe(() => this.isClosedByKeyEvent.emit())\n );\n }\n\n public open(): void {\n this.isOpen = true;\n }\n\n public close(): void {\n this.isOpen = false;\n }\n\n public focus(): void {\n this._activeItemIndex = -1;\n this._menuContent.nativeElement.focus();\n }\n\n /** Move the aria-current attribute to new active page */\n public setNavigationAttribute(activePageElement: HTMLElement): void {\n const previousActivePage = this._listItems.find(\n (item: BaoDropdownMenuItem) => {\n return item.nativeElement.attributes['aria-current'] === 'page';\n }\n );\n if (previousActivePage) {\n this.renderer.removeAttribute(\n previousActivePage.nativeElement,\n 'aria-current'\n );\n this.renderer.removeClass(\n previousActivePage.nativeElement,\n 'active-link'\n );\n }\n this.renderer.setAttribute(activePageElement, 'aria-current', 'page');\n this.renderer.addClass(activePageElement, 'active-link');\n }\n\n private focusNextItem(nextIndex: number): void {\n this._activeItemIndex = nextIndex;\n this._listItems.get(nextIndex).nativeElement.focus();\n }\n\n /**\n * Finds the next activable tab index when navigating with up and down arrow or TAB keys\n * @param currentIndex List item index which currently has focus\n * @param isDown Whether the navigation is going in the down direction or not\n * @param isBackward If recursive function is going backward looking for last activable item in list\n * @returns Index of the next item that will receive focus\n */\n private getNextActivableItemIndex(\n currentIndex: number,\n isDown: boolean\n ): number {\n const init: number[] = [];\n // Get all the activable indexes\n const activableIndexes = this._listItems.reduce((acc, element, index) => {\n if (!element.disabled) {\n acc = [...acc, index];\n }\n\n return acc;\n }, init);\n\n if (activableIndexes.length) {\n if (isDown) {\n // Select the first enabled element\n if (currentIndex === -1) {\n return activableIndexes[0];\n }\n\n // Select the only enabled element\n if (activableIndexes.length === 1) {\n return activableIndexes[0];\n }\n\n // Stay on the last enabled element\n if (currentIndex === activableIndexes[activableIndexes.length - 1]) {\n return currentIndex;\n }\n\n // Select the next enabled element\n return activableIndexes.find(index => index > currentIndex);\n }\n\n const isUp = !isDown;\n if (isUp) {\n // Do nothing whenever nothing is selected\n if (currentIndex === -1) {\n return currentIndex;\n }\n\n // Select the only enabled element\n if (activableIndexes.length === 1) {\n return activableIndexes[0];\n }\n\n // Stay on the first enabled element\n if (currentIndex === activableIndexes[0]) {\n return currentIndex;\n }\n\n // Select the above enabled element\n return activableIndexes.reverse().find(index => index < currentIndex);\n }\n\n return -1;\n }\n }\n}\n/**\n * Directive to be applied on element that will trigger the opening and closing of menu.\n */\n@Directive({\n selector:\n 'bao-dropdown-menu-trigger, [bao-dropdown-menu-trigger], [baoDropdownMenuTriggerFor]',\n host: { class: 'bao-dropdown-menu-trigger' }\n})\nexport class BaoDropdownMenuTrigger implements AfterViewInit, OnDestroy {\n @Input('baoDropdownMenuTriggerFor') menu: BaoDropdownMenuComponent | null;\n private _overlayRef: OverlayRef | null = null;\n private _isMenuOpen = false;\n\n constructor(\n private renderer: Renderer2,\n private elementRef: ElementRef<HTMLElement>,\n private overlay: Overlay\n ) {}\n\n get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n @HostListener('window:keyup.escape')\n escapeKeyEvent() {\n if (this._isMenuOpen) {\n this.closeMenu();\n this.nativeElement.focus();\n }\n }\n\n @HostListener('click')\n onClick() {\n this.toggleMenu();\n }\n\n public ngAfterViewInit(): void {\n this.renderer.setAttribute(this.nativeElement, 'role', 'button');\n this.renderer.setAttribute(\n this.nativeElement,\n 'aria-controls',\n `bao-dropdown-menu-${dropdownMenuUniqueId}`\n );\n this.menu.isClosedByKeyEvent.subscribe(() => {\n this.closeMenu();\n setTimeout(() => this.nativeElement.focus(), 50);\n });\n }\n\n public ngOnDestroy(): void {\n if (this._overlayRef) {\n this._overlayRef.dispose();\n }\n }\n\n private toggleMenu(): void {\n return this._isMenuOpen ? this.closeMenu() : this.openMenu();\n }\n\n private closeMenu(): void {\n this._isMenuOpen = false;\n this.menu.close();\n if (this._overlayRef) {\n this._overlayRef.detach();\n }\n }\n\n private openMenu(): void {\n if (!this.menu) {\n return;\n }\n const overlayRef = this.createOverlay();\n overlayRef.attach(this.menu.menuPortal);\n this._isMenuOpen = true;\n this.menu.open();\n this.menu.focus();\n }\n\n private createOverlay(): OverlayRef {\n if (!this._overlayRef) {\n const config = this.getOverlayConfig();\n this._overlayRef = this.overlay.create(config);\n }\n this._overlayRef.backdropClick().subscribe(() => {\n this.closeMenu();\n });\n return this._overlayRef;\n }\n\n private getOverlayConfig(): OverlayConfig {\n return new OverlayConfig({\n positionStrategy: this.overlay\n .position()\n .flexibleConnectedTo(this.elementRef)\n .withLockedPosition()\n .withGrowAfterOpen()\n .withPositions([\n {\n // top-left of the overlay is connected to bottom-left of the origin;\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n } as ConnectedPosition,\n {\n // bottom-left of the overlay is connected to top-left of the origin;\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom'\n } as ConnectedPosition,\n {\n // top-right of the overlay is connected to bottom-right of the origin;\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top'\n } as ConnectedPosition,\n {\n // bottom-right of the overlay is connected to top-right of the origin;\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom'\n } as ConnectedPosition\n ]),\n backdropClass: 'bao-overlay-transparent-backdrop',\n hasBackdrop: true,\n scrollStrategy: this.overlay.scrollStrategies.block()\n });\n }\n}\n/**\n * Sections of list items in menu. Apply proper styling to section's title if there is one.\n */\n@Directive({\n selector: 'bao-dropdown-menu-section, [bao-dropdown-menu-section]',\n host: { class: 'bao-dropdown-menu-section' }\n})\nexport class BaoDropdownMenuSection implements AfterViewInit {\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private renderer: Renderer2\n ) {}\n\n get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n public ngAfterViewInit(): void {\n const children = Array.from(this.nativeElement.childNodes);\n const textIndex = children.findIndex(\n (c: ChildNode) => c.nodeName === '#text'\n );\n if (textIndex > -1) {\n this.insertTitle(children, textIndex);\n }\n }\n\n private insertTitle(children: ChildNode[], txtIdx: number): void {\n const titleElement = this.renderer.createElement('h5');\n this.renderer.setProperty(\n titleElement,\n 'textContent',\n children[txtIdx].nodeValue\n );\n this.renderer.removeChild(this.nativeElement, children[txtIdx]);\n const listIndex = children.findIndex((c: ChildNode) => c.nodeName === 'UL');\n this.renderer.insertBefore(\n this.nativeElement,\n titleElement,\n children[listIndex]\n );\n }\n}\n/**\n * Label of a list item, add css class to apply proper styling.\n */\n@Directive({\n selector: 'bao-dropdown-menu-item-label, [bao-dropdown-menu-item-label]',\n host: { class: 'bao-dropdown-menu-item-label' }\n})\nexport class BaoDropdownMenuItemLabel {}\n/**\n * Description of a list item, add css class to apply proper styling.\n */\n@Directive({\n selector:\n 'bao-dropdown-menu-item-description, [bao-dropdown-menu-item-description]',\n host: { class: 'bao-dropdown-menu-item-description' }\n})\nexport class BaoDropdownMenuItemDescription {}\n/**\n * Divider to separate sections.\n */\n@Component({\n template: `<hr />`,\n selector: 'bao-dropdown-menu-divider, [bao-dropdown-menu-divider]',\n host: { class: 'bao-dropdown-menu-divider' }\n})\nexport class BaoDropdownMenuDivider implements AfterContentInit {\n constructor(\n private renderer: Renderer2,\n private elementRef: ElementRef<HTMLElement>\n ) {}\n\n get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n public ngAfterContentInit(): void {\n this.renderer.setAttribute(this.nativeElement, 'role', 'separator');\n }\n}\n","<div #menuContent class=\"bao-dropdown-menu\" tabindex=\"-1\">\n <ng-content></ng-content>\n</div>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { ObserversModule } from '@angular/cdk/observers';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport {\n BaoDropdownMenuComponent,\n BaoDropdownMenuTrigger,\n BaoDropdownMenuItem,\n BaoDropdownMenuSection,\n BaoDropdownMenuItemLabel,\n BaoDropdownMenuItemDescription,\n BaoDropdownMenuDivider\n} from './dropdown-menu.component';\n\nconst DROPDOWN_MENU_DIRECTIVES = [\n BaoDropdownMenuComponent,\n BaoDropdownMenuTrigger,\n BaoDropdownMenuItem,\n BaoDropdownMenuSection,\n BaoDropdownMenuItemLabel,\n BaoDropdownMenuItemDescription,\n BaoDropdownMenuDivider\n];\n\n@NgModule({\n imports: [CommonModule, ObserversModule, OverlayModule, PortalModule],\n declarations: [DROPDOWN_MENU_DIRECTIVES],\n exports: [...DROPDOWN_MENU_DIRECTIVES]\n})\nexport class BaoDropdownMenuModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './module';\nexport * from './dropdown-menu.component';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\n\nimport {\n Component,\n ElementRef,\n Input,\n Renderer2,\n ViewEncapsulation\n} from '@angular/core';\n\nconst KILO_THRESHOLD = 1000;\nconst MEGA_THRESHOLD = 1000000;\n\n@Component({\n selector: 'bao-file-preview, [bao-file-preview]',\n templateUrl: './file-preview.component.html',\n styleUrls: ['./file-preview.component.scss'],\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'bao-file-preview'\n }\n})\nexport class BaoFilePreviewComponent {\n public get file(): File {\n return this._file;\n }\n /**\n * Uploaded file to display in list.\n */\n @Input() set file(f: File) {\n this._file = f;\n this.setFileData();\n }\n\n /**\n * Is file loading\n */\n @Input() public isLoading = false;\n\n /**\n * True if projected content has no icon and file does not have a thumbnail.\n */\n public insertGenericIcon = false;\n\n public thumbnailURL = '';\n protected _file: File;\n protected fileSize: string;\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private renderer: Renderer2\n ) {}\n\n private get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n private setFileData(): void {\n this.formatSize(this._file.size);\n this.getThumbnail();\n this.setIcon();\n }\n\n private setIcon() {\n // If no icon is in the projected content, generic icon is added\n const contentIcon = Array.from(\n this.nativeElement.children.item(0).children\n ).find((el: HTMLElement) => el.localName === 'bao-icon');\n if (!contentIcon) {\n this.insertGenericIcon = true;\n } else {\n this.renderer.addClass(contentIcon, 'bao-file-media');\n }\n }\n\n private getThumbnail() {\n if (\n this._file &&\n (this._file.type === 'image/png' || this._file.type === 'image/jpeg')\n ) {\n const reader = new FileReader();\n reader.onload = (event: any) => {\n this.thumbnailURL = event.target.result;\n };\n\n reader.onerror = () => {\n this.thumbnailURL = '';\n };\n reader.readAsDataURL(this._file);\n }\n }\n\n private formatSize(size: number): void {\n if (size >= KILO_THRESHOLD && size / KILO_THRESHOLD < KILO_THRESHOLD) {\n this.fileSize = this.getSizeAndUnit(size, KILO_THRESHOLD, 'Ko');\n return;\n }\n const sizeDividedByKoMultiplicator = size / KILO_THRESHOLD;\n if (sizeDividedByKoMultiplicator >= KILO_THRESHOLD) {\n const toFixed = sizeDividedByKoMultiplicator > 10 ? 0 : 1;\n this.fileSize = this.getSizeAndUnit(size, MEGA_THRESHOLD, 'Mo', toFixed);\n return;\n }\n this.fileSize = `${size} octets`;\n }\n\n private getSizeAndUnit(\n size: number,\n multiplicator: number,\n unit: string,\n toFixed = 0\n ): string {\n return `${(size / multiplicator).toFixed(toFixed)} ${unit}`;\n }\n}\n","<div class=\"bao-file-info\">\n <ng-content select=\"bao-icon\"></ng-content>\n <bao-icon\n *ngIf=\"insertGenericIcon && !thumbnailURL\"\n class=\"bao-file-media\"\n svgIcon=\"icon-file\"\n >\n </bao-icon>\n <ng-container *ngIf=\"thumbnailURL && !isLoading\">\n <img\n class=\"bao-file-media\"\n [src]=\"thumbnailURL\"\n width=\"40px\"\n height=\"40px\"\n />\n </ng-container>\n <div class=\"bao-file-text\">\n <div class=\"bao-file-name\">{{ _file.name }}</div>\n <div class=\"bao-file-size\">{{ fileSize }}</div>\n </div>\n</div>\n<ng-container *ngIf=\"!isLoading\">\n <ng-content select=\"button[bao-button]\"></ng-content>\n <ng-content select=\"baoDropdownTriggerFor\"></ng-content>\n</ng-container>\n<bao-icon\n *ngIf=\"isLoading\"\n class=\"loading-spinner\"\n svgIcon=\"icon-spinner\"\n title=\"chargement\"\n></bao-icon>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\n\nimport { Injectable, Optional, SkipSelf } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n/**\n * To modify the labels and text displayed, create a new instance of BaoFileIntl and\n * include it in a custom provider\n */\n@Injectable({ providedIn: 'root' })\nexport class BaoFileIntl {\n /**\n * Stream to emit from when labels are changed. Use this to notify components when the labels have\n * changed after initialization.\n */\n readonly changes: Subject<void> = new Subject<void>();\n\n /** The label for button in dropzone */\n dropzoneButtonLabel = 'Parcourir';\n\n /** The default dropzone instructions */\n defaultDropzoneInstructions = 'ou déposer votre fichier ici';\n\n /** Error message displayed when uploaded file is too large */\n fileTooBigErrorMessage = 'La taille de ce fichier est trop grande';\n\n /** Error message displayed when uploaded file has an invalid type */\n invalidFileTypeErrorMessage = \"Ce format de fichier n'est pas autorisé\";\n}\n\n@Injectable()\nexport class BaoFileIntlEnglish extends BaoFileIntl {\n /** The label for button in dropzone */\n dropzoneButtonLabel = 'Browse';\n\n /** The default dropzone instructions */\n defaultDropzoneInstructions = 'or drop your file here';\n\n /** Error message displayed when uploaded file is too large */\n fileTooBigErrorMessage = 'The size of this file is too large';\n\n /** Error message displayed when uploaded file has an invalid type */\n invalidFileTypeErrorMessage = 'The format of this file is unauthorized';\n}\n\n/** @docs-private */\nexport function BAO_FILE_INTL_PROVIDER_FACTORY(parentIntl: BaoFileIntl) {\n return parentIntl || new BaoFileIntl();\n}\n\n/** @docs-private */\nexport const BAO_FILE_INTL_PROVIDER = {\n // If there is already an BaoFileIntl available, use that. Otherwise, provide a new one.\n provide: BaoFileIntl,\n deps: [[new Optional(), new SkipSelf(), BaoFileIntl]],\n useFactory: BAO_FILE_INTL_PROVIDER_FACTORY\n};\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\n\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostListener,\n Input,\n OnDestroy,\n Output,\n QueryList,\n Renderer2,\n ViewChild,\n ViewChildren,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BaoErrorTextComponent } from '../common-components';\nimport { Subscription } from 'rxjs';\nimport { BaoFileIntl } from './file-intl';\nimport { BaoFilePreviewComponent } from './file-preview.component';\n\n/**\n * Unique number to generate a unique ID\n */\nlet fileInputUniqueId = 0;\nlet fileTextUniqueId = 0;\n\n@Component({\n selector: 'bao-file-input, [bao-file-input]',\n templateUrl: './file-input.component.html',\n styleUrls: ['./file-input.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n // tslint:disable-next-line:no-forward-ref\n useExisting: forwardRef(() => BaoFileInputComponent),\n multi: true\n }\n ],\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'bao-file-input',\n '[class.bao-file-label-small]': 'size === \"small\"',\n '[class.bao-file-label-medium]': 'size === \"medium\"',\n '[class.bao-file-input-disabled]': 'disabled'\n }\n})\nexport class BaoFileInputComponent\n implements AfterContentInit, AfterViewInit, OnDestroy, ControlValueAccessor\n{\n /**\n * Id of the file input field\n */\n @Input('id') public inputId?: string;\n\n /**\n * Label of field to be displayed above\n */\n @Input() public label: string;\n\n /**\n * Size of the file input label\n */\n @Input() public size: 'small' | 'medium' = 'medium';\n\n /**\n * Maximum size accepted for uploaded files\n */\n @Input() public maximalFileSize = -1;\n\n /**\n * Accepted types of files\n */\n @Input() public acceptedMIMETypes: string[] = [];\n\n /**\n * Is field required\n */\n @Input() public required? = false;\n\n /**\n * Is field disabled\n */\n @Input() public disabled? = false;\n\n /**\n * File selected to be uploaded\n */\n @Output() public uploadedFile: EventEmitter<File> = new EventEmitter<File>();\n\n /**\n * List of files that have been uploaded so far\n */\n @ContentChildren(BaoFilePreviewComponent, { descendants: true })\n private _files: QueryList<BaoFilePreviewComponent>;\n\n /**\n * Form errors when component is used in a form\n */\n @ContentChildren(BaoErrorTextComponent, { descendants: true })\n private _errorForm: QueryList<BaoErrorTextComponent>;\n\n /**\n * Error texts\n */\n @ViewChildren(BaoErrorTextComponent)\n private _errorTexts: QueryList<BaoErrorTextComponent>;\n\n /**\n * File input that triggers uploading when clicked\n */\n @ViewChild('uploader', { static: false }) private uploader: ElementRef;\n\n @ViewChild('dropzone', { static: false })\n private dropzoneElement: ElementRef<HTMLElement>;\n\n public insertDefaultInstructions = false;\n public isFileTooBig = false;\n public isFileTypeInvalid = false;\n private _value: File[];\n private _intlChanges: Subscription;\n private _helperTextId: string;\n\n constructor(\n public intl: BaoFileIntl,\n private elementRef: ElementRef<HTMLElement>,\n private renderer: Renderer2,\n private cdr: ChangeDetectorRef\n ) {\n this._intlChanges = intl.changes.subscribe(() => this.cdr.markForCheck());\n }\n\n get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n @HostListener('window:keyup.enter')\n enterKeyEvent() {\n if (document.activeElement.id === this.inputId) {\n document.getElementById(this.inputId).click();\n }\n }\n\n @HostListener('window:keyup.tab')\n tabKeyEvent() {\n if (document.activeElement.id === this.inputId) {\n this.renderer.addClass(\n this.dropzoneElement.nativeElement,\n 'dropzone-focus'\n );\n }\n }\n\n @HostListener('window:keyup.shift.tab')\n shiftTabKeyEvent() {\n if (document.activeElement.id === this.inputId) {\n this.renderer.addClass(\n this.dropzoneElement.nativeElement,\n 'dropzone-focus'\n );\n }\n }\n\n public ngAfterContentInit(): void {\n this._errorForm.changes.subscribe(() => this.setErrorTextsAttribute());\n if (!this.inputId) {\n this.inputId = `file-input-${fileInputUniqueId++}`;\n }\n // If no content was added for dropzone instructions, add default text.\n const dropzoneElement = Array.from(this.nativeElement.children).find(\n (el: HTMLElement) => el.className === 'file-drop-zone'\n );\n if (\n !Array.from(dropzoneElement.children).find(\n el => el.localName === 'bao-file-dropzone-instructions'\n )\n ) {\n this.insertDefaultInstructions = true;\n }\n this.setDescribedByAttribute();\n this._files.changes.subscribe(\n (files: QueryList<BaoFilePreviewComponent>) => {\n const filesList: File[] = files.map(\n (el: BaoFilePreviewComponent) => el.file\n );\n this.setValue(filesList);\n }\n );\n }\n\n public ngAfterViewInit(): void {\n this._errorTexts.changes.subscribe(() => this.setErrorTextsAttribute());\n }\n\n public ngOnDestroy(): void {\n this._intlChanges.unsubscribe();\n }\n\n /**\n * Implements ControlValueAccessor interface\n */\n public writeValue(obj: any): void {\n this._value = obj;\n }\n /**\n * Implements ControlValueAccessor interface\n */\n public registerOnChange(fn: (value: any) => void): void {\n this.propagateChange = fn;\n }\n /**\n * Implements ControlValueAccessor interface\n */\n public registerOnTouched(fn: any): void {\n this.propagateTouched = fn;\n }\n /**\n * Implements ControlValueAccessor interface\n */\n public setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n public uploadFile(file: File) {\n if (!this.disabled) {\n this.isFileTypeInvalid = false;\n this.isFileTooBig = false;\n this.uploader.nativeElement.value = '';\n if (this.maximalFileSize > 0 && file.size > this.maximalFileSize) {\n this.isFileTooBig = true;\n }\n if (\n this.acceptedMIMETypes.length > 0 &&\n this.acceptedMIMETypes.indexOf(file.type) < 0\n ) {\n this.isFileTypeInvalid = true;\n }\n if (!this.isFileTooBig && !this.isFileTypeInvalid) {\n this.uploadedFile.emit(file);\n }\n }\n }\n\n /**\n * Saves the registerOnChange function so the component can call it whenever it wants.\n */\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\n public propagateChange = (_: any) => {};\n\n /**\n * Saves the registerOnTouched function so the component can call it whenever it wants.\n */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n public propagateTouched = () => {};\n\n private setValue(value: File[]) {\n this._value = value;\n this.propagateChange(this._value);\n this.propagateTouched();\n }\n\n private setDescribedByAttribute(): void {\n const helperText = Array.from(this.nativeElement.children).find(\n (el: HTMLElement) => el.localName === 'bao-guiding-text'\n );\n if (helperText) {\n this._helperTextId = `bao-guiding-text-${fileTextUniqueId++}`;\n this.renderer.setAttribute(\n helperText.firstElementChild,\n 'id',\n this._helperTextId\n );\n const inputElement = Array.from(this.nativeElement.children)\n .find((el: HTMLElement) => el.className == 'file-drop-zone')\n .children.item(1);\n this.renderer.setAttribute(\n inputElement,\n 'aria-describedby',\n this._helperTextId\n );\n }\n }\n\n private setErrorTextsAttribute(): void {\n const textsIds = [];\n const errors = Array.from(this.nativeElement.children).filter(\n (el: HTMLElement) => el.localName == 'bao-error'\n );\n errors.forEach((errorText: HTMLElement) => {\n const errorTextId = `bao-error-${fileTextUniqueId++}`;\n this.renderer.setAttribute(\n errorText.firstElementChild,\n 'id',\n errorTextId\n );\n textsIds.push(errorTextId);\n });\n const inputElement = Array.from(this.nativeElement.children)\n .find((el: HTMLElement) => el.classList.contains('file-drop-zone'))\n .children.item(1);\n if (this._helperTextId) {\n textsIds.unshift(this._helperTextId);\n }\n this.renderer.setAttribute(\n inputElement,\n 'aria-describedby',\n textsIds.join(' ')\n );\n }\n}\n\n@Directive({\n selector: '[baoFileDrop]',\n host: { '[class.drag-over]': '_isDragOver == true' }\n})\nexport class BaoFileDropDirective {\n @Output() public fileDrop: EventEmitter<File> = new EventEmitter<File>();\n private _isDragOver = false;\n\n @HostListener('dragover', ['$event'])\n public onDragOver(event: DragEvent): void {\n this.preventAndStop(event);\n this._isDragOver = true;\n }\n\n @HostListener('dragleave', ['$event'])\n public onDragLeave(event: DragEvent): void {\n this.preventAndStop(event);\n this._isDragOver = false;\n }\n\n @HostListener('drop', ['$event'])\n public onDrop(event: DragEvent): void {\n this.preventAndStop(event);\n this._isDragOver = false;\n const transfer = this.getDataTransfer(event);\n this.fileDrop.emit(transfer.files[0]);\n }\n\n private preventAndStop(event: DragEvent): void {\n event.preventDefault();\n event.stopPropagation();\n }\n\n private getDataTransfer(event: DragEvent | any): DataTransfer {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return event.dataTransfer\n ? event.dataTransfer\n : event.originalEvent.dataTransfer;\n }\n}\n\n@Directive({\n selector: 'bao-file-dropzone-instructions, [bao-file-dropzone-instructions]',\n host: {\n class: 'bao-file-dropzone-instructions'\n }\n})\nexport class BaoFileDropzoneIntructions implements AfterContentInit {\n constructor(\n private renderer: Renderer2,\n private elementRef: ElementRef<HTMLElement>\n ) {}\n\n get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n ngAfterContentInit(): void {\n this.renderer.setAttribute(this.nativeElement, 'aria-hidden', 'true');\n }\n}\n","<label bao-label [required]=\"required\" [for]=\"inputId\">{{ label }}</label>\n<ng-content select=\"bao-guiding-text\"></ng-content>\n<div\n baoFileDrop\n class=\"file-drop-zone\"\n (fileDrop)=\"uploadFile($event)\"\n #dropzone\n>\n <button\n bao-button\n type=\"button\"\n displayType=\"utility\"\n level=\"secondary\"\n [disabled]=\"disabled\"\n (click)=\"uploader.click()\"\n aria-hidden=\"true\"\n tabIndex=\"-1\"\n >\n {{ intl.dropzoneButtonLabel }}\n </button>\n <input\n [id]=\"inputId\"\n type=\"file\"\n class=\"sr-only\"\n [disabled]=\"disabled\"\n (change)=\"uploadFile($event.target.files[0])\"\n #uploader\n />\n <ng-container\n ><div #ref>\n <ng-content select=\"bao-file-dropzone-instructions\"></ng-content></div\n ></ng-container>\n <ng-container *ngIf=\"ref.childNodes.length === 0\"\n ><bao-file-dropzone-instructions>{{\n intl.defaultDropzoneInstructions\n }}</bao-file-dropzone-instructions></ng-container\n >\n</div>\n<bao-error *ngIf=\"isFileTooBig\">\n {{ intl.fileTooBigErrorMessage }}\n</bao-error>\n<bao-error *ngIf=\"isFileTypeInvalid\">\n {{ intl.invalidFileTypeErrorMessage }}\n</bao-error>\n<ng-content select=\"bao-error\"></ng-content>\n<ng-content></ng-content>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport {\n BaoFileInputComponent,\n BaoFileDropDirective,\n BaoFileDropzoneIntructions\n} from './file-input.component';\nimport { BaoFilePreviewComponent } from './file-preview.component';\nimport { BAO_FILE_INTL_PROVIDER } from './file-intl';\nimport { BaoButtonModule } from '../button';\nimport { BaoIconModule } from '../icon';\nimport { BaoDropdownMenuModule } from '../dropdown-menu';\nimport { BaoCommonComponentsModule } from '../common-components';\n\nconst FILE_DIRECTIVES = [\n BaoFileInputComponent,\n BaoFileDropzoneIntructions,\n BaoFileDropDirective,\n BaoFilePreviewComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n BaoDropdownMenuModule,\n BaoCommonComponentsModule,\n BaoIconModule,\n BaoButtonModule\n ],\n declarations: [FILE_DIRECTIVES],\n exports: [FILE_DIRECTIVES],\n providers: [BAO_FILE_INTL_PROVIDER]\n})\nexport class BaoFileModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { AriaLivePoliteness } from '@angular/cdk/a11y';\nimport { Direction } from '@angular/cdk/bidi';\nimport { InjectionToken, ViewContainerRef } from '@angular/core';\n\n/** Injection token that can be used to access the data that was passed in to a snack bar. */\nexport const BAO_SNACK_BAR_DATA = new InjectionToken<any>('BaoSnackBarData');\n\n/** Possible values for horizontalPosition on MatSnackBarConfig. */\nexport type BaoSnackBarHorizontalPosition =\n | 'start'\n | 'center'\n | 'end'\n | 'left'\n | 'right';\n\n/** Possible values for verticalPosition on MatSnackBarConfig. */\nexport type BaoSnackBarVerticalPosition = 'top' | 'bottom';\n\n/** Possible types of toast to display the snack bar */\nexport type BaoSnackBarToastType = 'info' | 'success' | 'danger';\n\n/**\n * Configuration used when opening a snack-bar.\n */\nexport class BaoSnackBarConfig<D = any> {\n /** The message to display in the snackbar. */\n public message = 'No message';\n\n /** The type of snackbar template to display. */\n public toastType?: BaoSnackBarToastType = 'info';\n\n /**\n * The attached action to the snack bar. If the name of the action matches an icon provided as part of\n * angular-ui icon dictionnary an icon will be displayed instead of text.\n * */\n public actionLabelOrIcon?: string = '';\n\n /** Displays the close button when set to true */\n public showClose?: boolean = false;\n\n /** The length of time in milliseconds to wait before automatically dismissing the snack bar. */\n public duration?: number = 5000;\n\n /** The politeness level for the MatAriaLiveAnnouncer announcement. */\n public politeness?: AriaLivePoliteness = 'assertive';\n\n /**\n * Message to be announced by the LiveAnnouncer. When opening a snackbar without a custom\n * component or template, the announcement message will default to the specified message.\n */\n public announcementMessage?: string = '';\n\n /**\n * The view container that serves as the parent for the snackbar for the purposes of dependency\n * injection. Note: this does not affect where the snackbar is inserted in the DOM.\n */\n public viewContainerRef?: ViewContainerRef;\n\n /** Extra CSS classes to be added to the snack bar container. */\n public panelClass?: string | string[];\n\n /** Text layout direction for the snack bar. */\n public direction?: Direction;\n\n /** Data being injected into the child component. */\n public data?: D | null = null;\n\n /** The horizontal position to place the snack bar. */\n public horizontalPosition?: BaoSnackBarHorizontalPosition = 'left';\n\n /** The vertical position to place the snack bar. */\n public verticalPosition?: BaoSnackBarVerticalPosition = 'bottom';\n}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { Observable, Subject } from 'rxjs';\nimport { IBaoSnackBarContainer } from './snack-bar-container';\n\n/** Event that is emitted when a snack bar is dismissed. */\nexport interface IBaoSnackBarDismiss {\n /** Whether the snack bar was dismissed using the action button. */\n dismissedByAction: boolean;\n}\n\n/** Maximum amount of milliseconds that can be passed into setTimeout. */\nconst MAX_TIMEOUT = Math.pow(2, 31) - 1;\n\n/**\n * Reference to a snack bar dispatched from the snack bar service.\n */\nexport class BaoSnackBarRef<T> {\n /** The instance of the component making up the content of the snack bar. */\n public instance: T;\n\n /**\n * The instance of the component making up the content of the snack bar.\n * @docs-private\n */\n public containerInstance: IBaoSnackBarContainer;\n\n /** Subject for notifying the user that the snack bar has been dismissed. */\n private readonly _afterDismissed = new Subject<IBaoSnackBarDismiss>();\n\n /** Subject for notifying the user that the snack bar has opened and appeared. */\n private readonly _afterOpened = new Subject<void>();\n\n /** Subject for notifying the user that the snack bar action was called. */\n private readonly _onAction = new Subject<void>();\n\n /**\n * Timeout ID for the duration setTimeout call. Used to clear the timeout if the snackbar is\n * dismissed before the duration passes.\n */\n private _durationTimeoutId: number;\n\n /** Whether the snack bar was dismissed using the action button. */\n private _dismissedByAction = false;\n\n constructor(\n containerInstance: IBaoSnackBarContainer,\n private _overlayRef: OverlayRef\n ) {\n this.containerInstance = containerInstance;\n // Dismiss snackbar on action.\n this.onAction().subscribe(() => this.dismiss());\n containerInstance._onExit.subscribe(() => this.finishDismiss());\n }\n\n /** Dismisses the snack bar. */\n public dismiss(): void {\n if (!this._afterDismissed.closed) {\n this.containerInstance.exit();\n }\n clearTimeout(this._durationTimeoutId);\n }\n\n /** Marks the snackbar action clicked. */\n public dismissWithAction(): void {\n if (!this._onAction.closed) {\n this._dismissedByAction = true;\n this._onAction.next();\n this._onAction.complete();\n }\n }\n\n /** Dismisses the snack bar after some duration */\n public dismissAfter(duration: number): void {\n // Note that we need to cap the duration to the maximum value for setTimeout, because\n // it'll revert to 1 if somebody passes in something greater (e.g. `Infinity`). See #17234.\n\n // @TODO: window.setTimeout() ?\n this._durationTimeoutId = window.setTimeout(\n () => this.dismiss(),\n Math.min(duration, MAX_TIMEOUT)\n );\n }\n\n /** Marks the snackbar as opened */\n public open(): void {\n if (!this._afterOpened.closed) {\n this._afterOpened.next();\n this._afterOpened.complete();\n }\n }\n\n /** Gets an observable that is notified when the snack bar is finished closing. */\n public afterDismissed(): Observable<IBaoSnackBarDismiss> {\n return this._afterDismissed;\n }\n\n /** Gets an observable that is notified when the snack bar has opened and appeared. */\n public afterOpened(): Observable<void> {\n return this.containerInstance._onEnter;\n }\n\n /** Gets an observable that is notified when the snack bar action is called. */\n public onAction(): Observable<void> {\n return this._onAction;\n }\n\n /** Cleans up the DOM after closing. */\n private finishDismiss(): void {\n this._overlayRef.dispose();\n\n if (!this._onAction.closed) {\n this._onAction.complete();\n }\n\n this._afterDismissed.next({ dismissedByAction: this._dismissedByAction });\n this._afterDismissed.complete();\n this._dismissedByAction = false;\n }\n}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport {\n ChangeDetectionStrategy,\n Component,\n Inject,\n ViewEncapsulation\n} from '@angular/core';\nimport { ICONS_DCT } from '../icon/icons-dictionary';\nimport { BaoSnackBarToastType, BAO_SNACK_BAR_DATA } from './snack-bar-config';\nimport { BaoSnackBarRef } from './snack-bar-ref';\n\nconst toastTypeToAttributes = {\n info: {\n toastClass: 'bao-snackbar-info',\n icon: 'icon-info',\n iconTitle: 'Information',\n politeness: 'assertive'\n },\n success: {\n toastClass: 'bao-snackbar-success',\n icon: 'icon-check-circle',\n iconTitle: 'Succès',\n politeness: 'polite'\n },\n danger: {\n toastClass: 'bao-snackbar-danger',\n icon: 'icon-error',\n iconTitle: 'Erreur',\n politeness: 'assertive'\n }\n};\n\n/**\n * Interface for a simple snack bar component that has a message and a single action.\n */\nexport interface ITextOnlySnackBar {\n data: {\n message: string;\n toastType: BaoSnackBarToastType;\n actionLabelOrIcon: string;\n showClose: boolean;\n };\n snackBarRef: BaoSnackBarRef<ITextOnlySnackBar>;\n action: () => void;\n hasAction: boolean;\n}\n\n/**\n * A component used to open as the default snack bar, matching material spec.\n * This should only be used internally by the snack bar service.\n */\n@Component({\n selector: 'bao-simple-snack-bar',\n templateUrl: 'simple-snack-bar.component.html',\n styleUrls: ['simple-snack-bar.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'bao-simple-snackbar'\n }\n})\nexport class BaoSimpleSnackBarComponent implements ITextOnlySnackBar {\n public showCloseTitle = 'Fermer le message';\n\n /** Data that was injected into the snack bar. */\n public data: {\n message: string;\n toastType: BaoSnackBarToastType;\n actionLabelOrIcon: string;\n showClose: boolean;\n };\n\n constructor(\n public snackBarRef: BaoSnackBarRef<BaoSimpleSnackBarComponent>,\n @Inject(BAO_SNACK_BAR_DATA) data: any\n ) {\n this.data = data;\n }\n\n /** Returns the politeness */\n get politeness(): string {\n return (\n toastTypeToAttributes[this.data.toastType]?.politeness ||\n toastTypeToAttributes['info'].politeness\n );\n }\n\n /** Returns the toast class */\n get toastClass(): string {\n return (\n toastTypeToAttributes[this.data.toastType]?.toastClass ||\n toastTypeToAttributes['info'].toastClass\n );\n }\n\n /** Returns the toast icon */\n get toastIcon(): string {\n return (\n toastTypeToAttributes[this.data.toastType]?.icon ||\n toastTypeToAttributes['info'].icon\n );\n }\n\n /** Returns the toast icon title */\n get toastIconTitle(): string {\n return (\n toastTypeToAttributes[this.data.toastType]?.iconTitle ||\n toastTypeToAttributes['info'].iconTitle\n );\n }\n\n /** If the action button should be shown. */\n get hasAction(): boolean {\n return !!this.data.actionLabelOrIcon;\n }\n\n /** If the action is an icon */\n get isActionIcon(): boolean {\n return !!ICONS_DCT[this.data.actionLabelOrIcon];\n }\n\n /** Performs the action on the snack bar. */\n public action(): void {\n this.snackBarRef.dismissWithAction();\n }\n\n /** Closes the snack bar. */\n public close(): void {\n this.snackBarRef.dismiss();\n }\n}\n","<div\n class=\"bao-snackbar show\"\n [ngClass]=\"toastClass\"\n [attr.aria-live]=\"politeness\"\n aria-atomic=\"true\"\n>\n <div class=\"bao-snackbar-icon\">\n <bao-icon [svgIcon]=\"toastIcon\" [title]=\"toastIconTitle\"></bao-icon>\n </div>\n <div class=\"bao-snackbar-body\">\n {{ data.message }}\n </div>\n <div class=\"bao-snackbar-action\">\n <div *ngIf=\"hasAction\">\n <button\n bao-button\n role=\"button\"\n type=\"utility\"\n level=\"tertiary\"\n [reversed]=\"true\"\n [title]=\"data.actionLabelOrIcon\"\n (click)=\"action()\"\n >\n <bao-icon\n *ngIf=\"isActionIcon; else isActionText\"\n [svgIcon]=\"data.actionLabelOrIcon\"\n [title]=\"data.actionLabelOrIcon\"\n ></bao-icon>\n <ng-template #isActionText\n ><span>{{ data.actionLabelOrIcon }}</span></ng-template\n >\n </button>\n </div>\n <div *ngIf=\"data.showClose\">\n <button\n bao-button\n role=\"button\"\n type=\"utility\"\n level=\"tertiary\"\n [reversed]=\"true\"\n title=\"{{ showCloseTitle }}\"\n (click)=\"close()\"\n >\n <bao-icon svgIcon=\"icon-x\" title=\"{{ showCloseTitle }}\"></bao-icon>\n </button>\n </div>\n </div>\n</div>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport {\n animate,\n AnimationTriggerMetadata,\n state,\n style,\n transition,\n trigger\n} from '@angular/animations';\n\n/**\n * Animations used by the Material snack bar.\n * @docs-private\n */\nexport const matSnackBarAnimations: {\n readonly snackBarState: AnimationTriggerMetadata;\n} = {\n /** Animation that shows and hides a snack bar. */\n snackBarState: trigger('state', [\n state(\n 'void, hidden',\n style({\n transform: 'scale(0.8)',\n opacity: 0\n })\n ),\n state(\n 'visible',\n style({\n transform: 'scale(1)',\n opacity: 1\n })\n ),\n transition('* => visible', animate('150ms cubic-bezier(0, 0, 0.2, 1)')),\n transition(\n '* => void, * => hidden',\n animate(\n '75ms cubic-bezier(0.4, 0.0, 1, 1)',\n style({\n opacity: 0\n })\n )\n )\n ])\n};\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { AnimationEvent } from '@angular/animations';\nimport { AriaLivePoliteness } from '@angular/cdk/a11y';\nimport { Platform } from '@angular/cdk/platform';\nimport {\n BasePortalOutlet,\n CdkPortalOutlet,\n ComponentPortal,\n DomPortal,\n TemplatePortal\n} from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n inject,\n NgZone,\n OnDestroy,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { matSnackBarAnimations } from './snack-bar-animations';\nimport { BaoSnackBarConfig } from './snack-bar-config';\n\nlet uniqueId = 0;\n\n/**\n * Internal interface for a snack bar container.\n * @docs-private\n */\nexport interface IBaoSnackBarContainer {\n snackBarConfig: BaoSnackBarConfig;\n _onAnnounce: Subject<any>;\n _onExit: Subject<any>;\n _onEnter: Subject<any>;\n enter: () => void;\n exit: () => Observable<void>;\n attachTemplatePortal: <C>(portal: TemplatePortal<C>) => EmbeddedViewRef<C>;\n attachComponentPortal: <T>(portal: ComponentPortal<T>) => ComponentRef<T>;\n}\n\n/**\n * Internal component that wraps user-provided snack bar content.\n * @docs-private\n */\n@Component({\n selector: 'bao-snack-bar-container',\n templateUrl: 'snack-bar-container.html',\n styleUrls: ['snack-bar-container.scss'],\n // In Ivy embedded views will be change detected from their declaration place, rather than\n // where they were stamped out. This means that we can't have the snack bar container be OnPush,\n // because it might cause snack bars that were opened from a template not to be out of date.\n // eslint-disable-next-line\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n animations: [matSnackBarAnimations.snackBarState],\n host: {\n class: 'bao-snack-bar-container',\n '[@state]': '_animationState',\n '(@state.done)': 'onAnimationEnd($event)'\n }\n})\nexport class BaoSnackBarContainerComponent\n extends BasePortalOutlet\n implements OnDestroy, IBaoSnackBarContainer\n{\n /** The portal outlet inside of this container into which the snack bar content will be loaded. */\n @ViewChild(CdkPortalOutlet, { static: true }) _portalOutlet: CdkPortalOutlet;\n\n private _document = inject(DOCUMENT);\n private _trackedModals = new Set<Element>();\n\n /** Subject for notifying that the snack bar has announced to screen readers. */\n public readonly _onAnnounce: Subject<void> = new Subject();\n\n /** Subject for notifying that the snack bar has exited from view. */\n public readonly _onExit: Subject<void> = new Subject();\n\n /** Subject for notifying that the snack bar has finished entering the view. */\n public readonly _onEnter: Subject<void> = new Subject();\n\n /** The state of the snack bar animations. */\n public _animationState = 'void';\n\n /** aria-live value for the live region. */\n public _live: AriaLivePoliteness;\n\n /** The number of milliseconds to wait before announcing the snack bar's content. */\n private readonly _announceDelay: number = 150;\n\n /** The timeout for announcing the snack bar's content. */\n private _announceTimeoutId: number;\n\n /** Whether the component has been destroyed. */\n private _destroyed = false;\n\n /**\n * Role of the live region. This is only for Firefox as there is a known issue where Firefox +\n * JAWS does not read out aria-live message.\n */\n _role?: 'status' | 'alert';\n\n /** Unique ID of the aria-live element. */\n readonly _liveElementId = `bao-snack-bar-container-live-${uniqueId++}`;\n\n constructor(\n private _ngZone: NgZone,\n private _elementRef: ElementRef<HTMLElement>,\n private _changeDetectorRef: ChangeDetectorRef,\n private _platform: Platform,\n /** The snack bar configuration. */\n public snackBarConfig: BaoSnackBarConfig\n ) {\n super();\n\n // Use aria-live rather than a live role like 'alert' or 'status'\n // because NVDA and JAWS have show inconsistent behavior with live roles.\n if (\n snackBarConfig.politeness === 'assertive' &&\n !snackBarConfig.announcementMessage\n ) {\n this._live = 'assertive';\n } else if (snackBarConfig.politeness === 'off') {\n this._live = 'off';\n } else {\n this._live = 'polite';\n }\n // Only set role for Firefox. Set role based on aria-live because setting role=\"alert\" implies\n // aria-live=\"assertive\" which may cause issues if aria-live is set to \"polite\" above.\n if (this._platform.FIREFOX) {\n if (this._live === 'polite') {\n this._role = 'status';\n }\n if (this._live === 'assertive') {\n this._role = 'alert';\n }\n }\n }\n\n /** Attach a component portal as content to this snack bar container. */\n public attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n this.assertNotAttached();\n this.applySnackBarClasses();\n const result = this._portalOutlet.attachComponentPortal(portal);\n this._afterPortalAttached();\n return result;\n }\n\n /** Attach a template portal as content to this snack bar container. */\n public attachTemplatePortal<C>(\n portal: TemplatePortal<C>\n ): EmbeddedViewRef<C> {\n this.assertNotAttached();\n this.applySnackBarClasses();\n const result = this._portalOutlet.attachTemplatePortal(portal);\n this._afterPortalAttached();\n return result;\n }\n\n /**\n * Attaches a DOM portal to the snack bar container.\n * @deprecated To be turned into a method.\n * @breaking-change 10.0.0\n */\n public attachDomPortal = (portal: DomPortal) => {\n this.assertNotAttached();\n const result = this._portalOutlet.attachDomPortal(portal);\n this._afterPortalAttached();\n return result;\n };\n\n /** Handle end of animations, updating the state of the snackbar. */\n public onAnimationEnd(event: AnimationEvent) {\n const { fromState, toState } = event;\n\n if ((toState === 'void' && fromState !== 'void') || toState === 'hidden') {\n this.completeExit();\n }\n\n if (toState === 'visible') {\n // Note: we shouldn't use `this` inside the zone callback,\n // because it can cause a memory leak.\n const onEnter = this._onEnter;\n\n this._ngZone.run(() => {\n onEnter.next();\n onEnter.complete();\n });\n }\n }\n\n /** Begin animation of snack bar entrance into view. */\n public enter(): void {\n if (!this._destroyed) {\n this._animationState = 'visible';\n this._changeDetectorRef.detectChanges();\n this.screenReaderAnnounce();\n }\n }\n\n /** Begin animation of the snack bar exiting from view. */\n public exit(): Observable<void> {\n // Note: this one transitions to `hidden`, rather than `void`, in order to handle the case\n // where multiple snack bars are opened in quick succession (e.g. two consecutive calls to\n // `MatSnackBar.open`).\n this._animationState = 'hidden';\n\n // Mark this element with an 'exit' attribute to indicate that the snackbar has\n // been dismissed and will soon be removed from the DOM. This is used by the snackbar\n // test harness.\n this._elementRef.nativeElement.setAttribute('mat-exit', '');\n\n // If the snack bar hasn't been announced by the time it exits it wouldn't have been open\n // long enough to visually read it either, so clear the timeout for announcing.\n clearTimeout(this._announceTimeoutId);\n\n return this._onExit;\n }\n\n /** Makes sure the exit callbacks have been invoked when the element is destroyed. */\n public ngOnDestroy() {\n this._destroyed = true;\n this.completeExit();\n }\n\n /**\n * Waits for the zone to settle before removing the element. Helps prevent\n * errors where we end up removing an element which is in the middle of an animation.\n */\n private completeExit() {\n this._ngZone.onMicrotaskEmpty.pipe(take(1)).subscribe(() => {\n this._onExit.next();\n this._onExit.complete();\n });\n }\n\n /** Applies the various positioning and user-configured CSS classes to the snack bar. */\n private applySnackBarClasses() {\n const element: HTMLElement = this._elementRef.nativeElement;\n const panelClasses = this.snackBarConfig.panelClass;\n\n if (panelClasses) {\n if (Array.isArray(panelClasses)) {\n // Note that we can't use a spread here, because IE doesn't support multiple arguments.\n panelClasses.forEach(cssClass => element.classList.add(cssClass));\n } else {\n element.classList.add(panelClasses);\n }\n }\n\n if (this.snackBarConfig.horizontalPosition === 'center') {\n element.classList.add('bao-snack-bar-center');\n }\n\n if (this.snackBarConfig.verticalPosition === 'top') {\n element.classList.add('bao-snack-bar-top');\n }\n }\n\n /**\n * Called after the portal contents have been attached. Can be\n * used to modify the DOM once it's guaranteed to be in place.\n */\n protected _afterPortalAttached() {\n const element: HTMLElement = this._elementRef.nativeElement;\n const panelClasses = this.snackBarConfig.panelClass;\n\n if (panelClasses) {\n if (Array.isArray(panelClasses)) {\n // Note that we can't use a spread here, because IE doesn't support multiple arguments.\n panelClasses.forEach(cssClass => element.classList.add(cssClass));\n } else {\n element.classList.add(panelClasses);\n }\n }\n\n this._exposeToModals();\n }\n\n /**\n * Some browsers won't expose the accessibility node of the live element if there is an\n * `aria-modal` and the live element is outside of it. This method works around the issue by\n * pointing the `aria-owns` of all modals to the live element.\n */\n private _exposeToModals() {\n // Note that the selector here is limited to CDK overlays at the moment in order to reduce the\n // section of the DOM we need to look through. This should cover all the cases we support, but\n // the selector can be expanded if it turns out to be too narrow.\n const id = this._liveElementId;\n const modals = this._document.querySelectorAll(\n 'body > .cdk-overlay-container [aria-modal=\"true\"]'\n );\n\n for (let i = 0; i < modals.length; i++) {\n const modal = modals[i];\n const ariaOwns = modal.getAttribute('aria-owns');\n this._trackedModals.add(modal);\n\n if (!ariaOwns) {\n modal.setAttribute('aria-owns', id);\n } else if (ariaOwns.indexOf(id) === -1) {\n modal.setAttribute('aria-owns', ariaOwns + ' ' + id);\n }\n }\n }\n\n /** Clears the references to the live element from any modals it was added to. */\n private _clearFromModals() {\n this._trackedModals.forEach(modal => {\n const ariaOwns = modal.getAttribute('aria-owns');\n\n if (ariaOwns) {\n const newValue = ariaOwns.replace(this._liveElementId, '').trim();\n\n if (newValue.length > 0) {\n modal.setAttribute('aria-owns', newValue);\n } else {\n modal.removeAttribute('aria-owns');\n }\n }\n });\n this._trackedModals.clear();\n }\n\n /** Asserts that no content is already attached to the container. */\n private assertNotAttached() {\n if (this._portalOutlet.hasAttached()) {\n throw Error(\n 'Attempting to attach snack bar content after content is already attached'\n );\n }\n }\n\n /**\n * Starts a timeout to move the snack bar content to the live region so screen readers will\n * announce it.\n */\n private screenReaderAnnounce() {\n if (!this._announceTimeoutId) {\n this._ngZone.runOutsideAngular(() => {\n this._announceTimeoutId = window.setTimeout(() => {\n const inertElement =\n this._elementRef.nativeElement.querySelector('[aria-hidden]');\n const liveElement =\n this._elementRef.nativeElement.querySelector('[aria-live]');\n\n if (inertElement && liveElement) {\n // If an element in the snack bar content is focused before being moved\n // track it and restore focus after moving to the live region.\n let focusedElement: HTMLElement | null = null;\n if (\n this._platform.isBrowser &&\n document.activeElement instanceof HTMLElement &&\n inertElement.contains(document.activeElement)\n ) {\n focusedElement = document.activeElement;\n }\n\n inertElement.removeAttribute('aria-hidden');\n try {\n liveElement.appendChild(inertElement);\n } catch (error) {\n console.warn(error);\n }\n\n focusedElement?.focus();\n\n this._onAnnounce.next();\n this._onAnnounce.complete();\n }\n }, this._announceDelay);\n });\n }\n }\n}\n","<!-- Initialy holds the snack bar content, will be empty after announcing to screen readers. -->\n<div aria-hidden=\"true\">\n <ng-template cdkPortalOutlet></ng-template>\n</div>\n\n<!-- Will receive the snack bar content from the non-live div, move will happen a short delay after opening -->\n<div\n [attr.aria-live]=\"_live\"\n [attr.role]=\"_role\"\n [attr.id]=\"_liveElementId\"\n></div>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { LiveAnnouncer } from '@angular/cdk/a11y';\nimport { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport {\n ComponentPortal,\n ComponentType,\n PortalInjector,\n TemplatePortal\n} from '@angular/cdk/portal';\nimport {\n ComponentRef,\n EmbeddedViewRef,\n Inject,\n Injectable,\n InjectionToken,\n Injector,\n OnDestroy,\n Optional,\n SkipSelf,\n TemplateRef,\n Type\n} from '@angular/core';\nimport {\n BaoSimpleSnackBarComponent,\n ITextOnlySnackBar\n} from './simple-snack-bar.component';\nimport { BAO_SNACK_BAR_DATA, BaoSnackBarConfig } from './snack-bar-config';\nimport {\n BaoSnackBarContainerComponent,\n IBaoSnackBarContainer\n} from './snack-bar-container';\nimport { BaoSnackBarRef } from './snack-bar-ref';\n\nexport function baoFactory() {\n return new BaoSnackBarConfig();\n}\n\n/** Injection token that can be used to specify default snack bar. */\nexport const BAO_SNACK_BAR_DEFAULT_OPTIONS =\n new InjectionToken<BaoSnackBarConfig>('bao-snack-bar-default-options', {\n providedIn: 'root',\n factory: baoFactory\n });\n\n/**\n * Service to dispatch Material Design snack bar messages.\n */\n@Injectable({ providedIn: 'root' })\nexport class BaoSnackBarService implements OnDestroy {\n /** The component that should be rendered as the snack bar's simple component. */\n protected simpleSnackBarComponent: Type<ITextOnlySnackBar> =\n BaoSimpleSnackBarComponent;\n\n /** The container component that attaches the provided template or component. */\n protected snackBarContainerComponent: Type<IBaoSnackBarContainer> =\n BaoSnackBarContainerComponent;\n\n /**\n * Reference to the current snack bar in the view *at this level* (in the Angular injector tree).\n * If there is a parent snack-bar service, all operations should delegate to that parent\n * via `_openedSnackBarRef`.\n */\n private _snackBarRefAtThisLevel: BaoSnackBarRef<any> | null = null;\n\n constructor(\n private _overlay: Overlay,\n private _live: LiveAnnouncer,\n private _injector: Injector,\n @Optional() @SkipSelf() private _parentSnackBar: BaoSnackBarService,\n @Inject(BAO_SNACK_BAR_DEFAULT_OPTIONS)\n private _defaultConfig: BaoSnackBarConfig\n ) {}\n\n /** Reference to the currently opened snackbar at *any* level. */\n get _openedSnackBarRef(): BaoSnackBarRef<any> | null {\n const parent = this._parentSnackBar;\n return parent ? parent._openedSnackBarRef : this._snackBarRefAtThisLevel;\n }\n\n set _openedSnackBarRef(value: BaoSnackBarRef<any> | null) {\n if (this._parentSnackBar) {\n this._parentSnackBar._openedSnackBarRef = value;\n } else {\n this._snackBarRefAtThisLevel = value;\n }\n }\n\n /**\n * Creates and dispatches a snack bar with a custom component for the content, removing any\n * currently opened snack bars.\n *\n * @param component Component to be instantiated.\n * @param config Extra configuration for the snack bar.\n */\n public openFromComponent<T>(\n component: ComponentType<T>,\n config?: BaoSnackBarConfig\n ): BaoSnackBarRef<T> {\n return this.attach(component, config) as BaoSnackBarRef<T>;\n }\n\n /**\n * Creates and dispatches a snack bar with a custom template for the content, removing any\n * currently opened snack bars.\n *\n * @param template Template to be instantiated.\n * @param config Extra configuration for the snack bar.\n */\n public openFromTemplate(\n template: TemplateRef<any>,\n config?: BaoSnackBarConfig\n ): BaoSnackBarRef<EmbeddedViewRef<any>> {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return this.attach(template, config);\n }\n\n /**\n * Opens a snackbar with a message and an optional action.\n * @param message The message to show in the snackbar.\n * @param toastType The type of of toast to display the snackbar.\n * @param actionLabelOrIcon The label or icon for the snackbar action.\n * @param showClose If true, the snackbar will require user interaction to close.\n * @param config Additional configuration options for the snackbar.\n */\n public open(config: BaoSnackBarConfig): BaoSnackBarRef<ITextOnlySnackBar> {\n const _config = { ...this._defaultConfig, ...config };\n\n // Since the user doesn't have access to the component, we can\n // override the data to pass in our own message, action and type.\n _config.data = {\n message: _config.message,\n toastType: _config.toastType,\n actionLabelOrIcon: _config.actionLabelOrIcon,\n showClose: _config.showClose\n };\n\n if (_config.showClose) _config.duration = 0;\n\n if (!_config.announcementMessage) {\n _config.announcementMessage = _config.message;\n }\n\n return this.openFromComponent(this.simpleSnackBarComponent, _config);\n }\n\n /**\n * Dismisses the currently-visible snack bar.\n */\n public dismiss(): void {\n if (this._openedSnackBarRef) {\n this._openedSnackBarRef.dismiss();\n }\n }\n\n public ngOnDestroy() {\n // Only dismiss the snack bar at the current level on destroy.\n if (this._snackBarRefAtThisLevel) {\n this._snackBarRefAtThisLevel.dismiss();\n }\n }\n\n /**\n * Attaches the snack bar container component to the overlay.\n */\n private attachSnackBarContainer(\n overlayRef: OverlayRef,\n config: BaoSnackBarConfig\n ): IBaoSnackBarContainer {\n const userInjector =\n config && config.viewContainerRef && config.viewContainerRef.injector;\n const injector = new PortalInjector(\n userInjector || this._injector,\n new WeakMap([[BaoSnackBarConfig, config]])\n );\n\n const containerPortal = new ComponentPortal(\n this.snackBarContainerComponent,\n config.viewContainerRef,\n injector\n );\n const containerRef: ComponentRef<IBaoSnackBarContainer> =\n overlayRef.attach(containerPortal);\n containerRef.instance.snackBarConfig = config;\n return containerRef.instance;\n }\n\n /**\n * Places a new component or a template as the content of the snack bar container.\n */\n private attach<T>(\n content: ComponentType<T> | TemplateRef<T>,\n userConfig?: BaoSnackBarConfig\n ): BaoSnackBarRef<T | EmbeddedViewRef<any>> {\n const config = {\n ...new BaoSnackBarConfig(),\n ...this._defaultConfig,\n ...userConfig\n };\n const overlayRef = this.createOverlay(config);\n const container = this.attachSnackBarContainer(overlayRef, config);\n const snackBarRef = new BaoSnackBarRef<T | EmbeddedViewRef<any>>(\n container,\n overlayRef\n );\n\n if (content instanceof TemplateRef) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const portal = new TemplatePortal(content, null!, {\n $implicit: config.data,\n snackBarRef\n } as any);\n\n snackBarRef.instance = container.attachTemplatePortal(portal);\n } else {\n const injector = this.createInjector(config, snackBarRef);\n const portal = new ComponentPortal(content, undefined, injector);\n const contentRef = container.attachComponentPortal<T>(portal);\n\n // We can't pass this via the injector, because the injector is created earlier.\n snackBarRef.instance = contentRef.instance;\n }\n\n this.animateSnackBar(snackBarRef, config);\n this._openedSnackBarRef = snackBarRef;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return this._openedSnackBarRef;\n }\n\n /** Animates the old snack bar out and the new one in. */\n private animateSnackBar(\n snackBarRef: BaoSnackBarRef<any>,\n config: BaoSnackBarConfig\n ) {\n // When the snackbar is dismissed, clear the reference to it.\n snackBarRef.afterDismissed().subscribe(() => {\n // Clear the snackbar ref if it hasn't already been replaced by a newer snackbar.\n // eslint-disable-next-line eqeqeq\n if (this._openedSnackBarRef == snackBarRef) {\n this._openedSnackBarRef = null;\n }\n\n if (config.announcementMessage) {\n this._live.clear();\n }\n });\n\n if (this._openedSnackBarRef) {\n // If a snack bar is already in view, dismiss it and enter the\n // new snack bar after exit animation is complete.\n this._openedSnackBarRef.afterDismissed().subscribe(() => {\n snackBarRef.containerInstance.enter();\n });\n this._openedSnackBarRef.dismiss();\n } else {\n // If no snack bar is in view, enter the new snack bar.\n snackBarRef.containerInstance.enter();\n }\n\n // If a dismiss timeout is provided, set up dismiss based on after the snackbar is opened.\n if (config.duration && config.duration > 0) {\n snackBarRef\n .afterOpened()\n .subscribe(() => snackBarRef.dismissAfter(config.duration));\n }\n\n if (config.announcementMessage) {\n void this._live.announce(config.announcementMessage, config.politeness);\n }\n }\n\n /**\n * Creates a new overlay and places it in the correct location.\n * @param config The user-specified snack bar config.\n */\n private createOverlay(config: BaoSnackBarConfig): OverlayRef {\n const overlayConfig = new OverlayConfig();\n overlayConfig.direction = config.direction;\n\n const positionStrategy = this._overlay.position().global();\n // Set horizontal position.\n const isRtl = config.direction === 'rtl';\n const isLeft =\n config.horizontalPosition === 'left' ||\n (config.horizontalPosition === 'start' && !isRtl) ||\n (config.horizontalPosition === 'end' && isRtl);\n const isRight = !isLeft && config.horizontalPosition !== 'center';\n if (isLeft) {\n positionStrategy.left('0');\n } else if (isRight) {\n positionStrategy.right('0');\n } else {\n positionStrategy.centerHorizontally();\n }\n // Set horizontal position.\n if (config.verticalPosition === 'top') {\n positionStrategy.top('0');\n } else {\n positionStrategy.bottom('0');\n }\n\n overlayConfig.positionStrategy = positionStrategy;\n return this._overlay.create(overlayConfig);\n }\n\n /**\n * Creates an injector to be used inside of a snack bar component.\n * @param config Config that was used to create the snack bar.\n * @param snackBarRef Reference to the snack bar.\n */\n private createInjector<T>(\n config: BaoSnackBarConfig,\n snackBarRef: BaoSnackBarRef<T>\n ): PortalInjector {\n const userInjector =\n config && config.viewContainerRef && config.viewContainerRef.injector;\n\n return new PortalInjector(\n userInjector || this._injector,\n new WeakMap<any, any>([\n [BaoSnackBarRef, snackBarRef],\n [BAO_SNACK_BAR_DATA, config.data]\n ])\n );\n }\n}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { BaoButtonModule } from '../button/module';\nimport { BaoIconModule } from '../icon/module';\nimport { BaoSimpleSnackBarComponent } from './simple-snack-bar.component';\nimport { BaoSnackBarService } from './snack-bar';\nimport { BaoSnackBarConfig } from './snack-bar-config';\nimport { BaoSnackBarContainerComponent } from './snack-bar-container';\n\nconst SNACKBAR_DIRECTIVES = [\n BaoSimpleSnackBarComponent,\n BaoSnackBarContainerComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n OverlayModule,\n PortalModule,\n BaoButtonModule,\n BaoIconModule\n ],\n providers: [BaoSnackBarService, BaoSnackBarConfig],\n declarations: SNACKBAR_DIRECTIVES,\n exports: SNACKBAR_DIRECTIVES\n})\nexport class BaoSnackBarModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport const Breakpoints = {\n XSmall: '(max-width: 575.98px)',\n Small: '(min-width: 576px) and (max-width: 767.98px)',\n Medium: '(min-width: 768px) and (max-width: 991.98px)',\n Large: '(min-width: 992px) and (max-width: 1199.98px)',\n XLarge: '(min-width: 1200px)'\n};\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './colors';\nexport * from './breakpoints';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { BreakpointObserver } from '@angular/cdk/layout';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n Input,\n OnChanges,\n OnInit,\n Renderer2,\n SimpleChanges,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { Breakpoints } from '../core';\n\n/**\n * This component is dynamically added to replace breadcrumb when System Header is viewed on tablet or mobile screens.\n * Used internally by BaoSystemHeaderComponent only, not to be used by host application.\n */\n@Component({\n selector: 'bao-back-navigation-component',\n template: ` <a>\n <bao-icon\n color=\"action\"\n title=\"arrow-left\"\n svgIcon=\"icon-arrow-left\"\n size=\"x-small\"\n ></bao-icon>\n </a>`,\n host: {\n class: 'bao-system-header-back-button'\n }\n})\nexport class BaoBackNavigationComponent implements OnChanges {\n @Input() link: string;\n constructor(\n private renderer: Renderer2,\n private elementRef: ElementRef<HTMLElement>\n ) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['link'] && changes['link'].currentValue) {\n this.renderer.setAttribute(\n this.elementRef.nativeElement.children[0],\n 'href',\n changes['link'].currentValue\n );\n }\n }\n}\n\n/**\n * This directive is to mark the template where the BaoBackNavigationComponent should be dynamically inserted,\n * when a Breadcrumb component needs to be replaced\n */\n@Directive({\n selector: '[backNavigationInsert]'\n})\nexport class BaoBackNavigationInsert {\n constructor(public viewContainerRef: ViewContainerRef) {}\n}\n\n@Component({\n selector: 'bao-system-header',\n templateUrl: './system-header.component.html',\n styleUrls: ['./system-header.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'bao-system-header'\n }\n})\nexport class BaoSystemHeaderComponent implements AfterViewInit, OnInit {\n @ViewChild('textContainer', { static: false })\n private textContainer: ElementRef<HTMLElement>;\n @ViewChild(BaoBackNavigationInsert, { static: true })\n private backButtonInsert: BaoBackNavigationInsert;\n\n public screenType: 'mobile' | 'tablet' | 'desktop' = 'desktop';\n\n constructor(\n private cd: ChangeDetectorRef,\n private breakpointObserver: BreakpointObserver,\n private renderer: Renderer2\n ) {}\n\n get textContainerChildren(): Element[] {\n return Array.from(this.textContainer.nativeElement.children);\n }\n\n ngOnInit() {\n if (\n [Breakpoints.XSmall, Breakpoints.Small].some(size =>\n this.breakpointObserver.isMatched(size)\n )\n ) {\n this.screenType = 'mobile';\n } else if (this.breakpointObserver.isMatched(Breakpoints.Medium)) {\n this.screenType = 'tablet';\n } else if (\n [Breakpoints.Large, Breakpoints.XLarge].some(size =>\n this.breakpointObserver.isMatched(size)\n )\n ) {\n this.screenType = 'desktop';\n }\n }\n\n ngAfterViewInit() {\n this.formatNavigation();\n this.applySizeClass();\n this.cd.detectChanges();\n }\n\n private formatNavigation() {\n // If view is rendered on a mobile/tablet screen\n if (this.screenType == 'mobile' || this.screenType == 'tablet') {\n if (this.textContainerChildren[0].className == 'bao-breadcrumb') {\n // Retrieve link of parent page\n const breadcrumbElementsList =\n this.textContainerChildren[0].children[0];\n const breadcrumbLength = breadcrumbElementsList.children.length;\n const parentLink =\n breadcrumbElementsList.children[breadcrumbLength - 2].attributes[\n 'href'\n ].value;\n // Remove Breadcrumb component and replace it with back button\n this.renderer.removeChild(\n this.textContainer.nativeElement,\n this.textContainerChildren[0]\n );\n const viewContainerRef = this.backButtonInsert.viewContainerRef;\n viewContainerRef.clear();\n const componentRef = viewContainerRef.createComponent(\n BaoBackNavigationComponent\n );\n componentRef.setInput('link', parentLink);\n }\n }\n }\n\n private applySizeClass() {\n const tagInfoContainer =\n this.textContainer.nativeElement.childNodes[\n this.textContainerChildren.length - 1\n ];\n if (this.screenType === 'mobile') {\n this.renderer.addClass(tagInfoContainer, 'mobile');\n }\n }\n}\n","<div class=\"left-side-content\">\n <div class=\"back-navigation-container\">\n <ng-content select=\"a\"></ng-content>\n <ng-template backNavigationInsert></ng-template>\n </div>\n <div #textContainer class=\"text-content\">\n <ng-content select=\"bao-breadcrumb\"></ng-content>\n <ng-content select=\"h1\"></ng-content>\n <div class=\"tag-info-container\">\n <ng-content select=\"bao-tag\"></ng-content>\n <span class=\"additional-info\">\n <ng-content select=\"span\"></ng-content>\n </span>\n </div>\n </div>\n</div>\n<div class=\"button-container\">\n <ng-content></ng-content>\n</div>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport {\n BaoBackNavigationInsert,\n BaoSystemHeaderComponent,\n BaoBackNavigationComponent\n} from './system-header.component';\nimport { BaoIconModule } from '../icon';\n\nconst SYSTEM_HEADER_DIRECTIVES = [\n BaoSystemHeaderComponent,\n BaoBackNavigationInsert,\n BaoBackNavigationComponent\n];\n\n@NgModule({\n imports: [CommonModule, BaoIconModule],\n declarations: [SYSTEM_HEADER_DIRECTIVES],\n exports: [SYSTEM_HEADER_DIRECTIVES]\n})\nexport class BaoSystemHeaderModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './module';\nexport * from './system-header.component';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { NgModule } from '@angular/core';\nimport { BaoAlertModule } from './alert';\nimport { BaoBreadcrumbModule } from './breadcrumb';\nimport { BaoButtonModule } from './button';\nimport { BaoCardModule } from './card';\nimport { BaoCheckboxModule } from './checkbox';\nimport { BaoCommonComponentsModule } from './common-components';\nimport { BaoHeaderInfoModule } from './header-info';\nimport { BaoIconModule } from './icon';\nimport { BaoListModule } from './list';\nimport { BaoRadioModule } from './radio';\nimport { BaoTagModule } from './tag';\nimport { BaoSummaryModule } from './summary';\nimport { BaoAvatarModule } from './avatar';\nimport { BaoTabsModule } from './tabs';\nimport { BaoModalModule } from './modal/module';\nimport { BaoHyperlinkModule } from './hyperlink';\nimport { BaoDropdownMenuModule } from './dropdown-menu';\nimport { BaoFileModule } from './file/module';\nimport { BaoSnackBarModule } from './snack-bar/module';\nimport { BaoSystemHeaderModule } from './system-header';\n\n@NgModule({\n imports: [\n BaoIconModule,\n BaoButtonModule,\n BaoAlertModule,\n BaoCardModule,\n BaoBreadcrumbModule,\n BaoModalModule\n ],\n exports: [\n BaoIconModule,\n BaoButtonModule,\n BaoAlertModule,\n BaoBreadcrumbModule,\n BaoCardModule,\n BaoTagModule,\n BaoHeaderInfoModule,\n BaoListModule,\n BaoCommonComponentsModule,\n BaoCheckboxModule,\n BaoRadioModule,\n BaoSummaryModule,\n BaoAvatarModule,\n BaoTabsModule,\n BaoModalModule,\n BaoHyperlinkModule,\n BaoDropdownMenuModule,\n BaoFileModule,\n BaoSnackBarModule,\n BaoSystemHeaderModule\n // TODO: reactivate once component does not depend on global css BaoBadgeModule,\n ]\n})\nexport class BaoModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'bao-badge',\n templateUrl: './badge.component.html',\n styleUrls: ['./badge.component.scss'],\n host: {\n class: '',\n '[class.positive]': 'type === \"success\"',\n '[class.negative]': 'type === \"danger\"',\n '[class.warning]': 'type === \"warning\"',\n '[class.informative]': 'type === \"info\"'\n }\n})\nexport class BaoBadgeComponent {\n @Input() public type: '' | 'success' | 'danger' | 'warning' | 'info' = '';\n}\n","<ng-content></ng-content>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { BaoBadgeComponent } from './badge.component';\n\nconst BADGE_DIRECTIVES = [BaoBadgeComponent];\n\n@NgModule({\n imports: [CommonModule],\n declarations: [BADGE_DIRECTIVES],\n exports: [BADGE_DIRECTIVES]\n})\nexport class BaoBadgeModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './module';\nexport * from './badge.component';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './enum/display-mode';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './module';\nexport * from './modal';\nexport * from './modal-container';\nexport * from './modal-config';\nexport * from './modal-ref';\nexport * from './modal-directives';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './module';\nexport * from './file-input.component';\nexport * from './file-preview.component';\nexport * from './file-intl';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './module';\nexport * from './snack-bar';\nexport * from './snack-bar-config';\nexport * from './snack-bar-ref';\nexport * from './snack-bar-container';\nexport * from './simple-snack-bar.component';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './lib/bao.module';\nexport * from './lib/button/index';\nexport * from './lib/icon/index';\nexport * from './lib/alert/index';\nexport * from './lib/breadcrumb/index';\nexport * from './lib/card/index';\nexport * from './lib/badge/index';\nexport * from './lib/tag/index';\nexport * from './lib/header-info/index';\nexport * from './lib/list/index';\nexport * from './lib/checkbox/index';\nexport * from './lib/radio/index';\nexport * from './lib/common-components/index';\nexport * from './lib/summary/index';\nexport * from './lib/shared';\nexport * from './lib/avatar';\nexport * from './lib/tabs';\nexport * from './lib/modal';\nexport * from './lib/hyperlink';\nexport * from './lib/dropdown-menu';\nexport * from './lib/file';\nexport * from './lib/snack-bar';\nexport * from './lib/system-header';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["SVG_NAMESPACE","i1.BaoIconDictionary","i1","i2.BaoIconComponent","i3.BaoButtonComponent","DIRECTIVES","SPAN_TEXT_PROPERTY","SCREEN_READER_CLASS_NAME","BAO_ICON","i2.BaoModalInitialConfig","uniqueId","i1.BaoModalRef","i2.BaoModal","i1.BaoFileIntl","i2","i3.BaoErrorTextComponent","i4.BaoLabelTextComponent","i5.BaoButtonComponent","i4.BaoIconComponent","take","i2.BaoSnackBarConfig","i1.BaoIconComponent"],"mappings":"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"}
1
+ {"version":3,"file":"villedemontreal-angular-ui.mjs","sources":["../../../projects/angular-ui/src/lib/core/colors.ts","../../../projects/angular-ui/src/lib/icon/icons-dictionary.ts","../../../projects/angular-ui/src/lib/icon/bao-icon-registry.ts","../../../projects/angular-ui/src/lib/icon/icon.component.ts","../../../projects/angular-ui/src/lib/icon/module.ts","../../../projects/angular-ui/src/lib/button/button.component.ts","../../../projects/angular-ui/src/lib/button/button.component.html","../../../projects/angular-ui/src/lib/button/module.ts","../../../projects/angular-ui/src/lib/alert/alert.component.ts","../../../projects/angular-ui/src/lib/alert/alert.component.html","../../../projects/angular-ui/src/lib/alert/module.ts","../../../projects/angular-ui/src/lib/alert/index.ts","../../../projects/angular-ui/src/lib/breadcrumb/breadcrumb.component.ts","../../../projects/angular-ui/src/lib/breadcrumb/breadcrumb.component.html","../../../projects/angular-ui/src/lib/breadcrumb/module.ts","../../../projects/angular-ui/src/lib/breadcrumb/index.ts","../../../projects/angular-ui/src/lib/button/index.ts","../../../projects/angular-ui/src/lib/card/card.component.ts","../../../projects/angular-ui/src/lib/card/card.component.html","../../../projects/angular-ui/src/lib/card/module.ts","../../../projects/angular-ui/src/lib/card/index.ts","../../../projects/angular-ui/src/lib/common-components/error-text/errorText.component.ts","../../../projects/angular-ui/src/lib/common-components/guiding-text/guidingText.component.ts","../../../projects/angular-ui/src/lib/common-components/label-text/labelText.component.ts","../../../projects/angular-ui/src/lib/common-components/title-text/titleText.component.ts","../../../projects/angular-ui/src/lib/common-components/module.ts","../../../projects/angular-ui/src/lib/checkbox/checkbox-group.component.ts","../../../projects/angular-ui/src/lib/checkbox/checkbox-group.component.html","../../../projects/angular-ui/src/lib/checkbox/checkbox.component.ts","../../../projects/angular-ui/src/lib/checkbox/checkbox.component.html","../../../projects/angular-ui/src/lib/checkbox/module.ts","../../../projects/angular-ui/src/lib/checkbox/index.ts","../../../projects/angular-ui/src/lib/common-components/index.ts","../../../projects/angular-ui/src/lib/header-info/header-info.component.ts","../../../projects/angular-ui/src/lib/header-info/header-info.html","../../../projects/angular-ui/src/lib/header-info/header-info-title-group.html","../../../projects/angular-ui/src/lib/header-info/module.ts","../../../projects/angular-ui/src/lib/header-info/index.ts","../../../projects/angular-ui/src/lib/icon/index.ts","../../../projects/angular-ui/src/lib/list/list.component.ts","../../../projects/angular-ui/src/lib/list/list-item.component.html","../../../projects/angular-ui/src/lib/list/module.ts","../../../projects/angular-ui/src/lib/list/index.ts","../../../projects/angular-ui/src/lib/radio/radio-group.component.ts","../../../projects/angular-ui/src/lib/radio/radio-group.component.html","../../../projects/angular-ui/src/lib/radio/radio.component.ts","../../../projects/angular-ui/src/lib/radio/radio.component.html","../../../projects/angular-ui/src/lib/radio/module.ts","../../../projects/angular-ui/src/lib/radio/index.ts","../../../projects/angular-ui/src/lib/tag/tag.component.ts","../../../projects/angular-ui/src/lib/tag/tag.component.html","../../../projects/angular-ui/src/lib/tag/module.ts","../../../projects/angular-ui/src/lib/tag/index.ts","../../../projects/angular-ui/src/lib/summary/summary.component.ts","../../../projects/angular-ui/src/lib/summary/summary.component.html","../../../projects/angular-ui/src/lib/summary/list-summary.component.ts","../../../projects/angular-ui/src/lib/summary/module.ts","../../../projects/angular-ui/src/lib/summary/index.ts","../../../projects/angular-ui/src/lib/avatar/avatar.component.ts","../../../projects/angular-ui/src/lib/avatar/avatar.component.html","../../../projects/angular-ui/src/lib/avatar/module.ts","../../../projects/angular-ui/src/lib/avatar/index.ts","../../../projects/angular-ui/src/lib/tabs/tabs.component.ts","../../../projects/angular-ui/src/lib/tabs/tabs.component.html","../../../projects/angular-ui/src/lib/tabs/module.ts","../../../projects/angular-ui/src/lib/tabs/index.ts","../../../projects/angular-ui/src/lib/modal/modal-config.ts","../../../projects/angular-ui/src/lib/modal/modal-container.ts","../../../projects/angular-ui/src/lib/modal/modal-container.component.html","../../../projects/angular-ui/src/lib/modal/modal-ref.ts","../../../projects/angular-ui/src/lib/modal/modal.ts","../../../projects/angular-ui/src/lib/modal/modal-directives.ts","../../../projects/angular-ui/src/lib/modal/module.ts","../../../projects/angular-ui/src/lib/hyperlink/hyperlink.component.ts","../../../projects/angular-ui/src/lib/hyperlink/hyperlink.component.html","../../../projects/angular-ui/src/lib/hyperlink/module.ts","../../../projects/angular-ui/src/lib/hyperlink/index.ts","../../../projects/angular-ui/src/lib/dropdown-menu/dropdown-menu.component.ts","../../../projects/angular-ui/src/lib/dropdown-menu/dropdown-menu.component.html","../../../projects/angular-ui/src/lib/dropdown-menu/module.ts","../../../projects/angular-ui/src/lib/dropdown-menu/index.ts","../../../projects/angular-ui/src/lib/file/file-preview.component.ts","../../../projects/angular-ui/src/lib/file/file-preview.component.html","../../../projects/angular-ui/src/lib/file/file-intl.ts","../../../projects/angular-ui/src/lib/file/file-input.component.ts","../../../projects/angular-ui/src/lib/file/file-input.component.html","../../../projects/angular-ui/src/lib/file/module.ts","../../../projects/angular-ui/src/lib/snack-bar/snack-bar-config.ts","../../../projects/angular-ui/src/lib/snack-bar/snack-bar-ref.ts","../../../projects/angular-ui/src/lib/snack-bar/simple-snack-bar.component.ts","../../../projects/angular-ui/src/lib/snack-bar/simple-snack-bar.component.html","../../../projects/angular-ui/src/lib/snack-bar/snack-bar-animations.ts","../../../projects/angular-ui/src/lib/snack-bar/snack-bar-container.ts","../../../projects/angular-ui/src/lib/snack-bar/snack-bar-container.html","../../../projects/angular-ui/src/lib/snack-bar/snack-bar.ts","../../../projects/angular-ui/src/lib/snack-bar/module.ts","../../../projects/angular-ui/src/lib/core/breakpoints.ts","../../../projects/angular-ui/src/lib/core/index.ts","../../../projects/angular-ui/src/lib/system-header/system-header.component.ts","../../../projects/angular-ui/src/lib/system-header/system-header.component.html","../../../projects/angular-ui/src/lib/system-header/module.ts","../../../projects/angular-ui/src/lib/system-header/index.ts","../../../projects/angular-ui/src/lib/bao.module.ts","../../../projects/angular-ui/src/lib/badge/badge.component.ts","../../../projects/angular-ui/src/lib/badge/badge.component.html","../../../projects/angular-ui/src/lib/badge/module.ts","../../../projects/angular-ui/src/lib/badge/index.ts","../../../projects/angular-ui/src/lib/shared/index.ts","../../../projects/angular-ui/src/lib/modal/index.ts","../../../projects/angular-ui/src/lib/file/index.ts","../../../projects/angular-ui/src/lib/snack-bar/index.ts","../../../projects/angular-ui/src/public-api.ts","../../../projects/angular-ui/src/villedemontreal-angular-ui.ts"],"sourcesContent":["/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport const enum BaoColors {\n ACTION = 'action',\n PRIMARY = 'primary',\n PRIMARY_REVERSED = 'primary-reversed',\n SECONDARY = 'secondary',\n TERTIARY = 'tertiary',\n INFORMATIVE = 'informative',\n NEGATIVE = 'negative',\n POSITIVE = 'positive',\n WARNING = 'warning'\n}\n\nexport function baoColorToHex(baoColor: BaoColors): string {\n switch (baoColor) {\n case BaoColors.ACTION:\n return '#097D6C';\n case BaoColors.PRIMARY:\n return '#000000';\n case BaoColors.PRIMARY_REVERSED:\n return '#FFFFFF';\n case BaoColors.SECONDARY:\n return '#637381';\n case BaoColors.TERTIARY:\n return '#ADB5BD';\n case BaoColors.INFORMATIVE:\n return '#0079C4';\n case BaoColors.NEGATIVE:\n return '#D3310A';\n case BaoColors.POSITIVE:\n return '#0DA566';\n case BaoColors.WARNING:\n return '#FFB833';\n default:\n return '#097D6C';\n }\n}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport const ICONS_DCT: { [iconName: string]: string } = {\n 'icon-anchor':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M12 1a4 4 0 011 7.874v12.071A9.004 9.004 0 0020.946 13H19a1 1 0 110-2h3a1 1 0 011 1c0 6.075-4.925 11-11 11a1 1 0 01-1-1V8.874A4.002 4.002 0 0112 1zM5 11a1 1 0 110 2H3.055a9.003 9.003 0 005.372 7.263 1 1 0 01-.795 1.835A11.001 11.001 0 011 12a1 1 0 011-1h3zm7-8a2 2 0 100 4 2 2 0 000-4z'/>\",\n 'icon-apps':\n \"<path fill-rule='evenodd' d='M4 1h4a3 3 0 013 3v4a3 3 0 01-3 3H4a3 3 0 01-3-3V4a3 3 0 013-3zm0 2a1 1 0 00-1 1v4a1 1 0 001 1h4a1 1 0 001-1V4a1 1 0 00-1-1H4zm0 10h4a3 3 0 013 3v4a3 3 0 01-3 3H4a3 3 0 01-3-3v-4a3 3 0 013-3zm0 2a1 1 0 00-1 1v4a1 1 0 001 1h4a1 1 0 001-1v-4a1 1 0 00-1-1H4zM16 1h4a3 3 0 013 3v4a3 3 0 01-3 3h-4a3 3 0 01-3-3V4a3 3 0 013-3zm0 2a1 1 0 00-1 1v4a1 1 0 001 1h4a1 1 0 001-1V4a1 1 0 00-1-1h-4zm4 18a1 1 0 010 2h-4a3 3 0 01-3-3v-4a3 3 0 013-3h4a3 3 0 013 3v3a1 1 0 01-2 0v-3a1 1 0 00-1-1h-4a1 1 0 00-1 1v4a1 1 0 001 1h4z'/>\",\n 'icon-archive':\n \"<path fill-rule='evenodd' d='M2 9H1a1 1 0 01-1-1V3a1 1 0 011-1h22a1 1 0 011 1v5a1 1 0 01-1 1H4v11h16v-8a1 1 0 012 0v9a1 1 0 01-1 1H3a1 1 0 01-1-1V9zm0-5v3h20V4H2zm8 9a1 1 0 010-2h4a1 1 0 010 2h-4z'/>\",\n 'icon-arrow-left':\n \"<path fill-rule='evenodd' d='M3.073 11.624a1 1 0 00.22 1.083l6 6a1 1 0 001.414-1.414L6.414 13H20a1 1 0 000-2H4a1 1 0 00-.921.61zm7.634-4.917a1 1 0 10-1.414-1.414L6.258 8.328a1 1 0 101.414 1.414l3.035-3.035z'/>\",\n 'icon-arrow-right':\n \"<path fill-rule='evenodd' d='M20.927 11.624a1 1 0 01-.22 1.083l-6 6a1 1 0 01-1.414-1.414L17.586 13H4a1 1 0 010-2h16a1 1 0 01.921.61zm-7.634-4.917a1 1 0 111.414-1.414l3.035 3.035a1 1 0 11-1.414 1.414l-3.035-3.035z'/>\",\n 'icon-bell-active':\n \"<path fill-rule='evenodd' d='M12 1a1 1 0 01.993.883L13 2v1.07c3.392.486 6 3.404 6 6.93v4.172c0 1.545.614 3.028 1.707 4.12.63.63.184 1.708-.707 1.708h-5l-.005.176A3 3 0 019 20.001L4 20c-.89 0-1.337-1.077-.707-1.707A5.828 5.828 0 005 14.172V10a7.002 7.002 0 016-6.93V2a1 1 0 011-1zm1 19h-2a1 1 0 002 0zM12 5a5 5 0 00-5 5v4.172C7 15.524 6.65 16.84 6 18h12c-.65-1.16-1-2.476-1-3.828V10a5 5 0 00-5-5zM5.6 1.793a1 1 0 010 1.414 8.967 8.967 0 00-2.636 6.364 1 1 0 11-2 0c0-2.898 1.132-5.688 3.222-7.778a1 1 0 011.415 0zm14.143 0a10.967 10.967 0 013.221 7.778 1 1 0 01-2 0 8.967 8.967 0 00-2.636-6.364 1 1 0 111.415-1.414z'/>\",\n 'icon-bell-off':\n \"<path fill-rule='evenodd' d='M1.613.21l.094.083 22 22a1 1 0 01-1.32 1.497l-.094-.083L18.584 20H15V20a3 3 0 01-6 0v-.001L4 20c-.852 0-1.297-.986-.783-1.623l.076-.084A5.828 5.828 0 005 14.172c0-.029.001-.057.003-.085L5 14v-4c0-1.004.248-1.875.75-2.832L.294 1.708A1 1 0 011.613.21zM11 19.999V20a1 1 0 002 0v-.001h-2zM7.257 8.674c-.15.385-.23.747-.252 1.126L7 10v4l-.005.083.005.089c0 1.24-.294 2.449-.844 3.535L6 18l10.584-.001-9.327-9.325zM12 1a1 1 0 01.993.883L13 2l.001 1.071A7.002 7.002 0 0119 10v3a1 1 0 01-2 0v-3a5 5 0 00-7.172-4.505 1 1 0 11-.87-1.8A6.955 6.955 0 0111 3.07V2a1 1 0 011-1z'/>\",\n 'icon-bell':\n \"<path fill-rule='evenodd' d='M12 1a1 1 0 011 1l.001 1.071A7.002 7.002 0 0119 10v4.172c0 1.545.614 3.028 1.707 4.12.63.63.184 1.708-.707 1.708h-5a3 3 0 01-6 0H4c-.89 0-1.337-1.077-.707-1.707A5.828 5.828 0 005 14.172V10a7.002 7.002 0 016-6.93V2a1 1 0 011-1zm1 19h-2a1 1 0 002 0zM12 5a5 5 0 00-5 5v4.172C7 15.524 6.65 16.84 6 18h12c-.65-1.16-1-2.476-1-3.828V10a5 5 0 00-5-5z'/>\",\n 'icon-bolt':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M11 15v7c0 .99 1.283 1.378 1.832.555l8-12A1 1 0 0020 9h-7V2c0-.99-1.283-1.378-1.832-.555l-8 12A1 1 0 004 15h7zm0-9.697V10a1 1 0 001 1h6.131L13 18.697V14a1 1 0 00-1-1H5.868L11 5.303z'/>\",\n 'icon-book':\n \"<path fill-rule='evenodd' d='M11 7.5l-.4-.3A11 11 0 005 5.046v10.993a13 13 0 016 2.007V7.5zm2 0v10.546a13 13 0 016-2.007V5.046A11 11 0 0013.4 7.2l-.4.3zM3 7V4a1 1 0 011-1 13 13 0 017.8 2.6l.2.15.2-.15A13 13 0 0120 3a1 1 0 011 1v3h2a1 1 0 011 1v2a1 1 0 01-2 0V9h-1v8a1 1 0 01-1 1 11 11 0 00-4.583 1H22v-5a1 1 0 012 0v6a1 1 0 01-1 1H1a1 1 0 01-1-1V8a1 1 0 011-1h2zm0 2H2v10h6.583A11 11 0 004 18a1 1 0 01-1-1V9z'/>\",\n 'icon-briefcase':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M14 2h-4a3 3 0 00-3 3v1H4a3 3 0 00-3 3v2.977a1 1 0 000 .046V19a3 3 0 003 3h16a3 3 0 003-3v-3a1 1 0 10-2 0v3a1 1 0 01-1 1H4a1 1 0 01-1-1v-5.523l8.629 3.451a1 1 0 00.742 0l9.979-3.99a1.002 1.002 0 00.65-.961V9a3 3 0 00-3-3h-3V5a3 3 0 00-3-3zm7 9.323V9a1 1 0 00-1-1H4a1 1 0 00-1 1v2.323l9 3.6 9-3.6zM15 6H9V5a1 1 0 011-1h4a1 1 0 011 1v1z'/>\",\n 'icon-calendar':\n \"<path fill-rule='evenodd' d='M20 10H4v9a1 1 0 001 1h14a1 1 0 001-1v-2a1 1 0 012 0v2a3 3 0 01-3 3H5a3 3 0 01-3-3V5a3 3 0 013-3h2V1a1 1 0 112 0v1h6V1a1 1 0 012 0v1h2a3 3 0 013 3v8a1 1 0 01-2 0v-3zm0-2V5a1 1 0 00-1-1h-2v1a1 1 0 01-2 0V4H9v1a1 1 0 11-2 0V4H5a1 1 0 00-1 1v3h16z'/>\",\n 'icon-cell-phone':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M4 4C4 2.34315 5.34315 1 7 1H17C18.6569 1 20 2.34315 20 4V20C20 21.6569 18.6569 23 17 23H7C5.34315 23 4 21.6569 4 20V4ZM6 4C6 3.44772 6.44772 3 7 3H17C17.5523 3 18 3.44772 18 4V20C18 20.5523 17.5523 21 17 21H7C6.44771 21 6 20.5523 6 20V4ZM12 19C12.5523 19 13 18.5523 13 18C13 17.4477 12.5523 17 12 17C11.4477 17 11 17.4477 11 18C11 18.5523 11.4477 19 12 19Z' />\",\n 'icon-check-circle-full':\n \"<path fill-rule='evenodd' d='M12 23C5.925 23 1 18.075 1 12S5.925 1 12 1s11 4.925 11 11-4.925 11-11 11zm3.293-13.707L11 13.586l-1.293-1.293a1 1 0 10-1.414 1.414l2 2a1 1 0 001.414 0l5-5a1 1 0 10-1.414-1.414z'/>\",\n 'icon-check-circle':\n \"<path fill-rule='evenodd' d='M21.542 17.477a1 1 0 01-1.734-.997A8.953 8.953 0 0021 12a9 9 0 10-9 9 8.953 8.953 0 004.484-1.195 1 1 0 01.998 1.733A10.953 10.953 0 0112 23C5.925 23 1 18.075 1 12S5.925 1 12 1s11 4.925 11 11c0 1.948-.508 3.824-1.458 5.477zm-6.25-8.184a1 1 0 011.415 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L11 13.586l4.293-4.293z'/>\",\n 'icon-check':\n \"<path fill-rule='evenodd' d='M19.293 6.293a1 1 0 011.414 1.414l-7.947 7.948a1 1 0 01-1.415-1.415l7.948-7.947zm-9.586 11a1 1 0 11-1.414 1.414l-5-5a1 1 0 011.414-1.414l5 5z'/>\",\n 'icon-chevron-down':\n \"<path fill-rule='evenodd' d='M12 12.586l3.293-3.293a1 1 0 011.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L12 12.586z'/>\",\n 'icon-chevron-left':\n \"<path fill-rule='evenodd' d='M11.414 12l3.293-3.293a1 1 0 00-1.414-1.414l-4 4a1 1 0 000 1.414l4 4a1 1 0 001.414-1.414L11.414 12z'/>\",\n 'icon-chevron-right':\n \"<path fill-rule='evenodd' d='M12.586 12L9.293 8.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414-1.414L12.586 12z'/>\",\n 'icon-chevron-up':\n \"<path fill-rule='evenodd' d='M12 11.414l3.293 3.293a1 1 0 001.414-1.414l-4-4a1 1 0 00-1.414 0l-4 4a1 1 0 001.414 1.414L12 11.414z'/>\",\n 'icon-clipboard':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M9 1h6a2 2 0 012 2h1a3 3 0 013 3v10a1 1 0 11-2 0V6a1 1 0 00-1-1h-1a2 2 0 01-2 2H9a2 2 0 01-2-2H6a1 1 0 00-1 1v14a1 1 0 001 1h12a1 1 0 001-1 1 1 0 112 0 3 3 0 01-3 3H6a3 3 0 01-3-3V6a3 3 0 013-3h1a2 2 0 012-2zm0 3v1h6V3H9v1z'/>\",\n 'icon-clock':\n \"<path fill-rule='evenodd' d='M21.542 17.477a1 1 0 01-1.734-.997A8.953 8.953 0 0021 12a9 9 0 10-9 9 8.953 8.953 0 004.484-1.195 1 1 0 01.998 1.733A10.953 10.953 0 0112 23C5.925 23 1 18.075 1 12S5.925 1 12 1s11 4.925 11 11c0 1.948-.508 3.824-1.458 5.477zM13 6v5.586l2.707 2.707a1 1 0 01-1.414 1.414l-3-3A1 1 0 0111 12V6a1 1 0 012 0z'/>\",\n 'icon-comment':\n \"<path fill-rule='evenodd' d='M4 18.586V5a1 1 0 011-1h14a1 1 0 000-2H5a3 3 0 00-3 3v16c0 .89 1.077 1.337 1.707.707L7.414 18H19a3 3 0 003-3V6a1 1 0 00-2 0v9a1 1 0 01-1 1H7a1 1 0 00-.707.293L4 18.586z'/>\",\n 'icon-cone-fill':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M9.82 2a1 1 0 00-.98.804L8.2 6h7.6l-.64-3.196A1 1 0 0014.18 2H9.82zm6.78 8H7.4l-.8 4h10.8l-.8-4zm1.18 12H5a1 1 0 01-1-1v-2a1 1 0 011-1H19a1 1 0 011 1v2a1 1 0 01-1 1h-1.22z'/>\",\n 'icon-cone':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M10 2h2a1 1 0 01.117 1.993L12 4h-1.18l-.601 3h3.561l-.358-1.79a1 1 0 011.932-.505l.03.113L17.818 17H19a1 1 0 011 1v3a1 1 0 01-1 1H5a1 1 0 01-1-1v-3a1 1 0 011-1h1.18L9.02 2.804a1 1 0 01.862-.797L10 2h2-2zm8 17H6v1h12v-1zm-2.82-5H8.819l-.6 3h7.561l-.6-3zm-1-5H9.819l-.6 3h5.561l-.6-3z'/>\",\n 'icon-copy':\n \"<path fill-rule='evenodd' d='M11 8h9a3 3 0 013 3v9a3 3 0 01-3 3h-9a3 3 0 01-3-3v-9a3 3 0 013-3zm0 2a1 1 0 00-1 1v9a1 1 0 001 1h9a1 1 0 001-1v-9a1 1 0 00-1-1h-9zm-6 4a1 1 0 010 2H4a3 3 0 01-3-3V4a3 3 0 013-3h9a3 3 0 013 3v1a1 1 0 01-2 0V4a1 1 0 00-1-1H4a1 1 0 00-1 1v9a1 1 0 001 1h1z'/>\",\n 'icon-copyright':\n \"<path fill-rule='evenodd' d='M12 23c6.075 0 11-4.925 11-11S18.075 1 12 1 1 5.925 1 12s4.925 11 11 11zm0-2a9 9 0 110-18 9 9 0 010 18zm3.536-12.536a5 5 0 100 7.072 1 1 0 00-1.415-1.415 3 3 0 110-4.242 1 1 0 001.415-1.415z'/>\",\n 'icon-cut':\n \"<path fill-rule='evenodd' d='M11.586 12L9.032 9.446a4 4 0 111.414-1.414L13 10.586l7.293-7.293a1 1 0 011.414 1.414l-11.26 11.261a4 4 0 11-1.414-1.414L11.585 12zM8.449 7.378A2 2 0 105.55 4.622a2 2 0 002.9 2.756zm-.07 9.173a2 2 0 10-2.756 2.899 2 2 0 002.755-2.9zm6.385-1.363a1 1 0 011.412-1.416l5.53 5.52a1 1 0 01-1.412 1.416l-5.53-5.52z'/>\",\n 'icon-delivery':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M15 4H2v5a1 1 0 01-2 0V3a1 1 0 011-1h15a1 1 0 011 1v4h3a1 1 0 01.707.293l3 3A1 1 0 0124 11v5a1 1 0 01-1 1h-1.337a3.5 3.5 0 11-6.326 0H8.663a3.5 3.5 0 11-6.326 0H1a1 1 0 01-1-1v-3a1 1 0 112 0v2h13V4zm3.5 13a1.5 1.5 0 100 3 1.5 1.5 0 000-3zm0-2H22v-3.586L19.586 9H17v6h1.5zM4 18.5a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0z'/>\",\n 'icon-dot-bullet': \"<circle cx='12' cy='12' r='4' fill-rule='evenodd'/>\",\n 'icon-dot-interpunct': \"<circle cx='12' cy='12' r='2' fill-rule='evenodd'/>\",\n 'icon-download':\n \"<path fill-rule='evenodd' d='M12.376 15.927a1 1 0 01-1.083-.22l-5-5a1 1 0 011.414-1.414L11 12.586V3a1 1 0 012 0v12a1 1 0 01-.61.921zM20 15a1 1 0 012 0v4a3 3 0 01-3 3H5a3 3 0 01-3-3v-4a1 1 0 012 0v4a1 1 0 001 1h14a1 1 0 001-1v-4zm-3.707-5.707a1 1 0 011.414 1.414l-2 2a1 1 0 01-1.414-1.414l2-2z'/>\",\n 'icon-droplet':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M11.293 1.293a1 1 0 011.414 0l2 2a1 1 0 01-1.414 1.414L12 3.414 8.707 6.707C6.321 9.093 5 11.38 5 13a7 7 0 1014 0c0-1.465-.915-3.295-2.744-5.332a1 1 0 111.488-1.336C19.872 8.702 21 10.957 21 13a9 9 0 11-18 0c0-2.268 1.567-4.982 4.293-7.707l4-4zm2.828 8.171a1 1 0 011.415 0 5 5 0 010 7.071 1 1 0 11-1.415-1.414 3 3 0 000-4.242 1 1 0 010-1.415z'/>\",\n 'icon-duplicate':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M16 4a8 8 0 11-4 14.93A8 8 0 1112 5.07 7.949 7.949 0 0116 4zM8 6a6 6 0 102.251 11.563A7.975 7.975 0 018 12c0-2.162.857-4.123 2.25-5.563A5.959 5.959 0 008 6zm8 0c-.796 0-1.556.155-2.251.437A7.975 7.975 0 0116 12a7.974 7.974 0 01-2.25 5.563A6 6 0 1016 6z'/>\",\n 'icon-edit':\n \"<path fill-rule='evenodd' d='M15.707 4.707a1 1 0 00-1.414-1.414l-2 2-10 10A1 1 0 002 16v5a1 1 0 001 1h5a1 1 0 00.707-.293l10-10 3-3a1 1 0 000-1.414l-3-3a1 1 0 10-1.414 1.414L19.586 8 18 9.586 14.414 6l1.293-1.293zM13 7.414l-9 9V20h3.586l9-9L13 7.414z'/>\",\n 'icon-email':\n \"<path fill-rule='evenodd' d='M1 6.012v-.03A3.006 3.006 0 014 3h16a3.006 3.006 0 013 2.983V18c0 1.652-1.348 3-3 3h-2a1 1 0 010-2h2c.548 0 1-.452 1-1V7.92l-8.427 5.9a1 1 0 01-1.146 0L3 7.92V18c0 .548.452 1 1 1h10a1 1 0 010 2H4c-1.652 0-3-1.348-3-3V6.012zM20 5H4c-.388 0-.728.227-.893.554L12 11.779l8.893-6.225A1.006 1.006 0 0020 5z'/>\",\n 'icon-error':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M21.542 17.477a1 1 0 11-1.734-.997A8.953 8.953 0 0021 12a9 9 0 10-9 9 8.954 8.954 0 004.484-1.195 1 1 0 11.998 1.733A10.952 10.952 0 0112 23C5.925 23 1 18.075 1 12S5.925 1 12 1s11 4.925 11 11c0 1.948-.508 3.824-1.458 5.477zM11 7a1 1 0 112 0v6a1 1 0 11-2 0V7zm1 9a1 1 0 100 2 1 1 0 000-2z'/>\",\n 'icon-exclamation':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M10.074 1a1 1 0 00-.997 1.071l.857 12a1 1 0 00.997.929h2.138a1 1 0 00.997-.929l.857-12A1 1 0 0013.927 1h-3.852zM12 17a3 3 0 100 6 3 3 0 000-6z'/>\",\n 'icon-externallink':\n \"<path fill-rule='evenodd' d='M16.586 6H13a1 1 0 010-2h6a1 1 0 011 1v6a1 1 0 01-2 0V7.414l-6.293 6.293a1 1 0 01-1.414-1.414L16.586 6zM16 15a1 1 0 012 0v2a3 3 0 01-3 3H7a3 3 0 01-3-3V9a3 3 0 013-3h2a1 1 0 110 2H7a1 1 0 00-1 1v8a1 1 0 001 1h8a1 1 0 001-1v-2z'/>\",\n 'icon-eye-off':\n \"<path fill-rule='evenodd' d='M16.371 17.786l-2.321-2.322A4 4 0 018.536 9.95L5.987 7.401a17.45 17.45 0 00-3.844 4.602 18.513 18.513 0 002.462 3.313C6.776 17.632 9.255 19 11.984 19a9.07 9.07 0 004.387-1.214zm2.264-.565a1 1 0 01.022.022l5.05 5.05a1 1 0 01-1.414 1.414l-4.467-4.467A11.089 11.089 0 0112 21c-3.38 0-6.339-1.632-8.855-4.316a20.492 20.492 0 01-2.25-2.891 15.188 15.188 0 01-.79-1.346 1 1 0 01.014-.92 19.45 19.45 0 014.45-5.544L.292 1.707A1 1 0 111.707.293L6.755 5.34a1 1 0 01.022.022l3.806 3.806.007.007 4.234 4.234.007.007 3.804 3.804zm-8.607-5.779a1.999 1.999 0 002.53 2.53l-2.53-2.53zm11.398-.15a18.513 18.513 0 00-2.03-2.608C17.223 6.368 14.745 5 11.997 5a8.12 8.12 0 00-1.87.214 1 1 0 01-.456-1.948A10.116 10.116 0 0112 3c3.38 0 6.339 1.632 8.855 4.316a20.492 20.492 0 012.25 2.891c.385.596.649 1.065.79 1.346a1 1 0 01-.013.918 19.5 19.5 0 01-2.277 3.363 1 1 0 01-1.53-1.288 17.5 17.5 0 001.783-2.548c-.126-.217-.27-.454-.432-.705z'/>\",\n 'icon-eye':\n \"<path fill-rule='evenodd' d='M2.574 12.707c.575.89 1.254 1.781 2.03 2.61C6.777 17.631 9.255 19 12 19c2.745 0 5.224-1.368 7.395-3.684A18.513 18.513 0 0021.86 12a18.513 18.513 0 00-2.464-3.316C17.224 6.368 14.745 5 12 5 9.255 5 6.776 6.368 4.605 8.684A18.513 18.513 0 002.14 12c.126.218.27.455.433.707zM.106 11.553c.14-.281.404-.75.788-1.346a20.492 20.492 0 012.251-2.89C5.661 4.631 8.62 3 12 3c3.38 0 6.339 1.632 8.855 4.316a20.492 20.492 0 012.25 2.891c.385.596.649 1.065.79 1.346a1 1 0 010 .894c-.141.281-.405.75-.79 1.346a20.492 20.492 0 01-2.25 2.89C18.339 19.369 15.38 21 12 21c-3.38 0-6.339-1.632-8.855-4.316a20.492 20.492 0 01-2.25-2.891 15.188 15.188 0 01-.79-1.346 1 1 0 010-.894zM12 16a4 4 0 110-8 4 4 0 010 8zm0-2a2 2 0 100-4 2 2 0 000 4z'/>\",\n 'icon-file-edit':\n \"<path fill-rule='evenodd' d='M16 8.414l-7 7V18h2.586l7-7L16 8.414zM17.414 7L20 9.586 21.586 8 19 5.414 17.414 7zm-4.707 12.707A1 1 0 0112 20H8a1 1 0 01-1-1v-4a1 1 0 01.293-.707l11-11a1 1 0 011.414 0l4 4a1 1 0 010 1.414l-11 11zM16 0a1 1 0 010 2H6a1 1 0 00-1 1v18a1 1 0 001 1h12a1 1 0 001-1v-4a1 1 0 012 0v4a3 3 0 01-3 3H6a3 3 0 01-3-3V3a3 3 0 013-3h10z'/>\",\n 'icon-file-pdf':\n \"<path fill-rule='evenodd' d='M21 13h1a1 1 0 010 2h-1v2a1 1 0 01-2 0v-6a1 1 0 011-1h3a1 1 0 010 2h-2v1zm-6-8.586V7h2.586L15 4.414zm5.707 2.879C21.337 7.923 20.891 9 20 9h-6a1 1 0 01-1-1V3H6a1 1 0 00-1 1v16a1 1 0 001 1h12a1 1 0 001-1 1 1 0 012 0 3 3 0 01-3 3H6a3 3 0 01-3-3V4a3 3 0 013-3h8a1 1 0 01.707.293l6 6zM10 13a1 1 0 00-1-1v2a1 1 0 001-1zm-1 4c0 1.333-2 1.333-2 0v-6a1 1 0 011-1h1a3 3 0 010 6v1zm6-1a1 1 0 001-1v-2a1 1 0 00-1-1v4zm-1-6h1a3 3 0 013 3v2a3 3 0 01-3 3h-1a1 1 0 01-1-1v-6a1 1 0 011-1z'/>\",\n 'icon-file':\n \"<path fill-rule='evenodd' d='M15 4.414V7h2.586L15 4.414zm5.707 2.879C21.337 7.923 20.891 9 20 9h-6a1 1 0 01-1-1V3H6a1 1 0 00-1 1v16a1 1 0 001 1h12a1 1 0 001-1v-8a1 1 0 012 0v8a3 3 0 01-3 3H6a3 3 0 01-3-3V4a3 3 0 013-3h8a1 1 0 01.707.293l6 6z'/>\",\n 'icon-filters':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M5 10V3a1 1 0 00-2 0v7a1 1 0 102 0zm-1 3H1a1 1 0 100 2h2v6a1 1 0 102 0v-6h2a1 1 0 100-2H4zm9-1v9a1 1 0 11-2 0v-9a1 1 0 112 0zM9 9h6a1 1 0 100-2h-2V3a1 1 0 10-2 0v4H9a1 1 0 100 2zm12 8v4a1 1 0 11-2 0v-4h-2a1 1 0 110-2h6a1 1 0 110 2h-2zm0-5V3a1 1 0 10-2 0v9a1 1 0 102 0z'/>\",\n 'icon-flag':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M6.246 3.428A4.09 4.09 0 006 3.536v9.86C6.82 13.143 7.814 13 9 13c1.417 0 2.383.276 4.371 1.072 1.762.704 2.546.928 3.629.928.73 0 1.361-.063 1.902-.177a1 1 0 11.413 1.956c-.68.144-1.45.221-2.315.221-1.417 0-2.383-.276-4.371-1.072C10.867 15.224 10.083 15 9 15c-1.189 0-2.094.165-2.754.428a4.077 4.077 0 00-.246.108V22a1 1 0 11-2 0V3a1 1 0 01.293-.707c.22-.22.614-.483 1.21-.721C6.407 1.21 7.564 1 9 1c1.417 0 2.383.276 4.371 1.072C15.133 2.776 15.917 3 17 3c1.189 0 2.094-.165 2.754-.428.341-.137.508-.249.539-.28C20.923 1.663 22 2.11 22 3v9a1 1 0 11-2 0V4.604c-.82.253-1.814.396-3 .396-1.417 0-2.383-.276-4.371-1.072C10.867 3.224 10.083 3 9 3c-1.189 0-2.094.165-2.754.428z'/>\",\n 'icon-folder':\n \"<path fill-rule='evenodd' d='M8.465 4l1.703 2.555A1 1 0 0011 7h9a1 1 0 011 1v10a1 1 0 002 0V8a3 3 0 00-3-3h-8.465L9.832 2.445A1 1 0 009 2H4a3 3 0 00-3 3v14a3 3 0 003 3h16a1 1 0 000-2H4a1 1 0 01-1-1V5a1 1 0 011-1h4.465z'/>\",\n 'icon-heart':\n \"<path fill-rule='evenodd' d='M12 4.256l-.353-.353a6.501 6.501 0 00-9.194 9.194l8.84 8.84a1 1 0 001.414 0l5.78-5.78a1 1 0 00-1.414-1.414L12 19.816l-8.133-8.133a4.501 4.501 0 016.366-6.366l1.06 1.06a1 1 0 001.414 0l1.06-1.06a4.5 4.5 0 116.366 6.366 1 1 0 001.414 1.414A6.5 6.5 0 0016.95 1.998a6.5 6.5 0 00-4.597 1.905L12 4.256z'/>\",\n 'icon-help':\n \"<path fill-rule='evenodd' d='M21.542 17.477a1 1 0 01-1.734-.997A8.953 8.953 0 0021 12a9 9 0 10-9 9 8.953 8.953 0 004.484-1.195 1 1 0 01.998 1.733A10.953 10.953 0 0112 23C5.925 23 1 18.075 1 12S5.925 1 12 1s11 4.925 11 11c0 1.948-.508 3.824-1.458 5.477zm-11.498-8.14a1 1 0 01-1.887-.664 4 4 0 017.773 1.332c0 1.28-.758 2.29-1.945 3.082a7.575 7.575 0 01-1.739.867 1 1 0 01-.632-1.898 5.988 5.988 0 001.262-.633c.687-.459 1.054-.948 1.054-1.42a2 2 0 00-3.886-.666zm1.26 8.375a1 1 0 111.413-1.414 1 1 0 01-1.414 1.414z'/>\",\n 'icon-home':\n \"<path fill-rule='evenodd' d='M5 11v10h4v-6a1 1 0 011-1h4a1 1 0 011 1v6h4v-7a1 1 0 012 0v8a1 1 0 01-1 1h-6a1 1 0 01-1-1v-6h-2v6a1 1 0 01-1 1H4a1 1 0 01-1-1V11H2c-.945 0-1.363-1.19-.625-1.78l10-8a1 1 0 011.25 0l10 8c.738.59.32 1.78-.625 1.78H5zm14.15-2L12 3.28 4.85 9h14.3z'/>\",\n 'icon-image':\n \"<path fill-rule='evenodd' d='M20 12.586V5a1 1 0 00-1-1H5a1 1 0 00-1 1v14a1 1 0 001 1h14a1 1 0 001-1v-3.586l-4.046-4.045-7.295 6.384a1 1 0 01-1.318-1.506l8-7a1 1 0 011.366.046L20 12.586zM5 2h14a3 3 0 013 3v14a3 3 0 01-3 3H5a3 3 0 01-3-3V5a3 3 0 013-3zm3.5 9a2.5 2.5 0 110-5 2.5 2.5 0 010 5zm0-2a.5.5 0 100-1 .5.5 0 000 1z'/>\",\n 'icon-info':\n \"<path fill-rule='evenodd' d='M21.542 17.477a1 1 0 01-1.734-.997A8.953 8.953 0 0021 12a9 9 0 10-9 9 8.953 8.953 0 004.484-1.195 1 1 0 01.998 1.733A10.953 10.953 0 0112 23C5.925 23 1 18.075 1 12S5.925 1 12 1s11 4.925 11 11c0 1.948-.508 3.824-1.458 5.477zM12 6a1 1 0 110 2 1 1 0 010-2zm-1 6h-1a1 1 0 010-2h2a1 1 0 011 1v6a1 1 0 01-2 0v-5z'/>\",\n 'icon-key':\n \"<path fill-rule='evenodd' d='M15 10.414l-3.07 3.07a6.017 6.017 0 01.936 5.067 1 1 0 01-1.933-.513 4.012 4.012 0 00-1.054-3.885 4.018 4.018 0 00-5.634.05 4.017 4.017 0 00-.056 5.626A4.018 4.018 0 008.08 20.89a1 1 0 01.513 1.933 6.022 6.022 0 01-5.836-1.597 6.02 6.02 0 017.741-9.14l9.794-9.793a1 1 0 011.414 1.414L20.414 5l2.293 2.293a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0L15 10.414zM16.414 9L18 10.586 20.586 8 19 6.414 16.414 9z'/>\",\n 'icon-layers':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M19.764 7L12 10.882 4.236 7l8.211-4.106a1 1 0 10-.894-1.788l-10 5a1 1 0 000 1.788l10 5a1 1 0 00.894 0l10-5a1 1 0 000-1.788l-6-3a1 1 0 10-.894 1.788L19.763 7zM12 20.882l-9.553-4.776a1 1 0 10-.894 1.788l10 5a1 1 0 00.894 0l10-5a1 1 0 10-.894-1.788L12 20.882zm-10.894-9.33a1 1 0 011.341-.446L12 15.882l9.553-4.776a1 1 0 11.894 1.788l-10 5a1 1 0 01-.894 0l-10-5a1 1 0 01-.447-1.341z'/>\",\n 'icon-link':\n \"<path fill-rule='evenodd' d='M15 8a1 1 0 010-2h3a6 6 0 010 12h-3a1 1 0 010-2h3a4 4 0 100-8h-3zm-6 8a1 1 0 010 2H6A6 6 0 116 6h3a1 1 0 110 2H6a4 4 0 100 8h3zm-1-3a1 1 0 010-2h8a1 1 0 010 2H8z'/>\",\n 'icon-list':\n \"<path fill-rule='evenodd' d='M8 7a1 1 0 110-2h10a1 1 0 010 2H8zm0 6a1 1 0 010-2h13a1 1 0 010 2H8zm0 6a1 1 0 010-2h6a1 1 0 010 2H8zM3 7a1 1 0 110-2h1a1 1 0 110 2H3zm0 6a1 1 0 010-2h1a1 1 0 010 2H3zm0 6a1 1 0 010-2h1a1 1 0 010 2H3z'/>\",\n 'icon-location':\n \"<path fill-rule='evenodd' d='M12 1c4.883 0 9 4.215 9 9 0 2.099-.613 4.151-1.826 6.143a1 1 0 01-1.708-1.04C18.493 13.415 19 11.72 19 10c0-3.69-3.232-7-7-7s-7 3.31-7 7c0 3.636 2.283 7.213 6.958 10.728a99.323 99.323 0 003.03-2.638 1 1 0 111.356 1.47c-.797.736-2.03 1.803-3.701 3.206a1 1 0 01-1.227.046C5.846 18.808 3 14.539 3 10c0-4.785 4.117-9 9-9zm0 5a4 4 0 110 8 4 4 0 010-8zm0 2a2 2 0 100 4 2 2 0 000-4z'/>\",\n 'icon-lock':\n \"<path fill-rule='evenodd' d='M6 9V7a6 6 0 1112 0v2h1a1 1 0 011 1v12a1 1 0 01-1 1H5a1 1 0 01-1-1V10a1 1 0 011-1h1zm2 0h8V7a4 4 0 10-8 0v2zm-2 2v10h12V11H6zm6 6a1 1 0 110-2 1 1 0 010 2z'/>\",\n 'icon-loction':\n \"<path fill-rule='evenodd' d='M14.988 18.09a1 1 0 111.356 1.47c-.797.736-2.03 1.803-3.701 3.206a1 1 0 01-1.227.046C5.846 18.808 3 14.539 3 10c0-4.785 4.117-9 9-9s9 4.215 9 9c0 2.099-.613 4.151-1.826 6.143a1 1 0 01-1.708-1.04C18.493 13.415 19 11.72 19 10c0-3.69-3.232-7-7-7s-7 3.31-7 7c0 3.636 2.283 7.213 6.958 10.728a99.323 99.323 0 003.03-2.638zM12 14a4 4 0 110-8 4 4 0 010 8zm0-2a2 2 0 100-4 2 2 0 000 4z'/>\",\n 'icon-log-in':\n \"<path fill-rule='evenodd' d='M16.927 11.624a1 1 0 01-.22 1.083l-5 5a1 1 0 01-1.414-1.414L13.586 13H3a1 1 0 010-2h13a1 1 0 01.921.61l.006.014zm-6.634-3.917a1 1 0 011.414-1.414l2.035 2.035a1 1 0 11-1.414 1.414l-2.035-2.035zM13 3a1 1 0 010-2h6a3 3 0 013 3v16a3 3 0 01-3 3h-6a1 1 0 010-2h6a1 1 0 001-1V4a1 1 0 00-1-1h-6z'/>\",\n 'icon-log-out':\n \"<path fill-rule='evenodd' d='M21.927 11.624a1 1 0 01-.22 1.083l-5 5a1 1 0 01-1.414-1.414L18.586 13H8a1 1 0 010-2h13a1 1 0 01.921.61l.006.014zm-6.634-3.917a1 1 0 111.414-1.414l2.035 2.035a1 1 0 11-1.414 1.414l-2.035-2.035zM11 21a1 1 0 010 2H5a3 3 0 01-3-3V4a3 3 0 013-3h6a1 1 0 010 2H5a1 1 0 00-1 1v16a1 1 0 001 1h6z'/>\",\n 'icon-map':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M8.007 1c.166.001.321.042.458.115l7.504 3.751 6.535-3.734A1 1 0 0124 2v4a1 1 0 11-2 0V3.723L17 6.58v13.697l5-2.857V10a1 1 0 012 0v8a1 1 0 01-.504.868l-6.985 3.992A.994.994 0 0116 23h-.003a.989.989 0 01-.462-.115L8.03 19.134l-6.535 3.734A1 1 0 010 22V6a1 1 0 01.504-.868L7.489 1.14A.995.995 0 018.007 1zM7 3.723L2 6.58v13.697l5-2.857V3.723zm2 13.659l6 3V6.618l-6-3v13.764z'/>\",\n 'icon-menu':\n \"<path fill-rule='evenodd' d='M3 13a1 1 0 010-2h18a1 1 0 010 2H3zm.176-6C2.526 7 2 6.552 2 6s.527-1 1.176-1h17.648C21.474 5 22 5.448 22 6s-.527 1-1.176 1H3.176zM3 19a1 1 0 010-2h10a1 1 0 010 2H3zm14-2h4a1 1 0 010 2h-4a1 1 0 010-2z'/>\",\n 'icon-minus-circle-full':\n \"<path fill-rule='evenodd' d='M12 23C5.925 23 1 18.075 1 12S5.925 1 12 1s11 4.925 11 11-4.925 11-11 11zM8 11a1 1 0 000 2h8a1 1 0 000-2H8z'/>\",\n 'icon-minus-circle':\n \"<path fill-rule='evenodd' d='M8 11h8a1 1 0 010 2H8a1 1 0 010-2zm13.542 6.477a1 1 0 01-1.734-.997A8.953 8.953 0 0021 12a9 9 0 10-9 9 8.953 8.953 0 004.484-1.195 1 1 0 01.998 1.733A10.953 10.953 0 0112 23C5.925 23 1 18.075 1 12S5.925 1 12 1s11 4.925 11 11c0 1.948-.508 3.824-1.458 5.477z'/>\",\n 'icon-minus':\n \"<path fill-rule='evenodd' d='M5 13a1 1 0 010-2h14a1 1 0 010 2H5z'/>\",\n 'icon-money':\n \"<path fill-rule='evenodd' d='M11 17h-1a2 2 0 01-2-2 1 1 0 012 0h4a1 1 0 000-2h-4a3 3 0 010-6h1V6a1 1 0 012 0v1h1a2 2 0 012 2 1 1 0 01-2 0h-4a1 1 0 100 2h4a3 3 0 010 6h-1v1a1 1 0 01-2 0v-1zm10.542.477a1 1 0 01-1.734-.997A8.953 8.953 0 0021 12a9 9 0 10-9 9 8.953 8.953 0 004.484-1.195 1 1 0 01.998 1.733A10.953 10.953 0 0112 23C5.925 23 1 18.075 1 12S5.925 1 12 1s11 4.925 11 11c0 1.948-.508 3.824-1.458 5.477z'/>\",\n 'icon-more-horizontal':\n \"<path fill-rule='evenodd' d='M18 14a2 2 0 110-4 2 2 0 010 4zm-6 0a2 2 0 110-4 2 2 0 010 4zm-6 0a2 2 0 110-4 2 2 0 010 4z'/>\",\n 'icon-more-vertical':\n \"<path fill-rule='evenodd' d='M12 8a2 2 0 110-4 2 2 0 010 4zm0 6a2 2 0 110-4 2 2 0 010 4zm0 6a2 2 0 110-4 2 2 0 010 4z'/>\",\n 'icon-music':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M10 18V5.847l11.164-1.86a1 1 0 10-.328-1.973l-12 2A1 1 0 008 5v9.535A4 4 0 1010 18zm-2 0a2 2 0 10-4 0 2 2 0 004 0zM21 6a1 1 0 00-1 1v5.535A4 4 0 1022 16V7a1 1 0 00-1-1zm-3 8a2 2 0 110 4 2 2 0 010-4z'/>\",\n 'icon-package':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M20.5 5.404A3 3 0 0122 8v6a1 1 0 11-2 0V8.18l-7 4.374v8.024l6.504-3.716a1 1 0 11.992 1.736L13.5 22.596a3 3 0 01-2.996.002L3.5 18.596A3 3 0 012 16V7.999a3.002 3.002 0 011.504-2.597L10.5 1.404a2.998 2.998 0 012.996-.002L20.5 5.404zM11 20.578l-6.504-3.716A.998.998 0 014 15.999v-7.82l7 4.375v8.024zm1.5-17.442l6.162 3.521L16.4 8.071 9.935 4.03l1.561-.893c.313-.18.695-.18 1.004-.002zm-4.536 2.02l6.55 4.094L12 10.82 5.338 6.658l2.626-1.5z'/>\",\n 'icon-paperclip':\n \"<path fill-rule='evenodd' d='M20.733 10.343l-9.19 9.19a5.003 5.003 0 11-7.076-7.076l9.19-9.19a3.002 3.002 0 014.246 4.246l-9.2 9.19a1.001 1.001 0 11-1.416-1.416l8.49-8.48a1 1 0 00-1.414-1.415l-8.49 8.48a3.001 3.001 0 104.244 4.245l9.2-9.19a5.002 5.002 0 10-7.074-7.074l-9.19 9.19a7.003 7.003 0 009.904 9.904l9.19-9.19a1 1 0 00-1.414-1.414z'/>\",\n 'icon-partner-bell':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M16.892 13.073a3.393 3.393 0 00-.637-1.4c-.635-.838-1.663-1.368-3.055-1.368-2.164 0-3.495 1.47-3.889 3.019-.354-1.092-1.3-1.83-2.301-2.14.753-.55 1.147-1.335 1.147-2.231 0-.832-.346-1.59-.926-2.082C6.381 6.148 5.221 6 3.793 6H1v12.058h.794c.535-.001 1.074-.002 1.603 0 .706.004 1.395 0 2.037-.026 2.033-.082 3.425-1.105 3.87-2.642.153.683.448 1.24.832 1.663.783.862 1.918 1.199 3.061 1.199 1.408 0 2.425-.409 3.12-1.034l-.995-1.17c-.5.378-1.144.6-1.867.6-1.417-.004-2.042-.9-2.098-1.763h5.535v3.173h2.073V6.06h-2.073v7.013zM3.707 7.629H3.13v3.175h.68c.376 0 .642-.02.827-.058C5.74 10.52 5.94 9.696 5.94 9.17c0-.62-.297-1.117-.922-1.36-.317-.122-.756-.182-1.312-.182zm.933 8.722c.257 0 .575-.01.834-.057 1.182-.213 1.684-.998 1.684-1.93 0-.9-.545-1.579-1.492-1.827-.277-.072-.759-.12-1.185-.12H3.13v3.934H4.64zm8.544-4.476c-.957 0-1.606.632-1.789 1.51h3.55c-.166-.944-.803-1.51-1.761-1.51zM20.35 6.06h2.038v11.998H20.35V6.06z'/>\",\n 'icon-partner-hydroquebec':\n \"<path d='M12.989 16.286a6.842 6.842 0 111.292-1.29c.344.257 1.897 1.41 2.063 1.613a1140.2 1140.2 0 01-.256-2.383l5.73 4.288.014.125-4.235-1.863.348 3.224-4.957-3.713zm-1.625-1.284c-.789-.59-3.873-2.833-3.873-2.833h3.013c.173.135 1.521 1.14 2.178 1.63l-.001.002c.622-.82.99-1.847.99-2.96 0-2.694-2.162-4.877-4.828-4.877-2.667 0-4.83 2.183-4.83 4.877s2.163 4.877 4.83 4.877c.924 0 1.786-.262 2.52-.716h.001z'/>\",\n 'icon-phone':\n \"<path fill-rule='evenodd' d='M14.62 13.974a3.013 3.013 0 013.173-.677c.842.313 1.716.53 2.607.648a1 1 0 01-.26 1.983 13.938 13.938 0 01-3.047-.758 1.012 1.012 0 00-1.064.223l-1.277 1.275a1 1 0 01-1.2.162 17.074 17.074 0 01-6.41-6.396 1 1 0 01.163-1.203l1.273-1.27c.277-.28.366-.695.227-1.064-.367-.982-.622-2.001-.758-3.03-.07-.5-.503-.872-1.02-.867H4.01a1.013 1.013 0 00-1.007 1.082 18.846 18.846 0 002.936 8.27 18.6 18.6 0 005.733 5.72 18.91 18.91 0 008.225 2.924 1.008 1.008 0 001.102-1.011v-2.011a1 1 0 112 0v2.006a3.005 3.005 0 01-.976 2.23 3.023 3.023 0 01-2.324.776 20.916 20.916 0 01-9.106-3.23 20.58 20.58 0 01-6.336-6.322 20.85 20.85 0 01-3.245-9.156 3.005 3.005 0 01.776-2.299A3.014 3.014 0 014.009 1h3.007a3.012 3.012 0 013.013 2.596c.117.889.335 1.761.648 2.599.414 1.1.15 2.339-.682 3.178l-.723.72a15.074 15.074 0 004.619 4.61l.729-.728z'/>\",\n 'icon-plus-circle-full':\n \"<path fill-rule='evenodd' d='M11 11H8a1 1 0 000 2h3v3a1 1 0 002 0v-3h3a1 1 0 000-2h-3V8a1 1 0 00-2 0v3zm1 12C5.925 23 1 18.075 1 12S5.925 1 12 1s11 4.925 11 11-4.925 11-11 11z'/>\",\n 'icon-plus-circle':\n \"<path fill-rule='evenodd' d='M11 11V8a1 1 0 012 0v3h3a1 1 0 010 2h-3v3a1 1 0 01-2 0v-3H8a1 1 0 010-2h3zm10.542 6.477a1 1 0 01-1.734-.997A8.953 8.953 0 0021 12a9 9 0 10-9 9 8.953 8.953 0 004.484-1.195 1 1 0 01.998 1.733A10.953 10.953 0 0112 23C5.925 23 1 18.075 1 12S5.925 1 12 1s11 4.925 11 11c0 1.948-.508 3.824-1.458 5.477z'/>\",\n 'icon-plus':\n \"<path fill-rule='evenodd' d='M11 13H5a1 1 0 010-2h6V5a1 1 0 012 0v14a1 1 0 01-2 0v-6zm5 0a1 1 0 010-2h3a1 1 0 010 2h-3z'/>\",\n 'icon-position':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M11 21a1 1 0 102 0v-1.062A8.004 8.004 0 0019.938 13H21a1 1 0 100-2h-1.062A8.004 8.004 0 0013 4.062V3a1 1 0 10-2 0v1.062A8.004 8.004 0 004.062 11H3a1 1 0 100 2h1.062A8.004 8.004 0 0011 19.938V21zm0-5v1.917A6.005 6.005 0 016.083 13H8a1 1 0 100-2H6.083A6.005 6.005 0 0111 6.083V8a1 1 0 102 0V6.083A6.005 6.005 0 0117.917 11H16a1 1 0 100 2h1.917A6.005 6.005 0 0113 17.917V16a1 1 0 10-2 0zm1-3a1 1 0 100-2 1 1 0 000 2z'/>\",\n 'icon-print':\n \"<path fill-rule='evenodd' d='M19 19v1a1 1 0 01-2 0v-5H7v6h8a1 1 0 010 2H6a1 1 0 01-1-1v-3H4a3 3 0 01-3-3v-5a3 3 0 013-3h1V2a1 1 0 011-1h12a1 1 0 011 1v6h1a3 3 0 013 3v5a3 3 0 01-3 3h-1zm0-2h1a1 1 0 001-1v-5a1 1 0 00-1-1H4a1 1 0 00-1 1v5a1 1 0 001 1h1v-3a1 1 0 011-1h12a1 1 0 011 1v3zM7 8h10V3H7v5z'/>\",\n 'icon-refresh':\n \"<path fill-rule='evenodd' d='M22 7.688V4a1 1 0 012 0v6a1 1 0 01-1 1h-6a1 1 0 010-2h3.476l-2.823-2.653a8 8 0 00-13.2 2.987 1 1 0 11-1.886-.668 10 10 0 017.22-6.417 9.985 9.985 0 019.258 2.662L22 7.688zM2 16.312V20a1 1 0 01-2 0v-6a1 1 0 011-1h6a1 1 0 010 2H3.524l2.823 2.653a8 8 0 0013.2-2.987 1 1 0 011.886.668 10 10 0 01-7.22 6.417 9.985 9.985 0 01-9.258-2.662L2 16.312z'/>\",\n 'icon-road':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M11 4l-.25 4h2.5L13 4h3.22a1 1 0 01.97.757l3.5 14A1 1 0 0119.72 20H14l-.25-4h-3.5L10 20H4.28a1 1 0 01-.97-1.242l3.5-14A1 1 0 017.78 4H11zm2.375 6h-2.75l-.25 4h3.25l-.25-4z'/>\",\n 'icon-save':\n \"<path fill-rule='evenodd' d='M6 4H5a1 1 0 00-1 1v14a1 1 0 001 1h1v-7a1 1 0 011-1h10a1 1 0 011 1v7h1a1 1 0 001-1 1 1 0 012 0 3 3 0 01-3 3H5a3 3 0 01-3-3V5a3 3 0 013-3h11a1 1 0 01.707.293l5 5A1 1 0 0122 8v7a1 1 0 01-2 0V8.414L15.586 4H8v3h7a1 1 0 010 2H7a1 1 0 01-1-1V4zm2 16h8v-6H8v6z'/>\",\n 'icon-search':\n \"<path fill-rule='evenodd' d='M15.707 14.293l6 6a1 1 0 01-1.414 1.414l-5.34-5.34C13.575 17.42 11.833 18 10 18a8 8 0 117.67-5.718 1 1 0 11-1.918-.57A6 6 0 1010 16c1.663 0 3.209-.62 4.292-1.706a1 1 0 011.414-.002z'/>\",\n 'icon-send':\n \"<path fill-rule='evenodd' d='M21.649 1.063a1 1 0 011.288 1.288l-6.993 19.98a1 1 0 11-1.888-.661L19.61 5.806l-7.416 7.415 1.72 3.873a1 1 0 01-1.827.812l-1.844-4.148-8.648-3.844c-.828-.368-.78-1.559.076-1.858l19.979-6.993zm-10.87 10.744l7.415-7.416-13.483 4.72 6.068 2.696z'/>\",\n 'icon-settings':\n \"<path fill-rule='evenodd' d='M16 12a1 1 0 01-2 0 2 2 0 10-2 2 1 1 0 010 2 4 4 0 114-4zm4.83-3H21a3 3 0 010 6h-.086a.65.65 0 00-.595.394l-.004.01a.647.647 0 00.122.709l.06.06a3 3 0 11-4.244 4.244l-.052-.052a.654.654 0 00-.727-.126.649.649 0 00-.394.591V21a3 3 0 01-6 0v-.067c-.006-.266-.175-.502-.484-.618a.647.647 0 00-.709.122l-.06.06a3 3 0 11-4.244-4.244l.052-.052a.654.654 0 00.126-.727.649.649 0 00-.591-.394H3a3 3 0 010-6h.067c.266-.006.502-.175.618-.484a.647.647 0 00-.122-.709l-.06-.06a3 3 0 114.244-4.244l.052.052a.65.65 0 00.717.13 1 1 0 01.2-.064A.647.647 0 009 3.17V3a3 3 0 016 0v.086c.001.26.156.493.404.6a.647.647 0 00.709-.123l.06-.06a3 3 0 114.244 4.244l-.052.052a.65.65 0 00-.13.717 1 1 0 01.064.2.647.647 0 00.531.284zm.08 4H21a1 1 0 000-2h-.174a2.65 2.65 0 01-2.425-1.606 1 1 0 01-.073-.264 2.655 2.655 0 01.615-2.737l.06-.06a1 1 0 10-1.416-1.416l-.068.068a2.646 2.646 0 01-2.913.534A2.651 2.651 0 0113 3.09V3a1 1 0 00-2 0v.174a2.65 2.65 0 01-1.606 2.425 1 1 0 01-.264.073 2.655 2.655 0 01-2.737-.615l-.06-.06a1 1 0 10-1.416 1.416l.068.068c.757.774.967 1.932.554 2.864A2.657 2.657 0 013.09 11.08H3a1 1 0 000 2h.174a2.646 2.646 0 012.42 1.596 2.654 2.654 0 01-.537 2.931l-.06.06a1 1 0 101.416 1.416l.068-.068c.774-.757 1.932-.967 2.864-.554a2.657 2.657 0 011.735 2.449V21a1 1 0 002 0v-.174a2.646 2.646 0 011.596-2.42 2.654 2.654 0 012.931.537l.06.06a1 1 0 101.416-1.416l-.068-.068a2.65 2.65 0 01-.532-2.918A2.651 2.651 0 0120.91 13z'/>\",\n 'icon-share':\n \"<path fill-rule='evenodd' d='M9.85 10.912a4.003 4.003 0 010 2.175l5.311 3.095A4 4 0 0122 19a1 1 0 01-2 0 2 2 0 00-3.662-1.112 1.01 1.01 0 01-.123.208A2 2 0 0018 21a1 1 0 010 2 4 4 0 01-3.85-5.092l-5.308-3.094a4 4 0 110-5.63L14.15 6.09A4.003 4.003 0 0118 1a4 4 0 11-2.842 6.815L9.85 10.912zm-2.094.13a1.016 1.016 0 01-.056-.097A1.999 1.999 0 004 12a2 2 0 103.756-.959zM16.3 6.054A1.999 1.999 0 0020 5a2 2 0 10-3.7 1.055z'/>\",\n 'icon-shoppingbag':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M19 5H5l1.5-2h11L19 5zm2.6 1.8a.996.996 0 01-.61.2H4v13a1 1 0 001 1h14a1 1 0 001-1v-9a1 1 0 112 0v9a3 3 0 01-3 3H5a3 3 0 01-3-3V6a1 1 0 01.2-.6l3-4A1 1 0 016 1h12a1 1 0 01.8.4l3 4a1 1 0 01-.2 1.4zM12 13a3 3 0 003-3 1 1 0 112 0 5 5 0 01-10 0 1 1 0 112 0 3 3 0 003 3z'/>\",\n 'icon-social-facebook':\n \"<title> Icon/social-facebook </title> <path d='M23 12.067C23 5.955 18.075 1 12 1S1 5.955 1 12.067C1 17.591 5.023 22.17 10.281 23v-7.734H7.488v-3.199h2.793V9.63c0-2.774 1.642-4.306 4.155-4.306 1.204 0 2.462.216 2.462.216v2.724h-1.387c-1.366 0-1.792.853-1.792 1.728v2.076h3.05l-.487 3.2h-2.563V23C18.977 22.17 23 17.591 23 12.067' fill-rule='evenodd'/>\",\n 'icon-social-flickr':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M2 4a2 2 0 012-2h16a2 2 0 012 2v16a2 2 0 01-2 2H4a2 2 0 01-2-2V4zm9 8a3 3 0 11-6 0 3 3 0 016 0zm5 3a3 3 0 100-6 3 3 0 000 6z'/>\",\n 'icon-social-instagram':\n \"<path fill-rule='evenodd' d='M7.8 2h8.4C19.4 2 22 4.6 22 7.8v8.4a5.8 5.8 0 01-5.8 5.8H7.8C4.6 22 2 19.4 2 16.2V7.8A5.8 5.8 0 017.8 2zm-.2 2A3.6 3.6 0 004 7.6v8.8C4 18.39 5.61 20 7.6 20h8.8a3.6 3.6 0 003.6-3.6V7.6C20 5.61 18.39 4 16.4 4H7.6zm9.65 1.5a1.25 1.25 0 110 2.5 1.25 1.25 0 010-2.5zM12 7a5 5 0 110 10 5 5 0 010-10zm0 2a3 3 0 100 6 3 3 0 000-6z'/>\",\n 'icon-social-linkedin':\n \"<path fill-rule='evenodd' d='M4 2h16a2 2 0 012 2v16a2 2 0 01-2 2H4a2 2 0 01-2-2V4a2 2 0 012-2zm15.222 11.333c0-2-1.622-3.622-3.622-3.622-.944 0-2.044.578-2.578 1.445V9.922h-3.1v9.3h3.1v-5.478a1.55 1.55 0 011.545-1.555c.859 0 1.555.696 1.555 1.555v5.478h3.1v-5.889zM8.178 6.311A1.873 1.873 0 006.31 4.433c-1.037 0-1.878.841-1.878 1.878a1.873 1.873 0 003.745 0zm-.322 12.911v-9.3H4.778v9.3h3.078z'/>\",\n 'icon-social-twitter':\n \"<path fill-rule='evenodd' d='M19.965 8.508c0-.175-.004-.35-.012-.522A8.277 8.277 0 0022 5.894a8.292 8.292 0 01-2.356.636 4.064 4.064 0 001.804-2.234c-.793.462-1.671.799-2.606.98A4.13 4.13 0 0015.847 4c-2.266 0-4.104 1.809-4.104 4.039 0 .317.036.625.107.92a11.712 11.712 0 01-8.458-4.22 3.977 3.977 0 00-.556 2.03 4.02 4.02 0 001.826 3.363 4.122 4.122 0 01-1.858-.505l-.001.051c0 1.957 1.415 3.59 3.292 3.96a4.176 4.176 0 01-1.853.07c.522 1.604 2.037 2.772 3.833 2.805a8.317 8.317 0 01-5.096 1.729c-.331 0-.658-.019-.979-.056A11.751 11.751 0 008.29 20c7.547 0 11.675-6.155 11.675-11.492z'/>\",\n 'icon-social-youtube':\n \"<path fill-rule='evenodd' d='M22.547 7.19c.471 1.565.453 4.826.453 4.826s0 3.245-.453 4.81c-.254.856-.997 1.532-1.94 1.762C18.888 19 12 19 12 19s-6.868 0-8.608-.428c-.942-.23-1.685-.906-1.939-1.763C1 15.261 1 12 1 12s0-3.245.453-4.81c.254-.856 1.015-1.548 1.94-1.778C5.112 5 12 5 12 5s6.886 0 8.608.428c.942.23 1.685.906 1.939 1.763zM15 12l-5-3v6l5-3z'/>\",\n 'icon-star':\n \"<path fill-rule='evenodd' d='M15.754 7.346l6.39.935a1 1 0 01.554 1.705l-4.623 4.503 1.09 6.362a1 1 0 01-1.45 1.054L12 18.9l-5.715 3.005a1 1 0 01-1.45-1.054l1.09-6.362-4.623-4.503a1 1 0 01.553-1.705l6.39-.935 2.858-5.789a1 1 0 011.794 0l2.857 5.79zm-.809 1.903a1 1 0 01-.752-.546L12 4.259 9.807 8.703a1 1 0 01-.752.546l-4.907.718 3.55 3.457a1 1 0 01.288.885l-.838 4.883 4.387-2.307a1 1 0 01.93 0l4.387 2.307-.838-4.883a1 1 0 01.288-.885l3.55-3.457-4.907-.718z'/>\",\n 'icon-steps':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M15 7a1 1 0 00-1 1v8a1 1 0 001 1h8a1 1 0 001-1V8a1 1 0 00-1-1h-8zm1 2h6v6h-6V9zm-9 1a1 1 0 00-1 1v5a1 1 0 001 1h5a1 1 0 001-1v-5a1 1 0 00-1-1H7zm1 5v-3h3v3H8zm-8-2a1 1 0 011-1h3a1 1 0 011 1v3a1 1 0 01-1 1H1a1 1 0 01-1-1v-3zm2 1v1h1v-1H2z'/>\",\n 'icon-table':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M4 22a2 2 0 01-1.995-1.85L2 20V4a2 2 0 011.85-1.995L4 2h16a2 2 0 011.994 1.85L22 4v10a1 1 0 01-1.993.117L20 14V9H9v11h11v-2a1 1 0 011.993-.117L22 18v2a2 2 0 01-1.85 1.994L20 22H4zM7 9H4v11h3V9zm0-5H4v3h3V4zm13 0H9v3h11V4z'/>\",\n 'icon-tag':\n \"<path fill-rule='evenodd' d='M4 12.586l8.293 8.293a1 1 0 001.414 0l7.172-7.172a1 1 0 000-1.414 1 1 0 111.414-1.414 3 3 0 010 4.242l-7.172 7.172a3 3 0 01-4.242 0l-8.586-8.586A1 1 0 012 13V3a1 1 0 011-1h10a1 1 0 01.707.293l6 6a1 1 0 11-1.414 1.414L12.586 4H4v8.586zM8.5 11a2.5 2.5 0 110-5 2.5 2.5 0 010 5zm0-2a.5.5 0 100-1 .5.5 0 000 1z'/>\",\n 'icon-thumb-down-full':\n \"<path fill-rule='evenodd' d='M13.914 22.406A1 1 0 0113 23a4 4 0 01-4-4v-3H4.351a3 3 0 01-3-3.452l1.38-8.998A2.997 2.997 0 015.72 1H19.652a3.31 3.31 0 013.339 2.866L23 4v7l-.009.134A3.305 3.305 0 0119.67 14h-2.02l-3.736 8.406zM18 12h1.688A1.31 1.31 0 0021 10.923V4.077A1.315 1.315 0 0019.67 3H18v9z'/>\",\n 'icon-thumb-down':\n \"<path fill-rule='evenodd' d='M17 1h2.652a3.31 3.31 0 013.339 2.866L23 4v7l-.009.134A3.305 3.305 0 0119.67 14h-2.02l-3.736 8.406A1 1 0 0113 23a4 4 0 01-4-4v-3H4.351a3 3 0 01-3-3.452l1.38-8.998A2.997 2.997 0 015.72 1H13a1 1 0 010 2H5.709a1 1 0 00-1 .852l-1.38 8.998A1 1 0 004.34 14H10a1 1 0 011 1v4a2 2 0 001.392 1.906L16 12.788V2a1 1 0 011-1zm1 2v9h1.688A1.31 1.31 0 0021 10.923V4.077A1.315 1.315 0 0019.67 3H18z'/>\",\n 'icon-thumb-up-full':\n \"<path fill-rule='evenodd' d='M6.35 10l3.736-8.406A1 1 0 0111 1a4 4 0 014 4v3h4.649a3 3 0 013 3.452l-1.38 8.998A3 3 0 0118.275 23H4a3 3 0 01-3-3v-7a3 3 0 013-3h2.35zM4 12a1 1 0 00-1 1v7a1 1 0 001 1h2v-9H4z'/>\",\n 'icon-thumb-up':\n \"<path fill-rule='evenodd' d='M7.707 22.707A.997.997 0 017 23H4a3 3 0 01-3-3v-7a3 3 0 013-3h2.35l3.736-8.406A1 1 0 0111 1a4 4 0 014 4v3h4.649a3 3 0 013 3.452l-1.38 8.998A2.997 2.997 0 0118.28 23H11a1 1 0 010-2h7.291a1 1 0 001-.852l1.38-8.998A1 1 0 0019.66 10H14a1 1 0 01-1-1V5a2 2 0 00-1.392-1.906L8 11.212V22a.997.997 0 01-.293.707zM6 12H4a1 1 0 00-1 1v7a1 1 0 001 1h2v-9z'/>\",\n 'icon-ticket':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M13.293 1.293a1 1 0 011.414 0l2.495 2.495.005.005a.997.997 0 010 1.414c-.338.338-.36 1.055.086 1.5.445.445 1.162.424 1.5.086a.996.996 0 011.414 0l.005.005 2.495 2.495a1 1 0 010 1.414l-5 5-7 7a1 1 0 01-1.414 0l-2.5-2.5a1 1 0 01.03-1.443 1.122 1.122 0 00-1.616-1.557 1 1 0 01-1.414 0l-2.5-2.5a1 1 0 010-1.414l7-7 5-5zM17 13.586l-1.793-1.793a1 1 0 00-1.414 1.414L15.586 15 10 20.586l-1.2-1.2A3.123 3.123 0 004.614 15.2l-1.2-1.2L9 8.414l1.793 1.793a1 1 0 001.414-1.414L10.414 7 14 3.414l1.214 1.214c-.527 1.168-.223 2.606.665 3.493.888.888 2.325 1.192 3.493.665L20.586 10 17 13.586z'/>\",\n 'icon-trash':\n \"<path fill-rule='evenodd' d='M7 5V4a3 3 0 013-3h4a3 3 0 013 3v1h4a1 1 0 010 2H6v13a1 1 0 001 1h10a1 1 0 001-1V10a1 1 0 012 0v10a3 3 0 01-3 3H7a3 3 0 01-3-3V7H3a1 1 0 110-2h4zm2 0h6V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v1zm0 6a1 1 0 012 0v6a1 1 0 01-2 0v-6zm4 0a1 1 0 012 0v6a1 1 0 01-2 0v-6z'/>\",\n 'icon-unlock':\n \"<path fill-rule='evenodd' d='M6 9V7.001a6 6 0 015.397-5.976c1.586-.16 3.025.244 4.223 1.19a1 1 0 11-1.24 1.57c-.785-.62-1.705-.879-2.782-.77A4 4 0 008 7v2h11a1 1 0 011 1v12a1 1 0 01-1 1H5a1 1 0 01-1-1V10a1 1 0 011-1h1zm6 8a1 1 0 110-2 1 1 0 010 2zm-6-6v10h12V11H6z'/>\",\n 'icon-upload':\n \"<path fill-rule='evenodd' d='M12.39 2.079A1 1 0 0113 3v12a1 1 0 01-2 0V5.414L7.707 8.707a1 1 0 01-1.414-1.414l5-5a1 1 0 011.083-.22zM20 15a1 1 0 012 0v4a3 3 0 01-3 3H5a3 3 0 01-3-3v-4a1 1 0 012 0v4a1 1 0 001 1h14a1 1 0 001-1v-4zm-2.293-7.707a1 1 0 11-1.414 1.414l-2-2a1 1 0 111.414-1.414l2 2z'/>\",\n 'icon-user-circle':\n \"<path fill-rule='evenodd' d='M6 18.708V18a3 3 0 013-3h6a3 3 0 013 3v2.631c0 .145-.03.282-.086.406a.996.996 0 01-.432.501A10.953 10.953 0 0112 23C5.925 23 1 18.075 1 12S5.925 1 12 1s11 4.925 11 11c0 1.948-.508 3.824-1.458 5.477a1 1 0 01-1.734-.997A8.953 8.953 0 0021 12a9 9 0 10-15 6.708zm1.998 1.355c1.205.6 2.564.937 4.002.937 1.41 0 2.77-.324 4-.935V18a1 1 0 00-1-1H9a1 1 0 00-1 1v2c0 .021 0 .042-.002.063zM12 14a4 4 0 110-8 4 4 0 010 8zm0-2a2 2 0 100-4 2 2 0 000 4z'/>\",\n 'icon-user':\n \"<path fill-rule='evenodd' d='M21 21a1 1 0 01-2 0v-2a3 3 0 00-3-3H8a3 3 0 00-3 3v2a1 1 0 01-2 0v-2a5 5 0 015-5h8a5 5 0 015 5v2zM14.509 2.674a1 1 0 11-1.005 1.73A3 3 0 1015 7a1 1 0 012 0 5 5 0 11-2.491-4.326z'/>\",\n 'icon-users':\n \"<path fill-rule='evenodd' d='M18 21a1 1 0 01-2 0v-2a3 3 0 00-3-3H5a3 3 0 00-3 3v2a1 1 0 01-2 0v-2a5 5 0 015-5h8a5 5 0 015 5v2zm6 0a1 1 0 01-2 0v-2a3 3 0 00-2.25-2.902 1 1 0 11.5-1.936A5 5 0 0124 19v2zM15.752 4.099a1 1 0 11.496-1.938 5 5 0 010 9.688 1 1 0 01-.496-1.938 3 3 0 000-5.812zm-9.26-1.425A5 5 0 114 7a1 1 0 111.999 0 3 3 0 101.496-2.596 1 1 0 01-1.005-1.73z'/>\",\n 'icon-warning':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M12.857 4.373a1 1 0 00-1.714 0L2.675 18.485A1 1 0 003.532 20h16.936a1 1 0 00.857-1.515l-1.183-1.97a1 1 0 011.716-1.03l1.182 1.971c1.2 2-.24 4.544-2.572 4.544H3.532C1.201 22-.24 19.456.96 17.456L9.428 3.344c1.165-1.942 3.98-1.942 5.144 0l4.886 8.142a1 1 0 11-1.715 1.028l-4.885-8.141zM11 9a1 1 0 112 0v5a1 1 0 11-2 0V9zm1 7a1 1 0 100 2 1 1 0 000-2z'/>\",\n 'icon-website':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M20.176 17.845a1 1 0 001.366-.368A10.953 10.953 0 0023 12c0-6.075-4.925-11-11-11S1 5.925 1 12s4.925 11 11 11c1.95 0 3.828-.509 5.482-1.462a1 1 0 10-.998-1.733 8.93 8.93 0 01-2.21.905A16.301 16.301 0 0016.95 13h3.995a8.932 8.932 0 01-1.137 3.48 1 1 0 00.368 1.365zm.77-6.845h-3.999a16.331 16.331 0 00-2.673-7.71A9.008 9.008 0 0120.945 11zM9.725 3.29A9.008 9.008 0 003.055 11H7.05a16.3 16.3 0 012.676-7.71zM3.055 13a9.008 9.008 0 006.671 7.71A16.331 16.331 0 017.053 13H3.055zM12 20.45A14.3 14.3 0 019.058 13h5.887A14.288 14.288 0 0112 20.45zM9.055 11h5.887A14.3 14.3 0 0012 3.55 14.288 14.288 0 009.055 11z'/>\",\n 'icon-wheelchair':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M21 3.5a2.5 2.5 0 10-5 0 2.5 2.5 0 005 0zm-3 0a.5.5 0 111 0 .5.5 0 01-1 0zM8.707 7.707l2.42-2.42 1.303.868-6.086 6.087a6.166 6.166 0 00-.064.05A1 1 0 007.52 13.86a3.987 3.987 0 01.106-.081 3.995 3.995 0 015.201.393 4 4 0 11-6.794 2.304 1 1 0 10-1.983-.26A6 6 0 1015.198 14h2.622l-.806 4.836a1 1 0 101.972.328l1-6A1 1 0 0019 12h-4.586l1.568-1.568a3 3 0 00-.457-4.617l-.955-.637a.917.917 0 00-.033-.021l-2.982-1.99a1 1 0 00-1.262.126l-3 3a1 1 0 001.414 1.414zm5.42-.42l-3.726 3.726c.614.04 1.217.176 1.79.4.03-.042.064-.082.102-.12l2.275-2.275a1 1 0 00-.152-1.54l-.289-.191z'/>\",\n 'icon-x-circle-full':\n \"<path fill-rule='evenodd' d='M10.586 12l-2.829 2.828a1 1 0 001.415 1.415L12 13.414l2.828 2.829a1 1 0 001.415-1.415L13.414 12l2.829-2.828a1 1 0 10-1.415-1.415L12 10.586 9.172 7.757a1 1 0 00-1.415 1.415L10.586 12zM12 23C5.925 23 1 18.075 1 12S5.925 1 12 1s11 4.925 11 11-4.925 11-11 11z'/>\",\n 'icon-x-circle':\n \"<path fill-rule='evenodd' d='M10.586 12L7.757 9.172a1 1 0 011.415-1.415L12 10.586l2.828-2.829a1 1 0 011.415 1.415L13.414 12l2.829 2.828a1 1 0 01-1.415 1.415L12 13.414l-2.828 2.829a1 1 0 11-1.415-1.415L10.586 12zm10.956 5.477a1 1 0 01-1.734-.997A8.953 8.953 0 0021 12a9 9 0 10-9 9 8.953 8.953 0 004.484-1.195 1 1 0 01.998 1.733A10.953 10.953 0 0112 23C5.925 23 1 18.075 1 12S5.925 1 12 1s11 4.925 11 11c0 1.948-.508 3.824-1.458 5.477z'/>\",\n 'icon-x':\n \"<path fill-rule='evenodd' d='M12 13.414l-5.293 5.293a1 1 0 11-1.414-1.414L10.586 12 5.293 6.707a1 1 0 011.414-1.414l12 12a1 1 0 01-1.414 1.414L12 13.414zm5.293-8.121a1 1 0 011.414 1.414l-3 3a1 1 0 11-1.414-1.414l3-3z'/>\",\n 'icon-spinner':\n \"<path d='M24 12C24 14.3734 23.2962 16.6935 21.9776 18.6668C20.6591 20.6402 18.7849 22.1783 16.5922 23.0866C14.3995 23.9948 11.9867 24.2324 9.65892 23.7694C7.33114 23.3064 5.19295 22.1635 3.51472 20.4853C1.83649 18.8071 0.693599 16.6689 0.230577 14.3411C-0.232446 12.0133 0.00519403 9.60051 0.913446 7.4078C1.8217 5.21509 3.35977 3.34094 5.33316 2.02236C7.30655 0.703788 9.62662 -2.83022e-08 12 0L12 3C10.22 3 8.47991 3.52784 6.99987 4.51677C5.51983 5.50571 4.36627 6.91131 3.68508 8.55585C3.0039 10.2004 2.82567 12.01 3.17293 13.7558C3.5202 15.5016 4.37737 17.1053 5.63604 18.364C6.89471 19.6226 8.49836 20.4798 10.2442 20.8271C11.99 21.1743 13.7996 20.9961 15.4442 20.3149C17.0887 19.6337 18.4943 18.4802 19.4832 17.0001C20.4722 15.5201 21 13.78 21 12H24Z'/>\",\n 'icon-emergency':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M11.067 7.87a.957.957 0 011.914 0v4.786a.957.957 0 11-1.914 0V7.87zM12.024 15.527a.958.958 0 10.001 1.916.958.958 0 00-.001-1.916z M9.878 1.879a3 3 0 014.243 0l8 7.999a3 3 0 010 4.242l-7.999 8.001a3 3 0 01-4.242 0l-8.001-7.999a3 3 0 010-4.242l7.999-8.001zm2.829 1.414a1 1 0 00-1.415 0l-8 8a1 1 0 00.001 1.415l8 8a1 1 0 001.415 0l8-8.002a1 1 0 000-1.414l-8.001-8z'/>\",\n 'icon-error-octagon':\n \"<path fill-rule='evenodd' clip-rule='evenodd' d='M34.9 27C35.3971 27 35.8 26.597 35.8 26.1C35.8 25.6029 35.3971 25.2 34.9 25.2C34.4029 25.2 34 25.6029 34 26.1C34 26.597 34.4029 27 34.9 27Z' /><path fill-rule='evenodd' clip-rule='evenodd' d='M13.493 13.4928C13.8835 13.1023 14.5167 13.1023 14.9072 13.4928L26.5072 25.0928C26.8977 25.4834 26.8977 26.1165 26.5072 26.5071C26.1167 26.8976 25.4835 26.8976 25.093 26.5071L13.493 14.9071C13.1024 14.5165 13.1024 13.8834 13.493 13.4928Z' /><path fill-rule='evenodd' clip-rule='evenodd' d='M26.5072 13.4928C26.8977 13.8834 26.8977 14.5165 26.5072 14.9071L14.8072 26.6071C14.4167 26.9976 13.7835 26.9976 13.393 26.6071C13.0025 26.2165 13.0025 25.5834 13.393 25.1928L25.093 13.4928C25.4835 13.1023 26.1167 13.1023 26.5072 13.4928Z' /><path fill-rule='evenodd' clip-rule='evenodd' d='M12.7929 3.59294C12.9805 3.40541 13.2348 3.30005 13.5 3.30005H26.5C26.7653 3.30005 27.0196 3.40541 27.2072 3.59294L36.4072 12.7929C36.5947 12.9805 36.7001 13.2348 36.7001 13.5V23.5C36.7001 24.0523 36.2523 24.5 35.7001 24.5C35.1478 24.5 34.7001 24.0523 34.7001 23.5V13.9143L26.0858 5.30005H13.9143L5.30005 13.9143V26.0858L13.9143 34.7001H26.0858L32.8929 27.8929C33.2835 27.5024 33.9166 27.5024 34.3072 27.8929C34.6977 28.2835 34.6977 28.9166 34.3072 29.3072L27.2072 36.4072C27.0196 36.5947 26.7653 36.7001 26.5 36.7001H13.5C13.2348 36.7001 12.9805 36.5947 12.7929 36.4072L3.59294 27.2072C3.40541 27.0196 3.30005 26.7653 3.30005 26.5V13.5C3.30005 13.2348 3.40541 12.9805 3.59294 12.7929L12.7929 3.59294Z'/>\"\n};\n\n/* 40x40 illlustrative icons - https://zeroheight.com/575tugn0n/v/0/p/39c76f-icones-illustratives/t/page-39c76f-32902091-13 */\nexport const ILLUSTRATIVE_ICONS = ['icon-error-octagon'];\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, SecurityContext } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { ICONS_DCT, ILLUSTRATIVE_ICONS } from './icons-dictionary';\n\nconst SVG_PREFIX = `<?xml version=\"1.0\" encoding=\"UTF-8\"?><!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\"><svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" role=\"img\">`;\nconst SVG_SUFFIX = `</svg>`;\n\n@Injectable({ providedIn: 'root' })\nexport class BaoIconDictionary {\n constructor(\n @Inject(DOCUMENT) private document: any,\n private domSanitizer: DomSanitizer\n ) {}\n\n public getNamedSvgIcon(iconName: string): SVGElement {\n const rawIconString = this.getRawIconStringFromIconName(iconName);\n const literal = this.domSanitizer.bypassSecurityTrustHtml(rawIconString);\n const svgString = this.domSanitizer.sanitize(SecurityContext.HTML, literal);\n return this.svgElementFromString(svgString || '');\n }\n\n private getRawIconStringFromIconName(iconName: string) {\n const iconSvgPath = ICONS_DCT[iconName] || '';\n const iconSvgPrefix = ILLUSTRATIVE_ICONS.includes(iconName)\n ? SVG_PREFIX.replace('0 0 24 24', '0 0 40 40')\n : SVG_PREFIX;\n return `${iconSvgPrefix}${iconSvgPath}${SVG_SUFFIX}`;\n }\n\n private svgElementFromString(svgString: string): SVGElement {\n const div = this.document.createElement('DIV');\n div.innerHTML = svgString;\n const svg = div.querySelector('svg') as SVGElement;\n return svg;\n }\n}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n Renderer2,\n ViewEncapsulation\n} from '@angular/core';\nimport { BaoColors, baoColorToHex } from '../core/colors';\nimport { BaoIconDictionary as BaoIconRegistry } from './bao-icon-registry';\n\nconst SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\nconst TITLE = 'title';\n\n/**\n * Component to display an icon. It can be used in the following ways:\n *\n * - Specify the svgIcon input to load an SVG icon from a preset list of icons.\n * Examples:\n * `<bao-icon svgIcon=\"heart\"></bao-icon>`\n */\n@Component({\n template: '<ng-content></ng-content>',\n selector: 'bao-icon',\n exportAs: 'baoIcon',\n styleUrls: ['./icon.component.scss'],\n host: {\n '[class.bao-icon]': 'true',\n '[class.notranslate]': 'true',\n '[class.bao-icon-medium]': 'size === \"medium\"',\n '[class.bao-icon-small]': 'size === \"small\"',\n '[class.bao-icon-x-small]': 'size === \"x-small\"',\n '[class.bao-icon-xx-small]': 'size === \"xx-small\"',\n '[attr.data-bao-icon-type]': '\"svg\"',\n '[style.color]': 'hexColor'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BaoIconComponent implements OnDestroy {\n /** The color of the icon, if not specified the icon's parent current text color will be used */\n @Input() public color: BaoColors;\n\n /**\n * The size of the icon\n */\n @Input() public size: 'medium' | 'small' | 'x-small' | 'xx-small' = 'x-small';\n\n private _svgIcon: string;\n private _title: string;\n private _titleId: string;\n\n // Keeps track of the elements and attributes that we've prefixed with the current path.\n private _elementsWithExternalReferences?: Map<\n Element,\n { name: string; value: string }[]\n >;\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private iconRegistry: BaoIconRegistry,\n private renderer: Renderer2\n ) {\n this._titleId = '';\n this._title = '';\n this._svgIcon = '';\n }\n\n /** Name of the icon in the SVG icon set. */\n @Input()\n get svgIcon(): string {\n return this._svgIcon;\n }\n\n /** Title that will be used as an aria-label for the icon */\n @Input()\n get title(): string {\n return this._title;\n }\n\n get hexColor(): string | void {\n if (this.color) {\n return baoColorToHex(this.color);\n }\n }\n\n get titleId(): string {\n return this._titleId;\n }\n\n set svgIcon(value: string) {\n if (value !== this._svgIcon) {\n if (value) {\n this.updateSvgIcon(value, this.title);\n } else if (this._svgIcon) {\n this.clearSvgElement();\n }\n this._svgIcon = value;\n this.renderer.addClass(\n this.elementRef.nativeElement,\n `bao-${this._svgIcon}`\n );\n }\n }\n\n set title(value: string) {\n if (value !== this._title) {\n this._title = value;\n this._titleId = this.generateUniqueTitleId();\n this.updateSvgIcon(this.svgIcon, value);\n }\n }\n\n public ngOnDestroy() {\n if (this._elementsWithExternalReferences) {\n this._elementsWithExternalReferences.clear();\n }\n }\n\n private setSvgElement(svg: SVGElement) {\n this.clearSvgElement();\n // Workaround for IE11 and Edge ignoring `style` tags inside dynamically-created SVGs.\n // See: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/10898469/\n // Do this before inserting the element into the DOM, in order to avoid a style recalculation.\n const styleTags = svg.querySelectorAll('style');\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < styleTags.length; i++) {\n styleTags[i].textContent += ' ';\n }\n this.elementRef.nativeElement.appendChild(svg);\n }\n\n private clearSvgElement() {\n const layoutElement: HTMLElement = this.elementRef.nativeElement;\n let childCount = layoutElement.childNodes.length;\n\n if (this._elementsWithExternalReferences) {\n this._elementsWithExternalReferences.clear();\n }\n\n // Remove existing non-element child nodes and SVGs, and add the new SVG element. Note that\n // we can't use innerHTML, because IE will throw if the element has a data binding.\n while (childCount--) {\n const child = layoutElement.childNodes[childCount];\n\n // 1 corresponds to Node.ELEMENT_NODE. We remove all non-element nodes in order to get rid\n // of any loose text nodes, as well as any SVG elements in order to remove any old icons.\n if (child.nodeType !== 1 || child.nodeName.toLowerCase() === 'svg') {\n layoutElement.removeChild(child);\n }\n }\n }\n\n // Sets a new SVG icon with a particular name.\n private updateSvgIcon(\n iconName: string | undefined,\n title: string | undefined\n ) {\n if (iconName) {\n let svg = this.iconRegistry.getNamedSvgIcon(iconName);\n if (title) {\n svg = this.addTitleToSVG(svg, title);\n this.removeTitleAttributeFromHost();\n }\n\n if (!title) {\n svg.setAttribute('aria-hidden', 'true');\n }\n\n this.setSvgElement(svg);\n }\n }\n\n private addTitleToSVG(svg: SVGElement, title: string) {\n const titleNode = this.renderer.createElement(TITLE, SVG_NAMESPACE);\n titleNode.id = this._titleId;\n const titleText = this.renderer.createText(title);\n this.renderer.appendChild(titleNode, titleText);\n this.renderer.appendChild(svg, titleNode);\n svg.setAttribute('aria-labelledby', this._titleId);\n return svg;\n }\n\n private removeTitleAttributeFromHost() {\n this.renderer.removeAttribute(this.elementRef.nativeElement, 'title');\n }\n\n private generateUniqueTitleId(): string {\n return this.title\n ? `${this.title\n .replace(/[^A-Z0-9]+/gi, '')\n .toLocaleLowerCase()}-${Math.floor(\n Math.random() * 10000000000000000\n )}`\n : '';\n }\n}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { BaoIconComponent } from './icon.component';\n\nconst ICON_DIRECTIVES = [BaoIconComponent];\n\n@NgModule({\n imports: [CommonModule],\n declarations: ICON_DIRECTIVES,\n exports: ICON_DIRECTIVES\n})\nexport class BaoIconModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n ViewEncapsulation\n} from '@angular/core';\n\nconst BAO_ICON_NODE_NAME = 'BAO-ICON';\nconst LOADING_SPINNER_CLASS = 'loading-spinner';\n\n@Component({\n /**\n * There are a few cases where you give a component an attribute, such as\n * when you want to augment a built-in element. For example, Material Design\n * uses this technique with <button mat-button>. However, you wouldn't\n * use this technique on a custom element.\n */\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'button[bao-button]',\n styleUrls: ['./button.component.scss'],\n templateUrl: './button.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'bao-button',\n '[class.bao-button-utility]': 'displayType === \"utility\"',\n '[class.bao-button-editorial]': 'displayType === \"editorial\"',\n '[class.bao-button-primary]': 'level === \"primary\"',\n '[class.bao-button-secondary]': 'level === \"secondary\"',\n '[class.bao-button-tertiary]': 'level === \"tertiary\"',\n '[class.bao-button-large]': 'size === \"large\"',\n '[class.bao-button-medium]': 'size === \"medium\"',\n '[class.bao-button-small]': 'size === \"small\"',\n '[class.bao-button-reversed]': 'reversed === true',\n '[class.bao-button-loading]': 'loading === true',\n '[class.bao-button-no-text]': 'noText === true',\n '[class.bao-button-full-width]': 'fullWidth === true'\n }\n})\nexport class BaoButtonComponent implements AfterContentInit {\n /**\n * The display type of the button\n */\n @Input() public displayType: 'utility' | 'editorial' = 'utility';\n /**\n * The hierarchy level of the button\n */\n @Input() public level: 'primary' | 'secondary' | 'tertiary' = 'primary';\n /**\n * The size of the button\n */\n @Input() public size: 'large' | 'medium' | 'small' = 'medium';\n /**\n * Flag to set the button in loading state\n */\n @Input() public loading = false;\n /**\n * Flag to set the button reversed color mode\n */\n @Input() public reversed = false;\n /**\n * The aria-label of the loading spinner if it displayed alone\n */\n @Input() public loadingSpinnerAriaLabel = 'chargement';\n /**\n * Allows the button to grow to the width of it's container\n */\n @Input() public fullWidth = false;\n\n /**\n * If there is no text, some margin/padding will be different, i.e. for the spinner\n */\n public noText = false;\n\n /**\n * If the icon is on the right of the label, the loading spinner will need to be on the right of the label\n */\n public rightIcon = false;\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private cdr: ChangeDetectorRef\n ) {}\n\n get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n public ngAfterContentInit() {\n const childNodes = Array.from(this.nativeElement.childNodes);\n const textIndex = childNodes.findIndex(c => c.nodeType === Node.TEXT_NODE);\n this.noText = textIndex === -1;\n const iconIdex = childNodes.findIndex(\n c =>\n c.nodeName === BAO_ICON_NODE_NAME &&\n !(c as HTMLElement).classList.contains(LOADING_SPINNER_CLASS)\n );\n this.rightIcon = iconIdex > textIndex;\n this.cdr.detectChanges();\n }\n}\n","<bao-icon\n *ngIf=\"loading && !rightIcon\"\n class=\"loading-spinner\"\n svgIcon=\"icon-spinner\"\n [title]=\"loadingSpinnerAriaLabel\"\n></bao-icon>\n<ng-content></ng-content>\n<bao-icon\n *ngIf=\"loading && rightIcon\"\n class=\"loading-spinner loading-spinner-right\"\n svgIcon=\"icon-spinner\"\n [title]=\"loadingSpinnerAriaLabel\"\n></bao-icon>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { BaoIconModule } from '../icon/module';\nimport { BaoButtonComponent } from './button.component';\n\nconst BUTTON_DIRECTIVES = [BaoButtonComponent];\n\n@NgModule({\n imports: [CommonModule, BaoIconModule],\n declarations: BUTTON_DIRECTIVES,\n exports: [...BUTTON_DIRECTIVES, BaoIconModule]\n})\nexport class BaoButtonModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport {\n Component,\n Directive,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n ViewEncapsulation\n} from '@angular/core';\n\n/**\n * Content of an alert, intended for use within `<bao-alert>`. This component is an optional\n * convenience for use with other convenience elements, such as `<bao-alert-title>`; any custom\n * content block element may be used in its place.\n *\n * BaoAlertContent provides no behaviors, instead serving as a purely visual treatment.\n */\n\n/**\n * Title of an alert, intended for use within `<bao-alert>`. This component is an optional\n * convenience for one variety of alert title; any custom title element may be used in its place.\n *\n * BaoAlertTitle provides no behaviors, instead serving as a purely visual treatment.\n */\n@Directive({\n selector: 'bao-alert-title',\n host: { class: 'bao-alert-title' }\n})\nexport class BaoAlertTitle {}\n\n/**\n * Content of an alert, intended for use within `<bao-alert>`. This component is an optional\n * convenience for use with other convenience elements, such as `<bao-alert-title>`; any custom\n * content block element may be used in its place.\n *\n * BaoAlertContent provides no behaviors, instead serving as a purely visual treatment.\n */\n@Directive({\n selector: 'bao-alert-content',\n host: { class: 'bao-alert-content' }\n})\nexport class BaoAlertContent {}\n\n/**\n * Bottom area of an alert that contains action buttons, intended for use within `<bao-alert>`.\n * This component is an optional convenience for use with other convenience elements, such as\n * `<bao-alert-content>`; any custom action block element may be used in its place.\n *\n * BaoAlertActions provides no behaviors, instead serving as a purely visual treatment.\n */\n@Directive({\n selector: 'bao-alert-actions',\n exportAs: 'baoAlertActions',\n host: {\n class: 'bao-alert-actions'\n }\n})\nexport class BaoAlertActions {}\n\n/**\n * Link inside an alert message, intended for use within `<bao-alert>`.\n * This component is an optional convenience for use with other convenience elements, such as\n * `<bao-alert-content>`; any custom action block element may be used in its place.\n *\n * BaoAlertLink provides no behaviors, instead serving as a purely visual treatment.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'bao-alert-link',\n host: {\n class: 'bao-alert-link'\n }\n})\nexport class BaoAlertLink {}\n\n/**\n * BAO alert component. Alerts should be used when the message concerns an\n * external subject or a part of the page\n *\n * See https://zeroheight.com/575tugn0n/p/03c51f-messages-dalerte/t/80b47c\n *\n * BaoAlertComponent provides no behaviors, instead serving as a purely visual treatment.\n */\n@Component({\n selector: 'bao-alert',\n templateUrl: './alert.component.html',\n styleUrls: ['./alert.component.scss'],\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'bao-alert bao-alert-with-icon bao-alert-dismissible fade show',\n '[class.bao-alert-success]': 'type === \"success\"',\n '[class.bao-alert-danger]': 'type === \"danger\"',\n '[class.bao-alert-warning]': 'type === \"warning\"',\n '[class.bao-alert-info]': 'type === \"info\"',\n '[class.bao-alert-emergency]': 'type === \"emergency\"',\n role: 'alert'\n }\n})\nexport class BaoAlertComponent implements OnChanges {\n /**\n * Alert type\n */\n @Input() public type:\n | 'success'\n | 'danger'\n | 'warning'\n | 'emergency'\n | 'info' = 'info';\n @Input() public dismissible = false;\n @Input() public alertTypeTitle?: string;\n @Input() public dismissibleButtonAriaLabel?: string = 'Cacher le message';\n\n @Output() public dismiss = new EventEmitter();\n public iconType: string;\n public iconTitle: string;\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes['type']) {\n this.iconType = this.alertTypeIcon(changes['type'].currentValue);\n this.iconTitle =\n this.alertTypeTitle ||\n this.alertTitleIcon(changes['type'].currentValue);\n }\n }\n\n public alertTypeIcon(value: string): any {\n const typesAlertIcon = {\n success: 'icon-check-circle',\n danger: 'icon-error',\n warning: 'icon-warning',\n emergency: 'icon-emergency',\n default: 'icon-info'\n };\n return (typesAlertIcon as any)[value] || typesAlertIcon.default;\n }\n public alertTitleIcon(value: string): any {\n const titleIcon = {\n success: 'Succès',\n danger: 'Erreur',\n warning: 'Attention',\n emergency: 'Urgence',\n default: 'Information'\n };\n return (titleIcon as any)[value] || titleIcon.default;\n }\n\n public onDismissClicked() {\n this.dismiss.emit();\n }\n}\n","<bao-icon [svgIcon]=\"iconType\" [title]=\"iconTitle\"></bao-icon>\n<div class=\"bao-alert-content-container\">\n <ng-content></ng-content>\n</div>\n<button\n bao-button\n *ngIf=\"dismissible\"\n type=\"utility\"\n level=\"tertiary\"\n data-dismiss=\"alert\"\n role=\"button\"\n [attr.aria-label]=\"dismissibleButtonAriaLabel\"\n (click)=\"onDismissClicked()\"\n>\n <bao-icon svgIcon=\"icon-x\"></bao-icon>\n</button>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { CommonModule } from '@angular/common';\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { BaoButtonModule } from '../button/module';\nimport { BaoIconModule } from '../icon/module';\nimport {\n BaoAlertActions,\n BaoAlertComponent,\n BaoAlertContent,\n BaoAlertLink,\n BaoAlertTitle\n} from './alert.component';\n\nconst ALERT_DIRECTIVES = [\n BaoAlertTitle,\n BaoAlertContent,\n BaoAlertActions,\n BaoAlertLink,\n BaoAlertComponent\n];\n\n@NgModule({\n imports: [CommonModule, BaoIconModule, BaoButtonModule],\n declarations: ALERT_DIRECTIVES,\n exports: [...ALERT_DIRECTIVES, BaoIconModule, BaoButtonModule],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class BaoAlertModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './module';\nexport * from './alert.component';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n Renderer2,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\n\nconst LAST_NODE_ATTRIBUTE = { 'aria-current': 'page' };\n\n@Component({\n selector: 'bao-breadcrumb',\n templateUrl: './breadcrumb.component.html',\n styleUrls: ['./breadcrumb.component.scss'],\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'bao-breadcrumb'\n }\n})\nexport class BaoBreadcrumbComponent implements AfterViewInit {\n @ViewChild('container', { static: false })\n private staticContainer: ElementRef;\n\n constructor(private renderer: Renderer2) {}\n\n public ngAfterViewInit() {\n this.setLastLinkAttribute();\n }\n\n public onContentChange() {\n this.setLastLinkAttribute();\n }\n\n private setLastLinkAttribute() {\n const children = Array.from(this.staticContainer.nativeElement.children);\n this.renderer.setAttribute(\n children[children.length - 1],\n Object.keys(LAST_NODE_ATTRIBUTE)[0],\n Object.values(LAST_NODE_ATTRIBUTE)[0]\n );\n }\n}\n","<nav\n #container\n class=\"bao-breadcrumb-nav\"\n aria-label=\"Breadcrumb\"\n (cdkObserveContent)=\"onContentChange()\"\n>\n <ng-content></ng-content>\n</nav>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { ObserversModule } from '@angular/cdk/observers';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { BaoBreadcrumbComponent } from './breadcrumb.component';\n\nconst BREADCRUMB_DIRECTIVES = [BaoBreadcrumbComponent];\n\n@NgModule({\n imports: [CommonModule, ObserversModule],\n declarations: [BREADCRUMB_DIRECTIVES],\n exports: [BREADCRUMB_DIRECTIVES]\n})\nexport class BaoBreadcrumbModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './module';\nexport * from './breadcrumb.component';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './module';\nexport * from './button.component';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\n\nimport {\n ChangeDetectionStrategy,\n Component,\n Directive,\n Input,\n ViewEncapsulation\n} from '@angular/core';\n\n/**\n * A basic content container component that adds the styles of a BAO design card.\n *\n * While this component can be used alone, it also provides a number\n * of preset styles for common card sections, including:\n * * bao-card-body\n * * bao-card-title\n * * bao-card-bao-text-interface\n * * More to come!\n */\n@Component({\n selector: 'bao-card, [bao-card], [baoCard]',\n templateUrl: 'card.component.html',\n styleUrls: ['./card.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'bao-card',\n '[class.bao-card-large-padding]': 'padding === \"large\"'\n }\n})\nexport class BaoCardComponent {\n @Input()\n public padding: 'normal' | 'large' = 'normal';\n}\n\n/**\n * Header of a card, needed as it's used as a selector in the API.\n */\n@Directive({\n selector: 'bao-card-header, [bao-card-header], [baoCardHeader]',\n host: { class: 'bao-card-header' }\n})\nexport class BaoCardHeader {}\n\n/**\n * Body of a card, needed as it's used as a selector in the API.\n */\n@Directive({\n selector: 'bao-card-content, [bao-card-content], [baoCardContent]',\n host: { class: 'bao-card-content' }\n})\nexport class BaoCardContent {}\n\n/**\n * Title of a card, needed as it's used as a selector in the API.\n */\n@Directive({\n selector: `bao-card-title, [bao-card-title], [baoCardTitle]`,\n host: {\n class: 'bao-card-title'\n }\n})\nexport class BaoCardTitle {}\n\n/**\n * Text of a card, needed as it's used as a selector in the API.\n */\n@Directive({\n selector: `bao-card-text-interface, [bao-card-text-interface], [baoCardTextInterface]`,\n host: {\n class: 'bao-card-text-interface'\n }\n})\nexport class BaoCardTextInterface {}\n","<ng-content select=\"bao-card-header\"></ng-content>\n<ng-content select=\"bao-card-content\"></ng-content>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport {\n BaoCardComponent,\n BaoCardContent,\n BaoCardHeader,\n BaoCardTextInterface,\n BaoCardTitle\n} from './card.component';\n\nconst CARD_DIRECTIVES = [\n BaoCardComponent,\n BaoCardContent,\n BaoCardHeader,\n BaoCardTextInterface,\n BaoCardTitle\n];\n\n@NgModule({\n imports: [CommonModule],\n declarations: [CARD_DIRECTIVES],\n exports: [CARD_DIRECTIVES]\n})\nexport class BaoCardModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './module';\nexport * from './card.component';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'bao-error, [bao-error]',\n template: '<div class=\"bao-error\"><ng-content></ng-content></div>',\n styleUrls: ['./errorText.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class BaoErrorTextComponent {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'bao-guiding-text, [bao-guiding-text]',\n template: '<div class=\"bao-guiding-text\"><ng-content></ng-content></div>',\n styleUrls: ['./guidingText.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class BaoGuidingTextComponent {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'bao-label, [bao-label]',\n encapsulation: ViewEncapsulation.None,\n template: '<ng-content></ng-content><span *ngIf=\"required\">&nbsp;*</span>',\n styleUrls: ['./labelText.component.scss'],\n host: { class: 'bao-label' }\n})\nexport class BaoLabelTextComponent {\n @Input() public required = false;\n}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'bao-title-text, [bao-title-text]',\n template: '<div class=\"bao-title-text\"><ng-content></ng-content></div>',\n styleUrls: ['./titleText.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class BaoTitleTextComponent {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { BaoErrorTextComponent } from './error-text/errorText.component';\nimport { BaoGuidingTextComponent } from './guiding-text/guidingText.component';\nimport { BaoLabelTextComponent } from './label-text/labelText.component';\nimport { BaoTitleTextComponent } from './title-text/titleText.component';\n\nconst DIRECTIVES = [\n BaoErrorTextComponent,\n BaoGuidingTextComponent,\n BaoLabelTextComponent,\n BaoTitleTextComponent\n];\n\n@NgModule({\n imports: [CommonModule],\n declarations: DIRECTIVES,\n exports: DIRECTIVES\n})\nexport class BaoCommonComponentsModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\n\n/**\n * Unique ID for each checkbox group counter\n */\nlet checkboxGroupNextUniqueId = 0;\n\n@Component({\n selector: 'bao-checkbox-group, [bao-checkbox-group]',\n templateUrl: './checkbox-group.component.html',\n styleUrls: ['./checkbox-group.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class BaoCheckboxGroupComponent implements AfterViewInit {\n /**\n * The checkbox group ID. It is set dynamically with an unique ID by default\n */\n @Input() public id: string;\n\n @ViewChild('container', { static: false })\n private staticContainer: ElementRef;\n\n /**\n * The aria-describedby id for web accessibilty\n */\n public ariaDescribedby?: string = undefined;\n\n private _uniqueId = `bao-checkbox-group-${++checkboxGroupNextUniqueId}`;\n\n constructor(private cdr: ChangeDetectorRef) {\n if (!this.id) {\n this.id = this._uniqueId;\n }\n }\n\n public ngAfterViewInit() {\n this.setAriaDescribedByToDescription();\n this.cdr.detectChanges();\n }\n\n public onContentChange() {\n this.setAriaDescribedByToDescription();\n }\n\n /**\n * Set the aria-describedby property to bao-guiding-text if available\n */\n private setAriaDescribedByToDescription() {\n const children = Array.from(this.staticContainer.nativeElement.children);\n if (children.length === 0) {\n this.showAriaDescribedBy(false);\n return;\n }\n\n this.showAriaDescribedBy(true);\n }\n\n private showAriaDescribedBy(value: boolean) {\n this.ariaDescribedby = value ? `${this.id}-ariadescribedby` : undefined;\n }\n}\n","<fieldset\n class=\"bao-checkbox-group\"\n [id]=\"id\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n>\n <ng-content></ng-content>\n <div\n class=\"bao-checkbox-group-description\"\n [attr.id]=\"ariaDescribedby\"\n #container\n (cdkObserveContent)=\"onContentChange()\"\n >\n <ng-content\n select=\"bao-error, [bao-error], bao-guiding-text, [bao-guiding-text]\"\n ></ng-content>\n </div>\n</fieldset>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n/**\n * Checkbox state for aria-checked property\n */\nexport const enum eCheckboxAriaState {\n TRUE = 'true',\n FALSE = 'false',\n MIXED = 'mixed'\n}\n\n/**\n * Unique ID for each checkbox counter\n */\nlet checkboxNextUniqueId = 0;\n\n@Component({\n selector: 'bao-checkbox, [bao-checkbox]',\n templateUrl: 'checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => BaoCheckboxComponent),\n multi: true\n }\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'bao-checkbox',\n '[class.bao-checkbox-inline]': 'inline',\n '[class.bao-checkbox-checked]': 'checked',\n '[class.bao-checkbox-indeterminate]': 'indeterminate',\n '[class.bao-checkbox-disabled]': 'disabled',\n '[class.bao-checkbox-card]': 'brandBorder',\n '[class.bao-checkbox-required]': 'required',\n '[class.bao-checkbox-hidden-label]': 'hiddenLabel'\n }\n})\nexport class BaoCheckboxComponent\n implements ControlValueAccessor, AfterViewInit, OnInit, OnDestroy\n{\n /**\n * The checkbox ID. It is set dynamically with an unique ID by default\n */\n @Input() public id: string;\n\n /**\n * The aria-label for web accessibility\n */\n @Input('aria-label') public ariaLabel?: string;\n\n /**\n * Whether the checkbox has a border and is considered as a card.\n */\n @Input() public brandBorder = false;\n\n /**\n * Whether the checkbox is inline.\n */\n @Input() public inline = false;\n\n /**\n * The name property of the checkbox\n */\n @Input() public name?: string;\n\n /**\n * The visible state of the label\n */\n @Input() public hiddenLabel = false;\n\n /**\n * Emitted object on change event\n */\n @Output() public readonly change: EventEmitter<boolean> =\n new EventEmitter<boolean>();\n\n /**\n * Inderminate value of the checkbox whenever\n */\n @Output() public readonly indeterminateChange: EventEmitter<boolean> =\n new EventEmitter<boolean>();\n\n /**\n * Reference to the input html element\n */\n @ViewChild('input', { static: false })\n private inputElement: ElementRef<HTMLInputElement>;\n\n /**\n * The aria-describedby id for web accessibilty\n */\n public ariaDescribedby?: string;\n\n /**\n * The aria-labeledby id for web accessibilty\n */\n public ariaLabelledby?: string;\n\n /**\n * The ID of the input html element\n */\n public inputID: string;\n\n private _disabled = false;\n private _checked = false;\n private _indeterminate = false;\n private _uniqueId = `bao-checkbox-${++checkboxNextUniqueId}`;\n private _required: boolean;\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private cdr: ChangeDetectorRef,\n private focusMonitor: FocusMonitor\n ) {\n if (!this.id) {\n this.id = this._uniqueId;\n }\n }\n\n /**\n * Whether the checkbox is checked. Default value : false\n */\n @Input()\n get checked(): boolean {\n return this._checked;\n }\n\n /**\n * Whether the checkbox is disabled. Default value : false\n */\n @Input()\n get disabled() {\n return this._disabled;\n }\n\n /**\n * Whether the checkbox is required. Default value : false\n */\n @Input()\n get required(): boolean {\n return this._required;\n }\n\n /**\n * Whether the checkbox is indeterminate. Default value : false\n */\n @Input()\n get indeterminate(): boolean {\n return this._indeterminate;\n }\n\n get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n set checked(value: boolean) {\n if (value !== this.checked) {\n this._checked = value;\n this.cdr.markForCheck();\n }\n }\n\n set disabled(value: boolean) {\n // In the case the value is string or boolean\n const newValue = value;\n\n if (newValue !== this.disabled) {\n this._disabled = newValue;\n this.cdr.markForCheck();\n }\n }\n\n set required(value: boolean) {\n this._required = value;\n }\n\n set indeterminate(value: boolean) {\n const newValue = value;\n\n if (newValue !== this._indeterminate) {\n this._indeterminate = newValue;\n this.indeterminateChange.emit(this._indeterminate);\n }\n // Update the inderteminate value of the html element object\n this.syncIndeterminate(this._indeterminate);\n }\n\n public ngOnInit() {\n // Set all unique ids for the html elements\n this.inputID = `${this.id}-input`;\n this.ariaLabelledby = `${this.id}-arialabelledby`;\n }\n\n public ngAfterViewInit() {\n this.focusMonitor.monitor(this.elementRef, true).subscribe(focusOrigin => {\n if (!focusOrigin) {\n // When a focused element becomes disabled, the browser *immediately* fires a blur event.\n // Angular does not expect events to be raised during change detection, so any state change\n // (such as a form control's 'ng-touched') will cause a changed-after-checked error.\n // See https://github.com/angular/angular/issues/17793. To work around this, we defer\n // telling the form control it has been touched until the next tick.\n Promise.resolve()\n .then(() => {\n this.onTouch();\n this.cdr.markForCheck();\n })\n .catch(() => undefined);\n }\n });\n\n this.setAriaDescribedByToDescription();\n this.syncIndeterminate(this.indeterminate);\n }\n\n public ngOnDestroy() {\n this.focusMonitor.stopMonitoring(this.elementRef);\n }\n\n /**\n * Implement ControlValueAccessor\n */\n public writeValue(value: any) {\n this.checked = !!value;\n }\n\n /**\n * Implement ControlValueAccessor\n */\n public registerOnChange(fn: (value: any) => void) {\n this.onModelChange = fn;\n }\n\n /**\n * Implement ControlValueAccessor\n */\n public registerOnTouched(fn: any) {\n this.onTouch = fn;\n }\n\n /**\n * Implement ControlValueAccessor\n */\n public setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n public focus(origin?: FocusOrigin, options?: FocusOptions): void {\n if (origin) {\n this.focusMonitor.focusVia(this.inputElement, origin, options);\n } else {\n this.inputElement.nativeElement.focus(options);\n }\n }\n\n /**\n * Whenever there is change on the input html element\n */\n public onInteractionEvent(event: Event) {\n // We always have to stop propagation on the change event.\n // Otherwise the change event, from the input element, will bubble up and\n // emit its event object to the `change` output.\n event.stopPropagation();\n }\n\n /**\n * Whenever there is click event triggered on the checkbox\n */\n public onInputClick(event: Event) {\n event.stopPropagation();\n this.toggle();\n this.emitChangeEvent();\n }\n\n /**\n * Get the value for the aria-checked property (web accessibility)\n */\n public getAriaState(): eCheckboxAriaState {\n if (this.checked) {\n return eCheckboxAriaState.TRUE;\n }\n\n return this.indeterminate\n ? eCheckboxAriaState.MIXED\n : eCheckboxAriaState.FALSE;\n }\n\n /**\n * Emit new values whenever the checkbox object has change.\n */\n private emitChangeEvent() {\n this.onModelChange(this.checked);\n this.change.emit(this.checked);\n this.syncChecked(this.checked);\n }\n\n /**\n * Set the checked property on the input html element\n */\n private syncChecked(value: boolean) {\n if (this.inputElement) {\n this.inputElement.nativeElement.checked = value;\n }\n }\n\n /**\n * Set the indeterminate property on the input html element\n */\n private syncIndeterminate(value: boolean) {\n if (this.inputElement) {\n this.inputElement.nativeElement.indeterminate = value;\n }\n }\n\n /**\n * Set the aria-describedby property to bao-checkbox-description\n */\n private setAriaDescribedByToDescription() {\n const childNodes = Array.from(this.nativeElement.childNodes);\n const labelNode = childNodes.find(x => {\n return x.nodeName === 'LABEL';\n });\n if (labelNode) {\n const labelChildNodes = Array.from(labelNode.childNodes);\n const descriptionNode = labelChildNodes.find(x => {\n return x.nodeName === 'BAO-CHECKBOX-DESCRIPTION';\n });\n\n if (descriptionNode) {\n this.ariaDescribedby = `${this.id}-ariadescribedby`;\n (descriptionNode as HTMLElement).setAttribute(\n 'id',\n this.ariaDescribedby\n );\n } else {\n this.ariaDescribedby = undefined;\n }\n\n this.cdr.detectChanges();\n }\n }\n\n /**\n * Set checked value\n */\n private toggle() {\n this.checked = !this.checked;\n }\n\n private onModelChange: (value: any) => void = () => undefined;\n private onTouch: () => void = () => undefined;\n}\n\n@Directive({\n selector:\n 'bao-checkbox-description, [bao-checkbox-description], [baoCheckboxDescription]',\n host: { class: 'bao-checkbox-description' }\n})\nexport class BaoCheckBoxDescription {}\n","<input\n #input\n type=\"checkbox\"\n [id]=\"inputID\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [attr.name]=\"name\"\n [required]=\"required\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n [attr.aria-checked]=\"getAriaState()\"\n (change)=\"onInteractionEvent($event)\"\n (click)=\"onInputClick($event)\"\n role=\"checkbox\"\n/>\n<label class=\"bao-checkbox-content-container\" [attr.for]=\"inputID\">\n <div class=\"bao-checkbox-label\" [id]=\"ariaLabelledby\">\n <ng-content></ng-content>\n </div>\n <ng-content\n select=\"bao-checkbox-description, [bao-checkbox-description], [baoCheckboxDescription]\"\n ></ng-content>\n</label>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { ObserversModule } from '@angular/cdk/observers';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { BaoCommonComponentsModule } from '../common-components/module';\nimport { BaoCheckboxGroupComponent } from './checkbox-group.component';\nimport {\n BaoCheckboxComponent,\n BaoCheckBoxDescription\n} from './checkbox.component';\n\nconst CHECKBOX_DIRECTIVES = [\n BaoCheckboxComponent,\n BaoCheckboxGroupComponent,\n BaoCheckBoxDescription\n];\n\n@NgModule({\n imports: [CommonModule, BaoCommonComponentsModule, ObserversModule],\n declarations: CHECKBOX_DIRECTIVES,\n exports: CHECKBOX_DIRECTIVES\n})\nexport class BaoCheckboxModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './module';\nexport * from './checkbox.component';\nexport * from './checkbox-group.component';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './module';\nexport * from './error-text/errorText.component';\nexport * from './guiding-text/guidingText.component';\nexport * from './label-text/labelText.component';\nexport * from './title-text/titleText.component';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport {\n ChangeDetectionStrategy,\n Component,\n Directive,\n Input,\n ViewEncapsulation\n} from '@angular/core';\n\n/**\n * A basic content container component that adds the styles of a BAO header-info\n *\n * While this component can be used alone, it also provides a number\n * of preset styles for common header-info sections, including:\n * - bao-header-info-title-group\n * - bao-header-info-content\n * - bao-header-info-title\n * - bao-header-info-surtitle\n * - bao-header-info-subtitle\n */\n@Component({\n selector: 'bao-header-info',\n templateUrl: 'header-info.html',\n styleUrls: ['header-info.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'bao-document-heading',\n '[class.document-heading-left-notch]': 'notch === \"left\"'\n }\n})\nexport class BaoHeaderInfoComponent {\n @Input() public notch: '' | 'left' | 'center' = '';\n @Input() public imageUrl = '';\n @Input() public brandBorder = false;\n}\n\n@Component({\n selector: 'bao-header-info-title-group',\n templateUrl: 'header-info-title-group.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'bao-header-info-title-group'\n }\n})\nexport class BaoHeaderInfoTitleGroupComponent {}\n\n@Directive({\n selector: 'bao-header-info-content',\n host: {\n class: 'bao-header-info-content'\n }\n})\nexport class BaoHeaderInfoContent {}\n\n@Directive({\n selector:\n 'bao-header-info-surtitle, [bao-header-info-surtitle], [baoHeaderInfoSurtitle]',\n host: {\n class: 'document-heading-surtitle'\n }\n})\nexport class BaoHeaderInfoSurtitle {}\n\n@Directive({\n selector:\n 'bao-header-info-subtitle, [bao-header-info-subtitle], [baoHeaderInfoSubtitle]',\n host: {\n class: 'document-heading-subtitle'\n }\n})\nexport class BaoHeaderInfoSubtitle {}\n\n@Directive({\n selector:\n 'bao-header-info-title, [bao-header-info-title], [baoHeaderInfoTitle]',\n host: {\n class: 'document-heading-title'\n }\n})\nexport class BaoHeaderInfoTitle {}\n","<div *ngIf=\"imageUrl\" class=\"document-heading-image-container\">\n <div\n [ngStyle]=\"{\n 'background-image': 'url(\\'' + imageUrl + '\\')'}\"\n class=\"document-heading-background\"\n ></div>\n</div>\n\n<div class=\"bao-container document-heading-header-container\">\n <div class=\"bao-row document-heading-header\">\n <div class=\"bao-col-12 bao-col-lg-7\">\n <ng-content select=\"bao-header-info-title-group\"></ng-content>\n <div class=\"bao-header-content\">\n <ng-content></ng-content>\n </div>\n <div *ngIf=\"brandBorder\" class=\"brand-border-bottom\"></div>\n </div>\n </div>\n <div *ngIf=\"notch\" class=\"document-heading-wrapper notch\">\n <div class=\"document-heading-content-wrapper\">\n <div class=\"document-heading-content\"></div>\n </div>\n </div>\n</div>\n","<ng-content></ng-content>\n<ng-content\n select=\"bao-header-surtitle, [bao-header-surtitle], [baoHeaderSurtitle], \n bao-header-title, [bao-header-title], [baoHeaderTitle],\n bao-header-subtitle, [bao-header-subtitle], [baoHeaderSubtitle]\"\n></ng-content>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport {\n BaoHeaderInfoComponent,\n BaoHeaderInfoContent,\n BaoHeaderInfoSubtitle,\n BaoHeaderInfoSurtitle,\n BaoHeaderInfoTitle,\n BaoHeaderInfoTitleGroupComponent\n} from './header-info.component';\n\nconst DIRECTIVES = [\n BaoHeaderInfoComponent,\n BaoHeaderInfoContent,\n BaoHeaderInfoTitleGroupComponent,\n BaoHeaderInfoSubtitle,\n BaoHeaderInfoSurtitle,\n BaoHeaderInfoTitle\n];\n\n@NgModule({\n imports: [CommonModule],\n declarations: DIRECTIVES,\n exports: DIRECTIVES\n})\nexport class BaoHeaderInfoModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './module';\nexport * from './header-info.component';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './module';\nexport * from './icon.component';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { Component, Directive, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'bao-list-item, [bao-list-item]',\n templateUrl: './list-item.component.html',\n styleUrls: ['./list.component.scss'],\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'bao-list-item',\n role: 'listitem'\n }\n})\nexport class BaoListItem {}\n\n@Directive({\n selector: 'bao-list, [bao-list]',\n host: {\n class: 'bao-list',\n role: 'list'\n }\n})\nexport class BaoList {}\n\n@Directive({\n selector: 'bao-nav-list, [bao-nav-list]',\n host: {\n class: 'bao-list',\n role: 'navigation'\n }\n})\nexport class BaoNavList {}\n\n@Directive({\n selector: 'bao-list-item-description, [bao-list-item-description]',\n host: {\n class: 'bao-list-item-description'\n }\n})\nexport class BaoListItemDescription {}\n\n@Directive({\n selector: 'bao-list-item-title, [bao-list-item-title]',\n host: {\n class: 'bao-list-item-title'\n }\n})\nexport class BaoListItemTitle {}\n","<div class=\"bao-list-item-header\">\n <ng-content select=\"baoIconItemType, [baoIconItemType]\"></ng-content>\n</div>\n<div class=\"bao-list-item-content\">\n <div class=\"bao-list-item-text\">\n <ng-content></ng-content>\n </div>\n <div class=\"bao-list-item-tag\">\n <ng-content\n select=\"bao-tag, [bao-tag], baoIconTag, [baoIconTag]\"\n ></ng-content>\n </div>\n</div>\n<div class=\"bao-list-item-actions\">\n <ng-content\n select=\"bao-button, [bao-button], bao-dropdown-menu, [bao-dropdown-menu]\"\n >\n </ng-content>\n</div>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport {\n BaoList,\n BaoListItem,\n BaoListItemDescription,\n BaoListItemTitle,\n BaoNavList\n} from './list.component';\n\nconst DIRECTIVES = [\n BaoListItem,\n BaoList,\n BaoNavList,\n BaoListItemDescription,\n BaoListItemTitle\n];\n\n@NgModule({\n imports: [CommonModule],\n declarations: DIRECTIVES,\n exports: DIRECTIVES\n})\nexport class BaoListModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './module';\nexport * from './list.component';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n InjectionToken,\n Input,\n Output,\n QueryList,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BaoRadioButtonComponent } from '.';\n\n/**\n * We have to inject the radio button group and all its children to each child.\n */\nexport const BAO_RADIO_GROUP = new InjectionToken<BaoRadioButtonGroupComponent>(\n 'BaoRadioButtonGroup'\n);\n/**\n * Unique ID for each radio group counter\n */\nlet radioGroupNextUniqueId = 0;\n\n@Component({\n selector:\n 'bao-radio-button-group, [bao-radio-button-group], [baoRadioButtonGroup]',\n exportAs: 'baoRadioGroup',\n templateUrl: './radio-group.component.html',\n styleUrls: ['./radio-group.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => BaoRadioButtonGroupComponent),\n multi: true\n },\n { provide: BAO_RADIO_GROUP, useExisting: BaoRadioButtonGroupComponent }\n ]\n})\nexport class BaoRadioButtonGroupComponent\n implements AfterContentInit, ControlValueAccessor, AfterViewInit\n{\n /**\n * The checkbox group ID. It is set dynamically with an unique ID by default\n */\n @Input() public id: string;\n\n /**\n * Emit the value of the selected radio button\n */\n @Output() public readonly change: EventEmitter<string> =\n new EventEmitter<string>();\n\n @ContentChildren(forwardRef(() => BaoRadioButtonComponent), {\n descendants: true\n })\n @ViewChild('container', { static: false })\n private staticContainer: ElementRef;\n\n /**\n * The aria-describedby for web accessibilty\n */\n public ariaDescribedby: string | null = null;\n\n private _radios: QueryList<BaoRadioButtonComponent>;\n private _value: string | null = null;\n private _name: string | null = null;\n private _selected: BaoRadioButtonComponent | null = null;\n private _isInitialized = false;\n private _disabled = false;\n private _required = false;\n\n private _uniqueId = `bao-checkbox-group-${++radioGroupNextUniqueId}`;\n\n constructor(private cdr: ChangeDetectorRef) {\n if (!this.id) {\n this.id = this._uniqueId;\n }\n }\n\n /**\n * Define the name property of all radio buttons. Default : null\n */\n @Input()\n get name(): string | null {\n return this._name;\n }\n\n /**\n * Define the value of the selected radio button. Default : null\n */\n @Input()\n get value(): string | null {\n return this._value;\n }\n\n /**\n * Define which radio button is selected. Default : null\n */\n @Input()\n get selected() {\n return this._selected;\n }\n\n /**\n * Whether the radio button groupd is disabled. Default : false\n */\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n /**\n * Whether the radio button groupd is required. Default : false\n */\n @Input()\n get required(): boolean {\n return this._required;\n }\n\n set name(value: string | null) {\n this._name = value;\n this.updateRadioButtonNames();\n }\n\n set value(newValue: string | null) {\n if (this._value !== newValue) {\n this._value = newValue;\n this.updateSelectedRadioFromValue();\n this.checkSelectedRadioButton();\n }\n }\n\n set selected(selected: BaoRadioButtonComponent | null) {\n this._selected = selected;\n this.value = selected ? selected.value : null;\n this.checkSelectedRadioButton();\n }\n\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n this.markRadiosForCheck();\n }\n\n set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n this.markRadiosForCheck();\n }\n\n public ngAfterContentInit() {\n this._isInitialized = true;\n }\n\n public ngAfterViewInit() {\n this.setAriaDescribedByToDescription();\n this.cdr.detectChanges();\n }\n\n /**\n * Implement ControlValueAccessor\n */\n public writeValue(value: string) {\n this.value = value;\n this.cdr.markForCheck();\n }\n\n /**\n * Implement ControlValueAccessor\n */\n public registerOnChange(fn: (value: any) => void) {\n this.onModelChange = fn;\n }\n\n /**\n * Implement ControlValueAccessor\n */\n public registerOnTouched(fn: any) {\n this.onTouch = fn;\n }\n\n /**\n * Implement ControlValueAccessor\n */\n public setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n /**\n * onTouch() called from the button children\n */\n public onGroupTouch() {\n if (this.onTouch) {\n this.onTouch();\n }\n }\n\n /**\n * Update all radio button name\n */\n public updateRadioButtonNames(): void {\n if (this._radios) {\n this._radios.forEach((radio: BaoRadioButtonComponent) => {\n radio.name = this.name;\n radio.markForCheck();\n });\n }\n }\n\n /**\n * Define which radio button is selected.\n */\n public updateSelectedRadioFromValue(): void {\n const isAlreadySelected =\n this._selected !== null && this._selected.value === this._value;\n if (this._radios && !isAlreadySelected) {\n this._selected = null;\n this._radios.forEach((radio: BaoRadioButtonComponent) => {\n radio.checked = this.value === radio.value;\n if (radio.checked) {\n this._selected = radio;\n }\n });\n }\n }\n\n /**\n * Update checked property on selected radio button\n */\n public checkSelectedRadioButton() {\n if (this._selected && !this._selected.checked) {\n this._selected.checked = true;\n }\n }\n\n /**\n * Emit the value of the new selected radio button\n */\n public emitChangeEvent(): void {\n if (this._isInitialized) {\n this.change.emit(this.value);\n }\n }\n\n /**\n * Call markForCheck function on all radio buttons since one of the parent inputs could't have change meanwhile. Prevent change detection error.\n */\n public markRadiosForCheck() {\n if (this._radios) {\n this._radios.forEach((radio: BaoRadioButtonComponent) =>\n radio.markForCheck()\n );\n }\n }\n\n public onContentChange() {\n this.setAriaDescribedByToDescription();\n }\n\n public onModelChange: (value: any) => void = () => undefined;\n\n /**\n * Set the aria-describedby property to bao-guiding-text if available\n */\n private setAriaDescribedByToDescription() {\n const children = Array.from(this.staticContainer.nativeElement.children);\n if (children.length === 0) {\n this.showAriaDescribedBy(false);\n return;\n }\n\n this.showAriaDescribedBy(true);\n }\n\n private showAriaDescribedBy(value: boolean) {\n this.ariaDescribedby = value ? `${this.id}-ariadescribedby` : null;\n }\n\n private onTouch: () => any = () => undefined;\n}\n","<fieldset\n role=\"radiogroup\"\n class=\"bao-radio-button-group\"\n [id]=\"id\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n>\n <ng-content></ng-content>\n <div\n class=\"bao-radio-button-group-description\"\n [attr.id]=\"ariaDescribedby\"\n #container\n (cdkObserveContent)=\"onContentChange()\"\n >\n <ng-content\n select=\"bao-error, [bao-error], bao-guiding-text, [bao-guiding-text]\"\n ></ng-content>\n </div>\n</fieldset>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { UniqueSelectionDispatcher } from '@angular/cdk/collections';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n BAO_RADIO_GROUP,\n BaoRadioButtonGroupComponent\n} from './radio-group.component';\n\n/**\n * Unique ID for each radio button\n */\nlet radioNextUniqueId = 0;\n\n@Component({\n selector: 'bao-radio-button, [bao-radio-button]',\n templateUrl: 'radio.component.html',\n styleUrls: ['./radio.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => BaoRadioButtonComponent),\n multi: true\n }\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'bao-radio-button',\n '[class.bao-radio-button-inline]': 'inline',\n '[class.bao-radio-button-checked]': 'checked',\n '[class.bao-radio-button-disabled]': 'disabled',\n '[class.bao-radio-button-card]': 'brandBorder',\n '[class.bao-radio-button-hidden-label]': 'hiddenLabel'\n }\n})\nexport class BaoRadioButtonComponent\n implements AfterViewInit, OnInit, OnDestroy\n{\n /**\n * The radio button ID. It is set dynamically with an unique ID by default\n */\n @Input() public id: string;\n\n /**\n * The aria-label for web accessibility\n */\n @Input('aria-label') public ariaLabel: string | null = null;\n\n /**\n * Whether the radio button has a border and is considered as a card.\n */\n @Input() public brandBorder = false;\n\n /**\n * Whether the radio button is inline.\n */\n @Input() public inline = false;\n\n /**\n * The name property of the radio button\n */\n @Input() public name: string | null = null;\n\n /**\n * The visible state of the label\n */\n @Input() public hiddenLabel = false;\n\n /**\n * Emitted boolean on change\n */\n @Output() public readonly change: EventEmitter<string> =\n new EventEmitter<string>();\n\n /**\n * Reference to the input html element\n */\n @ViewChild('input', { static: false })\n private inputElement: ElementRef<HTMLInputElement>;\n\n /**\n * The radio buttons group\n */\n public radioGroup: BaoRadioButtonGroupComponent;\n\n /**\n * The aria-describedby id for web accessibilty\n */\n public ariaDescribedby: string | null = null;\n\n /**\n * The aria-labeledby id for web accessibilty\n */\n public ariaLabelledby: string | null = null;\n\n /**\n * The ID of the input html element\n */\n public inputID: string;\n\n private _checked = false;\n private _disabled = false;\n private _required = false;\n private _value: string | null = null;\n private _uniqueId = `bao-radio-button-${++radioNextUniqueId}`;\n\n constructor(\n @Optional()\n @Inject(BAO_RADIO_GROUP)\n radioGroup: BaoRadioButtonGroupComponent,\n private elementRef: ElementRef<HTMLElement>,\n private cdr: ChangeDetectorRef,\n private focusMonitor: FocusMonitor,\n private radioDispatcher: UniqueSelectionDispatcher\n ) {\n this.radioGroup = radioGroup;\n this._removeUniqueSelectionListener = radioDispatcher.listen(\n (id: string, name: string) => {\n if (id !== this.id && name === this.name) {\n this.checked = false;\n }\n }\n );\n if (!this.id) {\n this.id = this._uniqueId;\n }\n }\n\n /**\n * Whether the radio button is checked. Default : false\n */\n @Input()\n get checked(): boolean {\n return this._checked;\n }\n\n /**\n * Define the radio button value. Default : null\n */\n @Input()\n get value(): string {\n return this._value;\n }\n\n /**\n * Whether the radio button is disabled. Default : false\n */\n @Input()\n get disabled(): boolean {\n return this._disabled || (this.radioGroup && this.radioGroup.disabled);\n }\n\n /**\n * Whether the radio button is required. Default : false\n */\n @Input()\n get required(): boolean {\n return this._required || (this.radioGroup && this.radioGroup.required);\n }\n\n get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n set checked(value: boolean) {\n const newCheckedState = coerceBooleanProperty(value);\n if (this._checked !== newCheckedState) {\n this._checked = newCheckedState;\n if (\n newCheckedState &&\n this.radioGroup &&\n this.radioGroup.value !== this.value\n ) {\n this.radioGroup.selected = this;\n } else if (\n !newCheckedState &&\n this.radioGroup &&\n this.radioGroup.value === this.value\n ) {\n this.radioGroup.selected = null;\n }\n\n if (newCheckedState) {\n this.radioDispatcher.notify(this.id, this.name);\n }\n this.cdr.markForCheck();\n }\n }\n\n set value(value: string) {\n if (value !== this._value) {\n this._value = value;\n if (this.radioGroup) {\n if (!this.checked) {\n this.checked = this.radioGroup.value === value;\n }\n if (this.checked) {\n this.radioGroup.selected = this;\n }\n }\n }\n }\n\n set disabled(value: boolean) {\n this.setDisabled(coerceBooleanProperty(value));\n }\n\n set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n }\n\n public focus(options?: FocusOptions, origin?: FocusOrigin): void {\n if (origin) {\n this.focusMonitor.focusVia(this.inputElement, origin, options);\n } else {\n this.inputElement.nativeElement.focus(options);\n }\n }\n\n /**\n * Method called from the parent as one of the parent input has changed. Prevent change detection error.\n */\n public markForCheck() {\n this.cdr.markForCheck();\n }\n\n public ngOnInit() {\n // Set all unique ids for the html elements\n this.inputID = `${this.id}-input`;\n this.ariaLabelledby = `${this.id}-arialabelledby`;\n\n if (this.radioGroup) {\n this.checked = this.radioGroup.value === this._value;\n\n if (this.checked) {\n this.radioGroup.selected = this;\n }\n\n this.name = this.radioGroup.name;\n }\n }\n\n public ngAfterViewInit() {\n this.focusMonitor\n .monitor(this.inputElement, true)\n .subscribe(focusOrigin => {\n if (!focusOrigin && this.radioGroup) {\n this.radioGroup.onGroupTouch();\n }\n });\n\n this.setAriaDescribedByToDescription();\n }\n\n public ngOnDestroy() {\n this.focusMonitor.stopMonitoring(this.inputElement);\n this._removeUniqueSelectionListener;\n }\n\n /**\n * Emit the new value from the selected radio-button and the parent\n */\n public onInputInteraction(event: Event) {\n event.stopPropagation();\n if (!this.checked && !this.disabled) {\n const groupValueChanged =\n this.radioGroup && this.value !== this.radioGroup.value;\n this.checked = true;\n this.emitChangeEvent();\n\n if (this.radioGroup) {\n this.radioGroup.onModelChange(this.value);\n if (groupValueChanged) {\n this.radioGroup.emitChangeEvent();\n }\n }\n }\n }\n\n private emitChangeEvent(): void {\n this.change.emit(this.value);\n }\n\n private setDisabled(value: boolean) {\n if (this._disabled !== value) {\n this._disabled = value;\n this.cdr.markForCheck();\n }\n }\n\n /**\n * Set the id property to bao-radio-button-description as a description to the input\n */\n private setAriaDescribedByToDescription() {\n const childNodes = Array.from(this.nativeElement.childNodes);\n const labelNode = childNodes.find(x => {\n return x.nodeName === 'LABEL';\n });\n if (labelNode) {\n const labelChildNodes = Array.from(labelNode.childNodes);\n const descriptionNode = labelChildNodes.find(x => {\n return x.nodeName === 'BAO-RADIO-BUTTON-DESCRIPTION';\n });\n\n if (descriptionNode) {\n this.ariaDescribedby = `${this.id}-ariadescribedby`;\n (descriptionNode as HTMLElement).setAttribute(\n 'id',\n this.ariaDescribedby\n );\n } else {\n this.ariaDescribedby = null;\n }\n\n this.cdr.detectChanges();\n }\n }\n\n /** Unregister function for radioDispatcher */\n private _removeUniqueSelectionListener: () => void = () => undefined;\n}\n\n@Directive({\n selector:\n 'bao-radio-button-description, [bao-radio-button-description], [baoRadioButtonDescription]',\n host: { class: 'bao-radio-button-description' }\n})\nexport class BaoRadioDescription {}\n","<input\n #input\n type=\"radio\"\n [id]=\"inputID\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [required]=\"required\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n (change)=\"onInputInteraction($event)\"\n role=\"radio\"\n/>\n<label class=\"bao-radio-button-content-container\" [attr.for]=\"inputID\">\n <div class=\"bao-radio-button-label\" [id]=\"ariaLabelledby\">\n <ng-content></ng-content>\n </div>\n <ng-content\n select=\"bao-radio-button-description, [bao-radio-button-description], [baoRadioButtonDescription]\"\n ></ng-content>\n</label>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { ObserversModule } from '@angular/cdk/observers';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { BaoButtonModule } from '../button';\nimport { BaoCommonComponentsModule } from '../common-components/module';\nimport { BaoRadioButtonGroupComponent } from './radio-group.component';\nimport {\n BaoRadioButtonComponent,\n BaoRadioDescription\n} from './radio.component';\n\nconst RADIO_DIRECTIVES = [\n BaoRadioButtonComponent,\n BaoRadioDescription,\n BaoRadioButtonGroupComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n BaoCommonComponentsModule,\n BaoButtonModule,\n ObserversModule\n ],\n declarations: RADIO_DIRECTIVES,\n exports: RADIO_DIRECTIVES\n})\nexport class BaoRadioModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './module';\nexport * from './radio.component';\nexport * from './radio-group.component';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n Renderer2,\n ViewEncapsulation\n} from '@angular/core';\n\nconst SPAN = 'span';\nconst SPAN_TEXT_PROPERTY = 'textContent';\nconst SCREEN_READER_CLASS_NAME = 'sr-only';\nconst BAO_ICON = 'bao-icon';\nconst HAS_ICON = 'has-icon';\n\n@Component({\n selector: 'bao-tag, [bao-tag], [baoTag]',\n templateUrl: './tag.component.html',\n styleUrls: ['./tag.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'bao-tag',\n '[class.bao-tag-neutral-light]':\n 'type === \"neutral\" && variant === \"light\"',\n '[class.bao-tag-neutral-strong]':\n 'type === \"neutral\" && variant === \"strong\"',\n '[class.bao-tag-info-light]': 'type === \"info\" && variant === \"light\"',\n '[class.bao-tag-info-strong]': 'type === \"info\" && variant === \"strong\"',\n '[class.bao-tag-positive-light]':\n 'type === \"positive\" && variant === \"light\"',\n '[class.bao-tag-positive-strong]':\n 'type === \"positive\" && variant === \"strong\"',\n '[class.bao-tag-alert-light]': 'type === \"alert\" && variant === \"light\"',\n '[class.bao-tag-alert-strong]': 'type === \"alert\" && variant === \"strong\"',\n '[class.bao-tag-negative-light]':\n 'type === \"negative\" && variant === \"light\"',\n '[class.bao-tag-negative-strong]':\n 'type === \"negative\" && variant === \"strong\"'\n }\n})\nexport class BaoTagComponent implements AfterViewInit {\n /**\n * The color of the tag.\n */\n @Input() public type: 'neutral' | 'info' | 'positive' | 'alert' | 'negative' =\n 'neutral';\n\n /**\n * The shade of the tags color.\n */\n @Input() public variant: 'light' | 'strong' = 'light';\n\n /**\n * The hidden text for screen readers.\n */\n @Input() public hiddenText = 'Étiquette';\n\n constructor(\n private renderer: Renderer2,\n private elementRef: ElementRef<HTMLElement>\n ) {}\n\n get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n public ngAfterViewInit() {\n this.addHiddenText();\n this.addIconClass();\n }\n\n private addHiddenText() {\n const screenReaderSpan = this.renderer.createElement(SPAN);\n this.renderer.setProperty(\n screenReaderSpan,\n SPAN_TEXT_PROPERTY,\n this.hiddenText\n );\n this.renderer.addClass(screenReaderSpan, SCREEN_READER_CLASS_NAME);\n const labelChild = Array.from(this.nativeElement.children).find(\n c => c.localName === SPAN\n );\n this.renderer.insertBefore(\n this.nativeElement,\n screenReaderSpan,\n labelChild\n );\n }\n\n private addIconClass() {\n const children = Array.from(this.nativeElement.children);\n if (children.some(c => c.localName === BAO_ICON)) {\n this.renderer.addClass(this.nativeElement, HAS_ICON);\n }\n }\n}\n","<ng-content select=\"bao-icon\"></ng-content>\n<ng-content></ng-content>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { BaoTagComponent } from './tag.component';\n\nconst TAG_DIRECTIVES = [BaoTagComponent];\n\n@NgModule({\n imports: [CommonModule],\n declarations: [TAG_DIRECTIVES],\n exports: [TAG_DIRECTIVES]\n})\nexport class BaoTagModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './module';\nexport * from './tag.component';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport {\n ChangeDetectionStrategy,\n Component,\n Directive,\n ElementRef,\n Input,\n ViewEncapsulation,\n AfterViewInit,\n OnInit\n} from '@angular/core';\nimport { EDisplayMode } from '../shared';\n\nlet summaryUniqueId = 0;\n@Component({\n selector: 'bao-summary, [bao-summary], [baoSummary]',\n templateUrl: './summary.component.html',\n styleUrls: ['./summary.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'bao-summary',\n '[class.bao-displaymode-compact]': 'displayMode === \"compact\"'\n }\n})\nexport class BaoSummaryComponent implements OnInit, AfterViewInit {\n /**\n * Set display mode\n * RESPONSIVE (viewport width <=> is 576px)\n * COMPACT (viewport width < 576px)\n */\n @Input() public displayMode = EDisplayMode.RESPONSIVE;\n\n /**\n * Set value of unique ID for bao-label\n */\n @Input() public id: string;\n\n /**\n * The aria-describebdy-error id for web accessibility\n * only when error section appears\n */\n public ariaDescribedbyError?: string;\n\n /**\n * The aria-describebdy-text id for web accessibility\n * only when we have de guidance text\n */\n public ariaDescribedbyGuidingText?: string;\n\n /**\n * The aria-labelledby id for web accessibility\n */\n public ariaLabelledby?: string;\n\n /**\n * Initialize the ID for summary\n */\n private _uniqueId = `bao-summary-${++summaryUniqueId}`;\n\n private attribues: string;\n\n constructor(private elementRef: ElementRef<HTMLElement>) {\n if (!this.id) {\n this.id = this._uniqueId;\n }\n }\n\n get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n public ngOnInit() {\n this.ariaDescribedbyError = `${this.id}-ariadescribedby-error`;\n this.ariaDescribedbyGuidingText = `${this.id}-ariadescribedby-guiding-text`;\n\n this.ariaLabelledby = `${this.id}-arialabelledby`;\n }\n\n public ngAfterViewInit() {\n this.setAriaDescribedByToDescription();\n }\n\n public setAriaDescribedByToDescription() {\n const baoLabel = this.elementNode('BAO-LABEL');\n const baoError = this.elementNode('BAO-ERROR');\n const baoGuidingText = this.elementNode('BAO-GUIDING-TEXT');\n const summaryDiv = this.elementNode('DIV');\n\n if (summaryDiv) {\n const summaryText = this.elementNode('DIV', summaryDiv);\n\n if (summaryText && baoLabel) {\n (baoLabel as HTMLElement).setAttribute('id', this.ariaLabelledby);\n (summaryText as HTMLElement).setAttribute(\n 'aria-labelledby',\n this.ariaLabelledby\n );\n }\n\n if (summaryText && baoGuidingText) {\n (baoGuidingText as HTMLElement).setAttribute(\n 'id',\n this.ariaDescribedbyGuidingText\n );\n (summaryText as HTMLElement).setAttribute(\n 'aria-describedby',\n this.ariaDescribedbyGuidingText\n );\n }\n\n if (summaryText && baoError) {\n (baoError as HTMLElement).setAttribute('id', this.ariaDescribedbyError);\n this.attribues = baoGuidingText\n ? `${this.ariaDescribedbyError}, ${this.ariaDescribedbyGuidingText}`\n : this.ariaDescribedbyError;\n (summaryText as HTMLElement).setAttribute(\n 'aria-describedby',\n this.attribues\n );\n }\n }\n }\n\n private elementNode(name: string, nativeElt?: Node): Node {\n const childNodes = nativeElt\n ? Array.from(nativeElt.childNodes)\n : Array.from(this.nativeElement.childNodes);\n const element = childNodes.find(x => x.nodeName === name);\n\n return element;\n }\n}\n\n@Directive({\n selector:\n 'bao-summary-description, [bao-summary-description], [baoSummaryDescription]',\n host: { class: 'bao-summary-description' }\n})\nexport class BaoSummaryDescription {}\n","<ng-content select=\"bao-label\"></ng-content>\n<ng-content select=\"bao-guiding-text, [bao-guiding-text]\"></ng-content>\n\n<div class=\"bao-summary-content\">\n <div class=\"bao-summary-text\">\n <ng-content select=\"bao-title-text, [bao-title-text]\"></ng-content>\n <ng-content select=\"bao-summary-description\"></ng-content>\n <ng-content\n select=\"bao-list-summary, [bao-list-summary], [baoListSummary]\"\n ></ng-content>\n </div>\n <ng-content select=\"button[bao-button]\"></ng-content>\n</div>\n<ng-content select=\"bao-error, [bao-error]\"></ng-content>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation\n} from '@angular/core';\n\n@Component({\n selector:\n 'bao-list-summary-item, [bao-list-summary-item], [baoListSummaryItem]',\n template: `<ng-content></ng-content>`,\n styleUrls: ['./list-summary.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'bao-list-summary-item',\n role: 'listitem'\n }\n})\nexport class BaoListSummaryItem {}\n\n@Component({\n selector: 'bao-list-summary, [bao-list-summary], [baoListSummary]',\n template: `<ng-content></ng-content>`,\n styles: ['.bao-list-summary { padding-left:2rem }'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'bao-list-summary',\n role: 'list'\n }\n})\nexport class BaoListSummary {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { BaoCommonComponentsModule } from '../common-components';\nimport {\n BaoSummaryComponent,\n BaoSummaryDescription\n} from './summary.component';\nimport { BaoListSummary, BaoListSummaryItem } from './list-summary.component';\n\nconst SUMMARY_DIRECTIVES = [\n BaoSummaryComponent,\n BaoSummaryDescription,\n BaoListSummary,\n BaoListSummaryItem\n];\n\n@NgModule({\n imports: [CommonModule, BaoCommonComponentsModule],\n declarations: SUMMARY_DIRECTIVES,\n exports: SUMMARY_DIRECTIVES\n})\nexport class BaoSummaryModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './module';\nexport * from './summary.component';\nexport * from './list-summary.component';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\n\nimport {\n AfterViewInit,\n Component,\n Directive,\n ElementRef,\n Input,\n Renderer2,\n ViewEncapsulation\n} from '@angular/core';\n\n@Directive({\n selector: 'bao-avatar-content, [bao-avatar-content]',\n exportAs: 'baoAvatarContent',\n host: {\n class: 'bao-avatar-content'\n }\n})\nexport class BaoAvatarContent {}\n\nconst SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\nconst SVG_PROFILE_ICON =\n \"<svg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'><circle cx='12' cy='12' r='12' fill='#DEE2E6'/><path fill-rule='evenodd' clip-rule='evenodd' d='M20.6328 20.3314C18.4504 22.5932 15.3877 24 11.9964 24C8.60514 24 5.54243 22.5932 3.36 20.3314C3.99242 18.9554 5.38284 18 6.99642 18H16.9964C18.61 18 20.0004 18.9554 20.6328 20.3314ZM17.9964 10C17.9964 13.3137 15.3101 16 11.9964 16C8.68272 16 5.99642 13.3137 5.99642 10C5.99642 6.68629 8.68272 4 11.9964 4C15.3101 4 17.9964 6.68629 17.9964 10Z' fill='#ADB2BD'/></svg>\";\nconst SCREEN_READER_CLASS_NAME = 'sr-only';\nconst SPAN_TEXT_PROPERTY = 'textContent';\n@Component({\n selector: 'bao-avatar',\n templateUrl: './avatar.component.html',\n styleUrls: ['./avatar.component.scss'],\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'bao-avatar',\n '[class.bao-avatar-color-1]': 'color === \"background-color-1\"',\n '[class.bao-avatar-color-2]': 'color === \"background-color-2\"',\n '[class.bao-avatar-color-3]': 'color === \"background-color-3\"',\n '[class.bao-avatar-color-4]': 'color === \"background-color-4\"',\n '[class.bao-avatar-color-5]': 'color === \"background-color-5\"',\n '[class.bao-avatar-color-6]': 'color === \"background-color-6\"',\n '[class.bao-avatar-color-7]': 'color === \"background-color-7\"',\n '[class.bao-avatar-color-8]': 'color === \"background-color-8\"',\n '[class.bao-avatar-color-9]': 'color === \"background-color-9\"',\n '[class.bao-avatar-color-10]': 'color === \"background-color-10\"'\n }\n})\nexport class BaoAvatarComponent implements AfterViewInit {\n /**\n * Name of the profile to be used as title of the avatar.\n */\n @Input() public profileName = 'Avatar du profil';\n\n /**\n * ID of the background color to be used if avatar's content is text.\n */\n @Input() public color:\n | 'background-color-1'\n | 'background-color-2'\n | 'background-color-3'\n | 'background-color-4'\n | 'background-color-5'\n | 'background-color-6'\n | 'background-color-7'\n | 'background-color-8'\n | 'background-color-9'\n | 'background-color-10' = 'background-color-1';\n\n constructor(\n private renderer: Renderer2,\n private elementRef: ElementRef<HTMLElement>\n ) {}\n\n get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n if (!this.nativeElement.childNodes.length) {\n this.addIcon();\n }\n if (this.nativeElement.firstChild.nodeName === 'SPAN') {\n this.formatInitials(this.nativeElement.firstChild);\n }\n this.setProfileName(this.profileName, this.nativeElement.firstChild);\n }\n\n private addIcon(): void {\n const div = this.renderer.createElement('DIV');\n div.innerHTML = SVG_PROFILE_ICON;\n const svg = div.querySelector('svg') as SVGElement;\n const titleNode = this.renderer.createElement('title', SVG_NAMESPACE);\n const titleText = this.renderer.createText(this.profileName);\n this.renderer.appendChild(titleNode, titleText);\n this.renderer.insertBefore(svg, titleNode, svg.firstChild);\n this.renderer.appendChild(this.nativeElement, svg);\n }\n\n private setProfileName(name: string, content: Node): void {\n switch (content.nodeName) {\n case 'IMG':\n this.renderer.setAttribute(content, 'alt', name);\n break;\n case 'SPAN':\n this.renderer.setAttribute(content, 'aria-hidden', 'true');\n const screenReaderSpan = this.renderer.createElement('span');\n this.renderer.setProperty(screenReaderSpan, SPAN_TEXT_PROPERTY, name);\n this.renderer.addClass(screenReaderSpan, SCREEN_READER_CLASS_NAME);\n this.renderer.insertBefore(\n this.nativeElement,\n screenReaderSpan,\n content\n );\n break;\n }\n }\n\n private formatInitials(content: Node): void {\n this.renderer.setValue(\n content.firstChild,\n content.firstChild.nodeValue.slice(0, 2)\n );\n this.renderer.addClass(this.nativeElement, 'display-color');\n }\n}\n","<ng-content select=\"bao-avatar-content, [bao-avatar-content]\"></ng-content>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { BaoAvatarComponent, BaoAvatarContent } from './avatar.component';\n\nconst AVATAR_DIRECTIVES = [BaoAvatarComponent, BaoAvatarContent];\n\n@NgModule({\n imports: [CommonModule],\n declarations: [AVATAR_DIRECTIVES],\n exports: [AVATAR_DIRECTIVES]\n})\nexport class BaoAvatarModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './module';\nexport * from './avatar.component';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\n\nimport {\n AfterContentInit,\n AfterViewInit,\n Component,\n ContentChild,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnDestroy,\n Output,\n QueryList,\n Renderer2,\n ViewEncapsulation\n} from '@angular/core';\n\n/**\n * Unique number to generate a unique ID\n */\nlet tabsNextUniqueId = 0;\n@Directive({\n selector: 'bao-tab-header, [bao-tab-header]',\n exportAs: 'baoTabHeader',\n host: {\n class: 'bao-tab-header'\n }\n})\nexport class BaoTabHeader implements AfterViewInit {\n /**\n * Emits its index when tab is clicked\n */\n @Output() public onTabClick: EventEmitter<string> =\n new EventEmitter<string>();\n\n constructor(\n private renderer: Renderer2,\n private elementRef: ElementRef<HTMLElement>\n ) {}\n\n get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n @HostListener('click', ['$event.target'])\n onClick(el: HTMLElement) {\n const tabIndex = el.id.split('-')[el.id.split('-').length - 1];\n this.onTabClick.emit(tabIndex);\n }\n\n ngAfterViewInit(): void {\n this.renderer.setAttribute(this.nativeElement, 'role', 'tab');\n this.renderer.setAttribute(this.nativeElement, 'aria-selected', 'false');\n this.renderer.setAttribute(this.nativeElement, 'tabindex', '-1');\n }\n}\n\n@Directive({\n selector: 'bao-panel, [bao-panel]',\n exportAs: 'baoPanel',\n host: {\n class: 'bao-panel'\n }\n})\nexport class BaoTabPanel implements AfterViewInit {\n constructor(\n private renderer: Renderer2,\n private elementRef: ElementRef<HTMLElement>\n ) {}\n\n get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n this.renderer.setAttribute(this.nativeElement, 'role', 'tabpanel');\n this.renderer.setAttribute(this.nativeElement, 'hidden', 'true');\n this.renderer.setAttribute(this.nativeElement, 'tabindex', '0');\n this.renderer.setAttribute(this.nativeElement, 'aria-expanded', 'false');\n }\n}\n\n@Component({\n selector: 'bao-tablist, [bao-tablist]',\n templateUrl: './tabs.component.html',\n styleUrls: ['./tabs.component.scss'],\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'bao-tablist',\n '[class.bao-tablist-small]': 'size === \"small\"',\n '[class.bao-tablist-medium]': 'size === \"medium\"',\n '[class.bao-tablist-large]': 'size === \"large\"'\n }\n})\nexport class BaoTablistComponent\n implements AfterViewInit, AfterContentInit, OnDestroy\n{\n @ContentChildren(BaoTabHeader) tabHeaders: QueryList<BaoTabHeader>;\n\n /**\n * Size of the tabs displayed\n */\n @Input() public size: 'small' | 'medium' | 'large' = 'large';\n\n /**\n * Optionnal value to be used as aria-label property on tablist component\n */\n @Input() public ariaLabel = 'onglets';\n\n /**\n * Emits the index of the new active tab\n */\n @Output() public activeTabChange: EventEmitter<string> =\n new EventEmitter<string>();\n\n /**\n * Index of the tab that is currently active\n */\n private activeTabIndex: string;\n\n /**\n * Unique ID for every instance of BaoTablist component\n */\n private uniqueId: string;\n\n constructor(\n private renderer: Renderer2,\n private elementRef: ElementRef<HTMLElement>\n ) {\n this.uniqueId = `bao-tablist-${tabsNextUniqueId++}`;\n }\n\n get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n get tabs(): HTMLCollection {\n return this.elementRef.nativeElement.children;\n }\n\n @HostListener('window:keydown.arrowleft')\n leftKeyEvent() {\n if (document.activeElement.parentElement.id === this.uniqueId) {\n this.activeTabIndex = this.getNextActivableTabIndex(\n parseInt(this.activeTabIndex),\n false\n );\n this.changeActiveTab(this.activeTabIndex, true);\n this.activeTabChange.emit(this.activeTabIndex);\n }\n }\n\n @HostListener('window:keydown.arrowright')\n rightKeyEvent() {\n if (document.activeElement.parentElement.id === this.uniqueId) {\n this.activeTabIndex = this.getNextActivableTabIndex(\n parseInt(this.activeTabIndex),\n true\n );\n this.changeActiveTab(this.activeTabIndex, true);\n this.activeTabChange.emit(this.activeTabIndex);\n }\n }\n\n /**\n * Makes the focus visible on tab header when changing from mouse to keyboard navigation\n */\n @HostListener('window:keydown.tab')\n tabKeyEvent() {\n if (document.activeElement.parentElement.id === this.uniqueId) {\n this.renderer.addClass(this.tabs[this.activeTabIndex], 'focus-visible');\n }\n }\n\n /**\n * Makes the focus visible on tab header when changing from mouse to keyboard navigation\n */\n @HostListener('window:keydown.shift.tab')\n tabShiftKeyEvent() {\n if (document.activeElement.parentElement.id === this.uniqueId) {\n this.renderer.addClass(this.tabs[this.activeTabIndex], 'focus-visible');\n }\n }\n\n ngAfterViewInit(): void {\n this.setTablistAttributes();\n if (this.nativeElement.childElementCount) {\n this.setInitialActiveTab();\n }\n }\n\n ngAfterContentInit(): void {\n this.tabHeaders.forEach((tab: BaoTabHeader) => {\n tab.onTabClick.subscribe((index: string) => {\n this.renderer.removeClass(this.tabs[index], 'focus-visible');\n this.activeTabIndex = index;\n this.changeActiveTab(index, false);\n this.activeTabChange.emit(index);\n });\n });\n }\n\n ngOnDestroy(): void {\n this.tabHeaders.forEach((tab: BaoTabHeader) => {\n tab.onTabClick.unsubscribe();\n });\n }\n\n private setTablistAttributes(): void {\n this.renderer.setAttribute(this.nativeElement, 'role', 'tablist');\n this.renderer.setAttribute(\n this.nativeElement,\n 'aria-label',\n this.ariaLabel\n );\n this.renderer.setProperty(this.nativeElement, 'id', this.uniqueId);\n }\n\n private setInitialActiveTab(): void {\n const firstTabIndex = Array.from(this.tabs).findIndex(\n (tab: HTMLElement) => !tab.attributes['disabled']\n );\n this.activeTabIndex = firstTabIndex.toString();\n this.renderer.setAttribute(\n this.tabs[firstTabIndex],\n 'aria-selected',\n 'true'\n );\n this.renderer.addClass(this.tabs[firstTabIndex], 'active');\n this.renderer.addClass(this.tabs[firstTabIndex], 'focus-visible');\n this.renderer.removeAttribute(this.tabs[firstTabIndex], 'tabindex');\n }\n\n private changeActiveTab(\n newActiveTabIndex: string,\n isFocusVisible: boolean\n ): void {\n Array.from(this.tabs).forEach((tab: HTMLElement) => {\n if (tab.id === `bao-tab-${newActiveTabIndex}`) {\n if (isFocusVisible) {\n this.renderer.addClass(tab, 'focus-visible');\n }\n this.renderer.setAttribute(tab, 'aria-selected', 'true');\n this.renderer.addClass(tab, 'active');\n this.renderer.removeAttribute(tab, 'tabindex');\n tab.focus();\n } else {\n this.renderer.setAttribute(tab, 'aria-selected', 'false');\n this.renderer.removeClass(tab, 'active');\n this.renderer.setAttribute(tab, 'tabindex', '-1');\n this.renderer.removeClass(tab, 'focus-visible');\n }\n });\n }\n\n /**\n * Finds the next activable tab index when navigating with left and right arrow keys\n * @param currentIndex Tab index which currently has focus\n * @param isRight Whether the tab navigation is going in the right direction or not\n * @returns Index of the new tab that will receive focus\n */\n private getNextActivableTabIndex(\n currentIndex: number,\n isRight: boolean\n ): string {\n const nextIndex = isRight ? currentIndex + 1 : currentIndex - 1;\n const nextIndexInTablist =\n ((nextIndex % this.tabs.length) + this.tabs.length) % this.tabs.length;\n if (this.tabs[nextIndexInTablist].attributes['disabled']) {\n return this.getNextActivableTabIndex(nextIndexInTablist, isRight);\n }\n return nextIndexInTablist.toString();\n }\n}\n\n@Directive({\n selector: 'bao-tabs, [bao-tabs]',\n exportAs: 'baoTabs',\n host: {\n class: 'bao-tabs'\n }\n})\nexport class BaoTabsContainer\n implements AfterViewInit, AfterContentInit, OnDestroy\n{\n @ContentChild(BaoTablistComponent) tablist: BaoTablistComponent;\n\n private panelIdPrefix = 'bao-panel-';\n private tabIdPrefix = 'bao-tab-';\n\n constructor(\n private renderer: Renderer2,\n private elementRef: ElementRef<HTMLElement>\n ) {}\n\n get tabs(): HTMLCollection {\n return this.elementRef.nativeElement.querySelector('.bao-tablist').children;\n }\n\n get panels(): NodeListOf<Element> {\n return this.elementRef.nativeElement.querySelectorAll('.bao-panel');\n }\n\n ngAfterViewInit(): void {\n this.setInitialActivePanel();\n Array.from(this.tabs).forEach((tab: HTMLElement, idx) => {\n const tabId = `${this.tabIdPrefix}${idx}`;\n const panelId = `${this.panelIdPrefix}${idx}`;\n this.renderer.setProperty(tab, 'id', tabId);\n this.renderer.setProperty(this.panels[idx], 'id', panelId);\n this.renderer.setAttribute(tab, 'aria-controls', panelId);\n this.renderer.setAttribute(this.panels[idx], 'aria-labelledby', tabId);\n });\n }\n\n ngAfterContentInit(): void {\n this.tablist.activeTabChange.subscribe((index: string) =>\n this.changeActivePanel(index)\n );\n }\n\n ngOnDestroy(): void {\n this.tablist.activeTabChange.unsubscribe();\n }\n\n private setInitialActivePanel(): void {\n const firstTabIndex = Array.from(this.tabs).findIndex(\n (tab: HTMLElement) => !tab.attributes['disabled']\n );\n this.renderer.removeAttribute(this.panels[firstTabIndex], 'hidden');\n this.renderer.setAttribute(\n this.panels[firstTabIndex],\n 'aria-expanded',\n 'true'\n );\n }\n\n private changeActivePanel(newActiveId: string): void {\n this.panels.forEach((panel: Element) => {\n if (panel.id === `${this.panelIdPrefix}${newActiveId}`) {\n this.renderer.removeAttribute(panel, 'hidden');\n this.renderer.setAttribute(panel, 'aria-expanded', 'true');\n } else {\n this.renderer.setAttribute(panel, 'hidden', 'true');\n this.renderer.setAttribute(panel, 'aria-expanded', 'false');\n }\n });\n }\n}\n","<ng-content></ng-content>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport {\n BaoTablistComponent,\n BaoTabHeader,\n BaoTabPanel,\n BaoTabsContainer\n} from './tabs.component';\n\nconst TABS_DIRECTIVES = [\n BaoTabsContainer,\n BaoTablistComponent,\n BaoTabHeader,\n BaoTabPanel\n];\n\n@NgModule({\n imports: [CommonModule],\n declarations: [TABS_DIRECTIVES],\n exports: [TABS_DIRECTIVES]\n})\nexport class BaoTabsModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './module';\nexport * from './tabs.component';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\n\nimport { ViewContainerRef, Injector } from '@angular/core';\nimport { Direction } from '@angular/cdk/bidi';\nimport { ScrollStrategy } from '@angular/cdk/overlay';\n\nexport enum eModalDesktopWidthSize {\n SMALL = 'bao-modal-sm', // 500px\n MEDIUM = 'bao-modal-md', // 800px\n LARGE = 'bao-modal-lg' // Full width minus 32px (global margin : left and rigth)\n}\n\nexport enum eModalMobileWidthSize {\n FULL = 'bao-modal-mobil-full', // Full width on mobile screen\n COMPACT = 'bao-modal-mobil-compact' // 300px\n}\n\nexport interface BaoModalConfig {\n size?: eModalDesktopWidthSize;\n mobileSize?: eModalMobileWidthSize;\n data?: unknown;\n ariaLabelledBy?: string;\n}\n\n/** Options for where to set focus to automatically on dialog open */\nexport type AutoFocusTarget = 'dialog' | 'first-tabbable' | 'first-heading';\n\n/** Valid ARIA roles for a dialog element. */\nexport type ModalRole = 'dialog' | 'alertdialog';\n\n/** Possible overrides for a dialog's position. */\nexport interface ModalPosition {\n /** Override for the dialog's top position. */\n top?: string;\n\n /** Override for the dialog's bottom position. */\n bottom?: string;\n\n /** Override for the dialog's left position. */\n left?: string;\n\n /** Override for the dialog's right position. */\n right?: string;\n}\n\n/**\n * Configuration for opening a modal dialog with the BaoModal service.\n */\nexport class BaoModalInitialConfig<D = unknown> {\n /**\n * Where the attached component should live in Angular's *logical* component tree.\n * This affects what is available for injection and the change detection order for the\n * component instantiated inside of the dialog. This does not affect where the dialog\n * content will be rendered.\n */\n viewContainerRef?: ViewContainerRef;\n\n /**\n * Injector used for the instantiation of the component to be attached. If provided,\n * takes precedence over the injector indirectly provided by `ViewContainerRef`.\n */\n injector?: Injector;\n\n /** ID for the dialog. If omitted, a unique one will be generated. */\n id?: string;\n\n /** The ARIA role of the dialog element. */\n role?: ModalRole = 'dialog';\n\n /** Custom class for the overlay pane. */\n panelClass?: string | string[] = '';\n\n /** Whether the dialog has a backdrop. */\n hasBackdrop?: boolean = true;\n\n /** Custom class for the backdrop. */\n backdropClass?: string | string[] = '';\n\n /** Whether the user can use escape or clicking on the backdrop to close the modal. */\n disableClose?: boolean = false;\n\n /** Width of the dialog. */\n width?: string = '';\n\n /** Height of the dialog. */\n height?: string = '';\n\n /** Min-width of the dialog. If a number is provided, assumes pixel units. */\n minWidth?: number | string;\n\n /** Min-height of the dialog. If a number is provided, assumes pixel units. */\n minHeight?: number | string;\n\n /** Max-width of the dialog. If a number is provided, assumes pixel units. Defaults to 80vw. */\n maxWidth?: number | string = '80vw';\n\n /** Max-height of the dialog. If a number is provided, assumes pixel units. */\n maxHeight?: number | string;\n\n /** Position overrides. */\n position?: ModalPosition;\n\n /** Data being injected into the child component. */\n data?: D | null = null;\n\n /** Layout direction for the dialog's content. */\n direction?: Direction;\n\n /** ID of the element that describes the dialog. */\n ariaDescribedBy?: string | null = null;\n\n /** ID of the element that labels the dialog. */\n ariaLabelledBy?: string | null = null;\n\n /** Aria label to assign to the dialog element. */\n ariaLabel?: string | null = null;\n\n /**\n * Where the dialog should focus on open.\n */\n autoFocus?: AutoFocusTarget | string = 'first-tabbable';\n\n /**\n * Whether the dialog should restore focus to the\n * previously-focused element, after it's closed.\n */\n restoreFocus?: boolean = true;\n\n /** Whether to wait for the opening animation to finish before trapping focus. */\n delayFocusTrap?: boolean = true;\n\n /** Scroll strategy to be used for the dialog. */\n scrollStrategy?: ScrollStrategy;\n\n /**\n * Whether the dialog should close when the user goes backwards/forwards in history.\n * Note that this usually doesn't include clicking on links (unless the user is using\n * the `HashLocationStrategy`).\n */\n closeOnNavigation?: boolean = true;\n}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport {\n FocusMonitor,\n FocusOrigin,\n ConfigurableFocusTrap,\n ConfigurableFocusTrapFactory,\n InteractivityChecker\n} from '@angular/cdk/a11y';\nimport { _getFocusedElementPierceShadowDom } from '@angular/cdk/platform';\nimport {\n BasePortalOutlet,\n CdkPortalOutlet,\n ComponentPortal,\n TemplatePortal\n} from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n EventEmitter,\n Inject,\n NgZone,\n Optional,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { BaoModalInitialConfig } from './modal-config';\n\n/** Event that captures the state of modal container animations. */\ninterface DialogAnimationEvent {\n state: 'opened' | 'opening' | 'closing' | 'closed';\n totalTime: number;\n}\n\n/**\n * Throws an exception for the case when a ComponentPortal is\n * attached to a DomPortalOutlet without an origin.\n * @docs-private\n */\nexport function throwBaoModalContentAlreadyAttachedError() {\n throw Error(\n 'Attempting to attach modal content after content is already attached'\n );\n}\n\n/**\n * Base class for the `BaoModalContainer`. The base class does not implement\n * animations as these are left to implementers of the modal container.\n */\n@Directive()\nexport abstract class _BaoModalContainerBase extends BasePortalOutlet {\n /** The portal outlet inside of this container into which the modal content will be loaded. */\n @ViewChild(CdkPortalOutlet, { static: true }) _portalOutlet: CdkPortalOutlet;\n\n /** Emits when an animation state changes. */\n public _animationStateChanged = new EventEmitter<DialogAnimationEvent>();\n\n /**\n * Type of interaction that led to the modal being closed. This is used to determine\n * whether the focus style will be applied when returning focus to its original location\n * after the modal is closed.\n */\n public _closeInteractionType: FocusOrigin | null = null;\n\n /** ID of the element that should be considered as the modal's label. */\n public _ariaLabelledBy: string | null;\n\n /** ID for the container DOM element. */\n public _id: string;\n\n protected _document: Document;\n\n /** The class that traps and manages focus within the modal. */\n private _focusTrap: ConfigurableFocusTrap;\n\n /** Element that was focused before the modal was opened. Save this to restore upon close. */\n private _elementFocusedBeforeDialogWasOpened: HTMLElement | null = null;\n\n constructor(\n protected _elementRef: ElementRef,\n protected _focusTrapFactory: ConfigurableFocusTrapFactory,\n protected _changeDetectorRef: ChangeDetectorRef,\n @Optional() @Inject(DOCUMENT) _document: any,\n /** The modal configuration. */\n public _config: BaoModalInitialConfig,\n private readonly _interactivityChecker: InteractivityChecker,\n private readonly _ngZone: NgZone,\n private _focusMonitor?: FocusMonitor\n ) {\n super();\n this._ariaLabelledBy = _config.ariaLabelledBy || null;\n this._document = _document;\n }\n\n /** Initializes the modal container with the attached content. */\n public _initializeWithAttachedContent() {\n this._setupFocusTrap();\n // Save the previously focused element. This element will be re-focused\n // when the modal closes.\n this._capturePreviouslyFocusedElement();\n }\n\n /**\n * Attach a ComponentPortal as content to this modal container.\n */\n public attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n return this._portalOutlet.attachComponentPortal(portal);\n }\n\n /**\n * Attach a TemplatePortal as content to this modal container.\n */\n public attachTemplatePortal<C>(\n portal: TemplatePortal<C>\n ): EmbeddedViewRef<C> {\n return this._portalOutlet.attachTemplatePortal(portal);\n }\n\n /** Moves focus back into the modal if it was moved out. */\n public async _recaptureFocus() {\n if (!this._containsFocus()) {\n await this._trapFocus();\n }\n }\n\n /**\n * Moves the focus inside the focus trap. When autoFocus is not set to 'modal', if focus\n * cannot be moved then focus will go to the modal container.\n */\n protected async _trapFocus() {\n const element = this._elementRef.nativeElement;\n // If were to attempt to focus immediately, then the content of the modal would not yet be\n // ready in instances where change detection has to run first. To deal with this, we simply\n // wait for the microtask queue to be empty when setting focus when autoFocus isn't set to\n // modal. If the element inside the modal can't be focused, then the container is focused\n // so the user can't tab into other elements behind it.\n switch (this._config.autoFocus) {\n case 'modal':\n // Ensure that focus is on the modal container. It's possible that a different\n // component tried to move focus while the open animation was running. See:\n // https://github.com/angular/components/issues/16215. Note that we only want to do this\n // if the focus isn't inside the modal already, because it's possible that the consumer\n // turned off `autoFocus` in order to move focus themselves.\n if (!this._containsFocus()) {\n element.focus();\n }\n break;\n case 'first-tabbable':\n // If we weren't able to find a focusable element in the modal, then focus the modal\n // container instead.\n const focusedSuccessfully =\n await this._focusTrap.focusInitialElementWhenReady();\n if (!focusedSuccessfully) {\n this._focusDialogContainer();\n }\n break;\n case 'first-heading':\n this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role=\"heading\"]');\n break;\n default:\n this._focusByCssSelector(this._config.autoFocus);\n break;\n }\n }\n\n /** Restores focus to the element that was focused before the modal opened. */\n protected _restoreFocus() {\n const previousElement = this._elementFocusedBeforeDialogWasOpened;\n\n // We need the extra check, because IE can set the `activeElement` to null in some cases.\n if (\n this._config.restoreFocus &&\n previousElement &&\n typeof previousElement.focus === 'function'\n ) {\n const activeElement = _getFocusedElementPierceShadowDom();\n const element = this._elementRef.nativeElement;\n\n // Make sure that focus is still inside the modal or is on the body (usually because a\n // non-focusable element like the backdrop was clicked) before moving it. It's possible that\n // the consumer moved it themselves before the animation was done, in which case we shouldn't\n // do anything.\n if (\n !activeElement ||\n activeElement === this._document.body ||\n activeElement === element ||\n element.contains(activeElement)\n ) {\n if (this._focusMonitor) {\n this._focusMonitor.focusVia(\n previousElement,\n this._closeInteractionType\n );\n this._closeInteractionType = null;\n } else {\n previousElement.focus();\n }\n }\n }\n\n if (this._focusTrap) {\n this._focusTrap.destroy();\n }\n }\n\n /**\n * Focuses the provided element. If the element is not focusable, it will add a tabIndex\n * attribute to forcefully focus it. The attribute is removed after focus is moved.\n */\n private _forceFocus(element: HTMLElement, options?: FocusOptions) {\n if (!this._interactivityChecker.isFocusable(element)) {\n element.tabIndex = -1;\n // The tabindex attribute should be removed to avoid navigating to that element again\n this._ngZone.runOutsideAngular(() => {\n element.addEventListener('blur', () =>\n element.removeAttribute('tabindex')\n );\n element.addEventListener('mousedown', () =>\n element.removeAttribute('tabindex')\n );\n });\n }\n element.focus(options);\n }\n\n /**\n * Focuses the first element that matches the given selector within the focus trap.\n */\n private _focusByCssSelector(selector: string, options?: FocusOptions) {\n const elementToFocus = this._elementRef.nativeElement.querySelector(\n selector\n ) as HTMLElement | null;\n if (elementToFocus) {\n this._forceFocus(elementToFocus, options);\n }\n }\n\n /** Sets up the focus trap. */\n private _setupFocusTrap() {\n this._focusTrap = this._focusTrapFactory.create(\n this._elementRef.nativeElement\n );\n }\n\n /** Captures the element that was focused before the modal was opened. */\n private _capturePreviouslyFocusedElement() {\n if (this._document) {\n this._elementFocusedBeforeDialogWasOpened =\n _getFocusedElementPierceShadowDom();\n }\n }\n\n /** Focuses the modal container. */\n private _focusDialogContainer() {\n // Note that there is no focus method when rendering on the server.\n if (this._elementRef.nativeElement.focus) {\n this._elementRef.nativeElement.focus();\n }\n }\n\n /** Returns whether focus is inside the modal. */\n private _containsFocus() {\n const element = this._elementRef.nativeElement as HTMLElement;\n const activeElement = _getFocusedElementPierceShadowDom();\n return element === activeElement || element.contains(activeElement);\n }\n\n /** Starts the modal exit animation. */\n abstract _startExitAnimation(): void;\n abstract _startOpenAnimation(): void;\n}\n\n@Component({\n selector: 'bao-modal-container',\n templateUrl: 'modal-container.component.html',\n styleUrls: ['modal-container.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Default,\n host: {\n class: 'bao-modal-container',\n tabindex: '-1',\n 'aria-modal': 'true',\n '[id]': '_id',\n '[attr.role]': '_config.role',\n '[attr.aria-labelledby]': '_config.ariaLabel ? null : _ariaLabelledBy',\n '[attr.aria-label]': '_config.ariaLabel',\n '[attr.aria-describedby]': '_config.ariaDescribedBy || null'\n }\n})\nexport class BaoModalContainer extends _BaoModalContainerBase {\n /** State of the modal animation. */\n _state: 'void' | 'enter' | 'exit' = 'enter';\n\n public _startOpenAnimation() {\n this._animationStateChanged.emit({ state: 'opening', totalTime: 20 });\n void Promise.resolve().then(() => this._finishDialogOpen());\n }\n\n /** Starts the modal exit animation. */\n public _startExitAnimation(): void {\n this._animationStateChanged.emit({ state: 'closed', totalTime: 20 });\n }\n\n private _finishDialogOpen() {\n this._openAnimationDone(20);\n }\n\n private _openAnimationDone(totalTime: number) {\n if (this._config.delayFocusTrap) {\n void this._trapFocus();\n }\n this._animationStateChanged.next({ state: 'opened', totalTime });\n }\n}\n","<ng-template cdkPortalOutlet></ng-template>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { FocusOrigin } from '@angular/cdk/a11y';\nimport { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';\nimport { GlobalPositionStrategy, OverlayRef } from '@angular/cdk/overlay';\nimport { filter, Observable, Subject, take } from 'rxjs';\nimport { ModalPosition } from './modal-config';\nimport { _BaoModalContainerBase } from './modal-container';\n\n// Counter for unique modal ids.\nlet uniqueId = 0;\n\n/** Possible states of the lifecycle of a modal. */\nexport const enum BaoModalState {\n OPEN,\n CLOSING,\n CLOSED\n}\n\n/**\n * Reference to a modal opened via the BaoModalService.\n */\nexport class BaoModalRef<T, R = unknown> {\n /** The instance of component opened into the modal. */\n public componentInstance: T;\n\n /** Whether the user is allowed to close the modal. */\n public disableClose: boolean | undefined =\n this._containerInstance._config.disableClose;\n\n /** Subject for notifying the user that the modal has finished opening. */\n private readonly _afterOpened = new Subject<void>();\n\n /** Subject for notifying the user that the modal has finished closing. */\n private readonly _afterClosed = new Subject<R | undefined>();\n\n /** Subject for notifying the user that the modal has started closing. */\n private readonly _beforeClosed = new Subject<R | undefined>();\n\n /** Result to be passed to afterClosed. */\n private _result: R | undefined;\n\n /** Handle to the timeout that's running as a fallback in case the exit animation doesn't fire. */\n private _closeFallbackTimeout: any;\n\n /** Current state of the modal. */\n private _state = BaoModalState.OPEN;\n\n constructor(\n private _overlayRef: OverlayRef,\n public _containerInstance: _BaoModalContainerBase,\n /** Id of the modal. */\n readonly id: string = `bao-modal-${uniqueId++}`\n ) {\n // Pass the id along to the container.\n _containerInstance._id = id;\n\n // Emit when opening animation completes\n _containerInstance._animationStateChanged\n .pipe(\n filter(event => event.state === 'opened'),\n take(1)\n )\n .subscribe(() => {\n this._afterOpened.next();\n this._afterOpened.complete();\n });\n\n // Dispose overlay when closing animation is complete\n _containerInstance._animationStateChanged\n .pipe(\n filter(event => event.state === 'closed'),\n take(1)\n )\n .subscribe(() => {\n clearTimeout(this._closeFallbackTimeout);\n this._finishModalClose();\n });\n\n _overlayRef.detachments().subscribe(() => {\n this._beforeClosed.next(this._result);\n this._beforeClosed.complete();\n this._afterClosed.next(this._result);\n this._afterClosed.complete();\n this.componentInstance = null;\n this._overlayRef.dispose();\n });\n\n _overlayRef\n .keydownEvents()\n .pipe(\n filter(event => {\n return (\n event.keyCode === ESCAPE &&\n !this.disableClose &&\n !hasModifierKey(event)\n );\n })\n )\n .subscribe(event => {\n event.preventDefault();\n _closeModalVia(this, 'keyboard');\n });\n\n _overlayRef.backdropClick().subscribe(async () => {\n if (this.disableClose) {\n await this._containerInstance._recaptureFocus();\n } else {\n _closeModalVia(this, 'mouse');\n }\n });\n }\n\n /**\n * Close the modal.\n * @param modalResult Optional result to return to the modal opener.\n */\n public close(modalResult?: R): void {\n this._result = modalResult;\n\n // Transition the backdrop in parallel to the modal.\n this._containerInstance._animationStateChanged\n .pipe(\n filter(event => event.state === 'closing'),\n take(1)\n )\n .subscribe(event => {\n this._beforeClosed.next(modalResult);\n this._beforeClosed.complete();\n this._overlayRef.detachBackdrop();\n // The logic that disposes of the overlay depends on the exit animation completing, however\n // it isn't guaranteed if the parent view is destroyed while it's running. Add a fallback\n // timeout which will clean everything up if the animation hasn't fired within the specified\n // amount of time plus 100ms. We don't need to run this outside the NgZone, because for the\n // vast majority of cases the timeout will have been cleared before it has the chance to fire.\n this._closeFallbackTimeout = setTimeout(\n () => this._finishModalClose(),\n (event.totalTime as number) + 100\n );\n });\n\n this._state = BaoModalState.CLOSING;\n this._containerInstance._startExitAnimation();\n }\n\n public startOpenAnimation(): void {\n this._containerInstance._startOpenAnimation();\n }\n\n /**\n * Gets an observable that is notified when the modal is finished opening.\n */\n public afterOpened(): Observable<void> {\n return this._afterOpened;\n }\n\n /**\n * Gets an observable that is notified when the modal is finished closing.\n */\n public afterClosed(): Observable<R | undefined> {\n return this._afterClosed;\n }\n\n /**\n * Gets an observable that is notified when the modal has started closing.\n */\n public beforeClosed(): Observable<R | undefined> {\n return this._beforeClosed;\n }\n\n /**\n * Gets an observable that emits when the overlay's backdrop has been clicked.\n */\n public backdropClick(): Observable<MouseEvent> {\n return this._overlayRef.backdropClick();\n }\n\n /**\n * Gets an observable that emits when keydown events are targeted on the overlay.\n */\n public keydownEvents(): Observable<KeyboardEvent> {\n return this._overlayRef.keydownEvents();\n }\n\n /**\n * Updates the dialog's position.\n */\n public updatePosition(position?: ModalPosition): this {\n const strategy = this._getPositionStrategy();\n\n if (position && (position.left || position.right)) {\n position.left\n ? strategy.left(position.left)\n : strategy.right(position.right);\n } else {\n strategy.centerHorizontally();\n }\n\n if (position && (position.top || position.bottom)) {\n position.top\n ? strategy.top(position.top)\n : strategy.bottom(position.bottom);\n } else {\n strategy.centerVertically();\n }\n\n this._overlayRef.updatePosition();\n\n return this;\n }\n\n /**\n * Updates the modal's width and height.\n */\n public updateSize(width = '', height = ''): this {\n this._overlayRef.updateSize({ width, height });\n this._overlayRef.updatePosition();\n return this;\n }\n\n /** Add a CSS class or an array of classes to the overlay pane. */\n public addPanelClass(classes: string | string[]): this {\n this._overlayRef.addPanelClass(classes);\n return this;\n }\n\n /** Remove a CSS class or an array of classes from the overlay pane. */\n public removePanelClass(classes: string | string[]): this {\n this._overlayRef.removePanelClass(classes);\n return this;\n }\n\n /** Gets the current state of the modal's lifecycle. */\n public getState(): BaoModalState {\n return this._state;\n }\n\n /**\n * Finishes the modal close by updating the state of the modal\n * and disposing the overlay.\n */\n private _finishModalClose() {\n this._state = BaoModalState.CLOSED;\n this._overlayRef.dispose();\n }\n\n /** Fetches the position strategy object from the overlay ref. */\n private _getPositionStrategy(): GlobalPositionStrategy {\n return this._overlayRef.getConfig()\n .positionStrategy as GlobalPositionStrategy;\n }\n}\n\n/**\n * Closes the modal with the specified interaction type. This is currently not part of\n * `BaoModalRef` as that would conflict with custom modal ref mocks provided in tests.\n * More details. See: https://github.com/angular/components/pull/9257#issuecomment-651342226.\n */\nexport function _closeModalVia<R>(\n ref: BaoModalRef<R>,\n interactionType: FocusOrigin,\n result?: R\n) {\n // Some mock modal ref instances in tests do not have the `_containerInstance` property.\n // For those, we keep the behavior as is and do not deal with the interaction type.\n if (ref._containerInstance !== undefined) {\n ref._containerInstance._closeInteractionType = interactionType;\n }\n return ref.close(result);\n}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\n\n/* eslint-disable @typescript-eslint/no-unsafe-return*/\nimport {\n Directive,\n Injectable,\n InjectionToken,\n Injector,\n OnDestroy,\n Optional,\n SkipSelf,\n StaticProvider,\n TemplateRef,\n Type\n} from '@angular/core';\nimport { defer, Observable, startWith, Subject, Subscription } from 'rxjs';\nimport { BaoModalContainer, _BaoModalContainerBase } from './modal-container';\nimport { BaoModalRef } from './modal-ref';\nimport {\n BaoModalConfig,\n BaoModalInitialConfig,\n eModalDesktopWidthSize,\n eModalMobileWidthSize\n} from './modal-config';\nimport {\n ComponentType,\n Overlay,\n OverlayConfig,\n OverlayContainer,\n OverlayRef\n} from '@angular/cdk/overlay';\nimport { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\n\n/** Injection token that can be used to access the data that was passed in to a modal. */\nexport const BAO_MODAL_DATA = new InjectionToken<unknown>('BaoModalData');\n\n@Directive()\nexport abstract class BaoModalBase<C extends _BaoModalContainerBase>\n implements OnDestroy\n{\n public readonly afterAllClosed: Observable<void> = defer(() =>\n this.openModals.length\n ? this.getAfterAllClosed()\n : this.getAfterAllClosed().pipe(startWith(undefined))\n );\n\n private _openModalsAtThisLevel: BaoModalRef<unknown>[] = [];\n private readonly _afterAllClosedAtThisLevel = new Subject<void>();\n private readonly _afterOpenedAtThisLevel = new Subject<\n BaoModalRef<unknown>\n >();\n private _ariaHiddenElements = new Map<Element, string | null>();\n private _modalAnimatingOpen = false;\n private _animationStateSubscriptions: Subscription;\n private _lastModalRef: BaoModalRef<unknown>;\n\n constructor(\n private _overlay: Overlay,\n private _injector: Injector,\n private _parentModal: BaoModalBase<C> | undefined,\n private _overlayContainer: OverlayContainer,\n private _modalRefConstructor: Type<BaoModalRef<unknown>>,\n private _modalContainerType: Type<C>,\n private _modalDataToken: InjectionToken<unknown>\n ) {}\n\n /** Keeps track of the currently-open modals. */\n public get openModals(): BaoModalRef<unknown>[] {\n return this._parentModal\n ? this._parentModal.openModals\n : this._openModalsAtThisLevel;\n }\n\n /** Stream that emits when a modal has been opened. */\n public get afterOpened(): Subject<BaoModalRef<unknown>> {\n // Maybe typescript version difference\n return this._parentModal\n ? this._parentModal.afterOpened\n : this._afterOpenedAtThisLevel;\n }\n\n public getAfterAllClosed(): Subject<void> {\n const parent = this._parentModal;\n return parent\n ? parent.getAfterAllClosed()\n : this._afterAllClosedAtThisLevel;\n }\n\n /**\n * Opens a modal modal containing the given template.\n */\n public open<T>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n config?: BaoModalConfig\n ): BaoModalRef<unknown> {\n const conf = this._applyConfigDefaults(config, new BaoModalInitialConfig());\n\n // If there is a modal that is currently animating open, return the MatmodalRef of that modal\n if (this._modalAnimatingOpen) {\n return this._lastModalRef;\n }\n\n const overlayRef = this._createOverlay(conf);\n const modalContainer = this._attachModalContainer(overlayRef, conf);\n\n const modalRef = this._attachModalContent<T>(\n componentOrTemplateRef,\n modalContainer,\n overlayRef,\n conf\n );\n this._lastModalRef = modalRef;\n\n // If this is the first modal that we're opening, hide all the non-overlay content.\n if (!this.openModals.length) {\n this._hideNonModalContentFromAssistiveTechnology();\n }\n\n this.openModals.push(modalRef);\n modalRef.afterClosed().subscribe(() => this._removeOpenModal(modalRef));\n this.afterOpened.next(modalRef);\n\n // Notify the modal container that the content has been attached.\n modalContainer._initializeWithAttachedContent();\n\n return modalRef;\n }\n\n /**\n * Closes all of the currently-open modals.\n */\n public closeAll(): void {\n this._closeModals(this.openModals);\n }\n\n /**\n * Finds an open modal by its id.\n */\n public getModalById(id: string): BaoModalRef<unknown> | undefined {\n return this.openModals.find(modal => modal.id === id);\n }\n\n public ngOnDestroy() {\n // Only close the modals at this level on destroy\n // since the parent service may still be active.\n this._closeModals(this._openModalsAtThisLevel);\n this._afterAllClosedAtThisLevel.complete();\n this._afterOpenedAtThisLevel.complete();\n // Clean up any subscriptions to modals that never finished opening.\n if (this._animationStateSubscriptions) {\n this._animationStateSubscriptions.unsubscribe();\n }\n }\n\n /**\n * Creates the overlay into which the modal will be loaded.\n */\n private _createOverlay(config: BaoModalInitialConfig): OverlayRef {\n const overlayConfig = this._getOverlayConfig(config);\n return this._overlay.create(overlayConfig);\n }\n\n /**\n * Creates an overlay config from a modal config.\n */\n private _getOverlayConfig(config: BaoModalInitialConfig): OverlayConfig {\n const state = new OverlayConfig({\n positionStrategy: this._overlay.position().global(),\n scrollStrategy: this._overlay.scrollStrategies.block(),\n panelClass: config.panelClass,\n hasBackdrop: config.hasBackdrop,\n disposeOnNavigation: config.closeOnNavigation\n });\n\n if (config.backdropClass) {\n state.backdropClass = config.backdropClass;\n }\n\n return state;\n }\n\n /**\n * Attaches a modal container to a modal's already-created overlay.\n */\n private _attachModalContainer(\n overlay: OverlayRef,\n config: BaoModalInitialConfig\n ): C {\n const userInjector =\n config && config.viewContainerRef && config.viewContainerRef.injector;\n const injector = Injector.create({\n parent: userInjector || this._injector,\n providers: [{ provide: BaoModalInitialConfig, useValue: config }]\n });\n\n const containerPortal = new ComponentPortal(\n this._modalContainerType,\n config.viewContainerRef,\n injector\n );\n const containerRef = overlay.attach<C>(containerPortal);\n containerRef.instance._startOpenAnimation();\n\n return containerRef.instance;\n }\n\n /**\n * Attaches the user-provided component to the already-created modal container.\n */\n private _attachModalContent<T>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n modalContainer: C,\n overlayRef: OverlayRef,\n config: BaoModalInitialConfig\n ): BaoModalRef<unknown> {\n // Create a reference to the modal we're creating in order to give the user a handle\n // to modify and close it.\n const modalRef = new this._modalRefConstructor(\n overlayRef,\n modalContainer,\n config.id\n );\n\n if (componentOrTemplateRef instanceof TemplateRef) {\n modalContainer.attachTemplatePortal(\n new TemplatePortal(componentOrTemplateRef, null, <unknown>{\n $implicit: config.data,\n modalRef\n })\n );\n } else {\n const injector = this._createInjector(config, modalRef, modalContainer);\n const contentRef = modalContainer.attachComponentPortal<T>(\n new ComponentPortal(\n componentOrTemplateRef,\n config.viewContainerRef,\n injector\n )\n );\n modalRef.componentInstance = contentRef.instance;\n }\n\n modalRef\n .updateSize(config.width, config.height)\n .updatePosition(config.position);\n\n return modalRef;\n }\n\n /**\n * Creates a custom injector to be used inside the modal. This allows a component loaded inside\n * of a modal to close itself and, optionally, to return a value.\n */\n private _createInjector(\n config: BaoModalInitialConfig,\n modalRef: BaoModalRef<unknown>,\n modalContainer: C\n ): Injector {\n const userInjector =\n config && config.viewContainerRef && config.viewContainerRef.injector;\n\n // The modal container should be provided as the modal container and the modal's\n // content are created out of the same `ViewContainerRef` and as such, are siblings\n // for injector purposes. To allow the hierarchy that is expected, the modal\n // container is explicitly provided in the injector.\n const providers: StaticProvider[] = [\n { provide: this._modalContainerType, useValue: modalContainer },\n { provide: this._modalDataToken, useValue: config.data },\n { provide: this._modalRefConstructor, useValue: modalRef }\n ];\n\n return Injector.create({\n parent: userInjector || this._injector,\n providers\n });\n }\n\n /**\n * Removes a modal from the array of open modals.\n */\n private _removeOpenModal(modalRef: BaoModalRef<unknown>) {\n const index = this.openModals.indexOf(modalRef);\n\n if (index > -1) {\n this.openModals.splice(index, 1);\n\n // If all the modals were closed, remove/restore the `aria-hidden`\n // to a the siblings and emit to the `afterAllClosed` stream.\n if (!this.openModals.length) {\n this._ariaHiddenElements.forEach((previousValue, element) => {\n if (previousValue) {\n element.setAttribute('aria-hidden', previousValue);\n } else {\n element.removeAttribute('aria-hidden');\n }\n });\n\n this._ariaHiddenElements.clear();\n this.getAfterAllClosed().next();\n }\n }\n }\n\n /**\n * Hides all of the content that isn't an overlay from assistive technology.\n */\n private _hideNonModalContentFromAssistiveTechnology() {\n const overlayContainer = this._overlayContainer.getContainerElement();\n\n // Ensure that the overlay container is attached to the DOM.\n if (overlayContainer.parentElement) {\n const siblings = overlayContainer.parentElement.children;\n\n for (let i = siblings.length - 1; i > -1; i--) {\n const sibling = siblings[i];\n\n if (\n sibling !== overlayContainer &&\n sibling.nodeName !== 'SCRIPT' &&\n sibling.nodeName !== 'STYLE' &&\n !sibling.hasAttribute('aria-live')\n ) {\n this._ariaHiddenElements.set(\n sibling,\n sibling.getAttribute('aria-hidden')\n );\n sibling.setAttribute('aria-hidden', 'true');\n }\n }\n }\n }\n\n /** Closes all of the modals in an array. */\n private _closeModals(modals: BaoModalRef<unknown>[]) {\n let i = modals.length;\n while (i--) {\n modals[i].close();\n }\n }\n\n /**\n * Applies default options to the modal config.\n */\n private _applyConfigDefaults(\n config?: BaoModalConfig,\n defaultOptions?: BaoModalInitialConfig\n ): BaoModalInitialConfig {\n const desktopClass = config?.size || eModalDesktopWidthSize.SMALL;\n const mobilClass = config?.mobileSize || eModalMobileWidthSize.FULL;\n const data = config?.data || null;\n const ariaLabelledBy = config?.ariaLabelledBy || null;\n\n return {\n ...defaultOptions,\n ...{\n panelClass: [desktopClass, mobilClass],\n ariaLabelledBy,\n data\n }\n };\n }\n}\n\n/**\n * Service to open modal.\n */\n@Injectable()\nexport class BaoModal extends BaoModalBase<BaoModalContainer> {\n constructor(\n overlay: Overlay,\n injector: Injector,\n @Optional() @SkipSelf() parentModal: BaoModal,\n overlayContainer: OverlayContainer\n ) {\n super(\n overlay,\n injector,\n parentModal,\n overlayContainer,\n BaoModalRef,\n BaoModalContainer,\n BAO_MODAL_DATA\n );\n }\n}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\n\nimport {\n Directive,\n Input,\n OnChanges,\n OnInit,\n Optional,\n SimpleChanges,\n ElementRef\n} from '@angular/core';\nimport { BaoModal } from './modal';\nimport { _closeModalVia, BaoModalRef } from './modal-ref';\n\n/**\n * Button that will close the current dialog.\n */\n@Directive({\n selector: '[bao-modal-close], [baoModalClose]',\n exportAs: 'BaoModalClose',\n host: {\n '(click)': '_onButtonClick($event)',\n '[attr.aria-label]': 'ariaLabel || null',\n '[attr.type]': 'type'\n }\n})\nexport class BaoModalClose implements OnInit, OnChanges {\n /** Screenreader label for the button. */\n @Input('aria-label') ariaLabel: string;\n\n /** Default to \"button\" to prevents accidental form submits. */\n @Input() type: 'submit' | 'button' | 'reset' = 'button';\n\n /** Dialog close input. */\n @Input('bao-modal-close') dialogResult: unknown;\n\n @Input('baoModalClose') _baoModalClose: unknown;\n\n constructor(\n @Optional() public modalRef: BaoModalRef<unknown> | null,\n private _elementRef: ElementRef<HTMLElement>,\n private _dialog: BaoModal\n ) {}\n\n ngOnInit() {\n if (!this.modalRef) {\n // When this directive is included in a dialog via TemplateRef (rather than being\n // in a Component), the modalRef isn't available via injection because embedded\n // views cannot be given a custom injector. Instead, we look up the modalRef by\n // ID. This must occur in `onInit`, as the ID binding for the dialog container won't\n // be resolved at constructor time.\n this.modalRef =\n getClosestDialog(this._elementRef, this._dialog.openModals) || null;\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const proxiedChange =\n changes['_baoModalClose'] || changes['_baoModalCloseResult'];\n\n if (proxiedChange) {\n this.dialogResult = proxiedChange.currentValue;\n }\n }\n\n _onButtonClick(event: MouseEvent) {\n // Determinate the focus origin using the click event, because using the FocusMonitor will\n // result in incorrect origins. Most of the time, close buttons will be auto focused in the\n // dialog, and therefore clicking the button won't result in a focus change. This means that\n // the FocusMonitor won't detect any origin change, and will always output `program`.\n _closeModalVia(\n this.modalRef,\n event.screenX === 0 && event.screenY === 0 ? 'keyboard' : 'mouse',\n this.dialogResult\n );\n }\n}\n\n/**\n * Finds the closest BaoModalRef to an element by looking at the DOM.\n */\nfunction getClosestDialog(\n element: ElementRef<HTMLElement>,\n openDialogs: BaoModalRef<unknown>[]\n): BaoModalRef<unknown> | null {\n let parent: HTMLElement | null = element.nativeElement.parentElement;\n\n while (parent && !parent.classList.contains('bao-modal-container')) {\n parent = parent.parentElement;\n }\n\n return parent ? openDialogs.find(dialog => dialog.id === parent.id) : null;\n}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { BaoModal } from './modal';\nimport { BaoModalContainer } from './modal-container';\nimport { BaoModalClose } from './modal-directives';\n\nconst MODAL_DIRECTIVES = [BaoModalContainer, BaoModalClose];\n\n@NgModule({\n imports: [CommonModule, OverlayModule, PortalModule],\n declarations: MODAL_DIRECTIVES,\n exports: MODAL_DIRECTIVES,\n providers: [BaoModal]\n})\nexport class BaoModalModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\n\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n Renderer2,\n ViewEncapsulation\n} from '@angular/core';\n\nconst BAO_ICON = 'bao-icon';\nconst LINK_ELEMENT = 'a';\nconst HAS_LEFT_ICON = 'has-left-icon';\nconst HAS_RIGHT_ICON = 'has-right-icon';\nconst LIST_PARENT = 'bao-hyperlink-list-parent';\n\n@Component({\n selector: 'bao-hyperlink, [bao-hyperlink]',\n templateUrl: './hyperlink.component.html',\n styleUrls: ['./hyperlink.component.scss'],\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'bao-hyperlink',\n '[class.bao-hyperlink-medium]': 'size === \"medium\"',\n '[class.bao-hyperlink-small]': 'size === \"small\"',\n '[class.bao-hyperlink-extra-small]': 'size === \"extra-small\"'\n }\n})\nexport class BaoHyperlinkComponent implements AfterViewInit {\n /**\n * Size of the link when it's in a list.\n */\n @Input() public size?: 'extra-small' | 'small' | 'medium' = 'medium';\n\n constructor(\n private renderer: Renderer2,\n private elementRef: ElementRef<HTMLElement>\n ) {}\n\n get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n public ngAfterViewInit() {\n this.setIcon();\n this.addIconClass();\n }\n\n private setIcon() {\n const parentName = this.nativeElement.parentElement.localName;\n if (parentName === 'ul') {\n this.renderer.addClass(this.nativeElement.parentElement, LIST_PARENT);\n } else {\n // Icon in inline hyperlink must always be positioned after label.\n const children = Array.from(this.nativeElement.children);\n const iconIndex = children.findIndex(c => c.localName === BAO_ICON);\n if (iconIndex > -1) {\n const labelIndex = children.findIndex(\n c => c.localName === LINK_ELEMENT\n );\n // Set icon's size to match text's lineHeight.\n const lineHeight = getComputedStyle(children[labelIndex])['lineHeight'];\n this.renderer.setStyle(children[iconIndex], 'height', lineHeight);\n this.renderer.setStyle(children[iconIndex], 'width', lineHeight);\n if (iconIndex < labelIndex) {\n const iconElement = children[iconIndex];\n this.renderer.removeChild(this.nativeElement, children[iconIndex]);\n this.renderer.appendChild(this.nativeElement, iconElement);\n }\n }\n }\n }\n\n private addIconClass() {\n const children = Array.from(this.nativeElement.children);\n const iconIndex = children.findIndex(c => c.localName === BAO_ICON);\n if (iconIndex > -1) {\n const labelIndex = children.findIndex(c => c.localName === LINK_ELEMENT);\n const iconClass = iconIndex < labelIndex ? HAS_LEFT_ICON : HAS_RIGHT_ICON;\n this.renderer.addClass(this.nativeElement, iconClass);\n }\n }\n}\n","<ng-content></ng-content>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { BaoHyperlinkComponent } from './hyperlink.component';\n\nconst HYPERLINK_DIRECTIVES = [BaoHyperlinkComponent];\n\n@NgModule({\n imports: [CommonModule],\n declarations: [HYPERLINK_DIRECTIVES],\n exports: [HYPERLINK_DIRECTIVES]\n})\nexport class BaoHyperlinkModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\n\nexport * from './module';\nexport * from './hyperlink.component';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\n\nimport {\n ConnectedPosition,\n Overlay,\n OverlayConfig,\n OverlayRef\n} from '@angular/cdk/overlay';\nimport { DomPortal } from '@angular/cdk/portal';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n QueryList,\n Renderer2,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\n/**\n * Unique ID for each dropdown menu\n */\nlet dropdownMenuUniqueId = 0;\n@Directive({\n selector: 'bao-dropdown-menu-item, [bao-dropdown-menu-item]',\n host: {\n class: 'bao-dropdown-menu-item',\n '[class.bao-dropdown-menu-item-disabled]': 'disabled===true'\n }\n})\nexport class BaoDropdownMenuItem implements AfterViewInit, OnChanges {\n /**\n * Is the list item disabled\n */\n @Input() public disabled = false;\n\n /**\n * Emits when menu item is clicked\n */\n @Output() public itemClicked = new EventEmitter();\n\n constructor(\n private renderer: Renderer2,\n private elementRef: ElementRef<HTMLElement>,\n private _parent: BaoDropdownMenuComponent\n ) {}\n\n get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n @HostListener('window:keyup.space')\n spaceKeyEvent() {\n if (document.activeElement == this.nativeElement) {\n this.nativeElement.click();\n }\n }\n\n @HostListener('click', ['$event.target'])\n onClick(el: HTMLElement) {\n if (this.nativeElement.attributes['href']) {\n this._parent.setNavigationAttribute(this.nativeElement);\n }\n // Prevent double-click on checkbox input that undoes the toggle\n if (!el.classList.contains('bao-checkbox-content-container')) {\n this.propagateClick();\n }\n }\n\n @HostListener('window:keyup.enter')\n enterKeyEvent() {\n if (document.activeElement == this.nativeElement) {\n this.nativeElement.click();\n }\n }\n\n public ngAfterViewInit(): void {\n this.addContentDiv();\n if (!this.disabled) {\n this.renderer.setAttribute(this.nativeElement, 'tabIndex', '0');\n }\n this.addPaddingClass();\n // Remove input element inside item from keyboard navigation sequence\n if (this.nativeElement.classList.contains('has-element-left')) {\n this.renderer.setAttribute(\n this.nativeElement.children.item(0).firstElementChild,\n 'tabIndex',\n '-1'\n );\n }\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes['disabled'] && changes['disabled'].currentValue == true) {\n this.disableItem();\n }\n }\n\n /** Regroups label and description in a new div to help with layout */\n private addContentDiv(): void {\n const children = Array.from(this.nativeElement.children);\n const labelIndex = children.findIndex(\n c => c.localName === 'bao-dropdown-menu-item-label'\n );\n const labelElement = children[labelIndex];\n this.renderer.removeChild(this.nativeElement, children[labelIndex]);\n const contentDiv = this.renderer.createElement('div');\n this.renderer.addClass(contentDiv, 'bao-dropdown-menu-item-content');\n this.renderer.appendChild(this.nativeElement, contentDiv);\n this.renderer.appendChild(contentDiv, labelElement);\n const descriptionIndex = children.findIndex(\n c => c.localName === 'bao-dropdown-menu-item-description'\n );\n if (descriptionIndex > 0) {\n const descriptionElement = children[descriptionIndex];\n this.renderer.removeChild(this.nativeElement, children[descriptionIndex]);\n this.renderer.appendChild(contentDiv, descriptionElement);\n }\n }\n\n private addPaddingClass(): void {\n const children = Array.from(this.nativeElement.children);\n // Menu item has extra element next to label\n if (children.length > 1) {\n // Only toggle element can be on the right\n if (children.findIndex(c => c.localName === 'bao-toggle') > 0) {\n this.renderer.addClass(this.nativeElement, 'has-element-right');\n }\n // Icon, checkbox, radio button or avatar must be on the left\n else {\n this.renderer.addClass(this.nativeElement, 'has-element-left');\n }\n }\n }\n\n private disableItem(): void {\n if (this.disabled) {\n this.renderer.setAttribute(this.nativeElement, 'aria-disabled', 'true');\n this.renderer.setAttribute(this.nativeElement, 'tabIndex', '-1');\n }\n }\n\n /**\n * This method propagates a click event to menu item children with inputs (checkbox, radio button).\n * It emits event to close menu if item does not contain an input.\n */\n private propagateClick(): void {\n let closeMenu = true;\n for (let i = 0; i < this.nativeElement.children.length; i++) {\n if (\n this.nativeElement.children.item(i).firstElementChild.localName ==\n 'input'\n ) {\n (\n this.nativeElement.children.item(i).firstElementChild as HTMLElement\n ).click();\n closeMenu = false;\n }\n }\n if (closeMenu) {\n this.itemClicked.emit();\n }\n }\n}\n@Component({\n selector: 'bao-dropdown-menu',\n templateUrl: './dropdown-menu.component.html',\n styleUrls: ['./dropdown-menu.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'bao-dropdown-menu-container',\n '[class.bao-overlay-transparent-backdrop]': 'isOpen===false',\n '[class.bao-dropdown-menu-closed]': 'isOpen===false',\n '[attr.aria-expanded]': 'isOpen'\n }\n})\nexport class BaoDropdownMenuComponent\n implements AfterContentInit, AfterViewInit\n{\n /**\n * Fired when the dropdown-menu changes its 'isOpen' value\n */\n @Output() public isOpenChange = new EventEmitter<boolean>();\n\n /**\n * Fired when menu is closed by key event triggered from menu item\n */\n @Output() public isClosedByKeyEvent = new EventEmitter();\n\n /**\n * Content of menu to be loaded inside Overlay\n */\n @ViewChild('menuContent') _menuContent: ElementRef<HTMLElement>;\n\n /**\n * All list items inside menu\n */\n @ContentChildren(BaoDropdownMenuItem, { descendants: true })\n _listItems: QueryList<BaoDropdownMenuItem>;\n\n /**\n * Unique identifier of the dropdown menu\n */\n readonly menuId = `bao-dropdown-menu-${++dropdownMenuUniqueId}`;\n\n /**\n * Is the dropwdown menu currently open\n */\n private _isOpen = false;\n\n /**\n * Reference to portal which is attached to Overlay\n */\n private _menuPortal: DomPortal;\n\n /**\n * Index of currently active list item\n */\n private _activeItemIndex: number;\n\n constructor(\n private cdr: ChangeDetectorRef,\n private renderer: Renderer2,\n private elementRef: ElementRef<HTMLElement>\n ) {}\n\n get isOpen(): boolean {\n return this._isOpen;\n }\n get activeItemIndex(): number {\n return this._activeItemIndex;\n }\n get menuPortal(): DomPortal {\n return this._menuPortal;\n }\n get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n set isOpen(isOpen: boolean) {\n this._isOpen = isOpen;\n this.cdr.detectChanges();\n this.isOpenChange.emit(isOpen);\n }\n set activeItemIndex(index: number) {\n this._activeItemIndex = index;\n }\n\n @HostListener('window:keyup.arrowup')\n upKeyEvent() {\n if (this.isOpen) {\n const index = isNaN(this._activeItemIndex) ? -1 : this._activeItemIndex;\n const nextIndex = this.getNextActivableItemIndex(index, false);\n if (nextIndex > -1) {\n this.focusNextItem(nextIndex);\n }\n }\n }\n\n @HostListener('window:keyup.arrowdown')\n downKeyEvent() {\n if (this.isOpen) {\n const index = isNaN(this._activeItemIndex) ? -1 : this._activeItemIndex;\n const nextIndex = this.getNextActivableItemIndex(index, true);\n if (nextIndex > -1) {\n this.focusNextItem(nextIndex);\n }\n }\n }\n\n /** Prevents focus to be lost when TAB has reached end of menu */\n @HostListener('window:keydown.tab')\n tabKeyEvent() {\n if (this.isOpen) {\n if (document.activeElement === this._listItems.last.nativeElement) {\n this.isClosedByKeyEvent.emit();\n }\n }\n }\n\n @HostListener('window:keyup.tab')\n tabUpKeyEvent() {\n if (this.isOpen) {\n this._activeItemIndex = this._listItems.reduce((acc, element, index) => {\n if (element.nativeElement === document.activeElement) {\n acc = index;\n }\n\n return acc;\n }, -1);\n }\n }\n\n /** Prevents focus to be lost when SHIFT + TAB has reached beginning of menu */\n @HostListener('window:keydown.shift.tab', ['$event'])\n shiftTabKeyEvent(event: KeyboardEvent) {\n if (this.isOpen) {\n if (document.activeElement === this._listItems.first.nativeElement) {\n event.preventDefault();\n event.stopPropagation();\n this.isClosedByKeyEvent.emit();\n }\n }\n }\n\n public ngAfterViewInit(): void {\n this.renderer.setAttribute(this.nativeElement, 'id', this.menuId);\n this._menuPortal = new DomPortal(this._menuContent);\n }\n\n public ngAfterContentInit(): void {\n this._listItems.forEach(\n (item: BaoDropdownMenuItem): Subscription =>\n item.itemClicked.subscribe(() => this.isClosedByKeyEvent.emit())\n );\n }\n\n public open(): void {\n this.isOpen = true;\n }\n\n public close(): void {\n this.isOpen = false;\n }\n\n public focus(): void {\n this._activeItemIndex = -1;\n this._menuContent.nativeElement.focus();\n }\n\n /** Move the aria-current attribute to new active page */\n public setNavigationAttribute(activePageElement: HTMLElement): void {\n const previousActivePage = this._listItems.find(\n (item: BaoDropdownMenuItem) => {\n return item.nativeElement.attributes['aria-current'] === 'page';\n }\n );\n if (previousActivePage) {\n this.renderer.removeAttribute(\n previousActivePage.nativeElement,\n 'aria-current'\n );\n this.renderer.removeClass(\n previousActivePage.nativeElement,\n 'active-link'\n );\n }\n this.renderer.setAttribute(activePageElement, 'aria-current', 'page');\n this.renderer.addClass(activePageElement, 'active-link');\n }\n\n private focusNextItem(nextIndex: number): void {\n this._activeItemIndex = nextIndex;\n this._listItems.get(nextIndex).nativeElement.focus();\n }\n\n /**\n * Finds the next activable tab index when navigating with up and down arrow or TAB keys\n * @param currentIndex List item index which currently has focus\n * @param isDown Whether the navigation is going in the down direction or not\n * @param isBackward If recursive function is going backward looking for last activable item in list\n * @returns Index of the next item that will receive focus\n */\n private getNextActivableItemIndex(\n currentIndex: number,\n isDown: boolean\n ): number {\n const init: number[] = [];\n // Get all the activable indexes\n const activableIndexes = this._listItems.reduce((acc, element, index) => {\n if (!element.disabled) {\n acc = [...acc, index];\n }\n\n return acc;\n }, init);\n\n if (activableIndexes.length) {\n if (isDown) {\n // Select the first enabled element\n if (currentIndex === -1) {\n return activableIndexes[0];\n }\n\n // Select the only enabled element\n if (activableIndexes.length === 1) {\n return activableIndexes[0];\n }\n\n // Stay on the last enabled element\n if (currentIndex === activableIndexes[activableIndexes.length - 1]) {\n return currentIndex;\n }\n\n // Select the next enabled element\n return activableIndexes.find(index => index > currentIndex);\n }\n\n const isUp = !isDown;\n if (isUp) {\n // Do nothing whenever nothing is selected\n if (currentIndex === -1) {\n return currentIndex;\n }\n\n // Select the only enabled element\n if (activableIndexes.length === 1) {\n return activableIndexes[0];\n }\n\n // Stay on the first enabled element\n if (currentIndex === activableIndexes[0]) {\n return currentIndex;\n }\n\n // Select the above enabled element\n return activableIndexes.reverse().find(index => index < currentIndex);\n }\n\n return -1;\n }\n }\n}\n/**\n * Directive to be applied on element that will trigger the opening and closing of menu.\n */\n@Directive({\n selector:\n 'bao-dropdown-menu-trigger, [bao-dropdown-menu-trigger], [baoDropdownMenuTriggerFor]',\n host: { class: 'bao-dropdown-menu-trigger' }\n})\nexport class BaoDropdownMenuTrigger implements AfterViewInit, OnDestroy {\n @Input('baoDropdownMenuTriggerFor') menu: BaoDropdownMenuComponent | null;\n private _overlayRef: OverlayRef | null = null;\n private _isMenuOpen = false;\n\n constructor(\n private renderer: Renderer2,\n private elementRef: ElementRef<HTMLElement>,\n private overlay: Overlay\n ) {}\n\n get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n @HostListener('window:keyup.escape')\n escapeKeyEvent() {\n if (this._isMenuOpen) {\n this.closeMenu();\n this.nativeElement.focus();\n }\n }\n\n @HostListener('click')\n onClick() {\n this.toggleMenu();\n }\n\n public ngAfterViewInit(): void {\n this.renderer.setAttribute(this.nativeElement, 'role', 'button');\n this.renderer.setAttribute(\n this.nativeElement,\n 'aria-controls',\n `bao-dropdown-menu-${dropdownMenuUniqueId}`\n );\n this.menu.isClosedByKeyEvent.subscribe(() => {\n this.closeMenu();\n this.nativeElement.focus();\n });\n }\n\n public ngOnDestroy(): void {\n if (this._overlayRef) {\n this._overlayRef.dispose();\n }\n }\n\n private toggleMenu(): void {\n return this._isMenuOpen ? this.closeMenu() : this.openMenu();\n }\n\n private closeMenu(): void {\n this._isMenuOpen = false;\n this.menu.close();\n if (this._overlayRef) {\n this._overlayRef.detach();\n }\n }\n\n private openMenu(): void {\n if (!this.menu) {\n return;\n }\n const overlayRef = this.createOverlay();\n overlayRef.attach(this.menu.menuPortal);\n this._isMenuOpen = true;\n this.menu.open();\n this.menu.focus();\n }\n\n private createOverlay(): OverlayRef {\n if (!this._overlayRef) {\n const config = this.getOverlayConfig();\n this._overlayRef = this.overlay.create(config);\n }\n this._overlayRef.backdropClick().subscribe(() => {\n this.closeMenu();\n });\n return this._overlayRef;\n }\n\n private getOverlayConfig(): OverlayConfig {\n return new OverlayConfig({\n positionStrategy: this.overlay\n .position()\n .flexibleConnectedTo(this.elementRef)\n .withLockedPosition()\n .withGrowAfterOpen()\n .withPositions([\n {\n // top-left of the overlay is connected to bottom-left of the origin;\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n } as ConnectedPosition,\n {\n // bottom-left of the overlay is connected to top-left of the origin;\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom'\n } as ConnectedPosition,\n {\n // top-right of the overlay is connected to bottom-right of the origin;\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top'\n } as ConnectedPosition,\n {\n // bottom-right of the overlay is connected to top-right of the origin;\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom'\n } as ConnectedPosition\n ]),\n backdropClass: 'bao-overlay-transparent-backdrop',\n hasBackdrop: true,\n scrollStrategy: this.overlay.scrollStrategies.block()\n });\n }\n}\n/**\n * Sections of list items in menu. Apply proper styling to section's title if there is one.\n */\n@Directive({\n selector: 'bao-dropdown-menu-section, [bao-dropdown-menu-section]',\n host: { class: 'bao-dropdown-menu-section' }\n})\nexport class BaoDropdownMenuSection implements AfterViewInit {\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private renderer: Renderer2\n ) {}\n\n get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n public ngAfterViewInit(): void {\n const children = Array.from(this.nativeElement.childNodes);\n const textIndex = children.findIndex(\n (c: ChildNode) => c.nodeName === '#text'\n );\n if (textIndex > -1) {\n this.insertTitle(children, textIndex);\n }\n }\n\n private insertTitle(children: ChildNode[], txtIdx: number): void {\n const titleElement = this.renderer.createElement('h5');\n this.renderer.setProperty(\n titleElement,\n 'textContent',\n children[txtIdx].nodeValue\n );\n this.renderer.removeChild(this.nativeElement, children[txtIdx]);\n const listIndex = children.findIndex((c: ChildNode) => c.nodeName === 'UL');\n this.renderer.insertBefore(\n this.nativeElement,\n titleElement,\n children[listIndex]\n );\n }\n}\n/**\n * Label of a list item, add css class to apply proper styling.\n */\n@Directive({\n selector: 'bao-dropdown-menu-item-label, [bao-dropdown-menu-item-label]',\n host: { class: 'bao-dropdown-menu-item-label' }\n})\nexport class BaoDropdownMenuItemLabel {}\n/**\n * Description of a list item, add css class to apply proper styling.\n */\n@Directive({\n selector:\n 'bao-dropdown-menu-item-description, [bao-dropdown-menu-item-description]',\n host: { class: 'bao-dropdown-menu-item-description' }\n})\nexport class BaoDropdownMenuItemDescription {}\n/**\n * Divider to separate sections.\n */\n@Component({\n template: `<hr />`,\n selector: 'bao-dropdown-menu-divider, [bao-dropdown-menu-divider]',\n host: { class: 'bao-dropdown-menu-divider' }\n})\nexport class BaoDropdownMenuDivider implements AfterContentInit {\n constructor(\n private renderer: Renderer2,\n private elementRef: ElementRef<HTMLElement>\n ) {}\n\n get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n public ngAfterContentInit(): void {\n this.renderer.setAttribute(this.nativeElement, 'role', 'separator');\n }\n}\n","<div #menuContent class=\"bao-dropdown-menu\" tabindex=\"-1\">\n <ng-content></ng-content>\n</div>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { ObserversModule } from '@angular/cdk/observers';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport {\n BaoDropdownMenuComponent,\n BaoDropdownMenuTrigger,\n BaoDropdownMenuItem,\n BaoDropdownMenuSection,\n BaoDropdownMenuItemLabel,\n BaoDropdownMenuItemDescription,\n BaoDropdownMenuDivider\n} from './dropdown-menu.component';\n\nconst DROPDOWN_MENU_DIRECTIVES = [\n BaoDropdownMenuComponent,\n BaoDropdownMenuTrigger,\n BaoDropdownMenuItem,\n BaoDropdownMenuSection,\n BaoDropdownMenuItemLabel,\n BaoDropdownMenuItemDescription,\n BaoDropdownMenuDivider\n];\n\n@NgModule({\n imports: [CommonModule, ObserversModule, OverlayModule, PortalModule],\n declarations: [DROPDOWN_MENU_DIRECTIVES],\n exports: [...DROPDOWN_MENU_DIRECTIVES]\n})\nexport class BaoDropdownMenuModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './module';\nexport * from './dropdown-menu.component';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\n\nimport {\n Component,\n ElementRef,\n Input,\n Renderer2,\n ViewEncapsulation\n} from '@angular/core';\n\nconst KILO_THRESHOLD = 1000;\nconst MEGA_THRESHOLD = 1000000;\n\n@Component({\n selector: 'bao-file-preview, [bao-file-preview]',\n templateUrl: './file-preview.component.html',\n styleUrls: ['./file-preview.component.scss'],\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'bao-file-preview'\n }\n})\nexport class BaoFilePreviewComponent {\n public get file(): File {\n return this._file;\n }\n /**\n * Uploaded file to display in list.\n */\n @Input() set file(f: File) {\n this._file = f;\n this.setFileData();\n }\n\n /**\n * Is file loading\n */\n @Input() public isLoading = false;\n\n /**\n * True if projected content has no icon and file does not have a thumbnail.\n */\n public insertGenericIcon = false;\n\n public thumbnailURL = '';\n protected _file: File;\n protected fileSize: string;\n\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private renderer: Renderer2\n ) {}\n\n private get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n private setFileData(): void {\n this.formatSize(this._file.size);\n this.getThumbnail();\n this.setIcon();\n }\n\n private setIcon() {\n // If no icon is in the projected content, generic icon is added\n const contentIcon = Array.from(\n this.nativeElement.children.item(0).children\n ).find((el: HTMLElement) => el.localName === 'bao-icon');\n if (!contentIcon) {\n this.insertGenericIcon = true;\n } else {\n this.renderer.addClass(contentIcon, 'bao-file-media');\n }\n }\n\n private getThumbnail() {\n if (\n this._file &&\n (this._file.type === 'image/png' || this._file.type === 'image/jpeg')\n ) {\n const reader = new FileReader();\n reader.onload = (event: any) => {\n this.thumbnailURL = event.target.result;\n };\n\n reader.onerror = () => {\n this.thumbnailURL = '';\n };\n reader.readAsDataURL(this._file);\n }\n }\n\n private formatSize(size: number): void {\n if (size >= KILO_THRESHOLD && size / KILO_THRESHOLD < KILO_THRESHOLD) {\n this.fileSize = this.getSizeAndUnit(size, KILO_THRESHOLD, 'Ko');\n return;\n }\n const sizeDividedByKoMultiplicator = size / KILO_THRESHOLD;\n if (sizeDividedByKoMultiplicator >= KILO_THRESHOLD) {\n const toFixed = sizeDividedByKoMultiplicator > 10 ? 0 : 1;\n this.fileSize = this.getSizeAndUnit(size, MEGA_THRESHOLD, 'Mo', toFixed);\n return;\n }\n this.fileSize = `${size} octets`;\n }\n\n private getSizeAndUnit(\n size: number,\n multiplicator: number,\n unit: string,\n toFixed = 0\n ): string {\n return `${(size / multiplicator).toFixed(toFixed)} ${unit}`;\n }\n}\n","<div class=\"bao-file-info\">\n <ng-content select=\"bao-icon\"></ng-content>\n <bao-icon\n *ngIf=\"insertGenericIcon && !thumbnailURL\"\n class=\"bao-file-media\"\n svgIcon=\"icon-file\"\n >\n </bao-icon>\n <ng-container *ngIf=\"thumbnailURL && !isLoading\">\n <img\n class=\"bao-file-media\"\n [src]=\"thumbnailURL\"\n width=\"40px\"\n height=\"40px\"\n />\n </ng-container>\n <div class=\"bao-file-text\">\n <div class=\"bao-file-name\">{{ _file.name }}</div>\n <div class=\"bao-file-size\">{{ fileSize }}</div>\n </div>\n</div>\n<ng-container *ngIf=\"!isLoading\">\n <ng-content select=\"button[bao-button]\"></ng-content>\n <ng-content select=\"baoDropdownTriggerFor\"></ng-content>\n</ng-container>\n<bao-icon\n *ngIf=\"isLoading\"\n class=\"loading-spinner\"\n svgIcon=\"icon-spinner\"\n title=\"chargement\"\n></bao-icon>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\n\nimport { Injectable, Optional, SkipSelf } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n/**\n * To modify the labels and text displayed, create a new instance of BaoFileIntl and\n * include it in a custom provider\n */\n@Injectable({ providedIn: 'root' })\nexport class BaoFileIntl {\n /**\n * Stream to emit from when labels are changed. Use this to notify components when the labels have\n * changed after initialization.\n */\n readonly changes: Subject<void> = new Subject<void>();\n\n /** The label for button in dropzone */\n dropzoneButtonLabel = 'Parcourir';\n\n /** The default dropzone instructions */\n defaultDropzoneInstructions = 'ou déposer votre fichier ici';\n\n /** Error message displayed when uploaded file is too large */\n fileTooBigErrorMessage = 'La taille de ce fichier est trop grande';\n\n /** Error message displayed when uploaded file has an invalid type */\n invalidFileTypeErrorMessage = \"Ce format de fichier n'est pas autorisé\";\n}\n\n@Injectable()\nexport class BaoFileIntlEnglish extends BaoFileIntl {\n /** The label for button in dropzone */\n dropzoneButtonLabel = 'Browse';\n\n /** The default dropzone instructions */\n defaultDropzoneInstructions = 'or drop your file here';\n\n /** Error message displayed when uploaded file is too large */\n fileTooBigErrorMessage = 'The size of this file is too large';\n\n /** Error message displayed when uploaded file has an invalid type */\n invalidFileTypeErrorMessage = 'The format of this file is unauthorized';\n}\n\n/** @docs-private */\nexport function BAO_FILE_INTL_PROVIDER_FACTORY(parentIntl: BaoFileIntl) {\n return parentIntl || new BaoFileIntl();\n}\n\n/** @docs-private */\nexport const BAO_FILE_INTL_PROVIDER = {\n // If there is already an BaoFileIntl available, use that. Otherwise, provide a new one.\n provide: BaoFileIntl,\n deps: [[new Optional(), new SkipSelf(), BaoFileIntl]],\n useFactory: BAO_FILE_INTL_PROVIDER_FACTORY\n};\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\n\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostListener,\n Input,\n OnDestroy,\n Output,\n QueryList,\n Renderer2,\n ViewChild,\n ViewChildren,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BaoErrorTextComponent } from '../common-components';\nimport { Subscription } from 'rxjs';\nimport { BaoFileIntl } from './file-intl';\nimport { BaoFilePreviewComponent } from './file-preview.component';\n\n/**\n * Unique number to generate a unique ID\n */\nlet fileInputUniqueId = 0;\nlet fileTextUniqueId = 0;\n\n@Component({\n selector: 'bao-file-input, [bao-file-input]',\n templateUrl: './file-input.component.html',\n styleUrls: ['./file-input.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n // tslint:disable-next-line:no-forward-ref\n useExisting: forwardRef(() => BaoFileInputComponent),\n multi: true\n }\n ],\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'bao-file-input',\n '[class.bao-file-label-small]': 'size === \"small\"',\n '[class.bao-file-label-medium]': 'size === \"medium\"',\n '[class.bao-file-input-disabled]': 'disabled'\n }\n})\nexport class BaoFileInputComponent\n implements AfterContentInit, AfterViewInit, OnDestroy, ControlValueAccessor\n{\n /**\n * Id of the file input field\n */\n @Input('id') public inputId?: string;\n\n /**\n * Label of field to be displayed above\n */\n @Input() public label: string;\n\n /**\n * Size of the file input label\n */\n @Input() public size: 'small' | 'medium' = 'medium';\n\n /**\n * Maximum size accepted for uploaded files\n */\n @Input() public maximalFileSize = -1;\n\n /**\n * Accepted types of files\n */\n @Input() public acceptedMIMETypes: string[] = [];\n\n /**\n * Is field required\n */\n @Input() public required? = false;\n\n /**\n * Is field disabled\n */\n @Input() public disabled? = false;\n\n /**\n * File selected to be uploaded\n */\n @Output() public uploadedFile: EventEmitter<File> = new EventEmitter<File>();\n\n /**\n * List of files that have been uploaded so far\n */\n @ContentChildren(BaoFilePreviewComponent, { descendants: true })\n private _files: QueryList<BaoFilePreviewComponent>;\n\n /**\n * Form errors when component is used in a form\n */\n @ContentChildren(BaoErrorTextComponent, { descendants: true })\n private _errorForm: QueryList<BaoErrorTextComponent>;\n\n /**\n * Error texts\n */\n @ViewChildren(BaoErrorTextComponent)\n private _errorTexts: QueryList<BaoErrorTextComponent>;\n\n /**\n * File input that triggers uploading when clicked\n */\n @ViewChild('uploader', { static: false }) private uploader: ElementRef;\n\n @ViewChild('dropzone', { static: false })\n private dropzoneElement: ElementRef<HTMLElement>;\n\n public insertDefaultInstructions = false;\n public isFileTooBig = false;\n public isFileTypeInvalid = false;\n private _value: File[];\n private _intlChanges: Subscription;\n private _helperTextId: string;\n\n constructor(\n public intl: BaoFileIntl,\n private elementRef: ElementRef<HTMLElement>,\n private renderer: Renderer2,\n private cdr: ChangeDetectorRef\n ) {\n this._intlChanges = intl.changes.subscribe(() => this.cdr.markForCheck());\n }\n\n get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n @HostListener('window:keyup.enter')\n enterKeyEvent() {\n if (document.activeElement.id === this.inputId) {\n document.getElementById(this.inputId).click();\n }\n }\n\n @HostListener('window:keyup.tab')\n tabKeyEvent() {\n if (document.activeElement.id === this.inputId) {\n this.renderer.addClass(\n this.dropzoneElement.nativeElement,\n 'dropzone-focus'\n );\n }\n }\n\n @HostListener('window:keyup.shift.tab')\n shiftTabKeyEvent() {\n if (document.activeElement.id === this.inputId) {\n this.renderer.addClass(\n this.dropzoneElement.nativeElement,\n 'dropzone-focus'\n );\n }\n }\n\n public ngAfterContentInit(): void {\n this._errorForm.changes.subscribe(() => this.setErrorTextsAttribute());\n if (!this.inputId) {\n this.inputId = `file-input-${fileInputUniqueId++}`;\n }\n // If no content was added for dropzone instructions, add default text.\n const dropzoneElement = Array.from(this.nativeElement.children).find(\n (el: HTMLElement) => el.className === 'file-drop-zone'\n );\n if (\n !Array.from(dropzoneElement.children).find(\n el => el.localName === 'bao-file-dropzone-instructions'\n )\n ) {\n this.insertDefaultInstructions = true;\n }\n this.setDescribedByAttribute();\n this._files.changes.subscribe(\n (files: QueryList<BaoFilePreviewComponent>) => {\n const filesList: File[] = files.map(\n (el: BaoFilePreviewComponent) => el.file\n );\n this.setValue(filesList);\n }\n );\n }\n\n public ngAfterViewInit(): void {\n this._errorTexts.changes.subscribe(() => this.setErrorTextsAttribute());\n }\n\n public ngOnDestroy(): void {\n this._intlChanges.unsubscribe();\n }\n\n /**\n * Implements ControlValueAccessor interface\n */\n public writeValue(obj: any): void {\n this._value = obj;\n }\n /**\n * Implements ControlValueAccessor interface\n */\n public registerOnChange(fn: (value: any) => void): void {\n this.propagateChange = fn;\n }\n /**\n * Implements ControlValueAccessor interface\n */\n public registerOnTouched(fn: any): void {\n this.propagateTouched = fn;\n }\n /**\n * Implements ControlValueAccessor interface\n */\n public setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n public uploadFile(file: File) {\n if (!this.disabled) {\n this.isFileTypeInvalid = false;\n this.isFileTooBig = false;\n this.uploader.nativeElement.value = '';\n if (this.maximalFileSize > 0 && file.size > this.maximalFileSize) {\n this.isFileTooBig = true;\n }\n if (\n this.acceptedMIMETypes.length > 0 &&\n this.acceptedMIMETypes.indexOf(file.type) < 0\n ) {\n this.isFileTypeInvalid = true;\n }\n if (!this.isFileTooBig && !this.isFileTypeInvalid) {\n this.uploadedFile.emit(file);\n }\n }\n }\n\n /**\n * Saves the registerOnChange function so the component can call it whenever it wants.\n */\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\n public propagateChange = (_: any) => {};\n\n /**\n * Saves the registerOnTouched function so the component can call it whenever it wants.\n */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n public propagateTouched = () => {};\n\n private setValue(value: File[]) {\n this._value = value;\n this.propagateChange(this._value);\n this.propagateTouched();\n }\n\n private setDescribedByAttribute(): void {\n const helperText = Array.from(this.nativeElement.children).find(\n (el: HTMLElement) => el.localName === 'bao-guiding-text'\n );\n if (helperText) {\n this._helperTextId = `bao-guiding-text-${fileTextUniqueId++}`;\n this.renderer.setAttribute(\n helperText.firstElementChild,\n 'id',\n this._helperTextId\n );\n const inputElement = Array.from(this.nativeElement.children)\n .find((el: HTMLElement) => el.className == 'file-drop-zone')\n .children.item(1);\n this.renderer.setAttribute(\n inputElement,\n 'aria-describedby',\n this._helperTextId\n );\n }\n }\n\n private setErrorTextsAttribute(): void {\n const textsIds = [];\n const errors = Array.from(this.nativeElement.children).filter(\n (el: HTMLElement) => el.localName == 'bao-error'\n );\n errors.forEach((errorText: HTMLElement) => {\n const errorTextId = `bao-error-${fileTextUniqueId++}`;\n this.renderer.setAttribute(\n errorText.firstElementChild,\n 'id',\n errorTextId\n );\n textsIds.push(errorTextId);\n });\n const inputElement = Array.from(this.nativeElement.children)\n .find((el: HTMLElement) => el.classList.contains('file-drop-zone'))\n .children.item(1);\n if (this._helperTextId) {\n textsIds.unshift(this._helperTextId);\n }\n this.renderer.setAttribute(\n inputElement,\n 'aria-describedby',\n textsIds.join(' ')\n );\n }\n}\n\n@Directive({\n selector: '[baoFileDrop]',\n host: { '[class.drag-over]': '_isDragOver == true' }\n})\nexport class BaoFileDropDirective {\n @Output() public fileDrop: EventEmitter<File> = new EventEmitter<File>();\n private _isDragOver = false;\n\n @HostListener('dragover', ['$event'])\n public onDragOver(event: DragEvent): void {\n this.preventAndStop(event);\n this._isDragOver = true;\n }\n\n @HostListener('dragleave', ['$event'])\n public onDragLeave(event: DragEvent): void {\n this.preventAndStop(event);\n this._isDragOver = false;\n }\n\n @HostListener('drop', ['$event'])\n public onDrop(event: DragEvent): void {\n this.preventAndStop(event);\n this._isDragOver = false;\n const transfer = this.getDataTransfer(event);\n this.fileDrop.emit(transfer.files[0]);\n }\n\n private preventAndStop(event: DragEvent): void {\n event.preventDefault();\n event.stopPropagation();\n }\n\n private getDataTransfer(event: DragEvent | any): DataTransfer {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return event.dataTransfer\n ? event.dataTransfer\n : event.originalEvent.dataTransfer;\n }\n}\n\n@Directive({\n selector: 'bao-file-dropzone-instructions, [bao-file-dropzone-instructions]',\n host: {\n class: 'bao-file-dropzone-instructions'\n }\n})\nexport class BaoFileDropzoneIntructions implements AfterContentInit {\n constructor(\n private renderer: Renderer2,\n private elementRef: ElementRef<HTMLElement>\n ) {}\n\n get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n ngAfterContentInit(): void {\n this.renderer.setAttribute(this.nativeElement, 'aria-hidden', 'true');\n }\n}\n","<label bao-label [required]=\"required\" [for]=\"inputId\">{{ label }}</label>\n<ng-content select=\"bao-guiding-text\"></ng-content>\n<div\n baoFileDrop\n class=\"file-drop-zone\"\n (fileDrop)=\"uploadFile($event)\"\n #dropzone\n>\n <button\n bao-button\n type=\"button\"\n displayType=\"utility\"\n level=\"secondary\"\n [disabled]=\"disabled\"\n (click)=\"uploader.click()\"\n aria-hidden=\"true\"\n tabIndex=\"-1\"\n >\n {{ intl.dropzoneButtonLabel }}\n </button>\n <input\n [id]=\"inputId\"\n type=\"file\"\n class=\"sr-only\"\n [disabled]=\"disabled\"\n (change)=\"uploadFile($event.target.files[0])\"\n #uploader\n />\n <ng-container\n ><div #ref>\n <ng-content select=\"bao-file-dropzone-instructions\"></ng-content></div\n ></ng-container>\n <ng-container *ngIf=\"ref.childNodes.length === 0\"\n ><bao-file-dropzone-instructions>{{\n intl.defaultDropzoneInstructions\n }}</bao-file-dropzone-instructions></ng-container\n >\n</div>\n<bao-error *ngIf=\"isFileTooBig\">\n {{ intl.fileTooBigErrorMessage }}\n</bao-error>\n<bao-error *ngIf=\"isFileTypeInvalid\">\n {{ intl.invalidFileTypeErrorMessage }}\n</bao-error>\n<ng-content select=\"bao-error\"></ng-content>\n<ng-content></ng-content>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport {\n BaoFileInputComponent,\n BaoFileDropDirective,\n BaoFileDropzoneIntructions\n} from './file-input.component';\nimport { BaoFilePreviewComponent } from './file-preview.component';\nimport { BAO_FILE_INTL_PROVIDER } from './file-intl';\nimport { BaoButtonModule } from '../button';\nimport { BaoIconModule } from '../icon';\nimport { BaoDropdownMenuModule } from '../dropdown-menu';\nimport { BaoCommonComponentsModule } from '../common-components';\n\nconst FILE_DIRECTIVES = [\n BaoFileInputComponent,\n BaoFileDropzoneIntructions,\n BaoFileDropDirective,\n BaoFilePreviewComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n BaoDropdownMenuModule,\n BaoCommonComponentsModule,\n BaoIconModule,\n BaoButtonModule\n ],\n declarations: [FILE_DIRECTIVES],\n exports: [FILE_DIRECTIVES],\n providers: [BAO_FILE_INTL_PROVIDER]\n})\nexport class BaoFileModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { AriaLivePoliteness } from '@angular/cdk/a11y';\nimport { Direction } from '@angular/cdk/bidi';\nimport { InjectionToken, ViewContainerRef } from '@angular/core';\n\n/** Injection token that can be used to access the data that was passed in to a snack bar. */\nexport const BAO_SNACK_BAR_DATA = new InjectionToken<any>('BaoSnackBarData');\n\n/** Possible values for horizontalPosition on MatSnackBarConfig. */\nexport type BaoSnackBarHorizontalPosition =\n | 'start'\n | 'center'\n | 'end'\n | 'left'\n | 'right';\n\n/** Possible values for verticalPosition on MatSnackBarConfig. */\nexport type BaoSnackBarVerticalPosition = 'top' | 'bottom';\n\n/** Possible types of toast to display the snack bar */\nexport type BaoSnackBarToastType = 'info' | 'success' | 'danger';\n\n/**\n * Configuration used when opening a snack-bar.\n */\nexport class BaoSnackBarConfig<D = any> {\n /** The message to display in the snackbar. */\n public message = 'No message';\n\n /** The type of snackbar template to display. */\n public toastType?: BaoSnackBarToastType = 'info';\n\n /**\n * The attached action to the snack bar. If the name of the action matches an icon provided as part of\n * angular-ui icon dictionnary an icon will be displayed instead of text.\n * */\n public actionLabelOrIcon?: string = '';\n\n /** Displays the close button when set to true */\n public showClose?: boolean = false;\n\n /** The length of time in milliseconds to wait before automatically dismissing the snack bar. */\n public duration?: number = 5000;\n\n /** The politeness level for the MatAriaLiveAnnouncer announcement. */\n public politeness?: AriaLivePoliteness = 'assertive';\n\n /**\n * Message to be announced by the LiveAnnouncer. When opening a snackbar without a custom\n * component or template, the announcement message will default to the specified message.\n */\n public announcementMessage?: string = '';\n\n /**\n * The view container that serves as the parent for the snackbar for the purposes of dependency\n * injection. Note: this does not affect where the snackbar is inserted in the DOM.\n */\n public viewContainerRef?: ViewContainerRef;\n\n /** Extra CSS classes to be added to the snack bar container. */\n public panelClass?: string | string[];\n\n /** Text layout direction for the snack bar. */\n public direction?: Direction;\n\n /** Data being injected into the child component. */\n public data?: D | null = null;\n\n /** The horizontal position to place the snack bar. */\n public horizontalPosition?: BaoSnackBarHorizontalPosition = 'left';\n\n /** The vertical position to place the snack bar. */\n public verticalPosition?: BaoSnackBarVerticalPosition = 'bottom';\n}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { Observable, Subject } from 'rxjs';\nimport { IBaoSnackBarContainer } from './snack-bar-container';\n\n/** Event that is emitted when a snack bar is dismissed. */\nexport interface IBaoSnackBarDismiss {\n /** Whether the snack bar was dismissed using the action button. */\n dismissedByAction: boolean;\n}\n\n/** Maximum amount of milliseconds that can be passed into setTimeout. */\nconst MAX_TIMEOUT = Math.pow(2, 31) - 1;\n\n/**\n * Reference to a snack bar dispatched from the snack bar service.\n */\nexport class BaoSnackBarRef<T> {\n /** The instance of the component making up the content of the snack bar. */\n public instance: T;\n\n /**\n * The instance of the component making up the content of the snack bar.\n * @docs-private\n */\n public containerInstance: IBaoSnackBarContainer;\n\n /** Subject for notifying the user that the snack bar has been dismissed. */\n private readonly _afterDismissed = new Subject<IBaoSnackBarDismiss>();\n\n /** Subject for notifying the user that the snack bar has opened and appeared. */\n private readonly _afterOpened = new Subject<void>();\n\n /** Subject for notifying the user that the snack bar action was called. */\n private readonly _onAction = new Subject<void>();\n\n /**\n * Timeout ID for the duration setTimeout call. Used to clear the timeout if the snackbar is\n * dismissed before the duration passes.\n */\n private _durationTimeoutId: number;\n\n /** Whether the snack bar was dismissed using the action button. */\n private _dismissedByAction = false;\n\n constructor(\n containerInstance: IBaoSnackBarContainer,\n private _overlayRef: OverlayRef\n ) {\n this.containerInstance = containerInstance;\n // Dismiss snackbar on action.\n this.onAction().subscribe(() => this.dismiss());\n containerInstance._onExit.subscribe(() => this.finishDismiss());\n }\n\n /** Dismisses the snack bar. */\n public dismiss(): void {\n if (!this._afterDismissed.closed) {\n this.containerInstance.exit();\n }\n clearTimeout(this._durationTimeoutId);\n }\n\n /** Marks the snackbar action clicked. */\n public dismissWithAction(): void {\n if (!this._onAction.closed) {\n this._dismissedByAction = true;\n this._onAction.next();\n this._onAction.complete();\n }\n }\n\n /** Dismisses the snack bar after some duration */\n public dismissAfter(duration: number): void {\n // Note that we need to cap the duration to the maximum value for setTimeout, because\n // it'll revert to 1 if somebody passes in something greater (e.g. `Infinity`). See #17234.\n\n // @TODO: window.setTimeout() ?\n this._durationTimeoutId = window.setTimeout(\n () => this.dismiss(),\n Math.min(duration, MAX_TIMEOUT)\n );\n }\n\n /** Marks the snackbar as opened */\n public open(): void {\n if (!this._afterOpened.closed) {\n this._afterOpened.next();\n this._afterOpened.complete();\n }\n }\n\n /** Gets an observable that is notified when the snack bar is finished closing. */\n public afterDismissed(): Observable<IBaoSnackBarDismiss> {\n return this._afterDismissed;\n }\n\n /** Gets an observable that is notified when the snack bar has opened and appeared. */\n public afterOpened(): Observable<void> {\n return this.containerInstance._onEnter;\n }\n\n /** Gets an observable that is notified when the snack bar action is called. */\n public onAction(): Observable<void> {\n return this._onAction;\n }\n\n /** Cleans up the DOM after closing. */\n private finishDismiss(): void {\n this._overlayRef.dispose();\n\n if (!this._onAction.closed) {\n this._onAction.complete();\n }\n\n this._afterDismissed.next({ dismissedByAction: this._dismissedByAction });\n this._afterDismissed.complete();\n this._dismissedByAction = false;\n }\n}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport {\n ChangeDetectionStrategy,\n Component,\n Inject,\n ViewEncapsulation\n} from '@angular/core';\nimport { ICONS_DCT } from '../icon/icons-dictionary';\nimport { BaoSnackBarToastType, BAO_SNACK_BAR_DATA } from './snack-bar-config';\nimport { BaoSnackBarRef } from './snack-bar-ref';\n\nconst toastTypeToAttributes = {\n info: {\n toastClass: 'bao-snackbar-info',\n icon: 'icon-info',\n iconTitle: 'Information',\n politeness: 'assertive'\n },\n success: {\n toastClass: 'bao-snackbar-success',\n icon: 'icon-check-circle',\n iconTitle: 'Succès',\n politeness: 'polite'\n },\n danger: {\n toastClass: 'bao-snackbar-danger',\n icon: 'icon-error',\n iconTitle: 'Erreur',\n politeness: 'assertive'\n }\n};\n\n/**\n * Interface for a simple snack bar component that has a message and a single action.\n */\nexport interface ITextOnlySnackBar {\n data: {\n message: string;\n toastType: BaoSnackBarToastType;\n actionLabelOrIcon: string;\n showClose: boolean;\n };\n snackBarRef: BaoSnackBarRef<ITextOnlySnackBar>;\n action: () => void;\n hasAction: boolean;\n}\n\n/**\n * A component used to open as the default snack bar, matching material spec.\n * This should only be used internally by the snack bar service.\n */\n@Component({\n selector: 'bao-simple-snack-bar',\n templateUrl: 'simple-snack-bar.component.html',\n styleUrls: ['simple-snack-bar.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'bao-simple-snackbar'\n }\n})\nexport class BaoSimpleSnackBarComponent implements ITextOnlySnackBar {\n public showCloseTitle = 'Fermer le message';\n\n /** Data that was injected into the snack bar. */\n public data: {\n message: string;\n toastType: BaoSnackBarToastType;\n actionLabelOrIcon: string;\n showClose: boolean;\n };\n\n constructor(\n public snackBarRef: BaoSnackBarRef<BaoSimpleSnackBarComponent>,\n @Inject(BAO_SNACK_BAR_DATA) data: any\n ) {\n this.data = data;\n }\n\n /** Returns the politeness */\n get politeness(): string {\n return (\n toastTypeToAttributes[this.data.toastType]?.politeness ||\n toastTypeToAttributes['info'].politeness\n );\n }\n\n /** Returns the toast class */\n get toastClass(): string {\n return (\n toastTypeToAttributes[this.data.toastType]?.toastClass ||\n toastTypeToAttributes['info'].toastClass\n );\n }\n\n /** Returns the toast icon */\n get toastIcon(): string {\n return (\n toastTypeToAttributes[this.data.toastType]?.icon ||\n toastTypeToAttributes['info'].icon\n );\n }\n\n /** Returns the toast icon title */\n get toastIconTitle(): string {\n return (\n toastTypeToAttributes[this.data.toastType]?.iconTitle ||\n toastTypeToAttributes['info'].iconTitle\n );\n }\n\n /** If the action button should be shown. */\n get hasAction(): boolean {\n return !!this.data.actionLabelOrIcon;\n }\n\n /** If the action is an icon */\n get isActionIcon(): boolean {\n return !!ICONS_DCT[this.data.actionLabelOrIcon];\n }\n\n /** Performs the action on the snack bar. */\n public action(): void {\n this.snackBarRef.dismissWithAction();\n }\n\n /** Closes the snack bar. */\n public close(): void {\n this.snackBarRef.dismiss();\n }\n}\n","<div\n class=\"bao-snackbar show\"\n [ngClass]=\"toastClass\"\n [attr.aria-live]=\"politeness\"\n aria-atomic=\"true\"\n>\n <div class=\"bao-snackbar-icon\">\n <bao-icon [svgIcon]=\"toastIcon\" [title]=\"toastIconTitle\"></bao-icon>\n </div>\n <div class=\"bao-snackbar-body\">\n {{ data.message }}\n </div>\n <div class=\"bao-snackbar-action\">\n <div *ngIf=\"hasAction\">\n <button\n bao-button\n role=\"button\"\n type=\"utility\"\n level=\"tertiary\"\n [reversed]=\"true\"\n [title]=\"data.actionLabelOrIcon\"\n (click)=\"action()\"\n >\n <bao-icon\n *ngIf=\"isActionIcon; else isActionText\"\n [svgIcon]=\"data.actionLabelOrIcon\"\n [title]=\"data.actionLabelOrIcon\"\n ></bao-icon>\n <ng-template #isActionText\n ><span>{{ data.actionLabelOrIcon }}</span></ng-template\n >\n </button>\n </div>\n <div *ngIf=\"data.showClose\">\n <button\n bao-button\n role=\"button\"\n type=\"utility\"\n level=\"tertiary\"\n [reversed]=\"true\"\n title=\"{{ showCloseTitle }}\"\n (click)=\"close()\"\n >\n <bao-icon svgIcon=\"icon-x\" title=\"{{ showCloseTitle }}\"></bao-icon>\n </button>\n </div>\n </div>\n</div>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport {\n animate,\n AnimationTriggerMetadata,\n state,\n style,\n transition,\n trigger\n} from '@angular/animations';\n\n/**\n * Animations used by the Material snack bar.\n * @docs-private\n */\nexport const matSnackBarAnimations: {\n readonly snackBarState: AnimationTriggerMetadata;\n} = {\n /** Animation that shows and hides a snack bar. */\n snackBarState: trigger('state', [\n state(\n 'void, hidden',\n style({\n transform: 'scale(0.8)',\n opacity: 0\n })\n ),\n state(\n 'visible',\n style({\n transform: 'scale(1)',\n opacity: 1\n })\n ),\n transition('* => visible', animate('150ms cubic-bezier(0, 0, 0.2, 1)')),\n transition(\n '* => void, * => hidden',\n animate(\n '75ms cubic-bezier(0.4, 0.0, 1, 1)',\n style({\n opacity: 0\n })\n )\n )\n ])\n};\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { AnimationEvent } from '@angular/animations';\nimport { AriaLivePoliteness } from '@angular/cdk/a11y';\nimport { Platform } from '@angular/cdk/platform';\nimport {\n BasePortalOutlet,\n CdkPortalOutlet,\n ComponentPortal,\n DomPortal,\n TemplatePortal\n} from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n inject,\n NgZone,\n OnDestroy,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { matSnackBarAnimations } from './snack-bar-animations';\nimport { BaoSnackBarConfig } from './snack-bar-config';\n\nlet uniqueId = 0;\n\n/**\n * Internal interface for a snack bar container.\n * @docs-private\n */\nexport interface IBaoSnackBarContainer {\n snackBarConfig: BaoSnackBarConfig;\n _onAnnounce: Subject<any>;\n _onExit: Subject<any>;\n _onEnter: Subject<any>;\n enter: () => void;\n exit: () => Observable<void>;\n attachTemplatePortal: <C>(portal: TemplatePortal<C>) => EmbeddedViewRef<C>;\n attachComponentPortal: <T>(portal: ComponentPortal<T>) => ComponentRef<T>;\n}\n\n/**\n * Internal component that wraps user-provided snack bar content.\n * @docs-private\n */\n@Component({\n selector: 'bao-snack-bar-container',\n templateUrl: 'snack-bar-container.html',\n styleUrls: ['snack-bar-container.scss'],\n // In Ivy embedded views will be change detected from their declaration place, rather than\n // where they were stamped out. This means that we can't have the snack bar container be OnPush,\n // because it might cause snack bars that were opened from a template not to be out of date.\n // eslint-disable-next-line\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n animations: [matSnackBarAnimations.snackBarState],\n host: {\n class: 'bao-snack-bar-container',\n '[@state]': '_animationState',\n '(@state.done)': 'onAnimationEnd($event)'\n }\n})\nexport class BaoSnackBarContainerComponent\n extends BasePortalOutlet\n implements OnDestroy, IBaoSnackBarContainer\n{\n /** The portal outlet inside of this container into which the snack bar content will be loaded. */\n @ViewChild(CdkPortalOutlet, { static: true }) _portalOutlet: CdkPortalOutlet;\n\n private _document = inject(DOCUMENT);\n private _trackedModals = new Set<Element>();\n\n /** Subject for notifying that the snack bar has announced to screen readers. */\n public readonly _onAnnounce: Subject<void> = new Subject();\n\n /** Subject for notifying that the snack bar has exited from view. */\n public readonly _onExit: Subject<void> = new Subject();\n\n /** Subject for notifying that the snack bar has finished entering the view. */\n public readonly _onEnter: Subject<void> = new Subject();\n\n /** The state of the snack bar animations. */\n public _animationState = 'void';\n\n /** aria-live value for the live region. */\n public _live: AriaLivePoliteness;\n\n /** The number of milliseconds to wait before announcing the snack bar's content. */\n private readonly _announceDelay: number = 150;\n\n /** The timeout for announcing the snack bar's content. */\n private _announceTimeoutId: number;\n\n /** Whether the component has been destroyed. */\n private _destroyed = false;\n\n /**\n * Role of the live region. This is only for Firefox as there is a known issue where Firefox +\n * JAWS does not read out aria-live message.\n */\n _role?: 'status' | 'alert';\n\n /** Unique ID of the aria-live element. */\n readonly _liveElementId = `bao-snack-bar-container-live-${uniqueId++}`;\n\n constructor(\n private _ngZone: NgZone,\n private _elementRef: ElementRef<HTMLElement>,\n private _changeDetectorRef: ChangeDetectorRef,\n private _platform: Platform,\n /** The snack bar configuration. */\n public snackBarConfig: BaoSnackBarConfig\n ) {\n super();\n\n // Use aria-live rather than a live role like 'alert' or 'status'\n // because NVDA and JAWS have show inconsistent behavior with live roles.\n if (\n snackBarConfig.politeness === 'assertive' &&\n !snackBarConfig.announcementMessage\n ) {\n this._live = 'assertive';\n } else if (snackBarConfig.politeness === 'off') {\n this._live = 'off';\n } else {\n this._live = 'polite';\n }\n // Only set role for Firefox. Set role based on aria-live because setting role=\"alert\" implies\n // aria-live=\"assertive\" which may cause issues if aria-live is set to \"polite\" above.\n if (this._platform.FIREFOX) {\n if (this._live === 'polite') {\n this._role = 'status';\n }\n if (this._live === 'assertive') {\n this._role = 'alert';\n }\n }\n }\n\n /** Attach a component portal as content to this snack bar container. */\n public attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n this.assertNotAttached();\n this.applySnackBarClasses();\n const result = this._portalOutlet.attachComponentPortal(portal);\n this._afterPortalAttached();\n return result;\n }\n\n /** Attach a template portal as content to this snack bar container. */\n public attachTemplatePortal<C>(\n portal: TemplatePortal<C>\n ): EmbeddedViewRef<C> {\n this.assertNotAttached();\n this.applySnackBarClasses();\n const result = this._portalOutlet.attachTemplatePortal(portal);\n this._afterPortalAttached();\n return result;\n }\n\n /**\n * Attaches a DOM portal to the snack bar container.\n * @deprecated To be turned into a method.\n * @breaking-change 10.0.0\n */\n public attachDomPortal = (portal: DomPortal) => {\n this.assertNotAttached();\n const result = this._portalOutlet.attachDomPortal(portal);\n this._afterPortalAttached();\n return result;\n };\n\n /** Handle end of animations, updating the state of the snackbar. */\n public onAnimationEnd(event: AnimationEvent) {\n const { fromState, toState } = event;\n\n if ((toState === 'void' && fromState !== 'void') || toState === 'hidden') {\n this.completeExit();\n }\n\n if (toState === 'visible') {\n // Note: we shouldn't use `this` inside the zone callback,\n // because it can cause a memory leak.\n const onEnter = this._onEnter;\n\n this._ngZone.run(() => {\n onEnter.next();\n onEnter.complete();\n });\n }\n }\n\n /** Begin animation of snack bar entrance into view. */\n public enter(): void {\n if (!this._destroyed) {\n this._animationState = 'visible';\n this._changeDetectorRef.detectChanges();\n this.screenReaderAnnounce();\n }\n }\n\n /** Begin animation of the snack bar exiting from view. */\n public exit(): Observable<void> {\n // Note: this one transitions to `hidden`, rather than `void`, in order to handle the case\n // where multiple snack bars are opened in quick succession (e.g. two consecutive calls to\n // `MatSnackBar.open`).\n this._animationState = 'hidden';\n\n // Mark this element with an 'exit' attribute to indicate that the snackbar has\n // been dismissed and will soon be removed from the DOM. This is used by the snackbar\n // test harness.\n this._elementRef.nativeElement.setAttribute('mat-exit', '');\n\n // If the snack bar hasn't been announced by the time it exits it wouldn't have been open\n // long enough to visually read it either, so clear the timeout for announcing.\n clearTimeout(this._announceTimeoutId);\n\n return this._onExit;\n }\n\n /** Makes sure the exit callbacks have been invoked when the element is destroyed. */\n public ngOnDestroy() {\n this._destroyed = true;\n this.completeExit();\n }\n\n /**\n * Waits for the zone to settle before removing the element. Helps prevent\n * errors where we end up removing an element which is in the middle of an animation.\n */\n private completeExit() {\n this._ngZone.onMicrotaskEmpty.pipe(take(1)).subscribe(() => {\n this._onExit.next();\n this._onExit.complete();\n });\n }\n\n /** Applies the various positioning and user-configured CSS classes to the snack bar. */\n private applySnackBarClasses() {\n const element: HTMLElement = this._elementRef.nativeElement;\n const panelClasses = this.snackBarConfig.panelClass;\n\n if (panelClasses) {\n if (Array.isArray(panelClasses)) {\n // Note that we can't use a spread here, because IE doesn't support multiple arguments.\n panelClasses.forEach(cssClass => element.classList.add(cssClass));\n } else {\n element.classList.add(panelClasses);\n }\n }\n\n if (this.snackBarConfig.horizontalPosition === 'center') {\n element.classList.add('bao-snack-bar-center');\n }\n\n if (this.snackBarConfig.verticalPosition === 'top') {\n element.classList.add('bao-snack-bar-top');\n }\n }\n\n /**\n * Called after the portal contents have been attached. Can be\n * used to modify the DOM once it's guaranteed to be in place.\n */\n protected _afterPortalAttached() {\n const element: HTMLElement = this._elementRef.nativeElement;\n const panelClasses = this.snackBarConfig.panelClass;\n\n if (panelClasses) {\n if (Array.isArray(panelClasses)) {\n // Note that we can't use a spread here, because IE doesn't support multiple arguments.\n panelClasses.forEach(cssClass => element.classList.add(cssClass));\n } else {\n element.classList.add(panelClasses);\n }\n }\n\n this._exposeToModals();\n }\n\n /**\n * Some browsers won't expose the accessibility node of the live element if there is an\n * `aria-modal` and the live element is outside of it. This method works around the issue by\n * pointing the `aria-owns` of all modals to the live element.\n */\n private _exposeToModals() {\n // Note that the selector here is limited to CDK overlays at the moment in order to reduce the\n // section of the DOM we need to look through. This should cover all the cases we support, but\n // the selector can be expanded if it turns out to be too narrow.\n const id = this._liveElementId;\n const modals = this._document.querySelectorAll(\n 'body > .cdk-overlay-container [aria-modal=\"true\"]'\n );\n\n for (let i = 0; i < modals.length; i++) {\n const modal = modals[i];\n const ariaOwns = modal.getAttribute('aria-owns');\n this._trackedModals.add(modal);\n\n if (!ariaOwns) {\n modal.setAttribute('aria-owns', id);\n } else if (ariaOwns.indexOf(id) === -1) {\n modal.setAttribute('aria-owns', ariaOwns + ' ' + id);\n }\n }\n }\n\n /** Clears the references to the live element from any modals it was added to. */\n private _clearFromModals() {\n this._trackedModals.forEach(modal => {\n const ariaOwns = modal.getAttribute('aria-owns');\n\n if (ariaOwns) {\n const newValue = ariaOwns.replace(this._liveElementId, '').trim();\n\n if (newValue.length > 0) {\n modal.setAttribute('aria-owns', newValue);\n } else {\n modal.removeAttribute('aria-owns');\n }\n }\n });\n this._trackedModals.clear();\n }\n\n /** Asserts that no content is already attached to the container. */\n private assertNotAttached() {\n if (this._portalOutlet.hasAttached()) {\n throw Error(\n 'Attempting to attach snack bar content after content is already attached'\n );\n }\n }\n\n /**\n * Starts a timeout to move the snack bar content to the live region so screen readers will\n * announce it.\n */\n private screenReaderAnnounce() {\n if (!this._announceTimeoutId) {\n this._ngZone.runOutsideAngular(() => {\n this._announceTimeoutId = window.setTimeout(() => {\n const inertElement =\n this._elementRef.nativeElement.querySelector('[aria-hidden]');\n const liveElement =\n this._elementRef.nativeElement.querySelector('[aria-live]');\n\n if (inertElement && liveElement) {\n // If an element in the snack bar content is focused before being moved\n // track it and restore focus after moving to the live region.\n let focusedElement: HTMLElement | null = null;\n if (\n this._platform.isBrowser &&\n document.activeElement instanceof HTMLElement &&\n inertElement.contains(document.activeElement)\n ) {\n focusedElement = document.activeElement;\n }\n\n inertElement.removeAttribute('aria-hidden');\n try {\n liveElement.appendChild(inertElement);\n } catch (error) {\n console.warn(error);\n }\n\n focusedElement?.focus();\n\n this._onAnnounce.next();\n this._onAnnounce.complete();\n }\n }, this._announceDelay);\n });\n }\n }\n}\n","<!-- Initialy holds the snack bar content, will be empty after announcing to screen readers. -->\n<div aria-hidden=\"true\">\n <ng-template cdkPortalOutlet></ng-template>\n</div>\n\n<!-- Will receive the snack bar content from the non-live div, move will happen a short delay after opening -->\n<div\n [attr.aria-live]=\"_live\"\n [attr.role]=\"_role\"\n [attr.id]=\"_liveElementId\"\n></div>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { LiveAnnouncer } from '@angular/cdk/a11y';\nimport { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport {\n ComponentPortal,\n ComponentType,\n PortalInjector,\n TemplatePortal\n} from '@angular/cdk/portal';\nimport {\n ComponentRef,\n EmbeddedViewRef,\n Inject,\n Injectable,\n InjectionToken,\n Injector,\n OnDestroy,\n Optional,\n SkipSelf,\n TemplateRef,\n Type\n} from '@angular/core';\nimport {\n BaoSimpleSnackBarComponent,\n ITextOnlySnackBar\n} from './simple-snack-bar.component';\nimport { BAO_SNACK_BAR_DATA, BaoSnackBarConfig } from './snack-bar-config';\nimport {\n BaoSnackBarContainerComponent,\n IBaoSnackBarContainer\n} from './snack-bar-container';\nimport { BaoSnackBarRef } from './snack-bar-ref';\n\nexport function baoFactory() {\n return new BaoSnackBarConfig();\n}\n\n/** Injection token that can be used to specify default snack bar. */\nexport const BAO_SNACK_BAR_DEFAULT_OPTIONS =\n new InjectionToken<BaoSnackBarConfig>('bao-snack-bar-default-options', {\n providedIn: 'root',\n factory: baoFactory\n });\n\n/**\n * Service to dispatch Material Design snack bar messages.\n */\n@Injectable({ providedIn: 'root' })\nexport class BaoSnackBarService implements OnDestroy {\n /** The component that should be rendered as the snack bar's simple component. */\n protected simpleSnackBarComponent: Type<ITextOnlySnackBar> =\n BaoSimpleSnackBarComponent;\n\n /** The container component that attaches the provided template or component. */\n protected snackBarContainerComponent: Type<IBaoSnackBarContainer> =\n BaoSnackBarContainerComponent;\n\n /**\n * Reference to the current snack bar in the view *at this level* (in the Angular injector tree).\n * If there is a parent snack-bar service, all operations should delegate to that parent\n * via `_openedSnackBarRef`.\n */\n private _snackBarRefAtThisLevel: BaoSnackBarRef<any> | null = null;\n\n constructor(\n private _overlay: Overlay,\n private _live: LiveAnnouncer,\n private _injector: Injector,\n @Optional() @SkipSelf() private _parentSnackBar: BaoSnackBarService,\n @Inject(BAO_SNACK_BAR_DEFAULT_OPTIONS)\n private _defaultConfig: BaoSnackBarConfig\n ) {}\n\n /** Reference to the currently opened snackbar at *any* level. */\n get _openedSnackBarRef(): BaoSnackBarRef<any> | null {\n const parent = this._parentSnackBar;\n return parent ? parent._openedSnackBarRef : this._snackBarRefAtThisLevel;\n }\n\n set _openedSnackBarRef(value: BaoSnackBarRef<any> | null) {\n if (this._parentSnackBar) {\n this._parentSnackBar._openedSnackBarRef = value;\n } else {\n this._snackBarRefAtThisLevel = value;\n }\n }\n\n /**\n * Creates and dispatches a snack bar with a custom component for the content, removing any\n * currently opened snack bars.\n *\n * @param component Component to be instantiated.\n * @param config Extra configuration for the snack bar.\n */\n public openFromComponent<T>(\n component: ComponentType<T>,\n config?: BaoSnackBarConfig\n ): BaoSnackBarRef<T> {\n return this.attach(component, config) as BaoSnackBarRef<T>;\n }\n\n /**\n * Creates and dispatches a snack bar with a custom template for the content, removing any\n * currently opened snack bars.\n *\n * @param template Template to be instantiated.\n * @param config Extra configuration for the snack bar.\n */\n public openFromTemplate(\n template: TemplateRef<any>,\n config?: BaoSnackBarConfig\n ): BaoSnackBarRef<EmbeddedViewRef<any>> {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return this.attach(template, config);\n }\n\n /**\n * Opens a snackbar with a message and an optional action.\n * @param message The message to show in the snackbar.\n * @param toastType The type of of toast to display the snackbar.\n * @param actionLabelOrIcon The label or icon for the snackbar action.\n * @param showClose If true, the snackbar will require user interaction to close.\n * @param config Additional configuration options for the snackbar.\n */\n public open(config: BaoSnackBarConfig): BaoSnackBarRef<ITextOnlySnackBar> {\n const _config = { ...this._defaultConfig, ...config };\n\n // Since the user doesn't have access to the component, we can\n // override the data to pass in our own message, action and type.\n _config.data = {\n message: _config.message,\n toastType: _config.toastType,\n actionLabelOrIcon: _config.actionLabelOrIcon,\n showClose: _config.showClose\n };\n\n if (_config.showClose) _config.duration = 0;\n\n if (!_config.announcementMessage) {\n _config.announcementMessage = _config.message;\n }\n\n return this.openFromComponent(this.simpleSnackBarComponent, _config);\n }\n\n /**\n * Dismisses the currently-visible snack bar.\n */\n public dismiss(): void {\n if (this._openedSnackBarRef) {\n this._openedSnackBarRef.dismiss();\n }\n }\n\n public ngOnDestroy() {\n // Only dismiss the snack bar at the current level on destroy.\n if (this._snackBarRefAtThisLevel) {\n this._snackBarRefAtThisLevel.dismiss();\n }\n }\n\n /**\n * Attaches the snack bar container component to the overlay.\n */\n private attachSnackBarContainer(\n overlayRef: OverlayRef,\n config: BaoSnackBarConfig\n ): IBaoSnackBarContainer {\n const userInjector =\n config && config.viewContainerRef && config.viewContainerRef.injector;\n const injector = new PortalInjector(\n userInjector || this._injector,\n new WeakMap([[BaoSnackBarConfig, config]])\n );\n\n const containerPortal = new ComponentPortal(\n this.snackBarContainerComponent,\n config.viewContainerRef,\n injector\n );\n const containerRef: ComponentRef<IBaoSnackBarContainer> =\n overlayRef.attach(containerPortal);\n containerRef.instance.snackBarConfig = config;\n return containerRef.instance;\n }\n\n /**\n * Places a new component or a template as the content of the snack bar container.\n */\n private attach<T>(\n content: ComponentType<T> | TemplateRef<T>,\n userConfig?: BaoSnackBarConfig\n ): BaoSnackBarRef<T | EmbeddedViewRef<any>> {\n const config = {\n ...new BaoSnackBarConfig(),\n ...this._defaultConfig,\n ...userConfig\n };\n const overlayRef = this.createOverlay(config);\n const container = this.attachSnackBarContainer(overlayRef, config);\n const snackBarRef = new BaoSnackBarRef<T | EmbeddedViewRef<any>>(\n container,\n overlayRef\n );\n\n if (content instanceof TemplateRef) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const portal = new TemplatePortal(content, null!, {\n $implicit: config.data,\n snackBarRef\n } as any);\n\n snackBarRef.instance = container.attachTemplatePortal(portal);\n } else {\n const injector = this.createInjector(config, snackBarRef);\n const portal = new ComponentPortal(content, undefined, injector);\n const contentRef = container.attachComponentPortal<T>(portal);\n\n // We can't pass this via the injector, because the injector is created earlier.\n snackBarRef.instance = contentRef.instance;\n }\n\n this.animateSnackBar(snackBarRef, config);\n this._openedSnackBarRef = snackBarRef;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return this._openedSnackBarRef;\n }\n\n /** Animates the old snack bar out and the new one in. */\n private animateSnackBar(\n snackBarRef: BaoSnackBarRef<any>,\n config: BaoSnackBarConfig\n ) {\n // When the snackbar is dismissed, clear the reference to it.\n snackBarRef.afterDismissed().subscribe(() => {\n // Clear the snackbar ref if it hasn't already been replaced by a newer snackbar.\n // eslint-disable-next-line eqeqeq\n if (this._openedSnackBarRef == snackBarRef) {\n this._openedSnackBarRef = null;\n }\n\n if (config.announcementMessage) {\n this._live.clear();\n }\n });\n\n if (this._openedSnackBarRef) {\n // If a snack bar is already in view, dismiss it and enter the\n // new snack bar after exit animation is complete.\n this._openedSnackBarRef.afterDismissed().subscribe(() => {\n snackBarRef.containerInstance.enter();\n });\n this._openedSnackBarRef.dismiss();\n } else {\n // If no snack bar is in view, enter the new snack bar.\n snackBarRef.containerInstance.enter();\n }\n\n // If a dismiss timeout is provided, set up dismiss based on after the snackbar is opened.\n if (config.duration && config.duration > 0) {\n snackBarRef\n .afterOpened()\n .subscribe(() => snackBarRef.dismissAfter(config.duration));\n }\n\n if (config.announcementMessage) {\n void this._live.announce(config.announcementMessage, config.politeness);\n }\n }\n\n /**\n * Creates a new overlay and places it in the correct location.\n * @param config The user-specified snack bar config.\n */\n private createOverlay(config: BaoSnackBarConfig): OverlayRef {\n const overlayConfig = new OverlayConfig();\n overlayConfig.direction = config.direction;\n\n const positionStrategy = this._overlay.position().global();\n // Set horizontal position.\n const isRtl = config.direction === 'rtl';\n const isLeft =\n config.horizontalPosition === 'left' ||\n (config.horizontalPosition === 'start' && !isRtl) ||\n (config.horizontalPosition === 'end' && isRtl);\n const isRight = !isLeft && config.horizontalPosition !== 'center';\n if (isLeft) {\n positionStrategy.left('0');\n } else if (isRight) {\n positionStrategy.right('0');\n } else {\n positionStrategy.centerHorizontally();\n }\n // Set horizontal position.\n if (config.verticalPosition === 'top') {\n positionStrategy.top('0');\n } else {\n positionStrategy.bottom('0');\n }\n\n overlayConfig.positionStrategy = positionStrategy;\n return this._overlay.create(overlayConfig);\n }\n\n /**\n * Creates an injector to be used inside of a snack bar component.\n * @param config Config that was used to create the snack bar.\n * @param snackBarRef Reference to the snack bar.\n */\n private createInjector<T>(\n config: BaoSnackBarConfig,\n snackBarRef: BaoSnackBarRef<T>\n ): PortalInjector {\n const userInjector =\n config && config.viewContainerRef && config.viewContainerRef.injector;\n\n return new PortalInjector(\n userInjector || this._injector,\n new WeakMap<any, any>([\n [BaoSnackBarRef, snackBarRef],\n [BAO_SNACK_BAR_DATA, config.data]\n ])\n );\n }\n}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { BaoButtonModule } from '../button/module';\nimport { BaoIconModule } from '../icon/module';\nimport { BaoSimpleSnackBarComponent } from './simple-snack-bar.component';\nimport { BaoSnackBarService } from './snack-bar';\nimport { BaoSnackBarConfig } from './snack-bar-config';\nimport { BaoSnackBarContainerComponent } from './snack-bar-container';\n\nconst SNACKBAR_DIRECTIVES = [\n BaoSimpleSnackBarComponent,\n BaoSnackBarContainerComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n OverlayModule,\n PortalModule,\n BaoButtonModule,\n BaoIconModule\n ],\n providers: [BaoSnackBarService, BaoSnackBarConfig],\n declarations: SNACKBAR_DIRECTIVES,\n exports: SNACKBAR_DIRECTIVES\n})\nexport class BaoSnackBarModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport const Breakpoints = {\n XSmall: '(max-width: 575.98px)',\n Small: '(min-width: 576px) and (max-width: 767.98px)',\n Medium: '(min-width: 768px) and (max-width: 991.98px)',\n Large: '(min-width: 992px) and (max-width: 1199.98px)',\n XLarge: '(min-width: 1200px)'\n};\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './colors';\nexport * from './breakpoints';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { BreakpointObserver } from '@angular/cdk/layout';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n Input,\n OnChanges,\n OnInit,\n Renderer2,\n SimpleChanges,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { Breakpoints } from '../core';\n\n/**\n * This component is dynamically added to replace breadcrumb when System Header is viewed on tablet or mobile screens.\n * Used internally by BaoSystemHeaderComponent only, not to be used by host application.\n */\n@Component({\n selector: 'bao-back-navigation-component',\n template: ` <a>\n <bao-icon\n color=\"action\"\n title=\"arrow-left\"\n svgIcon=\"icon-arrow-left\"\n size=\"x-small\"\n ></bao-icon>\n </a>`,\n host: {\n class: 'bao-system-header-back-button'\n }\n})\nexport class BaoBackNavigationComponent implements OnChanges {\n @Input() link: string;\n constructor(\n private renderer: Renderer2,\n private elementRef: ElementRef<HTMLElement>\n ) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['link'] && changes['link'].currentValue) {\n this.renderer.setAttribute(\n this.elementRef.nativeElement.children[0],\n 'href',\n changes['link'].currentValue\n );\n }\n }\n}\n\n/**\n * This directive is to mark the template where the BaoBackNavigationComponent should be dynamically inserted,\n * when a Breadcrumb component needs to be replaced\n */\n@Directive({\n selector: '[backNavigationInsert]'\n})\nexport class BaoBackNavigationInsert {\n constructor(public viewContainerRef: ViewContainerRef) {}\n}\n\n@Component({\n selector: 'bao-system-header',\n templateUrl: './system-header.component.html',\n styleUrls: ['./system-header.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'bao-system-header'\n }\n})\nexport class BaoSystemHeaderComponent implements AfterViewInit, OnInit {\n @ViewChild('textContainer', { static: false })\n private textContainer: ElementRef<HTMLElement>;\n @ViewChild(BaoBackNavigationInsert, { static: true })\n private backButtonInsert: BaoBackNavigationInsert;\n\n public screenType: 'mobile' | 'tablet' | 'desktop' = 'desktop';\n\n constructor(\n private cd: ChangeDetectorRef,\n private breakpointObserver: BreakpointObserver,\n private renderer: Renderer2\n ) {}\n\n get textContainerChildren(): Element[] {\n return Array.from(this.textContainer.nativeElement.children);\n }\n\n ngOnInit() {\n if (\n [Breakpoints.XSmall, Breakpoints.Small].some(size =>\n this.breakpointObserver.isMatched(size)\n )\n ) {\n this.screenType = 'mobile';\n } else if (this.breakpointObserver.isMatched(Breakpoints.Medium)) {\n this.screenType = 'tablet';\n } else if (\n [Breakpoints.Large, Breakpoints.XLarge].some(size =>\n this.breakpointObserver.isMatched(size)\n )\n ) {\n this.screenType = 'desktop';\n }\n }\n\n ngAfterViewInit() {\n this.formatNavigation();\n this.applySizeClass();\n this.cd.detectChanges();\n }\n\n private formatNavigation() {\n // If view is rendered on a mobile/tablet screen\n if (this.screenType == 'mobile' || this.screenType == 'tablet') {\n if (this.textContainerChildren[0].className == 'bao-breadcrumb') {\n // Retrieve link of parent page\n const breadcrumbElementsList =\n this.textContainerChildren[0].children[0];\n const breadcrumbLength = breadcrumbElementsList.children.length;\n const parentLink =\n breadcrumbElementsList.children[breadcrumbLength - 2].attributes[\n 'href'\n ].value;\n // Remove Breadcrumb component and replace it with back button\n this.renderer.removeChild(\n this.textContainer.nativeElement,\n this.textContainerChildren[0]\n );\n const viewContainerRef = this.backButtonInsert.viewContainerRef;\n viewContainerRef.clear();\n const componentRef = viewContainerRef.createComponent(\n BaoBackNavigationComponent\n );\n componentRef.setInput('link', parentLink);\n }\n }\n }\n\n private applySizeClass() {\n const tagInfoContainer =\n this.textContainer.nativeElement.childNodes[\n this.textContainerChildren.length - 1\n ];\n if (this.screenType === 'mobile') {\n this.renderer.addClass(tagInfoContainer, 'mobile');\n }\n }\n}\n","<div class=\"left-side-content\">\n <div class=\"back-navigation-container\">\n <ng-content select=\"a\"></ng-content>\n <ng-template backNavigationInsert></ng-template>\n </div>\n <div #textContainer class=\"text-content\">\n <ng-content select=\"bao-breadcrumb\"></ng-content>\n <ng-content select=\"h1\"></ng-content>\n <div class=\"tag-info-container\">\n <ng-content select=\"bao-tag\"></ng-content>\n <span class=\"additional-info\">\n <ng-content select=\"span\"></ng-content>\n </span>\n </div>\n </div>\n</div>\n<div class=\"button-container\">\n <ng-content></ng-content>\n</div>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport {\n BaoBackNavigationInsert,\n BaoSystemHeaderComponent,\n BaoBackNavigationComponent\n} from './system-header.component';\nimport { BaoIconModule } from '../icon';\n\nconst SYSTEM_HEADER_DIRECTIVES = [\n BaoSystemHeaderComponent,\n BaoBackNavigationInsert,\n BaoBackNavigationComponent\n];\n\n@NgModule({\n imports: [CommonModule, BaoIconModule],\n declarations: [SYSTEM_HEADER_DIRECTIVES],\n exports: [SYSTEM_HEADER_DIRECTIVES]\n})\nexport class BaoSystemHeaderModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './module';\nexport * from './system-header.component';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { NgModule } from '@angular/core';\nimport { BaoAlertModule } from './alert';\nimport { BaoBreadcrumbModule } from './breadcrumb';\nimport { BaoButtonModule } from './button';\nimport { BaoCardModule } from './card';\nimport { BaoCheckboxModule } from './checkbox';\nimport { BaoCommonComponentsModule } from './common-components';\nimport { BaoHeaderInfoModule } from './header-info';\nimport { BaoIconModule } from './icon';\nimport { BaoListModule } from './list';\nimport { BaoRadioModule } from './radio';\nimport { BaoTagModule } from './tag';\nimport { BaoSummaryModule } from './summary';\nimport { BaoAvatarModule } from './avatar';\nimport { BaoTabsModule } from './tabs';\nimport { BaoModalModule } from './modal/module';\nimport { BaoHyperlinkModule } from './hyperlink';\nimport { BaoDropdownMenuModule } from './dropdown-menu';\nimport { BaoFileModule } from './file/module';\nimport { BaoSnackBarModule } from './snack-bar/module';\nimport { BaoSystemHeaderModule } from './system-header';\n\n@NgModule({\n imports: [\n BaoIconModule,\n BaoButtonModule,\n BaoAlertModule,\n BaoCardModule,\n BaoBreadcrumbModule,\n BaoModalModule\n ],\n exports: [\n BaoIconModule,\n BaoButtonModule,\n BaoAlertModule,\n BaoBreadcrumbModule,\n BaoCardModule,\n BaoTagModule,\n BaoHeaderInfoModule,\n BaoListModule,\n BaoCommonComponentsModule,\n BaoCheckboxModule,\n BaoRadioModule,\n BaoSummaryModule,\n BaoAvatarModule,\n BaoTabsModule,\n BaoModalModule,\n BaoHyperlinkModule,\n BaoDropdownMenuModule,\n BaoFileModule,\n BaoSnackBarModule,\n BaoSystemHeaderModule\n // TODO: reactivate once component does not depend on global css BaoBadgeModule,\n ]\n})\nexport class BaoModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'bao-badge',\n templateUrl: './badge.component.html',\n styleUrls: ['./badge.component.scss'],\n host: {\n class: '',\n '[class.positive]': 'type === \"success\"',\n '[class.negative]': 'type === \"danger\"',\n '[class.warning]': 'type === \"warning\"',\n '[class.informative]': 'type === \"info\"'\n }\n})\nexport class BaoBadgeComponent {\n @Input() public type: '' | 'success' | 'danger' | 'warning' | 'info' = '';\n}\n","<ng-content></ng-content>\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { BaoBadgeComponent } from './badge.component';\n\nconst BADGE_DIRECTIVES = [BaoBadgeComponent];\n\n@NgModule({\n imports: [CommonModule],\n declarations: [BADGE_DIRECTIVES],\n exports: [BADGE_DIRECTIVES]\n})\nexport class BaoBadgeModule {}\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './module';\nexport * from './badge.component';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './enum/display-mode';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './module';\nexport * from './modal';\nexport * from './modal-container';\nexport * from './modal-config';\nexport * from './modal-ref';\nexport * from './modal-directives';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './module';\nexport * from './file-input.component';\nexport * from './file-preview.component';\nexport * from './file-intl';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './module';\nexport * from './snack-bar';\nexport * from './snack-bar-config';\nexport * from './snack-bar-ref';\nexport * from './snack-bar-container';\nexport * from './simple-snack-bar.component';\n","/*\n * Copyright (c) 2025 Ville de Montreal. All rights reserved.\n * Licensed under the MIT license.\n * See LICENSE file in the project root for full license information.\n */\nexport * from './lib/bao.module';\nexport * from './lib/button/index';\nexport * from './lib/icon/index';\nexport * from './lib/alert/index';\nexport * from './lib/breadcrumb/index';\nexport * from './lib/card/index';\nexport * from './lib/badge/index';\nexport * from './lib/tag/index';\nexport * from './lib/header-info/index';\nexport * from './lib/list/index';\nexport * from './lib/checkbox/index';\nexport * from './lib/radio/index';\nexport * from './lib/common-components/index';\nexport * from './lib/summary/index';\nexport * from './lib/shared';\nexport * from './lib/avatar';\nexport * from './lib/tabs';\nexport * from './lib/modal';\nexport * from './lib/hyperlink';\nexport * from './lib/dropdown-menu';\nexport * from './lib/file';\nexport * from './lib/snack-bar';\nexport * from './lib/system-header';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["SVG_NAMESPACE","i1.BaoIconDictionary","i1","i2.BaoIconComponent","i3.BaoButtonComponent","DIRECTIVES","SPAN_TEXT_PROPERTY","SCREEN_READER_CLASS_NAME","BAO_ICON","i2.BaoModalInitialConfig","uniqueId","i1.BaoModalRef","i2.BaoModal","i1.BaoFileIntl","i2","i3.BaoErrorTextComponent","i4.BaoLabelTextComponent","i5.BaoButtonComponent","i4.BaoIconComponent","take","i2.BaoSnackBarConfig","i1.BaoIconComponent"],"mappings":"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"}