@lucca-front/ng 22.0.0-rc.2 → 22.0.0-rc.3
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.
- package/fesm2022/lucca-front-ng-api.mjs +160 -85
- package/fesm2022/lucca-front-ng-api.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-clear.mjs +7 -6
- package/fesm2022/lucca-front-ng-clear.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core-select-api.mjs +37 -21
- package/fesm2022/lucca-front-ng-core-select-api.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core-select-user.mjs +2 -2
- package/fesm2022/lucca-front-ng-core-select-user.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core-select.mjs +229 -135
- package/fesm2022/lucca-front-ng-core-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core.mjs +1 -12
- package/fesm2022/lucca-front-ng-core.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-date.mjs +124 -100
- package/fesm2022/lucca-front-ng-date.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-date2.mjs +37 -25
- package/fesm2022/lucca-front-ng-date2.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-department.mjs +0 -2
- package/fesm2022/lucca-front-ng-department.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-divider.mjs +6 -4
- package/fesm2022/lucca-front-ng-divider.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-dropdown.mjs +34 -31
- package/fesm2022/lucca-front-ng-dropdown.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-establishment.mjs +83 -49
- package/fesm2022/lucca-front-ng-establishment.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-filter-pills.mjs +18 -8
- package/fesm2022/lucca-front-ng-filter-pills.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-form-field.mjs +10 -7
- package/fesm2022/lucca-front-ng-form-field.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-formly.mjs +2 -3
- package/fesm2022/lucca-front-ng-formly.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-forms.mjs +46 -5
- package/fesm2022/lucca-front-ng-forms.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-input.mjs +0 -1
- package/fesm2022/lucca-front-ng-input.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-modal.mjs +15 -11
- package/fesm2022/lucca-front-ng-modal.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-multi-select.mjs +115 -91
- package/fesm2022/lucca-front-ng-multi-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-number-format.mjs +11 -7
- package/fesm2022/lucca-front-ng-number-format.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-option.mjs +37 -30
- package/fesm2022/lucca-front-ng-option.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-popover.mjs +238 -123
- package/fesm2022/lucca-front-ng-popover.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-popover2.mjs +65 -37
- package/fesm2022/lucca-front-ng-popover2.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-select.mjs +123 -76
- package/fesm2022/lucca-front-ng-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-sidepanel.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-simple-select.mjs +13 -13
- package/fesm2022/lucca-front-ng-simple-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-time.mjs +8 -6
- package/fesm2022/lucca-front-ng-time.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-user-popover.mjs +13 -9
- package/fesm2022/lucca-front-ng-user-popover.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-user.mjs +93 -59
- package/fesm2022/lucca-front-ng-user.mjs.map +1 -1
- package/package.json +4 -4
- package/types/lucca-front-ng-api.d.ts +62 -62
- package/types/lucca-front-ng-clear.d.ts +2 -3
- package/types/lucca-front-ng-core-select-api.d.ts +22 -22
- package/types/lucca-front-ng-core-select.d.ts +139 -140
- package/types/lucca-front-ng-core.d.ts +2 -7
- package/types/lucca-front-ng-date.d.ts +26 -28
- package/types/lucca-front-ng-divider.d.ts +1 -1
- package/types/lucca-front-ng-dropdown.d.ts +4 -5
- package/types/lucca-front-ng-establishment.d.ts +19 -18
- package/types/lucca-front-ng-form-field.d.ts +3 -2
- package/types/lucca-front-ng-forms.d.ts +32 -12
- package/types/lucca-front-ng-modal.d.ts +2 -2
- package/types/lucca-front-ng-multi-select.d.ts +37 -36
- package/types/lucca-front-ng-option.d.ts +10 -10
- package/types/lucca-front-ng-popover.d.ts +46 -52
- package/types/lucca-front-ng-popover2.d.ts +11 -13
- package/types/lucca-front-ng-segmented-control.d.ts +4 -2
- package/types/lucca-front-ng-select.d.ts +28 -30
- package/types/lucca-front-ng-simple-select.d.ts +3 -3
- package/types/lucca-front-ng-time.d.ts +1 -1
- package/types/lucca-front-ng-user-popover.d.ts +3 -4
- package/types/lucca-front-ng-user.d.ts +20 -20
|
@@ -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/default-option.component.html","../../../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/panel/panel.instance.ts","../../../packages/ng/core-select/panel/selectable-item.ts","../../../packages/ng/core-select/select.model.ts","../../../packages/ng/core-select/option/translations.ts","../../../packages/ng/core-select/option/option.translate.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/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/input/tree-display.pipe.ts","../../../packages/ng/core-select/no-clue/no-clue.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/translations.ts","../../../packages/ng/core-select/select.translate.ts","../../../packages/ng/core-select/select.utils.ts","../../../packages/ng/core-select/option-selected.pipe.ts","../../../packages/ng/core-select/lucca-front-ng-core-select.ts"],"sourcesContent":["import { Directive, input, TemplateRef } from '@angular/core';\nimport { syncInputSignal } from '@lucca-front/ng/core';\nimport { ALuSelectInputComponent } from '../input';\nimport { LuOptionContext } from '../select.model';\n\n@Directive({\n\tselector: '[luDisplayer]',\n})\nexport class LuDisplayerDirective<TOption, TValue> {\n\treadonly select = input<ALuSelectInputComponent<TOption, TValue>>(undefined, { alias: 'luDisplayerSelect' });\n\n\tpublic constructor(private templateRef: TemplateRef<LuOptionContext<TOption>>) {\n\t\tsyncInputSignal(this.select, (select) => select.valueTpl.set(this.templateRef));\n\t}\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 } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { ILuOptionContext, LU_OPTION_CONTEXT } from './option.token';\n\n@Component({\n\tselector: 'lu-simple-select-default-option',\n\timports: [AsyncPipe],\n\ttemplateUrl: './default-option.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LuSimpleSelectDefaultOptionComponent {\n\tpublic context = inject<ILuOptionContext<{ name?: string }>>(LU_OPTION_CONTEXT);\n}\n","<!-- we don’t want space before comma in presentation display -->\n<!-- prettier-ignore -->\n@if (context.option$ | async; as option) {{{ option?.name ?? option }}}\n","import { Directive, inject, input } from '@angular/core';\nimport { syncInputSignal } from '@lucca-front/ng/core';\nimport { LU_OPTION_CONTEXT } from './option.token';\n\n@Directive({\n\tselector: '[luDisabledOption]',\n})\nexport class LuDisabledOptionDirective {\n\treadonly isDisabled = input<boolean>(undefined, { alias: 'luDisabledOption' });\n\n\tprivate context = inject(LU_OPTION_CONTEXT);\n\n\tconstructor() {\n\t\tsyncInputSignal(this.isDisabled, (disabled) => this.context.isDisabled$.next(disabled));\n\t}\n}\n","import { Directive, inject, input, TemplateRef } from '@angular/core';\nimport { ɵeffectWithDeps } from '@lucca-front/ng/core';\nimport type { ALuSelectInputComponent } from '../input';\nimport type { LuOptionGroupByContext } from '../select.model';\n\n@Directive({\n\tselector: '[luOptionGroup]',\n})\nexport class LuOptionGroupDirective<TOption, TValue, TGroup> {\n\treadonly select = input.required<ALuSelectInputComponent<TOption, TValue>>({ alias: 'luOptionGroupSelect' });\n\n\treadonly selector = input.required<(option: TOption) => TGroup>({ alias: 'luOptionGroupBy' });\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\tconstructor() {\n\t\tɵeffectWithDeps([this.select, this.selector], (select, selector) => {\n\t\t\tselect.groupingSignal.set({ selector, content: this.content });\n\t\t});\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> | undefined;\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})\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, OnDestroy, TemplateRef, Type, ViewContainerRef } from '@angular/core';\nimport { isNotNil, ɵeffectWithDeps } from '@lucca-front/ng/core';\nimport { LuOptionContext } from '../select.model';\nimport { LU_OPTION_CONTEXT, provideOptionContext } from './option.token';\n\nfunction hasRenderableValue<T>(value: T | undefined, showNull: boolean): value is T {\n\treturn showNull ? value !== undefined : isNotNil(value);\n}\n\n@Directive({\n\tselector: '[luOptionOutlet]',\n\tproviders: [provideOptionContext()],\n})\nexport class LuOptionOutletDirective<T> implements OnDestroy {\n\treadonly luOptionOutlet = input<Type<unknown> | TemplateRef<LuOptionContext<T>>>();\n\n\treadonly luOptionOutletValue = input<T | undefined>();\n\n\treadonly luOptionShowNull = input<boolean>(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\tconstructor() {\n\t\tlet previousOutlet: Type<unknown> | TemplateRef<LuOptionContext<T>> | undefined;\n\n\t\tɵeffectWithDeps([this.luOptionOutlet, this.luOptionOutletValue, this.luOptionShowNull], (outlet, value, showNull) => {\n\t\t\tconst outletChanged = outlet !== previousOutlet;\n\t\t\tpreviousOutlet = outlet;\n\n\t\t\tif (outletChanged || !hasRenderableValue(value, showNull)) {\n\t\t\t\tthis.clearContainer();\n\t\t\t}\n\n\t\t\tif (outlet && hasRenderableValue(value, showNull)) {\n\t\t\t\tif (!(this.embeddedViewRef || this.componentRef)) {\n\t\t\t\t\tif (outlet instanceof TemplateRef) {\n\t\t\t\t\t\tthis.embeddedViewRef = this.viewContainerRef.createEmbeddedView(outlet, { $implicit: value }, { injector: this.injector });\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.optionContext.option$.next(value);\n\t\t\t\t\t\tthis.componentRef = this.viewContainerRef.createComponent(outlet, { injector: this.injector });\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (this.embeddedViewRef) {\n\t\t\t\t\t\tthis.embeddedViewRef.context.$implicit = value;\n\t\t\t\t\t} else if (this.componentRef) {\n\t\t\t\t\t\tthis.optionContext.option$.next(value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\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\tpublic static ngTemplateContextGuard<T>(_dir: LuOptionOutletDirective<T>, _ctx: unknown): _ctx is void {\n\t\treturn true;\n\t}\n}\n","import { CoreSelectPanelElement } from './selectable-item';\nimport { InjectionToken, WritableSignal } from '@angular/core';\n\nexport interface CoreSelectPanelInstance<T = unknown> {\n\toptions: WritableSignal<CoreSelectPanelElement<T>[]>;\n}\n\nexport const SELECT_PANEL_INSTANCE = new InjectionToken<CoreSelectPanelInstance>('CoreSelect:PanelInstance');\n","import { Highlightable } from '@angular/cdk/a11y';\nimport { computed, Directive, ElementRef, inject, input, linkedSignal, model, OnDestroy, output, signal } from '@angular/core';\nimport { ALuSelectInputComponent } from '../input/select-input.component';\nimport { CoreSelectPanelInstance, SELECT_PANEL_INSTANCE } from './panel.instance';\n\n@Directive({\n\tselector: '[luCoreSelectPanelElement]',\n\texportAs: 'luCoreSelectPanelElement',\n\thost: {\n\t\t'[attr.id]': 'idAttribute()',\n\t\t'[attr.aria-selected]': 'isSelected()',\n\t\t'[class.is-highlighted]': 'isHighlighted()',\n\t\trole: 'option',\n\t},\n})\nexport class CoreSelectPanelElement<T> implements Highlightable, OnDestroy {\n\treadonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\treadonly #panelRef = inject<CoreSelectPanelInstance<T>>(SELECT_PANEL_INSTANCE);\n\n\treadonly #selectRef = inject<ALuSelectInputComponent<T, T>>(ALuSelectInputComponent);\n\n\treadonly id = signal<string>('');\n\n\treadonly elementId = input<string>('');\n\n\treadonly idAttribute = computed(() => this.id() || this.elementId());\n\n\treadonly isSelected = model(false);\n\n\treadonly option = input<T>();\n\n\treadonly disabledInput = input<boolean>(false, { alias: 'disabled' });\n\n\treadonly disabledRef = linkedSignal(() => this.disabledInput());\n\n\treadonly isHighlighted = signal(false);\n\n\tselected = output<void>();\n\n\tget disabled() {\n\t\treturn this.disabledRef();\n\t}\n\n\tset disabled(disabled: boolean) {\n\t\tthis.disabledRef.set(disabled);\n\t}\n\n\tconstructor() {\n\t\tthis.#panelRef.options.set([...this.#panelRef.options(), this]);\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.#panelRef.options.set(this.#panelRef.options().filter((opt) => opt !== this));\n\t}\n\n\tsetActiveStyles(): void {\n\t\tthis.isHighlighted.set(true);\n\t\tconst option = this.option();\n\t\tif (option !== undefined) {\n\t\t\tthis.#selectRef.highlightedOption.emit(option);\n\t\t}\n\t}\n\n\tsetInactiveStyles(): void {\n\t\tthis.isHighlighted.set(false);\n\t}\n}\n","import { Injectable, InjectionToken } from '@angular/core';\nimport { PortalContent } from '@lucca-front/ng/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 LuOptionGrouping<TOption, TGroup> {\n\tselector: (option: TOption) => TGroup;\n\tcontent: PortalContent<LuOptionGroupByContext<TOption, 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\n@Injectable({\n\tprovidedIn: 'root',\n\tuseFactory: () => new DefaultIsSelectedStrategy(),\n})\nexport abstract class ɵIsSelectedStrategy<TOption> {\n\tabstract isSelected(option: TOption, selectedOptions: TOption[], optionComparer: LuOptionComparer<TOption>): boolean;\n\tabstract isGroupSelected(options: TOption[], notSelectedOptions: TOption[]): boolean;\n}\n\nclass DefaultIsSelectedStrategy<TOption> extends ɵIsSelectedStrategy<TOption> {\n\tisSelected(option: TOption, selectedOptions: TOption[], optionComparer: LuOptionComparer<TOption>): boolean {\n\t\treturn selectedOptions.some((o) => optionComparer(o, option));\n\t}\n\n\tisGroupSelected(options: TOption[], notSelectedOptions: TOption[]): boolean {\n\t\treturn !notSelectedOptions.length && notSelectedOptions.length !== options.length;\n\t}\n}\n","export const Translations = {\n\tfr: {\n\t\tonlyParent: 'Seulement le parent (Ctrl + Entrée)',\n\t\tonlyChildren: 'Seulement les enfants (Shift + Entrée)',\n\t},\n\ten: {\n\t\tonlyParent: 'Only parent (Ctrl + Enter)',\n\t\tonlyChildren: 'Only children (Shift + Enter)',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_OPTION_TRANSLATIONS = new InjectionToken('LuOptionTranslations', {\n\tfactory: () => luOptionTranslations,\n});\n\nexport interface OptionTranslate {\n\tonlyParent: string;\n\tonlyChildren: string;\n}\n\nexport const luOptionTranslations: LuTranslation<OptionTranslate> = Translations;\n","import { booleanAttribute, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, inject, input, OnInit, output, TemplateRef, Type, viewChild } from '@angular/core';\nimport { intlInputOptions, isNil, PortalDirective, ɵeffectWithDeps } from '@lucca-front/ng/core';\nimport { LuTooltipTriggerDirective } from '@lucca-front/ng/tooltip';\nimport { asyncScheduler, observeOn } from 'rxjs';\nimport { GroupTemplateLocation } from '../panel/panel.utils';\nimport { CoreSelectPanelElement } from '../panel/selectable-item';\nimport { LuOptionContext, LuOptionGrouping, SELECT_ID } from '../select.model';\nimport { LuOptionGroupPipe } from './group.pipe';\nimport { LuOptionOutletDirective } from './option-outlet.directive';\nimport { LU_OPTION_CONTEXT } from './option.token';\nimport { LU_OPTION_TRANSLATIONS } from './option.translate';\n\nexport const MAGIC_OPTION_SCROLL_DELAY = 15;\n\n@Component({\n\tselector: 'lu-select-option',\n\ttemplateUrl: './option.component.html',\n\tstyleUrl: './option.component.scss',\n\thost: {\n\t\tclass: 'optionItem',\n\t},\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [LuOptionOutletDirective, PortalDirective, LuOptionGroupPipe, LuTooltipTriggerDirective],\n})\nexport class LuOptionComponent<T> implements OnInit {\n\tprotected selectableItem = inject(CoreSelectPanelElement);\n\treadonly intl = input(...intlInputOptions(LU_OPTION_TRANSLATIONS));\n\n\treadonly optionTpl = input<TemplateRef<LuOptionContext<T>> | Type<unknown>>();\n\n\treadonly option = input<T>();\n\n\treadonly grouping = input<LuOptionGrouping<T, unknown>>();\n\n\treadonly hasChildren = input(false, { transform: booleanAttribute });\n\n\treadonly onlyParent = output<void>();\n\n\treadonly onlyChildren = output<void>();\n\n\treadonly groupIndex = input<number>();\n\n\tpublic readonly optionIndex = input.required({ transform: (value: string | number) => `${value}` });\n\n\treadonly scrollIntoViewOptions = input<ScrollIntoViewOptions>({});\n\n\treadonly groupTemplateLocation = input<GroupTemplateLocation>();\n\n\treadonly optionContext = viewChild(LU_OPTION_CONTEXT);\n\n\tprivate cdr = inject(ChangeDetectorRef);\n\n\tget id(): string {\n\t\tconst groupPart = this.groupIndex() === undefined ? `` : `-group-${this.groupIndex()}`;\n\n\t\treturn `lu-select-${this.selectId}${groupPart}-option-${this.optionIndex()}`;\n\t}\n\n\tprotected elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\tprotected selectId = inject(SELECT_ID);\n\n\tconstructor() {\n\t\tɵeffectWithDeps([this.selectableItem.isHighlighted], (isHighlighted) => {\n\t\t\tif (isHighlighted) {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.elementRef.nativeElement.scrollIntoView(this.scrollIntoViewOptions());\n\t\t\t\t}, MAGIC_OPTION_SCROLL_DELAY);\n\t\t\t}\n\t\t});\n\n\t\tɵeffectWithDeps([this.optionContext], (optionContext, onCleanup) => {\n\t\t\tif (isNil(optionContext)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst subscription = optionContext.isDisabled$.pipe(observeOn(asyncScheduler)).subscribe((isDisabled) => {\n\t\t\t\tthis.selectableItem.disabled = isDisabled;\n\t\t\t\tthis.cdr.markForCheck();\n\t\t\t});\n\t\t\tonCleanup(() => subscription.unsubscribe());\n\t\t});\n\t}\n\n\tngOnInit(): void {\n\t\tthis.selectableItem.id.set(this.id);\n\t}\n\n\tselectOption($event: Event): void {\n\t\tif (this.selectableItem.disabled) {\n\t\t\t$event.stopPropagation();\n\t\t}\n\t}\n}\n","<div class=\"optionItem-value\" [class.is-disabled]=\"selectableItem.disabled\" (click)=\"selectOption($event)\">\n\t<ng-container *luOptionOutlet=\"optionTpl(); value: selectableItem.option()\" />\n\n\t@if (groupTemplateLocation() === \"option\") {\n\t\t@if (grouping(); as grouping) {\n\t\t\t<div class=\"optionItem-value-group\">\n\t\t\t\t<ng-container *luPortal=\"grouping.content; context: { $implicit: selectableItem.option() | luOptionGroup: grouping.selector }\" />\n\t\t\t</div>\n\t\t}\n\t}\n\n\t@if (hasChildren() && !selectableItem.disabled) {\n\t\t<div class=\"optionItem-icons\">\n\t\t\t<span\n\t\t\t\tclass=\"optionItem-icon parentOnly\"\n\t\t\t\t(click)=\"$event.stopPropagation(); onlyParent.emit()\"\n\t\t\t\t[luTooltip]=\"intl().onlyParent\"\n\t\t\t\tluTooltipOnlyForDisplay\n\t\t\t>\n\t\t\t\t<svg class=\"optionItem-icon-shape\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" focusable=\"false\">\n\t\t\t\t\t<path\n\t\t\t\t\t\topacity=\"0.2\"\n\t\t\t\t\t\td=\"M8 13C8.55 13 9 12.55 9 12C9 11.45 8.55 11 8 11C7.45 11 7 11.45 7 12C7 12.55 7.45 13 8 13ZM8 18C8.55 18 9 17.55 9 17C9 16.45 8.55 16 8 16C7.45 16 7 16.45 7 17C7 17.55 7.45 18 8 18ZM12 13H20C20.55 13 21 12.55 21 12C21 11.45 20.55 11 20 11H12C11.45 11 11 11.45 11 12C11 12.55 11.45 13 12 13ZM12 18H20C20.55 18 21 17.55 21 17C21 16.45 20.55 16 20 16H12C11.45 16 11 16.45 11 17C11 17.55 11.45 18 12 18ZM8 13C8.55 13 9 12.55 9 12C9 11.45 8.55 11 8 11C7.45 11 7 11.45 7 12C7 12.55 7.45 13 8 13ZM8 18C8.55 18 9 17.55 9 17C9 16.45 8.55 16 8 16C7.45 16 7 16.45 7 17C7 17.55 7.45 18 8 18ZM12 13H20C20.55 13 21 12.55 21 12C21 11.45 20.55 11 20 11H12C11.45 11 11 11.45 11 12C11 12.55 11.45 13 12 13ZM12 18H20C20.55 18 21 17.55 21 17C21 16.45 20.55 16 20 16H12C11.45 16 11 16.45 11 17C11 17.55 11.45 18 12 18Z\"\n\t\t\t\t\t/>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M4 8C4.55 8 5 7.55 5 7C5 6.45 4.55 6 4 6C3.45 6 3 6.45 3 7C3 7.55 3.45 8 4 8ZM7 7C7 7.55 7.45 8 8 8H20C20.55 8 21 7.55 21 7C21 6.45 20.55 6 20 6H8C7.45 6 7 6.45 7 7ZM4 8C4.55 8 5 7.55 5 7C5 6.45 4.55 6 4 6C3.45 6 3 6.45 3 7C3 7.55 3.45 8 4 8ZM7 7C7 7.55 7.45 8 8 8H20C20.55 8 21 7.55 21 7C21 6.45 20.55 6 20 6H8C7.45 6 7 6.45 7 7Z\"\n\t\t\t\t\t/>\n\t\t\t\t</svg>\n\t\t\t\t<span class=\"pr-u-mask\">{{ intl().onlyParent }}</span>\n\t\t\t</span>\n\t\t\t<span\n\t\t\t\tclass=\"optionItem-icon childrenOnly\"\n\t\t\t\t(click)=\"$event.stopPropagation(); onlyChildren.emit()\"\n\t\t\t\t[luTooltip]=\"intl().onlyChildren\"\n\t\t\t\tluTooltipOnlyForDisplay\n\t\t\t>\n\t\t\t\t<svg class=\"optionItem-icon-shape\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" focusable=\"false\">\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M8 13C8.55 13 9 12.55 9 12C9 11.45 8.55 11 8 11C7.45 11 7 11.45 7 12C7 12.55 7.45 13 8 13ZM8 18C8.55 18 9 17.55 9 17C9 16.45 8.55 16 8 16C7.45 16 7 16.45 7 17C7 17.55 7.45 18 8 18ZM12 13H20C20.55 13 21 12.55 21 12C21 11.45 20.55 11 20 11H12C11.45 11 11 11.45 11 12C11 12.55 11.45 13 12 13ZM12 18H20C20.55 18 21 17.55 21 17C21 16.45 20.55 16 20 16H12C11.45 16 11 16.45 11 17C11 17.55 11.45 18 12 18ZM8 13C8.55 13 9 12.55 9 12C9 11.45 8.55 11 8 11C7.45 11 7 11.45 7 12C7 12.55 7.45 13 8 13ZM8 18C8.55 18 9 17.55 9 17C9 16.45 8.55 16 8 16C7.45 16 7 16.45 7 17C7 17.55 7.45 18 8 18ZM12 13H20C20.55 13 21 12.55 21 12C21 11.45 20.55 11 20 11H12C11.45 11 11 11.45 11 12C11 12.55 11.45 13 12 13ZM12 18H20C20.55 18 21 17.55 21 17C21 16.45 20.55 16 20 16H12C11.45 16 11 16.45 11 17C11 17.55 11.45 18 12 18Z\"\n\t\t\t\t\t/>\n\t\t\t\t\t<path\n\t\t\t\t\t\topacity=\"0.2\"\n\t\t\t\t\t\td=\"M4 8C4.55 8 5 7.55 5 7C5 6.45 4.55 6 4 6C3.45 6 3 6.45 3 7C3 7.55 3.45 8 4 8ZM7 7C7 7.55 7.45 8 8 8H20C20.55 8 21 7.55 21 7C21 6.45 20.55 6 20 6H8C7.45 6 7 6.45 7 7ZM4 8C4.55 8 5 7.55 5 7C5 6.45 4.55 6 4 6C3.45 6 3 6.45 3 7C3 7.55 3.45 8 4 8ZM7 7C7 7.55 7.45 8 8 8H20C20.55 8 21 7.55 21 7C21 6.45 20.55 6 20 6H8C7.45 6 7 6.45 7 7Z\"\n\t\t\t\t\t/>\n\t\t\t\t</svg>\n\t\t\t\t<span class=\"pr-u-mask\">{{ intl().onlyChildren }}</span>\n\t\t\t</span>\n\t\t</div>\n\t}\n</div>\n","import { Directive, input, TemplateRef } from '@angular/core';\nimport { ɵeffectWithDeps } from '@lucca-front/ng/core';\nimport type { ALuSelectInputComponent } from '../input';\nimport type { LuOptionContext } from '../select.model';\n\n@Directive({\n\tselector: '[luOption]',\n})\nexport class LuOptionDirective<TOption, TValue> {\n\treadonly select = input<ALuSelectInputComponent<TOption, TValue>>(undefined, { alias: 'luOptionSelect' });\n\n\tpublic constructor(private templateRef: TemplateRef<LuOptionContext<TOption>>) {\n\t\tɵeffectWithDeps([this.select], (select) => select?.optionTpl.set(this.templateRef));\n\t}\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","import { OverlayConfig, OverlayContainer } from '@angular/cdk/overlay';\nimport {\n\tbooleanAttribute,\n\tChangeDetectorRef,\n\tcomputed,\n\tDirective,\n\tElementRef,\n\tEventEmitter,\n\tinject,\n\tinput,\n\tlinkedSignal,\n\tmodel,\n\tOnDestroy,\n\tOnInit,\n\toutput,\n\tSignal,\n\tsignal,\n\tTemplateRef,\n\tType,\n\tviewChild,\n} from '@angular/core';\nimport { outputFromObservable, toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { isNotNil, PortalContent, ɵeffectWithDeps } from '@lucca-front/ng/core';\nimport { FILTER_PILL_HOST_COMPONENT, FILTER_PILL_INPUT_COMPONENT, FilterPillInputComponent } from '@lucca-front/ng/filter-pills';\nimport { BehaviorSubject, defer, map, Observable, of, ReplaySubject, startWith, Subject, switchMap, take } from 'rxjs';\nimport { LuSimpleSelectDefaultOptionComponent } from '../option';\nimport { LuSelectPanelRef } from '../panel';\nimport { CoreSelectAddOptionStrategy, LuOptionComparer, LuOptionContext, LuOptionGrouping, SELECT_LABEL, SELECT_LABEL_ID } from '../select.model';\nimport { LuCoreSelectLabel } from '../select.translate';\nimport { TreeNode } from './model';\nimport { TreeGenerator } from './tree-generator';\n\nexport const coreSelectDefaultOptionComparer: LuOptionComparer<unknown> = (option1, option2) => JSON.stringify(option1) === JSON.stringify(option2);\nexport const coreSelectDefaultOptionKey: (option: unknown) => unknown = (option) => option;\n\n@Directive({\n\thost: {\n\t\t'[class.colorPicker]': 'colorPicker()',\n\t\t'[class.mod-compact]': 'compact()',\n\t\t'[class.is-clearable]': 'isClearable()',\n\t\t'[class.is-selected]': 'isSelectedClass',\n\t\t'[class.is-searchFilled]': 'isSearchFilledClass',\n\t\t'[class.mod-noClueIcon]': 'isNoClueIconClass',\n\t\t'(click)': 'onClickOpenPanel($event)',\n\t\t'(keydown)': 'onKeyDownNavigation($event)',\n\t},\n})\nexport abstract class ALuSelectInputComponent<TOption, TValue> implements OnDestroy, OnInit, ControlValueAccessor, FilterPillInputComponent {\n\tpublic parentInput = inject(FILTER_PILL_INPUT_COMPONENT, { optional: true, skipSelf: true });\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 abstract intl: Signal<LuCoreSelectLabel>;\n\n\tprotected filterPillHost = inject(FILTER_PILL_HOST_COMPONENT, { optional: true });\n\tprotected afterCloseFn?: () => void;\n\tprotected updatePositionFn?: () => void;\n\tprotected filterPillMode = false;\n\n\tpublic readonly ignorePresentation = input(false, { transform: booleanAttribute });\n\n\tpublic selectParent$?: Subject<void>;\n\tpublic selectChildren$?: Subject<void>;\n\n\tpublic readonly panelClosed = output<void>();\n\tpublic readonly panelOpened = output<void>();\n\n\tpublic readonly highlightedOption = output<TOption>();\n\n\tprivate readonly inputElementRef = viewChild<ElementRef<HTMLInputElement>>('inputElement');\n\n\treadonly disabled$ = new BehaviorSubject(false);\n\treadonly filterPillDisabled = toSignal(this.disabled$, { initialValue: false });\n\n\treadonly prefix = input<PortalContent | null>(null);\n\n\treadonly placeholder = input<string>();\n\n\treadonly clearableInput = input(false, { transform: booleanAttribute, alias: 'clearable' });\n\n\treadonly isClearable = computed(() => this.clearableInput() ?? this.#defaultFilterPillClearable() ?? this.#defaultClearable);\n\treadonly #defaultFilterPillClearable = signal<boolean | null>(null);\n\t#defaultClearable = false;\n\n\tget searchable(): boolean {\n\t\treturn this.clueChange$.observed;\n\t}\n\n\tprotected readonly computedAddOptionLabel = computed(() => this.addOptionLabelInput() ?? this.intl().addOption);\n\n\treadonly addOptionLabelInput = input<PortalContent | null>(null, { alias: 'addOptionLabel' });\n\n\tget addOptionLabel(): PortalContent {\n\t\treturn this.computedAddOptionLabel();\n\t}\n\n\treadonly addOptionStrategy = input<CoreSelectAddOptionStrategy>('never');\n\n\tprotected get isSelectedClass(): boolean {\n\t\treturn this.hasValue();\n\t}\n\n\tprotected get isSearchFilledClass(): boolean {\n\t\treturn (this.clue?.length ?? 0) > 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\treadonly isPanelOpen$ = new BehaviorSubject(false);\n\n\treadonly activeDescendant$ = new BehaviorSubject('');\n\n\tget ariaControls(): string {\n\t\treturn this.overlayContainerRef.id;\n\t}\n\n\treadonly overlayConfig = input<OverlayConfig>({ hasBackdrop: true, backdropClass: 'cdk-overlay-transparent-backdrop' });\n\n\treadonly loadingInput = input<boolean>(false, { alias: 'loading' });\n\n\treadonly optionsInput = input<TOption[] | null>(null, { alias: 'options' });\n\n\treadonly optionComparerInput = input<LuOptionComparer<TOption>>(coreSelectDefaultOptionComparer, { alias: 'optionComparer' });\n\n\treadonly optionKeyInput = input<(option: TOption) => unknown>(coreSelectDefaultOptionKey, { alias: 'optionKey' });\n\n\treadonly noClueIcon = input(false, { transform: booleanAttribute });\n\n\treadonly inputTabindex = input<number>(0);\n\n\treadonly compact = input(false, { transform: booleanAttribute });\n\n\treadonly colorPicker = input(false, { transform: booleanAttribute });\n\n\tprotected get isNoClueIconClass(): boolean {\n\t\treturn this.noClueIcon();\n\t}\n\n\treadonly options = linkedSignal(() => this.optionsInput());\n\treadonly loading = linkedSignal(() => this.loadingInput());\n\treadonly clearable = linkedSignal(() => this.clearableInput());\n\treadonly optionComparer = linkedSignal(() => this.optionComparerInput());\n\treadonly optionKey = linkedSignal(() => this.optionKeyInput());\n\n\treadonly optionTpl = model<TemplateRef<LuOptionContext<TOption>> | Type<unknown>>(LuSimpleSelectDefaultOptionComponent);\n\treadonly valueTpl = model<TemplateRef<LuOptionContext<TOption>> | Type<unknown> | undefined>();\n\treadonly panelHeaderTpl = model<TemplateRef<void> | Type<unknown> | undefined>();\n\treadonly panelFooterTpl = model<TemplateRef<void> | Type<unknown> | undefined>();\n\n\treadonly displayerTpl = computed(() => this.valueTpl() || this.optionTpl());\n\n\treadonly groupingSignal = signal<LuOptionGrouping<TOption, unknown> | undefined>(undefined);\n\n\t/**\n\t * @deprecated use groupingSignal\n\t */\n\tget grouping() {\n\t\treturn this.groupingSignal();\n\t}\n\t/**\n\t * @deprecated use groupingSignal\n\t */\n\tset grouping(grouping: LuOptionGrouping<TOption, unknown> | undefined) {\n\t\tthis.groupingSignal.set(grouping);\n\t}\n\n\ttreeGenerator?: TreeGenerator<TOption, TreeNode<TOption>>;\n\n\treadonly clueChange$ = new Subject<string>();\n\tclueChange = outputFromObservable(this.clueChange$);\n\treadonly nextPage$ = new Subject<void>();\n\tnextPage = outputFromObservable(this.nextPage$);\n\treadonly previousPage = output<void>();\n\treadonly addOption = output<string>();\n\n\tpublic readonly valueSignal = signal<TValue | null>(null);\n\treadonly isFilterPillEmpty = computed(() => this.valueSignal() === null);\n\treadonly isFilterPillClearable = computed(() => this.isClearable());\n\n\tpublic get value(): TValue | null {\n\t\treturn this._value;\n\t}\n\n\tprotected set value(value: TValue | null) {\n\t\t// TODO remove once migrated to signal, but there's an override\n\t\tthis._value = value;\n\t\tthis.valueSignal.set(value);\n\t\tthis.changeDetectorRef.markForCheck();\n\t}\n\n\tpublic get inputPlaceholder(): string | null | undefined {\n\t\treturn this.value ? null : this.placeholder();\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$.next(clue);\n\t\t\tthis.lastEmittedClue = clue;\n\t\t}\n\t}\n\n\tprotected _value: TValue | null = null;\n\n\treadonly options$ = new ReplaySubject<readonly TOption[]>(1);\n\treadonly loading$ = toObservable(this.loading);\n\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\treadonly clue$ = defer(() => this.clueChange$.pipe(startWith(this.clue)));\n\n\tshouldDisplayAddOption$ = toObservable(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 readonly destroyed$ = new Subject<void>();\n\n\tconstructor() {\n\t\tif (this.filterPillHost) {\n\t\t\tthis.filterPillHost.registerInput(this);\n\t\t}\n\n\t\tɵeffectWithDeps([this.options], (options) => {\n\t\t\tif (isNotNil(options)) {\n\t\t\t\tthis.options$.next(options);\n\t\t\t\tif (this.panelRef) {\n\t\t\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\t\t// which is before the panel size has been modified by the arrival of the new options\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tthis.panelRef?.updatePosition();\n\t\t\t\t\t\tthis.updatePositionFn?.();\n\t\t\t\t\t\t// If no fixes are found, last resort fix is here\n\t\t\t\t\t\t// window.dispatchEvent(new Event('resize'));\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tonClickOpenPanel($event: Event) {\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\tonKeyDownNavigation(event: Event): void {\n\t\tconst $event = event as KeyboardEvent;\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\t// If we are in a filterpill, this will close it on tab press, but we want it to not lose any\n\t\t\t\t// displayed stuff and properly close on focus exit\n\t\t\t\tthis.panelRef?.close();\n\t\t\t\tbreak;\n\t\t\tcase 'Enter':\n\t\t\t\tif ($event.ctrlKey || $event.shiftKey) {\n\t\t\t\t\treturn;\n\t\t\t\t}\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 | null) => 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\tif (event) {\n\t\t\tevent.stopPropagation();\n\t\t}\n\t\tthis.updateValue(null, true);\n\t\tthis.inputElementRef()?.nativeElement.focus();\n\t}\n\n\topenPanel(clue: string = ''): void {\n\t\tif (this.filterPillMode || this.isPanelOpen || this.disabled$.value) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.focusInput();\n\n\t\t/**\n\t\t * I know what you're thinking, but let me explain:\n\t\t *\n\t\t * When setting isPanelOpen$'s internal value to true and then calling clueChanged,\n\t\t * it creates a race condition which calls this method again from inside clueChanged's code before\n\t\t * the change is applied inside the Subject, meaning this is called twice and we get a double tap.\n\t\t *\n\t\t * The only easy solution is this (or store yet another boolean like \"isOpeningPanel\" which is, imo, equally ugly.\n\t\t */\n\t\tsetTimeout(() => {\n\t\t\tif (this.isPanelOpen) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.isPanelOpen$.next(true);\n\t\t\tthis.panelOpened.emit();\n\n\t\t\tif (this.searchable) {\n\t\t\t\tthis.clueChanged(clue);\n\t\t\t}\n\n\t\t\tthis._panelRef = this.buildPanelRef();\n\t\t\tthis.bindInputToPanelRefEvents();\n\t\t});\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$.next());\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\tfocusInput(): 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.panelClosed.emit();\n\t\tthis.emptyClue();\n\t\tthis.activeDescendant$.next('');\n\t\tthis.changeDetectorRef.markForCheck();\n\t\tthis.onTouched?.();\n\t\tif (!this.filterPillMode) {\n\t\t\tthis.isPanelOpen$.next(false);\n\t\t\tthis.panelRef?.close();\n\t\t\tthis._panelRef = undefined;\n\t\t\tthis.focusInput();\n\t\t}\n\t\tthis.afterCloseFn?.();\n\t}\n\n\tpublic writeValue(value: TValue | null): void {\n\t\tthis.value = value;\n\t}\n\n\tpublic updateValue(value: TValue | null, 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\t// Filter pill interface\n\tclearFilterPillValue(): void {\n\t\tthis.clearValue();\n\t}\n\n\tregisterFilterPillClosePopover(closeFn: () => void): void {\n\t\tthis.afterCloseFn = closeFn;\n\t}\n\n\tregisterFilterPillUpdatePosition(updatePositionFn: () => void): void {\n\t\tthis.updatePositionFn = updatePositionFn;\n\t}\n\n\tenableFilterPillMode() {\n\t\tthis.filterPillMode = true;\n\t\tthis.#defaultFilterPillClearable.set(true);\n\t\tthis._panelRef?.closed.subscribe(this.afterCloseFn);\n\t\tthis.bindInputToPanelRefEvents();\n\t}\n\n\tonFilterPillOpened(): void {\n\t\tthis.isPanelOpen$.next(true);\n\t}\n\n\tonFilterPillClosed(): void {\n\t\tthis.isPanelOpen$.next(false);\n\t}\n}\n","import { OverlayRef } from '@angular/cdk/overlay';\nimport { ElementRef, 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\nexport function addAttributesOnCdkContainer(overlayRef: OverlayRef, selectLabelId: string, selectId: number) {\n\tconst potentialCdkOverlayContainer = overlayRef?.overlayElement?.parentElement?.parentElement;\n\tif (potentialCdkOverlayContainer && potentialCdkOverlayContainer.className.includes('cdk-overlay-container')) {\n\t\tpotentialCdkOverlayContainer.setAttribute('aria-labelledby', selectLabelId);\n\t\tpotentialCdkOverlayContainer.id = `lu-select-overlay-container-${selectId}`;\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\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\treadonly totalCount = input.required<number>({ alias: 'totalCount' });\n\n\treadonly totalCount$ = toObservable(this.totalCount);\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TreeGenerator } from './tree-generator';\nimport { TreeNode } from './model';\n\n@Pipe({\n\tname: 'luTreeDisplay',\n\tpure: true,\n})\nexport class TreeDisplayPipe<T> implements PipeTransform {\n\ttransform(items: T[], treeGenerator: TreeGenerator<T, TreeNode<T>>): TreeNode<T>[] {\n\t\treturn treeGenerator.generateTrees(items);\n\t}\n}\n","import { Directive, inject } from '@angular/core';\nimport { ALuSelectInputComponent } from '../input/index';\n\n@Directive({\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: 'lu-simple-select[noClue],lu-multi-select[noClue]',\n})\nexport class LuCoreSelectNoClueDirective {\n\tconstructor() {\n\t\tinject(ALuSelectInputComponent).clueChange$.complete();\n\t}\n}\n","import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { computed, DestroyRef, EventEmitter, inject, Injectable, Injector, Signal } from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { isNotNil } from '@lucca-front/ng/core';\nimport { asyncScheduler, debounceTime, filter, map, Observable, observeOn, take } from 'rxjs';\nimport { LuOptionComparer } from '../select.model';\nimport { CoreSelectPanelElement } from './selectable-item';\n\ninterface CoreSelectKeyManagerOptions<T> {\n\tqueryList: Signal<readonly CoreSelectPanelElement<T>[]>;\n\toptions$: Observable<readonly 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<CoreSelectPanelElement<T>>;\n\t#hasSearchChanged = false;\n\t#options?: CoreSelectKeyManagerOptions<T>;\n\t#injector = inject(Injector);\n\n\t// eslint-disable-next-line @angular-eslint/prefer-signals\n\t#queryList: Signal<CoreSelectPanelElement<T>[]>;\n\t#queryList$: Observable<CoreSelectPanelElement<T>[]>;\n\n\tinit(options: CoreSelectKeyManagerOptions<T>): void {\n\t\tthis.#options = options;\n\t\tthis.#queryList = computed(() => {\n\t\t\treturn [...options.queryList()].sort((a, b) => {\n\t\t\t\tconst comparison = a.elementRef.nativeElement.compareDocumentPosition(b.elementRef.nativeElement);\n\t\t\t\tif (comparison & Node.DOCUMENT_POSITION_FOLLOWING) {\n\t\t\t\t\treturn -1;\n\t\t\t\t}\n\t\t\t\tif (comparison & Node.DOCUMENT_POSITION_PRECEDING) {\n\t\t\t\t\treturn 1;\n\t\t\t\t}\n\t\t\t\treturn 0;\n\t\t\t});\n\t\t});\n\t\tthis.#queryList$ = toObservable(this.#queryList, { injector: this.#injector });\n\t\tthis.#cdkKeyManager = new ActiveDescendantKeyManager(this.#queryList, this.#injector).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(): CoreSelectPanelElement<T> | undefined {\n\t\treturn this.#cdkKeyManager?.activeItem ?? undefined;\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 { optionComparer } = this.#options;\n\n\t\tthis.#queryList$\n\t\t\t.pipe(\n\t\t\t\tobserveOn(asyncScheduler),\n\t\t\t\tmap((options) =>\n\t\t\t\t\toptions.findIndex((el) => {\n\t\t\t\t\t\tconst elOption = el.option();\n\t\t\t\t\t\treturn isNotNil(elOption) && optionComparer(elOption, option);\n\t\t\t\t\t}),\n\t\t\t\t),\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\tconst keyManager = this.#cdkKeyManager;\n\t\tif (!keyManager) {\n\t\t\treturn;\n\t\t}\n\n\t\tkeyManager.change\n\t\t\t.pipe(\n\t\t\t\tmap(() => keyManager.activeItem?.idAttribute() ?? ''),\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$ }: CoreSelectKeyManagerOptions<T>): void {\n\t\tconst keyManager = this.#cdkKeyManager;\n\t\tif (!keyManager) {\n\t\t\treturn;\n\t\t}\n\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 (this.#queryList().length === 0) {\n\t\t\t\t\tkeyManager.setActiveItem(-1);\n\t\t\t\t} else if (this.#hasSearchChanged) {\n\t\t\t\t\tthis.#hasSearchChanged = false;\n\t\t\t\t\tkeyManager.setFirstItemActive();\n\t\t\t\t} else if (!keyManager.activeItem) {\n\t\t\t\t\tkeyManager.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})\nexport class LuCoreSelectPanelHeaderDirective {\n\treadonly templateRef = inject<TemplateRef<void>>(TemplateRef);\n\n\treadonly select = input.required<ALuSelectInputComponent<unknown, unknown> | 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(\n\thasGrouping$: Observable<boolean>,\n\tclueChange$: Observable<string>,\n\toptions$: Observable<readonly unknown[]>,\n\tsearchable = true,\n): Observable<GroupTemplateLocation> {\n\treturn hasGrouping$.pipe(\n\t\tswitchMap((hasGrouping) => {\n\t\t\tif (!hasGrouping) {\n\t\t\t\treturn of<GroupTemplateLocation>('none');\n\t\t\t}\n\n\t\t\tconst getGroupTemplateLocation$ = (hasClue: boolean) =>\n\t\t\t\toptions$.pipe(\n\t\t\t\t\tskip(1),\n\t\t\t\t\ttake(1),\n\t\t\t\t\tmap((): GroupTemplateLocation => (hasClue ? 'option' : 'group-header')),\n\t\t\t\t\tstartWith('group-header' as const satisfies GroupTemplateLocation),\n\t\t\t\t);\n\t\t\treturn searchable\n\t\t\t\t? clueChange$.pipe(\n\t\t\t\t\t\tmap((clue) => !!clue),\n\t\t\t\t\t\tdistinctUntilChanged(),\n\t\t\t\t\t\tswitchMap(getGroupTemplateLocation$),\n\t\t\t\t\t)\n\t\t\t\t: getGroupTemplateLocation$(false);\n\t\t}),\n\t);\n}\n","export const Translations = {\n\t'nl-BE': {\n\t\taddOption: 'Een optie toevoegen',\n\t},\n\tnl: {\n\t\taddOption: 'Een optie toevoegen',\n\t},\n\tit: {\n\t\taddOption: 'Aggiungere un’opzione',\n\t},\n\tfr: {\n\t\taddOption: 'Ajouter une option',\n\t},\n\tpt: {\n\t\taddOption: 'Adicionar opção',\n\t},\n\tes: {\n\t\taddOption: 'Añadir una opción',\n\t},\n\tde: {\n\t\taddOption: 'Option hinzufügen',\n\t},\n\ten: {\n\t\taddOption: 'Add option',\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","export const applySearchDelimiter = (clue: string, delimiter: string): string => clue.split(' ').join(delimiter);\n","import { Pipe, PipeTransform, inject } from '@angular/core';\nimport { LuOptionComparer, ɵIsSelectedStrategy } from './select.model';\n\n@Pipe({\n\tname: 'luIsOptionSelected',\n})\nexport class LuIsOptionSelectedPipe<T> implements PipeTransform {\n\t#selectionStrategy = inject<ɵIsSelectedStrategy<T>>(ɵIsSelectedStrategy);\n\n\ttransform(option: T, comparer: LuOptionComparer<T>, selectedOptions: T[]): boolean {\n\t\treturn this.#selectionStrategy.isSelected(option, selectedOptions, comparer);\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ɵeffectWithDeps","Translations"],"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/default-option.component.html","../../../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/panel/panel.instance.ts","../../../packages/ng/core-select/panel/selectable-item.ts","../../../packages/ng/core-select/select.model.ts","../../../packages/ng/core-select/option/translations.ts","../../../packages/ng/core-select/option/option.translate.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/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/input/tree-display.pipe.ts","../../../packages/ng/core-select/no-clue/no-clue.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/translations.ts","../../../packages/ng/core-select/select.translate.ts","../../../packages/ng/core-select/select.utils.ts","../../../packages/ng/core-select/option-selected.pipe.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})\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 } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { ILuOptionContext, LU_OPTION_CONTEXT } from './option.token';\n\n@Component({\n\tselector: 'lu-simple-select-default-option',\n\timports: [AsyncPipe],\n\ttemplateUrl: './default-option.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LuSimpleSelectDefaultOptionComponent {\n\tpublic context = inject<ILuOptionContext<{ name?: string }>>(LU_OPTION_CONTEXT);\n}\n","<!-- we don’t want space before comma in presentation display -->\n<!-- prettier-ignore -->\n@if (context.option$ | async; as option) {{{ option?.name ?? option }}}\n","import { Directive, inject, Input } from '@angular/core';\nimport { LU_OPTION_CONTEXT } from './option.token';\n\n@Directive({\n\tselector: '[luDisabledOption]',\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})\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.groupingSignal.set(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> | undefined;\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})\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 { isNotNil } from '@lucca-front/ng/core';\nimport { LuOptionContext } from '../select.model';\nimport { LU_OPTION_CONTEXT, provideOptionContext } from './option.token';\n\nfunction hasRenderableValue<T>(value: T | undefined): value is T {\n\treturn isNotNil(value);\n}\n\n@Directive({\n\tselector: '[luOptionOutlet]',\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'] || !hasRenderableValue(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']) {\n\t\t\t// Outlet template changed: recreate if current value is renderable\n\t\t\tif (hasRenderableValue(this.luOptionOutletValue)) {\n\t\t\t\tthis.createComponent();\n\t\t\t}\n\t\t} else if (changes['luOptionOutletValue']) {\n\t\t\tif (!hasRef && hasRenderableValue(this.luOptionOutletValue)) {\n\t\t\t\tthis.createComponent();\n\t\t\t} else if (hasRef) {\n\t\t\t\tthis.updateRefValue();\n\t\t\t}\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 || !hasRenderableValue(this.luOptionOutletValue)) {\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 (!hasRenderableValue(this.luOptionOutletValue)) {\n\t\t\tthis.clearContainer();\n\t\t\treturn;\n\t\t}\n\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\tpublic static ngTemplateContextGuard<T>(_dir: LuOptionOutletDirective<T>, _ctx: unknown): _ctx is void {\n\t\treturn true;\n\t}\n}\n","import { CoreSelectPanelElement } from './selectable-item';\nimport { InjectionToken, WritableSignal } from '@angular/core';\n\nexport interface CoreSelectPanelInstance<T = unknown> {\n\toptions: WritableSignal<CoreSelectPanelElement<T>[]>;\n}\n\nexport const SELECT_PANEL_INSTANCE = new InjectionToken<CoreSelectPanelInstance>('CoreSelect:PanelInstance');\n","import { Highlightable } from '@angular/cdk/a11y';\nimport { computed, Directive, ElementRef, inject, Input, input, model, OnDestroy, output, signal } from '@angular/core';\nimport { ALuSelectInputComponent } from '../input/select-input.component';\nimport { CoreSelectPanelInstance, SELECT_PANEL_INSTANCE } from './panel.instance';\n\n@Directive({\n\tselector: '[luCoreSelectPanelElement]',\n\texportAs: 'luCoreSelectPanelElement',\n\thost: {\n\t\t'[attr.id]': 'idAttribute()',\n\t\t'[attr.aria-selected]': 'isSelected()',\n\t\t'[class.is-highlighted]': 'isHighlighted()',\n\t\trole: 'option',\n\t},\n})\nexport class CoreSelectPanelElement<T> implements Highlightable, OnDestroy {\n\treadonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\treadonly #panelRef = inject<CoreSelectPanelInstance<T>>(SELECT_PANEL_INSTANCE);\n\n\treadonly #selectRef = inject<ALuSelectInputComponent<T, T>>(ALuSelectInputComponent);\n\n\treadonly id = signal<string>('');\n\n\treadonly elementId = input<string>('');\n\n\treadonly idAttribute = computed(() => this.id() || this.elementId());\n\n\treadonly isSelected = model(false);\n\n\treadonly option = input<T>();\n\n\treadonly isHighlighted = signal(false);\n\n\tselected = output<void>();\n\n\t// We have to use input here because this is consumed by ActiveKeyManager, which doesn't use a signal\n\t@Input()\n\tdisabled: boolean;\n\n\tconstructor() {\n\t\tthis.#panelRef.options.set([...this.#panelRef.options(), this]);\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.#panelRef.options.set(this.#panelRef.options().filter((opt) => opt !== this));\n\t}\n\n\tsetActiveStyles(): void {\n\t\tthis.isHighlighted.set(true);\n\t\tconst option = this.option();\n\t\tif (option !== undefined) {\n\t\t\tthis.#selectRef.highlightedOption.emit(option);\n\t\t}\n\t}\n\n\tsetInactiveStyles(): void {\n\t\tthis.isHighlighted.set(false);\n\t}\n}\n","import { Injectable, 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\n@Injectable({\n\tprovidedIn: 'root',\n\tuseFactory: () => new DefaultIsSelectedStrategy(),\n})\nexport abstract class ɵIsSelectedStrategy<TOption> {\n\tabstract isSelected(option: TOption, selectedOptions: TOption[], optionComparer: LuOptionComparer<TOption>): boolean;\n\tabstract isGroupSelected(options: TOption[], notSelectedOptions: TOption[]): boolean;\n}\n\nclass DefaultIsSelectedStrategy<TOption> extends ɵIsSelectedStrategy<TOption> {\n\tisSelected(option: TOption, selectedOptions: TOption[], optionComparer: LuOptionComparer<TOption>): boolean {\n\t\treturn selectedOptions.some((o) => optionComparer(o, option));\n\t}\n\n\tisGroupSelected(options: TOption[], notSelectedOptions: TOption[]): boolean {\n\t\treturn !notSelectedOptions.length && notSelectedOptions.length !== options.length;\n\t}\n}\n","export const Translations = {\n\tfr: {\n\t\tonlyParent: 'Seulement le parent (Ctrl + Entrée)',\n\t\tonlyChildren: 'Seulement les enfants (Shift + Entrée)',\n\t},\n\ten: {\n\t\tonlyParent: 'Only parent (Ctrl + Enter)',\n\t\tonlyChildren: 'Only children (Shift + Enter)',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_OPTION_TRANSLATIONS = new InjectionToken('LuOptionTranslations', {\n\tfactory: () => luOptionTranslations,\n});\n\nexport interface OptionTranslate {\n\tonlyParent: string;\n\tonlyChildren: string;\n}\n\nexport const luOptionTranslations: LuTranslation<OptionTranslate> = Translations;\n","import {\n\tAfterViewInit,\n\tbooleanAttribute,\n\tChangeDetectionStrategy,\n\tChangeDetectorRef,\n\tComponent,\n\teffect,\n\tElementRef,\n\tHostBinding,\n\tinject,\n\tInput,\n\tinput,\n\tOnDestroy,\n\tOnInit,\n\toutput,\n\tTemplateRef,\n\tType,\n\tViewChild,\n} from '@angular/core';\nimport { intlInputOptions, PortalDirective } from '@lucca-front/ng/core';\nimport { LuTooltipTriggerDirective } from '@lucca-front/ng/tooltip';\nimport { asyncScheduler, observeOn, Subscription } from 'rxjs';\nimport { GroupTemplateLocation } from '../panel/panel.utils';\nimport { CoreSelectPanelElement } from '../panel/selectable-item';\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';\nimport { LU_OPTION_TRANSLATIONS } from './option.translate';\n\nexport const MAGIC_OPTION_SCROLL_DELAY = 15;\n\n@Component({\n\tselector: 'lu-select-option',\n\ttemplateUrl: './option.component.html',\n\tstyleUrl: './option.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [LuOptionOutletDirective, PortalDirective, LuOptionGroupPipe, LuTooltipTriggerDirective],\n})\nexport class LuOptionComponent<T> implements AfterViewInit, OnDestroy, OnInit {\n\tprotected selectableItem = inject(CoreSelectPanelElement);\n\treadonly intl = input(...intlInputOptions(LU_OPTION_TRANSLATIONS));\n\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() option?: T;\n\t@Input() grouping?: LuOptionGrouping<T, unknown>;\n\n\treadonly hasChildren = input(false, { transform: booleanAttribute });\n\tonlyParent = output<void>();\n\tonlyChildren = output<void>();\n\n\treadonly groupIndex = input<number>();\n\n\tpublic readonly optionIndex = input.required({ transform: (value: string | number) => `${value}` });\n\n\t@Input()\n\tscrollIntoViewOptions: ScrollIntoViewOptions = {};\n\n\treadonly groupTemplateLocation = input<GroupTemplateLocation>();\n\n\t@ViewChild(LuOptionOutletDirective, { read: LU_OPTION_CONTEXT, static: true })\n\tprivate readonly optionContext?: ILuOptionContext<T>;\n\n\tprivate cdr = inject(ChangeDetectorRef);\n\tprivate subscription?: Subscription;\n\n\tget id(): string {\n\t\tconst groupPart = this.groupIndex() === undefined ? `` : `-group-${this.groupIndex()}`;\n\n\t\treturn `lu-select-${this.selectId}${groupPart}-option-${this.optionIndex()}`;\n\t}\n\n\tprotected elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\tprotected selectId = inject(SELECT_ID);\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tif (this.selectableItem.isHighlighted()) {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.elementRef.nativeElement.scrollIntoView(this.scrollIntoViewOptions);\n\t\t\t\t}, MAGIC_OPTION_SCROLL_DELAY);\n\t\t\t}\n\t\t});\n\t}\n\n\tngOnInit(): void {\n\t\tthis.selectableItem.id.set(this.id);\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.subscription?.unsubscribe();\n\t}\n\n\tngAfterViewInit(): void {\n\t\tif (!this.optionContext) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.subscription = this.optionContext.isDisabled$.pipe(observeOn(asyncScheduler)).subscribe((isDisabled) => {\n\t\t\tthis.selectableItem.disabled = isDisabled;\n\t\t\tthis.cdr.markForCheck();\n\t\t});\n\t}\n\n\tselectOption($event: Event): void {\n\t\tif (this.selectableItem.disabled) {\n\t\t\t$event.stopPropagation();\n\t\t}\n\t}\n}\n","<div class=\"optionItem-value\" [class.is-disabled]=\"selectableItem.disabled\" (click)=\"selectOption($event)\">\n\t<ng-container *luOptionOutlet=\"optionTpl; value: selectableItem.option()\" />\n\n\t@if (groupTemplateLocation() === \"option\" && grouping) {\n\t\t<div class=\"optionItem-value-group\">\n\t\t\t<ng-container *luPortal=\"grouping.content; context: { $implicit: selectableItem.option() | luOptionGroup: grouping.selector }\" />\n\t\t</div>\n\t}\n\n\t@if (hasChildren() && !selectableItem.disabled) {\n\t\t<div class=\"optionItem-icons\">\n\t\t\t<span\n\t\t\t\tclass=\"optionItem-icon parentOnly\"\n\t\t\t\t(click)=\"$event.stopPropagation(); onlyParent.emit()\"\n\t\t\t\t[luTooltip]=\"intl().onlyParent\"\n\t\t\t\tluTooltipOnlyForDisplay\n\t\t\t>\n\t\t\t\t<svg class=\"optionItem-icon-shape\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" focusable=\"false\">\n\t\t\t\t\t<path\n\t\t\t\t\t\topacity=\"0.2\"\n\t\t\t\t\t\td=\"M8 13C8.55 13 9 12.55 9 12C9 11.45 8.55 11 8 11C7.45 11 7 11.45 7 12C7 12.55 7.45 13 8 13ZM8 18C8.55 18 9 17.55 9 17C9 16.45 8.55 16 8 16C7.45 16 7 16.45 7 17C7 17.55 7.45 18 8 18ZM12 13H20C20.55 13 21 12.55 21 12C21 11.45 20.55 11 20 11H12C11.45 11 11 11.45 11 12C11 12.55 11.45 13 12 13ZM12 18H20C20.55 18 21 17.55 21 17C21 16.45 20.55 16 20 16H12C11.45 16 11 16.45 11 17C11 17.55 11.45 18 12 18ZM8 13C8.55 13 9 12.55 9 12C9 11.45 8.55 11 8 11C7.45 11 7 11.45 7 12C7 12.55 7.45 13 8 13ZM8 18C8.55 18 9 17.55 9 17C9 16.45 8.55 16 8 16C7.45 16 7 16.45 7 17C7 17.55 7.45 18 8 18ZM12 13H20C20.55 13 21 12.55 21 12C21 11.45 20.55 11 20 11H12C11.45 11 11 11.45 11 12C11 12.55 11.45 13 12 13ZM12 18H20C20.55 18 21 17.55 21 17C21 16.45 20.55 16 20 16H12C11.45 16 11 16.45 11 17C11 17.55 11.45 18 12 18Z\"\n\t\t\t\t\t/>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M4 8C4.55 8 5 7.55 5 7C5 6.45 4.55 6 4 6C3.45 6 3 6.45 3 7C3 7.55 3.45 8 4 8ZM7 7C7 7.55 7.45 8 8 8H20C20.55 8 21 7.55 21 7C21 6.45 20.55 6 20 6H8C7.45 6 7 6.45 7 7ZM4 8C4.55 8 5 7.55 5 7C5 6.45 4.55 6 4 6C3.45 6 3 6.45 3 7C3 7.55 3.45 8 4 8ZM7 7C7 7.55 7.45 8 8 8H20C20.55 8 21 7.55 21 7C21 6.45 20.55 6 20 6H8C7.45 6 7 6.45 7 7Z\"\n\t\t\t\t\t/>\n\t\t\t\t</svg>\n\t\t\t\t<span class=\"pr-u-mask\">{{ intl().onlyParent }}</span>\n\t\t\t</span>\n\t\t\t<span\n\t\t\t\tclass=\"optionItem-icon childrenOnly\"\n\t\t\t\t(click)=\"$event.stopPropagation(); onlyChildren.emit()\"\n\t\t\t\t[luTooltip]=\"intl().onlyChildren\"\n\t\t\t\tluTooltipOnlyForDisplay\n\t\t\t>\n\t\t\t\t<svg class=\"optionItem-icon-shape\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" focusable=\"false\">\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M8 13C8.55 13 9 12.55 9 12C9 11.45 8.55 11 8 11C7.45 11 7 11.45 7 12C7 12.55 7.45 13 8 13ZM8 18C8.55 18 9 17.55 9 17C9 16.45 8.55 16 8 16C7.45 16 7 16.45 7 17C7 17.55 7.45 18 8 18ZM12 13H20C20.55 13 21 12.55 21 12C21 11.45 20.55 11 20 11H12C11.45 11 11 11.45 11 12C11 12.55 11.45 13 12 13ZM12 18H20C20.55 18 21 17.55 21 17C21 16.45 20.55 16 20 16H12C11.45 16 11 16.45 11 17C11 17.55 11.45 18 12 18ZM8 13C8.55 13 9 12.55 9 12C9 11.45 8.55 11 8 11C7.45 11 7 11.45 7 12C7 12.55 7.45 13 8 13ZM8 18C8.55 18 9 17.55 9 17C9 16.45 8.55 16 8 16C7.45 16 7 16.45 7 17C7 17.55 7.45 18 8 18ZM12 13H20C20.55 13 21 12.55 21 12C21 11.45 20.55 11 20 11H12C11.45 11 11 11.45 11 12C11 12.55 11.45 13 12 13ZM12 18H20C20.55 18 21 17.55 21 17C21 16.45 20.55 16 20 16H12C11.45 16 11 16.45 11 17C11 17.55 11.45 18 12 18Z\"\n\t\t\t\t\t/>\n\t\t\t\t\t<path\n\t\t\t\t\t\topacity=\"0.2\"\n\t\t\t\t\t\td=\"M4 8C4.55 8 5 7.55 5 7C5 6.45 4.55 6 4 6C3.45 6 3 6.45 3 7C3 7.55 3.45 8 4 8ZM7 7C7 7.55 7.45 8 8 8H20C20.55 8 21 7.55 21 7C21 6.45 20.55 6 20 6H8C7.45 6 7 6.45 7 7ZM4 8C4.55 8 5 7.55 5 7C5 6.45 4.55 6 4 6C3.45 6 3 6.45 3 7C3 7.55 3.45 8 4 8ZM7 7C7 7.55 7.45 8 8 8H20C20.55 8 21 7.55 21 7C21 6.45 20.55 6 20 6H8C7.45 6 7 6.45 7 7Z\"\n\t\t\t\t\t/>\n\t\t\t\t</svg>\n\t\t\t\t<span class=\"pr-u-mask\">{{ intl().onlyChildren }}</span>\n\t\t\t</span>\n\t\t</div>\n\t}\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})\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","import { 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\tInput,\n\tmodel,\n\tOnDestroy,\n\tOnInit,\n\toutput,\n\tSignal,\n\tsignal,\n\tTemplateRef,\n\tType,\n\tViewChild,\n} from '@angular/core';\nimport { outputFromObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { PortalContent } from '@lucca-front/ng/core';\nimport { FILTER_PILL_HOST_COMPONENT, FILTER_PILL_INPUT_COMPONENT, FilterPillInputComponent } from '@lucca-front/ng/filter-pills';\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 { LuCoreSelectLabel } from '../select.translate';\nimport { TreeNode } from './model';\nimport { TreeGenerator } from './tree-generator';\n\nexport const coreSelectDefaultOptionComparer: LuOptionComparer<unknown> = (option1, option2) => JSON.stringify(option1) === JSON.stringify(option2);\nexport const coreSelectDefaultOptionKey: (option: unknown) => unknown = (option) => option;\n\n@Directive({\n\thost: {\n\t\t'[class.colorPicker]': 'colorPicker()',\n\t\t'[class.mod-compact]': 'compact()',\n\t},\n})\nexport abstract class ALuSelectInputComponent<TOption, TValue> implements OnDestroy, OnInit, ControlValueAccessor, FilterPillInputComponent {\n\tpublic parentInput = inject(FILTER_PILL_INPUT_COMPONENT, { optional: true, skipSelf: true });\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 abstract intl: Signal<LuCoreSelectLabel>;\n\n\tprotected filterPillHost = inject(FILTER_PILL_HOST_COMPONENT, { optional: true });\n\tprotected afterCloseFn?: () => void;\n\tprotected updatePositionFn?: () => void;\n\tprotected filterPillMode = false;\n\n\tpublic readonly ignorePresentation = input(false, { transform: booleanAttribute });\n\n\tpublic selectParent$?: Subject<void>;\n\tpublic selectChildren$?: Subject<void>;\n\n\tpublic readonly panelClosed = output<void>();\n\tpublic readonly panelOpened = output<void>();\n\n\tpublic readonly highlightedOption = output<TOption>();\n\n\t@ViewChild('inputElement')\n\tprivate readonly inputElementRef: ElementRef<HTMLInputElement>;\n\n\treadonly placeholder$ = new BehaviorSubject('');\n\n\treadonly disabled$ = new BehaviorSubject(false);\n\treadonly filterPillDisabled = toSignal(this.disabled$, { initialValue: false });\n\n\treadonly prefix = input<PortalContent | null>(null);\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\tset clearable(value: boolean) {\n\t\tthis.#inputClearable.set(value);\n\t}\n\tget clearable(): boolean {\n\t\treturn this.#clearable();\n\t}\n\treadonly #clearable = computed(() => this.#inputClearable() ?? this.#defaultFilterPillClearable() ?? this.#defaultClearable);\n\treadonly #defaultFilterPillClearable = signal<boolean | null>(null);\n\treadonly #inputClearable = signal<boolean | null>(null);\n\t#defaultClearable = false;\n\n\tget searchable(): boolean {\n\t\treturn this.clueChange$.observed;\n\t}\n\n\treadonly #addOptionLabelInput = signal<PortalContent | null>(null);\n\tprotected readonly computedAddOptionLabel = computed(() => this.#addOptionLabelInput() ?? this.intl().addOption);\n\n\t@Input()\n\tset addOptionLabel(label: PortalContent) {\n\t\tthis.#addOptionLabelInput.set(label);\n\t}\n\n\tget addOptionLabel(): PortalContent {\n\t\treturn this.computedAddOptionLabel();\n\t}\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) > 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\treadonly isPanelOpen$ = new BehaviorSubject(false);\n\n\treadonly 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: readonly 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\tthis.updatePositionFn?.();\n\t\t\t\t// If no fixes are found, last resort fix is here\n\t\t\t\t// window.dispatchEvent(new Event('resize'));\n\t\t\t});\n\t\t}\n\t}\n\n\t@Input() optionComparer: LuOptionComparer<TOption> = coreSelectDefaultOptionComparer;\n\t@Input() optionKey: (option: TOption) => unknown = coreSelectDefaultOptionKey;\n\n\treadonly noClueIcon = input(false, { transform: booleanAttribute });\n\treadonly inputTabindex = input<number>(0);\n\n\treadonly compact = input(false, { transform: booleanAttribute });\n\n\treadonly colorPicker = input(false, { transform: booleanAttribute });\n\n\t@HostBinding('class.mod-noClueIcon')\n\tprotected get isNoClueIconClass(): boolean {\n\t\treturn this.noClueIcon();\n\t}\n\n\treadonly optionTpl = model<TemplateRef<LuOptionContext<TOption>> | Type<unknown>>(LuSimpleSelectDefaultOptionComponent);\n\treadonly valueTpl = model<TemplateRef<LuOptionContext<TOption>> | Type<unknown> | undefined>();\n\treadonly panelHeaderTpl = model<TemplateRef<void> | Type<unknown> | undefined>();\n\treadonly panelFooterTpl = model<TemplateRef<void> | Type<unknown> | undefined>();\n\n\treadonly displayerTpl = computed(() => this.valueTpl() || this.optionTpl());\n\n\treadonly groupingSignal = signal<LuOptionGrouping<TOption, unknown> | undefined>(undefined);\n\n\t/**\n\t * @deprecated use groupingSignal\n\t */\n\tget grouping() {\n\t\treturn this.groupingSignal();\n\t}\n\t/**\n\t * @deprecated use groupingSignal\n\t */\n\tset grouping(grouping: LuOptionGrouping<TOption, unknown> | undefined) {\n\t\tthis.groupingSignal.set(grouping);\n\t}\n\n\ttreeGenerator?: TreeGenerator<TOption, TreeNode<TOption>>;\n\n\treadonly clueChange$ = new Subject<string>();\n\tclueChange = outputFromObservable(this.clueChange$);\n\treadonly nextPage$ = new Subject<void>();\n\tnextPage = outputFromObservable(this.nextPage$);\n\treadonly previousPage = output<void>();\n\treadonly addOption = output<string>();\n\n\tpublic readonly valueSignal = signal<TValue | null>(null);\n\treadonly isFilterPillEmpty = computed(() => this.valueSignal() === null);\n\treadonly isFilterPillClearable = computed(() => this.#clearable());\n\n\tpublic get value(): TValue | null {\n\t\treturn this._value;\n\t}\n\n\tprotected set value(value: TValue | null) {\n\t\t// TODO remove once migrated to signal, but there's an override\n\t\tthis._value = value;\n\t\tthis.valueSignal.set(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$.next(clue);\n\t\t\tthis.lastEmittedClue = clue;\n\t\t}\n\t}\n\n\tprotected _value: TValue | null = null;\n\n\treadonly options$ = new ReplaySubject<readonly TOption[]>(1);\n\treadonly loading$ = 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\treadonly clue$ = defer(() => this.clueChange$.pipe(startWith(this.clue)));\n\n\treadonly addOptionStrategy$ = 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 readonly destroyed$ = new Subject<void>();\n\n\tconstructor() {\n\t\tif (this.filterPillHost) {\n\t\t\tthis.filterPillHost.registerInput(this);\n\t\t}\n\t}\n\n\t@HostListener('click', ['$event'])\n\tonClickOpenPanel($event: Event) {\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: Event): void {\n\t\tconst $event = event as KeyboardEvent;\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\t// If we are in a filterpill, this will close it on tab press, but we want it to not lose any\n\t\t\t\t// displayed stuff and properly close on focus exit\n\t\t\t\tthis.panelRef?.close();\n\t\t\t\tbreak;\n\t\t\tcase 'Enter':\n\t\t\t\tif ($event.ctrlKey || $event.shiftKey) {\n\t\t\t\t\treturn;\n\t\t\t\t}\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 | null) => 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\tif (event) {\n\t\t\tevent.stopPropagation();\n\t\t}\n\t\tthis.updateValue(null, true);\n\t\tthis.inputElementRef.nativeElement.focus();\n\t}\n\n\topenPanel(clue: string = ''): void {\n\t\tif (this.filterPillMode || this.isPanelOpen || this.disabled$.value) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.focusInput();\n\n\t\t/**\n\t\t * I know what you're thinking, but let me explain:\n\t\t *\n\t\t * When setting isPanelOpen$'s internal value to true and then calling clueChanged,\n\t\t * it creates a race condition which calls this method again from inside clueChanged's code before\n\t\t * the change is applied inside the Subject, meaning this is called twice and we get a double tap.\n\t\t *\n\t\t * The only easy solution is this (or store yet another boolean like \"isOpeningPanel\" which is, imo, equally ugly.\n\t\t */\n\t\tsetTimeout(() => {\n\t\t\tif (this.isPanelOpen) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.isPanelOpen$.next(true);\n\t\t\tthis.panelOpened.emit();\n\n\t\t\tif (this.searchable) {\n\t\t\t\tthis.clueChanged(clue);\n\t\t\t}\n\n\t\t\tthis._panelRef = this.buildPanelRef();\n\t\t\tthis.bindInputToPanelRefEvents();\n\t\t});\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$.next());\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\tfocusInput(): 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.panelClosed.emit();\n\t\tthis.emptyClue();\n\t\tthis.activeDescendant$.next('');\n\t\tthis.changeDetectorRef.markForCheck();\n\t\tthis.onTouched?.();\n\t\tif (!this.filterPillMode) {\n\t\t\tthis.isPanelOpen$.next(false);\n\t\t\tthis.panelRef?.close();\n\t\t\tthis._panelRef = undefined;\n\t\t\tthis.focusInput();\n\t\t}\n\t\tthis.afterCloseFn?.();\n\t}\n\n\tpublic writeValue(value: TValue | null): void {\n\t\tthis.value = value;\n\t}\n\n\tpublic updateValue(value: TValue | null, 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\t// Filter pill interface\n\tclearFilterPillValue(): void {\n\t\tthis.clearValue();\n\t}\n\n\tregisterFilterPillClosePopover(closeFn: () => void): void {\n\t\tthis.afterCloseFn = closeFn;\n\t}\n\n\tregisterFilterPillUpdatePosition(updatePositionFn: () => void): void {\n\t\tthis.updatePositionFn = updatePositionFn;\n\t}\n\n\tenableFilterPillMode() {\n\t\tthis.filterPillMode = true;\n\t\tthis.#defaultFilterPillClearable.set(true);\n\t\tthis._panelRef?.closed.subscribe(this.afterCloseFn);\n\t\tthis.bindInputToPanelRefEvents();\n\t}\n\n\tonFilterPillOpened(): void {\n\t\tthis.isPanelOpen$.next(true);\n\t}\n\n\tonFilterPillClosed(): void {\n\t\tthis.isPanelOpen$.next(false);\n\t}\n}\n","import { OverlayRef } from '@angular/cdk/overlay';\nimport { ElementRef, 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\nexport function addAttributesOnCdkContainer(overlayRef: OverlayRef, selectLabelId: string, selectId: number) {\n\tconst potentialCdkOverlayContainer = overlayRef?.overlayElement?.parentElement?.parentElement;\n\tif (potentialCdkOverlayContainer && potentialCdkOverlayContainer.className.includes('cdk-overlay-container')) {\n\t\tpotentialCdkOverlayContainer.setAttribute('aria-labelledby', selectLabelId);\n\t\tpotentialCdkOverlayContainer.id = `lu-select-overlay-container-${selectId}`;\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\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\treadonly totalCount = input.required<number>({ alias: 'totalCount' });\n\n\treadonly totalCount$ = toObservable(this.totalCount);\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TreeGenerator } from './tree-generator';\nimport { TreeNode } from './model';\n\n@Pipe({\n\tname: 'luTreeDisplay',\n\tpure: true,\n})\nexport class TreeDisplayPipe<T> implements PipeTransform {\n\ttransform(items: T[], treeGenerator: TreeGenerator<T, TreeNode<T>>): TreeNode<T>[] {\n\t\treturn treeGenerator.generateTrees(items);\n\t}\n}\n","import { Directive, inject } from '@angular/core';\nimport { ALuSelectInputComponent } from '../input/index';\n\n@Directive({\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: 'lu-simple-select[noClue],lu-multi-select[noClue]',\n})\nexport class LuCoreSelectNoClueDirective {\n\tconstructor() {\n\t\tinject(ALuSelectInputComponent).clueChange$.complete();\n\t}\n}\n","import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { computed, DestroyRef, EventEmitter, inject, Injectable, Injector, Signal } from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { isNotNil } from '@lucca-front/ng/core';\nimport { asyncScheduler, debounceTime, filter, map, Observable, observeOn, take } from 'rxjs';\nimport { LuOptionComparer } from '../select.model';\nimport { CoreSelectPanelElement } from './selectable-item';\n\ninterface CoreSelectKeyManagerOptions<T> {\n\tqueryList: Signal<readonly CoreSelectPanelElement<T>[]>;\n\toptions$: Observable<readonly 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<CoreSelectPanelElement<T>>;\n\t#hasSearchChanged = false;\n\t#options?: CoreSelectKeyManagerOptions<T>;\n\t#injector = inject(Injector);\n\n\t// eslint-disable-next-line @angular-eslint/prefer-signals\n\t#queryList: Signal<CoreSelectPanelElement<T>[]>;\n\t#queryList$: Observable<CoreSelectPanelElement<T>[]>;\n\n\tinit(options: CoreSelectKeyManagerOptions<T>): void {\n\t\tthis.#options = options;\n\t\tthis.#queryList = computed(() => {\n\t\t\treturn [...options.queryList()].sort((a, b) => {\n\t\t\t\tconst comparison = a.elementRef.nativeElement.compareDocumentPosition(b.elementRef.nativeElement);\n\t\t\t\tif (comparison & Node.DOCUMENT_POSITION_FOLLOWING) {\n\t\t\t\t\treturn -1;\n\t\t\t\t}\n\t\t\t\tif (comparison & Node.DOCUMENT_POSITION_PRECEDING) {\n\t\t\t\t\treturn 1;\n\t\t\t\t}\n\t\t\t\treturn 0;\n\t\t\t});\n\t\t});\n\t\tthis.#queryList$ = toObservable(this.#queryList, { injector: this.#injector });\n\t\tthis.#cdkKeyManager = new ActiveDescendantKeyManager(this.#queryList, this.#injector).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(): CoreSelectPanelElement<T> | undefined {\n\t\treturn this.#cdkKeyManager?.activeItem ?? undefined;\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 { optionComparer } = this.#options;\n\n\t\tthis.#queryList$\n\t\t\t.pipe(\n\t\t\t\tobserveOn(asyncScheduler),\n\t\t\t\tmap((options) =>\n\t\t\t\t\toptions.findIndex((el) => {\n\t\t\t\t\t\tconst elOption = el.option();\n\t\t\t\t\t\treturn isNotNil(elOption) && optionComparer(elOption, option);\n\t\t\t\t\t}),\n\t\t\t\t),\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\tconst keyManager = this.#cdkKeyManager;\n\t\tif (!keyManager) {\n\t\t\treturn;\n\t\t}\n\n\t\tkeyManager.change\n\t\t\t.pipe(\n\t\t\t\tmap(() => keyManager.activeItem?.idAttribute() ?? ''),\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$ }: CoreSelectKeyManagerOptions<T>): void {\n\t\tconst keyManager = this.#cdkKeyManager;\n\t\tif (!keyManager) {\n\t\t\treturn;\n\t\t}\n\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 (this.#queryList().length === 0) {\n\t\t\t\t\tkeyManager.setActiveItem(-1);\n\t\t\t\t} else if (this.#hasSearchChanged) {\n\t\t\t\t\tthis.#hasSearchChanged = false;\n\t\t\t\t\tkeyManager.setFirstItemActive();\n\t\t\t\t} else if (!keyManager.activeItem) {\n\t\t\t\t\tkeyManager.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})\nexport class LuCoreSelectPanelHeaderDirective {\n\treadonly templateRef = inject<TemplateRef<void>>(TemplateRef);\n\n\treadonly select = input.required<ALuSelectInputComponent<unknown, unknown> | 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(\n\thasGrouping$: Observable<boolean>,\n\tclueChange$: Observable<string>,\n\toptions$: Observable<readonly unknown[]>,\n\tsearchable = true,\n): Observable<GroupTemplateLocation> {\n\treturn hasGrouping$.pipe(\n\t\tswitchMap((hasGrouping) => {\n\t\t\tif (!hasGrouping) {\n\t\t\t\treturn of<GroupTemplateLocation>('none');\n\t\t\t}\n\n\t\t\tconst getGroupTemplateLocation$ = (hasClue: boolean) =>\n\t\t\t\toptions$.pipe(\n\t\t\t\t\tskip(1),\n\t\t\t\t\ttake(1),\n\t\t\t\t\tmap((): GroupTemplateLocation => (hasClue ? 'option' : 'group-header')),\n\t\t\t\t\tstartWith('group-header' as const satisfies GroupTemplateLocation),\n\t\t\t\t);\n\t\t\treturn searchable\n\t\t\t\t? clueChange$.pipe(\n\t\t\t\t\t\tmap((clue) => !!clue),\n\t\t\t\t\t\tdistinctUntilChanged(),\n\t\t\t\t\t\tswitchMap(getGroupTemplateLocation$),\n\t\t\t\t\t)\n\t\t\t\t: getGroupTemplateLocation$(false);\n\t\t}),\n\t);\n}\n","export const Translations = {\n\t'nl-BE': {\n\t\taddOption: 'Een optie toevoegen',\n\t},\n\tnl: {\n\t\taddOption: 'Een optie toevoegen',\n\t},\n\tit: {\n\t\taddOption: 'Aggiungere un’opzione',\n\t},\n\tfr: {\n\t\taddOption: 'Ajouter une option',\n\t},\n\tpt: {\n\t\taddOption: 'Adicionar opção',\n\t},\n\tes: {\n\t\taddOption: 'Añadir una opción',\n\t},\n\tde: {\n\t\taddOption: 'Option hinzufügen',\n\t},\n\ten: {\n\t\taddOption: 'Add option',\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","export const applySearchDelimiter = (clue: string, delimiter: string): string => clue.split(' ').join(delimiter);\n","import { Pipe, PipeTransform, inject } from '@angular/core';\nimport { LuOptionComparer, ɵIsSelectedStrategy } from './select.model';\n\n@Pipe({\n\tname: 'luIsOptionSelected',\n})\nexport class LuIsOptionSelectedPipe<T> implements PipeTransform {\n\t#selectionStrategy = inject<ɵIsSelectedStrategy<T>>(ɵIsSelectedStrategy);\n\n\ttransform(option: T, comparer: LuOptionComparer<T>, selectedOptions: T[]): boolean {\n\t\treturn this.#selectionStrategy.isSelected(option, selectedOptions, comparer);\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Translations"],"mappings":"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"}
|
|
@@ -531,17 +531,6 @@ function ɵeffectWithDeps(dependencies, action, options) {
|
|
|
531
531
|
untracked(() => action(...deps, onCleanup));
|
|
532
532
|
}, options);
|
|
533
533
|
}
|
|
534
|
-
/**
|
|
535
|
-
* Utilitaire pour synchroniser un input signal avec une props via un setter.
|
|
536
|
-
* Évite la répétition des ɵeffectWithDeps + isNotNil.
|
|
537
|
-
*/
|
|
538
|
-
function syncInputSignal(signal, setter) {
|
|
539
|
-
ɵeffectWithDeps([signal], (value) => {
|
|
540
|
-
if (isNotNil(value)) {
|
|
541
|
-
setter(value);
|
|
542
|
-
}
|
|
543
|
-
});
|
|
544
|
-
}
|
|
545
534
|
function readTupleOfSignalValues(signals) {
|
|
546
535
|
return signals.map((signal) => signal());
|
|
547
536
|
}
|
|
@@ -630,5 +619,5 @@ const defaultBreakpoints = {
|
|
|
630
619
|
* Generated bundle index. Do not edit.
|
|
631
620
|
*/
|
|
632
621
|
|
|
633
|
-
export { ALuDateAdapter, ALuOnCloseSubscriber, ALuOnOpenSubscriber, ALuOnScrollBottomSubscriber, ELuDateGranularity, IntlParamsPipe, LU_NATIVE_DATE_ADAPTER_OPTIONS, LuNativeDateAdapter, LuStringDateAdapter, LuTypeGuardPipe, PORTAL_CONTEXT, PortalDirective, assertNotNil, defaultBreakpoints, generateId, getIntl, intlInputOptions, isNil, isNilOrEmptyString, isNotNil, isNotNilOrEmptyString, isRouterLinkParam, luDefaultNativeDateAdapterOptions,
|
|
622
|
+
export { ALuDateAdapter, ALuOnCloseSubscriber, ALuOnOpenSubscriber, ALuOnScrollBottomSubscriber, ELuDateGranularity, IntlParamsPipe, LU_NATIVE_DATE_ADAPTER_OPTIONS, LuNativeDateAdapter, LuStringDateAdapter, LuTypeGuardPipe, PORTAL_CONTEXT, PortalDirective, assertNotNil, defaultBreakpoints, generateId, getIntl, intlInputOptions, isNil, isNilOrEmptyString, isNotNil, isNotNilOrEmptyString, isRouterLinkParam, luDefaultNativeDateAdapterOptions, ɵeffectWithDeps };
|
|
634
623
|
//# sourceMappingURL=lucca-front-ng-core.mjs.map
|