@lucca-front/ng 10.1.1 → 10.2.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.
- package/esm2020/api/lib/select/input/api-select-input.component.mjs +2 -2
- package/esm2020/api/lib/select/searcher/api-searcher.component.mjs +4 -4
- package/esm2020/date/lib/calendar/calendar-input.component.mjs +2 -2
- package/esm2020/date/lib/select/date-select-input.component.mjs +2 -2
- package/esm2020/department/lib/select/input/department-select-input.component.mjs +2 -2
- package/esm2020/establishment/lib/select/input/establishment-select-input.component.mjs +2 -2
- package/esm2020/establishment/lib/select/searcher/establishment-searcher.component.mjs +2 -2
- package/esm2020/establishment/lib/select/select-all/establishment-select-all.component.mjs +2 -2
- package/esm2020/input/lib/clearer/clearer.component.mjs +2 -2
- package/esm2020/modal/lib/modal-panel.component.mjs +32 -41
- package/esm2020/modal/lib/modal-ref.factory.mjs +3 -4
- package/esm2020/modal/lib/modal.model.mjs +1 -1
- package/esm2020/modal/lib/modal.module.mjs +4 -5
- package/esm2020/option/lib/item/option-item.component.mjs +2 -2
- package/esm2020/option/lib/item/tree-option-item.component.mjs +2 -2
- package/esm2020/option/lib/operator/searcher/option-searcher.component.mjs +2 -2
- package/esm2020/option/lib/operator/searcher/tree-option-searcher.component.mjs +2 -2
- package/esm2020/option/lib/placeholder/option-placeholder.component.mjs +2 -2
- package/esm2020/option/lib/selector/all/select-all.component.mjs +2 -2
- package/esm2020/option/lib/selector/all/tree-select-all.component.mjs +2 -2
- package/esm2020/popover/lib/trigger/popover-trigger.model.mjs +27 -4
- package/esm2020/qualification/lib/select/input/qualification-select-input.component.mjs +2 -2
- package/esm2020/select/lib/input/select-input.component.mjs +2 -2
- package/esm2020/select/lib/input/select-input.module.mjs +3 -3
- package/esm2020/sidepanel/lib/sidepanel-panel.component.mjs +8 -9
- package/esm2020/sidepanel/lib/sidepanel-ref.factory.mjs +3 -4
- package/esm2020/sidepanel/lib/sidepanel.module.mjs +4 -5
- package/esm2020/simple-select/lib/index.mjs +7 -0
- package/esm2020/simple-select/lib/input/index.mjs +2 -0
- package/esm2020/simple-select/lib/input/select-input.component.mjs +353 -0
- package/esm2020/simple-select/lib/option/displayer.directive.mjs +26 -0
- package/esm2020/simple-select/lib/option/index.mjs +4 -0
- package/esm2020/simple-select/lib/option/option.component.mjs +58 -0
- package/esm2020/simple-select/lib/option/option.directive.mjs +26 -0
- package/esm2020/simple-select/lib/panel/index.mjs +2 -0
- package/esm2020/simple-select/lib/panel/panel.component.mjs +119 -0
- package/esm2020/simple-select/lib/select.model.mjs +6 -0
- package/esm2020/simple-select/lucca-front-ng-simple-select.mjs +5 -0
- package/esm2020/simple-select/public-api.mjs +5 -0
- package/esm2020/title/lib/index.mjs +3 -1
- package/esm2020/title/lib/title.model.mjs +6 -0
- package/esm2020/title/lib/title.module.mjs +4 -1
- package/esm2020/title/lib/title.service.mjs +5 -2
- package/esm2020/title/lib/title.strategy.mjs +67 -0
- package/esm2020/tooltip/lib/panel/tooltip-panel.component.mjs +3 -3
- package/esm2020/user/lib/picture/user-picture.component.mjs +2 -2
- package/esm2020/user/lib/select/input/user-select-input.component.mjs +2 -2
- package/esm2020/user/lib/select/searcher/user-searcher.component.mjs +2 -2
- package/esm2020/user/lib/tile/user-tile.component.mjs +2 -2
- package/fesm2015/lucca-front-ng-api.mjs +6 -6
- package/fesm2015/lucca-front-ng-api.mjs.map +1 -1
- package/fesm2015/lucca-front-ng-date.mjs +4 -4
- package/fesm2015/lucca-front-ng-date.mjs.map +1 -1
- package/fesm2015/lucca-front-ng-department.mjs +2 -2
- package/fesm2015/lucca-front-ng-department.mjs.map +1 -1
- package/fesm2015/lucca-front-ng-establishment.mjs +6 -6
- package/fesm2015/lucca-front-ng-establishment.mjs.map +1 -1
- package/fesm2015/lucca-front-ng-input.mjs +2 -2
- package/fesm2015/lucca-front-ng-input.mjs.map +1 -1
- package/fesm2015/lucca-front-ng-modal.mjs +37 -46
- package/fesm2015/lucca-front-ng-modal.mjs.map +1 -1
- package/fesm2015/lucca-front-ng-option.mjs +14 -14
- package/fesm2015/lucca-front-ng-option.mjs.map +1 -1
- package/fesm2015/lucca-front-ng-popover.mjs +27 -4
- package/fesm2015/lucca-front-ng-popover.mjs.map +1 -1
- package/fesm2015/lucca-front-ng-qualification.mjs +2 -2
- package/fesm2015/lucca-front-ng-qualification.mjs.map +1 -1
- package/fesm2015/lucca-front-ng-select.mjs +2 -2
- package/fesm2015/lucca-front-ng-select.mjs.map +1 -1
- package/fesm2015/lucca-front-ng-sidepanel.mjs +13 -15
- package/fesm2015/lucca-front-ng-sidepanel.mjs.map +1 -1
- package/fesm2015/lucca-front-ng-simple-select.mjs +591 -0
- package/fesm2015/lucca-front-ng-simple-select.mjs.map +1 -0
- package/fesm2015/lucca-front-ng-title.mjs +78 -4
- package/fesm2015/lucca-front-ng-title.mjs.map +1 -1
- package/fesm2015/lucca-front-ng-tooltip.mjs +2 -2
- package/fesm2015/lucca-front-ng-tooltip.mjs.map +1 -1
- package/fesm2015/lucca-front-ng-user.mjs +8 -8
- package/fesm2015/lucca-front-ng-user.mjs.map +1 -1
- package/fesm2020/lucca-front-ng-api.mjs +6 -6
- package/fesm2020/lucca-front-ng-api.mjs.map +1 -1
- package/fesm2020/lucca-front-ng-date.mjs +4 -4
- package/fesm2020/lucca-front-ng-date.mjs.map +1 -1
- package/fesm2020/lucca-front-ng-department.mjs +2 -2
- package/fesm2020/lucca-front-ng-department.mjs.map +1 -1
- package/fesm2020/lucca-front-ng-establishment.mjs +6 -6
- package/fesm2020/lucca-front-ng-establishment.mjs.map +1 -1
- package/fesm2020/lucca-front-ng-input.mjs +2 -2
- package/fesm2020/lucca-front-ng-input.mjs.map +1 -1
- package/fesm2020/lucca-front-ng-modal.mjs +37 -46
- package/fesm2020/lucca-front-ng-modal.mjs.map +1 -1
- package/fesm2020/lucca-front-ng-option.mjs +14 -14
- package/fesm2020/lucca-front-ng-option.mjs.map +1 -1
- package/fesm2020/lucca-front-ng-popover.mjs +27 -4
- package/fesm2020/lucca-front-ng-popover.mjs.map +1 -1
- package/fesm2020/lucca-front-ng-qualification.mjs +2 -2
- package/fesm2020/lucca-front-ng-qualification.mjs.map +1 -1
- package/fesm2020/lucca-front-ng-select.mjs +2 -2
- package/fesm2020/lucca-front-ng-select.mjs.map +1 -1
- package/fesm2020/lucca-front-ng-sidepanel.mjs +13 -15
- package/fesm2020/lucca-front-ng-sidepanel.mjs.map +1 -1
- package/fesm2020/lucca-front-ng-simple-select.mjs +580 -0
- package/fesm2020/lucca-front-ng-simple-select.mjs.map +1 -0
- package/fesm2020/lucca-front-ng-title.mjs +74 -4
- package/fesm2020/lucca-front-ng-title.mjs.map +1 -1
- package/fesm2020/lucca-front-ng-tooltip.mjs +2 -2
- package/fesm2020/lucca-front-ng-tooltip.mjs.map +1 -1
- package/fesm2020/lucca-front-ng-user.mjs +8 -8
- package/fesm2020/lucca-front-ng-user.mjs.map +1 -1
- package/modal/lib/modal-panel.component.d.ts +19 -20
- package/modal/lib/modal-ref.factory.d.ts +0 -2
- package/modal/lib/modal.model.d.ts +3 -3
- package/modal/lib/modal.module.d.ts +4 -5
- package/package.json +11 -3
- package/popover/lib/trigger/popover-trigger.model.d.ts +6 -0
- package/sidepanel/lib/sidepanel-panel.component.d.ts +2 -2
- package/sidepanel/lib/sidepanel-ref.factory.d.ts +1 -3
- package/sidepanel/lib/sidepanel.module.d.ts +4 -5
- package/simple-select/README.md +9 -0
- package/simple-select/index.d.ts +5 -0
- package/simple-select/lib/index.d.ts +6 -0
- package/simple-select/lib/input/index.d.ts +1 -0
- package/simple-select/lib/input/select-input.component.d.ts +77 -0
- package/simple-select/lib/option/displayer.directive.d.ts +13 -0
- package/simple-select/lib/option/index.d.ts +3 -0
- package/simple-select/lib/option/option.component.d.ts +21 -0
- package/simple-select/lib/option/option.directive.d.ts +13 -0
- package/simple-select/lib/panel/index.d.ts +1 -0
- package/simple-select/lib/panel/panel.component.d.ts +40 -0
- package/simple-select/lib/select.model.d.ts +16 -0
- package/simple-select/public-api.d.ts +1 -0
- package/src/definitions/user/user-picture.scss +100 -65
- package/title/lib/index.d.ts +2 -0
- package/title/lib/title.model.d.ts +8 -0
- package/title/lib/title.module.d.ts +3 -0
- package/title/lib/title.service.d.ts +3 -7
- package/title/lib/title.strategy.d.ts +22 -0
|
@@ -0,0 +1,580 @@
|
|
|
1
|
+
import * as i2$1 from '@angular/cdk/overlay';
|
|
2
|
+
import { OverlayContainer, Overlay, OverlayModule } from '@angular/cdk/overlay';
|
|
3
|
+
import { ComponentPortal } from '@angular/cdk/portal';
|
|
4
|
+
import * as i1 from '@angular/common';
|
|
5
|
+
import { CommonModule, DOCUMENT } from '@angular/common';
|
|
6
|
+
import * as i0 from '@angular/core';
|
|
7
|
+
import { Directive, Input, InjectionToken, Component, ChangeDetectionStrategy, Inject, HostBinding, EventEmitter, ViewChild, ViewChildren, HostListener, Injectable, Injector, forwardRef, ElementRef, Output } from '@angular/core';
|
|
8
|
+
import * as i2 from '@angular/forms';
|
|
9
|
+
import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
10
|
+
import { BehaviorSubject, take, observeOn, asyncScheduler, map, takeUntil, ReplaySubject, Subject } from 'rxjs';
|
|
11
|
+
import * as i3 from '@angular/cdk/a11y';
|
|
12
|
+
import { ActiveDescendantKeyManager, A11yModule } from '@angular/cdk/a11y';
|
|
13
|
+
import * as i1$1 from '@angular/cdk/platform';
|
|
14
|
+
|
|
15
|
+
class LuDisplayerDirective {
|
|
16
|
+
constructor(templateRef) {
|
|
17
|
+
this.templateRef = templateRef;
|
|
18
|
+
}
|
|
19
|
+
set select(select) {
|
|
20
|
+
select.valueTpl = this.templateRef;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
LuDisplayerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: LuDisplayerDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
24
|
+
LuDisplayerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: LuDisplayerDirective, isStandalone: true, selector: "[luDisplayer]", inputs: { select: ["luDisplayerSelect", "select"], value: ["luDisplayer", "value"] }, ngImport: i0 });
|
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: LuDisplayerDirective, decorators: [{
|
|
26
|
+
type: Directive,
|
|
27
|
+
args: [{
|
|
28
|
+
selector: '[luDisplayer]',
|
|
29
|
+
standalone: true,
|
|
30
|
+
}]
|
|
31
|
+
}], ctorParameters: function () { return [{ type: i0.TemplateRef }]; }, propDecorators: { select: [{
|
|
32
|
+
type: Input,
|
|
33
|
+
args: ['luDisplayerSelect']
|
|
34
|
+
}], value: [{
|
|
35
|
+
type: Input,
|
|
36
|
+
args: ['luDisplayer']
|
|
37
|
+
}] } });
|
|
38
|
+
|
|
39
|
+
const SELECT_ID = new InjectionToken('LuSelectPanelData');
|
|
40
|
+
const SELECT_PANEL_DATA = new InjectionToken('LuSelectId');
|
|
41
|
+
const SELECT_LABEL = new InjectionToken('LuSelectLabel');
|
|
42
|
+
const SELECT_LABEL_ID = new InjectionToken('LuSelectLabelId');
|
|
43
|
+
|
|
44
|
+
class LuOptionComponent {
|
|
45
|
+
constructor(elementRef, selectId) {
|
|
46
|
+
this.elementRef = elementRef;
|
|
47
|
+
this.selectId = selectId;
|
|
48
|
+
this.hasOptionItemClass = true;
|
|
49
|
+
this.isSelected = false;
|
|
50
|
+
this.optionIndex = 0;
|
|
51
|
+
this.isHighlighted$ = new BehaviorSubject(false);
|
|
52
|
+
this.disabled = false;
|
|
53
|
+
this.role = 'option';
|
|
54
|
+
}
|
|
55
|
+
get id() {
|
|
56
|
+
return `lu-select-${this.selectId}-option-${this.optionIndex}`;
|
|
57
|
+
}
|
|
58
|
+
setActiveStyles() {
|
|
59
|
+
this.isHighlighted$.next(true);
|
|
60
|
+
this.elementRef.nativeElement.scrollIntoView({ block: 'center' });
|
|
61
|
+
}
|
|
62
|
+
setInactiveStyles() {
|
|
63
|
+
this.isHighlighted$.next(false);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
LuOptionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: LuOptionComponent, deps: [{ token: i0.ElementRef }, { token: SELECT_ID }], target: i0.ɵɵFactoryTarget.Component });
|
|
67
|
+
LuOptionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: LuOptionComponent, isStandalone: true, selector: "lu-select-option", inputs: { isSelected: "isSelected", option: "option", optionIndex: "optionIndex", disabled: "disabled" }, host: { properties: { "class.optionItem": "this.hasOptionItemClass", "attr.aria-selected": "this.isSelected", "attr.role": "this.role", "attr.id": "this.id" } }, ngImport: i0, template: "<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>\r\n\t<ng-content></ng-content>\r\n</div>\r\n", styles: [":root{--components-options-item-padding-vertical: var(--spacings-smaller);--components-options-item-padding-horizontal: var(--spacings-smaller);--components-options-item-multiple-padding: var(--spacings-big);--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-border-radius);--components-options-checkbox-border-color: var(--palettes-grey-700);--components-options-establishment-multiple-padding: var(--spacings-standard)}:host{display:block}.optionItem{position:relative}.optionItem-value{display:block;padding:var(--components-options-item-padding-vertical) var(--components-options-item-padding-horizontal);transition:background-color 50ms;cursor:pointer}.optionItem-value.is-selected{background-color:var(--palettes-primary-50)}.optionItem-value:hover,.optionItem-value.is-highlighted,.optionItem-value.is-focus{background-color:var(--palettes-grey-50)}:host-context(.lu-select-value) .optionItem-value{padding:0;overflow:hidden;text-overflow:ellipsis}:host-context(.lu-select-value) .optionItem-value:hover,:host-context(.lu-select-value) .optionItem-value.is-focus,:host-context(.lu-select-value) .optionItem-value.is-highlighted{background-color:inherit}:host-context(.mod-multiple) .optionItem-value{position:relative;padding-left:var(--components-options-item-multiple-padding)}:host-context(.mod-multiple) .optionItem-value:after,:host-context(.mod-multiple) .optionItem-value:before{display:block;position:absolute;left:var(--components-options-checkbox-left);top:50%;transform:translateY(-50%)}:host-context(.mod-multiple) .optionItem-value:before{content:\"\";border-radius:var(--components-options-checkbox-border-radius);box-shadow:inset 0 0 0 2px var(--components-options-checkbox-border-color);display:block;height:var(--components-options-checkbox-size);transition:all .1s;width:var(--components-options-checkbox-size)}:host-context(.mod-multiple) .optionItem-value:after{display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;color:transparent;font-size:1rem;line-height:var(--components-options-checkbox-size);padding-top:.05rem;position:absolute;text-align:center;transform:translateY(-50%) scale(0);transition:all .1s;width:var(--components-options-checkbox-size)}@supports (content: \"*\"/\"\"){:host-context(.mod-multiple) .optionItem-value:after{content:\"\\e91a\"/\"\"}}@supports not (content: \"*\"/\"\"){:host-context(.mod-multiple) .optionItem-value:after{content:\"\\e91a\"}}:host-context(.mod-multiple) .optionItem-value.is-selected:before{background-color:var(--components-options-checkbox-color);box-shadow:inset 0 0 0 2px var(--components-options-checkbox-color)}:host-context(.mod-multiple) .optionItem-value.is-selected:after{color:var(--colors-white-color);transform:translateY(-50%) scale(1)}:host-context(.mod-multiple) .optionItem-value:hover:before{box-shadow:inset 0 0 0 2px var(--components-options-checkbox-color)}:host-context(.mod-multiple).establishmentOption .optionItem-value{position:relative;padding-left:calc(2 * var(--components-options-item-padding-horizontal) + var(--components-options-checkbox-size) + var(--spacings-smaller))}:host-context(.mod-multiple).establishmentOption .optionItem-value:before,:host-context(.mod-multiple).establishmentOption .optionItem-value:after{left:calc(2 * var(--components-options-item-padding-horizontal))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
68
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: LuOptionComponent, decorators: [{
|
|
69
|
+
type: Component,
|
|
70
|
+
args: [{ selector: 'lu-select-option', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule], template: "<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>\r\n\t<ng-content></ng-content>\r\n</div>\r\n", styles: [":root{--components-options-item-padding-vertical: var(--spacings-smaller);--components-options-item-padding-horizontal: var(--spacings-smaller);--components-options-item-multiple-padding: var(--spacings-big);--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-border-radius);--components-options-checkbox-border-color: var(--palettes-grey-700);--components-options-establishment-multiple-padding: var(--spacings-standard)}:host{display:block}.optionItem{position:relative}.optionItem-value{display:block;padding:var(--components-options-item-padding-vertical) var(--components-options-item-padding-horizontal);transition:background-color 50ms;cursor:pointer}.optionItem-value.is-selected{background-color:var(--palettes-primary-50)}.optionItem-value:hover,.optionItem-value.is-highlighted,.optionItem-value.is-focus{background-color:var(--palettes-grey-50)}:host-context(.lu-select-value) .optionItem-value{padding:0;overflow:hidden;text-overflow:ellipsis}:host-context(.lu-select-value) .optionItem-value:hover,:host-context(.lu-select-value) .optionItem-value.is-focus,:host-context(.lu-select-value) .optionItem-value.is-highlighted{background-color:inherit}:host-context(.mod-multiple) .optionItem-value{position:relative;padding-left:var(--components-options-item-multiple-padding)}:host-context(.mod-multiple) .optionItem-value:after,:host-context(.mod-multiple) .optionItem-value:before{display:block;position:absolute;left:var(--components-options-checkbox-left);top:50%;transform:translateY(-50%)}:host-context(.mod-multiple) .optionItem-value:before{content:\"\";border-radius:var(--components-options-checkbox-border-radius);box-shadow:inset 0 0 0 2px var(--components-options-checkbox-border-color);display:block;height:var(--components-options-checkbox-size);transition:all .1s;width:var(--components-options-checkbox-size)}:host-context(.mod-multiple) .optionItem-value:after{display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;color:transparent;font-size:1rem;line-height:var(--components-options-checkbox-size);padding-top:.05rem;position:absolute;text-align:center;transform:translateY(-50%) scale(0);transition:all .1s;width:var(--components-options-checkbox-size)}@supports (content: \"*\"/\"\"){:host-context(.mod-multiple) .optionItem-value:after{content:\"\\e91a\"/\"\"}}@supports not (content: \"*\"/\"\"){:host-context(.mod-multiple) .optionItem-value:after{content:\"\\e91a\"}}:host-context(.mod-multiple) .optionItem-value.is-selected:before{background-color:var(--components-options-checkbox-color);box-shadow:inset 0 0 0 2px var(--components-options-checkbox-color)}:host-context(.mod-multiple) .optionItem-value.is-selected:after{color:var(--colors-white-color);transform:translateY(-50%) scale(1)}:host-context(.mod-multiple) .optionItem-value:hover:before{box-shadow:inset 0 0 0 2px var(--components-options-checkbox-color)}:host-context(.mod-multiple).establishmentOption .optionItem-value{position:relative;padding-left:calc(2 * var(--components-options-item-padding-horizontal) + var(--components-options-checkbox-size) + var(--spacings-smaller))}:host-context(.mod-multiple).establishmentOption .optionItem-value:before,:host-context(.mod-multiple).establishmentOption .optionItem-value:after{left:calc(2 * var(--components-options-item-padding-horizontal))}\n"] }]
|
|
71
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: undefined, decorators: [{
|
|
72
|
+
type: Inject,
|
|
73
|
+
args: [SELECT_ID]
|
|
74
|
+
}] }]; }, propDecorators: { hasOptionItemClass: [{
|
|
75
|
+
type: HostBinding,
|
|
76
|
+
args: ['class.optionItem']
|
|
77
|
+
}], isSelected: [{
|
|
78
|
+
type: Input
|
|
79
|
+
}, {
|
|
80
|
+
type: HostBinding,
|
|
81
|
+
args: ['attr.aria-selected']
|
|
82
|
+
}], option: [{
|
|
83
|
+
type: Input
|
|
84
|
+
}], optionIndex: [{
|
|
85
|
+
type: Input
|
|
86
|
+
}], disabled: [{
|
|
87
|
+
type: Input
|
|
88
|
+
}], role: [{
|
|
89
|
+
type: HostBinding,
|
|
90
|
+
args: ['attr.role']
|
|
91
|
+
}], id: [{
|
|
92
|
+
type: HostBinding,
|
|
93
|
+
args: ['attr.id']
|
|
94
|
+
}] } });
|
|
95
|
+
|
|
96
|
+
class LuOptionDirective {
|
|
97
|
+
constructor(templateRef) {
|
|
98
|
+
this.templateRef = templateRef;
|
|
99
|
+
}
|
|
100
|
+
set select(select) {
|
|
101
|
+
select.optionTpl = this.templateRef;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
LuOptionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: LuOptionDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
105
|
+
LuOptionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: LuOptionDirective, isStandalone: true, selector: "[luOption]", inputs: { select: ["luOptionSelect", "select"], value: ["luOption", "value"] }, ngImport: i0 });
|
|
106
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: LuOptionDirective, decorators: [{
|
|
107
|
+
type: Directive,
|
|
108
|
+
args: [{
|
|
109
|
+
selector: '[luOption]',
|
|
110
|
+
standalone: true,
|
|
111
|
+
}]
|
|
112
|
+
}], ctorParameters: function () { return [{ type: i0.TemplateRef }]; }, propDecorators: { select: [{
|
|
113
|
+
type: Input,
|
|
114
|
+
args: ['luOptionSelect']
|
|
115
|
+
}], value: [{
|
|
116
|
+
type: Input,
|
|
117
|
+
args: ['luOption']
|
|
118
|
+
}] } });
|
|
119
|
+
|
|
120
|
+
class LuSelectPanelRef {
|
|
121
|
+
constructor() {
|
|
122
|
+
this.closed = new EventEmitter();
|
|
123
|
+
this.previousPage = new EventEmitter();
|
|
124
|
+
this.nextPage = new EventEmitter();
|
|
125
|
+
this.valueChanged = new EventEmitter();
|
|
126
|
+
this.clueChanged = new EventEmitter();
|
|
127
|
+
this.activeOptionIdChanged = new EventEmitter();
|
|
128
|
+
}
|
|
129
|
+
close() {
|
|
130
|
+
this.closed.next();
|
|
131
|
+
this.closed.complete();
|
|
132
|
+
this.nextPage.next();
|
|
133
|
+
this.nextPage.complete();
|
|
134
|
+
this.previousPage.next();
|
|
135
|
+
this.previousPage.complete();
|
|
136
|
+
this.valueChanged.complete();
|
|
137
|
+
this.clueChanged.emit(null);
|
|
138
|
+
this.clueChanged.complete();
|
|
139
|
+
this.activeOptionIdChanged.emit(undefined);
|
|
140
|
+
this.activeOptionIdChanged.complete();
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
class LuSelectPanelComponent {
|
|
144
|
+
constructor(panelRef, selectId, data) {
|
|
145
|
+
this.panelRef = panelRef;
|
|
146
|
+
this.selectId = selectId;
|
|
147
|
+
this.search = null;
|
|
148
|
+
this.options$ = data.options$;
|
|
149
|
+
this.loading$ = data.loading$;
|
|
150
|
+
this.optionComparer = data.optionComparer;
|
|
151
|
+
this.initialValue = data.initialValue;
|
|
152
|
+
this.optionTpl = data.optionTpl;
|
|
153
|
+
this.searchable = data.searchable;
|
|
154
|
+
}
|
|
155
|
+
set searchInput(input) {
|
|
156
|
+
if (!input) {
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
setTimeout(() => input.nativeElement.focus());
|
|
160
|
+
}
|
|
161
|
+
get selected() {
|
|
162
|
+
return this.keyManager?.activeItem?.option;
|
|
163
|
+
}
|
|
164
|
+
onScroll(evt) {
|
|
165
|
+
if (!(evt.target instanceof HTMLElement)) {
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
if (evt.target.scrollTop === 0) {
|
|
169
|
+
this.panelRef.previousPage.emit();
|
|
170
|
+
}
|
|
171
|
+
if (evt.target.scrollHeight === evt.target.scrollTop + evt.target.clientHeight) {
|
|
172
|
+
this.panelRef.nextPage.emit();
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
ngAfterViewInit() {
|
|
176
|
+
if (!this.optionsQL) {
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
this.keyManager = new ActiveDescendantKeyManager(this.optionsQL).withHomeAndEnd();
|
|
180
|
+
if (this.initialValue) {
|
|
181
|
+
this.options$
|
|
182
|
+
?.pipe(take(1), observeOn(asyncScheduler), map((options) => options.findIndex((o) => this.optionComparer(o, this.initialValue))), takeUntil(this.panelRef.closed))
|
|
183
|
+
.subscribe((selectedIndex) => this.keyManager.setActiveItem(selectedIndex));
|
|
184
|
+
}
|
|
185
|
+
this.keyManager.change
|
|
186
|
+
.pipe(map(() => this.keyManager.activeItem?.id), takeUntil(this.panelRef.closed))
|
|
187
|
+
.subscribe((activeDescendant) => this.panelRef.activeOptionIdChanged.emit(activeDescendant));
|
|
188
|
+
}
|
|
189
|
+
onKeyDown($event) {
|
|
190
|
+
switch ($event.key) {
|
|
191
|
+
case 'Escape':
|
|
192
|
+
case 'Tab':
|
|
193
|
+
return this.panelRef.close();
|
|
194
|
+
case 'Enter':
|
|
195
|
+
return this.panelRef.emitValue(this.selected);
|
|
196
|
+
default:
|
|
197
|
+
this.keyManager?.onKeydown($event);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
updateClue(clue) {
|
|
201
|
+
this.search = clue;
|
|
202
|
+
this.panelRef.clueChanged.emit(clue);
|
|
203
|
+
setTimeout(() => this.keyManager.setFirstItemActive());
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
LuSelectPanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: LuSelectPanelComponent, deps: [{ token: LuSelectPanelRef }, { token: SELECT_ID }, { token: SELECT_PANEL_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
207
|
+
LuSelectPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.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=\"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-marginBottomReset\">Aucun r\u00E9sultat pour votre recherche</p>\r\n\t\t\t\t<button type=\"button\" class=\"link\" (click)=\"updateClue(null); searchInput.focus()\">Vider la recherche</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[optionIndex]=\"index\"\r\n\t\t\t[isSelected]=\"option === selected\"\r\n\t\t\t[disabled]=\"false\"\r\n\t\t\t(click)=\"panelRef.emitValue(option)\"\r\n\t\t>\r\n\t\t\t<ng-container *ngTemplateOutlet=\"optionTpl; context: { $implicit: option }\"></ng-container>\r\n\t\t</lu-select-option>\r\n\t\t<div *ngIf=\"loading$ | async\" class=\"loading lu-picker-loading\"></div>\r\n\t</div>\r\n</div>\r\n", styles: [":root{--components-options-item-padding-vertical: var(--spacings-smaller);--components-options-item-padding-horizontal: var(--spacings-smaller);--components-options-item-multiple-padding: var(--spacings-big);--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-border-radius);--components-options-checkbox-border-color: var(--palettes-grey-700);--components-options-establishment-multiple-padding: var(--spacings-standard)}.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-smallest) 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)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1.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: "ngmodule", type: A11yModule }, { kind: "directive", type: i3.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: LuOptionComponent, selector: "lu-select-option", inputs: ["isSelected", "option", "optionIndex", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
208
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: LuSelectPanelComponent, decorators: [{
|
|
209
|
+
type: Component,
|
|
210
|
+
args: [{ selector: 'lu-select-panel', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, FormsModule, A11yModule, 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=\"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-marginBottomReset\">Aucun r\u00E9sultat pour votre recherche</p>\r\n\t\t\t\t<button type=\"button\" class=\"link\" (click)=\"updateClue(null); searchInput.focus()\">Vider la recherche</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[optionIndex]=\"index\"\r\n\t\t\t[isSelected]=\"option === selected\"\r\n\t\t\t[disabled]=\"false\"\r\n\t\t\t(click)=\"panelRef.emitValue(option)\"\r\n\t\t>\r\n\t\t\t<ng-container *ngTemplateOutlet=\"optionTpl; context: { $implicit: option }\"></ng-container>\r\n\t\t</lu-select-option>\r\n\t\t<div *ngIf=\"loading$ | async\" class=\"loading lu-picker-loading\"></div>\r\n\t</div>\r\n</div>\r\n", styles: [":root{--components-options-item-padding-vertical: var(--spacings-smaller);--components-options-item-padding-horizontal: var(--spacings-smaller);--components-options-item-multiple-padding: var(--spacings-big);--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-border-radius);--components-options-checkbox-border-color: var(--palettes-grey-700);--components-options-establishment-multiple-padding: var(--spacings-standard)}.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-smallest) 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)}\n"] }]
|
|
211
|
+
}], ctorParameters: function () { return [{ type: LuSelectPanelRef }, { type: undefined, decorators: [{
|
|
212
|
+
type: Inject,
|
|
213
|
+
args: [SELECT_ID]
|
|
214
|
+
}] }, { type: undefined, decorators: [{
|
|
215
|
+
type: Inject,
|
|
216
|
+
args: [SELECT_PANEL_DATA]
|
|
217
|
+
}] }]; }, propDecorators: { searchInput: [{
|
|
218
|
+
type: ViewChild,
|
|
219
|
+
args: ['searchInput']
|
|
220
|
+
}], optionsQL: [{
|
|
221
|
+
type: ViewChildren,
|
|
222
|
+
args: [LuOptionComponent]
|
|
223
|
+
}], onKeyDown: [{
|
|
224
|
+
type: HostListener,
|
|
225
|
+
args: ['keydown', ['$event']]
|
|
226
|
+
}] } });
|
|
227
|
+
|
|
228
|
+
/* eslint-disable @angular-eslint/no-output-on-prefix */
|
|
229
|
+
let selectId = 0;
|
|
230
|
+
function selectIdFactory() {
|
|
231
|
+
return selectId++;
|
|
232
|
+
}
|
|
233
|
+
function selectLabelFactory(elementRef) {
|
|
234
|
+
function getLabel(node) {
|
|
235
|
+
if (node instanceof HTMLLabelElement) {
|
|
236
|
+
return node;
|
|
237
|
+
}
|
|
238
|
+
if (!node.parentElement) {
|
|
239
|
+
return undefined;
|
|
240
|
+
}
|
|
241
|
+
return getLabel(node.parentElement);
|
|
242
|
+
}
|
|
243
|
+
return getLabel(elementRef.nativeElement);
|
|
244
|
+
}
|
|
245
|
+
function selectLabelIdFactory(label, selectId) {
|
|
246
|
+
return label?.id || `lu-select-label-${selectId}`;
|
|
247
|
+
}
|
|
248
|
+
class LuSelectOverlayContainer extends OverlayContainer {
|
|
249
|
+
constructor(document, platform, selectLabelId, selectId) {
|
|
250
|
+
super(document, platform);
|
|
251
|
+
this.selectLabelId = selectLabelId;
|
|
252
|
+
this.selectId = selectId;
|
|
253
|
+
}
|
|
254
|
+
_createContainer() {
|
|
255
|
+
super._createContainer();
|
|
256
|
+
this._containerElement.setAttribute('aria-labelledby', this.selectLabelId);
|
|
257
|
+
this._containerElement.setAttribute('role', 'listbox');
|
|
258
|
+
this._containerElement.id = `lu-select-overlay-container-${this.selectId}`;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
LuSelectOverlayContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: LuSelectOverlayContainer, deps: [{ token: DOCUMENT }, { token: i1$1.Platform }, { token: SELECT_LABEL_ID }, { token: SELECT_ID }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
262
|
+
LuSelectOverlayContainer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: LuSelectOverlayContainer });
|
|
263
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: LuSelectOverlayContainer, decorators: [{
|
|
264
|
+
type: Injectable
|
|
265
|
+
}], ctorParameters: function () { return [{ type: Document, decorators: [{
|
|
266
|
+
type: Inject,
|
|
267
|
+
args: [DOCUMENT]
|
|
268
|
+
}] }, { type: i1$1.Platform }, { type: undefined, decorators: [{
|
|
269
|
+
type: Inject,
|
|
270
|
+
args: [SELECT_LABEL_ID]
|
|
271
|
+
}] }, { type: undefined, decorators: [{
|
|
272
|
+
type: Inject,
|
|
273
|
+
args: [SELECT_ID]
|
|
274
|
+
}] }]; } });
|
|
275
|
+
class LuSelectOverlay extends Overlay {
|
|
276
|
+
}
|
|
277
|
+
LuSelectOverlay.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: LuSelectOverlay, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
278
|
+
LuSelectOverlay.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: LuSelectOverlay });
|
|
279
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: LuSelectOverlay, decorators: [{
|
|
280
|
+
type: Injectable
|
|
281
|
+
}] });
|
|
282
|
+
class SelectPanelRef extends LuSelectPanelRef {
|
|
283
|
+
constructor(overlayRef, parentInjector, panelData) {
|
|
284
|
+
super();
|
|
285
|
+
this.overlayRef = overlayRef;
|
|
286
|
+
const injector = Injector.create({
|
|
287
|
+
providers: [
|
|
288
|
+
{ provide: LuSelectPanelRef, useValue: this },
|
|
289
|
+
{ provide: SELECT_PANEL_DATA, useValue: panelData },
|
|
290
|
+
],
|
|
291
|
+
parent: parentInjector,
|
|
292
|
+
});
|
|
293
|
+
this.portalRef = new ComponentPortal(LuSelectPanelComponent, undefined, injector);
|
|
294
|
+
this.panelRef = overlayRef.attach(this.portalRef);
|
|
295
|
+
this.instance = this.panelRef.instance;
|
|
296
|
+
overlayRef
|
|
297
|
+
.backdropClick()
|
|
298
|
+
.pipe(takeUntil(this.closed))
|
|
299
|
+
.subscribe(() => this.close());
|
|
300
|
+
}
|
|
301
|
+
emitValue(value) {
|
|
302
|
+
this.valueChanged.emit(value);
|
|
303
|
+
this.close();
|
|
304
|
+
}
|
|
305
|
+
close() {
|
|
306
|
+
super.close();
|
|
307
|
+
this.panelRef.destroy();
|
|
308
|
+
this.overlayRef.detach();
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
class LuSimpleSelectInputComponent {
|
|
312
|
+
constructor(positionBuilder, scrollStrategies, elementRef, injector, overlay, changeDetectorRef, overlayContainer, label, labelId) {
|
|
313
|
+
this.positionBuilder = positionBuilder;
|
|
314
|
+
this.scrollStrategies = scrollStrategies;
|
|
315
|
+
this.elementRef = elementRef;
|
|
316
|
+
this.injector = injector;
|
|
317
|
+
this.overlay = overlay;
|
|
318
|
+
this.changeDetectorRef = changeDetectorRef;
|
|
319
|
+
this.label = label;
|
|
320
|
+
this.labelId = labelId;
|
|
321
|
+
this.tabindex = 0;
|
|
322
|
+
this.placeholder = '';
|
|
323
|
+
this.multiple = false;
|
|
324
|
+
this.clearable = false;
|
|
325
|
+
this.disabled = false;
|
|
326
|
+
this.isPanelOpen = false;
|
|
327
|
+
this.role = 'combobox';
|
|
328
|
+
this.overlayConfig = {
|
|
329
|
+
hasBackdrop: true,
|
|
330
|
+
backdropClass: 'cdk-overlay-transparent-backdrop',
|
|
331
|
+
};
|
|
332
|
+
this.optionComparer = (option1, option2) => JSON.stringify(option1) === JSON.stringify(option2);
|
|
333
|
+
this.clueChange = new EventEmitter();
|
|
334
|
+
this.nextPage = new EventEmitter();
|
|
335
|
+
this.previousPage = new EventEmitter();
|
|
336
|
+
this.options$ = new ReplaySubject(1);
|
|
337
|
+
this.loading$ = new ReplaySubject(1);
|
|
338
|
+
this.clue = null;
|
|
339
|
+
this.destroyed$ = new Subject();
|
|
340
|
+
this.overlayContainerRef = overlayContainer.getContainerElement();
|
|
341
|
+
}
|
|
342
|
+
get searchable() {
|
|
343
|
+
return this.clueChange.observed;
|
|
344
|
+
}
|
|
345
|
+
get isFilled() {
|
|
346
|
+
return this.value !== null && this.value !== undefined;
|
|
347
|
+
}
|
|
348
|
+
get ariaControls() {
|
|
349
|
+
return this.overlayContainerRef.id;
|
|
350
|
+
}
|
|
351
|
+
set loading(value) {
|
|
352
|
+
this.loading$.next(value);
|
|
353
|
+
}
|
|
354
|
+
set options(options) {
|
|
355
|
+
this.options$.next(options);
|
|
356
|
+
}
|
|
357
|
+
onKeydown($event) {
|
|
358
|
+
if (!this.isPanelOpen) {
|
|
359
|
+
this.openPanel();
|
|
360
|
+
$event.stopPropagation();
|
|
361
|
+
$event.preventDefault();
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
registerOnChange(onChange) {
|
|
365
|
+
this.onChange = onChange;
|
|
366
|
+
}
|
|
367
|
+
registerOnTouched(onTouched) {
|
|
368
|
+
this.onTouched = onTouched;
|
|
369
|
+
}
|
|
370
|
+
setDisabledState(isDisabled) {
|
|
371
|
+
this.disabled = isDisabled;
|
|
372
|
+
}
|
|
373
|
+
ngOnDestroy() {
|
|
374
|
+
this.destroyed$.next();
|
|
375
|
+
this.destroyed$.complete();
|
|
376
|
+
}
|
|
377
|
+
ngOnInit() {
|
|
378
|
+
if (this.label) {
|
|
379
|
+
this.label.id = this.labelId;
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
clearValue(event) {
|
|
383
|
+
event.stopPropagation();
|
|
384
|
+
this.onChange?.(null);
|
|
385
|
+
this.value = null;
|
|
386
|
+
}
|
|
387
|
+
openPanel() {
|
|
388
|
+
if (this.isPanelOpen || this.disabled) {
|
|
389
|
+
return;
|
|
390
|
+
}
|
|
391
|
+
const overlayConfig = this.overlayConfig || {};
|
|
392
|
+
overlayConfig.positionStrategy = this.positionBuilder.flexibleConnectedTo(this.elementRef).withPositions([
|
|
393
|
+
{
|
|
394
|
+
originX: 'start',
|
|
395
|
+
originY: 'bottom',
|
|
396
|
+
overlayX: 'start',
|
|
397
|
+
overlayY: 'top',
|
|
398
|
+
},
|
|
399
|
+
{
|
|
400
|
+
originX: 'end',
|
|
401
|
+
originY: 'bottom',
|
|
402
|
+
overlayX: 'end',
|
|
403
|
+
overlayY: 'top',
|
|
404
|
+
},
|
|
405
|
+
{
|
|
406
|
+
originX: 'start',
|
|
407
|
+
originY: 'top',
|
|
408
|
+
overlayX: 'start',
|
|
409
|
+
overlayY: 'bottom',
|
|
410
|
+
},
|
|
411
|
+
{
|
|
412
|
+
originX: 'end',
|
|
413
|
+
originY: 'top',
|
|
414
|
+
overlayX: 'end',
|
|
415
|
+
overlayY: 'bottom',
|
|
416
|
+
},
|
|
417
|
+
]);
|
|
418
|
+
overlayConfig.scrollStrategy = this.scrollStrategies.reposition();
|
|
419
|
+
overlayConfig.minWidth = this.elementRef.nativeElement.clientWidth;
|
|
420
|
+
overlayConfig.maxHeight = '100vh';
|
|
421
|
+
overlayConfig.maxWidth = '100vw';
|
|
422
|
+
const overlayRef = this.overlay.create(overlayConfig);
|
|
423
|
+
this.isPanelOpen = true;
|
|
424
|
+
this.panelRef = new SelectPanelRef(overlayRef, this.injector, {
|
|
425
|
+
initialValue: this.value,
|
|
426
|
+
optionComparer: this.optionComparer,
|
|
427
|
+
options$: this.options$,
|
|
428
|
+
loading$: this.loading$,
|
|
429
|
+
searchable: this.searchable,
|
|
430
|
+
optionTpl: this.optionTpl,
|
|
431
|
+
});
|
|
432
|
+
this.panelRef.valueChanged.subscribe((value) => {
|
|
433
|
+
this.onChange?.(value);
|
|
434
|
+
this.value = value;
|
|
435
|
+
});
|
|
436
|
+
this.panelRef.nextPage.subscribe(() => this.nextPage.emit());
|
|
437
|
+
this.panelRef.previousPage.subscribe(() => this.previousPage.emit());
|
|
438
|
+
this.panelRef.clueChanged.subscribe((clue) => {
|
|
439
|
+
this.clueChange.emit(clue);
|
|
440
|
+
this.clue = clue;
|
|
441
|
+
});
|
|
442
|
+
this.panelRef.activeOptionIdChanged.subscribe((optionId) => {
|
|
443
|
+
this.activeDescendant = optionId;
|
|
444
|
+
this.changeDetectorRef.markForCheck();
|
|
445
|
+
});
|
|
446
|
+
this.panelRef.closed.subscribe(() => this.closePanel());
|
|
447
|
+
}
|
|
448
|
+
closePanel() {
|
|
449
|
+
if (!this.isPanelOpen) {
|
|
450
|
+
return;
|
|
451
|
+
}
|
|
452
|
+
this.isPanelOpen = false;
|
|
453
|
+
this.panelRef.close();
|
|
454
|
+
this.panelRef = undefined;
|
|
455
|
+
}
|
|
456
|
+
writeValue(value) {
|
|
457
|
+
this.value = value;
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
LuSimpleSelectInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: LuSimpleSelectInputComponent, deps: [{ token: i2$1.OverlayPositionBuilder }, { token: i2$1.ScrollStrategyOptions }, { token: i0.ElementRef }, { token: i0.Injector }, { token: LuSelectOverlay }, { token: i0.ChangeDetectorRef }, { token: i2$1.OverlayContainer }, { token: SELECT_LABEL }, { token: SELECT_LABEL_ID }], target: i0.ɵɵFactoryTarget.Component });
|
|
461
|
+
LuSimpleSelectInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: LuSimpleSelectInputComponent, isStandalone: true, selector: "lu-simple-select", inputs: { placeholder: "placeholder", multiple: "multiple", clearable: "clearable", disabled: "disabled", overlayConfig: "overlayConfig", loading: "loading", options: "options", optionComparer: "optionComparer", optionTpl: "optionTpl", valueTpl: "valueTpl" }, outputs: { clueChange: "clueChange", nextPage: "nextPage", previousPage: "previousPage" }, host: { listeners: { "keydown.space": "onKeydown($event)", "keydown.enter": "onKeydown($event)", "keydown.arrowDown": "onKeydown($event)", "click": "onKeydown($event)" }, properties: { "tabindex": "this.tabindex", "class.mod-multiple": "this.multiple", "class.is-clearable": "this.clearable", "class.is-disabled": "this.disabled", "class.is-filled": "this.isFilled", "class.is-focused": "this.isPanelOpen", "attr.aria-expanded": "this.isPanelOpen", "attr.role": "this.role", "attr.aria-activedescendant": "this.activeDescendant", "attr.aria-controls": "this.ariaControls" } }, providers: [
|
|
462
|
+
{
|
|
463
|
+
provide: NG_VALUE_ACCESSOR,
|
|
464
|
+
useExisting: forwardRef(() => LuSimpleSelectInputComponent),
|
|
465
|
+
multi: true,
|
|
466
|
+
},
|
|
467
|
+
{
|
|
468
|
+
provide: OverlayContainer,
|
|
469
|
+
useClass: LuSelectOverlayContainer,
|
|
470
|
+
},
|
|
471
|
+
LuSelectOverlay,
|
|
472
|
+
{ provide: SELECT_ID, useFactory: selectIdFactory },
|
|
473
|
+
{ provide: SELECT_LABEL, useFactory: selectLabelFactory, deps: [ElementRef] },
|
|
474
|
+
{ provide: SELECT_LABEL_ID, useFactory: selectLabelIdFactory, deps: [SELECT_LABEL, SELECT_ID] },
|
|
475
|
+
], 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 *ngIf=\"isFilled\">\r\n\t\t\t<ng-container *ngTemplateOutlet=\"valueTpl || optionTpl; context: { $implicit: value }\"></ng-container>\r\n\t\t</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\">thin_cross</span>\r\n\t\t<span class=\"u-mask\">Clear</span>\r\n\t</a>\r\n</div>\r\n", styles: [":root{--components-options-item-padding-vertical: var(--spacings-smaller);--components-options-item-padding-horizontal: var(--spacings-smaller);--components-options-item-multiple-padding: var(--spacings-big);--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-border-radius);--components-options-checkbox-border-color: var(--palettes-grey-700);--components-options-establishment-multiple-padding: var(--spacings-standard)}:host{--components-select-default-palette-50: var(--palettes-primary-50);--components-select-default-palette-100: var(--palettes-primary-100);--components-select-default-palette-200: var(--palettes-primary-200);--components-select-default-palette-300: var(--palettes-primary-300);--components-select-default-palette-400: var(--palettes-primary-400);--components-select-default-palette-500: var(--palettes-primary-500);--components-select-default-palette-600: var(--palettes-primary-600);--components-select-default-palette-700: var(--palettes-primary-700);--components-select-default-palette-800: var(--palettes-primary-800);--components-select-default-palette-900: var(--palettes-primary-900);--components-select-chip-background: var(--palettes-primary-700);--components-select-chip-text: var(--colors-white-color);--components-select-input-padding-horizontal: var(--spacings-smaller);--components-select-input-padding-vertical: var(--spacings-smaller);--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-small);--components-select-framed-top-padding: var(--spacings-big);--components-select-framed-bottom-padding: var(--spacings-small);--components-select-framed-label-top-offset: var(--spacings-smaller);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(--components-select-default-palette-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-standard-line-height);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-standard-line-height));padding:var(--components-select-input-padding-vertical) 2.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-400, var(--components-select-default-palette-400));line-height:var(--sizes-standard-line-height);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-standard-line-height));padding:var(--components-select-input-padding-vertical) 2.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:var(--spacings-smaller);right:1.6rem}::ng-deep .lu-select-value .label{padding:var(--spacings-smallest) var(--spacings-smaller);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-standard-line-height);line-height:var(--sizes-standard-line-height);padding:0 var(--spacings-smaller);margin:0 var(--spacings-smallest) var(--spacings-smallest) 0;text-overflow:ellipsis;overflow:hidden;vertical-align:top;white-space:nowrap}:host-context(.textfield.mod-small) .lu-select-value,:host-context(.textfield.mod-small) .lu-select-placeholder{font-size:var(--sizes-small-font-size);line-height:var(--sizes-smaller-line-height);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-smaller-line-height))}:host-context(.textfield.mod-small):after{line-height:var(--sizes-smaller-line-height)}:host-context(.textfield.mod-small) ::ng-deep .lu-select-value .label{font-size:var(--sizes-small-font-size);line-height:var(--sizes-small-line-height);font-weight:600;margin:0;padding:0;background-color:transparent}:host-context(.textfield.mod-small) ::ng-deep .lu-select-value .chip{height:var(--sizes-smaller-line-height);line-height:var(--sizes-smaller-line-height);font-size:var(--sizes-smaller-font-size)}: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-smaller)}: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-small);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-smallest) * -1)}:host-context(.textfield-input.is-filled) .lu-select-placeholder{display:none}:host-context(.textfield-input.is-filled) .lu-select-value{display:flex;align-items:start}:host-context(.textfield-input.is-clearable) .lu-select-value{padding-right:2.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-200)}: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;vertical-align:text-bottom}:host-context(.textfield-input.is-filled){display:inline-block}.actionIcon{height:1rem;width:1rem;padding:0;color:var(--palettes-700, var(--components-select-default-palette-700))}.actionIcon:hover{background-color:var(--palettes-50, var(--components-select-default-palette-50));color:var(--palettes-800, var(--components-select-default-palette-800))}.actionIcon:focus{background-color:var(--palettes-50, var(--components-select-default-palette-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(--components-select-default-palette-200))}.lucca-icon{display:block;font-size:var(--sizes-standard-font-size)}: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: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: OverlayModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
476
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: LuSimpleSelectInputComponent, decorators: [{
|
|
477
|
+
type: Component,
|
|
478
|
+
args: [{ selector: 'lu-simple-select', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule, OverlayModule], providers: [
|
|
479
|
+
{
|
|
480
|
+
provide: NG_VALUE_ACCESSOR,
|
|
481
|
+
useExisting: forwardRef(() => LuSimpleSelectInputComponent),
|
|
482
|
+
multi: true,
|
|
483
|
+
},
|
|
484
|
+
{
|
|
485
|
+
provide: OverlayContainer,
|
|
486
|
+
useClass: LuSelectOverlayContainer,
|
|
487
|
+
},
|
|
488
|
+
LuSelectOverlay,
|
|
489
|
+
{ provide: SELECT_ID, useFactory: selectIdFactory },
|
|
490
|
+
{ provide: SELECT_LABEL, useFactory: selectLabelFactory, deps: [ElementRef] },
|
|
491
|
+
{ provide: SELECT_LABEL_ID, useFactory: selectLabelIdFactory, deps: [SELECT_LABEL, SELECT_ID] },
|
|
492
|
+
], 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 *ngIf=\"isFilled\">\r\n\t\t\t<ng-container *ngTemplateOutlet=\"valueTpl || optionTpl; context: { $implicit: value }\"></ng-container>\r\n\t\t</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\">thin_cross</span>\r\n\t\t<span class=\"u-mask\">Clear</span>\r\n\t</a>\r\n</div>\r\n", styles: [":root{--components-options-item-padding-vertical: var(--spacings-smaller);--components-options-item-padding-horizontal: var(--spacings-smaller);--components-options-item-multiple-padding: var(--spacings-big);--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-border-radius);--components-options-checkbox-border-color: var(--palettes-grey-700);--components-options-establishment-multiple-padding: var(--spacings-standard)}:host{--components-select-default-palette-50: var(--palettes-primary-50);--components-select-default-palette-100: var(--palettes-primary-100);--components-select-default-palette-200: var(--palettes-primary-200);--components-select-default-palette-300: var(--palettes-primary-300);--components-select-default-palette-400: var(--palettes-primary-400);--components-select-default-palette-500: var(--palettes-primary-500);--components-select-default-palette-600: var(--palettes-primary-600);--components-select-default-palette-700: var(--palettes-primary-700);--components-select-default-palette-800: var(--palettes-primary-800);--components-select-default-palette-900: var(--palettes-primary-900);--components-select-chip-background: var(--palettes-primary-700);--components-select-chip-text: var(--colors-white-color);--components-select-input-padding-horizontal: var(--spacings-smaller);--components-select-input-padding-vertical: var(--spacings-smaller);--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-small);--components-select-framed-top-padding: var(--spacings-big);--components-select-framed-bottom-padding: var(--spacings-small);--components-select-framed-label-top-offset: var(--spacings-smaller);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(--components-select-default-palette-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-standard-line-height);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-standard-line-height));padding:var(--components-select-input-padding-vertical) 2.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-400, var(--components-select-default-palette-400));line-height:var(--sizes-standard-line-height);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-standard-line-height));padding:var(--components-select-input-padding-vertical) 2.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:var(--spacings-smaller);right:1.6rem}::ng-deep .lu-select-value .label{padding:var(--spacings-smallest) var(--spacings-smaller);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-standard-line-height);line-height:var(--sizes-standard-line-height);padding:0 var(--spacings-smaller);margin:0 var(--spacings-smallest) var(--spacings-smallest) 0;text-overflow:ellipsis;overflow:hidden;vertical-align:top;white-space:nowrap}:host-context(.textfield.mod-small) .lu-select-value,:host-context(.textfield.mod-small) .lu-select-placeholder{font-size:var(--sizes-small-font-size);line-height:var(--sizes-smaller-line-height);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-smaller-line-height))}:host-context(.textfield.mod-small):after{line-height:var(--sizes-smaller-line-height)}:host-context(.textfield.mod-small) ::ng-deep .lu-select-value .label{font-size:var(--sizes-small-font-size);line-height:var(--sizes-small-line-height);font-weight:600;margin:0;padding:0;background-color:transparent}:host-context(.textfield.mod-small) ::ng-deep .lu-select-value .chip{height:var(--sizes-smaller-line-height);line-height:var(--sizes-smaller-line-height);font-size:var(--sizes-smaller-font-size)}: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-smaller)}: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-small);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-smallest) * -1)}:host-context(.textfield-input.is-filled) .lu-select-placeholder{display:none}:host-context(.textfield-input.is-filled) .lu-select-value{display:flex;align-items:start}:host-context(.textfield-input.is-clearable) .lu-select-value{padding-right:2.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-200)}: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;vertical-align:text-bottom}:host-context(.textfield-input.is-filled){display:inline-block}.actionIcon{height:1rem;width:1rem;padding:0;color:var(--palettes-700, var(--components-select-default-palette-700))}.actionIcon:hover{background-color:var(--palettes-50, var(--components-select-default-palette-50));color:var(--palettes-800, var(--components-select-default-palette-800))}.actionIcon:focus{background-color:var(--palettes-50, var(--components-select-default-palette-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(--components-select-default-palette-200))}.lucca-icon{display:block;font-size:var(--sizes-standard-font-size)}: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"] }]
|
|
493
|
+
}], ctorParameters: function () { return [{ type: i2$1.OverlayPositionBuilder }, { type: i2$1.ScrollStrategyOptions }, { type: i0.ElementRef }, { type: i0.Injector }, { type: LuSelectOverlay }, { type: i0.ChangeDetectorRef }, { type: i2$1.OverlayContainer }, { type: undefined, decorators: [{
|
|
494
|
+
type: Inject,
|
|
495
|
+
args: [SELECT_LABEL]
|
|
496
|
+
}] }, { type: undefined, decorators: [{
|
|
497
|
+
type: Inject,
|
|
498
|
+
args: [SELECT_LABEL_ID]
|
|
499
|
+
}] }]; }, propDecorators: { tabindex: [{
|
|
500
|
+
type: HostBinding,
|
|
501
|
+
args: ['tabindex']
|
|
502
|
+
}], placeholder: [{
|
|
503
|
+
type: Input
|
|
504
|
+
}], multiple: [{
|
|
505
|
+
type: Input
|
|
506
|
+
}, {
|
|
507
|
+
type: HostBinding,
|
|
508
|
+
args: ['class.mod-multiple']
|
|
509
|
+
}], clearable: [{
|
|
510
|
+
type: Input
|
|
511
|
+
}, {
|
|
512
|
+
type: HostBinding,
|
|
513
|
+
args: ['class.is-clearable']
|
|
514
|
+
}], disabled: [{
|
|
515
|
+
type: Input
|
|
516
|
+
}, {
|
|
517
|
+
type: HostBinding,
|
|
518
|
+
args: ['class.is-disabled']
|
|
519
|
+
}], isFilled: [{
|
|
520
|
+
type: HostBinding,
|
|
521
|
+
args: ['class.is-filled']
|
|
522
|
+
}], isPanelOpen: [{
|
|
523
|
+
type: HostBinding,
|
|
524
|
+
args: ['class.is-focused']
|
|
525
|
+
}, {
|
|
526
|
+
type: HostBinding,
|
|
527
|
+
args: ['attr.aria-expanded']
|
|
528
|
+
}], role: [{
|
|
529
|
+
type: HostBinding,
|
|
530
|
+
args: ['attr.role']
|
|
531
|
+
}], activeDescendant: [{
|
|
532
|
+
type: HostBinding,
|
|
533
|
+
args: ['attr.aria-activedescendant']
|
|
534
|
+
}], ariaControls: [{
|
|
535
|
+
type: HostBinding,
|
|
536
|
+
args: ['attr.aria-controls']
|
|
537
|
+
}], overlayConfig: [{
|
|
538
|
+
type: Input
|
|
539
|
+
}], loading: [{
|
|
540
|
+
type: Input
|
|
541
|
+
}], options: [{
|
|
542
|
+
type: Input
|
|
543
|
+
}], optionComparer: [{
|
|
544
|
+
type: Input
|
|
545
|
+
}], optionTpl: [{
|
|
546
|
+
type: Input
|
|
547
|
+
}], valueTpl: [{
|
|
548
|
+
type: Input
|
|
549
|
+
}], clueChange: [{
|
|
550
|
+
type: Output
|
|
551
|
+
}], nextPage: [{
|
|
552
|
+
type: Output
|
|
553
|
+
}], previousPage: [{
|
|
554
|
+
type: Output
|
|
555
|
+
}], onKeydown: [{
|
|
556
|
+
type: HostListener,
|
|
557
|
+
args: ['keydown.space', ['$event']]
|
|
558
|
+
}, {
|
|
559
|
+
type: HostListener,
|
|
560
|
+
args: ['keydown.enter', ['$event']]
|
|
561
|
+
}, {
|
|
562
|
+
type: HostListener,
|
|
563
|
+
args: ['keydown.arrowDown', ['$event']]
|
|
564
|
+
}, {
|
|
565
|
+
type: HostListener,
|
|
566
|
+
args: ['click', ['$event']]
|
|
567
|
+
}] } });
|
|
568
|
+
|
|
569
|
+
const LU_SIMPLE_SELECT_COMPONENTS = [LuSimpleSelectInputComponent, LuOptionDirective, LuDisplayerDirective, LuOptionComponent];
|
|
570
|
+
|
|
571
|
+
/*
|
|
572
|
+
* Public API Surface of safe-content
|
|
573
|
+
*/
|
|
574
|
+
|
|
575
|
+
/**
|
|
576
|
+
* Generated bundle index. Do not edit.
|
|
577
|
+
*/
|
|
578
|
+
|
|
579
|
+
export { LU_SIMPLE_SELECT_COMPONENTS, LuDisplayerDirective, LuOptionComponent, LuOptionDirective, LuSelectPanelComponent, LuSelectPanelRef, LuSimpleSelectInputComponent };
|
|
580
|
+
//# sourceMappingURL=lucca-front-ng-simple-select.mjs.map
|