{"version":3,"file":"vismaux-ngx-vud.mjs","sources":["../../../projects/ngx-vud/src/lib/alert/alert-i18n.service.ts","../../../projects/ngx-vud/src/lib/alert/alert.component.ts","../../../projects/ngx-vud/src/lib/alert/alert.component.html","../../../projects/ngx-vud/src/lib/alert/alert.module.ts","../../../projects/ngx-vud/src/lib/button-tab/button-tab-group.component.ts","../../../projects/ngx-vud/src/lib/button-tab/button-tab-group.component.html","../../../projects/ngx-vud/src/lib/button-tab/button-tab.directive.ts","../../../projects/ngx-vud/src/lib/button-tab/button-tab.module.ts","../../../projects/ngx-vud/src/lib/button/button.directive.ts","../../../projects/ngx-vud/src/lib/button/direction-button.directive.ts","../../../projects/ngx-vud/src/lib/button/transparent-button.directive.ts","../../../projects/ngx-vud/src/lib/icon/icon.config.ts","../../../projects/ngx-vud/src/lib/icon/icon.component.ts","../../../projects/ngx-vud/src/lib/icon/icon.module.ts","../../../projects/ngx-vud/src/lib/button/icon-button.directive.ts","../../../projects/ngx-vud/src/lib/button/button.module.ts","../../../projects/ngx-vud/src/lib/checkbox/checkbox.component.ts","../../../projects/ngx-vud/src/lib/checkbox/checkbox.component.html","../../../projects/ngx-vud/src/lib/checkbox/checkbox-required.validator.ts","../../../projects/ngx-vud/src/lib/tooltip/tooltip.component.ts","../../../projects/ngx-vud/src/lib/tooltip/tooltip.component.html","../../../projects/ngx-vud/src/lib/tooltip/tooltip.directive.ts","../../../projects/ngx-vud/src/lib/tooltip/tooltip.module.ts","../../../projects/ngx-vud/src/lib/error-tooltip/error-messages/error.directive.ts","../../../projects/ngx-vud/src/lib/error-tooltip/error-messages/errors.component.ts","../../../projects/ngx-vud/src/lib/error-tooltip/error-messages/global-error-messages.service.ts","../../../projects/ngx-vud/src/lib/error-tooltip/error-messages/global-errors.component.ts","../../../projects/ngx-vud/src/lib/error-tooltip/error-tooltip-content.component.ts","../../../projects/ngx-vud/src/lib/error-tooltip/error-tooltip-content.component.html","../../../projects/ngx-vud/src/lib/error-tooltip/error-tooltip.directive.ts","../../../projects/ngx-vud/src/lib/error-tooltip/native-error-tooltip-control.directive.ts","../../../projects/ngx-vud/src/lib/error-tooltip/error-tooltip.module.ts","../../../projects/ngx-vud/src/lib/checkbox/checkbox-error-tooltip.directive.ts","../../../projects/ngx-vud/src/lib/checkbox/checkbox.module.ts","../../../projects/ngx-vud/src/lib/collapsible-list/collapsible-list-base.ts","../../../projects/ngx-vud/src/lib/common/animations.ts","../../../projects/ngx-vud/src/lib/collapsible-list/expansion-panel/expansion-panel.component.ts","../../../projects/ngx-vud/src/lib/collapsible-list/expansion-panel/expansion-panel.component.html","../../../projects/ngx-vud/src/lib/collapsible-list/collapsible-list.component.ts","../../../projects/ngx-vud/src/lib/collapsible-list/collapsible-list.component.html","../../../projects/ngx-vud/src/lib/collapsible-list/panel-title/panel-title.component.ts","../../../projects/ngx-vud/src/lib/collapsible-list/panel-title/panel-title.component.html","../../../projects/ngx-vud/src/lib/collapsible-list/collapsible-list.module.ts","../../../projects/ngx-vud/src/lib/datepicker/ngb-datepicker/util/util.ts","../../../projects/ngx-vud/src/lib/datepicker/ngb-datepicker/datepicker/ngb-date.ts","../../../projects/ngx-vud/src/lib/datepicker/ngb-datepicker/datepicker/ngb-calendar.ts","../../../projects/ngx-vud/src/lib/datepicker/datepicker-parser-formatter.ts","../../../projects/ngx-vud/src/lib/utils/utils.ts","../../../projects/ngx-vud/src/lib/datepicker/adapters/date-struct.adapter.ts","../../../projects/ngx-vud/src/lib/datepicker/datepicker-input/datepicker-input-i18n.service.ts","../../../projects/ngx-vud/src/lib/datepicker/adapters/date-native.adapter.ts","../../../projects/ngx-vud/src/lib/datepicker/adapters/date-native-utc.adapter.ts","../../../projects/ngx-vud/src/lib/datepicker/adapters/date-native-utc-iso.adapter.ts","../../../projects/ngx-vud/src/lib/datepicker/datepicker/datepicker.utils.ts","../../../projects/ngx-vud/src/lib/datepicker/ngb-datepicker/datepicker/datepicker-tools.ts","../../../projects/ngx-vud/src/lib/datepicker/datepicker-i18n.service.ts","../../../projects/ngx-vud/src/lib/datepicker/ngb-datepicker/datepicker/datepicker-service.ts","../../../projects/ngx-vud/src/lib/datepicker/ngb-datepicker/datepicker/datepicker-view-model.ts","../../../projects/ngx-vud/src/lib/datepicker/ngb-datepicker/datepicker/datepicker-day-view.ts","../../../projects/ngx-vud/src/lib/datepicker/ngb-datepicker/datepicker/datepicker-navigation-select.ts","../../../projects/ngx-vud/src/lib/datepicker/ngb-datepicker/datepicker/datepicker-navigation.ts","../../../projects/ngx-vud/src/lib/datepicker/ngb-datepicker/util/key.ts","../../../projects/ngx-vud/src/lib/datepicker/ngb-datepicker/datepicker/datepicker-keyboard-service.ts","../../../projects/ngx-vud/src/lib/datepicker/ngb-datepicker/datepicker/datepicker-config.ts","../../../projects/ngx-vud/src/lib/datepicker/ngb-datepicker/datepicker/adapters/ngb-date-adapter.ts","../../../projects/ngx-vud/src/lib/datepicker/ngb-datepicker/datepicker/datepicker.ts","../../../projects/ngx-vud/src/lib/datepicker/ngb-datepicker/datepicker/ngb-date-parser-formatter.ts","../../../projects/ngx-vud/src/lib/datepicker/ngb-datepicker/datepicker/datepicker.module.ts","../../../projects/ngx-vud/src/lib/datepicker/datepicker/datepicker.component.ts","../../../projects/ngx-vud/src/lib/datepicker/datepicker/datepicker.component.html","../../../projects/ngx-vud/src/lib/datepicker/datepicker-input/datepicker-input.component.ts","../../../projects/ngx-vud/src/lib/datepicker/datepicker-input/datepicker-input.component.html","../../../projects/ngx-vud/src/lib/datepicker/datepicker-input/datepicker-input-error-tooltip.directive.ts","../../../projects/ngx-vud/src/lib/datepicker/datepicker.module.ts","../../../projects/ngx-vud/src/lib/year-month-picker/year-month-picker-parser-formatter.ts","../../../projects/ngx-vud/src/lib/year-month-picker/year-month-picker.utils.ts","../../../projects/ngx-vud/src/lib/year-month-picker/adapters/year-month-struct.adapter.ts","../../../projects/ngx-vud/src/lib/year-month-picker/year-month-picker-i18n.service.ts","../../../projects/ngx-vud/src/lib/year-month-picker/adapters/year-month-native-utc-iso-date.adapter.ts","../../../projects/ngx-vud/src/lib/year-month-picker/year-month-picker/year-month-picker.component.ts","../../../projects/ngx-vud/src/lib/year-month-picker/year-month-picker/year-month-picker.component.html","../../../projects/ngx-vud/src/lib/year-month-picker/year-month-picker-input/year-month-picker-input.component.ts","../../../projects/ngx-vud/src/lib/year-month-picker/year-month-picker-input/year-month-picker-input.component.html","../../../projects/ngx-vud/src/lib/year-month-picker/year-month-picker-input/year-month-picker-input-error-tooltip.directive.ts","../../../projects/ngx-vud/src/lib/year-month-picker/year-month-picker.module.ts","../../../projects/ngx-vud/src/lib/dropdown/dropdown-toggle.directive.ts","../../../projects/ngx-vud/src/lib/dropdown/dropdown.directive.ts","../../../projects/ngx-vud/src/lib/utils/outside-click.utils.ts","../../../projects/ngx-vud/src/lib/dropdown/dropdown-menu.directive.ts","../../../projects/ngx-vud/src/lib/dropdown/outside-click.directive.ts","../../../projects/ngx-vud/src/lib/dropdown/dropdown-item.directive.ts","../../../projects/ngx-vud/src/lib/dropdown/dropdown.module.ts","../../../projects/ngx-vud/src/lib/light-dark-switch/light-dark-switch-i18n.service.ts","../../../projects/ngx-vud/src/lib/light-dark-switch/light-dark-switch.component.ts","../../../projects/ngx-vud/src/lib/light-dark-switch/light-dark-switch.component.html","../../../projects/ngx-vud/src/lib/light-dark-switch/light-dark-switch.module.ts","../../../projects/ngx-vud/src/lib/modal/modal-ref.ts","../../../projects/ngx-vud/src/lib/modal/modal-container/modal-container.component.ts","../../../projects/ngx-vud/src/lib/modal/modal-container/modal-container.component.html","../../../projects/ngx-vud/src/lib/modal/modal-data.token.ts","../../../projects/ngx-vud/src/lib/modal/modal.options.ts","../../../projects/ngx-vud/src/lib/modal/modal.service.ts","../../../projects/ngx-vud/src/lib/modal/modal.component.ts","../../../projects/ngx-vud/src/lib/modal/modal.directives.ts","../../../projects/ngx-vud/src/lib/modal/modal.module.ts","../../../projects/ngx-vud/src/lib/drawer/drawer-ref.ts","../../../projects/ngx-vud/src/lib/drawer/drawer-data.token.ts","../../../projects/ngx-vud/src/lib/drawer/drawer.options.ts","../../../projects/ngx-vud/src/lib/drawer/drawer.animations.ts","../../../projects/ngx-vud/src/lib/drawer/drawer-container/drawer-container.component.ts","../../../projects/ngx-vud/src/lib/drawer/drawer-container/drawer-container.component.html","../../../projects/ngx-vud/src/lib/drawer/drawer.service.ts","../../../projects/ngx-vud/src/lib/drawer/drawer.component.ts","../../../projects/ngx-vud/src/lib/drawer/drawer.module.ts","../../../projects/ngx-vud/src/lib/navbar/navbar.config.ts","../../../projects/ngx-vud/src/lib/navbar/navbar.service.ts","../../../projects/ngx-vud/src/lib/navbar/navbar-brand-option/navbar-brand-option.component.ts","../../../projects/ngx-vud/src/lib/navbar/navbar-brand-option/navbar-brand-option.component.html","../../../projects/ngx-vud/src/lib/navbar/navbar-menu-item/navbar-menu-item-label.directive.ts","../../../projects/ngx-vud/src/lib/navbar/navbar-menu-item/navbar-menu-item.component.ts","../../../projects/ngx-vud/src/lib/navbar/navbar-menu-item/navbar-menu-item.component.html","../../../projects/ngx-vud/src/lib/navbar/navbar-menu-base/navbar-menu-base.component.ts","../../../projects/ngx-vud/src/lib/navbar/navbar-i18n.service.ts","../../../projects/ngx-vud/src/lib/navbar/navbar-menu-second-level-desktop/navbar-menu-second-level-desktop.component.ts","../../../projects/ngx-vud/src/lib/navbar/navbar-menu-second-level-desktop/navbar-menu-second-level-desktop.component.html","../../../projects/ngx-vud/src/lib/navbar/navbar.component.ts","../../../projects/ngx-vud/src/lib/navbar/navbar.component.html","../../../projects/ngx-vud/src/lib/navbar/navbar-brand/navbar-brand.component.ts","../../../projects/ngx-vud/src/lib/navbar/navbar-brand/navbar-brand.component.html","../../../projects/ngx-vud/src/lib/navbar/navbar-menu-second-level-mobile/navbar-menu-second-level-mobile.component.ts","../../../projects/ngx-vud/src/lib/navbar/navbar-menu-second-level-mobile/navbar-menu-second-level-mobile.component.html","../../../projects/ngx-vud/src/lib/navbar/navbar-menu/navbar-menu.component.ts","../../../projects/ngx-vud/src/lib/navbar/navbar-menu/navbar-menu.component.html","../../../projects/ngx-vud/src/lib/navbar/navbar-right-menu/navbar-right-menu.component.ts","../../../projects/ngx-vud/src/lib/navbar/navbar-right-menu/navbar-right-menu.component.html","../../../projects/ngx-vud/src/lib/navbar/navbar.module.ts","../../../projects/ngx-vud/src/lib/pills/pill/pill.component.ts","../../../projects/ngx-vud/src/lib/pills/pill/pill.component.html","../../../projects/ngx-vud/src/lib/pills/pills.component.ts","../../../projects/ngx-vud/src/lib/pills/pills.component.html","../../../projects/ngx-vud/src/lib/pills/pills.module.ts","../../../projects/ngx-vud/src/lib/progress-bar/progress-bar-labels.directive.ts","../../../projects/ngx-vud/src/lib/progress-bar/progress-bar.component.ts","../../../projects/ngx-vud/src/lib/progress-bar/progress-bar.component.html","../../../projects/ngx-vud/src/lib/progress-bar/progress-bar.module.ts","../../../projects/ngx-vud/src/lib/radio/radio-group/radio-group.component.ts","../../../projects/ngx-vud/src/lib/radio/radio-group/radio-group.component.html","../../../projects/ngx-vud/src/lib/radio/radio.component.ts","../../../projects/ngx-vud/src/lib/radio/radio.component.html","../../../projects/ngx-vud/src/lib/radio/radio.module.ts","../../../projects/ngx-vud/src/lib/select/select-value-accessor.ts","../../../projects/ngx-vud/src/lib/select/select.templates.directive.ts","../../../projects/ngx-vud/src/lib/select/select-i18n.service.ts","../../../projects/ngx-vud/src/lib/select/option-highlight.directive.ts","../../../projects/ngx-vud/src/lib/select/select.component.ts","../../../projects/ngx-vud/src/lib/select/select.component.html","../../../projects/ngx-vud/src/lib/select/select.module.ts","../../../projects/ngx-vud/src/lib/sidebar/sidebar-item/sidebar-item.component.ts","../../../projects/ngx-vud/src/lib/sidebar/sidebar-item/sidebar-item.component.html","../../../projects/ngx-vud/src/lib/sidebar/sidebar-i18n.service.ts","../../../projects/ngx-vud/src/lib/sidebar/sidebar.component.ts","../../../projects/ngx-vud/src/lib/sidebar/sidebar.component.html","../../../projects/ngx-vud/src/lib/sidebar/sidebar-group/sidebar-group.component.ts","../../../projects/ngx-vud/src/lib/sidebar/sidebar-group/sidebar-group.component.html","../../../projects/ngx-vud/src/lib/sidebar/sidebar-divider/sidebar-divider.component.ts","../../../projects/ngx-vud/src/lib/sidebar/sidebar-divider/sidebar-divider.component.html","../../../projects/ngx-vud/src/lib/sidebar/sidebar-label/sidebar-label.component.ts","../../../projects/ngx-vud/src/lib/sidebar/sidebar-label/sidebar-label.component.html","../../../projects/ngx-vud/src/lib/sidebar/sidebar.module.ts","../../../projects/ngx-vud/src/lib/spinner/spinner.component.ts","../../../projects/ngx-vud/src/lib/spinner/spinner.component.html","../../../projects/ngx-vud/src/lib/spinner/spinner.module.ts","../../../projects/ngx-vud/src/lib/switch/switch.component.ts","../../../projects/ngx-vud/src/lib/switch/switch.component.html","../../../projects/ngx-vud/src/lib/switch/switch.module.ts","../../../projects/ngx-vud/src/lib/tabset/tab.component.ts","../../../projects/ngx-vud/src/lib/tabset/tab.component.html","../../../projects/ngx-vud/src/lib/tabset/tabset-i18n.service.ts","../../../projects/ngx-vud/src/lib/tabset/tabset.component.ts","../../../projects/ngx-vud/src/lib/tabset/tabset.component.html","../../../projects/ngx-vud/src/lib/tabset/tabset.module.ts","../../../projects/ngx-vud/src/lib/toast/toast.component.ts","../../../projects/ngx-vud/src/lib/toast/toast.component.html","../../../projects/ngx-vud/src/lib/toast/toast.options.ts","../../../projects/ngx-vud/src/lib/toast/toast-container/toast-container.component.ts","../../../projects/ngx-vud/src/lib/toast/toast-container/toast-container.component.html","../../../projects/ngx-vud/src/lib/toast/toast.service.ts","../../../projects/ngx-vud/src/lib/vud.module.ts","../../../projects/ngx-vud/src/public-api.ts","../../../projects/ngx-vud/src/vismaux-ngx-vud.ts"],"sourcesContent":["import { Injectable, makeEnvironmentProviders } from '@angular/core';\n\nexport function VUD_ALERT_I18N_FACTORY() {\n  return new VudAlertI18nDefault();\n}\n\n@Injectable({\n  providedIn: 'root',\n  useFactory: VUD_ALERT_I18N_FACTORY,\n})\nexport abstract class VudAlertI18n {\n  abstract closeLabel: string;\n}\n\n@Injectable()\nexport class VudAlertI18nDefault extends VudAlertI18n {\n  /** A label for the close button */\n  closeLabel = 'Close';\n}\n\nexport function provideVudAlertI18n(\n  value: VudAlertI18n | (() => VudAlertI18n),\n) {\n  return makeEnvironmentProviders([\n    typeof value === 'function'\n      ? { provide: VudAlertI18n, useFactory: value }\n      : { provide: VudAlertI18n, useValue: value },\n  ]);\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  EventEmitter,\n  Input,\n  Output,\n  booleanAttribute,\n  inject,\n} from '@angular/core';\nimport { VudAlertI18n } from './alert-i18n.service';\n\nexport type VudAlertType = 'success' | 'warning' | 'info' | 'danger';\nexport type VudAlertSize = 'sm' | 'md';\nexport type VudAlertIconSize = 'sm' | 'md' | 'lg';\n\n/**\n * An alert is a short and attention-grabbing message providing feedback about some important aspect of the service which may need to be handled by the user.\n * Read more about alerts in the [UX Guidelines](https://ux.visma.com/weblibrary/latest/development/documentation/docs/alerts.php).\n */\n@Component({\n  selector: 'vud-alert',\n  templateUrl: './alert.component.html',\n  styleUrls: ['./alert.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: {\n    class: 'alert',\n    '[class.alert-sm]': \"size === 'sm'\",\n    '[class.alert-dismissable]': 'dismissable',\n    '[class.alert-icon-md]': \"iconSize === 'md'\",\n    '[class.alert-icon-lg]': \"iconSize === 'lg'\",\n    '[class.alert-success]': \"type === 'success'\",\n    '[class.alert-warning]': \"type === 'warning'\",\n    '[class.alert-info]': \"type === 'info'\",\n    '[class.alert-danger]': \"type === 'danger'\",\n    role: 'alert',\n  },\n})\nexport class VudAlertComponent {\n  /** @ignore */\n  readonly i18n = inject(VudAlertI18n);\n\n  @Input() type: VudAlertType = 'info';\n  @Input() size: VudAlertSize = 'md';\n  @Input() iconSize: VudAlertIconSize = 'sm';\n  @Input({ transform: booleanAttribute }) dismissable = false;\n\n  @Output() dismiss = new EventEmitter();\n}\n","@if (dismissable) {\n  <button\n    type=\"button\"\n    class=\"close\"\n    [attr.aria-label]=\"i18n.closeLabel\"\n    (click)=\"dismiss.emit()\"\n  ></button>\n}\n<ng-content></ng-content>\n","import { NgModule } from '@angular/core';\n\nimport { VudAlertComponent } from './alert.component';\n\n@NgModule({\n  imports: [VudAlertComponent],\n  exports: [VudAlertComponent],\n})\nexport class VudAlertModule {}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  EventEmitter,\n  Input,\n  Output,\n} from '@angular/core';\n\nexport type VudButtonTabsSize = 'sm' | 'md';\n\n@Component({\n  selector: 'vud-button-tab-group',\n  templateUrl: './button-tab-group.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: {\n    role: 'group',\n    class: 'btn-group btn-group-tabs',\n    '[class.btn-group-tabs-sm]': \"size === 'sm'\",\n  },\n})\nexport class VudButtonTabGroupComponent {\n  @Input() size: VudButtonTabsSize = 'md';\n  @Input() selected?: string;\n\n  @Output() change = new EventEmitter<string | undefined>();\n}\n","<ng-content select=\"button[vudButtonTab]\"></ng-content>\n","import { Directive, HostListener, inject, Input } from '@angular/core';\nimport { VudButtonTabGroupComponent } from './button-tab-group.component';\n\n@Directive({\n  selector: '[vudButtonTab]',\n  host: {\n    type: 'button',\n    class: 'btn',\n    '[class.active]': 'selected',\n    '[attr.aria-pressed]': 'selected',\n  },\n})\nexport class VudButtonTabDirective {\n  /** @ignore */\n  private readonly group = inject(VudButtonTabGroupComponent, { host: true });\n\n  @Input() value?: string;\n\n  get selected(): boolean {\n    return (\n      this.value !== undefined &&\n      this.group.selected !== undefined &&\n      this.group.selected === this.value\n    );\n  }\n\n  @HostListener('click')\n  onClick(): void {\n    this.group.selected = this.value;\n    this.group.change.emit(this.value);\n  }\n}\n","import { NgModule } from '@angular/core';\n\nimport { VudButtonTabGroupComponent } from './button-tab-group.component';\nimport { VudButtonTabDirective } from './button-tab.directive';\n\n@NgModule({\n  imports: [VudButtonTabGroupComponent, VudButtonTabDirective],\n  exports: [VudButtonTabGroupComponent, VudButtonTabDirective],\n})\nexport class VudButtonTabModule {}\n","import { Input, Component, ViewEncapsulation } from '@angular/core';\nimport { VudButtonSize } from './button.options';\n\nexport type VudButtonType =\n  | 'default'\n  | 'primary'\n  | 'destructive'\n  | 'destructive-primary';\n\n@Component({\n  selector: 'button[vudButton], a[vudButton]',\n  host: {\n    class: 'vud-btn btn',\n    '[class.btn-default]': `buttonType === 'default'`,\n    '[class.btn-primary]': `buttonType === 'primary' || buttonType === 'destructive-primary'`,\n    '[class.btn-destructive]': `buttonType === 'destructive' || buttonType === 'destructive-primary'`,\n    '[class.btn-lg]': \"size === 'lg'\",\n  },\n  template: `<ng-content />`,\n  styleUrl: './button-base.directive.scss',\n  encapsulation: ViewEncapsulation.None,\n})\nexport class VudButtonDirective {\n  @Input({ alias: 'vudButton', transform: (value: any) => value || 'default' })\n  buttonType: VudButtonType = 'default';\n  @Input() size: VudButtonSize = 'sm';\n}\n","import { Input, Component, ViewEncapsulation } from '@angular/core';\nimport { VudButtonSize } from './button.options';\n\nexport type VudButtonDirection = 'left' | 'right';\n\n@Component({\n  selector: 'button[vudDirectionButton], a[vudDirectionButton]',\n  host: {\n    class: 'vud-btn btn',\n    '[class.btn-default]': `type === 'default'`,\n    '[class.btn-primary]': `type === 'primary'`,\n    '[class.btn-lg]': `size === 'lg'`,\n    '[class.left]': `direction === 'left'`,\n    '[class.right]': `direction === 'right'`,\n  },\n  template: `<ng-content />`,\n  styleUrl: './button-base.directive.scss',\n  encapsulation: ViewEncapsulation.None,\n})\nexport class VudDirectionButtonDirective {\n  @Input() size: VudButtonSize = 'sm';\n  @Input() direction: VudButtonDirection = 'right';\n  @Input({\n    alias: 'vudDirectionButton',\n    transform: (value: any) => value || 'default',\n  })\n  type: 'primary' | 'default' = 'default';\n}\n","import { Input, Component, ViewEncapsulation } from '@angular/core';\nimport { VudButtonSize } from './button.options';\n\nexport type VudTransparentButtonType = 'default' | 'destructive';\n\n@Component({\n  selector: 'button[vudTransparentButton], a[vudTransparentButton]',\n  host: {\n    class: 'vud-btn btn btn-link',\n    '[class.btn-default]': `buttonType === 'default'`,\n    '[class.btn-destructive]': `buttonType === 'destructive'`,\n    '[class.btn-lg]': \"size === 'lg'\",\n  },\n  template: `<ng-content />`,\n  styleUrl: './button-base.directive.scss',\n  encapsulation: ViewEncapsulation.None,\n})\nexport class VudTransparentButtonDirective {\n  @Input({\n    alias: 'vudTransparentButton',\n    transform: (value: any) => value || 'default',\n  })\n  buttonType: VudTransparentButtonType = 'default';\n  @Input() size: VudButtonSize = 'sm';\n}\n","import { InjectionToken } from '@angular/core';\n\nexport type VudIconType = 'standard' | 'dynamic';\n\nexport interface VudIconConfig {\n  /**\n   * Defines the global type of the icons: standard or dynamic.\n   *\n   * @default `standard`\n   */\n  type?: VudIconType;\n}\n\nexport const VUD_DEFAULT_ICON_CONFIG = {\n  type: 'standard',\n} as const;\n\n/** InjectionToken for icon that can be used to override default options. */\nexport const VUD_ICON_CONFIG = new InjectionToken<VudIconConfig>(\n  'VUD_ICON_CONFIG',\n  { providedIn: 'root', factory: () => VUD_DEFAULT_ICON_CONFIG },\n);\n","import {\n  Attribute,\n  booleanAttribute,\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  HostBinding,\n  inject,\n  Input,\n} from '@angular/core';\nimport {\n  VudIconType,\n  VUD_DEFAULT_ICON_CONFIG,\n  VUD_ICON_CONFIG,\n} from './icon.config';\n\n@Component({\n  selector: 'vud-icon',\n  template: '',\n  styleUrls: ['./icon.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: {\n    role: 'img',\n  },\n})\nexport class VudIconComponent {\n  private readonly globalConfig = inject(VUD_ICON_CONFIG);\n  private readonly elementRef: ElementRef<HTMLElement> = inject(ElementRef);\n\n  @HostBinding('class')\n  get iconClass() {\n    const classes: string[] = ['vismaicon'];\n    if (this.icon) {\n      const attributes = this.icon.split(':');\n      classes.push(...attributes.map((attr) => 'vismaicon-' + attr));\n    }\n    if (this.type === 'dynamic') {\n      classes.push('vismaicon-dynamic');\n    }\n    if (this.currentColor) {\n      classes.push('vismaicon--current-color');\n    }\n    return classes;\n  }\n\n  @Input()\n  get type() {\n    return this._type ?? this.globalConfig.type ?? VUD_DEFAULT_ICON_CONFIG.type;\n  }\n  set type(value: VudIconType) {\n    this._type = value;\n  }\n  /** @ignore */\n  private _type: VudIconType | null = null;\n\n  @Input({ transform: booleanAttribute }) currentColor: boolean = false;\n\n  @Input() icon: string = '';\n\n  constructor(@Attribute('aria-hidden') ariaHiddenAttr: string) {\n    // Mark the icon as hidden if the user has not explicitly set it\n    if (!ariaHiddenAttr) {\n      this.elementRef.nativeElement.setAttribute('aria-hidden', 'true');\n    }\n  }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { VudIconComponent } from './icon.component';\nimport { VudIconConfig, VUD_ICON_CONFIG } from './icon.config';\n\n@NgModule({\n  imports: [VudIconComponent],\n  exports: [VudIconComponent],\n})\nexport class VudIconModule {\n  static withConfig(config: VudIconConfig): ModuleWithProviders<VudIconModule> {\n    return {\n      ngModule: VudIconModule,\n      providers: [{ provide: VUD_ICON_CONFIG, useValue: config }],\n    };\n  }\n}\n","import {\n  Input,\n  booleanAttribute,\n  Component,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { VudButtonSize } from './button.options';\nimport { VudIconModule } from '../icon';\n\nexport type VudIconButtonShape = 'square' | 'squircle' | 'round';\n\n@Component({\n  selector: 'button[vudIconButton], a[vudIconButton]',\n  imports: [VudIconModule],\n  template: `<vud-icon [icon]=\"icon + ':' + size\" />\n    <span class=\"sr-only\"><ng-content /></span>`,\n  styleUrl: './button-base.directive.scss',\n  encapsulation: ViewEncapsulation.None,\n  host: {\n    class: 'vud-btn btn btn-icon',\n    '[class.btn-square]': `shape === 'square'`,\n    '[class.btn-squircle]': `shape === 'squircle'`,\n    '[class.btn-round]': `shape === 'round'`,\n    '[class.btn-solid]': '!transparent',\n    '[class.btn-transparent]': 'transparent',\n    '[class.btn-lg]': \"size === 'lg'\",\n  },\n})\nexport class VudIconButtonDirective {\n  @Input({ required: true, alias: 'vudIconButton' }) icon: string = '';\n  @Input() size: VudButtonSize = 'sm';\n  @Input({ transform: booleanAttribute }) transparent: boolean = false;\n  @Input() shape: VudIconButtonShape = 'square';\n}\n","import { NgModule } from '@angular/core';\n\nimport { VudButtonDirective } from './button.directive';\nimport { VudDirectionButtonDirective } from './direction-button.directive';\nimport { VudIconButtonDirective } from './icon-button.directive';\nimport { VudTransparentButtonDirective } from './transparent-button.directive';\n\n@NgModule({\n  imports: [\n    VudButtonDirective,\n    VudDirectionButtonDirective,\n    VudIconButtonDirective,\n    VudTransparentButtonDirective,\n  ],\n  exports: [\n    VudButtonDirective,\n    VudDirectionButtonDirective,\n    VudIconButtonDirective,\n    VudTransparentButtonDirective,\n  ],\n})\nexport class VudButtonModule {}\n","import {\n  Attribute,\n  booleanAttribute,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  computed,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  inject,\n  Injector,\n  Input,\n  Output,\n  Provider,\n  signal,\n  ViewChild,\n  ViewEncapsulation,\n} from '@angular/core';\nimport {\n  ControlValueAccessor,\n  NgControl,\n  NG_VALUE_ACCESSOR,\n} from '@angular/forms';\n\nexport const CHECKBOX_CONTROL_VALUE_ACCESSOR: Provider = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => VudCheckboxComponent),\n  multi: true,\n};\n\nexport type VudCheckboxType = 'default' | 'outline';\n\n// Increasing integer for generating unique ids for checkbox components.\n// Inspired by @angular/components\nlet nextUniqueId = 0;\n\n@Component({\n  selector: 'vud-checkbox',\n  templateUrl: './checkbox.component.html',\n  styleUrls: ['./checkbox.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR],\n  host: {\n    class: 'vud-checkbox',\n    '[class.vud-checkbox--outline]': 'type === \"outline\"',\n    '[attr.id]': 'null',\n    '[attr.tabindex]': 'null',\n    '[attr.aria-label]': 'null',\n    '[attr.aria-labelledby]': 'null',\n    '[attr.aria-describedby]': 'null',\n    '[attr.aria-invalid]': 'null',\n    '[attr.aria-errormessage]': 'null',\n  },\n})\nexport class VudCheckboxComponent implements ControlValueAccessor {\n  /** @ignore */\n  private readonly cdRef = inject(ChangeDetectorRef);\n  /** @ignore */\n  private readonly injector = inject(Injector);\n\n  /** @ignore */\n  private readonly _uniqueId = `vud-checkbox-${++nextUniqueId}`;\n  /** @ignore */\n  private readonly _ariaInvalid = signal<string | null>(null);\n  /** @ignore */\n  private readonly _ariaErrormessage = signal<string | null>(null);\n  /** @ignore */\n  private _name: string | null = null;\n  /** @ignore */\n  private _customId = signal<string | null>(null);\n  /** @ignore */\n  private _onTouched?: () => any;\n  /** @ignore */\n  private _onModelChanged?: (value: any) => void;\n\n  /** The value attribute of the native input element */\n  @Input() value: string | null = null;\n  @Input() type: VudCheckboxType = 'default';\n  @Input({ transform: booleanAttribute }) disabled = false;\n  @Input({ transform: booleanAttribute }) checked = false;\n  @Input({ transform: booleanAttribute }) indeterminate = false;\n  @Input('aria-label') ariaLabel?: string;\n  @Input('aria-labelledby') ariaLabelledby?: string;\n  @Input('aria-describedby') ariaDescribedby?: string;\n  @Input('aria-invalid') set ariaInvalid(value: string | null) {\n    this._ariaInvalid.set(value);\n  }\n  get ariaInvalid() {\n    return this._ariaInvalid();\n  }\n  @Input('aria-errormessage') set ariaErrormessage(value: string | null) {\n    this._ariaErrormessage.set(value);\n  }\n  get ariaErrormessage() {\n    return this._ariaErrormessage();\n  }\n\n  @Output() readonly change = new EventEmitter<boolean>();\n  @Output() readonly indeterminateChange = new EventEmitter<boolean>();\n\n  /** @ignore */\n  @ViewChild('label', { static: true })\n  readonly labelElement!: ElementRef<HTMLLabelElement>;\n\n  /** @ignore */\n  readonly inputId = computed(() => this._customId() ?? this._uniqueId);\n\n  constructor(\n    /** @ignore */\n    @Attribute('tabindex') protected readonly tabindex?: string,\n  ) {}\n\n  @Input()\n  get name(): string {\n    const ngControl = this.injector.get(NgControl, null);\n    return this._name ?? ngControl?.name?.toString() ?? this._uniqueId;\n  }\n  set name(value: string | null) {\n    if (value !== this._name) {\n      this._name = value;\n      this.cdRef.markForCheck();\n    }\n  }\n\n  @Input()\n  set id(value: string | null) {\n    this._customId.set(value);\n  }\n\n  /** @ignore */\n  onInputChange(event: Event) {\n    // We always have to stop propagation on the change event.\n    // Otherwise the change event, from the input element, will bubble up and\n    // emit its event object to the `change` output.\n    event.stopPropagation();\n\n    if (this.disabled) {\n      return;\n    }\n\n    this.checked = !this.checked;\n    this.cdRef.markForCheck();\n    this.updateModel();\n  }\n\n  /** @ignore */\n  onBlur() {\n    if (this._onTouched) {\n      this._onTouched();\n    }\n  }\n\n  /** @ignore */\n  registerOnChange(fn: (value: any) => void) {\n    this._onModelChanged = fn;\n  }\n\n  /** @ignore */\n  registerOnTouched(fn: any) {\n    this._onTouched = fn;\n  }\n\n  /** @ignore */\n  writeValue(value: any) {\n    this.checked = !!value;\n    this.cdRef.markForCheck();\n  }\n\n  /** @ignore */\n  setDisabledState(isDisabled: boolean) {\n    this.disabled = isDisabled;\n    this.cdRef.markForCheck();\n  }\n\n  /** @ignore */\n  private updateModel() {\n    if (this._onModelChanged) {\n      this._onModelChanged(this.checked);\n    }\n    this.change.emit(this.checked);\n  }\n}\n","<div class=\"vud-checkbox__marker\">\n  <input\n    type=\"checkbox\"\n    [attr.id]=\"inputId()\"\n    [name]=\"name\"\n    [checked]=\"checked\"\n    [indeterminate]=\"indeterminate\"\n    [disabled]=\"disabled\"\n    [attr.value]=\"value\"\n    [attr.tabindex]=\"tabindex\"\n    [attr.aria-label]=\"ariaLabel\"\n    [attr.aria-labelledby]=\"ariaLabelledby\"\n    [attr.aria-describedby]=\"ariaDescribedby\"\n    [attr.aria-invalid]=\"ariaInvalid\"\n    [attr.aria-errormessage]=\"ariaErrormessage\"\n    (change)=\"onInputChange($event)\"\n    (blur)=\"onBlur()\"\n  />\n  <div class=\"vud-checkbox__background\"></div>\n  <div class=\"vud-checkbox__indicator\">\n    <svg\n      class=\"vud-checkbox__indicator-checked\"\n      viewBox=\"0 0 16 16\"\n      fill=\"none\"\n    >\n      <path\n        d=\"M4 9L6 11L12 5\"\n        stroke=\"currentColor\"\n        stroke-width=\"2\"\n        stroke-linecap=\"round\"\n        stroke-linejoin=\"round\"\n      />\n    </svg>\n    <svg\n      class=\"vud-checkbox__indicator-indeterminate\"\n      viewBox=\"0 0 16 16\"\n      fill=\"none\"\n    >\n      <path\n        d=\"M4 8H6.13333H12\"\n        stroke=\"currentColor\"\n        stroke-width=\"2\"\n        stroke-linecap=\"round\"\n        stroke-linejoin=\"round\"\n      />\n    </svg>\n  </div>\n</div>\n\n<label\n  class=\"vud-checkbox__label\"\n  [attr.for]=\"inputId()\"\n  [class.vud-checkbox__label--disabled]=\"disabled\"\n  ><ng-content></ng-content\n></label>\n","import { Directive, Provider, forwardRef } from '@angular/core';\nimport { NG_VALIDATORS, CheckboxRequiredValidator } from '@angular/forms';\n\nexport const VUD_CHECKBOX_REQUIRED_VALIDATOR: Provider = {\n  provide: NG_VALIDATORS,\n  useExisting: forwardRef(() => VudCheckboxRequiredValidator),\n  multi: true,\n};\n\n/**\n * Validator for VUD checkbox's required attribute in template-driven checkbox.\n * Current CheckboxRequiredValidator only work with `input type=checkbox` and does not\n * work with `vud-checkbox`.\n */\n@Directive({\n  selector: `vud-checkbox[required][formControlName], vud-checkbox[required][formControl], vud-checkbox[required][ngModel]`,\n  providers: [VUD_CHECKBOX_REQUIRED_VALIDATOR],\n})\nexport class VudCheckboxRequiredValidator extends CheckboxRequiredValidator {}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  HostBinding,\n  HostListener,\n  input,\n  output,\n  signal,\n  TemplateRef,\n  Type,\n  viewChild,\n  ViewContainerRef,\n} from '@angular/core';\nimport { animate, style, transition, trigger } from '@angular/animations';\nimport { Subject } from 'rxjs';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\n\nexport type VudTooltipPlacement = 'left' | 'right' | 'top' | 'bottom';\nexport type VudTooltipStyle = 'default' | 'error' | 'primary' | 'secondary';\nexport type VudTooltipControlMode = 'hover' | 'click' | 'none';\n\n@Component({\n  selector: 'vud-tooltip',\n  imports: [NgClass, NgTemplateOutlet],\n  templateUrl: './tooltip.component.html',\n  styleUrls: ['./tooltip.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  animations: [\n    trigger('fadeIn', [\n      transition(':enter', [\n        style({ opacity: '0' }),\n        animate('200ms ease-out', style({ opacity: '1' })),\n      ]),\n    ]),\n  ],\n})\nexport class VudTooltipComponent {\n  private mouseLeaveSubject = new Subject<void>();\n  readonly afterMouseLeave = () => this.mouseLeaveSubject.asObservable();\n\n  readonly mouseOver = signal(false);\n\n  readonly contentContainerRef = viewChild.required('content', {\n    read: ViewContainerRef,\n  });\n\n  readonly content = input.required<string | TemplateRef<any>>();\n\n  readonly template = computed(() => {\n    const content = this.content();\n    return content instanceof TemplateRef ? content : null;\n  });\n\n  readonly text = computed(() => {\n    const content = this.content();\n    return typeof content === 'string' ? content : null;\n  });\n\n  readonly position = input<VudTooltipPlacement>();\n  readonly offset = input<number>(0);\n  readonly style = input<VudTooltipStyle>('default');\n\n  readonly hideTriggered = output();\n  readonly triggerHide = () => this.hideTriggered.emit();\n\n  @HostBinding('attr.style') get inlineStyle() {\n    if (!this.position() || !this.offset()) {\n      return '';\n    }\n\n    return `--vud-tooltip-offset: ${this.offset()}px;`;\n  }\n\n  @HostListener('mouseenter')\n  handleMouseEnter(): void {\n    this.mouseOver.set(true);\n  }\n\n  @HostListener('mouseleave')\n  handleMouseLeave(): void {\n    this.mouseOver.set(false);\n    this.mouseLeaveSubject.next();\n  }\n\n  projectComponent<T>(componentType: Type<T>): T {\n    return this.contentContainerRef().createComponent(componentType).instance;\n  }\n}\n","<div\n  class=\"tooltip in\"\n  [class.tooltip-error]=\"style() === 'error'\"\n  [class.tooltip-primary]=\"style() === 'primary'\"\n  [class.tooltip-secondary]=\"style() === 'secondary'\"\n  [ngClass]=\"position()\"\n  @fadeIn\n>\n  <div class=\"tooltip-arrow\"></div>\n  <div #content class=\"tooltip-inner\">\n    @if (text()) {\n      {{ text() }}\n    } @else if (template()) {\n      <ng-container\n        [ngTemplateOutlet]=\"template()\"\n        [ngTemplateOutletContext]=\"{ hide: triggerHide }\"\n      />\n    }\n  </div>\n</div>\n","import { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';\nimport {\n  ConnectedPosition,\n  FlexibleConnectedPositionStrategy,\n  Overlay,\n  OverlayRef,\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n  booleanAttribute,\n  ComponentRef,\n  Directive,\n  ElementRef,\n  HostListener,\n  inject,\n  Input,\n  NgZone,\n  numberAttribute,\n  OnDestroy,\n  OutputRefSubscription,\n  TemplateRef,\n  Type,\n} from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { map, takeUntil } from 'rxjs/operators';\n\nimport {\n  VudTooltipComponent,\n  VudTooltipStyle,\n  VudTooltipPlacement,\n  VudTooltipControlMode,\n} from './tooltip.component';\n\n@Directive({\n  selector: '[vudTooltip]',\n  exportAs: 'vudTooltip',\n})\nexport class VudTooltipDirective implements OnDestroy {\n  /** @ignore */\n  private readonly elementRef = inject(ElementRef);\n  /** @ignore */\n  private readonly overlay = inject(Overlay);\n  /** @ignore */\n  private readonly ngZone = inject(NgZone);\n\n  /** @ignore */\n  protected destroyed$ = new Subject<void>();\n  /** @ignore */\n  private _content: string | TemplateRef<any> | null = null;\n  /** @ignore */\n  private tooltipInstanceDestroyed$: Subject<void> | null = null;\n  /** @ignore */\n  private outputSubscription: OutputRefSubscription | null = null;\n  /** @ignore */\n  private overlayRef?: OverlayRef;\n  /** @ignore */\n  private tooltipPortal?: ComponentPortal<VudTooltipComponent>;\n  /** @ignore */\n  private tooltipRef?: ComponentRef<VudTooltipComponent>;\n  /** @ignore */\n  private get tooltipInstance() {\n    return this.tooltipRef ? this.tooltipRef.instance : null;\n  }\n  /** @ignore */\n  private currentPosition$?: Observable<VudTooltipPlacement>;\n  /** @ignore */\n  private _placement: VudTooltipPlacement = 'right';\n  /** @ignore */\n  private _style: VudTooltipStyle = 'default';\n  /** @ignore */\n  private _offset: number = 15;\n  /** @ignore */\n  private mouseOver: boolean = false;\n  /** @ignore */\n  private _showControlMode: VudTooltipControlMode | null = null;\n  /** @ignore */\n  private _hideControlMode: VudTooltipControlMode | null = null;\n\n  @Input('vudTooltip')\n  set content(value: string | TemplateRef<any> | null) {\n    if (value === this._content) {\n      return;\n    }\n\n    this._content = value;\n\n    // Hide tooltip with empty content\n    if (!this._content && this.overlayRef?.hasAttached()) {\n      this.hide();\n      return;\n    }\n\n    // Update the content in case tooltip is already opened\n    if (this.tooltipRef && this.overlayRef?.hasAttached()) {\n      this.tooltipRef.setInput('content', this._content);\n    }\n  }\n  get content() {\n    return this._content;\n  }\n\n  @Input('vudTooltipStyle')\n  set style(value: VudTooltipStyle) {\n    if (value === this._style) {\n      return;\n    }\n\n    this._style = value;\n\n    // Update the content in case tooltip is already opened\n    if (this.tooltipRef && this.overlayRef?.hasAttached()) {\n      this.tooltipRef.setInput('style', this._style);\n    }\n  }\n  get style(): VudTooltipStyle {\n    return this._style;\n  }\n\n  @Input({ alias: 'vudTooltipDisabled', transform: booleanAttribute })\n  disabled = false;\n\n  @Input({ alias: 'vudTooltipControlMode' })\n  controlMode: VudTooltipControlMode = 'hover';\n\n  /**\n   * @default `vudTooltipControlMode`\n   */\n  @Input({ alias: 'vudTooltipShowControlMode' })\n  set showControlMode(value: VudTooltipControlMode) {\n    this._showControlMode = value;\n  }\n  get showControlMode(): VudTooltipControlMode {\n    return this._showControlMode ?? this.controlMode;\n  }\n\n  /**\n   * @default `vudTooltipControlMode`\n   */\n  @Input({ alias: 'vudTooltipHideControlMode' })\n  set hideControlMode(value: VudTooltipControlMode) {\n    this._hideControlMode = value;\n  }\n  get hideControlMode(): VudTooltipControlMode {\n    return this._hideControlMode ?? this.controlMode;\n  }\n\n  @Input({ alias: 'vudTooltipOffsetSize', transform: numberAttribute })\n  set offset(value) {\n    if (this._offset === value) {\n      return;\n    }\n\n    this._offset = !isNaN(value) ? value : 15;\n    this.updateTooltipPlacement();\n  }\n  get offset() {\n    return this._offset;\n  }\n\n  /** @deprecated use `vudTooltipPlacement` instead */\n  @Input({ alias: 'placement' })\n  set placementDeprecated(value: VudTooltipPlacement) {\n    this.placement = value;\n  }\n\n  @Input({ alias: 'vudTooltipPlacement' })\n  set placement(value: VudTooltipPlacement) {\n    if (this._placement === value) {\n      return;\n    }\n\n    this._placement = value;\n\n    this.updateTooltipPlacement();\n  }\n  get placement() {\n    return this._placement;\n  }\n\n  /** @ignore */\n  ngOnDestroy(): void {\n    this.destroyed$.next();\n    this.destroyed$.complete();\n    this.overlayRef?.detach();\n    this.overlayRef?.dispose();\n  }\n\n  show(): void {\n    if (this.overlayRef?.hasAttached()) {\n      return;\n    }\n\n    const overlayRef = this.createOverlay();\n    this.tooltipPortal =\n      this.tooltipPortal ?? new ComponentPortal(VudTooltipComponent);\n\n    this.tooltipInstanceDestroyed$ = new Subject();\n\n    this.tooltipRef = overlayRef.attach(this.tooltipPortal);\n    this.tooltipRef.setInput('content', this.content);\n    this.tooltipRef.setInput('style', this.style);\n    this.outputSubscription = this.tooltipInstance!.hideTriggered.subscribe(\n      () => setTimeout(() => this.hide()),\n    );\n\n    if (this.hideControlMode === 'hover') {\n      // Soft hide tooltip on mouse leave when control mode is set to 'hover'\n      this.tooltipInstance!.afterMouseLeave()\n        .pipe(takeUntil(this.tooltipInstanceDestroyed$))\n        .subscribe(() => setTimeout(() => this.softHide()));\n    } else if (this.hideControlMode === 'click') {\n      // Hide tooltip on outside click when control mode is set to 'click'\n      overlayRef\n        .outsidePointerEvents()\n        .pipe(takeUntil(this.tooltipInstanceDestroyed$))\n        .subscribe((event) => {\n          const element = this.elementRef.nativeElement;\n          if (event.target !== element && !element.contains(event.target)) {\n            this.hide();\n          }\n        });\n    }\n\n    // Tell the instance current position (left, right, top, bottom)\n    this.currentPosition$!.pipe(\n      takeUntil(this.tooltipInstanceDestroyed$),\n    ).subscribe((position) => {\n      this.ngZone.run(() => {\n        if (!this.tooltipRef) {\n          return;\n        }\n        this.tooltipRef.setInput('position', position);\n        this.tooltipRef.setInput('offset', this.offset);\n      });\n    });\n  }\n\n  hide(): void {\n    if (!this.overlayRef?.hasAttached()) {\n      return;\n    }\n    this.overlayRef.detach();\n    this.tooltipInstanceDestroyed$!.next();\n    this.tooltipInstanceDestroyed$!.complete();\n    this.outputSubscription?.unsubscribe();\n    this.tooltipRef = undefined;\n  }\n\n  toggle(): void {\n    if (!this.overlayRef?.hasAttached()) {\n      this.show();\n      return;\n    }\n    this.hide();\n  }\n\n  /** @ignore */\n  projectComponent<T>(componentType: Type<T>): T {\n    if (!this.tooltipInstance) {\n      throw new Error(\n        `Trying to project content into a tooltip that is not yet created.`,\n      );\n    }\n\n    return this.tooltipInstance.projectComponent(componentType);\n  }\n\n  /** @ignore */\n  @HostListener('click')\n  handleMouseClick(): void {\n    if (this.showControlMode !== 'click' || this.disabled || !this._content) {\n      return;\n    }\n    this.toggle();\n  }\n\n  /** @ignore */\n  @HostListener('mouseenter')\n  handleMouseEnter(): void {\n    if (this.showControlMode !== 'hover' || this.disabled || !this._content) {\n      return;\n    }\n    this.mouseOver = true;\n    this.show();\n  }\n\n  /** @ignore */\n  @HostListener('mouseleave')\n  handleMouseLeave(): void {\n    if (this.hideControlMode !== 'hover' || this.disabled) {\n      return;\n    }\n    this.mouseOver = false;\n    setTimeout(() => this.softHide());\n  }\n\n  /**\n   * hides only if mouse is not over the host element nor the tooltip itself\n   * @ignore\n   */\n  private softHide() {\n    if (!this.mouseOver && !this.tooltipInstance?.mouseOver()) {\n      this.hide();\n    }\n  }\n\n  /** @ignore */\n  private createOverlay(): OverlayRef {\n    if (this.overlayRef) {\n      return this.overlayRef;\n    }\n\n    const positionStrategy = this.overlay\n      .position()\n      .flexibleConnectedTo(this.elementRef);\n    this.currentPosition$ = positionStrategy.positionChanges.pipe(\n      map((pos) => pos.connectionPair.panelClass as VudTooltipPlacement),\n    );\n\n    const scrollStrategy = this.overlay.scrollStrategies.reposition();\n\n    this.overlayRef = this.overlay.create({ positionStrategy, scrollStrategy });\n\n    if (this.showControlMode !== 'none') {\n      this.overlayRef\n        .keydownEvents()\n        .pipe(takeUntil(this.destroyed$))\n        .subscribe((event) => {\n          if (\n            this.overlayRef?.hasAttached() &&\n            event.keyCode === ESCAPE &&\n            !hasModifierKey(event)\n          ) {\n            this.hide();\n          }\n        });\n    }\n\n    this.updatePosition();\n\n    return this.overlayRef;\n  }\n\n  /** @ignore */\n  private updateTooltipPlacement(): void {\n    if (this.overlayRef) {\n      this.updatePosition();\n      this.overlayRef.updatePosition();\n    }\n  }\n\n  /** @ignore */\n  private updatePosition(): void {\n    const position = this.overlayRef!.getConfig()\n      .positionStrategy as FlexibleConnectedPositionStrategy;\n    const positions = this.getPositions(this._placement);\n    position.withPositions(positions);\n  }\n\n  /** @ignore */\n  private getPositions(\n    preferredPlacement: VudTooltipPlacement,\n  ): ConnectedPosition[] {\n    const right: ConnectedPosition = {\n      originX: 'end',\n      originY: 'center',\n      overlayX: 'start',\n      overlayY: 'center',\n      panelClass: 'right',\n    };\n\n    const left: ConnectedPosition = {\n      originX: 'start',\n      originY: 'center',\n      overlayX: 'end',\n      overlayY: 'center',\n      panelClass: 'left',\n    };\n\n    const top: ConnectedPosition = {\n      originX: 'center',\n      originY: 'top',\n      overlayX: 'center',\n      overlayY: 'bottom',\n      panelClass: 'top',\n    };\n\n    const bottom: ConnectedPosition = {\n      originX: 'center',\n      originY: 'bottom',\n      overlayX: 'center',\n      overlayY: 'top',\n      panelClass: 'bottom',\n    };\n\n    switch (preferredPlacement) {\n      case 'right':\n        return [right, left, bottom, top];\n      case 'left':\n        return [left, right, bottom, top];\n      case 'top':\n        return [top, bottom, right, left];\n      case 'bottom':\n        return [bottom, top, right, left];\n      default:\n        throw new SyntaxError(\n          `\"${preferredPlacement}\" value for 'placement' property is not supported. Available options: after, before, top, bottom, left or right.`,\n        );\n    }\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { VudTooltipComponent } from './tooltip.component';\nimport { VudTooltipDirective } from './tooltip.directive';\n\n@NgModule({\n  imports: [VudTooltipDirective, VudTooltipComponent],\n  exports: [VudTooltipDirective, VudTooltipComponent],\n})\nexport class VudTooltipModule {}\n","import { Directive, inject, Input, TemplateRef } from '@angular/core';\n\n@Directive({\n  selector: 'ng-template[vudError]',\n})\nexport class VudErrorDirective {\n  public readonly templateRef = inject(TemplateRef);\n\n  @Input('vudError') errorKey!: string;\n}\n","import {\n  Component,\n  ChangeDetectionStrategy,\n  ContentChildren,\n  QueryList,\n  AfterContentInit,\n  Renderer2,\n  ElementRef,\n  OnInit,\n  OnDestroy,\n  inject,\n} from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { map, takeUntil } from 'rxjs/operators';\n\nimport { VudErrorDirective } from './error.directive';\nimport { VudErrorMessages } from './error-messages.model';\n\n@Component({\n  selector: 'vud-errors',\n  exportAs: 'vudErrors',\n  template: '',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class VudErrorsComponent implements OnInit, AfterContentInit, OnDestroy {\n  private renderer = inject(Renderer2);\n  private elRef = inject(ElementRef);\n\n  private destroyed$ = new Subject<void>();\n  private errorsSubject = new BehaviorSubject<VudErrorMessages>({});\n\n  @ContentChildren(VudErrorDirective)\n  readonly errors!: QueryList<VudErrorDirective>;\n\n  readonly errors$ = this.errorsSubject.asObservable();\n  readonly getErrors = () => this.errorsSubject.getValue();\n\n  ngOnInit(): void {\n    /**\n     * This is an virtual component only needed to pass-through the error list,\n     * no actual component is needed in the DOM, therefore `hidden` attribute is set.\n     */\n    this.renderer.setAttribute(this.elRef.nativeElement, 'hidden', '');\n  }\n\n  ngAfterContentInit(): void {\n    this.errorsSubject.next(this.getMappedErrors());\n\n    this.errors.changes\n      .pipe(\n        map(() => this.getMappedErrors()),\n        takeUntil(this.destroyed$),\n      )\n      .subscribe(this.errorsSubject);\n  }\n\n  ngOnDestroy(): void {\n    this.destroyed$.next();\n    this.destroyed$.unsubscribe();\n  }\n\n  private getMappedErrors(): VudErrorMessages {\n    return this.errors.reduce(\n      (errors, error) => ({ ...errors, [error.errorKey]: error.templateRef }),\n      {},\n    );\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { VudErrorMessages } from './error-messages.model';\n\n@Injectable({ providedIn: 'root' })\nexport class VudGlobalErrorMessagesService {\n  private errorMessagesSubject = new BehaviorSubject<VudErrorMessages>({});\n\n  readonly errorMessages$ = this.errorMessagesSubject.asObservable();\n  readonly getErrorMessages = () => this.errorMessagesSubject.getValue();\n\n  registerErrorMessages(messages: VudErrorMessages): void {\n    const currentMessages = this.getErrorMessages();\n    this.errorMessagesSubject.next({ ...currentMessages, ...messages });\n  }\n}\n","import {\n  Component,\n  ChangeDetectionStrategy,\n  ContentChildren,\n  QueryList,\n  AfterContentInit,\n  OnInit,\n  Renderer2,\n  ElementRef,\n  OnDestroy,\n  inject,\n} from '@angular/core';\n\nimport { VudErrorDirective } from './error.directive';\nimport { VudErrorMessages } from './error-messages.model';\nimport { VudGlobalErrorMessagesService } from './global-error-messages.service';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n  selector: 'vud-global-errors',\n  template: '',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class VudGlobalErrorsComponent\n  implements OnInit, AfterContentInit, OnDestroy\n{\n  private renderer = inject(Renderer2);\n  private elRef = inject(ElementRef);\n  private globalErrors = inject(VudGlobalErrorMessagesService);\n\n  private destroyed$ = new Subject<void>();\n\n  @ContentChildren(VudErrorDirective)\n  readonly errors!: QueryList<VudErrorDirective>;\n\n  ngOnInit(): void {\n    /**\n     * This is an virtual component only needed to pass-through the error list,\n     * no actual component is needed in the DOM, therefore `hidden` attribute is set.\n     */\n    this.renderer.setAttribute(this.elRef.nativeElement, 'hidden', '');\n  }\n\n  ngAfterContentInit(): void {\n    this.updateGlobalErrorMessages();\n\n    this.errors.changes\n      .pipe(takeUntil(this.destroyed$))\n      .subscribe(() => this.updateGlobalErrorMessages());\n  }\n\n  ngOnDestroy(): void {\n    this.destroyed$.next();\n    this.destroyed$.unsubscribe();\n  }\n\n  private updateGlobalErrorMessages(): void {\n    const messages: VudErrorMessages = this.errors.reduce(\n      (errors, error) => ({ ...errors, [error.errorKey]: error.templateRef }),\n      {},\n    );\n    this.globalErrors.registerErrorMessages(messages);\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  inject,\n  Input,\n  OnDestroy,\n  OnInit,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport {\n  VudGlobalErrorMessagesService,\n  VudErrorMessages,\n} from './error-messages';\nimport { NgTemplateOutlet } from '@angular/common';\n\n@Component({\n  selector: 'vud-error-tooltip-content',\n  imports: [NgTemplateOutlet],\n  templateUrl: 'error-tooltip-content.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class VudErrorTooltipContentComponent implements OnInit, OnDestroy {\n  public readonly cd = inject(ChangeDetectorRef);\n  private readonly globalErrorMessagesService = inject(\n    VudGlobalErrorMessagesService,\n  );\n\n  private destroyed$ = new Subject<void>();\n\n  @Input() errors: { [key: string]: any } = {};\n  @Input() errorMessages: VudErrorMessages = {};\n  @Input() errorMessageId?: string;\n\n  globalErrorMessages: VudErrorMessages = {};\n\n  ngOnInit(): void {\n    this.globalErrorMessagesService.errorMessages$\n      .pipe(takeUntil(this.destroyed$))\n      .subscribe((messages) => {\n        this.globalErrorMessages = messages;\n        this.cd.markForCheck();\n      });\n  }\n\n  ngOnDestroy(): void {\n    this.destroyed$.next();\n    this.destroyed$.unsubscribe();\n  }\n\n  get errorKeys() {\n    return Object.keys(this.errors);\n  }\n\n  errorTrackFn(errKey: string) {\n    // TODO: temporal workaround to bypass false-positive NG0956 warning: https://github.com/angular/angular/issues/56471\n    return errKey;\n  }\n}\n","<div [attr.id]=\"errorMessageId\" aria-live=\"assertive\">\n  <!-- TODO: temporal workaround to bypass false-positive NG0956 warning: https://github.com/angular/angular/issues/56471 -->\n  @for (errKey of errorKeys; track errorTrackFn(errKey)) {\n    <div>\n      @if (errorMessages[errKey]) {\n        <ng-template\n          [ngTemplateOutlet]=\"errorMessages[errKey]\"\n          [ngTemplateOutletContext]=\"{\n            $implicit: errors[errKey],\n            error: errors[errKey]\n          }\"\n        ></ng-template>\n      } @else if (!errorMessages[errKey] && globalErrorMessages[errKey]) {\n        <ng-template\n          [ngTemplateOutlet]=\"globalErrorMessages[errKey]\"\n          [ngTemplateOutletContext]=\"{\n            $implicit: errors[errKey],\n            error: errors[errKey]\n          }\"\n        ></ng-template>\n      } @else if (!errorMessages[errKey] && !globalErrorMessages[errKey]) {\n        Validation error: *{{ errKey }}*.\n      }\n    </div>\n  }\n</div>\n","import {\n  Directive,\n  HostBinding,\n  HostListener,\n  inject,\n  Input,\n  OnChanges,\n  OnInit,\n  signal,\n  SimpleChanges,\n} from '@angular/core';\nimport { takeUntil } from 'rxjs/operators';\nimport {\n  ControlContainer,\n  UntypedFormControl,\n  FormGroupDirective,\n  NgControl,\n  NgForm,\n} from '@angular/forms';\nimport { VudTooltipDirective } from '../tooltip';\nimport { VudErrorTooltipContentComponent } from './error-tooltip-content.component';\nimport { VudErrorMessages, VudErrorsComponent } from './error-messages';\nimport { Observable, Subscription } from 'rxjs';\n\n// Increasing integer for generating unique ids for error message component.\nlet nextErrorMessageId = 0;\n\n@Directive({\n  selector: '[vudErrorTooltip]',\n  exportAs: 'vudErrorTooltip',\n})\nexport class VudErrorTooltipDirective\n  extends VudTooltipDirective\n  implements OnInit, OnChanges\n{\n  private readonly implicitNgControl = inject(NgControl, { optional: true });\n  private readonly ngForm = inject(NgForm, { optional: true });\n  private readonly controlContainer = inject(ControlContainer, {\n    optional: true,\n  });\n\n  private readonly _hasError = signal(false);\n  private inFocus = false;\n  private formSubmitted = false;\n\n  private contentInstance: VudErrorTooltipContentComponent | null = null;\n  private _errorMessages: VudErrorMessages | {} = {};\n  private errorMessagesSub = new Subscription();\n\n  readonly hasError = this._hasError.asReadonly();\n\n  @HostBinding('class.has-error') get hasErrorClass() {\n    return this.hasError();\n  }\n\n  readonly errorMessageId = `vud-error-message-${++nextErrorMessageId}`;\n\n  @Input('vudErrorTooltip') errorMessages: VudErrorsComponent | string = '';\n  @Input('vudErrorTooltipControl') explicitNgControl?:\n    | NgControl\n    | UntypedFormControl;\n  @Input('vudErrorTooltipCustom') customErrors?: { [key: string]: any } | null =\n    null;\n\n  constructor() {\n    super();\n    this.controlMode = 'none';\n    this.style = 'error';\n    this.content = '';\n  }\n\n  ngOnInit() {\n    if (!this.ngControl) {\n      throw new Error(\n        `[vudErrorTooltip] only works with angular form controls. Make sure [(ngModel)] or [formControl] is used.`,\n      );\n    }\n\n    (this.ngControl.statusChanges as Observable<unknown>)\n      .pipe(takeUntil(this.destroyed$))\n      .subscribe(() => this.checkTooltipState());\n\n    this.formContainer?.ngSubmit\n      .pipe(takeUntil(this.destroyed$))\n      .subscribe(() => {\n        this.formSubmitted = true;\n        this.checkTooltipState();\n      });\n  }\n\n  ngDoCheck() {\n    if (\n      this.formContainer &&\n      this.formContainer.submitted !== this.formSubmitted\n    ) {\n      // `NgForm` doesn't provide `reset` observable,\n      // so this must be manually checked on every change-detection run ;(\n      this.formSubmitted = this.formContainer.submitted;\n      this.checkTooltipState();\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    this.checkTooltipState();\n\n    if (changes['errorMessages']) {\n      this.errorMessagesSub?.unsubscribe();\n      if (this.errorMessages instanceof VudErrorsComponent) {\n        this.errorMessagesSub = this.errorMessages.errors$\n          .pipe(takeUntil(this.destroyed$))\n          .subscribe((errorMessages) => {\n            this._errorMessages = errorMessages;\n            this.updateErrorMessages();\n          });\n      } else {\n        this._errorMessages = {};\n        this.updateErrorMessages();\n      }\n    }\n  }\n\n  @HostListener('focusin')\n  onFocus() {\n    this.inFocus = true;\n    this.checkTooltipState();\n  }\n\n  @HostListener('focusout')\n  onBlur() {\n    this.inFocus = false;\n    this.checkTooltipState();\n  }\n\n  override hide() {\n    // overriding this method to prevent default tooltip closing behaviour\n  }\n\n  private get ngControl() {\n    if (\n      this.explicitNgControl instanceof NgControl ||\n      this.explicitNgControl instanceof UntypedFormControl\n    ) {\n      return this.explicitNgControl;\n    }\n    return this.implicitNgControl;\n  }\n\n  private get formContainer() {\n    if (\n      this.controlContainer &&\n      this.controlContainer.formDirective instanceof FormGroupDirective\n    ) {\n      return this.controlContainer.formDirective;\n    }\n    return this.ngForm;\n  }\n\n  private checkTooltipState() {\n    const hasCustomError = Object.values(this.customErrors ?? {}).some(\n      (e) => e !== null && e !== undefined,\n    );\n    this._hasError.set(\n      (this.ngControl!.invalid || hasCustomError) &&\n        ((this.ngControl!.touched && this.ngControl!.dirty) ||\n          this.formSubmitted),\n    );\n\n    const shouldBeVisible = this.hasError() && this.inFocus;\n    if (shouldBeVisible) {\n      this.show();\n      this.createContentInstance();\n      this.updateErrorMessages();\n    } else {\n      super.hide();\n      this.contentInstance = null;\n    }\n  }\n\n  private createContentInstance() {\n    if (!this.contentInstance) {\n      this.contentInstance = this.projectComponent(\n        VudErrorTooltipContentComponent,\n      );\n      this.contentInstance.errorMessageId = this.errorMessageId;\n    }\n    return this.contentInstance;\n  }\n\n  private updateErrorMessages() {\n    if (!this.contentInstance) {\n      return;\n    }\n    this.contentInstance.errors = this.getErrors();\n    this.contentInstance.errorMessages = this._errorMessages;\n    this.contentInstance.cd.detectChanges();\n  }\n\n  private getErrors() {\n    const customErrors = Object.entries(this.customErrors ?? {}).reduce(\n      (l, [key, err]) =>\n        err !== null && err !== undefined ? { ...l, [key]: err } : l,\n      {},\n    );\n\n    return { ...this.ngControl!.errors, ...customErrors };\n  }\n}\n","import { Directive, HostBinding, inject } from '@angular/core';\nimport { VudErrorTooltipDirective } from './error-tooltip.directive';\n\n@Directive({\n  selector:\n    'input[vudErrorTooltip], textarea[vudErrorTooltip], select[vudErrorTooltip]',\n})\nexport class VudNativeErrorTooltipControlDirective {\n  private errorTooltip = inject(VudErrorTooltipDirective, { self: true });\n\n  @HostBinding('attr.aria-invalid') get ariaInvalid() {\n    return this.errorTooltip.hasError();\n  }\n\n  @HostBinding('attr.aria-errormessage') get errorMessageId() {\n    return this.errorTooltip.errorMessageId;\n  }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { NgModule } from '@angular/core';\n\nimport { VudErrorTooltipDirective } from './error-tooltip.directive';\nimport { VudErrorTooltipContentComponent } from './error-tooltip-content.component';\nimport {\n  VudErrorDirective,\n  VudErrorsComponent,\n  VudGlobalErrorsComponent,\n} from './error-messages';\nimport { VudNativeErrorTooltipControlDirective } from './native-error-tooltip-control.directive';\n\n@NgModule({\n  imports: [\n    OverlayModule,\n    VudErrorTooltipDirective,\n    VudErrorTooltipContentComponent,\n    VudErrorsComponent,\n    VudErrorDirective,\n    VudGlobalErrorsComponent,\n    VudNativeErrorTooltipControlDirective,\n  ],\n  exports: [\n    VudErrorTooltipDirective,\n    VudErrorsComponent,\n    VudErrorDirective,\n    VudGlobalErrorsComponent,\n    VudNativeErrorTooltipControlDirective,\n  ],\n})\nexport class VudErrorTooltipModule {}\n","import { Directive, effect, inject } from '@angular/core';\nimport { VudCheckboxComponent } from './checkbox.component';\nimport { VudErrorTooltipDirective } from '../error-tooltip';\n\n@Directive({\n  selector: 'vud-checkbox[vudErrorTooltip]',\n})\nexport class VudInputErrorTooltipDirective {\n  private errorTooltip = inject(VudErrorTooltipDirective, { self: true });\n  private checkbox = inject(VudCheckboxComponent, { self: true });\n\n  constructor() {\n    effect(() => {\n      this.checkbox.ariaInvalid = this.errorTooltip.hasError().toString();\n      this.checkbox.ariaErrormessage = this.errorTooltip.errorMessageId;\n    });\n  }\n}\n","import { NgModule } from '@angular/core';\n\nimport { VudCheckboxComponent } from './checkbox.component';\nimport { VudCheckboxRequiredValidator } from './checkbox-required.validator';\nimport { VudInputErrorTooltipDirective } from './checkbox-error-tooltip.directive';\n\n@NgModule({\n  imports: [\n    VudCheckboxComponent,\n    VudCheckboxRequiredValidator,\n    VudInputErrorTooltipDirective,\n  ],\n  exports: [\n    VudCheckboxComponent,\n    VudCheckboxRequiredValidator,\n    VudInputErrorTooltipDirective,\n  ],\n})\nexport class VudCheckboxModule {}\n","import { CdkAccordion } from '@angular/cdk/accordion';\nimport { InjectionToken } from '@angular/core';\n\nexport const VUD_COLLAPSIBLE_LIST = new InjectionToken<CdkAccordion>(\n  'vudCollapsibleList',\n);\n","import {\n  animate,\n  state,\n  style,\n  transition,\n  trigger,\n} from '@angular/animations';\n\nexport const accordion = trigger('accordion', [\n  state(\n    'collapsed, void',\n    style({ height: '0', padding: '0', visibility: 'hidden' }),\n  ),\n  state('expanded', style({ height: '*', visibility: 'visible' })),\n  transition('expanded <=> collapsed, void => collapsed', [\n    animate('225ms ease-out'),\n  ]),\n]);\n","import { CdkAccordion, CdkAccordionItem } from '@angular/cdk/accordion';\nimport { UniqueSelectionDispatcher } from '@angular/cdk/collections';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  inject,\n  TemplateRef,\n  viewChild,\n} from '@angular/core';\nimport { animations } from '../../common';\n\n@Component({\n  selector: 'vud-expansion-panel',\n  templateUrl: './expansion-panel.component.html',\n  styleUrls: ['./expansion-panel.component.scss'],\n  hostDirectives: [{ directive: CdkAccordionItem, inputs: ['expanded'] }],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  animations: [animations.accordion],\n})\nexport class VudExpansionPanelComponent {\n  protected cdkPanel = inject(CdkAccordionItem);\n\n  readonly templateRef = viewChild.required(TemplateRef);\n\n  get headerId() {\n    return this.cdkPanel.id + '-header';\n  }\n\n  get panelId() {\n    return this.cdkPanel.id + '-panel';\n  }\n}\n","<ng-template>\n  <div class=\"panel panel-default\">\n    <div class=\"panel-heading\" [attr.id]=\"headerId\">\n      <h4 class=\"panel-title\">\n        <a\n          role=\"button\"\n          (click)=\"cdkPanel.toggle()\"\n          [class.collapsed]=\"!cdkPanel.expanded\"\n          data-toggle=\"collapse\"\n          [attr.aria-expanded]=\"cdkPanel.expanded\"\n          [attr.aria-controls]=\"panelId\"\n        >\n          <ng-content select=\"vud-panel-title\"></ng-content>\n          <span class=\"caret caret-large-blue\"></span>\n        </a>\n      </h4>\n    </div>\n\n    <div\n      role=\"region\"\n      [attr.id]=\"panelId\"\n      class=\"panel-collapse\"\n      [@accordion]=\"cdkPanel.expanded ? 'expanded' : 'collapsed'\"\n      [class.expanded]=\"cdkPanel.expanded\"\n      [attr.aria-labelledby]=\"headerId\"\n    >\n      <div class=\"panel-body\">\n        <ng-content></ng-content>\n      </div>\n    </div>\n  </div>\n</ng-template>\n","import { CdkAccordion } from '@angular/cdk/accordion';\nimport {\n  Component,\n  ChangeDetectionStrategy,\n  contentChildren,\n} from '@angular/core';\nimport { VUD_COLLAPSIBLE_LIST } from './collapsible-list-base';\nimport { VudExpansionPanelComponent } from './expansion-panel/expansion-panel.component';\nimport { NgTemplateOutlet } from '@angular/common';\n\n@Component({\n  selector: 'vud-collapsible-list',\n  imports: [NgTemplateOutlet],\n  templateUrl: './collapsible-list.component.html',\n  styleUrls: ['./collapsible-list.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  hostDirectives: [{ directive: CdkAccordion, inputs: ['multi'] }],\n  providers: [\n    { provide: VUD_COLLAPSIBLE_LIST, useExisting: VudCollapsibleListComponent },\n  ],\n  host: {\n    class: 'panel-group',\n  },\n})\nexport class VudCollapsibleListComponent {\n  readonly panels = contentChildren(VudExpansionPanelComponent);\n}\n","@for (panel of panels(); track panel.panelId) {\n  <ng-container [ngTemplateOutlet]=\"panel.templateRef()\"></ng-container>\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n  selector: 'vud-panel-title',\n  templateUrl: './panel-title.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class VudPanelTitleComponent {}\n","<ng-content></ng-content>\n","import { NgModule } from '@angular/core';\n\nimport { VudCollapsibleListComponent } from './collapsible-list.component';\nimport { VudExpansionPanelComponent } from './expansion-panel/expansion-panel.component';\nimport { VudPanelTitleComponent } from './panel-title/panel-title.component';\n\n@NgModule({\n  imports: [\n    VudCollapsibleListComponent,\n    VudExpansionPanelComponent,\n    VudPanelTitleComponent,\n  ],\n  exports: [\n    VudCollapsibleListComponent,\n    VudExpansionPanelComponent,\n    VudPanelTitleComponent,\n  ],\n})\nexport class VudCollapsibleListModule {}\n","/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2015-2018 Angular ng-bootstrap team\n * Copyright (c) 2022 Visma\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nexport function toInteger(value: any): number {\n  return parseInt(`${value}`, 10);\n}\n\nexport function isNumber(value: any): value is number {\n  return !isNaN(toInteger(value));\n}\n\nexport function isInteger(value: any): value is number {\n  return (\n    typeof value === 'number' && isFinite(value) && Math.floor(value) === value\n  );\n}\n\nexport function padNumber(value: number) {\n  if (isNumber(value)) {\n    return `0${value}`.slice(-2);\n  } else {\n    return '';\n  }\n}\n\nexport function hasClassName(element: any, className: string): boolean {\n  return (\n    element &&\n    element.className &&\n    element.className.split &&\n    element.className.split(/\\s+/).indexOf(className) >= 0\n  );\n}\n","/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2015-2018 Angular ng-bootstrap team\n * Copyright (c) 2022 Visma\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport { NgbDateStruct } from './ngb-date-struct';\nimport { isInteger } from '../util/util';\n\n/**\n * A simple class that represents a date that datepicker also uses internally.\n *\n * It is the implementation of the `NgbDateStruct` interface that adds some convenience methods,\n * like `.equals()`, `.before()`, etc.\n *\n * All datepicker APIs consume `NgbDateStruct`, but return `NgbDate`.\n *\n * In many cases it is simpler to manipulate these objects together with\n * [`NgbCalendar`](#/components/datepicker/api#NgbCalendar) than native JS Dates.\n *\n * See the [date format overview](#/components/datepicker/overview#date-model) for more details.\n *\n * @since 3.0.0\n */\nexport class NgbDate implements NgbDateStruct {\n  /**\n   * The year, for example 2016\n   */\n  year: number;\n\n  /**\n   * The month, for example 1=Jan ... 12=Dec as in ISO 8601\n   */\n  month: number;\n\n  /**\n   * The day of month, starting with 1\n   */\n  day: number;\n\n  /**\n   * A **static method** that creates a new date object from the `NgbDateStruct`,\n   *\n   * ex. `NgbDate.from({year: 2000, month: 5, day: 1})`.\n   *\n   * If the `date` is already of `NgbDate` type, the method will return the same object.\n   */\n  static from(date?: NgbDateStruct | null): NgbDate | null {\n    if (date instanceof NgbDate) {\n      return date;\n    }\n    return date ? new NgbDate(date.year, date.month, date.day) : null;\n  }\n\n  constructor(year: number, month: number, day: number) {\n    this.year = isInteger(year) ? year : <any>null;\n    this.month = isInteger(month) ? month : <any>null;\n    this.day = isInteger(day) ? day : <any>null;\n  }\n\n  /**\n   * Checks if the current date is equal to another date.\n   */\n  equals(other?: NgbDateStruct | null): boolean {\n    return (\n      other != null &&\n      this.year === other.year &&\n      this.month === other.month &&\n      this.day === other.day\n    );\n  }\n\n  /**\n   * Checks if the current date is before another date.\n   */\n  before(other?: NgbDateStruct | null): boolean {\n    if (!other) {\n      return false;\n    }\n\n    if (this.year === other.year) {\n      if (this.month === other.month) {\n        return this.day === other.day ? false : this.day < other.day;\n      } else {\n        return this.month < other.month;\n      }\n    } else {\n      return this.year < other.year;\n    }\n  }\n\n  /**\n   * Checks if the current date is after another date.\n   */\n  after(other?: NgbDateStruct | null): boolean {\n    if (!other) {\n      return false;\n    }\n    if (this.year === other.year) {\n      if (this.month === other.month) {\n        return this.day === other.day ? false : this.day > other.day;\n      } else {\n        return this.month > other.month;\n      }\n    } else {\n      return this.year > other.year;\n    }\n  }\n}\n","/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2015-2018 Angular ng-bootstrap team\n * Copyright (c) 2022 Visma\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport { NgbDate } from './ngb-date';\nimport { Injectable } from '@angular/core';\nimport { isInteger } from '../util/util';\n\nexport function fromJSDate(jsDate: Date) {\n  return new NgbDate(\n    jsDate.getFullYear(),\n    jsDate.getMonth() + 1,\n    jsDate.getDate(),\n  );\n}\nexport function toJSDate(date: NgbDate) {\n  const jsDate = new Date(date.year, date.month - 1, date.day, 12);\n  // this is done avoid 30 -> 1930 conversion\n  if (!isNaN(jsDate.getTime())) {\n    jsDate.setFullYear(date.year);\n  }\n  return jsDate;\n}\n\nexport type NgbPeriod = 'y' | 'm' | 'd';\n\nexport function NGB_DATEPICKER_CALENDAR_FACTORY() {\n  return new NgbCalendarGregorian();\n}\n\n/**\n * A service that represents the calendar used by the datepicker.\n *\n * The default implementation uses the Gregorian calendar. You can inject it in your own\n * implementations if necessary to simplify `NgbDate` calculations.\n */\n@Injectable({ providedIn: 'root', useFactory: NGB_DATEPICKER_CALENDAR_FACTORY })\nexport abstract class NgbCalendar {\n  /**\n   * Returns the number of days per week.\n   */\n  abstract getDaysPerWeek(): number;\n\n  /**\n   * Returns an array of months per year.\n   *\n   * With default calendar we use ISO 8601 and return [1, 2, ..., 12];\n   */\n  abstract getMonths(year?: number): number[];\n\n  /**\n   * Returns the number of weeks per month.\n   */\n  abstract getWeeksPerMonth(): number;\n\n  /**\n   * Returns the weekday number for a given day.\n   *\n   * With the default calendar we use ISO 8601: 'weekday' is 1=Mon ... 7=Sun\n   */\n  abstract getWeekday(date: NgbDate): number;\n\n  /**\n   * Adds a number of years, months or days to a given date.\n   *\n   * * `period` can be `y`, `m` or `d` and defaults to day.\n   * * `number` defaults to 1.\n   *\n   * Always returns a new date.\n   */\n  abstract getNext(date: NgbDate, period?: NgbPeriod, number?: number): NgbDate;\n\n  /**\n   * Subtracts a number of years, months or days from a given date.\n   *\n   * * `period` can be `y`, `m` or `d` and defaults to day.\n   * * `number` defaults to 1.\n   *\n   * Always returns a new date.\n   */\n  abstract getPrev(date: NgbDate, period?: NgbPeriod, number?: number): NgbDate;\n\n  /**\n   * Returns the week number for a given week.\n   */\n  abstract getWeekNumber(\n    week: readonly NgbDate[],\n    firstDayOfWeek: number,\n  ): number;\n\n  /**\n   * Returns the today's date.\n   */\n  abstract getToday(): NgbDate;\n\n  /**\n   * Checks if a date is valid in the current calendar.\n   */\n  abstract isValid(date?: NgbDate | null): boolean;\n}\n\n@Injectable()\nexport class NgbCalendarGregorian extends NgbCalendar {\n  getDaysPerWeek() {\n    return 7;\n  }\n\n  getMonths() {\n    return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];\n  }\n\n  getWeeksPerMonth() {\n    return 6;\n  }\n\n  getNext(date: NgbDate, period: NgbPeriod = 'd', number = 1) {\n    let jsDate = toJSDate(date);\n    let checkMonth = true;\n    let expectedMonth = jsDate.getMonth();\n\n    switch (period) {\n      case 'y':\n        jsDate.setFullYear(jsDate.getFullYear() + number);\n        break;\n      case 'm':\n        expectedMonth += number;\n        jsDate.setMonth(expectedMonth);\n        expectedMonth = expectedMonth % 12;\n        if (expectedMonth < 0) {\n          expectedMonth = expectedMonth + 12;\n        }\n        break;\n      case 'd':\n        jsDate.setDate(jsDate.getDate() + number);\n        checkMonth = false;\n        break;\n      default:\n        return date;\n    }\n\n    if (checkMonth && jsDate.getMonth() !== expectedMonth) {\n      // this means the destination month has less days than the initial month\n      // let's go back to the end of the previous month:\n      jsDate.setDate(0);\n    }\n\n    return fromJSDate(jsDate);\n  }\n\n  getPrev(date: NgbDate, period: NgbPeriod = 'd', number = 1) {\n    return this.getNext(date, period, -number);\n  }\n\n  getWeekday(date: NgbDate) {\n    let jsDate = toJSDate(date);\n    let day = jsDate.getDay();\n    // in JS Date Sun=0, in ISO 8601 Sun=7\n    return day === 0 ? 7 : day;\n  }\n\n  getWeekNumber(week: readonly NgbDate[], firstDayOfWeek: number) {\n    // in JS Date Sun=0, in ISO 8601 Sun=7\n    if (firstDayOfWeek === 7) {\n      firstDayOfWeek = 0;\n    }\n\n    const thursdayIndex = (4 + 7 - firstDayOfWeek) % 7;\n    let date = week[thursdayIndex];\n\n    const jsDate = toJSDate(date);\n    jsDate.setDate(jsDate.getDate() + 4 - (jsDate.getDay() || 7)); // Thursday\n    const time = jsDate.getTime();\n    jsDate.setMonth(0); // Compare with Jan 1\n    jsDate.setDate(1);\n    return Math.floor(Math.round((time - jsDate.getTime()) / 86400000) / 7) + 1;\n  }\n\n  getToday(): NgbDate {\n    return fromJSDate(new Date());\n  }\n\n  isValid(date?: NgbDate | null): boolean {\n    if (\n      !date ||\n      !isInteger(date.year) ||\n      !isInteger(date.month) ||\n      !isInteger(date.day)\n    ) {\n      return false;\n    }\n\n    // year 0 doesn't exist in Gregorian calendar\n    if (date.year === 0) {\n      return false;\n    }\n\n    const jsDate = toJSDate(date);\n\n    return (\n      !isNaN(jsDate.getTime()) &&\n      jsDate.getFullYear() === date.year &&\n      jsDate.getMonth() + 1 === date.month &&\n      jsDate.getDate() === date.day\n    );\n  }\n}\n","import {\n  LOCALE_ID,\n  Injectable,\n  inject,\n  InjectionToken,\n  Provider,\n} from '@angular/core';\nimport { formatDate } from '@angular/common';\nimport { VudDateStruct } from './datepicker.model';\n\nexport function VUD_DATEPICKER_PARSER_FORMATTER_FACTORY() {\n  return new VudDateParserFormatterDefault();\n}\n\n/**\n * Converts between the internal `VudDateStruct` model presentation and a `string` that is displayed in the input element.\n */\n@Injectable({\n  providedIn: 'root',\n  useFactory: VUD_DATEPICKER_PARSER_FORMATTER_FACTORY,\n})\nexport abstract class VudDateParserFormatter {\n  /**\n   * When user types something in the input this method attempts to parse it into a `VudDateStruct` object.\n   * `null` must be returned if the value can't be parsed.\n   */\n  abstract parse(value: string): VudDateStruct | null;\n\n  /**\n   * When users enters a valid date (either via keyboard or mouse click) this method reformats it into a preferred format.\n   * An empty string must be returned if the given date is `null`.\n   */\n  abstract format(date: VudDateStruct | null): string;\n}\n\nexport type VudDatepickerFormats = {\n  [locale: string]: { input: string[]; output: string };\n};\n\nexport const VUD_DEFAULT_DATEPICKER_FORMATS: VudDatepickerFormats = {\n  'en-US': {\n    input: ['M/d/yy', 'M/d/yyyy', 'M.d.yy', 'M.d.yyyy', 'M-d-yy', 'M-d-yyyy'],\n    output: 'MM/dd/yyyy',\n  },\n  'en-GB': {\n    input: ['d/M/yy', 'd/M/yyyy', 'd.M.yy', 'd.M.yyyy', 'd-M-yy', 'd-M-yyyy'],\n    output: 'dd/MM/yyyy',\n  },\n  'da-dK': {\n    input: ['d.M.yy', 'd.M.yyyy', 'd/M/yy', 'd/M/yyyy', 'd-M-yy', 'd-M-yyyy'],\n    output: 'dd.MM.yyyy',\n  },\n  'fi-FI': {\n    input: ['d.M.yy', 'd.M.yyyy', 'd/M/yy', 'd/M/yyyy', 'd-M-yy', 'd-M-yyyy'],\n    output: 'dd.MM.yyyy',\n  },\n  'nb-NO': {\n    input: ['d.M.yy', 'd.M.yyyy', 'd/M/yy', 'd/M/yyyy', 'd-M-yy', 'd-M-yyyy'],\n    output: 'dd.MM.yyyy',\n  },\n  'nn-NO': {\n    input: ['d.M.yy', 'd.M.yyyy', 'd/M/yy', 'd/M/yyyy', 'd-M-yy', 'd-M-yyyy'],\n    output: 'dd.MM.yyyy',\n  },\n  'sv-SE': {\n    input: [\n      'yy-M-d',\n      'yyyy-M-d',\n      'yy/M/d',\n      'yyyy/M/d',\n      'yy.M.d',\n      'yyyy.M.d',\n      'yyMMdd',\n      'yyyyMMdd',\n    ],\n    output: 'yyyy-MM-dd',\n  },\n};\n\nexport const VUD_DATE_PARSER_FORMATTER_CONFIG = new InjectionToken(\n  'VUD_DATE_PARSER_FORMATTER_CONFIG',\n  { providedIn: 'root', factory: () => VUD_DEFAULT_DATEPICKER_FORMATS },\n);\n\nexport function extendVudDateParserFormatter(\n  formats: VudDatepickerFormats,\n): Provider {\n  return {\n    provide: VUD_DATE_PARSER_FORMATTER_CONFIG,\n    useValue: { ...VUD_DEFAULT_DATEPICKER_FORMATS, ...formats },\n  };\n}\n\n@Injectable()\nexport class VudDateParserFormatterDefault extends VudDateParserFormatter {\n  /** @ignore */\n  private readonly locale = inject(LOCALE_ID);\n  /** @ignore */\n  private readonly formats = inject(VUD_DATE_PARSER_FORMATTER_CONFIG);\n\n  parse(value: string): VudDateStruct | null {\n    let config = this.formats[this.locale];\n\n    if (!config) {\n      this.printUnknownLocaleWarning();\n      config = VUD_DEFAULT_DATEPICKER_FORMATS['en-GB'];\n    }\n\n    for (const format of config.input) {\n      const regexp = this.dateFormatToRegexp(format);\n\n      const match = value.match(regexp);\n      if (match) {\n        const yearIndex = format.indexOf('y');\n        const monthIndex = format.indexOf('M');\n        const dayIndex = format.indexOf('d');\n        const sortedIndexes = [yearIndex, monthIndex, dayIndex].sort();\n        const yearGroup = sortedIndexes.indexOf(yearIndex) + 1;\n        const monthGroup = sortedIndexes.indexOf(monthIndex) + 1;\n        const dayGroup = sortedIndexes.indexOf(dayIndex) + 1;\n        const year = this.addYearPadding(+match[yearGroup]);\n        const month = +match[monthGroup];\n        const day = +match[dayGroup];\n\n        if (month <= 0 || month > 12) {\n          // invalid month\n          return null;\n        }\n\n        const daysInMonth = new Date(year, month, 0).getDate();\n        if (day <= 0 || day > daysInMonth) {\n          // invalid day\n          return null;\n        }\n\n        return { year, month, day };\n      }\n    }\n    return null;\n  }\n\n  format(date: VudDateStruct): string {\n    if (!date) {\n      return '';\n    }\n    const utcDate = new Date(date.year, date.month - 1, date.day);\n    let format = this.formats[this.locale];\n    if (!format) {\n      this.printUnknownLocaleWarning();\n      format = VUD_DEFAULT_DATEPICKER_FORMATS['en-GB'];\n    }\n    return formatDate(utcDate, format.output, this.locale);\n  }\n\n  private dateFormatToRegexp(format: string) {\n    const pattern =\n      '^' +\n      format\n        // / to \\/\n        .replace(/\\//g, '\\\\/')\n        // . to \\.\n        .replace(/\\./g, '\\\\.')\n        .replace(/(d+)/, '(\\\\d{1,2})')\n        .replace(/(yyyy)/, '(\\\\d{4})')\n        .replace(/(yy)/, '(\\\\d{2})')\n        .replace(/(M+)/, '(\\\\d{1,2})') +\n      '$';\n    return new RegExp(pattern);\n  }\n\n  private addYearPadding(year: number) {\n    if (year < 100) {\n      return 2000 + year;\n    }\n    return year;\n  }\n\n  private printUnknownLocaleWarning() {\n    console.warn(\n      `Default datepicker parser-formatter does not have predefined formats for \"${this.locale}\" locale. Please provide custom 'VudDateParserFormatter' class. Now defaults to \"en-GB\".`,\n    );\n  }\n}\n","export function isInteger(value: any): boolean {\n  return (\n    typeof value === 'number' && isFinite(value) && Math.floor(value) === value\n  );\n}\n","import { Injectable, Provider, Type } from '@angular/core';\nimport { isInteger } from '../../utils/utils';\nimport { VudDateStruct } from '../datepicker.model';\n\nexport function VUD_DATE_ADAPTER_FACTORY() {\n  return new VudDateStructAdapter();\n}\n\n/**\n * An abstract service that does the conversion between the internal datepicker `VudDateStruct` model and\n * any provided user date model `D`, ex. a string, a native date, etc.\n *\n * The default datepicker implementation assumes we use `VudDateStruct` as a user model.\n */\n@Injectable({\n  providedIn: 'root',\n  useFactory: VUD_DATE_ADAPTER_FACTORY,\n})\nexport abstract class VudDateAdapter<D> {\n  /**\n   * Converts a user-model date of type `D` to an `VudDateStruct` for internal use.\n   */\n  abstract fromModel(value: D | null): VudDateStruct | null;\n\n  /**\n   * Converts an internal `VudDateStruct` date to a user-model date of type `D`.\n   */\n  abstract toModel(date: VudDateStruct | null): D | null;\n}\n\n@Injectable()\nexport class VudDateStructAdapter extends VudDateAdapter<VudDateStruct> {\n  fromModel(date: VudDateStruct | null): VudDateStruct | null {\n    return date &&\n      isInteger(date.year) &&\n      isInteger(date.month) &&\n      isInteger(date.day)\n      ? { year: date.year, month: date.month, day: date.day }\n      : null;\n  }\n\n  toModel(date: VudDateStruct | null): VudDateStruct | null {\n    return date &&\n      isInteger(date.year) &&\n      isInteger(date.month) &&\n      isInteger(date.day)\n      ? { year: date.year, month: date.month, day: date.day }\n      : null;\n  }\n}\n\nexport function provideVudDatepickerAdapter<T>(\n  adapter: Type<VudDateAdapter<T>>,\n): Provider {\n  return { provide: VudDateAdapter, useClass: adapter };\n}\n","import { Injectable, makeEnvironmentProviders } from '@angular/core';\n\nexport function VUD_DATEPICKER_INPUT_I18N_FACTORY() {\n  return new VudDatepickerInputI18nDefault();\n}\n\n@Injectable({\n  providedIn: 'root',\n  useFactory: VUD_DATEPICKER_INPUT_I18N_FACTORY,\n})\nexport abstract class VudDatepickerInputI18n {\n  abstract calendarLabel: string;\n  abstract todayLabel: string;\n  abstract clearLabel?: string;\n}\n\n@Injectable()\nexport class VudDatepickerInputI18nDefault extends VudDatepickerInputI18n {\n  /** A label for the button to open up a calendar picker. */\n  calendarLabel = 'Calendar';\n\n  /** A label for the button to choose the today date. */\n  todayLabel = 'Today';\n\n  /** A label for the button to clear the  date. */\n  clearLabel = 'Clear';\n}\n\nexport function provideVudDatepickerInputI18n(\n  value: VudDatepickerInputI18n | (() => VudDatepickerInputI18n),\n) {\n  return makeEnvironmentProviders([\n    typeof value === 'function'\n      ? { provide: VudDatepickerInputI18n, useFactory: value }\n      : { provide: VudDatepickerInputI18n, useValue: value },\n  ]);\n}\n","import { Injectable } from '@angular/core';\nimport { isInteger } from '../../utils/utils';\nimport { VudDateStruct } from '../datepicker.model';\nimport { VudDateAdapter } from './date-struct.adapter';\n\n@Injectable()\nexport class VudDateNativeAdapter extends VudDateAdapter<Date> {\n  /**\n   * Converts a native `Date` to a `VudDateStruct`.\n   */\n  fromModel(date: Date | null): VudDateStruct | null {\n    return date instanceof Date && !isNaN(date.getTime())\n      ? this._fromNativeDate(date)\n      : null;\n  }\n\n  /**\n   * Converts a `VudDateStruct` to a native `Date`.\n   */\n  toModel(date: VudDateStruct | null): Date | null {\n    return date &&\n      isInteger(date.year) &&\n      isInteger(date.month) &&\n      isInteger(date.day)\n      ? this._toNativeDate(date)\n      : null;\n  }\n\n  protected _fromNativeDate(date: Date): VudDateStruct {\n    return {\n      year: date.getFullYear(),\n      month: date.getMonth() + 1,\n      day: date.getDate(),\n    };\n  }\n\n  protected _toNativeDate(date: VudDateStruct): Date {\n    const jsDate = new Date(date.year, date.month - 1, date.day, 12);\n    // avoid 30 -> 1930 conversion\n    jsDate.setFullYear(date.year);\n    return jsDate;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { VudDateStruct } from '../datepicker.model';\nimport { VudDateNativeAdapter } from './date-native.adapter';\n\n@Injectable()\nexport class VudDateNativeUTCAdapter extends VudDateNativeAdapter {\n  protected override _fromNativeDate(date: Date): VudDateStruct {\n    return {\n      year: date.getUTCFullYear(),\n      month: date.getUTCMonth() + 1,\n      day: date.getUTCDate(),\n    };\n  }\n\n  protected override _toNativeDate(date: VudDateStruct): Date {\n    const jsDate = new Date(Date.UTC(date.year, date.month - 1, date.day));\n    // avoid 30 -> 1930 conversion\n    jsDate.setUTCFullYear(date.year);\n    return jsDate;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { VudDateAdapter } from './date-struct.adapter';\nimport { isInteger } from '../../utils/utils';\nimport { VudDateStruct } from '../datepicker.model';\n\n@Injectable()\nexport class VudDateNativeUtcIsoAdapter extends VudDateAdapter<string> {\n  /**\n   * Converts a ISO 8601 date string to a `VudDateStruct`.\n   */\n  fromModel(dateString: string | null): VudDateStruct | null {\n    if (dateString === null) {\n      return null;\n    }\n    const date = new Date(dateString);\n    return date instanceof Date && !isNaN(date.getTime())\n      ? this._fromNativeDate(date)\n      : null;\n  }\n\n  /**\n   * Converts a `VudDateStruct` to a ISO 8601 date string.\n   */\n  toModel(dateStruct: VudDateStruct | null): string | null {\n    return dateStruct &&\n      isInteger(dateStruct.year) &&\n      isInteger(dateStruct.month) &&\n      isInteger(dateStruct.day)\n      ? this._toNativeDate(dateStruct)\n      : null;\n  }\n\n  protected _fromNativeDate(date: Date): VudDateStruct {\n    return {\n      year: date.getUTCFullYear(),\n      month: date.getUTCMonth() + 1,\n      day: date.getUTCDate(),\n    };\n  }\n\n  protected _toNativeDate(date: VudDateStruct): string {\n    const jsDate = new Date(Date.UTC(date.year, date.month - 1, date.day));\n    // avoid 30 -> 1930 conversion\n    jsDate.setUTCFullYear(date.year);\n    return jsDate.toISOString();\n  }\n}\n","import { VudDateStruct } from '../datepicker.model';\n\nexport function sameDateStruct(\n  a: VudDateStruct | null,\n  b: VudDateStruct | null,\n): boolean {\n  return (\n    a === b ||\n    (a?.year === b?.year && a?.month === b?.month && a?.day === b?.day)\n  );\n}\n","/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2015-2018 Angular ng-bootstrap team\n * Copyright (c) 2022 Visma\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport { NgbDate } from './ngb-date';\nimport {\n  DatepickerViewModel,\n  DayViewModel,\n  MonthViewModel,\n} from './datepicker-view-model';\nimport { NgbCalendar } from './ngb-calendar';\nimport { VudDatepickerI18n } from '../../datepicker-i18n.service';\n\nexport function isChangedDate(\n  prev?: NgbDate | null,\n  next?: NgbDate | null,\n): boolean {\n  return !dateComparator(prev, next);\n}\n\nexport function isChangedMonth(\n  prev?: NgbDate | null,\n  next?: NgbDate | null,\n): boolean {\n  return !prev && !next\n    ? false\n    : !prev || !next\n      ? true\n      : prev.year !== next.year || prev.month !== next.month;\n}\n\nexport function dateComparator(\n  prev?: NgbDate | null,\n  next?: NgbDate | null,\n): boolean {\n  return (!prev && !next) || (!!prev && !!next && prev.equals(next));\n}\n\nexport function checkMinBeforeMax(\n  minDate?: NgbDate | null,\n  maxDate?: NgbDate | null,\n): void {\n  if (maxDate && minDate && maxDate.before(minDate)) {\n    throw new Error(\n      `'maxDate' ${maxDate} should be greater than 'minDate' ${minDate}`,\n    );\n  }\n}\n\nexport function checkDateInRange(\n  date?: NgbDate | null,\n  minDate?: NgbDate | null,\n  maxDate?: NgbDate | null,\n): NgbDate | null {\n  if (date && minDate && date.before(minDate)) {\n    return minDate;\n  }\n  if (date && maxDate && date.after(maxDate)) {\n    return maxDate;\n  }\n\n  return date || null;\n}\n\nexport function isDateSelectable(\n  date: NgbDate | null | undefined,\n  state: DatepickerViewModel,\n) {\n  const { minDate, maxDate, disabled, markDisabled } = state;\n  return !(\n    date === null ||\n    date === undefined ||\n    disabled ||\n    (markDisabled &&\n      markDisabled(date, { year: date.year, month: date.month })) ||\n    (minDate && date.before(minDate)) ||\n    (maxDate && date.after(maxDate))\n  );\n}\n\nexport function generateSelectBoxMonths(\n  calendar: NgbCalendar,\n  date: NgbDate,\n  minDate: NgbDate | null,\n  maxDate: NgbDate | null,\n) {\n  if (!date) {\n    return [];\n  }\n\n  let months = calendar.getMonths(date.year);\n\n  if (minDate && date.year === minDate.year) {\n    const index = months.findIndex((month) => month === minDate.month);\n    months = months.slice(index);\n  }\n\n  if (maxDate && date.year === maxDate.year) {\n    const index = months.findIndex((month) => month === maxDate.month);\n    months = months.slice(0, index + 1);\n  }\n\n  return months;\n}\n\nexport function generateSelectBoxYears(\n  date: NgbDate,\n  minDate: NgbDate | null,\n  maxDate: NgbDate | null,\n) {\n  if (!date) {\n    return [];\n  }\n\n  const start = minDate\n    ? Math.max(minDate.year, date.year - 500)\n    : date.year - 10;\n  const end = maxDate\n    ? Math.min(maxDate.year, date.year + 500)\n    : date.year + 10;\n\n  const length = end - start + 1;\n  const numbers = Array(length);\n  for (let i = 0; i < length; i++) {\n    numbers[i] = start + i;\n  }\n\n  return numbers;\n}\n\nexport function nextMonthDisabled(\n  calendar: NgbCalendar,\n  date: NgbDate,\n  maxDate: NgbDate | null,\n) {\n  const nextDate = Object.assign(calendar.getNext(date, 'm'), { day: 1 });\n  return maxDate != null && nextDate.after(maxDate);\n}\n\nexport function prevMonthDisabled(\n  calendar: NgbCalendar,\n  date: NgbDate,\n  minDate: NgbDate | null,\n) {\n  const prevDate = Object.assign(calendar.getPrev(date, 'm'), { day: 1 });\n  return (\n    minDate != null &&\n    ((prevDate.year === minDate.year && prevDate.month < minDate.month) ||\n      (prevDate.year < minDate.year && minDate.month === 1))\n  );\n}\n\nexport function buildMonths(\n  calendar: NgbCalendar,\n  date: NgbDate,\n  state: DatepickerViewModel,\n  i18n: VudDatepickerI18n,\n  force: boolean,\n): MonthViewModel[] {\n  const { displayMonths, months } = state;\n  // move old months to a temporary array\n  const monthsToReuse = months.splice(0, months.length);\n\n  // generate new first dates, nullify or reuse months\n  const firstDates = Array.from({ length: displayMonths }, (_, i) => {\n    const firstDate = Object.assign(calendar.getNext(date, 'm', i), { day: 1 });\n    months[i] = <any>null;\n\n    if (!force) {\n      const reusedIndex = monthsToReuse.findIndex((month) =>\n        month.firstDate.equals(firstDate),\n      );\n      // move reused month back to months\n      if (reusedIndex !== -1) {\n        months[i] = monthsToReuse.splice(reusedIndex, 1)[0];\n      }\n    }\n\n    return firstDate;\n  });\n\n  // rebuild nullified months\n  firstDates.forEach((firstDate, i) => {\n    if (months[i] === null) {\n      months[i] = buildMonth(\n        calendar,\n        firstDate,\n        state,\n        i18n,\n        monthsToReuse.shift() || ({} as MonthViewModel),\n      );\n    }\n  });\n\n  return months;\n}\n\nexport function buildMonth(\n  calendar: NgbCalendar,\n  date: NgbDate,\n  state: DatepickerViewModel,\n  i18n: VudDatepickerI18n,\n  month: MonthViewModel = {} as MonthViewModel,\n): MonthViewModel {\n  const {\n    dayTemplateData,\n    minDate,\n    maxDate,\n    firstDayOfWeek,\n    markDisabled,\n    outsideDays,\n    weekdayWidth,\n    weekdaysVisible,\n  } = state;\n  const calendarToday = calendar.getToday();\n\n  month.firstDate = <any>null;\n  month.lastDate = <any>null;\n  month.number = date.month;\n  month.year = date.year;\n  month.weeks = month.weeks || [];\n  month.weekdays = month.weekdays || [];\n\n  date = getFirstViewDate(calendar, date, firstDayOfWeek);\n\n  // clearing weekdays, if not visible\n  if (!weekdaysVisible) {\n    month.weekdays.length = 0;\n  }\n\n  // month has weeks\n  for (let week = 0; week < calendar.getWeeksPerMonth(); week++) {\n    let weekObject = month.weeks[week];\n    if (!weekObject) {\n      weekObject = month.weeks[week] = { number: 0, days: [], collapsed: true };\n    }\n    const days = weekObject.days;\n\n    // week has days\n    for (let day = 0; day < calendar.getDaysPerWeek(); day++) {\n      if (week === 0 && weekdaysVisible) {\n        month.weekdays[day] = i18n.getWeekdayLabel(\n          calendar.getWeekday(date),\n          weekdayWidth,\n        );\n      }\n\n      const newDate = new NgbDate(date.year, date.month, date.day);\n      const nextDate = calendar.getNext(newDate);\n\n      const ariaLabel = i18n.getDayAriaLabel(newDate);\n\n      // marking date as disabled\n      let disabled = !!(\n        (minDate && newDate.before(minDate)) ||\n        (maxDate && newDate.after(maxDate))\n      );\n      if (!disabled && markDisabled) {\n        disabled = markDisabled(newDate, {\n          month: month.number,\n          year: month.year,\n        });\n      }\n\n      // today\n      let today = newDate.equals(calendarToday);\n\n      // adding user-provided data to the context\n      let contextUserData = dayTemplateData\n        ? dayTemplateData(newDate, { month: month.number, year: month.year })\n        : undefined;\n\n      // saving first date of the month\n      if (month.firstDate === null && newDate.month === month.number) {\n        month.firstDate = newDate;\n      }\n\n      // saving last date of the month\n      if (newDate.month === month.number && nextDate.month !== month.number) {\n        month.lastDate = newDate;\n      }\n\n      let dayObject = days[day];\n      if (!dayObject) {\n        dayObject = days[day] = {} as DayViewModel;\n      }\n      dayObject.date = newDate;\n      dayObject.context = Object.assign(dayObject.context || {}, {\n        $implicit: newDate,\n        date: newDate,\n        data: contextUserData,\n        currentMonth: month.number,\n        currentYear: month.year,\n        disabled,\n        focused: false,\n        selected: false,\n        today,\n      });\n      dayObject.tabindex = -1;\n      dayObject.ariaLabel = ariaLabel;\n      dayObject.hidden = false;\n\n      date = nextDate;\n    }\n\n    weekObject.number = calendar.getWeekNumber(\n      days.map((day) => day.date),\n      firstDayOfWeek,\n    );\n\n    // marking week as collapsed\n    weekObject.collapsed =\n      outsideDays === 'collapsed' &&\n      days[0].date.month !== month.number &&\n      days[days.length - 1].date.month !== month.number;\n  }\n\n  return month;\n}\n\nexport function getFirstViewDate(\n  calendar: NgbCalendar,\n  date: NgbDate,\n  firstDayOfWeek: number,\n): NgbDate {\n  const daysPerWeek = calendar.getDaysPerWeek();\n  const firstMonthDate = new NgbDate(date.year, date.month, 1);\n  const dayOfWeek = calendar.getWeekday(firstMonthDate) % daysPerWeek;\n  return calendar.getPrev(\n    firstMonthDate,\n    'd',\n    (daysPerWeek + dayOfWeek - firstDayOfWeek) % daysPerWeek,\n  );\n}\n","import {\n  Injectable,\n  LOCALE_ID,\n  inject,\n  makeEnvironmentProviders,\n} from '@angular/core';\nimport {\n  formatDate,\n  FormStyle,\n  getLocaleDayNames,\n  getLocaleMonthNames,\n  TranslationWidth,\n} from '@angular/common';\nimport { NgbDateStruct } from './ngb-datepicker/datepicker/ngb-date-struct';\n\nexport function VUD_DATEPICKER_18N_FACTORY() {\n  return new VudDatepickerI18nDefault();\n}\n\nexport interface IVudDatepickerI18n {\n  previousMonthLabel: string;\n  nextMonthLabel: string;\n  selectMonthLabel: string;\n  selectYearLabel: string;\n\n  /**\n   * Returns the week label to display in the heading of the month view.\n   */\n  weekLabel: string;\n\n  /**\n   * Returns the weekday label using specified width\n   */\n  getWeekdayLabel?(weekday: number, width?: TranslationWidth): string;\n\n  /**\n   * Returns the short month name to display in the date picker navigation.\n   *\n   * With default calendar we use ISO 8601: 'month' is 1=Jan ... 12=Dec.\n   */\n  getMonthShortName?(month: number): string;\n\n  /**\n   * Returns the full month name to display in the date picker navigation.\n   *\n   * With default calendar we use ISO 8601: 'month' is 1=Jan ... 12=Dec.\n   */\n  getMonthFullName?(month: number): string;\n\n  /**\n   * Returns the value of the `aria-label` attribute for a specific date.\n   */\n  getDayAriaLabel?(date: NgbDateStruct): string;\n\n  /**\n   * Returns the text label to display above the day view.\n   */\n  getMonthLabel?(date: NgbDateStruct): string;\n\n  /**\n   * Returns the textual representation of a day that is rendered in a day cell.\n   */\n  getDayNumerals?(date: NgbDateStruct): string;\n\n  /**\n   * Returns the textual representation of a week number rendered by datepicker.\n   */\n  getWeekNumerals?(weekNumber: number): string;\n\n  /**\n   * Returns the textual representation of a year that is rendered in the datepicker year select box.\n   */\n  getYearNumerals?(year: number): string;\n}\n\n@Injectable({\n  providedIn: 'root',\n  useFactory: VUD_DATEPICKER_18N_FACTORY,\n})\nexport abstract class VudDatepickerI18n implements IVudDatepickerI18n {\n  /** @ignore */\n  private readonly _locale = inject(LOCALE_ID);\n\n  abstract previousMonthLabel: string;\n  abstract nextMonthLabel: string;\n  abstract selectMonthLabel: string;\n  abstract selectYearLabel: string;\n  abstract weekLabel: string;\n\n  getWeekdayLabel(weekday: number, width?: TranslationWidth): string {\n    const weekdaysStartingOnSunday = getLocaleDayNames(\n      this._locale,\n      FormStyle.Standalone,\n      width === undefined ? TranslationWidth.Short : width,\n    );\n    const weekdays = weekdaysStartingOnSunday.map(\n      (_, index) => weekdaysStartingOnSunday[(index + 1) % 7],\n    );\n    return weekdays[weekday - 1] || '';\n  }\n\n  getMonthShortName(month: number): string {\n    const monthsShort = getLocaleMonthNames(\n      this._locale,\n      FormStyle.Standalone,\n      TranslationWidth.Abbreviated,\n    );\n    return monthsShort[month - 1] || '';\n  }\n\n  getMonthFullName(month: number): string {\n    const monthsFull = getLocaleMonthNames(\n      this._locale,\n      FormStyle.Standalone,\n      TranslationWidth.Wide,\n    );\n    return monthsFull[month - 1] || '';\n  }\n\n  getDayAriaLabel(date: NgbDateStruct): string {\n    const jsDate = new Date(date.year, date.month - 1, date.day);\n    return formatDate(jsDate, 'fullDate', this._locale);\n  }\n\n  getMonthLabel(date: NgbDateStruct): string {\n    return `${this.getMonthFullName(date.month)} ${this.getYearNumerals(\n      date.year,\n    )}`;\n  }\n\n  getDayNumerals(date: NgbDateStruct): string {\n    return `${date.day}`;\n  }\n\n  getWeekNumerals(weekNumber: number): string {\n    return `${weekNumber}`;\n  }\n\n  getYearNumerals(year: number): string {\n    return `${year}`;\n  }\n}\n\n@Injectable()\nexport class VudDatepickerI18nDefault extends VudDatepickerI18n {\n  previousMonthLabel = 'Previous month';\n  nextMonthLabel = 'Next month';\n  selectMonthLabel = 'Select month';\n  selectYearLabel = 'Select year';\n  weekLabel = '';\n}\n\nexport function provideVudDatepickerI18n(\n  value: IVudDatepickerI18n | (() => IVudDatepickerI18n),\n) {\n  return makeEnvironmentProviders([\n    {\n      provide: VudDatepickerI18n,\n      useFactory: () => {\n        const defaultI18n = VUD_DATEPICKER_18N_FACTORY();\n        const i18n: Required<IVudDatepickerI18n> = {\n          ...defaultI18n,\n          getWeekdayLabel: defaultI18n.getWeekdayLabel,\n          getMonthShortName: defaultI18n.getMonthShortName,\n          getMonthFullName: defaultI18n.getMonthFullName,\n          getDayAriaLabel: defaultI18n.getDayAriaLabel,\n          getMonthLabel: defaultI18n.getMonthLabel,\n          getDayNumerals: defaultI18n.getDayNumerals,\n          getWeekNumerals: defaultI18n.getWeekNumerals,\n          getYearNumerals: defaultI18n.getYearNumerals,\n          ...(typeof value === 'function' ? value() : value),\n        };\n        return i18n;\n      },\n    },\n  ]);\n}\n","/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2015-2018 Angular ng-bootstrap team\n * Copyright (c) 2022 Visma\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport { NgbCalendar } from './ngb-calendar';\nimport { NgbDate } from './ngb-date';\nimport { NgbDateStruct } from './ngb-date-struct';\nimport {\n  DatepickerViewModel,\n  NgbDayTemplateData,\n  NgbMarkDisabled,\n} from './datepicker-view-model';\nimport { Injectable } from '@angular/core';\nimport { isInteger, toInteger } from '../util/util';\nimport { Observable, Subject } from 'rxjs';\nimport {\n  buildMonths,\n  checkDateInRange,\n  checkMinBeforeMax,\n  generateSelectBoxMonths,\n  generateSelectBoxYears,\n  isChangedDate,\n  isChangedMonth,\n  isDateSelectable,\n  nextMonthDisabled,\n  prevMonthDisabled,\n} from './datepicker-tools';\n\nimport { filter } from 'rxjs/operators';\nimport { TranslationWidth } from '@angular/common';\nimport { VudDatepickerI18n } from '../../datepicker-i18n.service';\n\nexport type DatepickerServiceInputs = Partial<{\n  dayTemplateData: NgbDayTemplateData;\n  displayMonths: number;\n  disabled: boolean;\n  firstDayOfWeek: number;\n  focusVisible: boolean;\n  markDisabled: NgbMarkDisabled;\n  maxDate: NgbDate | null;\n  minDate: NgbDate | null;\n  navigation: 'select' | 'arrows' | 'none';\n  outsideDays: 'visible' | 'collapsed' | 'hidden';\n  weekdays: TranslationWidth | boolean;\n}>;\n\n@Injectable()\nexport class NgbDatepickerService {\n  private _VALIDATORS: {\n    [K in keyof DatepickerServiceInputs]: (\n      v: DatepickerServiceInputs[K],\n    ) => Partial<DatepickerViewModel> | void;\n  } = {\n    dayTemplateData: (dayTemplateData: NgbDayTemplateData | undefined) => {\n      if (this._state.dayTemplateData !== dayTemplateData) {\n        return { dayTemplateData };\n      }\n      return undefined;\n    },\n    displayMonths: (displayMonths: number | undefined) => {\n      displayMonths = toInteger(displayMonths);\n      if (\n        isInteger(displayMonths) &&\n        displayMonths > 0 &&\n        this._state.displayMonths !== displayMonths\n      ) {\n        return { displayMonths };\n      }\n      return undefined;\n    },\n    disabled: (disabled: boolean | undefined) => {\n      if (this._state.disabled !== disabled) {\n        return { disabled };\n      }\n      return undefined;\n    },\n    firstDayOfWeek: (firstDayOfWeek: number | undefined) => {\n      firstDayOfWeek = toInteger(firstDayOfWeek);\n      if (\n        isInteger(firstDayOfWeek) &&\n        firstDayOfWeek >= 0 &&\n        this._state.firstDayOfWeek !== firstDayOfWeek\n      ) {\n        return { firstDayOfWeek };\n      }\n      return undefined;\n    },\n    focusVisible: (focusVisible: boolean | undefined) => {\n      if (this._state.focusVisible !== focusVisible && !this._state.disabled) {\n        return { focusVisible };\n      }\n      return undefined;\n    },\n    markDisabled: (markDisabled: NgbMarkDisabled | undefined) => {\n      if (this._state.markDisabled !== markDisabled) {\n        return { markDisabled };\n      }\n      return undefined;\n    },\n    maxDate: (date: NgbDate | null | undefined) => {\n      const maxDate = this.toValidDate(date, null);\n      if (isChangedDate(this._state.maxDate, maxDate)) {\n        return { maxDate };\n      }\n      return undefined;\n    },\n    minDate: (date: NgbDate | null | undefined) => {\n      const minDate = this.toValidDate(date, null);\n      if (isChangedDate(this._state.minDate, minDate)) {\n        return { minDate };\n      }\n      return undefined;\n    },\n    navigation: (navigation: 'select' | 'arrows' | 'none' | undefined) => {\n      if (this._state.navigation !== navigation) {\n        return { navigation };\n      }\n      return undefined;\n    },\n    outsideDays: (\n      outsideDays: 'visible' | 'collapsed' | 'hidden' | undefined,\n    ) => {\n      if (this._state.outsideDays !== outsideDays) {\n        return { outsideDays };\n      }\n      return undefined;\n    },\n    weekdays: (weekdays: boolean | TranslationWidth | undefined) => {\n      const weekdayWidth =\n        weekdays === true || weekdays === false\n          ? TranslationWidth.Short\n          : weekdays;\n      const weekdaysVisible =\n        weekdays === true || weekdays === false ? weekdays : true;\n      if (\n        this._state.weekdayWidth !== weekdayWidth ||\n        this._state.weekdaysVisible !== weekdaysVisible\n      ) {\n        return { weekdayWidth, weekdaysVisible };\n      }\n      return undefined;\n    },\n  };\n\n  private _model$ = new Subject<DatepickerViewModel>();\n\n  private _dateSelect$ = new Subject<NgbDate>();\n\n  private _state: DatepickerViewModel = {\n    dayTemplateData: null,\n    markDisabled: null,\n    maxDate: null,\n    minDate: null,\n    disabled: false,\n    displayMonths: 1,\n    firstDate: null,\n    firstDayOfWeek: 1,\n    lastDate: null,\n    focusDate: null,\n    focusVisible: false,\n    months: [],\n    navigation: 'select',\n    outsideDays: 'visible',\n    prevDisabled: false,\n    nextDisabled: false,\n    selectedDate: null,\n    selectBoxes: { years: [], months: [] },\n    weekdayWidth: TranslationWidth.Short,\n    weekdaysVisible: true,\n  };\n\n  get model$(): Observable<DatepickerViewModel> {\n    return this._model$.pipe(filter((model) => model.months.length > 0));\n  }\n\n  get dateSelect$(): Observable<NgbDate> {\n    return this._dateSelect$.pipe(filter((date) => date !== null));\n  }\n\n  set(options: DatepickerServiceInputs) {\n    let patch = Object.keys(options)\n      .map((key) => (this._VALIDATORS as any)[key]((options as any)[key]))\n      .reduce((obj, part) => ({ ...obj, ...part }), {});\n\n    if (Object.keys(patch).length > 0) {\n      this._nextState(patch);\n    }\n  }\n\n  constructor(\n    private _calendar: NgbCalendar,\n    private _i18n: VudDatepickerI18n,\n  ) {}\n\n  focus(date?: NgbDate | null) {\n    const focusedDate = this.toValidDate(date, null);\n    if (\n      focusedDate != null &&\n      !this._state.disabled &&\n      isChangedDate(this._state.focusDate, focusedDate)\n    ) {\n      this._nextState({ focusDate: date });\n    }\n  }\n\n  focusSelect() {\n    if (isDateSelectable(this._state.focusDate, this._state)) {\n      this.select(this._state.focusDate, { emitEvent: true });\n    }\n  }\n\n  open(date?: NgbDate | null) {\n    const firstDate = this.toValidDate(date, this._calendar.getToday());\n    if (\n      firstDate != null &&\n      !this._state.disabled &&\n      (!this._state.firstDate ||\n        isChangedMonth(this._state.firstDate, firstDate))\n    ) {\n      this._nextState({ firstDate });\n    }\n  }\n\n  select(date?: NgbDate | null, options: { emitEvent?: boolean } = {}) {\n    const selectedDate = this.toValidDate(date, null);\n    if (selectedDate != null && !this._state.disabled) {\n      if (isChangedDate(this._state.selectedDate, selectedDate)) {\n        this._nextState({ selectedDate });\n      }\n\n      if (options.emitEvent && isDateSelectable(selectedDate, this._state)) {\n        this._dateSelect$.next(selectedDate);\n      }\n    }\n  }\n\n  toValidDate(\n    date?: NgbDateStruct | null,\n    defaultValue?: NgbDate | null,\n  ): NgbDate | null {\n    const ngbDate = NgbDate.from(date);\n    if (defaultValue === undefined) {\n      defaultValue = this._calendar.getToday();\n    }\n    return this._calendar.isValid(ngbDate) ? ngbDate : defaultValue;\n  }\n\n  getMonth(struct: NgbDateStruct) {\n    for (let month of this._state.months) {\n      if (struct.month === month.number && struct.year === month.year) {\n        return month;\n      }\n    }\n    throw new Error(`month ${struct.month} of year ${struct.year} not found`);\n  }\n\n  private _nextState(patch: Partial<DatepickerViewModel>) {\n    const newState = this._updateState(patch);\n    this._patchContexts(newState);\n    this._state = newState;\n    this._model$.next(this._state);\n  }\n\n  private _patchContexts(state: DatepickerViewModel) {\n    const {\n      months,\n      displayMonths,\n      selectedDate,\n      focusDate,\n      focusVisible,\n      disabled,\n      outsideDays,\n    } = state;\n    state.months.forEach((month) => {\n      month.weeks.forEach((week) => {\n        week.days.forEach((day) => {\n          // patch focus flag\n          if (focusDate) {\n            day.context.focused = focusDate.equals(day.date) && focusVisible;\n          }\n\n          // calculating tabindex\n          day.tabindex =\n            !disabled &&\n            focusDate &&\n            day.date.equals(focusDate) &&\n            focusDate.month === month.number\n              ? 0\n              : -1;\n\n          // override context disabled\n          if (disabled === true) {\n            day.context.disabled = true;\n          }\n\n          // patch selection flag\n          if (selectedDate !== undefined) {\n            day.context.selected =\n              selectedDate !== null && selectedDate.equals(day.date);\n          }\n\n          // visibility\n          if (month.number !== day.date.month) {\n            day.hidden =\n              outsideDays === 'hidden' ||\n              outsideDays === 'collapsed' ||\n              (displayMonths > 1 &&\n                day.date.after(months[0].firstDate) &&\n                day.date.before(months[displayMonths - 1].lastDate));\n          }\n        });\n      });\n    });\n  }\n\n  private _updateState(\n    patch: Partial<DatepickerViewModel>,\n  ): DatepickerViewModel {\n    // patching fields\n    const state = Object.assign({}, this._state, patch);\n\n    let startDate = state.firstDate;\n\n    // min/max dates changed\n    if ('minDate' in patch || 'maxDate' in patch) {\n      checkMinBeforeMax(state.minDate, state.maxDate);\n      state.focusDate = checkDateInRange(\n        state.focusDate,\n        state.minDate,\n        state.maxDate,\n      );\n      state.firstDate = checkDateInRange(\n        state.firstDate,\n        state.minDate,\n        state.maxDate,\n      );\n      startDate = state.focusDate;\n    }\n\n    // disabled\n    if ('disabled' in patch) {\n      state.focusVisible = false;\n    }\n\n    // initial rebuild via 'select()'\n    if ('selectedDate' in patch && this._state.months.length === 0) {\n      startDate = state.selectedDate;\n    }\n\n    // terminate early if only focus visibility was changed\n    if ('focusVisible' in patch) {\n      return state;\n    }\n\n    // focus date changed\n    if ('focusDate' in patch) {\n      state.focusDate = checkDateInRange(\n        state.focusDate,\n        state.minDate,\n        state.maxDate,\n      );\n      startDate = state.focusDate;\n\n      // nothing to rebuild if only focus changed and it is still visible\n      if (\n        state.months.length !== 0 &&\n        state.focusDate &&\n        !state.focusDate.before(state.firstDate) &&\n        !state.focusDate.after(state.lastDate)\n      ) {\n        return state;\n      }\n    }\n\n    // first date changed\n    if ('firstDate' in patch) {\n      state.firstDate = checkDateInRange(\n        state.firstDate,\n        state.minDate,\n        state.maxDate,\n      );\n      startDate = state.firstDate;\n    }\n\n    // rebuilding months\n    if (startDate) {\n      const forceRebuild =\n        'dayTemplateData' in patch ||\n        'firstDayOfWeek' in patch ||\n        'markDisabled' in patch ||\n        'minDate' in patch ||\n        'maxDate' in patch ||\n        'disabled' in patch ||\n        'outsideDays' in patch ||\n        'weekdaysVisible' in patch;\n\n      const months = buildMonths(\n        this._calendar,\n        startDate,\n        state,\n        this._i18n,\n        forceRebuild,\n      );\n\n      // updating months and boundary dates\n      state.months = months;\n      state.firstDate = months[0].firstDate;\n      state.lastDate = months[months.length - 1].lastDate;\n\n      // reset selected date if 'markDisabled' returns true\n      if (\n        'selectedDate' in patch &&\n        !isDateSelectable(state.selectedDate, state)\n      ) {\n        state.selectedDate = null;\n      }\n\n      // adjusting focus after months were built\n      if ('firstDate' in patch) {\n        if (\n          !state.focusDate ||\n          state.focusDate.before(state.firstDate) ||\n          state.focusDate.after(state.lastDate)\n        ) {\n          state.focusDate = startDate;\n        }\n      }\n\n      // adjusting months/years for the select box navigation\n      const yearChanged =\n        !this._state.firstDate ||\n        this._state.firstDate.year !== state.firstDate.year;\n      const monthChanged =\n        !this._state.firstDate ||\n        this._state.firstDate.month !== state.firstDate.month;\n      if (state.navigation === 'select') {\n        // years ->  boundaries (min/max were changed)\n        if (\n          'minDate' in patch ||\n          'maxDate' in patch ||\n          state.selectBoxes.years.length === 0 ||\n          yearChanged\n        ) {\n          state.selectBoxes.years = generateSelectBoxYears(\n            state.firstDate,\n            state.minDate,\n            state.maxDate,\n          );\n        }\n\n        // months -> when current year or boundaries change\n        if (\n          'minDate' in patch ||\n          'maxDate' in patch ||\n          state.selectBoxes.months.length === 0 ||\n          yearChanged\n        ) {\n          state.selectBoxes.months = generateSelectBoxMonths(\n            this._calendar,\n            state.firstDate,\n            state.minDate,\n            state.maxDate,\n          );\n        }\n      } else {\n        state.selectBoxes = { years: [], months: [] };\n      }\n\n      // updating navigation arrows -> boundaries change (min/max) or month/year changes\n      if (\n        (state.navigation === 'arrows' || state.navigation === 'select') &&\n        (monthChanged ||\n          yearChanged ||\n          'minDate' in patch ||\n          'maxDate' in patch ||\n          'disabled' in patch)\n      ) {\n        state.prevDisabled =\n          state.disabled ||\n          prevMonthDisabled(this._calendar, state.firstDate, state.minDate);\n        state.nextDisabled =\n          state.disabled ||\n          nextMonthDisabled(this._calendar, state.lastDate, state.maxDate);\n      }\n    }\n\n    return state;\n  }\n}\n","/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2015-2018 Angular ng-bootstrap team\n * Copyright (c) 2022 Visma\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport { NgbDate } from './ngb-date';\nimport { NgbDateStruct } from './ngb-date-struct';\nimport { DayTemplateContext } from './datepicker-day-template-context';\nimport { TranslationWidth } from '@angular/common';\n\nexport type NgbMarkDisabled = (\n  date: NgbDateStruct,\n  current?: { year: number; month: number },\n) => boolean;\nexport type NgbDayTemplateData = (\n  date: NgbDateStruct,\n  current?: { year: number; month: number },\n) => any;\n\nexport type DayViewModel = {\n  date: NgbDate;\n  context: DayTemplateContext;\n  tabindex: number;\n  ariaLabel: string;\n  hidden: boolean;\n};\n\nexport type WeekViewModel = {\n  number: number;\n  days: DayViewModel[];\n  collapsed: boolean;\n};\n\nexport type MonthViewModel = {\n  firstDate: NgbDate;\n  lastDate: NgbDate;\n  number: number;\n  year: number;\n  weeks: WeekViewModel[];\n  weekdays: string[];\n};\n\nexport type DatepickerViewModel = {\n  dayTemplateData: NgbDayTemplateData | null;\n  disabled: boolean;\n  displayMonths: number;\n  firstDate: NgbDate | null;\n  firstDayOfWeek: number;\n  focusDate: NgbDate | null;\n  focusVisible: boolean;\n  lastDate: NgbDate | null;\n  markDisabled: NgbMarkDisabled | null;\n  maxDate: NgbDate | null;\n  minDate: NgbDate | null;\n  months: MonthViewModel[];\n  navigation: 'select' | 'arrows' | 'none';\n  outsideDays: 'visible' | 'collapsed' | 'hidden';\n  prevDisabled: boolean;\n  nextDisabled: boolean;\n  selectBoxes: {\n    years: number[];\n    months: number[];\n  };\n  selectedDate: NgbDate | null;\n  weekdayWidth: TranslationWidth;\n  weekdaysVisible: boolean;\n};\n\nexport enum NavigationEvent {\n  PREV,\n  NEXT,\n}\n","/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2015-2018 Angular ng-bootstrap team\n * Copyright (c) 2022 Visma\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { NgbDate } from './ngb-date';\nimport { VudDatepickerI18n } from '../../datepicker-i18n.service';\n\n@Component({\n  selector: '[ngbDatepickerDayView]',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  styleUrls: ['./datepicker-day-view.scss'],\n  host: {\n    class: 'btn-light',\n    '[class.bg-primary]': 'selected',\n    '[class.text-white]': 'selected',\n    '[class.text-muted]': 'isMuted()',\n    '[class.outside]': 'isMuted()',\n    '[class.active]': 'focused',\n  },\n  template: `{{ i18n.getDayNumerals(date) }}`,\n})\nexport class NgbDatepickerDayView {\n  @Input() currentMonth!: number;\n  @Input() date!: NgbDate;\n  @Input() disabled!: boolean;\n  @Input() focused!: boolean;\n  @Input() selected!: boolean;\n\n  constructor(public i18n: VudDatepickerI18n) {}\n\n  isMuted() {\n    return (\n      !this.selected && (this.date.month !== this.currentMonth || this.disabled)\n    );\n  }\n}\n","/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2015-2018 Angular ng-bootstrap team\n * Copyright (c) 2022 Visma\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {\n  Component,\n  Input,\n  Output,\n  EventEmitter,\n  ChangeDetectionStrategy,\n  ViewEncapsulation,\n  AfterViewChecked,\n  ViewChild,\n  ElementRef,\n  Renderer2,\n} from '@angular/core';\nimport { NgbDate } from './ngb-date';\nimport { toInteger } from '../util/util';\nimport { NgFor } from '@angular/common';\nimport { VudDatepickerI18n } from '../../datepicker-i18n.service';\n\n@Component({\n  selector: 'ngb-datepicker-navigation-select',\n  imports: [NgFor],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  styleUrls: ['./datepicker-navigation-select.scss'],\n  template: `\n    <select\n      #month\n      [disabled]=\"disabled\"\n      class=\"form-select\"\n      [attr.aria-label]=\"i18n.selectMonthLabel\"\n      [title]=\"i18n.selectMonthLabel\"\n      (change)=\"changeMonth($any($event).target.value)\"\n    >\n      @for (m of months; track m) {\n        <option [attr.aria-label]=\"i18n.getMonthFullName(m)\" [value]=\"m\">\n          {{ i18n.getMonthShortName(m) }}\n        </option>\n      }</select\n    ><select\n      #year\n      [disabled]=\"disabled\"\n      class=\"form-select\"\n      [attr.aria-label]=\"i18n.selectYearLabel\"\n      [title]=\"i18n.selectYearLabel\"\n      (change)=\"changeYear($any($event).target.value)\"\n    >\n      @for (y of years; track y) {\n        <option [value]=\"y\">\n          {{ i18n.getYearNumerals(y) }}\n        </option>\n      }\n    </select>\n  `,\n})\nexport class NgbDatepickerNavigationSelect implements AfterViewChecked {\n  @Input() date!: NgbDate;\n  @Input() disabled!: boolean;\n  @Input() months!: number[];\n  @Input() years!: number[];\n\n  @Output() select = new EventEmitter<NgbDate>();\n\n  @ViewChild('month', { static: true, read: ElementRef })\n  monthSelect!: ElementRef;\n  @ViewChild('year', { static: true, read: ElementRef })\n  yearSelect!: ElementRef;\n\n  private _month = -1;\n  private _year = -1;\n\n  constructor(\n    public i18n: VudDatepickerI18n,\n    private _renderer: Renderer2,\n  ) {}\n\n  changeMonth(month: string) {\n    this.select.emit(new NgbDate(this.date.year, toInteger(month), 1));\n  }\n\n  changeYear(year: string) {\n    this.select.emit(new NgbDate(toInteger(year), this.date.month, 1));\n  }\n\n  ngAfterViewChecked() {\n    if (this.date) {\n      if (this.date.month !== this._month) {\n        this._month = this.date.month;\n        this._renderer.setProperty(\n          this.monthSelect.nativeElement,\n          'value',\n          this._month,\n        );\n      }\n      if (this.date.year !== this._year) {\n        this._year = this.date.year;\n        this._renderer.setProperty(\n          this.yearSelect.nativeElement,\n          'value',\n          this._year,\n        );\n      }\n    }\n  }\n}\n","/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2015-2018 Angular ng-bootstrap team\n * Copyright (c) 2022 Visma\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport {\n  Component,\n  Input,\n  Output,\n  EventEmitter,\n  ChangeDetectionStrategy,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { NavigationEvent, MonthViewModel } from './datepicker-view-model';\nimport { NgbDate } from './ngb-date';\nimport { NgFor, NgIf } from '@angular/common';\nimport { NgbDatepickerNavigationSelect } from './datepicker-navigation-select';\nimport { VudDatepickerI18n } from '../../datepicker-i18n.service';\n\n@Component({\n  selector: 'ngb-datepicker-navigation',\n  imports: [NgIf, NgFor, NgbDatepickerNavigationSelect],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  styleUrls: ['./datepicker-navigation.scss'],\n  template: `\n    <div class=\"ngb-dp-arrow\">\n      <button\n        type=\"button\"\n        class=\"btn btn-link ngb-dp-arrow-btn\"\n        (click)=\"onClickPrev($event)\"\n        [disabled]=\"prevDisabled\"\n        [attr.aria-label]=\"i18n.previousMonthLabel\"\n        [title]=\"i18n.previousMonthLabel\"\n      >\n        <span class=\"ngb-dp-navigation-chevron\"></span>\n      </button>\n    </div>\n    @if (showSelect) {\n      <ngb-datepicker-navigation-select\n        class=\"ngb-dp-navigation-select\"\n        [date]=\"date\"\n        [disabled]=\"disabled\"\n        [months]=\"selectBoxes.months\"\n        [years]=\"selectBoxes.years\"\n        (select)=\"select.emit($event)\"\n      >\n      </ngb-datepicker-navigation-select>\n    }\n\n    @if (!showSelect) {\n      <ng-template ngFor let-month [ngForOf]=\"months\" let-i=\"index\">\n        @if (i > 0) {\n          <div class=\"ngb-dp-arrow\"></div>\n        }\n        <div class=\"ngb-dp-month-name\">\n          {{ i18n.getMonthLabel(month.firstDate) }}\n        </div>\n        @if (i !== months.length - 1) {\n          <div class=\"ngb-dp-arrow\"></div>\n        }\n      </ng-template>\n    }\n    <div class=\"ngb-dp-arrow right\">\n      <button\n        type=\"button\"\n        class=\"btn btn-link ngb-dp-arrow-btn\"\n        (click)=\"onClickNext($event)\"\n        [disabled]=\"nextDisabled\"\n        [attr.aria-label]=\"i18n.nextMonthLabel\"\n        [title]=\"i18n.nextMonthLabel\"\n      >\n        <span class=\"ngb-dp-navigation-chevron\"></span>\n      </button>\n    </div>\n  `,\n})\nexport class NgbDatepickerNavigation {\n  navigation = NavigationEvent;\n\n  @Input() date!: NgbDate;\n  @Input() disabled!: boolean;\n  @Input() months: MonthViewModel[] = [];\n  @Input() showSelect!: boolean;\n  @Input() prevDisabled!: boolean;\n  @Input() nextDisabled!: boolean;\n  @Input() selectBoxes!: { years: number[]; months: number[] };\n\n  @Output() navigate = new EventEmitter<NavigationEvent>();\n  @Output() select = new EventEmitter<NgbDate>();\n\n  constructor(public i18n: VudDatepickerI18n) {}\n\n  onClickPrev(event: MouseEvent) {\n    (event.currentTarget as HTMLElement).focus();\n    this.navigate.emit(this.navigation.PREV);\n  }\n\n  onClickNext(event: MouseEvent) {\n    (event.currentTarget as HTMLElement).focus();\n    this.navigate.emit(this.navigation.NEXT);\n  }\n}\n","/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2015-2018 Angular ng-bootstrap team\n * Copyright (c) 2022 Visma\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nexport enum Key {\n  Tab = 9,\n  Enter = 13,\n  Escape = 27,\n  Space = 32,\n  PageUp = 33,\n  PageDown = 34,\n  End = 35,\n  Home = 36,\n  ArrowLeft = 37,\n  ArrowUp = 38,\n  ArrowRight = 39,\n  ArrowDown = 40,\n}\n","/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2015-2018 Angular ng-bootstrap team\n * Copyright (c) 2022 Visma\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport { Injectable } from '@angular/core';\nimport { NgbDatepicker } from './datepicker';\nimport { Key } from '../util/key';\n\n/**\n * A service that represents the keyboard navigation.\n *\n * Default keyboard shortcuts [are documented in the overview](#/components/datepicker/overview#keyboard-shortcuts)\n *\n * @since 5.2.0\n */\n@Injectable({ providedIn: 'root' })\nexport class NgbDatepickerKeyboardService {\n  /**\n   * Processes a keyboard event.\n   */\n  processKey(event: KeyboardEvent, datepicker: NgbDatepicker) {\n    const { state, calendar } = datepicker;\n    /* eslint-disable-next-line deprecation/deprecation */\n    switch (event.which) {\n      case Key.PageUp:\n        datepicker.focusDate(\n          calendar.getPrev(state.focusedDate, event.shiftKey ? 'y' : 'm', 1),\n        );\n        break;\n      case Key.PageDown:\n        datepicker.focusDate(\n          calendar.getNext(state.focusedDate, event.shiftKey ? 'y' : 'm', 1),\n        );\n        break;\n      case Key.End:\n        datepicker.focusDate(event.shiftKey ? state.maxDate : state.lastDate);\n        break;\n      case Key.Home:\n        datepicker.focusDate(event.shiftKey ? state.minDate : state.firstDate);\n        break;\n      case Key.ArrowLeft:\n        datepicker.focusDate(calendar.getPrev(state.focusedDate, 'd', 1));\n        break;\n      case Key.ArrowUp:\n        datepicker.focusDate(\n          calendar.getPrev(state.focusedDate, 'd', calendar.getDaysPerWeek()),\n        );\n        break;\n      case Key.ArrowRight:\n        datepicker.focusDate(calendar.getNext(state.focusedDate, 'd', 1));\n        break;\n      case Key.ArrowDown:\n        datepicker.focusDate(\n          calendar.getNext(state.focusedDate, 'd', calendar.getDaysPerWeek()),\n        );\n        break;\n      case Key.Enter:\n      case Key.Space:\n        datepicker.focusSelect();\n        break;\n      default:\n        return;\n    }\n    event.preventDefault();\n    event.stopPropagation();\n  }\n}\n","/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2015-2018 Angular ng-bootstrap team\n * Copyright (c) 2022 Visma\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport { Injectable, TemplateRef } from '@angular/core';\nimport { TranslationWidth } from '@angular/common';\nimport { DayTemplateContext } from './datepicker-day-template-context';\nimport { NgbDateStruct } from './ngb-date-struct';\n\n/**\n * A configuration service for the [`NgbDatepicker`](#/components/datepicker/api#NgbDatepicker) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the datepickers used in the application.\n */\n@Injectable({ providedIn: 'root' })\nexport class NgbDatepickerConfig {\n  dayTemplate!: TemplateRef<DayTemplateContext>;\n  dayTemplateData!: (\n    date: NgbDateStruct,\n    current?: { year: number; month: number },\n  ) => any;\n  footerTemplate!: TemplateRef<any>;\n  displayMonths = 1;\n  firstDayOfWeek = 1;\n  markDisabled!: (\n    date: NgbDateStruct,\n    current?: { year: number; month: number },\n  ) => boolean;\n  minDate!: NgbDateStruct;\n  maxDate!: NgbDateStruct;\n  navigation: 'select' | 'arrows' | 'none' = 'select';\n  outsideDays: 'visible' | 'collapsed' | 'hidden' = 'visible';\n  showWeekNumbers = false;\n  startDate!: { year: number; month: number };\n  weekdays: TranslationWidth | boolean = TranslationWidth.Short;\n}\n","/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2015-2018 Angular ng-bootstrap team\n * Copyright (c) 2022 Visma\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport { Injectable } from '@angular/core';\nimport { NgbDateStruct } from '../ngb-date-struct';\nimport { isInteger } from '../../util/util';\n\nexport function NGB_DATEPICKER_DATE_ADAPTER_FACTORY() {\n  return new NgbDateStructAdapter();\n}\n\n/**\n * An abstract service that does the conversion between the internal datepicker `NgbDateStruct` model and\n * any provided user date model `D`, ex. a string, a native date, etc.\n *\n * The adapter is used **only** for conversion when binding datepicker to a form control,\n * ex. `[(ngModel)]=\"userDateModel\"`. Here `userDateModel` can be of any type.\n *\n * The default datepicker implementation assumes we use `NgbDateStruct` as a user model.\n *\n * See the [date format overview](#/components/datepicker/overview#date-model) for more details\n * and the [custom adapter demo](#/components/datepicker/examples#adapter) for an example.\n */\n@Injectable({\n  providedIn: 'root',\n  useFactory: NGB_DATEPICKER_DATE_ADAPTER_FACTORY,\n})\nexport abstract class NgbDateAdapter<D> {\n  /**\n   * Converts a user-model date of type `D` to an `NgbDateStruct` for internal use.\n   */\n  abstract fromModel(value: D | null): NgbDateStruct | null;\n\n  /**\n   * Converts an internal `NgbDateStruct` date to a user-model date of type `D`.\n   */\n  abstract toModel(date: NgbDateStruct | null): D | null;\n}\n\n@Injectable()\nexport class NgbDateStructAdapter extends NgbDateAdapter<NgbDateStruct> {\n  /**\n   * Converts a NgbDateStruct value into NgbDateStruct value\n   */\n  fromModel(date: NgbDateStruct | null): NgbDateStruct | null {\n    return date &&\n      isInteger(date.year) &&\n      isInteger(date.month) &&\n      isInteger(date.day)\n      ? { year: date.year, month: date.month, day: date.day }\n      : null;\n  }\n\n  /**\n   * Converts a NgbDateStruct value into NgbDateStruct value\n   */\n  toModel(date: NgbDateStruct | null): NgbDateStruct | null {\n    return date &&\n      isInteger(date.year) &&\n      isInteger(date.month) &&\n      isInteger(date.day)\n      ? { year: date.year, month: date.month, day: date.day }\n      : null;\n  }\n}\n","/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2015-2018 Angular ng-bootstrap team\n * Copyright (c) 2022 Visma\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport { fromEvent, merge, Subject } from 'rxjs';\nimport { filter, take, takeUntil } from 'rxjs/operators';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChild,\n  Directive,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  Inject,\n  Input,\n  NgZone,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Output,\n  SimpleChanges,\n  TemplateRef,\n  ViewChild,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n  NgFor,\n  NgIf,\n  NgTemplateOutlet,\n  TranslationWidth,\n} from '@angular/common';\n\nimport { NgbCalendar } from './ngb-calendar';\nimport { NgbDate } from './ngb-date';\nimport {\n  DatepickerServiceInputs,\n  NgbDatepickerService,\n} from './datepicker-service';\nimport {\n  DatepickerViewModel,\n  DayViewModel,\n  MonthViewModel,\n  NavigationEvent,\n} from './datepicker-view-model';\nimport { DayTemplateContext } from './datepicker-day-template-context';\nimport { NgbDatepickerConfig } from './datepicker-config';\nimport { NgbDateAdapter } from './adapters/ngb-date-adapter';\nimport { NgbDateStruct } from './ngb-date-struct';\nimport { NgbDatepickerKeyboardService } from './datepicker-keyboard-service';\nimport { isChangedDate, isChangedMonth } from './datepicker-tools';\nimport { hasClassName } from '../util/util';\nimport { NgbDatepickerDayView } from './datepicker-day-view';\nimport { NgbDatepickerNavigation } from './datepicker-navigation';\nimport { VudDatepickerI18n } from '../../datepicker-i18n.service';\n\n/**\n * An event emitted right before the navigation happens and the month displayed by the datepicker changes.\n */\nexport interface NgbDatepickerNavigateEvent {\n  /**\n   * The currently displayed month.\n   */\n  current: { year: number; month: number } | null;\n\n  /**\n   * The month we're navigating to.\n   */\n  next: { year: number; month: number };\n\n  /**\n   * Calling this function will prevent navigation from happening.\n   *\n   * @since 4.1.0\n   */\n  preventDefault: () => void;\n}\n\n/**\n * An interface that represents the readonly public state of the datepicker.\n *\n * Accessible via the `datepicker.state` getter\n *\n * @since 5.2.0\n */\nexport interface NgbDatepickerState {\n  /**\n   * The earliest date that can be displayed or selected\n   */\n  readonly minDate: NgbDate | null;\n\n  /**\n   * The latest date that can be displayed or selected\n   */\n  readonly maxDate: NgbDate | null;\n\n  /**\n   * The first visible date of currently displayed months\n   */\n  readonly firstDate: NgbDate;\n\n  /**\n   * The last visible date of currently displayed months\n   */\n  readonly lastDate: NgbDate;\n\n  /**\n   * The date currently focused by the datepicker\n   */\n  readonly focusedDate: NgbDate;\n\n  /**\n   * First dates of months currently displayed by the datepicker\n   *\n   * @since 5.3.0\n   */\n  readonly months: NgbDate[];\n}\n\n/**\n * A directive that marks the content template that customizes the way datepicker months are displayed\n *\n * @since 5.3.0\n */\n@Directive({ selector: 'ng-template[ngbDatepickerContent]', standalone: true })\nexport class NgbDatepickerContent {\n  constructor(public templateRef: TemplateRef<any>) {}\n}\n\n/**\n * A component that renders one month including all the days, weekdays and week numbers. Can be used inside\n * the `<ng-template ngbDatepickerMonths></ng-template>` when you want to customize months layout.\n *\n * For a usage example, see [custom month layout demo](#/components/datepicker/examples#custommonth)\n *\n * @since 5.3.0\n */\n@Component({\n  selector: 'ngb-datepicker-month',\n  imports: [NgIf, NgFor, NgTemplateOutlet],\n  host: { role: 'grid', '(keydown)': 'onKeyDown($event)' },\n  encapsulation: ViewEncapsulation.None,\n  styleUrls: ['./datepicker-month.scss'],\n  template: `\n    @if (viewModel.weekdays.length > 0) {\n      <div class=\"ngb-dp-week ngb-dp-weekdays\" role=\"row\">\n        @if (datepicker.showWeekNumbers) {\n          <div class=\"ngb-dp-weekday ngb-dp-showweek small\">\n            {{ i18n.weekLabel }}\n          </div>\n        }\n        @for (weekday of viewModel.weekdays; track weekday) {\n          <div class=\"ngb-dp-weekday small\" role=\"columnheader\">\n            {{ weekday }}\n          </div>\n        }\n      </div>\n    }\n    <ng-template ngFor let-week [ngForOf]=\"viewModel.weeks\">\n      @if (!week.collapsed) {\n        <div class=\"ngb-dp-week\" role=\"row\">\n          @if (datepicker.showWeekNumbers) {\n            <div class=\"ngb-dp-week-number small text-muted\">\n              {{ i18n.getWeekNumerals(week.number) }}\n            </div>\n          }\n          @for (day of week.days; track day) {\n            <div\n              (click)=\"doSelect(day); $event.preventDefault()\"\n              class=\"ngb-dp-day\"\n              role=\"gridcell\"\n              [class.disabled]=\"day.context.disabled\"\n              [tabindex]=\"day.tabindex\"\n              [class.hidden]=\"day.hidden\"\n              [class.ngb-dp-today]=\"day.context.today\"\n              [attr.aria-label]=\"day.ariaLabel\"\n            >\n              @if (!day.hidden) {\n                <ng-template\n                  [ngTemplateOutlet]=\"datepicker.dayTemplate\"\n                  [ngTemplateOutletContext]=\"day.context\"\n                ></ng-template>\n              }\n            </div>\n          }\n        </div>\n      }\n    </ng-template>\n  `,\n})\nexport class NgbDatepickerMonth {\n  /**\n   * The first date of month to be rendered.\n   *\n   * This month must one of the months present in the\n   * [datepicker state](#/components/datepicker/api#NgbDatepickerState).\n   */\n  @Input()\n  set month(month: NgbDateStruct) {\n    this.viewModel = this._service.getMonth(month);\n  }\n\n  viewModel!: MonthViewModel;\n\n  constructor(\n    public i18n: VudDatepickerI18n,\n    @Inject(forwardRef(() => NgbDatepicker)) public datepicker: NgbDatepicker,\n    private _keyboardService: NgbDatepickerKeyboardService,\n    private _service: NgbDatepickerService,\n  ) {}\n\n  onKeyDown(event: KeyboardEvent) {\n    this._keyboardService.processKey(event, this.datepicker);\n  }\n\n  doSelect(day: DayViewModel) {\n    if (!day.context.disabled && !day.hidden) {\n      this.datepicker.onDateSelect(day.date);\n    }\n  }\n}\n\n/**\n * A highly configurable component that helps you with selecting calendar dates.\n *\n * `NgbDatepicker` is meant to be displayed inline on a page or put inside a popup.\n */\n@Component({\n  exportAs: 'ngbDatepicker',\n  selector: 'ngb-datepicker',\n  imports: [\n    NgIf,\n    NgFor,\n    NgTemplateOutlet,\n    NgbDatepickerDayView,\n    NgbDatepickerMonth,\n    NgbDatepickerNavigation,\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  styleUrls: ['./datepicker.scss'],\n  host: { '[class.disabled]': 'model.disabled' },\n  template: `\n    <ng-template\n      #defaultDayTemplate\n      let-date=\"date\"\n      let-currentMonth=\"currentMonth\"\n      let-selected=\"selected\"\n      let-disabled=\"disabled\"\n      let-focused=\"focused\"\n    >\n      <div\n        ngbDatepickerDayView\n        [date]=\"date\"\n        [currentMonth]=\"currentMonth\"\n        [selected]=\"selected\"\n        [disabled]=\"disabled\"\n        [focused]=\"focused\"\n      ></div>\n    </ng-template>\n\n    <ng-template #defaultContentTemplate>\n      @for (month of model.months; track month; let i = $index) {\n        <div class=\"ngb-dp-month\">\n          @if (\n            navigation === 'none' ||\n            (displayMonths > 1 && navigation === 'select')\n          ) {\n            <div class=\"ngb-dp-month-name\">\n              {{ i18n.getMonthLabel(month.firstDate) }}\n            </div>\n          }\n          <ngb-datepicker-month\n            [month]=\"month.firstDate\"\n          ></ngb-datepicker-month>\n        </div>\n      }\n    </ng-template>\n\n    <div class=\"ngb-dp-header\">\n      @if (navigation !== 'none') {\n        <ngb-datepicker-navigation\n          [date]=\"model.firstDate!\"\n          [months]=\"model.months\"\n          [disabled]=\"model.disabled\"\n          [showSelect]=\"model.navigation === 'select'\"\n          [prevDisabled]=\"model.prevDisabled\"\n          [nextDisabled]=\"model.nextDisabled\"\n          [selectBoxes]=\"model.selectBoxes\"\n          (navigate)=\"onNavigateEvent($event)\"\n          (select)=\"onNavigateDateSelect($event)\"\n        >\n        </ngb-datepicker-navigation>\n      }\n    </div>\n\n    <div\n      class=\"ngb-dp-content\"\n      [class.ngb-dp-months]=\"!contentTemplate\"\n      #content\n    >\n      <ng-template\n        [ngTemplateOutlet]=\"\n          contentTemplate?.templateRef || defaultContentTemplate\n        \"\n      ></ng-template>\n    </div>\n\n    <ng-template [ngTemplateOutlet]=\"footerTemplate\"></ng-template>\n  `,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => NgbDatepicker),\n      multi: true,\n    },\n    NgbDatepickerService,\n  ],\n})\nexport class NgbDatepicker\n  implements AfterViewInit, OnDestroy, OnChanges, OnInit, ControlValueAccessor\n{\n  static ngAcceptInputType_autoClose: boolean | string;\n  static ngAcceptInputType_navigation: string;\n  static ngAcceptInputType_outsideDays: string;\n  static ngAcceptInputType_weekdays: boolean | number;\n\n  model!: DatepickerViewModel;\n\n  @ViewChild('defaultDayTemplate', { static: true })\n  private _defaultDayTemplate!: TemplateRef<DayTemplateContext>;\n  @ViewChild('content', { static: true })\n  private _contentEl!: ElementRef<HTMLElement>;\n  @ContentChild(NgbDatepickerContent, { static: true })\n  contentTemplate?: NgbDatepickerContent;\n\n  private _controlValue: NgbDate | null = null;\n  private _destroyed$ = new Subject<void>();\n  private _publicState: NgbDatepickerState = <any>{};\n\n  /**\n   * The reference to a custom template for the day.\n   *\n   * Allows to completely override the way a day 'cell' in the calendar is displayed.\n   *\n   * See [`DayTemplateContext`](#/components/datepicker/api#DayTemplateContext) for the data you get inside.\n   */\n  @Input() dayTemplate!: TemplateRef<DayTemplateContext>;\n\n  /**\n   * The callback to pass any arbitrary data to the template cell via the\n   * [`DayTemplateContext`](#/components/datepicker/api#DayTemplateContext)'s `data` parameter.\n   *\n   * `current` is the month that is currently displayed by the datepicker.\n   *\n   * @since 3.3.0\n   */\n  @Input() dayTemplateData!: (\n    date: NgbDate,\n    current?: { year: number; month: number },\n  ) => any;\n\n  /**\n   * The number of months to display.\n   */\n  @Input() displayMonths!: number;\n\n  /**\n   * The first day of the week.\n   *\n   * With default calendar we use ISO 8601: 'weekday' is 1=Mon ... 7=Sun.\n   */\n  @Input() firstDayOfWeek!: number;\n\n  /**\n   * The reference to the custom template for the datepicker footer.\n   *\n   * @since 3.3.0\n   */\n  @Input() footerTemplate!: TemplateRef<any>;\n\n  /**\n   * The callback to mark some dates as disabled.\n   *\n   * It is called for each new date when navigating to a different month.\n   *\n   * `current` is the month that is currently displayed by the datepicker.\n   */\n  @Input() markDisabled!: (\n    date: NgbDate,\n    current?: { year: number; month: number },\n  ) => boolean;\n\n  /**\n   * The latest date that can be displayed or selected.\n   *\n   * If not provided, 'year' select box will display 10 years after the current month.\n   */\n  @Input() maxDate!: NgbDateStruct;\n\n  /**\n   * The earliest date that can be displayed or selected.\n   *\n   * If not provided, 'year' select box will display 10 years before the current month.\n   */\n  @Input() minDate!: NgbDateStruct;\n\n  /**\n   * Navigation type.\n   *\n   * * `\"select\"` - select boxes for month and navigation arrows\n   * * `\"arrows\"` - only navigation arrows\n   * * `\"none\"` - no navigation visible at all\n   */\n  @Input() navigation!: 'select' | 'arrows' | 'none';\n\n  /**\n   * The way of displaying days that don't belong to the current month.\n   *\n   * * `\"visible\"` - days are visible\n   * * `\"hidden\"` - days are hidden, white space preserved\n   * * `\"collapsed\"` - days are collapsed, so the datepicker height might change between months\n   *\n   * For the 2+ months view, days in between months are never shown.\n   */\n  @Input() outsideDays!: 'visible' | 'collapsed' | 'hidden';\n\n  /**\n   * If `true`, week numbers will be displayed.\n   */\n  @Input() showWeekNumbers!: boolean;\n\n  /**\n   * The date to open calendar with.\n   *\n   * With the default calendar we use ISO 8601: 'month' is 1=Jan ... 12=Dec.\n   * If nothing or invalid date is provided, calendar will open with current month.\n   *\n   * You could use `navigateTo(date)` method as an alternative.\n   */\n  @Input() startDate!: { year: number; month: number; day?: number };\n\n  /**\n   * The way weekdays should be displayed.\n   *\n   * * `true` - weekdays are displayed using default width\n   * * `false` - weekdays are not displayed\n   * * `TranslationWidth` - weekdays are displayed using specified width\n   *\n   * @since 9.1.0\n   */\n  @Input() weekdays!: TranslationWidth | boolean;\n\n  /**\n   * An event emitted right before the navigation happens and displayed month changes.\n   *\n   * See [`NgbDatepickerNavigateEvent`](#/components/datepicker/api#NgbDatepickerNavigateEvent) for the payload info.\n   */\n  @Output() navigate = new EventEmitter<NgbDatepickerNavigateEvent>();\n\n  /**\n   * An event emitted when user selects a date using keyboard or mouse.\n   *\n   * The payload of the event is currently selected `NgbDate`.\n   *\n   * @since 5.2.0\n   */\n  @Output() dateSelect = new EventEmitter<NgbDate>();\n\n  onChange = (_: any) => {};\n  onTouched = () => {};\n\n  constructor(\n    private _service: NgbDatepickerService,\n    private _calendar: NgbCalendar,\n    public i18n: VudDatepickerI18n,\n    config: NgbDatepickerConfig,\n    cd: ChangeDetectorRef,\n    private _elementRef: ElementRef<HTMLElement>,\n    private _ngbDateAdapter: NgbDateAdapter<any>,\n    private _ngZone: NgZone,\n  ) {\n    [\n      'dayTemplate',\n      'dayTemplateData',\n      'displayMonths',\n      'firstDayOfWeek',\n      'footerTemplate',\n      'markDisabled',\n      'minDate',\n      'maxDate',\n      'navigation',\n      'outsideDays',\n      'showWeekNumbers',\n      'startDate',\n      'weekdays',\n    ].forEach((input) => ((this as any)[input] = (config as any)[input]));\n\n    _service.dateSelect$.pipe(takeUntil(this._destroyed$)).subscribe((date) => {\n      this.dateSelect.emit(date);\n    });\n\n    _service.model$.pipe(takeUntil(this._destroyed$)).subscribe((model) => {\n      const newDate = model.firstDate!;\n      const oldDate = this.model ? this.model.firstDate : null;\n\n      // update public state\n      this._publicState = {\n        maxDate: model.maxDate,\n        minDate: model.minDate,\n        firstDate: model.firstDate!,\n        lastDate: model.lastDate!,\n        focusedDate: model.focusDate!,\n        months: model.months.map((viewModel) => viewModel.firstDate),\n      };\n\n      let navigationPrevented = false;\n      // emitting navigation event if the first month changes\n      if (!newDate.equals(oldDate)) {\n        this.navigate.emit({\n          current: oldDate\n            ? { year: oldDate.year, month: oldDate.month }\n            : null,\n          next: { year: newDate.year, month: newDate.month },\n          preventDefault: () => (navigationPrevented = true),\n        });\n\n        // can't prevent the very first navigation\n        if (navigationPrevented && oldDate !== null) {\n          this._service.open(oldDate);\n          return;\n        }\n      }\n\n      const newSelectedDate = model.selectedDate;\n      const newFocusedDate = model.focusDate;\n      const oldFocusedDate = this.model ? this.model.focusDate : null;\n\n      this.model = model;\n\n      // handling selection change\n      if (isChangedDate(newSelectedDate, this._controlValue)) {\n        this._controlValue = newSelectedDate;\n        this.onTouched();\n        this.onChange(this._ngbDateAdapter.toModel(newSelectedDate));\n      }\n\n      // handling focus change\n      if (\n        isChangedDate(newFocusedDate, oldFocusedDate) &&\n        oldFocusedDate &&\n        model.focusVisible\n      ) {\n        this.focus();\n      }\n\n      cd.markForCheck();\n    });\n  }\n\n  /**\n   *  Returns the readonly public state of the datepicker\n   *\n   * @since 5.2.0\n   */\n  get state(): NgbDatepickerState {\n    return this._publicState;\n  }\n\n  /**\n   *  Returns the calendar service used in the specific datepicker instance.\n   *\n   *  @since 5.3.0\n   */\n  get calendar(): NgbCalendar {\n    return this._calendar;\n  }\n\n  /**\n   *  Focuses on given date.\n   */\n  focusDate(date?: NgbDateStruct | null): void {\n    this._service.focus(NgbDate.from(date));\n  }\n\n  /**\n   *  Selects focused date.\n   */\n  focusSelect(): void {\n    this._service.focusSelect();\n  }\n\n  focus() {\n    this._ngZone.onStable\n      .asObservable()\n      .pipe(take(1))\n      .subscribe(() => {\n        const elementToFocus =\n          this._elementRef.nativeElement.querySelector<HTMLDivElement>(\n            'div.ngb-dp-day[tabindex=\"0\"]',\n          );\n        if (elementToFocus) {\n          elementToFocus.focus();\n        }\n      });\n  }\n\n  /**\n   * Navigates to the provided date.\n   *\n   * With the default calendar we use ISO 8601: 'month' is 1=Jan ... 12=Dec.\n   * If nothing or invalid date provided calendar will open current month.\n   *\n   * Use the `[startDate]` input as an alternative.\n   */\n  navigateTo(date?: { year: number; month: number; day?: number }) {\n    this._service.open(\n      NgbDate.from(\n        date\n          ? date.day\n            ? (date as NgbDateStruct)\n            : { ...date, day: 1 }\n          : null,\n      ),\n    );\n  }\n\n  ngAfterViewInit() {\n    this._ngZone.runOutsideAngular(() => {\n      const focusIns$ = fromEvent<FocusEvent>(\n        this._contentEl.nativeElement,\n        'focusin',\n      );\n      const focusOuts$ = fromEvent<FocusEvent>(\n        this._contentEl.nativeElement,\n        'focusout',\n      );\n      const { nativeElement } = this._elementRef;\n\n      // we're changing 'focusVisible' only when entering or leaving months view\n      // and ignoring all focus events where both 'target' and 'related' target are day cells\n      merge(focusIns$, focusOuts$)\n        .pipe(\n          filter(\n            ({ target, relatedTarget }) =>\n              !(\n                hasClassName(target, 'ngb-dp-day') &&\n                hasClassName(relatedTarget, 'ngb-dp-day') &&\n                nativeElement.contains(target as Node) &&\n                nativeElement.contains(relatedTarget as Node)\n              ),\n          ),\n          takeUntil(this._destroyed$),\n        )\n        .subscribe(({ type }) =>\n          this._ngZone.run(() =>\n            this._service.set({ focusVisible: type === 'focusin' }),\n          ),\n        );\n    });\n  }\n\n  ngOnDestroy() {\n    this._destroyed$.next();\n  }\n\n  ngOnInit() {\n    if (this.model === undefined) {\n      const inputs: DatepickerServiceInputs = {};\n      [\n        'dayTemplateData',\n        'displayMonths',\n        'markDisabled',\n        'firstDayOfWeek',\n        'navigation',\n        'minDate',\n        'maxDate',\n        'outsideDays',\n        'weekdays',\n      ].forEach((name) => ((inputs as any)[name] = (this as any)[name]));\n      this._service.set(inputs);\n\n      this.navigateTo(this.startDate);\n    }\n    if (!this.dayTemplate) {\n      this.dayTemplate = this._defaultDayTemplate;\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    const inputs: DatepickerServiceInputs = {};\n    [\n      'dayTemplateData',\n      'displayMonths',\n      'markDisabled',\n      'firstDayOfWeek',\n      'navigation',\n      'minDate',\n      'maxDate',\n      'outsideDays',\n      'weekdays',\n    ]\n      .filter((name) => name in changes)\n      .forEach((name) => ((inputs as any)[name] = (this as any)[name]));\n    this._service.set(inputs);\n\n    if ('startDate' in changes) {\n      const { currentValue, previousValue } = changes['startDate'];\n      if (isChangedMonth(previousValue, currentValue)) {\n        this.navigateTo(this.startDate);\n      }\n    }\n  }\n\n  onDateSelect(date: NgbDate) {\n    this._service.focus(date);\n    this._service.select(date, { emitEvent: true });\n  }\n\n  onNavigateDateSelect(date: NgbDate) {\n    this._service.open(date);\n  }\n\n  onNavigateEvent(event: NavigationEvent) {\n    switch (event) {\n      case NavigationEvent.PREV:\n        this._service.open(\n          this._calendar.getPrev(this.model.firstDate!, 'm', 1),\n        );\n        break;\n      case NavigationEvent.NEXT:\n        this._service.open(\n          this._calendar.getNext(this.model.firstDate!, 'm', 1),\n        );\n        break;\n    }\n  }\n\n  registerOnChange(fn: (value: any) => any): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: () => any): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(disabled: boolean) {\n    this._service.set({ disabled });\n  }\n\n  writeValue(value: any) {\n    this._controlValue = NgbDate.from(this._ngbDateAdapter.fromModel(value));\n    this._service.select(this._controlValue);\n  }\n}\n","/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2015-2018 Angular ng-bootstrap team\n * Copyright (c) 2022 Visma\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport { padNumber, toInteger, isNumber } from '../util/util';\nimport { NgbDateStruct } from './ngb-date-struct';\nimport { Injectable } from '@angular/core';\n\nexport function NGB_DATEPICKER_PARSER_FORMATTER_FACTORY() {\n  return new NgbDateISOParserFormatter();\n}\n\n/**\n * An abstract service for parsing and formatting dates for the\n * [`NgbInputDatepicker`](#/components/datepicker/api#NgbInputDatepicker) directive.\n * Converts between the internal `NgbDateStruct` model presentation and a `string` that is displayed in the\n * input element.\n *\n * When user types something in the input this service attempts to parse it into a `NgbDateStruct` object.\n * And vice versa, when users selects a date in the calendar with the mouse, it must be displayed as a `string`\n * in the input.\n *\n * Default implementation uses the ISO 8601 format, but you can provide another implementation via DI\n * to use an alternative string format or a custom parsing logic.\n *\n * See the [date format overview](#/components/datepicker/overview#date-model) for more details.\n */\n@Injectable({\n  providedIn: 'root',\n  useFactory: NGB_DATEPICKER_PARSER_FORMATTER_FACTORY,\n})\nexport abstract class NgbDateParserFormatter {\n  /**\n   * Parses the given `string` to an `NgbDateStruct`.\n   *\n   * Implementations should try their best to provide a result, even\n   * partial. They must return `null` if the value can't be parsed.\n   */\n  abstract parse(value: string): NgbDateStruct | null;\n\n  /**\n   * Formats the given `NgbDateStruct` to a `string`.\n   *\n   * Implementations should return an empty string if the given date is `null`,\n   * and try their best to provide a partial result if the given date is incomplete or invalid.\n   */\n  abstract format(date: NgbDateStruct | null): string;\n}\n\n@Injectable()\nexport class NgbDateISOParserFormatter extends NgbDateParserFormatter {\n  parse(value: string): NgbDateStruct | null {\n    if (value != null) {\n      const dateParts = value.trim().split('-');\n      if (dateParts.length === 1 && isNumber(dateParts[0])) {\n        return {\n          year: toInteger(dateParts[0]),\n          month: <any>null,\n          day: <any>null,\n        };\n      } else if (\n        dateParts.length === 2 &&\n        isNumber(dateParts[0]) &&\n        isNumber(dateParts[1])\n      ) {\n        return {\n          year: toInteger(dateParts[0]),\n          month: toInteger(dateParts[1]),\n          day: <any>null,\n        };\n      } else if (\n        dateParts.length === 3 &&\n        isNumber(dateParts[0]) &&\n        isNumber(dateParts[1]) &&\n        isNumber(dateParts[2])\n      ) {\n        return {\n          year: toInteger(dateParts[0]),\n          month: toInteger(dateParts[1]),\n          day: toInteger(dateParts[2]),\n        };\n      }\n    }\n    return null;\n  }\n\n  format(date: NgbDateStruct | null): string {\n    return date\n      ? `${date.year}-${isNumber(date.month) ? padNumber(date.month) : ''}-${\n          isNumber(date.day) ? padNumber(date.day) : ''\n        }`\n      : '';\n  }\n}\n","/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2015-2018 Angular ng-bootstrap team\n * Copyright (c) 2022 Visma\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\nimport { NgModule } from '@angular/core';\nimport { NgbDatepicker, NgbDatepickerContent } from './datepicker';\nimport { NgbDatepickerMonth } from './datepicker';\n\nexport {\n  NgbDatepicker,\n  NgbDatepickerContent,\n  NgbDatepickerNavigateEvent,\n  NgbDatepickerState,\n} from './datepicker';\nexport { NgbCalendar, NgbPeriod, NgbCalendarGregorian } from './ngb-calendar';\nexport { NgbDatepickerMonth } from './datepicker';\nexport { NgbDatepickerDayView } from './datepicker-day-view';\nexport { NgbDatepickerNavigation } from './datepicker-navigation';\nexport { NgbDatepickerNavigationSelect } from './datepicker-navigation-select';\nexport { NgbDatepickerConfig } from './datepicker-config';\nexport { NgbDateStruct } from './ngb-date-struct';\nexport { NgbDate } from './ngb-date';\nexport {\n  NgbDateAdapter,\n  NgbDateStructAdapter,\n} from './adapters/ngb-date-adapter';\nexport { NgbDateParserFormatter } from './ngb-date-parser-formatter';\nexport { NgbDatepickerKeyboardService } from './datepicker-keyboard-service';\n\nconst NGB_DATEPICKER_DIRECTIVES = [\n  NgbDatepicker,\n  NgbDatepickerContent,\n  NgbDatepickerMonth,\n];\n\n@NgModule({\n  exports: NGB_DATEPICKER_DIRECTIVES,\n  imports: NGB_DATEPICKER_DIRECTIVES,\n})\nexport class NgbDatepickerModule {}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  EventEmitter,\n  inject,\n  Input,\n  Output,\n  TemplateRef,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { VudDateAdapter } from '../adapters';\nimport { VudDateStruct } from '../datepicker.model';\nimport { sameDateStruct } from './datepicker.utils';\nimport { DayTemplateContext } from '../ngb-datepicker/datepicker/datepicker-day-template-context';\nimport { NgbDatepickerNavigateEvent } from '../ngb-datepicker/datepicker/datepicker';\nimport { NgbDatepickerModule } from '../ngb-datepicker/datepicker/datepicker.module';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n  selector: 'vud-datepicker',\n  exportAs: 'vudDatepicker',\n  imports: [NgbDatepickerModule, FormsModule],\n  templateUrl: './datepicker.component.html',\n  styleUrls: ['./datepicker.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class VudDatepickerComponent<T = string> {\n  /** @ignore */\n  private adapter: VudDateAdapter<T> = inject(VudDateAdapter);\n\n  /** @ignore */\n  private _valueNative: VudDateStruct | null = null;\n  /** @ignore */\n  private _minDateNative: VudDateStruct | null = null;\n  /** @ignore */\n  private _maxDateNative: VudDateStruct | null = null;\n  /** @ignore */\n  private _startDateNative: VudDateStruct | null = null;\n\n  @Input() showWeekNumbers = true;\n  @Input() firstDayOfWeek?: number;\n  @Input() dayTemplate?: TemplateRef<DayTemplateContext>;\n  @Input() footerTemplate?: TemplateRef<any>;\n  @Input() set value(value: T) {\n    const valueNative = this.adapter.fromModel(value);\n    if (!sameDateStruct(this._valueNative, valueNative)) {\n      this._valueNative = valueNative;\n    }\n  }\n  @Input() set startDate(value: T) {\n    const valueNative = this.adapter.fromModel(value);\n    if (!sameDateStruct(this._startDateNative, valueNative)) {\n      this._startDateNative = valueNative;\n    }\n  }\n  @Input() set minDate(value: T) {\n    const valueNative = this.adapter.fromModel(value);\n    if (!sameDateStruct(this._minDateNative, valueNative)) {\n      this._minDateNative = valueNative;\n    }\n  }\n  @Input() set maxDate(value: T) {\n    const valueNative = this.adapter.fromModel(value);\n    if (!sameDateStruct(this._maxDateNative, valueNative)) {\n      this._maxDateNative = valueNative;\n    }\n  }\n\n  @Output() dateSelect = new EventEmitter<T | null>();\n  @Output() navigate = new EventEmitter<NgbDatepickerNavigateEvent | null>();\n\n  /** @ignore */\n  get valueNative() {\n    return this._valueNative;\n  }\n\n  /** @ignore */\n  get startDateNative() {\n    return this._startDateNative ?? this._valueNative;\n  }\n\n  /** @ignore */\n  get minDateNative() {\n    return this._minDateNative;\n  }\n\n  /** @ignore */\n  get maxDateNative() {\n    return this._maxDateNative;\n  }\n\n  /** @ignore */\n  onDateSelect(dateStruct: VudDateStruct): void {\n    this.dateSelect.emit(this.adapter.toModel(dateStruct));\n  }\n\n  /** @ignore */\n  onNavigate(event: NgbDatepickerNavigateEvent): void {\n    this.navigate.emit(event);\n  }\n}\n","<ngb-datepicker\n  [weekdays]=\"true\"\n  [showWeekNumbers]=\"showWeekNumbers\"\n  [firstDayOfWeek]=\"$any(firstDayOfWeek)\"\n  [dayTemplate]=\"$any(dayTemplate)\"\n  [minDate]=\"$any(minDateNative)\"\n  [maxDate]=\"$any(maxDateNative)\"\n  [startDate]=\"$any(startDateNative)\"\n  [ngModel]=\"valueNative\"\n  (dateSelect)=\"onDateSelect($event)\"\n  (navigate)=\"onNavigate($event)\"\n></ngb-datepicker>\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  ViewEncapsulation,\n  Output,\n  EventEmitter,\n  forwardRef,\n  ChangeDetectorRef,\n  ElementRef,\n  TemplateRef,\n  OnChanges,\n  SimpleChanges,\n  inject,\n  signal,\n  booleanAttribute,\n  numberAttribute,\n} from '@angular/core';\nimport {\n  NG_VALUE_ACCESSOR,\n  ControlValueAccessor,\n  NG_VALIDATORS,\n  Validator,\n  ValidationErrors,\n  AbstractControl,\n} from '@angular/forms';\nimport { NgbCalendar } from '../ngb-datepicker/datepicker/ngb-calendar';\nimport { VudDateParserFormatter } from '../datepicker-parser-formatter';\nimport { VudDateAdapter } from '../adapters/date-struct.adapter';\nimport { VudDateStruct } from '../datepicker.model';\nimport { VudDatepickerInputI18n } from './datepicker-input-i18n.service';\nimport { OverlayModule, OverlayRef } from '@angular/cdk/overlay';\nimport { DayTemplateContext } from '../ngb-datepicker/datepicker/datepicker-day-template-context';\nimport { NgbDatepickerNavigateEvent } from '../ngb-datepicker/datepicker/datepicker';\nimport { VudDatepickerComponent } from '../datepicker/datepicker.component';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { NgTemplateOutlet } from '@angular/common';\n\n@Component({\n  selector: 'vud-datepicker-input',\n  imports: [\n    VudDatepickerComponent,\n    A11yModule,\n    OverlayModule,\n    NgTemplateOutlet,\n  ],\n  templateUrl: './datepicker-input.component.html',\n  styleUrls: ['./datepicker-input.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => VudDatepickerInputComponent),\n      multi: true,\n    },\n    {\n      provide: NG_VALIDATORS,\n      useExisting: forwardRef(() => VudDatepickerInputComponent),\n      multi: true,\n    },\n  ],\n  host: {\n    '[attr.id]': 'null',\n    '[attr.aria-label]': 'null',\n    '[attr.aria-labelledby]': 'null',\n    '[attr.aria-describedby]': 'null',\n    '[attr.aria-invalid]': 'null',\n    '[attr.aria-errormessage]': 'null',\n  },\n})\nexport class VudDatepickerInputComponent<T = string>\n  implements ControlValueAccessor, Validator, OnChanges\n{\n  /** @ignore */\n  private readonly elRef = inject(ElementRef);\n  /** @ignore */\n  private readonly cdRef = inject(ChangeDetectorRef);\n  /** @ignore */\n  private readonly calendar = inject(NgbCalendar);\n  /** @ignore */\n  private readonly adapter: VudDateAdapter<T> = inject(VudDateAdapter);\n  /** @ignore */\n  private readonly parserFormatter = inject(VudDateParserFormatter);\n  /** @ignore */\n  readonly i18n = inject(VudDatepickerInputI18n);\n\n  /** @ignore */\n  private _onChange?: (value: T | string | null) => void;\n  /** @ignore */\n  private _onTouched?: () => void;\n  /** @ignore */\n  private _onValidatorChange?: () => void;\n  /** @ignore */\n  private _value: T | null = null;\n  /** @ignore */\n  private _valueNative: VudDateStruct | null = null;\n  /** @ignore */\n  private readonly _ariaInvalid = signal<string | null>(null);\n  /** @ignore */\n  private readonly _ariaErrormessage = signal<string | null>(null);\n\n  /** @ignore */\n  isOpen = false;\n  /** @ignore */\n  inputValue = '';\n\n  @Input({ transform: booleanAttribute }) showWeekNumbers = true;\n  @Input({ transform: numberAttribute }) firstDayOfWeek?: number;\n  @Input() dayTemplate?: TemplateRef<DayTemplateContext>;\n  @Input() aboveFooterTemplate?: TemplateRef<any>;\n  @Input() belowFooterTemplate?: TemplateRef<any>;\n  @Input() replaceFooterTemplate?: TemplateRef<any>;\n  @Input() minDate?: T | null;\n  @Input() maxDate?: T | null;\n  @Input() placeholder = '';\n  @Input() id?: string;\n  @Input({ transform: booleanAttribute }) disabled = false;\n  @Input({ transform: booleanAttribute }) clearable = false;\n  @Input() startDate?: T | null;\n  @Input() set value(value: T | null) {\n    this._value = value;\n    this._valueNative = this.adapter.fromModel(value);\n    this.updateViewValue();\n  }\n  /** @ignore */\n  get value() {\n    return this._value;\n  }\n  @Input('aria-label') ariaLabel?: string;\n  @Input('aria-labelledby') ariaLabelledby?: string;\n  @Input('aria-describedby') ariaDescribedby?: string;\n\n  @Input('aria-invalid') set ariaInvalid(value: string | null) {\n    this._ariaInvalid.set(value);\n  }\n  get ariaInvalid() {\n    return this._ariaInvalid();\n  }\n  @Input('aria-errormessage') set ariaErrormessage(value: string | null) {\n    this._ariaErrormessage.set(value);\n  }\n  get ariaErrormessage() {\n    return this._ariaErrormessage();\n  }\n\n  @Output() dateChanged = new EventEmitter<T | null>();\n  @Output() navigate = new EventEmitter<NgbDatepickerNavigateEvent | null>();\n  @Output() dateInput = new EventEmitter<T | null>();\n  @Output() touched = new EventEmitter();\n  @Output() pickerOpened = new EventEmitter<HTMLElement>();\n  @Output() pickerClosed = new EventEmitter();\n\n  /** @ignore */\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes['minDate'] || changes['maxDate']) {\n      if (this._onValidatorChange) {\n        this._onValidatorChange();\n      }\n    }\n  }\n\n  toggle(): void {\n    this.isOpen = !this.isOpen;\n    this.cdRef.markForCheck();\n  }\n\n  open(): void {\n    this.isOpen = true;\n    this.cdRef.markForCheck();\n  }\n\n  close(): void {\n    this.isOpen = false;\n    this.cdRef.markForCheck();\n  }\n\n  /** @ignore */\n  onManualDateChange(value: string, updateView = false): void {\n    if (value !== this.inputValue) {\n      this.inputValue = value;\n      this._valueNative = this.parserFormatter.parse(value);\n      this._value = this.adapter.toModel(this._valueNative);\n      this.dateInput.emit(this._value);\n      if (this._onChange) {\n        this._onChange(this._value ?? (value || null));\n      }\n    }\n\n    if (updateView) {\n      this.dateChanged.emit(this._value);\n      if (this._valueNative) {\n        this.updateViewValue();\n        this.cdRef.markForCheck();\n      }\n    }\n  }\n\n  /** @ignore */\n  onDateSelect(date: T | null): void {\n    this.value = date;\n    if (this._onChange) {\n      this._onChange(date);\n    }\n\n    this.dateInput.emit(date);\n    this.dateChanged.emit(date);\n\n    this.onTouched();\n    this.isOpen = false;\n    this.cdRef.markForCheck();\n  }\n\n  /** @ignore */\n  onNavigate(event: NgbDatepickerNavigateEvent | null): void {\n    this.navigate.emit(event);\n  }\n\n  /** @ignore */\n  onTouched(): void {\n    if (this._onTouched) {\n      this._onTouched();\n    }\n    this.touched.emit();\n  }\n\n  setToday(): void {\n    const today = this.adapter.toModel(this.calendar.getToday());\n    this.onDateSelect(today);\n  }\n\n  clearDate(): void {\n    this.onDateSelect(null);\n  }\n\n  focusInput(): void {\n    this.elRef.nativeElement.querySelector('input').focus();\n  }\n\n  /** @ignore */\n  writeValue(value: T): void {\n    this.value = value;\n    this.cdRef.markForCheck();\n  }\n\n  /** @ignore */\n  registerOnChange(fn: any): void {\n    this._onChange = fn;\n  }\n\n  /** @ignore */\n  registerOnTouched(fn: any): void {\n    this._onTouched = fn;\n  }\n\n  /** @ignore */\n  setDisabledState(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n    this.cdRef.markForCheck();\n  }\n\n  /** @ignore */\n  validate(control: AbstractControl): ValidationErrors | null {\n    const { value } = control;\n    if (value !== null) {\n      if (this._valueNative === null) {\n        return { dateFormat: { actual: control.value } };\n      }\n\n      if (this.minDate) {\n        const minDateNative = this.adapter.fromModel(this.minDate);\n        if (\n          minDateNative &&\n          this.dateBefore(this._valueNative, minDateNative)\n        ) {\n          return { minDate: { actual: this._value, min: this.minDate } };\n        }\n      }\n\n      if (this.maxDate) {\n        const maxDateNative = this.adapter.fromModel(this.maxDate);\n        if (maxDateNative && this.dateAfter(this._valueNative, maxDateNative)) {\n          return { maxDate: { actual: this._value, max: this.maxDate } };\n        }\n      }\n    }\n\n    return null;\n  }\n\n  /** @ignore */\n  registerOnValidatorChange(fn: () => void): void {\n    this._onValidatorChange = fn;\n  }\n\n  /** @ignore */\n  onOpen(overlayRef: OverlayRef): void {\n    this.pickerOpened.emit(overlayRef.overlayElement);\n  }\n\n  /** @ignore */\n  onClose(): void {\n    this.isOpen = false;\n    this.pickerClosed.emit();\n  }\n\n  /** @ignore */\n  private updateViewValue(): void {\n    this.inputValue = this.parserFormatter.format(this._valueNative);\n  }\n\n  /** @ignore */\n  private dateBefore(\n    currValue: VudDateStruct,\n    beforeValue: VudDateStruct,\n  ): boolean {\n    return (\n      new Date(currValue.year, currValue.month - 1, currValue.day) <\n      new Date(beforeValue.year, beforeValue.month - 1, beforeValue.day)\n    );\n  }\n\n  /** @ignore */\n  private dateAfter(\n    currValue: VudDateStruct,\n    afterValue: VudDateStruct,\n  ): boolean {\n    return (\n      new Date(currValue.year, currValue.month - 1, currValue.day) >\n      new Date(afterValue.year, afterValue.month - 1, afterValue.day)\n    );\n  }\n}\n","<input\n  [attr.id]=\"id\"\n  type=\"text\"\n  autocomplete=\"off\"\n  [placeholder]=\"placeholder\"\n  [disabled]=\"disabled\"\n  [value]=\"inputValue\"\n  (blur)=\"onTouched()\"\n  (input)=\"onManualDateChange($any($event.target).value)\"\n  (change)=\"onManualDateChange($any($event.target).value, true)\"\n  [attr.aria-label]=\"ariaLabel\"\n  [attr.aria-labelledby]=\"ariaLabelledby\"\n  [attr.aria-describedby]=\"ariaDescribedby\"\n  [attr.aria-invalid]=\"ariaInvalid\"\n  [attr.aria-errormessage]=\"ariaErrormessage\"\n  cdkOverlayOrigin\n  #trigger=\"cdkOverlayOrigin\"\n/>\n\n<button\n  type=\"button\"\n  class=\"vud-datepicker-trigger-btn\"\n  (click)=\"open()\"\n  [attr.aria-label]=\"i18n.calendarLabel\"\n  [disabled]=\"disabled\"\n  tabindex=\"-1\"\n></button>\n\n<ng-template\n  #datepickerOverlay=\"cdkConnectedOverlay\"\n  cdkConnectedOverlay\n  [cdkConnectedOverlayOrigin]=\"trigger\"\n  [cdkConnectedOverlayOpen]=\"isOpen\"\n  (overlayOutsideClick)=\"close()\"\n  (attach)=\"onOpen(datepickerOverlay.overlayRef)\"\n  (detach)=\"onClose()\"\n>\n  <div\n    class=\"vud-datepicker-wrapper\"\n    cdkTrapFocus\n    [cdkTrapFocusAutoCapture]=\"true\"\n    role=\"dialog\"\n    [attr.aria-label]=\"ariaLabel\"\n    [attr.aria-labelledby]=\"ariaLabelledby\"\n  >\n    <vud-datepicker\n      [showWeekNumbers]=\"showWeekNumbers\"\n      [firstDayOfWeek]=\"firstDayOfWeek\"\n      [dayTemplate]=\"dayTemplate\"\n      [minDate]=\"minDate\"\n      [maxDate]=\"maxDate\"\n      [startDate]=\"startDate\"\n      [value]=\"value\"\n      (dateSelect)=\"onDateSelect($event!)\"\n      (navigate)=\"onNavigate($event)\"\n    ></vud-datepicker>\n\n    <div class=\"vud-datepicker-footer\">\n      @if (aboveFooterTemplate) {\n        <ng-template [ngTemplateOutlet]=\"aboveFooterTemplate\"></ng-template>\n      }\n\n      <ng-template\n        [ngTemplateOutlet]=\"\n          replaceFooterTemplate\n            ? replaceFooterTemplate\n            : defaultDatepickerFooter\n        \"\n      ></ng-template>\n\n      @if (belowFooterTemplate) {\n        <ng-template [ngTemplateOutlet]=\"belowFooterTemplate\"></ng-template>\n      }\n    </div>\n\n    <ng-template #defaultDatepickerFooter>\n      <div class=\"vud-datepicker-footer__default\" [class.centered]=\"!clearable\">\n        <button\n          class=\"vud-datepicker-btn vud-datepicker-btn--today\"\n          (click)=\"setToday()\"\n        >\n          {{ i18n.todayLabel }}\n        </button>\n\n        @if (clearable) {\n          <button\n            class=\"vud-datepicker-btn vud-datepicker-btn--clear\"\n            (click)=\"clearDate()\"\n          >\n            {{ i18n.clearLabel }}\n          </button>\n        }\n      </div>\n    </ng-template>\n  </div>\n</ng-template>\n","import { Directive, effect, inject } from '@angular/core';\nimport { VudDatepickerInputComponent } from './datepicker-input.component';\nimport { VudErrorTooltipDirective } from '../../error-tooltip/error-tooltip.directive';\n\n@Directive({\n  selector: 'vud-datepicker-input[vudErrorTooltip]',\n})\nexport class VudDatepickerInputErrorTooltipDirective {\n  private errorTooltip = inject(VudErrorTooltipDirective, { self: true });\n  private datepicker = inject(VudDatepickerInputComponent, { self: true });\n\n  constructor() {\n    effect(() => {\n      this.datepicker.ariaInvalid = this.errorTooltip.hasError().toString();\n      this.datepicker.ariaErrormessage = this.errorTooltip.errorMessageId;\n    });\n  }\n}\n","import { NgModule } from '@angular/core';\n\nimport { VudDatepickerInputComponent } from './datepicker-input/datepicker-input.component';\nimport { VudDatepickerComponent } from './datepicker/datepicker.component';\nimport { VudDatepickerInputErrorTooltipDirective } from './datepicker-input/datepicker-input-error-tooltip.directive';\n\n@NgModule({\n  imports: [\n    VudDatepickerInputComponent,\n    VudDatepickerComponent,\n    VudDatepickerInputErrorTooltipDirective,\n  ],\n  exports: [\n    VudDatepickerInputComponent,\n    VudDatepickerComponent,\n    VudDatepickerInputErrorTooltipDirective,\n  ],\n})\nexport class VudDatepickerModule {}\n","import {\n  LOCALE_ID,\n  Injectable,\n  inject,\n  InjectionToken,\n  Provider,\n} from '@angular/core';\nimport { formatDate } from '@angular/common';\nimport { VudYearMonthStruct } from './year-month-picker.model';\n\nexport function VUD_YEAR_MONTH_PICKER_PARSER_FORMATTER_FACTORY() {\n  return new VudYearMonthParserFormatterDefault();\n}\n\n/**\n * Converts between the internal `VudYearMonthStruct` model presentation and a `string` that is displayed in the\n * input element.\n *\n * When user types something in the input this service attempts to parse it into a `VudYearMonthStruct` object.\n * And vice versa, when users selects a month in the year month picker with the mouse, it must be displayed as a `string`\n * in the input.\n *\n * Default implementation uses the ISO 8601 format, but you can provide another implementation via DI\n * to use an alternative string format or a custom parsing logic.\n */\n@Injectable({\n  providedIn: 'root',\n  useFactory: VUD_YEAR_MONTH_PICKER_PARSER_FORMATTER_FACTORY,\n})\nexport abstract class VudYearMonthParserFormatter {\n  /**\n   * Parses the given `string` to an `VudYearMonthStruct`.\n   *\n   * Implementations should try their best to provide a result, even\n   * partial. They must return `null` if the value can't be parsed.\n   */\n  abstract parse(value: string): VudYearMonthStruct | null;\n\n  /**\n   * Formats the given `VudYearMonthStruct` to a `string`.\n   *\n   * Implementations should return an empty string if the given date is `null`,\n   * and try their best to provide a partial result if the given date is incomplete or invalid.\n   */\n  abstract format(date: VudYearMonthStruct | null): string;\n}\n\nexport type VudYearMonthPickerFormats = {\n  [locale: string]: { input: string[]; output: string };\n};\n\nexport const VUD_DEFAULT_YEAR_MONTH_PICKER_FORMATS: VudYearMonthPickerFormats =\n  {\n    'en-US': {\n      input: ['M/yy', 'M/yyyy', 'M.yy', 'M.yyyy', 'M-yy', 'M-yyyy'],\n      output: 'MM/yyyy',\n    },\n    'en-GB': {\n      input: ['M/yy', 'M/yyyy', 'M.yy', 'M.yyyy', 'M-yy', 'M-yyyy'],\n      output: 'MM/yyyy',\n    },\n    'da-dK': {\n      input: ['M.yy', 'M.yyyy', 'M/yy', 'M/yyyy', 'M-yy', 'M-yyyy'],\n      output: 'MM.yyyy',\n    },\n    'fi-FI': {\n      input: ['M.yy', 'M.yyyy', 'M/yy', 'M/yyyy', 'M-yy', 'M-yyyy'],\n      output: 'MM.yyyy',\n    },\n    'nb-NO': {\n      input: ['M.yy', 'M.yyyy', 'M/yy', 'M/yyyy', 'M-yy', 'M-yyyy'],\n      output: 'MM.yyyy',\n    },\n    'nn-NO': {\n      input: ['M.yy', 'M.yyyy', 'M/yy', 'M/yyyy', 'M-yy', 'M-yyyy'],\n      output: 'MM.yyyy',\n    },\n    'sv-SE': {\n      input: [\n        'yy-M',\n        'yyyy-M',\n        'yy/M',\n        'yyyy/M',\n        'yy.M',\n        'yyyy.M',\n        'yyMM',\n        'yyyyMM',\n      ],\n      output: 'yyyy-MM',\n    },\n  };\n\nexport const VUD_YEAR_MONTH_PARSER_FORMATTER_CONFIG = new InjectionToken(\n  'VUD_YEAR_MONTH_PARSER_FORMATTER_CONFIG',\n  { providedIn: 'root', factory: () => VUD_DEFAULT_YEAR_MONTH_PICKER_FORMATS },\n);\n\nexport function extendVudYearMonthParserFormatter(\n  formats: VudYearMonthPickerFormats,\n): Provider {\n  return {\n    provide: VUD_YEAR_MONTH_PARSER_FORMATTER_CONFIG,\n    useValue: { ...VUD_DEFAULT_YEAR_MONTH_PICKER_FORMATS, ...formats },\n  };\n}\n\n@Injectable()\nexport class VudYearMonthParserFormatterDefault extends VudYearMonthParserFormatter {\n  /** @ignore */\n  private readonly locale = inject(LOCALE_ID);\n  /** @ignore */\n  private readonly formats = inject(VUD_YEAR_MONTH_PARSER_FORMATTER_CONFIG);\n\n  parse(value: string): VudYearMonthStruct | null {\n    let config = this.formats[this.locale];\n\n    if (!config) {\n      this.printUnkownLocaleWarning();\n      config = VUD_DEFAULT_YEAR_MONTH_PICKER_FORMATS['en-GB'];\n    }\n\n    for (const format of config.input) {\n      const regexp = this.dateFormatToRegexp(format);\n\n      const match = value.match(regexp);\n      if (match) {\n        const yearIndex = format.indexOf('y');\n        const monthIndex = format.indexOf('M');\n        const dayIndex = format.indexOf('d');\n        const sortedIndexes = [yearIndex, monthIndex, dayIndex]\n          .filter((c) => c != -1)\n          .sort();\n        const yearGroup = sortedIndexes.indexOf(yearIndex) + 1;\n        const monthGroup = sortedIndexes.indexOf(monthIndex) + 1;\n        const dayGroup = sortedIndexes.indexOf(dayIndex) + 1;\n        const year = this.addYearPadding(+match[yearGroup]);\n        const month = +match[monthGroup];\n        const day = dayIndex != -1 ? +match[dayGroup] : 1;\n\n        if (month <= 0 || month > 12) {\n          // invalid month\n          return null;\n        }\n\n        const daysInMonth = new Date(year, month, 0).getDate();\n        if (day <= 0 || day > daysInMonth) {\n          // invalid day\n          return null;\n        }\n\n        return { year, month };\n      }\n    }\n    return null;\n  }\n\n  format(date: VudYearMonthStruct): string {\n    if (!date) {\n      return '';\n    }\n    const utcDate = new Date(Date.UTC(date.year, date.month - 1, 1));\n    let format = this.formats[this.locale];\n    if (!format) {\n      this.printUnkownLocaleWarning();\n      format = VUD_DEFAULT_YEAR_MONTH_PICKER_FORMATS['en-GB'];\n    }\n    return formatDate(utcDate, format.output, this.locale);\n  }\n\n  private dateFormatToRegexp(format: string) {\n    const pattern =\n      '^' +\n      format\n        // / to \\/\n        .replace(/\\//g, '\\\\/')\n        // . to \\.\n        .replace(/\\./g, '\\\\.')\n        .replace(/(d+)/, '(\\\\d{1,2})')\n        .replace(/(yyyy)/, '(\\\\d{4})')\n        .replace(/(yy)/, '(\\\\d{2})')\n        .replace(/(M+)/, '(\\\\d{1,2})') +\n      '$';\n    return new RegExp(pattern);\n  }\n\n  private addYearPadding(year: number) {\n    if (year < 100) {\n      return 2000 + year;\n    }\n    return year;\n  }\n\n  private printUnkownLocaleWarning() {\n    console.warn(\n      `Default YearMonthPicker parser-formatter does not have predefined formats for \"${this.locale}\" locale. Please provide custom 'VudYearMonthParserFormatter' class. Now defaults to \"en-GB\".`,\n    );\n  }\n}\n","import { VudYearMonthStruct } from './year-month-picker.model';\n\nexport function sameYearMonthStruct(\n  a: VudYearMonthStruct | null,\n  b: VudYearMonthStruct | null,\n): boolean {\n  return a === b || (a?.year === b?.year && a?.month === b?.month);\n}\n\nexport function isInteger(value: any): boolean {\n  return (\n    typeof value === 'number' && isFinite(value) && Math.floor(value) === value\n  );\n}\n","import { Injectable } from '@angular/core';\nimport { VudYearMonthStruct } from '../year-month-picker.model';\nimport { isInteger } from '../year-month-picker.utils';\n\nexport function VUD_YEAR_MONTH_ADAPTER_FACTORY() {\n  return new VudYearMonthStructAdapter();\n}\n\n/**\n * An abstract service that does the conversion between the internal `VudYearMonthStruct` model and\n * any provided user date model `D`, ex. a string, a native date, etc.\n *\n * The default year month implementation assumes we use `VudYearMonthStruct` as a user model.\n */\n@Injectable({\n  providedIn: 'root',\n  useFactory: VUD_YEAR_MONTH_ADAPTER_FACTORY,\n})\nexport abstract class VudYearMonthAdapter<D> {\n  /**\n   * Converts a user-model date of type `D` to an `VudYearMonthStruct` for internal use.\n   */\n  abstract fromModel(value: D | null): VudYearMonthStruct | null;\n\n  /**\n   * Converts an internal `VudYearMonthStruct` date to a user-model date of type `D`.\n   */\n  abstract toModel(date: VudYearMonthStruct | null): D | null;\n\n  /**\n   * Gets today's date.\n   */\n  abstract today(): VudYearMonthStruct;\n}\n\n@Injectable()\nexport class VudYearMonthStructAdapter extends VudYearMonthAdapter<VudYearMonthStruct> {\n  fromModel(date: VudYearMonthStruct | null): VudYearMonthStruct | null {\n    return date && isInteger(date.year) && isInteger(date.month)\n      ? { year: date.year, month: date.month }\n      : null;\n  }\n\n  toModel(date: VudYearMonthStruct | null): VudYearMonthStruct | null {\n    return date && isInteger(date.year) && isInteger(date.month)\n      ? { year: date.year, month: date.month }\n      : null;\n  }\n\n  today(): VudYearMonthStruct {\n    const todayDate = new Date();\n    return {\n      year: todayDate.getFullYear(),\n      month: todayDate.getMonth() + 1,\n    };\n  }\n}\n","import {\n  FormStyle,\n  getLocaleMonthNames,\n  TranslationWidth,\n} from '@angular/common';\nimport { inject, Injectable, LOCALE_ID } from '@angular/core';\n\nexport function VUD_MONTHPICKER_I18N_FACTORY() {\n  return new VudYearMonthPickerI18nDefault();\n}\n\n@Injectable({\n  providedIn: 'root',\n  useFactory: VUD_MONTHPICKER_I18N_FACTORY,\n})\nexport abstract class VudYearMonthPickerI18n {\n  /** @ignore */\n  private readonly locale = inject(LOCALE_ID);\n\n  getMonthShortName(month: number): string {\n    return getLocaleMonthNames(\n      this.locale,\n      FormStyle.Standalone,\n      TranslationWidth.Abbreviated,\n    )[month - 1];\n  }\n\n  getMonthFullName(month: number): string {\n    return getLocaleMonthNames(\n      this.locale,\n      FormStyle.Standalone,\n      TranslationWidth.Wide,\n    )[month - 1];\n  }\n\n  abstract previousMonth: string;\n  abstract selectYear: string;\n  abstract nextMonth: string;\n  abstract chooseMonth: string;\n  abstract changeMonth: string;\n}\n\n@Injectable()\nexport class VudYearMonthPickerI18nDefault extends VudYearMonthPickerI18n {\n  readonly previousMonth = 'Previous month';\n  readonly selectYear = 'Select year';\n  readonly nextMonth = 'Next month';\n  readonly chooseMonth = 'Choose month';\n  readonly changeMonth = 'Change month';\n}\n","import { Injectable } from '@angular/core';\nimport { isInteger } from '../../utils/utils';\nimport { VudYearMonthAdapter } from './year-month-struct.adapter';\nimport { VudYearMonthStruct } from '../year-month-picker.model';\n\n@Injectable()\nexport class VudYearMonthNativeUtcIsoDateAdapter extends VudYearMonthAdapter<string> {\n  /**\n   * Converts a ISO 8601 date string to a `VudYearMonthStruct`.\n   */\n  fromModel(dateString: string | null): VudYearMonthStruct | null {\n    if (dateString === null) {\n      return null;\n    }\n    const date = new Date(dateString);\n    return date instanceof Date && !isNaN(date.getTime())\n      ? this._fromNativeDate(date)\n      : null;\n  }\n\n  /**\n   * Converts a `VudYearMonthStruct` to a ISO 8601 date string.\n   */\n  toModel(dateStruct: VudYearMonthStruct | null): string | null {\n    return dateStruct &&\n      isInteger(dateStruct.year) &&\n      isInteger(dateStruct.month)\n      ? this._toNativeDate(dateStruct)\n      : null;\n  }\n\n  today(): VudYearMonthStruct {\n    return this._fromNativeDate(\n      new Date(\n        Date.UTC(\n          new Date().getFullYear(),\n          new Date().getMonth() + 1,\n          new Date().getDate(),\n        ),\n      ),\n    );\n  }\n\n  protected _fromNativeDate(date: Date): VudYearMonthStruct {\n    return {\n      year: date.getUTCFullYear(),\n      month: date.getUTCMonth() + 1,\n    };\n  }\n\n  protected _toNativeDate(date: VudYearMonthStruct): string {\n    const jsDate = new Date(Date.UTC(date.year, date.month - 1, 1));\n    // avoid 30 -> 1930 conversion\n    jsDate.setUTCFullYear(date.year);\n    return jsDate.toISOString();\n  }\n}\n","import {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnChanges,\n  OnInit,\n  Output,\n  QueryList,\n  SimpleChanges,\n  ViewChildren,\n  inject,\n} from '@angular/core';\nimport { VudYearMonthAdapter } from '../adapters';\nimport { VudYearMonthPickerCell } from '../year-month-picker-cell.model';\nimport { VudYearMonthPickerI18n } from '../year-month-picker-i18n.service';\nimport { VudYearMonthStruct } from '../year-month-picker.model';\nimport { sameYearMonthStruct } from '../year-month-picker.utils';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n  selector: 'vud-year-month-picker',\n  exportAs: 'vudYearMonthPicker',\n  imports: [FormsModule],\n  templateUrl: './year-month-picker.component.html',\n  styleUrls: ['./year-month-picker.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class VudYearMonthPickerComponent<T = string>\n  implements OnInit, OnChanges, AfterViewInit\n{\n  /** @ignore */\n  private adapter = inject(VudYearMonthAdapter<T>);\n  /** @ignore */\n  private _valueNative: VudYearMonthStruct | null = null;\n  /** @ignore */\n  private _minValueNative: VudYearMonthStruct | null = null;\n  /** @ignore */\n  private _maxValueNative: VudYearMonthStruct | null = null;\n  /** @ignore */\n  private _startValueNative: VudYearMonthStruct | null = null;\n  /** @ignore */\n  private _activeValueNative: VudYearMonthStruct = this.adapter.today();\n  /** @ignore */\n  public readonly i18n = inject(VudYearMonthPickerI18n);\n\n  @Input() set value(value: T | null) {\n    const valueNative = this.adapter.fromModel(value);\n    if (!sameYearMonthStruct(this._valueNative, valueNative)) {\n      this._valueNative = valueNative;\n      if (valueNative) {\n        this.activeValueNative = valueNative;\n      }\n    }\n  }\n  @Input() set startValue(value: T | null) {\n    const valueNative = this.adapter.fromModel(value);\n    if (!sameYearMonthStruct(this._startValueNative, valueNative)) {\n      this._startValueNative = valueNative;\n    }\n    if (this._startValueNative != null) {\n      this.activeValueNative = this._startValueNative;\n    }\n  }\n  @Input() set minValue(value: T | null) {\n    const valueNative = this.adapter.fromModel(value);\n    if (sameYearMonthStruct(this._minValueNative, valueNative)) {\n      return;\n    }\n\n    this._minValueNative = valueNative;\n    this.activeValueNative = this.getValueFromMinMaxRange(\n      this.activeValueNative,\n    );\n  }\n  @Input() set maxValue(value: T | null) {\n    const valueNative = this.adapter.fromModel(value);\n    if (sameYearMonthStruct(this._maxValueNative, valueNative)) {\n      return;\n    }\n\n    this._maxValueNative = valueNative;\n    this.activeValueNative = this.getValueFromMinMaxRange(\n      this.activeValueNative,\n    );\n  }\n\n  @Output() valueSelect = new EventEmitter<T | null>();\n\n  protected months!: VudYearMonthPickerCell[][];\n  protected years: number[] = [];\n\n  @ViewChildren('monthButton') monthButtonElements!: QueryList<\n    ElementRef<HTMLElement>\n  >;\n\n  /** @ignore */\n  ngAfterViewInit(): void {\n    if (\n      this.activeValueNative &&\n      this.activeValueNative.year &&\n      this.activeValueNative.month\n    ) {\n      setTimeout(() => {\n        this.monthButtonElements\n          .get(this.activeValueNative.month - 1)\n          ?.nativeElement?.focus();\n      });\n    }\n  }\n\n  /** @ignore */\n  ngOnInit(): void {\n    this.init();\n  }\n\n  /** @ignore */\n  protected get valueNative() {\n    return this._valueNative;\n  }\n\n  /** @ignore */\n  protected get startYearMonthNative() {\n    return this._startValueNative ?? this._valueNative;\n  }\n\n  /** @ignore */\n  protected get minValueNative() {\n    return this._minValueNative;\n  }\n\n  /** @ignore */\n  protected get maxValueNative() {\n    return this._maxValueNative;\n  }\n\n  /** @ignore */\n  protected get activeValueNative() {\n    return this._activeValueNative;\n  }\n\n  /** @ignore */\n  protected set activeValueNative(value: VudYearMonthStruct) {\n    const oldActiceValue = this._activeValueNative;\n    this._activeValueNative = value;\n\n    if (oldActiceValue.year != this._activeValueNative.year) {\n      this.init();\n    }\n  }\n\n  /** @ignore */\n  protected init(): void {\n    let months: VudYearMonthPickerCell[][] = [];\n    for (let rowIndex = 0; rowIndex < 4; rowIndex++) {\n      months.push([]);\n      for (let colIndex = 0; colIndex < 3; colIndex++) {\n        let monthIndex = rowIndex * 3 + colIndex;\n        months[months.length - 1].push({\n          index: monthIndex,\n          enabled: this.isMonthSelectable(monthIndex + 1),\n          label: this.i18n.getMonthShortName(monthIndex + 1),\n          ariaLabel: `${this.i18n.getMonthFullName(monthIndex + 1)}, ${\n            this.activeValueNative.year\n          }`,\n          nativeValue: {\n            year: this.activeValueNative.year,\n            month: monthIndex + 1,\n          },\n        });\n      }\n    }\n    this.months = months;\n\n    this.updateYearList();\n  }\n\n  /** @ignore */\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes['minDate'] || changes['maxDate']) {\n      this.updateYearList();\n    }\n  }\n\n  /** @ignore */\n  protected previousYearClicked(): void {\n    this.activeValueNative = this.addMonths(this.activeValueNative, -12);\n  }\n\n  /** @ignore */\n  protected previousYearDisabled(): boolean {\n    return (\n      !!this.minValueNative &&\n      this.minValueNative.year >= this.activeValueNative.year\n    );\n  }\n\n  /** @ignore */\n  protected nextYearClicked(): void {\n    this.activeValueNative = this.addMonths(this.activeValueNative, 12);\n  }\n\n  /** @ignore */\n  protected nextYearDisabled(): boolean {\n    return (\n      !!this.maxValueNative &&\n      this.maxValueNative.year <= this.activeValueNative.year\n    );\n  }\n\n  /** @ignore */\n  protected onYearSelected(year: number): void {\n    this.activeValueNative = {\n      year: year,\n      month: this.activeValueNative.month,\n    };\n  }\n\n  /** @ignore */\n  protected onMonthSelected(cell: VudYearMonthPickerCell) {\n    this.activeValueNative = cell.nativeValue;\n    this.value = this.adapter.toModel(this.activeValueNative);\n    this.valueSelect.emit(this.adapter.toModel(this.valueNative));\n  }\n\n  /** @ignore */\n  protected keyup(_event: Event): void {}\n\n  /** @ignore */\n  protected keydown(event: KeyboardEvent): void {\n    if (event.key === 'ArrowRight') {\n      this.activeValueNative = this.addMonths(this.activeValueNative, 1);\n    } else if (event.key === 'ArrowLeft') {\n      this.activeValueNative = this.addMonths(this.activeValueNative, -1);\n    } else if (event.key === 'ArrowUp') {\n      this.activeValueNative = this.addMonths(this.activeValueNative, -3);\n    } else if (event.key === 'ArrowDown') {\n      this.activeValueNative = this.addMonths(this.activeValueNative, 3);\n    } else if (event.key === 'Home') {\n      this.activeValueNative = this.addMonths(\n        this.activeValueNative,\n        1 - this.activeValueNative.month,\n      );\n    } else if (event.key === 'End') {\n      this.activeValueNative = this.addMonths(\n        this.activeValueNative,\n        12 - this.activeValueNative.month,\n      );\n    } else if (event.key === 'PageUp') {\n      this.activeValueNative = this.addMonths(this.activeValueNative, -12);\n    } else if (event.key === 'PageDown') {\n      this.activeValueNative = this.addMonths(this.activeValueNative, 12);\n    } else {\n      return;\n    }\n    event.preventDefault();\n    event.stopPropagation();\n\n    setTimeout(() => {\n      this.monthButtonElements\n        .get(this.activeValueNative.month - 1)\n        ?.nativeElement?.focus();\n    });\n  }\n\n  /** @ignore */\n  protected isSelected(month: number): boolean {\n    return (\n      this.valueNative?.year == this.activeValueNative.year &&\n      this.valueNative?.month == month\n    );\n  }\n\n  /** @ignore */\n  protected isActive(month: number): boolean {\n    return (\n      this.activeValueNative.year == this.activeValueNative.year &&\n      this.activeValueNative.month == month\n    );\n  }\n\n  private isMonthSelectable(month: number): boolean {\n    if (\n      this.minValueNative &&\n      this.minValueNative.year > this.activeValueNative.year\n    ) {\n      return false;\n    }\n    if (\n      this.minValueNative &&\n      this.minValueNative.year == this.activeValueNative.year &&\n      this.minValueNative.month > month\n    ) {\n      return false;\n    }\n\n    if (\n      this.maxValueNative &&\n      this.maxValueNative.year < this.activeValueNative.year\n    ) {\n      return false;\n    }\n    if (\n      this.maxValueNative &&\n      this.maxValueNative.year == this.activeValueNative.year &&\n      this.maxValueNative.month < month\n    ) {\n      return false;\n    }\n\n    return true;\n  }\n\n  private updateYearList(): void {\n    const curentDate = new Date();\n\n    let minYear = this.minValueNative?.year ?? curentDate.getFullYear() - 100;\n    let maxYear = this.maxValueNative?.year ?? curentDate.getFullYear() + 20;\n\n    if (\n      this.years.length &&\n      this.years[0] == maxYear &&\n      this.years[this.years.length - 1] == minYear\n    ) {\n      return;\n    }\n\n    this.years = [];\n    for (let year = maxYear; year >= minYear; year--) {\n      this.years.push(year);\n    }\n\n    if (\n      this.activeValueNative.year > maxYear ||\n      this.activeValueNative.year < minYear\n    ) {\n      this.activeValueNative = {\n        year: maxYear,\n        month: this.activeValueNative.month,\n      };\n    }\n  }\n\n  private addMonths(\n    struct: VudYearMonthStruct,\n    months: number,\n  ): VudYearMonthStruct {\n    const d = new Date();\n    d.setFullYear(struct.year, struct.month + months - 1, 1);\n\n    const yearMonth = {\n      year: d.getFullYear(),\n      month: d.getMonth() + 1,\n      day: 1,\n    };\n\n    return this.getValueFromMinMaxRange(yearMonth);\n  }\n\n  private getValueFromMinMaxRange(\n    yearMonth: VudYearMonthStruct,\n  ): VudYearMonthStruct {\n    if (this.minValueNative && this.minValueNative.year > yearMonth.year) {\n      return this.minValueNative;\n    }\n\n    if (\n      this.minValueNative &&\n      this.minValueNative.year == yearMonth.year &&\n      this.minValueNative.month > yearMonth.month\n    ) {\n      return this.minValueNative;\n    }\n\n    if (this.maxValueNative && this.maxValueNative.year < yearMonth.year) {\n      return this.maxValueNative;\n    }\n    if (\n      this.maxValueNative &&\n      this.maxValueNative.year == yearMonth.year &&\n      this.maxValueNative.month < yearMonth.month\n    ) {\n      return this.maxValueNative;\n    }\n\n    return yearMonth;\n  }\n}\n","<div class=\"datepicker\">\n  <div class=\"datepicker-header\">\n    <div class=\"pagination is-centered\">\n      <button\n        type=\"button\"\n        [attr.aria-label]=\"i18n.previousMonth\"\n        [attr.title]=\"i18n.previousMonth\"\n        class=\"btn btn-link\"\n        (click)=\"previousYearClicked()\"\n        [disabled]=\"previousYearDisabled()\"\n      >\n        <span class=\"pagination-previous\"><span class=\"icon\"></span></span>\n      </button>\n\n      <div class=\"pagination-list select\">\n        <select\n          [attr.aria-label]=\"i18n.selectYear\"\n          (ngModelChange)=\"onYearSelected($event)\"\n          [ngModel]=\"activeValueNative.year\"\n          [ngModelOptions]=\"{ standalone: true }\"\n        >\n          @for (year of years; track year) {\n            <option [ngValue]=\"year\">\n              {{ year }}\n            </option>\n          }\n        </select>\n      </div>\n\n      <button\n        type=\"button\"\n        [attr.aria-label]=\"i18n.nextMonth\"\n        [attr.title]=\"i18n.nextMonth\"\n        class=\"btn btn-link\"\n        (click)=\"nextYearClicked()\"\n        [disabled]=\"nextYearDisabled()\"\n      >\n        <span class=\"pagination-next\"><span class=\"icon\"></span></span>\n      </button>\n    </div>\n  </div>\n\n  <section class=\"datepicker-table\">\n    <div class=\"datepicker-body\">\n      <div\n        role=\"grid\"\n        class=\"datepicker-months\"\n        (keyup)=\"keyup($event)\"\n        (keydown)=\"keydown($event)\"\n      >\n        @for (row of months; track row; let rowIndex = $index) {\n          <div role=\"row\" style=\"display: contents\">\n            @for (monthItem of row; track monthItem) {\n              <div role=\"gridcell\" style=\"display: contents\">\n                <button\n                  #monthButton\n                  [disabled]=\"!monthItem.enabled\"\n                  [attr.aria-pressed]=\"isSelected(monthItem.index + 1)\"\n                  [class.is-selected]=\"isSelected(monthItem.index + 1)\"\n                  [class.is-selectable]=\"!monthItem.enabled\"\n                  (click)=\"onMonthSelected(monthItem)\"\n                  [attr.tabindex]=\"isActive(monthItem.index + 1) ? null : -1\"\n                  [attr.aria-label]=\"monthItem.ariaLabel\"\n                  class=\"datepicker-cell is-selectable dots btn btn-link\"\n                >\n                  <span>{{ monthItem.label }}</span>\n                </button>\n              </div>\n            }\n          </div>\n        }\n      </div>\n    </div>\n  </section>\n</div>\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  ViewEncapsulation,\n  Output,\n  EventEmitter,\n  forwardRef,\n  ChangeDetectorRef,\n  ElementRef,\n  OnChanges,\n  SimpleChanges,\n  inject,\n  signal,\n  booleanAttribute,\n  numberAttribute,\n} from '@angular/core';\nimport {\n  NG_VALUE_ACCESSOR,\n  ControlValueAccessor,\n  NG_VALIDATORS,\n  Validator,\n  ValidationErrors,\n  AbstractControl,\n} from '@angular/forms';\nimport { VudYearMonthParserFormatter } from '../year-month-picker-parser-formatter';\nimport { VudYearMonthAdapter } from '../adapters/year-month-struct.adapter';\nimport { VudYearMonthStruct } from '../year-month-picker.model';\nimport { VudYearMonthPickerI18n } from '../year-month-picker-i18n.service';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { VudYearMonthPickerComponent } from '../year-month-picker/year-month-picker.component';\n\nexport type VudYearMonthPickerType = 'day' | 'month';\n\n@Component({\n  selector: 'vud-year-month-picker-input',\n  imports: [OverlayModule, A11yModule, VudYearMonthPickerComponent],\n  templateUrl: './year-month-picker-input.component.html',\n  styleUrls: ['./year-month-picker-input.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => VudYearMonthPickerInputComponent),\n      multi: true,\n    },\n    {\n      provide: NG_VALIDATORS,\n      useExisting: forwardRef(() => VudYearMonthPickerInputComponent),\n      multi: true,\n    },\n  ],\n  host: {\n    '[attr.id]': 'null',\n    '[attr.aria-label]': 'null',\n    '[attr.aria-labelledby]': 'null',\n    '[attr.aria-describedby]': 'null',\n    '[attr.aria-invalid]': 'null',\n    '[attr.aria-errormessage]': 'null',\n  },\n})\nexport class VudYearMonthPickerInputComponent<T = string>\n  implements ControlValueAccessor, Validator, OnChanges\n{\n  /** @ignore */\n  private readonly elRef: ElementRef = inject(ElementRef);\n  /** @ignore */\n  private readonly cdRef: ChangeDetectorRef = inject(ChangeDetectorRef);\n  /** @ignore */\n  private readonly adapter: VudYearMonthAdapter<T> =\n    inject(VudYearMonthAdapter);\n  /** @ignore */\n  private readonly parserFormatter: VudYearMonthParserFormatter = inject(\n    VudYearMonthParserFormatter,\n  );\n  /** @ignore */\n  readonly i18n = inject(VudYearMonthPickerI18n);\n\n  /** @ignore */\n  private _onChange?: (value: T | string | null) => void;\n  /** @ignore */\n  private _onTouched?: () => void;\n  /** @ignore */\n  private _onValidatorChange?: () => void;\n  /** @ignore */\n  private _value: T | null = null;\n  /** @ignore */\n  private _valueNative: VudYearMonthStruct | null = null;\n  /** @ignore */\n  private readonly _ariaInvalid = signal<string | null>(null);\n  /** @ignore */\n  private readonly _ariaErrormessage = signal<string | null>(null);\n\n  /** @ignore */\n  isOpen = false;\n  /** @ignore */\n  inputValue = '';\n\n  @Input({ transform: booleanAttribute }) showWeekNumbers = true;\n  @Input({ transform: numberAttribute }) firstDayOfWeek?: number;\n  @Input() minValue?: T | null;\n  @Input() maxValue?: T | null;\n  @Input() placeholder = '';\n  @Input() id?: string;\n  @Input({ transform: booleanAttribute }) disabled = false;\n  @Input() startValue?: T | null;\n  @Input() set value(value: T | null) {\n    this._value = value;\n    this._valueNative = this.adapter.fromModel(value);\n    this.updateViewValue();\n  }\n\n  @Input('aria-label') ariaLabel?: string;\n  @Input('aria-labelledby') ariaLabelledby?: string;\n  @Input('aria-describedby') ariaDescribedby?: string;\n\n  @Input('aria-invalid') set ariaInvalid(value: string | null) {\n    this._ariaInvalid.set(value);\n  }\n  get ariaInvalid() {\n    return this._ariaInvalid();\n  }\n  @Input('aria-errormessage') set ariaErrormessage(value: string | null) {\n    this._ariaErrormessage.set(value);\n  }\n  get ariaErrormessage() {\n    return this._ariaErrormessage();\n  }\n\n  @Output() valueChanged = new EventEmitter<T | null>();\n  @Output() valueInput = new EventEmitter<T | null>();\n  @Output() touched = new EventEmitter();\n\n  /** @ignore */\n  get value() {\n    return this._value;\n  }\n\n  /** @ignore */\n  get calendarButtonText(): string {\n    if (\n      this._valueNative &&\n      this._valueNative?.month &&\n      this._valueNative?.year\n    ) {\n      return `${this.i18n.changeMonth}, ${this.i18n.getMonthFullName(\n        this._valueNative.month,\n      )}, ${this._valueNative.year}`;\n    } else {\n      return this.i18n.chooseMonth;\n    }\n  }\n\n  /** @ignore */\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes['minValue'] || changes['maxValue']) {\n      if (this._onValidatorChange) {\n        this._onValidatorChange();\n      }\n    }\n  }\n\n  toggle(): void {\n    this.isOpen = !this.isOpen;\n    this.cdRef.markForCheck();\n  }\n\n  open(): void {\n    this.isOpen = true;\n    this.cdRef.markForCheck();\n  }\n\n  close(): void {\n    this.isOpen = false;\n    this.cdRef.markForCheck();\n  }\n\n  /** @ignore */\n  onManualValueChange(value: string, updateView = false): void {\n    if (value !== this.inputValue) {\n      this.inputValue = value;\n      this._valueNative = this.parserFormatter.parse(value);\n      this._value = this.adapter.toModel(this._valueNative);\n      this.valueInput.emit(this._value);\n      if (this._onChange) {\n        this._onChange(this._value ?? (value || null));\n      }\n    }\n\n    if (updateView) {\n      this.valueChanged.emit(this._value);\n      if (this._valueNative) {\n        this.updateViewValue();\n        this.cdRef.markForCheck();\n      }\n    }\n  }\n\n  /** @ignore */\n  onValueSelect(date: T | null): void {\n    this.value = date;\n    if (this._onChange) {\n      this._onChange(date);\n    }\n\n    this.valueInput.emit(date);\n    this.valueChanged.emit(date);\n\n    this.onTouched();\n    this.isOpen = false;\n    this.cdRef.markForCheck();\n  }\n\n  /** @ignore */\n  onTouched(): void {\n    if (this._onTouched) {\n      this._onTouched();\n    }\n    this.touched.emit();\n  }\n\n  /** @ignore */\n  setToday(): void {\n    const today = this.adapter.toModel(this.adapter.today());\n    this.onValueSelect(today);\n  }\n\n  /** @ignore */\n  focusInput(): void {\n    this.elRef.nativeElement.querySelector('input').focus();\n  }\n\n  /** @ignore */\n  writeValue(value: T): void {\n    this.value = value;\n    this.cdRef.markForCheck();\n  }\n\n  /** @ignore */\n  registerOnChange(fn: any): void {\n    this._onChange = fn;\n  }\n\n  /** @ignore */\n  registerOnTouched(fn: any): void {\n    this._onTouched = fn;\n  }\n\n  /** @ignore */\n  setDisabledState(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n    this.cdRef.markForCheck();\n  }\n\n  /** @ignore */\n  validate(control: AbstractControl): ValidationErrors | null {\n    if (\n      this.inputValue != null &&\n      this.inputValue !== '' &&\n      this._valueNative === null\n    ) {\n      return { dateFormat: { actual: control.value } };\n    }\n\n    const { value } = control;\n    if (value !== null) {\n      if (this._valueNative === null) {\n        return { dateFormat: { actual: this.inputValue } };\n      }\n\n      if (this.minValue) {\n        const minValueNative = this.adapter.fromModel(this.minValue);\n        if (\n          minValueNative &&\n          this.valueBefore(this._valueNative, minValueNative)\n        ) {\n          return { minValue: { actual: this._value, min: this.minValue } };\n        }\n      }\n\n      if (this.maxValue) {\n        const maxValueNative = this.adapter.fromModel(this.maxValue);\n        if (\n          maxValueNative &&\n          this.valueAfter(this._valueNative, maxValueNative)\n        ) {\n          return { maxValue: { actual: this._value, max: this.maxValue } };\n        }\n      }\n    }\n\n    return null;\n  }\n\n  /** @ignore */\n  registerOnValidatorChange(fn: () => void): void {\n    this._onValidatorChange = fn;\n  }\n\n  /** @ignore */\n  private updateViewValue(): void {\n    this.inputValue = this.parserFormatter.format(this._valueNative);\n  }\n\n  /** @ignore */\n  private valueBefore(\n    currValue: VudYearMonthStruct,\n    beforeValue: VudYearMonthStruct,\n  ): boolean {\n    return (\n      new Date(currValue.year, currValue.month - 1) <\n      new Date(beforeValue.year, beforeValue.month - 1)\n    );\n  }\n\n  /** @ignore */\n  private valueAfter(\n    currValue: VudYearMonthStruct,\n    afterValue: VudYearMonthStruct,\n  ): boolean {\n    return (\n      new Date(currValue.year, currValue.month - 1) >\n      new Date(afterValue.year, afterValue.month - 1)\n    );\n  }\n}\n","<input\n  [attr.id]=\"id\"\n  type=\"text\"\n  autocomplete=\"off\"\n  [placeholder]=\"placeholder\"\n  [disabled]=\"disabled\"\n  [value]=\"inputValue\"\n  (blur)=\"onTouched()\"\n  (input)=\"onManualValueChange($any($event.target).value)\"\n  (change)=\"onManualValueChange($any($event.target).value, true)\"\n  [attr.aria-label]=\"ariaLabel\"\n  [attr.aria-labelledby]=\"ariaLabelledby\"\n  [attr.aria-describedby]=\"ariaDescribedby\"\n  [attr.aria-invalid]=\"ariaInvalid\"\n  [attr.aria-errormessage]=\"ariaErrormessage\"\n  cdkOverlayOrigin\n  #trigger=\"cdkOverlayOrigin\"\n/>\n\n<button\n  type=\"button\"\n  class=\"vud-year-month-picker-trigger-btn\"\n  (click)=\"open()\"\n  [attr.aria-label]=\"calendarButtonText\"\n  [attr.title]=\"calendarButtonText\"\n  [disabled]=\"disabled\"\n>\n  <span class=\"vismaicon vismaicon-sm vismaicon-datepicker\"></span>\n</button>\n\n<ng-template\n  cdkConnectedOverlay\n  [cdkConnectedOverlayOrigin]=\"trigger\"\n  [cdkConnectedOverlayOpen]=\"isOpen\"\n  (overlayOutsideClick)=\"close()\"\n  (detach)=\"close()\"\n>\n  <div\n    class=\"vud-year-month-picker-wrapper\"\n    cdkTrapFocus\n    [cdkTrapFocusAutoCapture]=\"true\"\n    role=\"dialog\"\n    [attr.aria-label]=\"ariaLabel\"\n    [attr.aria-labelledby]=\"ariaLabelledby\"\n  >\n    <vud-year-month-picker\n      [minValue]=\"minValue\"\n      [maxValue]=\"maxValue\"\n      [startValue]=\"startValue\"\n      [value]=\"value\"\n      (valueSelect)=\"onValueSelect($event!)\"\n    ></vud-year-month-picker>\n  </div>\n</ng-template>\n","import { Directive, effect, inject } from '@angular/core';\nimport { VudYearMonthPickerInputComponent } from './year-month-picker-input.component';\nimport { VudErrorTooltipDirective } from '../../error-tooltip/error-tooltip.directive';\n\n@Directive({\n  selector: 'vud-year-month-picker-input[vudErrorTooltip]',\n})\nexport class VudYearMonthPickerInputErrorTooltipDirective {\n  private errorTooltip = inject(VudErrorTooltipDirective, { self: true });\n  private yearMonthPicker = inject(VudYearMonthPickerInputComponent, {\n    self: true,\n  });\n\n  constructor() {\n    effect(() => {\n      this.yearMonthPicker.ariaInvalid = this.errorTooltip\n        .hasError()\n        .toString();\n      this.yearMonthPicker.ariaErrormessage = this.errorTooltip.errorMessageId;\n    });\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { VudYearMonthPickerComponent } from './year-month-picker/year-month-picker.component';\nimport { VudYearMonthPickerInputComponent } from './year-month-picker-input/year-month-picker-input.component';\nimport { VudYearMonthPickerInputErrorTooltipDirective } from './year-month-picker-input/year-month-picker-input-error-tooltip.directive';\n\n@NgModule({\n  imports: [\n    VudYearMonthPickerComponent,\n    VudYearMonthPickerInputComponent,\n    VudYearMonthPickerInputErrorTooltipDirective,\n  ],\n  exports: [\n    VudYearMonthPickerComponent,\n    VudYearMonthPickerInputComponent,\n    VudYearMonthPickerInputErrorTooltipDirective,\n  ],\n})\nexport class VudYearMonthPickerModule {}\n","import { Directive, ElementRef, inject } from '@angular/core';\n\n@Directive({\n  selector: '[vudDropdownToggle]',\n})\nexport class VudDropdownToggleDirective {\n  public readonly elRef = inject(ElementRef);\n}\n","import { hasModifierKey } from '@angular/cdk/keycodes';\nimport {\n  ContentChild,\n  Directive,\n  HostListener,\n  Input,\n  booleanAttribute,\n} from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { VudDropdownToggleDirective } from './dropdown-toggle.directive';\n\n@Directive({\n  selector: '[vudDropdown]',\n  exportAs: 'vudDropdown',\n})\nexport class VudDropdownDirective {\n  private isOpenSubject = new BehaviorSubject(false);\n\n  readonly isOpen$ = this.isOpenSubject.asObservable();\n\n  @ContentChild(VudDropdownToggleDirective)\n  readonly toggler?: VudDropdownToggleDirective;\n\n  @HostListener('keydown', ['$event'])\n  handleKeyDown(event: KeyboardEvent) {\n    if (event.key === 'Escape' && !hasModifierKey(event)) {\n      event.preventDefault();\n      this.close();\n\n      // Don't allow the event to propagate if we've already handled it, or it may\n      // end up reaching other overlays that were opened earlier.\n      event.stopPropagation();\n    }\n  }\n\n  @Input({ transform: booleanAttribute }) set isOpen(value: boolean) {\n    if (value === this.isOpen) {\n      return;\n    }\n    this.isOpenSubject.next(value);\n  }\n\n  get isOpen() {\n    return this.isOpenSubject.getValue();\n  }\n\n  toggle() {\n    this.isOpen = !this.isOpen;\n  }\n\n  close() {\n    this.isOpen = false;\n  }\n\n  open() {\n    this.isOpen = true;\n  }\n}\n","import { NgZone } from '@angular/core';\nimport { fromEvent, Observable } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nexport function registerOutsideClick(\n  clickHandler: (e: MouseEvent) => void,\n  excludedElements: HTMLElement[],\n  destroyed$: Observable<any>,\n  ngZone: NgZone,\n): void {\n  function containsExcludedElement(element: Element): boolean {\n    return excludedElements.some((el) => el.contains(element));\n  }\n\n  ngZone.runOutsideAngular(() => {\n    fromEvent<MouseEvent>(document, 'mouseup')\n      .pipe(\n        filter(\n          (event) => !containsExcludedElement(event.target as HTMLElement),\n        ),\n        takeUntil(destroyed$),\n      )\n      .subscribe((event) => ngZone.run(() => clickHandler(event)));\n  });\n}\n","import {\n  AfterViewInit,\n  ChangeDetectorRef,\n  Directive,\n  ElementRef,\n  inject,\n  NgZone,\n  OnDestroy,\n} from '@angular/core';\nimport { race, Subject } from 'rxjs';\nimport {\n  distinctUntilChanged,\n  filter,\n  skip,\n  take,\n  takeUntil,\n} from 'rxjs/operators';\nimport { registerOutsideClick } from '../utils/outside-click.utils';\nimport { VudDropdownDirective } from './dropdown.directive';\n\n@Directive({\n  selector: '[vudDropdownMenu]',\n})\nexport class VudDropdownMenuDirective implements AfterViewInit, OnDestroy {\n  private readonly dropdown = inject(VudDropdownDirective);\n  private readonly el: ElementRef<HTMLElement> = inject(ElementRef);\n  private readonly cdRef = inject(ChangeDetectorRef);\n  private readonly ngZone = inject(NgZone);\n\n  private destroyed$ = new Subject<void>();\n\n  ngAfterViewInit(): void {\n    this.dropdown.isOpen$\n      .pipe(\n        distinctUntilChanged(),\n        filter((isOpen) => isOpen),\n        takeUntil(this.destroyed$),\n      )\n      .subscribe(() => {\n        const closed$ = this.dropdown.isOpen$.pipe(skip(1), take(1));\n\n        if (!this.dropdown.toggler) {\n          throw new Error(\n            '[vudDropdownToggle] is missing. It is mandatory when using [vudDropdown].',\n          );\n        }\n\n        registerOutsideClick(\n          () => {\n            this.dropdown.close();\n            this.cdRef.markForCheck();\n          },\n          [this.el.nativeElement, this.dropdown.toggler.elRef.nativeElement],\n          race(closed$, this.destroyed$),\n          this.ngZone,\n        );\n      });\n  }\n\n  ngOnDestroy(): void {\n    this.destroyed$.next();\n  }\n}\n","import {\n  AfterViewInit,\n  Directive,\n  ElementRef,\n  EventEmitter,\n  inject,\n  Input,\n  NgZone,\n  OnDestroy,\n  Output,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { registerOutsideClick } from '../utils/outside-click.utils';\n\n@Directive({\n  selector: '[vudOutsideClick]',\n})\nexport class VudOutsideClickDirective implements AfterViewInit, OnDestroy {\n  private readonly el: ElementRef<HTMLElement> = inject(ElementRef);\n  private readonly ngZone = inject(NgZone);\n\n  private destroyed$ = new Subject<void>();\n\n  @Input('vudOutsideClickExcluded') excludedElements: HTMLElement[] = [];\n  @Output('vudOutsideClick') outsideClick = new EventEmitter();\n\n  ngAfterViewInit(): void {\n    registerOutsideClick(\n      () => this.outsideClick.emit(),\n      [this.el.nativeElement, ...this.excludedElements],\n      this.destroyed$,\n      this.ngZone,\n    );\n  }\n\n  ngOnDestroy(): void {\n    this.destroyed$.next();\n  }\n}\n","import { Directive, HostListener, inject, Input } from '@angular/core';\nimport { VudDropdownDirective } from './dropdown.directive';\n\n@Directive({\n  selector: '[vudDropdownItem]',\n})\nexport class VudDropdownItemDirective {\n  private readonly implicitDropdown = inject(VudDropdownDirective, {\n    optional: true,\n  });\n\n  @Input('vudDropdownItem') explicitDropdown?: VudDropdownDirective;\n\n  get dropdown() {\n    return this.explicitDropdown ?? this.implicitDropdown;\n  }\n\n  @HostListener('click') onClick() {\n    this.dropdown?.close();\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { VudDropdownDirective } from './dropdown.directive';\nimport { VudDropdownMenuDirective } from './dropdown-menu.directive';\nimport { VudOutsideClickDirective } from './outside-click.directive';\nimport { VudDropdownToggleDirective } from './dropdown-toggle.directive';\nimport { VudDropdownItemDirective } from './dropdown-item.directive';\n\n@NgModule({\n  imports: [\n    VudDropdownDirective,\n    VudDropdownMenuDirective,\n    VudOutsideClickDirective,\n    VudDropdownToggleDirective,\n    VudDropdownItemDirective,\n  ],\n  exports: [\n    VudDropdownDirective,\n    VudDropdownMenuDirective,\n    VudOutsideClickDirective,\n    VudDropdownToggleDirective,\n    VudDropdownItemDirective,\n  ],\n})\nexport class VudDropdownModule {}\n","import { Injectable, makeEnvironmentProviders } from '@angular/core';\n\nexport function VUD_LIGHT_DARK_SWITCH_I18N_FACTORY() {\n  return new VudLightDarkSwitchI18nDefault();\n}\n\n@Injectable({\n  providedIn: 'root',\n  useFactory: VUD_LIGHT_DARK_SWITCH_I18N_FACTORY,\n})\nexport abstract class VudLightDarkSwitchI18n {\n  abstract lightModeLabel: string;\n  abstract darkModeLabel: string;\n}\n\n@Injectable()\nexport class VudLightDarkSwitchI18nDefault extends VudLightDarkSwitchI18n {\n  lightModeLabel = 'Light mode';\n  darkModeLabel = 'Dark mode';\n}\n\nexport function provideVudLightDarkSwitchI18n(\n  value: VudLightDarkSwitchI18n | (() => VudLightDarkSwitchI18n),\n) {\n  return makeEnvironmentProviders([\n    typeof value === 'function'\n      ? { provide: VudLightDarkSwitchI18n, useFactory: value }\n      : { provide: VudLightDarkSwitchI18n, useValue: value },\n  ]);\n}\n","import {\n  Component,\n  ChangeDetectionStrategy,\n  Input,\n  Output,\n  EventEmitter,\n  inject,\n} from '@angular/core';\nimport { VudLightDarkSwitchI18n } from './light-dark-switch-i18n.service';\n\n@Component({\n  selector: 'vud-light-dark-switch',\n  templateUrl: './light-dark-switch.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class VudLightDarkSwitchComponent {\n  /** @ignore */\n  readonly i18n = inject(VudLightDarkSwitchI18n);\n\n  @Input() isDark: boolean = false;\n  @Output() darkChange = new EventEmitter<boolean>();\n}\n","<label class=\"switch switch-label light-dark-toggle\">\n  <b class=\"light\">{{ i18n.lightModeLabel }}</b>\n  <input\n    type=\"checkbox\"\n    name=\"option\"\n    [checked]=\"isDark\"\n    (change)=\"darkChange.emit($any($event.target).checked)\"\n  />\n  <span class=\"togglemark\"><b class=\"details\"></b></span>\n  <b class=\"dark\">{{ i18n.darkModeLabel }}</b>\n</label>\n","import { NgModule } from '@angular/core';\n\nimport { VudLightDarkSwitchComponent } from './light-dark-switch.component';\n\n@NgModule({\n  imports: [VudLightDarkSwitchComponent],\n  exports: [VudLightDarkSwitchComponent],\n})\nexport class VudLightDarkSwitchModule {}\n","import { hasModifierKey } from '@angular/cdk/keycodes';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { isObservable, Observable, Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport { VudModalComponent } from './modal.component';\nimport { VudModalOptions } from './modal.options';\nimport { ExtractOutput } from './modal.utils';\n\nexport class VudModalRef<\n  C extends VudModalComponent<any, any>,\n  O = ExtractOutput<C>,\n> {\n  /** @ignore */\n  private closeSubject = new Subject<O | undefined>();\n\n  readonly closed$ = this.closeSubject.asObservable();\n\n  componentInstance!: C;\n\n  constructor(\n    private overlayRef: OverlayRef,\n    options: VudModalOptions,\n  ) {\n    overlayRef\n      .keydownEvents()\n      .pipe(\n        filter(\n          (event) =>\n            !!options.closeOnEscape &&\n            event.key === 'Escape' &&\n            !hasModifierKey(event),\n        ),\n      )\n      .subscribe((event) => {\n        event.preventDefault();\n        this.softClose();\n      });\n\n    if (options.closeOnOutsideClick) {\n      overlayRef.backdropClick().subscribe(() => this.softClose());\n    }\n  }\n\n  close(result?: O): void {\n    if (!this.overlayRef.hasAttached()) {\n      return;\n    }\n\n    this.overlayRef.dispose();\n    this.closeSubject.next(result);\n    this.closeSubject.complete();\n  }\n\n  afterClosed(\n    { closeOnUnsubscribe } = { closeOnUnsubscribe: true },\n  ): Observable<O | undefined> {\n    return new Observable((observer) => {\n      this.closeSubject.subscribe(observer);\n      return () => closeOnUnsubscribe && this.close();\n    });\n  }\n\n  /** @ignore */\n  private softClose(): void {\n    if (typeof this.componentInstance.onSoftClose !== 'function') {\n      this.close();\n    }\n\n    const shouldClose = this.componentInstance.onSoftClose();\n    if (typeof shouldClose === 'boolean' && shouldClose) {\n      this.close();\n    }\n    if (isObservable(shouldClose)) {\n      shouldClose\n        .pipe(takeUntil(this.closed$))\n        .subscribe((result) => result && this.close());\n    }\n  }\n}\n","import {\n  CdkPortalOutlet,\n  ComponentPortal,\n  PortalModule,\n} from '@angular/cdk/portal';\nimport {\n  Component,\n  ViewChild,\n  Input,\n  Injector,\n  inject,\n  signal,\n} from '@angular/core';\nimport { VudModalComponent } from '../modal.component';\nimport { VudModalOptions } from '../modal.options';\nimport { A11yModule } from '@angular/cdk/a11y';\n\n@Component({\n  selector: 'vud-modal-container',\n  imports: [PortalModule, A11yModule],\n  templateUrl: './modal-container.component.html',\n  styleUrls: ['./modal-container.component.scss'],\n  host: {\n    class: 'modal fade in',\n    '[attr.role]': 'options.role',\n    '[attr.aria-labelledby]': 'options.labelledBy ?? labelledby()',\n    '[attr.aria-describedby]': 'options.describedBy ?? describedby()',\n    '[class.modal-info]': \"options.type === 'info'\",\n    '[class.modal-help]': \"options.type === 'help'\",\n    '[class.modal-success]': \"options.type === 'success'\",\n    '[class.modal-warning]': \"options.type === 'warning'\",\n    '[class.modal-error]': \"options.type === 'error'\",\n    '[class.modal-center]': 'options.centered',\n  },\n})\nexport class VudModalContainerComponent {\n  readonly injector = inject(Injector);\n\n  readonly labelledby = signal<string | null>(null);\n  readonly describedby = signal<string | null>(null);\n\n  @Input() options!: VudModalOptions;\n\n  @ViewChild(CdkPortalOutlet, { static: true })\n  readonly portalOutlet!: CdkPortalOutlet;\n\n  attachComponentPortal<I, O>(\n    component: ComponentPortal<VudModalComponent<I, O>>,\n  ) {\n    return this.portalOutlet.attachComponentPortal(component).instance;\n  }\n}\n","<div class=\"modal-dialog\" [class.modal-full]=\"options.size === 'full'\">\n  <div\n    class=\"modal-content\"\n    [cdkTrapFocus]=\"true\"\n    [cdkTrapFocusAutoCapture]=\"true\"\n  >\n    <ng-template cdkPortalOutlet></ng-template>\n  </div>\n</div>\n","import { InjectionToken } from '@angular/core';\n\nexport const VUD_MODAL_DATA = new InjectionToken<any>('VudModalData');\n","import { Provider } from '@angular/core';\nimport { VudDialogRole } from '../dialog';\n\nexport type VudModalSize = 'sm' | 'md' | 'lg' | 'xl' | 'full' | 'dynamic';\nexport type VudDialogType =\n  | 'info'\n  | 'error'\n  | 'warning'\n  | 'help'\n  | 'success'\n  | 'none';\n\nexport class VudModalOptions {\n  /**\n   * Defines the predefined size of the modal:\n   *  - `sm` for fixed width of 420px.\n   *  - `md` for fixed width of 600px.\n   *  - `lg` for fixed width of 720px.\n   *  - `xl` for fixed width of 1200px.\n   *  - `full` for fullscreen (100vw width & 100% height).\n   *  - `dynamic` for dynamic size (grows with the content), can be further customized with `width`, `height`, `maxWidth` and `maxWidth` properties.\n   *\n   * @default `md`\n   */\n  size?: VudModalSize;\n\n  /**\n   * Defines the type of the modal (with an icon):\n   *  - `none` for no icon.\n   *  - `info` for info dialog.\n   *  - `error` for error dialog.\n   *  - `warning` for warning dialog.\n   *  - `help` for help dialog.\n   *  - `success` for success dialog.\n   */\n  type?: VudDialogType;\n\n  /**\n   * Defines if the modal should be centered. Used together with `type` property.\n   *\n   * @default `false`\n   */\n  centered?: boolean;\n\n  /**\n   * The ARIA role of the dialog element.\n   *\n   * @default `dialog`\n   */\n  role?: VudDialogRole;\n\n  /**\n   * The ID of the element that labels the dialog.\n   *\n   * @deprecated Use `vudModalTitle` directive instead. Will be removed in v15.\n   */\n  labelledBy?: string;\n\n  /**\n   * The ID of the element that describes the dialog.\n   *\n   * @deprecated Use `vudModalDescription` directive instead. Will be removed in v15.\n   */\n  describedBy?: string;\n\n  /**\n   * Defines if the modal should be closed when the escape key is pressed.\n   *\n   * @default `true`\n   */\n  closeOnEscape?: boolean;\n\n  /**\n   * Defines if the modal should be closed when the backdrop is clicked.\n   *\n   * @default `true`\n   */\n  closeOnOutsideClick?: boolean;\n\n  /**\n   * Defines if the modal should be closed when the route changes.\n   *\n   * @default `true`\n   */\n  closeOnNavigation?: boolean;\n\n  /**\n   * Defines the width of the modal. Only applicable together with `dynamic` size.\n   */\n  width?: string;\n\n  /**\n   * Defines the height of the modal. Only applicable together with `dynamic` size.\n   */\n  height?: string;\n\n  /**\n   * Defines the maximum width of the modal. This property is ignored when size is `full`.\n   *\n   * If you want to make this value different depending on the screen size, you can achieve that through CSS variables, e.g.:\n   *\n   * ```css\n   * @media (max-width: 768px) {\n   *   :root { --vud-modal-margin: 3rem; }\n   * }\n   * ```\n   *\n   * @default `calc(100vw - var(--vud-modal-margin, 6rem))`\n   */\n  maxWidth?: string;\n\n  /**\n   * Defines the maximum height of the modal. This property is ignored when size is `full`.\n   * Try to avoid using `vh` unit as it does not properly work on WebKit (mobile).\n   * [Read the discussion](https://github.com/tailwindlabs/tailwindcss/discussions/4515).\n   *\n   * If you want to make this value different depending on the screen size, you can achieve that through CSS variables, e.g.:\n   *\n   * ```css\n   * @media (max-width: 768px) {\n   *   :root { --vud-modal-margin: 3rem; }\n   * }\n   * ```\n   *\n   * @default `calc(100% - var(--vud-modal-margin, 6rem))`\n   */\n  maxHeight?: string;\n}\n\nexport const DEFAULT_MODAL_OPTIONS: VudModalOptions = {\n  role: 'dialog',\n  type: 'none',\n  size: 'md',\n  centered: false,\n  closeOnEscape: true,\n  closeOnOutsideClick: true,\n  closeOnNavigation: true,\n  maxWidth: 'calc(100vw - var(--vud-modal-margin, 6rem))',\n  maxHeight: 'calc(100% - var(--vud-modal-margin, 6rem))',\n};\n\nexport function provideVudModalOptions(options: VudModalOptions): Provider {\n  return { provide: VudModalOptions, useValue: options };\n}\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal, ComponentType } from '@angular/cdk/portal';\nimport { inject, Injectable, Injector } from '@angular/core';\nimport { VudModalRef } from './modal-ref';\nimport { VudModalContainerComponent } from './modal-container/modal-container.component';\nimport { VudModalComponent } from './modal.component';\nimport { takeUntil, filter } from 'rxjs/operators';\nimport { ResolveStart, Router } from '@angular/router';\nimport { VUD_MODAL_DATA } from './modal-data.token';\nimport {\n  DEFAULT_MODAL_OPTIONS,\n  VudModalOptions,\n  VudModalSize,\n} from './modal.options';\nimport { ExtractInput } from './modal.utils';\n\n@Injectable({ providedIn: 'root' })\nexport class VudModalService {\n  /** @ignore */\n  private overlay = inject(Overlay);\n  /** @ignore */\n  private injector = inject(Injector);\n  /** @ignore */\n  private router = inject(Router);\n  /** @ignore */\n  private defaultOptions = inject(VudModalOptions, { optional: true });\n  /** @ignore */\n  private parentModalService = inject(VudModalService, {\n    optional: true,\n    skipSelf: true,\n  });\n\n  /** @ignore */\n  private openModalsAtThisLevel: VudModalRef<any>[] = [];\n\n  get activeModals(): VudModalRef<any, any>[] {\n    return this.parentModalService\n      ? this.parentModalService.activeModals\n      : this.openModalsAtThisLevel;\n  }\n\n  open<C extends VudModalComponent<any, any>>(\n    component: ComponentType<C>,\n    ...args: ExtractInput<C> extends void\n      ? [(undefined | null)?, VudModalOptions?]\n      : [ExtractInput<C>, VudModalOptions?]\n  ) {\n    let [data, options] = args;\n\n    options = this.applyDefaultOptions(options, this.defaultOptions);\n\n    const overlayRef = this.createOverlay(options);\n    const container = this.attachContainer(overlayRef, options);\n    return this.attachContent<C>(\n      component,\n      data,\n      container,\n      overlayRef,\n      options,\n    );\n  }\n\n  closeAll(): void {\n    while (this.activeModals.length > 0) {\n      this.activeModals.pop()?.close();\n    }\n  }\n\n  /** @ignore */\n  private attachContainer(\n    overlayRef: OverlayRef,\n    options: VudModalOptions,\n  ): VudModalContainerComponent {\n    const containerPortal = new ComponentPortal(\n      VudModalContainerComponent,\n      null,\n      this.injector,\n    );\n    const { instance } = overlayRef.attach(containerPortal);\n    instance.options = options;\n    return instance;\n  }\n\n  /** @ignore */\n  private attachContent<C extends VudModalComponent<any, any>>(\n    component: ComponentType<C>,\n    data: ExtractInput<C> | undefined | null,\n    container: VudModalContainerComponent,\n    overlayRef: OverlayRef,\n    options: VudModalOptions,\n  ) {\n    const modalRef = new VudModalRef<C>(overlayRef, options);\n    const injector = this.createInjector(container.injector, modalRef, data);\n    const componentPortal = new ComponentPortal(component, null, injector);\n    const componentInstance = container.attachComponentPortal(componentPortal);\n    modalRef.componentInstance = componentInstance as C;\n    this.activeModals.push(modalRef);\n\n    modalRef.afterClosed({ closeOnUnsubscribe: false }).subscribe(() => {\n      const index = this.activeModals.indexOf(modalRef);\n      if (index > -1) {\n        this.activeModals.splice(index, 1);\n      }\n    });\n\n    if (options.closeOnNavigation) {\n      this.router.events\n        .pipe(\n          /**\n           * Listen for `ResolveStart` to be friendly with route-guards.\n           * i.e. don't close the modal in case a guard prevents the route change,\n           * beneficial for pending changes check.\n           */\n          filter((event) => event instanceof ResolveStart),\n          takeUntil(modalRef.closed$),\n        )\n        .subscribe(() => modalRef.close());\n    }\n\n    return modalRef;\n  }\n\n  /** @ignore */\n  private createOverlay(options: VudModalOptions): OverlayRef {\n    const positionStrategy = this.overlay\n      .position()\n      .global()\n      .centerVertically()\n      .centerHorizontally();\n    const scrollStrategy = this.overlay.scrollStrategies.block();\n    const widths: { [key in VudModalSize]: string | undefined } = {\n      sm: '48rem',\n      md: '60rem',\n      lg: '72rem',\n      xl: '120rem',\n      full: '100vw',\n      dynamic: options.width,\n    };\n    const heights: { [key in VudModalSize]: string | undefined } = {\n      sm: undefined,\n      md: undefined,\n      lg: undefined,\n      xl: undefined,\n      full: '100%',\n      dynamic: options.height,\n    };\n    return this.overlay.create({\n      positionStrategy,\n      scrollStrategy,\n      hasBackdrop: true,\n      disposeOnNavigation: false,\n      width: widths[options.size!],\n      height: heights[options.size!],\n      maxWidth: options.size === 'full' ? '100vw' : options.maxWidth,\n      maxHeight: options.size === 'full' ? '100%' : options.maxHeight,\n    });\n  }\n\n  /** @ignore */\n  private createInjector<C extends VudModalComponent>(\n    parentInjector: Injector,\n    modalRef: VudModalRef<C>,\n    data: any,\n  ): Injector {\n    return Injector.create({\n      parent: parentInjector,\n      providers: [\n        { provide: VudModalRef, useValue: modalRef },\n        { provide: VUD_MODAL_DATA, useValue: data },\n      ],\n    });\n  }\n\n  /** @ignore */\n  private applyDefaultOptions(\n    options: VudModalOptions = {},\n    defaultOptions: VudModalOptions | null = {},\n  ): VudModalOptions {\n    return {\n      ...DEFAULT_MODAL_OPTIONS,\n      ...defaultOptions,\n      ...options,\n    };\n  }\n}\n","import { inject } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { VUD_MODAL_DATA } from './modal-data.token';\nimport { VudModalRef } from './modal-ref';\n\nexport abstract class VudModalComponent<I = void, O = void> {\n  /** @ignore */\n  private readonly _modalRef = inject(VudModalRef);\n\n  readonly data: I = inject(VUD_MODAL_DATA);\n\n  /**\n   * \"Soft close\" hook which is called whenever the modal is being closed\n   * by \"Escape\" key or Backdrop click.\n   * Return true to permit closing. False - to refuse.\n   */\n  onSoftClose(): boolean | Observable<boolean> {\n    return true;\n  }\n\n  close(result?: O): void {\n    this._modalRef.close(result);\n  }\n}\n","import {\n  Attribute,\n  Directive,\n  ElementRef,\n  HostListener,\n  inject,\n  Input,\n  OnInit,\n  Renderer2,\n} from '@angular/core';\nimport { VudModalRef } from './modal-ref';\nimport { VudModalContainerComponent } from './modal-container/modal-container.component';\n\n/**\n * @deprecated `vudModalClose` is no longer necessary, use `close()` method which is available inside every modal\n */\n@Directive({\n  selector: '[vudModalClose]',\n})\nexport class VudModalCloseDirective implements OnInit {\n  private readonly modalRef = inject(VudModalRef);\n\n  @Input('vudModalClose') modalResult: any;\n\n  ngOnInit(): void {\n    console.warn(\n      '`vudModalClose` soon to be deprecated, use a built-in `close()` method instead.',\n    );\n  }\n\n  @HostListener('click')\n  onClick(): void {\n    this.modalRef.close(this.modalResult);\n  }\n}\n\nlet nextUniqueModalTitleId = 0;\n@Directive({\n  selector: '[vudModalTitle]',\n})\nexport class VudModalTitleDirective {\n  readonly modalContainer = inject(VudModalContainerComponent);\n  readonly renderer = inject(Renderer2);\n  readonly elementRef = inject(ElementRef);\n\n  constructor(@Attribute('id') id?: string) {\n    if (id) {\n      this.modalContainer.labelledby.set(id);\n    } else {\n      id = `vudModalTitle${nextUniqueModalTitleId++}`;\n      this.renderer.setAttribute(this.elementRef.nativeElement, 'id', id);\n      this.modalContainer.labelledby.set(id);\n    }\n  }\n}\n\nlet nextUniqueModalDescriptionId = 0;\n@Directive({\n  selector: '[vudModalDescription]',\n})\nexport class VudModalDescriptionDirective {\n  readonly modalContainer = inject(VudModalContainerComponent);\n  readonly renderer = inject(Renderer2);\n  readonly elementRef = inject(ElementRef);\n\n  constructor(@Attribute('id') id?: string) {\n    if (id) {\n      this.modalContainer.describedby.set(id);\n    } else {\n      id = `vudModalDescription${nextUniqueModalDescriptionId++}`;\n      this.renderer.setAttribute(this.elementRef.nativeElement, 'id', id);\n      this.modalContainer.describedby.set(id);\n    }\n  }\n}\n","import { NgModule } from '@angular/core';\nimport {\n  VudModalCloseDirective,\n  VudModalDescriptionDirective,\n  VudModalTitleDirective,\n} from './modal.directives';\n\n@NgModule({\n  imports: [\n    VudModalCloseDirective,\n    VudModalTitleDirective,\n    VudModalDescriptionDirective,\n  ],\n  exports: [\n    VudModalCloseDirective,\n    VudModalTitleDirective,\n    VudModalDescriptionDirective,\n  ],\n})\nexport class VudModalModule {}\n","import { hasModifierKey } from '@angular/cdk/keycodes';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { isObservable, Observable, Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport { VudDrawerComponent } from './drawer.component';\nimport { VudDrawerOptions } from './drawer.options';\nimport { ExtractOutput } from './drawer.utils';\n\nexport class VudDrawerRef<\n  C extends VudDrawerComponent<any, any>,\n  O = ExtractOutput<C>,\n> {\n  /** @ignore */\n  private closeSubject = new Subject<O | undefined>();\n\n  readonly closed$ = this.closeSubject.asObservable();\n\n  componentInstance!: C;\n\n  constructor(\n    private overlayRef: OverlayRef,\n    options: VudDrawerOptions,\n  ) {\n    overlayRef\n      .keydownEvents()\n      .pipe(\n        filter(\n          (event) =>\n            !!options.closeOnEscape &&\n            event.key === 'Escape' &&\n            !hasModifierKey(event),\n        ),\n      )\n      .subscribe((event) => {\n        event.preventDefault();\n        this.softClose();\n      });\n\n    if (options.closeOnOutsideClick) {\n      overlayRef.backdropClick().subscribe(() => this.softClose());\n    }\n  }\n\n  close(result?: O): void {\n    if (!this.overlayRef.hasAttached()) {\n      return;\n    }\n\n    this.overlayRef.dispose();\n    this.closeSubject.next(result);\n    this.closeSubject.complete();\n  }\n\n  afterClosed(\n    { closeOnUnsubscribe } = { closeOnUnsubscribe: true },\n  ): Observable<O | undefined> {\n    return new Observable((observer) => {\n      this.closeSubject.subscribe(observer);\n      return () => closeOnUnsubscribe && this.close();\n    });\n  }\n\n  /** @ignore */\n  private softClose(): void {\n    if (typeof this.componentInstance.onSoftClose !== 'function') {\n      this.close();\n    }\n\n    const shouldClose = this.componentInstance.onSoftClose();\n    if (typeof shouldClose === 'boolean' && shouldClose) {\n      this.close();\n    }\n    if (isObservable(shouldClose)) {\n      shouldClose\n        .pipe(takeUntil(this.closed$))\n        .subscribe((result) => result && this.close());\n    }\n  }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const VUD_DRAWER_DATA = new InjectionToken<any>('VudDrawerData');\n","import { Provider } from '@angular/core';\nimport { VudDialogRole } from '../dialog';\n\nexport class VudDrawerOptions {\n  /**\n   * Defines if the drawer has a backdrop.\n   *\n   * @default `true`\n   */\n  hasBackdrop?: boolean;\n\n  /**\n   * The ARIA role of the dialog element.\n   *\n   * @default `dialog`\n   */\n  role?: VudDialogRole;\n\n  /**\n   * The ID of the element that labels the dialog.\n   */\n  labelledBy?: string;\n\n  /**\n   * The ID of the element that describes the dialog.\n   */\n  describedBy?: string;\n\n  /**\n   * Defines if the drawer should be closed when the escape key is pressed.\n   *\n   * @default `true`\n   */\n  closeOnEscape?: boolean;\n\n  /**\n   * Defines if the drawer should be closed when the backdrop is clicked.\n   *\n   * @default `true`\n   */\n  closeOnOutsideClick?: boolean;\n\n  /**\n   * Defines if the drawer should be closed when the route changes.\n   *\n   * @default `true`\n   */\n  closeOnNavigation?: boolean;\n\n  /**\n   * Defines the width of the drawer. Supports any css value including `calc`.\n   *\n   * @default `90%`\n   */\n  width?: string;\n\n  /**\n   * Defines the maximum width of the drawer. Supports any css value including `calc`.\n   *\n   * @default `96rem`\n   */\n  maxWidth?: string;\n}\n\nexport const DEFAULT_DRAWER_OPTIONS: VudDrawerOptions = {\n  role: 'dialog',\n  hasBackdrop: true,\n  closeOnEscape: true,\n  closeOnOutsideClick: true,\n  closeOnNavigation: true,\n  width: '90%',\n  maxWidth: '96rem',\n};\n\nexport function provideVudDrawerOptions(options: VudDrawerOptions): Provider {\n  return { provide: VudDrawerOptions, useValue: options };\n}\n","import { trigger, transition, style, animate } from '@angular/animations';\n\nexport const slideInOut = trigger('slideInOut', [\n  transition(':enter', [\n    style({ transform: 'translateX(100%)' }),\n    animate('200ms ease-out', style({ transform: 'translateX(0%)' })),\n  ]),\n  transition(':leave', [\n    animate('200ms ease-in', style({ transform: 'translateX(100%)' })),\n  ]),\n]);\n","import {\n  CdkPortalOutlet,\n  ComponentPortal,\n  PortalModule,\n} from '@angular/cdk/portal';\nimport { Component, ViewChild, Input } from '@angular/core';\nimport { VudDrawerComponent } from '../drawer.component';\nimport { VudDrawerOptions } from '../drawer.options';\nimport { slideInOut } from '../drawer.animations';\nimport { A11yModule } from '@angular/cdk/a11y';\n\n@Component({\n  selector: 'vud-drawer-container',\n  imports: [PortalModule, A11yModule],\n  templateUrl: './drawer-container.component.html',\n  styleUrls: ['./drawer-container.component.scss'],\n  host: {\n    '[attr.role]': 'options.role',\n    '[attr.aria-labelledby]': 'options.labelledBy',\n    '[attr.aria-describedby]': 'options.describedBy',\n  },\n  animations: [slideInOut],\n})\nexport class VudDrawerContainerComponent {\n  @Input() options!: VudDrawerOptions;\n\n  @ViewChild(CdkPortalOutlet, { static: true })\n  readonly portalOutlet!: CdkPortalOutlet;\n\n  attachComponentPortal<I, O>(\n    component: ComponentPortal<VudDrawerComponent<I, O>>,\n  ) {\n    return this.portalOutlet.attachComponentPortal(component).instance;\n  }\n}\n","<div\n  @slideInOut\n  class=\"drawer show\"\n  [cdkTrapFocus]=\"true\"\n  [cdkTrapFocusAutoCapture]=\"true\"\n>\n  <ng-template cdkPortalOutlet></ng-template>\n</div>\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal, ComponentType } from '@angular/cdk/portal';\nimport { inject, Injectable, Injector } from '@angular/core';\nimport { VudDrawerRef } from './drawer-ref';\nimport { VudDrawerComponent } from './drawer.component';\nimport { takeUntil, filter } from 'rxjs/operators';\nimport { ResolveStart, Router } from '@angular/router';\nimport { VUD_DRAWER_DATA } from './drawer-data.token';\nimport { DEFAULT_DRAWER_OPTIONS, VudDrawerOptions } from './drawer.options';\nimport { VudDrawerContainerComponent } from './drawer-container/drawer-container.component';\nimport { ExtractInput } from './drawer.utils';\n\n@Injectable()\nexport class VudDrawerService {\n  /** @ignore */\n  private overlay = inject(Overlay);\n  /** @ignore */\n  private injector = inject(Injector);\n  /** @ignore */\n  private router = inject(Router);\n  /** @ignore */\n  private defaultOptions = inject(VudDrawerOptions, { optional: true });\n  /** @ignore */\n  private parentDrawerService = inject(VudDrawerService, {\n    optional: true,\n    skipSelf: true,\n  });\n\n  /** @ignore */\n  private openDrawersAtThisLevel: VudDrawerRef<any>[] = [];\n\n  get activeDrawers(): VudDrawerRef<any, any>[] {\n    return this.parentDrawerService\n      ? this.parentDrawerService.activeDrawers\n      : this.openDrawersAtThisLevel;\n  }\n\n  open<C extends VudDrawerComponent<any, any>>(\n    component: ComponentType<C>,\n    ...args: ExtractInput<C> extends void\n      ? [(undefined | null)?, VudDrawerOptions?]\n      : [ExtractInput<C>, VudDrawerOptions?]\n  ) {\n    let [data, options] = args;\n\n    options = this.applyDefaultOptions(options, this.defaultOptions);\n\n    const overlayRef = this.createDrawerOverlay(options);\n    const container = this.attachContainer(overlayRef, options);\n    return this.attachContent<C>(\n      component,\n      data,\n      container,\n      overlayRef,\n      options,\n    );\n  }\n\n  closeAll(): void {\n    while (this.activeDrawers.length > 0) {\n      this.activeDrawers.pop()?.close();\n    }\n  }\n\n  /** @ignore */\n  private attachContainer(\n    overlayRef: OverlayRef,\n    options: VudDrawerOptions,\n  ): VudDrawerContainerComponent {\n    const containerPortal = new ComponentPortal(\n      VudDrawerContainerComponent,\n      null,\n      this.injector,\n    );\n    const { instance } = overlayRef.attach(containerPortal);\n    instance.options = options;\n    return instance;\n  }\n\n  /** @ignore */\n  private attachContent<C extends VudDrawerComponent<any, any>>(\n    component: ComponentType<C>,\n    data: ExtractInput<C> | undefined | null,\n    container: VudDrawerContainerComponent,\n    overlayRef: OverlayRef,\n    options: VudDrawerOptions,\n  ) {\n    const drawerRef = new VudDrawerRef<C>(overlayRef, options);\n    const injector = this.createInjector(drawerRef, data);\n    const componentPortal = new ComponentPortal(component, null, injector);\n    const componentInstance = container.attachComponentPortal(componentPortal);\n    drawerRef.componentInstance = componentInstance as C;\n    this.activeDrawers.push(drawerRef);\n\n    drawerRef.afterClosed({ closeOnUnsubscribe: false }).subscribe(() => {\n      const index = this.activeDrawers.indexOf(drawerRef);\n      if (index > -1) {\n        this.activeDrawers.splice(index, 1);\n      }\n    });\n\n    if (options.closeOnNavigation) {\n      this.router.events\n        .pipe(\n          /**\n           * Listen for `ResolveStart` to be friendly with route-guards.\n           * i.e. don't close the drawer in case a guard prevents the route change,\n           * beneficial for pending changes check.\n           */\n          filter((event) => event instanceof ResolveStart),\n          takeUntil(drawerRef.closed$),\n        )\n        .subscribe(() => drawerRef.close());\n    }\n\n    return drawerRef;\n  }\n\n  /** @ignore */\n  private createDrawerOverlay(options: VudDrawerOptions): OverlayRef {\n    let positionStrategy = this.overlay.position().global().top().right();\n\n    const scrollStrategy = this.overlay.scrollStrategies.block();\n\n    return this.overlay.create({\n      positionStrategy,\n      scrollStrategy,\n      hasBackdrop: options.hasBackdrop,\n      disposeOnNavigation: false,\n      width: options.width,\n      height: '100%',\n      maxWidth: options.maxWidth,\n    });\n  }\n\n  /** @ignore */\n  private createInjector<C extends VudDrawerComponent>(\n    drawerRef: VudDrawerRef<C>,\n    data: any,\n  ): Injector {\n    return Injector.create({\n      parent: this.injector,\n      providers: [\n        { provide: VudDrawerRef, useValue: drawerRef },\n        { provide: VUD_DRAWER_DATA, useValue: data },\n      ],\n    });\n  }\n\n  /** @ignore */\n  private applyDefaultOptions(\n    options: VudDrawerOptions = {},\n    defaultOptions: VudDrawerOptions | null = {},\n  ): VudDrawerOptions {\n    return {\n      ...DEFAULT_DRAWER_OPTIONS,\n      ...defaultOptions,\n      ...options,\n    };\n  }\n}\n","import { inject } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { VUD_DRAWER_DATA } from './drawer-data.token';\nimport { VudDrawerRef } from './drawer-ref';\n\nexport abstract class VudDrawerComponent<I = void, O = void> {\n  /** @ignore */\n  private readonly _drawerRef = inject(VudDrawerRef);\n\n  readonly data: I = inject(VUD_DRAWER_DATA);\n\n  /**\n   * \"Soft close\" hook which is called whenever the drawer is being closed\n   * by \"Escape\" key or Backdrop click.\n   * Return true to permit closing. False - to refuse.\n   */\n  onSoftClose(): boolean | Observable<boolean> {\n    return true;\n  }\n\n  close(result?: O): void {\n    this._drawerRef.close(result);\n  }\n}\n","import { NgModule } from '@angular/core';\n\nimport { VudDrawerService } from './drawer.service';\n\n@NgModule({\n  imports: [],\n  providers: [VudDrawerService],\n})\nexport class VudDrawerModule {}\n","import { InjectionToken, makeEnvironmentProviders } from '@angular/core';\n\nexport interface VudNavbarConfig {\n  /**\n   * Determines the breakpoint for the burger menu.\n   *\n   * @default `768px`\n   */\n  burgerMenuBreakpoint?: string;\n}\n\nexport const VUD_DEFAULT_NAVBAR_CONFIG = {\n  burgerMenuBreakpoint: '768px',\n} as const;\n\n/** InjectionToken for navbar that can be used to override default options. */\nexport const VUD_NAVBAR_CONFIG = new InjectionToken<VudNavbarConfig>(\n  'VUD_NAVBAR_CONFIG',\n  { providedIn: 'root', factory: () => VUD_DEFAULT_NAVBAR_CONFIG },\n);\n\nexport function provideVudNavbarConfig(config: VudNavbarConfig) {\n  return makeEnvironmentProviders([\n    {\n      provide: VUD_NAVBAR_CONFIG,\n      useValue: config,\n    },\n  ]);\n}\n","import { BreakpointObserver } from '@angular/cdk/layout';\nimport { inject, Injectable } from '@angular/core';\nimport { map } from 'rxjs/operators';\nimport { VUD_DEFAULT_NAVBAR_CONFIG, VUD_NAVBAR_CONFIG } from './navbar.config';\n\n@Injectable()\nexport class VudNavbarService {\n  private readonly navbarConfig = inject(VUD_NAVBAR_CONFIG);\n  private readonly breakpointObserver = inject(BreakpointObserver);\n\n  readonly isBurgerMenuBpMatched$ = this.breakpointObserver\n    .observe(`(max-width: ${this.burgerMenuBreakpoint})`)\n    .pipe(map(({ matches }) => matches));\n\n  readonly isTablet$ = this.breakpointObserver\n    .observe('(max-width: 992px)')\n    .pipe(map(({ matches }) => matches));\n\n  isBurgerMenuBpMatched() {\n    return this.breakpointObserver.isMatched(\n      `(max-width: ${this.burgerMenuBreakpoint})`,\n    );\n  }\n\n  get burgerMenuBreakpoint() {\n    return (\n      this.navbarConfig.burgerMenuBreakpoint ??\n      VUD_DEFAULT_NAVBAR_CONFIG.burgerMenuBreakpoint\n    );\n  }\n}\n","import {\n  Component,\n  ChangeDetectionStrategy,\n  Input,\n  ViewChild,\n  TemplateRef,\n  Output,\n  EventEmitter,\n  inject,\n  booleanAttribute,\n} from '@angular/core';\nimport { VudNavbarService } from '../navbar.service';\nimport { AsyncPipe } from '@angular/common';\n\n@Component({\n  selector: 'vud-navbar-brand-option',\n  imports: [AsyncPipe],\n  templateUrl: './navbar-brand-option.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class VudNavbarBrandOptionComponent {\n  /** @ignore */\n  private readonly navbarService = inject(VudNavbarService);\n\n  @Input({ transform: booleanAttribute }) active = false;\n  @Input() label = '';\n  @Input() href?: string;\n  @Input() logoUrl?: string;\n\n  @Output() readonly click = new EventEmitter<MouseEvent>();\n\n  /** @ignore */\n  @ViewChild(TemplateRef, { static: true })\n  readonly content!: TemplateRef<any>;\n\n  /** @ignore */\n  readonly isBurgerMenuBpMatched$ = this.navbarService.isBurgerMenuBpMatched$;\n}\n","<ng-template>\n  @if (logoUrl && (isBurgerMenuBpMatched$ | async) === false) {\n    <img [src]=\"logoUrl\" [alt]=\"label\" class=\"img-inline\" />\n  }\n  <span>{{ label }}</span>\n</ng-template>\n","import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n  selector: '[vudNavbarMenuItemLabel]',\n})\nexport class VudNavbarMenuItemLabelDirective {\n  readonly template = inject(TemplateRef);\n}\n","import {\n  Component,\n  ChangeDetectionStrategy,\n  ElementRef,\n  Input,\n  ViewChild,\n  TemplateRef,\n  EventEmitter,\n  Output,\n  DoCheck,\n  ContentChild,\n  inject,\n  ContentChildren,\n  QueryList,\n  booleanAttribute,\n} from '@angular/core';\nimport { RouterLinkActive } from '@angular/router';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { VudNavbarMenuItemLabelDirective } from './navbar-menu-item-label.directive';\nimport { NgTemplateOutlet } from '@angular/common';\n\n@Component({\n  selector: 'vud-navbar-menu-item',\n  imports: [NgTemplateOutlet],\n  templateUrl: './navbar-menu-item.component.html',\n  styleUrls: ['./navbar-menu-item.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class VudNavbarMenuItemComponent implements DoCheck {\n  /** @ignore */\n  public readonly elRef: ElementRef<HTMLElement> = inject(ElementRef);\n  /** @ignore */\n  private readonly routerLinkActive = inject(RouterLinkActive, {\n    optional: true,\n    self: true,\n  });\n\n  /** @ignore */\n  private _active = new BehaviorSubject(false);\n\n  readonly isActive$ = this._active.asObservable();\n  readonly isActive = () => this._active.getValue();\n\n  @Input({ transform: booleanAttribute }) set active(value: boolean) {\n    this._active.next(value);\n  }\n  @Input() label = '';\n  @Input() href?: string;\n  @Input({ transform: booleanAttribute }) disabled: boolean = false;\n\n  @Output() readonly click = new EventEmitter<MouseEvent>();\n\n  /** @ignore */\n  @ViewChild('content', { read: TemplateRef })\n  readonly content!: TemplateRef<any>;\n\n  /** @ignore */\n  @ContentChild(VudNavbarMenuItemLabelDirective, { read: TemplateRef })\n  readonly labelTmp?: TemplateRef<any>;\n\n  /** @ignore */\n  @ContentChildren(VudNavbarMenuItemComponent)\n  readonly menuItems!: QueryList<VudNavbarMenuItemComponent>;\n\n  /** @ignore */\n  ngDoCheck(): void {\n    if (\n      this.routerLinkActive &&\n      this.routerLinkActive.isActive !== this._active.value\n    ) {\n      this._active.next(this.routerLinkActive.isActive);\n    }\n  }\n}\n","<ng-template #content>\n  <ng-container [ngTemplateOutlet]=\"labelTmp ?? defaultLabelTmp\"></ng-container>\n  <ng-template #defaultLabelTmp>{{ label }}</ng-template>\n</ng-template>\n","import {\n  ChangeDetectorRef,\n  DestroyRef,\n  ElementRef,\n  NgZone,\n  QueryList,\n  inject,\n} from '@angular/core';\nimport { VudNavbarMenuItemComponent } from '../navbar-menu-item/navbar-menu-item.component';\nimport { Subject, debounceTime, fromEvent, startWith } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nconst MORE_ITEM_WIDTH = 100;\n\nexport abstract class VudNavbarMenuBaseComponent {\n  protected readonly destroyRef = inject(DestroyRef);\n  protected readonly elRef: ElementRef<HTMLElement> = inject(ElementRef);\n  protected readonly cdRef = inject(ChangeDetectorRef);\n  protected readonly ngZone = inject(NgZone);\n\n  protected abstract menuItems: QueryList<VudNavbarMenuItemComponent>;\n  protected abstract virtualItemsSelector: string;\n\n  hiddenMenuItems: boolean[] = [];\n\n  get anyHiddenMenuItem() {\n    return this.hiddenMenuItems.some((i) => i);\n  }\n\n  private readonly resized$ = new Subject<void>();\n  private resizeObserver: any;\n  private menuItemsWidths: number[] = [];\n\n  init(): void {\n    this.menuItems.changes\n      .pipe(\n        startWith(Array.from(this.menuItems)),\n        takeUntilDestroyed(this.destroyRef),\n      )\n      .subscribe(() => {\n        this.rerenderMenuItems();\n      });\n\n    // Re-render menu items in case styles completes to load AFTER the initialization of this menu.\n    // Ref issue: #28\n    fromEvent(window, 'load')\n      .pipe(takeUntilDestroyed(this.destroyRef))\n      .subscribe(() => this.rerenderMenuItems());\n\n    // Attach resize observer if available,\n    // otherwise user will have to use `checkResponsiveness` manually.\n    if (typeof window !== 'undefined' && (window as any).ResizeObserver) {\n      this.resizeObserver = new (window as any).ResizeObserver(() =>\n        this.resized$.next(),\n      );\n      this.resizeObserver.observe(this.elRef.nativeElement);\n      this.resized$\n        .pipe(debounceTime(100), takeUntilDestroyed(this.destroyRef))\n        .subscribe(() => {\n          this.ngZone.run(() => this.checkResponsiveness());\n        });\n    }\n\n    this.destroyRef.onDestroy(() => {\n      if (this.resizeObserver) {\n        this.resizeObserver.unobserve(this.elRef.nativeElement);\n      }\n    });\n  }\n\n  rerenderMenuItems(): void {\n    // Reset cached widths\n    this.menuItemsWidths = [];\n    this.hiddenMenuItems = [];\n\n    // Needed for ngTemplateOutlet\n    this.cdRef.detectChanges();\n\n    // Must wait for the menu items to be painted so that the menu can properly\n    // calculate the correct visibility based on the size of the item content.\n    Promise.resolve().then(() => {\n      this.cacheMenuWidths();\n      this.checkResponsiveness();\n    });\n  }\n\n  checkResponsiveness(): void {\n    let changed = false;\n    // Check if everything fits well\n    const availableWidth = this.elRef.nativeElement.offsetWidth;\n    const totalMenuItemsWidth = this.menuItemsWidths.reduce((a, b) => a + b, 0);\n    let takenWidth = totalMenuItemsWidth;\n\n    if (availableWidth > takenWidth) {\n      this.menuItems.forEach((_, i) => {\n        if (this.hiddenMenuItems[i]) {\n          this.hiddenMenuItems[i] = false;\n          changed = true;\n        }\n      });\n    } else {\n      takenWidth = MORE_ITEM_WIDTH;\n\n      // Go trough menu items and add ones that fit\n      this.menuItems.forEach((_, i) => {\n        const totalTaken = takenWidth + this.menuItemsWidths[i];\n        const doesNotFit = totalTaken > availableWidth;\n        if (this.hiddenMenuItems[i] !== doesNotFit) {\n          this.hiddenMenuItems[i] = doesNotFit;\n          changed = true;\n        }\n        if (!doesNotFit) {\n          takenWidth += this.menuItemsWidths[i];\n        }\n      });\n    }\n\n    if (changed) {\n      this.cdRef.detectChanges();\n    }\n  }\n\n  private cacheMenuWidths(): void {\n    const items = this.elRef.nativeElement.querySelectorAll<HTMLElement>(\n      this.virtualItemsSelector,\n    );\n    this.menuItemsWidths = Array.from(items).map((e) => e.offsetWidth);\n  }\n}\n","import { Injectable, makeEnvironmentProviders } from '@angular/core';\n\nexport function VUD_NAVBAR_I18N_FACTORY() {\n  return new VudNavbarI18nDefault();\n}\n\n@Injectable({\n  providedIn: 'root',\n  useFactory: VUD_NAVBAR_I18N_FACTORY,\n})\nexport abstract class VudNavbarI18n {\n  abstract menuLabel: string;\n}\n\n@Injectable()\nexport class VudNavbarI18nDefault extends VudNavbarI18n {\n  /** A label for the button to open or close the menu */\n  menuLabel = 'Menu';\n}\n\nexport function provideVudNavbarI18n(\n  value: VudNavbarI18n | (() => VudNavbarI18n),\n) {\n  return makeEnvironmentProviders([\n    typeof value === 'function'\n      ? { provide: VudNavbarI18n, useFactory: value }\n      : { provide: VudNavbarI18n, useValue: value },\n  ]);\n}\n","import { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport {\n  AfterViewInit,\n  Component,\n  EventEmitter,\n  Input,\n  Output,\n  QueryList,\n  inject,\n} from '@angular/core';\nimport { VudNavbarMenuItemComponent } from '../navbar-menu-item/navbar-menu-item.component';\nimport { VudDropdownModule } from '../../dropdown';\nimport { CdkMenuModule } from '@angular/cdk/menu';\nimport { ConnectedPosition } from '@angular/cdk/overlay';\nimport { VudNavbarMenuBaseComponent } from '../navbar-menu-base/navbar-menu-base.component';\nimport { VudNavbarI18n } from '../navbar-i18n.service';\n\n@Component({\n  selector: 'vud-navbar-menu-second-level-desktop',\n  imports: [VudDropdownModule, AsyncPipe, NgTemplateOutlet, CdkMenuModule],\n  templateUrl: './navbar-menu-second-level-desktop.component.html',\n  styleUrl: './navbar-menu-second-level-desktop.component.scss',\n})\nexport class VudNavbarMenuSecondLevelDesktopComponent\n  extends VudNavbarMenuBaseComponent\n  implements AfterViewInit\n{\n  /** @ignore */\n  readonly i18n = inject(VudNavbarI18n);\n\n  @Input({ required: true }) menuItems!: QueryList<VudNavbarMenuItemComponent>;\n  @Output() menuItemClick = new EventEmitter<void>();\n\n  ngAfterViewInit(): void {\n    this.init();\n  }\n\n  protected override virtualItemsSelector =\n    'ul.second-level > li.virtual > a.nav-item';\n  readonly moreMenuPosition: ConnectedPosition[] = [\n    {\n      originX: 'end',\n      originY: 'bottom',\n      overlayX: 'end',\n      overlayY: 'top',\n    },\n    {\n      originX: 'start',\n      originY: 'bottom',\n      overlayX: 'start',\n      overlayY: 'top',\n    },\n  ];\n\n  moreMenuOpen = false;\n\n  /** @ignore */\n  protected onMenuItemClick(\n    event: MouseEvent,\n    menuitem: VudNavbarMenuItemComponent,\n  ): void {\n    menuitem.click.emit(event);\n    this.menuItemClick.next();\n  }\n}\n","<ul\n  class=\"nav second-level open\"\n  role=\"menubar\"\n  id=\"vud-navbar-second-level-menu\"\n>\n  @for (item of menuItems; track item) {\n    <li role=\"none\" [class.active]=\"item.isActive$ | async\" class=\"virtual\">\n      <a role=\"none\" class=\"nav-item\">\n        <ng-container [ngTemplateOutlet]=\"item.content\"></ng-container>\n      </a>\n    </li>\n  }\n\n  @for (item of menuItems; track item; let i = $index) {\n    @if (!hiddenMenuItems[i]) {\n      <li\n        role=\"none\"\n        [class.active]=\"item.isActive$ | async\"\n        [class.disabled]=\"item.disabled\"\n        [class.second-level-children]=\"item.menuItems.length\"\n      >\n        <a\n          role=\"menuitem\"\n          class=\"nav-item\"\n          (click)=\"onMenuItemClick($event, item)\"\n          [attr.href]=\"item.href\"\n          [attr.aria-current]=\"item.isActive$ | async\"\n          tabindex=\"0\"\n        >\n          <ng-container [ngTemplateOutlet]=\"item.content\"></ng-container>\n        </a>\n      </li>\n    }\n  }\n\n  <!-- \"More\" button for opening the hidden menu -->\n  @if (anyHiddenMenuItem) {\n    <li role=\"none\" class=\"menudrop dropdown\" [class.open]=\"moreMenuOpen\">\n      <!--\n        note: `[attr.role]=\"'menuitem'\"` is intentionally used to have a higher specificity,\n        otherwise `cdkMenuTriggerFor` takes over and sets the role to `button`, yikes!\n      -->\n\n      <a\n        id=\"vud-navbar-more-menu-level-2\"\n        class=\"dropdown-toggle\"\n        [attr.aria-haspopup]=\"anyHiddenMenuItem\"\n        href=\"#\"\n        (click)=\"$event.preventDefault()\"\n        [cdkMenuTriggerFor]=\"moreMenu\"\n        #moreMenuTrigger=\"cdkMenuTriggerFor\"\n        (cdkMenuClosed)=\"moreMenuOpen = false\"\n        (cdkMenuOpened)=\"moreMenuOpen = true\"\n        [cdkMenuPosition]=\"moreMenuPosition\"\n        draggable=\"false\"\n        [attr.role]=\"'menuitem'\"\n      >\n        <span class=\"hidden\">{{ i18n.menuLabel }}</span>\n        <i class=\"icon-align-justify\"></i>\n      </a>\n\n      <ng-template #moreMenu>\n        <ul\n          cdkMenu\n          class=\"vud-more-menu third-level dropdown-menu\"\n          role=\"menu\"\n          aria-label=\"Item one\"\n          aria-expanded=\"true\"\n          aria-hidden=\"false\"\n        >\n          @for (item of menuItems; track item; let i = $index) {\n            @if (hiddenMenuItems[i]) {\n              <li role=\"none\" [class.active]=\"item.isActive$ | async\">\n                <a\n                  cdkMenuItem\n                  class=\"nav-item\"\n                  (click)=\"item.click.emit($event)\"\n                  [attr.href]=\"item.href\"\n                  [attr.aria-current]=\"item.isActive$ | async\"\n                >\n                  <ng-container\n                    [ngTemplateOutlet]=\"item.content\"\n                  ></ng-container>\n                </a>\n              </li>\n            }\n          }\n        </ul>\n      </ng-template>\n    </li>\n  }\n</ul>\n","import {\n  booleanAttribute,\n  ChangeDetectionStrategy,\n  Component,\n  ContentChildren,\n  inject,\n  Input,\n  QueryList,\n} from '@angular/core';\nimport { VudNavbarBrandOptionComponent } from './navbar-brand-option/navbar-brand-option.component';\nimport { VudNavbarService } from './navbar.service';\nimport { VudNavbarMenuItemComponent } from './navbar-menu-item/navbar-menu-item.component';\nimport { AsyncPipe } from '@angular/common';\nimport { VudNavbarMenuSecondLevelDesktopComponent } from './navbar-menu-second-level-desktop/navbar-menu-second-level-desktop.component';\n\nexport type VudNavbarType = 'default' | 'secondary';\n\n@Component({\n  selector: 'vud-navbar',\n  imports: [AsyncPipe, VudNavbarMenuSecondLevelDesktopComponent],\n  templateUrl: './navbar.component.html',\n  styleUrls: ['./navbar.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'vudNavbar',\n})\nexport class VudNavbarComponent {\n  /** @ignore */\n  private readonly navbarService = inject(VudNavbarService);\n\n  @Input() type: VudNavbarType = 'default';\n\n  @Input({ transform: booleanAttribute }) collapseOnSelect = false;\n\n  readonly isBurgerMenuBpMatched$ = this.navbarService.isBurgerMenuBpMatched$;\n\n  /**\n   * @ignore\n   * @deprecated use your own breakpoint system to handle the use of this utility breakpoint\n   */\n  readonly isTablet$ = this.navbarService.isTablet$;\n\n  /** @ignore */\n  @ContentChildren(VudNavbarBrandOptionComponent, { descendants: true })\n  readonly brandOptions?: QueryList<VudNavbarBrandOptionComponent>;\n\n  @ContentChildren(VudNavbarMenuItemComponent, { descendants: true })\n  readonly menuItems!: QueryList<VudNavbarMenuItemComponent>;\n\n  /** @ignore */\n  isBurgerMenuBpMatched() {\n    return this.navbarService.isBurgerMenuBpMatched();\n  }\n}\n","<header\n  [class]=\"'navbar navbar-' + type\"\n  [class.is-mobile]=\"isBurgerMenuBpMatched$ | async\"\n>\n  <nav class=\"collapse navbar-collapse\">\n    @if ((isBurgerMenuBpMatched$ | async) === false) {\n      <ng-content select=\"vud-navbar-brand\"></ng-content>\n    }\n    <ng-content select=\"vud-navbar-menu\"></ng-content>\n    <ng-content select=\"vud-navbar-right-menu\"></ng-content>\n  </nav>\n\n  @if ((isBurgerMenuBpMatched$ | async) === false) {\n    @for (item of menuItems; track item) {\n      @if (item.menuItems.length && (item.isActive$ | async) === true) {\n        <div class=\"collapse navbar-collapse\">\n          <vud-navbar-menu-second-level-desktop [menuItems]=\"item.menuItems\" />\n        </div>\n      }\n    }\n  }\n</header>\n","import {\n  Component,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  AfterContentInit,\n  OnDestroy,\n  ViewEncapsulation,\n  inject,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { VudNavbarComponent } from '../navbar.component';\nimport { CdkMenuModule } from '@angular/cdk/menu';\nimport { NgTemplateOutlet } from '@angular/common';\n\n@Component({\n  selector: 'vud-navbar-brand',\n  imports: [CdkMenuModule, NgTemplateOutlet],\n  templateUrl: './navbar-brand.component.html',\n  styleUrls: ['./navbar-brand.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class VudNavbarBrandComponent implements AfterContentInit, OnDestroy {\n  public readonly navbar = inject(VudNavbarComponent, { host: true });\n  private readonly cdRef = inject(ChangeDetectorRef);\n\n  private destroyed$ = new Subject<void>();\n\n  menuOpen = false;\n\n  ngAfterContentInit(): void {\n    this.navbar\n      .brandOptions!.changes.pipe(takeUntil(this.destroyed$))\n      .subscribe(() => this.cdRef.markForCheck());\n  }\n\n  ngOnDestroy(): void {\n    this.destroyed$.next();\n  }\n}\n","<div class=\"navbar-header\">\n  <div class=\"navbar-brand dropdown\" [class.open]=\"menuOpen\">\n    <a\n      role=\"button\"\n      [class.dropdown-toggle]=\"navbar.brandOptions!.length > 0\"\n      href=\"#\"\n      (click)=\"$event.preventDefault()\"\n      [cdkMenuTriggerFor]=\"menu\"\n      (cdkMenuClosed)=\"menuOpen = false\"\n      (cdkMenuOpened)=\"menuOpen = true\"\n      draggable=\"false\"\n    >\n      <ng-content></ng-content>\n      <span class=\"caret\"></span>\n    </a>\n  </div>\n</div>\n\n<ng-template #menu>\n  <ul cdkMenu class=\"dropdown-menu navbar-brand-menu\">\n    @for (brandOption of navbar.brandOptions; track brandOption) {\n      <li role=\"none\">\n        <a\n          cdkMenuItem\n          [class.active]=\"brandOption.active\"\n          [attr.href]=\"brandOption.href\"\n          [attr.aria-label]=\"brandOption.label\"\n          [attr.aria-current]=\"brandOption.active\"\n          (click)=\"brandOption.click.emit($event)\"\n        >\n          <ng-template [ngTemplateOutlet]=\"brandOption.content\"></ng-template>\n        </a>\n      </li>\n    }\n  </ul>\n</ng-template>\n","import { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { VudNavbarMenuItemComponent } from '../navbar-menu-item/navbar-menu-item.component';\nimport { VudDropdownModule } from '../../dropdown';\n\n@Component({\n  selector: 'vud-navbar-menu-second-level-mobile',\n  imports: [VudDropdownModule, AsyncPipe, NgTemplateOutlet],\n  templateUrl: './navbar-menu-second-level-mobile.component.html',\n})\nexport class VudNavbarMenuSecondLevelMobileComponent {\n  @Input() parent!: VudNavbarMenuItemComponent;\n  @Input() menuItems: Iterable<VudNavbarMenuItemComponent> = [];\n  @Output() menuItemClick = new EventEmitter<void>();\n\n  /** @ignore */\n  protected onMenuItemClick(\n    event: MouseEvent,\n    menuitem: VudNavbarMenuItemComponent,\n  ): void {\n    menuitem.click.emit(event);\n    this.menuItemClick.next();\n  }\n}\n","<ul class=\"second-level\" [attr.aria-label]=\"parent.label\" role=\"menu\">\n  @for (item of menuItems; track item) {\n    <li\n      role=\"none\"\n      [class.active]=\"item.isActive$ | async\"\n      [class.disabled]=\"item.disabled\"\n      [class.dropdown]=\"item.menuItems.length\"\n    >\n      <a\n        class=\"nav-item\"\n        role=\"menuitem\"\n        (click)=\"onMenuItemClick($event, item)\"\n        [class.dropdown-toggle]=\"item.menuItems.length\"\n        [class.no-children]=\"!item.menuItems.length\"\n        [attr.href]=\"item.href\"\n        [attr.aria-current]=\"item.isActive$ | async\"\n      >\n        <ng-container [ngTemplateOutlet]=\"item.content\"></ng-container>\n      </a>\n    </li>\n  }\n</ul>\n","import { ConnectedPosition } from '@angular/cdk/overlay';\nimport {\n  Component,\n  ChangeDetectionStrategy,\n  QueryList,\n  ContentChildren,\n  AfterViewInit,\n  inject,\n  ViewChild,\n} from '@angular/core';\nimport { VudNavbarMenuItemComponent } from '../navbar-menu-item/navbar-menu-item.component';\nimport { VudNavbarComponent } from '../navbar.component';\nimport { VudDropdownDirective, VudDropdownModule } from '../../dropdown';\nimport { VudNavbarI18n } from '../navbar-i18n.service';\nimport { VudNavbarMenuBaseComponent } from '../navbar-menu-base/navbar-menu-base.component';\nimport { VudNavbarBrandOptionComponent } from '../navbar-brand-option/navbar-brand-option.component';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport { CdkMenuModule } from '@angular/cdk/menu';\nimport { VudNavbarMenuSecondLevelMobileComponent } from '../navbar-menu-second-level-mobile/navbar-menu-second-level-mobile.component';\n\n@Component({\n  selector: 'vud-navbar-menu',\n  imports: [\n    AsyncPipe,\n    CdkMenuModule,\n    NgTemplateOutlet,\n    VudDropdownModule,\n    VudNavbarMenuSecondLevelMobileComponent,\n  ],\n  templateUrl: './navbar-menu.component.html',\n  styleUrls: ['./navbar-menu.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class VudNavbarMenuComponent\n  extends VudNavbarMenuBaseComponent\n  implements AfterViewInit\n{\n  public readonly navbar = inject(VudNavbarComponent, { host: true });\n\n  /** @ignore */\n  readonly i18n = inject(VudNavbarI18n);\n\n  protected override readonly virtualItemsSelector =\n    'ul.first-level > li.virtual > a.nav-item';\n  readonly moreMenuPosition: ConnectedPosition[] = [\n    {\n      originX: 'end',\n      originY: 'bottom',\n      overlayX: 'end',\n      overlayY: 'top',\n    },\n    {\n      originX: 'start',\n      originY: 'bottom',\n      overlayX: 'start',\n      overlayY: 'top',\n    },\n  ];\n\n  brandOptionsOpen = false;\n  moreMenuOpen = false;\n\n  @ContentChildren(VudNavbarMenuItemComponent)\n  readonly menuItems!: QueryList<VudNavbarMenuItemComponent>;\n\n  @ViewChild('dropdown', { read: VudDropdownDirective })\n  readonly dropdown!: VudDropdownDirective;\n\n  get activeBrandOption(): VudNavbarBrandOptionComponent | undefined {\n    return this.navbar.brandOptions!.find((n) => n.active);\n  }\n\n  ngAfterViewInit(): void {\n    this.init();\n  }\n\n  toggleBrandOptions(): void {\n    this.brandOptionsOpen = !this.brandOptionsOpen;\n    this.cdRef.detectChanges();\n  }\n\n  onMobileMenuOptionClick(): void {\n    if (this.navbar.collapseOnSelect) {\n      this.dropdown.close();\n    }\n  }\n\n  protected onMenuOptionClick(\n    event: MouseEvent,\n    menuitem: VudNavbarMenuItemComponent,\n    secondLevelMobileMenuDropdown: VudDropdownDirective,\n  ): boolean | void {\n    if (menuitem.menuItems.length && secondLevelMobileMenuDropdown) {\n      secondLevelMobileMenuDropdown.toggle();\n      event.preventDefault();\n    } else {\n      menuitem.click.emit(event);\n      this.onMobileMenuOptionClick();\n    }\n  }\n}\n","<ul\n  class=\"nav first-level\"\n  [attr.role]=\"menuItems.length > 0 ? 'menubar' : 'none'\"\n>\n  <!--\n    \"Virtual\" menu items that are always hidden.\n    Used for size measurement.\n  -->\n  @for (item of menuItems; track item) {\n    <li role=\"none\" class=\"virtual\">\n      <a role=\"none\" class=\"nav-item\">\n        <ng-container [ngTemplateOutlet]=\"item.content\"></ng-container>\n      </a>\n    </li>\n  }\n\n  <!-- Mobile menu -->\n  @if (navbar.isBurgerMenuBpMatched$ | async) {\n    <li\n      role=\"none\"\n      class=\"menudrop dropdown\"\n      vudDropdown\n      #dropdown=\"vudDropdown\"\n      [class.open]=\"dropdown.isOpen$ | async\"\n    >\n      <a\n        id=\"vud-navbar-mobile-menu\"\n        role=\"menuitem\"\n        vudDropdownToggle\n        class=\"dropdown-toggle\"\n        aria-haspopup=\"true\"\n        href=\"#\"\n        (click)=\"dropdown.toggle(); $event.preventDefault()\"\n        draggable=\"false\"\n      >\n        <span>{{ i18n.menuLabel }}</span>\n        <i class=\"icon-align-justify\"></i>\n      </a>\n\n      <ul\n        vudDropdownMenu\n        class=\"dropdown-menu is-mobile\"\n        aria-labelledby=\"vud-navbar-mobile-menu\"\n        role=\"menu\"\n      >\n        <!-- Brand information that's visible only inside burger menu -->\n        @if (navbar.brandOptions!.length > 0) {\n          <li\n            role=\"none\"\n            class=\"dropdown navbar-brand\"\n            [class.is-open]=\"brandOptionsOpen\"\n          >\n            <a\n              role=\"button\"\n              href=\"#\"\n              class=\"dropdown-toggle dropped-apps-toggle\"\n              [attr.aria-expanded]=\"brandOptionsOpen\"\n              (click)=\"toggleBrandOptions(); $event.preventDefault()\"\n            >\n              {{ activeBrandOption?.label }}\n              <span class=\"caret\"></span>\n            </a>\n          </li>\n\n          @if (brandOptionsOpen) {\n            @for (brandOption of navbar.brandOptions; track brandOption) {\n              @if (!brandOption.active) {\n                <li role=\"none\" [class.active]=\"brandOption.active\">\n                  <a\n                    role=\"menuitem\"\n                    [class.active]=\"brandOption.active\"\n                    [attr.href]=\"brandOption.href\"\n                    [attr.aria-label]=\"brandOption.label\"\n                    (click)=\"\n                      brandOption.click.emit($event); onMobileMenuOptionClick()\n                    \"\n                  >\n                    <ng-template\n                      [ngTemplateOutlet]=\"brandOption.content\"\n                    ></ng-template>\n                  </a>\n                </li>\n              }\n            }\n          }\n        }\n\n        @if (!brandOptionsOpen) {\n          <!-- All menu options -->\n          @for (item of menuItems; track item; let i = $index) {\n            <li\n              role=\"none\"\n              [class.active]=\"item.isActive$ | async\"\n              [class.disabled]=\"item.disabled\"\n              [class.second-level-children]=\"!!item.menuItems.length\"\n              vudDropdown\n              #subMenuDropdown=\"vudDropdown\"\n              [isOpen]=\"item.isActive$ | async\"\n              [class.is-open]=\"subMenuDropdown.isOpen$ | async\"\n            >\n              <a\n                role=\"menuitem\"\n                class=\"nav-item\"\n                (click)=\"onMenuOptionClick($event, item, subMenuDropdown)\"\n                [class.has-children]=\"!!item.menuItems.length\"\n                [attr.href]=\"item.href\"\n                [attr.aria-current]=\"item.isActive$ | async\"\n                [attr.aria-haspopup]=\"!!item.menuItems.length ? 'menu' : null\"\n                [attr.aria-expanded]=\"\n                  !!item.menuItems.length\n                    ? (subMenuDropdown.isOpen$ | async)\n                    : null\n                \"\n              >\n                <ng-container [ngTemplateOutlet]=\"item.content\"></ng-container>\n\n                @if (item.menuItems.length) {\n                  <span class=\"caret\"></span>\n                }\n              </a>\n\n              @if (item.menuItems.length) {\n                <vud-navbar-menu-second-level-mobile\n                  [parent]=\"item\"\n                  [menuItems]=\"item.menuItems\"\n                  (menuItemClick)=\"onMobileMenuOptionClick()\"\n                />\n              }\n            </li>\n          }\n        }\n      </ul>\n    </li>\n  } @else {\n    <!-- Desktop menu -->\n    @for (item of menuItems; track item; let i = $index) {\n      @if (!hiddenMenuItems[i]) {\n        <li\n          role=\"none\"\n          [class.active]=\"item.isActive$ | async\"\n          [class.disabled]=\"item.disabled\"\n          [class.second-level-children]=\"item.menuItems.length\"\n        >\n          <a\n            role=\"menuitem\"\n            class=\"nav-item\"\n            (click)=\"item.click.emit($event)\"\n            [attr.href]=\"item.href\"\n            [attr.aria-current]=\"item.isActive$ | async\"\n            [attr.aria-owns]=\"\n              item.menuItems.length && (item.isActive$ | async) == true\n                ? 'vud-navbar-second-level-menu'\n                : null\n            \"\n            [attr.aria-haspopup]=\"\n              item.menuItems.length && (item.isActive$ | async) == true\n                ? 'menu'\n                : null\n            \"\n            tabindex=\"0\"\n          >\n            <ng-container [ngTemplateOutlet]=\"item.content\"></ng-container>\n          </a>\n        </li>\n      }\n    }\n\n    <!-- \"More\" button for opening the hidden menu -->\n    @if (anyHiddenMenuItem) {\n      <li role=\"none\" class=\"menudrop dropdown\" [class.open]=\"moreMenuOpen\">\n        <!--\n        note: `[attr.role]=\"'menuitem'\"` is intentionally used to have a higher specificity,\n        otherwise `cdkMenuTriggerFor` takes over and sets the role to `button`, yikes!\n      -->\n        <a\n          id=\"vud-navbar-more-menu\"\n          class=\"dropdown-toggle\"\n          [attr.aria-haspopup]=\"anyHiddenMenuItem\"\n          href=\"#\"\n          (click)=\"$event.preventDefault()\"\n          [cdkMenuTriggerFor]=\"moreMenu\"\n          #moreMenuTrigger=\"cdkMenuTriggerFor\"\n          (cdkMenuClosed)=\"moreMenuOpen = false\"\n          (cdkMenuOpened)=\"moreMenuOpen = true\"\n          [cdkMenuPosition]=\"moreMenuPosition\"\n          draggable=\"false\"\n          [attr.role]=\"'menuitem'\"\n        >\n          <span class=\"hidden\">{{ i18n.menuLabel }}</span>\n          <i class=\"icon-align-justify\"></i>\n        </a>\n\n        <ng-template #moreMenu>\n          <ul\n            cdkMenu\n            class=\"vud-more-menu dropdown-menu\"\n            aria-labelledby=\"vud-navbar-more-menu\"\n          >\n            <!-- Hidden menu options that didn't fit in the main menu bar -->\n            @for (item of menuItems; track item; let i = $index) {\n              @if (hiddenMenuItems[i]) {\n                <li role=\"none\" [class.active]=\"item.isActive$ | async\">\n                  <a\n                    cdkMenuItem\n                    class=\"nav-item\"\n                    (click)=\"item.click.emit($event)\"\n                    [attr.href]=\"item.href\"\n                    [attr.aria-current]=\"item.isActive$ | async\"\n                  >\n                    <ng-container\n                      [ngTemplateOutlet]=\"item.content\"\n                    ></ng-container>\n                  </a>\n                </li>\n              }\n            }\n          </ul>\n        </ng-template>\n      </li>\n    }\n  }\n</ul>\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\n\n@Component({\n  selector: 'vud-navbar-right-menu',\n  templateUrl: './navbar-right-menu.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class VudNavbarRightMenuComponent {}\n","<ul class=\"nav navbar-nav navbar-right first-level\">\n  <ng-content></ng-content>\n</ul>\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport { CdkMenuModule } from '@angular/cdk/menu';\nimport { VudNavbarComponent } from './navbar.component';\nimport { VudNavbarBrandComponent } from './navbar-brand/navbar-brand.component';\nimport { VudNavbarBrandOptionComponent } from './navbar-brand-option/navbar-brand-option.component';\nimport { VudNavbarMenuComponent } from './navbar-menu/navbar-menu.component';\nimport { VudNavbarMenuItemComponent } from './navbar-menu-item/navbar-menu-item.component';\nimport { VudNavbarRightMenuComponent } from './navbar-right-menu/navbar-right-menu.component';\nimport { VudDropdownModule } from '../dropdown';\nimport { VudNavbarService } from './navbar.service';\nimport { VudNavbarConfig, VUD_NAVBAR_CONFIG } from './navbar.config';\nimport { VudNavbarMenuSecondLevelMobileComponent } from './navbar-menu-second-level-mobile/navbar-menu-second-level-mobile.component';\nimport { VudNavbarMenuSecondLevelDesktopComponent } from './navbar-menu-second-level-desktop/navbar-menu-second-level-desktop.component';\nimport { VudNavbarMenuItemLabelDirective } from './navbar-menu-item/navbar-menu-item-label.directive';\n\n@NgModule({\n  imports: [\n    AsyncPipe,\n    NgTemplateOutlet,\n    VudDropdownModule,\n    CdkMenuModule,\n    VudNavbarComponent,\n    VudNavbarBrandComponent,\n    VudNavbarBrandOptionComponent,\n    VudNavbarMenuComponent,\n    VudNavbarMenuItemComponent,\n    VudNavbarMenuItemLabelDirective,\n    VudNavbarRightMenuComponent,\n    VudNavbarMenuSecondLevelMobileComponent,\n    VudNavbarMenuSecondLevelDesktopComponent,\n  ],\n  exports: [\n    VudDropdownModule,\n    VudNavbarComponent,\n    VudNavbarBrandComponent,\n    VudNavbarBrandOptionComponent,\n    VudNavbarMenuComponent,\n    VudNavbarMenuItemComponent,\n    VudNavbarMenuItemLabelDirective,\n    VudNavbarRightMenuComponent,\n  ],\n  providers: [VudNavbarService],\n})\nexport class VudNavbarModule {\n  static withConfig(\n    config: VudNavbarConfig,\n  ): ModuleWithProviders<VudNavbarModule> {\n    return {\n      ngModule: VudNavbarModule,\n      providers: [{ provide: VUD_NAVBAR_CONFIG, useValue: config }],\n    };\n  }\n}\n","import {\n  Component,\n  ChangeDetectionStrategy,\n  Input,\n  ViewChild,\n  TemplateRef,\n  booleanAttribute,\n} from '@angular/core';\n\n@Component({\n  selector: 'vud-pill',\n  templateUrl: './pill.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class VudPillComponent {\n  @Input({ transform: booleanAttribute }) disabled = false;\n  @Input() value: any;\n\n  @ViewChild(TemplateRef, { static: true })\n  readonly templateRef!: TemplateRef<any>;\n}\n","<ng-template><ng-content></ng-content></ng-template>\n","import {\n  Component,\n  ChangeDetectionStrategy,\n  ContentChildren,\n  QueryList,\n  Input,\n  Output,\n  EventEmitter,\n} from '@angular/core';\nimport { VudPillComponent } from './pill/pill.component';\nimport { NgTemplateOutlet } from '@angular/common';\n\n@Component({\n  selector: 'vud-pills',\n  imports: [NgTemplateOutlet],\n  templateUrl: './pills.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: {\n    role: 'group',\n    class: 'nav nav-pills',\n    '[class.nav-pills-primary]': \"color === 'primary'\",\n  },\n})\nexport class VudPillsComponent {\n  @Input() color: 'default' | 'primary' = 'default';\n  @Input() selected: any;\n\n  @Output() readonly selectedChange = new EventEmitter<any>();\n\n  /** @ignore */\n  @ContentChildren(VudPillComponent)\n  readonly pills?: QueryList<VudPillComponent>;\n\n  /** @ignore */\n  select(value: any) {\n    this.selected = value;\n    this.selectedChange.emit(value);\n  }\n}\n","@for (pill of pills; track pill) {\n  <button\n    type=\"button\"\n    [class.active]=\"pill.value === selected\"\n    [attr.aria-pressed]=\"pill.value === selected\"\n    [disabled]=\"pill.disabled\"\n    (click)=\"select(pill.value)\"\n  >\n    <ng-template [ngTemplateOutlet]=\"pill.templateRef\"></ng-template>\n  </button>\n}\n","import { NgModule } from '@angular/core';\nimport { VudPillsComponent } from './pills.component';\nimport { VudPillComponent } from './pill/pill.component';\n\n@NgModule({\n  imports: [VudPillsComponent, VudPillComponent],\n  exports: [VudPillsComponent, VudPillComponent],\n})\nexport class VudPillsModule {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n  selector: 'ng-template[vudProgressBarValueLabel]',\n})\nexport class VudProgressBarValueLabelDirective {}\n\n@Directive({\n  selector: 'ng-template[vudProgressBarLabel]',\n})\nexport class VudProgressBarLabelDirective {}\n","import {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChild,\n  Input,\n  OnChanges,\n  SimpleChanges,\n  TemplateRef,\n  booleanAttribute,\n  numberAttribute,\n} from '@angular/core';\nimport {\n  VudProgressBarLabelDirective,\n  VudProgressBarValueLabelDirective,\n} from './progress-bar-labels.directive';\nimport { NgStyle, NgTemplateOutlet } from '@angular/common';\n\nexport type VudProgressBarSize = 'default' | 'xs' | 'sm';\n\n@Component({\n  selector: 'vud-progress-bar',\n  imports: [NgStyle, NgTemplateOutlet],\n  templateUrl: './progress-bar.component.html',\n  styleUrls: ['./progress-bar.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: {\n    role: 'progressbar',\n    '[class.progress]': '!indeterminate',\n    '[class.progress-xs]': \"!indeterminate && size == 'xs'\",\n    '[class.progress-sm]': \"!indeterminate && size == 'sm'\",\n    '[attr.aria-valuenow]': '!indeterminate ? percentage : null',\n    '[attr.aria-valuemin]': '!indeterminate ? 0 : null',\n    '[attr.aria-valuemax]': '!indeterminate ? 100 : null',\n    '[attr.aria-label]': 'label',\n    '[class.horizontal-loading]': 'indeterminate',\n    '[class.horizontal-loading-xs]': \"indeterminate && size == 'xs'\",\n    '[class.horizontal-loading-sm]': \"indeterminate && size == 'sm'\",\n  },\n})\nexport class VudProgressBarComponent implements OnChanges {\n  @Input({ transform: booleanAttribute }) indeterminate = false;\n  @Input({ transform: numberAttribute }) value = 0;\n  @Input({ transform: numberAttribute }) max = 100;\n  @Input({ transform: booleanAttribute }) withValueLabel = false;\n\n  @Input() label = '';\n  @Input() size: VudProgressBarSize = 'default';\n\n  @ContentChild(VudProgressBarLabelDirective, {\n    read: TemplateRef,\n    static: true,\n  })\n  readonly labelTemplate?: TemplateRef<any>;\n  @ContentChild(VudProgressBarValueLabelDirective, {\n    read: TemplateRef,\n    static: true,\n  })\n  readonly valueLabelTemplate?: TemplateRef<any>;\n\n  constructor(private ref: ChangeDetectorRef) {}\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes.hasOwnProperty('max') || changes.hasOwnProperty('value')) {\n      this.max = this.clamp(this.max, this.value, Number.MAX_SAFE_INTEGER);\n      this.value = this.clamp(this.value, 0, this.max);\n      this.ref.markForCheck();\n    }\n  }\n\n  get percentage() {\n    return (this.value / this.max) * 100;\n  }\n\n  private clamp(v: number, min = 0, max = 100) {\n    return Math.max(min, Math.min(max, v));\n  }\n}\n","@if (!indeterminate) {\n  <div class=\"progress-bar\" [ngStyle]=\"{ width: percentage + '%' }\">\n    @if (valueLabelTemplate || withValueLabel) {\n      <span class=\"percentage\">\n        <ng-container\n          [ngTemplateOutlet]=\"valueLabelTemplate || defaultValueLabelTemplate\"\n          [ngTemplateOutletContext]=\"{\n            percentage: percentage,\n            value: value,\n            max: max\n          }\"\n        ></ng-container>\n        <ng-template #defaultValueLabelTemplate>{{ percentage }}%</ng-template>\n      </span>\n    }\n  </div>\n\n  @if (labelTemplate || label) {\n    <div class=\"progress-label\">\n      <ng-container [ngTemplateOutlet]=\"labelTemplate || defaultLabelTemplate\">\n      </ng-container>\n      <ng-template #defaultLabelTemplate>{{ label }}</ng-template>\n    </div>\n  }\n} @else {\n  <div class=\"loading-bar\"></div>\n  @if (labelTemplate || label) {\n    <div class=\"loading-bar-label\">\n      <ng-container [ngTemplateOutlet]=\"labelTemplate || defaultLabelTemplate\">\n      </ng-container>\n      <ng-template #defaultLabelTemplate>{{ label }}</ng-template>\n    </div>\n  }\n}\n","import { NgModule } from '@angular/core';\nimport {\n  VudProgressBarLabelDirective,\n  VudProgressBarValueLabelDirective,\n} from './progress-bar-labels.directive';\nimport { VudProgressBarComponent } from './progress-bar.component';\n\n@NgModule({\n  imports: [\n    VudProgressBarComponent,\n    VudProgressBarValueLabelDirective,\n    VudProgressBarLabelDirective,\n  ],\n  exports: [\n    VudProgressBarComponent,\n    VudProgressBarValueLabelDirective,\n    VudProgressBarLabelDirective,\n  ],\n})\nexport class VudProgressBarModule {}\n","import {\n  Component,\n  ChangeDetectionStrategy,\n  Input,\n  forwardRef,\n  Provider,\n  ChangeDetectorRef,\n  Output,\n  EventEmitter,\n  inject,\n  booleanAttribute,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n/**\n * Provider Expression that allows vud-radio-group to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)] and ngControl.\n */\nexport const RADIO_CONTROL_VALUE_ACCESSOR: Provider = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => VudRadioGroupComponent),\n  multi: true,\n};\n\nexport type VudRadioType = 'default' | 'outline';\n\n// Increasing integer for generating unique ids for radio components.\nlet nextUniqueId = 0;\n\n@Component({\n  selector: 'vud-radio-group',\n  templateUrl: './radio-group.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [RADIO_CONTROL_VALUE_ACCESSOR],\n  host: {\n    role: 'radiogroup',\n  },\n})\nexport class VudRadioGroupComponent implements ControlValueAccessor {\n  /** @ignore */\n  private readonly cdRef = inject(ChangeDetectorRef);\n\n  /** @ignore */\n  private _uniqueId: string = `vud-radio-group-${nextUniqueId++}`;\n  /** @ignore */\n  private _onTouched?: () => any;\n  /** @ignore */\n  private _onModelChanged?: (value: any) => void;\n  /** @ignore */\n  private _disabled: boolean = false;\n  /** @ignore */\n  private _value: string | null = null;\n\n  /** Name of the radio button group. All radio buttons inside this group will use this name. */\n  @Input() name: string = this._uniqueId;\n\n  @Input() type: VudRadioType = 'default';\n\n  /**\n   * Value for the radio-group. Should equal the value of the selected radio button if there is\n   * a corresponding radio button with a matching value. If there is not such a corresponding\n   * radio button, this value persists to be applied in case a new radio button is added with a\n   * matching value.\n   */\n  @Input()\n  get value(): string | null {\n    return this._value;\n  }\n  set value(value: string | null) {\n    if (value !== this._value) {\n      this._value = value;\n      this.cdRef.markForCheck();\n    }\n  }\n\n  /** Whether the radio group is disabled */\n  @Input({ transform: booleanAttribute })\n  get disabled(): boolean {\n    return this._disabled;\n  }\n  set disabled(value: boolean) {\n    if (value !== this._disabled) {\n      this._disabled = value;\n      this.cdRef.markForCheck();\n    }\n  }\n\n  /**\n   * Event emitted when the group value changes.\n   * Change events are only emitted when the value changes due to user interaction with\n   * a radio button (the same behavior as `<input type=\"radio\">`).\n   */\n  @Output() valueChange = new EventEmitter<string | null>();\n\n  /** @ignore */\n  registerOnChange(fn: (value: any) => void) {\n    this._onModelChanged = fn;\n  }\n\n  /** @ignore */\n  registerOnTouched(fn: any) {\n    this._onTouched = fn;\n  }\n\n  /** @ignore */\n  writeValue(value: any) {\n    this.value = value;\n  }\n\n  /** @ignore */\n  setDisabledState(isDisabled: boolean) {\n    this.disabled = isDisabled;\n  }\n\n  /** @ignore */\n  onValueChange(value: string | null) {\n    if (this.value === value) {\n      return;\n    }\n    this._value = value;\n    this.valueChange.emit(value);\n    if (this._onModelChanged) {\n      this._onModelChanged(this.value);\n    }\n  }\n\n  /** @ignore */\n  onBlur() {\n    if (this._onTouched) {\n      this._onTouched();\n    }\n  }\n}\n","<ng-content></ng-content>\n","import {\n  Component,\n  ChangeDetectionStrategy,\n  Input,\n  Output,\n  EventEmitter,\n  ChangeDetectorRef,\n  DoCheck,\n  inject,\n  booleanAttribute,\n  ViewEncapsulation,\n  Attribute,\n  signal,\n} from '@angular/core';\nimport {\n  VudRadioGroupComponent,\n  VudRadioType,\n} from './radio-group/radio-group.component';\n\n// Increasing integer for generating unique ids for radio components.\nlet nextUniqueId = 0;\n\n@Component({\n  selector: 'vud-radio',\n  templateUrl: './radio.component.html',\n  styleUrls: ['./radio.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  host: {\n    class: 'vud-radio',\n    '[class.vud-radio--outline]': 'type === \"outline\"',\n    '[attr.id]': 'null',\n    '[attr.tabindex]': 'null',\n    '[class.disabled]': 'disabled',\n    '[attr.aria-label]': 'null',\n    '[attr.aria-labelledby]': 'null',\n    '[attr.aria-describedby]': 'null',\n  },\n})\nexport class VudRadioComponent implements DoCheck {\n  /** @ignore */\n  private readonly cdRef = inject(ChangeDetectorRef);\n  /** @ignore */\n  private readonly radioGroup = inject(VudRadioGroupComponent, {\n    optional: true,\n  });\n\n  /** @ignore */\n  private _uniqueId = `vud-radio-${++nextUniqueId}`;\n  /** @ignore */\n  private _name: string | null = null;\n  /** @ignore */\n  private _inputId: string | null = null;\n  /** @ignore */\n  private _disabled = false;\n  /** @ignore */\n  private _radioType?: VudRadioType;\n  /** @ignore */\n  private _groupDisabled = false;\n  /** @ignore */\n  private readonly _ariaInvalid = signal<string | null>(null);\n  /** @ignore */\n  private readonly _ariaErrormessage = signal<string | null>(null);\n\n  /** The value attribute of the native input element */\n  @Input() value: string | null = null;\n\n  /** Name of the radio button group. All radio buttons inside this group will use this name. */\n  @Input()\n  get name(): string {\n    return this.radioGroup?.name ?? this._name ?? this._uniqueId;\n  }\n  set name(value: string | null) {\n    if (value !== this._name) {\n      this._name = value;\n      this.cdRef.markForCheck();\n    }\n  }\n\n  /** The unique ID for the radio button. */\n  @Input()\n  get id(): string {\n    return this._inputId ?? this._uniqueId;\n  }\n  set id(value: string | null) {\n    if (value !== this._inputId) {\n      this._inputId = value;\n      this.cdRef.markForCheck();\n    }\n  }\n\n  @Input()\n  set type(value: VudRadioType) {\n    this._radioType = value;\n  }\n  get type() {\n    return this._radioType ?? this.radioGroup?.type ?? 'default';\n  }\n\n  /** Whether this radio button is checked. */\n  @Input({ transform: booleanAttribute }) checked = false;\n\n  /** Whether this radio button is disabled. */\n  @Input({ transform: booleanAttribute })\n  get disabled() {\n    return this._groupDisabled || this._disabled;\n  }\n  set disabled(value: boolean) {\n    if (value !== this.disabled) {\n      this._disabled = value;\n      this.cdRef.markForCheck();\n    }\n  }\n\n  @Input('aria-label') ariaLabel?: string;\n  @Input('aria-labelledby') ariaLabelledby?: string;\n  @Input('aria-describedby') ariaDescribedby?: string;\n  @Input('aria-invalid') set ariaInvalid(value: string | null) {\n    this._ariaInvalid.set(value);\n  }\n  get ariaInvalid() {\n    return this._ariaInvalid();\n  }\n  @Input('aria-errormessage') set ariaErrormessage(value: string | null) {\n    this._ariaErrormessage.set(value);\n  }\n  get ariaErrormessage() {\n    return this._ariaErrormessage();\n  }\n\n  /**\n   * Event emitted when the group value changes.\n   * Change events are only emitted when the value changes due to user interaction with\n   * a radio button (the same behavior as `<input type=\"radio\">`).\n   */\n  @Output() readonly change = new EventEmitter<string | null>();\n\n  constructor(\n    /** @ignore */\n    @Attribute('tabindex') protected readonly tabindex?: string,\n  ) {}\n\n  /** @ignore */\n  ngDoCheck() {\n    const shouldBeChecked = this.radioGroup?.value === this.value;\n    if (this.radioGroup && this.checked !== shouldBeChecked) {\n      this.checked = shouldBeChecked;\n      this.cdRef.markForCheck();\n    }\n\n    if (this.radioGroup && this.radioGroup.disabled !== this._groupDisabled) {\n      this._groupDisabled = this.radioGroup.disabled;\n      this.cdRef.markForCheck();\n    }\n  }\n\n  /** @ignore */\n  onInputChange(event: Event) {\n    // We always have to stop propagation on the change event.\n    // Otherwise the change event, from the input element, will bubble up and\n    // emit its event object to the `change` output.\n    event.stopPropagation();\n\n    if (this.disabled) {\n      return;\n    }\n\n    this.change.emit(this.value);\n    this.radioGroup?.onValueChange(this.value);\n  }\n\n  /** @ignore */\n  onBlur() {\n    this.radioGroup?.onBlur();\n  }\n}\n","<div class=\"vud-radio__marker\">\n  <input\n    type=\"radio\"\n    [attr.id]=\"id\"\n    [name]=\"name\"\n    [checked]=\"checked\"\n    [disabled]=\"disabled\"\n    [attr.value]=\"value\"\n    [attr.tabindex]=\"tabindex\"\n    [attr.aria-label]=\"ariaLabel\"\n    [attr.aria-labelledby]=\"ariaLabelledby\"\n    [attr.aria-describedby]=\"ariaDescribedby\"\n    [attr.aria-invalid]=\"ariaInvalid\"\n    [attr.aria-errormessage]=\"ariaErrormessage\"\n    (change)=\"onInputChange($event)\"\n    (blur)=\"onBlur()\"\n  />\n  <div class=\"vud-radio__background\"></div>\n  <div class=\"vud-radio__indicator\">\n    <svg class=\"vud-radio__indicator-checked\" viewBox=\"0 0 16 16\" fill=\"none\">\n      <circle cx=\"8\" cy=\"8\" r=\"3\" fill=\"currentColor\" />\n    </svg>\n  </div>\n</div>\n<label\n  class=\"vud-radio__label\"\n  [attr.for]=\"id\"\n  [class.vud-radio__label--disabled]=\"disabled\"\n  ><ng-content></ng-content\n></label>\n","import { NgModule } from '@angular/core';\nimport { VudRadioComponent } from './radio.component';\nimport { VudRadioGroupComponent } from './radio-group/radio-group.component';\n\n@NgModule({\n  imports: [VudRadioComponent, VudRadioGroupComponent],\n  exports: [VudRadioComponent, VudRadioGroupComponent],\n})\nexport class VudRadioModule {}\n","import { ControlValueAccessor } from '@angular/forms';\nimport { ChangeDetectorRef, inject } from '@angular/core';\n\nexport class SelectValueAccessor<T> implements ControlValueAccessor {\n  protected readonly cdRef = inject(ChangeDetectorRef);\n\n  private change?: (value: T) => void;\n  private touched?: () => void;\n\n  disabled = false;\n  value?: T;\n\n  writeValue(value: T): void {\n    this.value = value;\n    if (this.cdRef) {\n      this.cdRef.markForCheck();\n    }\n  }\n\n  registerOnChange(fn: any): void {\n    this.change = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.touched = fn;\n  }\n\n  setDisabledState?(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n    if (this.cdRef) {\n      this.cdRef.markForCheck();\n    }\n  }\n\n  onChange(value: T) {\n    this.value = value;\n    if (this.change) {\n      this.change(value);\n    }\n    this.onTouched();\n  }\n\n  onTouched() {\n    if (this.touched) {\n      this.touched();\n    }\n  }\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\n\n@Directive({\n  selector: '[vudOptionTmp]',\n})\nexport class VudOptionTemplateDirective {\n  public readonly template = inject(TemplateRef);\n}\n\n@Directive({\n  selector: '[vudOptGroupTmp]',\n})\nexport class VudOptGroupTemplateDirective {\n  public readonly template = inject(TemplateRef);\n}\n\n@Directive({\n  selector: '[vudLabelTmp]',\n})\nexport class VudLabelTemplateDirective {\n  public readonly template = inject(TemplateRef);\n}\n\n@Directive({\n  selector: '[vudMultiLabelTmp]',\n})\nexport class VudMultiLabelTemplateDirective {\n  public readonly template = inject(TemplateRef);\n}\n\n@Directive({\n  selector: '[vudHeaderTmp]',\n})\nexport class VudHeaderTemplateDirective {\n  public readonly template = inject(TemplateRef);\n}\n\n@Directive({\n  selector: '[vudFooterTmp]',\n})\nexport class VudFooterTemplateDirective {\n  public readonly template = inject(TemplateRef);\n}\n\n@Directive({\n  selector: '[vudNotfoundTmp]',\n})\nexport class VudNotFoundTemplateDirective {\n  public readonly template = inject(TemplateRef);\n}\n\n@Directive({\n  selector: '[vudTypeToSearchTmp]',\n})\nexport class VudTypeToSearchTemplateDirective {\n  public readonly template = inject(TemplateRef);\n}\n\n@Directive({\n  selector: '[vudLoadingTextTmp]',\n})\nexport class VudLoadingTextTemplateDirective {\n  public readonly template = inject(TemplateRef);\n}\n\n@Directive({\n  selector: '[vudTagTmp]',\n})\nexport class VudTagTemplateDirective {\n  public readonly template = inject(TemplateRef);\n}\n","import { Injectable, makeEnvironmentProviders } from '@angular/core';\n\nexport function VUD_SELECT_I18N_FACTORY() {\n  return new VudSelectI18nDefault();\n}\n\n@Injectable({\n  providedIn: 'root',\n  useFactory: VUD_SELECT_I18N_FACTORY,\n})\nexport abstract class VudSelectI18n {\n  abstract notFoundText: string;\n  abstract typeToSearchText: string;\n  abstract addTagText: string;\n  abstract loadingText: string;\n  abstract clearAllText: string;\n}\n\n@Injectable()\nexport class VudSelectI18nDefault extends VudSelectI18n {\n  notFoundText = 'No items found';\n  typeToSearchText = 'Type to search';\n  addTagText = 'Add item';\n  loadingText = 'Loading...';\n  clearAllText = 'Clear all';\n}\n\nexport function provideVudSelectI18n(\n  value: VudSelectI18n | (() => VudSelectI18n),\n) {\n  return makeEnvironmentProviders([\n    typeof value === 'function'\n      ? { provide: VudSelectI18n, useFactory: value }\n      : { provide: VudSelectI18n, useValue: value },\n  ]);\n}\n","import {\n  AfterViewInit,\n  Directive,\n  ElementRef,\n  inject,\n  Input,\n  OnChanges,\n  Renderer2,\n} from '@angular/core';\n\n@Directive({\n  selector: '[vudOptionHighlight]',\n})\nexport class VudOptionHighlightDirective implements OnChanges, AfterViewInit {\n  private readonly elementRef: ElementRef<HTMLElement> = inject(ElementRef);\n  private readonly renderer = inject(Renderer2);\n\n  private label?: string;\n\n  @Input('vudOptionHighlight') term?: string;\n\n  ngOnChanges() {\n    this.highlightLabel();\n  }\n\n  ngAfterViewInit() {\n    this.label = this.element.innerHTML;\n    this.highlightLabel();\n  }\n\n  private get element() {\n    return this.elementRef.nativeElement;\n  }\n\n  private escapeRegExp(str: string): string {\n    return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n  }\n\n  private highlightLabel() {\n    if (!this.label) {\n      return;\n    }\n\n    if (!this.term) {\n      this.setInnerHtml(this.label);\n      return;\n    }\n\n    const alternationString = this.escapeRegExp(this.term).replace(' ', '|');\n    const termRegex = new RegExp(alternationString, 'gi');\n    this.setInnerHtml(\n      this.label.replace(termRegex, `<mark role=\"mark\">$&</mark>`),\n    );\n  }\n\n  private setInnerHtml(html: string) {\n    this.renderer.setProperty(this.elementRef.nativeElement, 'innerHTML', html);\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  ContentChild,\n  EventEmitter,\n  forwardRef,\n  Input,\n  OnInit,\n  Output,\n  TemplateRef,\n  ViewEncapsulation,\n  ViewChild,\n  Renderer2,\n  RendererStyleFlags2,\n  NgZone,\n  OnDestroy,\n  OnChanges,\n  SimpleChanges,\n  inject,\n} from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n  NgSelectComponent,\n  NgSelectConfig,\n  NgSelectModule,\n} from '@ng-select/ng-select';\nimport { fromEvent, Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport { SelectValueAccessor } from './select-value-accessor';\nimport {\n  VudFooterTemplateDirective,\n  VudHeaderTemplateDirective,\n  VudLabelTemplateDirective,\n  VudLoadingTextTemplateDirective,\n  VudMultiLabelTemplateDirective,\n  VudNotFoundTemplateDirective,\n  VudOptGroupTemplateDirective,\n  VudOptionTemplateDirective,\n  VudTagTemplateDirective,\n  VudTypeToSearchTemplateDirective,\n} from './select.templates.directive';\nimport { VudSelectI18n } from './select-i18n.service';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { VudOptionHighlightDirective } from './option-highlight.directive';\n\n@Component({\n  selector: 'vud-select',\n  imports: [\n    FormsModule,\n    NgSelectModule,\n    NgTemplateOutlet,\n    VudOptionHighlightDirective,\n  ],\n  templateUrl: './select.component.html',\n  styleUrls: ['./select.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => VudSelectComponent),\n      multi: true,\n    },\n  ],\n})\nexport class VudSelectComponent\n  extends SelectValueAccessor<any>\n  implements OnInit, OnChanges, OnDestroy\n{\n  private readonly renderer = inject(Renderer2);\n  private readonly ngZone = inject(NgZone);\n  private readonly i18n = inject(VudSelectI18n);\n  private readonly ngSelectConfig = inject(NgSelectConfig);\n\n  private destroyed$ = new Subject<void>();\n\n  @Input() items: any[] | null = null;\n  @Input() clearable = true;\n  @Input() multiple = false;\n  @Input() loading = false;\n  @Input() placeholder?: string;\n  @Input() bindLabel?: string;\n  @Input() bindValue?: string;\n  @Input() hideSelected = false;\n  @Input() appendTo?: string;\n  @Input() clearSearchOnAdd?: boolean;\n  @Input() clearOnBackspace = true;\n  @Input() markFirst = true;\n  @Input() isOpen?: boolean;\n  @Input() closeOnSelect?: boolean;\n  @Input() maxSelectedItems?: number;\n  @Input() openOnEnter = true;\n  @Input() selectOnTab = false;\n  @Input() addTag: boolean | ((term: string) => any | Promise<any>) = false;\n  @Input() dropdownPosition: 'bottom' | 'top' | 'auto' = 'auto';\n  @Input() groupBy?: string | ((value: any) => any);\n  @Input() groupValue?: (\n    key: string | object,\n    children: any[],\n  ) => string | object;\n  @Input() typeahead?: Subject<string>;\n  @Input() virtualScroll?: boolean;\n  @Input() bufferAmount = 4;\n  @Input() selectableGroup = false;\n  @Input() selectableGroupAsModel = true;\n  @Input() searchFn: ((term: string, item: any) => boolean) | null = null;\n  @Input() labelForId?: string;\n\n  // Custom inputs\n  @Input() autoPanelWidth = false;\n  @Input('disabled') set disabledBinding(value: boolean) {\n    this.disabled = value;\n  }\n  @Input('value') set valueBinding(value: any) {\n    this.value = value;\n  }\n\n  @Output('blur') blurEvent = new EventEmitter();\n  @Output('focus') focusEvent = new EventEmitter();\n  @Output('change') changeEvent = new EventEmitter();\n  @Output('open') openEvent = new EventEmitter();\n  @Output('close') closeEvent = new EventEmitter();\n  @Output('search') searchEvent = new EventEmitter();\n  @Output('clear') clearEvent = new EventEmitter();\n  @Output('add') addEvent = new EventEmitter();\n  @Output('remove') removeEvent = new EventEmitter();\n  @Output('scroll') scrollEvent = new EventEmitter();\n  @Output('scrollToEnd') scrollToEndEvent = new EventEmitter();\n\n  @ContentChild(VudOptionTemplateDirective, { read: TemplateRef })\n  readonly optionTemplate?: TemplateRef<any>;\n  @ContentChild(VudOptGroupTemplateDirective, { read: TemplateRef })\n  readonly optgroupTemplate?: TemplateRef<any>;\n  @ContentChild(VudLabelTemplateDirective, { read: TemplateRef })\n  readonly labelTemplate?: TemplateRef<any>;\n  @ContentChild(VudMultiLabelTemplateDirective, { read: TemplateRef })\n  readonly multiLabelTemplate?: TemplateRef<any>;\n  @ContentChild(VudHeaderTemplateDirective, { read: TemplateRef })\n  readonly headerTemplate?: TemplateRef<any>;\n  @ContentChild(VudFooterTemplateDirective, { read: TemplateRef })\n  readonly footerTemplate?: TemplateRef<any>;\n  @ContentChild(VudNotFoundTemplateDirective, { read: TemplateRef })\n  readonly notFoundTemplate?: TemplateRef<any>;\n  @ContentChild(VudTypeToSearchTemplateDirective, { read: TemplateRef })\n  readonly typeToSearchTemplate?: TemplateRef<any>;\n  @ContentChild(VudLoadingTextTemplateDirective, { read: TemplateRef })\n  readonly loadingTextTemplate?: TemplateRef<any>;\n  @ContentChild(VudTagTemplateDirective, { read: TemplateRef })\n  readonly tagTemplate?: TemplateRef<any>;\n\n  @ViewChild(NgSelectComponent, { static: true })\n  readonly ngSelect!: NgSelectComponent;\n\n  get searchTerm() {\n    return this.ngSelect.searchTerm;\n  }\n\n  ngOnInit() {\n    this.ngSelectConfig.notFoundText = this.i18n.notFoundText;\n    this.ngSelectConfig.typeToSearchText = this.i18n.typeToSearchText;\n    this.ngSelectConfig.addTagText = this.i18n.addTagText;\n    this.ngSelectConfig.loadingText = this.i18n.loadingText;\n    this.ngSelectConfig.clearAllText = this.i18n.clearAllText;\n\n    if (this.multiple) {\n      this.closeOnSelect = this.defaultValue(this.closeOnSelect, false);\n      this.hideSelected = this.defaultValue(this.hideSelected, true);\n    } else {\n      this.closeOnSelect = this.defaultValue(this.closeOnSelect, true);\n      this.hideSelected = this.defaultValue(this.hideSelected, false);\n    }\n\n    this.clearable = this.defaultValue(this.clearable, true);\n\n    this.ngZone.runOutsideAngular(() => {\n      fromEvent<MouseEvent>(document, 'mouseup')\n        .pipe(\n          filter((event) => {\n            if (!this.ngSelect.isOpen) {\n              return false;\n            }\n            const dropdownPanelElement = this.ngSelect.dropdownPanel\n              .scrollElementRef.nativeElement.parentElement as HTMLElement;\n            return [dropdownPanelElement, this.ngSelect.element].every(\n              (el) => !el.contains(event.target as HTMLElement),\n            );\n          }),\n          takeUntil(this.destroyed$),\n        )\n        .subscribe(() => this.ngZone.run(() => this.ngSelect.close()));\n    });\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes['isOpen'] && changes['isOpen'].currentValue !== undefined) {\n      this.ngSelect.isOpen = changes['isOpen'].currentValue;\n    }\n  }\n\n  ngOnDestroy() {\n    this.destroyed$.next();\n    this.destroyed$.unsubscribe();\n  }\n\n  onOpen(event: any) {\n    if (this.autoPanelWidth) {\n      Promise.resolve().then(() => {\n        const dropdownPanelEl = this.ngSelect.dropdownPanel.scrollElementRef\n          .nativeElement as HTMLElement;\n        dropdownPanelEl.parentElement!.classList.add(\n          'ng-select-auto-panel-width',\n        );\n        const max = this.getDropdownPanelMaxWidth();\n        this.renderer.setStyle(\n          dropdownPanelEl,\n          'max-width',\n          max + 'px',\n          RendererStyleFlags2.Important,\n        );\n      });\n    }\n    this.openEvent.emit(event);\n  }\n\n  override onChange(value: any) {\n    super.onChange(value);\n    this.changeEvent.emit(value);\n  }\n\n  onClose() {\n    super.onTouched();\n    this.closeEvent.emit();\n  }\n\n  focus() {\n    this.ngSelect.focus();\n  }\n\n  filter(term: string) {\n    this.ngSelect.filter(term);\n  }\n\n  private defaultValue<T>(original: T, value: T) {\n    return original !== undefined ? original : value;\n  }\n\n  private getDropdownPanelMaxWidth() {\n    const rightPadding = 10;\n    const maxWidthLimit = this.ngSelect.element.clientWidth * 2;\n    const clientRect = this.ngSelect.element.getBoundingClientRect();\n    return Math.min(\n      maxWidthLimit,\n      document.body.clientWidth - clientRect.left - rightPadding,\n    );\n  }\n}\n","<ng-select\n  [class.ng-select-loading]=\"loading\"\n  [class.ng-select-clearable]=\"clearable\"\n  [items]=\"items\"\n  [ngModel]=\"value\"\n  (ngModelChange)=\"onChange($event)\"\n  [clearable]=\"clearable\"\n  [searchable]=\"true\"\n  [multiple]=\"multiple\"\n  [loading]=\"loading\"\n  [placeholder]=\"$any(placeholder)\"\n  [bindLabel]=\"$any(bindLabel)\"\n  [bindValue]=\"$any(bindValue)\"\n  [hideSelected]=\"hideSelected\"\n  [appendTo]=\"$any(appendTo)\"\n  [clearSearchOnAdd]=\"$any(clearSearchOnAdd)\"\n  [addTag]=\"addTag\"\n  [clearOnBackspace]=\"clearOnBackspace\"\n  [markFirst]=\"markFirst\"\n  [closeOnSelect]=\"$any(closeOnSelect)\"\n  [maxSelectedItems]=\"$any(maxSelectedItems)\"\n  [openOnEnter]=\"openOnEnter\"\n  [selectOnTab]=\"selectOnTab\"\n  [dropdownPosition]=\"dropdownPosition\"\n  [groupBy]=\"$any(groupBy)\"\n  [groupValue]=\"$any(groupValue)\"\n  [typeahead]=\"$any(typeahead)\"\n  [virtualScroll]=\"$any(virtualScroll)\"\n  [bufferAmount]=\"bufferAmount\"\n  [selectableGroup]=\"selectableGroup\"\n  [selectableGroupAsModel]=\"selectableGroupAsModel\"\n  [searchFn]=\"searchFn\"\n  [labelForId]=\"labelForId\"\n  [disabled]=\"disabled\"\n  (blur)=\"blurEvent.emit($event)\"\n  (focus)=\"focusEvent.emit($event)\"\n  (open)=\"onOpen($event)\"\n  (close)=\"onClose()\"\n  (search)=\"searchEvent.emit($event)\"\n  (clear)=\"clearEvent.emit($event)\"\n  (add)=\"addEvent.emit($event)\"\n  (remove)=\"removeEvent.emit($event)\"\n  (scroll)=\"scrollEvent.emit($event)\"\n  (scrollToEnd)=\"scrollToEndEvent.emit($event)\"\n>\n  <ng-template\n    ng-option-tmp\n    let-item=\"item\"\n    let-item$=\"item$\"\n    let-index=\"index\"\n    let-searchTerm=\"searchTerm\"\n  >\n    <ng-template\n      [ngTemplateOutlet]=\"optionTemplate || defaultOptionTemplate\"\n      [ngTemplateOutletContext]=\"{\n        item: item,\n        item$: item$,\n        index: index,\n        searchTerm: searchTerm\n      }\"\n    ></ng-template>\n  </ng-template>\n\n  @if (headerTemplate) {\n    <ng-template ng-header-tmp let-searchTerm=\"searchTerm\">\n      <ng-template\n        [ngTemplateOutlet]=\"headerTemplate\"\n        [ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\"\n      >\n      </ng-template>\n    </ng-template>\n  }\n\n  @if (labelTemplate) {\n    <ng-template\n      ng-label-tmp\n      let-item=\"item\"\n      let-clear=\"clear\"\n      let-label=\"label\"\n    >\n      <ng-template\n        [ngTemplateOutlet]=\"labelTemplate\"\n        [ngTemplateOutletContext]=\"{ item: item, clear: clear, label: label }\"\n      ></ng-template>\n    </ng-template>\n  }\n\n  @if (footerTemplate) {\n    <ng-template ng-footer-tmp let-searchTerm=\"searchTerm\">\n      <ng-template\n        [ngTemplateOutlet]=\"footerTemplate\"\n        [ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\"\n      >\n      </ng-template>\n    </ng-template>\n  }\n\n  @if (notFoundTemplate) {\n    <ng-template ng-notfound-tmp let-searchTerm=\"searchTerm\">\n      <ng-template\n        [ngTemplateOutlet]=\"notFoundTemplate\"\n        [ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\"\n      >\n      </ng-template>\n    </ng-template>\n  }\n\n  @if (loadingTextTemplate) {\n    <ng-template ng-loadingtext-tmp let-searchTerm=\"searchTerm\">\n      <ng-template\n        [ngTemplateOutlet]=\"loadingTextTemplate\"\n        [ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\"\n      >\n      </ng-template>\n    </ng-template>\n  }\n\n  @if (tagTemplate) {\n    <ng-template ng-loadingtext-tmp let-searchTerm=\"searchTerm\">\n      <ng-template\n        [ngTemplateOutlet]=\"tagTemplate\"\n        [ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\"\n      >\n      </ng-template>\n    </ng-template>\n  }\n\n  @if (typeToSearchTemplate) {\n    <ng-template ng-typetosearch-tmp>\n      <ng-template [ngTemplateOutlet]=\"typeToSearchTemplate\"></ng-template>\n    </ng-template>\n  }\n\n  @if (multiLabelTemplate) {\n    <ng-template ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\n      <ng-template\n        [ngTemplateOutlet]=\"multiLabelTemplate\"\n        [ngTemplateOutletContext]=\"{ items: items, clear: clear }\"\n      >\n      </ng-template>\n    </ng-template>\n  }\n\n  @if (optgroupTemplate) {\n    <ng-template\n      ng-optgroup-tmp\n      let-item=\"item\"\n      let-item$=\"item$\"\n      let-index=\"index\"\n      let-searchTerm=\"searchTerm\"\n    >\n      <ng-template\n        [ngTemplateOutlet]=\"optgroupTemplate\"\n        [ngTemplateOutletContext]=\"{\n          item: item,\n          item$: item$,\n          index: index,\n          searchTerm: searchTerm\n        }\"\n      ></ng-template>\n    </ng-template>\n  }\n</ng-select>\n\n<ng-template\n  #defaultOptionTemplate\n  let-item$=\"item$\"\n  let-searchTerm=\"searchTerm\"\n>\n  <span class=\"ng-option-label\" [vudOptionHighlight]=\"searchTerm\">{{\n    item$.label\n  }}</span>\n</ng-template>\n","import { NgModule } from '@angular/core';\n\nimport { VudSelectComponent } from './select.component';\nimport {\n  VudOptionTemplateDirective,\n  VudOptGroupTemplateDirective,\n  VudLabelTemplateDirective,\n  VudMultiLabelTemplateDirective,\n  VudHeaderTemplateDirective,\n  VudFooterTemplateDirective,\n  VudNotFoundTemplateDirective,\n  VudTypeToSearchTemplateDirective,\n  VudLoadingTextTemplateDirective,\n  VudTagTemplateDirective,\n} from './select.templates.directive';\nimport { VudOptionHighlightDirective } from './option-highlight.directive';\n\n@NgModule({\n  imports: [\n    VudSelectComponent,\n    VudOptionTemplateDirective,\n    VudOptGroupTemplateDirective,\n    VudLabelTemplateDirective,\n    VudMultiLabelTemplateDirective,\n    VudHeaderTemplateDirective,\n    VudFooterTemplateDirective,\n    VudNotFoundTemplateDirective,\n    VudTypeToSearchTemplateDirective,\n    VudLoadingTextTemplateDirective,\n    VudTagTemplateDirective,\n    VudOptionHighlightDirective,\n  ],\n  exports: [\n    VudSelectComponent,\n    VudOptionTemplateDirective,\n    VudOptGroupTemplateDirective,\n    VudLabelTemplateDirective,\n    VudMultiLabelTemplateDirective,\n    VudHeaderTemplateDirective,\n    VudFooterTemplateDirective,\n    VudNotFoundTemplateDirective,\n    VudTypeToSearchTemplateDirective,\n    VudLoadingTextTemplateDirective,\n    VudTagTemplateDirective,\n    VudOptionHighlightDirective,\n  ],\n})\nexport class VudSelectModule {}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n  Component,\n  ChangeDetectionStrategy,\n  TemplateRef,\n  ViewChild,\n  Input,\n  Output,\n  EventEmitter,\n  ChangeDetectorRef,\n  DoCheck,\n  inject,\n  booleanAttribute,\n} from '@angular/core';\nimport { RouterLink, RouterLinkActive } from '@angular/router';\n\nexport abstract class VudISidebarItem {\n  abstract contentTpl: TemplateRef<any>;\n}\n\n@Component({\n  selector: 'vud-sidebar-item',\n  imports: [NgTemplateOutlet, RouterLink],\n  templateUrl: './sidebar-item.component.html',\n  providers: [\n    { provide: VudISidebarItem, useExisting: VudSidebarItemComponent },\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class VudSidebarItemComponent\n  extends VudISidebarItem\n  implements DoCheck\n{\n  private readonly cdRef = inject(ChangeDetectorRef);\n  private readonly activeRouterLink = inject(RouterLinkActive, {\n    self: true,\n    optional: true,\n  });\n\n  private _active?: boolean;\n  private _routerLinkActive?: boolean;\n  private _activeDirty = false;\n\n  get activeDirty(): boolean {\n    const activeDirty = this._activeDirty;\n    this._activeDirty = false;\n    return activeDirty;\n  }\n\n  @Input() routerLink?: any[] | string | null;\n  @Input({ transform: booleanAttribute }) disabled = false;\n  @Input() href?: string;\n  @Input() target?: '_blank' | '_self' | '_parent' | '_top';\n  @Input() framename?: string;\n  @Input({ transform: booleanAttribute })\n  set active(value: boolean) {\n    this._active = value;\n    this._activeDirty = value;\n  }\n  get active(): boolean {\n    return this._active ?? this._routerLinkActive ?? false;\n  }\n\n  @Output() readonly click = new EventEmitter<MouseEvent>();\n\n  @ViewChild(TemplateRef, { static: true })\n  override readonly contentTpl!: TemplateRef<any>;\n\n  ngDoCheck(): void {\n    // Currently, no other way to get the new value of activeRouterLink.isActive\n    this.checkActiveLink();\n  }\n\n  private checkActiveLink(): void {\n    if (this._routerLinkActive !== this.activeRouterLink?.isActive) {\n      this._routerLinkActive = this.activeRouterLink?.isActive;\n      this._activeDirty = !!this.activeRouterLink?.isActive;\n      this.cdRef.detectChanges();\n    }\n  }\n}\n","<ng-template>\n  <li [class.active]=\"active\" [class.disabled]=\"disabled\">\n    @if (!routerLink) {\n      <a\n        [attr.href]=\"href\"\n        [attr.target]=\"target\"\n        [attr.framename]=\"framename\"\n        (click)=\"click.emit($event)\"\n      >\n        <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n      </a>\n    }\n\n    @if (routerLink) {\n      <a [routerLink]=\"routerLink\">\n        <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n      </a>\n    }\n\n    <ng-template #content><ng-content></ng-content></ng-template>\n  </li>\n</ng-template>\n","import { Injectable, makeEnvironmentProviders } from '@angular/core';\n\nexport function VUD_SIDEBAR_I18N_FACTORY() {\n  return new VudSidebarI18nDefault();\n}\n\n@Injectable({\n  providedIn: 'root',\n  useFactory: VUD_SIDEBAR_I18N_FACTORY,\n})\nexport abstract class VudSidebarI18n {\n  abstract expandMenuLabel: string;\n  abstract collapseMenuLabel: string;\n}\n\n@Injectable()\nexport class VudSidebarI18nDefault extends VudSidebarI18n {\n  /** A label for the button to expand the menu */\n  expandMenuLabel = 'Expand menu';\n\n  /** A label for the button to collapse the menu */\n  collapseMenuLabel = 'Collapse menu';\n}\n\nexport function provideVudSidebarI18n(\n  value: VudSidebarI18n | (() => VudSidebarI18n),\n) {\n  return makeEnvironmentProviders([\n    typeof value === 'function'\n      ? { provide: VudSidebarI18n, useFactory: value }\n      : { provide: VudSidebarI18n, useValue: value },\n  ]);\n}\n","import {\n  AfterContentInit,\n  AfterViewInit,\n  booleanAttribute,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChildren,\n  EventEmitter,\n  inject,\n  Input,\n  Output,\n  QueryList,\n} from '@angular/core';\n\nimport { VudISidebarItem } from './sidebar-item/sidebar-item.component';\nimport { VudSidebarI18n } from './sidebar-i18n.service';\nimport { NgTemplateOutlet } from '@angular/common';\n\nexport type VudSidebarType = 'default' | 'primary' | 'secondary';\n\n@Component({\n  selector: 'vud-sidebar',\n  exportAs: 'vudSidebar',\n  imports: [NgTemplateOutlet],\n  templateUrl: './sidebar.component.html',\n  styleUrls: ['./sidebar.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: {\n    class: 'vertical-nav',\n    '[class.vertical-nav-primary]': \"type === 'primary'\",\n    '[class.vertical-nav-secondary]': \"type === 'secondary'\",\n    '[class.vertical-nav-collapse]': 'partialCollapse',\n    '[class.vertical-nav-icons]': 'withIcons',\n    '[class.hidden-menu]': 'hiddenMenu',\n  },\n})\nexport class VudSidebarComponent implements AfterContentInit, AfterViewInit {\n  /** @ignore */\n  private readonly cdRef = inject(ChangeDetectorRef);\n\n  /** @ignore */\n  readonly i18n = inject(VudSidebarI18n);\n\n  @Input() hiddenMenu = false;\n  @Input() type: VudSidebarType = 'default';\n  @Input({ transform: booleanAttribute }) accordion = false;\n  @Input({ transform: booleanAttribute }) withIcons = false;\n  @Input({ transform: booleanAttribute }) partialCollapse = false;\n\n  @Output() readonly hiddenMenuChange = new EventEmitter<boolean>();\n\n  /** @ignore */\n  @ContentChildren(VudISidebarItem)\n  readonly sidebarItems?: QueryList<VudISidebarItem>;\n\n  /** @ignore */\n  ngAfterContentInit(): void {\n    this.sidebarItems!.changes.subscribe(() => this.cdRef.markForCheck());\n  }\n\n  /** @ignore */\n  ngAfterViewInit(): void {\n    this.cdRef.detectChanges();\n  }\n\n  toggleMenu(): void {\n    this.hiddenMenu = !this.hiddenMenu;\n    this.hiddenMenuChange.emit(this.hiddenMenu);\n  }\n}\n","<ul class=\"nav\">\n  @for (item of sidebarItems; track item) {\n    <ng-container [ngTemplateOutlet]=\"item.contentTpl\"></ng-container>\n  }\n\n  <li class=\"show-nav\">\n    <a\n      role=\"button\"\n      href=\"\"\n      [attr.aria-label]=\"\n        hiddenMenu ? i18n.expandMenuLabel : i18n.collapseMenuLabel\n      \"\n      (click)=\"toggleMenu(); $event.preventDefault()\"\n    ></a>\n  </li>\n</ul>\n","import {\n  AfterContentChecked,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChildren,\n  inject,\n  Input,\n  OnDestroy,\n  QueryList,\n  TemplateRef,\n  ViewChild,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport {\n  VudISidebarItem,\n  VudSidebarItemComponent,\n} from '../sidebar-item/sidebar-item.component';\n\nimport { VudSidebarComponent } from '../sidebar.component';\nimport { NgTemplateOutlet } from '@angular/common';\n\n@Component({\n  selector: 'vud-sidebar-group',\n  imports: [NgTemplateOutlet],\n  templateUrl: './sidebar-group.component.html',\n  styleUrls: ['./sidebar-group.component.scss'],\n  providers: [\n    { provide: VudISidebarItem, useExisting: VudSidebarGroupComponent },\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class VudSidebarGroupComponent\n  extends VudISidebarItem\n  implements OnDestroy, AfterContentChecked\n{\n  private readonly sidebar = inject(VudSidebarComponent);\n  private readonly cdRef = inject(ChangeDetectorRef);\n\n  private destroyed$ = new Subject<void>();\n  private _isOpen = false;\n\n  @Input() disabled = false;\n\n  @Input()\n  set isOpen(value: boolean) {\n    this._isOpen = value;\n\n    if (value && this.sidebar.accordion) {\n      this.closeOtherGroups();\n    }\n  }\n  get isOpen(): boolean {\n    return this._isOpen;\n  }\n\n  @ViewChild(TemplateRef, { static: true })\n  override readonly contentTpl!: TemplateRef<any>;\n\n  @ContentChildren(VudSidebarItemComponent)\n  readonly sidebarItems?: QueryList<VudSidebarItemComponent>;\n\n  ngAfterContentChecked(): void {\n    this.sidebarItems!.changes.pipe(takeUntil(this.destroyed$)).subscribe(() =>\n      this.cdRef.detectChanges(),\n    );\n\n    const hasActiveDirtyItem = this.sidebarItems?.some((i) => i.activeDirty);\n    if (hasActiveDirtyItem && !this.isOpen) {\n      this.toggle();\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.destroyed$.next();\n    this.destroyed$.complete();\n  }\n\n  toggle() {\n    this.isOpen = !this.isOpen;\n    this.cdRef.detectChanges();\n  }\n\n  private closeOtherGroups() {\n    this.sidebar.sidebarItems\n      ?.filter(\n        (item) => item instanceof VudSidebarGroupComponent && item !== this,\n      )\n      .forEach((item) => ((item as VudSidebarGroupComponent).isOpen = false));\n  }\n}\n","<ng-template>\n  <li class=\"has-children\" [class.active]=\"isOpen\" [class.disabled]=\"disabled\">\n    <a\n      (click)=\"toggle(); $event.preventDefault()\"\n      href=\"\"\n      role=\"button\"\n      draggable=\"false\"\n    >\n      <ng-content select=\":not(vud-sidebar-item)\"></ng-content>\n    </a>\n\n    <ul class=\"nav\">\n      @for (item of sidebarItems; track item) {\n        @if (item !== $any(this)) {\n          <ng-container [ngTemplateOutlet]=\"item.contentTpl\"></ng-container>\n        }\n      }\n    </ul>\n  </li>\n</ng-template>\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  TemplateRef,\n  ViewChild,\n} from '@angular/core';\nimport { VudISidebarItem } from '../sidebar-item/sidebar-item.component';\n\n@Component({\n  selector: 'vud-sidebar-divider',\n  templateUrl: './sidebar-divider.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: VudISidebarItem, useExisting: VudSidebarDividerComponent },\n  ],\n})\nexport class VudSidebarDividerComponent extends VudISidebarItem {\n  @ViewChild(TemplateRef, { static: true })\n  override readonly contentTpl!: TemplateRef<any>;\n}\n","<ng-template><li class=\"divider\"></li></ng-template>\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  TemplateRef,\n  ViewChild,\n} from '@angular/core';\nimport { VudISidebarItem } from '../sidebar-item/sidebar-item.component';\n\n@Component({\n  selector: 'vud-sidebar-label',\n  templateUrl: './sidebar-label.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: VudISidebarItem, useExisting: VudSidebarLabelComponent },\n  ],\n})\nexport class VudSidebarLabelComponent extends VudISidebarItem {\n  @ViewChild(TemplateRef, { static: true })\n  override readonly contentTpl!: TemplateRef<any>;\n}\n","<ng-template\n  ><li class=\"label\"><ng-content></ng-content></li\n></ng-template>\n","import { NgModule } from '@angular/core';\n\nimport { VudSidebarGroupComponent } from './sidebar-group/sidebar-group.component';\nimport { VudSidebarComponent } from './sidebar.component';\nimport { VudSidebarItemComponent } from './sidebar-item/sidebar-item.component';\nimport { VudSidebarDividerComponent } from './sidebar-divider/sidebar-divider.component';\nimport { VudSidebarLabelComponent } from './sidebar-label/sidebar-label.component';\n\n@NgModule({\n  imports: [\n    VudSidebarComponent,\n    VudSidebarGroupComponent,\n    VudSidebarItemComponent,\n    VudSidebarDividerComponent,\n    VudSidebarLabelComponent,\n  ],\n  exports: [\n    VudSidebarComponent,\n    VudSidebarGroupComponent,\n    VudSidebarItemComponent,\n    VudSidebarDividerComponent,\n    VudSidebarLabelComponent,\n  ],\n})\nexport class VudSidebarModule {}\n","import { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nexport type SpinnerType = 'default' | 'primary' | 'secondary';\nexport type SpinnerColor = 'grey' | 'blue' | 'green';\nexport type SpinnerSize = 'small' | 'medium' | 'extra-small' | 'custom';\n\n@Component({\n  selector: 'vud-spinner',\n  imports: [NgClass],\n  templateUrl: './spinner.component.html',\n  styleUrls: ['./spinner.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class VudSpinnerComponent {\n  @Input() type: SpinnerType = 'default';\n  @Input() color: SpinnerColor = 'blue';\n  @Input() size: SpinnerSize = 'medium';\n\n  get spinnerClass() {\n    return `spinner-${this.type}-${this.color}`;\n  }\n}\n","<span\n  class=\"spinner\"\n  [ngClass]=\"spinnerClass\"\n  [class.spinner-sm]=\"size === 'small'\"\n  [class.spinner-xs]=\"size === 'extra-small'\"\n  [class.spinner-custom]=\"size === 'custom'\"\n  role=\"status\"\n></span>\n","import { NgModule } from '@angular/core';\nimport { VudSpinnerComponent } from './spinner.component';\n\n@NgModule({\n  imports: [VudSpinnerComponent],\n  exports: [VudSpinnerComponent],\n})\nexport class VudSpinnerModule {}\n","import {\n  booleanAttribute,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  forwardRef,\n  inject,\n  Injector,\n  Input,\n  Output,\n  Provider,\n} from '@angular/core';\nimport {\n  ControlValueAccessor,\n  NG_VALUE_ACCESSOR,\n  NgControl,\n} from '@angular/forms';\n\nexport const SWITCH_CONTROL_VALUE_ACCESSOR: Provider = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => VudSwitchComponent),\n  multi: true,\n};\n\nexport type VudSwitchType = 'label' | null;\nexport type VudSwitchSize = 'lg' | null;\n\nexport type VudSwitchLabelPlacementType = 'right' | 'left';\n\n// Increasing integer for generating unique ids for checkbox components.\n// Inspired by @angular/components\nlet nextUniqueId = 0;\n\n@Component({\n  selector: 'vud-switch',\n  templateUrl: './switch.component.html',\n  styleUrls: ['./switch.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [SWITCH_CONTROL_VALUE_ACCESSOR],\n  host: {\n    class: 'switch',\n    '[class.disabled]': 'disabled',\n    '[class.switch-label]': 'type === \"label\"',\n    '[class.switch-lg]': 'size === \"lg\"',\n    '[class.switch-rtl]': 'labelPlacement === \"right\"',\n    '[attr.aria-label]': 'null',\n    '[attr.aria-labelledby]': 'null',\n    '[attr.aria-describedby]': 'null',\n  },\n})\nexport class VudSwitchComponent implements ControlValueAccessor {\n  /** @ignore */\n  private readonly cdRef = inject(ChangeDetectorRef);\n  /** @ignore */\n  private readonly injector = inject(Injector);\n\n  /** @ignore */\n  private readonly _uniqueId = `vud-switch-${++nextUniqueId}`;\n  /** @ignore */\n  private _name: string | null = null;\n  /** @ignore */\n  private _id: string | null = null;\n  /** @ignore */\n  private _checked = false;\n  /** @ignore */\n  private _disabled = false;\n  /** @ignore */\n  private _onTouched?: () => any;\n  /** @ignore */\n  private _onModelChanged?: (value: any) => void;\n\n  /** The value attribute of the native input element */\n  @Input() value: string | null = null;\n\n  @Input() type: VudSwitchType = null;\n\n  @Input() onLabel: string = 'On';\n  @Input() offLabel: string = 'Off';\n\n  @Input() size: VudSwitchSize = null;\n\n  /** Determines label placement */\n  @Input() labelPlacement: VudSwitchLabelPlacementType = 'left';\n\n  @Input('aria-label') ariaLabel?: string;\n  @Input('aria-labelledby') ariaLabelledby?: string;\n  @Input('aria-describedby') ariaDescribedby?: string;\n\n  @Output() readonly change = new EventEmitter<boolean>();\n\n  @Input()\n  get name(): string {\n    const ngControl = this.injector.get(NgControl, null);\n    return this._name ?? ngControl?.name?.toString() ?? this._uniqueId;\n  }\n  set name(value: string | null) {\n    if (value !== this._name) {\n      this._name = value;\n      this.cdRef.markForCheck();\n    }\n  }\n\n  @Input()\n  get id(): string {\n    return this._id ?? this._uniqueId;\n  }\n  set id(value: string | null) {\n    if (value !== this._id) {\n      this._id = value;\n      this.cdRef.markForCheck();\n    }\n  }\n\n  @Input({ transform: booleanAttribute })\n  get checked(): boolean {\n    return this._checked;\n  }\n  set checked(value: boolean) {\n    if (value !== this.checked) {\n      this._checked = value;\n      this.cdRef.markForCheck();\n    }\n  }\n\n  @Input({ transform: booleanAttribute })\n  get disabled() {\n    return this._disabled;\n  }\n  set disabled(value: boolean) {\n    if (value !== this.disabled) {\n      this._disabled = value;\n      this.cdRef.markForCheck();\n    }\n  }\n\n  /** @ignore */\n  onInputChange(event: Event): void {\n    event.stopPropagation();\n\n    if (this.disabled) {\n      return;\n    }\n\n    this.checked = !this.checked;\n    this.updateModel();\n  }\n\n  /** @ignore */\n  onBlur() {\n    if (this._onTouched) {\n      this._onTouched();\n    }\n  }\n\n  /** @ignore */\n  registerOnChange(fn: any): void {\n    this._onModelChanged = fn;\n  }\n\n  /** @ignore */\n  registerOnTouched(fn: any): void {\n    this._onTouched = fn;\n  }\n\n  /** @ignore */\n  writeValue(value: any): void {\n    this.checked = !!value;\n  }\n\n  /** @ignore */\n  setDisabledState(isDisabled: boolean) {\n    this.disabled = isDisabled;\n  }\n\n  /** @ignore */\n  private updateModel() {\n    if (this._onModelChanged) {\n      this._onModelChanged(this.checked);\n    }\n    this.change.emit(this.checked);\n  }\n}\n","<input\n  type=\"checkbox\"\n  [id]=\"id + '-switch'\"\n  [name]=\"name\"\n  [checked]=\"checked\"\n  [disabled]=\"disabled\"\n  [attr.value]=\"value\"\n  [attr.aria-label]=\"ariaLabel\"\n  [attr.aria-labelledby]=\"ariaLabelledby\"\n  [attr.aria-describedby]=\"ariaDescribedby\"\n  (change)=\"onInputChange($event)\"\n  (blur)=\"onBlur()\"\n/>\n<label\n  [for]=\"id + '-switch'\"\n  [attr.data-content]=\"type === 'label' ? (checked ? onLabel : offLabel) : ''\"\n  class=\"togglemark\"\n  ><ng-content></ng-content\n></label>\n","import { NgModule } from '@angular/core';\nimport { VudSwitchComponent } from './switch.component';\n\n@NgModule({\n  imports: [VudSwitchComponent],\n  exports: [VudSwitchComponent],\n})\nexport class VudSwitchModule {}\n","import {\n  Component,\n  ContentChild,\n  Directive,\n  Input,\n  TemplateRef,\n  ViewChild,\n  booleanAttribute,\n} from '@angular/core';\n\n@Directive({\n  selector: 'ng-template[vudTabTitle]',\n})\nexport class VudTabTitleDirective {}\n\n@Directive({\n  selector: 'ng-template[vudTabContent]',\n})\nexport class VudTabContentDirective {}\n\n@Component({\n  selector: 'vud-tab',\n  templateUrl: './tab.component.html',\n})\nexport class VudTabComponent {\n  @Input() title = '';\n\n  @Input({ transform: booleanAttribute }) disabled = false;\n\n  /** @ignore */\n  @ContentChild(VudTabContentDirective, { read: TemplateRef, static: true })\n  readonly explicitContent?: TemplateRef<any>;\n\n  /** @ignore */\n  @ViewChild(TemplateRef, { static: true })\n  readonly implicitContent!: TemplateRef<any>;\n\n  /** @ignore */\n  @ContentChild(VudTabTitleDirective, { read: TemplateRef, static: true })\n  readonly titleTpl?: TemplateRef<any>;\n\n  /** @ignore */\n  get contentTpl() {\n    return this.explicitContent ?? this.implicitContent;\n  }\n}\n","<ng-template><ng-content></ng-content></ng-template>\n","import { Injectable, makeEnvironmentProviders } from '@angular/core';\n\nexport function VUD_TABSET_I18N_FACTORY() {\n  return new VudTabsetI18nDefault();\n}\n\n@Injectable({\n  providedIn: 'root',\n  useFactory: VUD_TABSET_I18N_FACTORY,\n})\nexport abstract class VudTabsetI18n {\n  abstract moreTabsLabel: string;\n}\n\n@Injectable()\nexport class VudTabsetI18nDefault extends VudTabsetI18n {\n  moreTabsLabel = 'More tabs';\n}\n\nexport function provideVudTabsetI18n(\n  value: VudTabsetI18n | (() => VudTabsetI18n),\n) {\n  return makeEnvironmentProviders([\n    typeof value === 'function'\n      ? { provide: VudTabsetI18n, useFactory: value }\n      : { provide: VudTabsetI18n, useValue: value },\n  ]);\n}\n","import {\n  AfterContentInit,\n  AfterViewInit,\n  ChangeDetectorRef,\n  Component,\n  ContentChildren,\n  ElementRef,\n  EventEmitter,\n  Input,\n  NgZone,\n  OnDestroy,\n  Output,\n  QueryList,\n  booleanAttribute,\n  inject,\n  numberAttribute,\n} from '@angular/core';\n\nimport { VudTabComponent } from './tab.component';\nimport { VudTabsetI18n } from './tabset-i18n.service';\nimport { VudDropdownModule } from '../dropdown';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\n\nexport interface VudTabChangeEvent {\n  index: number;\n  tab: VudTabComponent;\n}\n\nexport interface VudBeforeTabChangeEvent {\n  newIndex: number;\n  oldIndex: number;\n  preventChange: () => void;\n}\n\n// Increasing integer for generating unique id for tabpanels.\nlet nextUniqueId = 0;\n\n@Component({\n  selector: 'vud-tabset',\n  imports: [NgTemplateOutlet, VudDropdownModule, AsyncPipe],\n  templateUrl: './tabset.component.html',\n  styleUrls: ['./tabset.component.scss'],\n  host: {\n    '[attr.aria-label]': 'null',\n    '[attr.aria-labelledby]': 'null',\n  },\n})\nexport class VudTabsetComponent\n  implements AfterContentInit, AfterViewInit, OnDestroy\n{\n  /** @ignore */\n  private readonly elRef: ElementRef<HTMLElement> = inject(ElementRef);\n  /** @ignore */\n  private readonly zone = inject(NgZone);\n\n  /** @ignore */\n  readonly i18n = inject(VudTabsetI18n);\n\n  /** @ignore */\n  private resizeObserver: any;\n\n  /** @ignore */\n  private readonly cdRef = inject(ChangeDetectorRef);\n\n  /** @ignore */\n  private indexToSelect = 0;\n  /** @ignore */\n  private _selectedIndex?: number;\n\n  /** @ignore */\n  readonly uniqueId = `vud-tabset-${nextUniqueId++}`;\n\n  /** @ignore */\n  selectedTab?: VudTabComponent;\n\n  /** @ignore */\n  showTabInDropdown: boolean[] = [];\n\n  @Input({ transform: booleanAttribute }) justified = false;\n  @Input({ transform: booleanAttribute }) primary = false;\n\n  @Input('aria-label') ariaLabel?: string;\n  @Input('aria-labelledby') ariaLabelledby?: string;\n\n  @Input({ transform: numberAttribute })\n  set selectedIndex(value: number) {\n    if (this._selectedIndex === value) {\n      return;\n    }\n    this.selectTab(value, false);\n  }\n  get selectedIndex() {\n    return this._selectedIndex!;\n  }\n\n  @Output() beforeTabChange = new EventEmitter<VudBeforeTabChangeEvent>(false);\n  @Output() selectedIndexChange = new EventEmitter<number>(true);\n  @Output() selectedTabChange = new EventEmitter<VudTabChangeEvent>(true);\n\n  /** @ignore */\n  @ContentChildren(VudTabComponent) readonly tabs?: QueryList<VudTabComponent>;\n\n  /** @ignore */\n  ngAfterContentInit(): void {\n    if (!this.selectedTab) {\n      this.selectTab(this.indexToSelect);\n    }\n\n    this.tabs!.changes.subscribe(() => {\n      this.selectTab(this.selectedIndex, true);\n      this.cdRef.markForCheck();\n      Promise.resolve().then(() => {\n        this.checkResponsiveness();\n      });\n    });\n  }\n\n  ngAfterViewInit(): void {\n    if (typeof window !== 'undefined' && window.ResizeObserver) {\n      this.resizeObserver = new window.ResizeObserver(() => {\n        this.zone.run(() => {\n          this.checkResponsiveness();\n        });\n      });\n\n      this.resizeObserver.observe(this.elRef.nativeElement);\n    }\n  }\n\n  private checkResponsiveness() {\n    const tabElements = this.elRef.nativeElement.querySelectorAll<HTMLElement>(\n      `#${this.uniqueId}-tablist > li.nav-item`,\n    );\n    const moreButtonElement =\n      this.elRef.nativeElement.querySelector<HTMLElement>(\n        `#${this.uniqueId}-tabdrop`,\n      );\n\n    this.showTabInDropdown = Array(tabElements.length).fill(false);\n\n    // Temporarily show all elements to determine what their wrapping status would be\n    moreButtonElement?.classList.remove('hidden-item');\n    tabElements.forEach((tabElement, i) => {\n      tabElement.classList.remove('hidden-item');\n    });\n\n    //Determine which tab would be the first to wrap\n    const firstTabToWrapIndex = Array.from(tabElements).findIndex(\n      (tabElement) =>\n        tabElement.offsetLeft <=\n        (tabElement.previousElementSibling as HTMLElement)?.offsetLeft,\n    );\n\n    // Hide wrapping tabs\n    if (firstTabToWrapIndex > -1) {\n      for (let i = firstTabToWrapIndex; i < tabElements.length; i++) {\n        tabElements[i].classList.add('hidden-item');\n        this.showTabInDropdown[i] = true;\n      }\n\n      // If the more button would be wrapped then hide one more tab element to make room for the button\n      const moreButtonWouldWrap =\n        moreButtonElement?.offsetTop &&\n        moreButtonElement?.offsetTop > tabElements[0].offsetTop;\n      if (moreButtonWouldWrap) {\n        tabElements[firstTabToWrapIndex - 1]?.classList.add('hidden-item');\n        this.showTabInDropdown[firstTabToWrapIndex - 1] = true;\n      }\n    } else {\n      moreButtonElement?.classList.add('hidden-item');\n    }\n  }\n\n  get someItemHidden() {\n    return this.showTabInDropdown.some((shouldShow) => shouldShow);\n  }\n\n  /** @ignore */\n  onTabClick(index: number) {\n    let canChange = true;\n    this.beforeTabChange.emit({\n      newIndex: index,\n      oldIndex: this.selectedIndex,\n      preventChange: () => {\n        canChange = false;\n      },\n    });\n    if (canChange) {\n      this.selectTab(index, true);\n    }\n  }\n\n  selectTab(index: number, broadcastEvent = false) {\n    if (!this.tabs?.length) {\n      this.indexToSelect = index;\n      return;\n    }\n\n    const clampedTabIndex = this.clampTabIndex(index);\n    const tabAtIndex = this.tabs.find((_, i) => i === clampedTabIndex)!;\n\n    if (tabAtIndex.disabled) {\n      return;\n    }\n\n    if (clampedTabIndex !== this.selectedIndex) {\n      this._selectedIndex = clampedTabIndex;\n      if (broadcastEvent) {\n        this.selectedIndexChange.emit(clampedTabIndex);\n      }\n    }\n\n    if (tabAtIndex !== this.selectedTab) {\n      this.selectedTab = tabAtIndex;\n      if (broadcastEvent) {\n        this.selectedTabChange.emit({\n          index: clampedTabIndex,\n          tab: tabAtIndex,\n        });\n      }\n    }\n  }\n\n  /** @ignore */\n  private clampTabIndex(index: number): number {\n    // Note the `|| 0`, which ensures that values like NaN can't get through\n    return Math.min(this.tabs!.length - 1, Math.max(index || 0, 0));\n  }\n\n  ngOnDestroy(): void {\n    if (this.resizeObserver) {\n      this.resizeObserver.unobserve(this.elRef.nativeElement);\n    }\n  }\n}\n","<ul\n  [attr.id]=\"uniqueId + '-tablist'\"\n  class=\"nav nav-tabs\"\n  [class.hide-tabdrop]=\"!someItemHidden\"\n  [class.nav-justified]=\"justified\"\n  [class.nav-tabs-primary]=\"primary\"\n  role=\"tablist\"\n  [attr.aria-label]=\"ariaLabel\"\n  [attr.aria-labelledby]=\"ariaLabelledby\"\n>\n  @for (tab of tabs; track tab; let i = $index) {\n    <li\n      class=\"nav-item\"\n      [class.disabled]=\"tab.disabled\"\n      [class.active]=\"i === selectedIndex\"\n      role=\"presentation\"\n    >\n      <a\n        [attr.id]=\"uniqueId + '-tablabel-' + i\"\n        role=\"tab\"\n        href=\"\"\n        [tabindex]=\"tab.disabled ? -1 : undefined\"\n        (click)=\"onTabClick(i); $event.preventDefault()\"\n        [attr.aria-selected]=\"i === selectedIndex\"\n        [attr.aria-disabled]=\"tab.disabled\"\n        [attr.aria-controls]=\"uniqueId + '-tabpanel-' + i\"\n      >\n        @if (tab.titleTpl) {\n          <ng-template [ngTemplateOutlet]=\"tab.titleTpl\"></ng-template>\n        } @else {\n          {{ tab.title }}\n        }\n      </a>\n    </li>\n  }\n\n  <li\n    [attr.id]=\"uniqueId + '-tabdrop'\"\n    class=\"dropdown tabdrop\"\n    vudDropdown\n    #dropdown=\"vudDropdown\"\n    [class.open]=\"(dropdown.isOpen$ | async) && someItemHidden\"\n  >\n    <a\n      [attr.id]=\"uniqueId + '-tablist-toggle'\"\n      vudDropdownToggle\n      role=\"button\"\n      class=\"dropdown-toggle tabdrop-dropdown\"\n      href=\"#\"\n      (click)=\"dropdown.toggle(); $event.preventDefault()\"\n      draggable=\"false\"\n    >\n      <i class=\"icon-align-justify\">{{ i18n.moreTabsLabel }}</i>\n    </a>\n\n    <ul\n      vudDropdownMenu\n      class=\"dropdown-menu\"\n      role=\"menu\"\n      [attr.aria-labelledby]=\"uniqueId + '-tablist-toggle'\"\n    >\n      @for (tab of tabs; track tab; let i = $index) {\n        @if (showTabInDropdown[i]) {\n          <li\n            class=\"nav-item\"\n            [class.disabled]=\"tab.disabled\"\n            [class.active]=\"i === selectedIndex\"\n          >\n            <a\n              [attr.id]=\"uniqueId + '-dropdowntablabel-' + i\"\n              role=\"tab\"\n              (click)=\"\n                $event.preventDefault(); dropdown.close(); selectTab(i, true)\n              \"\n              href=\"#\"\n              [attr.aria-selected]=\"i === selectedIndex\"\n              [attr.aria-disabled]=\"tab.disabled\"\n              [attr.aria-controls]=\"uniqueId + '-dropdowntabpanel-' + i\"\n            >\n              @if (tab.titleTpl) {\n                <ng-template [ngTemplateOutlet]=\"tab.titleTpl\"></ng-template>\n              } @else {\n                {{ tab.title }}\n              }\n            </a>\n          </li>\n        }\n      }\n    </ul>\n  </li>\n</ul>\n\n@for (tab of tabs; track tab; let i = $index) {\n  @if (tab === selectedTab) {\n    <div\n      class=\"tab-content\"\n      role=\"tabpanel\"\n      [attr.id]=\"uniqueId + '-tabpanel-' + i\"\n      [attr.aria-labelledby]=\"uniqueId + '-tablabel-' + i\"\n    >\n      <ng-template [ngTemplateOutlet]=\"tab!.contentTpl\"></ng-template>\n    </div>\n  }\n}\n","import { NgModule } from '@angular/core';\nimport {\n  VudTabComponent,\n  VudTabContentDirective,\n  VudTabTitleDirective,\n} from './tab.component';\nimport { VudTabsetComponent } from './tabset.component';\n\n@NgModule({\n  imports: [\n    VudTabsetComponent,\n    VudTabComponent,\n    VudTabTitleDirective,\n    VudTabContentDirective,\n  ],\n  exports: [\n    VudTabsetComponent,\n    VudTabComponent,\n    VudTabTitleDirective,\n    VudTabContentDirective,\n  ],\n})\nexport class VudTabsetModule {}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  EventEmitter,\n  Input,\n  Output,\n  TemplateRef,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { VudToastOptions } from './toast.options';\nimport { NgTemplateOutlet } from '@angular/common';\n\nexport type VudToastProps = VudToastOptions & {\n  id: number;\n  content: string | TemplateRef<any>;\n  context: any;\n};\n\n@Component({\n  selector: 'vud-toast',\n  imports: [NgTemplateOutlet],\n  templateUrl: './toast.component.html',\n  styleUrl: './toast.component.scss',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class VudToastComponent {\n  @Input({ required: true }) options!: VudToastProps;\n  @Output() hideTrigerred = new EventEmitter<void>();\n\n  readonly triggerHide = () => this.hideTrigerred.emit();\n\n  get text() {\n    if (typeof this.options.content !== 'string') return null;\n    return this.options.content;\n  }\n\n  get template() {\n    if (typeof this.options.content === 'string') return null;\n    return this.options.content;\n  }\n\n  get ariaLive() {\n    if (this.options.importance === 'auto') {\n      return this.options.style === 'danger' ? 'assertive' : 'polite';\n    }\n    return this.options.importance;\n  }\n\n  get role() {\n    return this.ariaLive === 'assertive' ? 'alert' : 'status';\n  }\n}\n","<div\n  class=\"vud-toast toast toast-success\"\n  [class.toast-info]=\"options.style === 'info'\"\n  [class.toast-success]=\"options.style === 'success'\"\n  [class.toast-warning]=\"options.style === 'warning'\"\n  [class.toast-danger]=\"options.style === 'danger'\"\n  [attr.role]=\"role\"\n  [attr.aria-live]=\"ariaLive\"\n  aria-atomic=\"true\"\n>\n  @if (text) {\n    {{ text }}\n  } @else if (template) {\n    <ng-container\n      [ngTemplateOutlet]=\"template\"\n      [ngTemplateOutletContext]=\"{\n        hide: triggerHide,\n        $implicit: options.context\n      }\"\n    ></ng-container>\n  }\n</div>\n","import { InjectionToken, Provider } from '@angular/core';\n\nexport type VudToastStyle = 'info' | 'success' | 'warning' | 'danger';\nexport type VudToastPosition =\n  | 'top-left'\n  | 'top-right'\n  | 'bottom-left'\n  | 'bottom-right';\n\nexport type VudToastOptions = {\n  style: VudToastStyle;\n  duration: number | null;\n  /**\n   * The importance of the toast message.\n   * 'auto' means the importance is determined by the style ('danger' => 'assertive', otherwise 'polite').\n   * @default 'auto'\n   */\n  importance: 'assertive' | 'polite' | 'auto';\n};\n\nexport type VudToastGlobalOptions = VudToastOptions & {\n  offsetX?: string;\n  offsetY?: string;\n  position?: VudToastPosition;\n};\n\nexport const VUD_DEFAULT_TOAST_OPTIONS: VudToastGlobalOptions = {\n  style: 'info',\n  duration: 5000,\n  importance: 'auto',\n  offsetX: '0.8rem',\n  offsetY: '7.2rem',\n  position: 'top-right',\n};\n\nexport const VUD_TOAST_OPTIONS = new InjectionToken<VudToastGlobalOptions>(\n  'VUD_TOAST_OPTIONS',\n  { providedIn: 'root', factory: () => VUD_DEFAULT_TOAST_OPTIONS },\n);\n\nexport function provideVudToastOptions(\n  options: Partial<VudToastGlobalOptions>,\n): Provider {\n  return {\n    provide: VUD_TOAST_OPTIONS,\n    useValue: { ...VUD_DEFAULT_TOAST_OPTIONS, ...options },\n  };\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  ViewEncapsulation,\n  inject,\n  input,\n} from '@angular/core';\nimport { VudToaster } from '../toast.service';\nimport { trigger, transition, style, animate } from '@angular/animations';\nimport { VudToastComponent } from '../toast.component';\nimport { VudToastPosition } from '../toast.options';\n\n@Component({\n  selector: 'vud-toast-container',\n  imports: [VudToastComponent],\n  templateUrl: './toast-container.component.html',\n  styleUrl: './toast-container.component.scss',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  animations: [\n    trigger('slideInOut', [\n      transition(':enter', [\n        style({ opacity: '0', transform: 'translateY(3.6rem)' }),\n        animate(\n          '300ms ease-in-out',\n          style({ opacity: '1', transform: 'translateY(0)' }),\n        ),\n      ]),\n      transition(':leave', [\n        animate(\n          '600ms ease-in-out',\n          style({ opacity: '0', transform: 'translateX(40%)' }),\n        ),\n      ]),\n    ]),\n  ],\n  host: {\n    class: 'vud-toast-container',\n    '[class.vud-toast-container--from-bottom]':\n      'position().startsWith(\"bottom\")',\n  },\n})\nexport class VudToastContainerComponent {\n  readonly toaster = inject(VudToaster);\n\n  readonly position = input.required<VudToastPosition>();\n}\n","@for (toast of toaster.toasts(); track toast) {\n  <vud-toast\n    @slideInOut\n    [options]=\"toast\"\n    (hideTrigerred)=\"toaster.hide(toast.id)\"\n  />\n}\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport {\n  ComponentRef,\n  DestroyRef,\n  Injectable,\n  TemplateRef,\n  inject,\n  signal,\n} from '@angular/core';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n  VUD_TOAST_OPTIONS,\n  VudToastOptions,\n  VudToastPosition,\n} from './toast.options';\nimport { Observable, takeUntil, timer } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { VudToastContainerComponent } from './toast-container/toast-container.component';\nimport { VudToastProps } from './toast.component';\n\nlet nextUniqueId = 0;\n\n@Injectable({ providedIn: 'root' })\nexport class VudToaster {\n  /** @ignore */\n  private readonly overlay = inject(Overlay);\n  /** @ignore */\n  private readonly globalOptions = inject(VUD_TOAST_OPTIONS);\n  /** @ignore */\n  private readonly destroyRef = inject(DestroyRef);\n\n  /** @ignore */\n  private overlayRef?: OverlayRef;\n  /** @ignore */\n  private containerRef?: ComponentRef<VudToastContainerComponent>;\n\n  /** @ignore */\n  readonly #toasts = signal<VudToastProps[]>([]);\n  /** @ignore */\n  readonly toasts = this.#toasts.asReadonly();\n\n  show(\n    message:\n      | string\n      | TemplateRef<any>\n      | { template: TemplateRef<any>; context: any },\n    options: Partial<VudToastOptions> = {},\n  ) {\n    this.createOverlay();\n\n    const duration =\n      options.duration !== undefined\n        ? options.duration\n        : this.globalOptions.duration;\n\n    const content =\n      typeof message === 'string' || message instanceof TemplateRef\n        ? message\n        : message.template;\n\n    const newToast: VudToastProps = {\n      id: nextUniqueId++,\n      content,\n      context:\n        message instanceof Object && 'context' in message\n          ? message.context\n          : undefined,\n      style: options.style ?? this.globalOptions.style,\n      importance: options.importance ?? this.globalOptions.importance,\n      duration,\n    };\n    this.#toasts.update((toasts) => [...toasts, newToast]);\n\n    if (duration !== null && duration > 0) {\n      const toastDestroyed$ = new Observable((subscriber) =>\n        this.containerRef!.onDestroy(() => subscriber.next()),\n      );\n      timer(duration)\n        .pipe(takeUntil(toastDestroyed$), takeUntilDestroyed(this.destroyRef))\n        .subscribe(() => this.hide(newToast.id));\n    }\n\n    return {\n      id: newToast.id,\n      hide: () => this.hide(newToast.id),\n    };\n  }\n\n  hide(id: number) {\n    this.#toasts.update((toasts) => toasts.filter((toast) => toast.id !== id));\n  }\n\n  hideAll() {\n    this.#toasts.set([]);\n  }\n\n  /** @ignore */\n  private createOverlay(): OverlayRef {\n    if (this.overlayRef) {\n      return this.overlayRef;\n    }\n\n    const scrollStrategy = this.overlay.scrollStrategies.noop();\n    this.overlayRef = this.overlay.create({\n      panelClass: 'vud-toast-panel',\n      positionStrategy: this.getPositionStrategy(this.globalOptions.position),\n      scrollStrategy,\n      height: `calc(100% - ${this.globalOptions.offsetY})`,\n    });\n\n    const toastPortal = new ComponentPortal(VudToastContainerComponent);\n    this.containerRef = this.overlayRef.attach(toastPortal);\n    this.containerRef.setInput('position', this.globalOptions.position);\n\n    return this.overlayRef;\n  }\n\n  private getPositionStrategy(position?: VudToastPosition) {\n    const positionStrategy = this.overlay.position().global();\n    switch (position) {\n      case 'top-left':\n        return positionStrategy\n          .top(this.globalOptions.offsetY)\n          .left(this.globalOptions.offsetX);\n      case 'bottom-left':\n        return positionStrategy\n          .bottom(this.globalOptions.offsetY)\n          .left(this.globalOptions.offsetX);\n      case 'bottom-right':\n        return positionStrategy\n          .bottom(this.globalOptions.offsetY)\n          .right(this.globalOptions.offsetX);\n      default:\n        return positionStrategy\n          .top(this.globalOptions.offsetY)\n          .right(this.globalOptions.offsetX);\n    }\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { VudAlertModule } from './alert/alert.module';\nimport { VudButtonTabModule } from './button-tab/button-tab.module';\nimport { VudCheckboxModule } from './checkbox/checkbox.module';\nimport { VudCollapsibleListModule } from './collapsible-list/collapsible-list.module';\nimport { VudDatepickerModule } from './datepicker/datepicker.module';\nimport { VudDropdownModule } from './dropdown/dropdown.module';\nimport { VudErrorTooltipModule } from './error-tooltip/error-tooltip.module';\nimport { VudIconModule } from './icon/icon.module';\nimport { VudLightDarkSwitchModule } from './light-dark-switch/light-dark-switch.module';\nimport { VudNavbarModule } from './navbar/navbar.module';\nimport { VudPillsModule } from './pills/pills.module';\nimport { VudProgressBarModule } from './progress-bar/progress-bar.module';\nimport { VudRadioModule } from './radio/radio.module';\nimport { VudSelectModule } from './select/select.module';\nimport { VudSidebarModule } from './sidebar/sidebar.module';\nimport { VudSpinnerModule } from './spinner/spinner.module';\nimport { VudSwitchModule } from './switch/switch.module';\nimport { VudTabsetModule } from './tabset/tabset.module';\nimport { VudTooltipModule } from './tooltip/tooltip.module';\nimport { VudButtonModule } from './button/button.module';\n\n@NgModule({\n  exports: [\n    VudAlertModule,\n    VudButtonTabModule,\n    VudCheckboxModule,\n    VudCollapsibleListModule,\n    VudDatepickerModule,\n    VudDropdownModule,\n    VudErrorTooltipModule,\n    VudLightDarkSwitchModule,\n    VudNavbarModule,\n    VudPillsModule,\n    VudRadioModule,\n    VudSelectModule,\n    VudSidebarModule,\n    VudSpinnerModule,\n    VudSwitchModule,\n    VudTabsetModule,\n    VudTooltipModule,\n    VudIconModule,\n    VudProgressBarModule,\n    VudButtonModule,\n  ],\n})\nexport class VismaUnifiedDesignModule {}\n","/*\n * Public API Surface of ngx-vud\n */\n\nexport * from './lib/alert/index';\nexport * from './lib/button-tab/index';\nexport * from './lib/button/index';\nexport * from './lib/checkbox/index';\nexport * from './lib/collapsible-list/index';\nexport * from './lib/datepicker/index';\nexport * from './lib/year-month-picker/index';\nexport * from './lib/dropdown/index';\nexport * from './lib/error-tooltip/index';\nexport * from './lib/icon/index';\nexport * from './lib/light-dark-switch/index';\nexport * from './lib/dialog/index';\nexport * from './lib/modal/index';\nexport * from './lib/drawer/index';\nexport * from './lib/navbar/index';\nexport * from './lib/pills/index';\nexport * from './lib/progress-bar/index';\nexport * from './lib/radio/index';\nexport * from './lib/select/index';\nexport * from './lib/sidebar/index';\nexport * from './lib/spinner/index';\nexport * from './lib/switch/index';\nexport * from './lib/tabset/index';\nexport * from './lib/tooltip/index';\nexport * from './lib/toast/index';\nexport * from './lib/utils/index';\nexport * from './lib/vud.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.VudIconComponent","nextUniqueId","animations.accordion","isInteger","i1.NgbCalendar","i2.VudDatepickerI18n","i1.VudDatepickerI18n","i2.NgbDatepickerKeyboardService","i3.NgbDatepickerService","i4.NgbCalendar","i5.NgbDatepickerConfig","i6.NgbDateAdapter","i2","i1","takeUntil"],"mappings":"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"}