@ndwnu/design-system 13.0.0 → 13.0.2
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/assets/images/logos/ndw-logo-short.svg +3 -3
- package/assets/images/logos/ndw-logo.svg +3 -3
- package/assets/images/logos/nwb-logo-short.svg +10 -10
- package/assets/images/logos/nwb-logo.svg +4 -4
- package/assets/images/map-button-icons.svg +91 -91
- package/fesm2022/ndwnu-design-system.mjs +108 -53
- package/fesm2022/ndwnu-design-system.mjs.map +1 -1
- package/package.json +2 -2
- package/styles/base/_colors.scss +8 -8
- package/styles/components/_datepicker.scss +30 -0
- package/styles/layout/_grid.scss +1 -1
- package/styles/storybook/overrides.css +16 -16
- package/styles/utils/classes.stories.ts +157 -0
- package/types/ndwnu-design-system.d.ts +28 -14
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ndwnu-design-system.mjs","sources":["../../../../libs/ndw/src/lib/components/badge/badge.component.ts","../../../../libs/ndw/src/lib/components/badge/badge.component.html","../../../../libs/ndw/src/lib/components/form-field/autosuggest/autosuggest.directive.ts","../../../../libs/ndw/src/lib/components/icon/icon.component.ts","../../../../libs/ndw/src/lib/components/icon/icon.component.html","../../../../libs/ndw/src/lib/components/form-field/autosuggest/autosuggest-option/autosuggest-option.component.ts","../../../../libs/ndw/src/lib/components/form-field/autosuggest/autosuggest-option/autosuggest-option.component.html","../../../../libs/ndw/src/lib/components/form-field/autosuggest/autosuggest-add-option/autosuggest-add-option.component.ts","../../../../libs/ndw/src/lib/components/form-field/autosuggest/autosuggest-add-option/autosuggest-add-option.component.html","../../../../libs/ndw/src/lib/components/form-field/autosuggest/autosuggest-panel/autosuggest-panel.component.ts","../../../../libs/ndw/src/lib/components/form-field/autosuggest/autosuggest-panel/autosuggest-panel.component.html","../../../../libs/ndw/src/lib/components/form-field/checkbox/checkbox.component.ts","../../../../libs/ndw/src/lib/components/form-field/checkbox/checkbox.component.html","../../../../libs/ndw/src/lib/components/form-field/checkbox-group/checkbox-group.component.ts","../../../../libs/ndw/src/lib/components/form-field/checkbox-group/checkbox-group.component.html","../../../../libs/ndw/src/lib/components/form-field/datepicker/datepicker-functions.ts","../../../../libs/ndw/src/lib/components/form-field/datepicker/calendar/calendar.component.ts","../../../../libs/ndw/src/lib/components/form-field/datepicker/calendar/calendar.component.html","../../../../libs/ndw/src/lib/components/popover/popover-trigger.directive.ts","../../../../libs/ndw/src/lib/components/tag/tag.component.ts","../../../../libs/ndw/src/lib/components/tag/tag.component.html","../../../../libs/ndw/src/lib/components/form-field/input/input.directive.ts","../../../../libs/ndw/src/lib/components/form-field/datepicker/datepicker.component.ts","../../../../libs/ndw/src/lib/components/form-field/datepicker/datepicker.component.html","../../../../libs/ndw/src/lib/components/form-field/error/error.component.ts","../../../../libs/ndw/src/lib/components/form-field/error/error.component.html","../../../../libs/ndw/src/lib/components/form-field/file-upload/mime-type-map.ts","../../../../libs/ndw/src/lib/components/form-field/file-upload/file-upload.component.ts","../../../../libs/ndw/src/lib/components/form-field/file-upload/file-upload.component.html","../../../../libs/ndw/src/lib/components/tooltip/tooltip.component.ts","../../../../libs/ndw/src/lib/components/tooltip/tooltip.component.html","../../../../libs/ndw/src/lib/components/tooltip/tooltip.directive.ts","../../../../libs/ndw/src/lib/components/form-field/input-button/input-button.component.ts","../../../../libs/ndw/src/lib/components/form-field/input-button/input-button.component.html","../../../../libs/ndw/src/lib/components/form-field/clear-search-button/clear-search-button.component.ts","../../../../libs/ndw/src/lib/components/form-field/clear-search-button/clear-search-button.component.html","../../../../libs/ndw/src/lib/components/form-field/form-field.constant.ts","../../../../libs/ndw/src/lib/components/form-field/form-field.model.ts","../../../../libs/ndw/src/lib/components/form-field/info/info.component.ts","../../../../libs/ndw/src/lib/components/form-field/info/info.component.html","../../../../libs/ndw/src/lib/components/form-field/input-icon/input-icon.component.ts","../../../../libs/ndw/src/lib/components/form-field/input-icon/input-icon.component.html","../../../../libs/ndw/src/lib/components/button/button.directive.ts","../../../../libs/ndw/src/lib/components/form-field/option-group/option.component.ts","../../../../libs/ndw/src/lib/components/form-field/option-group/option-group.component.ts","../../../../libs/ndw/src/lib/components/form-field/option-group/option-group.component.html","../../../../libs/ndw/src/lib/components/form-field/month-input/date-validators.ts","../../../../libs/ndw/src/lib/components/form-field/month-input/month-input-utils.ts","../../../../libs/ndw/src/lib/components/form-field/month-input/month-input.component.ts","../../../../libs/ndw/src/lib/components/form-field/month-input/month-input.component.html","../../../../libs/ndw/src/lib/components/form-field/picker-button/picker-button.component.ts","../../../../libs/ndw/src/lib/components/form-field/picker-button/picker-button.component.html","../../../../libs/ndw/src/lib/components/form-field/success/success.component.ts","../../../../libs/ndw/src/lib/components/form-field/success/success.component.html","../../../../libs/ndw/src/lib/components/form-field/form-field.component.ts","../../../../libs/ndw/src/lib/components/form-field/form-field.component.html","../../../../libs/ndw/src/lib/components/form-field/textarea/auto-grow.directive.ts","../../../../libs/ndw/src/lib/components/form-field/textarea/max-char.directive.ts","../../../../libs/ndw/src/lib/components/form-field/markdown-editor/markdown-editor.component.ts","../../../../libs/ndw/src/lib/components/form-field/markdown-editor/markdown-editor.component.html","../../../../libs/ndw/src/lib/components/form-field/markdown-editor/markdown-parser/markdown-parser.component.ts","../../../../libs/ndw/src/lib/components/form-field/radio-button/radio-button.component.ts","../../../../libs/ndw/src/lib/components/form-field/radio-button/radio-button.component.html","../../../../libs/ndw/src/lib/components/form-field/radio-group/radio-group.component.ts","../../../../libs/ndw/src/lib/components/form-field/radio-group/radio-group.component.html","../../../../libs/ndw/src/lib/components/pill/pill.component.ts","../../../../libs/ndw/src/lib/components/pill/pill.component.html","../../../../libs/ndw/src/lib/components/list-item/list-item.component.ts","../../../../libs/ndw/src/lib/components/list-item/list-item.component.html","../../../../libs/ndw/src/lib/components/collapsible/collapsible.component.ts","../../../../libs/ndw/src/lib/components/collapsible/collapsible.component.html","../../../../libs/ndw/src/lib/components/list/list.component.ts","../../../../libs/ndw/src/lib/components/list/list.component.html","../../../../libs/ndw/src/lib/components/accordion/accordion.service.ts","../../../../libs/ndw/src/lib/components/accordion/accordion.component.ts","../../../../libs/ndw/src/lib/components/accordion/accordion.component.html","../../../../libs/ndw/src/lib/components/alert/alert.component.ts","../../../../libs/ndw/src/lib/components/alert/alert.component.html","../../../../libs/ndw/src/lib/components/avatar/avatar.component.ts","../../../../libs/ndw/src/lib/components/avatar/avatar.component.html","../../../../libs/ndw/src/lib/components/banner/banner.component.ts","../../../../libs/ndw/src/lib/components/banner/banner.component.html","../../../../libs/ndw/src/lib/components/breadcrumb/breadcrumb.component.ts","../../../../libs/ndw/src/lib/components/breadcrumb/breadcrumb.component.html","../../../../libs/ndw/src/lib/components/breadcrumb-group/breadcrumb-group.component.ts","../../../../libs/ndw/src/lib/components/breadcrumb-group/breadcrumb-group.component.html","../../../../libs/ndw/src/lib/components/card/card-content/card-content.component.ts","../../../../libs/ndw/src/lib/components/card/card-content/card-content.component.html","../../../../libs/ndw/src/lib/components/card/card-footer/card-footer.component.ts","../../../../libs/ndw/src/lib/components/card/card-footer/card-footer.component.html","../../../../libs/ndw/src/lib/components/card/card.component.ts","../../../../libs/ndw/src/lib/components/card/card.component.html","../../../../libs/ndw/src/lib/components/card/card-header/card-header.component.ts","../../../../libs/ndw/src/lib/components/card/card-header/card-header.component.html","../../../../libs/ndw/src/lib/components/card/index.ts","../../../../libs/ndw/src/lib/components/dashboard-card/dashboard-card.component.ts","../../../../libs/ndw/src/lib/components/dashboard-card/dashboard-card.component.html","../../../../libs/ndw/src/lib/components/dropdown/dropdown.component.ts","../../../../libs/ndw/src/lib/components/dropdown/dropdown.component.html","../../../../libs/ndw/src/lib/components/edit-bar/edit-bar.component.ts","../../../../libs/ndw/src/lib/components/edit-bar/edit-bar.component.html","../../../../libs/ndw/src/lib/components/edit-bar/edit-bar-actions/edit-bar-actions.component.ts","../../../../libs/ndw/src/lib/components/edit-bar/edit-bar-actions/edit-bar-actions.component.html","../../../../libs/ndw/src/lib/components/edit-bar/edit-bar-message/edit-bar-message.component.ts","../../../../libs/ndw/src/lib/components/edit-bar/edit-bar-message/edit-bar-message.component.html","../../../../libs/ndw/src/lib/components/favorite/favorite.component.ts","../../../../libs/ndw/src/lib/components/favorite/favorite.component.html","../../../../libs/ndw/src/lib/components/guided-tour/guided-tour.config.ts","../../../../libs/ndw/src/lib/components/guided-tour/utils/buttons.ts","../../../../libs/ndw/src/lib/components/guided-tour/utils/dom.ts","../../../../libs/ndw/src/lib/components/guided-tour/guided-tour.service.ts","../../../../libs/ndw/src/lib/components/guided-tour/base-tour.service.ts","../../../../libs/ndw/src/lib/components/hoverable-list-item/hoverable-list-item.component.ts","../../../../libs/ndw/src/lib/components/hoverable-list-item/hoverable-list-item.component.html","../../../../libs/ndw/src/lib/components/key-value-list/key-value-list.component.ts","../../../../libs/ndw/src/lib/components/key-value-list/key-value-list.component.html","../../../../libs/ndw/src/lib/components/main-navigation/main-navigation-header/main-navigation-header.component.ts","../../../../libs/ndw/src/lib/components/main-navigation/main-navigation-header/main-navigation-header.component.html","../../../../libs/ndw/src/lib/components/main-navigation/main-navigation-menu/main-navigation-menu.component.ts","../../../../libs/ndw/src/lib/components/main-navigation/main-navigation-menu/main-navigation-menu.component.html","../../../../libs/ndw/src/lib/components/main-navigation/main-navigation.component.ts","../../../../libs/ndw/src/lib/components/main-navigation/main-navigation.component.html","../../../../libs/ndw/src/lib/components/layout/layout.component.ts","../../../../libs/ndw/src/lib/components/layout/layout.component.html","../../../../libs/ndw/src/lib/components/layout-banners/layout-banners.component.ts","../../../../libs/ndw/src/lib/components/layout-banners/layout-banners.component.html","../../../../libs/ndw/src/lib/components/loader/loader.component.ts","../../../../libs/ndw/src/lib/components/loader/loader.component.html","../../../../libs/ndw/src/lib/components/map-button/map-button.model.ts","../../../../libs/ndw/src/lib/components/map-button/map-button.component.ts","../../../../libs/ndw/src/lib/components/map-button/map-button.component.html","../../../../libs/ndw/src/lib/components/map-display/map-display-option/map-display-option.component.ts","../../../../libs/ndw/src/lib/components/map-display/map-display-option/map-display-option.component.html","../../../../libs/ndw/src/lib/components/map-display/map-display.component.ts","../../../../libs/ndw/src/lib/components/map-display/map-display.component.html","../../../../libs/ndw/src/lib/components/map-display/backgrounds.ts","../../../../libs/ndw/src/lib/components/map-display/layers.ts","../../../../libs/ndw/src/lib/components/map-legend/map-legend-option/map-legend-option.component.ts","../../../../libs/ndw/src/lib/components/map-legend/map-legend-option/map-legend-option.component.html","../../../../libs/ndw/src/lib/components/map-legend/map-legend-group/map-legend-group.component.ts","../../../../libs/ndw/src/lib/components/map-legend/map-legend-group/map-legend-group.component.html","../../../../libs/ndw/src/lib/components/map-legend/map-legend.component.ts","../../../../libs/ndw/src/lib/components/map-legend/map-legend.component.html","../../../../libs/ndw/src/lib/components/modal/modal-content/modal-content.component.ts","../../../../libs/ndw/src/lib/components/modal/modal-content/modal-content.component.html","../../../../libs/ndw/src/lib/components/modal/modal-footer/modal-footer.component.ts","../../../../libs/ndw/src/lib/components/modal/modal-footer/modal-footer.component.html","../../../../libs/ndw/src/lib/components/modal/modal.service.ts","../../../../libs/ndw/src/lib/components/modal/modal-header/modal-header.component.ts","../../../../libs/ndw/src/lib/components/modal/modal-header/modal-header.component.html","../../../../libs/ndw/src/lib/components/modal/modal.component.ts","../../../../libs/ndw/src/lib/components/modal/modal.component.html","../../../../libs/ndw/src/lib/components/modal/index.ts","../../../../libs/ndw/src/lib/components/multi-select/multi-select.component.ts","../../../../libs/ndw/src/lib/components/multi-select/multi-select.component.html","../../../../libs/ndw/src/lib/components/router-breadcrumbs/router-breadcrumbs.component.ts","../../../../libs/ndw/src/lib/components/router-breadcrumbs/router-breadcrumbs.component.html","../../../../libs/ndw/src/lib/components/splitter/splitter-drag-element.ts","../../../../libs/ndw/src/lib/components/splitter/splitter.component.ts","../../../../libs/ndw/src/lib/components/splitter/splitter.component.html","../../../../libs/ndw/src/lib/components/summary-card/summary-card.component.ts","../../../../libs/ndw/src/lib/components/summary-card/summary-card.component.html","../../../../libs/ndw/src/lib/components/summary-card/summary-card-action/summary-card-action.component.ts","../../../../libs/ndw/src/lib/components/summary-card/summary-card-action/summary-card-action.component.html","../../../../libs/ndw/src/lib/components/summary-card/summary-card-actions/summary-card-actions.component.ts","../../../../libs/ndw/src/lib/components/summary-card/summary-card-actions/summary-card-actions.component.html","../../../../libs/ndw/src/lib/components/summary-card/summary-card-content/summary-card-content.component.ts","../../../../libs/ndw/src/lib/components/summary-card/summary-card-header/summary-card-header.component.ts","../../../../libs/ndw/src/lib/components/summary-card/summary-card-header/summary-card-header.component.html","../../../../libs/ndw/src/lib/components/summary-card/summary-card-tags/summary-card-tags.component.ts","../../../../libs/ndw/src/lib/components/summary-card/summary-card-tag/summary-card-tag.component.ts","../../../../libs/ndw/src/lib/components/summary-card/summary-card-subtitle/summary-card-subtitle.component.ts","../../../../libs/ndw/src/lib/components/summary-card/summary-card-subtitle/summary-card-subtitle.component.html","../../../../libs/ndw/src/lib/components/switcher/switcher.component.ts","../../../../libs/ndw/src/lib/components/switcher/switcher.component.html","../../../../libs/ndw/src/lib/components/tab/tab.component.ts","../../../../libs/ndw/src/lib/components/tab/tab.component.html","../../../../libs/ndw/src/lib/components/tab-group/tab-group.component.ts","../../../../libs/ndw/src/lib/components/tab-group/tab-group.component.html","../../../../libs/ndw/src/lib/components/table/ag-grid-theme.ts","../../../../libs/ndw/src/lib/components/toast/toast.component.ts","../../../../libs/ndw/src/lib/components/toast/toast.component.html","../../../../libs/ndw/src/lib/components/toast/toast-list/toast-list.component.ts","../../../../libs/ndw/src/lib/components/toast/toast-list/toast-list.component.html","../../../../libs/ndw/src/lib/components/toast/toast.service.ts","../../../../libs/ndw/src/ndwnu-design-system.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { CoreBadgeComponent } from '@ndwnu/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 extends CoreBadgeComponent {}\n","@if (variant() === 'error') {\n !\n} @else if (value()) {\n @if (!displayLargeNumbers() && valueOutOfRange()) {\n <span class=\"dot\"></span>\n } @else {\n {{ value() }}\n }\n} @else {\n {{ value() }}\n}\n@if (ariaLabel()) {\n <span class=\"sr-only\">{{ ariaLabel() }}</span>\n}\n","import { Directive, forwardRef, input } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CoreAutosuggestDirective } from '@ndwnu/core';\n\nimport { AutosuggestPanelComponent } from './autosuggest-panel/autosuggest-panel.component';\n\n@Directive({\n host: {\n role: 'combobox',\n 'aria-autocomplete': 'list',\n 'aria-haspopup': 'true',\n autocomplete: 'off',\n '[attr.aria-activedescendant]': '(panelOpen && activeOption) ? activeOption.id : null',\n '[attr.aria-expanded]': 'panelOpen.toString()',\n '[attr.aria-owns]': '!panelOpen ? null : ndwAutosuggest()?.id',\n '(blur)': 'onTouched()',\n '(click)': 'handleClick()',\n '(focus)': 'handleFocus()',\n '(input)': 'handleInput($event)',\n '(keydown)': 'handleKeydown($event)',\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AutosuggestDirective),\n multi: true,\n },\n ],\n selector: 'input[ndwAutosuggest], textarea[ndwAutosuggest]',\n})\nexport class AutosuggestDirective extends CoreAutosuggestDirective<AutosuggestPanelComponent> {\n public readonly ndwAutosuggest = input.required<AutosuggestPanelComponent>();\n\n get autosuggest() {\n return this.ndwAutosuggest();\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { CoreIconComponent } from '@ndwnu/core';\n\n@Component({\n selector: 'ndw-icon',\n templateUrl: './icon.component.html',\n styleUrl: './icon.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'aria-hidden': 'true',\n class: 'material-symbols-rounded notranslate',\n translate: 'no',\n },\n})\nexport class IconComponent extends CoreIconComponent {}\n","<ng-content />\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { CoreAutosuggestOptionComponent, Image, MatchBoldPipe } from '@ndwnu/core';\n\nimport { IconComponent } from '../../../icon';\n\n@Component({\n selector: 'ndw-autosuggest-option',\n imports: [IconComponent, MatchBoldPipe],\n templateUrl: './autosuggest-option.component.html',\n styleUrl: './autosuggest-option.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'ndw-autosuggest-option',\n role: 'option',\n '[attr.aria-selected]': 'selected()',\n '[class.ndw-autosuggest-option--active]': 'active()',\n '[class.ndw-autosuggest-option--selected]': 'selected()',\n '[id]': 'id',\n '(click)': 'selectViaInteraction()',\n '(keydown)': 'handleKeydown($event)',\n },\n})\nexport class AutosuggestOptionComponent extends CoreAutosuggestOptionComponent {\n icon = input<string>();\n image = input<Image>();\n}\n","@if (icon(); as icon) {\n <ndw-icon>{{ icon }}</ndw-icon>\n}\n@if (image(); as image) {\n <img [alt]=\"image.alt\" [src]=\"image.src\" />\n}\n<span class=\"ndw-option-text\" [innerHTML]=\"label() | matchBold: searchTerm()\"></span>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { IconComponent } from '../../../icon';\nimport { CoreAutosuggestAddOptionComponent } from '@ndwnu/core';\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 class: 'ndw-autosuggest-option ndw-autosuggest-option--add',\n role: 'option',\n '[attr.aria-selected]': 'selected()',\n '[class.ndw-autosuggest-option--active]': 'active()',\n '[class.ndw-autosuggest-option--selected]': 'selected()',\n '(click)': 'selectViaInteraction()',\n '(keydown)': 'handleKeydown($event)',\n },\n})\nexport class AutosuggestAddOptionComponent extends CoreAutosuggestAddOptionComponent {}\n","<ndw-icon [size]=\"'sm'\">add</ndw-icon> Voeg <span class=\"truncate\">'{{ value().label }}'</span> toe\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { CoreAutosuggestPanelComponent } from '@ndwnu/core';\n\nimport { IconComponent } from '../../../icon';\nimport { AutosuggestAddOptionComponent } from '../autosuggest-add-option';\nimport { AutosuggestOptionComponent } from '../autosuggest-option';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n AutosuggestAddOptionComponent,\n AutosuggestOptionComponent,\n IconComponent,\n NgTemplateOutlet,\n ],\n selector: 'ndw-autosuggest',\n styleUrl: './autosuggest-panel.component.scss',\n templateUrl: './autosuggest-panel.component.html',\n})\nexport class AutosuggestPanelComponent extends CoreAutosuggestPanelComponent {}\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 [icon]=\"option.icon\"\n [image]=\"option.image\"\n [label]=\"option.label\"\n [value]=\"option\"\n [searchTerm]=\"searchTerm()\"\n />\n }\n @if (enableAddOption()) {\n @if (!!searchTerm().trim()) {\n <ndw-autosuggest-add-option\n #option\n [value]=\"createNewOption(searchTerm())\"\n (addOption)=\"addNewOption($event)\"\n />\n } @else if (!suggestions().length) {\n <ng-container *ngTemplateOutlet=\"emptyResults\"></ng-container>\n }\n }\n @if (hasMoreResults()) {\n <p class=\"ndw-autosuggest-panel__more-results\">\n {{ hiddenResultsText() }}\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 } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CoreCheckboxComponent } from '@ndwnu/core';\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 extends CoreCheckboxComponent implements ControlValueAccessor {\n public switch = input(false);\n public success = input(false);\n}\n","<input\n type=\"checkbox\"\n class=\"sr-only\"\n [id]=\"'checkbox-' + uuid\"\n [checked]=\"checked()\"\n [attr.aria-checked]=\"indeterminate() ? 'mixed' : checked()\"\n [disabled]=\"disabled()\"\n [required]=\"required()\"\n [indeterminate]=\"indeterminate()\"\n (change)=\"onInputChange($event)\"\n/>\n<label [for]=\"'checkbox-' + uuid\" [ngClass]=\"{ 'switch-text': switch() }\">\n <div\n aria-hidden=\"true\"\n [ngClass]=\"{ error: error(), success: success(), checkbox: !switch(), switch: switch() }\"\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 <span id=\"checkbox-label-{{ uuid }}\">\n <ng-content />\n </span>\n</label>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { CoreCheckboxGroupComponent } from '@ndwnu/core';\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 extends CoreCheckboxGroupComponent {}\n","<ng-content />\n","import {\n MatCalendarCellClassFunction,\n MatCalendarView,\n MatDatepickerIntl,\n} from '@angular/material/datepicker';\nimport { DatepickerMode } from './datepicker.model';\n\nexport function createDutchDatepickerIntl() {\n const intl = new MatDatepickerIntl();\n intl.calendarLabel = 'Kalender';\n intl.openCalendarLabel = 'Open kalender';\n intl.closeCalendarLabel = 'Sluit kalender';\n intl.comparisonDateLabel = 'Vergelijkingsdatum';\n intl.prevMonthLabel = 'Vorige maand';\n intl.nextMonthLabel = 'Volgende maand';\n intl.nextMultiYearLabel = 'Volgende jaren';\n intl.prevMultiYearLabel = 'Vorige jaren';\n intl.prevYearLabel = 'Vorig jaar';\n intl.nextYearLabel = 'Volgend jaar';\n intl.switchToMonthViewLabel = 'Schakel naar maandweergave';\n intl.switchToMultiYearViewLabel = 'Schakel naar jaartallenweergave';\n return intl;\n}\n\nfunction datesAreSameYear(d1: Date, d2: Date): boolean {\n return d1.getFullYear() === d2.getFullYear();\n}\n\nfunction datesAreSameMonth(d1: Date, d2: Date): boolean {\n return datesAreSameYear(d1, d2) && d1.getMonth() === d2.getMonth();\n}\n\nfunction datesAreSameDay(d1: Date, d2: Date): boolean {\n return datesAreSameMonth(d1, d2) && d1.getDate() === d2.getDate();\n}\n\nexport function toDateArray(value: Date | Date[] | null | undefined): Date[] {\n return [value].flat().filter((v): v is Date => v != null);\n}\n\nexport function toggleDates(current: Date[], toToggle: Date[]): Date[] {\n const toggled = [...current];\n\n toToggle.forEach((date) => {\n const index = toggled.findIndex((d) => areDatesEqual(d, date));\n\n if (index > -1) {\n toggled.splice(index, 1);\n } else {\n toggled.push(date);\n }\n });\n\n return toggled;\n}\n\nexport function getUniqueDates(dates: Date[]): Date[] {\n return dates.filter((date, index) => dates.findIndex((d) => areDatesEqual(d, date)) === index);\n}\n\nexport function compareDates(a: Date, b: Date): number {\n return a.getTime() - b.getTime();\n}\n\nexport function isDateBefore(a: Date, b: Date): boolean {\n return compareDates(a, b) < 0;\n}\n\nexport function isDateAfter(a: Date, b: Date): boolean {\n return compareDates(a, b) > 0;\n}\n\nexport function areDatesEqual(a: Date, b: Date): boolean {\n return compareDates(a, b) === 0;\n}\n\nexport function areDatesEqualInView(a: Date, b: Date, view: MatCalendarView) {\n switch (view) {\n case 'month':\n return datesAreSameDay(a, b);\n case 'year':\n return datesAreSameMonth(a, b);\n case 'multi-year':\n return datesAreSameYear(a, b);\n default:\n return false;\n }\n}\n\nexport function datesToInputValue(dates: Date[], mode: DatepickerMode): string {\n if (dates.length === 0) {\n return '';\n }\n\n switch (mode) {\n case 'month':\n return formatMonth(dates[0]);\n case 'single':\n return formatDate(dates[0]);\n case 'multiple':\n return dates.sort(compareDates).map(formatDate).join(', ');\n case 'range':\n return dates.slice(0, 2).map(formatDate).join(' - ');\n default:\n return '';\n }\n}\n\nfunction formatDate(date: Date): string {\n return new Intl.DateTimeFormat('nl-NL').format(date);\n}\n\nfunction formatMonth(date: Date): string {\n return new Intl.DateTimeFormat('nl-NL', { year: 'numeric', month: 'numeric' }).format(date);\n}\n\nexport function inputValueToDates(input: string, mode: DatepickerMode): Date[] {\n const parts = input.split(/[-,]/).map((part) => parseInt(part.trim(), 10));\n\n const parsed: (Date | null)[] = [];\n\n if (mode === 'month' && parts.length === 2) {\n const [month, year] = parts;\n parsed.push(createDate(year, month - 1, 1));\n } else if (mode === 'single' && parts.length === 3) {\n const [day, month, year] = parts;\n parsed.push(createDate(year, month - 1, day));\n } else if (mode === 'multiple' && parts.length % 3 === 0) {\n for (let i = 0; i < parts.length; i += 3) {\n const [day, month, year] = parts.slice(i, i + 3);\n parsed.push(createDate(year, month - 1, day));\n }\n } else if (mode === 'range' && parts.length === 6) {\n const [day1, month1, year1, day2, month2, year2] = parts;\n parsed.push(createDate(year1, month1 - 1, day1));\n parsed.push(createDate(year2, month2 - 1, day2));\n }\n\n return parsed.filter((date): date is Date => date != null);\n}\n\nexport function createDate(year: number, month: number, day: number): Date | null {\n const minValidYear = 1000;\n\n if (\n isNaN(year) ||\n isNaN(month) ||\n isNaN(day) ||\n year < minValidYear ||\n month < 0 ||\n month > 11 ||\n day < 1 ||\n day > 31\n ) {\n return null;\n }\n\n const date = new Date(year, month, day);\n return date.getFullYear() === year && date.getMonth() === month && date.getDate() === day\n ? date\n : null;\n}\n\nexport function datesToOutputValue(\n dates: Date | Date[] | null,\n mode: DatepickerMode,\n): Date | Date[] | null {\n const array = toDateArray(dates);\n\n switch (mode) {\n case 'single':\n case 'month':\n return array[0] ?? null;\n case 'multiple':\n return array;\n case 'range':\n return array.slice(0, 2);\n }\n}\n\nexport function getDateClassFn(\n dateWithIndicatorFn: (date: Date) => boolean,\n mode: DatepickerMode,\n selectedDates: Date[],\n): MatCalendarCellClassFunction<Date> {\n return (cellDate: Date, view: MatCalendarView) => {\n const classNames = ['ndw-date'];\n\n if (dateWithIndicatorFn(cellDate)) {\n classNames.push('ndw-date-indicator');\n }\n\n if (selectedDates.some((selectedDate) => areDatesEqualInView(cellDate, selectedDate, view))) {\n classNames.push('ndw-date-selected');\n }\n\n if (mode === 'range' && selectedDates.length === 2) {\n if (isDateBefore(selectedDates[0], cellDate) && isDateAfter(selectedDates[1], cellDate)) {\n classNames.push('ndw-date-in-range');\n }\n\n if (areDatesEqual(selectedDates[0], cellDate)) {\n classNames.push('ndw-date-range-start');\n }\n\n if (areDatesEqual(selectedDates[1], cellDate)) {\n classNames.push('ndw-date-range-end');\n }\n }\n\n return classNames;\n };\n}\n","import {\n afterRenderEffect,\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n ElementRef,\n forwardRef,\n input,\n model,\n OnDestroy,\n signal,\n Signal,\n viewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { MAT_DATE_LOCALE, provideNativeDateAdapter } from '@angular/material/core';\nimport {\n DateFilterFn,\n MatCalendar,\n MatDatepickerIntl,\n MatDatepickerModule,\n} from '@angular/material/datepicker';\nimport { noop } from 'rxjs';\nimport {\n areDatesEqual,\n compareDates,\n createDutchDatepickerIntl,\n datesToOutputValue,\n getDateClassFn,\n isDateAfter,\n isDateBefore,\n toDateArray,\n toggleDates,\n} from '../datepicker-functions';\nimport { DatepickerMode } from '../datepicker.model';\n\nconst rangePreviewClasses = {\n start: 'ndw-date-range-start-preview',\n end: 'ndw-date-range-end-preview',\n inside: 'ndw-date-in-range-preview',\n};\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatDatepickerModule],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CalendarComponent),\n multi: true,\n },\n { provide: MAT_DATE_LOCALE, useValue: 'nl-NL' },\n { provide: MatDatepickerIntl, useFactory: createDutchDatepickerIntl },\n provideNativeDateAdapter(),\n ],\n selector: 'ndw-calendar',\n styleUrl: './calendar.component.scss',\n templateUrl: './calendar.component.html',\n host: {\n '[class.elevated]': 'elevated()',\n },\n})\nexport class CalendarComponent implements ControlValueAccessor, OnDestroy {\n readonly mode = input<DatepickerMode>('single');\n readonly disabled = model<boolean>(false);\n readonly minDate = input<Date | null>(null);\n readonly maxDate = input<Date | null>(null);\n readonly startAt = input<Date | null>(null);\n readonly dateEnabledFilter = input<DateFilterFn<Date | null>>(() => true);\n readonly dateWithIndicatorFilter = input<DateFilterFn<Date | null>>(() => false);\n readonly elevated = input(true);\n\n protected internalDateEnabledFilter = computed(() => {\n const disabled = this.disabled();\n const filter = this.dateEnabledFilter();\n\n return (date: Date | null) => !disabled && filter(date);\n });\n\n protected readonly calendar = viewChild(MatCalendar);\n protected readonly calendarElement: Signal<ElementRef<HTMLElement> | undefined> = viewChild(\n MatCalendar,\n {\n read: ElementRef<HTMLElement>,\n },\n );\n\n protected readonly value = signal<Date[]>([]);\n protected readonly startView = computed(() => (this.mode() === 'month' ? 'year' : 'month'));\n protected readonly dateClass = computed(() =>\n getDateClassFn(this.dateWithIndicatorFilter(), this.mode(), this.value()),\n );\n\n #onChange: (value: Date | Date[] | null) => void = noop;\n #mouseMoveListener: (() => void) | null = null;\n\n constructor() {\n afterRenderEffect(() => {\n const calendar = this.calendar();\n this.value(); // Depend on value changes.\n\n // Force the calendar to refresh the calendar view.\n // This is needed to redraw after setting classes on dates.\n calendar?.updateTodaysDate();\n });\n\n effect(() => {\n const mode = this.mode();\n const element = this.calendarElement()?.nativeElement;\n const calendar = this.calendar();\n\n this.removeMouseMoveListener();\n\n if (mode !== 'range' || !element || !calendar) {\n return;\n }\n\n this.addMouseMoveListener(element, calendar);\n });\n }\n\n ngOnDestroy(): void {\n this.removeMouseMoveListener();\n }\n\n private addMouseMoveListener(calendarElement: HTMLElement, calendar: MatCalendar<Date>) {\n this.#mouseMoveListener = () => this.addRangePreviewClasses(calendarElement, calendar);\n calendarElement.addEventListener('mousemove', this.#mouseMoveListener);\n }\n\n private removeMouseMoveListener() {\n if (this.#mouseMoveListener) {\n this.calendarElement()?.nativeElement.removeEventListener(\n 'mousemove',\n this.#mouseMoveListener,\n );\n this.#mouseMoveListener = null;\n }\n }\n\n private addRangePreviewClasses(calendarElement: Element, calendar: MatCalendar<Date>) {\n const selection = this.value();\n const hovered = calendarElement.querySelector('.ndw-date:hover');\n\n if (calendar.currentView !== 'month' || selection.length !== 1 || !hovered) {\n calendarElement\n .querySelectorAll('.ndw-date')\n .forEach((btn) => this.removeRangePreviewClasses(btn));\n return;\n }\n\n const getButtonDate = (el: Element) => {\n return new Date(\n calendar.activeDate.getFullYear() || 0,\n calendar.activeDate.getMonth() || 0,\n parseInt(el.textContent || '0', 10),\n );\n };\n\n const selectedDate = selection[0];\n const hoveredDate = getButtonDate(hovered);\n\n // Get all buttons between\n calendarElement.querySelectorAll('.ndw-date').forEach((btn) => {\n const btnDate = getButtonDate(btn);\n\n this.removeRangePreviewClasses(btn);\n\n if (\n (isDateAfter(btnDate, selectedDate) && isDateBefore(btnDate, hoveredDate)) ||\n (isDateBefore(btnDate, selectedDate) && isDateAfter(btnDate, hoveredDate))\n ) {\n btn.classList.add(rangePreviewClasses.inside);\n } else if (areDatesEqual(btnDate, selectedDate) && isDateAfter(hoveredDate, selectedDate)) {\n btn.classList.add(rangePreviewClasses.start);\n } else if (areDatesEqual(btnDate, selectedDate) && isDateBefore(hoveredDate, selectedDate)) {\n btn.classList.add(rangePreviewClasses.end);\n } else if (areDatesEqual(btnDate, hoveredDate) && isDateAfter(btnDate, selectedDate)) {\n btn.classList.add(rangePreviewClasses.end);\n } else if (areDatesEqual(btnDate, hoveredDate) && isDateBefore(btnDate, selectedDate)) {\n btn.classList.add(rangePreviewClasses.start);\n }\n });\n }\n\n private removeRangePreviewClasses(element: Element) {\n Object.values(rangePreviewClasses).forEach((cssClass) => {\n element.classList.remove(cssClass);\n });\n }\n\n protected onDateSelected(date: Date | Date[] | null, toggle = true) {\n const mode = this.mode();\n const dates = toDateArray(date);\n let selection: Date[];\n\n if (mode === 'multiple' && toggle) {\n selection = toggleDates(this.value(), dates);\n } else if (mode === 'range' && toggle) {\n const toggled = toggleDates(this.value(), dates);\n\n // When the user selected a third date, start a new range from that date.\n if (toggled.length > 2) {\n selection = toggled.slice(-1);\n } else {\n selection = toggled;\n }\n } else {\n selection = dates;\n }\n\n selection = selection.sort(compareDates);\n\n this.writeValue(selection);\n this.#onChange(datesToOutputValue(selection, mode));\n }\n\n protected onMonthSelected(date: Date) {\n if (this.mode() === 'month') {\n this.onDateSelected(date);\n }\n }\n\n writeValue(value: Date | Date[] | null): void {\n this.value.set(toDateArray(value));\n }\n\n registerOnChange(fn: (value: Date | Date[] | null) => void): void {\n this.#onChange = fn;\n }\n\n registerOnTouched(_fn: () => void): void {\n // noop\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n}\n","<mat-calendar\n panelClass=\"ndw-calendar\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [dateClass]=\"dateClass()\"\n [class.range-picker]=\"mode() === 'range'\"\n [class.month-picker]=\"mode() === 'month'\"\n [startView]=\"startView()\"\n [startAt]=\"startAt()\"\n [dateFilter]=\"internalDateEnabledFilter()\"\n (monthSelected)=\"onMonthSelected($event)\"\n (selectedChange)=\"onDateSelected($event)\"\n/>\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\nexport type PopoverPosition = 'nextToTriggerButton' | 'overTriggerButton';\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<PopoverPosition>('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: PopoverPosition): ConnectedPosition[] {\n let positions: ConnectedPosition[];\n\n if (popoverPosition === 'overTriggerButton') {\n positions = [\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 } else {\n positions = [\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 return [\n ...positions,\n ...positions.map(\n (position) =>\n ({\n ...position,\n overlayX: 'center',\n overlayY: 'center',\n }) satisfies ConnectedPosition,\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 type=\"button\" [disabled]=\"disabled()\" (click)=\"clicked.emit($event)\">\n <span class=\"sr-only\">{{ suffixAriaLabel() }}</span>\n <ndw-icon>{{ suffixIcon() }}</ndw-icon>\n</button>\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 get error(): boolean {\n return !!this.element.getAttribute('error');\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.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.updateRequiredAttribute();\n });\n\n fromEvent(this.element, 'blur')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.updateErrorAttribute();\n });\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(() => {\n this.setSelectPlaceholderAttribute();\n });\n\n this.setSelectPlaceholderAttribute();\n }\n\n public updateErrorAttribute(formFieldError?: boolean): void {\n if (this.control) {\n this.error = (this.control.invalid === true && this.control.touched) || !!formFieldError;\n }\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 { DatePipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n model,\n viewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { DateFilterFn, MatDatepickerModule } from '@angular/material/datepicker';\nimport { noop } from 'rxjs';\nimport { IconComponent } from '../../icon';\nimport { PopoverTriggerDirective } from '../../popover';\nimport { TagComponent } from '../../tag';\nimport { InputDirective } from '../input';\nimport { CalendarComponent } from './calendar/calendar.component';\nimport {\n compareDates,\n datesToInputValue,\n datesToOutputValue,\n getUniqueDates,\n inputValueToDates,\n toDateArray,\n} from './datepicker-functions';\nimport { DatepickerMode } from './datepicker.model';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FormsModule,\n MatDatepickerModule,\n InputDirective,\n IconComponent,\n PopoverTriggerDirective,\n CalendarComponent,\n TagComponent,\n DatePipe,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatepickerComponent),\n multi: true,\n },\n ],\n selector: 'ndw-datepicker',\n styleUrl: './datepicker.component.scss',\n templateUrl: './datepicker.component.html',\n})\nexport class DatepickerComponent implements ControlValueAccessor {\n readonly mode = input<DatepickerMode>('single');\n readonly required = input<boolean>(false);\n readonly disabled = model<boolean>(false);\n readonly placeholder = input<string>('Selecteer een datum');\n readonly openCalendarLabel = input<string>('Open kalender');\n readonly minDate = input<Date | null>(null);\n readonly maxDate = input<Date | null>(null);\n readonly dateEnabledFilter = input<DateFilterFn<Date | null>>(() => true);\n readonly dateWithIndicatorFilter = input<DateFilterFn<Date | null>>(() => false);\n\n // Used by the FormFieldComponent to set the success and error state.\n readonly input = viewChild.required(InputDirective);\n\n protected readonly popoverTrigger = viewChild.required(PopoverTriggerDirective);\n\n protected readonly value = model<Date[]>([]);\n protected readonly startAt = computed(() => {\n const value = this.value();\n return value.length > 0 ? value[value.length - 1] : null;\n });\n protected readonly formattedValue = computed(() => datesToInputValue(this.value(), this.mode()));\n protected readonly showTags = computed(() => this.mode() === 'multiple');\n\n #onChange: (value: Date | Date[] | null) => void = noop;\n\n protected onDateInput(input: string) {\n const parsed = inputValueToDates(input, this.mode());\n const merged = this.mode() === 'multiple' ? [...toDateArray(this.value()), ...parsed] : parsed;\n const filtered = getUniqueDates(\n merged.filter((date) => {\n const dateEnabledFilter = this.dateEnabledFilter();\n const minDate = this.minDate() ?? date;\n const maxDate = this.maxDate() ?? date;\n return (\n dateEnabledFilter(date) &&\n compareDates(date, minDate) >= 0 &&\n compareDates(date, maxDate) <= 0\n );\n }),\n );\n\n if (filtered.length > 0) {\n this.onDateSelected(filtered);\n } else {\n this.onDateSelected(null);\n }\n\n if (filtered.length === 0 || this.mode() === 'multiple') {\n this.input().element.value = '';\n }\n }\n\n protected removeDate(date: Date) {\n const filtered = this.value().filter((d) => d.getTime() !== date.getTime());\n this.onDateSelected(filtered);\n }\n\n protected onDateSelected(date: Date | Date[] | null) {\n const mode = this.mode();\n const dates = toDateArray(date).sort(compareDates);\n\n this.writeValue(dates);\n this.#onChange(datesToOutputValue(dates, mode));\n\n if (mode === 'single' || mode === 'month') {\n this.#closeCalendar();\n }\n\n if (!this.popoverTrigger().isOpen()) {\n this.input().control?.markAllAsTouched();\n this.input().updateErrorAttribute();\n }\n }\n\n protected onPopoverOpenChange(isOpen: boolean) {\n if (!isOpen) {\n this.input().control?.markAllAsTouched();\n this.input().updateErrorAttribute();\n }\n }\n\n #closeCalendar() {\n if (this.popoverTrigger().isOpen()) {\n this.popoverTrigger().isOpen.set(false);\n this.popoverTrigger().togglePopover();\n }\n }\n\n writeValue(value: Date | Date[] | null): void {\n this.value.set(toDateArray(value));\n }\n\n registerOnChange(fn: (value: Date | Date[] | null) => void): void {\n this.#onChange = fn;\n }\n\n registerOnTouched(_fn: () => void): void {\n // noop\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n}\n","<input\n ndwInput\n [value]=\"showTags() ? '' : formattedValue()\"\n (blur)=\"onDateInput($event.target.value)\"\n [min]=\"minDate()\"\n [max]=\"maxDate()\"\n [placeholder]=\"placeholder()\"\n [required]=\"required()\"\n [disabled]=\"disabled()\"\n/>\n\n<button\n ndwButton\n class=\"calendar-button\"\n type=\"button\"\n extra-small\n tertiary\n [ndwPopoverTrigger]=\"calendarTemplate\"\n [toggleOnClick]=\"true\"\n [attr.aria-label]=\"openCalendarLabel()\"\n [disabled]=\"disabled()\"\n (isOpenChange)=\"onPopoverOpenChange($event)\"\n>\n <ndw-icon>calendar_month</ndw-icon>\n</button>\n\n<ng-template #calendarTemplate>\n <ndw-calendar\n [ngModel]=\"value()\"\n (ngModelChange)=\"onDateSelected($event)\"\n [mode]=\"mode()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [startAt]=\"startAt()\"\n [dateEnabledFilter]=\"dateEnabledFilter()\"\n [dateWithIndicatorFilter]=\"dateWithIndicatorFilter()\"\n [elevated]=\"false\"\n />\n</ng-template>\n\n@if (showTags() && value().length > 0) {\n <div class=\"tag-container\">\n @for (value of value(); track value.getTime()) {\n <ndw-tag (clicked)=\"removeDate(value)\">{{ value | date: 'd-M-yyyy' }}</ndw-tag>\n }\n </div>\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-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","export const MIME_TYPE_MAP: Record<string, string> = {\n geojson: 'application/geo+json',\n tsv: 'text/tab-separated-values',\n};\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n computed,\n input,\n model,\n viewChild,\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';\nimport { MIME_TYPE_MAP } from './mime-type-map';\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 allowedFileTypeRegex = input<RegExp>();\n public readonly disabled = model(false);\n public readonly fileUploadText = input<FileUploadText>({\n dragText: 'Klik of sleep je bestanden hierheen',\n dragOverText: 'Laat los om te uploaden',\n });\n public readonly maxFileSizeInBytes = input(1000000);\n public readonly mimeTypeMap = input<Record<string, string>>({});\n public readonly readonly = input(false);\n public readonly uploadDate = input('');\n\n public readonly draggingOver = model(false);\n public readonly error = model(false);\n public readonly incorrectFileSize = model(false);\n public readonly incorrectFileType = model(false);\n public readonly selectedFile = model<File | null>();\n public readonly success = model(false);\n\n protected readonly canEdit = computed(\n () => !this.selectedFile() && !this.disabled() && !this.readonly(),\n );\n\n protected readonly displayText = computed(() => {\n const selectedFile = this.selectedFile();\n const draggingOver = this.draggingOver();\n const fileUploadText = this.fileUploadText();\n\n return selectedFile ? '' : draggingOver ? fileUploadText.dragOverText : fileUploadText.dragText;\n });\n\n public readonly fileInputElement = viewChild.required<ElementRef<HTMLInputElement>>('fileInput');\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 selectedFile = this.selectedFile();\n if (!selectedFile) {\n return;\n }\n\n const url = window.URL.createObjectURL(selectedFile);\n const linkElement = document.createElement('a');\n linkElement.href = url;\n linkElement.download = 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 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 public setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n\n private selectFile(file: File): void {\n if (!file) {\n return;\n }\n\n file = this.ensureFileType(file);\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 /**\n * Ensures that the provided File has a valid MIME type.\n *\n * NOTE: Some file extensions are not automatically mapped to a valid MIME type by the operating system.\n * In such cases, the MIME_TYPE_MAP in combination with the mimeTypeMap input is used to assign the correct MIME type.\n */\n private ensureFileType(file: File): File {\n if (file.type?.trim()) {\n return file;\n }\n\n const nameParts = file.name.split('.');\n if (nameParts.length < 2) {\n console.warn(`Unable to determine MIME type for \"${file.name}\". No file extension detected.`);\n return file;\n }\n\n const extension = nameParts.pop()?.toLowerCase();\n const combinedMimeTypeMap = { ...MIME_TYPE_MAP, ...this.mimeTypeMap() };\n const mimeType = extension && combinedMimeTypeMap[extension];\n if (mimeType) {\n return new File([file], file.name, { type: mimeType, lastModified: file.lastModified });\n }\n\n console.warn(\n `Unable to determine MIME type for \"${file.name}\". Unrecognized file extension \"${extension}\".`,\n );\n return file;\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 private readonly elementRef = inject(ElementRef);\n private readonly overlay = inject(Overlay);\n private readonly ariaDescriber = inject(AriaDescriber);\n\n public text = input.required<string>({ alias: 'ndwTooltip' });\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';\n\nimport { IconComponent } from '../../icon';\nimport { InputDirective } from '../input';\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 [attr.disabled]=\"disabled() || undefined\"\n (click)=\"onClick()\"\n>\n <span class=\"sr-only\">{{ ariaLabel() }}</span>\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';\n\nimport { InputDirective } from '../input';\nimport { InputButtonComponent } from '../input-button';\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 const INPUT_CONTAINER_CLASS = 'input-container';\n","export enum FormFieldElement {\n Dropdown = 'ndw-dropdown',\n Input = 'input',\n Select = 'select',\n Textarea = 'textarea',\n}\n\nexport type CheckType = 'checkbox' | 'radio';\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 { ChangeDetectionStrategy, Component } from '@angular/core';\n\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 { 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 } 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 public disabled = 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';\n\nimport { noop } from 'rxjs';\nimport { OptionGroupMode } from './option-group.model';\nimport { OptionComponent } from './option.component';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.error]': 'error() || null',\n '[attr.required]': 'isRequiredOrHasRequiredValidator',\n '[attr.success]': 'success() || null',\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 private readonly ngControl = inject(NgControl, { optional: true });\n\n public readonly error = input(false);\n public readonly readonly = input(false);\n public readonly fluid = input(false);\n public readonly fluidColumns = input<number | null>(null);\n public readonly mode = input<OptionGroupMode>('multiple');\n public readonly required = input(false);\n public readonly success = input(false);\n\n public readonly checkedValues = model<unknown[]>([]);\n public readonly disabled = model(false);\n\n protected readonly fluidColumnStyle = computed(() =>\n this.fluidColumns() ? `repeat(${this.fluidColumns()}, 1fr)` : null,\n );\n\n public readonly children = contentChildren(OptionComponent);\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 = noop;\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]=\"child.disabled() || disabled() || readonly() ? '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]=\"child.disabled() || disabled() || readonly()\"\n [readonly]=\"readonly()\"\n [checked]=\"checkedValues().includes(child.value())\"\n (change)=\"toggleValue(child.value())\"\n />\n {{ child.label() }}\n </label>\n}\n","import { ValidatorFn } from '@angular/forms';\n\nexport const minDateValidator: (min: Date) => ValidatorFn = (min) => {\n return (control) => {\n const value = control.value as Date | null;\n if (value && value < min) {\n return { minDate: { min } };\n }\n return null;\n };\n};\n\nexport const maxDateValidator: (max: Date) => ValidatorFn = (max) => {\n return (control) => {\n const value = control.value as Date | null;\n if (value && value > max) {\n return { maxDate: { max } };\n }\n return null;\n };\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(\n monthLabels: string[],\n year: number,\n minDate: Date,\n maxDate: Date,\n): { label: string; value: number; disabled: boolean }[] {\n return monthLabels.map((month, index) => {\n const monthMaxDate = new Date(year, index + 1, 0, 23, 59, 59, 999);\n const monthMinDate = new Date(year, index, 1);\n const disabled = monthMaxDate < minDate || monthMinDate > maxDate;\n\n return {\n label: month,\n value: index + 1,\n disabled,\n };\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 { 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';\nimport { maxDateValidator, minDateValidator } from './date-validators';\nimport { createMonthOptions, createYearRange } from './month-input-utils';\n\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { fromEvent, noop } from 'rxjs';\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 ButtonDirective,\n FormsModule,\n InputDirective,\n IconComponent,\n OptionGroupComponent,\n OptionComponent,\n PopoverTriggerDirective,\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 private readonly destroyRef = inject(DestroyRef);\n protected readonly ngControl = inject(NgControl, { optional: true });\n\n public readonly required = input(false);\n public readonly showMonthPickerLabel = input('Selecteer maand');\n public readonly placeholder = input('JJJJ-MM');\n public readonly yearPlaceholder = input('Jaar');\n public readonly minDate = input(new Date(2020, 0, 1));\n public readonly maxDate = input(new Date(2099, 11, 31));\n public readonly monthLabels = input(defaultMonthLabels);\n public readonly addValidators = input(true);\n\n public readonly disabled = model(false);\n public readonly readonly = input(false);\n protected readonly selectedYear = model(new Date().getFullYear());\n protected readonly selectedMonth = model<number | null>(null);\n\n public readonly inputElement = computed(() => this.input()?.element);\n protected readonly selectedDate = computed(() => {\n const year = this.selectedYear();\n const month = this.selectedMonth();\n return year && month ? new Date(year, month - 1, 1) : 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 years = computed(() => createYearRange(this.minDate(), this.maxDate()));\n protected readonly months = computed(() =>\n createMonthOptions(this.monthLabels(), this.selectedYear(), this.minDate(), this.maxDate()),\n );\n protected readonly isYearValid = computed(() => {\n const year = this.selectedYear();\n return year >= this.minDate().getFullYear() && year <= this.maxDate().getFullYear();\n });\n\n public readonly input = viewChild(InputDirective);\n\n protected showMonthPicker = false;\n\n private onChange: (value: Date | null) => void = noop;\n\n public constructor() {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public ngOnInit(): void {\n const input = this.input();\n if (input) {\n fromEvent(input.element, 'blur')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.updateErrorAttribute();\n });\n }\n\n if (this.ngControl?.control && this.addValidators()) {\n if (this.minDate()) {\n this.ngControl.control.addValidators(minDateValidator(this.minDate()));\n }\n\n if (this.maxDate()) {\n this.ngControl.control.addValidators(maxDateValidator(this.maxDate()));\n }\n\n this.ngControl.control.updateValueAndValidity();\n }\n }\n\n public updateErrorAttribute(formFieldError?: boolean): void {\n const input = this.input();\n if (input && this.ngControl) {\n this.ngControl.control?.markAsTouched();\n input.error = this.ngControl.invalid === true || !!formFieldError;\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 this.updateErrorAttribute();\n }\n\n protected onYearSelected(year: string): void {\n this.selectedYear.set(parseInt(year, 10));\n this.onChange(this.selectedDate());\n this.updateErrorAttribute();\n }\n\n protected onMonthSelected(month: number): void {\n this.selectedMonth.set(month);\n this.onChange(this.selectedDate());\n this.updateErrorAttribute();\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 #input\n ndwInput\n type=\"text\"\n minlength=\"6\"\n maxlength=\"7\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly()\"\n [placeholder]=\"placeholder()\"\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 [attr.aria-label]=\"showMonthPickerLabel() || undefined\"\n [disabled]=\"disabled() || readonly()\"\n [ndwPopoverTrigger]=\"monthPicker\"\n [popoverPosition]=\"'nextToTriggerButton'\"\n (click)=\"showMonthPicker = !showMonthPicker\"\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 [attr.error]=\"isYearValid() ? null : true\"\n />\n\n <ndw-option-group\n mode=\"single\"\n [fluid]=\"true\"\n [fluidColumns]=\"4\"\n [ngModel]=\"selectedMonth() ? [selectedMonth()] : []\"\n (ngModelChange)=\"onMonthSelected($event?.[0])\"\n >\n @for (month of months(); track month.value) {\n <ndw-option [label]=\"month.label\" [value]=\"month.value\" [disabled]=\"month.disabled\">\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 { InputType } from '@ndwnu/core';\n\nimport { FormFieldElement } from '../form-field.model';\nimport { InputDirective } from '../input';\nimport { InputButtonComponent } from '../input-button';\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';\nimport { InputType } from '@ndwnu/core';\n\nimport { IconComponent } from '../icon';\nimport { TooltipDirective } from '../tooltip';\n\nimport { ClearSearchButtonComponent } from './clear-search-button';\nimport { DatepickerComponent } from './datepicker';\nimport { ErrorComponent } from './error';\nimport { INPUT_CONTAINER_CLASS } from './form-field.constant';\nimport { FormFieldElement } from './form-field.model';\nimport { InfoComponent } from './info';\nimport { InputDirective } from './input';\nimport { InputIconComponent } from './input-icon';\nimport { MonthInputComponent } from './month-input';\nimport { PickerButtonComponent } from './picker-button';\nimport { SuccessComponent } from './success';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n ClearSearchButtonComponent,\n ErrorComponent,\n InfoComponent,\n InputIconComponent,\n IconComponent,\n NgTemplateOutlet,\n PickerButtonComponent,\n SuccessComponent,\n TooltipDirective,\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('');\n public readonly hideLabel = input(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 dateInput = contentChild(DatepickerComponent);\n protected readonly regularInput = contentChild(InputDirective);\n protected readonly input = computed(\n () => this.regularInput() ?? this.monthInput()?.input() ?? this.dateInput()?.input(),\n );\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();\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() || !!this.input()?.element.disabled;\n }\n\n private setInputErrorState(): void {\n this.input()?.updateErrorAttribute(!!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 >\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 { 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 {\n DestroyRef,\n Directive,\n ElementRef,\n OnDestroy,\n OnInit,\n Renderer2,\n afterNextRender,\n effect,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NgControl } from '@angular/forms';\n\n@Directive({\n selector: 'textarea[ndwMaxChar]',\n host: {\n '(input)': 'onInput()',\n },\n})\nexport class MaxCharDirective implements OnInit, OnDestroy {\n public ndwMaxChar = input<number>(0);\n public maxCharText = input<string>('');\n\n private readonly elementRef = inject(ElementRef);\n private readonly renderer = inject(Renderer2);\n private readonly destroyRef = inject(DestroyRef);\n\n private counterElement: HTMLElement | null = null;\n private originalParentStyle: CSSStyleDeclaration | null = null;\n private originalElementStyle: CSSStyleDeclaration | null = null;\n\n private get element(): HTMLTextAreaElement {\n return this.elementRef.nativeElement as HTMLTextAreaElement;\n }\n\n private get parentStyle() {\n if (!this.element.parentElement) {\n throw new Error('ndwMaxChar parent element not found');\n }\n return this.element.parentElement.style;\n }\n\n private readonly isRendered = signal(false);\n private readonly isDisabled = signal(false);\n private readonly ngControl = inject(NgControl, { optional: true });\n\n private disabledAttrObserver: MutationObserver | null = null;\n\n public constructor() {\n afterNextRender(() => this.isRendered.set(true));\n\n effect(() => {\n const isDisabled = this.isDisabled();\n const maxChars = this.ndwMaxChar();\n const isRendered = this.isRendered();\n\n if (!isRendered || !this.element.parentNode) {\n return;\n }\n\n if (maxChars > 0 && !isDisabled) {\n if (!this.counterElement) {\n this.addCounterElement();\n this.onInput();\n }\n } else {\n this.removeCounterElement();\n }\n });\n }\n\n public ngOnInit(): void {\n this.monitorDisabledState();\n this.isDisabled.set(this.element.disabled ?? this.ngControl?.disabled);\n }\n\n public ngOnDestroy(): void {\n this.disabledAttrObserver?.disconnect();\n }\n\n public onInput(): void {\n if (!this.counterElement) {\n return;\n }\n\n this.counterElement.textContent = `${this.element.value.length} /\n ${this.ndwMaxChar()} ${this.maxCharText()}`;\n if (this.element.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 monitorDisabledState() {\n this.disabledAttrObserver = new MutationObserver(() => {\n this.isDisabled.set(this.element.disabled);\n });\n this.disabledAttrObserver.observe(this.element, {\n attributes: true,\n attributeFilter: ['disabled'],\n });\n\n this.ngControl?.statusChanges?.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.isDisabled.set(this.element.disabled);\n });\n }\n\n private addCounterElement(): void {\n this.originalElementStyle = { ...this.element.style };\n this.originalParentStyle = { ...this.parentStyle };\n\n const counterElement = this.renderer.createElement('span') as HTMLSpanElement;\n counterElement.classList.add('max-char-counter');\n counterElement.style.boxSizing = 'border-box';\n counterElement.style.paddingBlockEnd = 'var(--ndw-spacing-xs)';\n counterElement.style.marginInline = 'var(--ndw-spacing-sm)';\n counterElement.style.position = 'absolute';\n counterElement.style.width = 'calc(100% - 2 * var(--ndw-spacing-sm))';\n counterElement.style.bottom = '0';\n\n this.parentStyle.display = 'block';\n this.parentStyle.position = 'relative';\n\n this.element.style.minHeight = 'calc(4rem)';\n this.element.style.paddingBottom = 'var(--ndw-spacing-xl)';\n this.element.style.scrollPaddingBottom = 'var(--ndw-spacing-lg)';\n\n this.renderer.appendChild(this.element.parentNode, counterElement);\n this.counterElement = counterElement;\n }\n\n private removeCounterElement(): void {\n this.renderer.removeChild(this.element.parentNode, this.counterElement);\n this.counterElement = null;\n\n this.parentStyle.display = this.originalParentStyle?.display ?? '';\n this.parentStyle.position = this.originalParentStyle?.position ?? '';\n\n this.element.style.minHeight = this.originalElementStyle?.minHeight ?? '';\n this.element.style.paddingBottom = this.originalElementStyle?.paddingBottom ?? '';\n this.element.style.scrollPaddingBottom = this.originalElementStyle?.scrollPaddingBottom ?? '';\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n CUSTOM_ELEMENTS_SCHEMA,\n inject,\n input,\n model,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormsModule,\n NgControl,\n ReactiveFormsModule,\n Validators,\n} from '@angular/forms';\n\nimport { AutoGrowDirective } from '../textarea';\nimport { IconComponent } from '../../icon';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconComponent, ReactiveFormsModule, FormsModule, AutoGrowDirective],\n selector: 'ndw-markdown-editor',\n styleUrls: ['./markdown-editor.component.scss'],\n templateUrl: './markdown-editor.component.html',\n host: {\n '[class.disabled]': 'disabled()',\n '[class.error]': 'error()',\n '[class.readonly]': 'readonly()',\n '[class.success]': 'success()',\n '[class.required]': 'isRequiredOrHasRequiredValidator',\n },\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class MarkdownEditorComponent implements ControlValueAccessor {\n private readonly ngControl = inject(NgControl, { optional: true });\n\n readonly uuid = input(crypto.randomUUID());\n readonly value = model('');\n readonly disabled = model(false);\n readonly error = input(false);\n readonly readonly = input(false);\n readonly success = input(false);\n readonly required = input(false);\n readonly toolbar = input([\n 'bold',\n 'header',\n 'italic',\n 'unordered-list',\n 'ordered-list',\n 'task-list',\n ]);\n\n readonly bold = computed(() => this.toolbar().includes('bold'));\n readonly header = computed(() => this.toolbar().includes('header'));\n readonly italic = computed(() => this.toolbar().includes('italic'));\n readonly quote = computed(() => this.toolbar().includes('quote'));\n readonly unorderedList = computed(() => this.toolbar().includes('unordered-list'));\n readonly orderedList = computed(() => this.toolbar().includes('ordered-list'));\n readonly taskList = computed(() => this.toolbar().includes('task-list'));\n\n public get isRequiredOrHasRequiredValidator(): boolean | null {\n return this.required() || this.ngControl?.control?.hasValidator(Validators.required)\n ? true\n : null;\n }\n\n constructor() {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n if (!customElements.get('markdown-toolbar')) {\n import('@github/markdown-toolbar-element');\n }\n }\n\n onChange(event: Event): void {\n this.value.set((event.target as HTMLTextAreaElement).value ?? '');\n }\n\n writeValue(value: string): void {\n this.value.set(value);\n }\n\n registerOnChange(fn: (value: string | null | undefined) => void): void {\n this.value.subscribe(fn);\n }\n\n registerOnTouched() {\n // noop\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n}\n","<markdown-toolbar [attr.for]=\"uuid()\" [attr.inert]=\"disabled() || readonly() ? '' : null\">\n @if (bold()) {\n <md-bold>\n <button ndwButton tertiary alternative title=\"Bold\" aria-label=\"Bold\">\n <ndw-icon>format_bold</ndw-icon>\n </button>\n </md-bold>\n }\n @if (header()) {\n <md-header>\n <button ndwButton tertiary alternative title=\"Title\" aria-label=\"Title\">\n <ndw-icon>title</ndw-icon>\n </button>\n </md-header>\n }\n @if (italic()) {\n <md-italic>\n <button ndwButton tertiary alternative title=\"Italic\" aria-label=\"Italic\">\n <ndw-icon>format_italic</ndw-icon>\n </button>\n </md-italic>\n }\n @if (quote()) {\n <md-quote>\n <button ndwButton tertiary alternative title=\"Quote\" aria-label=\"Quote\">\n <ndw-icon>format_quote</ndw-icon>\n </button>\n </md-quote>\n }\n @if (unorderedList()) {\n <md-unordered-list>\n <button ndwButton tertiary alternative title=\"Unordered list\" aria-label=\"Unordered list\">\n <ndw-icon>format_list_bulleted</ndw-icon>\n </button>\n </md-unordered-list>\n }\n @if (orderedList()) {\n <md-ordered-list>\n <button ndwButton tertiary alternative title=\"Ordered list\" aria-label=\"Ordered list\">\n <ndw-icon>format_list_numbered</ndw-icon>\n </button>\n </md-ordered-list>\n }\n @if (taskList()) {\n <md-task-list>\n <button ndwButton tertiary alternative title=\"Task list\" aria-label=\"Task list\">\n <ndw-icon>checklist</ndw-icon>\n </button>\n </md-task-list>\n }\n</markdown-toolbar>\n\n<textarea\n [id]=\"uuid()\"\n class=\"markdown-editor\"\n [value]=\"value()\"\n (input)=\"onChange($event)\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly()\"\n ndwAutoGrow\n></textarea>\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\nimport { marked } from 'marked';\nimport DOMPurify from 'dompurify';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [],\n selector: 'ndw-markdown-parser',\n host: {\n '[innerHTML]': 'parsedContent()',\n },\n template: '',\n})\nexport class MarkdownParserComponent {\n readonly content = input('');\n\n readonly parsedContent = computed(() => {\n const content = this.content();\n const escaped = content.replace(/</g, '<').replace(/>/g, '>');\n return DOMPurify.sanitize(marked.parse(escaped || '') as string);\n });\n}\n","import { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, input, model, signal } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CheckableComponent } from '@ndwnu/core';\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, CheckableComponent {\n public checked = model(false);\n public disabled = model(false);\n public error = input(false);\n public success = input(false);\n public required = input(false);\n public value = model();\n\n public name = signal<string | undefined>(undefined);\n\n public uuid = crypto.randomUUID();\n\n public onInputChange(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.checked.set(input.checked);\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 class=\"sr-only\"\n [id]=\"'radio-button-' + uuid\"\n [name]=\"name()\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [required]=\"required()\"\n (change)=\"onInputChange($event)\"\n/>\n<label tabindex=\"-1\" id=\"radio-button-label-{{ uuid }}\" [for]=\"'radio-button-' + uuid\">\n <div class=\"radio-button\" aria-hidden=\"true\" [ngClass]=\"{ error: error(), success: success() }\">\n @if (checked()) {\n <span class=\"check\"></span>\n }\n </div>\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';\nimport { checkRadioItems, setRadioItemsName } from '@ndwnu/core';\nimport { noop } from 'rxjs';\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 = noop;\n\n public ngAfterContentInit(): void {\n const radioButtons = [...this.radioButtons()];\n setRadioItemsName<RadioButtonComponent>(radioButtons, this.uuid);\n checkRadioItems<RadioButtonComponent>(radioButtons, this.onChange);\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 // noop\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n this.radioButtons().forEach((radio) => radio.disabled.set(isDisabled));\n }\n}\n","<ng-content />\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { CorePillComponent } from '@ndwnu/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'ndw-paragraph-md',\n },\n selector: 'ndw-pill',\n styleUrl: './pill.component.scss',\n templateUrl: './pill.component.html',\n})\nexport class PillComponent extends CorePillComponent {}\n","<ng-content />\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n input,\n model,\n output,\n signal,\n viewChild,\n} from '@angular/core';\nimport { CheckableComponent, PillColor } from '@ndwnu/core';\n\nimport { BadgeComponent } from '../badge';\nimport { CheckboxComponent, CheckType, RadioButtonComponent } from '../form-field';\nimport { IconComponent } from '../icon';\nimport { PillComponent } from '../pill';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'listitem',\n },\n imports: [\n BadgeComponent,\n CheckboxComponent,\n IconComponent,\n NgTemplateOutlet,\n PillComponent,\n RadioButtonComponent,\n ],\n selector: 'ndw-list-item',\n styleUrl: './list-item.component.scss',\n templateUrl: './list-item.component.html',\n})\nexport class ListItemComponent implements CheckableComponent {\n active = model(false);\n badgeValue = input<number>();\n displayLargeNumbers = input(false);\n buttonIcon = input<string>();\n buttonLabel = input<string>();\n checkable = input(false);\n checkType = input<CheckType>('checkbox');\n collapsible = input(false);\n disabled = input(false);\n indented = input(false);\n pillColor = input<PillColor>('green');\n pillLabel = input<string>();\n prefixIcon = input<string>();\n showButton = input(false);\n subtitle = input<string>();\n title = input<string>();\n\n buttonClicked = output<void>();\n\n checked = model(false);\n expanded = model(false);\n\n radioButton = viewChild(RadioButtonComponent);\n\n name = signal<string | undefined>(undefined);\n\n actionable = computed(() => this.checkable() || this.collapsible());\n\n constructor() {\n effect(() => {\n const name = this.name();\n if (name) {\n this.radioButton()?.name.set(name);\n }\n });\n }\n\n onButtonClick(event: Event) {\n event.stopPropagation();\n this.buttonClicked.emit();\n }\n\n onCheckClick(event: Event) {\n event.stopPropagation();\n }\n\n onListItemSelect() {\n if (this.collapsible()) {\n this.#toggleExpanded();\n return;\n }\n\n if (!this.indented()) {\n this.#toggleChecked();\n }\n }\n\n #toggleChecked() {\n this.checked.update((checked) => !checked);\n }\n\n #toggleExpanded() {\n this.expanded.update((expanded) => !expanded);\n }\n}\n","@if (actionable()) {\n <button\n ndw-list-item\n class=\"actionable\"\n [attr.active]=\"active() || undefined\"\n [attr.aria-expanded]=\"expanded()\"\n [attr.disabled]=\"disabled() || undefined\"\n [class.indented]=\"indented()\"\n (click)=\"onListItemSelect()\"\n >\n @if (checkable()) {\n @if (checkType() === 'radio') {\n <ndw-radio-button\n [disabled]=\"disabled()\"\n [class.readonly]=\"!collapsible() && !indented()\"\n [(checked)]=\"checked\"\n (click)=\"onCheckClick($event)\"\n />\n } @else {\n <ndw-checkbox\n [disabled]=\"disabled()\"\n [class.readonly]=\"!collapsible() && !indented()\"\n [(checked)]=\"checked\"\n (click)=\"onCheckClick($event)\"\n />\n }\n }\n <ng-container *ngTemplateOutlet=\"listItem\" />\n </button>\n} @else {\n <div ndw-list-item [class.indented]=\"indented()\">\n <ng-container *ngTemplateOutlet=\"listItem\" />\n </div>\n}\n\n<ng-template #listItem>\n @if (prefixIcon(); as prefix) {\n <ndw-icon class=\"affix\">{{ prefix }}</ndw-icon>\n }\n <ng-content />\n <div class=\"content\">\n @if (title(); as title) {\n <span class=\"title\">{{ title }}</span>\n }\n @if (subtitle(); as subtitle) {\n {{ subtitle }}\n }\n </div>\n @if (pillLabel(); as pillLabel) {\n <ndw-pill [color]=\"pillColor()\">{{ pillLabel }}</ndw-pill>\n }\n @if (badgeValue(); as badgeValue) {\n <ndw-badge [value]=\"badgeValue\" [displayLargeNumbers]=\"displayLargeNumbers()\" />\n }\n @if (showButton()) {\n <button\n ndwButton\n tertiary\n class=\"suffix-button\"\n [attr.aria-label]=\"buttonLabel()\"\n [attr.disabled]=\"disabled() || undefined\"\n (click)=\"onButtonClick($event)\"\n >\n <ndw-icon>{{ buttonIcon() }}</ndw-icon>\n </button>\n }\n @if (collapsible()) {\n <ndw-icon class=\"affix\" [class.expanded]=\"expanded()\">keyboard_arrow_down</ndw-icon>\n }\n</ng-template>\n","import { ChangeDetectionStrategy, Component, inject, input, model } from '@angular/core';\n\nimport { AccordionService } from '../accordion';\nimport { ListItemComponent } from '../list-item';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.expanded]': 'expanded()',\n '[class.open]': 'expanded()',\n '[class.closed]': '!expanded()',\n },\n imports: [ListItemComponent],\n selector: 'ndw-collapsible',\n styleUrl: './collapsible.component.scss',\n templateUrl: './collapsible.component.html',\n})\nexport class CollapsibleComponent {\n index = input.required<number>();\n title = input.required<string>();\n checkable = input(false);\n subtitle = input<string>();\n value = input<number>();\n displayLargeNumbers = input(false);\n\n expanded = model(false);\n\n private readonly accordionService = inject(AccordionService);\n\n private readonly uuid = crypto.randomUUID();\n readonly toggleUuid = `toggle-${this.uuid}`;\n readonly sectionUuid = `section-${this.uuid}`;\n\n toggle(): void {\n this.expanded.set(!this.expanded());\n\n if (this.expanded()) {\n this.accordionService.setExpandedCollapsible(this.index());\n }\n }\n}\n","<ndw-list-item\n [attr.aria-controls]=\"sectionUuid\"\n [badgeValue]=\"value()\"\n [displayLargeNumbers]=\"displayLargeNumbers()\"\n [checkable]=\"checkable()\"\n [collapsible]=\"true\"\n [expanded]=\"expanded()\"\n [subtitle]=\"subtitle()\"\n [title]=\"title()\"\n (expandedChange)=\"toggle()\"\n>\n <ng-content select=\"custom-header-content\" />\n</ndw-list-item>\n<section role=\"region\" class=\"content\" [id]=\"sectionUuid\" [attr.aria-labelledby]=\"toggleUuid\">\n <div>\n <ng-content />\n </div>\n</section>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n contentChildren,\n input,\n} from '@angular/core';\nimport { checkRadioItems, setRadioItemsName } from '@ndwnu/core';\n\nimport { ListItemComponent } from '../list-item';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'list',\n '[class.elevated]': 'elevated()',\n },\n selector: 'ndw-list',\n styleUrl: './list.component.scss',\n templateUrl: './list.component.html',\n})\nexport class ListComponent implements AfterContentInit {\n elevated = input(false);\n\n listItems = contentChildren(ListItemComponent);\n\n #uuid = crypto.randomUUID();\n\n ngAfterContentInit() {\n const items = [...this.listItems()];\n if (items.some((item) => !item.checkable() || item.checkType() !== 'radio')) {\n return;\n }\n\n setRadioItemsName<ListItemComponent>(items, this.#uuid);\n checkRadioItems<ListItemComponent>(items);\n }\n}\n","<ng-content />\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';\nimport { ListComponent } from '../list';\n\nimport { AccordionService } from './accordion.service';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [AccordionService],\n selector: 'ndw-accordion',\n templateUrl: './accordion.component.html',\n})\nexport class AccordionComponent extends ListComponent implements OnInit {\n readonly #accordionService = inject(AccordionService);\n readonly #destroyRef = inject(DestroyRef);\n\n collapseOthers = input(false);\n\n collapsibles = contentChildren(CollapsibleComponent);\n\n ngOnInit() {\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 { 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 // eslint-disable-next-line @angular-eslint/no-output-native\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 ndwButton alternative extra-small tertiary class=\"close-button\" (click)=\"onClose()\">\n <span class=\"sr-only\">Sluit melding</span>\n <ndw-icon>close</ndw-icon>\n </button>\n }\n</section>\n<ng-content />\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { IconComponent } from '../icon';\nimport { NgClass } from '@angular/common';\nimport { AvatarStatus, AvatarColor } from './avatar.model';\n\n@Component({\n host: {\n '[attr.color]': 'color()',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ndw-avatar',\n imports: [IconComponent, NgClass],\n styleUrl: './avatar.component.scss',\n templateUrl: './avatar.component.html',\n})\nexport class AvatarComponent {\n public status = input<AvatarStatus>('none');\n public initials = input(false);\n public color = input<AvatarColor>();\n}\n","<div class=\"content-wrapper\" role=\"img\" [attr.color]=\"color()\">\n <ng-content />\n</div>\n\n@if (status() !== 'none') {\n <div class=\"status-circle\" [ngClass]=\"{ approved: status() === 'approved' }\">\n @if (status() === 'approved') {\n <ndw-icon>check</ndw-icon>\n }\n </div>\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 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, positive 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 // eslint-disable-next-line @angular-eslint/no-output-native\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 protected 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 ndwButton alternative extra-small tertiary class=\"close-button\" (click)=\"onClose($event)\">\n <span class=\"sr-only\">Sluit melding</span>\n <ndw-icon>close</ndw-icon>\n</button>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { CoreBreadcrumbComponent } from '@ndwnu/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'link',\n },\n selector: 'ndw-breadcrumb',\n templateUrl: './breadcrumb.component.html',\n})\nexport class BreadcrumbComponent extends CoreBreadcrumbComponent {}\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';\nimport { CoreBreadcrumbGroupComponent } from '@ndwnu/core';\n\nimport { BreadcrumbComponent } from '../breadcrumb';\nimport { IconComponent } from '../icon';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconComponent, NgTemplateOutlet, RouterLink],\n selector: 'ndw-breadcrumb-group',\n styleUrls: ['../breadcrumb/breadcrumb.component.scss', './breadcrumb-group.component.scss'],\n templateUrl: './breadcrumb-group.component.html',\n})\nexport class BreadcrumbGroupComponent extends CoreBreadcrumbGroupComponent<BreadcrumbComponent> {\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 {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n forwardRef,\n inject,\n InjectionToken,\n model,\n signal,\n} from '@angular/core';\nimport { CardHeaderComponent } from './card-header';\n\nexport const CARD_ID_TOKEN = new InjectionToken<string>('CARD_ID_TOKEN');\n\n@Component({\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 '[class.collapsible]': 'isCollapsable()',\n '[class.open]': '!isCollapsed()',\n '[class.closed]': 'isCollapsed()',\n '[style.--header-height]': 'this.headerHeight() + \"px\"',\n },\n})\nexport class CardComponent implements AfterContentInit {\n private readonly header = contentChild<CardHeaderComponent>(\n forwardRef(() => CardHeaderComponent),\n );\n\n protected readonly headerHeight = signal(0);\n\n public readonly cardId = inject(CARD_ID_TOKEN);\n\n public readonly isCollapsable = computed(() => this.header()?.isCollapsible() ?? false);\n public readonly 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","<div class=\"content\">\n <ng-content />\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n input,\n model,\n} from '@angular/core';\nimport { IconComponent } from '../../icon';\nimport { CARD_ID_TOKEN } from '../card.component';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ndw-card-header',\n imports: [IconComponent],\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 class=\"float\"\n type=\"button\"\n ndwButton\n extra-small\n tertiary\n [attr.aria-controls]=\"cardId\"\n [attr.aria-expanded]=\"!isCollapsed()\"\n [class.collapsed]=\"isCollapsed()\"\n (click)=\"toggleCollapsed()\"\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';\n\nimport { CardComponent, CardContentComponent } from '../card';\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('_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 {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n computed,\n input,\n output,\n viewChild,\n} from '@angular/core';\n\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, IconComponent, PopoverTriggerDirective, 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 @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","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n inject,\n input,\n OnDestroy,\n signal,\n viewChild,\n} from '@angular/core';\nimport { EditBarPosition, EditBarWidth } from './edit-bar.model';\nimport { NgTemplateOutlet } from '@angular/common';\n\n@Component({\n selector: 'ndw-edit-bar',\n imports: [NgTemplateOutlet],\n templateUrl: './edit-bar.component.html',\n styleUrl: './edit-bar.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[style.height]': 'height() + \"px\"',\n },\n})\nexport class EditBarComponent implements AfterViewInit, OnDestroy {\n readonly grid = input<boolean>(false);\n readonly position = input<EditBarPosition>('fixed');\n readonly positionFixedWidth = input<EditBarWidth>('layout');\n\n readonly editBar = viewChild.required<ElementRef<HTMLDivElement>>('editBar');\n\n readonly height = signal<number | null>(null);\n\n readonly #changeDetectorRef = inject(ChangeDetectorRef);\n\n #resizeObserver: ResizeObserver | undefined;\n\n ngAfterViewInit(): void {\n if (this.position() === 'fixed') {\n this.#observeEditBarHeightAndUpdateHostHeight();\n }\n }\n\n ngOnDestroy(): void {\n if (this.#resizeObserver) {\n this.#resizeObserver.unobserve(this.editBar().nativeElement);\n }\n }\n\n #observeEditBarHeightAndUpdateHostHeight(): void {\n this.#resizeObserver = new ResizeObserver((entries: ResizeObserverEntry[]): void => {\n this.height.set(entries[0].contentRect.height);\n this.#changeDetectorRef.markForCheck();\n });\n\n this.#resizeObserver.observe(this.editBar().nativeElement);\n }\n}\n","<div\n #editBar\n class=\"ndw-edit-bar\"\n [class.ndw-edit-bar--grid]=\"grid()\"\n [class.ndw-edit-bar--fixed]=\"position() === 'fixed'\"\n [class.ndw-edit-bar--absolute]=\"position() === 'absolute'\"\n [class.ndw-edit-bar--static]=\"position() === 'static'\"\n [class.ndw-edit-bar--sticky]=\"position() === 'sticky'\"\n [class.ndw-edit-bar--full-width]=\"positionFixedWidth() === 'full'\"\n [class.ndw-edit-bar--layout-width]=\"positionFixedWidth() === 'layout'\"\n>\n @if (grid()) {\n <div class=\"ndw-grid\">\n <div class=\"column-12\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n </div>\n } @else {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n }\n</div>\n\n<ng-template #content>\n <div class=\"ndw-edit-bar__inner\">\n <ng-content select=\"ndw-edit-bar-message\" />\n <ng-content select=\"ndw-edit-bar-actions\" />\n </div>\n</ng-template>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'ndw-edit-bar-actions',\n imports: [],\n templateUrl: './edit-bar-actions.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'ndw-edit-bar-actions',\n },\n})\nexport class EditBarActionsComponent {}\n","<ng-content />\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'ndw-edit-bar-message',\n imports: [],\n templateUrl: './edit-bar-message.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'ndw-edit-bar-message',\n },\n})\nexport class EditBarMessageComponent {}\n","<ng-content />\n","import { ChangeDetectionStrategy, Component, model } from '@angular/core';\nimport { IconComponent } from '../icon';\nimport { CoreFavoriteComponent } from '@ndwnu/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconComponent, CoreFavoriteComponent],\n selector: 'ndw-favorite',\n styleUrl: './favorite.component.scss',\n templateUrl: './favorite.component.html',\n})\nexport class FavoriteComponent {\n checked = model(false);\n}\n","<core-favorite [(checked)]=\"checked\">\n <ndw-icon [filled]=\"checked()\">favorite</ndw-icon>\n</core-favorite>\n","import { InjectionToken } from '@angular/core';\n\nexport const BROWSER_STORAGE = new InjectionToken<Storage>('Browser Storage', {\n providedIn: 'root',\n factory: () => localStorage,\n});\n\ntype ButtonColor = 'primary' | 'secondary' | 'tertiary';\ntype ButtonType = 'back' | 'cancel' | 'next';\n\nconst getButton = ({\n text,\n type,\n color,\n}: {\n text: string;\n type: ButtonType;\n color: ButtonColor;\n}) => ({\n text,\n type,\n classes: `${color}`,\n});\n\nexport const nextButton = getButton({ text: 'Volgende', type: 'next', color: 'primary' });\nexport const backButton = getButton({ text: 'Terug', type: 'back', color: 'secondary' });\nexport const cancelButton = getButton({ text: 'Sluit', type: 'cancel', color: 'tertiary' });\nexport const finishButton = getButton({ text: 'Klaar!', type: 'next', color: 'primary' });\n\nexport const defaultStepOptions = {\n classes: 'shepherd-theme-ndw',\n scrollTo: true,\n cancelIcon: {\n enabled: true,\n },\n};\n\n/**\n * Helper function to format step text with an optional image at the top.\n * When using this with an image, make sure to add 'shepherd-has-image' to the step's classes.\n *\n * @param text - The text content for the step (can be HTML)\n * @param imageUrl - Optional URL of the image to display at the top of the step\n * @param imageAlt - Optional alt text for the image (defaults to 'Tour step image')\n * @returns Formatted HTML string with image (if provided) and text\n *\n * @example\n * ```typescript\n * {\n * title: 'Welcome',\n * text: formatStepWithImage('Description', 'https://example.com/image.jpg'),\n * classes: 'shepherd-theme-ndw shepherd-has-image', // Add shepherd-has-image class\n * buttons: [nextButton]\n * }\n * ```\n */\nexport const formatStepWithImage = (\n text: string,\n imageUrl?: string,\n imageAlt = 'Tour step image',\n): string => {\n if (!imageUrl) {\n return text;\n }\n return `<img src=\"${imageUrl}\" alt=\"${imageAlt}\" class=\"shepherd-step-image\" />${text}`;\n};\n","import type { StepOptionsButton } from 'shepherd.js';\nimport type { GuidedTourService } from '../guided-tour.service';\n\nexport type ShepherdButton = StepOptionsButton & {\n type?: 'back' | 'cancel' | 'next';\n};\n\n/**\n * Creates a button of the specified type, with the given classes and text\n *\n * @param this The GuidedTourService instance to bind the button actions to\n * @param button The button configuration\n * @returns The constructed button\n */\nexport function makeButton(this: GuidedTourService, button: ShepherdButton) {\n const { classes, disabled, label, secondary, type, text } = button;\n const builtInButtonTypes = ['back', 'cancel', 'next'];\n\n if (!type) {\n return button;\n }\n\n if (!builtInButtonTypes.includes(type)) {\n throw new Error(\"'type' property must be one of 'back', 'cancel', or 'next'\");\n }\n\n return {\n action: this[type].bind(this),\n classes,\n disabled,\n label,\n secondary,\n text,\n };\n}\n","/**\n * Checks if an element is hidden from the user.\n * Detects: display:none, visibility:hidden, opacity:0, zero dimensions,\n * and hidden ancestors.\n *\n * @param element The element to check for visibility\n * @returns true if element is hidden\n */\nexport function elementIsHidden(element: HTMLElement): boolean {\n // Check if element has no dimensions (display: none or collapsed)\n if (element.offsetWidth === 0 && element.offsetHeight === 0) {\n return true;\n }\n\n const style = getComputedStyle(element);\n\n // Check CSS visibility properties\n if (style.display === 'none') {\n return true;\n }\n\n if (style.visibility === 'hidden' || style.visibility === 'collapse') {\n return true;\n }\n\n if (style.opacity === '0') {\n return true;\n }\n\n return false;\n}\n","import { Injectable } from '@angular/core';\nimport Shepherd, { StepOptions, TourOptions } from 'shepherd.js';\nimport { RequiredElement } from './models/guided-tour.model';\nimport { makeButton } from './utils/buttons';\nimport { elementIsHidden } from './utils/dom';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GuidedTourService {\n confirmCancel: TourOptions['confirmCancel'] = false;\n confirmCancelMessage?: TourOptions['confirmCancelMessage'];\n defaultStepOptions: StepOptions = {};\n errorTitle?: string;\n exitOnEsc: TourOptions['exitOnEsc'] = true;\n isActive = false;\n keyboardNavigation: TourOptions['keyboardNavigation'] = true;\n messageForUser: string | null = null;\n modal = false;\n requiredElements: RequiredElement[] = [];\n tourName: TourOptions['tourName'] = undefined;\n tourObject: InstanceType<typeof Shepherd.Tour> | null = null;\n\n back() {\n this.tourObject?.back();\n }\n\n cancel() {\n this.tourObject?.cancel();\n }\n\n complete() {\n this.tourObject?.complete();\n }\n\n hide() {\n this.tourObject?.hide();\n }\n\n next() {\n this.tourObject?.next();\n }\n\n /**\n * Show a specific step, by passing its id\n * @param id The id of the step you want to show\n */\n show(id: string | number) {\n this.tourObject?.show(id);\n }\n\n start() {\n this.isActive = true;\n this.tourObject?.start();\n }\n\n /**\n * Take a set of steps and create a tour object based on the current configuration\n * @param steps An array of steps\n */\n addSteps(steps: StepOptions[]) {\n this._initialize();\n const tour = this.tourObject;\n\n // Return nothing if there are no steps or if somehow there is no tour.\n if (!tour || !steps || !Array.isArray(steps) || steps.length === 0) {\n return;\n }\n\n if (!this.requiredElementsPresent()) {\n tour.addStep({\n buttons: [\n {\n text: 'Exit',\n action: tour.cancel,\n },\n ],\n id: 'error',\n title: this.errorTitle,\n text: [this.messageForUser as string],\n });\n return;\n }\n\n steps.forEach((step) => {\n if (step.buttons) {\n step.buttons = step.buttons.map(makeButton.bind(this), this);\n }\n\n tour.addStep(step);\n });\n }\n\n /**\n * Observes the array of requiredElements, which are the elements that must be present at the start of the tour,\n * and determines if they exist, and are visible, if either is false, it will stop the tour from executing.\n */\n private requiredElementsPresent() {\n let allElementsPresent = true;\n\n this.requiredElements.forEach((element) => {\n const selectedElement = document.querySelector(element.selector);\n\n if (\n allElementsPresent &&\n (!selectedElement || elementIsHidden(selectedElement as HTMLElement))\n ) {\n allElementsPresent = false;\n this.errorTitle = element.title;\n this.messageForUser = element.message;\n }\n });\n\n return allElementsPresent;\n }\n\n /**\n * Initializes the tour, creates a new Shepherd.Tour. sets options, and binds events\n */\n private _initialize() {\n const tourObject = new Shepherd.Tour({\n confirmCancel: this.confirmCancel,\n confirmCancelMessage: this.confirmCancelMessage,\n defaultStepOptions: this.defaultStepOptions,\n keyboardNavigation: this.keyboardNavigation,\n tourName: this.tourName,\n useModalOverlay: this.modal,\n exitOnEsc: this.exitOnEsc,\n });\n\n tourObject.on('complete', this.#onTourFinish.bind(this));\n tourObject.on('cancel', this.#onTourFinish.bind(this));\n\n this.tourObject = tourObject;\n }\n\n #onTourFinish() {\n this.isActive = false;\n }\n}\n","import { inject } from '@angular/core';\nimport { StepOptions } from 'shepherd.js';\nimport { BROWSER_STORAGE, defaultStepOptions, formatStepWithImage } from './guided-tour.config';\nimport { GuidedTourService } from './guided-tour.service';\nimport { NdwStepOptions, TourOptions } from './models/guided-tour.model';\n\n/**\n * Abstract base class for creating tour services with storage persistence.\n * Extend this class to create a tour that remembers if the user has already seen it.\n */\nexport abstract class BaseTourService {\n protected readonly guidedTourService = inject(GuidedTourService);\n protected readonly browserStorage = inject(BROWSER_STORAGE);\n\n protected abstract storageKey: string;\n protected abstract getTourSteps(): NdwStepOptions[];\n\n protected tourOptions: TourOptions = {\n modal: true,\n };\n\n /**\n * Converts NdwStepOptions to Shepherd StepOptions.\n * Processes image property and adds appropriate classes.\n */\n private processStepOptions(step: NdwStepOptions): StepOptions {\n const processedStep: StepOptions = { ...step };\n\n if (step.image) {\n // Use formatStepWithImage to add the image to the text\n processedStep.text = formatStepWithImage(step.text as string, step.image.url, step.image.alt);\n\n // Automatically add shepherd-has-image class\n const existingClasses = step.classes || '';\n const hasImageClass = 'shepherd-has-image';\n processedStep.classes = existingClasses\n ? `${existingClasses} ${hasImageClass}`\n : hasImageClass;\n }\n\n return processedStep;\n }\n\n startTour({ skipStorageCheck = false }: { skipStorageCheck?: boolean } = {}) {\n if (this.guidedTourService.isActive) {\n return;\n }\n if (!skipStorageCheck && this.browserStorage.getItem(this.storageKey) === 'true') {\n return;\n }\n this.#initShepherdTour();\n }\n\n #initShepherdTour() {\n this.guidedTourService.defaultStepOptions = defaultStepOptions;\n this.guidedTourService.modal = this.tourOptions.modal ?? true;\n\n const ndwSteps = this.getTourSteps();\n // Process NdwStepOptions to StepOptions (handle images, etc.)\n const processedSteps = ndwSteps.map((step) => this.processStepOptions(step));\n this.guidedTourService.addSteps(processedSteps);\n this.guidedTourService.start();\n\n this.guidedTourService.tourObject?.on('complete', () => this.onComplete());\n this.guidedTourService.tourObject?.on('cancel', () => this.onCancel());\n }\n\n /**\n * Called when the tour is completed.\n * By default, marks the tour as completed in storage.\n * Override this method to add custom completion logic.\n */\n protected onComplete() {\n this.browserStorage.setItem(this.storageKey, 'true');\n }\n\n /**\n * Called when the tour is cancelled.\n * By default, marks the tour as completed in storage.\n * Override this method to add custom cancellation logic.\n */\n protected onCancel() {\n this.browserStorage.setItem(this.storageKey, 'true');\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { Params, RouterLink } from '@angular/router';\n\nimport { IconComponent } from '../icon';\nimport { HoverableListItemAction } from './hoverable-list-item.model';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'listitem',\n },\n imports: [IconComponent, NgTemplateOutlet, RouterLink],\n selector: 'ndw-hoverable-list-item',\n styleUrl: './hoverable-list-item.component.scss',\n templateUrl: './hoverable-list-item.component.html',\n})\nexport class HoverableListItemComponent {\n actions = input<HoverableListItemAction[]>();\n disabled = input(false);\n path = input<string[]>();\n prefixIcon = input<string>();\n queryParams = input<Params>();\n subtitle = input<string>();\n title = input<string>();\n\n actionSelected = output<HoverableListItemAction>();\n selected = output<void>();\n\n onActionButtonClick(event: Event, action: HoverableListItemAction) {\n event.stopPropagation();\n if (action.callback) {\n action.callback();\n }\n\n if (!action.path) {\n this.actionSelected.emit(action);\n }\n }\n\n onButtonClick(event: Event) {\n event.stopPropagation();\n this.selected.emit();\n }\n}\n","@if (path(); as path) {\n <a\n ndw-list-item\n class=\"actionable\"\n [attr.aria-disabled]=\"disabled() || undefined\"\n [attr.tabindex]=\"disabled() ? -1 : 0\"\n [queryParams]=\"queryParams()\"\n [routerLink]=\"path\"\n >\n <ng-container *ngTemplateOutlet=\"listItem\" />\n </a>\n} @else {\n <button\n ndw-list-item\n class=\"actionable\"\n [attr.disabled]=\"disabled() || undefined\"\n (click)=\"onButtonClick($event)\"\n >\n <ng-container *ngTemplateOutlet=\"listItem\" />\n </button>\n}\n\n<ng-template #listItem>\n @if (prefixIcon(); as prefix) {\n <ndw-icon class=\"affix\">{{ prefix }}</ndw-icon>\n }\n <ng-content />\n <div class=\"content\">\n @if (title(); as title) {\n <span class=\"title\">{{ title }}</span>\n }\n @if (subtitle(); as subtitle) {\n {{ subtitle }}\n }\n </div>\n <div class=\"actions\">\n @for (action of actions(); track $index) {\n @if (action.path) {\n <a\n ndwButton\n tertiary\n extra-small\n [attr.aria-label]=\"action.label\"\n [queryParams]=\"action.queryParams\"\n [routerLink]=\"action.path\"\n (click)=\"onActionButtonClick($event, action)\"\n >\n <ndw-icon>{{ action.icon }}</ndw-icon>\n </a>\n } @else {\n <button\n ndwButton\n tertiary\n extra-small\n [attr.aria-label]=\"action.label\"\n (click)=\"onActionButtonClick($event, action)\"\n >\n <ndw-icon>{{ action.icon }}</ndw-icon>\n </button>\n }\n }\n </div>\n</ng-template>\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { CoreKeyValueListComponent } from '@ndwnu/core';\nimport { IconComponent } from '../icon';\nimport { TooltipDirective } from '../tooltip';\n\n@Component({\n selector: 'ndw-key-value-list',\n styleUrl: './key-value-list.component.scss',\n templateUrl: './key-value-list.component.html',\n imports: [IconComponent, NgTemplateOutlet, TooltipDirective],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class KeyValueListComponent extends CoreKeyValueListComponent {}\n","<dl\n [class.striped]=\"hasZebraStripes()\"\n [class.fluid]=\"fluid()\"\n [class.font-md]=\"fontSize() === 'md'\"\n [class.font-lg]=\"fontSize() === 'lg'\"\n>\n @for (keyValueRow of normalizedData(); track keyValueRow.key) {\n <dt>\n <ng-container *ngTemplateOutlet=\"cellData; context: { $implicit: keyValueRow.key }\" />\n </dt>\n <dd>\n <ng-container *ngTemplateOutlet=\"cellData; context: { $implicit: keyValueRow.value }\" />\n </dd>\n }\n</dl>\n\n<ng-template #cellData let-data>\n @if (data.url) {\n <a ndwLink target=\"_blank\" [href]=\"data.url\">\n {{ data.label }}\n <ndw-icon size=\"sm\">open_in_new</ndw-icon>\n </a>\n } @else {\n {{ data.label }}\n }\n\n @if (data.tooltip) {\n <ndw-icon class=\"tooltip-icon\" size=\"sm\" [ndwTooltip]=\"data.tooltip\">info</ndw-icon>\n }\n</ng-template>\n","import { ChangeDetectionStrategy, Component, computed, input, model } from '@angular/core';\nimport { RouterLink } from '@angular/router';\n\nimport { IconComponent } from '../../icon';\nimport { PillComponent } from '../../pill';\nimport { Environment } from '../main-navigation.model';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconComponent, PillComponent, RouterLink],\n selector: 'ndw-main-navigation-header',\n styleUrl: './main-navigation-header.component.scss',\n templateUrl: './main-navigation-header.component.html',\n})\nexport class MainNavigationHeaderComponent {\n applicationName = input.required<string>();\n isExpanded = input.required<boolean>();\n isMobile = input.required<boolean>();\n theme = input.required<string>();\n themeImagePath = input.required<string>();\n environment = input<Environment>();\n\n isMobileMenuOpen = model.required<boolean>();\n\n environmentColor = computed(() => {\n switch (this.environment()) {\n case 'Local':\n return 'gray';\n case 'Staging':\n return 'green';\n case 'Acceptance':\n return 'blue';\n default:\n return 'yellow';\n }\n });\n\n public toggleMobileMenu(): void {\n this.isMobileMenuOpen.update((open) => !open);\n }\n}\n","<header [class.expanded]=\"isExpanded() && !isMobile()\">\n <a routerLink=\"/\">\n <img [class]=\"theme()\" [src]=\"themeImagePath()\" [alt]=\"theme().toUpperCase() + ' logo'\" />\n @if (isExpanded() || isMobile()) {\n {{ applicationName() }}\n }\n </a>\n @if (environment()) {\n <ndw-pill [color]=\"environmentColor()\">\n {{ !isExpanded() || isMobile() ? environment()?.charAt(0) : environment() }}\n </ndw-pill>\n }\n @if (isMobile()) {\n <button ndwButton tertiary class=\"mobile-menu-button\" (click)=\"toggleMobileMenu()\">\n <ndw-icon>\n {{ isMobileMenuOpen() ? 'close' : 'menu' }}\n </ndw-icon>\n </button>\n }\n</header>\n","import { CdkMenu, CdkMenuItem, CdkMenuTrigger } from '@angular/cdk/menu';\nimport { ChangeDetectionStrategy, Component, input, output, signal } from '@angular/core';\nimport { RouterLink } from '@angular/router';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { BadgeComponent } from '../../badge';\nimport { IconComponent } from '../../icon';\nimport { MenuItem, SubMenuItem } from '../main-navigation.model';\n\n@Component({\n imports: [\n BadgeComponent,\n CdkMenu,\n CdkMenuItem,\n CdkMenuTrigger,\n IconComponent,\n RouterLink,\n NgTemplateOutlet,\n ],\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 isExpanded = input.required<boolean>();\n isMobile = input.required<boolean>();\n items = input.required<MenuItem[]>();\n\n closed = output();\n\n activeMobileItem = signal<MenuItem | undefined>(undefined);\n\n closeMobileMenu(item?: SubMenuItem) {\n item?.callback?.();\n this.setActiveMobileItem(undefined);\n this.closed.emit();\n }\n\n getItemKey(item: MenuItem | SubMenuItem) {\n return JSON.stringify(item);\n }\n\n handleMobileItemKeydown(event: KeyboardEvent, item: MenuItem) {\n if (event.key === 'Enter') {\n this.toggleActiveMobileItem(item);\n }\n\n if (this.activeMobileItem() !== item && event.key === 'ArrowRight') {\n this.setActiveMobileItem(item);\n }\n\n if (this.activeMobileItem() === item && event.key === 'ArrowLeft') {\n this.setActiveMobileItem(undefined);\n }\n }\n\n setActiveMobileItem(item: MenuItem | undefined) {\n this.activeMobileItem.set(item);\n }\n\n toggleActiveMobileItem(item: MenuItem) {\n item.callback?.();\n this.setActiveMobileItem(this.activeMobileItem() === item ? undefined : item);\n }\n}\n","<div cdkMenu class=\"menu\" [class.expanded]=\"isExpanded()\">\n @for (item of items(); track getItemKey(item)) {\n @if (!item.children) {\n @if (item.callback) {\n <button\n cdkMenuItem\n ndwButton\n menu\n [attr.active]=\"item.active ? true : null\"\n (click)=\"closeMobileMenu(item)\"\n >\n <ndw-icon>{{ item.icon }}</ndw-icon>\n @if (isExpanded() || isMobile()) {\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: item }\" />\n }\n @if (!isExpanded() && item.notifications) {\n <ndw-badge class=\"expanded-badge\" [value]=\"item.notifications\" />\n }\n </button>\n } @else {\n <a\n cdkMenuItem\n ndwButton\n menu\n [attr.active]=\"item.active ? true : null\"\n [queryParams]=\"item.queryParams\"\n [routerLink]=\"item.path\"\n (click)=\"closeMobileMenu()\"\n >\n <ndw-icon>{{ item.icon }}</ndw-icon>\n @if (isExpanded() || isMobile()) {\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: item }\" />\n }\n </a>\n }\n } @else {\n @if (isMobile()) {\n <button\n cdkMenuItem\n ndwButton\n menu\n [attr.active]=\"activeMobileItem() === item || undefined\"\n (click)=\"toggleActiveMobileItem(item)\"\n (keydown)=\"handleMobileItemKeydown($event, item)\"\n >\n <ndw-icon>{{ item.icon }}</ndw-icon>\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: item }\" />\n <ndw-icon class=\"suffix\">\n {{ activeMobileItem() !== item ? 'arrow_drop_down' : 'arrow_drop_up' }}\n </ndw-icon>\n </button>\n @if (activeMobileItem() === item) {\n @for (subItem of item.children; track getItemKey(subItem)) {\n @if (subItem.callback) {\n <button\n cdkMenuItem\n ndwButton\n menu\n [attr.active]=\"subItem.active ? true : null\"\n class=\"sub-menu-button\"\n (click)=\"closeMobileMenu(subItem)\"\n >\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: subItem }\" />\n </button>\n } @else {\n <a\n cdkMenuItem\n ndwButton\n menu\n class=\"sub-menu-button\"\n [attr.active]=\"subItem.active ? true : null\"\n [queryParams]=\"subItem.queryParams\"\n [routerLink]=\"subItem.path\"\n (click)=\"closeMobileMenu(subItem)\"\n >\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: subItem }\" />\n </a>\n }\n }\n }\n } @else {\n <button\n cdkMenuItem\n ndwButton\n menu\n [attr.active]=\"item.active ? true : null\"\n [cdkMenuTriggerFor]=\"subMenu\"\n >\n <ndw-icon>{{ item.icon }}</ndw-icon>\n @if (isExpanded()) {\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: item }\" />\n <ndw-icon class=\"suffix\">arrow_right</ndw-icon>\n }\n </button>\n }\n\n <ng-template #subMenu>\n <div cdkMenu class=\"sub-menu\">\n @for (subItem of item.children; track getItemKey(subItem)) {\n @if (subItem.callback) {\n <button\n cdkMenuItem\n ndwButton\n menu\n [attr.active]=\"subItem.active ? true : null\"\n (click)=\"subItem.callback()\"\n >\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: subItem }\" />\n </button>\n } @else {\n <a\n cdkMenuItem\n ndwButton\n menu\n [attr.active]=\"subItem.active ? true : null\"\n [queryParams]=\"subItem.queryParams\"\n [routerLink]=\"subItem.path\"\n >\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: subItem }\" />\n </a>\n }\n }\n </div>\n </ng-template>\n }\n }\n</div>\n\n<ng-template #label let-item>\n {{ item.label }}\n @if (item.notifications) {\n <ndw-badge [value]=\"item.notifications\" />\n }\n</ng-template>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n model,\n Renderer2,\n signal,\n DOCUMENT,\n} from '@angular/core';\n\nimport { IconComponent } from '../icon';\nimport { Environment, MenuItem, Theme } from './main-navigation.model';\nimport { MainNavigationHeaderComponent } from './main-navigation-header';\nimport { MainNavigationMenuComponent } from './main-navigation-menu';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.expanded]': 'isExpanded()',\n '(window:resize)': 'onWindowResize()',\n },\n imports: [IconComponent, MainNavigationHeaderComponent, MainNavigationMenuComponent],\n selector: 'ndw-main-navigation',\n styleUrl: './main-navigation.component.scss',\n templateUrl: './main-navigation.component.html',\n})\nexport class MainNavigationComponent implements AfterViewInit {\n readonly #document = inject(DOCUMENT);\n readonly #renderer = inject(Renderer2);\n\n applicationName = input.required<string>();\n topMenuItems = input.required<MenuItem[]>();\n bottomMenuItems = input<MenuItem[]>();\n environment = input<Environment>();\n footerTexts = input<string[]>();\n isCollapsible = input(true);\n version = input<string>();\n\n isMobile = signal(false);\n isMobileMenuOpen = signal(false);\n theme = signal<Theme>('ndw');\n\n isExpanded = model(true);\n\n mobileMenuItems = computed(() => [...this.topMenuItems(), ...(this.bottomMenuItems() || [])]);\n themeImagePath = computed(() => {\n const variant = !this.isExpanded() || this.isMobile() ? '-short' : '';\n return `images/logos/${this.theme()}-logo${variant}.svg`;\n });\n\n ngAfterViewInit() {\n const theme = this.#document.documentElement.getAttribute('data-theme');\n if (theme) {\n this.theme.set(theme as Theme);\n }\n\n this.#toggleMainNavigationExpandedDataAttributeOnBody();\n this.onWindowResize();\n }\n\n closeMobileMenu() {\n this.isMobileMenuOpen.set(false);\n }\n\n onWindowResize() {\n const windowView = this.#document.defaultView;\n this.isMobile.set(windowView ? windowView.innerWidth <= 1024 : false);\n }\n\n toggleView() {\n this.isExpanded.update((expanded) => !expanded);\n this.#toggleMainNavigationExpandedDataAttributeOnBody();\n }\n\n #toggleMainNavigationExpandedDataAttributeOnBody(): void {\n this.#renderer.setAttribute(\n this.#document.body,\n 'data-main-navigation-expanded',\n this.isExpanded().toString(),\n );\n }\n}\n","<ndw-main-navigation-header\n [applicationName]=\"applicationName()\"\n [environment]=\"environment()\"\n [isExpanded]=\"isExpanded()\"\n [isMobile]=\"isMobile()\"\n [theme]=\"theme()\"\n [themeImagePath]=\"themeImagePath()\"\n [(isMobileMenuOpen)]=\"isMobileMenuOpen\"\n/>\n@if (!isMobile()) {\n <div class=\"content\">\n <main>\n <ndw-main-navigation-menu\n [isExpanded]=\"isExpanded()\"\n [isMobile]=\"isMobile()\"\n [items]=\"topMenuItems()\"\n (closed)=\"closeMobileMenu()\"\n />\n </main>\n <footer>\n @if (bottomMenuItems(); as bottomMenuItems) {\n <ndw-main-navigation-menu\n [isExpanded]=\"isExpanded()\"\n [isMobile]=\"isMobile()\"\n [items]=\"bottomMenuItems\"\n (closed)=\"closeMobileMenu()\"\n />\n }\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 </div>\n @if (isCollapsible() && !isMobile()) {\n <button ndwButton menu class=\"collapse-toggle\" (click)=\"toggleView()\">\n <ndw-icon>keyboard_double_arrow_right</ndw-icon>\n </button>\n }\n </footer>\n </div>\n} @else {\n @if (isMobileMenuOpen()) {\n <div class=\"content\">\n <main>\n <ndw-main-navigation-menu\n [isExpanded]=\"isExpanded()\"\n [isMobile]=\"isMobile()\"\n [items]=\"mobileMenuItems()\"\n (closed)=\"closeMobileMenu()\"\n />\n </main>\n </div>\n }\n}\n","import { CdkScrollable } from '@angular/cdk/scrolling';\nimport { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { Environment, MainNavigationComponent, MenuItem } 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 environment = input<Environment>();\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 [environment]=\"environment()\"\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","export const fontMapButtonIcons = [\n 'direction',\n 'gps',\n 'high-res',\n 'layers',\n 'polygon',\n 'search',\n 'zoom-in',\n 'zoom-out',\n 'mail',\n] as const;\n\nexport const svgMapButtonIcons = [\n 'add-traffic-sign',\n 'add-zone',\n 'download',\n 'hectometer',\n 'low-res',\n 'zoom-to-content',\n] as const;\n\nexport const mapButtonIcons = [...fontMapButtonIcons, ...svgMapButtonIcons] as const;\n\nexport type MapButtonIcon = (typeof mapButtonIcons)[number];\n","import { ChangeDetectionStrategy, Component, computed, input, output } from '@angular/core';\nimport { IconComponent } from '../icon/icon.component';\nimport { TooltipDirective } from '../tooltip';\nimport { MapButtonIcon, svgMapButtonIcons } from './map-button.model';\n\n@Component({\n selector: 'ndw-map-button',\n imports: [IconComponent, TooltipDirective],\n templateUrl: './map-button.component.html',\n styleUrl: './map-button.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MapButtonComponent {\n readonly icon = input.required<MapButtonIcon>();\n readonly active = input(false);\n readonly ariaLabel = input<string>();\n readonly disabled = input(false);\n\n readonly clicked = output<void>();\n\n protected readonly buttonIcon = computed(() => this.#icons[this.icon()]);\n protected readonly svgIcon = computed(() => {\n const svgIconNames: string[] = [...svgMapButtonIcons];\n const icon = this.icon();\n const active = this.active();\n\n if (svgIconNames.includes(icon)) {\n return active ? `${icon}-active` : icon;\n }\n\n return undefined;\n });\n\n protected readonly iconLabel = computed(() => {\n const ariaLabel = this.ariaLabel();\n const iconLabel = this.#iconLabels[this.icon()];\n return ariaLabel || iconLabel;\n });\n\n // Mapping from button icon names to Material icons or SVG icon IDs.\n readonly #icons: Record<MapButtonIcon, string> = {\n 'add-traffic-sign': 'add_traffic_sign',\n 'add-zone': 'add_zone',\n direction: 'explore',\n download: 'download',\n gps: 'my_location',\n hectometer: 'hectometer',\n 'high-res': 'high_res',\n layers: 'stacks',\n 'low-res': 'low_res',\n polygon: 'activity_zone',\n search: 'search',\n 'zoom-in': 'add',\n 'zoom-out': 'remove',\n 'zoom-to-content': 'zoom-to-content',\n mail: 'mail',\n };\n\n readonly #iconLabels: Record<MapButtonIcon, string> = {\n 'add-traffic-sign': 'Voeg verkeersbord toe',\n 'add-zone': 'Voeg een zone toe',\n direction: 'Herstel kaartrichting',\n download: 'Download kaartgegevens',\n gps: 'Ga naar mijn locatie',\n hectometer: 'Toon hectometrering',\n 'high-res': 'Hoge resolutie',\n layers: 'Kaartlagen',\n 'low-res': 'Lage resolutie',\n polygon: 'Selecteer een gebied',\n search: 'Zoeken',\n 'zoom-in': 'Zoom in',\n 'zoom-out': 'Zoom uit',\n 'zoom-to-content': 'Zoom naar inhoud',\n mail: 'Maak een melding',\n };\n}\n","<button\n class=\"map-control\"\n [class.active]=\"active()\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"iconLabel()\"\n (click)=\"clicked.emit()\"\n [ndwTooltip]=\"iconLabel()\"\n>\n @if (svgIcon()) {\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <use [attr.href]=\"'images/map-button-icons.svg#' + svgIcon()\"></use>\n </svg>\n } @else {\n <ndw-icon>{{ buttonIcon() }}</ndw-icon>\n }\n <div class=\"content-wrapper\">\n <ng-content />\n </div>\n</button>\n","import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport {\n DisplayOptionDirection,\n DisplayOptionType,\n MapDisplayOption,\n} from './map-display-option.model';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { IconComponent } from '../../icon';\n\n@Component({\n selector: 'ndw-map-display-option',\n imports: [NgTemplateOutlet, IconComponent],\n templateUrl: './map-display-option.component.html',\n styleUrl: './map-display-option.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MapDisplayOptionComponent {\n option = input.required<MapDisplayOption>();\n direction = input<DisplayOptionDirection>('row');\n type = input<DisplayOptionType>('checkbox');\n group = input<string | undefined>();\n\n selectionChange = output<MapDisplayOption>();\n}\n","@if (type() === 'button') {\n <button\n type=\"button\"\n [title]=\"option().description ?? ''\"\n [class.column]=\"direction() === 'column'\"\n (click)=\"selectionChange.emit(option())\"\n >\n <ng-container *ngTemplateOutlet=\"template\" />\n <span class=\"name\">{{ option().name }}</span>\n </button>\n} @else if (type() === 'radio' || type() === 'checkbox') {\n <label [class.column]=\"direction() === 'column'\" [title]=\"option().description ?? ''\">\n <input\n [type]=\"type()\"\n name=\"{{ group() }}\"\n [checked]=\"option().active\"\n (change)=\"selectionChange.emit(option())\"\n />\n <ng-container *ngTemplateOutlet=\"template\" />\n <span class=\"name\">{{ option().name }}</span>\n </label>\n} @else {\n <ng-container *ngTemplateOutlet=\"template\" />\n}\n\n<ng-template #template>\n @if (option().imageLink) {\n <img [src]=\"option().imageLink\" [alt]=\"option().name\" />\n } @else {\n <ndw-icon>stacks</ndw-icon>\n }\n</ng-template>\n","import { OverlayModule } from '@angular/cdk/overlay';\n\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n linkedSignal,\n model,\n OnInit,\n output,\n signal,\n} from '@angular/core';\nimport { IconComponent } from '../icon';\nimport { TagComponent } from '../tag';\nimport {\n MapBackgroundOption,\n MapDisplayOption,\n MapDisplayOptionComponent,\n} from './map-display-option';\n\n@Component({\n selector: 'ndw-map-display',\n imports: [MapDisplayOptionComponent, OverlayModule, IconComponent, TagComponent],\n templateUrl: './map-display.component.html',\n styleUrl: './map-display.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MapDisplayComponent implements OnInit {\n title = input<string>('Kaartweergave');\n backgroundsTitle = input<string>('Achtergrond');\n layersTitle = input<string>('Gegevens');\n enableClearLayers = input<boolean>(true);\n layerOptionType = input<'radio' | 'checkbox'>('checkbox');\n backgroundOptions = input<MapBackgroundOption[], MapBackgroundOption[]>([], {\n transform: (options: MapBackgroundOption[]): MapBackgroundOption[] =>\n (options ?? []).map((bg) => ({ ...bg })),\n });\n layerOptions = input<MapDisplayOption[], MapDisplayOption[]>([], {\n transform: (options: MapDisplayOption[]): MapDisplayOption[] =>\n (options ?? []).map((layer) => ({ ...layer })),\n });\n\n readonly backgroundChange = output<MapBackgroundOption>();\n readonly layerChange = output<MapDisplayOption>();\n readonly clearAllLayers = output<void>();\n\n readonly open = model(false);\n readonly htmlIsRendered = signal(false);\n readonly showPopover = computed(() => this.open() && this.htmlIsRendered());\n\n readonly linkedBackgroundOptions = linkedSignal(this.backgroundOptions);\n readonly activeBackgroundOption = computed(() =>\n this.linkedBackgroundOptions()?.find((opt) => opt.active),\n );\n\n readonly linkedLayerOptions = linkedSignal(this.layerOptions);\n readonly numberOfSelectedLayers = computed(\n () => this.linkedLayerOptions()?.filter((opt) => opt.active)?.length ?? 0,\n );\n\n constructor() {\n afterNextRender(() => this.htmlIsRendered.set(true));\n }\n\n ngOnInit() {\n this.#initBackgroundOptions();\n }\n\n selectBackground(option: MapDisplayOption) {\n this.linkedBackgroundOptions.update((options) =>\n options.map((opt) => ({ ...opt, active: opt.id === option.id })),\n );\n this.backgroundChange.emit(option as MapBackgroundOption);\n }\n\n toggleLayer(option: MapDisplayOption) {\n const isRadio = this.layerOptionType() === 'radio';\n\n if (isRadio) {\n this.#resetAllLayers();\n }\n\n this.linkedLayerOptions.update((options) =>\n options.map((opt) => {\n let newActive = !!opt.active;\n\n if (opt.id === option.id) {\n newActive = isRadio ? true : !opt.active;\n }\n\n const newOption = { ...opt, active: newActive };\n\n if (newOption.active !== opt.active) {\n this.layerChange.emit(newOption);\n }\n\n return newOption;\n }),\n );\n }\n\n clearLayers() {\n this.#resetAllLayers();\n this.clearAllLayers.emit();\n }\n\n #resetAllLayers(options?: { emitEvent: boolean }): void {\n const { emitEvent = true } = options || {};\n this.linkedLayerOptions.update((options) =>\n options.map((opt) => {\n const newOption = { ...opt, active: false };\n if (opt.active && emitEvent) {\n this.layerChange.emit(newOption);\n }\n return newOption;\n }),\n );\n }\n\n #initBackgroundOptions() {\n const options = this.linkedBackgroundOptions();\n const activeBackground = options?.find((opt) => opt.active);\n\n if (!activeBackground && options?.length) {\n this.selectBackground(options[0]);\n }\n }\n}\n","<div class=\"map-control\" [class.active]=\"open()\" cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\">\n @let activeBackground = activeBackgroundOption();\n @if (activeBackground) {\n <ndw-map-display-option [option]=\"activeBackground\" [type]=\"'none'\" />\n }\n\n <button class=\"content-wrapper\" type=\"button\" (click)=\"open.set(!open())\">\n {{ title() }}\n </button>\n\n @if (numberOfSelectedLayers() && enableClearLayers()) {\n <ndw-tag (clicked)=\"clearLayers()\">{{ numberOfSelectedLayers() }}</ndw-tag>\n }\n\n <ndw-icon class=\"map-control__chevron\">keyboard_arrow_down</ndw-icon>\n</div>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"showPopover()\"\n (detach)=\"open.set(false)\"\n (overlayOutsideClick)=\"open.set(false)\"\n>\n <div class=\"map-control-dropdown\">\n <header>\n <h3 class=\"ndw-paragraph-bold-lg\">{{ title() }}</h3>\n <button ndwButton tertiary type=\"button\" (click)=\"open.set(false)\">\n <ndw-icon>close</ndw-icon>\n <span class=\"sr-only\">Sluit {{ title() }}</span>\n </button>\n </header>\n\n <div class=\"map-control-dropdown__content\">\n @if (linkedBackgroundOptions().length) {\n <section class=\"map-control-dropdown__section\">\n <h4 class=\"ndw-paragraph-bold-md map-control-dropdown__subtitle\">\n {{ backgroundsTitle() }}\n </h4>\n <ul class=\"map-control-dropdown__backgrounds\">\n @for (backgroundOption of linkedBackgroundOptions(); track backgroundOption.id) {\n <li>\n <ndw-map-display-option\n [option]=\"backgroundOption\"\n [group]=\"'map-backgrounds'\"\n [type]=\"'radio'\"\n [direction]=\"'column'\"\n (selectionChange)=\"selectBackground($event)\"\n />\n </li>\n }\n </ul>\n </section>\n }\n\n @if (linkedLayerOptions().length) {\n <section class=\"map-control-dropdown__section\">\n <h4 class=\"ndw-paragraph-bold-md map-control-dropdown__subtitle\">{{ layersTitle() }}</h4>\n <ul>\n @for (layerOption of linkedLayerOptions(); track layerOption.id) {\n <li>\n <ndw-map-display-option\n [option]=\"layerOption\"\n [group]=\"'map-layers'\"\n [type]=\"layerOptionType()\"\n [direction]=\"'row'\"\n (selectionChange)=\"toggleLayer($event)\"\n />\n </li>\n }\n </ul>\n </section>\n }\n </div>\n </div>\n</ng-template>\n","import { MapBackgrounds } from './map-display-option/map-display-option.model';\n\nexport const MAP_BACKGROUND_IMAGES = {\n OSM_DEFAULT: 'images/map-backgrounds/osm-default.webp',\n OSM_BASIC: 'images/map-backgrounds/osm-basic.webp',\n OSM_COLOR_BLIND: 'images/map-backgrounds/osm-color-blind.webp',\n OSM_DARK: 'images/map-backgrounds/osm-dark.webp',\n OSM_NO_ROADS: 'images/map-backgrounds/osm-default-no-roads.webp',\n OSM_FCD_LINKS: 'images/map-backgrounds/osm-default-with-fcd-links_1-5.webp',\n OSM_FCD_ROADS: 'images/map-backgrounds/osm-default-with-fcd-roads.webp',\n OSM_FCD_SEGMENTS: 'images/map-backgrounds/osm-default-with-fcd-segments.webp',\n OSM_MST: 'images/map-backgrounds/osm-default-with-mst.webp',\n OSM_NWB_ROADS_WHITE: 'images/map-backgrounds/osm-default-with-nwb-roads-white.webp',\n OSM_NWB_ROADS: 'images/map-backgrounds/osm-default-with-nwb-roads.webp',\n OSM_DEFAULT_FULL: 'images/map-backgrounds/osm-default.webp',\n OSM_FRONT_DARK: 'images/map-backgrounds/osm-front-office-dark.webp',\n OSM_FRONT_LIGHT_NWB: 'images/map-backgrounds/osm-front-office-light-with-nwb-roads.webp',\n OSM_FRONT_LIGHT: 'images/map-backgrounds/osm-front-office-light.webp',\n OSM_GREEN: 'images/map-backgrounds/osm-green.webp',\n};\n\nexport const MAP_BACKGROUNDS: MapBackgrounds = {\n OSM_BASIC: {\n id: 'OSM_BASIC',\n name: 'Basis',\n imageLink: MAP_BACKGROUND_IMAGES.OSM_BASIC,\n style: 'https://maps.ndw.nu/styles/osm-basic.json',\n },\n OSM_DEFAULT: {\n id: 'OSM_DEFAULT',\n name: 'Standaard',\n description: 'Standaard',\n imageLink: MAP_BACKGROUND_IMAGES.OSM_DEFAULT,\n style: 'https://maps.ndw.nu/styles/osm-default.json',\n },\n OSM_COLOR_BLIND: {\n id: 'OSM_COLOR_BLIND',\n name: 'Kleuren',\n description: 'Kleurenblind',\n imageLink: MAP_BACKGROUND_IMAGES.OSM_COLOR_BLIND,\n style: 'https://maps.ndw.nu/styles/osm-color-blind.json',\n },\n OSM_DARK: {\n id: 'OSM_DARK',\n name: 'Donker',\n description: 'Donker',\n imageLink: MAP_BACKGROUND_IMAGES.OSM_DARK,\n style: 'https://maps.ndw.nu/styles/osm-dark.json',\n },\n OSM_NO_ROADS: {\n id: 'OSM_NO_ROADS',\n name: 'OSM N.R.',\n description: 'OSM zonder wegen',\n imageLink: MAP_BACKGROUND_IMAGES.OSM_NO_ROADS,\n style: 'https://maps.ndw.nu/styles/osm-default-no-roads.json',\n },\n OSM_FCD_LINKS: {\n id: 'OSM_FCD_LINKS',\n name: 'FCD L.',\n description: 'OSM met FCD links',\n imageLink: MAP_BACKGROUND_IMAGES.OSM_FCD_LINKS,\n style: 'https://maps.ndw.nu/styles/osm-default-with-fcd-links_1-5.json',\n },\n OSM_FCD_ROADS: {\n id: 'OSM_FCD_ROADS',\n name: 'FCD R.',\n description: 'OSM met FCD wegen',\n imageLink: MAP_BACKGROUND_IMAGES.OSM_FCD_ROADS,\n style: 'https://maps.ndw.nu/styles/osm-default-with-fcd-roads.json',\n },\n OSM_FCD_SEGMENTS: {\n id: 'OSM_FCD_SEGMENTS',\n name: 'FCD S.',\n description: 'OSM met FCD segmenten',\n imageLink: MAP_BACKGROUND_IMAGES.OSM_FCD_SEGMENTS,\n style: 'https://maps.ndw.nu/styles/osm-default-with-fcd-segments.json',\n },\n OSM_MST: {\n id: 'OSM_MST',\n name: 'OSM MST',\n description: 'OSM met MST',\n imageLink: MAP_BACKGROUND_IMAGES.OSM_MST,\n style: 'https://maps.ndw.nu/styles/osm-default-with-mst.json',\n },\n OSM_NWB_ROADS_WHITE: {\n id: 'OSM_NWB_ROADS_WHITE',\n name: 'NWB W.',\n description: 'OSM met NWB wegen (wit)',\n imageLink: MAP_BACKGROUND_IMAGES.OSM_NWB_ROADS_WHITE,\n style: 'https://maps.ndw.nu/styles/osm-default-with-nwb-roads-white.json',\n },\n OSM_NWB_ROADS: {\n id: 'OSM_NWB_ROADS',\n name: 'NWB',\n description: 'OSM met NWB',\n imageLink: MAP_BACKGROUND_IMAGES.OSM_NWB_ROADS,\n style: 'https://maps.ndw.nu/styles/osm-default-with-nwb-roads.json',\n },\n OSM_DEFAULT_FULL: {\n id: 'OSM_DEFAULT_FULL',\n name: 'Default',\n description: 'OSM standaard',\n imageLink: MAP_BACKGROUND_IMAGES.OSM_DEFAULT_FULL,\n style: 'https://maps.ndw.nu/styles/osm-default.json',\n },\n OSM_FRONT_DARK: {\n id: 'OSM_FRONT_DARK',\n name: 'OSM F.D.',\n description: 'OSM front office donker',\n imageLink: MAP_BACKGROUND_IMAGES.OSM_FRONT_DARK,\n style: 'https://maps.ndw.nu/styles/osm-front-office-dark.json',\n },\n OSM_FRONT_LIGHT_NWB: {\n id: 'OSM_FRONT_LIGHT_NWB',\n name: 'F.L. NWB',\n description: 'OSM front office licht met NWB wegen',\n imageLink: MAP_BACKGROUND_IMAGES.OSM_FRONT_LIGHT_NWB,\n style: 'https://maps.ndw.nu/styles/osm-front-office-light-with-nwb-roads.json',\n },\n OSM_FRONT_LIGHT: {\n id: 'OSM_FRONT_LIGHT',\n name: 'F.L.',\n description: 'OSM front office licht',\n imageLink: MAP_BACKGROUND_IMAGES.OSM_FRONT_LIGHT,\n style: 'https://maps.ndw.nu/styles/osm-front-office-light.json',\n },\n OSM_GREEN: {\n id: 'OSM_GREEN',\n name: 'OSM G.',\n description: 'OSM groen',\n imageLink: MAP_BACKGROUND_IMAGES.OSM_GREEN,\n style: 'https://maps.ndw.nu/styles/osm-green.json',\n },\n};\n\nexport const DEFAULT_BACKGROUNDS = [\n MAP_BACKGROUNDS['OSM_NWB_ROADS'],\n MAP_BACKGROUNDS['OSM_COLOR_BLIND'],\n MAP_BACKGROUNDS['OSM_DARK'],\n];\n","import { MapDisplayOption } from './map-display-option';\n\nexport const MAP_LAYER_IMAGES = {\n ACTUAL_TRAFFIC_V1: 'images/map-layers/actueelverkeer1.webp',\n ACTUAL_TRAFFIC_V2: 'images/map-layers/actueelverkeerv2.webp',\n IMAGE_MODE_V1: 'images/map-layers/beeldstand1.webp',\n IMAGE_MODE_V2: 'images/map-layers/beeldstand2.webp',\n HECTOMETRY: 'images/map-layers/hectometrering.webp',\n ROAD_WORKS: 'images/map-layers/wegwerkzaamheden.webp',\n};\n\nexport const MAP_LAYERS: Record<string, MapDisplayOption> = {\n ACTUAL_TRAFFIC_V1: {\n id: 'ACTUAL_TRAFFIC_V1',\n name: 'Actueel verkeer 1',\n imageLink: MAP_LAYER_IMAGES.ACTUAL_TRAFFIC_V1,\n },\n ACTUAL_TRAFFIC_V2: {\n id: 'ACTUAL_TRAFFIC_V2',\n name: 'Actueel verkeer 2',\n imageLink: MAP_LAYER_IMAGES.ACTUAL_TRAFFIC_V2,\n },\n IMAGE_MODE_V1: {\n id: 'IMAGE_MODE_V1',\n name: 'Beeldstand 1',\n imageLink: MAP_LAYER_IMAGES.IMAGE_MODE_V1,\n },\n IMAGE_MODE_V2: {\n id: 'IMAGE_MODE_V2',\n name: 'Beeldstand 2',\n imageLink: MAP_LAYER_IMAGES.IMAGE_MODE_V2,\n },\n HECTOMETRY: {\n id: 'HECTOMETRY',\n name: 'Hectometrering',\n imageLink: MAP_LAYER_IMAGES.HECTOMETRY,\n },\n ROAD_WORKS: {\n id: 'ROAD_WORKS',\n name: 'Wegwerkzaamheden',\n imageLink: MAP_LAYER_IMAGES.ROAD_WORKS,\n },\n};\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { MapLegendOption } from '../map-legend.model';\nimport { IconComponent } from '../../icon';\n\n@Component({\n selector: 'ndw-map-legend-option',\n templateUrl: './map-legend-option.component.html',\n styleUrls: ['./map-legend-option.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconComponent],\n host: {\n role: 'listitem',\n },\n})\nexport class MapLegendOptionComponent {\n readonly option = input.required<MapLegendOption>();\n}\n","@let opt = option();\n<div class=\"option-type\">\n @switch (opt.type) {\n @case ('circle') {\n <div class=\"circle\" [style.--map-legend-option-color]=\"opt.color\"></div>\n }\n\n @case ('line') {\n <div\n class=\"line\"\n [class.dashed]=\"opt.fillMode === 'dashed'\"\n [style.--map-legend-option-color]=\"opt.color\"\n ></div>\n }\n\n @case ('icon') {\n <ndw-icon class=\"icon\">{{ opt.iconName }}</ndw-icon>\n }\n\n @case ('image') {\n <img\n class=\"image\"\n [class.contain]=\"opt.objectFit === 'contain'\"\n [src]=\"opt.src\"\n [alt]=\"opt.label\"\n />\n }\n\n @case ('polygon') {\n <div class=\"polygon\" [style.--map-legend-option-color]=\"opt.color\">\n <svg viewBox=\"0 0 20 20\">\n <polygon points=\"10,1 1,19 19,19\" />\n </svg>\n <div class=\"dot\"></div>\n <div class=\"dot\"></div>\n <div class=\"dot\"></div>\n </div>\n }\n }\n</div>\n\n<span class=\"ndw-paragraph-md option-label\">\n {{ opt.label }}\n</span>\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { MapLegendOptionGroup } from '../map-legend.model';\nimport { MapLegendOptionComponent } from '../map-legend-option/map-legend-option.component';\n\n@Component({\n selector: 'ndw-map-legend-group',\n templateUrl: './map-legend-group.component.html',\n styleUrls: ['./map-legend-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MapLegendOptionComponent],\n host: {\n role: 'listitem',\n },\n})\nexport class MapLegendGroupComponent {\n readonly group = input.required<MapLegendOptionGroup>();\n readonly singleGroup = input<boolean>(false);\n readonly index = input<number>(0);\n}\n","@if (group().label) {\n <h4\n class=\"ndw-paragraph-bold-md group-title\"\n [class.sr-only]=\"singleGroup()\"\n [class.group-title--first]=\"index() === 0\"\n >\n {{ group().label }}\n </h4>\n}\n<ul>\n @for (option of group().options; let i = $index; track i) {\n <ndw-map-legend-option [option]=\"option\" />\n }\n</ul>\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n model,\n signal,\n} from '@angular/core';\nimport { MapLegendOptionGroup, MapLegendViewMode } from './map-legend.model';\nimport { IconComponent } from '../icon';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { MapLegendGroupComponent } from './map-legend-group/map-legend-group.component';\n\n@Component({\n selector: 'ndw-map-legend',\n templateUrl: './map-legend.component.html',\n styleUrls: ['./map-legend.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconComponent, NgTemplateOutlet, OverlayModule, MapLegendGroupComponent],\n})\nexport class MapLegendComponent {\n readonly groups = input.required<MapLegendOptionGroup[]>();\n readonly icon = input<string>('legend_toggle');\n readonly title = input<string>('Legenda');\n readonly viewMode = input<MapLegendViewMode>('dropdown');\n\n readonly open = model<boolean>(false);\n readonly htmlIsRendered = signal(false);\n\n readonly showPopover = computed(() => this.open() && this.htmlIsRendered());\n readonly isDropdownViewMode = computed(() => this.viewMode() === 'dropdown');\n readonly isFixedViewMode = computed(() => this.viewMode() === 'fixed');\n readonly hasJustOneGroup = computed(() => this.groups().length === 1);\n\n constructor() {\n afterNextRender(() => this.htmlIsRendered.set(true));\n }\n}\n","@if (isDropdownViewMode()) {\n <button\n class=\"map-control\"\n [class.active]=\"open()\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n (click)=\"open.set(!open())\"\n >\n <ndw-icon>{{ icon() }}</ndw-icon>\n <span class=\"content-wrapper\">\n {{ title() }}\n </span>\n <ndw-icon class=\"map-control__chevron\">keyboard_arrow_down</ndw-icon>\n </button>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"showPopover()\"\n (detach)=\"open.set(false)\"\n >\n <ng-container *ngTemplateOutlet=\"dropdown\" />\n </ng-template>\n} @else {\n <ng-container *ngTemplateOutlet=\"dropdown\" />\n}\n\n<ng-template #dropdown>\n <div class=\"map-control-dropdown\" [class.fixed]=\"isFixedViewMode()\">\n <header>\n <h3 class=\"ndw-paragraph-bold-lg\">{{ title() }}</h3>\n\n @if (isDropdownViewMode()) {\n <button\n class=\"map-control-dropdown__close\"\n ndwButton\n tertiary\n type=\"button\"\n (click)=\"open.set(false)\"\n >\n <ndw-icon>close</ndw-icon>\n <span class=\"sr-only\">Sluit {{ title() }}</span>\n </button>\n }\n </header>\n\n <div class=\"map-control-dropdown__content\">\n @if (hasJustOneGroup()) {\n <ndw-map-legend-group [group]=\"groups()[0]\" [singleGroup]=\"true\" />\n } @else {\n <ul class=\"groups\">\n @for (group of groups(); let i = $index; track i) {\n @if (!!group.options.length) {\n <ndw-map-legend-group [group]=\"group\" [index]=\"i\" />\n }\n }\n </ul>\n }\n </div>\n </div>\n</ng-template>\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 {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n model,\n signal,\n viewChild,\n} from '@angular/core';\n\nimport { DropdownComponent } from '../dropdown';\nimport { FormFieldComponent, InputDirective } from '../form-field';\nimport { IconComponent } from '../icon';\nimport { ListComponent } from '../list';\nimport { ListItemComponent } from '../list-item';\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 DropdownComponent,\n FormFieldComponent,\n InputDirective,\n IconComponent,\n ListComponent,\n ListItemComponent,\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('Zoek in lijst.');\n public readonly prefixIcon = input('');\n public readonly searchPlaceholder = input('Zoek in lijst...');\n public readonly noResultText = input(\n 'Oeps, geen resultaten gevonden. Probeer een andere zoekterm.',\n );\n public readonly chevron = input(true);\n public readonly disabled = input(false);\n public readonly selectAmountHidden = input(false);\n public readonly selectAllText = input<SelectAllText>({\n deselect: 'Deselecteer alles',\n select: 'Selecteer alles',\n });\n\n public readonly dataSource = model<CheckboxData[]>([]);\n protected readonly lastCheckedElementId = model<CheckboxData['id'] | null>();\n protected readonly searchInputValue = model('');\n\n protected readonly isOpen = signal(false);\n\n protected readonly dataSourceSorted = signal<CheckboxData[]>([]);\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) => ({\n ...checkbox,\n value: selectAll,\n }));\n });\n\n this.sortDataSource();\n }\n\n public isOpenChanged(isOpen: boolean): void {\n this.isOpen.set(isOpen);\n if (isOpen) {\n this.searchInputValue.set('');\n this.determineLastCheckedElement();\n this.sortDataSource();\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 private sortDataSource(): void {\n this.dataSourceSorted.set(\n this.dataSource()\n .slice()\n .sort((a, b) => Number(b.value) - Number(a.value)),\n );\n }\n}\n","<ndw-dropdown\n prefixIcon=\"filter_alt\"\n [selectAmount]=\"selectAmountHidden() ? 0 : 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-list class=\"multi-select-container\">\n @for (checkbox of dataSourceSorted(); track checkbox.id) {\n @if (filterSearch(checkbox.label)) {\n <ndw-list-item\n [class.last-checked]=\"lastCheckedElementId() === checkbox.id\"\n [checkable]=\"true\"\n [checked]=\"checkbox.value\"\n [prefixIcon]=\"checkbox.icon\"\n [subtitle]=\"checkbox.label\"\n (checkedChange)=\"checkboxChanged(checkbox.id)\"\n >\n @if (checkbox.image && isOpen()) {\n <img [src]=\"checkbox.image.src\" [alt]=\"checkbox.image.alt\" />\n }\n </ndw-list-item>\n }\n }\n </ndw-list>\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 { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { CoreRouterBreadcrumbsComponent } from '@ndwnu/core';\n\nimport { BreadcrumbComponent } from '../breadcrumb';\nimport { BreadcrumbGroupComponent } from '../breadcrumb-group';\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 extends CoreRouterBreadcrumbsComponent {}\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","interface DragElementDimensions {\n containerHeight: number;\n containerWidth: number;\n splitterHeight: number;\n splitterWidth: number;\n}\n\nexport const initialDragElementDimensions: DragElementDimensions = {\n containerHeight: 0,\n containerWidth: 0,\n splitterHeight: 0,\n splitterWidth: 0,\n};\n\nexport function createDragElementDimensions(\n container: DOMRect,\n splitter: DOMRect,\n): DragElementDimensions {\n return {\n containerHeight: Math.round(container.height),\n containerWidth: Math.round(container.width),\n splitterHeight: Math.round(splitter.height),\n splitterWidth: Math.round(splitter.width),\n };\n}\n","import { CdkDrag, DragDropModule, Point } from '@angular/cdk/drag-drop';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n ElementRef,\n input,\n OnDestroy,\n signal,\n untracked,\n viewChild,\n} from '@angular/core';\nimport { createDragElementDimensions, initialDragElementDimensions } from './splitter-drag-element';\n\n@Component({\n selector: 'ndw-splitter',\n imports: [DragDropModule],\n templateUrl: './splitter.component.html',\n styleUrl: './splitter.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.disabled]': 'disabled()',\n },\n})\nexport class SplitterComponent implements AfterViewInit, OnDestroy {\n public readonly disabled = input(false);\n\n /**\n * If true, the splitter is horizontal (splits top and bottom panels).\n * Otherwise, it is vertical (splits left and right panels).\n */\n public readonly horizontal = input(false);\n\n /**\n * Optional size of the first panel (in pixels) when the component is initialized.\n */\n public readonly initialPanelSize = input<number | null>(null);\n\n /**\n * Minimum size of both panels (in pixels).\n */\n public readonly minimumPanelSize = input<number>(0);\n\n protected readonly firstPanelSize = signal(0);\n protected readonly secondPanelSize = computed(() =>\n this.clampPanelSize(this.availableSize() - this.firstPanelSize()),\n );\n protected readonly isDragging = signal(false);\n\n private readonly container = viewChild.required<ElementRef<HTMLElement>>('container');\n private readonly splitter = viewChild.required<ElementRef<HTMLElement>>('splitter');\n private readonly cdkDrag = viewChild.required(CdkDrag);\n\n private storedFirstPanelSize = this.initialPanelSize() ?? 0;\n\n /**\n * Flag to indicate if the mouse click event should be\n * ignored because the user is dragging the splitter.\n */\n private ignoreMouseClick = false;\n\n /**\n * Reactive object to store the dimensions of the drag elements.\n * Updated by a resize observer on the container.\n */\n private readonly dragElementDimensions = signal(initialDragElementDimensions);\n\n private readonly resizeObserver = new ResizeObserver(() => {\n const container = this.container().nativeElement.getBoundingClientRect();\n const splitter = this.splitter().nativeElement.getBoundingClientRect();\n this.dragElementDimensions.set(createDragElementDimensions(container, splitter));\n });\n\n /**\n * Available size for the panels, without considering the `minimumPanelSize` input.\n */\n private readonly availableSize = computed(() => {\n const { containerHeight, containerWidth, splitterHeight, splitterWidth } =\n this.dragElementDimensions();\n return this.horizontal() ? containerHeight - splitterHeight : containerWidth - splitterWidth;\n });\n\n /**\n * Position of the drag handle when the component is initialized.\n * The drag position is always relative to this starting position.\n */\n private readonly dragStartPosition = computed(() => this.availableSize() / 2);\n\n /**\n * Minimum panel size that is safe to use, considering the\n * available container size and the `minimumPanelSize` input.\n */\n protected readonly safeMinPanelSize = computed(() =>\n clamp(this.minimumPanelSize(), 0, this.availableSize()),\n );\n\n /**\n * Maximum panel size that is safe to use, considering the\n * available container size and the `minimumPanelSize\n */\n protected readonly safeMaxPanelSize = computed(() =>\n clamp(\n this.availableSize() - this.safeMinPanelSize(),\n this.safeMinPanelSize(),\n this.availableSize(),\n ),\n );\n\n constructor() {\n // Update panel size and drag position when the initial panel size, minimum panel size or container size change\n effect(() => {\n this.minimumPanelSize();\n this.initialPanelSize();\n const { containerHeight, containerWidth } = this.dragElementDimensions();\n const containerSize = this.horizontal() ? containerHeight : containerWidth;\n\n if (containerSize === 0) {\n return;\n }\n\n untracked(() => {\n this.setFirstPanelSize(this.initialPanelSize());\n this.setDragPosition(this.firstPanelSize());\n });\n });\n }\n\n public ngAfterViewInit() {\n this.resizeObserver.observe(this.container().nativeElement);\n }\n\n public ngOnDestroy() {\n this.resizeObserver.unobserve(this.container().nativeElement);\n this.resizeObserver.disconnect();\n }\n\n protected constrainPosition = computed(() => {\n const horizontal = this.horizontal();\n\n return (userPointerPosition: Point) => {\n const { left, top } = this.container().nativeElement.getBoundingClientRect();\n const containerOffset = horizontal ? top : left;\n const pointerPosition = horizontal ? userPointerPosition.y : userPointerPosition.x;\n const clampedPosition = clamp(\n pointerPosition,\n this.safeMinPanelSize() + containerOffset,\n this.safeMaxPanelSize() + containerOffset,\n );\n\n return horizontal ? { x: 0, y: clampedPosition } : { x: clampedPosition, y: 0 };\n };\n });\n\n protected onDragStarted() {\n this.storeFirstPanelSize();\n this.isDragging.set(true);\n }\n\n protected onDragEnded() {\n this.isDragging.set(false);\n }\n\n protected onDragMoved() {\n this.setFirstPanelSize();\n this.ignoreMouseClick = true;\n }\n\n protected onSplitterMouseDown() {\n this.ignoreMouseClick = false;\n }\n\n protected onSplitterMouseUp() {\n if (this.ignoreMouseClick) {\n return;\n }\n\n const drag = this.cdkDrag();\n const currentPosition = this.horizontal()\n ? drag.getFreeDragPosition().y\n : drag.getFreeDragPosition().x;\n let newPosition = 0;\n\n if (\n this.firstPanelSize() <= this.safeMinPanelSize() ||\n this.secondPanelSize() <= this.safeMinPanelSize()\n ) {\n // Return to initial panel sizes\n newPosition = currentPosition + this.storedFirstPanelSize - this.firstPanelSize();\n } else if (this.firstPanelSize() < this.secondPanelSize()) {\n // Store current left panel size so we can restore it later\n this.storeFirstPanelSize();\n\n // Maximize right panel\n newPosition = currentPosition - (this.safeMaxPanelSize() - this.secondPanelSize());\n } else {\n // Store current left panel size so we can restore it later\n this.storeFirstPanelSize();\n\n // Maximize left panel\n newPosition = currentPosition + (this.safeMaxPanelSize() - this.firstPanelSize());\n }\n\n if (this.horizontal()) {\n drag.setFreeDragPosition({ x: 0, y: newPosition });\n } else {\n drag.setFreeDragPosition({ x: newPosition, y: 0 });\n }\n\n this.setFirstPanelSize();\n }\n\n protected setDragPosition(position: number) {\n const { containerHeight, containerWidth, splitterHeight, splitterWidth } =\n this.dragElementDimensions();\n\n const halfContainerSize = this.horizontal() ? containerHeight / 2 : containerWidth / 2;\n const halfSplitterSize = this.horizontal() ? splitterHeight / 2 : splitterWidth / 2;\n const distance = position - halfContainerSize + halfSplitterSize;\n\n if (this.horizontal()) {\n this.cdkDrag().setFreeDragPosition({ x: 0, y: distance });\n } else {\n this.cdkDrag().setFreeDragPosition({ x: distance, y: 0 });\n }\n }\n\n protected storeFirstPanelSize() {\n const dragPosition = this.cdkDrag().getFreeDragPosition();\n const freeDragPosition = this.horizontal() ? dragPosition.y : dragPosition.x;\n this.storedFirstPanelSize = this.clampPanelSize(this.dragStartPosition() + freeDragPosition);\n }\n\n private setFirstPanelSize(forcedSize?: number | null) {\n const dragPosition = this.cdkDrag().getFreeDragPosition();\n const freeDragPosition = this.horizontal() ? dragPosition.y : dragPosition.x;\n this.firstPanelSize.set(\n this.clampPanelSize(forcedSize ?? this.dragStartPosition() + freeDragPosition),\n );\n }\n\n private clampPanelSize(width: number) {\n return clamp(width, this.safeMinPanelSize(), this.safeMaxPanelSize());\n }\n}\n\nfunction clamp(width: number, min: number, max: number) {\n return Math.round(Math.min(Math.max(width, min), max));\n}\n","<div\n #container\n class=\"panels\"\n [class]=\"{\n horizontal: horizontal(),\n vertical: !horizontal(),\n dragging: isDragging(),\n }\"\n>\n <div\n class=\"panel\"\n [style]=\"{\n width: horizontal() ? '100%' : firstPanelSize() + 'px',\n height: horizontal() ? firstPanelSize() + 'px' : '100%',\n }\"\n >\n <ng-content select=\"[first-panel]\"></ng-content>\n </div>\n <div\n #splitter\n class=\"splitter\"\n role=\"separator\"\n aria-orientation=\"{{ horizontal() ? 'horizontal' : 'vertical' }}\"\n [attr.aria-valuenow]=\"firstPanelSize()\"\n [attr.aria-valuemin]=\"safeMinPanelSize()\"\n [attr.aria-valuemax]=\"safeMaxPanelSize()\"\n cdkDrag\n [cdkDragLockAxis]=\"horizontal() ? 'y' : 'x'\"\n [class.disabled]=\"disabled()\"\n [cdkDragBoundary]=\"container\"\n (cdkDragStarted)=\"onDragStarted()\"\n (cdkDragMoved)=\"onDragMoved()\"\n (cdkDragEnded)=\"onDragEnded()\"\n (mousedown)=\"onSplitterMouseDown()\"\n (mouseup)=\"onSplitterMouseUp()\"\n [cdkDragConstrainPosition]=\"constrainPosition()\"\n >\n @if (horizontal()) {\n <svg viewBox=\"0 0 28 4\" xmlns=\"http://www.w3.org/2000/svg\" role=\"presentation\">\n @for (i of [0, 1, 2]; track i) {\n <circle [attr.cx]=\"2 + i * 12\" cy=\"2\" r=\"2\" fill=\"currentColor\" />\n }\n </svg>\n } @else {\n <svg viewBox=\"0 0 4 28\" xmlns=\"http://www.w3.org/2000/svg\" role=\"presentation\">\n @for (i of [0, 1, 2]; track i) {\n <circle cx=\"2\" [attr.cy]=\"2 + i * 12\" r=\"2\" fill=\"currentColor\" />\n }\n </svg>\n }\n </div>\n <div\n class=\"panel\"\n [style]=\"{\n width: horizontal() ? '100%' : secondPanelSize() + 'px',\n height: horizontal() ? secondPanelSize() + 'px' : '100%',\n }\"\n >\n <ng-content select=\"[second-panel]\"></ng-content>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'ndw-summary-card',\n templateUrl: './summary-card.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'ndw-summary-card',\n },\n})\nexport class SummaryCardComponent {}\n","<div class=\"ndw-summary-card__wrapper\">\n <ng-content select=\"ndw-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</div>\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 (click)=\"action.emit()\"\n >\n <span class=\"sr-only\">{{ label() }}</span>\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';\n\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","<ng-content select=\"ndw-favorite\" />\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 [ndwPopoverTrigger]=\"content\"\n [popoverPosition]=\"'nextToTriggerButton'\"\n >\n <span class=\"sr-only\">Open menu</span>\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 } 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 changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'ndw-summary-card-header',\n },\n selector: 'ndw-summary-card-header',\n templateUrl: './summary-card-header.component.html',\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","import {\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n input,\n model,\n OnInit,\n output,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IconComponent } from '../icon/icon.component';\nimport { SwitcherOption, SwitcherValue } from './';\n\n@Component({\n selector: 'ndw-switcher',\n imports: [IconComponent],\n templateUrl: './switcher.component.html',\n styleUrls: ['./switcher.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SwitcherComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'radiogroup',\n '[class.disabled]': 'disabled()',\n '[class.vertical]': 'vertical()',\n },\n})\nexport class SwitcherComponent implements ControlValueAccessor, OnInit {\n readonly options = input<SwitcherOption[]>([]);\n readonly selectedValue = model<SwitcherValue | undefined>(undefined);\n readonly disabled = model(false);\n readonly vertical = input(false);\n\n readonly selectionChange = output<SwitcherValue>();\n\n sliderHeight = '';\n sliderWidth = '';\n sliderPosition = '';\n\n private onChange = (_value: SwitcherValue) => {\n // noop\n };\n private onTouched = () => {\n // noop\n };\n\n ngOnInit() {\n this.#updateSliderProperties();\n }\n\n writeValue(value: SwitcherValue): void {\n this.selectedValue.set(value);\n if (this.options().length > 0) {\n this.#updateSliderProperties();\n }\n }\n\n registerOnChange(fn: (value: SwitcherValue) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n\n selectOption(value: SwitcherValue): void {\n if (this.disabled()) return;\n\n const option = this.options().find((opt) => opt.value === value);\n if (option?.disabled) return;\n\n this.selectedValue.set(value);\n this.#updateSliderProperties();\n this.onChange(value);\n this.onTouched();\n this.selectionChange.emit(value);\n }\n\n onKeyDown(event: KeyboardEvent, _currentIndex: number): void {\n const enabledOptions = this.options().filter((opt) => !opt.disabled);\n const currentEnabledIndex = enabledOptions.findIndex(\n (opt) => opt.value === this.selectedValue(),\n );\n const prevIndex = currentEnabledIndex > 0 ? currentEnabledIndex - 1 : enabledOptions.length - 1;\n const nextIndex = currentEnabledIndex < enabledOptions.length - 1 ? currentEnabledIndex + 1 : 0;\n const lastOption = enabledOptions[enabledOptions.length - 1];\n\n switch (event.key) {\n case 'ArrowLeft':\n case 'ArrowUp':\n event.preventDefault();\n this.selectOption(enabledOptions[prevIndex].value);\n this.#focusOption(this.options().indexOf(enabledOptions[prevIndex]));\n break;\n\n case 'ArrowRight':\n case 'ArrowDown':\n event.preventDefault();\n this.selectOption(enabledOptions[nextIndex].value);\n this.#focusOption(this.options().indexOf(enabledOptions[nextIndex]));\n break;\n\n case 'Home':\n event.preventDefault();\n this.selectOption(enabledOptions[0].value);\n this.#focusOption(this.options().indexOf(enabledOptions[0]));\n break;\n\n case 'End':\n event.preventDefault();\n this.selectOption(lastOption.value);\n this.#focusOption(this.options().indexOf(lastOption));\n break;\n }\n }\n\n #focusOption(index: number): void {\n const optionElement = document.getElementById(this.generateId(index));\n optionElement?.focus();\n }\n\n #updateSliderProperties(): void {\n const options = this.options();\n if (options.length === 0) return;\n\n const selectedIndex = options.findIndex((opt) => opt.value === this.selectedValue());\n\n if (selectedIndex >= 0) {\n // Use CSS calc() for precise positioning with design system variables\n // Width: (100% - total padding) divided by number of options\n this.sliderWidth = `calc((100% - var(--ndw-spacing-xs)) / ${this.vertical() ? 1 : options.length})`;\n this.sliderHeight = `calc((100% - var(--ndw-spacing-xs)) / ${this.vertical() ? options.length : 1})`;\n\n // Position: left padding + (selected index * width of each option)\n this.sliderPosition = `calc(var(--ndw-spacing-2xs) + (${selectedIndex} * calc((100% - var(--ndw-spacing-xs)) / ${options.length})))`;\n }\n }\n\n readonly #componentId = crypto.randomUUID();\n\n generateId(index: number): string {\n return `${this.#componentId}-option-${index}`;\n }\n\n get componentName(): string {\n return `switcher-${this.#componentId}`;\n }\n}\n","<div\n class=\"switch-slider\"\n [style.width]=\"sliderWidth\"\n [style.height]=\"sliderHeight\"\n [style.left]=\"vertical() ? null : sliderPosition\"\n [style.top]=\"vertical() ? sliderPosition : null\"\n [attr.aria-hidden]=\"true\"\n></div>\n\n@for (option of options(); track option.value; let i = $index) {\n <label\n class=\"switch-option\"\n [class.active]=\"selectedValue() === option.value\"\n [class.disabled]=\"option.disabled || disabled()\"\n [attr.for]=\"generateId(i)\"\n >\n <input\n type=\"radio\"\n [id]=\"generateId(i)\"\n [name]=\"componentName\"\n [value]=\"option.value\"\n [checked]=\"selectedValue() === option.value\"\n [disabled]=\"option.disabled || disabled()\"\n (change)=\"selectOption(option.value)\"\n (keydown)=\"onKeyDown($event, i)\"\n [attr.aria-describedby]=\"option.disabled ? generateId(i) + '-disabled' : null\"\n class=\"switch-radio\"\n />\n @if (option.icon) {\n <ndw-icon>{{ option.icon }}</ndw-icon>\n }\n <div class=\"switch-label\">{{ option.label }}</div>\n\n @if (option.disabled) {\n <span [id]=\"generateId(i) + '-disabled'\" class=\"sr-only\"> (disabled) </span>\n }\n </label>\n}\n","import { TemplatePortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n input,\n OnInit,\n TemplateRef,\n viewChild,\n ViewContainerRef,\n} from '@angular/core';\n\n@Component({\n selector: 'ndw-tab',\n styleUrl: './tab.component.scss',\n templateUrl: './tab.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TabComponent implements OnInit {\n private readonly _viewContainerRef = inject(ViewContainerRef);\n private readonly _elementRef = inject(ElementRef);\n\n // Portal that will be the hosted content of the tab\n private _content: TemplatePortal | null = null;\n // Content inside the tab\n private readonly _contentTemplate = viewChild.required<TemplateRef<unknown>>('content');\n\n get content(): TemplatePortal | null {\n return this._content;\n }\n\n title = input.required<string>();\n disabled = input(false);\n hasError = input(false);\n icon = input<string | undefined>(undefined);\n active = false;\n id = input<string | number>(crypto.randomUUID());\n\n ngOnInit(): void {\n this._content = new TemplatePortal(this._contentTemplate(), this._viewContainerRef);\n }\n\n getNativeElement(): HTMLElement {\n return this._elementRef.nativeElement;\n }\n}\n","<!-- Create a template for the content of the <ndw-tab> so that we can grab a reference to this\n TemplateRef and use it in a Portal to render the tab content in the appropriate place in the\n tab-group. -->\n<ng-template #content><ng-content></ng-content></ng-template>\n","import {\n afterNextRender,\n afterRenderEffect,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChildren,\n DestroyRef,\n effect,\n ElementRef,\n inject,\n Injector,\n input,\n model,\n OnDestroy,\n signal,\n viewChild,\n viewChildren,\n} from '@angular/core';\n\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\nimport { NgClass } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { BadgeComponent } from '../badge';\nimport { ButtonDirective } from '../button';\nimport { IconComponent } from '../icon';\nimport { TabComponent } from '../tab';\n\n@Component({\n selector: 'ndw-tab-group',\n styleUrl: './tab-group.component.scss',\n templateUrl: './tab-group.component.html',\n imports: [CdkPortalOutlet, NgClass, BadgeComponent, ButtonDirective, IconComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TabGroupComponent implements OnDestroy {\n private readonly _injector = inject(Injector);\n private readonly _destroyRef = inject(DestroyRef);\n\n private readonly _tabs = contentChildren(TabComponent);\n private readonly _tabButtons = viewChildren<ElementRef>('tabButton');\n private readonly _tabGroupContainer = viewChild<ElementRef>('tabGroupContainer');\n\n hasPadding = input(false);\n activeTabId = model<string | number>();\n inlinePadding = input(0);\n\n // Scroll state signals\n private readonly _scrollLeft = signal(0);\n private readonly _scrollWidth = signal(0);\n private readonly _clientWidth = signal(0);\n\n tabs = computed(() =>\n this._tabs().map((tab) => {\n tab.active = tab.id() === this.activeTabId();\n return tab;\n }),\n );\n\n canScrollLeft = computed(() => this._scrollLeft() > 0);\n canScrollRight = computed(\n () => this._scrollLeft() < this._scrollWidth() - this._clientWidth() - 1,\n );\n\n private _resizeObserver?: ResizeObserver;\n\n constructor() {\n effect(() => {\n const tabs = this._tabs();\n const activeTab = this.activeTabId();\n if (activeTab === undefined && tabs.length) {\n const firstEnabledTab = tabs.find((tab) => !tab.disabled());\n if (firstEnabledTab) {\n this.activeTabId.set(firstEnabledTab.id());\n }\n }\n });\n\n effect(() => {\n const id = this.activeTabId();\n const tabs = this._tabs();\n\n tabs.forEach((tab) => {\n tab.active = tab.id() === id;\n });\n });\n\n // Setup scroll detection after render\n afterNextRender(\n () => {\n this._setupScrollDetection();\n },\n { injector: this._injector },\n );\n\n // Update the scroll state after tabs have changed\n afterRenderEffect(() => {\n this._tabs();\n const container = this._tabGroupContainer()?.nativeElement;\n if (container) {\n this._updateScrollState(container);\n }\n });\n }\n\n ngOnDestroy(): void {\n this._resizeObserver?.disconnect();\n }\n\n private _setupScrollDetection(): void {\n const container = this._tabGroupContainer()?.nativeElement;\n if (!container) return;\n\n this._updateScrollState(container);\n\n // Listen to scroll events\n fromEvent(container, 'scroll')\n .pipe(takeUntilDestroyed(this._destroyRef), debounceTime(50))\n .subscribe(() => {\n this._updateScrollState(container);\n });\n\n // Observe resize\n this._resizeObserver = new ResizeObserver(() => {\n this._updateScrollState(container);\n });\n this._resizeObserver.observe(container);\n }\n\n private _updateScrollState(container: HTMLElement): void {\n this._scrollLeft.set(container.scrollLeft);\n this._scrollWidth.set(container.scrollWidth);\n this._clientWidth.set(container.clientWidth);\n }\n\n scrollTo(direction: 'left' | 'right'): void {\n const container = this._tabGroupContainer()?.nativeElement;\n if (!container) return;\n\n const scrollAmount = 200; // Fixed scroll amount in pixels\n const newScrollLeft =\n direction === 'left'\n ? container.scrollLeft - scrollAmount\n : container.scrollLeft + scrollAmount;\n\n container.scrollTo({\n left: newScrollLeft,\n behavior: 'smooth',\n });\n }\n\n selectTab(index: number) {\n this.activeTabId.set(this._tabs()?.[index].id());\n const tabButtons = this._tabButtons();\n if (tabButtons[index]?.nativeElement) {\n tabButtons[index]?.nativeElement.focus();\n }\n }\n\n onKeyDown(event: KeyboardEvent) {\n const tabCount = this.tabs().length;\n const currentIndex = this._tabs().findIndex((tab) => tab.id() === this.activeTabId());\n\n switch (event.key) {\n case 'ArrowRight':\n this.selectTab(this.getNextEnabledIndex(tabCount, currentIndex, 1));\n break;\n case 'ArrowLeft':\n this.selectTab(this.getNextEnabledIndex(tabCount, currentIndex, -1));\n break;\n case 'Home':\n event.preventDefault();\n this.selectTab(this.getFirstEnabledIndex(tabCount));\n break;\n case 'End':\n event.preventDefault();\n this.selectTab(this.getLastEnabledIndex(tabCount));\n break;\n }\n }\n\n private getNextEnabledIndex(tabCount: number, start: number, step: number): number {\n for (let offset = 1; offset < tabCount; offset++) {\n const i = (start + step * offset + tabCount) % tabCount;\n if (!this.tabs()[i].disabled()) return i;\n }\n return start;\n }\n\n private getFirstEnabledIndex(tabCount: number): number {\n for (let i = 0; i < tabCount; i++) {\n if (!this.tabs()[i].disabled()) return i;\n }\n return 0;\n }\n\n private getLastEnabledIndex(tabCount: number): number {\n for (let i = tabCount - 1; i >= 0; i--) {\n if (!this.tabs()[i].disabled()) return i;\n }\n return tabCount - 1;\n }\n}\n","<div class=\"tab-group-wrapper\">\n <div #tabGroupContainer class=\"tab-group\" role=\"tablist\" [class.with-padding]=\"hasPadding()\">\n @for (tab of tabs(); track tab.id(); let i = $index) {\n <button\n #tabButton\n class=\"tab-button\"\n role=\"tab\"\n type=\"button\"\n [attr.active]=\"tab.active ? true : undefined\"\n [attr.aria-controls]=\"'tab-panel-' + tab.id\"\n [attr.aria-selected]=\"tab.active\"\n [disabled]=\"tab.disabled() ? true : null\"\n [id]=\"'tab-' + tab.id\"\n [tabindex]=\"tab.active ? 0 : -1\"\n (click)=\"selectTab(i)\"\n (keydown)=\"onKeyDown($event)\"\n >\n @if (tab.icon()) {\n <ndw-icon size=\"sm\">{{ tab.icon() }}</ndw-icon>\n }\n {{ tab.title() }}\n @if (tab.hasError()) {\n <ndw-badge [size]=\"'small'\" [variant]=\"'error'\" />\n }\n </button>\n }\n </div>\n\n @if (canScrollLeft()) {\n <button\n ndwButton\n secondary\n alternative\n extra-small\n class=\"scroll-arrow scroll-arrow-left\"\n type=\"button\"\n aria-label=\"Scroll naar links\"\n tabindex=\"-1\"\n (click)=\"scrollTo('left')\"\n >\n <ndw-icon>chevron_left</ndw-icon>\n </button>\n }\n\n @if (canScrollRight()) {\n <button\n ndwButton\n secondary\n alternative\n extra-small\n class=\"scroll-arrow scroll-arrow-right\"\n type=\"button\"\n aria-label=\"Scroll naar rechts\"\n tabindex=\"-1\"\n (click)=\"scrollTo('right')\"\n >\n <ndw-icon>chevron_right</ndw-icon>\n </button>\n }\n</div>\n@for (tab of tabs(); track tab.id(); let i = $index) {\n <div\n class=\"tab-content\"\n [ngClass]=\"{ 'is-hidden': !tab.active }\"\n [id]=\"'tab-panel-' + tab.id\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + tab.id\"\n [tabindex]=\"0\"\n >\n <ng-template [cdkPortalOutlet]=\"tab.content\"></ng-template>\n </div>\n}\n","import type { ThemeDefaultParams } from 'ag-grid-community';\n\nexport const ndwAgGridTheme: Partial<ThemeDefaultParams> = {\n accentColor: 'var(--ndw-color-info-500)',\n oddRowBackgroundColor: 'var(--ndw-color-grey-50)',\n backgroundColor: 'var(--ndw-color-white)',\n borderRadius: 'var(--ndw-border-radius-md)',\n cellFontFamily: 'var(--ndw-font-family-body)',\n fontFamily: 'inherit',\n fontSize: 'var(--ndw-font-size-sm)',\n headerBackgroundColor: 'var(--ndw-color-white)',\n headerFontFamily: 'var(--ndw-font-family-body)',\n headerFontSize: 'var(--ndw-font-size-xs)',\n headerFontWeight: 'var(--ndw-font-weight-bold)',\n headerRowBorder: {\n color: 'var(--ndw-color-grey-200)',\n style: 'solid',\n width: 'var(--ndw-border-size-md)',\n },\n headerTextColor: 'var(--ndw-color-text)',\n textColor: 'var(--ndw-color-text)',\n wrapperBorder: false,\n};\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n input,\n output,\n} from '@angular/core';\n\nimport { NgStyle } from '@angular/common';\nimport { IconComponent } from '../icon';\n\nexport interface ToastDimensions {\n width: number;\n height: number;\n}\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconComponent, NgStyle],\n selector: 'ndw-toast',\n styleUrl: './toast.component.scss',\n templateUrl: './toast.component.html',\n})\nexport class ToastComponent implements AfterViewInit {\n message = input.required<string>();\n closeButtonLabel = input('Sluit');\n id = input<string>();\n duration = input(5000);\n paused = input(false);\n showProgress = input(true);\n\n closed = output();\n elementDimensions = output<ToastDimensions>();\n\n #elementRef = inject(ElementRef);\n\n ngAfterViewInit(): void {\n this.elementDimensions.emit({\n width: this.#elementRef.nativeElement.offsetWidth,\n height: this.#elementRef.nativeElement.offsetHeight,\n });\n }\n}\n","<ndw-icon>info</ndw-icon>\n{{ message() }}\n<button\n ndwButton\n tertiary\n alternative\n extra-small\n (click)=\"closed.emit()\"\n [attr.aria-label]=\"closeButtonLabel()\"\n>\n <ndw-icon>close</ndw-icon>\n</button>\n<div\n class=\"progress-bar\"\n [ngStyle]=\"{\n 'animation-duration': duration() + 'ms',\n visibility: showProgress() ? 'visible' : 'hidden',\n }\"\n [class.paused]=\"paused()\"\n></div>\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n signal,\n viewChildren,\n} from '@angular/core';\n\nimport { NgStyle } from '@angular/common';\nimport { ToastComponent, ToastDimensions } from '../toast.component';\nimport { ToastService } from '../toast.service';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '(mouseenter)': 'pause()',\n '(mouseleave)': 'resume()',\n '[style.--total-toast-height]': 'totalHeightExcludingGaps() + \"px\"',\n '[style.--total-toast-count]': 'toastComponents().length',\n '[style.--max-toast-width]': 'maxToastWidth() + \"px\"',\n },\n imports: [ToastComponent, NgStyle],\n selector: 'ndw-toast-list',\n styleUrl: './toast-list.component.scss',\n templateUrl: './toast-list.component.html',\n})\nexport class ToastListComponent {\n protected readonly toastService = inject(ToastService);\n protected readonly toastComponents = viewChildren(ToastComponent);\n protected readonly toastDimensions = signal(new Map<string, ToastDimensions>());\n\n protected readonly toastOffsetHeights = computed(() => {\n const dimensions = this.toastDimensions();\n const components = this.toastComponents();\n\n return components\n .map((component) => component.id())\n .filter((id) => id !== null && id !== undefined)\n .reduce(\n (acc, id) => {\n const height = dimensions.get(id)?.height ?? 0;\n return [...acc, acc[acc.length - 1] + height];\n },\n [0],\n );\n });\n\n protected readonly firstToastHeight = computed(() => {\n const firstComponent = this.toastComponents()?.[0];\n const firstId = firstComponent?.id();\n const dimensions = this.toastDimensions();\n\n if (firstId === null || firstId === undefined) {\n return 0;\n }\n\n return dimensions.get(firstId)?.height ?? 0;\n });\n\n protected readonly totalHeightExcludingGaps = computed(() => {\n const heights = this.toastOffsetHeights();\n return heights.length > 0 ? heights[heights.length - 1] : 0;\n });\n\n protected readonly maxToastWidth = computed(() => {\n const dimensions = this.toastDimensions();\n const components = this.toastComponents();\n\n return components\n .map((component) => component.id())\n .filter((id) => id !== null && id !== undefined)\n .reduce((max, id) => {\n const width = dimensions.get(id)?.width ?? 0;\n return Math.max(max, width);\n }, 0);\n });\n\n protected setToastDimensions(id: string, dimensions: ToastDimensions) {\n this.toastDimensions.update((heights) => {\n heights.set(id, dimensions);\n return heights;\n });\n }\n\n protected pause() {\n this.toastService.pause();\n }\n\n protected resume() {\n this.toastService.resume();\n }\n}\n","@for (toast of toastService.toasts(); track toast.id) {\n <ndw-toast\n class=\"toast\"\n [class.hide-content]=\"!toastService.paused() && $index > 0\"\n [ngStyle]=\"{\n '--index': $index,\n '--offset-height': toastOffsetHeights()[$index] + 'px',\n '--first-toast-height': firstToastHeight() + 'px',\n }\"\n [id]=\"toast.id\"\n [closeButtonLabel]=\"toast.closeButtonLabel ?? 'Sluit'\"\n [message]=\"toast.message\"\n [duration]=\"toast.duration\"\n [paused]=\"toastService.paused()\"\n [showProgress]=\"toastService.paused() || $first\"\n (closed)=\"toastService.close(toast.id)\"\n (elementDimensions)=\"setToastDimensions(toast.id, $event)\"\n ></ndw-toast>\n}\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { inject, Injectable, Signal, signal } from '@angular/core';\nimport {\n BehaviorSubject,\n filter,\n interval,\n map,\n pairwise,\n skipWhile,\n startWith,\n switchMap,\n takeWhile,\n tap,\n} from 'rxjs';\n\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport { ToastListComponent } from './toast-list/toast-list.component';\n\ntype ToastId = string;\n\ninterface ToastData {\n id: ToastId;\n message: string;\n duration: number;\n remainingTime: number;\n closeButtonLabel?: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ToastService {\n readonly #maxToasts = 3;\n readonly #toasts = signal<ToastData[]>([]);\n readonly #overlay = inject(Overlay);\n\n readonly #paused$ = new BehaviorSubject(false);\n readonly #active$ = new BehaviorSubject(false);\n\n #overlayRef?: OverlayRef;\n paused = toSignal(this.#paused$, { initialValue: false });\n\n get toasts(): Signal<ToastData[]> {\n return this.#toasts;\n }\n\n constructor() {\n const getTimeElapsedWhileActiveAndNotPaused = () =>\n interval(50).pipe(\n startWith(0),\n map(() => Date.now()),\n pairwise(),\n takeWhile(() => this.#active$.getValue()),\n filter(() => !this.#paused$.getValue()),\n map(([previous, current]) => current - previous),\n );\n\n this.#active$\n .pipe(\n takeUntilDestroyed(),\n skipWhile((active) => !active),\n switchMap(() => getTimeElapsedWhileActiveAndNotPaused()),\n tap((elapsedMs) => this.#updateToastExpiration(elapsedMs)),\n )\n .subscribe();\n }\n\n /**\n * Close a toast by its ID. If no ID is provided, all toasts will be closed.\n */\n close(id?: string) {\n const isLastToast =\n this.#toasts().findIndex((toast) => toast.id === id) === this.toasts().length - 1;\n\n this.#removeToast(id);\n\n const hasRemainingToasts = this.#toasts().length > 0;\n if (!hasRemainingToasts) {\n this.#overlayRef?.detach();\n this.#active$.next(false);\n this.#paused$.next(false);\n }\n\n // When the last toast is closed, resume the timer. This prevents the timer from\n // being paused indefinitely when the last toast is closed as a result of a user\n // action (e.g., clicking the close button). Since that action will not trigger\n // the 'mouseleave' event on the toast list component,\n if (isLastToast) {\n this.#paused$.next(false);\n }\n }\n\n /**\n * Open a toast notification with the given message and optional duration.\n * @param message The message to display in the toast.\n * @param duration Optional duration in milliseconds for which the toast should be visible. Defaults to 5000ms.\n * @returns The ID of the created toast. Can be used to close the toast.\n */\n open(message: string, duration?: number, closeButtonLabel?: string): ToastId {\n const id = crypto.randomUUID();\n\n this.#addToast({\n id,\n message,\n duration: duration ?? 5000,\n remainingTime: duration ?? 5000,\n closeButtonLabel,\n });\n\n if (!this.#overlayRef) {\n this.#overlayRef = this.#overlay.create({\n scrollStrategy: this.#overlay.scrollStrategies.reposition(),\n positionStrategy: this.#overlay.position().global().top('1.5rem').centerHorizontally(),\n });\n }\n\n if (!this.#overlayRef.hasAttached()) {\n const toastListPortal = new ComponentPortal(ToastListComponent);\n this.#overlayRef.attach(toastListPortal);\n }\n\n this.#paused$.next(false);\n this.#active$.next(true);\n\n return id;\n }\n\n pause() {\n this.#paused$.next(true);\n }\n\n resume() {\n this.#paused$.next(false);\n }\n\n #removeToast(id?: ToastId) {\n this.#toasts.update((toasts) => toasts.filter((toast) => toast.id !== id));\n }\n\n #addToast(toast: ToastData) {\n this.#toasts.update((toasts) => [toast, ...toasts].slice(0, this.#maxToasts));\n }\n\n #updateToastExpiration(elapsedMs: number) {\n this.#toasts.update((toasts) =>\n toasts.map((toast) => ({ ...toast, remainingTime: toast.remainingTime - elapsedMs })),\n );\n\n this.#toasts().forEach((toast) => {\n if (toast.remainingTime <= 0) {\n this.close(toast.id);\n }\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ndwnu-design-system.mjs","sources":["../../../../libs/ndw/src/lib/components/badge/badge.component.ts","../../../../libs/ndw/src/lib/components/badge/badge.component.html","../../../../libs/ndw/src/lib/components/form-field/autosuggest/autosuggest.directive.ts","../../../../libs/ndw/src/lib/components/icon/icon.component.ts","../../../../libs/ndw/src/lib/components/icon/icon.component.html","../../../../libs/ndw/src/lib/components/form-field/autosuggest/autosuggest-option/autosuggest-option.component.ts","../../../../libs/ndw/src/lib/components/form-field/autosuggest/autosuggest-option/autosuggest-option.component.html","../../../../libs/ndw/src/lib/components/form-field/autosuggest/autosuggest-add-option/autosuggest-add-option.component.ts","../../../../libs/ndw/src/lib/components/form-field/autosuggest/autosuggest-add-option/autosuggest-add-option.component.html","../../../../libs/ndw/src/lib/components/form-field/autosuggest/autosuggest-panel/autosuggest-panel.component.ts","../../../../libs/ndw/src/lib/components/form-field/autosuggest/autosuggest-panel/autosuggest-panel.component.html","../../../../libs/ndw/src/lib/components/form-field/checkbox/checkbox.component.ts","../../../../libs/ndw/src/lib/components/form-field/checkbox/checkbox.component.html","../../../../libs/ndw/src/lib/components/form-field/checkbox-group/checkbox-group.component.ts","../../../../libs/ndw/src/lib/components/form-field/checkbox-group/checkbox-group.component.html","../../../../libs/ndw/src/lib/components/form-field/datepicker/datepicker-functions.ts","../../../../libs/ndw/src/lib/components/form-field/datepicker/calendar/get-date-week.ts","../../../../libs/ndw/src/lib/components/form-field/datepicker/calendar/calendar.component.ts","../../../../libs/ndw/src/lib/components/form-field/datepicker/calendar/calendar.component.html","../../../../libs/ndw/src/lib/components/popover/popover-trigger.directive.ts","../../../../libs/ndw/src/lib/components/tag/tag.component.ts","../../../../libs/ndw/src/lib/components/tag/tag.component.html","../../../../libs/ndw/src/lib/components/form-field/input/input.directive.ts","../../../../libs/ndw/src/lib/components/form-field/datepicker/datepicker.component.ts","../../../../libs/ndw/src/lib/components/form-field/datepicker/datepicker.component.html","../../../../libs/ndw/src/lib/components/form-field/error/error.component.ts","../../../../libs/ndw/src/lib/components/form-field/error/error.component.html","../../../../libs/ndw/src/lib/components/form-field/file-upload/mime-type-map.ts","../../../../libs/ndw/src/lib/components/form-field/file-upload/file-upload.component.ts","../../../../libs/ndw/src/lib/components/form-field/file-upload/file-upload.component.html","../../../../libs/ndw/src/lib/components/tooltip/tooltip.component.ts","../../../../libs/ndw/src/lib/components/tooltip/tooltip.component.html","../../../../libs/ndw/src/lib/components/tooltip/tooltip.directive.ts","../../../../libs/ndw/src/lib/components/form-field/input-button/input-button.component.ts","../../../../libs/ndw/src/lib/components/form-field/input-button/input-button.component.html","../../../../libs/ndw/src/lib/components/form-field/clear-search-button/clear-search-button.component.ts","../../../../libs/ndw/src/lib/components/form-field/clear-search-button/clear-search-button.component.html","../../../../libs/ndw/src/lib/components/form-field/form-field.constant.ts","../../../../libs/ndw/src/lib/components/form-field/form-field.model.ts","../../../../libs/ndw/src/lib/components/form-field/info/info.component.ts","../../../../libs/ndw/src/lib/components/form-field/info/info.component.html","../../../../libs/ndw/src/lib/components/form-field/input-icon/input-icon.component.ts","../../../../libs/ndw/src/lib/components/form-field/input-icon/input-icon.component.html","../../../../libs/ndw/src/lib/components/button/button.directive.ts","../../../../libs/ndw/src/lib/components/form-field/option-group/option.component.ts","../../../../libs/ndw/src/lib/components/form-field/option-group/option-group.component.ts","../../../../libs/ndw/src/lib/components/form-field/option-group/option-group.component.html","../../../../libs/ndw/src/lib/components/form-field/month-input/date-validators.ts","../../../../libs/ndw/src/lib/components/form-field/month-input/month-input-utils.ts","../../../../libs/ndw/src/lib/components/form-field/month-input/month-input.component.ts","../../../../libs/ndw/src/lib/components/form-field/month-input/month-input.component.html","../../../../libs/ndw/src/lib/components/form-field/picker-button/picker-button.component.ts","../../../../libs/ndw/src/lib/components/form-field/picker-button/picker-button.component.html","../../../../libs/ndw/src/lib/components/form-field/success/success.component.ts","../../../../libs/ndw/src/lib/components/form-field/success/success.component.html","../../../../libs/ndw/src/lib/components/form-field/form-field.component.ts","../../../../libs/ndw/src/lib/components/form-field/form-field.component.html","../../../../libs/ndw/src/lib/components/form-field/textarea/auto-grow.directive.ts","../../../../libs/ndw/src/lib/components/form-field/textarea/max-char.directive.ts","../../../../libs/ndw/src/lib/components/form-field/markdown-editor/markdown-editor.component.ts","../../../../libs/ndw/src/lib/components/form-field/markdown-editor/markdown-editor.component.html","../../../../libs/ndw/src/lib/components/form-field/markdown-editor/markdown-parser/markdown-parser.component.ts","../../../../libs/ndw/src/lib/components/form-field/radio-button/radio-button.component.ts","../../../../libs/ndw/src/lib/components/form-field/radio-button/radio-button.component.html","../../../../libs/ndw/src/lib/components/form-field/radio-group/radio-group.component.ts","../../../../libs/ndw/src/lib/components/form-field/radio-group/radio-group.component.html","../../../../libs/ndw/src/lib/components/pill/pill.component.ts","../../../../libs/ndw/src/lib/components/pill/pill.component.html","../../../../libs/ndw/src/lib/components/list-item/list-item.component.ts","../../../../libs/ndw/src/lib/components/list-item/list-item.component.html","../../../../libs/ndw/src/lib/components/collapsible/collapsible.component.ts","../../../../libs/ndw/src/lib/components/collapsible/collapsible.component.html","../../../../libs/ndw/src/lib/components/list/list.component.ts","../../../../libs/ndw/src/lib/components/list/list.component.html","../../../../libs/ndw/src/lib/components/accordion/accordion.service.ts","../../../../libs/ndw/src/lib/components/accordion/accordion.component.ts","../../../../libs/ndw/src/lib/components/accordion/accordion.component.html","../../../../libs/ndw/src/lib/components/alert/alert.component.ts","../../../../libs/ndw/src/lib/components/alert/alert.component.html","../../../../libs/ndw/src/lib/components/avatar/avatar.component.ts","../../../../libs/ndw/src/lib/components/avatar/avatar.component.html","../../../../libs/ndw/src/lib/components/banner/banner.component.ts","../../../../libs/ndw/src/lib/components/banner/banner.component.html","../../../../libs/ndw/src/lib/components/breadcrumb/breadcrumb.component.ts","../../../../libs/ndw/src/lib/components/breadcrumb/breadcrumb.component.html","../../../../libs/ndw/src/lib/components/breadcrumb-group/breadcrumb-group.component.ts","../../../../libs/ndw/src/lib/components/breadcrumb-group/breadcrumb-group.component.html","../../../../libs/ndw/src/lib/components/card/card-content/card-content.component.ts","../../../../libs/ndw/src/lib/components/card/card-content/card-content.component.html","../../../../libs/ndw/src/lib/components/card/card-footer/card-footer.component.ts","../../../../libs/ndw/src/lib/components/card/card-footer/card-footer.component.html","../../../../libs/ndw/src/lib/components/card/card.component.ts","../../../../libs/ndw/src/lib/components/card/card.component.html","../../../../libs/ndw/src/lib/components/card/card-header/card-header.component.ts","../../../../libs/ndw/src/lib/components/card/card-header/card-header.component.html","../../../../libs/ndw/src/lib/components/card/index.ts","../../../../libs/ndw/src/lib/components/dashboard-card/dashboard-card.component.ts","../../../../libs/ndw/src/lib/components/dashboard-card/dashboard-card.component.html","../../../../libs/ndw/src/lib/components/dropdown/dropdown.component.ts","../../../../libs/ndw/src/lib/components/dropdown/dropdown.component.html","../../../../libs/ndw/src/lib/components/edit-bar/edit-bar.component.ts","../../../../libs/ndw/src/lib/components/edit-bar/edit-bar.component.html","../../../../libs/ndw/src/lib/components/edit-bar/edit-bar-actions/edit-bar-actions.component.ts","../../../../libs/ndw/src/lib/components/edit-bar/edit-bar-actions/edit-bar-actions.component.html","../../../../libs/ndw/src/lib/components/edit-bar/edit-bar-message/edit-bar-message.component.ts","../../../../libs/ndw/src/lib/components/edit-bar/edit-bar-message/edit-bar-message.component.html","../../../../libs/ndw/src/lib/components/favorite/favorite.component.ts","../../../../libs/ndw/src/lib/components/favorite/favorite.component.html","../../../../libs/ndw/src/lib/components/guided-tour/guided-tour.config.ts","../../../../libs/ndw/src/lib/components/guided-tour/utils/buttons.ts","../../../../libs/ndw/src/lib/components/guided-tour/utils/dom.ts","../../../../libs/ndw/src/lib/components/guided-tour/guided-tour.service.ts","../../../../libs/ndw/src/lib/components/guided-tour/base-tour.service.ts","../../../../libs/ndw/src/lib/components/hoverable-list-item/hoverable-list-item.component.ts","../../../../libs/ndw/src/lib/components/hoverable-list-item/hoverable-list-item.component.html","../../../../libs/ndw/src/lib/components/key-value-list/key-value-list.component.ts","../../../../libs/ndw/src/lib/components/key-value-list/key-value-list.component.html","../../../../libs/ndw/src/lib/components/main-navigation/main-navigation-header/main-navigation-header.component.ts","../../../../libs/ndw/src/lib/components/main-navigation/main-navigation-header/main-navigation-header.component.html","../../../../libs/ndw/src/lib/components/main-navigation/main-navigation-menu/main-navigation-menu.component.ts","../../../../libs/ndw/src/lib/components/main-navigation/main-navigation-menu/main-navigation-menu.component.html","../../../../libs/ndw/src/lib/components/main-navigation/main-navigation.component.ts","../../../../libs/ndw/src/lib/components/main-navigation/main-navigation.component.html","../../../../libs/ndw/src/lib/components/layout/layout.component.ts","../../../../libs/ndw/src/lib/components/layout/layout.component.html","../../../../libs/ndw/src/lib/components/layout-banners/layout-banners.component.ts","../../../../libs/ndw/src/lib/components/layout-banners/layout-banners.component.html","../../../../libs/ndw/src/lib/components/loader/loader.component.ts","../../../../libs/ndw/src/lib/components/loader/loader.component.html","../../../../libs/ndw/src/lib/components/map-button/map-button.model.ts","../../../../libs/ndw/src/lib/components/map-button/map-button.component.ts","../../../../libs/ndw/src/lib/components/map-button/map-button.component.html","../../../../libs/ndw/src/lib/components/map-display/map-display-option/map-display-option.component.ts","../../../../libs/ndw/src/lib/components/map-display/map-display-option/map-display-option.component.html","../../../../libs/ndw/src/lib/components/map-display/map-display.component.ts","../../../../libs/ndw/src/lib/components/map-display/map-display.component.html","../../../../libs/ndw/src/lib/components/map-display/backgrounds.ts","../../../../libs/ndw/src/lib/components/map-display/layers.ts","../../../../libs/ndw/src/lib/components/map-legend/map-legend-option/map-legend-option.component.ts","../../../../libs/ndw/src/lib/components/map-legend/map-legend-option/map-legend-option.component.html","../../../../libs/ndw/src/lib/components/map-legend/map-legend-group/map-legend-group.component.ts","../../../../libs/ndw/src/lib/components/map-legend/map-legend-group/map-legend-group.component.html","../../../../libs/ndw/src/lib/components/map-legend/map-legend.component.ts","../../../../libs/ndw/src/lib/components/map-legend/map-legend.component.html","../../../../libs/ndw/src/lib/components/modal/modal-content/modal-content.component.ts","../../../../libs/ndw/src/lib/components/modal/modal-content/modal-content.component.html","../../../../libs/ndw/src/lib/components/modal/modal-footer/modal-footer.component.ts","../../../../libs/ndw/src/lib/components/modal/modal-footer/modal-footer.component.html","../../../../libs/ndw/src/lib/components/modal/modal.service.ts","../../../../libs/ndw/src/lib/components/modal/modal-header/modal-header.component.ts","../../../../libs/ndw/src/lib/components/modal/modal-header/modal-header.component.html","../../../../libs/ndw/src/lib/components/modal/modal.component.ts","../../../../libs/ndw/src/lib/components/modal/modal.component.html","../../../../libs/ndw/src/lib/components/modal/index.ts","../../../../libs/ndw/src/lib/components/multi-select/multi-select.component.ts","../../../../libs/ndw/src/lib/components/multi-select/multi-select.component.html","../../../../libs/ndw/src/lib/components/router-breadcrumbs/router-breadcrumbs.component.ts","../../../../libs/ndw/src/lib/components/router-breadcrumbs/router-breadcrumbs.component.html","../../../../libs/ndw/src/lib/components/splitter/splitter-drag-element.ts","../../../../libs/ndw/src/lib/components/splitter/splitter.component.ts","../../../../libs/ndw/src/lib/components/splitter/splitter.component.html","../../../../libs/ndw/src/lib/components/summary-card/summary-card.component.ts","../../../../libs/ndw/src/lib/components/summary-card/summary-card.component.html","../../../../libs/ndw/src/lib/components/summary-card/summary-card-action/summary-card-action.component.ts","../../../../libs/ndw/src/lib/components/summary-card/summary-card-action/summary-card-action.component.html","../../../../libs/ndw/src/lib/components/summary-card/summary-card-actions/summary-card-actions.component.ts","../../../../libs/ndw/src/lib/components/summary-card/summary-card-actions/summary-card-actions.component.html","../../../../libs/ndw/src/lib/components/summary-card/summary-card-content/summary-card-content.component.ts","../../../../libs/ndw/src/lib/components/summary-card/summary-card-header/summary-card-header.component.ts","../../../../libs/ndw/src/lib/components/summary-card/summary-card-header/summary-card-header.component.html","../../../../libs/ndw/src/lib/components/summary-card/summary-card-tags/summary-card-tags.component.ts","../../../../libs/ndw/src/lib/components/summary-card/summary-card-tag/summary-card-tag.component.ts","../../../../libs/ndw/src/lib/components/summary-card/summary-card-subtitle/summary-card-subtitle.component.ts","../../../../libs/ndw/src/lib/components/summary-card/summary-card-subtitle/summary-card-subtitle.component.html","../../../../libs/ndw/src/lib/components/switcher/switcher.component.ts","../../../../libs/ndw/src/lib/components/switcher/switcher.component.html","../../../../libs/ndw/src/lib/components/tab/tab.component.ts","../../../../libs/ndw/src/lib/components/tab/tab.component.html","../../../../libs/ndw/src/lib/components/tab-group/tab-group.component.ts","../../../../libs/ndw/src/lib/components/tab-group/tab-group.component.html","../../../../libs/ndw/src/lib/components/table/ag-grid-theme.ts","../../../../libs/ndw/src/lib/components/toast/toast.component.ts","../../../../libs/ndw/src/lib/components/toast/toast.component.html","../../../../libs/ndw/src/lib/components/toast/toast-list/toast-list.component.ts","../../../../libs/ndw/src/lib/components/toast/toast-list/toast-list.component.html","../../../../libs/ndw/src/lib/components/toast/toast.service.ts","../../../../libs/ndw/src/ndwnu-design-system.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { CoreBadgeComponent } from '@ndwnu/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 extends CoreBadgeComponent {}\n","@if (variant() === 'error') {\n !\n} @else if (value()) {\n @if (!displayLargeNumbers() && valueOutOfRange()) {\n <span class=\"dot\"></span>\n } @else {\n {{ value() }}\n }\n} @else {\n {{ value() }}\n}\n@if (ariaLabel()) {\n <span class=\"sr-only\">{{ ariaLabel() }}</span>\n}\n","import { Directive, forwardRef, input } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CoreAutosuggestDirective } from '@ndwnu/core';\n\nimport { AutosuggestPanelComponent } from './autosuggest-panel/autosuggest-panel.component';\n\n@Directive({\n host: {\n role: 'combobox',\n 'aria-autocomplete': 'list',\n 'aria-haspopup': 'true',\n autocomplete: 'off',\n '[attr.aria-activedescendant]': '(panelOpen && activeOption) ? activeOption.id : null',\n '[attr.aria-expanded]': 'panelOpen.toString()',\n '[attr.aria-owns]': '!panelOpen ? null : ndwAutosuggest()?.id',\n '(blur)': 'onTouched()',\n '(click)': 'handleClick()',\n '(focus)': 'handleFocus()',\n '(input)': 'handleInput($event)',\n '(keydown)': 'handleKeydown($event)',\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AutosuggestDirective),\n multi: true,\n },\n ],\n selector: 'input[ndwAutosuggest], textarea[ndwAutosuggest]',\n})\nexport class AutosuggestDirective extends CoreAutosuggestDirective<AutosuggestPanelComponent> {\n public readonly ndwAutosuggest = input.required<AutosuggestPanelComponent>();\n\n get autosuggest() {\n return this.ndwAutosuggest();\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { CoreIconComponent } from '@ndwnu/core';\n\n@Component({\n selector: 'ndw-icon',\n templateUrl: './icon.component.html',\n styleUrl: './icon.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'aria-hidden': 'true',\n class: 'material-symbols-rounded notranslate',\n translate: 'no',\n },\n})\nexport class IconComponent extends CoreIconComponent {}\n","<ng-content />\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { CoreAutosuggestOptionComponent, Image, MatchBoldPipe } from '@ndwnu/core';\n\nimport { IconComponent } from '../../../icon';\n\n@Component({\n selector: 'ndw-autosuggest-option',\n imports: [IconComponent, MatchBoldPipe],\n templateUrl: './autosuggest-option.component.html',\n styleUrl: './autosuggest-option.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'ndw-autosuggest-option',\n role: 'option',\n '[attr.aria-selected]': 'selected()',\n '[class.ndw-autosuggest-option--active]': 'active()',\n '[class.ndw-autosuggest-option--selected]': 'selected()',\n '[id]': 'id',\n '(click)': 'selectViaInteraction()',\n '(keydown)': 'handleKeydown($event)',\n },\n})\nexport class AutosuggestOptionComponent extends CoreAutosuggestOptionComponent {\n icon = input<string>();\n image = input<Image>();\n}\n","@if (icon(); as icon) {\n <ndw-icon>{{ icon }}</ndw-icon>\n}\n@if (image(); as image) {\n <img [alt]=\"image.alt\" [src]=\"image.src\" />\n}\n<span class=\"ndw-option-text\" [innerHTML]=\"label() | matchBold: searchTerm()\"></span>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { IconComponent } from '../../../icon';\nimport { CoreAutosuggestAddOptionComponent } from '@ndwnu/core';\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 class: 'ndw-autosuggest-option ndw-autosuggest-option--add',\n role: 'option',\n '[attr.aria-selected]': 'selected()',\n '[class.ndw-autosuggest-option--active]': 'active()',\n '[class.ndw-autosuggest-option--selected]': 'selected()',\n '(click)': 'selectViaInteraction()',\n '(keydown)': 'handleKeydown($event)',\n },\n})\nexport class AutosuggestAddOptionComponent extends CoreAutosuggestAddOptionComponent {}\n","<ndw-icon [size]=\"'sm'\">add</ndw-icon> Voeg <span class=\"truncate\">'{{ value().label }}'</span> toe\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { CoreAutosuggestPanelComponent } from '@ndwnu/core';\n\nimport { IconComponent } from '../../../icon';\nimport { AutosuggestAddOptionComponent } from '../autosuggest-add-option';\nimport { AutosuggestOptionComponent } from '../autosuggest-option';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n AutosuggestAddOptionComponent,\n AutosuggestOptionComponent,\n IconComponent,\n NgTemplateOutlet,\n ],\n selector: 'ndw-autosuggest',\n styleUrl: './autosuggest-panel.component.scss',\n templateUrl: './autosuggest-panel.component.html',\n})\nexport class AutosuggestPanelComponent extends CoreAutosuggestPanelComponent {}\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 [icon]=\"option.icon\"\n [image]=\"option.image\"\n [label]=\"option.label\"\n [value]=\"option\"\n [searchTerm]=\"searchTerm()\"\n />\n }\n @if (enableAddOption()) {\n @if (!!searchTerm().trim()) {\n <ndw-autosuggest-add-option\n #option\n [value]=\"createNewOption(searchTerm())\"\n (addOption)=\"addNewOption($event)\"\n />\n } @else if (!suggestions().length) {\n <ng-container *ngTemplateOutlet=\"emptyResults\"></ng-container>\n }\n }\n @if (hasMoreResults()) {\n <p class=\"ndw-autosuggest-panel__more-results\">\n {{ hiddenResultsText() }}\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 } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CoreCheckboxComponent } from '@ndwnu/core';\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 extends CoreCheckboxComponent implements ControlValueAccessor {\n public switch = input(false);\n public success = input(false);\n}\n","<input\n type=\"checkbox\"\n class=\"sr-only\"\n [id]=\"'checkbox-' + uuid\"\n [checked]=\"checked()\"\n [attr.aria-checked]=\"indeterminate() ? 'mixed' : checked()\"\n [disabled]=\"disabled()\"\n [required]=\"required()\"\n [indeterminate]=\"indeterminate()\"\n (change)=\"onInputChange($event)\"\n/>\n<label [for]=\"'checkbox-' + uuid\" [ngClass]=\"{ 'switch-text': switch() }\">\n <div\n aria-hidden=\"true\"\n [ngClass]=\"{ error: error(), success: success(), checkbox: !switch(), switch: switch() }\"\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 <span id=\"checkbox-label-{{ uuid }}\">\n <ng-content />\n </span>\n</label>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { CoreCheckboxGroupComponent } from '@ndwnu/core';\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 extends CoreCheckboxGroupComponent {}\n","<ng-content />\n","import {\n MatCalendarCellClassFunction,\n MatCalendarView,\n MatDatepickerIntl,\n} from '@angular/material/datepicker';\nimport { DatepickerMode } from './datepicker.model';\n\nexport function createDutchDatepickerIntl() {\n const intl = new MatDatepickerIntl();\n intl.calendarLabel = 'Kalender';\n intl.openCalendarLabel = 'Open kalender';\n intl.closeCalendarLabel = 'Sluit kalender';\n intl.comparisonDateLabel = 'Vergelijkingsdatum';\n intl.prevMonthLabel = 'Vorige maand';\n intl.nextMonthLabel = 'Volgende maand';\n intl.nextMultiYearLabel = 'Volgende jaren';\n intl.prevMultiYearLabel = 'Vorige jaren';\n intl.prevYearLabel = 'Vorig jaar';\n intl.nextYearLabel = 'Volgend jaar';\n intl.switchToMonthViewLabel = 'Schakel naar maandweergave';\n intl.switchToMultiYearViewLabel = 'Schakel naar jaartallenweergave';\n return intl;\n}\n\nfunction datesAreSameYear(d1: Date, d2: Date): boolean {\n return d1.getFullYear() === d2.getFullYear();\n}\n\nfunction datesAreSameMonth(d1: Date, d2: Date): boolean {\n return datesAreSameYear(d1, d2) && d1.getMonth() === d2.getMonth();\n}\n\nfunction datesAreSameDay(d1: Date, d2: Date): boolean {\n return datesAreSameMonth(d1, d2) && d1.getDate() === d2.getDate();\n}\n\nexport function toDateArray(value: Date | Date[] | null | undefined): Date[] {\n return [value].flat().filter((v): v is Date => v != null);\n}\n\nexport function toggleDates(current: Date[], toToggle: Date[]): Date[] {\n const toggled = [...current];\n\n toToggle.forEach((date) => {\n const index = toggled.findIndex((d) => areDatesEqual(d, date));\n\n if (index > -1) {\n toggled.splice(index, 1);\n } else {\n toggled.push(date);\n }\n });\n\n return toggled;\n}\n\nexport function getUniqueDates(dates: Date[]): Date[] {\n return dates.filter((date, index) => dates.findIndex((d) => areDatesEqual(d, date)) === index);\n}\n\nexport function compareDates(a: Date, b: Date): number {\n return a.getTime() - b.getTime();\n}\n\nexport function isDateBefore(a: Date, b: Date): boolean {\n return compareDates(a, b) < 0;\n}\n\nexport function isDateAfter(a: Date, b: Date): boolean {\n return compareDates(a, b) > 0;\n}\n\nexport function areDatesEqual(a: Date, b: Date): boolean {\n return compareDates(a, b) === 0;\n}\n\nexport function areDatesEqualInView(a: Date, b: Date, view: MatCalendarView) {\n switch (view) {\n case 'month':\n return datesAreSameDay(a, b);\n case 'year':\n return datesAreSameMonth(a, b);\n case 'multi-year':\n return datesAreSameYear(a, b);\n default:\n return false;\n }\n}\n\nexport function datesToInputValue(dates: Date[], mode: DatepickerMode): string {\n if (dates.length === 0) {\n return '';\n }\n\n switch (mode) {\n case 'month':\n return formatMonth(dates[0]);\n case 'single':\n return formatDate(dates[0]);\n case 'multiple':\n return dates.sort(compareDates).map(formatDate).join(', ');\n case 'range':\n return dates.slice(0, 2).map(formatDate).join(' - ');\n default:\n return '';\n }\n}\n\nfunction formatDate(date: Date): string {\n return new Intl.DateTimeFormat('nl-NL').format(date);\n}\n\nfunction formatMonth(date: Date): string {\n return new Intl.DateTimeFormat('nl-NL', { year: 'numeric', month: 'numeric' }).format(date);\n}\n\nexport function inputValueToDates(input: string, mode: DatepickerMode): Date[] {\n const parts = input.split(/[-,]/).map((part) => parseInt(part.trim(), 10));\n\n const parsed: (Date | null)[] = [];\n\n if (mode === 'month' && parts.length === 2) {\n const [month, year] = parts;\n parsed.push(createDate(year, month - 1, 1));\n } else if (mode === 'single' && parts.length === 3) {\n const [day, month, year] = parts;\n parsed.push(createDate(year, month - 1, day));\n } else if (mode === 'multiple' && parts.length % 3 === 0) {\n for (let i = 0; i < parts.length; i += 3) {\n const [day, month, year] = parts.slice(i, i + 3);\n parsed.push(createDate(year, month - 1, day));\n }\n } else if (mode === 'range' && parts.length === 6) {\n const [day1, month1, year1, day2, month2, year2] = parts;\n parsed.push(createDate(year1, month1 - 1, day1));\n parsed.push(createDate(year2, month2 - 1, day2));\n }\n\n return parsed.filter((date): date is Date => date != null);\n}\n\nexport function createDate(year: number, month: number, day: number): Date | null {\n const minValidYear = 1000;\n\n if (\n isNaN(year) ||\n isNaN(month) ||\n isNaN(day) ||\n year < minValidYear ||\n month < 0 ||\n month > 11 ||\n day < 1 ||\n day > 31\n ) {\n return null;\n }\n\n const date = new Date(year, month, day);\n return date.getFullYear() === year && date.getMonth() === month && date.getDate() === day\n ? date\n : null;\n}\n\nexport function datesToOutputValue(\n dates: Date | Date[] | null,\n mode: DatepickerMode,\n): Date | Date[] | null {\n const array = toDateArray(dates);\n\n switch (mode) {\n case 'single':\n case 'month':\n return array[0] ?? null;\n case 'multiple':\n return array;\n case 'range':\n return array.slice(0, 2);\n }\n}\n\nexport function getDateClassFn(\n dateWithIndicatorFn: (date: Date) => boolean,\n mode: DatepickerMode,\n selectedDates: Date[],\n): MatCalendarCellClassFunction<Date> {\n return (cellDate: Date, view: MatCalendarView) => {\n const classNames = ['ndw-date'];\n\n if (dateWithIndicatorFn(cellDate)) {\n classNames.push('ndw-date-indicator');\n }\n\n if (selectedDates.some((selectedDate) => areDatesEqualInView(cellDate, selectedDate, view))) {\n classNames.push('ndw-date-selected');\n }\n\n if (mode === 'range' && selectedDates.length === 2) {\n if (isDateBefore(selectedDates[0], cellDate) && isDateAfter(selectedDates[1], cellDate)) {\n classNames.push('ndw-date-in-range');\n }\n\n if (areDatesEqual(selectedDates[0], cellDate)) {\n classNames.push('ndw-date-range-start');\n }\n\n if (areDatesEqual(selectedDates[1], cellDate)) {\n classNames.push('ndw-date-range-end');\n }\n }\n\n return classNames;\n };\n}\n","const MS_PER_DAY = 24 * 60 * 60 * 1000;\nconst DAYS_IN_WEEK = 7;\n\nexport function getDateWeek(date: Date) {\n // Create a copy of the date object so we don't modify the original date\n const d = new Date(date.getTime());\n\n // Set to midnight on the nearest Thursday\n d.setHours(0, 0, 0, 0);\n d.setDate(d.getDate() + 3 - ((d.getDay() + 6) % DAYS_IN_WEEK));\n\n // January 4 is always in week 1.\n const week1 = new Date(d.getFullYear(), 0, 4);\n\n // Adjust to Thursday in week 1 and count number of weeks from date to week1.\n const diffMs = d.getTime() - week1.getTime();\n return (\n 1 + Math.round((diffMs / MS_PER_DAY - 3 + ((week1.getDay() + 6) % DAYS_IN_WEEK)) / DAYS_IN_WEEK)\n );\n}\n","/* eslint-disable max-lines */\nimport {\n afterRenderEffect,\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n ElementRef,\n forwardRef,\n input,\n model,\n OnDestroy,\n signal,\n Signal,\n viewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { MAT_DATE_LOCALE, provideNativeDateAdapter } from '@angular/material/core';\nimport {\n DateFilterFn,\n MatCalendar,\n MatDatepickerIntl,\n MatDatepickerModule,\n} from '@angular/material/datepicker';\nimport { noop } from 'rxjs';\nimport {\n areDatesEqual,\n compareDates,\n createDutchDatepickerIntl,\n datesToOutputValue,\n getDateClassFn,\n isDateAfter,\n isDateBefore,\n toDateArray,\n toggleDates,\n} from '../datepicker-functions';\nimport { DatepickerMode } from '../datepicker.model';\nimport { getDateWeek } from './get-date-week';\n\nconst rangePreviewClasses = {\n start: 'ndw-date-range-start-preview',\n end: 'ndw-date-range-end-preview',\n inside: 'ndw-date-in-range-preview',\n};\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatDatepickerModule],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CalendarComponent),\n multi: true,\n },\n { provide: MAT_DATE_LOCALE, useValue: 'nl-NL' },\n { provide: MatDatepickerIntl, useFactory: createDutchDatepickerIntl },\n provideNativeDateAdapter(),\n ],\n selector: 'ndw-calendar',\n styleUrl: './calendar.component.scss',\n templateUrl: './calendar.component.html',\n host: {\n '[class.elevated]': 'elevated()',\n '[class.show-week-numbers]': 'showWeekNumbers()',\n },\n})\nexport class CalendarComponent implements ControlValueAccessor, OnDestroy {\n readonly mode = input<DatepickerMode>('single');\n readonly disabled = model<boolean>(false);\n readonly minDate = input<Date | null>(null);\n readonly maxDate = input<Date | null>(null);\n readonly startAt = input<Date | null>(null);\n readonly dateEnabledFilter = input<DateFilterFn<Date | null>>(() => true);\n readonly dateWithIndicatorFilter = input<DateFilterFn<Date | null>>(() => false);\n readonly elevated = input(true);\n readonly showWeekNumbers = input(false);\n\n protected internalDateEnabledFilter = computed(() => {\n const disabled = this.disabled();\n const filter = this.dateEnabledFilter();\n\n return (date: Date | null) => !disabled && filter(date);\n });\n\n protected readonly calendar = viewChild(MatCalendar);\n protected readonly calendarElement: Signal<ElementRef<HTMLElement> | undefined> = viewChild(\n MatCalendar,\n {\n read: ElementRef<HTMLElement>,\n },\n );\n\n protected readonly value = signal<Date[]>([]);\n protected readonly startView = computed(() => (this.mode() === 'month' ? 'year' : 'month'));\n protected readonly dateClass = computed(() =>\n getDateClassFn(this.dateWithIndicatorFilter(), this.mode(), this.value()),\n );\n\n #onChange: (value: Date | Date[] | null) => void = noop;\n #mouseMoveListener: (() => void) | null = null;\n #calendarRowMutationObserver: MutationObserver | null = null;\n\n constructor() {\n afterRenderEffect(() => {\n const calendar = this.calendar();\n this.value(); // Depend on value changes.\n\n // Force the calendar to refresh the calendar view.\n // This is needed to redraw after setting classes on dates.\n calendar?.updateTodaysDate();\n });\n\n afterRenderEffect(() => {\n const calendar = this.calendar();\n const calendarElement = this.calendarElement()?.nativeElement;\n const showWeekNumbers = this.showWeekNumbers();\n\n if (calendar && calendarElement && showWeekNumbers) {\n this.addWeekNumberAttributes(calendarElement, calendar);\n } else {\n this.disconnectCalendarRowMutationObserver();\n }\n });\n\n effect(() => {\n const mode = this.mode();\n const element = this.calendarElement()?.nativeElement;\n const calendar = this.calendar();\n\n this.removeMouseMoveListener();\n\n if (mode !== 'range' || !element || !calendar) {\n return;\n }\n\n this.addMouseMoveListener(element, calendar);\n });\n }\n\n ngOnDestroy(): void {\n this.removeMouseMoveListener();\n this.disconnectCalendarRowMutationObserver();\n }\n\n private addMouseMoveListener(calendarElement: HTMLElement, calendar: MatCalendar<Date>) {\n this.#mouseMoveListener = () => this.addRangePreviewClasses(calendarElement, calendar);\n calendarElement.addEventListener('mousemove', this.#mouseMoveListener);\n }\n\n private removeMouseMoveListener() {\n if (this.#mouseMoveListener) {\n this.calendarElement()?.nativeElement.removeEventListener(\n 'mousemove',\n this.#mouseMoveListener,\n );\n this.#mouseMoveListener = null;\n }\n }\n\n private disconnectCalendarRowMutationObserver() {\n // Disconnect the MutationObserver. Check if the disconnect method exists to avoid\n // errors in the test environment (happy dom has a limited implementation).\n this.#calendarRowMutationObserver?.disconnect?.();\n }\n\n private addRangePreviewClasses(calendarElement: Element, calendar: MatCalendar<Date>) {\n const selection = this.value();\n const hovered = calendarElement.querySelector('.ndw-date:hover');\n\n if (calendar.currentView !== 'month' || selection.length !== 1 || !hovered) {\n calendarElement\n .querySelectorAll('.ndw-date')\n .forEach((btn) => this.removeRangePreviewClasses(btn));\n return;\n }\n\n const selectedDate = selection[0];\n const hoveredDate = getButtonDate(calendar, hovered);\n\n // Get all buttons between\n calendarElement.querySelectorAll('.ndw-date').forEach((btn) => {\n const btnDate = getButtonDate(calendar, btn);\n\n this.removeRangePreviewClasses(btn);\n\n if (\n (isDateAfter(btnDate, selectedDate) && isDateBefore(btnDate, hoveredDate)) ||\n (isDateBefore(btnDate, selectedDate) && isDateAfter(btnDate, hoveredDate))\n ) {\n btn.classList.add(rangePreviewClasses.inside);\n } else if (areDatesEqual(btnDate, selectedDate) && isDateAfter(hoveredDate, selectedDate)) {\n btn.classList.add(rangePreviewClasses.start);\n } else if (areDatesEqual(btnDate, selectedDate) && isDateBefore(hoveredDate, selectedDate)) {\n btn.classList.add(rangePreviewClasses.end);\n } else if (areDatesEqual(btnDate, hoveredDate) && isDateAfter(btnDate, selectedDate)) {\n btn.classList.add(rangePreviewClasses.end);\n } else if (areDatesEqual(btnDate, hoveredDate) && isDateBefore(btnDate, selectedDate)) {\n btn.classList.add(rangePreviewClasses.start);\n }\n });\n }\n\n private removeRangePreviewClasses(element: Element) {\n Object.values(rangePreviewClasses).forEach((cssClass) => {\n element.classList.remove(cssClass);\n });\n }\n\n /**\n * Adds a data attribute with the week number to each calendar row for styling purposes.\n * The week number is calculated based on the date of the first button in the row, which represents the first day of that week.\n *\n * A mutation observer is used to handle the dynamic rendering of calendar rows by Angular Material,\n * ensuring that the week numbers are correctly assigned whenever the calendar view changes (e.g., when navigating between months).\n */\n private addWeekNumberAttributes(calendarElement: Element, calendar: MatCalendar<Date>) {\n this.#calendarRowMutationObserver = new MutationObserver(() => {\n if (calendar.currentView !== 'month') {\n return;\n }\n\n const rows = calendarElement.querySelectorAll<HTMLTableRowElement>('tr[role=\"row\"]');\n\n rows.forEach((row) => {\n const firstButton = row.querySelector('button');\n if (firstButton) {\n const date = getButtonDate(calendar, firstButton);\n row.dataset['weekNumber'] = getDateWeek(date).toString();\n }\n });\n });\n\n // Check if the observe method exists to avoid errors in the test environment (happy dom has a limited implementation).\n this.#calendarRowMutationObserver.observe?.(calendarElement, {\n childList: true,\n subtree: true,\n });\n }\n\n protected onDateSelected(date: Date | Date[] | null, toggle = true) {\n const mode = this.mode();\n const dates = toDateArray(date);\n let selection: Date[];\n\n if (mode === 'multiple' && toggle) {\n selection = toggleDates(this.value(), dates);\n } else if (mode === 'range' && toggle) {\n const toggled = toggleDates(this.value(), dates);\n\n // When the user selected a third date, start a new range from that date.\n if (toggled.length > 2) {\n selection = toggled.slice(-1);\n } else {\n selection = toggled;\n }\n } else {\n selection = dates;\n }\n\n selection = selection.sort(compareDates);\n\n this.writeValue(selection);\n this.#onChange(datesToOutputValue(selection, mode));\n }\n\n protected onMonthSelected(date: Date) {\n if (this.mode() === 'month') {\n this.onDateSelected(date);\n }\n }\n\n writeValue(value: Date | Date[] | null): void {\n this.value.set(toDateArray(value));\n }\n\n registerOnChange(fn: (value: Date | Date[] | null) => void): void {\n this.#onChange = fn;\n }\n\n registerOnTouched(_fn: () => void): void {\n // noop\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n}\n\nfunction getButtonDate(calendar: MatCalendar<Date>, el: Element) {\n return new Date(\n calendar.activeDate.getFullYear() || 0,\n calendar.activeDate.getMonth() || 0,\n parseInt(el.textContent || '0', 10),\n );\n}\n","<mat-calendar\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [dateClass]=\"dateClass()\"\n [class.range-picker]=\"mode() === 'range'\"\n [class.month-picker]=\"mode() === 'month'\"\n [startView]=\"startView()\"\n [startAt]=\"startAt()\"\n [dateFilter]=\"internalDateEnabledFilter()\"\n (monthSelected)=\"onMonthSelected($event)\"\n (selectedChange)=\"onDateSelected($event)\"\n/>\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\nexport type PopoverPosition = 'nextToTriggerButton' | 'overTriggerButton';\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<PopoverPosition>('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: PopoverPosition): ConnectedPosition[] {\n let positions: ConnectedPosition[];\n\n if (popoverPosition === 'overTriggerButton') {\n positions = [\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 } else {\n positions = [\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 return [\n ...positions,\n ...positions.map(\n (position) =>\n ({\n ...position,\n overlayX: 'center',\n overlayY: 'center',\n }) satisfies ConnectedPosition,\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 type=\"button\" [disabled]=\"disabled()\" (click)=\"clicked.emit($event)\">\n <span class=\"sr-only\">{{ suffixAriaLabel() }}</span>\n <ndw-icon>{{ suffixIcon() }}</ndw-icon>\n</button>\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 get error(): boolean {\n return !!this.element.getAttribute('error');\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.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.updateRequiredAttribute();\n });\n\n fromEvent(this.element, 'blur')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.updateErrorAttribute();\n });\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(() => {\n this.setSelectPlaceholderAttribute();\n });\n\n this.setSelectPlaceholderAttribute();\n }\n\n public updateErrorAttribute(formFieldError?: boolean): void {\n if (this.control) {\n this.error = (this.control.invalid === true && this.control.touched) || !!formFieldError;\n }\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 { DatePipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n model,\n viewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { DateFilterFn, MatDatepickerModule } from '@angular/material/datepicker';\nimport { noop } from 'rxjs';\nimport { IconComponent } from '../../icon';\nimport { PopoverTriggerDirective } from '../../popover';\nimport { TagComponent } from '../../tag';\nimport { InputDirective } from '../input';\nimport { CalendarComponent } from './calendar/calendar.component';\nimport {\n compareDates,\n datesToInputValue,\n datesToOutputValue,\n getUniqueDates,\n inputValueToDates,\n toDateArray,\n} from './datepicker-functions';\nimport { DatepickerMode } from './datepicker.model';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FormsModule,\n MatDatepickerModule,\n InputDirective,\n IconComponent,\n PopoverTriggerDirective,\n CalendarComponent,\n TagComponent,\n DatePipe,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatepickerComponent),\n multi: true,\n },\n ],\n selector: 'ndw-datepicker',\n styleUrl: './datepicker.component.scss',\n templateUrl: './datepicker.component.html',\n})\nexport class DatepickerComponent implements ControlValueAccessor {\n readonly mode = input<DatepickerMode>('single');\n readonly required = input<boolean>(false);\n readonly disabled = model<boolean>(false);\n readonly placeholder = input<string>('Selecteer een datum');\n readonly openCalendarLabel = input<string>('Open kalender');\n readonly minDate = input<Date | null>(null);\n readonly maxDate = input<Date | null>(null);\n readonly dateEnabledFilter = input<DateFilterFn<Date | null>>(() => true);\n readonly dateWithIndicatorFilter = input<DateFilterFn<Date | null>>(() => false);\n readonly showWeekNumbers = input(false);\n\n // Used by the FormFieldComponent to set the success and error state.\n readonly input = viewChild.required(InputDirective);\n\n protected readonly popoverTrigger = viewChild.required(PopoverTriggerDirective);\n\n protected readonly value = model<Date[]>([]);\n protected readonly startAt = computed(() => {\n const value = this.value();\n return value.length > 0 ? value[value.length - 1] : null;\n });\n protected readonly formattedValue = computed(() => datesToInputValue(this.value(), this.mode()));\n protected readonly showTags = computed(() => this.mode() === 'multiple');\n\n #onChange: (value: Date | Date[] | null) => void = noop;\n\n protected onDateInput(input: string) {\n const parsed = inputValueToDates(input, this.mode());\n const merged = this.mode() === 'multiple' ? [...toDateArray(this.value()), ...parsed] : parsed;\n const filtered = getUniqueDates(\n merged.filter((date) => {\n const dateEnabledFilter = this.dateEnabledFilter();\n const minDate = this.minDate() ?? date;\n const maxDate = this.maxDate() ?? date;\n return (\n dateEnabledFilter(date) &&\n compareDates(date, minDate) >= 0 &&\n compareDates(date, maxDate) <= 0\n );\n }),\n );\n\n if (filtered.length > 0) {\n this.onDateSelected(filtered);\n } else {\n this.onDateSelected(null);\n }\n\n if (filtered.length === 0 || this.mode() === 'multiple') {\n this.input().element.value = '';\n }\n }\n\n protected removeDate(date: Date) {\n const filtered = this.value().filter((d) => d.getTime() !== date.getTime());\n this.onDateSelected(filtered);\n }\n\n protected onDateSelected(date: Date | Date[] | null) {\n const mode = this.mode();\n const dates = toDateArray(date).sort(compareDates);\n\n this.writeValue(dates);\n this.#onChange(datesToOutputValue(dates, mode));\n\n if (mode === 'single' || mode === 'month') {\n this.#closeCalendar();\n }\n\n if (!this.popoverTrigger().isOpen()) {\n this.input().control?.markAllAsTouched();\n this.input().updateErrorAttribute();\n }\n }\n\n protected onPopoverOpenChange(isOpen: boolean) {\n if (!isOpen) {\n this.input().control?.markAllAsTouched();\n this.input().updateErrorAttribute();\n }\n }\n\n #closeCalendar() {\n if (this.popoverTrigger().isOpen()) {\n this.popoverTrigger().isOpen.set(false);\n this.popoverTrigger().togglePopover();\n }\n }\n\n writeValue(value: Date | Date[] | null): void {\n this.value.set(toDateArray(value));\n }\n\n registerOnChange(fn: (value: Date | Date[] | null) => void): void {\n this.#onChange = fn;\n }\n\n registerOnTouched(_fn: () => void): void {\n // noop\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n}\n","<input\n ndwInput\n [value]=\"showTags() ? '' : formattedValue()\"\n (blur)=\"onDateInput($event.target.value)\"\n [min]=\"minDate()\"\n [max]=\"maxDate()\"\n [placeholder]=\"placeholder()\"\n [required]=\"required()\"\n [disabled]=\"disabled()\"\n/>\n\n<button\n ndwButton\n class=\"calendar-button\"\n type=\"button\"\n extra-small\n tertiary\n [ndwPopoverTrigger]=\"calendarTemplate\"\n [toggleOnClick]=\"true\"\n [attr.aria-label]=\"openCalendarLabel()\"\n [disabled]=\"disabled()\"\n (isOpenChange)=\"onPopoverOpenChange($event)\"\n>\n <ndw-icon>calendar_month</ndw-icon>\n</button>\n\n<ng-template #calendarTemplate>\n <ndw-calendar\n [ngModel]=\"value()\"\n (ngModelChange)=\"onDateSelected($event)\"\n [mode]=\"mode()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [startAt]=\"startAt()\"\n [dateEnabledFilter]=\"dateEnabledFilter()\"\n [dateWithIndicatorFilter]=\"dateWithIndicatorFilter()\"\n [elevated]=\"false\"\n [showWeekNumbers]=\"showWeekNumbers()\"\n />\n</ng-template>\n\n@if (showTags() && value().length > 0) {\n <div class=\"tag-container\">\n @for (value of value(); track value.getTime()) {\n <ndw-tag (clicked)=\"removeDate(value)\">{{ value | date: 'd-M-yyyy' }}</ndw-tag>\n }\n </div>\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-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","export const MIME_TYPE_MAP: Record<string, string> = {\n geojson: 'application/geo+json',\n tsv: 'text/tab-separated-values',\n};\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n computed,\n input,\n model,\n viewChild,\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';\nimport { MIME_TYPE_MAP } from './mime-type-map';\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 allowedFileTypeRegex = input<RegExp>();\n public readonly disabled = model(false);\n public readonly fileUploadText = input<FileUploadText>({\n dragText: 'Klik of sleep je bestanden hierheen',\n dragOverText: 'Laat los om te uploaden',\n });\n public readonly maxFileSizeInBytes = input(1000000);\n public readonly mimeTypeMap = input<Record<string, string>>({});\n public readonly readonly = input(false);\n public readonly uploadDate = input('');\n\n public readonly draggingOver = model(false);\n public readonly error = model(false);\n public readonly incorrectFileSize = model(false);\n public readonly incorrectFileType = model(false);\n public readonly selectedFile = model<File | null>();\n public readonly success = model(false);\n\n protected readonly canEdit = computed(\n () => !this.selectedFile() && !this.disabled() && !this.readonly(),\n );\n\n protected readonly displayText = computed(() => {\n const selectedFile = this.selectedFile();\n const draggingOver = this.draggingOver();\n const fileUploadText = this.fileUploadText();\n\n return selectedFile ? '' : draggingOver ? fileUploadText.dragOverText : fileUploadText.dragText;\n });\n\n public readonly fileInputElement = viewChild.required<ElementRef<HTMLInputElement>>('fileInput');\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 selectedFile = this.selectedFile();\n if (!selectedFile) {\n return;\n }\n\n const url = window.URL.createObjectURL(selectedFile);\n const linkElement = document.createElement('a');\n linkElement.href = url;\n linkElement.download = 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 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 public setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n\n private selectFile(file: File): void {\n if (!file) {\n return;\n }\n\n file = this.ensureFileType(file);\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 /**\n * Ensures that the provided File has a valid MIME type.\n *\n * NOTE: Some file extensions are not automatically mapped to a valid MIME type by the operating system.\n * In such cases, the MIME_TYPE_MAP in combination with the mimeTypeMap input is used to assign the correct MIME type.\n */\n private ensureFileType(file: File): File {\n if (file.type?.trim()) {\n return file;\n }\n\n const nameParts = file.name.split('.');\n if (nameParts.length < 2) {\n console.warn(`Unable to determine MIME type for \"${file.name}\". No file extension detected.`);\n return file;\n }\n\n const extension = nameParts.pop()?.toLowerCase();\n const combinedMimeTypeMap = { ...MIME_TYPE_MAP, ...this.mimeTypeMap() };\n const mimeType = extension && combinedMimeTypeMap[extension];\n if (mimeType) {\n return new File([file], file.name, { type: mimeType, lastModified: file.lastModified });\n }\n\n console.warn(\n `Unable to determine MIME type for \"${file.name}\". Unrecognized file extension \"${extension}\".`,\n );\n return file;\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 private readonly elementRef = inject(ElementRef);\n private readonly overlay = inject(Overlay);\n private readonly ariaDescriber = inject(AriaDescriber);\n\n public text = input.required<string>({ alias: 'ndwTooltip' });\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';\n\nimport { IconComponent } from '../../icon';\nimport { InputDirective } from '../input';\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 [attr.disabled]=\"disabled() || undefined\"\n (click)=\"onClick()\"\n>\n <span class=\"sr-only\">{{ ariaLabel() }}</span>\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';\n\nimport { InputDirective } from '../input';\nimport { InputButtonComponent } from '../input-button';\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 const INPUT_CONTAINER_CLASS = 'input-container';\n","export enum FormFieldElement {\n Dropdown = 'ndw-dropdown',\n Input = 'input',\n Select = 'select',\n Textarea = 'textarea',\n}\n\nexport type CheckType = 'checkbox' | 'radio';\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 { ChangeDetectionStrategy, Component } from '@angular/core';\n\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 { 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 } 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 public disabled = 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';\n\nimport { noop } from 'rxjs';\nimport { OptionGroupMode } from './option-group.model';\nimport { OptionComponent } from './option.component';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.error]': 'error() || null',\n '[attr.required]': 'isRequiredOrHasRequiredValidator',\n '[attr.success]': 'success() || null',\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 private readonly ngControl = inject(NgControl, { optional: true });\n\n public readonly error = input(false);\n public readonly readonly = input(false);\n public readonly fluid = input(false);\n public readonly fluidColumns = input<number | null>(null);\n public readonly mode = input<OptionGroupMode>('multiple');\n public readonly required = input(false);\n public readonly success = input(false);\n\n public readonly checkedValues = model<unknown[]>([]);\n public readonly disabled = model(false);\n\n protected readonly fluidColumnStyle = computed(() =>\n this.fluidColumns() ? `repeat(${this.fluidColumns()}, 1fr)` : null,\n );\n\n public readonly children = contentChildren(OptionComponent);\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 = noop;\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]=\"child.disabled() || disabled() || readonly() ? '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]=\"child.disabled() || disabled() || readonly()\"\n [readonly]=\"readonly()\"\n [checked]=\"checkedValues().includes(child.value())\"\n (change)=\"toggleValue(child.value())\"\n />\n {{ child.label() }}\n </label>\n}\n","import { ValidatorFn } from '@angular/forms';\n\nexport const minDateValidator: (min: Date) => ValidatorFn = (min) => {\n return (control) => {\n const value = control.value as Date | null;\n if (value && value < min) {\n return { minDate: { min } };\n }\n return null;\n };\n};\n\nexport const maxDateValidator: (max: Date) => ValidatorFn = (max) => {\n return (control) => {\n const value = control.value as Date | null;\n if (value && value > max) {\n return { maxDate: { max } };\n }\n return null;\n };\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(\n monthLabels: string[],\n year: number,\n minDate: Date,\n maxDate: Date,\n): { label: string; value: number; disabled: boolean }[] {\n return monthLabels.map((month, index) => {\n const monthMaxDate = new Date(year, index + 1, 0, 23, 59, 59, 999);\n const monthMinDate = new Date(year, index, 1);\n const disabled = monthMaxDate < minDate || monthMinDate > maxDate;\n\n return {\n label: month,\n value: index + 1,\n disabled,\n };\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 { 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';\nimport { maxDateValidator, minDateValidator } from './date-validators';\nimport { createMonthOptions, createYearRange } from './month-input-utils';\n\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { fromEvent, noop } from 'rxjs';\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 ButtonDirective,\n FormsModule,\n InputDirective,\n IconComponent,\n OptionGroupComponent,\n OptionComponent,\n PopoverTriggerDirective,\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 private readonly destroyRef = inject(DestroyRef);\n protected readonly ngControl = inject(NgControl, { optional: true });\n\n public readonly required = input(false);\n public readonly showMonthPickerLabel = input('Selecteer maand');\n public readonly placeholder = input('JJJJ-MM');\n public readonly yearPlaceholder = input('Jaar');\n public readonly minDate = input(new Date(2020, 0, 1));\n public readonly maxDate = input(new Date(2099, 11, 31));\n public readonly monthLabels = input(defaultMonthLabels);\n public readonly addValidators = input(true);\n\n public readonly disabled = model(false);\n public readonly readonly = input(false);\n protected readonly selectedYear = model(new Date().getFullYear());\n protected readonly selectedMonth = model<number | null>(null);\n\n public readonly inputElement = computed(() => this.input()?.element);\n protected readonly selectedDate = computed(() => {\n const year = this.selectedYear();\n const month = this.selectedMonth();\n return year && month ? new Date(year, month - 1, 1) : 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 years = computed(() => createYearRange(this.minDate(), this.maxDate()));\n protected readonly months = computed(() =>\n createMonthOptions(this.monthLabels(), this.selectedYear(), this.minDate(), this.maxDate()),\n );\n protected readonly isYearValid = computed(() => {\n const year = this.selectedYear();\n return year >= this.minDate().getFullYear() && year <= this.maxDate().getFullYear();\n });\n\n public readonly input = viewChild(InputDirective);\n\n protected showMonthPicker = false;\n\n private onChange: (value: Date | null) => void = noop;\n\n public constructor() {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public ngOnInit(): void {\n const input = this.input();\n if (input) {\n fromEvent(input.element, 'blur')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.updateErrorAttribute();\n });\n }\n\n if (this.ngControl?.control && this.addValidators()) {\n if (this.minDate()) {\n this.ngControl.control.addValidators(minDateValidator(this.minDate()));\n }\n\n if (this.maxDate()) {\n this.ngControl.control.addValidators(maxDateValidator(this.maxDate()));\n }\n\n this.ngControl.control.updateValueAndValidity();\n }\n }\n\n public updateErrorAttribute(formFieldError?: boolean): void {\n const input = this.input();\n if (input && this.ngControl) {\n this.ngControl.control?.markAsTouched();\n input.error = this.ngControl.invalid === true || !!formFieldError;\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 this.updateErrorAttribute();\n }\n\n protected onYearSelected(year: string): void {\n this.selectedYear.set(parseInt(year, 10));\n this.onChange(this.selectedDate());\n this.updateErrorAttribute();\n }\n\n protected onMonthSelected(month: number): void {\n this.selectedMonth.set(month);\n this.onChange(this.selectedDate());\n this.updateErrorAttribute();\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 #input\n ndwInput\n type=\"text\"\n minlength=\"6\"\n maxlength=\"7\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly()\"\n [placeholder]=\"placeholder()\"\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 [attr.aria-label]=\"showMonthPickerLabel() || undefined\"\n [disabled]=\"disabled() || readonly()\"\n [ndwPopoverTrigger]=\"monthPicker\"\n [popoverPosition]=\"'nextToTriggerButton'\"\n (click)=\"showMonthPicker = !showMonthPicker\"\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 [attr.error]=\"isYearValid() ? null : true\"\n />\n\n <ndw-option-group\n mode=\"single\"\n [fluid]=\"true\"\n [fluidColumns]=\"4\"\n [ngModel]=\"selectedMonth() ? [selectedMonth()] : []\"\n (ngModelChange)=\"onMonthSelected($event?.[0])\"\n >\n @for (month of months(); track month.value) {\n <ndw-option [label]=\"month.label\" [value]=\"month.value\" [disabled]=\"month.disabled\">\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 { InputType } from '@ndwnu/core';\n\nimport { FormFieldElement } from '../form-field.model';\nimport { InputDirective } from '../input';\nimport { InputButtonComponent } from '../input-button';\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';\nimport { InputType } from '@ndwnu/core';\n\nimport { IconComponent } from '../icon';\nimport { TooltipDirective } from '../tooltip';\n\nimport { ClearSearchButtonComponent } from './clear-search-button';\nimport { DatepickerComponent } from './datepicker';\nimport { ErrorComponent } from './error';\nimport { INPUT_CONTAINER_CLASS } from './form-field.constant';\nimport { FormFieldElement } from './form-field.model';\nimport { InfoComponent } from './info';\nimport { InputDirective } from './input';\nimport { InputIconComponent } from './input-icon';\nimport { MonthInputComponent } from './month-input';\nimport { PickerButtonComponent } from './picker-button';\nimport { SuccessComponent } from './success';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n ClearSearchButtonComponent,\n ErrorComponent,\n InfoComponent,\n InputIconComponent,\n IconComponent,\n NgTemplateOutlet,\n PickerButtonComponent,\n SuccessComponent,\n TooltipDirective,\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('');\n public readonly hideLabel = input(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 dateInput = contentChild(DatepickerComponent);\n protected readonly regularInput = contentChild(InputDirective);\n protected readonly input = computed(\n () => this.regularInput() ?? this.monthInput()?.input() ?? this.dateInput()?.input(),\n );\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();\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() || !!this.input()?.element.disabled;\n }\n\n private setInputErrorState(): void {\n this.input()?.updateErrorAttribute(!!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 >\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 { 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 {\n DestroyRef,\n Directive,\n ElementRef,\n OnDestroy,\n OnInit,\n Renderer2,\n afterNextRender,\n effect,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NgControl } from '@angular/forms';\n\n@Directive({\n selector: 'textarea[ndwMaxChar]',\n host: {\n '(input)': 'onInput()',\n },\n})\nexport class MaxCharDirective implements OnInit, OnDestroy {\n public ndwMaxChar = input<number>(0);\n public maxCharText = input<string>('');\n\n private readonly elementRef = inject(ElementRef);\n private readonly renderer = inject(Renderer2);\n private readonly destroyRef = inject(DestroyRef);\n\n private counterElement: HTMLElement | null = null;\n private originalParentStyle: CSSStyleDeclaration | null = null;\n private originalElementStyle: CSSStyleDeclaration | null = null;\n\n private get element(): HTMLTextAreaElement {\n return this.elementRef.nativeElement as HTMLTextAreaElement;\n }\n\n private get parentStyle() {\n if (!this.element.parentElement) {\n throw new Error('ndwMaxChar parent element not found');\n }\n return this.element.parentElement.style;\n }\n\n private readonly isRendered = signal(false);\n private readonly isDisabled = signal(false);\n private readonly ngControl = inject(NgControl, { optional: true });\n\n private disabledAttrObserver: MutationObserver | null = null;\n\n public constructor() {\n afterNextRender(() => this.isRendered.set(true));\n\n effect(() => {\n const isDisabled = this.isDisabled();\n const maxChars = this.ndwMaxChar();\n const isRendered = this.isRendered();\n\n if (!isRendered || !this.element.parentNode) {\n return;\n }\n\n if (maxChars > 0 && !isDisabled) {\n if (!this.counterElement) {\n this.addCounterElement();\n this.onInput();\n }\n } else {\n this.removeCounterElement();\n }\n });\n }\n\n public ngOnInit(): void {\n this.monitorDisabledState();\n this.isDisabled.set(this.element.disabled ?? this.ngControl?.disabled);\n }\n\n public ngOnDestroy(): void {\n this.disabledAttrObserver?.disconnect();\n }\n\n public onInput(): void {\n if (!this.counterElement) {\n return;\n }\n\n this.counterElement.textContent = `${this.element.value.length} /\n ${this.ndwMaxChar()} ${this.maxCharText()}`;\n if (this.element.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 monitorDisabledState() {\n this.disabledAttrObserver = new MutationObserver(() => {\n this.isDisabled.set(this.element.disabled);\n });\n this.disabledAttrObserver.observe(this.element, {\n attributes: true,\n attributeFilter: ['disabled'],\n });\n\n this.ngControl?.statusChanges?.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.isDisabled.set(this.element.disabled);\n });\n }\n\n private addCounterElement(): void {\n this.originalElementStyle = { ...this.element.style };\n this.originalParentStyle = { ...this.parentStyle };\n\n const counterElement = this.renderer.createElement('span') as HTMLSpanElement;\n counterElement.classList.add('max-char-counter');\n counterElement.style.boxSizing = 'border-box';\n counterElement.style.paddingBlockEnd = 'var(--ndw-spacing-xs)';\n counterElement.style.marginInline = 'var(--ndw-spacing-sm)';\n counterElement.style.position = 'absolute';\n counterElement.style.width = 'calc(100% - 2 * var(--ndw-spacing-sm))';\n counterElement.style.bottom = '0';\n\n this.parentStyle.display = 'block';\n this.parentStyle.position = 'relative';\n\n this.element.style.minHeight = 'calc(4rem)';\n this.element.style.paddingBottom = 'var(--ndw-spacing-xl)';\n this.element.style.scrollPaddingBottom = 'var(--ndw-spacing-lg)';\n\n this.renderer.appendChild(this.element.parentNode, counterElement);\n this.counterElement = counterElement;\n }\n\n private removeCounterElement(): void {\n this.renderer.removeChild(this.element.parentNode, this.counterElement);\n this.counterElement = null;\n\n this.parentStyle.display = this.originalParentStyle?.display ?? '';\n this.parentStyle.position = this.originalParentStyle?.position ?? '';\n\n this.element.style.minHeight = this.originalElementStyle?.minHeight ?? '';\n this.element.style.paddingBottom = this.originalElementStyle?.paddingBottom ?? '';\n this.element.style.scrollPaddingBottom = this.originalElementStyle?.scrollPaddingBottom ?? '';\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n CUSTOM_ELEMENTS_SCHEMA,\n inject,\n input,\n model,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormsModule,\n NgControl,\n ReactiveFormsModule,\n Validators,\n} from '@angular/forms';\n\nimport { AutoGrowDirective } from '../textarea';\nimport { IconComponent } from '../../icon';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconComponent, ReactiveFormsModule, FormsModule, AutoGrowDirective],\n selector: 'ndw-markdown-editor',\n styleUrls: ['./markdown-editor.component.scss'],\n templateUrl: './markdown-editor.component.html',\n host: {\n '[class.disabled]': 'disabled()',\n '[class.error]': 'error()',\n '[class.readonly]': 'readonly()',\n '[class.success]': 'success()',\n '[class.required]': 'isRequiredOrHasRequiredValidator',\n },\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class MarkdownEditorComponent implements ControlValueAccessor {\n private readonly ngControl = inject(NgControl, { optional: true });\n\n readonly uuid = input(crypto.randomUUID());\n readonly value = model('');\n readonly disabled = model(false);\n readonly error = input(false);\n readonly readonly = input(false);\n readonly success = input(false);\n readonly required = input(false);\n readonly toolbar = input([\n 'bold',\n 'header',\n 'italic',\n 'unordered-list',\n 'ordered-list',\n 'task-list',\n ]);\n\n readonly bold = computed(() => this.toolbar().includes('bold'));\n readonly header = computed(() => this.toolbar().includes('header'));\n readonly italic = computed(() => this.toolbar().includes('italic'));\n readonly quote = computed(() => this.toolbar().includes('quote'));\n readonly unorderedList = computed(() => this.toolbar().includes('unordered-list'));\n readonly orderedList = computed(() => this.toolbar().includes('ordered-list'));\n readonly taskList = computed(() => this.toolbar().includes('task-list'));\n\n public get isRequiredOrHasRequiredValidator(): boolean | null {\n return this.required() || this.ngControl?.control?.hasValidator(Validators.required)\n ? true\n : null;\n }\n\n constructor() {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n if (!customElements.get('markdown-toolbar')) {\n import('@github/markdown-toolbar-element');\n }\n }\n\n onChange(event: Event): void {\n this.value.set((event.target as HTMLTextAreaElement).value ?? '');\n }\n\n writeValue(value: string): void {\n this.value.set(value);\n }\n\n registerOnChange(fn: (value: string | null | undefined) => void): void {\n this.value.subscribe(fn);\n }\n\n registerOnTouched() {\n // noop\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n}\n","<markdown-toolbar [attr.for]=\"uuid()\" [attr.inert]=\"disabled() || readonly() ? '' : null\">\n @if (bold()) {\n <md-bold>\n <button ndwButton tertiary alternative title=\"Bold\" aria-label=\"Bold\">\n <ndw-icon>format_bold</ndw-icon>\n </button>\n </md-bold>\n }\n @if (header()) {\n <md-header>\n <button ndwButton tertiary alternative title=\"Title\" aria-label=\"Title\">\n <ndw-icon>title</ndw-icon>\n </button>\n </md-header>\n }\n @if (italic()) {\n <md-italic>\n <button ndwButton tertiary alternative title=\"Italic\" aria-label=\"Italic\">\n <ndw-icon>format_italic</ndw-icon>\n </button>\n </md-italic>\n }\n @if (quote()) {\n <md-quote>\n <button ndwButton tertiary alternative title=\"Quote\" aria-label=\"Quote\">\n <ndw-icon>format_quote</ndw-icon>\n </button>\n </md-quote>\n }\n @if (unorderedList()) {\n <md-unordered-list>\n <button ndwButton tertiary alternative title=\"Unordered list\" aria-label=\"Unordered list\">\n <ndw-icon>format_list_bulleted</ndw-icon>\n </button>\n </md-unordered-list>\n }\n @if (orderedList()) {\n <md-ordered-list>\n <button ndwButton tertiary alternative title=\"Ordered list\" aria-label=\"Ordered list\">\n <ndw-icon>format_list_numbered</ndw-icon>\n </button>\n </md-ordered-list>\n }\n @if (taskList()) {\n <md-task-list>\n <button ndwButton tertiary alternative title=\"Task list\" aria-label=\"Task list\">\n <ndw-icon>checklist</ndw-icon>\n </button>\n </md-task-list>\n }\n</markdown-toolbar>\n\n<textarea\n [id]=\"uuid()\"\n class=\"markdown-editor\"\n [value]=\"value()\"\n (input)=\"onChange($event)\"\n [disabled]=\"disabled()\"\n [readonly]=\"readonly()\"\n ndwAutoGrow\n></textarea>\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\nimport { marked } from 'marked';\nimport DOMPurify from 'dompurify';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [],\n selector: 'ndw-markdown-parser',\n host: {\n '[innerHTML]': 'parsedContent()',\n },\n template: '',\n})\nexport class MarkdownParserComponent {\n readonly content = input('');\n\n readonly parsedContent = computed(() => {\n const content = this.content();\n const escaped = content.replace(/</g, '<').replace(/>/g, '>');\n return DOMPurify.sanitize(marked.parse(escaped || '') as string);\n });\n}\n","import { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, input, model, signal } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CheckableComponent } from '@ndwnu/core';\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, CheckableComponent {\n public checked = model(false);\n public disabled = model(false);\n public error = input(false);\n public success = input(false);\n public required = input(false);\n public value = model();\n\n public name = signal<string | undefined>(undefined);\n\n public uuid = crypto.randomUUID();\n\n public onInputChange(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.checked.set(input.checked);\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 class=\"sr-only\"\n [id]=\"'radio-button-' + uuid\"\n [name]=\"name()\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [required]=\"required()\"\n (change)=\"onInputChange($event)\"\n/>\n<label tabindex=\"-1\" id=\"radio-button-label-{{ uuid }}\" [for]=\"'radio-button-' + uuid\">\n <div class=\"radio-button\" aria-hidden=\"true\" [ngClass]=\"{ error: error(), success: success() }\">\n @if (checked()) {\n <span class=\"check\"></span>\n }\n </div>\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';\nimport { checkRadioItems, setRadioItemsName } from '@ndwnu/core';\nimport { noop } from 'rxjs';\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 = noop;\n\n public ngAfterContentInit(): void {\n const radioButtons = [...this.radioButtons()];\n setRadioItemsName<RadioButtonComponent>(radioButtons, this.uuid);\n checkRadioItems<RadioButtonComponent>(radioButtons, this.onChange);\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 // noop\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n this.radioButtons().forEach((radio) => radio.disabled.set(isDisabled));\n }\n}\n","<ng-content />\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { CorePillComponent } from '@ndwnu/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'ndw-paragraph-md',\n },\n selector: 'ndw-pill',\n styleUrl: './pill.component.scss',\n templateUrl: './pill.component.html',\n})\nexport class PillComponent extends CorePillComponent {}\n","<ng-content />\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n input,\n model,\n output,\n signal,\n viewChild,\n} from '@angular/core';\nimport { CheckableComponent, PillColor } from '@ndwnu/core';\n\nimport { BadgeComponent } from '../badge';\nimport { CheckboxComponent, CheckType, RadioButtonComponent } from '../form-field';\nimport { IconComponent } from '../icon';\nimport { PillComponent } from '../pill';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'listitem',\n },\n imports: [\n BadgeComponent,\n CheckboxComponent,\n IconComponent,\n NgTemplateOutlet,\n PillComponent,\n RadioButtonComponent,\n ],\n selector: 'ndw-list-item',\n styleUrl: './list-item.component.scss',\n templateUrl: './list-item.component.html',\n})\nexport class ListItemComponent implements CheckableComponent {\n active = model(false);\n badgeValue = input<number>();\n displayLargeNumbers = input(false);\n buttonIcon = input<string>();\n buttonLabel = input<string>();\n checkable = input(false);\n checkType = input<CheckType>('checkbox');\n collapsible = input(false);\n disabled = input(false);\n indented = input(false);\n pillColor = input<PillColor>('green');\n pillLabel = input<string>();\n prefixIcon = input<string>();\n showButton = input(false);\n subtitle = input<string>();\n title = input<string>();\n\n buttonClicked = output<void>();\n\n checked = model(false);\n expanded = model(false);\n\n radioButton = viewChild(RadioButtonComponent);\n\n name = signal<string | undefined>(undefined);\n\n actionable = computed(() => this.checkable() || this.collapsible());\n\n constructor() {\n effect(() => {\n const name = this.name();\n if (name) {\n this.radioButton()?.name.set(name);\n }\n });\n }\n\n onButtonClick(event: Event) {\n event.stopPropagation();\n this.buttonClicked.emit();\n }\n\n onCheckClick(event: Event) {\n event.stopPropagation();\n }\n\n onListItemSelect() {\n if (this.collapsible()) {\n this.#toggleExpanded();\n return;\n }\n\n if (!this.indented()) {\n this.#toggleChecked();\n }\n }\n\n #toggleChecked() {\n this.checked.update((checked) => !checked);\n }\n\n #toggleExpanded() {\n this.expanded.update((expanded) => !expanded);\n }\n}\n","@if (actionable()) {\n <button\n ndw-list-item\n class=\"actionable\"\n [attr.active]=\"active() || undefined\"\n [attr.aria-expanded]=\"expanded()\"\n [attr.disabled]=\"disabled() || undefined\"\n [class.indented]=\"indented()\"\n (click)=\"onListItemSelect()\"\n >\n @if (checkable()) {\n @if (checkType() === 'radio') {\n <ndw-radio-button\n [disabled]=\"disabled()\"\n [class.readonly]=\"!collapsible() && !indented()\"\n [(checked)]=\"checked\"\n (click)=\"onCheckClick($event)\"\n />\n } @else {\n <ndw-checkbox\n [disabled]=\"disabled()\"\n [class.readonly]=\"!collapsible() && !indented()\"\n [(checked)]=\"checked\"\n (click)=\"onCheckClick($event)\"\n />\n }\n }\n <ng-container *ngTemplateOutlet=\"listItem\" />\n </button>\n} @else {\n <div ndw-list-item [class.indented]=\"indented()\">\n <ng-container *ngTemplateOutlet=\"listItem\" />\n </div>\n}\n\n<ng-template #listItem>\n @if (prefixIcon(); as prefix) {\n <ndw-icon class=\"affix\">{{ prefix }}</ndw-icon>\n }\n <ng-content />\n <div class=\"content\">\n @if (title(); as title) {\n <span class=\"title\">{{ title }}</span>\n }\n @if (subtitle(); as subtitle) {\n {{ subtitle }}\n }\n </div>\n @if (pillLabel(); as pillLabel) {\n <ndw-pill [color]=\"pillColor()\">{{ pillLabel }}</ndw-pill>\n }\n @if (badgeValue(); as badgeValue) {\n <ndw-badge [value]=\"badgeValue\" [displayLargeNumbers]=\"displayLargeNumbers()\" />\n }\n @if (showButton()) {\n <button\n ndwButton\n tertiary\n class=\"suffix-button\"\n [attr.aria-label]=\"buttonLabel()\"\n [attr.disabled]=\"disabled() || undefined\"\n (click)=\"onButtonClick($event)\"\n >\n <ndw-icon>{{ buttonIcon() }}</ndw-icon>\n </button>\n }\n @if (collapsible()) {\n <ndw-icon class=\"affix\" [class.expanded]=\"expanded()\">keyboard_arrow_down</ndw-icon>\n }\n</ng-template>\n","import { ChangeDetectionStrategy, Component, inject, input, model } from '@angular/core';\n\nimport { AccordionService } from '../accordion';\nimport { ListItemComponent } from '../list-item';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.expanded]': 'expanded()',\n '[class.open]': 'expanded()',\n '[class.closed]': '!expanded()',\n },\n imports: [ListItemComponent],\n selector: 'ndw-collapsible',\n styleUrl: './collapsible.component.scss',\n templateUrl: './collapsible.component.html',\n})\nexport class CollapsibleComponent {\n index = input.required<number>();\n title = input.required<string>();\n checkable = input(false);\n subtitle = input<string>();\n value = input<number>();\n displayLargeNumbers = input(false);\n\n expanded = model(false);\n\n private readonly accordionService = inject(AccordionService);\n\n private readonly uuid = crypto.randomUUID();\n readonly toggleUuid = `toggle-${this.uuid}`;\n readonly sectionUuid = `section-${this.uuid}`;\n\n toggle(): void {\n this.expanded.set(!this.expanded());\n\n if (this.expanded()) {\n this.accordionService.setExpandedCollapsible(this.index());\n }\n }\n}\n","<ndw-list-item\n [attr.aria-controls]=\"sectionUuid\"\n [badgeValue]=\"value()\"\n [displayLargeNumbers]=\"displayLargeNumbers()\"\n [checkable]=\"checkable()\"\n [collapsible]=\"true\"\n [expanded]=\"expanded()\"\n [subtitle]=\"subtitle()\"\n [title]=\"title()\"\n (expandedChange)=\"toggle()\"\n>\n <ng-content select=\"custom-header-content\" />\n</ndw-list-item>\n<section role=\"region\" class=\"content\" [id]=\"sectionUuid\" [attr.aria-labelledby]=\"toggleUuid\">\n <div>\n <ng-content />\n </div>\n</section>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n contentChildren,\n input,\n} from '@angular/core';\nimport { checkRadioItems, setRadioItemsName } from '@ndwnu/core';\n\nimport { ListItemComponent } from '../list-item';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'list',\n '[class.elevated]': 'elevated()',\n },\n selector: 'ndw-list',\n styleUrl: './list.component.scss',\n templateUrl: './list.component.html',\n})\nexport class ListComponent implements AfterContentInit {\n elevated = input(false);\n\n listItems = contentChildren(ListItemComponent);\n\n #uuid = crypto.randomUUID();\n\n ngAfterContentInit() {\n const items = [...this.listItems()];\n if (items.some((item) => !item.checkable() || item.checkType() !== 'radio')) {\n return;\n }\n\n setRadioItemsName<ListItemComponent>(items, this.#uuid);\n checkRadioItems<ListItemComponent>(items);\n }\n}\n","<ng-content />\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';\nimport { ListComponent } from '../list';\n\nimport { AccordionService } from './accordion.service';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [AccordionService],\n selector: 'ndw-accordion',\n templateUrl: './accordion.component.html',\n})\nexport class AccordionComponent extends ListComponent implements OnInit {\n readonly #accordionService = inject(AccordionService);\n readonly #destroyRef = inject(DestroyRef);\n\n collapseOthers = input(false);\n\n collapsibles = contentChildren(CollapsibleComponent);\n\n ngOnInit() {\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 { 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 // eslint-disable-next-line @angular-eslint/no-output-native\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 ndwButton alternative extra-small tertiary class=\"close-button\" (click)=\"onClose()\">\n <span class=\"sr-only\">Sluit melding</span>\n <ndw-icon>close</ndw-icon>\n </button>\n }\n</section>\n<ng-content />\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { IconComponent } from '../icon';\nimport { NgClass } from '@angular/common';\nimport { AvatarStatus, AvatarColor } from './avatar.model';\n\n@Component({\n host: {\n '[attr.color]': 'color()',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ndw-avatar',\n imports: [IconComponent, NgClass],\n styleUrl: './avatar.component.scss',\n templateUrl: './avatar.component.html',\n})\nexport class AvatarComponent {\n public status = input<AvatarStatus>('none');\n public initials = input(false);\n public color = input<AvatarColor>();\n}\n","<div class=\"content-wrapper\" role=\"img\" [attr.color]=\"color()\">\n <ng-content />\n</div>\n\n@if (status() !== 'none') {\n <div class=\"status-circle\"\n [ngClass]=\"{ approved: status() === 'approved', declined: status() === 'declined' }\">\n @if (status() === 'approved') {\n <ndw-icon>check</ndw-icon>\n } @else if (status() === 'declined') {\n <ndw-icon>close</ndw-icon>\n }\n </div>\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 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, positive 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 // eslint-disable-next-line @angular-eslint/no-output-native\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 protected 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 ndwButton alternative extra-small tertiary class=\"close-button\" (click)=\"onClose($event)\">\n <span class=\"sr-only\">Sluit melding</span>\n <ndw-icon>close</ndw-icon>\n</button>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { CoreBreadcrumbComponent } from '@ndwnu/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'link',\n },\n selector: 'ndw-breadcrumb',\n templateUrl: './breadcrumb.component.html',\n})\nexport class BreadcrumbComponent extends CoreBreadcrumbComponent {}\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';\nimport { CoreBreadcrumbGroupComponent } from '@ndwnu/core';\n\nimport { BreadcrumbComponent } from '../breadcrumb';\nimport { IconComponent } from '../icon';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconComponent, NgTemplateOutlet, RouterLink],\n selector: 'ndw-breadcrumb-group',\n styleUrls: ['../breadcrumb/breadcrumb.component.scss', './breadcrumb-group.component.scss'],\n templateUrl: './breadcrumb-group.component.html',\n})\nexport class BreadcrumbGroupComponent extends CoreBreadcrumbGroupComponent<BreadcrumbComponent> {\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 {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n forwardRef,\n inject,\n InjectionToken,\n model,\n signal,\n} from '@angular/core';\nimport { CardHeaderComponent } from './card-header';\n\nexport const CARD_ID_TOKEN = new InjectionToken<string>('CARD_ID_TOKEN');\n\n@Component({\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 '[class.collapsible]': 'isCollapsable()',\n '[class.open]': '!isCollapsed()',\n '[class.closed]': 'isCollapsed()',\n '[style.--header-height]': 'this.headerHeight() + \"px\"',\n },\n})\nexport class CardComponent implements AfterContentInit {\n private readonly header = contentChild<CardHeaderComponent>(\n forwardRef(() => CardHeaderComponent),\n );\n\n protected readonly headerHeight = signal(0);\n\n public readonly cardId = inject(CARD_ID_TOKEN);\n\n public readonly isCollapsable = computed(() => this.header()?.isCollapsible() ?? false);\n public readonly 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","<div class=\"content\">\n <ng-content />\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n input,\n model,\n} from '@angular/core';\nimport { IconComponent } from '../../icon';\nimport { CARD_ID_TOKEN } from '../card.component';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ndw-card-header',\n imports: [IconComponent],\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 class=\"float\"\n type=\"button\"\n ndwButton\n extra-small\n tertiary\n [attr.aria-controls]=\"cardId\"\n [attr.aria-expanded]=\"!isCollapsed()\"\n [class.collapsed]=\"isCollapsed()\"\n (click)=\"toggleCollapsed()\"\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';\n\nimport { CardComponent, CardContentComponent } from '../card';\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('_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 {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n computed,\n input,\n output,\n viewChild,\n} from '@angular/core';\n\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, IconComponent, PopoverTriggerDirective, 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 @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","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n inject,\n input,\n OnDestroy,\n signal,\n viewChild,\n} from '@angular/core';\nimport { EditBarPosition, EditBarWidth } from './edit-bar.model';\nimport { NgTemplateOutlet } from '@angular/common';\n\n@Component({\n selector: 'ndw-edit-bar',\n imports: [NgTemplateOutlet],\n templateUrl: './edit-bar.component.html',\n styleUrl: './edit-bar.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[style.height]': 'height() + \"px\"',\n },\n})\nexport class EditBarComponent implements AfterViewInit, OnDestroy {\n readonly grid = input<boolean>(false);\n readonly position = input<EditBarPosition>('fixed');\n readonly positionFixedWidth = input<EditBarWidth>('layout');\n\n readonly editBar = viewChild.required<ElementRef<HTMLDivElement>>('editBar');\n\n readonly height = signal<number | null>(null);\n\n readonly #changeDetectorRef = inject(ChangeDetectorRef);\n\n #resizeObserver: ResizeObserver | undefined;\n\n ngAfterViewInit(): void {\n if (this.position() === 'fixed') {\n this.#observeEditBarHeightAndUpdateHostHeight();\n }\n }\n\n ngOnDestroy(): void {\n if (this.#resizeObserver) {\n this.#resizeObserver.unobserve(this.editBar().nativeElement);\n }\n }\n\n #observeEditBarHeightAndUpdateHostHeight(): void {\n this.#resizeObserver = new ResizeObserver((entries: ResizeObserverEntry[]): void => {\n this.height.set(entries[0].contentRect.height);\n this.#changeDetectorRef.markForCheck();\n });\n\n this.#resizeObserver.observe(this.editBar().nativeElement);\n }\n}\n","<div\n #editBar\n class=\"ndw-edit-bar\"\n [class.ndw-edit-bar--grid]=\"grid()\"\n [class.ndw-edit-bar--fixed]=\"position() === 'fixed'\"\n [class.ndw-edit-bar--absolute]=\"position() === 'absolute'\"\n [class.ndw-edit-bar--static]=\"position() === 'static'\"\n [class.ndw-edit-bar--sticky]=\"position() === 'sticky'\"\n [class.ndw-edit-bar--full-width]=\"positionFixedWidth() === 'full'\"\n [class.ndw-edit-bar--layout-width]=\"positionFixedWidth() === 'layout'\"\n>\n @if (grid()) {\n <div class=\"ndw-grid\">\n <div class=\"column-12\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n </div>\n } @else {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n }\n</div>\n\n<ng-template #content>\n <div class=\"ndw-edit-bar__inner\">\n <ng-content select=\"ndw-edit-bar-message\" />\n <ng-content select=\"ndw-edit-bar-actions\" />\n </div>\n</ng-template>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'ndw-edit-bar-actions',\n imports: [],\n templateUrl: './edit-bar-actions.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'ndw-edit-bar-actions',\n },\n})\nexport class EditBarActionsComponent {}\n","<ng-content />\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'ndw-edit-bar-message',\n imports: [],\n templateUrl: './edit-bar-message.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'ndw-edit-bar-message',\n },\n})\nexport class EditBarMessageComponent {}\n","<ng-content />\n","import { ChangeDetectionStrategy, Component, model } from '@angular/core';\nimport { IconComponent } from '../icon';\nimport { CoreFavoriteComponent } from '@ndwnu/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconComponent, CoreFavoriteComponent],\n selector: 'ndw-favorite',\n styleUrl: './favorite.component.scss',\n templateUrl: './favorite.component.html',\n})\nexport class FavoriteComponent {\n checked = model(false);\n}\n","<core-favorite [(checked)]=\"checked\">\n <ndw-icon [filled]=\"checked()\">favorite</ndw-icon>\n</core-favorite>\n","import { InjectionToken } from '@angular/core';\n\nexport const BROWSER_STORAGE = new InjectionToken<Storage>('Browser Storage', {\n providedIn: 'root',\n factory: () => localStorage,\n});\n\ntype ButtonColor = 'primary' | 'secondary' | 'tertiary';\ntype ButtonType = 'back' | 'cancel' | 'next';\n\nconst getButton = ({\n text,\n type,\n color,\n}: {\n text: string;\n type: ButtonType;\n color: ButtonColor;\n}) => ({\n text,\n type,\n classes: `${color}`,\n});\n\nexport const nextButton = getButton({ text: 'Volgende', type: 'next', color: 'primary' });\nexport const backButton = getButton({ text: 'Terug', type: 'back', color: 'secondary' });\nexport const cancelButton = getButton({ text: 'Sluit', type: 'cancel', color: 'tertiary' });\nexport const finishButton = getButton({ text: 'Klaar!', type: 'next', color: 'primary' });\n\nexport const defaultStepOptions = {\n classes: 'shepherd-theme-ndw',\n scrollTo: true,\n cancelIcon: {\n enabled: true,\n },\n};\n\n/**\n * Helper function to format step text with an optional image at the top.\n * When using this with an image, make sure to add 'shepherd-has-image' to the step's classes.\n *\n * @param text - The text content for the step (can be HTML)\n * @param imageUrl - Optional URL of the image to display at the top of the step\n * @param imageAlt - Optional alt text for the image (defaults to 'Tour step image')\n * @returns Formatted HTML string with image (if provided) and text\n *\n * @example\n * ```typescript\n * {\n * title: 'Welcome',\n * text: formatStepWithImage('Description', 'https://example.com/image.jpg'),\n * classes: 'shepherd-theme-ndw shepherd-has-image', // Add shepherd-has-image class\n * buttons: [nextButton]\n * }\n * ```\n */\nexport const formatStepWithImage = (\n text: string,\n imageUrl?: string,\n imageAlt = 'Tour step image',\n): string => {\n if (!imageUrl) {\n return text;\n }\n return `<img src=\"${imageUrl}\" alt=\"${imageAlt}\" class=\"shepherd-step-image\" />${text}`;\n};\n","import type { StepOptionsButton } from 'shepherd.js';\nimport type { GuidedTourService } from '../guided-tour.service';\n\nexport type ShepherdButton = StepOptionsButton & {\n type?: 'back' | 'cancel' | 'next';\n};\n\n/**\n * Creates a button of the specified type, with the given classes and text\n *\n * @param this The GuidedTourService instance to bind the button actions to\n * @param button The button configuration\n * @returns The constructed button\n */\nexport function makeButton(this: GuidedTourService, button: ShepherdButton) {\n const { classes, disabled, label, secondary, type, text } = button;\n const builtInButtonTypes = ['back', 'cancel', 'next'];\n\n if (!type) {\n return button;\n }\n\n if (!builtInButtonTypes.includes(type)) {\n throw new Error(\"'type' property must be one of 'back', 'cancel', or 'next'\");\n }\n\n return {\n action: this[type].bind(this),\n classes,\n disabled,\n label,\n secondary,\n text,\n };\n}\n","/**\n * Checks if an element is hidden from the user.\n * Detects: display:none, visibility:hidden, opacity:0, zero dimensions,\n * and hidden ancestors.\n *\n * @param element The element to check for visibility\n * @returns true if element is hidden\n */\nexport function elementIsHidden(element: HTMLElement): boolean {\n // Check if element has no dimensions (display: none or collapsed)\n if (element.offsetWidth === 0 && element.offsetHeight === 0) {\n return true;\n }\n\n const style = getComputedStyle(element);\n\n // Check CSS visibility properties\n if (style.display === 'none') {\n return true;\n }\n\n if (style.visibility === 'hidden' || style.visibility === 'collapse') {\n return true;\n }\n\n if (style.opacity === '0') {\n return true;\n }\n\n return false;\n}\n","import { Injectable } from '@angular/core';\nimport Shepherd, { StepOptions, TourOptions } from 'shepherd.js';\nimport { RequiredElement } from './models/guided-tour.model';\nimport { makeButton } from './utils/buttons';\nimport { elementIsHidden } from './utils/dom';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GuidedTourService {\n confirmCancel: TourOptions['confirmCancel'] = false;\n confirmCancelMessage?: TourOptions['confirmCancelMessage'];\n defaultStepOptions: StepOptions = {};\n errorTitle?: string;\n exitOnEsc: TourOptions['exitOnEsc'] = true;\n isActive = false;\n keyboardNavigation: TourOptions['keyboardNavigation'] = true;\n messageForUser: string | null = null;\n modal = false;\n requiredElements: RequiredElement[] = [];\n tourName: TourOptions['tourName'] = undefined;\n tourObject: InstanceType<typeof Shepherd.Tour> | null = null;\n\n back() {\n this.tourObject?.back();\n }\n\n cancel() {\n this.tourObject?.cancel();\n }\n\n complete() {\n this.tourObject?.complete();\n }\n\n hide() {\n this.tourObject?.hide();\n }\n\n next() {\n this.tourObject?.next();\n }\n\n /**\n * Show a specific step, by passing its id\n * @param id The id of the step you want to show\n */\n show(id: string | number) {\n this.tourObject?.show(id);\n }\n\n start() {\n this.isActive = true;\n this.tourObject?.start();\n }\n\n /**\n * Take a set of steps and create a tour object based on the current configuration\n * @param steps An array of steps\n */\n addSteps(steps: StepOptions[]) {\n this._initialize();\n const tour = this.tourObject;\n\n // Return nothing if there are no steps or if somehow there is no tour.\n if (!tour || !steps || !Array.isArray(steps) || steps.length === 0) {\n return;\n }\n\n if (!this.requiredElementsPresent()) {\n tour.addStep({\n buttons: [\n {\n text: 'Exit',\n action: tour.cancel,\n },\n ],\n id: 'error',\n title: this.errorTitle,\n text: [this.messageForUser as string],\n });\n return;\n }\n\n steps.forEach((step) => {\n if (step.buttons) {\n step.buttons = step.buttons.map(makeButton.bind(this), this);\n }\n\n tour.addStep(step);\n });\n }\n\n /**\n * Observes the array of requiredElements, which are the elements that must be present at the start of the tour,\n * and determines if they exist, and are visible, if either is false, it will stop the tour from executing.\n */\n private requiredElementsPresent() {\n let allElementsPresent = true;\n\n this.requiredElements.forEach((element) => {\n const selectedElement = document.querySelector(element.selector);\n\n if (\n allElementsPresent &&\n (!selectedElement || elementIsHidden(selectedElement as HTMLElement))\n ) {\n allElementsPresent = false;\n this.errorTitle = element.title;\n this.messageForUser = element.message;\n }\n });\n\n return allElementsPresent;\n }\n\n /**\n * Initializes the tour, creates a new Shepherd.Tour. sets options, and binds events\n */\n private _initialize() {\n const tourObject = new Shepherd.Tour({\n confirmCancel: this.confirmCancel,\n confirmCancelMessage: this.confirmCancelMessage,\n defaultStepOptions: this.defaultStepOptions,\n keyboardNavigation: this.keyboardNavigation,\n tourName: this.tourName,\n useModalOverlay: this.modal,\n exitOnEsc: this.exitOnEsc,\n });\n\n tourObject.on('complete', this.#onTourFinish.bind(this));\n tourObject.on('cancel', this.#onTourFinish.bind(this));\n\n this.tourObject = tourObject;\n }\n\n #onTourFinish() {\n this.isActive = false;\n }\n}\n","import { inject } from '@angular/core';\nimport { StepOptions } from 'shepherd.js';\nimport { BROWSER_STORAGE, defaultStepOptions, formatStepWithImage } from './guided-tour.config';\nimport { GuidedTourService } from './guided-tour.service';\nimport { NdwStepOptions, TourOptions } from './models/guided-tour.model';\n\n/**\n * Abstract base class for creating tour services with storage persistence.\n * Extend this class to create a tour that remembers if the user has already seen it.\n */\nexport abstract class BaseTourService {\n protected readonly guidedTourService = inject(GuidedTourService);\n protected readonly browserStorage = inject(BROWSER_STORAGE);\n\n protected abstract storageKey: string;\n protected abstract getTourSteps(): NdwStepOptions[];\n\n protected tourOptions: TourOptions = {\n modal: true,\n };\n\n /**\n * Converts NdwStepOptions to Shepherd StepOptions.\n * Processes image property and adds appropriate classes.\n */\n private processStepOptions(step: NdwStepOptions): StepOptions {\n const processedStep: StepOptions = { ...step };\n\n if (step.image) {\n // Use formatStepWithImage to add the image to the text\n processedStep.text = formatStepWithImage(step.text as string, step.image.url, step.image.alt);\n\n // Automatically add shepherd-has-image class\n const existingClasses = step.classes || '';\n const hasImageClass = 'shepherd-has-image';\n processedStep.classes = existingClasses\n ? `${existingClasses} ${hasImageClass}`\n : hasImageClass;\n }\n\n return processedStep;\n }\n\n startTour({ skipStorageCheck = false }: { skipStorageCheck?: boolean } = {}) {\n if (this.guidedTourService.isActive) {\n return;\n }\n if (!skipStorageCheck && this.browserStorage.getItem(this.storageKey) === 'true') {\n return;\n }\n this.#initShepherdTour();\n }\n\n #initShepherdTour() {\n this.guidedTourService.defaultStepOptions = defaultStepOptions;\n this.guidedTourService.modal = this.tourOptions.modal ?? true;\n\n const ndwSteps = this.getTourSteps();\n // Process NdwStepOptions to StepOptions (handle images, etc.)\n const processedSteps = ndwSteps.map((step) => this.processStepOptions(step));\n this.guidedTourService.addSteps(processedSteps);\n this.guidedTourService.start();\n\n this.guidedTourService.tourObject?.on('complete', () => this.onComplete());\n this.guidedTourService.tourObject?.on('cancel', () => this.onCancel());\n }\n\n /**\n * Called when the tour is completed.\n * By default, marks the tour as completed in storage.\n * Override this method to add custom completion logic.\n */\n protected onComplete() {\n this.browserStorage.setItem(this.storageKey, 'true');\n }\n\n /**\n * Called when the tour is cancelled.\n * By default, marks the tour as completed in storage.\n * Override this method to add custom cancellation logic.\n */\n protected onCancel() {\n this.browserStorage.setItem(this.storageKey, 'true');\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { Params, RouterLink } from '@angular/router';\n\nimport { IconComponent } from '../icon';\nimport { HoverableListItemAction } from './hoverable-list-item.model';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'listitem',\n },\n imports: [IconComponent, NgTemplateOutlet, RouterLink],\n selector: 'ndw-hoverable-list-item',\n styleUrl: './hoverable-list-item.component.scss',\n templateUrl: './hoverable-list-item.component.html',\n})\nexport class HoverableListItemComponent {\n actions = input<HoverableListItemAction[]>();\n disabled = input(false);\n path = input<string[]>();\n prefixIcon = input<string>();\n queryParams = input<Params>();\n subtitle = input<string>();\n title = input<string>();\n\n actionSelected = output<HoverableListItemAction>();\n selected = output<void>();\n\n onActionButtonClick(event: Event, action: HoverableListItemAction) {\n event.stopPropagation();\n if (action.callback) {\n action.callback();\n }\n\n if (!action.path) {\n this.actionSelected.emit(action);\n }\n }\n\n onButtonClick(event: Event) {\n event.stopPropagation();\n this.selected.emit();\n }\n}\n","@if (path(); as path) {\n <a\n ndw-list-item\n class=\"actionable\"\n [attr.aria-disabled]=\"disabled() || undefined\"\n [attr.tabindex]=\"disabled() ? -1 : 0\"\n [queryParams]=\"queryParams()\"\n [routerLink]=\"path\"\n >\n <ng-container *ngTemplateOutlet=\"listItem\" />\n </a>\n} @else {\n <button\n ndw-list-item\n class=\"actionable\"\n [attr.disabled]=\"disabled() || undefined\"\n (click)=\"onButtonClick($event)\"\n >\n <ng-container *ngTemplateOutlet=\"listItem\" />\n </button>\n}\n\n<ng-template #listItem>\n @if (prefixIcon(); as prefix) {\n <ndw-icon class=\"affix\">{{ prefix }}</ndw-icon>\n }\n <ng-content />\n <div class=\"content\">\n @if (title(); as title) {\n <span class=\"title\">{{ title }}</span>\n }\n @if (subtitle(); as subtitle) {\n {{ subtitle }}\n }\n </div>\n <div class=\"actions\">\n @for (action of actions(); track $index) {\n @if (action.path) {\n <a\n ndwButton\n tertiary\n extra-small\n [attr.aria-label]=\"action.label\"\n [queryParams]=\"action.queryParams\"\n [routerLink]=\"action.path\"\n (click)=\"onActionButtonClick($event, action)\"\n >\n <ndw-icon>{{ action.icon }}</ndw-icon>\n </a>\n } @else {\n <button\n ndwButton\n tertiary\n extra-small\n [attr.aria-label]=\"action.label\"\n (click)=\"onActionButtonClick($event, action)\"\n >\n <ndw-icon>{{ action.icon }}</ndw-icon>\n </button>\n }\n }\n </div>\n</ng-template>\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { CoreKeyValueListComponent } from '@ndwnu/core';\nimport { IconComponent } from '../icon';\nimport { TooltipDirective } from '../tooltip';\n\n@Component({\n selector: 'ndw-key-value-list',\n styleUrl: './key-value-list.component.scss',\n templateUrl: './key-value-list.component.html',\n imports: [IconComponent, NgTemplateOutlet, TooltipDirective],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class KeyValueListComponent extends CoreKeyValueListComponent {}\n","<dl\n [class.striped]=\"hasZebraStripes()\"\n [class.fluid]=\"fluid()\"\n [class.font-md]=\"fontSize() === 'md'\"\n [class.font-lg]=\"fontSize() === 'lg'\"\n>\n @for (keyValueRow of normalizedData(); track keyValueRow.key) {\n <dt>\n <ng-container *ngTemplateOutlet=\"cellData; context: { $implicit: keyValueRow.key }\" />\n </dt>\n <dd>\n <ng-container *ngTemplateOutlet=\"cellData; context: { $implicit: keyValueRow.value }\" />\n </dd>\n }\n</dl>\n\n<ng-template #cellData let-data>\n @if (data.url) {\n <a ndwLink target=\"_blank\" [href]=\"data.url\">\n {{ data.label }}\n <ndw-icon size=\"sm\">open_in_new</ndw-icon>\n </a>\n } @else {\n {{ data.label }}\n }\n\n @if (data.tooltip) {\n <ndw-icon class=\"tooltip-icon\" size=\"sm\" [ndwTooltip]=\"data.tooltip\">info</ndw-icon>\n }\n</ng-template>\n","import { ChangeDetectionStrategy, Component, computed, input, model } from '@angular/core';\nimport { RouterLink } from '@angular/router';\n\nimport { IconComponent } from '../../icon';\nimport { PillComponent } from '../../pill';\nimport { Environment } from '../main-navigation.model';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconComponent, PillComponent, RouterLink],\n selector: 'ndw-main-navigation-header',\n styleUrl: './main-navigation-header.component.scss',\n templateUrl: './main-navigation-header.component.html',\n})\nexport class MainNavigationHeaderComponent {\n applicationName = input.required<string>();\n isExpanded = input.required<boolean>();\n isMobile = input.required<boolean>();\n theme = input.required<string>();\n themeImagePath = input.required<string>();\n environment = input<Environment>();\n\n isMobileMenuOpen = model.required<boolean>();\n\n environmentColor = computed(() => {\n switch (this.environment()) {\n case 'Local':\n return 'gray';\n case 'Staging':\n return 'green';\n case 'Acceptance':\n return 'blue';\n default:\n return 'yellow';\n }\n });\n\n public toggleMobileMenu(): void {\n this.isMobileMenuOpen.update((open) => !open);\n }\n}\n","<header [class.expanded]=\"isExpanded() && !isMobile()\">\n <a routerLink=\"/\">\n <img [class]=\"theme()\" [src]=\"themeImagePath()\" [alt]=\"theme().toUpperCase() + ' logo'\" />\n @if (isExpanded() || isMobile()) {\n {{ applicationName() }}\n }\n </a>\n @if (environment()) {\n <ndw-pill [color]=\"environmentColor()\">\n {{ !isExpanded() || isMobile() ? environment()?.charAt(0) : environment() }}\n </ndw-pill>\n }\n @if (isMobile()) {\n <button ndwButton tertiary class=\"mobile-menu-button\" (click)=\"toggleMobileMenu()\">\n <ndw-icon>\n {{ isMobileMenuOpen() ? 'close' : 'menu' }}\n </ndw-icon>\n </button>\n }\n</header>\n","import { CdkMenu, CdkMenuItem, CdkMenuTrigger } from '@angular/cdk/menu';\nimport { ChangeDetectionStrategy, Component, input, output, signal } from '@angular/core';\nimport { RouterLink } from '@angular/router';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { BadgeComponent } from '../../badge';\nimport { IconComponent } from '../../icon';\nimport { TooltipDirective } from '../../tooltip';\nimport { MenuItem, SubMenuItem } from '../main-navigation.model';\n\n@Component({\n imports: [\n BadgeComponent,\n CdkMenu,\n CdkMenuItem,\n CdkMenuTrigger,\n IconComponent,\n RouterLink,\n NgTemplateOutlet,\n TooltipDirective,\n ],\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 isExpanded = input.required<boolean>();\n isMobile = input.required<boolean>();\n items = input.required<MenuItem[]>();\n\n closed = output();\n\n activeMobileItem = signal<MenuItem | undefined>(undefined);\n\n closeMobileMenu(item?: SubMenuItem) {\n item?.callback?.();\n this.setActiveMobileItem(undefined);\n this.closed.emit();\n }\n\n getItemKey(item: MenuItem | SubMenuItem) {\n return JSON.stringify(item);\n }\n\n handleMobileItemKeydown(event: KeyboardEvent, item: MenuItem) {\n if (event.key === 'Enter') {\n this.toggleActiveMobileItem(item);\n }\n\n if (this.activeMobileItem() !== item && event.key === 'ArrowRight') {\n this.setActiveMobileItem(item);\n }\n\n if (this.activeMobileItem() === item && event.key === 'ArrowLeft') {\n this.setActiveMobileItem(undefined);\n }\n }\n\n setActiveMobileItem(item: MenuItem | undefined) {\n this.activeMobileItem.set(item);\n }\n\n toggleActiveMobileItem(item: MenuItem) {\n item.callback?.();\n this.setActiveMobileItem(this.activeMobileItem() === item ? undefined : item);\n }\n}\n","<div cdkMenu class=\"menu\" [class.expanded]=\"isExpanded()\">\n @for (item of items(); track getItemKey(item)) {\n @if (!item.children) {\n @if (item.callback) {\n <button\n cdkMenuItem\n ndwButton\n menu\n [attr.active]=\"item.active ? true : null\"\n [ndwTooltip]=\"!isExpanded() ? item.label : ''\"\n (click)=\"closeMobileMenu(item)\"\n >\n <ndw-icon>{{ item.icon }}</ndw-icon>\n @if (isExpanded() || isMobile()) {\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: item }\" />\n }\n @if (!isExpanded() && item.notifications) {\n <ndw-badge class=\"expanded-badge\" [value]=\"item.notifications\" />\n }\n </button>\n } @else {\n <a\n cdkMenuItem\n ndwButton\n menu\n [attr.active]=\"item.active ? true : null\"\n [ndwTooltip]=\"!isExpanded() ? item.label : ''\"\n [queryParams]=\"item.queryParams\"\n [routerLink]=\"item.path\"\n (click)=\"closeMobileMenu()\"\n >\n <ndw-icon>{{ item.icon }}</ndw-icon>\n @if (isExpanded() || isMobile()) {\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: item }\" />\n }\n </a>\n }\n } @else {\n @if (isMobile()) {\n <button\n cdkMenuItem\n ndwButton\n menu\n [attr.active]=\"activeMobileItem() === item || undefined\"\n (click)=\"toggleActiveMobileItem(item)\"\n (keydown)=\"handleMobileItemKeydown($event, item)\"\n >\n <ndw-icon>{{ item.icon }}</ndw-icon>\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: item }\" />\n <ndw-icon class=\"suffix\">\n {{ activeMobileItem() !== item ? 'arrow_drop_down' : 'arrow_drop_up' }}\n </ndw-icon>\n </button>\n @if (activeMobileItem() === item) {\n @for (subItem of item.children; track getItemKey(subItem)) {\n @if (subItem.callback) {\n <button\n cdkMenuItem\n ndwButton\n menu\n [attr.active]=\"subItem.active ? true : null\"\n class=\"sub-menu-button\"\n (click)=\"closeMobileMenu(subItem)\"\n >\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: subItem }\" />\n </button>\n } @else {\n <a\n cdkMenuItem\n ndwButton\n menu\n class=\"sub-menu-button\"\n [attr.active]=\"subItem.active ? true : null\"\n [queryParams]=\"subItem.queryParams\"\n [routerLink]=\"subItem.path\"\n (click)=\"closeMobileMenu(subItem)\"\n >\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: subItem }\" />\n </a>\n }\n }\n }\n } @else {\n <button\n cdkMenuItem\n ndwButton\n menu\n [attr.active]=\"item.active ? true : null\"\n [ndwTooltip]=\"!isExpanded() ? item.label : ''\"\n [cdkMenuTriggerFor]=\"subMenu\"\n >\n <ndw-icon>{{ item.icon }}</ndw-icon>\n @if (isExpanded()) {\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: item }\" />\n <ndw-icon class=\"suffix\">arrow_right</ndw-icon>\n }\n </button>\n }\n\n <ng-template #subMenu>\n <div cdkMenu class=\"sub-menu\">\n @for (subItem of item.children; track getItemKey(subItem)) {\n @if (subItem.callback) {\n <button\n cdkMenuItem\n ndwButton\n menu\n [attr.active]=\"subItem.active ? true : null\"\n (click)=\"subItem.callback()\"\n >\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: subItem }\" />\n </button>\n } @else {\n <a\n cdkMenuItem\n ndwButton\n menu\n [attr.active]=\"subItem.active ? true : null\"\n [queryParams]=\"subItem.queryParams\"\n [routerLink]=\"subItem.path\"\n >\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: subItem }\" />\n </a>\n }\n }\n </div>\n </ng-template>\n }\n }\n</div>\n\n<ng-template #label let-item>\n {{ item.label }}\n @if (item.notifications) {\n <ndw-badge [value]=\"item.notifications\" />\n }\n</ng-template>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n model,\n Renderer2,\n signal,\n DOCUMENT,\n} from '@angular/core';\n\nimport { IconComponent } from '../icon';\nimport { Environment, MenuItem, Theme } from './main-navigation.model';\nimport { MainNavigationHeaderComponent } from './main-navigation-header';\nimport { MainNavigationMenuComponent } from './main-navigation-menu';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.expanded]': 'isExpanded()',\n '(window:resize)': 'onWindowResize()',\n },\n imports: [IconComponent, MainNavigationHeaderComponent, MainNavigationMenuComponent],\n selector: 'ndw-main-navigation',\n styleUrl: './main-navigation.component.scss',\n templateUrl: './main-navigation.component.html',\n})\nexport class MainNavigationComponent implements AfterViewInit {\n readonly #document = inject(DOCUMENT);\n readonly #renderer = inject(Renderer2);\n\n applicationName = input.required<string>();\n topMenuItems = input.required<MenuItem[]>();\n bottomMenuItems = input<MenuItem[]>();\n environment = input<Environment>();\n footerTexts = input<string[]>();\n isCollapsible = input(true);\n version = input<string>();\n\n isMobile = signal(false);\n isMobileMenuOpen = signal(false);\n theme = signal<Theme>('ndw');\n\n isExpanded = model(true);\n\n mobileMenuItems = computed(() => [...this.topMenuItems(), ...(this.bottomMenuItems() || [])]);\n themeImagePath = computed(() => {\n const variant = !this.isExpanded() || this.isMobile() ? '-short' : '';\n return `images/logos/${this.theme()}-logo${variant}.svg`;\n });\n\n ngAfterViewInit() {\n const theme = this.#document.documentElement.getAttribute('data-theme');\n if (theme) {\n this.theme.set(theme as Theme);\n }\n\n this.#toggleMainNavigationExpandedDataAttributeOnBody();\n this.onWindowResize();\n }\n\n closeMobileMenu() {\n this.isMobileMenuOpen.set(false);\n }\n\n onWindowResize() {\n const windowView = this.#document.defaultView;\n this.isMobile.set(windowView ? windowView.innerWidth <= 1024 : false);\n }\n\n toggleView() {\n this.isExpanded.update((expanded) => !expanded);\n this.#toggleMainNavigationExpandedDataAttributeOnBody();\n }\n\n #toggleMainNavigationExpandedDataAttributeOnBody(): void {\n this.#renderer.setAttribute(\n this.#document.body,\n 'data-main-navigation-expanded',\n this.isExpanded().toString(),\n );\n }\n}\n","<ndw-main-navigation-header\n [applicationName]=\"applicationName()\"\n [environment]=\"environment()\"\n [isExpanded]=\"isExpanded()\"\n [isMobile]=\"isMobile()\"\n [theme]=\"theme()\"\n [themeImagePath]=\"themeImagePath()\"\n [(isMobileMenuOpen)]=\"isMobileMenuOpen\"\n/>\n@if (!isMobile()) {\n <div class=\"content\">\n <main>\n <ndw-main-navigation-menu\n [isExpanded]=\"isExpanded()\"\n [isMobile]=\"isMobile()\"\n [items]=\"topMenuItems()\"\n (closed)=\"closeMobileMenu()\"\n />\n </main>\n <footer>\n @if (bottomMenuItems(); as bottomMenuItems) {\n <ndw-main-navigation-menu\n [isExpanded]=\"isExpanded()\"\n [isMobile]=\"isMobile()\"\n [items]=\"bottomMenuItems\"\n (closed)=\"closeMobileMenu()\"\n />\n }\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 </div>\n @if (isCollapsible() && !isMobile()) {\n <button ndwButton menu class=\"collapse-toggle\" (click)=\"toggleView()\">\n <ndw-icon>keyboard_double_arrow_right</ndw-icon>\n </button>\n }\n </footer>\n </div>\n} @else {\n @if (isMobileMenuOpen()) {\n <div class=\"content\">\n <main>\n <ndw-main-navigation-menu\n [isExpanded]=\"isExpanded()\"\n [isMobile]=\"isMobile()\"\n [items]=\"mobileMenuItems()\"\n (closed)=\"closeMobileMenu()\"\n />\n </main>\n </div>\n }\n}\n","import { CdkScrollable } from '@angular/cdk/scrolling';\nimport { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { Environment, MainNavigationComponent, MenuItem } 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 environment = input<Environment>();\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 [environment]=\"environment()\"\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","export const fontMapButtonIcons = [\n 'direction',\n 'gps',\n 'high-res',\n 'layers',\n 'polygon',\n 'search',\n 'zoom-in',\n 'zoom-out',\n 'mail',\n] as const;\n\nexport const svgMapButtonIcons = [\n 'add-traffic-sign',\n 'add-zone',\n 'download',\n 'hectometer',\n 'low-res',\n 'zoom-to-content',\n] as const;\n\nexport const mapButtonIcons = [...fontMapButtonIcons, ...svgMapButtonIcons] as const;\n\nexport type MapButtonIcon = (typeof mapButtonIcons)[number];\n","import { ChangeDetectionStrategy, Component, computed, input, output } from '@angular/core';\nimport { IconComponent } from '../icon/icon.component';\nimport { TooltipDirective } from '../tooltip';\nimport { MapButtonIcon, svgMapButtonIcons } from './map-button.model';\n\n@Component({\n selector: 'ndw-map-button',\n imports: [IconComponent, TooltipDirective],\n templateUrl: './map-button.component.html',\n styleUrl: './map-button.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MapButtonComponent {\n readonly icon = input.required<MapButtonIcon>();\n readonly active = input(false);\n readonly ariaLabel = input<string>();\n readonly disabled = input(false);\n\n readonly clicked = output<void>();\n\n protected readonly buttonIcon = computed(() => this.#icons[this.icon()]);\n protected readonly svgIcon = computed(() => {\n const svgIconNames: string[] = [...svgMapButtonIcons];\n const icon = this.icon();\n const active = this.active();\n\n if (svgIconNames.includes(icon)) {\n return active ? `${icon}-active` : icon;\n }\n\n return undefined;\n });\n\n protected readonly iconLabel = computed(() => {\n const ariaLabel = this.ariaLabel();\n const iconLabel = this.#iconLabels[this.icon()];\n return ariaLabel || iconLabel;\n });\n\n // Mapping from button icon names to Material icons or SVG icon IDs.\n readonly #icons: Record<MapButtonIcon, string> = {\n 'add-traffic-sign': 'add_traffic_sign',\n 'add-zone': 'add_zone',\n direction: 'explore',\n download: 'download',\n gps: 'my_location',\n hectometer: 'hectometer',\n 'high-res': 'high_res',\n layers: 'stacks',\n 'low-res': 'low_res',\n polygon: 'activity_zone',\n search: 'search',\n 'zoom-in': 'add',\n 'zoom-out': 'remove',\n 'zoom-to-content': 'zoom-to-content',\n mail: 'mail',\n };\n\n readonly #iconLabels: Record<MapButtonIcon, string> = {\n 'add-traffic-sign': 'Voeg verkeersbord toe',\n 'add-zone': 'Voeg een zone toe',\n direction: 'Herstel kaartrichting',\n download: 'Download kaartgegevens',\n gps: 'Ga naar mijn locatie',\n hectometer: 'Toon hectometrering',\n 'high-res': 'Hoge resolutie',\n layers: 'Kaartlagen',\n 'low-res': 'Lage resolutie',\n polygon: 'Selecteer een gebied',\n search: 'Zoeken',\n 'zoom-in': 'Zoom in',\n 'zoom-out': 'Zoom uit',\n 'zoom-to-content': 'Zoom naar inhoud',\n mail: 'Maak een melding',\n };\n}\n","<button\n class=\"map-control\"\n [class.active]=\"active()\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"iconLabel()\"\n (click)=\"clicked.emit()\"\n [ndwTooltip]=\"iconLabel()\"\n>\n @if (svgIcon()) {\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <use [attr.href]=\"'images/map-button-icons.svg#' + svgIcon()\"></use>\n </svg>\n } @else {\n <ndw-icon>{{ buttonIcon() }}</ndw-icon>\n }\n <div class=\"content-wrapper\">\n <ng-content />\n </div>\n</button>\n","import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport {\n DisplayOptionDirection,\n DisplayOptionType,\n MapDisplayOption,\n} from './map-display-option.model';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { IconComponent } from '../../icon';\n\n@Component({\n selector: 'ndw-map-display-option',\n imports: [NgTemplateOutlet, IconComponent],\n templateUrl: './map-display-option.component.html',\n styleUrl: './map-display-option.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MapDisplayOptionComponent {\n option = input.required<MapDisplayOption>();\n direction = input<DisplayOptionDirection>('row');\n type = input<DisplayOptionType>('checkbox');\n group = input<string | undefined>();\n\n selectionChange = output<MapDisplayOption>();\n}\n","@if (type() === 'button') {\n <button\n type=\"button\"\n [title]=\"option().description ?? ''\"\n [class.column]=\"direction() === 'column'\"\n (click)=\"selectionChange.emit(option())\"\n >\n <ng-container *ngTemplateOutlet=\"template\" />\n <span class=\"name\">{{ option().name }}</span>\n </button>\n} @else if (type() === 'radio' || type() === 'checkbox') {\n <label [class.column]=\"direction() === 'column'\" [title]=\"option().description ?? ''\">\n <input\n [type]=\"type()\"\n name=\"{{ group() }}\"\n [checked]=\"option().active\"\n (change)=\"selectionChange.emit(option())\"\n />\n <ng-container *ngTemplateOutlet=\"template\" />\n <span class=\"name\">{{ option().name }}</span>\n </label>\n} @else {\n <ng-container *ngTemplateOutlet=\"template\" />\n}\n\n<ng-template #template>\n @if (option().imageLink) {\n <img [src]=\"option().imageLink\" [alt]=\"option().name\" />\n } @else {\n <ndw-icon>stacks</ndw-icon>\n }\n</ng-template>\n","import { OverlayModule } from '@angular/cdk/overlay';\n\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n linkedSignal,\n model,\n OnInit,\n output,\n signal,\n} from '@angular/core';\nimport { IconComponent } from '../icon';\nimport { TagComponent } from '../tag';\nimport {\n MapBackgroundOption,\n MapDisplayOption,\n MapDisplayOptionComponent,\n} from './map-display-option';\n\n@Component({\n selector: 'ndw-map-display',\n imports: [MapDisplayOptionComponent, OverlayModule, IconComponent, TagComponent],\n templateUrl: './map-display.component.html',\n styleUrl: './map-display.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MapDisplayComponent implements OnInit {\n title = input<string>('Kaartweergave');\n backgroundsTitle = input<string>('Achtergrond');\n layersTitle = input<string>('Gegevens');\n enableClearLayers = input<boolean>(true);\n layerOptionType = input<'radio' | 'checkbox'>('checkbox');\n backgroundOptions = input<MapBackgroundOption[], MapBackgroundOption[]>([], {\n transform: (options: MapBackgroundOption[]): MapBackgroundOption[] =>\n (options ?? []).map((bg) => ({ ...bg })),\n });\n layerOptions = input<MapDisplayOption[], MapDisplayOption[]>([], {\n transform: (options: MapDisplayOption[]): MapDisplayOption[] =>\n (options ?? []).map((layer) => ({ ...layer })),\n });\n\n readonly backgroundChange = output<MapBackgroundOption>();\n readonly layerChange = output<MapDisplayOption>();\n readonly clearAllLayers = output<void>();\n\n readonly open = model(false);\n readonly htmlIsRendered = signal(false);\n readonly showPopover = computed(() => this.open() && this.htmlIsRendered());\n\n readonly linkedBackgroundOptions = linkedSignal(this.backgroundOptions);\n readonly activeBackgroundOption = computed(() =>\n this.linkedBackgroundOptions()?.find((opt) => opt.active),\n );\n\n readonly linkedLayerOptions = linkedSignal(this.layerOptions);\n readonly numberOfSelectedLayers = computed(\n () => this.linkedLayerOptions()?.filter((opt) => opt.active)?.length ?? 0,\n );\n\n constructor() {\n afterNextRender(() => this.htmlIsRendered.set(true));\n }\n\n ngOnInit() {\n this.#initBackgroundOptions();\n }\n\n selectBackground(option: MapDisplayOption) {\n this.linkedBackgroundOptions.update((options) =>\n options.map((opt) => ({ ...opt, active: opt.id === option.id })),\n );\n this.backgroundChange.emit(option as MapBackgroundOption);\n }\n\n toggleLayer(option: MapDisplayOption) {\n const isRadio = this.layerOptionType() === 'radio';\n\n if (isRadio) {\n this.#resetAllLayers();\n }\n\n this.linkedLayerOptions.update((options) =>\n options.map((opt) => {\n let newActive = !!opt.active;\n\n if (opt.id === option.id) {\n newActive = isRadio ? true : !opt.active;\n }\n\n const newOption = { ...opt, active: newActive };\n\n if (newOption.active !== opt.active) {\n this.layerChange.emit(newOption);\n }\n\n return newOption;\n }),\n );\n }\n\n clearLayers() {\n this.#resetAllLayers();\n this.clearAllLayers.emit();\n }\n\n #resetAllLayers(options?: { emitEvent: boolean }): void {\n const { emitEvent = true } = options || {};\n this.linkedLayerOptions.update((options) =>\n options.map((opt) => {\n const newOption = { ...opt, active: false };\n if (opt.active && emitEvent) {\n this.layerChange.emit(newOption);\n }\n return newOption;\n }),\n );\n }\n\n #initBackgroundOptions() {\n const options = this.linkedBackgroundOptions();\n const activeBackground = options?.find((opt) => opt.active);\n\n if (!activeBackground && options?.length) {\n this.selectBackground(options[0]);\n }\n }\n}\n","<div class=\"map-control\" [class.active]=\"open()\" cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\">\n @let activeBackground = activeBackgroundOption();\n @if (activeBackground) {\n <ndw-map-display-option [option]=\"activeBackground\" [type]=\"'none'\" />\n }\n\n <button class=\"content-wrapper\" type=\"button\" (click)=\"open.set(!open())\">\n {{ title() }}\n </button>\n\n @if (numberOfSelectedLayers() && enableClearLayers()) {\n <ndw-tag (clicked)=\"clearLayers()\">{{ numberOfSelectedLayers() }}</ndw-tag>\n }\n\n <ndw-icon class=\"map-control__chevron\">keyboard_arrow_down</ndw-icon>\n</div>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"showPopover()\"\n (detach)=\"open.set(false)\"\n (overlayOutsideClick)=\"open.set(false)\"\n>\n <div class=\"map-control-dropdown\">\n <header>\n <h3 class=\"ndw-paragraph-bold-lg\">{{ title() }}</h3>\n <button ndwButton tertiary type=\"button\" (click)=\"open.set(false)\">\n <ndw-icon>close</ndw-icon>\n <span class=\"sr-only\">Sluit {{ title() }}</span>\n </button>\n </header>\n\n <div class=\"map-control-dropdown__content\">\n @if (linkedBackgroundOptions().length) {\n <section class=\"map-control-dropdown__section\">\n <h4 class=\"ndw-paragraph-bold-md map-control-dropdown__subtitle\">\n {{ backgroundsTitle() }}\n </h4>\n <ul class=\"map-control-dropdown__backgrounds\">\n @for (backgroundOption of linkedBackgroundOptions(); track backgroundOption.id) {\n <li>\n <ndw-map-display-option\n [option]=\"backgroundOption\"\n [group]=\"'map-backgrounds'\"\n [type]=\"'radio'\"\n [direction]=\"'column'\"\n (selectionChange)=\"selectBackground($event)\"\n />\n </li>\n }\n </ul>\n </section>\n }\n\n @if (linkedLayerOptions().length) {\n <section class=\"map-control-dropdown__section\">\n <h4 class=\"ndw-paragraph-bold-md map-control-dropdown__subtitle\">{{ layersTitle() }}</h4>\n <ul>\n @for (layerOption of linkedLayerOptions(); track layerOption.id) {\n <li>\n <ndw-map-display-option\n [option]=\"layerOption\"\n [group]=\"'map-layers'\"\n [type]=\"layerOptionType()\"\n [direction]=\"'row'\"\n (selectionChange)=\"toggleLayer($event)\"\n />\n </li>\n }\n </ul>\n </section>\n }\n </div>\n </div>\n</ng-template>\n","import { MapBackgrounds } from './map-display-option/map-display-option.model';\n\nexport const MAP_BACKGROUND_IMAGES = {\n OSM_DEFAULT: 'images/map-backgrounds/osm-default.webp',\n OSM_BASIC: 'images/map-backgrounds/osm-basic.webp',\n OSM_COLOR_BLIND: 'images/map-backgrounds/osm-color-blind.webp',\n OSM_DARK: 'images/map-backgrounds/osm-dark.webp',\n OSM_NO_ROADS: 'images/map-backgrounds/osm-default-no-roads.webp',\n OSM_FCD_LINKS: 'images/map-backgrounds/osm-default-with-fcd-links_1-5.webp',\n OSM_FCD_ROADS: 'images/map-backgrounds/osm-default-with-fcd-roads.webp',\n OSM_FCD_SEGMENTS: 'images/map-backgrounds/osm-default-with-fcd-segments.webp',\n OSM_MST: 'images/map-backgrounds/osm-default-with-mst.webp',\n OSM_NWB_ROADS_WHITE: 'images/map-backgrounds/osm-default-with-nwb-roads-white.webp',\n OSM_NWB_ROADS: 'images/map-backgrounds/osm-default-with-nwb-roads.webp',\n OSM_DEFAULT_FULL: 'images/map-backgrounds/osm-default.webp',\n OSM_FRONT_DARK: 'images/map-backgrounds/osm-front-office-dark.webp',\n OSM_FRONT_LIGHT_NWB: 'images/map-backgrounds/osm-front-office-light-with-nwb-roads.webp',\n OSM_FRONT_LIGHT: 'images/map-backgrounds/osm-front-office-light.webp',\n OSM_GREEN: 'images/map-backgrounds/osm-green.webp',\n};\n\nexport const MAP_BACKGROUNDS: MapBackgrounds = {\n OSM_BASIC: {\n id: 'OSM_BASIC',\n name: 'Basis',\n imageLink: MAP_BACKGROUND_IMAGES.OSM_BASIC,\n style: 'https://maps.ndw.nu/styles/osm-basic.json',\n },\n OSM_DEFAULT: {\n id: 'OSM_DEFAULT',\n name: 'Standaard',\n description: 'Standaard',\n imageLink: MAP_BACKGROUND_IMAGES.OSM_DEFAULT,\n style: 'https://maps.ndw.nu/styles/osm-default.json',\n },\n OSM_COLOR_BLIND: {\n id: 'OSM_COLOR_BLIND',\n name: 'Kleuren',\n description: 'Kleurenblind',\n imageLink: MAP_BACKGROUND_IMAGES.OSM_COLOR_BLIND,\n style: 'https://maps.ndw.nu/styles/osm-color-blind.json',\n },\n OSM_DARK: {\n id: 'OSM_DARK',\n name: 'Donker',\n description: 'Donker',\n imageLink: MAP_BACKGROUND_IMAGES.OSM_DARK,\n style: 'https://maps.ndw.nu/styles/osm-dark.json',\n },\n OSM_NO_ROADS: {\n id: 'OSM_NO_ROADS',\n name: 'OSM N.R.',\n description: 'OSM zonder wegen',\n imageLink: MAP_BACKGROUND_IMAGES.OSM_NO_ROADS,\n style: 'https://maps.ndw.nu/styles/osm-default-no-roads.json',\n },\n OSM_FCD_LINKS: {\n id: 'OSM_FCD_LINKS',\n name: 'FCD L.',\n description: 'OSM met FCD links',\n imageLink: MAP_BACKGROUND_IMAGES.OSM_FCD_LINKS,\n style: 'https://maps.ndw.nu/styles/osm-default-with-fcd-links_1-5.json',\n },\n OSM_FCD_ROADS: {\n id: 'OSM_FCD_ROADS',\n name: 'FCD R.',\n description: 'OSM met FCD wegen',\n imageLink: MAP_BACKGROUND_IMAGES.OSM_FCD_ROADS,\n style: 'https://maps.ndw.nu/styles/osm-default-with-fcd-roads.json',\n },\n OSM_FCD_SEGMENTS: {\n id: 'OSM_FCD_SEGMENTS',\n name: 'FCD S.',\n description: 'OSM met FCD segmenten',\n imageLink: MAP_BACKGROUND_IMAGES.OSM_FCD_SEGMENTS,\n style: 'https://maps.ndw.nu/styles/osm-default-with-fcd-segments.json',\n },\n OSM_MST: {\n id: 'OSM_MST',\n name: 'OSM MST',\n description: 'OSM met MST',\n imageLink: MAP_BACKGROUND_IMAGES.OSM_MST,\n style: 'https://maps.ndw.nu/styles/osm-default-with-mst.json',\n },\n OSM_NWB_ROADS_WHITE: {\n id: 'OSM_NWB_ROADS_WHITE',\n name: 'NWB W.',\n description: 'OSM met NWB wegen (wit)',\n imageLink: MAP_BACKGROUND_IMAGES.OSM_NWB_ROADS_WHITE,\n style: 'https://maps.ndw.nu/styles/osm-default-with-nwb-roads-white.json',\n },\n OSM_NWB_ROADS: {\n id: 'OSM_NWB_ROADS',\n name: 'NWB',\n description: 'OSM met NWB',\n imageLink: MAP_BACKGROUND_IMAGES.OSM_NWB_ROADS,\n style: 'https://maps.ndw.nu/styles/osm-default-with-nwb-roads.json',\n },\n OSM_DEFAULT_FULL: {\n id: 'OSM_DEFAULT_FULL',\n name: 'Default',\n description: 'OSM standaard',\n imageLink: MAP_BACKGROUND_IMAGES.OSM_DEFAULT_FULL,\n style: 'https://maps.ndw.nu/styles/osm-default.json',\n },\n OSM_FRONT_DARK: {\n id: 'OSM_FRONT_DARK',\n name: 'OSM F.D.',\n description: 'OSM front office donker',\n imageLink: MAP_BACKGROUND_IMAGES.OSM_FRONT_DARK,\n style: 'https://maps.ndw.nu/styles/osm-front-office-dark.json',\n },\n OSM_FRONT_LIGHT_NWB: {\n id: 'OSM_FRONT_LIGHT_NWB',\n name: 'F.L. NWB',\n description: 'OSM front office licht met NWB wegen',\n imageLink: MAP_BACKGROUND_IMAGES.OSM_FRONT_LIGHT_NWB,\n style: 'https://maps.ndw.nu/styles/osm-front-office-light-with-nwb-roads.json',\n },\n OSM_FRONT_LIGHT: {\n id: 'OSM_FRONT_LIGHT',\n name: 'F.L.',\n description: 'OSM front office licht',\n imageLink: MAP_BACKGROUND_IMAGES.OSM_FRONT_LIGHT,\n style: 'https://maps.ndw.nu/styles/osm-front-office-light.json',\n },\n OSM_GREEN: {\n id: 'OSM_GREEN',\n name: 'OSM G.',\n description: 'OSM groen',\n imageLink: MAP_BACKGROUND_IMAGES.OSM_GREEN,\n style: 'https://maps.ndw.nu/styles/osm-green.json',\n },\n};\n\nexport const DEFAULT_BACKGROUNDS = [\n MAP_BACKGROUNDS['OSM_NWB_ROADS'],\n MAP_BACKGROUNDS['OSM_COLOR_BLIND'],\n MAP_BACKGROUNDS['OSM_DARK'],\n];\n","import { MapDisplayOption } from './map-display-option';\n\nexport const MAP_LAYER_IMAGES = {\n ACTUAL_TRAFFIC_V1: 'images/map-layers/actueelverkeer1.webp',\n ACTUAL_TRAFFIC_V2: 'images/map-layers/actueelverkeerv2.webp',\n IMAGE_MODE_V1: 'images/map-layers/beeldstand1.webp',\n IMAGE_MODE_V2: 'images/map-layers/beeldstand2.webp',\n HECTOMETRY: 'images/map-layers/hectometrering.webp',\n ROAD_WORKS: 'images/map-layers/wegwerkzaamheden.webp',\n};\n\nexport const MAP_LAYERS: Record<string, MapDisplayOption> = {\n ACTUAL_TRAFFIC_V1: {\n id: 'ACTUAL_TRAFFIC_V1',\n name: 'Actueel verkeer 1',\n imageLink: MAP_LAYER_IMAGES.ACTUAL_TRAFFIC_V1,\n },\n ACTUAL_TRAFFIC_V2: {\n id: 'ACTUAL_TRAFFIC_V2',\n name: 'Actueel verkeer 2',\n imageLink: MAP_LAYER_IMAGES.ACTUAL_TRAFFIC_V2,\n },\n IMAGE_MODE_V1: {\n id: 'IMAGE_MODE_V1',\n name: 'Beeldstand 1',\n imageLink: MAP_LAYER_IMAGES.IMAGE_MODE_V1,\n },\n IMAGE_MODE_V2: {\n id: 'IMAGE_MODE_V2',\n name: 'Beeldstand 2',\n imageLink: MAP_LAYER_IMAGES.IMAGE_MODE_V2,\n },\n HECTOMETRY: {\n id: 'HECTOMETRY',\n name: 'Hectometrering',\n imageLink: MAP_LAYER_IMAGES.HECTOMETRY,\n },\n ROAD_WORKS: {\n id: 'ROAD_WORKS',\n name: 'Wegwerkzaamheden',\n imageLink: MAP_LAYER_IMAGES.ROAD_WORKS,\n },\n};\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { MapLegendOption } from '../map-legend.model';\nimport { IconComponent } from '../../icon';\n\n@Component({\n selector: 'ndw-map-legend-option',\n templateUrl: './map-legend-option.component.html',\n styleUrls: ['./map-legend-option.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconComponent],\n host: {\n role: 'listitem',\n },\n})\nexport class MapLegendOptionComponent {\n readonly option = input.required<MapLegendOption>();\n}\n","@let opt = option();\n<div class=\"option-type\">\n @switch (opt.type) {\n @case ('circle') {\n <div class=\"circle\" [style.--map-legend-option-color]=\"opt.color\"></div>\n }\n\n @case ('line') {\n <div\n class=\"line\"\n [class.outline]=\"opt.outline\"\n [class.dashed]=\"opt.fillMode === 'dashed'\"\n [style.--map-legend-option-color]=\"opt.color\"\n ></div>\n }\n\n @case ('icon') {\n <ndw-icon class=\"icon\">{{ opt.iconName }}</ndw-icon>\n }\n\n @case ('image') {\n <img\n class=\"image\"\n [class.contain]=\"opt.objectFit === 'contain'\"\n [src]=\"opt.src\"\n [alt]=\"opt.label\"\n />\n }\n\n @case ('polygon') {\n <div class=\"polygon\" [style.--map-legend-option-color]=\"opt.color\">\n <svg viewBox=\"0 0 20 20\">\n <polygon points=\"10,1 1,19 19,19\" />\n </svg>\n <div class=\"dot\"></div>\n <div class=\"dot\"></div>\n <div class=\"dot\"></div>\n </div>\n }\n\n @case ('area') {\n <div class=\"area\" [style.--map-legend-option-color]=\"opt.color\"></div>\n }\n }\n</div>\n\n<span class=\"ndw-paragraph-md option-label\">\n {{ opt.label }}\n</span>\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { MapLegendOptionGroup } from '../map-legend.model';\nimport { MapLegendOptionComponent } from '../map-legend-option/map-legend-option.component';\n\n@Component({\n selector: 'ndw-map-legend-group',\n templateUrl: './map-legend-group.component.html',\n styleUrls: ['./map-legend-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MapLegendOptionComponent],\n host: {\n role: 'listitem',\n },\n})\nexport class MapLegendGroupComponent {\n readonly group = input.required<MapLegendOptionGroup>();\n readonly singleGroup = input<boolean>(false);\n readonly index = input<number>(0);\n}\n","@if (group().label) {\n <h4\n class=\"ndw-paragraph-bold-md group-title\"\n [class.sr-only]=\"singleGroup()\"\n [class.group-title--first]=\"index() === 0\"\n >\n {{ group().label }}\n </h4>\n}\n<ul>\n @for (option of group().options; let i = $index; track i) {\n <ndw-map-legend-option [option]=\"option\" />\n }\n</ul>\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n model,\n signal,\n} from '@angular/core';\nimport { MapLegendOptionGroup, MapLegendViewMode } from './map-legend.model';\nimport { IconComponent } from '../icon';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { MapLegendGroupComponent } from './map-legend-group/map-legend-group.component';\n\n@Component({\n selector: 'ndw-map-legend',\n templateUrl: './map-legend.component.html',\n styleUrls: ['./map-legend.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconComponent, NgTemplateOutlet, OverlayModule, MapLegendGroupComponent],\n})\nexport class MapLegendComponent {\n readonly groups = input.required<MapLegendOptionGroup[]>();\n readonly icon = input<string>('legend_toggle');\n readonly title = input<string>('Legenda');\n readonly viewMode = input<MapLegendViewMode>('dropdown');\n\n readonly open = model<boolean>(false);\n readonly htmlIsRendered = signal(false);\n\n readonly showPopover = computed(() => this.open() && this.htmlIsRendered());\n readonly isDropdownViewMode = computed(() => this.viewMode() === 'dropdown');\n readonly isFixedViewMode = computed(() => this.viewMode() === 'fixed');\n readonly hasJustOneGroup = computed(() => this.groups().length === 1);\n\n constructor() {\n afterNextRender(() => this.htmlIsRendered.set(true));\n }\n}\n","@if (isDropdownViewMode()) {\n <button\n class=\"map-control\"\n [class.active]=\"open()\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n (click)=\"open.set(!open())\"\n >\n <ndw-icon>{{ icon() }}</ndw-icon>\n <span class=\"content-wrapper\">\n {{ title() }}\n </span>\n <ndw-icon class=\"map-control__chevron\">keyboard_arrow_down</ndw-icon>\n </button>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"showPopover()\"\n (detach)=\"open.set(false)\"\n >\n <ng-container *ngTemplateOutlet=\"dropdown\" />\n </ng-template>\n} @else {\n <ng-container *ngTemplateOutlet=\"dropdown\" />\n}\n\n<ng-template #dropdown>\n <div class=\"map-control-dropdown\" [class.fixed]=\"isFixedViewMode()\">\n <header>\n <h3 class=\"ndw-paragraph-bold-lg\">{{ title() }}</h3>\n\n @if (isDropdownViewMode()) {\n <button\n class=\"map-control-dropdown__close\"\n ndwButton\n tertiary\n type=\"button\"\n (click)=\"open.set(false)\"\n >\n <ndw-icon>close</ndw-icon>\n <span class=\"sr-only\">Sluit {{ title() }}</span>\n </button>\n }\n </header>\n\n <div class=\"map-control-dropdown__content\">\n @if (hasJustOneGroup()) {\n <ndw-map-legend-group [group]=\"groups()[0]\" [singleGroup]=\"true\" />\n } @else {\n <ul class=\"groups\">\n @for (group of groups(); let i = $index; track i) {\n @if (!!group.options.length) {\n <ndw-map-legend-group [group]=\"group\" [index]=\"i\" />\n }\n }\n </ul>\n }\n </div>\n </div>\n</ng-template>\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 {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n linkedSignal,\n model,\n signal,\n} from '@angular/core';\n\nimport { DropdownComponent } from '../dropdown';\nimport { FormFieldComponent, InputDirective } from '../form-field';\nimport { IconComponent } from '../icon';\nimport { ListComponent } from '../list';\nimport { ListItemComponent } from '../list-item';\n\nimport { CheckboxData } from './checkbox-data.interface';\nimport { SelectAllText } from './select-all-text.interface';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n DropdownComponent,\n FormFieldComponent,\n InputDirective,\n IconComponent,\n ListComponent,\n ListItemComponent,\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 buttonText = input.required<string>();\n public readonly searchLabel = input('Zoek in lijst.');\n public readonly prefixIcon = input('');\n public readonly searchPlaceholder = input('Zoek in lijst...');\n public readonly noResultText = input(\n 'Oeps, geen resultaten gevonden. Probeer een andere zoekterm.',\n );\n public readonly chevron = input(true);\n public readonly disabled = input(false);\n public readonly selectAmountHidden = input(false);\n public readonly selectAllText = input<SelectAllText>({\n deselect: 'Deselecteer alles',\n select: 'Selecteer alles',\n });\n public readonly allowSelectAll = input(true);\n\n public readonly dataSource = model<CheckboxData[]>([]);\n\n protected readonly isOpen = signal(false);\n\n protected readonly searchInputValue = linkedSignal<boolean, string>({\n source: this.isOpen,\n // Reset search input value when dropdown is opened\n computation: () => '',\n });\n\n protected readonly dataSourceSorted = linkedSignal({\n source: this.dataSource,\n computation: (dataSource) =>\n dataSource.slice().sort((a, b) => Number(b.value) - Number(a.value)),\n });\n\n protected readonly dataSourceFiltered = computed(() => {\n const data = this.dataSourceSorted();\n const search = this.searchInputValue();\n return data.filter((checkbox) => checkbox.label.toLowerCase().includes(search.toLowerCase()));\n });\n\n protected readonly lastCheckedElementId = computed(() => {\n const dataSource = this.dataSource();\n if (dataSource.some((checkbox) => !checkbox.value)) {\n const lastChecked = [...dataSource].reverse().find((checkbox) => checkbox.value);\n return lastChecked?.id ?? null;\n } else {\n return null;\n }\n });\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 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) => ({\n ...checkbox,\n value: selectAll,\n }));\n });\n }\n}\n","<ndw-dropdown\n prefixIcon=\"filter_alt\"\n [selectAmount]=\"selectAmountHidden() ? 0 : selectAmount()\"\n (tagClicked)=\"toggleSelectAll(false)\"\n (isOpenChange)=\"isOpen.set($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-list class=\"multi-select-container\">\n @for (checkbox of dataSourceFiltered(); track checkbox.id) {\n <ndw-list-item\n [class.last-checked]=\"lastCheckedElementId() === checkbox.id\"\n [checkable]=\"true\"\n [checked]=\"checkbox.value\"\n [prefixIcon]=\"checkbox.icon\"\n [subtitle]=\"checkbox.label\"\n [disabled]=\"checkbox.disabled === true\"\n (checkedChange)=\"checkboxChanged(checkbox.id)\"\n >\n @if (checkbox.image && isOpen()) {\n <img [src]=\"checkbox.image.src\" [alt]=\"checkbox.image.alt\" />\n }\n </ndw-list-item>\n }\n </ndw-list>\n }\n <div class=\"ndw-dialog-footer\">\n @if (allowSelectAll()) {\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 }\n <div class=\"ndw-dialog-footer-total\" aria-live=\"polite\">\n Geselecteerd: <strong>{{ selectAmount() }}</strong>\n </div>\n </div>\n</ndw-dropdown>\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { CoreRouterBreadcrumbsComponent } from '@ndwnu/core';\n\nimport { BreadcrumbComponent } from '../breadcrumb';\nimport { BreadcrumbGroupComponent } from '../breadcrumb-group';\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 extends CoreRouterBreadcrumbsComponent {}\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","interface DragElementDimensions {\n containerHeight: number;\n containerWidth: number;\n splitterHeight: number;\n splitterWidth: number;\n}\n\nexport const initialDragElementDimensions: DragElementDimensions = {\n containerHeight: 0,\n containerWidth: 0,\n splitterHeight: 0,\n splitterWidth: 0,\n};\n\nexport function createDragElementDimensions(\n container: DOMRect,\n splitter: DOMRect,\n): DragElementDimensions {\n return {\n containerHeight: Math.round(container.height),\n containerWidth: Math.round(container.width),\n splitterHeight: Math.round(splitter.height),\n splitterWidth: Math.round(splitter.width),\n };\n}\n","import { CdkDrag, DragDropModule, Point } from '@angular/cdk/drag-drop';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n ElementRef,\n input,\n OnDestroy,\n signal,\n untracked,\n viewChild,\n} from '@angular/core';\nimport { createDragElementDimensions, initialDragElementDimensions } from './splitter-drag-element';\n\n@Component({\n selector: 'ndw-splitter',\n imports: [DragDropModule],\n templateUrl: './splitter.component.html',\n styleUrl: './splitter.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.disabled]': 'disabled()',\n },\n})\nexport class SplitterComponent implements AfterViewInit, OnDestroy {\n public readonly disabled = input(false);\n\n /**\n * If true, the splitter is horizontal (splits top and bottom panels).\n * Otherwise, it is vertical (splits left and right panels).\n */\n public readonly horizontal = input(false);\n\n /**\n * Optional size of the first panel (in pixels) when the component is initialized.\n */\n public readonly initialPanelSize = input<number | null>(null);\n\n /**\n * Minimum size of both panels (in pixels).\n */\n public readonly minimumPanelSize = input<number>(0);\n\n protected readonly firstPanelSize = signal(0);\n protected readonly secondPanelSize = computed(() =>\n this.clampPanelSize(this.availableSize() - this.firstPanelSize()),\n );\n protected readonly isDragging = signal(false);\n\n private readonly container = viewChild.required<ElementRef<HTMLElement>>('container');\n private readonly splitter = viewChild.required<ElementRef<HTMLElement>>('splitter');\n private readonly cdkDrag = viewChild.required(CdkDrag);\n\n private storedFirstPanelSize = this.initialPanelSize() ?? 0;\n\n /**\n * Flag to indicate if the mouse click event should be\n * ignored because the user is dragging the splitter.\n */\n private ignoreMouseClick = false;\n\n /**\n * Reactive object to store the dimensions of the drag elements.\n * Updated by a resize observer on the container.\n */\n private readonly dragElementDimensions = signal(initialDragElementDimensions);\n\n private readonly resizeObserver = new ResizeObserver(() => {\n const container = this.container().nativeElement.getBoundingClientRect();\n const splitter = this.splitter().nativeElement.getBoundingClientRect();\n this.dragElementDimensions.set(createDragElementDimensions(container, splitter));\n });\n\n /**\n * Available size for the panels, without considering the `minimumPanelSize` input.\n */\n private readonly availableSize = computed(() => {\n const { containerHeight, containerWidth, splitterHeight, splitterWidth } =\n this.dragElementDimensions();\n return this.horizontal() ? containerHeight - splitterHeight : containerWidth - splitterWidth;\n });\n\n /**\n * Position of the drag handle when the component is initialized.\n * The drag position is always relative to this starting position.\n */\n private readonly dragStartPosition = computed(() => this.availableSize() / 2);\n\n /**\n * Minimum panel size that is safe to use, considering the\n * available container size and the `minimumPanelSize` input.\n */\n protected readonly safeMinPanelSize = computed(() =>\n clamp(this.minimumPanelSize(), 0, this.availableSize()),\n );\n\n /**\n * Maximum panel size that is safe to use, considering the\n * available container size and the `minimumPanelSize\n */\n protected readonly safeMaxPanelSize = computed(() =>\n clamp(\n this.availableSize() - this.safeMinPanelSize(),\n this.safeMinPanelSize(),\n this.availableSize(),\n ),\n );\n\n constructor() {\n // Update panel size and drag position when the initial panel size, minimum panel size or container size change\n effect(() => {\n this.minimumPanelSize();\n this.initialPanelSize();\n const { containerHeight, containerWidth } = this.dragElementDimensions();\n const containerSize = this.horizontal() ? containerHeight : containerWidth;\n\n if (containerSize === 0) {\n return;\n }\n\n untracked(() => {\n this.setFirstPanelSize(this.initialPanelSize());\n this.setDragPosition(this.firstPanelSize());\n });\n });\n }\n\n public ngAfterViewInit() {\n this.resizeObserver.observe(this.container().nativeElement);\n }\n\n public ngOnDestroy() {\n this.resizeObserver.unobserve(this.container().nativeElement);\n this.resizeObserver.disconnect();\n }\n\n protected constrainPosition = computed(() => {\n const horizontal = this.horizontal();\n\n return (userPointerPosition: Point) => {\n const { left, top } = this.container().nativeElement.getBoundingClientRect();\n const containerOffset = horizontal ? top : left;\n const pointerPosition = horizontal ? userPointerPosition.y : userPointerPosition.x;\n const clampedPosition = clamp(\n pointerPosition,\n this.safeMinPanelSize() + containerOffset,\n this.safeMaxPanelSize() + containerOffset,\n );\n\n return horizontal ? { x: 0, y: clampedPosition } : { x: clampedPosition, y: 0 };\n };\n });\n\n protected onDragStarted() {\n this.storeFirstPanelSize();\n this.isDragging.set(true);\n }\n\n protected onDragEnded() {\n this.isDragging.set(false);\n }\n\n protected onDragMoved() {\n this.setFirstPanelSize();\n this.ignoreMouseClick = true;\n }\n\n protected onSplitterMouseDown() {\n this.ignoreMouseClick = false;\n }\n\n protected onSplitterMouseUp() {\n if (this.ignoreMouseClick) {\n return;\n }\n\n const drag = this.cdkDrag();\n const currentPosition = this.horizontal()\n ? drag.getFreeDragPosition().y\n : drag.getFreeDragPosition().x;\n let newPosition = 0;\n\n if (\n this.firstPanelSize() <= this.safeMinPanelSize() ||\n this.secondPanelSize() <= this.safeMinPanelSize()\n ) {\n // Return to initial panel sizes\n newPosition = currentPosition + this.storedFirstPanelSize - this.firstPanelSize();\n } else if (this.firstPanelSize() < this.secondPanelSize()) {\n // Store current left panel size so we can restore it later\n this.storeFirstPanelSize();\n\n // Maximize right panel\n newPosition = currentPosition - (this.safeMaxPanelSize() - this.secondPanelSize());\n } else {\n // Store current left panel size so we can restore it later\n this.storeFirstPanelSize();\n\n // Maximize left panel\n newPosition = currentPosition + (this.safeMaxPanelSize() - this.firstPanelSize());\n }\n\n if (this.horizontal()) {\n drag.setFreeDragPosition({ x: 0, y: newPosition });\n } else {\n drag.setFreeDragPosition({ x: newPosition, y: 0 });\n }\n\n this.setFirstPanelSize();\n }\n\n protected setDragPosition(position: number) {\n const { containerHeight, containerWidth, splitterHeight, splitterWidth } =\n this.dragElementDimensions();\n\n const halfContainerSize = this.horizontal() ? containerHeight / 2 : containerWidth / 2;\n const halfSplitterSize = this.horizontal() ? splitterHeight / 2 : splitterWidth / 2;\n const distance = position - halfContainerSize + halfSplitterSize;\n\n if (this.horizontal()) {\n this.cdkDrag().setFreeDragPosition({ x: 0, y: distance });\n } else {\n this.cdkDrag().setFreeDragPosition({ x: distance, y: 0 });\n }\n }\n\n protected storeFirstPanelSize() {\n const dragPosition = this.cdkDrag().getFreeDragPosition();\n const freeDragPosition = this.horizontal() ? dragPosition.y : dragPosition.x;\n this.storedFirstPanelSize = this.clampPanelSize(this.dragStartPosition() + freeDragPosition);\n }\n\n private setFirstPanelSize(forcedSize?: number | null) {\n const dragPosition = this.cdkDrag().getFreeDragPosition();\n const freeDragPosition = this.horizontal() ? dragPosition.y : dragPosition.x;\n this.firstPanelSize.set(\n this.clampPanelSize(forcedSize ?? this.dragStartPosition() + freeDragPosition),\n );\n }\n\n private clampPanelSize(width: number) {\n return clamp(width, this.safeMinPanelSize(), this.safeMaxPanelSize());\n }\n}\n\nfunction clamp(width: number, min: number, max: number) {\n return Math.round(Math.min(Math.max(width, min), max));\n}\n","<div\n #container\n class=\"panels\"\n [class]=\"{\n horizontal: horizontal(),\n vertical: !horizontal(),\n dragging: isDragging(),\n }\"\n>\n <div\n class=\"panel\"\n [style]=\"{\n width: horizontal() ? '100%' : firstPanelSize() + 'px',\n height: horizontal() ? firstPanelSize() + 'px' : '100%',\n }\"\n >\n <ng-content select=\"[first-panel]\"></ng-content>\n </div>\n <div\n #splitter\n class=\"splitter\"\n role=\"separator\"\n aria-orientation=\"{{ horizontal() ? 'horizontal' : 'vertical' }}\"\n [attr.aria-valuenow]=\"firstPanelSize()\"\n [attr.aria-valuemin]=\"safeMinPanelSize()\"\n [attr.aria-valuemax]=\"safeMaxPanelSize()\"\n cdkDrag\n [cdkDragLockAxis]=\"horizontal() ? 'y' : 'x'\"\n [class.disabled]=\"disabled()\"\n [cdkDragBoundary]=\"container\"\n (cdkDragStarted)=\"onDragStarted()\"\n (cdkDragMoved)=\"onDragMoved()\"\n (cdkDragEnded)=\"onDragEnded()\"\n (mousedown)=\"onSplitterMouseDown()\"\n (mouseup)=\"onSplitterMouseUp()\"\n [cdkDragConstrainPosition]=\"constrainPosition()\"\n >\n @if (horizontal()) {\n <svg viewBox=\"0 0 28 4\" xmlns=\"http://www.w3.org/2000/svg\" role=\"presentation\">\n @for (i of [0, 1, 2]; track i) {\n <circle [attr.cx]=\"2 + i * 12\" cy=\"2\" r=\"2\" fill=\"currentColor\" />\n }\n </svg>\n } @else {\n <svg viewBox=\"0 0 4 28\" xmlns=\"http://www.w3.org/2000/svg\" role=\"presentation\">\n @for (i of [0, 1, 2]; track i) {\n <circle cx=\"2\" [attr.cy]=\"2 + i * 12\" r=\"2\" fill=\"currentColor\" />\n }\n </svg>\n }\n </div>\n <div\n class=\"panel\"\n [style]=\"{\n width: horizontal() ? '100%' : secondPanelSize() + 'px',\n height: horizontal() ? secondPanelSize() + 'px' : '100%',\n }\"\n >\n <ng-content select=\"[second-panel]\"></ng-content>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'ndw-summary-card',\n templateUrl: './summary-card.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'ndw-summary-card',\n },\n})\nexport class SummaryCardComponent {}\n","<div class=\"ndw-summary-card__wrapper\">\n <ng-content select=\"ndw-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</div>\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 (click)=\"action.emit()\"\n >\n <span class=\"sr-only\">{{ label() }}</span>\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';\n\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","<ng-content select=\"ndw-favorite\" />\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 [ndwPopoverTrigger]=\"content\"\n [popoverPosition]=\"'nextToTriggerButton'\"\n >\n <span class=\"sr-only\">Open menu</span>\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 } 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 changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'ndw-summary-card-header',\n },\n selector: 'ndw-summary-card-header',\n templateUrl: './summary-card-header.component.html',\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","import {\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n input,\n model,\n OnInit,\n output,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IconComponent } from '../icon/icon.component';\nimport { SwitcherOption, SwitcherValue } from './';\n\n@Component({\n selector: 'ndw-switcher',\n imports: [IconComponent],\n templateUrl: './switcher.component.html',\n styleUrls: ['./switcher.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SwitcherComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'radiogroup',\n '[class.disabled]': 'disabled()',\n '[class.vertical]': 'vertical()',\n },\n})\nexport class SwitcherComponent implements ControlValueAccessor, OnInit {\n readonly options = input<SwitcherOption[]>([]);\n readonly selectedValue = model<SwitcherValue | undefined>(undefined);\n readonly disabled = model(false);\n readonly vertical = input(false);\n\n readonly selectionChange = output<SwitcherValue>();\n\n sliderHeight = '';\n sliderWidth = '';\n sliderPosition = '';\n\n private onChange = (_value: SwitcherValue) => {\n // noop\n };\n private onTouched = () => {\n // noop\n };\n\n ngOnInit() {\n this.#updateSliderProperties();\n }\n\n writeValue(value: SwitcherValue): void {\n this.selectedValue.set(value);\n if (this.options().length > 0) {\n this.#updateSliderProperties();\n }\n }\n\n registerOnChange(fn: (value: SwitcherValue) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n\n selectOption(value: SwitcherValue): void {\n if (this.disabled()) return;\n\n const option = this.options().find((opt) => opt.value === value);\n if (option?.disabled) return;\n\n this.selectedValue.set(value);\n this.#updateSliderProperties();\n this.onChange(value);\n this.onTouched();\n this.selectionChange.emit(value);\n }\n\n onKeyDown(event: KeyboardEvent, _currentIndex: number): void {\n const enabledOptions = this.options().filter((opt) => !opt.disabled);\n const currentEnabledIndex = enabledOptions.findIndex(\n (opt) => opt.value === this.selectedValue(),\n );\n const prevIndex = currentEnabledIndex > 0 ? currentEnabledIndex - 1 : enabledOptions.length - 1;\n const nextIndex = currentEnabledIndex < enabledOptions.length - 1 ? currentEnabledIndex + 1 : 0;\n const lastOption = enabledOptions[enabledOptions.length - 1];\n\n switch (event.key) {\n case 'ArrowLeft':\n case 'ArrowUp':\n event.preventDefault();\n this.selectOption(enabledOptions[prevIndex].value);\n this.#focusOption(this.options().indexOf(enabledOptions[prevIndex]));\n break;\n\n case 'ArrowRight':\n case 'ArrowDown':\n event.preventDefault();\n this.selectOption(enabledOptions[nextIndex].value);\n this.#focusOption(this.options().indexOf(enabledOptions[nextIndex]));\n break;\n\n case 'Home':\n event.preventDefault();\n this.selectOption(enabledOptions[0].value);\n this.#focusOption(this.options().indexOf(enabledOptions[0]));\n break;\n\n case 'End':\n event.preventDefault();\n this.selectOption(lastOption.value);\n this.#focusOption(this.options().indexOf(lastOption));\n break;\n }\n }\n\n #focusOption(index: number): void {\n const optionElement = document.getElementById(this.generateId(index));\n optionElement?.focus();\n }\n\n #updateSliderProperties(): void {\n const options = this.options();\n if (options.length === 0) return;\n\n const selectedIndex = options.findIndex((opt) => opt.value === this.selectedValue());\n\n if (selectedIndex >= 0) {\n // Use CSS calc() for precise positioning with design system variables\n // Width: (100% - total padding) divided by number of options\n this.sliderWidth = `calc((100% - var(--ndw-spacing-xs)) / ${this.vertical() ? 1 : options.length})`;\n this.sliderHeight = `calc((100% - var(--ndw-spacing-xs)) / ${this.vertical() ? options.length : 1})`;\n\n // Position: left padding + (selected index * width of each option)\n this.sliderPosition = `calc(var(--ndw-spacing-2xs) + (${selectedIndex} * calc((100% - var(--ndw-spacing-xs)) / ${options.length})))`;\n }\n }\n\n readonly #componentId = crypto.randomUUID();\n\n generateId(index: number): string {\n return `${this.#componentId}-option-${index}`;\n }\n\n get componentName(): string {\n return `switcher-${this.#componentId}`;\n }\n}\n","<div\n class=\"switch-slider\"\n [style.width]=\"sliderWidth\"\n [style.height]=\"sliderHeight\"\n [style.left]=\"vertical() ? null : sliderPosition\"\n [style.top]=\"vertical() ? sliderPosition : null\"\n [attr.aria-hidden]=\"true\"\n></div>\n\n@for (option of options(); track option.value; let i = $index) {\n <label\n class=\"switch-option\"\n [class.active]=\"selectedValue() === option.value\"\n [class.disabled]=\"option.disabled || disabled()\"\n [attr.for]=\"generateId(i)\"\n >\n <input\n type=\"radio\"\n [id]=\"generateId(i)\"\n [name]=\"componentName\"\n [value]=\"option.value\"\n [checked]=\"selectedValue() === option.value\"\n [disabled]=\"option.disabled || disabled()\"\n (change)=\"selectOption(option.value)\"\n (keydown)=\"onKeyDown($event, i)\"\n [attr.aria-describedby]=\"option.disabled ? generateId(i) + '-disabled' : null\"\n class=\"switch-radio\"\n />\n @if (option.icon) {\n <ndw-icon>{{ option.icon }}</ndw-icon>\n }\n <div class=\"switch-label\">{{ option.label }}</div>\n\n @if (option.disabled) {\n <span [id]=\"generateId(i) + '-disabled'\" class=\"sr-only\"> (disabled) </span>\n }\n </label>\n}\n","import { TemplatePortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n input,\n OnInit,\n TemplateRef,\n viewChild,\n ViewContainerRef,\n} from '@angular/core';\n\n@Component({\n selector: 'ndw-tab',\n styleUrl: './tab.component.scss',\n templateUrl: './tab.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TabComponent implements OnInit {\n private readonly _viewContainerRef = inject(ViewContainerRef);\n private readonly _elementRef = inject(ElementRef);\n\n // Portal that will be the hosted content of the tab\n private _content: TemplatePortal | null = null;\n // Content inside the tab\n private readonly _contentTemplate = viewChild.required<TemplateRef<unknown>>('content');\n\n get content(): TemplatePortal | null {\n return this._content;\n }\n\n title = input.required<string>();\n disabled = input(false);\n hasError = input(false);\n icon = input<string | undefined>(undefined);\n active = false;\n id = input<string | number>(crypto.randomUUID());\n\n ngOnInit(): void {\n this._content = new TemplatePortal(this._contentTemplate(), this._viewContainerRef);\n }\n\n getNativeElement(): HTMLElement {\n return this._elementRef.nativeElement;\n }\n}\n","<!-- Create a template for the content of the <ndw-tab> so that we can grab a reference to this\n TemplateRef and use it in a Portal to render the tab content in the appropriate place in the\n tab-group. -->\n<ng-template #content><ng-content></ng-content></ng-template>\n","import {\n afterNextRender,\n afterRenderEffect,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChildren,\n DestroyRef,\n effect,\n ElementRef,\n inject,\n Injector,\n input,\n model,\n OnDestroy,\n signal,\n viewChild,\n viewChildren,\n} from '@angular/core';\n\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\nimport { NgClass } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { BadgeComponent } from '../badge';\nimport { ButtonDirective } from '../button';\nimport { IconComponent } from '../icon';\nimport { TabComponent } from '../tab';\n\n@Component({\n selector: 'ndw-tab-group',\n styleUrl: './tab-group.component.scss',\n templateUrl: './tab-group.component.html',\n imports: [CdkPortalOutlet, NgClass, BadgeComponent, ButtonDirective, IconComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TabGroupComponent implements OnDestroy {\n private readonly _injector = inject(Injector);\n private readonly _destroyRef = inject(DestroyRef);\n\n private readonly _tabs = contentChildren(TabComponent);\n private readonly _tabButtons = viewChildren<ElementRef>('tabButton');\n private readonly _tabGroupContainer = viewChild<ElementRef>('tabGroupContainer');\n\n hasPadding = input(false);\n activeTabId = model<string | number>();\n inlinePadding = input(0);\n\n // Scroll state signals\n private readonly _scrollLeft = signal(0);\n private readonly _scrollWidth = signal(0);\n private readonly _clientWidth = signal(0);\n\n tabs = computed(() =>\n this._tabs().map((tab) => {\n tab.active = tab.id() === this.activeTabId();\n return tab;\n }),\n );\n\n canScrollLeft = computed(() => this._scrollLeft() > 0);\n canScrollRight = computed(\n () => this._scrollLeft() < this._scrollWidth() - this._clientWidth() - 1,\n );\n\n private _resizeObserver?: ResizeObserver;\n\n constructor() {\n effect(() => {\n const tabs = this._tabs();\n const activeTab = this.activeTabId();\n if (activeTab === undefined && tabs.length) {\n const firstEnabledTab = tabs.find((tab) => !tab.disabled());\n if (firstEnabledTab) {\n this.activeTabId.set(firstEnabledTab.id());\n }\n }\n });\n\n effect(() => {\n const id = this.activeTabId();\n const tabs = this._tabs();\n\n tabs.forEach((tab) => {\n tab.active = tab.id() === id;\n });\n });\n\n // Setup scroll detection after render\n afterNextRender(\n () => {\n this._setupScrollDetection();\n },\n { injector: this._injector },\n );\n\n // Update the scroll state after tabs have changed\n afterRenderEffect(() => {\n this._tabs();\n const container = this._tabGroupContainer()?.nativeElement;\n if (container) {\n this._updateScrollState(container);\n }\n });\n }\n\n ngOnDestroy(): void {\n this._resizeObserver?.disconnect();\n }\n\n private _setupScrollDetection(): void {\n const container = this._tabGroupContainer()?.nativeElement;\n if (!container) return;\n\n this._updateScrollState(container);\n\n // Listen to scroll events\n fromEvent(container, 'scroll')\n .pipe(takeUntilDestroyed(this._destroyRef), debounceTime(50))\n .subscribe(() => {\n this._updateScrollState(container);\n });\n\n // Observe resize\n this._resizeObserver = new ResizeObserver(() => {\n this._updateScrollState(container);\n });\n this._resizeObserver.observe(container);\n }\n\n private _updateScrollState(container: HTMLElement): void {\n this._scrollLeft.set(container.scrollLeft);\n this._scrollWidth.set(container.scrollWidth);\n this._clientWidth.set(container.clientWidth);\n }\n\n scrollTo(direction: 'left' | 'right'): void {\n const container = this._tabGroupContainer()?.nativeElement;\n if (!container) return;\n\n const scrollAmount = 200; // Fixed scroll amount in pixels\n const newScrollLeft =\n direction === 'left'\n ? container.scrollLeft - scrollAmount\n : container.scrollLeft + scrollAmount;\n\n container.scrollTo({\n left: newScrollLeft,\n behavior: 'smooth',\n });\n }\n\n selectTab(index: number) {\n this.activeTabId.set(this._tabs()?.[index].id());\n const tabButtons = this._tabButtons();\n if (tabButtons[index]?.nativeElement) {\n tabButtons[index]?.nativeElement.focus();\n }\n }\n\n onKeyDown(event: KeyboardEvent) {\n const tabCount = this.tabs().length;\n const currentIndex = this._tabs().findIndex((tab) => tab.id() === this.activeTabId());\n\n switch (event.key) {\n case 'ArrowRight':\n this.selectTab(this.getNextEnabledIndex(tabCount, currentIndex, 1));\n break;\n case 'ArrowLeft':\n this.selectTab(this.getNextEnabledIndex(tabCount, currentIndex, -1));\n break;\n case 'Home':\n event.preventDefault();\n this.selectTab(this.getFirstEnabledIndex(tabCount));\n break;\n case 'End':\n event.preventDefault();\n this.selectTab(this.getLastEnabledIndex(tabCount));\n break;\n }\n }\n\n private getNextEnabledIndex(tabCount: number, start: number, step: number): number {\n for (let offset = 1; offset < tabCount; offset++) {\n const i = (start + step * offset + tabCount) % tabCount;\n if (!this.tabs()[i].disabled()) return i;\n }\n return start;\n }\n\n private getFirstEnabledIndex(tabCount: number): number {\n for (let i = 0; i < tabCount; i++) {\n if (!this.tabs()[i].disabled()) return i;\n }\n return 0;\n }\n\n private getLastEnabledIndex(tabCount: number): number {\n for (let i = tabCount - 1; i >= 0; i--) {\n if (!this.tabs()[i].disabled()) return i;\n }\n return tabCount - 1;\n }\n}\n","<div class=\"tab-group-wrapper\">\n <div #tabGroupContainer class=\"tab-group\" role=\"tablist\" [class.with-padding]=\"hasPadding()\">\n @for (tab of tabs(); track tab.id(); let i = $index) {\n <button\n #tabButton\n class=\"tab-button\"\n role=\"tab\"\n type=\"button\"\n [attr.active]=\"tab.active ? true : undefined\"\n [attr.aria-controls]=\"'tab-panel-' + tab.id\"\n [attr.aria-selected]=\"tab.active\"\n [disabled]=\"tab.disabled() ? true : null\"\n [id]=\"'tab-' + tab.id\"\n [tabindex]=\"tab.active ? 0 : -1\"\n (click)=\"selectTab(i)\"\n (keydown)=\"onKeyDown($event)\"\n >\n @if (tab.icon()) {\n <ndw-icon size=\"sm\">{{ tab.icon() }}</ndw-icon>\n }\n {{ tab.title() }}\n @if (tab.hasError()) {\n <ndw-badge [size]=\"'small'\" [variant]=\"'error'\" />\n }\n </button>\n }\n </div>\n\n @if (canScrollLeft()) {\n <button\n ndwButton\n secondary\n alternative\n extra-small\n class=\"scroll-arrow scroll-arrow-left\"\n type=\"button\"\n aria-label=\"Scroll naar links\"\n tabindex=\"-1\"\n (click)=\"scrollTo('left')\"\n >\n <ndw-icon>chevron_left</ndw-icon>\n </button>\n }\n\n @if (canScrollRight()) {\n <button\n ndwButton\n secondary\n alternative\n extra-small\n class=\"scroll-arrow scroll-arrow-right\"\n type=\"button\"\n aria-label=\"Scroll naar rechts\"\n tabindex=\"-1\"\n (click)=\"scrollTo('right')\"\n >\n <ndw-icon>chevron_right</ndw-icon>\n </button>\n }\n</div>\n@for (tab of tabs(); track tab.id(); let i = $index) {\n <div\n class=\"tab-content\"\n [ngClass]=\"{ 'is-hidden': !tab.active }\"\n [id]=\"'tab-panel-' + tab.id\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + tab.id\"\n [tabindex]=\"0\"\n >\n <ng-template [cdkPortalOutlet]=\"tab.content\"></ng-template>\n </div>\n}\n","import type { ThemeDefaultParams } from 'ag-grid-community';\n\nexport const ndwAgGridTheme: Partial<ThemeDefaultParams> = {\n accentColor: 'var(--ndw-color-info-500)',\n oddRowBackgroundColor: 'var(--ndw-color-grey-50)',\n backgroundColor: 'var(--ndw-color-white)',\n borderRadius: 'var(--ndw-border-radius-md)',\n cellFontFamily: 'var(--ndw-font-family-body)',\n fontFamily: 'inherit',\n fontSize: 'var(--ndw-font-size-sm)',\n headerBackgroundColor: 'var(--ndw-color-white)',\n headerFontFamily: 'var(--ndw-font-family-body)',\n headerFontSize: 'var(--ndw-font-size-xs)',\n headerFontWeight: 'var(--ndw-font-weight-bold)',\n headerRowBorder: {\n color: 'var(--ndw-color-grey-200)',\n style: 'solid',\n width: 'var(--ndw-border-size-md)',\n },\n headerTextColor: 'var(--ndw-color-text)',\n textColor: 'var(--ndw-color-text)',\n wrapperBorder: false,\n};\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n input,\n output,\n} from '@angular/core';\n\nimport { NgStyle } from '@angular/common';\nimport { IconComponent } from '../icon';\n\nexport interface ToastDimensions {\n width: number;\n height: number;\n}\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconComponent, NgStyle],\n selector: 'ndw-toast',\n styleUrl: './toast.component.scss',\n templateUrl: './toast.component.html',\n})\nexport class ToastComponent implements AfterViewInit {\n message = input.required<string>();\n closeButtonLabel = input('Sluit');\n id = input<string>();\n duration = input(5000);\n paused = input(false);\n showProgress = input(true);\n\n closed = output();\n elementDimensions = output<ToastDimensions>();\n\n #elementRef = inject(ElementRef);\n\n ngAfterViewInit(): void {\n this.elementDimensions.emit({\n width: this.#elementRef.nativeElement.offsetWidth,\n height: this.#elementRef.nativeElement.offsetHeight,\n });\n }\n}\n","<ndw-icon>info</ndw-icon>\n{{ message() }}\n<button\n ndwButton\n tertiary\n alternative\n extra-small\n (click)=\"closed.emit()\"\n [attr.aria-label]=\"closeButtonLabel()\"\n>\n <ndw-icon>close</ndw-icon>\n</button>\n<div\n class=\"progress-bar\"\n [ngStyle]=\"{\n 'animation-duration': duration() + 'ms',\n visibility: showProgress() ? 'visible' : 'hidden',\n }\"\n [class.paused]=\"paused()\"\n></div>\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n signal,\n viewChildren,\n} from '@angular/core';\n\nimport { NgStyle } from '@angular/common';\nimport { ToastComponent, ToastDimensions } from '../toast.component';\nimport { ToastService } from '../toast.service';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '(mouseenter)': 'pause()',\n '(mouseleave)': 'resume()',\n '[style.--total-toast-height]': 'totalHeightExcludingGaps() + \"px\"',\n '[style.--total-toast-count]': 'toastComponents().length',\n '[style.--max-toast-width]': 'maxToastWidth() + \"px\"',\n },\n imports: [ToastComponent, NgStyle],\n selector: 'ndw-toast-list',\n styleUrl: './toast-list.component.scss',\n templateUrl: './toast-list.component.html',\n})\nexport class ToastListComponent {\n protected readonly toastService = inject(ToastService);\n protected readonly toastComponents = viewChildren(ToastComponent);\n protected readonly toastDimensions = signal(new Map<string, ToastDimensions>());\n\n protected readonly toastOffsetHeights = computed(() => {\n const dimensions = this.toastDimensions();\n const components = this.toastComponents();\n\n return components\n .map((component) => component.id())\n .filter((id) => id !== null && id !== undefined)\n .reduce(\n (acc, id) => {\n const height = dimensions.get(id)?.height ?? 0;\n return [...acc, acc[acc.length - 1] + height];\n },\n [0],\n );\n });\n\n protected readonly firstToastHeight = computed(() => {\n const firstComponent = this.toastComponents()?.[0];\n const firstId = firstComponent?.id();\n const dimensions = this.toastDimensions();\n\n if (firstId === null || firstId === undefined) {\n return 0;\n }\n\n return dimensions.get(firstId)?.height ?? 0;\n });\n\n protected readonly totalHeightExcludingGaps = computed(() => {\n const heights = this.toastOffsetHeights();\n return heights.length > 0 ? heights[heights.length - 1] : 0;\n });\n\n protected readonly maxToastWidth = computed(() => {\n const dimensions = this.toastDimensions();\n const components = this.toastComponents();\n\n return components\n .map((component) => component.id())\n .filter((id) => id !== null && id !== undefined)\n .reduce((max, id) => {\n const width = dimensions.get(id)?.width ?? 0;\n return Math.max(max, width);\n }, 0);\n });\n\n protected setToastDimensions(id: string, dimensions: ToastDimensions) {\n this.toastDimensions.update((heights) => {\n heights.set(id, dimensions);\n return heights;\n });\n }\n\n protected pause() {\n this.toastService.pause();\n }\n\n protected resume() {\n this.toastService.resume();\n }\n}\n","@for (toast of toastService.toasts(); track toast.id) {\n <ndw-toast\n class=\"toast\"\n [class.hide-content]=\"!toastService.paused() && $index > 0\"\n [ngStyle]=\"{\n '--index': $index,\n '--offset-height': toastOffsetHeights()[$index] + 'px',\n '--first-toast-height': firstToastHeight() + 'px',\n }\"\n [id]=\"toast.id\"\n [closeButtonLabel]=\"toast.closeButtonLabel ?? 'Sluit'\"\n [message]=\"toast.message\"\n [duration]=\"toast.duration\"\n [paused]=\"toastService.paused()\"\n [showProgress]=\"toastService.paused() || $first\"\n (closed)=\"toastService.close(toast.id)\"\n (elementDimensions)=\"setToastDimensions(toast.id, $event)\"\n ></ndw-toast>\n}\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { inject, Injectable, Signal, signal } from '@angular/core';\nimport {\n BehaviorSubject,\n filter,\n interval,\n map,\n pairwise,\n skipWhile,\n startWith,\n switchMap,\n takeWhile,\n tap,\n} from 'rxjs';\n\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport { ToastListComponent } from './toast-list/toast-list.component';\n\ntype ToastId = string;\n\ninterface ToastData {\n id: ToastId;\n message: string;\n duration: number;\n remainingTime: number;\n closeButtonLabel?: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ToastService {\n readonly #maxToasts = 3;\n readonly #toasts = signal<ToastData[]>([]);\n readonly #overlay = inject(Overlay);\n\n readonly #paused$ = new BehaviorSubject(false);\n readonly #active$ = new BehaviorSubject(false);\n\n #overlayRef?: OverlayRef;\n paused = toSignal(this.#paused$, { initialValue: false });\n\n get toasts(): Signal<ToastData[]> {\n return this.#toasts;\n }\n\n constructor() {\n const getTimeElapsedWhileActiveAndNotPaused = () =>\n interval(50).pipe(\n startWith(0),\n map(() => Date.now()),\n pairwise(),\n takeWhile(() => this.#active$.getValue()),\n filter(() => !this.#paused$.getValue()),\n map(([previous, current]) => current - previous),\n );\n\n this.#active$\n .pipe(\n takeUntilDestroyed(),\n skipWhile((active) => !active),\n switchMap(() => getTimeElapsedWhileActiveAndNotPaused()),\n tap((elapsedMs) => this.#updateToastExpiration(elapsedMs)),\n )\n .subscribe();\n }\n\n /**\n * Close a toast by its ID. If no ID is provided, all toasts will be closed.\n */\n close(id?: string) {\n const isLastToast =\n this.#toasts().findIndex((toast) => toast.id === id) === this.toasts().length - 1;\n\n this.#removeToast(id);\n\n const hasRemainingToasts = this.#toasts().length > 0;\n if (!hasRemainingToasts) {\n this.#overlayRef?.detach();\n this.#active$.next(false);\n this.#paused$.next(false);\n }\n\n // When the last toast is closed, resume the timer. This prevents the timer from\n // being paused indefinitely when the last toast is closed as a result of a user\n // action (e.g., clicking the close button). Since that action will not trigger\n // the 'mouseleave' event on the toast list component,\n if (isLastToast) {\n this.#paused$.next(false);\n }\n }\n\n /**\n * Open a toast notification with the given message and optional duration.\n * @param message The message to display in the toast.\n * @param duration Optional duration in milliseconds for which the toast should be visible. Defaults to 5000ms.\n * @returns The ID of the created toast. Can be used to close the toast.\n */\n open(message: string, duration?: number, closeButtonLabel?: string): ToastId {\n const id = crypto.randomUUID();\n\n this.#addToast({\n id,\n message,\n duration: duration ?? 5000,\n remainingTime: duration ?? 5000,\n closeButtonLabel,\n });\n\n if (!this.#overlayRef) {\n this.#overlayRef = this.#overlay.create({\n scrollStrategy: this.#overlay.scrollStrategies.reposition(),\n positionStrategy: this.#overlay.position().global().top('1.5rem').centerHorizontally(),\n });\n }\n\n if (!this.#overlayRef.hasAttached()) {\n const toastListPortal = new ComponentPortal(ToastListComponent);\n this.#overlayRef.attach(toastListPortal);\n }\n\n this.#paused$.next(false);\n this.#active$.next(true);\n\n return id;\n }\n\n pause() {\n this.#paused$.next(true);\n }\n\n resume() {\n this.#paused$.next(false);\n }\n\n #removeToast(id?: ToastId) {\n this.#toasts.update((toasts) => toasts.filter((toast) => toast.id !== id));\n }\n\n #addToast(toast: ToastData) {\n this.#toasts.update((toasts) => [toast, ...toasts].slice(0, this.#maxToasts));\n }\n\n #updateToastExpiration(elapsedMs: number) {\n this.#toasts.update((toasts) =>\n toasts.map((toast) => ({ ...toast, remainingTime: toast.remainingTime - elapsedMs })),\n );\n\n this.#toasts().forEach((toast) => {\n if (toast.remainingTime <= 0) {\n this.close(toast.id);\n }\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|