@ndwnu/design-system 12.0.0 → 12.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,18 +1,18 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, ChangeDetectionStrategy, Component, forwardRef, Directive, model, computed, viewChild, inject, ElementRef, output, signal, DestroyRef, EventEmitter, ViewContainerRef, Output, contentChildren, PLATFORM_ID, contentChild, effect, Renderer2, afterNextRender, Injectable, InjectionToken, ChangeDetectorRef, DOCUMENT, linkedSignal, untracked, TemplateRef, viewChildren } from '@angular/core';
2
+ import { ChangeDetectionStrategy, Component, input, forwardRef, Directive, model, computed, viewChild, ElementRef, signal, afterRenderEffect, effect, EventEmitter, inject, DestroyRef, ViewContainerRef, Output, output, contentChildren, PLATFORM_ID, contentChild, Renderer2, afterNextRender, Injectable, InjectionToken, ChangeDetectorRef, DOCUMENT, linkedSignal, untracked, TemplateRef, viewChildren } from '@angular/core';
3
3
  import { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';
4
- import { NgTemplateOutlet, NgClass, isPlatformBrowser, AsyncPipe, NgStyle } from '@angular/common';
4
+ import { NgTemplateOutlet, NgClass, DatePipe, isPlatformBrowser, AsyncPipe, NgStyle } from '@angular/common';
5
+ import { CoreBadgeComponent, CoreAutosuggestDirective, CoreIconComponent, CoreAutosuggestOptionComponent, MatchBoldPipe, CoreAutosuggestAddOptionComponent, CoreAutosuggestPanelComponent, CoreCheckboxComponent, CoreCheckboxGroupComponent, setRadioItemsName, checkRadioItems, CorePillComponent, CoreBreadcrumbComponent, CoreBreadcrumbGroupComponent, CoreFavoriteComponent, CoreKeyValueListComponent, CoreRouterBreadcrumbsComponent } from '@ndwnu/core';
5
6
  import * as i1$1 from '@angular/forms';
6
7
  import { NG_VALUE_ACCESSOR, NgControl, Validators, FormsModule } from '@angular/forms';
7
- import { CoreAutosuggestDirective, CoreIconComponent, CoreAutosuggestOptionComponent, MatchBoldPipe, CoreAutosuggestAddOptionComponent, CoreAutosuggestPanelComponent, CoreCheckboxComponent, CoreCheckboxGroupComponent, setRadioItemsName, checkRadioItems, CorePillComponent, CoreBreadcrumbComponent, CoreBreadcrumbGroupComponent, CoreFavoriteComponent, CoreKeyValueListComponent, CoreRouterBreadcrumbsComponent } from '@ndwnu/core';
8
- import { provideNativeDateAdapter } from '@angular/material/core';
8
+ import { MAT_DATE_LOCALE, provideNativeDateAdapter } from '@angular/material/core';
9
9
  import * as i1 from '@angular/material/datepicker';
10
- import { MatDatepickerModule } from '@angular/material/datepicker';
11
- import { AriaDescriber, ConfigurableFocusTrapFactory } from '@angular/cdk/a11y';
10
+ import { MatDatepickerIntl, MatCalendar, MatDatepickerModule } from '@angular/material/datepicker';
11
+ import { noop, take, fromEvent, startWith, Subject, BehaviorSubject, interval, map, pairwise, takeWhile, filter, skipWhile, switchMap, tap } from 'rxjs';
12
+ import { ConfigurableFocusTrapFactory, AriaDescriber } from '@angular/cdk/a11y';
12
13
  import * as i1$2 from '@angular/cdk/overlay';
13
14
  import { Overlay, OverlayModule } from '@angular/cdk/overlay';
14
- import { ComponentPortal, TemplatePortal, CdkPortalOutlet } from '@angular/cdk/portal';
15
- import { fromEvent, take, noop, startWith, Subject, BehaviorSubject, interval, map, pairwise, takeWhile, filter, skipWhile, switchMap, tap } from 'rxjs';
15
+ import { TemplatePortal, ComponentPortal, CdkPortalOutlet } from '@angular/cdk/portal';
16
16
  import { trigger, state, transition, style, animate } from '@angular/animations';
17
17
  import { RouterLink } from '@angular/router';
18
18
  import { CdkScrollable } from '@angular/cdk/scrolling';
@@ -21,26 +21,13 @@ import { Dialog } from '@angular/cdk/dialog';
21
21
  import * as i1$3 from '@angular/cdk/drag-drop';
22
22
  import { CdkDrag, DragDropModule } from '@angular/cdk/drag-drop';
23
23
 
24
- class BadgeComponent {
25
- /**
26
- * The value of the badge
27
- */
28
- value = input(...(ngDevMode ? [undefined, { debugName: "value" }] : []));
29
- /**
30
- * The aria label, used by screen readers to give context.
31
- */
32
- ariaLabel = input(...(ngDevMode ? [undefined, { debugName: "ariaLabel" }] : []));
33
- /**
34
- * When true, the badge will display values above 99.
35
- * When false (default), the badge will display values above 99 as a dot
36
- */
37
- displayLargeNumbers = input(false, ...(ngDevMode ? [{ debugName: "displayLargeNumbers" }] : []));
38
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: BadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
39
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.4", type: BadgeComponent, isStandalone: true, selector: "ndw-badge", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, displayLargeNumbers: { classPropertyName: "displayLargeNumbers", publicName: "displayLargeNumbers", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (value(); as value) {\n @if (!displayLargeNumbers() && (value < -9 || value > 99)) {\n <span class=\"dot\"></span>\n } @else {\n {{ value }}\n }\n} @else {\n {{ value() }}\n}\n@if (ariaLabel()) {\n <span class=\"sr-only\"> {{ ariaLabel() }}</span>\n}\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400..650;1,9..40,400..650&family=Material+Symbols+Rounded:opsz,wght,FILL@20..48,400,0..1&family=Nunito+Sans:ital,opsz,wght@0,6..12,400..650;1,6..12,400..650&display=block\";:host{align-items:center;background-color:var(--badge-background-color);border:var(--badge-border);border-radius:var(--badge-min-size);box-sizing:border-box;color:var(--badge-color);display:flex;font-size:var(--badge-font-size);height:var(--badge-min-size);justify-content:center;letter-spacing:-1px;max-width:fit-content;min-width:var(--badge-min-size);padding-inline:var(--badge-padding-inline);text-align:center}.dot{display:block;background-color:var(--badge-color);border-radius:50%;height:var(--badge-dot-size);width:var(--badge-dot-size)}.ndw-heading-xl{font-family:var(--ndw-font-family-heading);font-size:2.5rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-heading-lg{font-family:var(--ndw-font-family-heading);font-size:2rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-heading-md{font-family:var(--ndw-font-family-heading);font-size:1.5rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-heading-sm{font-family:var(--ndw-font-family-heading);font-size:1.25rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-bold-xl{font-family:var(--ndw-font-family-body);font-size:1.125rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-xl{font-family:var(--ndw-font-family-body);font-size:1.125rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}.ndw-paragraph-bold-lg{font-family:var(--ndw-font-family-body);font-size:1rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-lg{font-family:var(--ndw-font-family-body);font-size:1rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}.ndw-paragraph-bold-md{font-family:var(--ndw-font-family-body);font-size:.8125rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-md{font-family:var(--ndw-font-family-body);font-size:.8125rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}.ndw-paragraph-bold-sm{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-sm{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}:host{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-bold);line-height:150%;--badge-background-color: var(--ndw-color-primary-050);--badge-border: var(--ndw-border-size-sm) solid var(--ndw-color-primary);--badge-color: var(--ndw-color-primary);--badge-dot-size: var(--ndw-spacing-2xs);--badge-min-size: 1.25rem;--badge-padding-inline: var(--ndw-spacing-2xs)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
24
+ class BadgeComponent extends CoreBadgeComponent {
25
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: BadgeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
26
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.4", type: BadgeComponent, isStandalone: true, selector: "ndw-badge", usesInheritance: true, ngImport: i0, template: "@if (variant() === 'error') {\n !\n} @else if (value(); as value) {\n @if (!displayLargeNumbers() && (value < -9 || value > 99)) {\n <span class=\"dot\"></span>\n } @else {\n {{ value }}\n }\n} @else {\n {{ value() }}\n}\n@if (ariaLabel()) {\n <span class=\"sr-only\">{{ ariaLabel() }}</span>\n}\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400..650;1,9..40,400..650&family=Material+Symbols+Rounded:opsz,wght,FILL@20..48,400,0..1&family=Nunito+Sans:ital,opsz,wght@0,6..12,400..650;1,6..12,400..650&display=block\";:host{align-items:center;background-color:var(--badge-background-color);border:var(--badge-border);border-radius:var(--badge-min-size);box-sizing:border-box;color:var(--badge-color);display:flex;font-size:var(--badge-font-size);height:var(--badge-min-size);justify-content:center;letter-spacing:-1px;max-width:fit-content;min-width:var(--badge-min-size);padding-inline:var(--badge-padding-inline);text-align:center}.dot{display:block;background-color:var(--badge-color);border-radius:50%;height:var(--badge-dot-size);width:var(--badge-dot-size)}.ndw-heading-xl{font-family:var(--ndw-font-family-heading);font-size:2.5rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-heading-lg{font-family:var(--ndw-font-family-heading);font-size:2rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-heading-md{font-family:var(--ndw-font-family-heading);font-size:1.5rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-heading-sm{font-family:var(--ndw-font-family-heading);font-size:1.25rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-bold-xl{font-family:var(--ndw-font-family-body);font-size:1.125rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-xl{font-family:var(--ndw-font-family-body);font-size:1.125rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}.ndw-paragraph-bold-lg{font-family:var(--ndw-font-family-body);font-size:1rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-lg{font-family:var(--ndw-font-family-body);font-size:1rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}.ndw-paragraph-bold-md{font-family:var(--ndw-font-family-body);font-size:.8125rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-md{font-family:var(--ndw-font-family-body);font-size:.8125rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}.ndw-paragraph-bold-sm{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-sm{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}:host{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-bold);line-height:150%;--badge-background-color: var(--ndw-color-primary-050);--badge-border: var(--ndw-border-size-sm) solid var(--ndw-color-primary);--badge-color: var(--ndw-color-primary);--badge-dot-size: var(--ndw-spacing-2xs);--badge-min-size: 1.25rem;--badge-padding-inline: var(--ndw-spacing-2xs)}:host(.small){--badge-dot-size: var(--ndw-spacing-1xs);--badge-min-size: 1rem;--badge-padding-inline: var(--ndw-spacing-1xs)}:host(.error){--badge-background-color: var(--ndw-color-critical-500);--badge-border: none;--badge-color: var(--ndw-color-white);letter-spacing:0px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
40
27
  }
41
28
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: BadgeComponent, decorators: [{
42
29
  type: Component,
43
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ndw-badge', template: "@if (value(); as value) {\n @if (!displayLargeNumbers() && (value < -9 || value > 99)) {\n <span class=\"dot\"></span>\n } @else {\n {{ value }}\n }\n} @else {\n {{ value() }}\n}\n@if (ariaLabel()) {\n <span class=\"sr-only\"> {{ ariaLabel() }}</span>\n}\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400..650;1,9..40,400..650&family=Material+Symbols+Rounded:opsz,wght,FILL@20..48,400,0..1&family=Nunito+Sans:ital,opsz,wght@0,6..12,400..650;1,6..12,400..650&display=block\";:host{align-items:center;background-color:var(--badge-background-color);border:var(--badge-border);border-radius:var(--badge-min-size);box-sizing:border-box;color:var(--badge-color);display:flex;font-size:var(--badge-font-size);height:var(--badge-min-size);justify-content:center;letter-spacing:-1px;max-width:fit-content;min-width:var(--badge-min-size);padding-inline:var(--badge-padding-inline);text-align:center}.dot{display:block;background-color:var(--badge-color);border-radius:50%;height:var(--badge-dot-size);width:var(--badge-dot-size)}.ndw-heading-xl{font-family:var(--ndw-font-family-heading);font-size:2.5rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-heading-lg{font-family:var(--ndw-font-family-heading);font-size:2rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-heading-md{font-family:var(--ndw-font-family-heading);font-size:1.5rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-heading-sm{font-family:var(--ndw-font-family-heading);font-size:1.25rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-bold-xl{font-family:var(--ndw-font-family-body);font-size:1.125rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-xl{font-family:var(--ndw-font-family-body);font-size:1.125rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}.ndw-paragraph-bold-lg{font-family:var(--ndw-font-family-body);font-size:1rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-lg{font-family:var(--ndw-font-family-body);font-size:1rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}.ndw-paragraph-bold-md{font-family:var(--ndw-font-family-body);font-size:.8125rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-md{font-family:var(--ndw-font-family-body);font-size:.8125rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}.ndw-paragraph-bold-sm{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-sm{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}:host{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-bold);line-height:150%;--badge-background-color: var(--ndw-color-primary-050);--badge-border: var(--ndw-border-size-sm) solid var(--ndw-color-primary);--badge-color: var(--ndw-color-primary);--badge-dot-size: var(--ndw-spacing-2xs);--badge-min-size: 1.25rem;--badge-padding-inline: var(--ndw-spacing-2xs)}\n"] }]
30
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ndw-badge', template: "@if (variant() === 'error') {\n !\n} @else if (value(); as value) {\n @if (!displayLargeNumbers() && (value < -9 || value > 99)) {\n <span class=\"dot\"></span>\n } @else {\n {{ value }}\n }\n} @else {\n {{ value() }}\n}\n@if (ariaLabel()) {\n <span class=\"sr-only\">{{ ariaLabel() }}</span>\n}\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400..650;1,9..40,400..650&family=Material+Symbols+Rounded:opsz,wght,FILL@20..48,400,0..1&family=Nunito+Sans:ital,opsz,wght@0,6..12,400..650;1,6..12,400..650&display=block\";:host{align-items:center;background-color:var(--badge-background-color);border:var(--badge-border);border-radius:var(--badge-min-size);box-sizing:border-box;color:var(--badge-color);display:flex;font-size:var(--badge-font-size);height:var(--badge-min-size);justify-content:center;letter-spacing:-1px;max-width:fit-content;min-width:var(--badge-min-size);padding-inline:var(--badge-padding-inline);text-align:center}.dot{display:block;background-color:var(--badge-color);border-radius:50%;height:var(--badge-dot-size);width:var(--badge-dot-size)}.ndw-heading-xl{font-family:var(--ndw-font-family-heading);font-size:2.5rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-heading-lg{font-family:var(--ndw-font-family-heading);font-size:2rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-heading-md{font-family:var(--ndw-font-family-heading);font-size:1.5rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-heading-sm{font-family:var(--ndw-font-family-heading);font-size:1.25rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-bold-xl{font-family:var(--ndw-font-family-body);font-size:1.125rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-xl{font-family:var(--ndw-font-family-body);font-size:1.125rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}.ndw-paragraph-bold-lg{font-family:var(--ndw-font-family-body);font-size:1rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-lg{font-family:var(--ndw-font-family-body);font-size:1rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}.ndw-paragraph-bold-md{font-family:var(--ndw-font-family-body);font-size:.8125rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-md{font-family:var(--ndw-font-family-body);font-size:.8125rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}.ndw-paragraph-bold-sm{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-sm{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}:host{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-bold);line-height:150%;--badge-background-color: var(--ndw-color-primary-050);--badge-border: var(--ndw-border-size-sm) solid var(--ndw-color-primary);--badge-color: var(--ndw-color-primary);--badge-dot-size: var(--ndw-spacing-2xs);--badge-min-size: 1.25rem;--badge-padding-inline: var(--ndw-spacing-2xs)}:host(.small){--badge-dot-size: var(--ndw-spacing-1xs);--badge-min-size: 1rem;--badge-padding-inline: var(--ndw-spacing-1xs)}:host(.error){--badge-background-color: var(--ndw-color-critical-500);--badge-border: none;--badge-color: var(--ndw-color-white);letter-spacing:0px}\n"] }]
44
31
  }] });
45
32
 
46
33
  class AutosuggestDirective extends CoreAutosuggestDirective {
@@ -185,23 +172,727 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImpor
185
172
  args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ndw-checkbox-group', template: "<ng-content />\n", styles: [":host{display:grid;gap:var(--checkbox-group-gap)}:host{--checkbox-group-gap: var(--ndw-spacing-2xs)}\n"] }]
186
173
  }] });
187
174
 
188
- class DatepickerComponent {
189
- dateClass = (cellDate, view) => {
190
- const className = 'ndw-date';
191
- // Only highlight dates inside the month view.
192
- if (view === 'month') {
193
- const date = cellDate.getDate();
194
- // Highlight the 1st and 20th day of each month.
195
- return date === 1 || date === 20 ? `${className} highlighted` : className;
196
- }
197
- return className;
175
+ function createDutchDatepickerIntl() {
176
+ const intl = new MatDatepickerIntl();
177
+ intl.calendarLabel = 'Kalender';
178
+ intl.openCalendarLabel = 'Open kalender';
179
+ intl.closeCalendarLabel = 'Sluit kalender';
180
+ intl.comparisonDateLabel = 'Vergelijkingsdatum';
181
+ intl.prevMonthLabel = 'Vorige maand';
182
+ intl.nextMonthLabel = 'Volgende maand';
183
+ intl.nextMultiYearLabel = 'Volgende jaren';
184
+ intl.prevMultiYearLabel = 'Vorige jaren';
185
+ intl.prevYearLabel = 'Vorig jaar';
186
+ intl.nextYearLabel = 'Volgend jaar';
187
+ intl.switchToMonthViewLabel = 'Schakel naar maandweergave';
188
+ intl.switchToMultiYearViewLabel = 'Schakel naar jaartallenweergave';
189
+ return intl;
190
+ }
191
+ function datesAreSameYear(d1, d2) {
192
+ return d1.getFullYear() === d2.getFullYear();
193
+ }
194
+ function datesAreSameMonth(d1, d2) {
195
+ return datesAreSameYear(d1, d2) && d1.getMonth() === d2.getMonth();
196
+ }
197
+ function datesAreSameDay(d1, d2) {
198
+ return datesAreSameMonth(d1, d2) && d1.getDate() === d2.getDate();
199
+ }
200
+ function toDateArray(value) {
201
+ return [value].flat().filter((v) => v != null);
202
+ }
203
+ function toggleDates(current, toToggle) {
204
+ const toggled = [...current];
205
+ toToggle.forEach((date) => {
206
+ const index = toggled.findIndex((d) => areDatesEqual(d, date));
207
+ if (index > -1) {
208
+ toggled.splice(index, 1);
209
+ }
210
+ else {
211
+ toggled.push(date);
212
+ }
213
+ });
214
+ return toggled;
215
+ }
216
+ function getUniqueDates(dates) {
217
+ return dates.filter((date, index) => dates.findIndex((d) => areDatesEqual(d, date)) === index);
218
+ }
219
+ function compareDates(a, b) {
220
+ return a.getTime() - b.getTime();
221
+ }
222
+ function isDateBefore(a, b) {
223
+ return compareDates(a, b) < 0;
224
+ }
225
+ function isDateAfter(a, b) {
226
+ return compareDates(a, b) > 0;
227
+ }
228
+ function areDatesEqual(a, b) {
229
+ return compareDates(a, b) === 0;
230
+ }
231
+ function areDatesEqualInView(a, b, view) {
232
+ switch (view) {
233
+ case 'month':
234
+ return datesAreSameDay(a, b);
235
+ case 'year':
236
+ return datesAreSameMonth(a, b);
237
+ case 'multi-year':
238
+ return datesAreSameYear(a, b);
239
+ default:
240
+ return false;
241
+ }
242
+ }
243
+ function datesToInputValue(dates, mode) {
244
+ if (dates.length === 0) {
245
+ return '';
246
+ }
247
+ switch (mode) {
248
+ case 'month':
249
+ return formatMonth(dates[0]);
250
+ case 'single':
251
+ return formatDate(dates[0]);
252
+ case 'multiple':
253
+ return dates.sort(compareDates).map(formatDate).join(', ');
254
+ case 'range':
255
+ return dates.slice(0, 2).map(formatDate).join(' - ');
256
+ default:
257
+ return '';
258
+ }
259
+ }
260
+ function formatDate(date) {
261
+ return new Intl.DateTimeFormat('nl-NL').format(date);
262
+ }
263
+ function formatMonth(date) {
264
+ return new Intl.DateTimeFormat('nl-NL', { year: 'numeric', month: 'numeric' }).format(date);
265
+ }
266
+ function inputValueToDates(input, mode) {
267
+ const parts = input.split(/[-,]/).map((part) => parseInt(part.trim(), 10));
268
+ const parsed = [];
269
+ if (mode === 'month' && parts.length === 2) {
270
+ const [month, year] = parts;
271
+ parsed.push(createDate(year, month - 1, 1));
272
+ }
273
+ else if (mode === 'single' && parts.length === 3) {
274
+ const [day, month, year] = parts;
275
+ parsed.push(createDate(year, month - 1, day));
276
+ }
277
+ else if (mode === 'multiple' && parts.length % 3 === 0) {
278
+ for (let i = 0; i < parts.length; i += 3) {
279
+ const [day, month, year] = parts.slice(i, i + 3);
280
+ parsed.push(createDate(year, month - 1, day));
281
+ }
282
+ }
283
+ else if (mode === 'range' && parts.length === 6) {
284
+ const [day1, month1, year1, day2, month2, year2] = parts;
285
+ parsed.push(createDate(year1, month1 - 1, day1));
286
+ parsed.push(createDate(year2, month2 - 1, day2));
287
+ }
288
+ return parsed.filter((date) => date != null);
289
+ }
290
+ function createDate(year, month, day) {
291
+ const minValidYear = 1000;
292
+ if (isNaN(year) ||
293
+ isNaN(month) ||
294
+ isNaN(day) ||
295
+ year < minValidYear ||
296
+ month < 0 ||
297
+ month > 11 ||
298
+ day < 1 ||
299
+ day > 31) {
300
+ return null;
301
+ }
302
+ const date = new Date(year, month, day);
303
+ return date.getFullYear() === year && date.getMonth() === month && date.getDate() === day
304
+ ? date
305
+ : null;
306
+ }
307
+ function datesToOutputValue(dates, mode) {
308
+ const array = toDateArray(dates);
309
+ switch (mode) {
310
+ case 'single':
311
+ case 'month':
312
+ return array[0] ?? null;
313
+ case 'multiple':
314
+ return array;
315
+ case 'range':
316
+ return array.slice(0, 2);
317
+ }
318
+ }
319
+ function getDateClassFn(dateWithIndicatorFn, mode, selectedDates) {
320
+ return (cellDate, view) => {
321
+ const classNames = ['ndw-date'];
322
+ if (dateWithIndicatorFn(cellDate)) {
323
+ classNames.push('ndw-date-indicator');
324
+ }
325
+ if (selectedDates.some((selectedDate) => areDatesEqualInView(cellDate, selectedDate, view))) {
326
+ classNames.push('ndw-date-selected');
327
+ }
328
+ if (mode === 'range' && selectedDates.length === 2) {
329
+ if (isDateBefore(selectedDates[0], cellDate) && isDateAfter(selectedDates[1], cellDate)) {
330
+ classNames.push('ndw-date-in-range');
331
+ }
332
+ if (areDatesEqual(selectedDates[0], cellDate)) {
333
+ classNames.push('ndw-date-range-start');
334
+ }
335
+ if (areDatesEqual(selectedDates[1], cellDate)) {
336
+ classNames.push('ndw-date-range-end');
337
+ }
338
+ }
339
+ return classNames;
198
340
  };
341
+ }
342
+
343
+ const rangePreviewClasses = {
344
+ start: 'ndw-date-range-start-preview',
345
+ end: 'ndw-date-range-end-preview',
346
+ inside: 'ndw-date-in-range-preview',
347
+ };
348
+ class CalendarComponent {
349
+ mode = input('single', ...(ngDevMode ? [{ debugName: "mode" }] : []));
350
+ disabled = model(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
351
+ minDate = input(null, ...(ngDevMode ? [{ debugName: "minDate" }] : []));
352
+ maxDate = input(null, ...(ngDevMode ? [{ debugName: "maxDate" }] : []));
353
+ startAt = input(null, ...(ngDevMode ? [{ debugName: "startAt" }] : []));
354
+ dateEnabledFilter = input(() => true, ...(ngDevMode ? [{ debugName: "dateEnabledFilter" }] : []));
355
+ dateWithIndicatorFilter = input(() => false, ...(ngDevMode ? [{ debugName: "dateWithIndicatorFilter" }] : []));
356
+ elevated = input(true, ...(ngDevMode ? [{ debugName: "elevated" }] : []));
357
+ internalDateEnabledFilter = computed(() => {
358
+ const disabled = this.disabled();
359
+ const filter = this.dateEnabledFilter();
360
+ return (date) => !disabled && filter(date);
361
+ }, ...(ngDevMode ? [{ debugName: "internalDateEnabledFilter" }] : []));
362
+ calendar = viewChild(MatCalendar, ...(ngDevMode ? [{ debugName: "calendar" }] : []));
363
+ calendarElement = viewChild(MatCalendar, ...(ngDevMode ? [{ debugName: "calendarElement", read: (ElementRef) }] : [{
364
+ read: (ElementRef),
365
+ }]));
366
+ value = signal([], ...(ngDevMode ? [{ debugName: "value" }] : []));
367
+ startView = computed(() => (this.mode() === 'month' ? 'year' : 'month'), ...(ngDevMode ? [{ debugName: "startView" }] : []));
368
+ dateClass = computed(() => getDateClassFn(this.dateWithIndicatorFilter(), this.mode(), this.value()), ...(ngDevMode ? [{ debugName: "dateClass" }] : []));
369
+ #onChange = noop;
370
+ #mouseMoveListener = null;
371
+ constructor() {
372
+ afterRenderEffect(() => {
373
+ const calendar = this.calendar();
374
+ this.value(); // Depend on value changes.
375
+ // Force the calendar to refresh the calendar view.
376
+ // This is needed to redraw after setting classes on dates.
377
+ calendar?.updateTodaysDate();
378
+ });
379
+ effect(() => {
380
+ const mode = this.mode();
381
+ const element = this.calendarElement()?.nativeElement;
382
+ const calendar = this.calendar();
383
+ this.removeMouseMoveListener();
384
+ if (mode !== 'range' || !element || !calendar) {
385
+ return;
386
+ }
387
+ this.addMouseMoveListener(element, calendar);
388
+ });
389
+ }
390
+ ngOnDestroy() {
391
+ this.removeMouseMoveListener();
392
+ }
393
+ addMouseMoveListener(calendarElement, calendar) {
394
+ this.#mouseMoveListener = () => this.addRangePreviewClasses(calendarElement, calendar);
395
+ calendarElement.addEventListener('mousemove', this.#mouseMoveListener);
396
+ }
397
+ removeMouseMoveListener() {
398
+ if (this.#mouseMoveListener) {
399
+ this.calendarElement()?.nativeElement.removeEventListener('mousemove', this.#mouseMoveListener);
400
+ this.#mouseMoveListener = null;
401
+ }
402
+ }
403
+ addRangePreviewClasses(calendarElement, calendar) {
404
+ const selection = this.value();
405
+ const hovered = calendarElement.querySelector('.ndw-date:hover');
406
+ if (calendar.currentView !== 'month' || selection.length !== 1 || !hovered) {
407
+ calendarElement
408
+ .querySelectorAll('.ndw-date')
409
+ .forEach((btn) => this.removeRangePreviewClasses(btn));
410
+ return;
411
+ }
412
+ const getButtonDate = (el) => {
413
+ return new Date(calendar.activeDate.getFullYear() || 0, calendar.activeDate.getMonth() || 0, parseInt(el.textContent || '0', 10));
414
+ };
415
+ const selectedDate = selection[0];
416
+ const hoveredDate = getButtonDate(hovered);
417
+ // Get all buttons between
418
+ calendarElement.querySelectorAll('.ndw-date').forEach((btn) => {
419
+ const btnDate = getButtonDate(btn);
420
+ this.removeRangePreviewClasses(btn);
421
+ if ((isDateAfter(btnDate, selectedDate) && isDateBefore(btnDate, hoveredDate)) ||
422
+ (isDateBefore(btnDate, selectedDate) && isDateAfter(btnDate, hoveredDate))) {
423
+ btn.classList.add(rangePreviewClasses.inside);
424
+ }
425
+ else if (areDatesEqual(btnDate, selectedDate) && isDateAfter(hoveredDate, selectedDate)) {
426
+ btn.classList.add(rangePreviewClasses.start);
427
+ }
428
+ else if (areDatesEqual(btnDate, selectedDate) && isDateBefore(hoveredDate, selectedDate)) {
429
+ btn.classList.add(rangePreviewClasses.end);
430
+ }
431
+ else if (areDatesEqual(btnDate, hoveredDate) && isDateAfter(btnDate, selectedDate)) {
432
+ btn.classList.add(rangePreviewClasses.end);
433
+ }
434
+ else if (areDatesEqual(btnDate, hoveredDate) && isDateBefore(btnDate, selectedDate)) {
435
+ btn.classList.add(rangePreviewClasses.start);
436
+ }
437
+ });
438
+ }
439
+ removeRangePreviewClasses(element) {
440
+ Object.values(rangePreviewClasses).forEach((cssClass) => {
441
+ element.classList.remove(cssClass);
442
+ });
443
+ }
444
+ onDateSelected(date, toggle = true) {
445
+ const mode = this.mode();
446
+ const dates = toDateArray(date);
447
+ let selection;
448
+ if (mode === 'multiple' && toggle) {
449
+ selection = toggleDates(this.value(), dates);
450
+ }
451
+ else if (mode === 'range' && toggle) {
452
+ const toggled = toggleDates(this.value(), dates);
453
+ // When the user selected a third date, start a new range from that date.
454
+ if (toggled.length > 2) {
455
+ selection = toggled.slice(-1);
456
+ }
457
+ else {
458
+ selection = toggled;
459
+ }
460
+ }
461
+ else {
462
+ selection = dates;
463
+ }
464
+ selection = selection.sort(compareDates);
465
+ this.writeValue(selection);
466
+ this.#onChange(datesToOutputValue(selection, mode));
467
+ }
468
+ onMonthSelected(date) {
469
+ if (this.mode() === 'month') {
470
+ this.onDateSelected(date);
471
+ }
472
+ }
473
+ writeValue(value) {
474
+ this.value.set(toDateArray(value));
475
+ }
476
+ registerOnChange(fn) {
477
+ this.#onChange = fn;
478
+ }
479
+ registerOnTouched(_fn) {
480
+ // noop
481
+ }
482
+ setDisabledState(isDisabled) {
483
+ this.disabled.set(isDisabled);
484
+ }
485
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: CalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
486
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.2.4", type: CalendarComponent, isStandalone: true, selector: "ndw-calendar", inputs: { mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null }, startAt: { classPropertyName: "startAt", publicName: "startAt", isSignal: true, isRequired: false, transformFunction: null }, dateEnabledFilter: { classPropertyName: "dateEnabledFilter", publicName: "dateEnabledFilter", isSignal: true, isRequired: false, transformFunction: null }, dateWithIndicatorFilter: { classPropertyName: "dateWithIndicatorFilter", publicName: "dateWithIndicatorFilter", isSignal: true, isRequired: false, transformFunction: null }, elevated: { classPropertyName: "elevated", publicName: "elevated", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { disabled: "disabledChange" }, host: { properties: { "class.elevated": "elevated()" } }, providers: [
487
+ {
488
+ provide: NG_VALUE_ACCESSOR,
489
+ useExisting: forwardRef(() => CalendarComponent),
490
+ multi: true,
491
+ },
492
+ { provide: MAT_DATE_LOCALE, useValue: 'nl-NL' },
493
+ { provide: MatDatepickerIntl, useFactory: createDutchDatepickerIntl },
494
+ provideNativeDateAdapter(),
495
+ ], viewQueries: [{ propertyName: "calendar", first: true, predicate: MatCalendar, descendants: true, isSignal: true }, { propertyName: "calendarElement", first: true, predicate: MatCalendar, descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "<mat-calendar\n panelClass=\"ndw-calendar\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [dateClass]=\"dateClass()\"\n [class.range-picker]=\"mode() === 'range'\"\n [class.month-picker]=\"mode() === 'month'\"\n [startView]=\"startView()\"\n [startAt]=\"startAt()\"\n [dateFilter]=\"internalDateEnabledFilter()\"\n (monthSelected)=\"onMonthSelected($event)\"\n (selectedChange)=\"onDateSelected($event)\"\n/>\n", styles: [":host{display:block;width:300px;margin:calc(-1 * var(--ndw-spacing-2xs))}:host.elevated{border-radius:var(--ndw-border-radius-md);box-shadow:var(--ndw-elevation-content)}\n"], dependencies: [{ kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i1.MatCalendar, selector: "mat-calendar", inputs: ["headerComponent", "startAt", "startView", "selected", "minDate", "maxDate", "dateFilter", "dateClass", "comparisonStart", "comparisonEnd", "startDateAccessibleName", "endDateAccessibleName"], outputs: ["selectedChange", "yearSelected", "monthSelected", "viewChanged", "_userSelection", "_userDragDrop"], exportAs: ["matCalendar"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
496
+ }
497
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: CalendarComponent, decorators: [{
498
+ type: Component,
499
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatDatepickerModule], providers: [
500
+ {
501
+ provide: NG_VALUE_ACCESSOR,
502
+ useExisting: forwardRef(() => CalendarComponent),
503
+ multi: true,
504
+ },
505
+ { provide: MAT_DATE_LOCALE, useValue: 'nl-NL' },
506
+ { provide: MatDatepickerIntl, useFactory: createDutchDatepickerIntl },
507
+ provideNativeDateAdapter(),
508
+ ], selector: 'ndw-calendar', host: {
509
+ '[class.elevated]': 'elevated()',
510
+ }, template: "<mat-calendar\n panelClass=\"ndw-calendar\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [dateClass]=\"dateClass()\"\n [class.range-picker]=\"mode() === 'range'\"\n [class.month-picker]=\"mode() === 'month'\"\n [startView]=\"startView()\"\n [startAt]=\"startAt()\"\n [dateFilter]=\"internalDateEnabledFilter()\"\n (monthSelected)=\"onMonthSelected($event)\"\n (selectedChange)=\"onDateSelected($event)\"\n/>\n", styles: [":host{display:block;width:300px;margin:calc(-1 * var(--ndw-spacing-2xs))}:host.elevated{border-radius:var(--ndw-border-radius-md);box-shadow:var(--ndw-elevation-content)}\n"] }]
511
+ }], ctorParameters: () => [] });
512
+
513
+ class PopoverTriggerDirective {
514
+ popoverToggled = new EventEmitter();
515
+ popoverPosition = input('nextToTriggerButton', ...(ngDevMode ? [{ debugName: "popoverPosition" }] : []));
516
+ popoverContent = input.required(...(ngDevMode ? [{ debugName: "popoverContent", alias: 'ndwPopoverTrigger' }] : [{ alias: 'ndwPopoverTrigger' }]));
517
+ toggleOnClick = input(true, ...(ngDevMode ? [{ debugName: "toggleOnClick" }] : []));
518
+ isOpen = model(false, ...(ngDevMode ? [{ debugName: "isOpen" }] : []));
519
+ toggle() {
520
+ if (!this.toggleOnClick()) {
521
+ return;
522
+ }
523
+ this.isOpen.set(!this.isOpen());
524
+ this.togglePopover();
525
+ }
526
+ destroyRef = inject(DestroyRef);
527
+ elementRef = inject((ElementRef));
528
+ overlay = inject(Overlay);
529
+ viewContainerRef = inject(ViewContainerRef);
530
+ focusTrapFactory = inject(ConfigurableFocusTrapFactory);
531
+ overlayRef;
532
+ ngOnDestroy() {
533
+ this.isOpen.set(false);
534
+ this.togglePopover();
535
+ }
536
+ togglePopover() {
537
+ if (this.isOpen()) {
538
+ this.open();
539
+ }
540
+ else {
541
+ this.close();
542
+ }
543
+ this.popoverToggled.emit(this.isOpen());
544
+ }
545
+ open() {
546
+ const positions = this.getPopoverPosition(this.popoverPosition());
547
+ const templatePortal = new TemplatePortal(this.popoverContent(), this.viewContainerRef);
548
+ this.overlayRef = this.overlay.create({
549
+ hasBackdrop: true,
550
+ backdropClass: 'cdk-overlay-transparent-backdrop',
551
+ scrollStrategy: this.overlay.scrollStrategies.reposition(),
552
+ positionStrategy: this.overlay
553
+ .position()
554
+ .flexibleConnectedTo(this.elementRef)
555
+ .withPositions(positions),
556
+ });
557
+ this.overlayRef.attach(templatePortal);
558
+ this.overlayRef.hostElement.addEventListener('click', (event) => {
559
+ const target = event.target;
560
+ if (this.nodeOrParentsHaveAttribute(target, 'ndwPopoverCloseTrigger')) {
561
+ this.isOpen.set(false);
562
+ this.togglePopover();
563
+ }
564
+ });
565
+ this.trapFocus(this.overlayRef);
566
+ this.closeOverlayOnEscapeKey(this.overlayRef);
567
+ this.closeOverlayOnBackdropClick(this.overlayRef);
568
+ }
569
+ trapFocus(overlayRef) {
570
+ this.focusTrapFactory.create(overlayRef.overlayElement);
571
+ }
572
+ closeOverlayOnEscapeKey(overlayRef) {
573
+ overlayRef.overlayElement.onkeydown = (event) => {
574
+ if (event.key === 'Escape') {
575
+ this.isOpen.set(false);
576
+ this.togglePopover();
577
+ }
578
+ };
579
+ }
580
+ nodeOrParentsHaveAttribute(node, attribute) {
581
+ let next = node;
582
+ while (next) {
583
+ if (next.hasAttribute(attribute)) {
584
+ return true;
585
+ }
586
+ next = next.parentElement;
587
+ }
588
+ return false;
589
+ }
590
+ closeOverlayOnBackdropClick(overlayRef) {
591
+ overlayRef
592
+ .backdropClick()
593
+ .pipe(takeUntilDestroyed(this.destroyRef), take(1))
594
+ .subscribe(() => {
595
+ this.isOpen.set(false);
596
+ this.togglePopover();
597
+ });
598
+ }
599
+ close() {
600
+ this.overlayRef?.dispose();
601
+ }
602
+ getPopoverPosition(popoverPosition) {
603
+ let positions;
604
+ if (popoverPosition === 'overTriggerButton') {
605
+ positions = [
606
+ {
607
+ originX: 'start',
608
+ originY: 'bottom',
609
+ overlayX: 'start',
610
+ overlayY: 'bottom',
611
+ panelClass: 'ndw-popover-panel',
612
+ },
613
+ {
614
+ originX: 'end',
615
+ originY: 'bottom',
616
+ overlayX: 'end',
617
+ overlayY: 'bottom',
618
+ panelClass: 'ndw-popover-panel',
619
+ },
620
+ {
621
+ originX: 'start',
622
+ originY: 'top',
623
+ overlayX: 'start',
624
+ overlayY: 'top',
625
+ panelClass: 'ndw-popover-panel',
626
+ },
627
+ {
628
+ originX: 'end',
629
+ originY: 'top',
630
+ overlayX: 'end',
631
+ overlayY: 'top',
632
+ panelClass: 'ndw-popover-panel',
633
+ },
634
+ ];
635
+ }
636
+ else {
637
+ positions = [
638
+ {
639
+ originX: 'start',
640
+ originY: 'bottom',
641
+ overlayX: 'start',
642
+ overlayY: 'top',
643
+ offsetY: 4,
644
+ panelClass: 'ndw-popover-panel',
645
+ },
646
+ {
647
+ originX: 'end',
648
+ originY: 'bottom',
649
+ overlayX: 'end',
650
+ overlayY: 'top',
651
+ offsetY: 4,
652
+ panelClass: 'ndw-popover-panel',
653
+ },
654
+ {
655
+ originX: 'start',
656
+ originY: 'top',
657
+ overlayX: 'start',
658
+ overlayY: 'bottom',
659
+ offsetY: -4,
660
+ panelClass: 'ndw-popover-panel',
661
+ },
662
+ {
663
+ originX: 'end',
664
+ originY: 'top',
665
+ overlayX: 'end',
666
+ overlayY: 'bottom',
667
+ offsetY: -4,
668
+ panelClass: 'ndw-popover-panel',
669
+ },
670
+ ];
671
+ }
672
+ return [
673
+ ...positions,
674
+ ...positions.map((position) => ({
675
+ ...position,
676
+ overlayX: 'center',
677
+ overlayY: 'center',
678
+ })),
679
+ ];
680
+ }
681
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: PopoverTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
682
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.4", type: PopoverTriggerDirective, isStandalone: true, selector: "[ndwPopoverTrigger]", inputs: { popoverPosition: { classPropertyName: "popoverPosition", publicName: "popoverPosition", isSignal: true, isRequired: false, transformFunction: null }, popoverContent: { classPropertyName: "popoverContent", publicName: "ndwPopoverTrigger", isSignal: true, isRequired: true, transformFunction: null }, toggleOnClick: { classPropertyName: "toggleOnClick", publicName: "toggleOnClick", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { popoverToggled: "popoverToggled", isOpen: "isOpenChange" }, host: { listeners: { "click": "toggle()" } }, exportAs: ["ndwPopoverTrigger"], ngImport: i0 });
683
+ }
684
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: PopoverTriggerDirective, decorators: [{
685
+ type: Directive,
686
+ args: [{
687
+ exportAs: 'ndwPopoverTrigger',
688
+ host: {
689
+ '(click)': 'toggle()',
690
+ },
691
+ selector: '[ndwPopoverTrigger]',
692
+ }]
693
+ }], propDecorators: { popoverToggled: [{
694
+ type: Output
695
+ }] } });
696
+
697
+ class TagComponent {
698
+ /**
699
+ * Disables the tag
700
+ */
701
+ disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
702
+ /**
703
+ * Aria label for the interactive button
704
+ */
705
+ suffixAriaLabel = input('Verwijder', ...(ngDevMode ? [{ debugName: "suffixAriaLabel" }] : []));
706
+ /**
707
+ * The name of the icon to display
708
+ */
709
+ suffixIcon = input('close', ...(ngDevMode ? [{ debugName: "suffixIcon" }] : []));
710
+ clicked = output();
711
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: TagComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
712
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.2.4", type: TagComponent, isStandalone: true, selector: "ndw-tag", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, suffixAriaLabel: { classPropertyName: "suffixAriaLabel", publicName: "suffixAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, suffixIcon: { classPropertyName: "suffixIcon", publicName: "suffixIcon", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clicked: "clicked" }, host: { properties: { "class.disabled": "disabled()" } }, ngImport: i0, template: "<ng-content />\n<button type=\"button\" [disabled]=\"disabled()\" (click)=\"clicked.emit($event)\">\n <span class=\"sr-only\">{{ suffixAriaLabel() }}</span>\n <ndw-icon>{{ suffixIcon() }}</ndw-icon>\n</button>\n", styles: [":host{position:relative;overflow:hidden;display:inline-grid;grid-template-columns:auto 1fr;align-items:center;height:1.5rem;padding:0 var(--ndw-spacing-2xs) 0 var(--ndw-spacing-xs);border:var(--ndw-border-size-sm) solid var(--ndw-color-primary);border-radius:45px;outline:none;color:var(--ndw-color-primary);background-color:var(--ndw-color-primary-050);font-size:var(--ndw-font-size-sm);cursor:pointer;transition:var(--ndw-animation-speed-fast) ease-out}:host:hover{border:var(--ndw-border-size-sm) solid var(--ndw-color-primary);background-color:var(--ndw-color-primary);color:var(--ndw-color-white)}:host:active,:host:focus-within{border:var(--ndw-border-size-sm) solid var(--ndw-color-link-400);background-color:var(--ndw-color-primary-600);color:var(--ndw-color-white)}:host.disabled{border:var(--ndw-border-size-sm) solid var(--ndw-color-grey-400);background-color:var(--ndw-color-grey-100);color:var(--ndw-color-grey-400);pointer-events:none}:host button{background-color:transparent;border:0;color:inherit;padding:0}:host button:focus{outline:none}:host button:after{content:\"\";inset:0;position:absolute}:host button ndw-icon{display:grid;font-size:var(--ndw-font-size-sm);width:var(--ndw-spacing-md)}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "ndw-icon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
713
+ }
714
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: TagComponent, decorators: [{
715
+ type: Component,
716
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, host: {
717
+ '[class.disabled]': 'disabled()',
718
+ }, imports: [IconComponent], selector: 'ndw-tag', template: "<ng-content />\n<button type=\"button\" [disabled]=\"disabled()\" (click)=\"clicked.emit($event)\">\n <span class=\"sr-only\">{{ suffixAriaLabel() }}</span>\n <ndw-icon>{{ suffixIcon() }}</ndw-icon>\n</button>\n", styles: [":host{position:relative;overflow:hidden;display:inline-grid;grid-template-columns:auto 1fr;align-items:center;height:1.5rem;padding:0 var(--ndw-spacing-2xs) 0 var(--ndw-spacing-xs);border:var(--ndw-border-size-sm) solid var(--ndw-color-primary);border-radius:45px;outline:none;color:var(--ndw-color-primary);background-color:var(--ndw-color-primary-050);font-size:var(--ndw-font-size-sm);cursor:pointer;transition:var(--ndw-animation-speed-fast) ease-out}:host:hover{border:var(--ndw-border-size-sm) solid var(--ndw-color-primary);background-color:var(--ndw-color-primary);color:var(--ndw-color-white)}:host:active,:host:focus-within{border:var(--ndw-border-size-sm) solid var(--ndw-color-link-400);background-color:var(--ndw-color-primary-600);color:var(--ndw-color-white)}:host.disabled{border:var(--ndw-border-size-sm) solid var(--ndw-color-grey-400);background-color:var(--ndw-color-grey-100);color:var(--ndw-color-grey-400);pointer-events:none}:host button{background-color:transparent;border:0;color:inherit;padding:0}:host button:focus{outline:none}:host button:after{content:\"\";inset:0;position:absolute}:host button ndw-icon{display:grid;font-size:var(--ndw-font-size-sm);width:var(--ndw-spacing-md)}\n"] }]
719
+ }] });
720
+
721
+ class InputDirective {
722
+ set disabled(disabled) {
723
+ this.element.disabled = disabled;
724
+ }
725
+ get error() {
726
+ return !!this.element.getAttribute('error');
727
+ }
728
+ set error(error) {
729
+ this.element.toggleAttribute('error', error);
730
+ }
731
+ set success(success) {
732
+ this.element.toggleAttribute('success', success);
733
+ }
734
+ set id(id) {
735
+ this.element.id = id;
736
+ }
737
+ set ariaDescribedBy(id) {
738
+ this.element.setAttribute('aria-describedby', id);
739
+ }
740
+ elementRef = inject(ElementRef);
741
+ destroyRef = inject(DestroyRef);
742
+ ngControl = inject(NgControl, { optional: true });
743
+ get element() {
744
+ return this.elementRef.nativeElement;
745
+ }
746
+ get control() {
747
+ return this.ngControl ? this.ngControl.control : null;
748
+ }
749
+ ngOnInit() {
750
+ this.updateRequiredAttribute();
751
+ this.control?.statusChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {
752
+ this.updateRequiredAttribute();
753
+ });
754
+ fromEvent(this.element, 'blur')
755
+ .pipe(takeUntilDestroyed(this.destroyRef))
756
+ .subscribe(() => {
757
+ this.updateErrorAttribute();
758
+ });
759
+ // Add ndw-changed attribute when the input is changed and has a value
760
+ fromEvent(this.element, 'input')
761
+ .pipe(takeUntilDestroyed(this.destroyRef))
762
+ .subscribe(() => {
763
+ this.setSelectPlaceholderAttribute();
764
+ });
765
+ this.setSelectPlaceholderAttribute();
766
+ }
767
+ updateErrorAttribute(formFieldError) {
768
+ if (this.control) {
769
+ this.error = (this.control.invalid === true && this.control.touched) || !!formFieldError;
770
+ }
771
+ }
772
+ setSelectPlaceholderAttribute() {
773
+ if (this.element instanceof HTMLSelectElement) {
774
+ const isPlaceholderSelected = this.element.selectedIndex === 0 &&
775
+ this.element.options[this.element.selectedIndex].disabled;
776
+ this.element.toggleAttribute('ndw-placeholder', isPlaceholderSelected);
777
+ }
778
+ }
779
+ updateRequiredAttribute() {
780
+ if (this.control) {
781
+ // Mark element as required when the control has a 'required' validator.
782
+ // This will show an asterisk (*)
783
+ this.element.required = this.control.hasValidator(Validators.required);
784
+ }
785
+ }
786
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: InputDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
787
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.4", type: InputDirective, isStandalone: true, selector: "input[ndwInput], select[ndwInput], textarea[ndwInput]", ngImport: i0 });
788
+ }
789
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: InputDirective, decorators: [{
790
+ type: Directive,
791
+ args: [{
792
+ selector: 'input[ndwInput], select[ndwInput], textarea[ndwInput]',
793
+ }]
794
+ }] });
795
+
796
+ class DatepickerComponent {
797
+ mode = input('single', ...(ngDevMode ? [{ debugName: "mode" }] : []));
798
+ required = input(false, ...(ngDevMode ? [{ debugName: "required" }] : []));
799
+ disabled = model(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
800
+ placeholder = input('Selecteer een datum', ...(ngDevMode ? [{ debugName: "placeholder" }] : []));
801
+ openCalendarLabel = input('Open kalender', ...(ngDevMode ? [{ debugName: "openCalendarLabel" }] : []));
802
+ minDate = input(null, ...(ngDevMode ? [{ debugName: "minDate" }] : []));
803
+ maxDate = input(null, ...(ngDevMode ? [{ debugName: "maxDate" }] : []));
804
+ dateEnabledFilter = input(() => true, ...(ngDevMode ? [{ debugName: "dateEnabledFilter" }] : []));
805
+ dateWithIndicatorFilter = input(() => false, ...(ngDevMode ? [{ debugName: "dateWithIndicatorFilter" }] : []));
806
+ // Used by the FormFieldComponent to set the success and error state.
807
+ input = viewChild.required(InputDirective);
808
+ popoverTrigger = viewChild.required(PopoverTriggerDirective);
809
+ value = model([], ...(ngDevMode ? [{ debugName: "value" }] : []));
810
+ startAt = computed(() => {
811
+ const value = this.value();
812
+ return value.length > 0 ? value[value.length - 1] : null;
813
+ }, ...(ngDevMode ? [{ debugName: "startAt" }] : []));
814
+ formattedValue = computed(() => datesToInputValue(this.value(), this.mode()), ...(ngDevMode ? [{ debugName: "formattedValue" }] : []));
815
+ showTags = computed(() => this.mode() === 'multiple', ...(ngDevMode ? [{ debugName: "showTags" }] : []));
816
+ #onChange = noop;
817
+ onDateInput(input) {
818
+ const parsed = inputValueToDates(input, this.mode());
819
+ const merged = this.mode() === 'multiple' ? [...toDateArray(this.value()), ...parsed] : parsed;
820
+ const filtered = getUniqueDates(merged.filter((date) => {
821
+ const dateEnabledFilter = this.dateEnabledFilter();
822
+ const minDate = this.minDate() ?? date;
823
+ const maxDate = this.maxDate() ?? date;
824
+ return (dateEnabledFilter(date) &&
825
+ compareDates(date, minDate) >= 0 &&
826
+ compareDates(date, maxDate) <= 0);
827
+ }));
828
+ if (filtered.length > 0) {
829
+ this.onDateSelected(filtered);
830
+ }
831
+ else {
832
+ this.onDateSelected(null);
833
+ }
834
+ if (filtered.length === 0 || this.mode() === 'multiple') {
835
+ this.input().element.value = '';
836
+ }
837
+ }
838
+ removeDate(date) {
839
+ const filtered = this.value().filter((d) => d.getTime() !== date.getTime());
840
+ this.onDateSelected(filtered);
841
+ }
842
+ onDateSelected(date) {
843
+ const mode = this.mode();
844
+ const dates = toDateArray(date).sort(compareDates);
845
+ this.writeValue(dates);
846
+ this.#onChange(datesToOutputValue(dates, mode));
847
+ if (mode === 'single' || mode === 'month') {
848
+ this.#closeCalendar();
849
+ }
850
+ }
851
+ #closeCalendar() {
852
+ if (this.popoverTrigger().isOpen()) {
853
+ this.popoverTrigger().isOpen.set(false);
854
+ this.popoverTrigger().togglePopover();
855
+ }
856
+ }
857
+ writeValue(value) {
858
+ this.value.set(toDateArray(value));
859
+ }
860
+ registerOnChange(fn) {
861
+ this.#onChange = fn;
862
+ }
863
+ registerOnTouched(_fn) {
864
+ // noop
865
+ }
866
+ setDisabledState(isDisabled) {
867
+ this.disabled.set(isDisabled);
868
+ }
199
869
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: DatepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
200
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.4", type: DatepickerComponent, isStandalone: true, selector: "ndw-datepicker", providers: [provideNativeDateAdapter()], ngImport: i0, template: "<input ndwInput [matDatepicker]=\"picker\" placeholder=\"Select a date\" />\n<mat-datepicker-toggle [for]=\"picker\" />\n<mat-datepicker [dateClass]=\"dateClass\" panelClass=\"ndw-calendar\" #picker />\n", styles: [":host{position:relative}mat-datepicker-toggle{position:absolute;right:0;top:0;transform:scale(.75)}\n"], dependencies: [{ kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i1.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i1.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i1.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
870
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.4", type: DatepickerComponent, isStandalone: true, selector: "ndw-datepicker", inputs: { mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, openCalendarLabel: { classPropertyName: "openCalendarLabel", publicName: "openCalendarLabel", isSignal: true, isRequired: false, transformFunction: null }, minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null }, dateEnabledFilter: { classPropertyName: "dateEnabledFilter", publicName: "dateEnabledFilter", isSignal: true, isRequired: false, transformFunction: null }, dateWithIndicatorFilter: { classPropertyName: "dateWithIndicatorFilter", publicName: "dateWithIndicatorFilter", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { disabled: "disabledChange", value: "valueChange" }, providers: [
871
+ {
872
+ provide: NG_VALUE_ACCESSOR,
873
+ useExisting: forwardRef(() => DatepickerComponent),
874
+ multi: true,
875
+ },
876
+ ], viewQueries: [{ propertyName: "input", first: true, predicate: InputDirective, descendants: true, isSignal: true }, { propertyName: "popoverTrigger", first: true, predicate: PopoverTriggerDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<input\n ndwInput\n [value]=\"showTags() ? '' : formattedValue()\"\n (blur)=\"onDateInput($event.target.value)\"\n [min]=\"minDate()\"\n [max]=\"maxDate()\"\n [placeholder]=\"placeholder()\"\n [required]=\"required()\"\n [disabled]=\"disabled()\"\n/>\n\n<button\n ndwButton\n class=\"calendar-button\"\n type=\"button\"\n extra-small\n tertiary\n [ndwPopoverTrigger]=\"calendarTemplate\"\n [toggleOnClick]=\"true\"\n [attr.aria-label]=\"openCalendarLabel()\"\n [disabled]=\"disabled()\"\n>\n <ndw-icon>calendar_month</ndw-icon>\n</button>\n\n<ng-template #calendarTemplate>\n <ndw-calendar\n [ngModel]=\"value()\"\n (ngModelChange)=\"onDateSelected($event)\"\n [mode]=\"mode()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [startAt]=\"startAt()\"\n [dateEnabledFilter]=\"dateEnabledFilter()\"\n [dateWithIndicatorFilter]=\"dateWithIndicatorFilter()\"\n [elevated]=\"false\"\n />\n</ng-template>\n\n@if (showTags() && value().length > 0) {\n <div class=\"tag-container\">\n @for (value of value(); track value) {\n <ndw-tag (clicked)=\"removeDate(value)\">{{ value | date: 'd-M-yyyy' }}</ndw-tag>\n }\n </div>\n}\n", styles: [":host{position:relative;flex:1}input{padding-right:calc(var(--ndw-spacing-xl) + var(--ndw-spacing-2xs))}.calendar-button{position:absolute;margin:var(--ndw-spacing-xs);right:0;top:0}.calendar-button[disabled]{background-color:var(--ndw-color-grey-100);border-color:var(--ndw-color-grey-100);color:var(--ndw-color-grey-500)}.tag-container{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--ndw-spacing-xs);padding-left:var(--ndw-spacing-xs);padding-right:var(--ndw-spacing-xs);padding-bottom:var(--ndw-spacing-xs)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "directive", type: InputDirective, selector: "input[ndwInput], select[ndwInput], textarea[ndwInput]" }, { kind: "component", type: IconComponent, selector: "ndw-icon" }, { kind: "directive", type: PopoverTriggerDirective, selector: "[ndwPopoverTrigger]", inputs: ["popoverPosition", "ndwPopoverTrigger", "toggleOnClick", "isOpen"], outputs: ["popoverToggled", "isOpenChange"], exportAs: ["ndwPopoverTrigger"] }, { kind: "component", type: CalendarComponent, selector: "ndw-calendar", inputs: ["mode", "disabled", "minDate", "maxDate", "startAt", "dateEnabledFilter", "dateWithIndicatorFilter", "elevated"], outputs: ["disabledChange"] }, { kind: "component", type: TagComponent, selector: "ndw-tag", inputs: ["disabled", "suffixAriaLabel", "suffixIcon"], outputs: ["clicked"] }, { kind: "pipe", type: DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
201
877
  }
202
878
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: DatepickerComponent, decorators: [{
203
879
  type: Component,
204
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatDatepickerModule], providers: [provideNativeDateAdapter()], selector: 'ndw-datepicker', template: "<input ndwInput [matDatepicker]=\"picker\" placeholder=\"Select a date\" />\n<mat-datepicker-toggle [for]=\"picker\" />\n<mat-datepicker [dateClass]=\"dateClass\" panelClass=\"ndw-calendar\" #picker />\n", styles: [":host{position:relative}mat-datepicker-toggle{position:absolute;right:0;top:0;transform:scale(.75)}\n"] }]
880
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, imports: [
881
+ FormsModule,
882
+ MatDatepickerModule,
883
+ InputDirective,
884
+ IconComponent,
885
+ PopoverTriggerDirective,
886
+ CalendarComponent,
887
+ TagComponent,
888
+ DatePipe,
889
+ ], providers: [
890
+ {
891
+ provide: NG_VALUE_ACCESSOR,
892
+ useExisting: forwardRef(() => DatepickerComponent),
893
+ multi: true,
894
+ },
895
+ ], selector: 'ndw-datepicker', template: "<input\n ndwInput\n [value]=\"showTags() ? '' : formattedValue()\"\n (blur)=\"onDateInput($event.target.value)\"\n [min]=\"minDate()\"\n [max]=\"maxDate()\"\n [placeholder]=\"placeholder()\"\n [required]=\"required()\"\n [disabled]=\"disabled()\"\n/>\n\n<button\n ndwButton\n class=\"calendar-button\"\n type=\"button\"\n extra-small\n tertiary\n [ndwPopoverTrigger]=\"calendarTemplate\"\n [toggleOnClick]=\"true\"\n [attr.aria-label]=\"openCalendarLabel()\"\n [disabled]=\"disabled()\"\n>\n <ndw-icon>calendar_month</ndw-icon>\n</button>\n\n<ng-template #calendarTemplate>\n <ndw-calendar\n [ngModel]=\"value()\"\n (ngModelChange)=\"onDateSelected($event)\"\n [mode]=\"mode()\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [startAt]=\"startAt()\"\n [dateEnabledFilter]=\"dateEnabledFilter()\"\n [dateWithIndicatorFilter]=\"dateWithIndicatorFilter()\"\n [elevated]=\"false\"\n />\n</ng-template>\n\n@if (showTags() && value().length > 0) {\n <div class=\"tag-container\">\n @for (value of value(); track value) {\n <ndw-tag (clicked)=\"removeDate(value)\">{{ value | date: 'd-M-yyyy' }}</ndw-tag>\n }\n </div>\n}\n", styles: [":host{position:relative;flex:1}input{padding-right:calc(var(--ndw-spacing-xl) + var(--ndw-spacing-2xs))}.calendar-button{position:absolute;margin:var(--ndw-spacing-xs);right:0;top:0}.calendar-button[disabled]{background-color:var(--ndw-color-grey-100);border-color:var(--ndw-color-grey-100);color:var(--ndw-color-grey-500)}.tag-container{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--ndw-spacing-xs);padding-left:var(--ndw-spacing-xs);padding-right:var(--ndw-spacing-xs);padding-bottom:var(--ndw-spacing-xs)}\n"] }]
205
896
  }] });
206
897
 
207
898
  class ErrorComponent {
@@ -215,7 +906,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImpor
215
906
 
216
907
  const MIME_TYPE_MAP = {
217
908
  geojson: 'application/geo+json',
909
+ tsv: 'text/tab-separated-values',
218
910
  };
911
+
219
912
  class FileUploadComponent {
220
913
  allowedFileTypeRegex = input(...(ngDevMode ? [undefined, { debugName: "allowedFileTypeRegex" }] : []));
221
914
  disabled = model(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
@@ -224,6 +917,7 @@ class FileUploadComponent {
224
917
  dragOverText: 'Laat los om te uploaden',
225
918
  }, ...(ngDevMode ? [{ debugName: "fileUploadText" }] : []));
226
919
  maxFileSizeInBytes = input(1000000, ...(ngDevMode ? [{ debugName: "maxFileSizeInBytes" }] : []));
920
+ mimeTypeMap = input({}, ...(ngDevMode ? [{ debugName: "mimeTypeMap" }] : []));
227
921
  readonly = input(false, ...(ngDevMode ? [{ debugName: "readonly" }] : []));
228
922
  uploadDate = input('', ...(ngDevMode ? [{ debugName: "uploadDate" }] : []));
229
923
  draggingOver = model(false, ...(ngDevMode ? [{ debugName: "draggingOver" }] : []));
@@ -363,7 +1057,7 @@ class FileUploadComponent {
363
1057
  * Ensures that the provided File has a valid MIME type.
364
1058
  *
365
1059
  * NOTE: Some file extensions are not automatically mapped to a valid MIME type by the operating system.
366
- * In such cases, the MIME_TYPE_MAP is used to assign the correct MIME type.
1060
+ * In such cases, the MIME_TYPE_MAP in combination with the mimeTypeMap input is used to assign the correct MIME type.
367
1061
  */
368
1062
  ensureFileType(file) {
369
1063
  if (file.type?.trim()) {
@@ -375,7 +1069,8 @@ class FileUploadComponent {
375
1069
  return file;
376
1070
  }
377
1071
  const extension = nameParts.pop()?.toLowerCase();
378
- const mimeType = extension && MIME_TYPE_MAP[extension];
1072
+ const combinedMimeTypeMap = { ...MIME_TYPE_MAP, ...this.mimeTypeMap() };
1073
+ const mimeType = extension && combinedMimeTypeMap[extension];
379
1074
  if (mimeType) {
380
1075
  return new File([file], file.name, { type: mimeType, lastModified: file.lastModified });
381
1076
  }
@@ -383,7 +1078,7 @@ class FileUploadComponent {
383
1078
  return file;
384
1079
  }
385
1080
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: FileUploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
386
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.4", type: FileUploadComponent, isStandalone: true, selector: "ndw-file-upload", inputs: { allowedFileTypeRegex: { classPropertyName: "allowedFileTypeRegex", publicName: "allowedFileTypeRegex", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, fileUploadText: { classPropertyName: "fileUploadText", publicName: "fileUploadText", isSignal: true, isRequired: false, transformFunction: null }, maxFileSizeInBytes: { classPropertyName: "maxFileSizeInBytes", publicName: "maxFileSizeInBytes", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, uploadDate: { classPropertyName: "uploadDate", publicName: "uploadDate", isSignal: true, isRequired: false, transformFunction: null }, draggingOver: { classPropertyName: "draggingOver", publicName: "draggingOver", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, incorrectFileSize: { classPropertyName: "incorrectFileSize", publicName: "incorrectFileSize", isSignal: true, isRequired: false, transformFunction: null }, incorrectFileType: { classPropertyName: "incorrectFileType", publicName: "incorrectFileType", isSignal: true, isRequired: false, transformFunction: null }, selectedFile: { classPropertyName: "selectedFile", publicName: "selectedFile", isSignal: true, isRequired: false, transformFunction: null }, success: { classPropertyName: "success", publicName: "success", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { disabled: "disabledChange", draggingOver: "draggingOverChange", error: "errorChange", incorrectFileSize: "incorrectFileSizeChange", incorrectFileType: "incorrectFileTypeChange", selectedFile: "selectedFileChange", success: "successChange" }, host: { listeners: { "click": "onClick()", "dragenter": "onDragEnter($event)", "dragleave": "onDragLeave($event)", "dragover": "onDragOver($event)", "drop": "onDrop($event)", "keydown": "onKeyDown($event)" }, properties: { "attr.tabindex": "!this.canEdit() ? -1 : 0", "class.disabled": "disabled()", "class.dragging": "draggingOver()", "class.error": "error()", "class.file-selected": "!!selectedFile()", "class.readonly": "readonly()", "class.success": "success()" } }, providers: [
1081
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.4", type: FileUploadComponent, isStandalone: true, selector: "ndw-file-upload", inputs: { allowedFileTypeRegex: { classPropertyName: "allowedFileTypeRegex", publicName: "allowedFileTypeRegex", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, fileUploadText: { classPropertyName: "fileUploadText", publicName: "fileUploadText", isSignal: true, isRequired: false, transformFunction: null }, maxFileSizeInBytes: { classPropertyName: "maxFileSizeInBytes", publicName: "maxFileSizeInBytes", isSignal: true, isRequired: false, transformFunction: null }, mimeTypeMap: { classPropertyName: "mimeTypeMap", publicName: "mimeTypeMap", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, uploadDate: { classPropertyName: "uploadDate", publicName: "uploadDate", isSignal: true, isRequired: false, transformFunction: null }, draggingOver: { classPropertyName: "draggingOver", publicName: "draggingOver", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, incorrectFileSize: { classPropertyName: "incorrectFileSize", publicName: "incorrectFileSize", isSignal: true, isRequired: false, transformFunction: null }, incorrectFileType: { classPropertyName: "incorrectFileType", publicName: "incorrectFileType", isSignal: true, isRequired: false, transformFunction: null }, selectedFile: { classPropertyName: "selectedFile", publicName: "selectedFile", isSignal: true, isRequired: false, transformFunction: null }, success: { classPropertyName: "success", publicName: "success", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { disabled: "disabledChange", draggingOver: "draggingOverChange", error: "errorChange", incorrectFileSize: "incorrectFileSizeChange", incorrectFileType: "incorrectFileTypeChange", selectedFile: "selectedFileChange", success: "successChange" }, host: { listeners: { "click": "onClick()", "dragenter": "onDragEnter($event)", "dragleave": "onDragLeave($event)", "dragover": "onDragOver($event)", "drop": "onDrop($event)", "keydown": "onKeyDown($event)" }, properties: { "attr.tabindex": "!this.canEdit() ? -1 : 0", "class.disabled": "disabled()", "class.dragging": "draggingOver()", "class.error": "error()", "class.file-selected": "!!selectedFile()", "class.readonly": "readonly()", "class.success": "success()" } }, providers: [
387
1082
  {
388
1083
  provide: NG_VALUE_ACCESSOR,
389
1084
  useExisting: FileUploadComponent,
@@ -537,121 +1232,46 @@ class ClearSearchButtonComponent {
537
1232
  };
538
1233
  ngOnInit() {
539
1234
  this.onInput();
540
- this.input()?.element.addEventListener('input', this.onInput);
541
- }
542
- ngOnDestroy() {
543
- this.input()?.element.removeEventListener('input', this.onInput);
544
- }
545
- clear() {
546
- const inputElement = this.input()?.element;
547
- if (!inputElement) {
548
- return;
549
- }
550
- inputElement.value = '';
551
- inputElement.dispatchEvent(new Event('input'));
552
- this.inputValue.set('');
553
- this.buttonClicked.emit();
554
- }
555
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: ClearSearchButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
556
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.4", type: ClearSearchButtonComponent, isStandalone: true, selector: "ndw-clear-search-button", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, input: { classPropertyName: "input", publicName: "input", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { buttonClicked: "buttonClicked" }, ngImport: i0, template: "@if (inputValue() !== '') {\n <ndw-input-button [alternative]=\"true\" (buttonClicked)=\"clear()\">close</ndw-input-button>\n}\n", styles: [":host:empty{display:none}\n"], dependencies: [{ kind: "component", type: InputButtonComponent, selector: "ndw-input-button", inputs: ["disabled", "input", "ariaLabel", "alternative"], outputs: ["buttonClicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
557
- }
558
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: ClearSearchButtonComponent, decorators: [{
559
- type: Component,
560
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, imports: [InputButtonComponent], selector: 'ndw-clear-search-button', template: "@if (inputValue() !== '') {\n <ndw-input-button [alternative]=\"true\" (buttonClicked)=\"clear()\">close</ndw-input-button>\n}\n", styles: [":host:empty{display:none}\n"] }]
561
- }] });
562
-
563
- const INPUT_CONTAINER_CLASS = 'input-container';
564
-
565
- var FormFieldElement;
566
- (function (FormFieldElement) {
567
- FormFieldElement["Dropdown"] = "ndw-dropdown";
568
- FormFieldElement["Input"] = "input";
569
- FormFieldElement["Select"] = "select";
570
- FormFieldElement["Textarea"] = "textarea";
571
- })(FormFieldElement || (FormFieldElement = {}));
572
-
573
- class InfoComponent {
574
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: InfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
575
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.4", type: InfoComponent, isStandalone: true, selector: "ndw-info", ngImport: i0, template: "<ng-content />\n", styles: [":host{align-items:center;color:var(--ndw-color-grey-500);display:grid;font-family:var(--ndw-font-family-body);font-size:var(--ndw-font-size-xs);word-break:break-word}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
576
- }
577
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: InfoComponent, decorators: [{
578
- type: Component,
579
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ndw-info', template: "<ng-content />\n", styles: [":host{align-items:center;color:var(--ndw-color-grey-500);display:grid;font-family:var(--ndw-font-family-body);font-size:var(--ndw-font-size-xs);word-break:break-word}\n"] }]
580
- }] });
581
-
582
- class InputDirective {
583
- set disabled(disabled) {
584
- this.element.disabled = disabled;
585
- }
586
- get error() {
587
- return !!this.element.getAttribute('error');
588
- }
589
- set error(error) {
590
- this.element.toggleAttribute('error', error);
591
- }
592
- set success(success) {
593
- this.element.toggleAttribute('success', success);
594
- }
595
- set id(id) {
596
- this.element.id = id;
597
- }
598
- set ariaDescribedBy(id) {
599
- this.element.setAttribute('aria-describedby', id);
600
- }
601
- elementRef = inject(ElementRef);
602
- destroyRef = inject(DestroyRef);
603
- ngControl = inject(NgControl, { optional: true });
604
- get element() {
605
- return this.elementRef.nativeElement;
606
- }
607
- get control() {
608
- return this.ngControl ? this.ngControl.control : null;
609
- }
610
- ngOnInit() {
611
- this.updateRequiredAttribute();
612
- this.control?.statusChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {
613
- this.updateRequiredAttribute();
614
- });
615
- fromEvent(this.element, 'blur')
616
- .pipe(takeUntilDestroyed(this.destroyRef))
617
- .subscribe(() => {
618
- this.updateErrorAttribute();
619
- });
620
- // Add ndw-changed attribute when the input is changed and has a value
621
- fromEvent(this.element, 'input')
622
- .pipe(takeUntilDestroyed(this.destroyRef))
623
- .subscribe(() => {
624
- this.setSelectPlaceholderAttribute();
625
- });
626
- this.setSelectPlaceholderAttribute();
627
- }
628
- updateErrorAttribute(formFieldError) {
629
- if (this.control) {
630
- this.error = (this.control.invalid === true && this.control.touched) || !!formFieldError;
631
- }
632
- }
633
- setSelectPlaceholderAttribute() {
634
- if (this.element instanceof HTMLSelectElement) {
635
- const isPlaceholderSelected = this.element.selectedIndex === 0 &&
636
- this.element.options[this.element.selectedIndex].disabled;
637
- this.element.toggleAttribute('ndw-placeholder', isPlaceholderSelected);
638
- }
1235
+ this.input()?.element.addEventListener('input', this.onInput);
639
1236
  }
640
- updateRequiredAttribute() {
641
- if (this.control) {
642
- // Mark element as required when the control has a 'required' validator.
643
- // This will show an asterisk (*)
644
- this.element.required = this.control.hasValidator(Validators.required);
1237
+ ngOnDestroy() {
1238
+ this.input()?.element.removeEventListener('input', this.onInput);
1239
+ }
1240
+ clear() {
1241
+ const inputElement = this.input()?.element;
1242
+ if (!inputElement) {
1243
+ return;
645
1244
  }
1245
+ inputElement.value = '';
1246
+ inputElement.dispatchEvent(new Event('input'));
1247
+ this.inputValue.set('');
1248
+ this.buttonClicked.emit();
646
1249
  }
647
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: InputDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
648
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.4", type: InputDirective, isStandalone: true, selector: "input[ndwInput], select[ndwInput], textarea[ndwInput]", ngImport: i0 });
1250
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: ClearSearchButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1251
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.4", type: ClearSearchButtonComponent, isStandalone: true, selector: "ndw-clear-search-button", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, input: { classPropertyName: "input", publicName: "input", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { buttonClicked: "buttonClicked" }, ngImport: i0, template: "@if (inputValue() !== '') {\n <ndw-input-button [alternative]=\"true\" (buttonClicked)=\"clear()\">close</ndw-input-button>\n}\n", styles: [":host:empty{display:none}\n"], dependencies: [{ kind: "component", type: InputButtonComponent, selector: "ndw-input-button", inputs: ["disabled", "input", "ariaLabel", "alternative"], outputs: ["buttonClicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
649
1252
  }
650
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: InputDirective, decorators: [{
651
- type: Directive,
652
- args: [{
653
- selector: 'input[ndwInput], select[ndwInput], textarea[ndwInput]',
654
- }]
1253
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: ClearSearchButtonComponent, decorators: [{
1254
+ type: Component,
1255
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, imports: [InputButtonComponent], selector: 'ndw-clear-search-button', template: "@if (inputValue() !== '') {\n <ndw-input-button [alternative]=\"true\" (buttonClicked)=\"clear()\">close</ndw-input-button>\n}\n", styles: [":host:empty{display:none}\n"] }]
1256
+ }] });
1257
+
1258
+ const INPUT_CONTAINER_CLASS = 'input-container';
1259
+
1260
+ var FormFieldElement;
1261
+ (function (FormFieldElement) {
1262
+ FormFieldElement["Dropdown"] = "ndw-dropdown";
1263
+ FormFieldElement["Input"] = "input";
1264
+ FormFieldElement["Select"] = "select";
1265
+ FormFieldElement["Textarea"] = "textarea";
1266
+ })(FormFieldElement || (FormFieldElement = {}));
1267
+
1268
+ class InfoComponent {
1269
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: InfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1270
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.4", type: InfoComponent, isStandalone: true, selector: "ndw-info", ngImport: i0, template: "<ng-content />\n", styles: [":host{align-items:center;color:var(--ndw-color-grey-500);display:grid;font-family:var(--ndw-font-family-body);font-size:var(--ndw-font-size-xs);word-break:break-word}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1271
+ }
1272
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: InfoComponent, decorators: [{
1273
+ type: Component,
1274
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ndw-info', template: "<ng-content />\n", styles: [":host{align-items:center;color:var(--ndw-color-grey-500);display:grid;font-family:var(--ndw-font-family-body);font-size:var(--ndw-font-size-xs);word-break:break-word}\n"] }]
655
1275
  }] });
656
1276
 
657
1277
  class InputIconComponent {
@@ -695,190 +1315,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImpor
695
1315
  }]
696
1316
  }] });
697
1317
 
698
- class PopoverTriggerDirective {
699
- popoverToggled = new EventEmitter();
700
- popoverPosition = input('nextToTriggerButton', ...(ngDevMode ? [{ debugName: "popoverPosition" }] : []));
701
- popoverContent = input.required(...(ngDevMode ? [{ debugName: "popoverContent", alias: 'ndwPopoverTrigger' }] : [{ alias: 'ndwPopoverTrigger' }]));
702
- toggleOnClick = input(true, ...(ngDevMode ? [{ debugName: "toggleOnClick" }] : []));
703
- isOpen = model(false, ...(ngDevMode ? [{ debugName: "isOpen" }] : []));
704
- toggle() {
705
- if (!this.toggleOnClick()) {
706
- return;
707
- }
708
- this.isOpen.set(!this.isOpen());
709
- this.togglePopover();
710
- }
711
- destroyRef = inject(DestroyRef);
712
- elementRef = inject((ElementRef));
713
- overlay = inject(Overlay);
714
- viewContainerRef = inject(ViewContainerRef);
715
- focusTrapFactory = inject(ConfigurableFocusTrapFactory);
716
- overlayRef;
717
- ngOnDestroy() {
718
- this.isOpen.set(false);
719
- this.togglePopover();
720
- }
721
- togglePopover() {
722
- if (this.isOpen()) {
723
- this.open();
724
- }
725
- else {
726
- this.close();
727
- }
728
- this.popoverToggled.emit(this.isOpen());
729
- }
730
- open() {
731
- const positions = this.getPopoverPosition(this.popoverPosition());
732
- const templatePortal = new TemplatePortal(this.popoverContent(), this.viewContainerRef);
733
- this.overlayRef = this.overlay.create({
734
- hasBackdrop: true,
735
- backdropClass: 'cdk-overlay-transparent-backdrop',
736
- scrollStrategy: this.overlay.scrollStrategies.reposition(),
737
- positionStrategy: this.overlay
738
- .position()
739
- .flexibleConnectedTo(this.elementRef)
740
- .withPositions(positions),
741
- });
742
- this.overlayRef.attach(templatePortal);
743
- this.overlayRef.hostElement.addEventListener('click', (event) => {
744
- const target = event.target;
745
- if (this.nodeOrParentsHaveAttribute(target, 'ndwPopoverCloseTrigger')) {
746
- this.isOpen.set(false);
747
- this.togglePopover();
748
- }
749
- });
750
- this.trapFocus(this.overlayRef);
751
- this.closeOverlayOnEscapeKey(this.overlayRef);
752
- this.closeOverlayOnBackdropClick(this.overlayRef);
753
- }
754
- trapFocus(overlayRef) {
755
- this.focusTrapFactory.create(overlayRef.overlayElement);
756
- }
757
- closeOverlayOnEscapeKey(overlayRef) {
758
- overlayRef.overlayElement.onkeydown = (event) => {
759
- if (event.key === 'Escape') {
760
- this.isOpen.set(false);
761
- this.togglePopover();
762
- }
763
- };
764
- }
765
- nodeOrParentsHaveAttribute(node, attribute) {
766
- let next = node;
767
- while (next) {
768
- if (next.hasAttribute(attribute)) {
769
- return true;
770
- }
771
- next = next.parentElement;
772
- }
773
- return false;
774
- }
775
- closeOverlayOnBackdropClick(overlayRef) {
776
- overlayRef
777
- .backdropClick()
778
- .pipe(takeUntilDestroyed(this.destroyRef), take(1))
779
- .subscribe(() => {
780
- this.isOpen.set(false);
781
- this.togglePopover();
782
- });
783
- }
784
- close() {
785
- this.overlayRef?.dispose();
786
- }
787
- getPopoverPosition(popoverPosition) {
788
- let positions;
789
- if (popoverPosition === 'overTriggerButton') {
790
- positions = [
791
- {
792
- originX: 'start',
793
- originY: 'bottom',
794
- overlayX: 'start',
795
- overlayY: 'bottom',
796
- panelClass: 'ndw-popover-panel',
797
- },
798
- {
799
- originX: 'end',
800
- originY: 'bottom',
801
- overlayX: 'end',
802
- overlayY: 'bottom',
803
- panelClass: 'ndw-popover-panel',
804
- },
805
- {
806
- originX: 'start',
807
- originY: 'top',
808
- overlayX: 'start',
809
- overlayY: 'top',
810
- panelClass: 'ndw-popover-panel',
811
- },
812
- {
813
- originX: 'end',
814
- originY: 'top',
815
- overlayX: 'end',
816
- overlayY: 'top',
817
- panelClass: 'ndw-popover-panel',
818
- },
819
- ];
820
- }
821
- else {
822
- positions = [
823
- {
824
- originX: 'start',
825
- originY: 'bottom',
826
- overlayX: 'start',
827
- overlayY: 'top',
828
- offsetY: 4,
829
- panelClass: 'ndw-popover-panel',
830
- },
831
- {
832
- originX: 'end',
833
- originY: 'bottom',
834
- overlayX: 'end',
835
- overlayY: 'top',
836
- offsetY: 4,
837
- panelClass: 'ndw-popover-panel',
838
- },
839
- {
840
- originX: 'start',
841
- originY: 'top',
842
- overlayX: 'start',
843
- overlayY: 'bottom',
844
- offsetY: -4,
845
- panelClass: 'ndw-popover-panel',
846
- },
847
- {
848
- originX: 'end',
849
- originY: 'top',
850
- overlayX: 'end',
851
- overlayY: 'bottom',
852
- offsetY: -4,
853
- panelClass: 'ndw-popover-panel',
854
- },
855
- ];
856
- }
857
- return [
858
- ...positions,
859
- ...positions.map((position) => ({
860
- ...position,
861
- overlayX: 'center',
862
- overlayY: 'center',
863
- })),
864
- ];
865
- }
866
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: PopoverTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
867
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.4", type: PopoverTriggerDirective, isStandalone: true, selector: "[ndwPopoverTrigger]", inputs: { popoverPosition: { classPropertyName: "popoverPosition", publicName: "popoverPosition", isSignal: true, isRequired: false, transformFunction: null }, popoverContent: { classPropertyName: "popoverContent", publicName: "ndwPopoverTrigger", isSignal: true, isRequired: true, transformFunction: null }, toggleOnClick: { classPropertyName: "toggleOnClick", publicName: "toggleOnClick", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { popoverToggled: "popoverToggled", isOpen: "isOpenChange" }, host: { listeners: { "click": "toggle()" } }, exportAs: ["ndwPopoverTrigger"], ngImport: i0 });
868
- }
869
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: PopoverTriggerDirective, decorators: [{
870
- type: Directive,
871
- args: [{
872
- exportAs: 'ndwPopoverTrigger',
873
- host: {
874
- '(click)': 'toggle()',
875
- },
876
- selector: '[ndwPopoverTrigger]',
877
- }]
878
- }], propDecorators: { popoverToggled: [{
879
- type: Output
880
- }] } });
881
-
882
1318
  class OptionComponent {
883
1319
  value = input.required(...(ngDevMode ? [{ debugName: "value" }] : []));
884
1320
  label = input.required(...(ngDevMode ? [{ debugName: "label" }] : []));
@@ -1233,8 +1669,9 @@ class FormFieldComponent {
1233
1669
  tooltip = input('', ...(ngDevMode ? [{ debugName: "tooltip" }] : []));
1234
1670
  clearButtonClicked = output();
1235
1671
  monthInput = contentChild(MonthInputComponent, ...(ngDevMode ? [{ debugName: "monthInput" }] : []));
1672
+ dateInput = contentChild(DatepickerComponent, ...(ngDevMode ? [{ debugName: "dateInput" }] : []));
1236
1673
  regularInput = contentChild(InputDirective, ...(ngDevMode ? [{ debugName: "regularInput" }] : []));
1237
- input = computed(() => this.regularInput() ?? this.monthInput()?.input(), ...(ngDevMode ? [{ debugName: "input" }] : []));
1674
+ input = computed(() => this.regularInput() ?? this.monthInput()?.input() ?? this.dateInput()?.input(), ...(ngDevMode ? [{ debugName: "input" }] : []));
1238
1675
  inputType = computed(() => this.input()?.element.type, ...(ngDevMode ? [{ debugName: "inputType" }] : []));
1239
1676
  isSearchInput = computed(() => this.inputType() === 'search', ...(ngDevMode ? [{ debugName: "isSearchInput" }] : []));
1240
1677
  hasPickerButton = computed(() => this.inputType() === 'date' ||
@@ -1272,7 +1709,7 @@ class FormFieldComponent {
1272
1709
  input.ariaDescribedBy = this.descriptionUuid;
1273
1710
  }
1274
1711
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: FormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1275
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.4", type: FormFieldComponent, isStandalone: true, selector: "ndw-form-field", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, suffixAriaLabel: { classPropertyName: "suffixAriaLabel", publicName: "suffixAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, hideLabel: { classPropertyName: "hideLabel", publicName: "hideLabel", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, success: { classPropertyName: "success", publicName: "success", isSignal: true, isRequired: false, transformFunction: null }, info: { classPropertyName: "info", publicName: "info", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clearButtonClicked: "clearButtonClicked" }, queries: [{ propertyName: "monthInput", first: true, predicate: MonthInputComponent, descendants: true, isSignal: true }, { propertyName: "regularInput", first: true, predicate: InputDirective, descendants: true, isSignal: true }], ngImport: i0, template: "@if (input() === undefined) {\n <fieldset>\n <legend ndwLabel [class.sr-only]=\"hideLabel()\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\" />\n </legend>\n <ng-container *ngTemplateOutlet=\"fieldTemplate\" />\n </fieldset>\n} @else {\n <label ndwLabel [attr.for]=\"input() ? 'input-' + uuid : null\" [class.sr-only]=\"hideLabel()\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\" />\n </label>\n <ng-container *ngTemplateOutlet=\"fieldTemplate\" />\n}\n\n<ng-template #fieldTemplate>\n <div\n [class]=\"inputContainerClass\"\n [attr.success]=\"success() ? true : null\"\n [attr.error]=\"error() ? true : null\"\n >\n @if (isSearchInput()) {\n <ndw-input-icon>search</ndw-input-icon>\n }\n\n <ng-content />\n\n @if (isSearchInput()) {\n <ndw-clear-search-button\n [input]=\"input()\"\n [disabled]=\"disabled()\"\n [ariaLabel]=\"suffixAriaLabel()\"\n (buttonClicked)=\"clearButtonClicked.emit()\"\n />\n }\n @if (hasPickerButton()) {\n <ndw-picker-button\n [input]=\"input()\"\n [disabled]=\"disabled()\"\n [ariaLabel]=\"suffixAriaLabel()\"\n />\n }\n </div>\n\n @if (info(); as info) {\n <ndw-info [id]=\"descriptionUuid\">{{ info }}</ndw-info>\n }\n @if (error(); as error) {\n <ndw-error role=\"alert\" aria-live=\"polite\">{{ error }}</ndw-error>\n }\n @if (success(); as success) {\n <ndw-success role=\"alert\" aria-live=\"polite\">{{ success }}</ndw-success>\n }\n</ng-template>\n\n<ng-template #labelTemplate>\n <span class=\"required-label required\"> * </span>\n {{ label() }}\n @if (tooltip(); as tooltip) {\n <ndw-icon [ndwTooltip]=\"tooltip\">info</ndw-icon>\n }\n</ng-template>\n", styles: [":host{position:relative;display:grid;color:var(--ndw-color-grey-700);font-family:var(--ndw-font-family-body);font-size:var(--ndw-font-size-sm)}:host .required-label{display:none}:host:has([required]) .required-label{display:inline}fieldset{border:0;margin:0;padding:0}fieldset legend{padding-inline:0;word-break:break-word}label{word-break:break-word}ndw-error,ndw-success,ndw-info{margin-top:var(--ndw-spacing-2xs)}\n"], dependencies: [{ kind: "component", type: ClearSearchButtonComponent, selector: "ndw-clear-search-button", inputs: ["disabled", "input", "ariaLabel"], outputs: ["buttonClicked"] }, { kind: "component", type: ErrorComponent, selector: "ndw-error" }, { kind: "component", type: InfoComponent, selector: "ndw-info" }, { kind: "component", type: InputIconComponent, selector: "ndw-input-icon" }, { kind: "component", type: IconComponent, selector: "ndw-icon" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PickerButtonComponent, selector: "ndw-picker-button", inputs: ["disabled", "input", "ariaLabel", "required"] }, { kind: "component", type: SuccessComponent, selector: "ndw-success" }, { kind: "directive", type: TooltipDirective, selector: "[ndwTooltip]", inputs: ["ndwTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1712
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.4", type: FormFieldComponent, isStandalone: true, selector: "ndw-form-field", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, suffixAriaLabel: { classPropertyName: "suffixAriaLabel", publicName: "suffixAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, hideLabel: { classPropertyName: "hideLabel", publicName: "hideLabel", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, success: { classPropertyName: "success", publicName: "success", isSignal: true, isRequired: false, transformFunction: null }, info: { classPropertyName: "info", publicName: "info", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clearButtonClicked: "clearButtonClicked" }, queries: [{ propertyName: "monthInput", first: true, predicate: MonthInputComponent, descendants: true, isSignal: true }, { propertyName: "dateInput", first: true, predicate: DatepickerComponent, descendants: true, isSignal: true }, { propertyName: "regularInput", first: true, predicate: InputDirective, descendants: true, isSignal: true }], ngImport: i0, template: "@if (input() === undefined) {\n <fieldset>\n <legend ndwLabel [class.sr-only]=\"hideLabel()\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\" />\n </legend>\n <ng-container *ngTemplateOutlet=\"fieldTemplate\" />\n </fieldset>\n} @else {\n <label ndwLabel [attr.for]=\"input() ? 'input-' + uuid : null\" [class.sr-only]=\"hideLabel()\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\" />\n </label>\n <ng-container *ngTemplateOutlet=\"fieldTemplate\" />\n}\n\n<ng-template #fieldTemplate>\n <div\n [class]=\"inputContainerClass\"\n [attr.success]=\"success() ? true : null\"\n [attr.error]=\"error() ? true : null\"\n >\n @if (isSearchInput()) {\n <ndw-input-icon>search</ndw-input-icon>\n }\n\n <ng-content />\n\n @if (isSearchInput()) {\n <ndw-clear-search-button\n [input]=\"input()\"\n [disabled]=\"disabled()\"\n [ariaLabel]=\"suffixAriaLabel()\"\n (buttonClicked)=\"clearButtonClicked.emit()\"\n />\n }\n @if (hasPickerButton()) {\n <ndw-picker-button\n [input]=\"input()\"\n [disabled]=\"disabled()\"\n [ariaLabel]=\"suffixAriaLabel()\"\n />\n }\n </div>\n\n @if (info(); as info) {\n <ndw-info [id]=\"descriptionUuid\">{{ info }}</ndw-info>\n }\n @if (error(); as error) {\n <ndw-error role=\"alert\" aria-live=\"polite\">{{ error }}</ndw-error>\n }\n @if (success(); as success) {\n <ndw-success role=\"alert\" aria-live=\"polite\">{{ success }}</ndw-success>\n }\n</ng-template>\n\n<ng-template #labelTemplate>\n <span class=\"required-label required\"> * </span>\n {{ label() }}\n @if (tooltip(); as tooltip) {\n <ndw-icon [ndwTooltip]=\"tooltip\">info</ndw-icon>\n }\n</ng-template>\n", styles: [":host{position:relative;display:grid;color:var(--ndw-color-grey-700);font-family:var(--ndw-font-family-body);font-size:var(--ndw-font-size-sm)}:host .required-label{display:none}:host:has([required]) .required-label{display:inline}fieldset{border:0;margin:0;padding:0}fieldset legend{padding-inline:0;word-break:break-word}label{word-break:break-word}ndw-error,ndw-success,ndw-info{margin-top:var(--ndw-spacing-2xs)}\n"], dependencies: [{ kind: "component", type: ClearSearchButtonComponent, selector: "ndw-clear-search-button", inputs: ["disabled", "input", "ariaLabel"], outputs: ["buttonClicked"] }, { kind: "component", type: ErrorComponent, selector: "ndw-error" }, { kind: "component", type: InfoComponent, selector: "ndw-info" }, { kind: "component", type: InputIconComponent, selector: "ndw-input-icon" }, { kind: "component", type: IconComponent, selector: "ndw-icon" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PickerButtonComponent, selector: "ndw-picker-button", inputs: ["disabled", "input", "ariaLabel", "required"] }, { kind: "component", type: SuccessComponent, selector: "ndw-success" }, { kind: "directive", type: TooltipDirective, selector: "[ndwTooltip]", inputs: ["ndwTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1276
1713
  }
1277
1714
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: FormFieldComponent, decorators: [{
1278
1715
  type: Component,
@@ -1548,13 +1985,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImpor
1548
1985
 
1549
1986
  class PillComponent extends CorePillComponent {
1550
1987
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: PillComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1551
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.4", type: PillComponent, isStandalone: true, selector: "ndw-pill", host: { classAttribute: "ndw-paragraph-md" }, usesInheritance: true, ngImport: i0, template: "<div>\n <ng-content />\n</div>\n", styles: [":host{display:inline-block;line-height:1rem;border-radius:var(--pill-border-radius);padding:var(--pill-padding-vertical) var(--pill-padding-horizontal);max-width:20rem}:host>div{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}:host.green{color:var(--pill-green-color);background-color:var(--pill-green-background-color)}:host.gray{color:var(--pill-gray-color);background-color:var(--pill-gray-background-color)}:host.blue{color:var(--pill-blue-color);background-color:var(--pill-blue-background-color)}:host.purple{color:var(--pill-purple-color);background-color:var(--pill-purple-background-color)}:host.yellow{color:var(--pill-yellow-color);background-color:var(--pill-yellow-background-color)}:host.red{color:var(--pill-red-color);background-color:var(--pill-red-background-color)}:host{--pill-border-radius: var(--ndw-border-radius-sm);--pill-padding-vertical: var(--ndw-spacing-3xs);--pill-padding-horizontal: var(--ndw-spacing-2xs);--pill-green-color: var(--ndw-color-positive-600);--pill-green-background-color: var(--ndw-color-positive-100);--pill-gray-color: var(--ndw-color-grey-600);--pill-gray-background-color: var(--ndw-color-grey-200);--pill-blue-color: var(--ndw-color-info-500);--pill-blue-background-color: var(--ndw-color-info-100);--pill-purple-color: var(--ndw-color-alternative-500);--pill-purple-background-color: var(--ndw-color-alternative-100);--pill-yellow-color: var(--ndw-color-grey-600);--pill-yellow-background-color: var(--ndw-color-warning-100);--pill-red-color: var(--ndw-color-critical-500);--pill-red-background-color: var(--ndw-color-critical-100)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1988
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.4", type: PillComponent, isStandalone: true, selector: "ndw-pill", host: { classAttribute: "ndw-paragraph-md" }, usesInheritance: true, ngImport: i0, template: "<div>\n <ng-content />\n</div>\n", styles: [":host{display:inline-block;line-height:1rem;border-radius:var(--pill-border-radius);font-weight:var(--pill-font-weight);padding:var(--pill-padding-vertical) var(--pill-padding-horizontal);max-width:20rem}:host>div{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}:host.green{color:var(--pill-green-color);background-color:var(--pill-green-background-color)}:host.gray{color:var(--pill-gray-color);background-color:var(--pill-gray-background-color)}:host.blue{color:var(--pill-blue-color);background-color:var(--pill-blue-background-color)}:host.purple{color:var(--pill-purple-color);background-color:var(--pill-purple-background-color)}:host.yellow{color:var(--pill-yellow-color);background-color:var(--pill-yellow-background-color)}:host.red{color:var(--pill-red-color);background-color:var(--pill-red-background-color)}:host{--pill-border-radius: var(--ndw-border-radius-sm);--pill-padding-vertical: var(--ndw-spacing-3xs);--pill-padding-horizontal: var(--ndw-spacing-2xs);--pill-font-weight: var(--ndw-font-weight-regular);--pill-green-color: var(--ndw-color-positive-600);--pill-green-background-color: var(--ndw-color-positive-100);--pill-gray-color: var(--ndw-color-grey-600);--pill-gray-background-color: var(--ndw-color-grey-200);--pill-blue-color: var(--ndw-color-info-500);--pill-blue-background-color: var(--ndw-color-info-100);--pill-purple-color: var(--ndw-color-alternative-500);--pill-purple-background-color: var(--ndw-color-alternative-100);--pill-yellow-color: var(--ndw-color-grey-600);--pill-yellow-background-color: var(--ndw-color-warning-100);--pill-red-color: var(--ndw-color-critical-500);--pill-red-background-color: var(--ndw-color-critical-100)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1552
1989
  }
1553
1990
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: PillComponent, decorators: [{
1554
1991
  type: Component,
1555
1992
  args: [{ changeDetection: ChangeDetectionStrategy.OnPush, host: {
1556
1993
  class: 'ndw-paragraph-md',
1557
- }, selector: 'ndw-pill', template: "<div>\n <ng-content />\n</div>\n", styles: [":host{display:inline-block;line-height:1rem;border-radius:var(--pill-border-radius);padding:var(--pill-padding-vertical) var(--pill-padding-horizontal);max-width:20rem}:host>div{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}:host.green{color:var(--pill-green-color);background-color:var(--pill-green-background-color)}:host.gray{color:var(--pill-gray-color);background-color:var(--pill-gray-background-color)}:host.blue{color:var(--pill-blue-color);background-color:var(--pill-blue-background-color)}:host.purple{color:var(--pill-purple-color);background-color:var(--pill-purple-background-color)}:host.yellow{color:var(--pill-yellow-color);background-color:var(--pill-yellow-background-color)}:host.red{color:var(--pill-red-color);background-color:var(--pill-red-background-color)}:host{--pill-border-radius: var(--ndw-border-radius-sm);--pill-padding-vertical: var(--ndw-spacing-3xs);--pill-padding-horizontal: var(--ndw-spacing-2xs);--pill-green-color: var(--ndw-color-positive-600);--pill-green-background-color: var(--ndw-color-positive-100);--pill-gray-color: var(--ndw-color-grey-600);--pill-gray-background-color: var(--ndw-color-grey-200);--pill-blue-color: var(--ndw-color-info-500);--pill-blue-background-color: var(--ndw-color-info-100);--pill-purple-color: var(--ndw-color-alternative-500);--pill-purple-background-color: var(--ndw-color-alternative-100);--pill-yellow-color: var(--ndw-color-grey-600);--pill-yellow-background-color: var(--ndw-color-warning-100);--pill-red-color: var(--ndw-color-critical-500);--pill-red-background-color: var(--ndw-color-critical-100)}\n"] }]
1994
+ }, selector: 'ndw-pill', template: "<div>\n <ng-content />\n</div>\n", styles: [":host{display:inline-block;line-height:1rem;border-radius:var(--pill-border-radius);font-weight:var(--pill-font-weight);padding:var(--pill-padding-vertical) var(--pill-padding-horizontal);max-width:20rem}:host>div{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}:host.green{color:var(--pill-green-color);background-color:var(--pill-green-background-color)}:host.gray{color:var(--pill-gray-color);background-color:var(--pill-gray-background-color)}:host.blue{color:var(--pill-blue-color);background-color:var(--pill-blue-background-color)}:host.purple{color:var(--pill-purple-color);background-color:var(--pill-purple-background-color)}:host.yellow{color:var(--pill-yellow-color);background-color:var(--pill-yellow-background-color)}:host.red{color:var(--pill-red-color);background-color:var(--pill-red-background-color)}:host{--pill-border-radius: var(--ndw-border-radius-sm);--pill-padding-vertical: var(--ndw-spacing-3xs);--pill-padding-horizontal: var(--ndw-spacing-2xs);--pill-font-weight: var(--ndw-font-weight-regular);--pill-green-color: var(--ndw-color-positive-600);--pill-green-background-color: var(--ndw-color-positive-100);--pill-gray-color: var(--ndw-color-grey-600);--pill-gray-background-color: var(--ndw-color-grey-200);--pill-blue-color: var(--ndw-color-info-500);--pill-blue-background-color: var(--ndw-color-info-100);--pill-purple-color: var(--ndw-color-alternative-500);--pill-purple-background-color: var(--ndw-color-alternative-100);--pill-yellow-color: var(--ndw-color-grey-600);--pill-yellow-background-color: var(--ndw-color-warning-100);--pill-red-color: var(--ndw-color-critical-500);--pill-red-background-color: var(--ndw-color-critical-100)}\n"] }]
1558
1995
  }] });
1559
1996
 
1560
1997
  class ListItemComponent {
@@ -1610,7 +2047,7 @@ class ListItemComponent {
1610
2047
  this.expanded.update((expanded) => !expanded);
1611
2048
  }
1612
2049
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: ListItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1613
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.4", type: ListItemComponent, isStandalone: true, selector: "ndw-list-item", inputs: { active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, badgeValue: { classPropertyName: "badgeValue", publicName: "badgeValue", isSignal: true, isRequired: false, transformFunction: null }, buttonIcon: { classPropertyName: "buttonIcon", publicName: "buttonIcon", isSignal: true, isRequired: false, transformFunction: null }, buttonLabel: { classPropertyName: "buttonLabel", publicName: "buttonLabel", isSignal: true, isRequired: false, transformFunction: null }, checkable: { classPropertyName: "checkable", publicName: "checkable", isSignal: true, isRequired: false, transformFunction: null }, checkType: { classPropertyName: "checkType", publicName: "checkType", isSignal: true, isRequired: false, transformFunction: null }, collapsible: { classPropertyName: "collapsible", publicName: "collapsible", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, indented: { classPropertyName: "indented", publicName: "indented", isSignal: true, isRequired: false, transformFunction: null }, pillColor: { classPropertyName: "pillColor", publicName: "pillColor", isSignal: true, isRequired: false, transformFunction: null }, pillLabel: { classPropertyName: "pillLabel", publicName: "pillLabel", isSignal: true, isRequired: false, transformFunction: null }, prefixIcon: { classPropertyName: "prefixIcon", publicName: "prefixIcon", isSignal: true, isRequired: false, transformFunction: null }, showButton: { classPropertyName: "showButton", publicName: "showButton", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, expanded: { classPropertyName: "expanded", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { active: "activeChange", buttonClicked: "buttonClicked", checked: "checkedChange", expanded: "expandedChange" }, host: { attributes: { "role": "listitem" } }, viewQueries: [{ propertyName: "radioButton", first: true, predicate: RadioButtonComponent, descendants: true, isSignal: true }], ngImport: i0, template: "@if (actionable()) {\n <button\n ndw-list-item\n class=\"actionable\"\n [attr.active]=\"active() || undefined\"\n [attr.aria-expanded]=\"expanded()\"\n [attr.disabled]=\"disabled() || undefined\"\n [class.indented]=\"indented()\"\n (click)=\"onListItemSelect()\"\n >\n @if (checkable()) {\n @if (checkType() === 'radio') {\n <ndw-radio-button\n [disabled]=\"disabled()\"\n [class.readonly]=\"!collapsible() && !indented()\"\n [(checked)]=\"checked\"\n (click)=\"onCheckClick($event)\"\n />\n } @else {\n <ndw-checkbox\n [disabled]=\"disabled()\"\n [class.readonly]=\"!collapsible() && !indented()\"\n [(checked)]=\"checked\"\n (click)=\"onCheckClick($event)\"\n />\n }\n }\n <ng-container *ngTemplateOutlet=\"listItem\" />\n </button>\n} @else {\n <div ndw-list-item [class.indented]=\"indented()\">\n <ng-container *ngTemplateOutlet=\"listItem\" />\n </div>\n}\n\n<ng-template #listItem>\n @if (prefixIcon(); as prefix) {\n <ndw-icon class=\"affix\">{{ prefix }}</ndw-icon>\n }\n <ng-content />\n <div class=\"content\">\n @if (title(); as title) {\n <span class=\"title\">{{ title }}</span>\n }\n @if (subtitle(); as subtitle) {\n {{ subtitle }}\n }\n </div>\n @if (pillLabel(); as pillLabel) {\n <ndw-pill [color]=\"pillColor()\">{{ pillLabel }}</ndw-pill>\n }\n @if (badgeValue(); as badgeValue) {\n <ndw-badge [value]=\"badgeValue\" />\n }\n @if (showButton()) {\n <button\n ndwButton\n tertiary\n class=\"suffix-button\"\n [attr.aria-label]=\"buttonLabel()\"\n [attr.disabled]=\"disabled() || undefined\"\n (click)=\"onButtonClick($event)\"\n >\n <ndw-icon>{{ buttonIcon() }}</ndw-icon>\n </button>\n }\n @if (collapsible()) {\n <ndw-icon class=\"affix\" [class.expanded]=\"expanded()\">keyboard_arrow_down</ndw-icon>\n }\n</ng-template>\n", styles: ["[ndw-list-item]{align-items:center;background-color:var(--list-item-background-color);border:none;border-radius:var(--list-item-border-radius);color:var(--list-item-color);display:flex;font-size:var(--list-item-font-size);gap:var(--list-item-gap);min-height:var(--list-item-min-height);padding:var(--list-item-padding);text-decoration:none;transition:background-color var(--list-item-animation-speed) ease-in-out}[ndw-list-item]:hover,[ndw-list-item][active]{background-color:var(--list-item-hover-background-color)}[ndw-list-item][disabled],[ndw-list-item][aria-disabled]{color:var(--list-item-disabled-color);pointer-events:none;-webkit-user-select:none;user-select:none}[ndw-list-item]{--list-item-animation-speed: var(--ndw-animation-speed-fast);--list-item-background-color: var(--ndw-color-white);--list-item-border-radius: var(--ndw-border-radius-sm);--list-item-color: var(--ndw-color-grey-700);--list-item-disabled-background-color: var(--ndw-color-grey-100);--list-item-disabled-color: var(--ndw-color-grey-400);--list-item-font-size: initial;--list-item-gap: var(--ndw-spacing-sm);--list-item-hover-background-color: var(--ndw-color-grey-100);--list-item-min-height: var(--ndw-spacing-2xl);--list-item-padding: var(--ndw-spacing-xs) var(--ndw-spacing-sm);width:100%}[ndw-list-item]:not(.actionable){--list-item-hover-background-color: var(--ndw-color-white)}[ndw-list-item] ndw-checkbox.readonly,[ndw-list-item] ndw-radio-button.readonly{pointer-events:none;-webkit-user-select:none;user-select:none}[ndw-list-item] .affix{color:var(--ndw-color-primary);transition:transform var(--list-item-animation-speed) ease-in-out}[ndw-list-item] .affix.expanded{transform:var(--ndw-rotate-half)}[ndw-list-item] .content{display:grid;justify-content:stretch;text-align:left;width:100%}[ndw-list-item] .content .title{font-weight:var(--ndw-font-weight-bold)}[ndw-list-item] .suffix-button{padding-inline:var(--ndw-spacing-3xs)}[ndw-list-item] .suffix-button ndw-icon{font-size:var(--ndw-spacing-lg)}[ndw-list-item] .suffix-button[disabled]{background-color:transparent;border-color:transparent}[ndw-list-item].indented{background-color:var(--ndw-color-grey-100);border-radius:0;padding-inline-start:var(--ndw-spacing-3xl)}[ndw-list-item].indented:hover{background-color:var(--ndw-color-grey-300)}[ndw-list-item][disabled] ndw-icon{color:var(--list-item-disabled-color)}\n"], dependencies: [{ kind: "component", type: BadgeComponent, selector: "ndw-badge", inputs: ["value", "ariaLabel", "displayLargeNumbers"] }, { kind: "component", type: CheckboxComponent, selector: "ndw-checkbox", inputs: ["switch", "success"] }, { kind: "component", type: IconComponent, selector: "ndw-icon" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PillComponent, selector: "ndw-pill" }, { kind: "component", type: RadioButtonComponent, selector: "ndw-radio-button", inputs: ["checked", "disabled", "error", "success", "required", "value"], outputs: ["checkedChange", "disabledChange", "valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2050
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.4", type: ListItemComponent, isStandalone: true, selector: "ndw-list-item", inputs: { active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, badgeValue: { classPropertyName: "badgeValue", publicName: "badgeValue", isSignal: true, isRequired: false, transformFunction: null }, buttonIcon: { classPropertyName: "buttonIcon", publicName: "buttonIcon", isSignal: true, isRequired: false, transformFunction: null }, buttonLabel: { classPropertyName: "buttonLabel", publicName: "buttonLabel", isSignal: true, isRequired: false, transformFunction: null }, checkable: { classPropertyName: "checkable", publicName: "checkable", isSignal: true, isRequired: false, transformFunction: null }, checkType: { classPropertyName: "checkType", publicName: "checkType", isSignal: true, isRequired: false, transformFunction: null }, collapsible: { classPropertyName: "collapsible", publicName: "collapsible", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, indented: { classPropertyName: "indented", publicName: "indented", isSignal: true, isRequired: false, transformFunction: null }, pillColor: { classPropertyName: "pillColor", publicName: "pillColor", isSignal: true, isRequired: false, transformFunction: null }, pillLabel: { classPropertyName: "pillLabel", publicName: "pillLabel", isSignal: true, isRequired: false, transformFunction: null }, prefixIcon: { classPropertyName: "prefixIcon", publicName: "prefixIcon", isSignal: true, isRequired: false, transformFunction: null }, showButton: { classPropertyName: "showButton", publicName: "showButton", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, expanded: { classPropertyName: "expanded", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { active: "activeChange", buttonClicked: "buttonClicked", checked: "checkedChange", expanded: "expandedChange" }, host: { attributes: { "role": "listitem" } }, viewQueries: [{ propertyName: "radioButton", first: true, predicate: RadioButtonComponent, descendants: true, isSignal: true }], ngImport: i0, template: "@if (actionable()) {\n <button\n ndw-list-item\n class=\"actionable\"\n [attr.active]=\"active() || undefined\"\n [attr.aria-expanded]=\"expanded()\"\n [attr.disabled]=\"disabled() || undefined\"\n [class.indented]=\"indented()\"\n (click)=\"onListItemSelect()\"\n >\n @if (checkable()) {\n @if (checkType() === 'radio') {\n <ndw-radio-button\n [disabled]=\"disabled()\"\n [class.readonly]=\"!collapsible() && !indented()\"\n [(checked)]=\"checked\"\n (click)=\"onCheckClick($event)\"\n />\n } @else {\n <ndw-checkbox\n [disabled]=\"disabled()\"\n [class.readonly]=\"!collapsible() && !indented()\"\n [(checked)]=\"checked\"\n (click)=\"onCheckClick($event)\"\n />\n }\n }\n <ng-container *ngTemplateOutlet=\"listItem\" />\n </button>\n} @else {\n <div ndw-list-item [class.indented]=\"indented()\">\n <ng-container *ngTemplateOutlet=\"listItem\" />\n </div>\n}\n\n<ng-template #listItem>\n @if (prefixIcon(); as prefix) {\n <ndw-icon class=\"affix\">{{ prefix }}</ndw-icon>\n }\n <ng-content />\n <div class=\"content\">\n @if (title(); as title) {\n <span class=\"title\">{{ title }}</span>\n }\n @if (subtitle(); as subtitle) {\n {{ subtitle }}\n }\n </div>\n @if (pillLabel(); as pillLabel) {\n <ndw-pill [color]=\"pillColor()\">{{ pillLabel }}</ndw-pill>\n }\n @if (badgeValue(); as badgeValue) {\n <ndw-badge [value]=\"badgeValue\" />\n }\n @if (showButton()) {\n <button\n ndwButton\n tertiary\n class=\"suffix-button\"\n [attr.aria-label]=\"buttonLabel()\"\n [attr.disabled]=\"disabled() || undefined\"\n (click)=\"onButtonClick($event)\"\n >\n <ndw-icon>{{ buttonIcon() }}</ndw-icon>\n </button>\n }\n @if (collapsible()) {\n <ndw-icon class=\"affix\" [class.expanded]=\"expanded()\">keyboard_arrow_down</ndw-icon>\n }\n</ng-template>\n", styles: ["[ndw-list-item]{align-items:center;background-color:var(--list-item-background-color);border:none;border-radius:var(--list-item-border-radius);color:var(--list-item-color);display:flex;font-size:var(--list-item-font-size);gap:var(--list-item-gap);min-height:var(--list-item-min-height);padding:var(--list-item-padding);text-decoration:none;transition:background-color var(--list-item-animation-speed) ease-in-out}[ndw-list-item]:hover,[ndw-list-item][active]{background-color:var(--list-item-hover-background-color)}[ndw-list-item][disabled],[ndw-list-item][aria-disabled]{color:var(--list-item-disabled-color);pointer-events:none;-webkit-user-select:none;user-select:none}[ndw-list-item]{--list-item-animation-speed: var(--ndw-animation-speed-fast);--list-item-background-color: var(--ndw-color-white);--list-item-border-radius: var(--ndw-border-radius-sm);--list-item-color: var(--ndw-color-grey-700);--list-item-disabled-background-color: var(--ndw-color-grey-100);--list-item-disabled-color: var(--ndw-color-grey-400);--list-item-font-size: initial;--list-item-gap: var(--ndw-spacing-sm);--list-item-hover-background-color: var(--ndw-color-grey-100);--list-item-min-height: var(--ndw-spacing-2xl);--list-item-padding: var(--ndw-spacing-xs) var(--ndw-spacing-sm);width:100%}[ndw-list-item]:not(.actionable){--list-item-hover-background-color: var(--ndw-color-white)}[ndw-list-item] ndw-checkbox.readonly,[ndw-list-item] ndw-radio-button.readonly{pointer-events:none;-webkit-user-select:none;user-select:none}[ndw-list-item] .affix{color:var(--ndw-color-primary);transition:transform var(--list-item-animation-speed) ease-in-out}[ndw-list-item] .affix.expanded{transform:var(--ndw-rotate-half)}[ndw-list-item] .content{display:grid;justify-content:stretch;text-align:left;width:100%}[ndw-list-item] .content .title{font-weight:var(--ndw-font-weight-bold)}[ndw-list-item] .suffix-button{padding-inline:var(--ndw-spacing-3xs)}[ndw-list-item] .suffix-button ndw-icon{font-size:var(--ndw-spacing-lg)}[ndw-list-item] .suffix-button[disabled]{background-color:transparent;border-color:transparent}[ndw-list-item].indented{background-color:var(--ndw-color-grey-100);border-radius:0;padding-inline-start:var(--ndw-spacing-3xl)}[ndw-list-item].indented:hover{background-color:var(--ndw-color-grey-300)}[ndw-list-item][disabled] ndw-icon{color:var(--list-item-disabled-color)}\n"], dependencies: [{ kind: "component", type: BadgeComponent, selector: "ndw-badge" }, { kind: "component", type: CheckboxComponent, selector: "ndw-checkbox", inputs: ["switch", "success"] }, { kind: "component", type: IconComponent, selector: "ndw-icon" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PillComponent, selector: "ndw-pill" }, { kind: "component", type: RadioButtonComponent, selector: "ndw-radio-button", inputs: ["checked", "disabled", "error", "success", "required", "value"], outputs: ["checkedChange", "disabledChange", "valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1614
2051
  }
1615
2052
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: ListItemComponent, decorators: [{
1616
2053
  type: Component,
@@ -1987,30 +2424,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImpor
1987
2424
  args: [{ changeDetection: ChangeDetectionStrategy.OnPush, imports: [CardComponent, CardContentComponent], selector: 'ndw-dashboard-card', template: "<a [href]=\"link()\" [target]=\"linkTarget()\" rel=\"noreferrer noopener\" [title]=\"title()\">\n <ndw-card class=\"card\">\n <ndw-card-content class=\"card-content\">\n <img [src]=\"imgSource()\" [alt]=\"title()\" />\n <span class=\"ndw-heading-sm title\">{{ title() }}</span>\n <div class=\"ndw-paragraph-md description\"><ng-content /></div>\n </ndw-card-content>\n </ndw-card>\n</a>\n", styles: [":host{display:block}a{text-decoration:none}.card{padding:var(--ndw-spacing-3xl);transition-property:color,background-color;transition-duration:var(--ndw-animation-speed-fast);transition-timing-function:ease-out}.card:hover{background-color:var(--ndw-color-secondary-050);transition-property:color,background-color;transition-duration:var(--ndw-animation-speed-fast);transition-timing-function:ease-out}.card:hover .title{color:var(--ndw-color-secondary-500);transition-property:color,background-color;transition-duration:var(--ndw-animation-speed-fast);transition-timing-function:ease-out}.card:active{background-color:var(--ndw-color-secondary-100);transition-property:color,background-color;transition-duration:var(--ndw-animation-speed-fast);transition-timing-function:ease-out}.card:active .title{color:var(--ndw-color-secondary-600);transition-property:color,background-color;transition-duration:var(--ndw-animation-speed-fast);transition-timing-function:ease-out}.card:active .description{color:var(--ndw-color-grey-700);transition-property:color,background-color;transition-duration:var(--ndw-animation-speed-fast);transition-timing-function:ease-out}.card-content{display:flex;flex-direction:column;align-items:center;gap:var(--ndw-spacing-xs)}.card-content img{height:50px;width:50px;object-fit:contain}.card-content .title{text-align:center;color:var(--ndw-color-grey-700);width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-content .description{text-align:center;color:var(--ndw-color-grey-500);width:100%;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;line-clamp:2;-webkit-line-clamp:2}\n"] }]
1988
2425
  }] });
1989
2426
 
1990
- class TagComponent {
1991
- /**
1992
- * Disables the tag
1993
- */
1994
- disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
1995
- /**
1996
- * Aria label for the interactive button
1997
- */
1998
- suffixAriaLabel = input('Verwijder', ...(ngDevMode ? [{ debugName: "suffixAriaLabel" }] : []));
1999
- /**
2000
- * The name of the icon to display
2001
- */
2002
- suffixIcon = input('close', ...(ngDevMode ? [{ debugName: "suffixIcon" }] : []));
2003
- clicked = output();
2004
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: TagComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2005
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.2.4", type: TagComponent, isStandalone: true, selector: "ndw-tag", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, suffixAriaLabel: { classPropertyName: "suffixAriaLabel", publicName: "suffixAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, suffixIcon: { classPropertyName: "suffixIcon", publicName: "suffixIcon", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clicked: "clicked" }, host: { properties: { "class.disabled": "disabled()" } }, ngImport: i0, template: "<ng-content />\n<button type=\"button\" [disabled]=\"disabled()\" (click)=\"clicked.emit($event)\">\n <span class=\"sr-only\">{{ suffixAriaLabel() }}</span>\n <ndw-icon>{{ suffixIcon() }}</ndw-icon>\n</button>\n", styles: [":host{position:relative;overflow:hidden;display:inline-grid;grid-template-columns:auto 1fr;align-items:center;height:1.5rem;padding:0 var(--ndw-spacing-2xs) 0 var(--ndw-spacing-xs);border:var(--ndw-border-size-sm) solid var(--ndw-color-primary);border-radius:45px;outline:none;color:var(--ndw-color-primary);background-color:var(--ndw-color-primary-050);font-size:var(--ndw-font-size-sm);cursor:pointer;transition:var(--ndw-animation-speed-fast) ease-out}:host:hover{border:var(--ndw-border-size-sm) solid var(--ndw-color-primary);background-color:var(--ndw-color-primary);color:var(--ndw-color-white)}:host:active,:host:focus-within{border:var(--ndw-border-size-sm) solid var(--ndw-color-link-400);background-color:var(--ndw-color-primary-600);color:var(--ndw-color-white)}:host.disabled{border:var(--ndw-border-size-sm) solid var(--ndw-color-grey-400);background-color:var(--ndw-color-grey-100);color:var(--ndw-color-grey-400);pointer-events:none}:host button{background-color:transparent;border:0;color:inherit;padding:0}:host button:focus{outline:none}:host button:after{content:\"\";inset:0;position:absolute}:host button ndw-icon{display:grid;font-size:var(--ndw-font-size-sm);width:var(--ndw-spacing-md)}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "ndw-icon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2006
- }
2007
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: TagComponent, decorators: [{
2008
- type: Component,
2009
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, host: {
2010
- '[class.disabled]': 'disabled()',
2011
- }, imports: [IconComponent], selector: 'ndw-tag', template: "<ng-content />\n<button type=\"button\" [disabled]=\"disabled()\" (click)=\"clicked.emit($event)\">\n <span class=\"sr-only\">{{ suffixAriaLabel() }}</span>\n <ndw-icon>{{ suffixIcon() }}</ndw-icon>\n</button>\n", styles: [":host{position:relative;overflow:hidden;display:inline-grid;grid-template-columns:auto 1fr;align-items:center;height:1.5rem;padding:0 var(--ndw-spacing-2xs) 0 var(--ndw-spacing-xs);border:var(--ndw-border-size-sm) solid var(--ndw-color-primary);border-radius:45px;outline:none;color:var(--ndw-color-primary);background-color:var(--ndw-color-primary-050);font-size:var(--ndw-font-size-sm);cursor:pointer;transition:var(--ndw-animation-speed-fast) ease-out}:host:hover{border:var(--ndw-border-size-sm) solid var(--ndw-color-primary);background-color:var(--ndw-color-primary);color:var(--ndw-color-white)}:host:active,:host:focus-within{border:var(--ndw-border-size-sm) solid var(--ndw-color-link-400);background-color:var(--ndw-color-primary-600);color:var(--ndw-color-white)}:host.disabled{border:var(--ndw-border-size-sm) solid var(--ndw-color-grey-400);background-color:var(--ndw-color-grey-100);color:var(--ndw-color-grey-400);pointer-events:none}:host button{background-color:transparent;border:0;color:inherit;padding:0}:host button:focus{outline:none}:host button:after{content:\"\";inset:0;position:absolute}:host button ndw-icon{display:grid;font-size:var(--ndw-font-size-sm);width:var(--ndw-spacing-md)}\n"] }]
2012
- }] });
2013
-
2014
2427
  class DropdownComponent {
2015
2428
  disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
2016
2429
  chevron = input(true, ...(ngDevMode ? [{ debugName: "chevron" }] : []));
@@ -2120,11 +2533,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImpor
2120
2533
  class FavoriteComponent {
2121
2534
  checked = model(false, ...(ngDevMode ? [{ debugName: "checked" }] : []));
2122
2535
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: FavoriteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2123
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.2.4", type: FavoriteComponent, isStandalone: true, selector: "ndw-favorite", inputs: { checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checked: "checkedChange" }, ngImport: i0, template: "<core-favorite [(checked)]=\"checked\">\n <ndw-icon [filled]=\"checked()\">favorite</ndw-icon>\n</core-favorite>\n", styles: [".input-container:has(>[ndwInput][error]){background-color:var(--ndw-color-critical-100);border-color:var(--ndw-color-critical-500)}.input-container:has(>select[ndwInput]){padding-inline-end:var(--ndw-spacing-xs)}.input-container[error]:has(>[ndwInput]:is(:active,:focus,:focus-visible)){background-color:var(--ndw-color-white)}.input-container[error]:has(>[ndwInput]:is(:active,:focus,:focus-visible)) select[ndwInput]{background-color:var(--ndw-color-white)}.input-container:has(>[ndwInput]){display:flex;align-items:center;background-color:var(--ndw-color-white);border:var(--ndw-border-size-sm) solid var(--ndw-color-grey-300);border-radius:var(--ndw-border-radius-sm);box-sizing:border-box;outline:var(--ndw-border-size-sm) solid transparent;outline-offset:calc(var(--ndw-border-size-sm) * -1);transition:background-color .15s ease-in-out,border-color .15s ease-in-out,outline-color .15s ease-in-out;gap:var(--ndw-spacing-xs)}.input-container:has(>[ndwInput]):has([ndwInput]:hover){border-color:var(--ndw-color-grey-400)}.input-container:has(>[ndwInput]):has([ndwInput]:active),.input-container:has(>[ndwInput]):has([ndwInput]:focus),.input-container:has(>[ndwInput]):has([ndwInput]:focus-visible){border-color:transparent;box-shadow:var(--ndw-elevation-info);outline-color:var(--ndw-color-info-500)}.input-container:has(>[ndwInput])[success]{background-color:var(--ndw-color-positive-100);border-color:var(--ndw-color-positive-500)}.input-container:has(>[ndwInput])[success]:hover{border-color:var(--ndw-color-grey-300)}.input-container:has(>[ndwInput])[success]:active,.input-container:has(>[ndwInput])[success]:focus,.input-container:has(>[ndwInput])[success]:focus-visible{background-color:var(--ndw-color-white);border-color:transparent;outline-color:var(--ndw-color-secondary-500)}.input-container:has(>[ndwInput])[error]{background-color:var(--ndw-color-critical-100);border-color:var(--ndw-color-critical-500)}.input-container:has(>[ndwInput])[error] [ndwInput]{background-color:var(--ndw-color-critical-100)}.input-container:has(>[ndwInput])[error]:hover{border-color:var(--ndw-color-grey-300)}.input-container:has(>[ndwInput])[error]:active,.input-container:has(>[ndwInput])[error]:focus,.input-container:has(>[ndwInput])[error]:focus-visible{background-color:var(--ndw-color-white);border-color:transparent;outline-color:var(--ndw-color-secondary-500)}.input-container:has(>[ndwInput])[disabled],.input-container:has(>[ndwInput])[readonly],.input-container:has(>[ndwInput]):has([ndwInput]:disabled),.input-container:has(>[ndwInput]):has([ndwInput]:read-only):not(:has(select[ndwInput])){background-color:var(--ndw-color-grey-100);border-color:var(--ndw-color-grey-300);color:var(--ndw-color-grey-500);pointer-events:none}.input-container:has(>[ndwInput])[disabled] [ndwInput],.input-container:has(>[ndwInput])[readonly] [ndwInput],.input-container:has(>[ndwInput]):has([ndwInput]:disabled) [ndwInput],.input-container:has(>[ndwInput]):has([ndwInput]:read-only):not(:has(select[ndwInput])) [ndwInput]{background-color:var(--ndw-color-grey-100)}.input-container:has(>[ndwInput])[disabled] ndw-icon,.input-container:has(>[ndwInput])[readonly] ndw-icon,.input-container:has(>[ndwInput]):has([ndwInput]:disabled) ndw-icon,.input-container:has(>[ndwInput]):has([ndwInput]:read-only):not(:has(select[ndwInput])) ndw-icon{color:var(--ndw-color-grey-500)}.input-container:has(>[ndwInput]):has(>ndw-input-icon){padding-inline:var(--ndw-spacing-xs)}.input-container:has(>[ndwInput]):has(>ndw-picker-button){padding-inline-end:var(--ndw-spacing-xs)}.input-container:has(>[ndwInput])>*:has(~[ndwInput]){color:var(--ndw-color-grey-400)}.input-container:has(>[ndwInput]) *+[ndwInput]{padding-inline-start:0}.input-container:has(>[ndwInput]) [ndwInput]:has(+*){padding-inline-end:0}.input-container:has(>[ndwInput]) [ndwInput]:is(textarea){padding-inline-end:var(--ndw-spacing-sm)}.input-container:has(>[ndwInput]) select[ndwInput]:has(+*){padding-inline-end:0}.input-container:has(>[ndwInput]) [ndwInput]{border:none;outline:none}.input-container:has(>[ndwInput]) [ndwInput]:hover,.input-container:has(>[ndwInput]) [ndwInput]:active,.input-container:has(>[ndwInput]) [ndwInput]:focus,.input-container:has(>[ndwInput]) [ndwInput]:focus-visible{border:none;outline:none}.input-container:has(>[ndwInput]):has(textarea){padding-inline:0}[ndwInput]{display:flex;align-items:center;background-color:var(--ndw-color-white);border:var(--ndw-border-size-sm) solid var(--ndw-color-grey-300);box-sizing:border-box;outline:var(--ndw-border-size-sm) solid transparent;outline-offset:calc(var(--ndw-border-size-sm) * -1);transition:background-color .15s ease-in-out,border-color .15s ease-in-out,outline-color .15s ease-in-out;width:100%;padding-inline:var(--ndw-spacing-sm);color:var(--ndw-color-grey-700);font-family:var(--ndw-font-family-body);font-size:var(--ndw-font-size-sm);height:var(--ndw-spacing-2xl);line-height:var(--ndw-line-height-md);border-radius:var(--ndw-border-radius-sm);text-overflow:ellipsis;white-space:nowrap}[ndwInput]:has([ndwInput]:hover){border-color:var(--ndw-color-grey-400)}[ndwInput]:has([ndwInput]:active),[ndwInput]:has([ndwInput]:focus),[ndwInput]:has([ndwInput]:focus-visible){border-color:transparent;box-shadow:var(--ndw-elevation-info);outline-color:var(--ndw-color-info-500)}[ndwInput][success]{background-color:var(--ndw-color-positive-100);border-color:var(--ndw-color-positive-500)}[ndwInput][success]:hover{border-color:var(--ndw-color-grey-300)}[ndwInput][success]:active,[ndwInput][success]:focus,[ndwInput][success]:focus-visible{background-color:var(--ndw-color-white);border-color:transparent;outline-color:var(--ndw-color-secondary-500)}[ndwInput][error]{background-color:var(--ndw-color-critical-100);border-color:var(--ndw-color-critical-500)}[ndwInput][error] [ndwInput]{background-color:var(--ndw-color-critical-100)}[ndwInput][error]:hover{border-color:var(--ndw-color-grey-300)}[ndwInput][error]:active,[ndwInput][error]:focus,[ndwInput][error]:focus-visible{background-color:var(--ndw-color-white);border-color:transparent;outline-color:var(--ndw-color-secondary-500)}[ndwInput][disabled],[ndwInput][readonly],[ndwInput]:has([ndwInput]:disabled),[ndwInput]:has([ndwInput]:read-only):not(:has(select[ndwInput])){background-color:var(--ndw-color-grey-100);border-color:var(--ndw-color-grey-300);color:var(--ndw-color-grey-500);pointer-events:none}[ndwInput][disabled] [ndwInput],[ndwInput][readonly] [ndwInput],[ndwInput]:has([ndwInput]:disabled) [ndwInput],[ndwInput]:has([ndwInput]:read-only):not(:has(select[ndwInput])) [ndwInput]{background-color:var(--ndw-color-grey-100)}[ndwInput][disabled] ndw-icon,[ndwInput][readonly] ndw-icon,[ndwInput]:has([ndwInput]:disabled) ndw-icon,[ndwInput]:has([ndwInput]:read-only):not(:has(select[ndwInput])) ndw-icon{color:var(--ndw-color-grey-500)}[ndwInput]::placeholder{color:var(--ndw-color-grey-400)}[ndwInput][type=search]::-webkit-search-decoration,[ndwInput][type=search]::-webkit-search-cancel-button,[ndwInput][type=search]::-webkit-search-results-button,[ndwInput][type=search]::-webkit-search-results-decoration{display:none}[ndwInput][type=date]::-webkit-calendar-picker-indicator,[ndwInput][type=datetime-local]::-webkit-calendar-picker-indicator,[ndwInput][type=month]::-webkit-calendar-picker-indicator,[ndwInput][type=time]::-webkit-calendar-picker-indicator,[ndwInput][type=week]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:0}select[ndwInput]{appearance:none;cursor:pointer}select[ndwInput][ndw-placeholder],select[ndwInput] option[disabled]{color:var(--ndw-color-grey-400)}select[ndwInput] option:not([disabled]){color:var(--ndw-color-grey-700)}textarea[ndwInput]{min-height:4rem;padding-block:calc(var(--ndw-spacing-xs) + var(--ndw-border-size-sm));padding-inline:var(--ndw-spacing-sm);line-height:normal;white-space:pre-wrap;resize:vertical}:host{color:var(--ndw-color-grey-500);height:fit-content}:host input:focus-visible+label{outline-color:Highlight;outline-color:-webkit-focus-ring-color;outline-style:auto;outline-width:1px}:host:hover,:host:has(core-favorite.checked){color:var(--ndw-color-critical-500);transition:color .15s ease-in-out}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "ndw-icon" }, { kind: "component", type: CoreFavoriteComponent, selector: "core-favorite", inputs: ["uuid", "checked"], outputs: ["checkedChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2536
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.2.4", type: FavoriteComponent, isStandalone: true, selector: "ndw-favorite", inputs: { checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checked: "checkedChange" }, ngImport: i0, template: "<core-favorite [(checked)]=\"checked\">\n <ndw-icon [filled]=\"checked()\">favorite</ndw-icon>\n</core-favorite>\n", styles: [".input-container:has(>[ndwInput][error]){background-color:var(--ndw-color-critical-100);border-color:var(--ndw-color-critical-500)}.input-container:has(>select[ndwInput]){padding-inline-end:var(--ndw-spacing-xs)}.input-container[error]:has(>[ndwInput]:is(:active,:focus,:focus-visible)){background-color:var(--ndw-color-white)}.input-container[error]:has(>[ndwInput]:is(:active,:focus,:focus-visible)) select[ndwInput]{background-color:var(--ndw-color-white)}.input-container:has(>[ndwInput]),.input-container:has(>ndw-datepicker>[ndwInput]){display:flex;align-items:center;background-color:var(--ndw-color-white);border:var(--ndw-border-size-sm) solid var(--ndw-color-grey-300);border-radius:var(--ndw-border-radius-sm);box-sizing:border-box;outline:var(--ndw-border-size-sm) solid transparent;outline-offset:calc(var(--ndw-border-size-sm) * -1);transition:background-color .15s ease-in-out,border-color .15s ease-in-out,outline-color .15s ease-in-out;gap:var(--ndw-spacing-xs)}.input-container:has(>[ndwInput]):has([ndwInput]:hover),.input-container:has(>ndw-datepicker>[ndwInput]):has([ndwInput]:hover){border-color:var(--ndw-color-grey-400)}.input-container:has(>[ndwInput]):has([ndwInput]:active),.input-container:has(>[ndwInput]):has([ndwInput]:focus),.input-container:has(>[ndwInput]):has([ndwInput]:focus-visible),.input-container:has(>ndw-datepicker>[ndwInput]):has([ndwInput]:active),.input-container:has(>ndw-datepicker>[ndwInput]):has([ndwInput]:focus),.input-container:has(>ndw-datepicker>[ndwInput]):has([ndwInput]:focus-visible){border-color:transparent;box-shadow:var(--ndw-elevation-info);outline-color:var(--ndw-color-info-500)}.input-container:has(>[ndwInput])[success],.input-container:has(>ndw-datepicker>[ndwInput])[success]{background-color:var(--ndw-color-positive-100);border-color:var(--ndw-color-positive-500)}.input-container:has(>[ndwInput])[success]:hover,.input-container:has(>ndw-datepicker>[ndwInput])[success]:hover{border-color:var(--ndw-color-grey-300)}.input-container:has(>[ndwInput])[success]:active,.input-container:has(>[ndwInput])[success]:focus,.input-container:has(>[ndwInput])[success]:focus-visible,.input-container:has(>ndw-datepicker>[ndwInput])[success]:active,.input-container:has(>ndw-datepicker>[ndwInput])[success]:focus,.input-container:has(>ndw-datepicker>[ndwInput])[success]:focus-visible{background-color:var(--ndw-color-white);border-color:transparent;outline-color:var(--ndw-color-secondary-500)}.input-container:has(>[ndwInput])[error],.input-container:has(>ndw-datepicker>[ndwInput])[error]{background-color:var(--ndw-color-critical-100);border-color:var(--ndw-color-critical-500)}.input-container:has(>[ndwInput])[error] [ndwInput],.input-container:has(>ndw-datepicker>[ndwInput])[error] [ndwInput]{background-color:var(--ndw-color-critical-100)}.input-container:has(>[ndwInput])[error]:hover,.input-container:has(>ndw-datepicker>[ndwInput])[error]:hover{border-color:var(--ndw-color-grey-300)}.input-container:has(>[ndwInput])[error]:active,.input-container:has(>[ndwInput])[error]:focus,.input-container:has(>[ndwInput])[error]:focus-visible,.input-container:has(>ndw-datepicker>[ndwInput])[error]:active,.input-container:has(>ndw-datepicker>[ndwInput])[error]:focus,.input-container:has(>ndw-datepicker>[ndwInput])[error]:focus-visible{background-color:var(--ndw-color-white);border-color:transparent;outline-color:var(--ndw-color-secondary-500)}.input-container:has(>[ndwInput])[disabled],.input-container:has(>[ndwInput])[readonly],.input-container:has(>[ndwInput]):has([ndwInput]:disabled),.input-container:has(>[ndwInput]):has([ndwInput]:read-only):not(:has(select[ndwInput])),.input-container:has(>ndw-datepicker>[ndwInput])[disabled],.input-container:has(>ndw-datepicker>[ndwInput])[readonly],.input-container:has(>ndw-datepicker>[ndwInput]):has([ndwInput]:disabled),.input-container:has(>ndw-datepicker>[ndwInput]):has([ndwInput]:read-only):not(:has(select[ndwInput])){background-color:var(--ndw-color-grey-100);border-color:var(--ndw-color-grey-300);color:var(--ndw-color-grey-500);pointer-events:none}.input-container:has(>[ndwInput])[disabled] [ndwInput],.input-container:has(>[ndwInput])[readonly] [ndwInput],.input-container:has(>[ndwInput]):has([ndwInput]:disabled) [ndwInput],.input-container:has(>[ndwInput]):has([ndwInput]:read-only):not(:has(select[ndwInput])) [ndwInput],.input-container:has(>ndw-datepicker>[ndwInput])[disabled] [ndwInput],.input-container:has(>ndw-datepicker>[ndwInput])[readonly] [ndwInput],.input-container:has(>ndw-datepicker>[ndwInput]):has([ndwInput]:disabled) [ndwInput],.input-container:has(>ndw-datepicker>[ndwInput]):has([ndwInput]:read-only):not(:has(select[ndwInput])) [ndwInput]{background-color:var(--ndw-color-grey-100)}.input-container:has(>[ndwInput])[disabled] ndw-icon,.input-container:has(>[ndwInput])[readonly] ndw-icon,.input-container:has(>[ndwInput]):has([ndwInput]:disabled) ndw-icon,.input-container:has(>[ndwInput]):has([ndwInput]:read-only):not(:has(select[ndwInput])) ndw-icon,.input-container:has(>ndw-datepicker>[ndwInput])[disabled] ndw-icon,.input-container:has(>ndw-datepicker>[ndwInput])[readonly] ndw-icon,.input-container:has(>ndw-datepicker>[ndwInput]):has([ndwInput]:disabled) ndw-icon,.input-container:has(>ndw-datepicker>[ndwInput]):has([ndwInput]:read-only):not(:has(select[ndwInput])) ndw-icon{color:var(--ndw-color-grey-500)}.input-container:has(>[ndwInput]):has(>ndw-input-icon),.input-container:has(>ndw-datepicker>[ndwInput]):has(>ndw-input-icon){padding-inline:var(--ndw-spacing-xs)}.input-container:has(>[ndwInput]):has(>ndw-picker-button),.input-container:has(>ndw-datepicker>[ndwInput]):has(>ndw-picker-button){padding-inline-end:var(--ndw-spacing-xs)}.input-container:has(>[ndwInput])>*:has(~[ndwInput]),.input-container:has(>ndw-datepicker>[ndwInput])>*:has(~[ndwInput]){color:var(--ndw-color-grey-400)}.input-container:has(>[ndwInput]) *+[ndwInput],.input-container:has(>ndw-datepicker>[ndwInput]) *+[ndwInput]{padding-inline-start:0}.input-container:has(>[ndwInput]) [ndwInput]:has(+*),.input-container:has(>ndw-datepicker>[ndwInput]) [ndwInput]:has(+*){padding-inline-end:0}.input-container:has(>[ndwInput]) [ndwInput]:is(textarea),.input-container:has(>ndw-datepicker>[ndwInput]) [ndwInput]:is(textarea){padding-inline-end:var(--ndw-spacing-sm)}.input-container:has(>[ndwInput]) select[ndwInput]:has(+*),.input-container:has(>ndw-datepicker>[ndwInput]) select[ndwInput]:has(+*){padding-inline-end:0}.input-container:has(>[ndwInput]) [ndwInput],.input-container:has(>ndw-datepicker>[ndwInput]) [ndwInput]{border:none;outline:none}.input-container:has(>[ndwInput]) [ndwInput]:hover,.input-container:has(>[ndwInput]) [ndwInput]:active,.input-container:has(>[ndwInput]) [ndwInput]:focus,.input-container:has(>[ndwInput]) [ndwInput]:focus-visible,.input-container:has(>ndw-datepicker>[ndwInput]) [ndwInput]:hover,.input-container:has(>ndw-datepicker>[ndwInput]) [ndwInput]:active,.input-container:has(>ndw-datepicker>[ndwInput]) [ndwInput]:focus,.input-container:has(>ndw-datepicker>[ndwInput]) [ndwInput]:focus-visible{border:none;outline:none}.input-container:has(>[ndwInput]):has(textarea),.input-container:has(>ndw-datepicker>[ndwInput]):has(textarea){padding-inline:0}[ndwInput]{display:flex;align-items:center;background-color:var(--ndw-color-white);border:var(--ndw-border-size-sm) solid var(--ndw-color-grey-300);box-sizing:border-box;outline:var(--ndw-border-size-sm) solid transparent;outline-offset:calc(var(--ndw-border-size-sm) * -1);transition:background-color .15s ease-in-out,border-color .15s ease-in-out,outline-color .15s ease-in-out;width:100%;padding-inline:var(--ndw-spacing-sm);color:var(--ndw-color-grey-700);font-family:var(--ndw-font-family-body);font-size:var(--ndw-font-size-sm);height:var(--ndw-spacing-2xl);line-height:var(--ndw-line-height-md);border-radius:var(--ndw-border-radius-sm);text-overflow:ellipsis;white-space:nowrap}[ndwInput]:has([ndwInput]:hover){border-color:var(--ndw-color-grey-400)}[ndwInput]:has([ndwInput]:active),[ndwInput]:has([ndwInput]:focus),[ndwInput]:has([ndwInput]:focus-visible){border-color:transparent;box-shadow:var(--ndw-elevation-info);outline-color:var(--ndw-color-info-500)}[ndwInput][success]{background-color:var(--ndw-color-positive-100);border-color:var(--ndw-color-positive-500)}[ndwInput][success]:hover{border-color:var(--ndw-color-grey-300)}[ndwInput][success]:active,[ndwInput][success]:focus,[ndwInput][success]:focus-visible{background-color:var(--ndw-color-white);border-color:transparent;outline-color:var(--ndw-color-secondary-500)}[ndwInput][error]{background-color:var(--ndw-color-critical-100);border-color:var(--ndw-color-critical-500)}[ndwInput][error] [ndwInput]{background-color:var(--ndw-color-critical-100)}[ndwInput][error]:hover{border-color:var(--ndw-color-grey-300)}[ndwInput][error]:active,[ndwInput][error]:focus,[ndwInput][error]:focus-visible{background-color:var(--ndw-color-white);border-color:transparent;outline-color:var(--ndw-color-secondary-500)}[ndwInput][disabled],[ndwInput][readonly],[ndwInput]:has([ndwInput]:disabled),[ndwInput]:has([ndwInput]:read-only):not(:has(select[ndwInput])){background-color:var(--ndw-color-grey-100);border-color:var(--ndw-color-grey-300);color:var(--ndw-color-grey-500);pointer-events:none}[ndwInput][disabled] [ndwInput],[ndwInput][readonly] [ndwInput],[ndwInput]:has([ndwInput]:disabled) [ndwInput],[ndwInput]:has([ndwInput]:read-only):not(:has(select[ndwInput])) [ndwInput]{background-color:var(--ndw-color-grey-100)}[ndwInput][disabled] ndw-icon,[ndwInput][readonly] ndw-icon,[ndwInput]:has([ndwInput]:disabled) ndw-icon,[ndwInput]:has([ndwInput]:read-only):not(:has(select[ndwInput])) ndw-icon{color:var(--ndw-color-grey-500)}[ndwInput]::placeholder{color:var(--ndw-color-grey-400)}[ndwInput][type=search]::-webkit-search-decoration,[ndwInput][type=search]::-webkit-search-cancel-button,[ndwInput][type=search]::-webkit-search-results-button,[ndwInput][type=search]::-webkit-search-results-decoration{display:none}[ndwInput][type=date]::-webkit-calendar-picker-indicator,[ndwInput][type=datetime-local]::-webkit-calendar-picker-indicator,[ndwInput][type=month]::-webkit-calendar-picker-indicator,[ndwInput][type=time]::-webkit-calendar-picker-indicator,[ndwInput][type=week]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:0}select[ndwInput]{appearance:none;cursor:pointer}select[ndwInput][ndw-placeholder],select[ndwInput] option[disabled]{color:var(--ndw-color-grey-400)}select[ndwInput] option:not([disabled]){color:var(--ndw-color-grey-700)}textarea[ndwInput]{min-height:4rem;padding-block:calc(var(--ndw-spacing-xs) + var(--ndw-border-size-sm));padding-inline:var(--ndw-spacing-sm);line-height:normal;white-space:pre-wrap;resize:vertical}:host{color:var(--ndw-color-grey-500);height:fit-content}:host input:focus-visible+label{outline-color:Highlight;outline-color:-webkit-focus-ring-color;outline-style:auto;outline-width:1px}:host:hover,:host:has(core-favorite.checked){color:var(--ndw-color-critical-500);transition:color .15s ease-in-out}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "ndw-icon" }, { kind: "component", type: CoreFavoriteComponent, selector: "core-favorite", inputs: ["uuid", "checked"], outputs: ["checkedChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2124
2537
  }
2125
2538
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: FavoriteComponent, decorators: [{
2126
2539
  type: Component,
2127
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, imports: [IconComponent, CoreFavoriteComponent], selector: 'ndw-favorite', template: "<core-favorite [(checked)]=\"checked\">\n <ndw-icon [filled]=\"checked()\">favorite</ndw-icon>\n</core-favorite>\n", styles: [".input-container:has(>[ndwInput][error]){background-color:var(--ndw-color-critical-100);border-color:var(--ndw-color-critical-500)}.input-container:has(>select[ndwInput]){padding-inline-end:var(--ndw-spacing-xs)}.input-container[error]:has(>[ndwInput]:is(:active,:focus,:focus-visible)){background-color:var(--ndw-color-white)}.input-container[error]:has(>[ndwInput]:is(:active,:focus,:focus-visible)) select[ndwInput]{background-color:var(--ndw-color-white)}.input-container:has(>[ndwInput]){display:flex;align-items:center;background-color:var(--ndw-color-white);border:var(--ndw-border-size-sm) solid var(--ndw-color-grey-300);border-radius:var(--ndw-border-radius-sm);box-sizing:border-box;outline:var(--ndw-border-size-sm) solid transparent;outline-offset:calc(var(--ndw-border-size-sm) * -1);transition:background-color .15s ease-in-out,border-color .15s ease-in-out,outline-color .15s ease-in-out;gap:var(--ndw-spacing-xs)}.input-container:has(>[ndwInput]):has([ndwInput]:hover){border-color:var(--ndw-color-grey-400)}.input-container:has(>[ndwInput]):has([ndwInput]:active),.input-container:has(>[ndwInput]):has([ndwInput]:focus),.input-container:has(>[ndwInput]):has([ndwInput]:focus-visible){border-color:transparent;box-shadow:var(--ndw-elevation-info);outline-color:var(--ndw-color-info-500)}.input-container:has(>[ndwInput])[success]{background-color:var(--ndw-color-positive-100);border-color:var(--ndw-color-positive-500)}.input-container:has(>[ndwInput])[success]:hover{border-color:var(--ndw-color-grey-300)}.input-container:has(>[ndwInput])[success]:active,.input-container:has(>[ndwInput])[success]:focus,.input-container:has(>[ndwInput])[success]:focus-visible{background-color:var(--ndw-color-white);border-color:transparent;outline-color:var(--ndw-color-secondary-500)}.input-container:has(>[ndwInput])[error]{background-color:var(--ndw-color-critical-100);border-color:var(--ndw-color-critical-500)}.input-container:has(>[ndwInput])[error] [ndwInput]{background-color:var(--ndw-color-critical-100)}.input-container:has(>[ndwInput])[error]:hover{border-color:var(--ndw-color-grey-300)}.input-container:has(>[ndwInput])[error]:active,.input-container:has(>[ndwInput])[error]:focus,.input-container:has(>[ndwInput])[error]:focus-visible{background-color:var(--ndw-color-white);border-color:transparent;outline-color:var(--ndw-color-secondary-500)}.input-container:has(>[ndwInput])[disabled],.input-container:has(>[ndwInput])[readonly],.input-container:has(>[ndwInput]):has([ndwInput]:disabled),.input-container:has(>[ndwInput]):has([ndwInput]:read-only):not(:has(select[ndwInput])){background-color:var(--ndw-color-grey-100);border-color:var(--ndw-color-grey-300);color:var(--ndw-color-grey-500);pointer-events:none}.input-container:has(>[ndwInput])[disabled] [ndwInput],.input-container:has(>[ndwInput])[readonly] [ndwInput],.input-container:has(>[ndwInput]):has([ndwInput]:disabled) [ndwInput],.input-container:has(>[ndwInput]):has([ndwInput]:read-only):not(:has(select[ndwInput])) [ndwInput]{background-color:var(--ndw-color-grey-100)}.input-container:has(>[ndwInput])[disabled] ndw-icon,.input-container:has(>[ndwInput])[readonly] ndw-icon,.input-container:has(>[ndwInput]):has([ndwInput]:disabled) ndw-icon,.input-container:has(>[ndwInput]):has([ndwInput]:read-only):not(:has(select[ndwInput])) ndw-icon{color:var(--ndw-color-grey-500)}.input-container:has(>[ndwInput]):has(>ndw-input-icon){padding-inline:var(--ndw-spacing-xs)}.input-container:has(>[ndwInput]):has(>ndw-picker-button){padding-inline-end:var(--ndw-spacing-xs)}.input-container:has(>[ndwInput])>*:has(~[ndwInput]){color:var(--ndw-color-grey-400)}.input-container:has(>[ndwInput]) *+[ndwInput]{padding-inline-start:0}.input-container:has(>[ndwInput]) [ndwInput]:has(+*){padding-inline-end:0}.input-container:has(>[ndwInput]) [ndwInput]:is(textarea){padding-inline-end:var(--ndw-spacing-sm)}.input-container:has(>[ndwInput]) select[ndwInput]:has(+*){padding-inline-end:0}.input-container:has(>[ndwInput]) [ndwInput]{border:none;outline:none}.input-container:has(>[ndwInput]) [ndwInput]:hover,.input-container:has(>[ndwInput]) [ndwInput]:active,.input-container:has(>[ndwInput]) [ndwInput]:focus,.input-container:has(>[ndwInput]) [ndwInput]:focus-visible{border:none;outline:none}.input-container:has(>[ndwInput]):has(textarea){padding-inline:0}[ndwInput]{display:flex;align-items:center;background-color:var(--ndw-color-white);border:var(--ndw-border-size-sm) solid var(--ndw-color-grey-300);box-sizing:border-box;outline:var(--ndw-border-size-sm) solid transparent;outline-offset:calc(var(--ndw-border-size-sm) * -1);transition:background-color .15s ease-in-out,border-color .15s ease-in-out,outline-color .15s ease-in-out;width:100%;padding-inline:var(--ndw-spacing-sm);color:var(--ndw-color-grey-700);font-family:var(--ndw-font-family-body);font-size:var(--ndw-font-size-sm);height:var(--ndw-spacing-2xl);line-height:var(--ndw-line-height-md);border-radius:var(--ndw-border-radius-sm);text-overflow:ellipsis;white-space:nowrap}[ndwInput]:has([ndwInput]:hover){border-color:var(--ndw-color-grey-400)}[ndwInput]:has([ndwInput]:active),[ndwInput]:has([ndwInput]:focus),[ndwInput]:has([ndwInput]:focus-visible){border-color:transparent;box-shadow:var(--ndw-elevation-info);outline-color:var(--ndw-color-info-500)}[ndwInput][success]{background-color:var(--ndw-color-positive-100);border-color:var(--ndw-color-positive-500)}[ndwInput][success]:hover{border-color:var(--ndw-color-grey-300)}[ndwInput][success]:active,[ndwInput][success]:focus,[ndwInput][success]:focus-visible{background-color:var(--ndw-color-white);border-color:transparent;outline-color:var(--ndw-color-secondary-500)}[ndwInput][error]{background-color:var(--ndw-color-critical-100);border-color:var(--ndw-color-critical-500)}[ndwInput][error] [ndwInput]{background-color:var(--ndw-color-critical-100)}[ndwInput][error]:hover{border-color:var(--ndw-color-grey-300)}[ndwInput][error]:active,[ndwInput][error]:focus,[ndwInput][error]:focus-visible{background-color:var(--ndw-color-white);border-color:transparent;outline-color:var(--ndw-color-secondary-500)}[ndwInput][disabled],[ndwInput][readonly],[ndwInput]:has([ndwInput]:disabled),[ndwInput]:has([ndwInput]:read-only):not(:has(select[ndwInput])){background-color:var(--ndw-color-grey-100);border-color:var(--ndw-color-grey-300);color:var(--ndw-color-grey-500);pointer-events:none}[ndwInput][disabled] [ndwInput],[ndwInput][readonly] [ndwInput],[ndwInput]:has([ndwInput]:disabled) [ndwInput],[ndwInput]:has([ndwInput]:read-only):not(:has(select[ndwInput])) [ndwInput]{background-color:var(--ndw-color-grey-100)}[ndwInput][disabled] ndw-icon,[ndwInput][readonly] ndw-icon,[ndwInput]:has([ndwInput]:disabled) ndw-icon,[ndwInput]:has([ndwInput]:read-only):not(:has(select[ndwInput])) ndw-icon{color:var(--ndw-color-grey-500)}[ndwInput]::placeholder{color:var(--ndw-color-grey-400)}[ndwInput][type=search]::-webkit-search-decoration,[ndwInput][type=search]::-webkit-search-cancel-button,[ndwInput][type=search]::-webkit-search-results-button,[ndwInput][type=search]::-webkit-search-results-decoration{display:none}[ndwInput][type=date]::-webkit-calendar-picker-indicator,[ndwInput][type=datetime-local]::-webkit-calendar-picker-indicator,[ndwInput][type=month]::-webkit-calendar-picker-indicator,[ndwInput][type=time]::-webkit-calendar-picker-indicator,[ndwInput][type=week]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:0}select[ndwInput]{appearance:none;cursor:pointer}select[ndwInput][ndw-placeholder],select[ndwInput] option[disabled]{color:var(--ndw-color-grey-400)}select[ndwInput] option:not([disabled]){color:var(--ndw-color-grey-700)}textarea[ndwInput]{min-height:4rem;padding-block:calc(var(--ndw-spacing-xs) + var(--ndw-border-size-sm));padding-inline:var(--ndw-spacing-sm);line-height:normal;white-space:pre-wrap;resize:vertical}:host{color:var(--ndw-color-grey-500);height:fit-content}:host input:focus-visible+label{outline-color:Highlight;outline-color:-webkit-focus-ring-color;outline-style:auto;outline-width:1px}:host:hover,:host:has(core-favorite.checked){color:var(--ndw-color-critical-500);transition:color .15s ease-in-out}\n"] }]
2540
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, imports: [IconComponent, CoreFavoriteComponent], selector: 'ndw-favorite', template: "<core-favorite [(checked)]=\"checked\">\n <ndw-icon [filled]=\"checked()\">favorite</ndw-icon>\n</core-favorite>\n", styles: [".input-container:has(>[ndwInput][error]){background-color:var(--ndw-color-critical-100);border-color:var(--ndw-color-critical-500)}.input-container:has(>select[ndwInput]){padding-inline-end:var(--ndw-spacing-xs)}.input-container[error]:has(>[ndwInput]:is(:active,:focus,:focus-visible)){background-color:var(--ndw-color-white)}.input-container[error]:has(>[ndwInput]:is(:active,:focus,:focus-visible)) select[ndwInput]{background-color:var(--ndw-color-white)}.input-container:has(>[ndwInput]),.input-container:has(>ndw-datepicker>[ndwInput]){display:flex;align-items:center;background-color:var(--ndw-color-white);border:var(--ndw-border-size-sm) solid var(--ndw-color-grey-300);border-radius:var(--ndw-border-radius-sm);box-sizing:border-box;outline:var(--ndw-border-size-sm) solid transparent;outline-offset:calc(var(--ndw-border-size-sm) * -1);transition:background-color .15s ease-in-out,border-color .15s ease-in-out,outline-color .15s ease-in-out;gap:var(--ndw-spacing-xs)}.input-container:has(>[ndwInput]):has([ndwInput]:hover),.input-container:has(>ndw-datepicker>[ndwInput]):has([ndwInput]:hover){border-color:var(--ndw-color-grey-400)}.input-container:has(>[ndwInput]):has([ndwInput]:active),.input-container:has(>[ndwInput]):has([ndwInput]:focus),.input-container:has(>[ndwInput]):has([ndwInput]:focus-visible),.input-container:has(>ndw-datepicker>[ndwInput]):has([ndwInput]:active),.input-container:has(>ndw-datepicker>[ndwInput]):has([ndwInput]:focus),.input-container:has(>ndw-datepicker>[ndwInput]):has([ndwInput]:focus-visible){border-color:transparent;box-shadow:var(--ndw-elevation-info);outline-color:var(--ndw-color-info-500)}.input-container:has(>[ndwInput])[success],.input-container:has(>ndw-datepicker>[ndwInput])[success]{background-color:var(--ndw-color-positive-100);border-color:var(--ndw-color-positive-500)}.input-container:has(>[ndwInput])[success]:hover,.input-container:has(>ndw-datepicker>[ndwInput])[success]:hover{border-color:var(--ndw-color-grey-300)}.input-container:has(>[ndwInput])[success]:active,.input-container:has(>[ndwInput])[success]:focus,.input-container:has(>[ndwInput])[success]:focus-visible,.input-container:has(>ndw-datepicker>[ndwInput])[success]:active,.input-container:has(>ndw-datepicker>[ndwInput])[success]:focus,.input-container:has(>ndw-datepicker>[ndwInput])[success]:focus-visible{background-color:var(--ndw-color-white);border-color:transparent;outline-color:var(--ndw-color-secondary-500)}.input-container:has(>[ndwInput])[error],.input-container:has(>ndw-datepicker>[ndwInput])[error]{background-color:var(--ndw-color-critical-100);border-color:var(--ndw-color-critical-500)}.input-container:has(>[ndwInput])[error] [ndwInput],.input-container:has(>ndw-datepicker>[ndwInput])[error] [ndwInput]{background-color:var(--ndw-color-critical-100)}.input-container:has(>[ndwInput])[error]:hover,.input-container:has(>ndw-datepicker>[ndwInput])[error]:hover{border-color:var(--ndw-color-grey-300)}.input-container:has(>[ndwInput])[error]:active,.input-container:has(>[ndwInput])[error]:focus,.input-container:has(>[ndwInput])[error]:focus-visible,.input-container:has(>ndw-datepicker>[ndwInput])[error]:active,.input-container:has(>ndw-datepicker>[ndwInput])[error]:focus,.input-container:has(>ndw-datepicker>[ndwInput])[error]:focus-visible{background-color:var(--ndw-color-white);border-color:transparent;outline-color:var(--ndw-color-secondary-500)}.input-container:has(>[ndwInput])[disabled],.input-container:has(>[ndwInput])[readonly],.input-container:has(>[ndwInput]):has([ndwInput]:disabled),.input-container:has(>[ndwInput]):has([ndwInput]:read-only):not(:has(select[ndwInput])),.input-container:has(>ndw-datepicker>[ndwInput])[disabled],.input-container:has(>ndw-datepicker>[ndwInput])[readonly],.input-container:has(>ndw-datepicker>[ndwInput]):has([ndwInput]:disabled),.input-container:has(>ndw-datepicker>[ndwInput]):has([ndwInput]:read-only):not(:has(select[ndwInput])){background-color:var(--ndw-color-grey-100);border-color:var(--ndw-color-grey-300);color:var(--ndw-color-grey-500);pointer-events:none}.input-container:has(>[ndwInput])[disabled] [ndwInput],.input-container:has(>[ndwInput])[readonly] [ndwInput],.input-container:has(>[ndwInput]):has([ndwInput]:disabled) [ndwInput],.input-container:has(>[ndwInput]):has([ndwInput]:read-only):not(:has(select[ndwInput])) [ndwInput],.input-container:has(>ndw-datepicker>[ndwInput])[disabled] [ndwInput],.input-container:has(>ndw-datepicker>[ndwInput])[readonly] [ndwInput],.input-container:has(>ndw-datepicker>[ndwInput]):has([ndwInput]:disabled) [ndwInput],.input-container:has(>ndw-datepicker>[ndwInput]):has([ndwInput]:read-only):not(:has(select[ndwInput])) [ndwInput]{background-color:var(--ndw-color-grey-100)}.input-container:has(>[ndwInput])[disabled] ndw-icon,.input-container:has(>[ndwInput])[readonly] ndw-icon,.input-container:has(>[ndwInput]):has([ndwInput]:disabled) ndw-icon,.input-container:has(>[ndwInput]):has([ndwInput]:read-only):not(:has(select[ndwInput])) ndw-icon,.input-container:has(>ndw-datepicker>[ndwInput])[disabled] ndw-icon,.input-container:has(>ndw-datepicker>[ndwInput])[readonly] ndw-icon,.input-container:has(>ndw-datepicker>[ndwInput]):has([ndwInput]:disabled) ndw-icon,.input-container:has(>ndw-datepicker>[ndwInput]):has([ndwInput]:read-only):not(:has(select[ndwInput])) ndw-icon{color:var(--ndw-color-grey-500)}.input-container:has(>[ndwInput]):has(>ndw-input-icon),.input-container:has(>ndw-datepicker>[ndwInput]):has(>ndw-input-icon){padding-inline:var(--ndw-spacing-xs)}.input-container:has(>[ndwInput]):has(>ndw-picker-button),.input-container:has(>ndw-datepicker>[ndwInput]):has(>ndw-picker-button){padding-inline-end:var(--ndw-spacing-xs)}.input-container:has(>[ndwInput])>*:has(~[ndwInput]),.input-container:has(>ndw-datepicker>[ndwInput])>*:has(~[ndwInput]){color:var(--ndw-color-grey-400)}.input-container:has(>[ndwInput]) *+[ndwInput],.input-container:has(>ndw-datepicker>[ndwInput]) *+[ndwInput]{padding-inline-start:0}.input-container:has(>[ndwInput]) [ndwInput]:has(+*),.input-container:has(>ndw-datepicker>[ndwInput]) [ndwInput]:has(+*){padding-inline-end:0}.input-container:has(>[ndwInput]) [ndwInput]:is(textarea),.input-container:has(>ndw-datepicker>[ndwInput]) [ndwInput]:is(textarea){padding-inline-end:var(--ndw-spacing-sm)}.input-container:has(>[ndwInput]) select[ndwInput]:has(+*),.input-container:has(>ndw-datepicker>[ndwInput]) select[ndwInput]:has(+*){padding-inline-end:0}.input-container:has(>[ndwInput]) [ndwInput],.input-container:has(>ndw-datepicker>[ndwInput]) [ndwInput]{border:none;outline:none}.input-container:has(>[ndwInput]) [ndwInput]:hover,.input-container:has(>[ndwInput]) [ndwInput]:active,.input-container:has(>[ndwInput]) [ndwInput]:focus,.input-container:has(>[ndwInput]) [ndwInput]:focus-visible,.input-container:has(>ndw-datepicker>[ndwInput]) [ndwInput]:hover,.input-container:has(>ndw-datepicker>[ndwInput]) [ndwInput]:active,.input-container:has(>ndw-datepicker>[ndwInput]) [ndwInput]:focus,.input-container:has(>ndw-datepicker>[ndwInput]) [ndwInput]:focus-visible{border:none;outline:none}.input-container:has(>[ndwInput]):has(textarea),.input-container:has(>ndw-datepicker>[ndwInput]):has(textarea){padding-inline:0}[ndwInput]{display:flex;align-items:center;background-color:var(--ndw-color-white);border:var(--ndw-border-size-sm) solid var(--ndw-color-grey-300);box-sizing:border-box;outline:var(--ndw-border-size-sm) solid transparent;outline-offset:calc(var(--ndw-border-size-sm) * -1);transition:background-color .15s ease-in-out,border-color .15s ease-in-out,outline-color .15s ease-in-out;width:100%;padding-inline:var(--ndw-spacing-sm);color:var(--ndw-color-grey-700);font-family:var(--ndw-font-family-body);font-size:var(--ndw-font-size-sm);height:var(--ndw-spacing-2xl);line-height:var(--ndw-line-height-md);border-radius:var(--ndw-border-radius-sm);text-overflow:ellipsis;white-space:nowrap}[ndwInput]:has([ndwInput]:hover){border-color:var(--ndw-color-grey-400)}[ndwInput]:has([ndwInput]:active),[ndwInput]:has([ndwInput]:focus),[ndwInput]:has([ndwInput]:focus-visible){border-color:transparent;box-shadow:var(--ndw-elevation-info);outline-color:var(--ndw-color-info-500)}[ndwInput][success]{background-color:var(--ndw-color-positive-100);border-color:var(--ndw-color-positive-500)}[ndwInput][success]:hover{border-color:var(--ndw-color-grey-300)}[ndwInput][success]:active,[ndwInput][success]:focus,[ndwInput][success]:focus-visible{background-color:var(--ndw-color-white);border-color:transparent;outline-color:var(--ndw-color-secondary-500)}[ndwInput][error]{background-color:var(--ndw-color-critical-100);border-color:var(--ndw-color-critical-500)}[ndwInput][error] [ndwInput]{background-color:var(--ndw-color-critical-100)}[ndwInput][error]:hover{border-color:var(--ndw-color-grey-300)}[ndwInput][error]:active,[ndwInput][error]:focus,[ndwInput][error]:focus-visible{background-color:var(--ndw-color-white);border-color:transparent;outline-color:var(--ndw-color-secondary-500)}[ndwInput][disabled],[ndwInput][readonly],[ndwInput]:has([ndwInput]:disabled),[ndwInput]:has([ndwInput]:read-only):not(:has(select[ndwInput])){background-color:var(--ndw-color-grey-100);border-color:var(--ndw-color-grey-300);color:var(--ndw-color-grey-500);pointer-events:none}[ndwInput][disabled] [ndwInput],[ndwInput][readonly] [ndwInput],[ndwInput]:has([ndwInput]:disabled) [ndwInput],[ndwInput]:has([ndwInput]:read-only):not(:has(select[ndwInput])) [ndwInput]{background-color:var(--ndw-color-grey-100)}[ndwInput][disabled] ndw-icon,[ndwInput][readonly] ndw-icon,[ndwInput]:has([ndwInput]:disabled) ndw-icon,[ndwInput]:has([ndwInput]:read-only):not(:has(select[ndwInput])) ndw-icon{color:var(--ndw-color-grey-500)}[ndwInput]::placeholder{color:var(--ndw-color-grey-400)}[ndwInput][type=search]::-webkit-search-decoration,[ndwInput][type=search]::-webkit-search-cancel-button,[ndwInput][type=search]::-webkit-search-results-button,[ndwInput][type=search]::-webkit-search-results-decoration{display:none}[ndwInput][type=date]::-webkit-calendar-picker-indicator,[ndwInput][type=datetime-local]::-webkit-calendar-picker-indicator,[ndwInput][type=month]::-webkit-calendar-picker-indicator,[ndwInput][type=time]::-webkit-calendar-picker-indicator,[ndwInput][type=week]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:0}select[ndwInput]{appearance:none;cursor:pointer}select[ndwInput][ndw-placeholder],select[ndwInput] option[disabled]{color:var(--ndw-color-grey-400)}select[ndwInput] option:not([disabled]){color:var(--ndw-color-grey-700)}textarea[ndwInput]{min-height:4rem;padding-block:calc(var(--ndw-spacing-xs) + var(--ndw-border-size-sm));padding-inline:var(--ndw-spacing-sm);line-height:normal;white-space:pre-wrap;resize:vertical}:host{color:var(--ndw-color-grey-500);height:fit-content}:host input:focus-visible+label{outline-color:Highlight;outline-color:-webkit-focus-ring-color;outline-style:auto;outline-width:1px}:host:hover,:host:has(core-favorite.checked){color:var(--ndw-color-critical-500);transition:color .15s ease-in-out}\n"] }]
2128
2541
  }] });
2129
2542
 
2130
2543
  class HoverableListItemComponent {
@@ -2162,11 +2575,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImpor
2162
2575
 
2163
2576
  class KeyValueListComponent extends CoreKeyValueListComponent {
2164
2577
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: KeyValueListComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2165
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.4", type: KeyValueListComponent, isStandalone: true, selector: "ndw-key-value-list", usesInheritance: true, ngImport: i0, template: "<dl [class.striped]=\"hasZebraStripes()\">\n @for (keyValueRow of normalizedData(); track keyValueRow.key) {\n <dt>\n <ng-container *ngTemplateOutlet=\"cellData; context: { $implicit: keyValueRow.key }\" />\n </dt>\n <dd>\n <ng-container *ngTemplateOutlet=\"cellData; context: { $implicit: keyValueRow.value }\" />\n </dd>\n }\n</dl>\n\n<ng-template #cellData let-data>\n @if (data.url) {\n <a ndwLink target=\"_blank\" [href]=\"data.url\">\n {{ data.label }}\n <ndw-icon size=\"sm\">open_in_new</ndw-icon>\n </a>\n } @else {\n {{ data.label }}\n }\n\n @if (data.tooltip) {\n <ndw-icon class=\"tooltip-icon\" size=\"sm\" [ndwTooltip]=\"data.tooltip\">info</ndw-icon>\n }\n</ng-template>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400..650;1,9..40,400..650&family=Material+Symbols+Rounded:opsz,wght,FILL@20..48,400,0..1&family=Nunito+Sans:ital,opsz,wght@0,6..12,400..650;1,6..12,400..650&display=block\";.ndw-heading-xl{font-family:var(--ndw-font-family-heading);font-size:2.5rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-heading-lg{font-family:var(--ndw-font-family-heading);font-size:2rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-heading-md{font-family:var(--ndw-font-family-heading);font-size:1.5rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-heading-sm{font-family:var(--ndw-font-family-heading);font-size:1.25rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-bold-xl{font-family:var(--ndw-font-family-body);font-size:1.125rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-xl{font-family:var(--ndw-font-family-body);font-size:1.125rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}.ndw-paragraph-bold-lg{font-family:var(--ndw-font-family-body);font-size:1rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-lg{font-family:var(--ndw-font-family-body);font-size:1rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}.ndw-paragraph-bold-md{font-family:var(--ndw-font-family-body);font-size:.8125rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-md{font-family:var(--ndw-font-family-body);font-size:.8125rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}.ndw-paragraph-bold-sm{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-sm{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}dl{display:grid;width:fit-content;grid-template-columns:auto auto;margin:0}dl dt,dl dd{display:flex;align-items:center;gap:var(--ndw-spacing-2xs);padding-block:var(--ndw-spacing-xs);margin:0}dl dt .tooltip-icon,dl dd .tooltip-icon{color:var(--ndw-color-info-500)}dl dt{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-bold);line-height:150%;padding-inline-end:var(--ndw-spacing-2xs)}dl dd{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-regular);line-height:150%;padding-inline-start:var(--ndw-spacing-2xs)}dl.striped dt{padding-inline-start:var(--ndw-spacing-xs)}dl.striped dd{padding-inline-end:var(--ndw-spacing-xs)}dl.striped dt:nth-child(4n+1),dl.striped dd:nth-child(4n+2){background-color:var(--ndw-color-grey-100)}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "ndw-icon" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: TooltipDirective, selector: "[ndwTooltip]", inputs: ["ndwTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2578
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.4", type: KeyValueListComponent, isStandalone: true, selector: "ndw-key-value-list", usesInheritance: true, ngImport: i0, template: "<dl [class.striped]=\"hasZebraStripes()\" [class.fluid]=\"fluid()\">\n @for (keyValueRow of normalizedData(); track keyValueRow.key) {\n <dt>\n <ng-container *ngTemplateOutlet=\"cellData; context: { $implicit: keyValueRow.key }\" />\n </dt>\n <dd>\n <ng-container *ngTemplateOutlet=\"cellData; context: { $implicit: keyValueRow.value }\" />\n </dd>\n }\n</dl>\n\n<ng-template #cellData let-data>\n @if (data.url) {\n <a ndwLink target=\"_blank\" [href]=\"data.url\">\n {{ data.label }}\n <ndw-icon size=\"sm\">open_in_new</ndw-icon>\n </a>\n } @else {\n {{ data.label }}\n }\n\n @if (data.tooltip) {\n <ndw-icon class=\"tooltip-icon\" size=\"sm\" [ndwTooltip]=\"data.tooltip\">info</ndw-icon>\n }\n</ng-template>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400..650;1,9..40,400..650&family=Material+Symbols+Rounded:opsz,wght,FILL@20..48,400,0..1&family=Nunito+Sans:ital,opsz,wght@0,6..12,400..650;1,6..12,400..650&display=block\";.ndw-heading-xl{font-family:var(--ndw-font-family-heading);font-size:2.5rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-heading-lg{font-family:var(--ndw-font-family-heading);font-size:2rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-heading-md{font-family:var(--ndw-font-family-heading);font-size:1.5rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-heading-sm{font-family:var(--ndw-font-family-heading);font-size:1.25rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-bold-xl{font-family:var(--ndw-font-family-body);font-size:1.125rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-xl{font-family:var(--ndw-font-family-body);font-size:1.125rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}.ndw-paragraph-bold-lg{font-family:var(--ndw-font-family-body);font-size:1rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-lg{font-family:var(--ndw-font-family-body);font-size:1rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}.ndw-paragraph-bold-md{font-family:var(--ndw-font-family-body);font-size:.8125rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-md{font-family:var(--ndw-font-family-body);font-size:.8125rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}.ndw-paragraph-bold-sm{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-sm{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}dl{display:grid;width:fit-content;grid-template-columns:auto auto;margin:0}dl dt,dl dd{display:flex;align-items:center;gap:var(--ndw-spacing-2xs);padding-block:var(--ndw-spacing-xs);margin:0}dl dt .tooltip-icon,dl dd .tooltip-icon{color:var(--ndw-color-info-500)}dl dt{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-bold);line-height:150%;padding-inline-end:var(--ndw-spacing-2xs)}dl dd{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-regular);line-height:150%;padding-inline-start:var(--ndw-spacing-2xs)}dl.striped dt{padding-inline-start:var(--ndw-spacing-xs)}dl.striped dd{padding-inline-end:var(--ndw-spacing-xs)}dl.striped dt:nth-child(4n+1),dl.striped dd:nth-child(4n+2){background-color:var(--ndw-color-grey-100)}dl.fluid{width:100%}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "ndw-icon" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: TooltipDirective, selector: "[ndwTooltip]", inputs: ["ndwTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2166
2579
  }
2167
2580
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: KeyValueListComponent, decorators: [{
2168
2581
  type: Component,
2169
- args: [{ selector: 'ndw-key-value-list', imports: [IconComponent, NgTemplateOutlet, TooltipDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<dl [class.striped]=\"hasZebraStripes()\">\n @for (keyValueRow of normalizedData(); track keyValueRow.key) {\n <dt>\n <ng-container *ngTemplateOutlet=\"cellData; context: { $implicit: keyValueRow.key }\" />\n </dt>\n <dd>\n <ng-container *ngTemplateOutlet=\"cellData; context: { $implicit: keyValueRow.value }\" />\n </dd>\n }\n</dl>\n\n<ng-template #cellData let-data>\n @if (data.url) {\n <a ndwLink target=\"_blank\" [href]=\"data.url\">\n {{ data.label }}\n <ndw-icon size=\"sm\">open_in_new</ndw-icon>\n </a>\n } @else {\n {{ data.label }}\n }\n\n @if (data.tooltip) {\n <ndw-icon class=\"tooltip-icon\" size=\"sm\" [ndwTooltip]=\"data.tooltip\">info</ndw-icon>\n }\n</ng-template>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400..650;1,9..40,400..650&family=Material+Symbols+Rounded:opsz,wght,FILL@20..48,400,0..1&family=Nunito+Sans:ital,opsz,wght@0,6..12,400..650;1,6..12,400..650&display=block\";.ndw-heading-xl{font-family:var(--ndw-font-family-heading);font-size:2.5rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-heading-lg{font-family:var(--ndw-font-family-heading);font-size:2rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-heading-md{font-family:var(--ndw-font-family-heading);font-size:1.5rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-heading-sm{font-family:var(--ndw-font-family-heading);font-size:1.25rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-bold-xl{font-family:var(--ndw-font-family-body);font-size:1.125rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-xl{font-family:var(--ndw-font-family-body);font-size:1.125rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}.ndw-paragraph-bold-lg{font-family:var(--ndw-font-family-body);font-size:1rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-lg{font-family:var(--ndw-font-family-body);font-size:1rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}.ndw-paragraph-bold-md{font-family:var(--ndw-font-family-body);font-size:.8125rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-md{font-family:var(--ndw-font-family-body);font-size:.8125rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}.ndw-paragraph-bold-sm{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-sm{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}dl{display:grid;width:fit-content;grid-template-columns:auto auto;margin:0}dl dt,dl dd{display:flex;align-items:center;gap:var(--ndw-spacing-2xs);padding-block:var(--ndw-spacing-xs);margin:0}dl dt .tooltip-icon,dl dd .tooltip-icon{color:var(--ndw-color-info-500)}dl dt{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-bold);line-height:150%;padding-inline-end:var(--ndw-spacing-2xs)}dl dd{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-regular);line-height:150%;padding-inline-start:var(--ndw-spacing-2xs)}dl.striped dt{padding-inline-start:var(--ndw-spacing-xs)}dl.striped dd{padding-inline-end:var(--ndw-spacing-xs)}dl.striped dt:nth-child(4n+1),dl.striped dd:nth-child(4n+2){background-color:var(--ndw-color-grey-100)}\n"] }]
2582
+ args: [{ selector: 'ndw-key-value-list', imports: [IconComponent, NgTemplateOutlet, TooltipDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<dl [class.striped]=\"hasZebraStripes()\" [class.fluid]=\"fluid()\">\n @for (keyValueRow of normalizedData(); track keyValueRow.key) {\n <dt>\n <ng-container *ngTemplateOutlet=\"cellData; context: { $implicit: keyValueRow.key }\" />\n </dt>\n <dd>\n <ng-container *ngTemplateOutlet=\"cellData; context: { $implicit: keyValueRow.value }\" />\n </dd>\n }\n</dl>\n\n<ng-template #cellData let-data>\n @if (data.url) {\n <a ndwLink target=\"_blank\" [href]=\"data.url\">\n {{ data.label }}\n <ndw-icon size=\"sm\">open_in_new</ndw-icon>\n </a>\n } @else {\n {{ data.label }}\n }\n\n @if (data.tooltip) {\n <ndw-icon class=\"tooltip-icon\" size=\"sm\" [ndwTooltip]=\"data.tooltip\">info</ndw-icon>\n }\n</ng-template>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400..650;1,9..40,400..650&family=Material+Symbols+Rounded:opsz,wght,FILL@20..48,400,0..1&family=Nunito+Sans:ital,opsz,wght@0,6..12,400..650;1,6..12,400..650&display=block\";.ndw-heading-xl{font-family:var(--ndw-font-family-heading);font-size:2.5rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-heading-lg{font-family:var(--ndw-font-family-heading);font-size:2rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-heading-md{font-family:var(--ndw-font-family-heading);font-size:1.5rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-heading-sm{font-family:var(--ndw-font-family-heading);font-size:1.25rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-bold-xl{font-family:var(--ndw-font-family-body);font-size:1.125rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-xl{font-family:var(--ndw-font-family-body);font-size:1.125rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}.ndw-paragraph-bold-lg{font-family:var(--ndw-font-family-body);font-size:1rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-lg{font-family:var(--ndw-font-family-body);font-size:1rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}.ndw-paragraph-bold-md{font-family:var(--ndw-font-family-body);font-size:.8125rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-md{font-family:var(--ndw-font-family-body);font-size:.8125rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}.ndw-paragraph-bold-sm{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-sm{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}dl{display:grid;width:fit-content;grid-template-columns:auto auto;margin:0}dl dt,dl dd{display:flex;align-items:center;gap:var(--ndw-spacing-2xs);padding-block:var(--ndw-spacing-xs);margin:0}dl dt .tooltip-icon,dl dd .tooltip-icon{color:var(--ndw-color-info-500)}dl dt{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-bold);line-height:150%;padding-inline-end:var(--ndw-spacing-2xs)}dl dd{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-regular);line-height:150%;padding-inline-start:var(--ndw-spacing-2xs)}dl.striped dt{padding-inline-start:var(--ndw-spacing-xs)}dl.striped dd{padding-inline-end:var(--ndw-spacing-xs)}dl.striped dt:nth-child(4n+1),dl.striped dd:nth-child(4n+2){background-color:var(--ndw-color-grey-100)}dl.fluid{width:100%}\n"] }]
2170
2583
  }] });
2171
2584
 
2172
2585
  class MainNavigationHeaderComponent {
@@ -2193,11 +2606,11 @@ class MainNavigationHeaderComponent {
2193
2606
  this.isMobileMenuOpen.update((open) => !open);
2194
2607
  }
2195
2608
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MainNavigationHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2196
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.4", type: MainNavigationHeaderComponent, isStandalone: true, selector: "ndw-main-navigation-header", inputs: { applicationName: { classPropertyName: "applicationName", publicName: "applicationName", isSignal: true, isRequired: true, transformFunction: null }, isExpanded: { classPropertyName: "isExpanded", publicName: "isExpanded", isSignal: true, isRequired: true, transformFunction: null }, isMobile: { classPropertyName: "isMobile", publicName: "isMobile", isSignal: true, isRequired: true, transformFunction: null }, theme: { classPropertyName: "theme", publicName: "theme", isSignal: true, isRequired: true, transformFunction: null }, themeImagePath: { classPropertyName: "themeImagePath", publicName: "themeImagePath", isSignal: true, isRequired: true, transformFunction: null }, environment: { classPropertyName: "environment", publicName: "environment", isSignal: true, isRequired: false, transformFunction: null }, isMobileMenuOpen: { classPropertyName: "isMobileMenuOpen", publicName: "isMobileMenuOpen", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { isMobileMenuOpen: "isMobileMenuOpenChange" }, ngImport: i0, template: "<header [class.expanded]=\"isExpanded()\">\n <a routerLink=\"/\">\n <img [class]=\"theme()\" [src]=\"themeImagePath()\" [alt]=\"theme().toUpperCase() + ' logo'\" />\n @if (isExpanded() || isMobile()) {\n {{ applicationName() }}\n }\n </a>\n @if (environment()) {\n <ndw-pill [color]=\"environmentColor()\">\n {{ !isExpanded() || isMobile() ? environment()?.charAt(0) : environment() }}\n </ndw-pill>\n }\n @if (isMobile()) {\n <button ndwButton tertiary class=\"mobile-menu-button\" (click)=\"toggleMobileMenu()\">\n <ndw-icon>\n {{ isMobileMenuOpen() ? 'close' : 'menu' }}\n </ndw-icon>\n </button>\n }\n</header>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400..650;1,9..40,400..650&family=Material+Symbols+Rounded:opsz,wght,FILL@20..48,400,0..1&family=Nunito+Sans:ital,opsz,wght@0,6..12,400..650;1,6..12,400..650&display=block\";.ndw-heading-xl{font-family:var(--ndw-font-family-heading);font-size:2.5rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-heading-lg{font-family:var(--ndw-font-family-heading);font-size:2rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-heading-md{font-family:var(--ndw-font-family-heading);font-size:1.5rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-heading-sm{font-family:var(--ndw-font-family-heading);font-size:1.25rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-bold-xl{font-family:var(--ndw-font-family-body);font-size:1.125rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-xl{font-family:var(--ndw-font-family-body);font-size:1.125rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}.ndw-paragraph-bold-lg{font-family:var(--ndw-font-family-body);font-size:1rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-lg{font-family:var(--ndw-font-family-body);font-size:1rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}.ndw-paragraph-bold-md{font-family:var(--ndw-font-family-body);font-size:.8125rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-md{font-family:var(--ndw-font-family-body);font-size:.8125rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}.ndw-paragraph-bold-sm{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-sm{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}:root{--ndw-spacing-3xs: .125rem;--ndw-spacing-2xs: .25rem;--ndw-spacing-xs: .5rem;--ndw-spacing-sm: .75rem;--ndw-spacing-md: 1rem;--ndw-spacing-lg: 1.5rem;--ndw-spacing-xl: 2rem;--ndw-spacing-2xl: 2.5rem;--ndw-spacing-3xl: 3rem;--ndw-spacing-4xl: 5rem;--ndw-spacing-5xl: 8rem;--ndw-border-size-sm: 1px;--ndw-border-size-md: 2px;--ndw-border-size-lg: 3px;--ndw-border-radius-xs: .125rem;--ndw-border-radius-sm: .25rem;--ndw-border-radius-md: .5rem;--ndw-border-radius-lg: 1.5rem;--ndw-letter-spacing-sm: .1rem;--ndw-letter-spacing-md: .2rem;--ndw-letter-spacing-lg: .3rem;--ndw-elevation-info: 0 0 .5rem 0 hsla(var(--_link-500), .25);--ndw-elevation-content: 0 .125rem .125rem 0 hsla(var(--_grey-600), .05);--ndw-elevation-dropdown: 0 .25rem 1rem hsla(var(--_grey-600), .125);--ndw-elevation-popover: 0 .5rem 1.25rem hsla(var(--_grey-600), .125);--ndw-elevation-toast: 0 .75rem 1.25rem hsla(var(--_grey-600), .125);--ndw-backdrop-color: var(--ndw-alpha-black-040);--ndw-animation-speed-very-fast: .1s;--ndw-animation-speed-fast: .2s;--ndw-animation-speed-default: .3s;--ndw-animation-speed-slow: .5s;--ndw-icon-size-md: 1rem;--ndw-icon-size-lg: 1.5rem;--multi-select-default-width: 18.75rem;--ndw-font-family-body: \"Nunito Sans\", sans-serif;--ndw-font-family-heading: \"DM Sans\", sans-serif;--ndw-base-font-size: 16px;--ndw-font-size-2xs: .5625rem;--ndw-font-size-xs: .6875rem;--ndw-font-size-sm: .8125rem;--ndw-font-size-md: 1.125rem;--ndw-font-size-lg: 1.25rem;--ndw-font-size-xl: 1.5rem;--ndw-font-weight-regular: 400;--ndw-font-weight-bold: 650;--ndw-line-height-sm: 1.375rem;--ndw-line-height-md: 1.5rem;--ndw-rotate-half: rotate(180deg);--ndw-modal-width-sm: 31.25rem;--ndw-modal-width-md: 45rem;--main-navigation-collapse-width: 2.75rem;--main-navigation-expanded-width: 12.5rem;--main-navigation-mobile-header-height: 3.5rem}header{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-regular);line-height:150%;flex-direction:column;align-items:center;display:flex;gap:var(--ndw-spacing-md);margin-bottom:var(--ndw-spacing-md);padding-inline:0;position:relative}header a{color:var(--ndw-color-white);display:flex;flex-direction:column;gap:var(--ndw-spacing-xs);letter-spacing:var(--ndw-letter-spacing-md);text-decoration:none;text-transform:uppercase}header a img{width:1rem}header ndw-pill{width:fit-content}header .mobile-menu-button{top:0;height:fit-content;padding:0;position:absolute;right:var(--ndw-spacing-sm);text-transform:uppercase}header .mobile-menu-button ndw-icon{font-size:var(--ndw-font-size-lg);color:var(--ndw-color-white)}header.expanded{align-items:flex-start;padding-inline:var(--ndw-spacing-md)}header.expanded a img{width:4rem}header.expanded a img.nwb{width:6rem}@media screen and (max-width: 1024px){header{flex-direction:row;align-items:center;padding-inline:var(--ndw-spacing-md);margin-bottom:0}header.expanded{align-items:center}header.expanded a img{width:var(--ndw-spacing-md)}header.expanded.nwb{width:var(--ndw-spacing-md)}header a{flex-direction:row;letter-spacing:var(--ndw-letter-spacing-sm);line-height:150%;gap:var(--ndw-spacing-md)}header a img{width:var(--ndw-spacing-md)}header a img.nwb{width:var(--ndw-spacing-md)}}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "ndw-icon" }, { kind: "component", type: PillComponent, selector: "ndw-pill" }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2609
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.4", type: MainNavigationHeaderComponent, isStandalone: true, selector: "ndw-main-navigation-header", inputs: { applicationName: { classPropertyName: "applicationName", publicName: "applicationName", isSignal: true, isRequired: true, transformFunction: null }, isExpanded: { classPropertyName: "isExpanded", publicName: "isExpanded", isSignal: true, isRequired: true, transformFunction: null }, isMobile: { classPropertyName: "isMobile", publicName: "isMobile", isSignal: true, isRequired: true, transformFunction: null }, theme: { classPropertyName: "theme", publicName: "theme", isSignal: true, isRequired: true, transformFunction: null }, themeImagePath: { classPropertyName: "themeImagePath", publicName: "themeImagePath", isSignal: true, isRequired: true, transformFunction: null }, environment: { classPropertyName: "environment", publicName: "environment", isSignal: true, isRequired: false, transformFunction: null }, isMobileMenuOpen: { classPropertyName: "isMobileMenuOpen", publicName: "isMobileMenuOpen", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { isMobileMenuOpen: "isMobileMenuOpenChange" }, ngImport: i0, template: "<header [class.expanded]=\"isExpanded() && !isMobile()\">\n <a routerLink=\"/\">\n <img [class]=\"theme()\" [src]=\"themeImagePath()\" [alt]=\"theme().toUpperCase() + ' logo'\" />\n @if (isExpanded() || isMobile()) {\n {{ applicationName() }}\n }\n </a>\n @if (environment()) {\n <ndw-pill [color]=\"environmentColor()\">\n {{ !isExpanded() || isMobile() ? environment()?.charAt(0) : environment() }}\n </ndw-pill>\n }\n @if (isMobile()) {\n <button ndwButton tertiary class=\"mobile-menu-button\" (click)=\"toggleMobileMenu()\">\n <ndw-icon>\n {{ isMobileMenuOpen() ? 'close' : 'menu' }}\n </ndw-icon>\n </button>\n }\n</header>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400..650;1,9..40,400..650&family=Material+Symbols+Rounded:opsz,wght,FILL@20..48,400,0..1&family=Nunito+Sans:ital,opsz,wght@0,6..12,400..650;1,6..12,400..650&display=block\";.ndw-heading-xl{font-family:var(--ndw-font-family-heading);font-size:2.5rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-heading-lg{font-family:var(--ndw-font-family-heading);font-size:2rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-heading-md{font-family:var(--ndw-font-family-heading);font-size:1.5rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-heading-sm{font-family:var(--ndw-font-family-heading);font-size:1.25rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-bold-xl{font-family:var(--ndw-font-family-body);font-size:1.125rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-xl{font-family:var(--ndw-font-family-body);font-size:1.125rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}.ndw-paragraph-bold-lg{font-family:var(--ndw-font-family-body);font-size:1rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-lg{font-family:var(--ndw-font-family-body);font-size:1rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}.ndw-paragraph-bold-md{font-family:var(--ndw-font-family-body);font-size:.8125rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-md{font-family:var(--ndw-font-family-body);font-size:.8125rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}.ndw-paragraph-bold-sm{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-sm{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}:root{--ndw-spacing-3xs: .125rem;--ndw-spacing-2xs: .25rem;--ndw-spacing-xs: .5rem;--ndw-spacing-sm: .75rem;--ndw-spacing-md: 1rem;--ndw-spacing-lg: 1.5rem;--ndw-spacing-xl: 2rem;--ndw-spacing-2xl: 2.5rem;--ndw-spacing-3xl: 3rem;--ndw-spacing-4xl: 5rem;--ndw-spacing-5xl: 8rem;--ndw-border-size-sm: 1px;--ndw-border-size-md: 2px;--ndw-border-size-lg: 3px;--ndw-border-radius-xs: .125rem;--ndw-border-radius-sm: .25rem;--ndw-border-radius-md: .5rem;--ndw-border-radius-lg: 1.5rem;--ndw-letter-spacing-sm: .1rem;--ndw-letter-spacing-md: .2rem;--ndw-letter-spacing-lg: .3rem;--ndw-elevation-info: 0 0 .5rem 0 hsla(var(--_link-500), .25);--ndw-elevation-content: 0 .125rem .125rem 0 hsla(var(--_grey-600), .05);--ndw-elevation-dropdown: 0 .25rem 1rem hsla(var(--_grey-600), .125);--ndw-elevation-popover: 0 .5rem 1.25rem hsla(var(--_grey-600), .125);--ndw-elevation-toast: 0 .75rem 1.25rem hsla(var(--_grey-600), .125);--ndw-backdrop-color: var(--ndw-alpha-black-040);--ndw-animation-speed-very-fast: .1s;--ndw-animation-speed-fast: .2s;--ndw-animation-speed-default: .3s;--ndw-animation-speed-slow: .5s;--ndw-icon-size-md: 1rem;--ndw-icon-size-lg: 1.5rem;--multi-select-default-width: 18.75rem;--ndw-font-family-body: \"Nunito Sans\", sans-serif;--ndw-font-family-heading: \"DM Sans\", sans-serif;--ndw-base-font-size: 16px;--ndw-font-size-2xs: .5625rem;--ndw-font-size-xs: .6875rem;--ndw-font-size-sm: .8125rem;--ndw-font-size-md: 1.125rem;--ndw-font-size-lg: 1.25rem;--ndw-font-size-xl: 1.5rem;--ndw-font-weight-regular: 400;--ndw-font-weight-bold: 650;--ndw-line-height-sm: 1.375rem;--ndw-line-height-md: 1.5rem;--ndw-rotate-half: rotate(180deg);--ndw-modal-width-sm: 31.25rem;--ndw-modal-width-md: 45rem;--main-navigation-collapse-width: 2.75rem;--main-navigation-expanded-width: 12.5rem;--main-navigation-mobile-header-height: 3.5rem}header{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-regular);line-height:150%;flex-direction:column;align-items:center;display:flex;gap:var(--ndw-spacing-md);margin-bottom:var(--ndw-spacing-md);padding-inline:0;position:relative}header a{color:var(--ndw-color-white);display:flex;flex-direction:column;gap:var(--ndw-spacing-xs);letter-spacing:var(--ndw-letter-spacing-md);text-decoration:none;text-transform:uppercase}header a img{width:1rem}header ndw-pill{width:fit-content}header .mobile-menu-button{top:0;height:fit-content;padding:0;position:absolute;right:var(--ndw-spacing-sm);text-transform:uppercase}header .mobile-menu-button ndw-icon{font-size:var(--ndw-font-size-lg);color:var(--ndw-color-white)}header.expanded{align-items:flex-start;padding-inline:var(--ndw-spacing-md)}header.expanded a img{width:4rem}header.expanded a img.nwb{width:6rem}@media screen and (max-width: 1024px){header{flex-direction:row;align-items:center;padding-inline:var(--ndw-spacing-md);margin-bottom:0}header.expanded{align-items:center}header.expanded a img{width:var(--ndw-spacing-md)}header.expanded.nwb{width:var(--ndw-spacing-md)}header a{flex-direction:row;letter-spacing:var(--ndw-letter-spacing-sm);line-height:150%;gap:var(--ndw-spacing-md)}header a img{width:var(--ndw-spacing-md)}header a img.nwb{width:var(--ndw-spacing-md)}}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "ndw-icon" }, { kind: "component", type: PillComponent, selector: "ndw-pill" }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2197
2610
  }
2198
2611
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MainNavigationHeaderComponent, decorators: [{
2199
2612
  type: Component,
2200
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, imports: [IconComponent, PillComponent, RouterLink], selector: 'ndw-main-navigation-header', template: "<header [class.expanded]=\"isExpanded()\">\n <a routerLink=\"/\">\n <img [class]=\"theme()\" [src]=\"themeImagePath()\" [alt]=\"theme().toUpperCase() + ' logo'\" />\n @if (isExpanded() || isMobile()) {\n {{ applicationName() }}\n }\n </a>\n @if (environment()) {\n <ndw-pill [color]=\"environmentColor()\">\n {{ !isExpanded() || isMobile() ? environment()?.charAt(0) : environment() }}\n </ndw-pill>\n }\n @if (isMobile()) {\n <button ndwButton tertiary class=\"mobile-menu-button\" (click)=\"toggleMobileMenu()\">\n <ndw-icon>\n {{ isMobileMenuOpen() ? 'close' : 'menu' }}\n </ndw-icon>\n </button>\n }\n</header>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400..650;1,9..40,400..650&family=Material+Symbols+Rounded:opsz,wght,FILL@20..48,400,0..1&family=Nunito+Sans:ital,opsz,wght@0,6..12,400..650;1,6..12,400..650&display=block\";.ndw-heading-xl{font-family:var(--ndw-font-family-heading);font-size:2.5rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-heading-lg{font-family:var(--ndw-font-family-heading);font-size:2rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-heading-md{font-family:var(--ndw-font-family-heading);font-size:1.5rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-heading-sm{font-family:var(--ndw-font-family-heading);font-size:1.25rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-bold-xl{font-family:var(--ndw-font-family-body);font-size:1.125rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-xl{font-family:var(--ndw-font-family-body);font-size:1.125rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}.ndw-paragraph-bold-lg{font-family:var(--ndw-font-family-body);font-size:1rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-lg{font-family:var(--ndw-font-family-body);font-size:1rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}.ndw-paragraph-bold-md{font-family:var(--ndw-font-family-body);font-size:.8125rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-md{font-family:var(--ndw-font-family-body);font-size:.8125rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}.ndw-paragraph-bold-sm{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-sm{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}:root{--ndw-spacing-3xs: .125rem;--ndw-spacing-2xs: .25rem;--ndw-spacing-xs: .5rem;--ndw-spacing-sm: .75rem;--ndw-spacing-md: 1rem;--ndw-spacing-lg: 1.5rem;--ndw-spacing-xl: 2rem;--ndw-spacing-2xl: 2.5rem;--ndw-spacing-3xl: 3rem;--ndw-spacing-4xl: 5rem;--ndw-spacing-5xl: 8rem;--ndw-border-size-sm: 1px;--ndw-border-size-md: 2px;--ndw-border-size-lg: 3px;--ndw-border-radius-xs: .125rem;--ndw-border-radius-sm: .25rem;--ndw-border-radius-md: .5rem;--ndw-border-radius-lg: 1.5rem;--ndw-letter-spacing-sm: .1rem;--ndw-letter-spacing-md: .2rem;--ndw-letter-spacing-lg: .3rem;--ndw-elevation-info: 0 0 .5rem 0 hsla(var(--_link-500), .25);--ndw-elevation-content: 0 .125rem .125rem 0 hsla(var(--_grey-600), .05);--ndw-elevation-dropdown: 0 .25rem 1rem hsla(var(--_grey-600), .125);--ndw-elevation-popover: 0 .5rem 1.25rem hsla(var(--_grey-600), .125);--ndw-elevation-toast: 0 .75rem 1.25rem hsla(var(--_grey-600), .125);--ndw-backdrop-color: var(--ndw-alpha-black-040);--ndw-animation-speed-very-fast: .1s;--ndw-animation-speed-fast: .2s;--ndw-animation-speed-default: .3s;--ndw-animation-speed-slow: .5s;--ndw-icon-size-md: 1rem;--ndw-icon-size-lg: 1.5rem;--multi-select-default-width: 18.75rem;--ndw-font-family-body: \"Nunito Sans\", sans-serif;--ndw-font-family-heading: \"DM Sans\", sans-serif;--ndw-base-font-size: 16px;--ndw-font-size-2xs: .5625rem;--ndw-font-size-xs: .6875rem;--ndw-font-size-sm: .8125rem;--ndw-font-size-md: 1.125rem;--ndw-font-size-lg: 1.25rem;--ndw-font-size-xl: 1.5rem;--ndw-font-weight-regular: 400;--ndw-font-weight-bold: 650;--ndw-line-height-sm: 1.375rem;--ndw-line-height-md: 1.5rem;--ndw-rotate-half: rotate(180deg);--ndw-modal-width-sm: 31.25rem;--ndw-modal-width-md: 45rem;--main-navigation-collapse-width: 2.75rem;--main-navigation-expanded-width: 12.5rem;--main-navigation-mobile-header-height: 3.5rem}header{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-regular);line-height:150%;flex-direction:column;align-items:center;display:flex;gap:var(--ndw-spacing-md);margin-bottom:var(--ndw-spacing-md);padding-inline:0;position:relative}header a{color:var(--ndw-color-white);display:flex;flex-direction:column;gap:var(--ndw-spacing-xs);letter-spacing:var(--ndw-letter-spacing-md);text-decoration:none;text-transform:uppercase}header a img{width:1rem}header ndw-pill{width:fit-content}header .mobile-menu-button{top:0;height:fit-content;padding:0;position:absolute;right:var(--ndw-spacing-sm);text-transform:uppercase}header .mobile-menu-button ndw-icon{font-size:var(--ndw-font-size-lg);color:var(--ndw-color-white)}header.expanded{align-items:flex-start;padding-inline:var(--ndw-spacing-md)}header.expanded a img{width:4rem}header.expanded a img.nwb{width:6rem}@media screen and (max-width: 1024px){header{flex-direction:row;align-items:center;padding-inline:var(--ndw-spacing-md);margin-bottom:0}header.expanded{align-items:center}header.expanded a img{width:var(--ndw-spacing-md)}header.expanded.nwb{width:var(--ndw-spacing-md)}header a{flex-direction:row;letter-spacing:var(--ndw-letter-spacing-sm);line-height:150%;gap:var(--ndw-spacing-md)}header a img{width:var(--ndw-spacing-md)}header a img.nwb{width:var(--ndw-spacing-md)}}\n"] }]
2613
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, imports: [IconComponent, PillComponent, RouterLink], selector: 'ndw-main-navigation-header', template: "<header [class.expanded]=\"isExpanded() && !isMobile()\">\n <a routerLink=\"/\">\n <img [class]=\"theme()\" [src]=\"themeImagePath()\" [alt]=\"theme().toUpperCase() + ' logo'\" />\n @if (isExpanded() || isMobile()) {\n {{ applicationName() }}\n }\n </a>\n @if (environment()) {\n <ndw-pill [color]=\"environmentColor()\">\n {{ !isExpanded() || isMobile() ? environment()?.charAt(0) : environment() }}\n </ndw-pill>\n }\n @if (isMobile()) {\n <button ndwButton tertiary class=\"mobile-menu-button\" (click)=\"toggleMobileMenu()\">\n <ndw-icon>\n {{ isMobileMenuOpen() ? 'close' : 'menu' }}\n </ndw-icon>\n </button>\n }\n</header>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400..650;1,9..40,400..650&family=Material+Symbols+Rounded:opsz,wght,FILL@20..48,400,0..1&family=Nunito+Sans:ital,opsz,wght@0,6..12,400..650;1,6..12,400..650&display=block\";.ndw-heading-xl{font-family:var(--ndw-font-family-heading);font-size:2.5rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-heading-lg{font-family:var(--ndw-font-family-heading);font-size:2rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-heading-md{font-family:var(--ndw-font-family-heading);font-size:1.5rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-heading-sm{font-family:var(--ndw-font-family-heading);font-size:1.25rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-bold-xl{font-family:var(--ndw-font-family-body);font-size:1.125rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-xl{font-family:var(--ndw-font-family-body);font-size:1.125rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}.ndw-paragraph-bold-lg{font-family:var(--ndw-font-family-body);font-size:1rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-lg{font-family:var(--ndw-font-family-body);font-size:1rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}.ndw-paragraph-bold-md{font-family:var(--ndw-font-family-body);font-size:.8125rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-md{font-family:var(--ndw-font-family-body);font-size:.8125rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}.ndw-paragraph-bold-sm{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-bold);line-height:150%}.ndw-paragraph-sm{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-regular);line-height:150%}:root{--ndw-spacing-3xs: .125rem;--ndw-spacing-2xs: .25rem;--ndw-spacing-xs: .5rem;--ndw-spacing-sm: .75rem;--ndw-spacing-md: 1rem;--ndw-spacing-lg: 1.5rem;--ndw-spacing-xl: 2rem;--ndw-spacing-2xl: 2.5rem;--ndw-spacing-3xl: 3rem;--ndw-spacing-4xl: 5rem;--ndw-spacing-5xl: 8rem;--ndw-border-size-sm: 1px;--ndw-border-size-md: 2px;--ndw-border-size-lg: 3px;--ndw-border-radius-xs: .125rem;--ndw-border-radius-sm: .25rem;--ndw-border-radius-md: .5rem;--ndw-border-radius-lg: 1.5rem;--ndw-letter-spacing-sm: .1rem;--ndw-letter-spacing-md: .2rem;--ndw-letter-spacing-lg: .3rem;--ndw-elevation-info: 0 0 .5rem 0 hsla(var(--_link-500), .25);--ndw-elevation-content: 0 .125rem .125rem 0 hsla(var(--_grey-600), .05);--ndw-elevation-dropdown: 0 .25rem 1rem hsla(var(--_grey-600), .125);--ndw-elevation-popover: 0 .5rem 1.25rem hsla(var(--_grey-600), .125);--ndw-elevation-toast: 0 .75rem 1.25rem hsla(var(--_grey-600), .125);--ndw-backdrop-color: var(--ndw-alpha-black-040);--ndw-animation-speed-very-fast: .1s;--ndw-animation-speed-fast: .2s;--ndw-animation-speed-default: .3s;--ndw-animation-speed-slow: .5s;--ndw-icon-size-md: 1rem;--ndw-icon-size-lg: 1.5rem;--multi-select-default-width: 18.75rem;--ndw-font-family-body: \"Nunito Sans\", sans-serif;--ndw-font-family-heading: \"DM Sans\", sans-serif;--ndw-base-font-size: 16px;--ndw-font-size-2xs: .5625rem;--ndw-font-size-xs: .6875rem;--ndw-font-size-sm: .8125rem;--ndw-font-size-md: 1.125rem;--ndw-font-size-lg: 1.25rem;--ndw-font-size-xl: 1.5rem;--ndw-font-weight-regular: 400;--ndw-font-weight-bold: 650;--ndw-line-height-sm: 1.375rem;--ndw-line-height-md: 1.5rem;--ndw-rotate-half: rotate(180deg);--ndw-modal-width-sm: 31.25rem;--ndw-modal-width-md: 45rem;--main-navigation-collapse-width: 2.75rem;--main-navigation-expanded-width: 12.5rem;--main-navigation-mobile-header-height: 3.5rem}header{font-family:var(--ndw-font-family-body);font-size:.6875rem;font-weight:var(--ndw-font-weight-regular);line-height:150%;flex-direction:column;align-items:center;display:flex;gap:var(--ndw-spacing-md);margin-bottom:var(--ndw-spacing-md);padding-inline:0;position:relative}header a{color:var(--ndw-color-white);display:flex;flex-direction:column;gap:var(--ndw-spacing-xs);letter-spacing:var(--ndw-letter-spacing-md);text-decoration:none;text-transform:uppercase}header a img{width:1rem}header ndw-pill{width:fit-content}header .mobile-menu-button{top:0;height:fit-content;padding:0;position:absolute;right:var(--ndw-spacing-sm);text-transform:uppercase}header .mobile-menu-button ndw-icon{font-size:var(--ndw-font-size-lg);color:var(--ndw-color-white)}header.expanded{align-items:flex-start;padding-inline:var(--ndw-spacing-md)}header.expanded a img{width:4rem}header.expanded a img.nwb{width:6rem}@media screen and (max-width: 1024px){header{flex-direction:row;align-items:center;padding-inline:var(--ndw-spacing-md);margin-bottom:0}header.expanded{align-items:center}header.expanded a img{width:var(--ndw-spacing-md)}header.expanded.nwb{width:var(--ndw-spacing-md)}header a{flex-direction:row;letter-spacing:var(--ndw-letter-spacing-sm);line-height:150%;gap:var(--ndw-spacing-md)}header a img{width:var(--ndw-spacing-md)}header a img.nwb{width:var(--ndw-spacing-md)}}\n"] }]
2201
2614
  }] });
2202
2615
 
2203
2616
  class MainNavigationMenuComponent {
@@ -2233,7 +2646,7 @@ class MainNavigationMenuComponent {
2233
2646
  this.setActiveMobileItem(this.activeMobileItem() === item ? undefined : item);
2234
2647
  }
2235
2648
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MainNavigationMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2236
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.4", type: MainNavigationMenuComponent, isStandalone: true, selector: "ndw-main-navigation-menu", inputs: { isExpanded: { classPropertyName: "isExpanded", publicName: "isExpanded", isSignal: true, isRequired: true, transformFunction: null }, isMobile: { classPropertyName: "isMobile", publicName: "isMobile", isSignal: true, isRequired: true, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { closed: "closed" }, ngImport: i0, template: "<div cdkMenu class=\"menu\" [class.expanded]=\"isExpanded()\">\n @for (item of items(); track getItemKey(item)) {\n @if (!item.children) {\n @if (item.callback) {\n <button cdkMenuItem ndwButton menu (click)=\"closeMobileMenu(item)\">\n <ndw-icon>{{ item.icon }}</ndw-icon>\n @if (isExpanded() || isMobile()) {\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: item }\" />\n }\n </button>\n } @else {\n <a\n cdkMenuItem\n ndwButton\n menu\n [queryParams]=\"item.queryParams\"\n [routerLink]=\"item.path\"\n (click)=\"closeMobileMenu()\"\n >\n <ndw-icon>{{ item.icon }}</ndw-icon>\n @if (isExpanded() || isMobile()) {\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: item }\" />\n }\n </a>\n }\n } @else {\n @if (isMobile()) {\n <button\n cdkMenuItem\n ndwButton\n menu\n [attr.active]=\"activeMobileItem() === item || undefined\"\n (click)=\"toggleActiveMobileItem(item)\"\n (keydown)=\"handleMobileItemKeydown($event, item)\"\n >\n <ndw-icon>{{ item.icon }}</ndw-icon>\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: item }\" />\n <ndw-icon class=\"suffix\">\n {{ activeMobileItem() !== item ? 'arrow_drop_down' : 'arrow_drop_up' }}\n </ndw-icon>\n </button>\n @if (activeMobileItem() === item) {\n @for (subItem of item.children; track getItemKey(subItem)) {\n @if (subItem.callback) {\n <button\n cdkMenuItem\n ndwButton\n menu\n class=\"sub-menu-button\"\n (click)=\"closeMobileMenu(subItem)\"\n >\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: subItem }\" />\n </button>\n } @else {\n <a\n cdkMenuItem\n ndwButton\n menu\n class=\"sub-menu-button\"\n [queryParams]=\"subItem.queryParams\"\n [routerLink]=\"subItem.path\"\n (click)=\"closeMobileMenu(subItem)\"\n >\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: subItem }\" />\n </a>\n }\n }\n }\n } @else {\n <button cdkMenuItem ndwButton menu [cdkMenuTriggerFor]=\"subMenu\">\n <ndw-icon>{{ item.icon }}</ndw-icon>\n @if (isExpanded()) {\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: item }\" />\n <ndw-icon class=\"suffix\">arrow_right</ndw-icon>\n }\n </button>\n }\n\n <ng-template #subMenu>\n <div cdkMenu class=\"sub-menu\">\n @for (subItem of item.children; track getItemKey(subItem)) {\n @if (subItem.callback) {\n <button cdkMenuItem ndwButton menu (click)=\"subItem.callback()\">\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: subItem }\" />\n </button>\n } @else {\n <a\n cdkMenuItem\n ndwButton\n menu\n [queryParams]=\"subItem.queryParams\"\n [routerLink]=\"subItem.path\"\n >\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: subItem }\" />\n </a>\n }\n }\n </div>\n </ng-template>\n }\n }\n</div>\n\n<ng-template #label let-item>\n {{ item.label }}\n @if (item.notifications) {\n <ndw-badge [value]=\"item.notifications\" />\n }\n</ng-template>\n", styles: [":root{--ndw-spacing-3xs: .125rem;--ndw-spacing-2xs: .25rem;--ndw-spacing-xs: .5rem;--ndw-spacing-sm: .75rem;--ndw-spacing-md: 1rem;--ndw-spacing-lg: 1.5rem;--ndw-spacing-xl: 2rem;--ndw-spacing-2xl: 2.5rem;--ndw-spacing-3xl: 3rem;--ndw-spacing-4xl: 5rem;--ndw-spacing-5xl: 8rem;--ndw-border-size-sm: 1px;--ndw-border-size-md: 2px;--ndw-border-size-lg: 3px;--ndw-border-radius-xs: .125rem;--ndw-border-radius-sm: .25rem;--ndw-border-radius-md: .5rem;--ndw-border-radius-lg: 1.5rem;--ndw-letter-spacing-sm: .1rem;--ndw-letter-spacing-md: .2rem;--ndw-letter-spacing-lg: .3rem;--ndw-elevation-info: 0 0 .5rem 0 hsla(var(--_link-500), .25);--ndw-elevation-content: 0 .125rem .125rem 0 hsla(var(--_grey-600), .05);--ndw-elevation-dropdown: 0 .25rem 1rem hsla(var(--_grey-600), .125);--ndw-elevation-popover: 0 .5rem 1.25rem hsla(var(--_grey-600), .125);--ndw-elevation-toast: 0 .75rem 1.25rem hsla(var(--_grey-600), .125);--ndw-backdrop-color: var(--ndw-alpha-black-040);--ndw-animation-speed-very-fast: .1s;--ndw-animation-speed-fast: .2s;--ndw-animation-speed-default: .3s;--ndw-animation-speed-slow: .5s;--ndw-icon-size-md: 1rem;--ndw-icon-size-lg: 1.5rem;--multi-select-default-width: 18.75rem;--ndw-font-family-body: \"Nunito Sans\", sans-serif;--ndw-font-family-heading: \"DM Sans\", sans-serif;--ndw-base-font-size: 16px;--ndw-font-size-2xs: .5625rem;--ndw-font-size-xs: .6875rem;--ndw-font-size-sm: .8125rem;--ndw-font-size-md: 1.125rem;--ndw-font-size-lg: 1.25rem;--ndw-font-size-xl: 1.5rem;--ndw-font-weight-regular: 400;--ndw-font-weight-bold: 650;--ndw-line-height-sm: 1.375rem;--ndw-line-height-md: 1.5rem;--ndw-rotate-half: rotate(180deg);--ndw-modal-width-sm: 31.25rem;--ndw-modal-width-md: 45rem;--main-navigation-collapse-width: 2.75rem;--main-navigation-expanded-width: 12.5rem;--main-navigation-mobile-header-height: 3.5rem}.menu [ndwButton],.sub-menu [ndwButton]{cursor:pointer}.menu [ndwButton] .suffix,.sub-menu [ndwButton] .suffix{position:absolute;right:var(--ndw-spacing-sm)}.menu{justify-content:center}.menu.expanded [ndwButton]{justify-content:flex-start;padding-inline:var(--ndw-spacing-md)}.menu.expanded [ndwButton].sub-menu-button{color:var(--ndw-color-white)}@media screen and (min-width: 1024px){.menu.expanded [ndwButton].sub-menu-button{color:var(--ndw-color-grey-400)}}@media screen and (max-width: 1024px){.menu [ndwButton]{justify-content:flex-start;padding-inline:var(--ndw-spacing-md)}}.sub-menu{background-color:var(--ndw-color-grey-700);min-width:10rem}.sub-menu [ndwButton]{justify-content:flex-start;padding-inline:var(--ndw-spacing-sm)}\n"], dependencies: [{ kind: "component", type: BadgeComponent, selector: "ndw-badge", inputs: ["value", "ariaLabel", "displayLargeNumbers"] }, { kind: "directive", type: CdkMenu, selector: "[cdkMenu]", outputs: ["closed"], exportAs: ["cdkMenu"] }, { kind: "directive", type: CdkMenuItem, selector: "[cdkMenuItem]", inputs: ["cdkMenuItemDisabled", "cdkMenuitemTypeaheadLabel"], outputs: ["cdkMenuItemTriggered"], exportAs: ["cdkMenuItem"] }, { kind: "directive", type: CdkMenuTrigger, selector: "[cdkMenuTriggerFor]", inputs: ["cdkMenuTriggerFor", "cdkMenuPosition", "cdkMenuTriggerData"], outputs: ["cdkMenuOpened", "cdkMenuClosed"], exportAs: ["cdkMenuTriggerFor"] }, { kind: "component", type: IconComponent, selector: "ndw-icon" }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2649
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.4", type: MainNavigationMenuComponent, isStandalone: true, selector: "ndw-main-navigation-menu", inputs: { isExpanded: { classPropertyName: "isExpanded", publicName: "isExpanded", isSignal: true, isRequired: true, transformFunction: null }, isMobile: { classPropertyName: "isMobile", publicName: "isMobile", isSignal: true, isRequired: true, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { closed: "closed" }, ngImport: i0, template: "<div cdkMenu class=\"menu\" [class.expanded]=\"isExpanded()\">\n @for (item of items(); track getItemKey(item)) {\n @if (!item.children) {\n @if (item.callback) {\n <button cdkMenuItem ndwButton menu (click)=\"closeMobileMenu(item)\">\n <ndw-icon>{{ item.icon }}</ndw-icon>\n @if (isExpanded() || isMobile()) {\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: item }\" />\n }\n @if (!isExpanded() && item.notifications) {\n <ndw-badge class=\"expanded-badge\" [value]=\"item.notifications\" />\n }\n </button>\n } @else {\n <a\n cdkMenuItem\n ndwButton\n menu\n [queryParams]=\"item.queryParams\"\n [routerLink]=\"item.path\"\n (click)=\"closeMobileMenu()\"\n >\n <ndw-icon>{{ item.icon }}</ndw-icon>\n @if (isExpanded() || isMobile()) {\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: item }\" />\n }\n </a>\n }\n } @else {\n @if (isMobile()) {\n <button\n cdkMenuItem\n ndwButton\n menu\n [attr.active]=\"activeMobileItem() === item || undefined\"\n (click)=\"toggleActiveMobileItem(item)\"\n (keydown)=\"handleMobileItemKeydown($event, item)\"\n >\n <ndw-icon>{{ item.icon }}</ndw-icon>\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: item }\" />\n <ndw-icon class=\"suffix\">\n {{ activeMobileItem() !== item ? 'arrow_drop_down' : 'arrow_drop_up' }}\n </ndw-icon>\n </button>\n @if (activeMobileItem() === item) {\n @for (subItem of item.children; track getItemKey(subItem)) {\n @if (subItem.callback) {\n <button\n cdkMenuItem\n ndwButton\n menu\n class=\"sub-menu-button\"\n (click)=\"closeMobileMenu(subItem)\"\n >\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: subItem }\" />\n </button>\n } @else {\n <a\n cdkMenuItem\n ndwButton\n menu\n class=\"sub-menu-button\"\n [queryParams]=\"subItem.queryParams\"\n [routerLink]=\"subItem.path\"\n (click)=\"closeMobileMenu(subItem)\"\n >\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: subItem }\" />\n </a>\n }\n }\n }\n } @else {\n <button cdkMenuItem ndwButton menu [cdkMenuTriggerFor]=\"subMenu\">\n <ndw-icon>{{ item.icon }}</ndw-icon>\n @if (isExpanded()) {\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: item }\" />\n <ndw-icon class=\"suffix\">arrow_right</ndw-icon>\n }\n </button>\n }\n\n <ng-template #subMenu>\n <div cdkMenu class=\"sub-menu\">\n @for (subItem of item.children; track getItemKey(subItem)) {\n @if (subItem.callback) {\n <button cdkMenuItem ndwButton menu (click)=\"subItem.callback()\">\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: subItem }\" />\n </button>\n } @else {\n <a\n cdkMenuItem\n ndwButton\n menu\n [queryParams]=\"subItem.queryParams\"\n [routerLink]=\"subItem.path\"\n >\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: subItem }\" />\n </a>\n }\n }\n </div>\n </ng-template>\n }\n }\n</div>\n\n<ng-template #label let-item>\n {{ item.label }}\n @if (item.notifications) {\n <ndw-badge [value]=\"item.notifications\" />\n }\n</ng-template>\n", styles: [":root{--ndw-spacing-3xs: .125rem;--ndw-spacing-2xs: .25rem;--ndw-spacing-xs: .5rem;--ndw-spacing-sm: .75rem;--ndw-spacing-md: 1rem;--ndw-spacing-lg: 1.5rem;--ndw-spacing-xl: 2rem;--ndw-spacing-2xl: 2.5rem;--ndw-spacing-3xl: 3rem;--ndw-spacing-4xl: 5rem;--ndw-spacing-5xl: 8rem;--ndw-border-size-sm: 1px;--ndw-border-size-md: 2px;--ndw-border-size-lg: 3px;--ndw-border-radius-xs: .125rem;--ndw-border-radius-sm: .25rem;--ndw-border-radius-md: .5rem;--ndw-border-radius-lg: 1.5rem;--ndw-letter-spacing-sm: .1rem;--ndw-letter-spacing-md: .2rem;--ndw-letter-spacing-lg: .3rem;--ndw-elevation-info: 0 0 .5rem 0 hsla(var(--_link-500), .25);--ndw-elevation-content: 0 .125rem .125rem 0 hsla(var(--_grey-600), .05);--ndw-elevation-dropdown: 0 .25rem 1rem hsla(var(--_grey-600), .125);--ndw-elevation-popover: 0 .5rem 1.25rem hsla(var(--_grey-600), .125);--ndw-elevation-toast: 0 .75rem 1.25rem hsla(var(--_grey-600), .125);--ndw-backdrop-color: var(--ndw-alpha-black-040);--ndw-animation-speed-very-fast: .1s;--ndw-animation-speed-fast: .2s;--ndw-animation-speed-default: .3s;--ndw-animation-speed-slow: .5s;--ndw-icon-size-md: 1rem;--ndw-icon-size-lg: 1.5rem;--multi-select-default-width: 18.75rem;--ndw-font-family-body: \"Nunito Sans\", sans-serif;--ndw-font-family-heading: \"DM Sans\", sans-serif;--ndw-base-font-size: 16px;--ndw-font-size-2xs: .5625rem;--ndw-font-size-xs: .6875rem;--ndw-font-size-sm: .8125rem;--ndw-font-size-md: 1.125rem;--ndw-font-size-lg: 1.25rem;--ndw-font-size-xl: 1.5rem;--ndw-font-weight-regular: 400;--ndw-font-weight-bold: 650;--ndw-line-height-sm: 1.375rem;--ndw-line-height-md: 1.5rem;--ndw-rotate-half: rotate(180deg);--ndw-modal-width-sm: 31.25rem;--ndw-modal-width-md: 45rem;--main-navigation-collapse-width: 2.75rem;--main-navigation-expanded-width: 12.5rem;--main-navigation-mobile-header-height: 3.5rem}.menu [ndwButton],.sub-menu [ndwButton]{cursor:pointer}.menu [ndwButton] .suffix,.sub-menu [ndwButton] .suffix{position:absolute;right:var(--ndw-spacing-sm)}.menu{justify-content:center}.menu .expanded-badge{position:absolute;left:var(--ndw-spacing-md);top:0}.menu.expanded [ndwButton]{justify-content:flex-start;padding-inline:var(--ndw-spacing-md)}.menu.expanded [ndwButton].sub-menu-button{color:var(--ndw-color-white)}@media screen and (min-width: 1024px){.menu.expanded [ndwButton].sub-menu-button{color:var(--ndw-color-grey-400)}}@media screen and (max-width: 1024px){.menu [ndwButton]{justify-content:flex-start;padding-inline:var(--ndw-spacing-md)}}.sub-menu{background-color:var(--ndw-color-grey-700);min-width:10rem}.sub-menu [ndwButton]{justify-content:flex-start;padding-inline:var(--ndw-spacing-sm)}\n"], dependencies: [{ kind: "component", type: BadgeComponent, selector: "ndw-badge" }, { kind: "directive", type: CdkMenu, selector: "[cdkMenu]", outputs: ["closed"], exportAs: ["cdkMenu"] }, { kind: "directive", type: CdkMenuItem, selector: "[cdkMenuItem]", inputs: ["cdkMenuItemDisabled", "cdkMenuitemTypeaheadLabel"], outputs: ["cdkMenuItemTriggered"], exportAs: ["cdkMenuItem"] }, { kind: "directive", type: CdkMenuTrigger, selector: "[cdkMenuTriggerFor]", inputs: ["cdkMenuTriggerFor", "cdkMenuPosition", "cdkMenuTriggerData"], outputs: ["cdkMenuOpened", "cdkMenuClosed"], exportAs: ["cdkMenuTriggerFor"] }, { kind: "component", type: IconComponent, selector: "ndw-icon" }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2237
2650
  }
2238
2651
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: MainNavigationMenuComponent, decorators: [{
2239
2652
  type: Component,
@@ -2245,7 +2658,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImpor
2245
2658
  IconComponent,
2246
2659
  RouterLink,
2247
2660
  NgTemplateOutlet,
2248
- ], changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ndw-main-navigation-menu', template: "<div cdkMenu class=\"menu\" [class.expanded]=\"isExpanded()\">\n @for (item of items(); track getItemKey(item)) {\n @if (!item.children) {\n @if (item.callback) {\n <button cdkMenuItem ndwButton menu (click)=\"closeMobileMenu(item)\">\n <ndw-icon>{{ item.icon }}</ndw-icon>\n @if (isExpanded() || isMobile()) {\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: item }\" />\n }\n </button>\n } @else {\n <a\n cdkMenuItem\n ndwButton\n menu\n [queryParams]=\"item.queryParams\"\n [routerLink]=\"item.path\"\n (click)=\"closeMobileMenu()\"\n >\n <ndw-icon>{{ item.icon }}</ndw-icon>\n @if (isExpanded() || isMobile()) {\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: item }\" />\n }\n </a>\n }\n } @else {\n @if (isMobile()) {\n <button\n cdkMenuItem\n ndwButton\n menu\n [attr.active]=\"activeMobileItem() === item || undefined\"\n (click)=\"toggleActiveMobileItem(item)\"\n (keydown)=\"handleMobileItemKeydown($event, item)\"\n >\n <ndw-icon>{{ item.icon }}</ndw-icon>\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: item }\" />\n <ndw-icon class=\"suffix\">\n {{ activeMobileItem() !== item ? 'arrow_drop_down' : 'arrow_drop_up' }}\n </ndw-icon>\n </button>\n @if (activeMobileItem() === item) {\n @for (subItem of item.children; track getItemKey(subItem)) {\n @if (subItem.callback) {\n <button\n cdkMenuItem\n ndwButton\n menu\n class=\"sub-menu-button\"\n (click)=\"closeMobileMenu(subItem)\"\n >\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: subItem }\" />\n </button>\n } @else {\n <a\n cdkMenuItem\n ndwButton\n menu\n class=\"sub-menu-button\"\n [queryParams]=\"subItem.queryParams\"\n [routerLink]=\"subItem.path\"\n (click)=\"closeMobileMenu(subItem)\"\n >\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: subItem }\" />\n </a>\n }\n }\n }\n } @else {\n <button cdkMenuItem ndwButton menu [cdkMenuTriggerFor]=\"subMenu\">\n <ndw-icon>{{ item.icon }}</ndw-icon>\n @if (isExpanded()) {\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: item }\" />\n <ndw-icon class=\"suffix\">arrow_right</ndw-icon>\n }\n </button>\n }\n\n <ng-template #subMenu>\n <div cdkMenu class=\"sub-menu\">\n @for (subItem of item.children; track getItemKey(subItem)) {\n @if (subItem.callback) {\n <button cdkMenuItem ndwButton menu (click)=\"subItem.callback()\">\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: subItem }\" />\n </button>\n } @else {\n <a\n cdkMenuItem\n ndwButton\n menu\n [queryParams]=\"subItem.queryParams\"\n [routerLink]=\"subItem.path\"\n >\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: subItem }\" />\n </a>\n }\n }\n </div>\n </ng-template>\n }\n }\n</div>\n\n<ng-template #label let-item>\n {{ item.label }}\n @if (item.notifications) {\n <ndw-badge [value]=\"item.notifications\" />\n }\n</ng-template>\n", styles: [":root{--ndw-spacing-3xs: .125rem;--ndw-spacing-2xs: .25rem;--ndw-spacing-xs: .5rem;--ndw-spacing-sm: .75rem;--ndw-spacing-md: 1rem;--ndw-spacing-lg: 1.5rem;--ndw-spacing-xl: 2rem;--ndw-spacing-2xl: 2.5rem;--ndw-spacing-3xl: 3rem;--ndw-spacing-4xl: 5rem;--ndw-spacing-5xl: 8rem;--ndw-border-size-sm: 1px;--ndw-border-size-md: 2px;--ndw-border-size-lg: 3px;--ndw-border-radius-xs: .125rem;--ndw-border-radius-sm: .25rem;--ndw-border-radius-md: .5rem;--ndw-border-radius-lg: 1.5rem;--ndw-letter-spacing-sm: .1rem;--ndw-letter-spacing-md: .2rem;--ndw-letter-spacing-lg: .3rem;--ndw-elevation-info: 0 0 .5rem 0 hsla(var(--_link-500), .25);--ndw-elevation-content: 0 .125rem .125rem 0 hsla(var(--_grey-600), .05);--ndw-elevation-dropdown: 0 .25rem 1rem hsla(var(--_grey-600), .125);--ndw-elevation-popover: 0 .5rem 1.25rem hsla(var(--_grey-600), .125);--ndw-elevation-toast: 0 .75rem 1.25rem hsla(var(--_grey-600), .125);--ndw-backdrop-color: var(--ndw-alpha-black-040);--ndw-animation-speed-very-fast: .1s;--ndw-animation-speed-fast: .2s;--ndw-animation-speed-default: .3s;--ndw-animation-speed-slow: .5s;--ndw-icon-size-md: 1rem;--ndw-icon-size-lg: 1.5rem;--multi-select-default-width: 18.75rem;--ndw-font-family-body: \"Nunito Sans\", sans-serif;--ndw-font-family-heading: \"DM Sans\", sans-serif;--ndw-base-font-size: 16px;--ndw-font-size-2xs: .5625rem;--ndw-font-size-xs: .6875rem;--ndw-font-size-sm: .8125rem;--ndw-font-size-md: 1.125rem;--ndw-font-size-lg: 1.25rem;--ndw-font-size-xl: 1.5rem;--ndw-font-weight-regular: 400;--ndw-font-weight-bold: 650;--ndw-line-height-sm: 1.375rem;--ndw-line-height-md: 1.5rem;--ndw-rotate-half: rotate(180deg);--ndw-modal-width-sm: 31.25rem;--ndw-modal-width-md: 45rem;--main-navigation-collapse-width: 2.75rem;--main-navigation-expanded-width: 12.5rem;--main-navigation-mobile-header-height: 3.5rem}.menu [ndwButton],.sub-menu [ndwButton]{cursor:pointer}.menu [ndwButton] .suffix,.sub-menu [ndwButton] .suffix{position:absolute;right:var(--ndw-spacing-sm)}.menu{justify-content:center}.menu.expanded [ndwButton]{justify-content:flex-start;padding-inline:var(--ndw-spacing-md)}.menu.expanded [ndwButton].sub-menu-button{color:var(--ndw-color-white)}@media screen and (min-width: 1024px){.menu.expanded [ndwButton].sub-menu-button{color:var(--ndw-color-grey-400)}}@media screen and (max-width: 1024px){.menu [ndwButton]{justify-content:flex-start;padding-inline:var(--ndw-spacing-md)}}.sub-menu{background-color:var(--ndw-color-grey-700);min-width:10rem}.sub-menu [ndwButton]{justify-content:flex-start;padding-inline:var(--ndw-spacing-sm)}\n"] }]
2661
+ ], changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ndw-main-navigation-menu', template: "<div cdkMenu class=\"menu\" [class.expanded]=\"isExpanded()\">\n @for (item of items(); track getItemKey(item)) {\n @if (!item.children) {\n @if (item.callback) {\n <button cdkMenuItem ndwButton menu (click)=\"closeMobileMenu(item)\">\n <ndw-icon>{{ item.icon }}</ndw-icon>\n @if (isExpanded() || isMobile()) {\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: item }\" />\n }\n @if (!isExpanded() && item.notifications) {\n <ndw-badge class=\"expanded-badge\" [value]=\"item.notifications\" />\n }\n </button>\n } @else {\n <a\n cdkMenuItem\n ndwButton\n menu\n [queryParams]=\"item.queryParams\"\n [routerLink]=\"item.path\"\n (click)=\"closeMobileMenu()\"\n >\n <ndw-icon>{{ item.icon }}</ndw-icon>\n @if (isExpanded() || isMobile()) {\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: item }\" />\n }\n </a>\n }\n } @else {\n @if (isMobile()) {\n <button\n cdkMenuItem\n ndwButton\n menu\n [attr.active]=\"activeMobileItem() === item || undefined\"\n (click)=\"toggleActiveMobileItem(item)\"\n (keydown)=\"handleMobileItemKeydown($event, item)\"\n >\n <ndw-icon>{{ item.icon }}</ndw-icon>\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: item }\" />\n <ndw-icon class=\"suffix\">\n {{ activeMobileItem() !== item ? 'arrow_drop_down' : 'arrow_drop_up' }}\n </ndw-icon>\n </button>\n @if (activeMobileItem() === item) {\n @for (subItem of item.children; track getItemKey(subItem)) {\n @if (subItem.callback) {\n <button\n cdkMenuItem\n ndwButton\n menu\n class=\"sub-menu-button\"\n (click)=\"closeMobileMenu(subItem)\"\n >\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: subItem }\" />\n </button>\n } @else {\n <a\n cdkMenuItem\n ndwButton\n menu\n class=\"sub-menu-button\"\n [queryParams]=\"subItem.queryParams\"\n [routerLink]=\"subItem.path\"\n (click)=\"closeMobileMenu(subItem)\"\n >\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: subItem }\" />\n </a>\n }\n }\n }\n } @else {\n <button cdkMenuItem ndwButton menu [cdkMenuTriggerFor]=\"subMenu\">\n <ndw-icon>{{ item.icon }}</ndw-icon>\n @if (isExpanded()) {\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: item }\" />\n <ndw-icon class=\"suffix\">arrow_right</ndw-icon>\n }\n </button>\n }\n\n <ng-template #subMenu>\n <div cdkMenu class=\"sub-menu\">\n @for (subItem of item.children; track getItemKey(subItem)) {\n @if (subItem.callback) {\n <button cdkMenuItem ndwButton menu (click)=\"subItem.callback()\">\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: subItem }\" />\n </button>\n } @else {\n <a\n cdkMenuItem\n ndwButton\n menu\n [queryParams]=\"subItem.queryParams\"\n [routerLink]=\"subItem.path\"\n >\n <ng-container *ngTemplateOutlet=\"label; context: { $implicit: subItem }\" />\n </a>\n }\n }\n </div>\n </ng-template>\n }\n }\n</div>\n\n<ng-template #label let-item>\n {{ item.label }}\n @if (item.notifications) {\n <ndw-badge [value]=\"item.notifications\" />\n }\n</ng-template>\n", styles: [":root{--ndw-spacing-3xs: .125rem;--ndw-spacing-2xs: .25rem;--ndw-spacing-xs: .5rem;--ndw-spacing-sm: .75rem;--ndw-spacing-md: 1rem;--ndw-spacing-lg: 1.5rem;--ndw-spacing-xl: 2rem;--ndw-spacing-2xl: 2.5rem;--ndw-spacing-3xl: 3rem;--ndw-spacing-4xl: 5rem;--ndw-spacing-5xl: 8rem;--ndw-border-size-sm: 1px;--ndw-border-size-md: 2px;--ndw-border-size-lg: 3px;--ndw-border-radius-xs: .125rem;--ndw-border-radius-sm: .25rem;--ndw-border-radius-md: .5rem;--ndw-border-radius-lg: 1.5rem;--ndw-letter-spacing-sm: .1rem;--ndw-letter-spacing-md: .2rem;--ndw-letter-spacing-lg: .3rem;--ndw-elevation-info: 0 0 .5rem 0 hsla(var(--_link-500), .25);--ndw-elevation-content: 0 .125rem .125rem 0 hsla(var(--_grey-600), .05);--ndw-elevation-dropdown: 0 .25rem 1rem hsla(var(--_grey-600), .125);--ndw-elevation-popover: 0 .5rem 1.25rem hsla(var(--_grey-600), .125);--ndw-elevation-toast: 0 .75rem 1.25rem hsla(var(--_grey-600), .125);--ndw-backdrop-color: var(--ndw-alpha-black-040);--ndw-animation-speed-very-fast: .1s;--ndw-animation-speed-fast: .2s;--ndw-animation-speed-default: .3s;--ndw-animation-speed-slow: .5s;--ndw-icon-size-md: 1rem;--ndw-icon-size-lg: 1.5rem;--multi-select-default-width: 18.75rem;--ndw-font-family-body: \"Nunito Sans\", sans-serif;--ndw-font-family-heading: \"DM Sans\", sans-serif;--ndw-base-font-size: 16px;--ndw-font-size-2xs: .5625rem;--ndw-font-size-xs: .6875rem;--ndw-font-size-sm: .8125rem;--ndw-font-size-md: 1.125rem;--ndw-font-size-lg: 1.25rem;--ndw-font-size-xl: 1.5rem;--ndw-font-weight-regular: 400;--ndw-font-weight-bold: 650;--ndw-line-height-sm: 1.375rem;--ndw-line-height-md: 1.5rem;--ndw-rotate-half: rotate(180deg);--ndw-modal-width-sm: 31.25rem;--ndw-modal-width-md: 45rem;--main-navigation-collapse-width: 2.75rem;--main-navigation-expanded-width: 12.5rem;--main-navigation-mobile-header-height: 3.5rem}.menu [ndwButton],.sub-menu [ndwButton]{cursor:pointer}.menu [ndwButton] .suffix,.sub-menu [ndwButton] .suffix{position:absolute;right:var(--ndw-spacing-sm)}.menu{justify-content:center}.menu .expanded-badge{position:absolute;left:var(--ndw-spacing-md);top:0}.menu.expanded [ndwButton]{justify-content:flex-start;padding-inline:var(--ndw-spacing-md)}.menu.expanded [ndwButton].sub-menu-button{color:var(--ndw-color-white)}@media screen and (min-width: 1024px){.menu.expanded [ndwButton].sub-menu-button{color:var(--ndw-color-grey-400)}}@media screen and (max-width: 1024px){.menu [ndwButton]{justify-content:flex-start;padding-inline:var(--ndw-spacing-md)}}.sub-menu{background-color:var(--ndw-color-grey-700);min-width:10rem}.sub-menu [ndwButton]{justify-content:flex-start;padding-inline:var(--ndw-spacing-sm)}\n"] }]
2249
2662
  }] });
2250
2663
 
2251
2664
  class MainNavigationComponent {
@@ -3280,7 +3693,7 @@ class SwitcherComponent {
3280
3693
  useExisting: forwardRef(() => SwitcherComponent),
3281
3694
  multi: true,
3282
3695
  },
3283
- ], ngImport: i0, template: "<div\n class=\"switch-slider\"\n [style.width]=\"sliderWidth\"\n [style.left]=\"sliderPosition\"\n [attr.aria-hidden]=\"true\"\n></div>\n\n@for (option of options(); track option.value; let i = $index) {\n <label\n class=\"switch-option\"\n [class.active]=\"selectedValue() === option.value\"\n [class.disabled]=\"option.disabled || disabled()\"\n [attr.for]=\"generateId(i)\"\n >\n <input\n type=\"radio\"\n [id]=\"generateId(i)\"\n [name]=\"componentName\"\n [value]=\"option.value\"\n [checked]=\"selectedValue() === option.value\"\n [disabled]=\"option.disabled || disabled()\"\n (change)=\"selectOption(option.value)\"\n (keydown)=\"onKeyDown($event, i)\"\n [attr.aria-describedby]=\"option.disabled ? generateId(i) + '-disabled' : null\"\n class=\"switch-radio\"\n />\n @if (option.icon) {\n <ndw-icon>{{ option.icon }}</ndw-icon>\n }\n <span class=\"switch-label\">{{ option.label }}</span>\n\n @if (option.disabled) {\n <span [id]=\"generateId(i) + '-disabled'\" class=\"sr-only\"> (disabled) </span>\n }\n </label>\n}\n", styles: [":host{width:100%;position:relative;display:flex;background-color:var(--ndw-color-grey-100);border-radius:var(--ndw-border-radius-md);padding:var(--ndw-spacing-2xs);border:var(--ndw-border-size-sm) solid transparent}:host:focus-within{outline:var(--ndw-border-size-sm) solid var(--ndw-color-info-500)}:host.disabled{opacity:.5;cursor:not-allowed;background-color:var(--ndw-color-grey-50)}.switch-slider{position:absolute;top:var(--ndw-spacing-2xs);height:calc(100% - var(--ndw-spacing-2xs) * 2);background-color:var(--ndw-color-white);border-radius:var(--ndw-border-radius-sm);box-shadow:var(--ndw-elevation-content);transition:left .2s ease,width .2s ease;z-index:1}.switch-option{box-sizing:border-box;position:relative;z-index:2;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--ndw-spacing-2xs);padding:var(--ndw-spacing-sm);border:none;background:transparent;color:var(--ndw-color-grey-500);font-size:var(--ndw-font-size-sm);font-weight:var(--ndw-font-weight-medium);cursor:pointer;border-radius:var(--ndw-border-radius-sm);transition:color .2s ease,border-color .2s ease;height:calc(var(--ndw-spacing-xl) + var(--ndw-spacing-xl))}.switch-option:hover:not(:disabled){color:var(--ndw-color-grey-700)}.switch-option.active{color:var(--ndw-color-grey-900);border:var(--ndw-border-size-sm) solid var(--ndw-color-primary-500)}.switch-option.active .switch-label{color:var(--ndw-color-black)}.switch-option.active ndw-icon{color:var(--ndw-color-primary-500)}.switch-option:disabled{cursor:not-allowed;opacity:.5}.switch-label{white-space:nowrap}.switch-radio{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}.switch-radio:focus,.switch-radio:focus-visible{outline:none}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "ndw-icon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3696
+ ], ngImport: i0, template: "<div\n class=\"switch-slider\"\n [style.width]=\"sliderWidth\"\n [style.left]=\"sliderPosition\"\n [attr.aria-hidden]=\"true\"\n></div>\n\n@for (option of options(); track option.value; let i = $index) {\n <label\n class=\"switch-option\"\n [class.active]=\"selectedValue() === option.value\"\n [class.disabled]=\"option.disabled || disabled()\"\n [attr.for]=\"generateId(i)\"\n >\n <input\n type=\"radio\"\n [id]=\"generateId(i)\"\n [name]=\"componentName\"\n [value]=\"option.value\"\n [checked]=\"selectedValue() === option.value\"\n [disabled]=\"option.disabled || disabled()\"\n (change)=\"selectOption(option.value)\"\n (keydown)=\"onKeyDown($event, i)\"\n [attr.aria-describedby]=\"option.disabled ? generateId(i) + '-disabled' : null\"\n class=\"switch-radio\"\n />\n @if (option.icon) {\n <ndw-icon>{{ option.icon }}</ndw-icon>\n }\n <span class=\"switch-label\">{{ option.label }}</span>\n\n @if (option.disabled) {\n <span [id]=\"generateId(i) + '-disabled'\" class=\"sr-only\"> (disabled) </span>\n }\n </label>\n}\n", styles: [":host{width:100%;position:relative;display:flex;background-color:var(--ndw-color-grey-100);border-radius:var(--ndw-border-radius-md);padding:var(--ndw-spacing-2xs);border:var(--ndw-border-size-sm) solid transparent}:host:focus-within{outline:var(--ndw-border-size-sm) solid var(--ndw-color-info-500)}:host.disabled{opacity:.5;cursor:not-allowed;background-color:var(--ndw-color-grey-50)}.switch-slider{position:absolute;top:var(--ndw-spacing-2xs);height:calc(100% - var(--ndw-spacing-2xs) * 2);background-color:var(--ndw-color-white);border-radius:var(--ndw-border-radius-sm);box-shadow:var(--ndw-elevation-content);transition:left .2s ease,width .2s ease;z-index:1}.switch-option{box-sizing:border-box;position:relative;z-index:2;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--ndw-spacing-2xs);padding:var(--ndw-spacing-sm);border:none;background:transparent;color:var(--ndw-color-grey-500);font-size:var(--ndw-font-size-sm);font-weight:var(--ndw-font-weight-medium);cursor:pointer;border-radius:var(--ndw-border-radius-sm);transition:color .2s ease,border-color .2s ease;height:calc(var(--ndw-spacing-xl) + var(--ndw-spacing-xl))}.switch-option:hover:not(:disabled){color:var(--ndw-color-grey-700)}.switch-option.active{color:var(--ndw-color-grey-900);border:var(--ndw-border-size-sm) solid var(--ndw-color-primary-500)}.switch-option.active .switch-label{color:var(--ndw-color-text)}.switch-option.active ndw-icon{color:var(--ndw-color-primary-500)}.switch-option:disabled{cursor:not-allowed;opacity:.5}.switch-label{white-space:nowrap}.switch-radio{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}.switch-radio:focus,.switch-radio:focus-visible{outline:none}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "ndw-icon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3284
3697
  }
3285
3698
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: SwitcherComponent, decorators: [{
3286
3699
  type: Component,
@@ -3293,7 +3706,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImpor
3293
3706
  ], changeDetection: ChangeDetectionStrategy.OnPush, host: {
3294
3707
  role: 'radiogroup',
3295
3708
  '[class.disabled]': 'disabled()',
3296
- }, template: "<div\n class=\"switch-slider\"\n [style.width]=\"sliderWidth\"\n [style.left]=\"sliderPosition\"\n [attr.aria-hidden]=\"true\"\n></div>\n\n@for (option of options(); track option.value; let i = $index) {\n <label\n class=\"switch-option\"\n [class.active]=\"selectedValue() === option.value\"\n [class.disabled]=\"option.disabled || disabled()\"\n [attr.for]=\"generateId(i)\"\n >\n <input\n type=\"radio\"\n [id]=\"generateId(i)\"\n [name]=\"componentName\"\n [value]=\"option.value\"\n [checked]=\"selectedValue() === option.value\"\n [disabled]=\"option.disabled || disabled()\"\n (change)=\"selectOption(option.value)\"\n (keydown)=\"onKeyDown($event, i)\"\n [attr.aria-describedby]=\"option.disabled ? generateId(i) + '-disabled' : null\"\n class=\"switch-radio\"\n />\n @if (option.icon) {\n <ndw-icon>{{ option.icon }}</ndw-icon>\n }\n <span class=\"switch-label\">{{ option.label }}</span>\n\n @if (option.disabled) {\n <span [id]=\"generateId(i) + '-disabled'\" class=\"sr-only\"> (disabled) </span>\n }\n </label>\n}\n", styles: [":host{width:100%;position:relative;display:flex;background-color:var(--ndw-color-grey-100);border-radius:var(--ndw-border-radius-md);padding:var(--ndw-spacing-2xs);border:var(--ndw-border-size-sm) solid transparent}:host:focus-within{outline:var(--ndw-border-size-sm) solid var(--ndw-color-info-500)}:host.disabled{opacity:.5;cursor:not-allowed;background-color:var(--ndw-color-grey-50)}.switch-slider{position:absolute;top:var(--ndw-spacing-2xs);height:calc(100% - var(--ndw-spacing-2xs) * 2);background-color:var(--ndw-color-white);border-radius:var(--ndw-border-radius-sm);box-shadow:var(--ndw-elevation-content);transition:left .2s ease,width .2s ease;z-index:1}.switch-option{box-sizing:border-box;position:relative;z-index:2;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--ndw-spacing-2xs);padding:var(--ndw-spacing-sm);border:none;background:transparent;color:var(--ndw-color-grey-500);font-size:var(--ndw-font-size-sm);font-weight:var(--ndw-font-weight-medium);cursor:pointer;border-radius:var(--ndw-border-radius-sm);transition:color .2s ease,border-color .2s ease;height:calc(var(--ndw-spacing-xl) + var(--ndw-spacing-xl))}.switch-option:hover:not(:disabled){color:var(--ndw-color-grey-700)}.switch-option.active{color:var(--ndw-color-grey-900);border:var(--ndw-border-size-sm) solid var(--ndw-color-primary-500)}.switch-option.active .switch-label{color:var(--ndw-color-black)}.switch-option.active ndw-icon{color:var(--ndw-color-primary-500)}.switch-option:disabled{cursor:not-allowed;opacity:.5}.switch-label{white-space:nowrap}.switch-radio{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}.switch-radio:focus,.switch-radio:focus-visible{outline:none}\n"] }]
3709
+ }, template: "<div\n class=\"switch-slider\"\n [style.width]=\"sliderWidth\"\n [style.left]=\"sliderPosition\"\n [attr.aria-hidden]=\"true\"\n></div>\n\n@for (option of options(); track option.value; let i = $index) {\n <label\n class=\"switch-option\"\n [class.active]=\"selectedValue() === option.value\"\n [class.disabled]=\"option.disabled || disabled()\"\n [attr.for]=\"generateId(i)\"\n >\n <input\n type=\"radio\"\n [id]=\"generateId(i)\"\n [name]=\"componentName\"\n [value]=\"option.value\"\n [checked]=\"selectedValue() === option.value\"\n [disabled]=\"option.disabled || disabled()\"\n (change)=\"selectOption(option.value)\"\n (keydown)=\"onKeyDown($event, i)\"\n [attr.aria-describedby]=\"option.disabled ? generateId(i) + '-disabled' : null\"\n class=\"switch-radio\"\n />\n @if (option.icon) {\n <ndw-icon>{{ option.icon }}</ndw-icon>\n }\n <span class=\"switch-label\">{{ option.label }}</span>\n\n @if (option.disabled) {\n <span [id]=\"generateId(i) + '-disabled'\" class=\"sr-only\"> (disabled) </span>\n }\n </label>\n}\n", styles: [":host{width:100%;position:relative;display:flex;background-color:var(--ndw-color-grey-100);border-radius:var(--ndw-border-radius-md);padding:var(--ndw-spacing-2xs);border:var(--ndw-border-size-sm) solid transparent}:host:focus-within{outline:var(--ndw-border-size-sm) solid var(--ndw-color-info-500)}:host.disabled{opacity:.5;cursor:not-allowed;background-color:var(--ndw-color-grey-50)}.switch-slider{position:absolute;top:var(--ndw-spacing-2xs);height:calc(100% - var(--ndw-spacing-2xs) * 2);background-color:var(--ndw-color-white);border-radius:var(--ndw-border-radius-sm);box-shadow:var(--ndw-elevation-content);transition:left .2s ease,width .2s ease;z-index:1}.switch-option{box-sizing:border-box;position:relative;z-index:2;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--ndw-spacing-2xs);padding:var(--ndw-spacing-sm);border:none;background:transparent;color:var(--ndw-color-grey-500);font-size:var(--ndw-font-size-sm);font-weight:var(--ndw-font-weight-medium);cursor:pointer;border-radius:var(--ndw-border-radius-sm);transition:color .2s ease,border-color .2s ease;height:calc(var(--ndw-spacing-xl) + var(--ndw-spacing-xl))}.switch-option:hover:not(:disabled){color:var(--ndw-color-grey-700)}.switch-option.active{color:var(--ndw-color-grey-900);border:var(--ndw-border-size-sm) solid var(--ndw-color-primary-500)}.switch-option.active .switch-label{color:var(--ndw-color-text)}.switch-option.active ndw-icon{color:var(--ndw-color-primary-500)}.switch-option:disabled{cursor:not-allowed;opacity:.5}.switch-label{white-space:nowrap}.switch-radio{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}.switch-radio:focus,.switch-radio:focus-visible{outline:none}\n"] }]
3297
3710
  }] });
3298
3711
 
3299
3712
  class TabComponent {
@@ -3308,6 +3721,7 @@ class TabComponent {
3308
3721
  }
3309
3722
  title = input.required(...(ngDevMode ? [{ debugName: "title" }] : []));
3310
3723
  disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
3724
+ hasError = input(false, ...(ngDevMode ? [{ debugName: "hasError" }] : []));
3311
3725
  active = false;
3312
3726
  id = input(crypto.randomUUID(), ...(ngDevMode ? [{ debugName: "id" }] : []));
3313
3727
  ngOnInit() {
@@ -3317,7 +3731,7 @@ class TabComponent {
3317
3731
  return this._elementRef.nativeElement;
3318
3732
  }
3319
3733
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: TabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3320
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.2.4", type: TabComponent, isStandalone: true, selector: "ndw-tab", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "_contentTemplate", first: true, predicate: ["content"], descendants: true, isSignal: true }], ngImport: i0, template: "<!-- Create a template for the content of the <ndw-tab> so that we can grab a reference to this\n TemplateRef and use it in a Portal to render the tab content in the appropriate place in the\n tab-group. -->\n<ng-template #content><ng-content></ng-content></ng-template>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3734
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.2.4", type: TabComponent, isStandalone: true, selector: "ndw-tab", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, hasError: { classPropertyName: "hasError", publicName: "hasError", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "_contentTemplate", first: true, predicate: ["content"], descendants: true, isSignal: true }], ngImport: i0, template: "<!-- Create a template for the content of the <ndw-tab> so that we can grab a reference to this\n TemplateRef and use it in a Portal to render the tab content in the appropriate place in the\n tab-group. -->\n<ng-template #content><ng-content></ng-content></ng-template>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3321
3735
  }
3322
3736
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: TabComponent, decorators: [{
3323
3737
  type: Component,
@@ -3389,11 +3803,11 @@ class TabGroupComponent {
3389
3803
  return start;
3390
3804
  }
3391
3805
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: TabGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3392
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.4", type: TabGroupComponent, isStandalone: true, selector: "ndw-tab-group", inputs: { hasPadding: { classPropertyName: "hasPadding", publicName: "hasPadding", isSignal: true, isRequired: false, transformFunction: null }, activeTabId: { classPropertyName: "activeTabId", publicName: "activeTabId", isSignal: true, isRequired: false, transformFunction: null }, inlinePadding: { classPropertyName: "inlinePadding", publicName: "inlinePadding", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activeTabId: "activeTabIdChange" }, queries: [{ propertyName: "_tabs", predicate: TabComponent, isSignal: true }], viewQueries: [{ propertyName: "_tabButtons", predicate: ["tabButton"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"tab-group\" role=\"tablist\" [class.with-padding]=\"hasPadding()\">\n @for (tab of tabs(); track tab.id(); let i = $index) {\n <button\n #tabButton\n class=\"tab-button\"\n role=\"tab\"\n type=\"button\"\n [attr.active]=\"tab.active ? true : undefined\"\n [attr.aria-controls]=\"'tab-panel-' + tab.id\"\n [attr.aria-selected]=\"tab.active\"\n [disabled]=\"tab.disabled() ? true : null\"\n [id]=\"'tab-' + tab.id\"\n [tabindex]=\"tab.active ? 0 : -1\"\n (click)=\"selectTab(i)\"\n (keydown)=\"onKeyDown($event)\"\n >\n {{ tab.title() }}\n </button>\n }\n</div>\n@for (tab of tabs(); track tab.id(); let i = $index) {\n <div\n class=\"tab-content\"\n [ngClass]=\"{ 'is-hidden': !tab.active }\"\n [id]=\"'tab-panel-' + tab.id\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + tab.id\"\n [tabindex]=\"0\"\n >\n <ng-template [cdkPortalOutlet]=\"tab.content\"></ng-template>\n </div>\n}\n", styles: [".tab-group{display:flex;gap:var(--ndw-spacing-lg);overflow:auto hidden;padding-left:0;position:relative;z-index:1}.tab-group.with-padding{padding-inline:var(--ndw-spacing-lg)}.tab-group:after{background-color:var(--ndw-color-grey-200);bottom:0;content:\"\";height:var(--ndw-border-size-sm);position:absolute;left:0;right:0;width:auto;z-index:-1}.tab-button{background:none;border:none;border-bottom:var(--ndw-border-size-lg) solid transparent;color:var(--ndw-color-grey-400);cursor:pointer;display:block;font-weight:700;padding:var(--ndw-spacing-md) 0;position:relative;transition:border-bottom .2s ease-out,color .2s ease-out;word-break:break-word}.tab-button:disabled{pointer-events:none;opacity:.5}.tab-button:hover{border-color:var(--ndw-color-grey-500);color:var(--ndw-color-grey-500)}.tab-button:active,.tab-button:focus{border-color:transparent;color:var(--ndw-color-grey-400)}.tab-button[aria-selected=true]{border-color:var(--ndw-color-primary);color:var(--ndw-color-primary)}.tab-button[aria-selected=true]:hover{border-color:var(--ndw-color-primary-hover);color:var(--ndw-color-primary-hover)}.tab-button[aria-selected=true]:active{border-color:var(--ndw-color-primary);color:var(--ndw-color-primary)}.tab-content{padding-top:var(--ndw-spacing-md)}.tab-content.is-hidden{display:none}\n"], dependencies: [{ kind: "directive", type: CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3806
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.4", type: TabGroupComponent, isStandalone: true, selector: "ndw-tab-group", inputs: { hasPadding: { classPropertyName: "hasPadding", publicName: "hasPadding", isSignal: true, isRequired: false, transformFunction: null }, activeTabId: { classPropertyName: "activeTabId", publicName: "activeTabId", isSignal: true, isRequired: false, transformFunction: null }, inlinePadding: { classPropertyName: "inlinePadding", publicName: "inlinePadding", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activeTabId: "activeTabIdChange" }, queries: [{ propertyName: "_tabs", predicate: TabComponent, isSignal: true }], viewQueries: [{ propertyName: "_tabButtons", predicate: ["tabButton"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"tab-group\" role=\"tablist\" [class.with-padding]=\"hasPadding()\">\n @for (tab of tabs(); track tab.id(); let i = $index) {\n <button\n #tabButton\n class=\"tab-button\"\n role=\"tab\"\n type=\"button\"\n [attr.active]=\"tab.active ? true : undefined\"\n [attr.aria-controls]=\"'tab-panel-' + tab.id\"\n [attr.aria-selected]=\"tab.active\"\n [disabled]=\"tab.disabled() ? true : null\"\n [id]=\"'tab-' + tab.id\"\n [tabindex]=\"tab.active ? 0 : -1\"\n (click)=\"selectTab(i)\"\n (keydown)=\"onKeyDown($event)\"\n >\n {{ tab.title() }}\n @if (tab.hasError()) {\n <ndw-badge [size]=\"'small'\" [variant]=\"'error'\" />\n }\n </button>\n }\n</div>\n@for (tab of tabs(); track tab.id(); let i = $index) {\n <div\n class=\"tab-content\"\n [ngClass]=\"{ 'is-hidden': !tab.active }\"\n [id]=\"'tab-panel-' + tab.id\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + tab.id\"\n [tabindex]=\"0\"\n >\n <ng-template [cdkPortalOutlet]=\"tab.content\"></ng-template>\n </div>\n}\n", styles: [".tab-group{display:flex;gap:var(--ndw-spacing-lg);overflow:auto hidden;padding-left:0;position:relative;z-index:1}.tab-group.with-padding{padding-inline:var(--ndw-spacing-lg)}.tab-group:after{background-color:var(--ndw-color-grey-200);bottom:0;content:\"\";height:var(--ndw-border-size-sm);position:absolute;left:0;right:0;width:auto;z-index:-1}.tab-button{background:none;border:none;border-bottom:var(--ndw-border-size-lg) solid transparent;color:var(--ndw-color-grey-400);cursor:pointer;display:block;font-weight:700;padding:var(--ndw-spacing-md) 0;position:relative;transition:border-bottom .2s ease-out,color .2s ease-out;word-break:break-word}.tab-button ndw-badge{position:absolute;top:0rem;right:-1rem;pointer-events:none}.tab-button ndw-badge.small{top:.25rem;right:-.75rem}.tab-button:disabled{pointer-events:none;opacity:.5}.tab-button:hover{border-color:var(--ndw-color-grey-500);color:var(--ndw-color-grey-500)}.tab-button:active,.tab-button:focus{border-color:transparent;color:var(--ndw-color-grey-400)}.tab-button[aria-selected=true]{border-color:var(--ndw-color-primary);color:var(--ndw-color-primary)}.tab-button[aria-selected=true]:hover{border-color:var(--ndw-color-primary-hover);color:var(--ndw-color-primary-hover)}.tab-button[aria-selected=true]:active{border-color:var(--ndw-color-primary);color:var(--ndw-color-primary)}.tab-content{padding-top:var(--ndw-spacing-md)}.tab-content.is-hidden{display:none}\n"], dependencies: [{ kind: "directive", type: CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: BadgeComponent, selector: "ndw-badge" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3393
3807
  }
3394
3808
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: TabGroupComponent, decorators: [{
3395
3809
  type: Component,
3396
- args: [{ selector: 'ndw-tab-group', imports: [CdkPortalOutlet, NgClass], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"tab-group\" role=\"tablist\" [class.with-padding]=\"hasPadding()\">\n @for (tab of tabs(); track tab.id(); let i = $index) {\n <button\n #tabButton\n class=\"tab-button\"\n role=\"tab\"\n type=\"button\"\n [attr.active]=\"tab.active ? true : undefined\"\n [attr.aria-controls]=\"'tab-panel-' + tab.id\"\n [attr.aria-selected]=\"tab.active\"\n [disabled]=\"tab.disabled() ? true : null\"\n [id]=\"'tab-' + tab.id\"\n [tabindex]=\"tab.active ? 0 : -1\"\n (click)=\"selectTab(i)\"\n (keydown)=\"onKeyDown($event)\"\n >\n {{ tab.title() }}\n </button>\n }\n</div>\n@for (tab of tabs(); track tab.id(); let i = $index) {\n <div\n class=\"tab-content\"\n [ngClass]=\"{ 'is-hidden': !tab.active }\"\n [id]=\"'tab-panel-' + tab.id\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + tab.id\"\n [tabindex]=\"0\"\n >\n <ng-template [cdkPortalOutlet]=\"tab.content\"></ng-template>\n </div>\n}\n", styles: [".tab-group{display:flex;gap:var(--ndw-spacing-lg);overflow:auto hidden;padding-left:0;position:relative;z-index:1}.tab-group.with-padding{padding-inline:var(--ndw-spacing-lg)}.tab-group:after{background-color:var(--ndw-color-grey-200);bottom:0;content:\"\";height:var(--ndw-border-size-sm);position:absolute;left:0;right:0;width:auto;z-index:-1}.tab-button{background:none;border:none;border-bottom:var(--ndw-border-size-lg) solid transparent;color:var(--ndw-color-grey-400);cursor:pointer;display:block;font-weight:700;padding:var(--ndw-spacing-md) 0;position:relative;transition:border-bottom .2s ease-out,color .2s ease-out;word-break:break-word}.tab-button:disabled{pointer-events:none;opacity:.5}.tab-button:hover{border-color:var(--ndw-color-grey-500);color:var(--ndw-color-grey-500)}.tab-button:active,.tab-button:focus{border-color:transparent;color:var(--ndw-color-grey-400)}.tab-button[aria-selected=true]{border-color:var(--ndw-color-primary);color:var(--ndw-color-primary)}.tab-button[aria-selected=true]:hover{border-color:var(--ndw-color-primary-hover);color:var(--ndw-color-primary-hover)}.tab-button[aria-selected=true]:active{border-color:var(--ndw-color-primary);color:var(--ndw-color-primary)}.tab-content{padding-top:var(--ndw-spacing-md)}.tab-content.is-hidden{display:none}\n"] }]
3810
+ args: [{ selector: 'ndw-tab-group', imports: [CdkPortalOutlet, NgClass, BadgeComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"tab-group\" role=\"tablist\" [class.with-padding]=\"hasPadding()\">\n @for (tab of tabs(); track tab.id(); let i = $index) {\n <button\n #tabButton\n class=\"tab-button\"\n role=\"tab\"\n type=\"button\"\n [attr.active]=\"tab.active ? true : undefined\"\n [attr.aria-controls]=\"'tab-panel-' + tab.id\"\n [attr.aria-selected]=\"tab.active\"\n [disabled]=\"tab.disabled() ? true : null\"\n [id]=\"'tab-' + tab.id\"\n [tabindex]=\"tab.active ? 0 : -1\"\n (click)=\"selectTab(i)\"\n (keydown)=\"onKeyDown($event)\"\n >\n {{ tab.title() }}\n @if (tab.hasError()) {\n <ndw-badge [size]=\"'small'\" [variant]=\"'error'\" />\n }\n </button>\n }\n</div>\n@for (tab of tabs(); track tab.id(); let i = $index) {\n <div\n class=\"tab-content\"\n [ngClass]=\"{ 'is-hidden': !tab.active }\"\n [id]=\"'tab-panel-' + tab.id\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + tab.id\"\n [tabindex]=\"0\"\n >\n <ng-template [cdkPortalOutlet]=\"tab.content\"></ng-template>\n </div>\n}\n", styles: [".tab-group{display:flex;gap:var(--ndw-spacing-lg);overflow:auto hidden;padding-left:0;position:relative;z-index:1}.tab-group.with-padding{padding-inline:var(--ndw-spacing-lg)}.tab-group:after{background-color:var(--ndw-color-grey-200);bottom:0;content:\"\";height:var(--ndw-border-size-sm);position:absolute;left:0;right:0;width:auto;z-index:-1}.tab-button{background:none;border:none;border-bottom:var(--ndw-border-size-lg) solid transparent;color:var(--ndw-color-grey-400);cursor:pointer;display:block;font-weight:700;padding:var(--ndw-spacing-md) 0;position:relative;transition:border-bottom .2s ease-out,color .2s ease-out;word-break:break-word}.tab-button ndw-badge{position:absolute;top:0rem;right:-1rem;pointer-events:none}.tab-button ndw-badge.small{top:.25rem;right:-.75rem}.tab-button:disabled{pointer-events:none;opacity:.5}.tab-button:hover{border-color:var(--ndw-color-grey-500);color:var(--ndw-color-grey-500)}.tab-button:active,.tab-button:focus{border-color:transparent;color:var(--ndw-color-grey-400)}.tab-button[aria-selected=true]{border-color:var(--ndw-color-primary);color:var(--ndw-color-primary)}.tab-button[aria-selected=true]:hover{border-color:var(--ndw-color-primary-hover);color:var(--ndw-color-primary-hover)}.tab-button[aria-selected=true]:active{border-color:var(--ndw-color-primary);color:var(--ndw-color-primary)}.tab-content{padding-top:var(--ndw-spacing-md)}.tab-content.is-hidden{display:none}\n"] }]
3397
3811
  }], ctorParameters: () => [] });
3398
3812
 
3399
3813
  const ndwAgGridTheme = {
@@ -3607,5 +4021,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImpor
3607
4021
  * Generated bundle index. Do not edit.
3608
4022
  */
3609
4023
 
3610
- export { AccordionComponent, AccordionService, AlertComponent, AutoGrowDirective, AutosuggestAddOptionComponent, AutosuggestDirective, AutosuggestOptionComponent, AutosuggestPanelComponent, AvatarComponent, BadgeComponent, BannerComponent, BreadcrumbComponent, BreadcrumbGroupComponent, ButtonDirective, CARD_COMPONENTS, CARD_ID_TOKEN, CardComponent, CardContentComponent, CardFooterComponent, CardHeaderComponent, CheckboxComponent, CheckboxGroupComponent, CollapsibleComponent, DEFAULT_BACKGROUNDS, DashboardCardComponent, DatepickerComponent, DropdownComponent, EditBarActionsComponent, EditBarComponent, EditBarMessageComponent, ErrorComponent, FavoriteComponent, FileUploadComponent, FormFieldComponent, FormFieldElement, HoverableListItemComponent, IconComponent, InfoComponent, InputButtonComponent, InputDirective, InputIconComponent, KeyValueListComponent, LayoutBannersComponent, LayoutComponent, ListComponent, ListItemComponent, LoaderComponent, MAP_BACKGROUNDS, MAP_BACKGROUND_IMAGES, MAP_LAYERS, MAP_LAYER_IMAGES, MODAL_COMPONENTS, MainNavigationComponent, MapButtonComponent, MapDisplayComponent, MapDisplayOptionComponent, MapLegendComponent, MaxCharDirective, ModalComponent, ModalContentComponent, ModalFooterComponent, ModalHeaderComponent, ModalService, MonthInputComponent, MultiSelectComponent, OptionComponent, OptionGroupComponent, PillComponent, PopoverTriggerDirective, RadioButtonComponent, RadioGroupComponent, RouterBreadcrumbsComponent, SplitterComponent, SummaryCardActionComponent, SummaryCardActionsComponent, SummaryCardComponent, SummaryCardContentComponent, SummaryCardHeaderComponent, SummaryCardSubtitleComponent, SummaryCardTagComponent, SummaryCardTagsComponent, SwitcherComponent, TabComponent, TabGroupComponent, TagComponent, ToastComponent, ToastService, TooltipComponent, TooltipDirective, fontMapButtonIcons, mapButtonIcons, ndwAgGridTheme, svgMapButtonIcons };
4024
+ export { AccordionComponent, AccordionService, AlertComponent, AutoGrowDirective, AutosuggestAddOptionComponent, AutosuggestDirective, AutosuggestOptionComponent, AutosuggestPanelComponent, AvatarComponent, BadgeComponent, BannerComponent, BreadcrumbComponent, BreadcrumbGroupComponent, ButtonDirective, CARD_COMPONENTS, CARD_ID_TOKEN, CalendarComponent, CardComponent, CardContentComponent, CardFooterComponent, CardHeaderComponent, CheckboxComponent, CheckboxGroupComponent, CollapsibleComponent, DEFAULT_BACKGROUNDS, DashboardCardComponent, DatepickerComponent, DropdownComponent, EditBarActionsComponent, EditBarComponent, EditBarMessageComponent, ErrorComponent, FavoriteComponent, FileUploadComponent, FormFieldComponent, FormFieldElement, HoverableListItemComponent, IconComponent, InfoComponent, InputButtonComponent, InputDirective, InputIconComponent, KeyValueListComponent, LayoutBannersComponent, LayoutComponent, ListComponent, ListItemComponent, LoaderComponent, MAP_BACKGROUNDS, MAP_BACKGROUND_IMAGES, MAP_LAYERS, MAP_LAYER_IMAGES, MODAL_COMPONENTS, MainNavigationComponent, MapButtonComponent, MapDisplayComponent, MapDisplayOptionComponent, MapLegendComponent, MaxCharDirective, ModalComponent, ModalContentComponent, ModalFooterComponent, ModalHeaderComponent, ModalService, MonthInputComponent, MultiSelectComponent, OptionComponent, OptionGroupComponent, PillComponent, PopoverTriggerDirective, RadioButtonComponent, RadioGroupComponent, RouterBreadcrumbsComponent, SplitterComponent, SummaryCardActionComponent, SummaryCardActionsComponent, SummaryCardComponent, SummaryCardContentComponent, SummaryCardHeaderComponent, SummaryCardSubtitleComponent, SummaryCardTagComponent, SummaryCardTagsComponent, SwitcherComponent, TabComponent, TabGroupComponent, TagComponent, ToastComponent, ToastService, TooltipComponent, TooltipDirective, fontMapButtonIcons, mapButtonIcons, ndwAgGridTheme, svgMapButtonIcons };
3611
4025
  //# sourceMappingURL=ndwnu-design-system.mjs.map