@lucca-front/ng 17.3.0-rc.1 → 17.3.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.
@@ -11,7 +11,7 @@ import { InputDirective } from '@lucca-front/ng/form-field';
11
11
  import { LuTooltipModule } from '@lucca-front/ng/tooltip';
12
12
  import { switchMap, debounceTime, map as map$1 } from 'rxjs/operators';
13
13
  import { IconComponent } from '@lucca-front/ng/icon';
14
- import { map, EMPTY, asyncScheduler, observeOn, filter, take, takeUntil, Subject } from 'rxjs';
14
+ import { map, EMPTY, asyncScheduler, observeOn, filter, take, takeUntil, Subject, of } from 'rxjs';
15
15
  import { Overlay, OverlayPositionBuilder, ScrollStrategyOptions } from '@angular/cdk/overlay';
16
16
  import { ComponentPortal } from '@angular/cdk/portal';
17
17
  import { ActiveDescendantKeyManager, A11yModule } from '@angular/cdk/a11y';
@@ -489,11 +489,11 @@ class LuMultiSelectDefaultDisplayerComponent {
489
489
  this.intl = getIntl(LU_MULTI_SELECT_DISPLAYER_TRANSLATIONS);
490
490
  this.destroyRef = inject(DestroyRef);
491
491
  this.context = inject(LU_OPTION_CONTEXT);
492
- this.placeholder$ = this.context.option$.pipe(map$1((options) => {
492
+ this.placeholder$ = this.context.option$.pipe(switchMap((options) => {
493
493
  if ((options || []).length > 0) {
494
- return '';
494
+ return of('');
495
495
  }
496
- return this.select.placeholder;
496
+ return this.select.placeholder$;
497
497
  }));
498
498
  this.displayedOptions$ = this.context.option$.pipe(map$1((options) => {
499
499
  if (this.select.maxValuesShown) {
@@ -1 +1 @@
1
- {"version":3,"file":"lucca-front-ng-multi-select.mjs","sources":["../../../packages/ng/multi-select/select.translate.ts","../../../packages/ng/multi-select/input/panel.model.ts","../../../packages/ng/multi-select/select.model.ts","../../../packages/ng/multi-select/panel/not-selected.pipe.ts","../../../packages/ng/multi-select/panel/option-selected.pipe.ts","../../../packages/ng/multi-select/panel/selected-chip.directive.ts","../../../packages/ng/multi-select/panel/panel.component.ts","../../../packages/ng/multi-select/panel/panel.component.html","../../../packages/ng/multi-select/input/panel-ref.factory.ts","../../../packages/ng/multi-select/input/select-input.component.ts","../../../packages/ng/multi-select/input/select-input.component.html","../../../packages/ng/multi-select/displayer/default-displayer.translate.ts","../../../packages/ng/multi-select/displayer/default-displayer.component.ts","../../../packages/ng/multi-select/displayer/displayer.directive.ts","../../../packages/ng/multi-select/displayer/displayer-input.directive.ts","../../../packages/ng/multi-select/lucca-front-ng-multi-select.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { ILuTranslation } from '@lucca-front/ng/core';\n\nexport const LU_MULTI_SELECT_TRANSLATIONS = new InjectionToken('LuMultiSelectTranslations', {\n\tfactory: () => luMultiSelectTranslations,\n});\n\nexport interface ILuMultiSelectLabel {\n\tplaceholder: string;\n\tsearch: string;\n\tclear: string;\n\tclearSearch: string;\n\temptyResults: string;\n\temptySelection: string;\n\texpand: string;\n\treduce: string;\n\tselectAll: string;\n\tunselectAll: string;\n\tloading: string;\n}\n\nexport const luMultiSelectTranslations: ILuTranslation<ILuMultiSelectLabel> = {\n\ten: {\n\t\tplaceholder: 'Select an option',\n\t\tsearch: 'Search',\n\t\tclear: 'Clear selection',\n\t\tclearSearch: 'Clear search',\n\t\temptyResults: 'No results',\n\t\temptySelection: 'Select items in the left list to start',\n\t\texpand: 'Expand',\n\t\treduce: 'Reduce',\n\t\tselectAll: 'Select all',\n\t\tunselectAll: 'Unselect all',\n\t\tloading: 'Loading...',\n\t},\n\tfr: {\n\t\tplaceholder: 'Sélectionnez une option',\n\t\tsearch: 'Rechercher',\n\t\tclear: 'Vider la sélection',\n\t\tclearSearch: 'Vider la recherche',\n\t\temptySelection: 'Sélectionnez les éléments dans la liste de gauche pour commencer',\n\t\temptyResults: 'Aucun résultat pour votre recherche',\n\t\texpand: 'Étendre',\n\t\treduce: 'Réduire',\n\t\tselectAll: 'Tout sélectionner',\n\t\tunselectAll: 'Tout désélectionner',\n\t\tloading: 'Chargement en cours...',\n\t},\n\tde: {\n\t\tplaceholder: 'Wählen Sie eine Option',\n\t\tsearch: 'Suche',\n\t\tclear: 'Auswahl löschen',\n\t\tclearSearch: 'Suche löschen',\n\t\temptyResults: 'Keine Ergebnisse für Ihre Suche',\n\t\temptySelection: 'Wählen Sie Elemente in der linken Liste aus, um zu beginnen',\n\t\texpand: 'Erweitern',\n\t\treduce: 'Reduzieren',\n\t\tselectAll: 'Alles auswählen',\n\t\tunselectAll: 'Alles abwählen',\n\t\tloading: 'Wird geladen...',\n\t},\n\tes: {\n\t\tplaceholder: 'Seleccione una opción',\n\t\tsearch: 'Buscar',\n\t\tclear: 'Borrar selección',\n\t\tclearSearch: 'Borrar búsqueda',\n\t\temptyResults: 'No hay resultados para su búsqueda',\n\t\temptySelection: 'Seleccione elementos en la lista de la izquierda para comenzar',\n\t\texpand: 'Expandir',\n\t\treduce: 'Reducir',\n\t\tselectAll: 'Seleccionar todo',\n\t\tunselectAll: 'Deseleccionar todo',\n\t\tloading: 'Cargando...',\n\t},\n\tpt: {\n\t\tplaceholder: 'Selecione uma opção',\n\t\tsearch: 'Pesquisar',\n\t\tclear: 'Limpar seleção',\n\t\tclearSearch: 'Limpar pesquisa',\n\t\temptyResults: 'Nenhum resultado para sua pesquisa',\n\t\temptySelection: 'Selecione itens na lista à esquerda para começar',\n\t\texpand: 'Expandir',\n\t\treduce: 'Reduzir',\n\t\tselectAll: 'Selecionar tudo',\n\t\tunselectAll: 'Desmarcar tudo',\n\t\tloading: 'Carregando...',\n\t},\n};\n","import { LuSelectPanelRef } from '@lucca-front/ng/core-select';\n\nexport abstract class LuMultiSelectPanelRef<T> extends LuSelectPanelRef<T, T[]> {\n\tabstract updateSelectedOptions(selectedOptions: T[]): void;\n\n\tabstract useDefaultPosition(): void;\n\n\tabstract updatePosition(): void;\n}\n","import { InjectionToken } from '@angular/core';\nimport type { LuMultiSelectInputComponent } from './input';\n\nexport const MULTI_SELECT_INPUT = new InjectionToken<LuMultiSelectInputComponent<unknown>>('MultiSelectInput');\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n\tname: 'luNotSelectedOptions',\n\tstandalone: true,\n\tpure: true,\n})\nexport class LuNotSelectedOptionsPipe<T> implements PipeTransform {\n\ttransform(groupOptions: T[], selectedOptions: T[], optionComparer: (option1: T, option2: T) => boolean): T[] {\n\t\treturn groupOptions.filter((o) => !selectedOptions.some((so) => optionComparer(so, o)));\n\t}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n\tname: 'luIsOptionSelected',\n\tstandalone: true,\n})\nexport class LuIsOptionSelectedPipe implements PipeTransform {\n\ttransform<T>(option: T, comparer: (option1: T, option2: T) => boolean, selectedOptions: T[]): boolean {\n\t\treturn selectedOptions.some((selectedOption) => comparer(option, selectedOption));\n\t}\n}\n","import { Highlightable } from '@angular/cdk/a11y';\nimport { Directive, ElementRef, Input, inject } from '@angular/core';\n\n@Directive({\n\tstandalone: true,\n\tselector: '[luMultiSelectSelectedChip]',\n})\nexport class ɵLuMultiSelectSelectedChipDirective<T> implements Highlightable {\n\t@Input('luMultiSelectSelectedChip') option?: T;\n\n\telementRef = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n\n\tsetActiveStyles(): void {\n\t\tthis.elementRef.querySelector('button').focus();\n\t}\n\tsetInactiveStyles(): void {\n\t\t// Nothing to do\n\t}\n}\n","import { A11yModule, ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { AsyncPipe, NgFor, NgIf, NgTemplateOutlet } from '@angular/common';\nimport { AfterViewInit, ChangeDetectionStrategy, Component, QueryList, ViewChildren, inject } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { PortalDirective, getIntl } from '@lucca-front/ng/core';\nimport { SELECT_ID, ɵLuOptionComponent, ɵLuOptionOutletDirective, ɵgenerateGroups } from '@lucca-front/ng/core-select';\nimport { EMPTY, asyncScheduler, filter, map, observeOn, take, takeUntil } from 'rxjs';\nimport { debounceTime, switchMap } from 'rxjs/operators';\nimport { LuMultiSelectInputComponent } from '../input';\nimport { LuMultiSelectPanelRef } from '../input/panel.model';\nimport { MULTI_SELECT_INPUT } from '../select.model';\nimport { LU_MULTI_SELECT_TRANSLATIONS } from '../select.translate';\nimport { LuNotSelectedOptionsPipe } from './not-selected.pipe';\nimport { LuIsOptionSelectedPipe } from './option-selected.pipe';\nimport { ɵLuMultiSelectSelectedChipDirective } from './selected-chip.directive';\n\n@Component({\n\tselector: 'lu-select-panel',\n\ttemplateUrl: './panel.component.html',\n\tstyleUrls: ['./panel.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [\n\t\tA11yModule,\n\t\tAsyncPipe,\n\t\tFormsModule,\n\t\tLuIsOptionSelectedPipe,\n\t\tNgIf,\n\t\tNgFor,\n\t\tɵLuOptionComponent,\n\t\tɵLuOptionOutletDirective,\n\t\tɵLuMultiSelectSelectedChipDirective,\n\t\tNgTemplateOutlet,\n\t\tPortalDirective,\n\t\tLuNotSelectedOptionsPipe,\n\t],\n})\nexport class LuMultiSelectPanelComponent<T> implements AfterViewInit {\n\tprotected selectInput = inject<LuMultiSelectInputComponent<T>>(MULTI_SELECT_INPUT);\n\tpanelRef = inject<LuMultiSelectPanelRef<T>>(LuMultiSelectPanelRef);\n\tselectId = inject(SELECT_ID);\n\tintl = getIntl(LU_MULTI_SELECT_TRANSLATIONS);\n\n\toptions$ = this.selectInput.options$;\n\tgrouping = this.selectInput.grouping;\n\tgroups$ = this.grouping ? this.options$.pipe(map((options) => ɵgenerateGroups(options, this.grouping.selector))) : EMPTY;\n\tloading$ = this.selectInput.loading$;\n\toptionComparer = this.selectInput.optionComparer;\n\tselectedOptions: T[] = this.selectInput.value || [];\n\toptionTpl = this.selectInput.optionTpl;\n\n\t@ViewChildren(ɵLuOptionComponent) optionsQL: QueryList<ɵLuOptionComponent<T>>;\n\tprivate _keyManager: ActiveDescendantKeyManager<ɵLuOptionComponent<T>>;\n\n\tpublic get keyManager(): ActiveDescendantKeyManager<ɵLuOptionComponent<T>> {\n\t\treturn this._keyManager;\n\t}\n\n\tonScroll(evt: Event): void {\n\t\tif (!(evt.target instanceof HTMLElement)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (evt.target.scrollTop === 0) {\n\t\t\tthis.panelRef.previousPage.emit();\n\t\t}\n\n\t\tif (evt.target.scrollHeight - evt.target.scrollTop - evt.target.clientHeight < 1) {\n\t\t\tthis.panelRef.nextPage.emit();\n\t\t}\n\t}\n\n\tngAfterViewInit(): void {\n\t\tif (!this.optionsQL) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.initKeyManager();\n\t\tthis.panelRef.useDefaultPosition();\n\t}\n\n\ttoggleOption(option: T): void {\n\t\tconst matchingOption = this.selectedOptions.find((o) => this.optionComparer(o, option));\n\t\tthis.selectedOptions = matchingOption ? this.selectedOptions.filter((o) => o !== matchingOption) : [...this.selectedOptions, option];\n\t\tthis.panelRef.emitValue(this.selectedOptions);\n\t\tsetTimeout(() => this.panelRef.updatePosition());\n\t\tthis._keyManager?.setActiveItem(this.optionsQL.toArray().findIndex((o) => o.option === option));\n\t}\n\n\ttoggleOptions(notSelectedOptions: T[], groupOptions: T[]): void {\n\t\tif (notSelectedOptions.length) {\n\t\t\t// If some options are not selected, select them all\n\t\t\tthis.selectedOptions = [...this.selectedOptions, ...notSelectedOptions];\n\t\t} else {\n\t\t\t// If all options are already selected, unselect them all\n\t\t\tthis.selectedOptions = this.selectedOptions.filter((o) => !groupOptions.some((so) => this.optionComparer(so, o)));\n\t\t}\n\n\t\tthis.panelRef.emitValue(this.selectedOptions);\n\t\tsetTimeout(() => this.panelRef.updatePosition());\n\t}\n\n\tprotected initKeyManager(): void {\n\t\tthis._keyManager = new ActiveDescendantKeyManager(this.optionsQL).withHomeAndEnd();\n\n\t\tif (this.selectedOptions) {\n\t\t\tthis.options$\n\t\t\t\t?.pipe(\n\t\t\t\t\tobserveOn(asyncScheduler),\n\t\t\t\t\tmap((options) => (this.selectedOptions.length ? options.findIndex((o) => this.optionComparer(o, this.selectedOptions[0])) : -1)),\n\t\t\t\t\tfilter((index) => index !== -1),\n\t\t\t\t\ttake(1),\n\t\t\t\t\ttakeUntil(this.panelRef.closed),\n\t\t\t\t)\n\t\t\t\t.subscribe((selectedIndex) => this._keyManager.setActiveItem(selectedIndex));\n\t\t}\n\n\t\tthis._keyManager.change\n\t\t\t.pipe(\n\t\t\t\tmap(() => this._keyManager.activeItem?.id),\n\t\t\t\ttakeUntil(this.panelRef.closed),\n\t\t\t)\n\t\t\t.subscribe((activeDescendant) => this.panelRef.activeOptionIdChanged.emit(activeDescendant));\n\n\t\t/**\n\t\t * On new options, we want to select the first element with key manager\n\t\t */\n\t\tif (this.selectInput.searchable) {\n\t\t\tthis.selectInput.clueChange\n\t\t\t\t.pipe(\n\t\t\t\t\tswitchMap(() => this.optionsQL.changes.pipe(take(1))),\n\t\t\t\t\tdebounceTime(0),\n\t\t\t\t\ttakeUntil(this.panelRef.closed),\n\t\t\t\t)\n\t\t\t\t.subscribe(() => this.keyManager.setFirstItemActive());\n\t\t}\n\n\t\tthis.keyManager.setFirstItemActive();\n\t}\n}\n","<div class=\"lu-picker-panel lu-option-picker-panel mod-multiple\" role=\"dialog\" *ngIf=\"{ options: (options$ | async) || [] } as ctx\">\n\t<div\n\t\tclass=\"lu-picker-content\"\n\t\t[class.is-loading]=\"loading$ | async\"\n\t\t[class.is-filled]=\"ctx.options.length > 0\"\n\t\ttabindex=\"0\"\n\t\trole=\"listbox\"\n\t\taria-multiselectable=\"true\"\n\t\t(scroll)=\"onScroll($event)\"\n\t>\n\t\t<div class=\"lu-picker-content-option\">\n\t\t\t<ng-container *ngIf=\"grouping\">\n\t\t\t\t<div\n\t\t\t\t\t*ngFor=\"let group of groups$ | async\"\n\t\t\t\t\tclass=\"lu-picker-content-group\"\n\t\t\t\t\trole=\"group\"\n\t\t\t\t\t[attr.aria-labelledby]=\"selectId + '-group-' + group.key\"\n\t\t\t\t>\n\t\t\t\t\t<div class=\"lu-picker-content-option-group-title\" role=\"presentation\">\n\t\t\t\t\t\t<ng-container *luPortal=\"grouping.content; context: { $implicit: group }\" />\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t*ngIf=\"group.options | luNotSelectedOptions:selectedOptions:optionComparer as notSelectedOptions\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tclass=\"link\"\n\t\t\t\t\t\t\t[id]=\"selectId + '-group-' + group.key\"\n\t\t\t\t\t\t\t(click)=\"toggleOptions(notSelectedOptions, group.options)\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{ notSelectedOptions.length ? intl.selectAll : intl.unselectAll }}\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"optionsList\" [ngTemplateOutletContext]=\"{ $implicit: group.options }\" />\n\t\t\t\t</div>\n\t\t\t</ng-container>\n\t\t\t<ng-container *ngIf=\"!grouping\">\n\t\t\t\t<ng-template [ngTemplateOutlet]=\"optionsList\" [ngTemplateOutletContext]=\"{ $implicit: ctx.options }\" />\n\t\t\t</ng-container>\n\n\t\t\t<ng-template #optionsList let-options>\n\t\t\t\t<lu-select-option\n\t\t\t\t\t*ngFor=\"let option of options; let index = index\"\n\t\t\t\t\t[option]=\"option\"\n\t\t\t\t\t[optionTpl]=\"optionTpl\"\n\t\t\t\t\t[optionIndex]=\"index\"\n\t\t\t\t\t[scrollIntoViewOptions]=\"{ block: 'nearest' }\"\n\t\t\t\t\t[isSelected]=\"option | luIsOptionSelected:optionComparer:selectedOptions\"\n\t\t\t\t\t(click)=\"toggleOption(option)\"\n\t\t\t\t/>\n\t\t\t</ng-template>\n\t\t\t<div class=\"lu-picker-content-option-emptyState\" *ngIf=\"ctx.options.length === 0 && (loading$ | async) === false\">\n\t\t\t\t{{intl.emptyResults}}\n\t\t\t</div>\n\t\t</div>\n\t\t<div *ngIf=\"loading$ | async\" class=\"lu-picker-content-loading\">\n\t\t\t<div class=\"loading\"></div>\n\t\t\t<span>{{intl.loading}}</span>\n\t\t</div>\n\t</div>\n\t<!--<div class=\"lu-picker-content-add\">\n\t\t<button class=\"button mod-text mod-icon palette-product\" type=\"button\">\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-mathsPlus\"></span>Add a new supplier\n\t\t</button>\n\t</div>-->\n</div>\n","import { ConnectedPosition, Overlay, OverlayConfig, OverlayPositionBuilder, OverlayRef, PositionStrategy, ScrollStrategyOptions } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectorRef, ComponentRef, ElementRef, Injectable, Injector, inject } from '@angular/core';\nimport { takeUntil } from 'rxjs';\nimport { LuMultiSelectPanelComponent } from '../panel/index';\nimport { MULTI_SELECT_INPUT } from '../select.model';\nimport { LuMultiSelectPanelRef } from './panel.model';\nimport { LuMultiSelectInputComponent } from './select-input.component';\n\nclass MultiSelectPanelRef<T> extends LuMultiSelectPanelRef<T> {\n\tinstance: LuMultiSelectPanelComponent<T>;\n\tprivate panelRef: ComponentRef<LuMultiSelectPanelComponent<T>>;\n\tprivate portalRef: ComponentPortal<LuMultiSelectPanelComponent<T>>;\n\n\tconstructor(private overlayRef: OverlayRef, parentInjector: Injector, selectInput: LuMultiSelectInputComponent<T>, protected defaultPositionStrategy: PositionStrategy) {\n\t\tsuper();\n\n\t\tconst injector = Injector.create({\n\t\t\tproviders: [\n\t\t\t\t{ provide: LuMultiSelectPanelRef, useValue: this },\n\t\t\t\t{ provide: MULTI_SELECT_INPUT, useValue: selectInput },\n\t\t\t],\n\t\t\tparent: parentInjector,\n\t\t});\n\n\t\tthis.portalRef = new ComponentPortal<LuMultiSelectPanelComponent<T>>(LuMultiSelectPanelComponent, undefined, injector);\n\t\tthis.panelRef = overlayRef.attach(this.portalRef);\n\t\tthis.instance = this.panelRef.instance;\n\n\t\toverlayRef\n\t\t\t.backdropClick()\n\t\t\t.pipe(takeUntil(this.closed))\n\t\t\t.subscribe(() => this.close());\n\t}\n\n\temitValue(value: T[]): void {\n\t\tthis.valueChanged.emit(value);\n\t}\n\n\tupdateSelectedOptions(selectedOptions: T[]): void {\n\t\tthis.instance.selectedOptions = selectedOptions;\n\t\t// Run change detection on the panel component\n\t\tthis.panelRef.injector.get(ChangeDetectorRef).markForCheck();\n\t}\n\n\tuseDefaultPosition(): void {\n\t\tthis.overlayRef.updatePositionStrategy(this.defaultPositionStrategy);\n\t}\n\n\tupdatePosition(): void {\n\t\tthis.overlayRef.updatePosition();\n\t}\n\n\toverride close(): void {\n\t\tsuper.close();\n\t\tthis.panelRef.destroy();\n\t\tthis.overlayRef.detach();\n\t}\n\n\thandleKeyManagerEvent(event: KeyboardEvent) {\n\t\tthis.instance.keyManager.onKeydown(event);\n\t}\n\n\tselectCurrentlyHighlightedValue(): void {\n\t\tthis.instance.toggleOption(this.instance.keyManager?.activeItem?.option);\n\t}\n}\n\n@Injectable()\nexport class LuMultiSelectPanelRefFactory {\n\tprotected overlay = inject(Overlay);\n\tprotected elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\tprotected positionBuilder = inject(OverlayPositionBuilder);\n\tprotected scrollStrategies = inject(ScrollStrategyOptions);\n\tprotected parentInjector = inject(Injector);\n\n\tbuildPanelRef<T>(selectInput: LuMultiSelectInputComponent<T>, defaultOverlayConfigOverride: OverlayConfig = {}): LuMultiSelectPanelRef<T> {\n\t\tconst defaultOverlayConfig = this.buildDefaultOverlayConfig(defaultOverlayConfigOverride);\n\n\t\tconst overlayRef = this.overlay.create(defaultOverlayConfig);\n\n\t\toverlayRef.hostElement.style.transitionProperty = 'height';\n\t\toverlayRef.hostElement.style.transitionDuration = 'var(--commons-animations-durations-standard)';\n\n\t\treturn new MultiSelectPanelRef(overlayRef, this.parentInjector, selectInput, defaultOverlayConfig.positionStrategy);\n\t}\n\n\tprotected buildDefaultOverlayConfig(overlayConfigOverride: OverlayConfig = {}): OverlayConfig {\n\t\tconst overlayConfig: OverlayConfig = { ...overlayConfigOverride };\n\n\t\tconst config = { overlapInput: false, offsetY: 2 };\n\t\toverlayConfig.positionStrategy = this.positionBuilder\n\t\t\t.flexibleConnectedTo(this.elementRef)\n\t\t\t.withViewportMargin(10)\n\t\t\t.withPositions([\n\t\t\t\tthis.buildPosition('bottom', 'right', config),\n\t\t\t\tthis.buildPosition('bottom', 'left', config),\n\t\t\t\tthis.buildPosition('top', 'right', config),\n\t\t\t\tthis.buildPosition('top', 'left', config),\n\t\t\t]);\n\t\toverlayConfig.scrollStrategy = this.scrollStrategies.reposition();\n\t\toverlayConfig.minWidth = this.elementRef.nativeElement.clientWidth;\n\t\toverlayConfig.maxWidth = '100vw';\n\n\t\treturn overlayConfig;\n\t}\n\n\tprotected buildPosition(\n\t\tyDirection: 'top' | 'bottom',\n\t\txDirection: 'left' | 'right',\n\t\tconfig: {\n\t\t\toffsetX?: number;\n\t\t\toffsetY?: number;\n\t\t\toverlapInput: boolean;\n\t\t},\n\t): ConnectedPosition {\n\t\tconst originX = xDirection === 'right' ? 'start' : 'end';\n\t\tconst overlayX = originX;\n\n\t\tconst oppositeYDirection = yDirection === 'top' ? 'bottom' : 'top';\n\t\tconst { originY, overlayY } = config.overlapInput\n\t\t\t? ({\n\t\t\t\t\toriginY: oppositeYDirection,\n\t\t\t\t\toverlayY: oppositeYDirection,\n\t\t\t } as const)\n\t\t\t: ({ originY: yDirection, overlayY: oppositeYDirection } as const);\n\n\t\treturn {\n\t\t\toriginX,\n\t\t\toriginY,\n\t\t\toverlayX,\n\t\t\toverlayY,\n\t\t\t...(config.offsetX ? { offsetX: xDirection === 'right' ? config.offsetX : -config.offsetX } : {}),\n\t\t\t...(config.offsetY ? { offsetY: yDirection === 'bottom' ? config.offsetY : -config.offsetY } : {}),\n\t\t};\n\t}\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, forwardRef, inject, Input, numberAttribute, OnDestroy, OnInit, TemplateRef, Type, ViewEncapsulation } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { getIntl } from '@lucca-front/ng/core';\nimport { ALuSelectInputComponent, LuOptionContext, provideLuSelectLabelsAndIds, provideLuSelectOverlayContainer, ɵLuOptionOutletDirective } from '@lucca-front/ng/core-select';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { LuTooltipModule } from '@lucca-front/ng/tooltip';\nimport { Subject } from 'rxjs';\nimport { LuMultiSelectDefaultDisplayerComponent } from '../displayer/index';\nimport { LU_MULTI_SELECT_TRANSLATIONS } from '../select.translate';\nimport { LuMultiSelectPanelRefFactory } from './panel-ref.factory';\nimport { LuMultiSelectPanelRef } from './panel.model';\n\n@Component({\n\tselector: 'lu-multi-select',\n\tstandalone: true,\n\timports: [CommonModule, LuTooltipModule, ɵLuOptionOutletDirective, IconComponent],\n\ttemplateUrl: './select-input.component.html',\n\tstyleUrls: ['./select-input.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => LuMultiSelectInputComponent),\n\t\t\tmulti: true,\n\t\t},\n\t\t{\n\t\t\tprovide: ALuSelectInputComponent,\n\t\t\tuseExisting: forwardRef(() => LuMultiSelectInputComponent),\n\t\t},\n\t\tprovideLuSelectOverlayContainer(),\n\t\tprovideLuSelectLabelsAndIds(),\n\t\tLuMultiSelectPanelRefFactory,\n\t],\n\thost: {\n\t\tclass: 'multiSelect',\n\t},\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class LuMultiSelectInputComponent<T> extends ALuSelectInputComponent<T, T[]> implements ControlValueAccessor, OnDestroy, OnInit {\n\tintl = getIntl(LU_MULTI_SELECT_TRANSLATIONS);\n\n\t@Input()\n\tvaluesTpl?: TemplateRef<LuOptionContext<T[]>> | Type<unknown> = LuMultiSelectDefaultDisplayerComponent;\n\n\t@Input({ transform: numberAttribute })\n\tmaxValuesShown = 500;\n\n\toverride _value: T[] = [];\n\n\tpublic override get panelRef(): LuMultiSelectPanelRef<T> | undefined {\n\t\treturn this._panelRef;\n\t}\n\n\tprotected override _panelRef?: LuMultiSelectPanelRef<T>;\n\n\tprotected panelRefFactory = inject(LuMultiSelectPanelRefFactory);\n\n\t/**\n\t * This is used to tell the displayer to focus on the input element\n\t * keepClue is used to avoid triggering an update which would open the panel,\n\t * mainly for when we want to focus without opening the panel\n\t */\n\tpublic readonly focusInput$ = new Subject<void | { keepClue: boolean }>();\n\n\tpublic readonly emptyClue$ = new Subject<void>();\n\n\tpublic override focusInput(): void {\n\t\tthis.focusInput$.next({ keepClue: true });\n\t}\n\n\tpublic override emptyClue(): void {\n\t\tthis.emptyClue$.next();\n\t}\n\n\tpublic override writeValue(value: T[]): void {\n\t\tsuper.writeValue(value);\n\t\tthis.panelRef?.updateSelectedOptions(value);\n\t}\n\n\tpublic override updateValue(value: T[], skipFocus = false): void {\n\t\tsuper.updateValue(value);\n\t\tif (!skipFocus) {\n\t\t\tthis.focusInput();\n\t\t}\n\t}\n\n\tprotected override buildPanelRef(): LuMultiSelectPanelRef<T> {\n\t\treturn this.panelRefFactory.buildPanelRef(this, this.overlayConfig);\n\t}\n\n\tprotected override bindInputToPanelRefEvents(): void {\n\t\tif (!this.panelRef) {\n\t\t\treturn;\n\t\t}\n\n\t\tsuper.bindInputToPanelRefEvents();\n\t}\n\n\tprotected override get hasValue(): boolean {\n\t\treturn this.value && this.value.length > 0;\n\t}\n\n\toverride clearValue(event: MouseEvent): void {\n\t\tevent.stopPropagation();\n\t\tthis.onChange?.([]);\n\t\tthis.value = [];\n\t\tthis.focusInput$.next({ keepClue: true });\n\t}\n\n\toverride ngOnDestroy() {\n\t\tsuper.ngOnDestroy();\n\t\tthis.focusInput$.complete();\n\t}\n}\n","<ng-container *luOptionOutlet=\"valuesTpl; value: value || []\"></ng-container>\n\n<button *ngIf=\"hasValue && clearable\" role=\"button\" class=\"multipleSelect-clear clear\" (click)=\"clearValue($event)\">\n\t<span class=\"u-mask\">{{intl.clear}}</span>\n</button>\n<span aria-hidden=\"true\" class=\"multipleSelect-arrow lucca-icon icon-arrowChevronBottom\"></span>\n","import { InjectionToken } from '@angular/core';\nimport { ILuTranslation } from '@lucca-front/ng/core';\n\nexport const LU_MULTI_SELECT_DISPLAYER_TRANSLATIONS = new InjectionToken('LuMultiSelectDisplayerTranslations', {\n\tfactory: () => luMultiSelectDisplayerTranslations,\n});\n\nexport interface ILuMultiSelectDisplayerLabel {\n\totherResult: string;\n\totherResults: string;\n\tshowResultsDetails: string;\n\tremoveOption: string;\n}\n\nexport const luMultiSelectDisplayerTranslations: ILuTranslation<ILuMultiSelectDisplayerLabel> = {\n\tfr: {\n\t\totherResult: 'autre résultat',\n\t\totherResults: 'autres résultats',\n\t\tshowResultsDetails: 'Voir le détail',\n\t\tremoveOption: \"Supprimer l'option\",\n\t},\n\ten: {\n\t\totherResult: 'other result',\n\t\totherResults: 'other results',\n\t\tshowResultsDetails: 'Show details',\n\t\tremoveOption: 'Remove option',\n\t},\n\tde: {\n\t\totherResult: 'anderes Ergebnis',\n\t\totherResults: 'andere Ergebnisse',\n\t\tshowResultsDetails: 'Details anzeigen',\n\t\tremoveOption: 'Remove option',\n\t},\n\tes: {\n\t\totherResult: 'otro resultado',\n\t\totherResults: 'otros resultados',\n\t\tshowResultsDetails: 'Mostrar detalles',\n\t\tremoveOption: 'Remove option',\n\t},\n\tpt: {\n\t\totherResult: 'outro resultado',\n\t\totherResults: 'outros resultados',\n\t\tshowResultsDetails: 'Mostrar detalhes',\n\t\tremoveOption: 'Remove option',\n\t},\n};\n","import { AsyncPipe, NgFor, NgIf, NgPlural, NgPluralCase } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, DestroyRef, ElementRef, OnInit, ViewChild, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\nimport { getIntl } from '@lucca-front/ng/core';\nimport { ILuOptionContext, LU_OPTION_CONTEXT, ɵLuOptionOutletDirective } from '@lucca-front/ng/core-select';\nimport { InputDirective } from '@lucca-front/ng/form-field';\nimport { LuTooltipModule } from '@lucca-front/ng/tooltip';\nimport { map } from 'rxjs/operators';\nimport { LuMultiSelectInputComponent } from '../input/select-input.component';\nimport { LU_MULTI_SELECT_DISPLAYER_TRANSLATIONS } from './default-displayer.translate';\n\n@Component({\n\tselector: 'lu-multi-select-default-displayer',\n\tstandalone: true,\n\timports: [AsyncPipe, LuTooltipModule, NgIf, NgFor, NgPlural, NgPluralCase, ɵLuOptionOutletDirective, FormsModule, InputDirective],\n\ttemplate: `\n\t\t<div class=\"multipleSelect-displayer\">\n\t\t\t<input\n\t\t\t\tclass=\"multipleSelect-displayer-search\"\n\t\t\t\ttype=\"text\"\n\t\t\t\t[attr.aria-expanded]=\"select.isPanelOpen\"\n\t\t\t\t[attr.aria-activedescendant]=\"select.activeDescendant$ | async\"\n\t\t\t\t[attr.aria-controls]=\"ariaControls\"\n\t\t\t\t[disabled]=\"select.disabled\"\n\t\t\t\t[readonly]=\"!select.searchable\"\n\t\t\t\t#inputElement\n\t\t\t\tngModel\n\t\t\t\t(ngModelChange)=\"select.clueChanged($event)\"\n\t\t\t\t[placeholder]=\"placeholder$ | async\"\n\t\t\t\t(keydown.backspace)=\"inputBackspace()\"\n\t\t\t\trole=\"combobox\"\n\t\t\t\taria-haspopup=\"listbox\"\n\t\t\t\tluInput\n\t\t\t/>\n\t\t\t<div *ngFor=\"let option of displayedOptions$ | async; let index = index\" class=\"multipleSelect-displayer-chip chip\" [class.mod-unkillable]=\"disabled\">\n\t\t\t\t<span class=\"multipleSelect-displayer-chip-value\"><ng-container *luOptionOutlet=\"select.valueTpl || select.optionTpl; value: option\"></ng-container></span>\n\t\t\t\t<button *ngIf=\"!disabled\" type=\"button\" class=\"chip-kill\" (click)=\"unselectOption(option, $event)\">\n\t\t\t\t\t<span class=\"u-mask\">{{ intl.removeOption }}</span>\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t\t<div class=\"chip\" *ngIf=\"overflowOptions$ | async as overflow\">+ {{ overflow }}</div>\n\t\t</div>\n\t`,\n\tstyleUrls: ['./default-displayer.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LuMultiSelectDefaultDisplayerComponent<T> implements OnInit {\n\tselect = inject<LuMultiSelectInputComponent<T>>(LuMultiSelectInputComponent);\n\tintl = getIntl(LU_MULTI_SELECT_DISPLAYER_TRANSLATIONS);\n\n\tprotected destroyRef = inject(DestroyRef);\n\n\t@ViewChild('inputElement')\n\tinputElementRef: ElementRef<HTMLInputElement>;\n\n\tget disabled() {\n\t\treturn this.select.disabled;\n\t}\n\n\tget value(): T[] {\n\t\treturn this.select.value || [];\n\t}\n\n\tget ariaControls() {\n\t\treturn this.select.ariaControls;\n\t}\n\n\tcontext = inject<ILuOptionContext<T[]>>(LU_OPTION_CONTEXT);\n\n\tplaceholder$ = this.context.option$.pipe(\n\t\tmap((options) => {\n\t\t\tif ((options || []).length > 0) {\n\t\t\t\treturn '';\n\t\t\t}\n\t\t\treturn this.select.placeholder;\n\t\t}),\n\t);\n\n\tdisplayedOptions$ = this.context.option$.pipe(\n\t\tmap((options) => {\n\t\t\tif (this.select.maxValuesShown) {\n\t\t\t\treturn (options || []).slice(0, this.select.maxValuesShown);\n\t\t\t}\n\t\t\treturn options;\n\t\t}),\n\t);\n\n\toverflowOptions$ = this.context.option$.pipe(\n\t\tmap((options) => {\n\t\t\treturn Math.max(0, (options || []).length - this.select.maxValuesShown);\n\t\t}),\n\t);\n\n\tunselectOption(option: T, $event?: Event): void {\n\t\tif ($event) {\n\t\t\t$event.stopPropagation();\n\t\t\t$event.preventDefault();\n\t\t}\n\t\tthis.select.updateValue(\n\t\t\tthis.value.filter((o) => o !== option),\n\t\t\ttrue,\n\t\t);\n\t\tsetTimeout(() => {\n\t\t\tthis.select.panelRef?.updatePosition();\n\t\t\tthis.inputElementRef.nativeElement.focus();\n\t\t});\n\t}\n\n\tinputBackspace(): void {\n\t\tif (this.value.length > 0 && this.inputElementRef.nativeElement.value.length === 0) {\n\t\t\tthis.unselectOption(this.value[this.value.length - 1]);\n\t\t\tthis.select.panelRef?.updateSelectedOptions(this.value);\n\t\t}\n\t}\n\tngOnInit(): void {\n\t\tthis.select.focusInput$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((data?: { keepClue: true }) => {\n\t\t\t// Everytime we want to focus, we need to reset the input\n\t\t\t// This is done when a value is selected and when panel is opened.\n\t\t\tif (!data?.keepClue) {\n\t\t\t\tthis.inputElementRef.nativeElement.value = '';\n\t\t\t\tthis.select.clueChanged('');\n\t\t\t}\n\n\t\t\tthis.inputElementRef.nativeElement.focus();\n\t\t});\n\t\tthis.select.emptyClue$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n\t\t\tthis.inputElementRef.nativeElement.value = '';\n\t\t});\n\t}\n}\n","import { Directive, Input, TemplateRef } from '@angular/core';\nimport { LuOptionContext } from '@lucca-front/ng/core-select';\nimport { LuMultiSelectInputComponent } from '../input';\n\n@Directive({\n\tselector: '[luMultiDisplayer]',\n\tstandalone: true,\n})\nexport class LuMultiDisplayerDirective<T> {\n\t@Input('luMultiDisplayerSelect') set select(select: LuMultiSelectInputComponent<T>) {\n\t\tselect.valuesTpl = this.templateRef;\n\t}\n\n\tpublic constructor(private templateRef: TemplateRef<LuOptionContext<T[]>>) {}\n\n\tpublic static ngTemplateContextGuard<T>(_dir: LuMultiDisplayerDirective<T>, ctx: unknown): ctx is LuOptionContext<T[]> {\n\t\treturn true;\n\t}\n}\n","import { DestroyRef, Directive, ElementRef, HostBinding, inject, OnInit } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ILuOptionContext, LU_OPTION_CONTEXT } from '@lucca-front/ng/core-select';\nimport { map } from 'rxjs/operators';\nimport { LuMultiSelectInputComponent } from '../input/select-input.component';\n\n@Directive({\n\tselector: '[luMultiSelectDisplayerInput]',\n\tstandalone: true,\n\thost: {\n\t\t'aria-haspopup': 'listbox',\n\t\trole: 'combobox',\n\t\tclass: 'multipleSelect-displayer-search',\n\t},\n})\nexport class LuMultiSelectDisplayerInputDirective<T> implements OnInit {\n\tselect = inject<LuMultiSelectInputComponent<T>>(LuMultiSelectInputComponent);\n\n\tcontext = inject<ILuOptionContext<T[]>>(LU_OPTION_CONTEXT);\n\n\telementRef = inject<ElementRef<HTMLInputElement>>(ElementRef);\n\n\tdestroyRef = inject(DestroyRef);\n\n\t@HostBinding('attr.aria-expanded')\n\tpanelOpen = false;\n\n\t@HostBinding('attr.aria-activedescendant')\n\tactiveDescendant = '';\n\n\t@HostBinding('attr.aria-controls')\n\tcontrols = this.select?.ariaControls;\n\n\t@HostBinding('disabled')\n\tdisabled = false;\n\n\t@HostBinding('placeholder')\n\tplaceholder = '';\n\n\tngOnInit(): void {\n\t\tthis.context.option$\n\t\t\t.pipe(\n\t\t\t\tmap((options) => {\n\t\t\t\t\tif ((options || []).length > 0) {\n\t\t\t\t\t\treturn '';\n\t\t\t\t\t}\n\t\t\t\t\treturn this.select.placeholder || '';\n\t\t\t\t}),\n\t\t\t\ttakeUntilDestroyed(this.destroyRef),\n\t\t\t)\n\t\t\t.subscribe((placeholder) => (this.placeholder = placeholder));\n\t\tthis.select.isPanelOpen$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((open) => {\n\t\t\tthis.panelOpen = open;\n\t\t});\n\t\tthis.select.activeDescendant$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((activeDescendant) => {\n\t\t\tthis.activeDescendant = activeDescendant;\n\t\t});\n\t\tthis.context.isDisabled$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((disabled) => {\n\t\t\tthis.disabled = disabled;\n\t\t});\n\t\tthis.select.focusInput$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n\t\t\tthis.elementRef.nativeElement.value = '';\n\t\t\tthis.select.clueChanged('');\n\t\t\tthis.elementRef.nativeElement.focus();\n\t\t});\n\t\tthis.select.emptyClue$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n\t\t\tthis.elementRef.nativeElement.value = '';\n\t\t});\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["map","i1"],"mappings":"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"}
1
+ {"version":3,"file":"lucca-front-ng-multi-select.mjs","sources":["../../../packages/ng/multi-select/select.translate.ts","../../../packages/ng/multi-select/input/panel.model.ts","../../../packages/ng/multi-select/select.model.ts","../../../packages/ng/multi-select/panel/not-selected.pipe.ts","../../../packages/ng/multi-select/panel/option-selected.pipe.ts","../../../packages/ng/multi-select/panel/selected-chip.directive.ts","../../../packages/ng/multi-select/panel/panel.component.ts","../../../packages/ng/multi-select/panel/panel.component.html","../../../packages/ng/multi-select/input/panel-ref.factory.ts","../../../packages/ng/multi-select/input/select-input.component.ts","../../../packages/ng/multi-select/input/select-input.component.html","../../../packages/ng/multi-select/displayer/default-displayer.translate.ts","../../../packages/ng/multi-select/displayer/default-displayer.component.ts","../../../packages/ng/multi-select/displayer/displayer.directive.ts","../../../packages/ng/multi-select/displayer/displayer-input.directive.ts","../../../packages/ng/multi-select/lucca-front-ng-multi-select.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { ILuTranslation } from '@lucca-front/ng/core';\n\nexport const LU_MULTI_SELECT_TRANSLATIONS = new InjectionToken('LuMultiSelectTranslations', {\n\tfactory: () => luMultiSelectTranslations,\n});\n\nexport interface ILuMultiSelectLabel {\n\tplaceholder: string;\n\tsearch: string;\n\tclear: string;\n\tclearSearch: string;\n\temptyResults: string;\n\temptySelection: string;\n\texpand: string;\n\treduce: string;\n\tselectAll: string;\n\tunselectAll: string;\n\tloading: string;\n}\n\nexport const luMultiSelectTranslations: ILuTranslation<ILuMultiSelectLabel> = {\n\ten: {\n\t\tplaceholder: 'Select an option',\n\t\tsearch: 'Search',\n\t\tclear: 'Clear selection',\n\t\tclearSearch: 'Clear search',\n\t\temptyResults: 'No results',\n\t\temptySelection: 'Select items in the left list to start',\n\t\texpand: 'Expand',\n\t\treduce: 'Reduce',\n\t\tselectAll: 'Select all',\n\t\tunselectAll: 'Unselect all',\n\t\tloading: 'Loading...',\n\t},\n\tfr: {\n\t\tplaceholder: 'Sélectionnez une option',\n\t\tsearch: 'Rechercher',\n\t\tclear: 'Vider la sélection',\n\t\tclearSearch: 'Vider la recherche',\n\t\temptySelection: 'Sélectionnez les éléments dans la liste de gauche pour commencer',\n\t\temptyResults: 'Aucun résultat pour votre recherche',\n\t\texpand: 'Étendre',\n\t\treduce: 'Réduire',\n\t\tselectAll: 'Tout sélectionner',\n\t\tunselectAll: 'Tout désélectionner',\n\t\tloading: 'Chargement en cours...',\n\t},\n\tde: {\n\t\tplaceholder: 'Wählen Sie eine Option',\n\t\tsearch: 'Suche',\n\t\tclear: 'Auswahl löschen',\n\t\tclearSearch: 'Suche löschen',\n\t\temptyResults: 'Keine Ergebnisse für Ihre Suche',\n\t\temptySelection: 'Wählen Sie Elemente in der linken Liste aus, um zu beginnen',\n\t\texpand: 'Erweitern',\n\t\treduce: 'Reduzieren',\n\t\tselectAll: 'Alles auswählen',\n\t\tunselectAll: 'Alles abwählen',\n\t\tloading: 'Wird geladen...',\n\t},\n\tes: {\n\t\tplaceholder: 'Seleccione una opción',\n\t\tsearch: 'Buscar',\n\t\tclear: 'Borrar selección',\n\t\tclearSearch: 'Borrar búsqueda',\n\t\temptyResults: 'No hay resultados para su búsqueda',\n\t\temptySelection: 'Seleccione elementos en la lista de la izquierda para comenzar',\n\t\texpand: 'Expandir',\n\t\treduce: 'Reducir',\n\t\tselectAll: 'Seleccionar todo',\n\t\tunselectAll: 'Deseleccionar todo',\n\t\tloading: 'Cargando...',\n\t},\n\tpt: {\n\t\tplaceholder: 'Selecione uma opção',\n\t\tsearch: 'Pesquisar',\n\t\tclear: 'Limpar seleção',\n\t\tclearSearch: 'Limpar pesquisa',\n\t\temptyResults: 'Nenhum resultado para sua pesquisa',\n\t\temptySelection: 'Selecione itens na lista à esquerda para começar',\n\t\texpand: 'Expandir',\n\t\treduce: 'Reduzir',\n\t\tselectAll: 'Selecionar tudo',\n\t\tunselectAll: 'Desmarcar tudo',\n\t\tloading: 'Carregando...',\n\t},\n};\n","import { LuSelectPanelRef } from '@lucca-front/ng/core-select';\n\nexport abstract class LuMultiSelectPanelRef<T> extends LuSelectPanelRef<T, T[]> {\n\tabstract updateSelectedOptions(selectedOptions: T[]): void;\n\n\tabstract useDefaultPosition(): void;\n\n\tabstract updatePosition(): void;\n}\n","import { InjectionToken } from '@angular/core';\nimport type { LuMultiSelectInputComponent } from './input';\n\nexport const MULTI_SELECT_INPUT = new InjectionToken<LuMultiSelectInputComponent<unknown>>('MultiSelectInput');\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n\tname: 'luNotSelectedOptions',\n\tstandalone: true,\n\tpure: true,\n})\nexport class LuNotSelectedOptionsPipe<T> implements PipeTransform {\n\ttransform(groupOptions: T[], selectedOptions: T[], optionComparer: (option1: T, option2: T) => boolean): T[] {\n\t\treturn groupOptions.filter((o) => !selectedOptions.some((so) => optionComparer(so, o)));\n\t}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n\tname: 'luIsOptionSelected',\n\tstandalone: true,\n})\nexport class LuIsOptionSelectedPipe implements PipeTransform {\n\ttransform<T>(option: T, comparer: (option1: T, option2: T) => boolean, selectedOptions: T[]): boolean {\n\t\treturn selectedOptions.some((selectedOption) => comparer(option, selectedOption));\n\t}\n}\n","import { Highlightable } from '@angular/cdk/a11y';\nimport { Directive, ElementRef, Input, inject } from '@angular/core';\n\n@Directive({\n\tstandalone: true,\n\tselector: '[luMultiSelectSelectedChip]',\n})\nexport class ɵLuMultiSelectSelectedChipDirective<T> implements Highlightable {\n\t@Input('luMultiSelectSelectedChip') option?: T;\n\n\telementRef = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n\n\tsetActiveStyles(): void {\n\t\tthis.elementRef.querySelector('button').focus();\n\t}\n\tsetInactiveStyles(): void {\n\t\t// Nothing to do\n\t}\n}\n","import { A11yModule, ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { AsyncPipe, NgFor, NgIf, NgTemplateOutlet } from '@angular/common';\nimport { AfterViewInit, ChangeDetectionStrategy, Component, QueryList, ViewChildren, inject } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { PortalDirective, getIntl } from '@lucca-front/ng/core';\nimport { SELECT_ID, ɵLuOptionComponent, ɵLuOptionOutletDirective, ɵgenerateGroups } from '@lucca-front/ng/core-select';\nimport { EMPTY, asyncScheduler, filter, map, observeOn, take, takeUntil } from 'rxjs';\nimport { debounceTime, switchMap } from 'rxjs/operators';\nimport { LuMultiSelectInputComponent } from '../input';\nimport { LuMultiSelectPanelRef } from '../input/panel.model';\nimport { MULTI_SELECT_INPUT } from '../select.model';\nimport { LU_MULTI_SELECT_TRANSLATIONS } from '../select.translate';\nimport { LuNotSelectedOptionsPipe } from './not-selected.pipe';\nimport { LuIsOptionSelectedPipe } from './option-selected.pipe';\nimport { ɵLuMultiSelectSelectedChipDirective } from './selected-chip.directive';\n\n@Component({\n\tselector: 'lu-select-panel',\n\ttemplateUrl: './panel.component.html',\n\tstyleUrls: ['./panel.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [\n\t\tA11yModule,\n\t\tAsyncPipe,\n\t\tFormsModule,\n\t\tLuIsOptionSelectedPipe,\n\t\tNgIf,\n\t\tNgFor,\n\t\tɵLuOptionComponent,\n\t\tɵLuOptionOutletDirective,\n\t\tɵLuMultiSelectSelectedChipDirective,\n\t\tNgTemplateOutlet,\n\t\tPortalDirective,\n\t\tLuNotSelectedOptionsPipe,\n\t],\n})\nexport class LuMultiSelectPanelComponent<T> implements AfterViewInit {\n\tprotected selectInput = inject<LuMultiSelectInputComponent<T>>(MULTI_SELECT_INPUT);\n\tpanelRef = inject<LuMultiSelectPanelRef<T>>(LuMultiSelectPanelRef);\n\tselectId = inject(SELECT_ID);\n\tintl = getIntl(LU_MULTI_SELECT_TRANSLATIONS);\n\n\toptions$ = this.selectInput.options$;\n\tgrouping = this.selectInput.grouping;\n\tgroups$ = this.grouping ? this.options$.pipe(map((options) => ɵgenerateGroups(options, this.grouping.selector))) : EMPTY;\n\tloading$ = this.selectInput.loading$;\n\toptionComparer = this.selectInput.optionComparer;\n\tselectedOptions: T[] = this.selectInput.value || [];\n\toptionTpl = this.selectInput.optionTpl;\n\n\t@ViewChildren(ɵLuOptionComponent) optionsQL: QueryList<ɵLuOptionComponent<T>>;\n\tprivate _keyManager: ActiveDescendantKeyManager<ɵLuOptionComponent<T>>;\n\n\tpublic get keyManager(): ActiveDescendantKeyManager<ɵLuOptionComponent<T>> {\n\t\treturn this._keyManager;\n\t}\n\n\tonScroll(evt: Event): void {\n\t\tif (!(evt.target instanceof HTMLElement)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (evt.target.scrollTop === 0) {\n\t\t\tthis.panelRef.previousPage.emit();\n\t\t}\n\n\t\tif (evt.target.scrollHeight - evt.target.scrollTop - evt.target.clientHeight < 1) {\n\t\t\tthis.panelRef.nextPage.emit();\n\t\t}\n\t}\n\n\tngAfterViewInit(): void {\n\t\tif (!this.optionsQL) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.initKeyManager();\n\t\tthis.panelRef.useDefaultPosition();\n\t}\n\n\ttoggleOption(option: T): void {\n\t\tconst matchingOption = this.selectedOptions.find((o) => this.optionComparer(o, option));\n\t\tthis.selectedOptions = matchingOption ? this.selectedOptions.filter((o) => o !== matchingOption) : [...this.selectedOptions, option];\n\t\tthis.panelRef.emitValue(this.selectedOptions);\n\t\tsetTimeout(() => this.panelRef.updatePosition());\n\t\tthis._keyManager?.setActiveItem(this.optionsQL.toArray().findIndex((o) => o.option === option));\n\t}\n\n\ttoggleOptions(notSelectedOptions: T[], groupOptions: T[]): void {\n\t\tif (notSelectedOptions.length) {\n\t\t\t// If some options are not selected, select them all\n\t\t\tthis.selectedOptions = [...this.selectedOptions, ...notSelectedOptions];\n\t\t} else {\n\t\t\t// If all options are already selected, unselect them all\n\t\t\tthis.selectedOptions = this.selectedOptions.filter((o) => !groupOptions.some((so) => this.optionComparer(so, o)));\n\t\t}\n\n\t\tthis.panelRef.emitValue(this.selectedOptions);\n\t\tsetTimeout(() => this.panelRef.updatePosition());\n\t}\n\n\tprotected initKeyManager(): void {\n\t\tthis._keyManager = new ActiveDescendantKeyManager(this.optionsQL).withHomeAndEnd();\n\n\t\tif (this.selectedOptions) {\n\t\t\tthis.options$\n\t\t\t\t?.pipe(\n\t\t\t\t\tobserveOn(asyncScheduler),\n\t\t\t\t\tmap((options) => (this.selectedOptions.length ? options.findIndex((o) => this.optionComparer(o, this.selectedOptions[0])) : -1)),\n\t\t\t\t\tfilter((index) => index !== -1),\n\t\t\t\t\ttake(1),\n\t\t\t\t\ttakeUntil(this.panelRef.closed),\n\t\t\t\t)\n\t\t\t\t.subscribe((selectedIndex) => this._keyManager.setActiveItem(selectedIndex));\n\t\t}\n\n\t\tthis._keyManager.change\n\t\t\t.pipe(\n\t\t\t\tmap(() => this._keyManager.activeItem?.id),\n\t\t\t\ttakeUntil(this.panelRef.closed),\n\t\t\t)\n\t\t\t.subscribe((activeDescendant) => this.panelRef.activeOptionIdChanged.emit(activeDescendant));\n\n\t\t/**\n\t\t * On new options, we want to select the first element with key manager\n\t\t */\n\t\tif (this.selectInput.searchable) {\n\t\t\tthis.selectInput.clueChange\n\t\t\t\t.pipe(\n\t\t\t\t\tswitchMap(() => this.optionsQL.changes.pipe(take(1))),\n\t\t\t\t\tdebounceTime(0),\n\t\t\t\t\ttakeUntil(this.panelRef.closed),\n\t\t\t\t)\n\t\t\t\t.subscribe(() => this.keyManager.setFirstItemActive());\n\t\t}\n\n\t\tthis.keyManager.setFirstItemActive();\n\t}\n}\n","<div class=\"lu-picker-panel lu-option-picker-panel mod-multiple\" role=\"dialog\" *ngIf=\"{ options: (options$ | async) || [] } as ctx\">\n\t<div\n\t\tclass=\"lu-picker-content\"\n\t\t[class.is-loading]=\"loading$ | async\"\n\t\t[class.is-filled]=\"ctx.options.length > 0\"\n\t\ttabindex=\"0\"\n\t\trole=\"listbox\"\n\t\taria-multiselectable=\"true\"\n\t\t(scroll)=\"onScroll($event)\"\n\t>\n\t\t<div class=\"lu-picker-content-option\">\n\t\t\t<ng-container *ngIf=\"grouping\">\n\t\t\t\t<div\n\t\t\t\t\t*ngFor=\"let group of groups$ | async\"\n\t\t\t\t\tclass=\"lu-picker-content-group\"\n\t\t\t\t\trole=\"group\"\n\t\t\t\t\t[attr.aria-labelledby]=\"selectId + '-group-' + group.key\"\n\t\t\t\t>\n\t\t\t\t\t<div class=\"lu-picker-content-option-group-title\" role=\"presentation\">\n\t\t\t\t\t\t<ng-container *luPortal=\"grouping.content; context: { $implicit: group }\" />\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t*ngIf=\"group.options | luNotSelectedOptions:selectedOptions:optionComparer as notSelectedOptions\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tclass=\"link\"\n\t\t\t\t\t\t\t[id]=\"selectId + '-group-' + group.key\"\n\t\t\t\t\t\t\t(click)=\"toggleOptions(notSelectedOptions, group.options)\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{ notSelectedOptions.length ? intl.selectAll : intl.unselectAll }}\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"optionsList\" [ngTemplateOutletContext]=\"{ $implicit: group.options }\" />\n\t\t\t\t</div>\n\t\t\t</ng-container>\n\t\t\t<ng-container *ngIf=\"!grouping\">\n\t\t\t\t<ng-template [ngTemplateOutlet]=\"optionsList\" [ngTemplateOutletContext]=\"{ $implicit: ctx.options }\" />\n\t\t\t</ng-container>\n\n\t\t\t<ng-template #optionsList let-options>\n\t\t\t\t<lu-select-option\n\t\t\t\t\t*ngFor=\"let option of options; let index = index\"\n\t\t\t\t\t[option]=\"option\"\n\t\t\t\t\t[optionTpl]=\"optionTpl\"\n\t\t\t\t\t[optionIndex]=\"index\"\n\t\t\t\t\t[scrollIntoViewOptions]=\"{ block: 'nearest' }\"\n\t\t\t\t\t[isSelected]=\"option | luIsOptionSelected:optionComparer:selectedOptions\"\n\t\t\t\t\t(click)=\"toggleOption(option)\"\n\t\t\t\t/>\n\t\t\t</ng-template>\n\t\t\t<div class=\"lu-picker-content-option-emptyState\" *ngIf=\"ctx.options.length === 0 && (loading$ | async) === false\">\n\t\t\t\t{{intl.emptyResults}}\n\t\t\t</div>\n\t\t</div>\n\t\t<div *ngIf=\"loading$ | async\" class=\"lu-picker-content-loading\">\n\t\t\t<div class=\"loading\"></div>\n\t\t\t<span>{{intl.loading}}</span>\n\t\t</div>\n\t</div>\n\t<!--<div class=\"lu-picker-content-add\">\n\t\t<button class=\"button mod-text mod-icon palette-product\" type=\"button\">\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-mathsPlus\"></span>Add a new supplier\n\t\t</button>\n\t</div>-->\n</div>\n","import { ConnectedPosition, Overlay, OverlayConfig, OverlayPositionBuilder, OverlayRef, PositionStrategy, ScrollStrategyOptions } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ChangeDetectorRef, ComponentRef, ElementRef, Injectable, Injector, inject } from '@angular/core';\nimport { takeUntil } from 'rxjs';\nimport { LuMultiSelectPanelComponent } from '../panel/index';\nimport { MULTI_SELECT_INPUT } from '../select.model';\nimport { LuMultiSelectPanelRef } from './panel.model';\nimport { LuMultiSelectInputComponent } from './select-input.component';\n\nclass MultiSelectPanelRef<T> extends LuMultiSelectPanelRef<T> {\n\tinstance: LuMultiSelectPanelComponent<T>;\n\tprivate panelRef: ComponentRef<LuMultiSelectPanelComponent<T>>;\n\tprivate portalRef: ComponentPortal<LuMultiSelectPanelComponent<T>>;\n\n\tconstructor(private overlayRef: OverlayRef, parentInjector: Injector, selectInput: LuMultiSelectInputComponent<T>, protected defaultPositionStrategy: PositionStrategy) {\n\t\tsuper();\n\n\t\tconst injector = Injector.create({\n\t\t\tproviders: [\n\t\t\t\t{ provide: LuMultiSelectPanelRef, useValue: this },\n\t\t\t\t{ provide: MULTI_SELECT_INPUT, useValue: selectInput },\n\t\t\t],\n\t\t\tparent: parentInjector,\n\t\t});\n\n\t\tthis.portalRef = new ComponentPortal<LuMultiSelectPanelComponent<T>>(LuMultiSelectPanelComponent, undefined, injector);\n\t\tthis.panelRef = overlayRef.attach(this.portalRef);\n\t\tthis.instance = this.panelRef.instance;\n\n\t\toverlayRef\n\t\t\t.backdropClick()\n\t\t\t.pipe(takeUntil(this.closed))\n\t\t\t.subscribe(() => this.close());\n\t}\n\n\temitValue(value: T[]): void {\n\t\tthis.valueChanged.emit(value);\n\t}\n\n\tupdateSelectedOptions(selectedOptions: T[]): void {\n\t\tthis.instance.selectedOptions = selectedOptions;\n\t\t// Run change detection on the panel component\n\t\tthis.panelRef.injector.get(ChangeDetectorRef).markForCheck();\n\t}\n\n\tuseDefaultPosition(): void {\n\t\tthis.overlayRef.updatePositionStrategy(this.defaultPositionStrategy);\n\t}\n\n\tupdatePosition(): void {\n\t\tthis.overlayRef.updatePosition();\n\t}\n\n\toverride close(): void {\n\t\tsuper.close();\n\t\tthis.panelRef.destroy();\n\t\tthis.overlayRef.detach();\n\t}\n\n\thandleKeyManagerEvent(event: KeyboardEvent) {\n\t\tthis.instance.keyManager.onKeydown(event);\n\t}\n\n\tselectCurrentlyHighlightedValue(): void {\n\t\tthis.instance.toggleOption(this.instance.keyManager?.activeItem?.option);\n\t}\n}\n\n@Injectable()\nexport class LuMultiSelectPanelRefFactory {\n\tprotected overlay = inject(Overlay);\n\tprotected elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\tprotected positionBuilder = inject(OverlayPositionBuilder);\n\tprotected scrollStrategies = inject(ScrollStrategyOptions);\n\tprotected parentInjector = inject(Injector);\n\n\tbuildPanelRef<T>(selectInput: LuMultiSelectInputComponent<T>, defaultOverlayConfigOverride: OverlayConfig = {}): LuMultiSelectPanelRef<T> {\n\t\tconst defaultOverlayConfig = this.buildDefaultOverlayConfig(defaultOverlayConfigOverride);\n\n\t\tconst overlayRef = this.overlay.create(defaultOverlayConfig);\n\n\t\toverlayRef.hostElement.style.transitionProperty = 'height';\n\t\toverlayRef.hostElement.style.transitionDuration = 'var(--commons-animations-durations-standard)';\n\n\t\treturn new MultiSelectPanelRef(overlayRef, this.parentInjector, selectInput, defaultOverlayConfig.positionStrategy);\n\t}\n\n\tprotected buildDefaultOverlayConfig(overlayConfigOverride: OverlayConfig = {}): OverlayConfig {\n\t\tconst overlayConfig: OverlayConfig = { ...overlayConfigOverride };\n\n\t\tconst config = { overlapInput: false, offsetY: 2 };\n\t\toverlayConfig.positionStrategy = this.positionBuilder\n\t\t\t.flexibleConnectedTo(this.elementRef)\n\t\t\t.withViewportMargin(10)\n\t\t\t.withPositions([\n\t\t\t\tthis.buildPosition('bottom', 'right', config),\n\t\t\t\tthis.buildPosition('bottom', 'left', config),\n\t\t\t\tthis.buildPosition('top', 'right', config),\n\t\t\t\tthis.buildPosition('top', 'left', config),\n\t\t\t]);\n\t\toverlayConfig.scrollStrategy = this.scrollStrategies.reposition();\n\t\toverlayConfig.minWidth = this.elementRef.nativeElement.clientWidth;\n\t\toverlayConfig.maxWidth = '100vw';\n\n\t\treturn overlayConfig;\n\t}\n\n\tprotected buildPosition(\n\t\tyDirection: 'top' | 'bottom',\n\t\txDirection: 'left' | 'right',\n\t\tconfig: {\n\t\t\toffsetX?: number;\n\t\t\toffsetY?: number;\n\t\t\toverlapInput: boolean;\n\t\t},\n\t): ConnectedPosition {\n\t\tconst originX = xDirection === 'right' ? 'start' : 'end';\n\t\tconst overlayX = originX;\n\n\t\tconst oppositeYDirection = yDirection === 'top' ? 'bottom' : 'top';\n\t\tconst { originY, overlayY } = config.overlapInput\n\t\t\t? ({\n\t\t\t\t\toriginY: oppositeYDirection,\n\t\t\t\t\toverlayY: oppositeYDirection,\n\t\t\t } as const)\n\t\t\t: ({ originY: yDirection, overlayY: oppositeYDirection } as const);\n\n\t\treturn {\n\t\t\toriginX,\n\t\t\toriginY,\n\t\t\toverlayX,\n\t\t\toverlayY,\n\t\t\t...(config.offsetX ? { offsetX: xDirection === 'right' ? config.offsetX : -config.offsetX } : {}),\n\t\t\t...(config.offsetY ? { offsetY: yDirection === 'bottom' ? config.offsetY : -config.offsetY } : {}),\n\t\t};\n\t}\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, forwardRef, inject, Input, numberAttribute, OnDestroy, OnInit, TemplateRef, Type, ViewEncapsulation } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { getIntl } from '@lucca-front/ng/core';\nimport { ALuSelectInputComponent, LuOptionContext, provideLuSelectLabelsAndIds, provideLuSelectOverlayContainer, ɵLuOptionOutletDirective } from '@lucca-front/ng/core-select';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { LuTooltipModule } from '@lucca-front/ng/tooltip';\nimport { Subject } from 'rxjs';\nimport { LuMultiSelectDefaultDisplayerComponent } from '../displayer/index';\nimport { LU_MULTI_SELECT_TRANSLATIONS } from '../select.translate';\nimport { LuMultiSelectPanelRefFactory } from './panel-ref.factory';\nimport { LuMultiSelectPanelRef } from './panel.model';\n\n@Component({\n\tselector: 'lu-multi-select',\n\tstandalone: true,\n\timports: [CommonModule, LuTooltipModule, ɵLuOptionOutletDirective, IconComponent],\n\ttemplateUrl: './select-input.component.html',\n\tstyleUrls: ['./select-input.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => LuMultiSelectInputComponent),\n\t\t\tmulti: true,\n\t\t},\n\t\t{\n\t\t\tprovide: ALuSelectInputComponent,\n\t\t\tuseExisting: forwardRef(() => LuMultiSelectInputComponent),\n\t\t},\n\t\tprovideLuSelectOverlayContainer(),\n\t\tprovideLuSelectLabelsAndIds(),\n\t\tLuMultiSelectPanelRefFactory,\n\t],\n\thost: {\n\t\tclass: 'multiSelect',\n\t},\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class LuMultiSelectInputComponent<T> extends ALuSelectInputComponent<T, T[]> implements ControlValueAccessor, OnDestroy, OnInit {\n\tintl = getIntl(LU_MULTI_SELECT_TRANSLATIONS);\n\n\t@Input()\n\tvaluesTpl?: TemplateRef<LuOptionContext<T[]>> | Type<unknown> = LuMultiSelectDefaultDisplayerComponent;\n\n\t@Input({ transform: numberAttribute })\n\tmaxValuesShown = 500;\n\n\toverride _value: T[] = [];\n\n\tpublic override get panelRef(): LuMultiSelectPanelRef<T> | undefined {\n\t\treturn this._panelRef;\n\t}\n\n\tprotected override _panelRef?: LuMultiSelectPanelRef<T>;\n\n\tprotected panelRefFactory = inject(LuMultiSelectPanelRefFactory);\n\n\t/**\n\t * This is used to tell the displayer to focus on the input element\n\t * keepClue is used to avoid triggering an update which would open the panel,\n\t * mainly for when we want to focus without opening the panel\n\t */\n\tpublic readonly focusInput$ = new Subject<void | { keepClue: boolean }>();\n\n\tpublic readonly emptyClue$ = new Subject<void>();\n\n\tpublic override focusInput(): void {\n\t\tthis.focusInput$.next({ keepClue: true });\n\t}\n\n\tpublic override emptyClue(): void {\n\t\tthis.emptyClue$.next();\n\t}\n\n\tpublic override writeValue(value: T[]): void {\n\t\tsuper.writeValue(value);\n\t\tthis.panelRef?.updateSelectedOptions(value);\n\t}\n\n\tpublic override updateValue(value: T[], skipFocus = false): void {\n\t\tsuper.updateValue(value);\n\t\tif (!skipFocus) {\n\t\t\tthis.focusInput();\n\t\t}\n\t}\n\n\tprotected override buildPanelRef(): LuMultiSelectPanelRef<T> {\n\t\treturn this.panelRefFactory.buildPanelRef(this, this.overlayConfig);\n\t}\n\n\tprotected override bindInputToPanelRefEvents(): void {\n\t\tif (!this.panelRef) {\n\t\t\treturn;\n\t\t}\n\n\t\tsuper.bindInputToPanelRefEvents();\n\t}\n\n\tprotected override get hasValue(): boolean {\n\t\treturn this.value && this.value.length > 0;\n\t}\n\n\toverride clearValue(event: MouseEvent): void {\n\t\tevent.stopPropagation();\n\t\tthis.onChange?.([]);\n\t\tthis.value = [];\n\t\tthis.focusInput$.next({ keepClue: true });\n\t}\n\n\toverride ngOnDestroy() {\n\t\tsuper.ngOnDestroy();\n\t\tthis.focusInput$.complete();\n\t}\n}\n","<ng-container *luOptionOutlet=\"valuesTpl; value: value || []\"></ng-container>\n\n<button *ngIf=\"hasValue && clearable\" role=\"button\" class=\"multipleSelect-clear clear\" (click)=\"clearValue($event)\">\n\t<span class=\"u-mask\">{{intl.clear}}</span>\n</button>\n<span aria-hidden=\"true\" class=\"multipleSelect-arrow lucca-icon icon-arrowChevronBottom\"></span>\n","import { InjectionToken } from '@angular/core';\nimport { ILuTranslation } from '@lucca-front/ng/core';\n\nexport const LU_MULTI_SELECT_DISPLAYER_TRANSLATIONS = new InjectionToken('LuMultiSelectDisplayerTranslations', {\n\tfactory: () => luMultiSelectDisplayerTranslations,\n});\n\nexport interface ILuMultiSelectDisplayerLabel {\n\totherResult: string;\n\totherResults: string;\n\tshowResultsDetails: string;\n\tremoveOption: string;\n}\n\nexport const luMultiSelectDisplayerTranslations: ILuTranslation<ILuMultiSelectDisplayerLabel> = {\n\tfr: {\n\t\totherResult: 'autre résultat',\n\t\totherResults: 'autres résultats',\n\t\tshowResultsDetails: 'Voir le détail',\n\t\tremoveOption: \"Supprimer l'option\",\n\t},\n\ten: {\n\t\totherResult: 'other result',\n\t\totherResults: 'other results',\n\t\tshowResultsDetails: 'Show details',\n\t\tremoveOption: 'Remove option',\n\t},\n\tde: {\n\t\totherResult: 'anderes Ergebnis',\n\t\totherResults: 'andere Ergebnisse',\n\t\tshowResultsDetails: 'Details anzeigen',\n\t\tremoveOption: 'Remove option',\n\t},\n\tes: {\n\t\totherResult: 'otro resultado',\n\t\totherResults: 'otros resultados',\n\t\tshowResultsDetails: 'Mostrar detalles',\n\t\tremoveOption: 'Remove option',\n\t},\n\tpt: {\n\t\totherResult: 'outro resultado',\n\t\totherResults: 'outros resultados',\n\t\tshowResultsDetails: 'Mostrar detalhes',\n\t\tremoveOption: 'Remove option',\n\t},\n};\n","import { AsyncPipe, NgFor, NgIf, NgPlural, NgPluralCase } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, DestroyRef, ElementRef, OnInit, ViewChild, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\nimport { getIntl } from '@lucca-front/ng/core';\nimport { ILuOptionContext, LU_OPTION_CONTEXT, ɵLuOptionOutletDirective } from '@lucca-front/ng/core-select';\nimport { InputDirective } from '@lucca-front/ng/form-field';\nimport { LuTooltipModule } from '@lucca-front/ng/tooltip';\nimport { map, switchMap } from 'rxjs/operators';\nimport { LuMultiSelectInputComponent } from '../input/select-input.component';\nimport { LU_MULTI_SELECT_DISPLAYER_TRANSLATIONS } from './default-displayer.translate';\nimport { of } from 'rxjs';\n\n@Component({\n\tselector: 'lu-multi-select-default-displayer',\n\tstandalone: true,\n\timports: [AsyncPipe, LuTooltipModule, NgIf, NgFor, NgPlural, NgPluralCase, ɵLuOptionOutletDirective, FormsModule, InputDirective],\n\ttemplate: `\n\t\t<div class=\"multipleSelect-displayer\">\n\t\t\t<input\n\t\t\t\tclass=\"multipleSelect-displayer-search\"\n\t\t\t\ttype=\"text\"\n\t\t\t\t[attr.aria-expanded]=\"select.isPanelOpen\"\n\t\t\t\t[attr.aria-activedescendant]=\"select.activeDescendant$ | async\"\n\t\t\t\t[attr.aria-controls]=\"ariaControls\"\n\t\t\t\t[disabled]=\"select.disabled\"\n\t\t\t\t[readonly]=\"!select.searchable\"\n\t\t\t\t#inputElement\n\t\t\t\tngModel\n\t\t\t\t(ngModelChange)=\"select.clueChanged($event)\"\n\t\t\t\t[placeholder]=\"placeholder$ | async\"\n\t\t\t\t(keydown.backspace)=\"inputBackspace()\"\n\t\t\t\trole=\"combobox\"\n\t\t\t\taria-haspopup=\"listbox\"\n\t\t\t\tluInput\n\t\t\t/>\n\t\t\t<div *ngFor=\"let option of displayedOptions$ | async; let index = index\" class=\"multipleSelect-displayer-chip chip\" [class.mod-unkillable]=\"disabled\">\n\t\t\t\t<span class=\"multipleSelect-displayer-chip-value\"><ng-container *luOptionOutlet=\"select.valueTpl || select.optionTpl; value: option\"></ng-container></span>\n\t\t\t\t<button *ngIf=\"!disabled\" type=\"button\" class=\"chip-kill\" (click)=\"unselectOption(option, $event)\">\n\t\t\t\t\t<span class=\"u-mask\">{{ intl.removeOption }}</span>\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t\t<div class=\"chip\" *ngIf=\"overflowOptions$ | async as overflow\">+ {{ overflow }}</div>\n\t\t</div>\n\t`,\n\tstyleUrls: ['./default-displayer.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LuMultiSelectDefaultDisplayerComponent<T> implements OnInit {\n\tselect = inject<LuMultiSelectInputComponent<T>>(LuMultiSelectInputComponent);\n\tintl = getIntl(LU_MULTI_SELECT_DISPLAYER_TRANSLATIONS);\n\n\tprotected destroyRef = inject(DestroyRef);\n\n\t@ViewChild('inputElement')\n\tinputElementRef: ElementRef<HTMLInputElement>;\n\n\tget disabled() {\n\t\treturn this.select.disabled;\n\t}\n\n\tget value(): T[] {\n\t\treturn this.select.value || [];\n\t}\n\n\tget ariaControls() {\n\t\treturn this.select.ariaControls;\n\t}\n\n\tcontext = inject<ILuOptionContext<T[]>>(LU_OPTION_CONTEXT);\n\n\tplaceholder$ = this.context.option$.pipe(\n\t\tswitchMap((options) => {\n\t\t\tif ((options || []).length > 0) {\n\t\t\t\treturn of('');\n\t\t\t}\n\t\t\treturn this.select.placeholder$;\n\t\t}),\n\t);\n\n\tdisplayedOptions$ = this.context.option$.pipe(\n\t\tmap((options) => {\n\t\t\tif (this.select.maxValuesShown) {\n\t\t\t\treturn (options || []).slice(0, this.select.maxValuesShown);\n\t\t\t}\n\t\t\treturn options;\n\t\t}),\n\t);\n\n\toverflowOptions$ = this.context.option$.pipe(\n\t\tmap((options) => {\n\t\t\treturn Math.max(0, (options || []).length - this.select.maxValuesShown);\n\t\t}),\n\t);\n\n\tunselectOption(option: T, $event?: Event): void {\n\t\tif ($event) {\n\t\t\t$event.stopPropagation();\n\t\t\t$event.preventDefault();\n\t\t}\n\t\tthis.select.updateValue(\n\t\t\tthis.value.filter((o) => o !== option),\n\t\t\ttrue,\n\t\t);\n\t\tsetTimeout(() => {\n\t\t\tthis.select.panelRef?.updatePosition();\n\t\t\tthis.inputElementRef.nativeElement.focus();\n\t\t});\n\t}\n\n\tinputBackspace(): void {\n\t\tif (this.value.length > 0 && this.inputElementRef.nativeElement.value.length === 0) {\n\t\t\tthis.unselectOption(this.value[this.value.length - 1]);\n\t\t\tthis.select.panelRef?.updateSelectedOptions(this.value);\n\t\t}\n\t}\n\n\tngOnInit(): void {\n\t\tthis.select.focusInput$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((data?: { keepClue: true }) => {\n\t\t\t// Everytime we want to focus, we need to reset the input\n\t\t\t// This is done when a value is selected and when panel is opened.\n\t\t\tif (!data?.keepClue) {\n\t\t\t\tthis.inputElementRef.nativeElement.value = '';\n\t\t\t\tthis.select.clueChanged('');\n\t\t\t}\n\n\t\t\tthis.inputElementRef.nativeElement.focus();\n\t\t});\n\t\tthis.select.emptyClue$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n\t\t\tthis.inputElementRef.nativeElement.value = '';\n\t\t});\n\t}\n}\n","import { Directive, Input, TemplateRef } from '@angular/core';\nimport { LuOptionContext } from '@lucca-front/ng/core-select';\nimport { LuMultiSelectInputComponent } from '../input';\n\n@Directive({\n\tselector: '[luMultiDisplayer]',\n\tstandalone: true,\n})\nexport class LuMultiDisplayerDirective<T> {\n\t@Input('luMultiDisplayerSelect') set select(select: LuMultiSelectInputComponent<T>) {\n\t\tselect.valuesTpl = this.templateRef;\n\t}\n\n\tpublic constructor(private templateRef: TemplateRef<LuOptionContext<T[]>>) {}\n\n\tpublic static ngTemplateContextGuard<T>(_dir: LuMultiDisplayerDirective<T>, ctx: unknown): ctx is LuOptionContext<T[]> {\n\t\treturn true;\n\t}\n}\n","import { DestroyRef, Directive, ElementRef, HostBinding, inject, OnInit } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ILuOptionContext, LU_OPTION_CONTEXT } from '@lucca-front/ng/core-select';\nimport { map } from 'rxjs/operators';\nimport { LuMultiSelectInputComponent } from '../input/select-input.component';\n\n@Directive({\n\tselector: '[luMultiSelectDisplayerInput]',\n\tstandalone: true,\n\thost: {\n\t\t'aria-haspopup': 'listbox',\n\t\trole: 'combobox',\n\t\tclass: 'multipleSelect-displayer-search',\n\t},\n})\nexport class LuMultiSelectDisplayerInputDirective<T> implements OnInit {\n\tselect = inject<LuMultiSelectInputComponent<T>>(LuMultiSelectInputComponent);\n\n\tcontext = inject<ILuOptionContext<T[]>>(LU_OPTION_CONTEXT);\n\n\telementRef = inject<ElementRef<HTMLInputElement>>(ElementRef);\n\n\tdestroyRef = inject(DestroyRef);\n\n\t@HostBinding('attr.aria-expanded')\n\tpanelOpen = false;\n\n\t@HostBinding('attr.aria-activedescendant')\n\tactiveDescendant = '';\n\n\t@HostBinding('attr.aria-controls')\n\tcontrols = this.select?.ariaControls;\n\n\t@HostBinding('disabled')\n\tdisabled = false;\n\n\t@HostBinding('placeholder')\n\tplaceholder = '';\n\n\tngOnInit(): void {\n\t\tthis.context.option$\n\t\t\t.pipe(\n\t\t\t\tmap((options) => {\n\t\t\t\t\tif ((options || []).length > 0) {\n\t\t\t\t\t\treturn '';\n\t\t\t\t\t}\n\t\t\t\t\treturn this.select.placeholder || '';\n\t\t\t\t}),\n\t\t\t\ttakeUntilDestroyed(this.destroyRef),\n\t\t\t)\n\t\t\t.subscribe((placeholder) => (this.placeholder = placeholder));\n\t\tthis.select.isPanelOpen$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((open) => {\n\t\t\tthis.panelOpen = open;\n\t\t});\n\t\tthis.select.activeDescendant$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((activeDescendant) => {\n\t\t\tthis.activeDescendant = activeDescendant;\n\t\t});\n\t\tthis.context.isDisabled$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((disabled) => {\n\t\t\tthis.disabled = disabled;\n\t\t});\n\t\tthis.select.focusInput$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n\t\t\tthis.elementRef.nativeElement.value = '';\n\t\t\tthis.select.clueChanged('');\n\t\t\tthis.elementRef.nativeElement.focus();\n\t\t});\n\t\tthis.select.emptyClue$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n\t\t\tthis.elementRef.nativeElement.value = '';\n\t\t});\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["map","i1"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { Provider } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "@angular/cdk/overlay";
4
+ import * as i2 from "@angular/cdk/dialog";
4
5
  /**
5
6
  * Provide LuModal.
6
7
  * Note that OverlayModule should be imported in one of the EnvironmentInjectors (AppModule, lazy-loaded route) using `providers: [importProvidersFrom(OverlayModule)]`.
@@ -8,6 +9,6 @@ import * as i1 from "@angular/cdk/overlay";
8
9
  export declare function provideLuModal(): Provider[];
9
10
  export declare class LuModalModule {
10
11
  static ɵfac: i0.ɵɵFactoryDeclaration<LuModalModule, never>;
11
- static ɵmod: i0.ɵɵNgModuleDeclaration<LuModalModule, never, [typeof i1.OverlayModule], never>;
12
+ static ɵmod: i0.ɵɵNgModuleDeclaration<LuModalModule, never, [typeof i1.OverlayModule, typeof i2.DialogModule], never>;
12
13
  static ɵinj: i0.ɵɵInjectorDeclaration<LuModalModule>;
13
14
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lucca-front/ng",
3
- "version": "17.3.0-rc.1",
3
+ "version": "17.3.0-rc.3",
4
4
  "description": "A library of icons made by the team @Lucca",
5
5
  "repository": {
6
6
  "type": "git",
@@ -26,8 +26,8 @@
26
26
  "@angular/common": "^17.0.2",
27
27
  "@angular/core": "^17.0.2",
28
28
  "@angular/cdk": "^17.0.0",
29
- "@lucca-front/icons": "v17.3.0-rc.1",
30
- "@lucca-front/scss": "v17.3.0-rc.1",
29
+ "@lucca-front/icons": "v17.3.0-rc.3",
30
+ "@lucca-front/scss": "v17.3.0-rc.3",
31
31
  "@types/dompurify": "^3.0.0",
32
32
  "isomorphic-dompurify": "^2.2.0",
33
33
  "rxjs": "^7.8.1"
@@ -53,23 +53,17 @@
53
53
  "esm": "./esm2022/a11y/lucca-front-ng-a11y.mjs",
54
54
  "default": "./fesm2022/lucca-front-ng-a11y.mjs"
55
55
  },
56
- "./button": {
57
- "types": "./button/index.d.ts",
58
- "esm2022": "./esm2022/button/lucca-front-ng-button.mjs",
59
- "esm": "./esm2022/button/lucca-front-ng-button.mjs",
60
- "default": "./fesm2022/lucca-front-ng-button.mjs"
61
- },
62
56
  "./animations": {
63
57
  "types": "./animations/index.d.ts",
64
58
  "esm2022": "./esm2022/animations/lucca-front-ng-animations.mjs",
65
59
  "esm": "./esm2022/animations/lucca-front-ng-animations.mjs",
66
60
  "default": "./fesm2022/lucca-front-ng-animations.mjs"
67
61
  },
68
- "./callout": {
69
- "types": "./callout/index.d.ts",
70
- "esm2022": "./esm2022/callout/lucca-front-ng-callout.mjs",
71
- "esm": "./esm2022/callout/lucca-front-ng-callout.mjs",
72
- "default": "./fesm2022/lucca-front-ng-callout.mjs"
62
+ "./button": {
63
+ "types": "./button/index.d.ts",
64
+ "esm2022": "./esm2022/button/lucca-front-ng-button.mjs",
65
+ "esm": "./esm2022/button/lucca-front-ng-button.mjs",
66
+ "default": "./fesm2022/lucca-front-ng-button.mjs"
73
67
  },
74
68
  "./api": {
75
69
  "types": "./api/index.d.ts",
@@ -77,18 +71,24 @@
77
71
  "esm": "./esm2022/api/lucca-front-ng-api.mjs",
78
72
  "default": "./fesm2022/lucca-front-ng-api.mjs"
79
73
  },
80
- "./core-select": {
81
- "types": "./core-select/index.d.ts",
82
- "esm2022": "./esm2022/core-select/lucca-front-ng-core-select.mjs",
83
- "esm": "./esm2022/core-select/lucca-front-ng-core-select.mjs",
84
- "default": "./fesm2022/lucca-front-ng-core-select.mjs"
85
- },
86
74
  "./core": {
87
75
  "types": "./core/index.d.ts",
88
76
  "esm2022": "./esm2022/core/lucca-front-ng-core.mjs",
89
77
  "esm": "./esm2022/core/lucca-front-ng-core.mjs",
90
78
  "default": "./fesm2022/lucca-front-ng-core.mjs"
91
79
  },
80
+ "./callout": {
81
+ "types": "./callout/index.d.ts",
82
+ "esm2022": "./esm2022/callout/lucca-front-ng-callout.mjs",
83
+ "esm": "./esm2022/callout/lucca-front-ng-callout.mjs",
84
+ "default": "./fesm2022/lucca-front-ng-callout.mjs"
85
+ },
86
+ "./core-select": {
87
+ "types": "./core-select/index.d.ts",
88
+ "esm2022": "./esm2022/core-select/lucca-front-ng-core-select.mjs",
89
+ "esm": "./esm2022/core-select/lucca-front-ng-core-select.mjs",
90
+ "default": "./fesm2022/lucca-front-ng-core-select.mjs"
91
+ },
92
92
  "./date": {
93
93
  "types": "./date/index.d.ts",
94
94
  "esm2022": "./esm2022/date/lucca-front-ng-date.mjs",
@@ -1,2 +0,0 @@
1
- import { EnvironmentProviders } from '@angular/core';
2
- export declare function provideLuDialog(): EnvironmentProviders;
@@ -1,7 +0,0 @@
1
- import { importProvidersFrom, makeEnvironmentProviders } from '@angular/core';
2
- import { DialogModule } from '@angular/cdk/dialog';
3
- import { LuDialogService } from './dialog.service';
4
- export function provideLuDialog() {
5
- return makeEnvironmentProviders([importProvidersFrom(DialogModule), LuDialogService]);
6
- }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbmcvZGlhbG9nL2RpYWxvZy5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXdCLG1CQUFtQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFbkQsTUFBTSxVQUFVLGVBQWU7SUFDOUIsT0FBTyx3QkFBd0IsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUM7QUFDdkYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudmlyb25tZW50UHJvdmlkZXJzLCBpbXBvcnRQcm92aWRlcnNGcm9tLCBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kaWFsb2cnO1xuaW1wb3J0IHsgTHVEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi9kaWFsb2cuc2VydmljZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlTHVEaWFsb2coKTogRW52aXJvbm1lbnRQcm92aWRlcnMge1xuXHRyZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtpbXBvcnRQcm92aWRlcnNGcm9tKERpYWxvZ01vZHVsZSksIEx1RGlhbG9nU2VydmljZV0pO1xufVxuIl19