@ndwnu/design-system 10.0.0 → 10.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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/icon/action-icon/action-icon.component.ts","../../../../libs/ndw/src/lib/components/icon/action-icon/action-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/error/error.component.ts","../../../../libs/ndw/src/lib/components/form-field/error/error.component.html","../../../../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/input.directive.ts","../../../../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/popover/popover-trigger.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/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/form-field/textarea/auto-grow.directive.ts","../../../../libs/ndw/src/lib/components/form-field/textarea/max-char.directive.ts","../../../../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.animation.ts","../../../../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.animation.ts","../../../../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/tag/tag.component.ts","../../../../libs/ndw/src/lib/components/tag/tag.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/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.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/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, input } from '@angular/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ndw-badge',\n styleUrl: './badge.component.scss',\n templateUrl: './badge.component.html',\n})\nexport class BadgeComponent {\n /**\n * The value of the badge\n */\n public value = input<number>();\n\n /**\n * The aria label, used by screen readers to give context.\n */\n public ariaLabel = input<string>();\n\n /**\n * When true, the badge will display values above 99.\n * When false (default), the badge will display values above 99 as a dot\n */\n public displayLargeNumbers = input<boolean>(false);\n}\n","@if (value(); as value) {\n @if (!displayLargeNumbers() && (value < -9 || value > 99)) {\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, output } from '@angular/core';\nimport { IconSize } from '@ndwnu/core';\n\nimport { IconComponent } from '../icon.component';\n\nexport type ButtonType = 'button' | 'submit' | 'reset';\nexport type IconVariant = 'primary' | 'link' | 'grey' | 'white';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconComponent],\n selector: 'ndw-action-icon',\n styleUrl: './action-icon.component.scss',\n templateUrl: './action-icon.component.html',\n})\nexport class ActionIconComponent {\n // ! This component is deprecated, use `button` with `extra-small` attribute instead.\n\n /**\n * Used to give meaning to the button, used by screen readers.\n */\n public ariaLabel = input.required<string>();\n\n /**\n * Color scheme of the ActionIcon, available `primary`, `link`,\n * `grey` and `white` (defaults to primary).\n */\n public variant = input<IconVariant>('primary');\n\n /**\n * Specify button type, defaults to `button`\n */\n public buttonType = input<ButtonType>('button');\n\n /**\n * Disables the button, defaults to `false`.\n */\n public disabled = input<boolean>(false);\n\n /**\n * Sets the size of the button, defaults to `md`.\n */\n public size = input<IconSize>('md');\n\n /**\n * Event emitted when the button is clicked.\n */\n public readonly clicked = output<void>();\n}\n","<button\n class=\"ndw-action-icon ndw-action-icon--{{ variant() }}\"\n [type]=\"buttonType()\"\n [disabled]=\"disabled()\"\n (click)=\"clicked.emit()\"\n>\n <span class=\"sr-only\">{{ ariaLabel() }}</span>\n <ndw-icon [size]=\"size()\"><ng-content /></ndw-icon>\n</button>\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, model } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { IconComponent } from '../../icon';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.checked]': 'checked()',\n '[class.disabled]': 'disabled()',\n '[class.indeterminate]': 'indeterminate()',\n },\n imports: [IconComponent, NgClass],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: CheckboxComponent,\n multi: true,\n },\n ],\n selector: 'ndw-checkbox',\n styleUrls: ['../checkable-input.scss', './checkbox.component.scss'],\n templateUrl: './checkbox.component.html',\n})\nexport class CheckboxComponent implements ControlValueAccessor {\n public checked = model(false);\n public switch = input(false);\n public disabled = model(false);\n public error = input(false);\n public success = input(false);\n public indeterminate = input(false);\n public required = input(false);\n\n public uuid = crypto.randomUUID();\n\n public onClick(): void {\n if (this.disabled()) {\n return;\n }\n\n this.checked.set(!this.checked());\n }\n\n public onKeyDown(event: KeyboardEvent): void {\n if (event.key !== 'Enter' || this.disabled()) {\n return;\n }\n\n this.checked.set(!this.checked());\n event.preventDefault();\n }\n\n public 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=\"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, contentChildren } from '@angular/core';\n\nimport { CheckboxComponent } from '../checkbox';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ndw-checkbox-group',\n styleUrl: './checkbox-group.component.scss',\n templateUrl: './checkbox-group.component.html',\n})\nexport class CheckboxGroupComponent {\n public checkboxes = contentChildren(CheckboxComponent);\n}\n","<ng-content />\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { IconComponent } from '../../icon';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconComponent],\n selector: 'ndw-error',\n styleUrl: './error.component.scss',\n templateUrl: './error.component.html',\n})\nexport class ErrorComponent {}\n","<ndw-icon>warning</ndw-icon>\n<ng-content />\n","import {\n Component,\n viewChild,\n input,\n model,\n ElementRef,\n computed,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { IconComponent } from '../../icon';\n\nimport { FileUploadText } from './file-upload-text.interface';\n\nconst MIME_TYPE_MAP: Record<string, string> = {\n geojson: 'application/geo+json',\n};\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 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 private readonly canEdit = computed(\n () => !this.selectedFile() && !this.disabled() && !this.readonly(),\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 url = window.URL.createObjectURL(this.selectedFile()!);\n const linkElement = document.createElement('a');\n linkElement.href = url;\n linkElement.download = this.selectedFile()!.name;\n document.body.appendChild(linkElement);\n linkElement.click();\n document.body.removeChild(linkElement);\n window.URL.revokeObjectURL(url);\n }\n\n public onDeleteClick(event: Event): void {\n event?.stopPropagation();\n this.resetFile();\n this.incorrectFileType.set(false);\n this.incorrectFileSize.set(false);\n }\n\n public displayText(): string {\n if (!this.selectedFile()) {\n return this.draggingOver()\n ? this.fileUploadText().dragOverText\n : this.fileUploadText().dragText;\n } else {\n return '';\n }\n }\n\n public onFileSelected(event: Event): void {\n if (this.canEdit()) {\n const inputElement = event.target as HTMLInputElement;\n if (inputElement.files) {\n const file: File = inputElement.files[0];\n this.selectFile(file);\n }\n }\n }\n\n public writeValue(value: File): void {\n this.selectedFile.set(value);\n }\n\n public registerOnChange(fn: (value: File | null | undefined) => void): void {\n this.selectedFile.subscribe(fn);\n }\n\n public registerOnTouched(): void {\n // noop\n }\n\n 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 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 mimeType = extension && MIME_TYPE_MAP[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 { 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 { 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 { 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\ntype 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 } 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 protected 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) {\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';\n\nimport { FormFieldElement } from '../form-field.model';\nimport { InputDirective, InputType } 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';\n\nimport { IconComponent } from '../icon';\nimport { TooltipDirective } from '../tooltip';\n\nimport { ClearSearchButtonComponent } from './clear-search-button';\nimport { ErrorComponent } from './error';\nimport { INPUT_CONTAINER_CLASS } from './form-field.constant';\nimport { FormFieldElement } from './form-field.model';\nimport { InfoComponent } from './info';\nimport { InputDirective, InputType } from './input';\nimport { InputIconComponent } from './input-icon';\nimport { MonthInputComponent } from './month-input';\nimport { PickerButtonComponent } from './picker-button';\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 regularInput = contentChild(InputDirective);\n protected readonly input = computed(() => this.regularInput() ?? this.monthInput()?.input());\n protected readonly inputType = computed(\n () => this.input()?.element.type as InputType | undefined,\n );\n protected readonly isSearchInput = computed(() => this.inputType() === 'search');\n protected readonly hasPickerButton = computed(\n () =>\n this.inputType() === 'date' ||\n this.inputType() === 'time' ||\n this.input()?.element.nodeName.toLowerCase() === FormFieldElement.Select,\n );\n\n protected readonly uuid = crypto.randomUUID();\n protected readonly descriptionUuid = crypto.randomUUID();\n protected readonly inputContainerClass = INPUT_CONTAINER_CLASS;\n\n public constructor() {\n effect(() => {\n const input = this.input();\n if (!input) {\n return;\n }\n\n this.setInputDisabledState(input);\n this.setInputErrorState();\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 { 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 { 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.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.backgroundColor = 'var(--ndw-color-white)';\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 { ChangeDetectionStrategy, Component, ElementRef, input, viewChild } from '@angular/core';\n\nimport { PillColor } from './pill.model';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'color()',\n class: 'ndw-paragraph-md',\n '[attr.title]': 'this.content()?.nativeElement?.textContent',\n },\n selector: 'ndw-pill',\n styleUrl: './pill.component.scss',\n templateUrl: './pill.component.html',\n})\nexport class PillComponent {\n /**\n * The color of the pill.\n */\n public readonly color = input<PillColor>('green');\n\n /**\n * The content of the pill.\n */\n private readonly content = viewChild<ElementRef>('content');\n}\n","<div #content>\n <ng-content />\n</div>\n","import { 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 } from '@ndwnu/core';\n\nimport { BadgeComponent } from '../badge';\nimport { CheckboxComponent, CheckType, RadioButtonComponent } from '../form-field';\nimport { IconComponent } from '../icon';\nimport { PillColor, 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 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 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 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\" />\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 { animate, state, style, transition, trigger } from '@angular/animations';\n\nexport const collapsibleAnimation = [\n trigger('collapsible', [\n state(\n 'open',\n style({\n maxHeight: '100vh',\n opacity: '1',\n }),\n ),\n state(\n 'closed',\n style({\n maxHeight: '0',\n opacity: '0',\n }),\n ),\n transition('open => closed', [\n animate(\n '200ms ease-in-out',\n style({\n maxHeight: '0px',\n opacity: '0',\n }),\n ),\n ]),\n transition('closed => open', [\n animate(\n '200ms ease-in-out',\n style({\n maxHeight: '100vh',\n opacity: '1',\n }),\n ),\n ]),\n ]),\n];\n","import { ChangeDetectionStrategy, Component, computed, inject, input, model } from '@angular/core';\n\nimport { AccordionService } from '../accordion';\nimport { ListItemComponent } from '../list-item';\n\nimport { collapsibleAnimation } from './collapsible.animation';\n\n@Component({\n animations: [collapsibleAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.expanded]': 'expanded()',\n },\n imports: [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\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 animationState = computed(() => (this.expanded() ? 'open' : 'closed'));\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 [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\n role=\"region\"\n class=\"content\"\n [id]=\"sectionUuid\"\n [attr.aria-labelledby]=\"toggleUuid\"\n [@collapsible]=\"animationState()\"\n>\n <ng-content />\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 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 private setReadMore(): void {\n this.showReadMore =\n this.textContent()?.nativeElement.scrollWidth > this.textContent()?.nativeElement.clientWidth;\n }\n}\n","<section>\n <ndw-icon class=\"info-icon\">info</ndw-icon>\n <p #textContent>\n <strong>{{ title() }}:</strong>\n {{ message() }}\n </p>\n @if (showReadMore) {\n <p>{{ readMoreLabel() }}</p>\n }\n</section>\n<button 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 host: {\n 'aria-label': 'Breadcrumb',\n role: 'navigation',\n },\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 { animate, state, style, transition, trigger } from '@angular/animations';\n\nexport const CARD_ANIMATION = trigger('cardAnimation', [\n state(\n 'closed',\n style({\n height: '{{ headerHeight }}px',\n }),\n { params: { headerHeight: 0 } },\n ),\n state(\n 'open',\n style({\n height: '*',\n }),\n ),\n transition('closed <=> open', [animate('200ms ease-in-out')]),\n]);\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n inject,\n InjectionToken,\n model,\n signal,\n} from '@angular/core';\nimport { CardHeaderComponent } from './card-header';\nimport { CARD_ANIMATION } from './card.animation';\n\nexport const CARD_ID_TOKEN = new InjectionToken<string>('CARD_ID_TOKEN');\n\n@Component({\n animations: [CARD_ANIMATION],\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ndw-card',\n styleUrl: './card.component.scss',\n templateUrl: './card.component.html',\n providers: [\n {\n provide: CARD_ID_TOKEN,\n useFactory: () => `ndw-card-${crypto.randomUUID()}`,\n },\n ],\n host: {\n id: 'cardId',\n '[@cardAnimation]': 'animationState()',\n '[class.collapsible]': 'isCollapsable()',\n },\n})\nexport class CardComponent implements AfterContentInit {\n private readonly header = contentChild<CardHeaderComponent>(CardHeaderComponent);\n private readonly headerHeight = signal(0);\n public readonly cardId = inject(CARD_ID_TOKEN);\n\n 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 animationState = computed(() => ({\n value: this.isCollapsed() ? 'closed' : 'open',\n params: { headerHeight: this.headerHeight() },\n }));\n}\n","<ng-content />\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n input,\n model,\n} from '@angular/core';\nimport { IconComponent } from '../../icon';\nimport { 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 { 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 {\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=\"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 { FormsModule } from '@angular/forms';\nimport { IconComponent } from '../icon';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.checked]': 'checked()',\n },\n imports: [IconComponent, FormsModule],\n selector: 'ndw-favorite',\n styleUrl: './favorite.component.scss',\n templateUrl: './favorite.component.html',\n})\nexport class FavoriteComponent {\n public checked = model(false);\n\n public uuid = crypto.randomUUID();\n}\n","<input type=\"checkbox\" [id]=\"uuid\" [(ngModel)]=\"checked\" class=\"sr-only\" tabindex=\"0\" />\n\n<label [for]=\"uuid\">\n <span class=\"sr-only\">favorite</span>\n <ndw-icon [filled]=\"checked()\">favorite</ndw-icon>\n</label>\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 closeButtonLabel = input.required<string>();\n isExpanded = input.required<boolean>();\n isMobile = input.required<boolean>();\n menuButtonLabel = input.required<string>();\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()\">\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() : environment()?.charAt(0) }}\n </ndw-pill>\n }\n @if (isMobile()) {\n <button ndwButton class=\"mobile-menu-button\" (click)=\"toggleMobileMenu()\">\n {{ isMobileMenuOpen() ? closeButtonLabel() : menuButtonLabel() }}\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 { IconComponent } from '../../icon';\nimport { MenuItem, SubMenuItem } from '../main-navigation.model';\n\n@Component({\n imports: [CdkMenu, CdkMenuItem, CdkMenuTrigger, IconComponent, RouterLink],\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 cdkMenuItem ndwButton menu (click)=\"closeMobileMenu(item)\">\n <ndw-icon>{{ item.icon }}</ndw-icon>\n @if (isExpanded() || isMobile()) {\n {{ item.label }}\n }\n </button>\n } @else {\n <a\n cdkMenuItem\n ndwButton\n menu\n [queryParams]=\"item.queryParams\"\n [routerLink]=\"item.path\"\n (click)=\"closeMobileMenu()\"\n >\n <ndw-icon>{{ item.icon }}</ndw-icon>\n @if (isExpanded() || isMobile()) {\n {{ item.label }}\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 @if (isExpanded() || isMobile()) {\n {{ item.label }}\n <ndw-icon class=\"suffix\">\n {{ activeMobileItem() !== item ? 'arrow_drop_down' : 'arrow_drop_up' }}\n </ndw-icon>\n }\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 class=\"sub-menu-button\"\n (click)=\"closeMobileMenu(subItem)\"\n >\n {{ subItem.label }}\n </button>\n } @else {\n <a\n cdkMenuItem\n ndwButton\n menu\n class=\"sub-menu-button\"\n [queryParams]=\"subItem.queryParams\"\n [routerLink]=\"subItem.path\"\n (click)=\"closeMobileMenu(subItem)\"\n >\n {{ subItem.label }}\n </a>\n }\n }\n }\n } @else {\n <button cdkMenuItem ndwButton menu [cdkMenuTriggerFor]=\"subMenu\">\n <ndw-icon>{{ item.icon }}</ndw-icon>\n @if (isExpanded() || isMobile()) {\n {{ item.label }}\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 cdkMenuItem ndwButton menu (click)=\"subItem.callback()\">\n {{ subItem.label }}\n </button>\n } @else {\n <a\n cdkMenuItem\n ndwButton\n menu\n [queryParams]=\"subItem.queryParams\"\n [routerLink]=\"subItem.path\"\n >\n {{ subItem.label }}\n </a>\n }\n }\n </div>\n </ng-template>\n }\n }\n</div>\n","import { DOCUMENT } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n model,\n Renderer2,\n signal,\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 closeButtonLabel = input('Sluit');\n environment = input<Environment>();\n footerTexts = input<string[]>();\n isCollapsible = input(true);\n menuButtonLabel = input('Menu');\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 [closeButtonLabel]=\"closeButtonLabel()\"\n [environment]=\"environment()\"\n [isExpanded]=\"isExpanded()\"\n [isMobile]=\"isMobile()\"\n [menuButtonLabel]=\"menuButtonLabel()\"\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] as const;\n\nexport const svgMapButtonIcons = [\n 'add-traffic-sign',\n 'add-zone',\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 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 };\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 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 };\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 {\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 {\n MapBackgroundOption,\n MapDisplayOption,\n MapDisplayOptionComponent,\n} from './map-display-option';\nimport { CommonModule } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { IconComponent } from '../icon';\nimport { TagComponent } from '../tag';\n\n@Component({\n selector: 'ndw-map-display',\n imports: [CommonModule, 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>('Kaarweergave');\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 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 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\n public isOpenChanged(isOpen: boolean): void {\n if (isOpen) {\n this.dataSource.set(\n this.dataSource()\n .slice()\n .sort((a, b) => Number(b.value) - Number(a.value)),\n );\n this.searchInputValue.set('');\n this.determineLastCheckedElement();\n }\n }\n\n private determineLastCheckedElement(): void {\n if (this.dataSource().some((checkbox) => !checkbox.value)) {\n const sourceList = [...this.dataSource()];\n const lastChecked = sourceList.reverse().find((checkbox) => checkbox.value);\n this.lastCheckedElementId.set(lastChecked ? lastChecked.id : null);\n } else {\n this.lastCheckedElementId.set(null);\n }\n }\n}\n","<ndw-dropdown\n prefixIcon=\"filter_alt\"\n [selectAmount]=\"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 dataSource(); 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; as image) {\n <img [src]=\"image.src\" [alt]=\"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","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';\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 * Optional width of the first panel (in pixels) when the component is initialized.\n */\n public readonly initialPanelWidth = input<number>();\n\n /**\n * Minimum width of both panels (in pixels).\n */\n public readonly minimumPanelWidth = input<number>(0);\n\n protected readonly firstPanelWidth = signal(0);\n protected readonly secondPanelWidth = computed(() =>\n this.clampPanelWidth(this.availableWidth() - this.firstPanelWidth()),\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 storedFirstPanelWidth = 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({\n containerWidth: 0,\n containerLeft: 0,\n splitterWidth: 0,\n });\n\n private readonly resizeObserver = new ResizeObserver(() => {\n const container = this.container().nativeElement.getBoundingClientRect();\n const splitter = this.splitter().nativeElement.getBoundingClientRect();\n\n this.dragElementDimensions.set({\n containerWidth: Math.round(container.width),\n containerLeft: Math.round(container.left),\n splitterWidth: Math.round(splitter.width),\n });\n });\n\n /**\n * Available width for the panels, without considering the `minimumPanelWidth` input.\n */\n private readonly availableWidth = computed(() => {\n const { containerWidth, splitterWidth } = this.dragElementDimensions();\n return 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.availableWidth() / 2);\n\n /**\n * Minimum panel width that is safe to use, considering the\n * available container width and the `minimumPanelWidth` input.\n */\n protected readonly safeMinPanelWidth = computed(() =>\n clamp(this.minimumPanelWidth(), 0, this.availableWidth()),\n );\n\n /**\n * Maximum panel width that is safe to use, considering the\n * available container width and the `minimumPanelWidth\n */\n protected readonly safeMaxPanelWidth = computed(() =>\n clamp(\n this.availableWidth() - this.safeMinPanelWidth(),\n this.safeMinPanelWidth(),\n this.availableWidth(),\n ),\n );\n\n constructor() {\n // Update panel width and drag position when the minimum panel or container width change\n effect(() => {\n const minimumPanelWidth = this.minimumPanelWidth();\n const containerWidth = this.dragElementDimensions().containerWidth;\n\n if (minimumPanelWidth === 0 && containerWidth === 0) {\n return;\n }\n\n untracked(() => {\n this.setFirstPanelWidth();\n this.setDragPosition(this.firstPanelWidth());\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 = (userPointerPosition: Point) => {\n const { containerLeft } = this.dragElementDimensions();\n\n return {\n x: clamp(\n userPointerPosition.x,\n this.safeMinPanelWidth() + containerLeft,\n this.safeMaxPanelWidth() + containerLeft,\n ),\n y: 0,\n };\n };\n\n protected onDragStarted() {\n this.storeFirstPanelWidth();\n this.isDragging.set(true);\n }\n\n protected onDragEnded() {\n this.isDragging.set(false);\n }\n\n protected onDragMoved() {\n this.setFirstPanelWidth();\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\n if (\n this.firstPanelWidth() <= this.safeMinPanelWidth() ||\n this.secondPanelWidth() <= this.safeMinPanelWidth()\n ) {\n // Return to initial panel widths\n const x = drag.getFreeDragPosition().x + this.storedFirstPanelWidth - this.firstPanelWidth();\n drag.setFreeDragPosition({ x, y: 0 });\n } else if (this.firstPanelWidth() < this.secondPanelWidth()) {\n // Store current left panel width so we can restore it later\n this.storeFirstPanelWidth();\n\n // Maximize right panel\n const x = drag.getFreeDragPosition().x - (this.safeMaxPanelWidth() - this.secondPanelWidth());\n drag.setFreeDragPosition({ x, y: 0 });\n } else {\n // Store current left panel width so we can restore it later\n this.storeFirstPanelWidth();\n\n // Maximize left panel\n const x = drag.getFreeDragPosition().x + (this.safeMaxPanelWidth() - this.firstPanelWidth());\n drag.setFreeDragPosition({ x, y: 0 });\n }\n\n this.setFirstPanelWidth();\n }\n\n protected setDragPosition(position: number) {\n const { containerWidth, splitterWidth } = this.dragElementDimensions();\n const halfContainerWidth = containerWidth / 2;\n const halfSplitterWidth = splitterWidth / 2;\n const distance = position - halfContainerWidth + halfSplitterWidth;\n\n this.cdkDrag().setFreeDragPosition({ x: distance, y: 0 });\n }\n\n protected storeFirstPanelWidth() {\n this.storedFirstPanelWidth = this.clampPanelWidth(\n this.dragStartPosition() + this.cdkDrag().getFreeDragPosition().x,\n );\n }\n\n private setFirstPanelWidth() {\n this.firstPanelWidth.set(\n this.clampPanelWidth(this.dragStartPosition() + this.cdkDrag().getFreeDragPosition().x),\n );\n }\n\n private clampPanelWidth(width: number) {\n return clamp(width, this.safeMinPanelWidth(), this.safeMaxPanelWidth());\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 #container class=\"panels\" [class.dragging]=\"isDragging()\">\n <div class=\"panel\" [style.width]=\"firstPanelWidth() + 'px'\">\n <ng-content select=\"[first-panel]\"></ng-content>\n </div>\n <div\n #splitter\n class=\"splitter\"\n role=\"separator\"\n aria-orientation=\"vertical\"\n [attr.aria-valuenow]=\"firstPanelWidth()\"\n [attr.aria-valuemin]=\"safeMinPanelWidth()\"\n [attr.aria-valuemax]=\"safeMaxPanelWidth()\"\n cdkDrag\n cdkDragLockAxis=\"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 <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 </div>\n <div class=\"panel\" [style.width]=\"secondPanelWidth() + 'px'\">\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 { 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 active = false;\n id = 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 ChangeDetectionStrategy,\n Component,\n computed,\n contentChildren,\n ElementRef,\n input,\n model,\n viewChildren,\n} from '@angular/core';\n\nimport { TabComponent } from '../tab';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\nimport { NgClass } from '@angular/common';\n\n@Component({\n selector: 'ndw-tab-group',\n styleUrl: './tab-group.component.scss',\n templateUrl: './tab-group.component.html',\n imports: [CdkPortalOutlet, NgClass],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TabGroupComponent {\n private readonly _tabs = contentChildren(TabComponent);\n private readonly _tabButtons = viewChildren<ElementRef>('tabButton');\n\n public tabs = computed(() =>\n this._tabs().map((tab, i) => {\n tab.active = i === this.activeTab();\n return tab;\n }),\n );\n public activeTab = model(0);\n public inlinePadding = input(0);\n\n selectTab(index: number) {\n this.activeTab.set(index);\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.activeTab();\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.getNextEnabledIndex(tabCount, 0, 1));\n break;\n case 'End':\n event.preventDefault();\n this.selectTab(this.getNextEnabledIndex(tabCount, -1, -1));\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","<div class=\"tab-group\" role=\"tablist\" [style.--padding-inline]=\"inlinePadding() + 'px'\">\n @for (tab of tabs(); track tab.id; let i = $index) {\n <button\n #tabButton\n role=\"tab\"\n class=\"tab-button\"\n [attr.active]=\"tab.active ? true : undefined\"\n [attr.aria-selected]=\"tab.active\"\n [attr.aria-controls]=\"'tab-panel-' + tab.id\"\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 {{ tab.title() }}\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-primary)',\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 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 ndwButton tertiary alternative extra-small (click)=\"closed.emit()\" aria-label=\"Sluit\">\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 [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}\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) {\n const id = crypto.randomUUID();\n\n this.#addToast({\n id,\n message,\n duration: duration ?? 5000,\n remainingTime: duration ?? 5000,\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/icon/action-icon/action-icon.component.ts","../../../../libs/ndw/src/lib/components/icon/action-icon/action-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/error/error.component.ts","../../../../libs/ndw/src/lib/components/form-field/error/error.component.html","../../../../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/input.directive.ts","../../../../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/popover/popover-trigger.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/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/form-field/textarea/auto-grow.directive.ts","../../../../libs/ndw/src/lib/components/form-field/textarea/max-char.directive.ts","../../../../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.animation.ts","../../../../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.animation.ts","../../../../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/tag/tag.component.ts","../../../../libs/ndw/src/lib/components/tag/tag.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/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.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/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, input } from '@angular/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ndw-badge',\n styleUrl: './badge.component.scss',\n templateUrl: './badge.component.html',\n})\nexport class BadgeComponent {\n /**\n * The value of the badge\n */\n public value = input<number>();\n\n /**\n * The aria label, used by screen readers to give context.\n */\n public ariaLabel = input<string>();\n\n /**\n * When true, the badge will display values above 99.\n * When false (default), the badge will display values above 99 as a dot\n */\n public displayLargeNumbers = input<boolean>(false);\n}\n","@if (value(); as value) {\n @if (!displayLargeNumbers() && (value < -9 || value > 99)) {\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, output } from '@angular/core';\nimport { IconSize } from '@ndwnu/core';\n\nimport { IconComponent } from '../icon.component';\n\nexport type ButtonType = 'button' | 'submit' | 'reset';\nexport type IconVariant = 'primary' | 'link' | 'grey' | 'white';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconComponent],\n selector: 'ndw-action-icon',\n styleUrl: './action-icon.component.scss',\n templateUrl: './action-icon.component.html',\n})\nexport class ActionIconComponent {\n // ! This component is deprecated, use `button` with `extra-small` attribute instead.\n\n /**\n * Used to give meaning to the button, used by screen readers.\n */\n public ariaLabel = input.required<string>();\n\n /**\n * Color scheme of the ActionIcon, available `primary`, `link`,\n * `grey` and `white` (defaults to primary).\n */\n public variant = input<IconVariant>('primary');\n\n /**\n * Specify button type, defaults to `button`\n */\n public buttonType = input<ButtonType>('button');\n\n /**\n * Disables the button, defaults to `false`.\n */\n public disabled = input<boolean>(false);\n\n /**\n * Sets the size of the button, defaults to `md`.\n */\n public size = input<IconSize>('md');\n\n /**\n * Event emitted when the button is clicked.\n */\n public readonly clicked = output<void>();\n}\n","<button\n class=\"ndw-action-icon ndw-action-icon--{{ variant() }}\"\n [type]=\"buttonType()\"\n [disabled]=\"disabled()\"\n (click)=\"clicked.emit()\"\n>\n <span class=\"sr-only\">{{ ariaLabel() }}</span>\n <ndw-icon [size]=\"size()\"><ng-content /></ndw-icon>\n</button>\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, model } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { IconComponent } from '../../icon';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.checked]': 'checked()',\n '[class.disabled]': 'disabled()',\n '[class.indeterminate]': 'indeterminate()',\n },\n imports: [IconComponent, NgClass],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: CheckboxComponent,\n multi: true,\n },\n ],\n selector: 'ndw-checkbox',\n styleUrls: ['../checkable-input.scss', './checkbox.component.scss'],\n templateUrl: './checkbox.component.html',\n})\nexport class CheckboxComponent implements ControlValueAccessor {\n public checked = model(false);\n public switch = input(false);\n public disabled = model(false);\n public error = input(false);\n public success = input(false);\n public indeterminate = input(false);\n public required = input(false);\n\n public uuid = crypto.randomUUID();\n\n public onClick(): void {\n if (this.disabled()) {\n return;\n }\n\n this.checked.set(!this.checked());\n }\n\n public onKeyDown(event: KeyboardEvent): void {\n if (event.key !== 'Enter' || this.disabled()) {\n return;\n }\n\n this.checked.set(!this.checked());\n event.preventDefault();\n }\n\n public 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=\"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, contentChildren } from '@angular/core';\n\nimport { CheckboxComponent } from '../checkbox';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ndw-checkbox-group',\n styleUrl: './checkbox-group.component.scss',\n templateUrl: './checkbox-group.component.html',\n})\nexport class CheckboxGroupComponent {\n public checkboxes = contentChildren(CheckboxComponent);\n}\n","<ng-content />\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { IconComponent } from '../../icon';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconComponent],\n selector: 'ndw-error',\n styleUrl: './error.component.scss',\n templateUrl: './error.component.html',\n})\nexport class ErrorComponent {}\n","<ndw-icon>warning</ndw-icon>\n<ng-content />\n","import {\n Component,\n viewChild,\n input,\n model,\n ElementRef,\n computed,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { IconComponent } from '../../icon';\n\nimport { FileUploadText } from './file-upload-text.interface';\n\nconst MIME_TYPE_MAP: Record<string, string> = {\n geojson: 'application/geo+json',\n};\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 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 private readonly canEdit = computed(\n () => !this.selectedFile() && !this.disabled() && !this.readonly(),\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 url = window.URL.createObjectURL(this.selectedFile()!);\n const linkElement = document.createElement('a');\n linkElement.href = url;\n linkElement.download = this.selectedFile()!.name;\n document.body.appendChild(linkElement);\n linkElement.click();\n document.body.removeChild(linkElement);\n window.URL.revokeObjectURL(url);\n }\n\n public onDeleteClick(event: Event): void {\n event?.stopPropagation();\n this.resetFile();\n this.incorrectFileType.set(false);\n this.incorrectFileSize.set(false);\n }\n\n public displayText(): string {\n if (!this.selectedFile()) {\n return this.draggingOver()\n ? this.fileUploadText().dragOverText\n : this.fileUploadText().dragText;\n } else {\n return '';\n }\n }\n\n public onFileSelected(event: Event): void {\n if (this.canEdit()) {\n const inputElement = event.target as HTMLInputElement;\n if (inputElement.files) {\n const file: File = inputElement.files[0];\n this.selectFile(file);\n }\n }\n }\n\n public writeValue(value: File): void {\n this.selectedFile.set(value);\n }\n\n public registerOnChange(fn: (value: File | null | undefined) => void): void {\n this.selectedFile.subscribe(fn);\n }\n\n public registerOnTouched(): void {\n // noop\n }\n\n 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 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 mimeType = extension && MIME_TYPE_MAP[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 { 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 { 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 { 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\ntype 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 } 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 protected 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) {\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';\n\nimport { FormFieldElement } from '../form-field.model';\nimport { InputDirective, InputType } 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';\n\nimport { IconComponent } from '../icon';\nimport { TooltipDirective } from '../tooltip';\n\nimport { ClearSearchButtonComponent } from './clear-search-button';\nimport { ErrorComponent } from './error';\nimport { INPUT_CONTAINER_CLASS } from './form-field.constant';\nimport { FormFieldElement } from './form-field.model';\nimport { InfoComponent } from './info';\nimport { InputDirective, InputType } from './input';\nimport { InputIconComponent } from './input-icon';\nimport { MonthInputComponent } from './month-input';\nimport { PickerButtonComponent } from './picker-button';\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 regularInput = contentChild(InputDirective);\n protected readonly input = computed(() => this.regularInput() ?? this.monthInput()?.input());\n protected readonly inputType = computed(\n () => this.input()?.element.type as InputType | undefined,\n );\n protected readonly isSearchInput = computed(() => this.inputType() === 'search');\n protected readonly hasPickerButton = computed(\n () =>\n this.inputType() === 'date' ||\n this.inputType() === 'time' ||\n this.input()?.element.nodeName.toLowerCase() === FormFieldElement.Select,\n );\n\n protected readonly uuid = crypto.randomUUID();\n protected readonly descriptionUuid = crypto.randomUUID();\n protected readonly inputContainerClass = INPUT_CONTAINER_CLASS;\n\n public constructor() {\n effect(() => {\n const input = this.input();\n if (!input) {\n return;\n }\n\n this.setInputDisabledState(input);\n this.setInputErrorState();\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 { 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 { 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.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.backgroundColor = 'var(--ndw-color-white)';\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 { ChangeDetectionStrategy, Component, ElementRef, input, viewChild } from '@angular/core';\n\nimport { PillColor } from './pill.model';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'color()',\n class: 'ndw-paragraph-md',\n '[attr.title]': 'this.content()?.nativeElement?.textContent',\n },\n selector: 'ndw-pill',\n styleUrl: './pill.component.scss',\n templateUrl: './pill.component.html',\n})\nexport class PillComponent {\n /**\n * The color of the pill.\n */\n public readonly color = input<PillColor>('green');\n\n /**\n * The content of the pill.\n */\n private readonly content = viewChild<ElementRef>('content');\n}\n","<div #content>\n <ng-content />\n</div>\n","import { 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 } from '@ndwnu/core';\n\nimport { BadgeComponent } from '../badge';\nimport { CheckboxComponent, CheckType, RadioButtonComponent } from '../form-field';\nimport { IconComponent } from '../icon';\nimport { PillColor, 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 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 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 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\" />\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 { animate, state, style, transition, trigger } from '@angular/animations';\n\nexport const collapsibleAnimation = [\n trigger('collapsible', [\n state(\n 'open',\n style({\n maxHeight: '100vh',\n opacity: '1',\n }),\n ),\n state(\n 'closed',\n style({\n maxHeight: '0',\n opacity: '0',\n }),\n ),\n transition('open => closed', [\n animate(\n '200ms ease-in-out',\n style({\n maxHeight: '0px',\n opacity: '0',\n }),\n ),\n ]),\n transition('closed => open', [\n animate(\n '200ms ease-in-out',\n style({\n maxHeight: '100vh',\n opacity: '1',\n }),\n ),\n ]),\n ]),\n];\n","import { ChangeDetectionStrategy, Component, computed, inject, input, model } from '@angular/core';\n\nimport { AccordionService } from '../accordion';\nimport { ListItemComponent } from '../list-item';\n\nimport { collapsibleAnimation } from './collapsible.animation';\n\n@Component({\n animations: [collapsibleAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.expanded]': 'expanded()',\n },\n imports: [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\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 animationState = computed(() => (this.expanded() ? 'open' : 'closed'));\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 [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\n role=\"region\"\n class=\"content\"\n [id]=\"sectionUuid\"\n [attr.aria-labelledby]=\"toggleUuid\"\n [@collapsible]=\"animationState()\"\n>\n <ng-content />\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 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 private setReadMore(): void {\n this.showReadMore =\n this.textContent()?.nativeElement.scrollWidth > this.textContent()?.nativeElement.clientWidth;\n }\n}\n","<section>\n <ndw-icon class=\"info-icon\">info</ndw-icon>\n <p #textContent>\n <strong>{{ title() }}:</strong>\n {{ message() }}\n </p>\n @if (showReadMore) {\n <p>{{ readMoreLabel() }}</p>\n }\n</section>\n<button 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 host: {\n 'aria-label': 'Breadcrumb',\n role: 'navigation',\n },\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 { animate, state, style, transition, trigger } from '@angular/animations';\n\nexport const CARD_ANIMATION = trigger('cardAnimation', [\n state(\n 'closed',\n style({\n height: '{{ headerHeight }}px',\n }),\n { params: { headerHeight: 0 } },\n ),\n state(\n 'open',\n style({\n height: '*',\n }),\n ),\n transition('closed <=> open', [animate('200ms ease-in-out')]),\n]);\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n inject,\n InjectionToken,\n model,\n signal,\n} from '@angular/core';\nimport { CardHeaderComponent } from './card-header';\nimport { CARD_ANIMATION } from './card.animation';\n\nexport const CARD_ID_TOKEN = new InjectionToken<string>('CARD_ID_TOKEN');\n\n@Component({\n animations: [CARD_ANIMATION],\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ndw-card',\n styleUrl: './card.component.scss',\n templateUrl: './card.component.html',\n providers: [\n {\n provide: CARD_ID_TOKEN,\n useFactory: () => `ndw-card-${crypto.randomUUID()}`,\n },\n ],\n host: {\n id: 'cardId',\n '[@cardAnimation]': 'animationState()',\n '[class.collapsible]': 'isCollapsable()',\n },\n})\nexport class CardComponent implements AfterContentInit {\n private readonly header = contentChild<CardHeaderComponent>(CardHeaderComponent);\n private readonly headerHeight = signal(0);\n public readonly cardId = inject(CARD_ID_TOKEN);\n\n 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 animationState = computed(() => ({\n value: this.isCollapsed() ? 'closed' : 'open',\n params: { headerHeight: this.headerHeight() },\n }));\n}\n","<ng-content />\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n input,\n model,\n} from '@angular/core';\nimport { IconComponent } from '../../icon';\nimport { 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 { 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 {\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=\"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 { FormsModule } from '@angular/forms';\nimport { IconComponent } from '../icon';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.checked]': 'checked()',\n },\n imports: [IconComponent, FormsModule],\n selector: 'ndw-favorite',\n styleUrl: './favorite.component.scss',\n templateUrl: './favorite.component.html',\n})\nexport class FavoriteComponent {\n public checked = model(false);\n\n public uuid = crypto.randomUUID();\n}\n","<input type=\"checkbox\" [id]=\"uuid\" [(ngModel)]=\"checked\" class=\"sr-only\" tabindex=\"0\" />\n\n<label [for]=\"uuid\">\n <span class=\"sr-only\">favorite</span>\n <ndw-icon [filled]=\"checked()\">favorite</ndw-icon>\n</label>\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 closeButtonLabel = input.required<string>();\n isExpanded = input.required<boolean>();\n isMobile = input.required<boolean>();\n menuButtonLabel = input.required<string>();\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()\">\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() : environment()?.charAt(0) }}\n </ndw-pill>\n }\n @if (isMobile()) {\n <button ndwButton class=\"mobile-menu-button\" (click)=\"toggleMobileMenu()\">\n {{ isMobileMenuOpen() ? closeButtonLabel() : menuButtonLabel() }}\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 { IconComponent } from '../../icon';\nimport { MenuItem, SubMenuItem } from '../main-navigation.model';\n\n@Component({\n imports: [CdkMenu, CdkMenuItem, CdkMenuTrigger, IconComponent, RouterLink],\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 cdkMenuItem ndwButton menu (click)=\"closeMobileMenu(item)\">\n <ndw-icon>{{ item.icon }}</ndw-icon>\n @if (isExpanded() || isMobile()) {\n {{ item.label }}\n }\n </button>\n } @else {\n <a\n cdkMenuItem\n ndwButton\n menu\n [queryParams]=\"item.queryParams\"\n [routerLink]=\"item.path\"\n (click)=\"closeMobileMenu()\"\n >\n <ndw-icon>{{ item.icon }}</ndw-icon>\n @if (isExpanded() || isMobile()) {\n {{ item.label }}\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 @if (isExpanded() || isMobile()) {\n {{ item.label }}\n <ndw-icon class=\"suffix\">\n {{ activeMobileItem() !== item ? 'arrow_drop_down' : 'arrow_drop_up' }}\n </ndw-icon>\n }\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 class=\"sub-menu-button\"\n (click)=\"closeMobileMenu(subItem)\"\n >\n {{ subItem.label }}\n </button>\n } @else {\n <a\n cdkMenuItem\n ndwButton\n menu\n class=\"sub-menu-button\"\n [queryParams]=\"subItem.queryParams\"\n [routerLink]=\"subItem.path\"\n (click)=\"closeMobileMenu(subItem)\"\n >\n {{ subItem.label }}\n </a>\n }\n }\n }\n } @else {\n <button cdkMenuItem ndwButton menu [cdkMenuTriggerFor]=\"subMenu\">\n <ndw-icon>{{ item.icon }}</ndw-icon>\n @if (isExpanded() || isMobile()) {\n {{ item.label }}\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 cdkMenuItem ndwButton menu (click)=\"subItem.callback()\">\n {{ subItem.label }}\n </button>\n } @else {\n <a\n cdkMenuItem\n ndwButton\n menu\n [queryParams]=\"subItem.queryParams\"\n [routerLink]=\"subItem.path\"\n >\n {{ subItem.label }}\n </a>\n }\n }\n </div>\n </ng-template>\n }\n }\n</div>\n","import { DOCUMENT } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n model,\n Renderer2,\n signal,\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 closeButtonLabel = input('Sluit');\n environment = input<Environment>();\n footerTexts = input<string[]>();\n isCollapsible = input(true);\n menuButtonLabel = input('Menu');\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 [closeButtonLabel]=\"closeButtonLabel()\"\n [environment]=\"environment()\"\n [isExpanded]=\"isExpanded()\"\n [isMobile]=\"isMobile()\"\n [menuButtonLabel]=\"menuButtonLabel()\"\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] as const;\n\nexport const svgMapButtonIcons = [\n 'add-traffic-sign',\n 'add-zone',\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 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 };\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 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 };\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 {\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 {\n MapBackgroundOption,\n MapDisplayOption,\n MapDisplayOptionComponent,\n} from './map-display-option';\nimport { CommonModule } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { IconComponent } from '../icon';\nimport { TagComponent } from '../tag';\n\n@Component({\n selector: 'ndw-map-display',\n imports: [CommonModule, 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>('Kaarweergave');\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 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 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\n public isOpenChanged(isOpen: boolean): void {\n if (isOpen) {\n this.dataSource.set(\n this.dataSource()\n .slice()\n .sort((a, b) => Number(b.value) - Number(a.value)),\n );\n this.searchInputValue.set('');\n this.determineLastCheckedElement();\n }\n }\n\n private determineLastCheckedElement(): void {\n if (this.dataSource().some((checkbox) => !checkbox.value)) {\n const sourceList = [...this.dataSource()];\n const lastChecked = sourceList.reverse().find((checkbox) => checkbox.value);\n this.lastCheckedElementId.set(lastChecked ? lastChecked.id : null);\n } else {\n this.lastCheckedElementId.set(null);\n }\n }\n}\n","<ndw-dropdown\n prefixIcon=\"filter_alt\"\n [selectAmount]=\"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 dataSource(); 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; as image) {\n <img [src]=\"image.src\" [alt]=\"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","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';\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 * Optional width of the first panel (in pixels) when the component is initialized.\n */\n public readonly initialPanelWidth = input<number>();\n\n /**\n * Minimum width of both panels (in pixels).\n */\n public readonly minimumPanelWidth = input<number>(0);\n\n protected readonly firstPanelWidth = signal(0);\n protected readonly secondPanelWidth = computed(() =>\n this.clampPanelWidth(this.availableWidth() - this.firstPanelWidth()),\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 storedFirstPanelWidth = 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({\n containerWidth: 0,\n containerLeft: 0,\n splitterWidth: 0,\n });\n\n private readonly resizeObserver = new ResizeObserver(() => {\n const container = this.container().nativeElement.getBoundingClientRect();\n const splitter = this.splitter().nativeElement.getBoundingClientRect();\n\n this.dragElementDimensions.set({\n containerWidth: Math.round(container.width),\n containerLeft: Math.round(container.left),\n splitterWidth: Math.round(splitter.width),\n });\n });\n\n /**\n * Available width for the panels, without considering the `minimumPanelWidth` input.\n */\n private readonly availableWidth = computed(() => {\n const { containerWidth, splitterWidth } = this.dragElementDimensions();\n return 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.availableWidth() / 2);\n\n /**\n * Minimum panel width that is safe to use, considering the\n * available container width and the `minimumPanelWidth` input.\n */\n protected readonly safeMinPanelWidth = computed(() =>\n clamp(this.minimumPanelWidth(), 0, this.availableWidth()),\n );\n\n /**\n * Maximum panel width that is safe to use, considering the\n * available container width and the `minimumPanelWidth\n */\n protected readonly safeMaxPanelWidth = computed(() =>\n clamp(\n this.availableWidth() - this.safeMinPanelWidth(),\n this.safeMinPanelWidth(),\n this.availableWidth(),\n ),\n );\n\n constructor() {\n // Update panel width and drag position when the minimum panel or container width change\n effect(() => {\n const minimumPanelWidth = this.minimumPanelWidth();\n const containerWidth = this.dragElementDimensions().containerWidth;\n\n if (minimumPanelWidth === 0 && containerWidth === 0) {\n return;\n }\n\n untracked(() => {\n this.setFirstPanelWidth();\n this.setDragPosition(this.firstPanelWidth());\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 = (userPointerPosition: Point) => {\n const { containerLeft } = this.dragElementDimensions();\n\n return {\n x: clamp(\n userPointerPosition.x,\n this.safeMinPanelWidth() + containerLeft,\n this.safeMaxPanelWidth() + containerLeft,\n ),\n y: 0,\n };\n };\n\n protected onDragStarted() {\n this.storeFirstPanelWidth();\n this.isDragging.set(true);\n }\n\n protected onDragEnded() {\n this.isDragging.set(false);\n }\n\n protected onDragMoved() {\n this.setFirstPanelWidth();\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\n if (\n this.firstPanelWidth() <= this.safeMinPanelWidth() ||\n this.secondPanelWidth() <= this.safeMinPanelWidth()\n ) {\n // Return to initial panel widths\n const x = drag.getFreeDragPosition().x + this.storedFirstPanelWidth - this.firstPanelWidth();\n drag.setFreeDragPosition({ x, y: 0 });\n } else if (this.firstPanelWidth() < this.secondPanelWidth()) {\n // Store current left panel width so we can restore it later\n this.storeFirstPanelWidth();\n\n // Maximize right panel\n const x = drag.getFreeDragPosition().x - (this.safeMaxPanelWidth() - this.secondPanelWidth());\n drag.setFreeDragPosition({ x, y: 0 });\n } else {\n // Store current left panel width so we can restore it later\n this.storeFirstPanelWidth();\n\n // Maximize left panel\n const x = drag.getFreeDragPosition().x + (this.safeMaxPanelWidth() - this.firstPanelWidth());\n drag.setFreeDragPosition({ x, y: 0 });\n }\n\n this.setFirstPanelWidth();\n }\n\n protected setDragPosition(position: number) {\n const { containerWidth, splitterWidth } = this.dragElementDimensions();\n const halfContainerWidth = containerWidth / 2;\n const halfSplitterWidth = splitterWidth / 2;\n const distance = position - halfContainerWidth + halfSplitterWidth;\n\n this.cdkDrag().setFreeDragPosition({ x: distance, y: 0 });\n }\n\n protected storeFirstPanelWidth() {\n this.storedFirstPanelWidth = this.clampPanelWidth(\n this.dragStartPosition() + this.cdkDrag().getFreeDragPosition().x,\n );\n }\n\n private setFirstPanelWidth() {\n this.firstPanelWidth.set(\n this.clampPanelWidth(this.dragStartPosition() + this.cdkDrag().getFreeDragPosition().x),\n );\n }\n\n private clampPanelWidth(width: number) {\n return clamp(width, this.safeMinPanelWidth(), this.safeMaxPanelWidth());\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 #container class=\"panels\" [class.dragging]=\"isDragging()\">\n <div class=\"panel\" [style.width]=\"firstPanelWidth() + 'px'\">\n <ng-content select=\"[first-panel]\"></ng-content>\n </div>\n <div\n #splitter\n class=\"splitter\"\n role=\"separator\"\n aria-orientation=\"vertical\"\n [attr.aria-valuenow]=\"firstPanelWidth()\"\n [attr.aria-valuemin]=\"safeMinPanelWidth()\"\n [attr.aria-valuemax]=\"safeMaxPanelWidth()\"\n cdkDrag\n cdkDragLockAxis=\"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 <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 </div>\n <div class=\"panel\" [style.width]=\"secondPanelWidth() + 'px'\">\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 { 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 active = false;\n id = 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 ChangeDetectionStrategy,\n Component,\n computed,\n contentChildren,\n ElementRef,\n input,\n model,\n viewChildren,\n} from '@angular/core';\n\nimport { TabComponent } from '../tab';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\nimport { NgClass } from '@angular/common';\n\n@Component({\n selector: 'ndw-tab-group',\n styleUrl: './tab-group.component.scss',\n templateUrl: './tab-group.component.html',\n imports: [CdkPortalOutlet, NgClass],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TabGroupComponent {\n private readonly _tabs = contentChildren(TabComponent);\n private readonly _tabButtons = viewChildren<ElementRef>('tabButton');\n\n public tabs = computed(() =>\n this._tabs().map((tab, i) => {\n tab.active = i === this.activeTab();\n return tab;\n }),\n );\n public activeTab = model(0);\n public inlinePadding = input(0);\n\n selectTab(index: number) {\n this.activeTab.set(index);\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.activeTab();\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.getNextEnabledIndex(tabCount, 0, 1));\n break;\n case 'End':\n event.preventDefault();\n this.selectTab(this.getNextEnabledIndex(tabCount, -1, -1));\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","<div class=\"tab-group\" role=\"tablist\" [style.--padding-inline]=\"inlinePadding() + 'px'\">\n @for (tab of tabs(); track tab.id; let i = $index) {\n <button\n #tabButton\n role=\"tab\"\n class=\"tab-button\"\n [attr.active]=\"tab.active ? true : undefined\"\n [attr.aria-selected]=\"tab.active\"\n [attr.aria-controls]=\"'tab-panel-' + tab.id\"\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 {{ tab.title() }}\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-primary)',\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 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 ndwButton tertiary alternative extra-small (click)=\"closed.emit()\" aria-label=\"Sluit\">\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 [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}\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) {\n const id = crypto.randomUUID();\n\n this.#addToast({\n id,\n message,\n duration: duration ?? 5000,\n remainingTime: duration ?? 5000,\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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"}