@lucca-front/ng 16.0.0 → 16.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/esm2022/api/lib/select/input/api-select-input.component.mjs +3 -3
  2. package/esm2022/api/lib/select/searcher/api-searcher.component.mjs +5 -5
  3. package/esm2022/date/lib/select/date-select-input.component.mjs +3 -3
  4. package/esm2022/department/lib/select/input/department-select-input.component.mjs +3 -3
  5. package/esm2022/establishment/lib/select/input/establishment-select-input.component.mjs +3 -3
  6. package/esm2022/establishment/lib/select/searcher/establishment-searcher.component.mjs +3 -3
  7. package/esm2022/input/lib/clearer/clearer.component.mjs +3 -3
  8. package/esm2022/modal/lib/modal-panel.component.mjs +5 -5
  9. package/esm2022/option/lib/operator/searcher/option-searcher.component.mjs +3 -3
  10. package/esm2022/option/lib/operator/searcher/tree-option-searcher.component.mjs +3 -3
  11. package/esm2022/qualification/lib/select/input/qualification-select-input.component.mjs +3 -3
  12. package/esm2022/select/lib/input/select-input.component.mjs +2 -2
  13. package/esm2022/simple-select/lib/input/select-input.component.mjs +3 -3
  14. package/esm2022/simple-select/lib/panel/panel.component.mjs +3 -3
  15. package/esm2022/user/lib/picture/user-picture.component.mjs +3 -3
  16. package/esm2022/user/lib/select/input/user-select-input.component.mjs +3 -3
  17. package/esm2022/user/lib/select/searcher/user-searcher.component.mjs +3 -3
  18. package/esm2022/user/lib/tile/user-tile.component.mjs +2 -2
  19. package/fesm2022/lucca-front-ng-api.mjs +6 -6
  20. package/fesm2022/lucca-front-ng-api.mjs.map +1 -1
  21. package/fesm2022/lucca-front-ng-date.mjs +2 -2
  22. package/fesm2022/lucca-front-ng-date.mjs.map +1 -1
  23. package/fesm2022/lucca-front-ng-department.mjs +2 -2
  24. package/fesm2022/lucca-front-ng-department.mjs.map +1 -1
  25. package/fesm2022/lucca-front-ng-establishment.mjs +4 -4
  26. package/fesm2022/lucca-front-ng-establishment.mjs.map +1 -1
  27. package/fesm2022/lucca-front-ng-input.mjs +2 -2
  28. package/fesm2022/lucca-front-ng-input.mjs.map +1 -1
  29. package/fesm2022/lucca-front-ng-modal.mjs +4 -4
  30. package/fesm2022/lucca-front-ng-modal.mjs.map +1 -1
  31. package/fesm2022/lucca-front-ng-option.mjs +4 -4
  32. package/fesm2022/lucca-front-ng-option.mjs.map +1 -1
  33. package/fesm2022/lucca-front-ng-qualification.mjs +2 -2
  34. package/fesm2022/lucca-front-ng-qualification.mjs.map +1 -1
  35. package/fesm2022/lucca-front-ng-select.mjs +2 -2
  36. package/fesm2022/lucca-front-ng-select.mjs.map +1 -1
  37. package/fesm2022/lucca-front-ng-simple-select.mjs +4 -4
  38. package/fesm2022/lucca-front-ng-simple-select.mjs.map +1 -1
  39. package/fesm2022/lucca-front-ng-user.mjs +8 -8
  40. package/fesm2022/lucca-front-ng-user.mjs.map +1 -1
  41. package/material/style/main.scss +1 -1
  42. package/package.json +15 -15
  43. package/src/components/_picker.scss +1 -0
  44. package/src/components/_popover.scss +6 -0
  45. package/src/components/_popup.scss +5 -4
  46. package/src/definitions/option/_option-item.scss +1 -0
  47. package/src/definitions/option/_option-searcher.scss +1 -0
  48. package/src/definitions/select/_select-clearer.scss +22 -53
  49. package/src/definitions/select/_select-input.scss +38 -11
  50. package/src/definitions/user/user-picture.scss +35 -6
@@ -384,11 +384,11 @@ class LuSelectPanelComponent {
384
384
  setTimeout(() => this.keyManager.setFirstItemActive());
385
385
  }
386
386
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: LuSelectPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
387
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: LuSelectPanelComponent, isStandalone: true, selector: "lu-select-panel", host: { listeners: { "keydown": "onKeyDown($event)" } }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "optionsQL", predicate: LuOptionComponent, descendants: true }], ngImport: i0, template: "<div\r\n\tclass=\"lu-picker-panel lu-option-picker-panel\"\r\n\trole=\"dialog\"\r\n\tcdkTrapFocus\r\n\t*ngIf=\"{ options: options$ | async } as ctx\"\r\n\t[cdkTrapFocusAutoCapture]=\"true\"\r\n>\r\n\t<div class=\"lu-picker-content\" [class.is-loading]=\"loading$ | async\" tabindex=\"0\" (scroll)=\"onScroll($event)\">\r\n\t\t<ng-container *ngIf=\"searchable\">\r\n\t\t\t<div class=\"panel-search textfield mod-search\">\r\n\t\t\t\t<input #searchInput class=\"textfield-input\" [ngModel]=\"search\" (ngModelChange)=\"updateClue($event)\" />\r\n\t\t\t</div>\r\n\r\n\t\t\t<div class=\"optionPlaceholder\" *ngIf=\"search && !ctx.options?.length\">\r\n\t\t\t\t<p class=\"optionPlaceholder-content u-marginBottom0\">{{ intl.emptyResults }}</p>\r\n\t\t\t\t<button type=\"button\" class=\"link\" (click)=\"updateClue(null); searchInput.focus()\">{{ intl.clearSearch }}</button>\r\n\t\t\t</div>\r\n\t\t</ng-container>\r\n\r\n\t\t<lu-select-option\r\n\t\t\t*ngFor=\"let option of ctx.options; let index = index\"\r\n\t\t\t[option]=\"option\"\r\n\t\t\t[optionTpl]=\"optionTpl\"\r\n\t\t\t[optionIndex]=\"index\"\r\n\t\t\t[isSelected]=\"option === selected\"\r\n\t\t\t(click)=\"panelRef.emitValue(option)\"\r\n\t\t></lu-select-option>\r\n\r\n\t\t<div *ngIf=\"loading$ | async\" class=\"panel-loading loading lu-picker-loading\"></div>\r\n\t</div>\r\n</div>\r\n", styles: [":root{--components-options-item-padding-vertical: var(--spacings-XS);--components-options-item-padding-horizontal: var(--spacings-XS);--components-options-item-multiple-padding: var(--spacings-L);--components-options-item-icon-color: var(--palettes-grey-800);--components-options-checkbox-left: .5rem;--components-options-checkbox-size: 1rem;--components-options-checkbox-color: var(--palettes-primary-700);--components-options-checkbox-border-radius: var(--commons-borderRadius-M);--components-options-checkbox-border-color: var(--palettes-grey-700);--components-options-establishment-multiple-padding: var(--spacings-M)}.textfield.mod-search{width:100%}.textfield-input{border-radius:0;box-shadow:none;background-color:var(--colors-white-color);border-bottom:var(--commons-divider-width) solid var(--commons-divider-color)}.textfield-input:hover{background-color:var(--palettes-grey-50)}.textfield-input:focus{background-color:var(--colors-white-color);border-bottom-color:var(--palettes-primary-600)}.checkbox.mod-formerEmployee{padding:var(--spacings-XXS) var(--components-options-item-padding-horizontal);border-bottom:var(--commons-divider-width) solid var(--commons-divider-color);background-color:var(--palettes-grey-50);font-style:italic}.optionPlaceholder{display:block;padding:var(--components-options-item-padding-vertical) var(--components-options-item-padding-horizontal);font-style:italic;color:var(--palettes-grey-600)}.panel-search{position:sticky;top:0}.panel-loading:after{box-shadow:0 0 0 .25rem var(--colors-white-color),inset 0 0 0 .5rem var(--colors-white-color)}\n"], dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: LuOptionComponent, selector: "lu-select-option", inputs: ["optionTpl", "isSelected", "option", "optionIndex"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
387
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: LuSelectPanelComponent, isStandalone: true, selector: "lu-select-panel", host: { listeners: { "keydown": "onKeyDown($event)" } }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "optionsQL", predicate: LuOptionComponent, descendants: true }], ngImport: i0, template: "<div\r\n\tclass=\"lu-picker-panel lu-option-picker-panel\"\r\n\trole=\"dialog\"\r\n\tcdkTrapFocus\r\n\t*ngIf=\"{ options: options$ | async } as ctx\"\r\n\t[cdkTrapFocusAutoCapture]=\"true\"\r\n>\r\n\t<div class=\"lu-picker-content\" [class.is-loading]=\"loading$ | async\" tabindex=\"0\" (scroll)=\"onScroll($event)\">\r\n\t\t<ng-container *ngIf=\"searchable\">\r\n\t\t\t<div class=\"panel-search textfield mod-search\">\r\n\t\t\t\t<input #searchInput class=\"textfield-input\" [ngModel]=\"search\" (ngModelChange)=\"updateClue($event)\" />\r\n\t\t\t</div>\r\n\r\n\t\t\t<div class=\"optionPlaceholder\" *ngIf=\"search && !ctx.options?.length\">\r\n\t\t\t\t<p class=\"optionPlaceholder-content u-marginBottom0\">{{ intl.emptyResults }}</p>\r\n\t\t\t\t<button type=\"button\" class=\"link\" (click)=\"updateClue(null); searchInput.focus()\">{{ intl.clearSearch }}</button>\r\n\t\t\t</div>\r\n\t\t</ng-container>\r\n\r\n\t\t<lu-select-option\r\n\t\t\t*ngFor=\"let option of ctx.options; let index = index\"\r\n\t\t\t[option]=\"option\"\r\n\t\t\t[optionTpl]=\"optionTpl\"\r\n\t\t\t[optionIndex]=\"index\"\r\n\t\t\t[isSelected]=\"option === selected\"\r\n\t\t\t(click)=\"panelRef.emitValue(option)\"\r\n\t\t></lu-select-option>\r\n\r\n\t\t<div *ngIf=\"loading$ | async\" class=\"panel-loading loading lu-picker-loading\"></div>\r\n\t</div>\r\n</div>\r\n", styles: [":root{--components-options-item-padding-vertical: var(--spacings-XS);--components-options-item-padding-horizontal: var(--spacings-XS);--components-options-item-multiple-padding: var(--spacings-L);--components-options-item-icon-color: var(--palettes-grey-800);--components-options-checkbox-left: .5rem;--components-options-checkbox-size: 1rem;--components-options-checkbox-color: var(--palettes-primary-700);--components-options-checkbox-border-radius: var(--commons-borderRadius-M);--components-options-checkbox-border-color: var(--palettes-grey-700);--components-options-establishment-multiple-padding: var(--spacings-M)}.textfield.mod-search{width:100%}.textfield-input{border-radius:0;box-shadow:none;background-color:var(--colors-white-color);border-bottom:var(--commons-divider-width) solid var(--commons-divider-color);outline:none}.textfield-input:hover{background-color:var(--palettes-grey-50)}.textfield-input:focus{background-color:var(--colors-white-color);border-bottom-color:var(--palettes-primary-600)}.checkbox.mod-formerEmployee{padding:var(--spacings-XXS) var(--components-options-item-padding-horizontal);border-bottom:var(--commons-divider-width) solid var(--commons-divider-color);background-color:var(--palettes-grey-50);font-style:italic}.optionPlaceholder{display:block;padding:var(--components-options-item-padding-vertical) var(--components-options-item-padding-horizontal);font-style:italic;color:var(--palettes-grey-600)}.panel-search{position:sticky;top:0}.panel-loading:after{box-shadow:0 0 0 .25rem var(--colors-white-color),inset 0 0 0 .5rem var(--colors-white-color)}\n"], dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: LuOptionComponent, selector: "lu-select-option", inputs: ["optionTpl", "isSelected", "option", "optionIndex"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
388
388
  }
389
389
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: LuSelectPanelComponent, decorators: [{
390
390
  type: Component,
391
- args: [{ selector: 'lu-select-panel', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [A11yModule, AsyncPipe, FormsModule, NgIf, NgFor, LuOptionComponent], template: "<div\r\n\tclass=\"lu-picker-panel lu-option-picker-panel\"\r\n\trole=\"dialog\"\r\n\tcdkTrapFocus\r\n\t*ngIf=\"{ options: options$ | async } as ctx\"\r\n\t[cdkTrapFocusAutoCapture]=\"true\"\r\n>\r\n\t<div class=\"lu-picker-content\" [class.is-loading]=\"loading$ | async\" tabindex=\"0\" (scroll)=\"onScroll($event)\">\r\n\t\t<ng-container *ngIf=\"searchable\">\r\n\t\t\t<div class=\"panel-search textfield mod-search\">\r\n\t\t\t\t<input #searchInput class=\"textfield-input\" [ngModel]=\"search\" (ngModelChange)=\"updateClue($event)\" />\r\n\t\t\t</div>\r\n\r\n\t\t\t<div class=\"optionPlaceholder\" *ngIf=\"search && !ctx.options?.length\">\r\n\t\t\t\t<p class=\"optionPlaceholder-content u-marginBottom0\">{{ intl.emptyResults }}</p>\r\n\t\t\t\t<button type=\"button\" class=\"link\" (click)=\"updateClue(null); searchInput.focus()\">{{ intl.clearSearch }}</button>\r\n\t\t\t</div>\r\n\t\t</ng-container>\r\n\r\n\t\t<lu-select-option\r\n\t\t\t*ngFor=\"let option of ctx.options; let index = index\"\r\n\t\t\t[option]=\"option\"\r\n\t\t\t[optionTpl]=\"optionTpl\"\r\n\t\t\t[optionIndex]=\"index\"\r\n\t\t\t[isSelected]=\"option === selected\"\r\n\t\t\t(click)=\"panelRef.emitValue(option)\"\r\n\t\t></lu-select-option>\r\n\r\n\t\t<div *ngIf=\"loading$ | async\" class=\"panel-loading loading lu-picker-loading\"></div>\r\n\t</div>\r\n</div>\r\n", styles: [":root{--components-options-item-padding-vertical: var(--spacings-XS);--components-options-item-padding-horizontal: var(--spacings-XS);--components-options-item-multiple-padding: var(--spacings-L);--components-options-item-icon-color: var(--palettes-grey-800);--components-options-checkbox-left: .5rem;--components-options-checkbox-size: 1rem;--components-options-checkbox-color: var(--palettes-primary-700);--components-options-checkbox-border-radius: var(--commons-borderRadius-M);--components-options-checkbox-border-color: var(--palettes-grey-700);--components-options-establishment-multiple-padding: var(--spacings-M)}.textfield.mod-search{width:100%}.textfield-input{border-radius:0;box-shadow:none;background-color:var(--colors-white-color);border-bottom:var(--commons-divider-width) solid var(--commons-divider-color)}.textfield-input:hover{background-color:var(--palettes-grey-50)}.textfield-input:focus{background-color:var(--colors-white-color);border-bottom-color:var(--palettes-primary-600)}.checkbox.mod-formerEmployee{padding:var(--spacings-XXS) var(--components-options-item-padding-horizontal);border-bottom:var(--commons-divider-width) solid var(--commons-divider-color);background-color:var(--palettes-grey-50);font-style:italic}.optionPlaceholder{display:block;padding:var(--components-options-item-padding-vertical) var(--components-options-item-padding-horizontal);font-style:italic;color:var(--palettes-grey-600)}.panel-search{position:sticky;top:0}.panel-loading:after{box-shadow:0 0 0 .25rem var(--colors-white-color),inset 0 0 0 .5rem var(--colors-white-color)}\n"] }]
391
+ args: [{ selector: 'lu-select-panel', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [A11yModule, AsyncPipe, FormsModule, NgIf, NgFor, LuOptionComponent], template: "<div\r\n\tclass=\"lu-picker-panel lu-option-picker-panel\"\r\n\trole=\"dialog\"\r\n\tcdkTrapFocus\r\n\t*ngIf=\"{ options: options$ | async } as ctx\"\r\n\t[cdkTrapFocusAutoCapture]=\"true\"\r\n>\r\n\t<div class=\"lu-picker-content\" [class.is-loading]=\"loading$ | async\" tabindex=\"0\" (scroll)=\"onScroll($event)\">\r\n\t\t<ng-container *ngIf=\"searchable\">\r\n\t\t\t<div class=\"panel-search textfield mod-search\">\r\n\t\t\t\t<input #searchInput class=\"textfield-input\" [ngModel]=\"search\" (ngModelChange)=\"updateClue($event)\" />\r\n\t\t\t</div>\r\n\r\n\t\t\t<div class=\"optionPlaceholder\" *ngIf=\"search && !ctx.options?.length\">\r\n\t\t\t\t<p class=\"optionPlaceholder-content u-marginBottom0\">{{ intl.emptyResults }}</p>\r\n\t\t\t\t<button type=\"button\" class=\"link\" (click)=\"updateClue(null); searchInput.focus()\">{{ intl.clearSearch }}</button>\r\n\t\t\t</div>\r\n\t\t</ng-container>\r\n\r\n\t\t<lu-select-option\r\n\t\t\t*ngFor=\"let option of ctx.options; let index = index\"\r\n\t\t\t[option]=\"option\"\r\n\t\t\t[optionTpl]=\"optionTpl\"\r\n\t\t\t[optionIndex]=\"index\"\r\n\t\t\t[isSelected]=\"option === selected\"\r\n\t\t\t(click)=\"panelRef.emitValue(option)\"\r\n\t\t></lu-select-option>\r\n\r\n\t\t<div *ngIf=\"loading$ | async\" class=\"panel-loading loading lu-picker-loading\"></div>\r\n\t</div>\r\n</div>\r\n", styles: [":root{--components-options-item-padding-vertical: var(--spacings-XS);--components-options-item-padding-horizontal: var(--spacings-XS);--components-options-item-multiple-padding: var(--spacings-L);--components-options-item-icon-color: var(--palettes-grey-800);--components-options-checkbox-left: .5rem;--components-options-checkbox-size: 1rem;--components-options-checkbox-color: var(--palettes-primary-700);--components-options-checkbox-border-radius: var(--commons-borderRadius-M);--components-options-checkbox-border-color: var(--palettes-grey-700);--components-options-establishment-multiple-padding: var(--spacings-M)}.textfield.mod-search{width:100%}.textfield-input{border-radius:0;box-shadow:none;background-color:var(--colors-white-color);border-bottom:var(--commons-divider-width) solid var(--commons-divider-color);outline:none}.textfield-input:hover{background-color:var(--palettes-grey-50)}.textfield-input:focus{background-color:var(--colors-white-color);border-bottom-color:var(--palettes-primary-600)}.checkbox.mod-formerEmployee{padding:var(--spacings-XXS) var(--components-options-item-padding-horizontal);border-bottom:var(--commons-divider-width) solid var(--commons-divider-color);background-color:var(--palettes-grey-50);font-style:italic}.optionPlaceholder{display:block;padding:var(--components-options-item-padding-vertical) var(--components-options-item-padding-horizontal);font-style:italic;color:var(--palettes-grey-600)}.panel-search{position:sticky;top:0}.panel-loading:after{box-shadow:0 0 0 .25rem var(--colors-white-color),inset 0 0 0 .5rem var(--colors-white-color)}\n"] }]
392
392
  }], propDecorators: { searchInput: [{
393
393
  type: ViewChild,
394
394
  args: ['searchInput']
@@ -670,7 +670,7 @@ class LuSimpleSelectInputComponent {
670
670
  provideLuSelectOverlayContainer(),
671
671
  provideLuSelectLabelsAndIds(),
672
672
  LuSimpleSelectPanelRefFactory,
673
- ], ngImport: i0, template: "<div class=\"lu-select-placeholder\">{{ placeholder }}</div>\r\n<div class=\"lu-select-value\">\r\n\t<div class=\"lu-select-display-wrapper\">\r\n\t\t<ng-container *luOptionOutlet=\"valueTpl || optionTpl; value: value\"></ng-container>\r\n\t</div>\r\n</div>\r\n<div class=\"lu-select-suffix\">\r\n\t<a *ngIf=\"clearable && isFilled\" role=\"button\" class=\"actionIcon\" (click)=\"clearValue($event)\">\r\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-thinCross\"></span>\r\n\t\t<span class=\"u-mask\">{{ intl.clear }}</span>\r\n\t</a>\r\n</div>\r\n", styles: [":root{--components-options-item-padding-vertical: var(--spacings-XS);--components-options-item-padding-horizontal: var(--spacings-XS);--components-options-item-multiple-padding: var(--spacings-L);--components-options-item-icon-color: var(--palettes-grey-800);--components-options-checkbox-left: .5rem;--components-options-checkbox-size: 1rem;--components-options-checkbox-color: var(--palettes-primary-700);--components-options-checkbox-border-radius: var(--commons-borderRadius-M);--components-options-checkbox-border-color: var(--palettes-grey-700);--components-options-establishment-multiple-padding: var(--spacings-M)}:host{--components-select-chip-background: var(--palettes-primary-700);--components-select-chip-text: var(--colors-white-color);--components-select-input-padding-horizontal: var(--spacings-XS);--components-select-input-padding-vertical: var(--spacings-XS);--components-select-framed-color: var(--palettes-grey-500);--components-select-framed-color50: var(--palettes-grey-50);--components-select-framed-see-through: var(--palettes-grey-50);--components-select-framed-text: var(--palettes-grey-800);--components-select-framed-placeholder: #cccccc;--components-select-framed-side-padding: var(--spacings-S);--components-select-framed-top-padding: var(--spacings-L);--components-select-framed-bottom-padding: var(--spacings-S);--components-select-framed-label-top-offset: var(--spacings-XS);cursor:pointer;outline:none;padding:0}:host:after{display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;color:var(--palettes-700, var(--palettes-primary-700));bottom:var(--components-select-input-padding-vertical);font-size:1.2rem;line-height:1.4rem;pointer-events:none;position:absolute;right:var(--components-select-input-padding-horizontal)}@supports (content: \"*\"/\"\"){:host:after{content:\"\\e97c\"/\"\"}}@supports not (content: \"*\"/\"\"){:host:after{content:\"\\e97c\"}}:host[disabled]{cursor:not-allowed;pointer-events:all}:host.is-disabled{cursor:not-allowed;pointer-events:all}.lu-select-display-wrapper{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lu-select-value{line-height:var(--sizes-M-lineHeight);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-M-lineHeight));padding:var(--components-select-input-padding-vertical) 3rem var(--components-select-input-padding-vertical) var(--components-select-input-padding-horizontal);transition:all var(--commons-animations-durations-standard);display:none}.lu-select-placeholder{color:var(--palettes-400, var(--palettes-primary-400));line-height:var(--sizes-M-lineHeight);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-M-lineHeight));padding:var(--components-select-input-padding-vertical) 3rem var(--components-select-input-padding-vertical) var(--components-select-input-padding-horizontal);transition:all var(--commons-animations-durations-standard);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lu-select-suffix{position:absolute;bottom:var(--spacings-XS);right:1.6rem}::ng-deep .lu-select-value .label{padding:var(--spacings-XXS) var(--spacings-XS);margin-left:0}::ng-deep .lu-select-value .chip{background-color:var(--components-select-chip-background);color:var(--components-select-chip-text);vertical-align:baseline;max-width:100%;height:var(--sizes-M-lineHeight);line-height:var(--sizes-M-lineHeight);padding:0 var(--spacings-XS);margin:0 var(--spacings-XXS) var(--spacings-XXS) 0;text-overflow:ellipsis;overflow:hidden;vertical-align:top;white-space:nowrap}:host-context(.textfield.mod-S) .lu-select-value,:host-context(.textfield.mod-S) .lu-select-placeholder{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-XS-lineHeight);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-XS-lineHeight))}:host-context(.textfield.mod-S):after{line-height:var(--sizes-XS-lineHeight)}:host-context(.textfield.mod-S) .lu-select-suffix{bottom:var(--spacings-XXS)}:host-context(.textfield.mod-S) ::ng-deep .lu-select-value .label{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight);font-weight:600;margin:0;padding:0;background-color:transparent}:host-context(.textfield.mod-S) ::ng-deep .lu-select-value .chip{height:var(--sizes-XS-lineHeight);line-height:var(--sizes-XS-lineHeight);font-size:var(--sizes-XS-fontSize)}:host-context(.textfield.mod-framed).textfield-input,:host-context(.form.mod-framed).textfield-input{padding:var(--components-select-framed-top-padding) 0 0}:host-context(.textfield.mod-framed).textfield-input:after,:host-context(.form.mod-framed).textfield-input:after{color:var(--palettes-grey-500);bottom:var(--components-select-framed-bottom-padding);right:var(--spacings-XS)}:host-context(.textfield.mod-framed).textfield-input .lu-select-value,:host-context(.form.mod-framed).textfield-input .lu-select-value{padding:0 calc(var(--components-select-framed-side-padding) * 3) var(--components-select-framed-bottom-padding) var(--components-select-framed-side-padding)}:host-context(.textfield.mod-framed).textfield-input .lu-select-placeholder,:host-context(.form.mod-framed).textfield-input .lu-select-placeholder{color:var(--palettes-grey-400);padding:0 calc(var(--components-select-framed-side-padding) * 3) var(--components-select-framed-bottom-padding) var(--components-select-framed-side-padding)}:host-context(.textfield.mod-framed).textfield-input .lu-select-suffix,:host-context(.form.mod-framed).textfield-input .lu-select-suffix{bottom:var(--components-select-framed-bottom-padding);right:1.7rem}:host-context(.textfield.mod-filter) .lu-select-value,:host-context(.textfield.mod-filter) .lu-select-placeholder{padding:0;height:auto;padding-top:var(--spacings-S);color:var(--palettes-grey-800)}:host-context(.textfield.mod-filter) .lu-select-suffix{bottom:.4rem}:host-context(.textfield.mod-material):after{color:var(--palettes-grey-500);bottom:.6rem;right:0}:host-context(.textfield.mod-material) .lu-select-value,:host-context(.textfield.mod-material) .lu-select-placeholder{padding-left:0;padding-right:.8rem}:host-context(.textfield.mod-material) .lu-select-suffix{right:calc(2 * var(--components-select-input-padding-horizontal))}:host-context(.textfield.mod-material).is-select .lu-select-placeholder{display:none}:host-context(.textfield.mod-material).mod-search:after{bottom:0}:host-context(.textfield.mod-material).mod-search .lu-select-suffix{right:calc(2.75 * var(--components-select-input-padding-horizontal))}:host-context(.textfield.mod-material .textfield-input.is-focused) .lu-select-placeholder{display:none}:host(.mod-multiple) .lu-select-value{height:auto;align-items:center}:host(.mod-multiple) .lu-select-display-wrapper{overflow:hidden;white-space:normal;margin-bottom:calc(var(--spacings-XXS) * -1)}:host-context(.textfield.mod-outlined).textfield-input:after{color:var(--palettes-grey-600)}:host-context(.textfield.mod-outlined).textfield-input .lu-select-placeholder{color:var(--palettes-grey-400)}:host-context(.textfield.mod-outlined) :host-context(.textfield-input.is-error):after{color:var(--palettes-error-600)}:host-context(.textfield.mod-outlined) :host-context(.textfield-input.is-error) .lu-select-placeholder{color:var(--palettes-error-400)}:host-context(.textfield-input.is-filled) .lu-select-placeholder{display:none}:host-context(.textfield-input.is-filled) .lu-select-value{display:flex;align-items:flex-start}:host-context(.textfield-input.is-clearable) .lu-select-value{padding-right:3rem}:host-context(.textfield-input.is-error):after{color:var(--palettes-error-700)}:host-context(.textfield-input.is-error) .lu-select-placeholder{color:var(--palettes-error-400)}:host-context(.textfield-input.is-disabled,.textfield-input[disabled]):after{color:var(--commons-disabled-color)}:host-context(.textfield-input.is-disabled,.textfield-input[disabled]) .lu-select-placeholder{color:var(--commons-disabled-placeholder)}:host{display:none}:host-context(.textfield-input.is-filled){display:inline-block}.actionIcon{height:1.5rem;width:1.5rem;padding:0;color:var(--palettes-700, var(--palettes-primary-700))}.actionIcon:hover{background-color:var(--palettes-50, var(--palettes-primary-50));color:var(--palettes-800, var(--palettes-primary-800))}.actionIcon:focus{background-color:var(--palettes-50, var(--palettes-primary-50));box-shadow:0 2px 8px rgba(var(--colors-grey-900-rgb),.04),0 1px 2px rgba(var(--colors-grey-900-rgb),.06),0 0 0 4px var(--palettes-200, var(--palettes-primary-200))}:host-context(.textfield.mod-outlined) .actionIcon{color:var(--palettes-grey-700)}:host-context(.textfield.mod-outlined) .actionIcon:hover{background-color:var(--palettes-grey-50);color:var(--palettes-grey-800)}:host-context(.textfield.mod-outlined) .actionIcon:focus{background-color:var(--palettes-grey-50);box-shadow:0 2px 8px rgba(var(--colors-grey-900-rgb),.04),0 1px 2px rgba(var(--colors-grey-900-rgb),.06),0 0 0 4px var(--palettes-grey-200)}.lucca-icon{display:block}:host-context(.textfield.mod-material) .actionIcon{color:var(--palettes-grey-500)}:host-context(.textfield.mod-framed) .actionIcon{color:var(--palettes-grey-500)}:host-context(.textfield-input.is-error) .actionIcon{color:var(--palettes-error-700)}:host-context(.textfield-input.is-error) .actionIcon:hover{background-color:var(--palettes-error-50);color:var(--palettes-error-800)}:host-context(.textfield-input.is-disabled,.textfield-input[disabled]){display:none}:host.is-disabled{display:inline-block!important}\n"], dependencies: [{ kind: "directive", type: LuOptionOutletDirective, selector: "[luOptionOutlet]", inputs: ["luOptionOutlet", "luOptionOutletValue"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: OverlayModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
673
+ ], ngImport: i0, template: "<div class=\"lu-select-placeholder\">{{ placeholder }}</div>\r\n<div class=\"lu-select-value\">\r\n\t<div class=\"lu-select-display-wrapper\">\r\n\t\t<ng-container *luOptionOutlet=\"valueTpl || optionTpl; value: value\"></ng-container>\r\n\t</div>\r\n</div>\r\n<a *ngIf=\"clearable && isFilled\" class=\"lu-select-clearer\" role=\"button\" (click)=\"clearValue($event)\">\r\n\t<span aria-hidden=\"true\" class=\"lucca-icon icon-thinCross\"></span>\r\n\t<span class=\"u-mask\">{{ intl.clear }}</span>\r\n</a>\r\n", styles: [":root{--components-options-item-padding-vertical: var(--spacings-XS);--components-options-item-padding-horizontal: var(--spacings-XS);--components-options-item-multiple-padding: var(--spacings-L);--components-options-item-icon-color: var(--palettes-grey-800);--components-options-checkbox-left: .5rem;--components-options-checkbox-size: 1rem;--components-options-checkbox-color: var(--palettes-primary-700);--components-options-checkbox-border-radius: var(--commons-borderRadius-M);--components-options-checkbox-border-color: var(--palettes-grey-700);--components-options-establishment-multiple-padding: var(--spacings-M)}:host{--components-select-chip-background: var(--palettes-primary-700);--components-select-chip-text: var(--colors-white-color);--components-select-input-padding-horizontal: var(--spacings-XS);--components-select-input-padding-vertical: var(--spacings-XS);--components-select-framed-color: var(--palettes-grey-500);--components-select-framed-color50: var(--palettes-grey-50);--components-select-framed-see-through: var(--palettes-grey-50);--components-select-framed-text: var(--palettes-grey-800);--components-select-framed-placeholder: #cccccc;--components-select-framed-side-padding: var(--spacings-S);--components-select-framed-top-padding: var(--spacings-L);--components-select-framed-bottom-padding: var(--spacings-S);--components-select-framed-label-top-offset: var(--spacings-XS);cursor:pointer;outline:none;padding:0!important;gap:0!important}:host:after{display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;color:var(--palettes-grey-600);bottom:var(--components-select-input-padding-vertical);font-size:var(--sizes-M-lineHeight);line-height:var(--sizes-M-lineHeight);pointer-events:none;position:absolute;right:var(--components-select-input-padding-horizontal)}@supports (content: \"*\"/\"\"){:host:after{content:\"\\e97c\"/\"\"}}@supports not (content: \"*\"/\"\"){:host:after{content:\"\\e97c\"}}:host[disabled]{cursor:not-allowed;pointer-events:all}:host.is-disabled{cursor:not-allowed;pointer-events:all}.lu-select-display-wrapper{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lu-select-value{line-height:var(--sizes-M-lineHeight);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-M-lineHeight));padding:var(--components-select-input-padding-vertical) 3.5rem var(--components-select-input-padding-vertical) var(--components-select-input-padding-horizontal);transition:all var(--commons-animations-durations-standard);display:none}.lu-select-placeholder{color:var(--palettes-grey-400);line-height:var(--sizes-M-lineHeight);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-M-lineHeight));padding:var(--components-select-input-padding-vertical) 3.5rem var(--components-select-input-padding-vertical) var(--components-select-input-padding-horizontal);transition:all var(--commons-animations-durations-standard);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lu-select-suffix{position:absolute;bottom:.75rem;right:2.25rem}.lu-select-clearer{display:block;position:absolute;width:1rem;height:1rem;background-color:var(--palettes-grey-700);bottom:.75rem;right:2.25rem;color:var(--colors-white-color);padding:0;border-radius:50%;transition:background-color var(--commons-animations-durations-fast) ease}.lu-select-clearer .lucca-icon{font-size:var(--sizes-XS-lineHeight)}.lu-select-clearer:hover{background-color:var(--palettes-grey-600)}::ng-deep .lu-select-value .label{padding:var(--spacings-XXS) var(--spacings-XS);margin-left:0}::ng-deep .lu-select-value .chip{background-color:var(--components-select-chip-background);color:var(--components-select-chip-text);vertical-align:baseline;max-width:100%;height:var(--sizes-M-lineHeight);line-height:var(--sizes-M-lineHeight);padding:0 var(--spacings-XS);margin:0 var(--spacings-XXS) var(--spacings-XXS) 0;text-overflow:ellipsis;overflow:hidden;vertical-align:top;white-space:nowrap}:host-context(.textfield.mod-S) .lu-select-value,:host-context(.textfield.mod-S) .lu-select-placeholder{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-XS-lineHeight);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-XS-lineHeight))}:host-context(.textfield.mod-S):after{line-height:var(--sizes-XS-lineHeight);font-size:var(--sizes-S-lineHeight)}:host-context(.textfield.mod-S) .lu-select-suffix{bottom:.625rem;right:2rem}:host-context(.textfield.mod-S) ::ng-deep .lu-select-value .label{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight);font-weight:600;margin:0;padding:0;background-color:transparent}:host-context(.textfield.mod-S) ::ng-deep .lu-select-value .chip{height:var(--sizes-XS-lineHeight);line-height:var(--sizes-XS-lineHeight);font-size:var(--sizes-XS-fontSize)}:host-context(.textfield.mod-framed).textfield-input,:host-context(.form.mod-framed).textfield-input{padding:var(--components-select-framed-top-padding) 0 0}:host-context(.textfield.mod-framed).textfield-input:after,:host-context(.form.mod-framed).textfield-input:after{color:var(--palettes-grey-500);bottom:var(--components-select-framed-bottom-padding);right:var(--spacings-XS)}:host-context(.textfield.mod-framed).textfield-input .lu-select-value,:host-context(.form.mod-framed).textfield-input .lu-select-value{padding:0 calc(var(--components-select-framed-side-padding) * 3) var(--components-select-framed-bottom-padding) var(--components-select-framed-side-padding)}:host-context(.textfield.mod-framed).textfield-input .lu-select-placeholder,:host-context(.form.mod-framed).textfield-input .lu-select-placeholder{color:var(--palettes-grey-400);padding:0 calc(var(--components-select-framed-side-padding) * 3) var(--components-select-framed-bottom-padding) var(--components-select-framed-side-padding)}:host-context(.textfield.mod-framed).textfield-input .lu-select-suffix,:host-context(.form.mod-framed).textfield-input .lu-select-suffix{bottom:var(--components-select-framed-bottom-padding);right:1.7rem}:host-context(.textfield.mod-filter) .lu-select-value,:host-context(.textfield.mod-filter) .lu-select-placeholder{padding:0;height:auto;padding-top:var(--spacings-S);color:var(--palettes-grey-800)}:host-context(.textfield.mod-filter) .lu-select-suffix{bottom:.4rem}:host-context(.textfield.mod-material):after{color:var(--palettes-grey-500);bottom:.6rem;right:0}:host-context(.textfield.mod-material) .lu-select-value,:host-context(.textfield.mod-material) .lu-select-placeholder{padding-left:0;padding-right:.8rem}:host-context(.textfield.mod-material) .lu-select-suffix{right:calc(2 * var(--components-select-input-padding-horizontal))}:host-context(.textfield.mod-material).is-select .lu-select-placeholder{display:none}:host-context(.textfield.mod-material).mod-search:after{bottom:0}:host-context(.textfield.mod-material).mod-search .lu-select-suffix{right:calc(2.75 * var(--components-select-input-padding-horizontal))}:host-context(.textfield.mod-material .textfield-input.is-focused) .lu-select-placeholder{display:none}:host(.mod-multiple) .lu-select-value{height:auto;align-items:center}:host(.mod-multiple) .lu-select-display-wrapper{overflow:hidden;white-space:normal;margin-bottom:calc(var(--spacings-XXS) * -1)}:host-context(.textfield.mod-outlined).textfield-input:after{color:var(--palettes-grey-600)}:host-context(.textfield.mod-outlined).textfield-input .lu-select-placeholder{color:var(--palettes-grey-400)}:host-context(.textfield.mod-outlined) :host-context(.textfield-input.is-error):after{color:var(--palettes-error-600)}:host-context(.textfield.mod-outlined) :host-context(.textfield-input.is-error) .lu-select-placeholder{color:var(--palettes-error-400)}:host-context(.textfield-input.is-filled) .lu-select-placeholder{display:none}:host-context(.textfield-input.is-filled) .lu-select-value{display:flex;align-items:flex-start}:host-context(.textfield-input.is-clearable) .lu-select-value{padding-right:3.5rem}:host-context(.textfield-input.is-error):after{color:var(--palettes-error-700)}:host-context(.textfield-input.is-error) .lu-select-placeholder{color:var(--palettes-error-400)}:host-context(.textfield-input.is-disabled,.textfield-input[disabled]):after{color:var(--commons-disabled-color)}:host-context(.textfield-input.is-disabled,.textfield-input[disabled]) .lu-select-placeholder{color:var(--commons-disabled-placeholder)}:host{display:none}:host-context(.textfield-input.is-filled){display:block}.clearer{display:block;width:1rem;height:1rem;background-color:var(--palettes-grey-700);color:var(--colors-white-color);padding:0;border-radius:50%;transition:background-color var(--commons-animations-durations-fast) ease}.clearer .lucca-icon{font-size:var(--sizes-XS-lineHeight)}.clearer:hover{background-color:var(--palettes-grey-600)}.lucca-icon{display:block}:host-context(.textfield-input.is-disabled,.textfield-input[disabled]){display:none}:host-context(.textfield.mod-S) .clearer{width:.75rem;height:.75rem}:host-context(.textfield.mod-S) .clearer .lucca-icon{font-size:.75rem}:host.is-disabled{display:inline-block!important}\n"], dependencies: [{ kind: "directive", type: LuOptionOutletDirective, selector: "[luOptionOutlet]", inputs: ["luOptionOutlet", "luOptionOutletValue"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: OverlayModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
674
674
  }
675
675
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: LuSimpleSelectInputComponent, decorators: [{
676
676
  type: Component,
@@ -683,7 +683,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
683
683
  provideLuSelectOverlayContainer(),
684
684
  provideLuSelectLabelsAndIds(),
685
685
  LuSimpleSelectPanelRefFactory,
686
- ], template: "<div class=\"lu-select-placeholder\">{{ placeholder }}</div>\r\n<div class=\"lu-select-value\">\r\n\t<div class=\"lu-select-display-wrapper\">\r\n\t\t<ng-container *luOptionOutlet=\"valueTpl || optionTpl; value: value\"></ng-container>\r\n\t</div>\r\n</div>\r\n<div class=\"lu-select-suffix\">\r\n\t<a *ngIf=\"clearable && isFilled\" role=\"button\" class=\"actionIcon\" (click)=\"clearValue($event)\">\r\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-thinCross\"></span>\r\n\t\t<span class=\"u-mask\">{{ intl.clear }}</span>\r\n\t</a>\r\n</div>\r\n", styles: [":root{--components-options-item-padding-vertical: var(--spacings-XS);--components-options-item-padding-horizontal: var(--spacings-XS);--components-options-item-multiple-padding: var(--spacings-L);--components-options-item-icon-color: var(--palettes-grey-800);--components-options-checkbox-left: .5rem;--components-options-checkbox-size: 1rem;--components-options-checkbox-color: var(--palettes-primary-700);--components-options-checkbox-border-radius: var(--commons-borderRadius-M);--components-options-checkbox-border-color: var(--palettes-grey-700);--components-options-establishment-multiple-padding: var(--spacings-M)}:host{--components-select-chip-background: var(--palettes-primary-700);--components-select-chip-text: var(--colors-white-color);--components-select-input-padding-horizontal: var(--spacings-XS);--components-select-input-padding-vertical: var(--spacings-XS);--components-select-framed-color: var(--palettes-grey-500);--components-select-framed-color50: var(--palettes-grey-50);--components-select-framed-see-through: var(--palettes-grey-50);--components-select-framed-text: var(--palettes-grey-800);--components-select-framed-placeholder: #cccccc;--components-select-framed-side-padding: var(--spacings-S);--components-select-framed-top-padding: var(--spacings-L);--components-select-framed-bottom-padding: var(--spacings-S);--components-select-framed-label-top-offset: var(--spacings-XS);cursor:pointer;outline:none;padding:0}:host:after{display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;color:var(--palettes-700, var(--palettes-primary-700));bottom:var(--components-select-input-padding-vertical);font-size:1.2rem;line-height:1.4rem;pointer-events:none;position:absolute;right:var(--components-select-input-padding-horizontal)}@supports (content: \"*\"/\"\"){:host:after{content:\"\\e97c\"/\"\"}}@supports not (content: \"*\"/\"\"){:host:after{content:\"\\e97c\"}}:host[disabled]{cursor:not-allowed;pointer-events:all}:host.is-disabled{cursor:not-allowed;pointer-events:all}.lu-select-display-wrapper{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lu-select-value{line-height:var(--sizes-M-lineHeight);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-M-lineHeight));padding:var(--components-select-input-padding-vertical) 3rem var(--components-select-input-padding-vertical) var(--components-select-input-padding-horizontal);transition:all var(--commons-animations-durations-standard);display:none}.lu-select-placeholder{color:var(--palettes-400, var(--palettes-primary-400));line-height:var(--sizes-M-lineHeight);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-M-lineHeight));padding:var(--components-select-input-padding-vertical) 3rem var(--components-select-input-padding-vertical) var(--components-select-input-padding-horizontal);transition:all var(--commons-animations-durations-standard);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lu-select-suffix{position:absolute;bottom:var(--spacings-XS);right:1.6rem}::ng-deep .lu-select-value .label{padding:var(--spacings-XXS) var(--spacings-XS);margin-left:0}::ng-deep .lu-select-value .chip{background-color:var(--components-select-chip-background);color:var(--components-select-chip-text);vertical-align:baseline;max-width:100%;height:var(--sizes-M-lineHeight);line-height:var(--sizes-M-lineHeight);padding:0 var(--spacings-XS);margin:0 var(--spacings-XXS) var(--spacings-XXS) 0;text-overflow:ellipsis;overflow:hidden;vertical-align:top;white-space:nowrap}:host-context(.textfield.mod-S) .lu-select-value,:host-context(.textfield.mod-S) .lu-select-placeholder{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-XS-lineHeight);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-XS-lineHeight))}:host-context(.textfield.mod-S):after{line-height:var(--sizes-XS-lineHeight)}:host-context(.textfield.mod-S) .lu-select-suffix{bottom:var(--spacings-XXS)}:host-context(.textfield.mod-S) ::ng-deep .lu-select-value .label{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight);font-weight:600;margin:0;padding:0;background-color:transparent}:host-context(.textfield.mod-S) ::ng-deep .lu-select-value .chip{height:var(--sizes-XS-lineHeight);line-height:var(--sizes-XS-lineHeight);font-size:var(--sizes-XS-fontSize)}:host-context(.textfield.mod-framed).textfield-input,:host-context(.form.mod-framed).textfield-input{padding:var(--components-select-framed-top-padding) 0 0}:host-context(.textfield.mod-framed).textfield-input:after,:host-context(.form.mod-framed).textfield-input:after{color:var(--palettes-grey-500);bottom:var(--components-select-framed-bottom-padding);right:var(--spacings-XS)}:host-context(.textfield.mod-framed).textfield-input .lu-select-value,:host-context(.form.mod-framed).textfield-input .lu-select-value{padding:0 calc(var(--components-select-framed-side-padding) * 3) var(--components-select-framed-bottom-padding) var(--components-select-framed-side-padding)}:host-context(.textfield.mod-framed).textfield-input .lu-select-placeholder,:host-context(.form.mod-framed).textfield-input .lu-select-placeholder{color:var(--palettes-grey-400);padding:0 calc(var(--components-select-framed-side-padding) * 3) var(--components-select-framed-bottom-padding) var(--components-select-framed-side-padding)}:host-context(.textfield.mod-framed).textfield-input .lu-select-suffix,:host-context(.form.mod-framed).textfield-input .lu-select-suffix{bottom:var(--components-select-framed-bottom-padding);right:1.7rem}:host-context(.textfield.mod-filter) .lu-select-value,:host-context(.textfield.mod-filter) .lu-select-placeholder{padding:0;height:auto;padding-top:var(--spacings-S);color:var(--palettes-grey-800)}:host-context(.textfield.mod-filter) .lu-select-suffix{bottom:.4rem}:host-context(.textfield.mod-material):after{color:var(--palettes-grey-500);bottom:.6rem;right:0}:host-context(.textfield.mod-material) .lu-select-value,:host-context(.textfield.mod-material) .lu-select-placeholder{padding-left:0;padding-right:.8rem}:host-context(.textfield.mod-material) .lu-select-suffix{right:calc(2 * var(--components-select-input-padding-horizontal))}:host-context(.textfield.mod-material).is-select .lu-select-placeholder{display:none}:host-context(.textfield.mod-material).mod-search:after{bottom:0}:host-context(.textfield.mod-material).mod-search .lu-select-suffix{right:calc(2.75 * var(--components-select-input-padding-horizontal))}:host-context(.textfield.mod-material .textfield-input.is-focused) .lu-select-placeholder{display:none}:host(.mod-multiple) .lu-select-value{height:auto;align-items:center}:host(.mod-multiple) .lu-select-display-wrapper{overflow:hidden;white-space:normal;margin-bottom:calc(var(--spacings-XXS) * -1)}:host-context(.textfield.mod-outlined).textfield-input:after{color:var(--palettes-grey-600)}:host-context(.textfield.mod-outlined).textfield-input .lu-select-placeholder{color:var(--palettes-grey-400)}:host-context(.textfield.mod-outlined) :host-context(.textfield-input.is-error):after{color:var(--palettes-error-600)}:host-context(.textfield.mod-outlined) :host-context(.textfield-input.is-error) .lu-select-placeholder{color:var(--palettes-error-400)}:host-context(.textfield-input.is-filled) .lu-select-placeholder{display:none}:host-context(.textfield-input.is-filled) .lu-select-value{display:flex;align-items:flex-start}:host-context(.textfield-input.is-clearable) .lu-select-value{padding-right:3rem}:host-context(.textfield-input.is-error):after{color:var(--palettes-error-700)}:host-context(.textfield-input.is-error) .lu-select-placeholder{color:var(--palettes-error-400)}:host-context(.textfield-input.is-disabled,.textfield-input[disabled]):after{color:var(--commons-disabled-color)}:host-context(.textfield-input.is-disabled,.textfield-input[disabled]) .lu-select-placeholder{color:var(--commons-disabled-placeholder)}:host{display:none}:host-context(.textfield-input.is-filled){display:inline-block}.actionIcon{height:1.5rem;width:1.5rem;padding:0;color:var(--palettes-700, var(--palettes-primary-700))}.actionIcon:hover{background-color:var(--palettes-50, var(--palettes-primary-50));color:var(--palettes-800, var(--palettes-primary-800))}.actionIcon:focus{background-color:var(--palettes-50, var(--palettes-primary-50));box-shadow:0 2px 8px rgba(var(--colors-grey-900-rgb),.04),0 1px 2px rgba(var(--colors-grey-900-rgb),.06),0 0 0 4px var(--palettes-200, var(--palettes-primary-200))}:host-context(.textfield.mod-outlined) .actionIcon{color:var(--palettes-grey-700)}:host-context(.textfield.mod-outlined) .actionIcon:hover{background-color:var(--palettes-grey-50);color:var(--palettes-grey-800)}:host-context(.textfield.mod-outlined) .actionIcon:focus{background-color:var(--palettes-grey-50);box-shadow:0 2px 8px rgba(var(--colors-grey-900-rgb),.04),0 1px 2px rgba(var(--colors-grey-900-rgb),.06),0 0 0 4px var(--palettes-grey-200)}.lucca-icon{display:block}:host-context(.textfield.mod-material) .actionIcon{color:var(--palettes-grey-500)}:host-context(.textfield.mod-framed) .actionIcon{color:var(--palettes-grey-500)}:host-context(.textfield-input.is-error) .actionIcon{color:var(--palettes-error-700)}:host-context(.textfield-input.is-error) .actionIcon:hover{background-color:var(--palettes-error-50);color:var(--palettes-error-800)}:host-context(.textfield-input.is-disabled,.textfield-input[disabled]){display:none}:host.is-disabled{display:inline-block!important}\n"] }]
686
+ ], template: "<div class=\"lu-select-placeholder\">{{ placeholder }}</div>\r\n<div class=\"lu-select-value\">\r\n\t<div class=\"lu-select-display-wrapper\">\r\n\t\t<ng-container *luOptionOutlet=\"valueTpl || optionTpl; value: value\"></ng-container>\r\n\t</div>\r\n</div>\r\n<a *ngIf=\"clearable && isFilled\" class=\"lu-select-clearer\" role=\"button\" (click)=\"clearValue($event)\">\r\n\t<span aria-hidden=\"true\" class=\"lucca-icon icon-thinCross\"></span>\r\n\t<span class=\"u-mask\">{{ intl.clear }}</span>\r\n</a>\r\n", styles: [":root{--components-options-item-padding-vertical: var(--spacings-XS);--components-options-item-padding-horizontal: var(--spacings-XS);--components-options-item-multiple-padding: var(--spacings-L);--components-options-item-icon-color: var(--palettes-grey-800);--components-options-checkbox-left: .5rem;--components-options-checkbox-size: 1rem;--components-options-checkbox-color: var(--palettes-primary-700);--components-options-checkbox-border-radius: var(--commons-borderRadius-M);--components-options-checkbox-border-color: var(--palettes-grey-700);--components-options-establishment-multiple-padding: var(--spacings-M)}:host{--components-select-chip-background: var(--palettes-primary-700);--components-select-chip-text: var(--colors-white-color);--components-select-input-padding-horizontal: var(--spacings-XS);--components-select-input-padding-vertical: var(--spacings-XS);--components-select-framed-color: var(--palettes-grey-500);--components-select-framed-color50: var(--palettes-grey-50);--components-select-framed-see-through: var(--palettes-grey-50);--components-select-framed-text: var(--palettes-grey-800);--components-select-framed-placeholder: #cccccc;--components-select-framed-side-padding: var(--spacings-S);--components-select-framed-top-padding: var(--spacings-L);--components-select-framed-bottom-padding: var(--spacings-S);--components-select-framed-label-top-offset: var(--spacings-XS);cursor:pointer;outline:none;padding:0!important;gap:0!important}:host:after{display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;color:var(--palettes-grey-600);bottom:var(--components-select-input-padding-vertical);font-size:var(--sizes-M-lineHeight);line-height:var(--sizes-M-lineHeight);pointer-events:none;position:absolute;right:var(--components-select-input-padding-horizontal)}@supports (content: \"*\"/\"\"){:host:after{content:\"\\e97c\"/\"\"}}@supports not (content: \"*\"/\"\"){:host:after{content:\"\\e97c\"}}:host[disabled]{cursor:not-allowed;pointer-events:all}:host.is-disabled{cursor:not-allowed;pointer-events:all}.lu-select-display-wrapper{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lu-select-value{line-height:var(--sizes-M-lineHeight);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-M-lineHeight));padding:var(--components-select-input-padding-vertical) 3.5rem var(--components-select-input-padding-vertical) var(--components-select-input-padding-horizontal);transition:all var(--commons-animations-durations-standard);display:none}.lu-select-placeholder{color:var(--palettes-grey-400);line-height:var(--sizes-M-lineHeight);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-M-lineHeight));padding:var(--components-select-input-padding-vertical) 3.5rem var(--components-select-input-padding-vertical) var(--components-select-input-padding-horizontal);transition:all var(--commons-animations-durations-standard);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lu-select-suffix{position:absolute;bottom:.75rem;right:2.25rem}.lu-select-clearer{display:block;position:absolute;width:1rem;height:1rem;background-color:var(--palettes-grey-700);bottom:.75rem;right:2.25rem;color:var(--colors-white-color);padding:0;border-radius:50%;transition:background-color var(--commons-animations-durations-fast) ease}.lu-select-clearer .lucca-icon{font-size:var(--sizes-XS-lineHeight)}.lu-select-clearer:hover{background-color:var(--palettes-grey-600)}::ng-deep .lu-select-value .label{padding:var(--spacings-XXS) var(--spacings-XS);margin-left:0}::ng-deep .lu-select-value .chip{background-color:var(--components-select-chip-background);color:var(--components-select-chip-text);vertical-align:baseline;max-width:100%;height:var(--sizes-M-lineHeight);line-height:var(--sizes-M-lineHeight);padding:0 var(--spacings-XS);margin:0 var(--spacings-XXS) var(--spacings-XXS) 0;text-overflow:ellipsis;overflow:hidden;vertical-align:top;white-space:nowrap}:host-context(.textfield.mod-S) .lu-select-value,:host-context(.textfield.mod-S) .lu-select-placeholder{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-XS-lineHeight);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-XS-lineHeight))}:host-context(.textfield.mod-S):after{line-height:var(--sizes-XS-lineHeight);font-size:var(--sizes-S-lineHeight)}:host-context(.textfield.mod-S) .lu-select-suffix{bottom:.625rem;right:2rem}:host-context(.textfield.mod-S) ::ng-deep .lu-select-value .label{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight);font-weight:600;margin:0;padding:0;background-color:transparent}:host-context(.textfield.mod-S) ::ng-deep .lu-select-value .chip{height:var(--sizes-XS-lineHeight);line-height:var(--sizes-XS-lineHeight);font-size:var(--sizes-XS-fontSize)}:host-context(.textfield.mod-framed).textfield-input,:host-context(.form.mod-framed).textfield-input{padding:var(--components-select-framed-top-padding) 0 0}:host-context(.textfield.mod-framed).textfield-input:after,:host-context(.form.mod-framed).textfield-input:after{color:var(--palettes-grey-500);bottom:var(--components-select-framed-bottom-padding);right:var(--spacings-XS)}:host-context(.textfield.mod-framed).textfield-input .lu-select-value,:host-context(.form.mod-framed).textfield-input .lu-select-value{padding:0 calc(var(--components-select-framed-side-padding) * 3) var(--components-select-framed-bottom-padding) var(--components-select-framed-side-padding)}:host-context(.textfield.mod-framed).textfield-input .lu-select-placeholder,:host-context(.form.mod-framed).textfield-input .lu-select-placeholder{color:var(--palettes-grey-400);padding:0 calc(var(--components-select-framed-side-padding) * 3) var(--components-select-framed-bottom-padding) var(--components-select-framed-side-padding)}:host-context(.textfield.mod-framed).textfield-input .lu-select-suffix,:host-context(.form.mod-framed).textfield-input .lu-select-suffix{bottom:var(--components-select-framed-bottom-padding);right:1.7rem}:host-context(.textfield.mod-filter) .lu-select-value,:host-context(.textfield.mod-filter) .lu-select-placeholder{padding:0;height:auto;padding-top:var(--spacings-S);color:var(--palettes-grey-800)}:host-context(.textfield.mod-filter) .lu-select-suffix{bottom:.4rem}:host-context(.textfield.mod-material):after{color:var(--palettes-grey-500);bottom:.6rem;right:0}:host-context(.textfield.mod-material) .lu-select-value,:host-context(.textfield.mod-material) .lu-select-placeholder{padding-left:0;padding-right:.8rem}:host-context(.textfield.mod-material) .lu-select-suffix{right:calc(2 * var(--components-select-input-padding-horizontal))}:host-context(.textfield.mod-material).is-select .lu-select-placeholder{display:none}:host-context(.textfield.mod-material).mod-search:after{bottom:0}:host-context(.textfield.mod-material).mod-search .lu-select-suffix{right:calc(2.75 * var(--components-select-input-padding-horizontal))}:host-context(.textfield.mod-material .textfield-input.is-focused) .lu-select-placeholder{display:none}:host(.mod-multiple) .lu-select-value{height:auto;align-items:center}:host(.mod-multiple) .lu-select-display-wrapper{overflow:hidden;white-space:normal;margin-bottom:calc(var(--spacings-XXS) * -1)}:host-context(.textfield.mod-outlined).textfield-input:after{color:var(--palettes-grey-600)}:host-context(.textfield.mod-outlined).textfield-input .lu-select-placeholder{color:var(--palettes-grey-400)}:host-context(.textfield.mod-outlined) :host-context(.textfield-input.is-error):after{color:var(--palettes-error-600)}:host-context(.textfield.mod-outlined) :host-context(.textfield-input.is-error) .lu-select-placeholder{color:var(--palettes-error-400)}:host-context(.textfield-input.is-filled) .lu-select-placeholder{display:none}:host-context(.textfield-input.is-filled) .lu-select-value{display:flex;align-items:flex-start}:host-context(.textfield-input.is-clearable) .lu-select-value{padding-right:3.5rem}:host-context(.textfield-input.is-error):after{color:var(--palettes-error-700)}:host-context(.textfield-input.is-error) .lu-select-placeholder{color:var(--palettes-error-400)}:host-context(.textfield-input.is-disabled,.textfield-input[disabled]):after{color:var(--commons-disabled-color)}:host-context(.textfield-input.is-disabled,.textfield-input[disabled]) .lu-select-placeholder{color:var(--commons-disabled-placeholder)}:host{display:none}:host-context(.textfield-input.is-filled){display:block}.clearer{display:block;width:1rem;height:1rem;background-color:var(--palettes-grey-700);color:var(--colors-white-color);padding:0;border-radius:50%;transition:background-color var(--commons-animations-durations-fast) ease}.clearer .lucca-icon{font-size:var(--sizes-XS-lineHeight)}.clearer:hover{background-color:var(--palettes-grey-600)}.lucca-icon{display:block}:host-context(.textfield-input.is-disabled,.textfield-input[disabled]){display:none}:host-context(.textfield.mod-S) .clearer{width:.75rem;height:.75rem}:host-context(.textfield.mod-S) .clearer .lucca-icon{font-size:.75rem}:host.is-disabled{display:inline-block!important}\n"] }]
687
687
  }], propDecorators: { tabindex: [{
688
688
  type: HostBinding,
689
689
  args: ['tabindex']
@@ -1 +1 @@
1
- {"version":3,"file":"lucca-front-ng-simple-select.mjs","sources":["../../../packages/ng/simple-select/src/lib/option/option.token.ts","../../../packages/ng/simple-select/src/lib/option/default-option.component.ts","../../../packages/ng/simple-select/src/lib/option/disabled.directive.ts","../../../packages/ng/simple-select/src/lib/option/displayer.directive.ts","../../../packages/ng/simple-select/src/lib/select.model.ts","../../../packages/ng/simple-select/src/lib/option/option-outlet.directive.ts","../../../packages/ng/simple-select/src/lib/option/option.component.ts","../../../packages/ng/simple-select/src/lib/option/option.component.html","../../../packages/ng/simple-select/src/lib/option/option.directive.ts","../../../packages/ng/simple-select/src/lib/select.translate.ts","../../../packages/ng/simple-select/src/lib/panel/panel.models.ts","../../../packages/ng/simple-select/src/lib/panel/panel.component.ts","../../../packages/ng/simple-select/src/lib/panel/panel.component.html","../../../packages/ng/simple-select/src/lib/input/panel-ref.factory.ts","../../../packages/ng/simple-select/src/lib/input/select-input.models.ts","../../../packages/ng/simple-select/src/lib/input/select-input.component.ts","../../../packages/ng/simple-select/src/lib/input/select-input.component.html","../../../packages/ng/simple-select/src/public-api.ts","../../../packages/ng/simple-select/src/lucca-front-ng-simple-select.ts"],"sourcesContent":["import { InjectionToken, Provider } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\nexport interface ILuOptionContext<T> {\r\n\tisDisabled$: BehaviorSubject<boolean>;\r\n\toption$: BehaviorSubject<T | undefined>;\r\n\tdestroy(): void;\r\n}\r\n\r\nexport const LU_OPTION_CONTEXT = new InjectionToken<ILuOptionContext<unknown>>('LuOptionContext');\r\n\r\nfunction optionContextFactory<T>(): ILuOptionContext<T> {\r\n\tconst isDisabled$ = new BehaviorSubject(false);\r\n\tconst option$ = new BehaviorSubject<T | undefined>(undefined);\r\n\treturn {\r\n\t\tisDisabled$,\r\n\t\toption$,\r\n\t\tdestroy(): void {\r\n\t\t\tisDisabled$.complete();\r\n\t\t\toption$.complete();\r\n\t\t},\r\n\t};\r\n}\r\n\r\nexport function provideOptionContext(): Provider {\r\n\treturn {\r\n\t\tprovide: LU_OPTION_CONTEXT,\r\n\t\tuseFactory: optionContextFactory,\r\n\t};\r\n}\r\n","import { AsyncPipe, NgIf } from '@angular/common';\r\nimport { Component, inject } from '@angular/core';\r\nimport { ILuOptionContext, LU_OPTION_CONTEXT } from './option.token';\r\n\r\n@Component({\r\n\tselector: 'lu-simple-select-default-option',\r\n\tstandalone: true,\r\n\timports: [AsyncPipe, NgIf],\r\n\ttemplate: `<ng-container *ngIf=\"context.option$ | async as option\">{{ option?.name ?? option }}</ng-container>`,\r\n})\r\nexport class LuSimpleSelectDefaultOptionComponent {\r\n\tpublic context = inject<ILuOptionContext<{ name?: string }>>(LU_OPTION_CONTEXT);\r\n}\r\n","import { Directive, inject, Input } from '@angular/core';\r\nimport { LU_OPTION_CONTEXT } from './option.token';\r\n\r\n@Directive({\r\n\tselector: '[luDisabledOption]',\r\n\tstandalone: true,\r\n})\r\nexport class LuDisabledOptionDirective {\r\n\tprivate context = inject(LU_OPTION_CONTEXT);\r\n\r\n\t@Input('luDisabledOption') public set isDisabled(disabled: boolean | null) {\r\n\t\tif (disabled !== null) {\r\n\t\t\tthis.context.isDisabled$.next(disabled);\r\n\t\t}\r\n\t}\r\n}\r\n","import { Directive, Input, TemplateRef } from '@angular/core';\r\nimport { LuSimpleSelectInputComponent } from '../input';\r\nimport { LuOptionContext } from '../select.model';\r\n\r\n@Directive({\r\n\tselector: '[luDisplayer]',\r\n\tstandalone: true,\r\n})\r\nexport class LuDisplayerDirective<T> {\r\n\t@Input('luDisplayerSelect') set select(select: LuSimpleSelectInputComponent<T>) {\r\n\t\tselect.valueTpl = this.templateRef;\r\n\t}\r\n\r\n\tpublic constructor(private templateRef: TemplateRef<LuOptionContext<T>>) {}\r\n\r\n\tpublic static ngTemplateContextGuard<T>(_dir: LuDisplayerDirective<T>, ctx: unknown): ctx is LuOptionContext<T> {\r\n\t\treturn true;\r\n\t}\r\n}\r\n","import { InjectionToken, TemplateRef, Type } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\nexport interface ILuSelectPanelData<T> {\r\n\toptions$: Observable<T[]>;\r\n\tloading$: Observable<boolean>;\r\n\toptionComparer: (option1: T, option2: T) => boolean;\r\n\tinitialValue: T | undefined;\r\n\toptionTpl: TemplateRef<LuOptionContext<T>> | Type<unknown>;\r\n\tsearchable: boolean;\r\n}\r\n\r\nexport interface LuOptionContext<T> {\r\n\t$implicit: T;\r\n}\r\n\r\nexport const SELECT_ID = new InjectionToken<number>('LuSelectPanelData');\r\nexport const SELECT_PANEL_DATA = new InjectionToken<unknown>('LuSelectId');\r\nexport const SELECT_LABEL = new InjectionToken<HTMLLabelElement | undefined>('LuSelectLabel');\r\nexport const SELECT_LABEL_ID = new InjectionToken<string>('LuSelectLabelId');\r\n","import { ComponentRef, Directive, EmbeddedViewRef, inject, Injector, Input, OnChanges, OnDestroy, SimpleChanges, TemplateRef, Type, ViewContainerRef } from '@angular/core';\r\nimport { LuOptionContext } from '../select.model';\r\nimport { LU_OPTION_CONTEXT, provideOptionContext } from './option.token';\r\n\r\n@Directive({\r\n\tselector: '[luOptionOutlet]',\r\n\tstandalone: true,\r\n\tproviders: [provideOptionContext()],\r\n})\r\nexport class LuOptionOutletDirective<T> implements OnChanges, OnDestroy {\r\n\t@Input() luOptionOutlet?: Type<unknown> | TemplateRef<LuOptionContext<T>>;\r\n\t@Input() luOptionOutletValue: T | undefined;\r\n\r\n\tprivate viewContainerRef = inject(ViewContainerRef);\r\n\tprivate injector = inject(Injector);\r\n\tprivate embeddedViewRef?: EmbeddedViewRef<LuOptionContext<T>>;\r\n\tprivate componentRef?: ComponentRef<unknown>;\r\n\tprivate optionContext = inject(LU_OPTION_CONTEXT);\r\n\r\n\tngOnChanges(changes: SimpleChanges): void {\r\n\t\tif (changes['luOptionOutlet'] || !this.luOptionOutletValue) {\r\n\t\t\tthis.clearContainer();\r\n\t\t}\r\n\r\n\t\tconst hasRef = this.embeddedViewRef || this.componentRef;\r\n\r\n\t\tif (changes['luOptionOutlet'] || (changes['luOptionOutletValue'] && !hasRef)) {\r\n\t\t\tthis.createComponent();\r\n\t\t} else if (changes['luOptionOutletValue']) {\r\n\t\t\tthis.updateRefValue();\r\n\t\t}\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.optionContext.destroy();\r\n\t}\r\n\r\n\tprivate clearContainer(): void {\r\n\t\tthis.viewContainerRef.clear();\r\n\t\tthis.embeddedViewRef?.destroy();\r\n\t\tthis.componentRef?.destroy();\r\n\t\tthis.embeddedViewRef = undefined;\r\n\t\tthis.componentRef = undefined;\r\n\t}\r\n\r\n\tprivate createComponent(): void {\r\n\t\tif (!this.luOptionOutlet || !this.luOptionOutletValue) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (this.luOptionOutlet instanceof TemplateRef) {\r\n\t\t\tthis.embeddedViewRef = this.viewContainerRef.createEmbeddedView(this.luOptionOutlet, { $implicit: this.luOptionOutletValue }, { injector: this.injector });\r\n\t\t} else {\r\n\t\t\tthis.optionContext.option$.next(this.luOptionOutletValue);\r\n\t\t\tthis.componentRef = this.viewContainerRef.createComponent(this.luOptionOutlet, { injector: this.injector });\r\n\t\t}\r\n\t}\r\n\r\n\tprivate updateRefValue(): void {\r\n\t\tif (!this.luOptionOutletValue) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (this.embeddedViewRef) {\r\n\t\t\tthis.embeddedViewRef.context = { $implicit: this.luOptionOutletValue };\r\n\t\t} else if (this.componentRef) {\r\n\t\t\tthis.optionContext.option$.next(this.luOptionOutletValue);\r\n\t\t}\r\n\t}\r\n}\r\n","import { Highlightable } from '@angular/cdk/a11y';\r\nimport { AsyncPipe } from '@angular/common';\r\nimport { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostBinding, inject, Input, OnDestroy, TemplateRef, Type, ViewChild } from '@angular/core';\r\nimport { asyncScheduler, BehaviorSubject, observeOn, Subscription } from 'rxjs';\r\nimport { LuOptionContext, SELECT_ID } from '../select.model';\r\nimport { LuOptionOutletDirective } from './option-outlet.directive';\r\nimport { ILuOptionContext, LU_OPTION_CONTEXT } from './option.token';\r\n\r\n@Component({\r\n\tselector: 'lu-select-option',\r\n\ttemplateUrl: './option.component.html',\r\n\tstyleUrls: ['./option.component.scss'],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n\tstandalone: true,\r\n\timports: [AsyncPipe, LuOptionOutletDirective],\r\n})\r\nexport class LuOptionComponent<T> implements Highlightable, AfterViewInit, OnDestroy {\r\n\t@HostBinding('class.optionItem')\r\n\tpublic hasOptionItemClass = true;\r\n\r\n\t@Input()\r\n\tpublic optionTpl: TemplateRef<LuOptionContext<T>> | Type<unknown> | undefined;\r\n\r\n\t@Input()\r\n\t@HostBinding('attr.aria-selected')\r\n\tisSelected = false;\r\n\r\n\t@Input() option?: T;\r\n\r\n\t@Input()\r\n\tpublic optionIndex = 0;\r\n\r\n\tisHighlighted$ = new BehaviorSubject(false);\r\n\r\n\t/**\r\n\t * Whether option is disabled. Used by ListKeyManager.\r\n\t */\r\n\tdisabled = false;\r\n\r\n\t@ViewChild(LuOptionOutletDirective, { read: LU_OPTION_CONTEXT, static: true })\r\n\tprivate optionContext?: ILuOptionContext<T>;\r\n\r\n\tprivate cdr = inject(ChangeDetectorRef);\r\n\tprivate subscription?: Subscription;\r\n\r\n\t@HostBinding('attr.role')\r\n\tpublic role = 'option';\r\n\r\n\t@HostBinding('attr.id')\r\n\tpublic get id(): string {\r\n\t\treturn `lu-select-${this.selectId}-option-${this.optionIndex}`;\r\n\t}\r\n\r\n\tprotected elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\r\n\tprotected selectId = inject(SELECT_ID);\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.subscription?.unsubscribe();\r\n\t}\r\n\r\n\tngAfterViewInit(): void {\r\n\t\tthis.subscription = this.optionContext.isDisabled$.pipe(observeOn(asyncScheduler)).subscribe((isDisabled) => {\r\n\t\t\tthis.disabled = isDisabled;\r\n\t\t\tthis.cdr.markForCheck();\r\n\t\t});\r\n\t}\r\n\r\n\tsetActiveStyles(): void {\r\n\t\tthis.isHighlighted$.next(true);\r\n\t\tthis.elementRef.nativeElement.scrollIntoView({ block: 'center' });\r\n\t}\r\n\r\n\tsetInactiveStyles(): void {\r\n\t\tthis.isHighlighted$.next(false);\r\n\t}\r\n\r\n\tselectOption($event: Event): void {\r\n\t\tif (this.disabled) {\r\n\t\t\t$event.stopPropagation();\r\n\t\t}\r\n\t}\r\n}\r\n","<div\r\n\tclass=\"optionItem-value\"\r\n\t[class.is-selected]=\"isSelected\"\r\n\t[class.is-highlighted]=\"isHighlighted$ | async\"\r\n\t[class.is-disabled]=\"disabled\"\r\n\t(click)=\"selectOption($event)\"\r\n>\r\n\t<ng-container *luOptionOutlet=\"optionTpl; value: option\"></ng-container>\r\n</div>\r\n","import { Directive, Input, TemplateRef } from '@angular/core';\r\nimport { LuSimpleSelectInputComponent } from '../input';\r\nimport { LuOptionContext } from '../select.model';\r\n\r\n@Directive({\r\n\tselector: '[luOption]',\r\n\tstandalone: true,\r\n})\r\nexport class LuOptionDirective<T> {\r\n\t@Input('luOptionSelect') set select(select: LuSimpleSelectInputComponent<T>) {\r\n\t\tselect.optionTpl = this.templateRef;\r\n\t}\r\n\r\n\tpublic constructor(private templateRef: TemplateRef<LuOptionContext<T>>) {}\r\n\r\n\tpublic static ngTemplateContextGuard<T>(_dir: LuOptionDirective<T>, ctx: unknown): ctx is LuOptionContext<T> {\r\n\t\treturn true;\r\n\t}\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { ILuTranslation } from '@lucca-front/ng/core';\r\n\r\nexport const LU_SIMPLE_SELECT_TRANSLATIONS = new InjectionToken('LuSimpleSelectTranslations', {\r\n\tfactory: () => luSimpleSelectTranslations,\r\n});\r\n\r\nexport interface ILuSimpleSelectLabel {\r\n\tplaceholder: string;\r\n\tclear: string;\r\n\tclearSearch: string;\r\n\temptyResults: string;\r\n}\r\n\r\nexport const luSimpleSelectTranslations: ILuTranslation<ILuSimpleSelectLabel> = {\r\n\ten: {\r\n\t\tplaceholder: 'Select an option',\r\n\t\tclear: 'Clear',\r\n\t\tclearSearch: 'Clear search',\r\n\t\temptyResults: 'No results',\r\n\t},\r\n\tfr: {\r\n\t\tplaceholder: 'Sélectionnez une option',\r\n\t\tclear: 'Effacer',\r\n\t\tclearSearch: 'Vider la recherche',\r\n\t\temptyResults: 'Aucun résultat pour votre recherche',\r\n\t},\r\n\tde: {\r\n\t\tplaceholder: 'Wählen Sie eine Option',\r\n\t\tclear: 'Löschen',\r\n\t\tclearSearch: 'Suche löschen',\r\n\t\temptyResults: 'Keine Ergebnisse für Ihre Suche',\r\n\t},\r\n\tes: {\r\n\t\tplaceholder: 'Seleccione una opción',\r\n\t\tclear: 'Borrar',\r\n\t\tclearSearch: 'Borrar búsqueda',\r\n\t\temptyResults: 'No hay resultados para su búsqueda',\r\n\t},\r\n\tpt: {\r\n\t\tplaceholder: 'Selecione uma opção',\r\n\t\tclear: 'Limpar',\r\n\t\tclearSearch: 'Limpar pesquisa',\r\n\t\temptyResults: 'Nenhum resultado para sua pesquisa',\r\n\t},\r\n};\r\n","import { EventEmitter } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\nexport abstract class LuSelectPanelRef<T> {\r\n\tclosed = new EventEmitter<void>();\r\n\tpreviousPage = new EventEmitter<void>();\r\n\tnextPage = new EventEmitter<void>();\r\n\tvalueChanged = new EventEmitter<T>();\r\n\tclueChanged = new EventEmitter<string>();\r\n\tactiveOptionIdChanged = new EventEmitter<string>();\r\n\toptions$: Observable<T>;\r\n\r\n\tabstract emitValue(value: T): void;\r\n\tclose(): void {\r\n\t\tthis.closed.next();\r\n\t\tthis.closed.complete();\r\n\t\tthis.nextPage.complete();\r\n\t\tthis.previousPage.complete();\r\n\t\tthis.valueChanged.complete();\r\n\t\tthis.clueChanged.emit(null);\r\n\t\tthis.clueChanged.complete();\r\n\t\tthis.activeOptionIdChanged.emit(undefined);\r\n\t\tthis.activeOptionIdChanged.complete();\r\n\t}\r\n}\r\n","import { A11yModule, ActiveDescendantKeyManager } from '@angular/cdk/a11y';\r\nimport { AsyncPipe, NgFor, NgIf } from '@angular/common';\r\nimport { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, HostListener, inject, QueryList, ViewChild, ViewChildren } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { getIntl } from '@lucca-front/ng/core';\r\nimport { asyncScheduler, filter, map, observeOn, take, takeUntil } from 'rxjs';\r\nimport { ɵLuOptionComponent } from '../option/index';\r\nimport { ILuSelectPanelData, SELECT_ID, SELECT_PANEL_DATA } from '../select.model';\r\nimport { LU_SIMPLE_SELECT_TRANSLATIONS } from '../select.translate';\r\nimport { LuSelectPanelRef } from './panel.models';\r\n\r\n@Component({\r\n\tselector: 'lu-select-panel',\r\n\ttemplateUrl: './panel.component.html',\r\n\tstyleUrls: ['./panel.component.scss'],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n\tstandalone: true,\r\n\timports: [A11yModule, AsyncPipe, FormsModule, NgIf, NgFor, ɵLuOptionComponent],\r\n})\r\nexport class LuSelectPanelComponent<T> implements AfterViewInit {\r\n\tprotected panelData = inject<ILuSelectPanelData<T>>(SELECT_PANEL_DATA);\r\n\tpublic panelRef = inject<LuSelectPanelRef<T>>(LuSelectPanelRef);\r\n\tpublic selectId = inject(SELECT_ID);\r\n\tpublic intl = getIntl(LU_SIMPLE_SELECT_TRANSLATIONS);\r\n\r\n\toptions$ = this.panelData.options$;\r\n\tloading$ = this.panelData.loading$;\r\n\toptionComparer = this.panelData.optionComparer;\r\n\tinitialValue: T | undefined = this.panelData.initialValue;\r\n\toptionTpl = this.panelData.optionTpl;\r\n\tsearchable = this.panelData.searchable;\r\n\r\n\t@ViewChild('searchInput')\r\n\tpublic set searchInput(input: ElementRef<HTMLInputElement> | undefined) {\r\n\t\tif (!input) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tsetTimeout(() => input.nativeElement.focus());\r\n\t}\r\n\r\n\t@ViewChildren(ɵLuOptionComponent) optionsQL: QueryList<ɵLuOptionComponent<T>>;\r\n\tprivate keyManager: ActiveDescendantKeyManager<ɵLuOptionComponent<T>>;\r\n\r\n\tsearch: string | null = null;\r\n\r\n\tpublic get selected(): T | undefined {\r\n\t\treturn this.keyManager?.activeItem?.option;\r\n\t}\r\n\r\n\tonScroll(evt: Event): void {\r\n\t\tif (!(evt.target instanceof HTMLElement)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (evt.target.scrollTop === 0) {\r\n\t\t\tthis.panelRef.previousPage.emit();\r\n\t\t}\r\n\r\n\t\tif (evt.target.scrollHeight - evt.target.scrollTop - evt.target.clientHeight < 1) {\r\n\t\t\tthis.panelRef.nextPage.emit();\r\n\t\t}\r\n\t}\r\n\r\n\tngAfterViewInit(): void {\r\n\t\tif (!this.optionsQL) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.keyManager = new ActiveDescendantKeyManager(this.optionsQL).withHomeAndEnd();\r\n\r\n\t\tif (this.initialValue) {\r\n\t\t\tthis.options$\r\n\t\t\t\t?.pipe(\r\n\t\t\t\t\tobserveOn(asyncScheduler),\r\n\t\t\t\t\tmap((options) => options.findIndex((o) => this.optionComparer(o, this.initialValue))),\r\n\t\t\t\t\tfilter((index) => index !== -1),\r\n\t\t\t\t\ttake(1),\r\n\t\t\t\t\ttakeUntil(this.panelRef.closed),\r\n\t\t\t\t)\r\n\t\t\t\t.subscribe((selectedIndex) => this.keyManager.setActiveItem(selectedIndex));\r\n\t\t}\r\n\r\n\t\tthis.keyManager.change\r\n\t\t\t.pipe(\r\n\t\t\t\tmap(() => this.keyManager.activeItem?.id),\r\n\t\t\t\ttakeUntil(this.panelRef.closed),\r\n\t\t\t)\r\n\t\t\t.subscribe((activeDescendant) => this.panelRef.activeOptionIdChanged.emit(activeDescendant));\r\n\t}\r\n\r\n\t@HostListener('keydown', ['$event'])\r\n\tonKeyDown($event: KeyboardEvent): void {\r\n\t\tswitch ($event.key) {\r\n\t\t\tcase 'Escape':\r\n\t\t\tcase 'Tab':\r\n\t\t\t\treturn this.panelRef.close();\r\n\t\t\tcase 'Enter':\r\n\t\t\t\treturn this.panelRef.emitValue(this.selected);\r\n\t\t\tdefault:\r\n\t\t\t\tthis.keyManager?.onKeydown($event);\r\n\t\t}\r\n\t}\r\n\r\n\tupdateClue(clue: string | null): void {\r\n\t\tthis.search = clue;\r\n\t\tthis.panelRef.clueChanged.emit(clue);\r\n\r\n\t\tsetTimeout(() => this.keyManager.setFirstItemActive());\r\n\t}\r\n}\r\n","<div\r\n\tclass=\"lu-picker-panel lu-option-picker-panel\"\r\n\trole=\"dialog\"\r\n\tcdkTrapFocus\r\n\t*ngIf=\"{ options: options$ | async } as ctx\"\r\n\t[cdkTrapFocusAutoCapture]=\"true\"\r\n>\r\n\t<div class=\"lu-picker-content\" [class.is-loading]=\"loading$ | async\" tabindex=\"0\" (scroll)=\"onScroll($event)\">\r\n\t\t<ng-container *ngIf=\"searchable\">\r\n\t\t\t<div class=\"panel-search textfield mod-search\">\r\n\t\t\t\t<input #searchInput class=\"textfield-input\" [ngModel]=\"search\" (ngModelChange)=\"updateClue($event)\" />\r\n\t\t\t</div>\r\n\r\n\t\t\t<div class=\"optionPlaceholder\" *ngIf=\"search && !ctx.options?.length\">\r\n\t\t\t\t<p class=\"optionPlaceholder-content u-marginBottom0\">{{ intl.emptyResults }}</p>\r\n\t\t\t\t<button type=\"button\" class=\"link\" (click)=\"updateClue(null); searchInput.focus()\">{{ intl.clearSearch }}</button>\r\n\t\t\t</div>\r\n\t\t</ng-container>\r\n\r\n\t\t<lu-select-option\r\n\t\t\t*ngFor=\"let option of ctx.options; let index = index\"\r\n\t\t\t[option]=\"option\"\r\n\t\t\t[optionTpl]=\"optionTpl\"\r\n\t\t\t[optionIndex]=\"index\"\r\n\t\t\t[isSelected]=\"option === selected\"\r\n\t\t\t(click)=\"panelRef.emitValue(option)\"\r\n\t\t></lu-select-option>\r\n\r\n\t\t<div *ngIf=\"loading$ | async\" class=\"panel-loading loading lu-picker-loading\"></div>\r\n\t</div>\r\n</div>\r\n","import { Overlay, OverlayConfig, OverlayPositionBuilder, OverlayRef, ScrollStrategyOptions } from '@angular/cdk/overlay';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\nimport { ComponentRef, ElementRef, inject, Injectable, Injector } from '@angular/core';\r\nimport { takeUntil } from 'rxjs';\r\nimport { LuSelectPanelComponent, LuSelectPanelRef } from '../panel';\r\nimport { ILuSelectPanelData, SELECT_PANEL_DATA } from '../select.model';\r\n\r\nclass SelectPanelRef<T> extends LuSelectPanelRef<T> {\r\n\tinstance: LuSelectPanelComponent<T>;\r\n\tprivate panelRef: ComponentRef<LuSelectPanelComponent<T>>;\r\n\tprivate portalRef: ComponentPortal<LuSelectPanelComponent<T>>;\r\n\r\n\tconstructor(private overlayRef: OverlayRef, parentInjector: Injector, panelData: ILuSelectPanelData<T>) {\r\n\t\tsuper();\r\n\r\n\t\tconst injector = Injector.create({\r\n\t\t\tproviders: [\r\n\t\t\t\t{ provide: LuSelectPanelRef, useValue: this },\r\n\t\t\t\t{ provide: SELECT_PANEL_DATA, useValue: panelData },\r\n\t\t\t],\r\n\t\t\tparent: parentInjector,\r\n\t\t});\r\n\r\n\t\tthis.portalRef = new ComponentPortal<LuSelectPanelComponent<T>>(LuSelectPanelComponent, undefined, injector);\r\n\t\tthis.panelRef = overlayRef.attach(this.portalRef);\r\n\t\tthis.instance = this.panelRef.instance;\r\n\r\n\t\toverlayRef\r\n\t\t\t.backdropClick()\r\n\t\t\t.pipe(takeUntil(this.closed))\r\n\t\t\t.subscribe(() => this.close());\r\n\t}\r\n\r\n\temitValue(value: T): void {\r\n\t\tthis.valueChanged.emit(value);\r\n\t\tthis.close();\r\n\t}\r\n\r\n\toverride close(): void {\r\n\t\tsuper.close();\r\n\t\tthis.panelRef.destroy();\r\n\t\tthis.overlayRef.detach();\r\n\t}\r\n}\r\n\r\n@Injectable()\r\nexport class LuSimpleSelectPanelRefFactory {\r\n\tprotected overlay = inject(Overlay);\r\n\tprotected elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\r\n\tprotected positionBuilder = inject(OverlayPositionBuilder);\r\n\tprotected scrollStrategies = inject(ScrollStrategyOptions);\r\n\tprotected parentInjector = inject(Injector);\r\n\r\n\tbuildPanelRef<T>(panelData: ILuSelectPanelData<T>, overlayConfigOverride: OverlayConfig = {}): LuSelectPanelRef<T> {\r\n\t\tconst overlayConfig = this.buildOverlayConfig(overlayConfigOverride);\r\n\t\tconst overlayRef = this.overlay.create(overlayConfig);\r\n\r\n\t\treturn new SelectPanelRef(overlayRef, this.parentInjector, panelData);\r\n\t}\r\n\r\n\tprotected buildOverlayConfig(overlayConfigOverride: OverlayConfig = {}): OverlayConfig {\r\n\t\tconst overlayConfig: OverlayConfig = overlayConfigOverride || {};\r\n\t\toverlayConfig.positionStrategy = this.positionBuilder.flexibleConnectedTo(this.elementRef).withPositions([\r\n\t\t\t{\r\n\t\t\t\toriginX: 'start',\r\n\t\t\t\toriginY: 'bottom',\r\n\t\t\t\toverlayX: 'start',\r\n\t\t\t\toverlayY: 'top',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\toriginX: 'end',\r\n\t\t\t\toriginY: 'bottom',\r\n\t\t\t\toverlayX: 'end',\r\n\t\t\t\toverlayY: 'top',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\toriginX: 'start',\r\n\t\t\t\toriginY: 'top',\r\n\t\t\t\toverlayX: 'start',\r\n\t\t\t\toverlayY: 'bottom',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\toriginX: 'end',\r\n\t\t\t\toriginY: 'top',\r\n\t\t\t\toverlayX: 'end',\r\n\t\t\t\toverlayY: 'bottom',\r\n\t\t\t},\r\n\t\t]);\r\n\t\toverlayConfig.scrollStrategy = this.scrollStrategies.reposition();\r\n\t\toverlayConfig.minWidth = this.elementRef.nativeElement.clientWidth;\r\n\t\toverlayConfig.maxHeight = '100vh';\r\n\t\toverlayConfig.maxWidth = '100vw';\r\n\r\n\t\treturn overlayConfig;\r\n\t}\r\n}\r\n","import { OverlayContainer } from '@angular/cdk/overlay';\r\nimport { Platform } from '@angular/cdk/platform';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { ElementRef, inject, Injectable, Provider } from '@angular/core';\r\nimport { SELECT_ID, SELECT_LABEL, SELECT_LABEL_ID } from '../select.model';\r\n\r\nlet selectId = 0;\r\n\r\nfunction selectIdFactory(): number {\r\n\treturn selectId++;\r\n}\r\n\r\nfunction selectLabelFactory(): HTMLLabelElement | undefined {\r\n\tconst elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\r\n\r\n\tfunction getLabel(node: HTMLElement): HTMLLabelElement | undefined {\r\n\t\tif (node instanceof HTMLLabelElement) {\r\n\t\t\treturn node;\r\n\t\t}\r\n\r\n\t\tif (!node.parentElement) {\r\n\t\t\treturn undefined;\r\n\t\t}\r\n\r\n\t\treturn getLabel(node.parentElement);\r\n\t}\r\n\r\n\treturn getLabel(elementRef.nativeElement);\r\n}\r\n\r\nfunction selectLabelIdFactory(): string {\r\n\treturn inject(SELECT_LABEL)?.id || `lu-select-label-${inject(SELECT_ID)}`;\r\n}\r\n\r\nexport function provideLuSelectLabelsAndIds(): Provider[] {\r\n\treturn [\r\n\t\t{ provide: SELECT_ID, useFactory: selectIdFactory },\r\n\t\t{ provide: SELECT_LABEL, useFactory: selectLabelFactory },\r\n\t\t{ provide: SELECT_LABEL_ID, useFactory: selectLabelIdFactory },\r\n\t];\r\n}\r\n\r\n@Injectable()\r\nclass LuSelectOverlayContainer extends OverlayContainer {\r\n\tprivate selectLabelId = inject(SELECT_LABEL_ID);\r\n\tprivate selectId = inject(SELECT_ID);\r\n\r\n\tconstructor() {\r\n\t\tsuper(inject(DOCUMENT), inject(Platform));\r\n\t}\r\n\r\n\tprotected override _createContainer(): void {\r\n\t\tsuper._createContainer();\r\n\t\tthis._containerElement.setAttribute('aria-labelledby', this.selectLabelId);\r\n\t\tthis._containerElement.setAttribute('role', 'listbox');\r\n\t\tthis._containerElement.id = `lu-select-overlay-container-${this.selectId}`;\r\n\t}\r\n}\r\n\r\nexport function provideLuSelectOverlayContainer(): Provider[] {\r\n\treturn [\r\n\t\t{\r\n\t\t\tprovide: OverlayContainer,\r\n\t\t\tuseClass: LuSelectOverlayContainer,\r\n\t\t},\r\n\t];\r\n}\r\n","/* eslint-disable @angular-eslint/no-output-on-prefix */\r\nimport { OverlayConfig, OverlayContainer, OverlayModule } from '@angular/cdk/overlay';\r\nimport { AsyncPipe, NgIf } from '@angular/common';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, forwardRef, HostBinding, HostListener, inject, Input, OnDestroy, OnInit, Output, TemplateRef, Type } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { getIntl } from '@lucca-front/ng/core';\r\nimport { BehaviorSubject, ReplaySubject } from 'rxjs';\r\nimport { LuSimpleSelectDefaultOptionComponent } from '../option';\r\nimport { LuOptionOutletDirective } from '../option/option-outlet.directive';\r\nimport { LuSelectPanelRef } from '../panel';\r\nimport { LuOptionContext, SELECT_LABEL, SELECT_LABEL_ID } from '../select.model';\r\nimport { LU_SIMPLE_SELECT_TRANSLATIONS } from '../select.translate';\r\nimport { LuSimpleSelectPanelRefFactory } from './panel-ref.factory';\r\nimport { provideLuSelectLabelsAndIds, provideLuSelectOverlayContainer } from './select-input.models';\r\n\r\n@Component({\r\n\tselector: 'lu-simple-select',\r\n\ttemplateUrl: './select-input.component.html',\r\n\tstyleUrls: ['./select-input.component.scss'],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n\tstandalone: true,\r\n\timports: [AsyncPipe, LuOptionOutletDirective, NgIf, OverlayModule],\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: NG_VALUE_ACCESSOR,\r\n\t\t\tuseExisting: forwardRef(() => LuSimpleSelectInputComponent),\r\n\t\t\tmulti: true,\r\n\t\t},\r\n\t\tprovideLuSelectOverlayContainer(),\r\n\t\tprovideLuSelectLabelsAndIds(),\r\n\t\tLuSimpleSelectPanelRefFactory,\r\n\t],\r\n})\r\nexport class LuSimpleSelectInputComponent<T> implements ControlValueAccessor, OnDestroy, OnInit {\r\n\t@HostBinding('tabindex') tabindex = 0;\r\n\r\n\t@Input() placeholder = '';\r\n\r\n\t@Input()\r\n\t@HostBinding('class.is-clearable')\r\n\tclearable = false;\r\n\r\n\tget searchable(): boolean {\r\n\t\treturn this.clueChange.observed;\r\n\t}\r\n\r\n\t@Input()\r\n\t@HostBinding('class.is-disabled')\r\n\tdisabled = false;\r\n\r\n\t@HostBinding('class.is-filled')\r\n\tget isFilled(): boolean {\r\n\t\treturn this.value !== null && this.value !== undefined;\r\n\t}\r\n\r\n\t@HostBinding('class.is-focused')\r\n\t@HostBinding('attr.aria-expanded')\r\n\tpublic get isPanelOpen(): boolean {\r\n\t\treturn this.isPanelOpen$.value;\r\n\t}\r\n\tpublic isPanelOpen$ = new BehaviorSubject(false);\r\n\r\n\t@HostBinding('attr.role')\r\n\tpublic role = 'combobox';\r\n\r\n\t@HostBinding('attr.aria-activedescendant')\r\n\tpublic activeDescendant: string | undefined;\r\n\r\n\t@HostBinding('attr.aria-controls')\r\n\tget ariaControls(): string {\r\n\t\treturn this.overlayContainerRef.id;\r\n\t}\r\n\r\n\t@Input()\r\n\toverlayConfig?: OverlayConfig = {\r\n\t\thasBackdrop: true,\r\n\t\tbackdropClass: 'cdk-overlay-transparent-backdrop',\r\n\t};\r\n\r\n\t@Input() set loading(value: boolean) {\r\n\t\tthis.loading$.next(value);\r\n\t}\r\n\r\n\t@Input() set options(options: T[]) {\r\n\t\tthis.options$.next(options);\r\n\t}\r\n\r\n\t@Input() optionComparer: (option1: T, option2: T) => boolean = (option1, option2) => JSON.stringify(option1) === JSON.stringify(option2);\r\n\t@Input() optionTpl?: TemplateRef<LuOptionContext<T>> | Type<unknown> = LuSimpleSelectDefaultOptionComponent;\r\n\t@Input() valueTpl?: TemplateRef<LuOptionContext<T>> | Type<unknown>;\r\n\r\n\t@Output() clueChange = new EventEmitter<string>();\r\n\t@Output() nextPage = new EventEmitter<void>();\r\n\t@Output() previousPage = new EventEmitter<void>();\r\n\r\n\tpublic get value(): T {\r\n\t\treturn this._value;\r\n\t}\r\n\r\n\tprotected set value(value: T) {\r\n\t\tthis._value = value;\r\n\t\tthis.changeDetectorRef.markForCheck();\r\n\t}\r\n\r\n\tprotected _value?: T;\r\n\r\n\toptions$ = new ReplaySubject<T[]>(1);\r\n\tloading$ = new ReplaySubject<boolean>(1);\r\n\tclue: string | null = null;\r\n\tintl = getIntl(LU_SIMPLE_SELECT_TRANSLATIONS);\r\n\r\n\tprotected onChange?: (value: T | null) => void;\r\n\tprotected onTouched?: () => void;\r\n\r\n\tprotected panelRef?: LuSelectPanelRef<T>;\r\n\r\n\t@HostListener('keydown.space', ['$event'])\r\n\t@HostListener('keydown.enter', ['$event'])\r\n\t@HostListener('keydown.arrowDown', ['$event'])\r\n\t@HostListener('click', ['$event'])\r\n\tonKeydown($event: KeyboardEvent) {\r\n\t\tif (!this.isPanelOpen) {\r\n\t\t\tthis.openPanel();\r\n\t\t\t$event.stopPropagation();\r\n\t\t\t$event.preventDefault();\r\n\t\t}\r\n\t}\r\n\r\n\tprotected changeDetectorRef = inject(ChangeDetectorRef);\r\n\tprotected overlayContainerRef: HTMLElement = inject(OverlayContainer).getContainerElement();\r\n\tprotected panelRefFactory = inject(LuSimpleSelectPanelRefFactory);\r\n\r\n\tprotected label: HTMLElement | undefined = inject(SELECT_LABEL);\r\n\tprotected labelId: string = inject(SELECT_LABEL_ID);\r\n\r\n\tregisterOnChange(onChange: (value: T) => void): void {\r\n\t\tthis.onChange = onChange;\r\n\t}\r\n\r\n\tregisterOnTouched(onTouched: () => void): void {\r\n\t\tthis.onTouched = onTouched;\r\n\t}\r\n\r\n\tsetDisabledState(isDisabled: boolean): void {\r\n\t\tthis.disabled = isDisabled;\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.panelRef?.close();\r\n\t}\r\n\r\n\tngOnInit(): void {\r\n\t\tif (this.label) {\r\n\t\t\tthis.label.id = this.labelId;\r\n\t\t}\r\n\t}\r\n\r\n\tclearValue(event: MouseEvent): void {\r\n\t\tevent.stopPropagation();\r\n\t\tthis.updateValue(null);\r\n\t}\r\n\r\n\topenPanel(): void {\r\n\t\tif (this.isPanelOpen || this.disabled) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.isPanelOpen$.next(true);\r\n\t\tthis.panelRef = this.panelRefFactory.buildPanelRef(\r\n\t\t\t{\r\n\t\t\t\tinitialValue: this.value,\r\n\t\t\t\toptionComparer: this.optionComparer,\r\n\t\t\t\toptions$: this.options$,\r\n\t\t\t\tloading$: this.loading$,\r\n\t\t\t\tsearchable: this.searchable,\r\n\t\t\t\toptionTpl: this.optionTpl,\r\n\t\t\t},\r\n\t\t\tthis.overlayConfig,\r\n\t\t);\r\n\r\n\t\tthis.panelRef.valueChanged.subscribe((value) => this.updateValue(value));\r\n\t\tthis.panelRef.nextPage.subscribe(() => this.nextPage.emit());\r\n\t\tthis.panelRef.previousPage.subscribe(() => this.previousPage.emit());\r\n\t\tthis.panelRef.clueChanged.subscribe((clue) => {\r\n\t\t\tthis.clueChange.emit(clue);\r\n\t\t\tthis.clue = clue;\r\n\t\t});\r\n\t\tthis.panelRef.activeOptionIdChanged.subscribe((optionId) => {\r\n\t\t\tthis.activeDescendant = optionId;\r\n\t\t\tthis.changeDetectorRef.markForCheck();\r\n\t\t});\r\n\t\tthis.panelRef.closed.subscribe(() => this.closePanel());\r\n\t}\r\n\r\n\tpublic closePanel(): void {\r\n\t\tif (!this.isPanelOpen) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.isPanelOpen$.next(false);\r\n\t\tthis.panelRef.close();\r\n\t\tthis.panelRef = undefined;\r\n\t}\r\n\r\n\tpublic writeValue(value: T): void {\r\n\t\tthis.value = value;\r\n\t}\r\n\r\n\tpublic updateValue(value: T): void {\r\n\t\tthis.value = value;\r\n\t\tthis.onChange?.(value);\r\n\t\tthis.onTouched?.();\r\n\t}\r\n}\r\n","<div class=\"lu-select-placeholder\">{{ placeholder }}</div>\r\n<div class=\"lu-select-value\">\r\n\t<div class=\"lu-select-display-wrapper\">\r\n\t\t<ng-container *luOptionOutlet=\"valueTpl || optionTpl; value: value\"></ng-container>\r\n\t</div>\r\n</div>\r\n<div class=\"lu-select-suffix\">\r\n\t<a *ngIf=\"clearable && isFilled\" role=\"button\" class=\"actionIcon\" (click)=\"clearValue($event)\">\r\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-thinCross\"></span>\r\n\t\t<span class=\"u-mask\">{{ intl.clear }}</span>\r\n\t</a>\r\n</div>\r\n","/*\r\n * Public API Surface of safe-content\r\n */\r\n\r\nexport * from './lib/index';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ɵLuOptionComponent"],"mappings":"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"}
1
+ {"version":3,"file":"lucca-front-ng-simple-select.mjs","sources":["../../../packages/ng/simple-select/src/lib/option/option.token.ts","../../../packages/ng/simple-select/src/lib/option/default-option.component.ts","../../../packages/ng/simple-select/src/lib/option/disabled.directive.ts","../../../packages/ng/simple-select/src/lib/option/displayer.directive.ts","../../../packages/ng/simple-select/src/lib/select.model.ts","../../../packages/ng/simple-select/src/lib/option/option-outlet.directive.ts","../../../packages/ng/simple-select/src/lib/option/option.component.ts","../../../packages/ng/simple-select/src/lib/option/option.component.html","../../../packages/ng/simple-select/src/lib/option/option.directive.ts","../../../packages/ng/simple-select/src/lib/select.translate.ts","../../../packages/ng/simple-select/src/lib/panel/panel.models.ts","../../../packages/ng/simple-select/src/lib/panel/panel.component.ts","../../../packages/ng/simple-select/src/lib/panel/panel.component.html","../../../packages/ng/simple-select/src/lib/input/panel-ref.factory.ts","../../../packages/ng/simple-select/src/lib/input/select-input.models.ts","../../../packages/ng/simple-select/src/lib/input/select-input.component.ts","../../../packages/ng/simple-select/src/lib/input/select-input.component.html","../../../packages/ng/simple-select/src/public-api.ts","../../../packages/ng/simple-select/src/lucca-front-ng-simple-select.ts"],"sourcesContent":["import { InjectionToken, Provider } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\nexport interface ILuOptionContext<T> {\r\n\tisDisabled$: BehaviorSubject<boolean>;\r\n\toption$: BehaviorSubject<T | undefined>;\r\n\tdestroy(): void;\r\n}\r\n\r\nexport const LU_OPTION_CONTEXT = new InjectionToken<ILuOptionContext<unknown>>('LuOptionContext');\r\n\r\nfunction optionContextFactory<T>(): ILuOptionContext<T> {\r\n\tconst isDisabled$ = new BehaviorSubject(false);\r\n\tconst option$ = new BehaviorSubject<T | undefined>(undefined);\r\n\treturn {\r\n\t\tisDisabled$,\r\n\t\toption$,\r\n\t\tdestroy(): void {\r\n\t\t\tisDisabled$.complete();\r\n\t\t\toption$.complete();\r\n\t\t},\r\n\t};\r\n}\r\n\r\nexport function provideOptionContext(): Provider {\r\n\treturn {\r\n\t\tprovide: LU_OPTION_CONTEXT,\r\n\t\tuseFactory: optionContextFactory,\r\n\t};\r\n}\r\n","import { AsyncPipe, NgIf } from '@angular/common';\r\nimport { Component, inject } from '@angular/core';\r\nimport { ILuOptionContext, LU_OPTION_CONTEXT } from './option.token';\r\n\r\n@Component({\r\n\tselector: 'lu-simple-select-default-option',\r\n\tstandalone: true,\r\n\timports: [AsyncPipe, NgIf],\r\n\ttemplate: `<ng-container *ngIf=\"context.option$ | async as option\">{{ option?.name ?? option }}</ng-container>`,\r\n})\r\nexport class LuSimpleSelectDefaultOptionComponent {\r\n\tpublic context = inject<ILuOptionContext<{ name?: string }>>(LU_OPTION_CONTEXT);\r\n}\r\n","import { Directive, inject, Input } from '@angular/core';\r\nimport { LU_OPTION_CONTEXT } from './option.token';\r\n\r\n@Directive({\r\n\tselector: '[luDisabledOption]',\r\n\tstandalone: true,\r\n})\r\nexport class LuDisabledOptionDirective {\r\n\tprivate context = inject(LU_OPTION_CONTEXT);\r\n\r\n\t@Input('luDisabledOption') public set isDisabled(disabled: boolean | null) {\r\n\t\tif (disabled !== null) {\r\n\t\t\tthis.context.isDisabled$.next(disabled);\r\n\t\t}\r\n\t}\r\n}\r\n","import { Directive, Input, TemplateRef } from '@angular/core';\r\nimport { LuSimpleSelectInputComponent } from '../input';\r\nimport { LuOptionContext } from '../select.model';\r\n\r\n@Directive({\r\n\tselector: '[luDisplayer]',\r\n\tstandalone: true,\r\n})\r\nexport class LuDisplayerDirective<T> {\r\n\t@Input('luDisplayerSelect') set select(select: LuSimpleSelectInputComponent<T>) {\r\n\t\tselect.valueTpl = this.templateRef;\r\n\t}\r\n\r\n\tpublic constructor(private templateRef: TemplateRef<LuOptionContext<T>>) {}\r\n\r\n\tpublic static ngTemplateContextGuard<T>(_dir: LuDisplayerDirective<T>, ctx: unknown): ctx is LuOptionContext<T> {\r\n\t\treturn true;\r\n\t}\r\n}\r\n","import { InjectionToken, TemplateRef, Type } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\nexport interface ILuSelectPanelData<T> {\r\n\toptions$: Observable<T[]>;\r\n\tloading$: Observable<boolean>;\r\n\toptionComparer: (option1: T, option2: T) => boolean;\r\n\tinitialValue: T | undefined;\r\n\toptionTpl: TemplateRef<LuOptionContext<T>> | Type<unknown>;\r\n\tsearchable: boolean;\r\n}\r\n\r\nexport interface LuOptionContext<T> {\r\n\t$implicit: T;\r\n}\r\n\r\nexport const SELECT_ID = new InjectionToken<number>('LuSelectPanelData');\r\nexport const SELECT_PANEL_DATA = new InjectionToken<unknown>('LuSelectId');\r\nexport const SELECT_LABEL = new InjectionToken<HTMLLabelElement | undefined>('LuSelectLabel');\r\nexport const SELECT_LABEL_ID = new InjectionToken<string>('LuSelectLabelId');\r\n","import { ComponentRef, Directive, EmbeddedViewRef, inject, Injector, Input, OnChanges, OnDestroy, SimpleChanges, TemplateRef, Type, ViewContainerRef } from '@angular/core';\r\nimport { LuOptionContext } from '../select.model';\r\nimport { LU_OPTION_CONTEXT, provideOptionContext } from './option.token';\r\n\r\n@Directive({\r\n\tselector: '[luOptionOutlet]',\r\n\tstandalone: true,\r\n\tproviders: [provideOptionContext()],\r\n})\r\nexport class LuOptionOutletDirective<T> implements OnChanges, OnDestroy {\r\n\t@Input() luOptionOutlet?: Type<unknown> | TemplateRef<LuOptionContext<T>>;\r\n\t@Input() luOptionOutletValue: T | undefined;\r\n\r\n\tprivate viewContainerRef = inject(ViewContainerRef);\r\n\tprivate injector = inject(Injector);\r\n\tprivate embeddedViewRef?: EmbeddedViewRef<LuOptionContext<T>>;\r\n\tprivate componentRef?: ComponentRef<unknown>;\r\n\tprivate optionContext = inject(LU_OPTION_CONTEXT);\r\n\r\n\tngOnChanges(changes: SimpleChanges): void {\r\n\t\tif (changes['luOptionOutlet'] || !this.luOptionOutletValue) {\r\n\t\t\tthis.clearContainer();\r\n\t\t}\r\n\r\n\t\tconst hasRef = this.embeddedViewRef || this.componentRef;\r\n\r\n\t\tif (changes['luOptionOutlet'] || (changes['luOptionOutletValue'] && !hasRef)) {\r\n\t\t\tthis.createComponent();\r\n\t\t} else if (changes['luOptionOutletValue']) {\r\n\t\t\tthis.updateRefValue();\r\n\t\t}\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.optionContext.destroy();\r\n\t}\r\n\r\n\tprivate clearContainer(): void {\r\n\t\tthis.viewContainerRef.clear();\r\n\t\tthis.embeddedViewRef?.destroy();\r\n\t\tthis.componentRef?.destroy();\r\n\t\tthis.embeddedViewRef = undefined;\r\n\t\tthis.componentRef = undefined;\r\n\t}\r\n\r\n\tprivate createComponent(): void {\r\n\t\tif (!this.luOptionOutlet || !this.luOptionOutletValue) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (this.luOptionOutlet instanceof TemplateRef) {\r\n\t\t\tthis.embeddedViewRef = this.viewContainerRef.createEmbeddedView(this.luOptionOutlet, { $implicit: this.luOptionOutletValue }, { injector: this.injector });\r\n\t\t} else {\r\n\t\t\tthis.optionContext.option$.next(this.luOptionOutletValue);\r\n\t\t\tthis.componentRef = this.viewContainerRef.createComponent(this.luOptionOutlet, { injector: this.injector });\r\n\t\t}\r\n\t}\r\n\r\n\tprivate updateRefValue(): void {\r\n\t\tif (!this.luOptionOutletValue) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (this.embeddedViewRef) {\r\n\t\t\tthis.embeddedViewRef.context = { $implicit: this.luOptionOutletValue };\r\n\t\t} else if (this.componentRef) {\r\n\t\t\tthis.optionContext.option$.next(this.luOptionOutletValue);\r\n\t\t}\r\n\t}\r\n}\r\n","import { Highlightable } from '@angular/cdk/a11y';\r\nimport { AsyncPipe } from '@angular/common';\r\nimport { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostBinding, inject, Input, OnDestroy, TemplateRef, Type, ViewChild } from '@angular/core';\r\nimport { asyncScheduler, BehaviorSubject, observeOn, Subscription } from 'rxjs';\r\nimport { LuOptionContext, SELECT_ID } from '../select.model';\r\nimport { LuOptionOutletDirective } from './option-outlet.directive';\r\nimport { ILuOptionContext, LU_OPTION_CONTEXT } from './option.token';\r\n\r\n@Component({\r\n\tselector: 'lu-select-option',\r\n\ttemplateUrl: './option.component.html',\r\n\tstyleUrls: ['./option.component.scss'],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n\tstandalone: true,\r\n\timports: [AsyncPipe, LuOptionOutletDirective],\r\n})\r\nexport class LuOptionComponent<T> implements Highlightable, AfterViewInit, OnDestroy {\r\n\t@HostBinding('class.optionItem')\r\n\tpublic hasOptionItemClass = true;\r\n\r\n\t@Input()\r\n\tpublic optionTpl: TemplateRef<LuOptionContext<T>> | Type<unknown> | undefined;\r\n\r\n\t@Input()\r\n\t@HostBinding('attr.aria-selected')\r\n\tisSelected = false;\r\n\r\n\t@Input() option?: T;\r\n\r\n\t@Input()\r\n\tpublic optionIndex = 0;\r\n\r\n\tisHighlighted$ = new BehaviorSubject(false);\r\n\r\n\t/**\r\n\t * Whether option is disabled. Used by ListKeyManager.\r\n\t */\r\n\tdisabled = false;\r\n\r\n\t@ViewChild(LuOptionOutletDirective, { read: LU_OPTION_CONTEXT, static: true })\r\n\tprivate optionContext?: ILuOptionContext<T>;\r\n\r\n\tprivate cdr = inject(ChangeDetectorRef);\r\n\tprivate subscription?: Subscription;\r\n\r\n\t@HostBinding('attr.role')\r\n\tpublic role = 'option';\r\n\r\n\t@HostBinding('attr.id')\r\n\tpublic get id(): string {\r\n\t\treturn `lu-select-${this.selectId}-option-${this.optionIndex}`;\r\n\t}\r\n\r\n\tprotected elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\r\n\tprotected selectId = inject(SELECT_ID);\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.subscription?.unsubscribe();\r\n\t}\r\n\r\n\tngAfterViewInit(): void {\r\n\t\tthis.subscription = this.optionContext.isDisabled$.pipe(observeOn(asyncScheduler)).subscribe((isDisabled) => {\r\n\t\t\tthis.disabled = isDisabled;\r\n\t\t\tthis.cdr.markForCheck();\r\n\t\t});\r\n\t}\r\n\r\n\tsetActiveStyles(): void {\r\n\t\tthis.isHighlighted$.next(true);\r\n\t\tthis.elementRef.nativeElement.scrollIntoView({ block: 'center' });\r\n\t}\r\n\r\n\tsetInactiveStyles(): void {\r\n\t\tthis.isHighlighted$.next(false);\r\n\t}\r\n\r\n\tselectOption($event: Event): void {\r\n\t\tif (this.disabled) {\r\n\t\t\t$event.stopPropagation();\r\n\t\t}\r\n\t}\r\n}\r\n","<div\r\n\tclass=\"optionItem-value\"\r\n\t[class.is-selected]=\"isSelected\"\r\n\t[class.is-highlighted]=\"isHighlighted$ | async\"\r\n\t[class.is-disabled]=\"disabled\"\r\n\t(click)=\"selectOption($event)\"\r\n>\r\n\t<ng-container *luOptionOutlet=\"optionTpl; value: option\"></ng-container>\r\n</div>\r\n","import { Directive, Input, TemplateRef } from '@angular/core';\r\nimport { LuSimpleSelectInputComponent } from '../input';\r\nimport { LuOptionContext } from '../select.model';\r\n\r\n@Directive({\r\n\tselector: '[luOption]',\r\n\tstandalone: true,\r\n})\r\nexport class LuOptionDirective<T> {\r\n\t@Input('luOptionSelect') set select(select: LuSimpleSelectInputComponent<T>) {\r\n\t\tselect.optionTpl = this.templateRef;\r\n\t}\r\n\r\n\tpublic constructor(private templateRef: TemplateRef<LuOptionContext<T>>) {}\r\n\r\n\tpublic static ngTemplateContextGuard<T>(_dir: LuOptionDirective<T>, ctx: unknown): ctx is LuOptionContext<T> {\r\n\t\treturn true;\r\n\t}\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { ILuTranslation } from '@lucca-front/ng/core';\r\n\r\nexport const LU_SIMPLE_SELECT_TRANSLATIONS = new InjectionToken('LuSimpleSelectTranslations', {\r\n\tfactory: () => luSimpleSelectTranslations,\r\n});\r\n\r\nexport interface ILuSimpleSelectLabel {\r\n\tplaceholder: string;\r\n\tclear: string;\r\n\tclearSearch: string;\r\n\temptyResults: string;\r\n}\r\n\r\nexport const luSimpleSelectTranslations: ILuTranslation<ILuSimpleSelectLabel> = {\r\n\ten: {\r\n\t\tplaceholder: 'Select an option',\r\n\t\tclear: 'Clear',\r\n\t\tclearSearch: 'Clear search',\r\n\t\temptyResults: 'No results',\r\n\t},\r\n\tfr: {\r\n\t\tplaceholder: 'Sélectionnez une option',\r\n\t\tclear: 'Effacer',\r\n\t\tclearSearch: 'Vider la recherche',\r\n\t\temptyResults: 'Aucun résultat pour votre recherche',\r\n\t},\r\n\tde: {\r\n\t\tplaceholder: 'Wählen Sie eine Option',\r\n\t\tclear: 'Löschen',\r\n\t\tclearSearch: 'Suche löschen',\r\n\t\temptyResults: 'Keine Ergebnisse für Ihre Suche',\r\n\t},\r\n\tes: {\r\n\t\tplaceholder: 'Seleccione una opción',\r\n\t\tclear: 'Borrar',\r\n\t\tclearSearch: 'Borrar búsqueda',\r\n\t\temptyResults: 'No hay resultados para su búsqueda',\r\n\t},\r\n\tpt: {\r\n\t\tplaceholder: 'Selecione uma opção',\r\n\t\tclear: 'Limpar',\r\n\t\tclearSearch: 'Limpar pesquisa',\r\n\t\temptyResults: 'Nenhum resultado para sua pesquisa',\r\n\t},\r\n};\r\n","import { EventEmitter } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\nexport abstract class LuSelectPanelRef<T> {\r\n\tclosed = new EventEmitter<void>();\r\n\tpreviousPage = new EventEmitter<void>();\r\n\tnextPage = new EventEmitter<void>();\r\n\tvalueChanged = new EventEmitter<T>();\r\n\tclueChanged = new EventEmitter<string>();\r\n\tactiveOptionIdChanged = new EventEmitter<string>();\r\n\toptions$: Observable<T>;\r\n\r\n\tabstract emitValue(value: T): void;\r\n\tclose(): void {\r\n\t\tthis.closed.next();\r\n\t\tthis.closed.complete();\r\n\t\tthis.nextPage.complete();\r\n\t\tthis.previousPage.complete();\r\n\t\tthis.valueChanged.complete();\r\n\t\tthis.clueChanged.emit(null);\r\n\t\tthis.clueChanged.complete();\r\n\t\tthis.activeOptionIdChanged.emit(undefined);\r\n\t\tthis.activeOptionIdChanged.complete();\r\n\t}\r\n}\r\n","import { A11yModule, ActiveDescendantKeyManager } from '@angular/cdk/a11y';\r\nimport { AsyncPipe, NgFor, NgIf } from '@angular/common';\r\nimport { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, HostListener, inject, QueryList, ViewChild, ViewChildren } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { getIntl } from '@lucca-front/ng/core';\r\nimport { asyncScheduler, filter, map, observeOn, take, takeUntil } from 'rxjs';\r\nimport { ɵLuOptionComponent } from '../option/index';\r\nimport { ILuSelectPanelData, SELECT_ID, SELECT_PANEL_DATA } from '../select.model';\r\nimport { LU_SIMPLE_SELECT_TRANSLATIONS } from '../select.translate';\r\nimport { LuSelectPanelRef } from './panel.models';\r\n\r\n@Component({\r\n\tselector: 'lu-select-panel',\r\n\ttemplateUrl: './panel.component.html',\r\n\tstyleUrls: ['./panel.component.scss'],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n\tstandalone: true,\r\n\timports: [A11yModule, AsyncPipe, FormsModule, NgIf, NgFor, ɵLuOptionComponent],\r\n})\r\nexport class LuSelectPanelComponent<T> implements AfterViewInit {\r\n\tprotected panelData = inject<ILuSelectPanelData<T>>(SELECT_PANEL_DATA);\r\n\tpublic panelRef = inject<LuSelectPanelRef<T>>(LuSelectPanelRef);\r\n\tpublic selectId = inject(SELECT_ID);\r\n\tpublic intl = getIntl(LU_SIMPLE_SELECT_TRANSLATIONS);\r\n\r\n\toptions$ = this.panelData.options$;\r\n\tloading$ = this.panelData.loading$;\r\n\toptionComparer = this.panelData.optionComparer;\r\n\tinitialValue: T | undefined = this.panelData.initialValue;\r\n\toptionTpl = this.panelData.optionTpl;\r\n\tsearchable = this.panelData.searchable;\r\n\r\n\t@ViewChild('searchInput')\r\n\tpublic set searchInput(input: ElementRef<HTMLInputElement> | undefined) {\r\n\t\tif (!input) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tsetTimeout(() => input.nativeElement.focus());\r\n\t}\r\n\r\n\t@ViewChildren(ɵLuOptionComponent) optionsQL: QueryList<ɵLuOptionComponent<T>>;\r\n\tprivate keyManager: ActiveDescendantKeyManager<ɵLuOptionComponent<T>>;\r\n\r\n\tsearch: string | null = null;\r\n\r\n\tpublic get selected(): T | undefined {\r\n\t\treturn this.keyManager?.activeItem?.option;\r\n\t}\r\n\r\n\tonScroll(evt: Event): void {\r\n\t\tif (!(evt.target instanceof HTMLElement)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (evt.target.scrollTop === 0) {\r\n\t\t\tthis.panelRef.previousPage.emit();\r\n\t\t}\r\n\r\n\t\tif (evt.target.scrollHeight - evt.target.scrollTop - evt.target.clientHeight < 1) {\r\n\t\t\tthis.panelRef.nextPage.emit();\r\n\t\t}\r\n\t}\r\n\r\n\tngAfterViewInit(): void {\r\n\t\tif (!this.optionsQL) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.keyManager = new ActiveDescendantKeyManager(this.optionsQL).withHomeAndEnd();\r\n\r\n\t\tif (this.initialValue) {\r\n\t\t\tthis.options$\r\n\t\t\t\t?.pipe(\r\n\t\t\t\t\tobserveOn(asyncScheduler),\r\n\t\t\t\t\tmap((options) => options.findIndex((o) => this.optionComparer(o, this.initialValue))),\r\n\t\t\t\t\tfilter((index) => index !== -1),\r\n\t\t\t\t\ttake(1),\r\n\t\t\t\t\ttakeUntil(this.panelRef.closed),\r\n\t\t\t\t)\r\n\t\t\t\t.subscribe((selectedIndex) => this.keyManager.setActiveItem(selectedIndex));\r\n\t\t}\r\n\r\n\t\tthis.keyManager.change\r\n\t\t\t.pipe(\r\n\t\t\t\tmap(() => this.keyManager.activeItem?.id),\r\n\t\t\t\ttakeUntil(this.panelRef.closed),\r\n\t\t\t)\r\n\t\t\t.subscribe((activeDescendant) => this.panelRef.activeOptionIdChanged.emit(activeDescendant));\r\n\t}\r\n\r\n\t@HostListener('keydown', ['$event'])\r\n\tonKeyDown($event: KeyboardEvent): void {\r\n\t\tswitch ($event.key) {\r\n\t\t\tcase 'Escape':\r\n\t\t\tcase 'Tab':\r\n\t\t\t\treturn this.panelRef.close();\r\n\t\t\tcase 'Enter':\r\n\t\t\t\treturn this.panelRef.emitValue(this.selected);\r\n\t\t\tdefault:\r\n\t\t\t\tthis.keyManager?.onKeydown($event);\r\n\t\t}\r\n\t}\r\n\r\n\tupdateClue(clue: string | null): void {\r\n\t\tthis.search = clue;\r\n\t\tthis.panelRef.clueChanged.emit(clue);\r\n\r\n\t\tsetTimeout(() => this.keyManager.setFirstItemActive());\r\n\t}\r\n}\r\n","<div\r\n\tclass=\"lu-picker-panel lu-option-picker-panel\"\r\n\trole=\"dialog\"\r\n\tcdkTrapFocus\r\n\t*ngIf=\"{ options: options$ | async } as ctx\"\r\n\t[cdkTrapFocusAutoCapture]=\"true\"\r\n>\r\n\t<div class=\"lu-picker-content\" [class.is-loading]=\"loading$ | async\" tabindex=\"0\" (scroll)=\"onScroll($event)\">\r\n\t\t<ng-container *ngIf=\"searchable\">\r\n\t\t\t<div class=\"panel-search textfield mod-search\">\r\n\t\t\t\t<input #searchInput class=\"textfield-input\" [ngModel]=\"search\" (ngModelChange)=\"updateClue($event)\" />\r\n\t\t\t</div>\r\n\r\n\t\t\t<div class=\"optionPlaceholder\" *ngIf=\"search && !ctx.options?.length\">\r\n\t\t\t\t<p class=\"optionPlaceholder-content u-marginBottom0\">{{ intl.emptyResults }}</p>\r\n\t\t\t\t<button type=\"button\" class=\"link\" (click)=\"updateClue(null); searchInput.focus()\">{{ intl.clearSearch }}</button>\r\n\t\t\t</div>\r\n\t\t</ng-container>\r\n\r\n\t\t<lu-select-option\r\n\t\t\t*ngFor=\"let option of ctx.options; let index = index\"\r\n\t\t\t[option]=\"option\"\r\n\t\t\t[optionTpl]=\"optionTpl\"\r\n\t\t\t[optionIndex]=\"index\"\r\n\t\t\t[isSelected]=\"option === selected\"\r\n\t\t\t(click)=\"panelRef.emitValue(option)\"\r\n\t\t></lu-select-option>\r\n\r\n\t\t<div *ngIf=\"loading$ | async\" class=\"panel-loading loading lu-picker-loading\"></div>\r\n\t</div>\r\n</div>\r\n","import { Overlay, OverlayConfig, OverlayPositionBuilder, OverlayRef, ScrollStrategyOptions } from '@angular/cdk/overlay';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\nimport { ComponentRef, ElementRef, inject, Injectable, Injector } from '@angular/core';\r\nimport { takeUntil } from 'rxjs';\r\nimport { LuSelectPanelComponent, LuSelectPanelRef } from '../panel';\r\nimport { ILuSelectPanelData, SELECT_PANEL_DATA } from '../select.model';\r\n\r\nclass SelectPanelRef<T> extends LuSelectPanelRef<T> {\r\n\tinstance: LuSelectPanelComponent<T>;\r\n\tprivate panelRef: ComponentRef<LuSelectPanelComponent<T>>;\r\n\tprivate portalRef: ComponentPortal<LuSelectPanelComponent<T>>;\r\n\r\n\tconstructor(private overlayRef: OverlayRef, parentInjector: Injector, panelData: ILuSelectPanelData<T>) {\r\n\t\tsuper();\r\n\r\n\t\tconst injector = Injector.create({\r\n\t\t\tproviders: [\r\n\t\t\t\t{ provide: LuSelectPanelRef, useValue: this },\r\n\t\t\t\t{ provide: SELECT_PANEL_DATA, useValue: panelData },\r\n\t\t\t],\r\n\t\t\tparent: parentInjector,\r\n\t\t});\r\n\r\n\t\tthis.portalRef = new ComponentPortal<LuSelectPanelComponent<T>>(LuSelectPanelComponent, undefined, injector);\r\n\t\tthis.panelRef = overlayRef.attach(this.portalRef);\r\n\t\tthis.instance = this.panelRef.instance;\r\n\r\n\t\toverlayRef\r\n\t\t\t.backdropClick()\r\n\t\t\t.pipe(takeUntil(this.closed))\r\n\t\t\t.subscribe(() => this.close());\r\n\t}\r\n\r\n\temitValue(value: T): void {\r\n\t\tthis.valueChanged.emit(value);\r\n\t\tthis.close();\r\n\t}\r\n\r\n\toverride close(): void {\r\n\t\tsuper.close();\r\n\t\tthis.panelRef.destroy();\r\n\t\tthis.overlayRef.detach();\r\n\t}\r\n}\r\n\r\n@Injectable()\r\nexport class LuSimpleSelectPanelRefFactory {\r\n\tprotected overlay = inject(Overlay);\r\n\tprotected elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\r\n\tprotected positionBuilder = inject(OverlayPositionBuilder);\r\n\tprotected scrollStrategies = inject(ScrollStrategyOptions);\r\n\tprotected parentInjector = inject(Injector);\r\n\r\n\tbuildPanelRef<T>(panelData: ILuSelectPanelData<T>, overlayConfigOverride: OverlayConfig = {}): LuSelectPanelRef<T> {\r\n\t\tconst overlayConfig = this.buildOverlayConfig(overlayConfigOverride);\r\n\t\tconst overlayRef = this.overlay.create(overlayConfig);\r\n\r\n\t\treturn new SelectPanelRef(overlayRef, this.parentInjector, panelData);\r\n\t}\r\n\r\n\tprotected buildOverlayConfig(overlayConfigOverride: OverlayConfig = {}): OverlayConfig {\r\n\t\tconst overlayConfig: OverlayConfig = overlayConfigOverride || {};\r\n\t\toverlayConfig.positionStrategy = this.positionBuilder.flexibleConnectedTo(this.elementRef).withPositions([\r\n\t\t\t{\r\n\t\t\t\toriginX: 'start',\r\n\t\t\t\toriginY: 'bottom',\r\n\t\t\t\toverlayX: 'start',\r\n\t\t\t\toverlayY: 'top',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\toriginX: 'end',\r\n\t\t\t\toriginY: 'bottom',\r\n\t\t\t\toverlayX: 'end',\r\n\t\t\t\toverlayY: 'top',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\toriginX: 'start',\r\n\t\t\t\toriginY: 'top',\r\n\t\t\t\toverlayX: 'start',\r\n\t\t\t\toverlayY: 'bottom',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\toriginX: 'end',\r\n\t\t\t\toriginY: 'top',\r\n\t\t\t\toverlayX: 'end',\r\n\t\t\t\toverlayY: 'bottom',\r\n\t\t\t},\r\n\t\t]);\r\n\t\toverlayConfig.scrollStrategy = this.scrollStrategies.reposition();\r\n\t\toverlayConfig.minWidth = this.elementRef.nativeElement.clientWidth;\r\n\t\toverlayConfig.maxHeight = '100vh';\r\n\t\toverlayConfig.maxWidth = '100vw';\r\n\r\n\t\treturn overlayConfig;\r\n\t}\r\n}\r\n","import { OverlayContainer } from '@angular/cdk/overlay';\r\nimport { Platform } from '@angular/cdk/platform';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { ElementRef, inject, Injectable, Provider } from '@angular/core';\r\nimport { SELECT_ID, SELECT_LABEL, SELECT_LABEL_ID } from '../select.model';\r\n\r\nlet selectId = 0;\r\n\r\nfunction selectIdFactory(): number {\r\n\treturn selectId++;\r\n}\r\n\r\nfunction selectLabelFactory(): HTMLLabelElement | undefined {\r\n\tconst elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\r\n\r\n\tfunction getLabel(node: HTMLElement): HTMLLabelElement | undefined {\r\n\t\tif (node instanceof HTMLLabelElement) {\r\n\t\t\treturn node;\r\n\t\t}\r\n\r\n\t\tif (!node.parentElement) {\r\n\t\t\treturn undefined;\r\n\t\t}\r\n\r\n\t\treturn getLabel(node.parentElement);\r\n\t}\r\n\r\n\treturn getLabel(elementRef.nativeElement);\r\n}\r\n\r\nfunction selectLabelIdFactory(): string {\r\n\treturn inject(SELECT_LABEL)?.id || `lu-select-label-${inject(SELECT_ID)}`;\r\n}\r\n\r\nexport function provideLuSelectLabelsAndIds(): Provider[] {\r\n\treturn [\r\n\t\t{ provide: SELECT_ID, useFactory: selectIdFactory },\r\n\t\t{ provide: SELECT_LABEL, useFactory: selectLabelFactory },\r\n\t\t{ provide: SELECT_LABEL_ID, useFactory: selectLabelIdFactory },\r\n\t];\r\n}\r\n\r\n@Injectable()\r\nclass LuSelectOverlayContainer extends OverlayContainer {\r\n\tprivate selectLabelId = inject(SELECT_LABEL_ID);\r\n\tprivate selectId = inject(SELECT_ID);\r\n\r\n\tconstructor() {\r\n\t\tsuper(inject(DOCUMENT), inject(Platform));\r\n\t}\r\n\r\n\tprotected override _createContainer(): void {\r\n\t\tsuper._createContainer();\r\n\t\tthis._containerElement.setAttribute('aria-labelledby', this.selectLabelId);\r\n\t\tthis._containerElement.setAttribute('role', 'listbox');\r\n\t\tthis._containerElement.id = `lu-select-overlay-container-${this.selectId}`;\r\n\t}\r\n}\r\n\r\nexport function provideLuSelectOverlayContainer(): Provider[] {\r\n\treturn [\r\n\t\t{\r\n\t\t\tprovide: OverlayContainer,\r\n\t\t\tuseClass: LuSelectOverlayContainer,\r\n\t\t},\r\n\t];\r\n}\r\n","/* eslint-disable @angular-eslint/no-output-on-prefix */\r\nimport { OverlayConfig, OverlayContainer, OverlayModule } from '@angular/cdk/overlay';\r\nimport { AsyncPipe, NgIf } from '@angular/common';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, forwardRef, HostBinding, HostListener, inject, Input, OnDestroy, OnInit, Output, TemplateRef, Type } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { getIntl } from '@lucca-front/ng/core';\r\nimport { BehaviorSubject, ReplaySubject } from 'rxjs';\r\nimport { LuSimpleSelectDefaultOptionComponent } from '../option';\r\nimport { LuOptionOutletDirective } from '../option/option-outlet.directive';\r\nimport { LuSelectPanelRef } from '../panel';\r\nimport { LuOptionContext, SELECT_LABEL, SELECT_LABEL_ID } from '../select.model';\r\nimport { LU_SIMPLE_SELECT_TRANSLATIONS } from '../select.translate';\r\nimport { LuSimpleSelectPanelRefFactory } from './panel-ref.factory';\r\nimport { provideLuSelectLabelsAndIds, provideLuSelectOverlayContainer } from './select-input.models';\r\n\r\n@Component({\r\n\tselector: 'lu-simple-select',\r\n\ttemplateUrl: './select-input.component.html',\r\n\tstyleUrls: ['./select-input.component.scss'],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n\tstandalone: true,\r\n\timports: [AsyncPipe, LuOptionOutletDirective, NgIf, OverlayModule],\r\n\tproviders: [\r\n\t\t{\r\n\t\t\tprovide: NG_VALUE_ACCESSOR,\r\n\t\t\tuseExisting: forwardRef(() => LuSimpleSelectInputComponent),\r\n\t\t\tmulti: true,\r\n\t\t},\r\n\t\tprovideLuSelectOverlayContainer(),\r\n\t\tprovideLuSelectLabelsAndIds(),\r\n\t\tLuSimpleSelectPanelRefFactory,\r\n\t],\r\n})\r\nexport class LuSimpleSelectInputComponent<T> implements ControlValueAccessor, OnDestroy, OnInit {\r\n\t@HostBinding('tabindex') tabindex = 0;\r\n\r\n\t@Input() placeholder = '';\r\n\r\n\t@Input()\r\n\t@HostBinding('class.is-clearable')\r\n\tclearable = false;\r\n\r\n\tget searchable(): boolean {\r\n\t\treturn this.clueChange.observed;\r\n\t}\r\n\r\n\t@Input()\r\n\t@HostBinding('class.is-disabled')\r\n\tdisabled = false;\r\n\r\n\t@HostBinding('class.is-filled')\r\n\tget isFilled(): boolean {\r\n\t\treturn this.value !== null && this.value !== undefined;\r\n\t}\r\n\r\n\t@HostBinding('class.is-focused')\r\n\t@HostBinding('attr.aria-expanded')\r\n\tpublic get isPanelOpen(): boolean {\r\n\t\treturn this.isPanelOpen$.value;\r\n\t}\r\n\tpublic isPanelOpen$ = new BehaviorSubject(false);\r\n\r\n\t@HostBinding('attr.role')\r\n\tpublic role = 'combobox';\r\n\r\n\t@HostBinding('attr.aria-activedescendant')\r\n\tpublic activeDescendant: string | undefined;\r\n\r\n\t@HostBinding('attr.aria-controls')\r\n\tget ariaControls(): string {\r\n\t\treturn this.overlayContainerRef.id;\r\n\t}\r\n\r\n\t@Input()\r\n\toverlayConfig?: OverlayConfig = {\r\n\t\thasBackdrop: true,\r\n\t\tbackdropClass: 'cdk-overlay-transparent-backdrop',\r\n\t};\r\n\r\n\t@Input() set loading(value: boolean) {\r\n\t\tthis.loading$.next(value);\r\n\t}\r\n\r\n\t@Input() set options(options: T[]) {\r\n\t\tthis.options$.next(options);\r\n\t}\r\n\r\n\t@Input() optionComparer: (option1: T, option2: T) => boolean = (option1, option2) => JSON.stringify(option1) === JSON.stringify(option2);\r\n\t@Input() optionTpl?: TemplateRef<LuOptionContext<T>> | Type<unknown> = LuSimpleSelectDefaultOptionComponent;\r\n\t@Input() valueTpl?: TemplateRef<LuOptionContext<T>> | Type<unknown>;\r\n\r\n\t@Output() clueChange = new EventEmitter<string>();\r\n\t@Output() nextPage = new EventEmitter<void>();\r\n\t@Output() previousPage = new EventEmitter<void>();\r\n\r\n\tpublic get value(): T {\r\n\t\treturn this._value;\r\n\t}\r\n\r\n\tprotected set value(value: T) {\r\n\t\tthis._value = value;\r\n\t\tthis.changeDetectorRef.markForCheck();\r\n\t}\r\n\r\n\tprotected _value?: T;\r\n\r\n\toptions$ = new ReplaySubject<T[]>(1);\r\n\tloading$ = new ReplaySubject<boolean>(1);\r\n\tclue: string | null = null;\r\n\tintl = getIntl(LU_SIMPLE_SELECT_TRANSLATIONS);\r\n\r\n\tprotected onChange?: (value: T | null) => void;\r\n\tprotected onTouched?: () => void;\r\n\r\n\tprotected panelRef?: LuSelectPanelRef<T>;\r\n\r\n\t@HostListener('keydown.space', ['$event'])\r\n\t@HostListener('keydown.enter', ['$event'])\r\n\t@HostListener('keydown.arrowDown', ['$event'])\r\n\t@HostListener('click', ['$event'])\r\n\tonKeydown($event: KeyboardEvent) {\r\n\t\tif (!this.isPanelOpen) {\r\n\t\t\tthis.openPanel();\r\n\t\t\t$event.stopPropagation();\r\n\t\t\t$event.preventDefault();\r\n\t\t}\r\n\t}\r\n\r\n\tprotected changeDetectorRef = inject(ChangeDetectorRef);\r\n\tprotected overlayContainerRef: HTMLElement = inject(OverlayContainer).getContainerElement();\r\n\tprotected panelRefFactory = inject(LuSimpleSelectPanelRefFactory);\r\n\r\n\tprotected label: HTMLElement | undefined = inject(SELECT_LABEL);\r\n\tprotected labelId: string = inject(SELECT_LABEL_ID);\r\n\r\n\tregisterOnChange(onChange: (value: T) => void): void {\r\n\t\tthis.onChange = onChange;\r\n\t}\r\n\r\n\tregisterOnTouched(onTouched: () => void): void {\r\n\t\tthis.onTouched = onTouched;\r\n\t}\r\n\r\n\tsetDisabledState(isDisabled: boolean): void {\r\n\t\tthis.disabled = isDisabled;\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.panelRef?.close();\r\n\t}\r\n\r\n\tngOnInit(): void {\r\n\t\tif (this.label) {\r\n\t\t\tthis.label.id = this.labelId;\r\n\t\t}\r\n\t}\r\n\r\n\tclearValue(event: MouseEvent): void {\r\n\t\tevent.stopPropagation();\r\n\t\tthis.updateValue(null);\r\n\t}\r\n\r\n\topenPanel(): void {\r\n\t\tif (this.isPanelOpen || this.disabled) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.isPanelOpen$.next(true);\r\n\t\tthis.panelRef = this.panelRefFactory.buildPanelRef(\r\n\t\t\t{\r\n\t\t\t\tinitialValue: this.value,\r\n\t\t\t\toptionComparer: this.optionComparer,\r\n\t\t\t\toptions$: this.options$,\r\n\t\t\t\tloading$: this.loading$,\r\n\t\t\t\tsearchable: this.searchable,\r\n\t\t\t\toptionTpl: this.optionTpl,\r\n\t\t\t},\r\n\t\t\tthis.overlayConfig,\r\n\t\t);\r\n\r\n\t\tthis.panelRef.valueChanged.subscribe((value) => this.updateValue(value));\r\n\t\tthis.panelRef.nextPage.subscribe(() => this.nextPage.emit());\r\n\t\tthis.panelRef.previousPage.subscribe(() => this.previousPage.emit());\r\n\t\tthis.panelRef.clueChanged.subscribe((clue) => {\r\n\t\t\tthis.clueChange.emit(clue);\r\n\t\t\tthis.clue = clue;\r\n\t\t});\r\n\t\tthis.panelRef.activeOptionIdChanged.subscribe((optionId) => {\r\n\t\t\tthis.activeDescendant = optionId;\r\n\t\t\tthis.changeDetectorRef.markForCheck();\r\n\t\t});\r\n\t\tthis.panelRef.closed.subscribe(() => this.closePanel());\r\n\t}\r\n\r\n\tpublic closePanel(): void {\r\n\t\tif (!this.isPanelOpen) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.isPanelOpen$.next(false);\r\n\t\tthis.panelRef.close();\r\n\t\tthis.panelRef = undefined;\r\n\t}\r\n\r\n\tpublic writeValue(value: T): void {\r\n\t\tthis.value = value;\r\n\t}\r\n\r\n\tpublic updateValue(value: T): void {\r\n\t\tthis.value = value;\r\n\t\tthis.onChange?.(value);\r\n\t\tthis.onTouched?.();\r\n\t}\r\n}\r\n","<div class=\"lu-select-placeholder\">{{ placeholder }}</div>\r\n<div class=\"lu-select-value\">\r\n\t<div class=\"lu-select-display-wrapper\">\r\n\t\t<ng-container *luOptionOutlet=\"valueTpl || optionTpl; value: value\"></ng-container>\r\n\t</div>\r\n</div>\r\n<a *ngIf=\"clearable && isFilled\" class=\"lu-select-clearer\" role=\"button\" (click)=\"clearValue($event)\">\r\n\t<span aria-hidden=\"true\" class=\"lucca-icon icon-thinCross\"></span>\r\n\t<span class=\"u-mask\">{{ intl.clear }}</span>\r\n</a>\r\n","/*\r\n * Public API Surface of safe-content\r\n */\r\n\r\nexport * from './lib/index';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ɵLuOptionComponent"],"mappings":"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"}