@ndwnu/design-system 5.1.0 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/alert/alert.model.d.ts +1 -6
- package/components/banner/banner.model.d.ts +1 -4
- package/components/card/card-header/card-header.component.d.ts +7 -1
- package/components/card/card.animation.d.ts +1 -0
- package/components/card/card.component.d.ts +15 -2
- package/components/dropdown/dropdown.component.d.ts +1 -1
- package/components/form-field/autosuggest/autosuggest-add-option/autosuggest-add-option.component.d.ts +3 -3
- package/components/form-field/autosuggest/autosuggest-option/autosuggest-option.component.d.ts +7 -7
- package/components/form-field/autosuggest/autosuggest-option/autosuggest-option.model.d.ts +5 -2
- package/components/form-field/autosuggest/autosuggest-option/base-autosuggest-option.component.d.ts +5 -6
- package/components/form-field/autosuggest/autosuggest-panel/autosuggest-panel.component.d.ts +12 -14
- package/components/form-field/autosuggest/autosuggest.directive.d.ts +7 -8
- package/components/form-field/clear-search-button/clear-search-button.component.d.ts +2 -1
- package/components/form-field/form-field.component.d.ts +2 -1
- package/components/form-field/input/input.model.d.ts +1 -11
- package/components/form-field/textarea/auto-grow.directive.d.ts +6 -3
- package/components/form-field/textarea/index.d.ts +1 -0
- package/components/form-field/textarea/max-char.directive.d.ts +15 -0
- package/components/icon/action-icon/action-icon.component.d.ts +2 -2
- package/components/main-navigation/main-navigation.model.d.ts +1 -4
- package/components/modal/modal.component.d.ts +1 -2
- package/components/multi-select/multi-select.component.d.ts +3 -3
- package/components/pill/pill.model.d.ts +1 -8
- package/components/router-breadcrumbs/router-breadcrumbs.component.d.ts +2 -2
- package/components/summary-card/summary-card-actions/summary-card-actions.component.d.ts +1 -1
- package/components/tag/tag.component.d.ts +2 -2
- package/core/style/styles.css +32 -12
- package/core/style/styles.scss +32 -12
- package/fesm2022/ndwnu-design-system.mjs +492 -380
- package/fesm2022/ndwnu-design-system.mjs.map +1 -1
- package/package.json +5 -7
- package/esm2022/components/accordion/accordion.component.mjs +0 -32
- package/esm2022/components/accordion/accordion.service.mjs +0 -17
- package/esm2022/components/accordion/index.mjs +0 -3
- package/esm2022/components/alert/alert.component.mjs +0 -42
- package/esm2022/components/alert/alert.model.mjs +0 -8
- package/esm2022/components/alert/index.mjs +0 -3
- package/esm2022/components/badge/badge.component.mjs +0 -21
- package/esm2022/components/badge/index.mjs +0 -2
- package/esm2022/components/banner/banner.component.mjs +0 -61
- package/esm2022/components/banner/banner.model.mjs +0 -6
- package/esm2022/components/banner/index.mjs +0 -3
- package/esm2022/components/breadcrumb/breadcrumb.component.mjs +0 -15
- package/esm2022/components/breadcrumb/index.mjs +0 -2
- package/esm2022/components/breadcrumb-group/breadcrumb-group.component.mjs +0 -21
- package/esm2022/components/breadcrumb-group/index.mjs +0 -2
- package/esm2022/components/button/button.directive.mjs +0 -37
- package/esm2022/components/button/index.mjs +0 -2
- package/esm2022/components/card/card-content/card-content.component.mjs +0 -11
- package/esm2022/components/card/card-content/index.mjs +0 -2
- package/esm2022/components/card/card-footer/card-footer.component.mjs +0 -11
- package/esm2022/components/card/card-footer/index.mjs +0 -2
- package/esm2022/components/card/card-header/card-header.component.mjs +0 -11
- package/esm2022/components/card/card-header/index.mjs +0 -2
- package/esm2022/components/card/card.component.mjs +0 -11
- package/esm2022/components/card/index.mjs +0 -15
- package/esm2022/components/collapsible/collapsible.animation.mjs +0 -26
- package/esm2022/components/collapsible/collapsible.component.mjs +0 -34
- package/esm2022/components/collapsible/index.mjs +0 -2
- package/esm2022/components/dashboard-card/dashboard-card.component.mjs +0 -32
- package/esm2022/components/dashboard-card/index.mjs +0 -2
- package/esm2022/components/dropdown/dropdown.component.mjs +0 -57
- package/esm2022/components/dropdown/index.mjs +0 -2
- package/esm2022/components/form-field/autosuggest/autosuggest-add-option/autosuggest-add-option.component.mjs +0 -29
- package/esm2022/components/form-field/autosuggest/autosuggest-add-option/index.mjs +0 -2
- package/esm2022/components/form-field/autosuggest/autosuggest-option/autosuggest-option.component.mjs +0 -45
- package/esm2022/components/form-field/autosuggest/autosuggest-option/autosuggest-option.model.mjs +0 -2
- package/esm2022/components/form-field/autosuggest/autosuggest-option/base-autosuggest-option.component.mjs +0 -85
- package/esm2022/components/form-field/autosuggest/autosuggest-option/index.mjs +0 -3
- package/esm2022/components/form-field/autosuggest/autosuggest-panel/autosuggest-panel.component.mjs +0 -82
- package/esm2022/components/form-field/autosuggest/autosuggest.directive.mjs +0 -411
- package/esm2022/components/form-field/autosuggest/index.mjs +0 -6
- package/esm2022/components/form-field/autosuggest/match-bold.pipe.mjs +0 -21
- package/esm2022/components/form-field/checkbox/checkbox.component.mjs +0 -62
- package/esm2022/components/form-field/checkbox/index.mjs +0 -2
- package/esm2022/components/form-field/checkbox-group/checkbox-group.component.mjs +0 -15
- package/esm2022/components/form-field/checkbox-group/index.mjs +0 -2
- package/esm2022/components/form-field/clear-search-button/clear-search-button.component.mjs +0 -37
- package/esm2022/components/form-field/error/error.component.mjs +0 -12
- package/esm2022/components/form-field/error/index.mjs +0 -2
- package/esm2022/components/form-field/file-upload/file-upload-text.interface.mjs +0 -2
- package/esm2022/components/form-field/file-upload/file-upload.component.mjs +0 -172
- package/esm2022/components/form-field/file-upload/index.mjs +0 -3
- package/esm2022/components/form-field/form-field.component.mjs +0 -81
- package/esm2022/components/form-field/form-field.constant.mjs +0 -2
- package/esm2022/components/form-field/form-field.model.mjs +0 -8
- package/esm2022/components/form-field/index.mjs +0 -17
- package/esm2022/components/form-field/info/index.mjs +0 -2
- package/esm2022/components/form-field/info/info.component.mjs +0 -11
- package/esm2022/components/form-field/input/index.mjs +0 -3
- package/esm2022/components/form-field/input/input.directive.mjs +0 -68
- package/esm2022/components/form-field/input/input.model.mjs +0 -13
- package/esm2022/components/form-field/input-button/index.mjs +0 -2
- package/esm2022/components/form-field/input-button/input-button.component.mjs +0 -23
- package/esm2022/components/form-field/input-icon/index.mjs +0 -2
- package/esm2022/components/form-field/input-icon/input-icon.component.mjs +0 -12
- package/esm2022/components/form-field/month-input/index.mjs +0 -2
- package/esm2022/components/form-field/month-input/month-input-utils.mjs +0 -13
- package/esm2022/components/form-field/month-input/month-input.component.mjs +0 -154
- package/esm2022/components/form-field/option-group/index.mjs +0 -4
- package/esm2022/components/form-field/option-group/option-group.component.mjs +0 -64
- package/esm2022/components/form-field/option-group/option-group.model.mjs +0 -2
- package/esm2022/components/form-field/option-group/option.component.mjs +0 -22
- package/esm2022/components/form-field/picker-button/picker-button.component.mjs +0 -50
- package/esm2022/components/form-field/radio-button/index.mjs +0 -2
- package/esm2022/components/form-field/radio-button/radio-button.component.mjs +0 -63
- package/esm2022/components/form-field/radio-group/index.mjs +0 -2
- package/esm2022/components/form-field/radio-group/radio-group.component.mjs +0 -70
- package/esm2022/components/form-field/success/index.mjs +0 -2
- package/esm2022/components/form-field/success/success.component.mjs +0 -12
- package/esm2022/components/form-field/textarea/auto-grow.directive.mjs +0 -45
- package/esm2022/components/form-field/textarea/index.mjs +0 -2
- package/esm2022/components/icon/action-icon/action-icon.component.mjs +0 -40
- package/esm2022/components/icon/action-icon/index.mjs +0 -2
- package/esm2022/components/icon/icon.component.mjs +0 -36
- package/esm2022/components/icon/index.mjs +0 -3
- package/esm2022/components/index.mjs +0 -29
- package/esm2022/components/layout/index.mjs +0 -2
- package/esm2022/components/layout/layout.component.mjs +0 -23
- package/esm2022/components/layout-banners/index.mjs +0 -2
- package/esm2022/components/layout-banners/layout-banners.component.mjs +0 -11
- package/esm2022/components/loader/index.mjs +0 -2
- package/esm2022/components/loader/loader.component.mjs +0 -11
- package/esm2022/components/main-navigation/index.mjs +0 -3
- package/esm2022/components/main-navigation/main-navigation.component.mjs +0 -165
- package/esm2022/components/main-navigation/main-navigation.imports.mjs +0 -20
- package/esm2022/components/main-navigation/main-navigation.model.mjs +0 -6
- package/esm2022/components/main-navigation-menu/index.mjs +0 -2
- package/esm2022/components/main-navigation-menu/main-navigation-menu.component.mjs +0 -20
- package/esm2022/components/modal/index.mjs +0 -16
- package/esm2022/components/modal/modal-content/index.mjs +0 -2
- package/esm2022/components/modal/modal-content/modal-content.component.mjs +0 -11
- package/esm2022/components/modal/modal-footer/index.mjs +0 -2
- package/esm2022/components/modal/modal-footer/modal-footer.component.mjs +0 -11
- package/esm2022/components/modal/modal-header/index.mjs +0 -2
- package/esm2022/components/modal/modal-header/modal-header.component.mjs +0 -18
- package/esm2022/components/modal/modal-ref.mjs +0 -4
- package/esm2022/components/modal/modal.component.mjs +0 -19
- package/esm2022/components/modal/modal.service.mjs +0 -31
- package/esm2022/components/multi-select/checkbox-data.interface.mjs +0 -2
- package/esm2022/components/multi-select/index.mjs +0 -4
- package/esm2022/components/multi-select/multi-select.component.mjs +0 -76
- package/esm2022/components/multi-select/select-all-text.interface.mjs +0 -2
- package/esm2022/components/pill/index.mjs +0 -3
- package/esm2022/components/pill/pill.component.mjs +0 -26
- package/esm2022/components/pill/pill.model.mjs +0 -10
- package/esm2022/components/popover/index.mjs +0 -2
- package/esm2022/components/popover/popover-trigger.directive.mjs +0 -182
- package/esm2022/components/router-breadcrumbs/index.mjs +0 -2
- package/esm2022/components/router-breadcrumbs/router-breadcrumbs.component.mjs +0 -37
- package/esm2022/components/summary-card/index.mjs +0 -11
- package/esm2022/components/summary-card/summary-card-action/summary-card-action.component.mjs +0 -23
- package/esm2022/components/summary-card/summary-card-actions/summary-card-actions.component.mjs +0 -26
- package/esm2022/components/summary-card/summary-card-avatar/summary-card-avatar.component.mjs +0 -25
- package/esm2022/components/summary-card/summary-card-content/summary-card-content.component.mjs +0 -19
- package/esm2022/components/summary-card/summary-card-header/summary-card-header.component.mjs +0 -13
- package/esm2022/components/summary-card/summary-card-subtitle/summary-card-subtitle.component.mjs +0 -11
- package/esm2022/components/summary-card/summary-card-tag/summary-card-tag.component.mjs +0 -20
- package/esm2022/components/summary-card/summary-card-tags/summary-card-tags.component.mjs +0 -20
- package/esm2022/components/summary-card/summary-card.component.mjs +0 -14
- package/esm2022/components/summary-card/summary-card.model.mjs +0 -2
- package/esm2022/components/tab/index.mjs +0 -2
- package/esm2022/components/tab/tab.component.mjs +0 -32
- package/esm2022/components/tab-group/index.mjs +0 -2
- package/esm2022/components/tab-group/tab-group.component.mjs +0 -34
- package/esm2022/components/tag/index.mjs +0 -2
- package/esm2022/components/tag/tag.component.mjs +0 -29
- package/esm2022/components/toast/index.mjs +0 -3
- package/esm2022/components/toast/toast.component.mjs +0 -77
- package/esm2022/components/toast/toast.service.mjs +0 -43
- package/esm2022/components/tooltip/index.mjs +0 -3
- package/esm2022/components/tooltip/tooltip.component.mjs +0 -16
- package/esm2022/components/tooltip/tooltip.directive.mjs +0 -89
- package/esm2022/models/aria.model.mjs +0 -2
- package/esm2022/models/index.mjs +0 -2
- package/esm2022/ndwnu-design-system.mjs +0 -5
- package/esm2022/public-api.mjs +0 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ndwnu-design-system.mjs","sources":["../../../projects/ndw/src/components/badge/badge.component.ts","../../../projects/ndw/src/components/badge/badge.component.html","../../../projects/ndw/src/components/icon/icon.component.ts","../../../projects/ndw/src/components/icon/icon.component.html","../../../projects/ndw/src/components/icon/action-icon/action-icon.component.ts","../../../projects/ndw/src/components/icon/action-icon/action-icon.component.html","../../../projects/ndw/src/components/collapsible/collapsible.animation.ts","../../../projects/ndw/src/components/collapsible/collapsible.component.ts","../../../projects/ndw/src/components/collapsible/collapsible.component.html","../../../projects/ndw/src/components/accordion/accordion.service.ts","../../../projects/ndw/src/components/accordion/accordion.component.ts","../../../projects/ndw/src/components/accordion/accordion.component.html","../../../projects/ndw/src/components/button/button.directive.ts","../../../projects/ndw/src/components/alert/alert.model.ts","../../../projects/ndw/src/components/alert/alert.component.ts","../../../projects/ndw/src/components/alert/alert.component.html","../../../projects/ndw/src/components/banner/banner.model.ts","../../../projects/ndw/src/components/banner/banner.component.ts","../../../projects/ndw/src/components/banner/banner.component.html","../../../projects/ndw/src/components/breadcrumb/breadcrumb.component.ts","../../../projects/ndw/src/components/breadcrumb/breadcrumb.component.html","../../../projects/ndw/src/components/breadcrumb-group/breadcrumb-group.component.ts","../../../projects/ndw/src/components/breadcrumb-group/breadcrumb-group.component.html","../../../projects/ndw/src/components/card/card-content/card-content.component.ts","../../../projects/ndw/src/components/card/card-content/card-content.component.html","../../../projects/ndw/src/components/card/card-footer/card-footer.component.ts","../../../projects/ndw/src/components/card/card-footer/card-footer.component.html","../../../projects/ndw/src/components/card/card-header/card-header.component.ts","../../../projects/ndw/src/components/card/card-header/card-header.component.html","../../../projects/ndw/src/components/card/card.component.ts","../../../projects/ndw/src/components/card/card.component.html","../../../projects/ndw/src/components/card/index.ts","../../../projects/ndw/src/components/dashboard-card/dashboard-card.component.ts","../../../projects/ndw/src/components/dashboard-card/dashboard-card.component.html","../../../projects/ndw/src/components/popover/popover-trigger.directive.ts","../../../projects/ndw/src/components/tag/tag.component.ts","../../../projects/ndw/src/components/tag/tag.component.html","../../../projects/ndw/src/components/dropdown/dropdown.component.ts","../../../projects/ndw/src/components/dropdown/dropdown.component.html","../../../projects/ndw/src/components/form-field/autosuggest/autosuggest-option/base-autosuggest-option.component.ts","../../../projects/ndw/src/components/form-field/autosuggest/match-bold.pipe.ts","../../../projects/ndw/src/components/form-field/autosuggest/autosuggest-option/autosuggest-option.component.ts","../../../projects/ndw/src/components/form-field/autosuggest/autosuggest-option/autosuggest-option.component.html","../../../projects/ndw/src/components/form-field/form-field.constant.ts","../../../projects/ndw/src/components/form-field/autosuggest/autosuggest.directive.ts","../../../projects/ndw/src/components/form-field/autosuggest/autosuggest-add-option/autosuggest-add-option.component.ts","../../../projects/ndw/src/components/form-field/autosuggest/autosuggest-add-option/autosuggest-add-option.component.html","../../../projects/ndw/src/components/form-field/autosuggest/autosuggest-panel/autosuggest-panel.component.ts","../../../projects/ndw/src/components/form-field/autosuggest/autosuggest-panel/autosuggest-panel.component.html","../../../projects/ndw/src/components/form-field/checkbox/checkbox.component.ts","../../../projects/ndw/src/components/form-field/checkbox/checkbox.component.html","../../../projects/ndw/src/components/form-field/checkbox-group/checkbox-group.component.ts","../../../projects/ndw/src/components/form-field/checkbox-group/checkbox-group.component.html","../../../projects/ndw/src/components/form-field/error/error.component.ts","../../../projects/ndw/src/components/form-field/error/error.component.html","../../../projects/ndw/src/components/form-field/file-upload/file-upload.component.ts","../../../projects/ndw/src/components/form-field/file-upload/file-upload.component.html","../../../projects/ndw/src/components/tooltip/tooltip.component.ts","../../../projects/ndw/src/components/tooltip/tooltip.component.html","../../../projects/ndw/src/components/tooltip/tooltip.directive.ts","../../../projects/ndw/src/components/form-field/input-button/input-button.component.ts","../../../projects/ndw/src/components/form-field/input-button/input-button.component.html","../../../projects/ndw/src/components/form-field/clear-search-button/clear-search-button.component.ts","../../../projects/ndw/src/components/form-field/clear-search-button/clear-search-button.component.html","../../../projects/ndw/src/components/form-field/form-field.model.ts","../../../projects/ndw/src/components/form-field/info/info.component.ts","../../../projects/ndw/src/components/form-field/info/info.component.html","../../../projects/ndw/src/components/form-field/input/input.directive.ts","../../../projects/ndw/src/components/form-field/input/input.model.ts","../../../projects/ndw/src/components/form-field/input-icon/input-icon.component.ts","../../../projects/ndw/src/components/form-field/input-icon/input-icon.component.html","../../../projects/ndw/src/components/form-field/option-group/option.component.ts","../../../projects/ndw/src/components/form-field/option-group/option-group.component.ts","../../../projects/ndw/src/components/form-field/option-group/option-group.component.html","../../../projects/ndw/src/components/form-field/month-input/month-input-utils.ts","../../../projects/ndw/src/components/form-field/month-input/month-input.component.ts","../../../projects/ndw/src/components/form-field/month-input/month-input.component.html","../../../projects/ndw/src/components/form-field/picker-button/picker-button.component.ts","../../../projects/ndw/src/components/form-field/picker-button/picker-button.component.html","../../../projects/ndw/src/components/form-field/success/success.component.ts","../../../projects/ndw/src/components/form-field/success/success.component.html","../../../projects/ndw/src/components/form-field/form-field.component.ts","../../../projects/ndw/src/components/form-field/form-field.component.html","../../../projects/ndw/src/components/form-field/radio-button/radio-button.component.ts","../../../projects/ndw/src/components/form-field/radio-button/radio-button.component.html","../../../projects/ndw/src/components/form-field/radio-group/radio-group.component.ts","../../../projects/ndw/src/components/form-field/radio-group/radio-group.component.html","../../../projects/ndw/src/components/form-field/textarea/auto-grow.directive.ts","../../../projects/ndw/src/components/main-navigation/main-navigation.model.ts","../../../projects/ndw/src/components/main-navigation-menu/main-navigation-menu.component.ts","../../../projects/ndw/src/components/main-navigation-menu/main-navigation-menu.component.html","../../../projects/ndw/src/components/main-navigation/main-navigation.imports.ts","../../../projects/ndw/src/components/main-navigation/main-navigation.component.ts","../../../projects/ndw/src/components/main-navigation/main-navigation.component.html","../../../projects/ndw/src/components/layout/layout.component.ts","../../../projects/ndw/src/components/layout/layout.component.html","../../../projects/ndw/src/components/layout-banners/layout-banners.component.ts","../../../projects/ndw/src/components/layout-banners/layout-banners.component.html","../../../projects/ndw/src/components/loader/loader.component.ts","../../../projects/ndw/src/components/loader/loader.component.html","../../../projects/ndw/src/components/modal/modal-content/modal-content.component.ts","../../../projects/ndw/src/components/modal/modal-content/modal-content.component.html","../../../projects/ndw/src/components/modal/modal-footer/modal-footer.component.ts","../../../projects/ndw/src/components/modal/modal-footer/modal-footer.component.html","../../../projects/ndw/src/components/modal/modal.service.ts","../../../projects/ndw/src/components/modal/modal-header/modal-header.component.ts","../../../projects/ndw/src/components/modal/modal-header/modal-header.component.html","../../../projects/ndw/src/components/modal/modal.component.ts","../../../projects/ndw/src/components/modal/modal.component.html","../../../projects/ndw/src/components/modal/index.ts","../../../projects/ndw/src/components/multi-select/multi-select.component.ts","../../../projects/ndw/src/components/multi-select/multi-select.component.html","../../../projects/ndw/src/components/pill/pill.model.ts","../../../projects/ndw/src/components/pill/pill.component.ts","../../../projects/ndw/src/components/pill/pill.component.html","../../../projects/ndw/src/components/router-breadcrumbs/router-breadcrumbs.component.ts","../../../projects/ndw/src/components/router-breadcrumbs/router-breadcrumbs.component.html","../../../projects/ndw/src/components/tab/tab.component.ts","../../../projects/ndw/src/components/tab/tab.component.html","../../../projects/ndw/src/components/tab-group/tab-group.component.ts","../../../projects/ndw/src/components/tab-group/tab-group.component.html","../../../projects/ndw/src/components/toast/toast.component.ts","../../../projects/ndw/src/components/toast/toast.component.html","../../../projects/ndw/src/components/toast/toast.service.ts","../../../projects/ndw/src/components/summary-card/summary-card.component.ts","../../../projects/ndw/src/components/summary-card/summary-card.component.html","../../../projects/ndw/src/components/summary-card/summary-card-action/summary-card-action.component.ts","../../../projects/ndw/src/components/summary-card/summary-card-action/summary-card-action.component.html","../../../projects/ndw/src/components/summary-card/summary-card-actions/summary-card-actions.component.ts","../../../projects/ndw/src/components/summary-card/summary-card-actions/summary-card-actions.component.html","../../../projects/ndw/src/components/summary-card/summary-card-avatar/summary-card-avatar.component.ts","../../../projects/ndw/src/components/summary-card/summary-card-content/summary-card-content.component.ts","../../../projects/ndw/src/components/summary-card/summary-card-header/summary-card-header.component.ts","../../../projects/ndw/src/components/summary-card/summary-card-header/summary-card-header.component.html","../../../projects/ndw/src/components/summary-card/summary-card-tags/summary-card-tags.component.ts","../../../projects/ndw/src/components/summary-card/summary-card-tag/summary-card-tag.component.ts","../../../projects/ndw/src/components/summary-card/summary-card-subtitle/summary-card-subtitle.component.ts","../../../projects/ndw/src/components/summary-card/summary-card-subtitle/summary-card-subtitle.component.html","../../../projects/ndw/src/public-api.ts","../../../projects/ndw/src/ndwnu-design-system.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ndw-badge',\n standalone: true,\n styleUrl: './badge.component.scss',\n templateUrl: './badge.component.html',\n})\nexport class BadgeComponent {\n /**\n * The value of the badge\n */\n public value = input<number>();\n\n /**\n * The aria label, used by screen readers to give context.\n */\n public ariaLabel = input<string>();\n}\n","@if (value(); as value) {\n @if (value === 0 || value < -9 || value > 99) {\n <span class=\"dot\"></span>\n } @else {\n {{ value }}\n }\n} @else {\n {{ value() }}\n}\n\n@if (ariaLabel()) {\n <span class=\"sr-only\"> {{ ariaLabel() }}</span>\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n inject,\n input,\n OnInit,\n Renderer2,\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\nexport type IconSize = 'sm' | 'md';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'aria-hidden': 'true',\n class: 'material-symbols-rounded',\n },\n selector: 'ndw-icon',\n standalone: true,\n styleUrl: './icon.component.scss',\n templateUrl: './icon.component.html',\n})\nexport class IconComponent implements OnInit {\n public size = input<IconSize>('md');\n\n private readonly elementRef = inject(ElementRef);\n private readonly renderer = inject(Renderer2);\n private readonly document = inject(DOCUMENT);\n\n @HostBinding('class')\n public get hostClass(): string {\n return `icon--${this.size()}`;\n }\n\n public ngOnInit(): void {\n const { nativeElement } = this.elementRef;\n const { defaultView } = this.document;\n const height = defaultView?.getComputedStyle(nativeElement)?.fontSize;\n const paddingInline = defaultView?.getComputedStyle(nativeElement)?.paddingInline;\n\n if (height && paddingInline) {\n this.renderer.setStyle(nativeElement, 'width', height + paddingInline);\n }\n }\n}\n","<ng-content />\n","import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { IconComponent, IconSize } from '../icon.component';\n\nexport type ButtonType = 'button' | 'submit' | 'reset';\nexport type IconVariant = 'primary' | 'link' | 'grey' | 'white';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconComponent],\n selector: 'ndw-action-icon',\n standalone: true,\n styleUrl: './action-icon.component.scss',\n templateUrl: './action-icon.component.html',\n})\nexport class ActionIconComponent {\n // ! This component is deprecated, use `button` with `extra-small` attribute instead.\n\n /**\n * Used to give meaning to the button, used by screen readers.\n */\n public ariaLabel = input.required<string>();\n\n /**\n * Color scheme of the ActionIcon, available `primary`, `link`,\n * `grey` and `white` (defaults to primary).\n */\n public variant = input<IconVariant>('primary');\n\n /**\n * Specify button type, defaults to `button`\n */\n public buttonType = input<ButtonType>('button');\n\n /**\n * Disables the button, defaults to `false`.\n */\n public disabled = input<boolean>(false);\n\n /**\n * Sets the size of the button, defaults to `md`.\n */\n public size = input<IconSize>('md');\n\n /**\n * Event emitted when the button is clicked.\n */\n public readonly onClick = output<void>();\n}\n","<button\n class=\"ndw-action-icon ndw-action-icon--{{ variant() }}\"\n [type]=\"buttonType()\"\n [attr.aria-label]=\"ariaLabel()\"\n [disabled]=\"disabled()\"\n (click)=\"onClick.emit()\"\n>\n <ndw-icon [size]=\"size()\"><ng-content /></ndw-icon>\n</button>\n","import { animate, state, style, transition, trigger } from '@angular/animations';\n\nexport const collapsibleAnimation = [\n trigger('collapsible', [\n state(\n 'open',\n style({\n 'max-height': '100vh',\n opacity: '1',\n }),\n ),\n state(\n 'closed',\n style({\n 'max-height': '0',\n opacity: '0',\n }),\n ),\n transition('open => closed', [\n animate(\n '200ms ease-in-out',\n style({\n 'max-height': '0px',\n opacity: '0',\n }),\n ),\n ]),\n transition('closed => open', [\n animate(\n '200ms ease-in-out',\n style({\n 'max-height': '100vh',\n opacity: '1',\n }),\n ),\n ]),\n ]),\n];\n","import { ChangeDetectionStrategy, Component, computed, inject, input, model } from '@angular/core';\n\nimport { AccordionService } from '../accordion';\nimport { BadgeComponent } from '../badge';\nimport { IconComponent } from '../icon';\n\nimport { collapsibleAnimation } from './collapsible.animation';\n\n@Component({\n animations: [collapsibleAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.expanded]': 'expanded()',\n },\n imports: [BadgeComponent, IconComponent],\n selector: 'ndw-collapsible',\n standalone: true,\n styleUrl: './collapsible.component.scss',\n templateUrl: './collapsible.component.html',\n})\nexport class CollapsibleComponent {\n public index = input.required<number>();\n public title = input.required<string>();\n public value = input<number>();\n\n public expanded = model(false);\n\n private readonly accordionService = inject(AccordionService);\n\n private readonly uuid = crypto.randomUUID();\n public readonly toggleUuid = `toggle-${this.uuid}`;\n public readonly sectionUuid = `section-${this.uuid}`;\n\n public animationState = computed(() => (this.expanded() ? 'open' : 'closed'));\n\n public toggle(): void {\n this.expanded.set(!this.expanded());\n\n if (this.expanded()) {\n this.accordionService.setExpandedCollapsible(this.index());\n }\n }\n}\n","<div class=\"collapsible\">\n <h3 class=\"collapsible__header\">\n <button\n class=\"collapsible__button\"\n type=\"button\"\n [id]=\"toggleUuid\"\n [attr.aria-controls]=\"sectionUuid\"\n [attr.aria-expanded]=\"expanded()\"\n (click)=\"toggle()\"\n >\n {{ title() }}\n\n @if (value(); as value) {\n <ndw-badge [value]=\"value\" />\n }\n\n <ndw-icon>keyboard_arrow_down</ndw-icon>\n </button>\n </h3>\n\n <section\n role=\"region\"\n class=\"collapsible__section\"\n [id]=\"sectionUuid\"\n [attr.aria-labelledby]=\"toggleUuid\"\n [@collapsible]=\"animationState()\"\n >\n <ng-content />\n </section>\n</div>\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable()\nexport class AccordionService {\n public expanded$ = new Subject<number>();\n\n public setExpandedCollapsible(index: number): void {\n this.expanded$.next(index);\n }\n}\n","import {\n Component,\n OnInit,\n contentChildren,\n inject,\n input,\n DestroyRef,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { CollapsibleComponent } from '../collapsible';\n\nimport { AccordionService } from './accordion.service';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [AccordionService],\n selector: 'ndw-accordion',\n standalone: true,\n styleUrl: './accordion.component.scss',\n templateUrl: './accordion.component.html',\n})\nexport class AccordionComponent implements OnInit {\n public collapseOthers = input(false);\n\n public collapsibles = contentChildren(CollapsibleComponent);\n\n private readonly accordionService = inject(AccordionService);\n private readonly destroyRef = inject(DestroyRef);\n\n public ngOnInit(): void {\n this.accordionService.expanded$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((index: number) => {\n if (!this.collapseOthers()) {\n return;\n }\n\n this.collapsibles().forEach((collapsible: CollapsibleComponent) => {\n collapsible.expanded.set(collapsible.index() === index);\n });\n });\n }\n}\n","<ng-content />\n","import { Directive, ElementRef, OnInit, inject } from '@angular/core';\n\n@Directive({\n selector: '[ndwButton]',\n standalone: true,\n})\nexport class ButtonDirective implements OnInit {\n private readonly elementRef = inject(ElementRef);\n\n public get element(): HTMLButtonElement {\n return this.elementRef.nativeElement as HTMLButtonElement;\n }\n\n public ngOnInit(): void {\n // If the text content of a child node is longer than 35 characters, truncate it\n if (!this.element.childNodes.length) {\n return;\n }\n\n this.element.childNodes.forEach((node) => {\n if (node.nodeType === Node.TEXT_NODE) {\n if (!node.textContent) {\n return;\n }\n\n const text = node.textContent.trim();\n if (text.length > 35) {\n node.textContent = text.slice(0, 35) + '...';\n }\n }\n });\n }\n}\n","export enum AlertType {\n Negative = 'critical',\n Info = 'info',\n InfoGrey = 'info-grey',\n Warning = 'warning',\n}\n","import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\n\nimport { ButtonDirective } from '../button';\nimport { IconComponent } from '../icon';\nimport { AriaLive } from '../../models';\n\nimport { AlertType } from './alert.model';\n\n@Component({\n host: {\n '[attr.aria-live]': 'ariaLive()',\n '[class]': 'type()',\n '[class.actionable]': 'actionable()',\n role: 'alert',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ButtonDirective, IconComponent],\n selector: 'ndw-alert',\n standalone: true,\n styleUrl: './alert.component.scss',\n templateUrl: './alert.component.html',\n})\nexport class AlertComponent {\n /**\n * Whether the alert is actionable, shows a close icon and a title.\n */\n public actionable = input(false);\n\n /**\n * The title of the alert. Only used when actionable is true.\n */\n public title = input<string>();\n\n /**\n * Use info, info-grey, warning or critical to indicate the type of alert.\n */\n public type = input(AlertType.InfoGrey);\n\n /**\n * Use polite, assertive or off to indicate whether the alert is\n * announced automatically by the screen reader.\n */\n public ariaLive = input<AriaLive>('off');\n\n public close = output<void>();\n\n public onClose(): void {\n this.close.emit();\n }\n}\n","<section>\n <ndw-icon class=\"info-icon\">info</ndw-icon>\n @if (actionable()) {\n @if (title(); as title) {\n <h2>{{ title }}</h2>\n }\n\n <button\n ndwButton\n alternative\n extra-small\n tertiary\n class=\"close-button\"\n aria-label=\"Sluit melding\"\n (click)=\"onClose()\"\n >\n <ndw-icon>close</ndw-icon>\n </button>\n }\n</section>\n<ng-content />\n","export enum BannerType {\n Negative = 'critical',\n Info = 'info',\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n input,\n output,\n viewChild,\n} from '@angular/core';\n\nimport { AriaLive } from '../../models';\nimport { ButtonDirective } from '../button';\nimport { IconComponent } from '../icon';\n\nimport { BannerType } from './banner.model';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.aria-live]': 'ariaLive()',\n '[attr.title]': 'message()',\n '[class]': 'type()',\n '(window:resize)': 'setReadMore()',\n role: 'button',\n tabindex: '0',\n },\n imports: [ButtonDirective, IconComponent],\n selector: 'ndw-banner',\n standalone: true,\n styleUrl: './banner.component.scss',\n templateUrl: './banner.component.html',\n})\nexport class BannerComponent implements AfterViewInit {\n /**\n * The title of the banner.\n */\n public title = input.required<string>();\n\n /**\n * The message of the banner.\n */\n public message = input.required<string>();\n\n /**\n * The read more label if the message is truncated.\n */\n public readMoreLabel = input<string>('lees verder');\n\n /**\n * Use info, info-grey, warning or critical to indicate the type of banner.\n */\n public type = input(BannerType.Info);\n\n /**\n * Use polite, assertive or off to indicate whether the alert is\n * announced automatically by the screen reader.\n */\n public ariaLive = input<AriaLive>('off');\n\n /**\n * Emits when the banner close button is clicked.\n */\n public close = output<void>();\n\n public textContent = viewChild<ElementRef>('textContent');\n\n public showReadMore = false;\n\n public ngAfterViewInit(): void {\n this.setReadMore();\n }\n\n public onClose(event: MouseEvent): void {\n event.stopPropagation();\n this.close.emit();\n }\n\n private setReadMore(): void {\n this.showReadMore =\n this.textContent()?.nativeElement.scrollWidth > this.textContent()?.nativeElement.clientWidth;\n }\n}\n","<section>\n <ndw-icon class=\"info-icon\">info</ndw-icon>\n <p #textContent>\n <strong>{{ title() }}:</strong>\n {{ message() }}\n </p>\n @if (showReadMore) {\n <p>{{ readMoreLabel() }}</p>\n }\n</section>\n<button\n ndwButton\n alternative\n extra-small\n tertiary\n class=\"close-button\"\n aria-label=\"Sluit melding\"\n (click)=\"onClose($event)\"\n>\n <ndw-icon>close</ndw-icon>\n</button>\n","import { ChangeDetectionStrategy, Component, input, TemplateRef, viewChild } from '@angular/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ndw-breadcrumb',\n standalone: true,\n templateUrl: './breadcrumb.component.html',\n})\nexport class BreadcrumbComponent {\n public link = input<string | null>(null);\n\n public content = viewChild.required<TemplateRef<unknown>>('content');\n}\n","<ng-template #content>\n <ng-content />\n</ng-template>\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, contentChildren } from '@angular/core';\nimport { RouterLink } from '@angular/router';\n\nimport { BreadcrumbComponent } from '../breadcrumb';\nimport { IconComponent } from '../icon';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'aria-label': 'Breadcrumb',\n role: 'navigation',\n },\n imports: [IconComponent, NgTemplateOutlet, RouterLink],\n selector: 'ndw-breadcrumb-group',\n standalone: true,\n styleUrl: './breadcrumb-group.component.scss',\n templateUrl: './breadcrumb-group.component.html',\n})\nexport class BreadcrumbGroupComponent {\n protected breadcrumbs = contentChildren(BreadcrumbComponent);\n}\n","@for (breadcrumb of breadcrumbs(); track breadcrumb.link()) {\n @if ($count > 1 && $index === $count - 2) {\n <ndw-icon class=\"icon-back\" aria-hidden=\"true\">chevron_left</ndw-icon>\n }\n\n <a\n class=\"breadcrumb\"\n [class.current-page]=\"$last\"\n [class.show-on-small-screen]=\"$count === 1 || $index === $count - 2\"\n [attr.aria-current]=\"$last ? 'page' : null\"\n [routerLink]=\"$last ? null : breadcrumb.link()\"\n >\n <ng-template [ngTemplateOutlet]=\"breadcrumb.content()\"></ng-template>\n </a>\n\n @if (!$last) {\n <ndw-icon class=\"icon-forward\" aria-hidden=\"true\">chevron_right</ndw-icon>\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ndw-card-content',\n standalone: true,\n styleUrl: './card-content.component.scss',\n templateUrl: './card-content.component.html',\n})\nexport class CardContentComponent {}\n","<ng-content />\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ndw-card-footer',\n standalone: true,\n styleUrl: './card-footer.component.scss',\n templateUrl: './card-footer.component.html',\n})\nexport class CardFooterComponent {}\n","<ng-content />\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ndw-card-header',\n standalone: true,\n styleUrl: './card-header.component.scss',\n templateUrl: './card-header.component.html',\n})\nexport class CardHeaderComponent {}\n","<ng-content />\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ndw-card',\n standalone: true,\n styleUrl: './card.component.scss',\n templateUrl: './card.component.html',\n})\nexport class CardComponent {}\n","<ng-content />\n","import { CardContentComponent } from './card-content';\nimport { CardFooterComponent } from './card-footer';\nimport { CardHeaderComponent } from './card-header';\nimport { CardComponent } from './card.component';\n\nexport * from './card-content';\nexport * from './card-footer';\nexport * from './card-header';\nexport * from './card.component';\n\nexport const CARD_COMPONENTS = [\n CardComponent,\n CardHeaderComponent,\n CardContentComponent,\n CardFooterComponent,\n];\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { CardContentComponent } from '../card/card-content/card-content.component';\nimport { CardComponent } from '../card/card.component';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CardComponent, CardContentComponent],\n selector: 'ndw-dashboard-card',\n standalone: true,\n styleUrl: './dashboard-card.component.scss',\n templateUrl: './dashboard-card.component.html',\n})\nexport class DashboardCardComponent {\n /**\n * The title of the card.\n */\n public readonly title = input.required<string>();\n\n /**\n * The URL to the icon to display on the card. The icon is assumed to be rectangular.\n */\n public readonly imgSource = input.required<string>();\n\n /**\n * The url to open in a new window when the card is clicked.\n */\n public readonly link = input.required<string>();\n\n /**\n * Specifies where to open the linked document.\n * Valid values are `_blank`, `_parent`, `_self`, or `_top`.\n */\n public readonly linkTarget = input<string>('_blank');\n}\n","<a [href]=\"link()\" [target]=\"linkTarget()\" rel=\"noreferrer noopener\" [title]=\"title()\">\n <ndw-card class=\"card\">\n <ndw-card-content class=\"card-content\">\n <img [src]=\"imgSource()\" [alt]=\"title()\" />\n <span class=\"ndw-heading-sm title\">{{ title() }}</span>\n <div class=\"ndw-paragraph-md description\"><ng-content /></div>\n </ndw-card-content>\n </ndw-card>\n</a>\n","import { ConfigurableFocusTrapFactory } from '@angular/cdk/a11y';\nimport { ConnectedPosition, Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n DestroyRef,\n Directive,\n ElementRef,\n EventEmitter,\n inject,\n input,\n model,\n OnDestroy,\n Output,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { take } from 'rxjs';\n\n@Directive({\n exportAs: 'ndwPopoverTrigger',\n host: {\n '(click)': 'toggle()',\n },\n selector: '[ndwPopoverTrigger]',\n standalone: true,\n})\nexport class PopoverTriggerDirective implements OnDestroy {\n @Output() public popoverToggled = new EventEmitter<boolean>();\n public popoverPosition = input('nextToTriggerButton');\n public popoverContent = input.required<TemplateRef<unknown>>({ alias: 'ndwPopoverTrigger' });\n public toggleOnClick = input(true);\n public isOpen = model(false);\n\n public toggle(): void {\n if (!this.toggleOnClick()) {\n return;\n }\n this.isOpen.set(!this.isOpen());\n this.togglePopover();\n }\n\n private destroyRef = inject(DestroyRef);\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef<HTMLElement>);\n private overlay = inject(Overlay);\n private viewContainerRef = inject(ViewContainerRef);\n private focusTrapFactory = inject(ConfigurableFocusTrapFactory);\n\n private overlayRef?: OverlayRef;\n\n public ngOnDestroy(): void {\n this.isOpen.set(false);\n this.togglePopover();\n }\n\n public togglePopover(): void {\n if (this.isOpen()) {\n this.open();\n } else {\n this.close();\n }\n this.popoverToggled.emit(this.isOpen());\n }\n\n private open(): void {\n const positions: ConnectedPosition[] = this.getPopoverPosition(this.popoverPosition());\n const templatePortal = new TemplatePortal(this.popoverContent(), this.viewContainerRef);\n\n this.overlayRef = this.overlay.create({\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n positionStrategy: this.overlay\n .position()\n .flexibleConnectedTo(this.elementRef)\n .withPositions(positions),\n });\n this.overlayRef.attach(templatePortal);\n this.overlayRef.hostElement.addEventListener('click', (event: MouseEvent) => {\n const target = event.target as HTMLElement | null;\n if (this.nodeOrParentsHaveAttribute(target, 'ndwPopoverCloseTrigger')) {\n this.isOpen.set(false);\n this.togglePopover();\n }\n });\n\n this.trapFocus(this.overlayRef);\n this.closeOverlayOnEscapeKey(this.overlayRef);\n this.closeOverlayOnBackdropClick(this.overlayRef);\n }\n\n private trapFocus(overlayRef: OverlayRef): void {\n this.focusTrapFactory.create(overlayRef.overlayElement);\n }\n\n private closeOverlayOnEscapeKey(overlayRef: OverlayRef): void {\n overlayRef.overlayElement.onkeydown = (event: KeyboardEvent): void => {\n if (event.key === 'Escape') {\n this.isOpen.set(false);\n this.togglePopover();\n }\n };\n }\n\n private nodeOrParentsHaveAttribute(node: HTMLElement | null, attribute: string): boolean {\n let next = node;\n while (next) {\n if (next.hasAttribute(attribute)) {\n return true;\n }\n next = next.parentElement;\n }\n return false;\n }\n\n private closeOverlayOnBackdropClick(overlayRef: OverlayRef): void {\n overlayRef\n .backdropClick()\n .pipe(takeUntilDestroyed(this.destroyRef), take(1))\n .subscribe(() => {\n this.isOpen.set(false);\n this.togglePopover();\n });\n }\n\n private close(): void {\n this.overlayRef?.dispose();\n }\n\n private getPopoverPosition(popoverPosition: string): ConnectedPosition[] {\n if (popoverPosition === 'overTriggerButton') {\n return [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n panelClass: 'ndw-popover-panel',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom',\n panelClass: 'ndw-popover-panel',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n panelClass: 'ndw-popover-panel',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n panelClass: 'ndw-popover-panel',\n },\n ];\n }\n return [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 4,\n panelClass: 'ndw-popover-panel',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n offsetY: 4,\n panelClass: 'ndw-popover-panel',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -4,\n panelClass: 'ndw-popover-panel',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetY: -4,\n panelClass: 'ndw-popover-panel',\n },\n ];\n }\n}\n","import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\n\nimport { IconComponent } from '../icon';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.disabled]': 'disabled()',\n },\n imports: [IconComponent],\n selector: 'ndw-tag',\n standalone: true,\n styleUrl: './tag.component.scss',\n templateUrl: './tag.component.html',\n})\nexport class TagComponent {\n /**\n * Disables the tag\n */\n public disabled = input(false);\n\n /**\n * Aria label for the interactive button\n */\n public suffixAriaLabel = input('Verwijder');\n\n /**\n * The name of the icon to display\n */\n public suffixIcon = input('close');\n\n public onClick = output<Event>();\n}\n","<ng-content />\n<button\n type=\"button\"\n [attr.aria-label]=\"suffixAriaLabel()\"\n [disabled]=\"disabled()\"\n (click)=\"onClick.emit($event)\"\n>\n <ndw-icon>{{ suffixIcon() }}</ndw-icon>\n</button>\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n computed,\n input,\n output,\n viewChild,\n} from '@angular/core';\nimport { ButtonDirective } from '../button';\nimport { IconComponent } from '../icon';\nimport { PopoverTriggerDirective } from '../popover';\nimport { TagComponent } from '../tag';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ButtonDirective, PopoverTriggerDirective, IconComponent, TagComponent],\n selector: 'ndw-dropdown',\n styleUrl: 'dropdown.component.scss',\n templateUrl: 'dropdown.component.html',\n standalone: true,\n})\nexport class DropdownComponent {\n public readonly disabled = input(false);\n public readonly chevron = input();\n public readonly buttonText = input.required<string>();\n public readonly prefixIcon = input('');\n public readonly selectAmount = input(0);\n\n public readonly tagClicked = output<void>();\n public readonly isOpenChange = output<boolean>();\n\n public readonly popoverTrigger = viewChild.required(PopoverTriggerDirective);\n public readonly dropdownButton = viewChild.required<ElementRef>('dropdownButton');\n\n public readonly buttonIcon = computed(() =>\n this.popoverTrigger().isOpen() ? 'keyboard_arrow_up' : 'keyboard_arrow_down',\n );\n\n public onTagClicked($event: Event): void {\n $event.stopPropagation();\n this.tagClicked.emit();\n }\n\n public onKeyDown(event: KeyboardEvent): void {\n if (event.key === 'Escape') {\n this.popoverTrigger().isOpen.set(false);\n this.popoverTrigger().togglePopover();\n } else if (event.key === 'Enter' && !this.disabled()) {\n this.popoverTrigger().toggle();\n }\n }\n\n public closeDropdown(): void {\n this.dropdownButton().nativeElement.focus();\n }\n\n public onTagKeyDown(event: KeyboardEvent): void {\n if (event.key !== 'Enter' || this.disabled()) {\n return;\n }\n\n event.stopPropagation();\n event.preventDefault();\n\n this.tagClicked.emit();\n setTimeout(() => {\n this.dropdownButton().nativeElement.focus();\n });\n }\n\n public isOpenChanged(isOpen: boolean): void {\n this.isOpenChange.emit(isOpen);\n }\n}\n","<button\n type=\"button\"\n #dropdownButton\n ndwButton\n filter\n [ndwPopoverTrigger]=\"dropdownContent\"\n (isOpenChange)=\"isOpenChanged($event)\"\n (keydown)=\"onKeyDown($event)\"\n [disabled]=\"disabled()\"\n aria-haspopup=\"dialog\"\n>\n @if (prefixIcon(); as prefixIconName) {\n <ndw-icon class=\"dropdown-prefix-icon\">{{ prefixIconName }}</ndw-icon>\n }\n\n {{ buttonText() }}\n\n @if (selectAmount()) {\n <ndw-tag\n [attr.disabled]=\"disabled() ? true : null\"\n (keydown)=\"onTagKeyDown($event)\"\n (onClick)=\"onTagClicked($event)\"\n >\n {{ selectAmount() }}\n </ndw-tag>\n }\n\n @if (chevron()) {\n <ndw-icon class=\"button-icon\">{{ buttonIcon() }}</ndw-icon>\n }\n</button>\n\n<ng-template #dropdownContent>\n <div role=\"dialog\" (keydown.escape)=\"closeDropdown()\">\n <ng-content />\n </div>\n</ng-template>\n","import { FocusableOption, FocusOrigin } from '@angular/cdk/a11y';\nimport {\n ChangeDetectorRef,\n Component,\n ElementRef,\n ChangeDetectionStrategy,\n EventEmitter,\n inject,\n OnDestroy,\n input,\n} from '@angular/core';\nimport { AutocompleteOptionSelectionChange } from './autosuggest-option.component';\nimport { hasModifierKey } from '@angular/cdk/keycodes';\nimport { AutosuggestOption } from './autosuggest-option.model';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n})\nexport abstract class BaseAutosuggestOptionComponent implements FocusableOption, OnDestroy {\n public readonly value = input<AutosuggestOption>();\n public readonly selectionChange = new EventEmitter<AutocompleteOptionSelectionChange>();\n\n protected _active = false;\n protected _selected = false;\n\n public get active(): boolean {\n return this._active;\n }\n\n public get selected(): boolean {\n return this._selected;\n }\n\n private readonly element = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n\n // This method is used by FocusableOption\n public focus(_origin?: FocusOrigin, options?: FocusOptions): void {\n const element = this.element.nativeElement;\n\n if (typeof element.focus === 'function') {\n element.focus(options);\n }\n }\n\n // This method is used by the KeyManager\n public setActiveStyles(): void {\n if (!this._active) {\n this._active = true;\n this.changeDetectorRef.markForCheck();\n }\n }\n\n // This method is used by KeyManager\n public setInactiveStyles(): void {\n if (this._active) {\n this._active = false;\n this.changeDetectorRef.markForCheck();\n }\n }\n\n public select(emitEvent = true): void {\n if (!this._selected) {\n this._selected = true;\n this.changeDetectorRef.markForCheck();\n\n if (emitEvent) {\n this.emitSelectionChangeEvent();\n }\n }\n }\n\n public deselect(emitEvent = true): void {\n if (this._selected) {\n this._selected = false;\n this.changeDetectorRef.markForCheck();\n\n if (emitEvent) {\n this.emitSelectionChangeEvent();\n }\n }\n }\n\n public handleKeydown(event: KeyboardEvent): void {\n if ((event.key === 'Enter' || event.key === 'Space') && !hasModifierKey(event)) {\n this.selectViaInteraction();\n event.preventDefault();\n }\n }\n\n public selectViaInteraction(): void {\n this._selected = true;\n this.changeDetectorRef.markForCheck();\n this.emitSelectionChangeEvent(true);\n }\n\n protected abstract emitSelectionChangeEvent(isUserInput?: boolean): void;\n\n public ngOnDestroy(): void {\n this.selectionChange.complete();\n }\n\n protected getHostElement(): HTMLElement {\n return this.element.nativeElement;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'matchBold',\n standalone: true,\n})\nexport class MatchBoldPipe implements PipeTransform {\n public transform(value: unknown, searchTerm: string): string {\n if (!searchTerm || typeof value !== 'string') {\n return `${value}`;\n }\n\n const regex = new RegExp(`(${searchTerm})`, 'gi');\n return value.replace(regex, '<b>$1</b>');\n }\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { AutosuggestAddOptionComponent } from '../autosuggest-add-option';\nimport { BaseAutosuggestOptionComponent } from './base-autosuggest-option.component';\nimport { MatchBoldPipe } from '../match-bold.pipe';\n\nexport class AutocompleteOptionSelectionChange {\n public constructor(\n public source: AutosuggestOptionComponent | AutosuggestAddOptionComponent,\n public isUserInput = false,\n ) {}\n}\n\n@Component({\n selector: 'ndw-autosuggest-option',\n standalone: true,\n imports: [MatchBoldPipe],\n templateUrl: './autosuggest-option.component.html',\n styleUrl: './autosuggest-option.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'option',\n '[id]': 'id',\n class: 'ndw-autosuggest-option',\n '[class.ndw-autosuggest-option--selected]': 'selected',\n '[class.ndw-autosuggest-option--active]': 'active',\n '[attr.aria-selected]': 'selected',\n '(click)': 'selectViaInteraction()',\n '(keydown)': 'handleKeydown($event)',\n },\n})\nexport class AutosuggestOptionComponent extends BaseAutosuggestOptionComponent {\n public readonly searchTerm = input<string>('');\n public readonly label = input.required<string>();\n\n public id: string;\n\n public get viewValue(): string {\n return (this.getHostElement().textContent ?? '').trim();\n }\n\n public constructor() {\n super();\n this.id = `ndw-option-${crypto.randomUUID()}`;\n }\n\n // getLabel is required in the FocusableOption interface, which is\n // implemented by BaseAutosuggestOptionComponent\n public getLabel(): string {\n return this.viewValue;\n }\n\n protected emitSelectionChangeEvent(isUserInput = false): void {\n this.selectionChange.emit(new AutocompleteOptionSelectionChange(this, isUserInput));\n }\n}\n","<span class=\"ndw-option-text\" [innerHTML]=\"label() | matchBold: searchTerm()\"></span>\n","export const INPUT_CONTAINER_CLASS = 'input-container';\n","/* eslint max-lines: off */\n\n// Based on https://github.com/angular/components/tree/main/src/material/autocomplete\n\nimport { hasModifierKey } from '@angular/cdk/keycodes';\nimport {\n ConnectionPositionPair,\n FlexibleConnectedPositionStrategy,\n Overlay,\n OverlayConfig,\n OverlayRef,\n ViewportRuler,\n} from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n DestroyRef,\n Directive,\n ElementRef,\n forwardRef,\n inject,\n input,\n NgZone,\n OnDestroy,\n output,\n ViewContainerRef,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n defer,\n delay,\n filter,\n fromEvent,\n map,\n merge,\n Observable,\n of,\n Subject,\n Subscription,\n switchMap,\n take,\n} from 'rxjs';\nimport { AutosuggestAddOptionComponent } from './autosuggest-add-option';\nimport {\n AutocompleteOptionSelectionChange,\n AutosuggestOptionComponent,\n} from './autosuggest-option/autosuggest-option.component';\nimport { AutosuggestPanelComponent } from './autosuggest-panel/autosuggest-panel.component';\nimport { INPUT_CONTAINER_CLASS } from '../form-field.constant';\nimport { AutosuggestOption } from './autosuggest-option/autosuggest-option.model';\n\n@Directive({\n selector: 'input[ndwAutosuggest], textarea[ndwAutosuggest]',\n exportAs: 'ndwAutosuggestTrigger',\n standalone: true,\n host: {\n '[attr.role]': '\"combobox\"',\n '[attr.autocomplete]': '\"off\"',\n '[attr.aria-autocomplete]': '\"list\"',\n '[attr.aria-activedescendant]': '(panelOpen && activeOption) ? activeOption.id : null',\n '[attr.aria-expanded]': 'panelOpen.toString()',\n '[attr.aria-owns]': '!panelOpen ? null : ndwAutosuggest()?.id',\n '[attr.aria-haspopup]': '\"true\"',\n '(focus)': 'handleFocus()',\n '(blur)': 'onTouched()',\n '(input)': 'handleInput($event)',\n '(keydown)': 'handleKeydown($event)',\n '(click)': 'handleClick()',\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AutosuggestDirective),\n multi: true,\n },\n ],\n})\nexport class AutosuggestDirective implements ControlValueAccessor, AfterViewInit, OnDestroy {\n public readonly ndwAutosuggest = input.required<AutosuggestPanelComponent>();\n\n public readonly filter = output<string>();\n\n private overlayAttached = false;\n private overlayRef: OverlayRef | null = null;\n private portal: TemplatePortal | undefined;\n private previousValue: string | number | null | undefined;\n private closingActionsSubscription: Subscription | undefined;\n private keydownSubscription: Subscription | undefined;\n private canOpenOnNextFocus = true;\n private valueOnAttach: string | number | null = null;\n private valueOnLastKeydown: string | null = null;\n private readonly closeKeyEventStream = new Subject<void>();\n\n private readonly zone = inject(NgZone);\n private readonly element = inject<ElementRef<HTMLInputElement>>(ElementRef);\n private readonly viewContainerRef = inject(ViewContainerRef);\n private readonly overlay = inject(Overlay);\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n private readonly document = inject(DOCUMENT);\n private readonly viewportRuler = inject(ViewportRuler);\n private readonly destroyRef = inject(DestroyRef);\n\n public get panelOpen(): boolean {\n return this.overlayAttached && !!this.autosuggest?.showPanel;\n }\n\n public get activeOption(): AutosuggestOptionComponent | AutosuggestAddOptionComponent | null {\n const keyManager = this.autosuggest?.keyManager;\n return keyManager?.activeItem ?? null;\n }\n\n public get autosuggest(): AutosuggestPanelComponent {\n return this.ndwAutosuggest();\n }\n\n private get panelClosingActions(): Observable<AutocompleteOptionSelectionChange | null> {\n return merge(\n this.optionSelections,\n this.autosuggest!.keyManager!.tabOut.pipe(filter(() => this.overlayAttached)),\n this.closeKeyEventStream,\n this.getOutsideClickStream(),\n this.overlayRef\n ? this.overlayRef.detachments().pipe(filter(() => this.overlayAttached))\n : of(),\n ).pipe(map((event) => (event instanceof AutocompleteOptionSelectionChange ? event : null)));\n }\n\n private readonly optionSelections: Observable<AutocompleteOptionSelectionChange> = defer(() => {\n const options = this.autosuggest.items;\n\n if (this.autosuggest && options) {\n return merge(...options.map((option) => option.selectionChange));\n }\n\n return this.zone.onStable.asObservable().pipe(\n take(1),\n switchMap(() => this.optionSelections),\n );\n });\n\n public ngAfterViewInit(): void {\n const window = this.getWindow();\n\n if (typeof window !== 'undefined') {\n this.zone.runOutsideAngular(() => {\n window.addEventListener('blur', this.windowBlurHandler);\n });\n }\n }\n\n public ngOnDestroy(): void {\n const window = this.getWindow();\n\n if (typeof window !== 'undefined') {\n window.removeEventListener('blur', this.windowBlurHandler);\n }\n\n this.closingActionsSubscription?.unsubscribe();\n this.keydownSubscription?.unsubscribe();\n this.closeKeyEventStream.complete();\n this.destroyPanel();\n }\n\n public openPanel(valueOnAttach: string = this.element.nativeElement.value): void {\n this.attachOverlay(valueOnAttach);\n }\n\n public closePanel(): void {\n if (!this.overlayAttached) {\n return;\n }\n\n if (this.panelOpen) {\n this.autosuggest.closed?.emit();\n }\n\n this.autosuggest!.isOpen = false;\n this.overlayAttached = false;\n\n if (this.overlayRef?.hasAttached()) {\n this.overlayRef.detach();\n this.closingActionsSubscription?.unsubscribe();\n this.keydownSubscription?.unsubscribe();\n }\n\n this.changeDetectorRef.detectChanges();\n\n // Dispatch an input event to trigger the form-field component change detection.\n this.element.nativeElement.dispatchEvent(new Event('input'));\n }\n\n public handleFocus(): void {\n this.filter.emit(this.element.nativeElement.value);\n\n if (!this.canOpenOnNextFocus) {\n this.canOpenOnNextFocus = true;\n this.blur();\n } else if (this.canOpen()) {\n this.previousValue = this.element.nativeElement.value;\n this.attachOverlay(this.previousValue);\n }\n }\n\n public writeValue(value: unknown): void {\n Promise.resolve(null).then(() => this.setTriggerValue(value as string));\n }\n\n public registerOnChange(fn: (value: unknown) => unknown): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => unknown): void {\n this.onTouched = fn;\n }\n\n public clearValue(): void {\n this.writeValue('');\n this.onChange('');\n }\n\n public handleClick(): void {\n if (this.canOpen() && !this.panelOpen) {\n this.openPanel();\n }\n }\n\n public handleKeydown(event: KeyboardEvent): void {\n const code = event.code;\n\n if (event.key === 'Escape') {\n event.preventDefault();\n }\n\n this.valueOnLastKeydown = this.element.nativeElement.value;\n\n if (this.activeOption && code === 'Enter' && this.panelOpen) {\n this.activeOption.selectViaInteraction();\n this.resetActiveItem();\n event.preventDefault();\n } else if (this.autosuggest) {\n const prevActiveItem = this.autosuggest.keyManager?.activeItem;\n const isArrowKey = code === 'ArrowUp' || code === 'ArrowDown';\n\n if (code === 'Tab' || (isArrowKey && this.panelOpen)) {\n this.autosuggest.keyManager?.onKeydown(event);\n } else if (isArrowKey && this.canOpen()) {\n this.openPanel();\n }\n\n if (isArrowKey || this.autosuggest.keyManager?.activeItem !== prevActiveItem) {\n this.scrollToOption();\n\n if (this.activeOption) {\n this.assignOptionValue(this.activeOption.value() ?? null);\n }\n }\n }\n }\n\n public handleInput(event: KeyboardEvent): void {\n const target = event.target as HTMLInputElement;\n let value: number | string | null = target.value;\n this.filter.emit(value);\n this.autosuggest.searchTerm.set(value);\n\n // Based on `NumberValueAccessor` from forms.\n if (target.type === 'number') {\n value = value === '' ? null : parseFloat(value);\n }\n\n if (this.previousValue !== value) {\n this.previousValue = value;\n\n if (!this.autosuggest) {\n this.onChange(value);\n }\n\n if (!value) {\n this.clearPreviousSelectedOption(null, true);\n }\n\n if (this.canOpen() && this.document.activeElement === event.target) {\n const valueOnAttach = this.valueOnLastKeydown ?? this.element.nativeElement.value;\n this.valueOnLastKeydown = null;\n this.openPanel(valueOnAttach);\n }\n }\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.element.nativeElement.disabled = isDisabled;\n }\n\n private readonly handlePanelKeydown = (event: KeyboardEvent): void => {\n if (\n (event.key === 'Escape' && !hasModifierKey(event)) ||\n (event.key === 'ArrowUp' && hasModifierKey(event, 'altKey'))\n ) {\n this.closeKeyEventStream.next();\n this.resetActiveItem();\n event.stopPropagation();\n event.preventDefault();\n }\n };\n\n private readonly windowBlurHandler = (): void => {\n this.canOpenOnNextFocus =\n this.document?.activeElement !== this.element.nativeElement || this.panelOpen;\n };\n\n public onChange: (value: unknown) => void = () => {};\n public onTouched = (): void => {};\n\n private destroyPanel(): void {\n if (this.overlayRef) {\n this.closePanel();\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n }\n\n private attachOverlay(valueOnAttach: string = this.element.nativeElement.value): void {\n if (!this.autosuggest) {\n throw Error('Cannot open autosuggest panel because the autosuggest is not defined.');\n }\n\n let overlayRef = this.overlayRef;\n\n if (!overlayRef) {\n this.portal = new TemplatePortal(this.autosuggest.template(), this.viewContainerRef);\n overlayRef = this.overlay.create(this.getOverlayConfig());\n this.overlayRef = overlayRef;\n\n this.viewportRuler\n .change()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n if (this.panelOpen && overlayRef) {\n overlayRef.updateSize({ width: this.getHostWidth() });\n }\n });\n\n this.initKeydownEvents();\n }\n\n if (overlayRef && !overlayRef.hasAttached()) {\n overlayRef.attach(this.portal);\n this.valueOnAttach = valueOnAttach;\n this.closingActionsSubscription = this.subscribeToClosingActions();\n this.keydownSubscription = overlayRef.keydownEvents().subscribe(this.handlePanelKeydown);\n }\n\n const wasOpen = this.panelOpen;\n this.autosuggest.setVisibility();\n this.autosuggest.isOpen = true;\n this.overlayAttached = true;\n\n if (this.panelOpen && wasOpen !== this.panelOpen) {\n this.autosuggest.opened.emit();\n }\n }\n\n private initKeydownEvents(): void {\n this.overlayRef?.keydownEvents()?.subscribe((event) => {\n if (event.code === 'ArrowUp' && event.altKey) {\n this.resetActiveItem();\n this.closeKeyEventStream.next();\n\n event.stopPropagation();\n event.preventDefault();\n this.blur();\n }\n });\n }\n\n private getOverlayConfig(): OverlayConfig {\n return new OverlayConfig({\n positionStrategy: this.getOverlayPosition(),\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n width: this.getHostWidth(),\n });\n }\n\n private getHostWidth(): number {\n return this.bindingElement().getBoundingClientRect().width;\n }\n\n private bindingElement(): HTMLElement {\n const element = this.element.nativeElement;\n const parentElement = element.parentElement;\n return parentElement?.classList?.contains(INPUT_CONTAINER_CLASS) ? parentElement : element;\n }\n\n private getOverlayPosition(): FlexibleConnectedPositionStrategy {\n const positions = [\n new ConnectionPositionPair(\n { originX: 'start', originY: 'bottom' },\n { overlayX: 'start', overlayY: 'top' },\n ),\n ];\n\n return this.overlay\n .position()\n .flexibleConnectedTo(this.bindingElement())\n .withPositions(positions)\n .withFlexibleDimensions(false)\n .withPush(false);\n }\n\n private resetActiveItem(): void {\n const activeItemIndex = 0;\n\n if (this.autosuggest.keyManager) {\n this.autosuggest.keyManager.setActiveItem(activeItemIndex);\n }\n }\n\n private blur(): void {\n this.element.nativeElement.blur();\n }\n\n private getOutsideClickStream(): Observable<Event> {\n return merge(fromEvent(this.document, 'click'), fromEvent(this.document, 'touchend')).pipe(\n filter((event: Event): boolean => {\n const clickTarget = event.target as HTMLElement;\n\n return (\n this.overlayAttached &&\n clickTarget !== this.element.nativeElement &&\n this.document.activeElement !== this.element.nativeElement &&\n !!this.overlayRef &&\n !this.overlayRef.overlayElement.contains(clickTarget)\n );\n }),\n );\n }\n\n private subscribeToClosingActions(): Subscription {\n const items = this.autosuggest!.items;\n\n const firstStable = this.zone.onStable.asObservable().pipe(take(1));\n const optionChanges = items.changes.pipe(delay(0));\n\n return merge(firstStable, optionChanges)\n .pipe(\n switchMap(() => {\n const wasOpen = this.panelOpen;\n this.resetActiveItem();\n this.autosuggest.setVisibility();\n\n if (this.panelOpen) {\n this.overlayRef?.updatePosition();\n\n if (wasOpen !== this.panelOpen) {\n this.autosuggest.opened?.emit();\n }\n }\n\n return this.panelClosingActions;\n }),\n take(1),\n )\n .subscribe((event) => this.setValueAndClose(event));\n }\n\n private setValueAndClose(event: AutocompleteOptionSelectionChange | null): void {\n const toSelect = event ? event.source : null;\n\n if (toSelect) {\n this.clearPreviousSelectedOption(toSelect);\n this.onChange(toSelect.value());\n this.assignOptionValue(toSelect.value() ?? null);\n this.autosuggest.emitSelectEvent(toSelect);\n this.element.nativeElement.focus();\n } else if (this.element.nativeElement.value !== this.valueOnAttach) {\n this.clearPreviousSelectedOption(null);\n this.assignOptionValue(null);\n this.onChange(null);\n }\n\n this.closePanel();\n }\n\n private assignOptionValue(value: AutosuggestOption | null): void {\n const toDisplay = this.getDisplayValue(value);\n\n if (value == null) {\n this.clearPreviousSelectedOption(null, false);\n }\n\n this.updateNativeInputValue(toDisplay ?? '');\n }\n\n private getDisplayValue(value: AutosuggestOption | null): string {\n if (!value) {\n return '';\n }\n\n const displayWithFn = this.autosuggest.displayWith();\n return this.autosuggest && displayWithFn ? displayWithFn(value) : (value as string);\n }\n\n private updateNativeInputValue(value: string): void {\n this.element.nativeElement.value = value;\n this.previousValue = value;\n this.changeDetectorRef.markForCheck();\n }\n\n private scrollToOption(): void {\n const index = this.autosuggest.keyManager?.activeItemIndex ?? 0;\n\n if (index === 0) {\n this.autosuggest.setScrollTop(0);\n } else {\n const newScrollPosition = index * 26;\n this.autosuggest.setScrollTop(newScrollPosition);\n }\n }\n\n private setTriggerValue(value: string): void {\n const inputValue = value ?? '';\n\n this.element.nativeElement.value = inputValue;\n this.previousValue = inputValue;\n }\n\n private clearPreviousSelectedOption(\n skip: AutosuggestOptionComponent | AutosuggestAddOptionComponent | null,\n emitEvent?: boolean,\n ): void {\n this.onChange(null);\n this.autosuggest.items?.forEach((option) => {\n if (option !== skip && option.selected) {\n option.deselect(emitEvent);\n }\n });\n }\n\n private canOpen(): boolean {\n const element = this.element.nativeElement;\n return !element.readOnly && !element.disabled;\n }\n\n private getWindow(): Window {\n return this.document?.defaultView ?? window;\n }\n}\n","import { ChangeDetectionStrategy, Component, output } from '@angular/core';\nimport { IconComponent } from '../../../icon';\nimport {\n AutocompleteOptionSelectionChange,\n BaseAutosuggestOptionComponent,\n} from '../autosuggest-option';\n\n@Component({\n selector: 'ndw-autosuggest-add-option',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [IconComponent],\n templateUrl: './autosuggest-add-option.component.html',\n styleUrl: '../autosuggest-option/autosuggest-option.component.scss',\n host: {\n role: 'option',\n class: 'ndw-autosuggest-option ndw-autosuggest-option--add',\n '[class.ndw-autosuggest-option--active]': 'active',\n '[class.ndw-autosuggest-option--selected]': 'selected',\n '[attr.aria-selected]': 'selected',\n '(click)': 'selectViaInteraction()',\n '(keydown)': 'handleKeydown($event)',\n },\n})\nexport class AutosuggestAddOptionComponent extends BaseAutosuggestOptionComponent {\n public readonly addOption = output<string>();\n\n protected emitSelectionChangeEvent(isUserInput = false): void {\n this.addOption.emit(this.value() as string);\n this.selectionChange.emit(new AutocompleteOptionSelectionChange(this, isUserInput));\n }\n}\n","<ndw-icon [size]=\"'sm'\">add</ndw-icon> Voeg <span class=\"truncate\">'{{ value() }}'</span> toe\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n OnDestroy,\n output,\n QueryList,\n signal,\n TemplateRef,\n viewChild,\n ViewChildren,\n} from '@angular/core';\n\nimport { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { IconComponent } from '../../../icon';\nimport { AutosuggestAddOptionComponent } from '../autosuggest-add-option';\nimport { AutosuggestOptionComponent } from '../autosuggest-option';\nimport {\n AutosuggestOption,\n AutosuggestOptions,\n} from '../autosuggest-option/autosuggest-option.model';\nimport { NgTemplateOutlet } from '@angular/common';\n\nconst DEFAULTMAXRESULTS = 100;\nconst DEFAULTNORESULTTEXT = 'Geen resultaten gevonden. Probeer een andere zoekterm.';\n\n@Component({\n selector: 'ndw-autosuggest',\n standalone: true,\n imports: [\n AutosuggestOptionComponent,\n AutosuggestAddOptionComponent,\n IconComponent,\n NgTemplateOutlet,\n ],\n templateUrl: './autosuggest-panel.component.html',\n styleUrl: './autosuggest-panel.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'apAutocomplete',\n})\nexport class AutosuggestPanelComponent implements AfterViewInit, OnDestroy {\n // Inputs\n public readonly suggestions = input<AutosuggestOptions>([]);\n public readonly enableAddOption = input<boolean>(false);\n public readonly maxResults = input<number>(DEFAULTMAXRESULTS);\n public readonly noResultText = input<string>(DEFAULTNORESULTTEXT);\n public readonly displayWith = input<(value: AutosuggestOption) => string>();\n\n // Outputs\n public readonly opened = output<void>();\n public readonly closed = output<void>();\n public readonly optionSelected = output<AutosuggestOption | null>();\n public readonly addOption = output<string>();\n\n // View References\n @ViewChildren('option')\n public items!: QueryList<AutosuggestOptionComponent | AutosuggestAddOptionComponent>;\n public readonly template = viewChild.required(TemplateRef);\n public readonly panel = viewChild.required<ElementRef<HTMLDivElement>>('panel');\n\n // Variables & Signals\n public readonly searchTerm = signal<string>('');\n public readonly slicedOptions = computed(() => this.suggestions().slice(0, this.maxResults()));\n public readonly hasMoreResults = computed(() => this.suggestions().length > this.maxResults());\n public readonly numberOfLeftOverResults = computed(\n () => this.suggestions().length - this.maxResults(),\n );\n\n public keyManager:\n | ActiveDescendantKeyManager<AutosuggestOptionComponent | AutosuggestAddOptionComponent>\n | undefined;\n public showPanel = false;\n public id: string;\n public isOpen = false;\n\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n\n public constructor() {\n this.id = `ndw-autosuggest-${crypto.randomUUID()}`;\n }\n\n public ngAfterViewInit(): void {\n this.keyManager = new ActiveDescendantKeyManager<\n AutosuggestOptionComponent | AutosuggestAddOptionComponent\n >(this.items)\n .withPageUpDown()\n .withWrap()\n .withTypeAhead();\n this.setVisibility();\n }\n\n public ngOnDestroy(): void {\n this.keyManager?.destroy();\n }\n\n // Methods\n public getLabelOption(option: AutosuggestOption): string {\n const displayFn = this.displayWith();\n return displayFn ? displayFn(option) : (option as string);\n }\n\n public setScrollTop(scrollTop: number): void {\n const panel = this.panel();\n\n if (panel) {\n panel.nativeElement.scrollTop = scrollTop;\n }\n }\n\n public setVisibility(): void {\n this.showPanel = !!this.items?.length;\n this.changeDetectorRef.markForCheck();\n }\n\n public emitSelectEvent(option: AutosuggestOptionComponent | AutosuggestAddOptionComponent): void {\n this.optionSelected.emit(option.value() ?? null);\n }\n\n public addNewOption(value: string): void {\n this.optionSelected.emit(value);\n this.addOption.emit(value);\n }\n}\n","<ng-template>\n @if (suggestions().length === 0 && !enableAddOption()) {\n <div class=\"ndw-autosuggest-panel\">\n <ng-container *ngTemplateOutlet=\"emptyResults\"></ng-container>\n </div>\n } @else {\n <datalist #panel class=\"ndw-autosuggest-panel\">\n @for (option of slicedOptions(); track option) {\n <ndw-autosuggest-option\n #option\n [value]=\"option\"\n [label]=\"getLabelOption(option)\"\n [searchTerm]=\"searchTerm()\"\n />\n }\n\n @if (enableAddOption()) {\n @if (!!searchTerm().trim()) {\n <ndw-autosuggest-add-option\n #option\n [value]=\"searchTerm()\"\n (addOption)=\"addNewOption($event)\"\n />\n } @else if (!suggestions().length) {\n <ng-container *ngTemplateOutlet=\"emptyResults\"></ng-container>\n }\n }\n\n @if (hasMoreResults()) {\n <p class=\"ndw-autosuggest-panel__more-results\">\n Er zijn nog {{ numberOfLeftOverResults() }} niet-getoonde resultaten, maak je zoekopdracht\n specifieker\n </p>\n }\n </datalist>\n }\n</ng-template>\n\n<ng-template #emptyResults>\n <div class=\"ndw-autosuggest-panel__empty\">\n <ndw-icon>sentiment_dissatisfied</ndw-icon>\n {{ noResultText() }}\n </div>\n</ng-template>\n","import { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, input, model } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { IconComponent } from '../../icon';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.checked]': 'checked()',\n '[class.disabled]': 'disabled()',\n '[class.indeterminate]': 'indeterminate()',\n },\n imports: [IconComponent, NgClass],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: CheckboxComponent,\n multi: true,\n },\n ],\n selector: 'ndw-checkbox',\n standalone: true,\n styleUrls: ['../checkable-input.scss', './checkbox.component.scss'],\n templateUrl: './checkbox.component.html',\n})\nexport class CheckboxComponent implements ControlValueAccessor {\n public checked = model(false);\n public switch = input(false);\n public disabled = input(false);\n public error = input(false);\n public success = input(false);\n public indeterminate = input(false);\n public required = input(false);\n\n public uuid = crypto.randomUUID();\n\n public onClick(): void {\n if (this.disabled()) {\n return;\n }\n\n this.checked.set(!this.checked());\n }\n\n public onKeyDown(event: KeyboardEvent): void {\n if (event.key !== 'Enter' || this.disabled()) {\n return;\n }\n\n this.checked.set(!this.checked());\n event.preventDefault();\n }\n\n public writeValue(value: boolean): void {\n this.checked.set(value);\n }\n\n public registerOnChange(fn: (value: boolean) => void): void {\n this.checked.subscribe(fn);\n }\n\n public registerOnTouched(): void {\n // noop\n }\n}\n","<input\n type=\"checkbox\"\n [id]=\"'checkbox-' + uuid\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [required]=\"required()\"\n aria-hidden=\"true\"\n/>\n<div\n [ngClass]=\"{ error: error(), success: success(), checkbox: !switch(), switch: switch() }\"\n role=\"checkbox\"\n [attr.aria-checked]=\"indeterminate() ? 'mixed' : checked()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-labelledby]=\"'checkbox-label-' + uuid\"\n (click)=\"onClick()\"\n (keydown)=\"onKeyDown($event)\"\n [tabindex]=\"disabled() ? -1 : 0\"\n>\n @if (!switch()) {\n @if (checked()) {\n <ndw-icon>check</ndw-icon>\n } @else if (indeterminate()) {\n <ndw-icon>remove</ndw-icon>\n }\n } @else {\n <span class=\"switch-icon\">\n @if (checked()) {\n <ndw-icon>check</ndw-icon>\n } @else {\n <ndw-icon>close</ndw-icon>\n }\n </span>\n }\n</div>\n<label\n id=\"checkbox-label-{{ uuid }}\"\n tabindex=\"-1\"\n [for]=\"'checkbox-' + uuid\"\n [ngClass]=\"{ 'switch-text': switch() }\"\n (click)=\"onClick()\"\n (keydown)=\"onKeyDown($event)\"\n>\n <ng-content />\n</label>\n","import { ChangeDetectionStrategy, Component, contentChildren } from '@angular/core';\nimport { CheckboxComponent } from '../checkbox';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ndw-checkbox-group',\n standalone: true,\n styleUrl: './checkbox-group.component.scss',\n templateUrl: './checkbox-group.component.html',\n})\nexport class CheckboxGroupComponent {\n public checkboxes = contentChildren(CheckboxComponent);\n}\n","<ng-content />\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { IconComponent } from '../../icon';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconComponent],\n selector: 'ndw-error',\n standalone: true,\n styleUrl: './error.component.scss',\n templateUrl: './error.component.html',\n})\nexport class ErrorComponent {}\n","<ndw-icon>warning</ndw-icon>\n<ng-content />\n","import {\n Component,\n viewChild,\n input,\n model,\n ElementRef,\n computed,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { IconComponent } from '../../icon';\n\nimport { FileUploadText } from './file-upload-text.interface';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.tabindex]': '!this.canEdit() ? -1 : 0',\n '[class.disabled]': 'disabled()',\n '[class.dragging]': 'draggingOver()',\n '[class.error]': 'error()',\n '[class.file-selected]': '!!selectedFile()',\n '[class.readonly]': 'readonly()',\n '[class.success]': 'success()',\n '(click)': 'onClick()',\n '(dragenter)': 'onDragEnter($event)',\n '(dragleave)': 'onDragLeave($event)',\n '(dragover)': 'onDragOver($event)',\n '(drop)': 'onDrop($event)',\n '(keydown)': 'onKeyDown($event)',\n },\n imports: [IconComponent],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: FileUploadComponent,\n multi: true,\n },\n ],\n selector: 'ndw-file-upload',\n standalone: true,\n styleUrl: './file-upload.component.scss',\n templateUrl: './file-upload.component.html',\n})\nexport class FileUploadComponent implements ControlValueAccessor {\n public readonly fileInputElement = viewChild.required<ElementRef<HTMLInputElement>>('fileInput');\n public readonly allowedFileTypeRegex = input<RegExp>();\n public readonly fileUploadText = input<FileUploadText>({ dragText: '', dragOverText: '' });\n public readonly uploadDate = input('');\n public readonly maxFileSizeInBytes = input(1000000);\n public readonly disabled = input(false);\n public readonly readonly = input(false);\n public readonly draggingOver = model(false);\n public readonly selectedFile = model<File | null>();\n public readonly error = model(false);\n public readonly success = model(false);\n public readonly incorrectFileType = model(false);\n public readonly incorrectFileSize = model(false);\n private readonly canEdit = computed(\n () => !this.selectedFile() && !this.disabled() && !this.readonly(),\n );\n\n public onKeyDown(event: KeyboardEvent): void {\n if (event.key !== 'Enter' && event.key !== ' ') {\n return;\n }\n\n const target = event.target as HTMLElement;\n if (target.tagName.toLowerCase() === 'button') {\n return;\n }\n\n if (this.canEdit()) {\n this.fileInputElement().nativeElement.click();\n }\n }\n\n public onClick(): void {\n if (this.canEdit()) {\n this.fileInputElement().nativeElement.click();\n }\n }\n\n public onDragLeave(event: DragEvent): void {\n event?.preventDefault();\n this.draggingOver.set(false);\n }\n\n public onDragOver(event: DragEvent): void {\n event?.preventDefault();\n if (this.canEdit()) {\n this.draggingOver.set(true);\n }\n }\n\n public onDragEnter(event: DragEvent): void {\n event?.preventDefault();\n if (this.canEdit()) {\n this.draggingOver.set(true);\n }\n }\n\n public onDrop(event: DragEvent): void {\n event.preventDefault();\n if (this.canEdit()) {\n const file: File | undefined = event.dataTransfer?.files[0];\n if (file) {\n this.selectFile(file);\n }\n this.draggingOver.set(false);\n }\n }\n\n public onDownloadFileClick(): void {\n const url = window.URL.createObjectURL(this.selectedFile()!);\n const linkElement = document.createElement('a');\n linkElement.href = url;\n linkElement.download = this.selectedFile()!.name;\n document.body.appendChild(linkElement);\n linkElement.click();\n document.body.removeChild(linkElement);\n window.URL.revokeObjectURL(url);\n }\n\n public onDeleteClick(event: Event): void {\n event?.stopPropagation();\n this.resetFile();\n this.incorrectFileType.set(false);\n this.incorrectFileSize.set(false);\n }\n\n public displayText(): string {\n if (!this.selectedFile()) {\n return this.draggingOver()\n ? this.fileUploadText().dragOverText\n : this.fileUploadText().dragText;\n } else {\n return '';\n }\n }\n\n public onFileSelected(event: Event): void {\n if (this.canEdit()) {\n const inputElement = event.target as HTMLInputElement;\n if (inputElement.files) {\n const file: File = inputElement.files[0];\n this.selectFile(file);\n }\n }\n }\n\n public writeValue(value: File): void {\n this.selectedFile.set(value);\n }\n\n public registerOnChange(fn: (value: File | null | undefined) => void): void {\n this.selectedFile.subscribe(fn);\n }\n\n public registerOnTouched(): void {\n // noop\n }\n\n private selectFile(file: File): void {\n if (!file) {\n return;\n }\n\n if (!this.correctFileType(file.type)) {\n this.resetFile();\n this.incorrectFileSize.set(false);\n this.incorrectFileType.set(true);\n return;\n }\n\n if (!this.correctFileSize(file.size)) {\n this.resetFile();\n this.incorrectFileType.set(false);\n this.incorrectFileSize.set(true);\n return;\n }\n\n this.incorrectFileSize.set(false);\n this.incorrectFileType.set(false);\n\n this.selectedFile.set(file);\n }\n\n private resetFile(): void {\n this.selectedFile.set(null);\n this.fileInputElement().nativeElement.value = '';\n }\n\n private correctFileSize(fileSize: number): boolean {\n return this.maxFileSizeInBytes() > fileSize;\n }\n\n private correctFileType(fileType: string): boolean {\n return this.allowedFileTypeRegex()?.test(fileType) ? true : false;\n }\n}\n","@if (!draggingOver() && !selectedFile()) {\n <ndw-icon>cloud_upload</ndw-icon>\n} @else if (draggingOver() && !selectedFile()) {\n <ndw-icon>pageless</ndw-icon>\n}\n\n{{ displayText() }}\n\n@if (selectedFile()) {\n <div class=\"file-name\">\n <button\n class=\"file-name-text\"\n (click)=\"onDownloadFileClick()\"\n (keydown.enter)=\"onDownloadFileClick()\"\n >\n {{ selectedFile()?.name }}\n </button>\n\n <div class=\"file-delete-icon\">\n <button (click)=\"onDeleteClick($event)\" (keydown.enter)=\"onDeleteClick($event)\">\n <ndw-icon>delete</ndw-icon>\n </button>\n </div>\n </div>\n\n <p class=\"file-date\">\n {{ uploadDate() }}\n </p>\n}\n\n<input type=\"file\" #fileInput hidden aria-hidden=\"true\" (change)=\"onFileSelected($event)\" />\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'tooltip',\n },\n selector: 'ndw-tooltip',\n standalone: true,\n styleUrl: './tooltip.component.scss',\n templateUrl: './tooltip.component.html',\n})\nexport class TooltipComponent {\n public text = input.required<string>();\n}\n","{{ text() }}\n","import { FlexibleConnectedPositionStrategy, Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n ComponentRef,\n Directive,\n ElementRef,\n inject,\n input,\n OnChanges,\n OnDestroy,\n OnInit,\n} from '@angular/core';\n\nimport { TooltipComponent } from './tooltip.component';\nimport { AriaDescriber } from '@angular/cdk/a11y';\n\n@Directive({\n selector: '[ndwTooltip]',\n standalone: true,\n host: {\n 'aria-hidden': 'false',\n '(focus)': 'show()',\n '(blur)': 'hide()',\n '(document:keydown.escape)': 'hideOnEscape()',\n '(keydown.escape)': 'hide()',\n '(mouseenter)': 'show()',\n '(mouseleave)': 'hide()',\n tabindex: '0',\n },\n})\nexport class TooltipDirective implements OnChanges, OnDestroy, OnInit {\n public text = input.required<string>({ alias: 'ndwTooltip' });\n\n private readonly elementRef = inject(ElementRef);\n private readonly overlay = inject(Overlay);\n private readonly ariaDescriber = inject(AriaDescriber);\n\n private overlayRef: OverlayRef | null = null;\n\n public ngOnInit(): void {\n const positionStrategy = this.getFlexibleConnectedPositionStrategy();\n this.overlayRef = this.overlay.create({ positionStrategy });\n this.updateAriaDescription();\n }\n\n public ngOnChanges(): void {\n const positionStrategy = this.getFlexibleConnectedPositionStrategy();\n this.overlayRef?.updatePositionStrategy(positionStrategy);\n }\n\n public ngOnDestroy(): void {\n this.hide();\n this.overlayRef?.dispose();\n }\n\n protected show(): void {\n if (!this.text().length || this.overlayRef === null || this.overlayRef.hasAttached()) {\n return;\n }\n\n const portal = new ComponentPortal(TooltipComponent);\n const tooltipRef: ComponentRef<TooltipComponent> = this.overlayRef.attach(portal);\n tooltipRef.instance.text = this.text;\n }\n\n protected hide(): void {\n this.overlayRef?.detach();\n }\n\n protected hideOnEscape(): void {\n this.hide();\n }\n\n private updateAriaDescription(): void {\n const element = this.elementRef.nativeElement;\n this.ariaDescriber.describe(element, this.text());\n }\n\n private getFlexibleConnectedPositionStrategy(): FlexibleConnectedPositionStrategy {\n return this.overlay\n .position()\n .flexibleConnectedTo(this.elementRef.nativeElement)\n .withPositions([\n {\n offsetX: this.elementRef.nativeElement.offsetWidth / 2 - 16,\n offsetY: -8,\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n {\n offsetX: this.elementRef.nativeElement.offsetWidth / 2 - 16,\n offsetY: 8,\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n ]);\n }\n}\n","import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { IconComponent } from '../../icon';\nimport { InputDirective } from '../input/input.directive';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconComponent],\n selector: 'ndw-input-button',\n standalone: true,\n templateUrl: './input-button.component.html',\n})\nexport class InputButtonComponent {\n public readonly disabled = input(false);\n public readonly input = input<InputDirective>();\n public readonly ariaLabel = input<string>('');\n public readonly alternative = input<boolean>(false);\n\n public readonly buttonClicked = output();\n\n protected onClick(): void {\n this.input()?.element?.focus();\n this.buttonClicked.emit();\n }\n}\n","<button\n ndwButton\n extra-small\n tertiary\n type=\"button\"\n [attr.alternative]=\"alternative() ? true : null\"\n class=\"input-icon\"\n [class.disabled]=\"disabled()\"\n [attr.aria-label]=\"ariaLabel()\"\n (click)=\"onClick()\"\n>\n <ndw-icon>\n <ng-content />\n </ndw-icon>\n</button>\n","import {\n ChangeDetectionStrategy,\n Component,\n input,\n OnDestroy,\n OnInit,\n signal,\n} from '@angular/core';\nimport { InputButtonComponent } from '../input-button/input-button.component';\nimport { InputDirective } from '../input/input.directive';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [InputButtonComponent],\n selector: 'ndw-clear-search-button',\n standalone: true,\n styleUrls: ['./clear-search-button.component.scss'],\n templateUrl: './clear-search-button.component.html',\n})\nexport class ClearSearchButtonComponent implements OnInit, OnDestroy {\n public readonly disabled = input(false);\n public readonly input = input<InputDirective>();\n public readonly ariaLabel = input<string>('');\n\n protected readonly inputValue = signal<string>('');\n\n private readonly onInput = (): void => {\n this.inputValue.set(this.input()?.element.value ?? '');\n };\n\n public ngOnInit(): void {\n this.onInput();\n this.input()?.element.addEventListener('input', this.onInput);\n }\n\n public ngOnDestroy(): void {\n this.input()?.element.removeEventListener('input', this.onInput);\n }\n\n protected clear(): void {\n const inputElement = this.input()?.element;\n if (!inputElement) {\n return;\n }\n\n inputElement.value = '';\n inputElement.dispatchEvent(new Event('input'));\n this.inputValue.set('');\n }\n}\n","@if (inputValue() !== '') {\n <ndw-input-button [alternative]=\"true\" (buttonClicked)=\"clear()\">close</ndw-input-button>\n}\n","export enum FormFieldElement {\n Dropdown = 'ndw-dropdown',\n Input = 'input',\n Select = 'select',\n Textarea = 'textarea',\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ndw-info',\n standalone: true,\n styleUrl: './info.component.scss',\n templateUrl: './info.component.html',\n})\nexport class InfoComponent {}\n","<ng-content />\n","import { DestroyRef, Directive, ElementRef, inject, OnInit } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { AbstractControl, NgControl, Validators } from '@angular/forms';\nimport { fromEvent } from 'rxjs';\n\n@Directive({\n selector: 'input[ndwInput], select[ndwInput], textarea[ndwInput]',\n standalone: true,\n})\nexport class InputDirective implements OnInit {\n public set disabled(disabled: boolean) {\n this.element.disabled = disabled;\n }\n\n public set error(error: boolean) {\n this.element.toggleAttribute('error', error);\n }\n\n public set success(success: boolean) {\n this.element.toggleAttribute('success', success);\n }\n\n public set id(id: string) {\n this.element.id = id;\n }\n\n public set ariaDescribedBy(id: string) {\n this.element.setAttribute('aria-describedby', id);\n }\n\n private readonly elementRef = inject(ElementRef);\n private readonly destroyRef = inject(DestroyRef);\n private readonly ngControl = inject(NgControl, { optional: true });\n\n public get element(): HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement {\n return this.elementRef.nativeElement as\n | HTMLInputElement\n | HTMLSelectElement\n | HTMLTextAreaElement;\n }\n\n public get control(): AbstractControl | null {\n return this.ngControl ? this.ngControl.control : null;\n }\n\n public ngOnInit(): void {\n this.updateRequiredAttribute();\n\n this.control?.statusChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.updateRequiredAttribute());\n\n // Add ndw-changed attribute when the input is changed and has a value\n fromEvent(this.element, 'input')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.setSelectPlaceholderAttribute());\n\n this.setSelectPlaceholderAttribute();\n }\n\n private setSelectPlaceholderAttribute(): void {\n if (this.element instanceof HTMLSelectElement) {\n const isPlaceholderSelected =\n this.element.selectedIndex === 0 &&\n this.element.options[this.element.selectedIndex].disabled;\n this.element.toggleAttribute('ndw-placeholder', isPlaceholderSelected);\n }\n }\n\n private updateRequiredAttribute(): void {\n if (this.control) {\n // Mark element as required when the control has a 'required' validator.\n // This will show an asterisk (*)\n this.element.required = this.control.hasValidator(Validators.required);\n }\n }\n}\n","export enum InputType {\n Date = 'date',\n Email = 'email',\n Number = 'number',\n Password = 'password',\n Search = 'search',\n Tel = 'tel',\n Text = 'text',\n Time = 'time',\n Url = 'url',\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { IconComponent } from '../../icon';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconComponent],\n selector: 'ndw-input-icon',\n standalone: true,\n styleUrls: ['./input-icon.component.scss'],\n templateUrl: './input-icon.component.html',\n})\nexport class InputIconComponent {}\n","<ndw-icon class=\"input-icon\">\n <ng-content />\n</ndw-icon>\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ndw-option',\n standalone: true,\n template: '',\n})\nexport class OptionComponent {\n public value = input.required();\n public label = input.required<string>();\n public description = input<string>();\n public required = input(false);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChildren,\n inject,\n input,\n model,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl, Validators } from '@angular/forms';\n\nimport { ButtonDirective } from '../../button';\nimport { OptionGroupMode } from './option-group.model';\nimport { OptionComponent } from './option.component';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.required]': 'isRequiredOrHasRequiredValidator',\n '[class.grid-columns]': 'fluidColumns() !== null',\n '[style.gridTemplateColumns]': 'fluidColumnStyle()',\n },\n imports: [ButtonDirective],\n selector: 'ndw-option-group',\n standalone: true,\n styleUrls: ['./option-group.component.scss'],\n templateUrl: './option-group.component.html',\n})\nexport class OptionGroupComponent implements ControlValueAccessor {\n public readonly fluid = input(false);\n public readonly fluidColumns = input<number | null>(null);\n public readonly disabled = model(false);\n public readonly mode = input<OptionGroupMode>('multiple');\n public readonly required = input(false);\n public readonly children = contentChildren(OptionComponent);\n protected readonly checkedValues = model<unknown[]>([]);\n private readonly ngControl = inject(NgControl, { optional: true });\n protected readonly fluidColumnStyle = computed(() =>\n this.fluidColumns() ? `repeat(${this.fluidColumns()}, 1fr)` : null,\n );\n protected readonly uuid = crypto.randomUUID();\n\n public constructor() {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public get isRequiredOrHasRequiredValidator(): boolean | null {\n return this.required() || this.ngControl?.control?.hasValidator(Validators.required)\n ? true\n : null;\n }\n\n private onChange: (value: unknown[]) => void = () => {};\n\n protected toggleValue(value: unknown): void {\n if (this.mode() === 'single') {\n this.checkedValues.set([value]);\n this.onChange(this.checkedValues());\n } else {\n const state = [...this.checkedValues()];\n const index = state.indexOf(value);\n index >= 0 ? state.splice(index, 1) : state.push(value);\n this.checkedValues.set(state);\n this.onChange(this.checkedValues());\n }\n }\n\n public writeValue(value: unknown[]): void {\n this.checkedValues.set(value ?? []);\n }\n\n public registerOnChange(fn: (value: unknown[]) => void): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(): void {\n // noop\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n}\n","@for (child of children(); track child.value()) {\n <label\n ndwButton\n [class.fluid]=\"fluid() && fluidColumns() === null\"\n [class.gridCell]=\"fluidColumns() !== null\"\n [attr.disabled]=\"disabled() ? 'true' : null\"\n [attr.secondary]=\"checkedValues().includes(child.value()) ? null : 'true'\"\n [attr.aria-label]=\"child.description() ?? child.label()\"\n >\n <input\n [type]=\"mode() === 'multiple' ? 'checkbox' : 'radio'\"\n [name]=\"mode() === 'multiple' ? 'option-group-radio-' + uuid : null\"\n [value]=\"child.value()\"\n [disabled]=\"disabled()\"\n [checked]=\"checkedValues().includes(child.value())\"\n (change)=\"toggleValue(child.value())\"\n />\n {{ child.label() }}\n </label>\n}\n","export function createYearRange(minDate: Date, maxDate: Date): number[] {\n const minYear = minDate.getFullYear();\n const maxYear = maxDate.getFullYear();\n const yearCount = maxYear - minYear + 1;\n return Array.from({ length: yearCount }, (_, index) => minYear + index);\n}\n\nexport function createMonthOptions(monthLabels: string[]): { label: string; value: number }[] {\n return monthLabels.map((month, index) => ({\n label: month,\n value: index + 1,\n }));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n inject,\n input,\n model,\n OnInit,\n viewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor, FormsModule, NgControl } from '@angular/forms';\n\nimport { ButtonDirective } from '../../button';\nimport { IconComponent } from '../../icon';\nimport { PopoverTriggerDirective } from '../../popover';\nimport { InputDirective } from '../input';\nimport { OptionComponent, OptionGroupComponent } from '../option-group';\n\nimport { createMonthOptions, createYearRange } from './month-input-utils';\n\nconst defaultMonthLabels = [\n 'Jan',\n 'Feb',\n 'Mrt',\n 'Apr',\n 'Mei',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Okt',\n 'Nov',\n 'Dec',\n];\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FormsModule,\n IconComponent,\n PopoverTriggerDirective,\n OptionGroupComponent,\n OptionComponent,\n InputDirective,\n ButtonDirective,\n ],\n selector: 'ndw-month-input',\n standalone: true,\n styleUrl: './month-input.component.scss',\n templateUrl: './month-input.component.html',\n})\nexport class MonthInputComponent implements ControlValueAccessor, OnInit {\n public readonly disabled = model(false);\n public readonly required = input(false);\n public readonly showMonthPickerLabel = input<string>('Selecteer maand');\n public readonly placeholder = input<string>('JJJJ-MM');\n public readonly yearPlaceholder = input<string>('Jaar');\n public readonly minDate = input<Date>(new Date(2020, 0, 1));\n public readonly maxDate = input<Date>(new Date(2026, 11, 31));\n public readonly monthLabels = input<string[]>(defaultMonthLabels);\n public readonly input = viewChild(InputDirective);\n public readonly inputElement = computed(() => this.input()?.element);\n\n protected showMonthPicker = false;\n protected readonly selectedYear = model<number>(new Date().getFullYear());\n protected readonly selectedMonth = model<number | null>(null);\n protected readonly selectedDate = computed<Date | null>(() => {\n const year = this.selectedYear();\n const month = this.selectedMonth();\n const date = year && month ? new Date(year, month - 1, 1) : null;\n return date && date >= this.minDate() && date <= this.maxDate() ? date : null;\n });\n protected readonly inputValue = computed(() => {\n const year = this.selectedYear();\n const month = this.selectedMonth();\n return year && month ? `${year}-${month.toString().padStart(2, '0')}` : null;\n });\n protected readonly ngControl = inject(NgControl, { optional: true });\n\n protected readonly years = computed(() => createYearRange(this.minDate(), this.maxDate()));\n protected readonly months = computed(() => createMonthOptions(this.monthLabels()));\n\n private onChange: (value: Date | null) => void = () => {};\n private readonly destroyRef = inject(DestroyRef);\n\n public constructor() {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public ngOnInit(): void {\n if (this.ngControl) {\n this.ngControl.statusChanges?.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n const input = this.input();\n if (input && this.ngControl) {\n input.error = this.ngControl.invalid === true;\n }\n });\n }\n }\n\n public writeValue(value: Date | null): void {\n if (value) {\n this.selectedYear.set(value.getFullYear());\n this.selectedMonth.set(value.getMonth() + 1);\n } else {\n this.selectedYear.set(new Date().getFullYear());\n this.selectedMonth.set(null);\n }\n }\n\n public registerOnChange(fn: (value: Date | null) => void): void {\n this.onChange = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n\n public registerOnTouched(): void {\n // noop\n }\n\n protected onInputChanged(value: string): void {\n const [year, month] = value.split('-');\n this.selectedYear.set(parseInt(year, 10));\n this.selectedMonth.set(parseInt(month, 10));\n this.onChange(this.selectedDate());\n }\n\n protected onYearSelected(year: string): void {\n this.selectedYear.set(parseInt(year, 10));\n this.onChange(this.selectedDate());\n }\n\n protected onMonthSelected(month: number): void {\n this.selectedMonth.set(month);\n this.onChange(this.selectedDate());\n }\n\n protected onKeyDown(event: KeyboardEvent): void {\n if (event.key === 'ArrowDown') {\n this.adjustMonth(-1);\n event.preventDefault();\n return;\n } else if (event.key === 'ArrowUp') {\n this.adjustMonth(+1);\n event.preventDefault();\n return;\n }\n\n const currentValue = (event.target as HTMLInputElement)?.value;\n const validKeys = [];\n\n if (currentValue.length === 4) {\n validKeys.push('-');\n } else {\n validKeys.push('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');\n }\n\n const isValidKey = validKeys.includes(event.key);\n const isPrintableKey = event.key.length === 1; // Allow pressing special keys like F12, etc.\n if (!isValidKey && isPrintableKey) {\n event.preventDefault();\n }\n }\n\n private adjustMonth(monthIncrement: number): void {\n const now = new Date();\n const date = this.selectedDate() ?? new Date(now.getFullYear(), now.getMonth(), 1);\n\n const adjustedDate = new Date(date); // Prevent mutating this.selectedDate()\n adjustedDate.setMonth(adjustedDate.getMonth() + monthIncrement);\n\n if (adjustedDate >= this.minDate() && adjustedDate <= this.maxDate()) {\n this.writeValue(adjustedDate);\n this.onChange(this.selectedDate());\n }\n }\n}\n","<input\n ndwInput\n #input\n type=\"text\"\n minlength=\"6\"\n maxlength=\"7\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [required]=\"required()\"\n [value]=\"inputValue()\"\n (change)=\"onInputChanged(input.value)\"\n (keydown)=\"onKeyDown($event)\"\n/>\n\n<button\n ndwButton\n extra-small\n tertiary\n class=\"input-suffix-button\"\n [disabled]=\"disabled()\"\n [ariaLabel]=\"showMonthPickerLabel()\"\n (click)=\"showMonthPicker = !showMonthPicker\"\n [ndwPopoverTrigger]=\"monthPicker\"\n [popoverPosition]=\"'nextToTriggerButton'\"\n>\n <ndw-icon>calendar_month</ndw-icon>\n</button>\n\n<ng-template #monthPicker>\n <input\n ndwInput\n #yearSelect\n type=\"number\"\n [placeholder]=\"yearPlaceholder()\"\n [min]=\"minDate().getFullYear()\"\n [max]=\"maxDate().getFullYear()\"\n [ngModel]=\"selectedYear()\"\n (ngModelChange)=\"onYearSelected(yearSelect.value)\"\n />\n\n <ndw-option-group\n [ngModel]=\"selectedMonth() ? [selectedMonth()] : []\"\n (ngModelChange)=\"onMonthSelected($event?.[0])\"\n [fluid]=\"true\"\n [fluidColumns]=\"4\"\n mode=\"single\"\n >\n @for (month of months(); track month) {\n <ndw-option [label]=\"month.label\" [value]=\"month.value\">\n {{ month }}\n </ndw-option>\n }\n </ndw-option-group>\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n PLATFORM_ID,\n} from '@angular/core';\nimport { FormFieldElement } from '../form-field.model';\nimport { InputType } from '../input';\nimport { InputButtonComponent } from '../input-button/input-button.component';\nimport { InputDirective } from '../input/input.directive';\nimport { isPlatformBrowser } from '@angular/common';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [InputButtonComponent],\n selector: 'ndw-picker-button',\n standalone: true,\n templateUrl: './picker-button.component.html',\n})\nexport class PickerButtonComponent {\n public readonly disabled = input(false);\n public readonly input = input<InputDirective>();\n public readonly ariaLabel = input<string>('');\n public readonly required = input<InputType>();\n\n private readonly platform = inject(PLATFORM_ID);\n\n protected readonly icon = computed(() => this.getIcon());\n\n protected onClick(): void {\n const inputElement = this.input()?.element;\n if (!inputElement) {\n return;\n }\n\n if ('showPicker' in inputElement) {\n inputElement.showPicker();\n }\n }\n\n private getIcon(): string | undefined {\n let isFirefox = false;\n\n if (isPlatformBrowser(this.platform)) {\n isFirefox = navigator.userAgent.toLowerCase().includes('firefox');\n }\n\n switch (this.input()?.element.type) {\n case InputType.Date:\n // Firefox always shows its own date picker\n return isFirefox ? undefined : 'calendar_month';\n case InputType.Time:\n // Firefox always shows its own time picker\n return isFirefox ? undefined : 'schedule';\n }\n\n if (this.input()?.element.nodeName.toLowerCase() === FormFieldElement.Select) {\n return 'keyboard_arrow_down';\n }\n\n return undefined;\n }\n}\n","@if (icon(); as icon) {\n <ndw-input-button (buttonClicked)=\"onClick()\">{{ icon }}</ndw-input-button>\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { IconComponent } from '../../icon';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconComponent],\n selector: 'ndw-success',\n standalone: true,\n styleUrl: './success.component.scss',\n templateUrl: './success.component.html',\n})\nexport class SuccessComponent {}\n","<ndw-icon>check</ndw-icon>\n<ng-content />\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n effect,\n input,\n} from '@angular/core';\n\nimport { IconComponent } from '../icon';\nimport { TooltipDirective } from '../tooltip';\n\nimport { ClearSearchButtonComponent } from './clear-search-button/clear-search-button.component';\nimport { ErrorComponent } from './error';\nimport { FormFieldElement } from './form-field.model';\nimport { InfoComponent } from './info';\nimport { InputDirective, InputType } from './input';\nimport { InputIconComponent } from './input-icon';\nimport { MonthInputComponent } from './month-input';\nimport { PickerButtonComponent } from './picker-button/picker-button.component';\nimport { SuccessComponent } from './success';\nimport { INPUT_CONTAINER_CLASS } from './form-field.constant';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n ErrorComponent,\n SuccessComponent,\n IconComponent,\n InfoComponent,\n NgTemplateOutlet,\n TooltipDirective,\n InputIconComponent,\n ClearSearchButtonComponent,\n PickerButtonComponent,\n ],\n selector: 'ndw-form-field',\n standalone: true,\n styleUrl: './form-field.component.scss',\n templateUrl: './form-field.component.html',\n})\nexport class FormFieldComponent {\n public readonly label = input.required<string>();\n public readonly suffixAriaLabel = input<string>('');\n public readonly hideLabel = input<boolean>(false);\n\n public readonly disabled = input(false);\n public readonly error = input<string>();\n public readonly success = input<string>();\n public readonly info = input<string>();\n public readonly tooltip = input('');\n\n protected readonly monthInput = contentChild(MonthInputComponent);\n protected readonly regularInput = contentChild(InputDirective);\n protected readonly input = computed(() => this.regularInput() ?? this.monthInput()?.input());\n protected readonly inputType = computed(\n () => this.input()?.element.type as InputType | undefined,\n );\n protected readonly isSearchInput = computed(() => this.inputType() === InputType.Search);\n protected readonly hasPickerButton = computed(\n () =>\n this.inputType() === InputType.Date ||\n this.inputType() === InputType.Time ||\n this.input()?.element.nodeName.toLowerCase() === FormFieldElement.Select,\n );\n\n protected readonly uuid = crypto.randomUUID();\n protected readonly descriptionUuid = crypto.randomUUID();\n protected readonly inputContainerClass = INPUT_CONTAINER_CLASS;\n\n public constructor() {\n effect(() => {\n const input = this.input();\n if (!input) {\n return;\n }\n\n this.setInputDisabledState(input);\n this.setInputErrorState(input);\n this.setInputSuccessState(input);\n this.setInputId(input);\n this.setAriaDescribedBy(input);\n });\n }\n\n private setInputDisabledState(input: InputDirective): void {\n input.disabled = this.disabled();\n }\n\n private setInputErrorState(input: InputDirective): void {\n input.error = !!this.error()?.length;\n }\n\n private setInputSuccessState(input: InputDirective): void {\n input.success = !!this.success()?.length;\n }\n\n private setInputId(input: InputDirective): void {\n input.id = `input-${this.uuid}`;\n }\n\n private setAriaDescribedBy(input: InputDirective): void {\n input.ariaDescribedBy = this.descriptionUuid;\n }\n}\n","@if (input() === undefined) {\n <fieldset>\n <legend ndwLabel [class.sr-only]=\"hideLabel()\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\" />\n </legend>\n <ng-container *ngTemplateOutlet=\"fieldTemplate\" />\n </fieldset>\n} @else {\n <label ndwLabel [attr.for]=\"input() ? 'input-' + uuid : null\" [class.sr-only]=\"hideLabel()\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\" />\n </label>\n <ng-container *ngTemplateOutlet=\"fieldTemplate\" />\n}\n\n<ng-template #fieldTemplate>\n <div\n [class]=\"inputContainerClass\"\n [attr.success]=\"success() ? true : null\"\n [attr.error]=\"error() ? true : null\"\n [attr.disabled]=\"disabled() ? true : null\"\n [attr.readonly]=\"input()?.element?.hasAttribute('readonly') ? true : null\"\n >\n @if (isSearchInput()) {\n <ndw-input-icon>search</ndw-input-icon>\n }\n\n <ng-content />\n\n @if (isSearchInput()) {\n <ndw-clear-search-button\n [input]=\"input()\"\n [disabled]=\"disabled()\"\n [ariaLabel]=\"suffixAriaLabel()\"\n />\n }\n @if (hasPickerButton()) {\n <ndw-picker-button\n [input]=\"input()\"\n [disabled]=\"disabled()\"\n [ariaLabel]=\"suffixAriaLabel()\"\n />\n }\n </div>\n\n @if (info(); as info) {\n <ndw-info [id]=\"descriptionUuid\">{{ info }}</ndw-info>\n }\n @if (error(); as error) {\n <ndw-error role=\"alert\" aria-live=\"polite\">{{ error }}</ndw-error>\n }\n @if (success(); as success) {\n <ndw-success role=\"alert\" aria-live=\"polite\">{{ success }}</ndw-success>\n }\n</ng-template>\n\n<ng-template #labelTemplate>\n <span class=\"required-label required\"> * </span>\n {{ label() }}\n @if (tooltip(); as tooltip) {\n <ndw-icon [ndwTooltip]=\"tooltip\">info</ndw-icon>\n }\n</ng-template>\n","import { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, input, model } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.checked]': 'checked()',\n '[class.disabled]': 'disabled()',\n },\n imports: [NgClass],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: RadioButtonComponent,\n multi: true,\n },\n ],\n selector: 'ndw-radio-button',\n standalone: true,\n styleUrls: ['../checkable-input.scss', './radio-button.component.scss'],\n templateUrl: './radio-button.component.html',\n})\nexport class RadioButtonComponent implements ControlValueAccessor {\n public checked = model(false);\n public disabled = model(false);\n public error = input(false);\n public success = input(false);\n public name = model('');\n public required = input(false);\n public value = model();\n\n public uuid = crypto.randomUUID();\n\n public onClick(): void {\n if (this.disabled()) {\n return;\n }\n\n this.checked.set(true);\n }\n\n public onKeyDown(event: KeyboardEvent): void {\n if (event.key !== 'Enter' || this.disabled()) {\n return;\n }\n\n this.checked.set(true);\n event.preventDefault();\n }\n\n public writeValue(value: boolean): void {\n this.checked.set(value);\n }\n\n public registerOnChange(fn: (value: boolean) => void): void {\n this.checked.subscribe(fn);\n }\n\n public registerOnTouched(): void {\n // noop\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n}\n","<input\n type=\"radio\"\n [id]=\"'radio-button-' + uuid\"\n [name]=\"name()\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [required]=\"required()\"\n aria-hidden=\"true\"\n/>\n<div\n class=\"radio-button\"\n role=\"radio\"\n [ngClass]=\"{ error: error(), success: success() }\"\n [tabindex]=\"disabled() ? -1 : 0\"\n [attr.aria-checked]=\"checked()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-labelledby]=\"'radio-button-label-' + uuid\"\n (click)=\"onClick()\"\n (keydown)=\"onKeyDown($event)\"\n>\n @if (checked()) {\n <span class=\"check\"></span>\n }\n</div>\n<label\n tabindex=\"-1\"\n id=\"radio-button-label-{{ uuid }}\"\n [for]=\"'radio-button-' + uuid\"\n (click)=\"onClick()\"\n (keydown)=\"onKeyDown($event)\"\n>\n <ng-content />\n</label>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n contentChildren,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { RadioButtonComponent } from '../radio-button';\n\n@Component({\n host: {\n role: 'radiogroup',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: RadioGroupComponent,\n multi: true,\n },\n ],\n selector: 'ndw-radio-group',\n standalone: true,\n styleUrl: './radio-group.component.scss',\n templateUrl: './radio-group.component.html',\n})\nexport class RadioGroupComponent implements AfterContentInit, ControlValueAccessor {\n public radioButtons = contentChildren(RadioButtonComponent);\n\n private uuid = crypto.randomUUID();\n private onChange: (value: unknown) => void = () => {};\n\n public ngAfterContentInit(): void {\n this.setRadioButtonsName();\n this.handleCheckedChange();\n }\n\n public writeValue(value: unknown): void {\n this.radioButtons().forEach((radio) => {\n radio.checked.set(radio.value() === value);\n });\n }\n\n public registerOnChange(fn: (value: unknown) => void): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(): void {\n // Not implemented\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n this.radioButtons().forEach((radio) => radio.disabled.set(isDisabled));\n }\n\n private setRadioButtonsName(): void {\n this.radioButtons().forEach((radio) => {\n radio.name.set(this.uuid);\n });\n }\n\n private handleCheckedChange(): void {\n this.radioButtons().forEach((radio) => {\n radio.checked.subscribe((checked) => {\n if (!checked) {\n return;\n }\n\n this.radioButtons().forEach((otherRadio) => {\n if (otherRadio !== radio) {\n otherRadio.checked.set(false);\n }\n });\n\n this.onChange(radio.value());\n });\n });\n }\n}\n","<ng-content />\n","import { AfterViewInit, Directive, ElementRef, OnDestroy, inject } from '@angular/core';\n\n/**\n * Directive that automatically grows a textarea element to fit its content.\n *\n * Note that at this moment (2024-09-06) there is an experimental CSS property\n * `field-sizing: content;` that can be used to achieve the same effect. At this\n * moment not all browsers support this property (FF and Safari do not for example).\n *\n * So for now a directive is used to achieve the same effect.\n */\n@Directive({\n selector: 'textarea[ndwAutoGrow]',\n standalone: true,\n})\nexport class AutoGrowDirective implements AfterViewInit, OnDestroy {\n private readonly elementRef = inject(ElementRef);\n\n public get element(): HTMLTextAreaElement {\n return this.elementRef.nativeElement as HTMLTextAreaElement;\n }\n\n public ngAfterViewInit(): void {\n this.element.style.resize = 'none';\n this.element.style.overflow = 'hidden';\n this.element.addEventListener('input', fitContentInTextArea);\n // Use set timeout to make sure the textarea is rendered before\n // we set the initial height. This is needed for Firefox.\n setTimeout(() => fitContentInTextArea({ target: this.element }));\n }\n\n public ngOnDestroy(): void {\n this.element.removeEventListener('input', fitContentInTextArea);\n }\n}\n\nfunction fitContentInTextArea(event: Pick<Event, 'target'>): void {\n const element = event.target as HTMLTextAreaElement;\n element.style.height = 'auto'; // Make the textarea shrink when a lot of text is removed.\n element.style.height = `${element.scrollHeight}px`;\n}\n","export interface SimpleMenuItem {\n active?: boolean;\n id: number;\n label: string;\n callback?: (id: number) => void;\n}\n\nexport interface MenuItem extends SimpleMenuItem {\n children?: SimpleMenuItem[];\n icon?: string;\n notifications?: number;\n}\n\nexport enum NdwBrand {\n NDW = 'NDW',\n NWB = 'NWB',\n}\n","import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\n\nimport { SimpleMenuItem } from '../main-navigation';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ndw-main-navigation-menu',\n standalone: true,\n styleUrl: './main-navigation-menu.component.scss',\n templateUrl: './main-navigation-menu.component.html',\n})\nexport class MainNavigationMenuComponent {\n public menuItems = input.required<SimpleMenuItem[]>();\n public isMobile = input(false);\n\n public close = output<SimpleMenuItem>();\n\n public handleSelected(activeItem: SimpleMenuItem): void {\n activeItem.callback?.(activeItem.id);\n this.close.emit(activeItem);\n }\n}\n","@for (item of menuItems(); track item.id) {\n <button\n ndwButton\n menu\n [attr.clickable]=\"!!item.callback || undefined\"\n [attr.selected]=\"isMobile() || item.active || undefined\"\n (click)=\"handleSelected(item)\"\n >\n {{ item.label }}\n </button>\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { RouterLink } from '@angular/router';\n\nimport { BadgeComponent } from '../badge';\nimport { IconComponent } from '../icon';\nimport { MainNavigationMenuComponent } from '../main-navigation-menu';\nimport { TooltipDirective } from '../tooltip';\n\nexport const MAIN_NAVIGATION_IMPORTS = [\n BadgeComponent,\n CdkPortalOutlet,\n IconComponent,\n MainNavigationMenuComponent,\n NgClass,\n NgTemplateOutlet,\n OverlayModule,\n RouterLink,\n TooltipDirective,\n];\n","import { ConnectedPosition, Overlay, OverlayRef, PositionStrategy } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n OnDestroy,\n TemplateRef,\n ViewContainerRef,\n computed,\n inject,\n input,\n model,\n signal,\n viewChild,\n viewChildren,\n PLATFORM_ID,\n} from '@angular/core';\n\nimport { MainNavigationMenuComponent } from '../main-navigation-menu';\n\nimport { MenuItem, NdwBrand, SimpleMenuItem } from './main-navigation.model';\nimport { MAIN_NAVIGATION_IMPORTS } from './main-navigation.imports';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.brand]': 'brand().toLowerCase()',\n '[class.expanded]': 'isExpanded()',\n '[class.mobile]': 'isMobile()',\n '(document:mousemove)': 'onMouseMove($event)',\n '(window:resize)': 'onWindowResize()',\n },\n imports: MAIN_NAVIGATION_IMPORTS,\n selector: 'ndw-main-navigation',\n standalone: true,\n styleUrl: './main-navigation.component.scss',\n templateUrl: './main-navigation.component.html',\n})\nexport class MainNavigationComponent implements AfterViewInit, OnDestroy {\n public applicationName = input.required<string>();\n public topMenuItems = input.required<MenuItem[]>();\n public bottomMenuItems = input<MenuItem[]>();\n public brand = input(NdwBrand.NDW);\n public footerTexts = input<string[]>();\n public isCollapsible = input(true);\n public version = input<string>();\n // Mobile inputs\n public closeButtonLabel = input('Sluit');\n public menuButtonLabel = input('Menu');\n\n public isExpanded = model(true);\n public isMobileExpanded = model(false);\n\n public buttons = viewChildren<ElementRef<HTMLButtonElement>>('menuTrigger');\n public childMenuTemplate =\n viewChild.required<TemplateRef<MainNavigationMenuComponent>>('childMenu');\n\n public isMobile = signal(false);\n public brandImagePath = computed(() => {\n const brand = this.brand().toLowerCase();\n const variant = !this.isExpanded() && !this.isMobile() ? '-short' : '';\n return `assets/images/${brand}-logo${variant}.svg`;\n });\n #allMenuItems = computed(() => [...this.topMenuItems(), ...(this.bottomMenuItems() ?? [])]);\n\n public activeId?: number;\n private selectedId?: number;\n protected mobilePortal?: TemplatePortal<MainNavigationMenuComponent>;\n\n // Only close the menu when the cursor is not over the button or the child menu\n public onMouseMove(event: MouseEvent): void {\n const isCursorOverButton = this.activeButton?.nativeElement.contains(event.target as Node);\n const isCursorOverChildMenu = this.overlayRef?.overlayElement.contains(event.target as Node);\n if (!this.mobilePortal && !isCursorOverButton && !isCursorOverChildMenu) {\n this.close();\n }\n }\n\n public onWindowResize(): void {\n const windowView = this.document.defaultView;\n this.isMobile.set(windowView ? windowView.innerWidth <= 1024 : false);\n }\n\n public activeChildItems: SimpleMenuItem[] = [];\n public overlayPositions: ConnectedPosition[] = [\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n ];\n\n private overlay = inject(Overlay);\n private viewContainerRef = inject(ViewContainerRef);\n private document = inject(DOCUMENT);\n private platform = inject(PLATFORM_ID);\n\n private activeButton?: ElementRef<HTMLButtonElement>;\n private overlayRef?: OverlayRef;\n\n public constructor() {\n const windowView = this.document.defaultView;\n if (isPlatformBrowser(this.platform) && windowView) {\n this.isMobile.set(windowView.innerWidth <= 1024);\n }\n }\n\n public ngAfterViewInit(): void {\n this.overlayRef = this.overlay.create({\n positionStrategy: this.setPositionStrategy(),\n });\n }\n\n public ngOnDestroy(): void {\n this.mobilePortal?.detach();\n this.overlayRef?.dispose();\n }\n\n public close(activeItem?: SimpleMenuItem, toggleMobileView?: boolean): void {\n this.activeChildItems = [];\n this.activeId = undefined;\n this.isMobile() ? this.mobilePortal?.detach() : this.overlayRef?.detach();\n if (activeItem) {\n this.#allMenuItems().forEach((item) => {\n item.children?.forEach((child) => (child.active = child.id === activeItem.id));\n item.active = item.children?.some((child) => child.active) ?? false;\n });\n }\n\n toggleMobileView && this.toggleMobileView();\n }\n\n public handleClick(activeItem: MenuItem): void {\n activeItem.callback?.(activeItem.id);\n this.#allMenuItems().forEach((item) => {\n item.children?.forEach((child) => (child.active = false));\n item.active = item.id === activeItem.id;\n });\n\n if (!activeItem.children && this.isMobile()) {\n this.toggleMobileView();\n }\n }\n\n public handleLogoClick(): void {\n this.isMobileExpanded.set(false);\n }\n\n public open(item: MenuItem): void {\n this.selectedId = item.id;\n if (!this.isMobile()) {\n this.close();\n }\n\n this.activeButton = this.buttons().find(\n (button) => Number(button.nativeElement.id) === item.id,\n );\n\n if (!this.activeButton?.nativeElement || !item.children) {\n return;\n }\n\n this.activeChildItems = item.children;\n this.activeId = item.id;\n const portal = new TemplatePortal(this.childMenuTemplate(), this.viewContainerRef);\n if (this.isMobile()) {\n this.mobilePortal = portal;\n return;\n }\n\n this.mobilePortal = undefined;\n\n // Update the position strategy with the active button as the trigger\n this.overlayRef?.updatePositionStrategy(\n this.setPositionStrategy(this.activeButton.nativeElement),\n );\n this.overlayRef?.attach(portal);\n }\n\n public toggleChildMenu(item: MenuItem, event?: KeyboardEvent): void {\n if (event && event?.key !== 'Enter') {\n return;\n }\n\n this.mobilePortal?.isAttached && this.selectedId === item.id ? this.close() : this.open(item);\n }\n\n public toggleMobileView(): void {\n this.isMobileExpanded.set(!this.isMobileExpanded());\n }\n\n public toggleView(): void {\n this.isExpanded.set(!this.isExpanded());\n }\n\n private setPositionStrategy(trigger?: HTMLButtonElement): PositionStrategy {\n if (!trigger) {\n return this.overlay.position().global();\n }\n\n return this.overlay\n .position()\n .flexibleConnectedTo(trigger)\n .withPositions(this.overlayPositions);\n }\n}\n","<header>\n <a routerLink=\"/\" (click)=\"handleLogoClick()\" (keydown)=\"handleLogoClick()\">\n <img [src]=\"brandImagePath()\" [alt]=\"brand() + ' logo'\" />\n @if (isExpanded() || isMobile()) {\n {{ applicationName() }}\n }\n </a>\n <button ndwButton class=\"menu-button\" aria-label=\"menu-button\" (click)=\"toggleMobileView()\">\n @if (!isMobileExpanded()) {\n {{ menuButtonLabel() }}\n <ndw-icon>menu</ndw-icon>\n } @else {\n {{ closeButtonLabel() }}\n <ndw-icon>close</ndw-icon>\n }\n </button>\n</header>\n<div class=\"content\" [ngClass]=\"{ expanded: isMobileExpanded() }\">\n <main>\n <div class=\"menu-items\">\n @for (item of topMenuItems(); track $index) {\n <ng-container *ngTemplateOutlet=\"menuItem; context: { $implicit: item }\" />\n }\n </div>\n </main>\n <footer>\n <div class=\"menu-items\">\n @for (item of bottomMenuItems(); track $index) {\n <ng-container *ngTemplateOutlet=\"menuItem; context: { $implicit: item }\" />\n }\n </div>\n <div class=\"texts\">\n @if (isExpanded() || isMobile()) {\n @for (text of footerTexts(); track $index) {\n <p>{{ text }}</p>\n }\n }\n </div>\n <div class=\"version\">\n <p>{{ version() }}</p>\n @if (isCollapsible()) {\n <button ndwButton menu aria-label=\"expand-button\" (click)=\"toggleView()\">\n <ndw-icon>keyboard_double_arrow_right</ndw-icon>\n </button>\n }\n </div>\n </footer>\n</div>\n\n<!-- Templates -->\n<ng-template #menuItem let-item>\n <button\n ndwButton\n menu\n #menuTrigger\n [attr.active]=\"item.id === activeId || undefined\"\n [attr.clickable]=\"!!item.callback || undefined\"\n [attr.selected]=\"(isMobile() && activeChildItems === item.children) || item.active || undefined\"\n [id]=\"item.id\"\n [ndwTooltip]=\"!isExpanded() && !isMobile() ? item.label : ''\"\n (click)=\"!!item.callback && handleClick(item)\"\n (focus)=\"!isMobile() && open(item)\"\n (keydown)=\"isMobile() && toggleChildMenu(item, $event)\"\n (mousedown)=\"isMobile() && toggleChildMenu(item)\"\n (mouseover)=\"!isMobile() && open(item)\"\n >\n @if (item.icon) {\n <ndw-icon>{{ item.icon }}</ndw-icon>\n }\n @if (isExpanded() || isMobile()) {\n {{ item.label }}\n }\n @if (item.notifications) {\n <ndw-badge [ngClass]=\"{ collapsed: !isExpanded() }\" [value]=\"item.notifications\" />\n }\n @if (isExpanded() && item.children) {\n <ndw-icon\n class=\"suffix\"\n [ngClass]=\"{ open: !!mobilePortal && activeChildItems === item.children }\"\n >arrow_right</ndw-icon\n >\n }\n </button>\n @if (activeChildItems === item.children) {\n <ng-template [cdkPortalOutlet]=\"mobilePortal\" />\n }\n</ng-template>\n\n<ng-template #childMenu>\n <ndw-main-navigation-menu\n [isMobile]=\"isMobile()\"\n [menuItems]=\"activeChildItems\"\n (close)=\"close($event, true)\"\n />\n</ng-template>\n","import { CdkScrollable } from '@angular/cdk/scrolling';\nimport { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { MainNavigationComponent, MenuItem, NdwBrand } from '../main-navigation';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CdkScrollable, MainNavigationComponent],\n selector: 'ndw-layout',\n standalone: true,\n styleUrl: './layout.component.scss',\n templateUrl: './layout.component.html',\n})\nexport class LayoutComponent {\n public applicationName = input.required<string>();\n public topMenuItems = input.required<MenuItem[]>();\n public bottomMenuItems = input<MenuItem[]>();\n public brand = input(NdwBrand.NDW);\n public isCollapsible = input(true);\n public isExpanded = input(true);\n public menuFooterTexts = input<string[]>();\n public version = input<string>();\n}\n","<ndw-main-navigation\n [applicationName]=\"applicationName()\"\n [bottomMenuItems]=\"bottomMenuItems()\"\n [brand]=\"brand()\"\n [footerTexts]=\"menuFooterTexts()\"\n [isCollapsible]=\"isCollapsible()\"\n [isExpanded]=\"isExpanded()\"\n [topMenuItems]=\"topMenuItems()\"\n [version]=\"version()\"\n/>\n<main cdk-scrollable>\n <ng-content />\n</main>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ndw-layout-banners',\n standalone: true,\n styleUrl: './layout-banners.component.scss',\n templateUrl: './layout-banners.component.html',\n})\nexport class LayoutBannersComponent {}\n","<ng-content />\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ndw-loader',\n standalone: true,\n styleUrl: './loader.component.scss',\n templateUrl: './loader.component.html',\n})\nexport class LoaderComponent {}\n","<svg viewBox=\"0 0 32 32\">\n <circle cx=\"4\" cy=\"16\" r=\"4\" />\n <circle cx=\"16\" cy=\"16\" r=\"4\" />\n <circle cx=\"28\" cy=\"16\" r=\"4\" />\n</svg>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ndw-modal-content',\n standalone: true,\n styleUrl: '../../card/card-content/card-content.component.scss',\n templateUrl: './modal-content.component.html',\n})\nexport class ModalContentComponent {}\n","<ng-content />\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ndw-modal-footer',\n standalone: true,\n styleUrl: '../../card/card-footer/card-footer.component.scss',\n templateUrl: './modal-footer.component.html',\n})\nexport class ModalFooterComponent {}\n","<ng-content />\n","import { Dialog, DialogConfig } from '@angular/cdk/dialog';\nimport { ComponentType } from '@angular/cdk/portal';\nimport { Injectable, TemplateRef } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { ModalRef } from './modal-ref';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ModalService extends Dialog {\n #modalRef!: ModalRef<unknown, unknown>;\n\n public backdropClick$?: Observable<MouseEvent>;\n public closed$?: Observable<unknown | undefined>;\n\n public close(): void {\n this.#modalRef?.close();\n }\n\n public override open(\n componentOrTemplateRef: ComponentType<unknown> | TemplateRef<unknown>,\n config?: DialogConfig<unknown, ModalRef<unknown, unknown>>,\n ): ModalRef<unknown, unknown> {\n const modalRef = super.open(componentOrTemplateRef, config);\n this.setModalRef(modalRef);\n\n return this.#modalRef;\n }\n\n public getModalRef(): ModalRef<unknown, unknown> {\n return this.#modalRef;\n }\n\n public setModalRef(modalRef: ModalRef<unknown, unknown>): void {\n this.#modalRef = modalRef;\n this.backdropClick$ = this.#modalRef.backdropClick;\n this.closed$ = this.#modalRef.closed;\n }\n}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\n\nimport { ButtonDirective } from '../../button';\nimport { IconComponent } from '../../icon';\nimport { ModalService } from '../modal.service';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ButtonDirective, IconComponent],\n selector: 'ndw-modal-header',\n standalone: true,\n styleUrls: ['../../card/card-header/card-header.component.scss', './modal-header.component.scss'],\n templateUrl: './modal-header.component.html',\n})\nexport class ModalHeaderComponent {\n readonly #modalService = inject(ModalService);\n\n public detachModal(): void {\n this.#modalService?.close();\n }\n}\n","<ng-content />\n<button\n ndwButton\n tertiary\n extra-small\n ariaLabel=\"Close\"\n data-testid=\"close-button\"\n (click)=\"detachModal()\"\n>\n <ndw-icon>close</ndw-icon>\n</button>\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { CardComponent } from '../card';\n\nexport type ModalSize = 'sm' | 'md';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.modal-size-md]': 'size() === \"md\"',\n '[class.modal-size-sm]': 'size() === \"sm\"',\n },\n selector: 'ndw-modal',\n standalone: true,\n styleUrls: ['../card/card.component.scss', './modal.component.scss'],\n templateUrl: './modal.component.html',\n})\nexport class ModalComponent extends CardComponent {\n public size = input<ModalSize>('sm');\n}\n","<ng-content />\n","import { ModalContentComponent } from './modal-content';\nimport { ModalFooterComponent } from './modal-footer';\nimport { ModalHeaderComponent } from './modal-header';\nimport { ModalComponent } from './modal.component';\n\nexport * from './modal-content';\nexport * from './modal-footer';\nexport * from './modal-header';\nexport * from './modal.component';\nexport * from './modal.service';\n\nexport const MODAL_COMPONENTS = [\n ModalComponent,\n ModalHeaderComponent,\n ModalContentComponent,\n ModalFooterComponent,\n];\n","import { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n model,\n viewChild,\n} from '@angular/core';\n\nimport { DropdownComponent } from '../dropdown';\nimport {\n CheckboxComponent,\n CheckboxGroupComponent,\n FormFieldComponent,\n InputDirective,\n} from '../form-field';\nimport { IconComponent } from '../icon';\nimport { PopoverTriggerDirective } from '../popover';\n\nimport { CheckboxData } from './checkbox-data.interface';\nimport { SelectAllText } from './select-all-text.interface';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FormFieldComponent,\n CheckboxComponent,\n CheckboxGroupComponent,\n DropdownComponent,\n IconComponent,\n InputDirective,\n NgClass,\n ],\n selector: 'ndw-multi-select',\n standalone: true,\n styleUrls: ['multi-select.component.scss'],\n templateUrl: 'multi-select.component.html',\n})\nexport class MultiSelectComponent {\n public readonly dropdownTrigger = viewChild.required(PopoverTriggerDirective);\n\n public readonly buttonText = input.required<string>();\n public readonly searchLabel = input.required<string>();\n public readonly prefixIcon = input('');\n public readonly searchPlaceholder = input('');\n public readonly noResultText = input('');\n public readonly chevron = input(false);\n public readonly disabled = input(false);\n public readonly selectAllText = input<SelectAllText>({ deselect: '', select: '' });\n\n public readonly lastCheckedElementId = model<CheckboxData['id'] | null>();\n public readonly dataSource = model<CheckboxData[]>([]);\n public readonly searchInputValue = model('');\n\n public readonly selectAmount = computed(\n () => this.dataSource().filter((checkbox: CheckboxData) => checkbox.value).length,\n );\n public readonly noSearchResults = computed(\n () =>\n this.dataSource().filter((checkbox: CheckboxData) =>\n checkbox.label.toLowerCase().includes(this.searchInputValue().toLowerCase()),\n ).length === 0,\n );\n\n public filterSearch(value: string): boolean {\n return value.toLowerCase().includes(this.searchInputValue().toLowerCase());\n }\n\n public searchInputChanged(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.searchInputValue.set(input.value);\n }\n\n public checkboxChanged(id: string | number): void {\n this.dataSource.update((checkboxes: CheckboxData[]) => {\n return checkboxes?.map((checkbox: CheckboxData) =>\n checkbox.id === id ? { ...checkbox, value: !checkbox.value } : checkbox,\n );\n });\n }\n\n public toggleSelectAll(selectAll = true): void {\n this.dataSource.update((checkboxes: CheckboxData[]) => {\n return checkboxes.map((checkbox: CheckboxData) => ({ ...checkbox, value: selectAll }));\n });\n }\n\n public isOpenChanged(isOpen: boolean): void {\n if (isOpen) {\n this.dataSource.set(\n this.dataSource()\n .slice()\n .sort((a, b) => Number(b.value) - Number(a.value)),\n );\n this.searchInputValue.set('');\n this.determineLastCheckedElement();\n }\n }\n\n private determineLastCheckedElement(): void {\n if (this.dataSource().some((checkbox) => !checkbox.value)) {\n const sourceList = [...this.dataSource()];\n const lastChecked = sourceList.reverse().find((checkbox) => checkbox.value);\n this.lastCheckedElementId.set(lastChecked ? lastChecked.id : null);\n } else {\n this.lastCheckedElementId.set(null);\n }\n }\n}\n","<ndw-dropdown\n prefixIcon=\"filter_alt\"\n [selectAmount]=\"selectAmount()\"\n (tagClicked)=\"toggleSelectAll(false)\"\n (isOpenChange)=\"isOpenChanged($event)\"\n [buttonText]=\"buttonText()\"\n [disabled]=\"disabled()\"\n [chevron]=\"chevron()\"\n [prefixIcon]=\"prefixIcon()\"\n>\n <ndw-form-field [label]=\"searchLabel()\" [hideLabel]=\"true\">\n <input\n ndwInput\n type=\"search\"\n [value]=\"searchInputValue()\"\n (input)=\"searchInputChanged($event)\"\n [placeholder]=\"searchPlaceholder()\"\n />\n </ndw-form-field>\n @if (noSearchResults()) {\n <div class=\"no-search-results\">\n <ndw-icon>sentiment_dissatisfied</ndw-icon>\n {{ noResultText() }}\n </div>\n } @else {\n <ndw-checkbox-group class=\"multi-select-container\">\n @for (checkbox of dataSource(); track checkbox.id) {\n @if (filterSearch(checkbox.label)) {\n <ndw-checkbox\n [ngClass]=\"{ 'last-checked': lastCheckedElementId() === checkbox.id }\"\n [checked]=\"checkbox.value\"\n (checkedChange)=\"checkboxChanged(checkbox.id)\"\n >\n {{ checkbox.label }}\n </ndw-checkbox>\n }\n }\n </ndw-checkbox-group>\n }\n <div class=\"ndw-dialog-footer\">\n @if (selectAmount() === dataSource().length) {\n <button ndwLink (click)=\"toggleSelectAll(false)\">\n {{ selectAllText().deselect }}\n </button>\n } @else {\n <button ndwLink (click)=\"toggleSelectAll(true)\">\n {{ selectAllText().select }}\n </button>\n }\n <div class=\"ndw-dialog-footer-total\" aria-live=\"polite\">\n Geselecteerd: <strong>{{ selectAmount() }}</strong>\n </div>\n </div>\n</ndw-dropdown>\n","export enum PillColor {\n Green = 'green',\n Gray = 'gray',\n Blue = 'blue',\n Purple = 'purple',\n Yellow = 'yellow',\n Red = 'red',\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, input, viewChild } from '@angular/core';\n\nimport { PillColor } from './pill.model';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'color()',\n class: 'ndw-paragraph-md',\n '[attr.title]': 'this.content()?.nativeElement?.textContent',\n },\n selector: 'ndw-pill',\n standalone: true,\n styleUrl: './pill.component.scss',\n templateUrl: './pill.component.html',\n})\nexport class PillComponent {\n /**\n * The color of the pill.\n */\n public readonly color = input(PillColor.Green);\n\n /**\n * The content of the pill.\n */\n private readonly content = viewChild<ElementRef>('content');\n}\n","<div #content>\n <ng-content />\n</div>\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { ActivatedRoute, ActivatedRouteSnapshot, NavigationEnd, Router } from '@angular/router';\nimport { filter, map } from 'rxjs';\n\nimport { BreadcrumbComponent } from '../breadcrumb';\nimport { BreadcrumbGroupComponent } from '../breadcrumb-group';\n\ntype RouteBreadcrumb = { url: string; title: string };\n\nexport const breadcrumbRouteDataKey = 'breadcrumb';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [BreadcrumbGroupComponent, BreadcrumbComponent, AsyncPipe],\n selector: 'ndw-router-breadcrumbs',\n standalone: true,\n templateUrl: './router-breadcrumbs.component.html',\n})\nexport class RouterBreadcrumbsComponent {\n private readonly route = inject(ActivatedRoute);\n private readonly router = inject(Router);\n\n protected readonly breadcrumbs$ = this.router.events.pipe(\n filter((event) => event instanceof NavigationEnd),\n map(() => this.getBreadcrumbs()),\n );\n\n private getBreadcrumbs(): RouteBreadcrumb[] {\n let route: ActivatedRouteSnapshot | null = this.route.snapshot;\n const breadcrumbs: RouteBreadcrumb[] = [];\n\n while (route) {\n const title = route.data[breadcrumbRouteDataKey];\n const url = route.pathFromRoot\n .flatMap((route) => route.url.filter((segment) => segment.path))\n .join('/');\n\n if (title && url) {\n breadcrumbs.push({ url, title });\n }\n\n route = route.firstChild;\n }\n\n return breadcrumbs;\n }\n}\n","<ndw-breadcrumb-group>\n @for (breadcrumb of breadcrumbs$ | async; track breadcrumb.url) {\n <ndw-breadcrumb [link]=\"breadcrumb.url\">{{ breadcrumb.title }}</ndw-breadcrumb>\n }\n</ndw-breadcrumb-group>\n","import { ChangeDetectionStrategy, input, model } from '@angular/core';\nimport { Component } from '@angular/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.active]': 'active() || null',\n '(click)': 'onClick($event)',\n '(keydown)': 'onTabKeyDown($event)',\n role: 'tab',\n tabindex: '0',\n },\n selector: 'ndw-tab',\n standalone: true,\n styleUrl: './tab.component.scss',\n templateUrl: './tab.component.html',\n})\nexport class TabComponent {\n public index = input.required<number>();\n\n public active = model(false);\n\n public onClick(): void {\n this.active.set(true);\n }\n\n public onTabKeyDown(event: KeyboardEvent): void {\n if (event.key !== 'Enter') {\n return;\n }\n\n event.preventDefault();\n this.active.set(true);\n }\n}\n","<ng-content />\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n contentChildren,\n model,\n} from '@angular/core';\n\nimport { TabComponent } from '../tab';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'tablist',\n },\n selector: 'ndw-tab-group',\n standalone: true,\n styleUrl: './tab-group.component.scss',\n templateUrl: './tab-group.component.html',\n})\nexport class TabGroupComponent implements AfterContentInit {\n public tabs = contentChildren(TabComponent);\n\n public activeTab = model(0);\n\n public ngAfterContentInit(): void {\n this.tabs().forEach(({ active, index }) => {\n active.set(this.activeTab() === index());\n active.subscribe((isActive: boolean) => {\n if (isActive) {\n this.activeTab.set(index());\n }\n active.set(this.activeTab() === index());\n });\n });\n\n this.activeTab.subscribe(() => {\n this.tabs().forEach(({ active, index }) => {\n active.set(this.activeTab() === index());\n });\n });\n }\n}\n","<ng-content />\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n OnDestroy,\n OnInit,\n Renderer2,\n inject,\n model,\n output,\n viewChild,\n} from '@angular/core';\n\nimport { IconComponent } from '../icon';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconComponent],\n selector: 'ndw-toast',\n standalone: true,\n styleUrl: './toast.component.scss',\n templateUrl: './toast.component.html',\n})\nexport class ToastComponent implements OnInit, OnDestroy {\n public readonly message = model('');\n public readonly close = output<void>();\n private interval: ReturnType<typeof setInterval> | null = null;\n private readonly renderer = inject(Renderer2);\n private readonly toastContainer = viewChild<ElementRef>('toastContainer');\n\n public ngOnInit(): void {\n this.message.set(this.truncateText(this.message()));\n this.open();\n }\n\n public ngOnDestroy(): void {\n this.clearInterval();\n this.close.emit();\n }\n\n public open(): void {\n const intervalTime = 10;\n const totalTicks = 10000 / intervalTime;\n let currentTick = 0;\n\n this.interval = setInterval(() => {\n currentTick++;\n const percentage = (currentTick / totalTicks) * 100;\n this.updateGradient(percentage);\n\n if (currentTick >= totalTicks) {\n this.startFadeOut();\n }\n }, intervalTime);\n }\n\n private updateGradient(percentage: number): void {\n if (!this.checkForExistingToast()) {\n return;\n }\n\n const toastElement = this.toastContainer()?.nativeElement;\n toastElement.style.background =\n 'linear-gradient(to left, var(--ndw-color-grey-600) ' +\n `${percentage}%, var(--ndw-color-grey-700) ${percentage}%)`;\n }\n\n protected startFadeOut(): void {\n if (!this.checkForExistingToast()) {\n return;\n }\n\n const toastElement = this.toastContainer()?.nativeElement;\n this.renderer.addClass(toastElement, 'fade-out');\n setTimeout(() => {\n this.clearInterval();\n }, 200);\n }\n\n private checkForExistingToast(): boolean {\n if (!this.toastContainer()?.nativeElement) {\n this.clearInterval();\n return false;\n }\n return true;\n }\n\n private clearInterval(): void {\n if (this.interval !== null) {\n clearInterval(this.interval);\n }\n }\n\n private truncateText(text: string): string {\n if (text.length > 75) {\n return text.substring(0, 75) + '...';\n }\n return text;\n }\n}\n","<div #toastContainer>\n <p>\n {{ message() }}\n </p>\n <button ndwButton tertiary alternative extra-small (click)=\"startFadeOut()\">\n <ndw-icon>close</ndw-icon>\n </button>\n</div>\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { inject, Injectable } from '@angular/core';\n\nimport { ToastComponent } from './toast.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ToastService {\n private readonly overlay = inject(Overlay);\n\n private isOpen = false;\n public overlayRef?: OverlayRef;\n\n public detach(): void {\n this.overlayRef?.detach();\n this.isOpen = false;\n }\n\n public dispose(): void {\n this.overlayRef?.dispose();\n }\n\n public open(message: string): void {\n if (this.isOpen) {\n this.detach();\n }\n\n this.overlayRef = this.overlay.create({\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n positionStrategy: this.overlay.position().global().centerHorizontally().top('1.5rem'),\n });\n\n const toastPortal = new ComponentPortal(ToastComponent);\n const toastComponentRef = this.overlayRef.attach(toastPortal);\n\n toastComponentRef.instance.message.set(message);\n toastComponentRef.instance.close.subscribe(() => {\n this.detach();\n });\n\n this.isOpen = true;\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { CardComponent } from '../card';\n\n@Component({\n selector: 'ndw-summary-card',\n standalone: true,\n imports: [CardComponent],\n templateUrl: './summary-card.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'ndw-summary-card',\n },\n})\nexport class SummaryCardComponent {}\n","<ndw-card class=\"ndw-summary-card__wrapper\">\n <ng-content select=\"ndw-summary-card-avatar\" />\n <div class=\"ndw-summary-card__content\">\n <ng-content select=\"ndw-summary-card-header\" />\n <ng-content select=\"ndw-summary-card-content\" />\n <ng-content select=\"ndw-summary-card-tags\" />\n </div>\n</ndw-card>\n","import {\n ChangeDetectionStrategy,\n Component,\n input,\n output,\n TemplateRef,\n viewChild,\n} from '@angular/core';\nimport { IconComponent } from '../../icon';\nimport { ButtonDirective } from '../../button';\n\n@Component({\n selector: 'ndw-summary-card-action',\n standalone: true,\n imports: [IconComponent, ButtonDirective],\n templateUrl: './summary-card-action.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'listitem',\n class: 'ndw-summary-card-action',\n },\n})\nexport class SummaryCardActionComponent {\n public readonly iconName = input.required<string>();\n public readonly label = input.required<string>();\n public readonly disabled = input<boolean>();\n\n public readonly action = output<void>();\n\n public readonly template = viewChild.required<TemplateRef<Element>>(TemplateRef);\n}\n","<ng-template>\n <button\n ndwButton\n type=\"button\"\n tertiary\n extra-small\n [title]=\"label()\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"label()\"\n (click)=\"action.emit()\"\n >\n <ndw-icon>{{ iconName() }}</ndw-icon>\n </button>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, contentChildren, input } from '@angular/core';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { SummaryActionsView } from '../summary-card.model';\nimport { PopoverTriggerDirective } from '../../popover';\nimport { IconComponent } from '../../icon';\nimport { ButtonDirective } from '../../button';\nimport { SummaryCardActionComponent } from '../summary-card-action/summary-card-action.component';\n\n@Component({\n selector: 'ndw-summary-card-actions',\n standalone: true,\n imports: [PopoverTriggerDirective, IconComponent, NgTemplateOutlet, NgClass, ButtonDirective],\n templateUrl: './summary-card-actions.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'list',\n class: 'ndw-summary-card-actions',\n '[class.ndw-summary-card-actions--auto]': 'view() === \"auto\"',\n },\n})\nexport class SummaryCardActionsComponent {\n public readonly view = input<SummaryActionsView>('auto');\n\n public readonly actions = contentChildren(SummaryCardActionComponent, {\n descendants: true,\n });\n}\n","@if (view() === 'popover') {\n <ng-container *ngTemplateOutlet=\"popoverActions\"></ng-container>\n} @else if (view() === 'visible') {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n} @else {\n <div class=\"popover-wrapper\">\n <ng-container *ngTemplateOutlet=\"popoverActions\"></ng-container>\n </div>\n <div class=\"regular-wrapper\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n}\n\n<ng-template #popoverActions>\n <button\n ndwButton\n extra-small\n tertiary\n aria-label=\"Open menu\"\n [ndwPopoverTrigger]=\"content\"\n [popoverPosition]=\"'nextToTriggerButton'\"\n >\n <ndw-icon>more_horiz</ndw-icon>\n </button>\n</ng-template>\n\n<ng-template #content>\n <div\n class=\"actions\"\n [ngClass]=\"{\n 'actions--popover': view() === 'popover',\n 'actions--visible': view() === 'visible',\n 'actions--auto': view() === 'auto',\n }\"\n >\n @for (action of actions(); track action) {\n <ng-template [ngTemplateOutlet]=\"action.template()\" />\n }\n </div>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { SummaryVariant } from '../summary-card.model';\n\n@Component({\n selector: 'ndw-summary-card-avatar',\n standalone: true,\n template: '<ng-content />',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'ndw-summary-card-avatar',\n '[attr.aria-hidden]': 'true',\n '[class]': 'variantClass()',\n },\n})\nexport class SummaryCardAvatarComponent {\n public readonly variant = input<SummaryVariant>('default');\n protected readonly variantClass = computed(() => `ndw-summary-card-avatar--${this.variant()}`);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'ndw-summary-card-content',\n standalone: true,\n template: '<ng-content />',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'ndw-summary-card-content',\n },\n})\nexport class SummaryCardContentComponent {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'ndw-summary-card-header',\n standalone: true,\n templateUrl: './summary-card-header.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'ndw-summary-card-header',\n },\n})\nexport class SummaryCardHeaderComponent {}\n","<div class=\"ndw-summary-card-header__wrapper\">\n <ng-content select=\"ndw-pill\" />\n <h3 class=\"ndw-summary-card-header__title\"><ng-content /></h3>\n <ng-content select=\"ndw-summary-card-subtitle\" />\n</div>\n\n<ng-content select=\"ndw-summary-card-actions\" />\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'ndw-summary-card-tags',\n standalone: true,\n template: '<ng-content />',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'list',\n class: 'ndw-summary-card-tags',\n },\n})\nexport class SummaryCardTagsComponent {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'ndw-summary-card-tag',\n standalone: true,\n template: '<ng-content />',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'listitem',\n class: 'ndw-summary-card-tag',\n },\n})\nexport class SummaryCardTagComponent {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'ndw-summary-card-subtitle',\n standalone: true,\n templateUrl: './summary-card-subtitle.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SummaryCardSubtitleComponent {}\n","<div class=\"ndw-summary-card-subtitle\">\n <ng-content select=\"ndw-icon\" />\n\n <div class=\"ndw-summary-card-subtitle__text\">\n <ng-content />\n </div>\n</div>\n","/*\n * Public API Surface of ndw\n */\n\nexport * from './components';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.BadgeComponent","i3.IconComponent","i4.MainNavigationMenuComponent","i8.TooltipDirective"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ndwnu-design-system.mjs","sources":["../../../projects/ndw/src/components/badge/badge.component.ts","../../../projects/ndw/src/components/badge/badge.component.html","../../../projects/ndw/src/components/icon/icon.component.ts","../../../projects/ndw/src/components/icon/icon.component.html","../../../projects/ndw/src/components/icon/action-icon/action-icon.component.ts","../../../projects/ndw/src/components/icon/action-icon/action-icon.component.html","../../../projects/ndw/src/components/collapsible/collapsible.animation.ts","../../../projects/ndw/src/components/collapsible/collapsible.component.ts","../../../projects/ndw/src/components/collapsible/collapsible.component.html","../../../projects/ndw/src/components/accordion/accordion.service.ts","../../../projects/ndw/src/components/accordion/accordion.component.ts","../../../projects/ndw/src/components/accordion/accordion.component.html","../../../projects/ndw/src/components/button/button.directive.ts","../../../projects/ndw/src/components/alert/alert.component.ts","../../../projects/ndw/src/components/alert/alert.component.html","../../../projects/ndw/src/components/banner/banner.component.ts","../../../projects/ndw/src/components/banner/banner.component.html","../../../projects/ndw/src/components/breadcrumb/breadcrumb.component.ts","../../../projects/ndw/src/components/breadcrumb/breadcrumb.component.html","../../../projects/ndw/src/components/breadcrumb-group/breadcrumb-group.component.ts","../../../projects/ndw/src/components/breadcrumb-group/breadcrumb-group.component.html","../../../projects/ndw/src/components/card/card-content/card-content.component.ts","../../../projects/ndw/src/components/card/card-content/card-content.component.html","../../../projects/ndw/src/components/card/card-footer/card-footer.component.ts","../../../projects/ndw/src/components/card/card-footer/card-footer.component.html","../../../projects/ndw/src/components/card/card.animation.ts","../../../projects/ndw/src/components/card/card.component.ts","../../../projects/ndw/src/components/card/card.component.html","../../../projects/ndw/src/components/card/card-header/card-header.component.ts","../../../projects/ndw/src/components/card/card-header/card-header.component.html","../../../projects/ndw/src/components/card/index.ts","../../../projects/ndw/src/components/dashboard-card/dashboard-card.component.ts","../../../projects/ndw/src/components/dashboard-card/dashboard-card.component.html","../../../projects/ndw/src/components/popover/popover-trigger.directive.ts","../../../projects/ndw/src/components/tag/tag.component.ts","../../../projects/ndw/src/components/tag/tag.component.html","../../../projects/ndw/src/components/dropdown/dropdown.component.ts","../../../projects/ndw/src/components/dropdown/dropdown.component.html","../../../projects/ndw/src/components/form-field/form-field.constant.ts","../../../projects/ndw/src/components/form-field/autosuggest/match-bold.pipe.ts","../../../projects/ndw/src/components/form-field/autosuggest/autosuggest-option/base-autosuggest-option.component.ts","../../../projects/ndw/src/components/form-field/autosuggest/autosuggest-option/autosuggest-option.component.ts","../../../projects/ndw/src/components/form-field/autosuggest/autosuggest-option/autosuggest-option.component.html","../../../projects/ndw/src/components/form-field/autosuggest/autosuggest.directive.ts","../../../projects/ndw/src/components/form-field/autosuggest/autosuggest-add-option/autosuggest-add-option.component.ts","../../../projects/ndw/src/components/form-field/autosuggest/autosuggest-add-option/autosuggest-add-option.component.html","../../../projects/ndw/src/components/form-field/autosuggest/autosuggest-panel/autosuggest-panel.component.ts","../../../projects/ndw/src/components/form-field/autosuggest/autosuggest-panel/autosuggest-panel.component.html","../../../projects/ndw/src/components/form-field/checkbox/checkbox.component.ts","../../../projects/ndw/src/components/form-field/checkbox/checkbox.component.html","../../../projects/ndw/src/components/form-field/checkbox-group/checkbox-group.component.ts","../../../projects/ndw/src/components/form-field/checkbox-group/checkbox-group.component.html","../../../projects/ndw/src/components/form-field/error/error.component.ts","../../../projects/ndw/src/components/form-field/error/error.component.html","../../../projects/ndw/src/components/form-field/file-upload/file-upload.component.ts","../../../projects/ndw/src/components/form-field/file-upload/file-upload.component.html","../../../projects/ndw/src/components/tooltip/tooltip.component.ts","../../../projects/ndw/src/components/tooltip/tooltip.component.html","../../../projects/ndw/src/components/tooltip/tooltip.directive.ts","../../../projects/ndw/src/components/form-field/input-button/input-button.component.ts","../../../projects/ndw/src/components/form-field/input-button/input-button.component.html","../../../projects/ndw/src/components/form-field/clear-search-button/clear-search-button.component.ts","../../../projects/ndw/src/components/form-field/clear-search-button/clear-search-button.component.html","../../../projects/ndw/src/components/form-field/form-field.model.ts","../../../projects/ndw/src/components/form-field/info/info.component.ts","../../../projects/ndw/src/components/form-field/info/info.component.html","../../../projects/ndw/src/components/form-field/input/input.directive.ts","../../../projects/ndw/src/components/form-field/input-icon/input-icon.component.ts","../../../projects/ndw/src/components/form-field/input-icon/input-icon.component.html","../../../projects/ndw/src/components/form-field/option-group/option.component.ts","../../../projects/ndw/src/components/form-field/option-group/option-group.component.ts","../../../projects/ndw/src/components/form-field/option-group/option-group.component.html","../../../projects/ndw/src/components/form-field/month-input/month-input-utils.ts","../../../projects/ndw/src/components/form-field/month-input/month-input.component.ts","../../../projects/ndw/src/components/form-field/month-input/month-input.component.html","../../../projects/ndw/src/components/form-field/picker-button/picker-button.component.ts","../../../projects/ndw/src/components/form-field/picker-button/picker-button.component.html","../../../projects/ndw/src/components/form-field/success/success.component.ts","../../../projects/ndw/src/components/form-field/success/success.component.html","../../../projects/ndw/src/components/form-field/form-field.component.ts","../../../projects/ndw/src/components/form-field/form-field.component.html","../../../projects/ndw/src/components/form-field/radio-button/radio-button.component.ts","../../../projects/ndw/src/components/form-field/radio-button/radio-button.component.html","../../../projects/ndw/src/components/form-field/radio-group/radio-group.component.ts","../../../projects/ndw/src/components/form-field/radio-group/radio-group.component.html","../../../projects/ndw/src/components/form-field/textarea/auto-grow.directive.ts","../../../projects/ndw/src/components/form-field/textarea/max-char.directive.ts","../../../projects/ndw/src/components/main-navigation-menu/main-navigation-menu.component.ts","../../../projects/ndw/src/components/main-navigation-menu/main-navigation-menu.component.html","../../../projects/ndw/src/components/main-navigation/main-navigation.imports.ts","../../../projects/ndw/src/components/main-navigation/main-navigation.component.ts","../../../projects/ndw/src/components/main-navigation/main-navigation.component.html","../../../projects/ndw/src/components/layout/layout.component.ts","../../../projects/ndw/src/components/layout/layout.component.html","../../../projects/ndw/src/components/layout-banners/layout-banners.component.ts","../../../projects/ndw/src/components/layout-banners/layout-banners.component.html","../../../projects/ndw/src/components/loader/loader.component.ts","../../../projects/ndw/src/components/loader/loader.component.html","../../../projects/ndw/src/components/modal/modal-content/modal-content.component.ts","../../../projects/ndw/src/components/modal/modal-content/modal-content.component.html","../../../projects/ndw/src/components/modal/modal-footer/modal-footer.component.ts","../../../projects/ndw/src/components/modal/modal-footer/modal-footer.component.html","../../../projects/ndw/src/components/modal/modal.service.ts","../../../projects/ndw/src/components/modal/modal-header/modal-header.component.ts","../../../projects/ndw/src/components/modal/modal-header/modal-header.component.html","../../../projects/ndw/src/components/modal/modal.component.ts","../../../projects/ndw/src/components/modal/modal.component.html","../../../projects/ndw/src/components/modal/index.ts","../../../projects/ndw/src/components/multi-select/multi-select.component.ts","../../../projects/ndw/src/components/multi-select/multi-select.component.html","../../../projects/ndw/src/components/pill/pill.component.ts","../../../projects/ndw/src/components/pill/pill.component.html","../../../projects/ndw/src/components/router-breadcrumbs/router-breadcrumbs.component.ts","../../../projects/ndw/src/components/router-breadcrumbs/router-breadcrumbs.component.html","../../../projects/ndw/src/components/tab/tab.component.ts","../../../projects/ndw/src/components/tab/tab.component.html","../../../projects/ndw/src/components/tab-group/tab-group.component.ts","../../../projects/ndw/src/components/tab-group/tab-group.component.html","../../../projects/ndw/src/components/toast/toast.component.ts","../../../projects/ndw/src/components/toast/toast.component.html","../../../projects/ndw/src/components/toast/toast.service.ts","../../../projects/ndw/src/components/summary-card/summary-card.component.ts","../../../projects/ndw/src/components/summary-card/summary-card.component.html","../../../projects/ndw/src/components/summary-card/summary-card-action/summary-card-action.component.ts","../../../projects/ndw/src/components/summary-card/summary-card-action/summary-card-action.component.html","../../../projects/ndw/src/components/summary-card/summary-card-actions/summary-card-actions.component.ts","../../../projects/ndw/src/components/summary-card/summary-card-actions/summary-card-actions.component.html","../../../projects/ndw/src/components/summary-card/summary-card-avatar/summary-card-avatar.component.ts","../../../projects/ndw/src/components/summary-card/summary-card-content/summary-card-content.component.ts","../../../projects/ndw/src/components/summary-card/summary-card-header/summary-card-header.component.ts","../../../projects/ndw/src/components/summary-card/summary-card-header/summary-card-header.component.html","../../../projects/ndw/src/components/summary-card/summary-card-tags/summary-card-tags.component.ts","../../../projects/ndw/src/components/summary-card/summary-card-tag/summary-card-tag.component.ts","../../../projects/ndw/src/components/summary-card/summary-card-subtitle/summary-card-subtitle.component.ts","../../../projects/ndw/src/components/summary-card/summary-card-subtitle/summary-card-subtitle.component.html","../../../projects/ndw/src/public-api.ts","../../../projects/ndw/src/ndwnu-design-system.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ndw-badge',\n styleUrl: './badge.component.scss',\n templateUrl: './badge.component.html',\n})\nexport class BadgeComponent {\n /**\n * The value of the badge\n */\n public value = input<number>();\n\n /**\n * The aria label, used by screen readers to give context.\n */\n public ariaLabel = input<string>();\n}\n","@if (value(); as value) {\n @if (value === 0 || value < -9 || value > 99) {\n <span class=\"dot\"></span>\n } @else {\n {{ value }}\n }\n} @else {\n {{ value() }}\n}\n\n@if (ariaLabel()) {\n <span class=\"sr-only\"> {{ ariaLabel() }}</span>\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n inject,\n input,\n OnInit,\n Renderer2,\n} from '@angular/core';\n\nexport type IconSize = 'sm' | 'md';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'aria-hidden': 'true',\n class: 'material-symbols-rounded',\n },\n selector: 'ndw-icon',\n styleUrl: './icon.component.scss',\n templateUrl: './icon.component.html',\n})\nexport class IconComponent implements OnInit {\n public size = input<IconSize>('md');\n\n private readonly elementRef = inject(ElementRef);\n private readonly renderer = inject(Renderer2);\n private readonly document = inject(DOCUMENT);\n\n @HostBinding('class')\n public get hostClass(): string {\n return `icon--${this.size()}`;\n }\n\n public ngOnInit(): void {\n const { nativeElement } = this.elementRef;\n const { defaultView } = this.document;\n const height = defaultView?.getComputedStyle(nativeElement)?.fontSize;\n const paddingInline = defaultView?.getComputedStyle(nativeElement)?.paddingInline;\n\n if (height && paddingInline) {\n this.renderer.setStyle(nativeElement, 'width', height + paddingInline);\n }\n }\n}\n","<ng-content />\n","import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { IconComponent, IconSize } from '../icon.component';\n\nexport type ButtonType = 'button' | 'submit' | 'reset';\nexport type IconVariant = 'primary' | 'link' | 'grey' | 'white';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconComponent],\n selector: 'ndw-action-icon',\n styleUrl: './action-icon.component.scss',\n templateUrl: './action-icon.component.html',\n})\nexport class ActionIconComponent {\n // ! This component is deprecated, use `button` with `extra-small` attribute instead.\n\n /**\n * Used to give meaning to the button, used by screen readers.\n */\n public ariaLabel = input.required<string>();\n\n /**\n * Color scheme of the ActionIcon, available `primary`, `link`,\n * `grey` and `white` (defaults to primary).\n */\n public variant = input<IconVariant>('primary');\n\n /**\n * Specify button type, defaults to `button`\n */\n public buttonType = input<ButtonType>('button');\n\n /**\n * Disables the button, defaults to `false`.\n */\n public disabled = input<boolean>(false);\n\n /**\n * Sets the size of the button, defaults to `md`.\n */\n public size = input<IconSize>('md');\n\n /**\n * Event emitted when the button is clicked.\n */\n public readonly clicked = output<void>();\n}\n","<button\n class=\"ndw-action-icon ndw-action-icon--{{ variant() }}\"\n [type]=\"buttonType()\"\n [attr.aria-label]=\"ariaLabel()\"\n [disabled]=\"disabled()\"\n (click)=\"clicked.emit()\"\n>\n <ndw-icon [size]=\"size()\"><ng-content /></ndw-icon>\n</button>\n","import { animate, state, style, transition, trigger } from '@angular/animations';\n\nexport const collapsibleAnimation = [\n trigger('collapsible', [\n state(\n 'open',\n style({\n 'max-height': '100vh',\n opacity: '1',\n }),\n ),\n state(\n 'closed',\n style({\n 'max-height': '0',\n opacity: '0',\n }),\n ),\n transition('open => closed', [\n animate(\n '200ms ease-in-out',\n style({\n 'max-height': '0px',\n opacity: '0',\n }),\n ),\n ]),\n transition('closed => open', [\n animate(\n '200ms ease-in-out',\n style({\n 'max-height': '100vh',\n opacity: '1',\n }),\n ),\n ]),\n ]),\n];\n","import { ChangeDetectionStrategy, Component, computed, inject, input, model } from '@angular/core';\n\nimport { AccordionService } from '../accordion';\nimport { BadgeComponent } from '../badge';\nimport { IconComponent } from '../icon';\n\nimport { collapsibleAnimation } from './collapsible.animation';\n\n@Component({\n animations: [collapsibleAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.expanded]': 'expanded()',\n },\n imports: [BadgeComponent, IconComponent],\n selector: 'ndw-collapsible',\n styleUrl: './collapsible.component.scss',\n templateUrl: './collapsible.component.html',\n})\nexport class CollapsibleComponent {\n public index = input.required<number>();\n public title = input.required<string>();\n public value = input<number>();\n\n public expanded = model(false);\n\n private readonly accordionService = inject(AccordionService);\n\n private readonly uuid = crypto.randomUUID();\n public readonly toggleUuid = `toggle-${this.uuid}`;\n public readonly sectionUuid = `section-${this.uuid}`;\n\n public animationState = computed(() => (this.expanded() ? 'open' : 'closed'));\n\n public toggle(): void {\n this.expanded.set(!this.expanded());\n\n if (this.expanded()) {\n this.accordionService.setExpandedCollapsible(this.index());\n }\n }\n}\n","<div class=\"collapsible\">\n <h3 class=\"collapsible__header\">\n <button\n class=\"collapsible__button\"\n type=\"button\"\n [id]=\"toggleUuid\"\n [attr.aria-controls]=\"sectionUuid\"\n [attr.aria-expanded]=\"expanded()\"\n (click)=\"toggle()\"\n >\n {{ title() }}\n\n @if (value(); as value) {\n <ndw-badge [value]=\"value\" />\n }\n\n <ndw-icon>keyboard_arrow_down</ndw-icon>\n </button>\n </h3>\n\n <section\n role=\"region\"\n class=\"collapsible__section\"\n [id]=\"sectionUuid\"\n [attr.aria-labelledby]=\"toggleUuid\"\n [@collapsible]=\"animationState()\"\n >\n <ng-content />\n </section>\n</div>\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable()\nexport class AccordionService {\n public expanded$ = new Subject<number>();\n\n public setExpandedCollapsible(index: number): void {\n this.expanded$.next(index);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n OnInit,\n contentChildren,\n inject,\n input,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { CollapsibleComponent } from '../collapsible';\n\nimport { AccordionService } from './accordion.service';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [AccordionService],\n selector: 'ndw-accordion',\n styleUrl: './accordion.component.scss',\n templateUrl: './accordion.component.html',\n})\nexport class AccordionComponent implements OnInit {\n public collapseOthers = input(false);\n\n public collapsibles = contentChildren(CollapsibleComponent);\n\n private readonly accordionService = inject(AccordionService);\n private readonly destroyRef = inject(DestroyRef);\n\n public ngOnInit(): void {\n this.accordionService.expanded$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((index: number) => {\n if (!this.collapseOthers()) {\n return;\n }\n\n this.collapsibles().forEach((collapsible: CollapsibleComponent) => {\n collapsible.expanded.set(collapsible.index() === index);\n });\n });\n }\n}\n","<ng-content />\n","import { Directive, ElementRef, OnInit, inject } from '@angular/core';\n\n@Directive({\n selector: '[ndwButton]',\n})\nexport class ButtonDirective implements OnInit {\n private readonly elementRef = inject(ElementRef);\n\n public get element(): HTMLButtonElement {\n return this.elementRef.nativeElement as HTMLButtonElement;\n }\n\n public ngOnInit(): void {\n // If the text content of a child node is longer than 35 characters, truncate it\n if (!this.element.childNodes.length) {\n return;\n }\n\n this.element.childNodes.forEach((node) => {\n if (node.nodeType === Node.TEXT_NODE) {\n if (!node.textContent) {\n return;\n }\n\n const text = node.textContent.trim();\n if (text.length > 35) {\n node.textContent = text.slice(0, 35) + '...';\n }\n }\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\n\nimport { AriaLive } from '../../models';\nimport { ButtonDirective } from '../button';\nimport { IconComponent } from '../icon';\n\nimport { AlertType } from './alert.model';\n\n@Component({\n host: {\n '[attr.aria-live]': 'ariaLive()',\n '[class]': 'type()',\n '[class.actionable]': 'actionable()',\n role: 'alert',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ButtonDirective, IconComponent],\n selector: 'ndw-alert',\n styleUrl: './alert.component.scss',\n templateUrl: './alert.component.html',\n})\nexport class AlertComponent {\n /**\n * Whether the alert is actionable, shows a close icon and a title.\n */\n public actionable = input(false);\n\n /**\n * The title of the alert. Only used when actionable is true.\n */\n public title = input<string>();\n\n /**\n * Use info, info-grey, warning or critical to indicate the type of alert.\n */\n public type = input<AlertType>('info-grey');\n\n /**\n * Use polite, assertive or off to indicate whether the alert is\n * announced automatically by the screen reader.\n */\n public ariaLive = input<AriaLive>('off');\n\n public close = output<void>();\n\n public onClose(): void {\n this.close.emit();\n }\n}\n","<section>\n <ndw-icon class=\"info-icon\">info</ndw-icon>\n @if (actionable()) {\n @if (title(); as title) {\n <h2>{{ title }}</h2>\n }\n\n <button\n ndwButton\n alternative\n extra-small\n tertiary\n class=\"close-button\"\n aria-label=\"Sluit melding\"\n (click)=\"onClose()\"\n >\n <ndw-icon>close</ndw-icon>\n </button>\n }\n</section>\n<ng-content />\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n input,\n output,\n viewChild,\n} from '@angular/core';\n\nimport { AriaLive } from '../../models';\nimport { ButtonDirective } from '../button';\nimport { IconComponent } from '../icon';\n\nimport { BannerType } from './banner.model';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.aria-live]': 'ariaLive()',\n '[attr.title]': 'message()',\n '[class]': 'type()',\n '(window:resize)': 'setReadMore()',\n role: 'button',\n tabindex: '0',\n },\n imports: [ButtonDirective, IconComponent],\n selector: 'ndw-banner',\n styleUrl: './banner.component.scss',\n templateUrl: './banner.component.html',\n})\nexport class BannerComponent implements AfterViewInit {\n /**\n * The title of the banner.\n */\n public title = input.required<string>();\n\n /**\n * The message of the banner.\n */\n public message = input.required<string>();\n\n /**\n * The read more label if the message is truncated.\n */\n public readMoreLabel = input<string>('lees verder');\n\n /**\n * Use info, info-grey, warning or critical to indicate the type of banner.\n */\n public type = input<BannerType>('info');\n\n /**\n * Use polite, assertive or off to indicate whether the alert is\n * announced automatically by the screen reader.\n */\n public ariaLive = input<AriaLive>('off');\n\n /**\n * Emits when the banner close button is clicked.\n */\n public close = output<void>();\n\n public textContent = viewChild<ElementRef>('textContent');\n\n public showReadMore = false;\n\n public ngAfterViewInit(): void {\n this.setReadMore();\n }\n\n public onClose(event: MouseEvent): void {\n event.stopPropagation();\n this.close.emit();\n }\n\n private setReadMore(): void {\n this.showReadMore =\n this.textContent()?.nativeElement.scrollWidth > this.textContent()?.nativeElement.clientWidth;\n }\n}\n","<section>\n <ndw-icon class=\"info-icon\">info</ndw-icon>\n <p #textContent>\n <strong>{{ title() }}:</strong>\n {{ message() }}\n </p>\n @if (showReadMore) {\n <p>{{ readMoreLabel() }}</p>\n }\n</section>\n<button\n ndwButton\n alternative\n extra-small\n tertiary\n class=\"close-button\"\n aria-label=\"Sluit melding\"\n (click)=\"onClose($event)\"\n>\n <ndw-icon>close</ndw-icon>\n</button>\n","import { ChangeDetectionStrategy, Component, input, TemplateRef, viewChild } from '@angular/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ndw-breadcrumb',\n templateUrl: './breadcrumb.component.html',\n})\nexport class BreadcrumbComponent {\n public link = input<string | null>(null);\n\n public content = viewChild.required<TemplateRef<unknown>>('content');\n}\n","<ng-template #content>\n <ng-content />\n</ng-template>\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, contentChildren } from '@angular/core';\nimport { RouterLink } from '@angular/router';\n\nimport { BreadcrumbComponent } from '../breadcrumb';\nimport { IconComponent } from '../icon';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'aria-label': 'Breadcrumb',\n role: 'navigation',\n },\n imports: [IconComponent, NgTemplateOutlet, RouterLink],\n selector: 'ndw-breadcrumb-group',\n styleUrl: './breadcrumb-group.component.scss',\n templateUrl: './breadcrumb-group.component.html',\n})\nexport class BreadcrumbGroupComponent {\n protected breadcrumbs = contentChildren(BreadcrumbComponent);\n}\n","@for (breadcrumb of breadcrumbs(); track breadcrumb.link()) {\n @if ($count > 1 && $index === $count - 2) {\n <ndw-icon class=\"icon-back\" aria-hidden=\"true\">chevron_left</ndw-icon>\n }\n\n <a\n class=\"breadcrumb\"\n [class.current-page]=\"$last\"\n [class.show-on-small-screen]=\"$count === 1 || $index === $count - 2\"\n [attr.aria-current]=\"$last ? 'page' : null\"\n [routerLink]=\"$last ? null : breadcrumb.link()\"\n >\n <ng-template [ngTemplateOutlet]=\"breadcrumb.content()\"></ng-template>\n </a>\n\n @if (!$last) {\n <ndw-icon class=\"icon-forward\" aria-hidden=\"true\">chevron_right</ndw-icon>\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ndw-card-content',\n styleUrl: './card-content.component.scss',\n templateUrl: './card-content.component.html',\n})\nexport class CardContentComponent {}\n","<ng-content />\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ndw-card-footer',\n styleUrl: './card-footer.component.scss',\n templateUrl: './card-footer.component.html',\n})\nexport class CardFooterComponent {}\n","<ng-content />\n","import { animate, state, style, transition, trigger } from '@angular/animations';\n\nexport const CARD_ANIMATION = trigger('cardAnimation', [\n state(\n 'closed',\n style({\n height: '{{ headerHeight }}px',\n overflow: 'hidden',\n }),\n { params: { headerHeight: 0 } },\n ),\n state(\n 'open',\n style({\n height: '*',\n overflow: 'hidden',\n }),\n ),\n transition('closed <=> open', [animate('200ms ease-in-out')]),\n]);\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n inject,\n InjectionToken,\n model,\n signal,\n} from '@angular/core';\nimport { CardHeaderComponent } from './card-header';\nimport { CARD_ANIMATION } from './card.animation';\n\nexport const CARD_ID_TOKEN = new InjectionToken<string>('CARD_ID_TOKEN');\n\n@Component({\n animations: [CARD_ANIMATION],\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ndw-card',\n styleUrl: './card.component.scss',\n templateUrl: './card.component.html',\n providers: [\n {\n provide: CARD_ID_TOKEN,\n useFactory: () => `ndw-card-${crypto.randomUUID()}`,\n },\n ],\n host: {\n id: 'cardId',\n '[@cardAnimation]': 'animationState()',\n },\n})\nexport class CardComponent implements AfterContentInit {\n private readonly header = contentChild<CardHeaderComponent>(CardHeaderComponent);\n private readonly headerHeight = signal(0);\n public readonly cardId = inject(CARD_ID_TOKEN);\n\n isCollapsed = model(false);\n\n ngAfterContentInit(): void {\n const header = this.header();\n if (header) {\n header.isCollapsed.subscribe(() => {\n this.isCollapsed.set(!this.isCollapsed());\n });\n this.headerHeight.set(header.height);\n }\n }\n\n animationState = computed(() => ({\n value: this.isCollapsed() ? 'closed' : 'open',\n params: { headerHeight: this.headerHeight() },\n }));\n}\n","<ng-content />\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n input,\n model,\n} from '@angular/core';\nimport { IconComponent } from '../../icon';\nimport { NgClass } from '@angular/common';\nimport { CARD_ID_TOKEN } from '../card.component';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ndw-card-header',\n imports: [IconComponent, NgClass],\n styleUrl: './card-header.component.scss',\n templateUrl: './card-header.component.html',\n})\nexport class CardHeaderComponent {\n public readonly cardId = inject(CARD_ID_TOKEN, { optional: true });\n public readonly isCollapsible = input(false);\n public readonly isCollapsed = model(false);\n\n private readonly elementRef = inject(ElementRef);\n\n get height(): number {\n return this.elementRef.nativeElement.offsetHeight;\n }\n\n toggleCollapsed(): void {\n this.isCollapsed.set(!this.isCollapsed());\n }\n}\n","@if (isCollapsible()) {\n <button\n (click)=\"toggleCollapsed()\"\n type=\"button\"\n ndwButton\n extra-small\n tertiary\n [attr.aria-controls]=\"cardId\"\n [attr.aria-expanded]=\"!isCollapsed()\"\n [ngClass]=\"{ collapsed: isCollapsed() }\"\n class=\"float\"\n >\n <ndw-icon>keyboard_arrow_down</ndw-icon>\n </button>\n}\n<ng-content />\n","import { CardContentComponent } from './card-content';\nimport { CardFooterComponent } from './card-footer';\nimport { CardHeaderComponent } from './card-header';\nimport { CardComponent } from './card.component';\n\nexport * from './card-content';\nexport * from './card-footer';\nexport * from './card-header';\nexport * from './card.component';\n\nexport const CARD_COMPONENTS = [\n CardComponent,\n CardHeaderComponent,\n CardContentComponent,\n CardFooterComponent,\n];\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { CardContentComponent } from '../card/card-content/card-content.component';\nimport { CardComponent } from '../card/card.component';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CardComponent, CardContentComponent],\n selector: 'ndw-dashboard-card',\n styleUrl: './dashboard-card.component.scss',\n templateUrl: './dashboard-card.component.html',\n})\nexport class DashboardCardComponent {\n /**\n * The title of the card.\n */\n public readonly title = input.required<string>();\n\n /**\n * The URL to the icon to display on the card. The icon is assumed to be rectangular.\n */\n public readonly imgSource = input.required<string>();\n\n /**\n * The url to open in a new window when the card is clicked.\n */\n public readonly link = input.required<string>();\n\n /**\n * Specifies where to open the linked document.\n * Valid values are `_blank`, `_parent`, `_self`, or `_top`.\n */\n public readonly linkTarget = input<string>('_blank');\n}\n","<a [href]=\"link()\" [target]=\"linkTarget()\" rel=\"noreferrer noopener\" [title]=\"title()\">\n <ndw-card class=\"card\">\n <ndw-card-content class=\"card-content\">\n <img [src]=\"imgSource()\" [alt]=\"title()\" />\n <span class=\"ndw-heading-sm title\">{{ title() }}</span>\n <div class=\"ndw-paragraph-md description\"><ng-content /></div>\n </ndw-card-content>\n </ndw-card>\n</a>\n","import { ConfigurableFocusTrapFactory } from '@angular/cdk/a11y';\nimport { ConnectedPosition, Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n DestroyRef,\n Directive,\n ElementRef,\n EventEmitter,\n inject,\n input,\n model,\n OnDestroy,\n Output,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { take } from 'rxjs';\n\n@Directive({\n exportAs: 'ndwPopoverTrigger',\n host: {\n '(click)': 'toggle()',\n },\n selector: '[ndwPopoverTrigger]',\n})\nexport class PopoverTriggerDirective implements OnDestroy {\n @Output() public popoverToggled = new EventEmitter<boolean>();\n public popoverPosition = input('nextToTriggerButton');\n public popoverContent = input.required<TemplateRef<unknown>>({ alias: 'ndwPopoverTrigger' });\n public toggleOnClick = input(true);\n public isOpen = model(false);\n\n public toggle(): void {\n if (!this.toggleOnClick()) {\n return;\n }\n this.isOpen.set(!this.isOpen());\n this.togglePopover();\n }\n\n private destroyRef = inject(DestroyRef);\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef<HTMLElement>);\n private overlay = inject(Overlay);\n private viewContainerRef = inject(ViewContainerRef);\n private focusTrapFactory = inject(ConfigurableFocusTrapFactory);\n\n private overlayRef?: OverlayRef;\n\n public ngOnDestroy(): void {\n this.isOpen.set(false);\n this.togglePopover();\n }\n\n public togglePopover(): void {\n if (this.isOpen()) {\n this.open();\n } else {\n this.close();\n }\n this.popoverToggled.emit(this.isOpen());\n }\n\n private open(): void {\n const positions: ConnectedPosition[] = this.getPopoverPosition(this.popoverPosition());\n const templatePortal = new TemplatePortal(this.popoverContent(), this.viewContainerRef);\n\n this.overlayRef = this.overlay.create({\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n positionStrategy: this.overlay\n .position()\n .flexibleConnectedTo(this.elementRef)\n .withPositions(positions),\n });\n this.overlayRef.attach(templatePortal);\n this.overlayRef.hostElement.addEventListener('click', (event: MouseEvent) => {\n const target = event.target as HTMLElement | null;\n if (this.nodeOrParentsHaveAttribute(target, 'ndwPopoverCloseTrigger')) {\n this.isOpen.set(false);\n this.togglePopover();\n }\n });\n\n this.trapFocus(this.overlayRef);\n this.closeOverlayOnEscapeKey(this.overlayRef);\n this.closeOverlayOnBackdropClick(this.overlayRef);\n }\n\n private trapFocus(overlayRef: OverlayRef): void {\n this.focusTrapFactory.create(overlayRef.overlayElement);\n }\n\n private closeOverlayOnEscapeKey(overlayRef: OverlayRef): void {\n overlayRef.overlayElement.onkeydown = (event: KeyboardEvent): void => {\n if (event.key === 'Escape') {\n this.isOpen.set(false);\n this.togglePopover();\n }\n };\n }\n\n private nodeOrParentsHaveAttribute(node: HTMLElement | null, attribute: string): boolean {\n let next = node;\n while (next) {\n if (next.hasAttribute(attribute)) {\n return true;\n }\n next = next.parentElement;\n }\n return false;\n }\n\n private closeOverlayOnBackdropClick(overlayRef: OverlayRef): void {\n overlayRef\n .backdropClick()\n .pipe(takeUntilDestroyed(this.destroyRef), take(1))\n .subscribe(() => {\n this.isOpen.set(false);\n this.togglePopover();\n });\n }\n\n private close(): void {\n this.overlayRef?.dispose();\n }\n\n private getPopoverPosition(popoverPosition: string): ConnectedPosition[] {\n if (popoverPosition === 'overTriggerButton') {\n return [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n panelClass: 'ndw-popover-panel',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom',\n panelClass: 'ndw-popover-panel',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n panelClass: 'ndw-popover-panel',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n panelClass: 'ndw-popover-panel',\n },\n ];\n }\n return [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 4,\n panelClass: 'ndw-popover-panel',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n offsetY: 4,\n panelClass: 'ndw-popover-panel',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -4,\n panelClass: 'ndw-popover-panel',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetY: -4,\n panelClass: 'ndw-popover-panel',\n },\n ];\n }\n}\n","import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\n\nimport { IconComponent } from '../icon';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.disabled]': 'disabled()',\n },\n imports: [IconComponent],\n selector: 'ndw-tag',\n styleUrl: './tag.component.scss',\n templateUrl: './tag.component.html',\n})\nexport class TagComponent {\n /**\n * Disables the tag\n */\n public disabled = input(false);\n\n /**\n * Aria label for the interactive button\n */\n public suffixAriaLabel = input('Verwijder');\n\n /**\n * The name of the icon to display\n */\n public suffixIcon = input('close');\n\n public clicked = output<Event>();\n}\n","<ng-content />\n<button\n type=\"button\"\n [attr.aria-label]=\"suffixAriaLabel()\"\n [disabled]=\"disabled()\"\n (click)=\"clicked.emit($event)\"\n>\n <ndw-icon>{{ suffixIcon() }}</ndw-icon>\n</button>\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n computed,\n input,\n output,\n viewChild,\n} from '@angular/core';\nimport { ButtonDirective } from '../button';\nimport { IconComponent } from '../icon';\nimport { PopoverTriggerDirective } from '../popover';\nimport { TagComponent } from '../tag';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ButtonDirective, PopoverTriggerDirective, IconComponent, TagComponent],\n selector: 'ndw-dropdown',\n styleUrl: 'dropdown.component.scss',\n templateUrl: 'dropdown.component.html',\n})\nexport class DropdownComponent {\n public readonly disabled = input(false);\n public readonly chevron = input(true);\n public readonly buttonText = input.required<string>();\n public readonly prefixIcon = input('');\n public readonly selectAmount = input(0);\n\n public readonly tagClicked = output<void>();\n public readonly isOpenChange = output<boolean>();\n\n public readonly popoverTrigger = viewChild.required(PopoverTriggerDirective);\n public readonly dropdownButton = viewChild.required<ElementRef>('dropdownButton');\n\n public readonly buttonIcon = computed(() =>\n this.popoverTrigger().isOpen() ? 'keyboard_arrow_up' : 'keyboard_arrow_down',\n );\n\n public onTagClicked($event: Event): void {\n $event.stopPropagation();\n this.tagClicked.emit();\n }\n\n public onKeyDown(event: KeyboardEvent): void {\n if (event.key === 'Escape') {\n this.popoverTrigger().isOpen.set(false);\n this.popoverTrigger().togglePopover();\n } else if (event.key === 'Enter' && !this.disabled()) {\n this.popoverTrigger().toggle();\n }\n }\n\n public closeDropdown(): void {\n this.dropdownButton().nativeElement.focus();\n }\n\n public onTagKeyDown(event: KeyboardEvent): void {\n if (event.key !== 'Enter' || this.disabled()) {\n return;\n }\n\n event.stopPropagation();\n event.preventDefault();\n\n this.tagClicked.emit();\n setTimeout(() => {\n this.dropdownButton().nativeElement.focus();\n });\n }\n\n public isOpenChanged(isOpen: boolean): void {\n this.isOpenChange.emit(isOpen);\n }\n}\n","<button\n type=\"button\"\n #dropdownButton\n ndwButton\n filter\n [ndwPopoverTrigger]=\"dropdownContent\"\n (isOpenChange)=\"isOpenChanged($event)\"\n (keydown)=\"onKeyDown($event)\"\n [disabled]=\"disabled()\"\n aria-haspopup=\"dialog\"\n>\n @if (prefixIcon(); as prefixIconName) {\n <ndw-icon class=\"dropdown-prefix-icon\">{{ prefixIconName }}</ndw-icon>\n }\n\n {{ buttonText() }}\n\n @if (selectAmount()) {\n <ndw-tag\n [attr.disabled]=\"disabled() ? true : null\"\n (keydown)=\"onTagKeyDown($event)\"\n (clicked)=\"onTagClicked($event)\"\n >\n {{ selectAmount() }}\n </ndw-tag>\n }\n\n @if (chevron()) {\n <div class=\"button-end\">\n <ndw-icon class=\"button-icon\">{{ buttonIcon() }}</ndw-icon>\n </div>\n }\n</button>\n\n<ng-template #dropdownContent>\n <div role=\"dialog\" (keydown.escape)=\"closeDropdown()\">\n <ng-content />\n </div>\n</ng-template>\n","export const INPUT_CONTAINER_CLASS = 'input-container';\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'matchBold',\n})\nexport class MatchBoldPipe implements PipeTransform {\n public transform(value: unknown, searchTerm: string): string {\n if (!searchTerm || typeof value !== 'string') {\n return `${value}`;\n }\n\n const regex = new RegExp(`(${searchTerm})`, 'gi');\n return value.replace(regex, '<b>$1</b>');\n }\n}\n","import { FocusableOption, FocusOrigin } from '@angular/cdk/a11y';\nimport {\n ChangeDetectorRef,\n Component,\n ElementRef,\n ChangeDetectionStrategy,\n EventEmitter,\n inject,\n OnDestroy,\n input,\n} from '@angular/core';\nimport { AutocompleteOptionSelectionChange } from './autosuggest-option.component';\nimport { hasModifierKey } from '@angular/cdk/keycodes';\nimport { AutosuggestOption } from './autosuggest-option.model';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: '',\n})\nexport abstract class BaseAutosuggestOptionComponent<T> implements FocusableOption, OnDestroy {\n public readonly value = input<AutosuggestOption<T>>();\n public readonly selectionChange = new EventEmitter<AutocompleteOptionSelectionChange<T>>();\n\n protected _active = false;\n protected _selected = false;\n\n public get active(): boolean {\n return this._active;\n }\n\n public get selected(): boolean {\n return this._selected;\n }\n\n private readonly element = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n\n // This method is used by FocusableOption\n public focus(_origin?: FocusOrigin, options?: FocusOptions): void {\n const element = this.element.nativeElement;\n\n if (typeof element.focus === 'function') {\n element.focus(options);\n }\n }\n\n // This method is used by the KeyManager\n public setActiveStyles(): void {\n if (!this._active) {\n this._active = true;\n this.changeDetectorRef.markForCheck();\n }\n }\n\n // This method is used by KeyManager\n public setInactiveStyles(): void {\n if (this._active) {\n this._active = false;\n this.changeDetectorRef.markForCheck();\n }\n }\n\n public select(emitEvent = true): void {\n if (!this._selected) {\n this._selected = true;\n this.changeDetectorRef.markForCheck();\n\n if (emitEvent) {\n this.emitSelectionChangeEvent();\n }\n }\n }\n\n public deselect(emitEvent = true): void {\n if (this._selected) {\n this._selected = false;\n this.changeDetectorRef.markForCheck();\n\n if (emitEvent) {\n this.emitSelectionChangeEvent();\n }\n }\n }\n\n public handleKeydown(event: KeyboardEvent): void {\n if ((event.key === 'Enter' || event.key === 'Space') && !hasModifierKey(event)) {\n this.selectViaInteraction();\n event.preventDefault();\n }\n }\n\n public selectViaInteraction(): void {\n this._selected = true;\n this.changeDetectorRef.markForCheck();\n this.emitSelectionChangeEvent(true);\n }\n\n protected abstract emitSelectionChangeEvent(isUserInput?: boolean): void;\n\n public ngOnDestroy(): void {\n this.selectionChange.complete();\n }\n\n protected getHostElement(): HTMLElement {\n return this.element.nativeElement;\n }\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { MatchBoldPipe } from '../match-bold.pipe';\nimport { BaseAutosuggestOptionComponent } from './base-autosuggest-option.component';\nimport { AutosuggestOptionComponentType } from './autosuggest-option.model';\n\nexport class AutocompleteOptionSelectionChange<T> {\n public constructor(\n public source: AutosuggestOptionComponentType<T>,\n public isUserInput = false,\n ) {}\n}\n\n@Component({\n selector: 'ndw-autosuggest-option',\n imports: [MatchBoldPipe],\n templateUrl: './autosuggest-option.component.html',\n styleUrl: './autosuggest-option.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'option',\n '[id]': 'id',\n class: 'ndw-autosuggest-option',\n '[class.ndw-autosuggest-option--selected]': 'selected',\n '[class.ndw-autosuggest-option--active]': 'active',\n '[attr.aria-selected]': 'selected',\n '(click)': 'selectViaInteraction()',\n '(keydown)': 'handleKeydown($event)',\n },\n})\nexport class AutosuggestOptionComponent<T> extends BaseAutosuggestOptionComponent<T> {\n public readonly searchTerm = input<string>('');\n public readonly label = input.required<string>();\n\n public id: string;\n\n public get viewValue(): string {\n return (this.getHostElement().textContent ?? '').trim();\n }\n\n public constructor() {\n super();\n this.id = `ndw-option-${crypto.randomUUID()}`;\n }\n\n // getLabel is required in the FocusableOption interface, which is\n // implemented by BaseAutosuggestOptionComponent\n public getLabel(): string {\n return this.viewValue;\n }\n\n protected emitSelectionChangeEvent(isUserInput = false): void {\n this.selectionChange.emit(new AutocompleteOptionSelectionChange(this, isUserInput));\n }\n}\n","<span class=\"ndw-option-text\" [innerHTML]=\"label() | matchBold: searchTerm()\"></span>\n","/* eslint max-lines: off */\n\n// Based on https://github.com/angular/components/tree/main/src/material/autocomplete\n\nimport { hasModifierKey } from '@angular/cdk/keycodes';\nimport {\n ConnectionPositionPair,\n FlexibleConnectedPositionStrategy,\n Overlay,\n OverlayConfig,\n OverlayRef,\n ViewportRuler,\n} from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n DestroyRef,\n Directive,\n ElementRef,\n forwardRef,\n inject,\n input,\n NgZone,\n OnDestroy,\n output,\n QueryList,\n ViewContainerRef,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n defer,\n delay,\n filter,\n fromEvent,\n map,\n merge,\n Observable,\n of,\n Subject,\n Subscription,\n switchMap,\n take,\n} from 'rxjs';\nimport { INPUT_CONTAINER_CLASS } from '../form-field.constant';\nimport { AutocompleteOptionSelectionChange } from './autosuggest-option/autosuggest-option.component';\nimport {\n AutosuggestOption,\n AutosuggestOptionComponentType,\n} from './autosuggest-option/autosuggest-option.model';\nimport { AutosuggestPanelComponent } from './autosuggest-panel/autosuggest-panel.component';\n\n@Directive({\n selector: 'input[ndwAutosuggest], textarea[ndwAutosuggest]',\n exportAs: 'ndwAutosuggestTrigger',\n host: {\n '[attr.role]': '\"combobox\"',\n '[attr.autocomplete]': '\"off\"',\n '[attr.aria-autocomplete]': '\"list\"',\n '[attr.aria-activedescendant]': '(panelOpen && activeOption) ? activeOption.id : null',\n '[attr.aria-expanded]': 'panelOpen.toString()',\n '[attr.aria-owns]': '!panelOpen ? null : ndwAutosuggest()?.id',\n '[attr.aria-haspopup]': '\"true\"',\n '(focus)': 'handleFocus()',\n '(blur)': 'onTouched()',\n '(input)': 'handleInput($event)',\n '(keydown)': 'handleKeydown($event)',\n '(click)': 'handleClick()',\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AutosuggestDirective),\n multi: true,\n },\n ],\n})\nexport class AutosuggestDirective<T> implements ControlValueAccessor, AfterViewInit, OnDestroy {\n public readonly ndwAutosuggest = input.required<AutosuggestPanelComponent<T>>();\n\n public readonly filter = output<string>();\n\n private overlayAttached = false;\n private overlayRef: OverlayRef | null = null;\n private portal: TemplatePortal | undefined;\n private previousValue: string | number | null | undefined;\n private closingActionsSubscription: Subscription | undefined;\n private keydownSubscription: Subscription | undefined;\n private canOpenOnNextFocus = true;\n private valueOnAttach: string | number | null = null;\n private valueOnLastKeydown: string | null = null;\n private readonly closeKeyEventStream = new Subject<void>();\n\n private readonly zone = inject(NgZone);\n private readonly element = inject<ElementRef<HTMLInputElement>>(ElementRef);\n private readonly viewContainerRef = inject(ViewContainerRef);\n private readonly overlay = inject(Overlay);\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n private readonly document = inject(DOCUMENT);\n private readonly viewportRuler = inject(ViewportRuler);\n private readonly destroyRef = inject(DestroyRef);\n\n public get panelOpen(): boolean {\n return this.overlayAttached && !!this.autosuggest?.showPanel;\n }\n\n public get activeOption(): AutosuggestOptionComponentType<T> | null {\n const keyManager = this.autosuggest?.keyManager;\n return keyManager?.activeItem ?? null;\n }\n\n public get autosuggest(): AutosuggestPanelComponent<T> {\n return this.ndwAutosuggest();\n }\n\n private get panelClosingActions(): Observable<AutocompleteOptionSelectionChange<T> | null> {\n return merge(\n this.optionSelections,\n this.autosuggest!.keyManager!.tabOut.pipe(filter(() => this.overlayAttached)),\n this.closeKeyEventStream,\n this.getOutsideClickStream(),\n this.overlayRef\n ? this.overlayRef.detachments().pipe(filter(() => this.overlayAttached))\n : of(),\n ).pipe(map((event) => (event instanceof AutocompleteOptionSelectionChange ? event : null)));\n }\n\n private readonly optionSelections: Observable<AutocompleteOptionSelectionChange<T>> = defer(\n () => {\n const options: QueryList<AutosuggestOptionComponentType<T>> = this.autosuggest.items;\n\n if (this.autosuggest && options) {\n return merge(...options.map((option) => option.selectionChange));\n }\n\n return this.zone.onStable.asObservable().pipe(\n take(1),\n switchMap(() => this.optionSelections),\n );\n },\n );\n\n public ngAfterViewInit(): void {\n const window = this.getWindow();\n\n if (typeof window !== 'undefined') {\n this.zone.runOutsideAngular(() => {\n window.addEventListener('blur', this.windowBlurHandler);\n });\n }\n }\n\n public ngOnDestroy(): void {\n const window = this.getWindow();\n\n if (typeof window !== 'undefined') {\n window.removeEventListener('blur', this.windowBlurHandler);\n }\n\n this.closingActionsSubscription?.unsubscribe();\n this.keydownSubscription?.unsubscribe();\n this.closeKeyEventStream.complete();\n this.destroyPanel();\n }\n\n public openPanel(valueOnAttach: string = this.element.nativeElement.value): void {\n this.attachOverlay(valueOnAttach);\n }\n\n public closePanel(): void {\n if (!this.overlayAttached) {\n return;\n }\n\n if (this.panelOpen) {\n this.autosuggest.closed?.emit();\n }\n\n this.autosuggest!.isOpen = false;\n this.overlayAttached = false;\n\n if (this.overlayRef?.hasAttached()) {\n this.overlayRef.detach();\n this.closingActionsSubscription?.unsubscribe();\n this.keydownSubscription?.unsubscribe();\n }\n\n this.changeDetectorRef.detectChanges();\n\n // Dispatch an input event to trigger the form-field component change detection.\n this.element.nativeElement.dispatchEvent(new Event('input'));\n }\n\n public handleFocus(): void {\n this.filter.emit(this.element.nativeElement.value);\n\n if (!this.canOpenOnNextFocus) {\n this.canOpenOnNextFocus = true;\n this.blur();\n } else if (this.canOpen()) {\n this.previousValue = this.element.nativeElement.value;\n this.attachOverlay(this.previousValue);\n }\n }\n\n public writeValue(value: unknown): void {\n Promise.resolve(null).then(() => this.setTriggerValue(value as string));\n }\n\n public registerOnChange(fn: (value: unknown) => unknown): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => unknown): void {\n this.onTouched = fn;\n }\n\n public clearValue(): void {\n this.writeValue('');\n this.onChange('');\n }\n\n public handleClick(): void {\n if (this.canOpen() && !this.panelOpen) {\n this.openPanel();\n }\n }\n\n public handleKeydown(event: KeyboardEvent): void {\n const code = event.code;\n\n if (event.key === 'Escape') {\n event.preventDefault();\n }\n\n this.valueOnLastKeydown = this.element.nativeElement.value;\n\n if (this.activeOption && code === 'Enter' && this.panelOpen) {\n this.activeOption.selectViaInteraction();\n this.resetActiveItem();\n event.preventDefault();\n } else if (this.autosuggest) {\n const prevActiveItem = this.autosuggest.keyManager?.activeItem;\n const isArrowKey = code === 'ArrowUp' || code === 'ArrowDown';\n\n if (code === 'Tab' || (isArrowKey && this.panelOpen)) {\n this.autosuggest.keyManager?.onKeydown(event);\n } else if (isArrowKey && this.canOpen()) {\n this.openPanel();\n }\n\n if (isArrowKey || this.autosuggest.keyManager?.activeItem !== prevActiveItem) {\n this.scrollToOption();\n\n if (this.activeOption) {\n this.assignOptionValue(this.activeOption.value() ?? null);\n }\n }\n }\n }\n\n public handleInput(event: KeyboardEvent): void {\n const target = event.target as HTMLInputElement;\n let value: number | string | null = target.value;\n this.filter.emit(value);\n this.autosuggest.searchTerm.set(value);\n\n // Based on `NumberValueAccessor` from forms.\n if (target.type === 'number') {\n value = value === '' ? null : parseFloat(value);\n }\n\n if (this.previousValue !== value) {\n this.previousValue = value;\n\n if (!this.autosuggest) {\n this.onChange(value);\n }\n\n if (!value) {\n this.clearPreviousSelectedOption(null, true);\n }\n\n if (this.canOpen() && this.document.activeElement === event.target) {\n const valueOnAttach = this.valueOnLastKeydown ?? this.element.nativeElement.value;\n this.valueOnLastKeydown = null;\n this.openPanel(valueOnAttach);\n }\n }\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.element.nativeElement.disabled = isDisabled;\n }\n\n private readonly handlePanelKeydown = (event: KeyboardEvent): void => {\n if (\n (event.key === 'Escape' && !hasModifierKey(event)) ||\n (event.key === 'ArrowUp' && hasModifierKey(event, 'altKey'))\n ) {\n this.closeKeyEventStream.next();\n this.resetActiveItem();\n event.stopPropagation();\n event.preventDefault();\n }\n };\n\n private readonly windowBlurHandler = (): void => {\n this.canOpenOnNextFocus =\n this.document?.activeElement !== this.element.nativeElement || this.panelOpen;\n };\n\n public onChange: (value: unknown) => void = () => {\n // noop\n };\n public onTouched = (): void => {\n // noop\n };\n\n private destroyPanel(): void {\n if (this.overlayRef) {\n this.closePanel();\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n }\n\n private attachOverlay(valueOnAttach: string = this.element.nativeElement.value): void {\n if (!this.autosuggest) {\n throw Error('Cannot open autosuggest panel because the autosuggest is not defined.');\n }\n\n let overlayRef = this.overlayRef;\n\n if (!overlayRef) {\n this.portal = new TemplatePortal(this.autosuggest.template(), this.viewContainerRef);\n overlayRef = this.overlay.create(this.getOverlayConfig());\n this.overlayRef = overlayRef;\n\n this.viewportRuler\n .change()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n if (this.panelOpen && overlayRef) {\n overlayRef.updateSize({ width: this.getHostWidth() });\n }\n });\n\n this.initKeydownEvents();\n }\n\n if (overlayRef && !overlayRef.hasAttached()) {\n overlayRef.attach(this.portal);\n this.valueOnAttach = valueOnAttach;\n this.closingActionsSubscription = this.subscribeToClosingActions();\n this.keydownSubscription = overlayRef.keydownEvents().subscribe(this.handlePanelKeydown);\n }\n\n const wasOpen = this.panelOpen;\n this.autosuggest.setVisibility();\n this.autosuggest.isOpen = true;\n this.overlayAttached = true;\n\n if (this.panelOpen && wasOpen !== this.panelOpen) {\n this.autosuggest.opened.emit();\n }\n }\n\n private initKeydownEvents(): void {\n this.overlayRef?.keydownEvents()?.subscribe((event) => {\n if (event.code === 'ArrowUp' && event.altKey) {\n this.resetActiveItem();\n this.closeKeyEventStream.next();\n\n event.stopPropagation();\n event.preventDefault();\n this.blur();\n }\n });\n }\n\n private getOverlayConfig(): OverlayConfig {\n return new OverlayConfig({\n positionStrategy: this.getOverlayPosition(),\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n width: this.getHostWidth(),\n });\n }\n\n private getHostWidth(): number {\n return this.bindingElement().getBoundingClientRect().width;\n }\n\n private bindingElement(): HTMLElement {\n const element = this.element.nativeElement;\n const parentElement = element.parentElement;\n return parentElement?.classList?.contains(INPUT_CONTAINER_CLASS) ? parentElement : element;\n }\n\n private getOverlayPosition(): FlexibleConnectedPositionStrategy {\n const positions = [\n new ConnectionPositionPair(\n { originX: 'start', originY: 'bottom' },\n { overlayX: 'start', overlayY: 'top' },\n ),\n ];\n\n return this.overlay\n .position()\n .flexibleConnectedTo(this.bindingElement())\n .withPositions(positions)\n .withFlexibleDimensions(false)\n .withPush(false);\n }\n\n private resetActiveItem(): void {\n const activeItemIndex = 0;\n\n if (this.autosuggest.keyManager) {\n this.autosuggest.keyManager.setActiveItem(activeItemIndex);\n }\n }\n\n private blur(): void {\n this.element.nativeElement.blur();\n }\n\n private getOutsideClickStream(): Observable<Event> {\n return merge(fromEvent(this.document, 'click'), fromEvent(this.document, 'touchend')).pipe(\n filter((event: Event): boolean => {\n const clickTarget = event.target as HTMLElement;\n\n return (\n this.overlayAttached &&\n clickTarget !== this.element.nativeElement &&\n this.document.activeElement !== this.element.nativeElement &&\n !!this.overlayRef &&\n !this.overlayRef.overlayElement.contains(clickTarget)\n );\n }),\n );\n }\n\n private subscribeToClosingActions(): Subscription {\n const items = this.autosuggest!.items;\n\n const firstStable = this.zone.onStable.asObservable().pipe(take(1));\n const optionChanges = items.changes.pipe(delay(0));\n\n return merge(firstStable, optionChanges)\n .pipe(\n switchMap(() => {\n const wasOpen = this.panelOpen;\n this.resetActiveItem();\n this.autosuggest.setVisibility();\n\n if (this.panelOpen) {\n this.overlayRef?.updatePosition();\n\n if (wasOpen !== this.panelOpen) {\n this.autosuggest.opened?.emit();\n }\n }\n\n return this.panelClosingActions;\n }),\n take(1),\n )\n .subscribe((event) => this.setValueAndClose(event));\n }\n\n private setValueAndClose(event: AutocompleteOptionSelectionChange<T> | null): void {\n const toSelect = event ? event.source : null;\n\n if (toSelect) {\n this.clearPreviousSelectedOption(toSelect);\n this.onChange(toSelect.value());\n this.assignOptionValue(toSelect.value() ?? null);\n this.autosuggest.emitSelectEvent(toSelect);\n this.element.nativeElement.focus();\n } else if (this.element.nativeElement.value !== this.valueOnAttach) {\n this.clearPreviousSelectedOption(null);\n this.assignOptionValue(null);\n this.onChange(null);\n }\n\n this.closePanel();\n }\n\n private assignOptionValue(value: AutosuggestOption<T> | null): void {\n const toDisplay = this.getDisplayValue(value);\n\n if (value == null) {\n this.clearPreviousSelectedOption(null, false);\n }\n\n this.updateNativeInputValue(toDisplay ?? '');\n }\n\n private getDisplayValue(value: AutosuggestOption<T> | null): string {\n if (!value) {\n return '';\n }\n\n const displayWithFn = this.autosuggest.displayWith();\n return this.autosuggest && displayWithFn ? displayWithFn(value) : (value as string);\n }\n\n private updateNativeInputValue(value: string): void {\n this.element.nativeElement.value = value;\n this.previousValue = value;\n this.changeDetectorRef.markForCheck();\n }\n\n private scrollToOption(): void {\n const index = this.autosuggest.keyManager?.activeItemIndex ?? 0;\n\n if (index === 0) {\n this.autosuggest.setScrollTop(0);\n } else {\n const newScrollPosition = index * 26;\n this.autosuggest.setScrollTop(newScrollPosition);\n }\n }\n\n private setTriggerValue(value: string): void {\n const inputValue = value ?? '';\n\n this.element.nativeElement.value = inputValue;\n this.previousValue = inputValue;\n }\n\n private clearPreviousSelectedOption(\n skip: AutosuggestOptionComponentType<T> | null,\n emitEvent?: boolean,\n ): void {\n this.onChange(null);\n this.autosuggest.items?.forEach((option: AutosuggestOptionComponentType<T>) => {\n if (option !== skip && option.selected) {\n option.deselect(emitEvent);\n }\n });\n }\n\n private canOpen(): boolean {\n const element = this.element.nativeElement;\n return !element.readOnly && !element.disabled;\n }\n\n private getWindow(): Window {\n return this.document?.defaultView ?? window;\n }\n}\n","import { ChangeDetectionStrategy, Component, output } from '@angular/core';\nimport { IconComponent } from '../../../icon';\nimport {\n AutocompleteOptionSelectionChange,\n BaseAutosuggestOptionComponent,\n} from '../autosuggest-option';\n\n@Component({\n selector: 'ndw-autosuggest-add-option',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconComponent],\n templateUrl: './autosuggest-add-option.component.html',\n styleUrl: '../autosuggest-option/autosuggest-option.component.scss',\n host: {\n role: 'option',\n class: 'ndw-autosuggest-option ndw-autosuggest-option--add',\n '[class.ndw-autosuggest-option--active]': 'active',\n '[class.ndw-autosuggest-option--selected]': 'selected',\n '[attr.aria-selected]': 'selected',\n '(click)': 'selectViaInteraction()',\n '(keydown)': 'handleKeydown($event)',\n },\n})\nexport class AutosuggestAddOptionComponent<T> extends BaseAutosuggestOptionComponent<T> {\n public readonly addOption = output<string>();\n\n protected emitSelectionChangeEvent(isUserInput = false): void {\n this.addOption.emit(this.value() as string);\n this.selectionChange.emit(new AutocompleteOptionSelectionChange(this, isUserInput));\n }\n}\n","<ndw-icon [size]=\"'sm'\">add</ndw-icon> Voeg <span class=\"truncate\">'{{ value() }}'</span> toe\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n OnDestroy,\n output,\n QueryList,\n signal,\n TemplateRef,\n viewChild,\n ViewChildren,\n} from '@angular/core';\n\nimport { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { IconComponent } from '../../../icon';\nimport { AutosuggestAddOptionComponent } from '../autosuggest-add-option';\nimport { AutosuggestOptionComponent } from '../autosuggest-option';\nimport {\n AutosuggestOption,\n AutosuggestOptions,\n AutosuggestOptionComponentType,\n} from '../autosuggest-option/autosuggest-option.model';\n\nconst DEFAULTMAXRESULTS = 100;\nconst DEFAULTNORESULTTEXT = 'Geen resultaten gevonden. Probeer een andere zoekterm.';\n\n@Component({\n selector: 'ndw-autosuggest',\n imports: [\n AutosuggestOptionComponent,\n AutosuggestAddOptionComponent,\n IconComponent,\n NgTemplateOutlet,\n ],\n templateUrl: './autosuggest-panel.component.html',\n styleUrl: './autosuggest-panel.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'apAutocomplete',\n})\nexport class AutosuggestPanelComponent<T> implements AfterViewInit, OnDestroy {\n // Inputs\n public readonly suggestions = input<AutosuggestOptions<T>>([]);\n public readonly enableAddOption = input<boolean>(false);\n public readonly maxResults = input<number>(DEFAULTMAXRESULTS);\n public readonly noResultText = input<string>(DEFAULTNORESULTTEXT);\n public readonly displayWith = input<(value: AutosuggestOption<T>) => string>();\n\n // Outputs\n public readonly opened = output<void>();\n public readonly closed = output<void>();\n public readonly optionSelected = output<AutosuggestOption<T> | null>();\n public readonly addOption = output<string>();\n\n // View References\n @ViewChildren('option')\n public items!: QueryList<AutosuggestOptionComponentType<T>>;\n public readonly template = viewChild.required(TemplateRef);\n public readonly panel = viewChild.required<ElementRef<HTMLDivElement>>('panel');\n\n // Variables & Signals\n public readonly searchTerm = signal<string>('');\n public readonly slicedOptions = computed(() => this.suggestions().slice(0, this.maxResults()));\n public readonly hasMoreResults = computed(() => this.suggestions().length > this.maxResults());\n public readonly numberOfLeftOverResults = computed(\n () => this.suggestions().length - this.maxResults(),\n );\n\n public keyManager: ActiveDescendantKeyManager<AutosuggestOptionComponentType<T>> | undefined;\n public showPanel = false;\n public id: string;\n public isOpen = false;\n\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n\n public constructor() {\n this.id = `ndw-autosuggest-${crypto.randomUUID()}`;\n }\n\n public ngAfterViewInit(): void {\n this.keyManager = new ActiveDescendantKeyManager<AutosuggestOptionComponentType<T>>(this.items)\n .withPageUpDown()\n .withWrap()\n .withTypeAhead();\n this.setVisibility();\n }\n\n public ngOnDestroy(): void {\n this.keyManager?.destroy();\n }\n\n // Methods\n public getLabelOption(option: AutosuggestOption<T>): string {\n const displayFn = this.displayWith();\n return displayFn ? displayFn(option) : (option as string);\n }\n\n public setScrollTop(scrollTop: number): void {\n const panel = this.panel();\n\n if (panel) {\n panel.nativeElement.scrollTop = scrollTop;\n }\n }\n\n public setVisibility(): void {\n this.showPanel = !!this.items?.length;\n this.changeDetectorRef.markForCheck();\n }\n\n public emitSelectEvent(option: AutosuggestOptionComponentType<T>): void {\n this.optionSelected.emit(option.value() ?? null);\n }\n\n public addNewOption(value: string): void {\n this.optionSelected.emit(value as AutosuggestOption<T>);\n this.addOption.emit(value);\n }\n}\n","<ng-template>\n @if (suggestions().length === 0 && !enableAddOption()) {\n <div class=\"ndw-autosuggest-panel\">\n <ng-container *ngTemplateOutlet=\"emptyResults\"></ng-container>\n </div>\n } @else {\n <datalist #panel class=\"ndw-autosuggest-panel\">\n @for (option of slicedOptions(); track option) {\n <ndw-autosuggest-option\n #option\n [value]=\"option\"\n [label]=\"getLabelOption(option)\"\n [searchTerm]=\"searchTerm()\"\n />\n }\n\n @if (enableAddOption()) {\n @if (!!searchTerm().trim()) {\n <ndw-autosuggest-add-option\n #option\n [value]=\"searchTerm()\"\n (addOption)=\"addNewOption($event)\"\n />\n } @else if (!suggestions().length) {\n <ng-container *ngTemplateOutlet=\"emptyResults\"></ng-container>\n }\n }\n\n @if (hasMoreResults()) {\n <p class=\"ndw-autosuggest-panel__more-results\">\n Er zijn nog {{ numberOfLeftOverResults() }} niet-getoonde resultaten, maak je zoekopdracht\n specifieker\n </p>\n }\n </datalist>\n }\n</ng-template>\n\n<ng-template #emptyResults>\n <div class=\"ndw-autosuggest-panel__empty\">\n <ndw-icon>sentiment_dissatisfied</ndw-icon>\n {{ noResultText() }}\n </div>\n</ng-template>\n","import { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, input, model } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { IconComponent } from '../../icon';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.checked]': 'checked()',\n '[class.disabled]': 'disabled()',\n '[class.indeterminate]': 'indeterminate()',\n },\n imports: [IconComponent, NgClass],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: CheckboxComponent,\n multi: true,\n },\n ],\n selector: 'ndw-checkbox',\n styleUrls: ['../checkable-input.scss', './checkbox.component.scss'],\n templateUrl: './checkbox.component.html',\n})\nexport class CheckboxComponent implements ControlValueAccessor {\n public checked = model(false);\n public switch = input(false);\n public disabled = input(false);\n public error = input(false);\n public success = input(false);\n public indeterminate = input(false);\n public required = input(false);\n\n public uuid = crypto.randomUUID();\n\n public onClick(): void {\n if (this.disabled()) {\n return;\n }\n\n this.checked.set(!this.checked());\n }\n\n public onKeyDown(event: KeyboardEvent): void {\n if (event.key !== 'Enter' || this.disabled()) {\n return;\n }\n\n this.checked.set(!this.checked());\n event.preventDefault();\n }\n\n public writeValue(value: boolean): void {\n this.checked.set(value);\n }\n\n public registerOnChange(fn: (value: boolean) => void): void {\n this.checked.subscribe(fn);\n }\n\n public registerOnTouched(): void {\n // noop\n }\n}\n","<input\n type=\"checkbox\"\n [id]=\"'checkbox-' + uuid\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [required]=\"required()\"\n aria-hidden=\"true\"\n/>\n<div\n [ngClass]=\"{ error: error(), success: success(), checkbox: !switch(), switch: switch() }\"\n role=\"checkbox\"\n [attr.aria-checked]=\"indeterminate() ? 'mixed' : checked()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-labelledby]=\"'checkbox-label-' + uuid\"\n (click)=\"onClick()\"\n (keydown)=\"onKeyDown($event)\"\n [tabindex]=\"disabled() ? -1 : 0\"\n>\n @if (!switch()) {\n @if (checked()) {\n <ndw-icon>check</ndw-icon>\n } @else if (indeterminate()) {\n <ndw-icon>remove</ndw-icon>\n }\n } @else {\n <span class=\"switch-icon\">\n @if (checked()) {\n <ndw-icon>check</ndw-icon>\n } @else {\n <ndw-icon>close</ndw-icon>\n }\n </span>\n }\n</div>\n<label\n id=\"checkbox-label-{{ uuid }}\"\n tabindex=\"-1\"\n [for]=\"'checkbox-' + uuid\"\n [ngClass]=\"{ 'switch-text': switch() }\"\n (click)=\"onClick()\"\n (keydown)=\"onKeyDown($event)\"\n>\n <ng-content />\n</label>\n","import { ChangeDetectionStrategy, Component, contentChildren } from '@angular/core';\nimport { CheckboxComponent } from '../checkbox';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ndw-checkbox-group',\n styleUrl: './checkbox-group.component.scss',\n templateUrl: './checkbox-group.component.html',\n})\nexport class CheckboxGroupComponent {\n public checkboxes = contentChildren(CheckboxComponent);\n}\n","<ng-content />\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { IconComponent } from '../../icon';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconComponent],\n selector: 'ndw-error',\n styleUrl: './error.component.scss',\n templateUrl: './error.component.html',\n})\nexport class ErrorComponent {}\n","<ndw-icon>warning</ndw-icon>\n<ng-content />\n","import {\n Component,\n viewChild,\n input,\n model,\n ElementRef,\n computed,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { IconComponent } from '../../icon';\n\nimport { FileUploadText } from './file-upload-text.interface';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.tabindex]': '!this.canEdit() ? -1 : 0',\n '[class.disabled]': 'disabled()',\n '[class.dragging]': 'draggingOver()',\n '[class.error]': 'error()',\n '[class.file-selected]': '!!selectedFile()',\n '[class.readonly]': 'readonly()',\n '[class.success]': 'success()',\n '(click)': 'onClick()',\n '(dragenter)': 'onDragEnter($event)',\n '(dragleave)': 'onDragLeave($event)',\n '(dragover)': 'onDragOver($event)',\n '(drop)': 'onDrop($event)',\n '(keydown)': 'onKeyDown($event)',\n },\n imports: [IconComponent],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: FileUploadComponent,\n multi: true,\n },\n ],\n selector: 'ndw-file-upload',\n styleUrl: './file-upload.component.scss',\n templateUrl: './file-upload.component.html',\n})\nexport class FileUploadComponent implements ControlValueAccessor {\n public readonly fileInputElement = viewChild.required<ElementRef<HTMLInputElement>>('fileInput');\n public readonly allowedFileTypeRegex = input<RegExp>();\n public readonly fileUploadText = input<FileUploadText>({ dragText: '', dragOverText: '' });\n public readonly uploadDate = input('');\n public readonly maxFileSizeInBytes = input(1000000);\n public readonly disabled = input(false);\n public readonly readonly = input(false);\n public readonly draggingOver = model(false);\n public readonly selectedFile = model<File | null>();\n public readonly error = model(false);\n public readonly success = model(false);\n public readonly incorrectFileType = model(false);\n public readonly incorrectFileSize = model(false);\n private readonly canEdit = computed(\n () => !this.selectedFile() && !this.disabled() && !this.readonly(),\n );\n\n public onKeyDown(event: KeyboardEvent): void {\n if (event.key !== 'Enter' && event.key !== ' ') {\n return;\n }\n\n const target = event.target as HTMLElement;\n if (target.tagName.toLowerCase() === 'button') {\n return;\n }\n\n if (this.canEdit()) {\n this.fileInputElement().nativeElement.click();\n }\n }\n\n public onClick(): void {\n if (this.canEdit()) {\n this.fileInputElement().nativeElement.click();\n }\n }\n\n public onDragLeave(event: DragEvent): void {\n event?.preventDefault();\n this.draggingOver.set(false);\n }\n\n public onDragOver(event: DragEvent): void {\n event?.preventDefault();\n if (this.canEdit()) {\n this.draggingOver.set(true);\n }\n }\n\n public onDragEnter(event: DragEvent): void {\n event?.preventDefault();\n if (this.canEdit()) {\n this.draggingOver.set(true);\n }\n }\n\n public onDrop(event: DragEvent): void {\n event.preventDefault();\n if (this.canEdit()) {\n const file: File | undefined = event.dataTransfer?.files[0];\n if (file) {\n this.selectFile(file);\n }\n this.draggingOver.set(false);\n }\n }\n\n public onDownloadFileClick(): void {\n const url = window.URL.createObjectURL(this.selectedFile()!);\n const linkElement = document.createElement('a');\n linkElement.href = url;\n linkElement.download = this.selectedFile()!.name;\n document.body.appendChild(linkElement);\n linkElement.click();\n document.body.removeChild(linkElement);\n window.URL.revokeObjectURL(url);\n }\n\n public onDeleteClick(event: Event): void {\n event?.stopPropagation();\n this.resetFile();\n this.incorrectFileType.set(false);\n this.incorrectFileSize.set(false);\n }\n\n public displayText(): string {\n if (!this.selectedFile()) {\n return this.draggingOver()\n ? this.fileUploadText().dragOverText\n : this.fileUploadText().dragText;\n } else {\n return '';\n }\n }\n\n public onFileSelected(event: Event): void {\n if (this.canEdit()) {\n const inputElement = event.target as HTMLInputElement;\n if (inputElement.files) {\n const file: File = inputElement.files[0];\n this.selectFile(file);\n }\n }\n }\n\n public writeValue(value: File): void {\n this.selectedFile.set(value);\n }\n\n public registerOnChange(fn: (value: File | null | undefined) => void): void {\n this.selectedFile.subscribe(fn);\n }\n\n public registerOnTouched(): void {\n // noop\n }\n\n private selectFile(file: File): void {\n if (!file) {\n return;\n }\n\n if (!this.correctFileType(file.type)) {\n this.resetFile();\n this.incorrectFileSize.set(false);\n this.incorrectFileType.set(true);\n return;\n }\n\n if (!this.correctFileSize(file.size)) {\n this.resetFile();\n this.incorrectFileType.set(false);\n this.incorrectFileSize.set(true);\n return;\n }\n\n this.incorrectFileSize.set(false);\n this.incorrectFileType.set(false);\n\n this.selectedFile.set(file);\n }\n\n private resetFile(): void {\n this.selectedFile.set(null);\n this.fileInputElement().nativeElement.value = '';\n }\n\n private correctFileSize(fileSize: number): boolean {\n return this.maxFileSizeInBytes() > fileSize;\n }\n\n private correctFileType(fileType: string): boolean {\n return this.allowedFileTypeRegex()?.test(fileType) ? true : false;\n }\n}\n","@if (!draggingOver() && !selectedFile()) {\n <ndw-icon>cloud_upload</ndw-icon>\n} @else if (draggingOver() && !selectedFile()) {\n <ndw-icon>pageless</ndw-icon>\n}\n\n{{ displayText() }}\n\n@if (selectedFile()) {\n <div class=\"file-name\">\n <button\n class=\"file-name-text\"\n (click)=\"onDownloadFileClick()\"\n (keydown.enter)=\"onDownloadFileClick()\"\n >\n {{ selectedFile()?.name }}\n </button>\n\n <div class=\"file-delete-icon\">\n <button (click)=\"onDeleteClick($event)\" (keydown.enter)=\"onDeleteClick($event)\">\n <ndw-icon>delete</ndw-icon>\n </button>\n </div>\n </div>\n\n <p class=\"file-date\">\n {{ uploadDate() }}\n </p>\n}\n\n<input type=\"file\" #fileInput hidden aria-hidden=\"true\" (change)=\"onFileSelected($event)\" />\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'tooltip',\n },\n selector: 'ndw-tooltip',\n styleUrl: './tooltip.component.scss',\n templateUrl: './tooltip.component.html',\n})\nexport class TooltipComponent {\n public text = input.required<string>();\n}\n","{{ text() }}\n","import { AriaDescriber } from '@angular/cdk/a11y';\nimport { FlexibleConnectedPositionStrategy, Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n ComponentRef,\n Directive,\n ElementRef,\n inject,\n input,\n OnChanges,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { TooltipComponent } from './tooltip.component';\n\n@Directive({\n selector: '[ndwTooltip]',\n host: {\n 'aria-hidden': 'false',\n '(focus)': 'show()',\n '(blur)': 'hide()',\n '(document:keydown.escape)': 'hideOnEscape()',\n '(keydown.escape)': 'hide()',\n '(mouseenter)': 'show()',\n '(mouseleave)': 'hide()',\n tabindex: '0',\n },\n})\nexport class TooltipDirective implements OnChanges, OnDestroy, OnInit {\n public text = input.required<string>({ alias: 'ndwTooltip' });\n\n private readonly elementRef = inject(ElementRef);\n private readonly overlay = inject(Overlay);\n private readonly ariaDescriber = inject(AriaDescriber);\n\n private overlayRef: OverlayRef | null = null;\n\n public ngOnInit(): void {\n const positionStrategy = this.getFlexibleConnectedPositionStrategy();\n this.overlayRef = this.overlay.create({ positionStrategy });\n this.updateAriaDescription();\n }\n\n public ngOnChanges(): void {\n const positionStrategy = this.getFlexibleConnectedPositionStrategy();\n this.overlayRef?.updatePositionStrategy(positionStrategy);\n }\n\n public ngOnDestroy(): void {\n this.hide();\n this.overlayRef?.dispose();\n }\n\n protected show(): void {\n if (!this.text().length || this.overlayRef === null || this.overlayRef.hasAttached()) {\n return;\n }\n\n const portal = new ComponentPortal(TooltipComponent);\n const tooltipRef: ComponentRef<TooltipComponent> = this.overlayRef.attach(portal);\n tooltipRef.instance.text = this.text;\n }\n\n protected hide(): void {\n this.overlayRef?.detach();\n }\n\n protected hideOnEscape(): void {\n this.hide();\n }\n\n private updateAriaDescription(): void {\n const element = this.elementRef.nativeElement;\n this.ariaDescriber.describe(element, this.text());\n }\n\n private getFlexibleConnectedPositionStrategy(): FlexibleConnectedPositionStrategy {\n return this.overlay\n .position()\n .flexibleConnectedTo(this.elementRef.nativeElement)\n .withPositions([\n {\n offsetX: this.elementRef.nativeElement.offsetWidth / 2 - 16,\n offsetY: -8,\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n {\n offsetX: this.elementRef.nativeElement.offsetWidth / 2 - 16,\n offsetY: 8,\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n ]);\n }\n}\n","import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { IconComponent } from '../../icon';\nimport { InputDirective } from '../input/input.directive';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconComponent],\n selector: 'ndw-input-button',\n templateUrl: './input-button.component.html',\n})\nexport class InputButtonComponent {\n public readonly disabled = input(false);\n public readonly input = input<InputDirective>();\n public readonly ariaLabel = input<string>('');\n public readonly alternative = input<boolean>(false);\n\n public readonly buttonClicked = output();\n\n protected onClick(): void {\n this.input()?.element?.focus();\n this.buttonClicked.emit();\n }\n}\n","<button\n ndwButton\n extra-small\n tertiary\n type=\"button\"\n [attr.alternative]=\"alternative() ? true : null\"\n class=\"input-icon\"\n [class.disabled]=\"disabled()\"\n [attr.aria-label]=\"ariaLabel()\"\n (click)=\"onClick()\"\n>\n <ndw-icon>\n <ng-content />\n </ndw-icon>\n</button>\n","import {\n ChangeDetectionStrategy,\n Component,\n input,\n OnDestroy,\n OnInit,\n output,\n signal,\n} from '@angular/core';\nimport { InputButtonComponent } from '../input-button/input-button.component';\nimport { InputDirective } from '../input/input.directive';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [InputButtonComponent],\n selector: 'ndw-clear-search-button',\n styleUrls: ['./clear-search-button.component.scss'],\n templateUrl: './clear-search-button.component.html',\n})\nexport class ClearSearchButtonComponent implements OnInit, OnDestroy {\n public readonly disabled = input(false);\n public readonly input = input<InputDirective>();\n public readonly ariaLabel = input<string>('');\n\n public readonly buttonClicked = output<void>();\n\n protected readonly inputValue = signal<string>('');\n\n private readonly onInput = (): void => {\n this.inputValue.set(this.input()?.element.value ?? '');\n };\n\n public ngOnInit(): void {\n this.onInput();\n this.input()?.element.addEventListener('input', this.onInput);\n }\n\n public ngOnDestroy(): void {\n this.input()?.element.removeEventListener('input', this.onInput);\n }\n\n protected clear(): void {\n const inputElement = this.input()?.element;\n if (!inputElement) {\n return;\n }\n\n inputElement.value = '';\n inputElement.dispatchEvent(new Event('input'));\n this.inputValue.set('');\n this.buttonClicked.emit();\n }\n}\n","@if (inputValue() !== '') {\n <ndw-input-button [alternative]=\"true\" (buttonClicked)=\"clear()\">close</ndw-input-button>\n}\n","export enum FormFieldElement {\n Dropdown = 'ndw-dropdown',\n Input = 'input',\n Select = 'select',\n Textarea = 'textarea',\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ndw-info',\n styleUrl: './info.component.scss',\n templateUrl: './info.component.html',\n})\nexport class InfoComponent {}\n","<ng-content />\n","import { DestroyRef, Directive, ElementRef, inject, OnInit } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { AbstractControl, NgControl, Validators } from '@angular/forms';\nimport { fromEvent } from 'rxjs';\n\n@Directive({\n selector: 'input[ndwInput], select[ndwInput], textarea[ndwInput]',\n})\nexport class InputDirective implements OnInit {\n public set disabled(disabled: boolean) {\n this.element.disabled = disabled;\n }\n\n public set error(error: boolean) {\n this.element.toggleAttribute('error', error);\n }\n\n public set success(success: boolean) {\n this.element.toggleAttribute('success', success);\n }\n\n public set id(id: string) {\n this.element.id = id;\n }\n\n public set ariaDescribedBy(id: string) {\n this.element.setAttribute('aria-describedby', id);\n }\n\n private readonly elementRef = inject(ElementRef);\n private readonly destroyRef = inject(DestroyRef);\n private readonly ngControl = inject(NgControl, { optional: true });\n\n public get element(): HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement {\n return this.elementRef.nativeElement as\n | HTMLInputElement\n | HTMLSelectElement\n | HTMLTextAreaElement;\n }\n\n public get control(): AbstractControl | null {\n return this.ngControl ? this.ngControl.control : null;\n }\n\n public ngOnInit(): void {\n this.updateRequiredAttribute();\n\n this.control?.statusChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.updateRequiredAttribute());\n\n // Add ndw-changed attribute when the input is changed and has a value\n fromEvent(this.element, 'input')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.setSelectPlaceholderAttribute());\n\n this.setSelectPlaceholderAttribute();\n }\n\n private setSelectPlaceholderAttribute(): void {\n if (this.element instanceof HTMLSelectElement) {\n const isPlaceholderSelected =\n this.element.selectedIndex === 0 &&\n this.element.options[this.element.selectedIndex].disabled;\n this.element.toggleAttribute('ndw-placeholder', isPlaceholderSelected);\n }\n }\n\n private updateRequiredAttribute(): void {\n if (this.control) {\n // Mark element as required when the control has a 'required' validator.\n // This will show an asterisk (*)\n this.element.required = this.control.hasValidator(Validators.required);\n }\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { IconComponent } from '../../icon';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconComponent],\n selector: 'ndw-input-icon',\n styleUrls: ['./input-icon.component.scss'],\n templateUrl: './input-icon.component.html',\n})\nexport class InputIconComponent {}\n","<ndw-icon class=\"input-icon\">\n <ng-content />\n</ndw-icon>\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ndw-option',\n template: '',\n})\nexport class OptionComponent {\n public value = input.required();\n public label = input.required<string>();\n public description = input<string>();\n public required = input(false);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChildren,\n inject,\n input,\n model,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl, Validators } from '@angular/forms';\n\nimport { ButtonDirective } from '../../button';\nimport { OptionGroupMode } from './option-group.model';\nimport { OptionComponent } from './option.component';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.required]': 'isRequiredOrHasRequiredValidator',\n '[class.grid-columns]': 'fluidColumns() !== null',\n '[style.gridTemplateColumns]': 'fluidColumnStyle()',\n },\n imports: [ButtonDirective],\n selector: 'ndw-option-group',\n styleUrls: ['./option-group.component.scss'],\n templateUrl: './option-group.component.html',\n})\nexport class OptionGroupComponent implements ControlValueAccessor {\n public readonly fluid = input(false);\n public readonly fluidColumns = input<number | null>(null);\n public readonly disabled = model(false);\n public readonly mode = input<OptionGroupMode>('multiple');\n public readonly required = input(false);\n public readonly children = contentChildren(OptionComponent);\n protected readonly checkedValues = model<unknown[]>([]);\n private readonly ngControl = inject(NgControl, { optional: true });\n protected readonly fluidColumnStyle = computed(() =>\n this.fluidColumns() ? `repeat(${this.fluidColumns()}, 1fr)` : null,\n );\n protected readonly uuid = crypto.randomUUID();\n\n public constructor() {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public get isRequiredOrHasRequiredValidator(): boolean | null {\n return this.required() || this.ngControl?.control?.hasValidator(Validators.required)\n ? true\n : null;\n }\n\n private onChange: (value: unknown[]) => void = () => {\n // noop\n };\n\n protected toggleValue(value: unknown): void {\n if (this.mode() === 'single') {\n this.checkedValues.set([value]);\n this.onChange(this.checkedValues());\n } else {\n const state = [...this.checkedValues()];\n const index = state.indexOf(value);\n if (index >= 0) {\n state.splice(index, 1);\n } else {\n state.push(value);\n }\n\n this.checkedValues.set(state);\n this.onChange(this.checkedValues());\n }\n }\n\n public writeValue(value: unknown[]): void {\n this.checkedValues.set(value ?? []);\n }\n\n public registerOnChange(fn: (value: unknown[]) => void): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(): void {\n // noop\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n}\n","@for (child of children(); track child.value()) {\n <label\n ndwButton\n [class.fluid]=\"fluid() && fluidColumns() === null\"\n [class.gridCell]=\"fluidColumns() !== null\"\n [attr.disabled]=\"disabled() ? 'true' : null\"\n [attr.secondary]=\"checkedValues().includes(child.value()) ? null : 'true'\"\n [attr.aria-label]=\"child.description() ?? child.label()\"\n >\n <input\n [type]=\"mode() === 'multiple' ? 'checkbox' : 'radio'\"\n [name]=\"mode() === 'multiple' ? 'option-group-radio-' + uuid : null\"\n [value]=\"child.value()\"\n [disabled]=\"disabled()\"\n [checked]=\"checkedValues().includes(child.value())\"\n (change)=\"toggleValue(child.value())\"\n />\n {{ child.label() }}\n </label>\n}\n","export function createYearRange(minDate: Date, maxDate: Date): number[] {\n const minYear = minDate.getFullYear();\n const maxYear = maxDate.getFullYear();\n const yearCount = maxYear - minYear + 1;\n return Array.from({ length: yearCount }, (_, index) => minYear + index);\n}\n\nexport function createMonthOptions(monthLabels: string[]): { label: string; value: number }[] {\n return monthLabels.map((month, index) => ({\n label: month,\n value: index + 1,\n }));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n inject,\n input,\n model,\n OnInit,\n viewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor, FormsModule, NgControl } from '@angular/forms';\n\nimport { ButtonDirective } from '../../button';\nimport { IconComponent } from '../../icon';\nimport { PopoverTriggerDirective } from '../../popover';\nimport { InputDirective } from '../input';\nimport { OptionComponent, OptionGroupComponent } from '../option-group';\n\nimport { createMonthOptions, createYearRange } from './month-input-utils';\n\nconst defaultMonthLabels = [\n 'Jan',\n 'Feb',\n 'Mrt',\n 'Apr',\n 'Mei',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Okt',\n 'Nov',\n 'Dec',\n];\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FormsModule,\n IconComponent,\n PopoverTriggerDirective,\n OptionGroupComponent,\n OptionComponent,\n InputDirective,\n ButtonDirective,\n ],\n selector: 'ndw-month-input',\n styleUrl: './month-input.component.scss',\n templateUrl: './month-input.component.html',\n})\nexport class MonthInputComponent implements ControlValueAccessor, OnInit {\n public readonly disabled = model(false);\n public readonly required = input(false);\n public readonly showMonthPickerLabel = input<string>('Selecteer maand');\n public readonly placeholder = input<string>('JJJJ-MM');\n public readonly yearPlaceholder = input<string>('Jaar');\n public readonly minDate = input<Date>(new Date(2020, 0, 1));\n public readonly maxDate = input<Date>(new Date(2026, 11, 31));\n public readonly monthLabels = input<string[]>(defaultMonthLabels);\n public readonly input = viewChild(InputDirective);\n public readonly inputElement = computed(() => this.input()?.element);\n\n protected showMonthPicker = false;\n protected readonly selectedYear = model<number>(new Date().getFullYear());\n protected readonly selectedMonth = model<number | null>(null);\n protected readonly selectedDate = computed<Date | null>(() => {\n const year = this.selectedYear();\n const month = this.selectedMonth();\n const date = year && month ? new Date(year, month - 1, 1) : null;\n return date && date >= this.minDate() && date <= this.maxDate() ? date : null;\n });\n protected readonly inputValue = computed(() => {\n const year = this.selectedYear();\n const month = this.selectedMonth();\n return year && month ? `${year}-${month.toString().padStart(2, '0')}` : null;\n });\n protected readonly ngControl = inject(NgControl, { optional: true });\n\n protected readonly years = computed(() => createYearRange(this.minDate(), this.maxDate()));\n protected readonly months = computed(() => createMonthOptions(this.monthLabels()));\n\n private onChange: (value: Date | null) => void = () => {\n // noop\n };\n private readonly destroyRef = inject(DestroyRef);\n\n public constructor() {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public ngOnInit(): void {\n if (this.ngControl) {\n this.ngControl.statusChanges?.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n const input = this.input();\n if (input && this.ngControl) {\n input.error = this.ngControl.invalid === true;\n }\n });\n }\n }\n\n public writeValue(value: Date | null): void {\n if (value) {\n this.selectedYear.set(value.getFullYear());\n this.selectedMonth.set(value.getMonth() + 1);\n } else {\n this.selectedYear.set(new Date().getFullYear());\n this.selectedMonth.set(null);\n }\n }\n\n public registerOnChange(fn: (value: Date | null) => void): void {\n this.onChange = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n\n public registerOnTouched(): void {\n // noop\n }\n\n protected onInputChanged(value: string): void {\n const [year, month] = value.split('-');\n this.selectedYear.set(parseInt(year, 10));\n this.selectedMonth.set(parseInt(month, 10));\n this.onChange(this.selectedDate());\n }\n\n protected onYearSelected(year: string): void {\n this.selectedYear.set(parseInt(year, 10));\n this.onChange(this.selectedDate());\n }\n\n protected onMonthSelected(month: number): void {\n this.selectedMonth.set(month);\n this.onChange(this.selectedDate());\n }\n\n protected onKeyDown(event: KeyboardEvent): void {\n if (event.key === 'ArrowDown') {\n this.adjustMonth(-1);\n event.preventDefault();\n return;\n } else if (event.key === 'ArrowUp') {\n this.adjustMonth(+1);\n event.preventDefault();\n return;\n }\n\n const currentValue = (event.target as HTMLInputElement)?.value;\n const validKeys = [];\n\n if (currentValue.length === 4) {\n validKeys.push('-');\n } else {\n validKeys.push('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');\n }\n\n const isValidKey = validKeys.includes(event.key);\n const isPrintableKey = event.key.length === 1; // Allow pressing special keys like F12, etc.\n if (!isValidKey && isPrintableKey) {\n event.preventDefault();\n }\n }\n\n private adjustMonth(monthIncrement: number): void {\n const now = new Date();\n const date = this.selectedDate() ?? new Date(now.getFullYear(), now.getMonth(), 1);\n\n const adjustedDate = new Date(date); // Prevent mutating this.selectedDate()\n adjustedDate.setMonth(adjustedDate.getMonth() + monthIncrement);\n\n if (adjustedDate >= this.minDate() && adjustedDate <= this.maxDate()) {\n this.writeValue(adjustedDate);\n this.onChange(this.selectedDate());\n }\n }\n}\n","<input\n ndwInput\n #input\n type=\"text\"\n minlength=\"6\"\n maxlength=\"7\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [required]=\"required()\"\n [value]=\"inputValue()\"\n (change)=\"onInputChanged(input.value)\"\n (keydown)=\"onKeyDown($event)\"\n/>\n\n<button\n ndwButton\n extra-small\n tertiary\n class=\"input-suffix-button\"\n [disabled]=\"disabled()\"\n [ariaLabel]=\"showMonthPickerLabel()\"\n (click)=\"showMonthPicker = !showMonthPicker\"\n [ndwPopoverTrigger]=\"monthPicker\"\n [popoverPosition]=\"'nextToTriggerButton'\"\n>\n <ndw-icon>calendar_month</ndw-icon>\n</button>\n\n<ng-template #monthPicker>\n <input\n ndwInput\n #yearSelect\n type=\"number\"\n [placeholder]=\"yearPlaceholder()\"\n [min]=\"minDate().getFullYear()\"\n [max]=\"maxDate().getFullYear()\"\n [ngModel]=\"selectedYear()\"\n (ngModelChange)=\"onYearSelected(yearSelect.value)\"\n />\n\n <ndw-option-group\n [ngModel]=\"selectedMonth() ? [selectedMonth()] : []\"\n (ngModelChange)=\"onMonthSelected($event?.[0])\"\n [fluid]=\"true\"\n [fluidColumns]=\"4\"\n mode=\"single\"\n >\n @for (month of months(); track month) {\n <ndw-option [label]=\"month.label\" [value]=\"month.value\">\n {{ month }}\n </ndw-option>\n }\n </ndw-option-group>\n</ng-template>\n","import { isPlatformBrowser } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n PLATFORM_ID,\n} from '@angular/core';\nimport { FormFieldElement } from '../form-field.model';\nimport { InputType } from '../input';\nimport { InputButtonComponent } from '../input-button/input-button.component';\nimport { InputDirective } from '../input/input.directive';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [InputButtonComponent],\n selector: 'ndw-picker-button',\n templateUrl: './picker-button.component.html',\n})\nexport class PickerButtonComponent {\n public readonly disabled = input(false);\n public readonly input = input<InputDirective>();\n public readonly ariaLabel = input<string>('');\n public readonly required = input<InputType>();\n\n private readonly platform = inject(PLATFORM_ID);\n\n protected readonly icon = computed(() => this.getIcon());\n\n protected onClick(): void {\n const inputElement = this.input()?.element;\n if (!inputElement) {\n return;\n }\n\n if ('showPicker' in inputElement) {\n inputElement.showPicker();\n }\n }\n\n private getIcon(): string | undefined {\n let isFirefox = false;\n\n if (isPlatformBrowser(this.platform)) {\n isFirefox = navigator.userAgent.toLowerCase().includes('firefox');\n }\n\n switch (this.input()?.element.type) {\n case 'date':\n // Firefox always shows its own date picker\n return isFirefox ? undefined : 'calendar_month';\n case 'time':\n // Firefox always shows its own time picker\n return isFirefox ? undefined : 'schedule';\n }\n\n if (this.input()?.element.nodeName.toLowerCase() === FormFieldElement.Select) {\n return 'keyboard_arrow_down';\n }\n\n return undefined;\n }\n}\n","@if (icon(); as icon) {\n <ndw-input-button (buttonClicked)=\"onClick()\">{{ icon }}</ndw-input-button>\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { IconComponent } from '../../icon';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconComponent],\n selector: 'ndw-success',\n styleUrl: './success.component.scss',\n templateUrl: './success.component.html',\n})\nexport class SuccessComponent {}\n","<ndw-icon>check</ndw-icon>\n<ng-content />\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n effect,\n input,\n output,\n} from '@angular/core';\n\nimport { IconComponent } from '../icon';\nimport { TooltipDirective } from '../tooltip';\n\nimport { ClearSearchButtonComponent } from './clear-search-button/clear-search-button.component';\nimport { ErrorComponent } from './error';\nimport { FormFieldElement } from './form-field.model';\nimport { InfoComponent } from './info';\nimport { InputDirective, InputType } from './input';\nimport { InputIconComponent } from './input-icon';\nimport { MonthInputComponent } from './month-input';\nimport { PickerButtonComponent } from './picker-button/picker-button.component';\nimport { SuccessComponent } from './success';\nimport { INPUT_CONTAINER_CLASS } from './form-field.constant';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n ErrorComponent,\n SuccessComponent,\n IconComponent,\n InfoComponent,\n NgTemplateOutlet,\n TooltipDirective,\n InputIconComponent,\n ClearSearchButtonComponent,\n PickerButtonComponent,\n ],\n selector: 'ndw-form-field',\n styleUrl: './form-field.component.scss',\n templateUrl: './form-field.component.html',\n})\nexport class FormFieldComponent {\n public readonly label = input.required<string>();\n public readonly suffixAriaLabel = input<string>('');\n public readonly hideLabel = input<boolean>(false);\n\n public readonly disabled = input(false);\n public readonly error = input<string>();\n public readonly success = input<string>();\n public readonly info = input<string>();\n public readonly tooltip = input('');\n\n public readonly clearButtonClicked = output<void>();\n\n protected readonly monthInput = contentChild(MonthInputComponent);\n protected readonly regularInput = contentChild(InputDirective);\n protected readonly input = computed(() => this.regularInput() ?? this.monthInput()?.input());\n protected readonly inputType = computed(\n () => this.input()?.element.type as InputType | undefined,\n );\n protected readonly isSearchInput = computed(() => this.inputType() === 'search');\n protected readonly hasPickerButton = computed(\n () =>\n this.inputType() === 'date' ||\n this.inputType() === 'time' ||\n this.input()?.element.nodeName.toLowerCase() === FormFieldElement.Select,\n );\n\n protected readonly uuid = crypto.randomUUID();\n protected readonly descriptionUuid = crypto.randomUUID();\n protected readonly inputContainerClass = INPUT_CONTAINER_CLASS;\n\n public constructor() {\n effect(() => {\n const input = this.input();\n if (!input) {\n return;\n }\n\n this.setInputDisabledState(input);\n this.setInputErrorState(input);\n this.setInputSuccessState(input);\n this.setInputId(input);\n this.setAriaDescribedBy(input);\n });\n }\n\n private setInputDisabledState(input: InputDirective): void {\n input.disabled = this.disabled();\n }\n\n private setInputErrorState(input: InputDirective): void {\n input.error = !!this.error()?.length;\n }\n\n private setInputSuccessState(input: InputDirective): void {\n input.success = !!this.success()?.length;\n }\n\n private setInputId(input: InputDirective): void {\n input.id = `input-${this.uuid}`;\n }\n\n private setAriaDescribedBy(input: InputDirective): void {\n input.ariaDescribedBy = this.descriptionUuid;\n }\n}\n","@if (input() === undefined) {\n <fieldset>\n <legend ndwLabel [class.sr-only]=\"hideLabel()\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\" />\n </legend>\n <ng-container *ngTemplateOutlet=\"fieldTemplate\" />\n </fieldset>\n} @else {\n <label ndwLabel [attr.for]=\"input() ? 'input-' + uuid : null\" [class.sr-only]=\"hideLabel()\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\" />\n </label>\n <ng-container *ngTemplateOutlet=\"fieldTemplate\" />\n}\n\n<ng-template #fieldTemplate>\n <div\n [class]=\"inputContainerClass\"\n [attr.success]=\"success() ? true : null\"\n [attr.error]=\"error() ? true : null\"\n [attr.disabled]=\"disabled() ? true : null\"\n [attr.readonly]=\"input()?.element?.hasAttribute('readonly') ? true : null\"\n >\n @if (isSearchInput()) {\n <ndw-input-icon>search</ndw-input-icon>\n }\n\n <ng-content />\n\n @if (isSearchInput()) {\n <ndw-clear-search-button\n [input]=\"input()\"\n [disabled]=\"disabled()\"\n [ariaLabel]=\"suffixAriaLabel()\"\n (buttonClicked)=\"clearButtonClicked.emit()\"\n />\n }\n @if (hasPickerButton()) {\n <ndw-picker-button\n [input]=\"input()\"\n [disabled]=\"disabled()\"\n [ariaLabel]=\"suffixAriaLabel()\"\n />\n }\n </div>\n\n @if (info(); as info) {\n <ndw-info [id]=\"descriptionUuid\">{{ info }}</ndw-info>\n }\n @if (error(); as error) {\n <ndw-error role=\"alert\" aria-live=\"polite\">{{ error }}</ndw-error>\n }\n @if (success(); as success) {\n <ndw-success role=\"alert\" aria-live=\"polite\">{{ success }}</ndw-success>\n }\n</ng-template>\n\n<ng-template #labelTemplate>\n <span class=\"required-label required\"> * </span>\n {{ label() }}\n @if (tooltip(); as tooltip) {\n <ndw-icon [ndwTooltip]=\"tooltip\">info</ndw-icon>\n }\n</ng-template>\n","import { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, input, model } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.checked]': 'checked()',\n '[class.disabled]': 'disabled()',\n },\n imports: [NgClass],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: RadioButtonComponent,\n multi: true,\n },\n ],\n selector: 'ndw-radio-button',\n styleUrls: ['../checkable-input.scss', './radio-button.component.scss'],\n templateUrl: './radio-button.component.html',\n})\nexport class RadioButtonComponent implements ControlValueAccessor {\n public checked = model(false);\n public disabled = model(false);\n public error = input(false);\n public success = input(false);\n public name = model('');\n public required = input(false);\n public value = model();\n\n public uuid = crypto.randomUUID();\n\n public onClick(): void {\n if (this.disabled()) {\n return;\n }\n\n this.checked.set(true);\n }\n\n public onKeyDown(event: KeyboardEvent): void {\n if (event.key !== 'Enter' || this.disabled()) {\n return;\n }\n\n this.checked.set(true);\n event.preventDefault();\n }\n\n public writeValue(value: boolean): void {\n this.checked.set(value);\n }\n\n public registerOnChange(fn: (value: boolean) => void): void {\n this.checked.subscribe(fn);\n }\n\n public registerOnTouched(): void {\n // noop\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n}\n","<input\n type=\"radio\"\n [id]=\"'radio-button-' + uuid\"\n [name]=\"name()\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [required]=\"required()\"\n aria-hidden=\"true\"\n/>\n<div\n class=\"radio-button\"\n role=\"radio\"\n [ngClass]=\"{ error: error(), success: success() }\"\n [tabindex]=\"disabled() ? -1 : 0\"\n [attr.aria-checked]=\"checked()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-labelledby]=\"'radio-button-label-' + uuid\"\n (click)=\"onClick()\"\n (keydown)=\"onKeyDown($event)\"\n>\n @if (checked()) {\n <span class=\"check\"></span>\n }\n</div>\n<label\n tabindex=\"-1\"\n id=\"radio-button-label-{{ uuid }}\"\n [for]=\"'radio-button-' + uuid\"\n (click)=\"onClick()\"\n (keydown)=\"onKeyDown($event)\"\n>\n <ng-content />\n</label>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n contentChildren,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { RadioButtonComponent } from '../radio-button';\n\n@Component({\n host: {\n role: 'radiogroup',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: RadioGroupComponent,\n multi: true,\n },\n ],\n selector: 'ndw-radio-group',\n styleUrl: './radio-group.component.scss',\n templateUrl: './radio-group.component.html',\n})\nexport class RadioGroupComponent implements AfterContentInit, ControlValueAccessor {\n public radioButtons = contentChildren(RadioButtonComponent);\n\n private uuid = crypto.randomUUID();\n private onChange: (value: unknown) => void = () => {\n // noop\n };\n\n public ngAfterContentInit(): void {\n this.setRadioButtonsName();\n this.handleCheckedChange();\n }\n\n public writeValue(value: unknown): void {\n this.radioButtons().forEach((radio) => {\n radio.checked.set(radio.value() === value);\n });\n }\n\n public registerOnChange(fn: (value: unknown) => void): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(): void {\n // Not implemented\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n this.radioButtons().forEach((radio) => radio.disabled.set(isDisabled));\n }\n\n private setRadioButtonsName(): void {\n this.radioButtons().forEach((radio) => {\n radio.name.set(this.uuid);\n });\n }\n\n private handleCheckedChange(): void {\n this.radioButtons().forEach((radio) => {\n radio.checked.subscribe((checked) => {\n if (!checked) {\n return;\n }\n\n this.radioButtons().forEach((otherRadio) => {\n if (otherRadio !== radio) {\n otherRadio.checked.set(false);\n }\n });\n\n this.onChange(radio.value());\n });\n });\n }\n}\n","<ng-content />\n","import { AfterViewInit, Directive, ElementRef, inject, DestroyRef } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { startWith } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n/**\n * Directive that automatically grows a textarea element to fit its content.\n *\n * Note that at this moment (2024-09-06) there is an experimental CSS property\n * `field-sizing: content;` that can be used to achieve the same effect. At this\n * moment not all browsers support this property (FF and Safari do not for example).\n *\n * So for now a directive is used to achieve the same effect.\n */\n@Directive({\n selector: 'textarea[ndwAutoGrow]',\n host: {\n '(input)': 'fitContentInTextArea()',\n },\n})\nexport class AutoGrowDirective implements AfterViewInit {\n private readonly elementRef = inject(ElementRef);\n private readonly ngControl = inject(NgControl, { optional: true });\n private readonly destroyRef = inject(DestroyRef);\n\n public get element(): HTMLTextAreaElement {\n return this.elementRef.nativeElement as HTMLTextAreaElement;\n }\n\n public ngAfterViewInit(): void {\n this.element.style.resize = 'none';\n this.element.style.overflow = 'hidden';\n\n // Use set timeout to make sure the textarea is rendered before\n // we set the initial height. This is needed for Firefox.\n setTimeout(() => this.fitContentInTextArea());\n\n this.updateHeightOnNgControlUpdate();\n }\n\n public fitContentInTextArea(): void {\n this.element.style.height = 'auto'; // Make the textarea shrink when a lot of text is removed.\n this.element.style.height = `${this.element.scrollHeight}px`;\n }\n\n private updateHeightOnNgControlUpdate(): void {\n if (!this.ngControl?.control) {\n return;\n }\n\n this.ngControl.control.valueChanges\n .pipe(startWith(this.ngControl.value), takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.fitContentInTextArea());\n }\n}\n","import { Directive, ElementRef, Renderer2, effect, inject, input } from '@angular/core';\n\n@Directive({\n selector: 'textarea[ndwMaxChar]',\n host: {\n '(input)': 'onInput()',\n },\n})\nexport class MaxCharDirective {\n public ndwMaxChar = input<number>(0);\n public maxCharText = input<string>('');\n private readonly elementRef = inject(ElementRef);\n private readonly renderer = inject(Renderer2);\n private counterElement!: HTMLElement;\n\n public get element(): HTMLTextAreaElement {\n return this.elementRef.nativeElement as HTMLTextAreaElement;\n }\n\n public constructor() {\n effect(() => {\n // Needs to be optimised to prevent using setTimeout as a solution in task: 88237\n setTimeout(() => {\n if (this.ndwMaxChar() > 0 && !this.elementRef.nativeElement.disabled) {\n if (!this.counterElement) {\n this.createCounterElement();\n }\n this.onInput();\n this.elementRef.nativeElement.parentNode.style.display = 'block';\n this.renderer.appendChild(this.elementRef.nativeElement.parentNode, this.counterElement);\n } else if (this.counterElement) {\n this.removeCounterElement();\n }\n });\n });\n }\n\n public onInput(): void {\n this.counterElement.textContent = `${this.elementRef.nativeElement.value.length} /\n ${this.ndwMaxChar()} ${this.maxCharText()}`;\n if (this.elementRef.nativeElement.value.length > this.ndwMaxChar()) {\n this.renderer.setStyle(this.counterElement, 'color', 'var(--ndw-color-critical-500)');\n } else {\n this.renderer.setStyle(this.counterElement, 'color', 'var(--ndw-color-grey-500)');\n }\n }\n\n private createCounterElement(): void {\n this.counterElement = this.renderer.createElement('span');\n this.renderer.setStyle(this.counterElement, 'display', 'flex');\n this.renderer.setStyle(this.counterElement, 'padding-bottom', 'var(--ndw-spacing-xs)');\n this.renderer.setStyle(this.counterElement, 'padding-left', 'var(--ndw-spacing-sm)');\n this.renderer.setStyle(this.counterElement, 'position', 'absolute');\n this.renderer.setStyle(this.counterElement, 'bottom', '0');\n this.renderer.setStyle(this.counterElement, 'background-color', 'var(--ndw-color-white)');\n this.renderer.setStyle(this.counterElement, 'width', 'calc(100% - 1rem)');\n this.elementRef.nativeElement.parentNode.style.position = 'relative';\n const counterHeight = this.counterElement.offsetHeight;\n this.elementRef.nativeElement.parentNode.querySelector('textarea').style.minHeight =\n `calc(4rem + ${counterHeight}px)`;\n this.elementRef.nativeElement.parentNode.querySelector('textarea').style.paddingBottom =\n 'var(--ndw-spacing-xl)';\n }\n\n private removeCounterElement(): void {\n this.elementRef.nativeElement.parentNode.style.display = 'flex';\n this.elementRef.nativeElement.parentNode.style.paddingBottom = 'var(--ndw-spacing-lg)';\n this.renderer.removeChild(this.elementRef.nativeElement.parentNode, this.counterElement);\n this.elementRef.nativeElement.parentNode.querySelector('textarea').style.minHeight = '4rem';\n this.counterElement = null!;\n }\n}\n","import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\n\nimport { SimpleMenuItem } from '../main-navigation';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ndw-main-navigation-menu',\n styleUrl: './main-navigation-menu.component.scss',\n templateUrl: './main-navigation-menu.component.html',\n})\nexport class MainNavigationMenuComponent {\n public menuItems = input.required<SimpleMenuItem[]>();\n public isMobile = input(false);\n\n public close = output<SimpleMenuItem>();\n\n public handleSelected(activeItem: SimpleMenuItem): void {\n activeItem.callback?.(activeItem.id);\n this.close.emit(activeItem);\n }\n}\n","@for (item of menuItems(); track item.id) {\n <button\n ndwButton\n menu\n [attr.clickable]=\"!!item.callback || undefined\"\n [attr.selected]=\"isMobile() || item.active || undefined\"\n (click)=\"handleSelected(item)\"\n >\n {{ item.label }}\n </button>\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { RouterLink } from '@angular/router';\n\nimport { BadgeComponent } from '../badge';\nimport { IconComponent } from '../icon';\nimport { MainNavigationMenuComponent } from '../main-navigation-menu';\nimport { TooltipDirective } from '../tooltip';\n\nexport const MAIN_NAVIGATION_IMPORTS = [\n BadgeComponent,\n CdkPortalOutlet,\n IconComponent,\n MainNavigationMenuComponent,\n NgClass,\n NgTemplateOutlet,\n OverlayModule,\n RouterLink,\n TooltipDirective,\n];\n","import { ConnectedPosition, Overlay, OverlayRef, PositionStrategy } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n OnDestroy,\n TemplateRef,\n ViewContainerRef,\n computed,\n inject,\n input,\n model,\n signal,\n viewChild,\n viewChildren,\n PLATFORM_ID,\n} from '@angular/core';\n\nimport { MainNavigationMenuComponent } from '../main-navigation-menu';\n\nimport { MenuItem, NdwBrand, SimpleMenuItem } from './main-navigation.model';\nimport { MAIN_NAVIGATION_IMPORTS } from './main-navigation.imports';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.brand]': 'brand().toLowerCase()',\n '[class.expanded]': 'isExpanded()',\n '[class.mobile]': 'isMobile()',\n '(document:mousemove)': 'onMouseMove($event)',\n '(window:resize)': 'onWindowResize()',\n },\n imports: MAIN_NAVIGATION_IMPORTS,\n selector: 'ndw-main-navigation',\n styleUrl: './main-navigation.component.scss',\n templateUrl: './main-navigation.component.html',\n})\nexport class MainNavigationComponent implements AfterViewInit, OnDestroy {\n public applicationName = input.required<string>();\n public topMenuItems = input.required<MenuItem[]>();\n public bottomMenuItems = input<MenuItem[]>();\n public brand = input<NdwBrand>('NDW');\n public footerTexts = input<string[]>();\n public isCollapsible = input(true);\n public version = input<string>();\n // Mobile inputs\n public closeButtonLabel = input('Sluit');\n public menuButtonLabel = input('Menu');\n\n public isExpanded = model(true);\n public isMobileExpanded = model(false);\n\n public buttons = viewChildren<ElementRef<HTMLButtonElement>>('menuTrigger');\n public childMenuTemplate =\n viewChild.required<TemplateRef<MainNavigationMenuComponent>>('childMenu');\n\n public isMobile = signal(false);\n public brandImagePath = computed(() => {\n const brand = this.brand().toLowerCase();\n const variant = !this.isExpanded() && !this.isMobile() ? '-short' : '';\n return `assets/images/${brand}-logo${variant}.svg`;\n });\n #allMenuItems = computed(() => [...this.topMenuItems(), ...(this.bottomMenuItems() ?? [])]);\n\n public activeId?: number;\n private selectedId?: number;\n protected mobilePortal?: TemplatePortal<MainNavigationMenuComponent>;\n\n // Only close the menu when the cursor is not over the button or the child menu\n public onMouseMove(event: MouseEvent): void {\n const isCursorOverButton = this.activeButton?.nativeElement.contains(event.target as Node);\n const isCursorOverChildMenu = this.overlayRef?.overlayElement.contains(event.target as Node);\n if (!this.mobilePortal && !isCursorOverButton && !isCursorOverChildMenu) {\n this.close();\n }\n }\n\n public onWindowResize(): void {\n const windowView = this.document.defaultView;\n this.isMobile.set(windowView ? windowView.innerWidth <= 1024 : false);\n }\n\n public activeChildItems: SimpleMenuItem[] = [];\n public overlayPositions: ConnectedPosition[] = [\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n ];\n\n private overlay = inject(Overlay);\n private viewContainerRef = inject(ViewContainerRef);\n private document = inject(DOCUMENT);\n private platform = inject(PLATFORM_ID);\n\n private activeButton?: ElementRef<HTMLButtonElement>;\n private overlayRef?: OverlayRef;\n\n public constructor() {\n const windowView = this.document.defaultView;\n if (isPlatformBrowser(this.platform) && windowView) {\n this.isMobile.set(windowView.innerWidth <= 1024);\n }\n }\n\n public ngAfterViewInit(): void {\n this.overlayRef = this.overlay.create({\n positionStrategy: this.setPositionStrategy(),\n });\n }\n\n public ngOnDestroy(): void {\n this.mobilePortal?.detach();\n this.overlayRef?.dispose();\n }\n\n public close(activeItem?: SimpleMenuItem, toggleMobileView?: boolean): void {\n this.activeChildItems = [];\n this.activeId = undefined;\n if (this.isMobile()) {\n this.mobilePortal?.detach();\n } else {\n this.overlayRef?.detach();\n }\n\n if (activeItem) {\n this.#allMenuItems().forEach((item) => {\n item.children?.forEach((child) => (child.active = child.id === activeItem.id));\n item.active = item.children?.some((child) => child.active) ?? false;\n });\n }\n\n if (toggleMobileView) {\n this.toggleMobileView();\n }\n }\n\n public handleClick(activeItem: MenuItem): void {\n activeItem.callback?.(activeItem.id);\n this.#allMenuItems().forEach((item) => {\n item.children?.forEach((child) => (child.active = false));\n item.active = item.id === activeItem.id;\n });\n\n if (!activeItem.children && this.isMobile()) {\n this.toggleMobileView();\n }\n }\n\n public handleLogoClick(): void {\n this.isMobileExpanded.set(false);\n }\n\n public open(item: MenuItem): void {\n this.selectedId = item.id;\n if (!this.isMobile()) {\n this.close();\n }\n\n this.activeButton = this.buttons().find(\n (button) => Number(button.nativeElement.id) === item.id,\n );\n\n if (!this.activeButton?.nativeElement || !item.children) {\n return;\n }\n\n this.activeChildItems = item.children;\n this.activeId = item.id;\n const portal = new TemplatePortal(this.childMenuTemplate(), this.viewContainerRef);\n if (this.isMobile()) {\n this.mobilePortal = portal;\n return;\n }\n\n this.mobilePortal = undefined;\n\n // Update the position strategy with the active button as the trigger\n this.overlayRef?.updatePositionStrategy(\n this.setPositionStrategy(this.activeButton.nativeElement),\n );\n this.overlayRef?.attach(portal);\n }\n\n public toggleChildMenu(item: MenuItem, event?: KeyboardEvent): void {\n if (event && event?.key !== 'Enter') {\n return;\n }\n\n if (this.mobilePortal?.isAttached && this.selectedId === item.id) {\n this.close();\n } else {\n this.open(item);\n }\n }\n\n public toggleMobileView(): void {\n this.isMobileExpanded.set(!this.isMobileExpanded());\n }\n\n public toggleView(): void {\n this.isExpanded.set(!this.isExpanded());\n }\n\n private setPositionStrategy(trigger?: HTMLButtonElement): PositionStrategy {\n if (!trigger) {\n return this.overlay.position().global();\n }\n\n return this.overlay\n .position()\n .flexibleConnectedTo(trigger)\n .withPositions(this.overlayPositions);\n }\n}\n","<header>\n <a routerLink=\"/\" (click)=\"handleLogoClick()\" (keydown)=\"handleLogoClick()\">\n <img [src]=\"brandImagePath()\" [alt]=\"brand() + ' logo'\" />\n @if (isExpanded() || isMobile()) {\n {{ applicationName() }}\n }\n </a>\n <button ndwButton class=\"menu-button\" aria-label=\"menu-button\" (click)=\"toggleMobileView()\">\n @if (!isMobileExpanded()) {\n {{ menuButtonLabel() }}\n <ndw-icon>menu</ndw-icon>\n } @else {\n {{ closeButtonLabel() }}\n <ndw-icon>close</ndw-icon>\n }\n </button>\n</header>\n<div class=\"content\" [ngClass]=\"{ expanded: isMobileExpanded() }\">\n <main>\n <div class=\"menu-items\">\n @for (item of topMenuItems(); track $index) {\n <ng-container *ngTemplateOutlet=\"menuItem; context: { $implicit: item }\" />\n }\n </div>\n </main>\n <footer>\n <div class=\"menu-items\">\n @for (item of bottomMenuItems(); track $index) {\n <ng-container *ngTemplateOutlet=\"menuItem; context: { $implicit: item }\" />\n }\n </div>\n <div class=\"texts\">\n @if (isExpanded() || isMobile()) {\n @for (text of footerTexts(); track $index) {\n <p>{{ text }}</p>\n }\n }\n </div>\n <div class=\"version\">\n <p>{{ version() }}</p>\n @if (isCollapsible()) {\n <button ndwButton menu aria-label=\"expand-button\" (click)=\"toggleView()\">\n <ndw-icon>keyboard_double_arrow_right</ndw-icon>\n </button>\n }\n </div>\n </footer>\n</div>\n\n<!-- Templates -->\n<ng-template #menuItem let-item>\n <button\n ndwButton\n menu\n #menuTrigger\n [attr.active]=\"item.id === activeId || undefined\"\n [attr.clickable]=\"!!item.callback || undefined\"\n [attr.selected]=\"(isMobile() && activeChildItems === item.children) || item.active || undefined\"\n [id]=\"item.id\"\n [ndwTooltip]=\"!isExpanded() && !isMobile() ? item.label : ''\"\n (click)=\"!!item.callback && handleClick(item)\"\n (focus)=\"!isMobile() && open(item)\"\n (keydown)=\"isMobile() && toggleChildMenu(item, $event)\"\n (mousedown)=\"isMobile() && toggleChildMenu(item)\"\n (mouseover)=\"!isMobile() && open(item)\"\n >\n @if (item.icon) {\n <ndw-icon>{{ item.icon }}</ndw-icon>\n }\n @if (isExpanded() || isMobile()) {\n {{ item.label }}\n }\n @if (item.notifications) {\n <ndw-badge [ngClass]=\"{ collapsed: !isExpanded() }\" [value]=\"item.notifications\" />\n }\n @if (isExpanded() && item.children) {\n <ndw-icon\n class=\"suffix\"\n [ngClass]=\"{ open: !!mobilePortal && activeChildItems === item.children }\"\n >arrow_right</ndw-icon\n >\n }\n </button>\n @if (activeChildItems === item.children) {\n <ng-template [cdkPortalOutlet]=\"mobilePortal\" />\n }\n</ng-template>\n\n<ng-template #childMenu>\n <ndw-main-navigation-menu\n [isMobile]=\"isMobile()\"\n [menuItems]=\"activeChildItems\"\n (close)=\"close($event, true)\"\n />\n</ng-template>\n","import { CdkScrollable } from '@angular/cdk/scrolling';\nimport { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { MainNavigationComponent, MenuItem, NdwBrand } from '../main-navigation';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CdkScrollable, MainNavigationComponent],\n selector: 'ndw-layout',\n styleUrl: './layout.component.scss',\n templateUrl: './layout.component.html',\n})\nexport class LayoutComponent {\n public applicationName = input.required<string>();\n public topMenuItems = input.required<MenuItem[]>();\n public bottomMenuItems = input<MenuItem[]>();\n public brand = input<NdwBrand>('NDW');\n public isCollapsible = input(true);\n public isExpanded = input(true);\n public menuFooterTexts = input<string[]>();\n public version = input<string>();\n}\n","<ndw-main-navigation\n [applicationName]=\"applicationName()\"\n [bottomMenuItems]=\"bottomMenuItems()\"\n [brand]=\"brand()\"\n [footerTexts]=\"menuFooterTexts()\"\n [isCollapsible]=\"isCollapsible()\"\n [isExpanded]=\"isExpanded()\"\n [topMenuItems]=\"topMenuItems()\"\n [version]=\"version()\"\n/>\n<main cdk-scrollable>\n <ng-content />\n</main>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ndw-layout-banners',\n styleUrl: './layout-banners.component.scss',\n templateUrl: './layout-banners.component.html',\n})\nexport class LayoutBannersComponent {}\n","<ng-content />\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ndw-loader',\n styleUrl: './loader.component.scss',\n templateUrl: './loader.component.html',\n})\nexport class LoaderComponent {}\n","<svg viewBox=\"0 0 32 32\">\n <circle cx=\"4\" cy=\"16\" r=\"4\" />\n <circle cx=\"16\" cy=\"16\" r=\"4\" />\n <circle cx=\"28\" cy=\"16\" r=\"4\" />\n</svg>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ndw-modal-content',\n styleUrl: '../../card/card-content/card-content.component.scss',\n templateUrl: './modal-content.component.html',\n})\nexport class ModalContentComponent {}\n","<ng-content />\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ndw-modal-footer',\n styleUrl: '../../card/card-footer/card-footer.component.scss',\n templateUrl: './modal-footer.component.html',\n})\nexport class ModalFooterComponent {}\n","<ng-content />\n","import { Dialog, DialogConfig } from '@angular/cdk/dialog';\nimport { ComponentType } from '@angular/cdk/portal';\nimport { Injectable, TemplateRef } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { ModalRef } from './modal-ref';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ModalService extends Dialog {\n #modalRef!: ModalRef<unknown, unknown>;\n\n public backdropClick$?: Observable<MouseEvent>;\n public closed$?: Observable<unknown | undefined>;\n\n public close(): void {\n this.#modalRef?.close();\n }\n\n public override open(\n componentOrTemplateRef: ComponentType<unknown> | TemplateRef<unknown>,\n config?: DialogConfig<unknown, ModalRef<unknown, unknown>>,\n ): ModalRef<unknown, unknown> {\n const modalRef = super.open(componentOrTemplateRef, config);\n this.setModalRef(modalRef);\n\n return this.#modalRef;\n }\n\n public getModalRef(): ModalRef<unknown, unknown> {\n return this.#modalRef;\n }\n\n public setModalRef(modalRef: ModalRef<unknown, unknown>): void {\n this.#modalRef = modalRef;\n this.backdropClick$ = this.#modalRef.backdropClick;\n this.closed$ = this.#modalRef.closed;\n }\n}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\n\nimport { ButtonDirective } from '../../button';\nimport { IconComponent } from '../../icon';\nimport { ModalService } from '../modal.service';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ButtonDirective, IconComponent],\n selector: 'ndw-modal-header',\n styleUrls: ['../../card/card-header/card-header.component.scss', './modal-header.component.scss'],\n templateUrl: './modal-header.component.html',\n})\nexport class ModalHeaderComponent {\n readonly #modalService = inject(ModalService);\n\n public detachModal(): void {\n this.#modalService?.close();\n }\n}\n","<ng-content />\n<button\n ndwButton\n tertiary\n extra-small\n ariaLabel=\"Close\"\n data-testid=\"close-button\"\n (click)=\"detachModal()\"\n>\n <ndw-icon>close</ndw-icon>\n</button>\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nexport type ModalSize = 'sm' | 'md';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.modal-size-md]': 'size() === \"md\"',\n '[class.modal-size-sm]': 'size() === \"sm\"',\n },\n selector: 'ndw-modal',\n styleUrls: ['../card/card.component.scss', './modal.component.scss'],\n templateUrl: './modal.component.html',\n})\nexport class ModalComponent {\n public size = input<ModalSize>('sm');\n}\n","<ng-content />\n","import { ModalContentComponent } from './modal-content';\nimport { ModalFooterComponent } from './modal-footer';\nimport { ModalHeaderComponent } from './modal-header';\nimport { ModalComponent } from './modal.component';\n\nexport * from './modal-content';\nexport * from './modal-footer';\nexport * from './modal-header';\nexport * from './modal.component';\nexport * from './modal.service';\n\nexport const MODAL_COMPONENTS = [\n ModalComponent,\n ModalHeaderComponent,\n ModalContentComponent,\n ModalFooterComponent,\n];\n","import { NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n model,\n viewChild,\n} from '@angular/core';\n\nimport { DropdownComponent } from '../dropdown';\nimport {\n CheckboxComponent,\n CheckboxGroupComponent,\n FormFieldComponent,\n InputDirective,\n} from '../form-field';\nimport { IconComponent } from '../icon';\nimport { PopoverTriggerDirective } from '../popover';\n\nimport { CheckboxData } from './checkbox-data.interface';\nimport { SelectAllText } from './select-all-text.interface';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FormFieldComponent,\n CheckboxComponent,\n CheckboxGroupComponent,\n DropdownComponent,\n IconComponent,\n InputDirective,\n NgClass,\n ],\n selector: 'ndw-multi-select',\n styleUrls: ['multi-select.component.scss'],\n templateUrl: 'multi-select.component.html',\n})\nexport class MultiSelectComponent {\n public readonly dropdownTrigger = viewChild.required(PopoverTriggerDirective);\n\n public readonly buttonText = input.required<string>();\n public readonly searchLabel = input.required<string>();\n public readonly prefixIcon = input('');\n public readonly searchPlaceholder = input('');\n public readonly noResultText = input('');\n public readonly chevron = input(true);\n public readonly disabled = input(false);\n public readonly selectAllText = input<SelectAllText>({ deselect: '', select: '' });\n\n public readonly dataSource = model<CheckboxData[]>([]);\n protected readonly lastCheckedElementId = model<CheckboxData['id'] | null>();\n protected readonly searchInputValue = model('');\n\n public readonly selectAmount = computed(\n () => this.dataSource().filter((checkbox: CheckboxData) => checkbox.value).length,\n );\n public readonly noSearchResults = computed(\n () =>\n this.dataSource().filter((checkbox: CheckboxData) =>\n checkbox.label.toLowerCase().includes(this.searchInputValue().toLowerCase()),\n ).length === 0,\n );\n\n public filterSearch(value: string): boolean {\n return value.toLowerCase().includes(this.searchInputValue().toLowerCase());\n }\n\n public searchInputChanged(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.searchInputValue.set(input.value);\n }\n\n public checkboxChanged(id: string | number): void {\n this.dataSource.update((checkboxes: CheckboxData[]) => {\n return checkboxes?.map((checkbox: CheckboxData) =>\n checkbox.id === id ? { ...checkbox, value: !checkbox.value } : checkbox,\n );\n });\n }\n\n public toggleSelectAll(selectAll = true): void {\n this.dataSource.update((checkboxes: CheckboxData[]) => {\n return checkboxes.map((checkbox: CheckboxData) => ({ ...checkbox, value: selectAll }));\n });\n }\n\n public isOpenChanged(isOpen: boolean): void {\n if (isOpen) {\n this.dataSource.set(\n this.dataSource()\n .slice()\n .sort((a, b) => Number(b.value) - Number(a.value)),\n );\n this.searchInputValue.set('');\n this.determineLastCheckedElement();\n }\n }\n\n private determineLastCheckedElement(): void {\n if (this.dataSource().some((checkbox) => !checkbox.value)) {\n const sourceList = [...this.dataSource()];\n const lastChecked = sourceList.reverse().find((checkbox) => checkbox.value);\n this.lastCheckedElementId.set(lastChecked ? lastChecked.id : null);\n } else {\n this.lastCheckedElementId.set(null);\n }\n }\n}\n","<ndw-dropdown\n prefixIcon=\"filter_alt\"\n [selectAmount]=\"selectAmount()\"\n (tagClicked)=\"toggleSelectAll(false)\"\n (isOpenChange)=\"isOpenChanged($event)\"\n [buttonText]=\"buttonText()\"\n [disabled]=\"disabled()\"\n [chevron]=\"chevron()\"\n [prefixIcon]=\"prefixIcon()\"\n>\n <ndw-form-field [label]=\"searchLabel()\" [hideLabel]=\"true\">\n <input\n ndwInput\n type=\"search\"\n [value]=\"searchInputValue()\"\n (input)=\"searchInputChanged($event)\"\n [placeholder]=\"searchPlaceholder()\"\n />\n </ndw-form-field>\n @if (noSearchResults()) {\n <div class=\"no-search-results\">\n <ndw-icon>sentiment_dissatisfied</ndw-icon>\n {{ noResultText() }}\n </div>\n } @else {\n <ndw-checkbox-group class=\"multi-select-container\">\n @for (checkbox of dataSource(); track checkbox.id) {\n @if (filterSearch(checkbox.label)) {\n <ndw-checkbox\n [ngClass]=\"{ 'last-checked': lastCheckedElementId() === checkbox.id }\"\n [checked]=\"checkbox.value\"\n (checkedChange)=\"checkboxChanged(checkbox.id)\"\n >\n {{ checkbox.label }}\n </ndw-checkbox>\n }\n }\n </ndw-checkbox-group>\n }\n <div class=\"ndw-dialog-footer\">\n @if (selectAmount() === dataSource().length) {\n <button ndwLink (click)=\"toggleSelectAll(false)\">\n {{ selectAllText().deselect }}\n </button>\n } @else {\n <button ndwLink (click)=\"toggleSelectAll(true)\">\n {{ selectAllText().select }}\n </button>\n }\n <div class=\"ndw-dialog-footer-total\" aria-live=\"polite\">\n Geselecteerd: <strong>{{ selectAmount() }}</strong>\n </div>\n </div>\n</ndw-dropdown>\n","import { ChangeDetectionStrategy, Component, ElementRef, input, viewChild } from '@angular/core';\n\nimport { PillColor } from './pill.model';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'color()',\n class: 'ndw-paragraph-md',\n '[attr.title]': 'this.content()?.nativeElement?.textContent',\n },\n selector: 'ndw-pill',\n styleUrl: './pill.component.scss',\n templateUrl: './pill.component.html',\n})\nexport class PillComponent {\n /**\n * The color of the pill.\n */\n public readonly color = input<PillColor>('green');\n\n /**\n * The content of the pill.\n */\n private readonly content = viewChild<ElementRef>('content');\n}\n","<div #content>\n <ng-content />\n</div>\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { ActivatedRoute, ActivatedRouteSnapshot, NavigationEnd, Router } from '@angular/router';\nimport { filter, map } from 'rxjs';\n\nimport { BreadcrumbComponent } from '../breadcrumb';\nimport { BreadcrumbGroupComponent } from '../breadcrumb-group';\n\ninterface RouteBreadcrumb {\n url: string;\n title: string;\n}\n\nexport const breadcrumbRouteDataKey = 'breadcrumb';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [BreadcrumbGroupComponent, BreadcrumbComponent, AsyncPipe],\n selector: 'ndw-router-breadcrumbs',\n templateUrl: './router-breadcrumbs.component.html',\n})\nexport class RouterBreadcrumbsComponent {\n private readonly route = inject(ActivatedRoute);\n private readonly router = inject(Router);\n\n protected readonly breadcrumbs$ = this.router.events.pipe(\n filter((event) => event instanceof NavigationEnd),\n map(() => this.getBreadcrumbs()),\n );\n\n private getBreadcrumbs(): RouteBreadcrumb[] {\n let route: ActivatedRouteSnapshot | null = this.route.snapshot;\n const breadcrumbs: RouteBreadcrumb[] = [];\n\n while (route) {\n const title = route.data[breadcrumbRouteDataKey];\n const url = route.pathFromRoot\n .flatMap((route) => route.url.filter((segment) => segment.path))\n .join('/');\n\n if (title && url) {\n breadcrumbs.push({ url, title });\n }\n\n route = route.firstChild;\n }\n\n return breadcrumbs;\n }\n}\n","<ndw-breadcrumb-group>\n @for (breadcrumb of breadcrumbs$ | async; track breadcrumb.url) {\n <ndw-breadcrumb [link]=\"breadcrumb.url\">{{ breadcrumb.title }}</ndw-breadcrumb>\n }\n</ndw-breadcrumb-group>\n","import { ChangeDetectionStrategy, Component, input, model } from '@angular/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.active]': 'active() || null',\n '(click)': 'onClick($event)',\n '(keydown)': 'onTabKeyDown($event)',\n role: 'tab',\n tabindex: '0',\n },\n selector: 'ndw-tab',\n styleUrl: './tab.component.scss',\n templateUrl: './tab.component.html',\n})\nexport class TabComponent {\n public index = input.required<number>();\n\n public active = model(false);\n\n public onClick(): void {\n this.active.set(true);\n }\n\n public onTabKeyDown(event: KeyboardEvent): void {\n if (event.key !== 'Enter') {\n return;\n }\n\n event.preventDefault();\n this.active.set(true);\n }\n}\n","<ng-content />\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n contentChildren,\n model,\n} from '@angular/core';\n\nimport { TabComponent } from '../tab';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'tablist',\n },\n selector: 'ndw-tab-group',\n styleUrl: './tab-group.component.scss',\n templateUrl: './tab-group.component.html',\n})\nexport class TabGroupComponent implements AfterContentInit {\n public tabs = contentChildren(TabComponent);\n\n public activeTab = model(0);\n\n public ngAfterContentInit(): void {\n this.tabs().forEach(({ active, index }) => {\n active.set(this.activeTab() === index());\n active.subscribe((isActive: boolean) => {\n if (isActive) {\n this.activeTab.set(index());\n }\n active.set(this.activeTab() === index());\n });\n });\n\n this.activeTab.subscribe(() => {\n this.tabs().forEach(({ active, index }) => {\n active.set(this.activeTab() === index());\n });\n });\n }\n}\n","<ng-content />\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n OnDestroy,\n OnInit,\n Renderer2,\n inject,\n model,\n output,\n viewChild,\n} from '@angular/core';\n\nimport { IconComponent } from '../icon';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconComponent],\n selector: 'ndw-toast',\n styleUrl: './toast.component.scss',\n templateUrl: './toast.component.html',\n})\nexport class ToastComponent implements OnInit, OnDestroy {\n public readonly message = model('');\n public readonly close = output<void>();\n private interval: ReturnType<typeof setInterval> | null = null;\n private readonly renderer = inject(Renderer2);\n private readonly toastContainer = viewChild<ElementRef>('toastContainer');\n\n public ngOnInit(): void {\n this.message.set(this.truncateText(this.message()));\n this.open();\n }\n\n public ngOnDestroy(): void {\n this.clearInterval();\n this.close.emit();\n }\n\n public open(): void {\n const intervalTime = 10;\n const totalTicks = 10000 / intervalTime;\n let currentTick = 0;\n\n this.interval = setInterval(() => {\n currentTick++;\n const percentage = (currentTick / totalTicks) * 100;\n this.updateGradient(percentage);\n\n if (currentTick >= totalTicks) {\n this.startFadeOut();\n }\n }, intervalTime);\n }\n\n private updateGradient(percentage: number): void {\n if (!this.checkForExistingToast()) {\n return;\n }\n\n const toastElement = this.toastContainer()?.nativeElement;\n toastElement.style.background =\n 'linear-gradient(to left, var(--ndw-color-grey-600) ' +\n `${percentage}%, var(--ndw-color-grey-700) ${percentage}%)`;\n }\n\n protected startFadeOut(): void {\n if (!this.checkForExistingToast()) {\n return;\n }\n\n const toastElement = this.toastContainer()?.nativeElement;\n this.renderer.addClass(toastElement, 'fade-out');\n setTimeout(() => {\n this.clearInterval();\n }, 200);\n }\n\n private checkForExistingToast(): boolean {\n if (!this.toastContainer()?.nativeElement) {\n this.clearInterval();\n return false;\n }\n return true;\n }\n\n private clearInterval(): void {\n if (this.interval !== null) {\n clearInterval(this.interval);\n }\n }\n\n private truncateText(text: string): string {\n if (text.length > 75) {\n return text.substring(0, 75) + '...';\n }\n return text;\n }\n}\n","<div #toastContainer>\n <p>\n {{ message() }}\n </p>\n <button ndwButton tertiary alternative extra-small (click)=\"startFadeOut()\">\n <ndw-icon>close</ndw-icon>\n </button>\n</div>\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { inject, Injectable } from '@angular/core';\n\nimport { ToastComponent } from './toast.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ToastService {\n private readonly overlay = inject(Overlay);\n\n private isOpen = false;\n public overlayRef?: OverlayRef;\n\n public detach(): void {\n this.overlayRef?.detach();\n this.isOpen = false;\n }\n\n public dispose(): void {\n this.overlayRef?.dispose();\n }\n\n public open(message: string): void {\n if (this.isOpen) {\n this.detach();\n }\n\n this.overlayRef = this.overlay.create({\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n positionStrategy: this.overlay.position().global().centerHorizontally().top('1.5rem'),\n });\n\n const toastPortal = new ComponentPortal(ToastComponent);\n const toastComponentRef = this.overlayRef.attach(toastPortal);\n\n toastComponentRef.instance.message.set(message);\n toastComponentRef.instance.close.subscribe(() => {\n this.detach();\n });\n\n this.isOpen = true;\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { CardComponent } from '../card';\n\n@Component({\n selector: 'ndw-summary-card',\n imports: [CardComponent],\n templateUrl: './summary-card.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'ndw-summary-card',\n },\n})\nexport class SummaryCardComponent {}\n","<ndw-card class=\"ndw-summary-card__wrapper\">\n <ng-content select=\"ndw-summary-card-avatar\" />\n <div class=\"ndw-summary-card__content\">\n <ng-content select=\"ndw-summary-card-header\" />\n <ng-content select=\"ndw-summary-card-content\" />\n <ng-content select=\"ndw-summary-card-tags\" />\n </div>\n</ndw-card>\n","import {\n ChangeDetectionStrategy,\n Component,\n input,\n output,\n TemplateRef,\n viewChild,\n} from '@angular/core';\nimport { ButtonDirective } from '../../button';\nimport { IconComponent } from '../../icon';\n\n@Component({\n selector: 'ndw-summary-card-action',\n imports: [IconComponent, ButtonDirective],\n templateUrl: './summary-card-action.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'listitem',\n class: 'ndw-summary-card-action',\n },\n})\nexport class SummaryCardActionComponent {\n public readonly iconName = input.required<string>();\n public readonly label = input.required<string>();\n public readonly disabled = input<boolean>();\n\n public readonly action = output<void>();\n\n public readonly template = viewChild.required<TemplateRef<Element>>(TemplateRef);\n}\n","<ng-template>\n <button\n ndwButton\n type=\"button\"\n tertiary\n extra-small\n [title]=\"label()\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"label()\"\n (click)=\"action.emit()\"\n >\n <ndw-icon>{{ iconName() }}</ndw-icon>\n </button>\n</ng-template>\n","import { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, contentChildren, input } from '@angular/core';\nimport { ButtonDirective } from '../../button';\nimport { IconComponent } from '../../icon';\nimport { PopoverTriggerDirective } from '../../popover';\nimport { SummaryCardActionComponent } from '../summary-card-action/summary-card-action.component';\nimport { SummaryActionsView } from '../summary-card.model';\n\n@Component({\n selector: 'ndw-summary-card-actions',\n imports: [PopoverTriggerDirective, IconComponent, NgTemplateOutlet, NgClass, ButtonDirective],\n templateUrl: './summary-card-actions.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'list',\n class: 'ndw-summary-card-actions',\n '[class.ndw-summary-card-actions--auto]': 'view() === \"auto\"',\n },\n})\nexport class SummaryCardActionsComponent {\n public readonly view = input<SummaryActionsView>('auto');\n\n public readonly actions = contentChildren(SummaryCardActionComponent, {\n descendants: true,\n });\n}\n","@if (view() === 'popover') {\n <ng-container *ngTemplateOutlet=\"popoverActions\"></ng-container>\n} @else if (view() === 'visible') {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n} @else {\n <div class=\"popover-wrapper\">\n <ng-container *ngTemplateOutlet=\"popoverActions\"></ng-container>\n </div>\n <div class=\"regular-wrapper\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n}\n\n<ng-template #popoverActions>\n <button\n ndwButton\n extra-small\n tertiary\n aria-label=\"Open menu\"\n [ndwPopoverTrigger]=\"content\"\n [popoverPosition]=\"'nextToTriggerButton'\"\n >\n <ndw-icon>more_horiz</ndw-icon>\n </button>\n</ng-template>\n\n<ng-template #content>\n <div\n class=\"actions\"\n [ngClass]=\"{\n 'actions--popover': view() === 'popover',\n 'actions--visible': view() === 'visible',\n 'actions--auto': view() === 'auto',\n }\"\n >\n @for (action of actions(); track action) {\n <ng-template [ngTemplateOutlet]=\"action.template()\" />\n }\n </div>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { SummaryVariant } from '../summary-card.model';\n\n@Component({\n selector: 'ndw-summary-card-avatar',\n template: '<ng-content />',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'ndw-summary-card-avatar',\n '[attr.aria-hidden]': 'true',\n '[class]': 'variantClass()',\n },\n})\nexport class SummaryCardAvatarComponent {\n public readonly variant = input<SummaryVariant>('default');\n protected readonly variantClass = computed(() => `ndw-summary-card-avatar--${this.variant()}`);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'ndw-summary-card-content',\n template: '<ng-content />',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'ndw-summary-card-content',\n },\n})\nexport class SummaryCardContentComponent {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'ndw-summary-card-header',\n templateUrl: './summary-card-header.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'ndw-summary-card-header',\n },\n})\nexport class SummaryCardHeaderComponent {}\n","<div class=\"ndw-summary-card-header__wrapper\">\n <ng-content select=\"ndw-pill\" />\n <h3 class=\"ndw-summary-card-header__title\"><ng-content /></h3>\n <ng-content select=\"ndw-summary-card-subtitle\" />\n</div>\n\n<ng-content select=\"ndw-summary-card-actions\" />\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'ndw-summary-card-tags',\n template: '<ng-content />',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'list',\n class: 'ndw-summary-card-tags',\n },\n})\nexport class SummaryCardTagsComponent {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'ndw-summary-card-tag',\n template: '<ng-content />',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'listitem',\n class: 'ndw-summary-card-tag',\n },\n})\nexport class SummaryCardTagComponent {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'ndw-summary-card-subtitle',\n templateUrl: './summary-card-subtitle.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SummaryCardSubtitleComponent {}\n","<div class=\"ndw-summary-card-subtitle\">\n <ng-content select=\"ndw-icon\" />\n\n <div class=\"ndw-summary-card-subtitle__text\">\n <ng-content />\n </div>\n</div>\n","/*\n * Public API Surface of ndw\n */\n\nexport * from './components';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.BadgeComponent","i3.IconComponent","i4.MainNavigationMenuComponent","i8.TooltipDirective"],"mappings":"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"}
|