@engie-group/fluid-design-system-angular
Version:
Fluid Design System Angular
1 lines • 419 kB
Source Map (JSON)
{"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';\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 { FormFieldDirective } from '../form-field/form-field.directive';\nimport { IconButtonComponent } from '../icon-button/icon-button.component';\nimport { IconComponent } from '../icon/icon.component';\nimport { FormItemSize } from './form-item.model';\n\n@Component({\n selector: 'nj-form-item',\n templateUrl: './form-item.component.html',\n styleUrls: ['./form-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [IconComponent, IconButtonComponent, CommonModule]\n})\nexport class FormItemComponent implements AfterContentInit {\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 @Input() size: FormItemSize = 'medium';\n\n /**\n * Whether the form-item label is floating\n */\n @Input() isFloatingLabel = true;\n\n /**\n * Whether form-item is disabled or not\n */\n @Input() isDisabled?: boolean;\n\n /**\n * Whether form-item is required or not\n */\n @Input() isRequired?: boolean;\n\n @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 return sizeModifier ? `${this.formItemClassName}--${sizeModifier}` : '';\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\" scale=\"inherit\" variant=\"inherit\"></nj-icon>\n } @else if (hasSuccess) {\n <nj-icon class=\"nj-form-item__subscript-icon\" name=\"check\" scale=\"inherit\" variant=\"inherit\"></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 { IconComponent } from '../icon/icon.component';\nimport { CheckboxSize } from './checkbox.model';\n\n@Component({\n selector: 'nj-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n providers: [\n {\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 {\n private readonly checkboxClassName = 'nj-checkbox';\n\n private _checked?: boolean;\n\n /**\n * Input id\n */\n @Input() inputId?: string;\n\n /**\n * Input name\n */\n @Input() name?: string;\n\n /**\n * Whether input is required or not\n */\n @Input() isRequired?: boolean;\n\n /**\n * Whether the checkbox is checked or not\n */\n @Input()\n set isChecked(value: boolean) {\n this._checked = value;\n this.cdr.markForCheck();\n }\n\n get isChecked(): boolean {\n return !!this._checked;\n }\n\n /**\n * Checkbox size\n */\n @Input() size?: CheckboxSize = 'md';\n\n /**\n * Input value\n */\n @Input() value?: string;\n\n /**\n * Whether the checkbox is disabled or not\n */\n @Input() isDisabled?: boolean;\n\n /**\n * Whether the checkbox is in error state\n */\n @Input() hasError?: boolean;\n\n /**\n * Whether the checkbox is in success state\n */\n @Input() hasSuccess?: boolean;\n\n /**\n * Message to display as hint below checkbox\n */\n @Input() subscriptMessage?: string;\n\n /**\n * @Deprecated\n * Message to display if checkbox is in error state\n */\n @Input() errorMessage?: string;\n\n /**\n * Aria label, for accessibility reasons\n */\n @Input() ariaLabel?: string;\n\n /**\n * Aria labelled by, for accessibility reasons\n */\n @Input() ariaLabelledby?: string;\n\n /**\n * Whether checkbox is only presentational and state handled by a parent, can be useful for lists of checkboxes.\n * When set to `true`, the checkbox won't have any interaction.\n */\n @Input() isPresentational? = false;\n\n /**\n * Whether the checkbox is in indeterminate state or not.\n */\n @Input({ transform: booleanAttribute }) indeterminate?: boolean;\n\n /**\n * Output that emits checked value on change only\n */\n @Output() valueChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n @ViewChild('input')\n private _inputElement?: ElementRef<HTMLInputElement>;\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n /**\n * @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 return this.size !== 'md' ? `${this.checkboxClassName}--${this.size}` : '';\n }\n\n protected get checkboxClasses() {\n return {\n 'nj-checkbox--error': this.hasError,\n 'nj-checkbox--success': this.hasSuccess,\n [this.checkboxSizeClass]: true\n };\n }\n}\n","<div class=\"nj-checkbox\" [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 input,\n output,\n ViewEncapsulation\n} from '@angular/core';\nimport { TooltipOptions } from '../tooltip/tooltip.model';\nimport { AvatarProperties } from '@engie-group/fluid-types';\nimport { AvatarComponent } from '../avatar/avatar.component';\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\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\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 (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 @Input() size?: 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 if (this.size) {\n classes.push(`${this.linkClass}--${this.size}`);\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\"> {{ 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 { ChangeDetectionStrategy, Component, Input, TemplateRef, ViewChild } from '@angular/core';\nimport { LinkComponent } from '../link/link.component';\nimport { LinkIconPosition } from '../link/link.model';\nimport { BreadcrumbItemProperties } from '@engie-group/fluid-types';\n\n@Component({\n selector: 'nj-breadcrumb-item',\n templateUrl: './breadcrumb-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [LinkComponent, CommonModule]\n})\nexport class BreadcrumbItemComponent implements BreadcrumbItemProperties {\n /**\n * Whether item is active\n */\n @Input() isActive = false;\n\n /**\n * Breadcrumb link href\n */\n @Input() href?: string;\n\n /**\n * Breadcrumb link target\n */\n @Input() target?: string;\n\n /**\n * Breadcrumb link icon\n */\n @Input() icon?: string;\n\n /**\n * Breadcrumb link icon position\n */\n @Input() iconPosition?: LinkIconPosition;\n\n /**\n * Accessible text alternative when the item has an icon and no children.\n *\n * @example\n * <nj-breadcrumb-item href=\"#\" icon=\"home\" label=\"Home page\"></nj-breadcrumb-item>\n */\n @Input() label?: string;\n\n /**\n * @ignore\n */\n @ViewChild('itemTemplate') itemTemplate?: TemplateRef<any>;\n\n constructor() {}\n}\n","<ng-template #itemTemplate>\n @if (!isActive) {\n <a nj-link variant=\"grayed\" size=\"sm\" [href]=\"href\" [target]=\"target\" [icon]=\"icon\" [iconPosition]=\"iconPosition\">\n <span class=\"nj-sr-only\">{{ label }}</span>\n <ng-container *ngTemplateOutlet=\"itemContent\"></ng-container>\n </a>\n }\n\n @if (isActive) {\n <ng-container *ngTemplateOutlet=\"itemContent\"></ng-container>\n }\n</ng-template>\n\n<ng-template #itemContent>\n <ng-content></ng-content>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport {\n AfterContentChecked,\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n Input,\n QueryList,\n ViewChild\n} from '@angular/core';\nimport { Utils } from '../../utils/utils.util';\nimport { BreadcrumbItemComponent } from '../breadcrumb-item/breadcrumb-item.component';\n\n@Component({\n selector: 'nj-breadcrumb',\n templateUrl: './breadcrumb.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule]\n})\nexport class BreadcrumbComponent implements AfterContentInit, AfterContentChecked {\n /**\n * Describes the navigation to screen reader users (who navigate the page using landmarks)\n *\n * @default \"Breadcrumbs\"\n */\n @Input() ariaLabel: string = 'Breadcrumbs';\n\n /**\n * Accessible text alternative for the \"show more\" button when the breadcrumb is minified.\n *\n * @default \"Show hidden items\"\n */\n @Input() showMoreLabel: string = 'Show hidden items';\n\n /**\n * @ignore\n */\n isMinified?: boolean;\n\n /**\n * @ignore\n */\n leftContent?: BreadcrumbItemComponent[];\n\n /**\n * @ignore\n */\n rightContent?: BreadcrumbItemComponent;\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n /**\n * @ignore\n */\n @ContentChildren(BreadcrumbItemComponent)\n breadcrumbItems?: QueryList<BreadcrumbItemComponent>;\n\n /**\n * @ignore\n */\n @ViewChild('olRef') olRef?: ElementRef<HTMLOListElement>;\n\n ngAfterContentInit() {\n this.isMinified = (this.breadcrumbItems?.toArray()?.length ?? 0) > 4;\n this.leftContent = this.getLeftContentToDisplay();\n this.rightContent = this.getRightContentToDisplay();\n }\n\n ngAfterContentChecked() {\n this.cdr.markForCheck();\n }\n\n /**\n * @ignore\n */\n seeAll() {\n this.isMinified = false;\n this.leftContent = this.getLeftContentToDisplay();\n this.rightContent = this.getRightContentToDisplay();\n this.cdr.markForCheck();\n\n // Focus first revealed item\n setTimeout(() => {\n (this.olRef?.nativeElement.childNodes[2] as HTMLLIElement)?.querySelector('a')?.focus();\n });\n }\n\n /**\n * @ignore\n */\n getLeftContentToDisplay(): BreadcrumbItemComponent[] {\n const breadcrumbItemsArray = this.breadcrumbItems?.toArray();\n if (Utils.isUndefinedOrNull(breadcrumbItemsArray)) {\n return [];\n }\n return this.isMinified ? breadcrumbItemsArray.splice(0, 1) : breadcrumbItemsArray;\n }\n\n /**\n * @ignore\n */\n getRightContentToDisplay(): BreadcrumbItemComponent | undefined {\n if (!this.isMinified) {\n return;\n }\n const breadcrumbItemsArray = this.breadcrumbItems?.toArray();\n const breadcrumbItemsLength = breadcrumbItemsArray?.length;\n if (!breadcrumbItemsArray || !breadcrumbItemsLength) {\n return;\n }\n return breadcrumbItemsArray[breadcrumbItemsLength - 1];\n }\n}\n","<nav role=\"navigation\" [attr.aria-label]=\"ariaLabel\">\n <ol class=\"nj-breadcrumb\" #olRef>\n @if (leftContent) {\n @for (item of leftContent; track item) {\n <li class=\"nj-breadcrumb__item\">\n <ng-container *ngTemplateOutlet=\"item?.itemTemplate\"></ng-container>\n </li>\n }\n }\n @if (isMinified) {\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 }\n @if (isMinified && rightContent) {\n <li class=\"nj-breadcrumb__item\">\n <ng-container *ngTemplateOutlet=\"rightContent.itemTemplate\"></ng-container>\n </li>\n }\n </ol>\n</nav>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\nimport { Utils } from '../../utils/utils.util';\nimport type { BulletProperties, BulletSize, BulletVariant } from '@engie-group/fluid-types';\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 @Input() size?: BulletSize;\n\n constructor() {}\n\n /**\n * @ignore\n */\n getBulletVariantClass(): string {\n if (!this.variant || !Utils.isUndefinedOrNull(this.customColor)) {\n return '';\n }\n return `${this.bulletClassName}--${this.variant}`;\n }\n\n /**\n * @ignore\n */\n getButtonSizeClass(): string {\n if (!this.size) {\n return '';\n }\n return `${this.bulletClassName}--${this.size}`;\n }\n}\n","<div\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 { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport type { StatusIndicatorProperties, StatusIndicatorScale, StatusIndicatorStatus } from '@engie-group/fluid-types';\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})\nexport class StatusIndicatorComponent implements AfterViewInit, StatusIndicatorProperties {\n private readonly statusIndicatorClass = 'nj-status-indicator';\n\n private readonly statusIndicatorClasses = {\n offline: `${this.statusIndicatorClass}--offline`,\n online: `${this.statusIndicatorClass}--online`,\n away: `${this.statusIndicatorClass}--away`,\n 'do-not-disturb': `${this.statusIndicatorClass}--do-not-disturb`,\n busy: `${this.statusIndicatorClass}--busy`,\n unknown: `${this.statusIndicatorClass}--unknown`,\n error: `${this.statusIndicatorClass}--error`,\n success: `${this.statusIndicatorClass}--success`,\n warning: `${this.statusIndicatorClass}--warning`,\n 'in-progress': `${this.statusIndicatorClass}--in-progress`,\n information: `${this.statusIndicatorClass}--information`,\n discovery: `${this.statusIndicatorClass}--discovery`,\n planet: `${this.statusIndicatorClass}--planet`,\n ai: `${this.statusIndicatorClass}--ai`\n };\n\n /**\n * Status indicator status\n */\n @Input() status?: StatusIndicatorStatus;\n\n /**\n * Status indicator scale\n *\n */\n @Input() scale?: StatusIndicatorScale;\n\n /**\n * Status indicator size\n *\n * @deprecated\n */\n @Input() size?: StatusIndicatorScale;\n\n @ViewChild('labelWrapper') protected labelWrapper?: ElementRef<HTMLElement>;\n\n /**\n * Whether status indicator has label\n */\n protected hasLabel?: boolean;\n\n ngAfterViewInit() {\n this.hasLabel = this.labelWrapper?.nativeElement && this.labelWrapper.nativeElement.innerHTML !== '';\n }\n\n protected get classes() {\n const classes = [];\n\n const statusClass = this.status ? this.statusIndicatorClasses[this.status] : undefined;\n if (statusClass) {\n classes.push(statusClass);\n }\n\n this.scale = this.scale || this.size;\n\n if (this.scale) {\n classes.push(`${this.statusIndicatorClass}--${this.scale}`);\n }\n\n return classes;\n }\n}\n","<div class=\"nj-status-indicator__svg\"></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 { 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 {\n @Input({ transform: booleanAttribute }) hasBorder = false;\n @Input() size?: Extract<TSizeVariants, 'sm' | 'md' | 'lg'>;\n\n protected get classes() {\n const classes = ['nj-list'];\n if (this.size) {\n classes.push(`nj-list--${this.size}`);\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 { fromEvent, race, Subject, takeUntil } from 'rxjs';\nimport { selectAnimations } from '../../shared/animations';\nimport { FormFieldDirective } from '../form-field/form-field.directive';\nimport { FormItemComponent } from '../form-item/form-item.component';\nimport { ListDeprecatedComponent } from '../list-deprecated/list-deprecated.component';\nimport { ListItemDeprecatedComponent } from '../list-item-deprecated/list-item-deprecated.component';\nimport { TagComponent } from '../tag/tag.component';\nimport { TagScale } from '@engie-group/fluid-types';\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 (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 switch (this.size) {\n case 'xlarge':\n return 'md';\n case 'small':\n return 'xs';\n default:\n return 'sm';\n }\n }\n\n /**\n * @ignore\n */\n get selectIndexAsArray(): number[] {\n return [...this.selectedIndexes];\n }\n\n private getOptionId(index: number): string {\n return `${this.inputId}_option-${index}`;\n }\n}\n","<nj-form-item\n [hasError]=\"hasError\"\n [hasSuccess]=\"hasSuccess\"\n [hasHint]=\"hasHint\"\n [isDisabled]=\"isDisabled\"\n [hasCustomIcon]=\"hasCustomIcon\"\n [isFloatingLabel]=\"isFloatingLabel\"\n [iconName]=\"iconName\"\n [size]=\"size\"\n [isSelect]=\"true\"\n [additionalClass]=\"getAdditionalClass()\"\n [inputId]=\"inputId\"\n (focusout)=\"handleFocusOut($event)\"\n>\n <input\n #input\n type=\"text\"\n readonly\n [value]=\"formattedInputValue\"\n [attr.id]=\"inputId\"\n [disabled]=\"isDisabled\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n njFormField\n />\n <ng-content njFormLabel select=\"[njFormLabel]\"></ng-content>\n <ng-content njFormSubscript select=\"[njFormSubscript]\"></ng-content>\n <ng-container njFormAdditionalContent>\n <p [id]=\"getInstructionsId()\" hidden>{{ listNavigationLabel }}</p>\n <button\n #button\n type=\"button\"\n class=\"nj-form-item__custom-list-button\"\n aria-haspopup=\"listbox\"\n [attr.aria-expanded]=\"isOpen\"\n role=\"combobox\"\n [attr.aria-label]=\"buttonLabel\"\n [attr.tabindex]=\"isOpen ? -1 : null\"\n [attr.aria-describedby]=\"getDescriptionId()\"\n (click)=\"toggleIsOpen()\"\n >\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 </ng-container>\n</nj-form-item>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { IconButtonComponent } from '../icon-button/icon-button.component';\nimport { IconComponent } from '../icon/icon.component';\n\n@Component({\n selector: 'nj-pagination',\n templateUrl: './pagination.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n 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 { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\nimport { ProgressAnimation } from './progress.animation';\n\n@Component({\n selector: 'nj-progress',\n templateUrl: './progress.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [ProgressAnimation.progressFill],\n encapsulation: ViewEncapsulation.None,\n imports: [CommonModule]\n})\nexport class ProgressComponent {\n /**\n * @ignore\n */\n private readonly progressClassName = 'nj-progress';\n\n /**\n * Label of the progressbar\n */\n @Input() label?: string;\n /**\n * Progress value\n */\n @Input() value = 0;\n\n /**\n * Whether progress description is shown on the right/bottom or hidden\n */\n @Input() descriptionPosition: 'right' | 'bottom' | 'none' = 'none';\n\n /**\n * Progress min\n */\n @Input() min = 0;\n\n /**\n * Progress max\n */\n @Input() max = 100;\n\n /**\n * Whether progress is animated at first render\n */\n @Input() isAnimated = true;\n\n /**\n * Whether progress has css transitions for progress width\n */\n @Input() hasTransition = false;\n\n /**\n * Decimal precision of the description text\n */\n @Input() decimalPrecision = 0;\n\n constructor() {}\n\n /**\n * @ignore\n */\n getTransitionClass(): string {\n return this.hasTransition ? `${this.progressClassName}--has-transition` : '';\n }\n\n /**\n * @ignore\n */\n getDescriptionPositionClass(): string {\n return this.descriptionPosition === 'right' ? `${this.progressClassName}--has-right-description` : '';\n }\n\n /**\n * @ignore\n */\n getFormattedValue(): number {\n if (this.value > this.max) {\n return this.max;\n } else if (this.value < this.min) {\n return this.min;\n } else {\n return this.value;\n }\n }\n\n /**\n * @ignore\n */\n getFormattedPercentage(): string {\n if (this.value < this.min) {\n return '0';\n } else if (this.value > this.max) {\n return '100';\n }\n return Number(((this.getFormattedValue() - this.min) / (this.max - this.min)) * 100).toFixed(this.decimalPrecision);\n }\n}\n","@if (getFormattedPercentage(); as percentage) {\n <div\n class=\"nj-progress\"\n role=\"progressbar\"\n [ngClass]=\"[getTransitionClass(), getDescriptionPositionClass()]\"\n [attr.aria-valuenow]=\"value\"\n [attr.aria-valuemin]=\"min\"\n [attr.aria-valuemax]=\"max\"\n [attr.aria-label]=\"label\"\n >\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 <div aria-hidden=\"true\" class=\"nj-progress__description\">{{ getFormattedPercentage() }}%</div>\n }\n </div>\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { RadioSize } from './radio.model';\n\n@Component({\n selector: 'nj-radio',\n templateUrl: './radio.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes'\n }\n})\nexport class RadioComponent {\n private readonly radioClassName = 'nj-radio';\n\n /**\n * Input id\n */\n @Input() inputId?: string;\n\n /**\n * Input name\n */\n @Input() name?: string;\n\n /**\n * Whether input is required or not\n */\n @Input() required?: boolean;\n\n /**\n * Whether the radio is checked or not\n */\n @Input() isChecked = false;\n\n /**\n * Input value\n */\n @Input() value?: string;\n\n /**\n * Whether the radio is disabled or not\n */\n @Input() isDisabled?: boolean;\n\n /**\n * Radio size\n */\n @Input() size?: RadioSize = 'md';\n\n /**\n * Text alternative for assistive technologies\n * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-label\n */\n @Input() ariaLabel?: string;\n\n /**\n * Text alternative for assistive technologies based on visible text\n * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-labelledby\n */\n @Input() ariaLabelledby?: string;\n\n /**\n * Output that emits checked value on change only\n */\n @Output() valueChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n /**\n * @ignore\n */\n onInputChange(event: Event) {\n event.stopPropagation();\n this.isChecked = !this.isChecked;\n this.valueChange.emit(this.isChecked);\n }\n\n /**\n * @ignore\n */\n _markForCheck() {\n this.cdr.markForCheck();\n }\n\n protected get classes() {\n const classes = [this.radioClassName];\n\n if (this.size && this.size !== 'md') {\n classes.push(`${this.radioClassName}--${this.size}`);\n }\n\n return classes;\n }\n}\n","<label [attr.for]=\"inputId\">\n <input\n type=\"radio\"\n [value]=\"value\"\n [required]=\"required\"\n [checked]=\"isChecked\"\n [disabled]=\"isDisabled\"\n [attr.id]=\"inputId\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n (change)=\"onInputChange($event)\"\n />\n <ng-content></ng-content>\n</label>\n","import { CommonModule } from '@angular/common';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n Output,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subject, takeUntil } from 'rxjs';\nimport { Utils } from '../../utils/utils.util';\nimport { IconComponent } from '../icon/icon.component';\nimport { RadioComponent } from '../radio/radio.component';\nimport { RadioGroupOrientation } from './radio-group.model';\n\n@Component({\n selector: 'nj-radio-group',\n templateUrl: './radio-group.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioGroupComponent),\n multi: true\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n 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 * 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","<fieldset class=\"nj-radio-group\" [ngClass]=\"[getOrientationClass(), hasError ? 'nj-radio-group--has-error' : '']\">\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 [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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"}