@ndwnu/design-system 3.0.0 → 3.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.
- package/components/card/index.d.ts +2 -2
- package/components/dropdown/dropdown.component.d.ts +1 -1
- package/components/main-navigation/main-navigation.imports.d.ts +1 -1
- package/components/pill/pill.component.d.ts +1 -1
- package/esm2022/components/form-field/month-input/month-input.component.mjs +3 -3
- package/esm2022/components/pill/pill.component.mjs +5 -5
- package/fesm2022/ndwnu-design-system.mjs +6 -6
- package/fesm2022/ndwnu-design-system.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ndwnu-design-system.mjs","sources":["../../../projects/ndw/src/components/accordion/accordion.service.ts","../../../projects/ndw/src/components/badge/badge.component.ts","../../../projects/ndw/src/components/badge/badge.component.html","../../../projects/ndw/src/components/icon/icon.component.ts","../../../projects/ndw/src/components/icon/icon.component.html","../../../projects/ndw/src/components/icon/action-icon/action-icon.component.ts","../../../projects/ndw/src/components/icon/action-icon/action-icon.component.html","../../../projects/ndw/src/components/collapsible/collapsible.animation.ts","../../../projects/ndw/src/components/collapsible/collapsible.component.ts","../../../projects/ndw/src/components/collapsible/collapsible.component.html","../../../projects/ndw/src/components/accordion/accordion.component.ts","../../../projects/ndw/src/components/accordion/accordion.component.html","../../../projects/ndw/src/components/button/button.directive.ts","../../../projects/ndw/src/components/alert/alert.model.ts","../../../projects/ndw/src/components/alert/alert.component.ts","../../../projects/ndw/src/components/alert/alert.component.html","../../../projects/ndw/src/components/breadcrumb/breadcrumb.component.ts","../../../projects/ndw/src/components/breadcrumb/breadcrumb.component.html","../../../projects/ndw/src/components/breadcrumb-group/breadcrumb-group.component.ts","../../../projects/ndw/src/components/breadcrumb-group/breadcrumb-group.component.html","../../../projects/ndw/src/components/card/card-content/card-content.component.ts","../../../projects/ndw/src/components/card/card-content/card-content.component.html","../../../projects/ndw/src/components/card/card-footer/card-footer.component.ts","../../../projects/ndw/src/components/card/card-footer/card-footer.component.html","../../../projects/ndw/src/components/card/card-header/card-header.component.ts","../../../projects/ndw/src/components/card/card-header/card-header.component.html","../../../projects/ndw/src/components/card/card.component.ts","../../../projects/ndw/src/components/card/card.component.html","../../../projects/ndw/src/components/card/index.ts","../../../projects/ndw/src/components/popover/popover-trigger.directive.ts","../../../projects/ndw/src/components/removable-pill/removable-pill.component.ts","../../../projects/ndw/src/components/removable-pill/removable-pill.component.html","../../../projects/ndw/src/components/dropdown/dropdown.component.ts","../../../projects/ndw/src/components/dropdown/dropdown.component.html","../../../projects/ndw/src/components/form-field/checkbox/checkbox.component.ts","../../../projects/ndw/src/components/form-field/checkbox/checkbox.component.html","../../../projects/ndw/src/components/form-field/checkbox-group/checkbox-group.component.ts","../../../projects/ndw/src/components/form-field/checkbox-group/checkbox-group.component.html","../../../projects/ndw/src/components/form-field/error/error.component.ts","../../../projects/ndw/src/components/form-field/error/error.component.html","../../../projects/ndw/src/components/form-field/file-upload/file-upload.component.ts","../../../projects/ndw/src/components/form-field/file-upload/file-upload.component.html","../../../projects/ndw/src/components/tooltip/tooltip.component.ts","../../../projects/ndw/src/components/tooltip/tooltip.component.html","../../../projects/ndw/src/components/tooltip/tooltip.directive.ts","../../../projects/ndw/src/components/form-field/form-field.model.ts","../../../projects/ndw/src/components/form-field/info/info.component.ts","../../../projects/ndw/src/components/form-field/info/info.component.html","../../../projects/ndw/src/components/form-field/input/input.directive.ts","../../../projects/ndw/src/components/form-field/input/input.model.ts","../../../projects/ndw/src/components/form-field/option-group/option.component.ts","../../../projects/ndw/src/components/form-field/option-group/option-group.component.ts","../../../projects/ndw/src/components/form-field/option-group/option-group.component.html","../../../projects/ndw/src/components/form-field/month-input/month-input-utils.ts","../../../projects/ndw/src/components/form-field/month-input/month-input.component.ts","../../../projects/ndw/src/components/form-field/month-input/month-input.component.html","../../../projects/ndw/src/components/form-field/success/success.component.ts","../../../projects/ndw/src/components/form-field/success/success.component.html","../../../projects/ndw/src/components/form-field/form-field.component.ts","../../../projects/ndw/src/components/form-field/form-field.component.html","../../../projects/ndw/src/components/form-field/radio-button/radio-button.component.ts","../../../projects/ndw/src/components/form-field/radio-button/radio-button.component.html","../../../projects/ndw/src/components/form-field/radio-group/radio-group.component.ts","../../../projects/ndw/src/components/form-field/radio-group/radio-group.component.html","../../../projects/ndw/src/components/form-field/textarea/auto-grow.directive.ts","../../../projects/ndw/src/components/main-navigation/main-navigation.model.ts","../../../projects/ndw/src/components/main-navigation-menu/main-navigation-menu.component.ts","../../../projects/ndw/src/components/main-navigation-menu/main-navigation-menu.component.html","../../../projects/ndw/src/components/main-navigation/main-navigation.imports.ts","../../../projects/ndw/src/components/main-navigation/main-navigation.component.ts","../../../projects/ndw/src/components/main-navigation/main-navigation.component.html","../../../projects/ndw/src/components/modal/modal-content/modal-content.component.ts","../../../projects/ndw/src/components/modal/modal-content/modal-content.component.html","../../../projects/ndw/src/components/modal/modal-footer/modal-footer.component.ts","../../../projects/ndw/src/components/modal/modal-footer/modal-footer.component.html","../../../projects/ndw/src/components/modal/modal-header/modal-header.component.ts","../../../projects/ndw/src/components/modal/modal-header/modal-header.component.html","../../../projects/ndw/src/components/modal/modal.service.ts","../../../projects/ndw/src/components/modal/modal-trigger.directive.ts","../../../projects/ndw/src/components/modal/modal.component.ts","../../../projects/ndw/src/components/modal/modal.component.html","../../../projects/ndw/src/components/modal/index.ts","../../../projects/ndw/src/components/multi-select/multi-select.component.ts","../../../projects/ndw/src/components/multi-select/multi-select.component.html","../../../projects/ndw/src/components/pill/pill.component.ts","../../../projects/ndw/src/components/pill/pill.component.html","../../../projects/ndw/src/components/router-breadcrumbs/router-breadcrumbs.component.ts","../../../projects/ndw/src/components/router-breadcrumbs/router-breadcrumbs.component.html","../../../projects/ndw/src/components/tab/tab.component.ts","../../../projects/ndw/src/components/tab/tab.component.html","../../../projects/ndw/src/components/tab-group/tab-group.component.ts","../../../projects/ndw/src/components/tab-group/tab-group.component.html","../../../projects/ndw/src/components/toast/toast.component.ts","../../../projects/ndw/src/components/toast/toast.component.html","../../../projects/ndw/src/components/toast/toast.service.ts","../../../projects/ndw/src/public-api.ts","../../../projects/ndw/src/ndwnu-design-system.ts"],"sourcesContent":["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 { Component, input } from '@angular/core';\n\n@Component({\n selector: 'ndw-badge',\n standalone: true,\n imports: [],\n templateUrl: './badge.component.html',\n styleUrl: './badge.component.scss',\n})\nexport class BadgeComponent {\n /**\n * The value of the badge\n */\n public value = input<number>();\n\n /**\n * The aria label, used by screen readers to give context.\n */\n public ariaLabel = input<string>();\n}\n","@if (value(); as value) {\n @if (value === 0 || value < -9 || value > 99) {\n <span class=\"dot\"></span>\n } @else {\n {{ value }}\n }\n} @else {\n {{ value() }}\n}\n\n@if (ariaLabel()) {\n <span class=\"sr-only\"> {{ ariaLabel() }}</span>\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n inject,\n input,\n OnInit,\n Renderer2,\n} from '@angular/core';\n\nexport type IconSize = 'sm' | 'md';\n\n@Component({\n selector: 'ndw-icon',\n standalone: true,\n imports: [],\n templateUrl: './icon.component.html',\n styleUrl: './icon.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'material-symbols-rounded',\n 'aria-hidden': 'true',\n },\n})\nexport class IconComponent implements OnInit {\n public size = input<IconSize>('md');\n\n private readonly elementRef = inject(ElementRef);\n private readonly renderer = inject(Renderer2);\n\n @HostBinding('class')\n public get hostClass(): string {\n return `icon--${this.size()}`;\n }\n\n public ngOnInit(): void {\n const { nativeElement } = this.elementRef;\n const height = getComputedStyle(nativeElement).fontSize;\n const paddingInline = getComputedStyle(nativeElement).paddingInline;\n this.renderer.setStyle(nativeElement, 'width', height + paddingInline);\n }\n}\n","<ng-content />\n","import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { IconComponent, IconSize } from '../icon.component';\n\nexport type ButtonType = 'button' | 'submit' | 'reset';\nexport type IconVariant = 'primary' | 'link' | 'grey' | 'white';\n\n@Component({\n selector: 'ndw-action-icon',\n standalone: true,\n imports: [IconComponent],\n templateUrl: './action-icon.component.html',\n styleUrl: './action-icon.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ActionIconComponent {\n // ! This component is deprecated, use `button` with `extra-small` attribute instead.\n\n /**\n * Used to give meaning to the button, used by screen readers.\n */\n public ariaLabel = input.required<string>();\n\n /**\n * Color scheme of the ActionIcon, available `primary`, `link`,\n * `grey` and `white` (defaults to primary).\n */\n public variant = input<IconVariant>('primary');\n\n /**\n * Specify button type, defaults to `button`\n */\n public buttonType = input<ButtonType>('button');\n\n /**\n * Disables the button, defaults to `false`.\n */\n public disabled = input<boolean>(false);\n\n /**\n * Sets the size of the button, defaults to `md`.\n */\n public size = input<IconSize>('md');\n\n /**\n * Event emitted when the button is clicked.\n */\n public readonly onClick = output<void>();\n}\n","<button\n class=\"ndw-action-icon ndw-action-icon--{{ variant() }}\"\n [type]=\"buttonType()\"\n [attr.aria-label]=\"ariaLabel()\"\n [disabled]=\"disabled()\"\n (click)=\"onClick.emit()\"\n>\n <ndw-icon [size]=\"size()\"><ng-content /></ndw-icon>\n</button>\n","import { animate, state, style, transition, trigger } from '@angular/animations';\n\nexport const collapsibleAnimation = [\n trigger('collapsible', [\n state(\n 'open',\n style({\n 'max-height': '100vh',\n opacity: '1',\n }),\n ),\n state(\n 'closed',\n style({\n 'max-height': '0',\n opacity: '0',\n }),\n ),\n transition('open => closed', [\n animate(\n '200ms ease-in-out',\n style({\n 'max-height': '0px',\n opacity: '0',\n }),\n ),\n ]),\n transition('closed => open', [\n animate(\n '200ms ease-in-out',\n style({\n 'max-height': '100vh',\n opacity: '1',\n }),\n ),\n ]),\n ]),\n];\n","import { NgClass } from '@angular/common';\nimport { Component, HostBinding, computed, inject, input, model } from '@angular/core';\n\nimport { AccordionService } from '../accordion';\nimport { BadgeComponent } from '../badge';\nimport { IconComponent } from '../icon';\n\nimport { collapsibleAnimation } from './collapsible.animation';\n\n@Component({\n selector: 'ndw-collapsible',\n standalone: true,\n imports: [BadgeComponent, IconComponent, NgClass],\n templateUrl: './collapsible.component.html',\n styleUrl: './collapsible.component.scss',\n animations: [collapsibleAnimation],\n})\nexport class CollapsibleComponent {\n public index = input.required<number>();\n public title = input.required<string>();\n public value = input<number>();\n\n public expanded = model(false);\n\n private readonly accordionService = inject(AccordionService);\n\n private readonly uuid = crypto.randomUUID();\n public readonly toggleUuid = `toggle-${this.uuid}`;\n public readonly sectionUuid = `section-${this.uuid}`;\n\n @HostBinding('class.expanded')\n public get expandedClass(): boolean {\n return this.expanded();\n }\n\n public animationState = computed(() => (this.expanded() ? 'open' : 'closed'));\n\n public toggle(): void {\n this.expanded.set(!this.expanded());\n\n if (this.expanded()) {\n this.accordionService.setExpandedCollapsible(this.index());\n }\n }\n}\n","<div class=\"collapsible\">\n <h3 class=\"collapsible__header\">\n <button\n class=\"collapsible__button\"\n type=\"button\"\n [id]=\"toggleUuid\"\n [attr.aria-controls]=\"sectionUuid\"\n [attr.aria-expanded]=\"expanded()\"\n (click)=\"toggle()\"\n >\n {{ title() }}\n\n @if (value(); as value) {\n <ndw-badge [value]=\"value\" />\n }\n\n <ndw-icon>keyboard_arrow_down</ndw-icon>\n </button>\n </h3>\n\n <section\n role=\"region\"\n class=\"collapsible__section\"\n [id]=\"sectionUuid\"\n [attr.aria-labelledby]=\"toggleUuid\"\n [@collapsible]=\"animationState()\"\n >\n <ng-content />\n </section>\n</div>\n","import { Component, OnInit, contentChildren, inject, input, DestroyRef } from '@angular/core';\n\nimport { AccordionService } from './accordion.service';\nimport { CollapsibleComponent } from '../collapsible';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'ndw-accordion',\n standalone: true,\n imports: [],\n templateUrl: './accordion.component.html',\n styleUrl: './accordion.component.scss',\n providers: [AccordionService],\n})\nexport class AccordionComponent implements OnInit {\n public collapseOthers = input(false);\n\n public collapsibles = contentChildren(CollapsibleComponent);\n\n private readonly accordionService = inject(AccordionService);\n private readonly destroyRef = inject(DestroyRef);\n\n public ngOnInit(): void {\n this.accordionService.expanded$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((index: number) => {\n if (!this.collapseOthers()) {\n return;\n }\n\n this.collapsibles().forEach((collapsible: CollapsibleComponent) => {\n collapsible.expanded.set(collapsible.index() === index);\n });\n });\n }\n}\n","<ng-content />\n","import { Directive, ElementRef, OnInit, inject } from '@angular/core';\n\n@Directive({\n selector: '[ndwButton]',\n standalone: true,\n})\nexport class ButtonDirective implements OnInit {\n private readonly elementRef = inject(ElementRef);\n\n public get element(): HTMLButtonElement {\n return this.elementRef.nativeElement as HTMLButtonElement;\n }\n\n public ngOnInit(): void {\n // If the text content of a child node is longer than 35 characters, truncate it\n if (!this.element.childNodes.length) {\n return;\n }\n\n this.element.childNodes.forEach((node) => {\n if (node.nodeType === Node.TEXT_NODE) {\n if (!node.textContent) {\n return;\n }\n\n const text = node.textContent.trim();\n if (text.length > 35) {\n node.textContent = text.slice(0, 35) + '...';\n }\n }\n });\n }\n}\n","export enum AlertType {\n Negative = 'critical',\n Info = 'info',\n InfoGrey = 'info-grey',\n Warning = 'warning',\n}\n\nexport type AriaLive = 'polite' | 'assertive' | 'off';\n","import { Component, HostBinding, input, output } from '@angular/core';\n\nimport { ButtonDirective } from '../button';\nimport { IconComponent } from '../icon';\nimport { AlertType, AriaLive } from './alert.model';\n\n@Component({\n selector: 'ndw-alert',\n standalone: true,\n imports: [ButtonDirective, IconComponent],\n templateUrl: './alert.component.html',\n styleUrl: './alert.component.scss',\n})\nexport class AlertComponent {\n /**\n * Whether the alert is actionable, shows a close icon and a title.\n */\n public actionable = input(false);\n\n /**\n * The title of the alert. Only used when actionable is true.\n */\n public title = input<string>();\n\n /**\n * Use info, info-grey, warning or critical to indicate the type of alert.\n */\n public type = input(AlertType.InfoGrey);\n\n /**\n * Use polite, assertive or off to indicate whether the alert is\n * announced automatically by the screen reader.\n */\n public ariaLive = input<AriaLive>('off');\n\n public close = output<void>();\n\n @HostBinding('class')\n public get alertTypeClass(): string {\n return this.type();\n }\n\n @HostBinding('class.actionable')\n public get actionableClass(): boolean {\n return this.actionable();\n }\n\n @HostBinding('role')\n public readonly role = 'alert';\n\n @HostBinding('attr.aria-live')\n public get ariaLiveAttribute(): AriaLive {\n return this.ariaLive();\n }\n\n public onClose(): void {\n this.close.emit();\n }\n}\n","<section>\n <ndw-icon class=\"info-icon\">info</ndw-icon>\n @if (actionable()) {\n @if (title(); as title) {\n <h2>{{ title }}</h2>\n }\n\n <button\n ndwButton\n alternative\n extra-small\n tertiary\n class=\"close-button\"\n ariaLabel=\"Sluit melding\"\n (click)=\"onClose()\"\n >\n <ndw-icon>close</ndw-icon>\n </button>\n }\n</section>\n<ng-content />\n","import { Component, input, TemplateRef, viewChild } from '@angular/core';\n\n@Component({\n selector: 'ndw-breadcrumb',\n standalone: true,\n imports: [],\n templateUrl: './breadcrumb.component.html',\n})\nexport class BreadcrumbComponent {\n public link = input<string | null>(null);\n public content = viewChild.required<TemplateRef<unknown>>('content');\n}\n","<ng-template #content>\n <ng-content />\n</ng-template>\n","import { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { Component, contentChildren } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { BreadcrumbComponent } from '../breadcrumb/breadcrumb.component';\nimport { IconComponent } from '../icon';\n\n@Component({\n selector: 'ndw-breadcrumb-group',\n standalone: true,\n imports: [NgTemplateOutlet, IconComponent, NgClass, RouterLink],\n templateUrl: './breadcrumb-group.component.html',\n styleUrl: './breadcrumb-group.component.scss',\n host: {\n role: 'navigation',\n 'aria-label': 'Breadcrumb',\n },\n})\nexport class BreadcrumbGroupComponent {\n protected breadcrumbs = contentChildren(BreadcrumbComponent);\n}\n","@for (breadcrumb of breadcrumbs(); track breadcrumb.link()) {\n @if ($count > 1 && $index === $count - 2) {\n <ndw-icon class=\"icon-back\" aria-hidden=\"true\">chevron_left</ndw-icon>\n }\n\n <a\n class=\"breadcrumb\"\n [class.current-page]=\"$last\"\n [class.show-on-small-screen]=\"$count === 1 || $index === $count - 2\"\n [attr.aria-current]=\"$last ? 'page' : null\"\n [routerLink]=\"$last ? null : breadcrumb.link()\"\n >\n <ng-template [ngTemplateOutlet]=\"breadcrumb.content()\"></ng-template>\n </a>\n\n @if (!$last) {\n <ndw-icon class=\"icon-forward\" aria-hidden=\"true\">chevron_right</ndw-icon>\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ndw-card-content',\n standalone: true,\n imports: [],\n templateUrl: './card-content.component.html',\n styleUrl: './card-content.component.scss',\n})\nexport class CardContentComponent {}\n","<ng-content />\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ndw-card-footer',\n standalone: true,\n imports: [],\n templateUrl: './card-footer.component.html',\n styleUrl: './card-footer.component.scss',\n})\nexport class CardFooterComponent {}\n","<ng-content />\n","import { Component } from '@angular/core';\n\nimport { IconComponent } from '../../icon';\n\n@Component({\n selector: 'ndw-card-header',\n standalone: true,\n imports: [IconComponent],\n templateUrl: './card-header.component.html',\n styleUrl: './card-header.component.scss',\n})\nexport class CardHeaderComponent {}\n","<ng-content />\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ndw-card',\n standalone: true,\n imports: [],\n templateUrl: './card.component.html',\n styleUrl: './card.component.scss',\n})\nexport class CardComponent {}\n","<ng-content />\n","import { CardContentComponent } from './card-content';\nimport { CardFooterComponent } from './card-footer';\nimport { CardHeaderComponent } from './card-header';\nimport { CardComponent } from './card.component';\n\nexport * from './card-content';\nexport * from './card-footer';\nexport * from './card-header';\nexport * from './card.component';\n\nexport const CARD_COMPONENTS = [\n CardComponent,\n CardHeaderComponent,\n CardContentComponent,\n CardFooterComponent,\n];\n","import { 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 HostListener,\n inject,\n input,\n model,\n OnDestroy,\n Output,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { take } from 'rxjs';\n\n@Directive({\n selector: '[ndwPopoverTrigger]',\n standalone: true,\n exportAs: 'ndwPopoverTrigger',\n})\nexport class PopoverTriggerDirective implements OnDestroy {\n @Output() public popoverToggled = new EventEmitter<boolean>();\n public popoverPosition = input('nextToTriggerButton');\n public popoverContent = input.required<TemplateRef<unknown>>({ alias: 'ndwPopoverTrigger' });\n public toggleOnClick = input(true);\n public isOpen = model(false);\n\n @HostListener('click')\n public toggle(): void {\n if (!this.toggleOnClick()) {\n return;\n }\n this.isOpen.set(!this.isOpen());\n this.togglePopover();\n }\n\n private destroyRef = inject(DestroyRef);\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef<HTMLElement>);\n private overlay = inject(Overlay);\n private viewContainerRef = inject(ViewContainerRef);\n private focusTrapFactory = inject(ConfigurableFocusTrapFactory);\n\n private overlayRef?: OverlayRef;\n\n public ngOnDestroy(): void {\n this.isOpen.set(false);\n this.togglePopover();\n }\n\n public togglePopover(): void {\n if (this.isOpen()) {\n this.open();\n } else {\n this.close();\n }\n this.popoverToggled.emit(this.isOpen());\n }\n\n private open(): void {\n const positions: ConnectedPosition[] = this.getPopoverPosition(this.popoverPosition());\n const templatePortal = new TemplatePortal(this.popoverContent(), this.viewContainerRef);\n\n this.overlayRef = this.overlay.create({\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n positionStrategy: this.overlay\n .position()\n .flexibleConnectedTo(this.elementRef)\n .withPositions(positions),\n });\n this.overlayRef.attach(templatePortal);\n this.overlayRef.hostElement.addEventListener('click', (event: MouseEvent) => {\n const target = event.target as HTMLElement | null;\n if (this.nodeOrParentsHaveAttribute(target, 'ndwPopoverCloseTrigger')) {\n this.isOpen.set(false);\n this.togglePopover();\n }\n });\n\n this.trapFocus(this.overlayRef);\n this.closeOverlayOnEscapeKey(this.overlayRef);\n this.closeOverlayOnBackdropClick(this.overlayRef);\n }\n\n private trapFocus(overlayRef: OverlayRef): void {\n this.focusTrapFactory.create(overlayRef.overlayElement);\n }\n\n private closeOverlayOnEscapeKey(overlayRef: OverlayRef): void {\n overlayRef.overlayElement.onkeydown = (event: KeyboardEvent): void => {\n if (event.key === 'Escape') {\n this.isOpen.set(false);\n this.togglePopover();\n }\n };\n }\n\n private nodeOrParentsHaveAttribute(node: HTMLElement | null, attribute: string): boolean {\n let next = node;\n while (next) {\n if (next.hasAttribute(attribute)) {\n return true;\n }\n next = next.parentElement;\n }\n return false;\n }\n\n private closeOverlayOnBackdropClick(overlayRef: OverlayRef): void {\n overlayRef\n .backdropClick()\n .pipe(takeUntilDestroyed(this.destroyRef), take(1))\n .subscribe(() => {\n this.isOpen.set(false);\n this.togglePopover();\n });\n }\n\n private close(): void {\n this.overlayRef?.dispose();\n }\n\n private getPopoverPosition(popoverPosition: string): ConnectedPosition[] {\n if (popoverPosition === 'overTriggerButton') {\n return [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n panelClass: 'ndw-popover-panel',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom',\n panelClass: 'ndw-popover-panel',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n panelClass: 'ndw-popover-panel',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n panelClass: 'ndw-popover-panel',\n },\n ];\n }\n return [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 4,\n panelClass: 'ndw-popover-panel',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n offsetY: 4,\n panelClass: 'ndw-popover-panel',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -4,\n panelClass: 'ndw-popover-panel',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetY: -4,\n panelClass: 'ndw-popover-panel',\n },\n ];\n }\n}\n","import { Component, input, output } from '@angular/core';\nimport { IconComponent } from '../icon';\n\n@Component({\n selector: 'ndw-removable-pill',\n standalone: true,\n templateUrl: './removable-pill.component.html',\n imports: [IconComponent],\n styleUrl: './removable-pill.component.scss',\n})\nexport class RemovablePillComponent {\n /**\n * Disables the pill\n */\n public disabled = input(false);\n\n /**\n * Aria label for the remove button\n */\n public removeAriaLabel = input('Verwijder');\n\n public onClick = output<Event>();\n}\n","<div class=\"ndw-removable-pill\" [class.ndw-removable-pill--disabled]=\"disabled()\">\n <ng-content />\n\n <button\n type=\"button\"\n class=\"ndw-removable-pill__button\"\n [attr.aria-label]=\"removeAriaLabel()\"\n [disabled]=\"disabled()\"\n (click)=\"onClick.emit($event)\"\n >\n <ndw-icon>close</ndw-icon>\n </button>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n computed,\n input,\n output,\n viewChild,\n} from '@angular/core';\nimport { ButtonDirective } from '../button';\nimport { IconComponent } from '../icon';\nimport { PopoverTriggerDirective } from '../popover';\nimport { CommonModule } from '@angular/common';\nimport { RemovablePillComponent } from '../removable-pill';\n\n@Component({\n selector: 'ndw-dropdown',\n templateUrl: 'dropdown.component.html',\n styleUrls: ['dropdown.component.scss'],\n standalone: true,\n imports: [\n ButtonDirective,\n PopoverTriggerDirective,\n IconComponent,\n CommonModule,\n RemovablePillComponent,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DropdownComponent {\n public readonly disabled = input(false);\n public readonly chevron = input();\n public readonly buttonText = input.required<string>();\n public readonly prefixIcon = input('');\n public readonly selectAmount = input(0);\n\n public readonly removablePillClicked = 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 onRemovablePillClicked($event: Event): void {\n $event.stopPropagation();\n this.removablePillClicked.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 onKeyDownRemovablePill(event: KeyboardEvent): void {\n if (event.key !== 'Enter' || this.disabled()) {\n return;\n }\n\n event.stopPropagation();\n event.preventDefault();\n\n this.removablePillClicked.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-removable-pill\n [attr.disabled]=\"disabled() ? true : null\"\n (keydown)=\"onKeyDownRemovablePill($event)\"\n (onClick)=\"onRemovablePillClicked($event)\"\n >\n {{ selectAmount() }}\n </ndw-removable-pill>\n }\n\n @if (chevron()) {\n <ndw-icon class=\"button-icon\">{{ buttonIcon() }}</ndw-icon>\n }\n</button>\n\n<ng-template #dropdownContent>\n <div role=\"dialog\" (keydown.escape)=\"closeDropdown()\">\n <ng-content />\n </div>\n</ng-template>\n","import { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, input, model } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { IconComponent } from '../../icon';\n\n@Component({\n selector: 'ndw-checkbox',\n standalone: true,\n imports: [IconComponent, NgClass],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: CheckboxComponent,\n multi: true,\n },\n ],\n templateUrl: './checkbox.component.html',\n styleUrls: ['../checkable-input.scss', './checkbox.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CheckboxComponent implements ControlValueAccessor {\n public checked = model(false);\n public switch = input(false);\n public disabled = input(false);\n public error = input(false);\n public success = input(false);\n public indeterminate = input(false);\n public required = input(false);\n\n public uuid = crypto.randomUUID();\n\n @HostBinding('class.checked')\n public get checkedClass(): boolean {\n return this.checked();\n }\n\n @HostBinding('class.disabled')\n public get disabledClass(): boolean {\n return this.disabled();\n }\n\n @HostBinding('class.indeterminate')\n public get indeterminateClass(): boolean {\n return this.indeterminate();\n }\n\n public onClick(): void {\n if (this.disabled()) {\n return;\n }\n\n this.checked.set(!this.checked());\n }\n\n public onKeyDown(event: KeyboardEvent): void {\n if (event.key !== 'Enter' || this.disabled()) {\n return;\n }\n\n this.checked.set(!this.checked());\n event.preventDefault();\n }\n\n public writeValue(value: boolean): void {\n this.checked.set(value);\n }\n\n public registerOnChange(fn: (value: boolean) => void): void {\n this.checked.subscribe(fn);\n }\n\n public registerOnTouched(): void {\n // noop\n }\n}\n","<input\n type=\"checkbox\"\n [id]=\"'checkbox-' + uuid\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [required]=\"required()\"\n aria-hidden=\"true\"\n/>\n<div\n [ngClass]=\"{ error: error(), success: success(), checkbox: !switch(), switch: switch() }\"\n role=\"checkbox\"\n [attr.aria-checked]=\"indeterminate() ? 'mixed' : checked()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-labelledby]=\"'checkbox-label-' + uuid\"\n (click)=\"onClick()\"\n (keydown)=\"onKeyDown($event)\"\n [tabindex]=\"disabled() ? -1 : 0\"\n>\n @if (!switch()) {\n @if (checked()) {\n <ndw-icon>check</ndw-icon>\n } @else if (indeterminate()) {\n <ndw-icon>remove</ndw-icon>\n }\n } @else {\n <span class=\"switch-icon\">\n @if (checked()) {\n <ndw-icon>check</ndw-icon>\n } @else {\n <ndw-icon>close</ndw-icon>\n }\n </span>\n }\n</div>\n<label\n id=\"checkbox-label-{{ uuid }}\"\n tabindex=\"-1\"\n [for]=\"'checkbox-' + uuid\"\n [ngClass]=\"{ 'switch-text': switch() }\"\n (click)=\"onClick()\"\n (keydown)=\"onKeyDown($event)\"\n>\n <ng-content />\n</label>\n","import { Component, contentChildren } from '@angular/core';\nimport { CheckboxComponent } from '../checkbox';\n\n@Component({\n selector: 'ndw-checkbox-group',\n standalone: true,\n imports: [],\n templateUrl: './checkbox-group.component.html',\n styleUrl: './checkbox-group.component.scss',\n})\nexport class CheckboxGroupComponent {\n public checkboxes = contentChildren(CheckboxComponent);\n}\n","<ng-content />\n","import { Component } from '@angular/core';\n\nimport { IconComponent } from '../../icon';\n\n@Component({\n selector: 'ndw-error',\n standalone: true,\n imports: [IconComponent],\n templateUrl: './error.component.html',\n styleUrl: './error.component.scss',\n})\nexport class ErrorComponent {}\n","<ndw-icon>warning</ndw-icon>\n<ng-content />\n","import {\n Component,\n HostBinding,\n HostListener,\n viewChild,\n input,\n model,\n ElementRef,\n computed,\n} from '@angular/core';\nimport { FileUploadText } from './file-upload-text.interface';\nimport { IconComponent } from '../../icon';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'ndw-file-upload',\n standalone: true,\n imports: [IconComponent],\n templateUrl: './file-upload.component.html',\n styleUrl: './file-upload.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: FileUploadComponent,\n multi: true,\n },\n ],\n})\nexport class FileUploadComponent implements ControlValueAccessor {\n public readonly fileInputElement = viewChild.required<ElementRef<HTMLInputElement>>('fileInput');\n public readonly allowedFileTypeRegex = input<RegExp>();\n public readonly fileUploadText = input<FileUploadText>({ dragText: '', dragOverText: '' });\n public readonly uploadDate = input('');\n public readonly maxFileSizeInBytes = input(1000000);\n public readonly disabled = input(false);\n public readonly readonly = input(false);\n public readonly draggingOver = model(false);\n public readonly selectedFile = model<File | null>();\n public readonly error = model(false);\n public readonly success = model(false);\n public readonly incorrectFileType = model(false);\n public readonly incorrectFileSize = model(false);\n private readonly canEdit = computed(\n () => !this.selectedFile() && !this.disabled() && !this.readonly(),\n );\n\n @HostBinding('attr.tabindex')\n public get tabindexAttr(): number {\n return !this.canEdit() ? -1 : 0;\n }\n\n @HostBinding('class.error')\n public get hasError(): boolean {\n return this.error();\n }\n\n @HostBinding('class.success')\n public get hasSuccess(): boolean {\n return this.success();\n }\n\n @HostBinding('class.disabled')\n public get isDisabled(): boolean {\n return this.disabled();\n }\n\n @HostBinding('class.readonly')\n public get isReadonly(): boolean {\n return this.readonly();\n }\n\n @HostBinding('class.dragging')\n public get isDragging(): boolean {\n return this.draggingOver();\n }\n\n @HostBinding('class.file-selected')\n public get hasSelectedFile(): boolean {\n return this.selectedFile() ? true : false;\n }\n\n @HostListener('keydown', ['$event'])\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 @HostListener('click')\n public onClick(): void {\n if (this.canEdit()) {\n this.fileInputElement().nativeElement.click();\n }\n }\n\n @HostListener('dragleave', ['$event'])\n public onDragLeave(event: DragEvent): void {\n event?.preventDefault();\n this.draggingOver.set(false);\n }\n\n @HostListener('dragover', ['$event'])\n public onDragOver(event: DragEvent): void {\n event?.preventDefault();\n if (this.canEdit()) {\n this.draggingOver.set(true);\n }\n }\n\n @HostListener('dragenter', ['$event'])\n public onDragEnter(event: DragEvent): void {\n event?.preventDefault();\n if (this.canEdit()) {\n this.draggingOver.set(true);\n }\n }\n\n @HostListener('drop', ['$event'])\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 private selectFile(file: File): void {\n if (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\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 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","@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 { Component, input } from '@angular/core';\n\n@Component({\n selector: 'ndw-tooltip',\n standalone: true,\n imports: [],\n templateUrl: './tooltip.component.html',\n styleUrl: './tooltip.component.scss',\n host: {\n role: 'tooltip',\n },\n})\nexport class TooltipComponent {\n public text = input.required<string>();\n}\n","{{ text() }}\n","import { FlexibleConnectedPositionStrategy, Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n ComponentRef,\n Directive,\n ElementRef,\n HostListener,\n inject,\n input,\n OnChanges,\n OnDestroy,\n OnInit,\n} from '@angular/core';\n\nimport { TooltipComponent } from './tooltip.component';\nimport { AriaDescriber } from '@angular/cdk/a11y';\n\n@Directive({\n selector: '[ndwTooltip]',\n standalone: true,\n host: {\n tabindex: '0',\n 'aria-hidden': 'false',\n '(focus)': 'show()',\n '(blur)': 'hide()',\n '(keydown.escape)': 'hide()',\n },\n})\nexport class TooltipDirective implements OnChanges, OnDestroy, OnInit {\n public text = input.required<string>({ alias: 'ndwTooltip' });\n\n private readonly elementRef = inject(ElementRef);\n private readonly overlay = inject(Overlay);\n private readonly ariaDescriber = inject(AriaDescriber);\n\n private overlayRef: OverlayRef | null = null;\n\n public ngOnInit(): void {\n const positionStrategy = this.getFlexibleConnectedPositionStrategy();\n this.overlayRef = this.overlay.create({ positionStrategy });\n this.updateAriaDescription();\n }\n\n public ngOnChanges(): void {\n const positionStrategy = this.getFlexibleConnectedPositionStrategy();\n this.overlayRef?.updatePositionStrategy(positionStrategy);\n }\n\n public ngOnDestroy(): void {\n this.hide();\n this.overlayRef?.dispose();\n }\n\n @HostListener('mouseenter')\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 @HostListener('mouseleave')\n protected hide(): void {\n this.overlayRef?.detach();\n }\n\n @HostListener('document:keydown.escape')\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","export enum FormFieldElement {\n Dropdown = 'ndw-dropdown',\n Input = 'input',\n Select = 'select',\n Textarea = 'textarea',\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ndw-info',\n standalone: true,\n imports: [],\n templateUrl: './info.component.html',\n styleUrl: './info.component.scss',\n})\nexport class InfoComponent {}\n","<ng-content />\n","import { DestroyRef, Directive, ElementRef, inject, OnInit } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { AbstractControl, NgControl, Validators } from '@angular/forms';\nimport { fromEvent } from 'rxjs';\n\n@Directive({\n selector: 'input[ndwInput], select[ndwInput], textarea[ndwInput]',\n standalone: true,\n})\nexport class InputDirective implements OnInit {\n public set disabled(disabled: boolean) {\n this.element.disabled = disabled;\n }\n\n public set error(error: boolean) {\n this.element.toggleAttribute('error', error);\n }\n\n public set success(success: boolean) {\n this.element.toggleAttribute('success', success);\n }\n\n public set id(id: string) {\n this.element.id = id;\n }\n\n public set ariaDescribedBy(id: string) {\n this.element.setAttribute('aria-describedby', id);\n }\n\n private readonly elementRef = inject(ElementRef);\n private readonly destroyRef = inject(DestroyRef);\n private readonly ngControl = inject(NgControl, { optional: true });\n\n public get element(): HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement {\n return this.elementRef.nativeElement as\n | HTMLInputElement\n | HTMLSelectElement\n | HTMLTextAreaElement;\n }\n\n public get control(): AbstractControl | null {\n return this.ngControl ? this.ngControl.control : null;\n }\n\n public ngOnInit(): void {\n this.updateRequiredAttribute();\n\n this.control?.statusChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.updateRequiredAttribute());\n\n // Add ndw-changed attribute when the input is changed and has a value\n fromEvent(this.element, 'input')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.setChangedAttribute();\n this.setSelectPlaceholderAttribute();\n });\n\n this.setSelectPlaceholderAttribute();\n }\n\n private setChangedAttribute(): void {\n this.element.toggleAttribute('ndw-changed', !!this.element.value);\n }\n\n private setSelectPlaceholderAttribute(): void {\n if (this.element instanceof HTMLSelectElement) {\n const isPlaceholderSelected =\n this.element.selectedIndex === 0 &&\n this.element.options[this.element.selectedIndex].disabled;\n this.element.toggleAttribute('ndw-placeholder', isPlaceholderSelected);\n }\n }\n\n private updateRequiredAttribute(): void {\n if (this.control) {\n // Mark element as required when the control has a 'required' validator.\n // This will show an asterisk (*)\n this.element.required = this.control.hasValidator(Validators.required);\n }\n }\n}\n","export enum InputType {\n Date = 'date',\n Email = 'email',\n Number = 'number',\n Password = 'password',\n Search = 'search',\n Tel = 'tel',\n Text = 'text',\n Time = 'time',\n Url = 'url',\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\n@Component({\n selector: 'ndw-option',\n standalone: true,\n imports: [],\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OptionComponent {\n public value = input.required();\n public label = input.required<string>();\n public description = input<string>();\n public required = input(false);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChildren,\n inject,\n input,\n model,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl, Validators } from '@angular/forms';\n\nimport { ButtonDirective } from '../../button';\nimport { OptionGroupMode } from './option-group.model';\nimport { OptionComponent } from './option.component';\n\n@Component({\n selector: 'ndw-option-group',\n standalone: true,\n imports: [ButtonDirective],\n templateUrl: './option-group.component.html',\n styleUrls: ['./option-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.required]': 'isRequiredOrHasRequiredValidator',\n '[class.grid-columns]': 'fluidColumns() !== null',\n '[style.gridTemplateColumns]': 'fluidColumnStyle()',\n },\n})\nexport class OptionGroupComponent implements ControlValueAccessor {\n public readonly fluid = input(false);\n public readonly fluidColumns = input<number | null>(null);\n public readonly disabled = model(false);\n public readonly mode = input<OptionGroupMode>('multiple');\n public readonly required = input(false);\n public readonly children = contentChildren(OptionComponent);\n protected readonly checkedValues = model<unknown[]>([]);\n private readonly ngControl = inject(NgControl, { optional: true });\n protected readonly fluidColumnStyle = computed(() =>\n this.fluidColumns() ? `repeat(${this.fluidColumns()}, 1fr)` : null,\n );\n protected readonly uuid = crypto.randomUUID();\n\n public constructor() {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public get isRequiredOrHasRequiredValidator(): boolean | null {\n return this.required() || this.ngControl?.control?.hasValidator(Validators.required)\n ? true\n : null;\n }\n\n private onChange: (value: unknown[]) => void = () => {};\n\n protected toggleValue(value: unknown): void {\n if (this.mode() === 'single') {\n this.checkedValues.set([value]);\n this.onChange(this.checkedValues());\n } else {\n const state = [...this.checkedValues()];\n const index = state.indexOf(value);\n index >= 0 ? state.splice(index, 1) : state.push(value);\n this.checkedValues.set(state);\n this.onChange(this.checkedValues());\n }\n }\n\n public writeValue(value: unknown[]): void {\n this.checkedValues.set(value ?? []);\n }\n\n public registerOnChange(fn: (value: unknown[]) => void): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(): void {\n // noop\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n}\n","@for (child of children(); track child.value()) {\n <label\n ndwButton\n [class.fluid]=\"fluid() && fluidColumns() === null\"\n [class.gridCell]=\"fluidColumns() !== null\"\n [attr.disabled]=\"disabled() ? 'true' : null\"\n [attr.outline]=\"checkedValues().includes(child.value()) ? null : 'true'\"\n [attr.aria-label]=\"child.description() ?? child.label()\"\n >\n <input\n [type]=\"mode() === 'multiple' ? 'checkbox' : 'radio'\"\n [name]=\"mode() === 'multiple' ? 'option-group-radio-' + uuid : null\"\n [value]=\"child.value()\"\n [disabled]=\"disabled()\"\n [checked]=\"checkedValues().includes(child.value())\"\n (change)=\"toggleValue(child.value())\"\n />\n {{ child.label() }}\n </label>\n}\n","export function createYearRange(minDate: Date, maxDate: Date): number[] {\n const minYear = minDate.getFullYear();\n const maxYear = maxDate.getFullYear();\n const yearCount = maxYear - minYear + 1;\n return Array.from({ length: yearCount }, (_, index) => minYear + index);\n}\n\nexport function createMonthOptions(monthLabels: string[]): { label: string; value: number }[] {\n return monthLabels.map((month, index) => ({\n label: month,\n value: index + 1,\n }));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n inject,\n input,\n model,\n OnInit,\n viewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor, FormsModule, NgControl } from '@angular/forms';\nimport { ButtonDirective } from '../../button';\nimport { IconComponent } from '../../icon/icon.component';\nimport { PopoverTriggerDirective } from '../../popover';\nimport { InputDirective } from '../input';\nimport { OptionGroupComponent } from '../option-group/option-group.component';\nimport { OptionComponent } from '../option-group/option.component';\nimport { createMonthOptions, createYearRange } from './month-input-utils';\n\nconst defaultMonthLabels = [\n 'Jan',\n 'Feb',\n 'Mrt',\n 'Apr',\n 'Mei',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Okt',\n 'Nov',\n 'Dec',\n];\n\n@Component({\n selector: 'ndw-month-input',\n standalone: true,\n imports: [\n FormsModule,\n IconComponent,\n PopoverTriggerDirective,\n OptionGroupComponent,\n OptionComponent,\n InputDirective,\n ButtonDirective,\n ],\n templateUrl: './month-input.component.html',\n styleUrls: ['./month-input.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MonthInputComponent implements ControlValueAccessor, OnInit {\n public readonly disabled = model(false);\n public readonly required = input(false);\n public readonly showMonthPickerLabel = input<string>('Selecteer maand');\n public readonly placeholder = input<string>('JJJJ-MM');\n public readonly yearPlaceholder = input<string>('Jaar');\n public readonly minDate = input<Date>(new Date(2020, 0, 1));\n public readonly maxDate = input<Date>(new Date(2026, 11, 31));\n public readonly monthLabels = input<string[]>(defaultMonthLabels);\n public readonly input = viewChild(InputDirective);\n public readonly inputElement = computed(() => this.input()?.element);\n\n protected showMonthPicker = false;\n protected readonly selectedYear = model<number>(new Date().getFullYear());\n protected readonly selectedMonth = model<number | null>(null);\n protected readonly selectedDate = computed<Date | null>(() => {\n const year = this.selectedYear();\n const month = this.selectedMonth();\n const date = year && month ? new Date(year, month - 1, 1) : null;\n return date && date >= this.minDate() && date <= this.maxDate() ? date : null;\n });\n protected readonly inputValue = computed(() => {\n const year = this.selectedYear();\n const month = this.selectedMonth();\n return year && month ? `${year}-${month.toString().padStart(2, '0')}` : null;\n });\n protected readonly ngControl = inject(NgControl, { optional: true });\n\n protected readonly years = computed(() => createYearRange(this.minDate(), this.maxDate()));\n protected readonly months = computed(() => createMonthOptions(this.monthLabels()));\n\n private onChange: (value: Date | null) => void = () => {};\n private readonly destroyRef = inject(DestroyRef);\n\n public constructor() {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public ngOnInit(): void {\n if (this.ngControl) {\n this.ngControl.statusChanges?.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n const input = this.input();\n if (input && this.ngControl) {\n input.error = this.ngControl.invalid === true;\n }\n });\n }\n }\n\n public writeValue(value: Date | null): void {\n if (value) {\n this.selectedYear.set(value.getFullYear());\n this.selectedMonth.set(value.getMonth() + 1);\n } else {\n this.selectedYear.set(new Date().getFullYear());\n this.selectedMonth.set(null);\n }\n }\n\n public registerOnChange(fn: (value: Date | null) => void): void {\n this.onChange = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n\n public registerOnTouched(): void {\n // noop\n }\n\n protected onInputChanged(value: string): void {\n const [year, month] = value.split('-');\n this.selectedYear.set(parseInt(year, 10));\n this.selectedMonth.set(parseInt(month, 10));\n this.onChange(this.selectedDate());\n }\n\n protected onYearSelected(year: string): void {\n this.selectedYear.set(parseInt(year, 10));\n this.onChange(this.selectedDate());\n }\n\n protected onMonthSelected(month: number): void {\n this.selectedMonth.set(month);\n this.onChange(this.selectedDate());\n }\n\n protected onKeyDown(event: KeyboardEvent): void {\n if (event.key === 'ArrowDown') {\n this.adjustMonth(-1);\n event.preventDefault();\n return;\n } else if (event.key === 'ArrowUp') {\n this.adjustMonth(+1);\n event.preventDefault();\n return;\n }\n\n const currentValue = (event.target as HTMLInputElement)?.value;\n const validKeys = [];\n\n if (currentValue.length === 4) {\n validKeys.push('-');\n } else {\n validKeys.push('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');\n }\n\n const isValidKey = validKeys.includes(event.key);\n const isPrintableKey = event.key.length === 1; // Allow pressing special keys like F12, etc.\n if (!isValidKey && isPrintableKey) {\n event.preventDefault();\n }\n }\n\n private adjustMonth(monthIncrement: number): void {\n const now = new Date();\n const date = this.selectedDate() ?? new Date(now.getFullYear(), now.getMonth(), 1);\n\n const adjustedDate = new Date(date); // Prevent mutating this.selectedDate()\n adjustedDate.setMonth(adjustedDate.getMonth() + monthIncrement);\n\n if (adjustedDate >= this.minDate() && adjustedDate <= this.maxDate()) {\n this.selectedYear.set(adjustedDate.getFullYear());\n this.selectedMonth.set(adjustedDate.getMonth() + 1);\n }\n }\n}\n","<input\n ndwInput\n #input\n type=\"text\"\n minlength=\"6\"\n maxlength=\"7\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [required]=\"required()\"\n [value]=\"inputValue()\"\n (change)=\"onInputChanged(input.value)\"\n (keydown)=\"onKeyDown($event)\"\n/>\n\n<button\n ndwButton\n extra-small\n tertiary\n class=\"input-suffix-button\"\n [disabled]=\"disabled()\"\n [ariaLabel]=\"showMonthPickerLabel()\"\n (click)=\"showMonthPicker = !showMonthPicker\"\n [ndwPopoverTrigger]=\"monthPicker\"\n [popoverPosition]=\"'nextToTriggerButton'\"\n>\n <ndw-icon>calendar_month</ndw-icon>\n</button>\n\n<ng-template #monthPicker>\n <input\n ndwInput\n #yearSelect\n type=\"number\"\n [placeholder]=\"yearPlaceholder()\"\n [min]=\"minDate().getFullYear()\"\n [max]=\"maxDate().getFullYear()\"\n [ngModel]=\"selectedYear()\"\n (ngModelChange)=\"onYearSelected(yearSelect.value)\"\n />\n\n <ndw-option-group\n [ngModel]=\"selectedMonth() ? [selectedMonth()] : []\"\n (ngModelChange)=\"onMonthSelected($event?.[0])\"\n [fluid]=\"true\"\n [fluidColumns]=\"4\"\n mode=\"single\"\n >\n @for (month of months(); track month) {\n <ndw-option [label]=\"month.label\" [value]=\"month.value\">\n {{ month }}\n </ndw-option>\n }\n </ndw-option-group>\n</ng-template>\n","import { Component } from '@angular/core';\n\nimport { IconComponent } from '../../icon';\n\n@Component({\n selector: 'ndw-success',\n standalone: true,\n imports: [IconComponent],\n templateUrl: './success.component.html',\n styleUrl: './success.component.scss',\n})\nexport class SuccessComponent {}\n","<ndw-icon>check</ndw-icon>\n<ng-content />\n","import { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { Component, computed, contentChild, effect, input } from '@angular/core';\n\nimport { ButtonDirective } from '../button';\nimport { IconComponent } from '../icon';\nimport { TooltipDirective } from '../tooltip';\n\nimport { ErrorComponent } from './error';\nimport { FormFieldElement } from './form-field.model';\nimport { InfoComponent } from './info';\nimport { InputDirective, InputType } from './input';\nimport { MonthInputComponent } from './month-input';\nimport { SuccessComponent } from './success';\n\nconst inputTypesWithPrefixIcon = [InputType.Search];\nconst inputTypesWithSuffixButton = [InputType.Date, InputType.Time];\n\n@Component({\n selector: 'ndw-form-field',\n standalone: true,\n imports: [\n ButtonDirective,\n ErrorComponent,\n SuccessComponent,\n IconComponent,\n InfoComponent,\n NgClass,\n NgTemplateOutlet,\n TooltipDirective,\n ],\n templateUrl: './form-field.component.html',\n styleUrl: './form-field.component.scss',\n})\nexport class FormFieldComponent {\n public readonly monthInput = contentChild(MonthInputComponent);\n public readonly regularInput = contentChild(InputDirective);\n public input = computed(() => this.regularInput() ?? this.monthInput()?.input());\n\n public label = input.required<string>();\n public clearSearchAriaLabel = input<string>();\n public suffixButtonAriaLabel = input<string>();\n public hideLabel = input<boolean>(false);\n\n public disabled = input(false);\n public error = input<string>();\n public success = input<string>();\n public info = input<string>();\n public tooltip = input('');\n\n public inputPrefix = computed(() => this.setInputPrefix());\n public inputSuffix = computed(() => this.setInputSuffix());\n\n public uuid = crypto.randomUUID();\n public descriptionUuid = crypto.randomUUID();\n\n public constructor() {\n effect(() => {\n const input = this.input();\n if (!input) {\n return;\n }\n\n this.addInputTypeBasedClass(input);\n this.setInputDisabledState(input);\n this.setInputErrorState(input);\n this.setInputSuccessState(input);\n this.setInputId(input);\n this.setAriaDescribedBy(input);\n });\n }\n\n public clearInput(): void {\n const input = this.input();\n if (input) {\n input.element.value = '';\n // Trigger 'ndw-changed' attribute update on the input element\n input.element.dispatchEvent(new Event('input'));\n }\n }\n\n protected onSuffixButtonClick(): void {\n const inputElement = this.input()?.element;\n if (!inputElement) {\n return;\n }\n\n inputElement.focus();\n\n if ('showPicker' in inputElement) {\n inputElement.showPicker();\n }\n }\n\n private addInputTypeBasedClass(input: InputDirective): void {\n const element = input.element;\n if (!element) {\n return;\n }\n\n inputTypesWithPrefixIcon.includes(element.type as InputType)\n ? element.classList.add('prefix-icon')\n : element.classList.remove('prefix-icon');\n\n inputTypesWithSuffixButton.includes(element.type as InputType)\n ? element.classList.add('suffix-button')\n : element.classList.remove('suffix-button');\n }\n\n private setInputDisabledState(input: InputDirective): void {\n input.disabled = this.disabled();\n }\n\n private setInputErrorState(input: InputDirective): void {\n input.error = !!this.error()?.length;\n }\n\n private setInputSuccessState(input: InputDirective): void {\n input.success = !!this.success()?.length;\n }\n\n private setInputId(input: InputDirective): void {\n input.id = `input-${this.uuid}`;\n }\n\n private setAriaDescribedBy(input: InputDirective): void {\n input.ariaDescribedBy = this.descriptionUuid;\n }\n\n private setInputPrefix(): string | undefined {\n const input = this.input();\n if (!input) {\n return;\n }\n\n // Set the input icon for search inputs\n return inputTypesWithPrefixIcon.includes(input.element.type as InputType)\n ? 'search'\n : undefined;\n }\n\n private setInputSuffix(): string | undefined {\n const input = this.input();\n if (!input) {\n return;\n }\n\n // Set the input icon for date inputs\n if (inputTypesWithSuffixButton.includes(input.element.type as InputType)) {\n return input.element.type === InputType.Time ? 'schedule' : 'calendar_month';\n }\n\n // Set the input icon for select inputs\n if (input.element.nodeName.toLowerCase() === FormFieldElement.Select) {\n return 'keyboard_arrow_down';\n }\n\n return undefined;\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 @if (inputPrefix(); as icon) {\n <ndw-icon class=\"input-prefix-icon\" [ngClass]=\"{ disabled: disabled() }\">\n {{ icon }}\n </ndw-icon>\n }\n @if (inputSuffix(); as icon) {\n <button\n ndwButton\n extra-small\n tertiary\n class=\"input-suffix-button\"\n [ngClass]=\"{ disabled: disabled() }\"\n [ariaLabel]=\"suffixButtonAriaLabel() ?? ''\"\n (click)=\"onSuffixButtonClick()\"\n >\n <ndw-icon>{{ icon }}</ndw-icon>\n </button>\n }\n\n @if (input()?.element?.type === 'search' && input()?.element?.value !== '') {\n <button\n ndwButton\n alternative\n extra-small\n tertiary\n class=\"input-suffix-button\"\n [ariaLabel]=\"clearSearchAriaLabel() ?? ''\"\n (click)=\"clearInput()\"\n >\n <ndw-icon>close</ndw-icon>\n </button>\n }\n\n <ng-content />\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, HostBinding, input, model } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { IconComponent } from '../../icon';\n\n@Component({\n selector: 'ndw-radio-button',\n standalone: true,\n imports: [IconComponent, NgClass],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: RadioButtonComponent,\n multi: true,\n },\n ],\n templateUrl: './radio-button.component.html',\n styleUrls: ['../checkable-input.scss', './radio-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadioButtonComponent implements ControlValueAccessor {\n public checked = model(false);\n public disabled = model(false);\n public error = input(false);\n public success = input(false);\n public name = model('');\n public required = input(false);\n public value = model();\n\n public uuid = crypto.randomUUID();\n\n @HostBinding('class.checked')\n public get checkedClass(): boolean {\n return this.checked();\n }\n\n @HostBinding('class.disabled')\n public get disabledClass(): boolean {\n return this.disabled();\n }\n\n public onClick(): void {\n if (this.disabled()) {\n return;\n }\n\n this.checked.set(true);\n }\n\n public onKeyDown(event: KeyboardEvent): void {\n if (event.key !== 'Enter' || this.disabled()) {\n return;\n }\n\n this.checked.set(true);\n event.preventDefault();\n }\n\n public writeValue(value: boolean): void {\n this.checked.set(value);\n }\n\n public registerOnChange(fn: (value: boolean) => void): void {\n this.checked.subscribe(fn);\n }\n\n public registerOnTouched(): void {\n // noop\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n}\n","<input\n type=\"radio\"\n [id]=\"'radio-button-' + uuid\"\n [name]=\"name()\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [required]=\"required()\"\n aria-hidden=\"true\"\n/>\n<div\n class=\"radio-button\"\n role=\"radio\"\n [ngClass]=\"{ error: error(), success: success() }\"\n [tabindex]=\"disabled() ? -1 : 0\"\n [attr.aria-checked]=\"checked()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-labelledby]=\"'radio-button-label-' + uuid\"\n (click)=\"onClick()\"\n (keydown)=\"onKeyDown($event)\"\n>\n @if (checked()) {\n <span class=\"check\"></span>\n }\n</div>\n<label\n tabindex=\"-1\"\n id=\"radio-button-label-{{ uuid }}\"\n [for]=\"'radio-button-' + uuid\"\n (click)=\"onClick()\"\n (keydown)=\"onKeyDown($event)\"\n>\n <ng-content />\n</label>\n","import { AfterContentInit, Component, contentChildren, HostBinding } from '@angular/core';\n\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { RadioButtonComponent } from '../radio-button';\n\n@Component({\n selector: 'ndw-radio-group',\n standalone: true,\n imports: [],\n templateUrl: './radio-group.component.html',\n styleUrl: './radio-group.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: RadioGroupComponent,\n multi: true,\n },\n ],\n})\nexport class RadioGroupComponent implements AfterContentInit, ControlValueAccessor {\n public radioButtons = contentChildren(RadioButtonComponent);\n\n private uuid = crypto.randomUUID();\n private onChange: (value: unknown) => void = () => {};\n\n @HostBinding('attr.role')\n public readonly roleAttr = 'radiogroup';\n\n public ngAfterContentInit(): void {\n this.setRadioButtonsName();\n this.handleCheckedChange();\n }\n\n public writeValue(value: unknown): void {\n this.radioButtons().forEach((radio) => {\n radio.checked.set(radio.value() === value);\n });\n }\n\n public registerOnChange(fn: (value: unknown) => void): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(): void {\n // Not implemented\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n this.radioButtons().forEach((radio) => radio.disabled.set(isDisabled));\n }\n\n private setRadioButtonsName(): void {\n this.radioButtons().forEach((radio) => {\n radio.name.set(this.uuid);\n });\n }\n\n private handleCheckedChange(): void {\n this.radioButtons().forEach((radio) => {\n radio.checked.subscribe((checked) => {\n if (!checked) {\n return;\n }\n\n this.radioButtons().forEach((otherRadio) => {\n if (otherRadio !== radio) {\n otherRadio.checked.set(false);\n }\n });\n\n this.onChange(radio.value());\n });\n });\n }\n}\n","<ng-content />\n","import { AfterViewInit, Directive, ElementRef, OnDestroy, inject } from '@angular/core';\n\n/**\n * Directive that automatically grows a textarea element to fit its content.\n *\n * Note that at this moment (2024-09-06) there is an experimental CSS property\n * `field-sizing: content;` that can be used to achieve the same effect. At this\n * moment not all browsers support this property (FF and Safari do not for example).\n *\n * So for now a directive is used to achieve the same effect.\n */\n@Directive({\n selector: 'textarea[ndwAutoGrow]',\n standalone: true,\n})\nexport class AutoGrowDirective implements AfterViewInit, OnDestroy {\n private readonly elementRef = inject(ElementRef);\n\n public get element(): HTMLTextAreaElement {\n return this.elementRef.nativeElement as HTMLTextAreaElement;\n }\n\n public ngAfterViewInit(): void {\n this.element.style.resize = 'none';\n this.element.style.overflow = 'hidden';\n this.element.addEventListener('input', fitContentInTextArea);\n // Use set timeout to make sure the textarea is rendered before\n // we set the initial height. This is needed for Firefox.\n setTimeout(() => fitContentInTextArea({ target: this.element }));\n }\n\n public ngOnDestroy(): void {\n this.element.removeEventListener('input', fitContentInTextArea);\n }\n}\n\nfunction fitContentInTextArea(event: Pick<Event, 'target'>): void {\n const element = event.target as HTMLTextAreaElement;\n element.style.height = 'auto'; // Make the textarea shrink when a lot of text is removed.\n element.style.height = `${element.scrollHeight}px`;\n}\n","export interface SimpleMenuItem {\n id: number;\n label: string;\n callback?: (id: number) => void;\n}\n\nexport interface MenuItem extends SimpleMenuItem {\n children?: SimpleMenuItem[];\n icon?: string;\n notifications?: number;\n}\n\nexport enum NdwBrand {\n NDW = 'NDW',\n NWB = 'NWB',\n}\n","import { Component, input, output } from '@angular/core';\n\nimport { SimpleMenuItem } from '../main-navigation';\n\n@Component({\n selector: 'ndw-main-navigation-menu',\n standalone: true,\n templateUrl: './main-navigation-menu.component.html',\n styleUrl: './main-navigation-menu.component.scss',\n})\nexport class MainNavigationMenuComponent {\n public menuItems = input.required<SimpleMenuItem[]>();\n public isMobile = input(false);\n\n public close = output();\n\n public handleSelected(item: SimpleMenuItem): void {\n item.callback?.(item.id);\n this.close.emit();\n }\n}\n","@for (item of menuItems(); track item.id) {\n <button ndwButton menu [attr.active]=\"isMobile() || undefined\" (click)=\"handleSelected(item)\">\n {{ item.label }}\n </button>\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { RouterLink } from '@angular/router';\n\nimport { BadgeComponent } from '../badge';\nimport { IconComponent } from '../icon';\nimport { MainNavigationMenuComponent } from '../main-navigation-menu';\nimport { TooltipDirective } from '../tooltip';\n\nexport const MAIN_NAVIGATION_IMPORTS = [\n BadgeComponent,\n CdkPortalOutlet,\n IconComponent,\n MainNavigationMenuComponent,\n NgClass,\n NgTemplateOutlet,\n OverlayModule,\n RouterLink,\n TooltipDirective,\n];\n","import { ConnectedPosition, Overlay, OverlayRef, PositionStrategy } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n OnDestroy,\n TemplateRef,\n ViewContainerRef,\n computed,\n inject,\n input,\n model,\n signal,\n viewChild,\n viewChildren,\n} from '@angular/core';\n\nimport { MainNavigationMenuComponent } from '../main-navigation-menu';\n\nimport { MenuItem, NdwBrand, SimpleMenuItem } from './main-navigation.model';\nimport { MAIN_NAVIGATION_IMPORTS } from './main-navigation.imports';\n\n@Component({\n selector: 'ndw-main-navigation',\n standalone: true,\n imports: MAIN_NAVIGATION_IMPORTS,\n templateUrl: './main-navigation.component.html',\n styleUrl: './main-navigation.component.scss',\n})\nexport class MainNavigationComponent implements AfterViewInit, OnDestroy {\n public applicationName = input.required<string>();\n public topMenuItems = input.required<MenuItem[]>();\n public bottomMenuItems = input<MenuItem[]>();\n public brand = input(NdwBrand.NDW);\n public footerTexts = input<string[]>();\n public isCollapsible = input(true);\n public version = input<string>();\n // Mobile inputs\n public closeButtonLabel = input('Sluit');\n public menuButtonLabel = input('Menu');\n\n public isExpanded = model(true);\n public isMobileExpanded = model(false);\n\n public buttons = viewChildren<ElementRef<HTMLButtonElement>>('menuTrigger');\n public childMenuTemplate =\n viewChild.required<TemplateRef<MainNavigationMenuComponent>>('childMenu');\n\n public isMobile = signal(window.innerWidth <= 1024);\n public brandImagePath = computed(() => {\n const brand = this.brand().toLowerCase();\n const variant = !this.isExpanded() && !this.isMobile() ? '-short' : '';\n return `assets/images/${brand}-logo${variant}.svg`;\n });\n\n protected mobilePortal?: TemplatePortal<MainNavigationMenuComponent>;\n private activeId?: number;\n\n @HostBinding('attr.brand')\n protected get brandAttribute(): string {\n return this.brand().toLowerCase();\n }\n\n @HostBinding('class.expanded')\n protected get expandedClass(): boolean {\n return this.isExpanded();\n }\n\n @HostBinding('class.mobile')\n protected get mobileClass(): boolean {\n return this.isMobile();\n }\n\n // Only close the menu when the cursor is not over the button or the child menu\n @HostListener('document:mousemove', ['$event'])\n public onMouseMove(event: MouseEvent): void {\n const isCursorOverButton = this.activeButton?.nativeElement.contains(event.target as Node);\n const isCursorOverChildMenu = this.overlayRef?.overlayElement.contains(event.target as Node);\n if (!this.mobilePortal && !isCursorOverButton && !isCursorOverChildMenu) {\n this.close();\n }\n }\n\n @HostListener('window:resize')\n public onWindowResize(): void {\n this.isMobile.set(window.innerWidth <= 1024);\n }\n\n public activeChildItems: SimpleMenuItem[] = [];\n public overlayPositions: ConnectedPosition[] = [\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n ];\n\n private overlay = inject(Overlay);\n private viewContainerRef = inject(ViewContainerRef);\n\n private activeButton?: ElementRef<HTMLButtonElement>;\n private overlayRef?: OverlayRef;\n\n public ngAfterViewInit(): void {\n this.overlayRef = this.overlay.create({\n positionStrategy: this.setPositionStrategy(),\n });\n }\n\n public ngOnDestroy(): void {\n this.mobilePortal?.detach();\n this.overlayRef?.dispose();\n }\n\n public close(toggleMobileView?: boolean): void {\n this.activeChildItems = [];\n this.isMobile() ? this.mobilePortal?.detach() : this.overlayRef?.detach();\n toggleMobileView && this.toggleMobileView();\n }\n\n public handleClick(item: MenuItem): void {\n item.callback?.(item.id);\n if (!item.children && this.isMobile()) {\n this.toggleMobileView();\n }\n }\n\n public handleLogoClick(): void {\n this.isMobileExpanded.set(false);\n }\n\n public open(item: MenuItem): void {\n this.activeId = item.id;\n if (!this.isMobile()) {\n this.close();\n }\n\n this.activeButton = this.buttons().find(\n (button) => Number(button.nativeElement.id) === item.id,\n );\n\n if (!this.activeButton?.nativeElement || !item.children) {\n return;\n }\n\n this.activeChildItems = item.children;\n const portal = new TemplatePortal(this.childMenuTemplate(), this.viewContainerRef);\n if (this.isMobile()) {\n this.mobilePortal = portal;\n return;\n }\n\n this.mobilePortal = undefined;\n\n // Update the position strategy with the active button as the trigger\n this.overlayRef?.updatePositionStrategy(\n this.setPositionStrategy(this.activeButton.nativeElement),\n );\n this.overlayRef?.attach(portal);\n }\n\n public toggleChildMenu(item: MenuItem, event?: KeyboardEvent): void {\n if (event && event?.key !== 'Enter') {\n return;\n }\n\n this.mobilePortal?.isAttached && this.activeId === item.id ? this.close() : this.open(item);\n }\n\n public toggleMobileView(): void {\n this.isMobileExpanded.set(!this.isMobileExpanded());\n }\n\n public toggleView(): void {\n this.isExpanded.set(!this.isExpanded());\n }\n\n private setPositionStrategy(trigger?: HTMLButtonElement): PositionStrategy {\n if (!trigger) {\n return this.overlay.position().global();\n }\n\n return this.overlay\n .position()\n .flexibleConnectedTo(trigger)\n .withPositions(this.overlayPositions);\n }\n}\n","<header>\n <a routerLink=\"/\" (click)=\"handleLogoClick()\" (keydown)=\"handleLogoClick()\">\n <img [src]=\"brandImagePath()\" [alt]=\"brand() + ' logo'\" />\n @if (isExpanded() || isMobile()) {\n {{ applicationName() }}\n }\n </a>\n <button ndwButton class=\"menu-button\" aria-label=\"menu-button\" (click)=\"toggleMobileView()\">\n @if (!isMobileExpanded()) {\n {{ menuButtonLabel() }}\n <ndw-icon>menu</ndw-icon>\n } @else {\n {{ closeButtonLabel() }}\n <ndw-icon>close</ndw-icon>\n }\n </button>\n</header>\n<div class=\"content\" [ngClass]=\"{ expanded: isMobileExpanded() }\">\n <main>\n <div class=\"menu-items\">\n @for (item of topMenuItems(); track $index) {\n <ng-container *ngTemplateOutlet=\"menuItem; context: { $implicit: item }\" />\n }\n </div>\n </main>\n <footer>\n <div class=\"menu-items\">\n @for (item of bottomMenuItems(); track $index) {\n <ng-container *ngTemplateOutlet=\"menuItem; context: { $implicit: item }\" />\n }\n </div>\n <div class=\"texts\">\n @if (isExpanded() || isMobile()) {\n @for (text of footerTexts(); track $index) {\n <p>{{ text }}</p>\n }\n }\n </div>\n <div class=\"version\">\n <p>{{ version() }}</p>\n @if (isCollapsible()) {\n <button ndwButton menu aria-label=\"expand-button\" (click)=\"toggleView()\">\n <ndw-icon>keyboard_double_arrow_right</ndw-icon>\n </button>\n }\n </div>\n </footer>\n</div>\n\n<!-- Templates -->\n<ng-template #menuItem let-item>\n <button\n ndwButton\n menu\n #menuTrigger\n [attr.active]=\"(isMobile() && activeChildItems === item.children) || undefined\"\n [id]=\"item.id\"\n [ndwTooltip]=\"!isExpanded() && !isMobile() ? item.label : ''\"\n (click)=\"handleClick(item)\"\n (focus)=\"!isMobile() && open(item)\"\n (keydown)=\"isMobile() && toggleChildMenu(item, $event)\"\n (mousedown)=\"isMobile() && toggleChildMenu(item)\"\n (mouseover)=\"!isMobile() && open(item)\"\n >\n @if (item.icon) {\n <ndw-icon>{{ item.icon }}</ndw-icon>\n }\n @if (isExpanded() || isMobile()) {\n {{ item.label }}\n }\n @if (item.notifications) {\n <ndw-badge [ngClass]=\"{ collapsed: !isExpanded() }\" [value]=\"item.notifications\" />\n }\n @if (isExpanded() && item.children) {\n <ndw-icon\n class=\"suffix\"\n [ngClass]=\"{ open: !!mobilePortal && activeChildItems === item.children }\"\n >arrow_right</ndw-icon\n >\n }\n </button>\n @if (activeChildItems === item.children) {\n <ng-template [cdkPortalOutlet]=\"mobilePortal\" />\n }\n</ng-template>\n\n<ng-template #childMenu>\n <ndw-main-navigation-menu\n [isMobile]=\"isMobile()\"\n [menuItems]=\"activeChildItems\"\n (close)=\"close(true)\"\n />\n</ng-template>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ndw-modal-content',\n standalone: true,\n imports: [],\n templateUrl: './modal-content.component.html',\n styleUrl: '../../card/card-content/card-content.component.scss',\n})\nexport class ModalContentComponent {}\n","<ng-content />\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ndw-modal-footer',\n standalone: true,\n imports: [],\n templateUrl: './modal-footer.component.html',\n styleUrl: '../../card/card-footer/card-footer.component.scss',\n})\nexport class ModalFooterComponent {}\n","<ng-content />\n","import { Component, inject } from '@angular/core';\n\nimport { ButtonDirective } from '../../button';\nimport { IconComponent } from '../../icon';\nimport { ModalService } from '../../modal';\n\n@Component({\n selector: 'ndw-modal-header',\n standalone: true,\n imports: [ButtonDirective, IconComponent],\n templateUrl: './modal-header.component.html',\n styleUrls: ['../../card/card-header/card-header.component.scss', './modal-header.component.scss'],\n})\nexport class ModalHeaderComponent {\n private readonly modalService = inject(ModalService);\n\n public detachModal(): void {\n this.modalService.detach();\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 { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { DestroyRef, inject, Injectable, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Subject, take } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ModalService {\n private readonly destroyRef = inject(DestroyRef);\n private readonly overlay = inject(Overlay);\n\n public isOpen$ = new Subject<boolean>();\n\n private isOpen = false;\n private overlayRef?: OverlayRef;\n\n public detach(): void {\n this.overlayRef?.detach();\n this.isOpen = false;\n this.isOpen$.next(this.isOpen);\n }\n\n public dispose(): void {\n this.overlayRef?.dispose();\n }\n\n public open(templateRef: TemplateRef<unknown>, viewContainerRef: ViewContainerRef): void {\n if (this.isOpen) {\n this.detach();\n }\n\n const templatePortal = new TemplatePortal(templateRef, viewContainerRef);\n this.overlayRef = this.overlay.create({\n hasBackdrop: true,\n backdropClass: 'ndw-overlay-backdrop',\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n positionStrategy: this.overlay.position().global().centerHorizontally().centerVertically(),\n });\n\n this.overlayRef.attach(templatePortal);\n this.isOpen = true;\n this.isOpen$.next(this.isOpen);\n\n this.overlayRef\n .backdropClick()\n .pipe(takeUntilDestroyed(this.destroyRef), take(1))\n .subscribe(() => {\n this.detach();\n });\n }\n}\n","import {\n Directive,\n HostListener,\n OnChanges,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewContainerRef,\n inject,\n input,\n model,\n} from '@angular/core';\n\nimport { CardComponent } from '../card';\n\nimport { ModalService } from './modal.service';\n\n@Directive({\n selector: '[ndwModalTrigger]',\n standalone: true,\n})\nexport class ModalTriggerDirective implements OnChanges, OnDestroy, OnInit {\n private modalService = inject(ModalService);\n private viewContainerRef = inject(ViewContainerRef);\n\n public ndwModalTrigger = input.required<TemplateRef<CardComponent>>();\n\n public isOpen = model(false);\n\n @HostListener('click', ['$event'])\n public onClick(): void {\n this.open();\n }\n\n public ngOnChanges(): void {\n if (this.isOpen()) {\n this.open();\n } else {\n this.modalService.detach();\n }\n }\n\n public ngOnInit(): void {\n this.modalService.isOpen$.subscribe((isOpen) => {\n this.isOpen.set(isOpen);\n });\n }\n\n public ngOnDestroy(): void {\n this.modalService.dispose();\n }\n\n private open(): void {\n this.modalService.open(this.ndwModalTrigger(), this.viewContainerRef);\n }\n}\n","import { Component, HostBinding, input } from '@angular/core';\n\nimport { CardComponent } from '../card';\n\nexport type ModalSize = 'sm' | 'md';\n\n@Component({\n selector: 'ndw-modal',\n standalone: true,\n imports: [],\n templateUrl: './modal.component.html',\n styleUrls: ['../card/card.component.scss', './modal.component.scss'],\n})\nexport class ModalComponent extends CardComponent {\n public size = input<ModalSize>('sm');\n\n @HostBinding('class.modal-size-sm')\n public get isSmall(): boolean {\n return this.size() === 'sm';\n }\n\n @HostBinding('class.modal-size-md')\n public get isMedium(): boolean {\n return this.size() === 'md';\n }\n\n @HostBinding('attr.role')\n public readonly roleAttr = 'dialog';\n}\n","<ng-content />\n","import { ModalContentComponent } from './modal-content';\nimport { ModalFooterComponent } from './modal-footer';\nimport { ModalHeaderComponent } from './modal-header';\nimport { ModalTriggerDirective } from './modal-trigger.directive';\nimport { ModalComponent } from './modal.component';\n\nexport * from './modal-content';\nexport * from './modal-footer';\nexport * from './modal-header';\nexport * from './modal-trigger.directive';\nexport * from './modal.component';\nexport * from './modal.service';\n\nexport const MODAL_COMPONENTS = [\n ModalComponent,\n ModalHeaderComponent,\n ModalContentComponent,\n ModalFooterComponent,\n ModalTriggerDirective,\n];\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n model,\n viewChild,\n} from '@angular/core';\nimport { PopoverTriggerDirective } from '../popover';\nimport {\n CheckboxComponent,\n CheckboxGroupComponent,\n FormFieldComponent,\n InputDirective,\n} from '../form-field';\nimport { CheckboxData } from './checkbox-data.interface';\nimport { CommonModule } from '@angular/common';\nimport { DropdownComponent } from '../dropdown';\nimport { IconComponent } from '../icon';\nimport { SelectAllText } from './select-all-text.interface';\n\n@Component({\n selector: 'ndw-multi-select',\n templateUrl: 'multi-select.component.html',\n styleUrls: ['multi-select.component.scss'],\n standalone: true,\n imports: [\n PopoverTriggerDirective,\n FormFieldComponent,\n CheckboxComponent,\n CheckboxGroupComponent,\n DropdownComponent,\n CommonModule,\n IconComponent,\n InputDirective,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MultiSelectComponent {\n public readonly dropdownTrigger = viewChild.required(PopoverTriggerDirective);\n\n public readonly buttonText = input.required<string>();\n public readonly searchLabel = input.required<string>();\n public readonly prefixIcon = input('');\n public readonly searchPlaceholder = input('');\n public readonly noResultText = input('');\n public readonly chevron = input(false);\n public readonly disabled = input(false);\n public readonly selectAllText = input<SelectAllText>({ deselect: '', select: '' });\n\n public readonly lastCheckedElementId = model<CheckboxData['id'] | null>();\n public readonly dataSource = model<CheckboxData[]>([]);\n public readonly searchInputValue = model('');\n\n public readonly selectAmount = computed(\n () => this.dataSource().filter((checkbox: CheckboxData) => checkbox.value).length,\n );\n public readonly noSearchResults = computed(\n () =>\n this.dataSource().filter((checkbox: CheckboxData) =>\n checkbox.label.toLowerCase().includes(this.searchInputValue().toLowerCase()),\n ).length === 0,\n );\n\n public filterSearch(value: string): boolean {\n return value.toLowerCase().includes(this.searchInputValue().toLowerCase());\n }\n\n public searchInputChanged(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.searchInputValue.set(input.value);\n }\n\n public checkboxChanged(id: string | number): void {\n this.dataSource.update((checkboxes: CheckboxData[]) => {\n return checkboxes?.map((checkbox: CheckboxData) =>\n checkbox.id === id ? { ...checkbox, value: !checkbox.value } : checkbox,\n );\n });\n }\n\n public toggleSelectAll(selectAll = true): void {\n this.dataSource.update((checkboxes: CheckboxData[]) => {\n return checkboxes.map((checkbox: CheckboxData) => ({ ...checkbox, value: selectAll }));\n });\n }\n\n public isOpenChanged(isOpen: boolean): void {\n if (isOpen) {\n this.dataSource.set(\n this.dataSource()\n .slice()\n .sort((a, b) => Number(b.value) - Number(a.value)),\n );\n this.searchInputValue.set('');\n this.determineLastCheckedElement();\n }\n }\n\n private determineLastCheckedElement(): void {\n if (this.dataSource().some((checkbox) => !checkbox.value)) {\n const sourceList = [...this.dataSource()];\n const lastChecked = sourceList.reverse().find((checkbox) => checkbox.value);\n this.lastCheckedElementId.set(lastChecked ? lastChecked.id : null);\n } else {\n this.lastCheckedElementId.set(null);\n }\n }\n}\n","<ndw-dropdown\n prefixIcon=\"filter_alt\"\n [selectAmount]=\"selectAmount()\"\n (removablePillClicked)=\"toggleSelectAll(false)\"\n (isOpenChange)=\"isOpenChanged($event)\"\n [buttonText]=\"buttonText()\"\n [disabled]=\"disabled()\"\n [chevron]=\"chevron()\"\n [prefixIcon]=\"prefixIcon()\"\n>\n <ndw-form-field [label]=\"searchLabel()\" [hideLabel]=\"true\">\n <input\n ndwInput\n type=\"search\"\n [value]=\"searchInputValue()\"\n (input)=\"searchInputChanged($event)\"\n [placeholder]=\"searchPlaceholder()\"\n />\n </ndw-form-field>\n @if (noSearchResults()) {\n <div class=\"no-search-results\">\n <ndw-icon>sentiment_dissatisfied</ndw-icon>\n {{ noResultText() }}\n </div>\n } @else {\n <ndw-checkbox-group class=\"multi-select-container\">\n @for (checkbox of dataSource(); track checkbox.id) {\n @if (filterSearch(checkbox.label)) {\n <ndw-checkbox\n [ngClass]=\"{ 'last-checked': lastCheckedElementId() === checkbox.id }\"\n [checked]=\"checkbox.value\"\n (checkedChange)=\"checkboxChanged(checkbox.id)\"\n >\n {{ checkbox.label }}\n </ndw-checkbox>\n }\n }\n </ndw-checkbox-group>\n }\n <div class=\"ndw-dialog-footer\">\n @if (selectAmount() === dataSource().length) {\n <button ndwLink (click)=\"toggleSelectAll(false)\">\n {{ selectAllText().deselect }}\n </button>\n } @else {\n <button ndwLink (click)=\"toggleSelectAll(true)\">\n {{ selectAllText().select }}\n </button>\n }\n <div class=\"ndw-dialog-footer-total\" aria-live=\"polite\">\n Geselecteerd: <strong>{{ selectAmount() }}</strong>\n </div>\n </div>\n</ndw-dropdown>\n","import { Component, HostBinding, input, viewChild } from '@angular/core';\nimport { PillColor } from './pill.model';\n\n@Component({\n selector: 'ndw-pill',\n standalone: true,\n templateUrl: './pill.component.html',\n styleUrl: './pill.component.scss',\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<string>('content');\n\n @HostBinding('class')\n public get hostClass(): string[] {\n return ['ndw-paragraph-md', this.color()];\n }\n\n @HostBinding('title')\n protected get title(): string | undefined {\n return this.content?.toString();\n }\n}\n","<ng-container #content>\n <ng-content />\n</ng-container>\n","import { AsyncPipe } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { ActivatedRoute, ActivatedRouteSnapshot, NavigationEnd, Router } from '@angular/router';\nimport { filter, map } from 'rxjs';\nimport { BreadcrumbComponent } from '../breadcrumb';\nimport { BreadcrumbGroupComponent } from '../breadcrumb-group';\n\ntype RouteBreadcrumb = { url: string; title: string };\n\nexport const breadcrumbRouteDataKey = 'breadcrumb';\n\n@Component({\n selector: 'ndw-router-breadcrumbs',\n standalone: true,\n imports: [BreadcrumbGroupComponent, BreadcrumbComponent, AsyncPipe],\n templateUrl: './router-breadcrumbs.component.html',\n})\nexport class RouterBreadcrumbsComponent {\n private readonly route = inject(ActivatedRoute);\n private readonly router = inject(Router);\n\n protected readonly breadcrumbs$ = this.router.events.pipe(\n filter((event) => event instanceof NavigationEnd),\n map(() => this.getBreadcrumbs()),\n );\n\n private getBreadcrumbs(): RouteBreadcrumb[] {\n let route: ActivatedRouteSnapshot | null = this.route.snapshot;\n const breadcrumbs: RouteBreadcrumb[] = [];\n\n while (route) {\n const title = route.data[breadcrumbRouteDataKey];\n const url = route.pathFromRoot\n .flatMap((route) => route.url.filter((segment) => segment.path))\n .join('/');\n\n if (title && url) {\n breadcrumbs.push({ url, title });\n }\n\n route = route.firstChild;\n }\n\n return breadcrumbs;\n }\n}\n","<ndw-breadcrumb-group>\n @for (breadcrumb of breadcrumbs$ | async; track breadcrumb.url) {\n <ndw-breadcrumb [link]=\"breadcrumb.url\">{{ breadcrumb.title }}</ndw-breadcrumb>\n }\n</ndw-breadcrumb-group>\n","import { HostBinding, HostListener, input, model } from '@angular/core';\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'ndw-tab',\n standalone: true,\n imports: [],\n templateUrl: './tab.component.html',\n styleUrl: './tab.component.scss',\n})\nexport class TabComponent {\n public index = input.required<number>();\n\n public active = model(false);\n\n @HostBinding('attr.active')\n protected get activeAttribute(): boolean | null {\n return this.active() || null;\n }\n\n @HostBinding('attr.role')\n protected readonly role = 'tab';\n\n @HostBinding('attr.tabindex')\n protected get tabIndex(): number {\n return this.index() + 1 || 0;\n }\n\n @HostListener('click', ['$event'])\n public onClick(): void {\n this.active.set(true);\n }\n @HostListener('keydown', ['$event'])\n public onTabKeyDown(event: KeyboardEvent): void {\n if (event.key !== 'Enter') {\n return;\n }\n\n event.preventDefault();\n this.active.set(true);\n }\n}\n","<ng-content />\n","import { AfterContentInit, Component, HostBinding, contentChildren, model } from '@angular/core';\nimport { TabComponent } from '../tab/tab.component';\n\n@Component({\n selector: 'ndw-tab-group',\n standalone: true,\n imports: [],\n templateUrl: './tab-group.component.html',\n styleUrl: './tab-group.component.scss',\n})\nexport class TabGroupComponent implements AfterContentInit {\n public tabs = contentChildren(TabComponent);\n\n public activeTab = model(0);\n\n @HostBinding('attr.role')\n protected readonly role = 'tablist';\n\n public ngAfterContentInit(): void {\n this.tabs().forEach(({ active, index }) => {\n active.set(this.activeTab() === index());\n active.subscribe((isActive: boolean) => {\n if (isActive) {\n this.activeTab.set(index());\n }\n active.set(this.activeTab() === index());\n });\n });\n\n this.activeTab.subscribe(() => {\n this.tabs().forEach(({ active, index }) => {\n active.set(this.activeTab() === index());\n });\n });\n }\n}\n","<ng-content />\n","import {\n Component,\n ElementRef,\n OnDestroy,\n OnInit,\n Renderer2,\n inject,\n model,\n output,\n viewChild,\n} from '@angular/core';\nimport { IconComponent } from '../icon';\n\n@Component({\n selector: 'ndw-toast',\n standalone: true,\n styleUrls: ['./toast.component.scss'],\n templateUrl: './toast.component.html',\n imports: [IconComponent],\n})\nexport class ToastComponent implements OnInit, OnDestroy {\n public readonly message = model('');\n public readonly close = output<void>();\n private interval: ReturnType<typeof setInterval> | null = null;\n private readonly renderer = inject(Renderer2);\n private readonly toastContainer = viewChild<ElementRef>('toastContainer');\n\n public ngOnInit(): void {\n this.message.set(this.truncateText(this.message()));\n this.open();\n }\n\n public ngOnDestroy(): void {\n this.clearInterval();\n this.close.emit();\n }\n\n public open(): void {\n const intervalTime = 10;\n const totalTicks = 10000 / intervalTime;\n let currentTick = 0;\n\n this.interval = setInterval(() => {\n currentTick++;\n const percentage = (currentTick / totalTicks) * 100;\n this.updateGradient(percentage);\n\n if (currentTick >= totalTicks) {\n this.startFadeOut();\n }\n }, intervalTime);\n }\n\n private updateGradient(percentage: number): void {\n if (!this.checkForExistingToast()) {\n return;\n }\n\n const toastElement = this.toastContainer()?.nativeElement;\n toastElement.style.background =\n 'linear-gradient(to left, var(--ndw-color-grey-600) ' +\n `${percentage}%, var(--ndw-color-grey-700) ${percentage}%)`;\n }\n\n protected startFadeOut(): void {\n if (!this.checkForExistingToast()) {\n return;\n }\n\n const toastElement = this.toastContainer()?.nativeElement;\n this.renderer.addClass(toastElement, 'fade-out');\n setTimeout(() => {\n this.clearInterval();\n }, 200);\n }\n\n private checkForExistingToast(): boolean {\n if (!this.toastContainer()?.nativeElement) {\n this.clearInterval();\n return false;\n }\n return true;\n }\n\n private clearInterval(): void {\n if (this.interval !== null) {\n clearInterval(this.interval);\n }\n }\n\n private truncateText(text: string): string {\n if (text.length > 75) {\n return text.substring(0, 75) + '...';\n }\n return text;\n }\n}\n","<div #toastContainer>\n <p>\n {{ message() }}\n </p>\n <button ndwButton tertiary alternative extra-small (click)=\"startFadeOut()\">\n <ndw-icon>close</ndw-icon>\n </button>\n</div>\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { inject, Injectable } from '@angular/core';\nimport { ToastComponent } from './toast.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ToastService {\n private readonly overlay = inject(Overlay);\n\n private isOpen = false;\n public overlayRef?: OverlayRef;\n\n public detach(): void {\n this.overlayRef?.detach();\n this.isOpen = false;\n }\n\n public dispose(): void {\n this.overlayRef?.dispose();\n }\n\n public open(message: string): void {\n if (this.isOpen) {\n this.detach();\n }\n\n this.overlayRef = this.overlay.create({\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n positionStrategy: this.overlay.position().global().centerHorizontally().top('1.5rem'),\n });\n\n const toastPortal = new ComponentPortal(ToastComponent);\n const toastComponentRef = this.overlayRef.attach(toastPortal);\n\n toastComponentRef.instance.message.set(message);\n toastComponentRef.instance.close.subscribe(() => {\n this.detach();\n });\n\n this.isOpen = true;\n }\n}\n","/*\n * Public API Surface of ndw\n */\n\nexport * from './components';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.BadgeComponent","i3.IconComponent","i4.MainNavigationMenuComponent","i8.TooltipDirective","i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ndwnu-design-system.mjs","sources":["../../../projects/ndw/src/components/accordion/accordion.service.ts","../../../projects/ndw/src/components/badge/badge.component.ts","../../../projects/ndw/src/components/badge/badge.component.html","../../../projects/ndw/src/components/icon/icon.component.ts","../../../projects/ndw/src/components/icon/icon.component.html","../../../projects/ndw/src/components/icon/action-icon/action-icon.component.ts","../../../projects/ndw/src/components/icon/action-icon/action-icon.component.html","../../../projects/ndw/src/components/collapsible/collapsible.animation.ts","../../../projects/ndw/src/components/collapsible/collapsible.component.ts","../../../projects/ndw/src/components/collapsible/collapsible.component.html","../../../projects/ndw/src/components/accordion/accordion.component.ts","../../../projects/ndw/src/components/accordion/accordion.component.html","../../../projects/ndw/src/components/button/button.directive.ts","../../../projects/ndw/src/components/alert/alert.model.ts","../../../projects/ndw/src/components/alert/alert.component.ts","../../../projects/ndw/src/components/alert/alert.component.html","../../../projects/ndw/src/components/breadcrumb/breadcrumb.component.ts","../../../projects/ndw/src/components/breadcrumb/breadcrumb.component.html","../../../projects/ndw/src/components/breadcrumb-group/breadcrumb-group.component.ts","../../../projects/ndw/src/components/breadcrumb-group/breadcrumb-group.component.html","../../../projects/ndw/src/components/card/card-content/card-content.component.ts","../../../projects/ndw/src/components/card/card-content/card-content.component.html","../../../projects/ndw/src/components/card/card-footer/card-footer.component.ts","../../../projects/ndw/src/components/card/card-footer/card-footer.component.html","../../../projects/ndw/src/components/card/card-header/card-header.component.ts","../../../projects/ndw/src/components/card/card-header/card-header.component.html","../../../projects/ndw/src/components/card/card.component.ts","../../../projects/ndw/src/components/card/card.component.html","../../../projects/ndw/src/components/card/index.ts","../../../projects/ndw/src/components/popover/popover-trigger.directive.ts","../../../projects/ndw/src/components/removable-pill/removable-pill.component.ts","../../../projects/ndw/src/components/removable-pill/removable-pill.component.html","../../../projects/ndw/src/components/dropdown/dropdown.component.ts","../../../projects/ndw/src/components/dropdown/dropdown.component.html","../../../projects/ndw/src/components/form-field/checkbox/checkbox.component.ts","../../../projects/ndw/src/components/form-field/checkbox/checkbox.component.html","../../../projects/ndw/src/components/form-field/checkbox-group/checkbox-group.component.ts","../../../projects/ndw/src/components/form-field/checkbox-group/checkbox-group.component.html","../../../projects/ndw/src/components/form-field/error/error.component.ts","../../../projects/ndw/src/components/form-field/error/error.component.html","../../../projects/ndw/src/components/form-field/file-upload/file-upload.component.ts","../../../projects/ndw/src/components/form-field/file-upload/file-upload.component.html","../../../projects/ndw/src/components/tooltip/tooltip.component.ts","../../../projects/ndw/src/components/tooltip/tooltip.component.html","../../../projects/ndw/src/components/tooltip/tooltip.directive.ts","../../../projects/ndw/src/components/form-field/form-field.model.ts","../../../projects/ndw/src/components/form-field/info/info.component.ts","../../../projects/ndw/src/components/form-field/info/info.component.html","../../../projects/ndw/src/components/form-field/input/input.directive.ts","../../../projects/ndw/src/components/form-field/input/input.model.ts","../../../projects/ndw/src/components/form-field/option-group/option.component.ts","../../../projects/ndw/src/components/form-field/option-group/option-group.component.ts","../../../projects/ndw/src/components/form-field/option-group/option-group.component.html","../../../projects/ndw/src/components/form-field/month-input/month-input-utils.ts","../../../projects/ndw/src/components/form-field/month-input/month-input.component.ts","../../../projects/ndw/src/components/form-field/month-input/month-input.component.html","../../../projects/ndw/src/components/form-field/success/success.component.ts","../../../projects/ndw/src/components/form-field/success/success.component.html","../../../projects/ndw/src/components/form-field/form-field.component.ts","../../../projects/ndw/src/components/form-field/form-field.component.html","../../../projects/ndw/src/components/form-field/radio-button/radio-button.component.ts","../../../projects/ndw/src/components/form-field/radio-button/radio-button.component.html","../../../projects/ndw/src/components/form-field/radio-group/radio-group.component.ts","../../../projects/ndw/src/components/form-field/radio-group/radio-group.component.html","../../../projects/ndw/src/components/form-field/textarea/auto-grow.directive.ts","../../../projects/ndw/src/components/main-navigation/main-navigation.model.ts","../../../projects/ndw/src/components/main-navigation-menu/main-navigation-menu.component.ts","../../../projects/ndw/src/components/main-navigation-menu/main-navigation-menu.component.html","../../../projects/ndw/src/components/main-navigation/main-navigation.imports.ts","../../../projects/ndw/src/components/main-navigation/main-navigation.component.ts","../../../projects/ndw/src/components/main-navigation/main-navigation.component.html","../../../projects/ndw/src/components/modal/modal-content/modal-content.component.ts","../../../projects/ndw/src/components/modal/modal-content/modal-content.component.html","../../../projects/ndw/src/components/modal/modal-footer/modal-footer.component.ts","../../../projects/ndw/src/components/modal/modal-footer/modal-footer.component.html","../../../projects/ndw/src/components/modal/modal-header/modal-header.component.ts","../../../projects/ndw/src/components/modal/modal-header/modal-header.component.html","../../../projects/ndw/src/components/modal/modal.service.ts","../../../projects/ndw/src/components/modal/modal-trigger.directive.ts","../../../projects/ndw/src/components/modal/modal.component.ts","../../../projects/ndw/src/components/modal/modal.component.html","../../../projects/ndw/src/components/modal/index.ts","../../../projects/ndw/src/components/multi-select/multi-select.component.ts","../../../projects/ndw/src/components/multi-select/multi-select.component.html","../../../projects/ndw/src/components/pill/pill.component.ts","../../../projects/ndw/src/components/pill/pill.component.html","../../../projects/ndw/src/components/router-breadcrumbs/router-breadcrumbs.component.ts","../../../projects/ndw/src/components/router-breadcrumbs/router-breadcrumbs.component.html","../../../projects/ndw/src/components/tab/tab.component.ts","../../../projects/ndw/src/components/tab/tab.component.html","../../../projects/ndw/src/components/tab-group/tab-group.component.ts","../../../projects/ndw/src/components/tab-group/tab-group.component.html","../../../projects/ndw/src/components/toast/toast.component.ts","../../../projects/ndw/src/components/toast/toast.component.html","../../../projects/ndw/src/components/toast/toast.service.ts","../../../projects/ndw/src/public-api.ts","../../../projects/ndw/src/ndwnu-design-system.ts"],"sourcesContent":["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 { Component, input } from '@angular/core';\n\n@Component({\n selector: 'ndw-badge',\n standalone: true,\n imports: [],\n templateUrl: './badge.component.html',\n styleUrl: './badge.component.scss',\n})\nexport class BadgeComponent {\n /**\n * The value of the badge\n */\n public value = input<number>();\n\n /**\n * The aria label, used by screen readers to give context.\n */\n public ariaLabel = input<string>();\n}\n","@if (value(); as value) {\n @if (value === 0 || value < -9 || value > 99) {\n <span class=\"dot\"></span>\n } @else {\n {{ value }}\n }\n} @else {\n {{ value() }}\n}\n\n@if (ariaLabel()) {\n <span class=\"sr-only\"> {{ ariaLabel() }}</span>\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n inject,\n input,\n OnInit,\n Renderer2,\n} from '@angular/core';\n\nexport type IconSize = 'sm' | 'md';\n\n@Component({\n selector: 'ndw-icon',\n standalone: true,\n imports: [],\n templateUrl: './icon.component.html',\n styleUrl: './icon.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'material-symbols-rounded',\n 'aria-hidden': 'true',\n },\n})\nexport class IconComponent implements OnInit {\n public size = input<IconSize>('md');\n\n private readonly elementRef = inject(ElementRef);\n private readonly renderer = inject(Renderer2);\n\n @HostBinding('class')\n public get hostClass(): string {\n return `icon--${this.size()}`;\n }\n\n public ngOnInit(): void {\n const { nativeElement } = this.elementRef;\n const height = getComputedStyle(nativeElement).fontSize;\n const paddingInline = getComputedStyle(nativeElement).paddingInline;\n this.renderer.setStyle(nativeElement, 'width', height + paddingInline);\n }\n}\n","<ng-content />\n","import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { IconComponent, IconSize } from '../icon.component';\n\nexport type ButtonType = 'button' | 'submit' | 'reset';\nexport type IconVariant = 'primary' | 'link' | 'grey' | 'white';\n\n@Component({\n selector: 'ndw-action-icon',\n standalone: true,\n imports: [IconComponent],\n templateUrl: './action-icon.component.html',\n styleUrl: './action-icon.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ActionIconComponent {\n // ! This component is deprecated, use `button` with `extra-small` attribute instead.\n\n /**\n * Used to give meaning to the button, used by screen readers.\n */\n public ariaLabel = input.required<string>();\n\n /**\n * Color scheme of the ActionIcon, available `primary`, `link`,\n * `grey` and `white` (defaults to primary).\n */\n public variant = input<IconVariant>('primary');\n\n /**\n * Specify button type, defaults to `button`\n */\n public buttonType = input<ButtonType>('button');\n\n /**\n * Disables the button, defaults to `false`.\n */\n public disabled = input<boolean>(false);\n\n /**\n * Sets the size of the button, defaults to `md`.\n */\n public size = input<IconSize>('md');\n\n /**\n * Event emitted when the button is clicked.\n */\n public readonly onClick = output<void>();\n}\n","<button\n class=\"ndw-action-icon ndw-action-icon--{{ variant() }}\"\n [type]=\"buttonType()\"\n [attr.aria-label]=\"ariaLabel()\"\n [disabled]=\"disabled()\"\n (click)=\"onClick.emit()\"\n>\n <ndw-icon [size]=\"size()\"><ng-content /></ndw-icon>\n</button>\n","import { animate, state, style, transition, trigger } from '@angular/animations';\n\nexport const collapsibleAnimation = [\n trigger('collapsible', [\n state(\n 'open',\n style({\n 'max-height': '100vh',\n opacity: '1',\n }),\n ),\n state(\n 'closed',\n style({\n 'max-height': '0',\n opacity: '0',\n }),\n ),\n transition('open => closed', [\n animate(\n '200ms ease-in-out',\n style({\n 'max-height': '0px',\n opacity: '0',\n }),\n ),\n ]),\n transition('closed => open', [\n animate(\n '200ms ease-in-out',\n style({\n 'max-height': '100vh',\n opacity: '1',\n }),\n ),\n ]),\n ]),\n];\n","import { NgClass } from '@angular/common';\nimport { Component, HostBinding, computed, inject, input, model } from '@angular/core';\n\nimport { AccordionService } from '../accordion';\nimport { BadgeComponent } from '../badge';\nimport { IconComponent } from '../icon';\n\nimport { collapsibleAnimation } from './collapsible.animation';\n\n@Component({\n selector: 'ndw-collapsible',\n standalone: true,\n imports: [BadgeComponent, IconComponent, NgClass],\n templateUrl: './collapsible.component.html',\n styleUrl: './collapsible.component.scss',\n animations: [collapsibleAnimation],\n})\nexport class CollapsibleComponent {\n public index = input.required<number>();\n public title = input.required<string>();\n public value = input<number>();\n\n public expanded = model(false);\n\n private readonly accordionService = inject(AccordionService);\n\n private readonly uuid = crypto.randomUUID();\n public readonly toggleUuid = `toggle-${this.uuid}`;\n public readonly sectionUuid = `section-${this.uuid}`;\n\n @HostBinding('class.expanded')\n public get expandedClass(): boolean {\n return this.expanded();\n }\n\n public animationState = computed(() => (this.expanded() ? 'open' : 'closed'));\n\n public toggle(): void {\n this.expanded.set(!this.expanded());\n\n if (this.expanded()) {\n this.accordionService.setExpandedCollapsible(this.index());\n }\n }\n}\n","<div class=\"collapsible\">\n <h3 class=\"collapsible__header\">\n <button\n class=\"collapsible__button\"\n type=\"button\"\n [id]=\"toggleUuid\"\n [attr.aria-controls]=\"sectionUuid\"\n [attr.aria-expanded]=\"expanded()\"\n (click)=\"toggle()\"\n >\n {{ title() }}\n\n @if (value(); as value) {\n <ndw-badge [value]=\"value\" />\n }\n\n <ndw-icon>keyboard_arrow_down</ndw-icon>\n </button>\n </h3>\n\n <section\n role=\"region\"\n class=\"collapsible__section\"\n [id]=\"sectionUuid\"\n [attr.aria-labelledby]=\"toggleUuid\"\n [@collapsible]=\"animationState()\"\n >\n <ng-content />\n </section>\n</div>\n","import { Component, OnInit, contentChildren, inject, input, DestroyRef } from '@angular/core';\n\nimport { AccordionService } from './accordion.service';\nimport { CollapsibleComponent } from '../collapsible';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'ndw-accordion',\n standalone: true,\n imports: [],\n templateUrl: './accordion.component.html',\n styleUrl: './accordion.component.scss',\n providers: [AccordionService],\n})\nexport class AccordionComponent implements OnInit {\n public collapseOthers = input(false);\n\n public collapsibles = contentChildren(CollapsibleComponent);\n\n private readonly accordionService = inject(AccordionService);\n private readonly destroyRef = inject(DestroyRef);\n\n public ngOnInit(): void {\n this.accordionService.expanded$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((index: number) => {\n if (!this.collapseOthers()) {\n return;\n }\n\n this.collapsibles().forEach((collapsible: CollapsibleComponent) => {\n collapsible.expanded.set(collapsible.index() === index);\n });\n });\n }\n}\n","<ng-content />\n","import { Directive, ElementRef, OnInit, inject } from '@angular/core';\n\n@Directive({\n selector: '[ndwButton]',\n standalone: true,\n})\nexport class ButtonDirective implements OnInit {\n private readonly elementRef = inject(ElementRef);\n\n public get element(): HTMLButtonElement {\n return this.elementRef.nativeElement as HTMLButtonElement;\n }\n\n public ngOnInit(): void {\n // If the text content of a child node is longer than 35 characters, truncate it\n if (!this.element.childNodes.length) {\n return;\n }\n\n this.element.childNodes.forEach((node) => {\n if (node.nodeType === Node.TEXT_NODE) {\n if (!node.textContent) {\n return;\n }\n\n const text = node.textContent.trim();\n if (text.length > 35) {\n node.textContent = text.slice(0, 35) + '...';\n }\n }\n });\n }\n}\n","export enum AlertType {\n Negative = 'critical',\n Info = 'info',\n InfoGrey = 'info-grey',\n Warning = 'warning',\n}\n\nexport type AriaLive = 'polite' | 'assertive' | 'off';\n","import { Component, HostBinding, input, output } from '@angular/core';\n\nimport { ButtonDirective } from '../button';\nimport { IconComponent } from '../icon';\nimport { AlertType, AriaLive } from './alert.model';\n\n@Component({\n selector: 'ndw-alert',\n standalone: true,\n imports: [ButtonDirective, IconComponent],\n templateUrl: './alert.component.html',\n styleUrl: './alert.component.scss',\n})\nexport class AlertComponent {\n /**\n * Whether the alert is actionable, shows a close icon and a title.\n */\n public actionable = input(false);\n\n /**\n * The title of the alert. Only used when actionable is true.\n */\n public title = input<string>();\n\n /**\n * Use info, info-grey, warning or critical to indicate the type of alert.\n */\n public type = input(AlertType.InfoGrey);\n\n /**\n * Use polite, assertive or off to indicate whether the alert is\n * announced automatically by the screen reader.\n */\n public ariaLive = input<AriaLive>('off');\n\n public close = output<void>();\n\n @HostBinding('class')\n public get alertTypeClass(): string {\n return this.type();\n }\n\n @HostBinding('class.actionable')\n public get actionableClass(): boolean {\n return this.actionable();\n }\n\n @HostBinding('role')\n public readonly role = 'alert';\n\n @HostBinding('attr.aria-live')\n public get ariaLiveAttribute(): AriaLive {\n return this.ariaLive();\n }\n\n public onClose(): void {\n this.close.emit();\n }\n}\n","<section>\n <ndw-icon class=\"info-icon\">info</ndw-icon>\n @if (actionable()) {\n @if (title(); as title) {\n <h2>{{ title }}</h2>\n }\n\n <button\n ndwButton\n alternative\n extra-small\n tertiary\n class=\"close-button\"\n ariaLabel=\"Sluit melding\"\n (click)=\"onClose()\"\n >\n <ndw-icon>close</ndw-icon>\n </button>\n }\n</section>\n<ng-content />\n","import { Component, input, TemplateRef, viewChild } from '@angular/core';\n\n@Component({\n selector: 'ndw-breadcrumb',\n standalone: true,\n imports: [],\n templateUrl: './breadcrumb.component.html',\n})\nexport class BreadcrumbComponent {\n public link = input<string | null>(null);\n public content = viewChild.required<TemplateRef<unknown>>('content');\n}\n","<ng-template #content>\n <ng-content />\n</ng-template>\n","import { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { Component, contentChildren } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { BreadcrumbComponent } from '../breadcrumb/breadcrumb.component';\nimport { IconComponent } from '../icon';\n\n@Component({\n selector: 'ndw-breadcrumb-group',\n standalone: true,\n imports: [NgTemplateOutlet, IconComponent, NgClass, RouterLink],\n templateUrl: './breadcrumb-group.component.html',\n styleUrl: './breadcrumb-group.component.scss',\n host: {\n role: 'navigation',\n 'aria-label': 'Breadcrumb',\n },\n})\nexport class BreadcrumbGroupComponent {\n protected breadcrumbs = contentChildren(BreadcrumbComponent);\n}\n","@for (breadcrumb of breadcrumbs(); track breadcrumb.link()) {\n @if ($count > 1 && $index === $count - 2) {\n <ndw-icon class=\"icon-back\" aria-hidden=\"true\">chevron_left</ndw-icon>\n }\n\n <a\n class=\"breadcrumb\"\n [class.current-page]=\"$last\"\n [class.show-on-small-screen]=\"$count === 1 || $index === $count - 2\"\n [attr.aria-current]=\"$last ? 'page' : null\"\n [routerLink]=\"$last ? null : breadcrumb.link()\"\n >\n <ng-template [ngTemplateOutlet]=\"breadcrumb.content()\"></ng-template>\n </a>\n\n @if (!$last) {\n <ndw-icon class=\"icon-forward\" aria-hidden=\"true\">chevron_right</ndw-icon>\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ndw-card-content',\n standalone: true,\n imports: [],\n templateUrl: './card-content.component.html',\n styleUrl: './card-content.component.scss',\n})\nexport class CardContentComponent {}\n","<ng-content />\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ndw-card-footer',\n standalone: true,\n imports: [],\n templateUrl: './card-footer.component.html',\n styleUrl: './card-footer.component.scss',\n})\nexport class CardFooterComponent {}\n","<ng-content />\n","import { Component } from '@angular/core';\n\nimport { IconComponent } from '../../icon';\n\n@Component({\n selector: 'ndw-card-header',\n standalone: true,\n imports: [IconComponent],\n templateUrl: './card-header.component.html',\n styleUrl: './card-header.component.scss',\n})\nexport class CardHeaderComponent {}\n","<ng-content />\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ndw-card',\n standalone: true,\n imports: [],\n templateUrl: './card.component.html',\n styleUrl: './card.component.scss',\n})\nexport class CardComponent {}\n","<ng-content />\n","import { CardContentComponent } from './card-content';\nimport { CardFooterComponent } from './card-footer';\nimport { CardHeaderComponent } from './card-header';\nimport { CardComponent } from './card.component';\n\nexport * from './card-content';\nexport * from './card-footer';\nexport * from './card-header';\nexport * from './card.component';\n\nexport const CARD_COMPONENTS = [\n CardComponent,\n CardHeaderComponent,\n CardContentComponent,\n CardFooterComponent,\n];\n","import { 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 HostListener,\n inject,\n input,\n model,\n OnDestroy,\n Output,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { take } from 'rxjs';\n\n@Directive({\n selector: '[ndwPopoverTrigger]',\n standalone: true,\n exportAs: 'ndwPopoverTrigger',\n})\nexport class PopoverTriggerDirective implements OnDestroy {\n @Output() public popoverToggled = new EventEmitter<boolean>();\n public popoverPosition = input('nextToTriggerButton');\n public popoverContent = input.required<TemplateRef<unknown>>({ alias: 'ndwPopoverTrigger' });\n public toggleOnClick = input(true);\n public isOpen = model(false);\n\n @HostListener('click')\n public toggle(): void {\n if (!this.toggleOnClick()) {\n return;\n }\n this.isOpen.set(!this.isOpen());\n this.togglePopover();\n }\n\n private destroyRef = inject(DestroyRef);\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef<HTMLElement>);\n private overlay = inject(Overlay);\n private viewContainerRef = inject(ViewContainerRef);\n private focusTrapFactory = inject(ConfigurableFocusTrapFactory);\n\n private overlayRef?: OverlayRef;\n\n public ngOnDestroy(): void {\n this.isOpen.set(false);\n this.togglePopover();\n }\n\n public togglePopover(): void {\n if (this.isOpen()) {\n this.open();\n } else {\n this.close();\n }\n this.popoverToggled.emit(this.isOpen());\n }\n\n private open(): void {\n const positions: ConnectedPosition[] = this.getPopoverPosition(this.popoverPosition());\n const templatePortal = new TemplatePortal(this.popoverContent(), this.viewContainerRef);\n\n this.overlayRef = this.overlay.create({\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n positionStrategy: this.overlay\n .position()\n .flexibleConnectedTo(this.elementRef)\n .withPositions(positions),\n });\n this.overlayRef.attach(templatePortal);\n this.overlayRef.hostElement.addEventListener('click', (event: MouseEvent) => {\n const target = event.target as HTMLElement | null;\n if (this.nodeOrParentsHaveAttribute(target, 'ndwPopoverCloseTrigger')) {\n this.isOpen.set(false);\n this.togglePopover();\n }\n });\n\n this.trapFocus(this.overlayRef);\n this.closeOverlayOnEscapeKey(this.overlayRef);\n this.closeOverlayOnBackdropClick(this.overlayRef);\n }\n\n private trapFocus(overlayRef: OverlayRef): void {\n this.focusTrapFactory.create(overlayRef.overlayElement);\n }\n\n private closeOverlayOnEscapeKey(overlayRef: OverlayRef): void {\n overlayRef.overlayElement.onkeydown = (event: KeyboardEvent): void => {\n if (event.key === 'Escape') {\n this.isOpen.set(false);\n this.togglePopover();\n }\n };\n }\n\n private nodeOrParentsHaveAttribute(node: HTMLElement | null, attribute: string): boolean {\n let next = node;\n while (next) {\n if (next.hasAttribute(attribute)) {\n return true;\n }\n next = next.parentElement;\n }\n return false;\n }\n\n private closeOverlayOnBackdropClick(overlayRef: OverlayRef): void {\n overlayRef\n .backdropClick()\n .pipe(takeUntilDestroyed(this.destroyRef), take(1))\n .subscribe(() => {\n this.isOpen.set(false);\n this.togglePopover();\n });\n }\n\n private close(): void {\n this.overlayRef?.dispose();\n }\n\n private getPopoverPosition(popoverPosition: string): ConnectedPosition[] {\n if (popoverPosition === 'overTriggerButton') {\n return [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n panelClass: 'ndw-popover-panel',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom',\n panelClass: 'ndw-popover-panel',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n panelClass: 'ndw-popover-panel',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n panelClass: 'ndw-popover-panel',\n },\n ];\n }\n return [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 4,\n panelClass: 'ndw-popover-panel',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n offsetY: 4,\n panelClass: 'ndw-popover-panel',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -4,\n panelClass: 'ndw-popover-panel',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetY: -4,\n panelClass: 'ndw-popover-panel',\n },\n ];\n }\n}\n","import { Component, input, output } from '@angular/core';\nimport { IconComponent } from '../icon';\n\n@Component({\n selector: 'ndw-removable-pill',\n standalone: true,\n templateUrl: './removable-pill.component.html',\n imports: [IconComponent],\n styleUrl: './removable-pill.component.scss',\n})\nexport class RemovablePillComponent {\n /**\n * Disables the pill\n */\n public disabled = input(false);\n\n /**\n * Aria label for the remove button\n */\n public removeAriaLabel = input('Verwijder');\n\n public onClick = output<Event>();\n}\n","<div class=\"ndw-removable-pill\" [class.ndw-removable-pill--disabled]=\"disabled()\">\n <ng-content />\n\n <button\n type=\"button\"\n class=\"ndw-removable-pill__button\"\n [attr.aria-label]=\"removeAriaLabel()\"\n [disabled]=\"disabled()\"\n (click)=\"onClick.emit($event)\"\n >\n <ndw-icon>close</ndw-icon>\n </button>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n computed,\n input,\n output,\n viewChild,\n} from '@angular/core';\nimport { ButtonDirective } from '../button';\nimport { IconComponent } from '../icon';\nimport { PopoverTriggerDirective } from '../popover';\nimport { CommonModule } from '@angular/common';\nimport { RemovablePillComponent } from '../removable-pill';\n\n@Component({\n selector: 'ndw-dropdown',\n templateUrl: 'dropdown.component.html',\n styleUrls: ['dropdown.component.scss'],\n standalone: true,\n imports: [\n ButtonDirective,\n PopoverTriggerDirective,\n IconComponent,\n CommonModule,\n RemovablePillComponent,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DropdownComponent {\n public readonly disabled = input(false);\n public readonly chevron = input();\n public readonly buttonText = input.required<string>();\n public readonly prefixIcon = input('');\n public readonly selectAmount = input(0);\n\n public readonly removablePillClicked = 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 onRemovablePillClicked($event: Event): void {\n $event.stopPropagation();\n this.removablePillClicked.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 onKeyDownRemovablePill(event: KeyboardEvent): void {\n if (event.key !== 'Enter' || this.disabled()) {\n return;\n }\n\n event.stopPropagation();\n event.preventDefault();\n\n this.removablePillClicked.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-removable-pill\n [attr.disabled]=\"disabled() ? true : null\"\n (keydown)=\"onKeyDownRemovablePill($event)\"\n (onClick)=\"onRemovablePillClicked($event)\"\n >\n {{ selectAmount() }}\n </ndw-removable-pill>\n }\n\n @if (chevron()) {\n <ndw-icon class=\"button-icon\">{{ buttonIcon() }}</ndw-icon>\n }\n</button>\n\n<ng-template #dropdownContent>\n <div role=\"dialog\" (keydown.escape)=\"closeDropdown()\">\n <ng-content />\n </div>\n</ng-template>\n","import { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, input, model } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { IconComponent } from '../../icon';\n\n@Component({\n selector: 'ndw-checkbox',\n standalone: true,\n imports: [IconComponent, NgClass],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: CheckboxComponent,\n multi: true,\n },\n ],\n templateUrl: './checkbox.component.html',\n styleUrls: ['../checkable-input.scss', './checkbox.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CheckboxComponent implements ControlValueAccessor {\n public checked = model(false);\n public switch = input(false);\n public disabled = input(false);\n public error = input(false);\n public success = input(false);\n public indeterminate = input(false);\n public required = input(false);\n\n public uuid = crypto.randomUUID();\n\n @HostBinding('class.checked')\n public get checkedClass(): boolean {\n return this.checked();\n }\n\n @HostBinding('class.disabled')\n public get disabledClass(): boolean {\n return this.disabled();\n }\n\n @HostBinding('class.indeterminate')\n public get indeterminateClass(): boolean {\n return this.indeterminate();\n }\n\n public onClick(): void {\n if (this.disabled()) {\n return;\n }\n\n this.checked.set(!this.checked());\n }\n\n public onKeyDown(event: KeyboardEvent): void {\n if (event.key !== 'Enter' || this.disabled()) {\n return;\n }\n\n this.checked.set(!this.checked());\n event.preventDefault();\n }\n\n public writeValue(value: boolean): void {\n this.checked.set(value);\n }\n\n public registerOnChange(fn: (value: boolean) => void): void {\n this.checked.subscribe(fn);\n }\n\n public registerOnTouched(): void {\n // noop\n }\n}\n","<input\n type=\"checkbox\"\n [id]=\"'checkbox-' + uuid\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [required]=\"required()\"\n aria-hidden=\"true\"\n/>\n<div\n [ngClass]=\"{ error: error(), success: success(), checkbox: !switch(), switch: switch() }\"\n role=\"checkbox\"\n [attr.aria-checked]=\"indeterminate() ? 'mixed' : checked()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-labelledby]=\"'checkbox-label-' + uuid\"\n (click)=\"onClick()\"\n (keydown)=\"onKeyDown($event)\"\n [tabindex]=\"disabled() ? -1 : 0\"\n>\n @if (!switch()) {\n @if (checked()) {\n <ndw-icon>check</ndw-icon>\n } @else if (indeterminate()) {\n <ndw-icon>remove</ndw-icon>\n }\n } @else {\n <span class=\"switch-icon\">\n @if (checked()) {\n <ndw-icon>check</ndw-icon>\n } @else {\n <ndw-icon>close</ndw-icon>\n }\n </span>\n }\n</div>\n<label\n id=\"checkbox-label-{{ uuid }}\"\n tabindex=\"-1\"\n [for]=\"'checkbox-' + uuid\"\n [ngClass]=\"{ 'switch-text': switch() }\"\n (click)=\"onClick()\"\n (keydown)=\"onKeyDown($event)\"\n>\n <ng-content />\n</label>\n","import { Component, contentChildren } from '@angular/core';\nimport { CheckboxComponent } from '../checkbox';\n\n@Component({\n selector: 'ndw-checkbox-group',\n standalone: true,\n imports: [],\n templateUrl: './checkbox-group.component.html',\n styleUrl: './checkbox-group.component.scss',\n})\nexport class CheckboxGroupComponent {\n public checkboxes = contentChildren(CheckboxComponent);\n}\n","<ng-content />\n","import { Component } from '@angular/core';\n\nimport { IconComponent } from '../../icon';\n\n@Component({\n selector: 'ndw-error',\n standalone: true,\n imports: [IconComponent],\n templateUrl: './error.component.html',\n styleUrl: './error.component.scss',\n})\nexport class ErrorComponent {}\n","<ndw-icon>warning</ndw-icon>\n<ng-content />\n","import {\n Component,\n HostBinding,\n HostListener,\n viewChild,\n input,\n model,\n ElementRef,\n computed,\n} from '@angular/core';\nimport { FileUploadText } from './file-upload-text.interface';\nimport { IconComponent } from '../../icon';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'ndw-file-upload',\n standalone: true,\n imports: [IconComponent],\n templateUrl: './file-upload.component.html',\n styleUrl: './file-upload.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: FileUploadComponent,\n multi: true,\n },\n ],\n})\nexport class FileUploadComponent implements ControlValueAccessor {\n public readonly fileInputElement = viewChild.required<ElementRef<HTMLInputElement>>('fileInput');\n public readonly allowedFileTypeRegex = input<RegExp>();\n public readonly fileUploadText = input<FileUploadText>({ dragText: '', dragOverText: '' });\n public readonly uploadDate = input('');\n public readonly maxFileSizeInBytes = input(1000000);\n public readonly disabled = input(false);\n public readonly readonly = input(false);\n public readonly draggingOver = model(false);\n public readonly selectedFile = model<File | null>();\n public readonly error = model(false);\n public readonly success = model(false);\n public readonly incorrectFileType = model(false);\n public readonly incorrectFileSize = model(false);\n private readonly canEdit = computed(\n () => !this.selectedFile() && !this.disabled() && !this.readonly(),\n );\n\n @HostBinding('attr.tabindex')\n public get tabindexAttr(): number {\n return !this.canEdit() ? -1 : 0;\n }\n\n @HostBinding('class.error')\n public get hasError(): boolean {\n return this.error();\n }\n\n @HostBinding('class.success')\n public get hasSuccess(): boolean {\n return this.success();\n }\n\n @HostBinding('class.disabled')\n public get isDisabled(): boolean {\n return this.disabled();\n }\n\n @HostBinding('class.readonly')\n public get isReadonly(): boolean {\n return this.readonly();\n }\n\n @HostBinding('class.dragging')\n public get isDragging(): boolean {\n return this.draggingOver();\n }\n\n @HostBinding('class.file-selected')\n public get hasSelectedFile(): boolean {\n return this.selectedFile() ? true : false;\n }\n\n @HostListener('keydown', ['$event'])\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 @HostListener('click')\n public onClick(): void {\n if (this.canEdit()) {\n this.fileInputElement().nativeElement.click();\n }\n }\n\n @HostListener('dragleave', ['$event'])\n public onDragLeave(event: DragEvent): void {\n event?.preventDefault();\n this.draggingOver.set(false);\n }\n\n @HostListener('dragover', ['$event'])\n public onDragOver(event: DragEvent): void {\n event?.preventDefault();\n if (this.canEdit()) {\n this.draggingOver.set(true);\n }\n }\n\n @HostListener('dragenter', ['$event'])\n public onDragEnter(event: DragEvent): void {\n event?.preventDefault();\n if (this.canEdit()) {\n this.draggingOver.set(true);\n }\n }\n\n @HostListener('drop', ['$event'])\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 private selectFile(file: File): void {\n if (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\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 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","@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 { Component, input } from '@angular/core';\n\n@Component({\n selector: 'ndw-tooltip',\n standalone: true,\n imports: [],\n templateUrl: './tooltip.component.html',\n styleUrl: './tooltip.component.scss',\n host: {\n role: 'tooltip',\n },\n})\nexport class TooltipComponent {\n public text = input.required<string>();\n}\n","{{ text() }}\n","import { FlexibleConnectedPositionStrategy, Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n ComponentRef,\n Directive,\n ElementRef,\n HostListener,\n inject,\n input,\n OnChanges,\n OnDestroy,\n OnInit,\n} from '@angular/core';\n\nimport { TooltipComponent } from './tooltip.component';\nimport { AriaDescriber } from '@angular/cdk/a11y';\n\n@Directive({\n selector: '[ndwTooltip]',\n standalone: true,\n host: {\n tabindex: '0',\n 'aria-hidden': 'false',\n '(focus)': 'show()',\n '(blur)': 'hide()',\n '(keydown.escape)': 'hide()',\n },\n})\nexport class TooltipDirective implements OnChanges, OnDestroy, OnInit {\n public text = input.required<string>({ alias: 'ndwTooltip' });\n\n private readonly elementRef = inject(ElementRef);\n private readonly overlay = inject(Overlay);\n private readonly ariaDescriber = inject(AriaDescriber);\n\n private overlayRef: OverlayRef | null = null;\n\n public ngOnInit(): void {\n const positionStrategy = this.getFlexibleConnectedPositionStrategy();\n this.overlayRef = this.overlay.create({ positionStrategy });\n this.updateAriaDescription();\n }\n\n public ngOnChanges(): void {\n const positionStrategy = this.getFlexibleConnectedPositionStrategy();\n this.overlayRef?.updatePositionStrategy(positionStrategy);\n }\n\n public ngOnDestroy(): void {\n this.hide();\n this.overlayRef?.dispose();\n }\n\n @HostListener('mouseenter')\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 @HostListener('mouseleave')\n protected hide(): void {\n this.overlayRef?.detach();\n }\n\n @HostListener('document:keydown.escape')\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","export enum FormFieldElement {\n Dropdown = 'ndw-dropdown',\n Input = 'input',\n Select = 'select',\n Textarea = 'textarea',\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ndw-info',\n standalone: true,\n imports: [],\n templateUrl: './info.component.html',\n styleUrl: './info.component.scss',\n})\nexport class InfoComponent {}\n","<ng-content />\n","import { DestroyRef, Directive, ElementRef, inject, OnInit } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { AbstractControl, NgControl, Validators } from '@angular/forms';\nimport { fromEvent } from 'rxjs';\n\n@Directive({\n selector: 'input[ndwInput], select[ndwInput], textarea[ndwInput]',\n standalone: true,\n})\nexport class InputDirective implements OnInit {\n public set disabled(disabled: boolean) {\n this.element.disabled = disabled;\n }\n\n public set error(error: boolean) {\n this.element.toggleAttribute('error', error);\n }\n\n public set success(success: boolean) {\n this.element.toggleAttribute('success', success);\n }\n\n public set id(id: string) {\n this.element.id = id;\n }\n\n public set ariaDescribedBy(id: string) {\n this.element.setAttribute('aria-describedby', id);\n }\n\n private readonly elementRef = inject(ElementRef);\n private readonly destroyRef = inject(DestroyRef);\n private readonly ngControl = inject(NgControl, { optional: true });\n\n public get element(): HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement {\n return this.elementRef.nativeElement as\n | HTMLInputElement\n | HTMLSelectElement\n | HTMLTextAreaElement;\n }\n\n public get control(): AbstractControl | null {\n return this.ngControl ? this.ngControl.control : null;\n }\n\n public ngOnInit(): void {\n this.updateRequiredAttribute();\n\n this.control?.statusChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.updateRequiredAttribute());\n\n // Add ndw-changed attribute when the input is changed and has a value\n fromEvent(this.element, 'input')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.setChangedAttribute();\n this.setSelectPlaceholderAttribute();\n });\n\n this.setSelectPlaceholderAttribute();\n }\n\n private setChangedAttribute(): void {\n this.element.toggleAttribute('ndw-changed', !!this.element.value);\n }\n\n private setSelectPlaceholderAttribute(): void {\n if (this.element instanceof HTMLSelectElement) {\n const isPlaceholderSelected =\n this.element.selectedIndex === 0 &&\n this.element.options[this.element.selectedIndex].disabled;\n this.element.toggleAttribute('ndw-placeholder', isPlaceholderSelected);\n }\n }\n\n private updateRequiredAttribute(): void {\n if (this.control) {\n // Mark element as required when the control has a 'required' validator.\n // This will show an asterisk (*)\n this.element.required = this.control.hasValidator(Validators.required);\n }\n }\n}\n","export enum InputType {\n Date = 'date',\n Email = 'email',\n Number = 'number',\n Password = 'password',\n Search = 'search',\n Tel = 'tel',\n Text = 'text',\n Time = 'time',\n Url = 'url',\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\n@Component({\n selector: 'ndw-option',\n standalone: true,\n imports: [],\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OptionComponent {\n public value = input.required();\n public label = input.required<string>();\n public description = input<string>();\n public required = input(false);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChildren,\n inject,\n input,\n model,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl, Validators } from '@angular/forms';\n\nimport { ButtonDirective } from '../../button';\nimport { OptionGroupMode } from './option-group.model';\nimport { OptionComponent } from './option.component';\n\n@Component({\n selector: 'ndw-option-group',\n standalone: true,\n imports: [ButtonDirective],\n templateUrl: './option-group.component.html',\n styleUrls: ['./option-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.required]': 'isRequiredOrHasRequiredValidator',\n '[class.grid-columns]': 'fluidColumns() !== null',\n '[style.gridTemplateColumns]': 'fluidColumnStyle()',\n },\n})\nexport class OptionGroupComponent implements ControlValueAccessor {\n public readonly fluid = input(false);\n public readonly fluidColumns = input<number | null>(null);\n public readonly disabled = model(false);\n public readonly mode = input<OptionGroupMode>('multiple');\n public readonly required = input(false);\n public readonly children = contentChildren(OptionComponent);\n protected readonly checkedValues = model<unknown[]>([]);\n private readonly ngControl = inject(NgControl, { optional: true });\n protected readonly fluidColumnStyle = computed(() =>\n this.fluidColumns() ? `repeat(${this.fluidColumns()}, 1fr)` : null,\n );\n protected readonly uuid = crypto.randomUUID();\n\n public constructor() {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public get isRequiredOrHasRequiredValidator(): boolean | null {\n return this.required() || this.ngControl?.control?.hasValidator(Validators.required)\n ? true\n : null;\n }\n\n private onChange: (value: unknown[]) => void = () => {};\n\n protected toggleValue(value: unknown): void {\n if (this.mode() === 'single') {\n this.checkedValues.set([value]);\n this.onChange(this.checkedValues());\n } else {\n const state = [...this.checkedValues()];\n const index = state.indexOf(value);\n index >= 0 ? state.splice(index, 1) : state.push(value);\n this.checkedValues.set(state);\n this.onChange(this.checkedValues());\n }\n }\n\n public writeValue(value: unknown[]): void {\n this.checkedValues.set(value ?? []);\n }\n\n public registerOnChange(fn: (value: unknown[]) => void): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(): void {\n // noop\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n}\n","@for (child of children(); track child.value()) {\n <label\n ndwButton\n [class.fluid]=\"fluid() && fluidColumns() === null\"\n [class.gridCell]=\"fluidColumns() !== null\"\n [attr.disabled]=\"disabled() ? 'true' : null\"\n [attr.outline]=\"checkedValues().includes(child.value()) ? null : 'true'\"\n [attr.aria-label]=\"child.description() ?? child.label()\"\n >\n <input\n [type]=\"mode() === 'multiple' ? 'checkbox' : 'radio'\"\n [name]=\"mode() === 'multiple' ? 'option-group-radio-' + uuid : null\"\n [value]=\"child.value()\"\n [disabled]=\"disabled()\"\n [checked]=\"checkedValues().includes(child.value())\"\n (change)=\"toggleValue(child.value())\"\n />\n {{ child.label() }}\n </label>\n}\n","export function createYearRange(minDate: Date, maxDate: Date): number[] {\n const minYear = minDate.getFullYear();\n const maxYear = maxDate.getFullYear();\n const yearCount = maxYear - minYear + 1;\n return Array.from({ length: yearCount }, (_, index) => minYear + index);\n}\n\nexport function createMonthOptions(monthLabels: string[]): { label: string; value: number }[] {\n return monthLabels.map((month, index) => ({\n label: month,\n value: index + 1,\n }));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n inject,\n input,\n model,\n OnInit,\n viewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor, FormsModule, NgControl } from '@angular/forms';\nimport { ButtonDirective } from '../../button';\nimport { IconComponent } from '../../icon/icon.component';\nimport { PopoverTriggerDirective } from '../../popover';\nimport { InputDirective } from '../input';\nimport { OptionGroupComponent } from '../option-group/option-group.component';\nimport { OptionComponent } from '../option-group/option.component';\nimport { createMonthOptions, createYearRange } from './month-input-utils';\n\nconst defaultMonthLabels = [\n 'Jan',\n 'Feb',\n 'Mrt',\n 'Apr',\n 'Mei',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Okt',\n 'Nov',\n 'Dec',\n];\n\n@Component({\n selector: 'ndw-month-input',\n standalone: true,\n imports: [\n FormsModule,\n IconComponent,\n PopoverTriggerDirective,\n OptionGroupComponent,\n OptionComponent,\n InputDirective,\n ButtonDirective,\n ],\n templateUrl: './month-input.component.html',\n styleUrls: ['./month-input.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MonthInputComponent implements ControlValueAccessor, OnInit {\n public readonly disabled = model(false);\n public readonly required = input(false);\n public readonly showMonthPickerLabel = input<string>('Selecteer maand');\n public readonly placeholder = input<string>('JJJJ-MM');\n public readonly yearPlaceholder = input<string>('Jaar');\n public readonly minDate = input<Date>(new Date(2020, 0, 1));\n public readonly maxDate = input<Date>(new Date(2026, 11, 31));\n public readonly monthLabels = input<string[]>(defaultMonthLabels);\n public readonly input = viewChild(InputDirective);\n public readonly inputElement = computed(() => this.input()?.element);\n\n protected showMonthPicker = false;\n protected readonly selectedYear = model<number>(new Date().getFullYear());\n protected readonly selectedMonth = model<number | null>(null);\n protected readonly selectedDate = computed<Date | null>(() => {\n const year = this.selectedYear();\n const month = this.selectedMonth();\n const date = year && month ? new Date(year, month - 1, 1) : null;\n return date && date >= this.minDate() && date <= this.maxDate() ? date : null;\n });\n protected readonly inputValue = computed(() => {\n const year = this.selectedYear();\n const month = this.selectedMonth();\n return year && month ? `${year}-${month.toString().padStart(2, '0')}` : null;\n });\n protected readonly ngControl = inject(NgControl, { optional: true });\n\n protected readonly years = computed(() => createYearRange(this.minDate(), this.maxDate()));\n protected readonly months = computed(() => createMonthOptions(this.monthLabels()));\n\n private onChange: (value: Date | null) => void = () => {};\n private readonly destroyRef = inject(DestroyRef);\n\n public constructor() {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n public ngOnInit(): void {\n if (this.ngControl) {\n this.ngControl.statusChanges?.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n const input = this.input();\n if (input && this.ngControl) {\n input.error = this.ngControl.invalid === true;\n }\n });\n }\n }\n\n public writeValue(value: Date | null): void {\n if (value) {\n this.selectedYear.set(value.getFullYear());\n this.selectedMonth.set(value.getMonth() + 1);\n } else {\n this.selectedYear.set(new Date().getFullYear());\n this.selectedMonth.set(null);\n }\n }\n\n public registerOnChange(fn: (value: Date | null) => void): void {\n this.onChange = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n\n public registerOnTouched(): void {\n // noop\n }\n\n protected onInputChanged(value: string): void {\n const [year, month] = value.split('-');\n this.selectedYear.set(parseInt(year, 10));\n this.selectedMonth.set(parseInt(month, 10));\n this.onChange(this.selectedDate());\n }\n\n protected onYearSelected(year: string): void {\n this.selectedYear.set(parseInt(year, 10));\n this.onChange(this.selectedDate());\n }\n\n protected onMonthSelected(month: number): void {\n this.selectedMonth.set(month);\n this.onChange(this.selectedDate());\n }\n\n protected onKeyDown(event: KeyboardEvent): void {\n if (event.key === 'ArrowDown') {\n this.adjustMonth(-1);\n event.preventDefault();\n return;\n } else if (event.key === 'ArrowUp') {\n this.adjustMonth(+1);\n event.preventDefault();\n return;\n }\n\n const currentValue = (event.target as HTMLInputElement)?.value;\n const validKeys = [];\n\n if (currentValue.length === 4) {\n validKeys.push('-');\n } else {\n validKeys.push('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');\n }\n\n const isValidKey = validKeys.includes(event.key);\n const isPrintableKey = event.key.length === 1; // Allow pressing special keys like F12, etc.\n if (!isValidKey && isPrintableKey) {\n event.preventDefault();\n }\n }\n\n private adjustMonth(monthIncrement: number): void {\n const now = new Date();\n const date = this.selectedDate() ?? new Date(now.getFullYear(), now.getMonth(), 1);\n\n const adjustedDate = new Date(date); // Prevent mutating this.selectedDate()\n adjustedDate.setMonth(adjustedDate.getMonth() + monthIncrement);\n\n if (adjustedDate >= this.minDate() && adjustedDate <= this.maxDate()) {\n this.writeValue(adjustedDate);\n this.onChange(this.selectedDate());\n }\n }\n}\n","<input\n ndwInput\n #input\n type=\"text\"\n minlength=\"6\"\n maxlength=\"7\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [required]=\"required()\"\n [value]=\"inputValue()\"\n (change)=\"onInputChanged(input.value)\"\n (keydown)=\"onKeyDown($event)\"\n/>\n\n<button\n ndwButton\n extra-small\n tertiary\n class=\"input-suffix-button\"\n [disabled]=\"disabled()\"\n [ariaLabel]=\"showMonthPickerLabel()\"\n (click)=\"showMonthPicker = !showMonthPicker\"\n [ndwPopoverTrigger]=\"monthPicker\"\n [popoverPosition]=\"'nextToTriggerButton'\"\n>\n <ndw-icon>calendar_month</ndw-icon>\n</button>\n\n<ng-template #monthPicker>\n <input\n ndwInput\n #yearSelect\n type=\"number\"\n [placeholder]=\"yearPlaceholder()\"\n [min]=\"minDate().getFullYear()\"\n [max]=\"maxDate().getFullYear()\"\n [ngModel]=\"selectedYear()\"\n (ngModelChange)=\"onYearSelected(yearSelect.value)\"\n />\n\n <ndw-option-group\n [ngModel]=\"selectedMonth() ? [selectedMonth()] : []\"\n (ngModelChange)=\"onMonthSelected($event?.[0])\"\n [fluid]=\"true\"\n [fluidColumns]=\"4\"\n mode=\"single\"\n >\n @for (month of months(); track month) {\n <ndw-option [label]=\"month.label\" [value]=\"month.value\">\n {{ month }}\n </ndw-option>\n }\n </ndw-option-group>\n</ng-template>\n","import { Component } from '@angular/core';\n\nimport { IconComponent } from '../../icon';\n\n@Component({\n selector: 'ndw-success',\n standalone: true,\n imports: [IconComponent],\n templateUrl: './success.component.html',\n styleUrl: './success.component.scss',\n})\nexport class SuccessComponent {}\n","<ndw-icon>check</ndw-icon>\n<ng-content />\n","import { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { Component, computed, contentChild, effect, input } from '@angular/core';\n\nimport { ButtonDirective } from '../button';\nimport { IconComponent } from '../icon';\nimport { TooltipDirective } from '../tooltip';\n\nimport { ErrorComponent } from './error';\nimport { FormFieldElement } from './form-field.model';\nimport { InfoComponent } from './info';\nimport { InputDirective, InputType } from './input';\nimport { MonthInputComponent } from './month-input';\nimport { SuccessComponent } from './success';\n\nconst inputTypesWithPrefixIcon = [InputType.Search];\nconst inputTypesWithSuffixButton = [InputType.Date, InputType.Time];\n\n@Component({\n selector: 'ndw-form-field',\n standalone: true,\n imports: [\n ButtonDirective,\n ErrorComponent,\n SuccessComponent,\n IconComponent,\n InfoComponent,\n NgClass,\n NgTemplateOutlet,\n TooltipDirective,\n ],\n templateUrl: './form-field.component.html',\n styleUrl: './form-field.component.scss',\n})\nexport class FormFieldComponent {\n public readonly monthInput = contentChild(MonthInputComponent);\n public readonly regularInput = contentChild(InputDirective);\n public input = computed(() => this.regularInput() ?? this.monthInput()?.input());\n\n public label = input.required<string>();\n public clearSearchAriaLabel = input<string>();\n public suffixButtonAriaLabel = input<string>();\n public hideLabel = input<boolean>(false);\n\n public disabled = input(false);\n public error = input<string>();\n public success = input<string>();\n public info = input<string>();\n public tooltip = input('');\n\n public inputPrefix = computed(() => this.setInputPrefix());\n public inputSuffix = computed(() => this.setInputSuffix());\n\n public uuid = crypto.randomUUID();\n public descriptionUuid = crypto.randomUUID();\n\n public constructor() {\n effect(() => {\n const input = this.input();\n if (!input) {\n return;\n }\n\n this.addInputTypeBasedClass(input);\n this.setInputDisabledState(input);\n this.setInputErrorState(input);\n this.setInputSuccessState(input);\n this.setInputId(input);\n this.setAriaDescribedBy(input);\n });\n }\n\n public clearInput(): void {\n const input = this.input();\n if (input) {\n input.element.value = '';\n // Trigger 'ndw-changed' attribute update on the input element\n input.element.dispatchEvent(new Event('input'));\n }\n }\n\n protected onSuffixButtonClick(): void {\n const inputElement = this.input()?.element;\n if (!inputElement) {\n return;\n }\n\n inputElement.focus();\n\n if ('showPicker' in inputElement) {\n inputElement.showPicker();\n }\n }\n\n private addInputTypeBasedClass(input: InputDirective): void {\n const element = input.element;\n if (!element) {\n return;\n }\n\n inputTypesWithPrefixIcon.includes(element.type as InputType)\n ? element.classList.add('prefix-icon')\n : element.classList.remove('prefix-icon');\n\n inputTypesWithSuffixButton.includes(element.type as InputType)\n ? element.classList.add('suffix-button')\n : element.classList.remove('suffix-button');\n }\n\n private setInputDisabledState(input: InputDirective): void {\n input.disabled = this.disabled();\n }\n\n private setInputErrorState(input: InputDirective): void {\n input.error = !!this.error()?.length;\n }\n\n private setInputSuccessState(input: InputDirective): void {\n input.success = !!this.success()?.length;\n }\n\n private setInputId(input: InputDirective): void {\n input.id = `input-${this.uuid}`;\n }\n\n private setAriaDescribedBy(input: InputDirective): void {\n input.ariaDescribedBy = this.descriptionUuid;\n }\n\n private setInputPrefix(): string | undefined {\n const input = this.input();\n if (!input) {\n return;\n }\n\n // Set the input icon for search inputs\n return inputTypesWithPrefixIcon.includes(input.element.type as InputType)\n ? 'search'\n : undefined;\n }\n\n private setInputSuffix(): string | undefined {\n const input = this.input();\n if (!input) {\n return;\n }\n\n // Set the input icon for date inputs\n if (inputTypesWithSuffixButton.includes(input.element.type as InputType)) {\n return input.element.type === InputType.Time ? 'schedule' : 'calendar_month';\n }\n\n // Set the input icon for select inputs\n if (input.element.nodeName.toLowerCase() === FormFieldElement.Select) {\n return 'keyboard_arrow_down';\n }\n\n return undefined;\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 @if (inputPrefix(); as icon) {\n <ndw-icon class=\"input-prefix-icon\" [ngClass]=\"{ disabled: disabled() }\">\n {{ icon }}\n </ndw-icon>\n }\n @if (inputSuffix(); as icon) {\n <button\n ndwButton\n extra-small\n tertiary\n class=\"input-suffix-button\"\n [ngClass]=\"{ disabled: disabled() }\"\n [ariaLabel]=\"suffixButtonAriaLabel() ?? ''\"\n (click)=\"onSuffixButtonClick()\"\n >\n <ndw-icon>{{ icon }}</ndw-icon>\n </button>\n }\n\n @if (input()?.element?.type === 'search' && input()?.element?.value !== '') {\n <button\n ndwButton\n alternative\n extra-small\n tertiary\n class=\"input-suffix-button\"\n [ariaLabel]=\"clearSearchAriaLabel() ?? ''\"\n (click)=\"clearInput()\"\n >\n <ndw-icon>close</ndw-icon>\n </button>\n }\n\n <ng-content />\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, HostBinding, input, model } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { IconComponent } from '../../icon';\n\n@Component({\n selector: 'ndw-radio-button',\n standalone: true,\n imports: [IconComponent, NgClass],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: RadioButtonComponent,\n multi: true,\n },\n ],\n templateUrl: './radio-button.component.html',\n styleUrls: ['../checkable-input.scss', './radio-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadioButtonComponent implements ControlValueAccessor {\n public checked = model(false);\n public disabled = model(false);\n public error = input(false);\n public success = input(false);\n public name = model('');\n public required = input(false);\n public value = model();\n\n public uuid = crypto.randomUUID();\n\n @HostBinding('class.checked')\n public get checkedClass(): boolean {\n return this.checked();\n }\n\n @HostBinding('class.disabled')\n public get disabledClass(): boolean {\n return this.disabled();\n }\n\n public onClick(): void {\n if (this.disabled()) {\n return;\n }\n\n this.checked.set(true);\n }\n\n public onKeyDown(event: KeyboardEvent): void {\n if (event.key !== 'Enter' || this.disabled()) {\n return;\n }\n\n this.checked.set(true);\n event.preventDefault();\n }\n\n public writeValue(value: boolean): void {\n this.checked.set(value);\n }\n\n public registerOnChange(fn: (value: boolean) => void): void {\n this.checked.subscribe(fn);\n }\n\n public registerOnTouched(): void {\n // noop\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n}\n","<input\n type=\"radio\"\n [id]=\"'radio-button-' + uuid\"\n [name]=\"name()\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [required]=\"required()\"\n aria-hidden=\"true\"\n/>\n<div\n class=\"radio-button\"\n role=\"radio\"\n [ngClass]=\"{ error: error(), success: success() }\"\n [tabindex]=\"disabled() ? -1 : 0\"\n [attr.aria-checked]=\"checked()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-labelledby]=\"'radio-button-label-' + uuid\"\n (click)=\"onClick()\"\n (keydown)=\"onKeyDown($event)\"\n>\n @if (checked()) {\n <span class=\"check\"></span>\n }\n</div>\n<label\n tabindex=\"-1\"\n id=\"radio-button-label-{{ uuid }}\"\n [for]=\"'radio-button-' + uuid\"\n (click)=\"onClick()\"\n (keydown)=\"onKeyDown($event)\"\n>\n <ng-content />\n</label>\n","import { AfterContentInit, Component, contentChildren, HostBinding } from '@angular/core';\n\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { RadioButtonComponent } from '../radio-button';\n\n@Component({\n selector: 'ndw-radio-group',\n standalone: true,\n imports: [],\n templateUrl: './radio-group.component.html',\n styleUrl: './radio-group.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: RadioGroupComponent,\n multi: true,\n },\n ],\n})\nexport class RadioGroupComponent implements AfterContentInit, ControlValueAccessor {\n public radioButtons = contentChildren(RadioButtonComponent);\n\n private uuid = crypto.randomUUID();\n private onChange: (value: unknown) => void = () => {};\n\n @HostBinding('attr.role')\n public readonly roleAttr = 'radiogroup';\n\n public ngAfterContentInit(): void {\n this.setRadioButtonsName();\n this.handleCheckedChange();\n }\n\n public writeValue(value: unknown): void {\n this.radioButtons().forEach((radio) => {\n radio.checked.set(radio.value() === value);\n });\n }\n\n public registerOnChange(fn: (value: unknown) => void): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(): void {\n // Not implemented\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n this.radioButtons().forEach((radio) => radio.disabled.set(isDisabled));\n }\n\n private setRadioButtonsName(): void {\n this.radioButtons().forEach((radio) => {\n radio.name.set(this.uuid);\n });\n }\n\n private handleCheckedChange(): void {\n this.radioButtons().forEach((radio) => {\n radio.checked.subscribe((checked) => {\n if (!checked) {\n return;\n }\n\n this.radioButtons().forEach((otherRadio) => {\n if (otherRadio !== radio) {\n otherRadio.checked.set(false);\n }\n });\n\n this.onChange(radio.value());\n });\n });\n }\n}\n","<ng-content />\n","import { AfterViewInit, Directive, ElementRef, OnDestroy, inject } from '@angular/core';\n\n/**\n * Directive that automatically grows a textarea element to fit its content.\n *\n * Note that at this moment (2024-09-06) there is an experimental CSS property\n * `field-sizing: content;` that can be used to achieve the same effect. At this\n * moment not all browsers support this property (FF and Safari do not for example).\n *\n * So for now a directive is used to achieve the same effect.\n */\n@Directive({\n selector: 'textarea[ndwAutoGrow]',\n standalone: true,\n})\nexport class AutoGrowDirective implements AfterViewInit, OnDestroy {\n private readonly elementRef = inject(ElementRef);\n\n public get element(): HTMLTextAreaElement {\n return this.elementRef.nativeElement as HTMLTextAreaElement;\n }\n\n public ngAfterViewInit(): void {\n this.element.style.resize = 'none';\n this.element.style.overflow = 'hidden';\n this.element.addEventListener('input', fitContentInTextArea);\n // Use set timeout to make sure the textarea is rendered before\n // we set the initial height. This is needed for Firefox.\n setTimeout(() => fitContentInTextArea({ target: this.element }));\n }\n\n public ngOnDestroy(): void {\n this.element.removeEventListener('input', fitContentInTextArea);\n }\n}\n\nfunction fitContentInTextArea(event: Pick<Event, 'target'>): void {\n const element = event.target as HTMLTextAreaElement;\n element.style.height = 'auto'; // Make the textarea shrink when a lot of text is removed.\n element.style.height = `${element.scrollHeight}px`;\n}\n","export interface SimpleMenuItem {\n id: number;\n label: string;\n callback?: (id: number) => void;\n}\n\nexport interface MenuItem extends SimpleMenuItem {\n children?: SimpleMenuItem[];\n icon?: string;\n notifications?: number;\n}\n\nexport enum NdwBrand {\n NDW = 'NDW',\n NWB = 'NWB',\n}\n","import { Component, input, output } from '@angular/core';\n\nimport { SimpleMenuItem } from '../main-navigation';\n\n@Component({\n selector: 'ndw-main-navigation-menu',\n standalone: true,\n templateUrl: './main-navigation-menu.component.html',\n styleUrl: './main-navigation-menu.component.scss',\n})\nexport class MainNavigationMenuComponent {\n public menuItems = input.required<SimpleMenuItem[]>();\n public isMobile = input(false);\n\n public close = output();\n\n public handleSelected(item: SimpleMenuItem): void {\n item.callback?.(item.id);\n this.close.emit();\n }\n}\n","@for (item of menuItems(); track item.id) {\n <button ndwButton menu [attr.active]=\"isMobile() || undefined\" (click)=\"handleSelected(item)\">\n {{ item.label }}\n </button>\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { RouterLink } from '@angular/router';\n\nimport { BadgeComponent } from '../badge';\nimport { IconComponent } from '../icon';\nimport { MainNavigationMenuComponent } from '../main-navigation-menu';\nimport { TooltipDirective } from '../tooltip';\n\nexport const MAIN_NAVIGATION_IMPORTS = [\n BadgeComponent,\n CdkPortalOutlet,\n IconComponent,\n MainNavigationMenuComponent,\n NgClass,\n NgTemplateOutlet,\n OverlayModule,\n RouterLink,\n TooltipDirective,\n];\n","import { ConnectedPosition, Overlay, OverlayRef, PositionStrategy } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n OnDestroy,\n TemplateRef,\n ViewContainerRef,\n computed,\n inject,\n input,\n model,\n signal,\n viewChild,\n viewChildren,\n} from '@angular/core';\n\nimport { MainNavigationMenuComponent } from '../main-navigation-menu';\n\nimport { MenuItem, NdwBrand, SimpleMenuItem } from './main-navigation.model';\nimport { MAIN_NAVIGATION_IMPORTS } from './main-navigation.imports';\n\n@Component({\n selector: 'ndw-main-navigation',\n standalone: true,\n imports: MAIN_NAVIGATION_IMPORTS,\n templateUrl: './main-navigation.component.html',\n styleUrl: './main-navigation.component.scss',\n})\nexport class MainNavigationComponent implements AfterViewInit, OnDestroy {\n public applicationName = input.required<string>();\n public topMenuItems = input.required<MenuItem[]>();\n public bottomMenuItems = input<MenuItem[]>();\n public brand = input(NdwBrand.NDW);\n public footerTexts = input<string[]>();\n public isCollapsible = input(true);\n public version = input<string>();\n // Mobile inputs\n public closeButtonLabel = input('Sluit');\n public menuButtonLabel = input('Menu');\n\n public isExpanded = model(true);\n public isMobileExpanded = model(false);\n\n public buttons = viewChildren<ElementRef<HTMLButtonElement>>('menuTrigger');\n public childMenuTemplate =\n viewChild.required<TemplateRef<MainNavigationMenuComponent>>('childMenu');\n\n public isMobile = signal(window.innerWidth <= 1024);\n public brandImagePath = computed(() => {\n const brand = this.brand().toLowerCase();\n const variant = !this.isExpanded() && !this.isMobile() ? '-short' : '';\n return `assets/images/${brand}-logo${variant}.svg`;\n });\n\n protected mobilePortal?: TemplatePortal<MainNavigationMenuComponent>;\n private activeId?: number;\n\n @HostBinding('attr.brand')\n protected get brandAttribute(): string {\n return this.brand().toLowerCase();\n }\n\n @HostBinding('class.expanded')\n protected get expandedClass(): boolean {\n return this.isExpanded();\n }\n\n @HostBinding('class.mobile')\n protected get mobileClass(): boolean {\n return this.isMobile();\n }\n\n // Only close the menu when the cursor is not over the button or the child menu\n @HostListener('document:mousemove', ['$event'])\n public onMouseMove(event: MouseEvent): void {\n const isCursorOverButton = this.activeButton?.nativeElement.contains(event.target as Node);\n const isCursorOverChildMenu = this.overlayRef?.overlayElement.contains(event.target as Node);\n if (!this.mobilePortal && !isCursorOverButton && !isCursorOverChildMenu) {\n this.close();\n }\n }\n\n @HostListener('window:resize')\n public onWindowResize(): void {\n this.isMobile.set(window.innerWidth <= 1024);\n }\n\n public activeChildItems: SimpleMenuItem[] = [];\n public overlayPositions: ConnectedPosition[] = [\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n ];\n\n private overlay = inject(Overlay);\n private viewContainerRef = inject(ViewContainerRef);\n\n private activeButton?: ElementRef<HTMLButtonElement>;\n private overlayRef?: OverlayRef;\n\n public ngAfterViewInit(): void {\n this.overlayRef = this.overlay.create({\n positionStrategy: this.setPositionStrategy(),\n });\n }\n\n public ngOnDestroy(): void {\n this.mobilePortal?.detach();\n this.overlayRef?.dispose();\n }\n\n public close(toggleMobileView?: boolean): void {\n this.activeChildItems = [];\n this.isMobile() ? this.mobilePortal?.detach() : this.overlayRef?.detach();\n toggleMobileView && this.toggleMobileView();\n }\n\n public handleClick(item: MenuItem): void {\n item.callback?.(item.id);\n if (!item.children && this.isMobile()) {\n this.toggleMobileView();\n }\n }\n\n public handleLogoClick(): void {\n this.isMobileExpanded.set(false);\n }\n\n public open(item: MenuItem): void {\n this.activeId = item.id;\n if (!this.isMobile()) {\n this.close();\n }\n\n this.activeButton = this.buttons().find(\n (button) => Number(button.nativeElement.id) === item.id,\n );\n\n if (!this.activeButton?.nativeElement || !item.children) {\n return;\n }\n\n this.activeChildItems = item.children;\n const portal = new TemplatePortal(this.childMenuTemplate(), this.viewContainerRef);\n if (this.isMobile()) {\n this.mobilePortal = portal;\n return;\n }\n\n this.mobilePortal = undefined;\n\n // Update the position strategy with the active button as the trigger\n this.overlayRef?.updatePositionStrategy(\n this.setPositionStrategy(this.activeButton.nativeElement),\n );\n this.overlayRef?.attach(portal);\n }\n\n public toggleChildMenu(item: MenuItem, event?: KeyboardEvent): void {\n if (event && event?.key !== 'Enter') {\n return;\n }\n\n this.mobilePortal?.isAttached && this.activeId === item.id ? this.close() : this.open(item);\n }\n\n public toggleMobileView(): void {\n this.isMobileExpanded.set(!this.isMobileExpanded());\n }\n\n public toggleView(): void {\n this.isExpanded.set(!this.isExpanded());\n }\n\n private setPositionStrategy(trigger?: HTMLButtonElement): PositionStrategy {\n if (!trigger) {\n return this.overlay.position().global();\n }\n\n return this.overlay\n .position()\n .flexibleConnectedTo(trigger)\n .withPositions(this.overlayPositions);\n }\n}\n","<header>\n <a routerLink=\"/\" (click)=\"handleLogoClick()\" (keydown)=\"handleLogoClick()\">\n <img [src]=\"brandImagePath()\" [alt]=\"brand() + ' logo'\" />\n @if (isExpanded() || isMobile()) {\n {{ applicationName() }}\n }\n </a>\n <button ndwButton class=\"menu-button\" aria-label=\"menu-button\" (click)=\"toggleMobileView()\">\n @if (!isMobileExpanded()) {\n {{ menuButtonLabel() }}\n <ndw-icon>menu</ndw-icon>\n } @else {\n {{ closeButtonLabel() }}\n <ndw-icon>close</ndw-icon>\n }\n </button>\n</header>\n<div class=\"content\" [ngClass]=\"{ expanded: isMobileExpanded() }\">\n <main>\n <div class=\"menu-items\">\n @for (item of topMenuItems(); track $index) {\n <ng-container *ngTemplateOutlet=\"menuItem; context: { $implicit: item }\" />\n }\n </div>\n </main>\n <footer>\n <div class=\"menu-items\">\n @for (item of bottomMenuItems(); track $index) {\n <ng-container *ngTemplateOutlet=\"menuItem; context: { $implicit: item }\" />\n }\n </div>\n <div class=\"texts\">\n @if (isExpanded() || isMobile()) {\n @for (text of footerTexts(); track $index) {\n <p>{{ text }}</p>\n }\n }\n </div>\n <div class=\"version\">\n <p>{{ version() }}</p>\n @if (isCollapsible()) {\n <button ndwButton menu aria-label=\"expand-button\" (click)=\"toggleView()\">\n <ndw-icon>keyboard_double_arrow_right</ndw-icon>\n </button>\n }\n </div>\n </footer>\n</div>\n\n<!-- Templates -->\n<ng-template #menuItem let-item>\n <button\n ndwButton\n menu\n #menuTrigger\n [attr.active]=\"(isMobile() && activeChildItems === item.children) || undefined\"\n [id]=\"item.id\"\n [ndwTooltip]=\"!isExpanded() && !isMobile() ? item.label : ''\"\n (click)=\"handleClick(item)\"\n (focus)=\"!isMobile() && open(item)\"\n (keydown)=\"isMobile() && toggleChildMenu(item, $event)\"\n (mousedown)=\"isMobile() && toggleChildMenu(item)\"\n (mouseover)=\"!isMobile() && open(item)\"\n >\n @if (item.icon) {\n <ndw-icon>{{ item.icon }}</ndw-icon>\n }\n @if (isExpanded() || isMobile()) {\n {{ item.label }}\n }\n @if (item.notifications) {\n <ndw-badge [ngClass]=\"{ collapsed: !isExpanded() }\" [value]=\"item.notifications\" />\n }\n @if (isExpanded() && item.children) {\n <ndw-icon\n class=\"suffix\"\n [ngClass]=\"{ open: !!mobilePortal && activeChildItems === item.children }\"\n >arrow_right</ndw-icon\n >\n }\n </button>\n @if (activeChildItems === item.children) {\n <ng-template [cdkPortalOutlet]=\"mobilePortal\" />\n }\n</ng-template>\n\n<ng-template #childMenu>\n <ndw-main-navigation-menu\n [isMobile]=\"isMobile()\"\n [menuItems]=\"activeChildItems\"\n (close)=\"close(true)\"\n />\n</ng-template>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ndw-modal-content',\n standalone: true,\n imports: [],\n templateUrl: './modal-content.component.html',\n styleUrl: '../../card/card-content/card-content.component.scss',\n})\nexport class ModalContentComponent {}\n","<ng-content />\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ndw-modal-footer',\n standalone: true,\n imports: [],\n templateUrl: './modal-footer.component.html',\n styleUrl: '../../card/card-footer/card-footer.component.scss',\n})\nexport class ModalFooterComponent {}\n","<ng-content />\n","import { Component, inject } from '@angular/core';\n\nimport { ButtonDirective } from '../../button';\nimport { IconComponent } from '../../icon';\nimport { ModalService } from '../../modal';\n\n@Component({\n selector: 'ndw-modal-header',\n standalone: true,\n imports: [ButtonDirective, IconComponent],\n templateUrl: './modal-header.component.html',\n styleUrls: ['../../card/card-header/card-header.component.scss', './modal-header.component.scss'],\n})\nexport class ModalHeaderComponent {\n private readonly modalService = inject(ModalService);\n\n public detachModal(): void {\n this.modalService.detach();\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 { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { DestroyRef, inject, Injectable, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Subject, take } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ModalService {\n private readonly destroyRef = inject(DestroyRef);\n private readonly overlay = inject(Overlay);\n\n public isOpen$ = new Subject<boolean>();\n\n private isOpen = false;\n private overlayRef?: OverlayRef;\n\n public detach(): void {\n this.overlayRef?.detach();\n this.isOpen = false;\n this.isOpen$.next(this.isOpen);\n }\n\n public dispose(): void {\n this.overlayRef?.dispose();\n }\n\n public open(templateRef: TemplateRef<unknown>, viewContainerRef: ViewContainerRef): void {\n if (this.isOpen) {\n this.detach();\n }\n\n const templatePortal = new TemplatePortal(templateRef, viewContainerRef);\n this.overlayRef = this.overlay.create({\n hasBackdrop: true,\n backdropClass: 'ndw-overlay-backdrop',\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n positionStrategy: this.overlay.position().global().centerHorizontally().centerVertically(),\n });\n\n this.overlayRef.attach(templatePortal);\n this.isOpen = true;\n this.isOpen$.next(this.isOpen);\n\n this.overlayRef\n .backdropClick()\n .pipe(takeUntilDestroyed(this.destroyRef), take(1))\n .subscribe(() => {\n this.detach();\n });\n }\n}\n","import {\n Directive,\n HostListener,\n OnChanges,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewContainerRef,\n inject,\n input,\n model,\n} from '@angular/core';\n\nimport { CardComponent } from '../card';\n\nimport { ModalService } from './modal.service';\n\n@Directive({\n selector: '[ndwModalTrigger]',\n standalone: true,\n})\nexport class ModalTriggerDirective implements OnChanges, OnDestroy, OnInit {\n private modalService = inject(ModalService);\n private viewContainerRef = inject(ViewContainerRef);\n\n public ndwModalTrigger = input.required<TemplateRef<CardComponent>>();\n\n public isOpen = model(false);\n\n @HostListener('click', ['$event'])\n public onClick(): void {\n this.open();\n }\n\n public ngOnChanges(): void {\n if (this.isOpen()) {\n this.open();\n } else {\n this.modalService.detach();\n }\n }\n\n public ngOnInit(): void {\n this.modalService.isOpen$.subscribe((isOpen) => {\n this.isOpen.set(isOpen);\n });\n }\n\n public ngOnDestroy(): void {\n this.modalService.dispose();\n }\n\n private open(): void {\n this.modalService.open(this.ndwModalTrigger(), this.viewContainerRef);\n }\n}\n","import { Component, HostBinding, input } from '@angular/core';\n\nimport { CardComponent } from '../card';\n\nexport type ModalSize = 'sm' | 'md';\n\n@Component({\n selector: 'ndw-modal',\n standalone: true,\n imports: [],\n templateUrl: './modal.component.html',\n styleUrls: ['../card/card.component.scss', './modal.component.scss'],\n})\nexport class ModalComponent extends CardComponent {\n public size = input<ModalSize>('sm');\n\n @HostBinding('class.modal-size-sm')\n public get isSmall(): boolean {\n return this.size() === 'sm';\n }\n\n @HostBinding('class.modal-size-md')\n public get isMedium(): boolean {\n return this.size() === 'md';\n }\n\n @HostBinding('attr.role')\n public readonly roleAttr = 'dialog';\n}\n","<ng-content />\n","import { ModalContentComponent } from './modal-content';\nimport { ModalFooterComponent } from './modal-footer';\nimport { ModalHeaderComponent } from './modal-header';\nimport { ModalTriggerDirective } from './modal-trigger.directive';\nimport { ModalComponent } from './modal.component';\n\nexport * from './modal-content';\nexport * from './modal-footer';\nexport * from './modal-header';\nexport * from './modal-trigger.directive';\nexport * from './modal.component';\nexport * from './modal.service';\n\nexport const MODAL_COMPONENTS = [\n ModalComponent,\n ModalHeaderComponent,\n ModalContentComponent,\n ModalFooterComponent,\n ModalTriggerDirective,\n];\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n model,\n viewChild,\n} from '@angular/core';\nimport { PopoverTriggerDirective } from '../popover';\nimport {\n CheckboxComponent,\n CheckboxGroupComponent,\n FormFieldComponent,\n InputDirective,\n} from '../form-field';\nimport { CheckboxData } from './checkbox-data.interface';\nimport { CommonModule } from '@angular/common';\nimport { DropdownComponent } from '../dropdown';\nimport { IconComponent } from '../icon';\nimport { SelectAllText } from './select-all-text.interface';\n\n@Component({\n selector: 'ndw-multi-select',\n templateUrl: 'multi-select.component.html',\n styleUrls: ['multi-select.component.scss'],\n standalone: true,\n imports: [\n PopoverTriggerDirective,\n FormFieldComponent,\n CheckboxComponent,\n CheckboxGroupComponent,\n DropdownComponent,\n CommonModule,\n IconComponent,\n InputDirective,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MultiSelectComponent {\n public readonly dropdownTrigger = viewChild.required(PopoverTriggerDirective);\n\n public readonly buttonText = input.required<string>();\n public readonly searchLabel = input.required<string>();\n public readonly prefixIcon = input('');\n public readonly searchPlaceholder = input('');\n public readonly noResultText = input('');\n public readonly chevron = input(false);\n public readonly disabled = input(false);\n public readonly selectAllText = input<SelectAllText>({ deselect: '', select: '' });\n\n public readonly lastCheckedElementId = model<CheckboxData['id'] | null>();\n public readonly dataSource = model<CheckboxData[]>([]);\n public readonly searchInputValue = model('');\n\n public readonly selectAmount = computed(\n () => this.dataSource().filter((checkbox: CheckboxData) => checkbox.value).length,\n );\n public readonly noSearchResults = computed(\n () =>\n this.dataSource().filter((checkbox: CheckboxData) =>\n checkbox.label.toLowerCase().includes(this.searchInputValue().toLowerCase()),\n ).length === 0,\n );\n\n public filterSearch(value: string): boolean {\n return value.toLowerCase().includes(this.searchInputValue().toLowerCase());\n }\n\n public searchInputChanged(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.searchInputValue.set(input.value);\n }\n\n public checkboxChanged(id: string | number): void {\n this.dataSource.update((checkboxes: CheckboxData[]) => {\n return checkboxes?.map((checkbox: CheckboxData) =>\n checkbox.id === id ? { ...checkbox, value: !checkbox.value } : checkbox,\n );\n });\n }\n\n public toggleSelectAll(selectAll = true): void {\n this.dataSource.update((checkboxes: CheckboxData[]) => {\n return checkboxes.map((checkbox: CheckboxData) => ({ ...checkbox, value: selectAll }));\n });\n }\n\n public isOpenChanged(isOpen: boolean): void {\n if (isOpen) {\n this.dataSource.set(\n this.dataSource()\n .slice()\n .sort((a, b) => Number(b.value) - Number(a.value)),\n );\n this.searchInputValue.set('');\n this.determineLastCheckedElement();\n }\n }\n\n private determineLastCheckedElement(): void {\n if (this.dataSource().some((checkbox) => !checkbox.value)) {\n const sourceList = [...this.dataSource()];\n const lastChecked = sourceList.reverse().find((checkbox) => checkbox.value);\n this.lastCheckedElementId.set(lastChecked ? lastChecked.id : null);\n } else {\n this.lastCheckedElementId.set(null);\n }\n }\n}\n","<ndw-dropdown\n prefixIcon=\"filter_alt\"\n [selectAmount]=\"selectAmount()\"\n (removablePillClicked)=\"toggleSelectAll(false)\"\n (isOpenChange)=\"isOpenChanged($event)\"\n [buttonText]=\"buttonText()\"\n [disabled]=\"disabled()\"\n [chevron]=\"chevron()\"\n [prefixIcon]=\"prefixIcon()\"\n>\n <ndw-form-field [label]=\"searchLabel()\" [hideLabel]=\"true\">\n <input\n ndwInput\n type=\"search\"\n [value]=\"searchInputValue()\"\n (input)=\"searchInputChanged($event)\"\n [placeholder]=\"searchPlaceholder()\"\n />\n </ndw-form-field>\n @if (noSearchResults()) {\n <div class=\"no-search-results\">\n <ndw-icon>sentiment_dissatisfied</ndw-icon>\n {{ noResultText() }}\n </div>\n } @else {\n <ndw-checkbox-group class=\"multi-select-container\">\n @for (checkbox of dataSource(); track checkbox.id) {\n @if (filterSearch(checkbox.label)) {\n <ndw-checkbox\n [ngClass]=\"{ 'last-checked': lastCheckedElementId() === checkbox.id }\"\n [checked]=\"checkbox.value\"\n (checkedChange)=\"checkboxChanged(checkbox.id)\"\n >\n {{ checkbox.label }}\n </ndw-checkbox>\n }\n }\n </ndw-checkbox-group>\n }\n <div class=\"ndw-dialog-footer\">\n @if (selectAmount() === dataSource().length) {\n <button ndwLink (click)=\"toggleSelectAll(false)\">\n {{ selectAllText().deselect }}\n </button>\n } @else {\n <button ndwLink (click)=\"toggleSelectAll(true)\">\n {{ selectAllText().select }}\n </button>\n }\n <div class=\"ndw-dialog-footer-total\" aria-live=\"polite\">\n Geselecteerd: <strong>{{ selectAmount() }}</strong>\n </div>\n </div>\n</ndw-dropdown>\n","import { Component, ElementRef, HostBinding, input, viewChild } from '@angular/core';\nimport { PillColor } from './pill.model';\n\n@Component({\n selector: 'ndw-pill',\n standalone: true,\n templateUrl: './pill.component.html',\n styleUrl: './pill.component.scss',\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 contentRef = viewChild<ElementRef>('content');\n\n @HostBinding('class')\n public get hostClass(): string[] {\n return ['ndw-paragraph-md', this.color()];\n }\n\n @HostBinding('title')\n protected get title(): string | undefined {\n return this.contentRef()?.nativeElement?.textContent;\n }\n}\n","<div #content>\n <ng-content />\n</div>\n","import { AsyncPipe } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { ActivatedRoute, ActivatedRouteSnapshot, NavigationEnd, Router } from '@angular/router';\nimport { filter, map } from 'rxjs';\nimport { BreadcrumbComponent } from '../breadcrumb';\nimport { BreadcrumbGroupComponent } from '../breadcrumb-group';\n\ntype RouteBreadcrumb = { url: string; title: string };\n\nexport const breadcrumbRouteDataKey = 'breadcrumb';\n\n@Component({\n selector: 'ndw-router-breadcrumbs',\n standalone: true,\n imports: [BreadcrumbGroupComponent, BreadcrumbComponent, AsyncPipe],\n templateUrl: './router-breadcrumbs.component.html',\n})\nexport class RouterBreadcrumbsComponent {\n private readonly route = inject(ActivatedRoute);\n private readonly router = inject(Router);\n\n protected readonly breadcrumbs$ = this.router.events.pipe(\n filter((event) => event instanceof NavigationEnd),\n map(() => this.getBreadcrumbs()),\n );\n\n private getBreadcrumbs(): RouteBreadcrumb[] {\n let route: ActivatedRouteSnapshot | null = this.route.snapshot;\n const breadcrumbs: RouteBreadcrumb[] = [];\n\n while (route) {\n const title = route.data[breadcrumbRouteDataKey];\n const url = route.pathFromRoot\n .flatMap((route) => route.url.filter((segment) => segment.path))\n .join('/');\n\n if (title && url) {\n breadcrumbs.push({ url, title });\n }\n\n route = route.firstChild;\n }\n\n return breadcrumbs;\n }\n}\n","<ndw-breadcrumb-group>\n @for (breadcrumb of breadcrumbs$ | async; track breadcrumb.url) {\n <ndw-breadcrumb [link]=\"breadcrumb.url\">{{ breadcrumb.title }}</ndw-breadcrumb>\n }\n</ndw-breadcrumb-group>\n","import { HostBinding, HostListener, input, model } from '@angular/core';\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'ndw-tab',\n standalone: true,\n imports: [],\n templateUrl: './tab.component.html',\n styleUrl: './tab.component.scss',\n})\nexport class TabComponent {\n public index = input.required<number>();\n\n public active = model(false);\n\n @HostBinding('attr.active')\n protected get activeAttribute(): boolean | null {\n return this.active() || null;\n }\n\n @HostBinding('attr.role')\n protected readonly role = 'tab';\n\n @HostBinding('attr.tabindex')\n protected get tabIndex(): number {\n return this.index() + 1 || 0;\n }\n\n @HostListener('click', ['$event'])\n public onClick(): void {\n this.active.set(true);\n }\n @HostListener('keydown', ['$event'])\n public onTabKeyDown(event: KeyboardEvent): void {\n if (event.key !== 'Enter') {\n return;\n }\n\n event.preventDefault();\n this.active.set(true);\n }\n}\n","<ng-content />\n","import { AfterContentInit, Component, HostBinding, contentChildren, model } from '@angular/core';\nimport { TabComponent } from '../tab/tab.component';\n\n@Component({\n selector: 'ndw-tab-group',\n standalone: true,\n imports: [],\n templateUrl: './tab-group.component.html',\n styleUrl: './tab-group.component.scss',\n})\nexport class TabGroupComponent implements AfterContentInit {\n public tabs = contentChildren(TabComponent);\n\n public activeTab = model(0);\n\n @HostBinding('attr.role')\n protected readonly role = 'tablist';\n\n public ngAfterContentInit(): void {\n this.tabs().forEach(({ active, index }) => {\n active.set(this.activeTab() === index());\n active.subscribe((isActive: boolean) => {\n if (isActive) {\n this.activeTab.set(index());\n }\n active.set(this.activeTab() === index());\n });\n });\n\n this.activeTab.subscribe(() => {\n this.tabs().forEach(({ active, index }) => {\n active.set(this.activeTab() === index());\n });\n });\n }\n}\n","<ng-content />\n","import {\n Component,\n ElementRef,\n OnDestroy,\n OnInit,\n Renderer2,\n inject,\n model,\n output,\n viewChild,\n} from '@angular/core';\nimport { IconComponent } from '../icon';\n\n@Component({\n selector: 'ndw-toast',\n standalone: true,\n styleUrls: ['./toast.component.scss'],\n templateUrl: './toast.component.html',\n imports: [IconComponent],\n})\nexport class ToastComponent implements OnInit, OnDestroy {\n public readonly message = model('');\n public readonly close = output<void>();\n private interval: ReturnType<typeof setInterval> | null = null;\n private readonly renderer = inject(Renderer2);\n private readonly toastContainer = viewChild<ElementRef>('toastContainer');\n\n public ngOnInit(): void {\n this.message.set(this.truncateText(this.message()));\n this.open();\n }\n\n public ngOnDestroy(): void {\n this.clearInterval();\n this.close.emit();\n }\n\n public open(): void {\n const intervalTime = 10;\n const totalTicks = 10000 / intervalTime;\n let currentTick = 0;\n\n this.interval = setInterval(() => {\n currentTick++;\n const percentage = (currentTick / totalTicks) * 100;\n this.updateGradient(percentage);\n\n if (currentTick >= totalTicks) {\n this.startFadeOut();\n }\n }, intervalTime);\n }\n\n private updateGradient(percentage: number): void {\n if (!this.checkForExistingToast()) {\n return;\n }\n\n const toastElement = this.toastContainer()?.nativeElement;\n toastElement.style.background =\n 'linear-gradient(to left, var(--ndw-color-grey-600) ' +\n `${percentage}%, var(--ndw-color-grey-700) ${percentage}%)`;\n }\n\n protected startFadeOut(): void {\n if (!this.checkForExistingToast()) {\n return;\n }\n\n const toastElement = this.toastContainer()?.nativeElement;\n this.renderer.addClass(toastElement, 'fade-out');\n setTimeout(() => {\n this.clearInterval();\n }, 200);\n }\n\n private checkForExistingToast(): boolean {\n if (!this.toastContainer()?.nativeElement) {\n this.clearInterval();\n return false;\n }\n return true;\n }\n\n private clearInterval(): void {\n if (this.interval !== null) {\n clearInterval(this.interval);\n }\n }\n\n private truncateText(text: string): string {\n if (text.length > 75) {\n return text.substring(0, 75) + '...';\n }\n return text;\n }\n}\n","<div #toastContainer>\n <p>\n {{ message() }}\n </p>\n <button ndwButton tertiary alternative extra-small (click)=\"startFadeOut()\">\n <ndw-icon>close</ndw-icon>\n </button>\n</div>\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { inject, Injectable } from '@angular/core';\nimport { ToastComponent } from './toast.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ToastService {\n private readonly overlay = inject(Overlay);\n\n private isOpen = false;\n public overlayRef?: OverlayRef;\n\n public detach(): void {\n this.overlayRef?.detach();\n this.isOpen = false;\n }\n\n public dispose(): void {\n this.overlayRef?.dispose();\n }\n\n public open(message: string): void {\n if (this.isOpen) {\n this.detach();\n }\n\n this.overlayRef = this.overlay.create({\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n positionStrategy: this.overlay.position().global().centerHorizontally().top('1.5rem'),\n });\n\n const toastPortal = new ComponentPortal(ToastComponent);\n const toastComponentRef = this.overlayRef.attach(toastPortal);\n\n toastComponentRef.instance.message.set(message);\n toastComponentRef.instance.close.subscribe(() => {\n this.detach();\n });\n\n this.isOpen = true;\n }\n}\n","/*\n * Public API Surface of ndw\n */\n\nexport * from './components';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.BadgeComponent","i3.IconComponent","i4.MainNavigationMenuComponent","i8.TooltipDirective","i1"],"mappings":"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"}
|