@lucca-front/ng 18.3.1 → 18.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/core-select/input/select-input.component.d.ts +1 -1
  2. package/esm2022/callout/callout-disclosure/callout-disclosure.component.mjs +3 -3
  3. package/esm2022/core-select/input/select-input.component.mjs +8 -6
  4. package/esm2022/core-select/user/users.directive.mjs +6 -3
  5. package/esm2022/date2/date-input/date-input.component.mjs +24 -5
  6. package/esm2022/form-field/form-field.component.mjs +10 -9
  7. package/esm2022/forms/checkbox-input/checkbox-input.component.mjs +3 -3
  8. package/esm2022/forms/form-field-id.directive.mjs +4 -4
  9. package/esm2022/multi-select/displayer/displayer-input.directive.mjs +5 -5
  10. package/esm2022/multi-select/input/select-all/with-select-all.directive.mjs +9 -13
  11. package/esm2022/multi-select/input/select-input.component.mjs +8 -4
  12. package/esm2022/skeleton/skeleton-field/skeleton-field.component.mjs +2 -2
  13. package/esm2022/tooltip/panel/tooltip-panel.component.mjs +3 -3
  14. package/esm2022/tooltip/trigger/ellipsis.ruler.mjs +40 -18
  15. package/esm2022/tooltip/trigger/tooltip-trigger.directive.mjs +38 -37
  16. package/esm2022/user/tile/user-tile.component.mjs +2 -2
  17. package/fesm2022/lucca-front-ng-callout.mjs +2 -2
  18. package/fesm2022/lucca-front-ng-callout.mjs.map +1 -1
  19. package/fesm2022/lucca-front-ng-core-select-user.mjs +5 -2
  20. package/fesm2022/lucca-front-ng-core-select-user.mjs.map +1 -1
  21. package/fesm2022/lucca-front-ng-core-select.mjs +5 -3
  22. package/fesm2022/lucca-front-ng-core-select.mjs.map +1 -1
  23. package/fesm2022/lucca-front-ng-date2.mjs +23 -4
  24. package/fesm2022/lucca-front-ng-date2.mjs.map +1 -1
  25. package/fesm2022/lucca-front-ng-form-field.mjs +9 -8
  26. package/fesm2022/lucca-front-ng-form-field.mjs.map +1 -1
  27. package/fesm2022/lucca-front-ng-forms.mjs +5 -5
  28. package/fesm2022/lucca-front-ng-forms.mjs.map +1 -1
  29. package/fesm2022/lucca-front-ng-multi-select.mjs +18 -19
  30. package/fesm2022/lucca-front-ng-multi-select.mjs.map +1 -1
  31. package/fesm2022/lucca-front-ng-skeleton.mjs +2 -2
  32. package/fesm2022/lucca-front-ng-skeleton.mjs.map +1 -1
  33. package/fesm2022/lucca-front-ng-tooltip.mjs +79 -56
  34. package/fesm2022/lucca-front-ng-tooltip.mjs.map +1 -1
  35. package/fesm2022/lucca-front-ng-user.mjs +2 -2
  36. package/fesm2022/lucca-front-ng-user.mjs.map +1 -1
  37. package/form-field/form-field.component.d.ts +1 -1
  38. package/multi-select/displayer/displayer-input.directive.d.ts +2 -2
  39. package/multi-select/input/select-input.component.d.ts +3 -1
  40. package/package.json +26 -26
  41. package/tooltip/panel/tooltip-panel.component.d.ts +2 -2
  42. package/tooltip/trigger/ellipsis.ruler.d.ts +9 -2
  43. package/tooltip/trigger/tooltip-trigger.directive.d.ts +4 -6
@@ -1 +1 @@
1
- {"version":3,"file":"lucca-front-ng-core-select.mjs","sources":["../../../packages/ng/core-select/displayer/displayer.directive.ts","../../../packages/ng/core-select/option/option.token.ts","../../../packages/ng/core-select/option/default-option.component.ts","../../../packages/ng/core-select/option/disabled.directive.ts","../../../packages/ng/core-select/option/group.directive.ts","../../../packages/ng/core-select/option/group.pipe.ts","../../../packages/ng/core-select/option/option-outlet.directive.ts","../../../packages/ng/core-select/select.model.ts","../../../packages/ng/core-select/option/option.component.ts","../../../packages/ng/core-select/option/option.component.html","../../../packages/ng/core-select/option/option.directive.ts","../../../packages/ng/core-select/translations.ts","../../../packages/ng/core-select/select.translate.ts","../../../packages/ng/core-select/input/select-input.component.ts","../../../packages/ng/core-select/input/select-input.models.ts","../../../packages/ng/core-select/input/total-count.directive.ts","../../../packages/ng/core-select/panel/key-manager.ts","../../../packages/ng/core-select/panel/panel-header-template.directive.ts","../../../packages/ng/core-select/panel/panel.models.ts","../../../packages/ng/core-select/panel/panel.utils.ts","../../../packages/ng/core-select/select.utils.ts","../../../packages/ng/core-select/lucca-front-ng-core-select.ts"],"sourcesContent":["import { Directive, Input, TemplateRef } from '@angular/core';\nimport { ALuSelectInputComponent } from '../input';\nimport { LuOptionContext } from '../select.model';\n\n@Directive({\n\tselector: '[luDisplayer]',\n\tstandalone: true,\n})\nexport class LuDisplayerDirective<TOption, TValue> {\n\t@Input('luDisplayerSelect') set select(select: ALuSelectInputComponent<TOption, TValue>) {\n\t\tselect.valueTpl.set(this.templateRef);\n\t}\n\n\tpublic constructor(private templateRef: TemplateRef<LuOptionContext<TOption>>) {}\n\n\tpublic static ngTemplateContextGuard<TOption, TValue>(_dir: LuDisplayerDirective<TOption, TValue>, ctx: unknown): ctx is LuOptionContext<TOption> {\n\t\treturn true;\n\t}\n}\n","import { InjectionToken, Provider } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\nexport interface ILuOptionContext<T> {\n\tisDisabled$: BehaviorSubject<boolean>;\n\toption$: BehaviorSubject<T | undefined>;\n\tdestroy(): void;\n}\n\nexport const LU_OPTION_CONTEXT = new InjectionToken<ILuOptionContext<unknown>>('LuOptionContext');\n\nfunction optionContextFactory<T>(): ILuOptionContext<T> {\n\tconst isDisabled$ = new BehaviorSubject(false);\n\tconst option$ = new BehaviorSubject<T | undefined>(undefined);\n\treturn {\n\t\tisDisabled$,\n\t\toption$,\n\t\tdestroy(): void {\n\t\t\tisDisabled$.complete();\n\t\t\toption$.complete();\n\t\t},\n\t};\n}\n\nexport function provideOptionContext(): Provider {\n\treturn {\n\t\tprovide: LU_OPTION_CONTEXT,\n\t\tuseFactory: optionContextFactory,\n\t};\n}\n","import { AsyncPipe, NgIf } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { ILuOptionContext, LU_OPTION_CONTEXT } from './option.token';\n\n@Component({\n\tselector: 'lu-simple-select-default-option',\n\tstandalone: true,\n\timports: [AsyncPipe, NgIf],\n\ttemplate: `<ng-container *ngIf=\"context.option$ | async as option\">{{ option?.name ?? option }}</ng-container>`,\n\thost: { class: 'u-ellipsis' },\n})\nexport class LuSimpleSelectDefaultOptionComponent {\n\tpublic context = inject<ILuOptionContext<{ name?: string }>>(LU_OPTION_CONTEXT);\n}\n","import { Directive, inject, Input } from '@angular/core';\nimport { LU_OPTION_CONTEXT } from './option.token';\n\n@Directive({\n\tselector: '[luDisabledOption]',\n\tstandalone: true,\n})\nexport class LuDisabledOptionDirective {\n\tprivate context = inject(LU_OPTION_CONTEXT);\n\n\t@Input('luDisabledOption') public set isDisabled(disabled: boolean | null) {\n\t\tif (disabled !== null) {\n\t\t\tthis.context.isDisabled$.next(disabled);\n\t\t}\n\t}\n}\n","import { Directive, inject, Input, OnInit, TemplateRef } from '@angular/core';\nimport { PortalContent } from '@lucca-front/ng/core';\nimport type { ALuSelectInputComponent } from '../input';\nimport type { LuOptionGroupByContext } from '../select.model';\n\nexport interface LuOptionGrouping<TOption, TGroup> {\n\tselector: (option: TOption) => TGroup;\n\tcontent: PortalContent<LuOptionGroupByContext<TOption, TGroup>>;\n}\n\n@Directive({\n\tselector: '[luOptionGroup]',\n\tstandalone: true,\n})\nexport class LuOptionGroupDirective<TOption, TValue, TGroup> implements LuOptionGrouping<TOption, TGroup>, OnInit {\n\t@Input('luOptionGroupSelect') select: ALuSelectInputComponent<TOption, TValue>;\n\n\t@Input('luOptionGroupBy') selector: (option: TOption) => TGroup;\n\n\treadonly content = inject<TemplateRef<LuOptionGroupByContext<TOption, TGroup>>>(TemplateRef);\n\n\tpublic static ngTemplateContextGuard<TOption, TValue, TGroup>(_dir: LuOptionGroupDirective<TOption, TValue, TGroup>, ctx: unknown): ctx is LuOptionGroupByContext<TOption, TGroup> {\n\t\treturn true;\n\t}\n\n\tpublic ngOnInit(): void {\n\t\tthis.select.grouping = this;\n\t}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { LuOptionGroup } from '../select.model';\n\n/**\n * Generate groups with a O(n) complexity. Note that the options must be sorted by group.\n */\nexport function generateGroups<T, TGroup>(options: T[], selector: (option: T) => TGroup): LuOptionGroup<T, TGroup>[] {\n\tif (!options?.length) {\n\t\treturn [];\n\t}\n\n\tconst groups: Array<LuOptionGroup<T, TGroup>> = [];\n\tlet group: LuOptionGroup<T, TGroup>;\n\n\tfor (const option of options) {\n\t\tconst groupKey = selector(option);\n\t\tif (!group || group.key !== groupKey) {\n\t\t\tif (group) {\n\t\t\t\tgroups.push(group);\n\t\t\t}\n\t\t\tgroup = { key: groupKey, options: [option] };\n\t\t} else {\n\t\t\tgroup.options.push(option);\n\t\t}\n\t}\n\n\tif (group) {\n\t\tgroups.push(group);\n\t}\n\n\treturn groups;\n}\n\n@Pipe({\n\tname: 'luOptionGroup',\n\tstandalone: true,\n})\nexport class LuOptionGroupPipe<T, TGroup> implements PipeTransform {\n\tpublic transform(options: T[], selector: (option: T) => TGroup): LuOptionGroup<T, TGroup>[];\n\tpublic transform(options: T, selector: (option: T) => TGroup): LuOptionGroup<T, TGroup>;\n\tpublic transform(options: T[] | T, selector: (option: T) => TGroup): LuOptionGroup<T, TGroup>[] | LuOptionGroup<T, TGroup> {\n\t\treturn Array.isArray(options) ? generateGroups(options, selector) : generateGroups([options], selector)[0];\n\t}\n}\n","import { ComponentRef, Directive, EmbeddedViewRef, inject, Injector, Input, OnChanges, OnDestroy, SimpleChanges, TemplateRef, Type, ViewContainerRef } from '@angular/core';\nimport { LuOptionContext } from '../select.model';\nimport { LU_OPTION_CONTEXT, provideOptionContext } from './option.token';\n\n@Directive({\n\tselector: '[luOptionOutlet]',\n\tstandalone: true,\n\tproviders: [provideOptionContext()],\n})\nexport class LuOptionOutletDirective<T> implements OnChanges, OnDestroy {\n\t@Input() luOptionOutlet?: Type<unknown> | TemplateRef<LuOptionContext<T>>;\n\t@Input() luOptionOutletValue: T | undefined;\n\t@Input() luOptionShowNull = false;\n\n\tprivate viewContainerRef = inject(ViewContainerRef);\n\tprivate injector = inject(Injector);\n\tprivate embeddedViewRef?: EmbeddedViewRef<LuOptionContext<T>>;\n\tprivate componentRef?: ComponentRef<unknown>;\n\tprivate optionContext = inject(LU_OPTION_CONTEXT);\n\n\tngOnChanges(changes: SimpleChanges): void {\n\t\tif (changes['luOptionOutlet'] || !this.luOptionOutletValue) {\n\t\t\tthis.clearContainer();\n\t\t}\n\n\t\tconst hasRef = this.embeddedViewRef || this.componentRef;\n\n\t\tif (changes['luOptionOutlet'] || (changes['luOptionOutletValue'].currentValue !== null && changes['luOptionOutletValue'].currentValue !== undefined && !hasRef)) {\n\t\t\tconst newValue = changes['luOptionOutletValue'].currentValue as T | undefined;\n\t\t\tif (newValue !== null && newValue !== undefined) {\n\t\t\t\tthis.createComponent();\n\t\t\t}\n\t\t} else if (changes['luOptionOutletValue']) {\n\t\t\tthis.updateRefValue();\n\t\t}\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.optionContext.destroy();\n\t}\n\n\tprivate clearContainer(): void {\n\t\tthis.viewContainerRef.clear();\n\t\tthis.embeddedViewRef?.destroy();\n\t\tthis.componentRef?.destroy();\n\t\tthis.embeddedViewRef = undefined;\n\t\tthis.componentRef = undefined;\n\t}\n\n\tprivate createComponent(): void {\n\t\tif (!this.luOptionOutlet) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.luOptionOutlet instanceof TemplateRef) {\n\t\t\tthis.embeddedViewRef = this.viewContainerRef.createEmbeddedView(this.luOptionOutlet, { $implicit: this.luOptionOutletValue }, { injector: this.injector });\n\t\t} else {\n\t\t\tthis.optionContext.option$.next(this.luOptionOutletValue);\n\t\t\tthis.componentRef = this.viewContainerRef.createComponent(this.luOptionOutlet, { injector: this.injector });\n\t\t}\n\t}\n\n\tprivate updateRefValue(): void {\n\t\tif (this.embeddedViewRef) {\n\t\t\tthis.embeddedViewRef.context.$implicit = this.luOptionOutletValue;\n\t\t} else if (this.componentRef) {\n\t\t\tthis.optionContext.option$.next(this.luOptionOutletValue);\n\t\t}\n\t}\n}\n","import { InjectionToken } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nexport interface LuOptionContext<T> {\n\t$implicit: T;\n}\n\nexport interface LuOptionGroupByContext<T, TGroup> {\n\t$implicit: LuOptionGroup<T, TGroup>;\n}\n\nexport interface LuOptionGroup<T, TGroup> {\n\tkey: TGroup;\n\toptions: T[];\n}\n\nexport type LuOptionComparer<T> = (a: T, b: T) => boolean;\n\nexport type CoreSelectAddOptionStrategy = 'never' | 'always' | 'if-empty-clue' | 'if-not-empty-clue';\n\nexport const SELECT_ID = new InjectionToken<number>('LuSelectPanelData');\nexport const SELECT_LABEL = new InjectionToken<HTMLLabelElement | undefined>('LuSelectLabel');\nexport const SELECT_LABEL_ID = new InjectionToken<string>('LuSelectLabelId');\n\nexport interface CoreSelectApiTotalCountProvider {\n\ttotalCount$: Observable<number>;\n}\n\nexport const CORE_SELECT_API_TOTAL_COUNT_PROVIDER = new InjectionToken<CoreSelectApiTotalCountProvider>('CoreSelectApiTotalCountProvider');\n","import { Highlightable } from '@angular/cdk/a11y';\nimport { AsyncPipe, NgIf } from '@angular/common';\nimport { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostBinding, Input, OnDestroy, TemplateRef, Type, ViewChild, inject } from '@angular/core';\nimport { PortalDirective } from '@lucca-front/ng/core';\nimport { BehaviorSubject, Subscription, asyncScheduler, observeOn } from 'rxjs';\nimport { LuOptionContext, SELECT_ID } from '../select.model';\nimport { LuOptionGrouping } from './group.directive';\nimport { LuOptionGroupPipe } from './group.pipe';\nimport { LuOptionOutletDirective } from './option-outlet.directive';\nimport { ILuOptionContext, LU_OPTION_CONTEXT } from './option.token';\n\nexport const MAGIC_OPTION_SCROLL_DELAY = 15;\n\n@Component({\n\tselector: 'lu-select-option',\n\ttemplateUrl: './option.component.html',\n\tstyleUrls: ['./option.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [AsyncPipe, LuOptionOutletDirective, NgIf, PortalDirective, LuOptionGroupPipe],\n})\nexport class LuOptionComponent<T> implements Highlightable, AfterViewInit, OnDestroy {\n\t@HostBinding('class.optionItem')\n\tpublic hasOptionItemClass = true;\n\n\t@Input()\n\tpublic optionTpl: TemplateRef<LuOptionContext<T>> | Type<unknown> | undefined;\n\n\t@Input()\n\t@HostBinding('attr.aria-selected')\n\tisSelected = false;\n\n\t@Input() option?: T;\n\t@Input() grouping?: LuOptionGrouping<T, unknown>;\n\n\t@Input()\n\tpublic optionIndex = 0;\n\n\t@Input()\n\tscrollIntoViewOptions: ScrollIntoViewOptions = {};\n\n\tisHighlighted$ = new BehaviorSubject(false);\n\n\t/**\n\t * Whether option is disabled. Used by ListKeyManager.\n\t */\n\tdisabled = false;\n\n\t@ViewChild(LuOptionOutletDirective, { read: LU_OPTION_CONTEXT, static: true })\n\tprivate optionContext?: ILuOptionContext<T>;\n\n\tprivate cdr = inject(ChangeDetectorRef);\n\tprivate subscription?: Subscription;\n\n\t@HostBinding('attr.role')\n\tpublic role = 'option';\n\n\t@HostBinding('attr.id')\n\tpublic get id(): string {\n\t\treturn `lu-select-${this.selectId}-option-${this.optionIndex}`;\n\t}\n\n\tprotected elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\tprotected selectId = inject(SELECT_ID);\n\n\tngOnDestroy(): void {\n\t\tthis.subscription?.unsubscribe();\n\t}\n\n\tngAfterViewInit(): void {\n\t\tthis.subscription = this.optionContext.isDisabled$.pipe(observeOn(asyncScheduler)).subscribe((isDisabled) => {\n\t\t\tthis.disabled = isDisabled;\n\t\t\tthis.cdr.markForCheck();\n\t\t});\n\t}\n\n\tsetActiveStyles(): void {\n\t\tthis.isHighlighted$.next(true);\n\t\t// Somehow, adding this small delay works, even tho 0ms delay doesn't, I think there's\n\t\t// a race condition somewhere that I can't find so this will just fix it for now.\n\t\tsetTimeout(() => {\n\t\t\tthis.elementRef.nativeElement.scrollIntoView(this.scrollIntoViewOptions);\n\t\t}, MAGIC_OPTION_SCROLL_DELAY);\n\t}\n\n\tsetInactiveStyles(): void {\n\t\tthis.isHighlighted$.next(false);\n\t}\n\n\tselectOption($event: Event): void {\n\t\tif (this.disabled) {\n\t\t\t$event.stopPropagation();\n\t\t}\n\t}\n}\n","<div\n\tclass=\"optionItem-value\"\n\t[class.is-selected]=\"isSelected\"\n\t[class.is-highlighted]=\"isHighlighted$ | async\"\n\t[class.is-disabled]=\"disabled\"\n\t(click)=\"selectOption($event)\"\n>\n\t<ng-container *luOptionOutlet=\"optionTpl; value: option\" />\n\n\t<div *ngIf=\"grouping\" class=\"optionItem-value-group\">\n\t\t<ng-container *luPortal=\"grouping.content; context: { $implicit: option | luOptionGroup:grouping.selector }\" />\n\t</div>\n</div>\n","import { Directive, Input, TemplateRef } from '@angular/core';\nimport type { ALuSelectInputComponent } from '../input';\nimport type { LuOptionContext } from '../select.model';\n\n@Directive({\n\tselector: '[luOption]',\n\tstandalone: true,\n})\nexport class LuOptionDirective<TOption, TValue> {\n\t@Input('luOptionSelect') set select(select: ALuSelectInputComponent<TOption, TValue>) {\n\t\tselect.optionTpl.set(this.templateRef);\n\t}\n\n\tpublic constructor(private templateRef: TemplateRef<LuOptionContext<TOption>>) {}\n\n\tpublic static ngTemplateContextGuard<TOption, TValue>(_dir: LuOptionDirective<TOption, TValue>, ctx: unknown): ctx is LuOptionContext<TOption> {\n\t\treturn true;\n\t}\n}\n","export const Translations = {\n\ten: {\n\t\taddOption: 'Add option',\n\t},\n\tde: {\n\t\taddOption: 'Option hinzufügen',\n\t},\n\tfr: {\n\t\taddOption: 'Ajouter une option',\n\t},\n\tit: {\n\t\taddOption: 'Aggiungere un’opzione',\n\t},\n\tnl: {\n\t\taddOption: 'Een optie toevoegen',\n\t},\n\t'nl-BE': {\n\t\taddOption: 'Een optie toevoegen',\n\t},\n\tes: {\n\t\taddOption: 'Añadir una opción',\n\t},\n\tpt: {\n\t\taddOption: 'Adicionar opção',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_CORE_SELECT_TRANSLATIONS = new InjectionToken('LuCoreSelectTranslations', {\n\tfactory: () => luCoreSelectTranslations,\n});\n\nexport interface LuCoreSelectLabel {\n\taddOption: string;\n}\n\nexport const luCoreSelectTranslations: LuTranslation<LuCoreSelectLabel> = Translations;\n","/* eslint-disable @angular-eslint/no-output-on-prefix */\nimport { OverlayConfig, OverlayContainer } from '@angular/cdk/overlay';\nimport {\n\tChangeDetectorRef,\n\tDirective,\n\tElementRef,\n\tEventEmitter,\n\tHostBinding,\n\tHostListener,\n\tInput,\n\tOnDestroy,\n\tOnInit,\n\tOutput,\n\tTemplateRef,\n\tType,\n\tViewChild,\n\tbooleanAttribute,\n\tcomputed,\n\tinject,\n\tmodel,\n} from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { PortalContent, getIntl } from '@lucca-front/ng/core';\nimport { BehaviorSubject, Observable, ReplaySubject, Subject, defer, map, of, startWith, switchMap, take } from 'rxjs';\nimport { LuOptionGrouping, LuSimpleSelectDefaultOptionComponent } from '../option';\nimport { LuSelectPanelRef } from '../panel';\nimport { CoreSelectAddOptionStrategy, LuOptionComparer, LuOptionContext, SELECT_LABEL, SELECT_LABEL_ID } from '../select.model';\nimport { LU_CORE_SELECT_TRANSLATIONS } from '../select.translate';\n\n@Directive()\nexport abstract class ALuSelectInputComponent<TOption, TValue> implements OnDestroy, OnInit, ControlValueAccessor {\n\tprotected changeDetectorRef = inject(ChangeDetectorRef);\n\tprotected overlayContainerRef: HTMLElement = inject(OverlayContainer).getContainerElement();\n\n\tprotected labelElement: HTMLElement | undefined = inject(SELECT_LABEL);\n\tprotected labelId: string = inject(SELECT_LABEL_ID);\n\n\tprotected coreIntl = getIntl(LU_CORE_SELECT_TRANSLATIONS);\n\n\t@ViewChild('inputElement')\n\tprivate inputElementRef: ElementRef<HTMLInputElement>;\n\n\tpublic placeholder$ = new BehaviorSubject('');\n\n\tpublic disabled$ = new BehaviorSubject(false);\n\n\t@Input()\n\tset placeholder(value: string) {\n\t\tthis.placeholder$.next(value);\n\t}\n\n\t@Input({ transform: booleanAttribute })\n\t@HostBinding('class.is-clearable')\n\tclearable = false;\n\n\tget searchable(): boolean {\n\t\treturn this.clueChange.observed;\n\t}\n\n\t@Input()\n\taddOptionLabel: PortalContent = this.coreIntl.addOption;\n\n\t@Input()\n\tset addOptionStrategy(strategy: CoreSelectAddOptionStrategy) {\n\t\tthis.addOptionStrategy$.next(strategy);\n\t}\n\n\t@HostBinding('class.is-selected')\n\tprotected get isSelectedClass(): boolean {\n\t\treturn this.hasValue();\n\t}\n\n\t@HostBinding('class.is-searchFilled')\n\tprotected get isSearchFilledClass(): boolean {\n\t\treturn this.clue?.length > 0;\n\t}\n\n\tprotected abstract hasValue(): boolean;\n\n\tpublic get isPanelOpen(): boolean {\n\t\treturn this.isPanelOpen$.value;\n\t}\n\n\tpublic isPanelOpen$ = new BehaviorSubject(false);\n\n\tpublic activeDescendant$ = new BehaviorSubject('');\n\n\tget ariaControls(): string {\n\t\treturn this.overlayContainerRef.id;\n\t}\n\n\t@Input()\n\toverlayConfig?: OverlayConfig = {\n\t\thasBackdrop: true,\n\t\tbackdropClass: 'cdk-overlay-transparent-backdrop',\n\t};\n\n\t@Input() set loading(value: boolean) {\n\t\tif (value !== this.loading) {\n\t\t\tthis.loading$.next(value);\n\t\t}\n\t}\n\n\t@Input() set options(options: TOption[]) {\n\t\tthis.options$.next(options);\n\t\tif (this.panelRef) {\n\t\t\t// We have to put it in a setTimeout so it'll be triggered AFTER the DOM is updated and not right now,\n\t\t\t// which is before the panel size has been modified by the arrival of the new options\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.panelRef.updatePosition();\n\t\t\t});\n\t\t}\n\t}\n\n\t@Input() optionComparer: LuOptionComparer<TOption> = (option1, option2) => JSON.stringify(option1) === JSON.stringify(option2);\n\t@Input() optionKey: (option: TOption) => unknown = (option) => option;\n\n\toptionTpl = model<TemplateRef<LuOptionContext<TOption>> | Type<unknown>>(LuSimpleSelectDefaultOptionComponent);\n\tvalueTpl = model<TemplateRef<LuOptionContext<TOption>> | Type<unknown> | undefined>();\n\tpanelHeaderTpl = model<TemplateRef<void> | Type<unknown> | undefined>();\n\n\tdisplayerTpl = computed(() => this.valueTpl() || this.optionTpl());\n\n\tgrouping?: LuOptionGrouping<TOption, unknown>;\n\n\t@Output() clueChange = new EventEmitter<string>();\n\t@Output() nextPage = new EventEmitter<void>();\n\t@Output() previousPage = new EventEmitter<void>();\n\t@Output() addOption = new EventEmitter<string>();\n\n\tpublic get value(): TValue {\n\t\treturn this._value;\n\t}\n\n\tprotected set value(value: TValue) {\n\t\tthis._value = value;\n\t\tthis.changeDetectorRef.markForCheck();\n\t}\n\n\tpublic get inputPlaceholder(): string | null {\n\t\treturn this.value ? null : this.placeholder$.value;\n\t}\n\n\tpublic clueChanged(clue: string, skipPanelOpen = false): void {\n\t\tthis.clue = clue;\n\n\t\tif (!skipPanelOpen && !this.isPanelOpen) {\n\t\t\tthis.openPanel(clue);\n\t\t} else if (this.lastEmittedClue !== clue) {\n\t\t\tthis.clueChange.emit(clue);\n\t\t\tthis.lastEmittedClue = clue;\n\t\t}\n\t}\n\n\tprotected _value?: TValue;\n\n\toptions$ = new ReplaySubject<TOption[]>(1);\n\tloading$ = new BehaviorSubject(false);\n\tclue: string | null = null;\n\t// This is the clue stored after we selected an option to know if we should emit an empty clue on open or not\n\tlastEmittedClue: string = '';\n\tclue$ = defer(() => this.clueChange.pipe(startWith(this.clue)));\n\n\taddOptionStrategy$ = new BehaviorSubject<CoreSelectAddOptionStrategy>('never');\n\tshouldDisplayAddOption$ = this.addOptionStrategy$.pipe(\n\t\tswitchMap((strategy) => {\n\t\t\tswitch (strategy) {\n\t\t\t\tcase 'always':\n\t\t\t\t\treturn of(true);\n\t\t\t\tcase 'never':\n\t\t\t\t\treturn of(false);\n\t\t\t\tcase 'if-empty-clue':\n\t\t\t\t\treturn this.clue$.pipe(map((clue) => !clue));\n\t\t\t\tcase 'if-not-empty-clue':\n\t\t\t\t\treturn this.clue$.pipe(map((clue) => !!clue));\n\t\t\t}\n\t\t}),\n\t);\n\n\tprotected onChange?: (value: TValue | null) => void;\n\tprotected onTouched?: () => void;\n\n\tpublic get panelRef(): LuSelectPanelRef<TOption, TValue> | undefined {\n\t\treturn this._panelRef;\n\t}\n\n\tprotected _panelRef?: LuSelectPanelRef<TOption, TValue>;\n\n\tprotected destroyed$ = new Subject<void>();\n\n\t@HostListener('click', ['$event'])\n\tonClickOpenPanel($event: KeyboardEvent) {\n\t\tif (!this.isPanelOpen) {\n\t\t\tthis.openPanel();\n\t\t\t$event.stopPropagation();\n\t\t\t$event.preventDefault();\n\t\t}\n\t}\n\n\t@HostListener('keydown', ['$event'])\n\tonKeyDownNavigation($event: KeyboardEvent): void {\n\t\tswitch ($event.key) {\n\t\t\tcase 'Escape':\n\t\t\t\tif (this.isPanelOpen) {\n\t\t\t\t\t$event.stopPropagation();\n\t\t\t\t}\n\t\t\t\tthis.panelRef?.close();\n\t\t\t\tbreak;\n\t\t\tcase 'Tab':\n\t\t\t\tthis.panelRef?.close();\n\t\t\t\tbreak;\n\t\t\tcase 'Enter':\n\t\t\t\tif (this.isPanelOpen) {\n\t\t\t\t\t// Prevent form submission when selecting a value with Enter\n\t\t\t\t\t$event.preventDefault();\n\t\t\t\t\tthis.panelRef.selectCurrentlyHighlightedValue();\n\t\t\t\t} else {\n\t\t\t\t\tthis.panelRef?.handleKeyManagerEvent($event);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase ' ':\n\t\t\tcase 'ArrowDown':\n\t\t\tcase 'ArrowUp':\n\t\t\t\t// Initial space should just open the panel, not trigger a clue change\n\t\t\t\tif (!this.clue && $event.key === ' ') {\n\t\t\t\t\t$event.preventDefault();\n\t\t\t\t}\n\t\t\t\tif (this.isPanelOpen) {\n\t\t\t\t\tthis.panelRef?.handleKeyManagerEvent($event);\n\t\t\t\t} else {\n\t\t\t\t\tthis.openPanel();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\t// For any other key, forward it to the panel if it's open\n\t\t\t\tif (this.isPanelOpen) {\n\t\t\t\t\tthis.panelRef?.handleKeyManagerEvent($event);\n\t\t\t\t} else if ($event.key.length === 1) {\n\t\t\t\t\tthis.openPanel($event.key);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tregisterOnChange(onChange: (value: TValue) => void): void {\n\t\tthis.onChange = onChange;\n\t}\n\n\tregisterOnTouched(onTouched: () => void): void {\n\t\tthis.onTouched = onTouched;\n\t}\n\n\tsetDisabledState(isDisabled: boolean): void {\n\t\tthis.disabled$.next(isDisabled);\n\t\tthis.changeDetectorRef.markForCheck();\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.closePanel();\n\t\tthis.destroyed$.next();\n\t\tthis.destroyed$.complete();\n\t}\n\n\tngOnInit(): void {\n\t\tif (this.labelElement) {\n\t\t\tthis.labelElement.id = this.labelId;\n\t\t}\n\t}\n\n\tclearValue(event: Event): void {\n\t\tevent.stopPropagation();\n\t\tthis.updateValue(null, true);\n\t\tthis.inputElementRef.nativeElement.focus();\n\t}\n\n\topenPanel(clue: string = ''): void {\n\t\tif (this.isPanelOpen || this.disabled$.value) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.isPanelOpen$.next(true);\n\t\tthis.clueChanged(clue);\n\t\tthis._panelRef = this.buildPanelRef();\n\t\tthis.bindInputToPanelRefEvents();\n\t\tsetTimeout(() => this.focusInput());\n\t}\n\n\temitAddOption(): void {\n\t\tthis.addOption.emit(this.clue);\n\t\tthis.panelRef?.close();\n\t}\n\n\tprotected abstract buildPanelRef(): this['panelRef'];\n\n\tprotected bindInputToPanelRefEvents(): void {\n\t\tif (!this.panelRef) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.panelRef.valueChanged.subscribe((value) => this.updateValue(value));\n\n\t\tthis.#pageChanged(this.panelRef.nextPage).subscribe(() => this.nextPage.emit());\n\t\tthis.#pageChanged(this.panelRef.previousPage).subscribe(() => this.previousPage.emit());\n\n\t\tthis.panelRef.activeOptionIdChanged.subscribe((optionId) => {\n\t\t\tthis.activeDescendant$.next(optionId);\n\t\t\tthis.changeDetectorRef.markForCheck();\n\t\t});\n\t\tthis.panelRef.closed.subscribe(() => this.closePanel());\n\t}\n\n\tprotected focusInput(): void {\n\t\tif (this.inputElementRef) {\n\t\t\tthis.inputElementRef.nativeElement.focus();\n\t\t}\n\t}\n\n\tprotected emptyClue(): void {\n\t\tif (this.clue) {\n\t\t\tthis.clue = null;\n\t\t\tthis.changeDetectorRef.markForCheck();\n\t\t}\n\t}\n\n\tpublic closePanel(): void {\n\t\tif (!this.isPanelOpen) {\n\t\t\treturn;\n\t\t}\n\t\tthis.emptyClue();\n\t\tthis.activeDescendant$.next('');\n\t\tthis.changeDetectorRef.markForCheck();\n\t\tthis.onTouched?.();\n\t\tthis.isPanelOpen$.next(false);\n\t\tthis.panelRef.close();\n\t\tthis._panelRef = undefined;\n\t}\n\n\tpublic writeValue(value: TValue): void {\n\t\tthis.value = value;\n\t}\n\n\tpublic updateValue(value: TValue, skipPanelOpen = false): void {\n\t\tthis.value = value;\n\t\tthis.emptyClue();\n\t\tthis.clueChanged('', skipPanelOpen);\n\t\tthis.onChange?.(value);\n\t\tthis.onTouched?.();\n\t}\n\n\t// Ensure nextPage/previousPage does not emit too often\n\t#pageChanged(pageEmitter: EventEmitter<void>): Observable<void> {\n\t\treturn this.options$.pipe(switchMap(() => pageEmitter.pipe(take(1))));\n\t}\n}\n","import { Overlay, OverlayContainer } from '@angular/cdk/overlay';\nimport { Platform } from '@angular/cdk/platform';\nimport { DOCUMENT } from '@angular/common';\nimport { ElementRef, Injectable, Provider, inject } from '@angular/core';\nimport { SELECT_ID, SELECT_LABEL, SELECT_LABEL_ID } from '../select.model';\n\nlet selectId = 0;\n\nfunction selectIdFactory(): number {\n\treturn selectId++;\n}\n\nfunction selectLabelFactory(): HTMLLabelElement | undefined {\n\tconst elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\tfunction getLabel(node: HTMLElement): HTMLLabelElement | undefined {\n\t\tif (node instanceof HTMLLabelElement) {\n\t\t\treturn node;\n\t\t}\n\n\t\tif (!node.parentElement) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn getLabel(node.parentElement);\n\t}\n\n\treturn getLabel(elementRef.nativeElement);\n}\n\nfunction selectLabelIdFactory(): string {\n\treturn inject(SELECT_LABEL)?.id || `lu-select-label-${inject(SELECT_ID)}`;\n}\n\nexport function provideLuSelectLabelsAndIds(): Provider[] {\n\treturn [\n\t\t{ provide: SELECT_ID, useFactory: selectIdFactory },\n\t\t{ provide: SELECT_LABEL, useFactory: selectLabelFactory },\n\t\t{ provide: SELECT_LABEL_ID, useFactory: selectLabelIdFactory },\n\t];\n}\n\n@Injectable()\nclass LuSelectOverlayContainer extends OverlayContainer {\n\tprivate selectLabelId = inject(SELECT_LABEL_ID);\n\tprivate selectId = inject(SELECT_ID);\n\n\tconstructor() {\n\t\tsuper(inject(DOCUMENT), inject(Platform));\n\t}\n\n\tprotected override _createContainer(): void {\n\t\tsuper._createContainer();\n\t\tthis._containerElement.setAttribute('aria-labelledby', this.selectLabelId);\n\t\tthis._containerElement.id = `lu-select-overlay-container-${this.selectId}`;\n\t}\n}\n\nexport function provideLuSelectOverlayContainer(): Provider[] {\n\treturn [\n\t\tOverlay,\n\t\t{\n\t\t\tprovide: OverlayContainer,\n\t\t\tuseClass: LuSelectOverlayContainer,\n\t\t},\n\t];\n}\n","import { Directive, forwardRef, input } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { CORE_SELECT_API_TOTAL_COUNT_PROVIDER, CoreSelectApiTotalCountProvider } from '../select.model';\n\n@Directive({\n\t// The attribute is already prefixed with \"lu-simple-select\"\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: 'lu-simple-select[totalCount],lu-multi-select[totalCount]',\n\tstandalone: true,\n\tproviders: [\n\t\t{\n\t\t\tprovide: CORE_SELECT_API_TOTAL_COUNT_PROVIDER,\n\t\t\tuseExisting: forwardRef(() => LuCoreSelectTotalCountDirective),\n\t\t},\n\t],\n})\nexport class LuCoreSelectTotalCountDirective implements CoreSelectApiTotalCountProvider {\n\ttotalCount = input.required<number>({ alias: 'totalCount' });\n\n\ttotalCount$ = toObservable(this.totalCount);\n}\n","import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { DestroyRef, EventEmitter, Injectable, QueryList, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Observable, asyncScheduler, debounceTime, filter, map, observeOn, take } from 'rxjs';\nimport { ɵLuOptionComponent } from '../option';\nimport { LuOptionComparer } from '../select.model';\n\ninterface CoreSelectKeyManagerOptions<T> {\n\tqueryList: QueryList<ɵLuOptionComponent<T>>;\n\toptions$: Observable<T[]>;\n\toptionComparer: LuOptionComparer<T>;\n\tactiveOptionIdChanged$: EventEmitter<string>;\n\tclueChange$: Observable<string>;\n}\n\n@Injectable()\nexport class CoreSelectKeyManager<T> {\n\t#destroyRef = inject(DestroyRef);\n\t#cdkKeyManager?: ActiveDescendantKeyManager<ɵLuOptionComponent<T>>;\n\t#hasSearchChanged = false;\n\t#options?: CoreSelectKeyManagerOptions<T>;\n\n\tinit(options: CoreSelectKeyManagerOptions<T>): void {\n\t\tthis.#options = options;\n\t\tthis.#cdkKeyManager = new ActiveDescendantKeyManager(options.queryList).withHomeAndEnd();\n\t\tthis.#bindClueChange(options.clueChange$);\n\t\tthis.#bindOptionsChange(options);\n\t\tthis.#bindActiveOptionIdChanged(options.activeOptionIdChanged$);\n\t\tthis.#cdkKeyManager.setFirstItemActive();\n\t}\n\n\tonKeydown(event: KeyboardEvent): void {\n\t\tthis.#cdkKeyManager?.onKeydown(event);\n\t}\n\n\tget activeItem(): ɵLuOptionComponent<T> | undefined {\n\t\treturn this.#cdkKeyManager?.activeItem;\n\t}\n\n\tget activeItemIndex(): number {\n\t\treturn this.#cdkKeyManager?.activeItemIndex ?? -1;\n\t}\n\n\tsetActiveItem(index: number): void {\n\t\tthis.#cdkKeyManager?.setActiveItem(index);\n\t}\n\n\thighlightOption(option: T): void {\n\t\tif (!this.#options) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { options$, optionComparer } = this.#options;\n\n\t\toptions$\n\t\t\t.pipe(\n\t\t\t\tobserveOn(asyncScheduler),\n\t\t\t\tmap((options) => options.findIndex((o) => optionComparer(o, option))),\n\t\t\t\tfilter((index) => index !== -1),\n\t\t\t\ttake(1),\n\t\t\t\ttakeUntilDestroyed(this.#destroyRef),\n\t\t\t)\n\t\t\t.subscribe((selectedIndex) => this.setActiveItem(selectedIndex));\n\t}\n\n\t#bindClueChange(clueChange$: Observable<string>): void {\n\t\tclueChange$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe(() => {\n\t\t\tthis.#hasSearchChanged = true;\n\t\t});\n\t}\n\n\t#bindActiveOptionIdChanged(activeOptionIdChanged$: EventEmitter<string>): void {\n\t\tthis.#cdkKeyManager.change\n\t\t\t.pipe(\n\t\t\t\tmap(() => this.#cdkKeyManager.activeItem?.id),\n\t\t\t\ttakeUntilDestroyed(this.#destroyRef),\n\t\t\t)\n\t\t\t.subscribe((activeDescendant) => activeOptionIdChanged$.emit(activeDescendant));\n\t}\n\n\t/**\n\t * Ensure always have the correct highlighted item:\n\t * \t- reset to null if no options\n\t * \t- set to first item if search has changed\n\t * \t- set to first item if no active item\n\t */\n\t#bindOptionsChange({ options$, queryList }: CoreSelectKeyManagerOptions<T>): void {\n\t\toptions$\n\t\t\t.pipe(\n\t\t\t\tdebounceTime(0), // Wait until QueryList is updated\n\t\t\t\ttakeUntilDestroyed(this.#destroyRef),\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tif (queryList.length === 0) {\n\t\t\t\t\tthis.#cdkKeyManager.setActiveItem(-1);\n\t\t\t\t} else if (this.#hasSearchChanged) {\n\t\t\t\t\tthis.#hasSearchChanged = false;\n\t\t\t\t\tthis.#cdkKeyManager.setFirstItemActive();\n\t\t\t\t} else if (!this.#cdkKeyManager.activeItem) {\n\t\t\t\t\tthis.#cdkKeyManager.setFirstItemActive();\n\t\t\t\t}\n\t\t\t});\n\t}\n}\n","import { Directive, TemplateRef, effect, inject, input, untracked } from '@angular/core';\nimport { ALuSelectInputComponent } from '../input';\n\n@Directive({\n\tselector: '[luSelectPanelHeader]',\n\tstandalone: true,\n})\nexport class LuCoreSelectPanelHeaderDirective {\n\treadonly templateRef = inject<TemplateRef<void>>(TemplateRef);\n\n\treadonly select = input.required<ALuSelectInputComponent<unknown, unknown>>({ alias: 'luSelectPanelHeader' });\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst select = this.select();\n\t\t\tuntracked(() => select.panelHeaderTpl.set(this.templateRef));\n\t\t});\n\t}\n\n\tpublic static ngTemplateContextGuard(_dir: LuCoreSelectPanelHeaderDirective, ctx: unknown): ctx is void {\n\t\treturn true;\n\t}\n}\n","import { EventEmitter } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nexport abstract class LuSelectPanelRef<TOption, TValue> {\n\tclosed = new EventEmitter<void>();\n\tpreviousPage = new EventEmitter<void>();\n\tnextPage = new EventEmitter<void>();\n\tvalueChanged = new EventEmitter<TValue>();\n\tclueChanged = new EventEmitter<string>();\n\tactiveOptionIdChanged = new EventEmitter<string>();\n\toptions$: Observable<TOption>;\n\n\tabstract updatePosition(): void;\n\n\tabstract handleKeyManagerEvent(event: KeyboardEvent): void;\n\n\tabstract emitValue(value: TValue): void;\n\n\tabstract selectCurrentlyHighlightedValue(): void;\n\n\tclose(): void {\n\t\tthis.closed.next();\n\t\tthis.closed.complete();\n\t\tthis.nextPage.complete();\n\t\tthis.previousPage.complete();\n\t\tthis.valueChanged.complete();\n\t\tthis.clueChanged.emit('');\n\t\tthis.clueChanged.complete();\n\t\tthis.activeOptionIdChanged.complete();\n\t}\n}\n","import { Observable, distinctUntilChanged, map, of, skip, startWith, switchMap, take } from 'rxjs';\n\nexport type GroupTemplateLocation = 'group-header' | 'option' | 'none';\n\n/**\n * In order to avoid a blinking when we go from empty clue to a clue\n * We need to delay the change of group displayer location by waiting for the options to be updated.\n */\nexport function getGroupTemplateLocation(hasGrouping: boolean, clueChange$: Observable<string>, options$: Observable<unknown[]>): Observable<GroupTemplateLocation> {\n\treturn hasGrouping\n\t\t? clueChange$.pipe(\n\t\t\t\tmap((clue) => !!clue),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\tswitchMap((hasClue) =>\n\t\t\t\t\toptions$.pipe(\n\t\t\t\t\t\tskip(1),\n\t\t\t\t\t\ttake(1),\n\t\t\t\t\t\tmap((): GroupTemplateLocation => (hasClue ? 'option' : 'group-header')),\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t\tstartWith('group-header' as const),\n\t\t\t)\n\t\t: of('none' as const);\n}\n","export const sanitizeClueFilter = (clue: string, delimiter: string): string =>\n\tclue\n\t\t.split(' ')\n\t\t.map((c: string) => encodeURIComponent(c))\n\t\t.join(delimiter);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lucca-front-ng-core-select.mjs","sources":["../../../packages/ng/core-select/displayer/displayer.directive.ts","../../../packages/ng/core-select/option/option.token.ts","../../../packages/ng/core-select/option/default-option.component.ts","../../../packages/ng/core-select/option/disabled.directive.ts","../../../packages/ng/core-select/option/group.directive.ts","../../../packages/ng/core-select/option/group.pipe.ts","../../../packages/ng/core-select/option/option-outlet.directive.ts","../../../packages/ng/core-select/select.model.ts","../../../packages/ng/core-select/option/option.component.ts","../../../packages/ng/core-select/option/option.component.html","../../../packages/ng/core-select/option/option.directive.ts","../../../packages/ng/core-select/translations.ts","../../../packages/ng/core-select/select.translate.ts","../../../packages/ng/core-select/input/select-input.component.ts","../../../packages/ng/core-select/input/select-input.models.ts","../../../packages/ng/core-select/input/total-count.directive.ts","../../../packages/ng/core-select/panel/key-manager.ts","../../../packages/ng/core-select/panel/panel-header-template.directive.ts","../../../packages/ng/core-select/panel/panel.models.ts","../../../packages/ng/core-select/panel/panel.utils.ts","../../../packages/ng/core-select/select.utils.ts","../../../packages/ng/core-select/lucca-front-ng-core-select.ts"],"sourcesContent":["import { Directive, Input, TemplateRef } from '@angular/core';\nimport { ALuSelectInputComponent } from '../input';\nimport { LuOptionContext } from '../select.model';\n\n@Directive({\n\tselector: '[luDisplayer]',\n\tstandalone: true,\n})\nexport class LuDisplayerDirective<TOption, TValue> {\n\t@Input('luDisplayerSelect') set select(select: ALuSelectInputComponent<TOption, TValue>) {\n\t\tselect.valueTpl.set(this.templateRef);\n\t}\n\n\tpublic constructor(private templateRef: TemplateRef<LuOptionContext<TOption>>) {}\n\n\tpublic static ngTemplateContextGuard<TOption, TValue>(_dir: LuDisplayerDirective<TOption, TValue>, ctx: unknown): ctx is LuOptionContext<TOption> {\n\t\treturn true;\n\t}\n}\n","import { InjectionToken, Provider } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\nexport interface ILuOptionContext<T> {\n\tisDisabled$: BehaviorSubject<boolean>;\n\toption$: BehaviorSubject<T | undefined>;\n\tdestroy(): void;\n}\n\nexport const LU_OPTION_CONTEXT = new InjectionToken<ILuOptionContext<unknown>>('LuOptionContext');\n\nfunction optionContextFactory<T>(): ILuOptionContext<T> {\n\tconst isDisabled$ = new BehaviorSubject(false);\n\tconst option$ = new BehaviorSubject<T | undefined>(undefined);\n\treturn {\n\t\tisDisabled$,\n\t\toption$,\n\t\tdestroy(): void {\n\t\t\tisDisabled$.complete();\n\t\t\toption$.complete();\n\t\t},\n\t};\n}\n\nexport function provideOptionContext(): Provider {\n\treturn {\n\t\tprovide: LU_OPTION_CONTEXT,\n\t\tuseFactory: optionContextFactory,\n\t};\n}\n","import { AsyncPipe, NgIf } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { ILuOptionContext, LU_OPTION_CONTEXT } from './option.token';\n\n@Component({\n\tselector: 'lu-simple-select-default-option',\n\tstandalone: true,\n\timports: [AsyncPipe, NgIf],\n\ttemplate: `<ng-container *ngIf=\"context.option$ | async as option\">{{ option?.name ?? option }}</ng-container>`,\n\thost: { class: 'u-ellipsis' },\n})\nexport class LuSimpleSelectDefaultOptionComponent {\n\tpublic context = inject<ILuOptionContext<{ name?: string }>>(LU_OPTION_CONTEXT);\n}\n","import { Directive, inject, Input } from '@angular/core';\nimport { LU_OPTION_CONTEXT } from './option.token';\n\n@Directive({\n\tselector: '[luDisabledOption]',\n\tstandalone: true,\n})\nexport class LuDisabledOptionDirective {\n\tprivate context = inject(LU_OPTION_CONTEXT);\n\n\t@Input('luDisabledOption') public set isDisabled(disabled: boolean | null) {\n\t\tif (disabled !== null) {\n\t\t\tthis.context.isDisabled$.next(disabled);\n\t\t}\n\t}\n}\n","import { Directive, inject, Input, OnInit, TemplateRef } from '@angular/core';\nimport { PortalContent } from '@lucca-front/ng/core';\nimport type { ALuSelectInputComponent } from '../input';\nimport type { LuOptionGroupByContext } from '../select.model';\n\nexport interface LuOptionGrouping<TOption, TGroup> {\n\tselector: (option: TOption) => TGroup;\n\tcontent: PortalContent<LuOptionGroupByContext<TOption, TGroup>>;\n}\n\n@Directive({\n\tselector: '[luOptionGroup]',\n\tstandalone: true,\n})\nexport class LuOptionGroupDirective<TOption, TValue, TGroup> implements LuOptionGrouping<TOption, TGroup>, OnInit {\n\t@Input('luOptionGroupSelect') select: ALuSelectInputComponent<TOption, TValue>;\n\n\t@Input('luOptionGroupBy') selector: (option: TOption) => TGroup;\n\n\treadonly content = inject<TemplateRef<LuOptionGroupByContext<TOption, TGroup>>>(TemplateRef);\n\n\tpublic static ngTemplateContextGuard<TOption, TValue, TGroup>(_dir: LuOptionGroupDirective<TOption, TValue, TGroup>, ctx: unknown): ctx is LuOptionGroupByContext<TOption, TGroup> {\n\t\treturn true;\n\t}\n\n\tpublic ngOnInit(): void {\n\t\tthis.select.grouping = this;\n\t}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { LuOptionGroup } from '../select.model';\n\n/**\n * Generate groups with a O(n) complexity. Note that the options must be sorted by group.\n */\nexport function generateGroups<T, TGroup>(options: T[], selector: (option: T) => TGroup): LuOptionGroup<T, TGroup>[] {\n\tif (!options?.length) {\n\t\treturn [];\n\t}\n\n\tconst groups: Array<LuOptionGroup<T, TGroup>> = [];\n\tlet group: LuOptionGroup<T, TGroup>;\n\n\tfor (const option of options) {\n\t\tconst groupKey = selector(option);\n\t\tif (!group || group.key !== groupKey) {\n\t\t\tif (group) {\n\t\t\t\tgroups.push(group);\n\t\t\t}\n\t\t\tgroup = { key: groupKey, options: [option] };\n\t\t} else {\n\t\t\tgroup.options.push(option);\n\t\t}\n\t}\n\n\tif (group) {\n\t\tgroups.push(group);\n\t}\n\n\treturn groups;\n}\n\n@Pipe({\n\tname: 'luOptionGroup',\n\tstandalone: true,\n})\nexport class LuOptionGroupPipe<T, TGroup> implements PipeTransform {\n\tpublic transform(options: T[], selector: (option: T) => TGroup): LuOptionGroup<T, TGroup>[];\n\tpublic transform(options: T, selector: (option: T) => TGroup): LuOptionGroup<T, TGroup>;\n\tpublic transform(options: T[] | T, selector: (option: T) => TGroup): LuOptionGroup<T, TGroup>[] | LuOptionGroup<T, TGroup> {\n\t\treturn Array.isArray(options) ? generateGroups(options, selector) : generateGroups([options], selector)[0];\n\t}\n}\n","import { ComponentRef, Directive, EmbeddedViewRef, inject, Injector, Input, OnChanges, OnDestroy, SimpleChanges, TemplateRef, Type, ViewContainerRef } from '@angular/core';\nimport { LuOptionContext } from '../select.model';\nimport { LU_OPTION_CONTEXT, provideOptionContext } from './option.token';\n\n@Directive({\n\tselector: '[luOptionOutlet]',\n\tstandalone: true,\n\tproviders: [provideOptionContext()],\n})\nexport class LuOptionOutletDirective<T> implements OnChanges, OnDestroy {\n\t@Input() luOptionOutlet?: Type<unknown> | TemplateRef<LuOptionContext<T>>;\n\t@Input() luOptionOutletValue: T | undefined;\n\t@Input() luOptionShowNull = false;\n\n\tprivate viewContainerRef = inject(ViewContainerRef);\n\tprivate injector = inject(Injector);\n\tprivate embeddedViewRef?: EmbeddedViewRef<LuOptionContext<T>>;\n\tprivate componentRef?: ComponentRef<unknown>;\n\tprivate optionContext = inject(LU_OPTION_CONTEXT);\n\n\tngOnChanges(changes: SimpleChanges): void {\n\t\tif (changes['luOptionOutlet'] || !this.luOptionOutletValue) {\n\t\t\tthis.clearContainer();\n\t\t}\n\n\t\tconst hasRef = this.embeddedViewRef || this.componentRef;\n\n\t\tif (changes['luOptionOutlet'] || (changes['luOptionOutletValue'].currentValue !== null && changes['luOptionOutletValue'].currentValue !== undefined && !hasRef)) {\n\t\t\tconst newValue = changes['luOptionOutletValue'].currentValue as T | undefined;\n\t\t\tif (newValue !== null && newValue !== undefined) {\n\t\t\t\tthis.createComponent();\n\t\t\t}\n\t\t} else if (changes['luOptionOutletValue']) {\n\t\t\tthis.updateRefValue();\n\t\t}\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.optionContext.destroy();\n\t}\n\n\tprivate clearContainer(): void {\n\t\tthis.viewContainerRef.clear();\n\t\tthis.embeddedViewRef?.destroy();\n\t\tthis.componentRef?.destroy();\n\t\tthis.embeddedViewRef = undefined;\n\t\tthis.componentRef = undefined;\n\t}\n\n\tprivate createComponent(): void {\n\t\tif (!this.luOptionOutlet) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.luOptionOutlet instanceof TemplateRef) {\n\t\t\tthis.embeddedViewRef = this.viewContainerRef.createEmbeddedView(this.luOptionOutlet, { $implicit: this.luOptionOutletValue }, { injector: this.injector });\n\t\t} else {\n\t\t\tthis.optionContext.option$.next(this.luOptionOutletValue);\n\t\t\tthis.componentRef = this.viewContainerRef.createComponent(this.luOptionOutlet, { injector: this.injector });\n\t\t}\n\t}\n\n\tprivate updateRefValue(): void {\n\t\tif (this.embeddedViewRef) {\n\t\t\tthis.embeddedViewRef.context.$implicit = this.luOptionOutletValue;\n\t\t} else if (this.componentRef) {\n\t\t\tthis.optionContext.option$.next(this.luOptionOutletValue);\n\t\t}\n\t}\n}\n","import { InjectionToken } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nexport interface LuOptionContext<T> {\n\t$implicit: T;\n}\n\nexport interface LuOptionGroupByContext<T, TGroup> {\n\t$implicit: LuOptionGroup<T, TGroup>;\n}\n\nexport interface LuOptionGroup<T, TGroup> {\n\tkey: TGroup;\n\toptions: T[];\n}\n\nexport type LuOptionComparer<T> = (a: T, b: T) => boolean;\n\nexport type CoreSelectAddOptionStrategy = 'never' | 'always' | 'if-empty-clue' | 'if-not-empty-clue';\n\nexport const SELECT_ID = new InjectionToken<number>('LuSelectPanelData');\nexport const SELECT_LABEL = new InjectionToken<HTMLLabelElement | undefined>('LuSelectLabel');\nexport const SELECT_LABEL_ID = new InjectionToken<string>('LuSelectLabelId');\n\nexport interface CoreSelectApiTotalCountProvider {\n\ttotalCount$: Observable<number>;\n}\n\nexport const CORE_SELECT_API_TOTAL_COUNT_PROVIDER = new InjectionToken<CoreSelectApiTotalCountProvider>('CoreSelectApiTotalCountProvider');\n","import { Highlightable } from '@angular/cdk/a11y';\nimport { AsyncPipe, NgIf } from '@angular/common';\nimport { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostBinding, Input, OnDestroy, TemplateRef, Type, ViewChild, inject } from '@angular/core';\nimport { PortalDirective } from '@lucca-front/ng/core';\nimport { BehaviorSubject, Subscription, asyncScheduler, observeOn } from 'rxjs';\nimport { LuOptionContext, SELECT_ID } from '../select.model';\nimport { LuOptionGrouping } from './group.directive';\nimport { LuOptionGroupPipe } from './group.pipe';\nimport { LuOptionOutletDirective } from './option-outlet.directive';\nimport { ILuOptionContext, LU_OPTION_CONTEXT } from './option.token';\n\nexport const MAGIC_OPTION_SCROLL_DELAY = 15;\n\n@Component({\n\tselector: 'lu-select-option',\n\ttemplateUrl: './option.component.html',\n\tstyleUrls: ['./option.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [AsyncPipe, LuOptionOutletDirective, NgIf, PortalDirective, LuOptionGroupPipe],\n})\nexport class LuOptionComponent<T> implements Highlightable, AfterViewInit, OnDestroy {\n\t@HostBinding('class.optionItem')\n\tpublic hasOptionItemClass = true;\n\n\t@Input()\n\tpublic optionTpl: TemplateRef<LuOptionContext<T>> | Type<unknown> | undefined;\n\n\t@Input()\n\t@HostBinding('attr.aria-selected')\n\tisSelected = false;\n\n\t@Input() option?: T;\n\t@Input() grouping?: LuOptionGrouping<T, unknown>;\n\n\t@Input()\n\tpublic optionIndex = 0;\n\n\t@Input()\n\tscrollIntoViewOptions: ScrollIntoViewOptions = {};\n\n\tisHighlighted$ = new BehaviorSubject(false);\n\n\t/**\n\t * Whether option is disabled. Used by ListKeyManager.\n\t */\n\tdisabled = false;\n\n\t@ViewChild(LuOptionOutletDirective, { read: LU_OPTION_CONTEXT, static: true })\n\tprivate optionContext?: ILuOptionContext<T>;\n\n\tprivate cdr = inject(ChangeDetectorRef);\n\tprivate subscription?: Subscription;\n\n\t@HostBinding('attr.role')\n\tpublic role = 'option';\n\n\t@HostBinding('attr.id')\n\tpublic get id(): string {\n\t\treturn `lu-select-${this.selectId}-option-${this.optionIndex}`;\n\t}\n\n\tprotected elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\tprotected selectId = inject(SELECT_ID);\n\n\tngOnDestroy(): void {\n\t\tthis.subscription?.unsubscribe();\n\t}\n\n\tngAfterViewInit(): void {\n\t\tthis.subscription = this.optionContext.isDisabled$.pipe(observeOn(asyncScheduler)).subscribe((isDisabled) => {\n\t\t\tthis.disabled = isDisabled;\n\t\t\tthis.cdr.markForCheck();\n\t\t});\n\t}\n\n\tsetActiveStyles(): void {\n\t\tthis.isHighlighted$.next(true);\n\t\t// Somehow, adding this small delay works, even tho 0ms delay doesn't, I think there's\n\t\t// a race condition somewhere that I can't find so this will just fix it for now.\n\t\tsetTimeout(() => {\n\t\t\tthis.elementRef.nativeElement.scrollIntoView(this.scrollIntoViewOptions);\n\t\t}, MAGIC_OPTION_SCROLL_DELAY);\n\t}\n\n\tsetInactiveStyles(): void {\n\t\tthis.isHighlighted$.next(false);\n\t}\n\n\tselectOption($event: Event): void {\n\t\tif (this.disabled) {\n\t\t\t$event.stopPropagation();\n\t\t}\n\t}\n}\n","<div\n\tclass=\"optionItem-value\"\n\t[class.is-selected]=\"isSelected\"\n\t[class.is-highlighted]=\"isHighlighted$ | async\"\n\t[class.is-disabled]=\"disabled\"\n\t(click)=\"selectOption($event)\"\n>\n\t<ng-container *luOptionOutlet=\"optionTpl; value: option\" />\n\n\t<div *ngIf=\"grouping\" class=\"optionItem-value-group\">\n\t\t<ng-container *luPortal=\"grouping.content; context: { $implicit: option | luOptionGroup:grouping.selector }\" />\n\t</div>\n</div>\n","import { Directive, Input, TemplateRef } from '@angular/core';\nimport type { ALuSelectInputComponent } from '../input';\nimport type { LuOptionContext } from '../select.model';\n\n@Directive({\n\tselector: '[luOption]',\n\tstandalone: true,\n})\nexport class LuOptionDirective<TOption, TValue> {\n\t@Input('luOptionSelect') set select(select: ALuSelectInputComponent<TOption, TValue>) {\n\t\tselect.optionTpl.set(this.templateRef);\n\t}\n\n\tpublic constructor(private templateRef: TemplateRef<LuOptionContext<TOption>>) {}\n\n\tpublic static ngTemplateContextGuard<TOption, TValue>(_dir: LuOptionDirective<TOption, TValue>, ctx: unknown): ctx is LuOptionContext<TOption> {\n\t\treturn true;\n\t}\n}\n","export const Translations = {\n\ten: {\n\t\taddOption: 'Add option',\n\t},\n\tde: {\n\t\taddOption: 'Option hinzufügen',\n\t},\n\tfr: {\n\t\taddOption: 'Ajouter une option',\n\t},\n\tit: {\n\t\taddOption: 'Aggiungere un’opzione',\n\t},\n\tnl: {\n\t\taddOption: 'Een optie toevoegen',\n\t},\n\t'nl-BE': {\n\t\taddOption: 'Een optie toevoegen',\n\t},\n\tes: {\n\t\taddOption: 'Añadir una opción',\n\t},\n\tpt: {\n\t\taddOption: 'Adicionar opção',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_CORE_SELECT_TRANSLATIONS = new InjectionToken('LuCoreSelectTranslations', {\n\tfactory: () => luCoreSelectTranslations,\n});\n\nexport interface LuCoreSelectLabel {\n\taddOption: string;\n}\n\nexport const luCoreSelectTranslations: LuTranslation<LuCoreSelectLabel> = Translations;\n","/* eslint-disable @angular-eslint/no-output-on-prefix */\nimport { OverlayConfig, OverlayContainer } from '@angular/cdk/overlay';\nimport {\n\tbooleanAttribute,\n\tChangeDetectorRef,\n\tcomputed,\n\tDirective,\n\tElementRef,\n\tEventEmitter,\n\tHostBinding,\n\tHostListener,\n\tinject,\n\tInput,\n\tmodel,\n\tOnDestroy,\n\tOnInit,\n\tOutput,\n\tTemplateRef,\n\tType,\n\tViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { getIntl, PortalContent } from '@lucca-front/ng/core';\nimport { BehaviorSubject, defer, map, Observable, of, ReplaySubject, startWith, Subject, switchMap, take } from 'rxjs';\nimport { LuOptionGrouping, LuSimpleSelectDefaultOptionComponent } from '../option';\nimport { LuSelectPanelRef } from '../panel';\nimport { CoreSelectAddOptionStrategy, LuOptionComparer, LuOptionContext, SELECT_LABEL, SELECT_LABEL_ID } from '../select.model';\nimport { LU_CORE_SELECT_TRANSLATIONS } from '../select.translate';\n\n@Directive()\nexport abstract class ALuSelectInputComponent<TOption, TValue> implements OnDestroy, OnInit, ControlValueAccessor {\n\tprotected changeDetectorRef = inject(ChangeDetectorRef);\n\tprotected overlayContainerRef: HTMLElement = inject(OverlayContainer).getContainerElement();\n\n\tprotected labelElement: HTMLElement | undefined = inject(SELECT_LABEL);\n\tprotected labelId: string = inject(SELECT_LABEL_ID);\n\n\tprotected coreIntl = getIntl(LU_CORE_SELECT_TRANSLATIONS);\n\n\t@ViewChild('inputElement')\n\tprivate inputElementRef: ElementRef<HTMLInputElement>;\n\n\tpublic placeholder$ = new BehaviorSubject('');\n\n\tpublic disabled$ = new BehaviorSubject(false);\n\n\t@Input()\n\tset placeholder(value: string) {\n\t\tthis.placeholder$.next(value);\n\t}\n\n\t@Input({ transform: booleanAttribute })\n\t@HostBinding('class.is-clearable')\n\tclearable = false;\n\n\tget searchable(): boolean {\n\t\treturn this.clueChange.observed;\n\t}\n\n\t@Input()\n\taddOptionLabel: PortalContent = this.coreIntl.addOption;\n\n\t@Input()\n\tset addOptionStrategy(strategy: CoreSelectAddOptionStrategy) {\n\t\tthis.addOptionStrategy$.next(strategy);\n\t}\n\n\t@HostBinding('class.is-selected')\n\tprotected get isSelectedClass(): boolean {\n\t\treturn this.hasValue();\n\t}\n\n\t@HostBinding('class.is-searchFilled')\n\tprotected get isSearchFilledClass(): boolean {\n\t\treturn this.clue?.length > 0;\n\t}\n\n\tprotected abstract hasValue(): boolean;\n\n\tpublic get isPanelOpen(): boolean {\n\t\treturn this.isPanelOpen$.value;\n\t}\n\n\tpublic isPanelOpen$ = new BehaviorSubject(false);\n\n\tpublic activeDescendant$ = new BehaviorSubject('');\n\n\tget ariaControls(): string {\n\t\treturn this.overlayContainerRef.id;\n\t}\n\n\t@Input()\n\toverlayConfig?: OverlayConfig = {\n\t\thasBackdrop: true,\n\t\tbackdropClass: 'cdk-overlay-transparent-backdrop',\n\t};\n\n\t@Input() set loading(value: boolean) {\n\t\tif (value !== this.loading) {\n\t\t\tthis.loading$.next(value);\n\t\t}\n\t}\n\n\t@Input() set options(options: TOption[]) {\n\t\tthis.options$.next(options);\n\t\tif (this.panelRef) {\n\t\t\t// We have to put it in a setTimeout so it'll be triggered AFTER the DOM is updated and not right now,\n\t\t\t// which is before the panel size has been modified by the arrival of the new options\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.panelRef.updatePosition();\n\t\t\t});\n\t\t}\n\t}\n\n\t@Input() optionComparer: LuOptionComparer<TOption> = (option1, option2) => JSON.stringify(option1) === JSON.stringify(option2);\n\t@Input() optionKey: (option: TOption) => unknown = (option) => option;\n\n\toptionTpl = model<TemplateRef<LuOptionContext<TOption>> | Type<unknown>>(LuSimpleSelectDefaultOptionComponent);\n\tvalueTpl = model<TemplateRef<LuOptionContext<TOption>> | Type<unknown> | undefined>();\n\tpanelHeaderTpl = model<TemplateRef<void> | Type<unknown> | undefined>();\n\n\tdisplayerTpl = computed(() => this.valueTpl() || this.optionTpl());\n\n\tgrouping?: LuOptionGrouping<TOption, unknown>;\n\n\t@Output() clueChange = new EventEmitter<string>();\n\t@Output() nextPage = new EventEmitter<void>();\n\t@Output() previousPage = new EventEmitter<void>();\n\t@Output() addOption = new EventEmitter<string>();\n\n\tpublic get value(): TValue {\n\t\treturn this._value;\n\t}\n\n\tprotected set value(value: TValue) {\n\t\tthis._value = value;\n\t\tthis.changeDetectorRef.markForCheck();\n\t}\n\n\tpublic get inputPlaceholder(): string | null {\n\t\treturn this.value ? null : this.placeholder$.value;\n\t}\n\n\tpublic clueChanged(clue: string, skipPanelOpen = false): void {\n\t\tthis.clue = clue;\n\n\t\tif (!skipPanelOpen && !this.isPanelOpen) {\n\t\t\tthis.openPanel(clue);\n\t\t} else if (this.lastEmittedClue !== clue) {\n\t\t\tthis.clueChange.emit(clue);\n\t\t\tthis.lastEmittedClue = clue;\n\t\t}\n\t}\n\n\tprotected _value?: TValue;\n\n\toptions$ = new ReplaySubject<TOption[]>(1);\n\tloading$ = new BehaviorSubject(false);\n\tclue: string | null = null;\n\t// This is the clue stored after we selected an option to know if we should emit an empty clue on open or not\n\tlastEmittedClue: string = '';\n\tclue$ = defer(() => this.clueChange.pipe(startWith(this.clue)));\n\n\taddOptionStrategy$ = new BehaviorSubject<CoreSelectAddOptionStrategy>('never');\n\tshouldDisplayAddOption$ = this.addOptionStrategy$.pipe(\n\t\tswitchMap((strategy) => {\n\t\t\tswitch (strategy) {\n\t\t\t\tcase 'always':\n\t\t\t\t\treturn of(true);\n\t\t\t\tcase 'never':\n\t\t\t\t\treturn of(false);\n\t\t\t\tcase 'if-empty-clue':\n\t\t\t\t\treturn this.clue$.pipe(map((clue) => !clue));\n\t\t\t\tcase 'if-not-empty-clue':\n\t\t\t\t\treturn this.clue$.pipe(map((clue) => !!clue));\n\t\t\t}\n\t\t}),\n\t);\n\n\tprotected onChange?: (value: TValue | null) => void;\n\tprotected onTouched?: () => void;\n\n\tpublic get panelRef(): LuSelectPanelRef<TOption, TValue> | undefined {\n\t\treturn this._panelRef;\n\t}\n\n\tprotected _panelRef?: LuSelectPanelRef<TOption, TValue>;\n\n\tprotected destroyed$ = new Subject<void>();\n\n\t@HostListener('click', ['$event'])\n\tonClickOpenPanel($event: KeyboardEvent) {\n\t\tif (!this.isPanelOpen) {\n\t\t\tthis.openPanel();\n\t\t\t$event.stopPropagation();\n\t\t\t$event.preventDefault();\n\t\t}\n\t}\n\n\t@HostListener('keydown', ['$event'])\n\tonKeyDownNavigation($event: KeyboardEvent): void {\n\t\tswitch ($event.key) {\n\t\t\tcase 'Escape':\n\t\t\t\tif (this.isPanelOpen) {\n\t\t\t\t\t$event.stopPropagation();\n\t\t\t\t}\n\t\t\t\tthis.panelRef?.close();\n\t\t\t\tbreak;\n\t\t\tcase 'Tab':\n\t\t\t\tthis.panelRef?.close();\n\t\t\t\tbreak;\n\t\t\tcase 'Enter':\n\t\t\t\tif (this.isPanelOpen) {\n\t\t\t\t\t// Prevent form submission when selecting a value with Enter\n\t\t\t\t\t$event.preventDefault();\n\t\t\t\t\tthis.panelRef.selectCurrentlyHighlightedValue();\n\t\t\t\t} else {\n\t\t\t\t\tthis.panelRef?.handleKeyManagerEvent($event);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase ' ':\n\t\t\tcase 'ArrowDown':\n\t\t\tcase 'ArrowUp':\n\t\t\t\t// Initial space should just open the panel, not trigger a clue change\n\t\t\t\tif (!this.clue && $event.key === ' ') {\n\t\t\t\t\t$event.preventDefault();\n\t\t\t\t}\n\t\t\t\tif (this.isPanelOpen) {\n\t\t\t\t\tthis.panelRef?.handleKeyManagerEvent($event);\n\t\t\t\t} else {\n\t\t\t\t\tthis.openPanel();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\t// For any other key, forward it to the panel if it's open\n\t\t\t\tif (this.isPanelOpen) {\n\t\t\t\t\tthis.panelRef?.handleKeyManagerEvent($event);\n\t\t\t\t} else if ($event.key.length === 1) {\n\t\t\t\t\tthis.openPanel($event.key);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tregisterOnChange(onChange: (value: TValue) => void): void {\n\t\tthis.onChange = onChange;\n\t}\n\n\tregisterOnTouched(onTouched: () => void): void {\n\t\tthis.onTouched = onTouched;\n\t}\n\n\tsetDisabledState(isDisabled: boolean): void {\n\t\tthis.disabled$.next(isDisabled);\n\t\tthis.changeDetectorRef.markForCheck();\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.closePanel();\n\t\tthis.destroyed$.next();\n\t\tthis.destroyed$.complete();\n\t}\n\n\tngOnInit(): void {\n\t\tif (this.labelElement) {\n\t\t\tthis.labelElement.id = this.labelId;\n\t\t}\n\t}\n\n\tclearValue(event: Event): void {\n\t\tevent.stopPropagation();\n\t\tthis.updateValue(null, true);\n\t\tthis.inputElementRef.nativeElement.focus();\n\t}\n\n\topenPanel(clue: string = ''): void {\n\t\tif (this.isPanelOpen || this.disabled$.value) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.isPanelOpen$.next(true);\n\t\tthis.clueChanged(clue);\n\t\tthis._panelRef = this.buildPanelRef();\n\t\tthis.bindInputToPanelRefEvents();\n\t\tsetTimeout(() => this.focusInput());\n\t}\n\n\temitAddOption(): void {\n\t\tthis.addOption.emit(this.clue);\n\t\tthis.panelRef?.close();\n\t}\n\n\tprotected abstract buildPanelRef(): this['panelRef'];\n\n\tprotected bindInputToPanelRefEvents(): void {\n\t\tif (!this.panelRef) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.panelRef.valueChanged.subscribe((value) => this.updateValue(value));\n\n\t\tthis.#pageChanged(this.panelRef.nextPage).subscribe(() => this.nextPage.emit());\n\t\tthis.#pageChanged(this.panelRef.previousPage).subscribe(() => this.previousPage.emit());\n\n\t\tthis.panelRef.activeOptionIdChanged.subscribe((optionId) => {\n\t\t\tthis.activeDescendant$.next(optionId);\n\t\t\tthis.changeDetectorRef.markForCheck();\n\t\t});\n\t\tthis.panelRef.closed.subscribe(() => this.closePanel());\n\t}\n\n\tprotected focusInput(): void {\n\t\tif (this.inputElementRef) {\n\t\t\tthis.inputElementRef.nativeElement.focus();\n\t\t}\n\t}\n\n\tprotected emptyClue(): void {\n\t\tif (this.clue) {\n\t\t\tthis.clue = null;\n\t\t\tthis.changeDetectorRef.markForCheck();\n\t\t}\n\t}\n\n\tpublic closePanel(): void {\n\t\tif (!this.isPanelOpen) {\n\t\t\treturn;\n\t\t}\n\t\tthis.emptyClue();\n\t\tthis.activeDescendant$.next('');\n\t\tthis.changeDetectorRef.markForCheck();\n\t\tthis.onTouched?.();\n\t\tthis.isPanelOpen$.next(false);\n\t\tthis.panelRef.close();\n\t\tthis._panelRef = undefined;\n\t}\n\n\tpublic writeValue(value: TValue): void {\n\t\tthis.value = value;\n\t}\n\n\tpublic updateValue(value: TValue, skipPanelOpen = false, noClear = false): void {\n\t\tthis.value = value;\n\t\tif (!noClear) {\n\t\t\tthis.emptyClue();\n\t\t\tthis.clueChanged('', skipPanelOpen);\n\t\t}\n\t\tthis.onChange?.(value);\n\t\tthis.onTouched?.();\n\t}\n\n\t// Ensure nextPage/previousPage does not emit too often\n\t#pageChanged(pageEmitter: EventEmitter<void>): Observable<void> {\n\t\treturn this.options$.pipe(switchMap(() => pageEmitter.pipe(take(1))));\n\t}\n}\n","import { Overlay, OverlayContainer } from '@angular/cdk/overlay';\nimport { Platform } from '@angular/cdk/platform';\nimport { DOCUMENT } from '@angular/common';\nimport { ElementRef, Injectable, Provider, inject } from '@angular/core';\nimport { SELECT_ID, SELECT_LABEL, SELECT_LABEL_ID } from '../select.model';\n\nlet selectId = 0;\n\nfunction selectIdFactory(): number {\n\treturn selectId++;\n}\n\nfunction selectLabelFactory(): HTMLLabelElement | undefined {\n\tconst elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\tfunction getLabel(node: HTMLElement): HTMLLabelElement | undefined {\n\t\tif (node instanceof HTMLLabelElement) {\n\t\t\treturn node;\n\t\t}\n\n\t\tif (!node.parentElement) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn getLabel(node.parentElement);\n\t}\n\n\treturn getLabel(elementRef.nativeElement);\n}\n\nfunction selectLabelIdFactory(): string {\n\treturn inject(SELECT_LABEL)?.id || `lu-select-label-${inject(SELECT_ID)}`;\n}\n\nexport function provideLuSelectLabelsAndIds(): Provider[] {\n\treturn [\n\t\t{ provide: SELECT_ID, useFactory: selectIdFactory },\n\t\t{ provide: SELECT_LABEL, useFactory: selectLabelFactory },\n\t\t{ provide: SELECT_LABEL_ID, useFactory: selectLabelIdFactory },\n\t];\n}\n\n@Injectable()\nclass LuSelectOverlayContainer extends OverlayContainer {\n\tprivate selectLabelId = inject(SELECT_LABEL_ID);\n\tprivate selectId = inject(SELECT_ID);\n\n\tconstructor() {\n\t\tsuper(inject(DOCUMENT), inject(Platform));\n\t}\n\n\tprotected override _createContainer(): void {\n\t\tsuper._createContainer();\n\t\tthis._containerElement.setAttribute('aria-labelledby', this.selectLabelId);\n\t\tthis._containerElement.id = `lu-select-overlay-container-${this.selectId}`;\n\t}\n}\n\nexport function provideLuSelectOverlayContainer(): Provider[] {\n\treturn [\n\t\tOverlay,\n\t\t{\n\t\t\tprovide: OverlayContainer,\n\t\t\tuseClass: LuSelectOverlayContainer,\n\t\t},\n\t];\n}\n","import { Directive, forwardRef, input } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { CORE_SELECT_API_TOTAL_COUNT_PROVIDER, CoreSelectApiTotalCountProvider } from '../select.model';\n\n@Directive({\n\t// The attribute is already prefixed with \"lu-simple-select\"\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: 'lu-simple-select[totalCount],lu-multi-select[totalCount]',\n\tstandalone: true,\n\tproviders: [\n\t\t{\n\t\t\tprovide: CORE_SELECT_API_TOTAL_COUNT_PROVIDER,\n\t\t\tuseExisting: forwardRef(() => LuCoreSelectTotalCountDirective),\n\t\t},\n\t],\n})\nexport class LuCoreSelectTotalCountDirective implements CoreSelectApiTotalCountProvider {\n\ttotalCount = input.required<number>({ alias: 'totalCount' });\n\n\ttotalCount$ = toObservable(this.totalCount);\n}\n","import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { DestroyRef, EventEmitter, Injectable, QueryList, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Observable, asyncScheduler, debounceTime, filter, map, observeOn, take } from 'rxjs';\nimport { ɵLuOptionComponent } from '../option';\nimport { LuOptionComparer } from '../select.model';\n\ninterface CoreSelectKeyManagerOptions<T> {\n\tqueryList: QueryList<ɵLuOptionComponent<T>>;\n\toptions$: Observable<T[]>;\n\toptionComparer: LuOptionComparer<T>;\n\tactiveOptionIdChanged$: EventEmitter<string>;\n\tclueChange$: Observable<string>;\n}\n\n@Injectable()\nexport class CoreSelectKeyManager<T> {\n\t#destroyRef = inject(DestroyRef);\n\t#cdkKeyManager?: ActiveDescendantKeyManager<ɵLuOptionComponent<T>>;\n\t#hasSearchChanged = false;\n\t#options?: CoreSelectKeyManagerOptions<T>;\n\n\tinit(options: CoreSelectKeyManagerOptions<T>): void {\n\t\tthis.#options = options;\n\t\tthis.#cdkKeyManager = new ActiveDescendantKeyManager(options.queryList).withHomeAndEnd();\n\t\tthis.#bindClueChange(options.clueChange$);\n\t\tthis.#bindOptionsChange(options);\n\t\tthis.#bindActiveOptionIdChanged(options.activeOptionIdChanged$);\n\t\tthis.#cdkKeyManager.setFirstItemActive();\n\t}\n\n\tonKeydown(event: KeyboardEvent): void {\n\t\tthis.#cdkKeyManager?.onKeydown(event);\n\t}\n\n\tget activeItem(): ɵLuOptionComponent<T> | undefined {\n\t\treturn this.#cdkKeyManager?.activeItem;\n\t}\n\n\tget activeItemIndex(): number {\n\t\treturn this.#cdkKeyManager?.activeItemIndex ?? -1;\n\t}\n\n\tsetActiveItem(index: number): void {\n\t\tthis.#cdkKeyManager?.setActiveItem(index);\n\t}\n\n\thighlightOption(option: T): void {\n\t\tif (!this.#options) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { options$, optionComparer } = this.#options;\n\n\t\toptions$\n\t\t\t.pipe(\n\t\t\t\tobserveOn(asyncScheduler),\n\t\t\t\tmap((options) => options.findIndex((o) => optionComparer(o, option))),\n\t\t\t\tfilter((index) => index !== -1),\n\t\t\t\ttake(1),\n\t\t\t\ttakeUntilDestroyed(this.#destroyRef),\n\t\t\t)\n\t\t\t.subscribe((selectedIndex) => this.setActiveItem(selectedIndex));\n\t}\n\n\t#bindClueChange(clueChange$: Observable<string>): void {\n\t\tclueChange$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe(() => {\n\t\t\tthis.#hasSearchChanged = true;\n\t\t});\n\t}\n\n\t#bindActiveOptionIdChanged(activeOptionIdChanged$: EventEmitter<string>): void {\n\t\tthis.#cdkKeyManager.change\n\t\t\t.pipe(\n\t\t\t\tmap(() => this.#cdkKeyManager.activeItem?.id),\n\t\t\t\ttakeUntilDestroyed(this.#destroyRef),\n\t\t\t)\n\t\t\t.subscribe((activeDescendant) => activeOptionIdChanged$.emit(activeDescendant));\n\t}\n\n\t/**\n\t * Ensure always have the correct highlighted item:\n\t * \t- reset to null if no options\n\t * \t- set to first item if search has changed\n\t * \t- set to first item if no active item\n\t */\n\t#bindOptionsChange({ options$, queryList }: CoreSelectKeyManagerOptions<T>): void {\n\t\toptions$\n\t\t\t.pipe(\n\t\t\t\tdebounceTime(0), // Wait until QueryList is updated\n\t\t\t\ttakeUntilDestroyed(this.#destroyRef),\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tif (queryList.length === 0) {\n\t\t\t\t\tthis.#cdkKeyManager.setActiveItem(-1);\n\t\t\t\t} else if (this.#hasSearchChanged) {\n\t\t\t\t\tthis.#hasSearchChanged = false;\n\t\t\t\t\tthis.#cdkKeyManager.setFirstItemActive();\n\t\t\t\t} else if (!this.#cdkKeyManager.activeItem) {\n\t\t\t\t\tthis.#cdkKeyManager.setFirstItemActive();\n\t\t\t\t}\n\t\t\t});\n\t}\n}\n","import { Directive, TemplateRef, effect, inject, input, untracked } from '@angular/core';\nimport { ALuSelectInputComponent } from '../input';\n\n@Directive({\n\tselector: '[luSelectPanelHeader]',\n\tstandalone: true,\n})\nexport class LuCoreSelectPanelHeaderDirective {\n\treadonly templateRef = inject<TemplateRef<void>>(TemplateRef);\n\n\treadonly select = input.required<ALuSelectInputComponent<unknown, unknown>>({ alias: 'luSelectPanelHeader' });\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst select = this.select();\n\t\t\tuntracked(() => select.panelHeaderTpl.set(this.templateRef));\n\t\t});\n\t}\n\n\tpublic static ngTemplateContextGuard(_dir: LuCoreSelectPanelHeaderDirective, ctx: unknown): ctx is void {\n\t\treturn true;\n\t}\n}\n","import { EventEmitter } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nexport abstract class LuSelectPanelRef<TOption, TValue> {\n\tclosed = new EventEmitter<void>();\n\tpreviousPage = new EventEmitter<void>();\n\tnextPage = new EventEmitter<void>();\n\tvalueChanged = new EventEmitter<TValue>();\n\tclueChanged = new EventEmitter<string>();\n\tactiveOptionIdChanged = new EventEmitter<string>();\n\toptions$: Observable<TOption>;\n\n\tabstract updatePosition(): void;\n\n\tabstract handleKeyManagerEvent(event: KeyboardEvent): void;\n\n\tabstract emitValue(value: TValue): void;\n\n\tabstract selectCurrentlyHighlightedValue(): void;\n\n\tclose(): void {\n\t\tthis.closed.next();\n\t\tthis.closed.complete();\n\t\tthis.nextPage.complete();\n\t\tthis.previousPage.complete();\n\t\tthis.valueChanged.complete();\n\t\tthis.clueChanged.emit('');\n\t\tthis.clueChanged.complete();\n\t\tthis.activeOptionIdChanged.complete();\n\t}\n}\n","import { Observable, distinctUntilChanged, map, of, skip, startWith, switchMap, take } from 'rxjs';\n\nexport type GroupTemplateLocation = 'group-header' | 'option' | 'none';\n\n/**\n * In order to avoid a blinking when we go from empty clue to a clue\n * We need to delay the change of group displayer location by waiting for the options to be updated.\n */\nexport function getGroupTemplateLocation(hasGrouping: boolean, clueChange$: Observable<string>, options$: Observable<unknown[]>): Observable<GroupTemplateLocation> {\n\treturn hasGrouping\n\t\t? clueChange$.pipe(\n\t\t\t\tmap((clue) => !!clue),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\tswitchMap((hasClue) =>\n\t\t\t\t\toptions$.pipe(\n\t\t\t\t\t\tskip(1),\n\t\t\t\t\t\ttake(1),\n\t\t\t\t\t\tmap((): GroupTemplateLocation => (hasClue ? 'option' : 'group-header')),\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t\tstartWith('group-header' as const),\n\t\t\t)\n\t\t: of('none' as const);\n}\n","export const sanitizeClueFilter = (clue: string, delimiter: string): string =>\n\tclue\n\t\t.split(' ')\n\t\t.map((c: string) => encodeURIComponent(c))\n\t\t.join(delimiter);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ import { isSameDay, isSameMonth, isSameYear, startOfDay, startOfMonth, startOfYe
7
7
  import { getIntl, ɵeffectWithDeps as _effectWithDeps } from '@lucca-front/ng/core';
8
8
  import { LuTooltipTriggerDirective } from '@lucca-front/ng/tooltip';
9
9
  import { ConnectionPositionPair } from '@angular/cdk/overlay';
10
- import { NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';
10
+ import { Validators, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';
11
11
  import { InputDirective } from '@lucca-front/ng/form-field';
12
12
  import { IconComponent } from '@lucca-front/ng/icon';
13
13
  import { PopoverDirective } from '@lucca-front/ng/popover2';
@@ -567,8 +567,14 @@ class DateInputComponent {
567
567
  effect(() => {
568
568
  const inputValue = this.userTextInput();
569
569
  if (inputValue.length > 0) {
570
- const parsed = parse(inputValue, this.#dateFormat, startOfDay(new Date()));
571
- if (parsed.getFullYear() > 999) {
570
+ let parsed;
571
+ try {
572
+ parsed = parse(inputValue, this.#dateFormat, startOfDay(new Date()));
573
+ }
574
+ catch (error) {
575
+ /* not a correct date */
576
+ }
577
+ if (parsed instanceof Date && parsed.getFullYear() > 999) {
572
578
  this.selectedDate.set(startOfDay(parsed));
573
579
  this.currentDate.set(startOfDay(parsed));
574
580
  }
@@ -600,10 +606,23 @@ class DateInputComponent {
600
606
  });
601
607
  }
602
608
  validate(control) {
609
+ // null with a formControl required
610
+ if (!control.value && control.hasValidator(Validators.required)) {
611
+ return { date: true };
612
+ }
613
+ // try to parse the display value cause formControl.value is undefined if date is not parsable
614
+ try {
615
+ parse(this.displayValue(), this.#dateFormat, startOfDay(new Date()));
616
+ }
617
+ catch (error) {
618
+ /* not a correct date */
619
+ return { date: true };
620
+ }
621
+ // is form control value is a valid date
603
622
  return this.isValidDate(control.value) ? null : { date: true };
604
623
  }
605
624
  isValidDate(date) {
606
- return !!date && !isNaN(date.getTime());
625
+ return !date || !isNaN(date.getTime());
607
626
  }
608
627
  isInMinMax(date, mode) {
609
628
  let result = true;