{"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/directives/heading/heading.directive.ts","../../src/directives/text/text.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/accordion/accordion.component.ts","../../src/components/accordion/accordion.component.html","../../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/shared/animations.ts","../../src/utils/utils.util.ts","../../src/components/form-field/form-field.directive.ts","../../src/components/icon-button/directives/icon-button-icon.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-deprecated/list-deprecated.component.ts","../../src/components/list-deprecated/list-deprecated.component.html","../../src/components/checkbox/checkbox.component.ts","../../src/components/checkbox/checkbox.component.html","../../src/components/list-item-deprecated/list-item-deprecated.component.ts","../../src/components/list-item-deprecated/list-item-deprecated.component.html","../../src/components/autocomplete/autocomplete.component.ts","../../src/components/autocomplete/autocomplete.component.html","../../src/components/avatar/avatar-picture.directive.ts","../../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-list/avatar-list.component.ts","../../src/components/avatar-list/avatar-list.component.html","../../src/components/badge/badge.component.ts","../../src/components/badge/badge.component.html","../../src/pipes/engie-template-selector.pipe.ts","../../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/spinner/spinner.component.ts","../../src/components/button/directives/button-icon.directive.ts","../../src/components/button/button.component.ts","../../src/components/button/button.component.html","../../src/components/card/card-image.directive.ts","../../src/components/card/card.component.ts","../../src/components/card/card.component.html","../../src/components/custom-label/custom-label.directive.ts","../../src/directives/display/display.directive.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/list/directives/list-item.directive.ts","../../src/components/list/directives/list-navigation-item.directive.ts","../../src/components/list/components/list-item-content/list-item-content.component.ts","../../src/components/list/components/list-item-content/list-item-content.component.html","../../src/components/list/list.directive.ts","../../src/components/menu/menu.component.ts","../../src/components/menu/menu.component.html","../../src/components/menu-group/menu-group.component.ts","../../src/components/menu-group/menu-group.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/components/search/search.component.ts","../../src/components/search/search.component.html","../../src/components/search/directives/search-button.directive.ts","../../src/components/segmented-control/segmented-control.component.ts","../../src/components/segmented-control/segmented-control.component.html","../../src/components/segmented-control-button/segmented-control-button.component.ts","../../src/components/segmented-control-button/segmented-control-button.component.html","../../src/components/select/select.component.ts","../../src/components/select/select.component.html","../../src/components/sidebar/directives/sidebar-content.directive.ts","../../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/sidepanel-header/sidepanel-header.component.ts","../../src/components/sidepanel-header/sidepanel-header.component.html","../../src/components/sidepanel/sidepanel.component.ts","../../src/components/sidepanel/sidepanel.component.html","../../src/components/skeleton/skeleton-area.component.ts","../../src/components/skeleton/skeleton-area.component.html","../../src/components/skeleton/skeleton-circle.component.ts","../../src/components/skeleton/skeleton-container.component.ts","../../src/components/skeleton/skeleton-container.component.html","../../src/components/skeleton/skeleton-rectangle.component.ts","../../src/components/slider/slider.component.ts","../../src/components/slider/slider.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-container.component.ts","../../src/components/toast/toast-container.component.html","../../src/components/toast/toast.component.ts","../../src/components/toast/toast.component.html","../../src/components/toast/toast.service.ts","../../src/components/toggle/toggle-icon.directive.ts","../../src/components/toggle/toggle.component.ts","../../src/components/toggle/toggle.component.html","../../src/components/tooltip/tooltip.model.ts","../../src/public-api.ts","../../src/engie-group-fluid-design-system-angular.ts"],"sourcesContent":["export const ThemeComponentsVariantsArray = [\n  'grey',\n  'brand',\n  'teal',\n  'pink',\n  'orange',\n  'red',\n  'green',\n  'ultramarine',\n  'yellow',\n  'purple',\n  'blue',\n  'lime'\n];\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","import { Directive, inject, Input, TemplateRef } from '@angular/core';\n\nexport type GenericElement = 'action' | 'footer' | 'header' | 'icon' | 'trailing' | 'leading' | 'item';\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 { booleanAttribute, Directive, Input } from '@angular/core';\nimport type { HeadingProperties } from '@engie-group/fluid-types';\n\n@Directive({\n  selector: '[njHeading]',\n  standalone: true,\n  host: {\n    '[class]': 'classes'\n  }\n})\nexport class HeadingDirective implements HeadingProperties {\n  @Input() scale?: HeadingProperties['scale'];\n\n  @Input() variant?: HeadingProperties['variant'];\n\n  @Input({ transform: booleanAttribute }) isNotInvertible?: HeadingProperties['isNotInvertible'];\n\n  protected get classes() {\n    return {\n      'nj-heading': true,\n      'nj-heading--not-invertible': this.isNotInvertible,\n      [`nj-heading--${this.scale}`]: !!this.scale,\n      [`nj-heading--${this.variant}`]: !!this.variant\n    };\n  }\n}\n","import { booleanAttribute, Directive, Input } from '@angular/core';\nimport type { TextProperties } from '@engie-group/fluid-types';\n\n@Directive({\n  selector: '[njText]',\n  standalone: true,\n  host: {\n    '[class.nj-text]': 'true',\n    '[class.nj-text--not-invertible]': 'isNotInvertible',\n    '[class.nj-text--monospace]': 'isMono',\n    '[class]': 'classes'\n  }\n})\nexport class TextDirective implements TextProperties {\n  @Input() scale?: TextProperties['scale'];\n\n  @Input() variant?: TextProperties['variant'];\n\n  @Input({ transform: booleanAttribute }) isNotInvertible?: TextProperties['isNotInvertible'];\n\n  @Input({ transform: booleanAttribute }) isMono?: TextProperties['isMono'];\n\n  protected get classes() {\n    return {\n      'nj-text': true,\n      'nj-text--not-invertible': this.isNotInvertible,\n      'nj-text--monospace': this.isMono,\n      [`nj-text--${this.scale}`]: !!this.scale,\n      [`nj-text--${this.variant}`]: !!this.variant\n    };\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, input, Input, ViewEncapsulation } from '@angular/core';\nimport { IconProperties } from '@engie-group/fluid-types';\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  imports: [CommonModule]\n})\nexport class IconBaseComponent {\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  name = input.required<IconProperties['name']>();\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  @if (!isEngieIcon && name()) {\n    {{ name() }}\n  }\n</span>\n","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\nimport { ICON_ENGIE_PREFIX, IconProperties } from '@engie-group/fluid-types';\nimport { IconBaseComponent } from '../icon-base/icon-base.component';\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  imports: [IconBaseComponent]\n})\nexport class IconComponent extends IconBaseComponent {\n  private ICON_MATERIAL_CLASS = 'nj-icon-material';\n\n  /**\n   * Icon size\n   * @deprecated Use `scale` instead\n   */\n  @Input() size?: IconProperties['scale'];\n\n  /**\n   * Icon size\n   */\n  @Input() scale?: IconProperties['scale'];\n\n  /**\n   * Icon variant theme\n   */\n  @Input() variant?: IconProperties['variant'];\n\n  protected getClassName(): string {\n    const scale = this.scale ?? this.size; // Fixme: Remove when deleting size property\n    const sizeClass = scale ? `${this.ICON_MATERIAL_CLASS}--${this.classModifier(scale, 'size-inherit')}` : '';\n    const variantClass = this.variant\n      ? `${this.ICON_MATERIAL_CLASS}--${this.classModifier(this.variant, 'color-inherit')}`\n      : '';\n    const className = this.className ? this.className : '';\n\n    const engieMaterialClass =\n      !this.isEngieIcon && this.name().startsWith(ICON_ENGIE_PREFIX) ? `${this.ICON_MATERIAL_CLASS}--engie` : '';\n\n    return `${this.ICON_MATERIAL_CLASS} ${sizeClass} ${variantClass} ${className} ${engieMaterialClass}`;\n  }\n\n  private classModifier<T extends string, U>(variant: T, inheritClass: U): 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 [name]=\"name()\" [isEngieIcon]=\"false\" [ariaLabel]=\"ariaLabel\" [className]=\"getClassName()\">\n</nj-icon-base>\n","import { 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  encapsulation: ViewEncapsulation.None,\n  imports: [IconComponent, NgTemplateOutlet],\n  host: {\n    '[class]': 'classes',\n    '(click)': 'handleClick($event)'\n  }\n})\nexport class AccordionItemComponent implements AfterContentInit {\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","@if (label || headerTemplate) {\n  <summary>\n    @if (iconTemplate) {\n      <ng-container [ngTemplateOutlet]=\"iconTemplate\"></ng-container>\n    }\n    <span class=\"nj-accordion-item__label\">\n      @if (label) {\n        {{ label }}\n      } @else {\n        <ng-template [ngTemplateOutlet]=\"headerTemplate\"></ng-template>\n      }\n    </span>\n    @if (!useAlternativeToggleIcon) {\n      <nj-icon name=\"expand_more\" class=\"nj-accordion-item__toggle\" variant=\"inherit\" scale=\"inherit\"></nj-icon>\n    } @else {\n      <nj-icon\n        name=\"add\"\n        class=\"nj-accordion-item__toggle nj-accordion-item__toggle--closed\"\n        variant=\"inherit\"\n        scale=\"inherit\"\n      ></nj-icon>\n      <nj-icon\n        name=\"remove\"\n        class=\"nj-accordion-item__toggle nj-accordion-item__toggle--opened\"\n        variant=\"inherit\"\n        scale=\"inherit\"\n      ></nj-icon>\n    }\n  </summary>\n}\n<p class=\"nj-accordion-item__content\">\n  <ng-content></ng-content>\n</p>\n","import {\n  booleanAttribute,\n  ChangeDetectionStrategy,\n  Component,\n  ContentChildren,\n  Input,\n  QueryList,\n  ViewEncapsulation\n} from '@angular/core';\nimport { AccordionItemComponent } from '../accordion-item/accordion-item.component';\n\n@Component({\n  selector: 'nj-accordion',\n  templateUrl: './accordion.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\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 { 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 { 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): value is undefined | null {\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.escapeRegExp(Utils.normalizeString(search));\n    const regExp = new RegExp(normalizedSearch, 'gi');\n    return normalizedText.search(regExp) !== -1;\n  }\n\n  public static escapeRegExp(string: string): string {\n    return string.replace(/[-\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\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 =\n      Utils.isUndefinedOrNull(placeholder) || placeholder?.trim() === ''\n        ? ' ' // Placeholder must be \" \" because of webkit browser behavior with floating labels\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 { Directive } from '@angular/core';\n\n@Directive({\n  selector: '[njIconButtonIcon]',\n  standalone: true,\n  host: {\n    class: 'nj-icon-btn__icon'\n  }\n})\nexport class IconButtonIconDirective {}\n","import { CommonModule, NgIfContext } from '@angular/common';\nimport {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  Component,\n  ContentChild,\n  Input,\n  TemplateRef,\n  ViewEncapsulation\n} from '@angular/core';\nimport { IconButtonProperties } from '@engie-group/fluid-types';\nimport { EngieTemplateDirective } from '../../directives/engie-template.directive';\nimport { IconComponent } from '../icon/icon.component';\nimport { IconButtonIconDirective } from './directives/icon-button-icon.directive';\n\nconst rootClassName = 'nj-icon-btn';\n\n@Component({\n  selector: 'button[nj-icon-button]',\n  templateUrl: './icon-button.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  imports: [IconComponent, CommonModule, IconButtonIconDirective],\n  host: {\n    '[class]': 'classes'\n  }\n})\nexport class IconButtonComponent implements AfterContentInit, IconButtonProperties {\n  protected iconTemplateRef?: TemplateRef<NgIfContext<string>>;\n\n  /**\n   * Button variant theme\n   * @default `primary`\n   */\n  @Input() variant?: IconButtonProperties['variant'];\n\n  /**\n   * Icon button size\n   * @deprecated Use `scale` attribute instead\n   */\n  @Input() size?: IconButtonProperties['scale'];\n\n  /**\n   * Icon button size\n   */\n  @Input() scale?: IconButtonProperties['scale'];\n\n  /**\n   * Whether button has custom icon\n   */\n  @Input() hasCustomIcon = false;\n\n  /**\n   * Button material icon\n   */\n  @Input() icon?: IconButtonProperties['icon'];\n\n  /**\n   * Alternative label for assistive technologies\n   */\n  @Input() altLabel?: string;\n\n  @ContentChild(EngieTemplateDirective) private template?: EngieTemplateDirective;\n\n  ngAfterContentInit() {\n    if (this.template?.selector === 'icon') {\n      this.iconTemplateRef = this.template.templateRef as TemplateRef<NgIfContext<string>>;\n    }\n  }\n\n  protected get classes() {\n    const classes = [rootClassName];\n\n    if (this.variant) {\n      classes.push(`${rootClassName}--${this.variant}`);\n    }\n\n    const scale = this.scale ?? this.size;\n\n    if (scale) {\n      classes.push(`${rootClassName}--${scale}`);\n    }\n\n    return classes;\n  }\n}\n","@if (altLabel) {\n  <span class=\"nj-sr-only\">{{ altLabel }}</span>\n}\n@if (icon) {\n  <nj-icon njIconButtonIcon [name]=\"icon\"></nj-icon>\n} @else if (iconTemplateRef) {\n  <ng-container [ngTemplateOutlet]=\"iconTemplateRef\"></ng-container>\n}\n","import { CommonModule } from '@angular/common';\nimport {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  contentChild,\n  DestroyRef,\n  effect,\n  EventEmitter,\n  inject,\n  Input,\n  Output,\n  signal,\n  ViewEncapsulation\n} from '@angular/core';\nimport { NgModel } from '@angular/forms';\nimport { InputProperties } from '@engie-group/fluid-types';\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\ntype FormItemProps = Pick<InputProperties, 'scale'>;\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  imports: [IconComponent, IconButtonComponent, CommonModule]\n})\nexport class FormItemComponent implements AfterContentInit, FormItemProps {\n  private destroyRef = inject(DestroyRef);\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   * @deprecated Use `scale` instead. This property will be removed in future releases.\n   */\n  @Input() size: FormItemSize = 'medium';\n\n  /**\n   * Scale of the form-item\n   */\n  @Input() scale: FormItemProps['scale'];\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  @Input() clearable?: 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<MouseEvent>();\n\n  /**\n   * Outputs icon keydown\n   */\n  @Output() iconKeydown: EventEmitter<KeyboardEvent> = new EventEmitter<KeyboardEvent>();\n\n  /**\n   * Outputs icon click\n   */\n  @Output() wrapperClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\n\n  /**\n   * Outputs clear icon click\n   */\n  @Output() clearIconClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\n\n  private formField = contentChild(FormFieldDirective);\n  private formFieldNgModel = contentChild(FormFieldDirective, { read: NgModel });\n  private formFieldValue = signal<string | number>('');\n  protected hasValue = computed(() => !!this.formFieldValue());\n  private cleanInputListener: (() => void) | null = null;\n\n  private readonly formFieldValueChangeEffect = effect(() => {\n    const value = this.formFieldValue();\n    const formField = this.formField();\n    if (formField?.element && formField.element.value !== value) {\n      formField.element.value = value;\n    }\n  });\n\n  private readonly handleFormFieldInputEffect = effect(() => {\n    this.cleanInputListener?.();\n\n    const input = this.formField()?.element;\n    if (!input) {\n      return;\n    }\n\n    this.formFieldValue.set(input.value);\n    const onInput = () => {\n      this.formFieldValue.set(input.value);\n    };\n\n    //Fixme: Necessary for clearable to works with autocomplete.\n    // Blocking for FLuid 6 release, will be reworked with form-item component redesign\n    this.formFieldNgModel()?.control.registerOnChange(onInput.bind(this));\n\n    input.addEventListener('input', onInput);\n\n    this.cleanInputListener = () => {\n      input.removeEventListener('input', onInput);\n      this.cleanInputListener = null;\n    };\n\n    this.destroyRef.onDestroy(() => this.cleanInputListener?.());\n  });\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    const formField = this.formField();\n    if (this.isVisible) {\n      if (formField) {\n        formField.type = 'password';\n      }\n      this.passwordNotice = this.passwordNoticeIsHidden ?? '';\n      this.passwordButtonLabel = this.passwordButtonLabelShow ?? '';\n    } else {\n      if (formField) {\n        formField.type = 'text';\n      }\n      this.passwordNotice = this.passwordNoticeIsVisible ?? '';\n      this.passwordButtonLabel = this.passwordButtonLabelHide ?? '';\n    }\n    this.isVisible = !this.isVisible;\n  }\n\n  /**\n   * @ignore\n   */\n  protected getSubscriptId(): string {\n    return `${this.inputId}-subscript`;\n  }\n\n  /**\n   * @ignore\n   */\n  setAriaAttributes() {\n    const formField = this.formField();\n    if (formField?.element) {\n      if (this.hasError) {\n        formField.element.setAttribute('aria-invalid', 'true');\n      }\n\n      if (this.hasError || this.hasSuccess || this.hasHint) {\n        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 | undefined;\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\n    const scale = this.scale ?? sizeModifier;\n\n    return scale ? `${this.formItemClassName}--${scale}` : '';\n  }\n\n  clearInput(event: MouseEvent) {\n    const formField = this.formField();\n    if (formField?.element) {\n      this.formFieldValue.set('');\n    }\n    this.clearIconClick.emit(event);\n  }\n}\n","<div\n  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>\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      @if (isRequired) {\n        <span class=\"nj-form-item__required-asterisk\">*</span>\n      }\n    </label>\n    <ng-content select=\"[njFormAdditionalContent]\"></ng-content>\n    @let hasIcon =\n      isPassword || (!isMultiline && (iconName || hasCustomIcon)) || (clearable && hasValue() && !isDisabled);\n    @if (hasIcon) {\n      <div class=\"nj-form-item__trailing\">\n        @if (clearable && hasValue() && !isDisabled) {\n          <button\n            nj-icon-button\n            class=\"nj-form-item__clear-button\"\n            scale=\"sm\"\n            variant=\"tertiary\"\n            [altLabel]=\"passwordButtonLabel\"\n            (click)=\"clearInput($event)\"\n            icon=\"cancel\"\n            [attr.aria-pressed]=\"isVisible\"\n          ></button>\n        }\n        @if (isPassword) {\n          <button\n            nj-icon-button\n            class=\"nj-form-item__password-button\"\n            scale=\"sm\"\n            variant=\"tertiary\"\n            [altLabel]=\"passwordButtonLabel\"\n            [icon]=\"iconName || 'visibility'\"\n            (click)=\"toggleVisibility()\"\n            [attr.aria-pressed]=\"isVisible\"\n          ></button>\n          <p class=\"nj-sr-only\" aria-live=\"polite\" aria-atomic=\"true\">{{ passwordNotice }}</p>\n        } @else if (!isMultiline && !hasCustomIcon && iconName) {\n          <nj-icon\n            class=\"nj-form-item__icon\"\n            [name]=\"iconName\"\n            (click)=\"iconClickHandler($event)\"\n            (keydown)=\"iconKeydownHandler($event)\"\n          >\n          </nj-icon>\n        } @else if (!isMultiline && hasCustomIcon) {\n          <div\n            class=\"nj-form-item__icon\"\n            [attr.tabindex]=\"isIconClickable ? 0 : null\"\n            (click)=\"iconClickHandler($event)\"\n            (keydown)=\"iconKeydownHandler($event)\"\n          >\n            <ng-content select=\"[njFormCustomIcon]\"></ng-content>\n          </div>\n        }\n      </div>\n    }\n  </div>\n  @if (hasError || hasSuccess || hasHint) {\n    <div class=\"nj-form-item__subscript\" [attr.id]=\"getSubscriptId()\">\n      @if (hasError) {\n        <nj-icon class=\"nj-form-item__subscript-icon\" name=\"warning\"></nj-icon>\n      } @else if (hasSuccess) {\n        <nj-icon class=\"nj-form-item__subscript-icon\" name=\"check\"></nj-icon>\n      }\n      <ng-content select=\"[njFormSubscript]\"></ng-content>\n    </div>\n  }\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 escapedText = Utils.escapeRegExp(Utils.normalizeString(this.textToHighlight));\n        const regExp = new RegExp(escapedText, 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 ?? 0);\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 escapedText = Utils.escapeRegExp(this.textToHighlight);\n        const regExp = new RegExp(escapedText, 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/**\n * @deprecated Use the {@link ListComponent} instead\n */\n@Component({\n  selector: 'nj-list-deprecated',\n  templateUrl: './list-deprecated.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  imports: [CommonModule]\n})\nexport class ListDeprecatedComponent {\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 { CheckboxProperties } from '@engie-group/fluid-types';\nimport { IconComponent } from '../icon/icon.component';\nimport { CheckboxSize } from './checkbox.model';\n\ntype CheckboxProps = Pick<CheckboxProperties, 'scale'>;\n\n@Component({\n  selector: 'nj-checkbox',\n  templateUrl: './checkbox.component.html',\n  styleUrls: ['./checkbox.component.scss'],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => CheckboxComponent),\n      multi: true\n    }\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [IconComponent, CommonModule]\n})\nexport class CheckboxComponent implements ControlValueAccessor, CheckboxProps {\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   * @deprecated Use `scale` input instead. This input will be removed in future releases.\n   */\n  @Input() size?: CheckboxSize = 'md';\n\n  @Input() scale?: CheckboxProps['scale'];\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   * @ignore\n   */\n  private _onChange = (_: any): void => {};\n\n  /**\n   * @ignore\n   */\n  private _onTouched = (): void => {};\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    const scale = this.scale ?? this.size;\n    return scale !== 'md' ? `${this.checkboxClassName}--${scale}` : '';\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\" [ngClass]=\"checkboxClasses\" [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    />\n    <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n  </label>\n  @if (subscriptMessage || errorMessage) {\n    <div class=\"nj-checkbox__subscript\" [attr.id]=\"getSubscriptId()\">\n      @if (hasError) {\n        <nj-icon variant=\"inherit\" name=\"warning\" scale=\"sm\"></nj-icon>\n      }\n      @if (hasSuccess && !hasError) {\n        <nj-icon variant=\"inherit\" name=\"check\" scale=\"sm\"></nj-icon>\n      }\n      {{ errorMessage ? errorMessage : subscriptMessage }}\n    </div>\n  }\n</div>\n\n<ng-template #content>\n  <span class=\"nj-checkbox__label\">\n    <ng-content></ng-content>\n    @if (isRequired) {\n      <span aria-hidden=\"true\" class=\"nj-checkbox__required\"> * </span>\n    }\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 { TListItemDeprecatedType } from './list-item-deprecated.model';\n\n/**\n * @deprecated Use the {@link ListItemDirective} instead\n */\n@Component({\n  /* eslint-disable-next-line @angular-eslint/component-selector */\n  selector: '[nj-list-item-deprecated]',\n  templateUrl: './list-item-deprecated.component.html',\n  styleUrls: ['./list-item-deprecated.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [IconComponent, CheckboxComponent, CommonModule]\n})\nexport class ListItemDeprecatedComponent {\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 = 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?: TListItemDeprecatedType;\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   * 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 === undefined ? this.getLabel() : this.value;\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  @if (iconName) {\n    <nj-icon [name]=\"iconName\" [ariaLabel]=\"iconAriaLabel\" class=\"nj-list-deprecated__item-icon\"> </nj-icon>\n  }\n  @if (!isIconOnly) {\n    <ng-container [ngTemplateOutlet]=\"isCheckboxContent ? checkboxContent : brutContent\"></ng-container>\n  }\n  @if (!isIconOnly) {\n    <div class=\"nj-list-deprecated__item-right-content\">\n      <ng-content select=\"[njListItemRightContent]\"></ng-content>\n    </div>\n  }\n</ng-template>\n\n@if (type === 'button') {\n  <button type=\"button\" (click)=\"itemClick.emit($event)\">\n    <ng-container [ngTemplateOutlet]=\"itemContent\"></ng-container>\n  </button>\n}\n\n@if (type === 'link') {\n  <a (click)=\"itemClick.emit($event)\" [attr.href]=\"href\">\n    <ng-container [ngTemplateOutlet]=\"itemContent\"></ng-container>\n  </a>\n}\n\n@if (!type || type === 'list') {\n  <ng-container [ngTemplateOutlet]=\"itemContent\"></ng-container>\n}\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, FormsModule, 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 { ListDeprecatedComponent } from '../list-deprecated/list-deprecated.component';\nimport { ListItemDeprecatedComponent } from '../list-item-deprecated/list-item-deprecated.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  imports: [\n    ListDeprecatedComponent,\n    ListItemDeprecatedComponent,\n    FormItemComponent,\n    FormFieldDirective,\n    HighlightDirective,\n    CommonModule,\n    FormsModule\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  /**\n   * @ignore\n   */\n  private unsubscribe = new Subject<void>();\n\n  /**\n   * @ignore\n   */\n  private _parentElement: HTMLElement | null = null;\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  inputValueChange: 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(ListItemDeprecatedComponent)\n  selectOptions?: QueryList<ListItemDeprecatedComponent>;\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: 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 || 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) => (this.searchText ? Utils.normalizeAndSearchInText(option?.label, this.searchText) : false))\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) ?? -1;\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.inputValueChange.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        this.focusIndex = (this.focusIndex + 1) % this.filteredData.length;\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      this.focusIndex = this.focusIndex === 0 ? this.filteredData.length - 1 : this.focusIndex - 1;\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 && this.filteredData) {\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  handleClearClick(): void {\n    this.selectedValue = undefined;\n    this.searchText = '';\n    this._onChange(null);\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  [clearable]=\"clearable ?? true\"\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  (clearIconClick)=\"handleClearClick()\"\n>\n  <input\n    #input\n    type=\"text\"\n    (input)=\"handleInputEvent($event)\"\n    (focus)=\"_onTouched?.()\"\n    [ngModel]=\"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    @if (isOpen) {\n      <nj-list-deprecated\n        [@transformList]=\"'open'\"\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        @if (isFiltered && showNumberOfResults && filteredData?.length) {\n          <!-- Number of suggestions  -->\n          <ng-container\n            [ngTemplateOutlet]=\"searchResultsTemplate ? searchResultsTemplate : defaultSearchResults\"\n            [ngTemplateOutletContext]=\"{\n              numberOfFilteredData: filteredData?.length ?? 0\n            }\"\n          ></ng-container>\n        }\n        @if (isFiltered && showNoResultsMessage && !filteredData?.length) {\n          <!-- No suggestions -->\n          <ng-container [ngTemplateOutlet]=\"noResultTemplate ? noResultTemplate : defaultNoResults\"></ng-container>\n        }\n        @if (filteredData) {\n          <!-- Suggestion items -->\n          @for (option of filteredData; track trackByOption(i, option); let i = $index) {\n            <li\n              nj-list-item-deprecated\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]=\"optionLabelTemplate ? optionLabelTemplate : defaultLabel\"\n                [ngTemplateOutletContext]=\"{ option: option }\"\n              ></ng-container>\n            </li>\n          }\n        }\n      </nj-list-deprecated>\n    }\n  </ng-container>\n</nj-form-item>\n\n<ng-template #defaultLabel let-option=\"option\">\n  @if (isFiltered) {\n    <span njHighlight [content]=\"option?.label\" [textToHighlight]=\"searchText\"></span>\n  } @else {\n    <span>{{ option?.label }}</span>\n  }\n</ng-template>\n\n<ng-template #defaultSearchResults let-numberOfFilteredData=\"numberOfFilteredData\">\n  <p class=\"nj-form-item__list-item-hint\" aria-hidden=\"true\">{{ numberOfFilteredData }} {{ resultsNumberMessage }}</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 { 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","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(':enter', animate(`{{enterAnimationDuration}} ${njSemanticMotionEasingLinearOutSlowIn}`), defaultParams)\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  imports: [CommonModule]\n})\nexport class TooltipComponent {\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 | null = null;\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   * @ignore\n   */\n  getPlacementClass(): string {\n    if (!this.placement) {\n      return '';\n    }\n    return `${this.tooltipClassName}--${this.placement}`;\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\n  class=\"nj-tooltip show\"\n  [ngClass]=\"[getIsInverseClass(), getPlacementClass(), getIsStandaloneClass()]\"\n  [attr.id]=\"tooltipId\"\n  @tooltip\n  [@.disabled]=\"!isAnimated\"\n>\n  @if (hasArrow) {\n    <div class=\"nj-tooltip__arrow\" [ngClass]=\"[getTooltipArrowPlacement()]\"></div>\n  }\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> | null = null;\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 | undefined {\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    if (this.overlayRef) {\n      this.tooltipRef = this.overlayRef.attach(new ComponentPortal(TooltipComponent));\n    }\n    merge(\n      fromEvent<MouseEvent>(this.tooltipRef?.location?.nativeElement, 'mouseleave'),\n      fromEvent<FocusEvent>(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?: MouseEvent | FocusEvent) {\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 ?? null);\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, TemplateRef, ViewChild, ViewEncapsulation, input, computed } from '@angular/core';\nimport { AvatarProperties } from '@engie-group/fluid-types';\nimport { Utils } from '../../utils/utils.util';\nimport { TooltipDirective } from '../tooltip/directives/tooltip.directive';\nimport { TooltipOptions } from '../tooltip/tooltip.model';\nimport { InputSignalProps } from '../../utils/type.utils';\n\n@Component({\n  selector: 'nj-avatar',\n  templateUrl: './avatar.component.html',\n  imports: [TooltipDirective, CommonModule],\n  encapsulation: ViewEncapsulation.None\n})\nexport class AvatarComponent implements InputSignalProps<AvatarProperties> {\n  private avatarClassName = 'nj-avatar';\n\n  /**\n   * Link href, if set avatar is a link <a>\n   */\n  href = input<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  initials = input<string>();\n\n  /**\n   * Text alternative for the avatar\n   */\n  label = input<string>('');\n\n  /**\n   * Avatar scale\n   */\n  scale = input<AvatarProperties['scale']>();\n\n  /**\n   * Whether avatar has a picture or not\n   */\n  hasPicture = input<boolean>();\n\n  /**\n   * Whether avatar is clickable or not\n   */\n  isClickable = input<boolean>();\n\n  /**\n   *  Used for `AvatarListComponent` as the last tile of the list\n   **/\n  isRemainingCount = input<boolean>();\n\n  /**\n   *  Tooltip's options\n   **/\n  tooltipOptions = input<TooltipOptions>();\n\n  /**\n   * @ignore\n   */\n  @ViewChild('avatarTemplate') avatarTemplate?: TemplateRef<any>;\n\n  protected get classes() {\n    return {\n      [`${this.avatarClassName}--default-icon`]: !this.hasInitials() && !this.hasPicture(),\n      [`${this.avatarClassName}--${this.scale()}`]: !!this.scale(),\n      [`${this.avatarClassName}--initials`]: this.hasInitials() && !this.hasPicture(),\n      [`${this.avatarClassName}--clickable`]: !!this.isClickable(),\n      [`${this.avatarClassName}--remaining-count`]: !!this.isRemainingCount(),\n      [`${this.avatarClassName}--picture`]: !!this.hasPicture()\n    };\n  }\n\n  protected formatedInitials = computed(() => this.initials()?.slice(0, 3));\n  protected hasInitials = computed(() => {\n    const initials = this.initials();\n    return !Utils.isUndefinedOrNull(initials) && initials?.trim() !== '';\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\">{{ formatedInitials() }}</span>\n</ng-template>\n\n<ng-template #avatarTemplate>\n  @if (!tooltipOptions() && href()) {\n    <a [href]=\"href()\" class=\"nj-avatar\" [ngClass]=\"classes\">\n      <ng-container *ngTemplateOutlet=\"tagContent\"></ng-container>\n    </a>\n  }\n  @if (!tooltipOptions() && isClickable()) {\n    <button class=\"nj-avatar\" [ngClass]=\"classes\">\n      <ng-container *ngTemplateOutlet=\"tagContent\"></ng-container>\n    </button>\n  }\n  @if (!tooltipOptions() && !href() && !isClickable()) {\n    <div class=\"nj-avatar\" [ngClass]=\"classes\">\n      <ng-container *ngTemplateOutlet=\"tagContent\"></ng-container>\n    </div>\n  }\n  @if (tooltipOptions() && href()) {\n    <a [href]=\"href()\" class=\"nj-avatar\" njTooltip [tooltipOptions]=\"tooltipOptions()\" [ngClass]=\"classes\">\n      <ng-container *ngTemplateOutlet=\"tagContent\"></ng-container>\n    </a>\n  }\n  @if (tooltipOptions() && isClickable()) {\n    <button class=\"nj-avatar\" njTooltip [tooltipOptions]=\"tooltipOptions()\" [ngClass]=\"classes\">\n      <ng-container *ngTemplateOutlet=\"tagContent\"></ng-container>\n    </button>\n  }\n  @if (tooltipOptions() && !href() && !isClickable()) {\n    <div class=\"nj-avatar\" njTooltip [tooltipOptions]=\"tooltipOptions()\" [ngClass]=\"classes\">\n      <ng-container *ngTemplateOutlet=\"tagContent\"></ng-container>\n    </div>\n  }\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  contentChildren,\n  effect,\n  ElementRef,\n  input,\n  output,\n  ViewEncapsulation\n} from '@angular/core';\nimport { AvatarProperties } from '@engie-group/fluid-types';\nimport { AvatarComponent } from '../avatar/avatar.component';\nimport { TooltipOptions } from '../tooltip/tooltip.model';\n\n@Component({\n  selector: 'nj-avatar-list',\n  templateUrl: './avatar-list.component.html',\n  imports: [AvatarComponent, CommonModule],\n  host: {\n    '[class]': 'classes'\n  },\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AvatarListComponent {\n  /**\n   * @ignore\n   */\n  private readonly avatarListClassName = 'nj-avatar-list';\n  private readonly avatarItemClassName = `${this.avatarListClassName}__avatar`;\n\n  max = input<number>(4);\n\n  /**\n   *  Density of the avatar list\n   **/\n  density = input<'default' | 'compact'>();\n\n  /**\n   *  Avatars scale\n   **/\n  scale = input<AvatarProperties['scale']>();\n\n  /**\n   * Remaining avatar Tooltip's options\n   **/\n  remainingTooltipOptions = input<TooltipOptions>();\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  showMoreLabel = input<string | ((elementCount: number) => string)>();\n\n  /**\n   * Emits event on remaining count avatar mouse click\n   */\n  remainingClick = output<MouseEvent>();\n\n  protected avatars = contentChildren(AvatarComponent);\n  protected avatarElements = contentChildren(AvatarComponent, { read: ElementRef<HTMLElement> });\n\n  private readonly applyAvatarItemClassEffect = effect(() => {\n    this.avatarElements().forEach(({ nativeElement }) => {\n      nativeElement.classList.add(this.avatarItemClassName);\n    });\n  });\n\n  get classes() {\n    return {\n      [this.avatarListClassName]: true,\n      [`${this.avatarListClassName}--${this.density()}`]: this.density() && this.density() !== 'default',\n      [`${this.avatarListClassName}--${this.scale()}`]: this.scale()\n    };\n  }\n\n  protected remainingCount = computed(() => (this.avatars().length ?? 0) - this.max());\n  protected remainingCountInitials = computed(() => `+ ${this.remainingCount()}`);\n  protected remainingCountLabel = computed(() => {\n    const showMoreLabel = this.showMoreLabel();\n    return typeof showMoreLabel === 'function' ? showMoreLabel(this.remainingCount() ?? 0) : showMoreLabel;\n  });\n}\n","@for (avatar of avatars() ?? [] | slice: 0 : max(); track avatar) {\n  @if (avatar.avatarTemplate) {\n    <ng-container *ngTemplateOutlet=\"avatar.avatarTemplate\"></ng-container>\n  }\n}\n@if (remainingCount() && remainingCount() > 0) {\n  <nj-avatar\n    class=\"nj-avatar-list__avatar\"\n    (click)=\"remainingClick.emit($event)\"\n    [tooltipOptions]=\"remainingTooltipOptions()\"\n    [isClickable]=\"true\"\n    [isRemainingCount]=\"true\"\n    [initials]=\"remainingCountInitials()\"\n    [label]=\"remainingCountLabel() ?? ''\"\n  ></nj-avatar>\n}\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, BadgeProperties, BadgeScale, BadgeVariant } from '@engie-group/fluid-types';\n\n@Component({\n  selector: 'nj-badge',\n  templateUrl: './badge.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [CommonModule, IconComponent]\n})\nexport class BadgeComponent implements BadgeProperties {\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 scale\n   *\n   * @default `md`\n   */\n  @Input() scale?: BadgeScale;\n\n  /**\n   * Badge size (deprecated, use `scale` instead)\n   *\n   * @deprecated use `scale` instead\n   */\n  @Input() size?: BadgeScale;\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 (\n      !Utils.isUndefinedOrNull(this.capedValue) &&\n      !Utils.isUndefinedOrNull(this.value) &&\n      this.value > (this.capedValue ?? 0)\n    ) {\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 getBadgeScaleClass(): string {\n    this.scale = this.scale ?? this.size;\n    if (!this.scale || this.scale === 'md') {\n      return '';\n    }\n    return `${this.badgeClassName}--${this.scale}`;\n  }\n\n  protected getBadgeUppercaseClass(): string {\n    if (!this.isUppercase) {\n      return '';\n    }\n    return `${this.badgeClassName}--uppercase`;\n  }\n}\n","<p\n  class=\"nj-badge\"\n  [ngClass]=\"[getBadgeEmphasisClass(), getBadgeVariantClass(), getBadgeScaleClass(), getBadgeUppercaseClass()]\"\n>\n  @if (customIcon || iconName) {\n    <span class=\"nj-badge__icon\">\n      @if (customIcon?.templateRef) {\n        <ng-container [ngTemplateOutlet]=\"customIcon!.templateRef\"></ng-container>\n      } @else if (iconName) {\n        <nj-icon [name]=\"iconName\"></nj-icon>\n      }\n    </span>\n  }\n  <span>\n    @if (isValueDefined()) {\n      {{ getFormattedValue() }}\n    } @else {\n      <ng-content></ng-content>\n    }\n  </span>\n\n  @if (unitLabel) {\n    <span class=\"nj-sr-only\">{{ unitLabel }}</span>\n  }\n  @if (unitLabel) {\n    <span class=\"nj-sr-only\">{{ unitLabel }}</span>\n  }\n</p>\n","import { Pipe, PipeTransform, Signal } from '@angular/core';\nimport { EngieTemplateDirective, GenericElement } from '../directives/engie-template.directive';\n\n/**\n * Find template from Engie template directives with given selector\n */\n@Pipe({\n  name: 'njTemplateSelector'\n})\nexport class EngieTemplateSelectorPipe implements PipeTransform {\n  transform(templates: readonly EngieTemplateDirective[], selector: GenericElement) {\n    return templates.find((template) => template.selector === selector)?.templateRef;\n  }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { Attribute, ChangeDetectionStrategy, Component, computed, contentChildren, Input } from '@angular/core';\nimport type { LinkProperties } from '@engie-group/fluid-types';\nimport { EngieTemplateDirective } from '../../directives/engie-template.directive';\nimport { EngieTemplateSelectorPipe } from '../../pipes/engie-template-selector.pipe';\nimport { IconComponent } from '../icon/icon.component';\nimport { LinkIconPosition } from './link.model';\n\n@Component({\n  selector: 'a[nj-link]',\n  templateUrl: './link.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [IconComponent, EngieTemplateSelectorPipe, NgTemplateOutlet],\n  host: {\n    '[class.nj-link]': 'true',\n    '[class]': 'classes()'\n  }\n})\nexport class LinkComponent implements LinkProperties {\n  private linkClass = 'nj-link';\n\n  private iconClass = 'nj-link-icon';\n\n  /**\n   * Link variant theme\n   */\n  @Input() variant: LinkProperties['variant'] = 'default';\n\n  /**\n   * Link size\n   *\n   * @deprecated Use scale property instead. This property will be removed in a future release.\n   */\n  @Input() size?: LinkProperties['scale'];\n\n  @Input() scale?: LinkProperties['scale'];\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   * Link material icon\n   */\n  @Input() icon?: string;\n\n  /**\n   * Whether icon is before or after text\n   */\n  @Input() iconPosition?: LinkIconPosition;\n\n  protected templates = contentChildren(EngieTemplateDirective);\n\n  private customIconTemplate = computed(() => this.templates().filter((t) => t.selector === 'icon')[0]);\n\n  constructor(@Attribute('target') private readonly target: string | null | undefined) {}\n\n  protected isExternalLink(): boolean {\n    return this.isExternal || this.target === '_blank';\n  }\n\n  protected classes = computed(() => {\n    const classes = [];\n    if (this.variant && this.variant !== 'default') {\n      classes.push(`${this.linkClass}--${this.variant}`);\n    }\n\n    if (this.icon || this.customIconTemplate() || this.isExternalLink()) {\n      classes.push(this.iconClass);\n    }\n\n    if (this.iconPosition) {\n      classes.push(`${this.iconClass}--${this.iconPosition}`);\n    }\n\n    const scale = this.scale ?? this.size;\n    if (scale) {\n      classes.push(`${this.linkClass}--${scale}`);\n    }\n\n    return classes;\n  });\n}\n","<ng-template #iconTemplate>\n  @let customIconTemplate = templates() | njTemplateSelector: 'icon';\n  @let hasIcon = icon || customIconTemplate;\n\n  @if (hasIcon && !isExternalLink()) {\n    @if (customIconTemplate) {\n      <ng-container *ngTemplateOutlet=\"customIconTemplate\"></ng-container>\n    } @else if (icon) {\n      <nj-icon [name]=\"icon\"></nj-icon>\n    }\n  }\n</ng-template>\n\n@if (iconPosition === 'before') {\n  <ng-container *ngTemplateOutlet=\"iconTemplate\"></ng-container>\n}\n<ng-content></ng-content>\n@if (!iconPosition || iconPosition === 'after') {\n  <ng-container *ngTemplateOutlet=\"iconTemplate\"></ng-container>\n}\n\n@if (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\" 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    />\n  </svg>\n}\n","import { CommonModule } from '@angular/common';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  inject,\n  Input,\n  OnDestroy\n} from '@angular/core';\nimport { BreadcrumbItemProperties } from '@engie-group/fluid-types';\nimport { IconComponent } from '../icon/icon.component';\nimport { LinkComponent } from '../link/link.component';\nimport { LinkIconPosition } from '../link/link.model';\n\n@Component({\n  selector: 'li[nj-breadcrumb-item]',\n  templateUrl: './breadcrumb-item.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [LinkComponent, CommonModule, IconComponent],\n  host: { '[class]': 'classes', role: 'listitem' }\n})\nexport class BreadcrumbItemComponent implements BreadcrumbItemProperties, AfterViewInit, OnDestroy {\n  private readonly el = inject(ElementRef);\n  private readonly cdr = inject(ChangeDetectorRef);\n\n  /**\n   * Whether item is active\n   *\n   * @deprecated use aria-current=\"page\" instead\n   */\n  @Input()\n  set isActive(value: boolean) {\n    if (value) {\n      this.el.nativeElement.setAttribute('aria-current', 'page');\n    } else {\n      this.el.nativeElement.removeAttribute('aria-current');\n    }\n  }\n  get isActive(): boolean {\n    return this.el.nativeElement.getAttribute('aria-current') === 'page';\n  }\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  protected readonly classes = {\n    'nj-breadcrumb-item': true\n  };\n\n  protected isCurrentItem = false;\n\n  private observer?: MutationObserver;\n\n  ngAfterViewInit(): void {\n    this.refreshIsActive();\n    this.observeAriaCurrent();\n  }\n\n  ngOnDestroy(): void {\n    this.observer?.disconnect();\n  }\n\n  /**\n   * Observe changes to `aria-current` attribute to update `isActive` state\n   */\n  private observeAriaCurrent(): void {\n    this.observer = new MutationObserver(() => {\n      this.refreshIsActive();\n    });\n    this.observer.observe(this.el.nativeElement, { attributes: true, attributeFilter: ['aria-current'] });\n  }\n\n  private refreshIsActive(): void {\n    this.isCurrentItem = this.el.nativeElement.getAttribute('aria-current') === 'page';\n    this.cdr.markForCheck();\n  }\n}\n","@if (isCurrentItem) {\n  @if (icon && iconPosition === 'before') {\n    <nj-icon [name]=\"icon\" />\n  }\n  <ng-container *ngTemplateOutlet=\"itemContent\"></ng-container>\n  @if (icon && (!iconPosition || iconPosition === 'after')) {\n    <nj-icon [name]=\"icon\" />\n  }\n} @else {\n  <a\n    nj-link\n    class=\"nj-breadcrumb-item__link\"\n    [href]=\"href\"\n    [target]=\"target\"\n    [icon]=\"icon\"\n    [iconPosition]=\"iconPosition\"\n  >\n    <span class=\"nj-sr-only\">{{ label }}</span>\n    <ng-container *ngTemplateOutlet=\"itemContent\"></ng-container>\n  </a>\n}\n\n<ng-template #itemContent>\n  <ng-content></ng-content>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  contentChildren,\n  effect,\n  ElementRef,\n  input,\n  signal\n} from '@angular/core';\nimport { EngieTemplateDirective } from '../../directives/engie-template.directive';\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  imports: [CommonModule]\n})\nexport class BreadcrumbComponent {\n  /**\n   * Describes the navigation to screen reader users (who navigate the page using landmarks)\n   *\n   * @default \"Breadcrumbs\"\n   */\n  ariaLabel = input<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  showMoreLabel = input<string>('Show hidden items');\n\n  protected contentTemplates = contentChildren(EngieTemplateDirective);\n  protected itemsTemplates = computed(() =>\n    this.contentTemplates()\n      .filter((templateDirective) => templateDirective.selector === 'item')\n      .map((templateDirective) => templateDirective.templateRef)\n  );\n\n  protected shouldHideOverflowItems = signal(true);\n\n  protected isMinified = computed(() => this.shouldHideOverflowItems() && this.itemsTemplates().length > 4);\n  protected minifiedLeftItemTemplate = computed(() => {\n    return this.isMinified() ? this.itemsTemplates()[0] : undefined;\n  });\n  protected minifiedRightItemTemplate = computed(() => {\n    return this.isMinified() ? this.itemsTemplates()[this.itemsTemplates().length - 1] : undefined;\n  });\n\n  private allItemElements = contentChildren(BreadcrumbItemComponent, { read: ElementRef });\n  private itemClassEffect = effect(() => {\n    this.allItemElements().forEach((elRef) => {\n      elRef.nativeElement.classList.add('nj-breadcrumb__item');\n    });\n  });\n\n  /**\n   * Show all breadcrumb items\n   *\n   * @ignore\n   */\n  seeAll() {\n    this.shouldHideOverflowItems.set(false);\n  }\n}\n","<nav role=\"navigation\" [attr.aria-label]=\"ariaLabel()\">\n  <ol class=\"nj-breadcrumb\" #olRef>\n    @if (isMinified()) {\n      @let leftTemplate = minifiedLeftItemTemplate();\n      @if (leftTemplate) {\n        <ng-container *ngTemplateOutlet=\"leftTemplate\"></ng-container>\n      }\n      <li class=\"nj-breadcrumb__see-more\">\n        <button (click)=\"seeAll()\" (keydown.enter)=\"seeAll()\">\n          <span class=\"nj-sr-only\">{{ showMoreLabel() }}</span>\n        </button>\n      </li>\n      @let rightTemplate = minifiedRightItemTemplate();\n      @if (rightTemplate) {\n        <ng-container *ngTemplateOutlet=\"rightTemplate\"></ng-container>\n      }\n    } @else {\n      @for (itemTemplate of itemsTemplates(); track itemTemplate) {\n        <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n      }\n    }\n  </ol>\n</nav>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\nimport type { BulletProperties, BulletVariant } from '@engie-group/fluid-types';\nimport { Utils } from '../../utils/utils.util';\n\n@Component({\n  selector: 'nj-bullet',\n  templateUrl: './bullet.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  imports: [CommonModule]\n})\nexport class BulletComponent implements BulletProperties {\n  private bulletClassName = 'nj-bullet';\n\n  /**\n   * Bullet variant\n   */\n  @Input() variant?: BulletVariant;\n\n  /**\n   * Bullet custom color, overrides variant\n   */\n  @Input() customColor?: string;\n\n  /**\n   * Bullet size\n   *\n   * @deprecated Use scale instead. This property will be removed in future versions.\n   */\n  @Input() size?: BulletProperties['size'];\n\n  /**\n   * Scale of the bullet\n   **/\n  @Input() scale?: BulletProperties['scale'];\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    const scale = this.scale ?? this.size;\n    if (!scale) {\n      return '';\n    }\n    return `${this.bulletClassName}--${scale}`;\n  }\n}\n","<div\n  class=\"nj-bullet\"\n  [ngClass]=\"[getBulletVariantClass(), getButtonSizeClass()]\"\n  [style.background-color]=\"customColor\"\n></div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport type { SpinnerProperties } from '@engie-group/fluid-types';\n\n@Component({\n  selector: 'nj-spinner',\n  template: '',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: { '[class]': 'classes', '[attr.aria-label]': 'ariaLabel' }\n})\nexport class SpinnerComponent implements SpinnerProperties, Pick<ARIAMixin, 'ariaLabel'> {\n  /**\n   * Spinner variant\n   */\n  @Input() variant?: SpinnerProperties['variant'];\n\n  /**\n   * Spinner size (deprecated, use `scale` instead)\n   *\n   * @deprecated use `scale` instead\n   */\n  @Input() size?: SpinnerProperties['scale'];\n\n  /**\n   * Spinner scale\n   */\n  @Input() scale?: SpinnerProperties['scale'];\n\n  /**\n   * Aria label, for accessibility reasons\n   */\n  @Input() ariaLabel: ARIAMixin['ariaLabel'] = 'loading';\n\n  protected get classes() {\n    const spinnerClassName = 'nj-spinner';\n    return {\n      [spinnerClassName]: true,\n      [`${spinnerClassName}--${this.variant}`]: !!this.variant,\n      [`${spinnerClassName}--${this.scale}`]: !!this.scale,\n      [`${spinnerClassName}--${this.size}`]: !!this.size\n    };\n  }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n  selector: '[njButtonIcon]',\n  standalone: true,\n  host: {\n    class: 'nj-btn__icon'\n  }\n})\nexport class ButtonIconDirective {}\n","import { CommonModule, NgIfContext } from '@angular/common';\nimport {\n  AfterContentInit,\n  booleanAttribute,\n  ChangeDetectionStrategy,\n  Component,\n  ContentChild,\n  Input,\n  TemplateRef,\n  ViewEncapsulation\n} from '@angular/core';\nimport { ButtonEmphasis, type ButtonProperties, ButtonScale, ButtonVariant } from '@engie-group/fluid-types';\nimport { EngieTemplateDirective } from '../../directives/engie-template.directive';\nimport { IconComponent } from '../icon/icon.component';\nimport { SpinnerComponent } from '../spinner/spinner.component';\nimport { ButtonIconDirective } from './directives/button-icon.directive';\n\nconst buttonClassName = 'nj-btn';\n\n@Component({\n  selector: 'button[nj-button]',\n  templateUrl: './button.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  imports: [IconComponent, CommonModule, ButtonIconDirective, SpinnerComponent],\n  host: {\n    '[class]': 'classes',\n    '[disabled]': 'disabled || isLoading'\n  }\n})\nexport class ButtonComponent implements ButtonProperties, AfterContentInit {\n  protected iconTemplateRef?: TemplateRef<NgIfContext<string>>;\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 scale\n   */\n  @Input() scale?: ButtonScale;\n\n  /**\n   * Button material icon\n   */\n  @Input() icon?: string;\n\n  /**\n   * Whether the button is disabled\n   */\n  @Input({ transform: booleanAttribute }) disabled?: boolean;\n\n  /**\n   * Whether the button is loading or not\n   */\n  @Input({ transform: booleanAttribute }) isLoading?: boolean;\n\n  @ContentChild(EngieTemplateDirective) private template?: EngieTemplateDirective;\n\n  ngAfterContentInit() {\n    if (this.template?.selector === 'icon') {\n      this.iconTemplateRef = this.template.templateRef as TemplateRef<NgIfContext<string>>;\n    }\n  }\n\n  get classes() {\n    const classes = [buttonClassName];\n\n    if (this.emphasis && this.emphasis !== 'bold') {\n      classes.push(`${buttonClassName}--${this.emphasis}`);\n    }\n\n    if (this.variant && this.variant !== 'primary') {\n      classes.push(`${buttonClassName}--${this.variant}`);\n    }\n\n    if (this.scale && this.scale !== 'md') {\n      classes.push(`${buttonClassName}--${this.scale}`);\n    }\n\n    if (this.isLoading) {\n      classes.push(`${buttonClassName}--is-loading`);\n    }\n\n    return classes;\n  }\n}\n","@if (isLoading) {\n  <nj-spinner></nj-spinner>\n} @else if (iconTemplateRef) {\n  <ng-container *ngTemplateOutlet=\"iconTemplateRef\"></ng-container>\n} @else if (icon) {\n  <nj-icon njButtonIcon [name]=\"icon\"></nj-icon>\n}\n\n<ng-content></ng-content>\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","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  imports: [CommonModule]\n})\nexport class CardComponent {\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, 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 { booleanAttribute, Directive, Input } from '@angular/core';\nimport { DisplayProperties } from '@engie-group/fluid-types';\n\n@Directive({\n  selector: '[njDisplay]',\n  standalone: true,\n  host: {\n    '[class]': 'classes'\n  }\n})\nexport class DisplayDirective implements DisplayProperties {\n  @Input() scale?: DisplayProperties['scale'];\n\n  @Input() variant?: DisplayProperties['variant'];\n\n  @Input({ transform: booleanAttribute }) isNotInvertible?: DisplayProperties['isNotInvertible'];\n\n  protected get classes() {\n    return {\n      'nj-display': true,\n      'nj-display--not-invertible': this.isNotInvertible,\n      [`nj-display--${this.scale}`]: !!this.scale,\n      [`nj-display--${this.variant}`]: !!this.variant\n    };\n  }\n}\n","import {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  ElementRef,\n  input,\n  ViewChild\n} from '@angular/core';\nimport type { StatusIndicatorProperties, StatusIndicatorScale, StatusIndicatorStatus } from '@engie-group/fluid-types';\nimport { InputSignalProps } from '../../utils/type.utils';\nimport { IconComponent } from '../icon/icon.component';\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  host: {\n    '[class.nj-status-indicator]': 'true',\n    '[attr.aria-hidden]': 'hasLabel ? null : true',\n    '[class]': 'classes()'\n  },\n  imports: [IconComponent]\n})\nexport class StatusIndicatorComponent implements AfterViewInit, InputSignalProps<StatusIndicatorProperties> {\n  private readonly statusIndicatorClass = 'nj-status-indicator';\n\n  /**\n   * Status indicator status\n   */\n  status = input<StatusIndicatorStatus>();\n\n  /**\n   * Status indicator scale\n   *\n   */\n  scale = input<StatusIndicatorScale>();\n\n  @ViewChild('labelWrapper') protected labelWrapper?: ElementRef<HTMLElement>;\n\n  /**\n   * Whether status indicator has label\n   */\n  protected hasLabel?: boolean;\n\n  protected iconName = computed(() => {\n    switch (this.status()) {\n      case 'offline':\n        return 'cancel';\n      case 'online':\n        return 'check_circle';\n      case 'away':\n        return 'access_time_filled';\n      case 'do-not-disturb':\n        return 'do_not_disturb_on';\n      case 'busy':\n        return 'circle';\n      case 'unknown':\n        return 'help';\n      case 'error':\n        return 'cancel';\n      case 'success':\n        return 'check_circle';\n      case 'warning':\n        return 'error';\n      case 'in-progress':\n        return 'timelapse';\n      case 'information':\n        return 'info';\n      case 'discovery':\n        return 'info';\n      case 'planet':\n        return 'info';\n      case 'ai':\n        return 'engie_ai_filled';\n      default:\n        return '';\n    }\n  });\n\n  ngAfterViewInit() {\n    this.hasLabel = this.labelWrapper?.nativeElement && this.labelWrapper.nativeElement.innerHTML !== '';\n  }\n\n  protected classes = computed(() => {\n    return {\n      [this.statusIndicatorClass]: true,\n      [`${this.statusIndicatorClass}--${this.status()}`]: !!this.status(),\n      [`${this.statusIndicatorClass}--${this.scale()}`]: !!this.scale()\n    };\n  });\n}\n","<div class=\"nj-status-indicator__icon\">\n  <nj-icon [name]=\"iconName()\" />\n</div>\n<p class=\"nj-status-indicator__text\" #labelWrapper>\n  <ng-content></ng-content>\n</p>\n","import { CommonModule } from '@angular/common';\nimport {\n  AfterContentInit,\n  booleanAttribute,\n  ChangeDetectionStrategy,\n  Component,\n  ContentChildren,\n  ElementRef,\n  EventEmitter,\n  inject,\n  Input,\n  Output,\n  QueryList,\n  TemplateRef\n} from '@angular/core';\nimport type {\n  InlineMessageActionPosition,\n  InlineMessageProperties,\n  InlineMessageScale,\n  InlineMessageVariant\n} from '@engie-group/fluid-types';\nimport { EngieTemplateDirective } from '../../directives/engie-template.directive';\nimport { IconButtonComponent } from '../icon-button/icon-button.component';\nimport { StatusIndicatorComponent } from '../status-indicator/status-indicator.component';\n\n@Component({\n  selector: 'nj-inline-message',\n  templateUrl: './inline-message.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [IconButtonComponent, StatusIndicatorComponent, CommonModule],\n  host: {\n    '[class.nj-inline-message]': 'true',\n    '[class]': 'classes'\n  }\n})\nexport class InlineMessageComponent implements InlineMessageProperties, AfterContentInit {\n  private readonly inlineMessageClass = 'nj-inline-message';\n\n  /**\n   * Inline message variant\n   */\n  @Input() variant?: InlineMessageVariant;\n\n  /**\n   * Inline message scale\n   */\n  @Input() scale?: InlineMessageScale;\n\n  /**\n   * Action element position.\n   */\n  @Input() actionPosition?: InlineMessageActionPosition;\n\n  /**\n   * Whether the inline-message has status indicator icon or not\n   */\n  @Input({ transform: booleanAttribute }) hasStatus?: boolean = true;\n\n  /**\n   * Whether the inline-message has a close icon or not\n   */\n  @Input({ transform: booleanAttribute }) isClosable?: boolean;\n\n  /**\n   * Output event when the inline-message is closed\n   */\n  @Output() closeClick = new EventEmitter<Event>();\n\n  @ContentChildren(EngieTemplateDirective) private templateDirectives?: QueryList<EngieTemplateDirective>;\n\n  private el = inject(ElementRef);\n\n  protected actionTemplate?: TemplateRef<unknown>;\n\n  ngAfterContentInit() {\n    this.templateDirectives?.forEach((templateDirective) => {\n      if (templateDirective?.selector === 'action') {\n        this.actionTemplate = templateDirective.templateRef;\n      }\n    });\n  }\n\n  protected removeInlineMessage(event: MouseEvent) {\n    this.el?.nativeElement?.remove();\n    this.closeClick.emit(event);\n  }\n\n  protected get isFatalError() {\n    return this.variant === 'fatal-error';\n  }\n\n  protected get classes() {\n    const classes = [];\n\n    if (this.actionTemplate && this.actionPosition) {\n      classes.push(`${this.inlineMessageClass}--action-position-${this.actionPosition}`);\n    }\n    if (this.variant) {\n      classes.push(`${this.inlineMessageClass}--${this.variant}`);\n    }\n    if (this.scale) {\n      classes.push(`${this.inlineMessageClass}--${this.scale}`);\n    }\n    return classes;\n  }\n}\n","@if (hasStatus) {\n  <nj-status-indicator class=\"nj-inline-message__status\"></nj-status-indicator>\n}\n<div class=\"nj-inline-message__content\">\n  <div class=\"nj-inline-message__body\">\n    <ng-content></ng-content>\n  </div>\n  @if (!isFatalError && actionTemplate) {\n    <div class=\"nj-inline-message__action\">\n      <ng-container *ngTemplateOutlet=\"actionTemplate\"></ng-container>\n    </div>\n  }\n</div>\n@if (isClosable) {\n  <button nj-icon-button class=\"nj-inline-message__close\" icon=\"close\" (click)=\"removeInlineMessage($event)\"></button>\n}\n","import { booleanAttribute, Directive, input } from '@angular/core';\nimport { InputSignalProps } from '../../../utils/type.utils';\nimport { ListItemProps } from '../types/properties.type';\n\n@Directive({\n  selector: 'li[njListItem]',\n  host: {\n    '[class]': 'classes'\n  }\n})\nexport class ListItemDirective implements InputSignalProps<ListItemProps> {\n  /**\n   * @ignore\n   */\n  baseClass: string = 'nj-list__item';\n\n  interactive = input(false, { transform: booleanAttribute });\n  textDistribution = input<ListItemProps['textDistribution']>();\n\n  protected get classes() {\n    return {\n      [this.baseClass]: true,\n      [`${this.baseClass}--interactive`]: this.interactive(),\n      [`${this.baseClass}--vertical`]: this.textDistribution() === 'vertical'\n    };\n  }\n}\n","import { booleanAttribute, Directive, inject, input } from '@angular/core';\nimport { ListItemDirective } from './list-item.directive';\nimport { InputSignalProps } from '../../../utils/type.utils';\nimport { ListNavigationItemProps } from '../types/properties.type';\n\n@Directive({\n  selector: 'li[njListNavigationItem]',\n  hostDirectives: [\n    {\n      directive: ListItemDirective,\n      inputs: ['interactive']\n    }\n  ],\n  host: {\n    '[class]': 'classes',\n    '[attr.aria-selected]': 'selected()'\n  }\n})\nexport class ListNavigationItemDirective implements InputSignalProps<ListNavigationItemProps> {\n  private listItemDirective = inject(ListItemDirective);\n  private readonly baseClass = 'nj-list__navigation-item';\n\n  variant = input<ListNavigationItemProps['variant']>();\n  expandable = input(false, { transform: booleanAttribute });\n  expanded = input(false, { transform: booleanAttribute });\n  selected = input(false, { transform: booleanAttribute });\n\n  constructor() {\n    this.listItemDirective.baseClass = this.baseClass;\n  }\n\n  protected get classes() {\n    return {\n      [`${this.baseClass}--${this.variant()}`]: !!this.variant(),\n      [`${this.baseClass}--expanded`]: this.expanded()\n    };\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, contentChildren, inject, input } from '@angular/core';\nimport { EngieTemplateDirective } from '../../../../directives/engie-template.directive';\nimport { IconComponent } from '../../../icon/icon.component';\nimport { EngieTemplateSelectorPipe } from '../../../../pipes/engie-template-selector.pipe';\nimport { InputSignalProps } from '../../../../utils/type.utils';\nimport { ListItemContentProps } from '../../types/properties.type';\nimport { ListNavigationItemDirective } from '../../directives/list-navigation-item.directive';\n\n@Component({\n  selector: 'nj-list-item-content, a [nj-list-item-content], button [nj-list-item-content]',\n  imports: [CommonModule, IconComponent, EngieTemplateSelectorPipe],\n  providers: [EngieTemplateSelectorPipe],\n  templateUrl: './list-item-content.component.html',\n  host: {\n    class: 'nj-list__item-wrapper'\n  }\n})\nexport class ListItemContentComponent implements InputSignalProps<ListItemContentProps> {\n  protected listNavigationItemDirective = inject(ListNavigationItemDirective, { optional: true });\n\n  secondaryText = input<ListItemContentProps['secondaryText']>();\n  leadingIcon = input<ListItemContentProps['leadingIcon']>();\n  trailingIcon = input<ListItemContentProps['trailingIcon']>();\n\n  protected templates = contentChildren(EngieTemplateDirective);\n}\n","@if (templates() | njTemplateSelector: 'leading'; as leadingTemplate) {\n  <span class=\"nj-list__item-leading\">\n    <ng-container [ngTemplateOutlet]=\"leadingTemplate\" />\n  </span>\n} @else if (leadingIcon()) {\n  <nj-icon [name]=\"leadingIcon()\" class=\"nj-list__item-leading\"></nj-icon>\n}\n<span class=\"nj-list__item-content\">\n  <span class=\"nj-list__item-primary\">\n    <ng-content></ng-content>\n  </span>\n  @if (secondaryText()) {\n    <span class=\"nj-list__item-secondary\">{{ secondaryText() }}</span>\n  }\n</span>\n@if (templates() | njTemplateSelector: 'trailing'; as trailingTemplate) {\n  <span class=\"nj-list__item-trailing\">\n    <ng-container [ngTemplateOutlet]=\"trailingTemplate\" />\n  </span>\n} @else if (trailingIcon()) {\n  <nj-icon [name]=\"trailingIcon()\" class=\"nj-list__item-trailing\"></nj-icon>\n}\n@if (listNavigationItemDirective?.expandable()) {\n  <nj-icon name=\"keyboard_arrow_down\" class=\"nj-list__item-trailing nj-list__item-arrow\"></nj-icon>\n}\n","import { booleanAttribute, Directive, Input } from '@angular/core';\nimport { ListProperties } from '@engie-group/fluid-types';\nimport { TSizeVariants } from '../../models/size-variant.model';\n\n@Directive({\n  selector: 'ul[njList]',\n  standalone: true,\n  host: {\n    '[class]': 'classes',\n    '[class.nj-list--has-border]': 'hasBorder'\n  }\n})\nexport class ListDirective implements ListProperties {\n  @Input({ transform: booleanAttribute }) hasBorder = false;\n  /**\n   * @deprecated Use scale instead. This property will be removed in future versions.\n   */\n  @Input() size?: Extract<TSizeVariants, 'sm' | 'md' | 'lg'>;\n  @Input() scale?: ListProperties['scale'];\n\n  protected get classes() {\n    const classes = ['nj-list'];\n    const scale = this.scale ?? this.size;\n    if (scale) {\n      classes.push(`nj-list--${scale}`);\n    }\n    return classes;\n  }\n}\n","import { booleanAttribute, Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'nj-menu',\n  templateUrl: 'menu.component.html',\n  standalone: true,\n  styles: [\n    `\n      :host {\n        display: block;\n      }\n    `\n  ],\n  host: {\n    '[class]': 'classes'\n  }\n})\nexport class MenuComponent {\n  /**\n   * Add a scrollbar if the height is more than `--nj-menu-max-height` (default to 224px)\n   */\n  @Input({ transform: booleanAttribute }) scrollable = false;\n  get classes() {\n    const classes = ['nj-menu'];\n\n    if (this.scrollable) {\n      classes.push('nj-menu--scrollable');\n    }\n    return classes;\n  }\n}\n","<ng-content></ng-content>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'nj-menu-group',\n  templateUrl: 'menu-group.component.html',\n  styles: [\n    `\n      :host {\n        display: block;\n      }\n    `\n  ],\n  host: {\n    class: 'nj-menu-group',\n    role: 'group'\n  }\n})\nexport class MenuGroupComponent {\n  /**\n   * Add a header to the menu group\n   */\n  @Input() headerLabel?: string;\n}\n","@if (headerLabel) {\n  <h3 class=\"nj-menu-group__header\">{{ headerLabel }}</h3>\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 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(':enter', animate(`{{enterAnimationDuration}} ${njSemanticMotionEasingLinearOutSlowIn}`), defaultParams)\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  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\n  class=\"nj-modal-deprecated nj-modal-deprecated--visible\"\n  [ngClass]=\"{ 'nj-modal-deprecated--vertical-centered': isVerticallyCentered }\"\n>\n  <div class=\"nj-modal-deprecated__dialog\">\n    <div class=\"nj-modal-deprecated__content\" @modal>\n      <div class=\"nj-modal-deprecated__header\">\n        <h1 class=\"nj-modal-deprecated__title\" [attr.id]=\"titleId\">\n          <ng-content select=\"[njModalTitle]\"></ng-content>\n        </h1>\n        @if (hasCloseIcon) {\n          <button\n            nj-icon-button\n            class=\"nj-modal-deprecated__close\"\n            icon=\"close\"\n            scale=\"sm\"\n            (click)=\"closeModal()\"\n            [altLabel]=\"closeLabel\"\n          ></button>\n        }\n      </div>\n      <div class=\"nj-modal-deprecated__body\">\n        <ng-content select=\"[njModalContent]\"></ng-content>\n      </div>\n      <div class=\"nj-modal-deprecated__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 { IconButtonComponent } from '../icon-button/icon-button.component';\nimport { TagProperties, TagScale, TagVariant } from '@engie-group/fluid-types';\n\n@Component({\n  selector: 'nj-tag',\n  templateUrl: './tag.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  imports: [IconButtonComponent, CommonModule]\n})\nexport class TagComponent implements TagProperties {\n  private readonly tagClassName = 'nj-tag';\n\n  /**\n   * Tag variant\n   *\n   * @default `grey`\n   */\n  @Input() variant?: TagVariant;\n\n  /**\n   * Tag scale\n   */\n  @Input() scale?: TagScale = '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  getTagScaleClass(): string {\n    if (!this.scale || this.scale === 'md') {\n      return '';\n    }\n    return `${this.tagClassName}--${this.scale}`;\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(), getTagScaleClass(), getTagDisabledClass()]\">\n  <!-- Icon -->\n  @if (iconName && !hasCustomIcon) {\n    <span aria-hidden=\"true\" class=\"nj-tag__icon nj-icon-material material-icons\">{{ iconName }}</span>\n  }\n  @if (hasCustomIcon) {\n    <span aria-hidden=\"true\" class=\"nj-tag__icon\">\n      <ng-content select=\"[njTagIcon]\"></ng-content>\n    </span>\n  }\n\n  <ng-container *ngTemplateOutlet=\"tagWrapper\"></ng-container>\n\n  <!-- Close button -->\n  @if (isClosable && !isDisabled) {\n    <button\n      nj-icon-button\n      icon=\"close\"\n      class=\"nj-tag__close\"\n      scale=\"2xs\"\n      type=\"button\"\n      [altLabel]=\"closeLabel\"\n      (click)=\"removeTag($event)\"\n    ></button>\n  }\n</div>\n\n<!-- Render a link, a button or a span for the tag content -->\n<ng-template #tagWrapper>\n  @if (href) {\n    <a\n      class=\"nj-tag__action\"\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\n  @if (!href && isClickable) {\n    <button class=\"nj-tag__action\" [attr.disabled]=\"isDisabled ? 'disabled' : null\" (click)=\"tagClick?.emit($event)\">\n      <ng-container *ngTemplateOutlet=\"tagContent\"></ng-container>\n    </button>\n  }\n\n  @if (!href && !isClickable) {\n    <p class=\"nj-tag__text\">\n      <ng-container *ngTemplateOutlet=\"tagContent\"></ng-container>\n    </p>\n  }\n</ng-template>\n\n<!-- Tag inner text content -->\n<ng-template #tagContent>\n  <ng-content></ng-content>\n</ng-template>\n","import { 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 { TagScale } from '@engie-group/fluid-types';\nimport { fromEvent, race, Subject, takeUntil } 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 { ListDeprecatedComponent } from '../list-deprecated/list-deprecated.component';\nimport { ListItemDeprecatedComponent } from '../list-item-deprecated/list-item-deprecated.component';\nimport { TagComponent } from '../tag/tag.component';\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  imports: [TagComponent, FormItemComponent, FormFieldDirective, ListDeprecatedComponent]\n})\nexport class MultiSelectComponent\n  extends FormItemComponent\n  implements OnInit, AfterViewInit, ControlValueAccessor, OnDestroy\n{\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   * @ignore\n   */\n  private _onTouched = (): void => {};\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(ListDeprecatedComponent) listEl?: ListDeprecatedComponent;\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(ListItemDeprecatedComponent, { descendants: true })\n  selectOptions?: QueryList<ListItemDeprecatedComponent>;\n\n  constructor(\n    private readonly element: ElementRef<HTMLElement>,\n    private readonly cdr: ChangeDetectorRef,\n    @Inject(DOCUMENT) private document: Document\n  ) {\n    super();\n  }\n\n  ngOnInit() {\n    fromEvent<MouseEvent>(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.pipe(takeUntil(this.unsubscribe)).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.pipe(takeUntil(unsubscribeCond$)).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) =>\n          selectOptionsArr.some((opt) => {\n            return opt?.getValue() === value;\n          })\n        )\n      );\n\n      this.selectedIndexes = new Set(\n        selectOptionsArr\n          .map((opt, index) => {\n            const value = opt.getValue();\n            return value && this.selectedValues.has(value) ? 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    const item = this.selectOptions?.get(index);\n    if (!item) {\n      return;\n    }\n\n    e?.stopPropagation();\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: ListItemDeprecatedComponent, index: number) {\n    if (!item) {\n      return;\n    }\n    const value = item?.getValue();\n    if (value) {\n      this.toggleValueInSelectedValue(value);\n      this.toggleIndexInSelected(index);\n    }\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.selectOptions?.length && 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        const option = this.selectOptions?.get(this.focusedIndex);\n        if (!option) {\n          return;\n        }\n        this.toggleItem(option, 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 =\n        this.selectOptions?.toArray().findIndex((item) => item.getValue()?.[0].toLowerCase() === e.key.toLowerCase()) ??\n        -1;\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 (!Utils.isUndefinedOrNull(indexToAdd) && 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      const value = item.getValue();\n      item.updateSelected(!!value && this.selectedValues.has(value));\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 (\n      this.selectOptions?.toArray().findIndex((item) => this.document.activeElement === item.el.nativeElement) ?? -1\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 tagScale(): TagScale {\n    let transformedSize;\n    switch (this.size) {\n      case 'xlarge':\n        transformedSize = 'xl';\n        break;\n      case 'small':\n        transformedSize = 'sm';\n        break;\n    }\n\n    const scale = this.scale ?? transformedSize;\n\n    switch (scale) {\n      case 'xl':\n        return 'md';\n      case 'sm':\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  [scale]=\"scale\"\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  <div class=\"nj-form-item__additional-content\" 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    >\n      <span class=\"nj-sr-only\">{{ buttonLabel }}</span>\n    </button>\n    <div class=\"nj-form-item__selected-tags\" (click)=\"toggleIsOpen()\">\n      @if (selectIndexAsArray?.length; as numOfSelected) {\n        @if (displaySelectedItems) {\n          @for (optionIndex of selectedIndexesToShow; track optionIndex; let i = $index) {\n            <nj-tag\n              #tags\n              [variant]=\"tagColor\"\n              [scale]=\"tagScale\"\n              [isClosable]=\"true\"\n              [shouldAutoDestruct]=\"false\"\n              [closeLabel]=\"getTagCloseLabel(optionIndex)\"\n              (closeClick)=\"toggleByIndex($event, optionIndex, i)\"\n            >\n              {{ getLabelAtIndex(optionIndex) }}\n            </nj-tag>\n          }\n          @if (maxTagsToDisplay && numOfSelected > maxTagsToDisplay) {\n            <nj-tag [variant]=\"tagColor\" [scale]=\"tagScale\"> +{{ numOfSelected - maxTagsToDisplay }} </nj-tag>\n          }\n        }\n        @if (!displaySelectedItems) {\n          @if (numOfSelected === 1) {\n            <nj-tag\n              [variant]=\"tagColor\"\n              [scale]=\"tagScale\"\n              [isClosable]=\"true\"\n              [shouldAutoDestruct]=\"false\"\n              [closeLabel]=\"getTagCloseLabel(selectIndexAsArray?.[0])\"\n              (closeClick)=\"toggleByIndex($event, selectIndexAsArray?.[0] ?? 0, 0)\"\n            >\n              {{ getLabelAtIndex(selectIndexAsArray?.[0] ?? 0) }}\n            </nj-tag>\n          }\n          @if (numOfSelected > 1) {\n            <nj-tag\n              [variant]=\"tagColor\"\n              [isClosable]=\"true\"\n              [shouldAutoDestruct]=\"false\"\n              [scale]=\"tagScale\"\n              [closeLabel]=\"tagResetSelectionLabel\"\n              (closeClick)=\"resetSelection($event)\"\n            >\n              {{ numOfSelected }} {{ selectedText }}\n            </nj-tag>\n          }\n        }\n      }\n    </div>\n    <nj-list-deprecated\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-deprecated>\n  </div>\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  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 ?? 0 }, (_, 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 ((this.count !== undefined && 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    if (!this.count) {\n      return false;\n    }\n\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    if (!this.count) {\n      return false;\n    }\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      <button\n        nj-icon-button\n        scale=\"sm\"\n        icon=\"chevron_left\"\n        [altLabel]=\"ariaLabelPrevious\"\n        [disabled]=\"currentItem === 1\"\n        (click)=\"goToPrevious()\"\n      ></button>\n    </li>\n    @for (item of getItems(); track item) {\n      @if (!shouldMinify || isItemVisible(item)) {\n        <li class=\"nj-pagination__item\" [ngClass]=\"{ 'nj-pagination__item--active': currentItem === item }\">\n          @if (currentItem === item) {\n            <span class=\"nj-pagination__link\" aria-current=\"true\">\n              {{ item }}\n            </span>\n          } @else {\n            <button class=\"nj-pagination__link\" (click)=\"goToItem(item)\">\n              {{ item }}\n            </button>\n          }\n        </li>\n      }\n      @if (shouldMinify && showMoreHorizontal(item)) {\n        <li class=\"nj-pagination__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      }\n    }\n\n    <li class=\"nj-pagination__item\">\n      <button\n        nj-icon-button\n        scale=\"sm\"\n        icon=\"chevron_right\"\n        [altLabel]=\"ariaLabelNext\"\n        (click)=\"goToNext()\"\n        [disabled]=\"currentItem === count\"\n      ></button>\n    </li>\n  </ul>\n</nav>\n","import { animate, AnimationTriggerMetadata, state, style, transition, trigger } from '@angular/animations';\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', animate('{{duration}}ms cubic-bezier(0.0, 0.0, 0.2, 1)'), { params: { duration: 500 } })\n  ])\n};\n","import { Component, ViewEncapsulation, booleanAttribute, computed, input } from '@angular/core';\nimport { ProgressProperties } from '@engie-group/fluid-types';\nimport { InputSignalProps } from '../../utils/type.utils';\nimport { IconComponent } from '../icon/icon.component';\nimport { ProgressAnimation } from './progress.animation';\n\n@Component({\n  selector: 'nj-progress',\n  templateUrl: './progress.component.html',\n  animations: [ProgressAnimation.progressFill],\n  encapsulation: ViewEncapsulation.None,\n  imports: [IconComponent],\n  host: {\n    '[class]': 'classes()',\n    role: 'progressbar',\n    '[attr.aria-valuenow]': 'formattedValue()',\n    '[attr.aria-valuemin]': 'min()',\n    '[attr.aria-valuemax]': 'max()',\n    '[attr.aria-label]': 'label()',\n    '[attr.aria-valuetext]': \"formattedPercentage() + '%'\"\n  }\n})\nexport class ProgressComponent implements InputSignalProps<ProgressProperties> {\n  private readonly progressClassName = 'nj-progress';\n\n  label = input<ProgressProperties['label']>();\n  value = input<ProgressProperties['value']>();\n  descriptionPosition = input<ProgressProperties['descriptionPosition']>();\n  min = input<ProgressProperties['min']>();\n  max = input<ProgressProperties['max']>();\n  hasTransition = input(false, { transform: booleanAttribute });\n  decimalPrecision = input<ProgressProperties['decimalPrecision']>();\n  variant = input<ProgressProperties['variant']>();\n  subscript = input<ProgressProperties['subscript']>();\n  subscriptVariant = input<ProgressProperties['subscriptVariant']>();\n\n  /**\n   * Whether progress is animated at first render\n   */\n  isAnimated = input(true, { transform: booleanAttribute });\n\n  protected classes = computed(() => ({\n    [this.progressClassName]: true,\n    [`${this.progressClassName}--has-transition`]: this.hasTransition(),\n    [`${this.progressClassName}--has-right-description`]: this.descriptionPosition() === 'right',\n    [`${this.progressClassName}--${this.variant()}`]: !!this.variant(),\n    [`${this.progressClassName}--subscript-${this.subscriptVariant()}`]: !!this.subscriptVariant()\n  }));\n\n  protected subscriptIconName = computed(() => {\n    switch (this.subscriptVariant()) {\n      case 'success':\n        return 'check';\n      case 'error':\n        return 'warning';\n      default:\n        return null;\n    }\n  });\n\n  protected formattedValue = computed(() => {\n    const value = this.value() ?? 0;\n    const min = this.min() ?? 0;\n    const max = this.max() ?? 100;\n    return Math.min(Math.max(value, min), max);\n  });\n\n  protected formattedPercentage = computed(() => {\n    const min = this.min() ?? 0;\n    const max = this.max() ?? 100;\n    return Number(((this.formattedValue() - min) / (max - min)) * 100).toFixed(this.decimalPrecision());\n  });\n}\n","@let percentage = formattedPercentage();\n@if (label() || subscript()) {\n  <div class=\"nj-progress__header\">\n    @if (label()) {\n      <label class=\"nj-progress__label\">{{ label() }}</label>\n    }\n    @if (subscript()) {\n      <p class=\"nj-progress__subscript\">\n        @if (subscriptIconName(); as iconName) {\n          <nj-icon scale=\"sm\" [name]=\"iconName\" />\n        }\n        {{ subscript() }}\n      </p>\n    }\n  </div>\n}\n<div class=\"nj-progress__container\">\n  <div class=\"nj-progress__bar\">\n    <div class=\"nj-progress__indicator\" [style.width.%]=\"percentage\" @progressFill [@.disabled]=\"!isAnimated()\"></div>\n  </div>\n  @if (descriptionPosition() !== 'none') {\n    <p aria-hidden=\"true\" class=\"nj-progress__description\">{{ percentage }}%</p>\n  }\n</div>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { RadioProperties } from '@engie-group/fluid-types';\nimport { RadioSize } from './radio.model';\n\n@Component({\n  selector: 'nj-radio',\n  templateUrl: './radio.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: {\n    '[class]': 'classes'\n  }\n})\nexport class RadioComponent implements RadioProperties {\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   * @deprecated Use `scale` instead. This property will be removed in future versions.\n   */\n  @Input() size?: RadioSize;\n\n  /**\n   * Scale of the radio button\n   */\n  @Input() scale?: RadioProperties['scale'];\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    const scale = this.scale ?? this.size;\n\n    if (scale) {\n      classes.push(`${this.radioClassName}--${scale}`);\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  QueryList,\n  ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { RadioGroupProperties } from '@engie-group/fluid-types';\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  imports: [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: any;\n\n  /**\n   * @ignore\n   */\n  private _isDisabled: boolean = false;\n\n  /**\n   * @ignore\n   */\n  private _name?: string;\n\n  /**\n   * @ignore\n   */\n  private _required = false;\n\n  /**\n   * @ignore\n   */\n  private _selected: RadioComponent | null = null;\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(): RadioComponent | null {\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 | undefined {\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   * Scale of the radio group\n   */\n  @Input() scale?: RadioGroupProperties['scale'];\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?: QueryList<RadioComponent>;\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 && this.name !== undefined) {\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  getScaleClass(): string {\n    if (!this.scale) {\n      return '';\n    }\n    return `${this.radioGroupClassName}--${this.scale}`;\n  }\n}\n","<fieldset\n  class=\"nj-radio-group\"\n  [ngClass]=\"[getOrientationClass(), getScaleClass(), hasError ? 'nj-radio-group--has-error' : '']\"\n>\n  <legend class=\"nj-radio-group__legend\">\n    {{ legend }}\n    @if (errorMessage) {\n      <p class=\"nj-radio-group__error-message\">\n        <nj-icon name=\"warning\"></nj-icon>\n        {{ errorMessage }}\n      </p>\n    }\n  </legend>\n  <ng-content></ng-content>\n</fieldset>\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 { 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  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => SearchComponent),\n      multi: true\n    }\n  ],\n  imports: [CommonModule, IconComponent, IconButtonComponent, FormsModule],\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--${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\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  @if (altLabel) {\n    <label [for]=\"finalInputId\" class=\"nj-sr-only\" aria-hidden=\"true\">\n      {{ altLabel }}\n    </label>\n  }\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  />\n  @if (value?.length > 0) {\n    <button\n      nj-icon-button\n      icon=\"cancel\"\n      class=\"nj-search__clear-button\"\n      [altLabel]=\"altResetButtonLabel\"\n      [disabled]=\"isDisabled\"\n      (click)=\"onClearValue()\"\n    ></button>\n  }\n</div>\n@if (actionTemplate) {\n  <ng-container [ngTemplateOutlet]=\"actionTemplate\"></ng-container>\n}\n","import { ChangeDetectorRef, Directive, DoCheck, inject, Input } from '@angular/core';\nimport { ButtonComponent } from '../../button/button.component';\nimport { SearchComponent } from '../search.component';\n\n@Directive({\n  selector: '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  ngDoCheck() {\n    if (this.search.disabled && this.search.disabled !== this.button.disabled) {\n      this.button.disabled = this.search.disabled;\n      this.cdr.markForCheck();\n    }\n\n    if (!this.search.disabled && this.isDisabled !== this.button.disabled) {\n      this.button.disabled = this.isDisabled;\n      this.cdr.markForCheck();\n    }\n  }\n}\n","import { ChangeDetectionStrategy, Component, computed, input, model } from '@angular/core';\nimport { SegmentedControlProperties } from '@engie-group/fluid-types';\nimport { InputSignalProps } from 'src/utils/type.utils';\n\nconst rootClass = 'nj-segmented-control';\n\n@Component({\n  selector: 'nj-segmented-control',\n  templateUrl: './segmented-control.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: {\n    class: rootClass,\n    role: 'group',\n    '[class]': 'classes()'\n  }\n})\nexport class SegmentedControlComponent implements InputSignalProps<SegmentedControlProperties> {\n  value = model<SegmentedControlProperties['value']>();\n\n  scale = input<SegmentedControlProperties['scale']>();\n\n  protected classes = computed(() => ({\n    [`${rootClass}--${this.scale()}`]: !!this.scale()\n  }));\n}\n","<ng-content></ng-content>\n","import { CommonModule } from '@angular/common';\nimport {\n  AfterContentChecked,\n  ChangeDetectionStrategy,\n  Component,\n  computed,\n  contentChild,\n  ElementRef,\n  inject,\n  input,\n  signal\n} from '@angular/core';\nimport { SegmentedControlButtonProperties } from '@engie-group/fluid-types';\nimport { InputSignalProps } from 'src/utils/type.utils';\nimport { EngieTemplateDirective } from '../../directives/engie-template.directive';\nimport { IconComponent } from '../icon/icon.component';\nimport { SegmentedControlComponent } from '../segmented-control/segmented-control.component';\n\nconst rootClass = 'nj-segmented-control-btn';\n\n@Component({\n  selector: 'button[nj-segmented-control-button], a[nj-segmented-control-button]',\n  templateUrl: './segmented-control-button.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [IconComponent, CommonModule],\n  host: {\n    class: rootClass,\n    [`[class.${rootClass}--icon-only]`]: '(iconName() || customIcon()) && !hasTextContent()',\n    '[attr.aria-pressed]': 'isPressed()',\n    '(click)': 'handleClick()'\n  }\n})\nexport class SegmentedControlButtonComponent\n  implements InputSignalProps<SegmentedControlButtonProperties>, AfterContentChecked\n{\n  private el = inject(ElementRef);\n\n  private segmentedControl = inject(SegmentedControlComponent, { host: true });\n\n  private engieTemplate = contentChild(EngieTemplateDirective);\n\n  value = input.required<SegmentedControlButtonProperties['value']>();\n\n  iconName = input<SegmentedControlButtonProperties['iconName']>();\n\n  protected customIcon = computed(() => {\n    if (this.engieTemplate()?.selector === 'icon') {\n      return this.engieTemplate()!.templateRef;\n    }\n    return undefined;\n  });\n\n  protected hasTextContent = signal(false);\n\n  protected isPressed = computed(() => {\n    return this.segmentedControl.value() === this.value() ? true : undefined;\n  });\n\n  protected handleClick() {\n    this.segmentedControl.value.set(this.value());\n  }\n\n  ngAfterContentChecked(): void {\n    const hasTextContent = Array.from(this.el.nativeElement.childNodes).some((node: any) => {\n      return node.nodeType === Node.TEXT_NODE && node.textContent.trim() !== '';\n    });\n    this.hasTextContent.set(hasTextContent);\n  }\n}\n","@if (customIcon()) {\n  <span class=\"nj-segmented-control-btn__icon\">\n    <ng-container *ngTemplateOutlet=\"customIcon()\"></ng-container>\n  </span>\n} @else if (iconName()) {\n  <nj-icon class=\"nj-segmented-control-btn__icon\" [name]=\"iconName()\"></nj-icon>\n}\n\n<ng-content></ng-content>\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 { 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 { ListDeprecatedComponent } from '../list-deprecated/list-deprecated.component';\nimport { ListItemDeprecatedComponent } from '../list-item-deprecated/list-item-deprecated.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  imports: [ListDeprecatedComponent, FormItemComponent, FormFieldDirective, CommonModule]\n})\nexport class SelectComponent extends FormItemComponent 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 alphanumeric characters.\n\n    \\d : every digit\n    \\p{Letter} : every letter 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   * @ignore\n   */\n  private _onTouched = (): void => {};\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: string | null = '';\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  @Input() label?: 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(ListDeprecatedComponent) listEl?: ListDeprecatedComponent;\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(ListItemDeprecatedComponent, { descendants: true })\n  selectOptions?: QueryList<ListItemDeprecatedComponent>;\n\n  constructor(\n    private readonly element: ElementRef<HTMLElement>,\n    private readonly cdr: ChangeDetectorRef,\n    @Inject(DOCUMENT) private document: Document\n  ) {\n    super();\n  }\n\n  ngAfterViewInit() {\n    setTimeout(() => {\n      this.setInputsAndListenersOnOptions();\n\n      this.selectOptions?.changes.pipe(takeUntil(this.unsubscribe)).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  private 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      item.itemClick.pipe(takeUntil(unsubscribeCond$)).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 =\n      this.selectOptions?.toArray().findIndex((opt) => {\n        return opt.getValue() === this.selectedValue;\n      }) ?? -1;\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  protected getSubscriptId(): string {\n    return `${this.inputId}-subscript`;\n  }\n\n  protected getInstructionsId(): string {\n    return `${this.inputId}-instructions`;\n  }\n\n  protected 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?.toArray().findIndex((item) => item.getValue() === value) ?? -1;\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  protected 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 (\n      this.selectOptions?.toArray().findIndex((item) => this.document.activeElement === item.el.nativeElement) ?? -1\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  protected 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.selectOptions?.length && 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        if (value) {\n          this.writeValue(value);\n          this._onChange(value);\n        }\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((item) => item.getValue()?.[0].toLowerCase() === e.key.toLowerCase());\n\n      if (goToIndex !== undefined && goToIndex !== -1) {\n        this.focusedIndex = goToIndex;\n      }\n    }\n  }\n\n  protected 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  [scale]=\"scale\"\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    @if (selectedIndex >= 0 && customLabel && customLabel.templateRef) {\n      <div #customLabelEl class=\"nj-form-item__custom-label\" aria-hidden=\"true\" njFormField>\n        <ng-container\n          [ngTemplateOutlet]=\"customLabel.templateRef\"\n          [ngTemplateOutletContext]=\"customLabelContext\"\n        ></ng-container>\n      </div>\n    }\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-deprecated\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-deprecated>\n  </ng-container>\n</nj-form-item>\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-deprecated-content';\n\n  @HostBinding('class.nj-sidebar-deprecated-content--nopush')\n  @Input({ transform: booleanAttribute })\n  shouldBeCovered = false;\n}\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 { ListItemDeprecatedComponent } from '../../list-item-deprecated/list-item-deprecated.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(ListItemDeprecatedComponent);\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 { ListDeprecatedComponent } from '../list-deprecated/list-deprecated.component';\nimport { ListItemDeprecatedComponent } from '../list-item-deprecated/list-item-deprecated.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  imports: [\n    CommonModule,\n    ListDeprecatedComponent,\n    ListItemDeprecatedComponent,\n    SidebarFooterDirective,\n    SidebarItemDirective,\n    SidebarLogoDirective\n  ]\n})\nexport class SidebarComponent {\n  @HostBinding('class')\n  private staticClass = 'nj-sidebar-deprecated';\n\n  /**\n   * Whether the sidebar should be folded\n   */\n  @HostBinding('class.nj-sidebar-deprecated--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","@if (logo?.templateRef; as templateRef) {\n  <div class=\"nj-sidebar-deprecated__brand\">\n    <ng-container [ngTemplateOutlet]=\"templateRef\" [ngTemplateOutletContext]=\"{ isFolded }\"></ng-container>\n  </div>\n}\n<nav class=\"nj-sidebar-deprecated__navigation\">\n  <nj-list-deprecated [isDense]=\"true\" [hasBorder]=\"false\">\n    <ng-content></ng-content>\n  </nj-list-deprecated>\n</nav>\n@if (footerElements?.length) {\n  <nav class=\"nj-sidebar-deprecated__navigation nj-sidebar-deprecated__navigation--footer\">\n    <nj-list-deprecated [isDense]=\"true\" [hasBorder]=\"false\">\n      @for (footerElement of footerElements; track footerElement) {\n        <ng-container [ngTemplateOutlet]=\"footerElement.templateRef\"> </ng-container>\n      }\n    </nj-list-deprecated>\n  </nav>\n}\n@if (hasFoldItem) {\n  <nj-list-deprecated class=\"nj-sidebar-deprecated__collapse\" [isDense]=\"true\" [hasBorder]=\"false\">\n    <li\n      nj-list-item-deprecated\n      njSidebarItem\n      class=\"nj-sidebar-deprecated__fold-btn\"\n      type=\"button\"\n      iconName=\"chevron_left\"\n      (itemClick)=\"foldItemClicked.next($event)\"\n    >\n      {{ foldItemLabel }}\n    </li>\n  </nj-list-deprecated>\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  TemplateRef\n} from '@angular/core';\nimport { EngieTemplateDirective } from '../../directives/engie-template.directive';\nimport { IconButtonComponent } from '../icon-button/icon-button.component';\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  imports: [IconButtonComponent, CommonModule],\n  host: {\n    class: 'nj-sidepanel-header'\n  }\n})\nexport class SidepanelHeaderComponent implements AfterContentInit {\n  /**\n   * Title displayed in the header\n   */\n  @Input() title?: string;\n\n  /**\n   * Emit event when clicking the close icon\n   */\n  @Output() closeIconClicked = new EventEmitter<MouseEvent>();\n\n  @ContentChildren(EngieTemplateDirective) protected engieTemplates?: QueryList<EngieTemplateDirective>;\n\n  protected actionsTemplateRef?: TemplateRef<unknown>[];\n\n  protected get shouldDisplayHeaderActions() {\n    return this.closeIconClicked.observed || this.actionsTemplateRef?.length;\n  }\n\n  ngAfterContentInit(): void {\n    this.actionsTemplateRef =\n      this.engieTemplates?.reduce((agg, directive) => {\n        if (directive.selector === 'action') {\n          agg.push(directive.templateRef);\n        }\n        return agg;\n      }, [] as TemplateRef<unknown>[]) ?? [];\n  }\n}\n","@if (title) {\n  <span class=\"nj-sidepanel-header__title\">{{ title }}</span>\n} @else {\n  <div class=\"nj-sidepanel-header__custom-title\">\n    <ng-content></ng-content>\n  </div>\n}\n@if (shouldDisplayHeaderActions) {\n  <div class=\"nj-sidepanel-header__actions\">\n    @for (action of actionsTemplateRef; track action) {\n      <ng-container [ngTemplateOutlet]=\"action\"></ng-container>\n    }\n    @if (closeIconClicked.observed) {\n      <button nj-icon-button variant=\"tertiary\" icon=\"close\" (click)=\"closeIconClicked.emit($event)\"></button>\n    }\n  </div>\n}\n","import { CommonModule } from '@angular/common';\nimport {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  Component,\n  ContentChildren,\n  QueryList,\n  TemplateRef\n} from '@angular/core';\nimport { EngieTemplateDirective } from '../../directives/engie-template.directive';\n\n@Component({\n  selector: 'nj-sidepanel',\n  templateUrl: './sidepanel.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [CommonModule],\n  host: {\n    class: 'nj-sidepanel'\n  }\n})\nexport class SidepanelComponent implements AfterContentInit {\n  protected headerTemplateRef?: TemplateRef<unknown>;\n  protected footerTemplateRef?: TemplateRef<unknown>;\n\n  @ContentChildren(EngieTemplateDirective) protected templateDirectives?: QueryList<EngieTemplateDirective>;\n\n  ngAfterContentInit(): void {\n    this.templateDirectives?.forEach((directive) => {\n      if (directive.selector === 'header') {\n        this.headerTemplateRef = directive.templateRef;\n      }\n      if (directive.selector === 'footer') {\n        this.footerTemplateRef = directive.templateRef;\n      }\n    });\n  }\n}\n","@if (headerTemplateRef) {\n  <div class=\"nj-sidepanel__header\">\n    <ng-container [ngTemplateOutlet]=\"headerTemplateRef\"></ng-container>\n  </div>\n}\n<div class=\"nj-sidepanel__content\">\n  <ng-content></ng-content>\n</div>\n@if (footerTemplateRef) {\n  <div class=\"nj-sidepanel__footer\">\n    <ng-container [ngTemplateOutlet]=\"footerTemplateRef\"></ng-container>\n  </div>\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport type { SkeletonAreaProperties } from '@engie-group/fluid-types';\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  imports: [IconComponent],\n  host: {\n    '[class.nj-skeleton]': 'true',\n    '[class.nj-skeleton--area]': 'true',\n    '[attr.aria-hidden]': 'true',\n    '[style.height]': 'height',\n    '[style.width]': 'width'\n  }\n})\nexport class SkeletonAreaComponent implements SkeletonAreaProperties {\n  /**\n   * Area skeleton height\n   */\n  @Input() height?: SkeletonAreaProperties['height'];\n\n  /**\n   * Area skeleton width\n   */\n  @Input() width?: SkeletonAreaProperties['width'];\n\n  /**\n   * Area skeleton material icon\n   */\n  @Input() icon: SkeletonAreaProperties['icon'] = 'image';\n\n  /**\n   * Whether Area skeleton has custom icon\n   */\n  @Input() hasCustomIcon = false;\n}\n","@if (!hasCustomIcon) {\n  <nj-icon class=\"nj-skeleton__icon\" [name]=\"icon\" scale=\"xl\" variant=\"inherit\"></nj-icon>\n}\n@if (hasCustomIcon) {\n  <span class=\"nj-skeleton__icon\">\n    <ng-content></ng-content>\n  </span>\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport type { SkeletonCircleProperties } from '@engie-group/fluid-types';\n\n@Component({\n  selector: 'nj-skeleton-circle',\n  template: '',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: {\n    '[class]': 'classes',\n    '[attr.aria-hidden]': 'true',\n    '[style.height]': 'height',\n    '[style.width]': 'width'\n  }\n})\nexport class SkeletonCircleComponent implements SkeletonCircleProperties {\n  /**\n   * @ignore\n   */\n  private skeletonClassName = 'nj-skeleton';\n\n  /**\n   * Circle skeleton height\n   */\n  @Input() height?: SkeletonCircleProperties['height'];\n\n  /**\n   * Circle skeleton width\n   */\n  @Input() width?: SkeletonCircleProperties['width'];\n\n  /**\n   * Circle skeleton size (based on avatar sizes)\n   */\n  @Input() scale?: SkeletonCircleProperties['scale'];\n\n  get classes() {\n    const classes = [this.skeletonClassName, `${this.skeletonClassName}--circle`];\n\n    if (this.scale) {\n      classes.push(`${this.skeletonClassName}--${this.scale}`);\n    }\n\n    return classes;\n  }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { SkeletonContainerProperties } from '@engie-group/fluid-types';\n\n@Component({\n  selector: 'nj-skeleton-container',\n  templateUrl: './skeleton-container.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: {\n    '[class.nj-skeleton-container]': 'true'\n  }\n})\nexport class SkeletonContainerComponent implements SkeletonContainerProperties {\n  /**\n   * Skeleton label (read by screen readers).\n   * Defaults to \"Content is loading\"\n   */\n  @Input() screenReaderLabel?: SkeletonContainerProperties['screenReaderLabel'] = 'Content is loading';\n\n  constructor() {}\n}\n","<span class=\"nj-sr-only\">{{ screenReaderLabel }}</span>\n<ng-content></ng-content>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { SkeletonRectangleProperties } from '@engie-group/fluid-types';\n\n@Component({\n  selector: 'nj-skeleton-rectangle',\n  template: '',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: {\n    '[class]': 'classes',\n    '[attr.aria-hidden]': 'true',\n    '[style.height]': 'height',\n    '[style.width]': 'width'\n  }\n})\nexport class SkeletonRectangleComponent implements SkeletonRectangleProperties {\n  /**\n   * @ignore\n   */\n  private skeletonClassName = 'nj-skeleton';\n\n  /**\n   * Rectangle skeleton height\n   */\n  @Input() height?: SkeletonRectangleProperties['height'];\n\n  /**\n   * Rectangle skeleton width\n   */\n  @Input() width?: SkeletonRectangleProperties['width'];\n\n  /**\n   * Rectangle skeleton size (based on font sizes)\n   */\n  @Input() scale?: SkeletonRectangleProperties['scale'];\n\n  get classes() {\n    const classes = [this.skeletonClassName, `${this.skeletonClassName}--rectangle`];\n\n    if (this.scale) {\n      classes.push(`${this.skeletonClassName}--${this.scale}`);\n    }\n\n    return classes;\n  }\n}\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  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 | undefined {\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 | undefined): void {\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  @if (label) {\n    <label [attr.for]=\"sliderId\">{{ label }}</label>\n  }\n  <input\n    #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  />\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  imports: [CommonModule, BadgeComponent]\n})\nexport class TabComponent {\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   * @ignore\n   */\n  setIsActive(isActive: boolean) {\n    this.isActive = isActive;\n    this.cdr.markForCheck();\n  }\n}\n","<button\n  class=\"nj-tab__item\"\n  [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  @if (badgeOptions) {\n    <nj-badge\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  }\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  imports: [CommonModule]\n})\nexport class TabsComponent implements AfterViewInit, OnDestroy {\n  private activeTabIndex?: number;\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  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) ?? -1;\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 ? focusableTabs.length - 1 : 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.pipe(takeUntil(this.unsubscribe)).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)).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    @if (tabToRender) {\n      <div\n        class=\"nj-tab__content nj-tab__content--active\"\n        [attr.id]=\"tabToRender.tabContentId\"\n        [attr.aria-labelledby]=\"tabToRender.tabContentAriaLabelledBy\"\n        role=\"tabpanel\"\n        tabIndex=\"0\"\n      >\n        <ng-container *ngTemplateOutlet=\"tabToRender.contentTemplateRef\"></ng-container>\n      </div>\n    }\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  imports: [CommonModule]\n})\nexport class ToastContainerComponent {\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   * @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 { 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  imports: [IconComponent, IconButtonComponent, CommonModule]\n})\nexport class ToastComponent implements OnInit, OnDestroy {\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(\n    private sanitize: DomSanitizer,\n    private el: ElementRef,\n    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 | null {\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    @if (iconName) {\n      <nj-icon [name]=\"iconName\" class=\"nj-toast__icon\" variant=\"inherit\"></nj-icon>\n    }\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  @if (hasCloseIcon) {\n    <div class=\"nj-toast__action\">\n      <button\n        nj-icon-button\n        icon=\"close\"\n        altLabel=\"Close notification\"\n        scale=\"sm\"\n        [variant]=\"isInverse ? 'primary' : 'inverse'\"\n        [attr.aria-describedby]=\"toastId\"\n        (click)=\"close($event)\"\n      ></button>\n    </div>\n  }\n  @if (shouldDismiss) {\n    <div class=\"nj-toast__gauge\">\n      <div class=\"nj-toast__gauge-bar\" [style]=\"getGaugeAnimationStyles()\">\n        <p class=\"nj-sr-only\">{{ gaugeLabel }}</p>\n      </div>\n    </div>\n  }\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 appRef: ApplicationRef) {}\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);\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, this.appRef);\n    const containerPortal = new ComponentPortal(ToastContainerComponent);\n    const containerComponentRef = this.portalHost.attachComponentPortal(containerPortal);\n    this.setContainerInputs(containerComponentRef);\n    this.containerRef = containerComponentRef;\n    return containerComponentRef;\n  }\n}\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","import { CommonModule } from '@angular/common';\nimport {\n  AfterViewInit,\n  booleanAttribute,\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';\nimport { ToggleProperties, ToggleScale, ToggleVariant } from '@engie-group/fluid-types';\nimport { IconComponent } from '../icon/icon.component';\n\n@Component({\n  selector: 'nj-toggle',\n  templateUrl: './toggle.component.html',\n  styleUrls: ['./toggle.component.scss'],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => ToggleComponent),\n      multi: true\n    }\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  imports: [CommonModule, IconComponent],\n  host: {\n    '[class.nj-toggle]': 'true',\n    '[class]': 'classes'\n  }\n})\nexport class ToggleComponent implements ToggleProperties, ControlValueAccessor, AfterViewInit {\n  private toggleClassName = 'nj-toggle';\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   * Toggle scale\n   *\n   */\n  @Input() scale?: ToggleScale;\n\n  /**\n   * Toggle color variant\n   *\n   * @default `brand`\n   */\n  @Input() variant?: ToggleVariant;\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({ transform: booleanAttribute }) disabled?: 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   */\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   */\n  @Input() ariaLabelledby?: string;\n\n  @Input() handleIcon?: string;\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  @ViewChild('iconWrapper') iconWrapper?: ElementRef<HTMLElement>;\n\n  /**\n   * Whether toggle has an icon\n   */\n  protected hasIcon?: boolean;\n\n  constructor(private cdr: ChangeDetectorRef) {}\n\n  // Check if icon is provided on load\n  ngAfterViewInit() {\n    this.hasIcon = this.iconWrapper?.nativeElement && this.iconWrapper.nativeElement.innerHTML !== '';\n  }\n\n  private _onChange = (_: any): void => {};\n\n  private _onTouched = (): void => {};\n\n  protected _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  protected _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.disabled = isDisabled;\n    this.cdr.markForCheck();\n  }\n\n  protected get classes() {\n    const classes = [];\n    if (this.scale) {\n      classes.push(`${this.toggleClassName}--${this.scale}`);\n    }\n\n    if (this.variant) {\n      classes.push(`${this.toggleClassName}--${this.variant}`);\n    }\n\n    if (this.disabled) {\n      classes.push(`${this.toggleClassName}--disabled`);\n    }\n\n    if (this.isColorInherited) {\n      classes.push(`${this.toggleClassName}--inherit`);\n    }\n\n    return classes;\n  }\n}\n","<label [attr.for]=\"inputId\">\n  <input\n    type=\"checkbox\"\n    role=\"switch\"\n    #input\n    [required]=\"required\"\n    [checked]=\"isChecked\"\n    [disabled]=\"disabled\"\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\n  @if (handleIcon) {\n    <nj-icon [name]=\"handleIcon\" class=\"nj-toggle__handle-icon\"></nj-icon>\n  }\n\n  <div class=\"nj-toggle__icon-container\" #iconWrapper>\n    <ng-content select=\"[njToggleIcon]\"></ng-content>\n  </div>\n\n  @if (hasIcon) {\n    <span class=\"nj-sr-only\">\n      <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n    </span>\n  } @else {\n    <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n  }\n  <ng-template #content>\n    <ng-content></ng-content>\n  </ng-template>\n</label>\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';\nexport * from './directives/engie-template.directive';\nexport * from './directives/heading/heading.directive';\nexport * from './directives/text/text.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-picture.directive';\nexport * from './components/avatar/avatar.component';\n\n// Avatar List\nexport * from './components/avatar-list/avatar-list.component';\n\n// Badge\nexport * from './components/badge/badge.component';\n\n// Breadcrumb\nexport * from './components/breadcrumb-item/breadcrumb-item.component';\nexport * from './components/breadcrumb/breadcrumb.component';\n\n// Bullet\nexport * from './components/bullet/bullet.component';\n\n// Button\nexport * from './components/button/button.component';\nexport * from './components/button/directives/button-icon.directive';\n\n// Card\nexport * from './components/card/card-image.directive';\nexport * from './components/card/card.component';\n\n// Checkbox\nexport * from './components/checkbox/checkbox.component';\n\n// Custom Label\nexport * from './components/custom-label/custom-label.directive';\n\n// Display\nexport * from './directives/display/display.directive';\n\n// FormItem\nexport * from './components/form-field/form-field.directive';\nexport * from './components/form-item/form-item.component';\n\n// Icon\nexport * from './components/icon-base/icon-base.component';\n\nexport * from './components/icon/icon.component';\n\n// Icon Button\nexport * from './components/icon-button/directives/icon-button-icon.directive';\nexport * from './components/icon-button/icon-button.component';\n\n// Inline Message\nexport * from './components/inline-message/inline-message.component';\n\n// Link\nexport * from './components/link/link.component';\nexport * from './components/link/link.model';\n\n// List\nexport * from './components/list-deprecated/list-deprecated.component';\nexport * from './components/list-item-deprecated/list-item-deprecated.component';\nexport * from './components/list/components/list-item-content/list-item-content.component';\nexport * from './components/list/directives/list-item.directive';\nexport * from './components/list/directives/list-navigation-item.directive';\nexport * from './components/list/list.directive';\nexport * from './components/list/types/properties.type';\n\n// Menu\nexport * from './components/menu/menu.component';\n\n//Menu group\nexport * from './components/menu-group/menu-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-group/radio-group.component';\nexport * from './components/radio/radio.component';\n\n// Search\nexport * from './components/search/directives/search-button.directive';\nexport * from './components/search/search.component';\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-custom-label-context.model';\nexport * from './components/select/select.component';\n\n// Sidebar\nexport * from './components/sidebar/directives/sidebar-content.directive';\nexport * from './components/sidebar/directives/sidebar-footer.directive';\nexport * from './components/sidebar/sidebar.component';\n// Fixme: There is a circular dependency to handle between sidebar and sidebar-item.directive\nexport * from './components/sidebar/directives/sidebar-item.directive';\nexport * from './components/sidebar/directives/sidebar-logo.directive';\nexport * from './components/sidebar/interfaces/sidebar-logo.context';\n\n// Sidepanel\nexport * from './components/sidepanel-header/sidepanel-header.component';\nexport * from './components/sidepanel/sidepanel.component';\n\n// Skeleton\nexport * from './components/skeleton/skeleton-area.component';\nexport * from './components/skeleton/skeleton-circle.component';\nexport * from './components/skeleton/skeleton-container.component';\nexport * from './components/skeleton/skeleton-rectangle.component';\n\n// Slider\nexport * from './components/slider/slider.component';\n\n// Spinner\nexport * from './components/spinner/spinner.component';\n\n// Status indicator\nexport * from './components/status-indicator/status-indicator.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-container.component';\nexport * from './components/toast/toast.component';\nexport * from './components/toast/toast.service';\n\n// Toggle\nexport * from './components/toggle/toggle-icon.directive';\nexport * from './components/toggle/toggle.component';\n\n// Tooltip\nexport * from './components/tooltip/directives/tooltip.directive';\nexport * from './components/tooltip/tooltip.component';\nexport * from './components/tooltip/tooltip.model';\n\nexport * from '@engie-group/fluid-types';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["defaultParams","i1.ListItemDirective","i1","i2","rootClass"],"mappings":"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"}