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