UNPKG

@engie-group/fluid-design-system-angular

Version:

Fluid Design System Angular

1 lines 444 kB
{"version":3,"file":"engie-group-fluid-design-system-angular.mjs","sources":["../../src/models/theme-variant.model.ts","../../src/directives/custom-icon.directive.ts","../../src/directives/engie-template.directive.ts","../../src/components/accordion-actions/accordion-actions.component.ts","../../src/components/accordion-actions/accordion-actions.component.html","../../src/components/accordion-actions/directive/accordion-action.directive.ts","../../src/components/icon-base/icon-base.component.ts","../../src/components/icon-base/icon-base.component.html","../../src/components/icon/icon.component.ts","../../src/components/icon/icon.component.html","../../src/components/accordion-item/accordion-item.component.ts","../../src/components/accordion-item/accordion-item.component.html","../../src/components/button/button.model.ts","../../src/components/spinner/spinner.component.ts","../../src/components/spinner/spinner.component.html","../../src/components/button/button.component.ts","../../src/components/button/button.component.html","../../src/components/accordion/accordion.component.ts","../../src/components/accordion/accordion.component.html","../../src/shared/animations.ts","../../src/utils/utils.util.ts","../../src/components/form-field/form-field.directive.ts","../../src/components/icon-button/icon-button.component.ts","../../src/components/icon-button/icon-button.component.html","../../src/components/form-item/form-item.component.ts","../../src/components/form-item/form-item.component.html","../../src/components/highlight/highlight.directive.ts","../../src/components/list-group/list-group.component.ts","../../src/components/list-group/list-group.component.html","../../src/components/checkbox/checkbox.component.ts","../../src/components/checkbox/checkbox.component.html","../../src/components/list-item/list-item.component.ts","../../src/components/list-item/list-item.component.html","../../src/components/autocomplete/autocomplete.component.ts","../../src/components/autocomplete/autocomplete.component.html","../../src/components/badge/badge.component.ts","../../src/components/badge/badge.component.html","../../src/components/tooltip/tooltip.animations.ts","../../src/components/tooltip/tooltip.component.ts","../../src/components/tooltip/tooltip.component.html","../../src/components/tooltip/directives/tooltip.directive.ts","../../src/components/avatar/avatar.component.ts","../../src/components/avatar/avatar.component.html","../../src/components/avatar/avatar-picture.directive.ts","../../src/components/avatar-list/avatar-list.component.ts","../../src/components/avatar-list/avatar-list.component.html","../../src/components/link/link.component.ts","../../src/components/link/link.component.html","../../src/components/breadcrumb-item/breadcrumb-item.component.ts","../../src/components/breadcrumb-item/breadcrumb-item.component.html","../../src/components/breadcrumb/breadcrumb.component.ts","../../src/components/breadcrumb/breadcrumb.component.html","../../src/components/bullet/bullet.component.ts","../../src/components/bullet/bullet.component.html","../../src/components/card/card.component.ts","../../src/components/card/card.component.html","../../src/components/card/card-image.directive.ts","../../src/components/custom-label/custom-label.directive.ts","../../src/components/icon/icon.model.ts","../../src/components/icon-engie/icon-engie.component.ts","../../src/components/icon-engie/icon-engie.component.html","../../src/components/icon-engie/icon-engie.model.ts","../../src/components/status-indicator/status-indicator.component.ts","../../src/components/status-indicator/status-indicator.component.html","../../src/components/inline-message/inline-message.component.ts","../../src/components/inline-message/inline-message.component.html","../../src/components/modal/modal.animations.ts","../../src/components/modal/modal.component.ts","../../src/components/modal/modal.component.html","../../src/components/tag/tag.component.ts","../../src/components/tag/tag.component.html","../../src/components/multi-select/multi-select.component.ts","../../src/components/multi-select/multi-select.component.html","../../src/components/pagination/pagination.component.ts","../../src/components/pagination/pagination.component.html","../../src/components/progress/progress.animation.ts","../../src/components/progress/progress.component.ts","../../src/components/progress/progress.component.html","../../src/components/radio/radio.component.ts","../../src/components/radio/radio.component.html","../../src/components/radio-group/radio-group.component.ts","../../src/components/radio-group/radio-group.component.html","../../src/models/size-variant.model.ts","../../src/components/search/search.component.ts","../../src/components/search/search.component.html","../../src/components/search/directives/search-button.directive.ts","../../src/components/segmented-control-button/segmented-control-button.component.ts","../../src/components/segmented-control-button/segmented-control-button.component.html","../../src/components/segmented-control/segmented-control.component.ts","../../src/components/segmented-control/segmented-control.component.html","../../src/components/select/select.component.ts","../../src/components/select/select.component.html","../../src/components/sidebar/directives/sidebar-footer.directive.ts","../../src/components/sidebar/directives/sidebar-item.directive.ts","../../src/components/sidebar/directives/sidebar-logo.directive.ts","../../src/components/sidebar/sidebar.component.ts","../../src/components/sidebar/sidebar.component.html","../../src/components/sidebar/directives/sidebar-content.directive.ts","../../src/components/sidepanel/directives/sidepanel-footer.directive.ts","../../src/components/sidepanel/directives/sidepanel-header.directive.ts","../../src/components/sidepanel/sidepanel.component.ts","../../src/components/sidepanel/sidepanel.component.html","../../src/components/sidepanel-header/directives/sidepanel-header-action.directive.ts","../../src/components/sidepanel-header/sidepanel-header.component.ts","../../src/components/sidepanel-header/sidepanel-header.component.html","../../src/components/sidepanel-layout/directives/sidepanel-layout-panel.directive.ts","../../src/components/sidepanel-layout/sidepanel-layout.animations.ts","../../src/components/sidepanel-layout/sidepanel-layout.component.ts","../../src/components/sidepanel-layout/sidepanel-layout.component.html","../../src/components/skeleton/skeleton-container.component.ts","../../src/components/skeleton/skeleton-container.component.html","../../src/components/skeleton/skeleton-rectangle.component.ts","../../src/components/skeleton/skeleton-rectangle.component.html","../../src/components/skeleton/skeleton-circle.component.ts","../../src/components/skeleton/skeleton-circle.component.html","../../src/components/skeleton/skeleton-area.component.ts","../../src/components/skeleton/skeleton-area.component.html","../../src/components/slider/slider.component.ts","../../src/components/slider/slider.component.html","../../src/components/switch/switch.component.ts","../../src/components/switch/switch.component.html","../../src/components/tab/tab.component.ts","../../src/components/tab/tab.component.html","../../src/components/tabs/tabs.component.ts","../../src/components/tabs/tabs.component.html","../../src/components/toast/toast.component.ts","../../src/components/toast/toast.component.html","../../src/components/toast/toast-container.component.ts","../../src/components/toast/toast-container.component.html","../../src/components/toast/toast.service.ts","../../src/components/toggle/toggle.component.ts","../../src/components/toggle/toggle.component.html","../../src/components/toggle/toggle-icon.directive.ts","../../src/components/tooltip/tooltip.model.ts","../../src/public-api.ts","../../src/engie-group-fluid-design-system-angular.ts"],"sourcesContent":["export const ThemeComponentsVariantsArray = ['grey', 'brand', 'teal', 'pink', 'orange', 'red', 'green', 'ultramarine', 'yellow', 'purple', 'blue', 'lime'];\n\nexport declare type ThemeComponentsVariants = typeof ThemeComponentsVariantsArray[number];\n\nexport type EmphasisVariants = 'bold' | 'subtle' | 'minimal';\n\nexport type SemanticVariants = 'neutral' | 'danger' | 'warning' | 'success' | 'information' | 'discovery' | 'planet';\n","import {Directive, inject, TemplateRef} from '@angular/core';\n\n@Directive({\n  selector: '[njCustomIcon]',\n  standalone: true\n})\nexport class CustomIconDirective {\n  templateRef = inject(TemplateRef);\n\n}\n","import {Directive, inject, Input, TemplateRef} from '@angular/core';\n\nexport type GenericElement =\n  | 'action'\n  | 'header'\n  | 'icon';\n\n@Directive({\n  selector: '[njTemplate]',\n  standalone: true\n})\nexport class EngieTemplateDirective {\n  templateRef = inject<TemplateRef<unknown>>(TemplateRef);\n\n  @Input('njTemplate') selector?: GenericElement;\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'nj-accordion-actions',\n  templateUrl: './accordion-actions.component.html',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  host: {\n    class: 'nj-accordion__actions'\n  }\n})\nexport class AccordionActionsComponent {}\n","<ng-content></ng-content>\n","import {Directive, inject, Input} from '@angular/core';\nimport {AccordionComponent} from '../../accordion/accordion.component';\n\n@Directive({\n  selector: '[njAccordionAction]',\n  standalone: true,\n  host: {\n    'class': 'njAccordionAction',\n    '[attr.data-accordion-expand]': \"type === 'expand'\",\n    '[attr.data-accordion-collapse]': \"type === 'collapse'\",\n    '(click)': 'handleClicked()'\n  }\n})\nexport class AccordionActionDirective {\n  @Input('njAccordionAction') type?: 'expand' | 'collapse';\n\n  private accordion? = inject(AccordionComponent);\n\n  protected handleClicked() {\n    if (this.type === 'expand') {\n    this.accordion?.expandAllItems();\n    }\n    if(this.type === 'collapse') {\n      this.accordion?.collapseAllItems();\n    }\n  }\n}\n","import {CommonModule} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, Input, ViewEncapsulation} from '@angular/core';\n\n@Component({\n  selector: 'nj-icon-base',\n  templateUrl: './icon-base.component.html',\n  styleUrls: ['./icon-base.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [CommonModule]\n})\nexport class IconBaseComponent {\n\n  private MATERIAL_ICON_CLASS = 'material-icons';\n  protected ICON_CLASS = 'nj-icon';\n\n  /**\n   * @ignore\n   */\n  @Input() isEngieIcon = false; //Fixme: Should be inferred by dependency tree. Not being set by input\n\n  /**\n   * Icon name\n   */\n  @Input() name: string;\n\n  /**\n   * Text alternative for assistive technologies.\n   * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-label\n   */\n  @Input() ariaLabel: string;\n\n  /**\n   * Icon additional class\n   */\n  @Input() className: string;\n\n  protected getIconClass(): string {\n    if (this.isEngieIcon && !this.name) {\n      return '';\n    }\n    return this.isEngieIcon ? `${this.ICON_CLASS} ${this.ICON_CLASS}-${this.name}` : this.MATERIAL_ICON_CLASS;\n  }\n}\n","<span\n  [ngClass]=\"[getIconClass(), className]\"\n  [attr.aria-label]=\"ariaLabel\"\n  [attr.aria-hidden]=\"ariaLabel ? null : 'true'\"\n>\n  <ng-container *ngIf=\"!isEngieIcon && name\">{{ name }}</ng-container>\n</span>\n","import {ChangeDetectionStrategy, Component, Input, ViewEncapsulation} from '@angular/core';\nimport {IconBaseComponent} from '../icon-base/icon-base.component';\nimport {IconColor, IconSize} from './icon.model';\n\n@Component({\n  selector: 'nj-icon',\n  templateUrl: './icon.component.html',\n  styleUrls: ['./icon.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [IconBaseComponent]\n})\nexport class IconComponent extends IconBaseComponent {\n\n  private ICON_MATERIAL_CLASS = 'nj-icon-material';\n\n  /**\n   * Icon size\n   */\n  @Input() size: IconSize = 'md';\n\n  /**\n   * Icon variant theme\n   */\n  @Input() variant: IconColor;\n\n  protected getClassName(): string {\n    const sizeClass = this.size ? `${this.ICON_MATERIAL_CLASS}--${this.classModifier(this.size, 'size-inherit')}` : '';\n    const variantClass = this.variant ? `${this.ICON_MATERIAL_CLASS}--${this.classModifier(this.variant, 'color-inherit')}` : '';\n    const className = this.className ? this.className : '';\n    return `${this.ICON_MATERIAL_CLASS} ${sizeClass} ${variantClass} ${className}`;\n  }\n\n  private classModifier<T extends string, U>(\n    variant: T,\n    inheritClass: U\n  ): Exclude<T, 'inherit'> | U {\n    switch (variant) {\n      case 'inherit':\n        return inheritClass;\n      default:\n        return variant as Exclude<T, 'inherit'>;\n    }\n  }\n}\n","<nj-icon-base\n  [name]=\"name\"\n  [isEngieIcon]=\"false\"\n  [ariaLabel]=\"ariaLabel\"\n  [className]=\"getClassName()\"\n>\n</nj-icon-base>\n","import {NgIf, NgIfContext, NgTemplateOutlet} from '@angular/common';\nimport {\n  AfterContentInit,\n  booleanAttribute,\n  Component,\n  ContentChildren,\n  ElementRef,\n  inject,\n  Input,\n  QueryList,\n  TemplateRef,\n  ViewEncapsulation\n} from '@angular/core';\nimport {EngieTemplateDirective} from '../../directives/engie-template.directive';\nimport {TSizeVariants} from '../../models/size-variant.model';\nimport {AccordionComponent} from '../accordion/accordion.component';\nimport {IconComponent} from '../icon/icon.component';\n\n@Component({\n  selector: 'details[nj-accordion-item]',\n  templateUrl: './accordion-item.component.html',\n  styleUrls: ['./accordion-item.component.scss'],\n  standalone: true,\n  encapsulation: ViewEncapsulation.None,\n  imports: [\n    IconComponent,\n    NgIf,\n    NgTemplateOutlet\n  ],\n  host: {\n    '[class]': 'classes',\n    '(click)': 'handleClick($event)',\n  }\n})\nexport class AccordionItemComponent implements AfterContentInit {\n\n  private element: ElementRef<HTMLDetailsElement> = inject(ElementRef);\n\n  private accordion = inject(AccordionComponent);\n\n  protected iconTemplate?: TemplateRef<unknown>;\n  protected headerTemplate?: TemplateRef<NgIfContext<string>>;\n\n  /**\n   * Size of the accordion item\n   */\n  @Input() scale?: Extract<TSizeVariants, 'md' | 'lg'>;\n\n  /**\n   * Whether the toggle icon is place at the start of the item or not.\n   */\n  @Input({transform: booleanAttribute}) hasLeadingToggleIcon?: boolean;\n\n  /**\n   * Whether the toggle use the alternative icons (plus/minus) or the default ones (arrow).\n   */\n  @Input({transform: booleanAttribute}) useAlternativeToggleIcon?: boolean;\n\n  /**\n   * This attribute enables multiple <details> elements to be connected, with only one open at a time.\n   */\n  @Input() name?: string;\n\n  /**\n   * Item header\n   */\n  @Input() label?: string;\n\n  @ContentChildren(EngieTemplateDirective) protected templateDirectives?: QueryList<EngieTemplateDirective>;\n\n  protected get classes() {\n    const classes = ['nj-accordion-item'];\n\n    if (this.scale && this.scale !== 'md') {\n      classes.push(`nj-accordion-item--${this.scale}`);\n    }\n\n    if (this.hasLeadingToggleIcon) {\n      classes.push('nj-accordion-item--leading-toggle');\n    }\n    return classes;\n  }\n\n  ngAfterContentInit() {\n    this.templateDirectives.forEach((templateDirective) => {\n      if (templateDirective?.selector === 'icon') {\n        this.iconTemplate = templateDirective.templateRef;\n      }\n\n      if (templateDirective?.selector === 'header') {\n        this.headerTemplate = templateDirective.templateRef as TemplateRef<NgIfContext<string>>;\n      }\n    });\n  }\n\n  protected handleClick(event: MouseEvent) {\n    if (this.name && !this.element.nativeElement.open) {\n      event.preventDefault();\n      this.accordion.collapseAllItems(this.name);\n      this.expand();\n    }\n  }\n\n  /**\n   * Expand the accordion item programmatically\n   */\n  expand() {\n    if (this.element) {\n      this.element.nativeElement.open = true;\n    }\n  }\n\n  /**\n   * Collapse the accordion item programmatically\n   */\n  collapse() {\n    if (this.element) {\n      this.element.nativeElement.open = false;\n    }\n  }\n}\n","<summary *ngIf=\"label || headerTemplate\">\n  <ng-container *ngIf=\"iconTemplate\" [ngTemplateOutlet]=\"iconTemplate\"></ng-container>\n  <span class=\"nj-accordion-item__label\">\n    <ng-container *ngIf=\"label; else headerTemplate\">\n      {{label}}\n    </ng-container>\n  </span>\n  <nj-icon *ngIf=\"!useAlternativeToggleIcon; else alternativeToggleIcon\" name=\"expand_more\" class=\"nj-accordion-item__toggle\" variant=\"inherit\" size=\"inherit\"></nj-icon>\n</summary>\n<p class=\"nj-accordion-item__content\">\n  <ng-content></ng-content>\n</p>\n\n<ng-template #alternativeToggleIcon>\n  <nj-icon name=\"add\" class=\"nj-accordion-item__toggle nj-accordion-item__toggle--closed\" variant=\"inherit\" size=\"inherit\"></nj-icon>\n  <nj-icon name=\"remove\" class=\"nj-accordion-item__toggle nj-accordion-item__toggle--opened\" variant=\"inherit\" size=\"inherit\"></nj-icon>\n</ng-template>\n","// Fixme: remove normal in next major release\n\nexport type ButtonSize = 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'normal';\n\nexport type ButtonVariant = 'primary' | 'secondary' | 'destructive' | 'inverse';\n\nexport type ButtonEmphasis = 'bold' | 'subtle' | 'minimal';\n\nconst CSSClassesMap: Record<ButtonSize, string> = {\n  'xsmall': 'xs',\n  'small': 'sm',\n  'medium': 'md',\n  'normal': 'md',\n  'large': 'lg',\n  'xlarge': 'xl'\n};\nexport const buttonSizeToCSS = (size: ButtonSize) => {\n  return CSSClassesMap[size];\n};\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { SpinnerSize, SpinnerVariant } from './spinner.model';\n\n@Component({\n  selector: 'nj-spinner',\n  templateUrl: './spinner.component.html',\n  styleUrls: ['./spinner.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [CommonModule]\n})\nexport class SpinnerComponent {\n  /**\n   * @ignore\n   */\n  private spinnerClassName = 'nj-spinner';\n\n  /**\n   * Spinner variant\n   */\n  @Input() variant: SpinnerVariant = 'normal';\n\n  /**\n   * Spinner size\n   */\n  @Input() size: SpinnerSize = 'md';\n\n  /**\n   * Whether to render the content of the spinner,\n   * the wrapper of the component beeing always rendered\n   * to make the live region work properly.\n   */\n  @Input() isLoading: boolean;\n\n  /**\n   * Whether the spinner is rendered as a block (<div>) or an inline (<span>) element.\n   */\n  @Input() isBlock?: boolean = true;\n\n  constructor() {}\n\n  /**\n   * @ignore\n   */\n  getSpinnerVariantClass(): string {\n    if (!this.variant || this.variant === 'normal') {\n      return '';\n    }\n    return `${this.spinnerClassName}--${this.variant}`;\n  }\n\n  /**\n   * @ignore\n   */\n  getSpinnerSizeClass(): string {\n    if (!this.size) {\n      return '';\n    }\n    return `${this.spinnerClassName}--${this.size}`;\n  }\n}\n","<div *ngIf=\"isBlock\" class=\"nj-spinner\" [ngClass]=\"[isLoading ? '' : 'nj-sr-only', getSpinnerVariantClass(), getSpinnerSizeClass()]\" aria-live=\"polite\" aria-atomic=\"true\">\n  <p *ngIf=\"isLoading\" class=\"nj-sr-only\">Loading...</p>\n</div>\n\n<span *ngIf=\"!isBlock\" class=\"nj-spinner\" [ngClass]=\"[isLoading ? '' : 'nj-sr-only', getSpinnerVariantClass(), getSpinnerSizeClass()]\" aria-live=\"polite\" aria-atomic=\"true\">\n  <span *ngIf=\"isLoading\" class=\"nj-sr-only\">Loading...</span>\n</span>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { IconComponent } from '../icon/icon.component';\nimport { ButtonEmphasis, ButtonSize, buttonSizeToCSS, ButtonVariant } from './button.model';\nimport { SpinnerComponent } from '../spinner/spinner.component';\n\n@Component({\n  selector: 'nj-button',\n  templateUrl: './button.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [IconComponent, CommonModule, SpinnerComponent]\n})\nexport class ButtonComponent {\n  /**\n   * @ignore\n   */\n  private readonly buttonClassName = 'nj-btn';\n\n  /**\n   * Type of the button. Some values may be submit, reset...\n   */\n  @Input() type = 'button';\n\n  /**\n   * Whether button is disabled or not\n   */\n  @Input() isDisabled?: boolean;\n\n  /**\n   * Whether button is loading or not\n   */\n  @Input() isLoading?: boolean;\n\n  /**\n   * Tab index, allows you to customize keyboard navigation\n   */\n  @Input() tabIndex?: number;\n\n  /**\n   * Button emphasis\n   */\n  @Input() emphasis: ButtonEmphasis = 'bold';\n\n  /**\n   * Button variant theme\n   */\n  @Input() variant: ButtonVariant = 'primary';\n\n  /**\n   * Button size\n   */\n  @Input() size?: ButtonSize;\n\n  /**\n   * Whether button has custom icon\n   */\n  @Input() hasCustomIcon = false;\n\n  /**\n   * Button material icon\n   */\n  @Input() icon?: string;\n\n  /**\n   * Text alternative for assistive technologies\n   * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-label\n   */\n  @Input() ariaLabel?: string;\n\n  /**\n   * Button click output. Emits a MouseEvent\n   */\n  @Output() buttonClick = new EventEmitter<MouseEvent>();\n\n  /**\n   * @ignore\n   */\n  getButtonEmphasisClass(): string {\n    if (!this.emphasis || this.emphasis === 'bold') {\n      return '';\n    }\n    return `${this.buttonClassName}--${this.emphasis}`;\n  }\n\n  /**\n   * @ignore\n   */\n  getButtonVariantClass(): string {\n    if (!this.variant || this.variant === 'primary') {\n      return '';\n    }\n    return `${this.buttonClassName}--${this.variant}`;\n  }\n\n  protected getButtonSizeClass(): string {\n    if (!this.size || this.size === 'medium' || this.size === 'normal') {\n      return '';\n    }\n    return `${this.buttonClassName}--${buttonSizeToCSS(this.size)}`;\n  }\n\n  /**\n   * @ignore\n   */\n  getButtonIsLoadingClass(): string {\n    return this.isLoading ? `${this.buttonClassName}--is-loading` : '';\n  }\n}\n","<button\n  class=\"nj-btn\"\n  [type]=\"type\"\n  (click)=\"buttonClick.emit($event)\"\n  [disabled]=\"isDisabled\"\n  [ngClass]=\"[getButtonEmphasisClass(), getButtonVariantClass(), getButtonSizeClass(), getButtonIsLoadingClass()]\"\n  [attr.tabindex]=\"tabIndex ? tabIndex : null\"\n  [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n>\n  <ng-container *ngIf=\"!isLoading\">\n    <ng-container *ngTemplateOutlet=\"itemContent\"></ng-container>\n  </ng-container>\n  <ng-container *ngIf=\"isLoading\">\n    <ng-container *ngTemplateOutlet=\"itemSpinner\"></ng-container>\n  </ng-container>\n</button>\n\n<ng-template #itemContent>\n  <span *ngIf=\"hasCustomIcon || icon\" class=\"nj-btn__icon\">\n    <nj-icon *ngIf=\"icon\" [name]=\"icon\" size=\"inherit\" variant=\"inherit\"></nj-icon>\n    <ng-container *ngIf=\"!icon\">\n      <ng-content select=\"[custom-icon]\"></ng-content>\n    </ng-container>\n  </span>\n  <ng-content></ng-content>\n</ng-template>\n\n<ng-template #itemSpinner>\n  <nj-spinner [isLoading]=\"true\" [isBlock]=\"false\" />\n</ng-template>\n","import {\n  booleanAttribute,\n  ChangeDetectionStrategy,\n  Component,\n  ContentChildren,\n  Input,\n  QueryList,\n  ViewEncapsulation\n} from '@angular/core';\nimport { EngieTemplateDirective } from '../../directives/engie-template.directive';\nimport { AccordionActionsComponent } from '../accordion-actions/accordion-actions.component';\nimport { AccordionActionDirective } from '../accordion-actions/directive/accordion-action.directive';\nimport { AccordionItemComponent } from '../accordion-item/accordion-item.component';\nimport { ButtonComponent } from '../button/button.component';\nimport { IconComponent } from '../icon/icon.component';\n\n@Component({\n  selector: 'nj-accordion',\n  templateUrl: './accordion.component.html',\n  standalone: true,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  imports: [\n    AccordionItemComponent,\n    IconComponent,\n    EngieTemplateDirective,\n    AccordionActionsComponent,\n    ButtonComponent,\n    AccordionActionDirective\n  ],\n  host: {\n    '[class]': 'classes'\n  }\n})\nexport class AccordionComponent {\n  @Input({ transform: booleanAttribute }) noBorder: boolean;\n  @Input({ transform: booleanAttribute }) separated: boolean;\n\n  @ContentChildren(AccordionItemComponent) private accordions?: QueryList<AccordionItemComponent>;\n\n  protected get classes() {\n    const classes = ['nj-accordion'];\n\n    if (this.noBorder) {\n      classes.push('nj-accordion--no-border');\n    }\n\n    if (this.separated) {\n      classes.push('nj-accordion--separated');\n    }\n\n    return classes;\n  }\n\n  /**\n   * Expand all children items programmatically\n   */\n  expandAllItems() {\n    const openedGroup = new Set<string>();\n    this.accordions.forEach((accordion) => {\n      // Firefox doesn't currently support grouping accordion items with `name` property.\n      // So we replicate the behavior here to have it on all browsers.\n      //\n      // As explained in the MDN documentation, when the `name` property is set, only the first details\n      // element with the `open` property should be opened.\n      if (!accordion.name || !openedGroup.has(accordion.name)) {\n        accordion.expand();\n      } else {\n        accordion.collapse();\n      }\n      if (accordion.name) {\n        openedGroup.add(accordion.name);\n      }\n    });\n  }\n\n  /**\n   * Collapse all children items programmatically\n   */\n  collapseAllItems(name?: string) {\n    this.accordions.forEach((accordion) => {\n      if (name && accordion.name !== name) {\n        return;\n      }\n      accordion.collapse();\n    });\n  }\n}\n","<ng-content></ng-content>\n","import {animate, AnimationTriggerMetadata, state, style, transition, trigger} from '@angular/animations';\nimport {njSemanticMotionEasingLinearOutSlowIn} from '@engie-group/fluid-design-tokens';\n\nexport const selectAnimations: {\n  readonly transformList: AnimationTriggerMetadata;\n} = {\n  transformList: trigger('transformList', [\n    state(\n      'void',\n      style({\n        transform: 'scaleY(0.8)',\n        opacity: 0,\n      }),\n    ),\n    state(\n      '*',\n      style({\n        opacity: 1,\n        transform: 'scaleY(1)',\n      }),\n    ),\n    transition('void => *', animate(`120ms ${njSemanticMotionEasingLinearOutSlowIn}`)),\n    transition('* => void', animate(`100ms 25ms ${njSemanticMotionEasingLinearOutSlowIn}`, style({opacity: 0}))),\n  ]),\n};\n","// Ignore https://angular.io/guide/angular-compiler-options#strictmetadataemit\n// @dynamic\nexport class Utils {\n  static MAX_UID = 1000000;\n\n  public static isUndefinedOrNull(value: any): boolean {\n    return typeof value === 'undefined' || value === null;\n  }\n\n  public static normalizeString(text: string) {\n    return text.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\n  }\n\n  public static normalizeAndSearchInText(text: string, search: string): boolean {\n    if(Utils.isUndefinedOrNull(text) || Utils.isUndefinedOrNull(search)) {\n      return false;\n    }\n    const normalizedText = Utils.normalizeString(text);\n    let normalizedSearch = Utils.normalizeString(search)?.replace(/\\(|\\)|\\\\/gi, '');\n    const regExp = new RegExp(normalizedSearch, 'gi');\n    return normalizedText.search(regExp) !== -1;\n  }\n\n  public static getUID(prefix: string): string {\n    do {\n      // eslint-disable-next-line no-bitwise\n      prefix += ~~(Math.random() * Utils.MAX_UID); // \"~~\" acts like a faster Math.floor() here\n    } while (document.getElementById(prefix));\n    return prefix;\n  }\n}\n","import {Directive, ElementRef, HostBinding} from '@angular/core';\nimport {Utils} from '../../utils/utils.util';\n\n@Directive({\n  selector: 'input[njFormField], textarea[njFormField], select[njFormField], nj-select[njFormField], div[njFormField]',\n  exportAs: 'njFormField',\n  standalone: true\n})\nexport class FormFieldDirective {\n  @HostBinding('class') class = 'nj-form-item__field';\n\n  constructor(private el: ElementRef) {\n    this.setPlaceholder();\n  }\n\n  private setPlaceholder() {\n    if (this.tagName.toLowerCase() === 'select') {\n      return;\n    }\n    const placeholder = this.el?.nativeElement?.placeholder;\n    this.el.nativeElement.placeholder = Utils.isUndefinedOrNull(placeholder) || placeholder?.trim() === ''\n      ? ' '\n      : placeholder;\n  }\n\n  get type() {\n    return this.el?.nativeElement?.type;\n  }\n\n  set type(value: string) {\n    if (this.el?.nativeElement) {\n      this.el.nativeElement.type = value;\n    }\n  }\n\n  get tagName() {\n    return this.el?.nativeElement?.tagName;\n  }\n\n  get element() {\n    return this.el?.nativeElement;\n  }\n}\n","import {CommonModule} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, EventEmitter, Input, Output} from '@angular/core';\nimport {IconComponent} from '../icon/icon.component';\nimport {IconButtonSize, IconButtonVariant} from './icon-button.model';\n\n@Component({\n  selector: 'nj-icon-button',\n  templateUrl: './icon-button.component.html',\n  styleUrls: ['./icon-button.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [IconComponent, CommonModule]\n})\nexport class IconButtonComponent {\n  private readonly ICON_BUTTON_CLASS_NAME = 'nj-icon-btn';\n\n  /**\n   * Type of the button. Some values may be `button`, `submit`, `reset`\n   */\n  @Input() type = 'button';\n\n  /**\n   * For toggle buttons, indicate the state\n   */\n  @Input() ariaPressed?: boolean;\n\n  /**\n   * Additional description for assistive technologies based on visible text\n   * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-describedby\n   */\n  @Input() ariaDescribedby?: string;\n\n  /**\n   * Whether button is disabled or not\n   */\n  @Input() isDisabled: boolean;\n\n  /**\n   * Tab index, allows you to customize keyboard navigation\n   */\n  @Input() tabIndex: number;\n\n  /**\n   * Button variant theme\n   * @default `primary`\n   */\n  @Input() variant: IconButtonVariant;\n\n  /**\n   * Button size\n   * @default `xs`\n   */\n  @Input() size: IconButtonSize;\n\n  /**\n   * Whether button has custom icon\n   */\n  @Input() hasCustomIcon = false;\n\n  /**\n   * Button material icon\n   */\n  @Input() icon: string;\n\n  /**\n   * Text alternative for assistive technologies\n   */\n  @Input() label: string;\n\n  /**\n   * Additional icon-button css classes\n   */\n  @Input() additionalClass?: string;\n\n  /**\n   * Button click output. Emits a MouseEvent\n   */\n  @Output() buttonClick = new EventEmitter<MouseEvent>();\n\n  constructor() {\n  }\n\n  /**\n   * @ignore\n   */\n  getIconButtonVariantClass(): string {\n    if (!this.variant || this.variant === 'primary') {\n      return '';\n    }\n    return `${this.ICON_BUTTON_CLASS_NAME}--${this.variant}`;\n  }\n\n  /**\n   * @ignore\n   */\n  getIconButtonSizeClass(): string {\n    if (!this.size || this.size === 'xs') {\n      return '';\n    }\n    return `${this.ICON_BUTTON_CLASS_NAME}--${this.size}`;\n  }\n}\n","<button class=\"nj-icon-btn\"\n        [type]=\"type\"\n        (click)=\"buttonClick.emit($event)\"\n        [tabIndex]=\"tabIndex\"\n        [disabled]=\"isDisabled\"\n        [ngClass]=\"[\n          getIconButtonVariantClass(),\n          getIconButtonSizeClass(),\n          additionalClass ?? ''\n        ]\"\n        [title]=\"label\"\n        [attr.aria-describedby]=\"ariaDescribedby\"\n        [attr.aria-pressed]=\"ariaPressed\"\n>\n  <span class=\"nj-sr-only\">{{label}}</span>\n  <nj-icon class=\"nj-icon-btn__icon\" *ngIf=\"!hasCustomIcon && icon\" [name]=\"icon\" size=\"inherit\" variant=\"inherit\"></nj-icon>\n  <span *ngIf=\"hasCustomIcon\" class=\"nj-icon-btn__icon\">\n    <ng-content select=\"[custom-icon]\"></ng-content>\n  </span>\n</button>\n","import {CommonModule} from '@angular/common';\nimport {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  Component,\n  ContentChild,\n  EventEmitter,\n  Input,\n  Output,\n  ViewEncapsulation,\n} from '@angular/core';\nimport {FormFieldDirective} from '../form-field/form-field.directive';\nimport {IconButtonComponent} from '../icon-button/icon-button.component';\nimport {IconComponent} from '../icon/icon.component';\nimport {FormItemSize} from './form-item.model';\n\n@Component({\n  selector: 'nj-form-item',\n  templateUrl: './form-item.component.html',\n  styleUrls: ['./form-item.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [IconComponent, IconButtonComponent, FormFieldDirective, CommonModule]\n})\nexport class FormItemComponent implements AfterContentInit {\n\n  private readonly formItemClassName = 'nj-form-item';\n\n  /**\n   * @ignore\n   */\n  private _hasError: boolean;\n\n  /**\n   * @ignore\n   */\n  private _hasSuccess: boolean;\n\n  /**\n   * @ignore\n   */\n  private _hasHint: boolean;\n\n  /**\n   * @ignore\n   */\n  isPassword: boolean;\n\n  /**\n   * @ignore\n   */\n  isVisible = false;\n\n  /**\n   * @ignore\n   */\n  passwordNotice = '';\n\n  /**\n   * @ignore\n   */\n  passwordButtonLabel = '';\n\n  /**\n   * @ignore\n   */\n  isMultiline = false;\n\n  /**\n   * Input id and label for attribute, needed for focus to work properly\n   */\n  @Input() inputId: string;\n\n  /**\n   * Form item size\n   */\n  @Input() size: FormItemSize = 'medium';\n\n  /**\n   * Whether the form-item label is floating\n   */\n  @Input() isFloatingLabel = true;\n\n  /**\n   * Whether form-item is disabled or not\n   */\n  @Input() isDisabled: boolean;\n\n  /**\n   * Whether form-item is required or not\n   */\n  @Input() isRequired: boolean;\n\n  /**\n   * Whether form-item is in success state\n   */\n  @Input()\n  set hasSuccess(value: boolean) {\n    this._hasSuccess = value;\n    this.setAriaAttributes();\n  }\n\n  get hasSuccess(): boolean {\n    return this._hasSuccess;\n  }\n\n  /**\n   * Whether form-item is in error state\n   */\n  @Input()\n  set hasError(value: boolean) {\n    this._hasError = value;\n    this.setAriaAttributes();\n  }\n\n  get hasError(): boolean {\n    return this._hasError;\n  }\n\n  /**\n   * Whether the form-item has a hint substring\n   */\n  @Input()\n  set hasHint(value: boolean) {\n    this._hasHint = value;\n    this.setAriaAttributes();\n  }\n\n  get hasHint(): boolean {\n    return this._hasHint;\n  }\n\n  /**\n   * Whether the form-item has a custom icon\n   */\n  @Input() hasCustomIcon: boolean;\n\n  /**\n   * Whether the form-item's icon (or custom icon) is clickable\n   */\n  @Input() isIconClickable = true;\n\n  /**\n   * Material icon name\n   */\n  @Input() iconName: string;\n\n  /**\n   * Additional form-item css classes\n   */\n  @Input() additionalClass: string = '';\n\n  /**\n   * Label for the button to toggle password visibility when password is hidden.\n   * @example \"Show password\"\n   */\n  @Input() passwordButtonLabelShow?: string;\n\n  /**\n   * Label for the button to toggle password visibility when password is visible.\n   * @example \"Hide password\"\n   */\n  @Input() passwordButtonLabelHide?: string;\n  /**\n   * Label to announce when password becomes visible.\n   * @example \"Password is visible\"\n   */\n  @Input() passwordNoticeIsVisible?: string;\n\n  /**\n   * Label to announce when password becomes hidden.\n   * @example \"Password is hidden\"\n   */\n  @Input() passwordNoticeIsHidden?: string;\n\n  /**\n   * Whether form-item is a select or not\n   */\n  @Input() isSelect: boolean;\n\n  /**\n   * Outputs icon click\n   */\n  @Output() iconClick: EventEmitter<MouseEvent> = new EventEmitter<\n    MouseEvent\n  >();\n\n  /**\n   * Outputs icon keydown\n   */\n  @Output() iconKeydown: EventEmitter<KeyboardEvent> = new EventEmitter<\n    KeyboardEvent\n  >();\n\n  /**\n   * Outputs icon click\n   */\n  @Output() wrapperClick: EventEmitter<MouseEvent> = new EventEmitter<\n    MouseEvent\n  >();\n\n  /**\n   * @ignore\n   */\n  @ContentChild(FormFieldDirective) formField: FormFieldDirective;\n\n  ngAfterContentInit() {\n    const tagName = this.formField?.tagName?.toLowerCase();\n    this.isPassword = this.formField?.type === 'password';\n    this.isMultiline = tagName === 'textarea';\n    this.passwordButtonLabel = this.passwordButtonLabelShow;\n    this.setAriaAttributes();\n    if (this.isRequired) {\n      this.formField.element.setAttribute('required', 'required');\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  iconClickHandler(event: MouseEvent) {\n    if (!this.isIconClickable) {\n      return;\n    }\n    this.iconClick.emit(event);\n  }\n\n  /**\n   * @ignore\n   */\n  iconKeydownHandler(event: KeyboardEvent) {\n    event?.preventDefault();\n    if (!this.isIconClickable) {\n      return;\n    }\n    this.iconKeydown.emit(event);\n  }\n\n  /**\n   * @ignore\n   */\n  toggleVisibility() {\n    if (this.isVisible) {\n      this.formField.type = 'password';\n      this.passwordNotice = this.passwordNoticeIsHidden;\n      this.passwordButtonLabel = this.passwordButtonLabelShow;\n    } else {\n      this.formField.type = 'text';\n      this.passwordNotice = this.passwordNoticeIsVisible;\n      this.passwordButtonLabel = this.passwordButtonLabelHide;\n    }\n    this.isVisible = !this.isVisible;\n  }\n\n  /**\n   * @ignore\n   */\n  getSubscriptId(): string {\n    return `${this.inputId}-subscript`;\n  }\n\n  /**\n   * @ignore\n   */\n  setAriaAttributes() {\n    if (this.formField?.element) {\n      if (this.hasError) {\n        this.formField.element.setAttribute('aria-invalid', 'true');\n      }\n\n      if (this.hasError || this.hasSuccess || this.hasHint) {\n        this.formField.element.setAttribute('aria-describedby', this.getSubscriptId());\n      }\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  isCustomSelect(): boolean {\n    const type = this.formField?.type;\n    return this.isSelect && type === 'text';\n  }\n\n  /**\n   * @ignore\n   */\n  getFormItemSizeClass(): string {\n    let sizeModifier: string;\n    switch (this.size) {\n      case 'small':\n        sizeModifier = 'sm';\n        break;\n      case 'large':\n        sizeModifier = 'lg';\n        break;\n      case 'xlarge':\n        sizeModifier = 'xl';\n        break;\n      default:\n        break;\n    }\n    return sizeModifier ? `${this.formItemClassName}--${sizeModifier}` : '';\n  }\n}\n","<div class=\"nj-form-item\"\n     [class.nj-form-item--static]=\"!isFloatingLabel\"\n     [class.nj-form-item--disabled]=\"isDisabled\"\n     [class.nj-form-item--error]=\"hasError\"\n     [class.nj-form-item--success]=\"hasSuccess\"\n     [class.nj-form-item--password]=\"isPassword\"\n     [class.nj-form-item--select]=\"isSelect\"\n     [class.nj-form-item--visible]=\"isVisible\"\n     [class.nj-form-item--textarea]=\"isMultiline\"\n     [ngClass]=\"[getFormItemSizeClass(), additionalClass]\">\n  <div class=\"nj-form-item__field-wrapper\" (click)=\"wrapperClick.emit($event)\">\n    <ng-content select=\"[njFormField]\"></ng-content>\n    <label class=\"nj-form-item__label\" [attr.for]=\"inputId\" [attr.aria-hidden]=\"isCustomSelect() ? 'true' : null\">\n      <ng-content select=\"[njFormLabel]\"></ng-content>\n      <span *ngIf=\"isRequired\" class=\"nj-form-item__required-asterisk\">*</span>\n    </label>\n    <nj-icon-button\n      *ngIf=\"isPassword\"\n      size=\"sm\"\n      variant=\"tertiary\"\n      [label]=\"passwordButtonLabel\"\n      [icon]=\"iconName || 'visibility'\"\n      (click)=\"toggleVisibility()\"\n      [ariaPressed]=\"isVisible\"\n      additionalClass=\"nj-form-item__password-button\"\n    >\n    </nj-icon-button>\n    <nj-icon class=\"nj-form-item__icon\"\n             *ngIf=\"!isPassword && !isMultiline && !hasCustomIcon && iconName\"\n             [name]=\"iconName\"\n             variant=\"inherit\"\n             (click)=\"iconClickHandler($event)\"\n             (keydown)=\"iconKeydownHandler($event)\">\n    </nj-icon>\n    <div class=\"nj-form-item__icon\" *ngIf=\"!isPassword && !isMultiline && hasCustomIcon\" [attr.tabindex]=\"isIconClickable ? 0 : null\"\n         (click)=\"iconClickHandler($event)\" (keydown)=\"iconKeydownHandler($event)\">\n      <ng-content select=\"[njFormCustomIcon]\"></ng-content>\n    </div>\n    <p *ngIf=\"isPassword\" class=\"nj-sr-only\" aria-live=\"polite\" aria-atomic=\"true\">{{ passwordNotice }}</p>\n    <ng-content select=\"[njFormAdditionalContent]\"></ng-content>\n  </div>\n  <div class=\"nj-form-item__subscript\" *ngIf=\"hasError || hasSuccess || hasHint\" [attr.id]=\"getSubscriptId()\">\n    <nj-icon *ngIf=\"hasError\" class=\"nj-form-item__subscript-icon\" name=\"warning\" size=\"inherit\" variant=\"inherit\"></nj-icon>\n    <nj-icon *ngIf=\"hasSuccess && !hasError\" class=\"nj-form-item__subscript-icon\" name=\"check\" size=\"inherit\" variant=\"inherit\"></nj-icon>\n    <ng-content select=\"[njFormSubscript]\"></ng-content>\n  </div>\n</div>\n","import {Directive, ElementRef, Input, OnChanges, SimpleChanges} from '@angular/core';\nimport {Utils} from '../../utils/utils.util';\n\n@Directive({\n  selector: '[njHighlight]',\n  standalone: true\n})\nexport class HighlightDirective implements OnChanges {\n  /**\n   * Content we want to highlight\n   */\n  @Input()\n  public content: string;\n\n  /**\n   * Text to highlight in the content\n   */\n  @Input()\n  public textToHighlight: string;\n\n  /**\n   * Whether to escape accents or no\n   */\n  @Input()\n  public escapeAccents = true;\n\n  /**\n   * Whether to take into account case or no\n   */\n  @Input()\n  public caseSensitive = false;\n\n  private readonly OPENING_TAG = '<mark class=\"nj-highlight\">';\n  private readonly CLOSING_TAG = '</mark>';\n\n  constructor(private el: ElementRef) {}\n\n  ngOnChanges(changes: SimpleChanges) {\n    this.highlightText();\n  }\n\n  private highlightText(): void {\n    if (Utils.isUndefinedOrNull(this.content) || Utils.isUndefinedOrNull(this.el?.nativeElement)) {\n      return;\n    }\n    const regexFlags = this.caseSensitive ? 'g' : 'gi';\n    let innerHtml: string;\n    if (Utils.isUndefinedOrNull(this.textToHighlight)) {\n      innerHtml = this.content;\n    } else {\n      if (this.escapeAccents) {\n        const regExp = new RegExp(Utils.normalizeString(this.textToHighlight), regexFlags);\n        const matches = Utils.normalizeString(this.content).matchAll(regExp);\n        let finalText = this.content;\n        let buffer = 0;\n        if (!Utils.isUndefinedOrNull(matches)) {\n          for (const match of matches) {\n            const updatedIndex = buffer + match.index;\n            const textBeforeOccurrence = finalText.slice(0, updatedIndex);\n            const occurrence = finalText.slice(updatedIndex, updatedIndex + this.textToHighlight.length);\n            const textAfterOccurrence = finalText.slice(updatedIndex + this.textToHighlight.length, finalText.length);\n            finalText = `${textBeforeOccurrence}${this.OPENING_TAG}${occurrence}${this.CLOSING_TAG}${textAfterOccurrence}`;\n            buffer = buffer + this.OPENING_TAG.length + this.CLOSING_TAG.length;\n          }\n        }\n        innerHtml = finalText;\n      } else {\n        const regExp = new RegExp(this.textToHighlight, regexFlags);\n        innerHtml = this.content.replace(regExp, `${this.OPENING_TAG}$&${this.CLOSING_TAG}`);\n      }\n    }\n    this.el.nativeElement.innerHTML = innerHtml;\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, Input, ViewChild, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'nj-list-group',\n  templateUrl: './list-group.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [CommonModule]\n})\nexport class ListGroupComponent {\n  /**\n   * List id attribute\n   */\n  @Input() listId?: string;\n\n  /**\n   * Whether group items are clickable\n   */\n  @Input() isClickable: boolean;\n\n  /**\n   * Whether it is a checkbox list or not\n   */\n  @Input() isCheckboxList: boolean;\n\n  /**\n   * Whether group items have borders\n   */\n  @Input() hasBorder = true;\n\n  /**\n   * Whether list is dense or not, i.e: smaller\n   */\n  @Input() isDense = false;\n\n  /**\n   * Add role=\"listbox\" and tabindex=\"-1\" to the element.\n   *\n   * Used by `nj-select` for accessibility reasons.\n   */\n  @Input() isCustomSelectList: boolean = false;\n\n  /**\n   * Accessible label for the list when using \"listbox\" role.\n   */\n  @Input() ariaLabel?: string;\n\n  /**\n   * Whether list is multi-select or not, to add necessary accessible labels\n   */\n  @Input() isMultiSelect: boolean = false;\n\n  @ViewChild('root')\n  public rootEl: ElementRef<HTMLUListElement>;\n\n  constructor(public readonly element: ElementRef<HTMLElement>) {}\n}\n","<ul\n  #root\n  class=\"nj-list-deprecated\"\n  [ngClass]=\"{\n    'nj-list-deprecated--clickable': isClickable,\n    'nj-list-deprecated--sm': isDense,\n    'nj-list-deprecated--no-border': !hasBorder,\n    'nj-list-deprecated--checkbox': isCheckboxList\n  }\"\n  [attr.id]=\"listId\"\n  [attr.role]=\"isCustomSelectList ? 'listbox' : null\"\n  [attr.aria-label]=\"ariaLabel\"\n  [attr.tabindex]=\"isCustomSelectList ? -1 : null\"\n  [attr.aria-multiselectable]=\"isMultiSelect\"\n>\n  <ng-content></ng-content>\n</ul>\n","import {CommonModule} from '@angular/common';\nimport {\n  booleanAttribute,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  Input,\n  Output,\n  ViewChild\n} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {IconComponent} from '../icon/icon.component';\nimport {CheckboxSize} from './checkbox.model';\n\n@Component({\n  selector: 'nj-checkbox',\n  templateUrl: './checkbox.component.html',\n  styleUrls: ['./checkbox.component.scss'],\n  providers: [{\n    provide: NG_VALUE_ACCESSOR,\n    useExisting: forwardRef(() => CheckboxComponent),\n    multi: true\n  }],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [IconComponent, CommonModule]\n})\nexport class CheckboxComponent implements ControlValueAccessor {\n  private readonly checkboxClassName = 'nj-checkbox';\n\n  private _checked: boolean;\n\n  /**\n   * Input id\n   */\n  @Input() inputId: string;\n\n  /**\n   * Input name\n   */\n  @Input() name: string;\n\n  /**\n   * Whether input is required or not\n   */\n  @Input() isRequired?: boolean;\n\n  /**\n   * Whether the checkbox is checked or not\n   */\n  @Input()\n  set isChecked(value: boolean) {\n    this._checked = value;\n    this.cdr.markForCheck();\n  }\n\n  get isChecked(): boolean {\n    return this._checked;\n  }\n\n  /**\n   * Checkbox size\n   */\n  @Input() size?: CheckboxSize = 'md';\n\n  /**\n   * Input value\n   */\n  @Input() value?: string;\n\n  /**\n   * Whether the checkbox is disabled or not\n   */\n  @Input() isDisabled?: boolean;\n\n  /**\n   * Whether the checkbox is in error state\n   */\n  @Input() hasError?: boolean;\n\n  /**\n   * Whether the checkbox is in success state\n   */\n  @Input() hasSuccess?: boolean;\n\n  /**\n   * Message to display as hint below checkbox\n   */\n  @Input() subscriptMessage?: string;\n\n  /**\n   * @Deprecated\n   * Message to display if checkbox is in error state\n   */\n  @Input() errorMessage?: string;\n\n  /**\n   * Aria label, for accessibility reasons\n   */\n  @Input() ariaLabel?: string;\n\n  /**\n   * Aria labelled by, for accessibility reasons\n   */\n  @Input() ariaLabelledby?: string;\n\n  /**\n   * Whether checkbox is only presentational and state handled by a parent, can be useful for lists of checkboxes.\n   * When set to `true`, the checkbox won't have any interaction.\n   */\n  @Input() isPresentational? = false;\n\n  /**\n   * Whether the checkbox is in indeterminate state or not.\n   */\n  @Input({transform: booleanAttribute}) indeterminate: boolean;\n\n  /**\n   * Output that emits checked value on change only\n   */\n  @Output() valueChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n  @ViewChild('input')\n  private _inputElement: ElementRef<HTMLInputElement>;\n\n  constructor(private cdr: ChangeDetectorRef) {\n  }\n\n  /**\n   * @ignore\n   */\n  private _onChange = (_: any): void => {\n  };\n\n  /**\n   * @ignore\n   */\n  private _onTouched = (): void => {\n  };\n\n  /**\n   * @ignore\n   */\n  _onChangeEvent(event: Event) {\n    event.stopPropagation();\n    if (this._inputElement?.nativeElement) {\n      this.isChecked = this._inputElement.nativeElement.checked;\n      this._onChange(this.isChecked);\n      this.valueChange.emit(this.isChecked);\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  _onInputClick(event: Event) {\n    // We have to stop propagation for click events on the visually hidden input element.\n    // By default, when a user clicks on a label element, a generated click event will be\n    // dispatched on the associated input element. Since we are using a label element as our\n    // root container, the click event on the `slide-toggle` will be executed twice.\n    // The real click event will bubble up, and the generated click event also tries to bubble up.\n    // This will lead to multiple click events.\n    // Preventing bubbling for the second event will solve that issue.\n    event.stopPropagation();\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  writeValue(value: any): void {\n    this.isChecked = !!value;\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  registerOnChange(fn: any): void {\n    this._onChange = fn;\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  registerOnTouched(fn: any): void {\n    this._onTouched = fn;\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  setDisabledState(isDisabled: boolean): void {\n    this.isDisabled = isDisabled;\n    this.cdr.markForCheck();\n  }\n\n  /**\n   * @ignore\n   */\n  getSubscriptId(): string {\n    return `${this.inputId}-hint`;\n  }\n\n  private get checkboxSizeClass(): string {\n    return this.size !== 'md' ? `${this.checkboxClassName}--${this.size}` : '';\n  }\n\n  protected get checkboxClasses() {\n    return {\n      'nj-checkbox--error': this.hasError,\n      'nj-checkbox--success': this.hasSuccess,\n      [this.checkboxSizeClass]: true\n    };\n  }\n}\n","<div class=\"nj-checkbox\"\n     [ngClass]=\"checkboxClasses\"\n     [attr.inert]=\"isPresentational ? 'true' : null\">\n  <label [attr.for]=\"inputId\">\n    <input\n      type=\"checkbox\"\n      #input\n      [indeterminate]=\"indeterminate\"\n      [required]=\"isRequired\"\n      [checked]=\"isChecked\"\n      [disabled]=\"isDisabled\"\n      [attr.id]=\"inputId\"\n      [attr.name]=\"name\"\n      [attr.aria-label]=\"ariaLabel\"\n      [attr.aria-labelledby]=\"ariaLabelledby\"\n      [attr.aria-invalid]=\"hasError ? 'true' : null\"\n      [attr.aria-describedby]=\"subscriptMessage || errorMessage ? getSubscriptId() : null\"\n      (change)=\"_onChangeEvent($event)\"\n      (click)=\"_onInputClick($event)\">\n    <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n  </label>\n  <div *ngIf=\"subscriptMessage || errorMessage\" class=\"nj-checkbox__subscript\" [attr.id]=\"getSubscriptId()\">\n    <nj-icon *ngIf=\"hasError\" variant=\"inherit\" name=\"warning\" size=\"sm\"></nj-icon>\n    <nj-icon *ngIf=\"hasSuccess && !hasError\" variant=\"inherit\" name=\"check\" size=\"sm\"></nj-icon>\n    {{errorMessage ? errorMessage : subscriptMessage}}\n  </div>\n</div>\n\n<ng-template #content>\n  <span class=\"nj-checkbox__label\">\n    <ng-content></ng-content>\n    <span *ngIf=\"isRequired\" aria-hidden=\"true\" class=\"nj-checkbox__required\">\n      *\n    </span>\n  </span>\n</ng-template>\n","import {CommonModule} from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  HostBinding,\n  HostListener,\n  inject,\n  Input,\n  Output,\n  ViewEncapsulation,\n} from '@angular/core';\nimport {CheckboxComponent} from '../checkbox/checkbox.component';\nimport {IconComponent} from '../icon/icon.component';\n\nimport {TListItemType} from './list-item.model';\n\n@Component({\n  /* eslint-disable-next-line @angular-eslint/component-selector */\n  selector: '[nj-list-item]',\n  templateUrl: './list-item.component.html',\n  styleUrls: ['./list-item.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [IconComponent, CheckboxComponent, CommonModule]\n})\nexport class ListItemComponent {\n\n  private readonly cdr = inject(ChangeDetectorRef);\n\n  /**\n   * @ignore\n   */\n  @HostBinding('class')\n  get className() {\n    return 'nj-list-deprecated__item';\n  }\n\n  /**\n   * Whether item is active or not\n   */\n  @HostBinding('class.nj-list-deprecated__item--active')\n  @Input()\n  isActive: boolean;\n\n  /**\n   * Whether item is disabled or not\n   */\n  @HostBinding('class.nj-list-deprecated__item--disabled')\n  @Input()\n  isDisabled: boolean;\n\n  /**\n   * @ignore\n   */\n  @HostBinding('class.nj-list-deprecated__item--clickable')\n  get isClickable() {\n    const hasRoleOption = this.role === 'option';\n    return this.hasClickableChildren || hasRoleOption;\n  }\n\n  /**\n   * Whether the border should be on the right\n   */\n  @HostBinding('class.nj-list-deprecated__item--right-border')\n  @Input()\n  hasRightBorder = false;\n\n  /** Override aria role if required. */\n  @HostBinding('attr.role')\n  @Input()\n  role?: string;\n\n  /**\n   * @ignore\n   */\n  @HostBinding('attr.tabindex')\n  get getTabindex() {\n    return this.role === 'option' ? -1 : null;\n  }\n\n  @HostBinding('attr.aria-selected')\n  @Input()\n  ariaSelected: boolean = null;\n\n  /**\n   * Name of the icon\n   */\n  @Input() iconName: string;\n\n  /**\n   * Aria label of the icon\n   */\n  @Input() iconAriaLabel: string;\n\n  /**\n   * List item type <br>\n   * `list` -> `<li>...</li>` <br>\n   * `link` -> `<li><a>...</a></li>` <br>\n   * `button` -> `<li><button>...</button></li>`\n   *\n   * @default \"list\"\n   */\n  @Input() type?: TListItemType;\n\n  /**\n   * List item href when `type` is `link`\n   */\n  @Input() href?: string;\n\n  /**\n   * List item attribute value\n   */\n  @Input() value: string;\n\n  /**\n   * Whether content should be in a checkbox\n   */\n  @Input() isCheckboxContent: boolean = false;\n\n  /**\n   * Whether only icon should be displayed\n   */\n  @Input() isIconOnly: boolean = false;\n\n  /**\n   * Checkbox id if `isCheckboxContent` is set to `true`\n   */\n  @Input() checkboxContentId: string;\n\n  /**\n   * Emits an event on item click\n   */\n  @Output() itemClick = new EventEmitter<MouseEvent>();\n\n  /**\n   * @ignore\n   */\n  @HostListener('click', ['$event']) onMouseClick(event: MouseEvent) {\n    // Ignore the event if the list item is a button or a link, the click event is bound to\n    // the wrapped <button> or <a>\n    if (!this.hasClickableChildren) {\n      this.itemClick.emit(event);\n    }\n  }\n\n  constructor(public readonly el: ElementRef<HTMLElement>) {\n  }\n\n  /**\n   * Get value of item, returns value if set else returns textContent of item.\n   * Used in `<nj-select>` component\n   */\n  getValue(): string {\n    return this.value ?? this.getLabel();\n  }\n\n  /**\n   * Get label of item, returns textContent of item.\n   * Used in `<nj-select>` component\n   */\n  getLabel(): string {\n    return this.el?.nativeElement?.textContent;\n  }\n\n  /**\n   * @ignore\n   */\n  updateSelected(isSelected: boolean) {\n    this.ariaSelected = isSelected;\n    this.isActive = isSelected;\n    this.cdr.markForCheck();\n  }\n\n  /**\n   * @ignore\n   */\n  get hasClickableChildren() {\n    return this.type === 'button' || this.type === 'link';\n  }\n}\n","<ng-template #itemContent>\n  <nj-icon\n    *ngIf=\"iconName\"\n    [name]=\"iconName\"\n    [ariaLabel]=\"iconAriaLabel\"\n    class=\"nj-list-deprecated__item-icon\">\n  </nj-icon>\n  <ng-container *ngIf=\"!isIconOnly\" [ngTemplateOutlet]=\"isCheckboxContent ? checkboxContent : brutContent\"></ng-container>\n  <div *ngIf=\"!isIconOnly\" class=\"nj-list-deprecated__item-right-content\">\n    <ng-content select=\"[njListItemRightContent]\"></ng-content>\n  </div>\n</ng-template>\n\n<button *ngIf=\"type === 'button'\" type=\"button\" (click)=\"itemClick.emit($event)\">\n  <ng-container [ngTemplateOutlet]=\"itemContent\"></ng-container>\n</button>\n\n<a *ngIf=\"type === 'link'\" (click)=\"itemClick.emit($event)\" [attr.href]=\"href\">\n  <ng-container [ngTemplateOutlet]=\"itemContent\"></ng-container>\n</a>\n\n<ng-container\n  *ngIf=\"!type || type === 'list'\"\n  [ngTemplateOutlet]=\"itemContent\"\n></ng-container>\n\n<ng-template #checkboxContent>\n  <nj-checkbox [isChecked]=\"isActive\" [inputId]=\"checkboxContentId\" [isPresentational]=\"true\">\n    <ng-container [ngTemplateOutlet]=\"brutContent\"></ng-container>\n  </nj-checkbox>\n</ng-template>\n\n<ng-template #brutContent>\n  <ng-content></ng-content>\n</ng-template>\n","import { CommonModule, DOCUMENT } from '@angular/common';\nimport {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChild,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  Inject,\n  Input,\n  OnDestroy,\n  Output,\n  QueryList,\n  Renderer2,\n  TemplateRef,\n  ViewChild,\n  ViewChildren,\n  ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { selectAnimations } from '../../shared/animations';\nimport { Utils } from '../../utils/utils.util';\nimport { FormFieldDirective } from '../form-field/form-field.directive';\nimport { FormItemComponent } from '../form-item/form-item.component';\nimport { HighlightDirective } from '../highlight/highlight.directive';\nimport { ListGroupComponent } from '../list-group/list-group.component';\nimport { ListItemComponent } from '../list-item/list-item.component';\nimport { AutocompleteOption } from './autocomplete.model';\n\n@Component({\n  selector: 'nj-autocomplete',\n  templateUrl: './autocomplete.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => AutocompleteComponent),\n      multi: true\n    }\n  ],\n  animations: [selectAnimations.transformList],\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [\n    ListGroupComponent,\n    ListItemComponent,\n    FormItemComponent,\n    FormFieldDirective,\n    HighlightDirective,\n    CommonModule\n  ]\n})\nexport class AutocompleteComponent\n  extends FormItemComponent\n  implements ControlValueAccessor, AfterContentInit, OnDestroy\n{\n  private readonly INPUT_BORDER_IN_PX = 3;\n  private readonly LIST_OFFSET_IN_PX = 4;\n  /**\n   * @ignore\n   */\n  private unsubscribe = new Subject<void>();\n\n  /**\n   * @ignore\n   */\n  private _parentElement: HTMLElement;\n\n  /**\n   * @ignore\n   */\n  private _onChange = (_: any): void => {};\n\n  /**\n   * @ignore\n   */\n  protected _onTouched = (): void => {};\n\n  /**\n   * @ignore\n   */\n  private clickListenerDisposeFct: Function;\n\n  /**\n   * @ignore\n   */\n  private scrollListenerDisposeFct: Function;\n\n  /**\n   * Bandaid hack to prevent a weird focusout event bug happening when\n   * `appendTo` is set and an item is selected. For *some* reason, the focusout\n   * event is triggered multiple times when opening the list, which causes\n   * unexpected behavior.\n   *\n   * This variable allows to temporarily \"disables\" the `handleFocusout` handler.\n   *\n   * FIXME: Find an actual solution to this problem instead of a bandaid hack.\n   * @ignore\n   */\n  private ignoreFocusout = false;\n\n  /**\n   * @ignore\n   */\n  isOpen = false;\n\n  /**\n   * @ignore\n   */\n  isFiltered = false;\n\n  /**\n   * @ignore\n   */\n  selectedValue: AutocompleteOption;\n\n  /**\n   * @ignore\n   */\n  filteredData: AutocompleteOption[];\n\n  /**\n   * Input search text\n   * @ignore\n   */\n  searchText: string;\n\n  /**\n   * Index of currently selected suggestion. -1 if no suggestion is currently selected\n   * @ignore\n   */\n  focusIndex: number = -1;\n\n  protected activeIndex = -1;\n\n  /**\n   * Id of currently selected item. Null if no suggestion is currently selected\n   * @ignore\n   */\n  protected focusedItemId: string | null = null;\n\n  /**\n   * Live zone content. It will be announced by assistive technologies everytime it is changed.\n   * @ignore\n   */\n  liveZoneContent = '';\n\n  /**\n   * Dropdown icon name\n   */\n  @Input()\n  iconName = 'keyboard_arrow_down';\n\n  /**\n   * Whether to show number of results or no\n   */\n  @Input()\n  showNumberOfResults = true;\n\n  /**\n   * No results message to display\n   */\n  @Input()\n  noResultMessage = 'No Results';\n\n  /**\n   * Result message, formatted like `{numberOfResults} {resultsNumberMessage}`\n   */\n  @Input()\n  resultsNumberMessage = 'results';\n\n  /**\n   * Whether to show number of results or no\n   */\n  @Input()\n  showNoResultsMessage = true;\n\n  /**\n   * Limit of results to show on search\n   */\n  @Input()\n  searchLimit?: number;\n\n  /**\n   * Selector that points to dom node where the list should be rendered\n   */\n  @Input()\n  appendTo: string;\n\n  /**\n   * Track by Function\n   */\n  @Input()\n  trackByFn: (index: number, option: AutocompleteOption) => any;\n\n  /**\n   * @ignore\n   */\n  _data: AutocompleteOption[];\n\n  /**\n   * Autocomplete data\n   */\n  @Input() set data(value: AutocompleteOption[]) {\n    this._data = value;\n    this.updateList();\n  }\n\n  get data(): AutocompleteOption[] {\n    return this._data;\n  }\n\n  /**\n   * Suggestion list text alternative for assistive technologies.\n   */\n  @Input() listLabel: string;\n\n  /**\n   * Instructions on how to navigate the list. It is append after the input label.\n   * @example \"Use the UP / DOWN arrows to navigate within the suggestion list. Press Enter to select an option. On touch devices, use swipe to navigate and double tap to select an option\"\n   */\n  @Input() inputInstructions: string;\n\n  /**\n   * Emits value of searched value on input type\n   */\n  @Output()\n  search: EventEmitter<string> = new EventEmitter<string>();\n\n  /**\n   * @ignore\n   */\n  @ViewChild('input') inputRef: ElementRef;\n\n  /**\n   * @ignore\n   */\n  @ViewChild('optionsList', { read: ElementRef }) optionsList: ElementRef;\n\n  /**\n   * Option items\n   * @ignore\n   */\n  @ViewChildren(ListItemComponent)\n  selectOptions: QueryList<ListItemComponent>;\n\n  /**\n   * @ignore\n   */\n  @ContentChild('njAutocompleteOptionLabel', { read: TemplateRef })\n  optionLabelTemplate: TemplateRef<any>;\n\n  /**\n   * @ignore\n   */\n  @ContentChild('njAutocompleteSearchResults', { read: TemplateRef })\n  searchResultsTemplate: TemplateRef<any>;\n\n  /**\n   * @ignore\n   */\n  @ContentChild('njAutocompleteNoResult', { read: TemplateRef })\n  noResultTemplate: TemplateRef<any>;\n\n  constructor(\n    private renderer: Renderer2,\n    private elementRef: ElementRef<HTMLElement>,\n    private cdr: ChangeDetectorRef,\n    @Inject(DOCUMENT) private _document\n  ) {\n    super();\n    this.initScrollListener();\n  }\n\n  /**\n   * @ignore\n   */\n  ngAfterContentInit() {\n    super.ngAfterContentInit();\n  }\n\n  /**\n   * @ignore\n   */\n  ngOnDestroy() {\n    this.unsubscribe.next();\n    this.unsubscribe.complete();\n    this.clickListenerDisposeFct?.();\n    this.scrollListenerDisposeFct?.();\n    if (this.appendTo) {\n      this.removeAppendedElementFromParent();\n    }\n  }\n\n  /**\n   * Content of hint item and hidden.\n   * @ignore\n   */\n  private createResultsMessageContent() {\n    const elements = this.filteredData;\n\n    if (elements.length === 0) {\n      return this.noResultMessage;\n    }\n\n    return `${elements.length} ${this.resultsNumberMessage}`;\n  }\n\n  /**\n   * Update displayed suggestions and update live zone\n   * @private\n   */\n  private updateList(): void {\n    if (!this.isFiltered || !this.searchText || Utils.isUndefinedOrNull(this._data)) {\n      this.filteredData = this._data;\n    } else {\n      this.filteredData = this._data\n        .filter((option) => Utils.normalizeAndSearchInText(option?.label, this.searchText))\n        .slice(0, this.searchLimit);\n    }\n\n    this.liveZoneContent = this.createResultsMessageContent();\n    this.processActiveOption();\n  }\n\n  private processActiveOption() {\n    this.activeIndex = this.filteredData.findIndex((item) => item.label === this.searchText);\n  }\n\n  get interactedItemIndex() {\n    if (this.focusIndex !== -1) {\n      return this.focusIndex;\n    }\n    return this.activeIndex !== -1 ? this.activeIndex : 0;\n  }\n\n  private scrollOnListOpening() {\n    const element = this.selectOptions?.get(this.interactedItemIndex)?.el?.nativeElement;\n    element.scrollIntoView({ block: 'nearest' });\n  }\n\n  private appendAndComputeListPosition() {\n    if (!this.appendTo || !this.optionsList?.nativeElement) {\n      return;\n    }\n    const focusedEl = document.activeElement as HTMLElement;\n\n    this._parentElement = this._document.querySelector(this.appendTo);\n    this.computeListPosition();\n    this._parentElement.appendChild(this.optionsList.nativeElement);\n\n    // The appendChild() call above might remove the focus from the currently\n    // selected element so we restore the focus to where it was before the append.\n    focusedEl?.focus();\n  }\n\n  /**\n   * @private\n   */\n  private computeListPosition() {\n    if (this.optionsList?.nativeElement && this.inputRef?.nativeElement) {\n      const inputBoundingRect = this.inputRef?.nativeElement?.getBoundingClientRect();\n      if (inputBoundingRect) {\n        this.optionsList.nativeElement.style = `\n          position: fixed;\n          left: ${inputBoundingRect.left - this.LIST_OFFSET_IN_PX}px;\n          top: ${inputBoundingRect.top + inputBoundingRect.height + this.LIST_OFFSET_IN_PX + this.INPUT_BORDER_IN_PX}px;\n          min-width: ${inputBoundingRect.width + this.LIST_OFFSET_IN_PX * 2}px;\n          transform: scaleY(1);\n          opacity: 1;\n        `;\n      }\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  private removeAppendedElementFromParent() {\n    if (this.optionsList?.nativeElement) {\n      this.renderer.removeChild(this._parentElement, this.optionsList.nativeElement);\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  private initScrollListener() {\n    this.scrollListenerDisposeFct = this.renderer.listen('window', 'scroll', (_: Event) => {\n      if (this.appendTo && this.isOpen) {\n        this.computeListPosition();\n      }\n    });\n  }\n\n  /**\n   * @ignore\n   */\n  getAdditionalClass(): string {\n    return `nj-form-item--select nj-form-item--autocomplete${this.isOpen ? ' nj-form-item--open' : ''}`;\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  registerOnChange(fn: any): void {\n    this._onChange = fn;\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  registerOnTouched(fn: any): void {\n    this._onTouched = fn;\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  setDisabledState(isDisabled: boolean): void {\n    if (!this.inputRef) {\n      return;\n    }\n    this.isDisabled = isDisabled;\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  writeValue(value: AutocompleteOption): void {\n    this.selectedValue = value;\n    this.searchText = value?.label ?? '';\n    if (this.inputRef) {\n      this.inputRef.nativeElement.value = value?.label ?? '';\n    }\n    this.cdr.markForCheck();\n  }\n\n  /** Open the suggestion list. */\n  openList() {\n    this.updateList();\n    this.isOpen = true;\n    this.ignoreFocusout = true;\n\n    setTimeout(() => {\n      this.scrollOnListOpening();\n\n      if (this.appendTo) {\n        this.appendAndComputeListPosition();\n      }\n\n      this.ignoreFocusout = false;\n    });\n  }\n\n  /** Close the suggestion list. */\n  closeList() {\n    this.isOpen = false;\n    this.focusIndex = -1;\n    this.activeIndex = -1;\n    if (this.appendTo) {\n      this.removeAppendedElementFromParent();\n    }\n    this.cdr.markForCheck();\n  }\n\n  /**\n   * Toggle the suggestion list.\n   * @ignore\n   */\n  handleInputClick() {\n    if (this.isOpen) {\n      this.closeList();\n    } else {\n      this.isFiltered = false;\n      this.openList();\n    }\n  }\n\n  /**\n   * Handle input change and save searchText\n   * @ignore\n   */\n  handleInputEvent(event: InputEvent): void {\n    if (event?.data === '') {\n      return;\n    }\n\n    this.searchText = (event?.target as HTMLInputElement)?.value;\n    this.search.emit(this.searchText);\n\n    const matchingOption = this._data.find((option) => option.label === this.searchText);\n\n    if (matchingOption) {\n      this.selectItem(matchingOption);\n    } else {\n      this.updateList();\n      setTimeout(() => {\n        if (this.filteredData.length) {\n          this.focusIndex = 0;\n\n          this.focusFocusedOption();\n        }\n      });\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  getItemId(index: number) {\n    return `${this.inputId}-item-${index}`;\n  }\n\n  /**\n   * @ignore\n   */\n  getListId(): string {\n    return `${this.inputId}-list`;\n  }\n\n  /**\n   * @ignore\n   */\n  getInstructionsId(): string {\n    return `${this.inputId}-instructions`;\n  }\n\n  /**\n   * @ignore\n   */\n  private focusFocusedOption() {\n    const element = this.selectOptions?.get(this.focusIndex)?.el?.nativeElement;\n    this.focusedItemId = element?.id;\n    element.scrollIntoView({ block: 'nearest' });\n  }\n\n  /**\n   * @ignore\n   */\n  private selectNextOption() {\n    if (this.filteredData.length) {\n      if (this.focusIndex !== -1) {\n        const nextIndex = (this.focusIndex + 1) % this.filteredData.length;\n        this.focusIndex = nextIndex;\n      } else {\n        this.focusIndex = this.interactedItemIndex;\n      }\n\n      this.focusFocusedOption();\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  private selectPreviousOption() {\n    if (this.filteredData.length) {\n      const previousIndex = this.focusIndex === 0 ? this.filteredData.length - 1 : this.focusIndex - 1;\n      this.focusIndex = previousIndex;\n      this.focusFocusedOption();\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  private unselectOption() {\n    this.focusIndex = -1;\n    this.focusedItemId = null;\n  }\n\n  /**\n   * @ignore\n   */\n  handleKeydownEvent(e: KeyboardEvent) {\n    if (e.key === 'Tab') {\n      // Ignore Tab key to not mess up with focusout event handler\n      return;\n    }\n\n    switch (e.key) {\n      case 'ArrowDown':\n        e.preventDefault();\n        if (!this.isOpen) {\n          this.isFiltered = false;\n          this.openList();\n          this.focusIndex = this.interactedItemIndex;\n          this.focusFocusedOption();\n        } else {\n          this.selectNextOption();\n        }\n        break;\n      case 'ArrowUp':\n        e.preventDefault();\n        if (!this.isOpen) {\n          this.isFiltered = false;\n          this.openList();\n        }\n        this.focusIndex = this.interactedItemIndex;\n        this.selectPreviousOption();\n        break;\n      case 'Escape':\n        e.preventDefault();\n        if (this.isOpen) {\n          this.closeList();\n        }\n        break;\n      case 'Enter':\n        if (this.isOpen && this.focusIndex !== -1) {\n          this.selectItem(this.filteredData[this.focusIndex]);\n        }\n        break;\n      default:\n        // Ignore non-character keys and shortcut combinations\n        const keyIsPrintable = (e.key.length === 1 || e.key === 'Backspace') && !e.metaKey && !e.altKey && !e.ctrlKey;\n        if (keyIsPrintable) {\n          this.isFiltered = true;\n          this.unselectOption();\n\n          if (!this.isOpen) {\n            this.openList();\n          }\n\n          setTimeout(() => {\n            const matchingOption = this.getMatchinOption();\n            this._onChange(matchingOption);\n            this.cdr.markForCheck();\n          });\n        }\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  private getMatchinOption() {\n    const filteredData = this._data?.filter((option) => this.searchText === option.label);\n    return filteredData?.[0];\n  }\n\n  /**\n   * @ignore\n   */\n  selectItem(option: AutocompleteOption) {\n    this.closeList();\n    if (this.inputRef) {\n      this.inputRef.nativeElement.value = option.label;\n    }\n    this.searchText = option.label;\n    this.selectedValue = option;\n    this.unselectOption();\n\n    this._onChange(option);\n    this.cdr.markForCheck();\n  }\n\n  /**\n   * Closes the suggestion list if the focus is moved outside of the autocomplete.\n   * @ignore\n   */\n  handleFocusout(e: FocusEvent) {\n    if (this.ignoreFocusout) {\n      return;\n    }\n\n    if (\n      !this.elementRef?.nativeElement.contains(e.relatedTarget as Node) &&\n      !this.optionsList?.nativeElement.contains(e.relatedTarget as Node)\n    ) {\n      this.closeList();\n    }\n  }\n\n  /**\n   * @ignore\n   * @param index\n   * @param option\n   */\n  trackByOption(index: number, option: AutocompleteOption) {\n    if (this.trackByFn) {\n      return this.trackByFn(index, option);\n    }\n    return option;\n  }\n}\n","<nj-form-item\n  [hasError]=\"hasError\"\n  [hasSuccess]=\"hasSuccess\"\n  [hasHint]=\"hasHint\"\n  [isDisabled]=\"isDisabled\"\n  [hasCustomIcon]=\"hasCustomIcon\"\n  [isFloatingLabel]=\"isFloatingLabel\"\n  [iconName]=\"iconName\"\n  [isSelect]=\"true\"\n  [additionalClass]=\"getAdditionalClass()\"\n  [inputId]=\"inputId\"\n  [size]=\"size\"\n  (keydown)=\"handleKeydownEvent($event)\"\n  (focusout)=\"handleFocusout($event)\"\n>\n  <input\n    #input\n    type=\"text\"\n    (input)=\"handleInputEvent($event)\"\n    (focus)=\"_onTouched?.()\"\n    [value]=\"selectedValue?.label\"\n    [attr.id]=\"inputId\"\n    [disabled]=\"isDisabled\"\n    autocomplete=\"off\"\n    njFormField\n    role=\"combobox\"\n    aria-autocomplete=\"list\"\n    [attr.aria-activedescendant]=\"focusedItemId\"\n    [attr.aria-controls]=\"getListId()\"\n    [attr.aria-expanded]=\"isOpen\"\n    [attr.aria-describedby]=\"getInstructionsId()\"\n    (click)=\"handleInputClick()\"\n  />\n\n  <ng-content njFormLabel select=\"[njFormLabel]\"></ng-content>\n\n  <ng-content njFormSubscript select=\"[njFormSubscript]\"></ng-content>\n\n  <ng-container njFormAdditionalContent>\n    <div class=\"nj-sr-only\" aria-live=\"polite\" aria-atomic=\"true\">\n      <p>{{ liveZoneContent }}</p>\n    </div>\n\n    <p [id]=\"getInstructionsId()\" hidden>{{ inputInstructions }}</p>\n\n    <nj-list-group\n      [@transformList]=\"isOpen ? 'open': 'void'\"\n      *ngIf=\"isOpen\"\n      class=\"nj-form-item__list nj-form-item__list--no-animate\"\n      [ngClass]=\"{ 'nj-form-item__list--appended': appendTo }\"\n      [isDense]=\"true\"\n      [hasBorder]=\"false\"\n      [isClickable]=\"true\"\n      [listId]=\"getListId()\"\n      isCustomSelectList\n      [ariaLabel]=\"listLabel\"\n      #optionsList\n      (keydown)=\"appendTo ? handleKeydownEvent($event) : null\"\n      (focusout)=\"appendTo ? handleFocusout($event) : null\"\n    >\n      <ng-content select=\"[njAutocompleteAdditional]\"> </ng-content>\n\n      <!-- Number of suggestions  -->\n      <ng-container\n        *ngIf=\"isFiltered && showNumberOfResults && filteredData?.length\"\n      >\n        <ng-container\n          [ngTemplateOutlet]=\"\n            searchResultsTemplate ? searchResultsTemplate : defaultSearchResults\n          \"\n          [ngTemplateOutletContext]=\"{\n            numberOfFilteredData: filteredData.length\n          }\"\n        ></ng-container>\n      </ng-container>\n\n      <!-- No suggestions -->\n      <ng-container\n        *ngIf=\"isFiltered && showNoResultsMessage && !filteredData?.length\"\n      >\n        <ng-container\n          [ngTemplateOutlet]=\"\n            noResultTemplate ? noResultTemplate : defaultNoResults\n          \"\n        ></ng-container>\n      </ng-container>\n\n      <!-- Suggestion items -->\n      <ng-container *ngIf=\"filteredData\">\n        <li\n          nj-list-item\n          *ngFor=\"\n            let option of filteredData;\n            index as i;\n            trackBy: trackByOption\n          \"\n          [isActive]=\"i === activeIndex\"\n          [ariaSelected]=\"i === focusIndex\"\n          role=\"option\"\n          tabindex=\"-1\"\n          [id]=\"getItemId(i)\"\n          #item\n          (itemClick)=\"selectItem(option)\"\n        >\n          <ng-container\n            [ngTemplateOutlet]=\"\n              optionLabelTemplate ? optionLabelTemplate : defaultLabel\n            \"\n            [ngTemplateOutletContext]=\"{ option: option }\"\n          ></ng-container>\n        </li>\n      </ng-container>\n    </nj-list-group>\n  </ng-container>\n</nj-form-item>\n\n<ng-template #defaultLabel let-option=\"option\">\n  <span\n    *ngIf=\"isFiltered\"\n    njHighlight\n    [content]=\"option?.label\"\n    [textToHighlight]=\"searchText\"\n  ></span>\n  <span *ngIf=\"!isFiltered\">{{ option?.label }}</span>\n</ng-template>\n\n<ng-template\n  #defaultSearchResults\n  let-numberOfFilteredData=\"numberOfFilteredData\"\n>\n  <p class=\"nj-form-item__list-item-hint\" aria-hidden=\"true\">\n    {{ numberOfFilteredData }} {{ resultsNumberMessage }}\n  </p>\n</ng-template>\n\n<ng-template #defaultNoResults>\n  <p class=\"nj-form-item__list-item-hint\" aria-hidden=\"true\">\n    {{ noResultMessage }}\n  </p>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ContentChild, Input } from '@angular/core';\nimport { CustomIconDirective } from '../../directives/custom-icon.directive';\nimport { Utils } from '../../utils/utils.util';\nimport { IconComponent } from '../icon/icon.component';\nimport { BadgeEmphasis, BadgeSize, BadgeVariant } from './badge.model';\n\n@Component({\n  selector: 'nj-badge',\n  templateUrl: './badge.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [CommonModule, IconComponent]\n})\nexport class BadgeComponent {\n  private badgeClassName = 'nj-badge';\n\n  /**\n   * Badge emphasis\n   *\n   * @default `bold`\n   */\n  @Input() emphasis?: BadgeEmphasis;\n\n  /**\n   * Badge variant\n   *\n   * @default `neutral`\n   */\n  @Input() variant?: BadgeVariant;\n\n  /**\n   * Badge size\n   *\n   * @default `md`\n   */\n  @Input() size?: BadgeSize;\n\n  /**\n   * Material icon name\n   */\n  @Input() iconName?: string;\n\n  /**\n   * Badge value\n   * (when value is a string, you can pass it directly as ng-content)\n   */\n  @Input() value?: string | number;\n\n  /**\n   * When value is a number, you can pass a capedValue, so the displayed value will be `${capedValue}+`\n   */\n  @Input() capedValue?: number;\n\n  /**\n   * Badge value\n   */\n  @Input() isUppercase?: boolean;\n\n  /**\n   * Screen reader only unit label.\n   *\n   * @example\n   * // read as \"12 notifications\"\n   * <nj-badge unitLabel=\"notifications\">12</NJBadge>\n   */\n  @Input() unitLabel?: string;\n\n  @ContentChild(CustomIconDirective) protected customIcon?: CustomIconDirective;\n\n  protected isValueDefined(): boolean {\n    return !Utils.isUndefinedOrNull(this.value);\n  }\n\n  protected getFormattedValue(): string {\n    if (typeof this.value === 'string') {\n      return this.value;\n    }\n\n    let formattedValue = `${this.value}`;\n    if (!Utils.isUndefinedOrNull(this.capedValue) && this.value > this.capedValue) {\n      if (this.capedValue <= 0) {\n        formattedValue = '0+';\n      } else {\n        formattedValue = `${this.capedValue}+`;\n      }\n    }\n    return formattedValue;\n  }\n\n  protected getBadgeEmphasisClass(): string {\n    if (!this.emphasis || this.emphasis === 'bold') {\n      return '';\n    }\n    return `${this.badgeClassName}--${this.emphasis}`;\n  }\n\n  protected getBadgeVariantClass(): string {\n    if (!this.variant || this.variant === 'neutral') {\n      return '';\n    }\n    return `${this.badgeClassName}--${this.variant}`;\n  }\n\n  protected getBadgeSizeClass(): string {\n    if (!this.size || this.size === 'md') {\n      return '';\n    }\n    return `${this.badgeClassName}--${this.size}`;\n  }\n\n  protected getBadgeUppercaseClass(): string {\n    if (!this.isUppercase) {\n      return '';\n    }\n    return `${this.badgeClassName}--uppercase`;\n  }\n}\n","<p class=\"nj-badge\"\n   [ngClass]=\"[getBadgeEmphasisClass(), getBadgeVariantClass(), getBadgeSizeClass(), getBadgeUppercaseClass()]\">\n  <span class=\"nj-badge__icon\" *ngIf=\"customIcon?.templateRef || iconName\">\n    <ng-container *ngIf=\"customIcon?.templateRef as iconTemplateRef; else icon\" [ngTemplateOutlet]=\"iconTemplateRef\"></ng-container>\n    <ng-template #icon>\n      <nj-icon [name]=\"iconName\" variant=\"inherit\" size=\"inherit\"></nj-icon>\n    </ng-template>\n  </span>\n  <span>\n      <ng-container *ngIf=\"!isValueDefined()\">\n        <ng-content></ng-content>\n      </ng-container>\n      <ng-container *ngIf=\"isValueDefined()\">\n        {{ getFormattedValue() }}\n      </ng-container>\n    </span>\n  <span *ngIf=\"unitLabel\" class=\"nj-sr-only\">{{ unitLabel }}</span>\n</p>\n","import {animate, AnimationTriggerMetadata, state, style, transition, trigger} from '@angular/animations';\nimport {njSemanticMotionEasingLinearOutSlowIn} from '@engie-group/fluid-design-tokens';\n\nexport const defaultParams = {\n  params: {enterAnimationDuration: '150ms'},\n};\n\nexport const tooltipAnimation: {\n  readonly tooltip: AnimationTriggerMetadata;\n} = {\n  tooltip: trigger('tooltip', [\n    state('void', style({opacity: 0, transform: 'scale3d(0, 0, 1)'})),\n    state('*', style({opacity: 1, transform: 'scale3d(1, 1, 1)'})),\n    transition(\n      ':enter',\n      animate(`{{enterAnimationDuration}} ${njSemanticMotionEasingLinearOutSlowIn}`),\n      defaultParams,\n    ),\n  ]),\n};\n","import {CommonModule} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, Input, TemplateRef} from '@angular/core';\nimport {tooltipAnimation} from './tooltip.animations';\nimport {TooltipArrowPlacement, TooltipPlacement} from './tooltip.model';\n\n@Component({\n  selector: 'nj-tooltip',\n  templateUrl: './tooltip.component.html',\n  styleUrls: ['./tooltip.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  animations: [tooltipAnimation.tooltip],\n  standalone: true,\n  imports: [CommonModule]\n})\nexport class TooltipComponent {\n\n  /**\n   * @ignore\n   */\n  private readonly tooltipClassName = 'nj-tooltip';\n\n  /**\n   * Whether tooltip is inverse or no\n   */\n  @Input() isInverse: boolean;\n\n  /**\n   * Whether tooltip has arrow or no\n   */\n  @Input() hasArrow = true;\n\n  /**\n   * Tooltip label, if you want custom content unset the label and place content as element children\n   * e.g: `<nj-tooltip>Your Content</nj-tooltip>`\n   */\n  @Input() label: string;\n\n  /**\n   * Tooltip id\n   */\n  @Input() tooltipId: string;\n\n  /**\n   * Tooltip placement\n   */\n  @Input() placement: TooltipPlacement = 'top';\n\n  /**\n   * Tooltip arrow placement\n   */\n  @Input() arrowPlacement: TooltipArrowPlacement = 'center';\n\n  /**\n   * Whether tooltip management is standalone\n   */\n  @Input() isStandalone: boolean = true;\n\n  /**\n   * Whether tooltip is animated\n   */\n  @Input() isAnimated = true;\n\n  /**\n   * Tooltip custom template ref\n   */\n  @Input() contentTemplateRef: TemplateRef<any>;\n\n  constructor() {\n  }\n\n  /**\n   * @ignore\n   */\n  getPlacementClass(): string {\n    if (!this.placement) {\n      return '';\n    }\n    return `${this.tooltipClassName}--${this.placement}`;\n  }\n\n\n  /**\n   * @ignore\n   */\n  getTooltipArrowPlacement(): string {\n    if (!this.arrowPlacement) {\n      return '';\n    }\n    return `${this.tooltipClassName}__arrow--${this.arrowPlacement}`;\n  }\n\n  /**\n   * @ignore\n   */\n  getIsInverseClass(): string {\n    return this.isInverse ? `${this.tooltipClassName}--inverse` : '';\n  }\n\n  /**\n   * @ignore\n   */\n  getIsStandaloneClass(): string {\n    return this.isStandalone ? `${this.tooltipClassName}--standalone` : '';\n  }\n}\n","<div class=\"nj-tooltip show\" [ngClass]=\"[getIsInverseClass(), getPlacementClass(), getIsStandaloneClass()]\" [attr.id]=\"tooltipId\" @tooltip [@.disabled]=\"!isAnimated\">\n  <div class=\"nj-tooltip__arrow\" *ngIf=\"hasArrow\" [ngClass]=\"[getTooltipArrowPlacement()]\"></div>\n  <div class=\"nj-tooltip__inner\">\n    <ng-container *ngTemplateOutlet=\"label ? labelTemplate : contentTemplate\"></ng-container>\n  </div>\n</div>\n\n<ng-template #labelTemplate>\n  {{label}}\n</ng-template>\n\n<ng-template #defaultContentTemplate>\n  <ng-content></ng-content>\n</ng-template>\n\n<ng-template #contentTemplate>\n  <ng-container *ngTemplateOutlet=\"contentTemplateRef ? contentTemplateRef : defaultContentTemplate\"></ng-container>\n</ng-template>\n","import { ConnectedPosition, Overlay, OverlayPositionBuilder, OverlayRef, ScrollDispatcher } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport {\n  ComponentRef,\n  Directive,\n  ElementRef,\n  HostListener,\n  Inject,\n  Input,\n  NgZone,\n  OnDestroy,\n  OnInit,\n  TemplateRef\n} from '@angular/core';\nimport { fromEvent, merge, Subject, takeUntil } from 'rxjs';\nimport { TooltipComponent } from '../tooltip.component';\nimport { TooltipOptions } from '../tooltip.model';\n\n@Directive({\n  selector: '[njTooltip]',\n  exportAs: 'njTooltip',\n  standalone: true\n})\nexport class TooltipDirective implements OnInit, OnDestroy {\n  private unsubscribe: Subject<void> = new Subject<void>();\n\n  private _tooltipOptions: TooltipOptions;\n\n  private overlayRef: OverlayRef;\n\n  private tooltipRef: ComponentRef<TooltipComponent>;\n\n  private intersectionObserver: IntersectionObserver;\n\n  @Input()\n  set tooltipOptions(value: TooltipOptions) {\n    this._tooltipOptions = value;\n    this.setTooltipValues();\n    const scrollableAncestors = this.scrollDispatcher.getAncestorScrollContainers(this.el);\n    const positionStrategy = this.overlayPositionBuilder\n      .flexibleConnectedTo(this.el)\n      .withPositions([this.getPositionOptions()])\n      .withScrollableContainers(scrollableAncestors);\n    this.overlayRef?.updatePositionStrategy(positionStrategy);\n  }\n\n  get tooltipOptions(): TooltipOptions {\n    return this._tooltipOptions;\n  }\n\n  @Input() tooltipCustomContent: TemplateRef<any>;\n\n  constructor(\n    private el: ElementRef,\n    private overlayPositionBuilder: OverlayPositionBuilder,\n    private overlay: Overlay,\n    private scrollDispatcher: ScrollDispatcher,\n    @Inject(DOCUMENT) private doc: Document,\n    private zone: NgZone\n  ) {}\n\n  ngOnInit(): void {\n    const scrollableAncestors = this.scrollDispatcher.getAncestorScrollContainers(this.el);\n\n    const positionStrategy = this.overlayPositionBuilder\n      .flexibleConnectedTo(this.el)\n      .withPositions([this.getPositionOptions()])\n      .withScrollableContainers(scrollableAncestors);\n\n    this.overlayRef = this.overlay.create({\n      positionStrategy,\n      scrollStrategy: this.overlay.scrollStrategies.reposition()\n    });\n  }\n\n  ngOnDestroy() {\n    this.overlayRef?.dispose();\n    this.unsubscribe.next();\n    this.unsubscribe.complete();\n  }\n\n  getPositionOptions(): ConnectedPosition {\n    const defaultPosition: ConnectedPosition = {\n      originX: 'center',\n      originY: 'top',\n      overlayX: 'center',\n      overlayY: 'bottom'\n    };\n    switch (this.tooltipOptions?.placement) {\n      case 'bottom':\n        return {\n          originX: 'center',\n          originY: 'bottom',\n          overlayX: 'center',\n          overlayY: 'top'\n        };\n      case 'top':\n        return defaultPosition;\n      case 'left':\n        return {\n          originX: 'start',\n          originY: 'center',\n          overlayX: 'end',\n          overlayY: 'center'\n        };\n      case 'right':\n        return {\n          originX: 'end',\n          originY: 'center',\n          overlayX: 'start',\n          overlayY: 'center'\n        };\n      default:\n        return defaultPosition;\n    }\n  }\n\n  @HostListener('mouseenter')\n  @HostListener('focusin')\n  show() {\n    if (this.tooltipRef) {\n      return;\n    }\n    this.tooltipRef = this.overlayRef.attach(new ComponentPortal(TooltipComponent));\n    merge(\n      fromEvent(this.tooltipRef?.location?.nativeElement, 'mouseleave'),\n      fromEvent(this.tooltipRef?.location?.nativeElement, 'focusout')\n    )\n      .pipe(takeUntil(this.unsubscribe))\n      .subscribe((event) => {\n        this.hide(event);\n      });\n\n    this.zone.runOutsideAngular(() => {\n      this.intersectionObserver = new IntersectionObserver((entries) => {\n        entries.forEach((entry) => {\n          const isElementVisible = entry.isIntersecting;\n          if (!isElementVisible) {\n            this.zone.run(() => {\n              this.hide();\n            });\n          }\n        });\n      });\n\n      this.intersectionObserver.observe(this.el?.nativeElement);\n    });\n    this.setTooltipValues();\n\n    this.el?.nativeElement?.firstElementChild?.setAttribute('aria-describedby', this.tooltipOptions.tooltipId);\n  }\n\n  @HostListener('mouseleave', ['$event'])\n  @HostListener('focusout', ['$event'])\n  hide(event?) {\n    const focusedElement = this.doc?.activeElement;\n    const isFocusedElement = focusedElement && this.el.nativeElement.contains(focusedElement);\n    const newTarget = (event as MouseEvent)?.relatedTarget as Node | null;\n    const isNextTargetTooltip = newTarget && this.overlayRef?.overlayElement?.contains(newTarget);\n    const isNextTargetElement = newTarget && this.el?.nativeElement?.contains(newTarget);\n    if (!newTarget || (!isNextTargetTooltip && !isNextTargetElement && !isFocusedElement)) {\n      this.overlayRef.detach();\n      this.tooltipRef = null;\n      this.unsubscribe.next();\n      this.intersectionObserver.disconnect();\n      this.el?.nativeElement?.firstElementChild?.removeAttribute('aria-describedby');\n    }\n  }\n\n  setTooltipValues() {\n    const tooltipComponent = this.tooltipRef?.instance;\n    if (!tooltipComponent) {\n      return;\n    }\n\n    tooltipComponent.label = this.tooltipCustomContent ? null : this.tooltipOptions?.label;\n    tooltipComponent.isInverse = this.tooltipOptions?.isInverse;\n    tooltipComponent.hasArrow = this.tooltipOptions?.hasArrow ?? true;\n    tooltipComponent.tooltipId = this.tooltipOptions?.tooltipId;\n    tooltipComponent.arrowPlacement = this.tooltipOptions?.arrowPlacement ?? 'center';\n    tooltipComponent.placement = this.tooltipOptions?.placement ?? 'top';\n    tooltipComponent.isStandalone = this.tooltipOptions?.isStandalone ?? true;\n    tooltipComponent.isAnimated = this.tooltipOptions?.isAnimated ?? true;\n    tooltipComponent.contentTemplateRef = this.tooltipCustomContent;\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { Utils } from '../../utils/utils.util';\nimport { BadgeComponent } from '../badge/badge.component';\nimport { BadgeEmphasis, BadgeSize, BadgeVariant } from '../badge/badge.model';\nimport { TooltipDirective } from '../tooltip/directives/tooltip.directive';\nimport { TooltipOptions } from '../tooltip/tooltip.model';\nimport { AvatarSize } from './avatar.model';\n\n@Component({\n  selector: 'nj-avatar',\n  templateUrl: './avatar.component.html',\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [BadgeComponent, TooltipDirective, CommonModule]\n})\nexport class AvatarComponent {\n  private avatarClassName = 'nj-avatar';\n\n  /**\n   * Link href, if set avatar is a link <a>\n   */\n  @Input() href: string;\n\n  /**\n   * Initials of avatar, max 3 characters if a string with a bigger length than 3 characters only 3 first characters are taken\n   */\n  @Input() initials: string;\n\n  /**\n   * Text alternative for the avatar\n   */\n  @Input() label: string;\n\n  /**\n   * Avatar size\n   */\n  @Input() size: AvatarSize;\n\n  /**\n   * Whether avatar has a picture or not\n   */\n  @Input() hasPicture: boolean;\n\n  /**\n   * Whether avatar is clickable or not\n   */\n  @Input() isClickable: boolean;\n\n  /**\n   * Notifications number or string\n   */\n  @Input() notification: number | string;\n\n  /**\n   * Max notification number\n   */\n  @Input() notificationCapedValue: number;\n\n  /**\n   * Notification emphasis\n   */\n  @Input() notificationEmphasis: BadgeEmphasis;\n\n  /**\n   * Notification color\n   */\n  @Input() notificationVariant: BadgeVariant = 'information';\n\n  /**\n   * Unit label for `nj-badge`\n   */\n  @Input() notificationUnitLabel?: string;\n\n  /**\n   *  Used for NJAvatarGroup as the last tile of the group\n   **/\n  @Input() isRemainingCount?: boolean;\n\n  /**\n   *  Tooltip's options\n   **/\n  @Input() tooltipOptions?: TooltipOptions;\n\n  /**\n   * @ignore\n   */\n  @ViewChild('avatarTemplate') avatarTemplate: TemplateRef<any>;\n\n  constructor() {}\n\n  /**\n   * @ignore\n   */\n  getFormattedInitials(): string {\n    if (this.initials?.length > 3) {\n      return this?.initials.slice(0, 3);\n    } else {\n      return this.initials;\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  getBadgeSize(): BadgeSize {\n    switch (this.size) {\n      case 'xl':\n        return 'lg';\n      default:\n        return 'md';\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  getAvatarSizeClass(): string {\n    return this.size ? `${this.avatarClassName}--${this.size}` : '';\n  }\n\n  /**\n   * @ignore\n   */\n  getAvatarDefaultIconClass(): string {\n    return !this.hasInitials() && !this.hasPicture ? `${this.avatarClassName}--default-icon` : '';\n  }\n\n  /**\n   * @ignore\n   */\n  getAvatarInitialsClass(): string {\n    return this.hasInitials() && !this.hasPicture ? `${this.avatarClassName}--initials` : '';\n  }\n\n  /**\n   * @ignore\n   */\n  getAvatarIsClickableClass(): string {\n    return this.isClickable ? `${this.avatarClassName}--clickable` : '';\n  }\n\n  /**\n   * @ignore\n   */\n  getHasPictureClass(): string {\n    return this.hasPicture ? `${this.avatarClassName}--picture` : '';\n  }\n\n  /**\n   * @ignore\n   */\n  getAvatarIsRemainingCountClass(): string {\n    return this.isRemainingCount ? `${this.avatarClassName}--remaining-count` : '';\n  }\n\n  /**\n   * @ignore\n   */\n  hasInitials(): boolean {\n    return !Utils.isUndefinedOrNull(this.initials) && this.initials?.trim() !== '';\n  }\n\n  /**\n   * @ignore\n   */\n  getAvatarClasses(): string[] {\n    return [\n      this.getAvatarDefaultIconClass(),\n      this.getAvatarSizeClass(),\n      this.getAvatarInitialsClass(),\n      this.getAvatarIsClickableClass(),\n      this.getAvatarIsRemainingCountClass(),\n      this.getHasPictureClass()\n    ];\n  }\n}\n","<ng-container *ngTemplateOutlet=\"avatarTemplate\"></ng-container>\n\n<ng-template #tagContent>\n  <ng-content></ng-content>\n  <p class=\"nj-sr-only\">{{label}}</p>\n  <span aria-hidden=\"true\">{{getFormattedInitials()}}</span>\n\n  <nj-badge *ngIf=\"notification && size !== 'sm'\"\n            [value]=\"notification\"\n            [capedValue]=\"notificationCapedValue\"\n            [size]=\"getBadgeSize()\"\n            [variant]=\"notificationVariant\"\n            [emphasis]=\"notificationEmphasis\"\n            [unitLabel]=\"notificationUnitLabel\">\n  </nj-badge>\n</ng-template>\n\n<ng-template #avatarTemplate>\n  <a *ngIf=\"!tooltipOptions && href\" [href]=\"href\" class=\"nj-avatar\"\n     [ngClass]=\"getAvatarClasses()\">\n    <ng-container *ngTemplateOutlet=\"tagContent\"></ng-container>\n  </a>\n  <button *ngIf=\"!tooltipOptions && isClickable\" class=\"nj-avatar\"\n          [ngClass]=\"getAvatarClasses()\">\n    <ng-container *ngTemplateOutlet=\"tagContent\"></ng-container>\n  </button>\n  <div *ngIf=\"!tooltipOptions && !href && !isClickable\" class=\"nj-avatar\"\n       [ngClass]=\"getAvatarClasses()\">\n    <ng-container *ngTemplateOutlet=\"tagContent\"></ng-container>\n  </div>\n  <a *ngIf=\"tooltipOptions && href\" [href]=\"href\" class=\"nj-avatar\"\n     njTooltip [tooltipOptions]=\"tooltipOptions\"\n     [ngClass]=\"getAvatarClasses()\">\n    <ng-container *ngTemplateOutlet=\"tagContent\"></ng-container>\n  </a>\n  <button *ngIf=\"tooltipOptions && isClickable\" class=\"nj-avatar\"\n          njTooltip [tooltipOptions]=\"tooltipOptions\"\n          [ngClass]=\"getAvatarClasses()\">\n    <ng-container *ngTemplateOutlet=\"tagContent\"></ng-container>\n  </button>\n  <div *ngIf=\"tooltipOptions && !href && !isClickable\" class=\"nj-avatar\"\n       njTooltip [tooltipOptions]=\"tooltipOptions\"\n       [ngClass]=\"getAvatarClasses()\">\n    <ng-container *ngTemplateOutlet=\"tagContent\"></ng-container>\n  </div>\n</ng-template>\n","import {Directive, HostBinding} from '@angular/core';\n\n@Directive({\n  selector: '[njAvatarPicture]',\n  exportAs: 'njAvatarPicture',\n  standalone: true\n})\nexport class AvatarPictureDirective {\n  @HostBinding('class') class = 'nj-avatar__picture';\n  @HostBinding('alt') alt = '';\n\n  constructor() {\n\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  Component,\n  ContentChildren,\n  EventEmitter,\n  Input,\n  Output,\n  QueryList,\n  ViewEncapsulation\n} from '@angular/core';\nimport { Utils } from '../../utils/utils.util';\nimport { AvatarComponent } from '../avatar/avatar.component';\nimport { AvatarSize } from '../avatar/avatar.model';\nimport { TooltipOptions } from '../tooltip/tooltip.model';\n\n@Component({\n  selector: 'nj-avatar-list',\n  templateUrl: './avatar-list.component.html',\n  styleUrls: ['./avatar-list.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [AvatarComponent, CommonModule]\n})\nexport class AvatarListComponent implements AfterContentInit {\n  /**\n   * @ignore\n   */\n  private readonly avatarListClassName = 'nj-avatar-list';\n\n  /**\n   * @ignore\n   */\n  remainingCount: number;\n\n  /**\n   * @ignore\n   */\n  avatarsToDisplay: AvatarComponent[];\n\n  /**\n   *  Max number of avatar displayed\n   **/\n  @Input() max?: number = 4;\n\n  /**\n   *  Density of the avatar list\n   **/\n  @Input() density?: 'default' | 'compact';\n\n  /**\n   *  Avatars size\n   **/\n  @Input() size?: AvatarSize = 'md';\n\n  /**\n   * Remaining avatar Tooltip's options\n   **/\n  @Input() remainingTooltipOptions?: TooltipOptions;\n\n  /**\n   * Emits event on remaining count avatar mouse click\n   */\n  @Output() remainingClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\n\n  /**\n   * Label of the \"show more\" button.\n   *\n   * A function can be used to provide a dynamic label based on the number of remaining avatars in the list.\n   */\n  @Input() showMoreLabel: string | ((elementCount: number) => string);\n\n  /**\n   * @ignore\n   */\n  @ContentChildren(AvatarComponent)\n  avatars: QueryList<AvatarComponent>;\n\n  constructor() {}\n\n  ngAfterContentInit() {\n    this.remainingCount = this.avatars?.toArray()?.length - this.max;\n    this.avatarsToDisplay = this.getAvatarsToDisplay();\n  }\n\n  /**\n   * @ignore\n   */\n  getAvatarsToDisplay(): AvatarComponent[] {\n    const avatarsArray = this.avatars?.toArray();\n    if (Utils.isUndefinedOrNull(avatarsArray)) {\n      return;\n    }\n    return avatarsArray.splice(0, this.max).map((avatar) => {\n      avatar.size = this.size;\n      return avatar;\n    });\n  }\n\n  /**\n   * @ignore\n   */\n  getAvatarListDensityClass(): string {\n    if (!this.density || this.density === 'default') {\n      return '';\n    }\n    return `${this.avatarListClassName}--${this.density}`;\n  }\n\n  /**\n   * @ignore\n   */\n  getRemainingCountInitials(): string {\n    return `+ ${this.remainingCount}`;\n  }\n\n  /**\n   * @ignore\n   */\n  getRemainingCountLabel(): string {\n    return typeof this.showMoreLabel === 'function' ? this.showMoreLabel(this.remainingCount) : this.showMoreLabel;\n  }\n}\n","<div class=\"nj-avatar-list\" [ngClass]=\"[getAvatarListDensityClass()]\">\n  <ng-container *ngFor=\"let avatar of avatarsToDisplay\">\n    <ng-container *ngTemplateOutlet=\"avatar?.avatarTemplate\"></ng-container>\n  </ng-container>\n  <nj-avatar *ngIf=\"remainingCount > 0\"\n             (click)=\"remainingClick?.emit($event)\"\n             [tooltipOptions]=\"remainingTooltipOptions\"\n             [isClickable]=\"true\"\n             [isRemainingCount]=\"true\"\n             [initials]=\"getRemainingCountInitials()\"\n             [size]=\"size\"\n             [label]=\"getRemainingCountLabel()\"\n  ></nj-avatar>\n</div>\n","import {CommonModule} from '@angular/common';\nimport {\n  Attribute,\n  ChangeDetectionStrategy,\n  Component,\n  HostBinding,\n  inject,\n  Input,\n  ViewEncapsulation\n} from '@angular/core';\nimport {RouterLink} from '@angular/router';\nimport {IconComponent} from '../icon/icon.component';\nimport {LinkIconPosition, LinkSize, LinkVariant} from './link.model';\n\n@Component({\n  selector: 'nj-link',\n  templateUrl: './link.component.html',\n  styleUrls: ['./link.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [IconComponent, CommonModule, RouterLink]\n})\nexport class LinkComponent {\n\n  @HostBinding('attr.tabindex')\n  get tabIndex() {\n    return this.tabIndexAttribute ?? (this.routerLink ? '-1' : undefined);\n  }\n\n  private linkClass = 'nj-link';\n\n  private iconClass = 'nj-link-icon';\n\n  /**\n   * Link variant theme\n   */\n  @Input() variant: LinkVariant = 'default';\n\n  /**\n   * Link size\n   */\n  @Input() size: LinkSize;\n\n  /**\n   * Link target. Note when the target is `_blank`, an icon notifying the user is placed on the right of the link\n   */\n  @Input() target: string;\n\n  /**\n   * Link href\n   */\n  @Input() href: string;\n\n  /**\n   * Link rel\n   */\n  @Input() rel: string;\n\n  /**\n   * If link opens in a new page, an icon notifying the user is placed on the right of the link\n   */\n  @Input() isExternal = false;\n\n  @Input() externalLabel: string;\n\n  /**\n   * Whether link has icon\n   */\n  @Input() hasIcon = false;\n\n  /**\n   * Link material icon\n   */\n  @Input() icon: string;\n\n  /**\n   * Whether icon is before or after text\n   */\n  @Input() iconPosition: LinkIconPosition = 'after';\n\n  /**\n   * Link title\n   */\n  @Input() title: string;\n\n  /**\n   * Link id\n   */\n  @Input() id: string;\n\n  /**\n   * Aria label, for accessibility reasons\n   */\n  @Input() ariaLabel: string;\n\n  /**\n   * Aria labelled by, for accessibility reasons\n   */\n  @Input() ariaLabelledBy: string;\n\n\n  protected readonly routerLink? = inject(RouterLink, {self: true, optional: true});\n\n  constructor(@Attribute('tabindex') private readonly tabIndexAttribute: string|null|undefined) {\n  }\n\n  /**\n   * @ignore\n   */\n  isExternalLink(): boolean {\n    return this.isExternal || this.target === '_blank';\n  }\n\n  /**\n   * @ignore\n   */\n  getLinkVariantClass(): string {\n    if (!this.variant || this.variant === 'default') {\n      return '';\n    }\n    return `${this.linkClass}--${this.variant}`;\n  }\n\n  /**\n   * @ignore\n   */\n  getIconClass(): string {\n    if (!this.hasIcon && !this.isExternalLink()) {\n      return '';\n    }\n    return this.iconClass;\n  }\n\n  /**\n   * @ignore\n   */\n  getIconPositionClass(): string {\n    if (this.iconPosition !== 'before') {\n      return '';\n    }\n    return `${this.iconClass}--${this.iconPosition}`;\n  }\n\n  /**\n   * @ignore\n   */\n  getSizeClass(): string {\n    if (!this.size) {\n      return '';\n    }\n    return `${this.linkClass}--${this.size}`;\n  }\n}\n","<a class=\"nj-link\" *ngIf=\"!routerLink\"\n   [ngClass]=\"[getLinkVariantClass(), getIconClass(), getIconPositionClass(), getSizeClass()]\"\n   [attr.href]=\"href\"\n   [attr.rel]=\"rel\"\n   [attr.target]=\"target\"\n   [attr.aria-label]=\"ariaLabel\"\n   [attr.aria-labelledby]=\"ariaLabelledBy\"\n   [attr.title]=\"title\"\n   [attr.id]=\"id\">\n  <ng-container [ngTemplateOutlet]=\"linkContent\"></ng-container>\n</a>\n<a class=\"nj-link\" *ngIf=\"routerLink\"\n   [ngClass]=\"[getLinkVariantClass(), getIconClass(), getIconPositionClass(), getSizeClass()]\"\n   [routerLink]=\"routerLink['commands']\"\n   [target]=\"routerLink.target\"\n   [queryParams]=\"routerLink.queryParams\"\n   [fragment]=\"routerLink.fragment\"\n   [queryParamsHandling]=\"routerLink.queryParamsHandling\"\n   [state]=\"routerLink.state\"\n   [relativeTo]=\"routerLink.relativeTo\"\n   [preserveFragment]=\"routerLink.preserveFragment\"\n   [skipLocationChange]=\"routerLink.skipLocationChange\"\n   [replaceUrl]=\"routerLink.replaceUrl\"\n   [attr.rel]=\"rel\"\n   [attr.aria-label]=\"ariaLabel\"\n   [attr.aria-labelledby]=\"ariaLabelledBy\"\n   [attr.title]=\"title\"\n   [attr.id]=\"id\">\n  <ng-container [ngTemplateOutlet]=\"linkContent\"></ng-container>\n</a>\n<ng-template #linkContent>\n  <ng-content></ng-content>\n  <ng-container *ngIf=\"hasIcon\">\n    <nj-icon [name]=\"icon\" *ngIf=\"icon && !isExternalLink()\"></nj-icon>\n    <ng-container *ngIf=\"!icon && !isExternalLink()\">\n      <ng-content select=\"[custom-icon]\"></ng-content>\n    </ng-container>\n  </ng-container>\n  <ng-container *ngIf=\"!icon && isExternalLink()\">\n    <span class=\"nj-sr-only\">&nbsp;{{externalLabel}}</span>\n    <!-- Only useful for projects that don't use material icons -->\n    <svg xmlns=\"http://www.w3.org/2000/svg\"\n         viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n      <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n      <path\n        d=\"M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z\"/>\n    </svg>\n  </ng-container>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, TemplateRef, ViewChild } from '@angular/core';\nimport { LinkComponent } from '../link/link.component';\nimport { LinkIconPosition } from '../link/link.model';\n\n@Component({\n  selector: 'nj-breadcrumb-item',\n  templateUrl: './breadcrumb-item.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [LinkComponent, CommonModule]\n})\nexport class BreadcrumbItemComponent {\n  /**\n   * Whether item is active\n   */\n  @Input() isActive = false;\n\n  /**\n   * Breadcrumb link href\n   */\n  @Input() href: string;\n\n  /**\n   * Breadcrumb link target\n   */\n  @Input() target: string;\n\n  /**\n   * Breadcrumb link icon\n   */\n  @Input() icon: string;\n\n  /**\n   * Breadcrumb link icon position\n   */\n  @Input() iconPosition: LinkIconPosition;\n\n  /**\n   * Accessible text alternative when the item has an icon and no children.\n   *\n   * @example\n   * <nj-breadcrumb-item href=\"#\" icon=\"home\" label=\"Home page\"></nj-breadcrumb-item>\n   */\n  @Input() label?: string;\n\n  /**\n   * @ignore\n   */\n  @ViewChild('itemTemplate') itemTemplate: TemplateRef<any>;\n\n  constructor() {}\n}\n","<ng-template #itemTemplate>\n  <nj-link *ngIf=\"!isActive\" variant=\"grayed\" size=\"sm\"\n           [href]=\"href\" [target]=\"target\"\n           [hasIcon]=\"!!icon\" [icon]=\"icon\" [iconPosition]=\"iconPosition\">\n    <span class=\"nj-sr-only\">{{label}}</span>\n    <ng-container *ngTemplateOutlet=\"itemContent\"></ng-container>\n  </nj-link>\n\n  <ng-container *ngIf=\"isActive\">\n    <ng-container *ngTemplateOutlet=\"itemContent\"></ng-container>\n  </ng-container>\n</ng-template>\n\n<ng-template #itemContent>\n  <ng-content></ng-content>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport {\n  AfterContentChecked,\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChildren,\n  ElementRef,\n  Input,\n  QueryList,\n  ViewChild\n} from '@angular/core';\nimport { Utils } from '../../utils/utils.util';\nimport { BreadcrumbItemComponent } from '../breadcrumb-item/breadcrumb-item.component';\n\n@Component({\n  selector: 'nj-breadcrumb',\n  templateUrl: './breadcrumb.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [BreadcrumbItemComponent, CommonModule]\n})\nexport class BreadcrumbComponent implements AfterContentInit, AfterContentChecked {\n  /**\n   * Describes the navigation to screen reader users (who navigate the page using landmarks)\n   *\n   * @default \"Breadcrumbs\"\n   */\n  @Input() ariaLabel: string = 'Breadcrumbs';\n\n  /**\n   * Accessible text alternative for the \"show more\" button when the breadcrumb is minified.\n   *\n   * @default \"Show hidden items\"\n   */\n  @Input() showMoreLabel: string = 'Show hidden items';\n\n  /**\n   * @ignore\n   */\n  isMinified: boolean;\n\n  /**\n   * @ignore\n   */\n  leftContent: BreadcrumbItemComponent[];\n\n  /**\n   * @ignore\n   */\n  rightContent: BreadcrumbItemComponent;\n\n  constructor(private cdr: ChangeDetectorRef) {}\n\n  /**\n   * @ignore\n   */\n  @ContentChildren(BreadcrumbItemComponent)\n  breadcrumbItems: QueryList<BreadcrumbItemComponent>;\n\n  /**\n   * @ignore\n   */\n  @ViewChild('olRef') olRef: ElementRef<HTMLOListElement>;\n\n  ngAfterContentInit() {\n    this.isMinified = this.breadcrumbItems?.toArray()?.length > 4;\n    this.leftContent = this.getLeftContentToDisplay();\n    this.rightContent = this.getRightContentToDisplay();\n  }\n\n  ngAfterContentChecked() {\n    this.cdr.markForCheck();\n  }\n\n  /**\n   * @ignore\n   */\n  seeAll() {\n    this.isMinified = false;\n    this.leftContent = this.getLeftContentToDisplay();\n    this.rightContent = this.getRightContentToDisplay();\n    this.cdr.markForCheck();\n\n    // Focus first revealed item\n    setTimeout(() => {\n      (this.olRef.nativeElement.childNodes[2] as HTMLLIElement)?.querySelector('a')?.focus();\n    });\n  }\n\n  /**\n   * @ignore\n   */\n  getLeftContentToDisplay(): BreadcrumbItemComponent[] {\n    const breadcrumbItemsArray = this.breadcrumbItems?.toArray();\n    if (Utils.isUndefinedOrNull(breadcrumbItemsArray)) {\n      return;\n    }\n    return this.isMinified ? breadcrumbItemsArray.splice(0, 1) : breadcrumbItemsArray;\n  }\n\n  /**\n   * @ignore\n   */\n  getRightContentToDisplay(): BreadcrumbItemComponent {\n    if (!this.isMinified) {\n      return;\n    }\n    const breadcrumbItemsArray = this.breadcrumbItems?.toArray();\n    const breadcrumbItemsLength = breadcrumbItemsArray?.length;\n    return breadcrumbItemsArray[breadcrumbItemsLength - 1];\n  }\n}\n","<nav role=\"navigation\" [attr.aria-label]=\"ariaLabel\">\n  <ol class=\"nj-breadcrumb\" #olRef>\n    <ng-container *ngIf=\"leftContent\">\n      <li class=\"nj-breadcrumb__item\" *ngFor=\"let item of leftContent\">\n        <ng-container *ngTemplateOutlet=\"item?.itemTemplate\"></ng-container>\n      </li>\n    </ng-container>\n    <li class=\"nj-breadcrumb__see-more\" *ngIf=\"isMinified\">\n      <button (click)=\"seeAll()\" (keydown.enter)=\"seeAll()\">\n        <span class=\"nj-sr-only\">{{showMoreLabel}}</span>\n      </button>\n    </li>\n    <li class=\"nj-breadcrumb__item\" *ngIf=\"isMinified && rightContent\">\n      <ng-container *ngTemplateOutlet=\"rightContent.itemTemplate\"></ng-container>\n    </li>\n  </ol>\n</nav>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\nimport { ThemeComponentsVariants } from '../../models/theme-variant.model';\nimport { Utils } from '../../utils/utils.util';\nimport { BulletSize } from './bullet.model';\n\n@Component({\n  selector: 'nj-bullet',\n  templateUrl: './bullet.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [CommonModule]\n})\nexport class BulletComponent {\n  private bulletClassName = 'nj-bullet';\n\n  /**\n   * Bullet variant\n   */\n  @Input() variant: ThemeComponentsVariants = 'brand';\n\n  /**\n   * Bullet custom color, overrides variant\n   */\n  @Input() customColor: string;\n\n  /**\n   * Bullet size\n   */\n  @Input() size: BulletSize = 'md';\n\n  constructor() {}\n\n  /**\n   * @ignore\n   */\n  getBulletVariantClass(): string {\n    if (!this.variant || !Utils.isUndefinedOrNull(this.customColor)) {\n      return '';\n    }\n    return `${this.bulletClassName}--${this.variant}`;\n  }\n\n  /**\n   * @ignore\n   */\n  getButtonSizeClass(): string {\n    if (!this.size) {\n      return '';\n    }\n    return `${this.bulletClassName}--${this.size}`;\n  }\n}\n","<div class=\"nj-bullet\" [ngClass]=\"[getBulletVariantClass(), getButtonSizeClass()]\"\n     [style.background-color]=\"customColor\">\n</div>\n","import {CommonModule} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, Input, ViewEncapsulation} from '@angular/core';\n\n@Component({\n  selector: 'nj-card',\n  templateUrl: './card.component.html',\n  styleUrls: ['./card.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [CommonModule]\n})\nexport class CardComponent {\n\n  /**\n   * Whether card has border or no\n   */\n  @Input() hasBorder = false;\n\n  /**\n   * Whether card flow is horizontal\n   */\n  @Input() isHorizontal = false;\n}\n","<div class=\"nj-card\" [ngClass]=\"{'nj-card--border': hasBorder, 'nj-card--horizontal': isHorizontal}\">\n  <div class=\"nj-card__img-wrapper\">\n    <ng-content select=\"[njCardImage]\"></ng-content>\n  </div>\n  <div class=\"nj-card__body\">\n    <div class=\"nj-card__title\">\n      <ng-content select=\"[njCardTitle]\"></ng-content>\n    </div>\n    <ng-content></ng-content>\n  </div>\n</div>\n","import {Directive, ElementRef, HostBinding} from '@angular/core';\n\n@Directive({\n  selector: '[njCardImage]',\n  exportAs: 'njCardImage',\n  standalone: true\n})\nexport class CardImageDirective {\n  @HostBinding('class') class = 'nj-card__img';\n\n  constructor(private el: ElementRef) {\n  }\n}\n","import {Directive, inject, TemplateRef} from '@angular/core';\n\n@Directive({\n  selector: '[njCustomLabel]',\n  standalone: true\n})\nexport class CustomLabelDirective<T> {\n  public readonly templateRef = inject<TemplateRef<T>>(TemplateRef);\n}\n","import {Tokens} from '@engie-group/fluid-design-tokens';\nimport {ThemeComponentsVariants} from '../../models/theme-variant.model';\n\nconst sizeKeys = Object.keys(Tokens.semantic.size.icon);\nexport declare type IconSize = typeof sizeKeys[number] | 'inherit';\nexport declare type IconColor = ThemeComponentsVariants | 'inherit' | 'inverse' | 'secondary' | 'tertiary'\n","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\nimport { Utils } from '../../utils/utils.util';\nimport { IconBaseComponent } from '../icon-base/icon-base.component';\nimport { EngieIconsName, EngieIconVariant } from './icon-engie.model';\n\n@Component({\n  selector: 'nj-icon-engie',\n  templateUrl: './icon-engie.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [IconBaseComponent]\n})\nexport class IconEngieComponent extends IconBaseComponent {\n  /**\n   * Icon name\n   */\n  @Input() name: EngieIconsName;\n\n  /**\n   * Icon variant\n   */\n  @Input() variant: EngieIconVariant = 'default';\n\n  protected getClassName(): string {\n    const variantClass = this.variant && this.variant !== 'default' ? `${this.ICON_CLASS}--${this.variant}` : null;\n    return [variantClass, this.className].filter((cls) => !Utils.isUndefinedOrNull(cls)).join(' ');\n  }\n}\n","<nj-icon-base\n  [name]=\"name\"\n  [isEngieIcon]=\"true\"\n  [ariaLabel]=\"ariaLabel\"\n  [className]=\"getClassName()\"\n>\n</nj-icon-base>\n","export const engieIconName = [\n  'ten-minus',\n  'ten-loading',\n  'ten-refresh',\n  'ten-plus',\n  'twenty-four',\n  'two-thousand-minus',\n  'two-thousand-plus',\n  'add',\n  'air',\n  'arrowleft',\n  'arrowright',\n  'atoz',\n  'balance',\n  'building-search',\n  'building',\n  'call',\n  'camera',\n  'card-money',\n  'card-smartphone',\n  'card-validate',\n  'cardcross',\n  'cardexport',\n  'cardload',\n  'cardlock',\n  'cards',\n  'cat',\n  'chat',\n  'chatbot',\n  'city',\n  'clock-sleep',\n  'clock',\n  'counter',\n  'cross',\n  'degrees',\n  'diagram',\n  'document-data',\n  'document-download',\n  'document-hand',\n  'document-money',\n  'document-search',\n  'document-upload',\n  'document',\n  'dropbox',\n  'duo',\n  'electric-car',\n  'electric-fire',\n  'electric-outlet',\n  'electric',\n  'enlighten',\n  'envelope',\n  'exclamation',\n  'expert',\n  'eye',\n  'family-1',\n  'family-2',\n  'family-3',\n  'finger-touch',\n  'fire',\n  'forest',\n  'gas-pump',\n  'gauge',\n  'hand-tool',\n  'handkey',\n  'handup',\n  'hob',\n  'house-energy',\n  'house',\n  'houses',\n  'imbalance',\n  'info',\n  'insulation',\n  'juggle',\n  'label-for-rent',\n  'label-for-sale',\n  'like',\n  'list',\n  'lock',\n  'luggage',\n  'map',\n  'medal',\n  'moon',\n  'nature',\n  'north-earth',\n  'number-counter',\n  'person-rotate',\n  'picture-web',\n  'piggybank',\n  'plan',\n  'planning-cancel',\n  'planning-clock',\n  'profile',\n  'question',\n  'recycling',\n  'robot',\n  'sale-label',\n  'satellite',\n  'shower',\n  'silence',\n  'smartphone-hand',\n  'smartphone-home',\n  'smartphone',\n  'smoke',\n  'solar-panel-flux',\n  'solar-panel',\n  'squaremeter',\n  'sun',\n  'sunmoon',\n  'tanker',\n  'temperature',\n  'tools',\n  'transfer',\n  'trash',\n  'unlock',\n  'validate',\n  'ventilator',\n  'water',\n  'wifi'\n] as const;\n\nexport declare type EngieIconsName = typeof engieIconName[number];\n\nexport declare type EngieIconVariant = 'default' | 'brand' | 'inverse';\n","import {CommonModule} from '@angular/common';\nimport {AfterViewInit, ChangeDetectionStrategy, Component, Input, ViewChild} from '@angular/core';\nimport {StatusIndicatorSize, StatusIndicatorStatus} from './status-indicator.model';\n\n@Component({\n  selector: 'nj-status-indicator',\n  templateUrl: './status-indicator.component.html',\n  styleUrls: ['./status-indicator.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [CommonModule]\n})\nexport class StatusIndicatorComponent implements AfterViewInit {\n\n  private readonly statusIndicatorClass = 'nj-status-indicator';\n\n  private readonly statusIndicatorClasses = {\n    offline: `${this.statusIndicatorClass}--offline`,\n    online: `${this.statusIndicatorClass}--online`,\n    away: `${this.statusIndicatorClass}--away`,\n    'do-not-disturb': `${this.statusIndicatorClass}--do-not-disturb`,\n    busy: `${this.statusIndicatorClass}--busy`,\n    unknown: `${this.statusIndicatorClass}--unknown`,\n    error: `${this.statusIndicatorClass}--error`,\n    success: `${this.statusIndicatorClass}--success`,\n    warning: `${this.statusIndicatorClass}--warning`,\n    'in-progress': `${this.statusIndicatorClass}--in-progress`,\n    information: `${this.statusIndicatorClass}--information`,\n    discovery: `${this.statusIndicatorClass}--discovery`,\n    planet: `${this.statusIndicatorClass}--planet`,\n  };\n\n  /**\n   * Status Indicator status\n   */\n  @Input() status: StatusIndicatorStatus = 'online';\n\n  /**\n   * Status Indicator status\n   */\n  @Input() size: StatusIndicatorSize;\n\n  /**\n   * @ignore\n   */\n  @ViewChild('labelWrapper') labelWrapper;\n\n  /**\n   * Whether status indicator has label\n   */\n  hasLabel: boolean;\n\n  constructor() {\n  }\n\n  ngAfterViewInit() {\n    this.hasLabel = this.labelWrapper.nativeElement && this.labelWrapper.nativeElement.innerHTML !== '';\n  }\n\n  getStatusClass(): string {\n    const statusClass = this.statusIndicatorClasses[this.status];\n    if (!this.status || !statusClass) {\n      return '';\n    }\n    return statusClass;\n  }\n\n  getSizeClass(): string {\n    if (!this.size || this.size === 'md') {\n      return '';\n    }\n    return `${this.statusIndicatorClass}--${this.size}`;\n  }\n}\n","<div class=\"nj-status-indicator\" [ngClass]=\"[getStatusClass(), getSizeClass()]\" [attr.aria-hidden]=\"hasLabel ? null : true\">\n  <div class=\"nj-status-indicator__svg\"></div>\n  <p class=\"nj-status-indicator__text\" #labelWrapper>\n    <ng-content></ng-content>\n  </p>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Output } from '@angular/core';\nimport { IconButtonComponent } from '../icon-button/icon-button.component';\nimport { StatusIndicatorComponent } from '../status-indicator/status-indicator.component';\nimport { InlineMessageVariant } from './inline-message.model';\n\n@Component({\n  selector: 'nj-inline-message',\n  templateUrl: './inline-message.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [IconButtonComponent, StatusIndicatorComponent, CommonModule]\n})\nexport class InlineMessageComponent {\n  /**\n   * @ignore\n   */\n  private readonly inlineMessageClass = 'nj-inline-message';\n\n  /**\n   * Inline message variant\n   */\n  @Input() variant: InlineMessageVariant = 'error';\n\n  /**\n   * Whether inline message has status indicator or not\n   */\n  @Input() hasStatus = true;\n\n  /**\n   * Whether inline message is closeable or not\n   */\n  @Input() isClosable = false;\n\n  /**\n   * Output event when inline message is closed\n   */\n  @Output() closeClick = new EventEmitter<Event>();\n\n  constructor(private el: ElementRef) {}\n\n  /**\n   * @ignore\n   */\n  getVariantClass(): string {\n    if (!this.variant && this.variant === 'error') {\n      return '';\n    }\n    return `${this.inlineMessageClass}--${this.variant}`;\n  }\n\n  /**\n   * @ignore\n   */\n  removeInlineMessage(event: MouseEvent) {\n    this.el?.nativeElement?.remove();\n    this.closeClick.emit(event);\n  }\n\n  /**\n   * @ignore\n   */\n  get isFatalError() {\n    return this.variant === 'fatal-error';\n  }\n}\n","<div class=\"nj-inline-message\" [ngClass]=\"getVariantClass()\">\n  <nj-status-indicator class=\"nj-inline-message__status\" *ngIf=\"hasStatus && !isFatalError\" [status]=\"variant\"></nj-status-indicator>\n  <div class=\"nj-inline-message__content\">\n    <h4 class=\"nj-inline-message__title\">\n      <ng-content select=\"[njInlineMessageTitle]\"></ng-content>\n    </h4>\n    <p class=\"nj-inline-message__body\">\n      <ng-content></ng-content>\n    </p>\n  </div>\n  <nj-icon-button *ngIf=\"isClosable\" class=\"nj-inline-message__close\" icon=\"close\" [variant]=\"!isFatalError ? 'primary' : 'inverse'\"\n                  (buttonClick)=\"removeInlineMessage($event)\">\n  </nj-icon-button>\n</div>\n","import {animate, AnimationTriggerMetadata, state, style, transition, trigger} from '@angular/animations';\nimport {njSemanticMotionEasingLinearOutSlowIn} from '@engie-group/fluid-design-tokens';\n\nexport const defaultParams = {\n  params: {enterAnimationDuration: '150ms'},\n};\n\nexport const modalAnimation: {\n  readonly modal: AnimationTriggerMetadata;\n} = {\n  modal: trigger('modal', [\n    state('void', style({opacity: 0, transform: 'scale(0.7)'})),\n    state('*', style({opacity: 1, transform: 'none'})),\n    transition(\n      ':enter',\n      animate(`{{enterAnimationDuration}} ${njSemanticMotionEasingLinearOutSlowIn}`),\n      defaultParams,\n    ),\n  ]),\n};\n","import { DialogRef } from '@angular/cdk/dialog';\nimport { CommonModule } from '@angular/common';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  Component,\n  EventEmitter,\n  Input,\n  Optional,\n  Output,\n  ViewEncapsulation\n} from '@angular/core';\nimport { IconButtonComponent } from '../icon-button/icon-button.component';\nimport { modalAnimation } from './modal.animations';\n\n@Component({\n  selector: 'nj-modal',\n  templateUrl: './modal.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  animations: [modalAnimation.modal],\n  standalone: true,\n  imports: [IconButtonComponent, CommonModule]\n})\nexport class ModalComponent implements AfterViewInit {\n  /**\n   * Whether modal has close icon or not\n   */\n  @Input() hasCloseIcon = false;\n\n  /**\n   * Label for the close button\n   * @example \"Close\"\n   */\n  @Input() closeLabel?: string;\n\n  /**\n   * Whether modal is vertically centered\n   */\n  @Input() isVerticallyCentered = true;\n\n  /**\n   * Id of the modal. The title id will be based on this.\n   */\n  @Input() modalId: string;\n\n  /**\n   * Emits void event when modal is closed via the close icon\n   */\n  @Output() closed = new EventEmitter<void>();\n\n  /**\n   * @param dialogRef refers to `@angular/cdk` DialogRef\n   */\n  constructor(@Optional() public dialogRef: DialogRef) {\n    const backdropElement = this.dialogRef?.overlayRef?.backdropElement;\n    // Add fluid backdrop background color to dialog overlay\n    if (backdropElement) {\n      backdropElement.style.backgroundColor = 'var(--nj-component-backdrop-color-background)';\n    }\n  }\n\n  get titleId(): string {\n    return `${this.modalId}-title`;\n  }\n\n  ngAfterViewInit() {\n    // Manually set the `aria-labelledby` attribute on the modal\n    setTimeout(() => {\n      // @ts-expect-error\n      this.dialogRef?.containerInstance._elementRef.nativeElement.setAttribute('aria-labelledby', this.titleId);\n    });\n  }\n\n  /**\n   * Emits closed event and calls dialogRef.close()\n   */\n  public closeModal() {\n    this.closed?.emit();\n    this.dialogRef?.close();\n  }\n}\n","<div class=\"nj-modal nj-modal--visible\" [ngClass]=\"{'nj-modal--vertical-centered': isVerticallyCentered}\">\n  <div class=\"nj-modal__dialog\">\n    <div class=\"nj-modal__content\" @modal>\n      <div class=\"nj-modal__header\">\n        <h1 class=\"nj-modal__title\" [attr.id]=\"titleId\">\n          <ng-content select=\"[njModalTitle]\"></ng-content>\n        </h1>\n        <nj-icon-button icon=\"close\" size=\"sm\" class=\"nj-modal__close\"\n                        (buttonClick)=\"closeModal()\"\n                        *ngIf=\"hasCloseIcon\" [label]=\"closeLabel\">\n        </nj-icon-button>\n      </div>\n      <div class=\"nj-modal__body\">\n        <ng-content select=\"[njModalContent]\"></ng-content>\n      </div>\n      <div class=\"nj-modal__footer\">\n        <ng-content select=\"[njModalFooter]\"></ng-content>\n      </div>\n    </div>\n  </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  Output,\n  ViewEncapsulation\n} from '@angular/core';\nimport { ThemeComponentsVariants } from '../../models/theme-variant.model';\nimport { IconButtonComponent } from '../icon-button/icon-button.component';\nimport { TagSize } from './tag.model';\n\n@Component({\n  selector: 'nj-tag',\n  templateUrl: './tag.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [IconButtonComponent, CommonModule]\n})\nexport class TagComponent {\n  private readonly tagClassName = 'nj-tag';\n\n  /**\n   * Tag variant\n   *\n   * @default `grey`\n   */\n  @Input() variant?: ThemeComponentsVariants;\n\n  /**\n   * Tag size\n   */\n  @Input() size?: TagSize = 'md';\n\n  /**\n   * Tag iconName\n   */\n  @Input() iconName?: string;\n\n  /**\n   * Tag href. If set, tag renders a link\n   */\n  @Input() href?: string;\n\n  /**\n   * target of link tag\n   */\n  @Input() target?: string;\n\n  /**\n   * If set, tag renders a button\n   */\n  @Input() isClickable?: boolean;\n\n  /**\n   * Whether tag can be closed\n   */\n  @Input() isClosable?: boolean;\n\n  /**\n   * Whether tag should remove himself when close is clicked\n   */\n  @Input() shouldAutoDestruct = true;\n\n  /**\n   * Label for the close button, if present\n   * @example \"Remove [tag name]\"\n   */\n  @Input() closeLabel?: string;\n\n  /**\n   * Whether tag is disabled\n   */\n  @Input() isDisabled?: boolean;\n\n  /**\n   * Whether tag has custom icon\n   */\n  @Input() hasCustomIcon?: boolean;\n\n  /**\n   * Output event when clickable tag is clicked\n   */\n  @Output() tagClick = new EventEmitter<MouseEvent>();\n\n  /**\n   * Output event when tag is closed. Focus must be set to either previous tag, next tag or any relevant element.\n   */\n  @Output() closeClick = new EventEmitter<MouseEvent>();\n\n  constructor(private el: ElementRef) {}\n\n  /**\n   * @ignore\n   */\n  getTagVariantClass(): string {\n    if (!this.variant) {\n      return '';\n    }\n    return `${this.tagClassName}--${this.variant}`;\n  }\n\n  /**\n   * @ignore\n   */\n  getTagSizeClass(): string {\n    if (!this.size || this.size === 'md') {\n      return '';\n    }\n    return `${this.tagClassName}--${this.size}`;\n  }\n\n  /**\n   * @ignore\n   */\n  getTagDisabledClass(): string {\n    if (!this.isDisabled) {\n      return '';\n    }\n    return `${this.tagClassName}--disabled`;\n  }\n\n  /**\n   * @ignore\n   */\n  removeTag(event: MouseEvent) {\n    event?.preventDefault();\n    event?.stopImmediatePropagation();\n    if (this.shouldAutoDestruct) {\n      this.el?.nativeElement?.remove();\n    }\n    this.closeClick.emit(event);\n  }\n\n  focusIconButton() {\n    this.el?.nativeElement?.querySelector('nj-icon-button button')?.focus();\n  }\n}\n","<div class=\"nj-tag\" [ngClass]=\"[getTagVariantClass(), getTagSizeClass(), getTagDisabledClass()]\">\n  <!-- Icon -->\n  <span aria-hidden=\"true\" class=\"nj-tag__icon nj-icon-material material-icons\" *ngIf=\"iconName && !hasCustomIcon\">{{\n    iconName\n  }}</span>\n  <span aria-hidden=\"true\" class=\"nj-tag__icon\" *ngIf=\"hasCustomIcon\">\n    <ng-content select=\"[njTagIcon]\"></ng-content>\n  </span>\n\n  <ng-container *ngTemplateOutlet=\"tagWrapper\"></ng-container>\n\n  <!-- Close button -->\n  <nj-icon-button\n    *ngIf=\"isClosable && !isDisabled\"\n    icon=\"close\"\n    class=\"nj-tag__close\"\n    size=\"2xs\"\n    type=\"button\"\n    [label]=\"closeLabel\"\n    (buttonClick)=\"removeTag($event)\"\n  >\n  </nj-icon-button>\n</div>\n\n<!-- Render a link, a button or a span for the tag content -->\n<ng-template #tagWrapper>\n  <a\n    *ngIf=\"href\"\n    class=\"nj-tag__link\"\n    [attr.href]=\"isDisabled ? null : href\"\n    [attr.target]=\"isDisabled ? null : target\"\n    [attr.role]=\"isDisabled ? 'link' : null\"\n    [attr.aria-disabled]=\"isDisabled ? 'true' : null\"\n    (click)=\"isClickable ? tagClick?.emit($event) : null\"\n  >\n    <ng-container *ngTemplateOutlet=\"tagContent\"></ng-container>\n  </a>\n\n  <button\n    *ngIf=\"!href && isClickable\"\n    class=\"nj-tag__button\"\n    [attr.disabled]=\"isDisabled ? 'disabled' : null\"\n    (click)=\"tagClick?.emit($event)\"\n  >\n    <ng-container *ngTemplateOutlet=\"tagContent\"></ng-container>\n  </button>\n\n  <p *ngIf=\"!href && !isClickable\" class=\"nj-tag__text\">\n    <ng-container *ngTemplateOutlet=\"tagContent\"></ng-container>\n  </p>\n</ng-template>\n\n<!-- Tag inner text content -->\n<ng-template #tagContent>\n  <ng-content></ng-content>\n</ng-template>\n","import {CommonModule, DOCUMENT} from '@angular/common';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChildren,\n  ElementRef,\n  forwardRef,\n  Inject,\n  Input,\n  OnDestroy,\n  OnInit,\n  QueryList,\n  ViewChild,\n  ViewChildren,\n  ViewEncapsulation,\n} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {fromEvent, race, Subject, takeUntil} from 'rxjs';\nimport {selectAnimations} from '../../shared/animations';\nimport {FormFieldDirective} from '../form-field/form-field.directive';\nimport {FormItemComponent} from '../form-item/form-item.component';\nimport {ListGroupComponent} from '../list-group/list-group.component';\nimport {ListItemComponent} from '../list-item/list-item.component';\nimport {TagComponent} from '../tag/tag.component';\nimport {TagSize} from '../tag/tag.model';\n\n@Component({\n  selector: 'nj-multi-select',\n  templateUrl: './multi-select.component.html',\n  styleUrls: ['./multi-select.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => MultiSelectComponent),\n      multi: true,\n    },\n  ],\n  animations: [selectAnimations.transformList],\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [TagComponent, FormItemComponent, FormFieldDirective, ListGroupComponent, CommonModule]\n})\nexport class MultiSelectComponent\n  extends FormItemComponent\n  implements OnInit, AfterViewInit, ControlValueAccessor, OnDestroy {\n  private static readonly ESCAPE_CODE = 'Escape';\n  private static readonly ENTER_CODE = 'Enter';\n  private static readonly UP_CODE = 'ArrowUp';\n  private static readonly DOWN_CODE = 'ArrowDown';\n  /*\n    Regex matching every alpha-numeric characters.\n\n    \\d : every digits\n    \\p{Letter} : every letters in the latin alphabet including letters with diacritics\n\n    The \"u\" flag enables unicode mode required to use `\\p{Letter}`.\n\n    See :\n    - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions/Unicode_Property_Escapes#general_categories\n    - https://unicode.org/reports/tr18/#General_Category_Property\n  */\n  private static readonly ALPHA_NUMERIC_REGEX = /^[\\d\\p{Letter}]$/u;\n\n  /**\n   * @ignore\n   */\n  private _onChange = (_: any): void => {\n  };\n\n  /**\n   * @ignore\n   */\n  private _onTouched = (): void => {\n  };\n\n  /**\n   * Notifier used to stop items click event subscription.\n   * @ignore\n   */\n  private unsubscribe = new Subject<void>();\n\n  private childOptionsChange = new Subject<void>();\n\n  /**\n   * @ignore\n   */\n  isOpen = false;\n\n  /**\n   * @ignore\n   */\n  selectedIndexes: Set<number> = new Set<number>();\n\n  /**\n   * @ignore\n   */\n  selectedValues: Set<string> = new Set<string>();\n\n  /**\n   * Icon name\n   */\n  @Input() iconName = 'keyboard_arrow_down';\n\n  /**\n   * Label used for accessibility related attributes on button and list.\n   * Should be the same value (text only) as the `<label>` element\n   */\n  @Input() fieldLabel: string;\n\n  /**\n   * Instructions on how to navigate the list. It is append after the input label.\n   * @example \"Use up and down arrows and Enter to select a value\"\n   */\n  @Input() listNavigationLabel: string;\n\n  /**\n   * Button default label when no value is selected. It is appended after the input label.\n   * @example \"Select a value\"\n   */\n  @Input() buttonDefaultValueLabel: string;\n\n  /**\n   * Max tags to display\n   */\n  @Input() maxTagsToDisplay: number;\n\n  /**\n   * Whether or no to display selected items. When set to `false` and number of selected > 1,\n   * instead of displaying each selected item as tags it only display one tag `X selected`\n   */\n  @Input() displaySelectedItems = true;\n\n  /**\n   * Selected text when `displaySelectedItems = false`:\n   * @example '5 selected`\n   */\n  @Input() selectedText: string = 'selected';\n\n  /**\n   * Selected options tag color. Can only be grey or brand\n   */\n  @Input() tagColor: 'brand' | 'grey' = 'grey';\n\n  /**\n   * Tag close label for accessibility, default is `Deselect` and it will be followed by the tag label. So focusing the close icon will read `Remove tag label`.\n   * Make sure to set a meaningful value and a translated one\n   */\n  @Input() tagCloseLabel = 'Deselect';\n\n  /**\n   * Tag close label for accessibility, default is `Deselect all`. So focusing the close icon will read `Deselect all`.\n   * Make sure to set a meaningful value and a translated one\n   */\n  @Input() tagResetSelectionLabel?: string = 'Deselect all';\n\n  /**\n   * Trigger button to toggle the list\n   * @ignore\n   */\n  @ViewChild('button') buttonEl: ElementRef<HTMLButtonElement>;\n\n  /**\n   * Trigger button to toggle the list\n   * @ignore\n   */\n  @ViewChild('input') input: ElementRef<HTMLInputElement>;\n\n  /**\n   * List containing options\n   * @ignore\n   */\n  @ViewChild(ListGroupComponent) listEl: ListGroupComponent;\n\n  /**\n   * List containing tags\n   * @ignore\n   */\n  @ViewChildren('tags') tags: QueryList<TagComponent>;\n\n  /**\n   * Option items\n   * @ignore\n   */\n  @ContentChildren(ListItemComponent, {descendants: true}) selectOptions: QueryList<ListItemComponent>;\n\n  constructor(private readonly element: ElementRef<HTMLElement>, private readonly cdr: ChangeDetectorRef, @Inject(DOCUMENT) private document) {\n    super();\n  }\n\n  ngOnInit() {\n    fromEvent(this.document, 'click')\n      .pipe(takeUntil(this.unsubscribe))\n      .subscribe((e: MouseEvent) => this.handleOutsideClick(e));\n  }\n\n  ngAfterViewInit() {\n    this.setInputsAndListenersOnOptions();\n    this.updateSelectedIndexes();\n    this.cdr.detectChanges();\n\n    this.selectOptions?.changes\n      .pipe(takeUntil(this.unsubscribe))\n      .subscribe(() => {\n        setTimeout(() => {\n          this.setInputsAndListenersOnOptions();\n          this.updateSelectedIndexes();\n          this.cdr.detectChanges();\n        });\n      });\n  }\n\n  ngOnDestroy() {\n    this.unsubscribe.next();\n    this.unsubscribe.complete();\n  }\n\n  setInputsAndListenersOnOptions() {\n    this.childOptionsChange.next();\n    const unsubscribeCond$ = race(this.unsubscribe, this.childOptionsChange);\n\n    this.selectOptions?.forEach((item, index) => {\n      item.role = 'option';\n      item.updateSelected(this.selectedIndexes.has(index));\n      item.isCheckboxContent = true;\n      item.checkboxContentId = this.getOptionId(index);\n\n      item.itemClick\n        .pipe(takeUntil(unsubscribeCond$))\n        .subscribe(() => {\n          this.toggleItem(item, index);\n        });\n    });\n  }\n\n  updateSelectedIndexes() {\n    const selectOptionsArr = this.selectOptions?.toArray();\n    if (selectOptionsArr) {\n      this.selectedValues = new Set(\n        [...this.selectedValues].filter(value => selectOptionsArr.some(opt => {\n          return opt?.getValue() === value;\n        }))\n      );\n\n      this.selectedIndexes = new Set(\n        selectOptionsArr\n          .map((opt, index) => {\n            return this.selectedValues.has(opt.getValue()) ? index : -1;\n          })\n          .filter(index => index >= 0)\n      );\n    } else {\n      this.selectedIndexes.clear();\n      this.selectedValues.clear();\n    }\n\n    this.updateOptionsActive();\n  }\n\n  /**\n   * @ignore\n   */\n  toggleByIndex(e: MouseEvent, index: number, tagIndex: number) {\n    e?.stopPropagation();\n    const item = this.selectOptions.get(index);\n    this.toggleItem(item, index);\n    // When clicking with a mouse e.detail counts the number of clicks, however when using keyboard it is always 0\n    const isEventTriggeredWithKeyboard = e?.detail === 0;\n    if (!isEventTriggeredWithKeyboard) {\n      this.buttonEl?.nativeElement?.focus();\n      return;\n    }\n    // We use a set timeout to make sure the focus is done after is re-rendered\n    setTimeout(() => {\n      if (this.tags.length) {\n        const indexToFocus = tagIndex === this.tags.length ? tagIndex - 1 : tagIndex;\n        this.tags.get(indexToFocus)?.focusIconButton();\n      } else {\n        this.buttonEl?.nativeElement?.focus();\n      }\n    });\n  }\n\n  /**\n   * @ignore\n   */\n  resetSelection(e: Event) {\n    e.stopPropagation();\n    this.buttonEl.nativeElement.focus();\n    this.selectedIndexes.clear();\n    this.selectedValues.clear();\n    this.updateOptionsActive();\n    this._onChange(Array.from(this.selectedValues));\n  }\n\n  private toggleItem(item: ListItemComponent, index: number) {\n    if (!item) {\n      return;\n    }\n    this.toggleValueInSelectedValue(item?.getValue());\n    this.toggleIndexInSelected(index);\n    this.updateOptionsActive();\n    this.cdr.markForCheck();\n    this._onChange(Array.from(this.selectedValues));\n  }\n\n  private toggleValueInSelectedValue(value: string) {\n    if (this.selectedValues.has(value)) {\n      this.selectedValues.delete(value);\n    } else {\n      this.selectedValues.add(value);\n    }\n  }\n\n  private toggleIndexInSelected(index: number) {\n    if (this.selectedIndexes.has(index)) {\n      this.selectedIndexes.delete(index);\n    } else {\n      this.selectedIndexes.add(index);\n    }\n  }\n\n  private openList() {\n    this.isOpen = true;\n\n    this.focusedIndex = this.selectedIndexes.size ? Array.from(this.selectedIndexes)[this.selectedIndexes.size - 1] : 0;\n\n    this.selectOptions?.toArray().forEach((el, i) => {\n      if (!el) {\n        return;\n      }\n      el.isActive = this.selectedIndexes.has(i);\n    });\n\n    setTimeout(() => {\n      if (!this.selectedIndexes?.size) {\n        // Focus the `ul` element\n        this.listEl?.rootEl.nativeElement.focus();\n        // The scrolling element is not the `ul` node but the `nj-list-group`\n        this.listEl?.element.nativeElement.scrollTo({top: 0});\n      }\n    });\n  }\n\n  private closeList() {\n    this.isOpen = false;\n    this.cdr.markForCheck();\n  }\n\n  /**\n   * @ignore\n   */\n  toggleIsOpen() {\n    if (this.isOpen) {\n      this.closeList();\n    } else {\n      this.openList();\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  handleListKeydown(e: KeyboardEvent) {\n    // Escape key closes the list and focuses the button\n    if (e.code === MultiSelectComponent.ESCAPE_CODE) {\n      this.closeList();\n      setTimeout(() => {\n        this.buttonEl?.nativeElement.focus();\n      });\n    }\n\n    // Navigate between options and set `focusedIndex`\n    if (e.code === MultiSelectComponent.UP_CODE) {\n      e.preventDefault();\n      // Don't loop back to the end of the list\n      if (this.focusedIndex > 0) {\n        this.focusedIndex -= 1;\n      }\n    }\n\n    if (e.code === MultiSelectComponent.DOWN_CODE) {\n      e.preventDefault();\n      // Don't loop back to the begining of the list\n      if (this.focusedIndex < this.selectOptions?.length - 1) {\n        this.focusedIndex += 1;\n      }\n    }\n\n    // Select the current `focusedIndex` option\n    if (e.code === MultiSelectComponent.ENTER_CODE) {\n      e.preventDefault();\n      if (this.focusedIndex !== -1) {\n        this.toggleItem(this.selectOptions?.get(this.focusedIndex), this.focusedIndex);\n        this._onChange(Array.from(this.selectedValues));\n      }\n    }\n\n    // Jump to first option matching first letter\n    if (MultiSelectComponent.ALPHA_NUMERIC_REGEX.test(e.key)) {\n      const goToIndex = this.selectOptions\n        ?.toArray()\n        .findIndex(\n          (item) => item.getValue()[0].toLowerCase() === e.key.toLowerCase()\n        );\n\n      if (goToIndex !== -1) {\n        this.focusedIndex = goToIndex;\n      }\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  handleFocusOut(e: FocusEvent) {\n    const relatedTarget = e?.relatedTarget as Node;\n    if (!relatedTarget) {\n      return;\n    }\n    if (!this.element?.nativeElement?.contains(relatedTarget)) {\n      this.closeList();\n\n      if (this._onTouched) {\n        this._onTouched();\n      }\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  handleOutsideClick(e: MouseEvent) {\n    if (!this.element?.nativeElement?.contains(e.target as Node)) {\n      this.closeList();\n\n      if (this._onTouched) {\n        this._onTouched();\n      }\n    }\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  registerOnChange(fn: any): void {\n    this._onChange = fn;\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  registerOnTouched(fn: any): void {\n    this._onTouched = fn;\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  setDisabledState(isDisabled: boolean): void {\n    this.isDisabled = isDisabled;\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  writeValue(values?: string[]): void {\n    this.selectedValues.clear();\n    this.selectedIndexes.clear();\n    if (values?.length) {\n      for (const value of values) {\n        this.selectedValues.add(value);\n        const indexToAdd = this.selectOptions?.toArray()?.findIndex(item => item.getValue() === value);\n        if (indexToAdd >= 0) {\n          this.selectedIndexes.add(indexToAdd);\n        }\n      }\n    }\n    this.updateOptionsActive();\n    this.cdr.markForCheck();\n  }\n\n  private updateOptionsActive() {\n    this.selectOptions?.forEach((item) => {\n      item.updateSelected(this.selectedValues.has(item.getValue()));\n    });\n  }\n\n  /**\n   * Label (≠ value) of selected option\n   * @ignore\n   */\n  getLabelAtIndex(index: number): string {\n    return this.selectOptions?.get(index)?.getLabel() ?? '';\n  }\n\n  /**\n   * Close aria Label of taf to close\n   * @param index\n   */\n  getTagCloseLabel(index: number): string {\n    return `${this.tagCloseLabel} ${this.getLabelAtIndex(index)}`;\n  }\n\n  /**\n   * Aria-label for the trigger button element.\n   * @ignore\n   */\n  get buttonLabel(): string {\n    return `${this.fieldLabel} - ${this.buttonDefaultValueLabel}`;\n  }\n\n  /**\n   * @ignore\n   */\n  get formattedInputValue(): string {\n    if (!this.selectedValues) {\n      return '';\n    }\n    return Array.from(this.selectedValues).join(',');\n  }\n\n  /**\n   * @ignore\n   */\n  getAdditionalClass(): string {\n    return `nj-form-item--select nj-form-item--custom-list nj-form-item--multi-select${\n      this.isOpen ? ' nj-form-item--open' : ''\n    }`;\n  }\n\n  /**\n   * @ignore\n   */\n  getSubscriptId(): string {\n    return `${this.inputId}-subscript`;\n  }\n\n  /**\n   * @ignore\n   */\n  getInstructionsId(): string {\n    return `${this.inputId}-instructions`;\n  }\n\n  /**\n   * @ignore\n   */\n  getDescriptionId(): string {\n    return `${this.getSubscriptId()} ${this.getInstructionsId()}`;\n  }\n\n  /**\n   * Index of the currently focused option.\n   */\n  private get focusedIndex(): number {\n    return this.selectOptions\n      ?.toArray()\n      .findIndex(\n        (item) => this.document.activeElement === item.el.nativeElement\n      );\n  }\n\n  private set focusedIndex(value: number) {\n    this.selectOptions?.forEach((el, i) => {\n      el.ariaSelected = i === value;\n    });\n\n    setTimeout(() => {\n      if (value >= 0) {\n        this.selectOptions?.get(value)?.el?.nativeElement?.focus();\n      }\n    });\n  }\n\n  /**\n   * @ignore\n   */\n  get selectedIndexesToShow(): number[] {\n    if (!this.selectedIndexes) {\n      return;\n    }\n    if (!this.maxTagsToDisplay) {\n      return [...this.selectedIndexes];\n    }\n    return [...this.selectedIndexes].splice(0, this.maxTagsToDisplay);\n  }\n\n  /**\n   * @ignore\n   */\n  get tagSize(): TagSize {\n    switch (this.size) {\n      case 'xlarge':\n        return 'md';\n      case 'small':\n        return 'xs';\n      default:\n        return 'sm';\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  get selectIndexAsArray(): number[] {\n    return [...this.selectedIndexes];\n  }\n\n  private getOptionId(index: number): string {\n    return `${this.inputId}_option-${index}`;\n  }\n}\n","<nj-form-item\n  [hasError]=\"hasError\"\n  [hasSuccess]=\"hasSuccess\"\n  [hasHint]=\"hasHint\"\n  [isDisabled]=\"isDisabled\"\n  [hasCustomIcon]=\"hasCustomIcon\"\n  [isFloatingLabel]=\"isFloatingLabel\"\n  [iconName]=\"iconName\"\n  [size]=\"size\"\n  [isSelect]=\"true\"\n  [additionalClass]=\"getAdditionalClass()\"\n  [inputId]=\"inputId\"\n  (focusout)=\"handleFocusOut($event)\"\n>\n  <input\n    #input\n    type=\"text\"\n    readonly\n    [value]=\"formattedInputValue\"\n    [attr.id]=\"inputId\"\n    [disabled]=\"isDisabled\"\n    tabindex=\"-1\"\n    aria-hidden=\"true\"\n    njFormField\n  />\n  <ng-content njFormLabel select=\"[njFormLabel]\"></ng-content>\n  <ng-content njFormSubscript select=\"[njFormSubscript]\"></ng-content>\n  <ng-container njFormAdditionalContent>\n    <p [id]=\"getInstructionsId()\" hidden>{{ listNavigationLabel }}</p>\n    <button\n      #button\n      type=\"button\"\n      class=\"nj-form-item__custom-list-button\"\n      aria-haspopup=\"listbox\"\n      [attr.aria-expanded]=\"isOpen\"\n      role=\"combobox\"\n      [attr.aria-label]=\"buttonLabel\"\n      [attr.tabindex]=\"isOpen ? -1 : null\"\n      [attr.aria-describedby]=\"getDescriptionId()\"\n      (click)=\"toggleIsOpen()\">\n      <span class=\"nj-sr-only\">{{buttonLabel}}</span>\n    </button>\n    <div class=\"nj-form-item__selected-tags\" (click)=\"toggleIsOpen()\">\n      <ng-container *ngIf=\"selectIndexAsArray?.length as numOfSelected\">\n        <ng-container *ngIf=\"displaySelectedItems\">\n          <nj-tag *ngFor=\"let optionIndex of selectedIndexesToShow; let i = index\"\n                  #tags\n                  [variant]=\"tagColor\"\n                  [size]=\"tagSize\"\n                  [isClosable]=\"true\"\n                  [shouldAutoDestruct]=\"false\"\n                  [closeLabel]=\"getTagCloseLabel(optionIndex)\"\n                  (closeClick)=\"toggleByIndex($event, optionIndex, i)\">\n            {{getLabelAtIndex(optionIndex)}}\n          </nj-tag>\n          <nj-tag *ngIf=\"maxTagsToDisplay && numOfSelected > maxTagsToDisplay\"\n                  [variant]=\"tagColor\"\n                  [size]=\"tagSize\">\n            +{{numOfSelected - maxTagsToDisplay}}\n          </nj-tag>\n        </ng-container>\n        <ng-container *ngIf=\"!displaySelectedItems\">\n          <nj-tag\n            *ngIf=\"numOfSelected === 1\"\n            [variant]=\"tagColor\"\n            [size]=\"tagSize\"\n            [isClosable]=\"true\"\n            [shouldAutoDestruct]=\"false\"\n            [closeLabel]=\"getTagCloseLabel(selectIndexAsArray?.[0])\"\n            (closeClick)=\"toggleByIndex($event, selectIndexAsArray?.[0], 0)\">\n            {{getLabelAtIndex(selectIndexAsArray?.[0])}}\n          </nj-tag>\n          <nj-tag\n            *ngIf=\"numOfSelected > 1\"\n            [variant]=\"tagColor\"\n            [isClosable]=\"true\"\n            [shouldAutoDestruct]=\"false\"\n            [size]=\"tagSize\"\n            [closeLabel]=\"tagResetSelectionLabel\"\n            (closeClick)=\"resetSelection($event)\">\n            {{numOfSelected}} {{selectedText}}\n          </nj-tag>\n        </ng-container>\n      </ng-container>\n    </div>\n    <nj-list-group\n      class=\"nj-form-item__list nj-form-item__list--no-animate\"\n      [hidden]=\"!isOpen\"\n      [@transformList]=\"isOpen ? 'open': 'void'\"\n      [isDense]=\"true\"\n      [hasBorder]=\"false\"\n      [isClickable]=\"true\"\n      [isCustomSelectList]=\"true\"\n      [isCheckboxList]=\"true\"\n      tabindex=\"-1\"\n      [ariaLabel]=\"fieldLabel\"\n      (keydown)=\"handleListKeydown($event)\"\n    >\n      <ng-content select=\"[njSelectOptions]\"></ng-content>\n    </nj-list-group>\n  </ng-container>\n</nj-form-item>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { IconButtonComponent } from '../icon-button/icon-button.component';\nimport { IconComponent } from '../icon/icon.component';\n\n@Component({\n  selector: 'nj-pagination',\n  templateUrl: './pagination.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [IconComponent, IconButtonComponent, CommonModule]\n})\nexport class PaginationComponent {\n  /**\n   * Text alternative for assistive technologies for previous button\n   * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-label\n   */\n  @Input() ariaLabelNext: string;\n\n  /**\n   * Text alternative for assistive technologies for next button\n   * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-label\n   */\n  @Input() ariaLabelPrevious: string;\n\n  /**\n   * Total number of pages\n   */\n  @Input() count: number;\n\n  /**\n   * Current page\n   */\n  @Input() currentItem: number = 1;\n\n  /**\n   * Whether pagination should minify\n   */\n  @Input() shouldMinify = true;\n\n  /**\n   * Emits selected item on change\n   */\n  @Output() selectedItem = new EventEmitter<number>();\n\n  constructor(private cdr: ChangeDetectorRef) {}\n\n  /**\n   * @ignore\n   */\n  getItems() {\n    return Array.from({ length: this.count }, (_, i) => i + 1);\n  }\n\n  /**\n   * @ignore\n   */\n  goToNext() {\n    if (this.currentItem === this.count) {\n      return;\n    }\n    this.currentItem = this.currentItem + 1;\n    this.selectedItem?.emit(this.currentItem);\n    this.cdr.markForCheck();\n  }\n\n  /**\n   * @ignore\n   */\n  goToPrevious() {\n    if (this.currentItem === 1) {\n      return;\n    }\n    this.currentItem = this.currentItem - 1;\n    this.selectedItem?.emit(this.currentItem);\n    this.cdr.markForCheck();\n  }\n\n  /**\n   * @ignore\n   */\n  goToItem(item: number) {\n    if (item > this.count || this.currentItem < 1) {\n      return;\n    }\n    this.currentItem = item;\n    this.selectedItem?.emit(this.currentItem);\n    this.cdr.markForCheck();\n  }\n\n  /**\n   * @ignore\n   */\n  isItemVisible(item: number): boolean {\n    // Always show first, last and selected item\n    if (item === 1 || item === this.count || item === this.currentItem) {\n      return true;\n    }\n    // Always show previous and next values of selected value\n    if (item >= this.currentItem - 1 && item <= this.currentItem + 1) {\n      return true;\n    }\n    if (item < 6 && this.currentItem < 4) {\n      return true;\n    }\n    return item >= this.count - 4 && this.currentItem >= this.count - 2;\n  }\n\n  /**\n   * @ignore\n   */\n  showMoreHorizontal(item: number): boolean {\n    // We want to show on 2nd item if currentItem > 3 or in penultimate if currentItem is in last 3\n    return (item === 2 && this.currentItem > 3) || (item === this.count - 1 && this.currentItem <= this.count - 3);\n  }\n}\n","<nav>\n  <ul class=\"nj-pagination\">\n    <li class=\"nj-pagination__item\">\n      <nj-icon-button size=\"sm\"\n                      icon=\"chevron_left\"\n                      [label]=\"ariaLabelPrevious\"\n                      (buttonClick)=\"goToPrevious()\"\n                      [isDisabled]=\"currentItem === 1\">\n      </nj-icon-button>\n    </li>\n    <ng-container *ngFor=\"let item of getItems()\">\n      <li *ngIf=\"!shouldMinify || isItemVisible(item)\" class=\"nj-pagination__item\"\n          [ngClass]=\"{'nj-pagination__item--active': currentItem === item}\">\n        <button class=\"nj-pagination__link\"\n                (click)=\"goToItem(item)\"\n                [attr.aria-current]=\"currentItem === item ? 'true' : null\">\n          {{item}}\n        </button>\n      </li>\n      <li class=\"nj-pagination__item\"\n          *ngIf=\"shouldMinify && showMoreHorizontal(item)\">\n        <nj-icon name=\"more_horiz\" class=\"nj-pagination__more\" variant=\"inherit\"></nj-icon>\n        <span class=\"nj-sr-only\">...</span>\n      </li>\n    </ng-container>\n\n    <li class=\"nj-pagination__item\">\n      <nj-icon-button size=\"sm\"\n                      icon=\"chevron_right\"\n                      [label]=\"ariaLabelNext\"\n                      (buttonClick)=\"goToNext()\"\n                      [isDisabled]=\"currentItem === count\">\n      </nj-icon-button>\n    </li>\n  </ul>\n</nav>\n","import {animate, AnimationTriggerMetadata, state, style, transition, trigger} from '@angular/animations';\n\n\nexport const ProgressAnimation: {\n  readonly progressFill: AnimationTriggerMetadata;\n} = {\n  progressFill: trigger('progressFill', [\n    state('void', style({transform: 'scaleX(0)'})),\n    state('*', style({transform: 'scaleX(1)'})),\n    transition(':enter',\n      animate('{{duration}}ms cubic-bezier(0.0, 0.0, 0.2, 1)'),\n      {params: {duration: 500}})\n  ])\n};\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\nimport { ProgressAnimation } from './progress.animation';\n\n@Component({\n  selector: 'nj-progress',\n  templateUrl: './progress.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  animations: [ProgressAnimation.progressFill],\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [CommonModule]\n})\nexport class ProgressComponent {\n  /**\n   * @ignore\n   */\n  private readonly progressClassName = 'nj-progress';\n\n  /**\n   * Label of the progressbar\n   */\n  @Input() label: string;\n  /**\n   * Progress value\n   */\n  @Input() value = 0;\n\n  /**\n   * Whether progress description is shown on the right/bottom or hidden\n   */\n  @Input() descriptionPosition: 'right' | 'bottom' | 'none' = 'none';\n\n  /**\n   * Progress min\n   */\n  @Input() min = 0;\n\n  /**\n   * Progress max\n   */\n  @Input() max = 100;\n\n  /**\n   * Whether progress is animated at first render\n   */\n  @Input() isAnimated = true;\n\n  /**\n   * Whether progress has css transitions for progress width\n   */\n  @Input() hasTransition = false;\n\n  /**\n   * Decimal precision of the description text\n   */\n  @Input() decimalPrecision = 0;\n\n  constructor() {}\n\n  /**\n   * @ignore\n   */\n  getTransitionClass(): string {\n    return this.hasTransition ? `${this.progressClassName}--has-transition` : '';\n  }\n\n  /**\n   * @ignore\n   */\n  getDescriptionPositionClass(): string {\n    return this.descriptionPosition === 'right' ? `${this.progressClassName}--has-right-description` : '';\n  }\n\n  /**\n   * @ignore\n   */\n  getFormattedValue(): number {\n    if (this.value > this.max) {\n      return this.max;\n    } else if (this.value < this.min) {\n      return this.min;\n    } else {\n      return this.value;\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  getFormattedPercentage(): string {\n    if (this.value < this.min) {\n      return '0';\n    } else if (this.value > this.max) {\n      return '100';\n    }\n    return Number(((this.getFormattedValue() - this.min) / (this.max - this.min)) * 100).toFixed(this.decimalPrecision);\n  }\n}\n","<div class=\"nj-progress\"\n     role=\"progressbar\"\n     [ngClass]=\"[getTransitionClass(), getDescriptionPositionClass()]\"\n     *ngIf=\"getFormattedPercentage() as percentage\"\n     [attr.aria-valuenow]=\"value\"\n     [attr.aria-valuemin]=\"min\"\n     [attr.aria-valuemax]=\"max\"\n     [attr.aria-label]=\"label\">\n  <div class=\"nj-progress__bar\">\n    <div class=\"nj-progress__indicator\"\n         [style.width.%]=\"percentage\"\n         @progressFill\n         [@.disabled]=\"!isAnimated\">\n    </div>\n  </div>\n  <div aria-hidden=\"true\" class=\"nj-progress__description\" *ngIf=\"descriptionPosition !== 'none'\">\n    {{getFormattedPercentage()}}%\n  </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { RadioSize } from './radio.model';\n\n@Component({\n  selector: 'nj-radio',\n  templateUrl: './radio.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [CommonModule],\n  host: {\n    '[class]': 'classes'\n  }\n})\nexport class RadioComponent {\n  private readonly radioClassName = 'nj-radio';\n\n  /**\n   * Input id\n   */\n  @Input() inputId: string;\n\n  /**\n   * Input name\n   */\n  @Input() name: string;\n\n  /**\n   * Whether input is required or not\n   */\n  @Input() required?: boolean;\n\n  /**\n   * Whether the radio is checked or not\n   */\n  @Input() isChecked = false;\n\n  /**\n   * Input value\n   */\n  @Input() value: string;\n\n  /**\n   * Whether the radio is disabled or not\n   */\n  @Input() isDisabled?: boolean;\n\n  /**\n   * Radio size\n   */\n  @Input() size?: RadioSize = 'md';\n\n  /**\n   * Text alternative for assistive technologies\n   * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-label\n   */\n  @Input() ariaLabel?: string;\n\n  /**\n   * Text alternative for assistive technologies based on visible text\n   * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-labelledby\n   */\n  @Input() ariaLabelledby?: string;\n\n  /**\n   * Output that emits checked value on change only\n   */\n  @Output() valueChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n  constructor(private cdr: ChangeDetectorRef) {}\n\n  /**\n   * @ignore\n   */\n  onInputChange(event: Event) {\n    event.stopPropagation();\n    this.isChecked = !this.isChecked;\n    this.valueChange.emit(this.isChecked);\n  }\n\n  /**\n   * @ignore\n   */\n  _markForCheck() {\n    this.cdr.markForCheck();\n  }\n\n  protected get classes() {\n    const classes = [this.radioClassName];\n\n    if (this.size && this.size !== 'md') {\n      classes.push(`${this.radioClassName}--${this.size}`);\n    }\n\n    return classes;\n  }\n}\n","<label [attr.for]=\"inputId\">\n  <input\n    type=\"radio\"\n    [value]=\"value\"\n    [required]=\"required\"\n    [checked]=\"isChecked\"\n    [disabled]=\"isDisabled\"\n    [attr.id]=\"inputId\"\n    [attr.name]=\"name\"\n    [attr.aria-label]=\"ariaLabel\"\n    [attr.aria-labelledby]=\"ariaLabelledby\"\n    (change)=\"onInputChange($event)\"\n  />\n  <ng-content></ng-content>\n</label>\n","import { CommonModule } from '@angular/common';\nimport {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChildren,\n  EventEmitter,\n  forwardRef,\n  Input,\n  OnDestroy,\n  Output,\n  ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subject, takeUntil } from 'rxjs';\nimport { Utils } from '../../utils/utils.util';\nimport { IconComponent } from '../icon/icon.component';\nimport { RadioComponent } from '../radio/radio.component';\nimport { RadioGroupOrientation } from './radio-group.model';\n\n@Component({\n  selector: 'nj-radio-group',\n  templateUrl: './radio-group.component.html',\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => RadioGroupComponent),\n      multi: true\n    }\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [RadioComponent, CommonModule, IconComponent]\n})\nexport class RadioGroupComponent implements ControlValueAccessor, AfterContentInit, OnDestroy {\n  /**\n   * @ignore\n   */\n  private unsubscribe: Subject<void> = new Subject<void>();\n\n  /**\n   * @ignore\n   */\n  private _value;\n\n  /**\n   * @ignore\n   */\n  private _isDisabled;\n\n  /**\n   * @ignore\n   */\n  private _name;\n\n  /**\n   * @ignore\n   */\n  private _required = false;\n\n  /**\n   * @ignore\n   */\n  private _selected: RadioComponent;\n\n  /**\n   * @ignore\n   */\n  private radioGroupClassName = 'nj-radio-group';\n\n  /**\n   * Radio group selected value\n   */\n  @Input()\n  set value(newValue: any) {\n    if (this._value !== newValue) {\n      this._value = newValue;\n\n      this._updateSelectedRadioFromValue();\n      this._checkSelectedRadioButton();\n    }\n  }\n\n  get value(): any {\n    return this._value;\n  }\n\n  /**\n   * Radio group selected radio component\n   */\n  @Input()\n  set selected(selected: RadioComponent) {\n    this._selected = selected;\n    this.value = selected ? selected.value : null;\n    this._checkSelectedRadioButton();\n  }\n\n  get selected() {\n    return this._selected;\n  }\n\n  /**\n   * 'Whether the radio group is disabled or not, this will force all the children radios be disabled or not depending on this value\n   */\n  @Input()\n  set isDisabled(value: boolean) {\n    this._isDisabled = value;\n    this._updateAllRadiosDisableValue();\n    this._markRadiosForCheck();\n  }\n\n  get isDisabled(): boolean {\n    return this._isDisabled;\n  }\n\n  /**\n   * Radio group name, this will force all the children radios to have this name\n   */\n  @Input()\n  set name(value: string) {\n    this._name = value;\n    this._updateAllRadiosName();\n    this._markRadiosForCheck();\n  }\n\n  get name(): string {\n    return this._name;\n  }\n\n  /**\n   * Whether radio is required or not\n   */\n  @Input()\n  set required(value: boolean) {\n    this._required = value;\n    this._markRadiosForCheck();\n  }\n\n  get required(): boolean {\n    return this._required;\n  }\n\n  /**\n   * Whether the radio group should be displayed in column or row\n   */\n  @Input() orientation: RadioGroupOrientation = 'column';\n\n  /**\n   * Legend to label the radio group\n   */\n  @Input() legend: string;\n\n  /**\n   * Message to provide when radio group is in error state\n   */\n  @Input() errorMessage?: string;\n\n  /**\n   * Whether the input group is in error state\n   */\n  @Input() hasError?: boolean;\n\n  /**\n   * Output that emits checked value on change only\n   */\n  @Output() readonly valueChange: EventEmitter<string> = new EventEmitter<string>();\n\n  /**\n   * All children radio components\n   */\n  @ContentChildren(RadioComponent, { descendants: true }) radios;\n\n  constructor(private cdr: ChangeDetectorRef) {}\n\n  /**\n   * @ignore\n   */\n  private _onChange = (_: any): void => {};\n\n  /**\n   * @ignore\n   */\n  private _onTouched = (): void => {};\n\n  ngAfterContentInit() {\n    this._listenForRadioChange();\n    this._updateSelectedRadioFromValue();\n    this._updateAllRadiosDisableValue();\n    this._updateAllRadiosName();\n  }\n\n  ngOnDestroy() {\n    this.unsubscribe.next();\n    this.unsubscribe.complete();\n  }\n\n  /**\n   * @ignore\n   */\n  private _listenForRadioChange() {\n    if (!this.radios) {\n      return;\n    }\n    this.radios.forEach((radio) => {\n      radio?.valueChange.pipe(takeUntil(this.unsubscribe)).subscribe((isSelected) => {\n        if (isSelected) {\n          this.value = radio?.value;\n          this._onChange(this.value);\n          this.valueChange.emit(this._value);\n        }\n      });\n    });\n  }\n\n  /**\n   * @ignore\n   */\n  private _updateAllRadiosDisableValue() {\n    if (!this.radios || Utils.isUndefinedOrNull(this.isDisabled)) {\n      return;\n    }\n    this.radios.forEach((radio) => {\n      if (radio) {\n        radio.isDisabled = this.isDisabled;\n      }\n    });\n  }\n\n  /**\n   * @ignore\n   */\n  private _updateAllRadiosName() {\n    if (!this.radios || Utils.isUndefinedOrNull(this.name)) {\n      return;\n    }\n    this.radios.forEach((radio) => {\n      if (radio) {\n        radio.name = this.name;\n      }\n    });\n  }\n\n  /**\n   * @ignore\n   */\n  private _checkSelectedRadioButton() {\n    if (this._selected && !this._selected.isChecked) {\n      this._selected.isChecked = true;\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  private _markRadiosForCheck() {\n    if (this.radios) {\n      this.radios.forEach((radio) => radio?._markForCheck());\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  private _updateSelectedRadioFromValue(): void {\n    // If the value already matches the selected radio, do nothing.\n    const isAlreadySelected = this._selected && this._selected.value === this._value;\n\n    if (this.radios && !isAlreadySelected) {\n      this._selected = null;\n      this.radios.forEach((radio) => {\n        if (!radio) {\n          return;\n        }\n        radio.isChecked = this.value === radio.value;\n        if (radio.isChecked) {\n          this._selected = radio;\n        }\n      });\n      this._markRadiosForCheck();\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  registerOnChange(fn: any): void {\n    this._onChange = fn;\n  }\n\n  /**\n   * @ignore\n   */\n  registerOnTouched(fn: any): void {\n    this._onTouched = fn;\n  }\n\n  /**\n   * @ignore\n   */\n  setDisabledState(isDisabled: boolean): void {\n    this.isDisabled = isDisabled;\n    this.cdr.markForCheck();\n  }\n\n  /**\n   * @ignore\n   */\n  writeValue(value: any): void {\n    this.value = value;\n    this.cdr.markForCheck();\n  }\n\n  /**\n   * @ignore\n   */\n  getOrientationClass(): string {\n    if (this.orientation !== 'row') {\n      return '';\n    }\n    return `${this.radioGroupClassName}--${this.orientation}`;\n  }\n}\n","<fieldset class=\"nj-radio-group\" [ngClass]=\"[getOrientationClass(), hasError ? 'nj-radio-group--has-error' : '']\">\n  <legend class=\"nj-radio-group__legend\">\n    {{legend}}\n    <p *ngIf=\"errorMessage\" class=\"nj-radio-group__error-message\">\n      <nj-icon name=\"warning\"></nj-icon>\n      {{errorMessage}}\n    </p>\n  </legend>\n  <ng-content></ng-content>\n</fieldset>\n","export type TSizeVariants = '2xs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';\n\nconst CSSClassesMap =  {\n  '2xs': 'xxs',\n  '2xl': 'xxl',\n};\n\nexport const sizeVariantToCSS = (size: TSizeVariants) => {\n  return CSSClassesMap[size] ?? size;\n};\n","import {CommonModule} from '@angular/common';\nimport {\n  AfterContentInit,\n  booleanAttribute,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChild,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  inject,\n  Input,\n  Output,\n  TemplateRef,\n  ViewChild,\n  ViewEncapsulation\n} from '@angular/core';\nimport {ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {EngieTemplateDirective} from '../../directives/engie-template.directive';\nimport {sizeVariantToCSS, TSizeVariants} from '../../models/size-variant.model';\nimport {Utils} from '../../utils/utils.util';\nimport {IconButtonComponent} from '../icon-button/icon-button.component';\nimport {IconComponent} from '../icon/icon.component';\n\n@Component({\n  selector: 'nj-search',\n  templateUrl: './search.component.html',\n  styleUrls: ['./search.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  providers: [{\n    provide: NG_VALUE_ACCESSOR,\n    useExisting: forwardRef(() => SearchComponent),\n    multi: true\n  }],\n  imports: [\n    CommonModule,\n    IconComponent,\n    IconButtonComponent,\n    FormsModule,\n  ],\n  host: {\n    '[class]': 'classes'\n  }\n})\nexport class SearchComponent implements AfterContentInit, ControlValueAccessor {\n  private readonly defaultInputId = Utils.getUID('nj-search-input');\n  private cdr = inject(ChangeDetectorRef);\n  private isDisabledByForm = false;\n  private onChange: ((value: string | null) => void) | null = null;\n\n  protected value: string | null = null;\n  protected onTouched: (() => void) | null = null;\n  protected actionTemplate?: TemplateRef<unknown>;\n\n  @ViewChild('searchInput') private searchInputElement?: ElementRef<HTMLInputElement>;\n\n  /**\n   * Specifies whether the element is disabled or not.\n   */\n  @Input({transform: booleanAttribute}) disabled= false;\n\n  /**\n   * HTML input id\n   */\n  @Input() inputId?: string;\n\n  /**\n   * Placeholder input text.\n   */\n  @Input() placeholder?: string;\n\n  /**\n   * The size of the search component.\n   */\n  @Input() scale?: Extract<TSizeVariants, 'sm' | 'md' | 'lg' | 'xl'>;\n\n  /**\n   * Reset button alternative label for assistive technologies\n   */\n  @Input() altResetButtonLabel?: string;\n\n  /**\n   * Alternative label for assistive technologies\n   */\n  @Input() altLabel?: string;\n\n  /**\n   * Input keyboard keydown events.\n   */\n  @Output() enterKeydown = new EventEmitter<void>();\n\n  @ContentChild(EngieTemplateDirective) protected element?: EngieTemplateDirective;\n\n  ngAfterContentInit() {\n    if (this.element?.selector === 'action') {\n      this.actionTemplate = this.element.templateRef;\n    }\n  }\n\n  protected get classes() {\n    const classes = ['nj-search'];\n    if (this.scale) {\n      classes.push(`nj-search--${sizeVariantToCSS(this.scale)}`);\n    }\n\n    return classes;\n  }\n\n  protected get isDisabled() {\n    return this.disabled || this.isDisabledByForm;\n  }\n\n  protected get finalInputId() {\n    return this.inputId || this.defaultInputId;\n  }\n\n  protected valueChange(value: string)  {\n    this.value = value;\n    this.onChange?.(value);\n  }\n\n  protected onClearValue()  {\n    this.value = null;\n    this.onChange?.(this.value);\n    this.searchInputElement?.nativeElement.focus();\n  }\n\n  //<editor-fold desc=\"ControlValueAccessor implementation\">\n  /**\n   * @ignore\n   */\n  writeValue(value: string): void {\n    if (this.value === value) {\n      return;\n    }\n    this.value = value;\n    this.cdr.markForCheck();\n  }\n\n  /**\n   * @ignore\n   */\n  registerOnChange(onChange: (value: string | null) => void): void {\n    this.onChange = onChange;\n  }\n\n  /**\n   * @ignore\n   */\n  registerOnTouched(onTouched: () => void): void {\n    this.onTouched = onTouched;\n  }\n\n  /**\n   * @ignore\n   */\n  setDisabledState(isDisabled: boolean): void {\n    this.isDisabledByForm = isDisabled;\n  }\n  //</editor-fold>\n}\n","<div class=\"nj-search__field-wrapper\">\n  <nj-icon name=\"search\" ariaLabel=\"search icon\" class=\"nj-search__icon\"></nj-icon>\n  <label *ngIf=\"altLabel\" [for]=\"finalInputId\" class=\"nj-sr-only\" aria-hidden=\"true\">\n    {{ altLabel }}\n  </label>\n  <input\n    #searchInput\n    type=\"search\"\n    class=\"nj-search__field\"\n    [id]=\"finalInputId\"\n    [ngModel]=\"value\"\n    [attr.placeholder]=\"placeholder\"\n    [disabled]=\"isDisabled\"\n    (focus)=\"onTouched?.()\"\n    (keydown.enter)=\"enterKeydown.next()\"\n    (ngModelChange)=\"valueChange($event)\">\n  <nj-icon-button\n    *ngIf=\"value?.length > 0\"\n    icon=\"cancel\"\n    class=\"nj-search__clear-button\"\n    [label]=\"altResetButtonLabel\"\n    [isDisabled]=\"isDisabled\"\n    (buttonClick)=\"onClearValue()\"></nj-icon-button>\n</div>\n<ng-container *ngIf=\"actionTemplate\" [ngTemplateOutlet]=\"actionTemplate\"></ng-container>\n","import {ChangeDetectorRef, Directive, DoCheck, inject, Input} from '@angular/core';\nimport {ButtonComponent} from '../../button/button.component';\nimport {ButtonSize} from '../../button/button.model';\nimport {SearchComponent} from '../search.component';\n\n@Directive({\n  selector: 'nj-button[njSearchButton]',\n  standalone: true,\n  host: {\n    'class': 'nj-search__button'\n  }\n})\nexport class SearchButtonDirective implements DoCheck {\n  private button = inject(ButtonComponent, {self: true});\n  private search = inject(SearchComponent, {host: true});\n  private cdr = inject(ChangeDetectorRef);\n\n  @Input() isDisabled = false;\n\n  private get searchScaleToButtonScale() {\n    const map: Record<typeof this.search.scale, ButtonSize> = {\n      sm: 'small',\n      md: 'medium',\n      lg: 'large',\n      xl: 'xlarge'\n    };\n    return map[this.search.scale];\n  }\n\n  ngDoCheck() {\n    if (this.searchScaleToButtonScale !== this.button.size) {\n      this.button.size = this.searchScaleToButtonScale ?? 'medium';\n      this.cdr.markForCheck();\n    }\n\n    if (this.search.disabled && (this.search.disabled !== this.button.isDisabled)) {\n      this.button.isDisabled = this.search.disabled;\n      this.cdr.markForCheck();\n    }\n\n    if (!this.search.disabled && (this.isDisabled !== this.button.isDisabled)) {\n      this.button.isDisabled = this.isDisabled;\n      this.cdr.markForCheck();\n    }\n  }\n}\n","import {CommonModule} from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  Output\n} from '@angular/core';\nimport {IconComponent} from '../icon/icon.component';\n\n@Component({\n  selector: 'nj-segmented-control-button',\n  templateUrl: './segmented-control-button.component.html',\n  styleUrls: ['./segmented-control-button.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [IconComponent, CommonModule]\n})\nexport class SegmentedControlButtonComponent {\n\n  /**\n   * Segmented control button value\n   */\n  @Input() value: string;\n\n  /**\n   * Whether button is selected or notre\n   */\n  @Input() isSelected = false;\n\n  /**\n   * Whether toggle is disabled or no\n   */\n  @Input() isDisabled: boolean;\n\n  /**\n   * Whether toggle has custom icon\n   */\n  @Input() hasCustomIcon: boolean;\n\n  /**\n   * Toggle material icon name\n   */\n  @Input() iconName: string;\n\n  /**\n   * Button click output. Emits a MouseEvent\n   */\n  @Output() buttonClick = new EventEmitter<MouseEvent>();\n\n  constructor(private el: ElementRef, private cdr: ChangeDetectorRef) {\n  }\n\n  getClientBoundingRect(): DOMRect {\n    return this.el?.nativeElement?.getBoundingClientRect();\n  }\n\n  setIsSelected(isSelected: boolean) {\n    this.isSelected = isSelected;\n    this.cdr.markForCheck();\n  }\n\n  setIsDisabled(isDisabled: boolean) {\n    this.isDisabled = isDisabled;\n    this.cdr.markForCheck();\n  }\n}\n","<button class=\"nj-segmented-control-btn\" type=\"button\"\n        [ngClass]=\"{'nj-segmented-control-btn--selected': isSelected}\"\n        [attr.aria-pressed]=\"isSelected ? 'true' : 'false'\"\n        [disabled]=\"isDisabled\" [attr.data-value]=\"value\" (click)=\"buttonClick.emit($event)\">\n  <nj-icon *ngIf=\"iconName && !hasCustomIcon\" size=\"inherit\" variant=\"inherit\" class=\"nj-segmented-control-btn__icon\" [name]=\"iconName\"></nj-icon>\n  <span class=\"nj-segmented-control-btn__icon\" *ngIf=\"hasCustomIcon\">\n    <ng-content select=\"[njTagIcon]\"></ng-content>\n  </span>\n  <span>\n    <ng-content></ng-content>\n  </span>\n</button>\n","import { CommonModule } from '@angular/common';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChildren,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnDestroy,\n  Output,\n  QueryList,\n  ViewChild\n} from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { Subject, takeUntil } from 'rxjs';\nimport { Utils } from '../../utils/utils.util';\nimport { SegmentedControlButtonComponent } from '../segmented-control-button/segmented-control-button.component';\nimport { SegmentedControlSize } from './segmented-control.model';\n\n@Component({\n  selector: 'nj-segmented-control',\n  templateUrl: './segmented-control.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [SegmentedControlButtonComponent, CommonModule]\n})\nexport class SegmentedControlComponent implements ControlValueAccessor, AfterViewInit, OnDestroy {\n  private readonly segmentedControlClass = 'nj-segmented-control';\n\n  /**\n   * @ignore\n   */\n  private unsubscribe: Subject<void> = new Subject<void>();\n\n  /**\n   * @ignore\n   */\n  private _onChange = (_: any): void => {};\n\n  /**\n   * @ignore\n   */\n  private _onTouched = (): void => {};\n\n  /**\n   * @ignore\n   */\n  private _isDisabled: boolean;\n\n  /**\n   * @ignore\n   */\n  private _value: string;\n\n  /**\n   * @ignore\n   */\n  public segmentedButtons: SegmentedControlButtonComponent[];\n\n  /**\n   * Selected value\n   */\n  @Input()\n  set value(value: string) {\n    this._value = value;\n    this.setActive(value);\n  }\n\n  get value(): string {\n    return this._value;\n  }\n\n  /**\n   * Selected aria label\n   */\n  @Input() ariaLabel: string;\n\n  /**\n   * Overrides disabled state on all buttons\n   */\n  @Input()\n  set isDisabled(value: boolean) {\n    this._isDisabled = value;\n    this.setButtonsIsDisabled();\n  }\n\n  get isDisabled(): boolean {\n    return this._isDisabled;\n  }\n\n  /**\n   * Segmented Control size\n   */\n  @Input() size: SegmentedControlSize = 'md';\n\n  /**\n   * @ignore\n   */\n  @ContentChildren(SegmentedControlButtonComponent) segmentedButtonsList: QueryList<SegmentedControlButtonComponent>;\n\n  /**\n   * @ignore\n   */\n  @ViewChild('segmentedControl') segmentedControl: ElementRef<HTMLDivElement>;\n\n  /**\n   * Output that emits value change\n   */\n  @Output() valueChange: EventEmitter<string> = new EventEmitter<string>();\n\n  constructor(private cdr: ChangeDetectorRef) {}\n\n  ngAfterViewInit() {\n    // A render is being done after view init so setTimeout allows us to delay any attribute modification\n    // in the call stack, so it can be taken account on next render only\n    setTimeout(() => {\n      this.segmentedButtons = this.segmentedButtonsList?.toArray();\n      this.setButtonsIsDisabled();\n      this.initializeClickListener();\n      if (this.value) {\n        this.setActive(this.value);\n      }\n    });\n  }\n\n  private setButtonsIsDisabled() {\n    if (!Utils.isUndefinedOrNull(this.isDisabled) && this.segmentedButtons) {\n      for (const segmentedButton of this.segmentedButtons) {\n        segmentedButton.setIsDisabled(this.isDisabled);\n      }\n    }\n  }\n\n  ngOnDestroy() {\n    this.unsubscribe.next();\n    this.unsubscribe.complete();\n  }\n\n  /**\n   * @ignore\n   */\n  private initializeClickListener() {\n    if (Utils.isUndefinedOrNull(this.segmentedButtons)) {\n      return;\n    }\n    this.segmentedButtons.forEach((button, value) => {\n      button.buttonClick.pipe(takeUntil(this.unsubscribe)).subscribe((_) => {\n        button.isSelected = true;\n        this.writeValue(button.value);\n      });\n    });\n  }\n\n  private setActive(buttonValue: string) {\n    if (!this.segmentedButtons) {\n      return;\n    }\n    for (const button of this.segmentedButtons) {\n      if (button?.value === buttonValue) {\n        button.setIsSelected(true);\n        const selectedBoundingRect = button.getClientBoundingRect();\n        const segmentedControlBoundingRect = this.segmentedControl.nativeElement.getBoundingClientRect();\n        const segmentedControlStyle = this.segmentedControl?.nativeElement?.style;\n        segmentedControlStyle.setProperty('--nj-sc-btn-selected-width', `${selectedBoundingRect.width}px`);\n        segmentedControlStyle.setProperty(\n          '--nj-sc-btn-selected-right',\n          `${segmentedControlBoundingRect.right - selectedBoundingRect.right}px`\n        );\n      } else {\n        button.setIsSelected(false);\n      }\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  getSizeClass(): string {\n    if (!this.size || this.size === 'md') {\n      return;\n    }\n    return `${this.segmentedControlClass}--${this.size}`;\n  }\n\n  /**\n   * @ignore\n   */\n  writeValue(value: any): void {\n    if (value === this.value) {\n      return;\n    }\n    this.setActive(value);\n    this.value = value;\n  }\n\n  /**\n   * @ignore\n   */\n  registerOnChange(fn: any): void {\n    this._onChange = fn;\n  }\n\n  /**\n   * @ignore\n   */\n  registerOnTouched(fn: any): void {\n    this._onTouched = fn;\n  }\n\n  /**\n   * @ignore\n   */\n  setDisabledState?(isDisabled: boolean): void {\n    this.isDisabled = isDisabled;\n    this.cdr.markForCheck();\n  }\n}\n","<div class=\"nj-segmented-control\" role=\"group\" [attr.aria-label]=\"ariaLabel\" [ngClass]=\"getSizeClass()\"\n     #segmentedControl>\n  <ng-content></ng-content>\n</div>\n","import {CommonModule, DOCUMENT} from '@angular/common';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChild,\n  ContentChildren,\n  ElementRef,\n  forwardRef,\n  Inject,\n  Input,\n  OnDestroy,\n  QueryList,\n  ViewChild,\n  ViewEncapsulation,\n} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {finalize, race, Subject, takeUntil} from 'rxjs';\nimport {selectAnimations} from '../../shared/animations';\nimport {CustomLabelDirective} from '../custom-label/custom-label.directive';\nimport {FormFieldDirective} from '../form-field/form-field.directive';\nimport {FormItemComponent} from '../form-item/form-item.component';\nimport {ListGroupComponent} from '../list-group/list-group.component';\nimport {ListItemComponent} from '../list-item/list-item.component';\nimport {SelectCustomLabelContext} from './select-custom-label-context.model';\n\n@Component({\n  selector: 'nj-select',\n  templateUrl: './select.component.html',\n  styleUrls: ['./select.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => SelectComponent),\n      multi: true,\n    },\n  ],\n  animations: [selectAnimations.transformList],\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [ListGroupComponent, FormItemComponent, FormFieldDirective, CommonModule]\n})\nexport class SelectComponent\n  extends FormItemComponent\n  implements AfterViewInit, ControlValueAccessor, OnDestroy {\n  private static readonly ESCAPE_CODE = 'Escape';\n  private static readonly ENTER_CODE = 'Enter';\n  private static readonly UP_CODE = 'ArrowUp';\n  private static readonly DOWN_CODE = 'ArrowDown';\n  /*\n    Regex matching every alpha-numeric characters.\n\n    \\d : every digits\n    \\p{Letter} : every letters in the latin alphabet including letters with diacritics\n\n    The \"u\" flag enables unicode mode required to use `\\p{Letter}`.\n\n    See :\n    - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions/Unicode_Property_Escapes#general_categories\n    - https://unicode.org/reports/tr18/#General_Category_Property\n  */\n  private static readonly ALPHA_NUMERIC_REGEX = /^[\\d\\p{Letter}]$/u;\n\n  /**\n   * @ignore\n   */\n  private _onChange = (_: any): void => {\n  };\n\n  /**\n   * @ignore\n   */\n  private _onTouched = (): void => {\n  };\n\n  /**\n   * Notifier used to stop items click event subscription.\n   * @ignore\n   */\n  private unsubscribe = new Subject<void>();\n\n  private childOptionsChange = new Subject<void>();\n\n  /**\n   * @ignore\n   */\n  isOpen = false;\n\n  /**\n   * @ignore\n   */\n  selectedValue = '';\n\n  /**\n   * @ignore\n   */\n  selectedIndex = -1;\n\n  @Input() iconName = 'keyboard_arrow_down';\n\n  /**\n   * Label used for accessibility related attributes on button and list.\n   * Should be the same value (text only) as the `<label>` element\n   */\n  @Input() fieldLabel: string;\n\n  /**\n   * Instructions on how to navigate the list. It is append after the input label.\n   * @example \"Use up and down arrows and Enter to select a value\"\n   */\n  @Input() listNavigationLabel: string;\n\n  /**\n   * Button default label when no value is selected. It is append after the input label.\n   * @example \"Select a value\"\n   */\n  @Input() buttonDefaultValueLabel: string;\n\n  /**\n   * Trigger button to toggle the list\n   * @ignore\n   */\n  @ViewChild('button') buttonEl: ElementRef<HTMLButtonElement>;\n\n  @ViewChild('customLabelEl') protected customLabelEl: ElementRef<HTMLElement>;\n\n  /**\n   * List containing options\n   * @ignore\n   */\n  @ViewChild(ListGroupComponent) listEl: ListGroupComponent;\n\n  /**\n   * Label to display instead of raw text value\n   * @ignore\n   * @example\n   * <ng-template njCustomLabel let-value let-index=\"index\">\n   *  Value: {{value}} - Index: {{index}}\n   * </ng-template>\n   *\n   * @example\n   * <span *njCustomLabel=\"let value;let index=index\">\n   *  Value: {{value}} - Index: {{index}}\n   * </span>\n   */\n  @ContentChild(CustomLabelDirective) protected customLabel?: CustomLabelDirective<SelectCustomLabelContext>;\n\n  /**\n   * Option items\n   * @ignore\n   */\n  @ContentChildren(ListItemComponent, {descendants: true})\n  selectOptions: QueryList<ListItemComponent>;\n\n  constructor(\n    private readonly element: ElementRef<HTMLElement>,\n    private readonly cdr: ChangeDetectorRef,\n    @Inject(DOCUMENT) private document\n  ) {\n    super();\n  }\n\n  ngAfterViewInit() {\n    setTimeout(() => {\n      this.setInputsAndListenersOnOptions();\n\n      this.selectOptions?.changes\n        .pipe(takeUntil(this.unsubscribe))\n        .subscribe(() => {\n          setTimeout(() => {\n            this.setInputsAndListenersOnOptions();\n          });\n        });\n    });\n  }\n\n  ngOnDestroy() {\n    this.unsubscribe.next();\n    this.unsubscribe.complete();\n    this.childOptionsChange.complete();\n  }\n\n  setInputsAndListenersOnOptions() {\n    this.childOptionsChange.next();\n    const unsubscribeCond$ = race(this.unsubscribe, this.childOptionsChange);\n\n    this.selectOptions?.forEach((item) => {\n      item.role = 'option';\n\n      if (this.selectedValue?.trim() !== '') {\n        item.updateSelected(this.selectedValue === item.getValue());\n      }\n\n\n      item.itemClick\n        .pipe(\n          takeUntil(unsubscribeCond$),\n        )\n        .subscribe(() => {\n          const value = item.getValue();\n          this.writeValue(value);\n          this._onChange(value);\n          this.closeList();\n\n          setTimeout(() => {\n            this.buttonEl?.nativeElement.focus();\n          });\n        });\n    });\n\n    // Get selected index on mount based on current value\n    this.selectedIndex = this.selectOptions?.toArray().findIndex(opt => {\n      return opt.getValue() === this.selectedValue;\n    });\n\n    this.cdr.markForCheck();\n  }\n\n  /**\n   * @ignore\n   */\n  getAdditionalClass(): string {\n    const classes = ['nj-form-item--select', 'nj-form-item--custom-list'];\n    if (this.isOpen) {\n      classes.push('nj-form-item--open');\n    }\n\n    if (this.customLabel?.templateRef) {\n      classes.push('nj-form-item--custom-label');\n    }\n    return classes.join(' ');\n  }\n\n  getSubscriptId(): string {\n    return `${this.inputId}-subscript`;\n  }\n\n  getInstructionsId(): string {\n    return `${this.inputId}-instructions`;\n  }\n\n  getDescriptionId(): string {\n    return `${this.getSubscriptId()} ${this.getInstructionsId()}`;\n  }\n\n  /**\n   * Get index of the selected value\n   */\n  private indexForValue(value: string): number {\n    return this.selectOptions\n      ?.toArray()\n      .findIndex((item) => item.getValue() === value);\n  }\n\n  private openList() {\n    this.isOpen = true;\n    this.focusedIndex = this.selectedIndex;\n\n    setTimeout(() => {\n      if (this.selectedIndex === -1) {\n        // Focus the `ul` element\n        this.listEl?.rootEl.nativeElement.focus();\n        // The scrolling element is not the `ul` node but the `nj-list-group`\n        this.listEl?.element.nativeElement.scrollTo({top: 0});\n      }\n    });\n  }\n\n  private closeList() {\n    this.isOpen = false;\n  }\n\n  toggleIsOpen() {\n    if (this.isOpen) {\n      this.closeList();\n    } else {\n      this.openList();\n    }\n  }\n\n  /**\n   * Index of the currently focused option.\n   */\n  private get focusedIndex(): number {\n    return this.selectOptions\n      ?.toArray()\n      .findIndex(\n        (item) => this.document.activeElement === item.el.nativeElement\n      );\n  }\n\n  private set focusedIndex(value: number) {\n    this.selectOptions?.forEach((el, i) => {\n      el.ariaSelected = i === value;\n    });\n\n    setTimeout(() => {\n      if (value !== -1) {\n        this.selectOptions?.get(value).el.nativeElement.focus();\n      }\n    });\n  }\n\n  handleListKeydown(e: KeyboardEvent) {\n    // Escape key closes the list and focuses the button\n    if (e.code === SelectComponent.ESCAPE_CODE) {\n      this.closeList();\n      setTimeout(() => {\n        this.buttonEl?.nativeElement.focus();\n      });\n    }\n\n    // Navigate between options and set `focusedIndex`\n    if (e.code === SelectComponent.UP_CODE) {\n      e.preventDefault();\n      // Dont loop back to the end of the list\n      if (this.focusedIndex > 0) {\n        this.focusedIndex -= 1;\n      }\n    }\n\n    if (e.code === SelectComponent.DOWN_CODE) {\n      e.preventDefault();\n      // Dont loop back to the beginning of the list\n      if (this.focusedIndex < this.selectOptions?.length - 1) {\n        this.focusedIndex += 1;\n      }\n    }\n\n    // Select the current `focusedIndex` option\n    if (e.code === SelectComponent.ENTER_CODE) {\n      e.preventDefault();\n      if (this.focusedIndex !== -1) {\n        const value = this.selectOptions?.get(this.focusedIndex).getValue();\n        this.writeValue(value);\n        this._onChange(value);\n      }\n      this.closeList();\n\n      setTimeout(() => {\n        this.buttonEl?.nativeElement.focus();\n      });\n    }\n\n    // Jump to first option matching first letter\n    if (SelectComponent.ALPHA_NUMERIC_REGEX.test(e.key)) {\n      const goToIndex = this.selectOptions\n        ?.toArray()\n        .findIndex(\n          (item) => item.getValue()[0].toLowerCase() === e.key.toLowerCase()\n        );\n\n      if (goToIndex !== -1) {\n        this.focusedIndex = goToIndex;\n      }\n    }\n  }\n\n  handleFocusout(e: FocusEvent) {\n    if (!this.element.nativeElement?.contains(e.relatedTarget as Node)) {\n      this.closeList();\n\n      if (this._onTouched) {\n        this._onTouched();\n      }\n    }\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  registerOnChange(fn: any): void {\n    this._onChange = fn;\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  registerOnTouched(fn: any): void {\n    this._onTouched = fn;\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  setDisabledState(isDisabled: boolean): void {\n    if (!this.selectedValue) {\n      return;\n    }\n    this.isDisabled = isDisabled;\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  writeValue(value: string): void {\n    this.selectedValue = value;\n    this.selectedIndex = this.indexForValue(value);\n    this.selectOptions?.forEach((item) => {\n      item.updateSelected(item.getValue() === value);\n    });\n    this.cdr.markForCheck();\n  }\n\n  protected get customLabelContext(): SelectCustomLabelContext {\n    const value = this.selectedValue;\n    const index = this.selectedIndex;\n    return {$implicit: value, value, index};\n  }\n\n  /**\n   * Label (≠ value) of selected option\n   * @ignore\n   */\n  get selectedLabel(): string {\n    return this.selectOptions?.get(this.selectedIndex)?.getLabel() ?? '';\n  }\n\n  /**\n   * Aria-label for the trigger button element.\n   * @ignore\n   */\n  get buttonLabel(): string {\n    return `${this.fieldLabel} - ${\n      this.customLabelEl?.nativeElement.innerText || this.selectedValue || this.buttonDefaultValueLabel\n    }`;\n  }\n}\n","<nj-form-item\n  [hasError]=\"hasError\"\n  [hasSuccess]=\"hasSuccess\"\n  [hasHint]=\"hasHint\"\n  [isDisabled]=\"isDisabled\"\n  [hasCustomIcon]=\"hasCustomIcon\"\n  [isFloatingLabel]=\"isFloatingLabel\"\n  [iconName]=\"iconName\"\n  [size]=\"size\"\n  [isSelect]=\"true\"\n  [additionalClass]=\"getAdditionalClass()\"\n  [inputId]=\"inputId\"\n  (focusout)=\"handleFocusout($event)\"\n>\n  <input\n    type=\"text\"\n    readonly\n    [value]=\"selectedLabel\"\n    [attr.id]=\"inputId\"\n    [disabled]=\"isDisabled\"\n    tabindex=\"-1\"\n    aria-hidden=\"true\"\n    njFormField\n  />\n  <ng-content njFormLabel select=\"[njFormLabel]\"></ng-content>\n  <ng-content njFormSubscript select=\"[njFormSubscript]\"></ng-content>\n  <ng-container njFormAdditionalContent>\n    <div\n      *ngIf=\"selectedValue && customLabel?.templateRef\"\n      #customLabelEl\n      class=\"nj-form-item__custom-label\"\n      aria-hidden=\"true\"\n      njFormField>\n      <ng-container [ngTemplateOutlet]=\"customLabel.templateRef\"\n                    [ngTemplateOutletContext]=\"customLabelContext\"></ng-container>\n    </div>\n    <p [id]=\"getInstructionsId()\" hidden>{{ listNavigationLabel }}</p>\n    <button\n      #button\n      type=\"button\"\n      class=\"nj-form-item__custom-list-button\"\n      aria-haspopup=\"listbox\"\n      [attr.aria-expanded]=\"isOpen\"\n      role=\"combobox\"\n      [attr.aria-label]=\"buttonLabel\"\n      [attr.tabindex]=\"isOpen ? -1 : null\"\n      [attr.aria-describedby]=\"getDescriptionId()\"\n      (click)=\"toggleIsOpen()\"\n    ></button>\n    <nj-list-group\n      class=\"nj-form-item__list nj-form-item__list--no-animate\"\n      [hidden]=\"!isOpen\"\n      [@transformList]=\"isOpen ? 'open': 'void'\"\n      [isDense]=\"true\"\n      [hasBorder]=\"false\"\n      [isClickable]=\"true\"\n      [isCustomSelectList]=\"true\"\n      tabindex=\"-1\"\n      [ariaLabel]=\"fieldLabel\"\n      (keydown)=\"handleListKeydown($event)\"\n    >\n      <ng-content select=\"[njSelectOptions]\"></ng-content>\n    </nj-list-group>\n  </ng-container>\n</nj-form-item>\n","import {Directive, inject, TemplateRef} from '@angular/core';\n\n@Directive({\n  selector: '[njSidebarFooter]',\n  standalone: true\n})\nexport class SidebarFooterDirective {\n  templateRef = inject(TemplateRef<unknown>);\n}\n","import {ChangeDetectorRef, Directive, DoCheck, Host, inject, Self} from '@angular/core';\nimport {ListItemComponent} from '../../list-item/list-item.component';\nimport {SidebarComponent} from '../sidebar.component';\n\n@Directive({\n  selector: '[njSidebarItem]',\n  standalone: true\n})\nexport class SidebarItemDirective implements DoCheck {\n  private isCurrentlyFolded: boolean;\n\n  @Host()\n  private sidebar = inject(SidebarComponent);\n\n  @Self()\n  private listItem = inject(ListItemComponent);\n\n  private cdr = inject(ChangeDetectorRef);\n\n  constructor() {\n    this.listItem.hasRightBorder = true;\n    this.updateListItemFoldedState();\n  }\n\n  ngDoCheck() {\n    if (this.isCurrentlyFolded !== this.sidebar.isFolded) {\n      this.updateListItemFoldedState();\n    }\n  }\n\n  private updateListItemFoldedState() {\n    this.isCurrentlyFolded = this.sidebar.isFolded;\n    this.listItem.isIconOnly = this.isCurrentlyFolded;\n    this.cdr.markForCheck();\n  }\n}\n","import {Directive, inject, TemplateRef} from '@angular/core';\nimport {SidebarLogoContext} from '../interfaces/sidebar-logo.context';\n\n@Directive({\n  selector: '[njSidebarLogo]',\n  standalone: true\n})\nexport class SidebarLogoDirective {\n  templateRef = inject(TemplateRef<SidebarLogoContext>);\n}\n","import { CommonModule } from '@angular/common';\nimport {\n  booleanAttribute,\n  ChangeDetectionStrategy,\n  Component,\n  ContentChild,\n  ContentChildren,\n  EventEmitter,\n  HostBinding,\n  Input,\n  Output,\n  QueryList,\n  ViewEncapsulation\n} from '@angular/core';\nimport { ListGroupComponent } from '../list-group/list-group.component';\nimport { ListItemComponent } from '../list-item/list-item.component';\nimport { SidebarFooterDirective } from './directives/sidebar-footer.directive';\nimport { SidebarItemDirective } from './directives/sidebar-item.directive';\nimport { SidebarLogoDirective } from './directives/sidebar-logo.directive';\n\n@Component({\n  selector: 'nj-sidebar',\n  templateUrl: './sidebar.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [\n    CommonModule,\n    ListGroupComponent,\n    ListItemComponent,\n    SidebarFooterDirective,\n    SidebarItemDirective,\n    SidebarLogoDirective\n  ]\n})\nexport class SidebarComponent {\n  @HostBinding('class')\n  private staticClass = 'nj-sidebar';\n\n  /**\n   * Whether the sidebar should be folded\n   */\n  @HostBinding('class.nj-sidebar--folded')\n  @Input({ transform: booleanAttribute })\n  isFolded = false;\n\n  /**\n   * Whether the sidebar should have a fold list item\n   */\n  @Input({ transform: booleanAttribute })\n  hasFoldItem = true;\n\n  /**\n   * Fold list item label\n   */\n  @Input()\n  foldItemLabel = 'Fold';\n\n  /**\n   * Emits an event when fold list item is clicked\n   */\n  @Output()\n  foldItemClicked = new EventEmitter<MouseEvent>();\n\n  @ContentChild(SidebarLogoDirective) protected logo?: SidebarLogoDirective;\n\n  @ContentChildren(SidebarFooterDirective) protected footerElements?: QueryList<SidebarFooterDirective>;\n}\n","<div class=\"nj-sidebar__brand\" *ngIf=\"logo?.templateRef as templateRef\">\n  <ng-container [ngTemplateOutlet]=\"templateRef\" [ngTemplateOutletContext]=\"{isFolded}\"></ng-container>\n</div>\n<nav class=\"nj-sidebar__navigation\">\n  <nj-list-group [isDense]=\"true\" [hasBorder]=\"false\">\n    <ng-content></ng-content>\n  </nj-list-group>\n</nav>\n<nav *ngIf=\"footerElements?.length\" class=\"nj-sidebar__navigation nj-sidebar__navigation--footer\">\n  <nj-list-group [isDense]=\"true\" [hasBorder]=\"false\">\n    <ng-container *ngFor=\"let footerElement of footerElements\" [ngTemplateOutlet]=\"footerElement.templateRef\">\n    </ng-container>\n  </nj-list-group>\n</nav>\n<nj-list-group *ngIf=\"hasFoldItem\" class=\"nj-sidebar__collapse\" [isDense]=\"true\" [hasBorder]=\"false\">\n  <li nj-list-item njSidebarItem class=\"nj-sidebar__fold-btn\" type=\"button\" iconName=\"chevron_left\" (itemClick)=\"foldItemClicked.next($event)\">\n    {{foldItemLabel}}\n  </li>\n</nj-list-group>\n","import {booleanAttribute, Directive, HostBinding, Input} from '@angular/core';\n\n@Directive({\n  selector: '[njSidebarContent]',\n  standalone: true\n})\nexport class SidebarContentDirective {\n  @HostBinding('class')\n  private staticClass = 'nj-sidebar-content';\n\n  @HostBinding('class.nj-sidebar-content--nopush')\n  @Input({transform: booleanAttribute})\n  shouldBeCovered = false;\n}\n","import {Directive, inject, TemplateRef} from '@angular/core';\n\n@Directive({\n  selector: '[njSidepanelFooter]',\n  standalone: true\n})\nexport class SidepanelFooterDirective {\n  templateRef = inject(TemplateRef<unknown>);\n}\n","import {Directive, inject, TemplateRef} from '@angular/core';\n\n@Directive({\n  selector: '[njSidepanelHeader]',\n  standalone: true\n})\nexport class SidepanelHeaderDirective {\n  templateRef = inject(TemplateRef<unknown>);\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ContentChild, HostBinding, ViewEncapsulation } from '@angular/core';\nimport { IconButtonComponent } from '../icon-button/icon-button.component';\nimport { SidepanelFooterDirective } from './directives/sidepanel-footer.directive';\nimport { SidepanelHeaderDirective } from './directives/sidepanel-header.directive';\n\n@Component({\n  selector: 'nj-sidepanel',\n  templateUrl: './sidepanel.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [CommonModule, IconButtonComponent, SidepanelFooterDirective, SidepanelHeaderDirective]\n})\nexport class SidepanelComponent {\n  @HostBinding('class') private staticClass = 'nj-sidepanel';\n\n  @ContentChild(SidepanelHeaderDirective) protected header?: SidepanelHeaderDirective;\n  @ContentChild(SidepanelFooterDirective) protected footer?: SidepanelFooterDirective;\n}\n","<div class=\"nj-sidepanel__header\" *ngIf=\"header?.templateRef as templateRef\">\n  <ng-container [ngTemplateOutlet]=\"templateRef\"></ng-container>\n</div>\n<div class=\"nj-sidepanel__content\">\n  <ng-content></ng-content>\n</div>\n<div class=\"nj-sidepanel__footer\" *ngIf=\"footer?.templateRef as templateRef\">\n  <ng-container [ngTemplateOutlet]=\"templateRef\"></ng-container>\n</div>\n","import {Directive, inject, TemplateRef} from '@angular/core';\n\n@Directive({\n  selector: '[njSidepanelHeaderAction]',\n  standalone: true\n})\nexport class SidepanelHeaderActionDirective {\n  templateRef = inject<TemplateRef<unknown>>(TemplateRef);\n}\n","import {CommonModule} from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  ContentChildren,\n  EventEmitter,\n  HostBinding,\n  Input,\n  Output,\n  QueryList,\n  ViewEncapsulation\n} from '@angular/core';\nimport {IconButtonComponent} from '../icon-button/icon-button.component';\nimport {SidepanelHeaderActionDirective} from './directives/sidepanel-header-action.directive';\n\n@Component({\n  selector: 'nj-sidepanel-header',\n  templateUrl: './sidepanel-header.component.html',\n  styleUrls: ['./sidepanel-header.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [SidepanelHeaderActionDirective, IconButtonComponent, CommonModule]\n})\nexport class SidepanelHeaderComponent {\n  @HostBinding('class') private staticClass = 'nj-sidepanel-header';\n\n\n  /**\n   * Title displayed in the header\n   */\n  @Input() title?: string;\n\n\n  /**\n   * Whether it should display a close icon in the header\n   */\n  @Input() hasCloseIcon = true;\n\n  /**\n   * Emit event when clicking the close icon\n   */\n  @Output() closeIconClicked = new EventEmitter<MouseEvent>();\n\n  @ContentChildren(SidepanelHeaderActionDirective) protected actions: QueryList<SidepanelHeaderActionDirective>;\n\n  protected get shouldDisplayHeaderActions() {\n    return this.hasCloseIcon || this.actions.length;\n  }\n}\n","<span *ngIf=\"title; else noTitle\" class=\"nj-sidepanel-header__title\">{{title}}</span>\n<div class=\"nj-sidepanel-header__actions\" *ngIf=\"shouldDisplayHeaderActions\">\n  <ng-container *ngFor=\"let action of actions\" [ngTemplateOutlet]=\"action.templateRef\"></ng-container>\n  <nj-icon-button *ngIf=\"hasCloseIcon\" variant=\"tertiary\" icon=\"close\" (buttonClick)=\"closeIconClicked.emit($event)\"></nj-icon-button>\n</div>\n\n<ng-template #noTitle>\n  <div class=\"nj-sidepanel-header__custom-title\">\n    <ng-content></ng-content>\n  </div>\n</ng-template>\n","import {Directive, inject, TemplateRef} from '@angular/core';\n\n@Directive({\n  selector: '[njSidepanelLayoutPanel]',\n  standalone: true\n})\nexport class SidepanelLayoutPanelDirective {\n  templateRef = inject(TemplateRef<unknown>);\n}\n","import {animate, AnimationTriggerMetadata, state, style, transition, trigger} from '@angular/animations';\nimport {njSemanticMotionEasingFastOutSlowIn} from '@engie-group/fluid-design-tokens';\n\nexport const defaultParams = {\n  params: {animationDuration: '100ms'},\n};\n\nexport const sidePanelLayoutAnimation: {\n  readonly panelSlideInAndOut: AnimationTriggerMetadata;\n  readonly panelOpened: AnimationTriggerMetadata;\n} = {\n  panelSlideInAndOut: trigger('panelSlideInAndOut', [\n    state('void', style({opacity: 0.9, transform: 'translateX(100%)'})),\n    state('*', style({opacity: 1, transform: 'none'})),\n    transition(\n      ':enter, :leave',\n      animate(`{{animationDuration}} ${njSemanticMotionEasingFastOutSlowIn}`),\n      defaultParams,\n    ),\n  ]),\n  panelOpened: trigger('panelOpened', [\n    state('void', style({paddingRight: 0})),\n    state('false', style({paddingRight: 0})),\n    state('true', style({paddingRight: 'var(--nj-sidepanel-final-width)'})),\n    transition(\n      '* => *',\n      animate(`{{animationDuration}} ${njSemanticMotionEasingFastOutSlowIn}`),\n      defaultParams,\n    ),\n  ]),\n};\n","import { CommonModule } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChild,\n  EventEmitter,\n  HostBinding,\n  inject,\n  Input,\n  Output,\n  ViewEncapsulation\n} from '@angular/core';\nimport { ButtonComponent } from '../button/button.component';\nimport { SidepanelLayoutPanelDirective } from './directives/sidepanel-layout-panel.directive';\nimport { sidePanelLayoutAnimation } from './sidepanel-layout.animations';\n\n@Component({\n  selector: 'nj-sidepanel-layout',\n  templateUrl: 'sidepanel-layout.component.html',\n  animations: [sidePanelLayoutAnimation.panelSlideInAndOut, sidePanelLayoutAnimation.panelOpened],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [ButtonComponent, SidepanelLayoutPanelDirective, CommonModule]\n})\nexport class SidepanelLayoutComponent {\n  private cdr = inject(ChangeDetectorRef);\n\n  protected _isPanelDisplayed = true;\n  protected _animationParams = {};\n\n  @HostBinding('class') private staticClass = 'nj-sidepanel-layout';\n\n  /**\n   * Whether the panel animation should be disabled\n   */\n  @Input()\n  set isAnimationDisabled(value: boolean) {\n    this._animationParams = value && { animationDuration: '0ms' };\n  }\n\n  /**\n   * Whether the panel should be displayed beside or over the content\n   */\n  @HostBinding('class.nj-sidepanel-layout--over-content')\n  @Input()\n  isOverContent = false;\n\n  /**\n   * Emit when sidepanel visibility state change\n   */\n  @Output() sidepanelVisibilityChange = new EventEmitter<boolean>();\n\n  @ContentChild(SidepanelLayoutPanelDirective) protected panel?: SidepanelLayoutPanelDirective;\n\n  /**\n   * Show sidepanel\n   */\n  showPanel() {\n    this.changePanelVisibility(true);\n  }\n\n  /**\n   * Hide sidepanel\n   */\n  hidePanel() {\n    this.changePanelVisibility(false);\n  }\n\n  private changePanelVisibility(isPanelDisplayed: boolean) {\n    if (isPanelDisplayed === this._isPanelDisplayed) {\n      return;\n    }\n    this._isPanelDisplayed = isPanelDisplayed;\n    this.sidepanelVisibilityChange.emit(isPanelDisplayed);\n    this.cdr.markForCheck();\n  }\n}\n","  <div [@panelOpened]=\"{value: !isOverContent && _isPanelDisplayed, params: _animationParams}\" class=\"nj-sidepanel-layout__content\">\n    <ng-content></ng-content>\n  </div>\n  <div [@panelSlideInAndOut]=\"{value: '*', params: _animationParams}\" *ngIf=\"_isPanelDisplayed && panel.templateRef\" class=\"nj-sidepanel-layout__sidepanel\">\n    <ng-container [ngTemplateOutlet]=\"panel.templateRef\"></ng-container>\n  </div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'nj-skeleton-container',\n  templateUrl: './skeleton-container.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true\n})\nexport class SkeletonContainerComponent {\n  /**\n   * Skeleton label (read by screen readers).\n   * Defaults to \"Content is loading\"\n   */\n  @Input() screenReaderLabel?: string = 'Content is loading';\n\n  constructor() {}\n}\n","<div class=\"nj-skeleton-container\">\n  <span class=\"nj-sr-only\">{{screenReaderLabel}}</span>\n  <ng-content></ng-content>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { SkeletonFontSizes } from './skeleton.model';\n\n@Component({\n  selector: 'nj-skeleton-rectangle',\n  templateUrl: './skeleton-rectangle.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [CommonModule]\n})\nexport class SkeletonRectangleComponent {\n  /**\n   * @ignore\n   */\n  private skeletonClassName = 'nj-skeleton';\n\n  /**\n   * Rectangle skeleton height\n   */\n  @Input() height?: string;\n\n  /**\n   * Rectangle skeleton width\n   */\n  @Input() width?: string;\n\n  /**\n   * Rectangle skeleton size (based on font sizes)\n   */\n  @Input() size?: SkeletonFontSizes;\n\n  constructor() {}\n\n  /**\n   * @ignore\n   */\n  getSkeletonSizeClass(): string {\n    if (!this.size) {\n      return '';\n    }\n    return `${this.skeletonClassName}--${this.size}`;\n  }\n}\n","<div aria-hidden=\"true\" class=\"nj-skeleton nj-skeleton--rectangle\" [style.height]=\"height\" [style.width]=\"width\" [ngClass]=\"[getSkeletonSizeClass()]\"></div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { AvatarSize } from '../avatar/avatar.model';\n\n@Component({\n  selector: 'nj-skeleton-circle',\n  templateUrl: './skeleton-circle.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [CommonModule]\n})\nexport class SkeletonCircleComponent {\n  /**\n   * @ignore\n   */\n  private skeletonClassName = 'nj-skeleton';\n\n  /**\n   * Circle skeleton height\n   */\n  @Input() height?: string;\n\n  /**\n   * Circle skeleton width\n   */\n  @Input() width?: string;\n\n  /**\n   * Circle skeleton size (based on avatar sizes)\n   */\n  @Input() variant?: AvatarSize;\n\n  constructor() {}\n\n  /**\n   * @ignore\n   */\n  getSkeletonVariantClass(): string {\n    if (!this.variant) {\n      return '';\n    }\n    return `${this.skeletonClassName}--${this.variant}`;\n  }\n}\n","<div aria-hidden=\"true\" class=\"nj-skeleton nj-skeleton--circle\" [style.height]=\"height\" [style.width]=\"width\" [ngClass]=\"[getSkeletonVariantClass()]\"></div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IconComponent } from '../icon/icon.component';\n\n@Component({\n  selector: 'nj-skeleton-area',\n  templateUrl: './skeleton-area.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [IconComponent, CommonModule]\n})\nexport class SkeletonAreaComponent {\n  /**\n   * Area skeleton height\n   */\n  @Input() height?: string;\n\n  /**\n   * Area skeleton width\n   */\n  @Input() width?: string;\n\n  /**\n   * Area skeleton material icon\n   */\n  @Input() icon: string = 'image';\n\n  /**\n   * Whether Area skeleton has custom icon\n   */\n  @Input() hasCustomIcon = false;\n\n  constructor() {}\n}\n","<div aria-hidden=\"true\" class=\"nj-skeleton nj-skeleton--area\" [style.height]=\"height\" [style.width]=\"width\">\n  <nj-icon class=\"nj-skeleton__icon\" *ngIf=\"!hasCustomIcon\" [name]=\"icon\" size=\"xl\" variant=\"inherit\"></nj-icon>\n  <span *ngIf=\"hasCustomIcon\" class=\"nj-skeleton__icon\">\n    <ng-content></ng-content>\n  </span>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  forwardRef,\n  inject,\n  Input,\n  OnDestroy,\n  ViewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BehaviorSubject, Subject, takeUntil } from 'rxjs';\nimport { Utils } from '../../utils/utils.util';\n\n@Component({\n  selector: 'nj-slider',\n  templateUrl: './slider.component.html',\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => SliderComponent),\n      multi: true\n    }\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [CommonModule]\n})\nexport class SliderComponent implements AfterViewInit, OnDestroy, ControlValueAccessor {\n  private _initialValue: number;\n\n  private _currentValue: number;\n  private _max = 100;\n  private _min = 0;\n  private inputValue$ = new BehaviorSubject<number>(this._min);\n\n  private unsubscribe = new Subject<void>();\n  private cdr = inject(ChangeDetectorRef);\n\n  /**\n   * @ignore\n   */\n  private _onChange = (_: any): void => {};\n\n  /**\n   * @ignore\n   */\n  protected _onTouched = (): void => {};\n\n  /**\n   * Slider Id, required if label is set\n   */\n  @Input() sliderId?: string;\n\n  /**\n   * Input name\n   */\n  @Input() name?: string;\n\n  /**\n   * Slider label\n   */\n  @Input() label?: string;\n\n  /**\n   * Minimum value\n   */\n  @Input()\n  set min(min: number) {\n    if (!Utils.isUndefinedOrNull(min)) {\n      this._min = min;\n      this.updateInputCssPropWithValue(this._currentValue);\n    }\n  }\n\n  get min(): number {\n    return this._min;\n  }\n\n  /**\n   * Maximum value\n   */\n  @Input()\n  set max(max: number) {\n    if (!Utils.isUndefinedOrNull(max)) {\n      this._max = max;\n      this.updateInputCssPropWithValue(this._currentValue);\n    }\n  }\n\n  get max(): number {\n    return this._max;\n  }\n\n  /**\n   * Input value\n   */\n  @Input()\n  set value(val: number) {\n    if (!Utils.isUndefinedOrNull(val)) {\n      this._initialValue = val;\n    } else {\n      this._initialValue = this._min;\n    }\n    this._currentValue = this._initialValue;\n    this.inputValue$.next(this._currentValue);\n    this.cdr.markForCheck();\n  }\n\n  get value(): number {\n    return this._initialValue;\n  }\n\n  /**\n   * Slider input step\n   */\n  @Input() step: number = 0.1;\n\n  /**\n   * Whether input is disabled or not\n   */\n  @Input() isDisabled = false;\n\n  @ViewChild('input') input: ElementRef;\n\n  ngAfterViewInit() {\n    this.inputValue$.pipe(takeUntil(this.unsubscribe)).subscribe((val) => {\n      this.updateInputCssPropWithValue(val);\n    });\n  }\n\n  ngOnDestroy() {\n    this.unsubscribe.next();\n    this.unsubscribe.complete();\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  writeValue(value: number): void {\n    this.value = value;\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  registerOnChange(fn: any): void {\n    this._onChange = fn;\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  registerOnTouched(fn: any): void {\n    this._onTouched = fn;\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  setDisabledState(isDisabled: boolean): void {\n    this.isDisabled = isDisabled;\n    this.cdr.markForCheck();\n  }\n\n  /**\n   * @ignore\n   */\n  updateValue(event: Event) {\n    // @ts-ignore\n    const newVal = event?.target?.value;\n    if (newVal !== this._currentValue) {\n      this._currentValue = newVal;\n      this.writeValue(newVal);\n      this._onChange(newVal);\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  updateInputCssPropWithValue(value: number) {\n    if (!this.input?.nativeElement || Utils.isUndefinedOrNull(value)) {\n      return;\n    }\n    let percentage = (100 * (value - this.min)) / (this.max - this.min);\n    percentage = isNaN(percentage) ? 0 : percentage;\n    this.input.nativeElement.style.setProperty('--nj-slider-track-position', `${percentage}% 100%`);\n  }\n}\n","<div class=\"nj-slider\" [ngClass]=\"{'nj-slider--disabled': isDisabled}\">\n  <label *ngIf=\"label\" [attr.for]=\"sliderId\">{{label}}</label>\n  <input #input\n         [style]=\"\"\n         [min]=\"min\"\n         [max]=\"max\"\n         [step]=\"step ? step : 0.1\"\n         type=\"range\"\n         [attr.id]=\"sliderId\"\n         [name]=\"step ? name : ''\"\n         [value]=\"value\"\n         (input)=\"updateValue($event)\"\n         (focus)=\"_onTouched?.()\"\n         [disabled]=\"isDisabled\"/>\n</div>\n","import {CommonModule} from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  Output,\n  ViewChild,\n  ViewEncapsulation\n} from '@angular/core';\nimport {SwitchValue, SwitchValues, SwitchVariant} from './switch.model';\n\n@Component({\n  selector: 'nj-switch',\n  templateUrl: './switch.component.html',\n  styleUrls: ['./switch.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [CommonModule]\n})\nexport class SwitchComponent {\n\n  /**\n   * @ignore\n   */\n  private readonly switchClassName = 'nj-switch';\n\n  /**\n   * Switch variant theme\n   */\n  @Input() variant: SwitchVariant = 'primary';\n\n  /**\n   * Whether switch is disabled or not\n   */\n  @Input() isDisabled: boolean;\n\n  /**\n   * Values that will be emitted by the switch on toggle\n   */\n  @Input() values: SwitchValues;\n\n  /**\n   * Whether switch is checked or not\n   */\n  @Input() isChecked = false;\n\n  /**\n   * id of the input inside of the switch\n   */\n  @Input() id: string;\n\n  /**\n   * name of the input inside of the switch\n   */\n  @Input() name: string;\n\n  /**\n   * Aria label, for accessibility reasons\n   */\n  @Input() ariaLabel: string;\n\n  /**\n   * Aria labelled by, for accessibility reasons\n   */\n  @Input() ariaLabelledBy: string;\n\n  /**\n   * title of the input inside of the switch\n   */\n  @Input() title: string;\n\n  /**\n   * Output that emits a SwitchValue when switch value change occurs\n   */\n  @Output() valueChange: EventEmitter<SwitchValue> = new EventEmitter<SwitchValue>();\n\n  /**\n   * @ignore\n   */\n  @ViewChild('input')\n  private _inputElement: ElementRef<HTMLInputElement>;\n\n  constructor() {\n  }\n\n  /**\n   * @ignore\n   */\n  getButtonMainClass(): string {\n    if (!this.variant) {\n      return '';\n    }\n    return `${this.switchClassName}--${this.variant}`;\n  }\n\n  /**\n   * @ignore\n   */\n  _onChangeEvent(event: Event) {\n    event.stopPropagation();\n    if (this._inputElement?.nativeElement) {\n      this.isChecked = this._inputElement.nativeElement.checked;\n      if (this.values) {\n        this.valueChange.emit(this.isChecked ? this.values.right : this.values.left);\n      }\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  _onInputClick(event: Event) {\n    // We have to stop propagation for click events on the visually hidden input element.\n    // By default, when a user clicks on a label element, a generated click event will be\n    // dispatched on the associated input element. Since we are using a label element as our\n    // root container, the click event on the `slide-toggle` will be executed twice.\n    // The real click event will bubble up, and the generated click event also tries to bubble up.\n    // This will lead to multiple click events.\n    // Preventing bubbling for the second event will solve that issue.\n    event.stopPropagation();\n  }\n}\n","<div class=\"nj-switch\" [ngClass]=\"getButtonMainClass()\">\n  <label>\n    <input type=\"checkbox\" #input\n           [disabled]=\"isDisabled\"\n           [checked]=\"isChecked\"\n           [title]=\"title\"\n           [name]=\"name\"\n           [attr.id]=\"id\"\n           [attr.aria-label]=\"ariaLabel\"\n           [attr.aria-labelledby]=\"ariaLabelledBy\"\n           (change)=\"_onChangeEvent($event)\"\n           (click)=\"_onInputClick($event)\">\n    <span class=\"nj-switch__slider\">\n      <span class=\"nj-switch__slider-left\">\n        <ng-content select=\"[left-label]\"></ng-content>\n      </span>\n      <span class=\"nj-switch__slider-right\">\n        <ng-content select=\"[right-label]\"></ng-content>\n      </span>\n    </span>\n  </label>\n</div>\n","import {CommonModule} from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  Output,\n  TemplateRef,\n  ViewChild,\n  ViewEncapsulation\n} from '@angular/core';\nimport {BadgeComponent} from '../badge/badge.component';\n\ntype TBadgeOptions = Omit<BadgeComponent, 'size' | 'iconName' >;\n\n@Component({\n  selector: 'nj-tab',\n  templateUrl: './tab.component.html',\n  styleUrls: ['./tab.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [CommonModule, BadgeComponent]\n})\nexport class TabComponent {\n\n  /**\n   * Whether tab is disabled or not\n   */\n  @Input() isDisabled: boolean;\n\n  /**\n   * Aria controls, for accessibility reasons\n   */\n  @Input() ariaControls: string;\n\n  /**\n   * Id of the tab\n   */\n  @Input() id: string;\n\n  /**\n   * Id of the content\n   */\n  @Input() tabContentId: string;\n\n  /**\n   * Aria labelled by which will be set on the content, for accessibility reasons\n   */\n  @Input() tabContentAriaLabelledBy: string;\n\n  /**\n   * Whether tab is active or not\n   */\n  @Input() isActive: boolean;\n\n  /**\n   * Options for the badge inside the tab\n   */\n  @Input() badgeOptions?: TBadgeOptions;\n\n  /**\n   * @ignore\n   */\n  @ViewChild('contentTemplate') contentTemplateRef: TemplateRef<any>;\n\n  /**\n   * @ignore\n   */\n  @ViewChild('tab') tab: ElementRef<HTMLButtonElement>;\n\n  /**\n   * Output that emits if tab is selected\n   */\n  @Output() tabSelect: EventEmitter<void> = new EventEmitter<void>();\n\n  /**\n   * Output that emits keyboard event\n   */\n  @Output() tabMove: EventEmitter<KeyboardEvent> = new EventEmitter<KeyboardEvent>();\n\n  constructor(private cdr: ChangeDetectorRef) {\n  }\n\n  /**\n   * @ignore\n   */\n  setIsActive(isActive) {\n    this.isActive = isActive;\n    this.cdr.markForCheck();\n  }\n}\n","<button class=\"nj-tab__item\" [ngClass]=\"{'nj-tab__item--active': isActive}\"\n        role=\"tab\"\n        [attr.aria-selected]=\"isActive\"\n        [attr.aria-controls]=\"ariaControls\"\n        [tabIndex]=\"isActive ? 0 : -1\"\n        [disabled]=\"isDisabled\"\n        (click)=\"tabSelect?.emit()\"\n        (keydown)=\"tabMove?.emit($event)\"\n        #tab\n        >\n  <ng-content></ng-content>\n  <nj-badge\n    *ngIf=\"badgeOptions\"\n    size=\"md\"\n    [variant]=\"badgeOptions.variant\"\n    [emphasis]=\"badgeOptions.emphasis\"\n    [value]=\"badgeOptions.value\"\n    [capedValue]=\"badgeOptions.capedValue\"\n    [unitLabel]=\"badgeOptions.unitLabel\"\n  ></nj-badge>\n</button>\n<ng-template #contentTemplate>\n  <ng-content select=\"[tab-content]\"></ng-content>\n</ng-template>\n","import {CommonModule} from '@angular/common';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChildren,\n  EventEmitter,\n  Input,\n  OnDestroy,\n  Output,\n  QueryList,\n  ViewEncapsulation\n} from '@angular/core';\nimport {Subject, takeUntil} from 'rxjs';\nimport {Utils} from '../../utils/utils.util';\nimport {TabComponent} from '../tab/tab.component';\nimport {TabsDensity} from './tabs.model';\n\n@Component({\n  selector: 'nj-tabs',\n  templateUrl: './tabs.component.html',\n  styleUrls: ['./tabs.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [TabComponent, CommonModule]\n})\nexport class TabsComponent implements AfterViewInit, OnDestroy {\n\n  private activeTabIndex;\n\n  private readonly tabClass = 'nj-tab';\n\n  private unsubscribe: Subject<void> = new Subject<void>();\n\n  /**\n   * @ignore\n   */\n  public tabToRender: TabComponent;\n\n  /**\n   * @ignore\n   */\n  public tabs: TabComponent[];\n\n  /**\n   * Label for the tablist element\n   */\n  @Input() label: string;\n\n  /**\n   * Tabs density\n   */\n  @Input() density: TabsDensity = 'normal';\n\n  /**\n   * @ignore\n   */\n  @ContentChildren(TabComponent) tabsList: QueryList<TabComponent>;\n\n  /**\n   * Output that emits selected tab index\n   */\n  @Output() selectedTab: EventEmitter<number> = new EventEmitter<number>();\n\n  constructor(private cdr: ChangeDetectorRef) {\n  }\n\n  ngAfterViewInit() {\n    // A render is being done after view init so setTimeout allows us to delay any attribute modification\n    // in the call stack so it can be taken account on next render only\n    setTimeout(() => {\n      this.tabs = this.tabsList?.toArray();\n\n      this.initializeClickListener();\n      this.initializeKeydownListener();\n\n      const activeIndex = this.tabs?.findIndex(tab => tab?.isActive);\n      this.goToTab(activeIndex === -1 ? 0 : activeIndex, false);\n    });\n  }\n\n  ngOnDestroy() {\n    this.unsubscribe.next();\n    this.unsubscribe.complete();\n  }\n\n  /**\n   * Check if tab is active\n   * @param index index of tab to check\n   */\n  isActiveTab(index: number): boolean {\n    return this.activeTabIndex === index;\n  }\n\n  /**\n   * Allows you to navigate to tab\n   * @param index index of tab to select\n   * @param emit emits if set to true\n   */\n  goToTab(index: number, emit = true) {\n    const validIndex = (Utils.isUndefinedOrNull(index) || index < 0) ? 0 : index;\n\n    this.activeTabIndex = validIndex;\n    this.renderTemplate(validIndex);\n    if (emit) {\n      this.selectedTab.emit(validIndex);\n    }\n    this.cdr.markForCheck();\n  }\n\n  /**\n   * @ignore\n   */\n  focusNextFocusableTab() {\n    const focusableTabs = Array.from(this.tabs).filter(tab => !tab.isDisabled);\n    const focusedTabIndex = focusableTabs.findIndex(tab => document.activeElement === tab.tab.nativeElement);\n    const nextFocusableTab = focusableTabs[(focusedTabIndex + 1) % focusableTabs.length];\n\n    nextFocusableTab.tab.nativeElement.focus();\n  }\n\n  /**\n   * @ignore\n   */\n  focusPreviousFocusableTab() {\n    const focusableTabs = Array.from(this.tabs).filter(tab => !tab.isDisabled);\n    const focusedTabIndex = focusableTabs.findIndex(tab => document.activeElement === tab.tab.nativeElement);\n\n    const previousFocusableTabIndex = focusedTabIndex === 0\n      ? focusableTabs.length - 1\n      : focusedTabIndex - 1;\n\n    const previousFocusableTab = focusableTabs[previousFocusableTabIndex];\n\n    previousFocusableTab.tab.nativeElement.focus();\n  }\n\n  /**\n   * @ignore\n   */\n  handleTabKeydown(event: KeyboardEvent) {\n    switch (event.key) {\n      case 'ArrowRight':\n        event.preventDefault();\n        this.focusNextFocusableTab();\n        break;\n      case 'ArrowLeft':\n        event.preventDefault();\n        this.focusPreviousFocusableTab();\n        break;\n      default:\n    }\n  }\n\n  getDensityClass() {\n    if(!this.density || this.density === 'normal') {\n      return;\n    }\n    return `${this.tabClass}--${this.density}`;\n  }\n\n  private initializeClickListener() {\n    if (Utils.isUndefinedOrNull(this.tabs)) {\n      return;\n    }\n    this.tabs.forEach((tab, index) => {\n      tab.tabSelect\n        .pipe(takeUntil(this.unsubscribe))\n        .subscribe(_ => {\n          this.goToTab(index);\n        });\n    });\n  }\n\n  private initializeKeydownListener() {\n    if (Utils.isUndefinedOrNull(this.tabs)) {\n      return;\n    }\n    this.tabs.forEach(tab => {\n      tab.tabMove.pipe(takeUntil(this.unsubscribe))\n      .subscribe(event => {\n        this.handleTabKeydown(event);\n      });\n    });\n  }\n\n  private renderTemplate(index: number) {\n    for (const tab of this.tabs) {\n      if (tab?.isActive) {\n        tab.setIsActive(false);\n      }\n    }\n    this.tabToRender = this.tabs?.[index];\n    this.tabToRender.setIsActive(true);\n  }\n}\n","<div class=\"nj-tab\" [ngClass]=\"getDensityClass()\">\n  <div class=\"nj-tab__items\" role=\"tablist\" [attr.aria-label]=\"label\">\n    <ng-content></ng-content>\n  </div>\n  <div class=\"nj-tab__content-wrapper\">\n    <div class=\"nj-tab__content nj-tab__content--active\" *ngIf=\"tabToRender\"\n         [attr.id]=\"tabToRender.tabContentId\"\n         [attr.aria-labelledby]=\"tabToRender.tabContentAriaLabelledBy\"\n         role=\"tabpanel\"\n         tabIndex=\"0\">\n      <ng-container *ngTemplateOutlet=\"tabToRender.contentTemplateRef\"></ng-container>\n    </div>\n  </div>\n</div>\n","import {CommonModule} from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnDestroy,\n  OnInit,\n  Output\n} from '@angular/core';\nimport {DomSanitizer, SafeStyle} from '@angular/platform-browser';\nimport {IconButtonComponent} from '../icon-button/icon-button.component';\nimport {IconComponent} from '../icon/icon.component';\n\n@Component({\n  selector: 'nj-toast',\n  templateUrl: './toast.component.html',\n  styleUrls: ['./toast.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [IconComponent, IconButtonComponent, CommonModule]\n})\nexport class ToastComponent implements OnInit, OnDestroy {\n\n  private _dismissTimeoutId: number;\n  /**\n   * Toast unique id used to link description to close button\n   */\n  @Input() toastId: string;\n  /**\n   * Whether toast is inverse or not\n   */\n  @Input() isInverse: boolean;\n\n  /**\n   * Whether toast has a close icon or not\n   */\n  @Input() hasCloseIcon = true;\n\n  /**\n   * Icon :<br>\n   * <a href=\"https://material.io/resources/icons/\" target=\"_blank\">Material icons</a>\n   */\n  @Input() iconName?: string;\n\n  /**\n   * Time in ms to dismiss after\n   */\n  @Input() dismissAfter? = 5000;\n\n  /**\n   * Gauge accessible hidden label.\n   * @example \"The toast will be automatically closed in 10s\"\n   */\n  @Input() gaugeLabel = 'Time left until toast is closed';\n\n  /**\n   * Whether toast should dismiss after some time elapsed\n   */\n  @Input() shouldDismiss?: boolean;\n\n  /**\n   * Outputs event when toast is closed\n   */\n  @Output() closed = new EventEmitter<Event>();\n\n  /**\n   * Outputs event when toast is dismissed\n   */\n  @Output() dismissed = new EventEmitter<void>();\n\n  constructor(private sanitize: DomSanitizer, private el: ElementRef, private cdr: ChangeDetectorRef) {\n  }\n\n  ngOnInit() {\n    if(this.shouldDismiss) {\n      // @ts-ignore\n      this._dismissTimeoutId = setTimeout(() => {\n        this.removeToast();\n        this.dismissed.emit();\n      }, this.dismissAfter);\n    }\n  }\n\n  ngOnDestroy() {\n    this.clearDismissTimeout();\n  }\n\n  /**\n   * @ignore\n   */\n  getGaugeAnimationStyles(): SafeStyle {\n    if (!this.dismissAfter) {\n      return null;\n    }\n    return this.sanitize.bypassSecurityTrustStyle(`\n       animation-duration: ${this.dismissAfter}ms\n    `);\n  }\n\n  /**\n   * Close toast\n   */\n  close(event?: MouseEvent) {\n    event?.preventDefault();\n    event?.stopImmediatePropagation();\n    this.removeToast();\n    this.closed.emit(event);\n    this.cdr.markForCheck();\n  }\n\n  /**\n   * @ignore\n   */\n  clearDismissTimeout() {\n    if (this._dismissTimeoutId) {\n      clearTimeout(this._dismissTimeoutId);\n    }\n  }\n\n  removeToast() {\n    this.el?.nativeElement?.remove();\n    this.clearDismissTimeout();\n  }\n}\n","<div class=\"nj-toast\" [ngClass]=\"{'nj-toast--inverse': isInverse}\">\n  <div class=\"nj-toast__body\">\n    <nj-icon *ngIf=\"iconName\" [name]=\"iconName\" class=\"nj-toast__icon\" variant=\"inherit\"></nj-icon>\n    <div class=\"nj-toast__content\">\n      <p class=\"nj-toast__title\" [attr.id]=\"toastId\">\n        <ng-content></ng-content>\n      </p>\n      <p class=\"nj-toast__text\">\n        <ng-content select=\"[njToastBody]\"></ng-content>\n      </p>\n    </div>\n  </div>\n  <div class=\"nj-toast__action\" *ngIf=\"hasCloseIcon\">\n    <nj-icon-button\n      icon=\"close\"\n      label=\"Close notification\"\n      size=\"sm\"\n      [variant]=\"isInverse ?  'primary' : 'inverse'\"\n      [ariaDescribedby]=\"toastId\"\n      (buttonClick)=\"close($event)\"\n    >\n    </nj-icon-button>\n  </div>\n  <div class=\"nj-toast__gauge\" *ngIf=\"shouldDismiss\">\n    <div class=\"nj-toast__gauge-bar\" [style]=\"getGaugeAnimationStyles()\">\n      <p class=\"nj-sr-only\">{{ gaugeLabel }}</p>\n    </div>\n  </div>\n</div>\n","import {CommonModule} from '@angular/common';\nimport {ChangeDetectionStrategy, ChangeDetectorRef, Component, Input} from '@angular/core';\n\n@Component({\n  selector: 'nj-toast-container',\n  templateUrl: './toast-container.component.html',\n  styleUrls: ['./toast.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [CommonModule]\n})\nexport class ToastContainerComponent {\n\n\n  /**\n   * Whether container is full width or non\n   */\n  @Input() isFullWidth: boolean;\n\n  /**\n   * Container id\n   */\n  @Input() containerId: string;\n\n  constructor(private cdr: ChangeDetectorRef) {\n  }\n\n  /**\n   * @ignore\n   */\n  _markForCheck() {\n    this.cdr.markForCheck();\n  }\n}\n","<div\n    class=\"nj-toast__container\"\n    [attr.id]=\"containerId\"\n    [ngClass]=\"{'nj-toast__container--full-width': isFullWidth}\"\n    aria-live=\"polite\"\n    aria-atomic=\"false\"\n></div>\n","import {ComponentPortal, ComponentType, DomPortalOutlet, TemplatePortal} from '@angular/cdk/portal';\nimport {ApplicationRef, ComponentFactoryResolver, ComponentRef, Injectable, TemplateRef} from '@angular/core';\nimport {ToastContainerComponent} from './toast-container.component';\nimport {ToastContentConfig, ToastServiceConfig} from './toast.model';\n\n@Injectable()\nexport class ToastService {\n  private portalHost: DomPortalOutlet | undefined;\n  private containerPortalHost: DomPortalOutlet | undefined;\n  private containerRef: ComponentRef<ToastContainerComponent> | undefined;\n\n  private config: ToastServiceConfig = {\n    containerId: 'nj-toast-container-id',\n    isContainerFullWidth: false\n  };\n\n  constructor(private componentFactoryResolver: ComponentFactoryResolver, private appRef: ApplicationRef) {\n  }\n\n  /**\n   * Opens a toast wrapped inside a ng-template or a Component\n   */\n  open(content: TemplateRef<any> | ComponentType<any>, config: ToastContentConfig) {\n    if (!content) {\n      return;\n    }\n    let toastPortal;\n    if (!this.containerRef) {\n      this.attachContainer();\n    }\n    const containerElement = this.containerRef?.location?.nativeElement?.children?.[0];\n    this.containerPortalHost = new DomPortalOutlet(containerElement);\n    if (content instanceof TemplateRef) {\n      toastPortal = new TemplatePortal(content, config.viewContainerRef, {\n        $implicit: config.data\n      });\n    } else {\n      toastPortal = new ComponentPortal(content, config.viewContainerRef, null, this.componentFactoryResolver);\n    }\n    return this.containerPortalHost.attach(toastPortal);\n  }\n\n  /**\n   * Set config\n   */\n  setConfig(config: ToastServiceConfig) {\n    this.config = {...this.config, ...config};\n    this.setContainerInputs(this.containerRef);\n  }\n\n  private setContainerInputs(containerComponentRef: ComponentRef<ToastContainerComponent> | undefined) {\n    const containerComponent = containerComponentRef?.instance;\n    if (containerComponent) {\n      containerComponent.containerId = this.config?.containerId;\n      containerComponent.isFullWidth = this.config?.isContainerFullWidth;\n      containerComponent._markForCheck();\n    }\n  }\n\n  private attachContainer() {\n    this.portalHost = new DomPortalOutlet(document.body, undefined, this.appRef);\n    const containerPortal = new ComponentPortal(ToastContainerComponent, null, null, this.componentFactoryResolver);\n    const containerComponentRef = this.portalHost.attachComponentPortal(containerPortal);\n    this.setContainerInputs(containerComponentRef);\n    this.containerRef = containerComponentRef;\n    return containerComponentRef;\n  }\n}\n","import {CommonModule} from '@angular/common';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  Input,\n  Output,\n  ViewChild,\n  ViewEncapsulation\n} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\n\n@Component({\n  selector: 'nj-toggle',\n  templateUrl: './toggle.component.html',\n  styleUrls: ['./toggle.component.scss'],\n  providers: [{\n    provide: NG_VALUE_ACCESSOR,\n    useExisting: forwardRef(() => ToggleComponent),\n    multi: true\n  }],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  standalone: true,\n  imports: [CommonModule]\n})\n\nexport class ToggleComponent implements ControlValueAccessor, AfterViewInit {\n  /**\n   * @ignore\n   */\n  private toggleClassName = 'nj-toggle';\n\n  /**\n   * @ignore\n   */\n  private _checked: boolean;\n\n  /**\n   * Input id\n   */\n  @Input() inputId: string;\n\n  /**\n   * Input name\n   */\n  @Input() name: string;\n\n  /**\n   * Input size\n   */\n  @Input() size: 'md' | 'lg' = 'md';\n\n  /**\n   * Whether input is required or not\n   */\n  @Input() required: boolean;\n\n  /**\n   * Whether the toggle is checked or not\n   */\n  @Input()\n  set isChecked(value: boolean) {\n    this._checked = value;\n    this.cdr.markForCheck();\n  }\n\n  get isChecked(): boolean {\n    return this._checked;\n  }\n\n  /**\n   * Whether the toggle is disabled or not\n   */\n  @Input() isDisabled: boolean;\n\n  /**\n   * Whether the toggle color is inherited from parent\n   */\n  @Input() isColorInherited?: boolean;\n\n  /**\n   * Text alternative for assistive technologies\n   * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-label\n   */\n  @Input() ariaLabel: string;\n\n  /**\n   * Text alternative for assistive technologies based on visible text\n   * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-labelledby\n   */\n  @Input() ariaLabelledby: string;\n\n  /**\n   * Output that emits checked value on change only\n   */\n  @Output() valueChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n  /**\n   * @ignore\n   */\n  @ViewChild('input')\n  private _inputElement: ElementRef<HTMLInputElement>;\n\n  /**\n   * @ignore\n   */\n  @ViewChild('iconWrapper') iconWrapper;\n\n  /**\n   * Whether toggle has an icon\n   */\n  hasIcon: boolean;\n\n  constructor(private cdr: ChangeDetectorRef) {\n  }\n\n  // Check if icon is provided on load\n  ngAfterViewInit() {\n    this.hasIcon = this.iconWrapper?.nativeElement && this.iconWrapper.nativeElement.innerHTML !== '';\n  }\n\n  /**\n   * @ignore\n   */\n  private _onChange = (_: any): void => {\n  };\n\n  /**\n   * @ignore\n   */\n  private _onTouched = (): void => {\n  };\n\n  /**\n   * @ignore\n   */\n  _onChangeEvent(event: Event) {\n    event.stopPropagation();\n    if (this._inputElement?.nativeElement) {\n      this.isChecked = this._inputElement.nativeElement.checked;\n      this._onChange(this.isChecked);\n      this.valueChange.emit(this.isChecked);\n    }\n  }\n\n  /**\n   * @ignore\n   */\n  _onInputClick(event: Event) {\n    // We have to stop propagation for click events on the visually hidden input element.\n    // By default, when a user clicks on a label element, a generated click event will be\n    // dispatched on the associated input element. Since we are using a label element as our\n    // root container, the click event on the `slide-toggle` will be executed twice.\n    // The real click event will bubble up, and the generated click event also tries to bubble up.\n    // This will lead to multiple click events.\n    // Preventing bubbling for the second event will solve that issue.\n    event.stopPropagation();\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  writeValue(value: any): void {\n    this.isChecked = !!value;\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  registerOnChange(fn: any): void {\n    this._onChange = fn;\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  registerOnTouched(fn: any): void {\n    this._onTouched = fn;\n  }\n\n  /**\n   * Implemented as part of ControlValueAccessor.\n   * @ignore\n   */\n  setDisabledState(isDisabled: boolean): void {\n    this.isDisabled = isDisabled;\n    this.cdr.markForCheck();\n  }\n\n  /**\n   * @ignore\n   */\n  getToggleSizeClass(): string {\n    let sizeModifier: string;\n    switch (this.size) {\n      case 'lg':\n        sizeModifier = 'lg';\n        break;\n      default:\n        break;\n    }\n    return sizeModifier ? `${this.toggleClassName}--${sizeModifier}` : '';\n  }\n\n  /**\n   * @ignore\n   */\n  getToggleIsDisabledClass(): string {\n    return this.isDisabled ? `${this.toggleClassName}--disabled` : '';\n  }\n\n  getToggleInheritColorClass(): string {\n    return this.isColorInherited ? `${this.toggleClassName}--inherit` : '';\n  }\n}\n","<div class=\"nj-toggle\" [ngClass]=\"[getToggleSizeClass(), getToggleIsDisabledClass(), getToggleInheritColorClass()]\">\n  <label [attr.for]=\"inputId\">\n    <input\n      type=\"checkbox\"\n      role=\"switch\"\n      #input\n      [required]=\"required\"\n      [checked]=\"isChecked\"\n      [disabled]=\"isDisabled\"\n      [attr.id]=\"inputId\"\n      [attr.name]=\"name\"\n      [attr.aria-label]=\"ariaLabel\"\n      [attr.aria-labelledby]=\"ariaLabelledby\"\n      (change)=\"_onChangeEvent($event)\"\n      (click)=\"_onInputClick($event)\"\n    />\n    <span class=\"nj-toggle__track\"></span>\n\n    <div class=\"nj-toggle__icon-container\" #iconWrapper>\n      <ng-content select=\"[njToggleIcon]\"></ng-content>\n    </div>\n\n    <span *ngIf=\"hasIcon; else content\" class=\"nj-sr-only\">\n      <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n    </span>\n    <ng-template #content>\n      <ng-content></ng-content>\n    </ng-template>\n  </label>\n</div>\n","import {Directive, HostBinding} from '@angular/core';\n\n@Directive({\n  selector: '[njToggleIcon]',\n  exportAs: 'njToggleIcon',\n  standalone: true\n})\nexport class ToggleIconDirective {\n  @HostBinding('class') class = 'nj-toggle__icon';\n\n  constructor() {\n  }\n}\n","export type TooltipPlacement = 'left' | 'right' | 'top' | 'bottom';\n\nexport type TooltipArrowPlacement = 'start' | 'center' | 'end';\n\nexport class TooltipOptions {\n  /**\n   * Whether tooltip is inverse or no\n   */\n  isInverse: boolean;\n\n  /**\n   * Whether tooltip has arrow or no\n   */\n  hasArrow = true;\n\n  /**\n   * Tooltip label, if you want custom content unset the label and place content as element children\n   * e.g: `<nj-tooltip>Your Content</nj-tooltip>`\n   */\n  label: string;\n\n  /**\n   * Tooltip id\n   */\n  tooltipId: string;\n\n  /**\n   * Tooltip placement\n   */\n  placement: TooltipPlacement = 'top';\n\n  /**\n   * Tooltip arrow placement\n   */\n  arrowPlacement: TooltipArrowPlacement = 'center';\n\n  /**\n   * Whether tooltip management is standalone\n   */\n  isStandalone = true;\n\n  /**\n   * Whether tooltip is animated\n   */\n  isAnimated = true;\n}\n","/*\n * Public API Surface of lib\n */\n\n// Global\nexport * from './models/theme-variant.model';\n\n// Directives\nexport * from './directives/custom-icon.directive';\n\n// Accordion\nexport * from './components/accordion/accordion.component';\n\n// Accordion actions\nexport * from './components/accordion-actions/accordion-actions.component';\nexport * from './components/accordion-actions/directive/accordion-action.directive';\n\n// Accordion item\nexport * from './components/accordion-item/accordion-item.component';\n\n// Autocomplete\nexport * from './components/autocomplete/autocomplete.component';\nexport * from './components/autocomplete/autocomplete.model';\n\n// Avatar\nexport * from './components/avatar/avatar.component';\nexport * from './components/avatar/avatar-picture.directive';\n\n// Avatar List\nexport * from './components/avatar-list/avatar-list.component';\n\n// Badge\nexport * from './components/badge/badge.component';\nexport * from './components/badge/badge.model';\n\n// Breadcrumb\nexport * from './components/breadcrumb/breadcrumb.component';\nexport * from './components/breadcrumb-item/breadcrumb-item.component';\n\n// Bullet\nexport * from './components/bullet/bullet.component';\nexport * from './components/bullet/bullet.model';\n\n// Button\nexport * from './components/button/button.component';\nexport * from './components/button/button.model';\n\n// Card\nexport * from './components/card/card.component';\nexport * from './components/card/card-image.directive';\n\n// Checkbox\nexport * from './components/checkbox/checkbox.component';\n\n// Custom Label\nexport * from './components/custom-label/custom-label.directive';\n\n// Element structural directive\nexport * from './directives/engie-template.directive';\n\n// FormItem\nexport * from './components/form-item/form-item.component';\nexport * from './components/form-field/form-field.directive';\n\n// Icon\nexport * from './components/icon-base/icon-base.component';\n\nexport * from './components/icon/icon.component';\nexport * from './components/icon/icon.model';\n\nexport * from './components/icon-engie/icon-engie.component';\nexport * from './components/icon-engie/icon-engie.model';\n\n// Icon Button\nexport * from './components/icon-button/icon-button.component';\nexport * from './components/icon-button/icon-button.model';\n\n// Inline Message\nexport * from './components/inline-message/inline-message.component';\nexport * from './components/inline-message/inline-message.model';\n\n// Link\nexport * from './components/link/link.component';\nexport * from './components/link/link.model';\n\n// List\nexport * from './components/list-item/list-item.component';\nexport * from './components/list-group/list-group.component';\n\n// Modal\nexport * from './components/modal/modal.component';\n\n// Multi Select\nexport * from './components/multi-select/multi-select.component';\n\n// Pagination\nexport * from './components/pagination/pagination.component';\n\n// Progress\nexport * from './components/progress/progress.component';\n\n// Radio\nexport * from './components/radio/radio.component';\nexport * from './components/radio-group/radio-group.component';\n\n// Search\nexport * from './components/search/search.component';\nexport * from './components/search/directives/search-button.directive';\n\n// Segmented Control\nexport * from './components/segmented-control-button/segmented-control-button.component';\nexport * from './components/segmented-control/segmented-control.component';\n\n// Select\nexport * from './components/select/select.component';\nexport * from './components/select/select-custom-label-context.model';\n\n// Sidebar\nexport * from './components/sidebar/sidebar.component';\nexport * from './components/sidebar/directives/sidebar-content.directive';\nexport * from './components/sidebar/directives/sidebar-footer.directive';\nexport * from './components/sidebar/directives/sidebar-logo.directive';\nexport * from './components/sidebar/directives/sidebar-item.directive';\nexport * from './components/sidebar/interfaces/sidebar-logo.context';\n\n// Sidepanel\nexport * from './components/sidepanel/sidepanel.component';\nexport * from './components/sidepanel/directives/sidepanel-header.directive';\nexport * from './components/sidepanel/directives/sidepanel-footer.directive';\nexport * from './components/sidepanel-header/directives/sidepanel-header-action.directive';\nexport * from './components/sidepanel-header/sidepanel-header.component';\nexport * from './components/sidepanel-layout/sidepanel-layout.component';\nexport * from './components/sidepanel-layout/directives/sidepanel-layout-panel.directive';\n\n// Skeleton\nexport * from './components/skeleton/skeleton-container.component';\nexport * from './components/skeleton/skeleton-rectangle.component';\nexport * from './components/skeleton/skeleton-circle.component';\nexport * from './components/skeleton/skeleton-area.component';\n\n// Slider\nexport * from './components/slider/slider.component';\n\n// Spinner\nexport * from './components/spinner/spinner.component';\nexport * from './components/spinner/spinner.model';\n\n// Status Indicator\nexport * from './components/status-indicator/status-indicator.component';\nexport * from './components/status-indicator/status-indicator.model';\n\n// Switch\nexport * from './components/switch/switch.component';\n\n// Tabs\nexport * from './components/tab/tab.component';\nexport * from './components/tabs/tabs.component';\nexport * from './components/tabs/tabs.model';\n\n// Tag\nexport * from './components/tag/tag.component';\n\n// TextHighlight\nexport * from './components/highlight/highlight.directive';\n\n// Toast\nexport * from './components/toast/toast.component';\nexport * from './components/toast/toast-container.component';\nexport * from './components/toast/toast.service';\n\n// Toggle\nexport * from './components/toggle/toggle.component';\nexport * from './components/toggle/toggle-icon.directive';\n\n// Tooltip\nexport * from './components/tooltip/tooltip.component';\nexport * from './components/tooltip/tooltip.model';\nexport * from './components/tooltip/directives/tooltip.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["CSSClassesMap","defaultParams","i1","i2"],"mappings":"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"}